summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBen Gass <bgass@us.ibm.com>2018-08-07 14:59:09 -0500
committerChristian R. Geddes <crgeddes@us.ibm.com>2019-02-27 09:01:48 -0600
commita54de9465ed1a8fc53ae4b7728ed69becf1581cb (patch)
tree77a782ea82da01fd1891d9db19ecfeea4c8b5dfb /src
parentcab3c5b1f80c36dcb9015d7085ee5b11948d4232 (diff)
downloadblackbird-hostboot-a54de9465ed1a8fc53ae4b7728ed69becf1581cb.tar.gz
blackbird-hostboot-a54de9465ed1a8fc53ae4b7728ed69becf1581cb.zip
Adds initfile for Explorer
Change-Id: I5deb004537afa3f3a9d171f3462c2a05cbc038b0 Original-Change-Id: I8dc18bbe6850199de4a0fee2bc88e275ae484a82 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/64063 Reviewed-by: Louis Stermole <stermole@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com> Reviewed-by: Benjamin Gass <bgass@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/72514 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_scominit.mk30
-rw-r--r--src/import/chips/ocmb/procedures/hwp/initfiles/explorer_scom.C557
-rw-r--r--src/import/chips/ocmb/procedures/hwp/initfiles/explorer_scom.H47
-rw-r--r--src/import/chips/ocmb/procedures/hwp/initfiles/explorer_scom.mk27
4 files changed, 661 insertions, 0 deletions
diff --git a/src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_scominit.mk b/src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_scominit.mk
new file mode 100644
index 000000000..b37ed3172
--- /dev/null
+++ b/src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_scominit.mk
@@ -0,0 +1,30 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_scominit.mk $
+#
+# OpenPOWER HostBoot Project
+#
+# Contributors Listed Below - COPYRIGHT 2018
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+# IBM_PROLOG_END_TAG
+-include 00exp_common.mk
+
+PROCEDURE=exp_scominit
+$(eval $(call ADD_EXP_MEMORY_INCDIRS,$(PROCEDURE)))
+$(call ADD_MODULE_INCDIR,$(PROCEDURE),$(ROOTPATH)/chips/ocmb/procedures/hwp/initfiles)
+$(call BUILD_PROCEDURE)
diff --git a/src/import/chips/ocmb/procedures/hwp/initfiles/explorer_scom.C b/src/import/chips/ocmb/procedures/hwp/initfiles/explorer_scom.C
new file mode 100644
index 000000000..096ec7c8f
--- /dev/null
+++ b/src/import/chips/ocmb/procedures/hwp/initfiles/explorer_scom.C
@@ -0,0 +1,557 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/import/chips/ocmb/procedures/hwp/initfiles/explorer_scom.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2018 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+#include "explorer_scom.H"
+#include <stdint.h>
+#include <stddef.h>
+#include <fapi2.H>
+
+using namespace fapi2;
+
+constexpr uint64_t literal_1 = 1;
+constexpr uint64_t literal_3 = 3;
+constexpr uint64_t literal_0 = 0;
+constexpr uint64_t literal_9 = 9;
+constexpr uint64_t literal_14 = 14;
+constexpr uint64_t literal_7 = 7;
+constexpr uint64_t literal_24 = 24;
+constexpr uint64_t literal_5 = 5;
+constexpr uint64_t literal_266 = 266;
+constexpr uint64_t literal_1866 = 1866;
+constexpr uint64_t literal_4 = 4;
+constexpr uint64_t literal_2668 = 2668;
+constexpr uint64_t literal_11 = 11;
+constexpr uint64_t literal_2934 = 2934;
+constexpr uint64_t literal_12 = 12;
+constexpr uint64_t literal_13 = 13;
+constexpr uint64_t literal_0b1000 = 0b1000;
+constexpr uint64_t literal_0x02 = 0x02;
+constexpr uint64_t literal_0b1 = 0b1;
+constexpr uint64_t literal_0x01 = 0x01;
+constexpr uint64_t literal_0b0 = 0b0;
+constexpr uint64_t literal_0x00 = 0x00;
+constexpr uint64_t literal_0b000 = 0b000;
+constexpr uint64_t literal_0b100 = 0b100;
+constexpr uint64_t literal_0b010 = 0b010;
+constexpr uint64_t literal_0b110 = 0b110;
+constexpr uint64_t literal_8 = 8;
+constexpr uint64_t literal_0x0 = 0x0;
+constexpr uint64_t literal_0b001 = 0b001;
+constexpr uint64_t literal_0b101 = 0b101;
+constexpr uint64_t literal_0b011 = 0b011;
+constexpr uint64_t literal_0b111 = 0b111;
+constexpr uint64_t literal_6 = 6;
+constexpr uint64_t literal_2 = 2;
+constexpr uint64_t literal_10 = 10;
+constexpr uint64_t literal_15 = 15;
+constexpr uint64_t literal_16 = 16;
+constexpr uint64_t literal_854 = 854;
+constexpr uint64_t literal_940 = 940;
+constexpr uint64_t literal_1024 = 1024;
+
+fapi2::ReturnCode explorer_scom(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& TGT0,
+ const fapi2::Target<fapi2::TARGET_TYPE_MEM_PORT>& TGT1, const fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>& TGT2,
+ const fapi2::Target<fapi2::TARGET_TYPE_MC>& TGT3)
+{
+ {
+ uint64_t l_def_IS_MICROSEMI_SIM = literal_1;
+ fapi2::ATTR_MEM_RDIMM_BUFFER_DELAY_Type l_TGT1_ATTR_MEM_RDIMM_BUFFER_DELAY;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_RDIMM_BUFFER_DELAY, TGT1, l_TGT1_ATTR_MEM_RDIMM_BUFFER_DELAY));
+ fapi2::ATTR_MEM_EFF_DIMM_TYPE_Type l_TGT1_ATTR_MEM_EFF_DIMM_TYPE;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DIMM_TYPE, TGT1, l_TGT1_ATTR_MEM_EFF_DIMM_TYPE));
+ uint64_t l_def_RDIMM_TYPE = ((l_TGT1_ATTR_MEM_EFF_DIMM_TYPE[literal_0] == literal_1)
+ || (l_TGT1_ATTR_MEM_EFF_DIMM_TYPE[literal_0] == literal_3));
+ uint64_t l_def_RDIMM_Add_latency = (l_def_RDIMM_TYPE * l_TGT1_ATTR_MEM_RDIMM_BUFFER_DELAY);
+ fapi2::ATTR_MEM_EFF_DRAM_CL_Type l_TGT1_ATTR_MEM_EFF_DRAM_CL;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DRAM_CL, TGT1, l_TGT1_ATTR_MEM_EFF_DRAM_CL));
+ fapi2::ATTR_MEM_EFF_DRAM_CWL_Type l_TGT1_ATTR_MEM_EFF_DRAM_CWL;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DRAM_CWL, TGT1, l_TGT1_ATTR_MEM_EFF_DRAM_CWL));
+ fapi2::ATTR_MEM_FREQ_Type l_TGT1_ATTR_MEM_FREQ;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_FREQ, TGT1, l_TGT1_ATTR_MEM_FREQ));
+ uint64_t l_def_RANK_SWITCH_TCK = (literal_4 + ((l_TGT1_ATTR_MEM_FREQ - literal_1866) / literal_266));
+ fapi2::ATTR_MEM_EFF_DRAM_TCCD_L_Type l_TGT1_ATTR_MEM_EFF_DRAM_TCCD_L;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DRAM_TCCD_L, TGT1, l_TGT1_ATTR_MEM_EFF_DRAM_TCCD_L));
+ uint64_t l_def_BUS_TURNAROUND_TCK = (literal_4 + ((l_TGT1_ATTR_MEM_FREQ - literal_1866) / literal_266));
+ fapi2::ATTR_MEM_EFF_DRAM_TWTR_S_Type l_TGT1_ATTR_MEM_EFF_DRAM_TWTR_S;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DRAM_TWTR_S, TGT1, l_TGT1_ATTR_MEM_EFF_DRAM_TWTR_S));
+ fapi2::ATTR_MEM_EFF_DRAM_TWTR_L_Type l_TGT1_ATTR_MEM_EFF_DRAM_TWTR_L;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DRAM_TWTR_L, TGT1, l_TGT1_ATTR_MEM_EFF_DRAM_TWTR_L));
+ fapi2::ATTR_MEM_EFF_DRAM_TFAW_Type l_TGT1_ATTR_MEM_EFF_DRAM_TFAW;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DRAM_TFAW, TGT1, l_TGT1_ATTR_MEM_EFF_DRAM_TFAW));
+ fapi2::ATTR_MEM_EFF_DRAM_TRCD_Type l_TGT1_ATTR_MEM_EFF_DRAM_TRCD;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DRAM_TRCD, TGT1, l_TGT1_ATTR_MEM_EFF_DRAM_TRCD));
+ fapi2::ATTR_MEM_EFF_DRAM_TRP_Type l_TGT1_ATTR_MEM_EFF_DRAM_TRP;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DRAM_TRP, TGT1, l_TGT1_ATTR_MEM_EFF_DRAM_TRP));
+ fapi2::ATTR_MEM_EFF_DRAM_TRAS_Type l_TGT1_ATTR_MEM_EFF_DRAM_TRAS;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DRAM_TRAS, TGT1, l_TGT1_ATTR_MEM_EFF_DRAM_TRAS));
+ fapi2::ATTR_MEM_EFF_DRAM_TWR_Type l_TGT1_ATTR_MEM_EFF_DRAM_TWR;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DRAM_TWR, TGT1, l_TGT1_ATTR_MEM_EFF_DRAM_TWR));
+ fapi2::ATTR_MEM_EFF_DRAM_TRTP_Type l_TGT1_ATTR_MEM_EFF_DRAM_TRTP;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DRAM_TRTP, TGT1, l_TGT1_ATTR_MEM_EFF_DRAM_TRTP));
+ fapi2::ATTR_MEM_EFF_DRAM_TRRD_S_Type l_TGT1_ATTR_MEM_EFF_DRAM_TRRD_S;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DRAM_TRRD_S, TGT1, l_TGT1_ATTR_MEM_EFF_DRAM_TRRD_S));
+ fapi2::ATTR_MEM_EFF_DRAM_TRRD_L_Type l_TGT1_ATTR_MEM_EFF_DRAM_TRRD_L;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DRAM_TRRD_L, TGT1, l_TGT1_ATTR_MEM_EFF_DRAM_TRRD_L));
+ uint64_t l_def_MSS_FREQ_EQ_2666 = (l_TGT1_ATTR_MEM_FREQ < literal_2668);
+ uint64_t l_def_MSS_FREQ_EQ_2933 = ((l_TGT1_ATTR_MEM_FREQ >= literal_2668) && (l_TGT1_ATTR_MEM_FREQ < literal_2934));
+ uint64_t l_def_MSS_FREQ_EQ_3200 = (l_TGT1_ATTR_MEM_FREQ >= literal_2934);
+ fapi2::ATTR_MEM_REORDER_QUEUE_SETTING_Type l_TGT0_ATTR_MEM_REORDER_QUEUE_SETTING;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_REORDER_QUEUE_SETTING, TGT0, l_TGT0_ATTR_MEM_REORDER_QUEUE_SETTING));
+ fapi2::ATTR_MSS_MRW_DRAM_2N_MODE_Type l_TGT2_ATTR_MSS_MRW_DRAM_2N_MODE;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MSS_MRW_DRAM_2N_MODE, TGT2, l_TGT2_ATTR_MSS_MRW_DRAM_2N_MODE));
+ fapi2::ATTR_MEM_2N_MODE_Type l_TGT0_ATTR_MEM_2N_MODE;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_2N_MODE, TGT0, l_TGT0_ATTR_MEM_2N_MODE));
+ fapi2::ATTR_MEM_EFF_NUM_MASTER_RANKS_PER_DIMM_Type l_TGT1_ATTR_MEM_EFF_NUM_MASTER_RANKS_PER_DIMM;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_NUM_MASTER_RANKS_PER_DIMM, TGT1,
+ l_TGT1_ATTR_MEM_EFF_NUM_MASTER_RANKS_PER_DIMM));
+ uint64_t l_def_SLOT0_DENOMINATOR = ((l_TGT1_ATTR_MEM_EFF_NUM_MASTER_RANKS_PER_DIMM[literal_0] == literal_0x0) |
+ l_TGT1_ATTR_MEM_EFF_NUM_MASTER_RANKS_PER_DIMM[literal_0]);
+ fapi2::ATTR_MEM_EFF_NUM_RANKS_PER_DIMM_Type l_TGT1_ATTR_MEM_EFF_NUM_RANKS_PER_DIMM;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_NUM_RANKS_PER_DIMM, TGT1, l_TGT1_ATTR_MEM_EFF_NUM_RANKS_PER_DIMM));
+ uint64_t l_def_SLOT0_DRAM_STACK_HEIGHT = (l_TGT1_ATTR_MEM_EFF_NUM_RANKS_PER_DIMM[literal_0] / l_def_SLOT0_DENOMINATOR);
+ uint64_t l_def_SLOT1_DENOMINATOR = ((l_TGT1_ATTR_MEM_EFF_NUM_MASTER_RANKS_PER_DIMM[literal_1] == literal_0x0) |
+ l_TGT1_ATTR_MEM_EFF_NUM_MASTER_RANKS_PER_DIMM[literal_1]);
+ uint64_t l_def_SLOT1_DRAM_STACK_HEIGHT = (l_TGT1_ATTR_MEM_EFF_NUM_RANKS_PER_DIMM[literal_1] / l_def_SLOT1_DENOMINATOR);
+ fapi2::ATTR_MEM_SI_ODT_RD_Type l_TGT1_ATTR_MEM_SI_ODT_RD;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_SI_ODT_RD, TGT1, l_TGT1_ATTR_MEM_SI_ODT_RD));
+ fapi2::ATTR_MEM_SI_ODT_WR_Type l_TGT1_ATTR_MEM_SI_ODT_WR;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_SI_ODT_WR, TGT1, l_TGT1_ATTR_MEM_SI_ODT_WR));
+ uint64_t l_def_NUM_RANKS = (l_TGT1_ATTR_MEM_EFF_NUM_RANKS_PER_DIMM[literal_0] +
+ l_TGT1_ATTR_MEM_EFF_NUM_RANKS_PER_DIMM[literal_1]);
+ uint64_t l_def_NUM_RANKS_DENOMINATOR = ((l_def_NUM_RANKS == literal_0x0) | l_def_NUM_RANKS);
+ fapi2::ATTR_MEM_EFF_DRAM_TREFI_Type l_TGT1_ATTR_MEM_EFF_DRAM_TREFI;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DRAM_TREFI, TGT1, l_TGT1_ATTR_MEM_EFF_DRAM_TREFI));
+ uint64_t l_def_REFRESH_INTERVAL = (l_TGT1_ATTR_MEM_EFF_DRAM_TREFI / (literal_8 * l_def_NUM_RANKS_DENOMINATOR));
+ fapi2::ATTR_MEM_EFF_DRAM_TRFC_Type l_TGT1_ATTR_MEM_EFF_DRAM_TRFC;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DRAM_TRFC, TGT1, l_TGT1_ATTR_MEM_EFF_DRAM_TRFC));
+ fapi2::ATTR_MEM_EFF_DRAM_TRFC_DLR_Type l_TGT1_ATTR_MEM_EFF_DRAM_TRFC_DLR;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DRAM_TRFC_DLR, TGT1, l_TGT1_ATTR_MEM_EFF_DRAM_TRFC_DLR));
+ uint64_t l_def_REFR_CHECK_INTERVAL = (((l_def_REFRESH_INTERVAL * l_def_NUM_RANKS) * literal_6) / literal_5);
+ fapi2::buffer<uint64_t> l_scom_buffer;
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x801140cull, l_scom_buffer ));
+
+ if (l_def_IS_MICROSEMI_SIM)
+ {
+ l_scom_buffer.insert<36, 6, 58, uint64_t>(((l_TGT1_ATTR_MEM_EFF_DRAM_CL - literal_9) + l_def_RDIMM_Add_latency) );
+ }
+
+ if (l_def_IS_MICROSEMI_SIM)
+ {
+ l_scom_buffer.insert<47, 5, 59, uint64_t>(((l_TGT1_ATTR_MEM_EFF_DRAM_CL - literal_9) + l_def_RDIMM_Add_latency) );
+ }
+
+ if (l_def_IS_MICROSEMI_SIM)
+ {
+ l_scom_buffer.insert<42, 5, 59, uint64_t>(((l_TGT1_ATTR_MEM_EFF_DRAM_CL - literal_9) + l_def_RDIMM_Add_latency) );
+ }
+
+ l_scom_buffer.insert<30, 6, 58, uint64_t>(((l_TGT1_ATTR_MEM_EFF_DRAM_CWL - literal_14) + l_def_RDIMM_Add_latency) );
+
+ if (l_def_IS_MICROSEMI_SIM)
+ {
+ l_scom_buffer.insert<57, 5, 59, uint64_t>(((l_TGT1_ATTR_MEM_EFF_DRAM_CWL - literal_7) + l_def_RDIMM_Add_latency) );
+ }
+
+ if (l_def_IS_MICROSEMI_SIM)
+ {
+ l_scom_buffer.insert<52, 5, 59, uint64_t>(((l_TGT1_ATTR_MEM_EFF_DRAM_CWL - literal_7) + l_def_RDIMM_Add_latency) );
+ }
+
+ l_scom_buffer.insert<24, 6, 58, uint64_t>(literal_24 );
+ l_scom_buffer.insert<0, 6, 58, uint64_t>(((l_TGT1_ATTR_MEM_EFF_DRAM_CL - l_TGT1_ATTR_MEM_EFF_DRAM_CWL) +
+ l_def_RDIMM_Add_latency) );
+ l_scom_buffer.insert<6, 6, 58, uint64_t>((((l_TGT1_ATTR_MEM_EFF_DRAM_CL - l_TGT1_ATTR_MEM_EFF_DRAM_CWL) + literal_5) +
+ l_def_RDIMM_Add_latency) );
+ l_scom_buffer.insert<12, 6, 58, uint64_t>((literal_0 + l_def_RDIMM_Add_latency) );
+ l_scom_buffer.insert<18, 6, 58, uint64_t>((literal_5 + l_def_RDIMM_Add_latency) );
+ FAPI_TRY(fapi2::putScom(TGT0, 0x801140cull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x801140dull, l_scom_buffer ));
+
+ l_scom_buffer.insert<0, 4, 60, uint64_t>((literal_4 + l_def_RANK_SWITCH_TCK) );
+ l_scom_buffer.insert<4, 4, 60, uint64_t>(literal_4 );
+ l_scom_buffer.insert<8, 4, 60, uint64_t>(literal_4 );
+ l_scom_buffer.insert<12, 4, 60, uint64_t>(l_TGT1_ATTR_MEM_EFF_DRAM_TCCD_L );
+ l_scom_buffer.insert<16, 4, 60, uint64_t>((literal_4 + l_def_RANK_SWITCH_TCK) );
+ l_scom_buffer.insert<20, 4, 60, uint64_t>(literal_4 );
+ l_scom_buffer.insert<24, 4, 60, uint64_t>(literal_4 );
+ l_scom_buffer.insert<28, 4, 60, uint64_t>(l_TGT1_ATTR_MEM_EFF_DRAM_TCCD_L );
+ l_scom_buffer.insert<32, 5, 59, uint64_t>((((l_TGT1_ATTR_MEM_EFF_DRAM_CL + literal_4) + l_def_BUS_TURNAROUND_TCK) -
+ l_TGT1_ATTR_MEM_EFF_DRAM_CWL) );
+ l_scom_buffer.insert<37, 5, 59, uint64_t>((((l_TGT1_ATTR_MEM_EFF_DRAM_CL + literal_4) + l_def_BUS_TURNAROUND_TCK) -
+ l_TGT1_ATTR_MEM_EFF_DRAM_CWL) );
+ l_scom_buffer.insert<42, 5, 59, uint64_t>((((l_TGT1_ATTR_MEM_EFF_DRAM_CL + literal_4) + l_def_BUS_TURNAROUND_TCK) -
+ l_TGT1_ATTR_MEM_EFF_DRAM_CWL) );
+ l_scom_buffer.insert<47, 4, 60, uint64_t>((((l_TGT1_ATTR_MEM_EFF_DRAM_CWL + literal_4) + l_def_BUS_TURNAROUND_TCK) -
+ l_TGT1_ATTR_MEM_EFF_DRAM_CL) );
+ l_scom_buffer.insert<51, 6, 58, uint64_t>(((l_TGT1_ATTR_MEM_EFF_DRAM_CWL + literal_4) +
+ l_TGT1_ATTR_MEM_EFF_DRAM_TWTR_S) );
+ l_scom_buffer.insert<57, 6, 58, uint64_t>(((l_TGT1_ATTR_MEM_EFF_DRAM_CWL + literal_4) +
+ l_TGT1_ATTR_MEM_EFF_DRAM_TWTR_S) );
+ FAPI_TRY(fapi2::putScom(TGT0, 0x801140dull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x801140eull, l_scom_buffer ));
+
+ l_scom_buffer.insert<0, 4, 60, uint64_t>(l_TGT1_ATTR_MEM_EFF_DRAM_TCCD_L );
+ l_scom_buffer.insert<4, 6, 58, uint64_t>(((l_TGT1_ATTR_MEM_EFF_DRAM_CWL + literal_4) +
+ l_TGT1_ATTR_MEM_EFF_DRAM_TWTR_L) );
+ l_scom_buffer.insert<10, 6, 58, uint64_t>(l_TGT1_ATTR_MEM_EFF_DRAM_TFAW );
+ l_scom_buffer.insert<16, 5, 59, uint64_t>(l_TGT1_ATTR_MEM_EFF_DRAM_TRCD );
+ l_scom_buffer.insert<21, 5, 59, uint64_t>(l_TGT1_ATTR_MEM_EFF_DRAM_TRP );
+ l_scom_buffer.insert<26, 6, 58, uint64_t>(l_TGT1_ATTR_MEM_EFF_DRAM_TRAS );
+ l_scom_buffer.insert<41, 7, 57, uint64_t>(((l_TGT1_ATTR_MEM_EFF_DRAM_CWL + literal_4) + l_TGT1_ATTR_MEM_EFF_DRAM_TWR) );
+ l_scom_buffer.insert<48, 4, 60, uint64_t>(l_TGT1_ATTR_MEM_EFF_DRAM_TRTP );
+ l_scom_buffer.insert<52, 4, 60, uint64_t>(l_TGT1_ATTR_MEM_EFF_DRAM_TRRD_S );
+ l_scom_buffer.insert<56, 4, 60, uint64_t>(l_TGT1_ATTR_MEM_EFF_DRAM_TRRD_L );
+
+ if ((l_def_MSS_FREQ_EQ_2666 == literal_1))
+ {
+ l_scom_buffer.insert<60, 4, 60, uint64_t>(literal_11 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2933 == literal_1))
+ {
+ l_scom_buffer.insert<60, 4, 60, uint64_t>(literal_12 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_3200 == literal_1))
+ {
+ l_scom_buffer.insert<60, 4, 60, uint64_t>(literal_13 );
+ }
+
+ FAPI_TRY(fapi2::putScom(TGT0, 0x801140eull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x801140full, l_scom_buffer ));
+
+ l_scom_buffer.insert<5, 1, 63, uint64_t>(l_TGT0_ATTR_MEM_REORDER_QUEUE_SETTING );
+ l_scom_buffer.insert<55, 4, 60, uint64_t>(literal_0b1000 );
+ FAPI_TRY(fapi2::putScom(TGT0, 0x801140full, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x8011410ull, l_scom_buffer ));
+
+ l_scom_buffer.insert<6, 1, 63, uint64_t>(l_TGT0_ATTR_MEM_REORDER_QUEUE_SETTING );
+ l_scom_buffer.insert<57, 4, 60, uint64_t>(literal_0b1000 );
+ FAPI_TRY(fapi2::putScom(TGT0, 0x8011410ull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x8011415ull, l_scom_buffer ));
+
+ constexpr auto l_MB_SIM_SRQ_MBA_FARB0Q_CFG_PARITY_AFTER_CMD_ON = 0x1;
+ l_scom_buffer.insert<38, 1, 63, uint64_t>(l_MB_SIM_SRQ_MBA_FARB0Q_CFG_PARITY_AFTER_CMD_ON );
+
+ if ((l_TGT2_ATTR_MSS_MRW_DRAM_2N_MODE == literal_0x02))
+ {
+ l_scom_buffer.insert<17, 1, 63, uint64_t>(literal_0b1 );
+ }
+ else if ((l_TGT2_ATTR_MSS_MRW_DRAM_2N_MODE == literal_0x01))
+ {
+ l_scom_buffer.insert<17, 1, 63, uint64_t>(literal_0b0 );
+ }
+ else if (((l_TGT2_ATTR_MSS_MRW_DRAM_2N_MODE == literal_0x00) && (l_TGT0_ATTR_MEM_2N_MODE == literal_0x02)))
+ {
+ l_scom_buffer.insert<17, 1, 63, uint64_t>(literal_0b1 );
+ }
+ else if (((l_TGT2_ATTR_MSS_MRW_DRAM_2N_MODE == literal_0x00) && (l_TGT0_ATTR_MEM_2N_MODE == literal_0x01)))
+ {
+ l_scom_buffer.insert<17, 1, 63, uint64_t>(literal_0b0 );
+ }
+
+ FAPI_TRY(fapi2::putScom(TGT0, 0x8011415ull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x8011416ull, l_scom_buffer ));
+
+ l_scom_buffer.insert<0, 3, 61, uint64_t>(literal_0b000 );
+ l_scom_buffer.insert<3, 3, 61, uint64_t>(literal_0b100 );
+ l_scom_buffer.insert<6, 3, 61, uint64_t>(literal_0b010 );
+ l_scom_buffer.insert<9, 3, 61, uint64_t>(literal_0b110 );
+
+ if ((l_def_SLOT0_DRAM_STACK_HEIGHT == literal_8))
+ {
+ l_scom_buffer.insert<12, 3, 61, uint64_t>(literal_0b001 );
+ }
+ else if ((l_def_SLOT0_DRAM_STACK_HEIGHT != literal_8))
+ {
+ l_scom_buffer.insert<12, 3, 61, uint64_t>(literal_0b000 );
+ }
+
+ if ((l_def_SLOT0_DRAM_STACK_HEIGHT == literal_8))
+ {
+ l_scom_buffer.insert<15, 3, 61, uint64_t>(literal_0b101 );
+ }
+ else if ((l_def_SLOT0_DRAM_STACK_HEIGHT != literal_8))
+ {
+ l_scom_buffer.insert<15, 3, 61, uint64_t>(literal_0b100 );
+ }
+
+ if ((l_def_SLOT0_DRAM_STACK_HEIGHT == literal_8))
+ {
+ l_scom_buffer.insert<18, 3, 61, uint64_t>(literal_0b011 );
+ }
+ else if ((l_def_SLOT0_DRAM_STACK_HEIGHT != literal_8))
+ {
+ l_scom_buffer.insert<18, 3, 61, uint64_t>(literal_0b010 );
+ }
+
+ if ((l_def_SLOT0_DRAM_STACK_HEIGHT == literal_8))
+ {
+ l_scom_buffer.insert<21, 3, 61, uint64_t>(literal_0b111 );
+ }
+ else if ((l_def_SLOT0_DRAM_STACK_HEIGHT != literal_8))
+ {
+ l_scom_buffer.insert<21, 3, 61, uint64_t>(literal_0b110 );
+ }
+
+ l_scom_buffer.insert<24, 3, 61, uint64_t>(literal_0b000 );
+ l_scom_buffer.insert<27, 3, 61, uint64_t>(literal_0b100 );
+ l_scom_buffer.insert<30, 3, 61, uint64_t>(literal_0b010 );
+ l_scom_buffer.insert<33, 3, 61, uint64_t>(literal_0b110 );
+
+ if ((l_def_SLOT1_DRAM_STACK_HEIGHT == literal_8))
+ {
+ l_scom_buffer.insert<36, 3, 61, uint64_t>(literal_0b001 );
+ }
+ else if ((l_def_SLOT1_DRAM_STACK_HEIGHT != literal_8))
+ {
+ l_scom_buffer.insert<36, 3, 61, uint64_t>(literal_0b000 );
+ }
+
+ if ((l_def_SLOT1_DRAM_STACK_HEIGHT == literal_8))
+ {
+ l_scom_buffer.insert<39, 3, 61, uint64_t>(literal_0b101 );
+ }
+ else if ((l_def_SLOT1_DRAM_STACK_HEIGHT != literal_8))
+ {
+ l_scom_buffer.insert<39, 3, 61, uint64_t>(literal_0b100 );
+ }
+
+ if ((l_def_SLOT1_DRAM_STACK_HEIGHT == literal_8))
+ {
+ l_scom_buffer.insert<42, 3, 61, uint64_t>(literal_0b011 );
+ }
+ else if ((l_def_SLOT1_DRAM_STACK_HEIGHT != literal_8))
+ {
+ l_scom_buffer.insert<42, 3, 61, uint64_t>(literal_0b010 );
+ }
+
+ if ((l_def_SLOT1_DRAM_STACK_HEIGHT == literal_8))
+ {
+ l_scom_buffer.insert<45, 3, 61, uint64_t>(literal_0b111 );
+ }
+ else if ((l_def_SLOT1_DRAM_STACK_HEIGHT != literal_8))
+ {
+ l_scom_buffer.insert<45, 3, 61, uint64_t>(literal_0b110 );
+ }
+
+ FAPI_TRY(fapi2::putScom(TGT0, 0x8011416ull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x8011417ull, l_scom_buffer ));
+
+ l_scom_buffer.insert<0, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_0][literal_0] >> literal_7) );
+ l_scom_buffer.insert<1, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_0][literal_0] >> literal_6) );
+ l_scom_buffer.insert<2, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_0][literal_0] >> literal_3) );
+ l_scom_buffer.insert<3, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_0][literal_0] >> literal_2) );
+ l_scom_buffer.insert<4, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_0][literal_1] >> literal_7) );
+ l_scom_buffer.insert<5, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_0][literal_1] >> literal_6) );
+ l_scom_buffer.insert<6, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_0][literal_1] >> literal_3) );
+ l_scom_buffer.insert<7, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_0][literal_1] >> literal_2) );
+ l_scom_buffer.insert<8, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_0][literal_2] >> literal_7) );
+ l_scom_buffer.insert<9, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_0][literal_2] >> literal_6) );
+ l_scom_buffer.insert<10, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_0][literal_2] >> literal_3) );
+ l_scom_buffer.insert<11, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_0][literal_2] >> literal_2) );
+ l_scom_buffer.insert<12, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_0][literal_3] >> literal_7) );
+ l_scom_buffer.insert<13, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_0][literal_3] >> literal_6) );
+ l_scom_buffer.insert<14, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_0][literal_3] >> literal_3) );
+ l_scom_buffer.insert<15, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_0][literal_3] >> literal_2) );
+ l_scom_buffer.insert<16, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_1][literal_0] >> literal_7) );
+ l_scom_buffer.insert<17, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_1][literal_0] >> literal_6) );
+ l_scom_buffer.insert<18, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_1][literal_0] >> literal_3) );
+ l_scom_buffer.insert<19, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_1][literal_0] >> literal_2) );
+ l_scom_buffer.insert<20, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_1][literal_1] >> literal_7) );
+ l_scom_buffer.insert<21, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_1][literal_1] >> literal_6) );
+ l_scom_buffer.insert<22, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_1][literal_1] >> literal_3) );
+ l_scom_buffer.insert<23, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_1][literal_1] >> literal_2) );
+ l_scom_buffer.insert<24, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_1][literal_2] >> literal_7) );
+ l_scom_buffer.insert<25, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_1][literal_2] >> literal_6) );
+ l_scom_buffer.insert<26, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_1][literal_2] >> literal_3) );
+ l_scom_buffer.insert<27, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_1][literal_2] >> literal_2) );
+ l_scom_buffer.insert<28, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_1][literal_3] >> literal_7) );
+ l_scom_buffer.insert<29, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_1][literal_3] >> literal_6) );
+ l_scom_buffer.insert<30, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_1][literal_3] >> literal_3) );
+ l_scom_buffer.insert<31, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_RD[literal_1][literal_3] >> literal_2) );
+ l_scom_buffer.insert<32, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_0][literal_0] >> literal_7) );
+ l_scom_buffer.insert<33, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_0][literal_0] >> literal_6) );
+ l_scom_buffer.insert<34, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_0][literal_0] >> literal_3) );
+ l_scom_buffer.insert<35, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_0][literal_0] >> literal_2) );
+ l_scom_buffer.insert<36, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_0][literal_1] >> literal_7) );
+ l_scom_buffer.insert<37, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_0][literal_1] >> literal_6) );
+ l_scom_buffer.insert<38, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_0][literal_1] >> literal_3) );
+ l_scom_buffer.insert<39, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_0][literal_1] >> literal_2) );
+ l_scom_buffer.insert<40, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_0][literal_2] >> literal_7) );
+ l_scom_buffer.insert<41, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_0][literal_2] >> literal_6) );
+ l_scom_buffer.insert<42, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_0][literal_2] >> literal_3) );
+ l_scom_buffer.insert<43, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_0][literal_2] >> literal_2) );
+ l_scom_buffer.insert<44, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_0][literal_3] >> literal_7) );
+ l_scom_buffer.insert<45, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_0][literal_3] >> literal_6) );
+ l_scom_buffer.insert<46, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_0][literal_3] >> literal_3) );
+ l_scom_buffer.insert<47, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_0][literal_3] >> literal_2) );
+ l_scom_buffer.insert<48, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_1][literal_0] >> literal_7) );
+ l_scom_buffer.insert<49, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_1][literal_0] >> literal_6) );
+ l_scom_buffer.insert<50, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_1][literal_0] >> literal_3) );
+ l_scom_buffer.insert<51, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_1][literal_0] >> literal_2) );
+ l_scom_buffer.insert<52, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_1][literal_1] >> literal_7) );
+ l_scom_buffer.insert<53, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_1][literal_1] >> literal_6) );
+ l_scom_buffer.insert<54, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_1][literal_1] >> literal_3) );
+ l_scom_buffer.insert<55, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_1][literal_1] >> literal_2) );
+ l_scom_buffer.insert<56, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_1][literal_2] >> literal_7) );
+ l_scom_buffer.insert<57, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_1][literal_2] >> literal_6) );
+ l_scom_buffer.insert<58, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_1][literal_2] >> literal_3) );
+ l_scom_buffer.insert<59, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_1][literal_2] >> literal_2) );
+ l_scom_buffer.insert<60, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_1][literal_3] >> literal_7) );
+ l_scom_buffer.insert<61, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_1][literal_3] >> literal_6) );
+ l_scom_buffer.insert<62, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_1][literal_3] >> literal_3) );
+ l_scom_buffer.insert<63, 1, 63, uint64_t>((l_TGT1_ATTR_MEM_SI_ODT_WR[literal_1][literal_3] >> literal_2) );
+ FAPI_TRY(fapi2::putScom(TGT0, 0x8011417ull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x8011434ull, l_scom_buffer ));
+
+ l_scom_buffer.insert<8, 11, 53, uint64_t>(l_def_REFRESH_INTERVAL );
+ l_scom_buffer.insert<30, 10, 54, uint64_t>(l_TGT1_ATTR_MEM_EFF_DRAM_TRFC );
+ l_scom_buffer.insert<40, 10, 54, uint64_t>(l_TGT1_ATTR_MEM_EFF_DRAM_TRFC_DLR );
+ l_scom_buffer.insert<5, 3, 61, uint64_t>(literal_3 );
+ l_scom_buffer.insert<50, 11, 53, uint64_t>(l_def_REFR_CHECK_INTERVAL );
+ FAPI_TRY(fapi2::putScom(TGT0, 0x8011434ull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x8011436ull, l_scom_buffer ));
+
+ if ((l_def_MSS_FREQ_EQ_2666 == literal_1))
+ {
+ l_scom_buffer.insert<16, 5, 59, uint64_t>(literal_7 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2933 == literal_1))
+ {
+ l_scom_buffer.insert<16, 5, 59, uint64_t>(literal_8 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_3200 == literal_1))
+ {
+ l_scom_buffer.insert<16, 5, 59, uint64_t>(literal_8 );
+ }
+
+ if ((l_def_MSS_FREQ_EQ_2666 == literal_1))
+ {
+ l_scom_buffer.insert<11, 5, 59, uint64_t>(literal_7 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2933 == literal_1))
+ {
+ l_scom_buffer.insert<11, 5, 59, uint64_t>(literal_8 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_3200 == literal_1))
+ {
+ l_scom_buffer.insert<11, 5, 59, uint64_t>(literal_8 );
+ }
+
+ if ((l_def_MSS_FREQ_EQ_2666 == literal_1))
+ {
+ l_scom_buffer.insert<6, 5, 59, uint64_t>(literal_8 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2933 == literal_1))
+ {
+ l_scom_buffer.insert<6, 5, 59, uint64_t>(literal_9 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_3200 == literal_1))
+ {
+ l_scom_buffer.insert<6, 5, 59, uint64_t>(literal_10 );
+ }
+
+ FAPI_TRY(fapi2::putScom(TGT0, 0x8011436ull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x8011437ull, l_scom_buffer ));
+
+ if ((l_def_MSS_FREQ_EQ_2666 == literal_1))
+ {
+ l_scom_buffer.insert<17, 5, 59, uint64_t>(literal_13 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2933 == literal_1))
+ {
+ l_scom_buffer.insert<17, 5, 59, uint64_t>(literal_15 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_3200 == literal_1))
+ {
+ l_scom_buffer.insert<17, 5, 59, uint64_t>(literal_16 );
+ }
+
+ if ((l_def_MSS_FREQ_EQ_2666 == literal_1))
+ {
+ l_scom_buffer.insert<22, 5, 59, uint64_t>(literal_13 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2933 == literal_1))
+ {
+ l_scom_buffer.insert<22, 5, 59, uint64_t>(literal_15 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_3200 == literal_1))
+ {
+ l_scom_buffer.insert<22, 5, 59, uint64_t>(literal_16 );
+ }
+
+ if ((l_def_MSS_FREQ_EQ_2666 == literal_1))
+ {
+ l_scom_buffer.insert<12, 5, 59, uint64_t>(literal_8 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2933 == literal_1))
+ {
+ l_scom_buffer.insert<12, 5, 59, uint64_t>(literal_9 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_3200 == literal_1))
+ {
+ l_scom_buffer.insert<12, 5, 59, uint64_t>(literal_9 );
+ }
+
+ if ((l_def_MSS_FREQ_EQ_2666 == literal_1))
+ {
+ l_scom_buffer.insert<27, 11, 53, uint64_t>(literal_854 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_2933 == literal_1))
+ {
+ l_scom_buffer.insert<27, 11, 53, uint64_t>(literal_940 );
+ }
+ else if ((l_def_MSS_FREQ_EQ_3200 == literal_1))
+ {
+ l_scom_buffer.insert<27, 11, 53, uint64_t>(literal_1024 );
+ }
+
+ l_scom_buffer.insert<46, 11, 53, uint64_t>(l_def_REFRESH_INTERVAL );
+ FAPI_TRY(fapi2::putScom(TGT0, 0x8011437ull, l_scom_buffer));
+ }
+
+ };
+fapi_try_exit:
+ return fapi2::current_err;
+}
diff --git a/src/import/chips/ocmb/procedures/hwp/initfiles/explorer_scom.H b/src/import/chips/ocmb/procedures/hwp/initfiles/explorer_scom.H
new file mode 100644
index 000000000..6f7242412
--- /dev/null
+++ b/src/import/chips/ocmb/procedures/hwp/initfiles/explorer_scom.H
@@ -0,0 +1,47 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/import/chips/ocmb/procedures/hwp/initfiles/explorer_scom.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2018 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+#ifndef _INIT_EXPLORER_SCOM_PROCEDURE_H_
+#define _INIT_EXPLORER_SCOM_PROCEDURE_H_
+
+
+#include <stddef.h>
+#include <stdint.h>
+#include <fapi2.H>
+
+
+typedef fapi2::ReturnCode (*explorer_scom_FP_t)(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>&,
+ const fapi2::Target<fapi2::TARGET_TYPE_MEM_PORT>&, const fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>&,
+ const fapi2::Target<fapi2::TARGET_TYPE_MC>&);
+
+extern "C"
+{
+
+ fapi2::ReturnCode explorer_scom(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& TGT0,
+ const fapi2::Target<fapi2::TARGET_TYPE_MEM_PORT>& TGT1, const fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>& TGT2,
+ const fapi2::Target<fapi2::TARGET_TYPE_MC>& TGT3);
+
+}
+
+#endif
diff --git a/src/import/chips/ocmb/procedures/hwp/initfiles/explorer_scom.mk b/src/import/chips/ocmb/procedures/hwp/initfiles/explorer_scom.mk
new file mode 100644
index 000000000..4c6e162d2
--- /dev/null
+++ b/src/import/chips/ocmb/procedures/hwp/initfiles/explorer_scom.mk
@@ -0,0 +1,27 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/import/chips/ocmb/procedures/hwp/initfiles/explorer_scom.mk $
+#
+# OpenPOWER HostBoot Project
+#
+# Contributors Listed Below - COPYRIGHT 2018
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+# IBM_PROLOG_END_TAG
+PROCEDURE=explorer_scom
+lib$(PROCEDURE)_COMMONFLAGS+=-fno-var-tracking-assignments
+$(call BUILD_PROCEDURE)
OpenPOWER on IntegriCloud