diff options
| author | Yue Du <daviddu@us.ibm.com> | 2017-01-26 16:53:35 -0600 |
|---|---|---|
| committer | hostboot <hostboot@us.ibm.com> | 2018-08-22 17:54:23 -0500 |
| commit | 7a8ac99b193aaefeb9a133ce9dcd396ae7d44ebd (patch) | |
| tree | f5c6f0fe434d571076fba7264d95c0009fe6a34c | |
| parent | e5cbaf6226423d2b8cfef58d05c372c9fb372eff (diff) | |
| download | talos-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.c | 38 |
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]"); |

