2 #define EFVI_FALCON_EXTENDED_P_BAR 1
4 //////////////---- Bus Interface Unit Registers C Header ----//////////////
5 #define IOM_IND_ADR_REG_OFST 0x0 // IO-mapped indirect access address register
6 #define IOM_AUTO_ADR_INC_EN_LBN 16
7 #define IOM_AUTO_ADR_INC_EN_WIDTH 1
8 #define IOM_IND_ADR_LBN 0
9 #define IOM_IND_ADR_WIDTH 16
10 #define IOM_IND_DAT_REG_OFST 0x4 // IO-mapped indirect access data register
11 #define IOM_IND_DAT_LBN 0
12 #define IOM_IND_DAT_WIDTH 32
13 #define ADR_REGION_REG_KER_OFST 0x0 // Address region register
14 #define ADR_REGION_REG_OFST 0x0 // Address region register
15 #define ADR_REGION3_LBN 96
16 #define ADR_REGION3_WIDTH 18
17 #define ADR_REGION2_LBN 64
18 #define ADR_REGION2_WIDTH 18
19 #define ADR_REGION1_LBN 32
20 #define ADR_REGION1_WIDTH 18
21 #define ADR_REGION0_LBN 0
22 #define ADR_REGION0_WIDTH 18
23 #define INT_EN_REG_KER_OFST 0x10 // Kernel driver Interrupt enable register
24 #define KER_INT_CHAR_LBN 4
25 #define KER_INT_CHAR_WIDTH 1
26 #define KER_INT_KER_LBN 3
27 #define KER_INT_KER_WIDTH 1
28 #define ILL_ADR_ERR_INT_EN_KER_LBN 2
29 #define ILL_ADR_ERR_INT_EN_KER_WIDTH 1
30 #define SRM_PERR_INT_EN_KER_LBN 1
31 #define SRM_PERR_INT_EN_KER_WIDTH 1
32 #define DRV_INT_EN_KER_LBN 0
33 #define DRV_INT_EN_KER_WIDTH 1
34 #define INT_EN_REG_CHAR_OFST 0x20 // Char Driver interrupt enable register
35 #define CHAR_INT_CHAR_LBN 4
36 #define CHAR_INT_CHAR_WIDTH 1
37 #define CHAR_INT_KER_LBN 3
38 #define CHAR_INT_KER_WIDTH 1
39 #define ILL_ADR_ERR_INT_EN_CHAR_LBN 2
40 #define ILL_ADR_ERR_INT_EN_CHAR_WIDTH 1
41 #define SRM_PERR_INT_EN_CHAR_LBN 1
42 #define SRM_PERR_INT_EN_CHAR_WIDTH 1
43 #define DRV_INT_EN_CHAR_LBN 0
44 #define DRV_INT_EN_CHAR_WIDTH 1
45 #define INT_ADR_REG_KER_OFST 0x30 // Interrupt host address for Kernel driver
46 #define INT_ADR_KER_LBN 0
47 #define INT_ADR_KER_WIDTH 64
48 #define DRV_INT_KER_LBN 32
49 #define DRV_INT_KER_WIDTH 1
50 #define EV_FF_HALF_INT_KER_LBN 3
51 #define EV_FF_HALF_INT_KER_WIDTH 1
52 #define EV_FF_FULL_INT_KER_LBN 2
53 #define EV_FF_FULL_INT_KER_WIDTH 1
54 #define ILL_ADR_ERR_INT_KER_LBN 1
55 #define ILL_ADR_ERR_INT_KER_WIDTH 1
56 #define SRAM_PERR_INT_KER_LBN 0
57 #define SRAM_PERR_INT_KER_WIDTH 1
58 #define INT_ADR_REG_CHAR_OFST 0x40 // Interrupt host address for Char driver
59 #define INT_ADR_CHAR_LBN 0
60 #define INT_ADR_CHAR_WIDTH 64
61 #define DRV_INT_CHAR_LBN 32
62 #define DRV_INT_CHAR_WIDTH 1
63 #define EV_FF_HALF_INT_CHAR_LBN 3
64 #define EV_FF_HALF_INT_CHAR_WIDTH 1
65 #define EV_FF_FULL_INT_CHAR_LBN 2
66 #define EV_FF_FULL_INT_CHAR_WIDTH 1
67 #define ILL_ADR_ERR_INT_CHAR_LBN 1
68 #define ILL_ADR_ERR_INT_CHAR_WIDTH 1
69 #define SRAM_PERR_INT_CHAR_LBN 0
70 #define SRAM_PERR_INT_CHAR_WIDTH 1
71 #define INT_ISR0_B0_OFST 0x90 // B0 only
72 #define INT_ISR1_B0_OFST 0xA0
73 #define INT_ACK_REG_KER_A1_OFST 0x50 // Kernel interrupt acknowledge register
74 #define RESERVED_LBN 0
75 #define RESERVED_WIDTH 32
76 #define INT_ACK_REG_CHAR_A1_OFST 0x60 // CHAR interrupt acknowledge register
77 #define RESERVED_LBN 0
78 #define RESERVED_WIDTH 32
79 //////////////---- Global CSR Registers C Header ----//////////////
80 #define STRAP_REG_KER_OFST 0x200 // ASIC strap status register
81 #define STRAP_REG_OFST 0x200 // ASIC strap status register
82 #define ONCHIP_SRAM_LBN 16
83 #define ONCHIP_SRAM_WIDTH 0
84 #define STRAP_ISCSI_EN_LBN 3
85 #define STRAP_ISCSI_EN_WIDTH 1
86 #define STRAP_PINS_LBN 0
87 #define STRAP_PINS_WIDTH 3
88 #define GPIO_CTL_REG_KER_OFST 0x210 // GPIO control register
89 #define GPIO_CTL_REG_OFST 0x210 // GPIO control register
90 #define GPIO_OEN_LBN 24
91 #define GPIO_OEN_WIDTH 4
92 #define GPIO_OUT_LBN 16
93 #define GPIO_OUT_WIDTH 4
95 #define GPIO_IN_WIDTH 4
96 #define GPIO_PWRUP_VALUE_LBN 0
97 #define GPIO_PWRUP_VALUE_WIDTH 4
98 #define GLB_CTL_REG_KER_OFST 0x220 // Global control register
99 #define GLB_CTL_REG_OFST 0x220 // Global control register
101 #define SWRST_WIDTH 1
102 #define FATAL_INTR_REG_KER_OFST 0x230 // Fatal interrupt register for Kernel
103 #define PCI_BUSERR_INT_KER_EN_LBN 43
104 #define PCI_BUSERR_INT_KER_EN_WIDTH 1
105 #define SRAM_OOB_INT_KER_EN_LBN 42
106 #define SRAM_OOB_INT_KER_EN_WIDTH 1
107 #define BUFID_OOB_INT_KER_EN_LBN 41
108 #define BUFID_OOB_INT_KER_EN_WIDTH 1
109 #define MEM_PERR_INT_KER_EN_LBN 40
110 #define MEM_PERR_INT_KER_EN_WIDTH 1
111 #define RBUF_OWN_INT_KER_EN_LBN 39
112 #define RBUF_OWN_INT_KER_EN_WIDTH 1
113 #define TBUF_OWN_INT_KER_EN_LBN 38
114 #define TBUF_OWN_INT_KER_EN_WIDTH 1
115 #define RDESCQ_OWN_INT_KER_EN_LBN 37
116 #define RDESCQ_OWN_INT_KER_EN_WIDTH 1
117 #define TDESCQ_OWN_INT_KER_EN_LBN 36
118 #define TDESCQ_OWN_INT_KER_EN_WIDTH 1
119 #define EVQ_OWN_INT_KER_EN_LBN 35
120 #define EVQ_OWN_INT_KER_EN_WIDTH 1
121 #define EVFF_OFLO_INT_KER_EN_LBN 34
122 #define EVFF_OFLO_INT_KER_EN_WIDTH 1
123 #define ILL_ADR_INT_KER_EN_LBN 33
124 #define ILL_ADR_INT_KER_EN_WIDTH 1
125 #define SRM_PERR_INT_KER_EN_LBN 32
126 #define SRM_PERR_INT_KER_EN_WIDTH 1
127 #define PCI_BUSERR_INT_KER_LBN 11
128 #define PCI_BUSERR_INT_KER_WIDTH 1
129 #define SRAM_OOB_INT_KER_LBN 10
130 #define SRAM_OOB_INT_KER_WIDTH 1
131 #define BUFID_OOB_INT_KER_LBN 9
132 #define BUFID_OOB_INT_KER_WIDTH 1
133 #define MEM_PERR_INT_KER_LBN 8
134 #define MEM_PERR_INT_KER_WIDTH 1
135 #define RBUF_OWN_INT_KER_LBN 7
136 #define RBUF_OWN_INT_KER_WIDTH 1
137 #define TBUF_OWN_INT_KER_LBN 6
138 #define TBUF_OWN_INT_KER_WIDTH 1
139 #define RDESCQ_OWN_INT_KER_LBN 5
140 #define RDESCQ_OWN_INT_KER_WIDTH 1
141 #define TDESCQ_OWN_INT_KER_LBN 4
142 #define TDESCQ_OWN_INT_KER_WIDTH 1
143 #define EVQ_OWN_INT_KER_LBN 3
144 #define EVQ_OWN_INT_KER_WIDTH 1
145 #define EVFF_OFLO_INT_KER_LBN 2
146 #define EVFF_OFLO_INT_KER_WIDTH 1
147 #define ILL_ADR_INT_KER_LBN 1
148 #define ILL_ADR_INT_KER_WIDTH 1
149 #define SRM_PERR_INT_KER_LBN 0
150 #define SRM_PERR_INT_KER_WIDTH 1
151 #define FATAL_INTR_REG_OFST 0x240 // Fatal interrupt register for Char
152 #define PCI_BUSERR_INT_CHAR_EN_LBN 43
153 #define PCI_BUSERR_INT_CHAR_EN_WIDTH 1
154 #define SRAM_OOB_INT_CHAR_EN_LBN 42
155 #define SRAM_OOB_INT_CHAR_EN_WIDTH 1
156 #define BUFID_OOB_INT_CHAR_EN_LBN 41
157 #define BUFID_OOB_INT_CHAR_EN_WIDTH 1
158 #define MEM_PERR_INT_CHAR_EN_LBN 40
159 #define MEM_PERR_INT_CHAR_EN_WIDTH 1
160 #define RBUF_OWN_INT_CHAR_EN_LBN 39
161 #define RBUF_OWN_INT_CHAR_EN_WIDTH 1
162 #define TBUF_OWN_INT_CHAR_EN_LBN 38
163 #define TBUF_OWN_INT_CHAR_EN_WIDTH 1
164 #define RDESCQ_OWN_INT_CHAR_EN_LBN 37
165 #define RDESCQ_OWN_INT_CHAR_EN_WIDTH 1
166 #define TDESCQ_OWN_INT_CHAR_EN_LBN 36
167 #define TDESCQ_OWN_INT_CHAR_EN_WIDTH 1
168 #define EVQ_OWN_INT_CHAR_EN_LBN 35
169 #define EVQ_OWN_INT_CHAR_EN_WIDTH 1
170 #define EVFF_OFLO_INT_CHAR_EN_LBN 34
171 #define EVFF_OFLO_INT_CHAR_EN_WIDTH 1
172 #define ILL_ADR_INT_CHAR_EN_LBN 33
173 #define ILL_ADR_INT_CHAR_EN_WIDTH 1
174 #define SRM_PERR_INT_CHAR_EN_LBN 32
175 #define SRM_PERR_INT_CHAR_EN_WIDTH 1
176 #define FATAL_INTR_REG_EN_BITS 0xffffffffffffffffULL
177 #define PCI_BUSERR_INT_CHAR_LBN 11
178 #define PCI_BUSERR_INT_CHAR_WIDTH 1
179 #define SRAM_OOB_INT_CHAR_LBN 10
180 #define SRAM_OOB_INT_CHAR_WIDTH 1
181 #define BUFID_OOB_INT_CHAR_LBN 9
182 #define BUFID_OOB_INT_CHAR_WIDTH 1
183 #define MEM_PERR_INT_CHAR_LBN 8
184 #define MEM_PERR_INT_CHAR_WIDTH 1
185 #define RBUF_OWN_INT_CHAR_LBN 7
186 #define RBUF_OWN_INT_CHAR_WIDTH 1
187 #define TBUF_OWN_INT_CHAR_LBN 6
188 #define TBUF_OWN_INT_CHAR_WIDTH 1
189 #define RDESCQ_OWN_INT_CHAR_LBN 5
190 #define RDESCQ_OWN_INT_CHAR_WIDTH 1
191 #define TDESCQ_OWN_INT_CHAR_LBN 4
192 #define TDESCQ_OWN_INT_CHAR_WIDTH 1
193 #define EVQ_OWN_INT_CHAR_LBN 3
194 #define EVQ_OWN_INT_CHAR_WIDTH 1
195 #define EVFF_OFLO_INT_CHAR_LBN 2
196 #define EVFF_OFLO_INT_CHAR_WIDTH 1
197 #define ILL_ADR_INT_CHAR_LBN 1
198 #define ILL_ADR_INT_CHAR_WIDTH 1
199 #define SRM_PERR_INT_CHAR_LBN 0
200 #define SRM_PERR_INT_CHAR_WIDTH 1
201 #define DP_CTRL_REG_OFST 0x250 // Datapath control register
202 #define FLS_EVQ_ID_LBN 0
203 #define FLS_EVQ_ID_WIDTH 12
204 #define MEM_STAT_REG_KER_OFST 0x260 // Memory status register
205 #define MEM_STAT_REG_OFST 0x260 // Memory status register
206 #define MEM_PERR_VEC_LBN 53
207 #define MEM_PERR_VEC_WIDTH 38
208 #define MBIST_CORR_LBN 38
209 #define MBIST_CORR_WIDTH 15
210 #define MBIST_ERR_LBN 0
211 #define MBIST_ERR_WIDTH 38
212 #define DEBUG_REG_KER_OFST 0x270 // Debug register
213 #define DEBUG_REG_OFST 0x270 // Debug register
214 #define DEBUG_BLK_SEL2_LBN 47
215 #define DEBUG_BLK_SEL2_WIDTH 3
216 #define DEBUG_BLK_SEL1_LBN 44
217 #define DEBUG_BLK_SEL1_WIDTH 3
218 #define DEBUG_BLK_SEL0_LBN 41
219 #define DEBUG_BLK_SEL0_WIDTH 3
220 #define MISC_DEBUG_ADDR_LBN 36
221 #define MISC_DEBUG_ADDR_WIDTH 5
222 #define SERDES_DEBUG_ADDR_LBN 31
223 #define SERDES_DEBUG_ADDR_WIDTH 5
224 #define EM_DEBUG_ADDR_LBN 26
225 #define EM_DEBUG_ADDR_WIDTH 5
226 #define SR_DEBUG_ADDR_LBN 21
227 #define SR_DEBUG_ADDR_WIDTH 5
228 #define EV_DEBUG_ADDR_LBN 16
229 #define EV_DEBUG_ADDR_WIDTH 5
230 #define RX_DEBUG_ADDR_LBN 11
231 #define RX_DEBUG_ADDR_WIDTH 5
232 #define TX_DEBUG_ADDR_LBN 6
233 #define TX_DEBUG_ADDR_WIDTH 5
234 #define BIU_DEBUG_ADDR_LBN 1
235 #define BIU_DEBUG_ADDR_WIDTH 5
236 #define DEBUG_EN_LBN 0
237 #define DEBUG_EN_WIDTH 1
238 #define DRIVER_REG0_KER_OFST 0x280 // Driver scratch register 0
239 #define DRIVER_REG0_OFST 0x280 // Driver scratch register 0
240 #define DRIVER_DW0_LBN 0
241 #define DRIVER_DW0_WIDTH 32
242 #define DRIVER_REG1_KER_OFST 0x290 // Driver scratch register 1
243 #define DRIVER_REG1_OFST 0x290 // Driver scratch register 1
244 #define DRIVER_DW1_LBN 0
245 #define DRIVER_DW1_WIDTH 32
246 #define DRIVER_REG2_KER_OFST 0x2A0 // Driver scratch register 2
247 #define DRIVER_REG2_OFST 0x2A0 // Driver scratch register 2
248 #define DRIVER_DW2_LBN 0
249 #define DRIVER_DW2_WIDTH 32
250 #define DRIVER_REG3_KER_OFST 0x2B0 // Driver scratch register 3
251 #define DRIVER_REG3_OFST 0x2B0 // Driver scratch register 3
252 #define DRIVER_DW3_LBN 0
253 #define DRIVER_DW3_WIDTH 32
254 #define DRIVER_REG4_KER_OFST 0x2C0 // Driver scratch register 4
255 #define DRIVER_REG4_OFST 0x2C0 // Driver scratch register 4
256 #define DRIVER_DW4_LBN 0
257 #define DRIVER_DW4_WIDTH 32
258 #define DRIVER_REG5_KER_OFST 0x2D0 // Driver scratch register 5
259 #define DRIVER_REG5_OFST 0x2D0 // Driver scratch register 5
260 #define DRIVER_DW5_LBN 0
261 #define DRIVER_DW5_WIDTH 32
262 #define DRIVER_REG6_KER_OFST 0x2E0 // Driver scratch register 6
263 #define DRIVER_REG6_OFST 0x2E0 // Driver scratch register 6
264 #define DRIVER_DW6_LBN 0
265 #define DRIVER_DW6_WIDTH 32
266 #define DRIVER_REG7_KER_OFST 0x2F0 // Driver scratch register 7
267 #define DRIVER_REG7_OFST 0x2F0 // Driver scratch register 7
268 #define DRIVER_DW7_LBN 0
269 #define DRIVER_DW7_WIDTH 32
270 #define ALTERA_BUILD_REG_OFST 0x300 // Altera build register
271 #define ALTERA_BUILD_REG_OFST 0x300 // Altera build register
272 #define ALTERA_BUILD_VER_LBN 0
273 #define ALTERA_BUILD_VER_WIDTH 32
275 /* so called CSR spare register
276 - contains separate parity enable bits for the various internal memory blocks */
277 #define MEM_PARITY_ERR_EN_REG_KER 0x310
278 #define MEM_PARITY_ALL_BLOCKS_EN_LBN 64
279 #define MEM_PARITY_ALL_BLOCKS_EN_WIDTH 38
280 #define MEM_PARITY_TX_DATA_EN_LBN 72
281 #define MEM_PARITY_TX_DATA_EN_WIDTH 2
283 //////////////---- Event & Timer Module Registers C Header ----//////////////
285 #if EFVI_FALCON_EXTENDED_P_BAR
286 #define EVQ_RPTR_REG_KER_OFST 0x11B00 // Event queue read pointer register
288 #define EVQ_RPTR_REG_KER_OFST 0x1B00 // Event queue read pointer register
291 #define EVQ_RPTR_REG_OFST 0xFA0000 // Event queue read pointer register array.
292 #define EVQ_RPTR_LBN 0
293 #define EVQ_RPTR_WIDTH 15
295 #if EFVI_FALCON_EXTENDED_P_BAR
296 #define EVQ_PTR_TBL_KER_OFST 0x11A00 // Event queue pointer table for kernel access
298 #define EVQ_PTR_TBL_KER_OFST 0x1A00 // Event queue pointer table for kernel access
301 #define EVQ_PTR_TBL_CHAR_OFST 0xF60000 // Event queue pointer table for char direct access
302 #define EVQ_WKUP_OR_INT_EN_LBN 39
303 #define EVQ_WKUP_OR_INT_EN_WIDTH 1
304 #define EVQ_NXT_WPTR_LBN 24
305 #define EVQ_NXT_WPTR_WIDTH 15
306 #define EVQ_EN_LBN 23
307 #define EVQ_EN_WIDTH 1
308 #define EVQ_SIZE_LBN 20
309 #define EVQ_SIZE_WIDTH 3
310 #define EVQ_BUF_BASE_ID_LBN 0
311 #define EVQ_BUF_BASE_ID_WIDTH 20
312 #define TIMER_CMD_REG_KER_OFST 0x420 // Timer table for kernel access. Page-mapped
313 #define TIMER_CMD_REG_PAGE4_OFST 0x8420 // Timer table for user-level access. Page-mapped. For lowest 1K queues.
314 #define TIMER_CMD_REG_PAGE123K_OFST 0x1000420 // Timer table for user-level access. Page-mapped. For upper 3K queues.
315 #define TIMER_TBL_OFST 0xF70000 // Timer table for char driver direct access
316 #define TIMER_MODE_LBN 12
317 #define TIMER_MODE_WIDTH 2
318 #define TIMER_VAL_LBN 0
319 #define TIMER_VAL_WIDTH 12
320 #define TIMER_MODE_INT_HLDOFF 2
321 #define EVQ_BUF_SIZE_LBN 0
322 #define EVQ_BUF_SIZE_WIDTH 1
323 #define DRV_EV_REG_KER_OFST 0x440 // Driver generated event register
324 #define DRV_EV_REG_OFST 0x440 // Driver generated event register
325 #define DRV_EV_QID_LBN 64
326 #define DRV_EV_QID_WIDTH 12
327 #define DRV_EV_DATA_LBN 0
328 #define DRV_EV_DATA_WIDTH 64
329 #define EVQ_CTL_REG_KER_OFST 0x450 // Event queue control register
330 #define EVQ_CTL_REG_OFST 0x450 // Event queue control register
331 #define RX_EVQ_WAKEUP_MASK_B0_LBN 15
332 #define RX_EVQ_WAKEUP_MASK_B0_WIDTH 6
333 #define EVQ_OWNERR_CTL_LBN 14
334 #define EVQ_OWNERR_CTL_WIDTH 1
335 #define EVQ_FIFO_AF_TH_LBN 8
336 #define EVQ_FIFO_AF_TH_WIDTH 6
337 #define EVQ_FIFO_NOTAF_TH_LBN 0
338 #define EVQ_FIFO_NOTAF_TH_WIDTH 6
339 //////////////---- SRAM Module Registers C Header ----//////////////
340 #define BUF_TBL_CFG_REG_KER_OFST 0x600 // Buffer table configuration register
341 #define BUF_TBL_CFG_REG_OFST 0x600 // Buffer table configuration register
342 #define BUF_TBL_MODE_LBN 3
343 #define BUF_TBL_MODE_WIDTH 1
344 #define SRM_RX_DC_CFG_REG_KER_OFST 0x610 // SRAM receive descriptor cache configuration register
345 #define SRM_RX_DC_CFG_REG_OFST 0x610 // SRAM receive descriptor cache configuration register
346 #define SRM_RX_DC_BASE_ADR_LBN 0
347 #define SRM_RX_DC_BASE_ADR_WIDTH 21
348 #define SRM_TX_DC_CFG_REG_KER_OFST 0x620 // SRAM transmit descriptor cache configuration register
349 #define SRM_TX_DC_CFG_REG_OFST 0x620 // SRAM transmit descriptor cache configuration register
350 #define SRM_TX_DC_BASE_ADR_LBN 0
351 #define SRM_TX_DC_BASE_ADR_WIDTH 21
352 #define SRM_CFG_REG_KER_OFST 0x630 // SRAM configuration register
353 #define SRM_CFG_REG_OFST 0x630 // SRAM configuration register
354 #define SRAM_OOB_ADR_INTEN_LBN 5
355 #define SRAM_OOB_ADR_INTEN_WIDTH 1
356 #define SRAM_OOB_BUF_INTEN_LBN 4
357 #define SRAM_OOB_BUF_INTEN_WIDTH 1
358 #define SRAM_BT_INIT_EN_LBN 3
359 #define SRAM_BT_INIT_EN_WIDTH 1
360 #define SRM_NUM_BANK_LBN 2
361 #define SRM_NUM_BANK_WIDTH 1
362 #define SRM_BANK_SIZE_LBN 0
363 #define SRM_BANK_SIZE_WIDTH 2
364 #define BUF_TBL_UPD_REG_KER_OFST 0x650 // Buffer table update register
365 #define BUF_TBL_UPD_REG_OFST 0x650 // Buffer table update register
366 #define BUF_UPD_CMD_LBN 63
367 #define BUF_UPD_CMD_WIDTH 1
368 #define BUF_CLR_CMD_LBN 62
369 #define BUF_CLR_CMD_WIDTH 1
370 #define BUF_CLR_END_ID_LBN 32
371 #define BUF_CLR_END_ID_WIDTH 20
372 #define BUF_CLR_START_ID_LBN 0
373 #define BUF_CLR_START_ID_WIDTH 20
374 #define SRM_UPD_EVQ_REG_KER_OFST 0x660 // Buffer table update register
375 #define SRM_UPD_EVQ_REG_OFST 0x660 // Buffer table update register
376 #define SRM_UPD_EVQ_ID_LBN 0
377 #define SRM_UPD_EVQ_ID_WIDTH 12
378 #define SRAM_PARITY_REG_KER_OFST 0x670 // SRAM parity register.
379 #define SRAM_PARITY_REG_OFST 0x670 // SRAM parity register.
380 #define FORCE_SRAM_PERR_LBN 0
381 #define FORCE_SRAM_PERR_WIDTH 1
383 #if EFVI_FALCON_EXTENDED_P_BAR
384 #define BUF_HALF_TBL_KER_OFST 0x18000 // Buffer table in half buffer table mode direct access by kernel driver
386 #define BUF_HALF_TBL_KER_OFST 0x8000 // Buffer table in half buffer table mode direct access by kernel driver
390 #define BUF_HALF_TBL_OFST 0x800000 // Buffer table in half buffer table mode direct access by char driver
391 #define BUF_ADR_HBUF_ODD_LBN 44
392 #define BUF_ADR_HBUF_ODD_WIDTH 20
393 #define BUF_OWNER_ID_HBUF_ODD_LBN 32
394 #define BUF_OWNER_ID_HBUF_ODD_WIDTH 12
395 #define BUF_ADR_HBUF_EVEN_LBN 12
396 #define BUF_ADR_HBUF_EVEN_WIDTH 20
397 #define BUF_OWNER_ID_HBUF_EVEN_LBN 0
398 #define BUF_OWNER_ID_HBUF_EVEN_WIDTH 12
401 #if EFVI_FALCON_EXTENDED_P_BAR
402 #define BUF_FULL_TBL_KER_OFST 0x18000 // Buffer table in full buffer table mode direct access by kernel driver
404 #define BUF_FULL_TBL_KER_OFST 0x8000 // Buffer table in full buffer table mode direct access by kernel driver
410 #define BUF_FULL_TBL_OFST 0x800000 // Buffer table in full buffer table mode direct access by char driver
411 #define IP_DAT_BUF_SIZE_LBN 50
412 #define IP_DAT_BUF_SIZE_WIDTH 1
413 #define BUF_ADR_REGION_LBN 48
414 #define BUF_ADR_REGION_WIDTH 2
415 #define BUF_ADR_FBUF_LBN 14
416 #define BUF_ADR_FBUF_WIDTH 34
417 #define BUF_OWNER_ID_FBUF_LBN 0
418 #define BUF_OWNER_ID_FBUF_WIDTH 14
419 #define SRM_DBG_REG_OFST 0x3000000 // SRAM debug access
420 #define SRM_DBG_LBN 0
421 #define SRM_DBG_WIDTH 64
422 //////////////---- RX Datapath Registers C Header ----//////////////
424 #define RX_CFG_REG_KER_OFST 0x800 // Receive configuration register
425 #define RX_CFG_REG_OFST 0x800 // Receive configuration register
427 #if !defined(FALCON_64K_RXFIFO) && !defined(FALCON_PRE_02020029)
428 # if !defined(FALCON_128K_RXFIFO)
429 # define FALCON_128K_RXFIFO
433 #if defined(FALCON_128K_RXFIFO)
436 #define RX_TOEP_TCP_SUPPRESS_B0_LBN 48
437 #define RX_TOEP_TCP_SUPPRESS_B0_WIDTH 1
438 #define RX_INGR_EN_B0_LBN 47
439 #define RX_INGR_EN_B0_WIDTH 1
440 #define RX_TOEP_IPV4_B0_LBN 46
441 #define RX_TOEP_IPV4_B0_WIDTH 1
442 #define RX_HASH_ALG_B0_LBN 45
443 #define RX_HASH_ALG_B0_WIDTH 1
444 #define RX_HASH_INSERT_HDR_B0_LBN 44
445 #define RX_HASH_INSERT_HDR_B0_WIDTH 1
447 #define RX_DESC_PUSH_EN_B0_LBN 43
448 #define RX_DESC_PUSH_EN_B0_WIDTH 1
449 #define RX_RDW_PATCH_EN_LBN 42 /* Non head of line blocking */
450 #define RX_RDW_PATCH_EN_WIDTH 1
451 #define RX_PCI_BURST_SIZE_B0_LBN 39
452 #define RX_PCI_BURST_SIZE_B0_WIDTH 3
453 #define RX_OWNERR_CTL_B0_LBN 38
454 #define RX_OWNERR_CTL_B0_WIDTH 1
455 #define RX_XON_TX_TH_B0_LBN 33
456 #define RX_XON_TX_TH_B0_WIDTH 5
457 #define RX_XOFF_TX_TH_B0_LBN 28
458 #define RX_XOFF_TX_TH_B0_WIDTH 5
459 #define RX_USR_BUF_SIZE_B0_LBN 19
460 #define RX_USR_BUF_SIZE_B0_WIDTH 9
461 #define RX_XON_MAC_TH_B0_LBN 10
462 #define RX_XON_MAC_TH_B0_WIDTH 9
463 #define RX_XOFF_MAC_TH_B0_LBN 1
464 #define RX_XOFF_MAC_TH_B0_WIDTH 9
465 #define RX_XOFF_MAC_EN_B0_LBN 0
466 #define RX_XOFF_MAC_EN_B0_WIDTH 1
468 #elif !defined(FALCON_PRE_02020029)
470 #define RX_TOEP_TCP_SUPPRESS_B0_LBN 46
471 #define RX_TOEP_TCP_SUPPRESS_B0_WIDTH 1
472 #define RX_INGR_EN_B0_LBN 45
473 #define RX_INGR_EN_B0_WIDTH 1
474 #define RX_TOEP_IPV4_B0_LBN 44
475 #define RX_TOEP_IPV4_B0_WIDTH 1
476 #define RX_HASH_ALG_B0_LBN 43
477 #define RX_HASH_ALG_B0_WIDTH 41
478 #define RX_HASH_INSERT_HDR_B0_LBN 42
479 #define RX_HASH_INSERT_HDR_B0_WIDTH 1
481 #define RX_DESC_PUSH_EN_B0_LBN 41
482 #define RX_DESC_PUSH_EN_B0_WIDTH 1
483 #define RX_PCI_BURST_SIZE_B0_LBN 37
484 #define RX_PCI_BURST_SIZE_B0_WIDTH 3
485 #define RX_OWNERR_CTL_B0_LBN 36
486 #define RX_OWNERR_CTL_B0_WIDTH 1
487 #define RX_XON_TX_TH_B0_LBN 31
488 #define RX_XON_TX_TH_B0_WIDTH 5
489 #define RX_XOFF_TX_TH_B0_LBN 26
490 #define RX_XOFF_TX_TH_B0_WIDTH 5
491 #define RX_USR_BUF_SIZE_B0_LBN 17
492 #define RX_USR_BUF_SIZE_B0_WIDTH 9
493 #define RX_XON_MAC_TH_B0_LBN 9
494 #define RX_XON_MAC_TH_B0_WIDTH 8
495 #define RX_XOFF_MAC_TH_B0_LBN 1
496 #define RX_XOFF_MAC_TH_B0_WIDTH 8
497 #define RX_XOFF_MAC_EN_B0_LBN 0
498 #define RX_XOFF_MAC_EN_B0_WIDTH 1
502 #define RX_TOEP_TCP_SUPPRESS_B0_LBN 44
503 #define RX_TOEP_TCP_SUPPRESS_B0_WIDTH 1
504 #define RX_INGR_EN_B0_LBN 43
505 #define RX_INGR_EN_B0_WIDTH 1
506 #define RX_TOEP_IPV4_B0_LBN 42
507 #define RX_TOEP_IPV4_B0_WIDTH 1
508 #define RX_HASH_ALG_B0_LBN 41
509 #define RX_HASH_ALG_B0_WIDTH 41
510 #define RX_HASH_INSERT_HDR_B0_LBN 40
511 #define RX_HASH_INSERT_HDR_B0_WIDTH 1
513 #define RX_DESC_PUSH_EN_B0_LBN 35
514 #define RX_DESC_PUSH_EN_B0_WIDTH 1
515 #define RX_PCI_BURST_SIZE_B0_LBN 35
516 #define RX_PCI_BURST_SIZE_B0_WIDTH 2
517 #define RX_OWNERR_CTL_B0_LBN 34
518 #define RX_OWNERR_CTL_B0_WIDTH 1
519 #define RX_XON_TX_TH_B0_LBN 29
520 #define RX_XON_TX_TH_B0_WIDTH 5
521 #define RX_XOFF_TX_TH_B0_LBN 24
522 #define RX_XOFF_TX_TH_B0_WIDTH 5
523 #define RX_USR_BUF_SIZE_B0_LBN 15
524 #define RX_USR_BUF_SIZE_B0_WIDTH 9
525 #define RX_XON_MAC_TH_B0_LBN 8
526 #define RX_XON_MAC_TH_B0_WIDTH 7
527 #define RX_XOFF_MAC_TH_B0_LBN 1
528 #define RX_XOFF_MAC_TH_B0_WIDTH 7
529 #define RX_XOFF_MAC_EN_B0_LBN 0
530 #define RX_XOFF_MAC_EN_B0_WIDTH 1
535 #define RX_PUSH_EN_A1_LBN 35
536 #define RX_PUSH_EN_A1_WIDTH 1
537 #define RX_PCI_BURST_SIZE_A1_LBN 31
538 #define RX_PCI_BURST_SIZE_A1_WIDTH 3
539 #define RX_OWNERR_CTL_A1_LBN 30
540 #define RX_OWNERR_CTL_A1_WIDTH 1
541 #define RX_XON_TX_TH_A1_LBN 25
542 #define RX_XON_TX_TH_A1_WIDTH 5
543 #define RX_XOFF_TX_TH_A1_LBN 20
544 #define RX_XOFF_TX_TH_A1_WIDTH 5
545 #define RX_USR_BUF_SIZE_A1_LBN 11
546 #define RX_USR_BUF_SIZE_A1_WIDTH 9
547 #define RX_XON_MAC_TH_A1_LBN 6
548 #define RX_XON_MAC_TH_A1_WIDTH 5
549 #define RX_XOFF_MAC_TH_A1_LBN 1
550 #define RX_XOFF_MAC_TH_A1_WIDTH 5
551 #define RX_XOFF_MAC_EN_A1_LBN 0
552 #define RX_XOFF_MAC_EN_A1_WIDTH 1
554 #define RX_FILTER_CTL_REG_OFST 0x810 // Receive filter control registers
555 #define SCATTER_ENBL_NO_MATCH_Q_B0_LBN 40
556 #define SCATTER_ENBL_NO_MATCH_Q_B0_WIDTH 1
557 #define UDP_FULL_SRCH_LIMIT_LBN 32
558 #define UDP_FULL_SRCH_LIMIT_WIDTH 8
559 #define NUM_KER_LBN 24
560 #define NUM_KER_WIDTH 2
561 #define UDP_WILD_SRCH_LIMIT_LBN 16
562 #define UDP_WILD_SRCH_LIMIT_WIDTH 8
563 #define TCP_WILD_SRCH_LIMIT_LBN 8
564 #define TCP_WILD_SRCH_LIMIT_WIDTH 8
565 #define TCP_FULL_SRCH_LIMIT_LBN 0
566 #define TCP_FULL_SRCH_LIMIT_WIDTH 8
567 #define RX_FLUSH_DESCQ_REG_KER_OFST 0x820 // Receive flush descriptor queue register
568 #define RX_FLUSH_DESCQ_REG_OFST 0x820 // Receive flush descriptor queue register
569 #define RX_FLUSH_DESCQ_CMD_LBN 24
570 #define RX_FLUSH_DESCQ_CMD_WIDTH 1
571 #define RX_FLUSH_EVQ_ID_LBN 12
572 #define RX_FLUSH_EVQ_ID_WIDTH 12
573 #define RX_FLUSH_DESCQ_LBN 0
574 #define RX_FLUSH_DESCQ_WIDTH 12
575 #define RX_DESC_UPD_REG_KER_OFST 0x830 // Kernel receive descriptor update register. Page-mapped
576 #define RX_DESC_UPD_REG_PAGE4_OFST 0x8830 // Char & user receive descriptor update register. Page-mapped. For lowest 1K queues.
577 #define RX_DESC_UPD_REG_PAGE123K_OFST 0x1000830 // Char & user receive descriptor update register. Page-mapped. For upper 3K queues.
578 #define RX_DESC_WPTR_LBN 96
579 #define RX_DESC_WPTR_WIDTH 12
580 #define RX_DESC_PUSH_CMD_LBN 95
581 #define RX_DESC_PUSH_CMD_WIDTH 1
582 #define RX_DESC_LBN 0
583 #define RX_DESC_WIDTH 64
584 #define RX_KER_DESC_LBN 0
585 #define RX_KER_DESC_WIDTH 64
586 #define RX_USR_DESC_LBN 0
587 #define RX_USR_DESC_WIDTH 32
588 #define RX_DC_CFG_REG_KER_OFST 0x840 // Receive descriptor cache configuration register
589 #define RX_DC_CFG_REG_OFST 0x840 // Receive descriptor cache configuration register
590 #define RX_DC_SIZE_LBN 0
591 #define RX_DC_SIZE_WIDTH 2
592 #define RX_DC_PF_WM_REG_KER_OFST 0x850 // Receive descriptor cache pre-fetch watermark register
593 #define RX_DC_PF_WM_REG_OFST 0x850 // Receive descriptor cache pre-fetch watermark register
594 #define RX_DC_PF_LWM_LO_LBN 0
595 #define RX_DC_PF_LWM_LO_WIDTH 6
597 #define RX_RSS_TKEY_B0_OFST 0x860 // RSS Toeplitz hash key (B0 only)
599 #define RX_NODESC_DROP_REG 0x880
600 #define RX_NODESC_DROP_CNT_LBN 0
601 #define RX_NODESC_DROP_CNT_WIDTH 16
603 #define XM_TX_CFG_REG_OFST 0x1230
604 #define XM_AUTO_PAD_LBN 5
605 #define XM_AUTO_PAD_WIDTH 1
607 #define RX_FILTER_TBL0_OFST 0xF00000 // Receive filter table - even entries
608 #define RSS_EN_0_B0_LBN 110
609 #define RSS_EN_0_B0_WIDTH 1
610 #define SCATTER_EN_0_B0_LBN 109
611 #define SCATTER_EN_0_B0_WIDTH 1
612 #define TCP_UDP_0_LBN 108
613 #define TCP_UDP_0_WIDTH 1
614 #define RXQ_ID_0_LBN 96
615 #define RXQ_ID_0_WIDTH 12
616 #define DEST_IP_0_LBN 64
617 #define DEST_IP_0_WIDTH 32
618 #define DEST_PORT_TCP_0_LBN 48
619 #define DEST_PORT_TCP_0_WIDTH 16
620 #define SRC_IP_0_LBN 16
621 #define SRC_IP_0_WIDTH 32
622 #define SRC_TCP_DEST_UDP_0_LBN 0
623 #define SRC_TCP_DEST_UDP_0_WIDTH 16
624 #define RX_FILTER_TBL1_OFST 0xF00010 // Receive filter table - odd entries
625 #define RSS_EN_1_B0_LBN 110
626 #define RSS_EN_1_B0_WIDTH 1
627 #define SCATTER_EN_1_B0_LBN 109
628 #define SCATTER_EN_1_B0_WIDTH 1
629 #define TCP_UDP_1_LBN 108
630 #define TCP_UDP_1_WIDTH 1
631 #define RXQ_ID_1_LBN 96
632 #define RXQ_ID_1_WIDTH 12
633 #define DEST_IP_1_LBN 64
634 #define DEST_IP_1_WIDTH 32
635 #define DEST_PORT_TCP_1_LBN 48
636 #define DEST_PORT_TCP_1_WIDTH 16
637 #define SRC_IP_1_LBN 16
638 #define SRC_IP_1_WIDTH 32
639 #define SRC_TCP_DEST_UDP_1_LBN 0
640 #define SRC_TCP_DEST_UDP_1_WIDTH 16
642 #if EFVI_FALCON_EXTENDED_P_BAR
643 #define RX_DESC_PTR_TBL_KER_OFST 0x11800 // Receive descriptor pointer kernel access
645 #define RX_DESC_PTR_TBL_KER_OFST 0x1800 // Receive descriptor pointer kernel access
649 #define RX_DESC_PTR_TBL_OFST 0xF40000 // Receive descriptor pointer table
650 #define RX_ISCSI_DDIG_EN_LBN 88
651 #define RX_ISCSI_DDIG_EN_WIDTH 1
652 #define RX_ISCSI_HDIG_EN_LBN 87
653 #define RX_ISCSI_HDIG_EN_WIDTH 1
654 #define RX_DESC_PREF_ACT_LBN 86
655 #define RX_DESC_PREF_ACT_WIDTH 1
656 #define RX_DC_HW_RPTR_LBN 80
657 #define RX_DC_HW_RPTR_WIDTH 6
658 #define RX_DESCQ_HW_RPTR_LBN 68
659 #define RX_DESCQ_HW_RPTR_WIDTH 12
660 #define RX_DESCQ_SW_WPTR_LBN 56
661 #define RX_DESCQ_SW_WPTR_WIDTH 12
662 #define RX_DESCQ_BUF_BASE_ID_LBN 36
663 #define RX_DESCQ_BUF_BASE_ID_WIDTH 20
664 #define RX_DESCQ_EVQ_ID_LBN 24
665 #define RX_DESCQ_EVQ_ID_WIDTH 12
666 #define RX_DESCQ_OWNER_ID_LBN 10
667 #define RX_DESCQ_OWNER_ID_WIDTH 14
668 #define RX_DESCQ_LABEL_LBN 5
669 #define RX_DESCQ_LABEL_WIDTH 5
670 #define RX_DESCQ_SIZE_LBN 3
671 #define RX_DESCQ_SIZE_WIDTH 2
672 #define RX_DESCQ_TYPE_LBN 2
673 #define RX_DESCQ_TYPE_WIDTH 1
674 #define RX_DESCQ_JUMBO_LBN 1
675 #define RX_DESCQ_JUMBO_WIDTH 1
676 #define RX_DESCQ_EN_LBN 0
677 #define RX_DESCQ_EN_WIDTH 1
680 #define RX_RSS_INDIR_TBL_B0_OFST 0xFB0000 // RSS indirection table (B0 only)
681 #define RX_RSS_INDIR_ENT_B0_LBN 0
682 #define RX_RSS_INDIR_ENT_B0_WIDTH 6
684 //////////////---- TX Datapath Registers C Header ----//////////////
685 #define TX_FLUSH_DESCQ_REG_KER_OFST 0xA00 // Transmit flush descriptor queue register
686 #define TX_FLUSH_DESCQ_REG_OFST 0xA00 // Transmit flush descriptor queue register
687 #define TX_FLUSH_DESCQ_CMD_LBN 12
688 #define TX_FLUSH_DESCQ_CMD_WIDTH 1
689 #define TX_FLUSH_DESCQ_LBN 0
690 #define TX_FLUSH_DESCQ_WIDTH 12
691 #define TX_DESC_UPD_REG_KER_OFST 0xA10 // Kernel transmit descriptor update register. Page-mapped
692 #define TX_DESC_UPD_REG_PAGE4_OFST 0x8A10 // Char & user transmit descriptor update register. Page-mapped
693 #define TX_DESC_UPD_REG_PAGE123K_OFST 0x1000A10 // Char & user transmit descriptor update register. Page-mapped
694 #define TX_DESC_WPTR_LBN 96
695 #define TX_DESC_WPTR_WIDTH 12
696 #define TX_DESC_PUSH_CMD_LBN 95
697 #define TX_DESC_PUSH_CMD_WIDTH 1
698 #define TX_DESC_LBN 0
699 #define TX_DESC_WIDTH 95
700 #define TX_KER_DESC_LBN 0
701 #define TX_KER_DESC_WIDTH 64
702 #define TX_USR_DESC_LBN 0
703 #define TX_USR_DESC_WIDTH 64
704 #define TX_DC_CFG_REG_KER_OFST 0xA20 // Transmit descriptor cache configuration register
705 #define TX_DC_CFG_REG_OFST 0xA20 // Transmit descriptor cache configuration register
706 #define TX_DC_SIZE_LBN 0
707 #define TX_DC_SIZE_WIDTH 2
709 #if EFVI_FALCON_EXTENDED_P_BAR
710 #define TX_DESC_PTR_TBL_KER_OFST 0x11900 // Transmit descriptor pointer.
712 #define TX_DESC_PTR_TBL_KER_OFST 0x1900 // Transmit descriptor pointer.
716 #define TX_DESC_PTR_TBL_OFST 0xF50000 // Transmit descriptor pointer
717 #define TX_NON_IP_DROP_DIS_B0_LBN 91
718 #define TX_NON_IP_DROP_DIS_B0_WIDTH 1
719 #define TX_IP_CHKSM_DIS_B0_LBN 90
720 #define TX_IP_CHKSM_DIS_B0_WIDTH 1
721 #define TX_TCP_CHKSM_DIS_B0_LBN 89
722 #define TX_TCP_CHKSM_DIS_B0_WIDTH 1
723 #define TX_DESCQ_EN_LBN 88
724 #define TX_DESCQ_EN_WIDTH 1
725 #define TX_ISCSI_DDIG_EN_LBN 87
726 #define TX_ISCSI_DDIG_EN_WIDTH 1
727 #define TX_ISCSI_HDIG_EN_LBN 86
728 #define TX_ISCSI_HDIG_EN_WIDTH 1
729 #define TX_DC_HW_RPTR_LBN 80
730 #define TX_DC_HW_RPTR_WIDTH 6
731 #define TX_DESCQ_HW_RPTR_LBN 68
732 #define TX_DESCQ_HW_RPTR_WIDTH 12
733 #define TX_DESCQ_SW_WPTR_LBN 56
734 #define TX_DESCQ_SW_WPTR_WIDTH 12
735 #define TX_DESCQ_BUF_BASE_ID_LBN 36
736 #define TX_DESCQ_BUF_BASE_ID_WIDTH 20
737 #define TX_DESCQ_EVQ_ID_LBN 24
738 #define TX_DESCQ_EVQ_ID_WIDTH 12
739 #define TX_DESCQ_OWNER_ID_LBN 10
740 #define TX_DESCQ_OWNER_ID_WIDTH 14
741 #define TX_DESCQ_LABEL_LBN 5
742 #define TX_DESCQ_LABEL_WIDTH 5
743 #define TX_DESCQ_SIZE_LBN 3
744 #define TX_DESCQ_SIZE_WIDTH 2
745 #define TX_DESCQ_TYPE_LBN 1
746 #define TX_DESCQ_TYPE_WIDTH 2
747 #define TX_DESCQ_FLUSH_LBN 0
748 #define TX_DESCQ_FLUSH_WIDTH 1
749 #define TX_CFG_REG_KER_OFST 0xA50 // Transmit configuration register
750 #define TX_CFG_REG_OFST 0xA50 // Transmit configuration register
751 #define TX_IP_ID_P1_OFS_LBN 32
752 #define TX_IP_ID_P1_OFS_WIDTH 15
753 #define TX_IP_ID_P0_OFS_LBN 16
754 #define TX_IP_ID_P0_OFS_WIDTH 15
755 #define TX_TURBO_EN_LBN 3
756 #define TX_TURBO_EN_WIDTH 1
757 #define TX_OWNERR_CTL_LBN 2
758 #define TX_OWNERR_CTL_WIDTH 2
759 #define TX_NON_IP_DROP_DIS_LBN 1
760 #define TX_NON_IP_DROP_DIS_WIDTH 1
761 #define TX_IP_ID_REP_EN_LBN 0
762 #define TX_IP_ID_REP_EN_WIDTH 1
763 #define TX_RESERVED_REG_KER_OFST 0xA80 // Transmit configuration register
764 #define TX_RESERVED_REG_OFST 0xA80 // Transmit configuration register
765 #define TX_CSR_PUSH_EN_LBN 89
766 #define TX_CSR_PUSH_EN_WIDTH 1
767 #define TX_RX_SPACER_LBN 64
768 #define TX_RX_SPACER_WIDTH 8
769 #define TX_SW_EV_EN_LBN 59
770 #define TX_SW_EV_EN_WIDTH 1
771 #define TX_RX_SPACER_EN_LBN 57
772 #define TX_RX_SPACER_EN_WIDTH 1
773 #define TX_CSR_PREF_WD_TMR_LBN 24
774 #define TX_CSR_PREF_WD_TMR_WIDTH 16
775 #define TX_CSR_ONLY1TAG_LBN 21
776 #define TX_CSR_ONLY1TAG_WIDTH 1
777 #define TX_PREF_THRESHOLD_LBN 19
778 #define TX_PREF_THRESHOLD_WIDTH 2
779 #define TX_ONE_PKT_PER_Q_LBN 18
780 #define TX_ONE_PKT_PER_Q_WIDTH 1
781 #define TX_DIS_NON_IP_EV_LBN 17
782 #define TX_DIS_NON_IP_EV_WIDTH 1
783 #define TX_DMA_SPACER_LBN 8
784 #define TX_DMA_SPACER_WIDTH 8
785 #define TX_FLUSH_MIN_LEN_EN_B0_LBN 7
786 #define TX_FLUSH_MIN_LEN_EN_B0_WIDTH 1
787 #define TX_TCP_DIS_A1_LBN 7
788 #define TX_TCP_DIS_A1_WIDTH 1
789 #define TX_IP_DIS_A1_LBN 6
790 #define TX_IP_DIS_A1_WIDTH 1
791 #define TX_MAX_CPL_LBN 2
792 #define TX_MAX_CPL_WIDTH 2
793 #define TX_MAX_PREF_LBN 0
794 #define TX_MAX_PREF_WIDTH 2
795 #define TX_VLAN_REG_OFST 0xAE0 // Transmit VLAN tag register
796 #define TX_VLAN_EN_LBN 127
797 #define TX_VLAN_EN_WIDTH 1
798 #define TX_VLAN7_PORT1_EN_LBN 125
799 #define TX_VLAN7_PORT1_EN_WIDTH 1
800 #define TX_VLAN7_PORT0_EN_LBN 124
801 #define TX_VLAN7_PORT0_EN_WIDTH 1
802 #define TX_VLAN7_LBN 112
803 #define TX_VLAN7_WIDTH 12
804 #define TX_VLAN6_PORT1_EN_LBN 109
805 #define TX_VLAN6_PORT1_EN_WIDTH 1
806 #define TX_VLAN6_PORT0_EN_LBN 108
807 #define TX_VLAN6_PORT0_EN_WIDTH 1
808 #define TX_VLAN6_LBN 96
809 #define TX_VLAN6_WIDTH 12
810 #define TX_VLAN5_PORT1_EN_LBN 93
811 #define TX_VLAN5_PORT1_EN_WIDTH 1
812 #define TX_VLAN5_PORT0_EN_LBN 92
813 #define TX_VLAN5_PORT0_EN_WIDTH 1
814 #define TX_VLAN5_LBN 80
815 #define TX_VLAN5_WIDTH 12
816 #define TX_VLAN4_PORT1_EN_LBN 77
817 #define TX_VLAN4_PORT1_EN_WIDTH 1
818 #define TX_VLAN4_PORT0_EN_LBN 76
819 #define TX_VLAN4_PORT0_EN_WIDTH 1
820 #define TX_VLAN4_LBN 64
821 #define TX_VLAN4_WIDTH 12
822 #define TX_VLAN3_PORT1_EN_LBN 61
823 #define TX_VLAN3_PORT1_EN_WIDTH 1
824 #define TX_VLAN3_PORT0_EN_LBN 60
825 #define TX_VLAN3_PORT0_EN_WIDTH 1
826 #define TX_VLAN3_LBN 48
827 #define TX_VLAN3_WIDTH 12
828 #define TX_VLAN2_PORT1_EN_LBN 45
829 #define TX_VLAN2_PORT1_EN_WIDTH 1
830 #define TX_VLAN2_PORT0_EN_LBN 44
831 #define TX_VLAN2_PORT0_EN_WIDTH 1
832 #define TX_VLAN2_LBN 32
833 #define TX_VLAN2_WIDTH 12
834 #define TX_VLAN1_PORT1_EN_LBN 29
835 #define TX_VLAN1_PORT1_EN_WIDTH 1
836 #define TX_VLAN1_PORT0_EN_LBN 28
837 #define TX_VLAN1_PORT0_EN_WIDTH 1
838 #define TX_VLAN1_LBN 16
839 #define TX_VLAN1_WIDTH 12
840 #define TX_VLAN0_PORT1_EN_LBN 13
841 #define TX_VLAN0_PORT1_EN_WIDTH 1
842 #define TX_VLAN0_PORT0_EN_LBN 12
843 #define TX_VLAN0_PORT0_EN_WIDTH 1
844 #define TX_VLAN0_LBN 0
845 #define TX_VLAN0_WIDTH 12
846 #define TX_FIL_CTL_REG_OFST 0xAF0 // Transmit filter control register
847 #define TX_MADR1_FIL_EN_LBN 65
848 #define TX_MADR1_FIL_EN_WIDTH 1
849 #define TX_MADR0_FIL_EN_LBN 64
850 #define TX_MADR0_FIL_EN_WIDTH 1
851 #define TX_IPFIL31_PORT1_EN_LBN 63
852 #define TX_IPFIL31_PORT1_EN_WIDTH 1
853 #define TX_IPFIL31_PORT0_EN_LBN 62
854 #define TX_IPFIL31_PORT0_EN_WIDTH 1
855 #define TX_IPFIL30_PORT1_EN_LBN 61
856 #define TX_IPFIL30_PORT1_EN_WIDTH 1
857 #define TX_IPFIL30_PORT0_EN_LBN 60
858 #define TX_IPFIL30_PORT0_EN_WIDTH 1
859 #define TX_IPFIL29_PORT1_EN_LBN 59
860 #define TX_IPFIL29_PORT1_EN_WIDTH 1
861 #define TX_IPFIL29_PORT0_EN_LBN 58
862 #define TX_IPFIL29_PORT0_EN_WIDTH 1
863 #define TX_IPFIL28_PORT1_EN_LBN 57
864 #define TX_IPFIL28_PORT1_EN_WIDTH 1
865 #define TX_IPFIL28_PORT0_EN_LBN 56
866 #define TX_IPFIL28_PORT0_EN_WIDTH 1
867 #define TX_IPFIL27_PORT1_EN_LBN 55
868 #define TX_IPFIL27_PORT1_EN_WIDTH 1
869 #define TX_IPFIL27_PORT0_EN_LBN 54
870 #define TX_IPFIL27_PORT0_EN_WIDTH 1
871 #define TX_IPFIL26_PORT1_EN_LBN 53
872 #define TX_IPFIL26_PORT1_EN_WIDTH 1
873 #define TX_IPFIL26_PORT0_EN_LBN 52
874 #define TX_IPFIL26_PORT0_EN_WIDTH 1
875 #define TX_IPFIL25_PORT1_EN_LBN 51
876 #define TX_IPFIL25_PORT1_EN_WIDTH 1
877 #define TX_IPFIL25_PORT0_EN_LBN 50
878 #define TX_IPFIL25_PORT0_EN_WIDTH 1
879 #define TX_IPFIL24_PORT1_EN_LBN 49
880 #define TX_IPFIL24_PORT1_EN_WIDTH 1
881 #define TX_IPFIL24_PORT0_EN_LBN 48
882 #define TX_IPFIL24_PORT0_EN_WIDTH 1
883 #define TX_IPFIL23_PORT1_EN_LBN 47
884 #define TX_IPFIL23_PORT1_EN_WIDTH 1
885 #define TX_IPFIL23_PORT0_EN_LBN 46
886 #define TX_IPFIL23_PORT0_EN_WIDTH 1
887 #define TX_IPFIL22_PORT1_EN_LBN 45
888 #define TX_IPFIL22_PORT1_EN_WIDTH 1
889 #define TX_IPFIL22_PORT0_EN_LBN 44
890 #define TX_IPFIL22_PORT0_EN_WIDTH 1
891 #define TX_IPFIL21_PORT1_EN_LBN 43
892 #define TX_IPFIL21_PORT1_EN_WIDTH 1
893 #define TX_IPFIL21_PORT0_EN_LBN 42
894 #define TX_IPFIL21_PORT0_EN_WIDTH 1
895 #define TX_IPFIL20_PORT1_EN_LBN 41
896 #define TX_IPFIL20_PORT1_EN_WIDTH 1
897 #define TX_IPFIL20_PORT0_EN_LBN 40
898 #define TX_IPFIL20_PORT0_EN_WIDTH 1
899 #define TX_IPFIL19_PORT1_EN_LBN 39
900 #define TX_IPFIL19_PORT1_EN_WIDTH 1
901 #define TX_IPFIL19_PORT0_EN_LBN 38
902 #define TX_IPFIL19_PORT0_EN_WIDTH 1
903 #define TX_IPFIL18_PORT1_EN_LBN 37
904 #define TX_IPFIL18_PORT1_EN_WIDTH 1
905 #define TX_IPFIL18_PORT0_EN_LBN 36
906 #define TX_IPFIL18_PORT0_EN_WIDTH 1
907 #define TX_IPFIL17_PORT1_EN_LBN 35
908 #define TX_IPFIL17_PORT1_EN_WIDTH 1
909 #define TX_IPFIL17_PORT0_EN_LBN 34
910 #define TX_IPFIL17_PORT0_EN_WIDTH 1
911 #define TX_IPFIL16_PORT1_EN_LBN 33
912 #define TX_IPFIL16_PORT1_EN_WIDTH 1
913 #define TX_IPFIL16_PORT0_EN_LBN 32
914 #define TX_IPFIL16_PORT0_EN_WIDTH 1
915 #define TX_IPFIL15_PORT1_EN_LBN 31
916 #define TX_IPFIL15_PORT1_EN_WIDTH 1
917 #define TX_IPFIL15_PORT0_EN_LBN 30
918 #define TX_IPFIL15_PORT0_EN_WIDTH 1
919 #define TX_IPFIL14_PORT1_EN_LBN 29
920 #define TX_IPFIL14_PORT1_EN_WIDTH 1
921 #define TX_IPFIL14_PORT0_EN_LBN 28
922 #define TX_IPFIL14_PORT0_EN_WIDTH 1
923 #define TX_IPFIL13_PORT1_EN_LBN 27
924 #define TX_IPFIL13_PORT1_EN_WIDTH 1
925 #define TX_IPFIL13_PORT0_EN_LBN 26
926 #define TX_IPFIL13_PORT0_EN_WIDTH 1
927 #define TX_IPFIL12_PORT1_EN_LBN 25
928 #define TX_IPFIL12_PORT1_EN_WIDTH 1
929 #define TX_IPFIL12_PORT0_EN_LBN 24
930 #define TX_IPFIL12_PORT0_EN_WIDTH 1
931 #define TX_IPFIL11_PORT1_EN_LBN 23
932 #define TX_IPFIL11_PORT1_EN_WIDTH 1
933 #define TX_IPFIL11_PORT0_EN_LBN 22
934 #define TX_IPFIL11_PORT0_EN_WIDTH 1
935 #define TX_IPFIL10_PORT1_EN_LBN 21
936 #define TX_IPFIL10_PORT1_EN_WIDTH 1
937 #define TX_IPFIL10_PORT0_EN_LBN 20
938 #define TX_IPFIL10_PORT0_EN_WIDTH 1
939 #define TX_IPFIL9_PORT1_EN_LBN 19
940 #define TX_IPFIL9_PORT1_EN_WIDTH 1
941 #define TX_IPFIL9_PORT0_EN_LBN 18
942 #define TX_IPFIL9_PORT0_EN_WIDTH 1
943 #define TX_IPFIL8_PORT1_EN_LBN 17
944 #define TX_IPFIL8_PORT1_EN_WIDTH 1
945 #define TX_IPFIL8_PORT0_EN_LBN 16
946 #define TX_IPFIL8_PORT0_EN_WIDTH 1
947 #define TX_IPFIL7_PORT1_EN_LBN 15
948 #define TX_IPFIL7_PORT1_EN_WIDTH 1
949 #define TX_IPFIL7_PORT0_EN_LBN 14
950 #define TX_IPFIL7_PORT0_EN_WIDTH 1
951 #define TX_IPFIL6_PORT1_EN_LBN 13
952 #define TX_IPFIL6_PORT1_EN_WIDTH 1
953 #define TX_IPFIL6_PORT0_EN_LBN 12
954 #define TX_IPFIL6_PORT0_EN_WIDTH 1
955 #define TX_IPFIL5_PORT1_EN_LBN 11
956 #define TX_IPFIL5_PORT1_EN_WIDTH 1
957 #define TX_IPFIL5_PORT0_EN_LBN 10
958 #define TX_IPFIL5_PORT0_EN_WIDTH 1
959 #define TX_IPFIL4_PORT1_EN_LBN 9
960 #define TX_IPFIL4_PORT1_EN_WIDTH 1
961 #define TX_IPFIL4_PORT0_EN_LBN 8
962 #define TX_IPFIL4_PORT0_EN_WIDTH 1
963 #define TX_IPFIL3_PORT1_EN_LBN 7
964 #define TX_IPFIL3_PORT1_EN_WIDTH 1
965 #define TX_IPFIL3_PORT0_EN_LBN 6
966 #define TX_IPFIL3_PORT0_EN_WIDTH 1
967 #define TX_IPFIL2_PORT1_EN_LBN 5
968 #define TX_IPFIL2_PORT1_EN_WIDTH 1
969 #define TX_IPFIL2_PORT0_EN_LBN 4
970 #define TX_IPFIL2_PORT0_EN_WIDTH 1
971 #define TX_IPFIL1_PORT1_EN_LBN 3
972 #define TX_IPFIL1_PORT1_EN_WIDTH 1
973 #define TX_IPFIL1_PORT0_EN_LBN 2
974 #define TX_IPFIL1_PORT0_EN_WIDTH 1
975 #define TX_IPFIL0_PORT1_EN_LBN 1
976 #define TX_IPFIL0_PORT1_EN_WIDTH 1
977 #define TX_IPFIL0_PORT0_EN_LBN 0
978 #define TX_IPFIL0_PORT0_EN_WIDTH 1
979 #define TX_IPFIL_TBL_OFST 0xB00 // Transmit IP source address filter table
980 #define TX_IPFIL_MASK_LBN 32
981 #define TX_IPFIL_MASK_WIDTH 32
982 #define TX_IP_SRC_ADR_LBN 0
983 #define TX_IP_SRC_ADR_WIDTH 32
984 #define TX_PACE_REG_A1_OFST 0xF80000 // Transmit pace control register
985 #define TX_PACE_REG_B0_OFST 0xA90 // Transmit pace control register
986 #define TX_PACE_SB_AF_LBN 19
987 #define TX_PACE_SB_AF_WIDTH 10
988 #define TX_PACE_SB_NOTAF_LBN 9
989 #define TX_PACE_SB_NOTAF_WIDTH 10
990 #define TX_PACE_FB_BASE_LBN 5
991 #define TX_PACE_FB_BASE_WIDTH 4
992 #define TX_PACE_BIN_TH_LBN 0
993 #define TX_PACE_BIN_TH_WIDTH 5
994 #define TX_PACE_TBL_A1_OFST 0xF80040 // Transmit pacing table
995 #define TX_PACE_TBL_FIRST_QUEUE_A1 4
996 #define TX_PACE_TBL_B0_OFST 0xF80000 // Transmit pacing table
997 #define TX_PACE_TBL_FIRST_QUEUE_B0 0
998 #define TX_PACE_LBN 0
999 #define TX_PACE_WIDTH 5
1001 //////////////---- EE/Flash Registers C Header ----//////////////
1002 #define EE_SPI_HCMD_REG_KER_OFST 0x100 // SPI host command register
1003 #define EE_SPI_HCMD_REG_OFST 0x100 // SPI host command register
1004 #define EE_SPI_HCMD_CMD_EN_LBN 31
1005 #define EE_SPI_HCMD_CMD_EN_WIDTH 1
1006 #define EE_WR_TIMER_ACTIVE_LBN 28
1007 #define EE_WR_TIMER_ACTIVE_WIDTH 1
1008 #define EE_SPI_HCMD_SF_SEL_LBN 24
1009 #define EE_SPI_HCMD_SF_SEL_WIDTH 1
1010 #define EE_SPI_HCMD_DABCNT_LBN 16
1011 #define EE_SPI_HCMD_DABCNT_WIDTH 5
1012 #define EE_SPI_HCMD_READ_LBN 15
1013 #define EE_SPI_HCMD_READ_WIDTH 1
1014 #define EE_SPI_HCMD_DUBCNT_LBN 12
1015 #define EE_SPI_HCMD_DUBCNT_WIDTH 2
1016 #define EE_SPI_HCMD_ADBCNT_LBN 8
1017 #define EE_SPI_HCMD_ADBCNT_WIDTH 2
1018 #define EE_SPI_HCMD_ENC_LBN 0
1019 #define EE_SPI_HCMD_ENC_WIDTH 8
1020 #define EE_SPI_HADR_REG_KER_OFST 0X110 // SPI host address register
1021 #define EE_SPI_HADR_REG_OFST 0X110 // SPI host address register
1022 #define EE_SPI_HADR_DUBYTE_LBN 24
1023 #define EE_SPI_HADR_DUBYTE_WIDTH 8
1024 #define EE_SPI_HADR_ADR_LBN 0
1025 #define EE_SPI_HADR_ADR_WIDTH 24
1026 #define EE_SPI_HDATA_REG_KER_OFST 0x120 // SPI host data register
1027 #define EE_SPI_HDATA_REG_OFST 0x120 // SPI host data register
1028 #define EE_SPI_HDATA3_LBN 96
1029 #define EE_SPI_HDATA3_WIDTH 32
1030 #define EE_SPI_HDATA2_LBN 64
1031 #define EE_SPI_HDATA2_WIDTH 32
1032 #define EE_SPI_HDATA1_LBN 32
1033 #define EE_SPI_HDATA1_WIDTH 32
1034 #define EE_SPI_HDATA0_LBN 0
1035 #define EE_SPI_HDATA0_WIDTH 32
1036 #define EE_BASE_PAGE_REG_KER_OFST 0x130 // Expansion ROM base mirror register
1037 #define EE_BASE_PAGE_REG_OFST 0x130 // Expansion ROM base mirror register
1038 #define EE_EXP_ROM_WINDOW_BASE_LBN 16
1039 #define EE_EXP_ROM_WINDOW_BASE_WIDTH 13
1040 #define EE_EXPROM_MASK_LBN 0
1041 #define EE_EXPROM_MASK_WIDTH 13
1042 #define EE_VPD_CFG0_REG_KER_OFST 0X140 // SPI/VPD configuration register
1043 #define EE_VPD_CFG0_REG_OFST 0X140 // SPI/VPD configuration register
1044 #define EE_SF_FASTRD_EN_LBN 127
1045 #define EE_SF_FASTRD_EN_WIDTH 1
1046 #define EE_SF_CLOCK_DIV_LBN 120
1047 #define EE_SF_CLOCK_DIV_WIDTH 7
1048 #define EE_VPD_WIP_POLL_LBN 119
1049 #define EE_VPD_WIP_POLL_WIDTH 1
1050 #define EE_VPDW_LENGTH_LBN 80
1051 #define EE_VPDW_LENGTH_WIDTH 15
1052 #define EE_VPDW_BASE_LBN 64
1053 #define EE_VPDW_BASE_WIDTH 15
1054 #define EE_VPD_WR_CMD_EN_LBN 56
1055 #define EE_VPD_WR_CMD_EN_WIDTH 8
1056 #define EE_VPD_BASE_LBN 32
1057 #define EE_VPD_BASE_WIDTH 24
1058 #define EE_VPD_LENGTH_LBN 16
1059 #define EE_VPD_LENGTH_WIDTH 13
1060 #define EE_VPD_AD_SIZE_LBN 8
1061 #define EE_VPD_AD_SIZE_WIDTH 5
1062 #define EE_VPD_ACCESS_ON_LBN 5
1063 #define EE_VPD_ACCESS_ON_WIDTH 1
1064 #define EE_VPD_SW_CNTL_REG_KER_OFST 0X150 // VPD access SW control register
1065 #define EE_VPD_SW_CNTL_REG_OFST 0X150 // VPD access SW control register
1066 #define EE_VPD_CYCLE_PENDING_LBN 31
1067 #define EE_VPD_CYCLE_PENDING_WIDTH 1
1068 #define EE_VPD_CYC_WRITE_LBN 28
1069 #define EE_VPD_CYC_WRITE_WIDTH 1
1070 #define EE_VPD_CYC_ADR_LBN 0
1071 #define EE_VPD_CYC_ADR_WIDTH 15
1072 #define EE_VPD_SW_DATA_REG_KER_OFST 0x160 // VPD access SW data register
1073 #define EE_VPD_SW_DATA_REG_OFST 0x160 // VPD access SW data register
1074 #define EE_VPD_CYC_DAT_LBN 0
1075 #define EE_VPD_CYC_DAT_WIDTH 32