summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/plat/axone
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/diag/prdf/common/plat/axone')
-rw-r--r--src/usr/diag/prdf/common/plat/axone/axone_mc.rule106
-rw-r--r--src/usr/diag/prdf/common/plat/axone/axone_mc_actions.rule4
-rw-r--r--src/usr/diag/prdf/common/plat/axone/axone_mc_regs.rule47
-rw-r--r--src/usr/diag/prdf/common/plat/axone/axone_mcc.rule161
-rw-r--r--src/usr/diag/prdf/common/plat/axone/axone_mcc_actions.rule156
-rw-r--r--src/usr/diag/prdf/common/plat/axone/axone_mcc_regs.rule80
-rw-r--r--src/usr/diag/prdf/common/plat/axone/axone_mi.rule14
-rw-r--r--src/usr/diag/prdf/common/plat/axone/axone_mi_regs.rule56
-rw-r--r--src/usr/diag/prdf/common/plat/axone/axone_npu.rule203
-rw-r--r--src/usr/diag/prdf/common/plat/axone/axone_obus.rule64
-rw-r--r--src/usr/diag/prdf/common/plat/axone/axone_omic.rule193
-rw-r--r--src/usr/diag/prdf/common/plat/axone/axone_omic_actions.rule129
-rw-r--r--src/usr/diag/prdf/common/plat/axone/axone_omic_regs.rule62
-rw-r--r--src/usr/diag/prdf/common/plat/axone/axone_phb.rule10
-rw-r--r--src/usr/diag/prdf/common/plat/axone/axone_proc.rule195
-rw-r--r--src/usr/diag/prdf/common/plat/axone/prdfMccPlugins.C142
-rw-r--r--src/usr/diag/prdf/common/plat/axone/prdfOmicPlugins.C173
-rw-r--r--src/usr/diag/prdf/common/plat/axone/prdf_plat_axone.mk6
18 files changed, 1244 insertions, 557 deletions
diff --git a/src/usr/diag/prdf/common/plat/axone/axone_mc.rule b/src/usr/diag/prdf/common/plat/axone/axone_mc.rule
index 4f63011fc..f23fee7d2 100644
--- a/src/usr/diag/prdf/common/plat/axone/axone_mc.rule
+++ b/src/usr/diag/prdf/common/plat/axone/axone_mc.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2018
+# Contributors Listed Below - COPYRIGHT 2018,2019
# [+] International Business Machines Corp.
#
#
@@ -141,39 +141,39 @@ chip axone_mc
};
############################################################################
- # P9 MC target MCBISTFIR
+ # P9 MC target MCMISCFIR
############################################################################
- register MCBISTFIR
+ register MCMISCFIR
{
- name "P9 MC target MCBISTFIR";
+ name "P9 MC target MCMISCFIR";
scomaddr 0x07012300;
reset (&, 0x07012301);
mask (|, 0x07012305);
capture group default;
};
- register MCBISTFIR_MASK
+ register MCMISCFIR_MASK
{
- name "P9 MC target MCBISTFIR MASK";
+ name "P9 MC target MCMISCFIR MASK";
scomaddr 0x07012303;
capture group default;
};
- register MCBISTFIR_ACT0
+ register MCMISCFIR_ACT0
{
- name "P9 MC target MCBISTFIR ACT0";
+ name "P9 MC target MCMISCFIR ACT0";
scomaddr 0x07012306;
capture group default;
- capture req nonzero("MCBISTFIR");
+ capture req nonzero("MCMISCFIR");
};
- register MCBISTFIR_ACT1
+ register MCMISCFIR_ACT1
{
- name "P9 MC target MCBISTFIR ACT1";
+ name "P9 MC target MCMISCFIR ACT1";
scomaddr 0x07012307;
capture group default;
- capture req nonzero("MCBISTFIR");
+ capture req nonzero("MCMISCFIR");
};
# Include registers not defined by the xml
@@ -253,9 +253,9 @@ group gMC_CHIPLET_FIR attntype CHECK_STOP, RECOVERABLE
(rMC_CHIPLET_FIR, bit(11)) ? analyzeConnectedMCC3;
/** MC_CHIPLET_FIR[12]
- * Attention from MCBISTFIR
+ * Attention from MCMISCFIR
*/
- (rMC_CHIPLET_FIR, bit(12)) ? analyzeMCBISTFIR;
+ (rMC_CHIPLET_FIR, bit(12)) ? analyzeMCMISCFIR;
/** MC_CHIPLET_FIR[13]
* Attention from IOOMIFIR 0
@@ -358,9 +358,9 @@ group gMC_CHIPLET_UCS_FIR attntype UNIT_CS
(rMC_CHIPLET_UCS_FIR, bit(8)) ? analyzeConnectedMCC3;
/** MC_CHIPLET_UCS_FIR[9]
- * Attention from MCBISTFIR
+ * Attention from MCMISCFIR
*/
- (rMC_CHIPLET_UCS_FIR, bit(9)) ? analyzeMCBISTFIR;
+ (rMC_CHIPLET_UCS_FIR, bit(9)) ? analyzeMCMISCFIR;
/** MC_CHIPLET_UCS_FIR[10]
* Attention from IOOMIFIR 0
@@ -448,9 +448,9 @@ group gMC_CHIPLET_HA_FIR attntype HOST_ATTN
(rMC_CHIPLET_HA_FIR, bit(8)) ? analyzeConnectedMCC3;
/** MC_CHIPLET_HA_FIR[9]
- * Attention from MCBISTFIR
+ * Attention from MCMISCFIR
*/
- (rMC_CHIPLET_HA_FIR, bit(9)) ? analyzeMCBISTFIR;
+ (rMC_CHIPLET_HA_FIR, bit(9)) ? analyzeMCMISCFIR;
};
@@ -563,94 +563,94 @@ group gMC_LFIR
};
################################################################################
-# P9 MC target MCBISTFIR
+# P9 MC target MCMISCFIR
################################################################################
-rule rMCBISTFIR
+rule rMCMISCFIR
{
CHECK_STOP:
- MCBISTFIR & ~MCBISTFIR_MASK & ~MCBISTFIR_ACT0 & ~MCBISTFIR_ACT1;
+ MCMISCFIR & ~MCMISCFIR_MASK & ~MCMISCFIR_ACT0 & ~MCMISCFIR_ACT1;
RECOVERABLE:
- MCBISTFIR & ~MCBISTFIR_MASK & ~MCBISTFIR_ACT0 & MCBISTFIR_ACT1;
+ MCMISCFIR & ~MCMISCFIR_MASK & ~MCMISCFIR_ACT0 & MCMISCFIR_ACT1;
HOST_ATTN:
- MCBISTFIR & ~MCBISTFIR_MASK & MCBISTFIR_ACT0 & ~MCBISTFIR_ACT1;
+ MCMISCFIR & ~MCMISCFIR_MASK & MCMISCFIR_ACT0 & ~MCMISCFIR_ACT1;
UNIT_CS:
- MCBISTFIR & ~MCBISTFIR_MASK & MCBISTFIR_ACT0 & MCBISTFIR_ACT1;
+ MCMISCFIR & ~MCMISCFIR_MASK & MCMISCFIR_ACT0 & MCMISCFIR_ACT1;
};
-group gMCBISTFIR
+group gMCMISCFIR
filter singlebit,
cs_root_cause
{
- /** MCBISTFIR[0]
+ /** MCMISCFIR[0]
* WAT debug bus attn
*/
- (rMCBISTFIR, bit(0)) ? defaultMaskedError;
+ (rMCMISCFIR, bit(0)) ? defaultMaskedError;
- /** MCBISTFIR[1]
+ /** MCMISCFIR[1]
* WAT debug register parity error
*/
- (rMCBISTFIR, bit(1)) ? defaultMaskedError;
+ (rMCMISCFIR, bit(1)) ? defaultMaskedError;
- /** MCBISTFIR[2]
+ /** MCMISCFIR[2]
* SCOM recoverable register parity error
*/
- (rMCBISTFIR, bit(2)) ? defaultMaskedError;
+ (rMCMISCFIR, bit(2)) ? self_th_1;
- /** MCBISTFIR[3]
+ /** MCMISCFIR[3]
* Spare
*/
- (rMCBISTFIR, bit(3)) ? defaultMaskedError;
+ (rMCMISCFIR, bit(3)) ? defaultMaskedError;
- /** MCBISTFIR[4]
+ /** MCMISCFIR[4]
* Chan 0A application interrupt
*/
- (rMCBISTFIR, bit(4)) ? defaultMaskedError;
+ (rMCMISCFIR, bit(4)) ? defaultMaskedError;
- /** MCBISTFIR[5]
+ /** MCMISCFIR[5]
* Chan 0B application interrupt
*/
- (rMCBISTFIR, bit(5)) ? defaultMaskedError;
+ (rMCMISCFIR, bit(5)) ? defaultMaskedError;
- /** MCBISTFIR[6]
+ /** MCMISCFIR[6]
* Chan 1A application interrupt
*/
- (rMCBISTFIR, bit(6)) ? defaultMaskedError;
+ (rMCMISCFIR, bit(6)) ? defaultMaskedError;
- /** MCBISTFIR[7]
+ /** MCMISCFIR[7]
* Chan 1B application interrupt
*/
- (rMCBISTFIR, bit(7)) ? defaultMaskedError;
+ (rMCMISCFIR, bit(7)) ? defaultMaskedError;
- /** MCBISTFIR[8]
+ /** MCMISCFIR[8]
* Chan 2A application interrupt
*/
- (rMCBISTFIR, bit(8)) ? defaultMaskedError;
+ (rMCMISCFIR, bit(8)) ? defaultMaskedError;
- /** MCBISTFIR[9]
+ /** MCMISCFIR[9]
* Chan 2B application interrupt
*/
- (rMCBISTFIR, bit(9)) ? defaultMaskedError;
+ (rMCMISCFIR, bit(9)) ? defaultMaskedError;
- /** MCBISTFIR[10]
+ /** MCMISCFIR[10]
* Chan 3A application interrupt
*/
- (rMCBISTFIR, bit(10)) ? defaultMaskedError;
+ (rMCMISCFIR, bit(10)) ? defaultMaskedError;
- /** MCBISTFIR[11]
+ /** MCMISCFIR[11]
* Chan 3B application interrupt
*/
- (rMCBISTFIR, bit(11)) ? defaultMaskedError;
+ (rMCMISCFIR, bit(11)) ? defaultMaskedError;
- /** MCBISTFIR[12]
+ /** MCMISCFIR[12]
* Internal SCOM error
*/
- (rMCBISTFIR, bit(12)) ? defaultMaskedError;
+ (rMCMISCFIR, bit(12)) ? defaultMaskedError;
- /** MCBISTFIR[13]
+ /** MCMISCFIR[13]
* Internal SCOM error clone
*/
- (rMCBISTFIR, bit(13)) ? defaultMaskedError;
+ (rMCMISCFIR, bit(13)) ? defaultMaskedError;
};
diff --git a/src/usr/diag/prdf/common/plat/axone/axone_mc_actions.rule b/src/usr/diag/prdf/common/plat/axone/axone_mc_actions.rule
index aab2297ef..7c639bf5e 100644
--- a/src/usr/diag/prdf/common/plat/axone/axone_mc_actions.rule
+++ b/src/usr/diag/prdf/common/plat/axone/axone_mc_actions.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2017,2018
+# Contributors Listed Below - COPYRIGHT 2017,2019
# [+] International Business Machines Corp.
#
#
@@ -28,7 +28,7 @@
###############################################################################
actionclass analyzeMC_LFIR { analyze(gMC_LFIR); };
-actionclass analyzeMCBISTFIR { analyze(gMCBISTFIR); };
+actionclass analyzeMCMISCFIR { analyze(gMCMISCFIR); };
###############################################################################
# Analyze connected
diff --git a/src/usr/diag/prdf/common/plat/axone/axone_mc_regs.rule b/src/usr/diag/prdf/common/plat/axone/axone_mc_regs.rule
new file mode 100644
index 000000000..150e6895a
--- /dev/null
+++ b/src/usr/diag/prdf/common/plat/axone/axone_mc_regs.rule
@@ -0,0 +1,47 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/usr/diag/prdf/common/plat/axone/axone_mc_regs.rule $
+#
+# OpenPOWER HostBoot Project
+#
+# Contributors Listed Below - COPYRIGHT 2019
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+# IBM_PROLOG_END_TAG
+
+################################################################################
+# Additional registers for MC target, not defined in XML
+################################################################################
+
+ ############################################################################
+ # PCB Slave Error Regs
+ ############################################################################
+
+ register MC_ERROR_REG
+ {
+ name "MC PCB Slave error reg";
+ scomaddr 0x070F001F;
+ capture group PllFIRs;
+ };
+
+ register MC_CONFIG_REG
+ {
+ name "MC PCB Slave config reg";
+ scomaddr 0x070F001E;
+ capture group PllFIRs;
+ };
+
diff --git a/src/usr/diag/prdf/common/plat/axone/axone_mcc.rule b/src/usr/diag/prdf/common/plat/axone/axone_mcc.rule
index bf632abbb..31f663c77 100644
--- a/src/usr/diag/prdf/common/plat/axone/axone_mcc.rule
+++ b/src/usr/diag/prdf/common/plat/axone/axone_mcc.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2018
+# Contributors Listed Below - COPYRIGHT 2018,2019
# [+] International Business Machines Corp.
#
#
@@ -180,22 +180,22 @@ rule rDSTLFIR
group gDSTLFIR
filter singlebit,
- cs_root_cause
+ cs_root_cause(0,4)
{
/** DSTLFIR[0]
* AFU initiated Checkstop on Subchannel A
*/
- (rDSTLFIR, bit(0)) ? defaultMaskedError;
+ (rDSTLFIR, bit(0)) ? analyze_ocmb_chnl0_UERE;
/** DSTLFIR[1]
* AFU initiated Recoverable Attn on Subchannel A
*/
- (rDSTLFIR, bit(1)) ? defaultMaskedError;
+ (rDSTLFIR, bit(1)) ? analyze_ocmb_chnl0;
/** DSTLFIR[2]
* AFU initiated Special Attn on Subchannel A
*/
- (rDSTLFIR, bit(2)) ? defaultMaskedError;
+ (rDSTLFIR, bit(2)) ? analyze_ocmb_chnl0;
/** DSTLFIR[3]
* AFU initiated Application Interrupt Attn on Subchannel A
@@ -205,17 +205,17 @@ group gDSTLFIR
/** DSTLFIR[4]
* AFU initiated Checkstop on Subchannel B
*/
- (rDSTLFIR, bit(4)) ? defaultMaskedError;
+ (rDSTLFIR, bit(4)) ? analyze_ocmb_chnl1_UERE;
/** DSTLFIR[5]
* AFU initiated Recoverable Attn on Subchannel B
*/
- (rDSTLFIR, bit(5)) ? defaultMaskedError;
+ (rDSTLFIR, bit(5)) ? analyze_ocmb_chnl1;
/** DSTLFIR[6]
* AFU initiated Special Attn on Subchannel B
*/
- (rDSTLFIR, bit(6)) ? defaultMaskedError;
+ (rDSTLFIR, bit(6)) ? analyze_ocmb_chnl1;
/** DSTLFIR[7]
* AFU initiated Application Interrupt Attn on Subchannel B
@@ -225,52 +225,52 @@ group gDSTLFIR
/** DSTLFIR[8]
* Async crossing parity error
*/
- (rDSTLFIR, bit(8)) ? defaultMaskedError;
+ (rDSTLFIR, bit(8)) ? self_th_1;
/** DSTLFIR[9]
* Async crossing sequence error
*/
- (rDSTLFIR, bit(9)) ? defaultMaskedError;
+ (rDSTLFIR, bit(9)) ? self_th_1;
/** DSTLFIR[10]
* Config reg recoverable parity error
*/
- (rDSTLFIR, bit(10)) ? defaultMaskedError;
+ (rDSTLFIR, bit(10)) ? self_th_1;
/** DSTLFIR[11]
* Config reg fatal parity error
*/
- (rDSTLFIR, bit(11)) ? defaultMaskedError;
+ (rDSTLFIR, bit(11)) ? self_th_1;
/** DSTLFIR[12]
* Subchannel A counter error
*/
- (rDSTLFIR, bit(12)) ? defaultMaskedError;
+ (rDSTLFIR, bit(12)) ? chnl0_omi_bus_th_1;
/** DSTLFIR[13]
* Subchannel B counter error
*/
- (rDSTLFIR, bit(13)) ? defaultMaskedError;
+ (rDSTLFIR, bit(13)) ? chnl1_omi_bus_th_1;
/** DSTLFIR[14]
* Subchannel A timeout error
*/
- (rDSTLFIR, bit(14)) ? defaultMaskedError;
+ (rDSTLFIR, bit(14)) ? chnl0_omi_bus_th_32_perDay;
/** DSTLFIR[15]
* Subchannel B timeout error
*/
- (rDSTLFIR, bit(15)) ? defaultMaskedError;
+ (rDSTLFIR, bit(15)) ? chnl1_omi_bus_th_32_perDay;
/** DSTLFIR[16]
* Subchannel A buffer overuse error
*/
- (rDSTLFIR, bit(16)) ? defaultMaskedError;
+ (rDSTLFIR, bit(16)) ? chnl0_ocmb_th_1;
/** DSTLFIR[17]
* Subchannel B buffer overuse error
*/
- (rDSTLFIR, bit(17)) ? defaultMaskedError;
+ (rDSTLFIR, bit(17)) ? chnl1_ocmb_th_1;
/** DSTLFIR[18]
* Subchannel A DL link down
@@ -293,14 +293,29 @@ group gDSTLFIR
(rDSTLFIR, bit(21)) ? defaultMaskedError;
/** DSTLFIR[22]
- * Internal SCOM error
+ * DSTLFIR channel timeout on subch A
*/
- (rDSTLFIR, bit(22)) ? defaultMaskedError;
+ (rDSTLFIR, bit(22)) ? chnl0_omi_bus_th_1;
/** DSTLFIR[23]
- * Internal SCOM error clone
+ * DSTLFIR channel timeout on subch B
+ */
+ (rDSTLFIR, bit(23)) ? chnl1_omi_bus_th_1;
+
+ /** DSTLFIR[24:25]
+ * spare
+ */
+ (rDSTLFIR, bit(24|25)) ? defaultMaskedError;
+
+ /** DSTLFIR[26]
+ * Internal SCOM Error
+ */
+ (rDSTLFIR, bit(26)) ? defaultMaskedError;
+
+ /** DSTLFIR[27]
+ * Internal SCOM Error Clone
*/
- (rDSTLFIR, bit(23)) ? defaultMaskedError;
+ (rDSTLFIR, bit(27)) ? defaultMaskedError;
};
@@ -327,22 +342,22 @@ group gUSTLFIR
/** USTLFIR[0]
* Chan A unexpected data error
*/
- (rUSTLFIR, bit(0)) ? defaultMaskedError;
+ (rUSTLFIR, bit(0)) ? chnl0_ocmb_th_1;
/** USTLFIR[1]
* Chan B unexpected data error
*/
- (rUSTLFIR, bit(1)) ? defaultMaskedError;
+ (rUSTLFIR, bit(1)) ? chnl1_ocmb_th_1;
/** USTLFIR[2]
* Chan A invalid template error
*/
- (rUSTLFIR, bit(2)) ? defaultMaskedError;
+ (rUSTLFIR, bit(2)) ? chnl0_ocmb_th_1;
/** USTLFIR[3]
* Chan B invalid template error
*/
- (rUSTLFIR, bit(3)) ? defaultMaskedError;
+ (rUSTLFIR, bit(3)) ? chnl1_ocmb_th_1;
/** USTLFIR[4]
* Chan A half speed mode
@@ -357,12 +372,12 @@ group gUSTLFIR
/** USTLFIR[6]
* WDF buffer CE
*/
- (rUSTLFIR, bit(6)) ? defaultMaskedError;
+ (rUSTLFIR, bit(6)) ? self_th_32perDay;
/** USTLFIR[7]
* WDF buffer UE
*/
- (rUSTLFIR, bit(7)) ? defaultMaskedError;
+ (rUSTLFIR, bit(7)) ? self_th_1;
/** USTLFIR[8]
* WDF buffer SUE
@@ -372,32 +387,32 @@ group gUSTLFIR
/** USTLFIR[9]
* WDF buffer overrun
*/
- (rUSTLFIR, bit(9)) ? defaultMaskedError;
+ (rUSTLFIR, bit(9)) ? self_th_1;
/** USTLFIR[10]
* WDF tag parity error
*/
- (rUSTLFIR, bit(10)) ? defaultMaskedError;
+ (rUSTLFIR, bit(10)) ? self_th_1;
/** USTLFIR[11]
* WDF scom sequencer error
*/
- (rUSTLFIR, bit(11)) ? defaultMaskedError;
+ (rUSTLFIR, bit(11)) ? self_th_1;
/** USTLFIR[12]
* WDF pwctl sequencer error
*/
- (rUSTLFIR, bit(12)) ? defaultMaskedError;
+ (rUSTLFIR, bit(12)) ? self_th_1;
/** USTLFIR[13]
* WDF misc_reg parity error
*/
- (rUSTLFIR, bit(13)) ? defaultMaskedError;
+ (rUSTLFIR, bit(13)) ? self_th_1;
/** USTLFIR[14]
* WDF MCA async error
*/
- (rUSTLFIR, bit(14)) ? defaultMaskedError;
+ (rUSTLFIR, bit(14)) ? self_th_1;
/** USTLFIR[15]
* WDF Data Syndrome NE0
@@ -407,32 +422,32 @@ group gUSTLFIR
/** USTLFIR[16]
* WDF CMT parity error
*/
- (rUSTLFIR, bit(16)) ? defaultMaskedError;
+ (rUSTLFIR, bit(16)) ? self_th_1;
/** USTLFIR[17]
- * TBD
+ * spare
*/
(rUSTLFIR, bit(17)) ? defaultMaskedError;
/** USTLFIR[18]
- * TBD
+ * spare
*/
(rUSTLFIR, bit(18)) ? defaultMaskedError;
/** USTLFIR[19]
- * TBD
+ * Read Buffers overflowed/underflowed
*/
- (rUSTLFIR, bit(19)) ? defaultMaskedError;
+ (rUSTLFIR, bit(19)) ? all_ocmb_and_mcc_th_1;
/** USTLFIR[20]
* WRT Buffer CE
*/
- (rUSTLFIR, bit(20)) ? defaultMaskedError;
+ (rUSTLFIR, bit(20)) ? parent_proc_th_32perDay;
/** USTLFIR[21]
* WRT Buffer UE
*/
- (rUSTLFIR, bit(21)) ? defaultMaskedError;
+ (rUSTLFIR, bit(21)) ? parent_proc_th_1;
/** USTLFIR[22]
* WRT Buffer SUE
@@ -442,12 +457,12 @@ group gUSTLFIR
/** USTLFIR[23]
* WRT scom sequencer error
*/
- (rUSTLFIR, bit(23)) ? defaultMaskedError;
+ (rUSTLFIR, bit(23)) ? self_th_1;
/** USTLFIR[24]
* WRT misc_reg parity error
*/
- (rUSTLFIR, bit(24)) ? defaultMaskedError;
+ (rUSTLFIR, bit(24)) ? self_th_1;
/** USTLFIR[25:26]
* WRT error information spares
@@ -457,22 +472,22 @@ group gUSTLFIR
/** USTLFIR[27]
* Chan A fail response checkstop
*/
- (rUSTLFIR, bit(27)) ? defaultMaskedError;
+ (rUSTLFIR, bit(27)) ? chnl0_ocmb_th_1;
/** USTLFIR[28]
* Chan B fail response checkstop
*/
- (rUSTLFIR, bit(28)) ? defaultMaskedError;
+ (rUSTLFIR, bit(28)) ? chnl1_ocmb_th_1;
/** USTLFIR[29]
* Chan A fail response recoverable
*/
- (rUSTLFIR, bit(29)) ? defaultMaskedError;
+ (rUSTLFIR, bit(29)) ? threshold_and_mask_chnl0_ocmb_th_1;
/** USTLFIR[30]
* Chan B fail response recoverable
*/
- (rUSTLFIR, bit(30)) ? defaultMaskedError;
+ (rUSTLFIR, bit(30)) ? threshold_and_mask_chnl1_ocmb_th_1;
/** USTLFIR[31]
* Chan A lol drop checkstop
@@ -487,72 +502,72 @@ group gUSTLFIR
/** USTLFIR[33]
* Chan A lol drop recoverable
*/
- (rUSTLFIR, bit(33)) ? defaultMaskedError;
+ (rUSTLFIR, bit(33)) ? chnl0_ocmb_H_omi_L_th_1;
/** USTLFIR[34]
* Chan B lol drop recoverable
*/
- (rUSTLFIR, bit(34)) ? defaultMaskedError;
+ (rUSTLFIR, bit(34)) ? chnl1_ocmb_H_omi_L_th_1;
/** USTLFIR[35]
* Chan A flit parity error
*/
- (rUSTLFIR, bit(35)) ? defaultMaskedError;
+ (rUSTLFIR, bit(35)) ? chnl0_omi_th_1;
/** USTLFIR[36]
* Chan B flit parity error
*/
- (rUSTLFIR, bit(36)) ? defaultMaskedError;
+ (rUSTLFIR, bit(36)) ? chnl1_omi_th_1;
/** USTLFIR[37]
* Chan A fatal parity error
*/
- (rUSTLFIR, bit(37)) ? defaultMaskedError;
+ (rUSTLFIR, bit(37)) ? chnl0_omi_th_1;
/** USTLFIR[38]
* Chan B fatal parity error
*/
- (rUSTLFIR, bit(38)) ? defaultMaskedError;
+ (rUSTLFIR, bit(38)) ? chnl1_omi_th_1;
/** USTLFIR[39]
* Chan A more than 2 data flits for template 9
*/
- (rUSTLFIR, bit(39)) ? defaultMaskedError;
+ (rUSTLFIR, bit(39)) ? chnl0_ocmb_th_1;
/** USTLFIR[40]
* Chan B more than 2 data flits for template 9
*/
- (rUSTLFIR, bit(40)) ? defaultMaskedError;
+ (rUSTLFIR, bit(40)) ? chnl1_ocmb_th_1;
/** USTLFIR[41]
* Chan A excess bad data bits
*/
- (rUSTLFIR, bit(41)) ? defaultMaskedError;
+ (rUSTLFIR, bit(41)) ? chnl0_ocmb_th_1;
/** USTLFIR[42]
* Chan B excess bad data bits
*/
- (rUSTLFIR, bit(42)) ? defaultMaskedError;
+ (rUSTLFIR, bit(42)) ? chnl1_ocmb_th_1;
/** USTLFIR[43]
* Chan A memory read data returned in template 0
*/
- (rUSTLFIR, bit(43)) ? defaultMaskedError;
+ (rUSTLFIR, bit(43)) ? chnl0_ocmb_th_1;
/** USTLFIR[44]
* Chan B memory read data returned in template 0
*/
- (rUSTLFIR, bit(44)) ? defaultMaskedError;
+ (rUSTLFIR, bit(44)) ? chnl1_ocmb_th_1;
/** USTLFIR[45]
* Chan A MMIO in lol mode
*/
- (rUSTLFIR, bit(45)) ? defaultMaskedError;
+ (rUSTLFIR, bit(45)) ? chnl0_omi_th_1;
/** USTLFIR[46]
* Chan B MMIO in lol mode
*/
- (rUSTLFIR, bit(46)) ? defaultMaskedError;
+ (rUSTLFIR, bit(46)) ? chnl1_omi_th_1;
/** USTLFIR[47]
* Chan A bad data
@@ -567,62 +582,62 @@ group gUSTLFIR
/** USTLFIR[49]
* Chan A excess data error
*/
- (rUSTLFIR, bit(49)) ? defaultMaskedError;
+ (rUSTLFIR, bit(49)) ? chnl0_ocmb_th_1;
/** USTLFIR[50]
* Chan B excess data error
*/
- (rUSTLFIR, bit(50)) ? defaultMaskedError;
+ (rUSTLFIR, bit(50)) ? chnl1_ocmb_th_1;
/** USTLFIR[51]
* Chan A Bad CRC data not valid error
*/
- (rUSTLFIR, bit(51)) ? defaultMaskedError;
+ (rUSTLFIR, bit(51)) ? chnl0_omi_th_1;
/** USTLFIR[52]
* Chan B Bad CRC data not valid error
*/
- (rUSTLFIR, bit(52)) ? defaultMaskedError;
+ (rUSTLFIR, bit(52)) ? chnl1_omi_th_1;
/** USTLFIR[53]
* Chan A FIFO overflow error
*/
- (rUSTLFIR, bit(53)) ? defaultMaskedError;
+ (rUSTLFIR, bit(53)) ? chnl0_omi_th_1;
/** USTLFIR[54]
* Chan B FIFO overflow error
*/
- (rUSTLFIR, bit(54)) ? defaultMaskedError;
+ (rUSTLFIR, bit(54)) ? chnl1_omi_th_1;
/** USTLFIR[55]
* Chan A invalid cmd error
*/
- (rUSTLFIR, bit(55)) ? defaultMaskedError;
+ (rUSTLFIR, bit(55)) ? chnl0_ocmb_th_1;
/** USTLFIR[56]
* Chan B invalid cmd error
*/
- (rUSTLFIR, bit(56)) ? defaultMaskedError;
+ (rUSTLFIR, bit(56)) ? chnl1_ocmb_th_1;
/** USTLFIR[57]
* Fatal reg parity error
*/
- (rUSTLFIR, bit(57)) ? defaultMaskedError;
+ (rUSTLFIR, bit(57)) ? self_th_1;
/** USTLFIR[58]
* Recoverable reg parity error
*/
- (rUSTLFIR, bit(58)) ? defaultMaskedError;
+ (rUSTLFIR, bit(58)) ? self_th_1;
/** USTLFIR[59]
* Chan A invalid DL DP combo
*/
- (rUSTLFIR, bit(59)) ? defaultMaskedError;
+ (rUSTLFIR, bit(59)) ? chnl0_ocmb_th_1;
/** USTLFIR[60]
* Chan B invalid DL DP combo
*/
- (rUSTLFIR, bit(60)) ? defaultMaskedError;
+ (rUSTLFIR, bit(60)) ? chnl1_ocmb_th_1;
/** USTLFIR[61]
* spare
diff --git a/src/usr/diag/prdf/common/plat/axone/axone_mcc_actions.rule b/src/usr/diag/prdf/common/plat/axone/axone_mcc_actions.rule
index 38edbaaea..e34035165 100644
--- a/src/usr/diag/prdf/common/plat/axone/axone_mcc_actions.rule
+++ b/src/usr/diag/prdf/common/plat/axone/axone_mcc_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,9 +24,163 @@
# IBM_PROLOG_END_TAG
################################################################################
+# Callouts
+################################################################################
+
+actionclass chnl0_omi
+{
+ callout(connected(TYPE_OMI,0), MRU_MED);
+};
+
+actionclass chnl1_omi
+{
+ callout(connected(TYPE_OMI,1), MRU_MED);
+};
+
+actionclass chnl0_omi_L
+{
+ callout(connected(TYPE_OMI,0), MRU_LOW);
+};
+
+actionclass chnl1_omi_L
+{
+ callout(connected(TYPE_OMI,1), MRU_LOW);
+};
+
+actionclass chnl0_ocmb
+{
+ callout(connected(TYPE_OCMB_CHIP,0), MRU_MED);
+};
+
+actionclass chnl1_ocmb
+{
+ callout(connected(TYPE_OCMB_CHIP,1), MRU_MED);
+};
+
+actionclass chnl0_omi_bus
+{
+ funccall("omiParentCalloutBusInterfacePlugin_0");
+};
+
+actionclass chnl1_omi_bus
+{
+ funccall("omiParentCalloutBusInterfacePlugin_1");
+};
+
+actionclass chnl0_omi_bus_th_1
+{
+ chnl0_omi_bus;
+ threshold1;
+};
+
+actionclass chnl1_omi_bus_th_1
+{
+ chnl1_omi_bus;
+ threshold1;
+};
+
+actionclass chnl0_omi_bus_th_32_perDay
+{
+ chnl0_omi_bus;
+ threshold32pday;
+};
+
+actionclass chnl1_omi_bus_th_32_perDay
+{
+ chnl1_omi_bus;
+ threshold32pday;
+};
+
+actionclass chnl0_omi_th_1
+{
+ chnl0_omi;
+ threshold1;
+};
+
+actionclass chnl1_omi_th_1
+{
+ chnl1_omi;
+ threshold1;
+};
+
+actionclass chnl0_ocmb_th_1
+{
+ chnl0_ocmb;
+ threshold1;
+};
+
+actionclass chnl1_ocmb_th_1
+{
+ chnl1_ocmb;
+ threshold1;
+};
+
+actionclass all_ocmb_and_mcc_th_1
+{
+ chnl0_ocmb;
+ chnl1_ocmb;
+ calloutSelfMed;
+ threshold1;
+};
+
+actionclass chnl0_ocmb_H_omi_L_th_1
+{
+ chnl0_ocmb;
+ chnl0_omi_L;
+ threshold1;
+};
+
+actionclass chnl1_ocmb_H_omi_L_th_1
+{
+ chnl1_ocmb;
+ chnl1_omi_L;
+ threshold1;
+};
+
+actionclass threshold_and_mask_chnl0_ocmb_th_1
+{
+ threshold_and_mask;
+ chnl0_ocmb;
+ threshold1;
+};
+
+actionclass threshold_and_mask_chnl1_ocmb_th_1
+{
+ threshold_and_mask;
+ chnl1_ocmb;
+ threshold1;
+};
+
+################################################################################
# Analyze groups
################################################################################
actionclass analyzeDSTLFIR { analyze(gDSTLFIR); };
actionclass analyzeUSTLFIR { analyze(gUSTLFIR); };
+################################################################################
+# Analyze connected
+################################################################################
+
+actionclass analyze_ocmb_chnl0
+{
+ try( funccall("checkOcmb_0"), analyze(connected(TYPE_OCMB_CHIP, 0)) );
+};
+
+actionclass analyze_ocmb_chnl1
+{
+ try( funccall("checkOcmb_1"), analyze(connected(TYPE_OCMB_CHIP, 1)) );
+};
+
+actionclass analyze_ocmb_chnl0_UERE
+{
+ SueSource;
+ analyze_ocmb_chnl0;
+};
+
+actionclass analyze_ocmb_chnl1_UERE
+{
+ SueSource;
+ analyze_ocmb_chnl1;
+};
+
diff --git a/src/usr/diag/prdf/common/plat/axone/axone_mcc_regs.rule b/src/usr/diag/prdf/common/plat/axone/axone_mcc_regs.rule
new file mode 100644
index 000000000..001a54e5c
--- /dev/null
+++ b/src/usr/diag/prdf/common/plat/axone/axone_mcc_regs.rule
@@ -0,0 +1,80 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/usr/diag/prdf/common/plat/axone/axone_mcc_regs.rule $
+#
+# OpenPOWER HostBoot Project
+#
+# Contributors Listed Below - COPYRIGHT 2019
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+# IBM_PROLOG_END_TAG
+
+
+###############################################################################
+# Additional registers for mcc, not defined in XML
+###############################################################################
+
+ ###########################################################################
+ # P9 Axone target Channel Fail Config registers
+ ###########################################################################
+
+ register DSTLCFG2
+ {
+ name "P9 Axone DSTL Error Injection Register";
+ scomaddr 0x0701090E;
+ capture group default;
+ };
+
+ register USTLFAILMASK
+ {
+ name "P9 Axone USTL Fail Response Channel Fail Mask";
+ scomaddr 0x07010A13;
+ capture group default;
+ };
+
+ ###########################################################################
+ # P9 Axone target DSTLFIR
+ ###########################################################################
+
+ register DSTLFIR_AND
+ {
+ name "P9 MCC target DSTLFIR atomic AND";
+ scomaddr 0x07010901;
+ capture group never;
+ access write_only;
+ };
+
+ register DSTLFIR_MASK_OR
+ {
+ name "P9 MCC target DSTLFIR MASK atomic OR";
+ scomaddr 0x07010905;
+ capture group never;
+ access write_only;
+ };
+
+ ###########################################################################
+ # P9 Axone target USTLFIR
+ ###########################################################################
+
+ register USTLFIR_MASK_OR
+ {
+ name "P9 MCC target USTLFIR MASK atomic OR";
+ scomaddr 0x07010A05;
+ capture group never;
+ access write_only;
+ };
+
diff --git a/src/usr/diag/prdf/common/plat/axone/axone_mi.rule b/src/usr/diag/prdf/common/plat/axone/axone_mi.rule
index 078163819..56366a7f5 100644
--- a/src/usr/diag/prdf/common/plat/axone/axone_mi.rule
+++ b/src/usr/diag/prdf/common/plat/axone/axone_mi.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2018
+# Contributors Listed Below - COPYRIGHT 2018,2019
# [+] International Business Machines Corp.
#
#
@@ -148,27 +148,27 @@ group gMCFIR
/** MCFIR[0]
* MC internal recoverable error
*/
- (rMCFIR, bit(0)) ? defaultMaskedError;
+ (rMCFIR, bit(0)) ? self_th_1;
/** MCFIR[1]
* MC internal non recoverable error
*/
- (rMCFIR, bit(1)) ? defaultMaskedError;
+ (rMCFIR, bit(1)) ? parent_proc_th_1;
/** MCFIR[2]
* Powerbus protocol error
*/
- (rMCFIR, bit(2)) ? defaultMaskedError;
+ (rMCFIR, bit(2)) ? level2_th_1;
/** MCFIR[3]
* Inband bar hit with incorrect ttype
*/
- (rMCFIR, bit(3)) ? defaultMaskedError;
+ (rMCFIR, bit(3)) ? level2_M_self_L_th_1;
/** MCFIR[4]
* Multiple bar
*/
- (rMCFIR, bit(4)) ? defaultMaskedError;
+ (rMCFIR, bit(4)) ? self_th_1;
/** MCFIR[5]
* PB write ECC syndrome NE0
@@ -183,7 +183,7 @@ group gMCFIR
/** MCFIR[8]
* Command list timeout
*/
- (rMCFIR, bit(8)) ? defaultMaskedError;
+ (rMCFIR, bit(8)) ? threshold_and_mask_level2;
/** MCFIR[9:10]
* reserved
diff --git a/src/usr/diag/prdf/common/plat/axone/axone_mi_regs.rule b/src/usr/diag/prdf/common/plat/axone/axone_mi_regs.rule
index 0e47e05a5..d9441d719 100644
--- a/src/usr/diag/prdf/common/plat/axone/axone_mi_regs.rule
+++ b/src/usr/diag/prdf/common/plat/axone/axone_mi_regs.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2018
+# Contributors Listed Below - COPYRIGHT 2018,2019
# [+] International Business Machines Corp.
#
#
@@ -48,34 +48,66 @@
capture group default;
};
- register MCFGP
+ register MCFGP0
{
- name "MCFGP";
- scomaddr 0x501080A;
+ name "MCFGP0";
+ scomaddr 0x0501080A;
capture group default;
capture group MirrorConfig;
};
- register MCFGPA
+ register MCFGP1
{
- name "MCFGPA";
+ name "MCFGP1";
scomaddr 0x0501080B;
capture group default;
capture group MirrorConfig;
};
- register MCFGPM
+ register MCFGP0A
{
- name "MCFGPM";
- scomaddr 0x501080C;
+ name "MCFGP0A";
+ scomaddr 0x0501080E;
capture group default;
capture group MirrorConfig;
};
- register MCFGPMA
+ register MCFGP1A
{
- name "MCFGPMA";
- scomaddr 0x0501080D;
+ name "MCFGP1A";
+ scomaddr 0x0501080F;
+ capture group default;
+ capture group MirrorConfig;
+ };
+
+ register MCFGPM0
+ {
+ name "MCFGPM0";
+ scomaddr 0x5010820;
+ capture group default;
+ capture group MirrorConfig;
+ };
+
+ register MCFGPM0A
+ {
+ name "MCFGPM0A";
+ scomaddr 0x05010821;
+ capture group default;
+ capture group MirrorConfig;
+ };
+
+ register MCFGPM1
+ {
+ name "MCFGPM1";
+ scomaddr 0x5010830;
+ capture group default;
+ capture group MirrorConfig;
+ };
+
+ register MCFGPM1A
+ {
+ name "MCFGPM1A";
+ scomaddr 0x05010831;
capture group default;
capture group MirrorConfig;
};
diff --git a/src/usr/diag/prdf/common/plat/axone/axone_npu.rule b/src/usr/diag/prdf/common/plat/axone/axone_npu.rule
index ede5ef5cc..49c71d74a 100644
--- a/src/usr/diag/prdf/common/plat/axone/axone_npu.rule
+++ b/src/usr/diag/prdf/common/plat/axone/axone_npu.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2018
+# Contributors Listed Below - COPYRIGHT 2018,2019
# [+] International Business Machines Corp.
#
#
@@ -214,7 +214,7 @@ rule rNPU0FIR
group gNPU0FIR
filter singlebit,
- cs_root_cause(1,2,3,4,5,6,7,9,10,16,18,29,31,42,44)
+ cs_root_cause(1,2,3,4,5,6,7,9,10,16,18,19,25,29,31,40,42,44,45)
{
/** NPU0FIR[0]
* NTL array CE
@@ -354,7 +354,7 @@ group gNPU0FIR
/** NPU0FIR[27]
* Invalid access to secure memory attempted
*/
- (rNPU0FIR, bit(27)) ? defaultMaskedError;
+ (rNPU0FIR, bit(27)) ? self_th_1;
/** NPU0FIR[28]
* spare
@@ -489,12 +489,12 @@ rule rNPU1FIR
group gNPU1FIR
filter singlebit,
- cs_root_cause
+ cs_root_cause(0,2,4,6,8,10,13,14,15,20,22,25,27,29,31,32,33,34,35,37,39,40,41,42,47,49,51,53,55,57)
{
/** NPU1FIR[0]
* NDL Brick0 stall
*/
- (rNPU1FIR, bit(0)) ? defaultMaskedError;
+ (rNPU1FIR, bit(0)) ? self_th_1;
/** NPU1FIR[1]
* NDL Brick0 nostall
@@ -504,7 +504,7 @@ group gNPU1FIR
/** NPU1FIR[2]
* NDL Brick1 stall
*/
- (rNPU1FIR, bit(2)) ? defaultMaskedError;
+ (rNPU1FIR, bit(2)) ? self_th_1;
/** NPU1FIR[3]
* NDL Brick1 nostall
@@ -514,7 +514,7 @@ group gNPU1FIR
/** NPU1FIR[4]
* NDL Brick2 stall
*/
- (rNPU1FIR, bit(4)) ? defaultMaskedError;
+ (rNPU1FIR, bit(4)) ? self_th_1;
/** NPU1FIR[5]
* NDL Brick2 nostall
@@ -524,7 +524,7 @@ group gNPU1FIR
/** NPU1FIR[6]
* NDL Brick3 stall
*/
- (rNPU1FIR, bit(6)) ? defaultMaskedError;
+ (rNPU1FIR, bit(6)) ? self_th_1;
/** NPU1FIR[7]
* NDL Brick3 nostall
@@ -534,7 +534,7 @@ group gNPU1FIR
/** NPU1FIR[8]
* NDL Brick4 stall
*/
- (rNPU1FIR, bit(8)) ? defaultMaskedError;
+ (rNPU1FIR, bit(8)) ? self_th_1;
/** NPU1FIR[9]
* NDL Brick4 nostall
@@ -544,7 +544,7 @@ group gNPU1FIR
/** NPU1FIR[10]
* NDL Brick5 stall
*/
- (rNPU1FIR, bit(10)) ? defaultMaskedError;
+ (rNPU1FIR, bit(10)) ? self_th_1;
/** NPU1FIR[11]
* NDL Brick5 nostall
@@ -554,22 +554,22 @@ group gNPU1FIR
/** NPU1FIR[12]
* MISC Register ring error (ie noack)
*/
- (rNPU1FIR, bit(12)) ? defaultMaskedError;
+ (rNPU1FIR, bit(12)) ? self_th_32perDay;
/** NPU1FIR[13]
- * MISC Parity error from ibr addr regi
+ * MISC Parity error on MISC Cntrl reg
*/
- (rNPU1FIR, bit(13)) ? defaultMaskedError;
+ (rNPU1FIR, bit(13)) ? self_th_1;
/** NPU1FIR[14]
* MISC Parity error on SCOM D/A addr reg
*/
- (rNPU1FIR, bit(14)) ? defaultMaskedError;
+ (rNPU1FIR, bit(14)) ? self_th_1;
/** NPU1FIR[15]
* MISC Parity error on MISC Cntrl reg
*/
- (rNPU1FIR, bit(15)) ? defaultMaskedError;
+ (rNPU1FIR, bit(15)) ? self_th_1;
/** NPU1FIR[16]
* Reserved
@@ -594,7 +594,7 @@ group gNPU1FIR
/** NPU1FIR[20]
* ATS Effective Address hit multiple TCE
*/
- (rNPU1FIR, bit(20)) ? defaultMaskedError;
+ (rNPU1FIR, bit(20)) ? self_th_1;
/** NPU1FIR[21]
* ATS TCE Page access error
@@ -604,72 +604,72 @@ group gNPU1FIR
/** NPU1FIR[22]
* ATS Timeout on TCE tree walk
*/
- (rNPU1FIR, bit(22)) ? defaultMaskedError;
+ (rNPU1FIR, bit(22)) ? self_th_1;
/** NPU1FIR[23]
* ATS Parity error on TCE cache dir array
*/
- (rNPU1FIR, bit(23)) ? defaultMaskedError;
+ (rNPU1FIR, bit(23)) ? self_th_32perDay;
/** NPU1FIR[24]
* ATS Parity error on TCE cache data array
*/
- (rNPU1FIR, bit(24)) ? defaultMaskedError;
+ (rNPU1FIR, bit(24)) ? self_th_32perDay;
/** NPU1FIR[25]
* ATS ECC UE on Effective Address array
*/
- (rNPU1FIR, bit(25)) ? defaultMaskedError;
+ (rNPU1FIR, bit(25)) ? self_th_1;
/** NPU1FIR[26]
* ATS ECC CE on Effective Address array
*/
- (rNPU1FIR, bit(26)) ? defaultMaskedError;
+ (rNPU1FIR, bit(26)) ? self_th_32perDay;
/** NPU1FIR[27]
* ATS ECC UE on TDRmem array
*/
- (rNPU1FIR, bit(27)) ? defaultMaskedError;
+ (rNPU1FIR, bit(27)) ? self_th_1;
/** NPU1FIR[28]
* ATS ECC CE on TDRmem array
*/
- (rNPU1FIR, bit(28)) ? defaultMaskedError;
+ (rNPU1FIR, bit(28)) ? self_th_32perDay;
/** NPU1FIR[29]
* ATS ECC UE on CQ CTL DMA Read
*/
- (rNPU1FIR, bit(29)) ? defaultMaskedError;
+ (rNPU1FIR, bit(29)) ? self_th_1;
/** NPU1FIR[30]
* ATS ECC CE on CQ CTL DMA Read
*/
- (rNPU1FIR, bit(30)) ? defaultMaskedError;
+ (rNPU1FIR, bit(30)) ? self_th_32perDay;
/** NPU1FIR[31]
* ATS Parity error on TVT entry
*/
- (rNPU1FIR, bit(31)) ? defaultMaskedError;
+ (rNPU1FIR, bit(31)) ? self_th_1;
/** NPU1FIR[32]
* ATS Parity err on IODA Address Reg
*/
- (rNPU1FIR, bit(32)) ? defaultMaskedError;
+ (rNPU1FIR, bit(32)) ? self_th_1;
/** NPU1FIR[33]
* ATS Parity error on ATS Control Register
*/
- (rNPU1FIR, bit(33)) ? defaultMaskedError;
+ (rNPU1FIR, bit(33)) ? self_th_1;
/** NPU1FIR[34]
- * ATS Parity error on ATS Timeout Control Register
+ * ATS Parity error on ATS reg
*/
- (rNPU1FIR, bit(34)) ? defaultMaskedError;
+ (rNPU1FIR, bit(34)) ? self_th_1;
/** NPU1FIR[35]
* ATS Invalid IODA Table Select entry
*/
- (rNPU1FIR, bit(35)) ? defaultMaskedError;
+ (rNPU1FIR, bit(35)) ? self_th_1;
/** NPU1FIR[36]
* Reserved
@@ -679,7 +679,7 @@ group gNPU1FIR
/** NPU1FIR[37]
* Kill xlate epoch timeout
*/
- (rNPU1FIR, bit(37)) ? defaultMaskedError;
+ (rNPU1FIR, bit(37)) ? self_th_1;
/** NPU1FIR[38]
* PEE secure SMF not secure
@@ -689,17 +689,32 @@ group gNPU1FIR
/** NPU1FIR[39]
* XSL in suspend mode when OTL sends cmd
*/
- (rNPU1FIR, bit(39)) ? defaultMaskedError;
+ (rNPU1FIR, bit(39)) ? self_th_1;
+
+ /** NPU1FIR[40]
+ * Unsupported page size
+ */
+ (rNPU1FIR, bit(40)) ? self_th_1;
+
+ /** NPU1FIR[41]
+ * Unexpected XLATE release
+ */
+ (rNPU1FIR, bit(41)) ? self_th_1;
+
+ /** NPU1FIR[42]
+ * Kill XLATE done fail
+ */
+ (rNPU1FIR, bit(42)) ? self_th_1;
- /** NPU1FIR[40:46]
+ /** NPU1FIR[43:46]
* Reserved
*/
- (rNPU1FIR, bit(40|41|42|43|44|45|46)) ? defaultMaskedError;
+ (rNPU1FIR, bit(43|44|45|46)) ? defaultMaskedError;
/** NPU1FIR[47]
* NDL Brick6 stall
*/
- (rNPU1FIR, bit(47)) ? defaultMaskedError;
+ (rNPU1FIR, bit(47)) ? self_th_1;
/** NPU1FIR[48]
* NDL Brick6 nostall
@@ -709,7 +724,7 @@ group gNPU1FIR
/** NPU1FIR[49]
* NDL Brick7 stall
*/
- (rNPU1FIR, bit(49)) ? defaultMaskedError;
+ (rNPU1FIR, bit(49)) ? self_th_1;
/** NPU1FIR[50]
* NDL Brick7 nostall
@@ -719,7 +734,7 @@ group gNPU1FIR
/** NPU1FIR[51]
* NDL Brick8 stall
*/
- (rNPU1FIR, bit(51)) ? defaultMaskedError;
+ (rNPU1FIR, bit(51)) ? self_th_1;
/** NPU1FIR[52]
* NDL Brick8 nostall
@@ -729,7 +744,7 @@ group gNPU1FIR
/** NPU1FIR[53]
* NDL Brick9 stall
*/
- (rNPU1FIR, bit(53)) ? defaultMaskedError;
+ (rNPU1FIR, bit(53)) ? self_th_1;
/** NPU1FIR[54]
* NDL Brick9 nostall
@@ -739,7 +754,7 @@ group gNPU1FIR
/** NPU1FIR[55]
* NDL Brick10 stall
*/
- (rNPU1FIR, bit(55)) ? defaultMaskedError;
+ (rNPU1FIR, bit(55)) ? self_th_1;
/** NPU1FIR[56]
* NDL Brick10 nostall
@@ -749,7 +764,7 @@ group gNPU1FIR
/** NPU1FIR[57]
* NDL Brick11 stall
*/
- (rNPU1FIR, bit(57)) ? defaultMaskedError;
+ (rNPU1FIR, bit(57)) ? self_th_1;
/** NPU1FIR[58]
* NDL Brick11 nostall
@@ -762,22 +777,22 @@ group gNPU1FIR
(rNPU1FIR, bit(59)) ? defaultMaskedError;
/** NPU1FIR[60]
- * MISC SCOM ring 0 sat 0 signaled internal FSM err
+ * Misc SCOM ring 0 sat 0 signalled internal FSM error
*/
(rNPU1FIR, bit(60)) ? defaultMaskedError;
/** NPU1FIR[61]
- * MISC SCOM ring 0 sat 1 signaled internal FSM err
+ * Misc SCOM ring 0 sat 1 signalled internal FSM error
*/
(rNPU1FIR, bit(61)) ? defaultMaskedError;
/** NPU1FIR[62]
- * Scom Error
+ * scom error
*/
(rNPU1FIR, bit(62)) ? defaultMaskedError;
/** NPU1FIR[63]
- * Scom Error
+ * scom error
*/
(rNPU1FIR, bit(63)) ? defaultMaskedError;
@@ -799,7 +814,7 @@ rule rNPU2FIR
group gNPU2FIR
filter singlebit,
- cs_root_cause
+ cs_root_cause(4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,36,37,38,39,40,41,42,43,45,47,48,50,51,52)
{
/** NPU2FIR[0]
* OTL Brick2 translation fault
@@ -824,145 +839,145 @@ group gNPU2FIR
/** NPU2FIR[4]
* OTL TL credit ctr overflow
*/
- (rNPU2FIR, bit(4)) ? defaultMaskedError;
+ (rNPU2FIR, bit(4)) ? self_th_1;
/** NPU2FIR[5]
* OTL RX acTag invalid
*/
- (rNPU2FIR, bit(5)) ? defaultMaskedError;
+ (rNPU2FIR, bit(5)) ? self_th_1;
/** NPU2FIR[6]
* OTL RX acTag points to an invalid entry.
*/
- (rNPU2FIR, bit(6)) ? defaultMaskedError;
+ (rNPU2FIR, bit(6)) ? self_th_1;
/** NPU2FIR[7]
* OTL RX reserved opcode used.
*/
- (rNPU2FIR, bit(7)) ? defaultMaskedError;
+ (rNPU2FIR, bit(7)) ? self_th_1;
/** NPU2FIR[8]
* OTL RX rtn_tl_credit cmd outside slot0.
*/
- (rNPU2FIR, bit(8)) ? defaultMaskedError;
+ (rNPU2FIR, bit(8)) ? self_th_1;
/** NPU2FIR[9]
* OTL RX bad opcode and template combo
*/
- (rNPU2FIR, bit(9)) ? defaultMaskedError;
+ (rNPU2FIR, bit(9)) ? self_th_1;
/** NPU2FIR[10]
* OTL RX unsupported template format.
*/
- (rNPU2FIR, bit(10)) ? defaultMaskedError;
+ (rNPU2FIR, bit(10)) ? self_th_1;
/** NPU2FIR[11]
* OTL RX bad template x00 format.
*/
- (rNPU2FIR, bit(11)) ? defaultMaskedError;
+ (rNPU2FIR, bit(11)) ? self_th_1;
/** NPU2FIR[12]
* OTL RX control flit overrun.
*/
- (rNPU2FIR, bit(12)) ? defaultMaskedError;
+ (rNPU2FIR, bit(12)) ? self_th_1;
/** NPU2FIR[13]
* OTL RX unexpected data flit.
*/
- (rNPU2FIR, bit(13)) ? defaultMaskedError;
+ (rNPU2FIR, bit(13)) ? self_th_1;
/** NPU2FIR[14]
* OTL RX DL link down.
*/
- (rNPU2FIR, bit(14)) ? defaultMaskedError;
+ (rNPU2FIR, bit(14)) ? self_th_1;
/** NPU2FIR[15]
* OTL RX bad data received on command.
*/
- (rNPU2FIR, bit(15)) ? defaultMaskedError;
+ (rNPU2FIR, bit(15)) ? self_th_1;
/** NPU2FIR[16]
* OTL RX bad data received on response.
*/
- (rNPU2FIR, bit(16)) ? defaultMaskedError;
+ (rNPU2FIR, bit(16)) ? self_th_1;
/** NPU2FIR[17]
* OTL RX AP response not allowed
*/
- (rNPU2FIR, bit(17)) ? defaultMaskedError;
+ (rNPU2FIR, bit(17)) ? self_th_1;
/** NPU2FIR[18]
* OR of all OTL parity errors.
*/
- (rNPU2FIR, bit(18)) ? defaultMaskedError;
+ (rNPU2FIR, bit(18)) ? self_th_1;
/** NPU2FIR[19]
* OR of all OTL ECC CE errors.
*/
- (rNPU2FIR, bit(19)) ? defaultMaskedError;
+ (rNPU2FIR, bit(19)) ? self_th_32perDay;
/** NPU2FIR[20]
* OR of all OTL ECC UE errors.
*/
- (rNPU2FIR, bit(20)) ? defaultMaskedError;
+ (rNPU2FIR, bit(20)) ? self_th_1;
/** NPU2FIR[21]
* RXO OP Errors.
*/
- (rNPU2FIR, bit(21)) ? defaultMaskedError;
+ (rNPU2FIR, bit(21)) ? self_th_1;
/** NPU2FIR[22]
* RXO Internal Errors.
*/
- (rNPU2FIR, bit(22)) ? defaultMaskedError;
+ (rNPU2FIR, bit(22)) ? self_th_1;
/** NPU2FIR[23]
* OTL RXI fifo overrun.
*/
- (rNPU2FIR, bit(23)) ? defaultMaskedError;
+ (rNPU2FIR, bit(23)) ? self_th_1;
/** NPU2FIR[24]
* OTL RXI ctrl flit data run len invalid.
*/
- (rNPU2FIR, bit(24)) ? defaultMaskedError;
+ (rNPU2FIR, bit(24)) ? self_th_1;
/** NPU2FIR[25]
* OTL RXI opcode specifies dL=0b00.
*/
- (rNPU2FIR, bit(25)) ? defaultMaskedError;
+ (rNPU2FIR, bit(25)) ? self_th_1;
/** NPU2FIR[26]
* OTL RXI bad data received vc2
*/
- (rNPU2FIR, bit(26)) ? defaultMaskedError;
+ (rNPU2FIR, bit(26)) ? self_th_1;
/** NPU2FIR[27]
* OTL RXI dcp2 fifo overrun
*/
- (rNPU2FIR, bit(27)) ? defaultMaskedError;
+ (rNPU2FIR, bit(27)) ? self_th_1;
/** NPU2FIR[28]
* OTL RXI vc1 fifo overrun
*/
- (rNPU2FIR, bit(28)) ? defaultMaskedError;
+ (rNPU2FIR, bit(28)) ? self_th_1;
/** NPU2FIR[29]
* OTL RXI vc2 fifo overrun
*/
- (rNPU2FIR, bit(29)) ? defaultMaskedError;
+ (rNPU2FIR, bit(29)) ? self_th_1;
/** NPU2FIR[30]
- * Reserved
+ * OTL RXI Data link not supported
*/
- (rNPU2FIR, bit(30)) ? defaultMaskedError;
+ (rNPU2FIR, bit(30)) ? self_th_1;
/** NPU2FIR[31]
* OTL TXI opcode error
*/
- (rNPU2FIR, bit(31)) ? defaultMaskedError;
+ (rNPU2FIR, bit(31)) ? self_th_1;
/** NPU2FIR[32]
- * Malformed packet error type 4
+ * OTL RXI reserved field not equal to 0
*/
(rNPU2FIR, bit(32)) ? defaultMaskedError;
@@ -974,42 +989,42 @@ group gNPU2FIR
/** NPU2FIR[36]
* MMIO invalidate while one in progress.
*/
- (rNPU2FIR, bit(36)) ? defaultMaskedError;
+ (rNPU2FIR, bit(36)) ? self_th_1;
/** NPU2FIR[37]
* Unexpected ITAG on itag completion pt 0
*/
- (rNPU2FIR, bit(37)) ? defaultMaskedError;
+ (rNPU2FIR, bit(37)) ? self_th_1;
/** NPU2FIR[38]
* Unexpected ITAG on itag completion pt 1
*/
- (rNPU2FIR, bit(38)) ? defaultMaskedError;
+ (rNPU2FIR, bit(38)) ? self_th_1;
/** NPU2FIR[39]
* Unexpected Read PEE completion.
*/
- (rNPU2FIR, bit(39)) ? defaultMaskedError;
+ (rNPU2FIR, bit(39)) ? self_th_1;
/** NPU2FIR[40]
* Unexpected Checkout response.
*/
- (rNPU2FIR, bit(40)) ? defaultMaskedError;
+ (rNPU2FIR, bit(40)) ? self_th_1;
/** NPU2FIR[41]
* Translation request but SPAP is invalid.
*/
- (rNPU2FIR, bit(41)) ? defaultMaskedError;
+ (rNPU2FIR, bit(41)) ? self_th_1;
/** NPU2FIR[42]
* Read a PEE which was not valid.
*/
- (rNPU2FIR, bit(42)) ? defaultMaskedError;
+ (rNPU2FIR, bit(42)) ? self_th_1;
/** NPU2FIR[43]
* Bloom filter protection error.
*/
- (rNPU2FIR, bit(43)) ? defaultMaskedError;
+ (rNPU2FIR, bit(43)) ? self_th_1;
/** NPU2FIR[44]
* Translation request to non-valid TA
@@ -1017,44 +1032,44 @@ group gNPU2FIR
(rNPU2FIR, bit(44)) ? defaultMaskedError;
/** NPU2FIR[45]
- * TA Translation request to an invalid TA
+ * TA translation request to an invalid TA
*/
- (rNPU2FIR, bit(45)) ? defaultMaskedError;
+ (rNPU2FIR, bit(45)) ? self_th_1;
/** NPU2FIR[46]
* correctable array error (SBE).
*/
- (rNPU2FIR, bit(46)) ? defaultMaskedError;
+ (rNPU2FIR, bit(46)) ? self_th_32perDay;
/** NPU2FIR[47]
* array error (UE or parity).
*/
- (rNPU2FIR, bit(47)) ? defaultMaskedError;
+ (rNPU2FIR, bit(47)) ? self_th_1;
/** NPU2FIR[48]
* S/TLBI buffer overflow.
*/
- (rNPU2FIR, bit(48)) ? defaultMaskedError;
+ (rNPU2FIR, bit(48)) ? self_th_1;
/** NPU2FIR[49]
* SBE CE on Pb cout rsp or PEE read data.
*/
- (rNPU2FIR, bit(49)) ? defaultMaskedError;
+ (rNPU2FIR, bit(49)) ? self_th_32perDay;
/** NPU2FIR[50]
* UE on Pb cut rsp or PEE read data.
*/
- (rNPU2FIR, bit(50)) ? defaultMaskedError;
+ (rNPU2FIR, bit(50)) ? self_th_1;
/** NPU2FIR[51]
* SUE on Pb chkout rsp or Pb PEE rd data.
*/
- (rNPU2FIR, bit(51)) ? defaultMaskedError;
+ (rNPU2FIR, bit(51)) ? self_th_1;
/** NPU2FIR[52]
- * PA mem_hit when bar mode is nonzero
+ * PA mem hit when bar mode is nonzero
*/
- (rNPU2FIR, bit(52)) ? defaultMaskedError;
+ (rNPU2FIR, bit(52)) ? self_th_1;
/** NPU2FIR[53]
* XSL Reserved, macro bit 17.
diff --git a/src/usr/diag/prdf/common/plat/axone/axone_obus.rule b/src/usr/diag/prdf/common/plat/axone/axone_obus.rule
index a079fac59..1a346c417 100644
--- a/src/usr/diag/prdf/common/plat/axone/axone_obus.rule
+++ b/src/usr/diag/prdf/common/plat/axone/axone_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/axone/axone_omic.rule b/src/usr/diag/prdf/common/plat/axone/axone_omic.rule
index 09ed59f2d..7b26f7a3a 100644
--- a/src/usr/diag/prdf/common/plat/axone/axone_omic.rule
+++ b/src/usr/diag/prdf/common/plat/axone/axone_omic.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2018
+# Contributors Listed Below - COPYRIGHT 2018,2020
# [+] International Business Machines Corp.
#
#
@@ -196,8 +196,10 @@ rule rOMIC
};
group gOMIC attntype CHECK_STOP, RECOVERABLE, UNIT_CS, HOST_ATTN
- filter singlebit
+ filter priority(2,0,1)
{
+ # We need to prioritize analysis to the OMIDLFIR here because of potential
+ # Channel Fail attentions in that FIR that will be reported as RECOVERABLE.
(rOMIC, bit(0)) ? analyzeIOOMIFIR;
(rOMIC, bit(1)) ? analyzeMCPPEFIR;
(rOMIC, bit(2)) ? analyzeOMIDLFIR;
@@ -226,17 +228,17 @@ group gIOOMIFIR
/** IOOMIFIR[0]
* RX invalid state or parity error
*/
- (rIOOMIFIR, bit(0)) ? defaultMaskedError;
+ (rIOOMIFIR, bit(0)) ? self_th_1;
/** IOOMIFIR[1]
* TX invalid state or parity error
*/
- (rIOOMIFIR, bit(1)) ? defaultMaskedError;
+ (rIOOMIFIR, bit(1)) ? self_th_1;
/** IOOMIFIR[2]
* GCR hang error
*/
- (rIOOMIFIR, bit(2)) ? defaultMaskedError;
+ (rIOOMIFIR, bit(2)) ? self_th_1;
/** IOOMIFIR[3:47]
* Unused
@@ -359,306 +361,306 @@ rule rOMIDLFIR
};
group gOMIDLFIR
- filter singlebit,
- cs_root_cause
+ filter priority(0,20,40),
+ cs_root_cause(0,20,40)
{
/** OMIDLFIR[0]
- * DL0 fatal error
+ * OMI-DL0 fatal error
*/
- (rOMIDLFIR, bit(0)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(0)) ? dl0_fatal_error;
/** OMIDLFIR[1]
- * DL0 data UE
+ * OMI-DL0 UE on data flit
*/
- (rOMIDLFIR, bit(1)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(1)) ? dl0_omi_th_1;
/** OMIDLFIR[2]
- * DL0 flit CE
+ * OMI-DL0 CE on TL flit
*/
- (rOMIDLFIR, bit(2)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(2)) ? dl0_omi_th_32perDay;
/** OMIDLFIR[3]
- * DL0 CRC error
+ * OMI-DL0 detected a CRC error
*/
(rOMIDLFIR, bit(3)) ? defaultMaskedError;
/** OMIDLFIR[4]
- * DL0 nack
+ * OMI-DL0 received a nack
*/
(rOMIDLFIR, bit(4)) ? defaultMaskedError;
/** OMIDLFIR[5]
- * DL0 X4 mode
+ * OMI-DL0 running in degraded mode
*/
- (rOMIDLFIR, bit(5)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(5)) ? dl0_omi_bus_th_1;
/** OMIDLFIR[6]
- * DL0 EDPL
+ * OMI-DL0 parity error detection on a lane
*/
(rOMIDLFIR, bit(6)) ? defaultMaskedError;
/** OMIDLFIR[7]
- * DL0 timeout
+ * OMI-DL0 retrained due to no forward progress
*/
- (rOMIDLFIR, bit(7)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(7)) ? dl0_omi_bus_th_32perDay;
/** OMIDLFIR[8]
- * DL0 remote retrain
+ * OMI-DL0 remote side initiated a retrain
*/
(rOMIDLFIR, bit(8)) ? defaultMaskedError;
/** OMIDLFIR[9]
- * DL0 error retrain
+ * OMI-DL0 retrain due to internal error or software initiated
*/
- (rOMIDLFIR, bit(9)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(9)) ? dl0_omi_bus_th_32perDay;
/** OMIDLFIR[10]
- * DL0 EDPL retrain
+ * OMI-DL0 threshold reached
*/
- (rOMIDLFIR, bit(10)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(10)) ? dl0_omi_bus_th_32perDay;
/** OMIDLFIR[11]
- * DL0 trained
+ * OMI-DL0 trained
*/
(rOMIDLFIR, bit(11)) ? defaultMaskedError;
/** OMIDLFIR[12]
- * DL0 endpoint bit 0
+ * OMI-DL0 endpoint error bit 0
*/
(rOMIDLFIR, bit(12)) ? defaultMaskedError;
/** OMIDLFIR[13]
- * DL0 endpoint bit 1
+ * OMI-DL0 endpoint error bit 1
*/
(rOMIDLFIR, bit(13)) ? defaultMaskedError;
/** OMIDLFIR[14]
- * DL0 endpoint bit 2
+ * OMI-DL0 endpoint error bit 2
*/
(rOMIDLFIR, bit(14)) ? defaultMaskedError;
/** OMIDLFIR[15]
- * DL0 endpoint bit 3
+ * OMI-DL0 endpoint error bit 3
*/
(rOMIDLFIR, bit(15)) ? defaultMaskedError;
/** OMIDLFIR[16]
- * DL0 endpoint bit 4
+ * OMI-DL0 endpoint error bit 4
*/
(rOMIDLFIR, bit(16)) ? defaultMaskedError;
/** OMIDLFIR[17]
- * DL0 endpoint bit 5
+ * OMI-DL0 endpoint error bit 5
*/
(rOMIDLFIR, bit(17)) ? defaultMaskedError;
/** OMIDLFIR[18]
- * DL0 endpoint bit 6
+ * OMI-DL0 endpoint error bit 6
*/
(rOMIDLFIR, bit(18)) ? defaultMaskedError;
/** OMIDLFIR[19]
- * DL0 endpoint bit 7
+ * OMI-DL0 endpoint error bit 7
*/
(rOMIDLFIR, bit(19)) ? defaultMaskedError;
/** OMIDLFIR[20]
- * DL1 fatal error
+ * OMI-DL1 fatal error
*/
- (rOMIDLFIR, bit(20)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(20)) ? dl1_fatal_error;
/** OMIDLFIR[21]
- * DL1 data UE
+ * OMI-DL1 UE on data flit
*/
- (rOMIDLFIR, bit(21)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(21)) ? dl1_omi_th_1;
/** OMIDLFIR[22]
- * DL1 flit CE
+ * OMI-DL1 CE on TL flit
*/
- (rOMIDLFIR, bit(22)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(22)) ? dl1_omi_th_32perDay;
/** OMIDLFIR[23]
- * DL1 CRC error
+ * OMI-DL1 detected a CRC error
*/
(rOMIDLFIR, bit(23)) ? defaultMaskedError;
/** OMIDLFIR[24]
- * DL1 nack
+ * OMI-DL1 received a nack
*/
(rOMIDLFIR, bit(24)) ? defaultMaskedError;
/** OMIDLFIR[25]
- * DL1 X4 mode
+ * OMI-DL1 running in degraded mode
*/
- (rOMIDLFIR, bit(25)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(25)) ? dl1_omi_bus_th_1;
/** OMIDLFIR[26]
- * DL1 EDPL
+ * OMI-DL1 parity error detection on a lane
*/
(rOMIDLFIR, bit(26)) ? defaultMaskedError;
/** OMIDLFIR[27]
- * DL1 timeout
+ * OMI-DL1 retrained due to no forward progress
*/
- (rOMIDLFIR, bit(27)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(27)) ? dl1_omi_bus_th_32perDay;
/** OMIDLFIR[28]
- * DL1 remote retrain
+ * OMI-DL1 remote side initiated a retrain
*/
(rOMIDLFIR, bit(28)) ? defaultMaskedError;
/** OMIDLFIR[29]
- * DL1 error retrain
+ * OMI-DL1 retrain due to internal error or software initiated
*/
- (rOMIDLFIR, bit(29)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(29)) ? dl1_omi_bus_th_32perDay;
/** OMIDLFIR[30]
- * DL1 EDPL retrain
+ * OMI-DL1 threshold reached
*/
- (rOMIDLFIR, bit(30)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(30)) ? dl1_omi_bus_th_32perDay;
/** OMIDLFIR[31]
- * DL1 trained
+ * OMI-DL1 trained
*/
(rOMIDLFIR, bit(31)) ? defaultMaskedError;
/** OMIDLFIR[32]
- * DL1 endpoint bit 0
+ * OMI-DL1 endpoint error bit 0
*/
(rOMIDLFIR, bit(32)) ? defaultMaskedError;
/** OMIDLFIR[33]
- * DL1 endpoint bit 1
+ * OMI-DL1 endpoint error bit 1
*/
(rOMIDLFIR, bit(33)) ? defaultMaskedError;
/** OMIDLFIR[34]
- * DL1 endpoint bit 2
+ * OMI-DL1 endpoint error bit 2
*/
(rOMIDLFIR, bit(34)) ? defaultMaskedError;
/** OMIDLFIR[35]
- * DL1 endpoint bit 3
+ * OMI-DL1 endpoint error bit 3
*/
(rOMIDLFIR, bit(35)) ? defaultMaskedError;
/** OMIDLFIR[36]
- * DL1 endpoint bit 4
+ * OMI-DL1 endpoint error bit 4
*/
(rOMIDLFIR, bit(36)) ? defaultMaskedError;
/** OMIDLFIR[37]
- * DL1 endpoint bit 5
+ * OMI-DL1 endpoint error bit 5
*/
(rOMIDLFIR, bit(37)) ? defaultMaskedError;
/** OMIDLFIR[38]
- * DL1 endpoint bit 6
+ * OMI-DL1 endpoint error bit 6
*/
(rOMIDLFIR, bit(38)) ? defaultMaskedError;
/** OMIDLFIR[39]
- * DL1 endpoint bit 7
+ * OMI-DL1 endpoint error bit 7
*/
(rOMIDLFIR, bit(39)) ? defaultMaskedError;
/** OMIDLFIR[40]
- * DL2 fatal error
+ * OMI-DL2 fatal error
*/
- (rOMIDLFIR, bit(40)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(40)) ? dl2_fatal_error;
/** OMIDLFIR[41]
- * DL2 data UE
+ * OMI-DL2 UE on data flit
*/
- (rOMIDLFIR, bit(41)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(41)) ? dl2_omi_th_1;
/** OMIDLFIR[42]
- * DL2 flit CE
+ * OMI-DL2 CE on TL flit
*/
- (rOMIDLFIR, bit(42)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(42)) ? dl2_omi_th_32perDay;
/** OMIDLFIR[43]
- * DL2 CRC error
+ * OMI-DL2 detected a CRC error
*/
(rOMIDLFIR, bit(43)) ? defaultMaskedError;
/** OMIDLFIR[44]
- * DL2 nack
+ * OMI-DL2 received a nack
*/
(rOMIDLFIR, bit(44)) ? defaultMaskedError;
/** OMIDLFIR[45]
- * DL2 X4 mode
+ * OMI-DL2 running in degraded mode
*/
- (rOMIDLFIR, bit(45)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(45)) ? dl2_omi_bus_th_1;
/** OMIDLFIR[46]
- * DL2 EDPL
+ * OMI-DL2 parity error detection on a lane
*/
(rOMIDLFIR, bit(46)) ? defaultMaskedError;
/** OMIDLFIR[47]
- * DL2 timeout
+ * OMI-DL2 retrained due to no forward progress
*/
- (rOMIDLFIR, bit(47)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(47)) ? dl2_omi_bus_th_32perDay;
/** OMIDLFIR[48]
- * DL2 remote retrain
+ * OMI-DL2 remote side initiated a retrain
*/
(rOMIDLFIR, bit(48)) ? defaultMaskedError;
/** OMIDLFIR[49]
- * DL2 error retrain
+ * OMI-DL2 retrain due to internal error or software initiated
*/
- (rOMIDLFIR, bit(49)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(49)) ? dl2_omi_bus_th_32perDay;
/** OMIDLFIR[50]
- * DL2 EDPL retrain
+ * OMI-DL2 threshold reached
*/
- (rOMIDLFIR, bit(50)) ? defaultMaskedError;
+ (rOMIDLFIR, bit(50)) ? dl2_omi_bus_th_32perDay;
/** OMIDLFIR[51]
- * DL2 trained
+ * OMI-DL2 trained
*/
(rOMIDLFIR, bit(51)) ? defaultMaskedError;
/** OMIDLFIR[52]
- * DL2 endpoint bit 0
+ * OMI-DL2 endpoint error bit 0
*/
(rOMIDLFIR, bit(52)) ? defaultMaskedError;
/** OMIDLFIR[53]
- * DL2 endpoint bit 1
+ * OMI-DL2 endpoint error bit 1
*/
(rOMIDLFIR, bit(53)) ? defaultMaskedError;
/** OMIDLFIR[54]
- * DL2 endpoint bit 2
+ * OMI-DL2 endpoint error bit 2
*/
(rOMIDLFIR, bit(54)) ? defaultMaskedError;
/** OMIDLFIR[55]
- * DL2 endpoint bit 3
+ * OMI-DL2 endpoint error bit 3
*/
(rOMIDLFIR, bit(55)) ? defaultMaskedError;
/** OMIDLFIR[56]
- * DL2 endpoint bit 4
+ * OMI-DL2 endpoint error bit 4
*/
(rOMIDLFIR, bit(56)) ? defaultMaskedError;
/** OMIDLFIR[57]
- * DL2 endpoint bit 5
+ * OMI-DL2 endpoint error bit 5
*/
(rOMIDLFIR, bit(57)) ? defaultMaskedError;
/** OMIDLFIR[58]
- * DL2 endpoint bit 6
+ * OMI-DL2 endpoint error bit 6
*/
(rOMIDLFIR, bit(58)) ? defaultMaskedError;
/** OMIDLFIR[59]
- * DL2 endpoint bit 7
+ * OMI-DL2 endpoint error bit 7
*/
(rOMIDLFIR, bit(59)) ? defaultMaskedError;
@@ -667,6 +669,21 @@ group gOMIDLFIR
*/
(rOMIDLFIR, bit(60)) ? defaultMaskedError;
+ /** OMIDLFIR[61]
+ * reserved
+ */
+ (rOMIDLFIR, bit(61)) ? defaultMaskedError;
+
+ /** OMIDLFIR[62]
+ * LFIR internal parity error
+ */
+ (rOMIDLFIR, bit(62)) ? defaultMaskedError;
+
+ /** OMIDLFIR[63]
+ * SCOM Satellite Error
+ */
+ (rOMIDLFIR, bit(63)) ? defaultMaskedError;
+
};
##############################################################################
diff --git a/src/usr/diag/prdf/common/plat/axone/axone_omic_actions.rule b/src/usr/diag/prdf/common/plat/axone/axone_omic_actions.rule
index ecb6626a8..dbf563b47 100644
--- a/src/usr/diag/prdf/common/plat/axone/axone_omic_actions.rule
+++ b/src/usr/diag/prdf/common/plat/axone/axone_omic_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,133 @@
# IBM_PROLOG_END_TAG
################################################################################
+# OMIC Actions #
+################################################################################
+
+actionclass dl0_omi
+{
+ callout(connected(TYPE_OMI,0), MRU_MED);
+};
+
+actionclass dl1_omi
+{
+ callout(connected(TYPE_OMI,1), MRU_MED);
+};
+
+actionclass dl2_omi
+{
+ callout(connected(TYPE_OMI,2), MRU_MED);
+};
+
+actionclass dl0_omi_bus
+{
+ funccall("omiParentCalloutBusInterfacePlugin_0");
+};
+
+actionclass dl1_omi_bus
+{
+ funccall("omiParentCalloutBusInterfacePlugin_1");
+};
+
+actionclass dl2_omi_bus
+{
+ funccall("omiParentCalloutBusInterfacePlugin_2");
+};
+
+/** OMI-DL0 Fatal Error */
+actionclass dl0_fatal_error
+{
+ try( funccall("DlFatalError_0"), dl0_omi_bus );
+ threshold1;
+};
+
+/** OMI-DL1 Fatal Error */
+actionclass dl1_fatal_error
+{
+ try( funccall("DlFatalError_1"), dl1_omi_bus );
+ threshold1;
+};
+
+/** OMI-DL2 Fatal Error */
+actionclass dl2_fatal_error
+{
+ try( funccall("DlFatalError_2"), dl2_omi_bus );
+ threshold1;
+};
+
+actionclass dl0_omi_th_1
+{
+ dl0_omi;
+ threshold1;
+};
+
+actionclass dl1_omi_th_1
+{
+ dl1_omi;
+ threshold1;
+};
+
+actionclass dl2_omi_th_1
+{
+ dl2_omi;
+ threshold1;
+};
+
+actionclass dl0_omi_th_32perDay
+{
+ dl0_omi;
+ threshold32pday;
+};
+
+actionclass dl1_omi_th_32perDay
+{
+ dl1_omi;
+ threshold32pday;
+};
+
+actionclass dl2_omi_th_32perDay
+{
+ dl2_omi;
+ threshold32pday;
+};
+
+actionclass dl0_omi_bus_th_1
+{
+ dl0_omi_bus;
+ threshold1;
+};
+
+actionclass dl1_omi_bus_th_1
+{
+ dl1_omi_bus;
+ threshold1;
+};
+
+actionclass dl2_omi_bus_th_1
+{
+ dl2_omi_bus;
+ threshold1;
+};
+
+actionclass dl0_omi_bus_th_32perDay
+{
+ dl0_omi_bus;
+ threshold1;
+};
+
+actionclass dl1_omi_bus_th_32perDay
+{
+ dl1_omi_bus;
+ threshold1;
+};
+
+actionclass dl2_omi_bus_th_32perDay
+{
+ dl2_omi_bus;
+ threshold1;
+};
+
+################################################################################
# Analyze groups
################################################################################
diff --git a/src/usr/diag/prdf/common/plat/axone/axone_omic_regs.rule b/src/usr/diag/prdf/common/plat/axone/axone_omic_regs.rule
new file mode 100644
index 000000000..e698652a6
--- /dev/null
+++ b/src/usr/diag/prdf/common/plat/axone/axone_omic_regs.rule
@@ -0,0 +1,62 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/usr/diag/prdf/common/plat/axone/axone_omic_regs.rule $
+#
+# OpenPOWER HostBoot Project
+#
+# Contributors Listed Below - COPYRIGHT 2019
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+# IBM_PROLOG_END_TAG
+
+###############################################################################
+# Additional registers for omic, not defined in XML
+###############################################################################
+
+
+ ###########################################################################
+ # P9 Axone target OMIDLFIR
+ ###########################################################################
+
+ register OMIDLFIR_MASK_OR
+ {
+ name "P9 OMIC target OMIDLFIR MASK atomic OR";
+ scomaddr 0x07013345;
+ capture group never;
+ access write_only;
+ };
+
+ register DL0_ERROR_HOLD
+ {
+ name "P9 Axone target DL0 Error Hold Register";
+ scomaddr 0x07013353;
+ capture group default;
+ };
+
+ register DL1_ERROR_HOLD
+ {
+ name "P9 Axone target DL1 Error Hold Register";
+ scomaddr 0x07013363;
+ capture group default;
+ };
+
+ register DL2_ERROR_HOLD
+ {
+ name "P9 Axone target DL2 Error Hold Register";
+ scomaddr 0x07013373;
+ capture group default;
+ };
diff --git a/src/usr/diag/prdf/common/plat/axone/axone_phb.rule b/src/usr/diag/prdf/common/plat/axone/axone_phb.rule
index 844739ee2..1c5bb566d 100644
--- a/src/usr/diag/prdf/common/plat/axone/axone_phb.rule
+++ b/src/usr/diag/prdf/common/plat/axone/axone_phb.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2018
+# Contributors Listed Below - COPYRIGHT 2018,2019
# [+] International Business Machines Corp.
#
#
@@ -212,7 +212,7 @@ group gPHBNFIR
/** PHBNFIR[0]
* BAR Parity Error
*/
- (rPHBNFIR, bit(0)) ? self_th_1;
+ (rPHBNFIR, bit(0)) ? parent_proc_th_1;
/** PHBNFIR[1]
* Parity Errors on Registers besides BAR
@@ -252,12 +252,12 @@ group gPHBNFIR
/** PHBNFIR[8]
* Register Array Parity Error
*/
- (rPHBNFIR, bit(8)) ? self_th_1;
+ (rPHBNFIR, bit(8)) ? parent_proc_th_1;
/** PHBNFIR[9]
* Power Bus Interface Parity Error
*/
- (rPHBNFIR, bit(9)) ? self_th_1;
+ (rPHBNFIR, bit(9)) ? parent_proc_th_1;
/** PHBNFIR[10]
* Power Bus Data Hang
@@ -297,7 +297,7 @@ group gPHBNFIR
/** PHBNFIR[17]
* Hardware Error
*/
- (rPHBNFIR, bit(17)) ? self_th_1;
+ (rPHBNFIR, bit(17)) ? parent_proc_th_1;
/** PHBNFIR[18]
* Unsolicited Power Bus Data
diff --git a/src/usr/diag/prdf/common/plat/axone/axone_proc.rule b/src/usr/diag/prdf/common/plat/axone/axone_proc.rule
index c37c103be..b936106e2 100644
--- a/src/usr/diag/prdf/common/plat/axone/axone_proc.rule
+++ b/src/usr/diag/prdf/common/plat/axone/axone_proc.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2018
+# Contributors Listed Below - COPYRIGHT 2018,2019
# [+] International Business Machines Corp.
#
#
@@ -950,42 +950,6 @@ chip axone_proc
};
############################################################################
- # P9 chip ENHCAFIR
- ############################################################################
-
- register ENHCAFIR
- {
- name "P9 chip ENHCAFIR";
- scomaddr 0x05012940;
- reset (&, 0x05012941);
- mask (|, 0x05012945);
- capture group default;
- };
-
- register ENHCAFIR_MASK
- {
- name "P9 chip ENHCAFIR MASK";
- scomaddr 0x05012943;
- capture group default;
- };
-
- register ENHCAFIR_ACT0
- {
- name "P9 chip ENHCAFIR ACT0";
- scomaddr 0x05012946;
- capture group default;
- capture req nonzero("ENHCAFIR");
- };
-
- register ENHCAFIR_ACT1
- {
- name "P9 chip ENHCAFIR ACT1";
- scomaddr 0x05012947;
- capture group default;
- capture req nonzero("ENHCAFIR");
- };
-
- ############################################################################
# P9 chip PBAMFIR
############################################################################
@@ -2758,7 +2722,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
@@ -4077,14 +4041,14 @@ group gN3_CHIPLET_FIR
(rN3_CHIPLET_FIR, bit(14)) ? analyzePBPPEFIR;
/** N3_CHIPLET_FIR[15]
- * Attention from PBIOEFIR
+ * Attention from PBIOOFIR
*/
- (rN3_CHIPLET_FIR, bit(15)) ? analyzePBIOEFIR;
+ (rN3_CHIPLET_FIR, bit(15)) ? analyzePBIOOFIR;
/** N3_CHIPLET_FIR[16]
- * Attention from PBIOOFIR
+ * Attention from NPU0FIR 1
*/
- (rN3_CHIPLET_FIR, bit(16)) ? analyzePBIOOFIR;
+ (rN3_CHIPLET_FIR, bit(16)) ? analyzeConnectedNPU1;
/** N3_CHIPLET_FIR[17]
* Attention from INTCQFIR
@@ -4106,15 +4070,10 @@ group gN3_CHIPLET_FIR
*/
(rN3_CHIPLET_FIR, bit(20)) ? analyzePBAMFIR;
- /** N3_CHIPLET_FIR[21]
- * Attention from NPU0FIR 1
- */
- (rN3_CHIPLET_FIR, bit(21)) ? analyzeConnectedNPU1;
-
/** N3_CHIPLET_FIR[22]
- * Attention from ENHCAFIR
+ * Attention from PBIOEFIR
*/
- (rN3_CHIPLET_FIR, bit(22)) ? analyzeENHCAFIR;
+ (rN3_CHIPLET_FIR, bit(22)) ? analyzePBIOEFIR;
/** N3_CHIPLET_FIR[23]
* Attention from NPU2FIR 0
@@ -5145,144 +5104,6 @@ group gPSIHBFIR
};
################################################################################
-# P9 chip ENHCAFIR
-################################################################################
-
-rule rENHCAFIR
-{
- CHECK_STOP:
- ENHCAFIR & ~ENHCAFIR_MASK & ~ENHCAFIR_ACT0 & ~ENHCAFIR_ACT1;
- RECOVERABLE:
- ENHCAFIR & ~ENHCAFIR_MASK & ~ENHCAFIR_ACT0 & ENHCAFIR_ACT1;
-};
-
-group gENHCAFIR
- filter singlebit,
- cs_root_cause
-{
- /** ENHCAFIR[0]
- * PB0 data UE
- */
- (rENHCAFIR, bit(0)) ? defaultMaskedError;
-
- /** ENHCAFIR[1]
- * PB0 data SUE
- */
- (rENHCAFIR, bit(1)) ? defaultMaskedError;
-
- /** ENHCAFIR[2]
- * PB0 data ue
- */
- (rENHCAFIR, bit(2)) ? defaultMaskedError;
-
- /** ENHCAFIR[3]
- * spare
- */
- (rENHCAFIR, bit(3)) ? defaultMaskedError;
-
- /** ENHCAFIR[4]
- * Castout Drop Counter Full
- */
- (rENHCAFIR, bit(4)) ? defaultMaskedError;
-
- /** ENHCAFIR[5]
- * Data Hang Detect
- */
- (rENHCAFIR, bit(5)) ? defaultMaskedError;
-
- /** ENHCAFIR[6]
- * Unexpected data or cresp
- */
- (rENHCAFIR, bit(6)) ? defaultMaskedError;
-
- /** ENHCAFIR[7]
- * Internal Error
- */
- (rENHCAFIR, bit(7)) ? defaultMaskedError;
-
- /** ENHCAFIR[8]
- * ADU checkstop error from power bus data
- */
- (rENHCAFIR, bit(8)) ? defaultMaskedError;
-
- /** ENHCAFIR[9]
- * ADU checkstop error from alter display
- */
- (rENHCAFIR, bit(9)) ? defaultMaskedError;
-
- /** ENHCAFIR[10]
- * ADU checkstop error from xsco m
- */
- (rENHCAFIR, bit(10)) ? defaultMaskedError;
-
- /** ENHCAFIR[11]
- * ADU checkstop from power bus cmd
- */
- (rENHCAFIR, bit(11)) ? defaultMaskedError;
-
- /** ENHCAFIR[12]
- * ADU checkstop error from power bus send
- */
- (rENHCAFIR, bit(12)) ? defaultMaskedError;
-
- /** ENHCAFIR[13]
- * ADU checkstop from power bus receive
- */
- (rENHCAFIR, bit(13)) ? defaultMaskedError;
-
- /** ENHCAFIR[14]
- * ADU recoverable error from pb data
- */
- (rENHCAFIR, bit(14)) ? defaultMaskedError;
-
- /** ENHCAFIR[15]
- * ADU recoverable error from alter display
- */
- (rENHCAFIR, bit(15)) ? defaultMaskedError;
-
- /** ENHCAFIR[16]
- * ADU recoverable error from xscom
- */
- (rENHCAFIR, bit(16)) ? defaultMaskedError;
-
- /** ENHCAFIR[17]
- * ADU recoverable from power bus cmd
- */
- (rENHCAFIR, bit(17)) ? defaultMaskedError;
-
- /** ENHCAFIR[18]
- * ADU recoverable error from pb send
- */
- (rENHCAFIR, bit(18)) ? defaultMaskedError;
-
- /** ENHCAFIR[19]
- * ADU recoverable error from pb receive
- */
- (rENHCAFIR, bit(19)) ? defaultMaskedError;
-
- /** ENHCAFIR[20]
- * NHTM scom error
- */
- (rENHCAFIR, bit(20)) ? defaultMaskedError;
-
- /** ENHCAFIR[21]
- * spare
- */
- (rENHCAFIR, bit(21)) ? defaultMaskedError;
-
- /** ENHCAFIR[22]
- * scom error
- */
- (rENHCAFIR, bit(22)) ? defaultMaskedError;
-
- /** ENHCAFIR[23]
- * scom error
- */
- (rENHCAFIR, bit(23)) ? defaultMaskedError;
-
-};
-
-################################################################################
# P9 chip PBAMFIR
################################################################################
diff --git a/src/usr/diag/prdf/common/plat/axone/prdfMccPlugins.C b/src/usr/diag/prdf/common/plat/axone/prdfMccPlugins.C
new file mode 100644
index 000000000..804418717
--- /dev/null
+++ b/src/usr/diag/prdf/common/plat/axone/prdfMccPlugins.C
@@ -0,0 +1,142 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/common/plat/axone/prdfMccPlugins.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2019 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+// Framework includes
+#include <iipServiceDataCollector.h>
+#include <prdfExtensibleChip.H>
+#include <prdfPluginMap.H>
+
+// Platform includes
+#include <prdfMemUtils.H>
+#include <prdfPlatServices.H>
+#include <prdfMemExtraSig.H>
+
+using namespace TARGETING;
+
+namespace PRDF
+{
+
+using namespace PlatServices;
+
+namespace axone_mcc
+{
+
+//##############################################################################
+//
+// Special plugins
+//
+//##############################################################################
+
+/**
+ * @brief Analysis code that is called before the main analyze() function.
+ * @param i_chip A MCC chip.
+ * @param io_sc The step code data struct.
+ * @param o_analyzed True if analysis is done on this chip, false otherwise.
+ * @return Non-SUCCESS if an internal function fails, SUCCESS otherwise.
+ */
+int32_t PreAnalysis( ExtensibleChip * i_chip, STEP_CODE_DATA_STRUCT & io_sc,
+ bool & o_analyzed )
+{
+ // Check for a channel failure before analyzing this chip.
+ o_analyzed = MemUtils::analyzeChnlFail<TYPE_MCC>( i_chip, io_sc );
+
+ return SUCCESS;
+}
+PRDF_PLUGIN_DEFINE( axone_mcc, PreAnalysis );
+
+/**
+ * @brief Plugin function called after analysis is complete but before PRD
+ * exits.
+ * @param i_chip A MCC chip.
+ * @param io_sc The step code data struct.
+ * @note This is especially useful for any analysis that still needs to be
+ * done after the framework clears the FIR bits that were at attention.
+ * @return SUCCESS.
+ */
+int32_t PostAnalysis( ExtensibleChip * i_chip, STEP_CODE_DATA_STRUCT & io_sc )
+{
+ // If there was a channel failure some cleanup is required to ensure
+ // there are no more attentions from this channel.
+ MemUtils::cleanupChnlFail<TYPE_MCC>( i_chip, io_sc );
+
+ return SUCCESS;
+}
+PRDF_PLUGIN_DEFINE( axone_mcc, PostAnalysis );
+
+//##############################################################################
+//
+// DSTLFIR
+//
+//##############################################################################
+
+/**
+ * @brief Plugin function called to avoid analyzing to a checkstop on an OCMB.
+ * @param i_chip A MCC chip.
+ * @param io_sc The step code data struct.
+ * @param i_pos Position of the OMI/OCMB relative to the MCC.
+ * @return SUCCESS if the primary attn is CS, else PRD_SCAN_COMM_REGISTER_ZERO.
+ */
+int32_t checkOcmb( ExtensibleChip * i_chip, STEP_CODE_DATA_STRUCT & io_sc,
+ uint8_t i_pos )
+{
+ int32_t rc = PRD_SCAN_COMM_REGISTER_ZERO;
+
+ #ifdef CONFIG_ENABLE_CHECKSTOP_ANALYSIS
+ // We do not have support for the OCMB in the checkstop analysis path.
+ // As such, we will simply indicate there is an attention from the OCMB and
+ // add second level support and both sides of the bus as callouts.
+ if ( CHECK_STOP == io_sc.service_data->getPrimaryAttnType() )
+ {
+ TargetHandle_t omi = getConnectedChild( i_chip->getTrgt(), TYPE_OMI,
+ i_pos );
+ ExtensibleChip * ocmb = getConnectedChild( i_chip, TYPE_OCMB_CHIP,
+ i_pos );
+
+ io_sc.service_data->SetCallout( LEVEL2_SUPPORT, MRU_MED, NO_GARD );
+ io_sc.service_data->SetCallout( omi, MRU_LOW, NO_GARD );
+ io_sc.service_data->SetCallout( ocmb->getTrgt(), MRU_LOW, NO_GARD );
+
+ rc = SUCCESS;
+ }
+ #endif
+
+ return rc;
+}
+
+#define CHECK_OCMB_PLUGIN( POS ) \
+int32_t checkOcmb_##POS( ExtensibleChip * i_chip, \
+ STEP_CODE_DATA_STRUCT & io_sc ) \
+{ \
+ return checkOcmb( i_chip, io_sc, POS ); \
+} \
+PRDF_PLUGIN_DEFINE( axone_mcc, checkOcmb_##POS );
+
+CHECK_OCMB_PLUGIN( 0 );
+CHECK_OCMB_PLUGIN( 1 );
+
+} // end namespace axone_mcc
+
+} // end namespace PRDF
+
diff --git a/src/usr/diag/prdf/common/plat/axone/prdfOmicPlugins.C b/src/usr/diag/prdf/common/plat/axone/prdfOmicPlugins.C
new file mode 100644
index 000000000..f6ea182b9
--- /dev/null
+++ b/src/usr/diag/prdf/common/plat/axone/prdfOmicPlugins.C
@@ -0,0 +1,173 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/common/plat/axone/prdfOmicPlugins.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2019,2020 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+// Framework includes
+#include <iipServiceDataCollector.h>
+#include <prdfExtensibleChip.H>
+#include <prdfPluginMap.H>
+
+// Platform includes
+#include <prdfMemUtils.H>
+#include <prdfPlatServices.H>
+
+using namespace TARGETING;
+
+namespace PRDF
+{
+
+using namespace PlatServices;
+
+namespace axone_omic
+{
+
+//##############################################################################
+//
+// Special plugins
+//
+//##############################################################################
+
+/**
+ * @brief Analysis code that is called before the main analyze() function.
+ * @param i_chip An OMIC chip.
+ * @param io_sc The step code data struct.
+ * @param o_analyzed True if analysis is done on this chip, false otherwise.
+ * @return Non-SUCCESS if an internal function fails, SUCCESS otherwise.
+ */
+int32_t PreAnalysis( ExtensibleChip * i_chip, STEP_CODE_DATA_STRUCT & io_sc,
+ bool & o_analyzed )
+{
+ // Check for a channel failure before analyzing this chip.
+ o_analyzed = MemUtils::analyzeChnlFail<TYPE_OMIC>( i_chip, io_sc );
+
+ return SUCCESS;
+}
+PRDF_PLUGIN_DEFINE( axone_omic, PreAnalysis );
+
+/**
+ * @brief Plugin function called after analysis is complete but before PRD
+ * exits.
+ * @param i_chip An OMIC chip.
+ * @param io_sc The step code data struct.
+ * @note This is especially useful for any analysis that still needs to be
+ * done after the framework clears the FIR bits that were at attention.
+ * @return SUCCESS.
+ */
+int32_t PostAnalysis( ExtensibleChip * i_chip, STEP_CODE_DATA_STRUCT & io_sc )
+{
+ // If there was a channel failure some cleanup is required to ensure
+ // there are no more attentions from this channel.
+ MemUtils::cleanupChnlFail<TYPE_OMIC>( i_chip, io_sc );
+
+ return SUCCESS;
+}
+PRDF_PLUGIN_DEFINE( axone_omic, PostAnalysis );
+
+//##############################################################################
+//
+// OMIDLFIR
+//
+//##############################################################################
+
+/**
+ * @brief OMIDLFIR[0|20|40] - OMI-DL Fatal Error
+ * @param i_chip An OMIC chip.
+ * @param io_sc The step code data struct.
+ * @param i_dl The DL relative to the OMIC.
+ * @return PRD_SCAN_COMM_REGISTER_ZERO for the bus callout, else SUCCESS
+ */
+int32_t DlFatalError( ExtensibleChip * i_chip, STEP_CODE_DATA_STRUCT & io_sc,
+ uint8_t i_dl )
+{
+ #define PRDF_FUNC "[axone_omic::DlFatalError] "
+
+ int32_t rc = SUCCESS;
+
+ do
+ {
+ // Note: The OMIDLFIR can't actually be set up to report UNIT_CS
+ // attentions, instead, as a workaround, the relevant channel fail
+ // bits will be set as recoverable bits and we will manually set
+ // the attention types to UNIT_CS in our handling of these errors.
+ io_sc.service_data->setPrimaryAttnType( UNIT_CS );
+
+ char reg[64];
+ sprintf( reg, "DL%d_ERROR_HOLD", i_dl );
+
+ // Check DL#_ERROR_HOLD[52:63] to determine callout
+ SCAN_COMM_REGISTER_CLASS * dl_error_hold = i_chip->getRegister( reg );
+
+ if ( SUCCESS != dl_error_hold->Read() )
+ {
+ PRDF_ERR( PRDF_FUNC "Read() Failed on DL%d_ERROR_HOLD: "
+ "i_chip=0x%08x", i_dl, i_chip->getHuid() );
+ break;
+ }
+
+ if ( dl_error_hold->IsBitSet(53) ||
+ dl_error_hold->IsBitSet(55) ||
+ dl_error_hold->IsBitSet(57) ||
+ dl_error_hold->IsBitSet(58) ||
+ dl_error_hold->IsBitSet(59) ||
+ dl_error_hold->IsBitSet(60) ||
+ dl_error_hold->IsBitSet(62) ||
+ dl_error_hold->IsBitSet(63) )
+ {
+ // Get and callout the OMI target
+ TargetHandle_t omi = getConnectedChild( i_chip->getTrgt(), TYPE_OMI,
+ i_dl );
+ io_sc.service_data->SetCallout( omi );
+ }
+ else if ( dl_error_hold->IsBitSet(54) ||
+ dl_error_hold->IsBitSet(56) ||
+ dl_error_hold->IsBitSet(61) )
+ {
+ // callout the OMI target, the OMI bus, and the OCMB
+ // Return PRD_SCAN_COMM_REGISTER_ZERO so the rule code makes
+ // the appropriate callout.
+ rc = PRD_SCAN_COMM_REGISTER_ZERO;
+ }
+
+ }while(0);
+
+ return rc;
+
+ #undef PRDF_FUNC
+}
+
+#define DL_FATAL_ERROR_PLUGIN( POS ) \
+int32_t DlFatalError_##POS( ExtensibleChip * i_chip, \
+ STEP_CODE_DATA_STRUCT & io_sc ) \
+{ \
+ return DlFatalError( i_chip, io_sc, POS ); \
+} \
+PRDF_PLUGIN_DEFINE( axone_omic, DlFatalError_##POS );
+
+DL_FATAL_ERROR_PLUGIN( 0 );
+DL_FATAL_ERROR_PLUGIN( 1 );
+DL_FATAL_ERROR_PLUGIN( 2 );
+
+} // end namespace axone_omic
+
+} // end namespace PRDF
diff --git a/src/usr/diag/prdf/common/plat/axone/prdf_plat_axone.mk b/src/usr/diag/prdf/common/plat/axone/prdf_plat_axone.mk
index ea76f9121..24acb5bb6 100644
--- a/src/usr/diag/prdf/common/plat/axone/prdf_plat_axone.mk
+++ b/src/usr/diag/prdf/common/plat/axone/prdf_plat_axone.mk
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2016,2018
+# Contributors Listed Below - COPYRIGHT 2016,2019
# [+] International Business Machines Corp.
#
#
@@ -37,5 +37,7 @@ prd_incpath += ${PRD_SRC_PATH}/common/plat/axone
# Object files common to both FSP and Hostboot
################################################################################
-# plat/cumulus/ (rule plugin related)
+# plat/axone/ (rule plugin related)
+prd_rule_plugin += prdfMccPlugins.o
+prd_rule_plugin += prdfOmicPlugins.o
OpenPOWER on IntegriCloud