summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/plat/mem/prdfMemVcm.C
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2018-08-06 16:05:09 -0500
committerZane C. Shelley <zshelle@us.ibm.com>2018-08-16 11:46:07 -0500
commite55c53fae43aa0ae5cb9fc633c86ffd0683c2212 (patch)
treeb2a3488b548e0a6169c4d8cfde036310a178af9c /src/usr/diag/prdf/plat/mem/prdfMemVcm.C
parent890ac53effd1a77d03699d120cf2140883f1b6c2 (diff)
downloadtalos-hostboot-e55c53fae43aa0ae5cb9fc633c86ffd0683c2212.tar.gz
talos-hostboot-e55c53fae43aa0ae5cb9fc633c86ffd0683c2212.zip
PRD: added PlatServices::isRowRepairEnabled()
Change-Id: Ia2ac63ecb1b07af6dab75afa9e00fe966ba11dee RTC: 196073 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/63987 Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/64559 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>
Diffstat (limited to 'src/usr/diag/prdf/plat/mem/prdfMemVcm.C')
-rw-r--r--src/usr/diag/prdf/plat/mem/prdfMemVcm.C48
1 files changed, 40 insertions, 8 deletions
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemVcm.C b/src/usr/diag/prdf/plat/mem/prdfMemVcm.C
index 17d050736..e0feeb362 100644
--- a/src/usr/diag/prdf/plat/mem/prdfMemVcm.C
+++ b/src/usr/diag/prdf/plat/mem/prdfMemVcm.C
@@ -107,6 +107,26 @@ uint32_t VcmEvent<TYPE_MCA>::handlePhaseComplete( const uint32_t & i_eccAttns,
//##############################################################################
template<>
+uint32_t VcmEvent<TYPE_MBA>::rowRepair( STEP_CODE_DATA_STRUCT & io_sc,
+ bool & o_done )
+{
+ #define PRDF_FUNC "[VcmEvent::rowRepair] "
+
+ uint32_t o_rc = SUCCESS;
+
+ do
+ {
+
+ } while (0);
+
+ return o_rc;
+
+ #undef PRDF_FUNC
+}
+
+//------------------------------------------------------------------------------
+
+template<>
uint32_t VcmEvent<TYPE_MBA>::startNextPhase( STEP_CODE_DATA_STRUCT & io_sc )
{
uint32_t signature = 0;
@@ -176,16 +196,28 @@ uint32_t VcmEvent<TYPE_MBA>::handlePhaseComplete( const uint32_t & i_eccAttns,
{
if ( i_eccAttns & MAINT_MCE )
{
- // The chip mark has been verified.
- o_rc = verified( io_sc );
- if ( SUCCESS != o_rc )
+ if ( iv_rowRepairEnabled )
{
- PRDF_ERR( PRDF_FUNC "verified() failed on 0x%08x",
- iv_chip->getHuid() );
- break;
+ o_rc = rowRepair( io_sc, o_done );
+ if ( SUCCESS != o_rc )
+ {
+ PRDF_ERR( PRDF_FUNC "rowRepair() failed on 0x%08x",
+ iv_chip->getHuid() );
+ break;
+ }
+ }
+ else
+ {
+ o_rc = verified( io_sc );
+ if ( SUCCESS != o_rc )
+ {
+ PRDF_ERR( PRDF_FUNC "verified() failed on 0x%08x",
+ iv_chip->getHuid() );
+ break;
+ }
+
+ o_done = true; // Procedure is complete.
}
-
- o_done = true; // Procedure is complete.
}
else if ( !iv_canResumeScrub )
{
OpenPOWER on IntegriCloud