Skip to content

Commit

Permalink
PRD: Axone Two Phase Scrub (TPS) support
Browse files Browse the repository at this point in the history
Change-Id: If2540907b7ceb51612b0a68142d54836b89f1e13
RTC: 208263
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/84537
Reviewed-by: Benjamen G Tyner <ben.tyner@ibm.com>
Reviewed-by: Brian J Stegmiller <bjs@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Zane C Shelley <zshelle@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/84783
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 Oct 4, 2019
1 parent 195dd6a commit e017df4
Show file tree
Hide file tree
Showing 2 changed files with 253 additions and 1,111 deletions.
97 changes: 50 additions & 47 deletions src/usr/diag/prdf/plat/mem/prdfMemTps_ipl.C
Original file line number Diff line number Diff line change
Expand Up @@ -295,53 +295,6 @@ uint32_t TpsEvent<TYPE_MCA>::startCmd()
#undef PRDF_FUNC
}

template<>
uint32_t TpsEvent<TYPE_OCMB_CHIP>::startCmd()
{
#define PRDF_FUNC "[TpsEvent::startCmd] "

uint32_t o_rc = SUCCESS;

PRDF_ERR( PRDF_FUNC "Function not supported yet" );
/* TODO RTC 208263
// We don't need to set any stop-on-error conditions or thresholds for
// soft/inter/hard CEs during Memory Diagnostics. The design is to let the
// command continue to the end of the rank and we do diagnostics on the
// CE counts found in the per-symbol counters. Therefore, all we need to do
// is tell the hardware which CE types to count.
mss::mcbist::stop_conditions stopCond;
switch ( iv_phase )
{
case TD_PHASE_1:
// Set the per symbol counters to count only soft/inter CEs.
stopCond.set_nce_soft_symbol_count_enable( mss::ON);
stopCond.set_nce_inter_symbol_count_enable(mss::ON);
break;
case TD_PHASE_2:
// Set the per symbol counters to count only hard CEs.
stopCond.set_nce_hard_symbol_count_enable(mss::ON);
break;
default: PRDF_ASSERT( false ); // invalid phase
}
// Start the time based scrub procedure on this slave rank.
o_rc = startTdScrub<TYPE_MCA>( iv_chip, iv_rank, SLAVE_RANK, stopCond );
if ( SUCCESS != o_rc )
{
PRDF_ERR( PRDF_FUNC "startTdScrub(0x%08x,0x%2x) failed",
iv_chip->getHuid(), getKey() );
}
*/

return o_rc;

#undef PRDF_FUNC
}

//##############################################################################
//
// Specializations for MBA
Expand Down Expand Up @@ -415,6 +368,56 @@ uint32_t TpsEvent<TYPE_MBA>::startCmd()
#undef PRDF_FUNC
}

//##############################################################################
//
// Specializations for OCMB
//
//##############################################################################

template<>
uint32_t TpsEvent<TYPE_OCMB_CHIP>::startCmd()
{
#define PRDF_FUNC "[TpsEvent::startCmd] "

uint32_t o_rc = SUCCESS;

// We don't need to set any stop-on-error conditions or thresholds for
// soft/inter/hard CEs during Memory Diagnostics. The design is to let the
// command continue to the end of the rank and we do diagnostics on the
// CE counts found in the per-symbol counters. Therefore, all we need to do
// is tell the hardware which CE types to count.

mss::mcbist::stop_conditions<> stopCond;

switch ( iv_phase )
{
case TD_PHASE_1:
// Set the per symbol counters to count only soft/inter CEs.
stopCond.set_nce_soft_symbol_count_enable( mss::ON);
stopCond.set_nce_inter_symbol_count_enable(mss::ON);
break;

case TD_PHASE_2:
// Set the per symbol counters to count only hard CEs.
stopCond.set_nce_hard_symbol_count_enable(mss::ON);
break;

default: PRDF_ASSERT( false ); // invalid phase
}

// Start the time based scrub procedure on this slave rank.
o_rc = startTdScrub<TYPE_OCMB_CHIP>(iv_chip, iv_rank, SLAVE_RANK, stopCond);
if ( SUCCESS != o_rc )
{
PRDF_ERR( PRDF_FUNC "startTdScrub(0x%08x,0x%2x) failed",
iv_chip->getHuid(), getKey() );
}

return o_rc;

#undef PRDF_FUNC
}

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

// Avoid linker errors with the template.
Expand Down

0 comments on commit e017df4

Please sign in to comment.