diff options
| author | Brian Vanderpool <vanderp@us.ibm.com> | 2017-05-02 16:33:16 -0500 |
|---|---|---|
| committer | Joshua Hunsberger <jahunsbe@us.ibm.com> | 2017-10-23 17:30:23 -0500 |
| commit | a604c25d6bc209c6fd9aa91045c1ce32b6bad83c (patch) | |
| tree | ae03b74f8e7b0f40d31fb846be2b149bc259b520 | |
| parent | e786e55f107792908590c1642ef3f6fff2728587 (diff) | |
| download | talos-hcode-a604c25d6bc209c6fd9aa91045c1ce32b6bad83c.tar.gz talos-hcode-a604c25d6bc209c6fd9aa91045c1ce32b6bad83c.zip | |
STOP: Release the PCB Atomic lock on aborted Stop 11 entry
Change-Id: If11230c11e82f3a2ec2fe9fee16408374737b8f8
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/39974
Reviewed-by: Michael S. Floyd <mfloyd@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: AMIT KUMAR <akumar3@us.ibm.com>
Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
| -rw-r--r-- | import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c | 12 |
1 files changed, 12 insertions, 0 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 3ed71e8d..40a49397 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 @@ -716,6 +716,18 @@ p9_sgpe_stop_entry() if (l3_purge_aborted) { PK_TRACE_INF("Abort: L3 Purge Aborted"); + + PK_TRACE("Release cache PCB slave atomic lock"); + GPE_PUTSCOM(GPE_SCOM_ADDR_QUAD(EQ_QPPM_ATOMIC_LOCK, qloop), 0); + GPE_GETSCOM(GPE_SCOM_ADDR_QUAD(EQ_QPPM_ATOMIC_LOCK, qloop), scom_data.value); + + if (scom_data.words.upper & BIT32(0)) + { + PK_TRACE_ERR("ERROR: Failed to Release Cache %d PCB Slave Atomic Lock. Register Content: %x", + qloop, scom_data.words.upper); + PK_PANIC(SGPE_STOP_EXIT_DROP_SLV_LOCK_FAILED); + } + // For IPC reporting, taking aborted quad out of the list G_sgpe_stop_record.group.quad[VECTOR_ENTRY] &= ~BIT32(qloop); continue; |

