summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShelton Leung <sleung@us.ibm.com>2017-08-08 10:23:34 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-08-21 14:51:49 -0400
commitf7a823d1fd89870c34205e2067c67d14714c3ef7 (patch)
treedbc1903018d27da95ea9d194716f83c46c3926e8 /src
parent82b108909e0401fbbb4b55784cc93fcdd7b8d85a (diff)
downloadtalos-hostboot-f7a823d1fd89870c34205e2067c67d14714c3ef7.tar.gz
talos-hostboot-f7a823d1fd89870c34205e2067c67d14714c3ef7.zip
DD2 slow mss scrub fix (resurgence of HW397255)
Change-Id: Id24217531bbb5bc00d0f3e143c9938b957ea17e9 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/44350 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Dev-Ready: SHELTON LEUNG <sleung@us.ibm.com> Reviewed-by: Thi N. Tran <thi@us.ibm.com> Reviewed-by: Jenny Huynh <jhuynh@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/44358 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/import/chips/p9/initfiles/p9n.mcs.scom.initfile12
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9n_mcs_scom.C4
-rw-r--r--src/import/chips/p9/procedures/hwp/nest/p9_throttle_sync.C10
3 files changed, 26 insertions, 0 deletions
diff --git a/src/import/chips/p9/initfiles/p9n.mcs.scom.initfile b/src/import/chips/p9/initfiles/p9n.mcs.scom.initfile
index 8b032fa7e..1cac62958 100644
--- a/src/import/chips/p9/initfiles/p9n.mcs.scom.initfile
+++ b/src/import/chips/p9/initfiles/p9n.mcs.scom.initfile
@@ -168,6 +168,18 @@ espy MC01.PBI01.SCOMFIR.MCPERF1_ENABLE_PREFETCH_PROMOTE [when=S && ATTR_CHIP_EC_
ON;
}
+# For DD2, HW397255 fix doesn't get configured until mss_thermal_init, so start with this on to protect mss_scrub
+espy MC01.PBI01.SCOMFIR.MCMODE0_DISABLE_MC_SYNC [when=S && !ATTR_CHIP_EC_FEATURE_HW397255] {
+ spyv;
+ ON;
+}
+
+# For DD2, HW397255 fix doesn't get configured until mss_thermal_init, so start with this on to protect mss_scrub
+espy MC01.PBI01.SCOMFIR.MCMODE0_DISABLE_MC_PAIR_SYNC [when=S && !ATTR_CHIP_EC_FEATURE_HW397255] {
+ spyv;
+ ON;
+}
+
# Dis Spec Ops for DCBFs (HW414958) dd1 and dd2
ispy MC01.PBI01.SCOMFIR.MCMODE1_DISABLE_SPEC_OP [when=S] {
spyv;
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9n_mcs_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9n_mcs_scom.C
index 4fa0017d3..7d320eee8 100644
--- a/src/import/chips/p9/procedures/hwp/initfiles/p9n_mcs_scom.C
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9n_mcs_scom.C
@@ -103,6 +103,10 @@ fapi2::ReturnCode p9n_mcs_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCS>& TGT0
l_scom_buffer.insert<8, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCMODE0_ENABLE_DROP_FP_DYN64_ACTIVE_ON );
constexpr auto l_MC01_PBI01_SCOMFIR_MCMODE0_CENTAURP_ENABLE_ECRESP_OFF = 0x0;
l_scom_buffer.insert<7, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCMODE0_CENTAURP_ENABLE_ECRESP_OFF );
+ constexpr auto l_MC01_PBI01_SCOMFIR_MCMODE0_DISABLE_MC_SYNC_ON = 0x1;
+ l_scom_buffer.insert<27, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCMODE0_DISABLE_MC_SYNC_ON );
+ constexpr auto l_MC01_PBI01_SCOMFIR_MCMODE0_DISABLE_MC_PAIR_SYNC_ON = 0x1;
+ l_scom_buffer.insert<28, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCMODE0_DISABLE_MC_PAIR_SYNC_ON );
FAPI_TRY(fapi2::putScom(TGT0, 0x5010811ull, l_scom_buffer));
}
}
diff --git a/src/import/chips/p9/procedures/hwp/nest/p9_throttle_sync.C b/src/import/chips/p9/procedures/hwp/nest/p9_throttle_sync.C
index af80d2fb8..e86021ea4 100644
--- a/src/import/chips/p9/procedures/hwp/nest/p9_throttle_sync.C
+++ b/src/import/chips/p9/procedures/hwp/nest/p9_throttle_sync.C
@@ -181,12 +181,22 @@ fapi2::ReturnCode progMCMODE0(
l_scomData.setBit<MCS_MCMODE0_DISABLE_MC_SYNC>();
l_scomMask.setBit<MCS_MCMODE0_DISABLE_MC_SYNC>();
}
+ else
+ {
+ l_scomData.clearBit<MCS_MCMODE0_DISABLE_MC_SYNC>();
+ l_scomMask.setBit<MCS_MCMODE0_DISABLE_MC_SYNC>();
+ }
if (!l_same_side_functional)
{
l_scomData.setBit<MCS_MCMODE0_DISABLE_MC_PAIR_SYNC>();
l_scomMask.setBit<MCS_MCMODE0_DISABLE_MC_PAIR_SYNC>();
}
+ else
+ {
+ l_scomData.clearBit<MCS_MCMODE0_DISABLE_MC_PAIR_SYNC>();
+ l_scomMask.setBit<MCS_MCMODE0_DISABLE_MC_PAIR_SYNC>();
+ }
FAPI_INF("Writing MCS_MCMODE0 reg 0x%.16llX: Mask 0x%.16llX , Data 0x%.16llX",
MCS_MCMODE0, l_scomMask, l_scomData);
OpenPOWER on IntegriCloud