vboot: remove OPROM-related code

As of CL:1605641, vboot2 code should be used for setting and
checking display init state.  Remove all vboot1 OPROM-related
code, and use the vboot2 display init code which has already
been added in previous commits.

coreboot should not be reading vboot NVRAM flags directly.
Remove the function vboot_wants_oprom(), and instead rely on
display_init_required(), which uses the
VBOOT_WD_FLAG_DISPLAY_INIT value stored in
vboot_working_data.flags, initialized during verstage.
Note that this means in the case of CONFIG_VBOOT=y, the return
value of display_init_required() can only be trusted after
verstage has been executed.  This should not be a problem
assuming that all display initialization occurs in ramstage.

BUG=b:124141368, b:124192753, chromium:948529
TEST=Build locally
TEST=make clean && make test-abuild
BRANCH=none

Change-Id: Ic8f9dc5a3c7f1546a8fed82bde02be4d04568f8d
Signed-off-by: Joel Kitching <kitching@google.com>
Cq-Depend: chromium:1605641, chromium:1605525
Reviewed-on: https://review.coreboot.org/c/coreboot/+/32723
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Joel Kitching 2019-05-10 12:58:53 +08:00 committed by Patrick Georgi
parent 18b51b7315
commit 807803afa2
5 changed files with 1 additions and 19 deletions

View File

@ -780,9 +780,6 @@ static int should_run_oprom(struct device *dev)
*/ */
should_run = display_init_required(); should_run = display_init_required();
if (!should_run && CONFIG(VBOOT))
should_run = vboot_wants_oprom();
if (!should_run) if (!should_run)
printk(BIOS_DEBUG, "Not running VGA Option ROM\n"); printk(BIOS_DEBUG, "Not running VGA Option ROM\n");
return should_run; return should_run;

View File

@ -140,13 +140,6 @@ int get_recovery_mode_from_vbnv(void)
return vbnv_data(RECOVERY_OFFSET); return vbnv_data(RECOVERY_OFFSET);
} }
/* Read the BOOT_DISPLAY_REQUEST flag from VBNV. */
int vboot_wants_oprom(void)
{
vbnv_setup();
return (vbnv_data(BOOT_OFFSET) & BOOT_DISPLAY_REQUEST) ? 1 : 0;
}
/* Read the USB Device Controller(UDC) enable flag from VBNV. */ /* Read the USB Device Controller(UDC) enable flag from VBNV. */
int vbnv_udc_enable_flag(void) int vbnv_udc_enable_flag(void)
{ {

View File

@ -25,7 +25,6 @@ int verify_vbnv(uint8_t *vbnv_copy);
void regen_vbnv_crc(uint8_t *vbnv_copy); void regen_vbnv_crc(uint8_t *vbnv_copy);
int get_recovery_mode_from_vbnv(void); int get_recovery_mode_from_vbnv(void);
void set_recovery_mode_into_vbnv(int recovery_reason); void set_recovery_mode_into_vbnv(int recovery_reason);
int vboot_wants_oprom(void);
/* Read the USB Device Controller(UDC) enable flag from VBNV. */ /* Read the USB Device Controller(UDC) enable flag from VBNV. */
int vbnv_udc_enable_flag(void); int vbnv_udc_enable_flag(void);

View File

@ -68,13 +68,6 @@ static void fill_vboot_handoff(struct vboot_handoff *vboot_handoff,
vb_sd->flags |= VBSD_BOOT_DEV_SWITCH_ON; vb_sd->flags |= VBSD_BOOT_DEV_SWITCH_ON;
vb_sd->flags |= VBSD_LF_DEV_SWITCH_ON; vb_sd->flags |= VBSD_LF_DEV_SWITCH_ON;
} }
/* 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)
vb_sd->flags |= VBSD_OPROM_LOADED;
if (CONFIG(VBOOT_MUST_REQUEST_DISPLAY))
vb_sd->flags |= VBSD_OPROM_MATTERS;
/* In vboot1, VBSD_FWB_TRIED is /* In vboot1, VBSD_FWB_TRIED is
* set only if B is booted as explicitly requested. Therefore, if B is * set only if B is booted as explicitly requested. Therefore, if B is

View File

@ -513,7 +513,7 @@ static void igd_init(struct device *dev)
/* Wait for any configured pre-graphics delay */ /* Wait for any configured pre-graphics delay */
if (!acpi_is_wakeup_s3()) { if (!acpi_is_wakeup_s3()) {
#if CONFIG(CHROMEOS) #if CONFIG(CHROMEOS)
if (display_init_required() || vboot_wants_oprom()) if (display_init_required())
mdelay(CONFIG_PRE_GRAPHICS_DELAY); mdelay(CONFIG_PRE_GRAPHICS_DELAY);
#else #else
mdelay(CONFIG_PRE_GRAPHICS_DELAY); mdelay(CONFIG_PRE_GRAPHICS_DELAY);