From b5b22a74a6b7708e0d5e2a794d6a2f3d141198fd Mon Sep 17 00:00:00 2001 From: Sean Rhodes Date: Wed, 25 Aug 2021 21:47:00 +0100 Subject: [PATCH] soc/intel: Don't send CSE EOP if CSME is disabled CSE EOP will fail if the CSE is disabled (CB:52800) Signed-off-by: Sean Rhodes Change-Id: Ic00fdb0d97fefac977c0878d1d5893d07d4481ea Reviewed-on: https://review.coreboot.org/c/coreboot/+/57149 Tested-by: build bot (Jenkins) Reviewed-by: Tim Wawrzynczak --- src/soc/intel/common/block/cse/cse_eop.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/soc/intel/common/block/cse/cse_eop.c b/src/soc/intel/common/block/cse/cse_eop.c index e47eb510fb..4e1c563ee1 100644 --- a/src/soc/intel/common/block/cse/cse_eop.c +++ b/src/soc/intel/common/block/cse/cse_eop.c @@ -18,6 +18,7 @@ enum cse_eop_result { CSE_EOP_RESULT_GLOBAL_RESET_REQUESTED, CSE_EOP_RESULT_SUCCESS, CSE_EOP_RESULT_ERROR, + CSE_EOP_RESULT_DISABLED, }; static bool cse_disable_mei_bus(void) @@ -100,6 +101,14 @@ static enum cse_eop_result cse_send_eop(void) * 2) HFSTS1 COM is Normal * 3) Only sent after DID (accomplished by compiling this into ramstage) */ + + if (cse_is_hfs1_com_soft_temp_disable()) { + printk(BIOS_ERR, "HECI: Prerequisites not met for sending EOP\n"); + if (CONFIG(SOC_INTEL_CSE_LITE_SKU)) + return CSE_EOP_RESULT_ERROR; + return CSE_EOP_RESULT_DISABLED; + } + if (!cse_is_hfs1_cws_normal() || !cse_is_hfs1_com_normal()) { printk(BIOS_ERR, "HECI: Prerequisites not met for sending EOP\n"); return CSE_EOP_RESULT_ERROR; @@ -158,6 +167,9 @@ static void handle_cse_eop_result(enum cse_eop_result result) case CSE_EOP_RESULT_SUCCESS: printk(BIOS_INFO, "CSE EOP successful, continuing boot\n"); break; + case CSE_EOP_RESULT_DISABLED: + printk(BIOS_INFO, "CSE is disabled, continuing boot\n"); + break; case CSE_EOP_RESULT_ERROR: /* fallthrough */ default: printk(BIOS_ERR, "ERROR: Failed to send EOP to CSE, %d\n", result);