summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/initfiles/p9_mmu_scom.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/initfiles/p9_mmu_scom.C')
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9_mmu_scom.C259
1 files changed, 222 insertions, 37 deletions
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_mmu_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9_mmu_scom.C
index ad70907a..404527c5 100644
--- a/src/import/chips/p9/procedures/hwp/initfiles/p9_mmu_scom.C
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_mmu_scom.C
@@ -29,14 +29,22 @@
using namespace fapi2;
+constexpr uint64_t literal_0 = 0;
constexpr uint64_t literal_0x04047C0000000000 = 0x04047C0000000000;
+constexpr uint64_t literal_0x04247C0000000000 = 0x04247C0000000000;
constexpr uint64_t literal_0x0000000000000000 = 0x0000000000000000;
constexpr uint64_t literal_0x409B000000000000 = 0x409B000000000000;
+constexpr uint64_t literal_0x40FB000000000000 = 0x40FB000000000000;
+constexpr uint64_t literal_0x3 = 0x3;
+constexpr uint64_t literal_0x1 = 0x1;
constexpr uint64_t literal_0x0000FAF800FF = 0x0000FAF800FF;
+constexpr uint64_t literal_0x0000FAFC00FB = 0x0000FAFC00FB;
constexpr uint64_t literal_0x000000000000 = 0x000000000000;
constexpr uint64_t literal_0x910000040F00 = 0x910000040F00;
+constexpr uint64_t literal_0x9D1100000F04 = 0x9D1100000F04;
constexpr uint64_t literal_0b11111 = 0b11111;
constexpr uint64_t literal_0x00E = 0x00E;
+constexpr uint64_t literal_0x000 = 0x000;
constexpr uint64_t literal_0x0258 = 0x0258;
fapi2::ReturnCode p9_mmu_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& TGT0,
@@ -47,13 +55,27 @@ fapi2::ReturnCode p9_mmu_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>&
fapi2::ATTR_NAME_Type l_chip_id;
FAPI_TRY(FAPI_ATTR_GET_PRIVILEGED(fapi2::ATTR_NAME, TGT0, l_chip_id));
FAPI_TRY(FAPI_ATTR_GET_PRIVILEGED(fapi2::ATTR_EC, TGT0, l_chip_ec));
+ fapi2::ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2_Type l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2, TGT0, l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2));
fapi2::ATTR_PROC_FABRIC_PUMP_MODE_Type l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE;
FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_PUMP_MODE, TGT1, l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE));
+ fapi2::ATTR_PROC_EPS_WRITE_CYCLES_T1_Type l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T1;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_WRITE_CYCLES_T1, TGT1, l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T1));
+ fapi2::ATTR_PROC_EPS_WRITE_CYCLES_T2_Type l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T2;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_WRITE_CYCLES_T2, TGT1, l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T2));
fapi2::buffer<uint64_t> l_scom_buffer;
{
FAPI_TRY(fapi2::getScom( TGT0, 0x5012c03ull, l_scom_buffer ));
- l_scom_buffer.insert<0, 22, 0, uint64_t>(literal_0x04047C0000000000 );
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 == literal_0))
+ {
+ l_scom_buffer.insert<0, 22, 0, uint64_t>(literal_0x04047C0000000000 );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 != literal_0))
+ {
+ l_scom_buffer.insert<0, 22, 0, uint64_t>(literal_0x04247C0000000000 );
+ }
+
FAPI_TRY(fapi2::putScom(TGT0, 0x5012c03ull, l_scom_buffer));
}
{
@@ -65,15 +87,20 @@ fapi2::ReturnCode p9_mmu_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>&
{
FAPI_TRY(fapi2::getScom( TGT0, 0x5012c07ull, l_scom_buffer ));
- l_scom_buffer.insert<0, 22, 0, uint64_t>(literal_0x409B000000000000 );
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 == literal_0))
+ {
+ l_scom_buffer.insert<0, 22, 0, uint64_t>(literal_0x409B000000000000 );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 != literal_0))
+ {
+ l_scom_buffer.insert<0, 22, 0, uint64_t>(literal_0x40FB000000000000 );
+ }
+
FAPI_TRY(fapi2::putScom(TGT0, 0x5012c07ull, l_scom_buffer));
}
{
FAPI_TRY(fapi2::getScom( TGT0, 0x5012c15ull, l_scom_buffer ));
- constexpr auto l_NMMU_MM_FBC_CQ_WRAP_NXCQ_SCOM_ADDR_BAR_MODE_OFF = 0x0;
- l_scom_buffer.insert<33, 1, 63, uint64_t>(l_NMMU_MM_FBC_CQ_WRAP_NXCQ_SCOM_ADDR_BAR_MODE_OFF );
-
if ((l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE == fapi2::ENUM_ATTR_PROC_FABRIC_PUMP_MODE_CHIP_IS_NODE))
{
constexpr auto l_NMMU_MM_FBC_CQ_WRAP_NXCQ_SCOM_CFG_PUMP_MODE_ON = 0x1;
@@ -85,12 +112,37 @@ fapi2::ReturnCode p9_mmu_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>&
l_scom_buffer.insert<39, 1, 63, uint64_t>(l_NMMU_MM_FBC_CQ_WRAP_NXCQ_SCOM_CFG_PUMP_MODE_OFF );
}
+ if (((l_chip_id == 0x5) && (l_chip_ec == 0x20)) )
+ {
+ l_scom_buffer.insert<8, 3, 61, uint64_t>(literal_0x3 );
+ }
+
FAPI_TRY(fapi2::putScom(TGT0, 0x5012c15ull, l_scom_buffer));
}
{
+ if (((l_chip_id == 0x5) && (l_chip_ec == 0x20)) )
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x5012c1dull, l_scom_buffer ));
+
+ l_scom_buffer.insert<0, 12, 52, uint64_t>(l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T1 );
+ l_scom_buffer.insert<16, 12, 52, uint64_t>(l_TGT1_ATTR_PROC_EPS_WRITE_CYCLES_T2 );
+ l_scom_buffer.insert<12, 4, 60, uint64_t>(literal_0x1 );
+ l_scom_buffer.insert<28, 4, 60, uint64_t>(literal_0x1 );
+ FAPI_TRY(fapi2::putScom(TGT0, 0x5012c1dull, l_scom_buffer));
+ }
+ }
+ {
FAPI_TRY(fapi2::getScom( TGT0, 0x5012c43ull, l_scom_buffer ));
- l_scom_buffer.insert<0, 48, 16, uint64_t>(literal_0x0000FAF800FF );
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 == literal_0))
+ {
+ l_scom_buffer.insert<0, 48, 16, uint64_t>(literal_0x0000FAF800FF );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 != literal_0))
+ {
+ l_scom_buffer.insert<0, 48, 16, uint64_t>(literal_0x0000FAFC00FB );
+ }
+
FAPI_TRY(fapi2::putScom(TGT0, 0x5012c43ull, l_scom_buffer));
}
{
@@ -102,47 +154,116 @@ fapi2::ReturnCode p9_mmu_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>&
{
FAPI_TRY(fapi2::getScom( TGT0, 0x5012c47ull, l_scom_buffer ));
- l_scom_buffer.insert<0, 48, 16, uint64_t>(literal_0x910000040F00 );
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 == literal_0))
+ {
+ l_scom_buffer.insert<0, 48, 16, uint64_t>(literal_0x910000040F00 );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 != literal_0))
+ {
+ l_scom_buffer.insert<0, 48, 16, uint64_t>(literal_0x9D1100000F04 );
+ }
+
FAPI_TRY(fapi2::putScom(TGT0, 0x5012c47ull, l_scom_buffer));
}
{
FAPI_TRY(fapi2::getScom( TGT0, 0x5012c52ull, l_scom_buffer ));
+ l_scom_buffer.insert<30, 1, 59, uint64_t>(literal_0b11111 );
+ l_scom_buffer.insert<60, 4, 60, uint64_t>(literal_0b11111 );
+
if (((l_chip_id == 0x5) && (l_chip_ec == 0x10)) )
{
- constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0x70;
- l_scom_buffer.insert<20, 1, 57, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
- l_scom_buffer.insert<24, 1, 62, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
- l_scom_buffer.insert<26, 1, 63, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 == literal_0))
+ {
+ constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0x70;
+ l_scom_buffer.insert<20, 1, 57, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ l_scom_buffer.insert<24, 1, 62, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ l_scom_buffer.insert<26, 1, 63, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 != literal_0))
+ {
+ constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV = 0xb;
+ l_scom_buffer.insert<20, 1, 57, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV );
+ l_scom_buffer.insert<24, 1, 62, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV );
+ l_scom_buffer.insert<26, 1, 63, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV );
+ }
}
else if (((l_chip_id == 0x5) && (l_chip_ec == 0x20)) )
{
- constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0xe00;
- l_scom_buffer.insert<20, 1, 52, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
- l_scom_buffer.insert<24, 1, 57, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
- l_scom_buffer.insert<26, 1, 58, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 == literal_0))
+ {
+ constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0xe00;
+ l_scom_buffer.insert<20, 1, 52, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ l_scom_buffer.insert<24, 1, 57, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ l_scom_buffer.insert<26, 1, 58, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 != literal_0))
+ {
+ constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV = 0x177;
+ l_scom_buffer.insert<20, 1, 52, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV );
+ l_scom_buffer.insert<24, 1, 57, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV );
+ l_scom_buffer.insert<26, 1, 58, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV );
+ }
+ }
+
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 == literal_0))
+ {
+ l_scom_buffer.insert<0, 12, 52, uint64_t>(literal_0x00E );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 != literal_0))
+ {
+ l_scom_buffer.insert<0, 12, 52, uint64_t>(literal_0x000 );
+ }
+
+ constexpr auto l_NMMU_MM_CFG_NMMU_CTL_TW_RDX_PWC_DIS_ON = 0x1;
+ l_scom_buffer.insert<52, 1, 63, uint64_t>(l_NMMU_MM_CFG_NMMU_CTL_TW_RDX_PWC_DIS_ON );
+
+ if (((l_chip_id == 0x5) && (l_chip_ec == 0x20)) )
+ {
+ constexpr auto l_NMMU_MM_CFG_NMMU_CTL_TW_LCO_RDX_EN_ON = 0x1;
+ l_scom_buffer.insert<44, 1, 63, uint64_t>(l_NMMU_MM_CFG_NMMU_CTL_TW_LCO_RDX_EN_ON );
+ }
+
+ if (((l_chip_id == 0x5) && (l_chip_ec == 0x20)) )
+ {
+ constexpr auto l_NMMU_MM_CFG_NMMU_CTL_TW_LCO_RDX_PDE_EN_ON = 0x1;
+ l_scom_buffer.insert<51, 1, 63, uint64_t>(l_NMMU_MM_CFG_NMMU_CTL_TW_LCO_RDX_PDE_EN_ON );
}
- l_scom_buffer.insert<30, 1, 59, uint64_t>(literal_0b11111 );
- l_scom_buffer.insert<60, 4, 60, uint64_t>(literal_0b11111 );
- l_scom_buffer.insert<0, 12, 52, uint64_t>(literal_0x00E );
FAPI_TRY(fapi2::putScom(TGT0, 0x5012c52ull, l_scom_buffer));
}
{
FAPI_TRY(fapi2::getScom( TGT0, 0x5012c53ull, l_scom_buffer ));
+ l_scom_buffer.insert<32, 16, 48, uint64_t>(literal_0x0258 );
+
if (((l_chip_id == 0x5) && (l_chip_ec == 0x10)) )
{
- constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0x70;
- l_scom_buffer.insert<2, 2, 60, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 == literal_0))
+ {
+ constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0x70;
+ l_scom_buffer.insert<2, 2, 60, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 != literal_0))
+ {
+ constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV = 0xb;
+ l_scom_buffer.insert<2, 2, 60, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV );
+ }
}
else if (((l_chip_id == 0x5) && (l_chip_ec == 0x20)) )
{
- constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0xe00;
- l_scom_buffer.insert<2, 2, 55, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 == literal_0))
+ {
+ constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0xe00;
+ l_scom_buffer.insert<2, 2, 55, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 != literal_0))
+ {
+ constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV = 0x177;
+ l_scom_buffer.insert<2, 2, 55, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV );
+ }
}
- l_scom_buffer.insert<32, 16, 48, uint64_t>(literal_0x0258 );
FAPI_TRY(fapi2::putScom(TGT0, 0x5012c53ull, l_scom_buffer));
}
{
@@ -150,14 +271,37 @@ fapi2::ReturnCode p9_mmu_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>&
if (((l_chip_id == 0x5) && (l_chip_ec == 0x10)) )
{
- constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0x70;
- l_scom_buffer.insert<16, 1, 58, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 == literal_0))
+ {
+ constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0x70;
+ l_scom_buffer.insert<16, 1, 58, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 != literal_0))
+ {
+ constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV = 0xb;
+ l_scom_buffer.insert<16, 1, 58, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV );
+ }
}
else if (((l_chip_id == 0x5) && (l_chip_ec == 0x20)) )
{
- constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0xe00;
- l_scom_buffer.insert<16, 1, 53, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
- l_scom_buffer.insert<58, 2, 59, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 == literal_0))
+ {
+ constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0xe00;
+ l_scom_buffer.insert<16, 1, 53, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ l_scom_buffer.insert<58, 2, 59, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 != literal_0))
+ {
+ constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV = 0x177;
+ l_scom_buffer.insert<16, 1, 53, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV );
+ l_scom_buffer.insert<58, 2, 59, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV );
+ }
+ }
+
+ if (((l_chip_id == 0x5) && (l_chip_ec == 0x20)) )
+ {
+ constexpr auto l_NMMU_MM_CFG_TWSM_SPLIT_MODE_TWSM_SPLIT_08_TLB_04_SLB = 0x0;
+ l_scom_buffer.insert<57, 1, 62, uint64_t>(l_NMMU_MM_CFG_TWSM_SPLIT_MODE_TWSM_SPLIT_08_TLB_04_SLB );
}
FAPI_TRY(fapi2::putScom(TGT0, 0x5012c54ull, l_scom_buffer));
@@ -165,22 +309,63 @@ fapi2::ReturnCode p9_mmu_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>&
{
FAPI_TRY(fapi2::getScom( TGT0, 0x5012c55ull, l_scom_buffer ));
+ constexpr auto l_NMMU_MM_CFG_NMMU_CTL_TLB_ISS543B_FIX_EN_ON = 0x1;
+ l_scom_buffer.insert<53, 1, 63, uint64_t>(l_NMMU_MM_CFG_NMMU_CTL_TLB_ISS543B_FIX_EN_ON );
+
if (((l_chip_id == 0x5) && (l_chip_ec == 0x10)) )
{
- constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0x70;
- l_scom_buffer.insert<16, 1, 59, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 == literal_0))
+ {
+ constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0x70;
+ l_scom_buffer.insert<16, 1, 59, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 != literal_0))
+ {
+ constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV = 0xb;
+ l_scom_buffer.insert<16, 1, 59, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV );
+ }
}
else if (((l_chip_id == 0x5) && (l_chip_ec == 0x20)) )
{
- constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0xe00;
- l_scom_buffer.insert<16, 1, 54, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
- l_scom_buffer.insert<58, 2, 61, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 == literal_0))
+ {
+ constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV = 0xe00;
+ l_scom_buffer.insert<16, 1, 54, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ l_scom_buffer.insert<58, 2, 61, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_SINGLE_THREAD_MODE_ST_INV );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 != literal_0))
+ {
+ constexpr auto l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV = 0x177;
+ l_scom_buffer.insert<16, 1, 54, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV );
+ l_scom_buffer.insert<58, 2, 61, uint64_t>(l_NMMU_MM_PIPE_THREAD_MODE_MULTI_THREAD_MODE_DYN_ST_EN_HANGP_DIS_MT_INV );
+ }
+ }
+
+ if (((l_chip_id == 0x5) && (l_chip_ec == 0x20)) )
+ {
+ constexpr auto l_NMMU_MM_MPSS_MODE_MPSS_ENA_PREF_PGSZ_ENA_G_64KB_H_64KB = 0x155;
+ l_scom_buffer.insert<19, 1, 54, uint64_t>(l_NMMU_MM_MPSS_MODE_MPSS_ENA_PREF_PGSZ_ENA_G_64KB_H_64KB );
+ l_scom_buffer.insert<56, 1, 55, uint64_t>(l_NMMU_MM_MPSS_MODE_MPSS_ENA_PREF_PGSZ_ENA_G_64KB_H_64KB );
+ l_scom_buffer.insert<44, 8, 56, uint64_t>(l_NMMU_MM_MPSS_MODE_MPSS_ENA_PREF_PGSZ_ENA_G_64KB_H_64KB );
+ }
+
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 == literal_0))
+ {
+ constexpr auto l_NMMU_MM_CFG_NMMU_CTL_TLB_HASH_PID_DIS_ON = 0x1;
+ l_scom_buffer.insert<21, 1, 63, uint64_t>(l_NMMU_MM_CFG_NMMU_CTL_TLB_HASH_PID_DIS_ON );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_NMMU_DMT_DD2 != literal_0))
+ {
+ constexpr auto l_NMMU_MM_CFG_NMMU_CTL_TLB_HASH_PID_DIS_OFF = 0x0;
+ l_scom_buffer.insert<21, 1, 63, uint64_t>(l_NMMU_MM_CFG_NMMU_CTL_TLB_HASH_PID_DIS_OFF );
+ }
+
+ if (((l_chip_id == 0x5) && (l_chip_ec == 0x20)) )
+ {
+ constexpr auto l_NMMU_MM_CFG_TWSM_SPLIT_MODE_TWSM_SPLIT_08_TLB_04_SLB = 0x0;
+ l_scom_buffer.insert<57, 1, 63, uint64_t>(l_NMMU_MM_CFG_TWSM_SPLIT_MODE_TWSM_SPLIT_08_TLB_04_SLB );
}
- constexpr auto l_NMMU_MM_CFG_NMMU_CTL_TLB_HASH_PID_DIS_ON = 0x1;
- l_scom_buffer.insert<21, 1, 63, uint64_t>(l_NMMU_MM_CFG_NMMU_CTL_TLB_HASH_PID_DIS_ON );
- constexpr auto l_NMMU_MM_CFG_NMMU_CTL_TLB_ISS543B_FIX_EN_ON = 0x1;
- l_scom_buffer.insert<53, 1, 63, uint64_t>(l_NMMU_MM_CFG_NMMU_CTL_TLB_ISS543B_FIX_EN_ON );
FAPI_TRY(fapi2::putScom(TGT0, 0x5012c55ull, l_scom_buffer));
}
OpenPOWER on IntegriCloud