diff options
| -rw-r--r-- | import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c | 9 |
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)); |

