xref: /linux/drivers/net/ethernet/broadcom/bnx2x/bnx2x_self_test.c (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
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 */
52 static int peq(struct st_pred_args *args)
53 {
54 	return (args->val1 == args->imm1);
55 }
56 
57 static int pneq(struct st_pred_args *args)
58 {
59 	return (args->val1 != args->imm1);
60 }
61 
62 static int pand_neq(struct st_pred_args *args)
63 {
64 	return ((args->val1 & args->imm1) != args->imm2);
65 }
66 
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 
73 static int pneq_err(struct st_pred_args *args)
74 {
75 	return ((args->val1 != args->imm1) && (idle_chk_errors > args->imm2));
76 }
77 
78 static int pgt(struct st_pred_args *args)
79 {
80 	return (args->val1 > args->imm1);
81 }
82 
83 static int pneq_r2(struct st_pred_args *args)
84 {
85 	return (args->val1 != args->val2);
86 }
87 
88 static int plt_sub_r2(struct st_pred_args *args)
89 {
90 	return (args->val1 < (args->val2 - args->imm1));
91 }
92 
93 static int pne_sub_r2(struct st_pred_args *args)
94 {
95 	return (args->val1 != (args->val2 - args->imm1));
96 }
97 
98 static int prsh_and_neq(struct st_pred_args *args)
99 {
100 	return (((args->val1 >> args->imm1) & args->imm2) != args->imm3);
101 }
102 
103 static int peq_neq_r2(struct st_pred_args *args)
104 {
105 	return ((args->val1 == args->imm1) && (args->val2 != args->imm2));
106 }
107 
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 */
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 */
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 */
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  */
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