summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/security/vboot/vboot_handoff.c9
-rw-r--r--src/security/vboot/vboot_logic.c9
2 files changed, 12 insertions, 6 deletions
diff --git a/src/security/vboot/vboot_handoff.c b/src/security/vboot/vboot_handoff.c
index 208663e029..fccbdfc0b7 100644
--- a/src/security/vboot/vboot_handoff.c
+++ b/src/security/vboot/vboot_handoff.c
@@ -68,14 +68,11 @@ static void fill_vboot_handoff(struct vboot_handoff *vboot_handoff,
vb_sd->flags |= VBSD_BOOT_DEV_SWITCH_ON;
vb_sd->flags |= VBSD_LF_DEV_SWITCH_ON;
}
- /* Inform vboot if the display was requested by vboot kernel phase
- or enabled by dev/rec mode. */
+ /* TODO(chromium:948529): Remove these two flags after downstream
+ vboot code longer reads them. */
if (vboot_wants_oprom() || vb2_sd->recovery_reason ||
- vb2_sd->flags & VB2_SD_FLAG_DEV_MODE_ENABLED) {
- vboot_get_working_data()->flags |= VBOOT_WD_FLAG_DISPLAY_INIT;
+ vb2_sd->flags & VB2_SD_FLAG_DEV_MODE_ENABLED)
vb_sd->flags |= VBSD_OPROM_LOADED;
- }
- /* TODO: Remove when depthcharge no longer reads this flag. */
if (CONFIG(VBOOT_MUST_REQUEST_DISPLAY))
vb_sd->flags |= VBSD_OPROM_MATTERS;
diff --git a/src/security/vboot/vboot_logic.c b/src/security/vboot/vboot_logic.c
index 2a8e619289..df34490f98 100644
--- a/src/security/vboot/vboot_logic.c
+++ b/src/security/vboot/vboot_logic.c
@@ -336,6 +336,10 @@ void verstage_main(void)
if (CONFIG(VBOOT_LID_SWITCH) && !get_lid_switch())
ctx.flags |= VB2_CONTEXT_NOFAIL_BOOT;
+ /* Mainboard/SoC always initializes display. */
+ if (!CONFIG(VBOOT_MUST_REQUEST_DISPLAY))
+ ctx.flags |= VB2_CONTEXT_DISPLAY_INIT;
+
/* Do early init (set up secdata and NVRAM, load GBB) */
printk(BIOS_INFO, "Phase 1\n");
rv = vb2api_fw_phase1(&ctx);
@@ -360,6 +364,11 @@ void verstage_main(void)
vboot_reboot();
}
+ /* Is vboot declaring that display is available? If so, we should mark
+ it down, so that the mainboard/SoC knows to initialize display. */
+ if (ctx.flags & VB2_CONTEXT_DISPLAY_INIT)
+ vboot_get_working_data()->flags |= VBOOT_WD_FLAG_DISPLAY_INIT;
+
/* Determine which firmware slot to boot (based on NVRAM) */
printk(BIOS_INFO, "Phase 2\n");
rv = vb2api_fw_phase2(&ctx);