diff options
author | Julius Werner <jwerner@chromium.org> | 2015-10-09 13:37:58 -0700 |
---|---|---|
committer | Julius Werner <jwerner@chromium.org> | 2015-11-11 05:08:07 +0100 |
commit | 86fc11d0c9b799f916d69ced72dc8a26a07591a2 (patch) | |
tree | 3a38637eac9dc376e29eeadd7e36e71935f0c211 /src/arch/x86 | |
parent | fe4cbf1167fcb27ec332a2efe16297705ca07359 (diff) |
arm/arm64: Generalize bootblock C entry point
When we first added ARM support to coreboot, it was clear that the
bootblock would need to do vastly different tasks than on x86, so we
moved its main logic under arch/. Now that we have several more
architectures, it turns out (as with so many things lately) that x86 is
really the odd one out, and all the others are trying to do pretty much
the same thing. This has already caused maintenance issues as the ARM32
bootblock developed and less-mature architectures were left behind with
old cruft.
This patch tries to address that problem by centralizing that logic
under lib/ for use by all architectures/SoCs that don't explicitly
opt-out (with the slightly adapted existing BOOTBLOCK_CUSTOM option).
This works great out of the box for ARM32 and ARM64. It could probably
be easily applied to MIPS and RISCV as well, but I don't have any of
those boards to test so I'll mark them as BOOTBLOCK_CUSTOM for now and
leave that for later cleanup.
BRANCH=None
BUG=None
TEST=Built Jerry and Falco, booted Oak.
Change-Id: Ibbf727ad93651e388aef20e76f03f5567f9860cb
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: http://review.coreboot.org/12076
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins)
Diffstat (limited to 'src/arch/x86')
-rw-r--r-- | src/arch/x86/Kconfig | 2 | ||||
-rw-r--r-- | src/arch/x86/bootblock_normal.c | 2 | ||||
-rw-r--r-- | src/arch/x86/bootblock_simple.c | 2 | ||||
-rw-r--r-- | src/arch/x86/include/arch/bootblock_common.h (renamed from src/arch/x86/include/bootblock_common.h) | 0 |
4 files changed, 4 insertions, 2 deletions
diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig index 88b259297c..738e7d1c0a 100644 --- a/src/arch/x86/Kconfig +++ b/src/arch/x86/Kconfig @@ -24,6 +24,7 @@ config ARCH_BOOTBLOCK_X86_32 bool default n select ARCH_X86 + select BOOTBLOCK_CUSTOM config ARCH_VERSTAGE_X86_32 bool @@ -43,6 +44,7 @@ config ARCH_BOOTBLOCK_X86_64 bool default n select ARCH_X86 + select BOOTBLOCK_CUSTOM config ARCH_VERSTAGE_X86_64 bool diff --git a/src/arch/x86/bootblock_normal.c b/src/arch/x86/bootblock_normal.c index a4dc3c4d25..d5f03b7699 100644 --- a/src/arch/x86/bootblock_normal.c +++ b/src/arch/x86/bootblock_normal.c @@ -1,5 +1,5 @@ #include <smp/node.h> -#include <bootblock_common.h> +#include <arch/bootblock_common.h> #include <pc80/mc146818rtc.h> #include <halt.h> diff --git a/src/arch/x86/bootblock_simple.c b/src/arch/x86/bootblock_simple.c index bb0591fb53..4bff360a08 100644 --- a/src/arch/x86/bootblock_simple.c +++ b/src/arch/x86/bootblock_simple.c @@ -1,5 +1,5 @@ #include <smp/node.h> -#include <bootblock_common.h> +#include <arch/bootblock_common.h> #include <halt.h> static void main(unsigned long bist) diff --git a/src/arch/x86/include/bootblock_common.h b/src/arch/x86/include/arch/bootblock_common.h index 939ba08a67..939ba08a67 100644 --- a/src/arch/x86/include/bootblock_common.h +++ b/src/arch/x86/include/arch/bootblock_common.h |