diff options
| author | Ben Gass <bgass@us.ibm.com> | 2018-08-07 14:59:09 -0500 |
|---|---|---|
| committer | Christian R. Geddes <crgeddes@us.ibm.com> | 2019-02-27 09:01:48 -0600 |
| commit | a54de9465ed1a8fc53ae4b7728ed69becf1581cb (patch) | |
| tree | 77a782ea82da01fd1891d9db19ecfeea4c8b5dfb /src | |
| parent | cab3c5b1f80c36dcb9015d7085ee5b11948d4232 (diff) | |
| download | blackbird-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')
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) |

