diff options
Diffstat (limited to 'src/usr')
-rwxr-xr-x | src/usr/diag/prdf/common/plat/p9/prdfCenPll.C | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/usr/diag/prdf/common/plat/p9/prdfCenPll.C b/src/usr/diag/prdf/common/plat/p9/prdfCenPll.C index af550a457..d10f51d67 100755 --- a/src/usr/diag/prdf/common/plat/p9/prdfCenPll.C +++ b/src/usr/diag/prdf/common/plat/p9/prdfCenPll.C @@ -31,6 +31,7 @@ #include <prdfExtensibleChip.H> #include <prdfPluginMap.H> #include <prdfFsiCapUtil.H> +#include <prdfP9Pll.H> namespace PRDF { @@ -101,6 +102,30 @@ int32_t QueryPll( ExtensibleChip * i_chip, PRDF_PLUGIN_DEFINE( cen_centaur, QueryPll ); /** + * @brief Examine chiplets to determine which type of PLL error has ocurred. + * There are no PCI clocks or switchovers reported on centaur, so the + * only errType to report here is SYS_PLL_UNLOCK + * @param i_chip Centaur chip + * @param o_errType enum indicating which type of PLL error is detected + * @returns Failure or Success + */ +int32_t CheckErrorType( ExtensibleChip * i_chip, uint32_t & o_errType ) +{ + #define PRDF_FUNC "[Proc::CheckErrorType] " + int32_t rc = SUCCESS; + bool errFound = false; + + rc = QueryPll( i_chip, errFound ); + + if ( (SUCCESS == rc) && errFound ) + o_errType |= SYS_PLL_UNLOCK; + + return SUCCESS; + #undef PRDF_FUNC +} +PRDF_PLUGIN_DEFINE( cen_centaur, CheckErrorType ); + +/** * @brief Clear the PLL error for Centaur Plugin * @param i_chip Centaur chip * @param i_sc The step code data struct. |