diff options
Diffstat (limited to 'src/usr/diag/prdf/framework/service/prdfPlatServices.C')
-rw-r--r-- | src/usr/diag/prdf/framework/service/prdfPlatServices.C | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/src/usr/diag/prdf/framework/service/prdfPlatServices.C b/src/usr/diag/prdf/framework/service/prdfPlatServices.C index c6477ca85..81564e53a 100644 --- a/src/usr/diag/prdf/framework/service/prdfPlatServices.C +++ b/src/usr/diag/prdf/framework/service/prdfPlatServices.C @@ -36,6 +36,9 @@ #include <prdfTrace.H> #include <prdfAssert.h> +#include <prdfCenAddress.H> +#include <prdfCenDqBitmap.H> + #include <diag/mdia/mdia.H> #include <diag/mdia/mdiamevent.H> #include <errno.h> @@ -44,8 +47,6 @@ using namespace TARGETING; -//------------------------------------------------------------------------------ - namespace PRDF { @@ -200,6 +201,37 @@ int32_t mssRestoreDramRepairs( TargetHandle_t i_mbaTarget, return o_rc; } +//------------------------------------------------------------------------------ + +int32_t mssIplUeIsolation( TargetHandle_t i_mba, const CenRank & i_rank, + CenDqBitmap & o_bitmap ) +{ + #define PRDF_FUNC "[PlatServices::mssIplUeIsolation] " + + int32_t o_rc = SUCCESS; + + uint8_t data[PORT_SLCT_PER_MBA][DIMM_DQ_RANK_BITMAP_SIZE]; + + errlHndl_t errl = NULL; + PRD_FAPI_TO_ERRL( errl, mss_IPL_UE_isolation, getFapiTarget(i_mba), + i_rank.flatten(), data ); + if ( NULL != errl ) + { + PRDF_ERR( PRDF_FUNC"mss_IPL_UE_isolation() failed: MBA=0x%08x " + "rank=%d", getHuid(i_mba), i_rank.flatten() ); + PRDF_COMMIT_ERRL( errl, ERRL_ACTION_REPORT ); + o_rc = FAIL; + } + else + { + o_bitmap = CenDqBitmap ( i_mba, i_rank, data ); + } + + return o_rc; + + #undef PRDF_FUNC +} + } // end namespace PlatServices } // end namespace PRDF |