Skip to content

Commit

Permalink
PRD: TPS analyzeEccErrors() for Centaur
Browse files Browse the repository at this point in the history
Change-Id: I4bdc2aa63de4f59a32fbd962a42836e79b9b9601
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/59184
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Caleb N. Palmer <cnpalmer@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/59518
  • Loading branch information
zane131 committed May 30, 2018
1 parent a8f1953 commit 47e9c9b
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 17 deletions.
12 changes: 0 additions & 12 deletions src/usr/diag/prdf/plat/mem/prdfMemTps.H
Original file line number Diff line number Diff line change
Expand Up @@ -156,18 +156,6 @@ class TpsEvent : public TdEntry

#ifdef __HOSTBOOT_RUNTIME

/**
* @brief Does isolation for ECC attentions.
* @param i_eccAttns Mask of all currently active maintenance attentions.
* See enum MaintEccAttns for values.
* @param io_sc The step code data struct.
* @param o_done True if the procedure is complete or has aborted.
* @return Non-SUCCESS if an internal function fails, SUCCESS otherwise.
*/
uint32_t analyzeEcc( const uint32_t & i_eccAttns,
STEP_CODE_DATA_STRUCT & io_sc,
bool & o_done );

/**
* @brief Analyzes the counts that summarize the symbol CE counts.
* @param i_badDqCount Number of nibbles with a bad DQ
Expand Down
40 changes: 35 additions & 5 deletions src/usr/diag/prdf/plat/mem/prdfMemTps_rt.C
Original file line number Diff line number Diff line change
Expand Up @@ -328,11 +328,11 @@ uint32_t __updateVpdSumAboveOne( CeCount i_sumAboveOneCount,
//------------------------------------------------------------------------------

template <>
uint32_t TpsEvent<TYPE_MCA>::analyzeEcc( const uint32_t & i_eccAttns,
uint32_t TpsEvent<TYPE_MCA>::analyzeEccErrors( const uint32_t & i_eccAttns,
STEP_CODE_DATA_STRUCT & io_sc,
bool & o_done )
{
#define PRDF_FUNC "[TpsEvent<TYPE_MCA>::analyzeEcc] "
#define PRDF_FUNC "[TpsEvent<TYPE_MCA>::analyzeEccErrors] "

uint32_t o_rc = SUCCESS;

Expand Down Expand Up @@ -1119,10 +1119,10 @@ uint32_t TpsEvent<TYPE_MCA>::analyzePhase( STEP_CODE_DATA_STRUCT & io_sc,
break;
}

o_rc = analyzeEcc( eccAttns, io_sc, o_done );
o_rc = analyzeEccErrors( eccAttns, io_sc, o_done );
if ( SUCCESS != o_rc )
{
PRDF_ERR( PRDF_FUNC "analyzeEcc() failed." );
PRDF_ERR( PRDF_FUNC "analyzeEccErrors() failed." );
break;
}
if ( o_done ) break;
Expand Down Expand Up @@ -1235,6 +1235,28 @@ uint32_t TpsEvent<TYPE_MCA>::startNextPhase( STEP_CODE_DATA_STRUCT & io_sc )
//
//##############################################################################

template<>
uint32_t TpsEvent<TYPE_MBA>::analyzeEccErrors( const uint32_t & i_eccAttns,
STEP_CODE_DATA_STRUCT & io_sc,
bool & o_done )
{
#define PRDF_FUNC "[TpsEvent::analyzeEccErrors] "

uint32_t o_rc = SUCCESS;

do
{
// TODO: handle MPE, RCE ETE, UE, etc.

} while (0);

return o_rc;

#undef PRDF_FUNC
}

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

template<>
uint32_t TpsEvent<TYPE_MBA>::analyzePhase( STEP_CODE_DATA_STRUCT & io_sc,
bool & o_done )
Expand All @@ -1257,7 +1279,15 @@ uint32_t TpsEvent<TYPE_MBA>::analyzePhase( STEP_CODE_DATA_STRUCT & io_sc,
break;
}

// TODO
// Analyze the ECC errors (not CEs), if needed.
o_rc = analyzeEccErrors( eccAttns, io_sc, o_done );
if ( SUCCESS != o_rc )
{
PRDF_ERR( PRDF_FUNC "analyzeEccErrors() failed on 0x%08x,0x%02x",
iv_chip->getHuid(), getKey() );
break;
}
if ( o_done ) break; // abort the procedure.

// Determine if the command stopped on the last address.
bool lastAddr = false;
Expand Down

0 comments on commit 47e9c9b

Please sign in to comment.