Skip to content

Commit

Permalink
PRD: Add plugins for NCE/TCE attentions
Browse files Browse the repository at this point in the history
Change-Id: Ifc75831e5bbb706d2cdf156720cb4efe048787da
RTC: 165382
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/36753
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/37015
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
  • Loading branch information
zane131 committed Feb 27, 2017
1 parent 33f3061 commit 9906005
Show file tree
Hide file tree
Showing 5 changed files with 105 additions and 7 deletions.
44 changes: 44 additions & 0 deletions src/usr/diag/prdf/common/plat/mem/prdfMemEccAnalysis.C
Expand Up @@ -258,6 +258,50 @@ uint32_t analyzeFetchMpe<TYPE_MCA, McaDataBundle *>( ExtensibleChip * i_chip,

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

template<TARGETING::TYPE T, typename D>
uint32_t analyzeFetchNce( ExtensibleChip * i_chip,
STEP_CODE_DATA_STRUCT & io_sc )
{
#define PRDF_FUNC "[MemEcc::analyzeFetchNce] "

PRDF_ASSERT( T == i_chip->getType() );

uint32_t o_rc = SUCCESS;

return o_rc;

#undef PRDF_FUNC
}

// To resolve template linker errors.
template
uint32_t analyzeFetchNce<TYPE_MCA, McaDataBundle *>( ExtensibleChip * i_chip,
STEP_CODE_DATA_STRUCT & io_sc );

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

template<TARGETING::TYPE T, typename D>
uint32_t analyzeFetchTce( ExtensibleChip * i_chip,
STEP_CODE_DATA_STRUCT & io_sc )
{
#define PRDF_FUNC "[MemEcc::analyzeFetchTce] "

PRDF_ASSERT( T == i_chip->getType() );

uint32_t o_rc = SUCCESS;

return o_rc;

#undef PRDF_FUNC
}

// To resolve template linker errors.
template
uint32_t analyzeFetchTce<TYPE_MCA, McaDataBundle *>( ExtensibleChip * i_chip,
STEP_CODE_DATA_STRUCT & io_sc );

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

template<TARGETING::TYPE T, typename D>
uint32_t analyzeFetchUe( ExtensibleChip * i_chip,
STEP_CODE_DATA_STRUCT & io_sc )
Expand Down
20 changes: 20 additions & 0 deletions src/usr/diag/prdf/common/plat/mem/prdfMemEccAnalysis.H
Expand Up @@ -69,6 +69,26 @@ template<TARGETING::TYPE T, typename D>
uint32_t analyzeFetchMpe( ExtensibleChip * i_chip, const MemRank & i_rank,
STEP_CODE_DATA_STRUCT & io_sc );

/**
* @brief Analyzes a fetch NCE attention.
* @param i_chip MCA or MBA.
* @param io_sc The step code data struct.
* @return Non-SUCCESS if an interal function fails, SUCCESS otherwise.
*/
template<TARGETING::TYPE T, typename D>
uint32_t analyzeFetchNce( ExtensibleChip * i_chip,
STEP_CODE_DATA_STRUCT & io_sc );

/**
* @brief Analyzes a fetch TCE attention.
* @param i_chip MCA or MBA.
* @param io_sc The step code data struct.
* @return Non-SUCCESS if an interal function fails, SUCCESS otherwise.
*/
template<TARGETING::TYPE T, typename D>
uint32_t analyzeFetchTce( ExtensibleChip * i_chip,
STEP_CODE_DATA_STRUCT & io_sc );

/**
* @brief Analyzes a fetch UE attention.
* @param i_chip MCA or MBA.
Expand Down
34 changes: 34 additions & 0 deletions src/usr/diag/prdf/common/plat/mem/prdfP9Mca_common.C
Expand Up @@ -196,6 +196,38 @@ PLUGIN_FETCH_MPE_ERROR( 7 )

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

/**
* @brief MCAECCFIR[8] - Mainline NCE.
* @param i_chip MCA chip.
* @param io_sc The step code data struct.
* @return SUCCESS
*/
int32_t AnalyzeFetchNce( ExtensibleChip * i_chip,
STEP_CODE_DATA_STRUCT & io_sc )
{
MemEcc::analyzeFetchNce<TYPE_MCA, McaDataBundle *>( i_chip, io_sc );
return SUCCESS; // nothing to return to rule code
}
PRDF_PLUGIN_DEFINE( p9_mca, AnalyzeFetchNce );

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

/**
* @brief MCAECCFIR[9] - Mainline TCE.
* @param i_chip MCA chip.
* @param io_sc The step code data struct.
* @return SUCCESS
*/
int32_t AnalyzeFetchTce( ExtensibleChip * i_chip,
STEP_CODE_DATA_STRUCT & io_sc )
{
MemEcc::analyzeFetchTce<TYPE_MCA, McaDataBundle *>( i_chip, io_sc );
return SUCCESS; // nothing to return to rule code
}
PRDF_PLUGIN_DEFINE( p9_mca, AnalyzeFetchTce );

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

/**
* @brief MCAECCFIR[14] - Mainline UE.
* @param i_chip MCA chip.
Expand All @@ -210,6 +242,8 @@ int32_t AnalyzeFetchUe( ExtensibleChip * i_chip,
}
PRDF_PLUGIN_DEFINE( p9_mca, AnalyzeFetchUe );

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

} // end namespace p9_mca

} // end namespace PRDF
Expand Down
4 changes: 2 additions & 2 deletions src/usr/diag/prdf/common/plat/p9/p9_mca.rule
Expand Up @@ -369,12 +369,12 @@ group gMCAECCFIR filter singlebit, cs_root_cause( 14 )
/** MCAECCFIR[8]
* Mainline read NCE
*/
(rMCAECCFIR, bit(8)) ? mainline_ce_ue_handling;
(rMCAECCFIR, bit(8)) ? mainline_nce_handling;

/** MCAECCFIR[9]
* Mainline read TCE
*/
(rMCAECCFIR, bit(9)) ? mainline_ce_ue_handling;
(rMCAECCFIR, bit(9)) ? mainline_tce_handling;

/** MCAECCFIR[10]
* Mainline read SCE
Expand Down
10 changes: 5 additions & 5 deletions src/usr/diag/prdf/common/plat/p9/p9_mca_actions.rule
Expand Up @@ -50,11 +50,11 @@ actionclass verify_chip_mark_5 { funccall("AnalyzeFetchMpe_5"); };
actionclass verify_chip_mark_6 { funccall("AnalyzeFetchMpe_6"); };
actionclass verify_chip_mark_7 { funccall("AnalyzeFetchMpe_7"); };

/** Mainline CE UE handling...TBD */
actionclass mainline_ce_ue_handling
{
TBDDefaultCallout;
};
/** Mainline NCE handling */
actionclass mainline_nce_handling { funccall("AnalyzeFetchNce"); };

/** Mainline TCE handling */
actionclass mainline_tce_handling { funccall("AnalyzeFetchTce"); };

/** Mainline UE handling */
actionclass mainline_ue_handling
Expand Down

0 comments on commit 9906005

Please sign in to comment.