Difference between revisions of "Flag Days"

From coreboot
Jump to: navigation, search
(r5162: Move crt0s away from user servicable parts in the build system)
Line 35: Line 35:
 
* apply the entire patch
 
* apply the entire patch
 
* run "make printcrt0s", and compare the results
 
* 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 ==
 
== r5167: Reorganize i82801 southbridge drivers ==
Line 47: Line 55:
 
* If your mainboard used the i82801dbm driver before use the i82801dx 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
 
* 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.

Revision as of 11:37, 27 February 2010

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.

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 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 setup generically now.

This change must be replicated with local mainboard changes/additions. It should be enough to simply remove all crt0s entries from src/mainboard/$(MAINBOARDDIR)/Makefile.inc.

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 setup generically now.

This change must be replicated with local mainboard changes/additions. It should be enough to simply remove all ldscripts entries from src/mainboard/$(MAINBOARDDIR)/Makefile.inc.

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 moved to src/arch/i386/Makefile.inc.

If your mainboard uses a custom reset.c file, which provides a hard_reset() function, you must add select BOARD_HAS_HARD_RESET 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 src/mainboard/$(MAINBOARDDIR)/Makefile.inc:

  • 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, include some_path/Makefile.romccboard.inc must be dropped, as this file was removed. A statement to set ROMCCFLAGS must be kept.

If your mainboard's Makefile is empty after these changes, or only contains comments, you can remove it completely.