Isaac Christensen (isaac.christensen@se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/6710
-gerrit
commit 7f9aa3bdbda31a04cb9085048f59b68e56c8cef9 Author: Gabe Black gabeblack@google.com Date: Sun Sep 29 05:40:13 2013 -0700
ARM: Make it possible to use a custom bootblock implementation.
Tegra needs to use a custom bootblock implementation because it starts on a coprocessor which uses ARMv4. It doesn't have the same control registers, caches, etc., and the regular bootblock gets exceptions and dies.
Change-Id: Id197db2939bc840ad64244d6e2017fc5c89e0cbd Signed-off-by: Gabe Black gabeblack@google.com Reviewed-on: https://chromium-review.googlesource.com/171018 Reviewed-by: Ronald Minnich rminnich@chromium.org Commit-Queue: Gabe Black gabeblack@chromium.org Tested-by: Gabe Black gabeblack@chromium.org (cherry picked from commit a66393fdd6fe68757e394b8a611e610f1938771d) Signed-off-by: Isaac Christensen isaac.christensen@se-eng.com --- src/arch/armv7/Kconfig | 6 ++++++ src/arch/armv7/Makefile.inc | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/arch/armv7/Kconfig b/src/arch/armv7/Kconfig index a7f5b23..e272474 100644 --- a/src/arch/armv7/Kconfig +++ b/src/arch/armv7/Kconfig @@ -11,6 +11,12 @@ config ARCH_RAMSTAGE_ARMV7 bool default n
+# If a custom bootblock is necessary, this option should be "select"-ed by +# the thing that needs it, probably the CPU. +config ARM_BOOTBLOCK_CUSTOM + bool + default n + config CPU_HAS_BOOTBLOCK_INIT bool default n diff --git a/src/arch/armv7/Makefile.inc b/src/arch/armv7/Makefile.inc index a18398a..de37661 100644 --- a/src/arch/armv7/Makefile.inc +++ b/src/arch/armv7/Makefile.inc @@ -51,11 +51,12 @@ endif # CONFIG_ARCH_ARMV7
ifeq ($(CONFIG_ARCH_BOOTBLOCK_ARMV7),y)
-bootblock-y += id.S +ifneq ($(CONFIG_ARM_BOOTBLOCK_CUSTOM),y) bootblock-y += bootblock.S - +bootblock-y += bootblock_simple.c +endif +bootblock-y += id.S $(obj)/arch/arm/id.bootblock.o: $(obj)/build.h -bootblock-y += $(call strip_quotes,$(CONFIG_BOOTBLOCK_SOURCE))
bootblock-y += stages.c bootblock-y += cache.c