summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2018-08-15 14:36:37 -0700
committerPatrick Georgi <pgeorgi@google.com>2018-08-17 12:27:23 +0000
commitbc2a2a0a26c6ddaeb8b9fb42ab28ec8ab10e7685 (patch)
tree9efec6410c4b5680ab16ec9575575b84b1c874cf
parent632b2321eb36438c52ac89676a910f230075bc12 (diff)
downloadcoreboot-bc2a2a0a26c6ddaeb8b9fb42ab28ec8ab10e7685.tar.xz
cr50: Allow boards to disable powering off EC on cr50 update
This patch allows boards to disable turning off EC on cr50 update. If CR50 resets the whole system, an EC reset is not required. BUG=b:112604277 BRANCH=none TEST=gsctool -a -u /media/removable/cr50.bin && reboot Verify EC reboots. AP prints 'Waiting for CR50 reset to pick up update' then reboots. Change-Id: I60a7aa50a549e7a5a1a114245fbf7b9646d813bb Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://review.coreboot.org/28110 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/security/tpm/tss/vendor/cr50/Kconfig6
-rw-r--r--src/vendorcode/google/chromeos/cr50_enable_update.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/src/security/tpm/tss/vendor/cr50/Kconfig b/src/security/tpm/tss/vendor/cr50/Kconfig
index 4d40c08da6..fcbf47b9cf 100644
--- a/src/security/tpm/tss/vendor/cr50/Kconfig
+++ b/src/security/tpm/tss/vendor/cr50/Kconfig
@@ -25,4 +25,10 @@ config POWER_OFF_ON_CR50_UPDATE
help
Power off machine while waiting for CR50 update to take effect.
+config DISABLE_POWER_OFF_EC_ON_CR50_UPDATE
+ bool
+ default n
+ help
+ Disable powering off EC while waiting for CR50 update to take effect.
+
endif
diff --git a/src/vendorcode/google/chromeos/cr50_enable_update.c b/src/vendorcode/google/chromeos/cr50_enable_update.c
index 1d91112dad..d07a9a37a5 100644
--- a/src/vendorcode/google/chromeos/cr50_enable_update.c
+++ b/src/vendorcode/google/chromeos/cr50_enable_update.c
@@ -60,7 +60,8 @@ static void enable_update(void *unused)
printk(BIOS_INFO, "Waiting for CR50 reset to pick up update.\n");
if (IS_ENABLED(CONFIG_POWER_OFF_ON_CR50_UPDATE)) {
- if (IS_ENABLED(CONFIG_EC_GOOGLE_CHROMEEC)) {
+ if (IS_ENABLED(CONFIG_EC_GOOGLE_CHROMEEC) &&
+ !IS_ENABLED(CONFIG_DISABLE_POWER_OFF_EC_ON_CR50_UPDATE)) {
printk(BIOS_INFO, "Hibernating EC. Clearing AP_OFF.\n");
google_chromeec_reboot(0,
EC_REBOOT_HIBERNATE_CLEAR_AP_OFF,