summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures
diff options
context:
space:
mode:
authorJoe McGill <jmcgill@us.ibm.com>2016-04-05 20:58:28 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-05-06 15:16:23 -0400
commit3e516c38ddbbac15f2a14a5ffc8735db2bcc7894 (patch)
tree389341a88ce3cb2b9944e9786060a647e557f6f0 /src/import/chips/p9/procedures
parent6e9175fbc993fa4a92526133480f08f894db2d9d (diff)
downloadtalos-hostboot-3e516c38ddbbac15f2a14a5ffc8735db2bcc7894.tar.gz
talos-hostboot-3e516c38ddbbac15f2a14a5ffc8735db2bcc7894.zip
updates for memory integration
Add DDR PHY initfile from John Bialas Port system pervasive dials into MCA initfile Patch initCompiler to support above Pull in e9035 based engineering data Update sim only eCMD memory procedures DIMM behavioral inits via dials Set DDR PHY mesa mode inits via FAC Update selected memory HWP wrappers to default to all targets Add DIMM definitions to sc/mc Cronus config files Update sc/mc base attribute files to match memory config Link all steps into Cronusflex based run_ipl Change-Id: Ib4eb99ca77dd0d6d1cd5ed0255a37ad65ed08c3b Original-Change-Id: I6040863e2718817e467540fe23c72a5192fa8480 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/22924 Tested-by: Jenkins Server Tested-by: Hostboot CI Reviewed-by: Brian R. Silver <bsilver@us.ibm.com> Reviewed-by: Thi N. Tran <thi@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/24187 Tested-by: FSP CI Jenkins Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures')
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9_ddrphy_scom.C802
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9_ddrphy_scom.H37
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9_ddrphy_scom.mk20
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.C199
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.H37
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.mk20
6 files changed, 1115 insertions, 0 deletions
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_ddrphy_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9_ddrphy_scom.C
new file mode 100644
index 000000000..69149c357
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_ddrphy_scom.C
@@ -0,0 +1,802 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: chips/p9/procedures/hwp/initfiles/p9_ddrphy_scom.C $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* EKB Project */
+/* */
+/* COPYRIGHT 2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* IBM_PROLOG_END_TAG */
+#include "p9_ddrphy_scom.H"
+#include <stdint.h>
+#include <stddef.h>
+#include <fapi2.H>
+#include <attribute_ids.H>
+#include <target_types.H>
+#include <fapi2_attribute_service.H>
+using namespace fapi2;
+
+#define LITERAL_IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR0_0xFFFF 0xFFFF
+#define LITERAL_IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR1_0xFFFF 0xFFFF
+#define LITERAL_IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR2_0xFFFF 0xFFFF
+#define LITERAL_IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR3_0xFFFF 0xFFFF
+#define LITERAL_IOMP_DDRPHY_ADR_DELAY1_P0_ADR1_0x4040 0x4040
+#define LITERAL_IOMP_DDRPHY_ADR_DELAY3_P0_ADR1_0x4040 0x4040
+#define LITERAL_IOMP_DDRPHY_ADR_DIFFPAIR_ENABLE_P0_ADR1_0x5000 0x5000
+#define LITERAL_IOMP_DDRPHY_ADR_DLL_VREG_CONFIG_1_P0_ADR32S0_0xE058 0xE058
+#define LITERAL_IOMP_DDRPHY_ADR_DLL_VREG_CONFIG_1_P0_ADR32S1_0xE058 0xE058
+#define LITERAL_IOMP_DDRPHY_ADR_MCCLK_WRCLK_PR_STATIC_OFFSET_P0_ADR32S0_0x6000 0x6000
+#define LITERAL_IOMP_DDRPHY_ADR_MCCLK_WRCLK_PR_STATIC_OFFSET_P0_ADR32S1_0x6000 0x6000
+#define LITERAL_IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_0_0x0120 0x0120
+#define LITERAL_IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_1_0x0120 0x0120
+#define LITERAL_IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_2_0x0120 0x0120
+#define LITERAL_IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_3_0x0120 0x0120
+#define LITERAL_IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_4_0x0120 0x0120
+#define LITERAL_IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_0_0x4000 0x4000
+#define LITERAL_IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_1_0x4000 0x4000
+#define LITERAL_IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_2_0x4000 0x4000
+#define LITERAL_IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_3_0x4000 0x4000
+#define LITERAL_IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_4_0x4000 0x4000
+#define LITERAL_IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_0_0x7F7F 0x7F7F
+#define LITERAL_IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_1_0x7F7F 0x7F7F
+#define LITERAL_IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_2_0x7F7F 0x7F7F
+#define LITERAL_IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_3_0x7F7F 0x7F7F
+#define LITERAL_IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_4_0x7F7F 0x7F7F
+#define LITERAL_IOMP_DDRPHY_DP16_WRCLK_PR_P0_0_0x6000 0x6000
+#define LITERAL_IOMP_DDRPHY_DP16_WRCLK_PR_P0_1_0x6000 0x6000
+#define LITERAL_IOMP_DDRPHY_DP16_WRCLK_PR_P0_2_0x6000 0x6000
+#define LITERAL_IOMP_DDRPHY_DP16_WRCLK_PR_P0_3_0x6000 0x6000
+#define LITERAL_IOMP_DDRPHY_DP16_WRCLK_PR_P0_4_0x6000 0x6000
+#define LITERAL_IOMP_DDRPHY_SEQ_MEM_TIMING_PARAM2_P0_0x4770 0x4770
+
+fapi2::ReturnCode p9_ddrphy_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0)
+{
+ fapi2::ReturnCode l_rc = 0;
+
+ do
+ {
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR0_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800040000701103full, IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR0_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800040000701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR0_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR0_0xFFFF, 48, 16,
+ 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR1_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800044000701103full, IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800044000701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR1_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR1_0xFFFF, 48, 16,
+ 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR2_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800048000701103full, IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR2_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800048000701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR2_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR2_0xFFFF, 48, 16,
+ 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR3_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x80004c000701103full, IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR3_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x80004c000701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR3_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR3_0xFFFF, 48, 16,
+ 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_ADR_DELAY1_P0_ADR1_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800044050701103full, IOMP_DDRPHY_ADR_DELAY1_P0_ADR1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800044050701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_ADR_DELAY1_P0_ADR1_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_ADR_DELAY1_P0_ADR1_0x4040, 48, 16, 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_ADR_DELAY3_P0_ADR1_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800044070701103full, IOMP_DDRPHY_ADR_DELAY3_P0_ADR1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800044070701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_ADR_DELAY3_P0_ADR1_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_ADR_DELAY3_P0_ADR1_0x4040, 48, 16, 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_ADR_DIFFPAIR_ENABLE_P0_ADR1_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800044010701103full, IOMP_DDRPHY_ADR_DIFFPAIR_ENABLE_P0_ADR1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800044010701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_ADR_DIFFPAIR_ENABLE_P0_ADR1_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_ADR_DIFFPAIR_ENABLE_P0_ADR1_0x5000,
+ 48, 16, 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_ADR_DLL_VREG_CONFIG_1_P0_ADR32S0_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800080310701103full, IOMP_DDRPHY_ADR_DLL_VREG_CONFIG_1_P0_ADR32S0_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800080310701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_ADR_DLL_VREG_CONFIG_1_P0_ADR32S0_scom0.insert<uint64_t>
+ (LITERAL_IOMP_DDRPHY_ADR_DLL_VREG_CONFIG_1_P0_ADR32S0_0xE058, 48, 16, 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_ADR_DLL_VREG_CONFIG_1_P0_ADR32S1_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800084310701103full, IOMP_DDRPHY_ADR_DLL_VREG_CONFIG_1_P0_ADR32S1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800084310701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_ADR_DLL_VREG_CONFIG_1_P0_ADR32S1_scom0.insert<uint64_t>
+ (LITERAL_IOMP_DDRPHY_ADR_DLL_VREG_CONFIG_1_P0_ADR32S1_0xE058, 48, 16, 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_ADR_MCCLK_WRCLK_PR_STATIC_OFFSET_P0_ADR32S0_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800080330701103full, IOMP_DDRPHY_ADR_MCCLK_WRCLK_PR_STATIC_OFFSET_P0_ADR32S0_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800080330701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_ADR_MCCLK_WRCLK_PR_STATIC_OFFSET_P0_ADR32S0_scom0.insert<uint64_t>
+ (LITERAL_IOMP_DDRPHY_ADR_MCCLK_WRCLK_PR_STATIC_OFFSET_P0_ADR32S0_0x6000, 48, 16, 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_ADR_MCCLK_WRCLK_PR_STATIC_OFFSET_P0_ADR32S1_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800084330701103full, IOMP_DDRPHY_ADR_MCCLK_WRCLK_PR_STATIC_OFFSET_P0_ADR32S1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800084330701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_ADR_MCCLK_WRCLK_PR_STATIC_OFFSET_P0_ADR32S1_scom0.insert<uint64_t>
+ (LITERAL_IOMP_DDRPHY_ADR_MCCLK_WRCLK_PR_STATIC_OFFSET_P0_ADR32S1_0x6000, 48, 16, 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_0_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800000030701103full, IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_0_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800000030701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_0_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_0_0x0120, 48, 16,
+ 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_1_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800004030701103full, IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800004030701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_1_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_1_0x0120, 48, 16,
+ 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_2_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800008030701103full, IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_2_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800008030701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_2_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_2_0x0120, 48, 16,
+ 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_3_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x80000c030701103full, IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_3_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x80000c030701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_3_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_3_0x0120, 48, 16,
+ 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_4_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800010030701103full, IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_4_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800010030701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_4_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_4_0x0120, 48, 16,
+ 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_0_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800000750701103full, IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_0_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800000750701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_0_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_0_0x4000, 48, 12,
+ 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_1_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800004750701103full, IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800004750701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_1_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_1_0x4000, 48, 12,
+ 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_2_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800008750701103full, IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_2_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800008750701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_2_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_2_0x4000, 48, 12,
+ 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_3_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x80000c750701103full, IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_3_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x80000c750701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_3_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_3_0x4000, 48, 12,
+ 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_4_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800010750701103full, IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_4_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800010750701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_4_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_4_0x4000, 48, 12,
+ 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_0_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800000780701103full, IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_0_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800000780701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_0_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_0_0x7F7F, 48,
+ 16, 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_1_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800004780701103full, IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800004780701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_1_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_1_0x7F7F, 48,
+ 16, 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_2_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800008780701103full, IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_2_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800008780701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_2_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_2_0x7F7F, 48,
+ 16, 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_3_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x80000c780701103full, IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_3_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x80000c780701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_3_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_3_0x7F7F, 48,
+ 16, 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_4_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800010780701103full, IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_4_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800010780701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_4_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_4_0x7F7F, 48,
+ 16, 48 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_WRCLK_PR_P0_0_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800000740701103full, IOMP_DDRPHY_DP16_WRCLK_PR_P0_0_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800000740701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_WRCLK_PR_P0_0_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_WRCLK_PR_P0_0_0x6000, 49, 7, 49 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_WRCLK_PR_P0_1_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800004740701103full, IOMP_DDRPHY_DP16_WRCLK_PR_P0_1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800004740701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_WRCLK_PR_P0_1_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_WRCLK_PR_P0_1_0x6000, 49, 7, 49 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_WRCLK_PR_P0_2_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800008740701103full, IOMP_DDRPHY_DP16_WRCLK_PR_P0_2_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800008740701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_WRCLK_PR_P0_2_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_WRCLK_PR_P0_2_0x6000, 49, 7, 49 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_WRCLK_PR_P0_3_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x80000c740701103full, IOMP_DDRPHY_DP16_WRCLK_PR_P0_3_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x80000c740701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_WRCLK_PR_P0_3_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_WRCLK_PR_P0_3_0x6000, 49, 7, 49 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_DP16_WRCLK_PR_P0_4_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x800010740701103full, IOMP_DDRPHY_DP16_WRCLK_PR_P0_4_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x800010740701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_DP16_WRCLK_PR_P0_4_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_DP16_WRCLK_PR_P0_4_0x6000, 49, 7, 49 );
+ }
+
+ fapi2::buffer<uint64_t> IOMP_DDRPHY_SEQ_MEM_TIMING_PARAM2_P0_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x8000c4140701103full, IOMP_DDRPHY_SEQ_MEM_TIMING_PARAM2_P0_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x8000c4140701103f)");
+ break;
+ }
+
+ if (( true ))
+ {
+ IOMP_DDRPHY_SEQ_MEM_TIMING_PARAM2_P0_scom0.insert<uint64_t> (LITERAL_IOMP_DDRPHY_SEQ_MEM_TIMING_PARAM2_P0_0x4770, 48,
+ 16, 48 );
+ }
+
+
+ l_rc = fapi2::putScom( TGT0, 0x800000030701103full, IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_0_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800000030701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800000740701103full, IOMP_DDRPHY_DP16_WRCLK_PR_P0_0_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800000740701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800000750701103full, IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_0_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800000750701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800000780701103full, IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_0_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800000780701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800004030701103full, IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800004030701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800004740701103full, IOMP_DDRPHY_DP16_WRCLK_PR_P0_1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800004740701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800004750701103full, IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800004750701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800004780701103full, IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800004780701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800008030701103full, IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_2_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800008030701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800008740701103full, IOMP_DDRPHY_DP16_WRCLK_PR_P0_2_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800008740701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800008750701103full, IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_2_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800008750701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800008780701103full, IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_2_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800008780701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x80000c030701103full, IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_3_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x80000c030701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x80000c740701103full, IOMP_DDRPHY_DP16_WRCLK_PR_P0_3_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x80000c740701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x80000c750701103full, IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_3_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x80000c750701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x80000c780701103full, IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_3_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x80000c780701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800010030701103full, IOMP_DDRPHY_DP16_DATA_BIT_DIR1_P0_4_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800010030701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800010740701103full, IOMP_DDRPHY_DP16_WRCLK_PR_P0_4_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800010740701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800010750701103full, IOMP_DDRPHY_DP16_IO_TX_CONFIG0_P0_4_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800010750701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800010780701103full, IOMP_DDRPHY_DP16_IO_TX_FET_SLICE_P0_4_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800010780701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800040000701103full, IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR0_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800040000701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800044000701103full, IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800044000701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800044010701103full, IOMP_DDRPHY_ADR_DIFFPAIR_ENABLE_P0_ADR1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800044010701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800044050701103full, IOMP_DDRPHY_ADR_DELAY1_P0_ADR1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800044050701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800044070701103full, IOMP_DDRPHY_ADR_DELAY3_P0_ADR1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800044070701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800048000701103full, IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR2_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800048000701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x80004c000701103full, IOMP_DDRPHY_ADR_BIT_ENABLE_P0_ADR3_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x80004c000701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800080310701103full, IOMP_DDRPHY_ADR_DLL_VREG_CONFIG_1_P0_ADR32S0_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800080310701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800080330701103full, IOMP_DDRPHY_ADR_MCCLK_WRCLK_PR_STATIC_OFFSET_P0_ADR32S0_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800080330701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800084310701103full, IOMP_DDRPHY_ADR_DLL_VREG_CONFIG_1_P0_ADR32S1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800084310701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x800084330701103full, IOMP_DDRPHY_ADR_MCCLK_WRCLK_PR_STATIC_OFFSET_P0_ADR32S1_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x800084330701103f)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x8000c4140701103full, IOMP_DDRPHY_SEQ_MEM_TIMING_PARAM2_P0_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x8000c4140701103f)");
+ break;
+ }
+
+ }
+ while(0);
+
+ return l_rc;
+}
+
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_ddrphy_scom.H b/src/import/chips/p9/procedures/hwp/initfiles/p9_ddrphy_scom.H
new file mode 100644
index 000000000..5ce4e4ae1
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_ddrphy_scom.H
@@ -0,0 +1,37 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: chips/p9/procedures/hwp/initfiles/p9_ddrphy_scom.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* EKB Project */
+/* */
+/* COPYRIGHT 2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* IBM_PROLOG_END_TAG */
+#ifndef _INIT_P9_DDRPHY_SCOM_PROCEDURE_H_
+#define _INIT_P9_DDRPHY_SCOM_PROCEDURE_H_
+
+
+#include <stddef.h>
+#include <stdint.h>
+#include <fapi2.H>
+
+
+typedef fapi2::ReturnCode (*p9_ddrphy_scom_FP_t)(const fapi2::Target<fapi2::TARGET_TYPE_MCA>&);
+
+extern "C"
+{
+
+ fapi2::ReturnCode p9_ddrphy_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0);
+
+}
+
+#endif
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_ddrphy_scom.mk b/src/import/chips/p9/procedures/hwp/initfiles/p9_ddrphy_scom.mk
new file mode 100644
index 000000000..18d46125d
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_ddrphy_scom.mk
@@ -0,0 +1,20 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: chips/p9/procedures/hwp/initfiles/p9_ddrphy_scom.mk $
+#
+# IBM CONFIDENTIAL
+#
+# EKB Project
+#
+# COPYRIGHT 2016
+# [+] International Business Machines Corp.
+#
+#
+# The source code for this program is not published or otherwise
+# divested of its trade secrets, irrespective of what has been
+# deposited with the U.S. Copyright Office.
+#
+# IBM_PROLOG_END_TAG
+PROCEDURE=p9_ddrphy_scom
+$(call BUILD_PROCEDURE) \ No newline at end of file
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
new file mode 100644
index 000000000..4bfe68ae9
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.C
@@ -0,0 +1,199 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: chips/p9/procedures/hwp/initfiles/p9_mca_scom.C $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* EKB Project */
+/* */
+/* COPYRIGHT 2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* IBM_PROLOG_END_TAG */
+#include "p9_mca_scom.H"
+#include <stdint.h>
+#include <stddef.h>
+#include <fapi2.H>
+#include <attribute_ids.H>
+#include <target_types.H>
+#include <fapi2_attribute_service.H>
+using namespace fapi2;
+
+#define LITERAL_MCP_PORT0_SRQ_STD_SIZE_2400_8GB_X4 0x41a4240c64318560
+#define LITERAL_MCP_PORT0_SRQ_STD_SIZE_2400_8GB_X4_1 0x0
+#define LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R 0xa446a446739cc9a6
+#define LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R_1 0xccc213a2946aa22b
+#define LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R_2 0x1cc301184
+
+fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0)
+{
+ fapi2::ReturnCode l_rc = 0;
+
+ do
+ {
+ fapi2::buffer<uint64_t> MCP_PORT0_SRQ_STD_SIZE_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x701090cull, MCP_PORT0_SRQ_STD_SIZE_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x701090c)");
+ break;
+ }
+
+ fapi2::buffer<uint64_t> MCP_PORT0_SRQ_STD_SIZE_scom01;
+ l_rc = fapi2::getScom( TGT0, 0x7010932ull, MCP_PORT0_SRQ_STD_SIZE_scom01 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x7010932)");
+ break;
+ }
+
+ fapi2::buffer<uint64_t> MCP_PORT0_SRQ_STD_SIZE_scom012;
+ l_rc = fapi2::getScom( TGT0, 0x7010934ull, MCP_PORT0_SRQ_STD_SIZE_scom012 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x7010934)");
+ break;
+ }
+
+ fapi2::buffer<uint64_t> MCP_PORT0_SRQ_STD_SIZE_scom0123;
+ l_rc = fapi2::getScom( TGT0, 0x7010935ull, MCP_PORT0_SRQ_STD_SIZE_scom0123 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x7010935)");
+ break;
+ }
+
+ MCP_PORT0_SRQ_STD_SIZE_scom0.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_SIZE_2400_8GB_X4, 10, 6, 0 );
+ MCP_PORT0_SRQ_STD_SIZE_scom01.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_SIZE_2400_8GB_X4, 30, 20, 6 );
+ MCP_PORT0_SRQ_STD_SIZE_scom012.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_SIZE_2400_8GB_X4, 16, 5, 26 );
+ MCP_PORT0_SRQ_STD_SIZE_scom012.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_SIZE_2400_8GB_X4, 11, 5, 31 );
+ MCP_PORT0_SRQ_STD_SIZE_scom012.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_SIZE_2400_8GB_X4, 6, 5, 36 );
+ MCP_PORT0_SRQ_STD_SIZE_scom0123.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_SIZE_2400_8GB_X4, 17, 10, 41 );
+ MCP_PORT0_SRQ_STD_SIZE_scom0123.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_SIZE_2400_8GB_X4, 12, 5, 51 );
+ MCP_PORT0_SRQ_STD_SIZE_scom0123.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_SIZE_2400_8GB_X4, 27, 8, 56 );
+ MCP_PORT0_SRQ_STD_SIZE_scom0123.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_SIZE_2400_8GB_X4_1, 35, 3, 61 );
+
+ fapi2::buffer<uint64_t> MCP_PORT0_SRQ_STD_TIMING_scom0;
+ l_rc = fapi2::getScom( TGT0, 0x701090bull, MCP_PORT0_SRQ_STD_TIMING_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x701090b)");
+ break;
+ }
+
+ fapi2::buffer<uint64_t> MCP_PORT0_SRQ_STD_TIMING_scom012;
+ l_rc = fapi2::getScom( TGT0, 0x7010913ull, MCP_PORT0_SRQ_STD_TIMING_scom012 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x7010913)");
+ break;
+ }
+
+ fapi2::buffer<uint64_t> MCP_PORT0_SRQ_STD_TIMING_scom0123;
+ l_rc = fapi2::getScom( TGT0, 0x701090aull, MCP_PORT0_SRQ_STD_TIMING_scom0123 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: getScom (0x701090a)");
+ break;
+ }
+
+ MCP_PORT0_SRQ_STD_TIMING_scom0.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R, 0, 63, 0 );
+ MCP_PORT0_SRQ_STD_SIZE_scom0.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R, 0, 1, 63 );
+ MCP_PORT0_SRQ_STD_SIZE_scom0.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R_1, 1, 9, 0 );
+ MCP_PORT0_SRQ_STD_SIZE_scom0.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R_1, 16, 16, 9 );
+ MCP_PORT0_SRQ_STD_SIZE_scom0.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R_1, 41, 23, 25 );
+ MCP_PORT0_SRQ_STD_TIMING_scom012.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R_1, 38, 1,
+ 48 );
+ MCP_PORT0_SRQ_STD_TIMING_scom0123.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R_1, 36, 6,
+ 49 );
+ MCP_PORT0_SRQ_STD_TIMING_scom0123.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R_1, 30, 6,
+ 55 );
+ MCP_PORT0_SRQ_STD_TIMING_scom0123.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R_1, 24, 3,
+ 61 );
+ MCP_PORT0_SRQ_STD_TIMING_scom0123.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R_2, 27, 3,
+ 25 );
+ MCP_PORT0_SRQ_STD_TIMING_scom0123.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R_2, 0, 12,
+ 28 );
+ MCP_PORT0_SRQ_STD_TIMING_scom0123.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R_2, 43, 6,
+ 40 );
+ MCP_PORT0_SRQ_STD_TIMING_scom0123.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R_2, 12, 12,
+ 46 );
+ MCP_PORT0_SRQ_STD_TIMING_scom0123.insert<uint64_t> (LITERAL_MCP_PORT0_SRQ_STD_TIMING_SC_DDR4_2400_16_16_16R_2, 49, 6,
+ 58 );
+
+
+ l_rc = fapi2::putScom( TGT0, 0x701090aull, MCP_PORT0_SRQ_STD_TIMING_scom0123 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x701090a)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x701090bull, MCP_PORT0_SRQ_STD_TIMING_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x701090b)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x701090cull, MCP_PORT0_SRQ_STD_SIZE_scom0 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x701090c)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x7010913ull, MCP_PORT0_SRQ_STD_TIMING_scom012 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x7010913)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x7010932ull, MCP_PORT0_SRQ_STD_SIZE_scom01 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x7010932)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x7010934ull, MCP_PORT0_SRQ_STD_SIZE_scom012 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x7010934)");
+ break;
+ }
+
+ l_rc = fapi2::putScom( TGT0, 0x7010935ull, MCP_PORT0_SRQ_STD_SIZE_scom0123 );
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putScom (0x7010935)");
+ break;
+ }
+
+ }
+ while(0);
+
+ return l_rc;
+}
+
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
new file mode 100644
index 000000000..bc9646799
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.H
@@ -0,0 +1,37 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: chips/p9/procedures/hwp/initfiles/p9_mca_scom.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* EKB Project */
+/* */
+/* COPYRIGHT 2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* IBM_PROLOG_END_TAG */
+#ifndef _INIT_P9_MCA_SCOM_PROCEDURE_H_
+#define _INIT_P9_MCA_SCOM_PROCEDURE_H_
+
+
+#include <stddef.h>
+#include <stdint.h>
+#include <fapi2.H>
+
+
+typedef fapi2::ReturnCode (*p9_mca_scom_FP_t)(const fapi2::Target<fapi2::TARGET_TYPE_MCA>&);
+
+extern "C"
+{
+
+ fapi2::ReturnCode p9_mca_scom(const fapi2::Target<fapi2::TARGET_TYPE_MCA>& TGT0);
+
+}
+
+#endif
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.mk b/src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.mk
new file mode 100644
index 000000000..5107ea5e2
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_mca_scom.mk
@@ -0,0 +1,20 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: chips/p9/procedures/hwp/initfiles/p9_mca_scom.mk $
+#
+# IBM CONFIDENTIAL
+#
+# EKB Project
+#
+# COPYRIGHT 2016
+# [+] International Business Machines Corp.
+#
+#
+# The source code for this program is not published or otherwise
+# divested of its trade secrets, irrespective of what has been
+# deposited with the U.S. Copyright Office.
+#
+# IBM_PROLOG_END_TAG
+PROCEDURE=p9_mca_scom
+$(call BUILD_PROCEDURE) \ No newline at end of file
OpenPOWER on IntegriCloud