diff options
| author | Yue Du <daviddu@us.ibm.com> | 2016-12-05 16:27:02 -0600 |
|---|---|---|
| committer | Joshua Hunsberger <jahunsbe@us.ibm.com> | 2017-10-23 16:59:11 -0500 |
| commit | 71ff515808626ee36f113aeefe601cf09a96b844 (patch) | |
| tree | aca94758709e59e10d2c28fafe8647a5c71211d7 | |
| parent | d55a47c715c0dc5a7a1a685961b8ea4e7c4455d8 (diff) | |
| download | talos-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.c | 81 |
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), |

