aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Hendricks <dhendrix@chromium.org>2013-01-16 15:00:07 -0800
committerRonald G. Minnich <rminnich@gmail.com>2013-01-17 02:24:58 +0100
commite2851f2812ddf39b362e2abba76eeec0cd705dee (patch)
tree2f44d6e2f29a89cbe91ea640e55285c47bddb867 /src
parent88c4939c1b6cb2097a9877bb298d2ee6b8580f62 (diff)
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> Reviewed-on: http://review.coreboot.org/2163 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/arch/armv7/Makefile.inc14
-rw-r--r--src/arch/armv7/romstage.ld2
-rw-r--r--src/mainboard/google/snow/Makefile.inc2
3 files changed, 11 insertions, 7 deletions
diff --git a/src/arch/armv7/Makefile.inc b/src/arch/armv7/Makefile.inc
index cc306335cd..ca64f7873f 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 b63a78e05e..61e3479cae 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 01488d0545..26378dbbbe 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