diff options
Diffstat (limited to 'src/usr/fapi2/dimmBadDqBitmapFuncs.C')
-rw-r--r-- | src/usr/fapi2/dimmBadDqBitmapFuncs.C | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/usr/fapi2/dimmBadDqBitmapFuncs.C b/src/usr/fapi2/dimmBadDqBitmapFuncs.C index 2bfe2d25f..e55431187 100644 --- a/src/usr/fapi2/dimmBadDqBitmapFuncs.C +++ b/src/usr/fapi2/dimmBadDqBitmapFuncs.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2017 */ +/* Contributors Listed Below - COPYRIGHT 2017,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -72,10 +72,16 @@ fapi2::ReturnCode dimmBadDqCheckParamGetBitmap( const fapi2::Target break; } + // Get the proc model + TARGETING::Target* l_masterProc = nullptr; + TARGETING::targetService().masterProcChipTargetHandle( l_masterProc ); + TARGETING::ATTR_MODEL_type l_procModel = + l_masterProc->getAttr<TARGETING::ATTR_MODEL>(); + // Get the DIMM TargetHandleList l_dimmList; - if ( fapi2::TARGET_TYPE_MBA == i_fapiTrgt.getType() ) + if ( TARGETING::MODEL_CUMULUS == l_procModel ) { // Get all functional DIMMs getChildAffinityTargets( l_dimmList, l_trgt, CLASS_NA, TYPE_DIMM ); @@ -105,7 +111,7 @@ fapi2::ReturnCode dimmBadDqCheckParamGetBitmap( const fapi2::Target } } } - else + else if ( TARGETING::MODEL_NIMBUS == l_procModel ) { // Get all connected DIMMs, even nonfunctioning ones. getChildAffinityTargets( l_dimmList, l_trgt, CLASS_NA, TYPE_DIMM, @@ -116,6 +122,13 @@ fapi2::ReturnCode dimmBadDqCheckParamGetBitmap( const fapi2::Target l_rc = FAPI_ATTR_GET( fapi2::ATTR_BAD_DQ_BITMAP, o_dimmTrgt, o_dqBitmap ); } + else + { + // Invalid target. + FAPI_ERR( "dimmBadDqCheckParamGetBitmap: Invalid proc model" ); + l_rc = fapi2::FAPI2_RC_INVALID_ATTR_GET; + break; + } if ( l_rc ) { |