diff options
Diffstat (limited to 'src/usr')
-rw-r--r-- | src/usr/fapi2/attribute_service.C | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/usr/fapi2/attribute_service.C b/src/usr/fapi2/attribute_service.C index dfcaff74a..fa3de0bf7 100644 --- a/src/usr/fapi2/attribute_service.C +++ b/src/usr/fapi2/attribute_service.C @@ -71,6 +71,7 @@ #include<vpd_accessors/getDQAttrISDIMM.H> #include<vpd_accessors/getDQSAttrISDIMM.H> #include<vpd_accessors/getISDIMMTOC4DAttrs.H> +#include<vpd_accessors/getMBvpdAddrMirrorData.H> #include<vpd_accessors/getMBvpdDram2NModeEnabled.H> #include<vpd_accessors/getMBvpdMemoryDataVersion.H> #include<vpd_accessors/getMBvpdSPDXRecordVersion.H> @@ -1692,6 +1693,37 @@ ReturnCode platGetDQSAttrISDIMM( } //----------------------------------------------------------------------------- +ReturnCode platGetMBvpdDramAddressMirroring( + const Target<TARGET_TYPE_ALL>& i_fapiTarget, + ATTR_CEN_VPD_DRAM_ADDRESS_MIRRORING_Type& o_dramAddressMirroring + ) +{ + ReturnCode rc; + + // Don't need to check the type here, the FAPI_ATTR_GET macro clause + // "fapi2::Target<ID##_TargetType>(TARGET)" does it for us. However, + // to enable a streamlined dump of the attributes, all plat code must use + // the generic TARGET_TYPE_ALL -- so convert back to the correct type + // manually + TARGETING::Target * l_pTarget = NULL; + errlHndl_t l_errl = getTargetingTarget(i_fapiTarget, l_pTarget); + + if (l_errl) + { + FAPI_ERR("platGetMBvpdDramAddressMirroring: " + "Error from getTargetingTarget"); + rc.setPlatDataPtr(reinterpret_cast<void *> (l_errl)); + } + else + { + fapi2::Target<fapi2::TARGET_TYPE_MBA> l_fapiTarget(l_pTarget); + rc = getMBvpdAddrMirrorData(l_fapiTarget, o_dramAddressMirroring); + } + + return rc; +} + +//----------------------------------------------------------------------------- ReturnCode platGetMBvpdDram2NModeEnabled( const Target<TARGET_TYPE_ALL>& i_fapiTarget, ATTR_CEN_VPD_DRAM_2N_MODE_ENABLED_Type& o_dram2NModeEnabled |