Daisuke Nojiri has uploaded this change for review. ( https://review.coreboot.org/28110
Change subject: Nami: Disable powering off EC on cr50 update ......................................................................
Nami: Disable powering off EC on cr50 update
Nami doesn't support wakeup from hibernation by CR50. This causes the device to remain turned off after CR50 update.
This patch disables turning off EC on cr50 update. CR50 resets the whole system. So, EC reset is not required.
Signed-off-by: Daisuke Nojiri dnojiri@chromium.org
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 --- M src/mainboard/google/poppy/Kconfig M src/security/tpm/tss/vendor/cr50/Kconfig M src/vendorcode/google/chromeos/cr50_enable_update.c 3 files changed, 10 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/10/28110/1
diff --git a/src/mainboard/google/poppy/Kconfig b/src/mainboard/google/poppy/Kconfig index fc090df..1645451 100644 --- a/src/mainboard/google/poppy/Kconfig +++ b/src/mainboard/google/poppy/Kconfig @@ -169,6 +169,7 @@ select DRIVERS_SPI_ACPI select EXCLUDE_NATIVE_SD_INTERFACE select MAINBOARD_HAS_SPI_TPM_CR50 + select DISABLE_POWER_OFF_EC_ON_CR50_UPDATE
config VARIANT_SPECIFIC_OPTIONS_NAUTILUS def_bool n diff --git a/src/security/tpm/tss/vendor/cr50/Kconfig b/src/security/tpm/tss/vendor/cr50/Kconfig index 4d40c08..e98ec11 100644 --- a/src/security/tpm/tss/vendor/cr50/Kconfig +++ b/src/security/tpm/tss/vendor/cr50/Kconfig @@ -25,4 +25,11 @@ 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. + Turning off EC is not necessary if CR50 resets the whole system. + endif diff --git a/src/vendorcode/google/chromeos/cr50_enable_update.c b/src/vendorcode/google/chromeos/cr50_enable_update.c index 1d91112..d07a9a3 100644 --- a/src/vendorcode/google/chromeos/cr50_enable_update.c +++ b/src/vendorcode/google/chromeos/cr50_enable_update.c @@ -60,7 +60,8 @@ 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,