diff options
author | Louis Stermole <stermole@us.ibm.com> | 2018-12-17 08:46:03 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-02-22 15:18:14 -0600 |
commit | 66a5ca389cf9f089e7f9067a96d5e10ffc88a6df (patch) | |
tree | 657389a0bb010055e00cce684ef5799ac330cca6 /src/import/generic/memory/lib/mss_generic_attribute_getters.H | |
parent | ca19f71b0d0ed782053b5ed18284b74db135641e (diff) | |
download | talos-hostboot-66a5ca389cf9f089e7f9067a96d5e10ffc88a6df.tar.gz talos-hostboot-66a5ca389cf9f089e7f9067a96d5e10ffc88a6df.zip |
Add new MSS attributes for Axone
ATTR_MEM_MRW_IS_PLANAR
ATTR_MEM_EFF_DIMM_SPARE
ATTR_MEM_VPD_DQ_MAP
Change-Id: I0f48039a87ff7225198fdc387abe542a8aef0249
Original-Change-Id: I36915bf7aa8c6fffc3e8b27aea595d9feb1760dc
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/69903
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com>
Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com>
Reviewed-by: ANDRE A. MARIN <aamarin@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/72340
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Tested-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import/generic/memory/lib/mss_generic_attribute_getters.H')
-rw-r--r-- | src/import/generic/memory/lib/mss_generic_attribute_getters.H | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/src/import/generic/memory/lib/mss_generic_attribute_getters.H b/src/import/generic/memory/lib/mss_generic_attribute_getters.H index 668437ad4..f6bcf81fd 100644 --- a/src/import/generic/memory/lib/mss_generic_attribute_getters.H +++ b/src/import/generic/memory/lib/mss_generic_attribute_getters.H @@ -77,6 +77,30 @@ fapi_try_exit: return fapi2::current_err; } +/// +/// @brief ATTR_MEM_VPD_DQ_MAP getter +/// @param[in] const ref to the TARGET_TYPE_MEM_PORT +/// @param[out] uint8_t&[] array reference to store the value +/// @note Generated by gen_accessors.pl generate_mc_port_params +/// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK +/// @note [Dimm DQ PIN] The map from the Dual Inline Memory Module (DIMM) Data (DQ) Pin to +/// the Module Package Data (DQ) Pinout +/// +inline fapi2::ReturnCode get_mem_vpd_dq_map(const fapi2::Target<fapi2::TARGET_TYPE_MEM_PORT>& i_target, + uint8_t (&o_array)[72]) +{ + uint8_t l_value[72] = {}; + + FAPI_TRY( FAPI_ATTR_GET(fapi2::ATTR_MEM_VPD_DQ_MAP, i_target, l_value) ); + memcpy(o_array, &l_value, 72); + return fapi2::current_err; + +fapi_try_exit: + FAPI_ERR("failed getting ATTR_MEM_VPD_DQ_MAP: 0x%lx (target: %s)", + uint64_t(fapi2::current_err), mss::c_str(i_target)); + return fapi2::current_err; +} + /// /// @brief ATTR_MEM_REORDER_QUEUE_SETTING getter @@ -1435,6 +1459,54 @@ fapi_try_exit: } /// +/// @brief ATTR_MEM_EFF_DIMM_SPARE getter +/// @param[in] const ref to the TARGET_TYPE_DIMM +/// @param[out] uint8_t&[] array reference to store the value +/// @note Generated by gen_accessors.pl generate_mc_port_params +/// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK +/// @note Spare DRAM availability. Used in various locations and is computed in mss_eff_cnfg. +/// Array indexes are [DIMM][RANK] +/// +inline fapi2::ReturnCode get_dimm_spare(const fapi2::Target<fapi2::TARGET_TYPE_DIMM>& i_target, uint8_t (&o_array)[4]) +{ + uint8_t l_value[2][4] = {}; + const auto l_port = i_target.getParent<fapi2::TARGET_TYPE_MEM_PORT>(); + + FAPI_TRY( FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DIMM_SPARE, l_port, l_value) ); + memcpy(o_array, &(l_value[mss::index(i_target)][0]), 4); + return fapi2::current_err; + +fapi_try_exit: + FAPI_ERR("failed getting ATTR_MEM_EFF_DIMM_SPARE: 0x%lx (target: %s)", + uint64_t(fapi2::current_err), mss::c_str(i_target)); + return fapi2::current_err; +} + +/// +/// @brief ATTR_MEM_EFF_DIMM_SPARE getter +/// @param[in] const ref to the TARGET_TYPE_MEM_PORT +/// @param[out] uint8_t&[] array reference to store the value +/// @note Generated by gen_accessors.pl generate_mc_port_params +/// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK +/// @note Spare DRAM availability. Used in various locations and is computed in mss_eff_cnfg. +/// Array indexes are [DIMM][RANK] +/// +inline fapi2::ReturnCode get_dimm_spare(const fapi2::Target<fapi2::TARGET_TYPE_MEM_PORT>& i_target, + uint8_t (&o_array)[2][4]) +{ + uint8_t l_value[2][4] = {}; + + FAPI_TRY( FAPI_ATTR_GET(fapi2::ATTR_MEM_EFF_DIMM_SPARE, i_target, l_value) ); + memcpy(o_array, &l_value, 8); + return fapi2::current_err; + +fapi_try_exit: + FAPI_ERR("failed getting ATTR_MEM_EFF_DIMM_SPARE: 0x%lx (target: %s)", + uint64_t(fapi2::current_err), mss::c_str(i_target)); + return fapi2::current_err; +} + +/// /// @brief ATTR_MEM_EFF_DRAM_CL getter /// @param[in] const ref to the TARGET_TYPE_MEM_PORT /// @param[out] uint8_t& reference to store the value @@ -2667,6 +2739,28 @@ fapi_try_exit: } +/// +/// @brief ATTR_MEM_MRW_IS_PLANAR getter +/// @param[in] const ref to the TARGET_TYPE_OCMB_CHIP +/// @param[out] uint8_t& reference to store the value +/// @note Generated by gen_accessors.pl generate_mc_port_params +/// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK +/// @note Indicates if the DIMM connected to this controller are in a planar configuration +/// +inline fapi2::ReturnCode get_mem_mrw_is_planar(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target, + uint8_t& o_value) +{ + + FAPI_TRY( FAPI_ATTR_GET(fapi2::ATTR_MEM_MRW_IS_PLANAR, i_target, o_value) ); + return fapi2::current_err; + +fapi_try_exit: + FAPI_ERR("failed getting ATTR_MEM_MRW_IS_PLANAR: 0x%lx (target: %s)", + uint64_t(fapi2::current_err), mss::c_str(i_target)); + return fapi2::current_err; +} + + } // attr } // mss |