summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYue Du <daviddu@us.ibm.com>2016-12-05 16:27:02 -0600
committerJoshua Hunsberger <jahunsbe@us.ibm.com>2017-10-23 16:59:11 -0500
commit71ff515808626ee36f113aeefe601cf09a96b844 (patch)
treeaca94758709e59e10d2c28fafe8647a5c71211d7
parentd55a47c715c0dc5a7a1a685961b8ea4e7c4455d8 (diff)
downloadtalos-hcode-71ff515808626ee36f113aeefe601cf09a96b844.tar.gz
talos-hcode-71ff515808626ee36f113aeefe601cf09a96b844.zip
STOP: DD2 - using SISR fused core mode bit instead of attribute
Change-Id: Ib41174e60dc50c860a1509b273a611a4597c2756 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/33433 Reviewed-by: AMIT KUMAR <akumar3@us.ibm.com> Reviewed-by: ADAM S. HALE <ashale@us.ibm.com> Dev-Ready: ADAM S. HALE <ashale@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@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_exit.c81
1 files changed, 80 insertions, 1 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_exit.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_exit.c
index 081eefa5..4bccdef1 100644
--- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_exit.c
+++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_exit.c
@@ -107,8 +107,11 @@ p9_sgpe_stop_exit()
uint32_t qloop;
uint32_t cexit;
uint32_t qspwu;
- int cme;
uint32_t core;
+ int cme;
+#if NIMBUS_DD_LEVEL != 1
+ int fused_core_mode = 0;
+#endif
uint64_t scom_data = 0;
uint64_t cme_flags;
ppm_sshsrc_t hist;
@@ -303,6 +306,7 @@ p9_sgpe_stop_exit()
#endif
+#if NIMBUS_DD_LEVEL == 1
// EPM only:
// EPM doesnt have real homer images and pba setup to access homer
@@ -347,6 +351,7 @@ p9_sgpe_stop_exit()
}
#endif
+#endif
#if HW386311_DD1_PBIE_RW_PTR_STOP11_FIX
@@ -570,6 +575,21 @@ p9_sgpe_stop_exit()
cme_flags |= CME_SIBLING_FUNCTIONAL;
}
+#if NIMBUS_DD_LEVEL != 1
+
+ GPE_GETSCOM(GPE_SCOM_ADDR_CME(CME_SCOM_SISR, qloop, 0), scom_data);
+
+ if (scom_data & BIT64(9))
+ {
+ fused_core_mode = 1;
+ }
+ else
+ {
+ fused_core_mode = 0;
+ }
+
+#endif
+
if (ccsr.value & BIT32((qloop << 2)))
{
cme_flags |= CME_CORE0_ENABLE;
@@ -580,6 +600,17 @@ p9_sgpe_stop_exit()
{
cme_flags |= CME_CORE0_ENTRY_FIRST;
}
+
+#if NIMBUS_DD_LEVEL != 1
+
+ if (fused_core_mode)
+ {
+ GPE_PUTSCOM(GPE_SCOM_ADDR_CORE(CPPM_CPMMR_OR,
+ ((qloop << 2))), BIT64(9));
+ }
+
+#endif
+
}
if (ccsr.value & BIT32((qloop << 2) + 1))
@@ -592,6 +623,17 @@ p9_sgpe_stop_exit()
{
cme_flags |= CME_CORE1_ENTRY_FIRST;
}
+
+#if NIMBUS_DD_LEVEL != 1
+
+ if (fused_core_mode)
+ {
+ GPE_PUTSCOM(GPE_SCOM_ADDR_CORE(CPPM_CPMMR_OR,
+ ((qloop << 2) + 1)), BIT64(9));
+ }
+
+#endif
+
}
GPE_PUTSCOM(GPE_SCOM_ADDR_CME(CME_SCOM_FLAGS_OR, qloop, 0),
@@ -607,6 +649,21 @@ p9_sgpe_stop_exit()
cme_flags |= CME_SIBLING_FUNCTIONAL;
}
+#if NIMBUS_DD_LEVEL != 1
+
+ GPE_GETSCOM(GPE_SCOM_ADDR_CME(CME_SCOM_SISR, qloop, 1), scom_data);
+
+ if (scom_data & BIT64(9))
+ {
+ fused_core_mode = 1;
+ }
+ else
+ {
+ fused_core_mode = 0;
+ }
+
+#endif
+
if (ccsr.value & BIT32(((qloop << 2) + 2)))
{
cme_flags |= CME_CORE0_ENABLE;
@@ -617,6 +674,17 @@ p9_sgpe_stop_exit()
{
cme_flags |= CME_CORE0_ENTRY_FIRST;
}
+
+#if NIMBUS_DD_LEVEL != 1
+
+ if (fused_core_mode)
+ {
+ GPE_PUTSCOM(GPE_SCOM_ADDR_CORE(CPPM_CPMMR_OR,
+ ((qloop << 2) + 2)), BIT64(9));
+ }
+
+#endif
+
}
if (ccsr.value & BIT32(((qloop << 2) + 3)))
@@ -629,6 +697,17 @@ p9_sgpe_stop_exit()
{
cme_flags |= CME_CORE1_ENTRY_FIRST;
}
+
+#if NIMBUS_DD_LEVEL != 1
+
+ if (fused_core_mode)
+ {
+ GPE_PUTSCOM(GPE_SCOM_ADDR_CORE(CPPM_CPMMR_OR,
+ ((qloop << 2) + 3)), BIT64(9));
+ }
+
+#endif
+
}
GPE_PUTSCOM(GPE_SCOM_ADDR_CME(CME_SCOM_FLAGS_OR, qloop, 1),
OpenPOWER on IntegriCloud