summaryrefslogtreecommitdiffstats
path: root/import/chips/p9
diff options
context:
space:
mode:
authorYue Du <daviddu@us.ibm.com>2018-09-13 22:17:01 -0500
committerhostboot <hostboot@us.ibm.com>2018-09-22 10:33:59 -0500
commitd1bfc67460df03843587ecb0a0b2369398c3559e (patch)
tree179061c4c338592c30f201fee808963cb6028ef7 /import/chips/p9
parent9d245f2518e4849b7dbf1f6cb5ba934864878e3e (diff)
downloadtalos-hcode-d1bfc67460df03843587ecb0a0b2369398c3559e.tar.gz
talos-hcode-d1bfc67460df03843587ecb0a0b2369398c3559e.zip
STOP: Disable cache inject and LCO before purge L3
- Updated the same HCODE changes in update_ec_eq HWP Key_Cronus_Test=PM_REGRESS Change-Id: I22f8b746f118ceeafac1b0c36b4b57cc59bbec3c CQ: SW443614 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66113 Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA <prasadbgr@in.ibm.com> Reviewed-by: Gregory S. Still <stillgs@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Tested-by: Cronus HW CI <cronushw-ci+hostboot@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Diffstat (limited to 'import/chips/p9')
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_scomcust.c8
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c12
2 files changed, 13 insertions, 7 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_scomcust.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_scomcust.c
index a69f561e..a72dd542 100644
--- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_scomcust.c
+++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_scomcust.c
@@ -160,7 +160,9 @@ p9_hcd_cache_scomcust(uint32_t quad, uint32_t m_ex, int is_stop8)
GPE_GETSCOM(GPE_SCOM_ADDR_EX(EX_DRAM_REF_REG, quad, 0), scom_data.value);
scom_data.words.upper &= ~BIT32(7);
GPE_PUTSCOM(GPE_SCOM_ADDR_EX(EX_DRAM_REF_REG, quad, 0), scom_data.value);
- GPE_PUTSCOM(GPE_SCOM_ADDR_EX(EX_PM_LCO_DIS_REG, quad, 0), 0);
+ GPE_GETSCOM(GPE_SCOM_ADDR_EX(EX_L3_MODE_REG1, quad, 0), scom_data.value);
+ scom_data.words.upper &= ~BIT32(22);
+ GPE_PUTSCOM(GPE_SCOM_ADDR_EX(EX_L3_MODE_REG1, quad, 0), scom_data.value);
}
if (m_ex & SND_EX_IN_QUAD)
@@ -168,7 +170,9 @@ p9_hcd_cache_scomcust(uint32_t quad, uint32_t m_ex, int is_stop8)
GPE_GETSCOM(GPE_SCOM_ADDR_EX(EX_DRAM_REF_REG, quad, 1), scom_data.value);
scom_data.words.upper &= ~BIT32(7);
GPE_PUTSCOM(GPE_SCOM_ADDR_EX(EX_DRAM_REF_REG, quad, 1), scom_data.value);
- GPE_PUTSCOM(GPE_SCOM_ADDR_EX(EX_PM_LCO_DIS_REG, quad, 1), 0);
+ GPE_GETSCOM(GPE_SCOM_ADDR_EX(EX_L3_MODE_REG1, quad, 1), scom_data.value);
+ scom_data.words.upper &= ~BIT32(22);
+ GPE_PUTSCOM(GPE_SCOM_ADDR_EX(EX_L3_MODE_REG1, quad, 1), scom_data.value);
}
PK_TRACE("Drop chiplet fence via NET_CTRL0[18]");
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 8b557655..ee600bde 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
@@ -772,18 +772,20 @@ p9_sgpe_stop_entry()
MARK_TAG(SE_PURGE_L3, (32 >> qloop))
//==================================
- PK_TRACE("Drop LCO prior to purge via EX_PM_LCO_DIS_REG[0]");
+ PK_TRACE("Drop LCO and Cache Inject prior to purge via EX_L3_MODE_REG1[22]");
if(ex & FST_EX_IN_QUAD)
{
- GPE_PUTSCOM(GPE_SCOM_ADDR_EX(EX_PM_LCO_DIS_REG, qloop, 0),
- BIT64(0));
+ GPE_GETSCOM(GPE_SCOM_ADDR_EX(EX_L3_MODE_REG1, qloop, 0), scom_data.value);
+ scom_data.words.upper |= BIT32(22);
+ GPE_PUTSCOM(GPE_SCOM_ADDR_EX(EX_L3_MODE_REG1, qloop, 0), scom_data.value);
}
if(ex & SND_EX_IN_QUAD)
{
- GPE_PUTSCOM(GPE_SCOM_ADDR_EX(EX_PM_LCO_DIS_REG, qloop, 1),
- BIT64(0));
+ GPE_GETSCOM(GPE_SCOM_ADDR_EX(EX_L3_MODE_REG1, qloop, 1), scom_data.value);
+ scom_data.words.upper |= BIT32(22);
+ GPE_PUTSCOM(GPE_SCOM_ADDR_EX(EX_L3_MODE_REG1, qloop, 1), scom_data.value);
}
#if !SKIP_L3_PURGE
OpenPOWER on IntegriCloud