summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDean Sanner <dsanner@us.ibm.com>2017-04-07 12:45:43 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-04-10 17:46:32 -0400
commitb8169717c26a8eb780569c50cce29ca47d3bb9fa (patch)
tree6167ceae3dd7a78dd5e7cb97c8c0858d6f62cf38
parentca1e3f7df35276b213a4453df289f376c2cbc618 (diff)
downloadblackbird-hostboot-b8169717c26a8eb780569c50cce29ca47d3bb9fa.tar.gz
blackbird-hostboot-b8169717c26a8eb780569c50cce29ca47d3bb9fa.zip
Need to disable fast path and cmd bypass for HB load
Change-Id: I80210189e94ce09d97e8ea2520b779c4cf3b1c27 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/38995 Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: SHELTON LEUNG <sleung@us.ibm.com> Reviewed-by: Jenny Huynh <jhuynh@us.ibm.com> Reviewed-by: Prachi Gupta <pragupta@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/39019 Reviewed-by: Hostboot Team <hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-rw-r--r--src/import/chips/p9/procedures/hwp/nest/p9_revert_sbe_mcs_setup.C23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/import/chips/p9/procedures/hwp/nest/p9_revert_sbe_mcs_setup.C b/src/import/chips/p9/procedures/hwp/nest/p9_revert_sbe_mcs_setup.C
index c7ffb0986..8b1b762de 100644
--- a/src/import/chips/p9/procedures/hwp/nest/p9_revert_sbe_mcs_setup.C
+++ b/src/import/chips/p9/procedures/hwp/nest/p9_revert_sbe_mcs_setup.C
@@ -83,6 +83,13 @@ const uint64_t MCS_MCMODE1_ARR[NUM_MCS_TARGETS] =
MCS_2_MCMODE1,
MCS_3_MCMODE1
};
+const uint64_t MCS_MCPERF1_ARR[NUM_MCS_TARGETS] =
+{
+ MCS_0_MCPERF1,
+ MCS_1_MCPERF1,
+ MCS_2_MCPERF1,
+ MCS_3_MCPERF1
+};
const uint64_t MCS_MCFIRMASK_OR_ARR[NUM_MCS_TARGETS] =
{
MCS_0_MCFIRMASK_OR,
@@ -106,6 +113,7 @@ revert_mcs_hb_dcbz_config(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_t
fapi2::buffer<uint64_t> l_cplt_ctrl1;
fapi2::buffer<uint64_t> l_mcfgp;
fapi2::buffer<uint64_t> l_mcmode1;
+ fapi2::buffer<uint64_t> l_mcperf1;
fapi2::buffer<uint64_t> l_mcfirmask;
FAPI_TRY(fapi2::getScom(i_target, MCS_CPLT_CTRL1_ARR[i_mcs], l_cplt_ctrl1),
@@ -125,20 +133,30 @@ revert_mcs_hb_dcbz_config(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_t
FAPI_TRY(fapi2::putScom(i_target, MCS_MCFGP_ARR[i_mcs], l_mcfgp),
"Error from putScom (MCS%d_MCFGP)", i_mcs);
- // MCMODE1 -- enable speculation
+ // MCMODE1 -- enable speculation, cmd bypass, fp command bypass
FAPI_TRY(fapi2::getScom(i_target, MCS_MCMODE1_ARR[i_mcs], l_mcmode1),
"Error from getScom (MCS%d_MCMODE1)", i_mcs);
l_mcmode1.clearBit<MCS_MCMODE1_DISABLE_ALL_SPEC_OPS>();
l_mcmode1.clearBit<MCS_MCMODE1_DISABLE_SPEC_OP,
MCS_MCMODE1_DISABLE_SPEC_OP_LEN>();
+ l_mcmode1.clearBit<MCS_MCMODE1_DISABLE_COMMAND_BYPASS,
+ MCS_MCMODE1_DISABLE_COMMAND_BYPASS_LEN>();
+ l_mcmode1.clearBit<MCS_MCMODE1_DISABLE_FP_COMMAND_BYPASS>();
FAPI_TRY(fapi2::putScom(i_target, MCS_MCMODE1_ARR[i_mcs], l_mcmode1),
"Error from putScom (MCS%d_MCMODE1)", i_mcs);
+ // MCS_MCPERF1 -- enable fast path
+ FAPI_TRY(fapi2::getScom(i_target, MCS_MCPERF1_ARR[i_mcs], l_mcperf1),
+ "Error from getScom (MCS%d_MCPERF1)", i_mcs);
+ l_mcperf1.clearBit<MCS_MCPERF1_DISABLE_FASTPATH>();
+ FAPI_TRY(fapi2::putScom(i_target, MCS_MCPERF1, l_mcperf1),
+ "Error from putScom (MCS%d_MCPERF1)", i_mcs);
+
// Re-mask MCFIR. We want to ensure all MCSs are masked
// until the BARs are opened later during IPL.
l_mcfirmask.flush<1>();
FAPI_TRY(fapi2::putScom(i_target, MCS_MCFIRMASK_OR_ARR[i_mcs], l_mcfirmask),
- "Error from putScom (MCS%d_MCFIRMASK_OR)", i_mcs);
+ "Error from putScom (MCS % d_MCFIRMASK_OR)", i_mcs);
}
fapi_try_exit:
@@ -178,6 +196,7 @@ p9_revert_sbe_mcs_setup(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_tar
if (l_ipl_phase == fapi2::ENUM_ATTR_SYSTEM_IPL_PHASE_CHIP_CONTAINED)
{
+
FAPI_INF("Leaving MC BAR configured for chip contained execution");
goto fapi_try_exit;
}
OpenPOWER on IntegriCloud