summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Vanderpool <vanderp@us.ibm.com>2017-05-02 16:33:16 -0500
committerJoshua Hunsberger <jahunsbe@us.ibm.com>2017-10-23 17:30:23 -0500
commita604c25d6bc209c6fd9aa91045c1ce32b6bad83c (patch)
treeae03b74f8e7b0f40d31fb846be2b149bc259b520
parente786e55f107792908590c1642ef3f6fff2728587 (diff)
downloadtalos-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.c12
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;
OpenPOWER on IntegriCloud