diff --git a/src/soc/intel/common/block/cse/Kconfig b/src/soc/intel/common/block/cse/Kconfig index f373bd9c8c..b6e2ecb6d4 100644 --- a/src/soc/intel/common/block/cse/Kconfig +++ b/src/soc/intel/common/block/cse/Kconfig @@ -379,3 +379,11 @@ config CSE_BPDT_VERSION This config indicates the BPDT version used by CSE for a given SoC. endif + +config CSE_RESET_CLEAR_EC_AP_IDLE_FLAG + bool + default y if !SYSTEM_TYPE_LAPTOP + help + Select this if the variant is a Chromebox/base. This allows AP to direct EC + to clear AP_IDLE flag before triggering reset to make sure AP can boot up + after reset. diff --git a/src/vendorcode/google/chromeos/cse_board_reset.c b/src/vendorcode/google/chromeos/cse_board_reset.c index 08db7e2b28..9efc4e61f6 100644 --- a/src/vendorcode/google/chromeos/cse_board_reset.c +++ b/src/vendorcode/google/chromeos/cse_board_reset.c @@ -16,6 +16,9 @@ void cse_board_reset(void) int ret; struct cr50_firmware_version version; + if (CONFIG(CSE_RESET_CLEAR_EC_AP_IDLE_FLAG)) + google_chromeec_clear_ec_ap_idle(); + if (CONFIG(TPM2) && CONFIG(TPM_GOOGLE_CR50)) { /* Initialize TPM and get the cr50 firmware version. */ ret = tlcl_lib_init();