summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRahul Batra <rbatra@us.ibm.com>2017-12-06 18:58:06 -0600
committerJoshua Hunsberger <jahunsbe@us.ibm.com>2018-02-01 16:16:33 -0600
commitd4c33e2c49748f8a90213292d7b380f8b179e80e (patch)
tree4be61af4c65b7b9043f08a7cc7bd41bd32a82a9b
parentb08beab4be85d4fe4bf6cefa5994e00cf95d197b (diff)
downloadtalos-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>
-rw-r--r--import/chips/p9/procedures/ppe_closed/cme/cme_panic_codes.h2
-rw-r--r--import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_ipc_handlers.c2
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c4
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_exit.c16
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/sgpe_panic_codes.h2
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,
OpenPOWER on IntegriCloud