From 45f42d5d9f3fc7f90219033dff68fb65bc7b0715 Mon Sep 17 00:00:00 2001 From: Yue Du Date: Tue, 10 Jan 2017 16:23:49 -0600 Subject: STOP: DD2 set PPM_WRITE_DISABLE along with wakeup_notify_select Change-Id: I037e2ca5d5b479a051b588aac2e702a72c8fae76 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/34678 Tested-by: Jenkins Server Reviewed-by: Michael S. Floyd Reviewed-by: AMIT KUMAR Reviewed-by: ASHISH A. MORE Reviewed-by: Jennifer A. Stofer --- .../p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c | 11 +++++++++-- .../procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_exit.c | 9 +++++++++ 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( -- cgit v1.2.3