summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/chips/p9')
-rw-r--r--src/import/chips/p9/initfiles/p9n.mca.scom.initfile21
-rw-r--r--src/import/chips/p9/initfiles/p9n.mcs.scom.initfile2
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9n_mca_scom.C14
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9n_mcs_scom.C19
-rw-r--r--src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml17
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>
OpenPOWER on IntegriCloud