From 84a4cdc6a533dc909a25fde25d99dca13ad2d28c Mon Sep 17 00:00:00 2001 From: Sean Rhodes Date: Sat, 29 Nov 2025 20:41:03 +0000 Subject: [PATCH] soc/intel/*: Only skip PMC fallback on successful CSE reset cse_request_global_reset() returns CSE_TX_RX_SUCCESS on success. Make do_global_reset() explicatly check for that, and fall back CF9 for any other value. Test=Disable and enable the Intel ME on starbook_mtl and verify the system actually resets, rather than hanging. Change-Id: I4c3fb7995bca8e7fe3793b9aee021e4004ace933 Signed-off-by: Sean Rhodes Reviewed-on: https://review.coreboot.org/c/coreboot/+/90273 Tested-by: build bot (Jenkins) Reviewed-by: Matt DeVillier --- src/soc/intel/alderlake/reset.c | 2 +- src/soc/intel/cannonlake/reset.c | 2 +- src/soc/intel/elkhartlake/reset.c | 2 +- src/soc/intel/jasperlake/reset.c | 2 +- src/soc/intel/meteorlake/reset.c | 2 +- src/soc/intel/pantherlake/reset.c | 2 +- src/soc/intel/tigerlake/reset.c | 2 +- src/soc/intel/xeon_sp/spr/reset.c | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/soc/intel/alderlake/reset.c b/src/soc/intel/alderlake/reset.c index bc5815ac7a..3c13f6dfe5 100644 --- a/src/soc/intel/alderlake/reset.c +++ b/src/soc/intel/alderlake/reset.c @@ -8,7 +8,7 @@ void do_global_reset(void) { /* Ask CSE to do the global reset */ - if (cse_request_global_reset()) + if (cse_request_global_reset() == CSE_TX_RX_SUCCESS) return; /* global reset if CSE fail to reset */ diff --git a/src/soc/intel/cannonlake/reset.c b/src/soc/intel/cannonlake/reset.c index bc5815ac7a..3c13f6dfe5 100644 --- a/src/soc/intel/cannonlake/reset.c +++ b/src/soc/intel/cannonlake/reset.c @@ -8,7 +8,7 @@ void do_global_reset(void) { /* Ask CSE to do the global reset */ - if (cse_request_global_reset()) + if (cse_request_global_reset() == CSE_TX_RX_SUCCESS) return; /* global reset if CSE fail to reset */ diff --git a/src/soc/intel/elkhartlake/reset.c b/src/soc/intel/elkhartlake/reset.c index bc5815ac7a..3c13f6dfe5 100644 --- a/src/soc/intel/elkhartlake/reset.c +++ b/src/soc/intel/elkhartlake/reset.c @@ -8,7 +8,7 @@ void do_global_reset(void) { /* Ask CSE to do the global reset */ - if (cse_request_global_reset()) + if (cse_request_global_reset() == CSE_TX_RX_SUCCESS) return; /* global reset if CSE fail to reset */ diff --git a/src/soc/intel/jasperlake/reset.c b/src/soc/intel/jasperlake/reset.c index bc5815ac7a..3c13f6dfe5 100644 --- a/src/soc/intel/jasperlake/reset.c +++ b/src/soc/intel/jasperlake/reset.c @@ -8,7 +8,7 @@ void do_global_reset(void) { /* Ask CSE to do the global reset */ - if (cse_request_global_reset()) + if (cse_request_global_reset() == CSE_TX_RX_SUCCESS) return; /* global reset if CSE fail to reset */ diff --git a/src/soc/intel/meteorlake/reset.c b/src/soc/intel/meteorlake/reset.c index bc5815ac7a..3c13f6dfe5 100644 --- a/src/soc/intel/meteorlake/reset.c +++ b/src/soc/intel/meteorlake/reset.c @@ -8,7 +8,7 @@ void do_global_reset(void) { /* Ask CSE to do the global reset */ - if (cse_request_global_reset()) + if (cse_request_global_reset() == CSE_TX_RX_SUCCESS) return; /* global reset if CSE fail to reset */ diff --git a/src/soc/intel/pantherlake/reset.c b/src/soc/intel/pantherlake/reset.c index bc5815ac7a..3c13f6dfe5 100644 --- a/src/soc/intel/pantherlake/reset.c +++ b/src/soc/intel/pantherlake/reset.c @@ -8,7 +8,7 @@ void do_global_reset(void) { /* Ask CSE to do the global reset */ - if (cse_request_global_reset()) + if (cse_request_global_reset() == CSE_TX_RX_SUCCESS) return; /* global reset if CSE fail to reset */ diff --git a/src/soc/intel/tigerlake/reset.c b/src/soc/intel/tigerlake/reset.c index bc5815ac7a..3c13f6dfe5 100644 --- a/src/soc/intel/tigerlake/reset.c +++ b/src/soc/intel/tigerlake/reset.c @@ -8,7 +8,7 @@ void do_global_reset(void) { /* Ask CSE to do the global reset */ - if (cse_request_global_reset()) + if (cse_request_global_reset() == CSE_TX_RX_SUCCESS) return; /* global reset if CSE fail to reset */ diff --git a/src/soc/intel/xeon_sp/spr/reset.c b/src/soc/intel/xeon_sp/spr/reset.c index bc5815ac7a..3c13f6dfe5 100644 --- a/src/soc/intel/xeon_sp/spr/reset.c +++ b/src/soc/intel/xeon_sp/spr/reset.c @@ -8,7 +8,7 @@ void do_global_reset(void) { /* Ask CSE to do the global reset */ - if (cse_request_global_reset()) + if (cse_request_global_reset() == CSE_TX_RX_SUCCESS) return; /* global reset if CSE fail to reset */