[coreboot-gerrit] Patch set updated for coreboot: vboot: Set S3_RESUME flag for vboot context if necessary

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Sat Feb 27 00:04:33 CET 2016


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/13834

-gerrit

commit 21e5c1771ecca9f2d7984347625855b06315f4b9
Author: Duncan Laurie <dlaurie at chromium.org>
Date:   Fri Feb 19 20:26:07 2016 -0800

    vboot: Set S3_RESUME flag for vboot context if necessary
    
    If a platform does verification of the memory init step, and it must
    resume with the same slot that it booted from then it needs to set
    the vboot context flag when resuming instead of booting.  This will
    affect the slot that is selected to verify and resume from.
    
    BUG=chromium:577269
    BRANCH=glados
    TEST=manually tested on chell:
    1) ensure that booting from slot A resumes from slot A.
    2) ensure that booting from slot B resumes from slot B.
    3) do RW update while booted from slot A (so the flags are set to try
    slot B) and ensure that suspend/resume still functions properly using
    current slot A.
    4) do RW update while booted from slot B (so the flags are set to try
    slot A) and ensure that suspend/resume still functions properly using
    current slot B.
    
    Change-Id: I77e6320e36b4d2cbc308cfb39f0d4999e3497be3
    Signed-off-by: Patrick Georgi <pgeorgi at google.com>
    Original-Commit-Id: 4c84af7eae7b2a52a28cc3ef8a80649301215a68
    Original-Change-Id: I395e5abaccd6f578111f242d1e85e28dced469ea
    Original-Signed-off-by: Duncan Laurie <dlaurie at chromium.org>
    Original-Reviewed-on: https://chromium-review.googlesource.com/328775
    Original-Reviewed-by: Aaron Durbin <adurbin at chromium.org>
---
 src/vendorcode/google/chromeos/vboot2/vboot_logic.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/vendorcode/google/chromeos/vboot2/vboot_logic.c b/src/vendorcode/google/chromeos/vboot2/vboot_logic.c
index a4829c0..d43fb27 100644
--- a/src/vendorcode/google/chromeos/vboot2/vboot_logic.c
+++ b/src/vendorcode/google/chromeos/vboot2/vboot_logic.c
@@ -311,6 +311,15 @@ void verstage_main(void)
 	antirollback_read_space_firmware(&ctx);
 	timestamp_add_now(TS_END_TPMINIT);
 
+	/* Set S3 resume flag if vboot should behave differently when selecting
+	 * which slot to boot.  This is only relevant to vboot if the platform
+	 * does verification of memory init and thus must ensure it resumes with
+	 * the same slot that it booted from. */
+	if (IS_ENABLED(CONFIG_RESUME_PATH_SAME_AS_BOOT) &&
+	    IS_ENABLED(CONFIG_VBOOT_STARTS_IN_BOOTBLOCK) &&
+	    vboot_platform_is_resuming())
+		ctx.flags |= VB2_CONTEXT_S3_RESUME;
+
 	if (!IS_ENABLED(CONFIG_VIRTUAL_DEV_SWITCH) &&
 	    get_developer_mode_switch())
 		ctx.flags |= VB2_CONTEXT_FORCE_DEVELOPER_MODE;



More information about the coreboot-gerrit mailing list