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>
diff --git a/src/security/tpm/tss/vendor/cr50/Kconfig b/src/security/tpm/tss/vendor/cr50/Kconfig
index 4d40c08..fcbf47b 100644
--- a/src/security/tpm/tss/vendor/cr50/Kconfig
+++ b/src/security/tpm/tss/vendor/cr50/Kconfig
@@ -25,4 +25,10 @@
 	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 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,