xref: /openbmc/linux/drivers/net/ethernet/broadcom/bnx2x/bnx2x_self_test.c (revision 4b4193256c8d3bc3a5397b5cd9494c2ad386317d)
1  // SPDX-License-Identifier: GPL-2.0
2  #include <linux/kernel.h>
3  #include <linux/netdevice.h>
4  #include "bnx2x.h"
5  
6  #define NA 0xCD
7  
8  #define IDLE_CHK_E1			0x01
9  #define IDLE_CHK_E1H			0x02
10  #define IDLE_CHK_E2			0x04
11  #define IDLE_CHK_E3A0			0x08
12  #define IDLE_CHK_E3B0			0x10
13  
14  #define IDLE_CHK_ERROR			1
15  #define IDLE_CHK_ERROR_NO_TRAFFIC	2
16  #define IDLE_CHK_WARNING		3
17  
18  #define MAX_FAIL_MSG 256
19  
20  /* statistics and error reporting */
21  static int idle_chk_errors, idle_chk_warnings;
22  
23  /* masks for all chip types */
24  static int is_e1, is_e1h, is_e2, is_e3a0, is_e3b0;
25  
26  /* struct for the argument list for a predicate in the self test databasei */
27  struct st_pred_args {
28  	u32 val1; /* value read from first register */
29  	u32 val2; /* value read from second register, if applicable */
30  	u32 imm1; /* 1st value in predicate condition, left-to-right */
31  	u32 imm2; /* 2nd value in predicate condition, left-to-right */
32  	u32 imm3; /* 3rd value in predicate condition, left-to-right */
33  	u32 imm4; /* 4th value in predicate condition, left-to-right */
34  };
35  
36  /* struct representing self test record - a single test */
37  struct st_record {
38  	u8 chip_mask;
39  	u8 macro;
40  	u32 reg1;
41  	u32 reg2;
42  	u16 loop;
43  	u16 incr;
44  	int (*bnx2x_predicate)(struct st_pred_args *pred_args);
45  	u32 reg3;
46  	u8 severity;
47  	char *fail_msg;
48  	struct st_pred_args pred_args;
49  };
50  
51  /* predicates for self test */
peq(struct st_pred_args * args)52  static int peq(struct st_pred_args *args)
53  {
54  	return (args->val1 == args->imm1);
55  }
56  
pneq(struct st_pred_args * args)57  static int pneq(struct st_pred_args *args)
58  {
59  	return (args->val1 != args->imm1);
60  }
61  
pand_neq(struct st_pred_args * args)62  static int pand_neq(struct st_pred_args *args)
63  {
64  	return ((args->val1 & args->imm1) != args->imm2);
65  }
66  
pand_neq_x2(struct st_pred_args * args)67  static int pand_neq_x2(struct st_pred_args *args)
68  {
69  	return (((args->val1 & args->imm1) != args->imm2) &&
70  		((args->val1 & args->imm3) != args->imm4));
71  }
72  
pneq_err(struct st_pred_args * args)73  static int pneq_err(struct st_pred_args *args)
74  {
75  	return ((args->val1 != args->imm1) && (idle_chk_errors > args->imm2));
76  }
77  
pgt(struct st_pred_args * args)78  static int pgt(struct st_pred_args *args)
79  {
80  	return (args->val1 > args->imm1);
81  }
82  
pneq_r2(struct st_pred_args * args)83  static int pneq_r2(struct st_pred_args *args)
84  {
85  	return (args->val1 != args->val2);
86  }
87  
plt_sub_r2(struct st_pred_args * args)88  static int plt_sub_r2(struct st_pred_args *args)
89  {
90  	return (args->val1 < (args->val2 - args->imm1));
91  }
92  
pne_sub_r2(struct st_pred_args * args)93  static int pne_sub_r2(struct st_pred_args *args)
94  {
95  	return (args->val1 != (args->val2 - args->imm1));
96  }
97  
prsh_and_neq(struct st_pred_args * args)98  static int prsh_and_neq(struct st_pred_args *args)
99  {
100  	return (((args->val1 >> args->imm1) & args->imm2) != args->imm3);
101  }
102  
peq_neq_r2(struct st_pred_args * args)103  static int peq_neq_r2(struct st_pred_args *args)
104  {
105  	return ((args->val1 == args->imm1) && (args->val2 != args->imm2));
106  }
107  
peq_neq_neq_r2(struct st_pred_args * args)108  static int peq_neq_neq_r2(struct st_pred_args *args)
109  {
110  	return ((args->val1 == args->imm1) && (args->val2 != args->imm2) &&
111  		(args->val2 != args->imm3));
112  }
113  
114  /* struct holding the database of self test checks (registers and predicates) */
115  /* lines start from 2 since line 1 is heading in csv */
116  #define ST_DB_LINES 468
117  static struct st_record st_database[ST_DB_LINES] = {
118  /*line 2*/{(0x3), 1, 0x2114,
119  	NA, 1, 0, pand_neq,
120  	NA, IDLE_CHK_ERROR,
121  	"PCIE: ucorr_err_status is not 0",
122  	{NA, NA, 0x0FF010, 0, NA, NA} },
123  
124  /*line 3*/{(0x3), 1, 0x2114,
125  	NA, 1, 0, pand_neq,
126  	NA, IDLE_CHK_WARNING,
127  	"PCIE: ucorr_err_status - Unsupported request error",
128  	{NA, NA, 0x100000, 0, NA, NA} },
129  
130  /*line 4*/{(0x3), 1, 0x2120,
131  	NA, 1, 0, pand_neq_x2,
132  	NA, IDLE_CHK_WARNING,
133  	"PCIE: corr_err_status is not 0x2000",
134  	{NA, NA, 0x31C1, 0x2000, 0x31C1, 0} },
135  
136  /*line 5*/{(0x3), 1, 0x2814,
137  	NA, 1, 0, pand_neq,
138  	NA, IDLE_CHK_ERROR,
139  	"PCIE: attentions register is not 0x40100",
140  	{NA, NA, ~0x40100, 0, NA, NA} },
141  
142  /*line 6*/{(0x2), 1, 0x281c,
143  	NA, 1, 0, pand_neq,
144  	NA, IDLE_CHK_ERROR,
145  	"PCIE: attentions register is not 0x40040100",
146  	{NA, NA, ~0x40040100, 0, NA, NA} },
147  
148  /*line 7*/{(0x2), 1, 0x2820,
149  	NA, 1, 0, pand_neq,
150  	NA, IDLE_CHK_ERROR,
151  	"PCIE: attentions register is not 0x40040100",
152  	{NA, NA, ~0x40040100, 0, NA, NA} },
153  
154  /*line 8*/{(0x3), 1, PXP2_REG_PGL_EXP_ROM2,
155  	NA, 1, 0, pneq,
156  	NA, IDLE_CHK_WARNING,
157  	"PXP2: There are outstanding read requests. Not all completios have arrived for read requests on tags that are marked with 0",
158  	{NA, NA, 0xffffffff, NA, NA, NA} },
159  
160  /*line 9*/{(0x3), 2, 0x212c,
161  	NA, 4, 4, pneq_err,
162  	NA, IDLE_CHK_WARNING,
163  	"PCIE: error packet header is not 0",
164  	{NA, NA, 0, NA, NA, NA} },
165  
166  /*line 10*/{(0x1C), 1, 0x2104,
167  	NA, 1, 0, pand_neq,
168  	NA, IDLE_CHK_ERROR,
169  	"PCIE: ucorr_err_status is not 0",
170  	{NA, NA, 0x0FD010, 0, NA, NA} },
171  
172  /*line 11*/{(0x1C), 1, 0x2104,
173  	NA, 1, 0, pand_neq,
174  	NA, IDLE_CHK_WARNING,
175  	"PCIE: ucorr_err_status - Unsupported request error",
176  	{NA, NA, 0x100000, 0, NA, NA} },
177  
178  /*line 12*/{(0x1C), 1, 0x2104,
179  	NA, 1, 0, pand_neq,
180  	NA, IDLE_CHK_WARNING,
181  	"PCIE: ucorr_err_status - Flow Control Protocol Error",
182  	{NA, NA, 0x2000, 0, NA, NA} },
183  
184  /*line 13*/{(0x1C), 1, 0x2110,
185  	NA, 1, 0, pand_neq_x2,
186  	NA, IDLE_CHK_WARNING,
187  	"PCIE: corr_err_status is not 0x2000",
188  	{NA, NA, 0x31C1, 0x2000, 0x31C1, 0} },
189  
190  /*line 14*/{(0x1C), 1, 0x2814,
191  	NA, 1, 0, pand_neq,
192  	NA, IDLE_CHK_WARNING,
193  	"PCIE: TTX_BRIDGE_FORWARD_ERR - Received master request while BME was 0",
194  	{NA, NA, 0x2000000, 0, NA, NA} },
195  
196  /*line 15*/{(0x1C), 1, 0x2814,
197  	NA, 1, 0, pand_neq,
198  	NA, IDLE_CHK_ERROR,
199  	"PCIE: Func 0 1: attentions register is not 0x2040902",
200  	{NA, NA, ~0x2040902, 0, NA, NA} },
201  
202  /*line 16*/{(0x1C), 1, 0x2854,
203  	NA, 1, 0, pand_neq,
204  	NA, IDLE_CHK_ERROR,
205  	"PCIE: Func 2 3 4: attentions register is not 0x10240902",
206  	{NA, NA, ~0x10240902, 0, NA, NA} },
207  
208  /*line 17*/{(0x1C), 1, 0x285c,
209  	NA, 1, 0, pand_neq,
210  	NA, IDLE_CHK_ERROR,
211  	"PCIE: Func 5 6 7: attentions register is not 0x10240902",
212  	{NA, NA, ~0x10240902, 0, NA, NA} },
213  
214  /*line 18*/{(0x18), 1, 0x3040,
215  	NA, 1, 0, pand_neq,
216  	NA, IDLE_CHK_ERROR,
217  	"PCIE: Overflow in DLP2TLP buffer",
218  	{NA, NA, 0x2, 0, NA, NA} },
219  
220  /*line 19*/{(0x1C), 1, PXP2_REG_PGL_EXP_ROM2,
221  	NA, 1, 0, pneq,
222  	NA, IDLE_CHK_WARNING,
223  	"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",
224  	{NA, NA, 0xffffffff, NA, NA, NA} },
225  
226  /*line 20*/{(0x1C), 2, 0x211c,
227  	NA, 4, 4, pneq_err,
228  	NA, IDLE_CHK_WARNING,
229  	"PCIE: error packet header is not 0",
230  	{NA, NA, 0, NA, NA, NA} },
231  
232  /*line 21*/{(0x1C), 1, PGLUE_B_REG_INCORRECT_RCV_DETAILS,
233  	NA, 1, 0, pneq,
234  	NA, IDLE_CHK_ERROR,
235  	"PGLUE_B: Packet received from PCIe not according to the rules",
236  	{NA, NA, 0, NA, NA, NA} },
237  
238  /*line 22*/{(0x1C), 1, PGLUE_B_REG_WAS_ERROR_VF_31_0,
239  	NA, 1, 0, pneq,
240  	NA, IDLE_CHK_WARNING,
241  	"PGLUE_B: was_error for VFs 0-31 is not 0",
242  	{NA, NA, 0, NA, NA, NA} },
243  
244  /*line 23*/{(0x1C), 1, PGLUE_B_REG_WAS_ERROR_VF_63_32,
245  	NA, 1, 0, pneq,
246  	NA, IDLE_CHK_WARNING,
247  	"PGLUE_B: was_error for VFs 32-63 is not 0",
248  	{NA, NA, 0, NA, NA, NA} },
249  
250  /*line 24*/{(0x1C), 1, PGLUE_B_REG_WAS_ERROR_VF_95_64,
251  	NA, 1, 0, pneq,
252  	NA, IDLE_CHK_WARNING,
253  	"PGLUE_B: was_error for VFs 64-95 is not 0",
254  	{NA, NA, 0, NA, NA, NA} },
255  
256  /*line 25*/{(0x1C), 1, PGLUE_B_REG_WAS_ERROR_VF_127_96,
257  	NA, 1, 0, pneq,
258  	NA, IDLE_CHK_WARNING,
259  	"PGLUE_B: was_error for VFs 96-127 is not 0",
260  	{NA, NA, 0, NA, NA, NA} },
261  
262  /*line 26*/{(0x1C), 1, PGLUE_B_REG_WAS_ERROR_PF_7_0,
263  	NA, 1, 0, pneq,
264  	NA, IDLE_CHK_WARNING,
265  	"PGLUE_B: was_error for PFs 0-7 is not 0",
266  	{NA, NA, 0, NA, NA, NA} },
267  
268  /*line 27*/{(0x1C), 1, PGLUE_B_REG_RX_ERR_DETAILS,
269  	NA, 1, 0, pneq,
270  	NA, IDLE_CHK_WARNING,
271  	"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",
272  	{NA, NA, 0, NA, NA, NA} },
273  
274  /*line 28*/{(0x1C), 1, PGLUE_B_REG_RX_TCPL_ERR_DETAILS,
275  	NA, 1, 0, pneq,
276  	NA, IDLE_CHK_WARNING,
277  	"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",
278  	{NA, NA, 0, NA, NA, NA} },
279  
280  /*line 29*/{(0x1C), 1, PGLUE_B_REG_TX_ERR_WR_ADD_31_0,
281  	NA, 1, 0, pneq,
282  	NA, IDLE_CHK_WARNING,
283  	"PGLUE_B: Error in master write. Address(31:0) is not 0",
284  	{NA, NA, 0, NA, NA, NA} },
285  
286  /*line 30*/{(0x1C), 1, PGLUE_B_REG_TX_ERR_WR_ADD_63_32,
287  	NA, 1, 0, pneq,
288  	NA, IDLE_CHK_WARNING,
289  	"PGLUE_B: Error in master write. Address(63:32) is not 0",
290  	{NA, NA, 0, NA, NA, NA} },
291  
292  /*line 31*/{(0x1C), 1, PGLUE_B_REG_TX_ERR_WR_DETAILS,
293  	NA, 1, 0, pneq,
294  	NA, IDLE_CHK_WARNING,
295  	"PGLUE_B: Error in master write. Error details register is not 0. (4:0) VQID. (23:21) - PFID. (24) - VF_VALID. (30:25) - VFID",
296  	{NA, NA, 0, NA, NA, NA} },
297  
298  /*line 32*/{(0x1C), 1, PGLUE_B_REG_TX_ERR_WR_DETAILS2,
299  	NA, 1, 0, pneq,
300  	NA, IDLE_CHK_WARNING,
301  	"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",
302  	{NA, NA, 0, NA, NA, NA} },
303  
304  /*line 33*/{(0x1C), 1, PGLUE_B_REG_TX_ERR_RD_ADD_31_0,
305  	NA, 1, 0, pneq,
306  	NA, IDLE_CHK_WARNING,
307  	"PGLUE: Error in master read address(31:0) is not 0",
308  	{NA, NA, 0, NA, NA, NA} },
309  
310  /*line 34*/{(0x1C), 1, PGLUE_B_REG_TX_ERR_RD_ADD_63_32,
311  	NA, 1, 0, pneq,
312  	NA, IDLE_CHK_WARNING,
313  	"PGLUE_B: Error in master read address(63:32) is not 0",
314  	{NA, NA, 0, NA, NA, NA} },
315  
316  /*line 35*/{(0x1C), 1, PGLUE_B_REG_TX_ERR_RD_DETAILS,
317  	NA, 1, 0, pneq,
318  	NA, IDLE_CHK_WARNING,
319  	"PGLUE_B: Error in master read Error details register is not 0. (4:0) VQID. (23:21) - PFID. (24) - VF_VALID. (30:25) - VFID",
320  	{NA, NA, 0, NA, NA, NA} },
321  
322  /*line 36*/{(0x1C), 1, PGLUE_B_REG_TX_ERR_RD_DETAILS2,
323  	NA, 1, 0, pneq,
324  	NA, IDLE_CHK_WARNING,
325  	"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",
326  	{NA, NA, 0, NA, NA, NA} },
327  
328  /*line 37*/{(0x1C), 1, PGLUE_B_REG_VF_LENGTH_VIOLATION_DETAILS,
329  	NA, 1, 0, pneq,
330  	NA, IDLE_CHK_WARNING,
331  	"PGLUE_B: Target VF length violation access",
332  	{NA, NA, 0, NA, NA, NA} },
333  
334  /*line 38*/{(0x1C), 1, PGLUE_B_REG_VF_GRC_SPACE_VIOLATION_DETAILS,
335  	NA, 1, 0, pneq,
336  	NA, IDLE_CHK_WARNING,
337  	"PGLUE_B: Target VF GRC space access failed permission check",
338  	{NA, NA, 0, NA, NA, NA} },
339  
340  /*line 39*/{(0x1C), 1, PGLUE_B_REG_TAGS_63_32,
341  	NA, 1, 0, pneq,
342  	NA, IDLE_CHK_WARNING,
343  	"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",
344  	{NA, NA, 0xffffffff, NA, NA, NA} },
345  
346  /*line 40*/{(0x1C), 3, PXP_REG_HST_VF_DISABLED_ERROR_VALID,
347  	PXP_REG_HST_VF_DISABLED_ERROR_DATA, 1, 0, pneq,
348  	NA, IDLE_CHK_WARNING,
349  	"PXP: Access to disabled VF took place",
350  	{NA, NA, 0, NA, NA, NA} },
351  
352  /*line 41*/{(0x1C), 1, PXP_REG_HST_PER_VIOLATION_VALID,
353  	NA, 1, 0, pneq,
354  	NA, IDLE_CHK_WARNING,
355  	"PXP: Zone A permission violation occurred",
356  	{NA, NA, 0, NA, NA, NA} },
357  
358  /*line 42*/{(0x1C), 1, PXP_REG_HST_INCORRECT_ACCESS_VALID,
359  	NA, 1, 0, pneq,
360  	NA, IDLE_CHK_WARNING,
361  	"PXP: Incorrect transaction took place",
362  	{NA, NA, 0, NA, NA, NA} },
363  
364  /*line 43*/{(0x1C), 1, PXP2_REG_RD_CPL_ERR_DETAILS,
365  	NA, 1, 0, pneq,
366  	NA, IDLE_CHK_WARNING,
367  	"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",
368  	{NA, NA, 0, NA, NA, NA} },
369  
370  /*line 44*/{(0x1C), 1, PXP2_REG_RD_CPL_ERR_DETAILS2,
371  	NA, 1, 0, pneq,
372  	NA, IDLE_CHK_WARNING,
373  	"PXP2: Completion received with error. Error details 2nd register is not 0. (4:0) - VQ ID. (8:5) - client ID. (9) - valid bit",
374  	{NA, NA, 0, NA, NA, NA} },
375  
376  /*line 45*/{(0x1F), 1, PXP2_REG_RQ_VQ0_ENTRY_CNT,
377  	NA, 1, 0, pneq,
378  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
379  	"PXP2: VQ0 is not empty",
380  	{NA, NA, 0, NA, NA, NA} },
381  
382  /*line 46*/{(0x1F), 1, PXP2_REG_RQ_VQ1_ENTRY_CNT,
383  	NA, 1, 0, pneq,
384  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
385  	"PXP2: VQ1 is not empty",
386  	{NA, NA, 0, NA, NA, NA} },
387  
388  /*line 47*/{(0x1F), 1, PXP2_REG_RQ_VQ2_ENTRY_CNT,
389  	NA, 1, 0, pneq,
390  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
391  	"PXP2: VQ2 is not empty",
392  	{NA, NA, 0, NA, NA, NA} },
393  
394  /*line 48*/{(0x1F), 1, PXP2_REG_RQ_VQ3_ENTRY_CNT,
395  	NA, 1, 0, pgt,
396  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
397  	"PXP2: VQ3 is not empty",
398  	{NA, NA, 2, NA, NA, NA} },
399  
400  /*line 49*/{(0x1F), 1, PXP2_REG_RQ_VQ4_ENTRY_CNT,
401  	NA, 1, 0, pneq,
402  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
403  	"PXP2: VQ4 is not empty",
404  	{NA, NA, 0, NA, NA, NA} },
405  
406  /*line 50*/{(0x1F), 1, PXP2_REG_RQ_VQ5_ENTRY_CNT,
407  	NA, 1, 0, pneq,
408  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
409  	"PXP2: VQ5 is not empty",
410  	{NA, NA, 0, NA, NA, NA} },
411  
412  /*line 51*/{(0x1F), 1, PXP2_REG_RQ_VQ6_ENTRY_CNT,
413  	NA, 1, 0, pneq,
414  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
415  	"PXP2: VQ6 is not empty",
416  	{NA, NA, 0, NA, NA, NA} },
417  
418  /*line 52*/{(0x1F), 1, PXP2_REG_RQ_VQ7_ENTRY_CNT,
419  	NA, 1, 0, pneq,
420  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
421  	"PXP2: VQ7 is not empty",
422  	{NA, NA, 0, NA, NA, NA} },
423  
424  /*line 53*/{(0x1F), 1, PXP2_REG_RQ_VQ8_ENTRY_CNT,
425  	NA, 1, 0, pneq,
426  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
427  	"PXP2: VQ8 is not empty",
428  	{NA, NA, 0, NA, NA, NA} },
429  
430  /*line 54*/{(0x1F), 1, PXP2_REG_RQ_VQ9_ENTRY_CNT,
431  	NA, 1, 0, pneq,
432  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
433  	"PXP2: VQ9 is not empty",
434  	{NA, NA, 0, NA, NA, NA} },
435  
436  /*line 55*/{(0x1F), 1, PXP2_REG_RQ_VQ10_ENTRY_CNT,
437  	NA, 1, 0, pneq,
438  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
439  	"PXP2: VQ10 is not empty",
440  	{NA, NA, 0, NA, NA, NA} },
441  
442  /*line 56*/{(0x1F), 1, PXP2_REG_RQ_VQ11_ENTRY_CNT,
443  	NA, 1, 0, pneq,
444  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
445  	"PXP2: VQ11 is not empty",
446  	{NA, NA, 0, NA, NA, NA} },
447  
448  /*line 57*/{(0x1F), 1, PXP2_REG_RQ_VQ12_ENTRY_CNT,
449  	NA, 1, 0, pneq,
450  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
451  	"PXP2: VQ12 is not empty",
452  	{NA, NA, 0, NA, NA, NA} },
453  
454  /*line 58*/{(0x1F), 1, PXP2_REG_RQ_VQ13_ENTRY_CNT,
455  	NA, 1, 0, pneq,
456  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
457  	"PXP2: VQ13 is not empty",
458  	{NA, NA, 0, NA, NA, NA} },
459  
460  /*line 59*/{(0x1F), 1, PXP2_REG_RQ_VQ14_ENTRY_CNT,
461  	NA, 1, 0, pneq,
462  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
463  	"PXP2: VQ14 is not empty",
464  	{NA, NA, 0, NA, NA, NA} },
465  
466  /*line 60*/{(0x1F), 1, PXP2_REG_RQ_VQ15_ENTRY_CNT,
467  	NA, 1, 0, pneq,
468  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
469  	"PXP2: VQ15 is not empty",
470  	{NA, NA, 0, NA, NA, NA} },
471  
472  /*line 61*/{(0x1F), 1, PXP2_REG_RQ_VQ16_ENTRY_CNT,
473  	NA, 1, 0, pneq,
474  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
475  	"PXP2: VQ16 is not empty",
476  	{NA, NA, 0, NA, NA, NA} },
477  
478  /*line 62*/{(0x1F), 1, PXP2_REG_RQ_VQ17_ENTRY_CNT,
479  	NA, 1, 0, pneq,
480  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
481  	"PXP2: VQ17 is not empty",
482  	{NA, NA, 0, NA, NA, NA} },
483  
484  /*line 63*/{(0x1F), 1, PXP2_REG_RQ_VQ18_ENTRY_CNT,
485  	NA, 1, 0, pneq,
486  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
487  	"PXP2: VQ18 is not empty",
488  	{NA, NA, 0, NA, NA, NA} },
489  
490  /*line 64*/{(0x1F), 1, PXP2_REG_RQ_VQ19_ENTRY_CNT,
491  	NA, 1, 0, pneq,
492  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
493  	"PXP2: VQ19 is not empty",
494  	{NA, NA, 0, NA, NA, NA} },
495  
496  /*line 65*/{(0x1F), 1, PXP2_REG_RQ_VQ20_ENTRY_CNT,
497  	NA, 1, 0, pneq,
498  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
499  	"PXP2: VQ20 is not empty",
500  	{NA, NA, 0, NA, NA, NA} },
501  
502  /*line 66*/{(0x1F), 1, PXP2_REG_RQ_VQ21_ENTRY_CNT,
503  	NA, 1, 0, pneq,
504  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
505  	"PXP2: VQ21 is not empty",
506  	{NA, NA, 0, NA, NA, NA} },
507  
508  /*line 67*/{(0x1F), 1, PXP2_REG_RQ_VQ22_ENTRY_CNT,
509  	NA, 1, 0, pneq,
510  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
511  	"PXP2: VQ22 is not empty",
512  	{NA, NA, 0, NA, NA, NA} },
513  
514  /*line 68*/{(0x1F), 1, PXP2_REG_RQ_VQ23_ENTRY_CNT,
515  	NA, 1, 0, pneq,
516  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
517  	"PXP2: VQ23 is not empty",
518  	{NA, NA, 0, NA, NA, NA} },
519  
520  /*line 69*/{(0x1F), 1, PXP2_REG_RQ_VQ24_ENTRY_CNT,
521  	NA, 1, 0, pneq,
522  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
523  	"PXP2: VQ24 is not empty",
524  	{NA, NA, 0, NA, NA, NA} },
525  
526  /*line 70*/{(0x1F), 1, PXP2_REG_RQ_VQ25_ENTRY_CNT,
527  	NA, 1, 0, pneq,
528  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
529  	"PXP2: VQ25 is not empty",
530  	{NA, NA, 0, NA, NA, NA} },
531  
532  /*line 71*/{(0x1F), 1, PXP2_REG_RQ_VQ26_ENTRY_CNT,
533  	NA, 1, 0, pneq,
534  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
535  	"PXP2: VQ26 is not empty",
536  	{NA, NA, 0, NA, NA, NA} },
537  
538  /*line 72*/{(0x1F), 1, PXP2_REG_RQ_VQ27_ENTRY_CNT,
539  	NA, 1, 0, pneq,
540  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
541  	"PXP2: VQ27 is not empty",
542  	{NA, NA, 0, NA, NA, NA} },
543  
544  /*line 73*/{(0x1F), 1, PXP2_REG_RQ_VQ28_ENTRY_CNT,
545  	NA, 1, 0, pneq,
546  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
547  	"PXP2: VQ28 is not empty",
548  	{NA, NA, 0, NA, NA, NA} },
549  
550  /*line 74*/{(0x1F), 1, PXP2_REG_RQ_VQ29_ENTRY_CNT,
551  	NA, 1, 0, pneq,
552  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
553  	"PXP2: VQ29 is not empty",
554  	{NA, NA, 0, NA, NA, NA} },
555  
556  /*line 75*/{(0x1F), 1, PXP2_REG_RQ_VQ30_ENTRY_CNT,
557  	NA, 1, 0, pneq,
558  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
559  	"PXP2: VQ30 is not empty",
560  	{NA, NA, 0, NA, NA, NA} },
561  
562  /*line 76*/{(0x1F), 1, PXP2_REG_RQ_VQ31_ENTRY_CNT,
563  	NA, 1, 0, pneq,
564  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
565  	"PXP2: VQ31 is not empty",
566  	{NA, NA, 0, NA, NA, NA} },
567  
568  /*line 77*/{(0x1F), 1, PXP2_REG_RQ_UFIFO_NUM_OF_ENTRY,
569  	NA, 1, 0, pneq,
570  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
571  	"PXP2: rq_ufifo_num_of_entry is not 0",
572  	{NA, NA, 0, NA, NA, NA} },
573  
574  /*line 78*/{(0x1F), 1, PXP2_REG_RQ_RBC_DONE,
575  	NA, 1, 0, pneq,
576  	NA, IDLE_CHK_ERROR,
577  	"PXP2: rq_rbc_done is not 1",
578  	{NA, NA, 1, NA, NA, NA} },
579  
580  /*line 79*/{(0x1F), 1, PXP2_REG_RQ_CFG_DONE,
581  	NA, 1, 0, pneq,
582  	NA, IDLE_CHK_ERROR,
583  	"PXP2: rq_cfg_done is not 1",
584  	{NA, NA, 1, NA, NA, NA} },
585  
586  /*line 80*/{(0x3), 1, PXP2_REG_PSWRQ_BW_CREDIT,
587  	NA, 1, 0, pneq,
588  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
589  	"PXP2: rq_read_credit and rq_write_credit are not 3",
590  	{NA, NA, 0x1B, NA, NA, NA} },
591  
592  /*line 81*/{(0x1F), 1, PXP2_REG_RD_START_INIT,
593  	NA, 1, 0, pneq,
594  	NA, IDLE_CHK_ERROR,
595  	"PXP2: rd_start_init is not 1",
596  	{NA, NA, 1, NA, NA, NA} },
597  
598  /*line 82*/{(0x1F), 1, PXP2_REG_RD_INIT_DONE,
599  	NA, 1, 0, pneq,
600  	NA, IDLE_CHK_ERROR,
601  	"PXP2: rd_init_done is not 1",
602  	{NA, NA, 1, NA, NA, NA} },
603  
604  /*line 83*/{(0x1F), 3, PXP2_REG_RD_SR_CNT,
605  	PXP2_REG_RD_SR_NUM_CFG, 1, 0, pne_sub_r2,
606  	NA, IDLE_CHK_WARNING,
607  	"PXP2: rd_sr_cnt is not equal to rd_sr_num_cfg",
608  	{NA, NA, 1, NA, NA, NA} },
609  
610  /*line 84*/{(0x1F), 3, PXP2_REG_RD_BLK_CNT,
611  	PXP2_REG_RD_BLK_NUM_CFG, 1, 0, pneq_r2,
612  	NA, IDLE_CHK_WARNING,
613  	"PXP2: rd_blk_cnt is not equal to rd_blk_num_cfg",
614  	{NA, NA, NA, NA, NA, NA} },
615  
616  /*line 85*/{(0x1F), 3, PXP2_REG_RD_SR_CNT,
617  	PXP2_REG_RD_SR_NUM_CFG, 1, 0, plt_sub_r2,
618  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
619  	"PXP2: There are more than two unused SRs",
620  	{NA, NA, 3, NA, NA, NA} },
621  
622  /*line 86*/{(0x1F), 3, PXP2_REG_RD_BLK_CNT,
623  	PXP2_REG_RD_BLK_NUM_CFG, 1, 0, plt_sub_r2,
624  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
625  	"PXP2: There are more than two unused blocks",
626  	{NA, NA, 2, NA, NA, NA} },
627  
628  /*line 87*/{(0x1F), 1, PXP2_REG_RD_PORT_IS_IDLE_0,
629  	NA, 1, 0, pneq,
630  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
631  	"PXP2: P0 All delivery ports are not idle",
632  	{NA, NA, 1, NA, NA, NA} },
633  
634  /*line 88*/{(0x1F), 1, PXP2_REG_RD_PORT_IS_IDLE_1,
635  	NA, 1, 0, pneq,
636  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
637  	"PXP2: P1 All delivery ports are not idle",
638  	{NA, NA, 1, NA, NA, NA} },
639  
640  /*line 89*/{(0x1F), 2, PXP2_REG_RD_ALMOST_FULL_0,
641  	NA, 11, 4, pneq,
642  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
643  	"PXP2: rd_almost_full is not 0",
644  	{NA, NA, 0, NA, NA, NA} },
645  
646  /*line 90*/{(0x1F), 1, PXP2_REG_RD_DISABLE_INPUTS,
647  	NA, 1, 0, pneq,
648  	NA, IDLE_CHK_ERROR,
649  	"PXP2: PSWRD inputs are disabled",
650  	{NA, NA, 0, NA, NA, NA} },
651  
652  /*line 91*/{(0x1F), 1, PXP2_REG_HST_HEADER_FIFO_STATUS,
653  	NA, 1, 0, pneq,
654  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
655  	"PXP2: HST header FIFO status is not 0",
656  	{NA, NA, 0, NA, NA, NA} },
657  
658  /*line 92*/{(0x1F), 1, PXP2_REG_HST_DATA_FIFO_STATUS,
659  	NA, 1, 0, pneq,
660  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
661  	"PXP2: HST data FIFO status is not 0",
662  	{NA, NA, 0, NA, NA, NA} },
663  
664  /*line 93*/{(0x3), 1, PXP2_REG_PGL_WRITE_BLOCKED,
665  	NA, 1, 0, pneq,
666  	NA, IDLE_CHK_ERROR,
667  	"PXP2: pgl_write_blocked is not 0",
668  	{NA, NA, 0, NA, NA, NA} },
669  
670  /*line 94*/{(0x3), 1, PXP2_REG_PGL_READ_BLOCKED,
671  	NA, 1, 0, pneq,
672  	NA, IDLE_CHK_ERROR,
673  	"PXP2: pgl_read_blocked is not 0",
674  	{NA, NA, 0, NA, NA, NA} },
675  
676  /*line 95*/{(0x1C), 1, PXP2_REG_PGL_WRITE_BLOCKED,
677  	NA, 1, 0, pneq,
678  	NA, IDLE_CHK_WARNING,
679  	"PXP2: pgl_write_blocked is not 0",
680  	{NA, NA, 0, NA, NA, NA} },
681  
682  /*line 96*/{(0x1C), 1, PXP2_REG_PGL_READ_BLOCKED,
683  	NA, 1, 0, pneq,
684  	NA, IDLE_CHK_WARNING,
685  	"PXP2: pgl_read_blocked is not 0",
686  	{NA, NA, 0, NA, NA, NA} },
687  
688  /*line 97*/{(0x1F), 1, PXP2_REG_PGL_TXW_CDTS,
689  	NA, 1, 0, prsh_and_neq,
690  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
691  	"PXP2: There is data which is ready",
692  	{NA, NA, 17, 1, 0, NA} },
693  
694  /*line 98*/{(0x1F), 1, PXP_REG_HST_ARB_IS_IDLE,
695  	NA, 1, 0, pneq,
696  	NA, IDLE_CHK_WARNING,
697  	"PXP: HST arbiter is not idle",
698  	{NA, NA, 1, NA, NA, NA} },
699  
700  /*line 99*/{(0x1F), 1, PXP_REG_HST_CLIENTS_WAITING_TO_ARB,
701  	NA, 1, 0, pneq,
702  	NA, IDLE_CHK_WARNING,
703  	"PXP: HST one of the clients is waiting for delivery",
704  	{NA, NA, 0, NA, NA, NA} },
705  
706  /*line 100*/{(0x1E), 1, PXP_REG_HST_DISCARD_INTERNAL_WRITES_STATUS,
707  	NA, 1, 0, pneq,
708  	NA, IDLE_CHK_WARNING,
709  	"PXP: HST Close the gates: Discarding internal writes",
710  	{NA, NA, 0, NA, NA, NA} },
711  
712  /*line 101*/{(0x1E), 1, PXP_REG_HST_DISCARD_DOORBELLS_STATUS,
713  	NA, 1, 0, pneq,
714  	NA, IDLE_CHK_WARNING,
715  	"PXP: HST Close the gates: Discarding doorbells",
716  	{NA, NA, 0, NA, NA, NA} },
717  
718  /*line 102*/{(0x1C), 1, PXP2_REG_RQ_GARB,
719  	NA, 1, 0, pand_neq,
720  	NA, IDLE_CHK_WARNING,
721  	"PXP2: PSWRQ Close the gates is asserted. Check AEU AFTER_INVERT registers for parity errors",
722  	{NA, NA, 0x1000, 0, NA, NA} },
723  
724  /*line 103*/{(0x1F), 1, DMAE_REG_GO_C0,
725  	NA, 1, 0, pneq,
726  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
727  	"DMAE: command 0 go is not 0",
728  	{NA, NA, 0, NA, NA, NA} },
729  
730  /*line 104*/{(0x1F), 1, DMAE_REG_GO_C1,
731  	NA, 1, 0, pneq,
732  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
733  	"DMAE: command 1 go is not 0",
734  	{NA, NA, 0, NA, NA, NA} },
735  
736  /*line 105*/{(0x1F), 1, DMAE_REG_GO_C2,
737  	NA, 1, 0, pneq,
738  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
739  	"DMAE: command 2 go is not 0",
740  	{NA, NA, 0, NA, NA, NA} },
741  
742  /*line 106*/{(0x1F), 1, DMAE_REG_GO_C3,
743  	NA, 1, 0, pneq,
744  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
745  	"DMAE: command 3 go is not 0",
746  	{NA, NA, 0, NA, NA, NA} },
747  
748  /*line 107*/{(0x1F), 1, DMAE_REG_GO_C4,
749  	NA, 1, 0, pneq,
750  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
751  	"DMAE: command 4 go is not 0",
752  	{NA, NA, 0, NA, NA, NA} },
753  
754  /*line 108*/{(0x1F), 1, DMAE_REG_GO_C5,
755  	NA, 1, 0, pneq,
756  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
757  	"DMAE: command 5 go is not 0",
758  	{NA, NA, 0, NA, NA, NA} },
759  
760  /*line 109*/{(0x1F), 1, DMAE_REG_GO_C6,
761  	NA, 1, 0, pneq,
762  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
763  	"DMAE: command 6 go is not 0",
764  	{NA, NA, 0, NA, NA, NA} },
765  
766  /*line 110*/{(0x1F), 1, DMAE_REG_GO_C7,
767  	NA, 1, 0, pneq,
768  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
769  	"DMAE: command 7 go is not 0",
770  	{NA, NA, 0, NA, NA, NA} },
771  
772  /*line 111*/{(0x1F), 1, DMAE_REG_GO_C8,
773  	NA, 1, 0, pneq,
774  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
775  	"DMAE: command 8 go is not 0",
776  	{NA, NA, 0, NA, NA, NA} },
777  
778  /*line 112*/{(0x1F), 1, DMAE_REG_GO_C9,
779  	NA, 1, 0, pneq,
780  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
781  	"DMAE: command 9 go is not 0",
782  	{NA, NA, 0, NA, NA, NA} },
783  
784  /*line 113*/{(0x1F), 1, DMAE_REG_GO_C10,
785  	NA, 1, 0, pneq,
786  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
787  	"DMAE: command 10 go is not 0",
788  	{NA, NA, 0, NA, NA, NA} },
789  
790  /*line 114*/{(0x1F), 1, DMAE_REG_GO_C11,
791  	NA, 1, 0, pneq,
792  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
793  	"DMAE: command 11 go is not 0",
794  	{NA, NA, 0, NA, NA, NA} },
795  
796  /*line 115*/{(0x1F), 1, DMAE_REG_GO_C12,
797  	NA, 1, 0, pneq,
798  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
799  	"DMAE: command 12 go is not 0",
800  	{NA, NA, 0, NA, NA, NA} },
801  
802  /*line 116*/{(0x1F), 1, DMAE_REG_GO_C13,
803  	NA, 1, 0, pneq,
804  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
805  	"DMAE: command 13 go is not 0",
806  	{NA, NA, 0, NA, NA, NA} },
807  
808  /*line 117*/{(0x1F), 1, DMAE_REG_GO_C14,
809  	NA, 1, 0, pneq,
810  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
811  	"DMAE: command 14 go is not 0",
812  	{NA, NA, 0, NA, NA, NA} },
813  
814  /*line 118*/{(0x1F), 1, DMAE_REG_GO_C15,
815  	NA, 1, 0, pneq,
816  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
817  	"DMAE: command 15 go is not 0",
818  	{NA, NA, 0, NA, NA, NA} },
819  
820  /*line 119*/{(0x1F), 1, CFC_REG_ERROR_VECTOR,
821  	NA, 1, 0, pneq,
822  	NA, IDLE_CHK_ERROR,
823  	"CFC: error vector is not 0",
824  	{NA, NA, 0, NA, NA, NA} },
825  
826  /*line 120*/{(0x1F), 1, CFC_REG_NUM_LCIDS_ARRIVING,
827  	NA, 1, 0, pneq,
828  	NA, IDLE_CHK_ERROR,
829  	"CFC: number of arriving LCIDs is not 0",
830  	{NA, NA, 0, NA, NA, NA} },
831  
832  /*line 121*/{(0x1F), 1, CFC_REG_NUM_LCIDS_ALLOC,
833  	NA, 1, 0, pneq,
834  	NA, IDLE_CHK_ERROR,
835  	"CFC: number of alloc LCIDs is not 0",
836  	{NA, NA, 0, NA, NA, NA} },
837  
838  /*line 122*/{(0x1F), 1, CFC_REG_NUM_LCIDS_LEAVING,
839  	NA, 1, 0, pneq,
840  	NA, IDLE_CHK_ERROR,
841  	"CFC: number of leaving LCIDs is not 0",
842  	{NA, NA, 0, NA, NA, NA} },
843  
844  /*line 123*/{(0x1F), 7, CFC_REG_INFO_RAM,
845  	CFC_REG_CID_CAM, (CFC_REG_INFO_RAM_SIZE >> 4), 16, peq_neq_neq_r2,
846  	CFC_REG_ACTIVITY_COUNTER, IDLE_CHK_ERROR_NO_TRAFFIC,
847  	"CFC: AC is neither 0 nor 2 on connType 0 (ETH)",
848  	{NA, NA, 0, 0, 2, NA} },
849  
850  /*line 124*/{(0x1F), 7, CFC_REG_INFO_RAM,
851  	CFC_REG_CID_CAM, (CFC_REG_INFO_RAM_SIZE >> 4), 16, peq_neq_r2,
852  	CFC_REG_ACTIVITY_COUNTER, IDLE_CHK_ERROR_NO_TRAFFIC,
853  	"CFC: AC is not 0 on connType 1 (TOE)",
854  	{NA, NA, 1, 0, NA, NA} },
855  
856  /*line 125*/{(0x1F), 7, CFC_REG_INFO_RAM,
857  	CFC_REG_CID_CAM, (CFC_REG_INFO_RAM_SIZE >> 4), 16, peq_neq_r2,
858  	CFC_REG_ACTIVITY_COUNTER, IDLE_CHK_ERROR_NO_TRAFFIC,
859  	"CFC: AC is not 0 on connType 3 (iSCSI)",
860  	{NA, NA, 3, 0, NA, NA} },
861  
862  /*line 126*/{(0x1F), 7, CFC_REG_INFO_RAM,
863  	CFC_REG_CID_CAM, (CFC_REG_INFO_RAM_SIZE >> 4), 16, peq_neq_r2,
864  	CFC_REG_ACTIVITY_COUNTER, IDLE_CHK_ERROR_NO_TRAFFIC,
865  	"CFC: AC is not 0 on connType 4 (FCoE)",
866  	{NA, NA, 4, 0, NA, NA} },
867  
868  /*line 127*/{(0x1F), 2, QM_REG_QTASKCTR_0,
869  	NA, 64, 4, pneq,
870  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
871  	"QM: Queue is not empty",
872  	{NA, NA, 0, NA, NA, NA} },
873  
874  /*line 128*/{(0xF), 3, QM_REG_VOQCREDIT_0,
875  	QM_REG_VOQINITCREDIT_0, 1, 0, pneq_r2,
876  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
877  	"QM: VOQ_0, VOQ credit is not equal to initial credit",
878  	{NA, NA, NA, NA, NA, NA} },
879  
880  /*line 129*/{(0xF), 3, QM_REG_VOQCREDIT_1,
881  	QM_REG_VOQINITCREDIT_1, 1, 0, pneq_r2,
882  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
883  	"QM: VOQ_1, VOQ credit is not equal to initial credit",
884  	{NA, NA, NA, NA, NA, NA} },
885  
886  /*line 130*/{(0xF), 3, QM_REG_VOQCREDIT_4,
887  	QM_REG_VOQINITCREDIT_4, 1, 0, pneq_r2,
888  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
889  	"QM: VOQ_4, VOQ credit is not equal to initial credit",
890  	{NA, NA, NA, NA, NA, NA} },
891  
892  /*line 131*/{(0x3), 3, QM_REG_PORT0BYTECRD,
893  	QM_REG_BYTECRDINITVAL, 1, 0, pneq_r2,
894  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
895  	"QM: P0 Byte credit is not equal to initial credit",
896  	{NA, NA, NA, NA, NA, NA} },
897  
898  /*line 132*/{(0x3), 3, QM_REG_PORT1BYTECRD,
899  	QM_REG_BYTECRDINITVAL, 1, 0, pneq_r2,
900  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
901  	"QM: P1 Byte credit is not equal to initial credit",
902  	{NA, NA, NA, NA, NA, NA} },
903  
904  /*line 133*/{(0x1F), 1, CCM_REG_CAM_OCCUP,
905  	NA, 1, 0, pneq,
906  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
907  	"CCM: XX protection CAM is not empty",
908  	{NA, NA, 0, NA, NA, NA} },
909  
910  /*line 134*/{(0x1F), 1, TCM_REG_CAM_OCCUP,
911  	NA, 1, 0, pneq,
912  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
913  	"TCM: XX protection CAM is not empty",
914  	{NA, NA, 0, NA, NA, NA} },
915  
916  /*line 135*/{(0x1F), 1, UCM_REG_CAM_OCCUP,
917  	NA, 1, 0, pneq,
918  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
919  	"UCM: XX protection CAM is not empty",
920  	{NA, NA, 0, NA, NA, NA} },
921  
922  /*line 136*/{(0x1F), 1, XCM_REG_CAM_OCCUP,
923  	NA, 1, 0, pneq,
924  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
925  	"XCM: XX protection CAM is not empty",
926  	{NA, NA, 0, NA, NA, NA} },
927  
928  /*line 137*/{(0x1F), 1, BRB1_REG_NUM_OF_FULL_BLOCKS,
929  	NA, 1, 0, pneq,
930  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
931  	"BRB1: BRB is not empty",
932  	{NA, NA, 0, NA, NA, NA} },
933  
934  /*line 138*/{(0x1F), 1, CSEM_REG_SLEEP_THREADS_VALID,
935  	NA, 1, 0, pneq,
936  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
937  	"CSEM: There are sleeping threads",
938  	{NA, NA, 0, NA, NA, NA} },
939  
940  /*line 139*/{(0x1F), 1, TSEM_REG_SLEEP_THREADS_VALID,
941  	NA, 1, 0, pneq,
942  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
943  	"TSEM: There are sleeping threads",
944  	{NA, NA, 0, NA, NA, NA} },
945  
946  /*line 140*/{(0x1F), 1, USEM_REG_SLEEP_THREADS_VALID,
947  	NA, 1, 0, pneq,
948  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
949  	"USEM: There are sleeping threads",
950  	{NA, NA, 0, NA, NA, NA} },
951  
952  /*line 141*/{(0x1F), 1, XSEM_REG_SLEEP_THREADS_VALID,
953  	NA, 1, 0, pneq,
954  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
955  	"XSEM: There are sleeping threads",
956  	{NA, NA, 0, NA, NA, NA} },
957  
958  /*line 142*/{(0x1F), 1, CSEM_REG_SLOW_EXT_STORE_EMPTY,
959  	NA, 1, 0, pneq,
960  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
961  	"CSEM: External store FIFO is not empty",
962  	{NA, NA, 1, NA, NA, NA} },
963  
964  /*line 143*/{(0x1F), 1, TSEM_REG_SLOW_EXT_STORE_EMPTY,
965  	NA, 1, 0, pneq,
966  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
967  	"TSEM: External store FIFO is not empty",
968  	{NA, NA, 1, NA, NA, NA} },
969  
970  /*line 144*/{(0x1F), 1, USEM_REG_SLOW_EXT_STORE_EMPTY,
971  	NA, 1, 0, pneq,
972  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
973  	"USEM: External store FIFO is not empty",
974  	{NA, NA, 1, NA, NA, NA} },
975  
976  /*line 145*/{(0x1F), 1, XSEM_REG_SLOW_EXT_STORE_EMPTY,
977  	NA, 1, 0, pneq,
978  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
979  	"XSEM: External store FIFO is not empty",
980  	{NA, NA, 1, NA, NA, NA} },
981  
982  /*line 146*/{(0x1F), 1, CSDM_REG_SYNC_PARSER_EMPTY,
983  	NA, 1, 0, pneq,
984  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
985  	"CSDM: Parser serial FIFO is not empty",
986  	{NA, NA, 1, NA, NA, NA} },
987  
988  /*line 147*/{(0x1F), 1, TSDM_REG_SYNC_PARSER_EMPTY,
989  	NA, 1, 0, pneq,
990  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
991  	"TSDM: Parser serial FIFO is not empty",
992  	{NA, NA, 1, NA, NA, NA} },
993  
994  /*line 148*/{(0x1F), 1, USDM_REG_SYNC_PARSER_EMPTY,
995  	NA, 1, 0, pneq,
996  	NA, IDLE_CHK_ERROR_NO_TRAFFIC,
997  	"USDM: Parser serial FIFO is not empty",
998  	{NA, NA, 1, NA, NA, NA} },
999  
1000  /*line 149*/{(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  /*line 150*/{(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  /*line 151*/{(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  /*line 152*/{(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  /*line 153*/{(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  /*line 154*/{(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  /*line 155*/{(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  /*line 156*/{(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  /*line 157*/{(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  /*line 158*/{(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  /*line 159*/{(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  /*line 160*/{(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  /*line 161*/{(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  /*line 162*/{(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  /*line 163*/{(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  /*line 164*/{(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  /*line 165*/{(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  /*line 166*/{(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  /*line 167*/{(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  /*line 168*/{(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  /*line 169*/{(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  /*line 170*/{(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  /*line 171*/{(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  /*line 172*/{(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  /*line 173*/{(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  /*line 174*/{(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  /*line 175*/{(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  /*line 176*/{(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  /*line 177*/{(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  /*line 178*/{(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  /*line 179*/{(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  /*line 180*/{(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  /*line 181*/{(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  /*line 182*/{(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  /*line 183*/{(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  /*line 184*/{(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  /*line 185*/{(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  /*line 186*/{(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  /*line 187*/{(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  /*line 188*/{(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  /*line 189*/{(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  /*line 190*/{(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  /*line 191*/{(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  /*line 192*/{(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  /*line 193*/{(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  /*line 194*/{(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  /*line 195*/{(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  /*line 196*/{(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  /*line 197*/{(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  /*line 198*/{(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  /*line 199*/{(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  /*line 200*/{(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  /*line 201*/{(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  /*line 202*/{(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  /*line 203*/{(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  /*line 204*/{(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  /*line 205*/{(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  /*line 206*/{(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  /*line 207*/{(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  /*line 208*/{(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  /*line 209*/{(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  /*line 210*/{(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  /*line 211*/{(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  /*line 212*/{(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  /*line 213*/{(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  /*line 214*/{(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  /*line 215*/{(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  /*line 216*/{(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  /*line 217*/{(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  /*line 218*/{(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  /*line 219*/{(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  /*line 220*/{(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  /*line 221*/{(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  /*line 222*/{(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  /*line 223*/{(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  /*line 224*/{(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  /*line 225*/{(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  /*line 226*/{(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  /*line 227*/{(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  /*line 228*/{(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  /*line 229*/{(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  /*line 230*/{(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  /*line 231*/{(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  /*line 232*/{(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  /*line 233*/{(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  /*line 234*/{(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  /*line 235*/{(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  /*line 236*/{(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  /*line 237*/{(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  /*line 238*/{(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  /*line 239*/{(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  /*line 240*/{(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  /*line 241*/{(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  /*line 242*/{(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  /*line 243*/{(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  /*line 244*/{(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  /*line 245*/{(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  /*line 246*/{(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  /*line 247*/{(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  /*line 248*/{(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  /*line 249*/{(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  /*line 250*/{(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  /*line 251*/{(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  /*line 252*/{(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  /*line 253*/{(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  /*line 254*/{(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  /*line 255*/{(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  /*line 256*/{(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  /*line 257*/{(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  /*line 258*/{(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  /*line 259*/{(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  /*line 260*/{(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  /*line 261*/{(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  /*line 262*/{(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  /*line 263*/{(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  /*line 264*/{(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  /*line 265*/{(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  /*line 266*/{(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  /*line 267*/{(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  /*line 268*/{(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  /*line 269*/{(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  /*line 270*/{(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  /*line 271*/{(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  /*line 272*/{(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  /*line 273*/{(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  /*line 274*/{(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  /*line 275*/{(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  /*line 276*/{(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  /*line 277*/{(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  /*line 278*/{(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  /*line 279*/{(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  /*line 280*/{(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  /*line 281*/{(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  /*line 282*/{(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  /*line 283*/{(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  /*line 284*/{(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  /*line 285*/{(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  /*line 286*/{(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  /*line 287*/{(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  /*line 288*/{(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  /*line 289*/{(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  /*line 290*/{(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  /*line 291*/{(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  /*line 292*/{(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  /*line 293*/{(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  /*line 294*/{(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  /*line 295*/{(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  /*line 296*/{(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  /*line 297*/{(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  /*line 298*/{(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  /*line 299*/{(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  /*line 300*/{(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  /*line 301*/{(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  /*line 302*/{(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  /*line 303*/{(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  /*line 304*/{(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  /*line 305*/{(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  /*line 306*/{(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  /*line 307*/{(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  /*line 308*/{(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  /*line 309*/{(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  /*line 310*/{(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  /*line 311*/{(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  /*line 312*/{(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  /*line 313*/{(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  /*line 314*/{(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  /*line 315*/{(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  /*line 316*/{(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  /*line 317*/{(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  /*line 318*/{(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  /*line 319*/{(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  /*line 320*/{(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  /*line 321*/{(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  /*line 322*/{(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  /*line 323*/{(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  /*line 324*/{(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  /*line 325*/{(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  /*line 326*/{(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  /*line 327*/{(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  /*line 328*/{(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  /*line 329*/{(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  /*line 330*/{(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  /*line 331*/{(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  /*line 332*/{(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  /*line 333*/{(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  /*line 334*/{(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  /*line 335*/{(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  /*line 336*/{(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  /*line 337*/{(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  /*line 338*/{(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  /*line 339*/{(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  /*line 340*/{(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  /*line 341*/{(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  /*line 342*/{(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  /*line 343*/{(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  /*line 344*/{(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  /*line 345*/{(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  /*line 346*/{(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  /*line 347*/{(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  /*line 348*/{(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  /*line 349*/{(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  /*line 350*/{(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  /*line 351*/{(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  /*line 352*/{(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  /*line 353*/{(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  /*line 354*/{(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  /*line 355*/{(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  /*line 356*/{(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  /*line 357*/{(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  /*line 358*/{(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  /*line 359*/{(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  /*line 360*/{(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  /*line 361*/{(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  /*line 362*/{(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  /*line 363*/{(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  /*line 364*/{(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  /*line 365*/{(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  /*line 366*/{(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  /*line 367*/{(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  /*line 368*/{(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  /*line 369*/{(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  /*line 370*/{(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  /*line 371*/{(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  /*line 372*/{(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  /*line 373*/{(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  /*line 374*/{(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  /*line 375*/{(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  /*line 376*/{(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  /*line 377*/{(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  /*line 378*/{(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  /*line 379*/{(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  /*line 380*/{(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  /*line 381*/{(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  /*line 382*/{(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  /*line 383*/{(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  /*line 384*/{(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  /*line 385*/{(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  /*line 386*/{(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  /*line 387*/{(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  /*line 388*/{(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  /*line 389*/{(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  /*line 390*/{(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  /*line 391*/{(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  /*line 392*/{(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  /*line 393*/{(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  /*line 394*/{(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  /*line 395*/{(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  /*line 396*/{(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  /*line 397*/{(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  /*line 398*/{(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  /*line 399*/{(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  /*line 400*/{(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  /*line 401*/{(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  /*line 402*/{(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  /*line 403*/{(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  /*line 404*/{(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  /*line 405*/{(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  /*line 406*/{(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  /*line 407*/{(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  /*line 408*/{(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  /*line 409*/{(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  /*line 410*/{(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  /*line 411*/{(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  /*line 412*/{(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  /*line 413*/{(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  /*line 414*/{(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  /*line 415*/{(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  /*line 416*/{(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  /*line 417*/{(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  /*line 418*/{(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  /*line 419*/{(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  /*line 420*/{(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  /*line 421*/{(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  /*line 422*/{(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  /*line 423*/{(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  /*line 424*/{(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  /*line 425*/{(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  /*line 426*/{(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  /*line 427*/{(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  /*line 428*/{(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  /*line 429*/{(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  /*line 430*/{(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  /*line 431*/{(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  /*line 432*/{(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  /*line 433*/{(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  /*line 434*/{(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  /*line 435*/{(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  /*line 436*/{(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  /*line 437*/{(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  /*line 438*/{(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  /*line 439*/{(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  /*line 440*/{(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  /*line 441*/{(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  /*line 442*/{(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  /*line 443*/{(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  /*line 444*/{(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  /*line 445*/{(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  /*line 446*/{(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  /*line 447*/{(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  /*line 448*/{(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  /*line 449*/{(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  /*line 450*/{(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  /*line 451*/{(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  /*line 452*/{(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  /*line 453*/{(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  /*line 454*/{(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  /*line 455*/{(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  /*line 456*/{(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  /*line 457*/{(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  /*line 458*/{(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  /*line 459*/{(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  /*line 460*/{(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  /*line 461*/{(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  /*line 462*/{(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  /*line 463*/{(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  /*line 464*/{(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  /*line 465*/{(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  /*line 466*/{(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  /*line 467*/{(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  /*line 468*/{(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  /*line 469*/{(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  /* handle self test fails according to severity and type */
bnx2x_self_test_log(struct bnx2x * bp,u8 severity,char * message)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  /* specific test for QM rd/wr pointers and rd/wr banks */
bnx2x_idle_chk6(struct bnx2x * bp,struct st_record * rec,char * message)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  		/* read regs */
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  		/* calc read and write pointers */
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  		/* perfrom pointer test */
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  		/* calculate read and write banks */
2973  		rd_bank = ((rec->pred_args.val1 & 0x30) >> 4);
2974  		wr_bank = (rec->pred_args.val1 & 0x03);
2975  
2976  		/* perform bank test */
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  /* specific test for cfc info ram and cid cam */
bnx2x_idle_chk7(struct bnx2x * bp,struct st_record * rec,char * message)2987  static void bnx2x_idle_chk7(struct bnx2x *bp,
2988  			    struct st_record *rec, char *message)
2989  {
2990  	int i;
2991  
2992  	/* iterate through lcids */
2993  	for (i = 0; i < rec->loop; i++) {
2994  		/* make sure cam entry is valid (bit 0) */
2995  		if ((REG_RD(bp, (rec->reg2 + i * 4)) & 0x1) != 0x1)
2996  			continue;
2997  
2998  		/* get connection type (multiple reads due to widebus) */
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  		/* obtain connection type */
3006  		if (is_e1 || is_e1h) {
3007  			/* E1 E1H (bits 4..7) */
3008  			rec->pred_args.val1 &= 0x78;
3009  			rec->pred_args.val1 >>= 3;
3010  		} else {
3011  			/* E2 E3A0 E3B0 (bits 26..29) */
3012  			rec->pred_args.val1 &= 0x1E000000;
3013  			rec->pred_args.val1 >>= 25;
3014  		}
3015  
3016  		/* get activity counter value */
3017  		rec->pred_args.val2 = REG_RD(bp, rec->reg3 + i * 4);
3018  
3019  		/* validate ac value is legal for con_type at idle state */
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  /* self test procedure
3030   * scan auto-generated database
3031   * for each line:
3032   * 1.	compare chip mask
3033   * 2.	determine type (according to maro number)
3034   * 3.	read registers
3035   * 4.	call predicate
3036   * 5.	collate results and statistics
3037   */
bnx2x_idle_chk(struct bnx2x * bp)3038  int bnx2x_idle_chk(struct bnx2x *bp)
3039  {
3040  	u16 i;				/* loop counter */
3041  	u16 st_ind;			/* self test database access index */
3042  	struct st_record rec;		/* current record variable */
3043  	char message[MAX_FAIL_MSG];	/* message to log */
3044  
3045  	/*init stats*/
3046  	idle_chk_errors = 0;
3047  	idle_chk_warnings = 0;
3048  
3049  	/*create masks for all chip types*/
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  	/*database main loop*/
3057  	for (st_ind = 0; st_ind < ST_DB_LINES; st_ind++) {
3058  		rec = st_database[st_ind];
3059  
3060  		/*check if test applies to chip*/
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  		/* identify macro */
3069  		switch (rec.macro) {
3070  		case 1:
3071  			/* read single reg and call predicate */
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  			/* read repeatedly starting from reg1 and call
3083  			 * predicate after each read
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  			/* read two regs and call predicate */
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  			/*unused to-date*/
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  			/* compare two regs, pending
3134  			 * the value of a condition reg
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  			/* compare read and write pointers
3154  			 * and read and write banks in QM
3155  			 */
3156  			bnx2x_idle_chk6(bp, &rec, message);
3157  			break;
3158  		case 7:
3159  			/* compare cfc info cam with cid cam */
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  	/* abort if interface is not running */
3170  	if (!netif_running(bp->dev))
3171  		return idle_chk_errors;
3172  
3173  	/* return value accorindg to statistics */
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  }
3184