summaryrefslogtreecommitdiff
path: root/src/vendorcode/google
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2016-01-20 13:15:12 -0800
committerPatrick Georgi <pgeorgi@google.com>2016-01-22 13:03:27 +0100
commit6324de17abb11fa9d72671ac2f019dc94d3d5088 (patch)
treed03bc6ed09fcf1887c650845edb68db4f4de434b /src/vendorcode/google
parenta69d2f426834418c34cf6baa3f74a9bbc01f4b94 (diff)
vboot2: Handle slow EC SW sync and graphics driver loading
Add flag handling for CONFIG_VBOOT_EC_SLOW_UPDATE to indicate to vboot that it should show the "critical update" screen during software sync for EC+PD. In order to make this work on x86 where we do not run graphics init in the normal path add handling for CONFIG_VBOOT_OPROM_MATTERS and indicate to vboot when the option rom has been loaded. BUG=chrome-os-partner:49560 BRANCH=glados TEST=Build and boot on chell in normal mode with an EC update payload and ensure that it reboots to enable graphics, shows the "critical update" screen, and then reboots to disable graphics init again. Change-Id: I5ca46457798a22e9b08aa2febfec05b01aa788f9 Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Original-Commit-Id: 6a1bb8572c3485f64b9f3e759288321b44184e66 Original-Change-Id: I9f66caaac57bb9f05bc6c405814469ef7ddf4d0a Original-Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Original-Reviewed-on: https://chromium-review.googlesource.com/322781 Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/13073 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
Diffstat (limited to 'src/vendorcode/google')
-rw-r--r--src/vendorcode/google/chromeos/vboot2/vboot_handoff.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/vendorcode/google/chromeos/vboot2/vboot_handoff.c b/src/vendorcode/google/chromeos/vboot2/vboot_handoff.c
index 246aefecee..dbcc4da012 100644
--- a/src/vendorcode/google/chromeos/vboot2/vboot_handoff.c
+++ b/src/vendorcode/google/chromeos/vboot2/vboot_handoff.c
@@ -78,12 +78,26 @@ static void fill_vboot_handoff(struct vboot_handoff *vboot_handoff,
vb_sd->flags |= VBSD_LF_DEV_SWITCH_ON;
}
/* TODO: Set these in depthcharge */
- if (CONFIG_VIRTUAL_DEV_SWITCH)
+ if (IS_ENABLED(CONFIG_VIRTUAL_DEV_SWITCH))
vb_sd->flags |= VBSD_HONOR_VIRT_DEV_SWITCH;
- if (CONFIG_EC_SOFTWARE_SYNC)
+ if (IS_ENABLED(CONFIG_EC_SOFTWARE_SYNC))
vb_sd->flags |= VBSD_EC_SOFTWARE_SYNC;
- if (!CONFIG_PHYSICAL_REC_SWITCH)
+ if (!IS_ENABLED(CONFIG_PHYSICAL_REC_SWITCH))
vb_sd->flags |= VBSD_BOOT_REC_SWITCH_VIRTUAL;
+ if (IS_ENABLED(CONFIG_VBOOT_EC_SLOW_UPDATE))
+ vb_sd->flags |= VBSD_EC_SLOW_UPDATE;
+ if (IS_ENABLED(CONFIG_VBOOT_OPROM_MATTERS)) {
+ vb_sd->flags |= VBSD_OPROM_MATTERS;
+ /*
+ * Inform vboot if the display was enabled by dev/rec
+ * mode or was requested by vboot kernel phase.
+ */
+ if (*oflags & VB_INIT_OUT_ENABLE_DISPLAY ||
+ vboot_wants_oprom()) {
+ vb_sd->flags |= VBSD_OPROM_LOADED;
+ *oflags |= VB_INIT_OUT_ENABLE_DISPLAY;
+ }
+ }
/* In vboot1, VBSD_FWB_TRIED is
* set only if B is booted as explicitly requested. Therefore, if B is