diff options
author | Furquan Shaikh <furquan@google.com> | 2016-07-22 08:56:43 -0700 |
---|---|---|
committer | Furquan Shaikh <furquan@google.com> | 2016-07-25 18:57:15 +0200 |
commit | 85aa1353264e34b9060e6c35a09eff3def47cc70 (patch) | |
tree | 11a3d747bf0aa9ca91d601e9ce2a3a60f42dd562 /src/vendorcode/google/chromeos/vboot2/vboot_loader.c | |
parent | 041bc763865414a099622fb4519c9458dfe923c9 (diff) |
google/chromeos: Add support for saving recovery reason across reboot
On some x86 platforms (skylake, apollolake), we observe reboots at
different steps during the FSP initialization. These additional reboots
result in loss of recovery request because vboot_reference library
clears recovery request on vbnv once verification is complete and it has
made a decision about which boot path to take(normal/dev, slot-a/slot-b,
recovery).
Provide a way to allow mainboards/chipsets to inform recovery module in
vboot2 to save recovery reason to survive unexpected reboots. The
recovery reason is set in vbnv after vboot_reference library completes
its verification and clears the reason in vbnv while jumping to
payload.
BUG=chrome-os-partner:55431
Change-Id: Ie96be9aeb42c8209d8215943409e6327d6a8bf98
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://review.coreboot.org/15802
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/vendorcode/google/chromeos/vboot2/vboot_loader.c')
-rw-r--r-- | src/vendorcode/google/chromeos/vboot2/vboot_loader.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/vendorcode/google/chromeos/vboot2/vboot_loader.c b/src/vendorcode/google/chromeos/vboot2/vboot_loader.c index 7541518f13..b76d20bebe 100644 --- a/src/vendorcode/google/chromeos/vboot2/vboot_loader.c +++ b/src/vendorcode/google/chromeos/vboot2/vboot_loader.c @@ -91,6 +91,7 @@ static void vboot_prepare(void) if (verification_should_run()) { verstage_main(); car_set_var(vboot_executed, 1); + vb2_save_recovery_reason_vbnv(); } else if (verstage_should_load()) { struct cbfsf file; struct prog verstage = |