From c88b8c24d9e357de64ecd3e863efb43f4be014bf Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Wed, 8 Jul 2015 11:33:35 +0200 Subject: [PATCH] vboot: Don't count boot attempts if lid is closed This can be a problem with freshly updated devices that are periodically powered on while closed (as explained in the bug report). In this case, just don't count down. In case of actual errors (where we want the system to fall back to the old code), this now means that the retries have to happen with the lid open. Bump vboot's submodule revision for the vboot-side support of this. BUG=chromium:446945 TEST=to test the OS update side, follow the test protocol in https://code.google.com/p/chromium/issues/detail?id=446945#c43 With a servo, it can be sped up using the EC console interface to start the closed system - no need to wait 60min and plugging in power to get to that state. Change-Id: I0e39aadc52195fe53ee4a29a828ed9a40d28f5e6 Signed-off-by: Patrick Georgi Reviewed-on: http://review.coreboot.org/10851 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- 3rdparty/vboot | 2 +- src/vendorcode/google/chromeos/vboot2/verstage.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/3rdparty/vboot b/3rdparty/vboot index 7dd3bd0fcf..fbf631c845 160000 --- a/3rdparty/vboot +++ b/3rdparty/vboot @@ -1 +1 @@ -Subproject commit 7dd3bd0fcf565901aacc512cd29cefe19291c2e7 +Subproject commit fbf631c845c08299f0bcbae3f311c5807d34c0d6 diff --git a/src/vendorcode/google/chromeos/vboot2/verstage.c b/src/vendorcode/google/chromeos/vboot2/verstage.c index 783d1b613b..2a2a9564db 100644 --- a/src/vendorcode/google/chromeos/vboot2/verstage.c +++ b/src/vendorcode/google/chromeos/vboot2/verstage.c @@ -270,6 +270,9 @@ void verstage_main(void) if (IS_ENABLED(CONFIG_WIPEOUT_SUPPORTED) && get_wipeout_mode_switch()) ctx.flags |= VB2_CONTEXT_FORCE_WIPEOUT_MODE; + if (IS_ENABLED(CONFIG_LID_SWITCH) && !get_lid_switch()) + ctx.flags |= VB2_CONTEXT_NOFAIL_BOOT; + /* Do early init (set up secdata and NVRAM, load GBB) */ printk(BIOS_INFO, "Phase 1\n"); rv = vb2api_fw_phase1(&ctx);