Hi,
attached patch moves all crt0s from the mainboards' Makefiles to
src/arch/i386/Makefile.inc, adding conditionals where necessary. Thus,
for adding a board, you don't have to care about these anymore.
The unification leads to some changes, some (presumably) harmless,
others for the good:
enable_fpu.inc, enable_sse.inc etc. appear on lots more boards.
These I think are harmless
Some romstraps were missing (or in one case too much), and this is much
more regular now, depending only on the presence of the chipset
component that requires them. In particular, these boards were missing
romstraps, which were lost on the newconfig/kconfig transition:
- asus/a8n_e
- msi/ms7260
- msi/ms9282
- sunw/ultra40
It might be that these didn't work with Kconfig and will work again
after this patch.
via/epia-m had the northbridge/via/vx800 romstrap without using that
northbridge.
There's also a new target "printcrt0s" in the toplevel Makefile which I
used for debugging. It might be helpful for people who want to debug
crt0s for the transition, it certainly was for me.
The instructions to migration locally developed boards are simple:
- Apply the Makefile patch only
- Note the output of "make printcrt0s"
so you have a list of crt0s for your board.
- Apply the patch
- Remove all crt0s (and crt0-y if you didn't update in a while) in your
mainboard's Makefile.inc
- Compare the new output of "make printcrt0s" with the old one.
It doesn't hurt if a romstrap is at a different place in the list.
Alternatively, just remove crt0s and try if your board still boots ;-)
There are three options how to move on from here (if this change is
accepted):
1. Keep the decisions in Makefile.inc
2. Move chip specific includes into the chip's Makefile.inc
3. Create a static file, instead of building it from crt0s
Option 2 would move chipset decisions to the chipsets, option 3 would
simplify the buildsystem. Both are simple, now that things are centralized.
The other future development would be to do the same to ldscripts, but I
didn't want to increase the patch size too much.
Signed-off-by: Patrick Georgi <patrick.georgi(a)coresystems.de>