diff options
-rw-r--r-- | src/soc/intel/alderlake/chip.c | 3 | ||||
-rw-r--r-- | src/soc/intel/common/block/cse/cse.c | 21 |
2 files changed, 13 insertions, 11 deletions
diff --git a/src/soc/intel/alderlake/chip.c b/src/soc/intel/alderlake/chip.c index e0aa983973..25b412eed8 100644 --- a/src/soc/intel/alderlake/chip.c +++ b/src/soc/intel/alderlake/chip.c @@ -203,7 +203,8 @@ void soc_init_pre_device(void *chip_info) * current boot sequence) to reduce message response time from CSE hence moving * sending EOP to earlier stage. */ - if (CONFIG(SOC_INTEL_CSE_SEND_EOP_EARLY)) { + if (CONFIG(SOC_INTEL_CSE_SEND_EOP_EARLY) || + CONFIG(SOC_INTEL_CSE_SEND_EOP_ASYNC)) { printk(BIOS_INFO, "Sending EOP early from SoC\n"); cse_send_end_of_post(); } diff --git a/src/soc/intel/common/block/cse/cse.c b/src/soc/intel/common/block/cse/cse.c index 6c4bb73cee..1aa3454f6f 100644 --- a/src/soc/intel/common/block/cse/cse.c +++ b/src/soc/intel/common/block/cse/cse.c @@ -1424,22 +1424,23 @@ void cse_late_finalize(void) */ static void cse_final(struct device *dev) { - /* SoC user decided to send EOP late */ - if (CONFIG(SOC_INTEL_CSE_SEND_EOP_LATE)) + /* + * SoC user can have two options for sending EOP: + * 1. Choose to send EOP late + * 2. Choose to send EOP cmd asynchronously + * + * In case of sending EOP in asynchronous mode, the EOP command + * has most likely not been completed yet. The finalization steps + * will be run once the EOP command has successfully been completed. + */ + if (CONFIG(SOC_INTEL_CSE_SEND_EOP_LATE) || + CONFIG(SOC_INTEL_CSE_SEND_EOP_ASYNC)) return; /* 1. Send EOP to CSE if not done.*/ if (CONFIG(SOC_INTEL_CSE_SET_EOP)) cse_send_end_of_post(); - /* - * In asynchronous mode, the EOP command has most likely not been - * completed yet. Finalization steps will be run once the EOP command - * has successfully been completed. - */ - if (CONFIG(SOC_INTEL_CSE_SEND_EOP_ASYNC)) - return; - if (!CONFIG(USE_FSP_NOTIFY_PHASE_READY_TO_BOOT)) cse_final_ready_to_boot(); |