summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/initfiles
diff options
context:
space:
mode:
authorBrian Silver <bsilver@us.ibm.com>2016-05-04 10:51:07 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-05-12 13:22:36 -0400
commit01cfd3d73a8b7347b901c01c387bad00a387a3a3 (patch)
tree714bb4c4e93e62d1e18595dc74720a2c675c73e9 /src/import/chips/p9/procedures/hwp/initfiles
parent8abef8a5e045bc05231d7f154129f863a62fb050 (diff)
downloadtalos-hostboot-01cfd3d73a8b7347b901c01c387bad00a387a3a3.tar.gz
talos-hostboot-01cfd3d73a8b7347b901c01c387bad00a387a3a3.zip
Change MCA initfile to encorporate VBU inits
Update VBU, other attribute files Change-Id: I7d4aece1e5cea96791a2a9abecfbef2218b728da Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/24168 Tested-by: Jenkins Server Tested-by: Hostboot CI Reviewed-by: Joseph J. McGill <jmcgill@us.ibm.com> Reviewed-by: ANDRE A. MARIN <aamarin@us.ibm.com> Reviewed-by: Louis Stermole <stermole@us.ibm.com> Reviewed-by: Brian R. Silver <bsilver@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/24170 Tested-by: FSP CI Jenkins Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/initfiles')
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.C786
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.H6
2 files changed, 754 insertions, 38 deletions
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.C
index a604220fc..0e6a03ea5 100644
--- a/src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.C
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.C
@@ -23,14 +23,149 @@
using namespace fapi2;
-
-fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0)
+constexpr auto literal_1 = 1;
+constexpr auto literal_2 = 2;
+constexpr auto literal_0 = 0;
+constexpr auto literal_13 = 13;
+constexpr auto literal_1867 = 1867;
+constexpr auto literal_14 = 14;
+constexpr auto literal_15 = 15;
+constexpr auto literal_2134 = 2134;
+constexpr auto literal_16 = 16;
+constexpr auto literal_17 = 17;
+constexpr auto literal_2401 = 2401;
+constexpr auto literal_18 = 18;
+constexpr auto literal_19 = 19;
+constexpr auto literal_2667 = 2667;
+constexpr auto literal_20 = 20;
+constexpr auto literal_21 = 21;
+constexpr auto literal_3 = 3;
+constexpr auto literal_22 = 22;
+constexpr auto literal_23 = 23;
+constexpr auto literal_4 = 4;
+constexpr auto literal_5 = 5;
+constexpr auto literal_6 = 6;
+constexpr auto literal_24 = 24;
+constexpr auto literal_7 = 7;
+constexpr auto literal_8 = 8;
+constexpr auto literal_9 = 9;
+constexpr auto literal_10 = 10;
+constexpr auto literal_11 = 11;
+constexpr auto literal_12 = 12;
+constexpr auto literal_267 = 267;
+constexpr auto literal_1866 = 1866;
+constexpr auto literal_597 = 597;
+constexpr auto literal_768 = 768;
+constexpr auto literal_939 = 939;
+
+fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0,
+ const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& TGT1, const fapi2::Target<fapi2::TARGET_TYPE_MCS>& TGT2)
{
fapi2::ReturnCode l_rc = 0;
do
{
fapi2::buffer<uint64_t> l_scom_buffer;
+ fapi2::ATTR_EFF_DIMM_TYPE_Type l_TGT2_ATTR_EFF_DIMM_TYPE;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DIMM_TYPE, TGT2, l_TGT2_ATTR_EFF_DIMM_TYPE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DIMM_TYPE)");
+ break;
+ }
+
+ fapi2::ATTR_CHIP_UNIT_POS_Type l_TGT0_ATTR_CHIP_UNIT_POS;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS, TGT0, l_TGT0_ATTR_CHIP_UNIT_POS);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_CHIP_UNIT_POS)");
+ break;
+ }
+
+ auto l_def_POSITION = l_TGT0_ATTR_CHIP_UNIT_POS;
+ auto l_def_PORT_INDEX = (l_def_POSITION % literal_2);
+ fapi2::ATTR_EFF_DRAM_TRP_Type l_TGT2_ATTR_EFF_DRAM_TRP;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DRAM_TRP, TGT2, l_TGT2_ATTR_EFF_DRAM_TRP);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DRAM_TRP)");
+ break;
+ }
+
+ fapi2::ATTR_EFF_DRAM_TRCD_Type l_TGT2_ATTR_EFF_DRAM_TRCD;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DRAM_TRCD, TGT2, l_TGT2_ATTR_EFF_DRAM_TRCD);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DRAM_TRCD)");
+ break;
+ }
+
+ fapi2::ATTR_EFF_DRAM_CL_Type l_TGT2_ATTR_EFF_DRAM_CL;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DRAM_CL, TGT2, l_TGT2_ATTR_EFF_DRAM_CL);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DRAM_CL)");
+ break;
+ }
+
+ fapi2::ATTR_MSS_FREQ_Type l_TGT1_ATTR_MSS_FREQ;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_MSS_FREQ, TGT1, l_TGT1_ATTR_MSS_FREQ);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_MSS_FREQ)");
+ break;
+ }
+
+ auto l_def_MSS_FREQ_EQ_1866 = (l_TGT1_ATTR_MSS_FREQ < literal_1867);
+ auto l_def_MEM_TYPE_1866_13_13_13 = (((l_def_MSS_FREQ_EQ_1866
+ && (l_TGT2_ATTR_EFF_DRAM_CL[l_def_PORT_INDEX] == literal_13))
+ && (l_TGT2_ATTR_EFF_DRAM_TRCD[l_def_PORT_INDEX] == literal_13))
+ && (l_TGT2_ATTR_EFF_DRAM_TRP[l_def_PORT_INDEX] == literal_13));
+ auto l_def_MEM_TYPE_1866_14_14_14 = (((l_def_MSS_FREQ_EQ_1866
+ && (l_TGT2_ATTR_EFF_DRAM_CL[l_def_PORT_INDEX] == literal_14))
+ && (l_TGT2_ATTR_EFF_DRAM_TRCD[l_def_PORT_INDEX] == literal_14))
+ && (l_TGT2_ATTR_EFF_DRAM_TRP[l_def_PORT_INDEX] == literal_14));
+ auto l_def_MSS_FREQ_EQ_2133 = ((l_TGT1_ATTR_MSS_FREQ >= literal_1867) && (l_TGT1_ATTR_MSS_FREQ < literal_2134));
+ auto l_def_MEM_TYPE_2133_15_15_15 = (((l_def_MSS_FREQ_EQ_2133
+ && (l_TGT2_ATTR_EFF_DRAM_CL[l_def_PORT_INDEX] == literal_15))
+ && (l_TGT2_ATTR_EFF_DRAM_TRCD[l_def_PORT_INDEX] == literal_15))
+ && (l_TGT2_ATTR_EFF_DRAM_TRP[l_def_PORT_INDEX] == literal_15));
+ auto l_def_MEM_TYPE_2133_16_16_16 = (((l_def_MSS_FREQ_EQ_2133
+ && (l_TGT2_ATTR_EFF_DRAM_CL[l_def_PORT_INDEX] == literal_16))
+ && (l_TGT2_ATTR_EFF_DRAM_TRCD[l_def_PORT_INDEX] == literal_16))
+ && (l_TGT2_ATTR_EFF_DRAM_TRP[l_def_PORT_INDEX] == literal_16));
+ auto l_def_MSS_FREQ_EQ_2400 = ((l_TGT1_ATTR_MSS_FREQ >= literal_2134) && (l_TGT1_ATTR_MSS_FREQ < literal_2401));
+ auto l_def_MEM_TYPE_2400_16_16_16 = (((l_def_MSS_FREQ_EQ_2400
+ && (l_TGT2_ATTR_EFF_DRAM_CL[l_def_PORT_INDEX] == literal_16))
+ && (l_TGT2_ATTR_EFF_DRAM_TRCD[l_def_PORT_INDEX] == literal_16))
+ && (l_TGT2_ATTR_EFF_DRAM_TRP[l_def_PORT_INDEX] == literal_16));
+ auto l_def_MEM_TYPE_2400_17_17_17 = (((l_def_MSS_FREQ_EQ_2400
+ && (l_TGT2_ATTR_EFF_DRAM_CL[l_def_PORT_INDEX] == literal_17))
+ && (l_TGT2_ATTR_EFF_DRAM_TRCD[l_def_PORT_INDEX] == literal_17))
+ && (l_TGT2_ATTR_EFF_DRAM_TRP[l_def_PORT_INDEX] == literal_17));
+ auto l_def_MEM_TYPE_2400_18_18_18 = (((l_def_MSS_FREQ_EQ_2400
+ && (l_TGT2_ATTR_EFF_DRAM_CL[l_def_PORT_INDEX] == literal_18))
+ && (l_TGT2_ATTR_EFF_DRAM_TRCD[l_def_PORT_INDEX] == literal_18))
+ && (l_TGT2_ATTR_EFF_DRAM_TRP[l_def_PORT_INDEX] == literal_18));
+ auto l_def_MSS_FREQ_EQ_2667 = (l_TGT1_ATTR_MSS_FREQ >= literal_2667);
+ auto l_def_MEM_TYPE_2667_18_18_18 = (((l_def_MSS_FREQ_EQ_2667
+ && (l_TGT2_ATTR_EFF_DRAM_CL[l_def_PORT_INDEX] == literal_18))
+ && (l_TGT2_ATTR_EFF_DRAM_TRCD[l_def_PORT_INDEX] == literal_18))
+ && (l_TGT2_ATTR_EFF_DRAM_TRP[l_def_PORT_INDEX] == literal_18));
+ auto l_def_MEM_TYPE_2667_19_19_19 = (((l_def_MSS_FREQ_EQ_2667
+ && (l_TGT2_ATTR_EFF_DRAM_CL[l_def_PORT_INDEX] == literal_19))
+ && (l_TGT2_ATTR_EFF_DRAM_TRCD[l_def_PORT_INDEX] == literal_19))
+ && (l_TGT2_ATTR_EFF_DRAM_TRP[l_def_PORT_INDEX] == literal_19));
+ auto l_def_MEM_TYPE_2667_20_20_20 = (((l_def_MSS_FREQ_EQ_2667
+ && (l_TGT2_ATTR_EFF_DRAM_CL[l_def_PORT_INDEX] == literal_20))
+ && (l_TGT2_ATTR_EFF_DRAM_TRCD[l_def_PORT_INDEX] == literal_20))
+ && (l_TGT2_ATTR_EFF_DRAM_TRP[l_def_PORT_INDEX] == literal_20));
{
l_rc = fapi2::getScom( TGT0, 0x701090aull, l_scom_buffer );
@@ -41,16 +176,246 @@ fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0)
}
{
- constexpr auto l_scom_buffer_SC_DDR4_2400_16_16_16R_1 = 0xccc213a2946aa22b;
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_SC_DDR4_2400_16_16_16R_1, 36, 6, 49 );
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_SC_DDR4_2400_16_16_16R_1, 30, 6, 55 );
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_SC_DDR4_2400_16_16_16R_1, 24, 3, 61 );
- constexpr auto l_scom_buffer_SC_DDR4_2400_16_16_16R_2 = 0x1cc301184;
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_SC_DDR4_2400_16_16_16R_2, 27, 3, 25 );
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_SC_DDR4_2400_16_16_16R_2, 0, 12, 28 );
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_SC_DDR4_2400_16_16_16R_2, 43, 6, 40 );
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_SC_DDR4_2400_16_16_16R_2, 12, 12, 46 );
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_SC_DDR4_2400_16_16_16R_2, 49, 6, 58 );
+ if (((l_def_MEM_TYPE_1866_13_13_13 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_1)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_14, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_1866_14_14_14 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_1)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_15, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_2133_15_15_15 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_1)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_16, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_2133_16_16_16 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_1)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_17, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_2400_16_16_16 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_1)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_17, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_2400_17_17_17 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_1)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_18, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_2400_18_18_18 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_1)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_19, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_2667_18_18_18 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_1)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_19, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_2667_19_19_19 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_1)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_20, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_2667_20_20_20 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_1)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_21, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_1866_13_13_13 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_3)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_16, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_1866_14_14_14 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_3)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_17, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_2133_15_15_15 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_3)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_18, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_2133_16_16_16 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_3)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_19, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_2400_16_16_16 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_3)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_19, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_2400_17_17_17 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_3)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_20, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_2400_18_18_18 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_3)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_21, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_2667_18_18_18 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_3)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_21, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_2667_19_19_19 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_3)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_22, 36, 6, 58 );
+ }
+ else if (((l_def_MEM_TYPE_2667_20_20_20 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_3)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_23, 36, 6, 58 );
+ }
+ }
+
+ {
+ if (((l_def_MSS_FREQ_EQ_1866 == literal_1) && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_1)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_3, 30, 6, 58 );
+ }
+ else if (((l_def_MSS_FREQ_EQ_2133 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_1)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_4, 30, 6, 58 );
+ }
+ else if (((l_def_MSS_FREQ_EQ_2400 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_1)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_5, 30, 6, 58 );
+ }
+ else if (((l_def_MSS_FREQ_EQ_2667 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_1)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_6, 30, 6, 58 );
+ }
+ else if (((l_def_MSS_FREQ_EQ_1866 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_3)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_2, 30, 6, 58 );
+ }
+ else if (((l_def_MSS_FREQ_EQ_2133 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_3)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_3, 30, 6, 58 );
+ }
+ else if (((l_def_MSS_FREQ_EQ_2400 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_3)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_4, 30, 6, 58 );
+ }
+ else if (((l_def_MSS_FREQ_EQ_2667 == literal_1)
+ && (l_TGT2_ATTR_EFF_DIMM_TYPE[l_def_PORT_INDEX][literal_0] == literal_3)))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_5, 30, 6, 58 );
+ }
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (literal_24, 24, 6, 58 );
+ }
+
+ {
+ if ((l_def_MEM_TYPE_1866_13_13_13 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_4, 0, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_1866_14_14_14 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_5, 0, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_2133_15_15_15 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_6, 0, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_2133_16_16_16 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_7, 0, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_2400_16_16_16 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_7, 0, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_2400_17_17_17 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_8, 0, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_2400_18_18_18 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_9, 0, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_2667_18_18_18 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_9, 0, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_2667_19_19_19 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_10, 0, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_2667_20_20_20 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_11, 0, 6, 58 );
+ }
+ }
+
+ {
+ if ((l_def_MEM_TYPE_1866_13_13_13 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_9, 6, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_1866_14_14_14 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_10, 6, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_2133_15_15_15 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_11, 6, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_2133_16_16_16 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_12, 6, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_2400_16_16_16 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_12, 6, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_2400_17_17_17 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_13, 6, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_2400_18_18_18 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_14, 6, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_2667_18_18_18 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_14, 6, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_2667_19_19_19 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_15, 6, 6, 58 );
+ }
+ else if ((l_def_MEM_TYPE_2667_20_20_20 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_16, 6, 6, 58 );
+ }
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (literal_1, 12, 6, 58 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (literal_6, 18, 6, 58 );
}
l_rc = fapi2::putScom(TGT0, 0x701090aull, l_scom_buffer);
@@ -61,6 +426,35 @@ fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0)
break;
}
}
+ auto l_def_RANK_SWITCH_TCK = (literal_4 + ((l_TGT1_ATTR_MSS_FREQ - literal_1866) / literal_267));
+ fapi2::ATTR_EFF_DRAM_TCCD_L_Type l_TGT2_ATTR_EFF_DRAM_TCCD_L;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DRAM_TCCD_L, TGT2, l_TGT2_ATTR_EFF_DRAM_TCCD_L);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DRAM_TCCD_L)");
+ break;
+ }
+
+ fapi2::ATTR_EFF_DRAM_CWL_Type l_TGT2_ATTR_EFF_DRAM_CWL;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DRAM_CWL, TGT2, l_TGT2_ATTR_EFF_DRAM_CWL);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DRAM_CWL)");
+ break;
+ }
+
+ auto l_def_BUS_TURNAROUND_TCK = (literal_4 + ((l_TGT1_ATTR_MSS_FREQ - literal_1866) / literal_267));
+ fapi2::ATTR_EFF_DRAM_TWTR_S_Type l_TGT2_ATTR_EFF_DRAM_TWTR_S;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DRAM_TWTR_S, TGT2, l_TGT2_ATTR_EFF_DRAM_TWTR_S);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DRAM_TWTR_S)");
+ break;
+ }
+
{
l_rc = fapi2::getScom( TGT0, 0x701090bull, l_scom_buffer );
@@ -71,8 +465,65 @@ fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0)
}
{
- constexpr auto l_scom_buffer_SC_DDR4_2400_16_16_16R = 0xa446a446739cc9a6;
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_SC_DDR4_2400_16_16_16R, 0, 63, 0 );
+ l_scom_buffer.insert<uint64_t> ((literal_4 + l_def_RANK_SWITCH_TCK), 0, 4, 60 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (literal_4, 4, 4, 60 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (literal_4, 8, 4, 60 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (l_TGT2_ATTR_EFF_DRAM_TCCD_L[l_def_PORT_INDEX], 12, 4, 60 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> ((literal_4 + l_def_RANK_SWITCH_TCK), 16, 4, 60 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (literal_4, 20, 4, 60 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (literal_4, 24, 4, 60 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (l_TGT2_ATTR_EFF_DRAM_TCCD_L[l_def_PORT_INDEX], 28, 4, 60 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> ((((l_TGT2_ATTR_EFF_DRAM_CL[l_def_PORT_INDEX] + literal_4) + l_def_BUS_TURNAROUND_TCK) -
+ l_TGT2_ATTR_EFF_DRAM_CWL[l_def_PORT_INDEX]), 32, 5, 59 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> ((((l_TGT2_ATTR_EFF_DRAM_CL[l_def_PORT_INDEX] + literal_4) + l_def_BUS_TURNAROUND_TCK) -
+ l_TGT2_ATTR_EFF_DRAM_CWL[l_def_PORT_INDEX]), 37, 5, 59 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> ((((l_TGT2_ATTR_EFF_DRAM_CL[l_def_PORT_INDEX] + literal_4) + l_def_BUS_TURNAROUND_TCK) -
+ l_TGT2_ATTR_EFF_DRAM_CWL[l_def_PORT_INDEX]), 42, 5, 59 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> ((((l_TGT2_ATTR_EFF_DRAM_CWL[l_def_PORT_INDEX] + literal_4) + l_def_BUS_TURNAROUND_TCK) -
+ l_TGT2_ATTR_EFF_DRAM_CL[l_def_PORT_INDEX]), 47, 4, 60 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (((l_TGT2_ATTR_EFF_DRAM_CWL[l_def_PORT_INDEX] + literal_4) +
+ l_TGT2_ATTR_EFF_DRAM_TWTR_S[l_def_PORT_INDEX]), 51, 6, 58 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (((l_TGT2_ATTR_EFF_DRAM_CWL[l_def_PORT_INDEX] + literal_4) +
+ l_TGT2_ATTR_EFF_DRAM_TWTR_S[l_def_PORT_INDEX]), 57, 6, 58 );
}
l_rc = fapi2::putScom(TGT0, 0x701090bull, l_scom_buffer);
@@ -83,6 +534,70 @@ fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0)
break;
}
}
+
+ fapi2::ATTR_EFF_DRAM_TWTR_L_Type l_TGT2_ATTR_EFF_DRAM_TWTR_L;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DRAM_TWTR_L, TGT2, l_TGT2_ATTR_EFF_DRAM_TWTR_L);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DRAM_TWTR_L)");
+ break;
+ }
+
+ fapi2::ATTR_EFF_DRAM_TFAW_Type l_TGT2_ATTR_EFF_DRAM_TFAW;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DRAM_TFAW, TGT2, l_TGT2_ATTR_EFF_DRAM_TFAW);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DRAM_TFAW)");
+ break;
+ }
+
+ fapi2::ATTR_EFF_DRAM_TRAS_Type l_TGT2_ATTR_EFF_DRAM_TRAS;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DRAM_TRAS, TGT2, l_TGT2_ATTR_EFF_DRAM_TRAS);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DRAM_TRAS)");
+ break;
+ }
+
+ fapi2::ATTR_EFF_DRAM_TWR_Type l_TGT2_ATTR_EFF_DRAM_TWR;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DRAM_TWR, TGT2, l_TGT2_ATTR_EFF_DRAM_TWR);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DRAM_TWR)");
+ break;
+ }
+
+ fapi2::ATTR_EFF_DRAM_TRTP_Type l_TGT2_ATTR_EFF_DRAM_TRTP;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DRAM_TRTP, TGT2, l_TGT2_ATTR_EFF_DRAM_TRTP);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DRAM_TRTP)");
+ break;
+ }
+
+ fapi2::ATTR_EFF_DRAM_TRRD_S_Type l_TGT2_ATTR_EFF_DRAM_TRRD_S;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DRAM_TRRD_S, TGT2, l_TGT2_ATTR_EFF_DRAM_TRRD_S);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DRAM_TRRD_S)");
+ break;
+ }
+
+ fapi2::ATTR_EFF_DRAM_TRRD_L_Type l_TGT2_ATTR_EFF_DRAM_TRRD_L;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DRAM_TRRD_L, TGT2, l_TGT2_ATTR_EFF_DRAM_TRRD_L);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DRAM_TRRD_L)");
+ break;
+ }
+
{
l_rc = fapi2::getScom( TGT0, 0x701090cull, l_scom_buffer );
@@ -93,17 +608,64 @@ fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0)
}
{
- constexpr auto l_scom_buffer_2400_8GB_X4 = 0x41a4240c64318560;
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_2400_8GB_X4, 10, 6, 0 );
+ l_scom_buffer.insert<uint64_t> (l_TGT2_ATTR_EFF_DRAM_TCCD_L[l_def_PORT_INDEX], 0, 4, 60 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (((l_TGT2_ATTR_EFF_DRAM_CWL[l_def_PORT_INDEX] + literal_4) +
+ l_TGT2_ATTR_EFF_DRAM_TWTR_L[l_def_PORT_INDEX]), 4, 6, 58 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (l_TGT2_ATTR_EFF_DRAM_TFAW[l_def_PORT_INDEX], 10, 6, 58 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (l_TGT2_ATTR_EFF_DRAM_TRCD[l_def_PORT_INDEX], 16, 5, 59 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (l_TGT2_ATTR_EFF_DRAM_TRP[l_def_PORT_INDEX], 21, 5, 59 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (l_TGT2_ATTR_EFF_DRAM_TRAS[l_def_PORT_INDEX], 26, 6, 58 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (((l_TGT2_ATTR_EFF_DRAM_CWL[l_def_PORT_INDEX] + literal_4) +
+ l_TGT2_ATTR_EFF_DRAM_TWR[l_def_PORT_INDEX]), 41, 7, 57 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (l_TGT2_ATTR_EFF_DRAM_TRTP[l_def_PORT_INDEX], 48, 4, 60 );
}
{
- constexpr auto l_scom_buffer_SC_DDR4_2400_16_16_16R = 0xa446a446739cc9a6;
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_SC_DDR4_2400_16_16_16R, 0, 1, 63 );
- constexpr auto l_scom_buffer_SC_DDR4_2400_16_16_16R_1 = 0xccc213a2946aa22b;
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_SC_DDR4_2400_16_16_16R_1, 1, 9, 0 );
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_SC_DDR4_2400_16_16_16R_1, 16, 16, 9 );
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_SC_DDR4_2400_16_16_16R_1, 41, 23, 25 );
+ l_scom_buffer.insert<uint64_t> (l_TGT2_ATTR_EFF_DRAM_TRRD_S[l_def_PORT_INDEX], 52, 4, 60 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (l_TGT2_ATTR_EFF_DRAM_TRRD_L[l_def_PORT_INDEX], 56, 4, 60 );
+ }
+
+ {
+ if ((l_def_MSS_FREQ_EQ_1866 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_8, 60, 4, 60 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2133 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_9, 60, 4, 60 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2400 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_10, 60, 4, 60 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2667 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_11, 60, 4, 60 );
+ }
}
l_rc = fapi2::putScom(TGT0, 0x701090cull, l_scom_buffer);
@@ -114,6 +676,7 @@ fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0)
break;
}
}
+
{
l_rc = fapi2::getScom( TGT0, 0x7010913ull, l_scom_buffer );
@@ -124,8 +687,8 @@ fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0)
}
{
- constexpr auto l_scom_buffer_SC_DDR4_2400_16_16_16R_1 = 0xccc213a2946aa22b;
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_SC_DDR4_2400_16_16_16R_1, 38, 1, 48 );
+ constexpr auto l_scom_buffer_ON = 0x1;
+ l_scom_buffer.insert<uint64_t> (l_scom_buffer_ON, 38, 1, 63 );
}
l_rc = fapi2::putScom(TGT0, 0x7010913ull, l_scom_buffer);
@@ -136,6 +699,46 @@ fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0)
break;
}
}
+
+ fapi2::ATTR_EFF_NUM_RANKS_PER_DIMM_Type l_TGT2_ATTR_EFF_NUM_RANKS_PER_DIMM;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_NUM_RANKS_PER_DIMM, TGT2, l_TGT2_ATTR_EFF_NUM_RANKS_PER_DIMM);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_NUM_RANKS_PER_DIMM)");
+ break;
+ }
+
+ auto l_def_NUM_RANKS = (l_TGT2_ATTR_EFF_NUM_RANKS_PER_DIMM[l_def_PORT_INDEX][literal_0] +
+ l_TGT2_ATTR_EFF_NUM_RANKS_PER_DIMM[l_def_PORT_INDEX][literal_1]);
+ fapi2::ATTR_EFF_DRAM_TREFI_Type l_TGT2_ATTR_EFF_DRAM_TREFI;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DRAM_TREFI, TGT2, l_TGT2_ATTR_EFF_DRAM_TREFI);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DRAM_TREFI)");
+ break;
+ }
+
+ auto l_def_REFRESH_INTERVAL = (l_TGT2_ATTR_EFF_DRAM_TREFI[l_def_PORT_INDEX] / (literal_8 * l_def_NUM_RANKS));
+ fapi2::ATTR_EFF_DRAM_TRFC_Type l_TGT2_ATTR_EFF_DRAM_TRFC;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DRAM_TRFC, TGT2, l_TGT2_ATTR_EFF_DRAM_TRFC);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DRAM_TRFC)");
+ break;
+ }
+
+ fapi2::ATTR_EFF_DRAM_TRFC_DLR_Type l_TGT2_ATTR_EFF_DRAM_TRFC_DLR;
+ l_rc = FAPI_ATTR_GET(fapi2::ATTR_EFF_DRAM_TRFC_DLR, TGT2, l_TGT2_ATTR_EFF_DRAM_TRFC_DLR);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: FAPI_ATTR_GET (ATTR_EFF_DRAM_TRFC_DLR)");
+ break;
+ }
+
{
l_rc = fapi2::getScom( TGT0, 0x7010932ull, l_scom_buffer );
@@ -146,8 +749,15 @@ fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0)
}
{
- constexpr auto l_scom_buffer_2400_8GB_X4 = 0x41a4240c64318560;
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_2400_8GB_X4, 30, 20, 6 );
+ l_scom_buffer.insert<uint64_t> (l_def_REFRESH_INTERVAL, 8, 11, 53 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (l_TGT2_ATTR_EFF_DRAM_TRFC[l_def_PORT_INDEX], 30, 10, 54 );
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (l_TGT2_ATTR_EFF_DRAM_TRFC_DLR[l_def_PORT_INDEX], 40, 10, 54 );
}
l_rc = fapi2::putScom(TGT0, 0x7010932ull, l_scom_buffer);
@@ -158,6 +768,7 @@ fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0)
break;
}
}
+
{
l_rc = fapi2::getScom( TGT0, 0x7010934ull, l_scom_buffer );
@@ -168,10 +779,60 @@ fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0)
}
{
- constexpr auto l_scom_buffer_2400_8GB_X4 = 0x41a4240c64318560;
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_2400_8GB_X4, 16, 5, 26 );
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_2400_8GB_X4, 11, 5, 31 );
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_2400_8GB_X4, 6, 5, 36 );
+ if ((l_def_MSS_FREQ_EQ_1866 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_5, 16, 5, 59 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2133 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_6, 16, 5, 59 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2400 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_6, 16, 5, 59 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2667 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_7, 16, 5, 59 );
+ }
+ }
+
+ {
+ if ((l_def_MSS_FREQ_EQ_1866 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_5, 11, 5, 59 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2133 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_6, 11, 5, 59 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2400 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_6, 11, 5, 59 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2667 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_7, 11, 5, 59 );
+ }
+ }
+
+ {
+ if ((l_def_MSS_FREQ_EQ_1866 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_6, 6, 5, 59 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2133 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_7, 6, 5, 59 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2400 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_8, 6, 5, 59 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2667 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_9, 6, 5, 59 );
+ }
}
l_rc = fapi2::putScom(TGT0, 0x7010934ull, l_scom_buffer);
@@ -182,6 +843,7 @@ fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0)
break;
}
}
+
{
l_rc = fapi2::getScom( TGT0, 0x7010935ull, l_scom_buffer );
@@ -192,12 +854,64 @@ fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0)
}
{
- constexpr auto l_scom_buffer_2400_8GB_X4 = 0x41a4240c64318560;
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_2400_8GB_X4, 17, 10, 41 );
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_2400_8GB_X4, 12, 5, 51 );
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_2400_8GB_X4, 27, 8, 56 );
- constexpr auto l_scom_buffer_2400_8GB_X4_1 = 0x0;
- l_scom_buffer.insert<uint64_t> (l_scom_buffer_2400_8GB_X4_1, 35, 3, 61 );
+ if ((l_def_MSS_FREQ_EQ_1866 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_10, 17, 5, 59 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2133 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_11, 17, 5, 59 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2400 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_12, 17, 5, 59 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2667 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_14, 17, 5, 59 );
+ }
+ }
+
+ {
+ if ((l_def_MSS_FREQ_EQ_1866 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_10, 22, 5, 59 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2133 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_11, 22, 5, 59 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2400 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_12, 22, 5, 59 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2667 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_14, 22, 5, 59 );
+ }
+ }
+
+ {
+ l_scom_buffer.insert<uint64_t> (literal_5, 12, 5, 59 );
+ }
+
+ {
+ if ((l_def_MSS_FREQ_EQ_1866 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_597, 27, 11, 53 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2133 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_768, 27, 11, 53 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2400 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_768, 27, 11, 53 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2667 == literal_1))
+ {
+ l_scom_buffer.insert<uint64_t> (literal_939, 27, 11, 53 );
+ }
}
l_rc = fapi2::putScom(TGT0, 0x7010935ull, l_scom_buffer);
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.H b/src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.H
index bc9646799..d8a462e08 100644
--- a/src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.H
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.H
@@ -25,12 +25,14 @@
#include <fapi2.H>
-typedef fapi2::ReturnCode (*p9_mca_scom_FP_t)(const fapi2::Target<fapi2::TARGET_TYPE_MCA>&);
+typedef fapi2::ReturnCode (*p9_mca_scom_FP_t)(const fapi2::Target<fapi2::TARGET_TYPE_MCA>&,
+ const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>&, const fapi2::Target<fapi2::TARGET_TYPE_MCS>&);
extern "C"
{
- fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0);
+ fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0,
+ const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& TGT1, const fapi2::Target<fapi2::TARGET_TYPE_MCS>& TGT2);
}
OpenPOWER on IntegriCloud