summaryrefslogtreecommitdiffstats
path: root/src/import/chips
diff options
context:
space:
mode:
authorAndre Marin <aamarin@us.ibm.com>2019-07-09 15:50:06 -0400
committerDaniel M Crowell <dcrowell@us.ibm.com>2019-07-19 09:07:03 -0500
commit831f9e0d8b3297f38acd3f059b853f5711877530 (patch)
treea9b405fc568edca26ce2239fc15adc442c520794 /src/import/chips
parentdd6aa0faadde7069f8bf628b5557b98206730c2c (diff)
downloadtalos-hostboot-831f9e0d8b3297f38acd3f059b853f5711877530.tar.gz
talos-hostboot-831f9e0d8b3297f38acd3f059b853f5711877530.zip
Fix HB error with -Os compile flag due to eff_config
Top level template is NOT unique between the two files when using the -Os compile flag. The linker just picks the wrong file template definition between p9a and p9n. In -O3 everything is left in place, inline so it just works which is why we didn't hit this error before in HB Change-Id: I529f93fc91684ae14a132d96f518a5f66f036d4b Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/80167 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com> Reviewed-by: Louis Stermole <stermole@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Dev-Ready: STEPHEN GLANCY <sglancy@us.ibm.com> Reviewed-by: Jennifer A Stofer <stofer@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/80229 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import/chips')
-rw-r--r--src/import/chips/ocmb/common/procedures/hwp/pmic/lib/eff_config/pmic_attr_engine_traits.H333
-rw-r--r--src/import/chips/ocmb/common/procedures/hwp/pmic/lib/eff_config/pmic_efd_processing.C3
-rw-r--r--src/import/chips/ocmb/common/procedures/hwp/pmic/lib/eff_config/pmic_efd_processing.H4
-rw-r--r--src/import/chips/ocmb/common/procedures/hwp/pmic/lib/utils/pmic_consts.H4
-rw-r--r--src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/eff_config/explorer_attr_engine_traits.H102
-rw-r--r--src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/shared/exp_consts.H6
-rw-r--r--src/import/chips/p9a/procedures/hwp/memory/p9a_mss_eff_config.C10
-rw-r--r--src/import/chips/p9a/procedures/hwp/memory/p9a_mss_freq.C9
8 files changed, 247 insertions, 224 deletions
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 4f5d51df3..cd4ee2a02 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<pmic::attr_eff_engine_fields, pmic::ATTR_EFF_BASE_CASE> {};
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::ATTR_EFF_BASE_CASE> {};
///
/// @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<pmic::attr_eff_engine_fields, pmic::DRAM_MODULE_HEIGHT>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::DRAM_MODULE_HEIGHT>
{
using attr_type = fapi2::ATTR_MEM_EFF_DRAM_MODULE_HEIGHT_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -115,10 +117,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::DRAM_MODULE_HEIGHT>
///
/// @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<pmic::attr_eff_engine_fields, pmic::PMIC0_MFG_ID>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_MFG_ID>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_MFG_ID_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -165,10 +168,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_MFG_ID>
///
/// @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<pmic::attr_eff_engine_fields, pmic::PMIC0_SWA_VOLTAGE_SETTING>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWA_VOLTAGE_SETTING>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWA_VOLTAGE_SETTING_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -215,10 +219,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWA_VOLTAGE_SE
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWA_VOLTAGE_RANGE_SELECT specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWA_VOLTAGE_RANGE_SELECT partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWA_VOLTAGE_RANGE_SELECT>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWA_VOLTAGE_RANGE_SELECT>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWA_VOLTAGE_RANGE_SELECT_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -265,10 +270,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWA_VOLTAGE_RA
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWA_VOLTAGE_OFFSET specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWA_VOLTAGE_OFFSET partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWA_VOLTAGE_OFFSET>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWA_VOLTAGE_OFFSET>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWA_VOLTAGE_OFFSET_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -323,10 +329,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWA_VOLTAGE_OF
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWA_SEQUENCE_DELAY specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWA_SEQUENCE_DELAY partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWA_SEQUENCE_DELAY>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWA_SEQUENCE_DELAY>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWA_SEQUENCE_DELAY_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -373,10 +380,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWA_SEQUENCE_D
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWA_SEQUENCE_ORDER specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWA_SEQUENCE_ORDER partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWA_SEQUENCE_ORDER>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWA_SEQUENCE_ORDER>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWA_SEQUENCE_ORDER_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -423,10 +431,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWA_SEQUENCE_O
///
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWB_VOLTAGE_SETTING specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWB_VOLTAGE_SETTING partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWB_VOLTAGE_SETTING>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWB_VOLTAGE_SETTING>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWB_VOLTAGE_SETTING_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -473,10 +482,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWB_VOLTAGE_SE
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWB_VOLTAGE_RANGE_SELECT specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWB_VOLTAGE_RANGE_SELECT partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWB_VOLTAGE_RANGE_SELECT>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWB_VOLTAGE_RANGE_SELECT>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWB_VOLTAGE_RANGE_SELECT_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -523,10 +533,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWB_VOLTAGE_RA
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWB_VOLTAGE_OFFSET specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWB_VOLTAGE_OFFSET partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWB_VOLTAGE_OFFSET>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWB_VOLTAGE_OFFSET>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWB_VOLTAGE_OFFSET_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -581,10 +592,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWB_VOLTAGE_OF
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWB_SEQUENCE_DELAY specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWB_SEQUENCE_DELAY partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWB_SEQUENCE_DELAY>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWB_SEQUENCE_DELAY>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWB_SEQUENCE_DELAY_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -631,10 +643,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWB_SEQUENCE_D
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWB_SEQUENCE_ORDER specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWB_SEQUENCE_ORDER partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWB_SEQUENCE_ORDER>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWB_SEQUENCE_ORDER>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWB_SEQUENCE_ORDER_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -682,10 +695,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWB_SEQUENCE_O
///
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWC_VOLTAGE_SETTING specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWC_VOLTAGE_SETTING partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWC_VOLTAGE_SETTING>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWC_VOLTAGE_SETTING>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWC_VOLTAGE_SETTING_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -732,10 +746,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWC_VOLTAGE_SE
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWC_VOLTAGE_RANGE_SELECT specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWC_VOLTAGE_RANGE_SELECT partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWC_VOLTAGE_RANGE_SELECT>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWC_VOLTAGE_RANGE_SELECT>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWC_VOLTAGE_RANGE_SELECT_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -782,10 +797,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWC_VOLTAGE_RA
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWC_VOLTAGE_OFFSET specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWC_VOLTAGE_OFFSET partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWC_VOLTAGE_OFFSET>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWC_VOLTAGE_OFFSET>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWC_VOLTAGE_OFFSET_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -840,10 +856,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWC_VOLTAGE_OF
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWC_SEQUENCE_DELAY specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWC_SEQUENCE_DELAY partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWC_SEQUENCE_DELAY>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWC_SEQUENCE_DELAY>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWC_SEQUENCE_DELAY_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -890,10 +907,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWC_SEQUENCE_D
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWC_SEQUENCE_ORDER specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWC_SEQUENCE_ORDER partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWC_SEQUENCE_ORDER>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWC_SEQUENCE_ORDER>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWC_SEQUENCE_ORDER_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -941,10 +959,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWC_SEQUENCE_O
///
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWD_VOLTAGE_SETTING specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWD_VOLTAGE_SETTING partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWD_VOLTAGE_SETTING>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWD_VOLTAGE_SETTING>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWD_VOLTAGE_SETTING_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -991,10 +1010,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWD_VOLTAGE_SE
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWD_VOLTAGE_RANGE_SELECT specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWD_VOLTAGE_RANGE_SELECT partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWD_VOLTAGE_RANGE_SELECT>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWD_VOLTAGE_RANGE_SELECT>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWD_VOLTAGE_RANGE_SELECT_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1041,10 +1061,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWD_VOLTAGE_RA
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWD_VOLTAGE_OFFSET specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWD_VOLTAGE_OFFSET partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWD_VOLTAGE_OFFSET>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWD_VOLTAGE_OFFSET>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWD_VOLTAGE_OFFSET_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1099,10 +1120,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWD_VOLTAGE_OF
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWD_SEQUENCE_DELAY specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWD_SEQUENCE_DELAY partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWD_SEQUENCE_DELAY>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWD_SEQUENCE_DELAY>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWD_SEQUENCE_DELAY_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1149,10 +1171,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWD_SEQUENCE_D
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_SWD_SEQUENCE_ORDER specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_SWD_SEQUENCE_ORDER partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWD_SEQUENCE_ORDER>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_SWD_SEQUENCE_ORDER>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_SWD_SEQUENCE_ORDER_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1199,10 +1222,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_SWD_SEQUENCE_O
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC0_PHASE_COMB specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC0_PHASE_COMB partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_PHASE_COMB>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC0_PHASE_COMB>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC0_PHASE_COMB_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1254,10 +1278,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC0_PHASE_COMB>
///
/// @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<pmic::attr_eff_engine_fields, pmic::PMIC1_MFG_ID>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_MFG_ID>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_MFG_ID_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1304,10 +1329,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_MFG_ID>
///
/// @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<pmic::attr_eff_engine_fields, pmic::PMIC1_SWA_VOLTAGE_SETTING>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWA_VOLTAGE_SETTING>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWA_VOLTAGE_SETTING_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1354,10 +1380,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWA_VOLTAGE_SE
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWA_VOLTAGE_RANGE_SELECT specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWA_VOLTAGE_RANGE_SELECT partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWA_VOLTAGE_RANGE_SELECT>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWA_VOLTAGE_RANGE_SELECT>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWA_VOLTAGE_RANGE_SELECT_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1404,10 +1431,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWA_VOLTAGE_RA
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWA_VOLTAGE_OFFSET specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWA_VOLTAGE_OFFSET partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWA_VOLTAGE_OFFSET>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWA_VOLTAGE_OFFSET>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWA_VOLTAGE_OFFSET_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1462,10 +1490,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWA_VOLTAGE_OF
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWA_SEQUENCE_DELAY specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWA_SEQUENCE_DELAY partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWA_SEQUENCE_DELAY>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWA_SEQUENCE_DELAY>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWA_SEQUENCE_DELAY_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1512,10 +1541,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWA_SEQUENCE_D
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWA_SEQUENCE_ORDER specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWA_SEQUENCE_ORDER partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWA_SEQUENCE_ORDER>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWA_SEQUENCE_ORDER>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWA_SEQUENCE_ORDER_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1562,10 +1592,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWA_SEQUENCE_O
///
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWB_VOLTAGE_SETTING specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWB_VOLTAGE_SETTING partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWB_VOLTAGE_SETTING>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWB_VOLTAGE_SETTING>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWB_VOLTAGE_SETTING_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1612,10 +1643,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWB_VOLTAGE_SE
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWB_VOLTAGE_RANGE_SELECT specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWB_VOLTAGE_RANGE_SELECT partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWB_VOLTAGE_RANGE_SELECT>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWB_VOLTAGE_RANGE_SELECT>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWB_VOLTAGE_RANGE_SELECT_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1662,10 +1694,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWB_VOLTAGE_RA
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWB_VOLTAGE_OFFSET specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWB_VOLTAGE_OFFSET partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWB_VOLTAGE_OFFSET>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWB_VOLTAGE_OFFSET>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWB_VOLTAGE_OFFSET_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1720,10 +1753,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWB_VOLTAGE_OF
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWB_SEQUENCE_DELAY specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWB_SEQUENCE_DELAY partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWB_SEQUENCE_DELAY>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWB_SEQUENCE_DELAY>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWB_SEQUENCE_DELAY_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1770,10 +1804,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWB_SEQUENCE_D
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWB_SEQUENCE_ORDER specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWB_SEQUENCE_ORDER partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWB_SEQUENCE_ORDER>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWB_SEQUENCE_ORDER>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWB_SEQUENCE_ORDER_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1820,10 +1855,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWB_SEQUENCE_O
///
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWC_VOLTAGE_SETTING specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWC_VOLTAGE_SETTING partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWC_VOLTAGE_SETTING>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWC_VOLTAGE_SETTING>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWC_VOLTAGE_SETTING_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1870,10 +1906,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWC_VOLTAGE_SE
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWC_VOLTAGE_RANGE_SELECT specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWC_VOLTAGE_RANGE_SELECT partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWC_VOLTAGE_RANGE_SELECT>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWC_VOLTAGE_RANGE_SELECT>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWC_VOLTAGE_RANGE_SELECT_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1920,10 +1957,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWC_VOLTAGE_RA
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWC_VOLTAGE_OFFSET specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWC_VOLTAGE_OFFSET partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWC_VOLTAGE_OFFSET>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWC_VOLTAGE_OFFSET>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWC_VOLTAGE_OFFSET_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -1978,10 +2016,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWC_VOLTAGE_OF
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWC_SEQUENCE_DELAY specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWC_SEQUENCE_DELAY partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWC_SEQUENCE_DELAY>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWC_SEQUENCE_DELAY>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWC_SEQUENCE_DELAY_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -2028,10 +2067,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWC_SEQUENCE_D
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWC_SEQUENCE_ORDER specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWC_SEQUENCE_ORDER partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWC_SEQUENCE_ORDER>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWC_SEQUENCE_ORDER>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWC_SEQUENCE_ORDER_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -2078,10 +2118,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWC_SEQUENCE_O
///
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWD_VOLTAGE_SETTING specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWD_VOLTAGE_SETTING partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWD_VOLTAGE_SETTING>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWD_VOLTAGE_SETTING>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWD_VOLTAGE_SETTING_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -2128,10 +2169,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWD_VOLTAGE_SE
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWD_VOLTAGE_RANGE_SELECT specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWD_VOLTAGE_RANGE_SELECT partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWD_VOLTAGE_RANGE_SELECT>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWD_VOLTAGE_RANGE_SELECT>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWD_VOLTAGE_RANGE_SELECT_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -2178,10 +2220,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWD_VOLTAGE_RA
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWD_VOLTAGE_OFFSET specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWD_VOLTAGE_OFFSET partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWD_VOLTAGE_OFFSET>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWD_VOLTAGE_OFFSET>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWD_VOLTAGE_OFFSET_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -2236,10 +2279,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWD_VOLTAGE_OF
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWD_SEQUENCE_DELAY specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWD_SEQUENCE_DELAY partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWD_SEQUENCE_DELAY>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWD_SEQUENCE_DELAY>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWD_SEQUENCE_DELAY_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -2286,10 +2330,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWD_SEQUENCE_D
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_SWD_SEQUENCE_ORDER specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_SWD_SEQUENCE_ORDER partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWD_SEQUENCE_ORDER>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_SWD_SEQUENCE_ORDER>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_SWD_SEQUENCE_ORDER_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -2336,10 +2381,11 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_SWD_SEQUENCE_O
//
/// @brief Traits for attr_engine
/// @class attrEngineTraits
-/// @note attr_eff_engine_fields, PMIC1_PHASE_COMB specialization
+/// @tparam P processor type
+/// @note P, pmic::attr_eff_engine_fields, PMIC1_PHASE_COMB partial specialization
///
-template<>
-struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_PHASE_COMB>
+template< proc_type P>
+struct attrEngineTraits<P, pmic::attr_eff_engine_fields, pmic::attr_eff_engine_fields::PMIC1_PHASE_COMB>
{
using attr_type = fapi2::ATTR_MEM_EFF_PMIC1_PHASE_COMB_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -2383,17 +2429,6 @@ struct attrEngineTraits<pmic::attr_eff_engine_fields, pmic::PMIC1_PHASE_COMB>
}
};
-///
-/// @brief Value traits for attr_eff_engine_fields
-/// @class attrEngineTraits
-/// @note attr_eff_engine_fields
-///
-template < >
-struct attrEnumTraits<pmic::attr_eff_engine_fields>
-{
- 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 58bbc9aa2..32e3157cb 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 <fapi2.H>
-#include <generic/memory/lib/data_engine/data_engine_traits_def.H>
-#include <generic/memory/lib/data_engine/data_engine.H>
-#include <generic/memory/lib/spd/spd_facade.H>
#include <lib/mss_pmic_attribute_setters.H>
#include <lib/eff_config/pmic_efd_processing.H>
#include <lib/utils/pmic_consts.H>
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 9a6997889..e09d8087f 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 <fapi2.H>
-#include <generic/memory/lib/data_engine/data_engine_traits_def.H>
-#include <generic/memory/lib/data_engine/data_engine.H>
-#include <generic/memory/lib/spd/spd_facade.H>
+#include <generic/memory/lib/spd/ddimm/efd_decoder.H>
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 96d7e9932..8908d8779 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 ff72e2e65..8ed2289b5 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<exp::attr_eff_engine_fields, exp::ATTR_EFF_BASE_CASE> {};
+template< proc_type P >
+struct attrEngineTraits<P, exp::attr_eff_engine_fields, exp::attr_eff_engine_fields::ATTR_EFF_BASE_CASE> {};
///
/// @brief Traits for attr_engine
/// @class attrEngineTraits
+/// @tparam P processor type
/// @note attr_eff_engine_fields, ADDRESS_MIRROR specialization
///
-template<>
-struct attrEngineTraits<exp::attr_eff_engine_fields, exp::ADDRESS_MIRROR>
+template< proc_type P >
+struct attrEngineTraits<P, exp::attr_eff_engine_fields, exp::attr_eff_engine_fields::ADDRESS_MIRROR>
{
using attr_type = fapi2::ATTR_MEM_EXP_DRAM_ADDRESS_MIRRORING_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -133,10 +135,11 @@ struct attrEngineTraits<exp::attr_eff_engine_fields, exp::ADDRESS_MIRROR>
///
/// @brief Traits for attr_engine
/// @class attrEngineTraits
+/// @tparam P processor type
/// @note attr_eff_engine_fields, BYTE_ENABLES specialization
///
-template<>
-struct attrEngineTraits<exp::attr_eff_engine_fields, exp::BYTE_ENABLES>
+template< proc_type P >
+struct attrEngineTraits<P, exp::attr_eff_engine_fields, exp::attr_eff_engine_fields::BYTE_ENABLES>
{
using attr_type = fapi2::ATTR_MEM_EFF_BYTE_ENABLES_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -183,10 +186,11 @@ struct attrEngineTraits<exp::attr_eff_engine_fields, exp::BYTE_ENABLES>
///
/// @brief Traits for attr_engine
/// @class attrEngineTraits
+/// @tparam P processor type
/// @note attr_eff_engine_fields, NIBBLE_ENABLES specialization
///
-template<>
-struct attrEngineTraits<exp::attr_eff_engine_fields, exp::NIBBLE_ENABLES>
+template< proc_type P >
+struct attrEngineTraits<P, exp::attr_eff_engine_fields, exp::attr_eff_engine_fields::NIBBLE_ENABLES>
{
using attr_type = fapi2::ATTR_MEM_EFF_NIBBLE_ENABLES_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -233,10 +237,11 @@ struct attrEngineTraits<exp::attr_eff_engine_fields, exp::NIBBLE_ENABLES>
///
/// @brief Traits for attr_engine
/// @class attrEngineTraits
+/// @tparam P processor type
/// @note attr_eff_engine_fields, SPD_TAA_MIN specialization
///
-template<>
-struct attrEngineTraits<exp::attr_eff_engine_fields, exp::SPD_TAA_MIN>
+template< proc_type P >
+struct attrEngineTraits<P, exp::attr_eff_engine_fields, exp::attr_eff_engine_fields::SPD_TAA_MIN>
{
using attr_type = fapi2::ATTR_MEM_EXP_SPD_TAA_MIN_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -276,17 +281,19 @@ struct attrEngineTraits<exp::attr_eff_engine_fields, exp::SPD_TAA_MIN>
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<exp::attr_eff_engine_fields, exp::SPD_TAA_MIN>(i_spd_data, o_setting);
+ return mss::calc_spd_time_in_ps<exp::attr_eff_engine_fields, exp::attr_eff_engine_fields::SPD_TAA_MIN>(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<exp::attr_eff_engine_fields, exp::FOUR_RANK_MODE>
+template< proc_type P >
+struct attrEngineTraits<P, exp::attr_eff_engine_fields, exp::attr_eff_engine_fields::FOUR_RANK_MODE>
{
using attr_type = fapi2::ATTR_MEM_EFF_FOUR_RANK_MODE_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -340,10 +347,11 @@ struct attrEngineTraits<exp::attr_eff_engine_fields, exp::FOUR_RANK_MODE>
///
/// @brief Traits for attr_engine
/// @class attrEngineTraits
+/// @tparam P processor type
/// @note attr_eff_engine_fields, DDP_COMPATIBILITY specialization
///
-template<>
-struct attrEngineTraits<exp::attr_eff_engine_fields, exp::DDP_COMPATIBILITY>
+template< proc_type P >
+struct attrEngineTraits<P, exp::attr_eff_engine_fields, exp::attr_eff_engine_fields::DDP_COMPATIBILITY>
{
using attr_type = fapi2::ATTR_MEM_EFF_DDP_COMPATIBILITY_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -397,10 +405,11 @@ struct attrEngineTraits<exp::attr_eff_engine_fields, exp::DDP_COMPATIBILITY>
///
/// @brief Traits for attr_engine
/// @class attrEngineTraits
+/// @tparam P processor type
/// @note attr_eff_engine_fields, TSV_8H_SUPPORT specialization
///
-template<>
-struct attrEngineTraits<exp::attr_eff_engine_fields, exp::TSV_8H_SUPPORT>
+template< proc_type P >
+struct attrEngineTraits<P, exp::attr_eff_engine_fields, exp::attr_eff_engine_fields::TSV_8H_SUPPORT>
{
using attr_type = fapi2::ATTR_MEM_EFF_TSV_8H_SUPPORT_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -447,10 +456,11 @@ struct attrEngineTraits<exp::attr_eff_engine_fields, exp::TSV_8H_SUPPORT>
///
/// @brief Traits for attr_engine
/// @class attrEngineTraits
+/// @tparam P processor type
/// @note attr_eff_engine_fields, PSTATES specialization
///
-template<>
-struct attrEngineTraits<exp::attr_eff_engine_fields, exp::PSTATES>
+template< proc_type P >
+struct attrEngineTraits<P, exp::attr_eff_engine_fields, exp::attr_eff_engine_fields::PSTATES>
{
using attr_type = fapi2::ATTR_MEM_EFF_PSTATES_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -497,10 +507,11 @@ struct attrEngineTraits<exp::attr_eff_engine_fields, exp::PSTATES>
///
/// @brief Traits for attr_engine
/// @class attrEngineTraits
+/// @tparam P processor type
/// @note attr_eff_engine_fields, MRAM_SUPPORT specialization
///
-template<>
-struct attrEngineTraits<exp::attr_eff_engine_fields, exp::MRAM_SUPPORT>
+template< proc_type P >
+struct attrEngineTraits<P, exp::attr_eff_engine_fields, exp::attr_eff_engine_fields::MRAM_SUPPORT>
{
using attr_type = fapi2::ATTR_MEM_EFF_MRAM_SUPPORT_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -554,10 +565,11 @@ struct attrEngineTraits<exp::attr_eff_engine_fields, exp::MRAM_SUPPORT>
///
/// @brief Traits for attr_engine
/// @class attrEngineTraits
+/// @tparam P processor type
/// @note attr_eff_engine_fields, SPD_CL_SUPPORTED specialization
///
-template<>
-struct attrEngineTraits<exp::attr_eff_engine_fields, exp::SPD_CL_SUPPORTED>
+template< proc_type P >
+struct attrEngineTraits<P, exp::attr_eff_engine_fields, exp::attr_eff_engine_fields::SPD_CL_SUPPORTED>
{
using attr_type = fapi2::ATTR_MEM_EXP_SPD_CL_SUPPORTED_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -610,10 +622,11 @@ struct attrEngineTraits<exp::attr_eff_engine_fields, exp::SPD_CL_SUPPORTED>
///
/// @brief Traits for pre_data_engine
/// @class attrEngineTraits
+/// @tparam P processor type
/// @note AXONE, DIMM_TYPE_METADATA specialization
///
-template<>
-struct attrEngineTraits<generic_metadata_fields, DIMM_TYPE_METADATA>
+template< proc_type P >
+struct attrEngineTraits<P, generic_metadata_fields, generic_metadata_fields::DIMM_TYPE_METADATA>
{
using attr_type = fapi2::ATTR_MEM_DIMM_TYPE_METADATA_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -694,10 +707,11 @@ class dimmPosTraits<mss::mc_type::EXPLORER>
///
/// @brief Traits for pre_data_engine
/// @class attrEngineTraits
+/// @tparam P processor type
/// @note generic_metadata_fields, DRAM_GEN_METADATA specialization
///
-template<>
-struct attrEngineTraits<generic_metadata_fields, DRAM_GEN_METADATA>
+template< proc_type P >
+struct attrEngineTraits<P, generic_metadata_fields, generic_metadata_fields::DRAM_GEN_METADATA>
{
using attr_type = fapi2::ATTR_MEM_DRAM_GEN_METADATA_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -744,10 +758,11 @@ struct attrEngineTraits<generic_metadata_fields, DRAM_GEN_METADATA>
///
/// @brief Traits for pre_data_engine
/// @class attrEngineTraits
+/// @tparam P processor type
/// @note generic_metadata_fields, DIMM_POS_METADATA specialization
///
-template<>
-struct attrEngineTraits<generic_metadata_fields, DIMM_POS_METADATA>
+template< proc_type P >
+struct attrEngineTraits<P, generic_metadata_fields, generic_metadata_fields::DIMM_POS_METADATA>
{
using attr_type = fapi2::ATTR_MEM_DIMM_POS_METADATA_Type;
using attr_integral_type = std::remove_all_extents<attr_type>::type;
@@ -792,33 +807,6 @@ struct attrEngineTraits<generic_metadata_fields, DIMM_POS_METADATA>
}
};
-////////////////////////////////////////////////////////
-// 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<exp::attr_eff_engine_fields>
-{
- 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<generic_metadata_fields>
-{
- 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 910213e59..b2b93fedf 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 059121ac3..2e20bac7a 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<fapi2::TARGET_TYPE_MEM
FAPI_TRY( mss::efd::factory(l_ocmb, l_vpd_raw, l_vpd_info.iv_rank, l_efd_data) );
// Set up SI ATTRS
- FAPI_TRY( mss::attr_si_engine<mss::attr_si_engine_fields>::set(l_efd_data) );
+ FAPI_TRY( (mss::gen::attr_engine<mss::proc_type::AXONE, mss::attr_si_engine_fields>::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<fapi2::TARGET_TYPE_MEM
FAPI_TRY( l_rc, "Failed to initialize SPD facade for %s", mss::spd::c_str(dimm) );
// Set up generic SPD ATTRS
- FAPI_TRY( mss::attr_eff_engine<mss::attr_eff_engine_fields>::set(l_spd_decoder) );
+ FAPI_TRY( (mss::gen::attr_engine<mss::proc_type::AXONE, mss::attr_eff_engine_fields>::set(l_spd_decoder)) );
// Set up explorer SPD ATTRS
- FAPI_TRY( mss::attr_eff_engine<mss::exp::attr_eff_engine_fields>::set(l_spd_decoder) );
+ FAPI_TRY( (mss::gen::attr_engine<mss::proc_type::AXONE, mss::exp::attr_eff_engine_fields>::set(l_spd_decoder)) );
// Set up pmic SPD ATTRS
- FAPI_TRY( mss::attr_eff_engine<mss::pmic::attr_eff_engine_fields>::set(l_spd_decoder) );
+ FAPI_TRY( (mss::gen::attr_engine<mss::proc_type::AXONE, mss::pmic::attr_eff_engine_fields>::set(l_spd_decoder)) );
}
}
// Set up derived ATTRS
- FAPI_TRY( mss::attr_derived_engine<mss::attr_engine_derived_fields>::set(dimm) );
+ FAPI_TRY( (mss::gen::attr_engine<mss::proc_type::AXONE, mss::attr_engine_derived_fields>::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 6646ba5c4..73b7ed5a8 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<fapi2::TARGET_TYPE_MEM_PORT>
// 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<mss::pre_data_init_fields>::set(l_spd_decoder) );
- FAPI_TRY( mss::attr_derived_engine<mss::generic_metadata_fields>::set(d) );
+ // Set pre-eff_config SPD driven attributes
+ FAPI_TRY( (mss::gen::attr_engine<mss::proc_type::AXONE, mss::pre_data_init_fields>::set(l_spd_decoder)),
+ "Failed gen::attr_engine<mss::proc_type::AXONE, mss::pre_data_init_fields>::set on %s", mss::spd::c_str(d) );
+
+ // Set pre_eff_config attributes derived from other attributes
+ FAPI_TRY( (mss::gen::attr_engine<mss::proc_type::AXONE, mss::generic_metadata_fields>::set(d)),
+ "Failed gen::attr_engine<mss::proc_type::AXONE, mss::generic_metadata_fields>::set on %s", mss::spd::c_str(d) );
}
}
OpenPOWER on IntegriCloud