summaryrefslogtreecommitdiffstats
path: root/import
diff options
context:
space:
mode:
authorYue Du <daviddu@us.ibm.com>2017-03-21 16:27:39 -0500
committerhostboot <hostboot@us.ibm.com>2018-08-22 17:54:37 -0500
commit42983359df3b1bab2df4917d4d0e1d341415e8b0 (patch)
treee5e2e3c4dc1dc1a712430ebe05d850b9b064be0f /import
parentd306208678bf17cd3cf092a2f06596494b41f42d (diff)
downloadtalos-hcode-42983359df3b1bab2df4917d4d0e1d341415e8b0.tar.gz
talos-hcode-42983359df3b1bab2df4917d4d0e1d341415e8b0.zip
STOP: IPC Fixes
Change-Id: I24a46c9214b8ed59a0925c3bdb9cf995bf3ac2d1 Original-Change-Id: I32c0d3d7efd4323fb44712df97e99e53a9725538 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/38258 Reviewed-by: RAHUL BATRA <rbatra@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: AMIT KUMAR <akumar3@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Diffstat (limited to 'import')
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c51
1 files changed, 23 insertions, 28 deletions
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 3541590c..a5ef6449 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
@@ -212,9 +212,6 @@ p9_sgpe_stop_entry()
PK_TRACE_INF("ERROR: Entry Updates PGPE with Active Cores Bad RC. HALT SGPE!");
PK_PANIC(SGPE_STOP_ENTRY_IPC_CORE_BAD_RC);
}
-
- G_sgpe_stop_record.group.core[VECTOR_ACTIVE] &=
- ~(G_sgpe_stop_record.group.core[VECTOR_ENTRY]);
}
// Upon entry into STOP 11, right before stopping the clocks to the cache chiplet
@@ -269,9 +266,6 @@ p9_sgpe_stop_entry()
PK_TRACE_INF("ERROR: Entry Suspend PGPE Pstate Function Bad RC. HALT SGPE!");
PK_PANIC(SGPE_STOP_ENTRY_IPC_PSTATE_BAD_RC);
}
-
- G_sgpe_stop_record.group.quad[VECTOR_ACTIVE] &=
- ~(G_sgpe_stop_record.group.quad[VECTOR_ENTRY]);
}
else if (!G_sgpe_stop_record.group.ex_b[VECTOR_ENTRY])
{
@@ -1116,39 +1110,40 @@ p9_sgpe_stop_entry()
// Note: if all quads aborted on l3 purge, the list will be 0s;
G_sgpe_ipcmsg_update_quads.fields.requested_quads =
G_sgpe_stop_record.group.quad[VECTOR_ENTRY] >> SHIFT32(5);
- }
- G_sgpe_ipcmsg_update_quads.fields.update_type = SGPE_IPC_UPDATE_TYPE_ENTRY;
- G_sgpe_ipcmsg_update_quads.fields.return_code = SGPE_IPC_RETURN_CODE_NULL;
+ G_sgpe_ipcmsg_update_quads.fields.update_type = SGPE_IPC_UPDATE_TYPE_ENTRY;
+ G_sgpe_ipcmsg_update_quads.fields.return_code = SGPE_IPC_RETURN_CODE_NULL;
- G_sgpe_ipccmd_to_pgpe.cmd_data = &G_sgpe_ipcmsg_update_quads;
- ipc_init_msg(&G_sgpe_ipccmd_to_pgpe.cmd,
- IPC_MSGID_SGPE_PGPE_UPDATE_ACTIVE_QUADS,
- 0, 0);
+ G_sgpe_ipccmd_to_pgpe.cmd_data = &G_sgpe_ipcmsg_update_quads;
+ ipc_init_msg(&G_sgpe_ipccmd_to_pgpe.cmd,
+ IPC_MSGID_SGPE_PGPE_UPDATE_ACTIVE_QUADS,
+ 0, 0);
- rc = ipc_send_cmd(&G_sgpe_ipccmd_to_pgpe.cmd);
+ rc = ipc_send_cmd(&G_sgpe_ipccmd_to_pgpe.cmd);
- if(rc)
- {
- PK_TRACE_INF("ERROR: Entry Updates PGPE with Active Quads FAILED. HALT SGPE!");
- PK_PANIC(SGPE_STOP_ENTRY_IPC_QUAD_FAILED);
- }
+ if(rc)
+ {
+ PK_TRACE_INF("ERROR: Entry Updates PGPE with Active Quads FAILED. HALT SGPE!");
+ PK_PANIC(SGPE_STOP_ENTRY_IPC_QUAD_FAILED);
+ }
- PK_TRACE_INF("SEIPC: Poll PGPE Update Active Quads Ack");
+ PK_TRACE_INF("SEIPC: Poll PGPE Update Active Quads Ack");
- while (G_sgpe_ipcmsg_update_quads.fields.return_code == SGPE_IPC_RETURN_CODE_NULL);
+ while (G_sgpe_ipcmsg_update_quads.fields.return_code == SGPE_IPC_RETURN_CODE_NULL);
- if (G_sgpe_ipcmsg_update_quads.fields.return_code != SGPE_IPC_RETURN_CODE_ACK)
- {
- PK_TRACE_INF("ERROR: Entry Updates PGPE with Active Quads Bad RC. HALT SGPE!");
- PK_PANIC(SGPE_STOP_ENTRY_IPC_QUAD_BAD_RC);
+ if (G_sgpe_ipcmsg_update_quads.fields.return_code != SGPE_IPC_RETURN_CODE_ACK)
+ {
+ PK_TRACE_INF("ERROR: Entry Updates PGPE with Active Quads Bad RC. HALT SGPE!");
+ PK_PANIC(SGPE_STOP_ENTRY_IPC_QUAD_BAD_RC);
+ }
}
- G_sgpe_stop_record.group.quad[VECTOR_ACTIVE] &=
- ~(G_sgpe_stop_record.group.quad[VECTOR_ENTRY]);
-
#endif
+ G_sgpe_stop_record.group.quad[VECTOR_ACTIVE] &=
+ ~(G_sgpe_stop_record.group.quad[VECTOR_ENTRY]);
+ G_sgpe_stop_record.group.core[VECTOR_ACTIVE] &=
+ ~(G_sgpe_stop_record.group.core[VECTOR_ENTRY]);
//============================
MARK_TRAP(ENDSCOPE_STOP_ENTRY)
OpenPOWER on IntegriCloud