diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2015-08-12 14:46:04 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2015-08-24 22:39:06 -0500 |
commit | 25db842c3ace36b0b34e29ff2bbfa43ade619c4f (patch) | |
tree | ef2cb2401356990075f04b79e19a00dcc6b2dcd5 /src | |
parent | 0de2e12d949de18c8923bb68dcff85a2338a390d (diff) | |
download | talos-hostboot-25db842c3ace36b0b34e29ff2bbfa43ade619c4f.tar.gz talos-hostboot-25db842c3ace36b0b34e29ff2bbfa43ade619c4f.zip |
PRD: callout spares if both spare and chip mark used
Change-Id: I69fd3ad05e9282686b83dceb025766e019d532f1
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/19800
Tested-by: Jenkins Server
Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com>
Reviewed-by: BENJAMIN J. WEISENBECK <bweisenb@us.ibm.com>
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Reviewed-by: Zane Shelley <zshelle@us.ibm.com>
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/20049
Tested-by: Jenkins OP Build CI
Tested-by: FSP CI Jenkins
Tested-by: Jenkins OP HW
Diffstat (limited to 'src')
-rw-r--r-- | src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaTdCtlr_common.C | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaTdCtlr_common.C b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaTdCtlr_common.C index 3afc1e421..700cd23e1 100644 --- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaTdCtlr_common.C +++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaTdCtlr_common.C @@ -496,6 +496,24 @@ int32_t CenMbaTdCtlrCommon::handleMCE_VCM2( STEP_CODE_DATA_STRUCT & io_sc ) // Chip mark is in place and sparing is not possible. setTdSignature( io_sc, PRDFSIG_VcmCmAndSpare ); io_sc.service_data->SetServiceCall(); + + // The mark has already been added to the callout list. + // Callout the used spares, if they exists. + if ( sp0.isValid() ) + { + MemoryMru memmru ( iv_mbaTrgt, iv_rank, sp0 ); + io_sc.service_data->SetCallout( memmru ); + } + if ( sp1.isValid() ) + { + MemoryMru memmru ( iv_mbaTrgt, iv_rank, sp1 ); + io_sc.service_data->SetCallout( memmru ); + } + if ( ecc.isValid() ) + { + MemoryMru memmru ( iv_mbaTrgt, iv_rank, ecc ); + io_sc.service_data->SetCallout( memmru ); + } } } } |