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/soc | |
parent | fe4cbf1167fcb27ec332a2efe16297705ca07359 (diff) | |
download | coreboot-86fc11d0c9b799f916d69ced72dc8a26a07591a2.tar.xz |
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/soc')
-rw-r--r-- | src/soc/broadcom/cygnus/Kconfig | 4 | ||||
-rw-r--r-- | src/soc/marvell/bg4cd/Kconfig | 6 | ||||
-rw-r--r-- | src/soc/nvidia/tegra124/Kconfig | 10 | ||||
-rw-r--r-- | src/soc/nvidia/tegra132/Kconfig | 10 | ||||
-rw-r--r-- | src/soc/nvidia/tegra210/Kconfig | 10 | ||||
-rw-r--r-- | src/soc/rockchip/rk3288/Kconfig | 4 |
6 files changed, 4 insertions, 40 deletions
diff --git a/src/soc/broadcom/cygnus/Kconfig b/src/soc/broadcom/cygnus/Kconfig index 871d84c208..8cafc4bc64 100644 --- a/src/soc/broadcom/cygnus/Kconfig +++ b/src/soc/broadcom/cygnus/Kconfig @@ -33,10 +33,6 @@ config CHROMEOS select SEPARATE_VERSTAGE select RETURN_FROM_VERSTAGE -config BOOTBLOCK_CPU_INIT - string - default "soc/broadcom/cygnus/bootblock.c" - config CONSOLE_SERIAL_UART_ADDRESS hex depends on DRIVERS_UART diff --git a/src/soc/marvell/bg4cd/Kconfig b/src/soc/marvell/bg4cd/Kconfig index 255ce57302..2e5b15c5bc 100644 --- a/src/soc/marvell/bg4cd/Kconfig +++ b/src/soc/marvell/bg4cd/Kconfig @@ -17,10 +17,10 @@ config SOC_MARVELL_BG4CD bool default n select ARCH_BOOTBLOCK_ARMV7_M + select BOOTBLOCK_CUSTOM if VBOOT_VERIFY_FIRMWARE select ARCH_RAMSTAGE_ARMV7 select ARCH_ROMSTAGE_ARMV7 select ARCH_VERSTAGE_ARMV7_M - select ARM_BOOTBLOCK_CUSTOM if VBOOT_VERIFY_FIRMWARE select BOOTBLOCK_CONSOLE select GENERIC_UDELAY select HAVE_MONOTONIC_TIMER @@ -31,8 +31,4 @@ if SOC_MARVELL_BG4CD config CHROMEOS select VBOOT_STARTS_IN_BOOTBLOCK -config BOOTBLOCK_CPU_INIT - string - default "soc/marvell/bg4cd/bootblock.c" - endif diff --git a/src/soc/nvidia/tegra124/Kconfig b/src/soc/nvidia/tegra124/Kconfig index c35e2c200c..bd38d7619a 100644 --- a/src/soc/nvidia/tegra124/Kconfig +++ b/src/soc/nvidia/tegra124/Kconfig @@ -2,6 +2,7 @@ config SOC_NVIDIA_TEGRA124 bool default n select ARCH_BOOTBLOCK_ARMV4 + select BOOTBLOCK_CUSTOM select ARCH_VERSTAGE_ARMV7 select ARCH_ROMSTAGE_ARMV7 select ARCH_RAMSTAGE_ARMV7 @@ -10,20 +11,11 @@ config SOC_NVIDIA_TEGRA124 select HAVE_MONOTONIC_TIMER select GENERIC_UDELAY select BOOTBLOCK_CONSOLE - select ARM_BOOTBLOCK_CUSTOM select ARM_LPAE select GENERIC_GPIO_LIB if SOC_NVIDIA_TEGRA124 -config BOOTBLOCK_CPU_INIT - string - default "soc/nvidia/tegra124/bootblock.c" - help - CPU/SoC-specific bootblock code. This is useful if the - bootblock must load microcode or copy data from ROM before - searching for the bootblock. - config TEGRA124_MODEL_TD570D bool "TD570D" diff --git a/src/soc/nvidia/tegra132/Kconfig b/src/soc/nvidia/tegra132/Kconfig index cb6798c8ac..4be9a4c2a8 100644 --- a/src/soc/nvidia/tegra132/Kconfig +++ b/src/soc/nvidia/tegra132/Kconfig @@ -2,6 +2,7 @@ config SOC_NVIDIA_TEGRA132 bool default n select ARCH_BOOTBLOCK_ARMV4 + select BOOTBLOCK_CUSTOM select ARCH_VERSTAGE_ARMV4 select ARCH_ROMSTAGE_ARMV4 select ARCH_RAMSTAGE_ARMV8_64 @@ -11,7 +12,6 @@ config SOC_NVIDIA_TEGRA132 select GENERIC_UDELAY select HAVE_HARD_RESET select HAVE_UART_SPECIAL - select ARM_BOOTBLOCK_CUSTOM select GENERIC_GPIO_LIB select HAS_PRECBMEM_TIMESTAMP_REGION @@ -31,14 +31,6 @@ config MAINBOARD_DO_SOR_INIT help Initialize dp display -config BOOTBLOCK_CPU_INIT - string - default "soc/nvidia/tegra132/bootblock.c" - help - CPU/SoC-specific bootblock code. This is useful if the - bootblock must load microcode or copy data from ROM before - searching for the bootblock. - config MAX_CPUS int default 2 diff --git a/src/soc/nvidia/tegra210/Kconfig b/src/soc/nvidia/tegra210/Kconfig index 2d910bec6e..e70cdc6517 100644 --- a/src/soc/nvidia/tegra210/Kconfig +++ b/src/soc/nvidia/tegra210/Kconfig @@ -2,6 +2,7 @@ config SOC_NVIDIA_TEGRA210 bool default n select ARCH_BOOTBLOCK_ARMV4 + select BOOTBLOCK_CUSTOM select ARCH_VERSTAGE_ARMV4 select ARCH_ROMSTAGE_ARMV4 select ARCH_RAMSTAGE_ARMV8_64 @@ -12,7 +13,6 @@ config SOC_NVIDIA_TEGRA210 select GENERIC_UDELAY select HAVE_HARD_RESET select HAVE_UART_SPECIAL - select ARM_BOOTBLOCK_CUSTOM select ARM64_USE_ARM_TRUSTED_FIRMWARE select HAS_PRECBMEM_TIMESTAMP_REGION select GENERIC_GPIO_LIB @@ -36,14 +36,6 @@ config MAINBOARD_DO_SOR_INIT help Initialize dp display -config BOOTBLOCK_CPU_INIT - string - default "soc/nvidia/tegra210/bootblock.c" - help - CPU/SoC-specific bootblock code. This is useful if the - bootblock must load microcode or copy data from ROM before - searching for the bootblock. - config MAX_CPUS int default 4 diff --git a/src/soc/rockchip/rk3288/Kconfig b/src/soc/rockchip/rk3288/Kconfig index c3ff7cfc66..65e6dc32f8 100644 --- a/src/soc/rockchip/rk3288/Kconfig +++ b/src/soc/rockchip/rk3288/Kconfig @@ -36,10 +36,6 @@ config CHROMEOS select SEPARATE_VERSTAGE select RETURN_FROM_VERSTAGE -config BOOTBLOCK_CPU_INIT - string - default "soc/rockchip/rk3288/bootblock.c" - config PMIC_BUS int default -1 |