summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c
index 58381ee2..8235ccb7 100644
--- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c
+++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c
@@ -73,7 +73,7 @@ p9_cme_stop_exit_catchup(uint32_t* core,
if (core_catchup)
{
- // pcbmux grant
+ // request pcbmux grant
out32(CME_LCL_SICR_OR, (core_catchup << SHIFT32(11)));
// chtm purge done
out32(CME_LCL_EISR_CLR, (core_catchup << SHIFT32(25)));
@@ -848,6 +848,13 @@ STOP1_EXIT:
while((in32(CME_LCL_EINR)) & (core << SHIFT32(21)));
+#ifdef USE_PPE_IMPRECISE_MODE
+
+ // execute sync before change pcbmux to prevent queued scom issues
+ sync();
+
+#endif
+
PK_TRACE_INF("SX0.H: Release PCB Mux back to Core via SICR[10/11]");
out32(CME_LCL_SICR_CLR, core << SHIFT32(11));
OpenPOWER on IntegriCloud