Skip to content

Commit

Permalink
PRD: Add New Traces to TdCtlr
Browse files Browse the repository at this point in the history
Change-Id: Iaba71760735b2212ddd6a7f2ec618bad130f13b5
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/38216
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/38261
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
  • Loading branch information
cnpalmer authored and zane131 committed Mar 22, 2017
1 parent ce38ba2 commit a9f99e4
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 4 deletions.
14 changes: 12 additions & 2 deletions src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_ipl.C
Expand Up @@ -78,6 +78,9 @@ uint32_t MemTdCtlr<T>::defaultStep( STEP_CODE_DATA_STRUCT & io_sc )
{
if ( nextRank <= iv_stoppedRank ) // The command made it to the end.
{
PRDF_TRAC( PRDF_FUNC "The TD command made it to the end of "
"memory on chip: 0x%08x", iv_chip->getHuid() );

// Clear all of the counters and maintenance ECC attentions. This
// must be done before telling MDIA the command is done. Otherwise,
// we may run into a race condition where MDIA may start the next
Expand All @@ -102,13 +105,20 @@ uint32_t MemTdCtlr<T>::defaultStep( STEP_CODE_DATA_STRUCT & io_sc )
}
else // There is memory left to test.
{
PRDF_TRAC( PRDF_FUNC "There is still memory left to test. "
"Calling startSfRead<T>(0x%08x, m%ds%d)",
nextRank.getChip()->getHuid(),
nextRank.getRank().getMaster(),
nextRank.getRank().getSlave() );

// Start a super fast command to the end of memory.
o_rc = startSfRead<T>( nextRank.getChip(), nextRank.getRank() );
if ( SUCCESS != o_rc )
{
PRDF_ERR( PRDF_FUNC "startSfRead<T>(0x%08x,%d) failed",
PRDF_ERR( PRDF_FUNC "startSfRead<T>(0x%08x,m%ds%d) failed",
nextRank.getChip()->getHuid(),
nextRank.getRank().getMaster() );
nextRank.getRank().getMaster(),
nextRank.getRank().getSlave() );
break;
}
}
Expand Down
11 changes: 9 additions & 2 deletions src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C
Expand Up @@ -132,13 +132,20 @@ uint32_t MemTdCtlr<T>::defaultStep( STEP_CODE_DATA_STRUCT & io_sc )

do
{
PRDF_TRAC( PRDF_FUNC "Resuming background scrub. "
"Calling startBgScrub<T>(0x%08x, m%ds%d)",
nextRank.getChip()->getHuid(),
nextRank.getRank().getMaster(),
nextRank.getRank().getSlave() );

// Restart background scrubbing on the next rank.
o_rc = startBgScrub<T>( nextRank.getChip(), nextRank.getRank() );
if ( SUCCESS != o_rc )
{
PRDF_ERR( PRDF_FUNC "startBgScrub<T>(0x%08x,%d) failed",
PRDF_ERR( PRDF_FUNC "startBgScrub<T>(0x%08x,m%ds%d) failed",
nextRank.getChip()->getHuid(),
nextRank.getRank().getMaster() );
nextRank.getRank().getMaster(),
nextRank.getRank().getSlave() );
break;
}

Expand Down
3 changes: 3 additions & 0 deletions src/usr/diag/prdf/plat/mem/prdfMemTps_ipl.C
Expand Up @@ -63,6 +63,7 @@ uint32_t TpsEvent<TYPE_MCA>::nextStep( STEP_CODE_DATA_STRUCT & io_sc,
if ( TD_PHASE_0 == iv_phase )
{
//start TPS phase 1
PRDF_TRAC( PRDF_FUNC "Starting TPS Phase 1" );
o_rc = startTpsPhase1<TYPE_MCA>( iv_chip, iv_rank );
if ( SUCCESS != o_rc )
{
Expand Down Expand Up @@ -100,6 +101,7 @@ uint32_t TpsEvent<TYPE_MCA>::nextStep( STEP_CODE_DATA_STRUCT & io_sc,
//if there was a UE or IUE
if ( (eccAttns & MAINT_UE) || (eccAttns & MAINT_IUE) )
{
PRDF_TRAC( PRDF_FUNC "UE Detected. Aborting this procedure." );
//UE
if ( eccAttns & MAINT_UE )
{
Expand Down Expand Up @@ -158,6 +160,7 @@ uint32_t TpsEvent<TYPE_MCA>::nextStep( STEP_CODE_DATA_STRUCT & io_sc,
if ( TD_PHASE_1 == iv_phase )
{
//Start TPS phase 2
PRDF_TRAC( PRDF_FUNC "Starting TPS Phase 2" );
o_rc = startTpsPhase2<TYPE_MCA>( iv_chip, iv_rank );
if ( SUCCESS != o_rc )
{
Expand Down
7 changes: 7 additions & 0 deletions src/usr/diag/prdf/plat/mem/prdfMemVcm_ipl.C
Expand Up @@ -60,6 +60,7 @@ uint32_t VcmEvent<TYPE_MCA>::nextStep( STEP_CODE_DATA_STRUCT & io_sc,
if ( TD_PHASE_0 == iv_phase )
{
//start VCM phase 1
PRDF_TRAC( PRDF_FUNC "Starting VCM Phase 1" );
o_rc = startVcmPhase1<TYPE_MCA>( iv_chip, iv_rank );
if ( SUCCESS != o_rc )
{
Expand All @@ -85,6 +86,7 @@ uint32_t VcmEvent<TYPE_MCA>::nextStep( STEP_CODE_DATA_STRUCT & io_sc,
//if there was a UE or IUE
if ( (eccAttns & MAINT_UE) || (eccAttns & MAINT_IUE) )
{
PRDF_TRAC( PRDF_FUNC "UE Detected. Aborting this procedure." );
//UE
if ( eccAttns & MAINT_UE )
{
Expand All @@ -111,6 +113,7 @@ uint32_t VcmEvent<TYPE_MCA>::nextStep( STEP_CODE_DATA_STRUCT & io_sc,
else
{
//Start VCM phase 2
PRDF_TRAC( PRDF_FUNC "Starting VCM Phase 2" );
o_rc = startVcmPhase2<TYPE_MCA>( iv_chip, iv_rank );
if ( SUCCESS != o_rc )
{
Expand Down Expand Up @@ -168,6 +171,8 @@ uint32_t VcmEvent<TYPE_MCA>::nextStep( STEP_CODE_DATA_STRUCT & io_sc,
//else if there was a MCE
else if ( eccAttns & MAINT_MCE )
{
PRDF_TRAC( PRDF_FUNC "Chip mark verified" );

//The chip mark is verified
io_sc.service_data->setSignature( iv_chip->getHuid(),
PRDFSIG_VcmVerified );
Expand All @@ -187,6 +192,8 @@ uint32_t VcmEvent<TYPE_MCA>::nextStep( STEP_CODE_DATA_STRUCT & io_sc,
//else - verification failed
else
{
PRDF_TRAC( PRDF_FUNC "Chip mark false alarm" );

io_sc.service_data->setSignature( iv_chip->getHuid(),
PRDFSIG_VcmFalseAlarm );

Expand Down

0 comments on commit a9f99e4

Please sign in to comment.