]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - sys/dev/bxe/bxe_reg.h
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / sys / dev / bxe / bxe_reg.h
1 /*-
2  * Copyright (c) 2007-2011 Broadcom Corporation. All rights reserved.
3  *
4  *    Gary Zambrano <zambrano@broadcom.com>
5  *    David Christensen <davidch@broadcom.com>
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  * 3. Neither the name of Broadcom Corporation nor the name of its contributors
17  *    may be used to endorse or promote products derived from this software
18  *    without specific prior written consent.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS'
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
24  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
30  * THE POSSIBILITY OF SUCH DAMAGE.
31  */
32
33  /*$FreeBSD$*/
34
35 /* bxe_reg.h: Broadcom Everest network driver.
36  * The registers description starts with the register Access type followed
37  * by size in bits. For example [RW 32]. The access types are:
38  * R  - Read only
39  * RC - Clear on read
40  * RW - Read/Write
41  * ST - Statistics register (clear on read)
42  * W  - Write only
43  * WB - Wide bus register - the size is over 32 bits and it should be
44  *      read/write in consecutive 32 bits accesses
45  * WR - Write Clear (write 1 to clear the bit)
46  */
47
48 #ifndef _BXE_REG_H
49 #define _BXE_REG_H
50
51 /* [R 19] Interrupt register #0 read */
52 #define BRB1_REG_BRB1_INT_STS                                   0x6011c
53 /* [RW 4] Parity mask register #0 read/write */
54 #define BRB1_REG_BRB1_PRTY_MASK                                 0x60138
55 /* [R 4] Parity register #0 read */
56 #define BRB1_REG_BRB1_PRTY_STS                                  0x6012c
57 /*
58  * [RW 10] At address BRB1_IND_FREE_LIST_PRS_CRDT initialize free head. At
59  * address BRB1_IND_FREE_LIST_PRS_CRDT+1 initialize free tail. At address
60  * BRB1_IND_FREE_LIST_PRS_CRDT+2 initialize parser initial credit.
61  */
62 #define BRB1_REG_FREE_LIST_PRS_CRDT                             0x60200
63 /*
64  * [RW 10] The number of free blocks above which the High_llfc signal to
65  *  interface #n is de-asserted.
66  */
67 #define BRB1_REG_HIGH_LLFC_HIGH_THRESHOLD_0                     0x6014c
68 /*
69  * [RW 10] The number of free blocks below which the High_llfc signal to
70  * interface #n is asserted.
71  */
72 #define BRB1_REG_HIGH_LLFC_LOW_THRESHOLD_0                      0x6013c
73 /* [RW 23] LL RAM data. */
74 #define BRB1_REG_LL_RAM                                         0x61000
75 /*
76  * [RW 10] The number of free blocks above which the Low_llfc signal to
77  * interface #n is de-asserted.
78  */
79 #define BRB1_REG_LOW_LLFC_HIGH_THRESHOLD_0                      0x6016c
80 /*
81  * [RW 10] The number of free blocks below which the Low_llfc signal to
82  * interface #n is asserted.
83  */
84 #define BRB1_REG_LOW_LLFC_LOW_THRESHOLD_0                       0x6015c
85 /* [R 24] The number of full blocks. */
86 #define BRB1_REG_NUM_OF_FULL_BLOCKS                             0x60090
87 /*
88  * [ST 32] The number of cycles that the write_full signal towards MAC #0
89  * was asserted.
90  */
91 #define BRB1_REG_NUM_OF_FULL_CYCLES_0                           0x600c8
92 #define BRB1_REG_NUM_OF_FULL_CYCLES_1                           0x600cc
93 #define BRB1_REG_NUM_OF_FULL_CYCLES_4                           0x600d8
94 /*
95  * [ST 32] The number of cycles that the pause signal towards MAC #0 was
96  * asserted.
97  */
98 #define BRB1_REG_NUM_OF_PAUSE_CYCLES_0                          0x600b8
99 #define BRB1_REG_NUM_OF_PAUSE_CYCLES_1                          0x600bc
100 /* [RW 10] Write client 0: De-assert pause threshold. */
101 #define BRB1_REG_PAUSE_HIGH_THRESHOLD_0                         0x60078
102 #define BRB1_REG_PAUSE_HIGH_THRESHOLD_1                         0x6007c
103 /* [RW 10] Write client 0: Assert pause threshold. */
104 #define BRB1_REG_PAUSE_LOW_THRESHOLD_0                          0x60068
105 #define BRB1_REG_PAUSE_LOW_THRESHOLD_1                          0x6006c
106 /* [R 24] The number of full blocks occupied by port. */
107 #define BRB1_REG_PORT_NUM_OCC_BLOCKS_0                          0x60094
108 /* [RW 1] Reset the design by software. */
109 #define BRB1_REG_SOFT_RESET                                     0x600dc
110 /* [R 5] Used to read the value of the XX protection CAM occupancy counter. */
111 #define CCM_REG_CAM_OCCUP                                       0xd0188
112 /*
113  * [RW 1] CM - CFC Interface enable. If 0 - the valid input is disregarded;
114  * acknowledge output is deasserted; all other signals are treated as usual;
115  * if 1 - normal activity.
116  */
117 #define CCM_REG_CCM_CFC_IFEN                                    0xd003c
118 /*
119  * [RW 1] CM - QM Interface enable. If 0 - the acknowledge input is
120  * disregarded; valid is deasserted; all other signals are treated as usual;
121  * if 1 - normal activity.
122  */
123 #define CCM_REG_CCM_CQM_IFEN                                    0xd000c
124 /*
125  * [RW 1] If set the Q index; received from the QM is inserted to event ID.
126  * Otherwise 0 is inserted.
127  */
128 #define CCM_REG_CCM_CQM_USE_Q                                   0xd00c0
129 /* [RW 11] Interrupt mask register #0 read/write */
130 #define CCM_REG_CCM_INT_MASK                                    0xd01e4
131 /* [R 11] Interrupt register #0 read */
132 #define CCM_REG_CCM_INT_STS                                     0xd01d8
133 /* [R 27] Parity register #0 read */
134 #define CCM_REG_CCM_PRTY_STS                                    0xd01e8
135 /*
136  * [RW 3] The size of AG context region 0 in REG-pairs. Designates the MS
137  * REG-pair number (e.g. if region 0 is 6 REG-pairs; the value should be 5).
138  * Is used to determine the number of the AG context REG-pairs written back;
139  * when the input message Reg1WbFlg isn't set.
140  */
141 #define CCM_REG_CCM_REG0_SZ                                     0xd00c4
142 /*
143  * [RW 1] CM - STORM 0 Interface enable. If 0 - the acknowledge input is
144  * disregarded; valid is deasserted; all other signals are treated as usual;
145  * if 1 - normal activity.
146  */
147 #define CCM_REG_CCM_STORM0_IFEN                                 0xd0004
148 /*
149  * [RW 1] CM - STORM 1 Interface enable. If 0 - the acknowledge input is
150  * disregarded; valid is deasserted; all other signals are treated as usual;
151  * if 1 - normal activity.
152  */
153 #define CCM_REG_CCM_STORM1_IFEN                                 0xd0008
154 /*
155  * [RW 1] CDU AG read Interface enable. If 0 - the request input is
156  * disregarded; valid output is deasserted; all other signals are treated as
157  * usual; if 1 - normal activity.
158  */
159 #define CCM_REG_CDU_AG_RD_IFEN                                  0xd0030
160 /*
161  * [RW 1] CDU AG write Interface enable. If 0 - the request and valid input
162  * are disregarded; all other signals are treated as usual; if 1 - normal
163  * activity.
164  */
165 #define CCM_REG_CDU_AG_WR_IFEN                                  0xd002c
166 /*
167  * [RW 1] CDU STORM read Interface enable. If 0 - the request input is
168  * disregarded; valid output is deasserted; all other signals are treated as
169  * usual; if 1 - normal activity.
170  */
171 #define CCM_REG_CDU_SM_RD_IFEN                                  0xd0038
172 /*
173  * [RW 1] CDU STORM write Interface enable. If 0 - the request and valid
174  * input is disregarded; all other signals are treated as usual; if 1 -
175  * normal activity.
176  */
177 #define CCM_REG_CDU_SM_WR_IFEN                                  0xd0034
178 /*
179  * [RW 4] CFC output initial credit. Max credit available - 15.Write writes
180  * the initial credit value; read returns the current value of the credit
181  * counter. Must be initialized to 1 at start-up.
182  */
183 #define CCM_REG_CFC_INIT_CRD                                    0xd0204
184 /* [RW 2] Auxillary counter flag Q number 1. */
185 #define CCM_REG_CNT_AUX1_Q                                      0xd00c8
186 /* [RW 2] Auxillary counter flag Q number 2. */
187 #define CCM_REG_CNT_AUX2_Q                                      0xd00cc
188 /* [RW 28] The CM header value for QM request (primary). */
189 #define CCM_REG_CQM_CCM_HDR_P                                   0xd008c
190 /* [RW 28] The CM header value for QM request (secondary). */
191 #define CCM_REG_CQM_CCM_HDR_S                                   0xd0090
192 /*
193  * [RW 1] QM - CM Interface enable. If 0 - the valid input is disregarded;
194  * acknowledge output is deasserted; all other signals are treated as usual;
195  * if 1 - normal activity.
196  */
197 #define CCM_REG_CQM_CCM_IFEN                                    0xd0014
198 /*
199  * [RW 6] QM output initial credit. Max credit available - 32. Write writes
200  * the initial credit value; read returns the current value of the credit
201  * counter. Must be initialized to 32 at start-up.
202  */
203 #define CCM_REG_CQM_INIT_CRD                                    0xd020c
204 /*
205  * [RW 3] The weight of the QM (primary) input in the WRR mechanism. 0
206  * stands for weight 8 (the most prioritised); 1 stands for weight 1(least
207  * prioritised); 2 stands for weight 2; tc.
208  */
209 #define CCM_REG_CQM_P_WEIGHT                                    0xd00b8
210 /*
211  * [RW 3] The weight of the QM (secondary) input in the WRR mechanism. 0
212  * stands for weight 8 (the most prioritised); 1 stands for weight 1(least
213  * prioritised); 2 stands for weight 2; tc.
214  */
215 #define CCM_REG_CQM_S_WEIGHT                                    0xd00bc
216 /*
217  * [RW 1] Input SDM Interface enable. If 0 - the valid input is disregarded;
218  * acknowledge output is deasserted; all other signals are treated as usual;
219  * if 1 - normal activity.
220  */
221 #define CCM_REG_CSDM_IFEN                                       0xd0018
222 /*
223  * [RC 1] Set when the message length mismatch (relative to last indication)
224  * at the SDM interface is detected.
225  */
226 #define CCM_REG_CSDM_LENGTH_MIS                                 0xd0170
227 /*
228  * [RW 3] The weight of the SDM input in the WRR mechanism. 0 stands for
229  * weight 8 (the most prioritised); 1 stands for weight 1(least
230  * prioritised); 2 stands for weight 2; tc.
231  */
232 #define CCM_REG_CSDM_WEIGHT                                     0xd00b4
233 /*
234  * [RW 28] The CM header for QM formatting in case of an error in the QM
235  * inputs.
236  */
237 #define CCM_REG_ERR_CCM_HDR                                     0xd0094
238 /* [RW 8] The Event ID in case the input message ErrorFlg is set. */
239 #define CCM_REG_ERR_EVNT_ID                                     0xd0098
240 /*
241  * [RW 8] FIC0 output initial credit. Max credit available - 255. Write
242  * writes the initial credit value; read returns the current value of the
243  * credit counter. Must be initialized to 64 at start-up.
244  */
245 #define CCM_REG_FIC0_INIT_CRD                                   0xd0210
246 /*
247  * [RW 8] FIC1 output initial credit. Max credit available - 255.Write
248  * writes the initial credit value; read returns the current value of the
249  * credit counter. Must be initialized to 64 at start-up.
250  */
251 #define CCM_REG_FIC1_INIT_CRD                                   0xd0214
252 /*
253  * [RW 1] Arbitration between Input Arbiter groups: 0 - fair Round-Robin; 1
254  * - strict priority defined by ~ccm_registers_gr_ag_pr.gr_ag_pr;
255  * ~ccm_registers_gr_ld0_pr.gr_ld0_pr and
256  * ~ccm_registers_gr_ld1_pr.gr_ld1_pr. Groups are according to channels and
257  * outputs to STORM: aggregation; load FIC0; load FIC1 and store.
258  */
259 #define CCM_REG_GR_ARB_TYPE                                     0xd015c
260 /*
261  * [RW 2] Load (FIC0) channel group priority. The lowest priority is 0; the
262  * highest priority is 3. It is supposed; that the Store channel priority is
263  * the compliment to 4 of the rest priorities - Aggregation channel; Load
264  * (FIC0) channel and Load (FIC1).
265  */
266 #define CCM_REG_GR_LD0_PR                                       0xd0164
267 /*
268  * [RW 2] Load (FIC1) channel group priority. The lowest priority is 0; the
269  * highest priority is 3. It is supposed; that the Store channel priority is
270  * the compliment to 4 of the rest priorities - Aggregation channel; Load
271  * (FIC0) channel and Load (FIC1).
272  */
273 #define CCM_REG_GR_LD1_PR                                       0xd0168
274 /* [RW 2] General flags index. */
275 #define CCM_REG_INV_DONE_Q                                      0xd0108
276 /*
277  * [RW 4] The number of double REG-pairs(128 bits); loaded from the STORM
278  * context and sent to STORM; for a specific connection type. The double
279  * REG-pairs are used in order to align to STORM context row size of 128
280  * bits. The offset of these data in the STORM context is always 0. Index
281  * _(0..15) stands for the connection type (one of 16).
282  */
283 #define CCM_REG_N_SM_CTX_LD_0                                   0xd004c
284 #define CCM_REG_N_SM_CTX_LD_1                                   0xd0050
285 #define CCM_REG_N_SM_CTX_LD_2                                   0xd0054
286 #define CCM_REG_N_SM_CTX_LD_3                                   0xd0058
287 #define CCM_REG_N_SM_CTX_LD_4                                   0xd005c
288 /*
289  * [RW 1] Input pbf Interface enable. If 0 - the valid input is disregarded;
290  * acknowledge output is deasserted; all other signals are treated as usual;
291  * if 1 - normal activity.
292  */
293 #define CCM_REG_PBF_IFEN                                        0xd0028
294 /*
295  * [RC 1] Set when the message length mismatch (relative to last indication)
296  * at the pbf interface is detected.
297  */
298 #define CCM_REG_PBF_LENGTH_MIS                                  0xd0180
299 /*
300  * [RW 3] The weight of the input pbf in the WRR mechanism. 0 stands for
301  * weight 8 (the most prioritised); 1 stands for weight 1(least
302  * prioritised); 2 stands for weight 2; tc.
303  */
304 #define CCM_REG_PBF_WEIGHT                                      0xd00ac
305 #define CCM_REG_PHYS_QNUM1_0                                    0xd0134
306 #define CCM_REG_PHYS_QNUM1_1                                    0xd0138
307 #define CCM_REG_PHYS_QNUM2_0                                    0xd013c
308 #define CCM_REG_PHYS_QNUM2_1                                    0xd0140
309 #define CCM_REG_PHYS_QNUM3_0                                    0xd0144
310 #define CCM_REG_PHYS_QNUM3_1                                    0xd0148
311 #define CCM_REG_QOS_PHYS_QNUM0_0                                0xd0114
312 #define CCM_REG_QOS_PHYS_QNUM0_1                                0xd0118
313 #define CCM_REG_QOS_PHYS_QNUM1_0                                0xd011c
314 #define CCM_REG_QOS_PHYS_QNUM1_1                                0xd0120
315 #define CCM_REG_QOS_PHYS_QNUM2_0                                0xd0124
316 #define CCM_REG_QOS_PHYS_QNUM2_1                                0xd0128
317 #define CCM_REG_QOS_PHYS_QNUM3_0                                0xd012c
318 #define CCM_REG_QOS_PHYS_QNUM3_1                                0xd0130
319 /*
320  * [RW 1] STORM - CM Interface enable. If 0 - the valid input is
321  * disregarded; acknowledge output is deasserted; all other signals are
322  * treated as usual; if 1 - normal activity.
323  */
324 #define CCM_REG_STORM_CCM_IFEN                                  0xd0010
325 /*
326  * [RC 1] Set when the message length mismatch (relative to last indication)
327  * at the STORM interface is detected.
328  */
329 #define CCM_REG_STORM_LENGTH_MIS                                0xd016c
330 /*
331  * [RW 3] The weight of the STORM input in the WRR (Weighted Round robin)
332  * mechanism. 0 stands for weight 8 (the most prioritised); 1 stands for
333  * weight 1(least prioritised); 2 stands for weight 2 (more prioritised);
334  * tc.
335  */
336 #define CCM_REG_STORM_WEIGHT                                    0xd009c
337 /*
338  * [RW 1] Input tsem Interface enable. If 0 - the valid input is
339  * disregarded; acknowledge output is deasserted; all other signals are
340  * treated as usual; if 1 - normal activity.
341  */
342 #define CCM_REG_TSEM_IFEN                                       0xd001c
343 /*
344  * [RC 1] Set when the message length mismatch (relative to last indication)
345  * at the tsem interface is detected.
346  */
347 #define CCM_REG_TSEM_LENGTH_MIS                                 0xd0174
348 /*
349  * [RW 3] The weight of the input tsem in the WRR mechanism. 0 stands for
350  * weight 8 (the most prioritised); 1 stands for weight 1(least
351  * prioritised); 2 stands for weight 2; tc.
352  */
353 #define CCM_REG_TSEM_WEIGHT                                     0xd00a0
354 /*
355  * [RW 1] Input usem Interface enable. If 0 - the valid input is
356  * disregarded; acknowledge output is deasserted; all other signals are
357  * treated as usual; if 1 - normal activity.
358  */
359 #define CCM_REG_USEM_IFEN                                       0xd0024
360 /*
361  * [RC 1] Set when message length mismatch (relative to last indication) at
362  * the usem interface is detected.
363  */
364 #define CCM_REG_USEM_LENGTH_MIS                                 0xd017c
365 /*
366  * [RW 3] The weight of the input usem in the WRR mechanism. 0 stands for
367  * weight 8 (the most prioritised); 1 stands for weight 1(least prioritised);
368  * 2 stands for weight 2; tc.
369  */
370 #define CCM_REG_USEM_WEIGHT                                     0xd00a8
371 /*
372  * [RW 1] Input xsem Interface enable. If 0 - the valid input is
373  * disregarded; acknowledge output is deasserted; all other signals are
374  * treated as usual; if 1 - normal activity.
375  */
376 #define CCM_REG_XSEM_IFEN                                       0xd0020
377 /*
378  * [RC 1] Set when the message length mismatch (relative to last indication)
379  * at the xsem interface is detected.
380  */
381 #define CCM_REG_XSEM_LENGTH_MIS                                 0xd0178
382 /*
383  * [RW 3] The weight of the input xsem in the WRR mechanism. 0 stands for
384  * weight 8 (the most prioritised); 1 stands for weight 1(least
385  * prioritised); 2 stands for weight 2; tc.
386  */
387 #define CCM_REG_XSEM_WEIGHT                                     0xd00a4
388 /*
389  * [RW 19] Indirect access to the descriptor table of the XX protection
390  * mechanism. The fields are: [5:0] - message length; [12:6] - message
391  * pointer; 18:13] - next pointer.
392  */
393 #define CCM_REG_XX_DESCR_TABLE                                  0xd0300
394 #define CCM_REG_XX_DESCR_TABLE_SIZE                             36
395 /* [R 7] Used to read the value of XX protection Free counter. */
396 #define CCM_REG_XX_FREE                                         0xd0184
397 /*
398  * [RW 6] Initial value for the credit counter; responsible for fulfilling
399  * of the Input Stage XX protection buffer by the XX protection pending
400  * messages. Max credit available - 127. Write writes the initial credit
401  * value; read returns the current value of the credit counter. Must be
402  * initialized to maximum XX protected message size - 2 at start-up.
403  */
404 #define CCM_REG_XX_INIT_CRD                                     0xd0220
405 /*
406  * [RW 7] The maximum number of pending messages; which may be stored in XX
407  * protection. At read the ~ccm_registers_xx_free.xx_free counter is read.
408  * At write comprises the start value of the ~ccm_registers_xx_free.xx_free
409  * counter.
410  */
411 #define CCM_REG_XX_MSG_NUM                                      0xd0224
412 /* [RW 8] The Event ID; sent to the STORM in case of XX overflow. */
413 #define CCM_REG_XX_OVFL_EVNT_ID                                 0xd0044
414 /*
415  * [RW 18] Indirect access to the XX table of the XX protection mechanism.
416  * The fields are: [5:0] - tail pointer; 11:6] - Link List size; 17:12] -
417  * header pointer.
418  */
419 #define CCM_REG_XX_TABLE                                        0xd0280
420 #define CDU_REG_CDU_CHK_MASK0                                   0x101000
421 #define CDU_REG_CDU_CHK_MASK1                                   0x101004
422 #define CDU_REG_CDU_CONTROL0                                    0x101008
423 #define CDU_REG_CDU_DEBUG                                       0x101010
424 #define CDU_REG_CDU_GLOBAL_PARAMS                               0x101020
425 /* [RW 7] Interrupt mask register #0 read/write */
426 #define CDU_REG_CDU_INT_MASK                                    0x10103c
427 /* [R 7] Interrupt register #0 read */
428 #define CDU_REG_CDU_INT_STS                                     0x101030
429 /* [RW 5] Parity mask register #0 read/write */
430 #define CDU_REG_CDU_PRTY_MASK                                   0x10104c
431 /* [R 5] Parity register #0 read */
432 #define CDU_REG_CDU_PRTY_STS                                    0x101040
433 /*
434  * [RC 32] logging of error data in case of a CDU load error:
435  * {expected_cid[15:0]; xpected_type[2:0]; xpected_region[2:0]; ctive_error;
436  * ype_error; ctual_active; ctual_compressed_context};
437  */
438 #define CDU_REG_ERROR_DATA                                      0x101014
439 /*
440  * [WB 216] L1TT ram access. each entry has the following format :
441  * {mrege_regions[7:0]; ffset12[5:0]...offset0[5:0];
442  * ength12[5:0]...length0[5:0]; d12[3:0]...id0[3:0]}
443  */
444 #define CDU_REG_L1TT                                            0x101800
445 /*
446  * [WB 24] MATT ram access. each entry has the following
447  * format:{RegionLength[11:0]; egionOffset[11:0]}
448  */
449 #define CDU_REG_MATT                                            0x101100
450 /* [RW 1] when this bit is set the CDU operates in e1hmf mode */
451 #define CDU_REG_MF_MODE                                         0x101050
452 /*
453  * [R 1] indication the initializing the activity counter by the hardware
454  * was done.
455  */
456 #define CFC_REG_AC_INIT_DONE                                    0x104078
457 /* [RW 13] activity counter ram access */
458 #define CFC_REG_ACTIVITY_COUNTER                                0x104400
459 #define CFC_REG_ACTIVITY_COUNTER_SIZE                            256
460 /* [R 1] indication the initializing the cams by the hardware was done. */
461 #define CFC_REG_CAM_INIT_DONE                                   0x10407c
462 /* [RW 2] Interrupt mask register #0 read/write */
463 #define CFC_REG_CFC_INT_MASK                                    0x104108
464 /* [R 2] Interrupt register #0 read */
465 #define CFC_REG_CFC_INT_STS                                     0x1040fc
466 /* [RC 2] Interrupt register #0 read clear */
467 #define CFC_REG_CFC_INT_STS_CLR                                 0x104100
468 /* [RW 4] Parity mask register #0 read/write */
469 #define CFC_REG_CFC_PRTY_MASK                                   0x104118
470 /* [R 4] Parity register #0 read */
471 #define CFC_REG_CFC_PRTY_STS                                    0x10410c
472 /* [RW 21] CID cam access (21:1 - Data; alid - 0) */
473 #define CFC_REG_CID_CAM                                         0x104800
474 #define CFC_REG_CONTROL0                                        0x104028
475 #define CFC_REG_DEBUG0                                          0x104050
476 /*
477  * [RW 14] indicates per error (in #cfc_registers_cfc_error_vector.cfc_error
478  * vector) whether the cfc should be disabled upon it.
479  */
480 #define CFC_REG_DISABLE_ON_ERROR                                0x104044
481 /*
482  * [RC 14] CFC error vector. when the CFC detects an internal error it will
483  * set one of these bits. the bit description can be found in CFC
484  * specifications.
485  */
486 #define CFC_REG_ERROR_VECTOR                                    0x10403c
487 /* [WB 93] LCID info ram access */
488 #define CFC_REG_INFO_RAM                                        0x105000
489 #define CFC_REG_INFO_RAM_SIZE                                   1024
490 #define CFC_REG_INIT_REG                                        0x10404c
491 #define CFC_REG_INTERFACES                                      0x104058
492 /*
493  * [RW 24] {weight_load_client7[2:0] to weight_load_client0[2:0]}. this
494  * field allows changing the priorities of the weighted-round-robin arbiter
495  * which selects which CFC load client should be served next.
496  */
497 #define CFC_REG_LCREQ_WEIGHTS                                   0x104084
498 /* [RW 16] Link List ram access; data = {prev_lcid; ext_lcid} */
499 #define CFC_REG_LINK_LIST                                       0x104c00
500 #define CFC_REG_LINK_LIST_SIZE                                  256
501 /* [R 1] indication the initializing the link list by the hardware was done. */
502 #define CFC_REG_LL_INIT_DONE                                    0x104074
503 /* [R 9] Number of allocated LCIDs which are at empty state */
504 #define CFC_REG_NUM_LCIDS_ALLOC                                 0x104020
505 /* [R 9] Number of Arriving LCIDs in Link List Block */
506 #define CFC_REG_NUM_LCIDS_ARRIVING                              0x104004
507 /* [R 9] Number of Leaving LCIDs in Link List Block */
508 #define CFC_REG_NUM_LCIDS_LEAVING                               0x104018
509 /* [RW 8] The event id for aggregated interrupt 0 */
510 #define CSDM_REG_AGG_INT_EVENT_0                                0xc2038
511 #define CSDM_REG_AGG_INT_EVENT_10                               0xc2060
512 #define CSDM_REG_AGG_INT_EVENT_11                               0xc2064
513 #define CSDM_REG_AGG_INT_EVENT_12                               0xc2068
514 #define CSDM_REG_AGG_INT_EVENT_13                               0xc206c
515 #define CSDM_REG_AGG_INT_EVENT_14                               0xc2070
516 #define CSDM_REG_AGG_INT_EVENT_15                               0xc2074
517 #define CSDM_REG_AGG_INT_EVENT_16                               0xc2078
518 #define CSDM_REG_AGG_INT_EVENT_2                                0xc2040
519 #define CSDM_REG_AGG_INT_EVENT_3                                0xc2044
520 #define CSDM_REG_AGG_INT_EVENT_4                                0xc2048
521 #define CSDM_REG_AGG_INT_EVENT_5                                0xc204c
522 #define CSDM_REG_AGG_INT_EVENT_6                                0xc2050
523 #define CSDM_REG_AGG_INT_EVENT_7                                0xc2054
524 #define CSDM_REG_AGG_INT_EVENT_8                                0xc2058
525 #define CSDM_REG_AGG_INT_EVENT_9                                0xc205c
526 /*
527  * [RW 1] For each aggregated interrupt index whether the mode is normal (0)
528  * or auto-mask-mode (1).
529  */
530 #define CSDM_REG_AGG_INT_MODE_10                                0xc21e0
531 #define CSDM_REG_AGG_INT_MODE_11                                0xc21e4
532 #define CSDM_REG_AGG_INT_MODE_12                                0xc21e8
533 #define CSDM_REG_AGG_INT_MODE_13                                0xc21ec
534 #define CSDM_REG_AGG_INT_MODE_14                                0xc21f0
535 #define CSDM_REG_AGG_INT_MODE_15                                0xc21f4
536 #define CSDM_REG_AGG_INT_MODE_16                                0xc21f8
537 #define CSDM_REG_AGG_INT_MODE_6                                 0xc21d0
538 #define CSDM_REG_AGG_INT_MODE_7                                 0xc21d4
539 #define CSDM_REG_AGG_INT_MODE_8                                 0xc21d8
540 #define CSDM_REG_AGG_INT_MODE_9                                 0xc21dc
541 /* [RW 13] The start address in the internal RAM for the cfc_rsp lcid */
542 #define CSDM_REG_CFC_RSP_START_ADDR                             0xc2008
543 /* [RW 16] The maximum value of the competion counter #0 */
544 #define CSDM_REG_CMP_COUNTER_MAX0                               0xc201c
545 /* [RW 16] The maximum value of the competion counter #1 */
546 #define CSDM_REG_CMP_COUNTER_MAX1                               0xc2020
547 /* [RW 16] The maximum value of the competion counter #2 */
548 #define CSDM_REG_CMP_COUNTER_MAX2                               0xc2024
549 /* [RW 16] The maximum value of the competion counter #3 */
550 #define CSDM_REG_CMP_COUNTER_MAX3                               0xc2028
551 /*
552  * [RW 13] The start address in the internal RAM for the completion
553  * counters.
554  */
555 #define CSDM_REG_CMP_COUNTER_START_ADDR                         0xc200c
556 /* [RW 32] Interrupt mask register #0 read/write */
557 #define CSDM_REG_CSDM_INT_MASK_0                                0xc229c
558 #define CSDM_REG_CSDM_INT_MASK_1                                0xc22ac
559 /* [R 32] Interrupt register #0 read */
560 #define CSDM_REG_CSDM_INT_STS_0                                 0xc2290
561 #define CSDM_REG_CSDM_INT_STS_1                                 0xc22a0
562 /* [RW 11] Parity mask register #0 read/write */
563 #define CSDM_REG_CSDM_PRTY_MASK                                 0xc22bc
564 /* [R 11] Parity register #0 read */
565 #define CSDM_REG_CSDM_PRTY_STS                                  0xc22b0
566 #define CSDM_REG_ENABLE_IN1                                     0xc2238
567 #define CSDM_REG_ENABLE_IN2                                     0xc223c
568 #define CSDM_REG_ENABLE_OUT1                                    0xc2240
569 #define CSDM_REG_ENABLE_OUT2                                    0xc2244
570 /*
571  * [RW 4] The initial number of messages that can be sent to the pxp control
572  * interface without receiving any ACK.
573  */
574 #define CSDM_REG_INIT_CREDIT_PXP_CTRL                           0xc24bc
575 /* [ST 32] The number of ACK after placement messages received */
576 #define CSDM_REG_NUM_OF_ACK_AFTER_PLACE                         0xc227c
577 /* [ST 32] The number of packet end messages received from the parser */
578 #define CSDM_REG_NUM_OF_PKT_END_MSG                             0xc2274
579 /* [ST 32] The number of requests received from the pxp async if */
580 #define CSDM_REG_NUM_OF_PXP_ASYNC_REQ                           0xc2278
581 /* [ST 32] The number of commands received in queue 0 */
582 #define CSDM_REG_NUM_OF_Q0_CMD                                  0xc2248
583 /* [ST 32] The number of commands received in queue 10 */
584 #define CSDM_REG_NUM_OF_Q10_CMD                                 0xc226c
585 /* [ST 32] The number of commands received in queue 11 */
586 #define CSDM_REG_NUM_OF_Q11_CMD                                 0xc2270
587 /* [ST 32] The number of commands received in queue 1 */
588 #define CSDM_REG_NUM_OF_Q1_CMD                                  0xc224c
589 /* [ST 32] The number of commands received in queue 3 */
590 #define CSDM_REG_NUM_OF_Q3_CMD                                  0xc2250
591 /* [ST 32] The number of commands received in queue 4 */
592 #define CSDM_REG_NUM_OF_Q4_CMD                                  0xc2254
593 /* [ST 32] The number of commands received in queue 5 */
594 #define CSDM_REG_NUM_OF_Q5_CMD                                  0xc2258
595 /* [ST 32] The number of commands received in queue 6 */
596 #define CSDM_REG_NUM_OF_Q6_CMD                                  0xc225c
597 /* [ST 32] The number of commands received in queue 7 */
598 #define CSDM_REG_NUM_OF_Q7_CMD                                  0xc2260
599 /* [ST 32] The number of commands received in queue 8 */
600 #define CSDM_REG_NUM_OF_Q8_CMD                                  0xc2264
601 /* [ST 32] The number of commands received in queue 9 */
602 #define CSDM_REG_NUM_OF_Q9_CMD                                  0xc2268
603 /* [RW 13] The start address in the internal RAM for queue counters */
604 #define CSDM_REG_Q_COUNTER_START_ADDR                           0xc2010
605 /* [R 1] pxp_ctrl rd_data fifo empty in sdm_dma_rsp block */
606 #define CSDM_REG_RSP_PXP_CTRL_RDATA_EMPTY                       0xc2548
607 /* [R 1] parser fifo empty in sdm_sync block */
608 #define CSDM_REG_SYNC_PARSER_EMPTY                              0xc2550
609 /* [R 1] parser serial fifo empty in sdm_sync block */
610 #define CSDM_REG_SYNC_SYNC_EMPTY                                0xc2558
611 /*
612  * [RW 32] Tick for timer counter. Applicable only when
613  * ~csdm_registers_timer_tick_enable.timer_tick_enable =1
614  */
615 #define CSDM_REG_TIMER_TICK                                     0xc2000
616 /* [RW 5] The number of time_slots in the arbitration cycle */
617 #define CSEM_REG_ARB_CYCLE_SIZE                                 0x200034
618 /*
619  * [RW 3] The source that is associated with arbitration element 0. Source
620  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
621  * sleeping thread with priority 1; 4- sleeping thread with priority 2
622  */
623 #define CSEM_REG_ARB_ELEMENT0                                   0x200020
624 /*
625  * [RW 3] The source that is associated with arbitration element 1. Source
626  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
627  * sleeping thread with priority 1; 4- sleeping thread with priority 2.
628  * Could not be equal to register ~csem_registers_arb_element0.arb_element0.
629  */
630 #define CSEM_REG_ARB_ELEMENT1                                   0x200024
631 /*
632  * [RW 3] The source that is associated with arbitration element 2. Source
633  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
634  * sleeping thread with priority 1; 4- sleeping thread with priority 2.
635  * Could not be equal to register ~csem_registers_arb_element0.arb_element0
636  * and ~csem_registers_arb_element1.arb_element1.
637  */
638 #define CSEM_REG_ARB_ELEMENT2                                   0x200028
639 /*
640  * [RW 3] The source that is associated with arbitration element 3. Source
641  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
642  * sleeping thread with priority 1; 4- sleeping thread with priority 2.Could
643  * not be equal to register ~csem_registers_arb_element0.arb_element0 and
644  * ~csem_registers_arb_element1.arb_element1 and
645  * ~csem_registers_arb_element2.arb_element2.
646  */
647 #define CSEM_REG_ARB_ELEMENT3                                   0x20002c
648 /*
649  * [RW 3] The source that is associated with arbitration element 4. Source
650  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
651  * sleeping thread with priority 1; 4- sleeping thread with priority 2.
652  * Could not be equal to register ~csem_registers_arb_element0.arb_element0
653  * and ~csem_registers_arb_element1.arb_element1 and
654  * ~csem_registers_arb_element2.arb_element2 and
655  * ~csem_registers_arb_element3.arb_element3.
656  */
657 #define CSEM_REG_ARB_ELEMENT4                                   0x200030
658 /* [RW 32] Interrupt mask register #0 read/write */
659 #define CSEM_REG_CSEM_INT_MASK_0                                0x200110
660 #define CSEM_REG_CSEM_INT_MASK_1                                0x200120
661 /* [R 32] Interrupt register #0 read */
662 #define CSEM_REG_CSEM_INT_STS_0                                 0x200104
663 #define CSEM_REG_CSEM_INT_STS_1                                 0x200114
664 /* [RW 32] Parity mask register #0 read/write */
665 #define CSEM_REG_CSEM_PRTY_MASK_0                               0x200130
666 #define CSEM_REG_CSEM_PRTY_MASK_1                               0x200140
667 /* [R 32] Parity register #0 read */
668 #define CSEM_REG_CSEM_PRTY_STS_0                                0x200124
669 #define CSEM_REG_CSEM_PRTY_STS_1                                0x200134
670 #define CSEM_REG_ENABLE_IN                                      0x2000a4
671 #define CSEM_REG_ENABLE_OUT                                     0x2000a8
672 /*
673  * [RW 32] This address space contains all registers and memories that are
674  * placed in SEM_FAST block. The SEM_FAST registers are described in
675  * appendix B. In order to access the sem_fast registers the base address
676  * ~fast_memory.fast_memory should be added to eachsem_fast register offset.
677  */
678 #define CSEM_REG_FAST_MEMORY                                    0x220000
679 /*
680  * [RW 1] Disables input messages from FIC0 May be updated during run_time
681  * by the microcode.
682  */
683 #define CSEM_REG_FIC0_DISABLE                                   0x200224
684 /*
685  * [RW 1] Disables input messages from FIC1 May be updated during run_time
686  * by the microcode.
687  */
688 #define CSEM_REG_FIC1_DISABLE                                   0x200234
689 /*
690  * [RW 15] Interrupt table Read and write access to it is not possible in
691  * the middle of the work
692  */
693 #define CSEM_REG_INT_TABLE                                      0x200400
694 /*
695  * [ST 24] Statistics register. The number of messages that entered through
696  FIC0
697  */
698 #define CSEM_REG_MSG_NUM_FIC0                                   0x200000
699 /*
700  * [ST 24] Statistics register. The number of messages that entered through
701  * FIC1
702  */
703 #define CSEM_REG_MSG_NUM_FIC1                                   0x200004
704 /*
705  * [ST 24] Statistics register. The number of messages that were sent to
706  * FOC0
707  */
708 #define CSEM_REG_MSG_NUM_FOC0                                   0x200008
709 /*
710  * [ST 24] Statistics register. The number of messages that were sent to
711  * FOC1
712  */
713 #define CSEM_REG_MSG_NUM_FOC1                                   0x20000c
714 /*
715  * [ST 24] Statistics register. The number of messages that were sent to
716  * FOC2
717  */
718 #define CSEM_REG_MSG_NUM_FOC2                                   0x200010
719 /*
720  * [ST 24] Statistics register. The number of messages that were sent to
721  * FOC3
722  */
723 #define CSEM_REG_MSG_NUM_FOC3                                   0x200014
724 /*
725  * [RW 1] Disables input messages from the passive buffer May be updated
726  * during run_time by the microcode.
727  */
728 #define CSEM_REG_PAS_DISABLE                                    0x20024c
729 /* [WB 128] Debug only. Passive buffer memory */
730 #define CSEM_REG_PASSIVE_BUFFER                                 0x202000
731 /* [WB 46] pram memory. B45 is parity; b[44:0] - data. */
732 #define CSEM_REG_PRAM                                           0x240000
733 /* [R 16] Valid sleeping threads indication have bit per thread */
734 #define CSEM_REG_SLEEP_THREADS_VALID                            0x20026c
735 /* [R 1] EXT_STORE FIFO is empty in sem_slow_ls_ext */
736 #define CSEM_REG_SLOW_EXT_STORE_EMPTY                           0x2002a0
737 /* [RW 16] List of free threads . There is a bit per thread. */
738 #define CSEM_REG_THREADS_LIST                                   0x2002e4
739 /* [RW 3] The arbitration scheme of time_slot 0 */
740 #define CSEM_REG_TS_0_AS                                        0x200038
741 /* [RW 3] The arbitration scheme of time_slot 10 */
742 #define CSEM_REG_TS_10_AS                                       0x200060
743 /* [RW 3] The arbitration scheme of time_slot 11 */
744 #define CSEM_REG_TS_11_AS                                       0x200064
745 /* [RW 3] The arbitration scheme of time_slot 12 */
746 #define CSEM_REG_TS_12_AS                                       0x200068
747 /* [RW 3] The arbitration scheme of time_slot 13 */
748 #define CSEM_REG_TS_13_AS                                       0x20006c
749 /* [RW 3] The arbitration scheme of time_slot 14 */
750 #define CSEM_REG_TS_14_AS                                       0x200070
751 /* [RW 3] The arbitration scheme of time_slot 15 */
752 #define CSEM_REG_TS_15_AS                                       0x200074
753 /* [RW 3] The arbitration scheme of time_slot 16 */
754 #define CSEM_REG_TS_16_AS                                       0x200078
755 /* [RW 3] The arbitration scheme of time_slot 17 */
756 #define CSEM_REG_TS_17_AS                                       0x20007c
757 /* [RW 3] The arbitration scheme of time_slot 18 */
758 #define CSEM_REG_TS_18_AS                                       0x200080
759 /* [RW 3] The arbitration scheme of time_slot 1 */
760 #define CSEM_REG_TS_1_AS                                        0x20003c
761 /* [RW 3] The arbitration scheme of time_slot 2 */
762 #define CSEM_REG_TS_2_AS                                        0x200040
763 /* [RW 3] The arbitration scheme of time_slot 3 */
764 #define CSEM_REG_TS_3_AS                                        0x200044
765 /* [RW 3] The arbitration scheme of time_slot 4 */
766 #define CSEM_REG_TS_4_AS                                        0x200048
767 /* [RW 3] The arbitration scheme of time_slot 5 */
768 #define CSEM_REG_TS_5_AS                                        0x20004c
769 /* [RW 3] The arbitration scheme of time_slot 6 */
770 #define CSEM_REG_TS_6_AS                                        0x200050
771 /* [RW 3] The arbitration scheme of time_slot 7 */
772 #define CSEM_REG_TS_7_AS                                        0x200054
773 /* [RW 3] The arbitration scheme of time_slot 8 */
774 #define CSEM_REG_TS_8_AS                                        0x200058
775 /* [RW 3] The arbitration scheme of time_slot 9 */
776 #define CSEM_REG_TS_9_AS                                        0x20005c
777 /* [RW 1] Parity mask register #0 read/write */
778 #define DBG_REG_DBG_PRTY_MASK                                   0xc0a8
779 /* [R 1] Parity register #0 read */
780 #define DBG_REG_DBG_PRTY_STS                                    0xc09c
781 /*
782  * [RW 32] Commands memory. The address to command X; row Y is to calculated
783  * as 14*X+Y.
784  */
785 #define DMAE_REG_CMD_MEM                                        0x102400
786 #define DMAE_REG_CMD_MEM_SIZE                                    224
787 /*
788  * [RW 1] If 0 - the CRC-16c initial value is all zeroes; if 1 - the CRC-16c
789  * initial value is all ones.
790  */
791 #define DMAE_REG_CRC16C_INIT                                    0x10201c
792 /*
793  * [RW 1] If 0 - the CRC-16 T10 initial value is all zeroes; if 1 - the
794  * CRC-16 T10 initial value is all ones.
795  */
796 #define DMAE_REG_CRC16T10_INIT                                  0x102020
797 /* [RW 2] Interrupt mask register #0 read/write */
798 #define DMAE_REG_DMAE_INT_MASK                                  0x102054
799 /* [RW 4] Parity mask register #0 read/write */
800 #define DMAE_REG_DMAE_PRTY_MASK                                 0x102064
801 /* [R 4] Parity register #0 read */
802 #define DMAE_REG_DMAE_PRTY_STS                                  0x102058
803 /* [RW 1] Command 0 go. */
804 #define DMAE_REG_GO_C0                                          0x102080
805 /* [RW 1] Command 1 go. */
806 #define DMAE_REG_GO_C1                                          0x102084
807 /* [RW 1] Command 10 go. */
808 #define DMAE_REG_GO_C10                                         0x102088
809 /* [RW 1] Command 11 go. */
810 #define DMAE_REG_GO_C11                                         0x10208c
811 /* [RW 1] Command 12 go. */
812 #define DMAE_REG_GO_C12                                         0x102090
813 /* [RW 1] Command 13 go. */
814 #define DMAE_REG_GO_C13                                         0x102094
815 /* [RW 1] Command 14 go. */
816 #define DMAE_REG_GO_C14                                         0x102098
817 /* [RW 1] Command 15 go. */
818 #define DMAE_REG_GO_C15                                         0x10209c
819 /* [RW 1] Command 2 go. */
820 #define DMAE_REG_GO_C2                                          0x1020a0
821 /* [RW 1] Command 3 go. */
822 #define DMAE_REG_GO_C3                                          0x1020a4
823 /* [RW 1] Command 4 go. */
824 #define DMAE_REG_GO_C4                                          0x1020a8
825 /* [RW 1] Command 5 go. */
826 #define DMAE_REG_GO_C5                                          0x1020ac
827 /* [RW 1] Command 6 go. */
828 #define DMAE_REG_GO_C6                                          0x1020b0
829 /* [RW 1] Command 7 go. */
830 #define DMAE_REG_GO_C7                                          0x1020b4
831 /* [RW 1] Command 8 go. */
832 #define DMAE_REG_GO_C8                                          0x1020b8
833 /* [RW 1] Command 9 go. */
834 #define DMAE_REG_GO_C9                                          0x1020bc
835 /*
836  * [RW 1] DMAE GRC Interface (Target; aster) enable. If 0 - the acknowledge
837  * input is disregarded; valid is deasserted; all other signals are treated
838  * as usual; if 1 - normal activity.
839  */
840 #define DMAE_REG_GRC_IFEN                                       0x102008
841 /*
842  * [RW 1] DMAE PCI Interface (Request; ead; rite) enable. If 0 - the
843  * acknowledge input is disregarded; valid is deasserted; full is asserted;
844  * all other signals are treated as usual; if 1 - normal activity.
845  */
846 #define DMAE_REG_PCI_IFEN                                       0x102004
847 /*
848  * [RW 4] DMAE- PCI Request Interface initial credit. Write writes the
849  * initial value to the credit counter; related to the address. Read returns
850  * the current value of the counter.
851  */
852 #define DMAE_REG_PXP_REQ_INIT_CRD                               0x1020c0
853 /* [RW 8] Aggregation command. */
854 #define DORQ_REG_AGG_CMD0                                       0x170060
855 /* [RW 8] Aggregation command. */
856 #define DORQ_REG_AGG_CMD1                                       0x170064
857 /* [RW 8] Aggregation command. */
858 #define DORQ_REG_AGG_CMD2                                       0x170068
859 /* [RW 8] Aggregation command. */
860 #define DORQ_REG_AGG_CMD3                                       0x17006c
861 /* [RW 28] UCM Header. */
862 #define DORQ_REG_CMHEAD_RX                                      0x170050
863 /* [RW 32] Doorbell address for RBC doorbells (function 0). */
864 #define DORQ_REG_DB_ADDR0                                       0x17008c
865 /* [RW 5] Interrupt mask register #0 read/write */
866 #define DORQ_REG_DORQ_INT_MASK                                  0x170180
867 /* [R 5] Interrupt register #0 read */
868 #define DORQ_REG_DORQ_INT_STS                                   0x170174
869 /* [RC 5] Interrupt register #0 read clear */
870 #define DORQ_REG_DORQ_INT_STS_CLR                               0x170178
871 /* [RW 2] Parity mask register #0 read/write */
872 #define DORQ_REG_DORQ_PRTY_MASK                                 0x170190
873 /* [R 2] Parity register #0 read */
874 #define DORQ_REG_DORQ_PRTY_STS                                  0x170184
875 /* [RW 8] The address to write the DPM CID to STORM. */
876 #define DORQ_REG_DPM_CID_ADDR                                   0x170044
877 /* [RW 5] The DPM mode CID extraction offset. */
878 #define DORQ_REG_DPM_CID_OFST                                   0x170030
879 /* [RW 12] The threshold of the DQ FIFO to send the almost full interrupt. */
880 #define DORQ_REG_DQ_FIFO_AFULL_TH                               0x17007c
881 /* [RW 12] The threshold of the DQ FIFO to send the full interrupt. */
882 #define DORQ_REG_DQ_FIFO_FULL_TH                                0x170078
883 /*
884  * [R 13] Current value of the DQ FIFO fill level according to following
885  * pointer. The range is 0 - 256 FIFO rows; where each row stands for the
886  * doorbell.
887  */
888 #define DORQ_REG_DQ_FILL_LVLF                                   0x1700a4
889 /*
890  * [R 1] DQ FIFO full status. Is set; when FIFO filling level is more o
891  * equal to full threshold; reset on full clear.
892  */
893 #define DORQ_REG_DQ_FULL_ST                                     0x1700c0
894 /* [RW 28] The value sent to CM header in the case of CFC load error. */
895 #define DORQ_REG_ERR_CMHEAD                                     0x170058
896 #define DORQ_REG_IF_EN                                          0x170004
897 #define DORQ_REG_MODE_ACT                                       0x170008
898 /* [RW 5] The normal mode CID extraction offset. */
899 #define DORQ_REG_NORM_CID_OFST                                  0x17002c
900 /* [RW 28] TCM Header when only TCP context is loaded. */
901 #define DORQ_REG_NORM_CMHEAD_TX                                 0x17004c
902 /*
903  * [RW 3] The number of simultaneous outstanding requests to Context Fetc
904  * Interface.
905  */
906 #define DORQ_REG_OUTST_REQ                                      0x17003c
907 #define DORQ_REG_REGN                                           0x170038
908 /*
909  * [R 4] Current value of response A counter credit. Initial credit i
910  * configured through write to ~dorq_registers_rsp_init_crd.rsp_init_crd
911  * register.
912  */
913 #define DORQ_REG_RSPA_CRD_CNT                                   0x1700ac
914 /*
915  * [R 4] Current value of response B counter credit. Initial credit i
916  * configured through write to ~dorq_registers_rsp_init_crd.rsp_init_crd
917  * register.
918  */
919 #define DORQ_REG_RSPB_CRD_CNT                                   0x1700b0
920 /*
921  * [RW 4] The initial credit at the Doorbell Response Interface. The writ
922  * writes the same initial credit to the rspa_crd_cnt and rspb_crd_cnt. The
923  * read reads this written value.
924  */
925 #define DORQ_REG_RSP_INIT_CRD                                   0x170048
926 /*
927  * [RW 4] Initial activity counter value on the load request; when th
928  * shortcut is done.
929  */
930 #define DORQ_REG_SHRT_ACT_CNT                                   0x170070
931 /* [RW 28] TCM Header when both ULP and TCP context is loaded. */
932 #define DORQ_REG_SHRT_CMHEAD                                    0x170054
933 #define HC_CONFIG_0_REG_ATTN_BIT_EN_0                            (0x1<<4)
934 #define HC_CONFIG_0_REG_INT_LINE_EN_0                            (0x1<<3)
935 #define HC_CONFIG_0_REG_MSI_ATTN_EN_0                            (0x1<<7)
936 #define HC_CONFIG_0_REG_MSI_MSIX_INT_EN_0                        (0x1<<2)
937 #define HC_CONFIG_0_REG_SINGLE_ISR_EN_0                          (0x1<<1)
938 #define HC_REG_AGG_INT_0                                        0x108050
939 #define HC_REG_AGG_INT_1                                        0x108054
940 #define HC_REG_ATTN_BIT                                         0x108120
941 #define HC_REG_ATTN_IDX                                         0x108100
942 #define HC_REG_ATTN_MSG0_ADDR_L                                 0x108018
943 #define HC_REG_ATTN_MSG1_ADDR_L                                 0x108020
944 #define HC_REG_ATTN_NUM_P0                                      0x108038
945 #define HC_REG_ATTN_NUM_P1                                      0x10803c
946 #define HC_REG_COMMAND_REG                                      0x108180
947 #define HC_REG_CONFIG_0                                         0x108000
948 #define HC_REG_CONFIG_1                                         0x108004
949 #define HC_REG_FUNC_NUM_P0                                      0x1080ac
950 #define HC_REG_FUNC_NUM_P1                                      0x1080b0
951 /* [RW 3] Parity mask register #0 read/write */
952 #define HC_REG_HC_PRTY_MASK                                     0x1080a0
953 /* [R 3] Parity register #0 read */
954 #define HC_REG_HC_PRTY_STS                                      0x108094
955 #define HC_REG_INT_MASK                                         0x108108
956 #define HC_REG_LEADING_EDGE_0                                   0x108040
957 #define HC_REG_LEADING_EDGE_1                                   0x108048
958 #define HC_REG_P0_PROD_CONS                                     0x108200
959 #define HC_REG_P1_PROD_CONS                                     0x108400
960 #define HC_REG_PBA_COMMAND                                      0x108140
961 #define HC_REG_PCI_CONFIG_0                                     0x108010
962 #define HC_REG_PCI_CONFIG_1                                     0x108014
963 #define HC_REG_STATISTIC_COUNTERS                               0x109000
964 #define HC_REG_TRAILING_EDGE_0                                  0x108044
965 #define HC_REG_TRAILING_EDGE_1                                  0x10804c
966 #define HC_REG_UC_RAM_ADDR_0                                    0x108028
967 #define HC_REG_UC_RAM_ADDR_1                                    0x108030
968 #define HC_REG_USTORM_ADDR_FOR_COALESCE                         0x108068
969 #define HC_REG_VQID_0                                           0x108008
970 #define HC_REG_VQID_1                                           0x10800c
971 #define MCP_REG_MCPR_NVM_ACCESS_ENABLE                          0x86424
972 #define MCP_REG_MCPR_NVM_ADDR                                   0x8640c
973 #define MCP_REG_MCPR_NVM_CFG4                                   0x8642c
974 #define MCP_REG_MCPR_NVM_COMMAND                                0x86400
975 #define MCP_REG_MCPR_NVM_READ                                   0x86410
976 #define MCP_REG_MCPR_NVM_SW_ARB                                 0x86420
977 #define MCP_REG_MCPR_NVM_WRITE                                  0x86408
978 #define MCP_REG_MCPR_SCRATCH                                    0xa0000
979 /*
980  * [R 32] read first 32 bit after inversion of function 0. mapped a
981  * follows: [0] NIG attention for function0; [1] NIG attention for
982  * function1; [2] GPIO1 mcp; [3] GPIO2 mcp; [4] GPIO3 mcp; [5] GPIO4 mcp;
983  * [6] GPIO1 function 1; [7] GPIO2 function 1; [8] GPIO3 function 1; [9]
984  * GPIO4 function 1; [10] PCIE glue/PXP VPD event function0; [11] PCIE
985  * glue/PXP VPD event function1; [12] PCIE glue/PXP Expansion ROM event0;
986  * [13] PCIE glue/PXP Expansion ROM event1; [14] SPIO4; [15] SPIO5; [16]
987  * MSI/X indication for mcp; [17] MSI/X indication for function 1; [18] BRB
988  * Parity error; [19] BRB Hw interrupt; [20] PRS Parity error; [21] PRS Hw
989  * interrupt; [22] SRC Parity error; [23] SRC Hw interrupt; [24] TSDM Parity
990  * error; [25] TSDM Hw interrupt; [26] TCM Parity error; [27] TCM Hw
991  * interrupt; [28] TSEMI Parity error; [29] TSEMI Hw interrupt; [30] PBF
992  * Parity error; [31] PBF Hw interrupt;
993  */
994 #define MISC_REG_AEU_AFTER_INVERT_1_FUNC_0                      0xa42c
995 #define MISC_REG_AEU_AFTER_INVERT_1_FUNC_1                      0xa430
996 /*
997  * [R 32] read first 32 bit after inversion of mcp. mapped as follows: [0
998  * NIG attention for function0; [1] NIG attention for function1; [2] GPIO1
999  * mcp; [3] GPIO2 mcp; [4] GPIO3 mcp; [5] GPIO4 mcp; [6] GPIO1 function 1;
1000  * [7] GPIO2 function 1; [8] GPIO3 function 1; [9] GPIO4 function 1; [10]
1001  * PCIE glue/PXP VPD event function0; [11] PCIE glue/PXP VPD event
1002  * function1; [12] PCIE glue/PXP Expansion ROM event0; [13] PCIE glue/PXP
1003  * Expansion ROM event1; [14] SPIO4; [15] SPIO5; [16] MSI/X indication for
1004  * mcp; [17] MSI/X indication for function 1; [18] BRB Parity error; [19]
1005  * BRB Hw interrupt; [20] PRS Parity error; [21] PRS Hw interrupt; [22] SRC
1006  * Parity error; [23] SRC Hw interrupt; [24] TSDM Parity error; [25] TSDM Hw
1007  * interrupt; [26] TCM Parity error; [27] TCM Hw interrupt; [28] TSEMI
1008  * Parity error; [29] TSEMI Hw interrupt; [30] PBF Parity error; [31] PBF Hw
1009  * interrupt;
1010  */
1011 #define MISC_REG_AEU_AFTER_INVERT_1_MCP                         0xa434
1012 /*
1013  * [R 32] read second 32 bit after inversion of function 0. mapped a
1014  * follows: [0] PBClient Parity error; [1] PBClient Hw interrupt; [2] QM
1015  * Parity error; [3] QM Hw interrupt; [4] Timers Parity error; [5] Timers Hw
1016  * interrupt; [6] XSDM Parity error; [7] XSDM Hw interrupt; [8] XCM Parity
1017  * error; [9] XCM Hw interrupt; [10] XSEMI Parity error; [11] XSEMI Hw
1018  * interrupt; [12] DoorbellQ Parity error; [13] DoorbellQ Hw interrupt; [14]
1019  * NIG Parity error; [15] NIG Hw interrupt; [16] Vaux PCI core Parity error;
1020  * [17] Vaux PCI core Hw interrupt; [18] Debug Parity error; [19] Debug Hw
1021  * interrupt; [20] USDM Parity error; [21] USDM Hw interrupt; [22] UCM
1022  * Parity error; [23] UCM Hw interrupt; [24] USEMI Parity error; [25] USEMI
1023  * Hw interrupt; [26] UPB Parity error; [27] UPB Hw interrupt; [28] CSDM
1024  * Parity error; [29] CSDM Hw interrupt; [30] CCM Parity error; [31] CCM Hw
1025  * interrupt;
1026  */
1027 #define MISC_REG_AEU_AFTER_INVERT_2_FUNC_0                      0xa438
1028 #define MISC_REG_AEU_AFTER_INVERT_2_FUNC_1                      0xa43c
1029 /*
1030  * [R 32] read second 32 bit after inversion of mcp. mapped as follows: [0
1031  * PBClient Parity error; [1] PBClient Hw interrupt; [2] QM Parity error;
1032  * [3] QM Hw interrupt; [4] Timers Parity error; [5] Timers Hw interrupt;
1033  * [6] XSDM Parity error; [7] XSDM Hw interrupt; [8] XCM Parity error; [9]
1034  * XCM Hw interrupt; [10] XSEMI Parity error; [11] XSEMI Hw interrupt; [12]
1035  * DoorbellQ Parity error; [13] DoorbellQ Hw interrupt; [14] NIG Parity
1036  * error; [15] NIG Hw interrupt; [16] Vaux PCI core Parity error; [17] Vaux
1037  * PCI core Hw interrupt; [18] Debug Parity error; [19] Debug Hw interrupt;
1038  * [20] USDM Parity error; [21] USDM Hw interrupt; [22] UCM Parity error;
1039  * [23] UCM Hw interrupt; [24] USEMI Parity error; [25] USEMI Hw interrupt;
1040  * [26] UPB Parity error; [27] UPB Hw interrupt; [28] CSDM Parity error;
1041  * [29] CSDM Hw interrupt; [30] CCM Parity error; [31] CCM Hw interrupt;
1042  */
1043 #define MISC_REG_AEU_AFTER_INVERT_2_MCP                         0xa440
1044 /*
1045  * [R 32] read third 32 bit after inversion of function 0. mapped a
1046  * follows: [0] CSEMI Parity error; [1] CSEMI Hw interrupt; [2] PXP Parity
1047  * error; [3] PXP Hw interrupt; [4] PXPpciClockClient Parity error; [5]
1048  * PXPpciClockClient Hw interrupt; [6] CFC Parity error; [7] CFC Hw
1049  * interrupt; [8] CDU Parity error; [9] CDU Hw interrupt; [10] DMAE Parity
1050  * error; [11] DMAE Hw interrupt; [12] IGU (HC) Parity error; [13] IGU (HC)
1051  * Hw interrupt; [14] MISC Parity error; [15] MISC Hw interrupt; [16]
1052  * pxp_misc_mps_attn; [17] Flash event; [18] SMB event; [19] MCP attn0; [20]
1053  * MCP attn1; [21] SW timers attn_1 func0; [22] SW timers attn_2 func0; [23]
1054  * SW timers attn_3 func0; [24] SW timers attn_4 func0; [25] PERST; [26] SW
1055  * timers attn_1 func1; [27] SW timers attn_2 func1; [28] SW timers attn_3
1056  * func1; [29] SW timers attn_4 func1; [30] General attn0; [31] General
1057  * attn1;
1058  */
1059 #define MISC_REG_AEU_AFTER_INVERT_3_FUNC_0                      0xa444
1060 #define MISC_REG_AEU_AFTER_INVERT_3_FUNC_1                      0xa448
1061 /*
1062  * [R 32] read third 32 bit after inversion of mcp. mapped as follows: [0
1063  * CSEMI Parity error; [1] CSEMI Hw interrupt; [2] PXP Parity error; [3] PXP
1064  * Hw interrupt; [4] PXPpciClockClient Parity error; [5] PXPpciClockClient
1065  * Hw interrupt; [6] CFC Parity error; [7] CFC Hw interrupt; [8] CDU Parity
1066  * error; [9] CDU Hw interrupt; [10] DMAE Parity error; [11] DMAE Hw
1067  * interrupt; [12] IGU (HC) Parity error; [13] IGU (HC) Hw interrupt; [14]
1068  * MISC Parity error; [15] MISC Hw interrupt; [16] pxp_misc_mps_attn; [17]
1069  * Flash event; [18] SMB event; [19] MCP attn0; [20] MCP attn1; [21] SW
1070  * timers attn_1 func0; [22] SW timers attn_2 func0; [23] SW timers attn_3
1071  * func0; [24] SW timers attn_4 func0; [25] PERST; [26] SW timers attn_1
1072  * func1; [27] SW timers attn_2 func1; [28] SW timers attn_3 func1; [29] SW
1073  * timers attn_4 func1; [30] General attn0; [31] General attn1;
1074  */
1075 #define MISC_REG_AEU_AFTER_INVERT_3_MCP                         0xa44c
1076 /*
1077  * [R 32] read fourth 32 bit after inversion of function 0. mapped a
1078  * follows: [0] General attn2; [1] General attn3; [2] General attn4; [3]
1079  * General attn5; [4] General attn6; [5] General attn7; [6] General attn8;
1080  * [7] General attn9; [8] General attn10; [9] General attn11; [10] General
1081  * attn12; [11] General attn13; [12] General attn14; [13] General attn15;
1082  * [14] General attn16; [15] General attn17; [16] General attn18; [17]
1083  * General attn19; [18] General attn20; [19] General attn21; [20] Main power
1084  * interrupt; [21] RBCR Latched attn; [22] RBCT Latched attn; [23] RBCN
1085  * Latched attn; [24] RBCU Latched attn; [25] RBCP Latched attn; [26] GRC
1086  * Latched timeout attention; [27] GRC Latched reserved access attention;
1087  * [28] MCP Latched rom_parity; [29] MCP Latched ump_rx_parity; [30] MCP
1088  * Latched ump_tx_parity; [31] MCP Latched scpad_parity;
1089  */
1090 #define MISC_REG_AEU_AFTER_INVERT_4_FUNC_0                      0xa450
1091 #define MISC_REG_AEU_AFTER_INVERT_4_FUNC_1                      0xa454
1092 /*
1093  * [R 32] read fourth 32 bit after inversion of mcp. mapped as follows: [0
1094  * General attn2; [1] General attn3; [2] General attn4; [3] General attn5;
1095  * [4] General attn6; [5] General attn7; [6] General attn8; [7] General
1096  * attn9; [8] General attn10; [9] General attn11; [10] General attn12; [11]
1097  * General attn13; [12] General attn14; [13] General attn15; [14] General
1098  * attn16; [15] General attn17; [16] General attn18; [17] General attn19;
1099  * [18] General attn20; [19] General attn21; [20] Main power interrupt; [21]
1100  * RBCR Latched attn; [22] RBCT Latched attn; [23] RBCN Latched attn; [24]
1101  * RBCU Latched attn; [25] RBCP Latched attn; [26] GRC Latched timeout
1102  * attention; [27] GRC Latched reserved access attention; [28] MCP Latched
1103  * rom_parity; [29] MCP Latched ump_rx_parity; [30] MCP Latched
1104  * ump_tx_parity; [31] MCP Latched scpad_parity;
1105  */
1106 #define MISC_REG_AEU_AFTER_INVERT_4_MCP                         0xa458
1107 /*
1108  * [W 14] write to this register results with the clear of the latche
1109  * signals; one in d0 clears RBCR latch; one in d1 clears RBCT latch; one in
1110  * d2 clears RBCN latch; one in d3 clears RBCU latch; one in d4 clears RBCP
1111  * latch; one in d5 clears GRC Latched timeout attention; one in d6 clears
1112  * GRC Latched reserved access attention; one in d7 clears Latched
1113  * rom_parity; one in d8 clears Latched ump_rx_parity; one in d9 clears
1114  * Latched ump_tx_parity; one in d10 clears Latched scpad_parity (both
1115  * ports); one in d11 clears pxpv_misc_mps_attn; one in d12 clears
1116  * pxp_misc_exp_rom_attn0; one in d13 clears pxp_misc_exp_rom_attn1; read
1117  * from this register return zero
1118  */
1119 #define MISC_REG_AEU_CLR_LATCH_SIGNAL                           0xa45c
1120 /*
1121  * [RW 32] first 32b for enabling the output for function 0 output0. mappe
1122  * as follows: [0] NIG attention for function0; [1] NIG attention for
1123  * function1; [2] GPIO1 function 0; [3] GPIO2 function 0; [4] GPIO3 function
1124  * 0; [5] GPIO4 function 0; [6] GPIO1 function 1; [7] GPIO2 function 1; [8]
1125  * GPIO3 function 1; [9] GPIO4 function 1; [10] PCIE glue/PXP VPD event
1126  * function0; [11] PCIE glue/PXP VPD event function1; [12] PCIE glue/PXP
1127  * Expansion ROM event0; [13] PCIE glue/PXP Expansion ROM event1; [14]
1128  * SPIO4; [15] SPIO5; [16] MSI/X indication for function 0; [17] MSI/X
1129  * indication for function 1; [18] BRB Parity error; [19] BRB Hw interrupt;
1130  * [20] PRS Parity error; [21] PRS Hw interrupt; [22] SRC Parity error; [23]
1131  * SRC Hw interrupt; [24] TSDM Parity error; [25] TSDM Hw interrupt; [26]
1132  * TCM Parity error; [27] TCM Hw interrupt; [28] TSEMI Parity error; [29]
1133  * TSEMI Hw interrupt; [30] PBF Parity error; [31] PBF Hw interrupt;
1134  */
1135 #define MISC_REG_AEU_ENABLE1_FUNC_0_OUT_0                       0xa06c
1136 #define MISC_REG_AEU_ENABLE1_FUNC_0_OUT_1                       0xa07c
1137 #define MISC_REG_AEU_ENABLE1_FUNC_0_OUT_2                       0xa08c
1138 #define MISC_REG_AEU_ENABLE1_FUNC_0_OUT_3                       0xa09c
1139 #define MISC_REG_AEU_ENABLE1_FUNC_0_OUT_5                       0xa0bc
1140 #define MISC_REG_AEU_ENABLE1_FUNC_0_OUT_6                       0xa0cc
1141 #define MISC_REG_AEU_ENABLE1_FUNC_0_OUT_7                       0xa0dc
1142 /*
1143  * [RW 32] first 32b for enabling the output for function 1 output0. mappe
1144  * as follows: [0] NIG attention for function0; [1] NIG attention for
1145  * function1; [2] GPIO1 function 1; [3] GPIO2 function 1; [4] GPIO3 function
1146  * 1; [5] GPIO4 function 1; [6] GPIO1 function 1; [7] GPIO2 function 1; [8]
1147  * GPIO3 function 1; [9] GPIO4 function 1; [10] PCIE glue/PXP VPD event
1148  * function0; [11] PCIE glue/PXP VPD event function1; [12] PCIE glue/PXP
1149  * Expansion ROM event0; [13] PCIE glue/PXP Expansion ROM event1; [14]
1150  * SPIO4; [15] SPIO5; [16] MSI/X indication for function 1; [17] MSI/X
1151  * indication for function 1; [18] BRB Parity error; [19] BRB Hw interrupt;
1152  * [20] PRS Parity error; [21] PRS Hw interrupt; [22] SRC Parity error; [23]
1153  * SRC Hw interrupt; [24] TSDM Parity error; [25] TSDM Hw interrupt; [26]
1154  * TCM Parity error; [27] TCM Hw interrupt; [28] TSEMI Parity error; [29]
1155  * TSEMI Hw interrupt; [30] PBF Parity error; [31] PBF Hw interrupt;
1156  */
1157 #define MISC_REG_AEU_ENABLE1_FUNC_1_OUT_0                       0xa10c
1158 #define MISC_REG_AEU_ENABLE1_FUNC_1_OUT_1                       0xa11c
1159 #define MISC_REG_AEU_ENABLE1_FUNC_1_OUT_2                       0xa12c
1160 #define MISC_REG_AEU_ENABLE1_FUNC_1_OUT_3                       0xa13c
1161 #define MISC_REG_AEU_ENABLE1_FUNC_1_OUT_5                       0xa15c
1162 #define MISC_REG_AEU_ENABLE1_FUNC_1_OUT_6                       0xa16c
1163 #define MISC_REG_AEU_ENABLE1_FUNC_1_OUT_7                       0xa17c
1164 /*
1165  * [RW 32] first 32b for enabling the output for close the gate nig. mappe
1166  * as follows: [0] NIG attention for function0; [1] NIG attention for
1167  * function1; [2] GPIO1 function 0; [3] GPIO2 function 0; [4] GPIO3 function
1168  * 0; [5] GPIO4 function 0; [6] GPIO1 function 1; [7] GPIO2 function 1; [8]
1169  * GPIO3 function 1; [9] GPIO4 function 1; [10] PCIE glue/PXP VPD event
1170  * function0; [11] PCIE glue/PXP VPD event function1; [12] PCIE glue/PXP
1171  * Expansion ROM event0; [13] PCIE glue/PXP Expansion ROM event1; [14]
1172  * SPIO4; [15] SPIO5; [16] MSI/X indication for function 0; [17] MSI/X
1173  * indication for function 1; [18] BRB Parity error; [19] BRB Hw interrupt;
1174  * [20] PRS Parity error; [21] PRS Hw interrupt; [22] SRC Parity error; [23]
1175  * SRC Hw interrupt; [24] TSDM Parity error; [25] TSDM Hw interrupt; [26]
1176  * TCM Parity error; [27] TCM Hw interrupt; [28] TSEMI Parity error; [29]
1177  * TSEMI Hw interrupt; [30] PBF Parity error; [31] PBF Hw interrupt;
1178  */
1179 #define MISC_REG_AEU_ENABLE1_NIG_0                              0xa0ec
1180 #define MISC_REG_AEU_ENABLE1_NIG_1                              0xa18c
1181 /*
1182  * [RW 32] first 32b for enabling the output for close the gate pxp. mappe
1183  * as follows: [0] NIG attention for function0; [1] NIG attention for
1184  * function1; [2] GPIO1 function 0; [3] GPIO2 function 0; [4] GPIO3 function
1185  * 0; [5] GPIO4 function 0; [6] GPIO1 function 1; [7] GPIO2 function 1; [8]
1186  * GPIO3 function 1; [9] GPIO4 function 1; [10] PCIE glue/PXP VPD event
1187  * function0; [11] PCIE glue/PXP VPD event function1; [12] PCIE glue/PXP
1188  * Expansion ROM event0; [13] PCIE glue/PXP Expansion ROM event1; [14]
1189  * SPIO4; [15] SPIO5; [16] MSI/X indication for function 0; [17] MSI/X
1190  * indication for function 1; [18] BRB Parity error; [19] BRB Hw interrupt;
1191  * [20] PRS Parity error; [21] PRS Hw interrupt; [22] SRC Parity error; [23]
1192  * SRC Hw interrupt; [24] TSDM Parity error; [25] TSDM Hw interrupt; [26]
1193  * TCM Parity error; [27] TCM Hw interrupt; [28] TSEMI Parity error; [29]
1194  * TSEMI Hw interrupt; [30] PBF Parity error; [31] PBF Hw interrupt;
1195  */
1196 #define MISC_REG_AEU_ENABLE1_PXP_0                              0xa0fc
1197 #define MISC_REG_AEU_ENABLE1_PXP_1                              0xa19c
1198 /*
1199  * [RW 32] second 32b for enabling the output for function 0 output0. mappe
1200  * as follows: [0] PBClient Parity error; [1] PBClient Hw interrupt; [2] QM
1201  * Parity error; [3] QM Hw interrupt; [4] Timers Parity error; [5] Timers Hw
1202  * interrupt; [6] XSDM Parity error; [7] XSDM Hw interrupt; [8] XCM Parity
1203  * error; [9] XCM Hw interrupt; [10] XSEMI Parity error; [11] XSEMI Hw
1204  * interrupt; [12] DoorbellQ Parity error; [13] DoorbellQ Hw interrupt; [14]
1205  * NIG Parity error; [15] NIG Hw interrupt; [16] Vaux PCI core Parity error;
1206  * [17] Vaux PCI core Hw interrupt; [18] Debug Parity error; [19] Debug Hw
1207  * interrupt; [20] USDM Parity error; [21] USDM Hw interrupt; [22] UCM
1208  * Parity error; [23] UCM Hw interrupt; [24] USEMI Parity error; [25] USEMI
1209  * Hw interrupt; [26] UPB Parity error; [27] UPB Hw interrupt; [28] CSDM
1210  * Parity error; [29] CSDM Hw interrupt; [30] CCM Parity error; [31] CCM Hw
1211  * interrupt;
1212  */
1213 #define MISC_REG_AEU_ENABLE2_FUNC_0_OUT_0                       0xa070
1214 #define MISC_REG_AEU_ENABLE2_FUNC_0_OUT_1                       0xa080
1215 /*
1216  * [RW 32] second 32b for enabling the output for function 1 output0. mappe
1217  * as follows: [0] PBClient Parity error; [1] PBClient Hw interrupt; [2] QM
1218  * Parity error; [3] QM Hw interrupt; [4] Timers Parity error; [5] Timers Hw
1219  * interrupt; [6] XSDM Parity error; [7] XSDM Hw interrupt; [8] XCM Parity
1220  * error; [9] XCM Hw interrupt; [10] XSEMI Parity error; [11] XSEMI Hw
1221  * interrupt; [12] DoorbellQ Parity error; [13] DoorbellQ Hw interrupt; [14]
1222  * NIG Parity error; [15] NIG Hw interrupt; [16] Vaux PCI core Parity error;
1223  * [17] Vaux PCI core Hw interrupt; [18] Debug Parity error; [19] Debug Hw
1224  * interrupt; [20] USDM Parity error; [21] USDM Hw interrupt; [22] UCM
1225  * Parity error; [23] UCM Hw interrupt; [24] USEMI Parity error; [25] USEMI
1226  * Hw interrupt; [26] UPB Parity error; [27] UPB Hw interrupt; [28] CSDM
1227  * Parity error; [29] CSDM Hw interrupt; [30] CCM Parity error; [31] CCM Hw
1228  * interrupt;
1229  */
1230 #define MISC_REG_AEU_ENABLE2_FUNC_1_OUT_0                       0xa110
1231 #define MISC_REG_AEU_ENABLE2_FUNC_1_OUT_1                       0xa120
1232 /*
1233  * [RW 32] second 32b for enabling the output for close the gate nig. mappe
1234  * as follows: [0] PBClient Parity error; [1] PBClient Hw interrupt; [2] QM
1235  * Parity error; [3] QM Hw interrupt; [4] Timers Parity error; [5] Timers Hw
1236  * interrupt; [6] XSDM Parity error; [7] XSDM Hw interrupt; [8] XCM Parity
1237  * error; [9] XCM Hw interrupt; [10] XSEMI Parity error; [11] XSEMI Hw
1238  * interrupt; [12] DoorbellQ Parity error; [13] DoorbellQ Hw interrupt; [14]
1239  * NIG Parity error; [15] NIG Hw interrupt; [16] Vaux PCI core Parity error;
1240  * [17] Vaux PCI core Hw interrupt; [18] Debug Parity error; [19] Debug Hw
1241  * interrupt; [20] USDM Parity error; [21] USDM Hw interrupt; [22] UCM
1242  * Parity error; [23] UCM Hw interrupt; [24] USEMI Parity error; [25] USEMI
1243  * Hw interrupt; [26] UPB Parity error; [27] UPB Hw interrupt; [28] CSDM
1244  * Parity error; [29] CSDM Hw interrupt; [30] CCM Parity error; [31] CCM Hw
1245  * interrupt;
1246  */
1247 #define MISC_REG_AEU_ENABLE2_NIG_0                              0xa0f0
1248 #define MISC_REG_AEU_ENABLE2_NIG_1                              0xa190
1249 /*
1250  * [RW 32] second 32b for enabling the output for close the gate pxp. mappe
1251  * as follows: [0] PBClient Parity error; [1] PBClient Hw interrupt; [2] QM
1252  * Parity error; [3] QM Hw interrupt; [4] Timers Parity error; [5] Timers Hw
1253  * interrupt; [6] XSDM Parity error; [7] XSDM Hw interrupt; [8] XCM Parity
1254  * error; [9] XCM Hw interrupt; [10] XSEMI Parity error; [11] XSEMI Hw
1255  * interrupt; [12] DoorbellQ Parity error; [13] DoorbellQ Hw interrupt; [14]
1256  * NIG Parity error; [15] NIG Hw interrupt; [16] Vaux PCI core Parity error;
1257  * [17] Vaux PCI core Hw interrupt; [18] Debug Parity error; [19] Debug Hw
1258  * interrupt; [20] USDM Parity error; [21] USDM Hw interrupt; [22] UCM
1259  * Parity error; [23] UCM Hw interrupt; [24] USEMI Parity error; [25] USEMI
1260  * Hw interrupt; [26] UPB Parity error; [27] UPB Hw interrupt; [28] CSDM
1261  * Parity error; [29] CSDM Hw interrupt; [30] CCM Parity error; [31] CCM Hw
1262  * interrupt;
1263  */
1264 #define MISC_REG_AEU_ENABLE2_PXP_0                              0xa100
1265 #define MISC_REG_AEU_ENABLE2_PXP_1                              0xa1a0
1266 /*
1267  * [RW 32] third 32b for enabling the output for function 0 output0. mappe
1268  * as follows: [0] CSEMI Parity error; [1] CSEMI Hw interrupt; [2] PXP
1269  * Parity error; [3] PXP Hw interrupt; [4] PXPpciClockClient Parity error;
1270  * [5] PXPpciClockClient Hw interrupt; [6] CFC Parity error; [7] CFC Hw
1271  * interrupt; [8] CDU Parity error; [9] CDU Hw interrupt; [10] DMAE Parity
1272  * error; [11] DMAE Hw interrupt; [12] IGU (HC) Parity error; [13] IGU (HC)
1273  * Hw interrupt; [14] MISC Parity error; [15] MISC Hw interrupt; [16]
1274  * pxp_misc_mps_attn; [17] Flash event; [18] SMB event; [19] MCP attn0; [20]
1275  * MCP attn1; [21] SW timers attn_1 func0; [22] SW timers attn_2 func0; [23]
1276  * SW timers attn_3 func0; [24] SW timers attn_4 func0; [25] PERST; [26] SW
1277  * timers attn_1 func1; [27] SW timers attn_2 func1; [28] SW timers attn_3
1278  * func1; [29] SW timers attn_4 func1; [30] General attn0; [31] General
1279  * attn1;
1280  */
1281 #define MISC_REG_AEU_ENABLE3_FUNC_0_OUT_0                       0xa074
1282 #define MISC_REG_AEU_ENABLE3_FUNC_0_OUT_1                       0xa084
1283 /*
1284  * [RW 32] third 32b for enabling the output for function 1 output0. mappe
1285  * as follows: [0] CSEMI Parity error; [1] CSEMI Hw interrupt; [2] PXP
1286  * Parity error; [3] PXP Hw interrupt; [4] PXPpciClockClient Parity error;
1287  * [5] PXPpciClockClient Hw interrupt; [6] CFC Parity error; [7] CFC Hw
1288  * interrupt; [8] CDU Parity error; [9] CDU Hw interrupt; [10] DMAE Parity
1289  * error; [11] DMAE Hw interrupt; [12] IGU (HC) Parity error; [13] IGU (HC)
1290  * Hw interrupt; [14] MISC Parity error; [15] MISC Hw interrupt; [16]
1291  * pxp_misc_mps_attn; [17] Flash event; [18] SMB event; [19] MCP attn0; [20]
1292  * MCP attn1; [21] SW timers attn_1 func0; [22] SW timers attn_2 func0; [23]
1293  * SW timers attn_3 func0; [24] SW timers attn_4 func0; [25] PERST; [26] SW
1294  * timers attn_1 func1; [27] SW timers attn_2 func1; [28] SW timers attn_3
1295  * func1; [29] SW timers attn_4 func1; [30] General attn0; [31] General
1296  * attn1;
1297  */
1298 #define MISC_REG_AEU_ENABLE3_FUNC_1_OUT_0                       0xa114
1299 #define MISC_REG_AEU_ENABLE3_FUNC_1_OUT_1                       0xa124
1300 /*
1301  * [RW 32] third 32b for enabling the output for close the gate nig. mappe
1302  * as follows: [0] CSEMI Parity error; [1] CSEMI Hw interrupt; [2] PXP
1303  * Parity error; [3] PXP Hw interrupt; [4] PXPpciClockClient Parity error;
1304  * [5] PXPpciClockClient Hw interrupt; [6] CFC Parity error; [7] CFC Hw
1305  * interrupt; [8] CDU Parity error; [9] CDU Hw interrupt; [10] DMAE Parity
1306  * error; [11] DMAE Hw interrupt; [12] IGU (HC) Parity error; [13] IGU (HC)
1307  * Hw interrupt; [14] MISC Parity error; [15] MISC Hw interrupt; [16]
1308  * pxp_misc_mps_attn; [17] Flash event; [18] SMB event; [19] MCP attn0; [20]
1309  * MCP attn1; [21] SW timers attn_1 func0; [22] SW timers attn_2 func0; [23]
1310  * SW timers attn_3 func0; [24] SW timers attn_4 func0; [25] PERST; [26] SW
1311  * timers attn_1 func1; [27] SW timers attn_2 func1; [28] SW timers attn_3
1312  * func1; [29] SW timers attn_4 func1; [30] General attn0; [31] General
1313  * attn1;
1314  */
1315 #define MISC_REG_AEU_ENABLE3_NIG_0                              0xa0f4
1316 #define MISC_REG_AEU_ENABLE3_NIG_1                              0xa194
1317 /*
1318  * [RW 32] third 32b for enabling the output for close the gate pxp. mappe
1319  * as follows: [0] CSEMI Parity error; [1] CSEMI Hw interrupt; [2] PXP
1320  * Parity error; [3] PXP Hw interrupt; [4] PXPpciClockClient Parity error;
1321  * [5] PXPpciClockClient Hw interrupt; [6] CFC Parity error; [7] CFC Hw
1322  * interrupt; [8] CDU Parity error; [9] CDU Hw interrupt; [10] DMAE Parity
1323  * error; [11] DMAE Hw interrupt; [12] IGU (HC) Parity error; [13] IGU (HC)
1324  * Hw interrupt; [14] MISC Parity error; [15] MISC Hw interrupt; [16]
1325  * pxp_misc_mps_attn; [17] Flash event; [18] SMB event; [19] MCP attn0; [20]
1326  * MCP attn1; [21] SW timers attn_1 func0; [22] SW timers attn_2 func0; [23]
1327  * SW timers attn_3 func0; [24] SW timers attn_4 func0; [25] PERST; [26] SW
1328  * timers attn_1 func1; [27] SW timers attn_2 func1; [28] SW timers attn_3
1329  * func1; [29] SW timers attn_4 func1; [30] General attn0; [31] General
1330  * attn1;
1331  */
1332 #define MISC_REG_AEU_ENABLE3_PXP_0                              0xa104
1333 #define MISC_REG_AEU_ENABLE3_PXP_1                              0xa1a4
1334 /*
1335  * [RW 32] fourth 32b for enabling the output for function 0 output0.mappe
1336  * as follows: [0] General attn2; [1] General attn3; [2] General attn4; [3]
1337  * General attn5; [4] General attn6; [5] General attn7; [6] General attn8;
1338  * [7] General attn9; [8] General attn10; [9] General attn11; [10] General
1339  * attn12; [11] General attn13; [12] General attn14; [13] General attn15;
1340  * [14] General attn16; [15] General attn17; [16] General attn18; [17]
1341  * General attn19; [18] General attn20; [19] General attn21; [20] Main power
1342  * interrupt; [21] RBCR Latched attn; [22] RBCT Latched attn; [23] RBCN
1343  * Latched attn; [24] RBCU Latched attn; [25] RBCP Latched attn; [26] GRC
1344  * Latched timeout attention; [27] GRC Latched reserved access attention;
1345  * [28] MCP Latched rom_parity; [29] MCP Latched ump_rx_parity; [30] MCP
1346  * Latched ump_tx_parity; [31] MCP Latched scpad_parity;
1347  */
1348 #define MISC_REG_AEU_ENABLE4_FUNC_0_OUT_0                       0xa078
1349 #define MISC_REG_AEU_ENABLE4_FUNC_0_OUT_2                       0xa098
1350 #define MISC_REG_AEU_ENABLE4_FUNC_0_OUT_4                       0xa0b8
1351 #define MISC_REG_AEU_ENABLE4_FUNC_0_OUT_5                       0xa0c8
1352 #define MISC_REG_AEU_ENABLE4_FUNC_0_OUT_6                       0xa0d8
1353 #define MISC_REG_AEU_ENABLE4_FUNC_0_OUT_7                       0xa0e8
1354 /*
1355  * [RW 32] fourth 32b for enabling the output for function 1 output0.mappe
1356  * as follows: [0] General attn2; [1] General attn3; [2] General attn4; [3]
1357  * General attn5; [4] General attn6; [5] General attn7; [6] General attn8;
1358  * [7] General attn9; [8] General attn10; [9] General attn11; [10] General
1359  * attn12; [11] General attn13; [12] General attn14; [13] General attn15;
1360  * [14] General attn16; [15] General attn17; [16] General attn18; [17]
1361  * General attn19; [18] General attn20; [19] General attn21; [20] Main power
1362  * interrupt; [21] RBCR Latched attn; [22] RBCT Latched attn; [23] RBCN
1363  * Latched attn; [24] RBCU Latched attn; [25] RBCP Latched attn; [26] GRC
1364  * Latched timeout attention; [27] GRC Latched reserved access attention;
1365  * [28] MCP Latched rom_parity; [29] MCP Latched ump_rx_parity; [30] MCP
1366  * Latched ump_tx_parity; [31] MCP Latched scpad_parity;
1367  */
1368 #define MISC_REG_AEU_ENABLE4_FUNC_1_OUT_0                       0xa118
1369 #define MISC_REG_AEU_ENABLE4_FUNC_1_OUT_2                       0xa138
1370 #define MISC_REG_AEU_ENABLE4_FUNC_1_OUT_4                       0xa158
1371 #define MISC_REG_AEU_ENABLE4_FUNC_1_OUT_5                       0xa168
1372 #define MISC_REG_AEU_ENABLE4_FUNC_1_OUT_6                       0xa178
1373 #define MISC_REG_AEU_ENABLE4_FUNC_1_OUT_7                       0xa188
1374 /*
1375  * [RW 32] fourth 32b for enabling the output for close the gate nig.mappe
1376  * as follows: [0] General attn2; [1] General attn3; [2] General attn4; [3]
1377  * General attn5; [4] General attn6; [5] General attn7; [6] General attn8;
1378  * [7] General attn9; [8] General attn10; [9] General attn11; [10] General
1379  * attn12; [11] General attn13; [12] General attn14; [13] General attn15;
1380  * [14] General attn16; [15] General attn17; [16] General attn18; [17]
1381  * General attn19; [18] General attn20; [19] General attn21; [20] Main power
1382  * interrupt; [21] RBCR Latched attn; [22] RBCT Latched attn; [23] RBCN
1383  * Latched attn; [24] RBCU Latched attn; [25] RBCP Latched attn; [26] GRC
1384  * Latched timeout attention; [27] GRC Latched reserved access attention;
1385  * [28] MCP Latched rom_parity; [29] MCP Latched ump_rx_parity; [30] MCP
1386  * Latched ump_tx_parity; [31] MCP Latched scpad_parity;
1387  */
1388 #define MISC_REG_AEU_ENABLE4_NIG_0                              0xa0f8
1389 #define MISC_REG_AEU_ENABLE4_NIG_1                              0xa198
1390 /*
1391  * [RW 32] fourth 32b for enabling the output for close the gate pxp.mappe
1392  * as follows: [0] General attn2; [1] General attn3; [2] General attn4; [3]
1393  * General attn5; [4] General attn6; [5] General attn7; [6] General attn8;
1394  * [7] General attn9; [8] General attn10; [9] General attn11; [10] General
1395  * attn12; [11] General attn13; [12] General attn14; [13] General attn15;
1396  * [14] General attn16; [15] General attn17; [16] General attn18; [17]
1397  * General attn19; [18] General attn20; [19] General attn21; [20] Main power
1398  * interrupt; [21] RBCR Latched attn; [22] RBCT Latched attn; [23] RBCN
1399  * Latched attn; [24] RBCU Latched attn; [25] RBCP Latched attn; [26] GRC
1400  * Latched timeout attention; [27] GRC Latched reserved access attention;
1401  * [28] MCP Latched rom_parity; [29] MCP Latched ump_rx_parity; [30] MCP
1402  * Latched ump_tx_parity; [31] MCP Latched scpad_parity;
1403  */
1404 #define MISC_REG_AEU_ENABLE4_PXP_0                              0xa108
1405 #define MISC_REG_AEU_ENABLE4_PXP_1                              0xa1a8
1406 /*
1407  * [RW 1] set/clr general attention 0; this will set/clr bit 94 in the ae
1408  * 128 bit vector
1409  */
1410 #define MISC_REG_AEU_GENERAL_ATTN_0                             0xa000
1411 #define MISC_REG_AEU_GENERAL_ATTN_1                             0xa004
1412 #define MISC_REG_AEU_GENERAL_ATTN_10                            0xa028
1413 #define MISC_REG_AEU_GENERAL_ATTN_11                            0xa02c
1414 #define MISC_REG_AEU_GENERAL_ATTN_12                            0xa030
1415 #define MISC_REG_AEU_GENERAL_ATTN_2                             0xa008
1416 #define MISC_REG_AEU_GENERAL_ATTN_3                             0xa00c
1417 #define MISC_REG_AEU_GENERAL_ATTN_4                             0xa010
1418 #define MISC_REG_AEU_GENERAL_ATTN_5                             0xa014
1419 #define MISC_REG_AEU_GENERAL_ATTN_6                             0xa018
1420 #define MISC_REG_AEU_GENERAL_ATTN_7                             0xa01c
1421 #define MISC_REG_AEU_GENERAL_ATTN_8                             0xa020
1422 #define MISC_REG_AEU_GENERAL_ATTN_9                             0xa024
1423 #define MISC_REG_AEU_GENERAL_MASK                               0xa61c
1424 /*
1425  * [RW 32] first 32b for inverting the input for function 0; for each bit
1426  * 0= do not invert; 1= invert; mapped as follows: [0] NIG attention for
1427  * function0; [1] NIG attention for function1; [2] GPIO1 mcp; [3] GPIO2 mcp;
1428  * [4] GPIO3 mcp; [5] GPIO4 mcp; [6] GPIO1 function 1; [7] GPIO2 function 1;
1429  * [8] GPIO3 function 1; [9] GPIO4 function 1; [10] PCIE glue/PXP VPD event
1430  * function0; [11] PCIE glue/PXP VPD event function1; [12] PCIE glue/PXP
1431  * Expansion ROM event0; [13] PCIE glue/PXP Expansion ROM event1; [14]
1432  * SPIO4; [15] SPIO5; [16] MSI/X indication for mcp; [17] MSI/X indication
1433  * for function 1; [18] BRB Parity error; [19] BRB Hw interrupt; [20] PRS
1434  * Parity error; [21] PRS Hw interrupt; [22] SRC Parity error; [23] SRC Hw
1435  * interrupt; [24] TSDM Parity error; [25] TSDM Hw interrupt; [26] TCM
1436  * Parity error; [27] TCM Hw interrupt; [28] TSEMI Parity error; [29] TSEMI
1437  * Hw interrupt; [30] PBF Parity error; [31] PBF Hw interrupt;
1438  */
1439 #define MISC_REG_AEU_INVERTER_1_FUNC_0                          0xa22c
1440 #define MISC_REG_AEU_INVERTER_1_FUNC_1                          0xa23c
1441 /*
1442  * [RW 32] second 32b for inverting the input for function 0; for each bit
1443  * 0= do not invert; 1= invert. mapped as follows: [0] PBClient Parity
1444  * error; [1] PBClient Hw interrupt; [2] QM Parity error; [3] QM Hw
1445  * interrupt; [4] Timers Parity error; [5] Timers Hw interrupt; [6] XSDM
1446  * Parity error; [7] XSDM Hw interrupt; [8] XCM Parity error; [9] XCM Hw
1447  * interrupt; [10] XSEMI Parity error; [11] XSEMI Hw interrupt; [12]
1448  * DoorbellQ Parity error; [13] DoorbellQ Hw interrupt; [14] NIG Parity
1449  * error; [15] NIG Hw interrupt; [16] Vaux PCI core Parity error; [17] Vaux
1450  * PCI core Hw interrupt; [18] Debug Parity error; [19] Debug Hw interrupt;
1451  * [20] USDM Parity error; [21] USDM Hw interrupt; [22] UCM Parity error;
1452  * [23] UCM Hw interrupt; [24] USEMI Parity error; [25] USEMI Hw interrupt;
1453  * [26] UPB Parity error; [27] UPB Hw interrupt; [28] CSDM Parity error;
1454  * [29] CSDM Hw interrupt; [30] CCM Parity error; [31] CCM Hw interrupt;
1455  */
1456 #define MISC_REG_AEU_INVERTER_2_FUNC_0                          0xa230
1457 #define MISC_REG_AEU_INVERTER_2_FUNC_1                          0xa240
1458 /*
1459  * [RW 10] [7:0] = mask 8 attention output signals toward IGU function0
1460  * [9:8] = raserved. Zero = mask; one = unmask
1461  */
1462 #define MISC_REG_AEU_MASK_ATTN_FUNC_0                           0xa060
1463 #define MISC_REG_AEU_MASK_ATTN_FUNC_1                           0xa064
1464 /* [RW 1] If set a system kill occurred */
1465 #define MISC_REG_AEU_SYS_KILL_OCCURRED                          0xa610
1466 /*
1467  * [RW 32] Represent the status of the input vector to the AEU when a syste
1468  * kill occurred. The register is reset in por reset. Mapped as follows: [0]
1469  * NIG attention for function0; [1] NIG attention for function1; [2] GPIO1
1470  * mcp; [3] GPIO2 mcp; [4] GPIO3 mcp; [5] GPIO4 mcp; [6] GPIO1 function 1;
1471  * [7] GPIO2 function 1; [8] GPIO3 function 1; [9] GPIO4 function 1; [10]
1472  * PCIE glue/PXP VPD event function0; [11] PCIE glue/PXP VPD event
1473  * function1; [12] PCIE glue/PXP Expansion ROM event0; [13] PCIE glue/PXP
1474  * Expansion ROM event1; [14] SPIO4; [15] SPIO5; [16] MSI/X indication for
1475  * mcp; [17] MSI/X indication for function 1; [18] BRB Parity error; [19]
1476  * BRB Hw interrupt; [20] PRS Parity error; [21] PRS Hw interrupt; [22] SRC
1477  * Parity error; [23] SRC Hw interrupt; [24] TSDM Parity error; [25] TSDM Hw
1478  * interrupt; [26] TCM Parity error; [27] TCM Hw interrupt; [28] TSEMI
1479  * Parity error; [29] TSEMI Hw interrupt; [30] PBF Parity error; [31] PBF Hw
1480  * interrupt;
1481  */
1482 #define MISC_REG_AEU_SYS_KILL_STATUS_0                          0xa600
1483 #define MISC_REG_AEU_SYS_KILL_STATUS_1                          0xa604
1484 #define MISC_REG_AEU_SYS_KILL_STATUS_2                          0xa608
1485 #define MISC_REG_AEU_SYS_KILL_STATUS_3                          0xa60c
1486 /*
1487  * [R 4] This field indicates the type of the device. '0' - 2 Ports; '1' -
1488  * Port.
1489  */
1490 #define MISC_REG_BOND_ID                                        0xa400
1491 /*
1492  * [R 8] These bits indicate the metal revision of the chip. This valu
1493  * starts at 0x00 for each all-layer tape-out and increments by one for each
1494  * tape-out.
1495  */
1496 #define MISC_REG_CHIP_METAL                                     0xa404
1497 /* [R 16] These bits indicate the part number for the chip. */
1498 #define MISC_REG_CHIP_NUM                                       0xa408
1499 /*
1500  * [R 4] These bits indicate the base revision of the chip. This valu
1501  * starts at 0x0 for the A0 tape-out and increments by one for each
1502  * all-layer tape-out.
1503  */
1504 #define MISC_REG_CHIP_REV                                       0xa40c
1505 /*
1506  * [RW 32] The following driver registers(1...16) represent 16 drivers an
1507  * 32 clients. Each client can be controlled by one driver only. One in each
1508  * bit represent that this driver control the appropriate client (Ex: bit 5
1509  * is set means this driver control client number 5). addr1 = set; addr0 =
1510  * clear; read from both addresses will give the same result = status. write
1511  * to address 1 will set a request to control all the clients that their
1512  * appropriate bit (in the write command) is set. if the client is free (the
1513  * appropriate bit in all the other drivers is clear) one will be written to
1514  * that driver register; if the client isn't free the bit will remain zero.
1515  * if the appropriate bit is set (the driver request to gain control on a
1516  * client it already controls the ~MISC_REGISTERS_INT_STS.GENERIC_SW
1517  * interrupt will be asserted). write to address 0 will set a request to
1518  * free all the clients that their appropriate bit (in the write command) is
1519  * set. if the appropriate bit is clear (the driver request to free a client
1520  * it doesn't controls the ~MISC_REGISTERS_INT_STS.GENERIC_SW interrupt will
1521  * be asserted).
1522  */
1523 #define MISC_REG_DRIVER_CONTROL_1                               0xa510
1524 #define MISC_REG_DRIVER_CONTROL_7                               0xa3c8
1525 /*
1526  * [RW 1] e1hmf for WOL. If clr WOL signal o the PXP will be send on bit
1527  * only.
1528  */
1529 #define MISC_REG_E1HMF_MODE                                     0xa5f8
1530 /* [RW 32] Debug only: spare RW register reset by core reset */
1531 #define MISC_REG_GENERIC_CR_0                                   0xa460
1532 /*
1533  * [RW 32] GPIO. [31-28] FLOAT port 0; [27-24] FLOAT port 0; When any o
1534  * these bits is written as a '1'; the corresponding SPIO bit will turn off
1535  * it's drivers and become an input. This is the reset state of all GPIO
1536  * pins. The read value of these bits will be a '1' if that last command
1537  * (#SET; #CLR; or #FLOAT) for this bit was a #FLOAT. (reset value 0xff).
1538  * [23-20] CLR port 1; 19-16] CLR port 0; When any of these bits is written
1539  * as a '1'; the corresponding GPIO bit will drive low. The read value of
1540  * these bits will be a '1' if that last command (#SET; #CLR; or #FLOAT) for
1541  * this bit was a #CLR. (reset value 0). [15-12] SET port 1; 11-8] port 0;
1542  * SET When any of these bits is written as a '1'; the corresponding GPIO
1543  * bit will drive high (if it has that capability). The read value of these
1544  * bits will be a '1' if that last command (#SET; #CLR; or #FLOAT) for this
1545  * bit was a #SET. (reset value 0). [7-4] VALUE port 1; [3-0] VALUE port 0;
1546  * RO; These bits indicate the read value of each of the eight GPIO pins.
1547  * This is the result value of the pin; not the drive value. Writing these
1548  * bits will have not effect.
1549  */
1550 #define MISC_REG_GPIO                                           0xa490
1551 /*
1552  * [RW 8] These bits enable the GPIO_INTs to signals event to th
1553  * IGU/MCP.according to the following map: [0] p0_gpio_0; [1] p0_gpio_1; [2]
1554  * p0_gpio_2; [3] p0_gpio_3; [4] p1_gpio_0; [5] p1_gpio_1; [6] p1_gpio_2;
1555  * [7] p1_gpio_3;
1556  */
1557 #define MISC_REG_GPIO_EVENT_EN                                  0xa2bc
1558 /*
1559  * [RW 32] GPIO INT. [31-28] OLD_CLR port1; [27-24] OLD_CLR port0; Writing
1560  * '1' to these bit clears the corresponding bit in the #OLD_VALUE register.
1561  * This will acknowledge an interrupt on the falling edge of corresponding
1562  * GPIO input (reset value 0). [23-16] OLD_SET [23-16] port1; OLD_SET port0;
1563  * Writing a '1' to these bit sets the corresponding bit in the #OLD_VALUE
1564  * register. This will acknowledge an interrupt on the rising edge of
1565  * corresponding SPIO input (reset value 0). [15-12] OLD_VALUE [11-8] port1;
1566  * OLD_VALUE port0; RO; These bits indicate the old value of the GPIO input
1567  * value. When the ~INT_STATE bit is set; this bit indicates the OLD value
1568  * of the pin such that if ~INT_STATE is set and this bit is '0'; then the
1569  * interrupt is due to a low to high edge. If ~INT_STATE is set and this bit
1570  * is '1'; then the interrupt is due to a high to low edge (reset value 0).
1571  * [7-4] INT_STATE port1; [3-0] INT_STATE RO port0; These bits indicate the
1572  * current GPIO interrupt state for each GPIO pin. This bit is cleared when
1573  * the appropriate #OLD_SET or #OLD_CLR command bit is written. This bit is
1574  * set when the GPIO input does not match the current value in #OLD_VALUE
1575  * (reset value 0).
1576  */
1577 #define MISC_REG_GPIO_INT                                       0xa494
1578 /*
1579  * [R 28] this field hold the last information that caused reserve
1580  * attention. bits [19:0] - address; [22:20] function; [23] reserved;
1581  * [27:24] the master that caused the attention - according to the following
1582  * encodeing:1 = pxp; 2 = mcp; 3 = usdm; 4 = tsdm; 5 = xsdm; 6 = csdm; 7 =
1583  * dbu; 8 = dmae
1584  */
1585 #define MISC_REG_GRC_RSV_ATTN                                   0xa3c0
1586 /*
1587  * [R 28] this field hold the last information that caused timeou
1588  * attention. bits [19:0] - address; [22:20] function; [23] reserved;
1589  * [27:24] the master that caused the attention - according to the following
1590  * encodeing:1 = pxp; 2 = mcp; 3 = usdm; 4 = tsdm; 5 = xsdm; 6 = csdm; 7 =
1591  * dbu; 8 = dmae
1592  */
1593 #define MISC_REG_GRC_TIMEOUT_ATTN                               0xa3c4
1594 /*
1595  * [RW 1] Setting this bit enables a timer in the GRC block to timeout an
1596  * access that does not finish within
1597  * ~misc_registers_grc_timeout_val.grc_timeout_val cycles. When this bit is
1598  * cleared; this timeout is disabled. If this timeout occurs; the GRC shall
1599  * assert it attention output.
1600  */
1601 #define MISC_REG_GRC_TIMEOUT_EN                                 0xa280
1602 /*
1603  * [RW 28] 28 LSB of LCPLL first register; reset val = 521. inside order o
1604  * the bits is: [2:0] OAC reset value 001) CML output buffer bias control;
1605  * 111 for +40%; 011 for +20%; 001 for 0%; 000 for -20%. [5:3] Icp_ctrl
1606  * (reset value 001) Charge pump current control; 111 for 720u; 011 for
1607  * 600u; 001 for 480u and 000 for 360u. [7:6] Bias_ctrl (reset value 00)
1608  * Global bias control; When bit 7 is high bias current will be 10 0gh; When
1609  * bit 6 is high bias will be 100w; Valid values are 00; 10; 01. [10:8]
1610  * Pll_observe (reset value 010) Bits to control observability. bit 10 is
1611  * for test bias; bit 9 is for test CK; bit 8 is test Vc. [12:11] Vth_ctrl
1612  * (reset value 00) Comparator threshold control. 00 for 0.6V; 01 for 0.54V
1613  * and 10 for 0.66V. [13] pllSeqStart (reset value 0) Enables VCO tuning
1614  * sequencer: 1= sequencer disabled; 0= sequencer enabled (inverted
1615  * internally). [14] reserved (reset value 0) Reset for VCO sequencer is
1616  * connected to RESET input directly. [15] capRetry_en (reset value 0)
1617  * enable retry on cap search failure (inverted). [16] freqMonitor_e (reset
1618  * value 0) bit to continuously monitor vco freq (inverted). [17]
1619  * freqDetRestart_en (reset value 0) bit to enable restart when not freq
1620  * locked (inverted). [18] freqDetRetry_en (reset value 0) bit to enable
1621  * retry on freq det failure(inverted). [19] pllForceFdone_en (reset value
1622  * 0) bit to enable pllForceFdone & pllForceFpass into pllSeq. [20]
1623  * pllForceFdone (reset value 0) bit to force freqDone. [21] pllForceFpass
1624  * (reset value 0) bit to force freqPass. [22] pllForceDone_en (reset value
1625  * 0) bit to enable pllForceCapDone. [23] pllForceCapDone (reset value 0)
1626  * bit to force capDone. [24] pllForceCapPass_en (reset value 0) bit to
1627  * enable pllForceCapPass. [25] pllForceCapPass (reset value 0) bit to force
1628  * capPass. [26] capRestart (reset value 0) bit to force cap sequencer to
1629  * restart. [27] capSelectM_en (reset value 0) bit to enable cap select
1630  * register bits.
1631  */
1632 #define MISC_REG_LCPLL_CTRL_1                                   0xa2a4
1633 #define MISC_REG_LCPLL_CTRL_REG_2                               0xa2a8
1634 /* [RW 4] Interrupt mask register #0 read/write */
1635 #define MISC_REG_MISC_INT_MASK                                  0xa388
1636 /* [RW 1] Parity mask register #0 read/write */
1637 #define MISC_REG_MISC_PRTY_MASK                                 0xa398
1638 /* [R 1] Parity register #0 read */
1639 #define MISC_REG_MISC_PRTY_STS                                  0xa38c
1640 #define MISC_REG_NIG_WOL_P0                                     0xa270
1641 #define MISC_REG_NIG_WOL_P1                                     0xa274
1642 /*
1643  * [R 1] If set indicate that the pcie_rst_b was asserted without pers
1644  * assertion
1645  */
1646 #define MISC_REG_PCIE_HOT_RESET                                 0xa618
1647 /*
1648  * [RW 32] 32 LSB of storm PLL first register; reset val = 0x 071d2911
1649  * inside order of the bits is: [0] P1 divider[0] (reset value 1); [1] P1
1650  * divider[1] (reset value 0); [2] P1 divider[2] (reset value 0); [3] P1
1651  * divider[3] (reset value 0); [4] P2 divider[0] (reset value 1); [5] P2
1652  * divider[1] (reset value 0); [6] P2 divider[2] (reset value 0); [7] P2
1653  * divider[3] (reset value 0); [8] ph_det_dis (reset value 1); [9]
1654  * freq_det_dis (reset value 0); [10] Icpx[0] (reset value 0); [11] Icpx[1]
1655  * (reset value 1); [12] Icpx[2] (reset value 0); [13] Icpx[3] (reset value
1656  * 1); [14] Icpx[4] (reset value 0); [15] Icpx[5] (reset value 0); [16]
1657  * Rx[0] (reset value 1); [17] Rx[1] (reset value 0); [18] vc_en (reset
1658  * value 1); [19] vco_rng[0] (reset value 1); [20] vco_rng[1] (reset value
1659  * 1); [21] Kvco_xf[0] (reset value 0); [22] Kvco_xf[1] (reset value 0);
1660  * [23] Kvco_xf[2] (reset value 0); [24] Kvco_xs[0] (reset value 1); [25]
1661  * Kvco_xs[1] (reset value 1); [26] Kvco_xs[2] (reset value 1); [27]
1662  * testd_en (reset value 0); [28] testd_sel[0] (reset value 0); [29]
1663  * testd_sel[1] (reset value 0); [30] testd_sel[2] (reset value 0); [31]
1664  * testa_en (reset value 0);
1665  */
1666 #define MISC_REG_PLL_STORM_CTRL_1                               0xa294
1667 #define MISC_REG_PLL_STORM_CTRL_2                               0xa298
1668 #define MISC_REG_PLL_STORM_CTRL_3                               0xa29c
1669 #define MISC_REG_PLL_STORM_CTRL_4                               0xa2a0
1670 /*
1671  * [RW 32] reset reg#2; rite/read one = the specific block is out of reset
1672  * write/read zero = the specific block is in reset; addr 0-wr- the write
1673  * value will be written to the register; addr 1-set - one will be written
1674  * to all the bits that have the value of one in the data written (bits that
1675  * have the value of zero will not be change) ; addr 2-clear - zero will be
1676  * written to all the bits that have the value of one in the data written
1677  * (bits that have the value of zero will not be change); addr 3-ignore;
1678  * read ignore from all addr except addr 00; inside order of the bits is:
1679  * [0] rst_bmac0; [1] rst_bmac1; [2] rst_emac0; [3] rst_emac1; [4] rst_grc;
1680  * [5] rst_mcp_n_reset_reg_hard_core; [6] rst_ mcp_n_hard_core_rst_b; [7]
1681  * rst_ mcp_n_reset_cmn_cpu; [8] rst_ mcp_n_reset_cmn_core; [9] rst_rbcn;
1682  * [10] rst_dbg; [11] rst_misc_core; [12] rst_dbue (UART); [13]
1683  * Pci_resetmdio_n; [14] rst_emac0_hard_core; [15] rst_emac1_hard_core; 16]
1684  * rst_pxp_rq_rd_wr; 31:17] reserved
1685  */
1686 #define MISC_REG_RESET_REG_2                                    0xa590
1687 /*
1688  * [RW 20] 20 bit GRC address where the scratch-pad of the MCP that i
1689  * shared with the driver resides
1690  */
1691 #define MISC_REG_SHARED_MEM_ADDR                                0xa2b4
1692 /*
1693  * [RW 32] SPIO. [31-24] FLOAT When any of these bits is written as a '1'
1694  * the corresponding SPIO bit will turn off it's drivers and become an
1695  * input. This is the reset state of all SPIO pins. The read value of these
1696  * bits will be a '1' if that last command (#SET; #CL; or #FLOAT) for this
1697  * bit was a #FLOAT. (reset value 0xff). [23-16] CLR When any of these bits
1698  * is written as a '1'; the corresponding SPIO bit will drive low. The read
1699  * value of these bits will be a '1' if that last command (#SET; #CLR; or
1700  * #FLOAT) for this bit was a #CLR. (reset value 0). [15-8] SET When any of
1701  * these bits is written as a '1'; the corresponding SPIO bit will drive
1702  * high (if it has that capability). The read value of these bits will be a
1703  * '1' if that last command (#SET; #CLR; or #FLOAT) for this bit was a #SET.
1704  * (reset value 0). [7-0] VALUE RO; These bits indicate the read value of
1705  * each of the eight SPIO pins. This is the result value of the pin; not the
1706  * drive value. Writing these bits will have not effect. Each 8 bits field
1707  * is divided as follows: [0] VAUX Enable; when pulsed low; enables supply
1708  * from VAUX. (This is an output pin only; the FLOAT field is not applicable
1709  * for this pin); [1] VAUX Disable; when pulsed low; disables supply form
1710  * VAUX. (This is an output pin only; FLOAT field is not applicable for this
1711  * pin); [2] SEL_VAUX_B - Control to power switching logic. Drive low to
1712  * select VAUX supply. (This is an output pin only; it is not controlled by
1713  * the SET and CLR fields; it is controlled by the Main Power SM; the FLOAT
1714  * field is not applicable for this pin; only the VALUE fields is relevant -
1715  * it reflects the output value); [3] port swap [4] spio_4; [5] spio_5; [6]
1716  * Bit 0 of UMP device ID select; read by UMP firmware; [7] Bit 1 of UMP
1717  * device ID select; read by UMP firmware.
1718  */
1719 #define MISC_REG_SPIO                                           0xa4fc
1720 /*
1721  * [RW 8] These bits enable the SPIO_INTs to signals event to the IGU/MC
1722  * according to the following map: [3:0] reserved; [4] spio_4 [5] spio_5;
1723  * [7:0] reserved
1724  */
1725 #define MISC_REG_SPIO_EVENT_EN                                  0xa2b8
1726 /*
1727  * [RW 32] SPIO INT. [31-24] OLD_CLR Writing a '1' to these bit clears th
1728  * corresponding bit in the #OLD_VALUE register. This will acknowledge an
1729  * interrupt on the falling edge of corresponding SPIO input (reset value
1730  * 0). [23-16] OLD_SET Writing a '1' to these bit sets the corresponding bit
1731  * in the #OLD_VALUE register. This will acknowledge an interrupt on the
1732  * rising edge of corresponding SPIO input (reset value 0). [15-8] OLD_VALUE
1733  * RO; These bits indicate the old value of the SPIO input value. When the
1734  * ~INT_STATE bit is set; this bit indicates the OLD value of the pin such
1735  * that if ~INT_STATE is set and this bit is '0'; then the interrupt is due
1736  * to a low to high edge. If ~INT_STATE is set and this bit is '1'; then the
1737  * interrupt is due to a high to low edge (reset value 0). [7-0] INT_STATE
1738  * RO; These bits indicate the current SPIO interrupt state for each SPIO
1739  * pin. This bit is cleared when the appropriate #OLD_SET or #OLD_CLR
1740  * command bit is written. This bit is set when the SPIO input does not
1741  * match the current value in #OLD_VALUE (reset value 0).
1742  */
1743 #define MISC_REG_SPIO_INT                                       0xa500
1744 /*
1745  * [RW 32] reload value for counter 4 if reload; the value will be reload i
1746  * the counter reached zero and the reload bit
1747  * (~misc_registers_sw_timer_cfg_4.sw_timer_cfg_4[1] ) is set.
1748  */
1749 #define MISC_REG_SW_TIMER_RELOAD_VAL_4                          0xa2fc
1750 /*
1751  * [RW 32] the value of the counter for sw timers1-8. there are 8 addresse
1752  * in this register. addres 0 - timer 1; address - timer 2�address 7 -
1753  * timer 8.
1754  */
1755 #define MISC_REG_SW_TIMER_VAL                                   0xa5c0
1756 /*
1757  * [RW 1] Set by the MCP to remember if one or more of the drivers is/ar
1758  * loaded; 0-prepare; -unprepare
1759  */
1760 #define MISC_REG_UNPREPARED                                     0xa424
1761 #define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_BRCST      (0x1<<0)
1762 #define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_MLCST      (0x1<<1)
1763 #define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_NO_VLAN    (0x1<<4)
1764 #define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_UNCST      (0x1<<2)
1765 #define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_VLAN       (0x1<<3)
1766 #define NIG_MASK_INTERRUPT_PORT0_REG_MASK_EMAC0_MISC_MI_INT      (0x1<<0)
1767 #define NIG_MASK_INTERRUPT_PORT0_REG_MASK_SERDES0_LINK_STATUS    (0x1<<9)
1768 #define NIG_MASK_INTERRUPT_PORT0_REG_MASK_XGXS0_LINK10G          (0x1<<15)
1769 #define NIG_MASK_INTERRUPT_PORT0_REG_MASK_XGXS0_LINK_STATUS      (0xf<<18)
1770 /* [RW 1] Input enable for RX_BMAC0 IF */
1771 #define NIG_REG_BMAC0_IN_EN                                     0x100ac
1772 /* [RW 1] output enable for TX_BMAC0 IF */
1773 #define NIG_REG_BMAC0_OUT_EN                                    0x100e0
1774 /* [RW 1] output enable for TX BMAC pause port 0 IF */
1775 #define NIG_REG_BMAC0_PAUSE_OUT_EN                              0x10110
1776 /* [RW 1] output enable for RX_BMAC0_REGS IF */
1777 #define NIG_REG_BMAC0_REGS_OUT_EN                               0x100e8
1778 /* [RW 1] output enable for RX BRB1 port0 IF */
1779 #define NIG_REG_BRB0_OUT_EN                                     0x100f8
1780 /* [RW 1] Input enable for TX BRB1 pause port 0 IF */
1781 #define NIG_REG_BRB0_PAUSE_IN_EN                                0x100c4
1782 /* [RW 1] output enable for RX BRB1 port1 IF */
1783 #define NIG_REG_BRB1_OUT_EN                                     0x100fc
1784 /* [RW 1] Input enable for TX BRB1 pause port 1 IF */
1785 #define NIG_REG_BRB1_PAUSE_IN_EN                                0x100c8
1786 /* [RW 1] output enable for RX BRB1 LP IF */
1787 #define NIG_REG_BRB_LB_OUT_EN                                   0x10100
1788 /*
1789  * [WB_W 82] Debug packet to LP from RBC; Data spelling:[63:0] data; 64
1790  * error; [67:65]eop_bvalid; [68]eop; [69]sop; [70]port_id; 71]flush;
1791  * 72:73]-vnic_num; 81:74]-sideband_info
1792  */
1793 #define NIG_REG_DEBUG_PACKET_LB                                 0x10800
1794 /* [RW 1] Input enable for TX Debug packet */
1795 #define NIG_REG_EGRESS_DEBUG_IN_EN                              0x100dc
1796 /*
1797  * [RW 1] If 1 - egress drain mode for port0 is active. In this mode al
1798  * packets from PBFare not forwarded to the MAC and just deleted from FIFO.
1799  * First packet may be deleted from the middle. And last packet will be
1800  * always deleted till the end.
1801  */
1802 #define NIG_REG_EGRESS_DRAIN0_MODE                              0x10060
1803 /* [RW 1] Output enable to EMAC0 */
1804 #define NIG_REG_EGRESS_EMAC0_OUT_EN                             0x10120
1805 /*
1806  * [RW 1] MAC configuration for packets of port0. If 1 - all packet output
1807  * to emac for port0; other way to bmac for port0
1808  */
1809 #define NIG_REG_EGRESS_EMAC0_PORT                               0x10058
1810 /* [RW 1] Input enable for TX PBF user packet port0 IF */
1811 #define NIG_REG_EGRESS_PBF0_IN_EN                               0x100cc
1812 /* [RW 1] Input enable for TX PBF user packet port1 IF */
1813 #define NIG_REG_EGRESS_PBF1_IN_EN                               0x100d0
1814 /* [RW 1] Input enable for TX UMP management packet port0 IF */
1815 #define NIG_REG_EGRESS_UMP0_IN_EN                               0x100d4
1816 /* [RW 1] Input enable for RX_EMAC0 IF */
1817 #define NIG_REG_EMAC0_IN_EN                                     0x100a4
1818 /* [RW 1] output enable for TX EMAC pause port 0 IF */
1819 #define NIG_REG_EMAC0_PAUSE_OUT_EN                              0x10118
1820 /*
1821  * [R 1] status from emac0. This bit is set when MDINT from either th
1822  * EXT_MDINT pin or from the Copper PHY is driven low. This condition must
1823  * be cleared in the attached PHY device that is driving the MINT pin.
1824  */
1825 #define NIG_REG_EMAC0_STATUS_MISC_MI_INT                        0x10494
1826 /*
1827  * [WB 48] This address space contains BMAC0 registers. The BMAC register
1828  * are described in appendix A. In order to access the BMAC0 registers; the
1829  * base address; NIG_REGISTERS_INGRESS_BMAC0_MEM; Offset: 0x10c00; should be
1830  * added to each BMAC register offset
1831  */
1832 #define NIG_REG_INGRESS_BMAC0_MEM                               0x10c00
1833 /*
1834  * [WB 48] This address space contains BMAC1 registers. The BMAC register
1835  * are described in appendix A. In order to access the BMAC0 registers; the
1836  * base address; NIG_REGISTERS_INGRESS_BMAC1_MEM; Offset: 0x11000; should be
1837  * added to each BMAC register offset
1838  */
1839 #define NIG_REG_INGRESS_BMAC1_MEM                               0x11000
1840 /* [R 1] FIFO empty in EOP descriptor FIFO of LP in NIG_RX_EOP */
1841 #define NIG_REG_INGRESS_EOP_LB_EMPTY                            0x104e0
1842 /*
1843  * [RW 17] Debug only. RX_EOP_DSCR_lb_FIFO in NIG_RX_EOP. Dat
1844  * packet_length[13:0]; mac_error[14]; trunc_error[15]; parity[16]
1845  */
1846 #define NIG_REG_INGRESS_EOP_LB_FIFO                             0x104e4
1847 /*
1848  * [RW 27] 0 - must be active for Everest A0; 1- for Everest B0 when latc
1849  * logic for interrupts must be used. Enable per bit of interrupt of
1850  * ~latch_status.latch_status
1851  */
1852 #define NIG_REG_LATCH_BC_0                                      0x16210
1853 /*
1854  * [RW 27] Latch for each interrupt from Unicore.b[0
1855  * status_emac0_misc_mi_int; b[1] status_emac0_misc_mi_complete;
1856  * b[2]status_emac0_misc_cfg_change; b[3]status_emac0_misc_link_status;
1857  * b[4]status_emac0_misc_link_change; b[5]status_emac0_misc_attn;
1858  * b[6]status_serdes0_mac_crs; b[7]status_serdes0_autoneg_complete;
1859  * b[8]status_serdes0_fiber_rxact; b[9]status_serdes0_link_status;
1860  * b[10]status_serdes0_mr_page_rx; b[11]status_serdes0_cl73_an_complete;
1861  * b[12]status_serdes0_cl73_mr_page_rx; b[13]status_serdes0_rx_sigdet;
1862  * b[14]status_xgxs0_remotemdioreq; b[15]status_xgxs0_link10g;
1863  * b[16]status_xgxs0_autoneg_complete; b[17]status_xgxs0_fiber_rxact;
1864  * b[21:18]status_xgxs0_link_status; b[22]status_xgxs0_mr_page_rx;
1865  * b[23]status_xgxs0_cl73_an_complete; b[24]status_xgxs0_cl73_mr_page_rx;
1866  * b[25]status_xgxs0_rx_sigdet; b[26]status_xgxs0_mac_crs
1867  */
1868 #define NIG_REG_LATCH_STATUS_0                                  0x18000
1869 /* [RW 1] led 10g for port 0 */
1870 #define NIG_REG_LED_10G_P0                                      0x10320
1871 /* [RW 1] led 10g for port 1 */
1872 #define NIG_REG_LED_10G_P1                                      0x10324
1873 /*
1874  * [RW 1] Port0: This bit is set to enable the use of th
1875  * ~nig_registers_led_control_blink_rate_p0.led_control_blink_rate_p0 field
1876  * defined below. If this bit is cleared; then the blink rate will be about
1877  * 8Hz.
1878  */
1879 #define NIG_REG_LED_CONTROL_BLINK_RATE_ENA_P0                   0x10318
1880 /*
1881  * [RW 12] Port0: Specifies the period of each blink cycle (on + off) fo
1882  * Traffic LED in milliseconds. Must be a non-zero value. This 12-bit field
1883  * is reset to 0x080; giving a default blink period of approximately 8Hz.
1884  */
1885 #define NIG_REG_LED_CONTROL_BLINK_RATE_P0                       0x10310
1886 /*
1887  * [RW 1] Port0: If set along with th
1888  * ~nig_registers_led_control_override_traffic_p0.led_control_override_traffic_p0
1889  * bit and ~nig_registers_led_control_traffic_p0.led_control_traffic_p0 LED
1890  * bit; the Traffic LED will blink with the blink rate specified in
1891  * ~nig_registers_led_control_blink_rate_p0.led_control_blink_rate_p0 and
1892  * ~nig_registers_led_control_blink_rate_ena_p0.led_control_blink_rate_ena_p0
1893  * fields.
1894  */
1895 #define NIG_REG_LED_CONTROL_BLINK_TRAFFIC_P0                    0x10308
1896 /*
1897  * [RW 1] Port0: If set overrides hardware control of the Traffic LED. Th
1898  * Traffic LED will then be controlled via bit ~nig_registers_
1899  * led_control_traffic_p0.led_control_traffic_p0 and bit
1900  * ~nig_registers_led_control_blink_traffic_p0.led_control_blink_traffic_p0
1901  */
1902 #define NIG_REG_LED_CONTROL_OVERRIDE_TRAFFIC_P0                 0x102f8
1903 /*
1904  * [RW 1] Port0: If set along with the led_control_override_trafic_p0 bit
1905  * turns on the Traffic LED. If the led_control_blink_traffic_p0 bit is also
1906  * set; the LED will blink with blink rate specified in
1907  * ~nig_registers_led_control_blink_rate_p0.led_control_blink_rate_p0 and
1908  * ~nig_regsters_led_control_blink_rate_ena_p0.led_control_blink_rate_ena_p0
1909  * fields.
1910  */
1911 #define NIG_REG_LED_CONTROL_TRAFFIC_P0                          0x10300
1912 /*
1913  * [RW 4] led mode for port0: 0 MAC; 1-3 PHY1; 4 MAC2; 5-7 PHY4; 8-MAC3
1914  * 9-11PHY7; 12 MAC4; 13-15 PHY10;
1915  */
1916 #define NIG_REG_LED_MODE_P0                                     0x102f0
1917 /*
1918  * [RW 3] for port0 enable for llfc ppp and pause. b0 - brb1 enable; b1
1919  * tsdm enable; b2- usdm enable
1920  */
1921 #define NIG_REG_LLFC_EGRESS_SRC_ENABLE_0                        0x16070
1922 #define NIG_REG_LLFC_EGRESS_SRC_ENABLE_1                        0x16074
1923 /*
1924  * [RW 1] SAFC enable for port0. This register may get 1 only whe
1925  * ~ppp_enable.ppp_enable = 0 and pause_enable.pause_enable =0 for the same
1926  * port
1927  */
1928 #define NIG_REG_LLFC_ENABLE_0                                   0x16208
1929 /* [RW 16] classes are high-priority for port0 */
1930 #define NIG_REG_LLFC_HIGH_PRIORITY_CLASSES_0                    0x16058
1931 /* [RW 16] classes are low-priority for port0 */
1932 #define NIG_REG_LLFC_LOW_PRIORITY_CLASSES_0                     0x16060
1933 /* [RW 1] Output enable of message to LLFC BMAC IF for port0 */
1934 #define NIG_REG_LLFC_OUT_EN_0                                   0x160c8
1935 #define NIG_REG_LLH0_ACPI_PAT_0_CRC                             0x1015c
1936 #define NIG_REG_LLH0_ACPI_PAT_6_LEN                             0x10154
1937 #define NIG_REG_LLH0_BRB1_DRV_MASK                              0x10244
1938 #define NIG_REG_LLH0_BRB1_DRV_MASK_MF                           0x16048
1939 /* [RW 1] send to BRB1 if no match on any of RMP rules. */
1940 #define NIG_REG_LLH0_BRB1_NOT_MCP                               0x1025c
1941 /*
1942  * [RW 2] Determine the classification participants. 0: no classification.1
1943  * classification upon VLAN id. 2: classification upon MAC address. 3:
1944  * classification upon both VLAN id & MAC addr.
1945  */
1946 #define NIG_REG_LLH0_CLS_TYPE                                   0x16080
1947 /* [RW 32] cm header for llh0 */
1948 #define NIG_REG_LLH0_CM_HEADER                                  0x1007c
1949 #define NIG_REG_LLH0_DEST_IP_0_1                                0x101dc
1950 #define NIG_REG_LLH0_DEST_MAC_0_0                               0x101c0
1951 /*
1952  * [RW 16] destination TCP address 1. The LLH will look for this address i
1953  * all incoming packets.
1954  */
1955 #define NIG_REG_LLH0_DEST_TCP_0                                 0x10220
1956 /*
1957  * [RW 16] destination UDP address 1 The LLH will look for this address i
1958  * all incoming packets.
1959  */
1960 #define NIG_REG_LLH0_DEST_UDP_0                                 0x10214
1961 #define NIG_REG_LLH0_ERROR_MASK                                 0x1008c
1962 /* [RW 8] event id for llh0 */
1963 #define NIG_REG_LLH0_EVENT_ID                                   0x10084
1964 #define NIG_REG_LLH0_FUNC_EN                                    0x160fc
1965 #define NIG_REG_LLH0_FUNC_VLAN_ID                               0x16100
1966 /*
1967  * [RW 1] Determine the IP version to look for i
1968  * ~nig_registers_llh0_dest_ip_0.llh0_dest_ip_0. 0 - IPv6; 1-IPv4
1969  */
1970 #define NIG_REG_LLH0_IPV4_IPV6_0                                0x10208
1971 /* [RW 1] t bit for llh0 */
1972 #define NIG_REG_LLH0_T_BIT                                      0x10074
1973 /* [RW 12] VLAN ID 1. In case of VLAN packet the LLH will look for this ID. */
1974 #define NIG_REG_LLH0_VLAN_ID_0                                  0x1022c
1975 /* [RW 8] init credit counter for port0 in LLH */
1976 #define NIG_REG_LLH0_XCM_INIT_CREDIT                            0x10554
1977 #define NIG_REG_LLH0_XCM_MASK                                   0x10130
1978 #define NIG_REG_LLH1_BRB1_DRV_MASK                              0x10248
1979 /* [RW 1] send to BRB1 if no match on any of RMP rules. */
1980 #define NIG_REG_LLH1_BRB1_NOT_MCP                               0x102dc
1981 /*
1982  * [RW 2] Determine the classification participants. 0: no classification.1
1983  * classification upon VLAN id. 2: classification upon MAC address. 3:
1984  * classification upon both VLAN id & MAC addr.
1985  */
1986 #define NIG_REG_LLH1_CLS_TYPE                                   0x16084
1987 /* [RW 32] cm header for llh1 */
1988 #define NIG_REG_LLH1_CM_HEADER                                  0x10080
1989 #define NIG_REG_LLH1_ERROR_MASK                                 0x10090
1990 /* [RW 8] event id for llh1 */
1991 #define NIG_REG_LLH1_EVENT_ID                                   0x10088
1992 /* [RW 8] init credit counter for port1 in LLH */
1993 #define NIG_REG_LLH1_XCM_INIT_CREDIT                            0x10564
1994 #define NIG_REG_LLH1_XCM_MASK                                   0x10134
1995 /*
1996  * [RW 1] When this bit is set; the LLH will expect all packets to be wit
1997  * e1hov
1998  */
1999 #define NIG_REG_LLH_E1HOV_MODE                                  0x160d8
2000 /*
2001  * [RW 1] When this bit is set; the LLH will classify the packet befor
2002  * sending it to the BRB or calculating WoL on it.
2003  */
2004 #define NIG_REG_LLH_MF_MODE                                     0x16024
2005 #define NIG_REG_MASK_INTERRUPT_PORT0                            0x10330
2006 #define NIG_REG_MASK_INTERRUPT_PORT1                            0x10334
2007 /* [RW 1] Output signal from NIG to EMAC0. When set enables the EMAC0 block. */
2008 #define NIG_REG_NIG_EMAC0_EN                                    0x1003c
2009 /* [RW 1] Output signal from NIG to EMAC1. When set enables the EMAC1 block. */
2010 #define NIG_REG_NIG_EMAC1_EN                                    0x10040
2011 /*
2012  * [RW 1] Output signal from NIG to TX_EMAC0. When set indicates to th
2013  * EMAC0 to strip the CRC from the ingress packets.
2014  */
2015 #define NIG_REG_NIG_INGRESS_EMAC0_NO_CRC                        0x10044
2016 /* [R 32] Interrupt register #0 read */
2017 #define NIG_REG_NIG_INT_STS_0                                   0x103b0
2018 #define NIG_REG_NIG_INT_STS_1                                   0x103c0
2019 /* [R 32] Parity register #0 read */
2020 #define NIG_REG_NIG_PRTY_STS                                    0x103d0
2021 /*
2022  * [RW 1] Pause enable for port0. This register may get 1 only whe
2023  * ~safc_enable.safc_enable = 0 and ppp_enable.ppp_enable =0 for the same
2024  * port
2025  */
2026 #define NIG_REG_PAUSE_ENABLE_0                                  0x160c0
2027 /* [RW 1] Input enable for RX PBF LP IF */
2028 #define NIG_REG_PBF_LB_IN_EN                                    0x100b4
2029 /*
2030  * [RW 1] Value of this register will be transmitted to port swap whe
2031  * ~nig_registers_strap_override.strap_override =1
2032  */
2033 #define NIG_REG_PORT_SWAP                                       0x10394
2034 /* [RW 1] output enable for RX parser descriptor IF */
2035 #define NIG_REG_PRS_EOP_OUT_EN                                  0x10104
2036 /* [RW 1] Input enable for RX parser request IF */
2037 #define NIG_REG_PRS_REQ_IN_EN                                   0x100b8
2038 /* [RW 5] control to serdes - CL45 DEVAD */
2039 #define NIG_REG_SERDES0_CTRL_MD_DEVAD                           0x10370
2040 /* [RW 1] control to serdes; 0 - clause 45; 1 - clause 22 */
2041 #define NIG_REG_SERDES0_CTRL_MD_ST                              0x1036c
2042 /* [RW 5] control to serdes - CL22 PHY_ADD and CL45 PRTAD */
2043 #define NIG_REG_SERDES0_CTRL_PHY_ADDR                           0x10374
2044 /* [R 1] status from serdes0 that inputs to interrupt logic of link status */
2045 #define NIG_REG_SERDES0_STATUS_LINK_STATUS                      0x10578
2046 /*
2047  * [R 32] Rx statistics : In user packets discarded due to BRB backpressur
2048  * for port0
2049  */
2050 #define NIG_REG_STAT0_BRB_DISCARD                               0x105f0
2051 /*
2052  * [R 32] Rx statistics : In user packets truncated due to BRB backpressur
2053  * for port0
2054  */
2055 #define NIG_REG_STAT0_BRB_TRUNCATE                              0x105f8
2056 /*
2057  * [WB_R 36] Tx statistics : Number of packets from emac0 or bmac0 tha
2058  * between 1024 and 1522 bytes for port0
2059  */
2060 #define NIG_REG_STAT0_EGRESS_MAC_PKT0                           0x10750
2061 /*
2062  * [WB_R 36] Tx statistics : Number of packets from emac0 or bmac0 tha
2063  * between 1523 bytes and above for port0
2064  */
2065 #define NIG_REG_STAT0_EGRESS_MAC_PKT1                           0x10760
2066 /*
2067  * [R 32] Rx statistics : In user packets discarded due to BRB backpressur
2068  * for port1
2069  */
2070 #define NIG_REG_STAT1_BRB_DISCARD                               0x10628
2071 /*
2072  * [WB_R 36] Tx statistics : Number of packets from emac1 or bmac1 tha
2073  * between 1024 and 1522 bytes for port1
2074  */
2075 #define NIG_REG_STAT1_EGRESS_MAC_PKT0                           0x107a0
2076 /*
2077  * [WB_R 36] Tx statistics : Number of packets from emac1 or bmac1 tha
2078  * between 1523 bytes and above for port1
2079  */
2080 #define NIG_REG_STAT1_EGRESS_MAC_PKT1                           0x107b0
2081 /* [WB_R 64] Rx statistics : User octets received for LP */
2082 #define NIG_REG_STAT2_BRB_OCTET                                 0x107e0
2083 #define NIG_REG_STATUS_INTERRUPT_PORT0                          0x10328
2084 #define NIG_REG_STATUS_INTERRUPT_PORT1                          0x1032c
2085 /*
2086  * [RW 1] port swap mux selection. If this register equal to 0 then por
2087  * swap is equal to SPIO pin that inputs from ifmux_serdes_swap. If 1 then
2088  * ort swap is equal to ~nig_registers_port_swap.port_swap
2089  */
2090 #define NIG_REG_STRAP_OVERRIDE                                  0x10398
2091 /* [RW 1] output enable for RX_XCM0 IF */
2092 #define NIG_REG_XCM0_OUT_EN                                     0x100f0
2093 /* [RW 1] output enable for RX_XCM1 IF */
2094 #define NIG_REG_XCM1_OUT_EN                                     0x100f4
2095 /* [RW 1] control to xgxs - remote PHY in-band MDIO */
2096 #define NIG_REG_XGXS0_CTRL_EXTREMOTEMDIOST                      0x10348
2097 /* [RW 5] control to xgxs - CL45 DEVAD */
2098 #define NIG_REG_XGXS0_CTRL_MD_DEVAD                             0x1033c
2099 /* [RW 1] control to xgxs; 0 - clause 45; 1 - clause 22 */
2100 #define NIG_REG_XGXS0_CTRL_MD_ST                                0x10338
2101 /* [RW 5] control to xgxs - CL22 PHY_ADD and CL45 PRTAD */
2102 #define NIG_REG_XGXS0_CTRL_PHY_ADDR                             0x10340
2103 /* [R 1] status from xgxs0 that inputs to interrupt logic of link10g. */
2104 #define NIG_REG_XGXS0_STATUS_LINK10G                            0x10680
2105 /* [R 4] status from xgxs0 that inputs to interrupt logic of link status */
2106 #define NIG_REG_XGXS0_STATUS_LINK_STATUS                        0x10684
2107 /* [RW 2] selection for XGXS lane of port 0 in NIG_MUX block */
2108 #define NIG_REG_XGXS_LANE_SEL_P0                                0x102e8
2109 /* [RW 1] selection for port0 for NIG_MUX block : 0 = SerDes; 1 = XGXS */
2110 #define NIG_REG_XGXS_SERDES0_MODE_SEL                           0x102e0
2111 #define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_EMAC0_MISC_MI_INT  (0x1<<0)
2112 #define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_SERDES0_LINK_STATUS (0x1<<9)
2113 #define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK10G      (0x1<<15)
2114 #define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK_STATUS  (0xf<<18)
2115 #define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK_STATUS_SIZE 18
2116 /*
2117  * [RW 1] Disable processing further tasks from port 0 (after ending th
2118  * current task in process).
2119  */
2120 #define PBF_REG_DISABLE_NEW_TASK_PROC_P0                        0x14005c
2121 /*
2122  * [RW 1] Disable processing further tasks from port 1 (after ending th
2123  * current task in process).
2124  */
2125 #define PBF_REG_DISABLE_NEW_TASK_PROC_P1                        0x140060
2126 /*
2127  * [RW 1] Disable processing further tasks from port 4 (after ending th
2128  * current task in process).
2129  */
2130 #define PBF_REG_DISABLE_NEW_TASK_PROC_P4                        0x14006c
2131 #define PBF_REG_IF_ENABLE_REG                                   0x140044
2132 /*
2133  * [RW 1] Init bit. When set the initial credits are copied to the credi
2134  * registers (except the port credits). Should be set and then reset after
2135  * the configuration of the block has ended.
2136  */
2137 #define PBF_REG_INIT                                            0x140000
2138 /*
2139  * [RW 1] Init bit for port 0. When set the initial credit of port 0 i
2140  * copied to the credit register. Should be set and then reset after the
2141  * configuration of the port has ended.
2142  */
2143 #define PBF_REG_INIT_P0                                         0x140004
2144 /*
2145  * [RW 1] Init bit for port 1. When set the initial credit of port 1 i
2146  * copied to the credit register. Should be set and then reset after the
2147  * configuration of the port has ended.
2148  */
2149 #define PBF_REG_INIT_P1                                         0x140008
2150 /*
2151  * [RW 1] Init bit for port 4. When set the initial credit of port 4 i
2152  * copied to the credit register. Should be set and then reset after the
2153  * configuration of the port has ended.
2154  */
2155 #define PBF_REG_INIT_P4                                         0x14000c
2156 /* [RW 1] Enable for mac interface 0. */
2157 #define PBF_REG_MAC_IF0_ENABLE                                  0x140030
2158 /* [RW 1] Enable for mac interface 1. */
2159 #define PBF_REG_MAC_IF1_ENABLE                                  0x140034
2160 /* [RW 1] Enable for the loopback interface. */
2161 #define PBF_REG_MAC_LB_ENABLE                                   0x140040
2162 /*
2163  * [RW 10] Port 0 threshold used by arbiter in 16 byte lines used when paus
2164  * not suppoterd.
2165  */
2166 #define PBF_REG_P0_ARB_THRSH                                    0x1400e4
2167 /* [R 11] Current credit for port 0 in the tx port buffers in 16 byte lines. */
2168 #define PBF_REG_P0_CREDIT                                       0x140200
2169 /*
2170  * [RW 11] Initial credit for port 0 in the tx port buffers in 16 byt
2171  * lines.
2172  */
2173 #define PBF_REG_P0_INIT_CRD                                     0x1400d0
2174 /* [RW 1] Indication that pause is enabled for port 0. */
2175 #define PBF_REG_P0_PAUSE_ENABLE                                 0x140014
2176 /* [R 8] Number of tasks in port 0 task queue. */
2177 #define PBF_REG_P0_TASK_CNT                                     0x140204
2178 /* [R 11] Current credit for port 1 in the tx port buffers in 16 byte lines. */
2179 #define PBF_REG_P1_CREDIT                                       0x140208
2180 /*
2181  * [RW 11] Initial credit for port 1 in the tx port buffers in 16 byt
2182  * lines.
2183  */
2184 #define PBF_REG_P1_INIT_CRD                                     0x1400d4
2185 /* [R 8] Number of tasks in port 1 task queue. */
2186 #define PBF_REG_P1_TASK_CNT                                     0x14020c
2187 /* [R 11] Current credit for port 4 in the tx port buffers in 16 byte lines. */
2188 #define PBF_REG_P4_CREDIT                                       0x140210
2189 /*
2190  * [RW 11] Initial credit for port 4 in the tx port buffers in 16 byt
2191  * lines.
2192  */
2193 #define PBF_REG_P4_INIT_CRD                                     0x1400e0
2194 /* [R 8] Number of tasks in port 4 task queue. */
2195 #define PBF_REG_P4_TASK_CNT                                     0x140214
2196 /* [RW 5] Interrupt mask register #0 read/write */
2197 #define PBF_REG_PBF_INT_MASK                                    0x1401d4
2198 /* [R 5] Interrupt register #0 read */
2199 #define PBF_REG_PBF_INT_STS                                     0x1401c8
2200 #define PB_REG_CONTROL                                           0
2201 /* [RW 2] Interrupt mask register #0 read/write */
2202 #define PB_REG_PB_INT_MASK                                      0x28
2203 /* [R 2] Interrupt register #0 read */
2204 #define PB_REG_PB_INT_STS                                       0x1c
2205 /* [RW 4] Parity mask register #0 read/write */
2206 #define PB_REG_PB_PRTY_MASK                                     0x38
2207 /* [R 4] Parity register #0 read */
2208 #define PB_REG_PB_PRTY_STS                                      0x2c
2209 #define PRS_REG_A_PRSU_20                                       0x40134
2210 /* [R 8] debug only: CFC load request current credit. Transaction based. */
2211 #define PRS_REG_CFC_LD_CURRENT_CREDIT                           0x40164
2212 /* [R 8] debug only: CFC search request current credit. Transaction based. */
2213 #define PRS_REG_CFC_SEARCH_CURRENT_CREDIT                       0x40168
2214 /*
2215  * [RW 6] The initial credit for the search message to the CFC interface
2216  * Credit is transaction based.
2217  */
2218 #define PRS_REG_CFC_SEARCH_INITIAL_CREDIT                       0x4011c
2219 /* [RW 24] CID for port 0 if no match */
2220 #define PRS_REG_CID_PORT_0                                      0x400fc
2221 /*
2222  * [RW 32] The CM header for flush message where 'load existed' bit in CF
2223  * load response is reset and packet type is 0. Used in packet start message
2224  * to TCM.
2225  */
2226 #define PRS_REG_CM_HDR_FLUSH_LOAD_TYPE_0                        0x400dc
2227 #define PRS_REG_CM_HDR_FLUSH_LOAD_TYPE_1                        0x400e0
2228 #define PRS_REG_CM_HDR_FLUSH_LOAD_TYPE_2                        0x400e4
2229 #define PRS_REG_CM_HDR_FLUSH_LOAD_TYPE_3                        0x400e8
2230 #define PRS_REG_CM_HDR_FLUSH_LOAD_TYPE_4                        0x400ec
2231 #define PRS_REG_CM_HDR_FLUSH_LOAD_TYPE_5                        0x400f0
2232 /*
2233  * [RW 32] The CM header for flush message where 'load existed' bit in CF
2234  * load response is set and packet type is 0. Used in packet start message
2235  * to TCM.
2236  */
2237 #define PRS_REG_CM_HDR_FLUSH_NO_LOAD_TYPE_0                     0x400bc
2238 #define PRS_REG_CM_HDR_FLUSH_NO_LOAD_TYPE_1                     0x400c0
2239 #define PRS_REG_CM_HDR_FLUSH_NO_LOAD_TYPE_2                     0x400c4
2240 #define PRS_REG_CM_HDR_FLUSH_NO_LOAD_TYPE_3                     0x400c8
2241 #define PRS_REG_CM_HDR_FLUSH_NO_LOAD_TYPE_4                     0x400cc
2242 #define PRS_REG_CM_HDR_FLUSH_NO_LOAD_TYPE_5                     0x400d0
2243 /*
2244  * [RW 32] The CM header for a match and packet type 1 for loopback port
2245  * Used in packet start message to TCM.
2246  */
2247 #define PRS_REG_CM_HDR_LOOPBACK_TYPE_1                          0x4009c
2248 #define PRS_REG_CM_HDR_LOOPBACK_TYPE_2                          0x400a0
2249 #define PRS_REG_CM_HDR_LOOPBACK_TYPE_3                          0x400a4
2250 #define PRS_REG_CM_HDR_LOOPBACK_TYPE_4                          0x400a8
2251 /*
2252  * [RW 32] The CM header for a match and packet type 0. Used in packet star
2253  * message to TCM.
2254  */
2255 #define PRS_REG_CM_HDR_TYPE_0                                   0x40078
2256 #define PRS_REG_CM_HDR_TYPE_1                                   0x4007c
2257 #define PRS_REG_CM_HDR_TYPE_2                                   0x40080
2258 #define PRS_REG_CM_HDR_TYPE_3                                   0x40084
2259 #define PRS_REG_CM_HDR_TYPE_4                                   0x40088
2260 /* [RW 32] The CM header in case there was not a match on the connection */
2261 #define PRS_REG_CM_NO_MATCH_HDR                                 0x400b8
2262 /* [RW 1] Indicates if in e1hov mode. 0=non-e1hov mode; 1=e1hov mode. */
2263 #define PRS_REG_E1HOV_MODE                                      0x401c8
2264 /*
2265  * [RW 8] The 8-bit event ID for a match and packet type 1. Used in packe
2266  * start message to TCM.
2267  */
2268 #define PRS_REG_EVENT_ID_1                                      0x40054
2269 #define PRS_REG_EVENT_ID_2                                      0x40058
2270 #define PRS_REG_EVENT_ID_3                                      0x4005c
2271 /* [RW 16] The Ethernet type value for FCoE */
2272 #define PRS_REG_FCOE_TYPE                                       0x401d0
2273 /*
2274  * [RW 8] Context region for flush packet with packet type 0. Used in CF
2275  * load request message.
2276  */
2277 #define PRS_REG_FLUSH_REGIONS_TYPE_0                            0x40004
2278 #define PRS_REG_FLUSH_REGIONS_TYPE_1                            0x40008
2279 #define PRS_REG_FLUSH_REGIONS_TYPE_2                            0x4000c
2280 #define PRS_REG_FLUSH_REGIONS_TYPE_3                            0x40010
2281 #define PRS_REG_FLUSH_REGIONS_TYPE_4                            0x40014
2282 #define PRS_REG_FLUSH_REGIONS_TYPE_5                            0x40018
2283 #define PRS_REG_FLUSH_REGIONS_TYPE_6                            0x4001c
2284 #define PRS_REG_FLUSH_REGIONS_TYPE_7                            0x40020
2285 /* [RW 4] The increment value to send in the CFC load request message */
2286 #define PRS_REG_INC_VALUE                                       0x40048
2287 /* [RW 1] If set indicates not to send messages to CFC on received packets */
2288 #define PRS_REG_NIC_MODE                                        0x40138
2289 /*
2290  * [RW 8] The 8-bit event ID for cases where there is no match on th
2291  * connection. Used in packet start message to TCM.
2292  */
2293 #define PRS_REG_NO_MATCH_EVENT_ID                               0x40070
2294 /* [ST 24] The number of input CFC flush packets */
2295 #define PRS_REG_NUM_OF_CFC_FLUSH_MESSAGES                       0x40128
2296 /*
2297  * [ST 32] The number of cycles the Parser halted its operation since i
2298  * could not allocate the next serial number
2299  */
2300 #define PRS_REG_NUM_OF_DEAD_CYCLES                              0x40130
2301 /* [ST 24] The number of input packets */
2302 #define PRS_REG_NUM_OF_PACKETS                                  0x40124
2303 /* [ST 24] The number of input transparent flush packets */
2304 #define PRS_REG_NUM_OF_TRANSPARENT_FLUSH_MESSAGES               0x4012c
2305 /*
2306  * [RW 8] Context region for received Ethernet packet with a match an
2307  * packet type 0. Used in CFC load request message
2308  */
2309 #define PRS_REG_PACKET_REGIONS_TYPE_0                           0x40028
2310 #define PRS_REG_PACKET_REGIONS_TYPE_1                           0x4002c
2311 #define PRS_REG_PACKET_REGIONS_TYPE_2                           0x40030
2312 #define PRS_REG_PACKET_REGIONS_TYPE_3                           0x40034
2313 #define PRS_REG_PACKET_REGIONS_TYPE_4                           0x40038
2314 #define PRS_REG_PACKET_REGIONS_TYPE_5                           0x4003c
2315 #define PRS_REG_PACKET_REGIONS_TYPE_6                           0x40040
2316 #define PRS_REG_PACKET_REGIONS_TYPE_7                           0x40044
2317 /* [R 2] debug only: Number of pending requests for CAC on port 0. */
2318 #define PRS_REG_PENDING_BRB_CAC0_RQ                             0x40174
2319 /* [R 2] debug only: Number of pending requests for header parsing. */
2320 #define PRS_REG_PENDING_BRB_PRS_RQ                              0x40170
2321 /* [R 1] Interrupt register #0 read */
2322 #define PRS_REG_PRS_INT_STS                                     0x40188
2323 /* [RW 8] Parity mask register #0 read/write */
2324 #define PRS_REG_PRS_PRTY_MASK                                   0x401a4
2325 /* [R 8] Parity register #0 read */
2326 #define PRS_REG_PRS_PRTY_STS                                    0x40198
2327 /*
2328  * [RW 8] Context region for pure acknowledge packets. Used in CFC loa
2329  * request message
2330  */
2331 #define PRS_REG_PURE_REGIONS                                    0x40024
2332 /*
2333  * [R 32] debug only: Serial number status lsb 32 bits. '1' indicates thi
2334  * serail number was released by SDM but cannot be used because a previous
2335  * serial number was not released.
2336  */
2337 #define PRS_REG_SERIAL_NUM_STATUS_LSB                           0x40154
2338 /*
2339  * [R 32] debug only: Serial number status msb 32 bits. '1' indicates thi
2340  * serail number was released by SDM but cannot be used because a previous
2341  * serial number was not released.
2342  */
2343 #define PRS_REG_SERIAL_NUM_STATUS_MSB                           0x40158
2344 /* [R 4] debug only: SRC current credit. Transaction based. */
2345 #define PRS_REG_SRC_CURRENT_CREDIT                              0x4016c
2346 /* [R 8] debug only: TCM current credit. Cycle based. */
2347 #define PRS_REG_TCM_CURRENT_CREDIT                              0x40160
2348 /* [R 8] debug only: TSDM current credit. Transaction based. */
2349 #define PRS_REG_TSDM_CURRENT_CREDIT                             0x4015c
2350 /* [R 6] Debug only: Number of used entries in the data FIFO */
2351 #define PXP2_REG_HST_DATA_FIFO_STATUS                           0x12047c
2352 /* [R 7] Debug only: Number of used entries in the header FIFO */
2353 #define PXP2_REG_HST_HEADER_FIFO_STATUS                         0x120478
2354 #define PXP2_REG_PGL_ADDR_88_F0                                 0x120534
2355 #define PXP2_REG_PGL_ADDR_8C_F0                                 0x120538
2356 #define PXP2_REG_PGL_ADDR_90_F0                                 0x12053c
2357 #define PXP2_REG_PGL_ADDR_94_F0                                 0x120540
2358 #define PXP2_REG_PGL_CONTROL0                                   0x120490
2359 #define PXP2_REG_PGL_CONTROL1                                   0x120514
2360 #define PXP2_REG_PGL_DEBUG                                      0x120520
2361 /*
2362  * [RW 32] third dword data of expansion rom request. this register i
2363  * special. reading from it provides a vector outstanding read requests. if
2364  * a bit is zero it means that a read request on the corresponding tag did
2365  * not finish yet (not all completions have arrived for it)
2366  */
2367 #define PXP2_REG_PGL_EXP_ROM2                                   0x120808
2368 /*
2369  * [RW 32] Inbound interrupt table for CSDM: bits[31:16]-mask
2370  * its[15:0]-address
2371  */
2372 #define PXP2_REG_PGL_INT_CSDM_0                                 0x1204f4
2373 #define PXP2_REG_PGL_INT_CSDM_1                                 0x1204f8
2374 #define PXP2_REG_PGL_INT_CSDM_2                                 0x1204fc
2375 #define PXP2_REG_PGL_INT_CSDM_3                                 0x120500
2376 #define PXP2_REG_PGL_INT_CSDM_4                                 0x120504
2377 #define PXP2_REG_PGL_INT_CSDM_5                                 0x120508
2378 #define PXP2_REG_PGL_INT_CSDM_6                                 0x12050c
2379 #define PXP2_REG_PGL_INT_CSDM_7                                 0x120510
2380 /*
2381  * [RW 32] Inbound interrupt table for TSDM: bits[31:16]-mask
2382  * its[15:0]-address
2383  */
2384 #define PXP2_REG_PGL_INT_TSDM_0                                 0x120494
2385 #define PXP2_REG_PGL_INT_TSDM_1                                 0x120498
2386 #define PXP2_REG_PGL_INT_TSDM_2                                 0x12049c
2387 #define PXP2_REG_PGL_INT_TSDM_3                                 0x1204a0
2388 #define PXP2_REG_PGL_INT_TSDM_4                                 0x1204a4
2389 #define PXP2_REG_PGL_INT_TSDM_5                                 0x1204a8
2390 #define PXP2_REG_PGL_INT_TSDM_6                                 0x1204ac
2391 #define PXP2_REG_PGL_INT_TSDM_7                                 0x1204b0
2392 /*
2393  * [RW 32] Inbound interrupt table for USDM: bits[31:16]-mask
2394  * its[15:0]-address
2395  */
2396 #define PXP2_REG_PGL_INT_USDM_0                                 0x1204b4
2397 #define PXP2_REG_PGL_INT_USDM_1                                 0x1204b8
2398 #define PXP2_REG_PGL_INT_USDM_2                                 0x1204bc
2399 #define PXP2_REG_PGL_INT_USDM_3                                 0x1204c0
2400 #define PXP2_REG_PGL_INT_USDM_4                                 0x1204c4
2401 #define PXP2_REG_PGL_INT_USDM_5                                 0x1204c8
2402 #define PXP2_REG_PGL_INT_USDM_6                                 0x1204cc
2403 #define PXP2_REG_PGL_INT_USDM_7                                 0x1204d0
2404 /*
2405  * [RW 32] Inbound interrupt table for XSDM: bits[31:16]-mask
2406  * its[15:0]-address
2407  */
2408 #define PXP2_REG_PGL_INT_XSDM_0                                 0x1204d4
2409 #define PXP2_REG_PGL_INT_XSDM_1                                 0x1204d8
2410 #define PXP2_REG_PGL_INT_XSDM_2                                 0x1204dc
2411 #define PXP2_REG_PGL_INT_XSDM_3                                 0x1204e0
2412 #define PXP2_REG_PGL_INT_XSDM_4                                 0x1204e4
2413 #define PXP2_REG_PGL_INT_XSDM_5                                 0x1204e8
2414 #define PXP2_REG_PGL_INT_XSDM_6                                 0x1204ec
2415 #define PXP2_REG_PGL_INT_XSDM_7                                 0x1204f0
2416 /*
2417  * [RW 3] this field allows one function to pretend being another functio
2418  * when accessing any BAR mapped resource within the device. the value of
2419  * the field is the number of the function that will be accessed
2420  * effectively. after software write to this bit it must read it in order to
2421  * know that the new value is updated.
2422  */
2423 #define PXP2_REG_PGL_PRETEND_FUNC_F0                            0x120674
2424 /*
2425  * [RW 3] this field allows one function to pretend being another functio
2426  * when accessing any BAR mapped resource within the device. the value of
2427  * the field is the number of the function that will be accessed
2428  * effectively. after software write to this bit it must read it in order to
2429  * know that the new value is updated.
2430  */
2431 #define PXP2_REG_PGL_PRETEND_FUNC_F1                            0x120678
2432 /*
2433  * [RW 3] this field allows one function to pretend being another functio
2434  * when accessing any BAR mapped resource within the device. the value of
2435  * the field is the number of the function that will be accessed
2436  * effectively. after software write to this bit it must read it in order to
2437  * know that the new value is updated.
2438  */
2439 #define PXP2_REG_PGL_PRETEND_FUNC_F2                            0x12067c
2440 /*
2441  * [RW 3] this field allows one function to pretend being another functio
2442  * when accessing any BAR mapped resource within the device. the value of
2443  * the field is the number of the function that will be accessed
2444  * effectively. after software write to this bit it must read it in order to
2445  * know that the new value is updated.
2446  */
2447 #define PXP2_REG_PGL_PRETEND_FUNC_F3                            0x120680
2448 /*
2449  * [RW 3] this field allows one function to pretend being another functio
2450  * when accessing any BAR mapped resource within the device. the value of
2451  * the field is the number of the function that will be accessed
2452  * effectively. after software write to this bit it must read it in order to
2453  * know that the new value is updated.
2454  */
2455 #define PXP2_REG_PGL_PRETEND_FUNC_F4                            0x120684
2456 /*
2457  * [RW 3] this field allows one function to pretend being another functio
2458  * when accessing any BAR mapped resource within the device. the value of
2459  * the field is the number of the function that will be accessed
2460  * effectively. after software write to this bit it must read it in order to
2461  * know that the new value is updated.
2462  */
2463 #define PXP2_REG_PGL_PRETEND_FUNC_F5                            0x120688
2464 /*
2465  * [RW 3] this field allows one function to pretend being another functio
2466  * when accessing any BAR mapped resource within the device. the value of
2467  * the field is the number of the function that will be accessed
2468  * effectively. after software write to this bit it must read it in order to
2469  * know that the new value is updated.
2470  */
2471 #define PXP2_REG_PGL_PRETEND_FUNC_F6                            0x12068c
2472 /*
2473  * [RW 3] this field allows one function to pretend being another functio
2474  * when accessing any BAR mapped resource within the device. the value of
2475  * the field is the number of the function that will be accessed
2476  * effectively. after software write to this bit it must read it in order to
2477  * know that the new value is updated.
2478  */
2479 #define PXP2_REG_PGL_PRETEND_FUNC_F7                            0x120690
2480 /*
2481  * [R 1] this bit indicates that a read request was blocked because o
2482  * bus_master_en was deasserted.
2483  */
2484 #define PXP2_REG_PGL_READ_BLOCKED                               0x120568
2485 #define PXP2_REG_PGL_TAGS_LIMIT                                 0x1205a8
2486 /* [R 18] debug only */
2487 #define PXP2_REG_PGL_TXW_CDTS                                   0x12052c
2488 /*
2489  * [R 1] this bit indicates that a write request was blocked because o
2490  * bus_master_en was deasserted.
2491  */
2492 #define PXP2_REG_PGL_WRITE_BLOCKED                              0x120564
2493 #define PXP2_REG_PSWRQ_BW_ADD1                                  0x1201c0
2494 #define PXP2_REG_PSWRQ_BW_ADD10                                 0x1201e4
2495 #define PXP2_REG_PSWRQ_BW_ADD11                                 0x1201e8
2496 #define PXP2_REG_PSWRQ_BW_ADD2                                  0x1201c4
2497 #define PXP2_REG_PSWRQ_BW_ADD28                                 0x120228
2498 #define PXP2_REG_PSWRQ_BW_ADD3                                  0x1201c8
2499 #define PXP2_REG_PSWRQ_BW_ADD6                                  0x1201d4
2500 #define PXP2_REG_PSWRQ_BW_ADD7                                  0x1201d8
2501 #define PXP2_REG_PSWRQ_BW_ADD8                                  0x1201dc
2502 #define PXP2_REG_PSWRQ_BW_ADD9                                  0x1201e0
2503 #define PXP2_REG_PSWRQ_BW_CREDIT                                0x12032c
2504 #define PXP2_REG_PSWRQ_BW_L1                                    0x1202b0
2505 #define PXP2_REG_PSWRQ_BW_L10                                   0x1202d4
2506 #define PXP2_REG_PSWRQ_BW_L11                                   0x1202d8
2507 #define PXP2_REG_PSWRQ_BW_L2                                    0x1202b4
2508 #define PXP2_REG_PSWRQ_BW_L28                                   0x120318
2509 #define PXP2_REG_PSWRQ_BW_L3                                    0x1202b8
2510 #define PXP2_REG_PSWRQ_BW_L6                                    0x1202c4
2511 #define PXP2_REG_PSWRQ_BW_L7                                    0x1202c8
2512 #define PXP2_REG_PSWRQ_BW_L8                                    0x1202cc
2513 #define PXP2_REG_PSWRQ_BW_L9                                    0x1202d0
2514 #define PXP2_REG_PSWRQ_BW_RD                                    0x120324
2515 #define PXP2_REG_PSWRQ_BW_UB1                                   0x120238
2516 #define PXP2_REG_PSWRQ_BW_UB10                                  0x12025c
2517 #define PXP2_REG_PSWRQ_BW_UB11                                  0x120260
2518 #define PXP2_REG_PSWRQ_BW_UB2                                   0x12023c
2519 #define PXP2_REG_PSWRQ_BW_UB28                                  0x1202a0
2520 #define PXP2_REG_PSWRQ_BW_UB3                                   0x120240
2521 #define PXP2_REG_PSWRQ_BW_UB6                                   0x12024c
2522 #define PXP2_REG_PSWRQ_BW_UB7                                   0x120250
2523 #define PXP2_REG_PSWRQ_BW_UB8                                   0x120254
2524 #define PXP2_REG_PSWRQ_BW_UB9                                   0x120258
2525 #define PXP2_REG_PSWRQ_BW_WR                                    0x120328
2526 #define PXP2_REG_PSWRQ_CDU0_L2P                                 0x120000
2527 #define PXP2_REG_PSWRQ_QM0_L2P                                  0x120038
2528 #define PXP2_REG_PSWRQ_SRC0_L2P                                 0x120054
2529 #define PXP2_REG_PSWRQ_TM0_L2P                                  0x12001c
2530 #define PXP2_REG_PSWRQ_TSDM0_L2P                                0x1200e0
2531 /* [RW 32] Interrupt mask register #0 read/write */
2532 #define PXP2_REG_PXP2_INT_MASK_0                                0x120578
2533 /* [R 32] Interrupt register #0 read */
2534 #define PXP2_REG_PXP2_INT_STS_0                                 0x12056c
2535 #define PXP2_REG_PXP2_INT_STS_1                                 0x120608
2536 /* [RC 32] Interrupt register #0 read clear */
2537 #define PXP2_REG_PXP2_INT_STS_CLR_0                             0x120570
2538 /* [RW 32] Parity mask register #0 read/write */
2539 #define PXP2_REG_PXP2_PRTY_MASK_0                               0x120588
2540 #define PXP2_REG_PXP2_PRTY_MASK_1                               0x120598
2541 /* [R 32] Parity register #0 read */
2542 #define PXP2_REG_PXP2_PRTY_STS_0                                0x12057c
2543 #define PXP2_REG_PXP2_PRTY_STS_1                                0x12058c
2544 /*
2545  * [R 1] Debug only: The 'almost full' indication from each fifo (give
2546  * indication about backpressure)
2547  */
2548 #define PXP2_REG_RD_ALMOST_FULL_0                               0x120424
2549 /* [R 8] Debug only: The blocks counter - number of unused block ids */
2550 #define PXP2_REG_RD_BLK_CNT                                     0x120418
2551 /*
2552  * [RW 8] Debug only: Total number of available blocks in Tetris Buffer
2553  * Must be bigger than 6. Normally should not be changed.
2554  */
2555 #define PXP2_REG_RD_BLK_NUM_CFG                                 0x12040c
2556 /* [RW 2] CDU byte swapping mode configuration for master read requests */
2557 #define PXP2_REG_RD_CDURD_SWAP_MODE                             0x120404
2558 /* [RW 1] When '1'; inputs to the PSWRD block are ignored */
2559 #define PXP2_REG_RD_DISABLE_INPUTS                              0x120374
2560 /* [R 1] PSWRD internal memories initialization is done */
2561 #define PXP2_REG_RD_INIT_DONE                                   0x120370
2562 /*
2563  * [RW 8] The maximum number of blocks in Tetris Buffer that can b
2564  * allocated for vq10.
2565  */
2566 #define PXP2_REG_RD_MAX_BLKS_VQ10                               0x1203a0
2567 /*
2568  * [RW 8] The maximum number of blocks in Tetris Buffer that can b
2569  * allocated for vq11
2570  */
2571 #define PXP2_REG_RD_MAX_BLKS_VQ11                               0x1203a4
2572 /*
2573  * [RW 8] The maximum number of blocks in Tetris Buffer that can b
2574  * allocated for vq17
2575  */
2576 #define PXP2_REG_RD_MAX_BLKS_VQ17                               0x1203bc
2577 /*
2578  * [RW 8] The maximum number of blocks in Tetris Buffer that can b
2579  * allocated for vq18
2580  */
2581 #define PXP2_REG_RD_MAX_BLKS_VQ18                               0x1203c0
2582 /*
2583  * [RW 8] The maximum number of blocks in Tetris Buffer that can b
2584  * allocated for vq19
2585  */
2586 #define PXP2_REG_RD_MAX_BLKS_VQ19                               0x1203c4
2587 /*
2588  * [RW 8] The maximum number of blocks in Tetris Buffer that can b
2589  * allocated for vq22
2590  */
2591 #define PXP2_REG_RD_MAX_BLKS_VQ22                               0x1203d0
2592 /*
2593  * [RW 8] The maximum number of blocks in Tetris Buffer that can b
2594  * allocated for vq25
2595  */
2596 #define PXP2_REG_RD_MAX_BLKS_VQ25                               0x1203dc
2597 /*
2598  * [RW 8] The maximum number of blocks in Tetris Buffer that can b
2599  * allocated for vq6
2600  */
2601 #define PXP2_REG_RD_MAX_BLKS_VQ6                                0x120390
2602 /*
2603  * [RW 8] The maximum number of blocks in Tetris Buffer that can b
2604  * allocated for vq9
2605  */
2606 #define PXP2_REG_RD_MAX_BLKS_VQ9                                0x12039c
2607 /* [RW 2] PBF byte swapping mode configuration for master read requests */
2608 #define PXP2_REG_RD_PBF_SWAP_MODE                               0x1203f4
2609 /* [R 1] Debug only: Indication if delivery ports are idle */
2610 #define PXP2_REG_RD_PORT_IS_IDLE_0                              0x12041c
2611 #define PXP2_REG_RD_PORT_IS_IDLE_1                              0x120420
2612 /* [RW 2] QM byte swapping mode configuration for master read requests */
2613 #define PXP2_REG_RD_QM_SWAP_MODE                                0x1203f8
2614 /* [R 7] Debug only: The SR counter - number of unused sub request ids */
2615 #define PXP2_REG_RD_SR_CNT                                      0x120414
2616 /* [RW 2] SRC byte swapping mode configuration for master read requests */
2617 #define PXP2_REG_RD_SRC_SWAP_MODE                               0x120400
2618 /*
2619  * [RW 7] Debug only: Total number of available PCI read sub-requests. Mus
2620  * be bigger than 1. Normally should not be changed.
2621  */
2622 #define PXP2_REG_RD_SR_NUM_CFG                                  0x120408
2623 /* [RW 1] Signals the PSWRD block to start initializing internal memories */
2624 #define PXP2_REG_RD_START_INIT                                  0x12036c
2625 /* [RW 2] TM byte swapping mode configuration for master read requests */
2626 #define PXP2_REG_RD_TM_SWAP_MODE                                0x1203fc
2627 /* [RW 10] Bandwidth addition to VQ0 write requests */
2628 #define PXP2_REG_RQ_BW_RD_ADD0                                  0x1201bc
2629 /* [RW 10] Bandwidth addition to VQ12 read requests */
2630 #define PXP2_REG_RQ_BW_RD_ADD12                                 0x1201ec
2631 /* [RW 10] Bandwidth addition to VQ13 read requests */
2632 #define PXP2_REG_RQ_BW_RD_ADD13                                 0x1201f0
2633 /* [RW 10] Bandwidth addition to VQ14 read requests */
2634 #define PXP2_REG_RQ_BW_RD_ADD14                                 0x1201f4
2635 /* [RW 10] Bandwidth addition to VQ15 read requests */
2636 #define PXP2_REG_RQ_BW_RD_ADD15                                 0x1201f8
2637 /* [RW 10] Bandwidth addition to VQ16 read requests */
2638 #define PXP2_REG_RQ_BW_RD_ADD16                                 0x1201fc
2639 /* [RW 10] Bandwidth addition to VQ17 read requests */
2640 #define PXP2_REG_RQ_BW_RD_ADD17                                 0x120200
2641 /* [RW 10] Bandwidth addition to VQ18 read requests */
2642 #define PXP2_REG_RQ_BW_RD_ADD18                                 0x120204
2643 /* [RW 10] Bandwidth addition to VQ19 read requests */
2644 #define PXP2_REG_RQ_BW_RD_ADD19                                 0x120208
2645 /* [RW 10] Bandwidth addition to VQ20 read requests */
2646 #define PXP2_REG_RQ_BW_RD_ADD20                                 0x12020c
2647 /* [RW 10] Bandwidth addition to VQ22 read requests */
2648 #define PXP2_REG_RQ_BW_RD_ADD22                                 0x120210
2649 /* [RW 10] Bandwidth addition to VQ23 read requests */
2650 #define PXP2_REG_RQ_BW_RD_ADD23                                 0x120214
2651 /* [RW 10] Bandwidth addition to VQ24 read requests */
2652 #define PXP2_REG_RQ_BW_RD_ADD24                                 0x120218
2653 /* [RW 10] Bandwidth addition to VQ25 read requests */
2654 #define PXP2_REG_RQ_BW_RD_ADD25                                 0x12021c
2655 /* [RW 10] Bandwidth addition to VQ26 read requests */
2656 #define PXP2_REG_RQ_BW_RD_ADD26                                 0x120220
2657 /* [RW 10] Bandwidth addition to VQ27 read requests */
2658 #define PXP2_REG_RQ_BW_RD_ADD27                                 0x120224
2659 /* [RW 10] Bandwidth addition to VQ4 read requests */
2660 #define PXP2_REG_RQ_BW_RD_ADD4                                  0x1201cc
2661 /* [RW 10] Bandwidth addition to VQ5 read requests */
2662 #define PXP2_REG_RQ_BW_RD_ADD5                                  0x1201d0
2663 /* [RW 10] Bandwidth Typical L for VQ0 Read requests */
2664 #define PXP2_REG_RQ_BW_RD_L0                                    0x1202ac
2665 /* [RW 10] Bandwidth Typical L for VQ12 Read requests */
2666 #define PXP2_REG_RQ_BW_RD_L12                                   0x1202dc
2667 /* [RW 10] Bandwidth Typical L for VQ13 Read requests */
2668 #define PXP2_REG_RQ_BW_RD_L13                                   0x1202e0
2669 /* [RW 10] Bandwidth Typical L for VQ14 Read requests */
2670 #define PXP2_REG_RQ_BW_RD_L14                                   0x1202e4
2671 /* [RW 10] Bandwidth Typical L for VQ15 Read requests */
2672 #define PXP2_REG_RQ_BW_RD_L15                                   0x1202e8
2673 /* [RW 10] Bandwidth Typical L for VQ16 Read requests */
2674 #define PXP2_REG_RQ_BW_RD_L16                                   0x1202ec
2675 /* [RW 10] Bandwidth Typical L for VQ17 Read requests */
2676 #define PXP2_REG_RQ_BW_RD_L17                                   0x1202f0
2677 /* [RW 10] Bandwidth Typical L for VQ18 Read requests */
2678 #define PXP2_REG_RQ_BW_RD_L18                                   0x1202f4
2679 /* [RW 10] Bandwidth Typical L for VQ19 Read requests */
2680 #define PXP2_REG_RQ_BW_RD_L19                                   0x1202f8
2681 /* [RW 10] Bandwidth Typical L for VQ20 Read requests */
2682 #define PXP2_REG_RQ_BW_RD_L20                                   0x1202fc
2683 /* [RW 10] Bandwidth Typical L for VQ22 Read requests */
2684 #define PXP2_REG_RQ_BW_RD_L22                                   0x120300
2685 /* [RW 10] Bandwidth Typical L for VQ23 Read requests */
2686 #define PXP2_REG_RQ_BW_RD_L23                                   0x120304
2687 /* [RW 10] Bandwidth Typical L for VQ24 Read requests */
2688 #define PXP2_REG_RQ_BW_RD_L24                                   0x120308
2689 /* [RW 10] Bandwidth Typical L for VQ25 Read requests */
2690 #define PXP2_REG_RQ_BW_RD_L25                                   0x12030c
2691 /* [RW 10] Bandwidth Typical L for VQ26 Read requests */
2692 #define PXP2_REG_RQ_BW_RD_L26                                   0x120310
2693 /* [RW 10] Bandwidth Typical L for VQ27 Read requests */
2694 #define PXP2_REG_RQ_BW_RD_L27                                   0x120314
2695 /* [RW 10] Bandwidth Typical L for VQ4 Read requests */
2696 #define PXP2_REG_RQ_BW_RD_L4                                    0x1202bc
2697 /* [RW 10] Bandwidth Typical L for VQ5 Read- currently not used */
2698 #define PXP2_REG_RQ_BW_RD_L5                                    0x1202c0
2699 /* [RW 7] Bandwidth upper bound for VQ0 read requests */
2700 #define PXP2_REG_RQ_BW_RD_UBOUND0                               0x120234
2701 /* [RW 7] Bandwidth upper bound for VQ12 read requests */
2702 #define PXP2_REG_RQ_BW_RD_UBOUND12                              0x120264
2703 /* [RW 7] Bandwidth upper bound for VQ13 read requests */
2704 #define PXP2_REG_RQ_BW_RD_UBOUND13                              0x120268
2705 /* [RW 7] Bandwidth upper bound for VQ14 read requests */
2706 #define PXP2_REG_RQ_BW_RD_UBOUND14                              0x12026c
2707 /* [RW 7] Bandwidth upper bound for VQ15 read requests */
2708 #define PXP2_REG_RQ_BW_RD_UBOUND15                              0x120270
2709 /* [RW 7] Bandwidth upper bound for VQ16 read requests */
2710 #define PXP2_REG_RQ_BW_RD_UBOUND16                              0x120274
2711 /* [RW 7] Bandwidth upper bound for VQ17 read requests */
2712 #define PXP2_REG_RQ_BW_RD_UBOUND17                              0x120278
2713 /* [RW 7] Bandwidth upper bound for VQ18 read requests */
2714 #define PXP2_REG_RQ_BW_RD_UBOUND18                              0x12027c
2715 /* [RW 7] Bandwidth upper bound for VQ19 read requests */
2716 #define PXP2_REG_RQ_BW_RD_UBOUND19                              0x120280
2717 /* [RW 7] Bandwidth upper bound for VQ20 read requests */
2718 #define PXP2_REG_RQ_BW_RD_UBOUND20                              0x120284
2719 /* [RW 7] Bandwidth upper bound for VQ22 read requests */
2720 #define PXP2_REG_RQ_BW_RD_UBOUND22                              0x120288
2721 /* [RW 7] Bandwidth upper bound for VQ23 read requests */
2722 #define PXP2_REG_RQ_BW_RD_UBOUND23                              0x12028c
2723 /* [RW 7] Bandwidth upper bound for VQ24 read requests */
2724 #define PXP2_REG_RQ_BW_RD_UBOUND24                              0x120290
2725 /* [RW 7] Bandwidth upper bound for VQ25 read requests */
2726 #define PXP2_REG_RQ_BW_RD_UBOUND25                              0x120294
2727 /* [RW 7] Bandwidth upper bound for VQ26 read requests */
2728 #define PXP2_REG_RQ_BW_RD_UBOUND26                              0x120298
2729 /* [RW 7] Bandwidth upper bound for VQ27 read requests */
2730 #define PXP2_REG_RQ_BW_RD_UBOUND27                              0x12029c
2731 /* [RW 7] Bandwidth upper bound for VQ4 read requests */
2732 #define PXP2_REG_RQ_BW_RD_UBOUND4                               0x120244
2733 /* [RW 7] Bandwidth upper bound for VQ5 read requests */
2734 #define PXP2_REG_RQ_BW_RD_UBOUND5                               0x120248
2735 /* [RW 10] Bandwidth addition to VQ29 write requests */
2736 #define PXP2_REG_RQ_BW_WR_ADD29                                 0x12022c
2737 /* [RW 10] Bandwidth addition to VQ30 write requests */
2738 #define PXP2_REG_RQ_BW_WR_ADD30                                 0x120230
2739 /* [RW 10] Bandwidth Typical L for VQ29 Write requests */
2740 #define PXP2_REG_RQ_BW_WR_L29                                   0x12031c
2741 /* [RW 10] Bandwidth Typical L for VQ30 Write requests */
2742 #define PXP2_REG_RQ_BW_WR_L30                                   0x120320
2743 /* [RW 7] Bandwidth upper bound for VQ29 */
2744 #define PXP2_REG_RQ_BW_WR_UBOUND29                              0x1202a4
2745 /* [RW 7] Bandwidth upper bound for VQ30 */
2746 #define PXP2_REG_RQ_BW_WR_UBOUND30                              0x1202a8
2747 /* [RW 18] external first_mem_addr field in L2P table for CDU module port 0 */
2748 #define PXP2_REG_RQ_CDU0_EFIRST_MEM_ADDR                        0x120008
2749 /* [RW 2] Endian mode for cdu */
2750 #define PXP2_REG_RQ_CDU_ENDIAN_M                                0x1201a0
2751 #define PXP2_REG_RQ_CDU_FIRST_ILT                               0x12061c
2752 #define PXP2_REG_RQ_CDU_LAST_ILT                                0x120620
2753 /*
2754  * [RW 3] page size in L2P table for CDU module; -4k; -8k; -16k; -32k; -64k
2755  * -128k
2756  */
2757 #define PXP2_REG_RQ_CDU_P_SIZE                                  0x120018
2758 /*
2759  * [R 1] 1' indicates that the requester has finished its interna
2760  * configuration
2761  */
2762 #define PXP2_REG_RQ_CFG_DONE                                    0x1201b4
2763 /* [RW 2] Endian mode for debug */
2764 #define PXP2_REG_RQ_DBG_ENDIAN_M                                0x1201a4
2765 /*
2766  * [RW 1] When '1'; requests will enter input buffers but wont get ou
2767  * towards the glue
2768  */
2769 #define PXP2_REG_RQ_DISABLE_INPUTS                              0x120330
2770 /* [RW 1] 1 - SR will be aligned by 64B; 0 - SR will be aligned by 8B */
2771 #define PXP2_REG_RQ_DRAM_ALIGN                                  0x1205b0
2772 /*
2773  * [RW 1] If 1 ILT failiue will not result in ELT access; An interrupt wil
2774  * be asserted
2775  */
2776 #define PXP2_REG_RQ_ELT_DISABLE                                 0x12066c
2777 /* [RW 2] Endian mode for hc */
2778 #define PXP2_REG_RQ_HC_ENDIAN_M                                 0x1201a8
2779 /*
2780  * [RW 1] when '0' ILT logic will work as in A0; otherwise B0; for bac
2781  * compatibility needs; Note that different registers are used per mode
2782  */
2783 #define PXP2_REG_RQ_ILT_MODE                                    0x1205b4
2784 /* [WB 53] Onchip address table */
2785 #define PXP2_REG_RQ_ONCHIP_AT                                   0x122000
2786 /* [WB 53] Onchip address table - B0 */
2787 #define PXP2_REG_RQ_ONCHIP_AT_B0                                0x128000
2788 /* [RW 13] Pending read limiter threshold; in Dwords */
2789 #define PXP2_REG_RQ_PDR_LIMIT                                   0x12033c
2790 /* [RW 2] Endian mode for qm */
2791 #define PXP2_REG_RQ_QM_ENDIAN_M                                 0x120194
2792 #define PXP2_REG_RQ_QM_FIRST_ILT                                0x120634
2793 #define PXP2_REG_RQ_QM_LAST_ILT                                 0x120638
2794 /*
2795  * [RW 3] page size in L2P table for QM module; -4k; -8k; -16k; -32k; -64k
2796  * -128k
2797  */
2798 #define PXP2_REG_RQ_QM_P_SIZE                                   0x120050
2799 /* [RW 1] 1' indicates that the RBC has finished configuring the PSWRQ */
2800 #define PXP2_REG_RQ_RBC_DONE                                    0x1201b0
2801 /*
2802  * [RW 3] Max burst size filed for read requests port 0; 000 - 128B
2803  * 001:256B; 010: 512B; 11:1K:100:2K; 01:4K
2804  */
2805 #define PXP2_REG_RQ_RD_MBS0                                     0x120160
2806 /*
2807  * [RW 3] Max burst size filed for read requests port 1; 000 - 128B
2808  * 001:256B; 010: 512B; 11:1K:100:2K; 01:4K
2809  */
2810 #define PXP2_REG_RQ_RD_MBS1                                     0x120168
2811 /* [RW 2] Endian mode for src */
2812 #define PXP2_REG_RQ_SRC_ENDIAN_M                                0x12019c
2813 #define PXP2_REG_RQ_SRC_FIRST_ILT                               0x12063c
2814 #define PXP2_REG_RQ_SRC_LAST_ILT                                0x120640
2815 /*
2816  * [RW 3] page size in L2P table for SRC module; -4k; -8k; -16k; -32k; -64k
2817  * -128k
2818  */
2819 #define PXP2_REG_RQ_SRC_P_SIZE                                  0x12006c
2820 /* [RW 2] Endian mode for tm */
2821 #define PXP2_REG_RQ_TM_ENDIAN_M                                 0x120198
2822 #define PXP2_REG_RQ_TM_FIRST_ILT                                0x120644
2823 #define PXP2_REG_RQ_TM_LAST_ILT                                 0x120648
2824 /*
2825  * [RW 3] page size in L2P table for TM module; -4k; -8k; -16k; -32k; -64k
2826  *  -128k
2827  */
2828 #define PXP2_REG_RQ_TM_P_SIZE                                   0x120034
2829 /* [R 5] Number of entries in the ufifo; his fifo has l2p completions */
2830 #define PXP2_REG_RQ_UFIFO_NUM_OF_ENTRY                          0x12080c
2831 /* [RW 18] external first_mem_addr field in L2P table for USDM module port 0 */
2832 #define PXP2_REG_RQ_USDM0_EFIRST_MEM_ADDR                       0x120094
2833 /* [R 8] Number of entries occupied by vq 0 in pswrq memory */
2834 #define PXP2_REG_RQ_VQ0_ENTRY_CNT                               0x120810
2835 /* [R 8] Number of entries occupied by vq 10 in pswrq memory */
2836 #define PXP2_REG_RQ_VQ10_ENTRY_CNT                              0x120818
2837 /* [R 8] Number of entries occupied by vq 11 in pswrq memory */
2838 #define PXP2_REG_RQ_VQ11_ENTRY_CNT                              0x120820
2839 /* [R 8] Number of entries occupied by vq 12 in pswrq memory */
2840 #define PXP2_REG_RQ_VQ12_ENTRY_CNT                              0x120828
2841 /* [R 8] Number of entries occupied by vq 13 in pswrq memory */
2842 #define PXP2_REG_RQ_VQ13_ENTRY_CNT                              0x120830
2843 /* [R 8] Number of entries occupied by vq 14 in pswrq memory */
2844 #define PXP2_REG_RQ_VQ14_ENTRY_CNT                              0x120838
2845 /* [R 8] Number of entries occupied by vq 15 in pswrq memory */
2846 #define PXP2_REG_RQ_VQ15_ENTRY_CNT                              0x120840
2847 /* [R 8] Number of entries occupied by vq 16 in pswrq memory */
2848 #define PXP2_REG_RQ_VQ16_ENTRY_CNT                              0x120848
2849 /* [R 8] Number of entries occupied by vq 17 in pswrq memory */
2850 #define PXP2_REG_RQ_VQ17_ENTRY_CNT                              0x120850
2851 /* [R 8] Number of entries occupied by vq 18 in pswrq memory */
2852 #define PXP2_REG_RQ_VQ18_ENTRY_CNT                              0x120858
2853 /* [R 8] Number of entries occupied by vq 19 in pswrq memory */
2854 #define PXP2_REG_RQ_VQ19_ENTRY_CNT                              0x120860
2855 /* [R 8] Number of entries occupied by vq 1 in pswrq memory */
2856 #define PXP2_REG_RQ_VQ1_ENTRY_CNT                               0x120868
2857 /* [R 8] Number of entries occupied by vq 20 in pswrq memory */
2858 #define PXP2_REG_RQ_VQ20_ENTRY_CNT                              0x120870
2859 /* [R 8] Number of entries occupied by vq 21 in pswrq memory */
2860 #define PXP2_REG_RQ_VQ21_ENTRY_CNT                              0x120878
2861 /* [R 8] Number of entries occupied by vq 22 in pswrq memory */
2862 #define PXP2_REG_RQ_VQ22_ENTRY_CNT                              0x120880
2863 /* [R 8] Number of entries occupied by vq 23 in pswrq memory */
2864 #define PXP2_REG_RQ_VQ23_ENTRY_CNT                              0x120888
2865 /* [R 8] Number of entries occupied by vq 24 in pswrq memory */
2866 #define PXP2_REG_RQ_VQ24_ENTRY_CNT                              0x120890
2867 /* [R 8] Number of entries occupied by vq 25 in pswrq memory */
2868 #define PXP2_REG_RQ_VQ25_ENTRY_CNT                              0x120898
2869 /* [R 8] Number of entries occupied by vq 26 in pswrq memory */
2870 #define PXP2_REG_RQ_VQ26_ENTRY_CNT                              0x1208a0
2871 /* [R 8] Number of entries occupied by vq 27 in pswrq memory */
2872 #define PXP2_REG_RQ_VQ27_ENTRY_CNT                              0x1208a8
2873 /* [R 8] Number of entries occupied by vq 28 in pswrq memory */
2874 #define PXP2_REG_RQ_VQ28_ENTRY_CNT                              0x1208b0
2875 /* [R 8] Number of entries occupied by vq 29 in pswrq memory */
2876 #define PXP2_REG_RQ_VQ29_ENTRY_CNT                              0x1208b8
2877 /* [R 8] Number of entries occupied by vq 2 in pswrq memory */
2878 #define PXP2_REG_RQ_VQ2_ENTRY_CNT                               0x1208c0
2879 /* [R 8] Number of entries occupied by vq 30 in pswrq memory */
2880 #define PXP2_REG_RQ_VQ30_ENTRY_CNT                              0x1208c8
2881 /* [R 8] Number of entries occupied by vq 31 in pswrq memory */
2882 #define PXP2_REG_RQ_VQ31_ENTRY_CNT                              0x1208d0
2883 /* [R 8] Number of entries occupied by vq 3 in pswrq memory */
2884 #define PXP2_REG_RQ_VQ3_ENTRY_CNT                               0x1208d8
2885 /* [R 8] Number of entries occupied by vq 4 in pswrq memory */
2886 #define PXP2_REG_RQ_VQ4_ENTRY_CNT                               0x1208e0
2887 /* [R 8] Number of entries occupied by vq 5 in pswrq memory */
2888 #define PXP2_REG_RQ_VQ5_ENTRY_CNT                               0x1208e8
2889 /* [R 8] Number of entries occupied by vq 6 in pswrq memory */
2890 #define PXP2_REG_RQ_VQ6_ENTRY_CNT                               0x1208f0
2891 /* [R 8] Number of entries occupied by vq 7 in pswrq memory */
2892 #define PXP2_REG_RQ_VQ7_ENTRY_CNT                               0x1208f8
2893 /* [R 8] Number of entries occupied by vq 8 in pswrq memory */
2894 #define PXP2_REG_RQ_VQ8_ENTRY_CNT                               0x120900
2895 /* [R 8] Number of entries occupied by vq 9 in pswrq memory */
2896 #define PXP2_REG_RQ_VQ9_ENTRY_CNT                               0x120908
2897 /*
2898  * [RW 3] Max burst size filed for write requests port 0; 000 - 128B
2899  * 001:256B; 010: 512B;
2900  */
2901 #define PXP2_REG_RQ_WR_MBS0                                     0x12015c
2902 /*
2903  * [RW 3] Max burst size filed for write requests port 1; 000 - 128B
2904  * 001:256B; 010: 512B;
2905  */
2906 #define PXP2_REG_RQ_WR_MBS1                                     0x120164
2907 /*
2908  * [RW 2] 0 - 128B;  - 256B;  - 512B;  - 1024B; when the payload in th
2909  * buffer reaches this number has_payload will be asserted
2910  */
2911 #define PXP2_REG_WR_CDU_MPS                                     0x1205f0
2912 /*
2913  * [RW 2] 0 - 128B;  - 256B;  - 512B;  - 1024B; when the payload in th
2914  * buffer reaches this number has_payload will be asserted
2915  */
2916 #define PXP2_REG_WR_CSDM_MPS                                    0x1205d0
2917 /*
2918  * [RW 2] 0 - 128B;  - 256B;  - 512B;  - 1024B; when the payload in th
2919  * buffer reaches this number has_payload will be asserted
2920  */
2921 #define PXP2_REG_WR_DBG_MPS                                     0x1205e8
2922 /*
2923  * [RW 2] 0 - 128B;  - 256B;  - 512B;  - 1024B; when the payload in th
2924  * buffer reaches this number has_payload will be asserted
2925  */
2926 #define PXP2_REG_WR_DMAE_MPS                                    0x1205ec
2927 /*
2928  * [RW 10] if Number of entries in dmae fifo will be higher than thi
2929  * threshold then has_payload indication will be asserted; the default value
2930  * should be equal to &gt;  write MBS size!
2931  */
2932 #define PXP2_REG_WR_DMAE_TH                                     0x120368
2933 /*
2934  * [RW 2] 0 - 128B;  - 256B;  - 512B;  - 1024B; when the payload in th
2935  * buffer reaches this number has_payload will be asserted
2936  */
2937 #define PXP2_REG_WR_HC_MPS                                      0x1205c8
2938 /*
2939  * [RW 2] 0 - 128B;  - 256B;  - 512B;  - 1024B; when the payload in th
2940  * buffer reaches this number has_payload will be asserted
2941  */
2942 #define PXP2_REG_WR_QM_MPS                                      0x1205dc
2943 /* [RW 1] 0 - working in A0 mode;  - working in B0 mode */
2944 #define PXP2_REG_WR_REV_MODE                                    0x120670
2945 /*
2946  * [RW 2] 0 - 128B;  - 256B;  - 512B;  - 1024B; when the payload in th
2947  * buffer reaches this number has_payload will be asserted
2948  */
2949 #define PXP2_REG_WR_SRC_MPS                                     0x1205e4
2950 /*
2951  * [RW 2] 0 - 128B;  - 256B;  - 512B;  - 1024B; when the payload in th
2952  * buffer reaches this number has_payload will be asserted
2953  */
2954 #define PXP2_REG_WR_TM_MPS                                      0x1205e0
2955 /*
2956  * [RW 2] 0 - 128B;  - 256B;  - 512B;  - 1024B; when the payload in th
2957  * buffer reaches this number has_payload will be asserted
2958  */
2959 #define PXP2_REG_WR_TSDM_MPS                                    0x1205d4
2960 /*
2961  * [RW 10] if Number of entries in usdmdp fifo will be higher than thi
2962  * threshold then has_payload indication will be asserted; the default value
2963  * should be equal to &gt;  write MBS size!
2964  */
2965 #define PXP2_REG_WR_USDMDP_TH                                   0x120348
2966 /*
2967  * [RW 2] 0 - 128B;  - 256B;  - 512B;  - 1024B; when the payload in th
2968  * buffer reaches this number has_payload will be asserted
2969  */
2970 #define PXP2_REG_WR_USDM_MPS                                    0x1205cc
2971 /*
2972  * [RW 2] 0 - 128B;  - 256B;  - 512B;  - 1024B; when the payload in th
2973  * buffer reaches this number has_payload will be asserted
2974  */
2975 #define PXP2_REG_WR_XSDM_MPS                                    0x1205d8
2976 /* [R 1] debug only: Indication if PSWHST arbiter is idle */
2977 #define PXP_REG_HST_ARB_IS_IDLE                                 0x103004
2978 /*
2979  * [R 8] debug only: A bit mask for all PSWHST arbiter clients. '1' mean
2980  * this client is waiting for the arbiter.
2981  */
2982 #define PXP_REG_HST_CLIENTS_WAITING_TO_ARB                      0x103008
2983 /*
2984  * [R 1] debug only: '1' means this PSWHST is discarding doorbells. This bi
2985  * should update accoring to 'hst_discard_doorbells' register when the state
2986  * machine is idle
2987  */
2988 #define PXP_REG_HST_DISCARD_DOORBELLS_STATUS                    0x1030a0
2989 /*
2990  * [R 6] debug only: A bit mask for all PSWHST internal write clients. '1
2991  * means this PSWHST is discarding inputs from this client. Each bit should
2992  * update accoring to 'hst_discard_internal_writes' register when the state
2993  * machine is idle.
2994  */
2995 #define PXP_REG_HST_DISCARD_INTERNAL_WRITES_STATUS              0x10309c
2996 /* [WB 160] Used for initialization of the inbound interrupts memory */
2997 #define PXP_REG_HST_INBOUND_INT                                 0x103800
2998 /* [RW 32] Interrupt mask register #0 read/write */
2999 #define PXP_REG_PXP_INT_MASK_0                                  0x103074
3000 #define PXP_REG_PXP_INT_MASK_1                                  0x103084
3001 /* [R 32] Interrupt register #0 read */
3002 #define PXP_REG_PXP_INT_STS_0                                   0x103068
3003 #define PXP_REG_PXP_INT_STS_1                                   0x103078
3004 /* [RC 32] Interrupt register #0 read clear */
3005 #define PXP_REG_PXP_INT_STS_CLR_0                               0x10306c
3006 /* [RW 26] Parity mask register #0 read/write */
3007 #define PXP_REG_PXP_PRTY_MASK                                   0x103094
3008 /* [R 26] Parity register #0 read */
3009 #define PXP_REG_PXP_PRTY_STS                                    0x103088
3010 /*
3011  * [RW 4] The activity counter initial increment value sent in the loa
3012  * request
3013  */
3014 #define QM_REG_ACTCTRINITVAL_0                                  0x168040
3015 #define QM_REG_ACTCTRINITVAL_1                                  0x168044
3016 #define QM_REG_ACTCTRINITVAL_2                                  0x168048
3017 #define QM_REG_ACTCTRINITVAL_3                                  0x16804c
3018 /*
3019  * [RW 32] The base logical address (in bytes) of each physical queue. Th
3020  * index I represents the physical queue number. The 12 lsbs are ignore and
3021  * considered zero so practically there are only 20 bits in this register;
3022  * queues 63-0
3023  */
3024 #define QM_REG_BASEADDR                                         0x168900
3025 /*
3026  * [RW 32] The base logical address (in bytes) of each physical queue. Th
3027  * index I represents the physical queue number. The 12 lsbs are ignore and
3028  * considered zero so practically there are only 20 bits in this register;
3029  * queues 127-64
3030  */
3031 #define QM_REG_BASEADDR_EXT_A                                   0x16e100
3032 /* [RW 16] The byte credit cost for each task. This value is for both ports */
3033 #define QM_REG_BYTECRDCOST                                      0x168234
3034 /* [RW 16] The initial byte credit value for both ports. */
3035 #define QM_REG_BYTECRDINITVAL                                   0x168238
3036 /*
3037  * [RW 32] A bit per physical queue. If the bit is cleared then the physica
3038  * queue uses port 0 else it uses port 1; queues 31-0
3039  */
3040 #define QM_REG_BYTECRDPORT_LSB                                  0x168228
3041 /*
3042  * [RW 32] A bit per physical queue. If the bit is cleared then the physica
3043  * queue uses port 0 else it uses port 1; queues 95-64
3044  */
3045 #define QM_REG_BYTECRDPORT_LSB_EXT_A                            0x16e520
3046 /*
3047  * [RW 32] A bit per physical queue. If the bit is cleared then the physica
3048  * queue uses port 0 else it uses port 1; queues 63-32
3049  */
3050 #define QM_REG_BYTECRDPORT_MSB                                  0x168224
3051 /*
3052  * [RW 32] A bit per physical queue. If the bit is cleared then the physica
3053  * queue uses port 0 else it uses port 1; queues 127-96
3054  */
3055 #define QM_REG_BYTECRDPORT_MSB_EXT_A                            0x16e51c
3056 /*
3057  * [RW 16] The byte credit value that if above the QM is considered almos
3058  * full
3059  */
3060 #define QM_REG_BYTECREDITAFULLTHR                               0x168094
3061 /* [RW 4] The initial credit for interface */
3062 #define QM_REG_CMINITCRD_0                                      0x1680cc
3063 #define QM_REG_CMINITCRD_1                                      0x1680d0
3064 #define QM_REG_CMINITCRD_2                                      0x1680d4
3065 #define QM_REG_CMINITCRD_3                                      0x1680d8
3066 #define QM_REG_CMINITCRD_4                                      0x1680dc
3067 #define QM_REG_CMINITCRD_5                                      0x1680e0
3068 #define QM_REG_CMINITCRD_6                                      0x1680e4
3069 #define QM_REG_CMINITCRD_7                                      0x1680e8
3070 /*
3071  * [RW 8] A mask bit per CM interface. If this bit is 0 then this interfac
3072  * is masked
3073  */
3074 #define QM_REG_CMINTEN                                          0x1680ec
3075 /*
3076  * [RW 12] A bit vector which indicates which one of the queues are tied t
3077  * interface 0
3078  */
3079 #define QM_REG_CMINTVOQMASK_0                                   0x1681f4
3080 #define QM_REG_CMINTVOQMASK_1                                   0x1681f8
3081 #define QM_REG_CMINTVOQMASK_2                                   0x1681fc
3082 #define QM_REG_CMINTVOQMASK_3                                   0x168200
3083 #define QM_REG_CMINTVOQMASK_4                                   0x168204
3084 #define QM_REG_CMINTVOQMASK_5                                   0x168208
3085 #define QM_REG_CMINTVOQMASK_6                                   0x16820c
3086 #define QM_REG_CMINTVOQMASK_7                                   0x168210
3087 /*
3088  * [RW 20] The number of connections divided by 16 which dictates the siz
3089  * of each queue which belongs to even function number.
3090  */
3091 #define QM_REG_CONNNUM_0                                        0x168020
3092 /* [R 6] Keep the fill level of the fifo from write client 4 */
3093 #define QM_REG_CQM_WRC_FIFOLVL                                  0x168018
3094 /* [RW 8] The context regions sent in the CFC load request */
3095 #define QM_REG_CTXREG_0                                         0x168030
3096 #define QM_REG_CTXREG_1                                         0x168034
3097 #define QM_REG_CTXREG_2                                         0x168038
3098 #define QM_REG_CTXREG_3                                         0x16803c
3099 /*
3100  * [RW 12] The VOQ mask used to select the VOQs which needs to be full fo
3101  * bypass enable
3102  */
3103 #define QM_REG_ENBYPVOQMASK                                     0x16823c
3104 /*
3105  * [RW 32] A bit mask per each physical queue. If a bit is set then th
3106  * physical queue uses the byte credit; queues 31-0
3107  */
3108 #define QM_REG_ENBYTECRD_LSB                                    0x168220
3109 /*
3110  * [RW 32] A bit mask per each physical queue. If a bit is set then th
3111  * physical queue uses the byte credit; queues 95-64
3112  */
3113 #define QM_REG_ENBYTECRD_LSB_EXT_A                              0x16e518
3114 /*
3115  * [RW 32] A bit mask per each physical queue. If a bit is set then th
3116  * physical queue uses the byte credit; queues 63-32
3117  */
3118 #define QM_REG_ENBYTECRD_MSB                                    0x16821c
3119 /*
3120  * [RW 32] A bit mask per each physical queue. If a bit is set then th
3121  * physical queue uses the byte credit; queues 127-96
3122  */
3123 #define QM_REG_ENBYTECRD_MSB_EXT_A                              0x16e514
3124 /*
3125  * [RW 4] If cleared then the secondary interface will not be served by th
3126  * RR arbiter
3127  */
3128 #define QM_REG_ENSEC                                            0x1680f0
3129 /* [RW 32] NA */
3130 #define QM_REG_FUNCNUMSEL_LSB                                   0x168230
3131 /* [RW 32] NA */
3132 #define QM_REG_FUNCNUMSEL_MSB                                   0x16822c
3133 /*
3134  * [RW 32] A mask register to mask the Almost empty signals which will no
3135  * be use for the almost empty indication to the HW block; queues 31:0
3136  */
3137 #define QM_REG_HWAEMPTYMASK_LSB                                 0x168218
3138 /*
3139  * [RW 32] A mask register to mask the Almost empty signals which will no
3140  * be use for the almost empty indication to the HW block; queues 95-64
3141  */
3142 #define QM_REG_HWAEMPTYMASK_LSB_EXT_A                           0x16e510
3143 /*
3144  * [RW 32] A mask register to mask the Almost empty signals which will no
3145  * be use for the almost empty indication to the HW block; queues 63:32
3146  */
3147 #define QM_REG_HWAEMPTYMASK_MSB                                 0x168214
3148 /*
3149  * [RW 32] A mask register to mask the Almost empty signals which will no
3150  * be use for the almost empty indication to the HW block; queues 127-96
3151  */
3152 #define QM_REG_HWAEMPTYMASK_MSB_EXT_A                           0x16e50c
3153 /* [RW 4] The number of outstanding request to CFC */
3154 #define QM_REG_OUTLDREQ                                         0x168804
3155 /*
3156  * [RC 1] A flag to indicate that overflow error occurred in one of th
3157  * queues.
3158  */
3159 #define QM_REG_OVFERROR                                         0x16805c
3160 /* [RC 7] the Q were the qverflow occurs */
3161 #define QM_REG_OVFQNUM                                          0x168058
3162 /* [R 16] Pause state for physical queues 15-0 */
3163 #define QM_REG_PAUSESTATE0                                      0x168410
3164 /* [R 16] Pause state for physical queues 31-16 */
3165 #define QM_REG_PAUSESTATE1                                      0x168414
3166 /* [R 16] Pause state for physical queues 47-32 */
3167 #define QM_REG_PAUSESTATE2                                      0x16e684
3168 /* [R 16] Pause state for physical queues 63-48 */
3169 #define QM_REG_PAUSESTATE3                                      0x16e688
3170 /* [R 16] Pause state for physical queues 79-64 */
3171 #define QM_REG_PAUSESTATE4                                      0x16e68c
3172 /* [R 16] Pause state for physical queues 95-80 */
3173 #define QM_REG_PAUSESTATE5                                      0x16e690
3174 /* [R 16] Pause state for physical queues 111-96 */
3175 #define QM_REG_PAUSESTATE6                                      0x16e694
3176 /* [R 16] Pause state for physical queues 127-112 */
3177 #define QM_REG_PAUSESTATE7                                      0x16e698
3178 /* [RW 2] The PCI attributes field used in the PCI request. */
3179 #define QM_REG_PCIREQAT                                         0x168054
3180 /* [R 16] The byte credit of port 0 */
3181 #define QM_REG_PORT0BYTECRD                                     0x168300
3182 /* [R 16] The byte credit of port 1 */
3183 #define QM_REG_PORT1BYTECRD                                     0x168304
3184 /* [RW 3] pci function number of queues 15-0 */
3185 #define QM_REG_PQ2PCIFUNC_0                                     0x16e6bc
3186 #define QM_REG_PQ2PCIFUNC_1                                     0x16e6c0
3187 #define QM_REG_PQ2PCIFUNC_2                                     0x16e6c4
3188 #define QM_REG_PQ2PCIFUNC_3                                     0x16e6c8
3189 #define QM_REG_PQ2PCIFUNC_4                                     0x16e6cc
3190 #define QM_REG_PQ2PCIFUNC_5                                     0x16e6d0
3191 #define QM_REG_PQ2PCIFUNC_6                                     0x16e6d4
3192 #define QM_REG_PQ2PCIFUNC_7                                     0x16e6d8
3193 /*
3194  * [WB 54] Pointer Table Memory for queues 63-0; The mapping is as follow
3195  * ptrtbl[53:30] read pointer; ptrtbl[29:6] write pointer; ptrtbl[5:4] read
3196  * bank0; ptrtbl[3:2] read bank 1; ptrtbl[1:0] write bank;
3197  */
3198 #define QM_REG_PTRTBL                                           0x168a00
3199 /*
3200  * [WB 54] Pointer Table Memory for queues 127-64; The mapping is as follow
3201  * ptrtbl[53:30] read pointer; ptrtbl[29:6] write pointer; ptrtbl[5:4] read
3202  * bank0; ptrtbl[3:2] read bank 1; ptrtbl[1:0] write bank;
3203  */
3204 #define QM_REG_PTRTBL_EXT_A                                     0x16e200
3205 /* [RW 2] Interrupt mask register #0 read/write */
3206 #define QM_REG_QM_INT_MASK                                      0x168444
3207 /* [R 2] Interrupt register #0 read */
3208 #define QM_REG_QM_INT_STS                                       0x168438
3209 /* [RW 12] Parity mask register #0 read/write */
3210 #define QM_REG_QM_PRTY_MASK                                     0x168454
3211 /* [R 12] Parity register #0 read */
3212 #define QM_REG_QM_PRTY_STS                                      0x168448
3213 /* [R 32] Current queues in pipeline: Queues from 32 to 63 */
3214 #define QM_REG_QSTATUS_HIGH                                     0x16802c
3215 /* [R 32] Current queues in pipeline: Queues from 96 to 127 */
3216 #define QM_REG_QSTATUS_HIGH_EXT_A                               0x16e408
3217 /* [R 32] Current queues in pipeline: Queues from 0 to 31 */
3218 #define QM_REG_QSTATUS_LOW                                      0x168028
3219 /* [R 32] Current queues in pipeline: Queues from 64 to 95 */
3220 #define QM_REG_QSTATUS_LOW_EXT_A                                0x16e404
3221 /* [R 24] The number of tasks queued for each queue; queues 63-0 */
3222 #define QM_REG_QTASKCTR_0                                       0x168308
3223 /* [R 24] The number of tasks queued for each queue; queues 127-64 */
3224 #define QM_REG_QTASKCTR_EXT_A_0                                 0x16e584
3225 /* [RW 4] Queue tied to VOQ */
3226 #define QM_REG_QVOQIDX_0                                        0x1680f4
3227 #define QM_REG_QVOQIDX_10                                       0x16811c
3228 #define QM_REG_QVOQIDX_100                                      0x16e49c
3229 #define QM_REG_QVOQIDX_101                                      0x16e4a0
3230 #define QM_REG_QVOQIDX_102                                      0x16e4a4
3231 #define QM_REG_QVOQIDX_103                                      0x16e4a8
3232 #define QM_REG_QVOQIDX_104                                      0x16e4ac
3233 #define QM_REG_QVOQIDX_105                                      0x16e4b0
3234 #define QM_REG_QVOQIDX_106                                      0x16e4b4
3235 #define QM_REG_QVOQIDX_107                                      0x16e4b8
3236 #define QM_REG_QVOQIDX_108                                      0x16e4bc
3237 #define QM_REG_QVOQIDX_109                                      0x16e4c0
3238 #define QM_REG_QVOQIDX_11                                       0x168120
3239 #define QM_REG_QVOQIDX_110                                      0x16e4c4
3240 #define QM_REG_QVOQIDX_111                                      0x16e4c8
3241 #define QM_REG_QVOQIDX_112                                      0x16e4cc
3242 #define QM_REG_QVOQIDX_113                                      0x16e4d0
3243 #define QM_REG_QVOQIDX_114                                      0x16e4d4
3244 #define QM_REG_QVOQIDX_115                                      0x16e4d8
3245 #define QM_REG_QVOQIDX_116                                      0x16e4dc
3246 #define QM_REG_QVOQIDX_117                                      0x16e4e0
3247 #define QM_REG_QVOQIDX_118                                      0x16e4e4
3248 #define QM_REG_QVOQIDX_119                                      0x16e4e8
3249 #define QM_REG_QVOQIDX_12                                       0x168124
3250 #define QM_REG_QVOQIDX_120                                      0x16e4ec
3251 #define QM_REG_QVOQIDX_121                                      0x16e4f0
3252 #define QM_REG_QVOQIDX_122                                      0x16e4f4
3253 #define QM_REG_QVOQIDX_123                                      0x16e4f8
3254 #define QM_REG_QVOQIDX_124                                      0x16e4fc
3255 #define QM_REG_QVOQIDX_125                                      0x16e500
3256 #define QM_REG_QVOQIDX_126                                      0x16e504
3257 #define QM_REG_QVOQIDX_127                                      0x16e508
3258 #define QM_REG_QVOQIDX_13                                       0x168128
3259 #define QM_REG_QVOQIDX_14                                       0x16812c
3260 #define QM_REG_QVOQIDX_15                                       0x168130
3261 #define QM_REG_QVOQIDX_16                                       0x168134
3262 #define QM_REG_QVOQIDX_17                                       0x168138
3263 #define QM_REG_QVOQIDX_21                                       0x168148
3264 #define QM_REG_QVOQIDX_22                                       0x16814c
3265 #define QM_REG_QVOQIDX_23                                       0x168150
3266 #define QM_REG_QVOQIDX_24                                       0x168154
3267 #define QM_REG_QVOQIDX_25                                       0x168158
3268 #define QM_REG_QVOQIDX_26                                       0x16815c
3269 #define QM_REG_QVOQIDX_27                                       0x168160
3270 #define QM_REG_QVOQIDX_28                                       0x168164
3271 #define QM_REG_QVOQIDX_29                                       0x168168
3272 #define QM_REG_QVOQIDX_30                                       0x16816c
3273 #define QM_REG_QVOQIDX_31                                       0x168170
3274 #define QM_REG_QVOQIDX_32                                       0x168174
3275 #define QM_REG_QVOQIDX_33                                       0x168178
3276 #define QM_REG_QVOQIDX_34                                       0x16817c
3277 #define QM_REG_QVOQIDX_35                                       0x168180
3278 #define QM_REG_QVOQIDX_36                                       0x168184
3279 #define QM_REG_QVOQIDX_37                                       0x168188
3280 #define QM_REG_QVOQIDX_38                                       0x16818c
3281 #define QM_REG_QVOQIDX_39                                       0x168190
3282 #define QM_REG_QVOQIDX_40                                       0x168194
3283 #define QM_REG_QVOQIDX_41                                       0x168198
3284 #define QM_REG_QVOQIDX_42                                       0x16819c
3285 #define QM_REG_QVOQIDX_43                                       0x1681a0
3286 #define QM_REG_QVOQIDX_44                                       0x1681a4
3287 #define QM_REG_QVOQIDX_45                                       0x1681a8
3288 #define QM_REG_QVOQIDX_46                                       0x1681ac
3289 #define QM_REG_QVOQIDX_47                                       0x1681b0
3290 #define QM_REG_QVOQIDX_48                                       0x1681b4
3291 #define QM_REG_QVOQIDX_49                                       0x1681b8
3292 #define QM_REG_QVOQIDX_5                                        0x168108
3293 #define QM_REG_QVOQIDX_50                                       0x1681bc
3294 #define QM_REG_QVOQIDX_51                                       0x1681c0
3295 #define QM_REG_QVOQIDX_52                                       0x1681c4
3296 #define QM_REG_QVOQIDX_53                                       0x1681c8
3297 #define QM_REG_QVOQIDX_54                                       0x1681cc
3298 #define QM_REG_QVOQIDX_55                                       0x1681d0
3299 #define QM_REG_QVOQIDX_56                                       0x1681d4
3300 #define QM_REG_QVOQIDX_57                                       0x1681d8
3301 #define QM_REG_QVOQIDX_58                                       0x1681dc
3302 #define QM_REG_QVOQIDX_59                                       0x1681e0
3303 #define QM_REG_QVOQIDX_6                                        0x16810c
3304 #define QM_REG_QVOQIDX_60                                       0x1681e4
3305 #define QM_REG_QVOQIDX_61                                       0x1681e8
3306 #define QM_REG_QVOQIDX_62                                       0x1681ec
3307 #define QM_REG_QVOQIDX_63                                       0x1681f0
3308 #define QM_REG_QVOQIDX_64                                       0x16e40c
3309 #define QM_REG_QVOQIDX_65                                       0x16e410
3310 #define QM_REG_QVOQIDX_69                                       0x16e420
3311 #define QM_REG_QVOQIDX_7                                        0x168110
3312 #define QM_REG_QVOQIDX_70                                       0x16e424
3313 #define QM_REG_QVOQIDX_71                                       0x16e428
3314 #define QM_REG_QVOQIDX_72                                       0x16e42c
3315 #define QM_REG_QVOQIDX_73                                       0x16e430
3316 #define QM_REG_QVOQIDX_74                                       0x16e434
3317 #define QM_REG_QVOQIDX_75                                       0x16e438
3318 #define QM_REG_QVOQIDX_76                                       0x16e43c
3319 #define QM_REG_QVOQIDX_77                                       0x16e440
3320 #define QM_REG_QVOQIDX_78                                       0x16e444
3321 #define QM_REG_QVOQIDX_79                                       0x16e448
3322 #define QM_REG_QVOQIDX_8                                        0x168114
3323 #define QM_REG_QVOQIDX_80                                       0x16e44c
3324 #define QM_REG_QVOQIDX_81                                       0x16e450
3325 #define QM_REG_QVOQIDX_85                                       0x16e460
3326 #define QM_REG_QVOQIDX_86                                       0x16e464
3327 #define QM_REG_QVOQIDX_87                                       0x16e468
3328 #define QM_REG_QVOQIDX_88                                       0x16e46c
3329 #define QM_REG_QVOQIDX_89                                       0x16e470
3330 #define QM_REG_QVOQIDX_9                                        0x168118
3331 #define QM_REG_QVOQIDX_90                                       0x16e474
3332 #define QM_REG_QVOQIDX_91                                       0x16e478
3333 #define QM_REG_QVOQIDX_92                                       0x16e47c
3334 #define QM_REG_QVOQIDX_93                                       0x16e480
3335 #define QM_REG_QVOQIDX_94                                       0x16e484
3336 #define QM_REG_QVOQIDX_95                                       0x16e488
3337 #define QM_REG_QVOQIDX_96                                       0x16e48c
3338 #define QM_REG_QVOQIDX_97                                       0x16e490
3339 #define QM_REG_QVOQIDX_98                                       0x16e494
3340 #define QM_REG_QVOQIDX_99                                       0x16e498
3341 /* [RW 1] Initialization bit command */
3342 #define QM_REG_SOFT_RESET                                       0x168428
3343 /* [RW 8] The credit cost per every task in the QM. A value per each VOQ */
3344 #define QM_REG_TASKCRDCOST_0                                    0x16809c
3345 #define QM_REG_TASKCRDCOST_1                                    0x1680a0
3346 #define QM_REG_TASKCRDCOST_2                                    0x1680a4
3347 #define QM_REG_TASKCRDCOST_4                                    0x1680ac
3348 #define QM_REG_TASKCRDCOST_5                                    0x1680b0
3349 /* [R 6] Keep the fill level of the fifo from write client 3 */
3350 #define QM_REG_TQM_WRC_FIFOLVL                                  0x168010
3351 /* [R 6] Keep the fill level of the fifo from write client 2 */
3352 #define QM_REG_UQM_WRC_FIFOLVL                                  0x168008
3353 /* [RC 32] Credit update error register */
3354 #define QM_REG_VOQCRDERRREG                                     0x168408
3355 /* [R 16] The credit value for each VOQ */
3356 #define QM_REG_VOQCREDIT_0                                      0x1682d0
3357 #define QM_REG_VOQCREDIT_1                                      0x1682d4
3358 #define QM_REG_VOQCREDIT_4                                      0x1682e0
3359 /* [RW 16] The credit value that if above the QM is considered almost full */
3360 #define QM_REG_VOQCREDITAFULLTHR                                0x168090
3361 /* [RW 16] The init and maximum credit for each VoQ */
3362 #define QM_REG_VOQINITCREDIT_0                                  0x168060
3363 #define QM_REG_VOQINITCREDIT_1                                  0x168064
3364 #define QM_REG_VOQINITCREDIT_2                                  0x168068
3365 #define QM_REG_VOQINITCREDIT_4                                  0x168070
3366 #define QM_REG_VOQINITCREDIT_5                                  0x168074
3367 /* [RW 1] The port of which VOQ belongs */
3368 #define QM_REG_VOQPORT_0                                        0x1682a0
3369 #define QM_REG_VOQPORT_1                                        0x1682a4
3370 #define QM_REG_VOQPORT_2                                        0x1682a8
3371 /* [RW 32] The physical queue number associated with each VOQ; queues 31-0 */
3372 #define QM_REG_VOQQMASK_0_LSB                                   0x168240
3373 /* [RW 32] The physical queue number associated with each VOQ; queues 95-64 */
3374 #define QM_REG_VOQQMASK_0_LSB_EXT_A                             0x16e524
3375 /* [RW 32] The physical queue number associated with each VOQ; queues 63-32 */
3376 #define QM_REG_VOQQMASK_0_MSB                                   0x168244
3377 /* [RW 32] The physical queue number associated with each VOQ; queues 127-96 */
3378 #define QM_REG_VOQQMASK_0_MSB_EXT_A                             0x16e528
3379 /* [RW 32] The physical queue number associated with each VOQ; queues 31-0 */
3380 #define QM_REG_VOQQMASK_10_LSB                                  0x168290
3381 /* [RW 32] The physical queue number associated with each VOQ; queues 95-64 */
3382 #define QM_REG_VOQQMASK_10_LSB_EXT_A                            0x16e574
3383 /* [RW 32] The physical queue number associated with each VOQ; queues 63-32 */
3384 #define QM_REG_VOQQMASK_10_MSB                                  0x168294
3385 /* [RW 32] The physical queue number associated with each VOQ; queues 127-96 */
3386 #define QM_REG_VOQQMASK_10_MSB_EXT_A                            0x16e578
3387 /* [RW 32] The physical queue number associated with each VOQ; queues 31-0 */
3388 #define QM_REG_VOQQMASK_11_LSB                                  0x168298
3389 /* [RW 32] The physical queue number associated with each VOQ; queues 95-64 */
3390 #define QM_REG_VOQQMASK_11_LSB_EXT_A                            0x16e57c
3391 /* [RW 32] The physical queue number associated with each VOQ; queues 63-32 */
3392 #define QM_REG_VOQQMASK_11_MSB                                  0x16829c
3393 /* [RW 32] The physical queue number associated with each VOQ; queues 127-96 */
3394 #define QM_REG_VOQQMASK_11_MSB_EXT_A                            0x16e580
3395 /* [RW 32] The physical queue number associated with each VOQ; queues 31-0 */
3396 #define QM_REG_VOQQMASK_1_LSB                                   0x168248
3397 /* [RW 32] The physical queue number associated with each VOQ; queues 95-64 */
3398 #define QM_REG_VOQQMASK_1_LSB_EXT_A                             0x16e52c
3399 /* [RW 32] The physical queue number associated with each VOQ; queues 63-32 */
3400 #define QM_REG_VOQQMASK_1_MSB                                   0x16824c
3401 /* [RW 32] The physical queue number associated with each VOQ; queues 127-96 */
3402 #define QM_REG_VOQQMASK_1_MSB_EXT_A                             0x16e530
3403 /* [RW 32] The physical queue number associated with each VOQ; queues 31-0 */
3404 #define QM_REG_VOQQMASK_2_LSB                                   0x168250
3405 /* [RW 32] The physical queue number associated with each VOQ; queues 95-64 */
3406 #define QM_REG_VOQQMASK_2_LSB_EXT_A                             0x16e534
3407 /* [RW 32] The physical queue number associated with each VOQ; queues 63-32 */
3408 #define QM_REG_VOQQMASK_2_MSB                                   0x168254
3409 /* [RW 32] The physical queue number associated with each VOQ; queues 127-96 */
3410 #define QM_REG_VOQQMASK_2_MSB_EXT_A                             0x16e538
3411 /* [RW 32] The physical queue number associated with each VOQ; queues 31-0 */
3412 #define QM_REG_VOQQMASK_3_LSB                                   0x168258
3413 /* [RW 32] The physical queue number associated with each VOQ; queues 95-64 */
3414 #define QM_REG_VOQQMASK_3_LSB_EXT_A                             0x16e53c
3415 /* [RW 32] The physical queue number associated with each VOQ; queues 127-96 */
3416 #define QM_REG_VOQQMASK_3_MSB_EXT_A                             0x16e540
3417 /* [RW 32] The physical queue number associated with each VOQ; queues 31-0 */
3418 #define QM_REG_VOQQMASK_4_LSB                                   0x168260
3419 /* [RW 32] The physical queue number associated with each VOQ; queues 95-64 */
3420 #define QM_REG_VOQQMASK_4_LSB_EXT_A                             0x16e544
3421 /* [RW 32] The physical queue number associated with each VOQ; queues 63-32 */
3422 #define QM_REG_VOQQMASK_4_MSB                                   0x168264
3423 /* [RW 32] The physical queue number associated with each VOQ; queues 127-96 */
3424 #define QM_REG_VOQQMASK_4_MSB_EXT_A                             0x16e548
3425 /* [RW 32] The physical queue number associated with each VOQ; queues 31-0 */
3426 #define QM_REG_VOQQMASK_5_LSB                                   0x168268
3427 /* [RW 32] The physical queue number associated with each VOQ; queues 95-64 */
3428 #define QM_REG_VOQQMASK_5_LSB_EXT_A                             0x16e54c
3429 /* [RW 32] The physical queue number associated with each VOQ; queues 63-32 */
3430 #define QM_REG_VOQQMASK_5_MSB                                   0x16826c
3431 /* [RW 32] The physical queue number associated with each VOQ; queues 127-96 */
3432 #define QM_REG_VOQQMASK_5_MSB_EXT_A                             0x16e550
3433 /* [RW 32] The physical queue number associated with each VOQ; queues 31-0 */
3434 #define QM_REG_VOQQMASK_6_LSB                                   0x168270
3435 /* [RW 32] The physical queue number associated with each VOQ; queues 95-64 */
3436 #define QM_REG_VOQQMASK_6_LSB_EXT_A                             0x16e554
3437 /* [RW 32] The physical queue number associated with each VOQ; queues 63-32 */
3438 #define QM_REG_VOQQMASK_6_MSB                                   0x168274
3439 /* [RW 32] The physical queue number associated with each VOQ; queues 127-96 */
3440 #define QM_REG_VOQQMASK_6_MSB_EXT_A                             0x16e558
3441 /* [RW 32] The physical queue number associated with each VOQ; queues 31-0 */
3442 #define QM_REG_VOQQMASK_7_LSB                                   0x168278
3443 /* [RW 32] The physical queue number associated with each VOQ; queues 95-64 */
3444 #define QM_REG_VOQQMASK_7_LSB_EXT_A                             0x16e55c
3445 /* [RW 32] The physical queue number associated with each VOQ; queues 63-32 */
3446 #define QM_REG_VOQQMASK_7_MSB                                   0x16827c
3447 /* [RW 32] The physical queue number associated with each VOQ; queues 127-96 */
3448 #define QM_REG_VOQQMASK_7_MSB_EXT_A                             0x16e560
3449 /* [RW 32] The physical queue number associated with each VOQ; queues 31-0 */
3450 #define QM_REG_VOQQMASK_8_LSB                                   0x168280
3451 /* [RW 32] The physical queue number associated with each VOQ; queues 95-64 */
3452 #define QM_REG_VOQQMASK_8_LSB_EXT_A                             0x16e564
3453 /* [RW 32] The physical queue number associated with each VOQ; queues 63-32 */
3454 #define QM_REG_VOQQMASK_8_MSB                                   0x168284
3455 /* [RW 32] The physical queue number associated with each VOQ; queues 127-96 */
3456 #define QM_REG_VOQQMASK_8_MSB_EXT_A                             0x16e568
3457 /* [RW 32] The physical queue number associated with each VOQ; queues 31-0 */
3458 #define QM_REG_VOQQMASK_9_LSB                                   0x168288
3459 /* [RW 32] The physical queue number associated with each VOQ; queues 95-64 */
3460 #define QM_REG_VOQQMASK_9_LSB_EXT_A                             0x16e56c
3461 /* [RW 32] The physical queue number associated with each VOQ; queues 127-96 */
3462 #define QM_REG_VOQQMASK_9_MSB_EXT_A                             0x16e570
3463 /* [RW 32] Wrr weights */
3464 #define QM_REG_WRRWEIGHTS_0                                     0x16880c
3465 #define QM_REG_WRRWEIGHTS_1                                     0x168810
3466 #define QM_REG_WRRWEIGHTS_10                                    0x168814
3467 #define QM_REG_WRRWEIGHTS_11                                    0x168818
3468 #define QM_REG_WRRWEIGHTS_12                                    0x16881c
3469 #define QM_REG_WRRWEIGHTS_13                                    0x168820
3470 #define QM_REG_WRRWEIGHTS_14                                    0x168824
3471 #define QM_REG_WRRWEIGHTS_15                                    0x168828
3472 #define QM_REG_WRRWEIGHTS_16                                    0x16e000
3473 #define QM_REG_WRRWEIGHTS_17                                    0x16e004
3474 #define QM_REG_WRRWEIGHTS_18                                    0x16e008
3475 #define QM_REG_WRRWEIGHTS_19                                    0x16e00c
3476 #define QM_REG_WRRWEIGHTS_2                                     0x16882c
3477 #define QM_REG_WRRWEIGHTS_20                                    0x16e010
3478 #define QM_REG_WRRWEIGHTS_21                                    0x16e014
3479 #define QM_REG_WRRWEIGHTS_22                                    0x16e018
3480 #define QM_REG_WRRWEIGHTS_23                                    0x16e01c
3481 #define QM_REG_WRRWEIGHTS_24                                    0x16e020
3482 #define QM_REG_WRRWEIGHTS_25                                    0x16e024
3483 #define QM_REG_WRRWEIGHTS_26                                    0x16e028
3484 #define QM_REG_WRRWEIGHTS_27                                    0x16e02c
3485 #define QM_REG_WRRWEIGHTS_28                                    0x16e030
3486 #define QM_REG_WRRWEIGHTS_29                                    0x16e034
3487 #define QM_REG_WRRWEIGHTS_3                                     0x168830
3488 #define QM_REG_WRRWEIGHTS_30                                    0x16e038
3489 #define QM_REG_WRRWEIGHTS_31                                    0x16e03c
3490 #define QM_REG_WRRWEIGHTS_4                                     0x168834
3491 #define QM_REG_WRRWEIGHTS_5                                     0x168838
3492 #define QM_REG_WRRWEIGHTS_6                                     0x16883c
3493 #define QM_REG_WRRWEIGHTS_7                                     0x168840
3494 #define QM_REG_WRRWEIGHTS_8                                     0x168844
3495 #define QM_REG_WRRWEIGHTS_9                                     0x168848
3496 /* [R 6] Keep the fill level of the fifo from write client 1 */
3497 #define QM_REG_XQM_WRC_FIFOLVL                                  0x168000
3498 #define SRC_REG_COUNTFREE0                                      0x40500
3499 /*
3500  * [RW 1] If clr the searcher is compatible to E1 A0 - support only tw
3501  * ports. If set the searcher support 8 functions.
3502  */
3503 #define SRC_REG_E1HMF_ENABLE                                    0x404cc
3504 #define SRC_REG_FIRSTFREE0                                      0x40510
3505 #define SRC_REG_KEYRSS0_0                                       0x40408
3506 #define SRC_REG_KEYRSS0_7                                       0x40424
3507 #define SRC_REG_KEYRSS1_9                                       0x40454
3508 #define SRC_REG_KEYSEARCH_0                                     0x40458
3509 #define SRC_REG_KEYSEARCH_1                                     0x4045c
3510 #define SRC_REG_KEYSEARCH_2                                     0x40460
3511 #define SRC_REG_KEYSEARCH_3                                     0x40464
3512 #define SRC_REG_KEYSEARCH_4                                     0x40468
3513 #define SRC_REG_KEYSEARCH_5                                     0x4046c
3514 #define SRC_REG_KEYSEARCH_6                                     0x40470
3515 #define SRC_REG_KEYSEARCH_7                                     0x40474
3516 #define SRC_REG_KEYSEARCH_8                                     0x40478
3517 #define SRC_REG_KEYSEARCH_9                                     0x4047c
3518 #define SRC_REG_LASTFREE0                                       0x40530
3519 #define SRC_REG_NUMBER_HASH_BITS0                               0x40400
3520 /* [RW 1] Reset internal state machines. */
3521 #define SRC_REG_SOFT_RST                                        0x4049c
3522 /* [R 3] Interrupt register #0 read */
3523 #define SRC_REG_SRC_INT_STS                                     0x404ac
3524 /* [RW 3] Parity mask register #0 read/write */
3525 #define SRC_REG_SRC_PRTY_MASK                                   0x404c8
3526 /* [R 3] Parity register #0 read */
3527 #define SRC_REG_SRC_PRTY_STS                                    0x404bc
3528 /* [R 4] Used to read the value of the XX protection CAM occupancy counter. */
3529 #define TCM_REG_CAM_OCCUP                                       0x5017c
3530 /*
3531  * [RW 1] CDU AG read Interface enable. If 0 - the request input i
3532  * disregarded; valid output is deasserted; all other signals are treated as
3533  * usual; if 1 - normal activity.
3534  */
3535 #define TCM_REG_CDU_AG_RD_IFEN                                  0x50034
3536 /*
3537  * [RW 1] CDU AG write Interface enable. If 0 - the request and valid inpu
3538  * are disregarded; all other signals are treated as usual; if 1 - normal
3539  * activity.
3540  */
3541 #define TCM_REG_CDU_AG_WR_IFEN                                  0x50030
3542 /*
3543  * [RW 1] CDU STORM read Interface enable. If 0 - the request input i
3544  * disregarded; valid output is deasserted; all other signals are treated as
3545  * usual; if 1 - normal activity.
3546  */
3547 #define TCM_REG_CDU_SM_RD_IFEN                                  0x5003c
3548 /*
3549  * [RW 1] CDU STORM write Interface enable. If 0 - the request and vali
3550  * input is disregarded; all other signals are treated as usual; if 1 -
3551  * normal activity.
3552  */
3553 #define TCM_REG_CDU_SM_WR_IFEN                                  0x50038
3554 /*
3555  * [RW 4] CFC output initial credit. Max credit available - 15.Write write
3556  * the initial credit value; read returns the current value of the credit
3557  * counter. Must be initialized to 1 at start-up.
3558  */
3559 #define TCM_REG_CFC_INIT_CRD                                    0x50204
3560 /*
3561  * [RW 3] The weight of the CP input in the WRR mechanism. 0 stands fo
3562  * weight 8 (the most prioritised); 1 stands for weight 1(least
3563  * prioritised); 2 stands for weight 2; tc.
3564  */
3565 #define TCM_REG_CP_WEIGHT                                       0x500c0
3566 /*
3567  * [RW 1] Input csem Interface enable. If 0 - the valid input i
3568  * disregarded; acknowledge output is deasserted; all other signals are
3569  * treated as usual; if 1 - normal activity.
3570  */
3571 #define TCM_REG_CSEM_IFEN                                       0x5002c
3572 /*
3573  * [RC 1] Message length mismatch (relative to last indication) at the In#
3574  * interface.
3575  */
3576 #define TCM_REG_CSEM_LENGTH_MIS                                 0x50174
3577 /*
3578  * [RW 3] The weight of the input csem in the WRR mechanism. 0 stands fo
3579  * weight 8 (the most prioritised); 1 stands for weight 1(least
3580  * prioritised); 2 stands for weight 2; tc.
3581  */
3582 #define TCM_REG_CSEM_WEIGHT                                     0x500bc
3583 /* [RW 8] The Event ID in case of ErrorFlg is set in the input message. */
3584 #define TCM_REG_ERR_EVNT_ID                                     0x500a0
3585 /* [RW 28] The CM erroneous header for QM and Timers formatting. */
3586 #define TCM_REG_ERR_TCM_HDR                                     0x5009c
3587 /* [RW 8] The Event ID for Timers expiration. */
3588 #define TCM_REG_EXPR_EVNT_ID                                    0x500a4
3589 /*
3590  * [RW 8] FIC0 output initial credit. Max credit available - 255.Writ
3591  * writes the initial credit value; read returns the current value of the
3592  * credit counter. Must be initialized to 64 at start-up.
3593  */
3594 #define TCM_REG_FIC0_INIT_CRD                                   0x5020c
3595 /*
3596  * [RW 8] FIC1 output initial credit. Max credit available - 255.Writ
3597  * writes the initial credit value; read returns the current value of the
3598  * credit counter. Must be initialized to 64 at start-up.
3599  */
3600 #define TCM_REG_FIC1_INIT_CRD                                   0x50210
3601 /*
3602  * [RW 1] Arbitration between Input Arbiter groups: 0 - fair Round-Robin;
3603  * - strict priority defined by ~tcm_registers_gr_ag_pr.gr_ag_pr;
3604  * ~tcm_registers_gr_ld0_pr.gr_ld0_pr and
3605  * ~tcm_registers_gr_ld1_pr.gr_ld1_pr.
3606  */
3607 #define TCM_REG_GR_ARB_TYPE                                     0x50114
3608 /*
3609  * [RW 2] Load (FIC0) channel group priority. The lowest priority is 0; th
3610  * highest priority is 3. It is supposed that the Store channel is the
3611  * compliment of the other 3 groups.
3612  */
3613 #define TCM_REG_GR_LD0_PR                                       0x5011c
3614 /*
3615  * [RW 2] Load (FIC1) channel group priority. The lowest priority is 0; th
3616  * highest priority is 3. It is supposed that the Store channel is the
3617  * compliment of the other 3 groups.
3618  */
3619 #define TCM_REG_GR_LD1_PR                                       0x50120
3620 /*
3621  * [RW 4] The number of double REG-pairs; loaded from the STORM context an
3622  * sent to STORM; for a specific connection type. The double REG-pairs are
3623  * used to align to STORM context row size of 128 bits. The offset of these
3624  * data in the STORM context is always 0. Index _i stands for the connection
3625  * type (one of 16).
3626  */
3627 #define TCM_REG_N_SM_CTX_LD_0                                   0x50050
3628 #define TCM_REG_N_SM_CTX_LD_1                                   0x50054
3629 #define TCM_REG_N_SM_CTX_LD_2                                   0x50058
3630 #define TCM_REG_N_SM_CTX_LD_3                                   0x5005c
3631 #define TCM_REG_N_SM_CTX_LD_4                                   0x50060
3632 #define TCM_REG_N_SM_CTX_LD_5                                   0x50064
3633 /*
3634  * [RW 1] Input pbf Interface enable. If 0 - the valid input is disregarded
3635  * acknowledge output is deasserted; all other signals are treated as usual;
3636  * if 1 - normal activity.
3637  */
3638 #define TCM_REG_PBF_IFEN                                        0x50024
3639 /*
3640  * [RC 1] Message length mismatch (relative to last indication) at the In#
3641  * interface.
3642  */
3643 #define TCM_REG_PBF_LENGTH_MIS                                  0x5016c
3644 /*
3645  * [RW 3] The weight of the input pbf in the WRR mechanism. 0 stands fo
3646  * weight 8 (the most prioritised); 1 stands for weight 1(least
3647  * prioritised); 2 stands for weight 2; tc.
3648  */
3649 #define TCM_REG_PBF_WEIGHT                                      0x500b4
3650 #define TCM_REG_PHYS_QNUM0_0                                    0x500e0
3651 #define TCM_REG_PHYS_QNUM0_1                                    0x500e4
3652 #define TCM_REG_PHYS_QNUM1_0                                    0x500e8
3653 #define TCM_REG_PHYS_QNUM1_1                                    0x500ec
3654 #define TCM_REG_PHYS_QNUM2_0                                    0x500f0
3655 #define TCM_REG_PHYS_QNUM2_1                                    0x500f4
3656 #define TCM_REG_PHYS_QNUM3_0                                    0x500f8
3657 #define TCM_REG_PHYS_QNUM3_1                                    0x500fc
3658 /*
3659  * [RW 1] Input prs Interface enable. If 0 - the valid input is disregarded
3660  * acknowledge output is deasserted; all other signals are treated as usual;
3661  * if 1 - normal activity.
3662  */
3663 #define TCM_REG_PRS_IFEN                                        0x50020
3664 /*
3665  * [RC 1] Message length mismatch (relative to last indication) at the In#
3666  * interface.
3667  */
3668 #define TCM_REG_PRS_LENGTH_MIS                                  0x50168
3669 /*
3670  * [RW 3] The weight of the input prs in the WRR mechanism. 0 stands fo
3671  * weight 8 (the most prioritised); 1 stands for weight 1(least
3672  * prioritised); 2 stands for weight 2; tc.
3673  */
3674 #define TCM_REG_PRS_WEIGHT                                      0x500b0
3675 /* [RW 8] The Event ID for Timers formatting in case of stop done. */
3676 #define TCM_REG_STOP_EVNT_ID                                    0x500a8
3677 /*
3678  * [RC 1] Message length mismatch (relative to last indication) at the STOR
3679  * interface.
3680  */
3681 #define TCM_REG_STORM_LENGTH_MIS                                0x50160
3682 /*
3683  * [RW 1] STORM - CM Interface enable. If 0 - the valid input i
3684  * disregarded; acknowledge output is deasserted; all other signals are
3685  * treated as usual; if 1 - normal activity.
3686  */
3687 #define TCM_REG_STORM_TCM_IFEN                                  0x50010
3688 /*
3689  * [RW 3] The weight of the STORM input in the WRR mechanism. 0 stands fo
3690  * weight 8 (the most prioritised); 1 stands for weight 1(least
3691  * prioritised); 2 stands for weight 2; tc.
3692  */
3693 #define TCM_REG_STORM_WEIGHT                                    0x500ac
3694 /*
3695  * [RW 1] CM - CFC Interface enable. If 0 - the valid input is disregarded
3696  * acknowledge output is deasserted; all other signals are treated as usual;
3697  * if 1 - normal activity.
3698  */
3699 #define TCM_REG_TCM_CFC_IFEN                                    0x50040
3700 /* [RW 11] Interrupt mask register #0 read/write */
3701 #define TCM_REG_TCM_INT_MASK                                    0x501dc
3702 /* [R 11] Interrupt register #0 read */
3703 #define TCM_REG_TCM_INT_STS                                     0x501d0
3704 /* [R 27] Parity register #0 read */
3705 #define TCM_REG_TCM_PRTY_STS                                    0x501e0
3706 /*
3707  * [RW 3] The size of AG context region 0 in REG-pairs. Designates the M
3708  * REG-pair number (e.g. if region 0 is 6 REG-pairs; the value should be 5).
3709  * Is used to determine the number of the AG context REG-pairs written back;
3710  * when the input message Reg1WbFlg isn't set.
3711  */
3712 #define TCM_REG_TCM_REG0_SZ                                     0x500d8
3713 /*
3714  * [RW 1] CM - STORM 0 Interface enable. If 0 - the acknowledge input i
3715  * disregarded; valid is deasserted; all other signals are treated as usual;
3716  * if 1 - normal activity.
3717  */
3718 #define TCM_REG_TCM_STORM0_IFEN                                 0x50004
3719 /*
3720  * [RW 1] CM - STORM 1 Interface enable. If 0 - the acknowledge input i
3721  * disregarded; valid is deasserted; all other signals are treated as usual;
3722  * if 1 - normal activity.
3723  */
3724 #define TCM_REG_TCM_STORM1_IFEN                                 0x50008
3725 /*
3726  * [RW 1] CM - QM Interface enable. If 0 - the acknowledge input i
3727  * disregarded; valid is deasserted; all other signals are treated as usual;
3728  * if 1 - normal activity.
3729  */
3730 #define TCM_REG_TCM_TQM_IFEN                                    0x5000c
3731 /* [RW 1] If set the Q index; received from the QM is inserted to event ID. */
3732 #define TCM_REG_TCM_TQM_USE_Q                                   0x500d4
3733 /* [RW 28] The CM header for Timers expiration command. */
3734 #define TCM_REG_TM_TCM_HDR                                      0x50098
3735 /*
3736  * [RW 1] Timers - CM Interface enable. If 0 - the valid input i
3737  * disregarded; acknowledge output is deasserted; all other signals are
3738  * treated as usual; if 1 - normal activity.
3739  */
3740 #define TCM_REG_TM_TCM_IFEN                                     0x5001c
3741 /*
3742  * [RW 3] The weight of the Timers input in the WRR mechanism. 0 stands fo
3743  * weight 8 (the most prioritised); 1 stands for weight 1(least
3744  * prioritised); 2 stands for weight 2; tc.
3745  */
3746 #define TCM_REG_TM_WEIGHT                                       0x500d0
3747 /*
3748  * [RW 6] QM output initial credit. Max credit available - 32.Write write
3749  * the initial credit value; read returns the current value of the credit
3750  * counter. Must be initialized to 32 at start-up.
3751  */
3752 #define TCM_REG_TQM_INIT_CRD                                    0x5021c
3753 /*
3754  * [RW 3] The weight of the QM (primary) input in the WRR mechanism.
3755  * stands for weight 8 (the most prioritised); 1 stands for weight 1(least
3756  * prioritised); 2 stands for weight 2; tc.
3757  */
3758 #define TCM_REG_TQM_P_WEIGHT                                    0x500c8
3759 /*
3760  * [RW 3] The weight of the QM (secondary) input in the WRR mechanism.
3761  * stands for weight 8 (the most prioritised); 1 stands for weight 1(least
3762  * prioritised); 2 stands for weight 2; tc.
3763  */
3764 #define TCM_REG_TQM_S_WEIGHT                                    0x500cc
3765 /* [RW 28] The CM header value for QM request (primary). */
3766 #define TCM_REG_TQM_TCM_HDR_P                                   0x50090
3767 /* [RW 28] The CM header value for QM request (secondary). */
3768 #define TCM_REG_TQM_TCM_HDR_S                                   0x50094
3769 /*
3770  * [RW 1] QM - CM Interface enable. If 0 - the valid input is disregarded
3771  * acknowledge output is deasserted; all other signals are treated as usual;
3772  * if 1 - normal activity.
3773  */
3774 #define TCM_REG_TQM_TCM_IFEN                                    0x50014
3775 /*
3776  * [RW 1] Input SDM Interface enable. If 0 - the valid input is disregarded
3777  * acknowledge output is deasserted; all other signals are treated as usual;
3778  * if 1 - normal activity.
3779  */
3780 #define TCM_REG_TSDM_IFEN                                       0x50018
3781 /*
3782  * [RC 1] Message length mismatch (relative to last indication) at the SD
3783  * interface.
3784  */
3785 #define TCM_REG_TSDM_LENGTH_MIS                                 0x50164
3786 /*
3787  * [RW 3] The weight of the SDM input in the WRR mechanism. 0 stands fo
3788  * weight 8 (the most prioritised); 1 stands for weight 1(least
3789  * prioritised); 2 stands for weight 2; tc.
3790  */
3791 #define TCM_REG_TSDM_WEIGHT                                     0x500c4
3792 /*
3793  * [RW 1] Input usem Interface enable. If 0 - the valid input i
3794  * disregarded; acknowledge output is deasserted; all other signals are
3795  * treated as usual; if 1 - normal activity.
3796  */
3797 #define TCM_REG_USEM_IFEN                                       0x50028
3798 /*
3799  * [RC 1] Message length mismatch (relative to last indication) at the In#
3800  * interface.
3801  */
3802 #define TCM_REG_USEM_LENGTH_MIS                                 0x50170
3803 /*
3804  * [RW 3] The weight of the input usem in the WRR mechanism. 0 stands fo
3805  * weight 8 (the most prioritised); 1 stands for weight 1(least
3806  * prioritised); 2 stands for weight 2; tc.
3807  */
3808 #define TCM_REG_USEM_WEIGHT                                     0x500b8
3809 /*
3810  * [RW 21] Indirect access to the descriptor table of the XX protectio
3811  * mechanism. The fields are: [5:0] - length of the message; 15:6] - message
3812  * pointer; 20:16] - next pointer.
3813  */
3814 #define TCM_REG_XX_DESCR_TABLE                                  0x50280
3815 #define TCM_REG_XX_DESCR_TABLE_SIZE                              32
3816 /* [R 6] Use to read the value of XX protection Free counter. */
3817 #define TCM_REG_XX_FREE                                         0x50178
3818 /*
3819  * [RW 6] Initial value for the credit counter; responsible for fulfillin
3820  * of the Input Stage XX protection buffer by the XX protection pending
3821  * messages. Max credit available - 127.Write writes the initial credit
3822  * value; read returns the current value of the credit counter. Must be
3823  * initialized to 19 at start-up.
3824  */
3825 #define TCM_REG_XX_INIT_CRD                                     0x50220
3826 /*
3827  * [RW 6] Maximum link list size (messages locked) per connection in the X
3828  * protection.
3829  */
3830 #define TCM_REG_XX_MAX_LL_SZ                                    0x50044
3831 /*
3832  * [RW 6] The maximum number of pending messages; which may be stored in X
3833  * protection. ~tcm_registers_xx_free.xx_free is read on read.
3834  */
3835 #define TCM_REG_XX_MSG_NUM                                      0x50224
3836 /* [RW 8] The Event ID; sent to the STORM in case of XX overflow. */
3837 #define TCM_REG_XX_OVFL_EVNT_ID                                 0x50048
3838 /*
3839  * [RW 16] Indirect access to the XX table of the XX protection mechanism
3840  * The fields are:[4:0] - tail pointer; [10:5] - Link List size; 15:11] -
3841  * header pointer.
3842  */
3843 #define TCM_REG_XX_TABLE                                        0x50240
3844 /* [RW 4] Load value for for cfc ac credit cnt. */
3845 #define TM_REG_CFC_AC_CRDCNT_VAL                                0x164208
3846 /* [RW 4] Load value for cfc cld credit cnt. */
3847 #define TM_REG_CFC_CLD_CRDCNT_VAL                               0x164210
3848 /* [RW 8] Client0 context region. */
3849 #define TM_REG_CL0_CONT_REGION                                  0x164030
3850 /* [RW 8] Client1 context region. */
3851 #define TM_REG_CL1_CONT_REGION                                  0x164034
3852 /* [RW 8] Client2 context region. */
3853 #define TM_REG_CL2_CONT_REGION                                  0x164038
3854 /* [RW 2] Client in High priority client number. */
3855 #define TM_REG_CLIN_PRIOR0_CLIENT                               0x164024
3856 /* [RW 4] Load value for clout0 cred cnt. */
3857 #define TM_REG_CLOUT_CRDCNT0_VAL                                0x164220
3858 /* [RW 4] Load value for clout1 cred cnt. */
3859 #define TM_REG_CLOUT_CRDCNT1_VAL                                0x164228
3860 /* [RW 4] Load value for clout2 cred cnt. */
3861 #define TM_REG_CLOUT_CRDCNT2_VAL                                0x164230
3862 /* [RW 1] Enable client0 input. */
3863 #define TM_REG_EN_CL0_INPUT                                     0x164008
3864 /* [RW 1] Enable client1 input. */
3865 #define TM_REG_EN_CL1_INPUT                                     0x16400c
3866 /* [RW 1] Enable client2 input. */
3867 #define TM_REG_EN_CL2_INPUT                                     0x164010
3868 #define TM_REG_EN_LINEAR0_TIMER                                 0x164014
3869 /* [RW 1] Enable real time counter. */
3870 #define TM_REG_EN_REAL_TIME_CNT                                 0x1640d8
3871 /* [RW 1] Enable for Timers state machines. */
3872 #define TM_REG_EN_TIMERS                                        0x164000
3873 /*
3874  * [RW 4] Load value for expiration credit cnt. CFC max number o
3875  * outstanding load requests for timers (expiration) context loading.
3876  */
3877 #define TM_REG_EXP_CRDCNT_VAL                                   0x164238
3878 /* [RW 32] Linear0 logic address. */
3879 #define TM_REG_LIN0_LOGIC_ADDR                                  0x164240
3880 /* [RW 18] Linear0 Max active cid (in banks of 32 entries). */
3881 #define TM_REG_LIN0_MAX_ACTIVE_CID                              0x164048
3882 /* [WB 64] Linear0 phy address. */
3883 #define TM_REG_LIN0_PHY_ADDR                                    0x164270
3884 /* [RW 1] Linear0 physical address valid. */
3885 #define TM_REG_LIN0_PHY_ADDR_VALID                              0x164248
3886 #define TM_REG_LIN0_SCAN_ON                                     0x1640d0
3887 /* [RW 24] Linear0 array scan timeout. */
3888 #define TM_REG_LIN0_SCAN_TIME                                   0x16403c
3889 /* [RW 32] Linear1 logic address. */
3890 #define TM_REG_LIN1_LOGIC_ADDR                                  0x164250
3891 /* [WB 64] Linear1 phy address. */
3892 #define TM_REG_LIN1_PHY_ADDR                                    0x164280
3893 /* [RW 1] Linear1 physical address valid. */
3894 #define TM_REG_LIN1_PHY_ADDR_VALID                              0x164258
3895 /* [RW 6] Linear timer set_clear fifo threshold. */
3896 #define TM_REG_LIN_SETCLR_FIFO_ALFULL_THR                       0x164070
3897 /* [RW 2] Load value for pci arbiter credit cnt. */
3898 #define TM_REG_PCIARB_CRDCNT_VAL                                0x164260
3899 /* [RW 20] The amount of hardware cycles for each timer tick. */
3900 #define TM_REG_TIMER_TICK_SIZE                                  0x16401c
3901 /* [RW 8] Timers Context region. */
3902 #define TM_REG_TM_CONTEXT_REGION                                0x164044
3903 /* [RW 1] Interrupt mask register #0 read/write */
3904 #define TM_REG_TM_INT_MASK                                      0x1640fc
3905 /* [R 1] Interrupt register #0 read */
3906 #define TM_REG_TM_INT_STS                                       0x1640f0
3907 /* [RW 8] The event id for aggregated interrupt 0 */
3908 #define TSDM_REG_AGG_INT_EVENT_0                                0x42038
3909 #define TSDM_REG_AGG_INT_EVENT_1                                0x4203c
3910 #define TSDM_REG_AGG_INT_EVENT_2                                0x42040
3911 #define TSDM_REG_AGG_INT_EVENT_3                                0x42044
3912 #define TSDM_REG_AGG_INT_EVENT_4                                0x42048
3913 /* [RW 1] The T bit for aggregated interrupt 0 */
3914 #define TSDM_REG_AGG_INT_T_0                                    0x420b8
3915 #define TSDM_REG_AGG_INT_T_1                                    0x420bc
3916 /* [RW 13] The start address in the internal RAM for the cfc_rsp lcid */
3917 #define TSDM_REG_CFC_RSP_START_ADDR                             0x42008
3918 /* [RW 16] The maximum value of the competion counter #0 */
3919 #define TSDM_REG_CMP_COUNTER_MAX0                               0x4201c
3920 /* [RW 16] The maximum value of the competion counter #1 */
3921 #define TSDM_REG_CMP_COUNTER_MAX1                               0x42020
3922 /* [RW 16] The maximum value of the competion counter #2 */
3923 #define TSDM_REG_CMP_COUNTER_MAX2                               0x42024
3924 /* [RW 16] The maximum value of the competion counter #3 */
3925 #define TSDM_REG_CMP_COUNTER_MAX3                               0x42028
3926 /*
3927  * [RW 13] The start address in the internal RAM for the completio
3928  * counters.
3929  */
3930 #define TSDM_REG_CMP_COUNTER_START_ADDR                         0x4200c
3931 #define TSDM_REG_ENABLE_IN1                                     0x42238
3932 #define TSDM_REG_ENABLE_IN2                                     0x4223c
3933 #define TSDM_REG_ENABLE_OUT1                                    0x42240
3934 #define TSDM_REG_ENABLE_OUT2                                    0x42244
3935 /*
3936  * [RW 4] The initial number of messages that can be sent to the pxp contro
3937  * interface without receiving any ACK.
3938  */
3939 #define TSDM_REG_INIT_CREDIT_PXP_CTRL                           0x424bc
3940 /* [ST 32] The number of ACK after placement messages received */
3941 #define TSDM_REG_NUM_OF_ACK_AFTER_PLACE                         0x4227c
3942 /* [ST 32] The number of packet end messages received from the parser */
3943 #define TSDM_REG_NUM_OF_PKT_END_MSG                             0x42274
3944 /* [ST 32] The number of requests received from the pxp async if */
3945 #define TSDM_REG_NUM_OF_PXP_ASYNC_REQ                           0x42278
3946 /* [ST 32] The number of commands received in queue 0 */
3947 #define TSDM_REG_NUM_OF_Q0_CMD                                  0x42248
3948 /* [ST 32] The number of commands received in queue 10 */
3949 #define TSDM_REG_NUM_OF_Q10_CMD                                 0x4226c
3950 /* [ST 32] The number of commands received in queue 11 */
3951 #define TSDM_REG_NUM_OF_Q11_CMD                                 0x42270
3952 /* [ST 32] The number of commands received in queue 1 */
3953 #define TSDM_REG_NUM_OF_Q1_CMD                                  0x4224c
3954 /* [ST 32] The number of commands received in queue 3 */
3955 #define TSDM_REG_NUM_OF_Q3_CMD                                  0x42250
3956 /* [ST 32] The number of commands received in queue 4 */
3957 #define TSDM_REG_NUM_OF_Q4_CMD                                  0x42254
3958 /* [ST 32] The number of commands received in queue 5 */
3959 #define TSDM_REG_NUM_OF_Q5_CMD                                  0x42258
3960 /* [ST 32] The number of commands received in queue 6 */
3961 #define TSDM_REG_NUM_OF_Q6_CMD                                  0x4225c
3962 /* [ST 32] The number of commands received in queue 7 */
3963 #define TSDM_REG_NUM_OF_Q7_CMD                                  0x42260
3964 /* [ST 32] The number of commands received in queue 8 */
3965 #define TSDM_REG_NUM_OF_Q8_CMD                                  0x42264
3966 /* [ST 32] The number of commands received in queue 9 */
3967 #define TSDM_REG_NUM_OF_Q9_CMD                                  0x42268
3968 /* [RW 13] The start address in the internal RAM for the packet end message */
3969 #define TSDM_REG_PCK_END_MSG_START_ADDR                         0x42014
3970 /* [RW 13] The start address in the internal RAM for queue counters */
3971 #define TSDM_REG_Q_COUNTER_START_ADDR                           0x42010
3972 /* [R 1] pxp_ctrl rd_data fifo empty in sdm_dma_rsp block */
3973 #define TSDM_REG_RSP_PXP_CTRL_RDATA_EMPTY                       0x42548
3974 /* [R 1] parser fifo empty in sdm_sync block */
3975 #define TSDM_REG_SYNC_PARSER_EMPTY                              0x42550
3976 /* [R 1] parser serial fifo empty in sdm_sync block */
3977 #define TSDM_REG_SYNC_SYNC_EMPTY                                0x42558
3978 /*
3979  * [RW 32] Tick for timer counter. Applicable only whe
3980  * ~tsdm_registers_timer_tick_enable.timer_tick_enable =1
3981  */
3982 #define TSDM_REG_TIMER_TICK                                     0x42000
3983 /* [RW 32] Interrupt mask register #0 read/write */
3984 #define TSDM_REG_TSDM_INT_MASK_0                                0x4229c
3985 #define TSDM_REG_TSDM_INT_MASK_1                                0x422ac
3986 /* [R 32] Interrupt register #0 read */
3987 #define TSDM_REG_TSDM_INT_STS_0                                 0x42290
3988 #define TSDM_REG_TSDM_INT_STS_1                                 0x422a0
3989 /* [RW 11] Parity mask register #0 read/write */
3990 #define TSDM_REG_TSDM_PRTY_MASK                                 0x422bc
3991 /* [R 11] Parity register #0 read */
3992 #define TSDM_REG_TSDM_PRTY_STS                                  0x422b0
3993 /* [RW 5] The number of time_slots in the arbitration cycle */
3994 #define TSEM_REG_ARB_CYCLE_SIZE                                 0x180034
3995 /*
3996  * [RW 3] The source that is associated with arbitration element 0. Sourc
3997  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
3998  * sleeping thread with priority 1; 4- sleeping thread with priority 2
3999  */
4000 #define TSEM_REG_ARB_ELEMENT0                                   0x180020
4001 /*
4002  * [RW 3] The source that is associated with arbitration element 1. Sourc
4003  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
4004  * sleeping thread with priority 1; 4- sleeping thread with priority 2.
4005  * Could not be equal to register ~tsem_registers_arb_element0.arb_element0
4006  */
4007 #define TSEM_REG_ARB_ELEMENT1                                   0x180024
4008 /*
4009  * [RW 3] The source that is associated with arbitration element 2. Sourc
4010  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
4011  * sleeping thread with priority 1; 4- sleeping thread with priority 2.
4012  * Could not be equal to register ~tsem_registers_arb_element0.arb_element0
4013  * and ~tsem_registers_arb_element1.arb_element1
4014  */
4015 #define TSEM_REG_ARB_ELEMENT2                                   0x180028
4016 /*
4017  * [RW 3] The source that is associated with arbitration element 3. Sourc
4018  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
4019  * sleeping thread with priority 1; 4- sleeping thread with priority 2.Could
4020  * not be equal to register ~tsem_registers_arb_element0.arb_element0 and
4021  * ~tsem_registers_arb_element1.arb_element1 and
4022  * ~tsem_registers_arb_element2.arb_element2
4023  */
4024 #define TSEM_REG_ARB_ELEMENT3                                   0x18002c
4025 /*
4026  * [RW 3] The source that is associated with arbitration element 4. Sourc
4027  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
4028  * sleeping thread with priority 1; 4- sleeping thread with priority 2.
4029  * Could not be equal to register ~tsem_registers_arb_element0.arb_element0
4030  * and ~tsem_registers_arb_element1.arb_element1 and
4031  * ~tsem_registers_arb_element2.arb_element2 and
4032  * ~tsem_registers_arb_element3.arb_element3
4033  */
4034 #define TSEM_REG_ARB_ELEMENT4                                   0x180030
4035 #define TSEM_REG_ENABLE_IN                                      0x1800a4
4036 #define TSEM_REG_ENABLE_OUT                                     0x1800a8
4037 /*
4038  * [RW 32] This address space contains all registers and memories that ar
4039  * placed in SEM_FAST block. The SEM_FAST registers are described in
4040  * appendix B. In order to access the sem_fast registers the base address
4041  * ~fast_memory.fast_memory should be added to eachsem_fast register offset.
4042  */
4043 #define TSEM_REG_FAST_MEMORY                                    0x1a0000
4044 /*
4045  * [RW 1] Disables input messages from FIC0 May be updated during run_tim
4046  * by the microcode
4047  */
4048 #define TSEM_REG_FIC0_DISABLE                                   0x180224
4049 /*
4050  * [RW 1] Disables input messages from FIC1 May be updated during run_tim
4051  * by the microcode
4052  */
4053 #define TSEM_REG_FIC1_DISABLE                                   0x180234
4054 /*
4055  * [RW 15] Interrupt table Read and write access to it is not possible i
4056  * the middle of the work
4057  */
4058 #define TSEM_REG_INT_TABLE                                      0x180400
4059 /*
4060  * [ST 24] Statistics register. The number of messages that entered throug
4061  * FIC0
4062  */
4063 #define TSEM_REG_MSG_NUM_FIC0                                   0x180000
4064 /*
4065  * [ST 24] Statistics register. The number of messages that entered throug
4066  * FIC1
4067  */
4068 #define TSEM_REG_MSG_NUM_FIC1                                   0x180004
4069 /*
4070  * [ST 24] Statistics register. The number of messages that were sent t
4071  * FOC0
4072  */
4073 #define TSEM_REG_MSG_NUM_FOC0                                   0x180008
4074 /*
4075  * [ST 24] Statistics register. The number of messages that were sent t
4076  * FOC1
4077  */
4078 #define TSEM_REG_MSG_NUM_FOC1                                   0x18000c
4079 /*
4080  * [ST 24] Statistics register. The number of messages that were sent t
4081  * FOC2
4082  */
4083 #define TSEM_REG_MSG_NUM_FOC2                                   0x180010
4084 /*
4085  * [ST 24] Statistics register. The number of messages that were sent t
4086  * FOC3
4087  */
4088 #define TSEM_REG_MSG_NUM_FOC3                                   0x180014
4089 /*
4090  * [RW 1] Disables input messages from the passive buffer May be update
4091  * during run_time by the microcode
4092  */
4093 #define TSEM_REG_PAS_DISABLE                                    0x18024c
4094 /* [WB 128] Debug only. Passive buffer memory */
4095 #define TSEM_REG_PASSIVE_BUFFER                                 0x181000
4096 /* [WB 46] pram memory. B45 is parity; b[44:0] - data. */
4097 #define TSEM_REG_PRAM                                           0x1c0000
4098 /* [R 8] Valid sleeping threads indication have bit per thread */
4099 #define TSEM_REG_SLEEP_THREADS_VALID                            0x18026c
4100 /* [R 1] EXT_STORE FIFO is empty in sem_slow_ls_ext */
4101 #define TSEM_REG_SLOW_EXT_STORE_EMPTY                           0x1802a0
4102 /* [RW 8] List of free threads . There is a bit per thread. */
4103 #define TSEM_REG_THREADS_LIST                                   0x1802e4
4104 /* [RW 3] The arbitration scheme of time_slot 0 */
4105 #define TSEM_REG_TS_0_AS                                        0x180038
4106 /* [RW 3] The arbitration scheme of time_slot 10 */
4107 #define TSEM_REG_TS_10_AS                                       0x180060
4108 /* [RW 3] The arbitration scheme of time_slot 11 */
4109 #define TSEM_REG_TS_11_AS                                       0x180064
4110 /* [RW 3] The arbitration scheme of time_slot 12 */
4111 #define TSEM_REG_TS_12_AS                                       0x180068
4112 /* [RW 3] The arbitration scheme of time_slot 13 */
4113 #define TSEM_REG_TS_13_AS                                       0x18006c
4114 /* [RW 3] The arbitration scheme of time_slot 14 */
4115 #define TSEM_REG_TS_14_AS                                       0x180070
4116 /* [RW 3] The arbitration scheme of time_slot 15 */
4117 #define TSEM_REG_TS_15_AS                                       0x180074
4118 /* [RW 3] The arbitration scheme of time_slot 16 */
4119 #define TSEM_REG_TS_16_AS                                       0x180078
4120 /* [RW 3] The arbitration scheme of time_slot 17 */
4121 #define TSEM_REG_TS_17_AS                                       0x18007c
4122 /* [RW 3] The arbitration scheme of time_slot 18 */
4123 #define TSEM_REG_TS_18_AS                                       0x180080
4124 /* [RW 3] The arbitration scheme of time_slot 1 */
4125 #define TSEM_REG_TS_1_AS                                        0x18003c
4126 /* [RW 3] The arbitration scheme of time_slot 2 */
4127 #define TSEM_REG_TS_2_AS                                        0x180040
4128 /* [RW 3] The arbitration scheme of time_slot 3 */
4129 #define TSEM_REG_TS_3_AS                                        0x180044
4130 /* [RW 3] The arbitration scheme of time_slot 4 */
4131 #define TSEM_REG_TS_4_AS                                        0x180048
4132 /* [RW 3] The arbitration scheme of time_slot 5 */
4133 #define TSEM_REG_TS_5_AS                                        0x18004c
4134 /* [RW 3] The arbitration scheme of time_slot 6 */
4135 #define TSEM_REG_TS_6_AS                                        0x180050
4136 /* [RW 3] The arbitration scheme of time_slot 7 */
4137 #define TSEM_REG_TS_7_AS                                        0x180054
4138 /* [RW 3] The arbitration scheme of time_slot 8 */
4139 #define TSEM_REG_TS_8_AS                                        0x180058
4140 /* [RW 3] The arbitration scheme of time_slot 9 */
4141 #define TSEM_REG_TS_9_AS                                        0x18005c
4142 /* [RW 32] Interrupt mask register #0 read/write */
4143 #define TSEM_REG_TSEM_INT_MASK_0                                0x180100
4144 #define TSEM_REG_TSEM_INT_MASK_1                                0x180110
4145 /* [R 32] Interrupt register #0 read */
4146 #define TSEM_REG_TSEM_INT_STS_0                                 0x1800f4
4147 #define TSEM_REG_TSEM_INT_STS_1                                 0x180104
4148 /* [RW 32] Parity mask register #0 read/write */
4149 #define TSEM_REG_TSEM_PRTY_MASK_0                               0x180120
4150 #define TSEM_REG_TSEM_PRTY_MASK_1                               0x180130
4151 /* [R 32] Parity register #0 read */
4152 #define TSEM_REG_TSEM_PRTY_STS_0                                0x180114
4153 #define TSEM_REG_TSEM_PRTY_STS_1                                0x180124
4154 /* [R 5] Used to read the XX protection CAM occupancy counter. */
4155 #define UCM_REG_CAM_OCCUP                                       0xe0170
4156 /*
4157  * [RW 1] CDU AG read Interface enable. If 0 - the request input i
4158  * disregarded; valid output is deasserted; all other signals are treated as
4159  * usual; if 1 - normal activity.
4160  */
4161 #define UCM_REG_CDU_AG_RD_IFEN                                  0xe0038
4162 /*
4163  * [RW 1] CDU AG write Interface enable. If 0 - the request and valid inpu
4164  * are disregarded; all other signals are treated as usual; if 1 - normal
4165  * activity.
4166  */
4167 #define UCM_REG_CDU_AG_WR_IFEN                                  0xe0034
4168 /*
4169  * [RW 1] CDU STORM read Interface enable. If 0 - the request input i
4170  * disregarded; valid output is deasserted; all other signals are treated as
4171  * usual; if 1 - normal activity.
4172  */
4173 #define UCM_REG_CDU_SM_RD_IFEN                                  0xe0040
4174 /*
4175  * [RW 1] CDU STORM write Interface enable. If 0 - the request and vali
4176  * input is disregarded; all other signals are treated as usual; if 1 -
4177  * normal activity.
4178  */
4179 #define UCM_REG_CDU_SM_WR_IFEN                                  0xe003c
4180 /*
4181  * [RW 4] CFC output initial credit. Max credit available - 15.Write write
4182  * the initial credit value; read returns the current value of the credit
4183  * counter. Must be initialized to 1 at start-up.
4184  */
4185 #define UCM_REG_CFC_INIT_CRD                                    0xe0204
4186 /*
4187  * [RW 3] The weight of the CP input in the WRR mechanism. 0 stands fo
4188  * weight 8 (the most prioritised); 1 stands for weight 1(least
4189  * prioritised); 2 stands for weight 2; tc.
4190  */
4191 #define UCM_REG_CP_WEIGHT                                       0xe00c4
4192 /*
4193  * [RW 1] Input csem Interface enable. If 0 - the valid input i
4194  * disregarded; acknowledge output is deasserted; all other signals are
4195  * treated as usual; if 1 - normal activity.
4196  */
4197 #define UCM_REG_CSEM_IFEN                                       0xe0028
4198 /*
4199  * [RC 1] Set when the message length mismatch (relative to last indication
4200  * at the csem interface is detected.
4201  */
4202 #define UCM_REG_CSEM_LENGTH_MIS                                 0xe0160
4203 /*
4204  * [RW 3] The weight of the input csem in the WRR mechanism. 0 stands fo
4205  * weight 8 (the most prioritised); 1 stands for weight 1(least
4206  * prioritised); 2 stands for weight 2; tc.
4207  */
4208 #define UCM_REG_CSEM_WEIGHT                                     0xe00b8
4209 /*
4210  * [RW 1] Input dorq Interface enable. If 0 - the valid input i
4211  * disregarded; acknowledge output is deasserted; all other signals are
4212  * treated as usual; if 1 - normal activity.
4213  */
4214 #define UCM_REG_DORQ_IFEN                                       0xe0030
4215 /*
4216  * [RC 1] Set when the message length mismatch (relative to last indication
4217  * at the dorq interface is detected.
4218  */
4219 #define UCM_REG_DORQ_LENGTH_MIS                                 0xe0168
4220 /*
4221  * [RW 3] The weight of the input dorq in the WRR mechanism. 0 stands fo
4222  * weight 8 (the most prioritised); 1 stands for weight 1(least
4223  * prioritised); 2 stands for weight 2; tc.
4224  */
4225 #define UCM_REG_DORQ_WEIGHT                                     0xe00c0
4226 /* [RW 8] The Event ID in case ErrorFlg input message bit is set. */
4227 #define UCM_REG_ERR_EVNT_ID                                     0xe00a4
4228 /* [RW 28] The CM erroneous header for QM and Timers formatting. */
4229 #define UCM_REG_ERR_UCM_HDR                                     0xe00a0
4230 /* [RW 8] The Event ID for Timers expiration. */
4231 #define UCM_REG_EXPR_EVNT_ID                                    0xe00a8
4232 /*
4233  * [RW 8] FIC0 output initial credit. Max credit available - 255.Writ
4234  * writes the initial credit value; read returns the current value of the
4235  * credit counter. Must be initialized to 64 at start-up.
4236  */
4237 #define UCM_REG_FIC0_INIT_CRD                                   0xe020c
4238 /*
4239  * [RW 8] FIC1 output initial credit. Max credit available - 255.Writ
4240  * writes the initial credit value; read returns the current value of the
4241  * credit counter. Must be initialized to 64 at start-up.
4242  */
4243 #define UCM_REG_FIC1_INIT_CRD                                   0xe0210
4244 /*
4245  * [RW 1] Arbitration between Input Arbiter groups: 0 - fair Round-Robin;
4246  * - strict priority defined by ~ucm_registers_gr_ag_pr.gr_ag_pr;
4247  * ~ucm_registers_gr_ld0_pr.gr_ld0_pr and
4248  * ~ucm_registers_gr_ld1_pr.gr_ld1_pr.
4249  */
4250 #define UCM_REG_GR_ARB_TYPE                                     0xe0144
4251 /*
4252  * [RW 2] Load (FIC0) channel group priority. The lowest priority is 0; th
4253  * highest priority is 3. It is supposed that the Store channel group is
4254  * compliment to the others.
4255  */
4256 #define UCM_REG_GR_LD0_PR                                       0xe014c
4257 /*
4258  * [RW 2] Load (FIC1) channel group priority. The lowest priority is 0; th
4259  * highest priority is 3. It is supposed that the Store channel group is
4260  * compliment to the others.
4261  */
4262 #define UCM_REG_GR_LD1_PR                                       0xe0150
4263 /* [RW 2] The queue index for invalidate counter flag decision. */
4264 #define UCM_REG_INV_CFLG_Q                                      0xe00e4
4265 /*
4266  * [RW 5] The number of double REG-pairs; loaded from the STORM context an
4267  * sent to STORM; for a specific connection type. the double REG-pairs are
4268  * used in order to align to STORM context row size of 128 bits. The offset
4269  * of these data in the STORM context is always 0. Index _i stands for the
4270  * connection type (one of 16).
4271  */
4272 #define UCM_REG_N_SM_CTX_LD_0                                   0xe0054
4273 #define UCM_REG_N_SM_CTX_LD_1                                   0xe0058
4274 #define UCM_REG_N_SM_CTX_LD_2                                   0xe005c
4275 #define UCM_REG_N_SM_CTX_LD_3                                   0xe0060
4276 #define UCM_REG_N_SM_CTX_LD_4                                   0xe0064
4277 #define UCM_REG_N_SM_CTX_LD_5                                   0xe0068
4278 #define UCM_REG_PHYS_QNUM0_0                                    0xe0110
4279 #define UCM_REG_PHYS_QNUM0_1                                    0xe0114
4280 #define UCM_REG_PHYS_QNUM1_0                                    0xe0118
4281 #define UCM_REG_PHYS_QNUM1_1                                    0xe011c
4282 #define UCM_REG_PHYS_QNUM2_0                                    0xe0120
4283 #define UCM_REG_PHYS_QNUM2_1                                    0xe0124
4284 #define UCM_REG_PHYS_QNUM3_0                                    0xe0128
4285 #define UCM_REG_PHYS_QNUM3_1                                    0xe012c
4286 /* [RW 8] The Event ID for Timers formatting in case of stop done. */
4287 #define UCM_REG_STOP_EVNT_ID                                    0xe00ac
4288 /*
4289  * [RC 1] Set when the message length mismatch (relative to last indication
4290  * at the STORM interface is detected.
4291  */
4292 #define UCM_REG_STORM_LENGTH_MIS                                0xe0154
4293 /*
4294  * [RW 1] STORM - CM Interface enable. If 0 - the valid input i
4295  * disregarded; acknowledge output is deasserted; all other signals are
4296  * treated as usual; if 1 - normal activity.
4297  */
4298 #define UCM_REG_STORM_UCM_IFEN                                  0xe0010
4299 /*
4300  * [RW 3] The weight of the STORM input in the WRR mechanism. 0 stands fo
4301  * weight 8 (the most prioritised); 1 stands for weight 1(least
4302  * prioritised); 2 stands for weight 2; tc.
4303  */
4304 #define UCM_REG_STORM_WEIGHT                                    0xe00b0
4305 /*
4306  * [RW 4] Timers output initial credit. Max credit available - 15.Writ
4307  * writes the initial credit value; read returns the current value of the
4308  * credit counter. Must be initialized to 4 at start-up.
4309  */
4310 #define UCM_REG_TM_INIT_CRD                                     0xe021c
4311 /* [RW 28] The CM header for Timers expiration command. */
4312 #define UCM_REG_TM_UCM_HDR                                      0xe009c
4313 /*
4314  * [RW 1] Timers - CM Interface enable. If 0 - the valid input i
4315  * disregarded; acknowledge output is deasserted; all other signals are
4316  * treated as usual; if 1 - normal activity.
4317  */
4318 #define UCM_REG_TM_UCM_IFEN                                     0xe001c
4319 /*
4320  * [RW 3] The weight of the Timers input in the WRR mechanism. 0 stands fo
4321  * weight 8 (the most prioritised); 1 stands for weight 1(least
4322  * prioritised); 2 stands for weight 2; tc.
4323  */
4324 #define UCM_REG_TM_WEIGHT                                       0xe00d4
4325 /*
4326  * [RW 1] Input tsem Interface enable. If 0 - the valid input i
4327  * disregarded; acknowledge output is deasserted; all other signals are
4328  * treated as usual; if 1 - normal activity.
4329  */
4330 #define UCM_REG_TSEM_IFEN                                       0xe0024
4331 /*
4332  * [RC 1] Set when the message length mismatch (relative to last indication
4333  * at the tsem interface is detected.
4334  */
4335 #define UCM_REG_TSEM_LENGTH_MIS                                 0xe015c
4336 /*
4337  * [RW 3] The weight of the input tsem in the WRR mechanism. 0 stands fo
4338  * weight 8 (the most prioritised); 1 stands for weight 1(least
4339  * prioritised); 2 stands for weight 2; tc.
4340  */
4341 #define UCM_REG_TSEM_WEIGHT                                     0xe00b4
4342 /*
4343  * [RW 1] CM - CFC Interface enable. If 0 - the valid input is disregarded
4344  * acknowledge output is deasserted; all other signals are treated as usual;
4345  * if 1 - normal activity.
4346  */
4347 #define UCM_REG_UCM_CFC_IFEN                                    0xe0044
4348 /* [RW 11] Interrupt mask register #0 read/write */
4349 #define UCM_REG_UCM_INT_MASK                                    0xe01d4
4350 /* [R 11] Interrupt register #0 read */
4351 #define UCM_REG_UCM_INT_STS                                     0xe01c8
4352 /* [R 27] Parity register #0 read */
4353 #define UCM_REG_UCM_PRTY_STS                                    0xe01d8
4354 /*
4355  * [RW 2] The size of AG context region 0 in REG-pairs. Designates the M
4356  * REG-pair number (e.g. if region 0 is 6 REG-pairs; the value should be 5).
4357  * Is used to determine the number of the AG context REG-pairs written back;
4358  * when the Reg1WbFlg isn't set.
4359  */
4360 #define UCM_REG_UCM_REG0_SZ                                     0xe00dc
4361 /*
4362  * [RW 1] CM - STORM 0 Interface enable. If 0 - the acknowledge input i
4363  * disregarded; valid is deasserted; all other signals are treated as usual;
4364  * if 1 - normal activity.
4365  */
4366 #define UCM_REG_UCM_STORM0_IFEN                                 0xe0004
4367 /*
4368  * [RW 1] CM - STORM 1 Interface enable. If 0 - the acknowledge input i
4369  * disregarded; valid is deasserted; all other signals are treated as usual;
4370  * if 1 - normal activity.
4371  */
4372 #define UCM_REG_UCM_STORM1_IFEN                                 0xe0008
4373 /*
4374  * [RW 1] CM - Timers Interface enable. If 0 - the valid input i
4375  * disregarded; acknowledge output is deasserted; all other signals are
4376  * treated as usual; if 1 - normal activity.
4377  */
4378 #define UCM_REG_UCM_TM_IFEN                                     0xe0020
4379 /*
4380  * [RW 1] CM - QM Interface enable. If 0 - the acknowledge input i
4381  * disregarded; valid is deasserted; all other signals are treated as usual;
4382  * if 1 - normal activity.
4383  */
4384 #define UCM_REG_UCM_UQM_IFEN                                    0xe000c
4385 /* [RW 1] If set the Q index; received from the QM is inserted to event ID. */
4386 #define UCM_REG_UCM_UQM_USE_Q                                   0xe00d8
4387 /*
4388  * [RW 6] QM output initial credit. Max credit available - 32.Write write
4389  * the initial credit value; read returns the current value of the credit
4390  * counter. Must be initialized to 32 at start-up.
4391  */
4392 #define UCM_REG_UQM_INIT_CRD                                    0xe0220
4393 /*
4394  * [RW 3] The weight of the QM (primary) input in the WRR mechanism.
4395  * stands for weight 8 (the most prioritised); 1 stands for weight 1(least
4396  * prioritised); 2 stands for weight 2; tc.
4397  */
4398 #define UCM_REG_UQM_P_WEIGHT                                    0xe00cc
4399 /*
4400  * [RW 3] The weight of the QM (secondary) input in the WRR mechanism.
4401  * stands for weight 8 (the most prioritised); 1 stands for weight 1(least
4402  * prioritised); 2 stands for weight 2; tc.
4403  */
4404 #define UCM_REG_UQM_S_WEIGHT                                    0xe00d0
4405 /* [RW 28] The CM header value for QM request (primary). */
4406 #define UCM_REG_UQM_UCM_HDR_P                                   0xe0094
4407 /* [RW 28] The CM header value for QM request (secondary). */
4408 #define UCM_REG_UQM_UCM_HDR_S                                   0xe0098
4409 /*
4410  * [RW 1] QM - CM Interface enable. If 0 - the valid input is disregarded
4411  * acknowledge output is deasserted; all other signals are treated as usual;
4412  * if 1 - normal activity.
4413  */
4414 #define UCM_REG_UQM_UCM_IFEN                                    0xe0014
4415 /*
4416  * [RW 1] Input SDM Interface enable. If 0 - the valid input is disregarded
4417  * acknowledge output is deasserted; all other signals are treated as usual;
4418  * if 1 - normal activity.
4419  */
4420 #define UCM_REG_USDM_IFEN                                       0xe0018
4421 /*
4422  * [RC 1] Set when the message length mismatch (relative to last indication
4423  * at the SDM interface is detected.
4424  */
4425 #define UCM_REG_USDM_LENGTH_MIS                                 0xe0158
4426 /*
4427  * [RW 3] The weight of the SDM input in the WRR mechanism. 0 stands fo
4428  * weight 8 (the most prioritised); 1 stands for weight 1(least
4429  * prioritised); 2 stands for weight 2; tc.
4430  */
4431 #define UCM_REG_USDM_WEIGHT                                     0xe00c8
4432 /*
4433  * [RW 1] Input xsem Interface enable. If 0 - the valid input i
4434  * disregarded; acknowledge output is deasserted; all other signals are
4435  * treated as usual; if 1 - normal activity.
4436  */
4437 #define UCM_REG_XSEM_IFEN                                       0xe002c
4438 /*
4439  * [RC 1] Set when the message length mismatch (relative to last indication
4440  * at the xsem interface isdetected.
4441  */
4442 #define UCM_REG_XSEM_LENGTH_MIS                                 0xe0164
4443 /*
4444  * [RW 3] The weight of the input xsem in the WRR mechanism. 0 stands fo
4445  * weight 8 (the most prioritised); 1 stands for weight 1(least
4446  * prioritised); 2 stands for weight 2; tc.
4447  */
4448 #define UCM_REG_XSEM_WEIGHT                                     0xe00bc
4449 /*
4450  * [RW 20] Indirect access to the descriptor table of the XX protectio
4451  * mechanism. The fields are:[5:0] - message length; 14:6] - message
4452  * pointer; 19:15] - next pointer.
4453  */
4454 #define UCM_REG_XX_DESCR_TABLE                                  0xe0280
4455 #define UCM_REG_XX_DESCR_TABLE_SIZE                              32
4456 /* [R 6] Use to read the XX protection Free counter. */
4457 #define UCM_REG_XX_FREE                                         0xe016c
4458 /*
4459  * [RW 6] Initial value for the credit counter; responsible for fulfillin
4460  * of the Input Stage XX protection buffer by the XX protection pending
4461  * messages. Write writes the initial credit value; read returns the current
4462  * value of the credit counter. Must be initialized to 12 at start-up.
4463  */
4464 #define UCM_REG_XX_INIT_CRD                                     0xe0224
4465 /*
4466  * [RW 6] The maximum number of pending messages; which may be stored in X
4467  * protection. ~ucm_registers_xx_free.xx_free read on read.
4468  */
4469 #define UCM_REG_XX_MSG_NUM                                      0xe0228
4470 /* [RW 8] The Event ID; sent to the STORM in case of XX overflow. */
4471 #define UCM_REG_XX_OVFL_EVNT_ID                                 0xe004c
4472 /*
4473  * [RW 16] Indirect access to the XX table of the XX protection mechanism
4474  * The fields are: [4:0] - tail pointer; 10:5] - Link List size; 15:11] -
4475  * header pointer.
4476  */
4477 #define UCM_REG_XX_TABLE                                        0xe0300
4478 /* [RW 8] The event id for aggregated interrupt 0 */
4479 #define USDM_REG_AGG_INT_EVENT_0                                0xc4038
4480 #define USDM_REG_AGG_INT_EVENT_1                                0xc403c
4481 #define USDM_REG_AGG_INT_EVENT_2                                0xc4040
4482 #define USDM_REG_AGG_INT_EVENT_4                                0xc4048
4483 #define USDM_REG_AGG_INT_EVENT_5                                0xc404c
4484 #define USDM_REG_AGG_INT_EVENT_6                                0xc4050
4485 /*
4486  * [RW 1] For each aggregated interrupt index whether the mode is normal (0
4487  * or auto-mask-mode (1)
4488  */
4489 #define USDM_REG_AGG_INT_MODE_0                                 0xc41b8
4490 #define USDM_REG_AGG_INT_MODE_1                                 0xc41bc
4491 #define USDM_REG_AGG_INT_MODE_4                                 0xc41c8
4492 #define USDM_REG_AGG_INT_MODE_5                                 0xc41cc
4493 #define USDM_REG_AGG_INT_MODE_6                                 0xc41d0
4494 /* [RW 1] The T bit for aggregated interrupt 5 */
4495 #define USDM_REG_AGG_INT_T_5                                    0xc40cc
4496 #define USDM_REG_AGG_INT_T_6                                    0xc40d0
4497 /* [RW 13] The start address in the internal RAM for the cfc_rsp lcid */
4498 #define USDM_REG_CFC_RSP_START_ADDR                             0xc4008
4499 /* [RW 16] The maximum value of the competion counter #0 */
4500 #define USDM_REG_CMP_COUNTER_MAX0                               0xc401c
4501 /* [RW 16] The maximum value of the competion counter #1 */
4502 #define USDM_REG_CMP_COUNTER_MAX1                               0xc4020
4503 /* [RW 16] The maximum value of the competion counter #2 */
4504 #define USDM_REG_CMP_COUNTER_MAX2                               0xc4024
4505 /* [RW 16] The maximum value of the competion counter #3 */
4506 #define USDM_REG_CMP_COUNTER_MAX3                               0xc4028
4507 /*
4508  * [RW 13] The start address in the internal RAM for the completio
4509  * counters.
4510  */
4511 #define USDM_REG_CMP_COUNTER_START_ADDR                         0xc400c
4512 #define USDM_REG_ENABLE_IN1                                     0xc4238
4513 #define USDM_REG_ENABLE_IN2                                     0xc423c
4514 #define USDM_REG_ENABLE_OUT1                                    0xc4240
4515 #define USDM_REG_ENABLE_OUT2                                    0xc4244
4516 /*
4517  * [RW 4] The initial number of messages that can be sent to the pxp contro
4518  * interface without receiving any ACK.
4519  */
4520 #define USDM_REG_INIT_CREDIT_PXP_CTRL                           0xc44c0
4521 /* [ST 32] The number of ACK after placement messages received */
4522 #define USDM_REG_NUM_OF_ACK_AFTER_PLACE                         0xc4280
4523 /* [ST 32] The number of packet end messages received from the parser */
4524 #define USDM_REG_NUM_OF_PKT_END_MSG                             0xc4278
4525 /* [ST 32] The number of requests received from the pxp async if */
4526 #define USDM_REG_NUM_OF_PXP_ASYNC_REQ                           0xc427c
4527 /* [ST 32] The number of commands received in queue 0 */
4528 #define USDM_REG_NUM_OF_Q0_CMD                                  0xc4248
4529 /* [ST 32] The number of commands received in queue 10 */
4530 #define USDM_REG_NUM_OF_Q10_CMD                                 0xc4270
4531 /* [ST 32] The number of commands received in queue 11 */
4532 #define USDM_REG_NUM_OF_Q11_CMD                                 0xc4274
4533 /* [ST 32] The number of commands received in queue 1 */
4534 #define USDM_REG_NUM_OF_Q1_CMD                                  0xc424c
4535 /* [ST 32] The number of commands received in queue 2 */
4536 #define USDM_REG_NUM_OF_Q2_CMD                                  0xc4250
4537 /* [ST 32] The number of commands received in queue 3 */
4538 #define USDM_REG_NUM_OF_Q3_CMD                                  0xc4254
4539 /* [ST 32] The number of commands received in queue 4 */
4540 #define USDM_REG_NUM_OF_Q4_CMD                                  0xc4258
4541 /* [ST 32] The number of commands received in queue 5 */
4542 #define USDM_REG_NUM_OF_Q5_CMD                                  0xc425c
4543 /* [ST 32] The number of commands received in queue 6 */
4544 #define USDM_REG_NUM_OF_Q6_CMD                                  0xc4260
4545 /* [ST 32] The number of commands received in queue 7 */
4546 #define USDM_REG_NUM_OF_Q7_CMD                                  0xc4264
4547 /* [ST 32] The number of commands received in queue 8 */
4548 #define USDM_REG_NUM_OF_Q8_CMD                                  0xc4268
4549 /* [ST 32] The number of commands received in queue 9 */
4550 #define USDM_REG_NUM_OF_Q9_CMD                                  0xc426c
4551 /* [RW 13] The start address in the internal RAM for the packet end message */
4552 #define USDM_REG_PCK_END_MSG_START_ADDR                         0xc4014
4553 /* [RW 13] The start address in the internal RAM for queue counters */
4554 #define USDM_REG_Q_COUNTER_START_ADDR                           0xc4010
4555 /* [R 1] pxp_ctrl rd_data fifo empty in sdm_dma_rsp block */
4556 #define USDM_REG_RSP_PXP_CTRL_RDATA_EMPTY                       0xc4550
4557 /* [R 1] parser fifo empty in sdm_sync block */
4558 #define USDM_REG_SYNC_PARSER_EMPTY                              0xc4558
4559 /* [R 1] parser serial fifo empty in sdm_sync block */
4560 #define USDM_REG_SYNC_SYNC_EMPTY                                0xc4560
4561 /*
4562  * [RW 32] Tick for timer counter. Applicable only whe
4563  * ~usdm_registers_timer_tick_enable.timer_tick_enable =1
4564  */
4565 #define USDM_REG_TIMER_TICK                                     0xc4000
4566 /* [RW 32] Interrupt mask register #0 read/write */
4567 #define USDM_REG_USDM_INT_MASK_0                                0xc42a0
4568 #define USDM_REG_USDM_INT_MASK_1                                0xc42b0
4569 /* [R 32] Interrupt register #0 read */
4570 #define USDM_REG_USDM_INT_STS_0                                 0xc4294
4571 #define USDM_REG_USDM_INT_STS_1                                 0xc42a4
4572 /* [RW 11] Parity mask register #0 read/write */
4573 #define USDM_REG_USDM_PRTY_MASK                                 0xc42c0
4574 /* [R 11] Parity register #0 read */
4575 #define USDM_REG_USDM_PRTY_STS                                  0xc42b4
4576 /* [RW 5] The number of time_slots in the arbitration cycle */
4577 #define USEM_REG_ARB_CYCLE_SIZE                                 0x300034
4578 /*
4579  * [RW 3] The source that is associated with arbitration element 0. Sourc
4580  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
4581  * sleeping thread with priority 1; 4- sleeping thread with priority 2
4582  */
4583 #define USEM_REG_ARB_ELEMENT0                                   0x300020
4584 /*
4585  * [RW 3] The source that is associated with arbitration element 1. Sourc
4586  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
4587  * sleeping thread with priority 1; 4- sleeping thread with priority 2.
4588  * Could not be equal to register ~usem_registers_arb_element0.arb_element0
4589  */
4590 #define USEM_REG_ARB_ELEMENT1                                   0x300024
4591 /*
4592  * [RW 3] The source that is associated with arbitration element 2. Sourc
4593  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
4594  * sleeping thread with priority 1; 4- sleeping thread with priority 2.
4595  * Could not be equal to register ~usem_registers_arb_element0.arb_element0
4596  * and ~usem_registers_arb_element1.arb_element1
4597  */
4598 #define USEM_REG_ARB_ELEMENT2                                   0x300028
4599 /*
4600  * [RW 3] The source that is associated with arbitration element 3. Sourc
4601  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
4602  * sleeping thread with priority 1; 4- sleeping thread with priority 2.Could
4603  * not be equal to register ~usem_registers_arb_element0.arb_element0 and
4604  * ~usem_registers_arb_element1.arb_element1 and
4605  * ~usem_registers_arb_element2.arb_element2
4606  */
4607 #define USEM_REG_ARB_ELEMENT3                                   0x30002c
4608 /*
4609  * [RW 3] The source that is associated with arbitration element 4. Sourc
4610  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
4611  * sleeping thread with priority 1; 4- sleeping thread with priority 2.
4612  * Could not be equal to register ~usem_registers_arb_element0.arb_element0
4613  * and ~usem_registers_arb_element1.arb_element1 and
4614  * ~usem_registers_arb_element2.arb_element2 and
4615  * ~usem_registers_arb_element3.arb_element3
4616  */
4617 #define USEM_REG_ARB_ELEMENT4                                   0x300030
4618 #define USEM_REG_ENABLE_IN                                      0x3000a4
4619 #define USEM_REG_ENABLE_OUT                                     0x3000a8
4620 /*
4621  * [RW 32] This address space contains all registers and memories that ar
4622  * placed in SEM_FAST block. The SEM_FAST registers are described in
4623  * appendix B. In order to access the sem_fast registers the base address
4624  * ~fast_memory.fast_memory should be added to eachsem_fast register offset.
4625  */
4626 #define USEM_REG_FAST_MEMORY                                    0x320000
4627 /*
4628  * [RW 1] Disables input messages from FIC0 May be updated during run_tim
4629  * by the microcode
4630  */
4631 #define USEM_REG_FIC0_DISABLE                                   0x300224
4632 /*
4633  * [RW 1] Disables input messages from FIC1 May be updated during run_tim
4634  * by the microcode
4635  */
4636 #define USEM_REG_FIC1_DISABLE                                   0x300234
4637 /*
4638  * [RW 15] Interrupt table Read and write access to it is not possible i
4639  * the middle of the work
4640  */
4641 #define USEM_REG_INT_TABLE                                      0x300400
4642 /*
4643  * [ST 24] Statistics register. The number of messages that entered throug
4644  * FIC0
4645  */
4646 #define USEM_REG_MSG_NUM_FIC0                                   0x300000
4647 /*
4648  * [ST 24] Statistics register. The number of messages that entered throug
4649  * FIC1
4650  */
4651 #define USEM_REG_MSG_NUM_FIC1                                   0x300004
4652 /*
4653  * [ST 24] Statistics register. The number of messages that were sent t
4654  * FOC0
4655  */
4656 #define USEM_REG_MSG_NUM_FOC0                                   0x300008
4657 /*
4658  * [ST 24] Statistics register. The number of messages that were sent t
4659  * FOC1
4660  */
4661 #define USEM_REG_MSG_NUM_FOC1                                   0x30000c
4662 /*
4663  * [ST 24] Statistics register. The number of messages that were sent t
4664  * FOC2
4665  */
4666 #define USEM_REG_MSG_NUM_FOC2                                   0x300010
4667 /*
4668  * [ST 24] Statistics register. The number of messages that were sent t
4669  * FOC3
4670  */
4671 #define USEM_REG_MSG_NUM_FOC3                                   0x300014
4672 /*
4673  * [RW 1] Disables input messages from the passive buffer May be update
4674  * during run_time by the microcode
4675  */
4676 #define USEM_REG_PAS_DISABLE                                    0x30024c
4677 /* [WB 128] Debug only. Passive buffer memory */
4678 #define USEM_REG_PASSIVE_BUFFER                                 0x302000
4679 /* [WB 46] pram memory. B45 is parity; b[44:0] - data. */
4680 #define USEM_REG_PRAM                                           0x340000
4681 /* [R 16] Valid sleeping threads indication have bit per thread */
4682 #define USEM_REG_SLEEP_THREADS_VALID                            0x30026c
4683 /* [R 1] EXT_STORE FIFO is empty in sem_slow_ls_ext */
4684 #define USEM_REG_SLOW_EXT_STORE_EMPTY                           0x3002a0
4685 /* [RW 16] List of free threads . There is a bit per thread. */
4686 #define USEM_REG_THREADS_LIST                                   0x3002e4
4687 /* [RW 3] The arbitration scheme of time_slot 0 */
4688 #define USEM_REG_TS_0_AS                                        0x300038
4689 /* [RW 3] The arbitration scheme of time_slot 10 */
4690 #define USEM_REG_TS_10_AS                                       0x300060
4691 /* [RW 3] The arbitration scheme of time_slot 11 */
4692 #define USEM_REG_TS_11_AS                                       0x300064
4693 /* [RW 3] The arbitration scheme of time_slot 12 */
4694 #define USEM_REG_TS_12_AS                                       0x300068
4695 /* [RW 3] The arbitration scheme of time_slot 13 */
4696 #define USEM_REG_TS_13_AS                                       0x30006c
4697 /* [RW 3] The arbitration scheme of time_slot 14 */
4698 #define USEM_REG_TS_14_AS                                       0x300070
4699 /* [RW 3] The arbitration scheme of time_slot 15 */
4700 #define USEM_REG_TS_15_AS                                       0x300074
4701 /* [RW 3] The arbitration scheme of time_slot 16 */
4702 #define USEM_REG_TS_16_AS                                       0x300078
4703 /* [RW 3] The arbitration scheme of time_slot 17 */
4704 #define USEM_REG_TS_17_AS                                       0x30007c
4705 /* [RW 3] The arbitration scheme of time_slot 18 */
4706 #define USEM_REG_TS_18_AS                                       0x300080
4707 /* [RW 3] The arbitration scheme of time_slot 1 */
4708 #define USEM_REG_TS_1_AS                                        0x30003c
4709 /* [RW 3] The arbitration scheme of time_slot 2 */
4710 #define USEM_REG_TS_2_AS                                        0x300040
4711 /* [RW 3] The arbitration scheme of time_slot 3 */
4712 #define USEM_REG_TS_3_AS                                        0x300044
4713 /* [RW 3] The arbitration scheme of time_slot 4 */
4714 #define USEM_REG_TS_4_AS                                        0x300048
4715 /* [RW 3] The arbitration scheme of time_slot 5 */
4716 #define USEM_REG_TS_5_AS                                        0x30004c
4717 /* [RW 3] The arbitration scheme of time_slot 6 */
4718 #define USEM_REG_TS_6_AS                                        0x300050
4719 /* [RW 3] The arbitration scheme of time_slot 7 */
4720 #define USEM_REG_TS_7_AS                                        0x300054
4721 /* [RW 3] The arbitration scheme of time_slot 8 */
4722 #define USEM_REG_TS_8_AS                                        0x300058
4723 /* [RW 3] The arbitration scheme of time_slot 9 */
4724 #define USEM_REG_TS_9_AS                                        0x30005c
4725 /* [RW 32] Interrupt mask register #0 read/write */
4726 #define USEM_REG_USEM_INT_MASK_0                                0x300110
4727 #define USEM_REG_USEM_INT_MASK_1                                0x300120
4728 /* [R 32] Interrupt register #0 read */
4729 #define USEM_REG_USEM_INT_STS_0                                 0x300104
4730 #define USEM_REG_USEM_INT_STS_1                                 0x300114
4731 /* [RW 32] Parity mask register #0 read/write */
4732 #define USEM_REG_USEM_PRTY_MASK_0                               0x300130
4733 #define USEM_REG_USEM_PRTY_MASK_1                               0x300140
4734 /* [R 32] Parity register #0 read */
4735 #define USEM_REG_USEM_PRTY_STS_0                                0x300124
4736 #define USEM_REG_USEM_PRTY_STS_1                                0x300134
4737 /* [RW 2] The queue index for registration on Aux1 counter flag. */
4738 #define XCM_REG_AUX1_Q                                          0x20134
4739 /* [RW 2] Per each decision rule the queue index to register to. */
4740 #define XCM_REG_AUX_CNT_FLG_Q_19                                0x201b0
4741 /* [R 5] Used to read the XX protection CAM occupancy counter. */
4742 #define XCM_REG_CAM_OCCUP                                       0x20244
4743 /*
4744  * [RW 1] CDU AG read Interface enable. If 0 - the request input i
4745  * disregarded; valid output is deasserted; all other signals are treated as
4746  * usual; if 1 - normal activity.
4747  */
4748 #define XCM_REG_CDU_AG_RD_IFEN                                  0x20044
4749 /*
4750  * [RW 1] CDU AG write Interface enable. If 0 - the request and valid inpu
4751  * are disregarded; all other signals are treated as usual; if 1 - normal
4752  * activity.
4753  */
4754 #define XCM_REG_CDU_AG_WR_IFEN                                  0x20040
4755 /*
4756  * [RW 1] CDU STORM read Interface enable. If 0 - the request input i
4757  * disregarded; valid output is deasserted; all other signals are treated as
4758  * usual; if 1 - normal activity.
4759  */
4760 #define XCM_REG_CDU_SM_RD_IFEN                                  0x2004c
4761 /*
4762  * [RW 1] CDU STORM write Interface enable. If 0 - the request and vali
4763  * input is disregarded; all other signals are treated as usual; if 1 -
4764  * normal activity.
4765  */
4766 #define XCM_REG_CDU_SM_WR_IFEN                                  0x20048
4767 /*
4768  * [RW 4] CFC output initial credit. Max credit available - 15.Write write
4769  * the initial credit value; read returns the current value of the credit
4770  * counter. Must be initialized to 1 at start-up.
4771  */
4772 #define XCM_REG_CFC_INIT_CRD                                    0x20404
4773 /*
4774  * [RW 3] The weight of the CP input in the WRR mechanism. 0 stands fo
4775  * weight 8 (the most prioritised); 1 stands for weight 1(least
4776  * prioritised); 2 stands for weight 2; tc.
4777  */
4778 #define XCM_REG_CP_WEIGHT                                       0x200dc
4779 /*
4780  * [RW 1] Input csem Interface enable. If 0 - the valid input i
4781  * disregarded; acknowledge output is deasserted; all other signals are
4782  * treated as usual; if 1 - normal activity.
4783  */
4784 #define XCM_REG_CSEM_IFEN                                       0x20028
4785 /*
4786  * [RC 1] Set at message length mismatch (relative to last indication) a
4787  * the csem interface.
4788  */
4789 #define XCM_REG_CSEM_LENGTH_MIS                                 0x20228
4790 /*
4791  * [RW 3] The weight of the input csem in the WRR mechanism. 0 stands fo
4792  * weight 8 (the most prioritised); 1 stands for weight 1(least
4793  * prioritised); 2 stands for weight 2; tc.
4794  */
4795 #define XCM_REG_CSEM_WEIGHT                                     0x200c4
4796 /*
4797  * [RW 1] Input dorq Interface enable. If 0 - the valid input i
4798  * disregarded; acknowledge output is deasserted; all other signals are
4799  * treated as usual; if 1 - normal activity.
4800  */
4801 #define XCM_REG_DORQ_IFEN                                       0x20030
4802 /*
4803  * [RC 1] Set at message length mismatch (relative to last indication) a
4804  * the dorq interface.
4805  */
4806 #define XCM_REG_DORQ_LENGTH_MIS                                 0x20230
4807 /*
4808  * [RW 3] The weight of the input dorq in the WRR mechanism. 0 stands fo
4809  * weight 8 (the most prioritised); 1 stands for weight 1(least
4810  * prioritised); 2 stands for weight 2; tc.
4811  */
4812 #define XCM_REG_DORQ_WEIGHT                                     0x200cc
4813 /* [RW 8] The Event ID in case the ErrorFlg input message bit is set. */
4814 #define XCM_REG_ERR_EVNT_ID                                     0x200b0
4815 /* [RW 28] The CM erroneous header for QM and Timers formatting. */
4816 #define XCM_REG_ERR_XCM_HDR                                     0x200ac
4817 /* [RW 8] The Event ID for Timers expiration. */
4818 #define XCM_REG_EXPR_EVNT_ID                                    0x200b4
4819 /*
4820  * [RW 8] FIC0 output initial credit. Max credit available - 255.Writ
4821  * writes the initial credit value; read returns the current value of the
4822  * credit counter. Must be initialized to 64 at start-up.
4823  */
4824 #define XCM_REG_FIC0_INIT_CRD                                   0x2040c
4825 /*
4826  * [RW 8] FIC1 output initial credit. Max credit available - 255.Writ
4827  * writes the initial credit value; read returns the current value of the
4828  * credit counter. Must be initialized to 64 at start-up.
4829  */
4830 #define XCM_REG_FIC1_INIT_CRD                                   0x20410
4831 #define XCM_REG_GLB_DEL_ACK_MAX_CNT_0                           0x20118
4832 #define XCM_REG_GLB_DEL_ACK_MAX_CNT_1                           0x2011c
4833 #define XCM_REG_GLB_DEL_ACK_TMR_VAL_0                           0x20108
4834 #define XCM_REG_GLB_DEL_ACK_TMR_VAL_1                           0x2010c
4835 /*
4836  * [RW 1] Arbitratiojn between Input Arbiter groups: 0 - fair Round-Robin;
4837  * - strict priority defined by ~xcm_registers_gr_ag_pr.gr_ag_pr;
4838  * ~xcm_registers_gr_ld0_pr.gr_ld0_pr and
4839  * ~xcm_registers_gr_ld1_pr.gr_ld1_pr.
4840  */
4841 #define XCM_REG_GR_ARB_TYPE                                     0x2020c
4842 /*
4843  * [RW 2] Load (FIC0) channel group priority. The lowest priority is 0; th
4844  * highest priority is 3. It is supposed that the Channel group is the
4845  * compliment of the other 3 groups.
4846  */
4847 #define XCM_REG_GR_LD0_PR                                       0x20214
4848 /*
4849  * [RW 2] Load (FIC1) channel group priority. The lowest priority is 0; th
4850  * highest priority is 3. It is supposed that the Channel group is the
4851  * compliment of the other 3 groups.
4852  */
4853 #define XCM_REG_GR_LD1_PR                                       0x20218
4854 /*
4855  * [RW 1] Input nig0 Interface enable. If 0 - the valid input i
4856  * disregarded; acknowledge output is deasserted; all other signals are
4857  * treated as usual; if 1 - normal activity.
4858  */
4859 #define XCM_REG_NIG0_IFEN                                       0x20038
4860 /*
4861  * [RC 1] Set at message length mismatch (relative to last indication) a
4862  * the nig0 interface.
4863  */
4864 #define XCM_REG_NIG0_LENGTH_MIS                                 0x20238
4865 /*
4866  * [RW 3] The weight of the input nig0 in the WRR mechanism. 0 stands fo
4867  * weight 8 (the most prioritised); 1 stands for weight 1(least
4868  * prioritised); 2 stands for weight 2; tc.
4869  */
4870 #define XCM_REG_NIG0_WEIGHT                                     0x200d4
4871 /*
4872  * [RW 1] Input nig1 Interface enable. If 0 - the valid input i
4873  * disregarded; acknowledge output is deasserted; all other signals are
4874  * treated as usual; if 1 - normal activity.
4875  */
4876 #define XCM_REG_NIG1_IFEN                                       0x2003c
4877 /*
4878  * [RC 1] Set at message length mismatch (relative to last indication) a
4879  * the nig1 interface.
4880  */
4881 #define XCM_REG_NIG1_LENGTH_MIS                                 0x2023c
4882 /*
4883  * [RW 5] The number of double REG-pairs; loaded from the STORM context an
4884  * sent to STORM; for a specific connection type. The double REG-pairs are
4885  * used in order to align to STORM context row size of 128 bits. The offset
4886  * of these data in the STORM context is always 0. Index _i stands for the
4887  * connection type (one of 16).
4888  */
4889 #define XCM_REG_N_SM_CTX_LD_0                                   0x20060
4890 #define XCM_REG_N_SM_CTX_LD_1                                   0x20064
4891 #define XCM_REG_N_SM_CTX_LD_2                                   0x20068
4892 #define XCM_REG_N_SM_CTX_LD_3                                   0x2006c
4893 #define XCM_REG_N_SM_CTX_LD_4                                   0x20070
4894 #define XCM_REG_N_SM_CTX_LD_5                                   0x20074
4895 /*
4896  * [RW 1] Input pbf Interface enable. If 0 - the valid input is disregarded
4897  * acknowledge output is deasserted; all other signals are treated as usual;
4898  * if 1 - normal activity.
4899  */
4900 #define XCM_REG_PBF_IFEN                                        0x20034
4901 /*
4902  * [RC 1] Set at message length mismatch (relative to last indication) a
4903  * the pbf interface.
4904  */
4905 #define XCM_REG_PBF_LENGTH_MIS                                  0x20234
4906 /*
4907  * [RW 3] The weight of the input pbf in the WRR mechanism. 0 stands fo
4908  * weight 8 (the most prioritised); 1 stands for weight 1(least
4909  * prioritised); 2 stands for weight 2; tc.
4910  */
4911 #define XCM_REG_PBF_WEIGHT                                      0x200d0
4912 #define XCM_REG_PHYS_QNUM3_0                                    0x20100
4913 #define XCM_REG_PHYS_QNUM3_1                                    0x20104
4914 /* [RW 8] The Event ID for Timers formatting in case of stop done. */
4915 #define XCM_REG_STOP_EVNT_ID                                    0x200b8
4916 /*
4917  * [RC 1] Set at message length mismatch (relative to last indication) a
4918  * the STORM interface.
4919  */
4920 #define XCM_REG_STORM_LENGTH_MIS                                0x2021c
4921 /*
4922  * [RW 3] The weight of the STORM input in the WRR mechanism. 0 stands fo
4923  * weight 8 (the most prioritised); 1 stands for weight 1(least
4924  * prioritised); 2 stands for weight 2; tc.
4925  */
4926 #define XCM_REG_STORM_WEIGHT                                    0x200bc
4927 /*
4928  * [RW 1] STORM - CM Interface enable. If 0 - the valid input i
4929  * disregarded; acknowledge output is deasserted; all other signals are
4930  * treated as usual; if 1 - normal activity.
4931  */
4932 #define XCM_REG_STORM_XCM_IFEN                                  0x20010
4933 /*
4934  * [RW 4] Timers output initial credit. Max credit available - 15.Writ
4935  * writes the initial credit value; read returns the current value of the
4936  * credit counter. Must be initialized to 4 at start-up.
4937  */
4938 #define XCM_REG_TM_INIT_CRD                                     0x2041c
4939 /*
4940  * [RW 3] The weight of the Timers input in the WRR mechanism. 0 stands fo
4941  * weight 8 (the most prioritised); 1 stands for weight 1(least
4942  * prioritised); 2 stands for weight 2; tc.
4943  */
4944 #define XCM_REG_TM_WEIGHT                                       0x200ec
4945 /* [RW 28] The CM header for Timers expiration command. */
4946 #define XCM_REG_TM_XCM_HDR                                      0x200a8
4947 /*
4948  * [RW 1] Timers - CM Interface enable. If 0 - the valid input i
4949  * disregarded; acknowledge output is deasserted; all other signals are
4950  * treated as usual; if 1 - normal activity.
4951  */
4952 #define XCM_REG_TM_XCM_IFEN                                     0x2001c
4953 /*
4954  * [RW 1] Input tsem Interface enable. If 0 - the valid input i
4955  * disregarded; acknowledge output is deasserted; all other signals are
4956  * treated as usual; if 1 - normal activity.
4957  */
4958 #define XCM_REG_TSEM_IFEN                                       0x20024
4959 /*
4960  * [RC 1] Set at message length mismatch (relative to last indication) a
4961  * the tsem interface.
4962  */
4963 #define XCM_REG_TSEM_LENGTH_MIS                                 0x20224
4964 /*
4965  * [RW 3] The weight of the input tsem in the WRR mechanism. 0 stands fo
4966  * weight 8 (the most prioritised); 1 stands for weight 1(least
4967  * prioritised); 2 stands for weight 2; tc.
4968  */
4969 #define XCM_REG_TSEM_WEIGHT                                     0x200c0
4970 /* [RW 2] The queue index for registration on UNA greater NXT decision rule. */
4971 #define XCM_REG_UNA_GT_NXT_Q                                    0x20120
4972 /*
4973  * [RW 1] Input usem Interface enable. If 0 - the valid input i
4974  * disregarded; acknowledge output is deasserted; all other signals are
4975  * treated as usual; if 1 - normal activity.
4976  */
4977 #define XCM_REG_USEM_IFEN                                       0x2002c
4978 /*
4979  * [RC 1] Message length mismatch (relative to last indication) at the use
4980  * interface.
4981  */
4982 #define XCM_REG_USEM_LENGTH_MIS                                 0x2022c
4983 /*
4984  * [RW 3] The weight of the input usem in the WRR mechanism. 0 stands fo
4985  * weight 8 (the most prioritised); 1 stands for weight 1(least
4986  * prioritised); 2 stands for weight 2; tc.
4987  */
4988 #define XCM_REG_USEM_WEIGHT                                     0x200c8
4989 #define XCM_REG_WU_DA_CNT_CMD00                                 0x201d4
4990 #define XCM_REG_WU_DA_CNT_CMD01                                 0x201d8
4991 #define XCM_REG_WU_DA_CNT_CMD10                                 0x201dc
4992 #define XCM_REG_WU_DA_CNT_CMD11                                 0x201e0
4993 #define XCM_REG_WU_DA_CNT_UPD_VAL00                             0x201e4
4994 #define XCM_REG_WU_DA_CNT_UPD_VAL01                             0x201e8
4995 #define XCM_REG_WU_DA_CNT_UPD_VAL10                             0x201ec
4996 #define XCM_REG_WU_DA_CNT_UPD_VAL11                             0x201f0
4997 #define XCM_REG_WU_DA_SET_TMR_CNT_FLG_CMD00                     0x201c4
4998 #define XCM_REG_WU_DA_SET_TMR_CNT_FLG_CMD01                     0x201c8
4999 #define XCM_REG_WU_DA_SET_TMR_CNT_FLG_CMD10                     0x201cc
5000 #define XCM_REG_WU_DA_SET_TMR_CNT_FLG_CMD11                     0x201d0
5001 /*
5002  * [RW 1] CM - CFC Interface enable. If 0 - the valid input is disregarded
5003  * acknowledge output is deasserted; all other signals are treated as usual;
5004  * if 1 - normal activity.
5005  */
5006 #define XCM_REG_XCM_CFC_IFEN                                    0x20050
5007 /* [RW 14] Interrupt mask register #0 read/write */
5008 #define XCM_REG_XCM_INT_MASK                                    0x202b4
5009 /* [R 14] Interrupt register #0 read */
5010 #define XCM_REG_XCM_INT_STS                                     0x202a8
5011 /* [R 30] Parity register #0 read */
5012 #define XCM_REG_XCM_PRTY_STS                                    0x202b8
5013 /*
5014  * [RW 4] The size of AG context region 0 in REG-pairs. Designates the M
5015  * REG-pair number (e.g. if region 0 is 6 REG-pairs; the value should be 5).
5016  * Is used to determine the number of the AG context REG-pairs written back;
5017  * when the Reg1WbFlg isn't set.
5018  */
5019 #define XCM_REG_XCM_REG0_SZ                                     0x200f4
5020 /*
5021  * [RW 1] CM - STORM 0 Interface enable. If 0 - the acknowledge input i
5022  * disregarded; valid is deasserted; all other signals are treated as usual;
5023  * if 1 - normal activity.
5024  */
5025 #define XCM_REG_XCM_STORM0_IFEN                                 0x20004
5026 /*
5027  * [RW 1] CM - STORM 1 Interface enable. If 0 - the acknowledge input i
5028  * disregarded; valid is deasserted; all other signals are treated as usual;
5029  * if 1 - normal activity.
5030  */
5031 #define XCM_REG_XCM_STORM1_IFEN                                 0x20008
5032 /*
5033  * [RW 1] CM - Timers Interface enable. If 0 - the valid input i
5034  * disregarded; acknowledge output is deasserted; all other signals are
5035  * treated as usual; if 1 - normal activity.
5036  */
5037 #define XCM_REG_XCM_TM_IFEN                                     0x20020
5038 /*
5039  * [RW 1] CM - QM Interface enable. If 0 - the acknowledge input i
5040  * disregarded; valid is deasserted; all other signals are treated as usual;
5041  * if 1 - normal activity.
5042  */
5043 #define XCM_REG_XCM_XQM_IFEN                                    0x2000c
5044 /* [RW 1] If set the Q index; received from the QM is inserted to event ID. */
5045 #define XCM_REG_XCM_XQM_USE_Q                                   0x200f0
5046 /* [RW 4] The value by which CFC updates the activity counter at QM bypass. */
5047 #define XCM_REG_XQM_BYP_ACT_UPD                                 0x200fc
5048 /*
5049  * [RW 6] QM output initial credit. Max credit available - 32.Write write
5050  * the initial credit value; read returns the current value of the credit
5051  * counter. Must be initialized to 32 at start-up.
5052  */
5053 #define XCM_REG_XQM_INIT_CRD                                    0x20420
5054 /*
5055  * [RW 3] The weight of the QM (primary) input in the WRR mechanism.
5056  * stands for weight 8 (the most prioritised); 1 stands for weight 1(least
5057  * prioritised); 2 stands for weight 2; tc.
5058  */
5059 #define XCM_REG_XQM_P_WEIGHT                                    0x200e4
5060 /*
5061  * [RW 3] The weight of the QM (secondary) input in the WRR mechanism.
5062  * stands for weight 8 (the most prioritised); 1 stands for weight 1(least
5063  * prioritised); 2 stands for weight 2; tc.
5064  */
5065 #define XCM_REG_XQM_S_WEIGHT                                    0x200e8
5066 /* [RW 28] The CM header value for QM request (primary). */
5067 #define XCM_REG_XQM_XCM_HDR_P                                   0x200a0
5068 /* [RW 28] The CM header value for QM request (secondary). */
5069 #define XCM_REG_XQM_XCM_HDR_S                                   0x200a4
5070 /*
5071  * [RW 1] QM - CM Interface enable. If 0 - the valid input is disregarded
5072  * acknowledge output is deasserted; all other signals are treated as usual;
5073  * if 1 - normal activity.
5074  */
5075 #define XCM_REG_XQM_XCM_IFEN                                    0x20014
5076 /*
5077  * [RW 1] Input SDM Interface enable. If 0 - the valid input is disregarded
5078  * acknowledge output is deasserted; all other signals are treated as usual;
5079  * if 1 - normal activity.
5080  */
5081 #define XCM_REG_XSDM_IFEN                                       0x20018
5082 /*
5083  * [RC 1] Set at message length mismatch (relative to last indication) a
5084  * the SDM interface.
5085  */
5086 #define XCM_REG_XSDM_LENGTH_MIS                                 0x20220
5087 /*
5088  * [RW 3] The weight of the SDM input in the WRR mechanism. 0 stands fo
5089  * weight 8 (the most prioritised); 1 stands for weight 1(least
5090  * prioritised); 2 stands for weight 2; tc.
5091  */
5092 #define XCM_REG_XSDM_WEIGHT                                     0x200e0
5093 /*
5094  * [RW 17] Indirect access to the descriptor table of the XX protectio
5095  * mechanism. The fields are: [5:0] - message length; 11:6] - message
5096  * pointer; 16:12] - next pointer.
5097  */
5098 #define XCM_REG_XX_DESCR_TABLE                                  0x20480
5099 #define XCM_REG_XX_DESCR_TABLE_SIZE                              32
5100 /* [R 6] Used to read the XX protection Free counter. */
5101 #define XCM_REG_XX_FREE                                         0x20240
5102 /*
5103  * [RW 6] Initial value for the credit counter; responsible for fulfillin
5104  * of the Input Stage XX protection buffer by the XX protection pending
5105  * messages. Max credit available - 3.Write writes the initial credit value;
5106  * read returns the current value of the credit counter. Must be initialized
5107  * to 2 at start-up.
5108  */
5109 #define XCM_REG_XX_INIT_CRD                                     0x20424
5110 /*
5111  * [RW 6] The maximum number of pending messages; which may be stored in X
5112  * protection. ~xcm_registers_xx_free.xx_free read on read.
5113  */
5114 #define XCM_REG_XX_MSG_NUM                                      0x20428
5115 /* [RW 8] The Event ID; sent to the STORM in case of XX overflow. */
5116 #define XCM_REG_XX_OVFL_EVNT_ID                                 0x20058
5117 /*
5118  * [RW 16] Indirect access to the XX table of the XX protection mechanism
5119  * The fields are:[4:0] - tail pointer; 9:5] - Link List size; 14:10] -
5120  * header pointer.
5121  */
5122 #define XCM_REG_XX_TABLE                                        0x20500
5123 /* [RW 8] The event id for aggregated interrupt 0 */
5124 #define XSDM_REG_AGG_INT_EVENT_0                                0x166038
5125 #define XSDM_REG_AGG_INT_EVENT_1                                0x16603c
5126 #define XSDM_REG_AGG_INT_EVENT_10                               0x166060
5127 #define XSDM_REG_AGG_INT_EVENT_11                               0x166064
5128 #define XSDM_REG_AGG_INT_EVENT_12                               0x166068
5129 #define XSDM_REG_AGG_INT_EVENT_13                               0x16606c
5130 #define XSDM_REG_AGG_INT_EVENT_14                               0x166070
5131 #define XSDM_REG_AGG_INT_EVENT_2                                0x166040
5132 #define XSDM_REG_AGG_INT_EVENT_3                                0x166044
5133 #define XSDM_REG_AGG_INT_EVENT_4                                0x166048
5134 #define XSDM_REG_AGG_INT_EVENT_5                                0x16604c
5135 #define XSDM_REG_AGG_INT_EVENT_6                                0x166050
5136 #define XSDM_REG_AGG_INT_EVENT_7                                0x166054
5137 #define XSDM_REG_AGG_INT_EVENT_8                                0x166058
5138 #define XSDM_REG_AGG_INT_EVENT_9                                0x16605c
5139 /*
5140  * [RW 1] For each aggregated interrupt index whether the mode is normal (0
5141  * or auto-mask-mode (1)
5142  */
5143 #define XSDM_REG_AGG_INT_MODE_0                                 0x1661b8
5144 #define XSDM_REG_AGG_INT_MODE_1                                 0x1661bc
5145 /* [RW 13] The start address in the internal RAM for the cfc_rsp lcid */
5146 #define XSDM_REG_CFC_RSP_START_ADDR                             0x166008
5147 /* [RW 16] The maximum value of the competion counter #0 */
5148 #define XSDM_REG_CMP_COUNTER_MAX0                               0x16601c
5149 /* [RW 16] The maximum value of the competion counter #1 */
5150 #define XSDM_REG_CMP_COUNTER_MAX1                               0x166020
5151 /* [RW 16] The maximum value of the competion counter #2 */
5152 #define XSDM_REG_CMP_COUNTER_MAX2                               0x166024
5153 /* [RW 16] The maximum value of the competion counter #3 */
5154 #define XSDM_REG_CMP_COUNTER_MAX3                               0x166028
5155 /*
5156  * [RW 13] The start address in the internal RAM for the completio
5157  * counters.
5158  */
5159 #define XSDM_REG_CMP_COUNTER_START_ADDR                         0x16600c
5160 #define XSDM_REG_ENABLE_IN1                                     0x166238
5161 #define XSDM_REG_ENABLE_IN2                                     0x16623c
5162 #define XSDM_REG_ENABLE_OUT1                                    0x166240
5163 #define XSDM_REG_ENABLE_OUT2                                    0x166244
5164 /*
5165  * [RW 4] The initial number of messages that can be sent to the pxp contro
5166  * interface without receiving any ACK.
5167  */
5168 #define XSDM_REG_INIT_CREDIT_PXP_CTRL                           0x1664bc
5169 /* [ST 32] The number of ACK after placement messages received */
5170 #define XSDM_REG_NUM_OF_ACK_AFTER_PLACE                         0x16627c
5171 /* [ST 32] The number of packet end messages received from the parser */
5172 #define XSDM_REG_NUM_OF_PKT_END_MSG                             0x166274
5173 /* [ST 32] The number of requests received from the pxp async if */
5174 #define XSDM_REG_NUM_OF_PXP_ASYNC_REQ                           0x166278
5175 /* [ST 32] The number of commands received in queue 0 */
5176 #define XSDM_REG_NUM_OF_Q0_CMD                                  0x166248
5177 /* [ST 32] The number of commands received in queue 10 */
5178 #define XSDM_REG_NUM_OF_Q10_CMD                                 0x16626c
5179 /* [ST 32] The number of commands received in queue 11 */
5180 #define XSDM_REG_NUM_OF_Q11_CMD                                 0x166270
5181 /* [ST 32] The number of commands received in queue 1 */
5182 #define XSDM_REG_NUM_OF_Q1_CMD                                  0x16624c
5183 /* [ST 32] The number of commands received in queue 3 */
5184 #define XSDM_REG_NUM_OF_Q3_CMD                                  0x166250
5185 /* [ST 32] The number of commands received in queue 4 */
5186 #define XSDM_REG_NUM_OF_Q4_CMD                                  0x166254
5187 /* [ST 32] The number of commands received in queue 5 */
5188 #define XSDM_REG_NUM_OF_Q5_CMD                                  0x166258
5189 /* [ST 32] The number of commands received in queue 6 */
5190 #define XSDM_REG_NUM_OF_Q6_CMD                                  0x16625c
5191 /* [ST 32] The number of commands received in queue 7 */
5192 #define XSDM_REG_NUM_OF_Q7_CMD                                  0x166260
5193 /* [ST 32] The number of commands received in queue 8 */
5194 #define XSDM_REG_NUM_OF_Q8_CMD                                  0x166264
5195 /* [ST 32] The number of commands received in queue 9 */
5196 #define XSDM_REG_NUM_OF_Q9_CMD                                  0x166268
5197 /* [RW 13] The start address in the internal RAM for queue counters */
5198 #define XSDM_REG_Q_COUNTER_START_ADDR                           0x166010
5199 /* [R 1] pxp_ctrl rd_data fifo empty in sdm_dma_rsp block */
5200 #define XSDM_REG_RSP_PXP_CTRL_RDATA_EMPTY                       0x166548
5201 /* [R 1] parser fifo empty in sdm_sync block */
5202 #define XSDM_REG_SYNC_PARSER_EMPTY                              0x166550
5203 /* [R 1] parser serial fifo empty in sdm_sync block */
5204 #define XSDM_REG_SYNC_SYNC_EMPTY                                0x166558
5205 /*
5206  * [RW 32] Tick for timer counter. Applicable only whe
5207  * ~xsdm_registers_timer_tick_enable.timer_tick_enable =1
5208  */
5209 #define XSDM_REG_TIMER_TICK                                     0x166000
5210 /* [RW 32] Interrupt mask register #0 read/write */
5211 #define XSDM_REG_XSDM_INT_MASK_0                                0x16629c
5212 #define XSDM_REG_XSDM_INT_MASK_1                                0x1662ac
5213 /* [R 32] Interrupt register #0 read */
5214 #define XSDM_REG_XSDM_INT_STS_0                                 0x166290
5215 #define XSDM_REG_XSDM_INT_STS_1                                 0x1662a0
5216 /* [RW 11] Parity mask register #0 read/write */
5217 #define XSDM_REG_XSDM_PRTY_MASK                                 0x1662bc
5218 /* [R 11] Parity register #0 read */
5219 #define XSDM_REG_XSDM_PRTY_STS                                  0x1662b0
5220 /* [RW 5] The number of time_slots in the arbitration cycle */
5221 #define XSEM_REG_ARB_CYCLE_SIZE                                 0x280034
5222 /*
5223  * [RW 3] The source that is associated with arbitration element 0. Sourc
5224  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
5225  * sleeping thread with priority 1; 4- sleeping thread with priority 2
5226  */
5227 #define XSEM_REG_ARB_ELEMENT0                                   0x280020
5228 /*
5229  * [RW 3] The source that is associated with arbitration element 1. Sourc
5230  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
5231  * sleeping thread with priority 1; 4- sleeping thread with priority 2.
5232  * Could not be equal to register ~xsem_registers_arb_element0.arb_element0
5233  */
5234 #define XSEM_REG_ARB_ELEMENT1                                   0x280024
5235 /*
5236  * [RW 3] The source that is associated with arbitration element 2. Sourc
5237  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
5238  * sleeping thread with priority 1; 4- sleeping thread with priority 2.
5239  * Could not be equal to register ~xsem_registers_arb_element0.arb_element0
5240  * and ~xsem_registers_arb_element1.arb_element1
5241  */
5242 #define XSEM_REG_ARB_ELEMENT2                                   0x280028
5243 /*
5244  * [RW 3] The source that is associated with arbitration element 3. Sourc
5245  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
5246  * sleeping thread with priority 1; 4- sleeping thread with priority 2.Could
5247  * not be equal to register ~xsem_registers_arb_element0.arb_element0 and
5248  * ~xsem_registers_arb_element1.arb_element1 and
5249  * ~xsem_registers_arb_element2.arb_element2
5250  */
5251 #define XSEM_REG_ARB_ELEMENT3                                   0x28002c
5252 /*
5253  * [RW 3] The source that is associated with arbitration element 4. Sourc
5254  * decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
5255  * sleeping thread with priority 1; 4- sleeping thread with priority 2.
5256  * Could not be equal to register ~xsem_registers_arb_element0.arb_element0
5257  * and ~xsem_registers_arb_element1.arb_element1 and
5258  * ~xsem_registers_arb_element2.arb_element2 and
5259  * ~xsem_registers_arb_element3.arb_element3
5260  */
5261 #define XSEM_REG_ARB_ELEMENT4                                   0x280030
5262 #define XSEM_REG_ENABLE_IN                                      0x2800a4
5263 #define XSEM_REG_ENABLE_OUT                                     0x2800a8
5264 /*
5265  * [RW 32] This address space contains all registers and memories that ar
5266  * placed in SEM_FAST block. The SEM_FAST registers are described in
5267  * appendix B. In order to access the sem_fast registers the base address
5268  * ~fast_memory.fast_memory should be added to eachsem_fast register offset.
5269  */
5270 #define XSEM_REG_FAST_MEMORY                                    0x2a0000
5271 /*
5272  * [RW 1] Disables input messages from FIC0 May be updated during run_tim
5273  * by the microcode
5274  */
5275 #define XSEM_REG_FIC0_DISABLE                                   0x280224
5276 /*
5277  * [RW 1] Disables input messages from FIC1 May be updated during run_tim
5278  * by the microcode
5279  */
5280 #define XSEM_REG_FIC1_DISABLE                                   0x280234
5281 /*
5282  * [RW 15] Interrupt table Read and write access to it is not possible i
5283  * the middle of the work
5284  */
5285 #define XSEM_REG_INT_TABLE                                      0x280400
5286 /*
5287  * [ST 24] Statistics register. The number of messages that entered throug
5288  * FIC0
5289  */
5290 #define XSEM_REG_MSG_NUM_FIC0                                   0x280000
5291 /*
5292  * [ST 24] Statistics register. The number of messages that entered throug
5293  * FIC1
5294  */
5295 #define XSEM_REG_MSG_NUM_FIC1                                   0x280004
5296 /*
5297  * [ST 24] Statistics register. The number of messages that were sent t
5298  * FOC0
5299  */
5300 #define XSEM_REG_MSG_NUM_FOC0                                   0x280008
5301 /*
5302  * [ST 24] Statistics register. The number of messages that were sent t
5303  * FOC1
5304  */
5305 #define XSEM_REG_MSG_NUM_FOC1                                   0x28000c
5306 /*
5307  * [ST 24] Statistics register. The number of messages that were sent t
5308  * FOC2
5309  */
5310 #define XSEM_REG_MSG_NUM_FOC2                                   0x280010
5311 /*
5312  * [ST 24] Statistics register. The number of messages that were sent t
5313  * FOC3
5314  */
5315 #define XSEM_REG_MSG_NUM_FOC3                                   0x280014
5316 /*
5317  * [RW 1] Disables input messages from the passive buffer May be update
5318  * during run_time by the microcode
5319  */
5320 #define XSEM_REG_PAS_DISABLE                                    0x28024c
5321 /* [WB 128] Debug only. Passive buffer memory */
5322 #define XSEM_REG_PASSIVE_BUFFER                                 0x282000
5323 /* [WB 46] pram memory. B45 is parity; b[44:0] - data. */
5324 #define XSEM_REG_PRAM                                           0x2c0000
5325 /* [R 16] Valid sleeping threads indication have bit per thread */
5326 #define XSEM_REG_SLEEP_THREADS_VALID                            0x28026c
5327 /* [R 1] EXT_STORE FIFO is empty in sem_slow_ls_ext */
5328 #define XSEM_REG_SLOW_EXT_STORE_EMPTY                           0x2802a0
5329 /* [RW 16] List of free threads . There is a bit per thread. */
5330 #define XSEM_REG_THREADS_LIST                                   0x2802e4
5331 /* [RW 3] The arbitration scheme of time_slot 0 */
5332 #define XSEM_REG_TS_0_AS                                        0x280038
5333 /* [RW 3] The arbitration scheme of time_slot 10 */
5334 #define XSEM_REG_TS_10_AS                                       0x280060
5335 /* [RW 3] The arbitration scheme of time_slot 11 */
5336 #define XSEM_REG_TS_11_AS                                       0x280064
5337 /* [RW 3] The arbitration scheme of time_slot 12 */
5338 #define XSEM_REG_TS_12_AS                                       0x280068
5339 /* [RW 3] The arbitration scheme of time_slot 13 */
5340 #define XSEM_REG_TS_13_AS                                       0x28006c
5341 /* [RW 3] The arbitration scheme of time_slot 14 */
5342 #define XSEM_REG_TS_14_AS                                       0x280070
5343 /* [RW 3] The arbitration scheme of time_slot 15 */
5344 #define XSEM_REG_TS_15_AS                                       0x280074
5345 /* [RW 3] The arbitration scheme of time_slot 16 */
5346 #define XSEM_REG_TS_16_AS                                       0x280078
5347 /* [RW 3] The arbitration scheme of time_slot 17 */
5348 #define XSEM_REG_TS_17_AS                                       0x28007c
5349 /* [RW 3] The arbitration scheme of time_slot 18 */
5350 #define XSEM_REG_TS_18_AS                                       0x280080
5351 /* [RW 3] The arbitration scheme of time_slot 1 */
5352 #define XSEM_REG_TS_1_AS                                        0x28003c
5353 /* [RW 3] The arbitration scheme of time_slot 2 */
5354 #define XSEM_REG_TS_2_AS                                        0x280040
5355 /* [RW 3] The arbitration scheme of time_slot 3 */
5356 #define XSEM_REG_TS_3_AS                                        0x280044
5357 /* [RW 3] The arbitration scheme of time_slot 4 */
5358 #define XSEM_REG_TS_4_AS                                        0x280048
5359 /* [RW 3] The arbitration scheme of time_slot 5 */
5360 #define XSEM_REG_TS_5_AS                                        0x28004c
5361 /* [RW 3] The arbitration scheme of time_slot 6 */
5362 #define XSEM_REG_TS_6_AS                                        0x280050
5363 /* [RW 3] The arbitration scheme of time_slot 7 */
5364 #define XSEM_REG_TS_7_AS                                        0x280054
5365 /* [RW 3] The arbitration scheme of time_slot 8 */
5366 #define XSEM_REG_TS_8_AS                                        0x280058
5367 /* [RW 3] The arbitration scheme of time_slot 9 */
5368 #define XSEM_REG_TS_9_AS                                        0x28005c
5369 /* [RW 32] Interrupt mask register #0 read/write */
5370 #define XSEM_REG_XSEM_INT_MASK_0                                0x280110
5371 #define XSEM_REG_XSEM_INT_MASK_1                                0x280120
5372 /* [R 32] Interrupt register #0 read */
5373 #define XSEM_REG_XSEM_INT_STS_0                                 0x280104
5374 #define XSEM_REG_XSEM_INT_STS_1                                 0x280114
5375 /* [RW 32] Parity mask register #0 read/write */
5376 #define XSEM_REG_XSEM_PRTY_MASK_0                               0x280130
5377 #define XSEM_REG_XSEM_PRTY_MASK_1                               0x280140
5378 /* [R 32] Parity register #0 read */
5379 #define XSEM_REG_XSEM_PRTY_STS_0                                0x280124
5380 #define XSEM_REG_XSEM_PRTY_STS_1                                0x280134
5381 #define MCPR_NVM_ACCESS_ENABLE_EN                               (1L<<0)
5382 #define MCPR_NVM_ACCESS_ENABLE_WR_EN                            (1L<<1)
5383 #define MCPR_NVM_ADDR_NVM_ADDR_VALUE                            (0xffffffL<<0)
5384 #define MCPR_NVM_CFG4_FLASH_SIZE                                (0x7L<<0)
5385 #define MCPR_NVM_COMMAND_DOIT                                   (1L<<4)
5386 #define MCPR_NVM_COMMAND_DONE                                   (1L<<3)
5387 #define MCPR_NVM_COMMAND_FIRST                                  (1L<<7)
5388 #define MCPR_NVM_COMMAND_LAST                                   (1L<<8)
5389 #define MCPR_NVM_COMMAND_WR                                     (1L<<5)
5390 #define MCPR_NVM_SW_ARB_ARB_ARB1                                (1L<<9)
5391 #define MCPR_NVM_SW_ARB_ARB_REQ_CLR1                            (1L<<5)
5392 #define MCPR_NVM_SW_ARB_ARB_REQ_SET1                            (1L<<1)
5393 #define BIGMAC_REGISTER_BMAC_CONTROL                            (0x00<<3)
5394 #define BIGMAC_REGISTER_BMAC_XGXS_CONTROL                       (0x01<<3)
5395 #define BIGMAC_REGISTER_CNT_MAX_SIZE                            (0x05<<3)
5396 #define BIGMAC_REGISTER_RX_CONTROL                              (0x21<<3)
5397 #define BIGMAC_REGISTER_RX_LLFC_MSG_FLDS                        (0x46<<3)
5398 #define BIGMAC_REGISTER_RX_MAX_SIZE                             (0x23<<3)
5399 #define BIGMAC_REGISTER_RX_STAT_GR64                            (0x26<<3)
5400 #define BIGMAC_REGISTER_RX_STAT_GRIPJ                           (0x42<<3)
5401 #define BIGMAC_REGISTER_TX_CONTROL                              (0x07<<3)
5402 #define BIGMAC_REGISTER_TX_MAX_SIZE                             (0x09<<3)
5403 #define BIGMAC_REGISTER_TX_PAUSE_THRESHOLD                      (0x0A<<3)
5404 #define BIGMAC_REGISTER_TX_SOURCE_ADDR                          (0x08<<3)
5405 #define BIGMAC_REGISTER_TX_STAT_GTBYT                           (0x20<<3)
5406 #define BIGMAC_REGISTER_TX_STAT_GTPKT                           (0x0C<<3)
5407 #define BIGMAC2_REGISTER_BMAC_CONTROL                           (0x00<<3)
5408 #define BIGMAC2_REGISTER_BMAC_XGXS_CONTROL                      (0x01<<3)
5409 #define BIGMAC2_REGISTER_PFC_CONTROL                            (0x06<<3)
5410 #define BIGMAC2_REGISTER_RX_CONTROL                             (0x3A<<3)
5411 #define BIGMAC2_REGISTER_RX_LLFC_MSG_FLDS                       (0x62<<3)
5412 #define BIGMAC2_REGISTER_RX_MAX_SIZE                            (0x3C<<3)
5413 #define BIGMAC2_REGISTER_TX_CONTROL                             (0x1C<<3)
5414 #define BIGMAC2_REGISTER_TX_MAX_SIZE                            (0x1E<<3)
5415 #define BIGMAC2_REGISTER_TX_SOURCE_ADDR                         (0x1D<<3)
5416 #define EMAC_LED_1000MB_OVERRIDE                                (1L<<1)
5417 #define EMAC_LED_100MB_OVERRIDE                                 (1L<<2)
5418 #define EMAC_LED_10MB_OVERRIDE                                  (1L<<3)
5419 #define EMAC_LED_2500MB_OVERRIDE                                (1L<<12)
5420 #define EMAC_LED_OVERRIDE                                       (1L<<0)
5421 #define EMAC_LED_TRAFFIC                                        (1L<<6)
5422 #define EMAC_MDIO_COMM_COMMAND_ADDRESS                          (0L<<26)
5423 #define EMAC_MDIO_COMM_COMMAND_READ_45                          (3L<<26)
5424 #define EMAC_MDIO_COMM_COMMAND_WRITE_45                         (1L<<26)
5425 #define EMAC_MDIO_COMM_DATA                                     (0xffffL<<0)
5426 #define EMAC_MDIO_COMM_START_BUSY                               (1L<<29)
5427 #define EMAC_MDIO_MODE_AUTO_POLL                                (1L<<4)
5428 #define EMAC_MDIO_MODE_CLAUSE_45                                (1<<31)
5429 #define EMAC_MDIO_MODE_CLOCK_CNT                                (0x3fL<<16)
5430 #define EMAC_MDIO_MODE_CLOCK_CNT_BITSHIFT                       16
5431 #define EMAC_MODE_25G_MODE                                      (1L<<5)
5432 #define EMAC_MODE_HALF_DUPLEX                                   (1L<<1)
5433 #define EMAC_MODE_PORT_GMII                                     (2L<<2)
5434 #define EMAC_MODE_PORT_MII                                      (1L<<2)
5435 #define EMAC_MODE_PORT_MII_10M                                  (3L<<2)
5436 #define EMAC_MODE_RESET                                         (1L<<0)
5437 #define EMAC_REG_EMAC_LED                                       0xc
5438 #define EMAC_REG_EMAC_MAC_MATCH                                 0x10
5439 #define EMAC_REG_EMAC_MDIO_COMM                                 0xac
5440 #define EMAC_REG_EMAC_MDIO_MODE                                 0xb4
5441 #define EMAC_REG_EMAC_MODE                                      0x0
5442 #define EMAC_REG_EMAC_RX_MODE                                   0xc8
5443 #define EMAC_REG_EMAC_RX_MTU_SIZE                               0x9c
5444 #define EMAC_REG_EMAC_RX_STAT_AC                                0x180
5445 #define EMAC_REG_EMAC_RX_STAT_AC_28                             0x1f4
5446 #define EMAC_REG_EMAC_RX_STAT_AC_COUNT                          23
5447 #define EMAC_REG_EMAC_TX_MODE                                   0xbc
5448 #define EMAC_REG_EMAC_TX_STAT_AC                                0x280
5449 #define EMAC_REG_EMAC_TX_STAT_AC_COUNT                          22
5450 #define EMAC_RX_MODE_FLOW_EN                                    (1L<<2)
5451 #define EMAC_RX_MODE_KEEP_VLAN_TAG                              (1L<<10)
5452 #define EMAC_RX_MODE_PROMISCUOUS                                (1L<<8)
5453 #define EMAC_RX_MODE_RESET                                      (1L<<0)
5454 #define EMAC_RX_MTU_SIZE_JUMBO_ENA                              (1<<31)
5455 #define EMAC_TX_MODE_EXT_PAUSE_EN                               (1L<<3)
5456 #define EMAC_TX_MODE_FLOW_EN                                    (1L<<4)
5457 #define EMAC_TX_MODE_RESET                                      (1L<<0)
5458 #define MISC_REGISTERS_GPIO_0                                   0
5459 #define MISC_REGISTERS_GPIO_1                                   1
5460 #define MISC_REGISTERS_GPIO_2                                   2
5461 #define MISC_REGISTERS_GPIO_3                                   3
5462 #define MISC_REGISTERS_GPIO_CLR_POS                             16
5463 #define MISC_REGISTERS_GPIO_FLOAT                               (0xffL<<24)
5464 #define MISC_REGISTERS_GPIO_FLOAT_POS                           24
5465 #define MISC_REGISTERS_GPIO_HIGH                                1
5466 #define MISC_REGISTERS_GPIO_INPUT_HI_Z                          2
5467 #define MISC_REGISTERS_GPIO_INT_CLR_POS                         24
5468 #define MISC_REGISTERS_GPIO_INT_OUTPUT_CLR                      0
5469 #define MISC_REGISTERS_GPIO_INT_OUTPUT_SET                      1
5470 #define MISC_REGISTERS_GPIO_INT_SET_POS                         16
5471 #define MISC_REGISTERS_GPIO_LOW                                 0
5472 #define MISC_REGISTERS_GPIO_OUTPUT_HIGH                         1
5473 #define MISC_REGISTERS_GPIO_OUTPUT_LOW                          0
5474 #define MISC_REGISTERS_GPIO_PORT_SHIFT                          4
5475 #define MISC_REGISTERS_GPIO_SET_POS                             8
5476 #define MISC_REGISTERS_RESET_REG_1_CLEAR                        0x588
5477 #define MISC_REGISTERS_RESET_REG_1_RST_NIG                      (0x1<<7)
5478 #define MISC_REGISTERS_RESET_REG_1_SET                          0x584
5479 #define MISC_REGISTERS_RESET_REG_2_CLEAR                        0x598
5480 #define MISC_REGISTERS_RESET_REG_2_RST_BMAC0                    (0x1<<0)
5481 #define MISC_REGISTERS_RESET_REG_2_RST_EMAC0_HARD_CORE          (0x1<<14)
5482 #define MISC_REGISTERS_RESET_REG_2_SET                          0x594
5483 #define MISC_REGISTERS_RESET_REG_3_CLEAR                        0x5a8
5484 #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_SERDES0_IDDQ    (0x1<<1)
5485 #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_SERDES0_PWRDWN  (0x1<<2)
5486 #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_SERDES0_PWRDWN_SD (0x1<<3)
5487 #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_SERDES0_RSTB_HW (0x1<<0)
5488 #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_XGXS0_IDDQ      (0x1<<5)
5489 #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_XGXS0_PWRDWN    (0x1<<6)
5490 #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_XGXS0_PWRDWN_SD (0x1<<7)
5491 #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_XGXS0_RSTB_HW   (0x1<<4)
5492 #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_XGXS0_TXD_FIFO_RSTB (0x1<<8)
5493 #define MISC_REGISTERS_RESET_REG_3_SET                          0x5a4
5494 #define MISC_REGISTERS_SPIO_4                                   4
5495 #define MISC_REGISTERS_SPIO_5                                   5
5496 #define MISC_REGISTERS_SPIO_7                                   7
5497 #define MISC_REGISTERS_SPIO_CLR_POS                             16
5498 #define MISC_REGISTERS_SPIO_FLOAT                               (0xffL<<24)
5499 #define MISC_REGISTERS_SPIO_FLOAT_POS                           24
5500 #define MISC_REGISTERS_SPIO_INPUT_HI_Z                          2
5501 #define MISC_REGISTERS_SPIO_INT_OLD_SET_POS                     16
5502 #define MISC_REGISTERS_SPIO_OUTPUT_HIGH                         1
5503 #define MISC_REGISTERS_SPIO_OUTPUT_LOW                          0
5504 #define MISC_REGISTERS_SPIO_SET_POS                             8
5505 #define HW_LOCK_MAX_RESOURCE_VALUE                              31
5506 #define HW_LOCK_RESOURCE_GPIO                                   1
5507 #define HW_LOCK_RESOURCE_MDIO                                   0
5508 #define HW_LOCK_RESOURCE_PORT0_ATT_MASK                         3
5509 #define HW_LOCK_RESOURCE_SPIO                                   2
5510 #define HW_LOCK_RESOURCE_UNDI                                   5
5511 #define PRS_FLAG_OVERETH_IPV4                                   1
5512 #define AEU_INPUTS_ATTN_BITS_BRB_PARITY_ERROR                   (1UL<<18)
5513 #define AEU_INPUTS_ATTN_BITS_CCM_HW_INTERRUPT                   (1UL<<31)
5514 #define AEU_INPUTS_ATTN_BITS_CDU_HW_INTERRUPT                   (1UL<<9)
5515 #define AEU_INPUTS_ATTN_BITS_CDU_PARITY_ERROR                   (1UL<<8)
5516 #define AEU_INPUTS_ATTN_BITS_CFC_HW_INTERRUPT                   (1UL<<7)
5517 #define AEU_INPUTS_ATTN_BITS_CFC_PARITY_ERROR                   (1UL<<6)
5518 #define AEU_INPUTS_ATTN_BITS_CSDM_HW_INTERRUPT                  (1UL<<29)
5519 #define AEU_INPUTS_ATTN_BITS_CSDM_PARITY_ERROR                  (1UL<<28)
5520 #define AEU_INPUTS_ATTN_BITS_CSEMI_HW_INTERRUPT                 (1UL<<1)
5521 #define AEU_INPUTS_ATTN_BITS_CSEMI_PARITY_ERROR                 (1UL<<0)
5522 #define AEU_INPUTS_ATTN_BITS_DEBUG_PARITY_ERROR                 (1UL<<18)
5523 #define AEU_INPUTS_ATTN_BITS_DMAE_HW_INTERRUPT                  (1UL<<11)
5524 #define AEU_INPUTS_ATTN_BITS_DOORBELLQ_HW_INTERRUPT             (1UL<<13)
5525 #define AEU_INPUTS_ATTN_BITS_DOORBELLQ_PARITY_ERROR             (1UL<<12)
5526 #define AEU_INPUTS_ATTN_BITS_GPIO3_FUNCTION_0                   (1UL<<5)
5527 #define AEU_INPUTS_ATTN_BITS_GPIO3_FUNCTION_1                   (1UL<<9)
5528 #define AEU_INPUTS_ATTN_BITS_IGU_PARITY_ERROR                   (1UL<<12)
5529 #define AEU_INPUTS_ATTN_BITS_MISC_HW_INTERRUPT                  (1UL<<15)
5530 #define AEU_INPUTS_ATTN_BITS_MISC_PARITY_ERROR                  (1UL<<14)
5531 #define AEU_INPUTS_ATTN_BITS_PARSER_PARITY_ERROR                (1UL<<20)
5532 #define AEU_INPUTS_ATTN_BITS_PBCLIENT_PARITY_ERROR              (1UL<<0)
5533 #define AEU_INPUTS_ATTN_BITS_PBF_HW_INTERRUPT                   (1UL<<31)
5534 #define AEU_INPUTS_ATTN_BITS_PXP_HW_INTERRUPT                   (1UL<<3)
5535 #define AEU_INPUTS_ATTN_BITS_PXP_PARITY_ERROR                   (1UL<<2)
5536 #define AEU_INPUTS_ATTN_BITS_PXPPCICLOCKCLIENT_HW_INTERRUPT     (1UL<<5)
5537 #define AEU_INPUTS_ATTN_BITS_PXPPCICLOCKCLIENT_PARITY_ERROR     (1UL<<4)
5538 #define AEU_INPUTS_ATTN_BITS_QM_HW_INTERRUPT                    (1UL<<3)
5539 #define AEU_INPUTS_ATTN_BITS_QM_PARITY_ERROR                    (1UL<<2)
5540 #define AEU_INPUTS_ATTN_BITS_SEARCHER_PARITY_ERROR              (1UL<<22)
5541 #define AEU_INPUTS_ATTN_BITS_SPIO5                              (1UL<<15)
5542 #define AEU_INPUTS_ATTN_BITS_TCM_HW_INTERRUPT                   (1UL<<27)
5543 #define AEU_INPUTS_ATTN_BITS_TIMERS_HW_INTERRUPT                (1UL<<5)
5544 #define AEU_INPUTS_ATTN_BITS_TSDM_HW_INTERRUPT                  (1UL<<25)
5545 #define AEU_INPUTS_ATTN_BITS_TSDM_PARITY_ERROR                  (1UL<<24)
5546 #define AEU_INPUTS_ATTN_BITS_TSEMI_HW_INTERRUPT                 (1UL<<29)
5547 #define AEU_INPUTS_ATTN_BITS_TSEMI_PARITY_ERROR                 (1UL<<28)
5548 #define AEU_INPUTS_ATTN_BITS_UCM_HW_INTERRUPT                   (1UL<<23)
5549 #define AEU_INPUTS_ATTN_BITS_UPB_HW_INTERRUPT                   (1UL<<27)
5550 #define AEU_INPUTS_ATTN_BITS_UPB_PARITY_ERROR                   (1UL<<26)
5551 #define AEU_INPUTS_ATTN_BITS_USDM_HW_INTERRUPT                  (1UL<<21)
5552 #define AEU_INPUTS_ATTN_BITS_USDM_PARITY_ERROR                  (1UL<<20)
5553 #define AEU_INPUTS_ATTN_BITS_USEMI_HW_INTERRUPT                 (1UL<<25)
5554 #define AEU_INPUTS_ATTN_BITS_USEMI_PARITY_ERROR                 (1UL<<24)
5555 #define AEU_INPUTS_ATTN_BITS_VAUX_PCI_CORE_PARITY_ERROR         (1UL<<16)
5556 #define AEU_INPUTS_ATTN_BITS_XCM_HW_INTERRUPT                   (1UL<<9)
5557 #define AEU_INPUTS_ATTN_BITS_XSDM_HW_INTERRUPT                  (1UL<<7)
5558 #define AEU_INPUTS_ATTN_BITS_XSDM_PARITY_ERROR                  (1UL<<6)
5559 #define AEU_INPUTS_ATTN_BITS_XSEMI_HW_INTERRUPT                 (1UL<<11)
5560 #define AEU_INPUTS_ATTN_BITS_XSEMI_PARITY_ERROR                 (1UL<<10)
5561 #define RESERVED_GENERAL_ATTENTION_BIT_0        0
5562
5563 #define EVEREST_GEN_ATTN_IN_USE_MASK            0x3ffe0
5564 #define EVEREST_LATCHED_ATTN_IN_USE_MASK        0xffe00000
5565
5566 #define RESERVED_GENERAL_ATTENTION_BIT_6        6
5567 #define RESERVED_GENERAL_ATTENTION_BIT_7        7
5568 #define RESERVED_GENERAL_ATTENTION_BIT_8        8
5569 #define RESERVED_GENERAL_ATTENTION_BIT_9        9
5570 #define RESERVED_GENERAL_ATTENTION_BIT_10       10
5571 #define RESERVED_GENERAL_ATTENTION_BIT_11       11
5572 #define RESERVED_GENERAL_ATTENTION_BIT_12       12
5573 #define RESERVED_GENERAL_ATTENTION_BIT_13       13
5574 #define RESERVED_GENERAL_ATTENTION_BIT_14       14
5575 #define RESERVED_GENERAL_ATTENTION_BIT_15       15
5576 #define RESERVED_GENERAL_ATTENTION_BIT_16       16
5577 #define RESERVED_GENERAL_ATTENTION_BIT_17       17
5578 #define RESERVED_GENERAL_ATTENTION_BIT_18       18
5579 #define RESERVED_GENERAL_ATTENTION_BIT_19       19
5580 #define RESERVED_GENERAL_ATTENTION_BIT_20       20
5581 #define RESERVED_GENERAL_ATTENTION_BIT_21       21
5582
5583 /* storm asserts attention bits */
5584 #define TSTORM_FATAL_ASSERT_ATTENTION_BIT       RESERVED_GENERAL_ATTENTION_BIT_7
5585 #define USTORM_FATAL_ASSERT_ATTENTION_BIT       RESERVED_GENERAL_ATTENTION_BIT_8
5586 #define CSTORM_FATAL_ASSERT_ATTENTION_BIT       RESERVED_GENERAL_ATTENTION_BIT_9
5587 #define XSTORM_FATAL_ASSERT_ATTENTION_BIT       RESERVED_GENERAL_ATTENTION_BIT_10
5588
5589 /* mcp error attention bit */
5590 #define MCP_FATAL_ASSERT_ATTENTION_BIT  RESERVED_GENERAL_ATTENTION_BIT_11
5591
5592 /* E1H NIG status sync attention mapped to group 4-7*/
5593 #define LINK_SYNC_ATTENTION_BIT_FUNC_0  RESERVED_GENERAL_ATTENTION_BIT_12
5594 #define LINK_SYNC_ATTENTION_BIT_FUNC_1  RESERVED_GENERAL_ATTENTION_BIT_13
5595 #define LINK_SYNC_ATTENTION_BIT_FUNC_2  RESERVED_GENERAL_ATTENTION_BIT_14
5596 #define LINK_SYNC_ATTENTION_BIT_FUNC_3  RESERVED_GENERAL_ATTENTION_BIT_15
5597 #define LINK_SYNC_ATTENTION_BIT_FUNC_4  RESERVED_GENERAL_ATTENTION_BIT_16
5598 #define LINK_SYNC_ATTENTION_BIT_FUNC_5  RESERVED_GENERAL_ATTENTION_BIT_17
5599 #define LINK_SYNC_ATTENTION_BIT_FUNC_6  RESERVED_GENERAL_ATTENTION_BIT_18
5600 #define LINK_SYNC_ATTENTION_BIT_FUNC_7  RESERVED_GENERAL_ATTENTION_BIT_19
5601
5602 #define LATCHED_ATTN_RBCR                       23
5603 #define LATCHED_ATTN_RBCT                       24
5604 #define LATCHED_ATTN_RBCN                       25
5605 #define LATCHED_ATTN_RBCU                       26
5606 #define LATCHED_ATTN_RBCP                       27
5607 #define LATCHED_ATTN_TIMEOUT_GRC                28
5608 #define LATCHED_ATTN_RSVD_GRC                   29
5609 #define LATCHED_ATTN_ROM_PARITY_MCP             30
5610 #define LATCHED_ATTN_UM_RX_PARITY_MCP           31
5611 #define LATCHED_ATTN_UM_TX_PARITY_MCP           32
5612 #define LATCHED_ATTN_SCPAD_PARITY_MCP           33
5613
5614 #define GENERAL_ATTEN_WORD(atten_name)          ((94 + atten_name) / 32)
5615 #define GENERAL_ATTEN_OFFSET(atten_name)        \
5616         (1UL << ((94 + atten_name) % 32))
5617 /*
5618  * This file defines GRC base address for every block.
5619  * This file is included by chipsim, asm microcode and cpp microcode.
5620  * These values are used in Design.xml on regBase attribute
5621  * Use the base with the generated offsets of specific registers.
5622  */
5623
5624 #define GRCBASE_PXPCS           0x000000
5625 #define GRCBASE_PCICONFIG       0x002000
5626 #define GRCBASE_PCIREG          0x002400
5627 #define GRCBASE_EMAC0           0x008000
5628 #define GRCBASE_EMAC1           0x008400
5629 #define GRCBASE_DBU             0x008800
5630 #define GRCBASE_MISC            0x00A000
5631 #define GRCBASE_DBG             0x00C000
5632 #define GRCBASE_NIG             0x010000
5633 #define GRCBASE_XCM             0x020000
5634 #define GRCBASE_PRS             0x040000
5635 #define GRCBASE_SRCH            0x040400
5636 #define GRCBASE_TSDM            0x042000
5637 #define GRCBASE_TCM             0x050000
5638 #define GRCBASE_BRB1            0x060000
5639 #define GRCBASE_MCP             0x080000
5640 #define GRCBASE_UPB             0x0C1000
5641 #define GRCBASE_CSDM            0x0C2000
5642 #define GRCBASE_USDM            0x0C4000
5643 #define GRCBASE_CCM             0x0D0000
5644 #define GRCBASE_UCM             0x0E0000
5645 #define GRCBASE_CDU             0x101000
5646 #define GRCBASE_DMAE            0x102000
5647 #define GRCBASE_PXP             0x103000
5648 #define GRCBASE_CFC             0x104000
5649 #define GRCBASE_HC              0x108000
5650 #define GRCBASE_PXP2            0x120000
5651 #define GRCBASE_PBF             0x140000
5652 #define GRCBASE_XPB             0x161000
5653 #define GRCBASE_TIMERS          0x164000
5654 #define GRCBASE_XSDM            0x166000
5655 #define GRCBASE_QM              0x168000
5656 #define GRCBASE_DQ              0x170000
5657 #define GRCBASE_TSEM            0x180000
5658 #define GRCBASE_CSEM            0x200000
5659 #define GRCBASE_XSEM            0x280000
5660 #define GRCBASE_USEM            0x300000
5661 #define GRCBASE_MISC_AEU        GRCBASE_MISC
5662
5663 /* offset of configuration space in the pci core register */
5664 #define PCICFG_OFFSET                           0x2000
5665 #define PCICFG_VENDOR_ID_OFFSET                 0x00
5666 #define PCICFG_DEVICE_ID_OFFSET                 0x02
5667 #define PCICFG_COMMAND_OFFSET                   0x04
5668 #define PCICFG_COMMAND_IO_SPACE                 (1<<0)
5669 #define PCICFG_COMMAND_MEM_SPACE                (1<<1)
5670 #define PCICFG_COMMAND_BUS_MASTER               (1<<2)
5671 #define PCICFG_COMMAND_SPECIAL_CYCLES           (1<<3)
5672 #define PCICFG_COMMAND_MWI_CYCLES               (1<<4)
5673 #define PCICFG_COMMAND_VGA_SNOOP                (1<<5)
5674 #define PCICFG_COMMAND_PERR_ENA                 (1<<6)
5675 #define PCICFG_COMMAND_STEPPING                 (1<<7)
5676 #define PCICFG_COMMAND_SERR_ENA                 (1<<8)
5677 #define PCICFG_COMMAND_FAST_B2B                 (1<<9)
5678 #define PCICFG_COMMAND_INT_DISABLE              (1<<10)
5679 #define PCICFG_COMMAND_RESERVED                 (0x1f<<11)
5680 #define PCICFG_STATUS_OFFSET                    0x06
5681 #define PCICFG_REVESION_ID_OFFSET               0x08
5682 #define PCICFG_CACHE_LINE_SIZE                  0x0c
5683 #define PCICFG_LATENCY_TIMER                    0x0d
5684 #define PCICFG_BAR_1_LOW                        0x10
5685 #define PCICFG_BAR_1_HIGH                       0x14
5686 #define PCICFG_BAR_2_LOW                        0x18
5687 #define PCICFG_BAR_2_HIGH                       0x1c
5688 #define PCICFG_SUBSYSTEM_VENDOR_ID_OFFSET       0x2c
5689 #define PCICFG_SUBSYSTEM_ID_OFFSET              0x2e
5690 #define PCICFG_INT_LINE                         0x3c
5691 #define PCICFG_INT_PIN                          0x3d
5692 #define PCICFG_PM_CAPABILITY                    0x48
5693 #define PCICFG_PM_CAPABILITY_VERSION            (0x3<<16)
5694 #define PCICFG_PM_CAPABILITY_CLOCK              (1<<19)
5695 #define PCICFG_PM_CAPABILITY_RESERVED           (1<<20)
5696 #define PCICFG_PM_CAPABILITY_DSI                (1<<21)
5697 #define PCICFG_PM_CAPABILITY_AUX_CURRENT        (0x7<<22)
5698 #define PCICFG_PM_CAPABILITY_D1_SUPPORT         (1<<25)
5699 #define PCICFG_PM_CAPABILITY_D2_SUPPORT         (1<<26)
5700 #define PCICFG_PM_CAPABILITY_PME_IN_D0          (1<<27)
5701 #define PCICFG_PM_CAPABILITY_PME_IN_D1          (1<<28)
5702 #define PCICFG_PM_CAPABILITY_PME_IN_D2          (1<<29)
5703 #define PCICFG_PM_CAPABILITY_PME_IN_D3_HOT      (1<<30)
5704 #define PCICFG_PM_CAPABILITY_PME_IN_D3_COLD     (1<<31)
5705 #define PCICFG_PM_CSR_OFFSET                    0x4c
5706 #define PCICFG_PM_CSR_STATE                     (0x3<<0)
5707 #define PCICFG_PM_CSR_PME_ENABLE                (1<<8)
5708 #define PCICFG_PM_CSR_PME_STATUS                (1<<15)
5709 #define PCICFG_MSI_CAP_ID_OFFSET                0x58
5710 #define PCICFG_MSI_CONTROL_ENABLE               (0x1<<16)
5711 #define PCICFG_MSI_CONTROL_MCAP                 (0x7<<17)
5712 #define PCICFG_MSI_CONTROL_MENA                 (0x7<<20)
5713 #define PCICFG_MSI_CONTROL_64_BIT_ADDR_CAP      (0x1<<23)
5714 #define PCICFG_MSI_CONTROL_MSI_PVMASK_CAPABLE   (0x1<<24)
5715 #define PCICFG_GRC_ADDRESS                      0x78
5716 #define PCICFG_GRC_DATA                         0x80
5717 #define PCICFG_MSIX_CAP_ID_OFFSET               0xa0
5718 #define PCICFG_MSIX_CONTROL_TABLE_SIZE          (0x7ff<<16)
5719 #define PCICFG_MSIX_CONTROL_RESERVED            (0x7<<27)
5720 #define PCICFG_MSIX_CONTROL_FUNC_MASK           (0x1<<30)
5721 #define PCICFG_MSIX_CONTROL_MSIX_ENABLE         (0x1<<31)
5722
5723 #define PCICFG_DEVICE_CONTROL                   0xb4
5724 #define PCICFG_DEVICE_STATUS                    0xb6
5725 #define PCICFG_DEVICE_STATUS_CORR_ERR_DET       (1<<0)
5726 #define PCICFG_DEVICE_STATUS_NON_FATAL_ERR_DET  (1<<1)
5727 #define PCICFG_DEVICE_STATUS_FATAL_ERR_DET      (1<<2)
5728 #define PCICFG_DEVICE_STATUS_UNSUP_REQ_DET      (1<<3)
5729 #define PCICFG_DEVICE_STATUS_AUX_PWR_DET        (1<<4)
5730 #define PCICFG_DEVICE_STATUS_NO_PEND            (1<<5)
5731 #define PCICFG_LINK_CONTROL                     0xbc
5732
5733 #define BAR_USTORM_INTMEM                       0x400000
5734 #define BAR_CSTORM_INTMEM                       0x410000
5735 #define BAR_XSTORM_INTMEM                       0x420000
5736 #define BAR_TSTORM_INTMEM                       0x430000
5737
5738 /* for accessing the IGU in case of status block ACK */
5739 #define BAR_IGU_INTMEM                          0x440000
5740
5741 #define BAR_DOORBELL_OFFSET                     0x800000
5742
5743 #define BAR_ME_REGISTER                         0x450000
5744 #define ME_REG_PF_NUM                           (7L<<0) /* Relative PF Num */
5745 #define ME_REG_PF_NUM_SHIFT                     0
5746 #define ME_REG_ABS_PF_NUM                       (7L<<16) /* Absolute PF Num */
5747 #define ME_REG_ABS_PF_NUM_SHIFT                 16
5748
5749 /* config_2 offset */
5750 #define GRC_CONFIG_2_SIZE_REG                   0x408
5751 #define PCI_CONFIG_2_BAR1_SIZE                  (0xfL<<0)
5752 #define PCI_CONFIG_2_BAR1_SIZE_DISABLED         (0L<<0)
5753 #define PCI_CONFIG_2_BAR1_SIZE_64K              (1L<<0)
5754 #define PCI_CONFIG_2_BAR1_SIZE_128K             (2L<<0)
5755 #define PCI_CONFIG_2_BAR1_SIZE_256K             (3L<<0)
5756 #define PCI_CONFIG_2_BAR1_SIZE_512K             (4L<<0)
5757 #define PCI_CONFIG_2_BAR1_SIZE_1M               (5L<<0)
5758 #define PCI_CONFIG_2_BAR1_SIZE_2M               (6L<<0)
5759 #define PCI_CONFIG_2_BAR1_SIZE_4M               (7L<<0)
5760 #define PCI_CONFIG_2_BAR1_SIZE_8M               (8L<<0)
5761 #define PCI_CONFIG_2_BAR1_SIZE_16M              (9L<<0)
5762 #define PCI_CONFIG_2_BAR1_SIZE_32M              (10L<<0)
5763 #define PCI_CONFIG_2_BAR1_SIZE_64M              (11L<<0)
5764 #define PCI_CONFIG_2_BAR1_SIZE_128M             (12L<<0)
5765 #define PCI_CONFIG_2_BAR1_SIZE_256M             (13L<<0)
5766 #define PCI_CONFIG_2_BAR1_SIZE_512M             (14L<<0)
5767 #define PCI_CONFIG_2_BAR1_SIZE_1G               (15L<<0)
5768 #define PCI_CONFIG_2_BAR1_64ENA                 (1L<<4)
5769 #define PCI_CONFIG_2_EXP_ROM_RETRY              (1L<<5)
5770 #define PCI_CONFIG_2_CFG_CYCLE_RETRY            (1L<<6)
5771 #define PCI_CONFIG_2_FIRST_CFG_DONE             (1L<<7)
5772 #define PCI_CONFIG_2_EXP_ROM_SIZE               (0xffL<<8)
5773 #define PCI_CONFIG_2_EXP_ROM_SIZE_DISABLED      (0L<<8)
5774 #define PCI_CONFIG_2_EXP_ROM_SIZE_2K            (1L<<8)
5775 #define PCI_CONFIG_2_EXP_ROM_SIZE_4K            (2L<<8)
5776 #define PCI_CONFIG_2_EXP_ROM_SIZE_8K            (3L<<8)
5777 #define PCI_CONFIG_2_EXP_ROM_SIZE_16K           (4L<<8)
5778 #define PCI_CONFIG_2_EXP_ROM_SIZE_32K           (5L<<8)
5779 #define PCI_CONFIG_2_EXP_ROM_SIZE_64K           (6L<<8)
5780 #define PCI_CONFIG_2_EXP_ROM_SIZE_128K          (7L<<8)
5781 #define PCI_CONFIG_2_EXP_ROM_SIZE_256K          (8L<<8)
5782 #define PCI_CONFIG_2_EXP_ROM_SIZE_512K          (9L<<8)
5783 #define PCI_CONFIG_2_EXP_ROM_SIZE_1M            (10L<<8)
5784 #define PCI_CONFIG_2_EXP_ROM_SIZE_2M            (11L<<8)
5785 #define PCI_CONFIG_2_EXP_ROM_SIZE_4M            (12L<<8)
5786 #define PCI_CONFIG_2_EXP_ROM_SIZE_8M            (13L<<8)
5787 #define PCI_CONFIG_2_EXP_ROM_SIZE_16M           (14L<<8)
5788 #define PCI_CONFIG_2_EXP_ROM_SIZE_32M           (15L<<8)
5789 #define PCI_CONFIG_2_BAR_PREFETCH               (1L<<16)
5790 #define PCI_CONFIG_2_RESERVED0                  (0x7fffL<<17)
5791
5792 /* config_3 offset */
5793 #define GRC_CONFIG_3_SIZE_REG                   0x40c
5794 #define PCI_CONFIG_3_STICKY_BYTE                (0xffL<<0)
5795 #define PCI_CONFIG_3_FORCE_PME                  (1L<<24)
5796 #define PCI_CONFIG_3_PME_STATUS                 (1L<<25)
5797 #define PCI_CONFIG_3_PME_ENABLE                 (1L<<26)
5798 #define PCI_CONFIG_3_PM_STATE                   (0x3L<<27)
5799 #define PCI_CONFIG_3_VAUX_PRESET                (1L<<30)
5800 #define PCI_CONFIG_3_PCI_POWER                  (1L<<31)
5801
5802 #define GRC_BAR2_CONFIG                         0x4e0
5803 #define PCI_CONFIG_2_BAR2_SIZE                  (0xfL<<0)
5804 #define PCI_CONFIG_2_BAR2_SIZE_DISABLED         (0L<<0)
5805 #define PCI_CONFIG_2_BAR2_SIZE_64K              (1L<<0)
5806 #define PCI_CONFIG_2_BAR2_SIZE_128K             (2L<<0)
5807 #define PCI_CONFIG_2_BAR2_SIZE_256K             (3L<<0)
5808 #define PCI_CONFIG_2_BAR2_SIZE_512K             (4L<<0)
5809 #define PCI_CONFIG_2_BAR2_SIZE_1M               (5L<<0)
5810 #define PCI_CONFIG_2_BAR2_SIZE_2M               (6L<<0)
5811 #define PCI_CONFIG_2_BAR2_SIZE_4M               (7L<<0)
5812 #define PCI_CONFIG_2_BAR2_SIZE_8M               (8L<<0)
5813 #define PCI_CONFIG_2_BAR2_SIZE_16M              (9L<<0)
5814 #define PCI_CONFIG_2_BAR2_SIZE_32M              (10L<<0)
5815 #define PCI_CONFIG_2_BAR2_SIZE_64M              (11L<<0)
5816 #define PCI_CONFIG_2_BAR2_SIZE_128M             (12L<<0)
5817 #define PCI_CONFIG_2_BAR2_SIZE_256M             (13L<<0)
5818 #define PCI_CONFIG_2_BAR2_SIZE_512M             (14L<<0)
5819 #define PCI_CONFIG_2_BAR2_SIZE_1G               (15L<<0)
5820 #define PCI_CONFIG_2_BAR2_64ENA                 (1L<<4)
5821
5822 #define PCI_PM_DATA_A                                   0x410
5823 #define PCI_PM_DATA_B                                   0x414
5824 #define PCI_ID_VAL1                                     0x434
5825 #define PCI_ID_VAL2                                     0x438
5826
5827 #define MDIO_REG_BANK_CL73_IEEEB0                       0x0
5828 #define MDIO_CL73_IEEEB0_CL73_AN_CONTROL                0x0
5829 #define MDIO_CL73_IEEEB0_CL73_AN_CONTROL_RESTART_AN     0x0200
5830 #define MDIO_CL73_IEEEB0_CL73_AN_CONTROL_AN_EN          0x1000
5831 #define MDIO_CL73_IEEEB0_CL73_AN_CONTROL_MAIN_RST       0x8000
5832
5833 #define MDIO_REG_BANK_CL73_IEEEB1                       0x10
5834 #define MDIO_CL73_IEEEB1_AN_ADV1                        0x00
5835 #define MDIO_CL73_IEEEB1_AN_ADV1_PAUSE                  0x0400
5836 #define MDIO_CL73_IEEEB1_AN_ADV1_ASYMMETRIC             0x0800
5837 #define MDIO_CL73_IEEEB1_AN_ADV1_PAUSE_BOTH             0x0C00
5838 #define MDIO_CL73_IEEEB1_AN_ADV1_PAUSE_MASK             0x0C00
5839 #define MDIO_CL73_IEEEB1_AN_ADV2                        0x01
5840 #define MDIO_CL73_IEEEB1_AN_ADV2_ADVR_1000M             0x0000
5841 #define MDIO_CL73_IEEEB1_AN_ADV2_ADVR_1000M_KX          0x0020
5842 #define MDIO_CL73_IEEEB1_AN_ADV2_ADVR_10G_KX4           0x0040
5843 #define MDIO_CL73_IEEEB1_AN_ADV2_ADVR_10G_KR            0x0080
5844 #define MDIO_CL73_IEEEB1_AN_LP_ADV1                     0x03
5845 #define MDIO_CL73_IEEEB1_AN_LP_ADV1_PAUSE               0x0400
5846 #define MDIO_CL73_IEEEB1_AN_LP_ADV1_ASYMMETRIC          0x0800
5847 #define MDIO_CL73_IEEEB1_AN_LP_ADV1_PAUSE_BOTH          0x0C00
5848 #define MDIO_CL73_IEEEB1_AN_LP_ADV1_PAUSE_MASK          0x0C00
5849
5850 #define MDIO_REG_BANK_RX0                               0x80b0
5851 #define MDIO_RX0_RX_STATUS                              0x10
5852 #define MDIO_RX0_RX_STATUS_SIGDET                       0x8000
5853 #define MDIO_RX0_RX_STATUS_RX_SEQ_DONE                  0x1000
5854 #define MDIO_RX0_RX_EQ_BOOST                            0x1c
5855 #define MDIO_RX0_RX_EQ_BOOST_EQUALIZER_CTRL_MASK        0x7
5856 #define MDIO_RX0_RX_EQ_BOOST_OFFSET_CTRL                0x10
5857
5858 #define MDIO_REG_BANK_RX1                               0x80c0
5859 #define MDIO_RX1_RX_EQ_BOOST                            0x1c
5860 #define MDIO_RX1_RX_EQ_BOOST_EQUALIZER_CTRL_MASK        0x7
5861 #define MDIO_RX1_RX_EQ_BOOST_OFFSET_CTRL                0x10
5862
5863 #define MDIO_REG_BANK_RX2                               0x80d0
5864 #define MDIO_RX2_RX_EQ_BOOST                            0x1c
5865 #define MDIO_RX2_RX_EQ_BOOST_EQUALIZER_CTRL_MASK        0x7
5866 #define MDIO_RX2_RX_EQ_BOOST_OFFSET_CTRL                0x10
5867
5868 #define MDIO_REG_BANK_RX3                               0x80e0
5869 #define MDIO_RX3_RX_EQ_BOOST                            0x1c
5870 #define MDIO_RX3_RX_EQ_BOOST_EQUALIZER_CTRL_MASK        0x7
5871 #define MDIO_RX3_RX_EQ_BOOST_OFFSET_CTRL                0x10
5872
5873 #define MDIO_REG_BANK_RX_ALL                            0x80f0
5874 #define MDIO_RX_ALL_RX_EQ_BOOST                         0x1c
5875 #define MDIO_RX_ALL_RX_EQ_BOOST_EQUALIZER_CTRL_MASK     0x7
5876 #define MDIO_RX_ALL_RX_EQ_BOOST_OFFSET_CTRL             0x10
5877
5878 #define MDIO_REG_BANK_TX0                               0x8060
5879 #define MDIO_TX0_TX_DRIVER                              0x17
5880 #define MDIO_TX0_TX_DRIVER_PREEMPHASIS_MASK             0xf000
5881 #define MDIO_TX0_TX_DRIVER_PREEMPHASIS_SHIFT            12
5882 #define MDIO_TX0_TX_DRIVER_IDRIVER_MASK                 0x0f00
5883 #define MDIO_TX0_TX_DRIVER_IDRIVER_SHIFT                8
5884 #define MDIO_TX0_TX_DRIVER_IPREDRIVER_MASK              0x00f0
5885 #define MDIO_TX0_TX_DRIVER_IPREDRIVER_SHIFT             4
5886 #define MDIO_TX0_TX_DRIVER_IFULLSPD_MASK                0x000e
5887 #define MDIO_TX0_TX_DRIVER_IFULLSPD_SHIFT               1
5888 #define MDIO_TX0_TX_DRIVER_ICBUF1T                      1
5889
5890 #define MDIO_REG_BANK_TX1                               0x8070
5891 #define MDIO_TX1_TX_DRIVER                              0x17
5892 #define MDIO_TX1_TX_DRIVER_PREEMPHASIS_MASK             0xf000
5893 #define MDIO_TX1_TX_DRIVER_PREEMPHASIS_SHIFT            12
5894 #define MDIO_TX1_TX_DRIVER_IDRIVER_MASK                 0x0f00
5895 #define MDIO_TX1_TX_DRIVER_IDRIVER_SHIFT                8
5896 #define MDIO_TX1_TX_DRIVER_IPREDRIVER_MASK              0x00f0
5897 #define MDIO_TX1_TX_DRIVER_IPREDRIVER_SHIFT             4
5898 #define MDIO_TX1_TX_DRIVER_IFULLSPD_MASK                0x000e
5899 #define MDIO_TX1_TX_DRIVER_IFULLSPD_SHIFT               1
5900 #define MDIO_TX1_TX_DRIVER_ICBUF1T                      1
5901
5902 #define MDIO_REG_BANK_TX2                               0x8080
5903 #define MDIO_TX2_TX_DRIVER                              0x17
5904 #define MDIO_TX2_TX_DRIVER_PREEMPHASIS_MASK             0xf000
5905 #define MDIO_TX2_TX_DRIVER_PREEMPHASIS_SHIFT            12
5906 #define MDIO_TX2_TX_DRIVER_IDRIVER_MASK                 0x0f00
5907 #define MDIO_TX2_TX_DRIVER_IDRIVER_SHIFT                8
5908 #define MDIO_TX2_TX_DRIVER_IPREDRIVER_MASK              0x00f0
5909 #define MDIO_TX2_TX_DRIVER_IPREDRIVER_SHIFT             4
5910 #define MDIO_TX2_TX_DRIVER_IFULLSPD_MASK                0x000e
5911 #define MDIO_TX2_TX_DRIVER_IFULLSPD_SHIFT               1
5912 #define MDIO_TX2_TX_DRIVER_ICBUF1T                      1
5913
5914 #define MDIO_REG_BANK_TX3                               0x8090
5915 #define MDIO_TX3_TX_DRIVER                              0x17
5916 #define MDIO_TX3_TX_DRIVER_PREEMPHASIS_MASK             0xf000
5917 #define MDIO_TX3_TX_DRIVER_PREEMPHASIS_SHIFT            12
5918 #define MDIO_TX3_TX_DRIVER_IDRIVER_MASK                 0x0f00
5919 #define MDIO_TX3_TX_DRIVER_IDRIVER_SHIFT                8
5920 #define MDIO_TX3_TX_DRIVER_IPREDRIVER_MASK              0x00f0
5921 #define MDIO_TX3_TX_DRIVER_IPREDRIVER_SHIFT             4
5922 #define MDIO_TX3_TX_DRIVER_IFULLSPD_MASK                0x000e
5923 #define MDIO_TX3_TX_DRIVER_IFULLSPD_SHIFT               1
5924 #define MDIO_TX3_TX_DRIVER_ICBUF1T                      1
5925
5926 #define MDIO_REG_BANK_XGXS_BLOCK0                       0x8000
5927 #define MDIO_BLOCK0_XGXS_CONTROL                        0x10
5928
5929 #define MDIO_REG_BANK_XGXS_BLOCK1                       0x8010
5930 #define MDIO_BLOCK1_LANE_CTRL0                          0x15
5931 #define MDIO_BLOCK1_LANE_CTRL1                          0x16
5932 #define MDIO_BLOCK1_LANE_CTRL2                          0x17
5933 #define MDIO_BLOCK1_LANE_PRBS                           0x19
5934
5935 #define MDIO_REG_BANK_XGXS_BLOCK2                       0x8100
5936 #define MDIO_XGXS_BLOCK2_RX_LN_SWAP                     0x10
5937 #define MDIO_XGXS_BLOCK2_RX_LN_SWAP_ENABLE              0x8000
5938 #define MDIO_XGXS_BLOCK2_RX_LN_SWAP_FORCE_ENABLE        0x4000
5939 #define MDIO_XGXS_BLOCK2_TX_LN_SWAP                     0x11
5940 #define MDIO_XGXS_BLOCK2_TX_LN_SWAP_ENABLE              0x8000
5941 #define MDIO_XGXS_BLOCK2_UNICORE_MODE_10G               0x14
5942 #define MDIO_XGXS_BLOCK2_UNICORE_MODE_10G_CX4_XGXS      0x0001
5943 #define MDIO_XGXS_BLOCK2_UNICORE_MODE_10G_HIGIG_XGXS    0x0010
5944 #define MDIO_XGXS_BLOCK2_TEST_MODE_LANE                 0x15
5945
5946 #define MDIO_REG_BANK_GP_STATUS                         0x8120
5947 #define MDIO_GP_STATUS_TOP_AN_STATUS1                   0x1B
5948 #define MDIO_GP_STATUS_TOP_AN_STATUS1_CL73_AUTONEG_COMPLETE     0x0001
5949 #define MDIO_GP_STATUS_TOP_AN_STATUS1_CL37_AUTONEG_COMPLETE     0x0002
5950 #define MDIO_GP_STATUS_TOP_AN_STATUS1_LINK_STATUS               0x0004
5951 #define MDIO_GP_STATUS_TOP_AN_STATUS1_DUPLEX_STATUS             0x0008
5952 #define MDIO_GP_STATUS_TOP_AN_STATUS1_CL73_MR_LP_NP_AN_ABLE     0x0010
5953 #define MDIO_GP_STATUS_TOP_AN_STATUS1_CL73_LP_NP_BAM_ABLE       0x0020
5954 #define MDIO_GP_STATUS_TOP_AN_STATUS1_PAUSE_RSOLUTION_TXSIDE    0x0040
5955 #define MDIO_GP_STATUS_TOP_AN_STATUS1_PAUSE_RSOLUTION_RXSIDE    0x0080
5956 #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_MASK         0x3f00
5957 #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10M          0x0000
5958 #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_100M         0x0100
5959 #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_1G           0x0200
5960 #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_2_5G         0x0300
5961 #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_5G           0x0400
5962 #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_6G           0x0500
5963 #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10G_HIG      0x0600
5964 #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10G_CX4      0x0700
5965 #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_12G_HIG      0x0800
5966 #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_12_5G        0x0900
5967 #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_13G          0x0A00
5968 #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_15G          0x0B00
5969 #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_16G          0x0C00
5970 #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_1G_KX        0x0D00
5971 #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10G_KX4      0x0E00
5972
5973 #define MDIO_REG_BANK_10G_PARALLEL_DETECT               0x8130
5974 #define MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_STATUS             0x10
5975 #define MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_STATUS_PD_LINK     0x8000
5976 #define MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_CONTROL            0x11
5977 #define MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_CONTROL_PARDET10G_EN       0x1
5978 #define MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_LINK               0x13
5979 #define MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_LINK_CNT           (0xb71<<1)
5980
5981 #define MDIO_REG_BANK_SERDES_DIGITAL                    0x8300
5982 #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL1                    0x10
5983 #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_FIBER_MODE         0x0001
5984 #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_TBI_IF             0x0002
5985 #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_SIGNAL_DETECT_EN   0x0004
5986 #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_INVERT_SIGNAL_DETECT       0x0008
5987 #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_AUTODET            0x0010
5988 #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_MSTR_MODE          0x0020
5989 #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL2                    0x11
5990 #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL2_PRL_DT_EN          0x0001
5991 #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL2_AN_FST_TMR         0x0040
5992 #define MDIO_SERDES_DIGITAL_A_1000X_STATUS1                     0x14
5993 #define MDIO_SERDES_DIGITAL_A_1000X_STATUS1_DUPLEX              0x0004
5994 #define MDIO_SERDES_DIGITAL_A_1000X_STATUS1_SPEED_MASK          0x0018
5995 #define MDIO_SERDES_DIGITAL_A_1000X_STATUS1_SPEED_SHIFT         3
5996 #define MDIO_SERDES_DIGITAL_A_1000X_STATUS1_SPEED_2_5G          0x0018
5997 #define MDIO_SERDES_DIGITAL_A_1000X_STATUS1_SPEED_1G            0x0010
5998 #define MDIO_SERDES_DIGITAL_A_1000X_STATUS1_SPEED_100M          0x0008
5999 #define MDIO_SERDES_DIGITAL_A_1000X_STATUS1_SPEED_10M           0x0000
6000 #define MDIO_SERDES_DIGITAL_A_1000X_STATUS2                     0x15
6001 #define MDIO_SERDES_DIGITAL_A_1000X_STATUS2_AN_DISABLED         0x0002
6002 #define MDIO_SERDES_DIGITAL_MISC1                               0x18
6003 #define MDIO_SERDES_DIGITAL_MISC1_REFCLK_SEL_MASK               0xE000
6004 #define MDIO_SERDES_DIGITAL_MISC1_REFCLK_SEL_25M                0x0000
6005 #define MDIO_SERDES_DIGITAL_MISC1_REFCLK_SEL_100M               0x2000
6006 #define MDIO_SERDES_DIGITAL_MISC1_REFCLK_SEL_125M               0x4000
6007 #define MDIO_SERDES_DIGITAL_MISC1_REFCLK_SEL_156_25M            0x6000
6008 #define MDIO_SERDES_DIGITAL_MISC1_REFCLK_SEL_187_5M             0x8000
6009 #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_SEL               0x0010
6010 #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_MASK              0x000f
6011 #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_2_5G              0x0000
6012 #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_5G                0x0001
6013 #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_6G                0x0002
6014 #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_10G_HIG           0x0003
6015 #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_10G_CX4           0x0004
6016 #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_12G               0x0005
6017 #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_12_5G             0x0006
6018 #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_13G               0x0007
6019 #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_15G               0x0008
6020 #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_16G               0x0009
6021
6022 #define MDIO_REG_BANK_OVER_1G                           0x8320
6023 #define MDIO_OVER_1G_DIGCTL_3_4                                         0x14
6024 #define MDIO_OVER_1G_DIGCTL_3_4_MP_ID_MASK                              0xffe0
6025 #define MDIO_OVER_1G_DIGCTL_3_4_MP_ID_SHIFT                             5
6026 #define MDIO_OVER_1G_UP1                                                0x19
6027 #define MDIO_OVER_1G_UP1_2_5G                                           0x0001
6028 #define MDIO_OVER_1G_UP1_5G                                             0x0002
6029 #define MDIO_OVER_1G_UP1_6G                                             0x0004
6030 #define MDIO_OVER_1G_UP1_10G                                            0x0010
6031 #define MDIO_OVER_1G_UP1_10GH                                           0x0008
6032 #define MDIO_OVER_1G_UP1_12G                                            0x0020
6033 #define MDIO_OVER_1G_UP1_12_5G                                          0x0040
6034 #define MDIO_OVER_1G_UP1_13G                                            0x0080
6035 #define MDIO_OVER_1G_UP1_15G                                            0x0100
6036 #define MDIO_OVER_1G_UP1_16G                                            0x0200
6037 #define MDIO_OVER_1G_UP2                                                0x1A
6038 #define MDIO_OVER_1G_UP2_IPREDRIVER_MASK                                0x0007
6039 #define MDIO_OVER_1G_UP2_IDRIVER_MASK                                   0x0038
6040 #define MDIO_OVER_1G_UP2_PREEMPHASIS_MASK                               0x03C0
6041 #define MDIO_OVER_1G_UP3                                                0x1B
6042 #define MDIO_OVER_1G_UP3_HIGIG2                                         0x0001
6043 #define MDIO_OVER_1G_LP_UP1                                             0x1C
6044 #define MDIO_OVER_1G_LP_UP2                                             0x1D
6045 #define MDIO_OVER_1G_LP_UP2_MR_ADV_OVER_1G_MASK                         0x03ff
6046 #define MDIO_OVER_1G_LP_UP2_PREEMPHASIS_MASK                            0x0780
6047 #define MDIO_OVER_1G_LP_UP2_PREEMPHASIS_SHIFT                           7
6048 #define MDIO_OVER_1G_LP_UP3                                             0x1E
6049
6050 #define MDIO_REG_BANK_REMOTE_PHY                        0x8330
6051 #define MDIO_REMOTE_PHY_MISC_RX_STATUS                                  0x10
6052 #define MDIO_REMOTE_PHY_MISC_RX_STATUS_CL37_FSM_RECEIVED_OVER1G_MSG     0x0010
6053 #define MDIO_REMOTE_PHY_MISC_RX_STATUS_CL37_FSM_RECEIVED_BRCM_OUI_MSG   0x0600
6054
6055 #define MDIO_REG_BANK_BAM_NEXT_PAGE                     0x8350
6056 #define MDIO_BAM_NEXT_PAGE_MP5_NEXT_PAGE_CTRL                           0x10
6057 #define MDIO_BAM_NEXT_PAGE_MP5_NEXT_PAGE_CTRL_BAM_MODE                  0x0001
6058 #define MDIO_BAM_NEXT_PAGE_MP5_NEXT_PAGE_CTRL_TETON_AN                  0x0002
6059
6060 #define MDIO_REG_BANK_CL73_USERB0                       0x8370
6061 #define MDIO_CL73_USERB0_CL73_UCTRL                                     0x10
6062 #define MDIO_CL73_USERB0_CL73_UCTRL_USTAT1_MUXSEL                       0x0002
6063 #define MDIO_CL73_USERB0_CL73_USTAT1                                    0x11
6064 #define MDIO_CL73_USERB0_CL73_USTAT1_LINK_STATUS_CHECK                  0x0100
6065 #define MDIO_CL73_USERB0_CL73_USTAT1_AN_GOOD_CHECK_BAM37                0x0400
6066 #define MDIO_CL73_USERB0_CL73_BAM_CTRL1                                 0x12
6067 #define MDIO_CL73_USERB0_CL73_BAM_CTRL1_BAM_EN                          0x8000
6068 #define MDIO_CL73_USERB0_CL73_BAM_CTRL1_BAM_STATION_MNGR_EN             0x4000
6069 #define MDIO_CL73_USERB0_CL73_BAM_CTRL1_BAM_NP_AFTER_BP_EN              0x2000
6070 #define MDIO_CL73_USERB0_CL73_BAM_CTRL3                                 0x14
6071 #define MDIO_CL73_USERB0_CL73_BAM_CTRL3_USE_CL73_HCD_MR                 0x0001
6072
6073 #define MDIO_REG_BANK_AER_BLOCK                         0xFFD0
6074 #define MDIO_AER_BLOCK_AER_REG                          0x1E
6075
6076 #define MDIO_REG_BANK_COMBO_IEEE0                       0xFFE0
6077 #define MDIO_COMBO_IEEE0_MII_CONTROL                    0x10
6078 #define MDIO_COMBO_IEEO_MII_CONTROL_MAN_SGMII_SP_MASK                   0x2040
6079 #define MDIO_COMBO_IEEO_MII_CONTROL_MAN_SGMII_SP_10                     0x0000
6080 #define MDIO_COMBO_IEEO_MII_CONTROL_MAN_SGMII_SP_100                    0x2000
6081 #define MDIO_COMBO_IEEO_MII_CONTROL_MAN_SGMII_SP_1000                   0x0040
6082 #define MDIO_COMBO_IEEO_MII_CONTROL_FULL_DUPLEX                         0x0100
6083 #define MDIO_COMBO_IEEO_MII_CONTROL_RESTART_AN                          0x0200
6084 #define MDIO_COMBO_IEEO_MII_CONTROL_AN_EN                               0x1000
6085 #define MDIO_COMBO_IEEO_MII_CONTROL_LOOPBACK                            0x4000
6086 #define MDIO_COMBO_IEEO_MII_CONTROL_RESET                               0x8000
6087 #define MDIO_COMBO_IEEE0_MII_STATUS                                     0x11
6088 #define MDIO_COMBO_IEEE0_MII_STATUS_LINK_PASS                           0x0004
6089 #define MDIO_COMBO_IEEE0_MII_STATUS_AUTONEG_COMPLETE                    0x0020
6090 #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV                                   0x14
6091 #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV_FULL_DUPLEX                       0x0020
6092 #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV_HALF_DUPLEX                       0x0040
6093 #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV_PAUSE_MASK                        0x0180
6094 #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV_PAUSE_NONE                        0x0000
6095 #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV_PAUSE_SYMMETRIC                   0x0080
6096 #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV_PAUSE_ASYMMETRIC                  0x0100
6097 #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV_PAUSE_BOTH                        0x0180
6098 #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV_NEXT_PAGE                         0x8000
6099 #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1                 0x15
6100 #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1_NEXT_PAGE       0x8000
6101 #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1_ACK             0x4000
6102 #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1_PAUSE_MASK      0x0180
6103 #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1_PAUSE_NONE      0x0000
6104 #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1_PAUSE_BOTH      0x0180
6105 #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1_HALF_DUP_CAP    0x0040
6106 #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1_FULL_DUP_CAP    0x0020
6107 /*
6108  * WhenthelinkpartnerisinSGMIImode(bit0=1),the
6109  * bit15=link,bit12=duplex,bits11:10=speed,bit14=acknowledge.
6110  * Theotherbitsarereservedandshouldbezero
6111  */
6112 #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1_SGMII_MODE      0x0001
6113
6114 #define MDIO_PMA_DEVAD                  0x1
6115 /*ieee*/
6116 #define MDIO_PMA_REG_CTRL               0x0
6117 #define MDIO_PMA_REG_STATUS             0x1
6118 #define MDIO_PMA_REG_10G_CTRL2          0x7
6119 #define MDIO_PMA_REG_RX_SD              0xa
6120 /*bcm*/
6121 #define MDIO_PMA_REG_BCM_CTRL           0x0096
6122 #define MDIO_PMA_REG_FEC_CTRL           0x00ab
6123 #define MDIO_PMA_REG_RX_ALARM_CTRL      0x9000
6124 #define MDIO_PMA_REG_LASI_CTRL          0x9002
6125 #define MDIO_PMA_REG_RX_ALARM           0x9003
6126 #define MDIO_PMA_REG_TX_ALARM           0x9004
6127 #define MDIO_PMA_REG_LASI_STATUS        0x9005
6128 #define MDIO_PMA_REG_PHY_IDENTIFIER     0xc800
6129 #define MDIO_PMA_REG_DIGITAL_CTRL       0xc808
6130 #define MDIO_PMA_REG_DIGITAL_STATUS     0xc809
6131 #define MDIO_PMA_REG_TX_POWER_DOWN      0xca02
6132 #define MDIO_PMA_REG_CMU_PLL_BYPASS     0xca09
6133 #define MDIO_PMA_REG_MISC_CTRL          0xca0a
6134 #define MDIO_PMA_REG_GEN_CTRL           0xca10
6135 #define MDIO_PMA_REG_GEN_CTRL_ROM_RESET_INTERNAL_MP     0x0188
6136 #define MDIO_PMA_REG_GEN_CTRL_ROM_MICRO_RESET           0x018a
6137 #define MDIO_PMA_REG_M8051_MSGIN_REG    0xca12
6138 #define MDIO_PMA_REG_M8051_MSGOUT_REG   0xca13
6139 #define MDIO_PMA_REG_ROM_VER1           0xca19
6140 #define MDIO_PMA_REG_ROM_VER2           0xca1a
6141 #define MDIO_PMA_REG_EDC_FFE_MAIN       0xca1b
6142 #define MDIO_PMA_REG_PLL_BANDWIDTH      0xca1d
6143 #define MDIO_PMA_REG_PLL_CTRL           0xca1e
6144 #define MDIO_PMA_REG_MISC_CTRL0         0xca23
6145 #define MDIO_PMA_REG_LRM_MODE           0xca3f
6146 #define MDIO_PMA_REG_CDR_BANDWIDTH      0xca46
6147 #define MDIO_PMA_REG_MISC_CTRL1         0xca85
6148
6149 #define MDIO_PMA_REG_SFP_TWO_WIRE_CTRL          0x8000
6150 #define MDIO_PMA_REG_SFP_TWO_WIRE_CTRL_STATUS_MASK      0x000c
6151 #define MDIO_PMA_REG_SFP_TWO_WIRE_STATUS_IDLE           0x0000
6152 #define MDIO_PMA_REG_SFP_TWO_WIRE_STATUS_COMPLETE       0x0004
6153 #define MDIO_PMA_REG_SFP_TWO_WIRE_STATUS_IN_PROGRESS    0x0008
6154 #define MDIO_PMA_REG_SFP_TWO_WIRE_STATUS_FAILED         0x000c
6155 #define MDIO_PMA_REG_SFP_TWO_WIRE_BYTE_CNT      0x8002
6156 #define MDIO_PMA_REG_SFP_TWO_WIRE_MEM_ADDR      0x8003
6157 #define MDIO_PMA_REG_8726_TWO_WIRE_DATA_BUF     0xc820
6158 #define MDIO_PMA_REG_8726_TWO_WIRE_DATA_MASK    0xff
6159 #define MDIO_PMA_REG_8726_TX_CTRL1              0xca01
6160 #define MDIO_PMA_REG_8726_TX_CTRL2              0xca05
6161
6162 #define MDIO_PMA_REG_8727_TWO_WIRE_SLAVE_ADDR   0x8005
6163 #define MDIO_PMA_REG_8727_TWO_WIRE_DATA_BUF     0x8007
6164 #define MDIO_PMA_REG_8727_TWO_WIRE_DATA_MASK    0xff
6165 #define MDIO_PMA_REG_8727_MISC_CTRL             0x8309
6166 #define MDIO_PMA_REG_8727_TX_CTRL1              0xca02
6167 #define MDIO_PMA_REG_8727_TX_CTRL2              0xca05
6168 #define MDIO_PMA_REG_8727_PCS_OPT_CTRL          0xc808
6169 #define MDIO_PMA_REG_8727_GPIO_CTRL             0xc80e
6170
6171 #define MDIO_PMA_REG_8073_CHIP_REV                      0xc801
6172 #define MDIO_PMA_REG_8073_SPEED_LINK_STATUS             0xc820
6173 #define MDIO_PMA_REG_8073_XAUI_WA                       0xc841
6174
6175 #define MDIO_PMA_REG_7101_RESET         0xc000
6176 #define MDIO_PMA_REG_7107_LED_CNTL      0xc007
6177 #define MDIO_PMA_REG_7101_VER1          0xc026
6178 #define MDIO_PMA_REG_7101_VER2          0xc027
6179
6180 #define MDIO_PMA_REG_8481_PMD_SIGNAL    0xa811
6181 #define MDIO_PMA_REG_8481_LED1_MASK     0xa82c
6182 #define MDIO_PMA_REG_8481_LED2_MASK     0xa82f
6183 #define MDIO_PMA_REG_8481_LED3_MASK     0xa832
6184 #define MDIO_PMA_REG_8481_LED3_BLINK    0xa834
6185 #define MDIO_PMA_REG_8481_SIGNAL_MASK   0xa835
6186 #define MDIO_PMA_REG_8481_LINK_SIGNAL   0xa83b
6187
6188 #define MDIO_WIS_DEVAD                  0x2
6189 /*bcm*/
6190 #define MDIO_WIS_REG_LASI_CNTL          0x9002
6191 #define MDIO_WIS_REG_LASI_STATUS        0x9005
6192
6193 #define MDIO_PCS_DEVAD                  0x3
6194 #define MDIO_PCS_REG_STATUS             0x0020
6195 #define MDIO_PCS_REG_LASI_STATUS        0x9005
6196 #define MDIO_PCS_REG_7101_DSP_ACCESS    0xD000
6197 #define MDIO_PCS_REG_7101_SPI_MUX       0xD008
6198 #define MDIO_PCS_REG_7101_SPI_CTRL_ADDR 0xE12A
6199 #define MDIO_PCS_REG_7101_SPI_RESET_BIT (5)
6200 #define MDIO_PCS_REG_7101_SPI_FIFO_ADDR 0xE02A
6201 #define MDIO_PCS_REG_7101_SPI_FIFO_ADDR_WRITE_ENABLE_CMD        (6)
6202 #define MDIO_PCS_REG_7101_SPI_FIFO_ADDR_BULK_ERASE_CMD          (0xC7)
6203 #define MDIO_PCS_REG_7101_SPI_FIFO_ADDR_PAGE_PROGRAM_CMD        (2)
6204 #define MDIO_PCS_REG_7101_SPI_BYTES_TO_TRANSFER_ADDR            0xE028
6205
6206 #define MDIO_XS_DEVAD                   0x4
6207 #define MDIO_XS_PLL_SEQUENCER           0x8000
6208 #define MDIO_XS_SFX7101_XGXS_TEST1      0xc00a
6209
6210 #define MDIO_XS_8706_REG_BANK_RX0       0x80bc
6211 #define MDIO_XS_8706_REG_BANK_RX1       0x80cc
6212 #define MDIO_XS_8706_REG_BANK_RX2       0x80dc
6213 #define MDIO_XS_8706_REG_BANK_RX3       0x80ec
6214 #define MDIO_XS_8706_REG_BANK_RXA       0x80fc
6215
6216 #define MDIO_AN_DEVAD                   0x7
6217 /*ieee*/
6218 #define MDIO_AN_REG_CTRL                0x0000
6219 #define MDIO_AN_REG_STATUS              0x0001
6220 #define MDIO_AN_REG_STATUS_AN_COMPLETE  0x0020
6221 #define MDIO_AN_REG_ADV_PAUSE           0x0010
6222 #define MDIO_AN_REG_ADV_PAUSE_PAUSE     0x0400
6223 #define MDIO_AN_REG_ADV_PAUSE_ASYMMETRIC        0x0800
6224 #define MDIO_AN_REG_ADV_PAUSE_BOTH      0x0C00
6225 #define MDIO_AN_REG_ADV_PAUSE_MASK      0x0C00
6226 #define MDIO_AN_REG_ADV                 0x0011
6227 #define MDIO_AN_REG_ADV2                0x0012
6228 #define MDIO_AN_REG_LP_AUTO_NEG         0x0013
6229 #define MDIO_AN_REG_MASTER_STATUS       0x0021
6230 /*bcm*/
6231 #define MDIO_AN_REG_LINK_STATUS         0x8304
6232 #define MDIO_AN_REG_CL37_CL73           0x8370
6233 #define MDIO_AN_REG_CL37_AN             0xffe0
6234 #define MDIO_AN_REG_CL37_FC_LD          0xffe4
6235 #define MDIO_AN_REG_CL37_FC_LP          0xffe5
6236
6237 #define MDIO_AN_REG_8073_2_5G           0x8329
6238
6239 #define MDIO_AN_REG_8481_LEGACY_MII_CTRL        0xffe0
6240 #define MDIO_AN_REG_8481_LEGACY_MII_STATUS      0xffe1
6241 #define MDIO_AN_REG_8481_LEGACY_AN_ADV          0xffe4
6242 #define MDIO_AN_REG_8481_LEGACY_AN_EXPANSION    0xffe6
6243 #define MDIO_AN_REG_8481_1000T_CTRL             0xffe9
6244 #define MDIO_AN_REG_8481_EXPANSION_REG_RD_RW    0xfff5
6245 #define MDIO_AN_REG_8481_EXPANSION_REG_ACCESS   0xfff7
6246 #define MDIO_AN_REG_8481_LEGACY_SHADOW          0xfffc
6247
6248 #define IGU_FUNC_BASE                   0x0400
6249
6250 #define IGU_ADDR_MSIX                   0x0000
6251 #define IGU_ADDR_INT_ACK                0x0200
6252 #define IGU_ADDR_PROD_UPD               0x0201
6253 #define IGU_ADDR_ATTN_BITS_UPD          0x0202
6254 #define IGU_ADDR_ATTN_BITS_SET          0x0203
6255 #define IGU_ADDR_ATTN_BITS_CLR          0x0204
6256 #define IGU_ADDR_COALESCE_NOW           0x0205
6257 #define IGU_ADDR_SIMD_MASK              0x0206
6258 #define IGU_ADDR_SIMD_NOMASK            0x0207
6259 #define IGU_ADDR_MSI_CTL                0x0210
6260 #define IGU_ADDR_MSI_ADDR_LO            0x0211
6261 #define IGU_ADDR_MSI_ADDR_HI            0x0212
6262 #define IGU_ADDR_MSI_DATA               0x0213
6263
6264 #define IGU_INT_ENABLE                  0
6265 #define IGU_INT_DISABLE                 1
6266 #define IGU_INT_NOP                     2
6267 #define IGU_INT_NOP2                    3
6268
6269 #define COMMAND_REG_INT_ACK             0x0
6270 #define COMMAND_REG_PROD_UPD            0x4
6271 #define COMMAND_REG_ATTN_BITS_UPD       0x8
6272 #define COMMAND_REG_ATTN_BITS_SET       0xc
6273 #define COMMAND_REG_ATTN_BITS_CLR       0x10
6274 #define COMMAND_REG_COALESCE_NOW        0x14
6275 #define COMMAND_REG_SIMD_MASK           0x18
6276 #define COMMAND_REG_SIMD_NOMASK         0x1c
6277
6278 #define IGU_MEM_BASE                            0x0000
6279
6280 #define IGU_MEM_MSIX_BASE                       0x0000
6281 #define IGU_MEM_MSIX_UPPER                      0x007f
6282 #define IGU_MEM_MSIX_RESERVED_UPPER             0x01ff
6283
6284 #define IGU_MEM_PBA_MSIX_BASE                   0x0200
6285 #define IGU_MEM_PBA_MSIX_UPPER                  0x0200
6286
6287 #define IGU_CMD_BACKWARD_COMP_PROD_UPD          0x0201
6288 #define IGU_MEM_PBA_MSIX_RESERVED_UPPER         0x03ff
6289
6290 #define IGU_CMD_INT_ACK_BASE                    0x0400
6291 #define IGU_CMD_INT_ACK_UPPER                                           \
6292         (IGU_CMD_INT_ACK_BASE + MAX_SB_PER_PORT * NUM_OF_PORTS_PER_PATH - 1)
6293 #define IGU_CMD_INT_ACK_RESERVED_UPPER          0x04ff
6294
6295 #define IGU_CMD_E2_PROD_UPD_BASE                0x0500
6296 #define IGU_CMD_E2_PROD_UPD_UPPER                                       \
6297         (IGU_CMD_E2_PROD_UPD_BASE + MAX_SB_PER_PORT * NUM_OF_PORTS_PER_PATH - 1)
6298 #define IGU_CMD_E2_PROD_UPD_RESERVED_UPPER      0x059f
6299
6300 #define IGU_CMD_ATTN_BIT_UPD_UPPER              0x05a0
6301 #define IGU_CMD_ATTN_BIT_SET_UPPER              0x05a1
6302 #define IGU_CMD_ATTN_BIT_CLR_UPPER              0x05a2
6303
6304 #define IGU_REG_SISR_MDPC_WMASK_UPPER           0x05a3
6305 #define IGU_REG_SISR_MDPC_WMASK_LSB_UPPER       0x05a4
6306 #define IGU_REG_SISR_MDPC_WMASK_MSB_UPPER       0x05a5
6307 #define IGU_REG_SISR_MDPC_WOMASK_UPPER          0x05a6
6308
6309 #define IGU_REG_RESERVED_UPPER                  0x05ff
6310
6311 #define CDU_REGION_NUMBER_XCM_AG        2
6312 #define CDU_REGION_NUMBER_UCM_AG        4
6313
6314 /*
6315  *
6316  * String-to-compress [31:8] = CID (all 24 bits)
6317  * String-to-compress [7:4] = Region
6318  * String-to-compress [3:0] = Type
6319  */
6320 #define CDU_VALID_DATA(_cid,_region, _type)                             \
6321         (((_cid) << 8) | (((_region) & 0xf) << 4) | (((_type) & 0xf)))
6322 #define CDU_CRC8(_cid, _region, _type)                                  \
6323         (calc_crc8(CDU_VALID_DATA(_cid, _region, _type), 0xff))
6324 #define CDU_RSRVD_VALUE_TYPE_A(_cid, _region, _type)                    \
6325         (0x80 | ((CDU_CRC8(_cid, _region, _type)) & 0x7f))
6326 #define CDU_RSRVD_VALUE_TYPE_B(_crc, _type)                             \
6327         (0x80 | ((_type) & 0xf << 3) | ((CDU_CRC8(_cid, _region, _type)) & 0x7))
6328 #define CDU_RSRVD_INVALIDATE_CONTEXT_VALUE(_val)        (((_val) & ~0x80)
6329
6330 /*
6331  *****************************************************************************
6332  * Description:
6333  *         Calculates crc 8 on a word value: polynomial 0-1-2-8
6334  *         Code was translated from Verilog.
6335  * Return:
6336 *****************************************************************************/
6337 static __inline uint8_t
6338 calc_crc8(uint32_t data, uint8_t crc)
6339 {
6340         uint8_t D[32];
6341         uint8_t NewCRC[8];
6342         uint8_t C[8];
6343         uint8_t crc_res;
6344         uint8_t i;
6345
6346         /* split the data into 31 bits */
6347         for (i = 0; i < 32; i++) {
6348                 D[i] = (uint8_t)(data & 1);
6349                 data = data >> 1;
6350         }
6351
6352         /* split the crc into 8 bits */
6353         for     (i = 0; i < 8; i++) {
6354                 C[i] = crc & 1;
6355                 crc = crc >> 1;
6356         }
6357
6358         NewCRC[0] = D[31] ^ D[30] ^ D[28] ^ D[23] ^ D[21] ^ D[19] ^ D[18] ^
6359             D[16] ^ D[14] ^ D[12] ^ D[8] ^ D[7] ^ D[6] ^ D[0] ^ C[4] ^
6360             C[6] ^ C[7];
6361         NewCRC[1] = D[30] ^ D[29] ^ D[28] ^ D[24] ^ D[23] ^ D[22] ^ D[21] ^
6362                 D[20] ^ D[18] ^ D[17] ^ D[16] ^ D[15] ^ D[14] ^ D[13] ^
6363                 D[12] ^ D[9] ^ D[6] ^ D[1] ^ D[0] ^ C[0] ^ C[4] ^ C[5] ^
6364                 C[6];
6365         NewCRC[2] = D[29] ^ D[28] ^ D[25] ^ D[24] ^ D[22] ^ D[17] ^ D[15] ^
6366                 D[13] ^ D[12] ^ D[10] ^ D[8] ^ D[6] ^ D[2] ^ D[1] ^ D[0] ^
6367                 C[0] ^ C[1] ^ C[4] ^ C[5];
6368         NewCRC[3] = D[30] ^ D[29] ^ D[26] ^ D[25] ^ D[23] ^ D[18] ^ D[16] ^
6369                 D[14] ^ D[13] ^ D[11] ^ D[9] ^ D[7] ^ D[3] ^ D[2] ^ D[1] ^
6370                 C[1] ^ C[2] ^ C[5] ^ C[6];
6371         NewCRC[4] = D[31] ^ D[30] ^ D[27] ^ D[26] ^ D[24] ^ D[19] ^ D[17] ^
6372                 D[15] ^ D[14] ^ D[12] ^ D[10] ^ D[8] ^ D[4] ^ D[3] ^ D[2] ^
6373                 C[0] ^ C[2] ^ C[3] ^ C[6] ^ C[7];
6374         NewCRC[5] = D[31] ^ D[28] ^ D[27] ^ D[25] ^ D[20] ^ D[18] ^ D[16] ^
6375                 D[15] ^ D[13] ^ D[11] ^ D[9] ^ D[5] ^ D[4] ^ D[3] ^ C[1] ^
6376                 C[3] ^ C[4] ^ C[7];
6377         NewCRC[6] = D[29] ^ D[28] ^ D[26] ^ D[21] ^ D[19] ^ D[17] ^ D[16] ^
6378                 D[14] ^ D[12] ^ D[10] ^ D[6] ^ D[5] ^ D[4] ^ C[2] ^ C[4] ^
6379                 C[5];
6380         NewCRC[7] = D[30] ^ D[29] ^ D[27] ^ D[22] ^ D[20] ^ D[18] ^ D[17] ^
6381                 D[15] ^ D[13] ^ D[11] ^ D[7] ^ D[6] ^ D[5] ^ C[3] ^ C[5] ^
6382                 C[6];
6383
6384         crc_res = 0;
6385         for (i = 0; i < 8; i++)
6386                 crc_res |= (NewCRC[i] << i);
6387
6388         return  (crc_res);
6389 }
6390 #endif /* _BXE_REG_H */
6391