summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-ximport/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c11
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_exit.c9
2 files changed, 18 insertions, 2 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c
index cec3eeaa..97be5573 100755
--- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c
+++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c
@@ -1265,8 +1265,12 @@ p9_cme_stop_entry()
}
}
- PK_TRACE("Switch Core%d PPM wakeup to STOP-GPE via CPMMR[13]", core);
- CME_PUTSCOM(CPPM_CPMMR_OR, core, BIT64(13));
+#if NIMBUS_DD_LEVEL != 1
+
+ PK_TRACE("Drop PPM_WRITE_DISABLE via CPMMR[0]");
+ CME_PUTSCOM(CPPM_CPMMR_CLR, core, BIT64(0));
+
+#endif
#if DEBUG_RUNTIME_STATE_CHECK
@@ -1295,6 +1299,9 @@ p9_cme_stop_entry()
#endif
+ PKTRACE("Switch Core%d PPM wakeup to STOP-GPE via CPMMR[13]", core);
+ CME_PUTSCOM(CPPM_CPMMR_OR, core, BIT64(13));
+
PK_TRACE_INF("SE5.B: Handed off to SGPE");
}
diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_exit.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_exit.c
index 24d2e248..625ff027 100644
--- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_exit.c
+++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_exit.c
@@ -990,6 +990,15 @@ p9_sgpe_stop_exit()
// reset clevel to 0 if core is going to wake up
G_sgpe_stop_record.level[qloop][cloop] = 0;
+#if NIMBUS_DD_LEVEL != 1
+
+ p9_dd1_cppm_unicast_wr(
+ GPE_SCOM_ADDR_CORE(CPPM_CPMMR, ((qloop << 2) + cloop)),
+ GPE_SCOM_ADDR_CORE(CPPM_CPMMR_OR, ((qloop << 2) + cloop)),
+ BIT64(0), OR_OP);
+
+#endif
+
PK_TRACE_DBG("Check: Core[%d] will clear wakeup_notify_select",
((qloop << 2) + cloop));
p9_dd1_cppm_unicast_wr(
OpenPOWER on IntegriCloud