summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/plat/nimbus
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/diag/prdf/common/plat/nimbus')
-rw-r--r--src/usr/diag/prdf/common/plat/nimbus/nimbus_mca.rule16
-rw-r--r--src/usr/diag/prdf/common/plat/nimbus/nimbus_mca_actions.rule22
-rw-r--r--src/usr/diag/prdf/common/plat/nimbus/nimbus_mcbist.rule4
-rw-r--r--src/usr/diag/prdf/common/plat/nimbus/nimbus_mcbist_actions.rule13
-rw-r--r--src/usr/diag/prdf/common/plat/nimbus/nimbus_mcs.rule4
-rw-r--r--src/usr/diag/prdf/common/plat/nimbus/nimbus_mcs_actions.rule13
-rw-r--r--src/usr/diag/prdf/common/plat/nimbus/nimbus_obus.rule64
-rw-r--r--src/usr/diag/prdf/common/plat/nimbus/nimbus_proc.rule4
-rw-r--r--src/usr/diag/prdf/common/plat/nimbus/nimbus_proc_actions.rule12
9 files changed, 99 insertions, 53 deletions
diff --git a/src/usr/diag/prdf/common/plat/nimbus/nimbus_mca.rule b/src/usr/diag/prdf/common/plat/nimbus/nimbus_mca.rule
index eea254545..d1a6bc290 100644
--- a/src/usr/diag/prdf/common/plat/nimbus/nimbus_mca.rule
+++ b/src/usr/diag/prdf/common/plat/nimbus/nimbus_mca.rule
@@ -241,7 +241,7 @@ group gMCACALFIR
/** MCACALFIR[0]
* A MBA recoverable error has occurred.
*/
- (rMCACALFIR, bit(0)) ? self_th_1;
+ (rMCACALFIR, bit(0)) ? nvdimm_self_th_1;
/** MCACALFIR[1]
* MBA Nonrecoverable Error
@@ -251,7 +251,7 @@ group gMCACALFIR
/** MCACALFIR[2]
* Excessive refreshes to a single rank.
*/
- (rMCACALFIR, bit(2)) ? self_th_32perDay;
+ (rMCACALFIR, bit(2)) ? nvdimm_self_th_32perDay;
/** MCACALFIR[3]
* Err detected in the MBA debug WAT logic
@@ -266,7 +266,7 @@ group gMCACALFIR
/** MCACALFIR[5]
* Calibration complete indication xout
*/
- (rMCACALFIR, bit(5)) ? self_th_32perDay;
+ (rMCACALFIR, bit(5)) ? nvdimm_self_th_32perDay;
/** MCACALFIR[6]
* Emergency Throttle
@@ -279,7 +279,7 @@ group gMCACALFIR
(rMCACALFIR, bit(7)) ? self_th_1;
/** MCACALFIR[8]
- * event_n active on DDR interface
+ * Active NVDIMM Attention
*/
(rMCACALFIR, bit(8)) ? analyzeNvdimms;
@@ -533,7 +533,7 @@ group gMCAECCFIR
/** MCAECCFIR[42]
* SCOM_PARITY_CLASS_RECOVERABLE
*/
- (rMCAECCFIR, bit(42)) ? self_th_1;
+ (rMCAECCFIR, bit(42)) ? nvdimm_self_th_1;
/** MCAECCFIR[43]
* SCOM_PARITY_CLASS_UNRECOVERABLE
@@ -548,7 +548,7 @@ group gMCAECCFIR
/** MCAECCFIR[45]
* WRITE_RMW_CE
*/
- (rMCAECCFIR, bit(45)) ? self_th_32perDay;
+ (rMCAECCFIR, bit(45)) ? nvdimm_self_th_32perDay;
/** MCAECCFIR[46]
* WRITE_RMW_UE
@@ -686,12 +686,12 @@ group gDDRPHYFIR
/** DDRPHYFIR[60]
* Register PE 4 bit impact
*/
- (rDDRPHYFIR, bit(60)) ? self_th_1;
+ (rDDRPHYFIR, bit(60)) ? nvdimm_self_th_1;
/** DDRPHYFIR[61]
* Register PE 1 bit impact
*/
- (rDDRPHYFIR, bit(61)) ? self_th_1;
+ (rDDRPHYFIR, bit(61)) ? nvdimm_self_th_1;
};
diff --git a/src/usr/diag/prdf/common/plat/nimbus/nimbus_mca_actions.rule b/src/usr/diag/prdf/common/plat/nimbus/nimbus_mca_actions.rule
index da3a73f82..6d5ab9018 100644
--- a/src/usr/diag/prdf/common/plat/nimbus/nimbus_mca_actions.rule
+++ b/src/usr/diag/prdf/common/plat/nimbus/nimbus_mca_actions.rule
@@ -70,6 +70,7 @@ actionclass rcd_parity_error
calloutSelfLowNoGard; # Self LOW
# Thresholding done in plugin
funccall("RcdParityError"); # Run TPS on TH for all MCA ranks
+ funccall("ClearNvdimmGardState"); # Clear gard for NVDIMMs
};
/** Handle Mainline IUEs */
@@ -125,7 +126,7 @@ actionclass maintenance_iaue_handling
/** MCA/UE algroithm, threshold 5 per day */
actionclass mca_ue_algorithm_th_5perDay
{
- calloutSelfMed;
+ try( funccall("CheckForNvdimms"), calloutSelfMed );
threshold5pday;
funccall("mcaUeAlgorithm"); # must be called last
};
@@ -133,12 +134,29 @@ actionclass mca_ue_algorithm_th_5perDay
/** MCA/UE algroithm, threshold 1 */
actionclass mca_ue_algorithm_th_1
{
- calloutSelfMed;
+ try( funccall("CheckForNvdimms"), calloutSelfMed );
threshold1;
funccall("mcaUeAlgorithm"); # must be called last
};
################################################################################
+# NVDIMM callouts #
+################################################################################
+
+# Simple callouts that will avoid gard for NVDIMMs at IPL
+actionclass nvdimm_self_th_1
+{
+ try( funccall("CheckForNvdimms"), calloutSelfMed );
+ threshold1;
+};
+
+actionclass nvdimm_self_th_32perDay
+{
+ try( funccall("CheckForNvdimms"), calloutSelfMed );
+ threshold32pday;
+};
+
+################################################################################
# Analyze groups
################################################################################
diff --git a/src/usr/diag/prdf/common/plat/nimbus/nimbus_mcbist.rule b/src/usr/diag/prdf/common/plat/nimbus/nimbus_mcbist.rule
index 1f61719a7..0a3301e2a 100644
--- a/src/usr/diag/prdf/common/plat/nimbus/nimbus_mcbist.rule
+++ b/src/usr/diag/prdf/common/plat/nimbus/nimbus_mcbist.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2016,2018
+# Contributors Listed Below - COPYRIGHT 2016,2019
# [+] International Business Machines Corp.
#
#
@@ -599,7 +599,7 @@ group gMCBISTFIR
/** MCBISTFIR[13]
* SCOM_RECOVERABLE_REG_PE
*/
- (rMCBISTFIR, bit(13)) ? self_th_1;
+ (rMCBISTFIR, bit(13)) ? nvdimm_self_th_1;
/** MCBISTFIR[14]
* SCOM_FATAL_REG_PE
diff --git a/src/usr/diag/prdf/common/plat/nimbus/nimbus_mcbist_actions.rule b/src/usr/diag/prdf/common/plat/nimbus/nimbus_mcbist_actions.rule
index 9b2127f3f..11d499e30 100644
--- a/src/usr/diag/prdf/common/plat/nimbus/nimbus_mcbist_actions.rule
+++ b/src/usr/diag/prdf/common/plat/nimbus/nimbus_mcbist_actions.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2016,2018
+# Contributors Listed Below - COPYRIGHT 2016,2019
# [+] International Business Machines Corp.
#
#
@@ -36,6 +36,17 @@ actionclass command_addr_timeout
funccall("commandAddrTimeout");
};
+################################################################################
+# NVDIMM callouts #
+################################################################################
+
+# Simple callouts that will avoid gard for NVDIMMs at IPL
+actionclass nvdimm_self_th_1
+{
+ try( funccall("CheckForNvdimms"), calloutSelfMed );
+ threshold1;
+};
+
###############################################################################
# Analyze groups
###############################################################################
diff --git a/src/usr/diag/prdf/common/plat/nimbus/nimbus_mcs.rule b/src/usr/diag/prdf/common/plat/nimbus/nimbus_mcs.rule
index 71a0342ab..987d68afb 100644
--- a/src/usr/diag/prdf/common/plat/nimbus/nimbus_mcs.rule
+++ b/src/usr/diag/prdf/common/plat/nimbus/nimbus_mcs.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2016,2018
+# Contributors Listed Below - COPYRIGHT 2016,2019
# [+] International Business Machines Corp.
#
#
@@ -148,7 +148,7 @@ group gMCFIR
/** MCFIR[0]
* mc internal recoverable eror
*/
- (rMCFIR, bit(0)) ? self_th_1;
+ (rMCFIR, bit(0)) ? nvdimm_self_th_1;
/** MCFIR[1]
* mc internal non recovervable error
diff --git a/src/usr/diag/prdf/common/plat/nimbus/nimbus_mcs_actions.rule b/src/usr/diag/prdf/common/plat/nimbus/nimbus_mcs_actions.rule
index 1497cdccb..35339ccc6 100644
--- a/src/usr/diag/prdf/common/plat/nimbus/nimbus_mcs_actions.rule
+++ b/src/usr/diag/prdf/common/plat/nimbus/nimbus_mcs_actions.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2018
+# Contributors Listed Below - COPYRIGHT 2018,2019
# [+] International Business Machines Corp.
#
#
@@ -24,6 +24,17 @@
# IBM_PROLOG_END_TAG
################################################################################
+# NVDIMM callouts #
+################################################################################
+
+# Simple callouts that will avoid gard for NVDIMMs at IPL
+actionclass nvdimm_self_th_1
+{
+ try( funccall("CheckForNvdimms"), calloutSelfMed );
+ threshold1;
+};
+
+################################################################################
# Analyze groups
################################################################################
diff --git a/src/usr/diag/prdf/common/plat/nimbus/nimbus_obus.rule b/src/usr/diag/prdf/common/plat/nimbus/nimbus_obus.rule
index a4ce0d02d..790537acf 100644
--- a/src/usr/diag/prdf/common/plat/nimbus/nimbus_obus.rule
+++ b/src/usr/diag/prdf/common/plat/nimbus/nimbus_obus.rule
@@ -469,12 +469,12 @@ group gIOOLFIR
/** IOOLFIR[8]
* link0 nak received
*/
- (rIOOLFIR, bit(8)) ? defaultMaskedError;
+ (rIOOLFIR, bit(8)) ? threshold_and_mask_self_non_smp_only;
/** IOOLFIR[9]
* link1 nak received
*/
- (rIOOLFIR, bit(9)) ? defaultMaskedError;
+ (rIOOLFIR, bit(9)) ? threshold_and_mask_self_non_smp_only;
/** IOOLFIR[10]
* link0 replay buffer full
@@ -499,22 +499,22 @@ group gIOOLFIR
/** IOOLFIR[14]
* link0 sl ecc correctable
*/
- (rIOOLFIR, bit(14)) ? threshold_and_mask_self;
+ (rIOOLFIR, bit(14)) ? threshold_and_mask_self_smp_only;
/** IOOLFIR[15]
* link1 sl ecc correctable
*/
- (rIOOLFIR, bit(15)) ? threshold_and_mask_self;
+ (rIOOLFIR, bit(15)) ? threshold_and_mask_self_smp_only;
/** IOOLFIR[16]
* link0 sl ecc ue
*/
- (rIOOLFIR, bit(16)) ? threshold_and_mask_self;
+ (rIOOLFIR, bit(16)) ? threshold_and_mask_self_smp_only;
/** IOOLFIR[17]
* link1 sl ecc ue
*/
- (rIOOLFIR, bit(17)) ? threshold_and_mask_self;
+ (rIOOLFIR, bit(17)) ? threshold_and_mask_self_smp_only;
/** IOOLFIR[18]
* link0 retrain threshold
@@ -597,12 +597,12 @@ group gIOOLFIR
(rIOOLFIR, bit(33)) ? defaultMaskedError;
/** IOOLFIR[34]
- * link0 num replay
+ * link0 num replay or no forward progress
*/
(rIOOLFIR, bit(34)) ? defaultMaskedError;
/** IOOLFIR[35]
- * link1 num replay
+ * link1 num replay or no forward progress
*/
(rIOOLFIR, bit(35)) ? defaultMaskedError;
@@ -619,12 +619,12 @@ group gIOOLFIR
/** IOOLFIR[38]
* link0 prbs select error
*/
- (rIOOLFIR, bit(38)) ? threshold_and_mask_self;
+ (rIOOLFIR, bit(38)) ? threshold_and_mask_self_smp_only;
/** IOOLFIR[39]
* link1 prbs select error
*/
- (rIOOLFIR, bit(39)) ? threshold_and_mask_self;
+ (rIOOLFIR, bit(39)) ? threshold_and_mask_self_smp_only;
/** IOOLFIR[40]
* link0 tcomplete bad
@@ -639,102 +639,102 @@ group gIOOLFIR
/** IOOLFIR[42]
* link0 no spare lane available
*/
- (rIOOLFIR, bit(42)) ? obusSmpCallout_L0;
+ (rIOOLFIR, bit(42)) ? obusSmpCallout_L0_smp_only;
/** IOOLFIR[43]
* link1 no spare lane available
*/
- (rIOOLFIR, bit(43)) ? obusSmpCallout_L1;
+ (rIOOLFIR, bit(43)) ? obusSmpCallout_L1_smp_only;
/** IOOLFIR[44]
- * link0 spare done
+ * link0 spare done or degraded mode
*/
- (rIOOLFIR, bit(44)) ? obusSmpCallout_th32_L0;
+ (rIOOLFIR, bit(44)) ? spare_lane_degraded_mode_L0;
/** IOOLFIR[45]
- * link1 spare done
+ * link1 spare done or degraded mode
*/
- (rIOOLFIR, bit(45)) ? obusSmpCallout_th32_L1;
+ (rIOOLFIR, bit(45)) ? spare_lane_degraded_mode_L1;
/** IOOLFIR[46]
* link0 too many crc errors
*/
- (rIOOLFIR, bit(46)) ? obusSmpCallout_L0;
+ (rIOOLFIR, bit(46)) ? obusSmpCallout_L0_smp_only;
/** IOOLFIR[47]
* link1 too many crc errors
*/
- (rIOOLFIR, bit(47)) ? obusSmpCallout_L1;
+ (rIOOLFIR, bit(47)) ? obusSmpCallout_L1_smp_only;
/** IOOLFIR[48]
- * link0 npu error
+ * link0 npu error or orx otx dlx errors
*/
(rIOOLFIR, bit(48)) ? threshold_and_mask_self;
/** IOOLFIR[49]
- * link1 npu error
+ * link1 npu error or orx otx dlx errors
*/
(rIOOLFIR, bit(49)) ? threshold_and_mask_self;
/** IOOLFIR[50]
* linkx npu error
*/
- (rIOOLFIR, bit(50)) ? threshold_and_mask_self;
+ (rIOOLFIR, bit(50)) ? threshold_and_mask_self_smp_only;
/** IOOLFIR[51]
* osc switch
*/
- (rIOOLFIR, bit(51)) ? threshold_and_mask_self;
+ (rIOOLFIR, bit(51)) ? threshold_and_mask_self_smp_only;
/** IOOLFIR[52]
* link0 correctable array error
*/
- (rIOOLFIR, bit(52)) ? obusSmpCallout_th32_L0;
+ (rIOOLFIR, bit(52)) ? self_th_32perDay;
/** IOOLFIR[53]
* link1 correctable array error
*/
- (rIOOLFIR, bit(53)) ? obusSmpCallout_th32_L1;
+ (rIOOLFIR, bit(53)) ? self_th_32perDay;
/** IOOLFIR[54]
* link0 uncorrectable array error
*/
- (rIOOLFIR, bit(54)) ? obusSmpFailure_L0;
+ (rIOOLFIR, bit(54)) ? self_th_1;
/** IOOLFIR[55]
* link1 uncorrectable array error
*/
- (rIOOLFIR, bit(55)) ? obusSmpFailure_L1;
+ (rIOOLFIR, bit(55)) ? self_th_1;
/** IOOLFIR[56]
* link0 training failed
*/
- (rIOOLFIR, bit(56)) ? obusSmpFailure_L0;
+ (rIOOLFIR, bit(56)) ? training_failure_L0;
/** IOOLFIR[57]
* link1 training failed
*/
- (rIOOLFIR, bit(57)) ? obusSmpFailure_L1;
+ (rIOOLFIR, bit(57)) ? training_failure_L1;
/** IOOLFIR[58]
* link0 unrecoverable error
*/
- (rIOOLFIR, bit(58)) ? obusSmpFailure_L0;
+ (rIOOLFIR, bit(58)) ? unrecoverable_error_L0;
/** IOOLFIR[59]
* link1 unrecoverable error
*/
- (rIOOLFIR, bit(59)) ? obusSmpFailure_L1;
+ (rIOOLFIR, bit(59)) ? unrecoverable_error_L1;
/** IOOLFIR[60]
* link0 internal error
*/
- (rIOOLFIR, bit(60)) ? obusSmpFailure_L0;
+ (rIOOLFIR, bit(60)) ? internal_error_L0;
/** IOOLFIR[61]
* link1 internal error
*/
- (rIOOLFIR, bit(61)) ? obusSmpFailure_L1;
+ (rIOOLFIR, bit(61)) ? internal_error_L1;
/** IOOLFIR[62]
* fir scom err dup
diff --git a/src/usr/diag/prdf/common/plat/nimbus/nimbus_proc.rule b/src/usr/diag/prdf/common/plat/nimbus/nimbus_proc.rule
index 6ac3bc5a1..6712a5977 100644
--- a/src/usr/diag/prdf/common/plat/nimbus/nimbus_proc.rule
+++ b/src/usr/diag/prdf/common/plat/nimbus/nimbus_proc.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2016,2018
+# Contributors Listed Below - COPYRIGHT 2016,2019
# [+] International Business Machines Corp.
#
#
@@ -2872,7 +2872,7 @@ group gNXCQFIR
/** NXCQFIR[19]
* Uncorrectable error on ERAT arrays
*/
- (rNXCQFIR, bit(19)) ? nx_th_32perDay;
+ (rNXCQFIR, bit(19)) ? nx_th_1;
/** NXCQFIR[20]
* SUE on ERAT arrays
diff --git a/src/usr/diag/prdf/common/plat/nimbus/nimbus_proc_actions.rule b/src/usr/diag/prdf/common/plat/nimbus/nimbus_proc_actions.rule
index 826308710..1960da53b 100644
--- a/src/usr/diag/prdf/common/plat/nimbus/nimbus_proc_actions.rule
+++ b/src/usr/diag/prdf/common/plat/nimbus/nimbus_proc_actions.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2018
+# Contributors Listed Below - COPYRIGHT 2018,2019
# [+] International Business Machines Corp.
#
#
@@ -23,9 +23,15 @@
#
# IBM_PROLOG_END_TAG
-###############################################################################
+################################################################################
+# Analyze
+################################################################################
+
+actionclass analyzeENHCAFIR { analyze(gENHCAFIR); };
+
+################################################################################
# Analyze connected
-###############################################################################
+################################################################################
actionclass analyzeConnectedMCBIST0 { analyze(connected(TYPE_MCBIST, 0)); };
actionclass analyzeConnectedMCBIST1 { analyze(connected(TYPE_MCBIST, 1)); };
OpenPOWER on IntegriCloud