diff options
author | Mark Pizzutillo <Mark.Pizzutillo@ibm.com> | 2019-06-20 13:15:47 -0500 |
---|---|---|
committer | Christian R. Geddes <crgeddes@us.ibm.com> | 2019-07-09 10:20:45 -0500 |
commit | edce11bc98f220b92a9906929891ea430b77a54d (patch) | |
tree | 062f8492969b0193424aba61d00005f839d80347 /src/import/chips/ocmb/explorer/procedures/hwp/memory | |
parent | d9bbcfabbc2f041ba85095ac70dc27c37cb87755 (diff) | |
download | talos-hostboot-edce11bc98f220b92a9906929891ea430b77a54d.tar.gz talos-hostboot-edce11bc98f220b92a9906929891ea430b77a54d.zip |
Fix more exp_draminit parameters
Change-Id: I1183b37048b6075bd85276058f123883efb351e9
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79299
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Louis Stermole <stermole@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com>
Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com>
Reviewed-by: RYAN P. KING <rpking@us.ibm.com>
Reviewed-by: Jennifer A Stofer <stofer@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79320
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/import/chips/ocmb/explorer/procedures/hwp/memory')
-rw-r--r-- | src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/eff_config/explorer_efd_processing.C | 8 | ||||
-rw-r--r-- | src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/exp_draminit_utils.H | 40 |
2 files changed, 40 insertions, 8 deletions
diff --git a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/eff_config/explorer_efd_processing.C b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/eff_config/explorer_efd_processing.C index a0b62b533..cf09e0a45 100644 --- a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/eff_config/explorer_efd_processing.C +++ b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/eff_config/explorer_efd_processing.C @@ -129,13 +129,13 @@ fapi2::ReturnCode init_vref_dq(const fapi2::Target<fapi2::TARGET_TYPE_DIMM>& i_t static const uint8_t VREF_RANGE_BIT_LEFT_ALGINED = 1; // Get the data - uint8_t l_phy_vref[mss::exp::sizes::MAX_RANK_PER_DIMM] = {0}; + uint8_t l_vref_dq[mss::exp::sizes::MAX_RANK_PER_DIMM] = {0}; uint8_t l_range = 0; uint8_t l_value = 0; fapi2::buffer<uint8_t> l_combined_vref; - FAPI_TRY(mss::attr::get_exp_init_vref_dq(i_target, l_phy_vref)); + FAPI_TRY(mss::attr::get_exp_init_vref_dq(i_target, l_vref_dq)); // Piece together the field FAPI_TRY(i_efd_data->wr_vref_dq_range(l_range)); @@ -145,10 +145,10 @@ fapi2::ReturnCode init_vref_dq(const fapi2::Target<fapi2::TARGET_TYPE_DIMM>& i_t l_combined_vref.writeBit<VREF_RANGE_BIT_LEFT_ALGINED>(l_range); // Insert - l_phy_vref[i_efd_data->get_rank()] = l_combined_vref; + l_vref_dq[i_efd_data->get_rank()] = l_combined_vref; // Set the attribute - FAPI_TRY(mss::attr::set_exp_init_vref_dq(i_target, l_phy_vref)); + FAPI_TRY(mss::attr::set_exp_init_vref_dq(i_target, l_vref_dq)); fapi_try_exit: return fapi2::current_err; diff --git a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/exp_draminit_utils.H b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/exp_draminit_utils.H index fac27601b..e310ee220 100644 --- a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/exp_draminit_utils.H +++ b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/exp_draminit_utils.H @@ -134,6 +134,18 @@ enum msdg_enable }; /// +/// @brief defines fields for the ODT RD/WR params +/// +enum odt_fields +{ + FLD_LENGTH = 4, + RANK3 = 12, + RANK2 = 8, + RANK1 = 4, + RANK0 = 0, +}; + +/// /// @brief host_fw_command_struct structure setup /// @param[in] i_cmd_data_crc the command data CRC /// @param[out] o_cmd the command parameters to set @@ -180,8 +192,8 @@ struct phy_params_t uint8_t iv_num_pstate[MAX_DIMM_PER_PORT]; uint64_t iv_frequency; uint8_t iv_odt_impedance[MAX_DIMM_PER_PORT][MAX_RANK_PER_DIMM]; - uint8_t iv_drv_impedance_pu[MAX_DIMM_PER_PORT][MAX_RANK_PER_DIMM]; - uint8_t iv_drv_impedance_pd[MAX_DIMM_PER_PORT][MAX_RANK_PER_DIMM]; + uint16_t iv_drv_impedance_pu[MAX_DIMM_PER_PORT][MAX_RANK_PER_DIMM]; + uint16_t iv_drv_impedance_pd[MAX_DIMM_PER_PORT][MAX_RANK_PER_DIMM]; uint8_t iv_slew_rate[MAX_DIMM_PER_PORT][MAX_RANK_PER_DIMM]; uint8_t iv_atx_impedance[MAX_DIMM_PER_PORT][MAX_RANK_PER_DIMM]; uint8_t iv_atx_slew_rate[MAX_DIMM_PER_PORT][MAX_RANK_PER_DIMM]; @@ -834,7 +846,17 @@ class phy_params /// fapi2::ReturnCode set_OdtWrMapCs(user_input_msdg& io_phy_params) const { - io_phy_params.OdtWrMapCs[0] = iv_params.iv_odt_wr_map_cs[0][0]; + fapi2::buffer<uint16_t> odt_wr_map_cs_buff; + + // TK - Changes needed for Dual Drop / 4U in the future. + // Will likely require ODT RD/WR attribute changes + odt_wr_map_cs_buff.insert<odt_fields::RANK3, odt_fields::FLD_LENGTH>(iv_params.iv_odt_wr_map_cs[0][3]); + odt_wr_map_cs_buff.insert<odt_fields::RANK2, odt_fields::FLD_LENGTH>(iv_params.iv_odt_wr_map_cs[0][2]); + odt_wr_map_cs_buff.insert<odt_fields::RANK1, odt_fields::FLD_LENGTH>(iv_params.iv_odt_wr_map_cs[0][1]); + odt_wr_map_cs_buff.insert<odt_fields::RANK0, odt_fields::FLD_LENGTH>(iv_params.iv_odt_wr_map_cs[0][0]); + + odt_wr_map_cs_buff.reverse(); + io_phy_params.OdtWrMapCs[0] = odt_wr_map_cs_buff; return fapi2::FAPI2_RC_SUCCESS; } @@ -845,7 +867,17 @@ class phy_params /// fapi2::ReturnCode set_OdtRdMapCs(user_input_msdg& io_phy_params) const { - io_phy_params.OdtRdMapCs[0] = iv_params.iv_odt_rd_map_cs[0][0]; + fapi2::buffer<uint16_t> odt_rd_map_cs_buff; + + // TK - Changes needed for Dual Drop / 4U in the future. + // Will likely require ODT RD/WR attribute changes + odt_rd_map_cs_buff.insert<odt_fields::RANK3, odt_fields::FLD_LENGTH>(iv_params.iv_odt_rd_map_cs[0][3]); + odt_rd_map_cs_buff.insert<odt_fields::RANK2, odt_fields::FLD_LENGTH>(iv_params.iv_odt_rd_map_cs[0][2]); + odt_rd_map_cs_buff.insert<odt_fields::RANK1, odt_fields::FLD_LENGTH>(iv_params.iv_odt_rd_map_cs[0][1]); + odt_rd_map_cs_buff.insert<odt_fields::RANK0, odt_fields::FLD_LENGTH>(iv_params.iv_odt_rd_map_cs[0][0]); + + odt_rd_map_cs_buff.reverse(); + io_phy_params.OdtRdMapCs[0] = odt_rd_map_cs_buff; return fapi2::FAPI2_RC_SUCCESS; } |