Skip to content

Commit 9761075

Browse files
committed
PRD: modified getTargetPosition() to assert if target is not supported
Change-Id: I5b7d60626d9f5c716bdf886871b79b5cce4bbcb2 RTC: 168856 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/36054 Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com> Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/36081 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
1 parent 0b0e9f9 commit 9761075

File tree

1 file changed

+25
-62
lines changed

1 file changed

+25
-62
lines changed

src/usr/diag/prdf/common/plat/prdfTargetServices.C

Lines changed: 25 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1043,67 +1043,49 @@ TargetHandle_t getMasterProc()
10431043
//##
10441044
//##############################################################################
10451045

1046-
uint32_t getTargetPosition( TARGETING::TargetHandle_t i_target )
1046+
uint32_t getTargetPosition( TargetHandle_t i_trgt )
10471047
{
10481048
#define PRDF_FUNC "[PlatServices::getTargetPosition] "
10491049

1050-
PRDF_ASSERT( nullptr != i_target );
1050+
PRDF_ASSERT( nullptr != i_trgt );
10511051

1052-
uint32_t o_pos = INVALID_POSITION_BOUND;
1052+
uint32_t o_pos = 0;
1053+
1054+
CLASS l_class = getTargetClass( i_trgt );
1055+
TYPE l_type = getTargetType( i_trgt );
10531056

1054-
CLASS l_class = getTargetClass( i_target );
10551057
switch ( l_class )
10561058
{
1057-
case CLASS_CHIP:
1059+
case CLASS_CHIP: // chips
10581060
{
1059-
TYPE l_type = getTargetType( i_target );
10601061
switch ( l_type )
10611062
{
10621063
case TYPE_PROC:
10631064
case TYPE_OSC:
10641065
case TYPE_OSCPCICLK:
10651066
case TYPE_OSCREFCLK:
1066-
{
1067-
uint16_t tmpPos = 0;
1068-
if ( !i_target->tryGetAttr<ATTR_POSITION>(tmpPos) )
1069-
{
1070-
PRDF_ERR( PRDF_FUNC "Failed to get ATTR_POSITION" );
1071-
}
1072-
else
1073-
o_pos = (uint32_t)tmpPos;
1067+
o_pos = i_trgt->getAttr<ATTR_POSITION>();
10741068
break;
1075-
}
10761069

10771070
case TYPE_MEMBUF:
1078-
o_pos = getMemChnl( i_target );
1071+
o_pos = getMemChnl( i_trgt );
10791072
break;
10801073

10811074
default:
1082-
PRDF_ERR( PRDF_FUNC "Unsupported type: %d", l_type );
1075+
PRDF_ERR( PRDF_FUNC "Unsupported type %d for CLASS_CHIP: "
1076+
"i_trgt=0x%08x", l_type, getHuid(i_trgt) );
1077+
PRDF_ASSERT( false );
10831078
}
10841079
break;
10851080
}
10861081

1087-
case CLASS_UNIT:
1088-
{
1089-
uint8_t tmpPos = 0;
1090-
if ( !i_target->tryGetAttr<ATTR_CHIP_UNIT>(tmpPos) )
1091-
{
1092-
PRDF_ERR( PRDF_FUNC "Failed to get ATTR_CHIP_UNIT" );
1093-
}
1094-
else
1095-
o_pos = (uint32_t)tmpPos;
1082+
case CLASS_UNIT: // units of a chip
1083+
o_pos = i_trgt->getAttr<ATTR_CHIP_UNIT>();
10961084
break;
1097-
}
10981085

1099-
case CLASS_ENC:
1100-
{
1101-
if ( !i_target->tryGetAttr<ATTR_ORDINAL_ID>(o_pos) )
1102-
{
1103-
PRDF_ERR( PRDF_FUNC "Failed to get ATTR_ORDINAL_ID" );
1104-
}
1086+
case CLASS_ENC: // nodes
1087+
o_pos = i_trgt->getAttr<ATTR_ORDINAL_ID>();
11051088
break;
1106-
}
11071089

11081090
case CLASS_SYS: // system
11091091
// The concept of a system position does not exist, however, we want
@@ -1113,21 +1095,18 @@ uint32_t getTargetPosition( TARGETING::TargetHandle_t i_target )
11131095
break;
11141096

11151097
case CLASS_LOGICAL_CARD: // DIMMs
1116-
o_pos = i_target->getAttr<ATTR_FAPI_POS>();
1098+
o_pos = i_trgt->getAttr<ATTR_FAPI_POS>();
11171099
break;
11181100

11191101
default:
1120-
PRDF_ERR( PRDF_FUNC "Unsupported class: %d", l_class );
1102+
PRDF_ERR( PRDF_FUNC "Unsupported class %d: i_trgt=0x%08x",
1103+
l_class, getHuid(i_trgt) );
1104+
PRDF_ASSERT(false);
11211105
}
11221106

1123-
if ( INVALID_POSITION_BOUND == o_pos )
1124-
{
1125-
PRDF_ERR( PRDF_FUNC "Failed: target=0x%08x", getHuid(i_target) );
1126-
}
1107+
return o_pos;
11271108

11281109
#undef PRDF_FUNC
1129-
1130-
return o_pos;
11311110
}
11321111

11331112
//------------------------------------------------------------------------------
@@ -1158,29 +1137,13 @@ uint32_t getPhbConfig( TARGETING::TargetHandle_t i_proc )
11581137
//##
11591138
//##############################################################################
11601139

1161-
uint32_t getMemChnl( TARGETING::TargetHandle_t i_memTarget )
1140+
uint32_t getMemChnl( TargetHandle_t i_trgt )
11621141
{
1163-
#define PRDF_FUNC "[PlatServices::getMemChnl] "
1164-
1165-
PRDF_ASSERT( nullptr != i_memTarget );
1166-
1167-
uint32_t o_chnl = INVALID_POSITION_BOUND; // Intentially set to
1168-
// INVALID_POSITION_BOUND for call
1169-
// from getTargetPosition().
1170-
1171-
TargetHandle_t mcsTarget = getConnectedParent( i_memTarget, TYPE_MCS );
1172-
1173-
o_chnl = getTargetPosition( mcsTarget );
1174-
1175-
if ( MAX_MCS_PER_PROC <= o_chnl ) // Real MCS position check.
1176-
{
1177-
PRDF_ERR( PRDF_FUNC "Failed: i_memTarget=0x%08x",
1178-
getHuid(i_memTarget) );
1179-
}
1142+
PRDF_ASSERT( nullptr != i_trgt );
11801143

1181-
return o_chnl;
1144+
TargetHandle_t mcsTrgt = getConnectedParent( i_trgt, TYPE_MCS );
11821145

1183-
#undef PRDF_FUNC
1146+
return getTargetPosition( mcsTrgt );
11841147
}
11851148

11861149
//------------------------------------------------------------------------------

0 commit comments

Comments
 (0)