diff options
| author | Yue Du <daviddu@us.ibm.com> | 2017-03-21 16:27:39 -0500 |
|---|---|---|
| committer | hostboot <hostboot@us.ibm.com> | 2018-08-22 17:54:37 -0500 |
| commit | 42983359df3b1bab2df4917d4d0e1d341415e8b0 (patch) | |
| tree | e5e2e3c4dc1dc1a712430ebe05d850b9b064be0f /import | |
| parent | d306208678bf17cd3cf092a2f06596494b41f42d (diff) | |
| download | talos-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.c | 51 |
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) |

