summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorprashanthacharya <prashanthacharya@in.ibm.com>2013-03-27 06:52:34 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-05-15 11:42:07 -0500
commita12177273bacbfdf3a73a02a2b33968e21de9ede (patch)
tree678315d0dceb990d58c256f42b0e47076b91edd6
parente6d69329d643edc044bcf312e0dfacbddc82bf10 (diff)
downloadblackbird-hostboot-a12177273bacbfdf3a73a02a2b33968e21de9ede.tar.gz
blackbird-hostboot-a12177273bacbfdf3a73a02a2b33968e21de9ede.zip
Add support for Venice in PRD rule files.
Change-Id: I53cf9771e328a93304cfa4cfa61c8defecaf21fb RTC: 62713 CMVC-Coreq: 874444 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/3758 Reviewed-by: Zane Shelley <zshelle@us.ibm.com> Tested-by: Jenkins Server Reviewed-by: Christopher T. Phan <cphan@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4513
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Proc.rule42
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Proc_acts_TP.rule46
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Proc_acts_XBUS.rule529
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Proc_regs_XBUS.rule150
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/prdfP8Proc.C36
5 files changed, 767 insertions, 36 deletions
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Proc.rule b/src/usr/diag/prdf/common/plat/pegasus/Proc.rule
index aaec466ed..82c09a2a7 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Proc.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Proc.rule
@@ -201,17 +201,17 @@ group gGlobalFir attntype CHECK_STOP, RECOVERABLE filter singlebit
/** GLOBAL_FIR[17]
* Attention from EX1 (Venice only)
*/
- (GlobalFir, bit(17)) ? defaultMaskedError;
+ (GlobalFir, bit(17)) ? analyzeEx1;
/** GLOBAL_FIR[18]
* Attention from EX2 (Venice only)
*/
- (GlobalFir, bit(18)) ? defaultMaskedError;
+ (GlobalFir, bit(18)) ? analyzeEx2;
/** GLOBAL_FIR[19]
* Attention from EX3 (Venice only)
*/
- (GlobalFir, bit(19)) ? defaultMaskedError;
+ (GlobalFir, bit(19)) ? analyzeEx3;
/** GLOBAL_FIR[20]
* Attention from EX4
@@ -231,17 +231,17 @@ group gGlobalFir attntype CHECK_STOP, RECOVERABLE filter singlebit
/** GLOBAL_FIR[25]
* Attention from EX9 (Venice only)
*/
- (GlobalFir, bit(25)) ? defaultMaskedError;
+ (GlobalFir, bit(25)) ? analyzeEx9;
/** GLOBAL_FIR[26]
* Attention from EX10 (Venice only)
*/
- (GlobalFir, bit(26)) ? defaultMaskedError;
+ (GlobalFir, bit(26)) ? analyzeEx10;
/** GLOBAL_FIR[27]
* Attention from EX11 (Venice only)
*/
- (GlobalFir, bit(27)) ? defaultMaskedError;
+ (GlobalFir, bit(27)) ? analyzeEx11;
/** GLOBAL_FIR[28]
* Attention from EX12
@@ -284,17 +284,17 @@ group gGlobalSpa attntype SPECIAL filter singlebit
/** GLOBAL_SPA[11]
* Attention from EX1 (Venice only)
*/
- (GlobalSpa, bit(11)) ? defaultMaskedError;
+ (GlobalSpa, bit(11)) ? analyzeEx1;
/** GLOBAL_SPA[12]
* Attention from EX2 (Venice only)
*/
- (GlobalSpa, bit(12)) ? defaultMaskedError;
+ (GlobalSpa, bit(12)) ? analyzeEx2;
/** GLOBAL_SPA[13]
* Attention from EX3 (Venice only)
*/
- (GlobalSpa, bit(13)) ? defaultMaskedError;
+ (GlobalSpa, bit(13)) ? analyzeEx3;
/** GLOBAL_SPA[14]
* Attention from EX4
@@ -314,17 +314,17 @@ group gGlobalSpa attntype SPECIAL filter singlebit
/** GLOBAL_SPA[19]
* Attention from EX9 (Venice only)
*/
- (GlobalSpa, bit(19)) ? defaultMaskedError;
+ (GlobalSpa, bit(19)) ? analyzeEx9;
/** GLOBAL_SPA[20]
* Attention from EX10 (Venice only)
*/
- (GlobalSpa, bit(20)) ? defaultMaskedError;
+ (GlobalSpa, bit(20)) ? analyzeEx10;
/** GLOBAL_SPA[21]
* Attention from EX11 (Venice only)
*/
- (GlobalSpa, bit(21)) ? defaultMaskedError;
+ (GlobalSpa, bit(21)) ? analyzeEx11;
/** GLOBAL_SPA[22]
* Attention from EX12
@@ -368,6 +368,15 @@ group gGlobalSpa attntype SPECIAL filter singlebit
# Analyze Connected Parts #
################################################################################
+/** Analyze connected EX1 */
+actionclass analyzeEx1 { analyze(connected(TYPE_EX, 1)); };
+
+/** Analyze connected EX2 */
+actionclass analyzeEx2 { analyze(connected(TYPE_EX, 2)); };
+
+/** Analyze connected EX3 */
+actionclass analyzeEx3 { analyze(connected(TYPE_EX, 3)); };
+
/** Analyze connected EX4 */
actionclass analyzeEx4 { analyze(connected(TYPE_EX, 4)); };
@@ -377,6 +386,15 @@ actionclass analyzeEx5 { analyze(connected(TYPE_EX, 5)); };
/** Analyze connected EX6 */
actionclass analyzeEx6 { analyze(connected(TYPE_EX, 6)); };
+/** Analyze connected EX9 */
+actionclass analyzeEx9 { analyze(connected(TYPE_EX, 9)); };
+
+/** Analyze connected EX10 */
+actionclass analyzeEx10 { analyze(connected(TYPE_EX, 10)); };
+
+/** Analyze connected EX11 */
+actionclass analyzeEx11 { analyze(connected(TYPE_EX, 11)); };
+
/** Analyze connected EX12 */
actionclass analyzeEx12 { analyze(connected(TYPE_EX, 12)); };
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_TP.rule b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_TP.rule
index b608daf9a..130676bad 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_TP.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_TP.rule
@@ -48,22 +48,22 @@ group gTpChipletFir filter singlebit
/** TP_CHIPLET_FIR[5]
* Attention from MCIFIR (MCS 00 Venice only)
*/
- (TpChipletFir, bit(5)) ? defaultMaskedError;
+ (TpChipletFir, bit(5)) ? analyzeMcs00;
/** TP_CHIPLET_FIR[6]
* Attention from MCIFIR (MCS 01 Venice only)
*/
- (TpChipletFir, bit(6)) ? defaultMaskedError;
+ (TpChipletFir, bit(6)) ? analyzeMcs01;
/** TP_CHIPLET_FIR[7]
* Attention from MCIFIR (MCS 10 Venice only)
*/
- (TpChipletFir, bit(7)) ? defaultMaskedError;
+ (TpChipletFir, bit(7)) ? analyzeMcs10;
/** TP_CHIPLET_FIR[8]
* Attention from MCIFIR (MCS 11 Venice only)
*/
- (TpChipletFir, bit(8)) ? defaultMaskedError;
+ (TpChipletFir, bit(8)) ? analyzeMcs11;
/** TP_CHIPLET_FIR[9]
* Attention from MCIFIR (MCS 20)
@@ -126,22 +126,22 @@ group gTpChipletSpa filter singlebit
/** TP_CHIPLET_SPA[1]
* Attention from MCIFIR_00 (Venice only)
*/
- (TpChipletSpa, bit(1)) ? defaultMaskedError;
+ (TpChipletSpa, bit(1)) ? analyzeMcs00;
/** TP_CHIPLET_SPA[2]
* Attention from MCIFIR_01 (Venice only)
*/
- (TpChipletSpa, bit(2)) ? defaultMaskedError;
+ (TpChipletSpa, bit(2)) ? analyzeMcs01;
/** TP_CHIPLET_SPA[3]
* Attention from MCIFIR_10 (Venice only)
*/
- (TpChipletSpa, bit(3)) ? defaultMaskedError;
+ (TpChipletSpa, bit(3)) ? analyzeMcs10;
/** TP_CHIPLET_SPA[4]
- * Attention from MCIFIR_10 (Venice only)
+ * Attention from MCIFIR_11 (Venice only)
*/
- (TpChipletSpa, bit(4)) ? defaultMaskedError;
+ (TpChipletSpa, bit(4)) ? analyzeMcs11;
/** TP_CHIPLET_SPA[5]
* Attention from MCIFIR_20
@@ -775,6 +775,34 @@ group gPmcFir filter singlebit
# Actions specific to TP chiplet
################################################################################
+/** Analyze connected MCS 00 */
+actionclass analyzeMcs00
+{
+ analyze(connected(TYPE_MCS, 0));
+ funccall("MaskMCS00IfCentaurCheckstop");
+};
+
+/** Analyze connected MCS 01 */
+actionclass analyzeMcs01
+{
+ analyze(connected(TYPE_MCS, 1));
+ funccall("MaskMCS01IfCentaurCheckstop");
+};
+
+/** Analyze connected MCS 10 */
+actionclass analyzeMcs10
+{
+ analyze(connected(TYPE_MCS, 2));
+ funccall("MaskMCS10IfCentaurCheckstop");
+};
+
+/** Analyze connected MCS 11 */
+actionclass analyzeMcs11
+{
+ analyze(connected(TYPE_MCS, 3));
+ funccall("MaskMCS11IfCentaurCheckstop");
+};
+
/** Analyze connected MCS 20 */
actionclass analyzeMcs20
{
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_XBUS.rule b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_XBUS.rule
index 3c45bfc65..9707db90f 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_XBUS.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_XBUS.rule
@@ -28,9 +28,9 @@
rule XbusChipletFir
{
CHECK_STOP:
- (XBUS_CHIPLET_CS_FIR & `1F80000000000000`) & ~XBUS_CHIPLET_FIR_MASK;
+ (XBUS_CHIPLET_CS_FIR & `1FC0000000000000`) & ~XBUS_CHIPLET_FIR_MASK;
RECOVERABLE:
- ((XBUS_CHIPLET_RE_FIR >> 2) & `1F80000000000000`) & ~XBUS_CHIPLET_FIR_MASK;
+ ((XBUS_CHIPLET_RE_FIR >> 2) & `1FC0000000000000`) & ~XBUS_CHIPLET_FIR_MASK;
};
group gXbusChipletFir filter singlebit
@@ -48,7 +48,7 @@ group gXbusChipletFir filter singlebit
/** XbusChipletFir[5]
* Attention from IOXFIR_0 (Venice only)
*/
- (XbusChipletFir, bit(5)) ? defaultMaskedError;
+ (XbusChipletFir, bit(5)) ? analyze(gIoxFir_0);
/** XbusChipletFir[6]
* Attention from IOXFIR_1
@@ -58,12 +58,17 @@ group gXbusChipletFir filter singlebit
/** XbusChipletFir[7]
* Attention from IOXFIR_2 (Venice only)
*/
- (XbusChipletFir, bit(7)) ? defaultMaskedError;
+ (XbusChipletFir, bit(7)) ? analyze(gIoxFir_2);
/** XbusChipletFir[8]
* Attention from IOXFIR_3 (Venice only)
*/
- (XbusChipletFir, bit(8)) ? defaultMaskedError;
+ (XbusChipletFir, bit(8)) ? analyze(gIoxFir_3);
+
+ /** XbusChipletFir[9]
+ * Attention from PSIFIR (Venice only)
+ */
+ (XbusChipletFir, bit(9)) ? analyze(gXbusPsiFir);
};
################################################################################
@@ -253,6 +258,169 @@ group gPbenFir filter singlebit
};
################################################################################
+# XBUS Chiplet IOXFIR_0
+################################################################################
+
+rule IoxFir_0
+{
+ CHECK_STOP: IOXFIR_0 & ~IOXFIR_0_MASK & ~IOXFIR_0_ACT0 & ~IOXFIR_0_ACT1;
+ RECOVERABLE: IOXFIR_0 & ~IOXFIR_0_MASK & ~IOXFIR_0_ACT0 & IOXFIR_0_ACT1;
+};
+
+group gIoxFir_0 filter singlebit
+{
+ /** IOXFIR_0[0]
+ * FIR_RX_INVALID_STATE_OR_PARITY_ERROR
+ */
+ (IoxFir_0, bit(0)) ? defaultMaskedError;
+
+ /** IOXFIR_0[1]
+ * FIR_TX_INVALID_STATE_OR_PARITY_ERROR
+ */
+ (IoxFir_0, bit(1)) ? defaultMaskedError;
+
+ /** IOXFIR_0[2]
+ * FIR_GCR_HANG_ERROR
+ */
+ (IoxFir_0, bit(2)) ? defaultMaskedError;
+
+ /** IOXFIR_0[8]
+ * FIR_RX_BUS0_TRAINING_ERROR
+ */
+ (IoxFir_0, bit(8)) ? defaultMaskedError;
+
+ /** IOXFIR_0[9]
+ * FIR_RX_BUS0_SPARE_DEPLOYED
+ */
+ (IoxFir_0, bit(9)) ? defaultMaskedError;
+
+ /** IOXFIR_0[10]
+ * FIR_RX_BUS0_MAX_SPARES_EXCEEDED
+ */
+ (IoxFir_0, bit(10)) ? defaultMaskedError;
+
+ /** IOXFIR_0[11]
+ * FIR_RX_BUS0_RECAL_OR_DYN_REPAIR_ERROR
+ */
+ (IoxFir_0, bit(11)) ? defaultMaskedError;
+
+ /** IOXFIR_0[12]
+ * FIR_RX_BUS0_TOO_MANY_BUS_ERRORS
+ */
+ (IoxFir_0, bit(12)) ? defaultMaskedError;
+
+ /** IOXFIR_0[16]
+ * FIR_RX_BUS1_TRAINING_ERROR
+ */
+ (IoxFir_0, bit(16)) ? defaultMaskedError;
+
+ /** IOXFIR_0[17]
+ * FIR_RX_BUS1_SPARE_DEPLOYED
+ */
+ (IoxFir_0, bit(17)) ? defaultMaskedError;
+
+ /** IOXFIR_0[18]
+ * FIR_RX_BUS1_MAX_SPARES_EXCEEDED
+ */
+ (IoxFir_0, bit(18)) ? defaultMaskedError;
+
+ /** IOXFIR_0[19]
+ * FIR_RX_BUS1_RECAL_OR_DYN_REPAIR_ERROR
+ */
+ (IoxFir_0, bit(19)) ? defaultMaskedError;
+
+ /** IOXFIR_0[20]
+ * FIR_RX_BUS1_TOO_MANY_BUS_ERRORS
+ */
+ (IoxFir_0, bit(20)) ? defaultMaskedError;
+
+ /** IOXFIR_0[24]
+ * FIR_RX_BUS2_TRAINING_ERROR
+ */
+ (IoxFir_0, bit(24)) ? defaultMaskedError;
+
+ /** IOXFIR_0[25]
+ * FIR_RX_BUS2_SPARE_DEPLOYED
+ */
+ (IoxFir_0, bit(25)) ? defaultMaskedError;
+
+ /** IOXFIR_0[26]
+ * FIR_RX_BUS2_MAX_SPARES_EXCEEDED
+ */
+ (IoxFir_0, bit(26)) ? defaultMaskedError;
+
+ /** IOXFIR_0[27]
+ * FIR_RX_BUS2_RECAL_OR_DYN_REPAIR_ERROR
+ */
+ (IoxFir_0, bit(27)) ? defaultMaskedError;
+
+ /** IOXFIR_0[28]
+ * FIR_RX_BUS2_TOO_MANY_BUS_ERRORS
+ */
+ (IoxFir_0, bit(28)) ? defaultMaskedError;
+
+ /** IOXFIR_0[32]
+ * FIR_RX_BUS3_TRAINING_ERROR
+ */
+ (IoxFir_0, bit(32)) ? defaultMaskedError;
+
+ /** IOXFIR_0[33]
+ * FIR_RX_BUS3_SPARE_DEPLOYED
+ */
+ (IoxFir_0, bit(33)) ? defaultMaskedError;
+
+ /** IOXFIR_0[34]
+ * FIR_RX_BUS3_MAX_SPARES_EXCEEDED
+ */
+ (IoxFir_0, bit(34)) ? defaultMaskedError;
+
+ /** IOXFIR_0[35]
+ * FIR_RX_BUS3_RECAL_OR_DYN_REPAIR_ERROR
+ */
+ (IoxFir_0, bit(35)) ? defaultMaskedError;
+
+ /** IOXFIR_0[36]
+ * FIR_RX_BUS3_TOO_MANY_BUS_ERRORS
+ */
+ (IoxFir_0, bit(36)) ? defaultMaskedError;
+
+ /** IOXFIR_0[40]
+ * FIR_RX_BUS4_TRAINING_ERROR
+ */
+ (IoxFir_0, bit(40)) ? defaultMaskedError;
+
+ /** IOXFIR_0[41]
+ * FIR_RX_BUS4_SPARE_DEPLOYED
+ */
+ (IoxFir_0, bit(41)) ? defaultMaskedError;
+
+ /** IOXFIR_0[42]
+ * FIR_RX_BUS4_MAX_SPARES_EXCEEDED
+ */
+ (IoxFir_0, bit(42)) ? defaultMaskedError;
+
+ /** IOXFIR_0[43]
+ * FIR_RX_BUS4_RECAL_OR_DYN_REPAIR_ERROR
+ */
+ (IoxFir_0, bit(43)) ? defaultMaskedError;
+
+ /** IOXFIR_0[44]
+ * FIR_RX_BUS4_TOO_MANY_BUS_ERRORS
+ */
+ (IoxFir_0, bit(44)) ? defaultMaskedError;
+
+ /** IOXFIR_0[48]
+ * FIR_SCOMFIR_ERROR
+ */
+ (IoxFir_0, bit(48)) ? defaultMaskedError;
+
+ /** IOXFIR_0[49]
+ * FIR_SCOMFIR_ERROR_CLONE
+ */
+ (IoxFir_0, bit(49)) ? defaultMaskedError;
+};
+
+################################################################################
# XBUS Chiplet IOXFIR_1
################################################################################
@@ -446,6 +614,357 @@ group gIoxFir_1 filter singlebit
};
################################################################################
+# XBUS Chiplet IOXFIR_2
+################################################################################
+
+rule IoxFir_2
+{
+ CHECK_STOP: IOXFIR_2 & ~IOXFIR_2_MASK & ~IOXFIR_2_ACT0 & ~IOXFIR_2_ACT1;
+ RECOVERABLE: IOXFIR_2 & ~IOXFIR_2_MASK & ~IOXFIR_2_ACT0 & IOXFIR_2_ACT1;
+};
+
+group gIoxFir_2 filter singlebit
+{
+ /** IOXFIR_2[0]
+ * FIR_RX_INVALID_STATE_OR_PARITY_ERROR
+ */
+ (IoxFir_2, bit(0)) ? defaultMaskedError;
+
+ /** IOXFIR_2[1]
+ * FIR_TX_INVALID_STATE_OR_PARITY_ERROR
+ */
+ (IoxFir_2, bit(1)) ? defaultMaskedError;
+
+ /** IOXFIR_2[2]
+ * FIR_GCR_HANG_ERROR
+ */
+ (IoxFir_2, bit(2)) ? defaultMaskedError;
+
+ /** IOXFIR_2[8]
+ * FIR_RX_BUS0_TRAINING_ERROR
+ */
+ (IoxFir_2, bit(8)) ? defaultMaskedError;
+
+ /** IOXFIR_2[9]
+ * FIR_RX_BUS0_SPARE_DEPLOYED
+ */
+ (IoxFir_2, bit(9)) ? defaultMaskedError;
+
+ /** IOXFIR_2[10]
+ * FIR_RX_BUS0_MAX_SPARES_EXCEEDED
+ */
+ (IoxFir_2, bit(10)) ? defaultMaskedError;
+
+ /** IOXFIR_2[11]
+ * FIR_RX_BUS0_RECAL_OR_DYN_REPAIR_ERROR
+ */
+ (IoxFir_2, bit(11)) ? defaultMaskedError;
+
+ /** IOXFIR_2[12]
+ * FIR_RX_BUS0_TOO_MANY_BUS_ERRORS
+ */
+ (IoxFir_2, bit(12)) ? defaultMaskedError;
+
+ /** IOXFIR_2[16]
+ * FIR_RX_BUS1_TRAINING_ERROR
+ */
+ (IoxFir_2, bit(16)) ? defaultMaskedError;
+
+ /** IOXFIR_2[17]
+ * FIR_RX_BUS1_SPARE_DEPLOYED
+ */
+ (IoxFir_2, bit(17)) ? defaultMaskedError;
+
+ /** IOXFIR_2[18]
+ * FIR_RX_BUS1_MAX_SPARES_EXCEEDED
+ */
+ (IoxFir_2, bit(18)) ? defaultMaskedError;
+
+ /** IOXFIR_2[19]
+ * FIR_RX_BUS1_RECAL_OR_DYN_REPAIR_ERROR
+ */
+ (IoxFir_2, bit(19)) ? defaultMaskedError;
+
+ /** IOXFIR_2[20]
+ * FIR_RX_BUS1_TOO_MANY_BUS_ERRORS
+ */
+ (IoxFir_2, bit(20)) ? defaultMaskedError;
+
+ /** IOXFIR_2[24]
+ * FIR_RX_BUS2_TRAINING_ERROR
+ */
+ (IoxFir_2, bit(24)) ? defaultMaskedError;
+
+ /** IOXFIR_2[25]
+ * FIR_RX_BUS2_SPARE_DEPLOYED
+ */
+ (IoxFir_2, bit(25)) ? defaultMaskedError;
+
+ /** IOXFIR_2[26]
+ * FIR_RX_BUS2_MAX_SPARES_EXCEEDED
+ */
+ (IoxFir_2, bit(26)) ? defaultMaskedError;
+
+ /** IOXFIR_2[27]
+ * FIR_RX_BUS2_RECAL_OR_DYN_REPAIR_ERROR
+ */
+ (IoxFir_2, bit(27)) ? defaultMaskedError;
+
+ /** IOXFIR_2[28]
+ * FIR_RX_BUS2_TOO_MANY_BUS_ERRORS
+ */
+ (IoxFir_2, bit(28)) ? defaultMaskedError;
+
+ /** IOXFIR_2[32]
+ * FIR_RX_BUS3_TRAINING_ERROR
+ */
+ (IoxFir_2, bit(32)) ? defaultMaskedError;
+
+ /** IOXFIR_2[33]
+ * FIR_RX_BUS3_SPARE_DEPLOYED
+ */
+ (IoxFir_2, bit(33)) ? defaultMaskedError;
+
+ /** IOXFIR_2[34]
+ * FIR_RX_BUS3_MAX_SPARES_EXCEEDED
+ */
+ (IoxFir_2, bit(34)) ? defaultMaskedError;
+
+ /** IOXFIR_2[35]
+ * FIR_RX_BUS3_RECAL_OR_DYN_REPAIR_ERROR
+ */
+ (IoxFir_2, bit(35)) ? defaultMaskedError;
+
+ /** IOXFIR_2[36]
+ * FIR_RX_BUS3_TOO_MANY_BUS_ERRORS
+ */
+ (IoxFir_2, bit(36)) ? defaultMaskedError;
+
+ /** IOXFIR_2[40]
+ * FIR_RX_BUS4_TRAINING_ERROR
+ */
+ (IoxFir_2, bit(40)) ? defaultMaskedError;
+
+ /** IOXFIR_2[41]
+ * FIR_RX_BUS4_SPARE_DEPLOYED
+ */
+ (IoxFir_2, bit(41)) ? defaultMaskedError;
+
+ /** IOXFIR_2[42]
+ * FIR_RX_BUS4_MAX_SPARES_EXCEEDED
+ */
+ (IoxFir_2, bit(42)) ? defaultMaskedError;
+
+ /** IOXFIR_2[43]
+ * FIR_RX_BUS4_RECAL_OR_DYN_REPAIR_ERROR
+ */
+ (IoxFir_2, bit(43)) ? defaultMaskedError;
+
+ /** IOXFIR_2[44]
+ * FIR_RX_BUS4_TOO_MANY_BUS_ERRORS
+ */
+ (IoxFir_2, bit(44)) ? defaultMaskedError;
+
+ /** IOXFIR_2[48]
+ * FIR_SCOMFIR_ERROR
+ */
+ (IoxFir_2, bit(48)) ? defaultMaskedError;
+
+ /** IOXFIR_2[49]
+ * FIR_SCOMFIR_ERROR_CLONE
+ */
+ (IoxFir_2, bit(49)) ? defaultMaskedError;
+};
+
+################################################################################
+# XBUS Chiplet IOXFIR_3
+################################################################################
+
+rule IoxFir_3
+{
+ CHECK_STOP: IOXFIR_3 & ~IOXFIR_3_MASK & ~IOXFIR_3_ACT0 & ~IOXFIR_3_ACT1;
+ RECOVERABLE: IOXFIR_3 & ~IOXFIR_3_MASK & ~IOXFIR_3_ACT0 & IOXFIR_3_ACT1;
+};
+
+group gIoxFir_3 filter singlebit
+{
+ /** IOXFIR_3[0]
+ * FIR_RX_INVALID_STATE_OR_PARITY_ERROR
+ */
+ (IoxFir_3, bit(0)) ? defaultMaskedError;
+
+ /** IOXFIR_3[1]
+ * FIR_TX_INVALID_STATE_OR_PARITY_ERROR
+ */
+ (IoxFir_3, bit(1)) ? defaultMaskedError;
+
+ /** IOXFIR_3[2]
+ * FIR_GCR_HANG_ERROR
+ */
+ (IoxFir_3, bit(2)) ? defaultMaskedError;
+
+ /** IOXFIR_3[8]
+ * FIR_RX_BUS0_TRAINING_ERROR
+ */
+ (IoxFir_3, bit(8)) ? defaultMaskedError;
+
+ /** IOXFIR_3[9]
+ * FIR_RX_BUS0_SPARE_DEPLOYED
+ */
+ (IoxFir_3, bit(9)) ? defaultMaskedError;
+
+ /** IOXFIR_3[10]
+ * FIR_RX_BUS0_MAX_SPARES_EXCEEDED
+ */
+ (IoxFir_3, bit(10)) ? defaultMaskedError;
+
+ /** IOXFIR_3[11]
+ * FIR_RX_BUS0_RECAL_OR_DYN_REPAIR_ERROR
+ */
+ (IoxFir_3, bit(11)) ? defaultMaskedError;
+
+ /** IOXFIR_3[12]
+ * FIR_RX_BUS0_TOO_MANY_BUS_ERRORS
+ */
+ (IoxFir_3, bit(12)) ? defaultMaskedError;
+
+ /** IOXFIR_3[16]
+ * FIR_RX_BUS1_TRAINING_ERROR
+ */
+ (IoxFir_3, bit(16)) ? defaultMaskedError;
+
+ /** IOXFIR_3[17]
+ * FIR_RX_BUS1_SPARE_DEPLOYED
+ */
+ (IoxFir_3, bit(17)) ? defaultMaskedError;
+
+ /** IOXFIR_3[18]
+ * FIR_RX_BUS1_MAX_SPARES_EXCEEDED
+ */
+ (IoxFir_3, bit(18)) ? defaultMaskedError;
+
+ /** IOXFIR_3[19]
+ * FIR_RX_BUS1_RECAL_OR_DYN_REPAIR_ERROR
+ */
+ (IoxFir_3, bit(19)) ? defaultMaskedError;
+
+ /** IOXFIR_3[20]
+ * FIR_RX_BUS1_TOO_MANY_BUS_ERRORS
+ */
+ (IoxFir_3, bit(20)) ? defaultMaskedError;
+
+ /** IOXFIR_3[24]
+ * FIR_RX_BUS2_TRAINING_ERROR
+ */
+ (IoxFir_3, bit(24)) ? defaultMaskedError;
+
+ /** IOXFIR_3[25]
+ * FIR_RX_BUS2_SPARE_DEPLOYED
+ */
+ (IoxFir_3, bit(25)) ? defaultMaskedError;
+
+ /** IOXFIR_3[26]
+ * FIR_RX_BUS2_MAX_SPARES_EXCEEDED
+ */
+ (IoxFir_3, bit(26)) ? defaultMaskedError;
+
+ /** IOXFIR_3[27]
+ * FIR_RX_BUS2_RECAL_OR_DYN_REPAIR_ERROR
+ */
+ (IoxFir_3, bit(27)) ? defaultMaskedError;
+
+ /** IOXFIR_3[28]
+ * FIR_RX_BUS2_TOO_MANY_BUS_ERRORS
+ */
+ (IoxFir_3, bit(28)) ? defaultMaskedError;
+
+ /** IOXFIR_3[32]
+ * FIR_RX_BUS3_TRAINING_ERROR
+ */
+ (IoxFir_3, bit(32)) ? defaultMaskedError;
+
+ /** IOXFIR_3[33]
+ * FIR_RX_BUS3_SPARE_DEPLOYED
+ */
+ (IoxFir_3, bit(33)) ? defaultMaskedError;
+
+ /** IOXFIR_3[34]
+ * FIR_RX_BUS3_MAX_SPARES_EXCEEDED
+ */
+ (IoxFir_3, bit(34)) ? defaultMaskedError;
+
+ /** IOXFIR_3[35]
+ * FIR_RX_BUS3_RECAL_OR_DYN_REPAIR_ERROR
+ */
+ (IoxFir_3, bit(35)) ? defaultMaskedError;
+
+ /** IOXFIR_3[36]
+ * FIR_RX_BUS3_TOO_MANY_BUS_ERRORS
+ */
+ (IoxFir_3, bit(36)) ? defaultMaskedError;
+
+ /** IOXFIR_3[40]
+ * FIR_RX_BUS4_TRAINING_ERROR
+ */
+ (IoxFir_3, bit(40)) ? defaultMaskedError;
+
+ /** IOXFIR_3[41]
+ * FIR_RX_BUS4_SPARE_DEPLOYED
+ */
+ (IoxFir_3, bit(41)) ? defaultMaskedError;
+
+ /** IOXFIR_3[42]
+ * FIR_RX_BUS4_MAX_SPARES_EXCEEDED
+ */
+ (IoxFir_3, bit(42)) ? defaultMaskedError;
+
+ /** IOXFIR_3[43]
+ * FIR_RX_BUS4_RECAL_OR_DYN_REPAIR_ERROR
+ */
+ (IoxFir_3, bit(43)) ? defaultMaskedError;
+
+ /** IOXFIR_3[44]
+ * FIR_RX_BUS4_TOO_MANY_BUS_ERRORS
+ */
+ (IoxFir_3, bit(44)) ? defaultMaskedError;
+
+ /** IOXFIR_3[48]
+ * FIR_SCOMFIR_ERROR
+ */
+ (IoxFir_3, bit(48)) ? defaultMaskedError;
+
+ /** IOXFIR_3[49]
+ * FIR_SCOMFIR_ERROR_CLONE
+ */
+ (IoxFir_3, bit(49)) ? defaultMaskedError;
+};
+
+################################################################################
+# XBUS Chiplet PSIFIR
+################################################################################
+
+rule XbusPsiFir
+{
+ CHECK_STOP:
+ XBUS_PSIFIR & ~XBUS_PSIFIR_MASK & ~XBUS_PSIFIR_ACT0 & ~XBUS_PSIFIR_ACT1;
+ RECOVERABLE:
+ XBUS_PSIFIR & ~XBUS_PSIFIR_MASK & ~XBUS_PSIFIR_ACT0 & XBUS_PSIFIR_ACT1;
+};
+
+group gXbusPsiFir filter singlebit
+{
+ /** XBUS_PSIFIR[5]
+ * INTERNAL_SCOM_ERROR
+ */
+ (XbusPsiFir, bit(5)) ? defaultMaskedError;
+
+ /** XBUS_PSIFIR[6]
+ * INTERNAL_SCOM_ERROR_CLONE
+ */
+ (XbusPsiFir, bit(6)) ? defaultMaskedError;
+};
+
+################################################################################
# Actions specific to XBUS chiplet
################################################################################
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Proc_regs_XBUS.rule b/src/usr/diag/prdf/common/plat/pegasus/Proc_regs_XBUS.rule
index 15a89ced0..63a000cb4 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Proc_regs_XBUS.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Proc_regs_XBUS.rule
@@ -122,10 +122,41 @@
};
############################################################################
- # XBUS Chiplet IOXFIR_0
+ # XBUS Chiplet IOXFIR_0 (Venice only)
############################################################################
- # Venice only scomaddr = TBD
+ register IOXFIR_0
+ {
+ name "XBUS01.X0.BUSCTL.SCOM.FIR_REG";
+ scomaddr 0x04011000;
+ reset (&, 0x04011001);
+ mask (|, 0x04011005);
+ capture group never; #FIXME: RTC 67200
+ };
+
+ register IOXFIR_0_MASK
+ {
+ name "XBUS01.X0.BUSCTL.SCOM.FIR_MASK_REG";
+ scomaddr 0x04011003;
+ capture type secondary;
+ capture group never; #FIXME: RTC 67200
+ };
+
+ register IOXFIR_0_ACT0
+ {
+ name "XBUS01.X0.BUSCTL.SCOM.FIR_ACTION0_REG";
+ scomaddr 0x04011006;
+ capture type secondary;
+ capture group never; #FIXME: RTC 67200
+ };
+
+ register IOXFIR_0_ACT1
+ {
+ name "XBUS01.X0.BUSCTL.SCOM.FIR_ACTION1_REG";
+ scomaddr 0x04011007;
+ capture type secondary;
+ capture group never; #FIXME: RTC 67200
+ };
############################################################################
# XBUS Chiplet IOXFIR_1
@@ -133,7 +164,7 @@
register IOXFIR_1
{
- name "XBUS1.BUSCTL.SCOM.FIR_REG";
+ name "XBUS01.X1.BUSCTL.SCOM.FIR_REG";
scomaddr 0x04011400;
reset (&, 0x04011401);
mask (|, 0x04011405);
@@ -142,7 +173,7 @@
register IOXFIR_1_MASK
{
- name "XBUS1.BUSCTL.SCOM.FIR_MASK_REG";
+ name "XBUS01.X1.BUSCTL.SCOM.FIR_MASK_REG";
scomaddr 0x04011403;
capture type secondary;
capture group default;
@@ -150,7 +181,7 @@
register IOXFIR_1_ACT0
{
- name "XBUS1.BUSCTL.SCOM.FIR_ACTION0_REG";
+ name "XBUS01.X1.BUSCTL.SCOM.FIR_ACTION0_REG";
scomaddr 0x04011406;
capture type secondary;
capture group default;
@@ -158,21 +189,120 @@
register IOXFIR_1_ACT1
{
- name "XBUS1.BUSCTL.SCOM.FIR_ACTION0_REG";
+ name "XBUS01.X1.BUSCTL.SCOM.FIR_ACTION1_REG";
scomaddr 0x04011407;
capture type secondary;
capture group default;
};
############################################################################
- # XBUS Chiplet IOXFIR_2
+ # XBUS Chiplet IOXFIR_2 (Venice only)
############################################################################
- # Venice only scomaddr = TBD
+ register IOXFIR_2
+ {
+ name "XBUS23.X0.BUSCTL.SCOM.FIR_REG";
+ scomaddr 0x04011800;
+ reset (&, 0x04011801);
+ mask (|, 0x04011805);
+ capture group never; #FIXME: RTC 67200
+ };
+
+ register IOXFIR_2_MASK
+ {
+ name "XBUS23.X0.BUSCTL.SCOM.FIR_MASK_REG";
+ scomaddr 0x04011803;
+ capture type secondary;
+ capture group never; #FIXME: RTC 67200
+ };
+
+ register IOXFIR_2_ACT0
+ {
+ name "XBUS23.X0.BUSCTL.SCOM.FIR_ACTION0_REG";
+ scomaddr 0x04011806;
+ capture type secondary;
+ capture group never; #FIXME: RTC 67200
+ };
+
+ register IOXFIR_2_ACT1
+ {
+ name "XBUS23.X0.BUSCTL.SCOM.FIR_ACTION1_REG";
+ scomaddr 0x04011807;
+ capture type secondary;
+ capture group never; #FIXME: RTC 67200
+ };
############################################################################
- # XBUS Chiplet IOXFIR_3
+ # XBUS Chiplet IOXFIR_3 (Venice only)
############################################################################
- # Venice only scomaddr = TBD
+ register IOXFIR_3
+ {
+ name "XBUS23.X1.BUSCTL.SCOM.FIR_REG";
+ scomaddr 0x04011c00;
+ reset (&, 0x04011c01);
+ mask (|, 0x04011c05);
+ capture group never; #FIXME: RTC 67200
+ };
+
+ register IOXFIR_3_MASK
+ {
+ name "XBUS23.X1.XBUS1.BUSCTL.SCOM.FIR_MASK_REG";
+ scomaddr 0x04011c03;
+ capture type secondary;
+ capture group never; #FIXME: RTC 67200
+ };
+
+ register IOXFIR_3_ACT0
+ {
+ name "XBUS23.X1.XBUS1.BUSCTL.SCOM.FIR_ACTION0_REG";
+ scomaddr 0x04011c06;
+ capture type secondary;
+ capture group never; #FIXME: RTC 67200
+ };
+
+ register IOXFIR_3_ACT1
+ {
+ name "XBUS23.X1.XBUS1.BUSCTL.SCOM.FIR_ACTION1_REG";
+ scomaddr 0x04011c07;
+ capture type secondary;
+ capture group never; #FIXME: RTC 67200
+ };
+
+ ############################################################################
+ # XBUS Chiplet XBUS_PSIFIR (Venice only)
+ ############################################################################
+
+ register XBUS_PSIFIR
+ {
+ name "PSI.PSI_MAC.PSI_SCOM.FIR_REG";
+ scomaddr 0x04012400;
+ reset (&, 0x04012401);
+ mask (|, 0x04012405);
+ capture group never; #FIXME: RTC 67200
+ };
+
+ register XBUS_PSIFIR_MASK
+ {
+ name "PSI.PSI_MAC.PSI_SCOM.FIR_MASK_REG";
+ scomaddr 0x04012403;
+ capture type secondary;
+ capture group never; #FIXME: RTC 67200
+ };
+
+ register XBUS_PSIFIR_ACT0
+ {
+ name "PSI.PSI_MAC.PSI_SCOM.FIR_ACTION0_REG";
+ scomaddr 0x04012406;
+ capture type secondary;
+ capture group never; #FIXME: RTC 67200
+ };
+
+ register XBUS_PSIFIR_ACT1
+ {
+ name "PSI.PSI_MAC.PSI_SCOM.FIR_ACTION1_REG";
+ scomaddr 0x04012407;
+ capture type secondary;
+ capture group never; #FIXME: RTC 67200
+ };
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfP8Proc.C b/src/usr/diag/prdf/common/plat/pegasus/prdfP8Proc.C
index a0675e816..39815f782 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfP8Proc.C
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfP8Proc.C
@@ -672,6 +672,42 @@ int32_t MaskIfCentaurCheckstop( ExtensibleChip * i_chip,
* @param i_sc The step code data struct
* @returns Failure or Success
*/
+int32_t MaskMCS00IfCentaurCheckstop( ExtensibleChip * i_chip,
+ STEP_CODE_DATA_STRUCT & i_sc )
+{
+ int32_t l_rc = SUCCESS;
+ l_rc = MaskIfCentaurCheckstop(i_chip, i_sc, 5);
+ return l_rc;
+}
+PRDF_PLUGIN_DEFINE( Proc, MaskMCS00IfCentaurCheckstop );
+
+int32_t MaskMCS01IfCentaurCheckstop( ExtensibleChip * i_chip,
+ STEP_CODE_DATA_STRUCT & i_sc )
+{
+ int32_t l_rc = SUCCESS;
+ l_rc = MaskIfCentaurCheckstop(i_chip, i_sc, 6);
+ return l_rc;
+}
+PRDF_PLUGIN_DEFINE( Proc, MaskMCS01IfCentaurCheckstop );
+
+int32_t MaskMCS10IfCentaurCheckstop( ExtensibleChip * i_chip,
+ STEP_CODE_DATA_STRUCT & i_sc )
+{
+ int32_t l_rc = SUCCESS;
+ l_rc = MaskIfCentaurCheckstop(i_chip, i_sc, 7);
+ return l_rc;
+}
+PRDF_PLUGIN_DEFINE( Proc, MaskMCS10IfCentaurCheckstop );
+
+int32_t MaskMCS11IfCentaurCheckstop( ExtensibleChip * i_chip,
+ STEP_CODE_DATA_STRUCT & i_sc )
+{
+ int32_t l_rc = SUCCESS;
+ l_rc = MaskIfCentaurCheckstop(i_chip, i_sc, 8);
+ return l_rc;
+}
+PRDF_PLUGIN_DEFINE( Proc, MaskMCS11IfCentaurCheckstop );
+
int32_t MaskMCS20IfCentaurCheckstop( ExtensibleChip * i_chip,
STEP_CODE_DATA_STRUCT & i_sc )
{
OpenPOWER on IntegriCloud