diff --git a/src/import/chips/ocmb/common/procedures/hwp/pmic/lib/eff_config/pmic_attr_engine_traits.H b/src/import/chips/ocmb/common/procedures/hwp/pmic/lib/eff_config/pmic_attr_engine_traits.H index 4f5d51df3cf..cd4ee2a02d6 100644 --- a/src/import/chips/ocmb/common/procedures/hwp/pmic/lib/eff_config/pmic_attr_engine_traits.H +++ b/src/import/chips/ocmb/common/procedures/hwp/pmic/lib/eff_config/pmic_attr_engine_traits.H @@ -52,19 +52,21 @@ namespace mss /// /// @brief Traits for attr_engine /// @class attrEngineTraits -/// @note attr_eff_engine_fields, ATTR_EFF_BASE_CASE specialization +/// @tparam P processor type +/// @note P, pmic::attr_eff_engine_fields, ATTR_EFF_BASE_CASE partial specialization /// NOP for base case needed to trigger partial specialization of attr_engine /// -template<> -struct attrEngineTraits {}; +template< proc_type P> +struct attrEngineTraits {}; /// /// @brief Traits for attr_engine /// @class attrEngineTraits -/// @note attr_eff_engine_fields, DRAM_MODULE_HEIGHT specialization +/// @tparam P processor type +/// @note P, pmic::attr_eff_engine_fields, DRAM_MODULE_HEIGHT partial specialization /// -template<> -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_MODULE_HEIGHT_Type; using attr_integral_type = std::remove_all_extents::type; @@ -115,10 +117,11 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine /// @class attrEngineTraits -/// @note attr_eff_engine_fields, PMIC0_MFG_ID specialization +/// @tparam P processor type +/// @note P, pmic::attr_eff_engine_fields, PMIC0_MFG_ID partial specialization /// -template<> -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_MFG_ID_Type; using attr_integral_type = std::remove_all_extents::type; @@ -165,10 +168,11 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine /// @class attrEngineTraits -/// @note attr_eff_engine_fields, PMIC0_SWA_VOLTAGE_SETTING specialization +/// @tparam P processor type +/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWA_VOLTAGE_SETTING partial specialization /// -template<> -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWA_VOLTAGE_SETTING_Type; using attr_integral_type = std::remove_all_extents::type; @@ -215,10 +219,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWA_VOLTAGE_RANGE_SELECT_Type; using attr_integral_type = std::remove_all_extents::type; @@ -265,10 +270,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWA_VOLTAGE_OFFSET_Type; using attr_integral_type = std::remove_all_extents::type; @@ -323,10 +329,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWA_SEQUENCE_DELAY_Type; using attr_integral_type = std::remove_all_extents::type; @@ -373,10 +380,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWA_SEQUENCE_ORDER_Type; using attr_integral_type = std::remove_all_extents::type; @@ -423,10 +431,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWB_VOLTAGE_SETTING_Type; using attr_integral_type = std::remove_all_extents::type; @@ -473,10 +482,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWB_VOLTAGE_RANGE_SELECT_Type; using attr_integral_type = std::remove_all_extents::type; @@ -523,10 +533,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWB_VOLTAGE_OFFSET_Type; using attr_integral_type = std::remove_all_extents::type; @@ -581,10 +592,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWB_SEQUENCE_DELAY_Type; using attr_integral_type = std::remove_all_extents::type; @@ -631,10 +643,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWB_SEQUENCE_ORDER_Type; using attr_integral_type = std::remove_all_extents::type; @@ -682,10 +695,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWC_VOLTAGE_SETTING_Type; using attr_integral_type = std::remove_all_extents::type; @@ -732,10 +746,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWC_VOLTAGE_RANGE_SELECT_Type; using attr_integral_type = std::remove_all_extents::type; @@ -782,10 +797,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWC_VOLTAGE_OFFSET_Type; using attr_integral_type = std::remove_all_extents::type; @@ -840,10 +856,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWC_SEQUENCE_DELAY_Type; using attr_integral_type = std::remove_all_extents::type; @@ -890,10 +907,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWC_SEQUENCE_ORDER_Type; using attr_integral_type = std::remove_all_extents::type; @@ -941,10 +959,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWD_VOLTAGE_SETTING_Type; using attr_integral_type = std::remove_all_extents::type; @@ -991,10 +1010,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWD_VOLTAGE_RANGE_SELECT_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1041,10 +1061,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWD_VOLTAGE_OFFSET_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1099,10 +1120,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWD_SEQUENCE_DELAY_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1149,10 +1171,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWD_SEQUENCE_ORDER_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1199,10 +1222,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_PHASE_COMB_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1254,10 +1278,11 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine /// @class attrEngineTraits -/// @note attr_eff_engine_fields, PMIC1_MFG_ID specialization +/// @tparam P processor type +/// @note P, pmic::attr_eff_engine_fields, PMIC1_MFG_ID partial specialization /// -template<> -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_MFG_ID_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1304,10 +1329,11 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine /// @class attrEngineTraits -/// @note attr_eff_engine_fields, PMIC1_SWA_VOLTAGE_SETTING specialization +/// @tparam P processor type +/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWA_VOLTAGE_SETTING partial specialization /// -template<> -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWA_VOLTAGE_SETTING_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1354,10 +1380,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWA_VOLTAGE_RANGE_SELECT_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1404,10 +1431,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWA_VOLTAGE_OFFSET_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1462,10 +1490,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWA_SEQUENCE_DELAY_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1512,10 +1541,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWA_SEQUENCE_ORDER_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1562,10 +1592,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWB_VOLTAGE_SETTING_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1612,10 +1643,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWB_VOLTAGE_RANGE_SELECT_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1662,10 +1694,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWB_VOLTAGE_OFFSET_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1720,10 +1753,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWB_SEQUENCE_DELAY_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1770,10 +1804,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWB_SEQUENCE_ORDER_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1820,10 +1855,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWC_VOLTAGE_SETTING_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1870,10 +1906,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWC_VOLTAGE_RANGE_SELECT_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1920,10 +1957,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWC_VOLTAGE_OFFSET_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1978,10 +2016,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWC_SEQUENCE_DELAY_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2028,10 +2067,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWC_SEQUENCE_ORDER_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2078,10 +2118,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWD_VOLTAGE_SETTING_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2128,10 +2169,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWD_VOLTAGE_RANGE_SELECT_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2178,10 +2220,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWD_VOLTAGE_OFFSET_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2236,10 +2279,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWD_SEQUENCE_DELAY_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2286,10 +2330,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWD_SEQUENCE_ORDER_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2336,10 +2381,11 @@ struct attrEngineTraits -struct attrEngineTraits +template< proc_type P> +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_PHASE_COMB_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2383,17 +2429,6 @@ struct attrEngineTraits } }; -/// -/// @brief Value traits for attr_eff_engine_fields -/// @class attrEngineTraits -/// @note attr_eff_engine_fields -/// -template < > -struct attrEnumTraits -{ - static constexpr size_t DISPATCHER = pmic::ATTR_EFF_DISPATCHER; -}; - }//mss #endif diff --git a/src/import/chips/ocmb/common/procedures/hwp/pmic/lib/eff_config/pmic_efd_processing.C b/src/import/chips/ocmb/common/procedures/hwp/pmic/lib/eff_config/pmic_efd_processing.C index 58bbc9aa2ff..32e3157cbe6 100644 --- a/src/import/chips/ocmb/common/procedures/hwp/pmic/lib/eff_config/pmic_efd_processing.C +++ b/src/import/chips/ocmb/common/procedures/hwp/pmic/lib/eff_config/pmic_efd_processing.C @@ -34,9 +34,6 @@ // *HWP Consumed by: HB:CI #include -#include -#include -#include #include #include #include diff --git a/src/import/chips/ocmb/common/procedures/hwp/pmic/lib/eff_config/pmic_efd_processing.H b/src/import/chips/ocmb/common/procedures/hwp/pmic/lib/eff_config/pmic_efd_processing.H index 9a69978898a..e09d8087f5c 100644 --- a/src/import/chips/ocmb/common/procedures/hwp/pmic/lib/eff_config/pmic_efd_processing.H +++ b/src/import/chips/ocmb/common/procedures/hwp/pmic/lib/eff_config/pmic_efd_processing.H @@ -37,9 +37,7 @@ #define _MSS_PMIC_EFD_PROCESSING_H_ #include -#include -#include -#include +#include namespace mss { diff --git a/src/import/chips/ocmb/common/procedures/hwp/pmic/lib/utils/pmic_consts.H b/src/import/chips/ocmb/common/procedures/hwp/pmic/lib/utils/pmic_consts.H index 96d7e993262..8908d877973 100644 --- a/src/import/chips/ocmb/common/procedures/hwp/pmic/lib/utils/pmic_consts.H +++ b/src/import/chips/ocmb/common/procedures/hwp/pmic/lib/utils/pmic_consts.H @@ -98,7 +98,7 @@ enum rail SWD = 3, }; -enum attr_eff_engine_fields +enum class attr_eff_engine_fields { // Template recursive base case ATTR_EFF_BASE_CASE = 0, @@ -160,7 +160,7 @@ enum attr_eff_engine_fields DRAM_MODULE_HEIGHT = 45, // Dispatcher set to last enum value - ATTR_EFF_DISPATCHER = DRAM_MODULE_HEIGHT, + DISPATCHER = DRAM_MODULE_HEIGHT, }; /// diff --git a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/eff_config/explorer_attr_engine_traits.H b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/eff_config/explorer_attr_engine_traits.H index ff72e2e6591..8ed2289b50a 100644 --- a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/eff_config/explorer_attr_engine_traits.H +++ b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/eff_config/explorer_attr_engine_traits.H @@ -58,7 +58,7 @@ namespace mss /// @note exp::attr_eff_engine_fields, SPD_TAA_MIN /// template< > -struct setTimingTraits< exp::attr_eff_engine_fields, exp::SPD_TAA_MIN > +struct setTimingTraits< exp::attr_eff_engine_fields, exp::attr_eff_engine_fields::SPD_TAA_MIN > { static constexpr const char* TIMING_NAME = "tAAmin"; @@ -74,19 +74,21 @@ struct setTimingTraits< exp::attr_eff_engine_fields, exp::SPD_TAA_MIN > /// /// @brief Traits for attr_engine /// @class attrEngineTraits +/// @tparam P processor type /// @note attr_eff_engine_fields, ATTR_EFF_BASE_CASE specialization /// NOP for base case needed to trigger partial specialization of attr_engine /// -template<> -struct attrEngineTraits {}; +template< proc_type P > +struct attrEngineTraits {}; /// /// @brief Traits for attr_engine /// @class attrEngineTraits +/// @tparam P processor type /// @note attr_eff_engine_fields, ADDRESS_MIRROR specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EXP_DRAM_ADDRESS_MIRRORING_Type; using attr_integral_type = std::remove_all_extents::type; @@ -133,10 +135,11 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine /// @class attrEngineTraits +/// @tparam P processor type /// @note attr_eff_engine_fields, BYTE_ENABLES specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_BYTE_ENABLES_Type; using attr_integral_type = std::remove_all_extents::type; @@ -183,10 +186,11 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine /// @class attrEngineTraits +/// @tparam P processor type /// @note attr_eff_engine_fields, NIBBLE_ENABLES specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_NIBBLE_ENABLES_Type; using attr_integral_type = std::remove_all_extents::type; @@ -233,10 +237,11 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine /// @class attrEngineTraits +/// @tparam P processor type /// @note attr_eff_engine_fields, SPD_TAA_MIN specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EXP_SPD_TAA_MIN_Type; using attr_integral_type = std::remove_all_extents::type; @@ -276,17 +281,19 @@ struct attrEngineTraits static fapi2::ReturnCode get_value_to_set(const spd::facade& i_spd_data, attr_integral_type& o_setting) { - return mss::calc_spd_time_in_ps(i_spd_data, o_setting); + return mss::calc_spd_time_in_ps(i_spd_data, + o_setting); } }; /// /// @brief Traits for attr_engine /// @class attrEngineTraits +/// @tparam P processor type /// @note attr_eff_engine_fields, FOUR_RANK_MODE specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_FOUR_RANK_MODE_Type; using attr_integral_type = std::remove_all_extents::type; @@ -340,10 +347,11 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine /// @class attrEngineTraits +/// @tparam P processor type /// @note attr_eff_engine_fields, DDP_COMPATIBILITY specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DDP_COMPATIBILITY_Type; using attr_integral_type = std::remove_all_extents::type; @@ -397,10 +405,11 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine /// @class attrEngineTraits +/// @tparam P processor type /// @note attr_eff_engine_fields, TSV_8H_SUPPORT specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_TSV_8H_SUPPORT_Type; using attr_integral_type = std::remove_all_extents::type; @@ -447,10 +456,11 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine /// @class attrEngineTraits +/// @tparam P processor type /// @note attr_eff_engine_fields, PSTATES specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PSTATES_Type; using attr_integral_type = std::remove_all_extents::type; @@ -497,10 +507,11 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine /// @class attrEngineTraits +/// @tparam P processor type /// @note attr_eff_engine_fields, MRAM_SUPPORT specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_MRAM_SUPPORT_Type; using attr_integral_type = std::remove_all_extents::type; @@ -554,10 +565,11 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine /// @class attrEngineTraits +/// @tparam P processor type /// @note attr_eff_engine_fields, SPD_CL_SUPPORTED specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EXP_SPD_CL_SUPPORTED_Type; using attr_integral_type = std::remove_all_extents::type; @@ -610,10 +622,11 @@ struct attrEngineTraits /// /// @brief Traits for pre_data_engine /// @class attrEngineTraits +/// @tparam P processor type /// @note AXONE, DIMM_TYPE_METADATA specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_DIMM_TYPE_METADATA_Type; using attr_integral_type = std::remove_all_extents::type; @@ -694,10 +707,11 @@ class dimmPosTraits /// /// @brief Traits for pre_data_engine /// @class attrEngineTraits +/// @tparam P processor type /// @note generic_metadata_fields, DRAM_GEN_METADATA specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_DRAM_GEN_METADATA_Type; using attr_integral_type = std::remove_all_extents::type; @@ -744,10 +758,11 @@ struct attrEngineTraits /// /// @brief Traits for pre_data_engine /// @class attrEngineTraits +/// @tparam P processor type /// @note generic_metadata_fields, DIMM_POS_METADATA specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_DIMM_POS_METADATA_Type; using attr_integral_type = std::remove_all_extents::type; @@ -792,33 +807,6 @@ struct attrEngineTraits } }; -//////////////////////////////////////////////////////// -// Explorer specific traits for attrEnumTraits -//////////////////////////////////////////////////////// - - -/// -/// @brief Value traits for attr_eff_engine_fields -/// @class attrEngineTraits -/// @note exp::attr_eff_engine_fields are exp DDIMM SPD fields -/// -template < > -struct attrEnumTraits -{ - static constexpr size_t DISPATCHER = exp::ATTR_EFF_DISPATCHER; -}; - -/// -/// @brief Value traits for attr_eff_engine_fields -/// @class attrEngineTraits -/// @note generic_metadata_fields used for dimm pos setting -/// -template < > -struct attrEnumTraits -{ - static constexpr size_t DISPATCHER = ATTR_METADATA_DISPATCHER; -}; - }//mss #endif diff --git a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/shared/exp_consts.H b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/shared/exp_consts.H index 910213e5946..b2b93fedf40 100644 --- a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/shared/exp_consts.H +++ b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/shared/exp_consts.H @@ -90,9 +90,9 @@ enum attr_delay_index /// @brief enum list of explorer SPD derived attributes to set /// @note these attrs are strictly derived from SPD /// @warning wrapped in exp namesapce to be distinguished from -/// the generic attr_eff_engine_fields +/// the exp::attr_eff_engine_fields /// -enum attr_eff_engine_fields +enum class attr_eff_engine_fields { // Template recursive base case ATTR_EFF_BASE_CASE = 0, @@ -110,7 +110,7 @@ enum attr_eff_engine_fields ADDRESS_MIRROR = 10, // Dispatcher set to last enum value - ATTR_EFF_DISPATCHER = ADDRESS_MIRROR, + DISPATCHER = ADDRESS_MIRROR, }; /// diff --git a/src/import/chips/p9a/procedures/hwp/memory/p9a_mss_eff_config.C b/src/import/chips/p9a/procedures/hwp/memory/p9a_mss_eff_config.C index 059121ac3bc..2e20bac7a50 100644 --- a/src/import/chips/p9a/procedures/hwp/memory/p9a_mss_eff_config.C +++ b/src/import/chips/p9a/procedures/hwp/memory/p9a_mss_eff_config.C @@ -94,7 +94,7 @@ fapi2::ReturnCode p9a_mss_eff_config( const fapi2::Target::set(l_efd_data) ); + FAPI_TRY( (mss::gen::attr_engine::set(l_efd_data)) ); // Explorer EFD FAPI_TRY( mss::exp::efd::process(dimm, l_efd_data)); @@ -115,18 +115,18 @@ fapi2::ReturnCode p9a_mss_eff_config( const fapi2::Target::set(l_spd_decoder) ); + FAPI_TRY( (mss::gen::attr_engine::set(l_spd_decoder)) ); // Set up explorer SPD ATTRS - FAPI_TRY( mss::attr_eff_engine::set(l_spd_decoder) ); + FAPI_TRY( (mss::gen::attr_engine::set(l_spd_decoder)) ); // Set up pmic SPD ATTRS - FAPI_TRY( mss::attr_eff_engine::set(l_spd_decoder) ); + FAPI_TRY( (mss::gen::attr_engine::set(l_spd_decoder)) ); } } // Set up derived ATTRS - FAPI_TRY( mss::attr_derived_engine::set(dimm) ); + FAPI_TRY( (mss::gen::attr_engine::set(dimm)) ); }// dimm diff --git a/src/import/chips/p9a/procedures/hwp/memory/p9a_mss_freq.C b/src/import/chips/p9a/procedures/hwp/memory/p9a_mss_freq.C index 6646ba5c4fe..73b7ed5a862 100644 --- a/src/import/chips/p9a/procedures/hwp/memory/p9a_mss_freq.C +++ b/src/import/chips/p9a/procedures/hwp/memory/p9a_mss_freq.C @@ -78,8 +78,13 @@ fapi2::ReturnCode p9a_mss_freq( const fapi2::Target // Checks that the facade was setup correctly FAPI_TRY( l_rc, "Failed to initialize SPD facade for %s", mss::spd::c_str(d) ); - FAPI_TRY( mss::attr_eff_engine::set(l_spd_decoder) ); - FAPI_TRY( mss::attr_derived_engine::set(d) ); + // Set pre-eff_config SPD driven attributes + FAPI_TRY( (mss::gen::attr_engine::set(l_spd_decoder)), + "Failed gen::attr_engine::set on %s", mss::spd::c_str(d) ); + + // Set pre_eff_config attributes derived from other attributes + FAPI_TRY( (mss::gen::attr_engine::set(d)), + "Failed gen::attr_engine::set on %s", mss::spd::c_str(d) ); } } 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 d78a0aa955a..4a89e13eca7 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 @@ -53,11 +53,12 @@ namespace mss /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_eff_engine_fields, PRIM_STACK_TYPE specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PRIM_STACK_TYPE_Type; using attr_integral_type = std::remove_all_extents::type; @@ -103,11 +104,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_eff_engine_fields, PRIM_DIE_COUNT specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PRIM_DIE_COUNT_Type; using attr_integral_type = std::remove_all_extents::type; @@ -182,11 +184,12 @@ struct attrEngineTraits /// /// @brief Traits for pre_data_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_eff_engine_fields, DRAM_DENSITY specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_DENSITY_Type; using attr_integral_type = std::remove_all_extents::type; @@ -254,11 +257,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_engine_derived_fields, BUS_WIDTH specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_PRIM_BUS_WIDTH_Type; using attr_integral_type = std::remove_all_extents::type; @@ -330,11 +334,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_eff_engine_fields, DRAM_WIDTH specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_WIDTH_Type; using attr_integral_type = std::remove_all_extents::type; @@ -407,11 +412,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, COLUMN_ADDR_BITS specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_COLUMN_BITS_Type; using attr_integral_type = std::remove_all_extents::type; @@ -471,11 +477,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, ROW_ADDR_BITS specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_ROW_BITS_Type; using attr_integral_type = std::remove_all_extents::type; @@ -543,19 +550,21 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, ATTR_SI_BASE_CASE specialization /// -template<> -struct attrEngineTraits {}; +template< proc_type P > +struct attrEngineTraits {}; /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_MC_RCV_IMP_DQ_DQS specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_MC_RCV_IMP_DQ_DQS_Type; using attr_integral_type = std::remove_all_extents::type; @@ -622,11 +631,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_MC_DRV_IMP_DQ_DQS_PULL_UP specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_MC_DRV_IMP_DQ_DQS_PULL_UP_Type; using attr_integral_type = std::remove_all_extents::type; @@ -706,11 +716,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_MC_DRV_IMP_DQ_DQS_PULL_DOWN specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_MC_DRV_IMP_DQ_DQS_PULL_DOWN_Type; using attr_integral_type = std::remove_all_extents::type; @@ -791,11 +802,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_MC_DRV_SLEW_RATE_DQ_DQS specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_MC_DRV_SLEW_RATE_DQ_DQS_Type; using attr_integral_type = std::remove_all_extents::type; @@ -841,11 +853,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_MC_DRV_IMP_CMD_ADDR specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_MC_DRV_IMP_CMD_ADDR_Type; using attr_integral_type = std::remove_all_extents::type; @@ -913,11 +926,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_MC_DRV_SLEW_RATE_CMD_ADDR specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_MC_DRV_SLEW_RATE_CMD_ADDR_Type; using attr_integral_type = std::remove_all_extents::type; @@ -963,11 +977,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_MC_DRV_IMP_CLK specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_MC_DRV_IMP_CLK_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1035,11 +1050,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_MC_DRV_SLEW_RATE_CLK specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_MC_DRV_SLEW_RATE_CLK_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1085,11 +1101,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_MC_RCV_IMP_ALERT_N specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_MC_RCV_IMP_ALERT_N_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1157,11 +1174,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_DRAM_RTT_NOM specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_DRAM_RTT_NOM_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1227,11 +1245,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_DRAM_RTT_WR specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_DRAM_RTT_WR_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1294,11 +1313,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_DRAM_RTT_PARK specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_DRAM_RTT_PARK_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1366,11 +1386,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_DRAM_PREAMBLE specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_DRAM_PREAMBLE_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1417,11 +1438,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_MC_DRV_EQ_DQ_DQS specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_MC_DRV_EQ_DQ_DQS_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1467,11 +1489,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_DRAM_DRV_IMP_DQ_DQS specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_DRAM_DRV_IMP_DQ_DQS_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1534,11 +1557,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_ODT_WR specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_ODT_WR_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1618,11 +1642,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_ODT_RD specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_ODT_RD_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1702,11 +1727,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_si_engine_fields, SI_GEARDOWN_MODE specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_SI_GEARDOWN_MODE_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1756,11 +1782,12 @@ struct attrEngineTraits /// /// @brief Traits for attrEngineTraits -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attrEngineTraits, MRANKS specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_LOGICAL_RANKS_PER_DIMM_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1825,11 +1852,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_engine_derived_fields, MEM_DIMM_SIZE specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DIMM_SIZE_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1894,11 +1922,12 @@ struct attrEngineTraits /// /// @brief Traits for attr_engine -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attr_engine_derived_fields, HEIGHT_3DS specialization /// -template<> -struct attrEngineTraits +template< proc_type P > +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_3DS_HEIGHT_Type; using attr_integral_type = std::remove_all_extents::type; @@ -1966,11 +1995,12 @@ struct attrEngineTraits /// /// @brief Traits for attrEngineTraits -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attrEngineTraits, DRAM_CWL specialization /// -template<> -struct attrEngineTraits +template +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_DRAM_CWL_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2063,11 +2093,12 @@ struct attrEngineTraits /// /// @brief Traits for attrEngineTraits -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attrEngineTraits, DRAM_TREFI specialization /// -template<> -struct attrEngineTraits +template +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_TREFI_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2199,11 +2230,12 @@ struct attrEngineTraits /// /// @brief Traits for attrEngineTraits -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attrEngineTraits, DRAM_TCCD_L specialization /// -template<> -struct attrEngineTraits +template +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_TCCD_L_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2299,11 +2331,12 @@ struct attrEngineTraits /// /// @brief Traits for attrEngineTraits -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attrEngineTraits, DRAM_TWTR_L specialization /// -template<> -struct attrEngineTraits +template +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_TWTR_L_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2390,11 +2423,12 @@ struct attrEngineTraits /// /// @brief Traits for attrEngineTraits -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attrEngineTraits, DRAM_TWTR_S specialization /// -template<> -struct attrEngineTraits +template +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_TWTR_S_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2481,11 +2515,12 @@ struct attrEngineTraits /// /// @brief Traits for attrEngineTraits -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attrEngineTraits, DRAM_TFAW specialization /// -template<> -struct attrEngineTraits +template +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_TFAW_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2598,11 +2633,12 @@ struct attrEngineTraits /// /// @brief Traits for attrEngineTraits -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attrEngineTraits, DRAM_TRCD specialization /// -template<> -struct attrEngineTraits +template +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_TRCD_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2697,11 +2733,12 @@ struct attrEngineTraits /// /// @brief Traits for attrEngineTraits -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attrEngineTraits, DRAM_TRP specialization /// -template<> -struct attrEngineTraits +template +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_TRP_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2799,11 +2836,12 @@ struct attrEngineTraits /// /// @brief Traits for attrEngineTraits -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attrEngineTraits, DRAM_TRAS specialization /// -template<> -struct attrEngineTraits +template +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_TRAS_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2883,11 +2921,12 @@ struct attrEngineTraits /// /// @brief Traits for attrEngineTraits -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attrEngineTraits, DRAM_TWR specialization /// -template<> -struct attrEngineTraits +template +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_TWR_Type; using attr_integral_type = std::remove_all_extents::type; @@ -2980,11 +3019,12 @@ struct attrEngineTraits /// /// @brief Traits for attrEngineTraits -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attrEngineTraits, DRAM_TRTP specialization /// -template<> -struct attrEngineTraits +template +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_TRTP_Type; using attr_integral_type = std::remove_all_extents::type; @@ -3056,11 +3096,12 @@ struct attrEngineTraits /// /// @brief Traits for attrEngineTraits -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attrEngineTraits, DRAM_TRRD_S specialization /// -template<> -struct attrEngineTraits +template +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_TRRD_S_Type; using attr_integral_type = std::remove_all_extents::type; @@ -3178,11 +3219,12 @@ struct attrEngineTraits /// /// @brief Traits for attrEngineTraits -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attrEngineTraits, DRAM_TRRD_L specialization /// -template<> -struct attrEngineTraits +template +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_TRRD_L_Type; using attr_integral_type = std::remove_all_extents::type; @@ -3300,11 +3342,12 @@ struct attrEngineTraits /// /// @brief Traits for attrEngineTraits -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attrEngineTraits, DRAM_TRFC specialization /// -template<> -struct attrEngineTraits +template +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_TRFC_Type; using attr_integral_type = std::remove_all_extents::type; @@ -3427,11 +3470,12 @@ struct attrEngineTraits /// /// @brief Traits for attrEngineTraits -/// @class attrEngineTraits +/// @class attrEngineTraits - partial specialization +/// @tparam P processor type /// @note attrEngineTraits, DRAM_TRFC_DLR specialization /// -template<> -struct attrEngineTraits +template +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_TRFC_DLR_Type; using attr_integral_type = std::remove_all_extents::type; diff --git a/src/import/generic/memory/lib/data_engine/data_engine.H b/src/import/generic/memory/lib/data_engine/data_engine.H index 806fbf02425..a4dfbf8ae05 100644 --- a/src/import/generic/memory/lib/data_engine/data_engine.H +++ b/src/import/generic/memory/lib/data_engine/data_engine.H @@ -135,138 +135,6 @@ fapi_try_exit: return fapi2::current_err; } -/// -/// @brief Sets preliminary data fields -/// @tparam F pre_data_init_fields -/// @tparam T FAPI2 target type -/// @tparam IT Input data type -/// @tparam TT defaulted to preDataInitTraits -/// @param[in] i_setting value we want to set attr with -/// @return FAPI2_RC_SUCCESS iff okay -/// -template< attr_eff_engine_fields F, - fapi2::TargetType T, - typename IT, - typename TT = mss::attrEngineTraits - > -inline fapi2::ReturnCode set_field(const fapi2::Target& i_target, - const IT i_setting) -{ - FAPI_TRY( (gen::set_field(i_target, i_setting)), - "Failed set_field() for %s", spd::c_str(i_target) ); - -fapi_try_exit: - return fapi2::current_err; -} - -/// -/// @brief Value traits for attrEnumTraits -/// @class attrEnumTraits - attr_si_engine_fields specialization -/// -template < > -struct attrEnumTraits -{ - static constexpr size_t DISPATCHER = ATTR_SI_DISPATCHER; -}; - -/// -/// @brief Value traits for attrEnumTraits -/// @class attrEnumTraits - attr_eff_engine_fields specialization -/// -template < > -struct attrEnumTraits -{ - static constexpr size_t DISPATCHER = ATTR_EFF_DISPATCHER; -}; - -/// -/// @brief Value traits for attrEnumTraits -/// @class attrEnumTraits - attr_eff_engine_fields specialization -/// -template < > -struct attrEnumTraits -{ - static constexpr size_t DISPATCHER = ATTR_PRE_DATA_ENG_DISPATCHER; -}; - -/// -/// @brief Value traits for attrEnumTraits -/// @class attrEnumTraits - attr_eff_engine_fields specialization -/// -template < > -struct attrEnumTraits -{ - static constexpr size_t DISPATCHER = ATTR_DERIVED_DISPATCHER; -}; - -/// -/// @brief attribute signal integrity engine -/// @class attr_si_engine -/// @tparam ET field enumeration type -/// @tparam TT defaulted to attrEnumTraits -/// -template < typename ET, typename TT = attrEnumTraits > -struct attr_si_engine -{ - using attr_eng_t = gen::attr_engine(TT::DISPATCHER)>; - - /// - /// @brief Sets attr_si_engine_fields - /// @tparam[in] IT rank input type - /// @param[in] i_target the DIMM target - /// @param[in] i_efd_data EFD data - /// @param[in] i_rank current rank - /// @return FAPI2_RC_SUCCESS iff ok - /// - static fapi2::ReturnCode set(const std::shared_ptr& i_efd_data) - { - return attr_eng_t::set(i_efd_data); - } -}; - -/// -/// @brief Data structure to set effective config EFF data -/// @class pre_attr_eff_engine -/// @tparam F attr_eff_engine_fields enum -/// -template < typename ET, typename TT = attrEnumTraits > -struct attr_eff_engine -{ - using attr_eng_t = gen::attr_engine(TT::DISPATCHER)>; - - /// - /// @brief Sets attr_si_engine_fields - /// @param[in] i_target the DIMM target - /// @param[in] i_spd_data EFD data - /// @return FAPI2_RC_SUCCESS iff ok - /// - static fapi2::ReturnCode set(const mss::spd::facade& i_spd_data) - { - return attr_eng_t::set(i_spd_data); - } -}; - -/// -/// @brief Data structure to set effective config EFF data -/// @class attr_derived_engine -/// @tparam ET attr fields enum type -/// -template < typename ET, typename TT = attrEnumTraits > -struct attr_derived_engine -{ - using attr_eng_t = gen::attr_engine(TT::DISPATCHER)>; - - /// - /// @brief Sets attr fields denoted by an eum list - /// @param[in] i_target the DIMM target - /// @return FAPI2_RC_SUCCESS iff ok - /// - static fapi2::ReturnCode set(const fapi2::Target& i_target) - { - return attr_eng_t::set(i_target); - } -}; - }// mss #endif diff --git a/src/import/generic/memory/lib/data_engine/data_engine_traits_def.H b/src/import/generic/memory/lib/data_engine/data_engine_traits_def.H index 702e0db9af1..14c6bc51874 100644 --- a/src/import/generic/memory/lib/data_engine/data_engine_traits_def.H +++ b/src/import/generic/memory/lib/data_engine/data_engine_traits_def.H @@ -45,7 +45,7 @@ namespace mss /// /// @brief enum list of preliminary data fields needed before eff_config /// -enum pre_data_init_fields +enum class pre_data_init_fields { // Template recursive base case ATTR_PRE_DATA_ENGINE_CASE = 0, @@ -60,7 +60,7 @@ enum pre_data_init_fields DIMM_RANKS_CNFG = 7, // Dispatcher set to last enum value - ATTR_PRE_DATA_ENG_DISPATCHER = DIMM_RANKS_CNFG, + DISPATCHER = DIMM_RANKS_CNFG, }; /// @@ -70,7 +70,7 @@ enum pre_data_init_fields /// (e.g. Nimbus vs Axone) /// @warning these depend on pre_data_init_fields fields being set /// -enum generic_metadata_fields +enum class generic_metadata_fields { // Template recursive base case ATTR_METADATA_BASE_CASE = 0, @@ -81,13 +81,13 @@ enum generic_metadata_fields DIMM_POS_METADATA = 3, // Dispatcher set to last enum value - ATTR_METADATA_DISPATCHER = DIMM_POS_METADATA, + DISPATCHER = DIMM_POS_METADATA, }; /// /// @brief enum list of SPD based attr fields to set /// -enum attr_eff_engine_fields +enum class attr_eff_engine_fields { // Template recursive base case ATTR_EFF_BASE_CASE = 0, @@ -117,13 +117,13 @@ enum attr_eff_engine_fields ROW_ADDR_BITS = 22, // Dispatcher set to last enum value - ATTR_EFF_DISPATCHER = ROW_ADDR_BITS, + DISPATCHER = ROW_ADDR_BITS, }; /// /// @brief enum list of SI attr fields to set from EFD /// -enum attr_si_engine_fields +enum class attr_si_engine_fields { // Template recursive base case ATTR_SI_BASE_CASE = 0, @@ -149,7 +149,7 @@ enum attr_si_engine_fields SI_GEARDOWN_MODE = 18, // Dispatcher set to last enum value - ATTR_SI_DISPATCHER = SI_GEARDOWN_MODE, + DISPATCHER = SI_GEARDOWN_MODE, }; /// @@ -157,7 +157,7 @@ enum attr_si_engine_fields /// @note these are attributes that are derived from other /// attributes or other APIs. /// -enum attr_engine_derived_fields +enum class attr_engine_derived_fields { // Attributes are set recursively from the bottom up. // When adding attrs that depend on other attrs @@ -173,22 +173,22 @@ enum attr_engine_derived_fields LOGICAL_RANKS = 3, // Dispatcher set to last enum value - ATTR_DERIVED_DISPATCHER = LOGICAL_RANKS, + DISPATCHER = LOGICAL_RANKS, }; /// /// @brief Forward declartion of traits for pre_data_engine /// @class preDataInitTraits -/// @tparam T proc_type (e.g. Nimbus, Axone, etc.) +/// @tparam P processor type (e.g. Nimbus, Axone, etc.) /// @tparam TT pre_data_init_fields (e.g. DIMM_TYPE, MRANK, etc.) /// -template< proc_type T, pre_data_init_fields TT > +template< proc_type P, pre_data_init_fields TT > class preDataInitTraits; /// /// @brief Traits associated with DIMM positioning /// @class dimmPosTraits -/// @tparam MC the MC type +/// @tparam MC the memory controller type /// template< mss::mc_type MC > class dimmPosTraits; @@ -196,10 +196,11 @@ class dimmPosTraits; /// /// @brief Forward declartion of traits for attrEngineTraits /// @class attrEngineTraits +/// @tparam P processor type (e.g. Nimbus, Axone, etc.) /// @tparam ET enum type /// @tparam T enum value /// -template < typename ET, ET T> +template < proc_type P, typename ET, ET T = ET::DISPATCHER> struct attrEngineTraits; /// @@ -211,14 +212,25 @@ struct attrEngineTraits; template < typename ET, ET T > struct setTimingTraits; +namespace gen +{ /// -/// @brief Forward declartion of traits for attrEnumTraits -/// @class attrEnumTraits -/// @tparam ET enum type -/// -template < typename ET > -struct attrEnumTraits; - +/// @brief Template recursive algorithm for setting attrs +/// @class attr_engine +/// @tparam P processor type (e.g. Nimbus, Axone, etc.) +/// @tparam ET enum type - conceptually a list of attrs to set +/// @tparam F enum value - the specific attr value from ET to set +/// @tparam TT associated traits for attr_engine +/// @tparam B dispatch tag - defaulted to false +/// +template < proc_type P, + typename ET, + ET F = ET::DISPATCHER, + typename TT = attrEngineTraits, + bool B = false> +struct attr_engine; + +}// gen }// mss #endif diff --git a/src/import/generic/memory/lib/data_engine/data_engine_utils.H b/src/import/generic/memory/lib/data_engine/data_engine_utils.H index 56d2b2d3b45..d43286d4421 100644 --- a/src/import/generic/memory/lib/data_engine/data_engine_utils.H +++ b/src/import/generic/memory/lib/data_engine/data_engine_utils.H @@ -310,10 +310,15 @@ inline fapi2::ReturnCode set_field(const fapi2::Target& i_target, { const auto l_attr_target = mss::find_target(i_target); typename TT::attr_type l_attr_list = {}; - FAPI_TRY( TT::get_attr(l_attr_target, l_attr_list) ); - FAPI_TRY( update_data(i_target, i_setting, TT::FFDC_CODE, l_attr_list) ); - FAPI_TRY( TT::set_attr(l_attr_target, l_attr_list) ); + FAPI_TRY( TT::get_attr(l_attr_target, l_attr_list), + "Failed get_attr() for %s", spd::c_str(i_target) ); + + FAPI_TRY( update_data(i_target, i_setting, TT::FFDC_CODE, l_attr_list), + "Failed update_data for %s", spd::c_str(i_target) ); + + FAPI_TRY( TT::set_attr(l_attr_target, l_attr_list), + "Failed set_attr() for %s", spd::c_str(i_target) ); fapi_try_exit: return fapi2::current_err; @@ -342,13 +347,16 @@ inline fapi2::ReturnCode set_field(const DT& i_data, // Get the attribute data in its entirety typename TT::attr_type l_attr_list = {}; - FAPI_TRY( TT::get_attr(l_attr_target, l_attr_list) ); + FAPI_TRY( TT::get_attr(l_attr_target, l_attr_list), + "Failed get_attr()"); // Update the portion of interest (can vary per dimm and/or rank) - FAPI_TRY( update_data(i_data, i_setting, TT::FFDC_CODE, l_attr_list) ); + FAPI_TRY( update_data(i_data, i_setting, TT::FFDC_CODE, l_attr_list), + "Failed update_data()"); // Set the contents back to the attribute - FAPI_TRY( TT::set_attr(l_attr_target, l_attr_list) ); + FAPI_TRY( TT::set_attr(l_attr_target, l_attr_list), + "Failed set_attr()"); fapi_try_exit: return fapi2::current_err; @@ -356,17 +364,14 @@ fapi_try_exit: /// /// @brief Template recursive algorithm for setting attrs -/// @class attr_engine +/// @class attr_engine - partial specialization when F != 0 +/// @tparam P processor type /// @tparam ET enum type - conceptually a list of attrs to set /// @tparam F enum value - the specific attr value from ET to set -/// @tparam TT defaulted to attrEngineTraits -/// @tparam V defaulted to void (dispatch tag) +/// @tparam TT associated traits for attr_engine /// -template < typename ET, - ET F, - typename TT = mss::attrEngineTraits, - typename V = void > -struct attr_engine +template < proc_type P, typename ET, ET F, typename TT > +struct attr_engine { /// /// @brief Sets attributes fields F in ET @@ -378,9 +383,12 @@ struct attr_engine static fapi2::ReturnCode single_set(const IT& i_input) { typename TT::attr_integral_type l_value = 0; - FAPI_TRY( TT::get_value_to_set(i_input, l_value) ); - FAPI_TRY( set_field(i_input, l_value) ); + FAPI_TRY( TT::get_value_to_set(i_input, l_value), + "Failed get_value_to_set() for proc_type: %d and enum val: %d", P, F); + + FAPI_TRY( set_field(i_input, l_value), + "Failed set_field() for proc_type: %d and enum val: %d", P, F); fapi_try_exit: return fapi2::current_err; @@ -395,12 +403,20 @@ struct attr_engine template < typename IT > static fapi2::ReturnCode set(const IT& i_input) { - FAPI_TRY( (attr_engine::single_set(i_input)) ); + FAPI_TRY( (attr_engine(F) == 0u>::single_set(i_input)), + "Failed attr_engine::single_set() for proc_type: %d and enum val: %d", P, F); // Compiler isn't smart enough to deduce F - 1u (decrementing the enum values by 1) // Cast needed to help the compiler deduce this value is an ET type // This does the recursive call to unroll a compile-time looping of a enum list of attrs to set - FAPI_TRY( (attr_engine < ET, static_cast(F - 1u) >::set(i_input)) ); + // The recursion stops at the base case where NEXT_FLD == 0u + { + constexpr ET NEXT_FLD = static_cast( static_cast(F) - 1u ); + using T = mss::attrEngineTraits; + + FAPI_TRY( (attr_engine (NEXT_FLD)>::set(i_input)), + "Failed (attr_engine ::set() for proc_type: %d and enum val: %d", P, F); + } fapi_try_exit: return fapi2::current_err; @@ -408,17 +424,15 @@ struct attr_engine }; /// -/// @brief Algorithm for setting SI attrs -/// @class attr_engine -/// @tparam ET enum type -/// @tparam F enum value -/// @note partial specialization when F == 0 (base case). Which is a NOP. +/// @brief Template recursive algorithm for setting attrs +/// @class attr_engine - partial specialization where F == 0u +/// @tparam P processor type +/// @tparam ET attr fields enum type (conceptually a list of attrs to set) +/// @tparam F enum value - the specific attr value from ET to set +/// @tparam TT associated traits for attr_engine /// -template < typename ET, ET F> -struct attr_engine< ET, - F, - mss::attrEngineTraits, - typename std::enable_if<0u == F>::type > +template < proc_type P, typename ET, ET F, typename TT > +struct attr_engine< P, ET, F, TT, true > { /// /// @brief Sets attributes fields F in ET @@ -429,6 +443,7 @@ struct attr_engine< ET, template < typename IT > static fapi2::ReturnCode set(const IT& i_input) { + FAPI_DBG("NO-OP: Reached base case (0) of recursive template for proc_type: %d and enum value: %d", P, F); return fapi2::FAPI2_RC_SUCCESS; } }; diff --git a/src/import/generic/memory/lib/data_engine/p9a/p9a_data_init_traits.H b/src/import/generic/memory/lib/data_engine/p9a/p9a_data_init_traits.H index 9122c12da5d..f8b5abdc9f0 100644 --- a/src/import/generic/memory/lib/data_engine/p9a/p9a_data_init_traits.H +++ b/src/import/generic/memory/lib/data_engine/p9a/p9a_data_init_traits.H @@ -51,7 +51,7 @@ namespace mss /// @note pre_data_init_fields, DIMM_TYPE specialization /// template<> -struct attrEngineTraits +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DIMM_TYPE_Type; using attr_integral_type = std::remove_all_extents::type; @@ -124,7 +124,7 @@ struct attrEngineTraits /// @note pre_data_init_fields, DRAM_GEN specialization /// template<> -struct attrEngineTraits +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DRAM_GEN_Type; using attr_integral_type = std::remove_all_extents::type; @@ -195,7 +195,7 @@ struct attrEngineTraits /// @note pre_data_init_fields, HOST_TO_DDR_SPEED_RATIO specialization /// template<> -struct attrEngineTraits +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_HOST_TO_DDR_SPEED_RATIO_Type; using attr_integral_type = std::remove_all_extents::type; @@ -273,7 +273,7 @@ struct attrEngineTraits /// @note pre_data_init_fields, HYBRID specialization /// template<> -struct attrEngineTraits +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_HYBRID_Type; using attr_integral_type = std::remove_all_extents::type; @@ -345,7 +345,7 @@ struct attrEngineTraits /// @note pre_data_init_fields, HYBRID_MEDIA specialization /// template<> -struct attrEngineTraits +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_HYBRID_MEMORY_TYPE_Type; using attr_integral_type = std::remove_all_extents::type; @@ -417,7 +417,7 @@ struct attrEngineTraits /// @note pre_data_init_fields, MRANKS specialization /// template<> -struct attrEngineTraits +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_NUM_MASTER_RANKS_PER_DIMM_Type; using attr_integral_type = std::remove_all_extents::type; @@ -489,7 +489,7 @@ struct attrEngineTraits /// @note DIMM_RANKS_CNFG specialization /// template<> -struct attrEngineTraits +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_EFF_DIMM_RANKS_CONFIGED_Type; @@ -536,7 +536,9 @@ struct attrEngineTraits // Make sure the number of master ranks is setup uint8_t l_master_ranks = 0; - FAPI_TRY( (attrEngineTraits::get_value_to_set(i_spd_data, l_master_ranks)) ); + FAPI_TRY( (attrEngineTraits::get_value_to_set( + i_spd_data, + l_master_ranks)) ); FAPI_TRY( l_ranks_configed.setBit(0, l_master_ranks), "%s. Failed to setBit", spd::c_str(i_spd_data.get_dimm_target()) ); diff --git a/src/import/generic/memory/lib/data_engine/p9n/p9n_data_init_traits.H b/src/import/generic/memory/lib/data_engine/p9n/p9n_data_init_traits.H index cf520c148a2..cb70955c0d8 100644 --- a/src/import/generic/memory/lib/data_engine/p9n/p9n_data_init_traits.H +++ b/src/import/generic/memory/lib/data_engine/p9n/p9n_data_init_traits.H @@ -50,7 +50,7 @@ namespace mss /// @note NIMBUS, DIMM_TYPE specialization /// template<> -class preDataInitTraits +class preDataInitTraits { public: using attr_type = fapi2::ATTR_EFF_DIMM_TYPE_Type; @@ -91,7 +91,7 @@ class preDataInitTraits /// @note NIMBUS, DRAM_GEN specialization /// template<> -class preDataInitTraits +class preDataInitTraits { public: using attr_type = fapi2::ATTR_EFF_DRAM_GEN_Type; @@ -132,7 +132,7 @@ class preDataInitTraits /// @note NIMBUS, HYBRID specialization /// template<> -class preDataInitTraits +class preDataInitTraits { public: using attr_type = fapi2::ATTR_EFF_HYBRID_Type; @@ -173,7 +173,7 @@ class preDataInitTraits /// @note NIMBUS, HYBRID_MEDIA specialization /// template<> -class preDataInitTraits +class preDataInitTraits { public: using attr_type = fapi2::ATTR_EFF_HYBRID_MEMORY_TYPE_Type; @@ -214,7 +214,7 @@ class preDataInitTraits /// @note NIMBUS, MRANKS specialization /// template<> -class preDataInitTraits +class preDataInitTraits { public: using attr_type = fapi2::ATTR_EFF_NUM_MASTER_RANKS_PER_DIMM_Type; @@ -255,7 +255,7 @@ class preDataInitTraits /// @note NIMBUS, DIMM_RANKS_CNFG specialization /// template<> -struct preDataInitTraits +struct preDataInitTraits { using attr_type = fapi2::ATTR_EFF_DIMM_RANKS_CONFIGED_Type; static const fapi2::TargetType TARGET_TYPE = fapi2::ATTR_EFF_NUM_MASTER_RANKS_PER_DIMM_TargetType; @@ -292,7 +292,7 @@ struct preDataInitTraits /// @note AXONE, DIMM_TYPE_METADATA specialization /// template<> -struct attrEngineTraits +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_DIMM_TYPE_METADATA_Type; using attr_integral_type = std::remove_all_extents::type; @@ -373,7 +373,7 @@ class dimmPosTraits /// @note generic_metadata_fields, DRAM_GEN_METADATA specialization /// template<> -struct attrEngineTraits +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_DRAM_GEN_METADATA_Type; using attr_integral_type = std::remove_all_extents::type; @@ -423,7 +423,7 @@ struct attrEngineTraits /// @note generic_metadata_fields, DIMM_POS_METADATA specialization /// template<> -struct attrEngineTraits +struct attrEngineTraits { using attr_type = fapi2::ATTR_MEM_DIMM_POS_METADATA_Type; using attr_integral_type = std::remove_all_extents::type; @@ -468,17 +468,6 @@ struct attrEngineTraits } }; -/// -/// @brief Value traits for attr_eff_engine_fields -/// @class attrEngineTraits -/// @note attr_eff_engine_fields -/// -template < > -struct attrEnumTraits -{ - static constexpr size_t DISPATCHER = ATTR_METADATA_DISPATCHER; -}; - }// mss #endif diff --git a/src/import/generic/memory/lib/data_engine/pre_data_init.H b/src/import/generic/memory/lib/data_engine/pre_data_init.H index 307c08aa1ff..52e358fc266 100644 --- a/src/import/generic/memory/lib/data_engine/pre_data_init.H +++ b/src/import/generic/memory/lib/data_engine/pre_data_init.H @@ -232,7 +232,7 @@ class pre_data_engine FAPI_TRY(iv_spd_data.base_module(l_base_module_type)); FAPI_TRY(lookup_table_check(iv_dimm, BASE_MODULE_TYPE_MAP, SET_ATTR_DIMM_TYPE, l_base_module_type, l_dimm_type)); - FAPI_TRY( (set_field(iv_dimm, l_dimm_type)) ); + FAPI_TRY( (set_field(iv_dimm, l_dimm_type)) ); fapi_try_exit: return fapi2::current_err; @@ -250,7 +250,7 @@ class pre_data_engine FAPI_TRY(iv_spd_data.device_type(l_device_type)); FAPI_TRY(lookup_table_check(iv_dimm, DRAM_GEN_MAP, SET_ATTR_DRAM_GEN, l_device_type, l_dram_gen)); - FAPI_TRY( (set_field(iv_dimm, l_dram_gen)) ); + FAPI_TRY( (set_field(iv_dimm, l_dram_gen)) ); fapi_try_exit: return fapi2::current_err; @@ -268,7 +268,7 @@ class pre_data_engine FAPI_TRY(iv_spd_data.hybrid(l_spd_hybrid_type)); FAPI_TRY(lookup_table_check(iv_dimm, HYBRID_MAP, SET_ATTR_HYBRID, l_spd_hybrid_type, l_hybrid)); - FAPI_TRY( (set_field(iv_dimm, l_hybrid)) ); + FAPI_TRY( (set_field(iv_dimm, l_hybrid)) ); fapi_try_exit: return fapi2::current_err; @@ -286,7 +286,7 @@ class pre_data_engine FAPI_TRY(iv_spd_data.hybrid_media(l_spd_hybrid_media)); FAPI_TRY(lookup_table_check(iv_dimm, HYBRID_MAP, SET_ATTR_HYBRID, l_spd_hybrid_media, l_hybrid_media)); - FAPI_TRY( (set_field(iv_dimm, l_hybrid_media)) ); + FAPI_TRY( (set_field(iv_dimm, l_hybrid_media)) ); fapi_try_exit: return fapi2::current_err; @@ -301,7 +301,7 @@ class pre_data_engine uint8_t l_master_ranks = 0; FAPI_TRY( get_master_ranks(l_master_ranks) ); - FAPI_TRY( (set_field(iv_dimm, l_master_ranks)) ); + FAPI_TRY( (set_field(iv_dimm, l_master_ranks)) ); fapi_try_exit: return fapi2::current_err; @@ -324,7 +324,7 @@ class pre_data_engine FAPI_TRY( l_ranks_configed.setBit(0, l_master_ranks), "%s. Failed to setBit", spd::c_str(iv_dimm) ); - FAPI_TRY( (set_field(iv_dimm, uint8_t(l_ranks_configed))) ); + FAPI_TRY( (set_field(iv_dimm, uint8_t(l_ranks_configed))) ); fapi_try_exit: return fapi2::current_err; @@ -395,7 +395,8 @@ inline fapi2::ReturnCode set_pre_init_attrs( const fapi2 mss::spd::c_str(i_target) ); // Adding metadata c-str fields derived from attrs set above - FAPI_TRY( mss::attr_derived_engine::set(i_target) ); + FAPI_TRY( (mss::gen::attr_engine::set(i_target)), + "Failed attr_engine::set for %s", mss::spd::c_str(i_target) ); fapi_try_exit: return fapi2::current_err; diff --git a/src/import/generic/memory/lib/utils/dimm/mss_timing.H b/src/import/generic/memory/lib/utils/dimm/mss_timing.H index aa1915e3d26..8fd169508d1 100644 --- a/src/import/generic/memory/lib/utils/dimm/mss_timing.H +++ b/src/import/generic/memory/lib/utils/dimm/mss_timing.H @@ -213,7 +213,7 @@ inline fapi2::ReturnCode calc_trfc_dlr(const fapi2::Target > TRFC_DLR1 = + const std::vector > TRFC_DLR1 = { // { density in GBs, tRFC4(min) in picoseconds } {4, 90000}, @@ -225,7 +225,7 @@ inline fapi2::ReturnCode calc_trfc_dlr(const fapi2::Target > TRFC_DLR2 = + const std::vector > TRFC_DLR2 = { // { density in GBs, tRFC4(min) in picoseconds } {4, 55000}, @@ -237,7 +237,7 @@ inline fapi2::ReturnCode calc_trfc_dlr(const fapi2::Target > TRFC_DLR4 = + const std::vector > TRFC_DLR4 = { // { density in GBs, tRFC4(min) in picoseconds } {4, 40000},