summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2014-11-13 11:35:52 -0800
committerAaron Durbin <adurbin@chromium.org>2015-04-10 16:48:46 +0200
commit2624c8d3375f2f3a121c325c44ba07874be3a089 (patch)
tree34838f90ad163ca38a5d0e09ef653967adcc4955
parent183ad81cfe287e050596e4139c5d628b0aa488bc (diff)
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)
-rw-r--r--src/mainboard/google/panther/Kconfig1
-rw-r--r--src/mainboard/samsung/stumpy/Kconfig1
-rw-r--r--src/vendorcode/google/chromeos/Kconfig6
-rw-r--r--src/vendorcode/google/chromeos/vboot1/vboot_loader.c4
-rw-r--r--src/vendorcode/google/chromeos/vboot2/vboot_handoff.c5
5 files changed, 13 insertions, 4 deletions
diff --git a/src/mainboard/google/panther/Kconfig b/src/mainboard/google/panther/Kconfig
index 607b690ff7..5f2efb9077 100644
--- a/src/mainboard/google/panther/Kconfig
+++ b/src/mainboard/google/panther/Kconfig
@@ -18,6 +18,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select EXTERNAL_MRC_BLOB
select MONOTONIC_TIMER_MSR
select INTEL_INT15
+ select PHYSICAL_REC_SWITCH
config VBOOT_RAMSTAGE_INDEX
hex
diff --git a/src/mainboard/samsung/stumpy/Kconfig b/src/mainboard/samsung/stumpy/Kconfig
index 1b65eae8db..3f39e70fe4 100644
--- a/src/mainboard/samsung/stumpy/Kconfig
+++ b/src/mainboard/samsung/stumpy/Kconfig
@@ -11,6 +11,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select NORTHBRIDGE_INTEL_SANDYBRIDGE
select SOUTHBRIDGE_INTEL_BD82X6X
select SUPERIO_ITE_IT8772F
+ select PHYSICAL_REC_SWITCH
# LPC47N207 selected for external LPC card
# not on board, should be made selectable.
select SUPERIO_SMSC_LPC47N207
diff --git a/src/vendorcode/google/chromeos/Kconfig b/src/vendorcode/google/chromeos/Kconfig
index 29252a66b3..cb15d13df2 100644
--- a/src/vendorcode/google/chromeos/Kconfig
+++ b/src/vendorcode/google/chromeos/Kconfig
@@ -159,6 +159,12 @@ 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
diff --git a/src/vendorcode/google/chromeos/vboot1/vboot_loader.c b/src/vendorcode/google/chromeos/vboot1/vboot_loader.c
index 0353a3a08e..97ca902006 100644
--- a/src/vendorcode/google/chromeos/vboot1/vboot_loader.c
+++ b/src/vendorcode/google/chromeos/vboot1/vboot_loader.c
@@ -226,10 +226,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