diff options
| author | Rahul Batra <rbatra@us.ibm.com> | 2017-12-06 18:58:06 -0600 |
|---|---|---|
| committer | Joshua Hunsberger <jahunsbe@us.ibm.com> | 2018-02-01 16:16:33 -0600 |
| commit | d4c33e2c49748f8a90213292d7b380f8b179e80e (patch) | |
| tree | 4be61af4c65b7b9043f08a7cc7bd41bd32a82a9b | |
| parent | b08beab4be85d4fe4bf6cefa5994e00cf95d197b (diff) | |
| download | talos-hcode-d4c33e2c49748f8a90213292d7b380f8b179e80e.tar.gz talos-hcode-d4c33e2c49748f8a90213292d7b380f8b179e80e.zip | |
PGPE: STOP11+WOF+SafeMode Fixes
-STOP11+WOF Fix
-STOP11+WOF+Safe Mode
Key_Cronus_Test=PM_REGRESS
Change-Id: I3e7200acc3cf82d80394aa012b0112c8e831c1ff
Original-Change-Id: I7aae651213174049fa4fe89d6ac92fda2478e90a
CQ: SW410652
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/48989
Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Tested-by: Cronus HW CI <cronushw-ci+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Michael S. Floyd <mfloyd@us.ibm.com>
Reviewed-by: YUE DU <daviddu@us.ibm.com>
Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
5 files changed, 17 insertions, 9 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/cme/cme_panic_codes.h b/import/chips/p9/procedures/ppe_closed/cme/cme_panic_codes.h index e765c23e..9d44826a 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/cme_panic_codes.h +++ b/import/chips/p9/procedures/ppe_closed/cme/cme_panic_codes.h @@ -83,7 +83,7 @@ CME_PSTATE_UNEXPECTED_INTERCME_MSG = 0x1e03, CME_PSTATE_UNEXPECTED_DB0_MSGID = 0x1e04, CME_PSTATE_DPLL_OUT_OF_BOUNDS_REQ = 0x1e05, CME_PSTATE_TRAP_INJECT = 0x1e06, -//_UNUSED_1e07 = 0x1e07, +CME_PSTATE_REGISTRATION_FAILED = 0x1e07, //_UNUSED_1e08 = 0x1e08, //_UNUSED_1e09 = 0x1e09, //_UNUSED_1e0a = 0x1e0a, diff --git a/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_ipc_handlers.c b/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_ipc_handlers.c index beeec7a7..c7607844 100644 --- a/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_ipc_handlers.c +++ b/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_ipc_handlers.c @@ -125,7 +125,7 @@ void p9_pgpe_ipc_405_clips(ipc_msg_t* cmd, void* arg) { PK_TRACE_INF("IPC: Clips"); ipc_async_cmd_t* async_cmd = (ipc_async_cmd_t*)cmd; - ipcmsg_set_pmcr_t* args = (ipcmsg_set_pmcr_t*)async_cmd->cmd_data; + ipcmsg_clip_update_t* args = (ipcmsg_clip_update_t*)async_cmd->cmd_data; if (G_pgpe_pstate_record.ipcPendTbl[IPC_PEND_CLIP_UPDT].pending_ack == 0) { diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c index c77a6a37..2c94e0e9 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c @@ -864,7 +864,7 @@ p9_sgpe_stop_entry() MARK_TAG(SE_WAIT_PGPE_QUAD_NOTIFY, (32 >> qloop)) //=============================================== - p9_sgpe_ipc_pgpe_update_active_quads_poll_ack(); + p9_sgpe_ipc_pgpe_update_active_quads_poll_ack(UPDATE_ACTIVE_QUADS_TYPE_ENTRY); ipc_quad_entry = 1; } @@ -1308,7 +1308,7 @@ p9_sgpe_stop_entry() UPDATE_ACTIVE_QUADS_ENTRY_TYPE_DONE); // pgpe should ack right away - p9_sgpe_ipc_pgpe_update_active_quads_poll_ack(); + p9_sgpe_ipc_pgpe_update_active_quads_poll_ack(UPDATE_ACTIVE_QUADS_TYPE_ENTRY); } #endif 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 7c37d979..9afa7f57 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 @@ -238,7 +238,7 @@ p9_sgpe_stop_exit_end(uint32_t qloop) #endif p9_sgpe_stop_exit_handoff_cme(cindex); - + G_sgpe_stop_record.group.quad[VECTOR_ACTIVE] |= BIT32(qloop); #if DISABLE_STOP8 } @@ -251,7 +251,6 @@ p9_sgpe_stop_exit_end(uint32_t qloop) PK_TRACE("Update QSSR: drop stop_exit_ongoing"); out32(OCB_QSSR_CLR, BIT32(qloop + 26)); - G_sgpe_stop_record.group.quad[VECTOR_ACTIVE] |= BIT32(qloop); } //------------------------------------------------------------------------- @@ -483,7 +482,10 @@ p9_sgpe_stop_exit() } } - p9_sgpe_stop_exit_end(qloop); + if (G_sgpe_stop_record.group.quad[VECTOR_CONFIG] & BIT32(qloop)) + { + p9_sgpe_stop_exit_end(qloop); + } } @@ -585,7 +587,7 @@ p9_sgpe_stop_exit() if (ipc_exit_quad) { ipc_exit_quad = 0; - p9_sgpe_ipc_pgpe_update_active_quads_poll_ack(); + p9_sgpe_ipc_pgpe_update_active_quads_poll_ack(UPDATE_ACTIVE_QUADS_TYPE_EXIT); } #endif @@ -910,6 +912,8 @@ p9_sgpe_stop_exit() if (!(cme_flags & BIT32(CME_FLAGS_SIBLING_FUNCTIONAL))) { cme_flags |= BIT32(CME_FLAGS_QMGR_MASTER); + + } } else @@ -917,6 +921,10 @@ p9_sgpe_stop_exit() cme_flags |= BIT32(CME_FLAGS_QMGR_MASTER); } + if ((in32(OCB_OCCS2) & BIT32(PGPE_ACTIVE)) && (in32(OCB_OCCS2) & BIT32(PGPE_PSTATE_PROTOCOL_ACTIVE))) + { + cme_flags |= BIT32(CME_FLAGS_WAIT_ON_PSTATE_START); + } #if NIMBUS_DD_LEVEL != 10 diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/sgpe_panic_codes.h b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/sgpe_panic_codes.h index 58ca5fc6..4fb7825c 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/sgpe_panic_codes.h +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/sgpe_panic_codes.h @@ -86,7 +86,7 @@ SGPE_STOP_ENTRY_STOP11_RESCLK_ON = 0x1e06, //_UNUSED_1e07 = 0x1e07, //_UNUSED_1e08 = 0x1e08, //_UNUSED_1e09 = 0x1e09, -//_UNUSED_1e0a = 0x1e0a, +SGPE_IPC_UPDATE_ACTIVE_QUAD_BAD_LIST = 0x1e0a, //_UNUSED_1e0d = 0x1e0d, //_UNUSED_1e1c = 0x1e1c, //_UNUSED_1e1d = 0x1e1d, |

