summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C')
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C246
1 files changed, 0 insertions, 246 deletions
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C
index 4053a5414..0ff352b44 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C
@@ -264,29 +264,6 @@ int32_t maxSparesExceeded( ExtensibleChip * i_membChip,
}
PRDF_PLUGIN_DEFINE( Membuf, maxSparesExceeded );
-/**
- * @brief Checks if spare deployed bit for DMI bus is set.
- * @param i_mbChip Membuf chip
- * @param i_sc The step code data struct.
- * @return SUCCESS if bit is on, FAIL otherwise.
- */
-int32_t checkSpareBit( ExtensibleChip * i_mbChip,
- STEP_CODE_DATA_STRUCT & i_sc )
-{
- using namespace LaneRepair;
- int32_t l_rc = FAIL;
-
- ExtensibleChip * mcsChip = getMembufDataBundle( i_mbChip )->getMcsChip();
-
- if ( true == isSpareBitOnDMIBus( mcsChip, i_mbChip ))
- {
- l_rc = SUCCESS;
- }
-
- return l_rc;
-}
-PRDF_PLUGIN_DEFINE( Membuf, checkSpareBit );
-
//##############################################################################
//
// MBSECCFIRs
@@ -647,217 +624,6 @@ PLUGIN_FETCH_UE_ERROR( 1 )
//------------------------------------------------------------------------------
-/**
- * @brief Handles MCS Channel fail bits, if they exist.
- *
- * @param i_membChip The Centaur chip.
- * @param i_sc ServiceDataColector.
- *
- * @return SUCCESS if MCS channel fail is present and properly
- * handled, FAIL otherwise.
- */
-int32_t handleMcsChnlCs( ExtensibleChip * i_membChip,
- STEP_CODE_DATA_STRUCT & i_sc )
-{
- #define PRDF_FUNC "[handleMcsChnlCs] "
-
- // We will return FAIL from this function if MCS channel fail bits
- // are not set. If MCS channel fail bits are set, we will try to analyze
- // Mcs. If MCS is not analyzed properly, we will return FAIL.
- // This will trigger rule code to execute alternate resolution.
-
- int32_t l_rc = SUCCESS;
- do
- {
- CenMembufDataBundle * mbdb = getMembufDataBundle( i_membChip );
- ExtensibleChip * mcsChip = mbdb->getMcsChip();
- if( NULL == mcsChip )
- {
- l_rc = FAIL;
- break;
- }
-
- SCAN_COMM_REGISTER_CLASS * mciFir = mcsChip->getRegister("MCIFIR");
- SCAN_COMM_REGISTER_CLASS * mciFirMask =
- mcsChip->getRegister("MCIFIR_MASK");
-
- l_rc = mciFir->Read();
- l_rc |= mciFirMask->Read();
-
- if ( SUCCESS != l_rc )
- {
- PRDF_ERR( PRDF_FUNC "MCIFIR/MCIFIR_MASK read failed for 0x%08x",
- mcsChip->GetId());
- break;
- }
-
- // If any of MCS channel fail bit is set, we will analyze
- // MCS. It is safe to do hard coded check as channel fail
- // bits are hard wired and and they can not change without HW
- // change.
- // bits 0,1, 6, 8, 9, 22, 23, 40 are channel fail bits.
- uint64_t chnlCsBitsMask = 0xC2C0030000800000ull;
- uint64_t mciFirBits = mciFir->GetBitFieldJustified(0, 64);
- uint64_t mciFirMaskBits = mciFirMask->GetBitFieldJustified(0, 64);
-
- if ( mciFirBits & ~mciFirMaskBits & chnlCsBitsMask )
- {
- l_rc = mcsChip->Analyze( i_sc,
- i_sc.service_data->getSecondaryAttnType() );
-
- if( SUCCESS == l_rc ) break;
- }
-
- l_rc = FAIL;
-
- }while( 0 );
-
- return l_rc;
- #undef PRDF_FUNC
-
-} PRDF_PLUGIN_DEFINE( Membuf, handleMcsChnlCs );
-
-//------------------------------------------------------------------------------
-
-/**
- * @brief Handles MBACALFIR RCD Parity error bits, if they exist on a single mba
- *
- * @param i_membChip The Centaur chip.
- * @param i_sc ServiceDataCollector.
- * @param i_mbaPos The MBA position.
- *
- * @return SUCCESS if MBACALFIR Parity error is present and properly
- * handled, FAIL otherwise.
- */
-int32_t handleSingleMbaCalParityErr( ExtensibleChip * i_membChip,
- STEP_CODE_DATA_STRUCT & i_sc,
- uint32_t i_mbaPos)
-{
- #define PRDF_FUNC "[handleSingleMbaCalParityErr] "
-
- int32_t l_rc = SUCCESS;
-
- CenMembufDataBundle * mbdb = getMembufDataBundle( i_membChip );
-
- do
- {
- ExtensibleChip * mbaChip = mbdb->getMbaChip(i_mbaPos);
- if ( NULL == mbaChip )
- {
- l_rc = FAIL;
- break;
- }
-
- SCAN_COMM_REGISTER_CLASS * mbaCalFir =
- mbaChip->getRegister("MBACALFIR");
- SCAN_COMM_REGISTER_CLASS * mbaCalMask =
- mbaChip->getRegister("MBACALFIR_MASK");
-
- l_rc = mbaCalFir->Read();
- l_rc |= mbaCalMask->Read();
-
- if ( SUCCESS != l_rc )
- {
- PRDF_ERR( PRDF_FUNC "MBACALFIR/MBACALFIR_MASK read failed for"
- "0x%08x", mbaChip->GetId());
- break;
- }
-
- // If any of the MBACALFIR parity error bits are set, we will
- // analyze the MBA.
- // bits 4 and 7 are parity error bits
- bool bit4 = mbaCalFir->IsBitSet(4);
- bool mask4 = mbaCalMask->IsBitSet(4);
-
- bool bit7 = mbaCalFir->IsBitSet(7);
- bool mask7 = mbaCalMask->IsBitSet(7);
-
- if ( ( bit4 && !mask4 ) || ( bit7 && !mask7 ) )
- {
- l_rc = mbaChip->Analyze( i_sc,
- i_sc.service_data->getSecondaryAttnType() );
- if ( SUCCESS == l_rc ) break;
- }
-
- l_rc = FAIL;
-
- }while(0);
-
- return l_rc;
- #undef PRDF_FUNC
-
-} PRDF_PLUGIN_DEFINE( Membuf, handleSingleMbaCalParityErr );
-
-//------------------------------------------------------------------------------
-
-/**
- * @brief MBSFIR[4] - Internal Timeout error.
- * @param i_mbChip The Centaur chip
- * @param i_sc Step code data struct
- * @return Non-SUCCESS if analysis fails. SUCCESS otherwise.
- */
-int32_t internalTimeout( ExtensibleChip * i_mbChip,
- STEP_CODE_DATA_STRUCT & i_sc )
-{
- #define PRDF_FUNC "[internalTimeout] "
-
- int32_t o_rc = SUCCESS;
-
- do
- {
- // First, check if there are any MBACALFIR parity errors.
- for ( uint32_t i = 0; i < MAX_MBA_PER_MEMBUF; i++)
- {
- o_rc = handleSingleMbaCalParityErr( i_mbChip, i_sc, i );
-
- // If SUCCESS is returned, then there was a parity error and
- // analysis was successful.
- if ( SUCCESS == o_rc ) break;
- }
- if ( SUCCESS == o_rc ) break; // nothing more to do.
-
- // Next, check if there was an MBSFIR external timeout.
- SCAN_COMM_REGISTER_CLASS * fir = i_mbChip->getRegister("MBSFIR");
- o_rc = fir->Read();
- if ( SUCCESS != o_rc )
- {
- PRDF_ERR( PRDF_FUNC "failed to read MBSFIR on 0x%08x",
- i_mbChip->GetId() );
- break;
- }
-
- if ( fir->IsBitSet(3) )
- {
- if ( CHECK_STOP == i_sc.service_data->getPrimaryAttnType() )
- {
- // In this case, we do not want the internal timeout to be
- // blamed as the root cause of the checkstop. So move onto the
- // next FIR bit.
- o_rc = PRD_SCAN_COMM_REGISTER_ZERO;
- }
- else
- {
- // Make the callout of the external timeout error.
- i_sc.service_data->SetCallout( LEVEL2_SUPPORT,
- MRU_MED, NO_GARD );
- }
- }
- else
- {
- // The internal timeout error is on by itself.
- i_sc.service_data->SetCallout( i_mbChip->GetChipHandle(), MRU_MED );
- }
-
- } while (0);
-
- return o_rc;
-
- #undef PRDF_FUNC
-
-} PRDF_PLUGIN_DEFINE( Membuf, internalTimeout );
-
-//------------------------------------------------------------------------------
-
// Define the plugins for memory ECC errors.
#define PLUGIN_FETCH_ECC_ERROR( TYPE, MBA ) \
int32_t AnalyzeFetch##TYPE##MBA( ExtensibleChip * i_membChip, \
@@ -892,18 +658,6 @@ PLUGIN_FETCH_RCE_PREUE_ERROR( PreUe, 1, false )
#undef PLUGIN_FETCH_RCE_PREUE_ERROR
-// Define the plugins for RCD parity error memory UE side-effects
-#define PLUGIN_RCD_PARITY_UE_SIDEEFFECTS( MBA ) \
-int32_t handleSingleMbaCalParityErr##MBA( ExtensibleChip * i_membChip, \
- STEP_CODE_DATA_STRUCT & i_sc) \
-{ \
- return handleSingleMbaCalParityErr( i_membChip, i_sc, MBA ); \
-} \
-PRDF_PLUGIN_DEFINE( Membuf, handleSingleMbaCalParityErr##MBA );
-
-PLUGIN_RCD_PARITY_UE_SIDEEFFECTS ( 0 )
-PLUGIN_RCD_PARITY_UE_SIDEEFFECTS ( 1 )
-
//------------------------------------------------------------------------------
int32_t calloutInterface_dmi( ExtensibleChip * i_membChip,
OpenPOWER on IntegriCloud