Am Mittwoch, den 07.10.2009, 16:18 +0200 schrieb Uwe Hermann:
as rca/rm4100 wants -O only.
This should be investigated, though. I believe pretty much _all_ those -O or -O2 lines are copy-paste anyway, nobody really ever thought about which of them is appropriate for the resp. board.
Apart from possible romcc bugs I cannot think about a reason to not use the -O2 option for all boards per default. Is there such a bug?
romcc crashes, so yes, a bug. Some other board requires quite a specific romcc option, so there are more such special cases. Fixing romcc bugs will be a nice task once the tree settled down a bit.
Index: src/mainboard/bcom/winnetp680/Kconfig
--- src/mainboard/bcom/winnetp680/Kconfig (Revision 0) +++ src/mainboard/bcom/winnetp680/Kconfig (Revision 0)
[...]
+config RAMBASE
- hex
- default 0x4000
- depends on BOARD_BCOM_WINNETP680
This is also something we should look into later. I'd use the new default for RAMBASE whereever possible, unless some boards have problems with that (which we should find out).
I can do some tests on boards which used 0x4000 earlier.
At least those boards with their own vgabios.c (pretty much all via chipsets) must be <1MB due to the way their VGABIOS stuff is implemented. Stefan and I tried to replace that with x86emu (or any of the common vga things), but didn't succeed so far.
Index: src/mainboard/bcom/winnetp680/Makefile.inc
--- src/mainboard/bcom/winnetp680/Makefile.inc (Revision 0) +++ src/mainboard/bcom/winnetp680/Makefile.inc (Revision 0) @@ -0,0 +1,61 @@
[...]
+initobj-y += crt0.o +obj-y += mainboard.o +obj-$(CONFIG_HAVE_PIRQ_TABLE) += irq_tables.o +obj-$(CONFIG_HAVE_MP_TABLE) += mptable.o
+obj-$(CONFIG_HAVE_ACPI_TABLES) += fadt.o +obj-$(CONFIG_HAVE_ACPI_TABLES) += dsdt.o +obj-$(CONFIG_HAVE_ACPI_TABLES) += acpi_tables.o
+ldscript-y += ../../../../src/arch/i386/init/ldscript_fallback_cbfs.lb +ldscript-y += ../../../../src/cpu/x86/16bit/entry16.lds +ldscript-y += ../../../../src/cpu/x86/16bit/reset16.lds +ldscript-y += ../../../../src/arch/i386/lib/id.lds +ldscript-y += ../../../../src/arch/i386/lib/failover.lds
+crt0-y += ../../../../src/cpu/x86/16bit/entry16.inc +crt0-y += ../../../../src/cpu/x86/32bit/entry32.inc +crt0-y += ../../../../src/cpu/x86/16bit/reset16.inc +crt0-y += ../../../../src/arch/i386/lib/id.inc +crt0-y += ../../../../src/cpu/x86/fpu/enable_fpu.inc +crt0-y += ../../../../src/cpu/x86/mmx/enable_mmx.inc +crt0-y += auto.inc +crt0-y += ../../../../src/cpu/x86/mmx/disable_mmx.inc
+ifdef POST_EVALUATION
+$(obj)/mainboard/$(MAINBOARDDIR)/dsdt.o: $(obj)/dsdt.c
- $(CC) $(DISTRO_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(DEBUG_CFLAGS) -I$(src) -I. -c $< -o $@
+$(obj)/dsdt.c: $(src)/mainboard/$(MAINBOARDDIR)/dsdt.asl
- iasl -p dsdt -tc $(src)/mainboard/$(MAINBOARDDIR)/dsdt.asl
- mv dsdt.hex $@
+$(obj)/mainboard/$(MAINBOARDDIR)/auto.inc: $(src)/mainboard/$(MAINBOARDDIR)/auto.c $(obj)/option_table.h
- $(CC) $(DISTRO_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(DEBUG_CFLAGS) -I$(src) -I. -c -S $(src)/mainboard/$(MAINBOARDDIR)/auto.c -o $@
- perl -e 's/.rodata/.rom.data/g' -pi $@
- perl -e 's/.text/.section .rom.text/g' -pi $@
+endif
Long-term this should move into a global file as it's pretty much the same for all boards.
Yes, that's on my TODO for a while. The ACPI related things require some file renaming, which I wanted to wait for until newconfig is gone (no need to waste time on adapting that one, too)
Patrick