Skip to content

Commit

Permalink
PRD: Update getDimmDqAttr for Centaur
Browse files Browse the repository at this point in the history
Change-Id: Ibdb47fa9528e4c4c562e1f70f242b8c4b84c5160
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/58415
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: Matt Derksen <mderkse1@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/58722
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
  • Loading branch information
cnpalmer authored and zane131 committed May 16, 2018
1 parent 40a290f commit 93a05fa
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 4 deletions.
14 changes: 13 additions & 1 deletion src/usr/diag/prdf/common/plat/mem/prdfMemCaptureData.C
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,19 @@ void addExtMemMruData( const MemoryMru & i_memMru, errlHndl_t io_errl )
"single DIMM." );
break;
}
getDimmDqAttr( trgt, extMemMru.dqMapping );
if ( TYPE_MCA == getTargetType(trgt) )
{
getDimmDqAttr<TYPE_MCA>( trgt, extMemMru.dqMapping );
}
else if ( TYPE_MBA == getTargetType(trgt) )
{
getDimmDqAttr<TYPE_DIMM>(partList[0], extMemMru.dqMapping);
}
else
{
PRDF_ERR( PRDF_FUNC "Invalid target type." );
PRDF_ASSERT(false);
}
}
}

Expand Down
30 changes: 27 additions & 3 deletions src/usr/diag/prdf/common/plat/prdfPlatServices_common.C
Original file line number Diff line number Diff line change
Expand Up @@ -634,10 +634,11 @@ int32_t getDimmSpareConfig( TargetHandle_t i_mba, CenRank i_rank,
*/

//------------------------------------------------------------------------------
void getDimmDqAttr( TargetHandle_t i_target,
uint8_t (&o_dqMapPtr)[DQS_PER_DIMM] )
template<>
void getDimmDqAttr<TYPE_MCA>( TargetHandle_t i_target,
uint8_t (&o_dqMapPtr)[DQS_PER_DIMM] )
{
#define PRDF_FUNC "[PlatServices::getDimmDqAttr] "
#define PRDF_FUNC "[PlatServices::getDimmDqAttr<TYPE_MCA>] "

PRDF_ASSERT( TYPE_MCA == getTargetType(i_target) );

Expand All @@ -657,6 +658,29 @@ void getDimmDqAttr( TargetHandle_t i_target,
#undef PRDF_FUNC
} // end function getDimmDqAttr

template<>
void getDimmDqAttr<TYPE_DIMM>( TargetHandle_t i_target,
uint8_t (&o_dqMapPtr)[DQS_PER_DIMM] )
{
#define PRDF_FUNC "[PlatServices::getDimmDqAttr<TYPE_DIMM>] "

PRDF_ASSERT( TYPE_DIMM == getTargetType(i_target) );

const uint8_t DIMM_BAD_DQ_SIZE_BYTES = 80;

uint8_t tmpData[DIMM_BAD_DQ_SIZE_BYTES];

if ( !i_target->tryGetAttr<ATTR_CEN_DQ_TO_DIMM_CONN_DQ>(tmpData) )
{
PRDF_ERR( PRDF_FUNC "Failed to get ATTR_CEN_DQ_TO_DIMM_CONN_DQ" );
PRDF_ASSERT( false );
}

memcpy( &o_dqMapPtr[0], &tmpData[0], DQS_PER_DIMM );

#undef PRDF_FUNC
} // end function getDimmDqAttr

//------------------------------------------------------------------------------

/* TODO RTC 169956
Expand Down
1 change: 1 addition & 0 deletions src/usr/diag/prdf/common/plat/prdfPlatServices_common.H
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@ int32_t getMemBufRawCardType( TARGETING::TargetHandle_t i_mbaTarget,
* @param io_dqMapPtr Pointer to area to receive DIMM DQ map (80 bytes)
* @return Non-Null if error log occurs
*/
template <TARGETING::TYPE>
void getDimmDqAttr( TARGETING::TargetHandle_t i_target,
uint8_t (&io_dqMapPtr)[DQS_PER_DIMM] );

Expand Down

0 comments on commit 93a05fa

Please sign in to comment.