summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/initfiles/p9c_mi_scom.C
diff options
context:
space:
mode:
authorBen Gass <bgass@us.ibm.com>2017-07-14 13:16:38 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-09-10 14:18:34 -0400
commit0d0d6f0a627f5eaa99d25a581164b6048d7b025c (patch)
tree72094cdb090aef9adccbd2a2c2451d4e1922ebde /src/import/chips/p9/procedures/hwp/initfiles/p9c_mi_scom.C
parent979b92660d5bc4d27fb388612040f4740df007dd (diff)
downloadtalos-hostboot-0d0d6f0a627f5eaa99d25a581164b6048d7b025c.tar.gz
talos-hostboot-0d0d6f0a627f5eaa99d25a581164b6048d7b025c.zip
Updates for Cumulus dmi/mi/mc initfiles
Includes workaround for HW413362 Replaces patches 43055 and 43056 Change-Id: I55f19c0de2323026ce636d6723fee3fed18abd75 Original-Change-Id: I95a4602e36250f6ec9dcd8bb1a590c9f29d3f22a Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/43158 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: LENNARD G. STREAT <lstreat@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Dev-Ready: Brent Wieman <bwieman@us.ibm.com> Reviewed-by: SHELTON LEUNG <sleung@us.ibm.com> Reviewed-by: Joseph J. McGill <jmcgill@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/45852 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-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>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/initfiles/p9c_mi_scom.C')
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9c_mi_scom.C86
1 files changed, 78 insertions, 8 deletions
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9c_mi_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9c_mi_scom.C
index a4c927719..348ec4ef2 100644
--- a/src/import/chips/p9/procedures/hwp/initfiles/p9c_mi_scom.C
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9c_mi_scom.C
@@ -30,32 +30,40 @@
using namespace fapi2;
constexpr uint64_t literal_7 = 7;
+constexpr uint64_t literal_16 = 16;
+constexpr uint64_t literal_8 = 8;
constexpr uint64_t literal_1 = 1;
constexpr uint64_t literal_0x19 = 0x19;
+constexpr uint64_t literal_0 = 0;
constexpr uint64_t literal_0b0000000000001000000 = 0b0000000000001000000;
constexpr uint64_t literal_0b0000000000001000 = 0b0000000000001000;
+constexpr uint64_t literal_0b01 = 0b01;
+constexpr uint64_t literal_5 = 5;
fapi2::ReturnCode p9c_mi_scom(const fapi2::Target<fapi2::TARGET_TYPE_MI>& TGT0,
const fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>& TGT1)
{
{
uint64_t l_def_ENABLE_PREFETCH_DROP_PROMOTE_BASIC = literal_1;
- uint64_t l_def_ENABLE_DYNAMIC_64_128B_READS = literal_1;
+ uint64_t l_def_ENABLE_DYNAMIC_64_128B_READS = literal_0;
uint64_t l_def_ENABLE_ECRESP = literal_1;
uint64_t l_def_ENABLE_AMO_CACHING = literal_1;
+ uint64_t l_def_ENABLE_MCU_TIMEOUTS = literal_1;
fapi2::buffer<uint64_t> l_scom_buffer;
{
FAPI_TRY(fapi2::getScom( TGT0, 0x5010810ull, l_scom_buffer ));
l_scom_buffer.insert<46, 4, 60, uint64_t>(literal_7 );
+ l_scom_buffer.insert<50, 5, 59, uint64_t>(literal_16 );
+ l_scom_buffer.insert<55, 6, 58, uint64_t>(literal_8 );
- if (l_def_ENABLE_PREFETCH_DROP_PROMOTE_BASIC)
+ if ((l_def_ENABLE_PREFETCH_DROP_PROMOTE_BASIC == literal_1))
{
constexpr auto l_MC01_PBI01_SCOMFIR_MCPERF1_ENABLE_PF_DROP_CMDLIST_ON = 0x1;
l_scom_buffer.insert<61, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCPERF1_ENABLE_PF_DROP_CMDLIST_ON );
}
- if (l_def_ENABLE_PREFETCH_DROP_PROMOTE_BASIC)
+ if ((l_def_ENABLE_PREFETCH_DROP_PROMOTE_BASIC == literal_1))
{
l_scom_buffer.insert<32, 7, 57, uint64_t>(literal_0x19 );
}
@@ -65,8 +73,8 @@ fapi2::ReturnCode p9c_mi_scom(const fapi2::Target<fapi2::TARGET_TYPE_MI>& TGT0,
{
FAPI_TRY(fapi2::getScom( TGT0, 0x5010811ull, l_scom_buffer ));
- constexpr auto l_MC01_PBI01_SCOMFIR_MCMODE0_ENABLE_CENTAUR_PERFMON_COMMAND_ON = 0x1;
- l_scom_buffer.insert<48, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCMODE0_ENABLE_CENTAUR_PERFMON_COMMAND_ON );
+ constexpr auto l_MC01_PBI01_SCOMFIR_MCMODE0_ENABLE_CENTAUR_PERFMON_COMMAND_OFF = 0x0;
+ l_scom_buffer.insert<48, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCMODE0_ENABLE_CENTAUR_PERFMON_COMMAND_OFF );
constexpr auto l_MC01_PBI01_SCOMFIR_MCMODE0_ENABLE_EMERGENCY_THROTTLE_ON = 0x1;
l_scom_buffer.insert<21, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCMODE0_ENABLE_EMERGENCY_THROTTLE_ON );
constexpr auto l_MC01_PBI01_SCOMFIR_MCMODE0_ENABLE_CENTAUR_CHECKSTOP_COMMAND_ON = 0x1;
@@ -74,18 +82,25 @@ fapi2::ReturnCode p9c_mi_scom(const fapi2::Target<fapi2::TARGET_TYPE_MI>& TGT0,
constexpr auto l_MC01_PBI01_SCOMFIR_MCMODE0_ENABLE_CENTAUR_TRACESTOP_COMMAND_ON = 0x1;
l_scom_buffer.insert<23, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCMODE0_ENABLE_CENTAUR_TRACESTOP_COMMAND_ON );
- if (l_def_ENABLE_DYNAMIC_64_128B_READS)
+ if ((l_def_ENABLE_DYNAMIC_64_128B_READS == literal_1))
{
constexpr auto l_MC01_PBI01_SCOMFIR_MCMODE0_ENABLE_64_128B_READ_ON = 0x1;
l_scom_buffer.insert<9, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCMODE0_ENABLE_64_128B_READ_ON );
}
+ else if ((l_def_ENABLE_DYNAMIC_64_128B_READS == literal_0))
+ {
+ constexpr auto l_MC01_PBI01_SCOMFIR_MCMODE0_ENABLE_64_128B_READ_OFF = 0x0;
+ l_scom_buffer.insert<9, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCMODE0_ENABLE_64_128B_READ_OFF );
+ }
- if (l_def_ENABLE_ECRESP)
+ if ((l_def_ENABLE_ECRESP == literal_1))
{
constexpr auto l_MC01_PBI01_SCOMFIR_MCMODE0_CENTAURP_ENABLE_ECRESP_ON = 0x1;
l_scom_buffer.insert<7, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCMODE0_CENTAURP_ENABLE_ECRESP_ON );
}
+ constexpr auto l_MC01_PBI01_SCOMFIR_MCMODE0_ASYNC_MODE_ON = 0x1;
+ l_scom_buffer.insert<6, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCMODE0_ASYNC_MODE_ON );
FAPI_TRY(fapi2::putScom(TGT0, 0x5010811ull, l_scom_buffer));
}
{
@@ -97,13 +112,68 @@ fapi2::ReturnCode p9c_mi_scom(const fapi2::Target<fapi2::TARGET_TYPE_MI>& TGT0,
{
FAPI_TRY(fapi2::getScom( TGT0, 0x5010813ull, l_scom_buffer ));
- if (l_def_ENABLE_AMO_CACHING)
+ if ((l_def_ENABLE_AMO_CACHING == literal_1))
{
l_scom_buffer.insert<24, 16, 48, uint64_t>(literal_0b0000000000001000 );
}
FAPI_TRY(fapi2::putScom(TGT0, 0x5010813ull, l_scom_buffer));
}
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x501081bull, l_scom_buffer ));
+
+ if ((l_def_ENABLE_MCU_TIMEOUTS == literal_1))
+ {
+ constexpr auto l_MC01_PBI01_SCOMFIR_MCTO_SELECT_PB_HANG_PULSE_ON = 0x1;
+ l_scom_buffer.insert<0, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCTO_SELECT_PB_HANG_PULSE_ON );
+ }
+
+ constexpr auto l_MC01_PBI01_SCOMFIR_MCTO_SELECT_LOCAL_HANG_PULSE_OFF = 0x0;
+ l_scom_buffer.insert<1, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCTO_SELECT_LOCAL_HANG_PULSE_OFF );
+
+ if ((l_def_ENABLE_MCU_TIMEOUTS == literal_1))
+ {
+ constexpr auto l_MC01_PBI01_SCOMFIR_MCTO_ENABLE_NONMIRROR_HANG_ON = 0x1;
+ l_scom_buffer.insert<32, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCTO_ENABLE_NONMIRROR_HANG_ON );
+ }
+
+ if ((l_def_ENABLE_MCU_TIMEOUTS == literal_1))
+ {
+ constexpr auto l_MC01_PBI01_SCOMFIR_MCTO_ENABLE_MIRROR_HANG_ON = 0x1;
+ l_scom_buffer.insert<33, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCTO_ENABLE_MIRROR_HANG_ON );
+ }
+
+ if ((l_def_ENABLE_MCU_TIMEOUTS == literal_1))
+ {
+ constexpr auto l_MC01_PBI01_SCOMFIR_MCTO_ENABLE_APO_HANG_ON = 0x1;
+ l_scom_buffer.insert<34, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCTO_ENABLE_APO_HANG_ON );
+ }
+
+ if ((l_def_ENABLE_MCU_TIMEOUTS == literal_1))
+ {
+ constexpr auto l_MC01_PBI01_SCOMFIR_MCTO_ENABLE_CLIB_HANG_ON = 0x1;
+ l_scom_buffer.insert<35, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCTO_ENABLE_CLIB_HANG_ON );
+ }
+
+ l_scom_buffer.insert<2, 2, 62, uint64_t>(literal_0b01 );
+
+ if ((l_def_ENABLE_MCU_TIMEOUTS == literal_1))
+ {
+ l_scom_buffer.insert<24, 8, 56, uint64_t>(literal_1 );
+ }
+
+ if ((l_def_ENABLE_MCU_TIMEOUTS == literal_1))
+ {
+ l_scom_buffer.insert<5, 3, 61, uint64_t>(literal_7 );
+ }
+
+ if ((l_def_ENABLE_MCU_TIMEOUTS == literal_1))
+ {
+ l_scom_buffer.insert<37, 3, 61, uint64_t>(literal_5 );
+ }
+
+ FAPI_TRY(fapi2::putScom(TGT0, 0x501081bull, l_scom_buffer));
+ }
};
fapi_try_exit:
OpenPOWER on IntegriCloud