summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2013-09-29 05:40:13 -0700
committerIsaac Christensen <isaac.christensen@se-eng.com>2014-08-28 01:23:51 +0200
commita2a87d4bca39bdb2e0ffda88e50cab0a98a09621 (patch)
treec8c2e7373e0c92d905005ab7dbb4b55dd366c711
parent74fade43ee6563505b29484ac5cf8c860a766650 (diff)
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> Reviewed-on: http://review.coreboot.org/6710 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com> Reviewed-by: Furquan Shaikh <furquan@google.com>
-rw-r--r--src/arch/armv7/Kconfig6
-rw-r--r--src/arch/armv7/Makefile.inc7
2 files changed, 10 insertions, 3 deletions
diff --git a/src/arch/armv7/Kconfig b/src/arch/armv7/Kconfig
index a7f5b23e8e..e272474604 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 a18398a58c..2022f2078b 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-$(CONFIG_BOOTBLOCK_SIMPLE) += 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