diff options
author | Joel Kitching <kitching@google.com> | 2019-02-21 12:37:55 +0800 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2019-02-22 11:10:40 +0000 |
commit | d6f71d03f1f588e02c5792c7ca3be8d12127b603 (patch) | |
tree | 410f0a4c216ed195c98d51fa0e5dd5a0bb53e212 | |
parent | 2223cbf7de8d32bfde1e00502cb02c7b13184435 (diff) | |
download | coreboot-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.ld | 6 | ||||
-rw-r--r-- | src/security/vboot/Makefile.inc | 8 |
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 |