summaryrefslogtreecommitdiffstats
path: root/src/include/usr/fapi2/attribute_service.H
diff options
context:
space:
mode:
authorDonald Washburn <dwashbur@us.ibm.com>2017-09-11 13:58:25 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-11-01 17:07:12 -0400
commit621ab58f2f538157abc992f1f490ae0a927ed0cc (patch)
tree27c8fcc3e968dd52fa9f1ae7d0ca51836bb07cee /src/include/usr/fapi2/attribute_service.H
parent5e731ccc76d458e752e465471e27a40dd6011e5b (diff)
downloadtalos-hostboot-621ab58f2f538157abc992f1f490ae0a927ed0cc.tar.gz
talos-hostboot-621ab58f2f538157abc992f1f490ae0a927ed0cc.zip
Integration of hardware vpd accessor functions into Hostboot.
*Created macros and platform functions to invoke vpd accessor functions for reading attributes from Hostboot. *Create a unit test for calling each attribute accessor macro. RTC: 178950 Change-Id: Ia74406eabcdff238f6bbc4bd8dc43715ebfcd643 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/48185 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Prachi Gupta <pragupta@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/usr/fapi2/attribute_service.H')
-rw-r--r--src/include/usr/fapi2/attribute_service.H1020
1 files changed, 1018 insertions, 2 deletions
diff --git a/src/include/usr/fapi2/attribute_service.H b/src/include/usr/fapi2/attribute_service.H
index 110e0b4c8..47538d00c 100644
--- a/src/include/usr/fapi2/attribute_service.H
+++ b/src/include/usr/fapi2/attribute_service.H
@@ -295,6 +295,141 @@ ReturnCode platGetSecurityMode(uint8_t & o_securityMode);
/// @return ReturnCode Always FAPI2_RC_SUCCESS, this cannot fail.
ReturnCode platSetSecurityMode();
+/// @brief This function is called by the FAPI_ATTR_GET macro when getting
+// the VPD_POWER_CONTROL_CAPABLE attribute. It should not be called directly.
+//
+// @param[in] i_fapiTarget The target for the attribute operation.
+// @param[out] o_vpdPowerControlCapableVal The retrieved attribute value.
+// @return ReturnCode Zero on success, else platform specified error.
+ReturnCode platGetControlCapableData(
+ const Target<TARGET_TYPE_ALL>& i_fapiTarget,
+ ATTR_CEN_VPD_POWER_CONTROL_CAPABLE_Type& o_vpdPowerControlCapableVal
+ );
+
+/// @brief This function is called by the FAPI_ATTR_GET macro when getting
+// the VPD_ISDIMMTOC4DQ attribute. It should not be called directly.
+//
+// @param[in] i_fapiTarget The target for the attribute operation.
+// @param[out] o_vpdIsDimmTOC4DQVal The retrieved attribute value.
+// @return ReturnCode Zero on success, else platform specified error.
+ReturnCode platGetDQAttrISDIMM(
+ const Target<TARGET_TYPE_ALL>& i_fapiTarget,
+ ATTR_CEN_VPD_ISDIMMTOC4DQ_Type &o_vpdIsDimmTOC4DQVal
+ );
+
+/// @brief This function is called by the FAPI_ATTR_GET macro when getting
+// the VPD_ISDIMMTOC4DQS attribute. It should not be called directly.
+//
+// @param[in] i_fapiTarget The target for the attribute operation.
+// @param[out] o_vpdIsDimmTOC4DQSVal The retrieved attribute value.
+// @return ReturnCode Zero on success, else platform specified error.
+ReturnCode platGetDQSAttrISDIMM(
+ const Target<TARGET_TYPE_ALL>& i_fapiTarget,
+ ATTR_CEN_VPD_ISDIMMTOC4DQS_Type &o_vpdIsDimmTOC4DQSVal
+ );
+
+/// @brief This function is called by the FAPI_ATTR_GET macro when getting
+// the DRAM_2N_MODE_ENABLED attribute. It should not be called directly.
+//
+// @param[in] i_fapiTarget The target for the attribute operation.
+// @param[out] o_dram2NModeEnabled The retrieved attribute value.
+// @return ReturnCode Zero on success, else platform specified error.
+ReturnCode platGetMBvpdDram2NModeEnabled(
+ const Target<TARGET_TYPE_ALL>& i_fapiTarget,
+ ATTR_CEN_VPD_DRAM_2N_MODE_ENABLED_Type& o_dram2NModeEnabled
+ );
+
+/// @brief This function is called by the FAPI_ATTR_GET macro when getting
+// the VPD_VM_KEYWORD attribute. It should not be called directly.
+//
+// @param[in] i_fapiTarget The target for the attribute operation.
+// @param[out] o_vpdVMKeywordVal The retrieved attribute value.
+// @return ReturnCode Zero on success, else platform specified error.
+ReturnCode platGetMBvpdMemoryDataVersion(
+ const Target<TARGET_TYPE_ALL>& i_fapiTarget,
+ ATTR_CEN_VPD_VM_KEYWORD_Type& o_vpdVMKeywordVal
+ );
+
+/// @brief This function is called by the FAPI_ATTR_GET macro when getting
+// the VPD_VD_KEYWORD attribute. It should not be called directly.
+//
+// @param[in] i_fapiTarget The target for the attribute operation.
+// @param[out] o_vpdVDKeywordVal The retrieved attribute value.
+// @return ReturnCode Zero on success, else platform specified error.
+ReturnCode platGetMBvpdSPDXRecordVersion(
+ const Target<TARGET_TYPE_ALL>& i_fapiTarget,
+ ATTR_CEN_VPD_VD_KEYWORD_Type& o_vpdVDKeywordVal
+ );
+
+/// @brief This function is called by the FAPI_ATTR_GET macro when getting
+// the VPD_DIMM_SPARE attribute. It should not be called directly.
+//
+// @param[in] i_fapiTarget The target for the attribute operation.
+// @param[out] o_vpdDimmSpare The retrieved attribute value.
+// @return ReturnCode Zero on success, else platform specified error.
+ReturnCode platGetMBvpdSpareDramData(
+ const Target<TARGET_TYPE_ALL>& i_fapiTarget,
+ ATTR_CEN_VPD_DIMM_SPARE_Type &o_vpdDimmSpare
+ );
+
+/// @brief This function is called by the FAPI_ATTR_GET macro when getting
+// the VPD_VERSION attribute. It should not be called directly.
+//
+// @param[in] i_fapiTarget The target for the attribute operation.
+// @param[out] o_vpdVersion The retrieved attribute value.
+// @return ReturnCode Zero on success, else platform specified error.
+ReturnCode platGetMBvpdVersion(
+ const Target<TARGET_TYPE_ALL>& i_fapiTarget,
+ ATTR_CEN_VPD_VERSION_Type& o_vpdVersion
+ );
+
+/// @brief This function is called by the FAPI_ATTR_GET macro when getting
+// the VPD_DW_KEYWORD attribute. It should not be called directly.
+//
+// @param[in] i_fapiTarget The target for the attribute operation.
+// @param[out] o_vpdDWKeyword The retrieved attribute value.
+// @return ReturnCode Zero on success, else platform specified error.
+ReturnCode platGetMBvpdVoltageSettingData(
+ const Target<TARGET_TYPE_ALL>& i_fapiTarget,
+ ATTR_CEN_VPD_DW_KEYWORD_Type& o_vpdDWKeyword
+ );
+
+/// @brief This function is called by the FAPI_ATTR_GET macro when getting
+// a Memory Buffer vpd attribute. It should not be called directly.
+//
+// @param[in] i_fapiTarget The fapi target for the attribute get.
+// @param[in] i_attr The MBVpd attribute to fetch.
+// @param[out] o_pVal A pointer to a buffer in which to copy the
+// attribute value.
+// @param[in] i_valSize The size of the buffer for the attribute value.
+ReturnCode platGetMBvpdAttr(
+ const fapi2::Target<TARGET_TYPE_ALL>& i_fapiTarget,
+ const fapi2::AttributeId i_attr,
+ void* o_pVal,
+ const size_t i_valSize
+ );
+
+/// @brief This function is called by the FAPI_ATTR_GET macro when getting
+// a Memory Buffer vpd attribute. It should not be called directly.
+//
+// @param[in] i_attr The MBVpd attribute to fetch.
+// @param[in] i_fapiTarget The MBA target for the attribute get.
+// @param[out] o_MBvpdAttrVal A variable into which the attribute will
+// be copied
+template<typename T>
+ReturnCode platGetMBvpdAttr(
+ const fapi2::AttributeId i_attrId,
+ const fapi2::Target<TARGET_TYPE_ALL>& i_fapiTarget,
+ T& o_MBvpdAttrVal
+ )
+{
+ return platGetMBvpdAttr(i_fapiTarget,
+ i_attrId,
+ reinterpret_cast<void*>(&o_MBvpdAttrVal),
+ sizeof(T));
+}
+
+
// -----------------------------------------------------------------------------
// End TODO: End to be supported functions
// -----------------------------------------------------------------------------
@@ -326,8 +461,6 @@ fapiToTargeting::ID, sizeof(VAL), &(VAL))
platAttrSvc::setTargetingAttr(PTARGET, (const TARGETING::ATTRIBUTE_ID)\
fapiToTargeting::ID, sizeof(VAL), &(VAL))
-
-
//------------------------------------------------------------------------------
// MACRO to route ATTR_NAME access to the correct Hostboot function
//------------------------------------------------------------------------------
@@ -408,4 +541,887 @@ fapiToTargeting::ID, sizeof(VAL), &(VAL))
? fapi2::ReturnCode() : \
fapi2::platAttrSvc::platGetSecurityMode(VAL)
+//-----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_POWER_CONTROL_CAPABLE access to the correct
+// HB function
+//-----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_POWER_CONTROL_CAPABLE_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::platGetControlCapableData(TARGET, VAL)
+
+//-----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_ISDIMMTOC4DQ access to the correct HB function
+//-----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_ISDIMMTOC4DQ_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::platGetDQAttrISDIMM(TARGET, VAL)
+
+//-----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_ISDIMMTOC4DQS access to the correct HB function
+//-----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_ISDIMMTOC4DQS_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::platGetDQSAttrISDIMM(TARGET, VAL)
+
+//-----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_DRAM_2N_MODE_ENABLED access to the correct
+// HB function
+//-----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_DRAM_2N_MODE_ENABLED_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::platGetMBvpdDram2NModeEnabled(TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_VM_KEYWORD access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_VM_KEYWORD_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::platGetMBvpdMemoryDataVersion(TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_VD_KEYWORD access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_VD_KEYWORD_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::platGetMBvpdSPDXRecordVersion(TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_DIMM_SPARE access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_DIMM_SPARE_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::platGetMBvpdSpareDramData(TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_VERSION access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_VERSION_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::platGetMBvpdVersion(TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_DW_KEYWORD access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_DW_KEYWORD_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::platGetMBvpdVoltageSettingData(TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_TSYS_ADR access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_TSYS_ADR_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_TSYS_ADR_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_TSYS_DP18 access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_TSYS_DP18_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_TSYS_DP18_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_DRAM_RON access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_DRAM_RON_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_DRAM_RON_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_DRAM_RTT_NOM access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_DRAM_RTT_NOM_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_DRAM_RTT_NOM_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_DRAM_RTT_WR access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_DRAM_RTT_WR_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_DRAM_RTT_WR_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_ODT_RD access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_ODT_RD_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_ODT_RD_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_ODT_WR access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_ODT_WR_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_ODT_WR_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_DIMM_RCD_IBT access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_DIMM_RCD_IBT_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_DIMM_RCD_IBT_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_DIMM_RCD_OUTPUT_TIMING access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_DIMM_RCD_OUTPUT_TIMING_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_DIMM_RCD_OUTPUT_TIMING_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_RD_VREF access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_RD_VREF_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_RD_VREF_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_DRAM_WR_VREF access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_DRAM_WR_VREF_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_DRAM_WR_VREF_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_DRAM_WRDDR4_VREF access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_DRAM_WRDDR4_VREF_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_DRAM_WRDDR4_VREF_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_RCV_IMP_DQ_DQS access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_RCV_IMP_DQ_DQS_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_RCV_IMP_DQ_DQS_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_DRV_IMP_DQ_DQS access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_DRV_IMP_DQ_DQS_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_DRV_IMP_DQ_DQS_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_DRV_IMP_CNTL access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_DRV_IMP_CNTL_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_DRV_IMP_CNTL_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_DRV_IMP_ADDR access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_DRV_IMP_ADDR_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_DRV_IMP_ADDR_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_DRV_IMP_CLK access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_DRV_IMP_CLK_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_DRV_IMP_CLK_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_DRV_IMP_SPCKE access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_DRV_IMP_SPCKE_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_DRV_IMP_SPCKE_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_SLEW_RATE_DQ_DQS access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_SLEW_RATE_DQ_DQS_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_SLEW_RATE_DQ_DQS_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_SLEW_RATE_CNTL access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_SLEW_RATE_CNTL_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_SLEW_RATE_CNTL_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_SLEW_RATE_ADDR access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_SLEW_RATE_ADDR_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_SLEW_RATE_ADDR_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_SLEW_RATE_CLK access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_SLEW_RATE_CLK_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_SLEW_RATE_CLK_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_SLEW_RATE_SPCKE access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_SLEW_RATE_SPCKE_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_SLEW_RATE_SPCKE_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_CKE_PRI_MAP access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_CKE_PRI_MAP_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_CKE_PRI_MAP_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_CKE_PWR_MAP access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_CKE_PWR_MAP_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_CKE_PWR_MAP_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_RLO access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_RLO_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_RLO_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_WLO access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_WLO_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_WLO_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_GPO access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_GPO_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_GPO_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M0_CLK_P0 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M0_CLK_P0_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M0_CLK_P0_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M0_CLK_P1 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M0_CLK_P1_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M0_CLK_P1_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M1_CLK_P0 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M1_CLK_P0_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M1_CLK_P0_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M1_CLK_P1 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M1_CLK_P1_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M1_CLK_P1_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_A0 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_A0_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_A0_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_A1 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_A1_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_A1_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_A2 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_A2_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_A2_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_A3 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_A3_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_A3_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_A4 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_A4_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_A4_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_A5 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_A5_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_A5_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_A6 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_A6_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_A6_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_A7 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_A7_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_A7_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_A8 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_A8_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_A8_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_A9 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_A9_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_A9_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_A10 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_A10_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_A10_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_A11 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_A11_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_A11_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_A12 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_A12_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_A12_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_A13 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_A13_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_A13_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_A14 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_A14_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_A14_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_A15 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_A15_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_A15_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_BA0 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_BA0_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_BA0_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_BA1 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_BA1_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_BA1_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_BA2 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_BA2_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_BA2_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_CASN access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_CASN_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_CASN_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_RASN access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_RASN_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_RASN_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_CMD_WEN access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_CMD_WEN_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_CMD_WEN_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_PAR access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_PAR_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_PAR_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M_ACTN access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M_ACTN_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M_ACTN_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CKE0 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CKE0_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CKE0_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CKE1 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CKE1_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CKE1_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CKE2 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CKE2_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CKE2_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CKE3 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CKE3_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CKE3_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CSN0 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CSN0_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CSN0_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CSN1 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CSN1_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CSN1_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CSN2 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CSN2_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CSN2_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CSN3 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CSN3_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_CSN3_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_ODT0 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_ODT0_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_ODT0_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_ODT1 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_ODT1_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M0_CNTL_ODT1_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CKE0 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CKE0_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CKE0_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CKE1 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CKE1_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CKE1_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CKE2 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CKE2_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CKE2_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CKE3 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CKE3_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CKE3_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CSN0 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CSN0_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CSN0_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CSN1 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CSN1_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CSN1_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CSN2 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CSN2_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CSN2_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CSN3 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CSN3_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_CSN3_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_ODT0 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_ODT0_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_ODT0_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_ODT1 access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_ODT1_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PHASE_ROT_M1_CNTL_ODT1_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_PERIODIC_MEMCAL_MODE_OPTIONS access to the
+// correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_PERIODIC_MEMCAL_MODE_OPTIONS_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_PERIODIC_MEMCAL_MODE_OPTIONS_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_DRAM_RTT_PARK access to the correct HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_DRAM_RTT_PARK_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_DRAM_RTT_PARK_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_RD_CTR_WINDAGE_OFFSET access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_RD_CTR_WINDAGE_OFFSET_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_RD_CTR_WINDAGE_OFFSET_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_MR_VERSION_BYTE access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_MR_VERSION_BYTE_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_MR_VERSION_BYTE_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_MR_DATA_CONTROL_BYTE access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_MR_DATA_CONTROL_BYTE_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_MR_DATA_CONTROL_BYTE_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_MT_VERSION_BYTE access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_MT_VERSION_BYTE_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_MT_VERSION_BYTE_Type>(ID, TARGET, VAL)
+
+//----------------------------------------------------------------------------
+// MACRO to route ATTR_CEN_VPD_MT_DATA_CONTROL_BYTE access to the correct
+// HB function
+//----------------------------------------------------------------------------
+#define ATTR_CEN_VPD_MT_DATA_CONTROL_BYTE_GETMACRO(ID, TARGET, VAL) \
+ AttrOverrideSync::getAttrOverrideFunc(ID, TARGET, &VAL)\
+ ? fapi2::ReturnCode() : \
+ fapi2::platAttrSvc::\
+ platGetMBvpdAttr<fapi2::ATTR_CEN_VPD_MT_DATA_CONTROL_BYTE_Type>(ID, TARGET, VAL)
+
#endif // ATTRIBUTESERVICE_H_
OpenPOWER on IntegriCloud