summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorPatrick Georgi <patrick.georgi@coresystems.de>2010-02-09 12:21:10 +0000
committerPatrick Georgi <patrick.georgi@coresystems.de>2010-02-09 12:21:10 +0000
commit2063197a4f610898c6e258e9fbd58b0bc92c7e85 (patch)
treef7437a74e09946f66d294d3e85621cdcc74062f5 /src/arch
parente4119ccff8d213c0592fe7a1884e5b2604928f7b (diff)
downloadcoreboot-2063197a4f610898c6e258e9fbd58b0bc92c7e85.tar.xz
Move all the copies of the romstage.inc rule to
src/arch/i386/Makefile.inc For that to work, I had to: - Add a CONFIG_ROMCC variable - Set that variable on all ROMCC boards - conditionally choose romcc or gcc rule based on that variable - remove those two rules from all the boards' Makefiles - switch a couple of boards to HAVE_OPTION_TABLE, as they actually have. Also remove the duplication of rules with the sole difference of if they depend on option_table.h or not. Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de> Acked-by: Peter Stuge <peter@stuge.se> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5099 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/i386/Kconfig4
-rw-r--r--src/arch/i386/Makefile.inc21
2 files changed, 25 insertions, 0 deletions
diff --git a/src/arch/i386/Kconfig b/src/arch/i386/Kconfig
index 1bbeca513d..d64eb7f28e 100644
--- a/src/arch/i386/Kconfig
+++ b/src/arch/i386/Kconfig
@@ -49,6 +49,10 @@ config BIG_BOOTBLOCK
default n if TINY_BOOTBLOCK
default y
+config ROMCC
+ bool
+ default n
+
config BOOTBLOCK_NORTHBRIDGE_INIT
string
diff --git a/src/arch/i386/Makefile.inc b/src/arch/i386/Makefile.inc
index 5f7bab600e..b46fc8cfb5 100644
--- a/src/arch/i386/Makefile.inc
+++ b/src/arch/i386/Makefile.inc
@@ -66,6 +66,27 @@ $(obj)/coreboot.a: $(objs)
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)
endif
+
+OPTION_TABLE_H:=
+ifeq ($(CONFIG_HAVE_OPTION_TABLE),y)
+OPTION_TABLE_H:=$(obj)/option_table.h
+endif
+
+ifeq ($(CONFIG_ROMCC),y)
+ROMCCFLAGS ?= -mcpu=p2 -O2
+
+$(obj)/mainboard/$(MAINBOARDDIR)/failover.inc: $(obj)/romcc $(src)/arch/i386/lib/failover.c
+ $(obj)/romcc $(ROMCCFLAGS) --label-prefix=failover $(INCLUDES) $(src)/arch/i386/lib/failover.c -o $@
+
+$(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc: $(src)/mainboard/$(MAINBOARDDIR)/romstage.c $(obj)/romcc $(OPTION_TABLE_H) $(obj)/build.h
+ $(obj)/romcc $(ROMCCFLAGS) $(INCLUDES) $< -o $@
+
+else
+$(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc: $(src)/mainboard/$(MAINBOARDDIR)/romstage.c $(OPTION_TABLE_H) $(obj)/build.h
+ $(CC) $(DISTRO_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(DEBUG_CFLAGS) -I$(src) -I. -c -S $< -o $@
+ perl -e 's/\.rodata/.rom.data/g' -pi $@
+ perl -e 's/\.text/.section .rom.text/g' -pi $@
+endif
endif
ifeq ($(CONFIG_TINY_BOOTBLOCK),y)