diff options
| author | Yue Du <daviddu@us.ibm.com> | 2018-06-06 14:18:06 -0500 |
|---|---|---|
| committer | hostboot <hostboot@us.ibm.com> | 2018-07-17 11:49:22 -0500 |
| commit | 2f063536057b564a446ce99bad8813428f04c70e (patch) | |
| tree | 61db19a7c2cb7f7986f4dbf5d978ef4df17fec20 | |
| parent | a07a0e57a5334aaa6d756e4b8bb7b62ccdc8adbf (diff) | |
| download | talos-hcode-2f063536057b564a446ce99bad8813428f04c70e.tar.gz talos-hcode-2f063536057b564a446ce99bad8813428f04c70e.zip | |
PM: PGPE hang fix during VDM droop workaround
-Fixed stop entry suspend ACK in CME to resolve PGPE hang
-Masked PARTIAL_GOOD error in PGPE when doing core throttle
multicast.
Key_Cronus_Test=PM_REGRESS
Change-Id: I56888585ddaf429a4ffd7ebdc13b7b7c6b5b8cc5
CQ: SW437277
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/62082
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
| -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, |

