diff --git a/src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule b/src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule index 4553901db00..fc343404b62 100644 --- a/src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule +++ b/src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule @@ -5109,7 +5109,7 @@ group gPBCENTFIR filter singlebit /** PBCENTFIR[9] * pb hang_recovery_gte_level1 */ - (rPBCENTFIR, bit(9)) ? threshold_and_mask; + (rPBCENTFIR, bit(9)) ? pb_cent_hang_recovery_gte; /** PBCENTFIR[10] * pb fsp checkstop diff --git a/src/usr/diag/prdf/common/plat/p9/p9_nimbus_actions.rule b/src/usr/diag/prdf/common/plat/p9/p9_nimbus_actions.rule index 190bbc944c8..6c3506788bc 100644 --- a/src/usr/diag/prdf/common/plat/p9/p9_nimbus_actions.rule +++ b/src/usr/diag/prdf/common/plat/p9/p9_nimbus_actions.rule @@ -50,3 +50,15 @@ actionclass PcbSlaveInternalParity funccall("clearParityError"); }; +/** + * Threshold 32/day (field) and 1 (mnfg). Do not predictively callout on + * threshold, instead just mask. + */ +actionclass pb_cent_hang_recovery_gte +{ + capture(PbCentMode); + calloutSelfMed; + threshold32pday; + funccall("ClearServiceCallFlag_mnfgInfo"); +}; + diff --git a/src/usr/diag/prdf/common/plat/p9/p9_nimbus_regs.rule b/src/usr/diag/prdf/common/plat/p9/p9_nimbus_regs.rule index f15925bc49c..93affafce23 100644 --- a/src/usr/diag/prdf/common/plat/p9/p9_nimbus_regs.rule +++ b/src/usr/diag/prdf/common/plat/p9/p9_nimbus_regs.rule @@ -22,13 +22,14 @@ # permissions and limitations under the License. # # IBM_PROLOG_END_TAG -############################################################################### + +################################################################################ # Additional registers for nimbus chip, not defined in XML -############################################################################### +################################################################################ - ########################################################################### + ############################################################################ # N3 Chiplet PBEXTFIR - ########################################################################### + ############################################################################ # External checkstop register - Used for FFDC and Fabric sorting only # Any attention generated from this FIR register indicates that there was a @@ -44,9 +45,21 @@ capture group default; }; - ########################################################################### + ############################################################################ + # Misc Registers + ############################################################################ + + register PB_CENT_MODE + { + name "PB.COM.PB_CENT_MODE"; + scomaddr 0x05011C0A; + capture group PbCentMode; + }; + + ############################################################################ # Non-FIR Registers - ########################################################################### + ############################################################################ + register CFAM_FSI_STATUS { name "TPC.FSI.FSI2PIB.STATUS"; @@ -81,3 +94,4 @@ scomaddr 0x010F001E; capture group PllFIRs; }; + diff --git a/src/usr/diag/prdf/common/plat/p9/prdfCommonPlugins.C b/src/usr/diag/prdf/common/plat/p9/prdfCommonPlugins.C index 0edaa4297f0..ebf4f8ca77b 100644 --- a/src/usr/diag/prdf/common/plat/p9/prdfCommonPlugins.C +++ b/src/usr/diag/prdf/common/plat/p9/prdfCommonPlugins.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2016 */ +/* Contributors Listed Below - COPYRIGHT 2016,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -73,6 +73,24 @@ PRDF_PLUGIN_DEFINE_NS( p9_capp, CommonPlugins, ClearServiceCallFlag ); PRDF_PLUGIN_DEFINE_NS( p9_phb, CommonPlugins, ClearServiceCallFlag ); PRDF_PLUGIN_DEFINE_NS( p9_mcs, CommonPlugins, ClearServiceCallFlag ); +/** + * @brief Clear the service call flag (field and MNFG) so that thresholding + * will still be done, but no visible error log committed. + * @param i_chip PROC + * @param i_sc Step code data struct + * @returns SUCCESS always + */ +int32_t ClearServiceCallFlag_mnfgInfo( ExtensibleChip * i_chip, + STEP_CODE_DATA_STRUCT & i_sc ) +{ + if ( i_sc.service_data->IsAtThreshold() ) + { + i_sc.service_data->clearServiceCall(); + } + + return SUCCESS; +} +PRDF_PLUGIN_DEFINE_NS(p9_nimbus, CommonPlugins, ClearServiceCallFlag_mnfgInfo); } // namespace CommonPlugins ends