summaryrefslogtreecommitdiffstats
path: root/import
diff options
context:
space:
mode:
authorYue Du <daviddu@us.ibm.com>2018-01-05 15:16:14 -0600
committerhostboot <hostboot@us.ibm.com>2018-08-22 17:55:37 -0500
commit23df9c72f52330e1f45e87bd47b1fdc92c4179a2 (patch)
treed583aa3e137b900192755119390b143b2c658cab /import
parent55f1962e961138f15cfd68d6bef40ca3c3edf31d (diff)
downloadtalos-hcode-23df9c72f52330e1f45e87bd47b1fdc92c4179a2.tar.gz
talos-hcode-23df9c72f52330e1f45e87bd47b1fdc92c4179a2.zip
STOP: Fix Phantom PCWU causing CME IOTA to halt
Key_Cronus_Test=PM_REGRESS Change-Id: I1eb1369b12454b4f2479cc0d52bff82ce9fc4281 Original-Change-Id: I6d87f34d2fb9be52f0221be3d7dd682aeca652ce CQ: SW413313 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/51568 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Cronus HW CI <cronushw-ci+hostboot@us.ibm.com> Reviewed-by: Michael S. Floyd <mfloyd@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Gregory S. Still <stillgs@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Diffstat (limited to 'import')
-rwxr-xr-ximport/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c
index 009be29f..d17097f7 100755
--- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c
+++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c
@@ -962,6 +962,8 @@ p9_cme_stop_entry()
MARK_TRAP(SE_STOP_CORE_CLKS)
//==========================
+ sync();
+
PK_TRACE("Assert core chiplet fence via NET_CTRL0[18]");
CME_PUTSCOM(CPPM_NC0INDIR_OR, core, BIT64(18));
@@ -1612,14 +1614,15 @@ p9_cme_stop_entry()
CME_PUTSCOM(CPPM_CPMMR_OR, core_mask, BIT64(13));
PK_TRACE_DBG("Switch Core[%d] PPM wakeup to STOP-GPE via CPMMR[13]", core_mask);
- G_cme_stop_record.core_stopgpe |= core;
+ G_cme_stop_record.core_stopgpe |= core_mask;
G_cme_stop_record.act_level[core_index] = STOP_LEVEL_5;
}
}
sync();
- PK_TRACE("Clear special wakeup after wakeup_notify = 1 since it is edge triggered");
- out32(CME_LCL_EISR_CLR, core << SHIFT32(15));
+
+ PK_TRACE("Clear special/regular wakeup after wakeup_notify = 1 since it is edge triggered");
+ out32(CME_LCL_EISR_CLR, (core << SHIFT32(15)) | (core << SHIFT32(17)));
#if NIMBUS_DD_LEVEL != 10
OpenPOWER on IntegriCloud