Update to 3.4-final.
[linux-flexiantxendom0-3.2.10.git] / drivers / xen / sfc_netfront / ef_vi_falcon_core.h
1
2 #define  EFVI_FALCON_EXTENDED_P_BAR 1
3
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
94   #define GPIO_IN_LBN 8
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
100   #define SWRST_LBN 0
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
274
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
282
283 //////////////---- Event & Timer Module Registers C Header ----//////////////
284
285 #if EFVI_FALCON_EXTENDED_P_BAR
286 #define EVQ_RPTR_REG_KER_OFST 0x11B00 // Event queue read pointer register
287 #else
288 #define EVQ_RPTR_REG_KER_OFST 0x1B00 // Event queue read pointer register
289 #endif
290
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
294
295 #if EFVI_FALCON_EXTENDED_P_BAR
296 #define EVQ_PTR_TBL_KER_OFST 0x11A00 // Event queue pointer table for kernel access
297 #else
298 #define EVQ_PTR_TBL_KER_OFST 0x1A00 // Event queue pointer table for kernel access
299 #endif
300
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
382
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
385 #else
386 #define BUF_HALF_TBL_KER_OFST 0x8000 // Buffer table in half buffer table mode direct access by kernel driver
387 #endif
388
389
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
399
400
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
403 #else
404 #define BUF_FULL_TBL_KER_OFST 0x8000 // Buffer table in full buffer table mode direct access by kernel driver
405 #endif
406
407
408
409
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 ----//////////////
423
424 #define RX_CFG_REG_KER_OFST 0x800 // Receive configuration register
425 #define RX_CFG_REG_OFST 0x800 // Receive configuration register
426
427 #if !defined(FALCON_64K_RXFIFO) && !defined(FALCON_PRE_02020029)
428 # if !defined(FALCON_128K_RXFIFO)
429 #  define FALCON_128K_RXFIFO
430 # endif
431 #endif
432
433 #if defined(FALCON_128K_RXFIFO)
434
435 /* new for B0 */
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
446 /* moved for B0 */
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
467
468 #elif !defined(FALCON_PRE_02020029)
469 /* new for B0 */
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
480 /* moved for B0 */
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
499
500 #else
501 /* new for B0 */
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
512 /* moved for B0 */
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
531
532 #endif
533
534 /* A0/A1 */
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
553
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
596
597 #define RX_RSS_TKEY_B0_OFST 0x860 // RSS Toeplitz hash key (B0 only)
598
599 #define RX_NODESC_DROP_REG 0x880
600   #define RX_NODESC_DROP_CNT_LBN 0
601   #define RX_NODESC_DROP_CNT_WIDTH 16
602
603 #define XM_TX_CFG_REG_OFST 0x1230
604   #define XM_AUTO_PAD_LBN 5
605   #define XM_AUTO_PAD_WIDTH 1
606
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
641
642 #if EFVI_FALCON_EXTENDED_P_BAR
643 #define RX_DESC_PTR_TBL_KER_OFST 0x11800 // Receive descriptor pointer kernel access
644 #else
645 #define RX_DESC_PTR_TBL_KER_OFST 0x1800 // Receive descriptor pointer kernel access
646 #endif
647
648
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
678
679
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
683
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
708
709 #if EFVI_FALCON_EXTENDED_P_BAR
710 #define TX_DESC_PTR_TBL_KER_OFST 0x11900 // Transmit descriptor pointer.
711 #else
712 #define TX_DESC_PTR_TBL_KER_OFST 0x1900 // Transmit descriptor pointer.
713 #endif
714
715
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
1000
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