diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2017-02-08 10:07:38 -0600 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2017-02-08 22:22:28 -0500 |
commit | 8ca944a7d893e3ef92498987038d487f1d9599fc (patch) | |
tree | eecab054405d7d994df3d11ca19cc517f3e2de03 /src/usr/diag/prdf | |
parent | 14f64a7c95bdb6bc65e1c492c00735001075ea71 (diff) | |
download | talos-hostboot-8ca944a7d893e3ef92498987038d487f1d9599fc.tar.gz talos-hostboot-8ca944a7d893e3ef92498987038d487f1d9599fc.zip |
PRD: error handling for PBCENTFIR[9]
Change-Id: I0f3d83a46954c468a43de1a7bca729cfb6e78f10
CQ: SW377306
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/36155
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/36183
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf')
4 files changed, 52 insertions, 8 deletions
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 4553901db..fc343404b 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 190bbc944..6c3506788 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 f15925bc4..93affafce 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 0edaa4297..ebf4f8ca7 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 |