diff options
author | Mark Pizzutillo <Mark.Pizzutillo@ibm.com> | 2020-01-27 19:13:30 -0500 |
---|---|---|
committer | Christian R Geddes <crgeddes@us.ibm.com> | 2020-02-12 12:41:59 -0600 |
commit | 798af67f241d6a8479c952485099e7b60d4aa823 (patch) | |
tree | 00e462b989ecc1fd2995fa203f24e7c31856b5a1 /src/import/generic/memory/lib/data_engine/attr_engine_traits.H | |
parent | 3dbe6a1963d4561ff5bca378caf9e107e7807bfc (diff) | |
download | talos-hostboot-798af67f241d6a8479c952485099e7b60d4aa823.tar.gz talos-hostboot-798af67f241d6a8479c952485099e7b60d4aa823.zip |
Add attribute for SPD_REVISION (byte 1)
Rename previous uses of Byte 192, the ddimm module spd section
to avoid ambiguity. Renamed from spd_revision --> ddimm_module_spd_revision
git-coreq:hostboot:I039173097619111ae5847660472e75ed9f2d5f1d
git-coreq:sbe:I039173097619111ae5847660472e75ed9f2d5f1d
git-coreq:hwsv:I039173097619111ae5847660472e75ed9f2d5f1d
Change-Id: I039173097619111ae5847660472e75ed9f2d5f1d
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/90410
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com>
Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com>
Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: Louis Stermole <stermole@us.ibm.com>
Reviewed-by: Jennifer A Stofer <stofer@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/90508
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/generic/memory/lib/data_engine/attr_engine_traits.H')
-rw-r--r-- | src/import/generic/memory/lib/data_engine/attr_engine_traits.H | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/src/import/generic/memory/lib/data_engine/attr_engine_traits.H b/src/import/generic/memory/lib/data_engine/attr_engine_traits.H index adfd81b3f..ebcd02c8c 100644 --- a/src/import/generic/memory/lib/data_engine/attr_engine_traits.H +++ b/src/import/generic/memory/lib/data_engine/attr_engine_traits.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2019 */ +/* Contributors Listed Below - COPYRIGHT 2019,2020 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -3466,6 +3466,56 @@ struct attrEngineTraits<P, attr_eff_engine_fields, attr_eff_engine_fields::DRAM_ } }; +/// +/// @brief Traits for attr_engine +/// @class attrEngineTraits +/// @note attr_engine_derived_fields, SPD_REVISION specialization +/// +template < proc_type P > +struct attrEngineTraits<P, attr_eff_engine_fields, attr_eff_engine_fields::SPD_REVISION> +{ + using attr_type = fapi2::ATTR_MEM_EFF_SPD_REVISION_Type; + using attr_integral_type = std::remove_all_extents<attr_type>::type; + static constexpr fapi2::TargetType TARGET_TYPE = fapi2::ATTR_MEM_EFF_SPD_REVISION_TargetType; + static constexpr generic_ffdc_codes FFDC_CODE = SET_SPD_REVISION; + + /// + /// @brief attribute getter + /// @param[in] i_target the fapi2 target + /// @param[out] o_setting array to populate + /// @return FAPI2_RC_SUCCESS iff okay + /// + static fapi2::ReturnCode get_attr(const fapi2::Target<TARGET_TYPE>& i_target, + attr_type& o_setting) + { + return mss::attr::get_spd_revision(i_target, o_setting); + } + + /// + /// @brief attribute setter + /// @param[in] i_target the attr target + /// @param[in] i_setting array to set + /// @return FAPI2_RC_SUCCESS iff okay + /// + static fapi2::ReturnCode set_attr(const fapi2::Target<TARGET_TYPE>& i_target, + attr_type& i_setting) + { + return mss::attr::set_spd_revision(i_target, i_setting); + } + + /// + /// @brief Computes setting for attribute + /// @param[in] i_efd_data EFD data + /// @param[out] o_setting value we want to set attr with + /// @return FAPI2_RC_SUCCESS iff okay + /// + static inline fapi2::ReturnCode get_value_to_set(const spd::facade& i_spd_data, + attr_integral_type& o_setting) + { + return i_spd_data.revision(o_setting); + } +}; + }//mss #endif |