summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Kitching <kitching@google.com>2019-02-21 12:37:55 +0800
committerPatrick Georgi <pgeorgi@google.com>2019-02-22 11:10:40 +0000
commitd6f71d03f1f588e02c5792c7ca3be8d12127b603 (patch)
tree410f0a4c216ed195c98d51fa0e5dd5a0bb53e212
parent2223cbf7de8d32bfde1e00502cb02c7b13184435 (diff)
downloadcoreboot-d6f71d03f1f588e02c5792c7ca3be8d12127b603.tar.xz
vboot: fix STARTS_IN_BOOTBLOCK/_ROMSTAGE logic
Fix up the logic of when to include VBOOT2_WORK symbols on x86, which are only needed when VBOOT_STARTS_IN_BOOTBLOCK is enabled. Also correct the value of the __PRE_RAM__ macro in the case that VBOOT_STARTS_IN_ROMSTAGE is selected. In this case, DRAM is already up and verstage should not be considered pre-ram. BUG=b:124141368, b:124192753 TEST=Build locally for eve TEST=util/lint/checkpatch.pl -g origin/master..HEAD TEST=util/abuild/abuild -B -e -y -c 50 -p none -x TEST=make clean && make test-abuild BRANCH=none Change-Id: Ie51e8f93b99ab230f3caeede2a33ec8b443e3d7a Signed-off-by: Joel Kitching <kitching@google.com> Reviewed-on: https://review.coreboot.org/c/31541 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
-rw-r--r--src/arch/x86/car.ld6
-rw-r--r--src/security/vboot/Makefile.inc8
2 files changed, 10 insertions, 4 deletions
diff --git a/src/arch/x86/car.ld b/src/arch/x86/car.ld
index 6fe8f14a21..2d835a3b46 100644
--- a/src/arch/x86/car.ld
+++ b/src/arch/x86/car.ld
@@ -26,9 +26,9 @@
. += 4096 * CONFIG_NUM_CAR_PAGE_TABLE_PAGES;
_epagetables = . ;
#endif
- /* Vboot work buffer is completely volatile outside of verstage and
- * romstage. Appropriate code needs to handle the transition. */
-#if IS_ENABLED(CONFIG_VBOOT_SEPARATE_VERSTAGE)
+ /* Vboot work buffer only needs to be available when verified boot
+ * starts in bootblock. */
+#if IS_ENABLED(CONFIG_VBOOT_STARTS_IN_BOOTBLOCK)
VBOOT2_WORK(., 16K)
#endif
/* Stack for CAR stages. Since it persists across all stages that
diff --git a/src/security/vboot/Makefile.inc b/src/security/vboot/Makefile.inc
index 6c63f7b393..0c32d94fab 100644
--- a/src/security/vboot/Makefile.inc
+++ b/src/security/vboot/Makefile.inc
@@ -22,7 +22,13 @@ ramstage-y += bootmode.c
verstage-y += bootmode.c
postcar-y += bootmode.c
-verstage-generic-ccopts += -D__PRE_RAM__ -D__VERSTAGE__
+# When VBOOT_STARTS_IN_ROMSTAGE is selected, DRAM is already up by
+# the time verstage runs.
+ifneq ($(CONFIG_VBOOT_STARTS_IN_ROMSTAGE),y)
+verstage-generic-ccopts += -D__PRE_RAM__
+endif
+
+verstage-generic-ccopts += -D__VERSTAGE__
ramstage-y += gbb.c