0001
0002 #include <linux/kernel.h>
0003 #include <linux/netdevice.h>
0004 #include "bnx2x.h"
0005
0006 #define NA 0xCD
0007
0008 #define IDLE_CHK_E1 0x01
0009 #define IDLE_CHK_E1H 0x02
0010 #define IDLE_CHK_E2 0x04
0011 #define IDLE_CHK_E3A0 0x08
0012 #define IDLE_CHK_E3B0 0x10
0013
0014 #define IDLE_CHK_ERROR 1
0015 #define IDLE_CHK_ERROR_NO_TRAFFIC 2
0016 #define IDLE_CHK_WARNING 3
0017
0018 #define MAX_FAIL_MSG 256
0019
0020
0021 static int idle_chk_errors, idle_chk_warnings;
0022
0023
0024 static int is_e1, is_e1h, is_e2, is_e3a0, is_e3b0;
0025
0026
0027 struct st_pred_args {
0028 u32 val1;
0029 u32 val2;
0030 u32 imm1;
0031 u32 imm2;
0032 u32 imm3;
0033 u32 imm4;
0034 };
0035
0036
0037 struct st_record {
0038 u8 chip_mask;
0039 u8 macro;
0040 u32 reg1;
0041 u32 reg2;
0042 u16 loop;
0043 u16 incr;
0044 int (*bnx2x_predicate)(struct st_pred_args *pred_args);
0045 u32 reg3;
0046 u8 severity;
0047 char *fail_msg;
0048 struct st_pred_args pred_args;
0049 };
0050
0051
0052 static int peq(struct st_pred_args *args)
0053 {
0054 return (args->val1 == args->imm1);
0055 }
0056
0057 static int pneq(struct st_pred_args *args)
0058 {
0059 return (args->val1 != args->imm1);
0060 }
0061
0062 static int pand_neq(struct st_pred_args *args)
0063 {
0064 return ((args->val1 & args->imm1) != args->imm2);
0065 }
0066
0067 static int pand_neq_x2(struct st_pred_args *args)
0068 {
0069 return (((args->val1 & args->imm1) != args->imm2) &&
0070 ((args->val1 & args->imm3) != args->imm4));
0071 }
0072
0073 static int pneq_err(struct st_pred_args *args)
0074 {
0075 return ((args->val1 != args->imm1) && (idle_chk_errors > args->imm2));
0076 }
0077
0078 static int pgt(struct st_pred_args *args)
0079 {
0080 return (args->val1 > args->imm1);
0081 }
0082
0083 static int pneq_r2(struct st_pred_args *args)
0084 {
0085 return (args->val1 != args->val2);
0086 }
0087
0088 static int plt_sub_r2(struct st_pred_args *args)
0089 {
0090 return (args->val1 < (args->val2 - args->imm1));
0091 }
0092
0093 static int pne_sub_r2(struct st_pred_args *args)
0094 {
0095 return (args->val1 != (args->val2 - args->imm1));
0096 }
0097
0098 static int prsh_and_neq(struct st_pred_args *args)
0099 {
0100 return (((args->val1 >> args->imm1) & args->imm2) != args->imm3);
0101 }
0102
0103 static int peq_neq_r2(struct st_pred_args *args)
0104 {
0105 return ((args->val1 == args->imm1) && (args->val2 != args->imm2));
0106 }
0107
0108 static int peq_neq_neq_r2(struct st_pred_args *args)
0109 {
0110 return ((args->val1 == args->imm1) && (args->val2 != args->imm2) &&
0111 (args->val2 != args->imm3));
0112 }
0113
0114
0115
0116 #define ST_DB_LINES 468
0117 static struct st_record st_database[ST_DB_LINES] = {
0118 {(0x3), 1, 0x2114,
0119 NA, 1, 0, pand_neq,
0120 NA, IDLE_CHK_ERROR,
0121 "PCIE: ucorr_err_status is not 0",
0122 {NA, NA, 0x0FF010, 0, NA, NA} },
0123
0124 {(0x3), 1, 0x2114,
0125 NA, 1, 0, pand_neq,
0126 NA, IDLE_CHK_WARNING,
0127 "PCIE: ucorr_err_status - Unsupported request error",
0128 {NA, NA, 0x100000, 0, NA, NA} },
0129
0130 {(0x3), 1, 0x2120,
0131 NA, 1, 0, pand_neq_x2,
0132 NA, IDLE_CHK_WARNING,
0133 "PCIE: corr_err_status is not 0x2000",
0134 {NA, NA, 0x31C1, 0x2000, 0x31C1, 0} },
0135
0136 {(0x3), 1, 0x2814,
0137 NA, 1, 0, pand_neq,
0138 NA, IDLE_CHK_ERROR,
0139 "PCIE: attentions register is not 0x40100",
0140 {NA, NA, ~0x40100, 0, NA, NA} },
0141
0142 {(0x2), 1, 0x281c,
0143 NA, 1, 0, pand_neq,
0144 NA, IDLE_CHK_ERROR,
0145 "PCIE: attentions register is not 0x40040100",
0146 {NA, NA, ~0x40040100, 0, NA, NA} },
0147
0148 {(0x2), 1, 0x2820,
0149 NA, 1, 0, pand_neq,
0150 NA, IDLE_CHK_ERROR,
0151 "PCIE: attentions register is not 0x40040100",
0152 {NA, NA, ~0x40040100, 0, NA, NA} },
0153
0154 {(0x3), 1, PXP2_REG_PGL_EXP_ROM2,
0155 NA, 1, 0, pneq,
0156 NA, IDLE_CHK_WARNING,
0157 "PXP2: There are outstanding read requests. Not all completios have arrived for read requests on tags that are marked with 0",
0158 {NA, NA, 0xffffffff, NA, NA, NA} },
0159
0160 {(0x3), 2, 0x212c,
0161 NA, 4, 4, pneq_err,
0162 NA, IDLE_CHK_WARNING,
0163 "PCIE: error packet header is not 0",
0164 {NA, NA, 0, NA, NA, NA} },
0165
0166 {(0x1C), 1, 0x2104,
0167 NA, 1, 0, pand_neq,
0168 NA, IDLE_CHK_ERROR,
0169 "PCIE: ucorr_err_status is not 0",
0170 {NA, NA, 0x0FD010, 0, NA, NA} },
0171
0172 {(0x1C), 1, 0x2104,
0173 NA, 1, 0, pand_neq,
0174 NA, IDLE_CHK_WARNING,
0175 "PCIE: ucorr_err_status - Unsupported request error",
0176 {NA, NA, 0x100000, 0, NA, NA} },
0177
0178 {(0x1C), 1, 0x2104,
0179 NA, 1, 0, pand_neq,
0180 NA, IDLE_CHK_WARNING,
0181 "PCIE: ucorr_err_status - Flow Control Protocol Error",
0182 {NA, NA, 0x2000, 0, NA, NA} },
0183
0184 {(0x1C), 1, 0x2110,
0185 NA, 1, 0, pand_neq_x2,
0186 NA, IDLE_CHK_WARNING,
0187 "PCIE: corr_err_status is not 0x2000",
0188 {NA, NA, 0x31C1, 0x2000, 0x31C1, 0} },
0189
0190 {(0x1C), 1, 0x2814,
0191 NA, 1, 0, pand_neq,
0192 NA, IDLE_CHK_WARNING,
0193 "PCIE: TTX_BRIDGE_FORWARD_ERR - Received master request while BME was 0",
0194 {NA, NA, 0x2000000, 0, NA, NA} },
0195
0196 {(0x1C), 1, 0x2814,
0197 NA, 1, 0, pand_neq,
0198 NA, IDLE_CHK_ERROR,
0199 "PCIE: Func 0 1: attentions register is not 0x2040902",
0200 {NA, NA, ~0x2040902, 0, NA, NA} },
0201
0202 {(0x1C), 1, 0x2854,
0203 NA, 1, 0, pand_neq,
0204 NA, IDLE_CHK_ERROR,
0205 "PCIE: Func 2 3 4: attentions register is not 0x10240902",
0206 {NA, NA, ~0x10240902, 0, NA, NA} },
0207
0208 {(0x1C), 1, 0x285c,
0209 NA, 1, 0, pand_neq,
0210 NA, IDLE_CHK_ERROR,
0211 "PCIE: Func 5 6 7: attentions register is not 0x10240902",
0212 {NA, NA, ~0x10240902, 0, NA, NA} },
0213
0214 {(0x18), 1, 0x3040,
0215 NA, 1, 0, pand_neq,
0216 NA, IDLE_CHK_ERROR,
0217 "PCIE: Overflow in DLP2TLP buffer",
0218 {NA, NA, 0x2, 0, NA, NA} },
0219
0220 {(0x1C), 1, PXP2_REG_PGL_EXP_ROM2,
0221 NA, 1, 0, pneq,
0222 NA, IDLE_CHK_WARNING,
0223 "PXP2: There are outstanding read requests for tags 0-31. Not all completios have arrived for read requests on tags that are marked with 0",
0224 {NA, NA, 0xffffffff, NA, NA, NA} },
0225
0226 {(0x1C), 2, 0x211c,
0227 NA, 4, 4, pneq_err,
0228 NA, IDLE_CHK_WARNING,
0229 "PCIE: error packet header is not 0",
0230 {NA, NA, 0, NA, NA, NA} },
0231
0232 {(0x1C), 1, PGLUE_B_REG_INCORRECT_RCV_DETAILS,
0233 NA, 1, 0, pneq,
0234 NA, IDLE_CHK_ERROR,
0235 "PGLUE_B: Packet received from PCIe not according to the rules",
0236 {NA, NA, 0, NA, NA, NA} },
0237
0238 {(0x1C), 1, PGLUE_B_REG_WAS_ERROR_VF_31_0,
0239 NA, 1, 0, pneq,
0240 NA, IDLE_CHK_WARNING,
0241 "PGLUE_B: was_error for VFs 0-31 is not 0",
0242 {NA, NA, 0, NA, NA, NA} },
0243
0244 {(0x1C), 1, PGLUE_B_REG_WAS_ERROR_VF_63_32,
0245 NA, 1, 0, pneq,
0246 NA, IDLE_CHK_WARNING,
0247 "PGLUE_B: was_error for VFs 32-63 is not 0",
0248 {NA, NA, 0, NA, NA, NA} },
0249
0250 {(0x1C), 1, PGLUE_B_REG_WAS_ERROR_VF_95_64,
0251 NA, 1, 0, pneq,
0252 NA, IDLE_CHK_WARNING,
0253 "PGLUE_B: was_error for VFs 64-95 is not 0",
0254 {NA, NA, 0, NA, NA, NA} },
0255
0256 {(0x1C), 1, PGLUE_B_REG_WAS_ERROR_VF_127_96,
0257 NA, 1, 0, pneq,
0258 NA, IDLE_CHK_WARNING,
0259 "PGLUE_B: was_error for VFs 96-127 is not 0",
0260 {NA, NA, 0, NA, NA, NA} },
0261
0262 {(0x1C), 1, PGLUE_B_REG_WAS_ERROR_PF_7_0,
0263 NA, 1, 0, pneq,
0264 NA, IDLE_CHK_WARNING,
0265 "PGLUE_B: was_error for PFs 0-7 is not 0",
0266 {NA, NA, 0, NA, NA, NA} },
0267
0268 {(0x1C), 1, PGLUE_B_REG_RX_ERR_DETAILS,
0269 NA, 1, 0, pneq,
0270 NA, IDLE_CHK_WARNING,
0271 "PGLUE_B: Completion received with error. (2:0) - PFID. (3) - VF_VALID. (9:4) - VFID. (11:10) - Error code : 0 - Completion Timeout; 1 - Unsupported Request; 2 - Completer Abort. (12) - valid bit",
0272 {NA, NA, 0, NA, NA, NA} },
0273
0274 {(0x1C), 1, PGLUE_B_REG_RX_TCPL_ERR_DETAILS,
0275 NA, 1, 0, pneq,
0276 NA, IDLE_CHK_WARNING,
0277 "PGLUE_B: ATS TCPL received with error. (2:0) - PFID. (3) - VF_VALID. (9:4) - VFID. (11:10) - Error code : 0 - Completion Timeout ; 1 - Unsupported Request; 2 - Completer Abort. (16:12) - OTB Entry ID. (17) - valid bit",
0278 {NA, NA, 0, NA, NA, NA} },
0279
0280 {(0x1C), 1, PGLUE_B_REG_TX_ERR_WR_ADD_31_0,
0281 NA, 1, 0, pneq,
0282 NA, IDLE_CHK_WARNING,
0283 "PGLUE_B: Error in master write. Address(31:0) is not 0",
0284 {NA, NA, 0, NA, NA, NA} },
0285
0286 {(0x1C), 1, PGLUE_B_REG_TX_ERR_WR_ADD_63_32,
0287 NA, 1, 0, pneq,
0288 NA, IDLE_CHK_WARNING,
0289 "PGLUE_B: Error in master write. Address(63:32) is not 0",
0290 {NA, NA, 0, NA, NA, NA} },
0291
0292 {(0x1C), 1, PGLUE_B_REG_TX_ERR_WR_DETAILS,
0293 NA, 1, 0, pneq,
0294 NA, IDLE_CHK_WARNING,
0295 "PGLUE_B: Error in master write. Error details register is not 0. (4:0) VQID. (23:21) - PFID. (24) - VF_VALID. (30:25) - VFID",
0296 {NA, NA, 0, NA, NA, NA} },
0297
0298 {(0x1C), 1, PGLUE_B_REG_TX_ERR_WR_DETAILS2,
0299 NA, 1, 0, pneq,
0300 NA, IDLE_CHK_WARNING,
0301 "PGLUE_B: Error in master write. Error details 2nd register is not 0. (21) - was_error set; (22) - BME cleared; (23) - FID_enable cleared; (24) - VF with parent PF FLR_request or IOV_disable_request",
0302 {NA, NA, 0, NA, NA, NA} },
0303
0304 {(0x1C), 1, PGLUE_B_REG_TX_ERR_RD_ADD_31_0,
0305 NA, 1, 0, pneq,
0306 NA, IDLE_CHK_WARNING,
0307 "PGLUE: Error in master read address(31:0) is not 0",
0308 {NA, NA, 0, NA, NA, NA} },
0309
0310 {(0x1C), 1, PGLUE_B_REG_TX_ERR_RD_ADD_63_32,
0311 NA, 1, 0, pneq,
0312 NA, IDLE_CHK_WARNING,
0313 "PGLUE_B: Error in master read address(63:32) is not 0",
0314 {NA, NA, 0, NA, NA, NA} },
0315
0316 {(0x1C), 1, PGLUE_B_REG_TX_ERR_RD_DETAILS,
0317 NA, 1, 0, pneq,
0318 NA, IDLE_CHK_WARNING,
0319 "PGLUE_B: Error in master read Error details register is not 0. (4:0) VQID. (23:21) - PFID. (24) - VF_VALID. (30:25) - VFID",
0320 {NA, NA, 0, NA, NA, NA} },
0321
0322 {(0x1C), 1, PGLUE_B_REG_TX_ERR_RD_DETAILS2,
0323 NA, 1, 0, pneq,
0324 NA, IDLE_CHK_WARNING,
0325 "PGLUE_B: Error in master read Error details 2nd register is not 0. (21) - was_error set; (22) - BME cleared; (23) - FID_enable cleared; (24) - VF with parent PF FLR_request or IOV_disable_request",
0326 {NA, NA, 0, NA, NA, NA} },
0327
0328 {(0x1C), 1, PGLUE_B_REG_VF_LENGTH_VIOLATION_DETAILS,
0329 NA, 1, 0, pneq,
0330 NA, IDLE_CHK_WARNING,
0331 "PGLUE_B: Target VF length violation access",
0332 {NA, NA, 0, NA, NA, NA} },
0333
0334 {(0x1C), 1, PGLUE_B_REG_VF_GRC_SPACE_VIOLATION_DETAILS,
0335 NA, 1, 0, pneq,
0336 NA, IDLE_CHK_WARNING,
0337 "PGLUE_B: Target VF GRC space access failed permission check",
0338 {NA, NA, 0, NA, NA, NA} },
0339
0340 {(0x1C), 1, PGLUE_B_REG_TAGS_63_32,
0341 NA, 1, 0, pneq,
0342 NA, IDLE_CHK_WARNING,
0343 "PGLUE_B: There are outstanding read requests for tags 32-63. Not all completios have arrived for read requests on tags that are marked with 0",
0344 {NA, NA, 0xffffffff, NA, NA, NA} },
0345
0346 {(0x1C), 3, PXP_REG_HST_VF_DISABLED_ERROR_VALID,
0347 PXP_REG_HST_VF_DISABLED_ERROR_DATA, 1, 0, pneq,
0348 NA, IDLE_CHK_WARNING,
0349 "PXP: Access to disabled VF took place",
0350 {NA, NA, 0, NA, NA, NA} },
0351
0352 {(0x1C), 1, PXP_REG_HST_PER_VIOLATION_VALID,
0353 NA, 1, 0, pneq,
0354 NA, IDLE_CHK_WARNING,
0355 "PXP: Zone A permission violation occurred",
0356 {NA, NA, 0, NA, NA, NA} },
0357
0358 {(0x1C), 1, PXP_REG_HST_INCORRECT_ACCESS_VALID,
0359 NA, 1, 0, pneq,
0360 NA, IDLE_CHK_WARNING,
0361 "PXP: Incorrect transaction took place",
0362 {NA, NA, 0, NA, NA, NA} },
0363
0364 {(0x1C), 1, PXP2_REG_RD_CPL_ERR_DETAILS,
0365 NA, 1, 0, pneq,
0366 NA, IDLE_CHK_WARNING,
0367 "PXP2: Completion received with error. Error details register is not 0. (15:0) - ECHO. (28:16) - Sub Request length plus start_offset_2_0 minus 1",
0368 {NA, NA, 0, NA, NA, NA} },
0369
0370 {(0x1C), 1, PXP2_REG_RD_CPL_ERR_DETAILS2,
0371 NA, 1, 0, pneq,
0372 NA, IDLE_CHK_WARNING,
0373 "PXP2: Completion received with error. Error details 2nd register is not 0. (4:0) - VQ ID. (8:5) - client ID. (9) - valid bit",
0374 {NA, NA, 0, NA, NA, NA} },
0375
0376 {(0x1F), 1, PXP2_REG_RQ_VQ0_ENTRY_CNT,
0377 NA, 1, 0, pneq,
0378 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0379 "PXP2: VQ0 is not empty",
0380 {NA, NA, 0, NA, NA, NA} },
0381
0382 {(0x1F), 1, PXP2_REG_RQ_VQ1_ENTRY_CNT,
0383 NA, 1, 0, pneq,
0384 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0385 "PXP2: VQ1 is not empty",
0386 {NA, NA, 0, NA, NA, NA} },
0387
0388 {(0x1F), 1, PXP2_REG_RQ_VQ2_ENTRY_CNT,
0389 NA, 1, 0, pneq,
0390 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0391 "PXP2: VQ2 is not empty",
0392 {NA, NA, 0, NA, NA, NA} },
0393
0394 {(0x1F), 1, PXP2_REG_RQ_VQ3_ENTRY_CNT,
0395 NA, 1, 0, pgt,
0396 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0397 "PXP2: VQ3 is not empty",
0398 {NA, NA, 2, NA, NA, NA} },
0399
0400 {(0x1F), 1, PXP2_REG_RQ_VQ4_ENTRY_CNT,
0401 NA, 1, 0, pneq,
0402 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0403 "PXP2: VQ4 is not empty",
0404 {NA, NA, 0, NA, NA, NA} },
0405
0406 {(0x1F), 1, PXP2_REG_RQ_VQ5_ENTRY_CNT,
0407 NA, 1, 0, pneq,
0408 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0409 "PXP2: VQ5 is not empty",
0410 {NA, NA, 0, NA, NA, NA} },
0411
0412 {(0x1F), 1, PXP2_REG_RQ_VQ6_ENTRY_CNT,
0413 NA, 1, 0, pneq,
0414 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0415 "PXP2: VQ6 is not empty",
0416 {NA, NA, 0, NA, NA, NA} },
0417
0418 {(0x1F), 1, PXP2_REG_RQ_VQ7_ENTRY_CNT,
0419 NA, 1, 0, pneq,
0420 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0421 "PXP2: VQ7 is not empty",
0422 {NA, NA, 0, NA, NA, NA} },
0423
0424 {(0x1F), 1, PXP2_REG_RQ_VQ8_ENTRY_CNT,
0425 NA, 1, 0, pneq,
0426 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0427 "PXP2: VQ8 is not empty",
0428 {NA, NA, 0, NA, NA, NA} },
0429
0430 {(0x1F), 1, PXP2_REG_RQ_VQ9_ENTRY_CNT,
0431 NA, 1, 0, pneq,
0432 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0433 "PXP2: VQ9 is not empty",
0434 {NA, NA, 0, NA, NA, NA} },
0435
0436 {(0x1F), 1, PXP2_REG_RQ_VQ10_ENTRY_CNT,
0437 NA, 1, 0, pneq,
0438 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0439 "PXP2: VQ10 is not empty",
0440 {NA, NA, 0, NA, NA, NA} },
0441
0442 {(0x1F), 1, PXP2_REG_RQ_VQ11_ENTRY_CNT,
0443 NA, 1, 0, pneq,
0444 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0445 "PXP2: VQ11 is not empty",
0446 {NA, NA, 0, NA, NA, NA} },
0447
0448 {(0x1F), 1, PXP2_REG_RQ_VQ12_ENTRY_CNT,
0449 NA, 1, 0, pneq,
0450 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0451 "PXP2: VQ12 is not empty",
0452 {NA, NA, 0, NA, NA, NA} },
0453
0454 {(0x1F), 1, PXP2_REG_RQ_VQ13_ENTRY_CNT,
0455 NA, 1, 0, pneq,
0456 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0457 "PXP2: VQ13 is not empty",
0458 {NA, NA, 0, NA, NA, NA} },
0459
0460 {(0x1F), 1, PXP2_REG_RQ_VQ14_ENTRY_CNT,
0461 NA, 1, 0, pneq,
0462 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0463 "PXP2: VQ14 is not empty",
0464 {NA, NA, 0, NA, NA, NA} },
0465
0466 {(0x1F), 1, PXP2_REG_RQ_VQ15_ENTRY_CNT,
0467 NA, 1, 0, pneq,
0468 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0469 "PXP2: VQ15 is not empty",
0470 {NA, NA, 0, NA, NA, NA} },
0471
0472 {(0x1F), 1, PXP2_REG_RQ_VQ16_ENTRY_CNT,
0473 NA, 1, 0, pneq,
0474 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0475 "PXP2: VQ16 is not empty",
0476 {NA, NA, 0, NA, NA, NA} },
0477
0478 {(0x1F), 1, PXP2_REG_RQ_VQ17_ENTRY_CNT,
0479 NA, 1, 0, pneq,
0480 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0481 "PXP2: VQ17 is not empty",
0482 {NA, NA, 0, NA, NA, NA} },
0483
0484 {(0x1F), 1, PXP2_REG_RQ_VQ18_ENTRY_CNT,
0485 NA, 1, 0, pneq,
0486 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0487 "PXP2: VQ18 is not empty",
0488 {NA, NA, 0, NA, NA, NA} },
0489
0490 {(0x1F), 1, PXP2_REG_RQ_VQ19_ENTRY_CNT,
0491 NA, 1, 0, pneq,
0492 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0493 "PXP2: VQ19 is not empty",
0494 {NA, NA, 0, NA, NA, NA} },
0495
0496 {(0x1F), 1, PXP2_REG_RQ_VQ20_ENTRY_CNT,
0497 NA, 1, 0, pneq,
0498 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0499 "PXP2: VQ20 is not empty",
0500 {NA, NA, 0, NA, NA, NA} },
0501
0502 {(0x1F), 1, PXP2_REG_RQ_VQ21_ENTRY_CNT,
0503 NA, 1, 0, pneq,
0504 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0505 "PXP2: VQ21 is not empty",
0506 {NA, NA, 0, NA, NA, NA} },
0507
0508 {(0x1F), 1, PXP2_REG_RQ_VQ22_ENTRY_CNT,
0509 NA, 1, 0, pneq,
0510 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0511 "PXP2: VQ22 is not empty",
0512 {NA, NA, 0, NA, NA, NA} },
0513
0514 {(0x1F), 1, PXP2_REG_RQ_VQ23_ENTRY_CNT,
0515 NA, 1, 0, pneq,
0516 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0517 "PXP2: VQ23 is not empty",
0518 {NA, NA, 0, NA, NA, NA} },
0519
0520 {(0x1F), 1, PXP2_REG_RQ_VQ24_ENTRY_CNT,
0521 NA, 1, 0, pneq,
0522 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0523 "PXP2: VQ24 is not empty",
0524 {NA, NA, 0, NA, NA, NA} },
0525
0526 {(0x1F), 1, PXP2_REG_RQ_VQ25_ENTRY_CNT,
0527 NA, 1, 0, pneq,
0528 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0529 "PXP2: VQ25 is not empty",
0530 {NA, NA, 0, NA, NA, NA} },
0531
0532 {(0x1F), 1, PXP2_REG_RQ_VQ26_ENTRY_CNT,
0533 NA, 1, 0, pneq,
0534 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0535 "PXP2: VQ26 is not empty",
0536 {NA, NA, 0, NA, NA, NA} },
0537
0538 {(0x1F), 1, PXP2_REG_RQ_VQ27_ENTRY_CNT,
0539 NA, 1, 0, pneq,
0540 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0541 "PXP2: VQ27 is not empty",
0542 {NA, NA, 0, NA, NA, NA} },
0543
0544 {(0x1F), 1, PXP2_REG_RQ_VQ28_ENTRY_CNT,
0545 NA, 1, 0, pneq,
0546 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0547 "PXP2: VQ28 is not empty",
0548 {NA, NA, 0, NA, NA, NA} },
0549
0550 {(0x1F), 1, PXP2_REG_RQ_VQ29_ENTRY_CNT,
0551 NA, 1, 0, pneq,
0552 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0553 "PXP2: VQ29 is not empty",
0554 {NA, NA, 0, NA, NA, NA} },
0555
0556 {(0x1F), 1, PXP2_REG_RQ_VQ30_ENTRY_CNT,
0557 NA, 1, 0, pneq,
0558 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0559 "PXP2: VQ30 is not empty",
0560 {NA, NA, 0, NA, NA, NA} },
0561
0562 {(0x1F), 1, PXP2_REG_RQ_VQ31_ENTRY_CNT,
0563 NA, 1, 0, pneq,
0564 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0565 "PXP2: VQ31 is not empty",
0566 {NA, NA, 0, NA, NA, NA} },
0567
0568 {(0x1F), 1, PXP2_REG_RQ_UFIFO_NUM_OF_ENTRY,
0569 NA, 1, 0, pneq,
0570 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0571 "PXP2: rq_ufifo_num_of_entry is not 0",
0572 {NA, NA, 0, NA, NA, NA} },
0573
0574 {(0x1F), 1, PXP2_REG_RQ_RBC_DONE,
0575 NA, 1, 0, pneq,
0576 NA, IDLE_CHK_ERROR,
0577 "PXP2: rq_rbc_done is not 1",
0578 {NA, NA, 1, NA, NA, NA} },
0579
0580 {(0x1F), 1, PXP2_REG_RQ_CFG_DONE,
0581 NA, 1, 0, pneq,
0582 NA, IDLE_CHK_ERROR,
0583 "PXP2: rq_cfg_done is not 1",
0584 {NA, NA, 1, NA, NA, NA} },
0585
0586 {(0x3), 1, PXP2_REG_PSWRQ_BW_CREDIT,
0587 NA, 1, 0, pneq,
0588 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0589 "PXP2: rq_read_credit and rq_write_credit are not 3",
0590 {NA, NA, 0x1B, NA, NA, NA} },
0591
0592 {(0x1F), 1, PXP2_REG_RD_START_INIT,
0593 NA, 1, 0, pneq,
0594 NA, IDLE_CHK_ERROR,
0595 "PXP2: rd_start_init is not 1",
0596 {NA, NA, 1, NA, NA, NA} },
0597
0598 {(0x1F), 1, PXP2_REG_RD_INIT_DONE,
0599 NA, 1, 0, pneq,
0600 NA, IDLE_CHK_ERROR,
0601 "PXP2: rd_init_done is not 1",
0602 {NA, NA, 1, NA, NA, NA} },
0603
0604 {(0x1F), 3, PXP2_REG_RD_SR_CNT,
0605 PXP2_REG_RD_SR_NUM_CFG, 1, 0, pne_sub_r2,
0606 NA, IDLE_CHK_WARNING,
0607 "PXP2: rd_sr_cnt is not equal to rd_sr_num_cfg",
0608 {NA, NA, 1, NA, NA, NA} },
0609
0610 {(0x1F), 3, PXP2_REG_RD_BLK_CNT,
0611 PXP2_REG_RD_BLK_NUM_CFG, 1, 0, pneq_r2,
0612 NA, IDLE_CHK_WARNING,
0613 "PXP2: rd_blk_cnt is not equal to rd_blk_num_cfg",
0614 {NA, NA, NA, NA, NA, NA} },
0615
0616 {(0x1F), 3, PXP2_REG_RD_SR_CNT,
0617 PXP2_REG_RD_SR_NUM_CFG, 1, 0, plt_sub_r2,
0618 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0619 "PXP2: There are more than two unused SRs",
0620 {NA, NA, 3, NA, NA, NA} },
0621
0622 {(0x1F), 3, PXP2_REG_RD_BLK_CNT,
0623 PXP2_REG_RD_BLK_NUM_CFG, 1, 0, plt_sub_r2,
0624 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0625 "PXP2: There are more than two unused blocks",
0626 {NA, NA, 2, NA, NA, NA} },
0627
0628 {(0x1F), 1, PXP2_REG_RD_PORT_IS_IDLE_0,
0629 NA, 1, 0, pneq,
0630 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0631 "PXP2: P0 All delivery ports are not idle",
0632 {NA, NA, 1, NA, NA, NA} },
0633
0634 {(0x1F), 1, PXP2_REG_RD_PORT_IS_IDLE_1,
0635 NA, 1, 0, pneq,
0636 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0637 "PXP2: P1 All delivery ports are not idle",
0638 {NA, NA, 1, NA, NA, NA} },
0639
0640 {(0x1F), 2, PXP2_REG_RD_ALMOST_FULL_0,
0641 NA, 11, 4, pneq,
0642 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0643 "PXP2: rd_almost_full is not 0",
0644 {NA, NA, 0, NA, NA, NA} },
0645
0646 {(0x1F), 1, PXP2_REG_RD_DISABLE_INPUTS,
0647 NA, 1, 0, pneq,
0648 NA, IDLE_CHK_ERROR,
0649 "PXP2: PSWRD inputs are disabled",
0650 {NA, NA, 0, NA, NA, NA} },
0651
0652 {(0x1F), 1, PXP2_REG_HST_HEADER_FIFO_STATUS,
0653 NA, 1, 0, pneq,
0654 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0655 "PXP2: HST header FIFO status is not 0",
0656 {NA, NA, 0, NA, NA, NA} },
0657
0658 {(0x1F), 1, PXP2_REG_HST_DATA_FIFO_STATUS,
0659 NA, 1, 0, pneq,
0660 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0661 "PXP2: HST data FIFO status is not 0",
0662 {NA, NA, 0, NA, NA, NA} },
0663
0664 {(0x3), 1, PXP2_REG_PGL_WRITE_BLOCKED,
0665 NA, 1, 0, pneq,
0666 NA, IDLE_CHK_ERROR,
0667 "PXP2: pgl_write_blocked is not 0",
0668 {NA, NA, 0, NA, NA, NA} },
0669
0670 {(0x3), 1, PXP2_REG_PGL_READ_BLOCKED,
0671 NA, 1, 0, pneq,
0672 NA, IDLE_CHK_ERROR,
0673 "PXP2: pgl_read_blocked is not 0",
0674 {NA, NA, 0, NA, NA, NA} },
0675
0676 {(0x1C), 1, PXP2_REG_PGL_WRITE_BLOCKED,
0677 NA, 1, 0, pneq,
0678 NA, IDLE_CHK_WARNING,
0679 "PXP2: pgl_write_blocked is not 0",
0680 {NA, NA, 0, NA, NA, NA} },
0681
0682 {(0x1C), 1, PXP2_REG_PGL_READ_BLOCKED,
0683 NA, 1, 0, pneq,
0684 NA, IDLE_CHK_WARNING,
0685 "PXP2: pgl_read_blocked is not 0",
0686 {NA, NA, 0, NA, NA, NA} },
0687
0688 {(0x1F), 1, PXP2_REG_PGL_TXW_CDTS,
0689 NA, 1, 0, prsh_and_neq,
0690 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0691 "PXP2: There is data which is ready",
0692 {NA, NA, 17, 1, 0, NA} },
0693
0694 {(0x1F), 1, PXP_REG_HST_ARB_IS_IDLE,
0695 NA, 1, 0, pneq,
0696 NA, IDLE_CHK_WARNING,
0697 "PXP: HST arbiter is not idle",
0698 {NA, NA, 1, NA, NA, NA} },
0699
0700 {(0x1F), 1, PXP_REG_HST_CLIENTS_WAITING_TO_ARB,
0701 NA, 1, 0, pneq,
0702 NA, IDLE_CHK_WARNING,
0703 "PXP: HST one of the clients is waiting for delivery",
0704 {NA, NA, 0, NA, NA, NA} },
0705
0706 {(0x1E), 1, PXP_REG_HST_DISCARD_INTERNAL_WRITES_STATUS,
0707 NA, 1, 0, pneq,
0708 NA, IDLE_CHK_WARNING,
0709 "PXP: HST Close the gates: Discarding internal writes",
0710 {NA, NA, 0, NA, NA, NA} },
0711
0712 {(0x1E), 1, PXP_REG_HST_DISCARD_DOORBELLS_STATUS,
0713 NA, 1, 0, pneq,
0714 NA, IDLE_CHK_WARNING,
0715 "PXP: HST Close the gates: Discarding doorbells",
0716 {NA, NA, 0, NA, NA, NA} },
0717
0718 {(0x1C), 1, PXP2_REG_RQ_GARB,
0719 NA, 1, 0, pand_neq,
0720 NA, IDLE_CHK_WARNING,
0721 "PXP2: PSWRQ Close the gates is asserted. Check AEU AFTER_INVERT registers for parity errors",
0722 {NA, NA, 0x1000, 0, NA, NA} },
0723
0724 {(0x1F), 1, DMAE_REG_GO_C0,
0725 NA, 1, 0, pneq,
0726 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0727 "DMAE: command 0 go is not 0",
0728 {NA, NA, 0, NA, NA, NA} },
0729
0730 {(0x1F), 1, DMAE_REG_GO_C1,
0731 NA, 1, 0, pneq,
0732 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0733 "DMAE: command 1 go is not 0",
0734 {NA, NA, 0, NA, NA, NA} },
0735
0736 {(0x1F), 1, DMAE_REG_GO_C2,
0737 NA, 1, 0, pneq,
0738 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0739 "DMAE: command 2 go is not 0",
0740 {NA, NA, 0, NA, NA, NA} },
0741
0742 {(0x1F), 1, DMAE_REG_GO_C3,
0743 NA, 1, 0, pneq,
0744 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0745 "DMAE: command 3 go is not 0",
0746 {NA, NA, 0, NA, NA, NA} },
0747
0748 {(0x1F), 1, DMAE_REG_GO_C4,
0749 NA, 1, 0, pneq,
0750 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0751 "DMAE: command 4 go is not 0",
0752 {NA, NA, 0, NA, NA, NA} },
0753
0754 {(0x1F), 1, DMAE_REG_GO_C5,
0755 NA, 1, 0, pneq,
0756 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0757 "DMAE: command 5 go is not 0",
0758 {NA, NA, 0, NA, NA, NA} },
0759
0760 {(0x1F), 1, DMAE_REG_GO_C6,
0761 NA, 1, 0, pneq,
0762 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0763 "DMAE: command 6 go is not 0",
0764 {NA, NA, 0, NA, NA, NA} },
0765
0766 {(0x1F), 1, DMAE_REG_GO_C7,
0767 NA, 1, 0, pneq,
0768 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0769 "DMAE: command 7 go is not 0",
0770 {NA, NA, 0, NA, NA, NA} },
0771
0772 {(0x1F), 1, DMAE_REG_GO_C8,
0773 NA, 1, 0, pneq,
0774 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0775 "DMAE: command 8 go is not 0",
0776 {NA, NA, 0, NA, NA, NA} },
0777
0778 {(0x1F), 1, DMAE_REG_GO_C9,
0779 NA, 1, 0, pneq,
0780 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0781 "DMAE: command 9 go is not 0",
0782 {NA, NA, 0, NA, NA, NA} },
0783
0784 {(0x1F), 1, DMAE_REG_GO_C10,
0785 NA, 1, 0, pneq,
0786 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0787 "DMAE: command 10 go is not 0",
0788 {NA, NA, 0, NA, NA, NA} },
0789
0790 {(0x1F), 1, DMAE_REG_GO_C11,
0791 NA, 1, 0, pneq,
0792 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0793 "DMAE: command 11 go is not 0",
0794 {NA, NA, 0, NA, NA, NA} },
0795
0796 {(0x1F), 1, DMAE_REG_GO_C12,
0797 NA, 1, 0, pneq,
0798 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0799 "DMAE: command 12 go is not 0",
0800 {NA, NA, 0, NA, NA, NA} },
0801
0802 {(0x1F), 1, DMAE_REG_GO_C13,
0803 NA, 1, 0, pneq,
0804 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0805 "DMAE: command 13 go is not 0",
0806 {NA, NA, 0, NA, NA, NA} },
0807
0808 {(0x1F), 1, DMAE_REG_GO_C14,
0809 NA, 1, 0, pneq,
0810 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0811 "DMAE: command 14 go is not 0",
0812 {NA, NA, 0, NA, NA, NA} },
0813
0814 {(0x1F), 1, DMAE_REG_GO_C15,
0815 NA, 1, 0, pneq,
0816 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0817 "DMAE: command 15 go is not 0",
0818 {NA, NA, 0, NA, NA, NA} },
0819
0820 {(0x1F), 1, CFC_REG_ERROR_VECTOR,
0821 NA, 1, 0, pneq,
0822 NA, IDLE_CHK_ERROR,
0823 "CFC: error vector is not 0",
0824 {NA, NA, 0, NA, NA, NA} },
0825
0826 {(0x1F), 1, CFC_REG_NUM_LCIDS_ARRIVING,
0827 NA, 1, 0, pneq,
0828 NA, IDLE_CHK_ERROR,
0829 "CFC: number of arriving LCIDs is not 0",
0830 {NA, NA, 0, NA, NA, NA} },
0831
0832 {(0x1F), 1, CFC_REG_NUM_LCIDS_ALLOC,
0833 NA, 1, 0, pneq,
0834 NA, IDLE_CHK_ERROR,
0835 "CFC: number of alloc LCIDs is not 0",
0836 {NA, NA, 0, NA, NA, NA} },
0837
0838 {(0x1F), 1, CFC_REG_NUM_LCIDS_LEAVING,
0839 NA, 1, 0, pneq,
0840 NA, IDLE_CHK_ERROR,
0841 "CFC: number of leaving LCIDs is not 0",
0842 {NA, NA, 0, NA, NA, NA} },
0843
0844 {(0x1F), 7, CFC_REG_INFO_RAM,
0845 CFC_REG_CID_CAM, (CFC_REG_INFO_RAM_SIZE >> 4), 16, peq_neq_neq_r2,
0846 CFC_REG_ACTIVITY_COUNTER, IDLE_CHK_ERROR_NO_TRAFFIC,
0847 "CFC: AC is neither 0 nor 2 on connType 0 (ETH)",
0848 {NA, NA, 0, 0, 2, NA} },
0849
0850 {(0x1F), 7, CFC_REG_INFO_RAM,
0851 CFC_REG_CID_CAM, (CFC_REG_INFO_RAM_SIZE >> 4), 16, peq_neq_r2,
0852 CFC_REG_ACTIVITY_COUNTER, IDLE_CHK_ERROR_NO_TRAFFIC,
0853 "CFC: AC is not 0 on connType 1 (TOE)",
0854 {NA, NA, 1, 0, NA, NA} },
0855
0856 {(0x1F), 7, CFC_REG_INFO_RAM,
0857 CFC_REG_CID_CAM, (CFC_REG_INFO_RAM_SIZE >> 4), 16, peq_neq_r2,
0858 CFC_REG_ACTIVITY_COUNTER, IDLE_CHK_ERROR_NO_TRAFFIC,
0859 "CFC: AC is not 0 on connType 3 (iSCSI)",
0860 {NA, NA, 3, 0, NA, NA} },
0861
0862 {(0x1F), 7, CFC_REG_INFO_RAM,
0863 CFC_REG_CID_CAM, (CFC_REG_INFO_RAM_SIZE >> 4), 16, peq_neq_r2,
0864 CFC_REG_ACTIVITY_COUNTER, IDLE_CHK_ERROR_NO_TRAFFIC,
0865 "CFC: AC is not 0 on connType 4 (FCoE)",
0866 {NA, NA, 4, 0, NA, NA} },
0867
0868 {(0x1F), 2, QM_REG_QTASKCTR_0,
0869 NA, 64, 4, pneq,
0870 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0871 "QM: Queue is not empty",
0872 {NA, NA, 0, NA, NA, NA} },
0873
0874 {(0xF), 3, QM_REG_VOQCREDIT_0,
0875 QM_REG_VOQINITCREDIT_0, 1, 0, pneq_r2,
0876 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0877 "QM: VOQ_0, VOQ credit is not equal to initial credit",
0878 {NA, NA, NA, NA, NA, NA} },
0879
0880 {(0xF), 3, QM_REG_VOQCREDIT_1,
0881 QM_REG_VOQINITCREDIT_1, 1, 0, pneq_r2,
0882 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0883 "QM: VOQ_1, VOQ credit is not equal to initial credit",
0884 {NA, NA, NA, NA, NA, NA} },
0885
0886 {(0xF), 3, QM_REG_VOQCREDIT_4,
0887 QM_REG_VOQINITCREDIT_4, 1, 0, pneq_r2,
0888 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0889 "QM: VOQ_4, VOQ credit is not equal to initial credit",
0890 {NA, NA, NA, NA, NA, NA} },
0891
0892 {(0x3), 3, QM_REG_PORT0BYTECRD,
0893 QM_REG_BYTECRDINITVAL, 1, 0, pneq_r2,
0894 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0895 "QM: P0 Byte credit is not equal to initial credit",
0896 {NA, NA, NA, NA, NA, NA} },
0897
0898 {(0x3), 3, QM_REG_PORT1BYTECRD,
0899 QM_REG_BYTECRDINITVAL, 1, 0, pneq_r2,
0900 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0901 "QM: P1 Byte credit is not equal to initial credit",
0902 {NA, NA, NA, NA, NA, NA} },
0903
0904 {(0x1F), 1, CCM_REG_CAM_OCCUP,
0905 NA, 1, 0, pneq,
0906 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0907 "CCM: XX protection CAM is not empty",
0908 {NA, NA, 0, NA, NA, NA} },
0909
0910 {(0x1F), 1, TCM_REG_CAM_OCCUP,
0911 NA, 1, 0, pneq,
0912 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0913 "TCM: XX protection CAM is not empty",
0914 {NA, NA, 0, NA, NA, NA} },
0915
0916 {(0x1F), 1, UCM_REG_CAM_OCCUP,
0917 NA, 1, 0, pneq,
0918 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0919 "UCM: XX protection CAM is not empty",
0920 {NA, NA, 0, NA, NA, NA} },
0921
0922 {(0x1F), 1, XCM_REG_CAM_OCCUP,
0923 NA, 1, 0, pneq,
0924 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0925 "XCM: XX protection CAM is not empty",
0926 {NA, NA, 0, NA, NA, NA} },
0927
0928 {(0x1F), 1, BRB1_REG_NUM_OF_FULL_BLOCKS,
0929 NA, 1, 0, pneq,
0930 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0931 "BRB1: BRB is not empty",
0932 {NA, NA, 0, NA, NA, NA} },
0933
0934 {(0x1F), 1, CSEM_REG_SLEEP_THREADS_VALID,
0935 NA, 1, 0, pneq,
0936 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0937 "CSEM: There are sleeping threads",
0938 {NA, NA, 0, NA, NA, NA} },
0939
0940 {(0x1F), 1, TSEM_REG_SLEEP_THREADS_VALID,
0941 NA, 1, 0, pneq,
0942 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0943 "TSEM: There are sleeping threads",
0944 {NA, NA, 0, NA, NA, NA} },
0945
0946 {(0x1F), 1, USEM_REG_SLEEP_THREADS_VALID,
0947 NA, 1, 0, pneq,
0948 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0949 "USEM: There are sleeping threads",
0950 {NA, NA, 0, NA, NA, NA} },
0951
0952 {(0x1F), 1, XSEM_REG_SLEEP_THREADS_VALID,
0953 NA, 1, 0, pneq,
0954 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0955 "XSEM: There are sleeping threads",
0956 {NA, NA, 0, NA, NA, NA} },
0957
0958 {(0x1F), 1, CSEM_REG_SLOW_EXT_STORE_EMPTY,
0959 NA, 1, 0, pneq,
0960 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0961 "CSEM: External store FIFO is not empty",
0962 {NA, NA, 1, NA, NA, NA} },
0963
0964 {(0x1F), 1, TSEM_REG_SLOW_EXT_STORE_EMPTY,
0965 NA, 1, 0, pneq,
0966 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0967 "TSEM: External store FIFO is not empty",
0968 {NA, NA, 1, NA, NA, NA} },
0969
0970 {(0x1F), 1, USEM_REG_SLOW_EXT_STORE_EMPTY,
0971 NA, 1, 0, pneq,
0972 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0973 "USEM: External store FIFO is not empty",
0974 {NA, NA, 1, NA, NA, NA} },
0975
0976 {(0x1F), 1, XSEM_REG_SLOW_EXT_STORE_EMPTY,
0977 NA, 1, 0, pneq,
0978 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0979 "XSEM: External store FIFO is not empty",
0980 {NA, NA, 1, NA, NA, NA} },
0981
0982 {(0x1F), 1, CSDM_REG_SYNC_PARSER_EMPTY,
0983 NA, 1, 0, pneq,
0984 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0985 "CSDM: Parser serial FIFO is not empty",
0986 {NA, NA, 1, NA, NA, NA} },
0987
0988 {(0x1F), 1, TSDM_REG_SYNC_PARSER_EMPTY,
0989 NA, 1, 0, pneq,
0990 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0991 "TSDM: Parser serial FIFO is not empty",
0992 {NA, NA, 1, NA, NA, NA} },
0993
0994 {(0x1F), 1, USDM_REG_SYNC_PARSER_EMPTY,
0995 NA, 1, 0, pneq,
0996 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
0997 "USDM: Parser serial FIFO is not empty",
0998 {NA, NA, 1, NA, NA, NA} },
0999
1000 {(0x1F), 1, XSDM_REG_SYNC_PARSER_EMPTY,
1001 NA, 1, 0, pneq,
1002 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1003 "XSDM: Parser serial FIFO is not empty",
1004 {NA, NA, 1, NA, NA, NA} },
1005
1006 {(0x1F), 1, CSDM_REG_SYNC_SYNC_EMPTY,
1007 NA, 1, 0, pneq,
1008 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1009 "CSDM: Parser SYNC serial FIFO is not empty",
1010 {NA, NA, 1, NA, NA, NA} },
1011
1012 {(0x1F), 1, TSDM_REG_SYNC_SYNC_EMPTY,
1013 NA, 1, 0, pneq,
1014 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1015 "TSDM: Parser SYNC serial FIFO is not empty",
1016 {NA, NA, 1, NA, NA, NA} },
1017
1018 {(0x1F), 1, USDM_REG_SYNC_SYNC_EMPTY,
1019 NA, 1, 0, pneq,
1020 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1021 "USDM: Parser SYNC serial FIFO is not empty",
1022 {NA, NA, 1, NA, NA, NA} },
1023
1024 {(0x1F), 1, XSDM_REG_SYNC_SYNC_EMPTY,
1025 NA, 1, 0, pneq,
1026 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1027 "XSDM: Parser SYNC serial FIFO is not empty",
1028 {NA, NA, 1, NA, NA, NA} },
1029
1030 {(0x1F), 1, CSDM_REG_RSP_PXP_CTRL_RDATA_EMPTY,
1031 NA, 1, 0, pneq,
1032 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1033 "CSDM: pxp_ctrl rd_data fifo is not empty in sdm_dma_rsp block",
1034 {NA, NA, 1, NA, NA, NA} },
1035
1036 {(0x1F), 1, TSDM_REG_RSP_PXP_CTRL_RDATA_EMPTY,
1037 NA, 1, 0, pneq,
1038 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1039 "TSDM: pxp_ctrl rd_data fifo is not empty in sdm_dma_rsp block",
1040 {NA, NA, 1, NA, NA, NA} },
1041
1042 {(0x1F), 1, USDM_REG_RSP_PXP_CTRL_RDATA_EMPTY,
1043 NA, 1, 0, pneq,
1044 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1045 "USDM: pxp_ctrl rd_data fifo is not empty in sdm_dma_rsp block",
1046 {NA, NA, 1, NA, NA, NA} },
1047
1048 {(0x1F), 1, XSDM_REG_RSP_PXP_CTRL_RDATA_EMPTY,
1049 NA, 1, 0, pneq,
1050 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1051 "XSDM: pxp_ctrl rd_data fifo is not empty in sdm_dma_rsp block",
1052 {NA, NA, 1, NA, NA, NA} },
1053
1054 {(0x1F), 1, DORQ_REG_DQ_FILL_LVLF,
1055 NA, 1, 0, pneq,
1056 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1057 "DORQ: DORQ queue is not empty",
1058 {NA, NA, 0, NA, NA, NA} },
1059
1060 {(0x1F), 1, CFC_REG_CFC_INT_STS,
1061 NA, 1, 0, pneq,
1062 NA, IDLE_CHK_ERROR,
1063 "CFC: Interrupt status is not 0",
1064 {NA, NA, 0, NA, NA, NA} },
1065
1066 {(0x1F), 1, CDU_REG_CDU_INT_STS,
1067 NA, 1, 0, pneq,
1068 NA, IDLE_CHK_ERROR,
1069 "CDU: Interrupt status is not 0",
1070 {NA, NA, 0, NA, NA, NA} },
1071
1072 {(0x1F), 1, CCM_REG_CCM_INT_STS,
1073 NA, 1, 0, pneq,
1074 NA, IDLE_CHK_ERROR,
1075 "CCM: Interrupt status is not 0",
1076 {NA, NA, 0, NA, NA, NA} },
1077
1078 {(0x1F), 1, TCM_REG_TCM_INT_STS,
1079 NA, 1, 0, pneq,
1080 NA, IDLE_CHK_ERROR,
1081 "TCM: Interrupt status is not 0",
1082 {NA, NA, 0, NA, NA, NA} },
1083
1084 {(0x1F), 1, UCM_REG_UCM_INT_STS,
1085 NA, 1, 0, pneq,
1086 NA, IDLE_CHK_ERROR,
1087 "UCM: Interrupt status is not 0",
1088 {NA, NA, 0, NA, NA, NA} },
1089
1090 {(0x1F), 1, XCM_REG_XCM_INT_STS,
1091 NA, 1, 0, pneq,
1092 NA, IDLE_CHK_ERROR,
1093 "XCM: Interrupt status is not 0",
1094 {NA, NA, 0, NA, NA, NA} },
1095
1096 {(0xF), 1, PBF_REG_PBF_INT_STS,
1097 NA, 1, 0, pneq,
1098 NA, IDLE_CHK_ERROR,
1099 "PBF: Interrupt status is not 0",
1100 {NA, NA, 0, NA, NA, NA} },
1101
1102 {(0x1F), 1, TM_REG_TM_INT_STS,
1103 NA, 1, 0, pneq,
1104 NA, IDLE_CHK_ERROR,
1105 "TIMERS: Interrupt status is not 0",
1106 {NA, NA, 0, NA, NA, NA} },
1107
1108 {(0x1F), 1, DORQ_REG_DORQ_INT_STS,
1109 NA, 1, 0, pneq,
1110 NA, IDLE_CHK_ERROR,
1111 "DORQ: Interrupt status is not 0",
1112 {NA, NA, 0, NA, NA, NA} },
1113
1114 {(0x1F), 1, SRC_REG_SRC_INT_STS,
1115 NA, 1, 0, pneq,
1116 NA, IDLE_CHK_ERROR,
1117 "SRCH: Interrupt status is not 0",
1118 {NA, NA, 0, NA, NA, NA} },
1119
1120 {(0x1F), 1, PRS_REG_PRS_INT_STS,
1121 NA, 1, 0, pneq,
1122 NA, IDLE_CHK_ERROR,
1123 "PRS: Interrupt status is not 0",
1124 {NA, NA, 0, NA, NA, NA} },
1125
1126 {(0x1F), 1, BRB1_REG_BRB1_INT_STS,
1127 NA, 1, 0, pand_neq,
1128 NA, IDLE_CHK_ERROR,
1129 "BRB1: Interrupt status is not 0",
1130 {NA, NA, ~0xFC00, 0, NA, NA} },
1131
1132 {(0x1F), 1, GRCBASE_XPB + PB_REG_PB_INT_STS,
1133 NA, 1, 0, pneq,
1134 NA, IDLE_CHK_ERROR,
1135 "XPB: Interrupt status is not 0",
1136 {NA, NA, 0, NA, NA, NA} },
1137
1138 {(0x1F), 1, GRCBASE_UPB + PB_REG_PB_INT_STS,
1139 NA, 1, 0, pneq,
1140 NA, IDLE_CHK_ERROR,
1141 "UPB: Interrupt status is not 0",
1142 {NA, NA, 0, NA, NA, NA} },
1143
1144 {(0x1), 1, PXP2_REG_PXP2_INT_STS,
1145 NA, 1, 0, pneq,
1146 NA, IDLE_CHK_WARNING,
1147 "PXP2: Interrupt status 0 is not 0",
1148 {NA, NA, 0, NA, NA, NA} },
1149
1150 {(0x1E), 1, PXP2_REG_PXP2_INT_STS_0,
1151 NA, 1, 0, pneq,
1152 NA, IDLE_CHK_WARNING,
1153 "PXP2: Interrupt status 0 is not 0",
1154 {NA, NA, 0, NA, NA, NA} },
1155
1156 {(0x1E), 1, PXP2_REG_PXP2_INT_STS_1,
1157 NA, 1, 0, pneq,
1158 NA, IDLE_CHK_WARNING,
1159 "PXP2: Interrupt status 1 is not 0",
1160 {NA, NA, 0, NA, NA, NA} },
1161
1162 {(0x1F), 1, QM_REG_QM_INT_STS,
1163 NA, 1, 0, pneq,
1164 NA, IDLE_CHK_ERROR,
1165 "QM: Interrupt status is not 0",
1166 {NA, NA, 0, NA, NA, NA} },
1167
1168 {(0x1F), 1, PXP_REG_PXP_INT_STS_0,
1169 NA, 1, 0, pneq,
1170 NA, IDLE_CHK_WARNING,
1171 "PXP: P0 Interrupt status is not 0",
1172 {NA, NA, 0, NA, NA, NA} },
1173
1174 {(0x1F), 1, PXP_REG_PXP_INT_STS_1,
1175 NA, 1, 0, pneq,
1176 NA, IDLE_CHK_WARNING,
1177 "PXP: P1 Interrupt status is not 0",
1178 {NA, NA, 0, NA, NA, NA} },
1179
1180 {(0x1C), 1, PGLUE_B_REG_PGLUE_B_INT_STS,
1181 NA, 1, 0, pneq,
1182 NA, IDLE_CHK_WARNING,
1183 "PGLUE_B: Interrupt status is not 0",
1184 {NA, NA, 0, NA, NA, NA} },
1185
1186 {(0x1F), 1, DORQ_REG_RSPA_CRD_CNT,
1187 NA, 1, 0, pneq,
1188 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1189 "DORQ: Credit to XCM is not full",
1190 {NA, NA, 2, NA, NA, NA} },
1191
1192 {(0x1F), 1, DORQ_REG_RSPB_CRD_CNT,
1193 NA, 1, 0, pneq,
1194 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1195 "DORQ: Credit to UCM is not full",
1196 {NA, NA, 2, NA, NA, NA} },
1197
1198 {(0x3), 1, QM_REG_VOQCRDERRREG,
1199 NA, 1, 0, pneq,
1200 NA, IDLE_CHK_ERROR,
1201 "QM: Credit error register is not 0 (byte or credit overflow/underflow)",
1202 {NA, NA, 0, NA, NA, NA} },
1203
1204 {(0x1F), 1, DORQ_REG_DQ_FULL_ST,
1205 NA, 1, 0, pneq,
1206 NA, IDLE_CHK_ERROR,
1207 "DORQ: DORQ queue is full",
1208 {NA, NA, 0, NA, NA, NA} },
1209
1210 {(0x1F), 1, MISC_REG_AEU_AFTER_INVERT_1_FUNC_0,
1211 NA, 1, 0, pand_neq,
1212 NA, IDLE_CHK_WARNING,
1213 "AEU: P0 AFTER_INVERT_1 is not 0",
1214 {NA, NA, ~0xCFFC, 0, NA, NA} },
1215
1216 {(0x1F), 1, MISC_REG_AEU_AFTER_INVERT_2_FUNC_0,
1217 NA, 1, 0, pneq,
1218 NA, IDLE_CHK_ERROR,
1219 "AEU: P0 AFTER_INVERT_2 is not 0",
1220 {NA, NA, 0, NA, NA, NA} },
1221
1222 {(0x1F), 1, MISC_REG_AEU_AFTER_INVERT_3_FUNC_0,
1223 NA, 1, 0, pand_neq,
1224 NA, IDLE_CHK_ERROR,
1225 "AEU: P0 AFTER_INVERT_3 is not 0",
1226 {NA, NA, ~0xFFFF0000, 0, NA, NA} },
1227
1228 {(0x1F), 1, MISC_REG_AEU_AFTER_INVERT_4_FUNC_0,
1229 NA, 1, 0, pand_neq,
1230 NA, IDLE_CHK_ERROR,
1231 "AEU: P0 AFTER_INVERT_4 is not 0",
1232 {NA, NA, ~0x801FFFFF, 0, NA, NA} },
1233
1234 {(0x3), 1, MISC_REG_AEU_AFTER_INVERT_1_FUNC_1,
1235 NA, 1, 0, pand_neq,
1236 NA, IDLE_CHK_WARNING,
1237 "AEU: P1 AFTER_INVERT_1 is not 0",
1238 {NA, NA, ~0xCFFC, 0, NA, NA} },
1239
1240 {(0x3), 1, MISC_REG_AEU_AFTER_INVERT_2_FUNC_1,
1241 NA, 1, 0, pneq,
1242 NA, IDLE_CHK_ERROR,
1243 "AEU: P1 AFTER_INVERT_2 is not 0",
1244 {NA, NA, 0, NA, NA, NA} },
1245
1246 {(0x3), 1, MISC_REG_AEU_AFTER_INVERT_3_FUNC_1,
1247 NA, 1, 0, pand_neq,
1248 NA, IDLE_CHK_ERROR,
1249 "AEU: P1 AFTER_INVERT_3 is not 0",
1250 {NA, NA, ~0xFFFF0000, 0, NA, NA} },
1251
1252 {(0x3), 1, MISC_REG_AEU_AFTER_INVERT_4_FUNC_1,
1253 NA, 1, 0, pand_neq,
1254 NA, IDLE_CHK_ERROR,
1255 "AEU: P1 AFTER_INVERT_4 is not 0",
1256 {NA, NA, ~0x801FFFFF, 0, NA, NA} },
1257
1258 {(0x1F), 1, MISC_REG_AEU_AFTER_INVERT_1_MCP,
1259 NA, 1, 0, pand_neq,
1260 NA, IDLE_CHK_WARNING,
1261 "AEU: MCP AFTER_INVERT_1 is not 0",
1262 {NA, NA, ~0xCFFC, 0, NA, NA} },
1263
1264 {(0x1F), 1, MISC_REG_AEU_AFTER_INVERT_2_MCP,
1265 NA, 1, 0, pneq,
1266 NA, IDLE_CHK_ERROR,
1267 "AEU: MCP AFTER_INVERT_2 is not 0",
1268 {NA, NA, 0, NA, NA, NA} },
1269
1270 {(0x1F), 1, MISC_REG_AEU_AFTER_INVERT_3_MCP,
1271 NA, 1, 0, pand_neq,
1272 NA, IDLE_CHK_ERROR,
1273 "AEU: MCP AFTER_INVERT_3 is not 0",
1274 {NA, NA, ~0xFFFF0000, 0, NA, NA} },
1275
1276 {(0x1F), 1, MISC_REG_AEU_AFTER_INVERT_4_MCP,
1277 NA, 1, 0, pand_neq,
1278 NA, IDLE_CHK_ERROR,
1279 "AEU: MCP AFTER_INVERT_4 is not 0",
1280 {NA, NA, ~0x801FFFFF, 0, NA, NA} },
1281
1282 {(0xF), 5, PBF_REG_P0_CREDIT,
1283 PBF_REG_P0_INIT_CRD, 1, 0, pneq_r2,
1284 PBF_REG_DISABLE_NEW_TASK_PROC_P0, IDLE_CHK_ERROR_NO_TRAFFIC,
1285 "PBF: P0 credit is not equal to init_crd",
1286 {NA, NA, NA, NA, NA, NA} },
1287
1288 {(0xF), 5, PBF_REG_P1_CREDIT,
1289 PBF_REG_P1_INIT_CRD, 1, 0, pneq_r2,
1290 PBF_REG_DISABLE_NEW_TASK_PROC_P1, IDLE_CHK_ERROR_NO_TRAFFIC,
1291 "PBF: P1 credit is not equal to init_crd",
1292 {NA, NA, NA, NA, NA, NA} },
1293
1294 {(0xF), 3, PBF_REG_P4_CREDIT,
1295 PBF_REG_P4_INIT_CRD, 1, 0, pneq_r2,
1296 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1297 "PBF: P4 credit is not equal to init_crd",
1298 {NA, NA, NA, NA, NA, NA} },
1299
1300 {(0x10), 5, PBF_REG_CREDIT_Q0,
1301 PBF_REG_INIT_CRD_Q0, 1, 0, pneq_r2,
1302 PBF_REG_DISABLE_NEW_TASK_PROC_Q0, IDLE_CHK_ERROR_NO_TRAFFIC,
1303 "PBF: Q0 credit is not equal to init_crd",
1304 {NA, NA, NA, NA, NA, NA} },
1305
1306 {(0x10), 5, PBF_REG_CREDIT_Q1,
1307 PBF_REG_INIT_CRD_Q1, 1, 0, pneq_r2,
1308 PBF_REG_DISABLE_NEW_TASK_PROC_Q1, IDLE_CHK_ERROR_NO_TRAFFIC,
1309 "PBF: Q1 credit is not equal to init_crd",
1310 {NA, NA, NA, NA, NA, NA} },
1311
1312 {(0x10), 5, PBF_REG_CREDIT_Q2,
1313 PBF_REG_INIT_CRD_Q2, 1, 0, pneq_r2,
1314 PBF_REG_DISABLE_NEW_TASK_PROC_Q2, IDLE_CHK_ERROR_NO_TRAFFIC,
1315 "PBF: Q2 credit is not equal to init_crd",
1316 {NA, NA, NA, NA, NA, NA} },
1317
1318 {(0x10), 5, PBF_REG_CREDIT_Q3,
1319 PBF_REG_INIT_CRD_Q3, 1, 0, pneq_r2,
1320 PBF_REG_DISABLE_NEW_TASK_PROC_Q3, IDLE_CHK_ERROR_NO_TRAFFIC,
1321 "PBF: Q3 credit is not equal to init_crd",
1322 {NA, NA, NA, NA, NA, NA} },
1323
1324 {(0x10), 5, PBF_REG_CREDIT_Q4,
1325 PBF_REG_INIT_CRD_Q4, 1, 0, pneq_r2,
1326 PBF_REG_DISABLE_NEW_TASK_PROC_Q4, IDLE_CHK_ERROR_NO_TRAFFIC,
1327 "PBF: Q4 credit is not equal to init_crd",
1328 {NA, NA, NA, NA, NA, NA} },
1329
1330 {(0x10), 5, PBF_REG_CREDIT_Q5,
1331 PBF_REG_INIT_CRD_Q5, 1, 0, pneq_r2,
1332 PBF_REG_DISABLE_NEW_TASK_PROC_Q5, IDLE_CHK_ERROR_NO_TRAFFIC,
1333 "PBF: Q5 credit is not equal to init_crd",
1334 {NA, NA, NA, NA, NA, NA} },
1335
1336 {(0x10), 3, PBF_REG_CREDIT_LB_Q,
1337 PBF_REG_INIT_CRD_LB_Q, 1, 0, pneq_r2,
1338 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1339 "PBF: LB Q credit is not equal to init_crd",
1340 {NA, NA, NA, NA, NA, NA} },
1341
1342 {(0xF), 1, PBF_REG_P0_TASK_CNT,
1343 NA, 1, 0, pneq,
1344 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1345 "PBF: P0 task_cnt is not 0",
1346 {NA, NA, 0, NA, NA, NA} },
1347
1348 {(0xF), 1, PBF_REG_P1_TASK_CNT,
1349 NA, 1, 0, pneq,
1350 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1351 "PBF: P1 task_cnt is not 0",
1352 {NA, NA, 0, NA, NA, NA} },
1353
1354 {(0xF), 1, PBF_REG_P4_TASK_CNT,
1355 NA, 1, 0, pneq,
1356 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1357 "PBF: P4 task_cnt is not 0",
1358 {NA, NA, 0, NA, NA, NA} },
1359
1360 {(0x10), 1, PBF_REG_TASK_CNT_Q0,
1361 NA, 1, 0, pneq,
1362 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1363 "PBF: Q0 task_cnt is not 0",
1364 {NA, NA, 0, NA, NA, NA} },
1365
1366 {(0x10), 1, PBF_REG_TASK_CNT_Q1,
1367 NA, 1, 0, pneq,
1368 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1369 "PBF: Q1 task_cnt is not 0",
1370 {NA, NA, 0, NA, NA, NA} },
1371
1372 {(0x10), 1, PBF_REG_TASK_CNT_Q2,
1373 NA, 1, 0, pneq,
1374 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1375 "PBF: Q2 task_cnt is not 0",
1376 {NA, NA, 0, NA, NA, NA} },
1377
1378 {(0x10), 1, PBF_REG_TASK_CNT_Q3,
1379 NA, 1, 0, pneq,
1380 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1381 "PBF: Q3 task_cnt is not 0",
1382 {NA, NA, 0, NA, NA, NA} },
1383
1384 {(0x10), 1, PBF_REG_TASK_CNT_Q4,
1385 NA, 1, 0, pneq,
1386 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1387 "PBF: Q4 task_cnt is not 0",
1388 {NA, NA, 0, NA, NA, NA} },
1389
1390 {(0x10), 1, PBF_REG_TASK_CNT_Q5,
1391 NA, 1, 0, pneq,
1392 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1393 "PBF: Q5 task_cnt is not 0",
1394 {NA, NA, 0, NA, NA, NA} },
1395
1396 {(0x10), 1, PBF_REG_TASK_CNT_LB_Q,
1397 NA, 1, 0, pneq,
1398 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1399 "PBF: LB Q task_cnt is not 0",
1400 {NA, NA, 0, NA, NA, NA} },
1401
1402 {(0x1F), 1, XCM_REG_CFC_INIT_CRD,
1403 NA, 1, 0, pneq,
1404 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1405 "XCM: CFC_INIT_CRD is not 1",
1406 {NA, NA, 1, NA, NA, NA} },
1407
1408 {(0x1F), 1, UCM_REG_CFC_INIT_CRD,
1409 NA, 1, 0, pneq,
1410 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1411 "UCM: CFC_INIT_CRD is not 1",
1412 {NA, NA, 1, NA, NA, NA} },
1413
1414 {(0x1F), 1, TCM_REG_CFC_INIT_CRD,
1415 NA, 1, 0, pneq,
1416 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1417 "TCM: CFC_INIT_CRD is not 1",
1418 {NA, NA, 1, NA, NA, NA} },
1419
1420 {(0x1F), 1, CCM_REG_CFC_INIT_CRD,
1421 NA, 1, 0, pneq,
1422 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1423 "CCM: CFC_INIT_CRD is not 1",
1424 {NA, NA, 1, NA, NA, NA} },
1425
1426 {(0x1F), 1, XCM_REG_XQM_INIT_CRD,
1427 NA, 1, 0, pneq,
1428 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1429 "XCM: XQM_INIT_CRD is not 32",
1430 {NA, NA, 32, NA, NA, NA} },
1431
1432 {(0x1F), 1, UCM_REG_UQM_INIT_CRD,
1433 NA, 1, 0, pneq,
1434 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1435 "UCM: UQM_INIT_CRD is not 32",
1436 {NA, NA, 32, NA, NA, NA} },
1437
1438 {(0x1F), 1, TCM_REG_TQM_INIT_CRD,
1439 NA, 1, 0, pneq,
1440 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1441 "TCM: TQM_INIT_CRD is not 32",
1442 {NA, NA, 32, NA, NA, NA} },
1443
1444 {(0x1F), 1, CCM_REG_CQM_INIT_CRD,
1445 NA, 1, 0, pneq,
1446 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1447 "CCM: CQM_INIT_CRD is not 32",
1448 {NA, NA, 32, NA, NA, NA} },
1449
1450 {(0x1F), 1, XCM_REG_TM_INIT_CRD,
1451 NA, 1, 0, pneq,
1452 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1453 "XCM: TM_INIT_CRD is not 4",
1454 {NA, NA, 4, NA, NA, NA} },
1455
1456 {(0x1F), 1, UCM_REG_TM_INIT_CRD,
1457 NA, 1, 0, pneq,
1458 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1459 "UCM: TM_INIT_CRD is not 4",
1460 {NA, NA, 4, NA, NA, NA} },
1461
1462 {(0x1F), 1, XCM_REG_FIC0_INIT_CRD,
1463 NA, 1, 0, pneq,
1464 NA, IDLE_CHK_WARNING,
1465 "XCM: FIC0_INIT_CRD is not 64",
1466 {NA, NA, 64, NA, NA, NA} },
1467
1468 {(0x1F), 1, UCM_REG_FIC0_INIT_CRD,
1469 NA, 1, 0, pneq,
1470 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1471 "UCM: FIC0_INIT_CRD is not 64",
1472 {NA, NA, 64, NA, NA, NA} },
1473
1474 {(0x1F), 1, TCM_REG_FIC0_INIT_CRD,
1475 NA, 1, 0, pneq,
1476 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1477 "TCM: FIC0_INIT_CRD is not 64",
1478 {NA, NA, 64, NA, NA, NA} },
1479
1480 {(0x1F), 1, CCM_REG_FIC0_INIT_CRD,
1481 NA, 1, 0, pneq,
1482 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1483 "CCM: FIC0_INIT_CRD is not 64",
1484 {NA, NA, 64, NA, NA, NA} },
1485
1486 {(0x1F), 1, XCM_REG_FIC1_INIT_CRD,
1487 NA, 1, 0, pneq,
1488 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1489 "XCM: FIC1_INIT_CRD is not 64",
1490 {NA, NA, 64, NA, NA, NA} },
1491
1492 {(0x1F), 1, UCM_REG_FIC1_INIT_CRD,
1493 NA, 1, 0, pneq,
1494 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1495 "UCM: FIC1_INIT_CRD is not 64",
1496 {NA, NA, 64, NA, NA, NA} },
1497
1498 {(0x1F), 1, TCM_REG_FIC1_INIT_CRD,
1499 NA, 1, 0, pneq,
1500 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1501 "TCM: FIC1_INIT_CRD is not 64",
1502 {NA, NA, 64, NA, NA, NA} },
1503
1504 {(0x1F), 1, CCM_REG_FIC1_INIT_CRD,
1505 NA, 1, 0, pneq,
1506 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1507 "CCM: FIC1_INIT_CRD is not 64",
1508 {NA, NA, 64, NA, NA, NA} },
1509
1510 {(0x1), 1, XCM_REG_XX_FREE,
1511 NA, 1, 0, pneq,
1512 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1513 "XCM: XX_FREE differs from expected 31",
1514 {NA, NA, 31, NA, NA, NA} },
1515
1516 {(0x1E), 1, XCM_REG_XX_FREE,
1517 NA, 1, 0, pneq,
1518 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1519 "XCM: XX_FREE differs from expected 32",
1520 {NA, NA, 32, NA, NA, NA} },
1521
1522 {(0x1F), 1, UCM_REG_XX_FREE,
1523 NA, 1, 0, pneq,
1524 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1525 "UCM: XX_FREE differs from expected 27",
1526 {NA, NA, 27, NA, NA, NA} },
1527
1528 {(0x7), 1, TCM_REG_XX_FREE,
1529 NA, 1, 0, pneq,
1530 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1531 "TCM: XX_FREE differs from expected 32",
1532 {NA, NA, 32, NA, NA, NA} },
1533
1534 {(0x18), 1, TCM_REG_XX_FREE,
1535 NA, 1, 0, pneq,
1536 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1537 "TCM: XX_FREE differs from expected 29",
1538 {NA, NA, 29, NA, NA, NA} },
1539
1540 {(0x1F), 1, CCM_REG_XX_FREE,
1541 NA, 1, 0, pneq,
1542 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1543 "CCM: XX_FREE differs from expected 24",
1544 {NA, NA, 24, NA, NA, NA} },
1545
1546 {(0x1F), 1, XSEM_REG_FAST_MEMORY + 0x18000,
1547 NA, 1, 0, pneq,
1548 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1549 "XSEM: FOC0 credit less than initial credit",
1550 {NA, NA, 0, NA, NA, NA} },
1551
1552 {(0x1F), 1, XSEM_REG_FAST_MEMORY + 0x18040,
1553 NA, 1, 0, pneq,
1554 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1555 "XSEM: FOC1 credit less than initial credit",
1556 {NA, NA, 24, NA, NA, NA} },
1557
1558 {(0x1F), 1, XSEM_REG_FAST_MEMORY + 0x18080,
1559 NA, 1, 0, pneq,
1560 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1561 "XSEM: FOC2 credit less than initial credit",
1562 {NA, NA, 12, NA, NA, NA} },
1563
1564 {(0x1F), 1, USEM_REG_FAST_MEMORY + 0x18000,
1565 NA, 1, 0, pneq,
1566 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1567 "USEM: FOC0 credit less than initial credit",
1568 {NA, NA, 26, NA, NA, NA} },
1569
1570 {(0x1F), 1, USEM_REG_FAST_MEMORY + 0x18040,
1571 NA, 1, 0, pneq,
1572 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1573 "USEM: FOC1 credit less than initial credit",
1574 {NA, NA, 78, NA, NA, NA} },
1575
1576 {(0x1F), 1, USEM_REG_FAST_MEMORY + 0x18080,
1577 NA, 1, 0, pneq,
1578 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1579 "USEM: FOC2 credit less than initial credit",
1580 {NA, NA, 16, NA, NA, NA} },
1581
1582 {(0x1F), 1, USEM_REG_FAST_MEMORY + 0x180C0,
1583 NA, 1, 0, pneq,
1584 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1585 "USEM: FOC3 credit less than initial credit",
1586 {NA, NA, 32, NA, NA, NA} },
1587
1588 {(0x1F), 1, TSEM_REG_FAST_MEMORY + 0x18000,
1589 NA, 1, 0, pneq,
1590 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1591 "TSEM: FOC0 credit less than initial credit",
1592 {NA, NA, 52, NA, NA, NA} },
1593
1594 {(0x1F), 1, TSEM_REG_FAST_MEMORY + 0x18040,
1595 NA, 1, 0, pneq,
1596 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1597 "TSEM: FOC1 credit less than initial credit",
1598 {NA, NA, 24, NA, NA, NA} },
1599
1600 {(0x1F), 1, TSEM_REG_FAST_MEMORY + 0x18080,
1601 NA, 1, 0, pneq,
1602 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1603 "TSEM: FOC2 credit less than initial credit",
1604 {NA, NA, 12, NA, NA, NA} },
1605
1606 {(0x1F), 1, TSEM_REG_FAST_MEMORY + 0x180C0,
1607 NA, 1, 0, pneq,
1608 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1609 "TSEM: FOC3 credit less than initial credit",
1610 {NA, NA, 32, NA, NA, NA} },
1611
1612 {(0x1F), 1, CSEM_REG_FAST_MEMORY + 0x18000,
1613 NA, 1, 0, pneq,
1614 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1615 "CSEM: FOC0 credit less than initial credit",
1616 {NA, NA, 16, NA, NA, NA} },
1617
1618 {(0x1F), 1, CSEM_REG_FAST_MEMORY + 0x18040,
1619 NA, 1, 0, pneq,
1620 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1621 "CSEM: FOC1 credit less than initial credit",
1622 {NA, NA, 18, NA, NA, NA} },
1623
1624 {(0x1F), 1, CSEM_REG_FAST_MEMORY + 0x18080,
1625 NA, 1, 0, pneq,
1626 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1627 "CSEM: FOC2 credit less than initial credit",
1628 {NA, NA, 48, NA, NA, NA} },
1629
1630 {(0x1F), 1, CSEM_REG_FAST_MEMORY + 0x180C0,
1631 NA, 1, 0, pneq,
1632 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1633 "CSEM: FOC3 credit less than initial credit",
1634 {NA, NA, 14, NA, NA, NA} },
1635
1636 {(0x1F), 1, PRS_REG_TSDM_CURRENT_CREDIT,
1637 NA, 1, 0, pneq,
1638 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1639 "PRS: TSDM current credit is not 0",
1640 {NA, NA, 0, NA, NA, NA} },
1641
1642 {(0x1F), 1, PRS_REG_TCM_CURRENT_CREDIT,
1643 NA, 1, 0, pneq,
1644 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1645 "PRS: TCM current credit is not 0",
1646 {NA, NA, 0, NA, NA, NA} },
1647
1648 {(0x1F), 1, PRS_REG_CFC_LD_CURRENT_CREDIT,
1649 NA, 1, 0, pneq,
1650 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1651 "PRS: CFC_LD current credit is not 0",
1652 {NA, NA, 0, NA, NA, NA} },
1653
1654 {(0x1F), 1, PRS_REG_CFC_SEARCH_CURRENT_CREDIT,
1655 NA, 1, 0, pneq,
1656 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1657 "PRS: CFC_SEARCH current credit is not 0",
1658 {NA, NA, 0, NA, NA, NA} },
1659
1660 {(0x1F), 1, PRS_REG_SRC_CURRENT_CREDIT,
1661 NA, 1, 0, pneq,
1662 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1663 "PRS: SRCH current credit is not 0",
1664 {NA, NA, 0, NA, NA, NA} },
1665
1666 {(0x1F), 1, PRS_REG_PENDING_BRB_PRS_RQ,
1667 NA, 1, 0, pneq,
1668 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1669 "PRS: PENDING_BRB_PRS_RQ is not 0",
1670 {NA, NA, 0, NA, NA, NA} },
1671
1672 {(0x1F), 2, PRS_REG_PENDING_BRB_CAC0_RQ,
1673 NA, 5, 4, pneq,
1674 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1675 "PRS: PENDING_BRB_CAC_RQ is not 0",
1676 {NA, NA, 0, NA, NA, NA} },
1677
1678 {(0x1F), 1, PRS_REG_SERIAL_NUM_STATUS_LSB,
1679 NA, 1, 0, pneq,
1680 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1681 "PRS: SERIAL_NUM_STATUS_LSB is not 0",
1682 {NA, NA, 0, NA, NA, NA} },
1683
1684 {(0x1F), 1, PRS_REG_SERIAL_NUM_STATUS_MSB,
1685 NA, 1, 0, pneq,
1686 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1687 "PRS: SERIAL_NUM_STATUS_MSB is not 0",
1688 {NA, NA, 0, NA, NA, NA} },
1689
1690 {(0x1F), 1, CDU_REG_ERROR_DATA,
1691 NA, 1, 0, pneq,
1692 NA, IDLE_CHK_ERROR,
1693 "CDU: ERROR_DATA is not 0",
1694 {NA, NA, 0, NA, NA, NA} },
1695
1696 {(0x1F), 1, CCM_REG_STORM_LENGTH_MIS,
1697 NA, 1, 0, pneq,
1698 NA, IDLE_CHK_ERROR,
1699 "CCM: STORM declared message length unequal to actual",
1700 {NA, NA, 0, NA, NA, NA} },
1701
1702 {(0x1F), 1, CCM_REG_CSDM_LENGTH_MIS,
1703 NA, 1, 0, pneq,
1704 NA, IDLE_CHK_ERROR,
1705 "CCM: CSDM declared message length unequal to actual",
1706 {NA, NA, 0, NA, NA, NA} },
1707
1708 {(0x1F), 1, CCM_REG_TSEM_LENGTH_MIS,
1709 NA, 1, 0, pneq,
1710 NA, IDLE_CHK_ERROR,
1711 "CCM: TSEM declared message length unequal to actual",
1712 {NA, NA, 0, NA, NA, NA} },
1713
1714 {(0x1F), 1, CCM_REG_XSEM_LENGTH_MIS,
1715 NA, 1, 0, pneq,
1716 NA, IDLE_CHK_ERROR,
1717 "CCM: XSEM declared message length unequal to actual",
1718 {NA, NA, 0, NA, NA, NA} },
1719
1720 {(0x1F), 1, CCM_REG_USEM_LENGTH_MIS,
1721 NA, 1, 0, pneq,
1722 NA, IDLE_CHK_ERROR,
1723 "CCM: USEM declared message length unequal to actual",
1724 {NA, NA, 0, NA, NA, NA} },
1725
1726 {(0x1F), 1, CCM_REG_PBF_LENGTH_MIS,
1727 NA, 1, 0, pneq,
1728 NA, IDLE_CHK_ERROR,
1729 "CCM: PBF declared message length unequal to actual",
1730 {NA, NA, 0, NA, NA, NA} },
1731
1732 {(0x1F), 1, TCM_REG_STORM_LENGTH_MIS,
1733 NA, 1, 0, pneq,
1734 NA, IDLE_CHK_ERROR,
1735 "TCM: STORM declared message length unequal to actual",
1736 {NA, NA, 0, NA, NA, NA} },
1737
1738 {(0x1F), 1, TCM_REG_TSDM_LENGTH_MIS,
1739 NA, 1, 0, pneq,
1740 NA, IDLE_CHK_ERROR,
1741 "TCM: TSDM declared message length unequal to actual",
1742 {NA, NA, 0, NA, NA, NA} },
1743
1744 {(0x1F), 1, TCM_REG_PRS_LENGTH_MIS,
1745 NA, 1, 0, pneq,
1746 NA, IDLE_CHK_ERROR,
1747 "TCM: PRS declared message length unequal to actual",
1748 {NA, NA, 0, NA, NA, NA} },
1749
1750 {(0x1F), 1, TCM_REG_PBF_LENGTH_MIS,
1751 NA, 1, 0, pneq,
1752 NA, IDLE_CHK_ERROR,
1753 "TCM: PBF declared message length unequal to actual",
1754 {NA, NA, 0, NA, NA, NA} },
1755
1756 {(0x1F), 1, TCM_REG_USEM_LENGTH_MIS,
1757 NA, 1, 0, pneq,
1758 NA, IDLE_CHK_ERROR,
1759 "TCM: USEM declared message length unequal to actual",
1760 {NA, NA, 0, NA, NA, NA} },
1761
1762 {(0x1F), 1, TCM_REG_CSEM_LENGTH_MIS,
1763 NA, 1, 0, pneq,
1764 NA, IDLE_CHK_ERROR,
1765 "TCM: CSEM declared message length unequal to actual",
1766 {NA, NA, 0, NA, NA, NA} },
1767
1768 {(0x1F), 1, UCM_REG_STORM_LENGTH_MIS,
1769 NA, 1, 0, pneq,
1770 NA, IDLE_CHK_ERROR,
1771 "UCM: STORM declared message length unequal to actual",
1772 {NA, NA, 0, NA, NA, NA} },
1773
1774 {(0x1F), 1, UCM_REG_USDM_LENGTH_MIS,
1775 NA, 1, 0, pneq,
1776 NA, IDLE_CHK_ERROR,
1777 "UCM: USDM declared message length unequal to actual",
1778 {NA, NA, 0, NA, NA, NA} },
1779
1780 {(0x1F), 1, UCM_REG_TSEM_LENGTH_MIS,
1781 NA, 1, 0, pneq,
1782 NA, IDLE_CHK_ERROR,
1783 "UCM: TSEM declared message length unequal to actual",
1784 {NA, NA, 0, NA, NA, NA} },
1785
1786 {(0x1F), 1, UCM_REG_CSEM_LENGTH_MIS,
1787 NA, 1, 0, pneq,
1788 NA, IDLE_CHK_ERROR,
1789 "UCM: CSEM declared message length unequal to actual",
1790 {NA, NA, 0, NA, NA, NA} },
1791
1792 {(0x1F), 1, UCM_REG_XSEM_LENGTH_MIS,
1793 NA, 1, 0, pneq,
1794 NA, IDLE_CHK_ERROR,
1795 "UCM: XSEM declared message length unequal to actual",
1796 {NA, NA, 0, NA, NA, NA} },
1797
1798 {(0x1F), 1, UCM_REG_DORQ_LENGTH_MIS,
1799 NA, 1, 0, pneq,
1800 NA, IDLE_CHK_ERROR,
1801 "UCM: DORQ declared message length unequal to actual",
1802 {NA, NA, 0, NA, NA, NA} },
1803
1804 {(0x1F), 1, XCM_REG_STORM_LENGTH_MIS,
1805 NA, 1, 0, pneq,
1806 NA, IDLE_CHK_ERROR,
1807 "XCM: STORM declared message length unequal to actual",
1808 {NA, NA, 0, NA, NA, NA} },
1809
1810 {(0x1F), 1, XCM_REG_XSDM_LENGTH_MIS,
1811 NA, 1, 0, pneq,
1812 NA, IDLE_CHK_ERROR,
1813 "XCM: XSDM declared message length unequal to actual",
1814 {NA, NA, 0, NA, NA, NA} },
1815
1816 {(0x1F), 1, XCM_REG_TSEM_LENGTH_MIS,
1817 NA, 1, 0, pneq,
1818 NA, IDLE_CHK_ERROR,
1819 "XCM: TSEM declared message length unequal to actual",
1820 {NA, NA, 0, NA, NA, NA} },
1821
1822 {(0x1F), 1, XCM_REG_CSEM_LENGTH_MIS,
1823 NA, 1, 0, pneq,
1824 NA, IDLE_CHK_ERROR,
1825 "XCM: CSEM declared message length unequal to actual",
1826 {NA, NA, 0, NA, NA, NA} },
1827
1828 {(0x1F), 1, XCM_REG_USEM_LENGTH_MIS,
1829 NA, 1, 0, pneq,
1830 NA, IDLE_CHK_ERROR,
1831 "XCM: USEM declared message length unequal to actual",
1832 {NA, NA, 0, NA, NA, NA} },
1833
1834 {(0x1F), 1, XCM_REG_DORQ_LENGTH_MIS,
1835 NA, 1, 0, pneq,
1836 NA, IDLE_CHK_ERROR,
1837 "XCM: DORQ declared message length unequal to actual",
1838 {NA, NA, 0, NA, NA, NA} },
1839
1840 {(0x1F), 1, XCM_REG_PBF_LENGTH_MIS,
1841 NA, 1, 0, pneq,
1842 NA, IDLE_CHK_ERROR,
1843 "XCM: PBF declared message length unequal to actual",
1844 {NA, NA, 0, NA, NA, NA} },
1845
1846 {(0x1F), 1, XCM_REG_NIG0_LENGTH_MIS,
1847 NA, 1, 0, pneq,
1848 NA, IDLE_CHK_ERROR,
1849 "XCM: NIG0 declared message length unequal to actual",
1850 {NA, NA, 0, NA, NA, NA} },
1851
1852 {(0x1F), 1, XCM_REG_NIG1_LENGTH_MIS,
1853 NA, 1, 0, pneq,
1854 NA, IDLE_CHK_ERROR,
1855 "XCM: NIG1 declared message length unequal to actual",
1856 {NA, NA, 0, NA, NA, NA} },
1857
1858 {(0x1F), 1, QM_REG_XQM_WRC_FIFOLVL,
1859 NA, 1, 0, pneq,
1860 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1861 "QM: XQM wrc_fifolvl is not 0",
1862 {NA, NA, 0, NA, NA, NA} },
1863
1864 {(0x1F), 1, QM_REG_UQM_WRC_FIFOLVL,
1865 NA, 1, 0, pneq,
1866 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1867 "QM: UQM wrc_fifolvl is not 0",
1868 {NA, NA, 0, NA, NA, NA} },
1869
1870 {(0x1F), 1, QM_REG_TQM_WRC_FIFOLVL,
1871 NA, 1, 0, pneq,
1872 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1873 "QM: TQM wrc_fifolvl is not 0",
1874 {NA, NA, 0, NA, NA, NA} },
1875
1876 {(0x1F), 1, QM_REG_CQM_WRC_FIFOLVL,
1877 NA, 1, 0, pneq,
1878 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1879 "QM: CQM wrc_fifolvl is not 0",
1880 {NA, NA, 0, NA, NA, NA} },
1881
1882 {(0x1F), 1, QM_REG_QSTATUS_LOW,
1883 NA, 1, 0, pneq,
1884 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1885 "QM: QSTATUS_LOW is not 0",
1886 {NA, NA, 0, NA, NA, NA} },
1887
1888 {(0x1F), 1, QM_REG_QSTATUS_HIGH,
1889 NA, 1, 0, pneq,
1890 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1891 "QM: QSTATUS_HIGH is not 0",
1892 {NA, NA, 0, NA, NA, NA} },
1893
1894 {(0x1F), 1, QM_REG_PAUSESTATE0,
1895 NA, 1, 0, pneq,
1896 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1897 "QM: PAUSESTATE0 is not 0",
1898 {NA, NA, 0, NA, NA, NA} },
1899
1900 {(0x1F), 1, QM_REG_PAUSESTATE1,
1901 NA, 1, 0, pneq,
1902 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1903 "QM: PAUSESTATE1 is not 0",
1904 {NA, NA, 0, NA, NA, NA} },
1905
1906 {(0x1F), 1, QM_REG_OVFQNUM,
1907 NA, 1, 0, pneq,
1908 NA, IDLE_CHK_ERROR,
1909 "QM: OVFQNUM is not 0",
1910 {NA, NA, 0, NA, NA, NA} },
1911
1912 {(0x1F), 1, QM_REG_OVFERROR,
1913 NA, 1, 0, pneq,
1914 NA, IDLE_CHK_ERROR,
1915 "QM: OVFERROR is not 0",
1916 {NA, NA, 0, NA, NA, NA} },
1917
1918 {(0x1F), 6, QM_REG_PTRTBL,
1919 NA, 64, 8, pneq_r2,
1920 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
1921 "QM: read and write variables not equal",
1922 {NA, NA, NA, NA, NA, NA} },
1923
1924 {(0x1F), 1, BRB1_REG_BRB1_PRTY_STS,
1925 NA, 1, 0, pand_neq,
1926 NA, IDLE_CHK_WARNING,
1927 "BRB1: parity status is not 0",
1928 {NA, NA, ~0x8, 0, NA, NA} },
1929
1930 {(0x1F), 1, CDU_REG_CDU_PRTY_STS,
1931 NA, 1, 0, pneq,
1932 NA, IDLE_CHK_WARNING,
1933 "CDU: parity status is not 0",
1934 {NA, NA, 0, NA, NA, NA} },
1935
1936 {(0x1F), 1, CFC_REG_CFC_PRTY_STS,
1937 NA, 1, 0, pand_neq,
1938 NA, IDLE_CHK_WARNING,
1939 "CFC: parity status is not 0",
1940 {NA, NA, ~0x2, 0, NA, NA} },
1941
1942 {(0x1F), 1, CSDM_REG_CSDM_PRTY_STS,
1943 NA, 1, 0, pneq,
1944 NA, IDLE_CHK_WARNING,
1945 "CSDM: parity status is not 0",
1946 {NA, NA, 0, NA, NA, NA} },
1947
1948 {(0x3), 1, DBG_REG_DBG_PRTY_STS,
1949 NA, 1, 0, pneq,
1950 NA, IDLE_CHK_WARNING,
1951 "DBG: parity status is not 0",
1952 {NA, NA, 0, NA, NA, NA} },
1953
1954 {(0x1F), 1, DMAE_REG_DMAE_PRTY_STS,
1955 NA, 1, 0, pneq,
1956 NA, IDLE_CHK_WARNING,
1957 "DMAE: parity status is not 0",
1958 {NA, NA, 0, NA, NA, NA} },
1959
1960 {(0x1F), 1, DORQ_REG_DORQ_PRTY_STS,
1961 NA, 1, 0, pneq,
1962 NA, IDLE_CHK_WARNING,
1963 "DORQ: parity status is not 0",
1964 {NA, NA, 0, NA, NA, NA} },
1965
1966 {(0x1), 1, TCM_REG_TCM_PRTY_STS,
1967 NA, 1, 0, pand_neq,
1968 NA, IDLE_CHK_WARNING,
1969 "TCM: parity status is not 0",
1970 {NA, NA, ~0x3ffc0, 0, NA, NA} },
1971
1972 {(0x1E), 1, TCM_REG_TCM_PRTY_STS,
1973 NA, 1, 0, pneq,
1974 NA, IDLE_CHK_WARNING,
1975 "TCM: parity status is not 0",
1976 {NA, NA, 0, NA, NA, NA} },
1977
1978 {(0x1), 1, CCM_REG_CCM_PRTY_STS,
1979 NA, 1, 0, pand_neq,
1980 NA, IDLE_CHK_WARNING,
1981 "CCM: parity status is not 0",
1982 {NA, NA, ~0x3ffc0, 0, NA, NA} },
1983
1984 {(0x1E), 1, CCM_REG_CCM_PRTY_STS,
1985 NA, 1, 0, pneq,
1986 NA, IDLE_CHK_WARNING,
1987 "CCM: parity status is not 0",
1988 {NA, NA, 0, NA, NA, NA} },
1989
1990 {(0x1), 1, UCM_REG_UCM_PRTY_STS,
1991 NA, 1, 0, pand_neq,
1992 NA, IDLE_CHK_WARNING,
1993 "UCM: parity status is not 0",
1994 {NA, NA, ~0x3ffc0, 0, NA, NA} },
1995
1996 {(0x1E), 1, UCM_REG_UCM_PRTY_STS,
1997 NA, 1, 0, pneq,
1998 NA, IDLE_CHK_WARNING,
1999 "UCM: parity status is not 0",
2000 {NA, NA, 0, NA, NA, NA} },
2001
2002 {(0x1), 1, XCM_REG_XCM_PRTY_STS,
2003 NA, 1, 0, pand_neq,
2004 NA, IDLE_CHK_WARNING,
2005 "XCM: parity status is not 0",
2006 {NA, NA, ~0x3ffc0, 0, NA, NA} },
2007
2008 {(0x1E), 1, XCM_REG_XCM_PRTY_STS,
2009 NA, 1, 0, pneq,
2010 NA, IDLE_CHK_WARNING,
2011 "XCM: parity status is not 0",
2012 {NA, NA, 0, NA, NA, NA} },
2013
2014 {(0x1), 1, HC_REG_HC_PRTY_STS,
2015 NA, 1, 0, pand_neq,
2016 NA, IDLE_CHK_WARNING,
2017 "HC: parity status is not 0",
2018 {NA, NA, ~0x1, 0, NA, NA} },
2019
2020 {(0x1), 1, MISC_REG_MISC_PRTY_STS,
2021 NA, 1, 0, pand_neq,
2022 NA, IDLE_CHK_WARNING,
2023 "MISC: parity status is not 0",
2024 {NA, NA, ~0x1, 0, NA, NA} },
2025
2026 {(0x1F), 1, PRS_REG_PRS_PRTY_STS,
2027 NA, 1, 0, pneq,
2028 NA, IDLE_CHK_WARNING,
2029 "PRS: parity status is not 0",
2030 {NA, NA, 0, NA, NA, NA} },
2031
2032 {(0x1F), 1, PXP_REG_PXP_PRTY_STS,
2033 NA, 1, 0, pneq,
2034 NA, IDLE_CHK_WARNING,
2035 "PXP: parity status is not 0",
2036 {NA, NA, 0, NA, NA, NA} },
2037
2038 {(0x1F), 1, QM_REG_QM_PRTY_STS,
2039 NA, 1, 0, pneq,
2040 NA, IDLE_CHK_WARNING,
2041 "QM: parity status is not 0",
2042 {NA, NA, 0, NA, NA, NA} },
2043
2044 {(0x1), 1, SRC_REG_SRC_PRTY_STS,
2045 NA, 1, 0, pand_neq,
2046 NA, IDLE_CHK_WARNING,
2047 "SRCH: parity status is not 0",
2048 {NA, NA, ~0x4, 0, NA, NA} },
2049
2050 {(0x1F), 1, TSDM_REG_TSDM_PRTY_STS,
2051 NA, 1, 0, pneq,
2052 NA, IDLE_CHK_WARNING,
2053 "TSDM: parity status is not 0",
2054 {NA, NA, 0, NA, NA, NA} },
2055
2056 {(0x1F), 1, USDM_REG_USDM_PRTY_STS,
2057 NA, 1, 0, pand_neq,
2058 NA, IDLE_CHK_WARNING,
2059 "USDM: parity status is not 0",
2060 {NA, NA, ~0x20, 0, NA, NA} },
2061
2062 {(0x1F), 1, XSDM_REG_XSDM_PRTY_STS,
2063 NA, 1, 0, pneq,
2064 NA, IDLE_CHK_WARNING,
2065 "XSDM: parity status is not 0",
2066 {NA, NA, 0, NA, NA, NA} },
2067
2068 {(0x1F), 1, GRCBASE_XPB + PB_REG_PB_PRTY_STS,
2069 NA, 1, 0, pneq,
2070 NA, IDLE_CHK_WARNING,
2071 "XPB: parity status is not 0",
2072 {NA, NA, 0, NA, NA, NA} },
2073
2074 {(0x1F), 1, GRCBASE_UPB + PB_REG_PB_PRTY_STS,
2075 NA, 1, 0, pneq,
2076 NA, IDLE_CHK_WARNING,
2077 "UPB: parity status is not 0",
2078 {NA, NA, 0, NA, NA, NA} },
2079
2080 {(0x1F), 1, CSEM_REG_CSEM_PRTY_STS_0,
2081 NA, 1, 0, pneq,
2082 NA, IDLE_CHK_WARNING,
2083 "CSEM: parity status 0 is not 0",
2084 {NA, NA, 0, NA, NA, NA} },
2085
2086 {(0x1), 1, PXP2_REG_PXP2_PRTY_STS_0,
2087 NA, 1, 0, pand_neq,
2088 NA, IDLE_CHK_WARNING,
2089 "PXP2: parity status 0 is not 0",
2090 {NA, NA, ~0xfff40020, 0, NA, NA} },
2091
2092 {(0x1E), 1, PXP2_REG_PXP2_PRTY_STS_0,
2093 NA, 1, 0, pand_neq,
2094 NA, IDLE_CHK_WARNING,
2095 "PXP2: parity status 0 is not 0",
2096 {NA, NA, ~0x20, 0, NA, NA} },
2097
2098 {(0x1F), 1, TSEM_REG_TSEM_PRTY_STS_0,
2099 NA, 1, 0, pneq,
2100 NA, IDLE_CHK_WARNING,
2101 "TSEM: parity status 0 is not 0",
2102 {NA, NA, 0, NA, NA, NA} },
2103
2104 {(0x1F), 1, USEM_REG_USEM_PRTY_STS_0,
2105 NA, 1, 0, pneq,
2106 NA, IDLE_CHK_WARNING,
2107 "USEM: parity status 0 is not 0",
2108 {NA, NA, 0, NA, NA, NA} },
2109
2110 {(0x1F), 1, XSEM_REG_XSEM_PRTY_STS_0,
2111 NA, 1, 0, pneq,
2112 NA, IDLE_CHK_WARNING,
2113 "XSEM: parity status 0 is not 0",
2114 {NA, NA, 0, NA, NA, NA} },
2115
2116 {(0x1F), 1, CSEM_REG_CSEM_PRTY_STS_1,
2117 NA, 1, 0, pneq,
2118 NA, IDLE_CHK_WARNING,
2119 "CSEM: parity status 1 is not 0",
2120 {NA, NA, 0, NA, NA, NA} },
2121
2122 {(0x1), 1, PXP2_REG_PXP2_PRTY_STS_1,
2123 NA, 1, 0, pand_neq,
2124 NA, IDLE_CHK_WARNING,
2125 "PXP2: parity status 1 is not 0",
2126 {NA, NA, ~0x20, 0, NA, NA} },
2127
2128 {(0x1E), 1, PXP2_REG_PXP2_PRTY_STS_1,
2129 NA, 1, 0, pneq,
2130 NA, IDLE_CHK_WARNING,
2131 "PXP2: parity status 1 is not 0",
2132 {NA, NA, 0, NA, NA, NA} },
2133
2134 {(0x1F), 1, TSEM_REG_TSEM_PRTY_STS_1,
2135 NA, 1, 0, pneq,
2136 NA, IDLE_CHK_WARNING,
2137 "TSEM: parity status 1 is not 0",
2138 {NA, NA, 0, NA, NA, NA} },
2139
2140 {(0x1F), 1, USEM_REG_USEM_PRTY_STS_1,
2141 NA, 1, 0, pneq,
2142 NA, IDLE_CHK_WARNING,
2143 "USEM: parity status 1 is not 0",
2144 {NA, NA, 0, NA, NA, NA} },
2145
2146 {(0x1F), 1, XSEM_REG_XSEM_PRTY_STS_1,
2147 NA, 1, 0, pneq,
2148 NA, IDLE_CHK_WARNING,
2149 "XSEM: parity status 1 is not 0",
2150 {NA, NA, 0, NA, NA, NA} },
2151
2152 {(0x1C), 1, PGLUE_B_REG_PGLUE_B_PRTY_STS,
2153 NA, 1, 0, pneq,
2154 NA, IDLE_CHK_WARNING,
2155 "PGLUE_B: parity status is not 0",
2156 {NA, NA, 0, NA, NA, NA} },
2157
2158 {(0x2), 2, QM_REG_QTASKCTR_EXT_A_0,
2159 NA, 64, 4, pneq,
2160 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2161 "QM: Q_EXT_A (upper 64 queues), Queue is not empty",
2162 {NA, NA, 0, NA, NA, NA} },
2163
2164 {(0x2), 1, QM_REG_QSTATUS_LOW_EXT_A,
2165 NA, 1, 0, pneq,
2166 NA, IDLE_CHK_ERROR,
2167 "QM: QSTATUS_LOW_EXT_A is not 0",
2168 {NA, NA, 0, NA, NA, NA} },
2169
2170 {(0x2), 1, QM_REG_QSTATUS_HIGH_EXT_A,
2171 NA, 1, 0, pneq,
2172 NA, IDLE_CHK_ERROR,
2173 "QM: QSTATUS_HIGH_EXT_A is not 0",
2174 {NA, NA, 0, NA, NA, NA} },
2175
2176 {(0x1E), 1, QM_REG_PAUSESTATE2,
2177 NA, 1, 0, pneq,
2178 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2179 "QM: PAUSESTATE2 is not 0",
2180 {NA, NA, 0, NA, NA, NA} },
2181
2182 {(0x1E), 1, QM_REG_PAUSESTATE3,
2183 NA, 1, 0, pneq,
2184 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2185 "QM: PAUSESTATE3 is not 0",
2186 {NA, NA, 0, NA, NA, NA} },
2187
2188 {(0x2), 1, QM_REG_PAUSESTATE4,
2189 NA, 1, 0, pneq,
2190 NA, IDLE_CHK_ERROR,
2191 "QM: PAUSESTATE4 is not 0",
2192 {NA, NA, 0, NA, NA, NA} },
2193
2194 {(0x2), 1, QM_REG_PAUSESTATE5,
2195 NA, 1, 0, pneq,
2196 NA, IDLE_CHK_ERROR,
2197 "QM: PAUSESTATE5 is not 0",
2198 {NA, NA, 0, NA, NA, NA} },
2199
2200 {(0x2), 1, QM_REG_PAUSESTATE6,
2201 NA, 1, 0, pneq,
2202 NA, IDLE_CHK_ERROR,
2203 "QM: PAUSESTATE6 is not 0",
2204 {NA, NA, 0, NA, NA, NA} },
2205
2206 {(0x2), 1, QM_REG_PAUSESTATE7,
2207 NA, 1, 0, pneq,
2208 NA, IDLE_CHK_ERROR,
2209 "QM: PAUSESTATE7 is not 0",
2210 {NA, NA, 0, NA, NA, NA} },
2211
2212 {(0x2), 6, QM_REG_PTRTBL_EXT_A,
2213 NA, 64, 8, pneq_r2,
2214 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2215 "QM: read and write variables not equal in ext table",
2216 {NA, NA, NA, NA, NA, NA} },
2217
2218 {(0x1E), 1, MISC_REG_AEU_SYS_KILL_OCCURRED,
2219 NA, NA, NA, pneq,
2220 NA, IDLE_CHK_ERROR,
2221 "MISC: system kill occurred;",
2222 {NA, NA, 0, NA, NA, NA} },
2223
2224 {(0x1E), 1, MISC_REG_AEU_SYS_KILL_STATUS_0,
2225 NA, NA, NA, pneq,
2226 NA, IDLE_CHK_ERROR,
2227 "MISC: system kill occurred; status_0 register",
2228 {NA, NA, 0, NA, NA, NA} },
2229
2230 {(0x1E), 1, MISC_REG_AEU_SYS_KILL_STATUS_1,
2231 NA, NA, NA, pneq,
2232 NA, IDLE_CHK_ERROR,
2233 "MISC: system kill occurred; status_1 register",
2234 {NA, NA, 0, NA, NA, NA} },
2235
2236 {(0x1E), 1, MISC_REG_AEU_SYS_KILL_STATUS_2,
2237 NA, NA, NA, pneq,
2238 NA, IDLE_CHK_ERROR,
2239 "MISC: system kill occurred; status_2 register",
2240 {NA, NA, 0, NA, NA, NA} },
2241
2242 {(0x1E), 1, MISC_REG_AEU_SYS_KILL_STATUS_3,
2243 NA, NA, NA, pneq,
2244 NA, IDLE_CHK_ERROR,
2245 "MISC: system kill occurred; status_3 register",
2246 {NA, NA, 0, NA, NA, NA} },
2247
2248 {(0x1E), 1, MISC_REG_PCIE_HOT_RESET,
2249 NA, NA, NA, pneq,
2250 NA, IDLE_CHK_WARNING,
2251 "MISC: pcie_rst_b was asserted without perst assertion",
2252 {NA, NA, 0, NA, NA, NA} },
2253
2254 {(0x1F), 1, NIG_REG_NIG_INT_STS_0,
2255 NA, NA, NA, pand_neq,
2256 NA, IDLE_CHK_ERROR,
2257 "NIG: interrupt 0 is active",
2258 {NA, NA, ~0x300, 0, NA, NA} },
2259
2260 {(0x1F), 1, NIG_REG_NIG_INT_STS_0,
2261 NA, NA, NA, peq,
2262 NA, IDLE_CHK_WARNING,
2263 "NIG: Access to BMAC while not active. If tested on FPGA, ignore this warning",
2264 {NA, NA, 0x300, NA, NA, NA} },
2265
2266 {(0x1F), 1, NIG_REG_NIG_INT_STS_1,
2267 NA, NA, NA, pand_neq,
2268 NA, IDLE_CHK_ERROR,
2269 "NIG: interrupt 1 is active",
2270 {NA, NA, 0x783FF03, 0, NA, NA} },
2271
2272 {(0x1F), 1, NIG_REG_NIG_INT_STS_1,
2273 NA, NA, NA, pand_neq,
2274 NA, IDLE_CHK_WARNING,
2275 "NIG: port cos was paused too long",
2276 {NA, NA, ~0x783FF0F, 0, NA, NA} },
2277
2278 {(0x1F), 1, NIG_REG_NIG_INT_STS_1,
2279 NA, NA, NA, pand_neq,
2280 NA, IDLE_CHK_WARNING,
2281 "NIG: Got packets w/o Outer-VLAN in MF mode",
2282 {NA, NA, 0xC, 0, NA, NA} },
2283
2284 {(0x2), 1, NIG_REG_NIG_PRTY_STS,
2285 NA, NA, NA, pand_neq,
2286 NA, IDLE_CHK_ERROR,
2287 "NIG: parity interrupt is active",
2288 {NA, NA, ~0xFFC00000, 0, NA, NA} },
2289
2290 {(0x1C), 1, NIG_REG_NIG_PRTY_STS_0,
2291 NA, NA, NA, pand_neq,
2292 NA, IDLE_CHK_ERROR,
2293 "NIG: parity 0 interrupt is active",
2294 {NA, NA, ~0xFFC00000, 0, NA, NA} },
2295
2296 {(0x4), 1, NIG_REG_NIG_PRTY_STS_1,
2297 NA, NA, NA, pand_neq,
2298 NA, IDLE_CHK_ERROR,
2299 "NIG: parity 1 interrupt is active",
2300 {NA, NA, 0xff, 0, NA, NA} },
2301
2302 {(0x18), 1, NIG_REG_NIG_PRTY_STS_1,
2303 NA, NA, NA, pneq,
2304 NA, IDLE_CHK_ERROR,
2305 "NIG: parity 1 interrupt is active",
2306 {NA, NA, 0, NA, NA, NA} },
2307
2308 {(0x1F), 1, TSEM_REG_TSEM_INT_STS_0,
2309 NA, NA, NA, pand_neq,
2310 NA, IDLE_CHK_WARNING,
2311 "TSEM: interrupt 0 is active",
2312 {NA, NA, ~0x10000000, 0, NA, NA} },
2313
2314 {(0x1F), 1, TSEM_REG_TSEM_INT_STS_0,
2315 NA, NA, NA, peq,
2316 NA, IDLE_CHK_WARNING,
2317 "TSEM: interrupt 0 is active",
2318 {NA, NA, 0x10000000, NA, NA, NA} },
2319
2320 {(0x1F), 1, TSEM_REG_TSEM_INT_STS_1,
2321 NA, NA, NA, pneq,
2322 NA, IDLE_CHK_ERROR,
2323 "TSEM: interrupt 1 is active",
2324 {NA, NA, 0, NA, NA, NA} },
2325
2326 {(0x1F), 1, CSEM_REG_CSEM_INT_STS_0,
2327 NA, NA, NA, pand_neq,
2328 NA, IDLE_CHK_WARNING,
2329 "CSEM: interrupt 0 is active",
2330 {NA, NA, ~0x10000000, 0, NA, NA} },
2331
2332 {(0x1F), 1, CSEM_REG_CSEM_INT_STS_0,
2333 NA, NA, NA, peq,
2334 NA, IDLE_CHK_WARNING,
2335 "CSEM: interrupt 0 is active",
2336 {NA, NA, 0x10000000, NA, NA, NA} },
2337
2338 {(0x1F), 1, CSEM_REG_CSEM_INT_STS_1,
2339 NA, NA, NA, pneq,
2340 NA, IDLE_CHK_ERROR,
2341 "CSEM: interrupt 1 is active",
2342 {NA, NA, 0, NA, NA, NA} },
2343
2344 {(0x1F), 1, USEM_REG_USEM_INT_STS_0,
2345 NA, NA, NA, pand_neq,
2346 NA, IDLE_CHK_WARNING,
2347 "USEM: interrupt 0 is active",
2348 {NA, NA, ~0x10000000, 0, NA, NA} },
2349
2350 {(0x1F), 1, USEM_REG_USEM_INT_STS_0,
2351 NA, NA, NA, peq,
2352 NA, IDLE_CHK_WARNING,
2353 "USEM: interrupt 0 is active",
2354 {NA, NA, 0x10000000, NA, NA, NA} },
2355
2356 {(0x1F), 1, USEM_REG_USEM_INT_STS_1,
2357 NA, NA, NA, pneq,
2358 NA, IDLE_CHK_ERROR,
2359 "USEM: interrupt 1 is active",
2360 {NA, NA, 0, NA, NA, NA} },
2361
2362 {(0x1F), 1, XSEM_REG_XSEM_INT_STS_0,
2363 NA, NA, NA, pand_neq,
2364 NA, IDLE_CHK_WARNING,
2365 "XSEM: interrupt 0 is active",
2366 {NA, NA, ~0x10000000, 0, NA, NA} },
2367
2368 {(0x1F), 1, XSEM_REG_XSEM_INT_STS_0,
2369 NA, NA, NA, peq,
2370 NA, IDLE_CHK_WARNING,
2371 "XSEM: interrupt 0 is active",
2372 {NA, NA, 0x10000000, NA, NA, NA} },
2373
2374 {(0x1F), 1, XSEM_REG_XSEM_INT_STS_1,
2375 NA, NA, NA, pneq,
2376 NA, IDLE_CHK_ERROR,
2377 "XSEM: interrupt 1 is active",
2378 {NA, NA, 0, NA, NA, NA} },
2379
2380 {(0x1F), 1, TSDM_REG_TSDM_INT_STS_0,
2381 NA, NA, NA, pneq,
2382 NA, IDLE_CHK_ERROR,
2383 "TSDM: interrupt 0 is active",
2384 {NA, NA, 0, NA, NA, NA} },
2385
2386 {(0x1F), 1, TSDM_REG_TSDM_INT_STS_1,
2387 NA, NA, NA, pneq,
2388 NA, IDLE_CHK_ERROR,
2389 "TSDM: interrupt 0 is active",
2390 {NA, NA, 0, NA, NA, NA} },
2391
2392 {(0x1F), 1, CSDM_REG_CSDM_INT_STS_0,
2393 NA, NA, NA, pneq,
2394 NA, IDLE_CHK_ERROR,
2395 "CSDM: interrupt 0 is active",
2396 {NA, NA, 0, NA, NA, NA} },
2397
2398 {(0x1F), 1, CSDM_REG_CSDM_INT_STS_1,
2399 NA, NA, NA, pneq,
2400 NA, IDLE_CHK_ERROR,
2401 "CSDM: interrupt 0 is active",
2402 {NA, NA, 0, NA, NA, NA} },
2403
2404 {(0x1F), 1, USDM_REG_USDM_INT_STS_0,
2405 NA, NA, NA, pneq,
2406 NA, IDLE_CHK_ERROR,
2407 "USDM: interrupt 0 is active",
2408 {NA, NA, 0, NA, NA, NA} },
2409
2410 {(0x1F), 1, USDM_REG_USDM_INT_STS_1,
2411 NA, NA, NA, pneq,
2412 NA, IDLE_CHK_ERROR,
2413 "USDM: interrupt 0 is active",
2414 {NA, NA, 0, NA, NA, NA} },
2415
2416 {(0x1F), 1, XSDM_REG_XSDM_INT_STS_0,
2417 NA, NA, NA, pneq,
2418 NA, IDLE_CHK_ERROR,
2419 "XSDM: interrupt 0 is active",
2420 {NA, NA, 0, NA, NA, NA} },
2421
2422 {(0x1F), 1, XSDM_REG_XSDM_INT_STS_1,
2423 NA, NA, NA, pneq,
2424 NA, IDLE_CHK_ERROR,
2425 "XSDM: interrupt 0 is active",
2426 {NA, NA, 0, NA, NA, NA} },
2427
2428 {(0x2), 1, HC_REG_HC_PRTY_STS,
2429 NA, 1, 0, pneq,
2430 NA, IDLE_CHK_WARNING,
2431 "HC: parity status is not 0",
2432 {NA, NA, 0, NA, NA, NA} },
2433
2434 {(0x1E), 1, MISC_REG_MISC_PRTY_STS,
2435 NA, 1, 0, pneq,
2436 NA, IDLE_CHK_WARNING,
2437 "MISC: parity status is not 0",
2438 {NA, NA, 0, NA, NA, NA} },
2439
2440 {(0x1E), 1, SRC_REG_SRC_PRTY_STS,
2441 NA, 1, 0, pneq,
2442 NA, IDLE_CHK_WARNING,
2443 "SRCH: parity status is not 0",
2444 {NA, NA, 0, NA, NA, NA} },
2445
2446 {(0xC), 3, QM_REG_BYTECRD0,
2447 QM_REG_BYTECRDINITVAL, 1, 0, pneq_r2,
2448 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2449 "QM: Byte credit 0 is not equal to initial credit",
2450 {NA, NA, NA, NA, NA, NA} },
2451
2452 {(0xC), 3, QM_REG_BYTECRD1,
2453 QM_REG_BYTECRDINITVAL, 1, 0, pneq_r2,
2454 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2455 "QM: Byte credit 1 is not equal to initial credit",
2456 {NA, NA, NA, NA, NA, NA} },
2457
2458 {(0xC), 3, QM_REG_BYTECRD2,
2459 QM_REG_BYTECRDINITVAL, 1, 0, pneq_r2,
2460 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2461 "QM: Byte credit 2 is not equal to initial credit",
2462 {NA, NA, NA, NA, NA, NA} },
2463
2464 {(0x1C), 1, QM_REG_VOQCRDERRREG,
2465 NA, 1, 0, pand_neq,
2466 NA, IDLE_CHK_ERROR,
2467 "QM: VOQ credit error register is not 0 (VOQ credit overflow/underflow)",
2468 {NA, NA, 0xFFFF, 0, NA, NA} },
2469
2470 {(0x1C), 1, QM_REG_BYTECRDERRREG,
2471 NA, 1, 0, pand_neq,
2472 NA, IDLE_CHK_ERROR,
2473 "QM: Byte credit error register is not 0 (Byte credit overflow/underflow)",
2474 {NA, NA, 0xFFF, 0, NA, NA} },
2475
2476 {(0x1C), 1, PGLUE_B_REG_FLR_REQUEST_VF_31_0,
2477 NA, 1, 0, pneq,
2478 NA, IDLE_CHK_WARNING,
2479 "PGL: FLR request is set for VF addresses 31-0",
2480 {NA, NA, 0, NA, NA, NA} },
2481
2482 {(0x1C), 1, PGLUE_B_REG_FLR_REQUEST_VF_63_32,
2483 NA, 1, 0, pneq,
2484 NA, IDLE_CHK_WARNING,
2485 "PGL: FLR request is set for VF addresses 63-32",
2486 {NA, NA, 0, NA, NA, NA} },
2487
2488 {(0x1C), 1, PGLUE_B_REG_FLR_REQUEST_VF_95_64,
2489 NA, 1, 0, pneq,
2490 NA, IDLE_CHK_WARNING,
2491 "PGL: FLR request is set for VF addresses 95-64",
2492 {NA, NA, 0, NA, NA, NA} },
2493
2494 {(0x1C), 1, PGLUE_B_REG_FLR_REQUEST_VF_127_96,
2495 NA, 1, 0, pneq,
2496 NA, IDLE_CHK_WARNING,
2497 "PGL: FLR request is set for VF addresses 127-96",
2498 {NA, NA, 0, NA, NA, NA} },
2499
2500 {(0x1C), 1, PGLUE_B_REG_FLR_REQUEST_PF_7_0,
2501 NA, 1, 0, pneq,
2502 NA, IDLE_CHK_WARNING,
2503 "PGL: FLR request is set for PF addresses 7-0",
2504 {NA, NA, 0, NA, NA, NA} },
2505
2506 {(0x1C), 1, PGLUE_B_REG_SR_IOV_DISABLED_REQUEST,
2507 NA, 1, 0, pneq,
2508 NA, IDLE_CHK_WARNING,
2509 "PGL: SR-IOV disable request is set",
2510 {NA, NA, 0, NA, NA, NA} },
2511
2512 {(0x1C), 1, PGLUE_B_REG_CFG_SPACE_A_REQUEST,
2513 NA, 1, 0, pneq,
2514 NA, IDLE_CHK_WARNING,
2515 "PGL: Cfg-Space A request is set",
2516 {NA, NA, 0, NA, NA, NA} },
2517
2518 {(0x1C), 1, PGLUE_B_REG_CFG_SPACE_B_REQUEST,
2519 NA, 1, 0, pneq,
2520 NA, IDLE_CHK_WARNING,
2521 "PGL: Cfg-Space B request is set",
2522 {NA, NA, 0, NA, NA, NA} },
2523
2524 {(0x1C), 1, IGU_REG_ERROR_HANDLING_DATA_VALID,
2525 NA, NA, 0, pneq,
2526 NA, IDLE_CHK_WARNING,
2527 "IGU: some unauthorized commands arrived to the IGU. Use igu_dump_fifo utility for more details",
2528 {NA, NA, 0, NA, NA, NA} },
2529
2530 {(0x1C), 1, IGU_REG_ATTN_WRITE_DONE_PENDING,
2531 NA, NA, NA, pneq,
2532 NA, IDLE_CHK_WARNING,
2533 "IGU attention message write done pending is not empty",
2534 {NA, NA, 0, NA, NA, NA} },
2535
2536 {(0x1C), 1, IGU_REG_WRITE_DONE_PENDING,
2537 NA, 5, 4, pneq,
2538 NA, IDLE_CHK_WARNING,
2539 "IGU MSI/MSIX message write done pending is not empty",
2540 {NA, NA, 0, NA, NA, NA} },
2541
2542 {(0x1C), 1, IGU_REG_IGU_PRTY_STS,
2543 NA, 1, 0, pneq,
2544 NA, IDLE_CHK_WARNING,
2545 "IGU: parity status is not 0",
2546 {NA, NA, 0, NA, NA, NA} },
2547
2548 {(0x1E), 3, MISC_REG_GRC_TIMEOUT_ATTN,
2549 MISC_REG_AEU_AFTER_INVERT_4_FUNC_0, 1, 0, pand_neq,
2550 NA, IDLE_CHK_ERROR,
2551 "MISC_REG_GRC_TIMEOUT_ATTN: GRC timeout attention parameters (FUNC_0)",
2552 {NA, NA, 0x4000000, 0, NA, NA} },
2553
2554 {(0x1C), 3, MISC_REG_GRC_TIMEOUT_ATTN_FULL_FID,
2555 MISC_REG_AEU_AFTER_INVERT_4_FUNC_0, 1, 0, pand_neq,
2556 NA, IDLE_CHK_ERROR,
2557 "MISC_REG_GRC_TIMEOUT_ATTN_FULL_FID: GRC timeout attention FID (FUNC_0)",
2558 {NA, NA, 0x4000000, 0, NA, NA} },
2559
2560 {(0x1E), 3, MISC_REG_GRC_TIMEOUT_ATTN,
2561 MISC_REG_AEU_AFTER_INVERT_4_FUNC_1, 1, 0, pand_neq,
2562 NA, IDLE_CHK_ERROR,
2563 "MISC_REG_GRC_TIMEOUT_ATTN: GRC timeout attention parameters (FUNC_1)",
2564 {NA, NA, 0x4000000, 0, NA, NA} },
2565
2566 {(0x1C), 3, MISC_REG_GRC_TIMEOUT_ATTN_FULL_FID,
2567 MISC_REG_AEU_AFTER_INVERT_4_FUNC_1, 1, 0, pand_neq,
2568 NA, IDLE_CHK_ERROR,
2569 "MISC_REG_GRC_TIMEOUT_ATTN_FULL_FID: GRC timeout attention FID (FUNC_1)",
2570 {NA, NA, 0x4000000, 0, NA, NA} },
2571
2572 {(0x1E), 3, MISC_REG_GRC_TIMEOUT_ATTN,
2573 MISC_REG_AEU_AFTER_INVERT_4_MCP, 1, 0, pand_neq,
2574 NA, IDLE_CHK_ERROR,
2575 "MISC_REG_GRC_TIMEOUT_ATTN: GRC timeout attention parameters (MCP)",
2576 {NA, NA, 0x4000000, 0, NA, NA} },
2577
2578 {(0x1C), 3, MISC_REG_GRC_TIMEOUT_ATTN_FULL_FID,
2579 MISC_REG_AEU_AFTER_INVERT_4_MCP, 1, 0, pand_neq,
2580 NA, IDLE_CHK_ERROR,
2581 "MISC_REG_GRC_TIMEOUT_ATTN_FULL_FID: GRC timeout attention FID (MCP)",
2582 {NA, NA, 0x4000000, 0, NA, NA} },
2583
2584 {(0x1C), 1, IGU_REG_SILENT_DROP,
2585 NA, 1, 0, pneq,
2586 NA, IDLE_CHK_ERROR,
2587 "Some messages were not executed in the IGU",
2588 {NA, NA, 0, NA, NA, NA} },
2589
2590 {(0x1C), 1, PXP2_REG_PSWRQ_BW_CREDIT,
2591 NA, 1, 0, pneq,
2592 NA, IDLE_CHK_ERROR,
2593 "PXP2: rq_read_credit and rq_write_credit are not 5",
2594 {NA, NA, 0x2D, NA, NA, NA} },
2595
2596 {(0x1C), 1, IGU_REG_SB_CTRL_FSM,
2597 NA, 1, 0, pneq,
2598 NA, IDLE_CHK_WARNING,
2599 "IGU: block is not in idle. SB_CTRL_FSM should be zero in idle state",
2600 {NA, NA, 0, NA, NA, NA} },
2601
2602 {(0x1C), 1, IGU_REG_INT_HANDLE_FSM,
2603 NA, 1, 0, pneq,
2604 NA, IDLE_CHK_WARNING,
2605 "IGU: block is not in idle. INT_HANDLE_FSM should be zero in idle state",
2606 {NA, NA, 0, NA, NA, NA} },
2607
2608 {(0x1C), 1, IGU_REG_ATTN_FSM,
2609 NA, 1, 0, pand_neq,
2610 NA, IDLE_CHK_WARNING,
2611 "IGU: block is not in idle. SB_ATTN_FSMshould be zeroor two in idle state",
2612 {NA, NA, ~0x2, 0, NA, NA} },
2613
2614 {(0x1C), 1, IGU_REG_CTRL_FSM,
2615 NA, 1, 0, pand_neq,
2616 NA, IDLE_CHK_WARNING,
2617 "IGU: block is not in idle. SB_CTRL_FSM should be zero in idle state",
2618 {NA, NA, ~0x1, 0, NA, NA} },
2619
2620 {(0x1C), 1, IGU_REG_PXP_ARB_FSM,
2621 NA, 1, 0, pand_neq,
2622 NA, IDLE_CHK_WARNING,
2623 "IGU: block is not in idle. SB_ARB_FSM should be zero in idle state",
2624 {NA, NA, ~0x1, 0, NA, NA} },
2625
2626 {(0x1C), 1, IGU_REG_PENDING_BITS_STATUS,
2627 NA, 5, 4, pneq,
2628 NA, IDLE_CHK_WARNING,
2629 "IGU: block is not in idle. There are pending write done",
2630 {NA, NA, 0, NA, NA, NA} },
2631
2632 {(0x10), 3, QM_REG_VOQCREDIT_0,
2633 QM_REG_VOQINITCREDIT_0, 1, 0, pneq_r2,
2634 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2635 "QM: VOQ_0, VOQ credit is not equal to initial credit",
2636 {NA, NA, NA, NA, NA, NA} },
2637
2638 {(0x10), 3, QM_REG_VOQCREDIT_1,
2639 QM_REG_VOQINITCREDIT_1, 1, 0, pneq_r2,
2640 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2641 "QM: VOQ_1, VOQ credit is not equal to initial credit",
2642 {NA, NA, NA, NA, NA, NA} },
2643
2644 {(0x10), 3, QM_REG_VOQCREDIT_2,
2645 QM_REG_VOQINITCREDIT_2, 1, 0, pneq_r2,
2646 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2647 "QM: VOQ_2, VOQ credit is not equal to initial credit",
2648 {NA, NA, NA, NA, NA, NA} },
2649
2650 {(0x10), 3, QM_REG_VOQCREDIT_3,
2651 QM_REG_VOQINITCREDIT_3, 1, 0, pneq_r2,
2652 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2653 "QM: VOQ_3, VOQ credit is not equal to initial credit",
2654 {NA, NA, NA, NA, NA, NA} },
2655
2656 {(0x10), 3, QM_REG_VOQCREDIT_4,
2657 QM_REG_VOQINITCREDIT_4, 1, 0, pneq_r2,
2658 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2659 "QM: VOQ_4, VOQ credit is not equal to initial credit",
2660 {NA, NA, NA, NA, NA, NA} },
2661
2662 {(0x10), 3, QM_REG_VOQCREDIT_5,
2663 QM_REG_VOQINITCREDIT_5, 1, 0, pneq_r2,
2664 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2665 "QM: VOQ_5, VOQ credit is not equal to initial credit",
2666 {NA, NA, NA, NA, NA, NA} },
2667
2668 {(0x10), 3, QM_REG_VOQCREDIT_6,
2669 QM_REG_VOQINITCREDIT_6, 1, 0, pneq_r2,
2670 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2671 "QM: VOQ_6 (LB VOQ), VOQ credit is not equal to initial credit",
2672 {NA, NA, NA, NA, NA, NA} },
2673
2674 {(0x10), 3, QM_REG_BYTECRD0,
2675 QM_REG_BYTECRDINITVAL, 1, 0, pneq_r2,
2676 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2677 "QM: Byte credit 0 is not equal to initial credit",
2678 {NA, NA, NA, NA, NA, NA} },
2679
2680 {(0x10), 3, QM_REG_BYTECRD1,
2681 QM_REG_BYTECRDINITVAL, 1, 0, pneq_r2,
2682 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2683 "QM: Byte credit 1 is not equal to initial credit",
2684 {NA, NA, NA, NA, NA, NA} },
2685
2686 {(0x10), 3, QM_REG_BYTECRD2,
2687 QM_REG_BYTECRDINITVAL, 1, 0, pneq_r2,
2688 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2689 "QM: Byte credit 2 is not equal to initial credit",
2690 {NA, NA, NA, NA, NA, NA} },
2691
2692 {(0x10), 3, QM_REG_BYTECRD3,
2693 QM_REG_BYTECRDINITVAL, 1, 0, pneq_r2,
2694 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2695 "QM: Byte credit 3 is not equal to initial credit",
2696 {NA, NA, NA, NA, NA, NA} },
2697
2698 {(0x10), 3, QM_REG_BYTECRD4,
2699 QM_REG_BYTECRDINITVAL, 1, 0, pneq_r2,
2700 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2701 "QM: Byte credit 4 is not equal to initial credit",
2702 {NA, NA, NA, NA, NA, NA} },
2703
2704 {(0x10), 3, QM_REG_BYTECRD5,
2705 QM_REG_BYTECRDINITVAL, 1, 0, pneq_r2,
2706 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2707 "QM: Byte credit 5 is not equal to initial credit",
2708 {NA, NA, NA, NA, NA, NA} },
2709
2710 {(0x10), 3, QM_REG_BYTECRD6,
2711 QM_REG_BYTECRDINITVAL, 1, 0, pneq_r2,
2712 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2713 "QM: Byte credit 6 is not equal to initial credit",
2714 {NA, NA, NA, NA, NA, NA} },
2715
2716 {(0x10), 1, QM_REG_FWVOQ0TOHWVOQ,
2717 NA, 1, 0, peq,
2718 NA, IDLE_CHK_ERROR,
2719 "QM: FwVoq0 is mapped to HwVoq7 (non-TX HwVoq)",
2720 {NA, NA, 0x7, NA, NA, NA} },
2721
2722 {(0x10), 1, QM_REG_FWVOQ1TOHWVOQ,
2723 NA, 1, 0, peq,
2724 NA, IDLE_CHK_ERROR,
2725 "QM: FwVoq1 is mapped to HwVoq7 (non-TX HwVoq)",
2726 {NA, NA, 0x7, NA, NA, NA} },
2727
2728 {(0x10), 1, QM_REG_FWVOQ2TOHWVOQ,
2729 NA, 1, 0, peq,
2730 NA, IDLE_CHK_ERROR,
2731 "QM: FwVoq2 is mapped to HwVoq7 (non-TX HwVoq)",
2732 {NA, NA, 0x7, NA, NA, NA} },
2733
2734 {(0x10), 1, QM_REG_FWVOQ3TOHWVOQ,
2735 NA, 1, 0, peq,
2736 NA, IDLE_CHK_ERROR,
2737 "QM: FwVoq3 is mapped to HwVoq7 (non-TX HwVoq)",
2738 {NA, NA, 0x7, NA, NA, NA} },
2739
2740 {(0x10), 1, QM_REG_FWVOQ4TOHWVOQ,
2741 NA, 1, 0, peq,
2742 NA, IDLE_CHK_ERROR,
2743 "QM: FwVoq4 is mapped to HwVoq7 (non-TX HwVoq)",
2744 {NA, NA, 0x7, NA, NA, NA} },
2745
2746 {(0x10), 1, QM_REG_FWVOQ5TOHWVOQ,
2747 NA, 1, 0, peq,
2748 NA, IDLE_CHK_ERROR,
2749 "QM: FwVoq5 is mapped to HwVoq7 (non-TX HwVoq)",
2750 {NA, NA, 0x7, NA, NA, NA} },
2751
2752 {(0x10), 1, QM_REG_FWVOQ6TOHWVOQ,
2753 NA, 1, 0, peq,
2754 NA, IDLE_CHK_ERROR,
2755 "QM: FwVoq6 is mapped to HwVoq7 (non-TX HwVoq)",
2756 {NA, NA, 0x7, NA, NA, NA} },
2757
2758 {(0x10), 1, QM_REG_FWVOQ7TOHWVOQ,
2759 NA, 1, 0, peq,
2760 NA, IDLE_CHK_ERROR,
2761 "QM: FwVoq7 is mapped to HwVoq7 (non-TX HwVoq)",
2762 {NA, NA, 0x7, NA, NA, NA} },
2763
2764 {(0x1F), 1, NIG_REG_INGRESS_EOP_PORT0_EMPTY,
2765 NA, 1, 0, pneq,
2766 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2767 "NIG: Port 0 EOP FIFO is not empty",
2768 {NA, NA, 1, NA, NA, NA} },
2769
2770 {(0x1F), 1, NIG_REG_INGRESS_EOP_PORT1_EMPTY,
2771 NA, 1, 0, pneq,
2772 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2773 "NIG: Port 1 EOP FIFO is not empty",
2774 {NA, NA, 1, NA, NA, NA} },
2775
2776 {(0x1F), 1, NIG_REG_INGRESS_EOP_LB_EMPTY,
2777 NA, 1, 0, pneq,
2778 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2779 "NIG: LB EOP FIFO is not empty",
2780 {NA, NA, 1, NA, NA, NA} },
2781
2782 {(0x1F), 1, NIG_REG_INGRESS_RMP0_DSCR_EMPTY,
2783 NA, 1, 0, pneq,
2784 NA, IDLE_CHK_WARNING,
2785 "NIG: Port 0 RX MCP descriptor FIFO is not empty",
2786 {NA, NA, 1, NA, NA, NA} },
2787
2788 {(0x1F), 1, NIG_REG_INGRESS_RMP1_DSCR_EMPTY,
2789 NA, 1, 0, pneq,
2790 NA, IDLE_CHK_WARNING,
2791 "NIG: Port 1 RX MCP descriptor FIFO is not empty",
2792 {NA, NA, 1, NA, NA, NA} },
2793
2794 {(0x1F), 1, NIG_REG_INGRESS_LB_PBF_DELAY_EMPTY,
2795 NA, 1, 0, pneq,
2796 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2797 "NIG: PBF LB FIFO is not empty",
2798 {NA, NA, 1, NA, NA, NA} },
2799
2800 {(0x1F), 1, NIG_REG_EGRESS_MNG0_FIFO_EMPTY,
2801 NA, 1, 0, pneq,
2802 NA, IDLE_CHK_WARNING,
2803 "NIG: Port 0 TX MCP FIFO is not empty",
2804 {NA, NA, 1, NA, NA, NA} },
2805
2806 {(0x1F), 1, NIG_REG_EGRESS_MNG1_FIFO_EMPTY,
2807 NA, 1, 0, pneq,
2808 NA, IDLE_CHK_WARNING,
2809 "NIG: Port 1 TX MCP FIFO is not empty",
2810 {NA, NA, 1, NA, NA, NA} },
2811
2812 {(0x1F), 1, NIG_REG_EGRESS_DEBUG_FIFO_EMPTY,
2813 NA, 1, 0, pneq,
2814 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2815 "NIG: Debug FIFO is not empty",
2816 {NA, NA, 1, NA, NA, NA} },
2817
2818 {(0x1F), 1, NIG_REG_EGRESS_DELAY0_EMPTY,
2819 NA, 1, 0, pneq,
2820 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2821 "NIG: PBF IF0 FIFO is not empty",
2822 {NA, NA, 1, NA, NA, NA} },
2823
2824 {(0x1F), 1, NIG_REG_EGRESS_DELAY1_EMPTY,
2825 NA, 1, 0, pneq,
2826 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2827 "NIG: PBF IF1 FIFO is not empty",
2828 {NA, NA, 1, NA, NA, NA} },
2829
2830 {(0x1F), 1, NIG_REG_LLH0_FIFO_EMPTY,
2831 NA, 1, 0, pneq,
2832 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2833 "NIG: Port 0 RX LLH FIFO is not empty",
2834 {NA, NA, 1, NA, NA, NA} },
2835
2836 {(0x1F), 1, NIG_REG_LLH1_FIFO_EMPTY,
2837 NA, 1, 0, pneq,
2838 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2839 "NIG: Port 1 RX LLH FIFO is not empty",
2840 {NA, NA, 1, NA, NA, NA} },
2841
2842 {(0x1C), 1, NIG_REG_P0_TX_MNG_HOST_FIFO_EMPTY,
2843 NA, 1, 0, pneq,
2844 NA, IDLE_CHK_WARNING,
2845 "NIG: Port 0 TX MCP FIFO for traffic going to the host is not empty",
2846 {NA, NA, 1, NA, NA, NA} },
2847
2848 {(0x1C), 1, NIG_REG_P1_TX_MNG_HOST_FIFO_EMPTY,
2849 NA, 1, 0, pneq,
2850 NA, IDLE_CHK_WARNING,
2851 "NIG: Port 1 TX MCP FIFO for traffic going to the host is not empty",
2852 {NA, NA, 1, NA, NA, NA} },
2853
2854 {(0x1C), 1, NIG_REG_P0_TLLH_FIFO_EMPTY,
2855 NA, 1, 0, pneq,
2856 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2857 "NIG: Port 0 TX LLH FIFO is not empty",
2858 {NA, NA, 1, NA, NA, NA} },
2859
2860 {(0x1C), 1, NIG_REG_P1_TLLH_FIFO_EMPTY,
2861 NA, 1, 0, pneq,
2862 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2863 "NIG: Port 1 TX LLH FIFO is not empty",
2864 {NA, NA, 1, NA, NA, NA} },
2865
2866 {(0x1C), 1, NIG_REG_P0_HBUF_DSCR_EMPTY,
2867 NA, 1, 0, pneq,
2868 NA, IDLE_CHK_WARNING,
2869 "NIG: Port 0 RX MCP descriptor FIFO for traffic from the host is not empty",
2870 {NA, NA, 1, NA, NA, NA} },
2871
2872 {(0x1C), 1, NIG_REG_P1_HBUF_DSCR_EMPTY,
2873 NA, 1, 0, pneq,
2874 NA, IDLE_CHK_WARNING,
2875 "NIG: Port 1 RX MCP descriptor FIFO for traffic from the host is not empty",
2876 {NA, NA, 1, NA, NA, NA} },
2877
2878 {(0x18), 1, NIG_REG_P0_RX_MACFIFO_EMPTY,
2879 NA, 1, 0, pneq,
2880 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2881 "NIG: Port 0 RX MAC interface FIFO is not empty",
2882 {NA, NA, 1, NA, NA, NA} },
2883
2884 {(0x18), 1, NIG_REG_P1_RX_MACFIFO_EMPTY,
2885 NA, 1, 0, pneq,
2886 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2887 "NIG: Port 1 RX MAC interface FIFO is not empty",
2888 {NA, NA, 1, NA, NA, NA} },
2889
2890 {(0x18), 1, NIG_REG_P0_TX_MACFIFO_EMPTY,
2891 NA, 1, 0, pneq,
2892 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2893 "NIG: Port 0 TX MAC interface FIFO is not empty",
2894 {NA, NA, 1, NA, NA, NA} },
2895
2896 {(0x18), 1, NIG_REG_P1_TX_MACFIFO_EMPTY,
2897 NA, 1, 0, pneq,
2898 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2899 "NIG: Port 1 TX MAC interface FIFO is not empty",
2900 {NA, NA, 1, NA, NA, NA} },
2901
2902 {(0x10), 1, NIG_REG_EGRESS_DELAY2_EMPTY,
2903 NA, 1, 0, pneq,
2904 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2905 "NIG: PBF IF2 FIFO is not empty",
2906 {NA, NA, 1, NA, NA, NA} },
2907
2908 {(0x10), 1, NIG_REG_EGRESS_DELAY3_EMPTY,
2909 NA, 1, 0, pneq,
2910 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2911 "NIG: PBF IF3 FIFO is not empty",
2912 {NA, NA, 1, NA, NA, NA} },
2913
2914 {(0x10), 1, NIG_REG_EGRESS_DELAY4_EMPTY,
2915 NA, 1, 0, pneq,
2916 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2917 "NIG: PBF IF4 FIFO is not empty",
2918 {NA, NA, 1, NA, NA, NA} },
2919
2920 {(0x10), 1, NIG_REG_EGRESS_DELAY5_EMPTY,
2921 NA, 1, 0, pneq,
2922 NA, IDLE_CHK_ERROR_NO_TRAFFIC,
2923 "NIG: PBF IF5 FIFO is not empty",
2924 {NA, NA, 1, NA, NA, NA} },
2925 };
2926
2927
2928 static void bnx2x_self_test_log(struct bnx2x *bp, u8 severity, char *message)
2929 {
2930 switch (severity) {
2931 case IDLE_CHK_ERROR:
2932 BNX2X_ERR("ERROR %s", message);
2933 idle_chk_errors++;
2934 break;
2935 case IDLE_CHK_ERROR_NO_TRAFFIC:
2936 DP(NETIF_MSG_HW, "INFO %s", message);
2937 break;
2938 case IDLE_CHK_WARNING:
2939 DP(NETIF_MSG_HW, "WARNING %s", message);
2940 idle_chk_warnings++;
2941 break;
2942 }
2943 }
2944
2945
2946 static void bnx2x_idle_chk6(struct bnx2x *bp,
2947 struct st_record *rec, char *message)
2948 {
2949 u32 rd_ptr, wr_ptr, rd_bank, wr_bank;
2950 int i;
2951
2952 for (i = 0; i < rec->loop; i++) {
2953
2954 rec->pred_args.val1 =
2955 REG_RD(bp, rec->reg1 + i * rec->incr);
2956 rec->pred_args.val2 =
2957 REG_RD(bp, rec->reg1 + i * rec->incr + 4);
2958
2959
2960 rd_ptr = ((rec->pred_args.val1 & 0x3FFFFFC0) >> 6);
2961 wr_ptr = ((((rec->pred_args.val1 & 0xC0000000) >> 30) & 0x3) |
2962 ((rec->pred_args.val2 & 0x3FFFFF) << 2));
2963
2964
2965 if (rd_ptr != wr_ptr) {
2966 snprintf(message, MAX_FAIL_MSG,
2967 "QM: PTRTBL entry %d- rd_ptr is not equal to wr_ptr. Values are 0x%x and 0x%x\n",
2968 i, rd_ptr, wr_ptr);
2969 bnx2x_self_test_log(bp, rec->severity, message);
2970 }
2971
2972
2973 rd_bank = ((rec->pred_args.val1 & 0x30) >> 4);
2974 wr_bank = (rec->pred_args.val1 & 0x03);
2975
2976
2977 if (rd_bank != wr_bank) {
2978 snprintf(message, MAX_FAIL_MSG,
2979 "QM: PTRTBL entry %d - rd_bank is not equal to wr_bank. Values are 0x%x 0x%x\n",
2980 i, rd_bank, wr_bank);
2981 bnx2x_self_test_log(bp, rec->severity, message);
2982 }
2983 }
2984 }
2985
2986
2987 static void bnx2x_idle_chk7(struct bnx2x *bp,
2988 struct st_record *rec, char *message)
2989 {
2990 int i;
2991
2992
2993 for (i = 0; i < rec->loop; i++) {
2994
2995 if ((REG_RD(bp, (rec->reg2 + i * 4)) & 0x1) != 0x1)
2996 continue;
2997
2998
2999 REG_RD(bp, (rec->reg1 + i * rec->incr));
3000 REG_RD(bp, (rec->reg1 + i * rec->incr + 4));
3001 rec->pred_args.val1 =
3002 REG_RD(bp, (rec->reg1 + i * rec->incr + 8));
3003 REG_RD(bp, (rec->reg1 + i * rec->incr + 12));
3004
3005
3006 if (is_e1 || is_e1h) {
3007
3008 rec->pred_args.val1 &= 0x78;
3009 rec->pred_args.val1 >>= 3;
3010 } else {
3011
3012 rec->pred_args.val1 &= 0x1E000000;
3013 rec->pred_args.val1 >>= 25;
3014 }
3015
3016
3017 rec->pred_args.val2 = REG_RD(bp, rec->reg3 + i * 4);
3018
3019
3020 if (rec->bnx2x_predicate(&rec->pred_args)) {
3021 snprintf(message, MAX_FAIL_MSG,
3022 "%s. Values are 0x%x 0x%x\n", rec->fail_msg,
3023 rec->pred_args.val1, rec->pred_args.val2);
3024 bnx2x_self_test_log(bp, rec->severity, message);
3025 }
3026 }
3027 }
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038 int bnx2x_idle_chk(struct bnx2x *bp)
3039 {
3040 u16 i;
3041 u16 st_ind;
3042 struct st_record rec;
3043 char message[MAX_FAIL_MSG];
3044
3045
3046 idle_chk_errors = 0;
3047 idle_chk_warnings = 0;
3048
3049
3050 is_e1 = CHIP_IS_E1(bp);
3051 is_e1h = CHIP_IS_E1H(bp);
3052 is_e2 = CHIP_IS_E2(bp);
3053 is_e3a0 = CHIP_IS_E3A0(bp);
3054 is_e3b0 = CHIP_IS_E3B0(bp);
3055
3056
3057 for (st_ind = 0; st_ind < ST_DB_LINES; st_ind++) {
3058 rec = st_database[st_ind];
3059
3060
3061 if (!((rec.chip_mask & IDLE_CHK_E1) && is_e1) &&
3062 !((rec.chip_mask & IDLE_CHK_E1H) && is_e1h) &&
3063 !((rec.chip_mask & IDLE_CHK_E2) && is_e2) &&
3064 !((rec.chip_mask & IDLE_CHK_E3A0) && is_e3a0) &&
3065 !((rec.chip_mask & IDLE_CHK_E3B0) && is_e3b0))
3066 continue;
3067
3068
3069 switch (rec.macro) {
3070 case 1:
3071
3072 rec.pred_args.val1 = REG_RD(bp, rec.reg1);
3073 DP(BNX2X_MSG_IDLE, "mac1 add %x\n", rec.reg1);
3074 if (rec.bnx2x_predicate(&rec.pred_args)) {
3075 snprintf(message, sizeof(message),
3076 "%s.Value is 0x%x\n", rec.fail_msg,
3077 rec.pred_args.val1);
3078 bnx2x_self_test_log(bp, rec.severity, message);
3079 }
3080 break;
3081 case 2:
3082
3083
3084
3085 for (i = 0; i < rec.loop; i++) {
3086 rec.pred_args.val1 =
3087 REG_RD(bp, rec.reg1 + i * rec.incr);
3088 DP(BNX2X_MSG_IDLE, "mac2 add %x\n", rec.reg1);
3089 if (rec.bnx2x_predicate(&rec.pred_args)) {
3090 snprintf(message, sizeof(message),
3091 "%s. Value is 0x%x in loop %d\n",
3092 rec.fail_msg,
3093 rec.pred_args.val1, i);
3094 bnx2x_self_test_log(bp, rec.severity,
3095 message);
3096 }
3097 }
3098 break;
3099 case 3:
3100
3101 rec.pred_args.val1 = REG_RD(bp, rec.reg1);
3102 rec.pred_args.val2 = REG_RD(bp, rec.reg2);
3103 DP(BNX2X_MSG_IDLE, "mac3 add1 %x add2 %x\n",
3104 rec.reg1, rec.reg2);
3105 if (rec.bnx2x_predicate(&rec.pred_args)) {
3106 snprintf(message, sizeof(message),
3107 "%s. Values are 0x%x 0x%x\n",
3108 rec.fail_msg, rec.pred_args.val1,
3109 rec.pred_args.val2);
3110 bnx2x_self_test_log(bp, rec.severity, message);
3111 }
3112 break;
3113 case 4:
3114
3115 for (i = 0; i < rec.loop; i++) {
3116 rec.pred_args.val1 =
3117 REG_RD(bp, rec.reg1 + i * rec.incr);
3118 rec.pred_args.val2 =
3119 (REG_RD(bp,
3120 rec.reg2 + i * rec.incr)) >> 1;
3121 if (rec.bnx2x_predicate(&rec.pred_args)) {
3122 snprintf(message, sizeof(message),
3123 "%s. Values are 0x%x 0x%x in loop %d\n",
3124 rec.fail_msg,
3125 rec.pred_args.val1,
3126 rec.pred_args.val2, i);
3127 bnx2x_self_test_log(bp, rec.severity,
3128 message);
3129 }
3130 }
3131 break;
3132 case 5:
3133
3134
3135
3136 rec.pred_args.val1 = REG_RD(bp, rec.reg1);
3137 rec.pred_args.val2 = REG_RD(bp, rec.reg2);
3138 DP(BNX2X_MSG_IDLE, "mac3 add1 %x add2 %x add3 %x\n",
3139 rec.reg1, rec.reg2, rec.reg3);
3140 if (REG_RD(bp, rec.reg3) != 0) {
3141 if (rec.bnx2x_predicate(&rec.pred_args)) {
3142 snprintf(message, sizeof(message),
3143 "%s. Values are 0x%x 0x%x\n",
3144 rec.fail_msg,
3145 rec.pred_args.val1,
3146 rec.pred_args.val2);
3147 bnx2x_self_test_log(bp, rec.severity,
3148 message);
3149 }
3150 }
3151 break;
3152 case 6:
3153
3154
3155
3156 bnx2x_idle_chk6(bp, &rec, message);
3157 break;
3158 case 7:
3159
3160 bnx2x_idle_chk7(bp, &rec, message);
3161 break;
3162 default:
3163 DP(BNX2X_MSG_IDLE,
3164 "unknown macro in self test data base. macro %d line %d",
3165 rec.macro, st_ind);
3166 }
3167 }
3168
3169
3170 if (!netif_running(bp->dev))
3171 return idle_chk_errors;
3172
3173
3174 if (idle_chk_errors == 0) {
3175 DP(BNX2X_MSG_IDLE,
3176 "completed successfully (logged %d warnings)\n",
3177 idle_chk_warnings);
3178 } else {
3179 BNX2X_ERR("failed (with %d errors, %d warnings)\n",
3180 idle_chk_errors, idle_chk_warnings);
3181 }
3182 return idle_chk_errors;
3183 }