diff options
author | Patrick Rudolph <patrick.rudolph@9elements.com> | 2020-02-28 13:11:13 +0100 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2020-03-02 11:49:03 +0000 |
commit | 1ee3dbc63b3514b93927b40add395a31b4f1915e (patch) | |
tree | 65f363306057674e1f1401a23fba7009d09d2bda | |
parent | c8b0f31ca1b6cae993736d47d919080b6c186c6f (diff) | |
download | coreboot-1ee3dbc63b3514b93927b40add395a31b4f1915e.tar.xz |
nb/intel/sandybridge: Fix VBOOT
The VBOOT code can be compiled but it asserts with:
ASSERTION ERROR: file 'src/security/vboot/common.c', line 40
Start VBOOT in bootblock to fix the assertion.
Tested on Lenovo X220:
The assertion is gone, the platform boots again.
Change-Id: I48365e911b4f43aecba3b1f950178b7ceed5b2e9
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/39160
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
-rw-r--r-- | src/mainboard/google/butterfly/Kconfig | 1 | ||||
-rw-r--r-- | src/mainboard/google/parrot/Kconfig | 1 | ||||
-rw-r--r-- | src/mainboard/google/stout/Kconfig | 1 | ||||
-rw-r--r-- | src/mainboard/samsung/lumpy/Kconfig | 1 | ||||
-rw-r--r-- | src/mainboard/samsung/stumpy/Kconfig | 1 | ||||
-rw-r--r-- | src/northbridge/intel/sandybridge/Kconfig | 26 |
6 files changed, 30 insertions, 1 deletions
diff --git a/src/mainboard/google/butterfly/Kconfig b/src/mainboard/google/butterfly/Kconfig index 92fc236f9b..33a840fd83 100644 --- a/src/mainboard/google/butterfly/Kconfig +++ b/src/mainboard/google/butterfly/Kconfig @@ -20,6 +20,7 @@ config BOARD_SPECIFIC_OPTIONS select HAVE_ME_BIN select GFX_GMA_INTERNAL_IS_LVDS select MAINBOARD_HAS_LIBGFXINIT + select SANDYBRIDGE_VBOOT_IN_ROMSTAGE config VBOOT select VBOOT_VBNV_CMOS diff --git a/src/mainboard/google/parrot/Kconfig b/src/mainboard/google/parrot/Kconfig index 0169beaf3f..c5b680c89b 100644 --- a/src/mainboard/google/parrot/Kconfig +++ b/src/mainboard/google/parrot/Kconfig @@ -21,6 +21,7 @@ config BOARD_SPECIFIC_OPTIONS # This board also feature sandy-bridge CPU's so must have LVDS select GFX_GMA_INTERNAL_IS_LVDS select MAINBOARD_HAS_LIBGFXINIT + select SANDYBRIDGE_VBOOT_IN_ROMSTAGE config VBOOT select VBOOT_VBNV_CMOS diff --git a/src/mainboard/google/stout/Kconfig b/src/mainboard/google/stout/Kconfig index a77964b8f8..f945cc0316 100644 --- a/src/mainboard/google/stout/Kconfig +++ b/src/mainboard/google/stout/Kconfig @@ -19,6 +19,7 @@ config BOARD_SPECIFIC_OPTIONS select GFX_GMA_INTERNAL_IS_LVDS select HAVE_IFD_BIN select HAVE_ME_BIN + select SANDYBRIDGE_VBOOT_IN_ROMSTAGE config VBOOT select VBOOT_VBNV_CMOS diff --git a/src/mainboard/samsung/lumpy/Kconfig b/src/mainboard/samsung/lumpy/Kconfig index f87ba8f739..56304c9349 100644 --- a/src/mainboard/samsung/lumpy/Kconfig +++ b/src/mainboard/samsung/lumpy/Kconfig @@ -23,6 +23,7 @@ config BOARD_SPECIFIC_OPTIONS select SUPERIO_SMSC_LPC47N207 select DRIVERS_GENERIC_IOAPIC select INTEL_INT15 + select SANDYBRIDGE_VBOOT_IN_ROMSTAGE config VBOOT select VBOOT_VBNV_CMOS diff --git a/src/mainboard/samsung/stumpy/Kconfig b/src/mainboard/samsung/stumpy/Kconfig index 5deb0f0722..67cc67ebd8 100644 --- a/src/mainboard/samsung/stumpy/Kconfig +++ b/src/mainboard/samsung/stumpy/Kconfig @@ -19,6 +19,7 @@ config BOARD_SPECIFIC_OPTIONS # not on board, should be made selectable. select SUPERIO_SMSC_LPC47N207 select INTEL_INT15 + select SANDYBRIDGE_VBOOT_IN_ROMSTAGE config VBOOT select VBOOT_VBNV_CMOS diff --git a/src/northbridge/intel/sandybridge/Kconfig b/src/northbridge/intel/sandybridge/Kconfig index 7a27d098c5..06fdc4a0a9 100644 --- a/src/northbridge/intel/sandybridge/Kconfig +++ b/src/northbridge/intel/sandybridge/Kconfig @@ -23,8 +23,32 @@ config NORTHBRIDGE_INTEL_SANDYBRIDGE if NORTHBRIDGE_INTEL_SANDYBRIDGE +config SANDYBRIDGE_VBOOT_IN_ROMSTAGE + bool + default n + help + Selected by boards to force VBOOT_STARTS_IN_ROMSTAGE. + +config SANDYBRIDGE_VBOOT_IN_BOOTBLOCK + depends on VBOOT + depends on !SANDYBRIDGE_VBOOT_IN_ROMSTAGE + bool "Start verstage in bootblock" + default y + select VBOOT_STARTS_IN_BOOTBLOCK + select VBOOT_SEPARATE_VERSTAGE + help + Sandy Bridge can either start verstage in a separate stage + right after the bootblock has run or it can start it + after romstage for compatibility reasons. + Sandy Bridge however uses a mrc.bin to initialize memory which + needs to be located at a fixed offset. Therefore even with + a separate verstage starting after the bootblock that same + binary is used meaning a jump is made from RW to the RO region + and back to the RW region after the binary is done. + config VBOOT - select VBOOT_STARTS_IN_ROMSTAGE + select VBOOT_MUST_REQUEST_DISPLAY + select VBOOT_STARTS_IN_ROMSTAGE if !SANDYBRIDGE_VBOOT_IN_BOOTBLOCK config USE_NATIVE_RAMINIT bool "Use native raminit" |