summaryrefslogtreecommitdiff
path: root/src/soc/intel
diff options
context:
space:
mode:
authorSean Rhodes <sean@starlabs.systems>2021-08-25 21:47:00 +0100
committerPatrick Georgi <pgeorgi@google.com>2021-11-01 16:13:31 +0000
commitb5b22a74a6b7708e0d5e2a794d6a2f3d141198fd (patch)
tree88ade6412958da485eb43abcc8c715d3ca4f5207 /src/soc/intel
parent8d5b6747391919a8de05dd19308acc79f2b22659 (diff)
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 <sean@starlabs.systems> Change-Id: Ic00fdb0d97fefac977c0878d1d5893d07d4481ea Reviewed-on: https://review.coreboot.org/c/coreboot/+/57149 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Diffstat (limited to 'src/soc/intel')
-rw-r--r--src/soc/intel/common/block/cse/cse_eop.c12
1 files changed, 12 insertions, 0 deletions
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);