diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2018-08-15 14:36:37 -0700 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2018-08-17 12:27:23 +0000 |
commit | bc2a2a0a26c6ddaeb8b9fb42ab28ec8ab10e7685 (patch) | |
tree | 9efec6410c4b5680ab16ec9575575b84b1c874cf | |
parent | 632b2321eb36438c52ac89676a910f230075bc12 (diff) | |
download | coreboot-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/Kconfig | 6 | ||||
-rw-r--r-- | src/vendorcode/google/chromeos/cr50_enable_update.c | 3 |
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, |