vboot: add physical recovery switch support

PHYSICAL_REC_SWITCH is set n by default and y for panther and stumpy.

BUG=none
BRANCH=ToT
TEST=Built nyan_blaze using vboot1/2. Built falco, lumpy, nyan,
blaze, parrot, rambi, samus, storm, pinky with default configuration.
panther and stumpy are not tested because they currently don't build on ToT.

Original-Change-Id: Ic45f78708aaa7e485d2ab459fd1948524edb412f
Original-Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/227940
Original-Reviewed-on: https://chromium-review.googlesource.com/229602
Original-Reviewed-by: Randall Spangler <rspangler@chromium.org>
Original-Reviewed-by: David Hendricks <dhendrix@chromium.org>

(cherry picked from commit edb2ba347b48887ffe450586af0351e384faad59)
Signed-off-by: Aaron Durbin <adurbin@chromium.org>

Change-Id: I277f665cd4f3e1c21745cdc5c7a2cfe148661abe
Reviewed-on: http://review.coreboot.org/9444
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Tested-by: build bot (Jenkins)
This commit is contained in:
Daisuke Nojiri
2014-11-13 11:35:52 -08:00
committed by Aaron Durbin
parent 183ad81cfe
commit 2624c8d337
5 changed files with 13 additions and 4 deletions

View File

@ -18,6 +18,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select EXTERNAL_MRC_BLOB select EXTERNAL_MRC_BLOB
select MONOTONIC_TIMER_MSR select MONOTONIC_TIMER_MSR
select INTEL_INT15 select INTEL_INT15
select PHYSICAL_REC_SWITCH
config VBOOT_RAMSTAGE_INDEX config VBOOT_RAMSTAGE_INDEX
hex hex

View File

@ -11,6 +11,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select NORTHBRIDGE_INTEL_SANDYBRIDGE select NORTHBRIDGE_INTEL_SANDYBRIDGE
select SOUTHBRIDGE_INTEL_BD82X6X select SOUTHBRIDGE_INTEL_BD82X6X
select SUPERIO_ITE_IT8772F select SUPERIO_ITE_IT8772F
select PHYSICAL_REC_SWITCH
# LPC47N207 selected for external LPC card # LPC47N207 selected for external LPC card
# not on board, should be made selectable. # not on board, should be made selectable.
select SUPERIO_SMSC_LPC47N207 select SUPERIO_SMSC_LPC47N207

View File

@ -159,6 +159,12 @@ config NO_TPM_RESUME
boards, booting Windows will break if the TPM resume command boards, booting Windows will break if the TPM resume command
is sent during an S3 resume. 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/vboot1/Kconfig
source src/vendorcode/google/chromeos/vboot2/Kconfig source src/vendorcode/google/chromeos/vboot2/Kconfig

View File

@ -226,10 +226,10 @@ static void vboot_invoke_wrapper(struct vboot_handoff *vboot_handoff)
*iflags |= VB_INIT_FLAG_SW_WP_ENABLED; *iflags |= VB_INIT_FLAG_SW_WP_ENABLED;
if (CONFIG_VIRTUAL_DEV_SWITCH) if (CONFIG_VIRTUAL_DEV_SWITCH)
*iflags |= VB_INIT_FLAG_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; *iflags |= VB_INIT_FLAG_EC_SOFTWARE_SYNC;
if (!CONFIG_PHYSICAL_REC_SWITCH)
*iflags |= VB_INIT_FLAG_VIRTUAL_REC_SWITCH; *iflags |= VB_INIT_FLAG_VIRTUAL_REC_SWITCH;
}
if (CONFIG_VBOOT_EC_SLOW_UPDATE) if (CONFIG_VBOOT_EC_SLOW_UPDATE)
*iflags |= VB_INIT_FLAG_EC_SLOW_UPDATE; *iflags |= VB_INIT_FLAG_EC_SLOW_UPDATE;
if (CONFIG_VBOOT_OPROM_MATTERS) { if (CONFIG_VBOOT_OPROM_MATTERS) {

View File

@ -104,10 +104,11 @@ static void fill_vboot_handoff(struct vboot_handoff *vboot_handoff,
/* TODO: Set these in depthcharge */ /* TODO: Set these in depthcharge */
if (CONFIG_VIRTUAL_DEV_SWITCH) if (CONFIG_VIRTUAL_DEV_SWITCH)
vb_sd->flags |= VBSD_HONOR_VIRT_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; vb_sd->flags |= VBSD_EC_SOFTWARE_SYNC;
if (!CONFIG_PHYSICAL_REC_SWITCH)
vb_sd->flags |= VBSD_BOOT_REC_SWITCH_VIRTUAL; vb_sd->flags |= VBSD_BOOT_REC_SWITCH_VIRTUAL;
}
/* 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
* booted because A was found bad, the flag should not be set. It's * booted because A was found bad, the flag should not be set. It's