Patchwork Hide crt0s from user

login
register
about
Submitter Patrick Georgi
Date 2010-02-25 09:40:41
Message ID <4B864599.9020301@georgi-clan.de>
Download mbox | patch
Permalink /patch/972/
State Accepted
Headers show

Comments

Patrick Georgi - 2010-02-25 09:40:41
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@coresystems.de>
Uwe Hermann - 2010-02-25 15:27:08
On Thu, Feb 25, 2010 at 10:40:41AM +0100, Patrick Georgi wrote:
> 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.

Nice!


> 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.

Confirmed, I had a patch to fix this (at least for A8N-E), which should
be obsolete now (but I will test on hardware later).

 
> 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.

Hm, not sure what the best option is, both 1 and 2 sound good.

 
> Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>

Acked-by: Uwe Hermann <uwe@hermann-uwe.de>

(if the build doesn't break, which I assume is tested)


> Index: src/cpu/via/model_c3/Kconfig
> ===================================================================
> --- src/cpu/via/model_c3/Kconfig	(revision 5158)
> +++ src/cpu/via/model_c3/Kconfig	(working copy)
> @@ -1,3 +1,4 @@
>  config CPU_VIA_C3
>  	bool
>  	select UDELAY_TSC
> +	select MMX
> Index: src/cpu/via/model_c7/Kconfig
> ===================================================================
> --- src/cpu/via/model_c7/Kconfig	(revision 5158)
> +++ src/cpu/via/model_c7/Kconfig	(working copy)
> @@ -1,3 +1,4 @@
>  config CPU_VIA_C7
>  	bool
>  	select UDELAY_TSC
> +	select MMX

Are we sure all CPUs have MMX and SSE options set correctly? Are some
missing?


> Index: src/mainboard/iwill/dk8_htx/Makefile.inc
> ===================================================================
> --- src/mainboard/iwill/dk8_htx/Makefile.inc	(revision 5158)
> +++ src/mainboard/iwill/dk8_htx/Makefile.inc	(working copy)
> @@ -35,12 +35,6 @@
>  
>  initobj-y += crt0.o
>  # FIXME in $(top)/Makefile

I guess the FIXME comment can also be removed? Or does it refer to some
other lines? If no, please fix it in all files, there are multiple ones
with that comment.


> Index: src/mainboard/intel/eagleheights/Makefile.inc
> ===================================================================
> --- src/mainboard/intel/eagleheights/Makefile.inc	(revision 5158)
> +++ src/mainboard/intel/eagleheights/Makefile.inc	(working copy)
> @@ -10,13 +10,7 @@
>  
>  initobj-y += crt0.o
>  # FIXME in $(top)/Makefile
> -crt0s := $(src)/cpu/x86/16bit/entry16.inc
> -crt0s += $(src)/cpu/x86/32bit/entry32.inc
> -crt0s += $(src)/cpu/x86/16bit/reset16.inc
> -crt0s += $(src)/arch/i386/lib/id.inc

>  # Use Intel Core (not Core 2) code for CAR init, any CPU might be used.
> -crt0s += $(src)/cpu/intel/model_6ex/cache_as_ram.inc

This comment is now in the wrong place.


> +# who else could use this?
> +ifeq ($(CONFIG_BOARD_TYAN_S2735),y)
> +crt0s += $(src)/cpu/x86/car/cache_as_ram.inc
> +endif

Hm, in theory hopefully more Intel boards which use romcc now. Or is the
CAR file not generic enough (i.e. specific to the S2735 or its
CPU/chipset?)


Uwe.
Patrick Georgi - 2010-02-25 16:51:06
Am 25.02.2010 16:27, schrieb Uwe Hermann:
>> Index: src/cpu/via/model_c3/Kconfig
>> ===================================================================
>> --- src/cpu/via/model_c3/Kconfig	(revision 5158)
>> +++ src/cpu/via/model_c3/Kconfig	(working copy)
>> @@ -1,3 +1,4 @@
>>  config CPU_VIA_C3
>>  	bool
>>  	select UDELAY_TSC
>> +	select MMX
>> Index: src/cpu/via/model_c7/Kconfig
>> ===================================================================
>> --- src/cpu/via/model_c7/Kconfig	(revision 5158)
>> +++ src/cpu/via/model_c7/Kconfig	(working copy)
>> @@ -1,3 +1,4 @@
>>  config CPU_VIA_C7
>>  	bool
>>  	select UDELAY_TSC
>> +	select MMX
> 
> Are we sure all CPUs have MMX and SSE options set correctly? Are some
> missing?
At least those that require it for enable_mmx.inc and the like are set
correctly.

>>  initobj-y += crt0.o
>>  # FIXME in $(top)/Makefile
> 
> I guess the FIXME comment can also be removed? Or does it refer to some
> other lines? If no, please fix it in all files, there are multiple ones
> with that comment.
Will do.
In principle, initobj-y += crt0.o could be moved to
src/arch/i386/Makefile.inc as well. Yes, I intend to make mainboard
Makefile.inc's optional.

>>  # Use Intel Core (not Core 2) code for CAR init, any CPU might be used.
>> -crt0s += $(src)/cpu/intel/model_6ex/cache_as_ram.inc
> 
> This comment is now in the wrong place.
Thanks for spotting that, will move it.

>> +# who else could use this?
>> +ifeq ($(CONFIG_BOARD_TYAN_S2735),y)
>> +crt0s += $(src)/cpu/x86/car/cache_as_ram.inc
>> +endif
> 
> Hm, in theory hopefully more Intel boards which use romcc now. Or is the
> CAR file not generic enough (i.e. specific to the S2735 or its
> CPU/chipset?)
I have no idea which CPU this applies to.

There are also some Via C7 boards that could be migrated to CAR, but I
don't have the hardware.


Patrick
ron minnich - 2010-02-25 16:59:07
On Thu, Feb 25, 2010 at 8:51 AM, Patrick Georgi <patrick@georgi-clan.de> wrote:
> Am 25.02.2010 16:27, schrieb Uwe Hermann:

> At least those that require it for enable_mmx.inc and the like are set
> correctly.

be careful here. I had one problem at one point where the CPU was
taking a GPF because enable_sse.inc was included. The issue was that
the code had the CPU touch an SSE register that did not exist -->
BOOM.

Are you sure that you are carefully checking the feature set and not
touching sse.inc if it is not there and/or not assembling that code if
the CPU does not support it? I'm sorry, have not looked at your code
;-( but wanted to warn you. I assume that no sse instructions are
executed unless the feature is known to exist.

But this is another huge improvement that i think we have to just push
our way through to making it work no matter what!

Thanks

ron
Patrick Georgi - 2010-02-25 17:00:19
Am 25.02.2010 17:59, schrieb ron minnich:
> Are you sure that you are carefully checking the feature set and not
> touching sse.inc if it is not there and/or not assembling that code if
> the CPU does not support it? I'm sorry, have not looked at your code
> ;-( but wanted to warn you. I assume that no sse instructions are
> executed unless the feature is known to exist.
We use CONFIG_SSE for that. no CONFIG_SSE, no enable_sse.inc. If we have
some board were non-SSE CPUs can be used but CONFIG_SSE gets its way in
somehow, we can fix that.

Good enough?


Patrick
ron minnich - 2010-02-25 17:07:41
On Thu, Feb 25, 2010 at 9:00 AM, Patrick Georgi <patrick@georgi-clan.de> wrote:
> Am 25.02.2010 17:59, schrieb ron minnich:
>> Are you sure that you are carefully checking the feature set and not
>> touching sse.inc if it is not there and/or not assembling that code if
>> the CPU does not support it? I'm sorry, have not looked at your code
>> ;-( but wanted to warn you. I assume that no sse instructions are
>> executed unless the feature is known to exist.
> We use CONFIG_SSE for that. no CONFIG_SSE, no enable_sse.inc. If we have
> some board were non-SSE CPUs can be used but CONFIG_SSE gets its way in
> somehow, we can fix that.
>
> Good enough?

Wonderful. Just wanted to double check.

Ah, you guys do outstanding work. This tree just keeps getting better
by the day.

thanks

ron
Joseph Smith - 2010-02-25 18:31:36
On Thu, 25 Feb 2010 09:07:41 -0800, ron minnich <rminnich@gmail.com> wrote:
> On Thu, Feb 25, 2010 at 9:00 AM, Patrick Georgi <patrick@georgi-clan.de>
> wrote:
>> Am 25.02.2010 17:59, schrieb ron minnich:
>>> Are you sure that you are carefully checking the feature set and not
>>> touching sse.inc if it is not there and/or not assembling that code if
>>> the CPU does not support it? I'm sorry, have not looked at your code
>>> ;-( but wanted to warn you. I assume that no sse instructions are
>>> executed unless the feature is known to exist.
>> We use CONFIG_SSE for that. no CONFIG_SSE, no enable_sse.inc. If we have
>> some board were non-SSE CPUs can be used but CONFIG_SSE gets its way in
>> somehow, we can fix that.
>>
>> Good enough?
> 
How many CPU's do not support SSE, There can't be that many....
ron minnich - 2010-02-25 18:40:42
On Thu, Feb 25, 2010 at 10:31 AM, Joseph Smith <joe@settoplinux.org> wrote:

> How many CPU's do not support SSE, There can't be that many....

doesn't matter if you have one of the ones that doesn't :-)

ron

Patch

Index: src/cpu/via/model_c3/Kconfig
===================================================================
--- src/cpu/via/model_c3/Kconfig	(revision 5158)
+++ src/cpu/via/model_c3/Kconfig	(working copy)
@@ -1,3 +1,4 @@ 
 config CPU_VIA_C3
 	bool
 	select UDELAY_TSC
+	select MMX
Index: src/cpu/via/model_c7/Kconfig
===================================================================
--- src/cpu/via/model_c7/Kconfig	(revision 5158)
+++ src/cpu/via/model_c7/Kconfig	(working copy)
@@ -1,3 +1,4 @@ 
 config CPU_VIA_C7
 	bool
 	select UDELAY_TSC
+	select MMX
Index: src/mainboard/Makefile.k8_ck804.inc
===================================================================
--- src/mainboard/Makefile.k8_ck804.inc	(revision 5158)
+++ src/mainboard/Makefile.k8_ck804.inc	(working copy)
@@ -36,13 +36,6 @@ 
 
 initobj-y += crt0.o
 
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/southbridge/nvidia/ck804/romstrap.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/iwill/dk8_htx/Makefile.inc
===================================================================
--- src/mainboard/iwill/dk8_htx/Makefile.inc	(revision 5158)
+++ src/mainboard/iwill/dk8_htx/Makefile.inc	(working copy)
@@ -35,12 +35,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/bcom/winnetp680/Makefile.inc
===================================================================
--- src/mainboard/bcom/winnetp680/Makefile.inc	(revision 5158)
+++ src/mainboard/bcom/winnetp680/Makefile.inc	(working copy)
@@ -34,11 +34,4 @@ 
 ldscripts += $(src)/arch/i386/lib/id.lds
 ldscripts += $(src)/arch/i386/lib/failover.lds
 
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/x86/fpu_enable.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
-crt0s += $(src)/cpu/x86/mmx_disable.inc
 
Index: src/mainboard/supermicro/h8dmr/Makefile.inc
===================================================================
--- src/mainboard/supermicro/h8dmr/Makefile.inc	(revision 5158)
+++ src/mainboard/supermicro/h8dmr/Makefile.inc	(working copy)
@@ -28,13 +28,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/southbridge/nvidia/mcp55/romstrap.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/supermicro/h8dme/Makefile.inc
===================================================================
--- src/mainboard/supermicro/h8dme/Makefile.inc	(revision 5158)
+++ src/mainboard/supermicro/h8dme/Makefile.inc	(working copy)
@@ -29,13 +29,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/southbridge/nvidia/mcp55/romstrap.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/supermicro/h8dmr_fam10/Makefile.inc
===================================================================
--- src/mainboard/supermicro/h8dmr_fam10/Makefile.inc	(revision 5158)
+++ src/mainboard/supermicro/h8dmr_fam10/Makefile.inc	(working copy)
@@ -28,9 +28,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/32bit/entry32.lds
Index: src/mainboard/supermicro/h8qme_fam10/Makefile.inc
===================================================================
--- src/mainboard/supermicro/h8qme_fam10/Makefile.inc	(revision 5158)
+++ src/mainboard/supermicro/h8qme_fam10/Makefile.inc	(working copy)
@@ -28,9 +28,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/32bit/entry32.lds
Index: src/mainboard/kontron/986lcd-m/Makefile.inc
===================================================================
--- src/mainboard/kontron/986lcd-m/Makefile.inc	(revision 5158)
+++ src/mainboard/kontron/986lcd-m/Makefile.inc	(working copy)
@@ -36,9 +36,6 @@ 
 
 initobj-y += crt0.o
 
-crt0s := $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/intel/model_6ex/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/32bit/entry32.lds
Index: src/mainboard/kontron/kt690/Makefile.inc
===================================================================
--- src/mainboard/kontron/kt690/Makefile.inc	(revision 5158)
+++ src/mainboard/kontron/kt690/Makefile.inc	(working copy)
@@ -31,12 +31,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/gigabyte/m57sli/Makefile.inc
===================================================================
--- src/mainboard/gigabyte/m57sli/Makefile.inc	(revision 5158)
+++ src/mainboard/gigabyte/m57sli/Makefile.inc	(working copy)
@@ -31,13 +31,6 @@ 
 
 # This is part of the conversion to init-obj and away from included code. 
 initobj-y += crt0.o
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/southbridge/nvidia/mcp55/romstrap.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/gigabyte/ga_2761gxdk/Makefile.inc
===================================================================
--- src/mainboard/gigabyte/ga_2761gxdk/Makefile.inc	(revision 5158)
+++ src/mainboard/gigabyte/ga_2761gxdk/Makefile.inc	(working copy)
@@ -28,12 +28,6 @@ 
 
 # This is part of the conversion to init-obj and away from included code. 
 initobj-y += crt0.o
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/digitallogic/msm800sev/Makefile.inc
===================================================================
--- src/mainboard/digitallogic/msm800sev/Makefile.inc	(revision 5158)
+++ src/mainboard/digitallogic/msm800sev/Makefile.inc	(working copy)
@@ -7,12 +7,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/model_lx/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/amd/pistachio/Makefile.inc
===================================================================
--- src/mainboard/amd/pistachio/Makefile.inc	(revision 5158)
+++ src/mainboard/amd/pistachio/Makefile.inc	(working copy)
@@ -31,12 +31,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/amd/dbm690t/Makefile.inc
===================================================================
--- src/mainboard/amd/dbm690t/Makefile.inc	(revision 5158)
+++ src/mainboard/amd/dbm690t/Makefile.inc	(working copy)
@@ -31,12 +31,6 @@ 
 
 initobj-y += crt0.o
 
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/amd/serengeti_cheetah/Makefile.inc
===================================================================
--- src/mainboard/amd/serengeti_cheetah/Makefile.inc	(revision 5158)
+++ src/mainboard/amd/serengeti_cheetah/Makefile.inc	(working copy)
@@ -36,12 +36,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/amd/norwich/Makefile.inc
===================================================================
--- src/mainboard/amd/norwich/Makefile.inc	(revision 5158)
+++ src/mainboard/amd/norwich/Makefile.inc	(working copy)
@@ -7,12 +7,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/model_lx/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/amd/serengeti_cheetah_fam10/Makefile.inc
===================================================================
--- src/mainboard/amd/serengeti_cheetah_fam10/Makefile.inc	(revision 5158)
+++ src/mainboard/amd/serengeti_cheetah_fam10/Makefile.inc	(working copy)
@@ -39,9 +39,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/32bit/entry32.lds
Index: src/mainboard/amd/db800/Makefile.inc
===================================================================
--- src/mainboard/amd/db800/Makefile.inc	(revision 5158)
+++ src/mainboard/amd/db800/Makefile.inc	(working copy)
@@ -6,12 +6,6 @@ 
 # This is part of the conversion to init-obj and away from included code.
 
 initobj-y += crt0.o
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/model_lx/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/iei/pcisa-lx-800-r10/Makefile.inc
===================================================================
--- src/mainboard/iei/pcisa-lx-800-r10/Makefile.inc	(revision 5158)
+++ src/mainboard/iei/pcisa-lx-800-r10/Makefile.inc	(working copy)
@@ -7,12 +7,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/model_lx/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/tyan/s2912/Makefile.inc
===================================================================
--- src/mainboard/tyan/s2912/Makefile.inc	(revision 5158)
+++ src/mainboard/tyan/s2912/Makefile.inc	(working copy)
@@ -28,13 +28,6 @@ 
 
 # This is part of the conversion to init-obj and away from included code. 
 initobj-y += crt0.o
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/southbridge/nvidia/mcp55/romstrap.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/tyan/s2735/Makefile.inc
===================================================================
--- src/mainboard/tyan/s2735/Makefile.inc	(revision 5158)
+++ src/mainboard/tyan/s2735/Makefile.inc	(working copy)
@@ -33,12 +33,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/x86/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/tyan/s2912_fam10/Makefile.inc
===================================================================
--- src/mainboard/tyan/s2912_fam10/Makefile.inc	(revision 5158)
+++ src/mainboard/tyan/s2912_fam10/Makefile.inc	(working copy)
@@ -28,9 +28,6 @@ 
 
 # This is part of the conversion to init-obj and away from included code. 
 initobj-y += crt0.o
-crt0s := $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/32bit/entry32.lds
Index: src/mainboard/pcengines/alix1c/Makefile.inc
===================================================================
--- src/mainboard/pcengines/alix1c/Makefile.inc	(revision 5158)
+++ src/mainboard/pcengines/alix1c/Makefile.inc	(working copy)
@@ -7,12 +7,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/model_lx/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/artecgroup/dbe61/Makefile.inc
===================================================================
--- src/mainboard/artecgroup/dbe61/Makefile.inc	(revision 5158)
+++ src/mainboard/artecgroup/dbe61/Makefile.inc	(working copy)
@@ -7,12 +7,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/model_lx/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/lippert/roadrunner-lx/Makefile.inc
===================================================================
--- src/mainboard/lippert/roadrunner-lx/Makefile.inc	(revision 5158)
+++ src/mainboard/lippert/roadrunner-lx/Makefile.inc	(working copy)
@@ -7,12 +7,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/model_lx/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/lippert/spacerunner-lx/Makefile.inc
===================================================================
--- src/mainboard/lippert/spacerunner-lx/Makefile.inc	(revision 5158)
+++ src/mainboard/lippert/spacerunner-lx/Makefile.inc	(working copy)
@@ -7,12 +7,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/model_lx/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/via/epia-m700/Makefile.inc
===================================================================
--- src/mainboard/via/epia-m700/Makefile.inc	(revision 5158)
+++ src/mainboard/via/epia-m700/Makefile.inc	(working copy)
@@ -36,11 +36,4 @@ 
 ldscripts += $(src)/arch/i386/lib/id.lds
 ldscripts += $(src)/arch/i386/lib/failover.lds
 
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/northbridge/via/vx800/romstrap.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/via/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
Index: src/mainboard/via/vt8454c/Makefile.inc
===================================================================
--- src/mainboard/via/vt8454c/Makefile.inc	(revision 5158)
+++ src/mainboard/via/vt8454c/Makefile.inc	(working copy)
@@ -27,12 +27,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/via/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/via/epia-m/Makefile.inc
===================================================================
--- src/mainboard/via/epia-m/Makefile.inc	(revision 5158)
+++ src/mainboard/via/epia-m/Makefile.inc	(working copy)
@@ -35,12 +35,4 @@ 
 ldscripts += $(src)/arch/i386/lib/id.lds
 ldscripts += $(src)/arch/i386/lib/failover.lds
 
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/northbridge/via/vx800/romstrap.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/x86/fpu_enable.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
-crt0s += $(src)/cpu/x86/mmx_disable.inc
 
Index: src/mainboard/via/epia-n/Makefile.inc
===================================================================
--- src/mainboard/via/epia-n/Makefile.inc	(revision 5158)
+++ src/mainboard/via/epia-n/Makefile.inc	(working copy)
@@ -33,11 +33,4 @@ 
 ldscripts += $(src)/arch/i386/lib/id.lds
 ldscripts += $(src)/arch/i386/lib/failover.lds
 
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/x86/fpu_enable.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
-crt0s += $(src)/cpu/x86/mmx_disable.inc
 
Index: src/mainboard/via/epia/Makefile.inc
===================================================================
--- src/mainboard/via/epia/Makefile.inc	(revision 5158)
+++ src/mainboard/via/epia/Makefile.inc	(working copy)
@@ -29,11 +29,4 @@ 
 ldscripts += $(src)/arch/i386/lib/id.lds
 ldscripts += $(src)/arch/i386/lib/failover.lds
 
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/x86/fpu_enable.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
-crt0s += $(src)/cpu/x86/mmx_disable.inc
 
Index: src/mainboard/roda/rk886ex/Makefile.inc
===================================================================
--- src/mainboard/roda/rk886ex/Makefile.inc	(revision 5158)
+++ src/mainboard/roda/rk886ex/Makefile.inc	(working copy)
@@ -38,12 +38,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/intel/model_6ex/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/msi/ms9282/Makefile.inc
===================================================================
--- src/mainboard/msi/ms9282/Makefile.inc	(revision 5158)
+++ src/mainboard/msi/ms9282/Makefile.inc	(working copy)
@@ -30,12 +30,6 @@ 
 
 # This is part of the conversion to init-obj and away from included code. 
 initobj-y += crt0.o
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/msi/ms7260/Makefile.inc
===================================================================
--- src/mainboard/msi/ms7260/Makefile.inc	(revision 5158)
+++ src/mainboard/msi/ms7260/Makefile.inc	(working copy)
@@ -28,12 +28,6 @@ 
 
 # This is part of the conversion to init-obj and away from included code. 
 initobj-y += crt0.o
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/Makefile.k8_CAR.inc
===================================================================
--- src/mainboard/Makefile.k8_CAR.inc	(revision 5158)
+++ src/mainboard/Makefile.k8_CAR.inc	(working copy)
@@ -33,12 +33,6 @@ 
 # This is part of the conversion to init-obj and away from included code.
 initobj-y += crt0.o
 
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/Makefile.romccboard.inc
===================================================================
--- src/mainboard/Makefile.romccboard.inc	(revision 5158)
+++ src/mainboard/Makefile.romccboard.inc	(working copy)
@@ -21,35 +21,6 @@ 
 
 initobj-y += crt0.o
 
-crt0s :=
-ifeq ($(CONFIG_BIG_BOOTBLOCK),y)
-crt0s += $(src)/cpu/x86/16bit/entry16.inc
-endif
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-ifeq ($(CONFIG_BIG_BOOTBLOCK),y)
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/cpu_reset.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-endif
-crt0s += $(src)/cpu/x86/fpu_enable.inc
-ifeq ($(CONFIG_CPU_AMD_GX1),y)
-crt0s += $(src)/cpu/amd/model_gx1/cpu_setup.inc
-crt0s += $(src)/cpu/amd/model_gx1/gx_setup.inc
-endif
-ifeq ($(CONFIG_SSE),y)
-crt0s += $(src)/cpu/x86/sse_enable.inc
-endif
-ifeq ($(CONFIG_BIG_BOOTBLOCK),y)
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/failover.inc
-endif
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
-ifeq ($(CONFIG_SSE),y)
-crt0s += $(src)/cpu/x86/sse_disable.inc
-endif
-ifeq ($(CONFIG_MMX),y)
-crt0s += $(src)/cpu/x86/mmx_disable.inc
-endif
-
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ifeq ($(CONFIG_BIG_BOOTBLOCK),y)
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/jetway/j7f24/Makefile.inc
===================================================================
--- src/mainboard/jetway/j7f24/Makefile.inc	(revision 5158)
+++ src/mainboard/jetway/j7f24/Makefile.inc	(working copy)
@@ -30,11 +30,4 @@ 
 ldscripts += $(src)/arch/i386/lib/id.lds
 ldscripts += $(src)/arch/i386/lib/failover.lds
 
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/x86/fpu_enable.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
-crt0s += $(src)/cpu/x86/mmx_disable.inc
 
Index: src/mainboard/technexion/tim8690/Makefile.inc
===================================================================
--- src/mainboard/technexion/tim8690/Makefile.inc	(revision 5158)
+++ src/mainboard/technexion/tim8690/Makefile.inc	(working copy)
@@ -31,12 +31,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/technexion/tim5690/Makefile.inc
===================================================================
--- src/mainboard/technexion/tim5690/Makefile.inc	(revision 5158)
+++ src/mainboard/technexion/tim5690/Makefile.inc	(working copy)
@@ -37,12 +37,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/winent/pl6064/Makefile.inc
===================================================================
--- src/mainboard/winent/pl6064/Makefile.inc	(revision 5158)
+++ src/mainboard/winent/pl6064/Makefile.inc	(working copy)
@@ -6,12 +6,6 @@ 
 # This is part of the conversion to init-obj and away from included code.
 
 initobj-y += crt0.o
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/model_lx/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/nvidia/l1_2pvv/Makefile.inc
===================================================================
--- src/mainboard/nvidia/l1_2pvv/Makefile.inc	(revision 5158)
+++ src/mainboard/nvidia/l1_2pvv/Makefile.inc	(working copy)
@@ -28,13 +28,6 @@ 
 
 # This is part of the conversion to init-obj and away from included code. 
 initobj-y += crt0.o
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/southbridge/nvidia/mcp55/romstrap.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/intel/d945gclf/Makefile.inc
===================================================================
--- src/mainboard/intel/d945gclf/Makefile.inc	(revision 5158)
+++ src/mainboard/intel/d945gclf/Makefile.inc	(working copy)
@@ -36,12 +36,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/intel/model_6ex/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/intel/eagleheights/Makefile.inc
===================================================================
--- src/mainboard/intel/eagleheights/Makefile.inc	(revision 5158)
+++ src/mainboard/intel/eagleheights/Makefile.inc	(working copy)
@@ -10,13 +10,7 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
 # Use Intel Core (not Core 2) code for CAR init, any CPU might be used.
-crt0s += $(src)/cpu/intel/model_6ex/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/asus/a8v-e_se/Makefile.inc
===================================================================
--- src/mainboard/asus/a8v-e_se/Makefile.inc	(revision 5158)
+++ src/mainboard/asus/a8v-e_se/Makefile.inc	(working copy)
@@ -10,13 +10,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/southbridge/via/k8t890/romstrap.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/asus/a8n_e/Makefile.inc
===================================================================
--- src/mainboard/asus/a8n_e/Makefile.inc	(revision 5158)
+++ src/mainboard/asus/a8n_e/Makefile.inc	(working copy)
@@ -28,12 +28,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/16bit/entry16.inc
-crt0s += $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/x86/16bit/reset16.inc
-crt0s += $(src)/arch/i386/lib/id.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/16bit/entry16.lds
Index: src/mainboard/asus/m2v-mx_se/Makefile.inc
===================================================================
--- src/mainboard/asus/m2v-mx_se/Makefile.inc	(revision 5158)
+++ src/mainboard/asus/m2v-mx_se/Makefile.inc	(working copy)
@@ -28,9 +28,6 @@ 
 
 initobj-y += crt0.o
 # FIXME in $(top)/Makefile
-crt0s := $(src)/cpu/x86/32bit/entry32.inc
-crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
 
 ldscripts := $(src)/arch/i386/init/ldscript_fallback_cbfs.lb
 ldscripts += $(src)/cpu/x86/32bit/entry32.lds
Index: src/arch/i386/Makefile.inc
===================================================================
--- src/arch/i386/Makefile.inc	(revision 5158)
+++ src/arch/i386/Makefile.inc	(working copy)
@@ -62,11 +62,99 @@ 
 #######################################################################
 # done
 
-# crt0s should be set by now
-ifeq ($(crt0s),)
-$(error crt0s are empty. If your board still uses crt0-y and ldscript-y: It shouldn't, we moved away from that in r5065)
+crt0s :=
+ifeq ($(CONFIG_BIG_BOOTBLOCK),y)
+crt0s += $(src)/cpu/x86/16bit/entry16.inc
 endif
+crt0s += $(src)/cpu/x86/32bit/entry32.inc
+ifeq ($(CONFIG_BIG_BOOTBLOCK),y)
+crt0s += $(src)/cpu/x86/16bit/reset16.inc
+ifeq ($(CONFIG_ROMCC),y)
+crt0s += $(src)/arch/i386/lib/cpu_reset.inc
+endif
+crt0s += $(src)/arch/i386/lib/id.inc
+endif
 
+crt0s += $(src)/cpu/x86/fpu_enable.inc
+ifeq ($(CONFIG_CPU_AMD_GX1),y)
+crt0s += $(src)/cpu/amd/model_gx1/cpu_setup.inc
+crt0s += $(src)/cpu/amd/model_gx1/gx_setup.inc
+endif
+ifeq ($(CONFIG_SSE),y)
+crt0s += $(src)/cpu/x86/sse_enable.inc
+endif
+
+ifeq ($(CONFIG_CPU_AMD_LX),y)
+crt0s += $(src)/cpu/amd/model_lx/cache_as_ram.inc
+endif
+ifeq ($(CONFIG_CPU_AMD_SOCKET_F),y)
+crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
+endif
+ifeq ($(CONFIG_CPU_AMD_SOCKET_F_1207),y)
+crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
+endif
+ifeq ($(CONFIG_CPU_AMD_SOCKET_AM2),y)
+crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
+endif
+ifeq ($(CONFIG_CPU_AMD_SOCKET_S1G1),y)
+crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
+endif
+ifeq ($(CONFIG_CPU_AMD_SOCKET_754),y)
+crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
+endif
+ifeq ($(CONFIG_CPU_AMD_SOCKET_939),y)
+crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
+endif
+ifeq ($(CONFIG_CPU_AMD_SOCKET_940),y)
+crt0s += $(src)/cpu/amd/car/cache_as_ram.inc
+endif
+ifeq ($(CONFIG_CPU_INTEL_CORE),y)
+crt0s += $(src)/cpu/intel/model_6ex/cache_as_ram.inc
+endif
+ifeq ($(CONFIG_CPU_INTEL_SOCKET_BGA956),y)
+crt0s += $(src)/cpu/intel/model_6ex/cache_as_ram.inc
+endif
+# should be CONFIG_CPU_VIA_C7, but bcom/winnetp680, jetway/j7f24, via/epia-cn, via/pc2500e don't use CAR yet
+ifeq ($(CONFIG_BOARD_VIA_VT8454C),y)
+crt0s += $(src)/cpu/via/car/cache_as_ram.inc
+endif
+ifeq ($(CONFIG_BOARD_VIA_EPIA_M700),y)
+crt0s += $(src)/cpu/via/car/cache_as_ram.inc
+endif
+# who else could use this?
+ifeq ($(CONFIG_BOARD_TYAN_S2735),y)
+crt0s += $(src)/cpu/x86/car/cache_as_ram.inc
+endif
+
+ifeq ($(CONFIG_BIG_BOOTBLOCK),y)
+ifeq ($(CONFIG_ROMCC),y)
+crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/failover.inc
+endif
+endif
+crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
+
+ifeq ($(CONFIG_SSE),y)
+crt0s += $(src)/cpu/x86/sse_disable.inc
+endif
+ifeq ($(CONFIG_MMX),y)
+crt0s += $(src)/cpu/x86/mmx_disable.inc
+endif
+
+ifeq ($(CONFIG_BIG_BOOTBLOCK),y)
+ifeq ($(CONFIG_SOUTHBRIDGE_NVIDIA_CK804),y)
+crt0s += $(src)/southbridge/nvidia/ck804/romstrap.inc
+endif
+ifeq ($(CONFIG_SOUTHBRIDGE_NVIDIA_MCP55),y)
+crt0s += $(src)/southbridge/nvidia/mcp55/romstrap.inc
+endif
+ifeq ($(CONFIG_SOUTHBRIDGE_VIA_K8T890),y)
+crt0s += $(src)/southbridge/via/k8t890/romstrap.inc
+endif
+ifeq ($(CONFIG_NORTHBRIDGE_VIA_VX800),y)
+crt0s += $(src)/northbridge/via/vx800/romstrap.inc
+endif
+endif
+
 OPTION_TABLE_H:=
 ifeq ($(CONFIG_HAVE_OPTION_TABLE),y)
 OPTION_TABLE_H:=$(obj)/option_table.h
Index: Makefile
===================================================================
--- Makefile	(revision 5158)
+++ Makefile	(working copy)
@@ -219,6 +219,9 @@ 
 	@echo alldirs:=$(alldirs)
 	@echo allsrc=$(allsrc)
 
+printcrt0s:
+	@echo $(patsubst $(top)/%,%,$(crt0s))
+
 OBJS     := $(patsubst %,$(obj)/%,$(TARGETS-y))
 INCLUDES := -I$(top)/src -I$(top)/src/include -I$(obj) -I$(top)/src/arch/$(ARCHDIR-y)/include 
 INCLUDES += -I$(shell $(CC) -print-search-dirs | head -n 1 | cut -d' ' -f2)include