diff options
| -rw-r--r-- | import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_threads.c | 4 | ||||
| -rw-r--r-- | import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.h | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_threads.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_threads.c index e85942c6..b03b11a6 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_threads.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_threads.c @@ -60,6 +60,8 @@ p9_cme_stop_core_error_handler(uint32_t core, uint32_t core_error, uint32_t pani void p9_cme_stop_eval_eimr_override() { + wrteei(0); + g_eimr_override &= ~BITS64(12, 10); data64_t mask_irqs = {0}; mask_irqs.words.lower = 0; @@ -103,6 +105,8 @@ p9_cme_stop_eval_eimr_override() { out32(G_CME_LCL_FLAGS_CLR, BIT32(CME_FLAGS_DROOP_SUSPEND_ENTRY)); } + + wrteei(1); } #if !DISABLE_PERIODIC_CORE_QUIESCE && (NIMBUS_DD_LEVEL == 20 || NIMBUS_DD_LEVEL == 21 || CUMULUS_DD_LEVEL == 10) diff --git a/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.h b/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.h index 169e1f90..e2895b64 100644 --- a/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.h +++ b/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.h @@ -108,7 +108,7 @@ enum PGPE_CORE_THROTTLE // Include core offline, address error, and timeout. The timeout is // included to avoid an extra mtmsr in the event we need to cleanup // from SW407201 - MSR_THROTTLE_MASK = 0x29000000, + MSR_THROTTLE_MASK = 0x39000000, WORKAROUND_SCOM_MULTICAST_WRITE = 0x69010800, THROTTLE_SCOM_MULTICAST_WRITE = 0x69010A9E, CORE_IFU_THROTTLE = 0x80000000, |

