David Hendricks (dhendrix@chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2163
-gerrit
commit 939d2f7b3a6e32707a878df4c84f1b61b6c77ade Author: David Hendricks dhendrix@chromium.org Date: Wed Jan 16 15:00:07 2013 -0800
make main() in snow's romstage.c our romstage entry point
Our earlier attempt was jumping straight from asm to the old u-boot board_init_f in lowlevel_init_c.c. We are getting ready to transition to using a real bootblock for ARM, so add romstage.c to the files compiled and we'll make main() our entry point.
This also updates romstage.ld to place main() (*(.text.startup)) at the beginning of romstage.
Change-Id: Ifc77a6bfba27d915c4cad62c6c8040665294628a Signed-off-by: David Hendricks dhendrix@chromium.org --- src/arch/armv7/Makefile.inc | 14 ++++++++------ src/arch/armv7/romstage.ld | 2 ++ src/mainboard/google/snow/Makefile.inc | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/src/arch/armv7/Makefile.inc b/src/arch/armv7/Makefile.inc index cc30633..ca64f78 100644 --- a/src/arch/armv7/Makefile.inc +++ b/src/arch/armv7/Makefile.inc @@ -148,6 +148,7 @@ CFLAGS += \ # For various headers imported from Linux CFLAGS += -D__LINUX_ARM_ARCH__=7
+#crt0s = $(src)/arch/armv7/bootblock.inc ldscripts = ldscripts += $(src)/arch/armv7/romstage.ld
@@ -164,17 +165,18 @@ ifeq ($(CONFIG_LLSHELL),y) crt0s += $(src)/arch/armv7/llshell/llshell.inc endif
-crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc +# FIXME: do we need romstage.inc? Maybe just get rid of this entirely. +#crt0s += $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc
$(obj)/mainboard/$(MAINBOARDDIR)/romstage.pre.inc: $(src)/mainboard/$(MAINBOARDDIR)/romstage.c $(OPTION_TABLE_H) $(obj)/build.h $(obj)/config.h @printf " CC romstage.inc\n" $(CC) -MMD $(CFLAGS) -D__PRE_RAM__ -I$(src) -I. -I$(obj) -c -S $< -o $@
-$(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc: $(obj)/mainboard/$(MAINBOARDDIR)/romstage.pre.inc - @printf " POST romstage.inc\n" - sed -e 's/.rodata/.rom.data/g' -e 's/^.text/.section .rom.text/g' \ - -e 's/^.section .text/.section .rom.text/g' $^ > $@.tmp - mv $@.tmp $@ +#$(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc: $(obj)/mainboard/$(MAINBOARDDIR)/romstage.pre.inc +# @printf " POST romstage.inc\n" +# sed -e 's/.rodata/.rom.data/g' -e 's/^.text/.section .rom.text/g' \ +# -e 's/^.section .text/.section .rom.text/g' $^ > $@.tmp +# mv $@.tmp $@
# Things that appear in every board romstage-srcs += $(objgenerated)/crt0.s diff --git a/src/arch/armv7/romstage.ld b/src/arch/armv7/romstage.ld index b63a78e..61e3479 100644 --- a/src/arch/armv7/romstage.ld +++ b/src/arch/armv7/romstage.ld @@ -43,6 +43,8 @@ SECTIONS
.romtext . : { _rom = .; + _start = .; + *(.text.startup); *(.text); }
diff --git a/src/mainboard/google/snow/Makefile.inc b/src/mainboard/google/snow/Makefile.inc index 01488d0..26378db 100644 --- a/src/mainboard/google/snow/Makefile.inc +++ b/src/mainboard/google/snow/Makefile.inc @@ -17,7 +17,7 @@ ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ##
-#romstage-y += romstage.c +romstage-y += romstage.c
# ramstage-y += ec.c