summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Rudolph <patrick.rudolph@9elements.com>2020-02-28 13:11:13 +0100
committerPatrick Georgi <pgeorgi@google.com>2020-03-02 11:49:03 +0000
commit1ee3dbc63b3514b93927b40add395a31b4f1915e (patch)
tree65f363306057674e1f1401a23fba7009d09d2bda
parentc8b0f31ca1b6cae993736d47d919080b6c186c6f (diff)
downloadcoreboot-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/Kconfig1
-rw-r--r--src/mainboard/google/parrot/Kconfig1
-rw-r--r--src/mainboard/google/stout/Kconfig1
-rw-r--r--src/mainboard/samsung/lumpy/Kconfig1
-rw-r--r--src/mainboard/samsung/stumpy/Kconfig1
-rw-r--r--src/northbridge/intel/sandybridge/Kconfig26
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"