diff --git a/src/mainboard/google/panther/Kconfig b/src/mainboard/google/panther/Kconfig index 048fee20d6..5a7376a82e 100644 --- a/src/mainboard/google/panther/Kconfig +++ b/src/mainboard/google/panther/Kconfig @@ -20,6 +20,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy select CACHE_ROM select MARK_GRAPHICS_MEM_WRCOMB select MONOTONIC_TIMER_MSR + select PHYSICAL_REC_SWITCH config VBOOT_RAMSTAGE_INDEX hex diff --git a/src/mainboard/samsung/stumpy/Kconfig b/src/mainboard/samsung/stumpy/Kconfig index 20d4ba0e66..853cb84fed 100644 --- a/src/mainboard/samsung/stumpy/Kconfig +++ b/src/mainboard/samsung/stumpy/Kconfig @@ -16,6 +16,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy select SOUTHBRIDGE_INTEL_BD82X6X select SUPERIO_ITE_IT8772F select EARLY_CBMEM_INIT + select PHYSICAL_REC_SWITCH config MAINBOARD_DIR string diff --git a/src/vendorcode/google/chromeos/Kconfig b/src/vendorcode/google/chromeos/Kconfig index f65911f012..d0fae0a83c 100644 --- a/src/vendorcode/google/chromeos/Kconfig +++ b/src/vendorcode/google/chromeos/Kconfig @@ -154,5 +154,11 @@ config NO_TPM_RESUME boards, booting Windows will break if the TPM resume command is sent during an S3 resume. +config PHYSICAL_REC_SWITCH + bool "Physical recovery switch is present" + default n + help + Whether this platform has a physical recovery switch + source src/vendorcode/google/chromeos/vboot1/Kconfig source src/vendorcode/google/chromeos/vboot2/Kconfig \ No newline at end of file diff --git a/src/vendorcode/google/chromeos/vboot1/vboot_loader.c b/src/vendorcode/google/chromeos/vboot1/vboot_loader.c index 3fcc3277f6..7745ee47b4 100644 --- a/src/vendorcode/google/chromeos/vboot1/vboot_loader.c +++ b/src/vendorcode/google/chromeos/vboot1/vboot_loader.c @@ -227,10 +227,10 @@ static void vboot_invoke_wrapper(struct vboot_handoff *vboot_handoff) *iflags |= VB_INIT_FLAG_SW_WP_ENABLED; if (CONFIG_VIRTUAL_DEV_SWITCH) *iflags |= VB_INIT_FLAG_VIRTUAL_DEV_SWITCH; - if (CONFIG_EC_SOFTWARE_SYNC) { + if (CONFIG_EC_SOFTWARE_SYNC) *iflags |= VB_INIT_FLAG_EC_SOFTWARE_SYNC; + if (!CONFIG_PHYSICAL_REC_SWITCH) *iflags |= VB_INIT_FLAG_VIRTUAL_REC_SWITCH; - } if (CONFIG_VBOOT_EC_SLOW_UPDATE) *iflags |= VB_INIT_FLAG_EC_SLOW_UPDATE; if (CONFIG_VBOOT_OPROM_MATTERS) { diff --git a/src/vendorcode/google/chromeos/vboot2/vboot_handoff.c b/src/vendorcode/google/chromeos/vboot2/vboot_handoff.c index 326a9bb6c2..2dadffaf1c 100644 --- a/src/vendorcode/google/chromeos/vboot2/vboot_handoff.c +++ b/src/vendorcode/google/chromeos/vboot2/vboot_handoff.c @@ -104,10 +104,11 @@ static void fill_vboot_handoff(struct vboot_handoff *vboot_handoff, /* TODO: Set these in depthcharge */ if (CONFIG_VIRTUAL_DEV_SWITCH) vb_sd->flags |= VBSD_HONOR_VIRT_DEV_SWITCH; - if (CONFIG_EC_SOFTWARE_SYNC) { + if (CONFIG_EC_SOFTWARE_SYNC) vb_sd->flags |= VBSD_EC_SOFTWARE_SYNC; + if (!CONFIG_PHYSICAL_REC_SWITCH) vb_sd->flags |= VBSD_BOOT_REC_SWITCH_VIRTUAL; - } + /* In vboot1, VBSD_FWB_TRIED is * set only if B is booted as explicitly requested. Therefore, if B is * booted because A was found bad, the flag should not be set. It's