Author: stepan Date: Tue Mar 30 22:32:01 2010 New Revision: 5330 URL: https://tracker.coreboot.org/trac/coreboot/changeset/5330
Log: make crt0s and ldscripts evaluate late, so the chipset_* variables are there at the time they are finally used. This should solve the Problem Myles was seeing earlier today.
Signed-off-by: Stefan Reinauer stepan@coresystems.de Acked-by: Stefan Reinauer stepan@coresystems.de
Modified: trunk/Makefile trunk/src/arch/i386/Makefile.inc
Modified: trunk/Makefile ============================================================================== --- trunk/Makefile Tue Mar 30 17:49:14 2010 (r5329) +++ trunk/Makefile Tue Mar 30 22:32:01 2010 (r5330) @@ -165,8 +165,6 @@ initobjs:= drivers:= smmobjs:= -crt0s:= -ldscripts:= types:=obj initobj driver smmobj
# Clean -y variables, include Makefile.inc @@ -263,7 +261,8 @@ @echo LIBGCC_FILE_NAME=$(LIBGCC_FILE_NAME)
printcrt0s: - @echo $(patsubst $(top)/%,%,$(crt0s)) + @echo crt0s=$(crt0s) + @echo ldscripts=$(ldscripts)
OBJS := $(patsubst %,$(obj)/%,$(TARGETS-y)) INCLUDES := -Isrc -Isrc/include -I$(obj) -Isrc/arch/$(ARCHDIR-y)/include
Modified: trunk/src/arch/i386/Makefile.inc ============================================================================== --- trunk/src/arch/i386/Makefile.inc Tue Mar 30 17:49:14 2010 (r5329) +++ trunk/src/arch/i386/Makefile.inc Tue Mar 30 22:32:01 2010 (r5330) @@ -83,8 +83,8 @@ ####################################################################### # done
-crt0s := -ldscripts := +crt0s = +ldscripts = ldscripts += $(src)/arch/i386/init/ldscript_fallback_cbfs.lb ifeq ($(CONFIG_BIG_BOOTBLOCK),y) crt0s += $(src)/cpu/x86/16bit/entry16.inc
On Tue, Mar 30, 2010 at 2:32 PM, repository service svn@coreboot.orgwrote:
Author: stepan Date: Tue Mar 30 22:32:01 2010 New Revision: 5330 URL: https://tracker.coreboot.org/trac/coreboot/changeset/5330
Log: make crt0s and ldscripts evaluate late, so the chipset_* variables are there at the time they are finally used. This should solve the Problem Myles was seeing earlier today. http://www.coreboot.org/mailman/listinfo/coreboot
It does.
Thanks, Myles
Myles Watson mylesgw@gmail.com writes:
On Tue, Mar 30, 2010 at 2:32 PM, repository service svn@coreboot.org wrote:
Author: stepan Date: Tue Mar 30 22:32:01 2010 New Revision: 5330 URL: https://tracker.coreboot.org/trac/coreboot/changeset/5330 Log: make crt0s and ldscripts evaluate late, so the chipset_* variables are there at the time they are finally used. This should solve the Problem Myles was seeing earlier today.
It does.
Hm, this only seems to be effective if CONFIG_BIG_BOOTBLOCK is set. Not sure why? The s2912_fam10 mainboard had TINY_BOOTBLOCK set, and stopped working when I updated today. I'm not sure why that is, either, but I see both the serengeti_fam10 and mahogany_fam10 mainboards have it set as well.
I made a quick attempt at fixing this, but ran into linker script problems like:
.../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: section .id loaded at [00000000ffffff61,00000000ffffff7f] overlaps section .rom loaded at [00000000ffff0000,0000000100000cdf] .../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: build/coreboot: section .id vma 0xffffff61 overlaps previous sections .../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: build/coreboot: section .romstrap vma 0xffffffa0 overlaps previous sections .../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: build/coreboot: section .reset vma 0xfffffff0 overlaps previous sections .../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: build/coreboot: section .text vma 0x100000d00 overlaps previous sections collect2: ld returned 1 exit status
which I didn't really have the time to pursue. I'm reverting my local checkout for now. If anyone has pointers regarding how to resolve this, I'd be happy to hear them.
On 4/9/10 1:21 PM, Arne Georg Gleditsch wrote:
Myles Watson mylesgw@gmail.com writes:
On Tue, Mar 30, 2010 at 2:32 PM, repository service svn@coreboot.org wrote:
Author: stepan Date: Tue Mar 30 22:32:01 2010 New Revision: 5330 URL: https://tracker.coreboot.org/trac/coreboot/changeset/5330 Log: make crt0s and ldscripts evaluate late, so the chipset_* variables are there at the time they are finally used. This should solve the Problem Myles was seeing earlier today.
It does.
Hm, this only seems to be effective if CONFIG_BIG_BOOTBLOCK is set. Not sure why? The s2912_fam10 mainboard had TINY_BOOTBLOCK set, and stopped working when I updated today. I'm not sure why that is, either, but I see both the serengeti_fam10 and mahogany_fam10 mainboards have it set as well.
I made a quick attempt at fixing this, but ran into linker script problems like:
.../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: section .id loaded at [00000000ffffff61,00000000ffffff7f] overlaps section .rom loaded at [00000000ffff0000,0000000100000cdf] .../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: build/coreboot: section .id vma 0xffffff61 overlaps previous sections .../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: build/coreboot: section .romstrap vma 0xffffffa0 overlaps previous sections .../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: build/coreboot: section .reset vma 0xfffffff0 overlaps previous sections .../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: build/coreboot: section .text vma 0x100000d00 overlaps previous sections collect2: ld returned 1 exit status
which I didn't really have the time to pursue. I'm reverting my local checkout for now. If anyone has pointers regarding how to resolve this, I'd be happy to hear them.
What was your local patch?
Stefan Reinauer stepan@coresystems.de writes:
I made a quick attempt at fixing this, but ran into linker script problems like:
.../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: section .id loaded at [00000000ffffff61,00000000ffffff7f] overlaps section .rom loaded at [00000000ffff0000,0000000100000cdf] .../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: build/coreboot: section .id vma 0xffffff61 overlaps previous sections .../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: build/coreboot: section .romstrap vma 0xffffffa0 overlaps previous sections .../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: build/coreboot: section .reset vma 0xfffffff0 overlaps previous sections .../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: build/coreboot: section .text vma 0x100000d00 overlaps previous sections collect2: ld returned 1 exit status
which I didn't really have the time to pursue. I'm reverting my local checkout for now. If anyone has pointers regarding how to resolve this, I'd be happy to hear them.
What was your local patch?
I tried both disabling the TINY_BOOTBLOCK directive as well as modifying src/arch/i386/Makefile.inc to include chipset_bootblock_* unconditionally, both resulted in similar errors. (I do have other local changes as well, but none that should affect this. They might affect code size, though.)
On 4/9/10 1:50 PM, Arne Georg Gleditsch wrote:
Stefan Reinauer stepan@coresystems.de writes:
I made a quick attempt at fixing this, but ran into linker script problems like:
.../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: section .id loaded at [00000000ffffff61,00000000ffffff7f] overlaps section .rom loaded at [00000000ffff0000,0000000100000cdf] .../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: build/coreboot: section .id vma 0xffffff61 overlaps previous sections .../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: build/coreboot: section .romstrap vma 0xffffffa0 overlaps previous sections .../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: build/coreboot: section .reset vma 0xfffffff0 overlaps previous sections .../crossgcc/xgcc/bin/../lib/gcc/i386-elf/4.4.2/../../../../i386-elf/bin/ld: build/coreboot: section .text vma 0x100000d00 overlaps previous sections collect2: ld returned 1 exit status
which I didn't really have the time to pursue. I'm reverting my local checkout for now. If anyone has pointers regarding how to resolve this, I'd be happy to hear them.
What was your local patch?
I tried both disabling the TINY_BOOTBLOCK directive as well as modifying src/arch/i386/Makefile.inc to include chipset_bootblock_* unconditionally, both resulted in similar errors. (I do have other local changes as well, but none that should affect this. They might affect code size, though.)
Ah, the error above may occur if changing significant parts of Kconfig variables, such as tiny bootblock ;)
please remove build/ and try again.
There should be a dependency fix for this.
Stefan Reinauer stepan@coresystems.de writes:
Ah, the error above may occur if changing significant parts of Kconfig variables, such as tiny bootblock ;)
please remove build/ and try again.
I always do. :) This is reproducible as follows:
$ svn co svn://coreboot.org/coreboot/trunk coreboot [..] Checked out revision 5396. $ cd coreboot $ perl -npi -e 's/(?=select TINY)/#/' src/mainboard/tyan/s2912_fam10/Kconfig <add .config> $ make oldconfig $ make
Relevant .config attached.
On 4/9/10 5:31 PM, Arne Georg Gleditsch wrote:
Stefan Reinauer stepan@coresystems.de writes:
Ah, the error above may occur if changing significant parts of Kconfig variables, such as tiny bootblock ;)
please remove build/ and try again.
I always do. :) This is reproducible as follows:
$ svn co svn://coreboot.org/coreboot/trunk coreboot [..] Checked out revision 5396. $ cd coreboot $ perl -npi -e 's/(?=select TINY)/#/' src/mainboard/tyan/s2912_fam10/Kconfig <add .config> $ make oldconfig $ make
Aaah! The Fam10 code is too big to work without tiny bootblock. Sorry I didn't recognize this earlier.
Which code is missing in the final binary, do you say?
Stefan
Stefan Reinauer stepan@coresystems.de writes:
I always do. :) This is reproducible as follows:
$ svn co svn://coreboot.org/coreboot/trunk coreboot [..] Checked out revision 5396. $ cd coreboot $ perl -npi -e 's/(?=select TINY)/#/' src/mainboard/tyan/s2912_fam10/Kconfig <add .config> $ make oldconfig $ make
Aaah! The Fam10 code is too big to work without tiny bootblock. Sorry I didn't recognize this earlier.
Which code is missing in the final binary, do you say?
The s2912_fam10 is missing the romstrap parts. When I try to enable the romstrap linker scripts for TINY_BOOTBLOCK (instead of disabling TINY) I get a different set of linker overlap errors.
Am 12.04.2010 08:28, schrieb Arne Georg Gleditsch:
The s2912_fam10 is missing the romstrap parts. When I try to enable the romstrap linker scripts for TINY_BOOTBLOCK (instead of disabling TINY) I get a different set of linker overlap errors.
r5410 fixes this issue here.
Patrick
Am 12.04.2010 08:28, schrieb Arne Georg Gleditsch:
The s2912_fam10 is missing the romstrap parts. When I try to enable the romstrap linker scripts for TINY_BOOTBLOCK (instead of disabling TINY) I get a different set of linker overlap errors.
r5410 fixes this issue here.
Patrick
Patrick Georgi patrick.georgi@coresystems.de writes:
r5410 fixes this issue here.
Confirmed, boots here. Thanks.