diff options
Diffstat (limited to 'src/import/chips')
5 files changed, 42 insertions, 31 deletions
diff --git a/src/import/chips/p9/initfiles/p9n.mca.scom.initfile b/src/import/chips/p9/initfiles/p9n.mca.scom.initfile index f7b797ed6..9ef84f608 100644 --- a/src/import/chips/p9/initfiles/p9n.mca.scom.initfile +++ b/src/import/chips/p9/initfiles/p9n.mca.scom.initfile @@ -769,33 +769,24 @@ define def_perf_tune_case = (MCBIST.ATTR_MSS_FREQ==2400) && (SYS.ATTR_FREQ_PB_MH # "L" field ispy MCP.PORT0.ECC64.SCOM.MBSECCQ_VAL_TO_DATA_DELAY [when=S && ATTR_CHIP_EC_FEATURE_MCA_P9NDD1_ASYNC] { spyv, expr; - # OLD - keeping here because this Boston 2400/1600 fix is likely temporary (HW411339) - #3, (def_perf_tune_case==0); # untuned - #5, (def_perf_tune_case==1); # tuned - 3, (def_perf_tune_case==0) && (def_mn_freq_ratio<=1350); # untuned and NOT boston 2400/1600 temp fix - 6, (def_perf_tune_case==0) && (def_mn_freq_ratio>1350); # untuned and boston 2400/1600 temp fix + 3, (def_perf_tune_case==0) && (def_mn_freq_ratio<=1200); # untuned and NOT boston 2400/1600 HW411339 fix + 6, (def_perf_tune_case==0) && (def_mn_freq_ratio>1200); # untuned and boston 2400/1600 HW411339 fix 5, (def_perf_tune_case==1); # tuned } # "D" field ispy MCP.PORT0.ECC64.SCOM.MBSECCQ_NEST_VAL_TO_DATA_DELAY [when=S && ATTR_CHIP_EC_FEATURE_MCA_P9NDD1_ASYNC] { spyv, expr; - # OLD - keeping here because this Boston 2400/1600 fix is likely temporary (HW411339) - #0, (def_perf_tune_case==0); # untuned - #1, (def_perf_tune_case==1); # tuned - 0, (def_perf_tune_case==0) && (def_mn_freq_ratio<=1350); # untuned and NOT boston 2400/1600 temp fix - 2, (def_perf_tune_case==0) && (def_mn_freq_ratio>1350); # untuned and boston 2400/1600 temp fix + 0, (def_perf_tune_case==0) && (def_mn_freq_ratio<=1200); # untuned and NOT boston 2400/1600 HW411339 fix + 2, (def_perf_tune_case==0) && (def_mn_freq_ratio>1200); # untuned and boston 2400/1600 HW411339 fix 1, (def_perf_tune_case==1); # tuned } # "dn" field espy MCP.PORT0.ECC64.SCOM.MBSECCQ_DELAY_NONBYPASS [when=S && ATTR_CHIP_EC_FEATURE_MCA_P9NDD1_ASYNC] { - # OLD - keeping here because this Boston 2400/1600 fix is likely temporary (HW411339) - #spyv; - #OFF; # untuned and tuned same value spyv, expr; - OFF, (def_mn_freq_ratio<=1350); # NOT boston 2400/1600 temp fix - ON, (def_mn_freq_ratio>1350); # boston 2400/1600 temp fix + OFF, (def_mn_freq_ratio<=1200); # NOT boston 2400/1600 HW411339 fix + ON, (def_mn_freq_ratio>1200); # boston 2400/1600 HW411339 fix } # "h" field diff --git a/src/import/chips/p9/initfiles/p9n.mcs.scom.initfile b/src/import/chips/p9/initfiles/p9n.mcs.scom.initfile index fed1a82d5..50de9d185 100644 --- a/src/import/chips/p9/initfiles/p9n.mcs.scom.initfile +++ b/src/import/chips/p9/initfiles/p9n.mcs.scom.initfile @@ -123,7 +123,7 @@ ispy MC01.PBI01.SCOMFIR.MCPERF1_PF_DROP_CNT_THRESH [when=S] { define def_mn_freq_ratio = (1000 * MCBIST.ATTR_MSS_FREQ) / SYS.ATTR_FREQ_PB_MHZ; -espy MC01.PBI01.SCOMFIR.MCMODE2_FORCE_SFSTAT_ACTIVE [when=S] { +espy MC01.PBI01.SCOMFIR.MCMODE2_FORCE_SFSTAT_ACTIVE [when=S && ATTR_CHIP_EC_FEATURE_HW411339] { spyv, expr; OFF, (def_mn_freq_ratio<=1350); # 1333 which is 2666/2000 (and lower ratios) will work as normal ON, (def_mn_freq_ratio>1350); # 1500 which is 2400/1600 will have sfsat/mdi always 1 diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9n_mca_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9n_mca_scom.C index 2985ba95d..5baaf5925 100644 --- a/src/import/chips/p9/procedures/hwp/initfiles/p9n_mca_scom.C +++ b/src/import/chips/p9/procedures/hwp/initfiles/p9n_mca_scom.C @@ -80,7 +80,7 @@ constexpr uint64_t literal_14 = 14; constexpr uint64_t literal_597 = 597; constexpr uint64_t literal_768 = 768; constexpr uint64_t literal_939 = 939; -constexpr uint64_t literal_1350 = 1350; +constexpr uint64_t literal_1200 = 1200; constexpr uint64_t literal_1000 = 1000; constexpr uint64_t literal_2000 = 2000; constexpr uint64_t literal_2400 = 2400; @@ -936,11 +936,11 @@ fapi2::ReturnCode p9n_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0 if (((l_chip_id == 0x5) && (l_chip_ec == 0x10)) ) { - if (((l_def_perf_tune_case == literal_0) && (l_def_mn_freq_ratio <= literal_1350))) + if (((l_def_perf_tune_case == literal_0) && (l_def_mn_freq_ratio <= literal_1200))) { l_scom_buffer.insert<16, 3, 61, uint64_t>(literal_3 ); } - else if (((l_def_perf_tune_case == literal_0) && (l_def_mn_freq_ratio > literal_1350))) + else if (((l_def_perf_tune_case == literal_0) && (l_def_mn_freq_ratio > literal_1200))) { l_scom_buffer.insert<16, 3, 61, uint64_t>(literal_6 ); } @@ -952,11 +952,11 @@ fapi2::ReturnCode p9n_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0 if (((l_chip_id == 0x5) && (l_chip_ec == 0x10)) ) { - if (((l_def_perf_tune_case == literal_0) && (l_def_mn_freq_ratio <= literal_1350))) + if (((l_def_perf_tune_case == literal_0) && (l_def_mn_freq_ratio <= literal_1200))) { l_scom_buffer.insert<20, 2, 62, uint64_t>(literal_0 ); } - else if (((l_def_perf_tune_case == literal_0) && (l_def_mn_freq_ratio > literal_1350))) + else if (((l_def_perf_tune_case == literal_0) && (l_def_mn_freq_ratio > literal_1200))) { l_scom_buffer.insert<20, 2, 62, uint64_t>(literal_2 ); } @@ -968,12 +968,12 @@ fapi2::ReturnCode p9n_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0 if (((l_chip_id == 0x5) && (l_chip_ec == 0x10)) ) { - if ((l_def_mn_freq_ratio <= literal_1350)) + if ((l_def_mn_freq_ratio <= literal_1200)) { constexpr auto l_MCP_PORT0_ECC64_SCOM_MBSECCQ_DELAY_NONBYPASS_OFF = 0x0; l_scom_buffer.insert<22, 1, 63, uint64_t>(l_MCP_PORT0_ECC64_SCOM_MBSECCQ_DELAY_NONBYPASS_OFF ); } - else if ((l_def_mn_freq_ratio > literal_1350)) + else if ((l_def_mn_freq_ratio > literal_1200)) { constexpr auto l_MCP_PORT0_ECC64_SCOM_MBSECCQ_DELAY_NONBYPASS_ON = 0x1; l_scom_buffer.insert<22, 1, 63, uint64_t>(l_MCP_PORT0_ECC64_SCOM_MBSECCQ_DELAY_NONBYPASS_ON ); 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 0f71c3f2a..3c99a8969 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 @@ -123,15 +123,18 @@ fapi2::ReturnCode p9n_mcs_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCS>& TGT0 } } - if ((l_def_mn_freq_ratio <= literal_1350)) - { - constexpr auto l_MC01_PBI01_SCOMFIR_MCMODE2_FORCE_SFSTAT_ACTIVE_OFF = 0x0; - l_scom_buffer.insert<0, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCMODE2_FORCE_SFSTAT_ACTIVE_OFF ); - } - else if ((l_def_mn_freq_ratio > literal_1350)) + if (((l_chip_id == 0x5) && (l_chip_ec == 0x10)) ) { - constexpr auto l_MC01_PBI01_SCOMFIR_MCMODE2_FORCE_SFSTAT_ACTIVE_ON = 0x1; - l_scom_buffer.insert<0, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCMODE2_FORCE_SFSTAT_ACTIVE_ON ); + if ((l_def_mn_freq_ratio <= literal_1350)) + { + constexpr auto l_MC01_PBI01_SCOMFIR_MCMODE2_FORCE_SFSTAT_ACTIVE_OFF = 0x0; + l_scom_buffer.insert<0, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCMODE2_FORCE_SFSTAT_ACTIVE_OFF ); + } + else if ((l_def_mn_freq_ratio > literal_1350)) + { + constexpr auto l_MC01_PBI01_SCOMFIR_MCMODE2_FORCE_SFSTAT_ACTIVE_ON = 0x1; + l_scom_buffer.insert<0, 1, 63, uint64_t>(l_MC01_PBI01_SCOMFIR_MCMODE2_FORCE_SFSTAT_ACTIVE_ON ); + } } if (((l_chip_id == 0x5) && (l_chip_ec == 0x20)) ) diff --git a/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml b/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml index d4aa1b441..bbea865e8 100644 --- a/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml +++ b/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml @@ -3448,6 +3448,23 @@ </attribute> <attribute> + <id>ATTR_CHIP_EC_FEATURE_HW411339</id> + <targetType>TARGET_TYPE_PROC_CHIP</targetType> + <description> + Workaround for supporting memory to nest frequency ratios greater than 1.33 + </description> + <chipEcFeature> + <chip> + <name>ENUM_ATTR_NAME_NIMBUS</name> + <ec> + <value>0x20</value> + <test>LESS_THAN</test> + </ec> + </chip> + </chipEcFeature> + </attribute> + + <attribute> <id>ATTR_CHIP_EC_FEATURE_RNG_ADAPTEST_SETTINGS</id> <targetType>TARGET_TYPE_PROC_CHIP</targetType> <description> |