summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYue Du <daviddu@us.ibm.com>2017-01-26 16:53:35 -0600
committerhostboot <hostboot@us.ibm.com>2018-08-22 17:54:23 -0500
commit7a8ac99b193aaefeb9a133ce9dcd396ae7d44ebd (patch)
treef5c6f0fe434d571076fba7264d95c0009fe6a34c
parente5cbaf6226423d2b8cfef58d05c372c9fb372eff (diff)
downloadtalos-hcode-7a8ac99b193aaefeb9a133ce9dcd396ae7d44ebd.tar.gz
talos-hcode-7a8ac99b193aaefeb9a133ce9dcd396ae7d44ebd.zip
STOP: Fix CME halt in sgpe entry to check partial good ex
Change-Id: I10a67de356b29c2fd0ad5f66a72385f721259c59 Original-Change-Id: If81bc4a88bafa5387fa0f78b7b042f1a3d5482ea Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/35479 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: SUDHEENDRA K. SRIVATHSA <sudheendraks@in.ibm.com> Reviewed-by: Gregory S. Still <stillgs@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c38
1 files changed, 26 insertions, 12 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 325115bc..0592fef3 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
@@ -738,25 +738,39 @@ p9_sgpe_stop_entry()
MARK_TAG(SE_QUIESCE_QUAD, (32 >> qloop))
//======================================
- PK_TRACE("Halting CMEs");
- GPE_PUTSCOM(GPE_SCOM_ADDR_CME(CME_SCOM_XIXCR, qloop, 0), BIT64(3));
- GPE_PUTSCOM(GPE_SCOM_ADDR_CME(CME_SCOM_XIXCR, qloop, 1), BIT64(3));
-
- do
+ if (ex & FST_EX_IN_QUAD)
{
- GPE_GETSCOM(GPE_SCOM_ADDR_CME(CME_SCOM_XIRAMDBG, qloop, 0), scom_data);
+ PK_TRACE("Halting CME0");
+ GPE_PUTSCOM(GPE_SCOM_ADDR_CME(CME_SCOM_XIXCR, qloop, 0), BIT64(3));
}
- while(!(scom_data & BIT64(0)));
- PK_TRACE("CME0 Halted");
+ if (ex & SND_EX_IN_QUAD)
+ {
+ PK_TRACE("Halting CME1");
+ GPE_PUTSCOM(GPE_SCOM_ADDR_CME(CME_SCOM_XIXCR, qloop, 1), BIT64(3));
+ }
- do
+ if (ex & FST_EX_IN_QUAD)
{
- GPE_GETSCOM(GPE_SCOM_ADDR_CME(CME_SCOM_XIRAMDBG, qloop, 1), scom_data);
+ do
+ {
+ GPE_GETSCOM(GPE_SCOM_ADDR_CME(CME_SCOM_XIRAMDBG, qloop, 0), scom_data);
+ }
+ while(!(scom_data & BIT64(0)));
+
+ PK_TRACE("CME0 Halted");
}
- while(!(scom_data & BIT64(0)));
- PK_TRACE("CME1 Halted");
+ if (ex & SND_EX_IN_QUAD)
+ {
+ do
+ {
+ GPE_GETSCOM(GPE_SCOM_ADDR_CME(CME_SCOM_XIRAMDBG, qloop, 1), scom_data);
+ }
+ while(!(scom_data & BIT64(0)));
+
+ PK_TRACE("CME1 Halted");
+ }
PK_TRACE("Assert refresh quiesce prior to L3 (refresh domain) stop clk via EX_DRAM_REF_REG[7]");
OpenPOWER on IntegriCloud