Difference between revisions of "Flag Days"

From coreboot
Jump to: navigation, search
(clean out the 3+ years old information)
 
(24 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This page collects sweeping changes on the tree that might have an impact on boards that weren't tested by the developer, or on uncommitted development. It's sorted by revision (and thus date) and provides a Changelog to anyone who needs to update older trees.
+
This page collects sweeping changes on the tree that might have an impact on boards that weren't tested by the developer, or on uncommitted development. It's sorted by date and provides a Changelog to anyone who needs to update older trees.
 
+
To prevent inaccuracies, changes prior to the creation of this page aren't logged. The head revision at the time of creation of this page was r5151.
+
 
+
== r5152: Change in PS/2 keyboard API ==
+
 
+
Applicable if: local changes/additions to Super I/Os.
+
 
+
The [http://www.coreboot.org/pipermail/coreboot/2010-February/056012.html name and function prototype of the PS/2 keyboard initialization function changed]:
+
 
+
-void init_pc_keyboard('''unsigned port0, unsigned port1''', struct pc_keyboard *kbd);
+
+void pc_keyboard_init(struct pc_keyboard *keyboard);
+
 
+
This dismisses the first two arguments (which had to be the constant values 0x60, 0x64 before). This should only have an impact on locally developed Super I/O code that might require to follow this change. The changes required for porting old code are usually of the form:
+
 
+
-init_pc_keyboard('''0x60, 0x64''', 0);
+
+pc_keyboard_init(0);
+
 
+
or
+
 
+
-init_pc_keyboard('''res0->base, res1->base''', &conf->keyboard);
+
+pc_keyboard_init(&conf->keyboard);
+
 
+
== r5162: Move crt0s away from user servicable parts in the build system ==
+
 
+
Applicable if: local changes/additions to mainboards
+
 
+
The crt0s variable in the buildsystem, which collects the various parts that are combined to crt0.o, is [http://www.coreboot.org/pipermail/coreboot/2010-February/056062.html setup generically] now.
+
 
+
This change must be replicated with local mainboard changes/additions. It should be enough to simply '''remove all crt0s entries''' from <code>src/mainboard/$(MAINBOARDDIR)/Makefile.inc</code>.
+
 
+
If you want to check the behaviour:
+
* apply the Makefile patch (which adds the printcrt0s rule) to your tree
+
* run "make printcrt0s", note the result
+
* apply the entire patch
+
* run "make printcrt0s", and compare the results
+
 
+
== r5164: Move ldscripts away from user servicable parts in the build system ==
+
 
+
Applicable if: local changes/additions to mainboards
+
 
+
The ldscripts variable in the buildsystem, which collects the various parts of the linker script used to link coreboot, is [http://www.coreboot.org/pipermail/coreboot/2010-February/056089.html setup generically] now.
+
 
+
This change must be replicated with local mainboard changes/additions. It should be enough to simply '''remove all ldscripts entries''' from <code>src/mainboard/$(MAINBOARDDIR)/Makefile.inc</code>.
+
 
+
== r5167: Reorganize i82801 southbridge drivers ==
+
 
+
Applicable if: your mainboard uses the i82801xx, i82801dbm, i82801ca or i82801er driver (Intel ICH).
+
 
+
The drivers have been unified and split up.
+
 
+
* If your mainboard has an ICH0 or ICH (ie. i810 based boards) use the i82801ax driver
+
* If your mainboard has an ICH2 driver (ie. i815 based boards) use the i82801bx driver
+
* If your mainboard used the i82801ca driver before use the i82801cx driver
+
* If your mainboard used the i82801dbm driver before use the i82801dx driver
+
* If your mainboard used the i82801er driver before use the i82801ex driver
+
 
+
== r5168: Move generic build rules away from user servicable parts in the build system ==
+
 
+
Applicable if: local changes/additions to mainboards
+
 
+
Various rules of object files that exist for every board, or that exist for every board with a given configuration option, are [http://www.coreboot.org/pipermail/coreboot/2010-February/056089.html moved to] <code>src/arch/i386/Makefile.inc</code>.
+
 
+
If your mainboard uses a custom <code>reset.c</code> file, which provides a <code>hard_reset()</code> function, you must add <code>select BOARD_HAS_HARD_RESET</code> to your board's Kconfig.
+
 
+
The following change only needs to be replicated with newly created local mainboards. It should be enough to '''remove the following lines''' from <code>src/mainboard/$(MAINBOARDDIR)/Makefile.inc</code>:
+
* initobj-y += crt0.o
+
* obj-y += mainboard.o
+
* obj-$(CONFIG_GENERATE_MP_TABLE) += mptable.o
+
* obj-$(CONFIG_GENERATE_PIRQ_TABLE) += irq_tables.o
+
* obj-$(CONFIG_BOARD_HAS_HARD_RESET) += reset.o
+
 
+
Also, <code>include some_path/Makefile.romccboard.inc</code> must be dropped, as this file was removed. A statement to set <code>ROMCCFLAGS</code> must be kept.
+
 
+
If your mainboard's Makefile is empty after these changes, or only contains comments, you can remove it completely.
+
 
+
== r5171: Move generic build rules away from user servicable parts in the build system ==
+
 
+
Applicable if: local changes/additions to mainboards
+
 
+
Various rules of object files that exist for every board, or that exist for every board with a given configuration option, are [http://www.coreboot.org/pipermail/coreboot/2010-February/056154.html moved to] <code>src/arch/i386/Makefile.inc</code>.
+
 
+
If your mainboard uses a custom <code>fadt.c</code> file, you must add <code>select BOARD_HAS_FADT</code> to your board's Kconfig. Better yet, the FADTs related to that chipset should be consolidated (probably in the southbridge)
+
 
+
If your mainboard uses a custom <code>get_bus_conf.c</code> file, you must add <code>select HAVE_BUS_CONFIG</code> to your board's Kconfig.
+
 
+
The following change only needs to be replicated with newly created local mainboards. It should be enough to '''remove the following lines''' from <code>src/mainboard/$(MAINBOARDDIR)/Makefile.inc</code>:
+
* obj-y += get_bus_conf.o
+
* obj-$(CONFIG_GENERATE_ACPI_TABLES) += dsdt.o
+
* obj-$(CONFIG_GENERATE_ACPI_TABLES) += acpi_tables.o
+
* obj-$(CONFIG_GENERATE_ACPI_TABLES) += fadt.o
+
 
+
Also, <code>include some_path/Makefile.k8_CAR.inc</code> or <code>include some_path/Makefile.k8_ck804.inc</code> must be dropped, as these files were removed.
+
 
+
If your mainboard's Makefile is empty after these changes, or only contains comments, you can remove it completely.
+
 
+
== r5176: Automate SSDT pull-in ==
+
 
+
Applicable if: using ssdtX.asl files and ACPI_SSDTX_NUM config variable
+
 
+
ACPI_SSDTX_NUM must be 4 or 5 (the only values found in the tree so far, but this could be extended), and means the highest number in ssdtX.asl in the mainboard tree (numbering starts at 2). ssdt[2..X].asl are automatically pulled in by the build system then.
+
 
+
To adapt, please check that ACPI_SSDTX_NUM is 4 or 5, then remove the ssdt related rules in the mainboard's Makefile.
+
 
+
If ACPI_SSDTX_NUM should be some other value, please report to the list, so we can adapt the build system for your case.
+
 
+
== r5259: Remove config variables related to newconfig ==
+
 
+
Applicable if: local additions to mainboards (and CPUs in some cases)
+
 
+
Uses of <code>HAVE_FAILOVER_BOOT</code>, <code>HAVE_FALLBACK_BOOT</code>, <code>USE_FAILOVER_IMAGE</code>, <code>USE_FALLBACK_IMAGE</code> must be removed as they were dropped from the build system and might lead to wrong behaviour.
+
 
+
To do this, keep the code wrapped in #if statements which evaluate to true, and remove code that the preprocessor would have left out.
+
 
+
== r5266: Replace printk_*(...) by printk(BIOS_*, ...) ==
+
 
+
Applicable if: local additions
+
 
+
<code>printk_*</code> calls are replaced by <code>printk(BIOS_*, ...)</code>.
+
 
+
To adapt, you can use something like
+
sed -i 's/printk_\([a-z]*\)(/printk(BIOS_\U\1\E, /g' *.c
+
 
+
Thanks go to Zheng Bao for this command.
+

Latest revision as of 19:29, 11 April 2014

This page collects sweeping changes on the tree that might have an impact on boards that weren't tested by the developer, or on uncommitted development. It's sorted by date and provides a Changelog to anyone who needs to update older trees.