New upstream version 18.08
[deb_dpdk.git] / drivers / net / cxgbe / base / t4_regs.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2014-2018 Chelsio Communications.
3  * All rights reserved.
4  */
5
6 #define MYPF_BASE 0x1b000
7 #define MYPF_REG(reg_addr) (MYPF_BASE + (reg_addr))
8
9 #define PF0_BASE 0x1e000
10 #define PF0_REG(reg_addr) (PF0_BASE + (reg_addr))
11
12 #define PF_STRIDE 0x400
13 #define PF_BASE(idx) (PF0_BASE + (idx) * PF_STRIDE)
14 #define PF_REG(idx, reg) (PF_BASE(idx) + (reg))
15
16 #define MYPORT_BASE 0x1c000
17 #define MYPORT_REG(reg_addr) (MYPORT_BASE + (reg_addr))
18
19 #define PORT0_BASE 0x20000
20 #define PORT0_REG(reg_addr) (PORT0_BASE + (reg_addr))
21
22 #define PORT_STRIDE 0x2000
23 #define PORT_BASE(idx) (PORT0_BASE + (idx) * PORT_STRIDE)
24 #define PORT_REG(idx, reg) (PORT_BASE(idx) + (reg))
25
26 #define PCIE_MEM_ACCESS_REG(reg_addr, idx) ((reg_addr) + (idx) * 8)
27 #define NUM_PCIE_MEM_ACCESS_INSTANCES 8
28
29 #define PCIE_FW_REG(reg_addr, idx) ((reg_addr) + (idx) * 4)
30 #define NUM_PCIE_FW_INSTANCES 8
31
32 #define T5_MYPORT_BASE 0x2c000
33 #define T5_MYPORT_REG(reg_addr) (T5_MYPORT_BASE + (reg_addr))
34
35 #define T5_PORT0_BASE 0x30000
36 #define T5_PORT0_REG(reg_addr) (T5_PORT0_BASE + (reg_addr))
37
38 #define T5_PORT_STRIDE 0x4000
39 #define T5_PORT_BASE(idx) (T5_PORT0_BASE + (idx) * T5_PORT_STRIDE)
40 #define T5_PORT_REG(idx, reg) (T5_PORT_BASE(idx) + (reg))
41
42 #define MPS_T5_CLS_SRAM_L(idx) (A_MPS_T5_CLS_SRAM_L + (idx) * 8)
43 #define NUM_MPS_T5_CLS_SRAM_L_INSTANCES 512
44
45 #define MPS_T5_CLS_SRAM_H(idx) (A_MPS_T5_CLS_SRAM_H + (idx) * 8)
46 #define NUM_MPS_T5_CLS_SRAM_H_INSTANCES 512
47
48 /* registers for module SGE */
49 #define SGE_BASE_ADDR 0x1000
50
51 #define A_SGE_PF_KDOORBELL 0x0
52 #define A_SGE_VF_KDOORBELL 0x0
53
54 #define S_QID    15
55 #define M_QID    0x1ffffU
56 #define V_QID(x) ((x) << S_QID)
57 #define G_QID(x) (((x) >> S_QID) & M_QID)
58
59 #define S_DBPRIO    14
60 #define V_DBPRIO(x) ((x) << S_DBPRIO)
61 #define F_DBPRIO    V_DBPRIO(1U)
62
63 #define S_PIDX    0
64 #define M_PIDX    0x3fffU
65 #define V_PIDX(x) ((x) << S_PIDX)
66 #define G_PIDX(x) (((x) >> S_PIDX) & M_PIDX)
67
68 #define S_DBTYPE    13
69 #define V_DBTYPE(x) ((x) << S_DBTYPE)
70 #define F_DBTYPE    V_DBTYPE(1U)
71
72 #define S_PIDX_T5    0
73 #define M_PIDX_T5    0x1fffU
74 #define V_PIDX_T5(x) ((x) << S_PIDX_T5)
75 #define G_PIDX_T5(x) (((x) >> S_PIDX_T5) & M_PIDX_T5)
76
77 #define A_SGE_PF_GTS 0x4
78
79 #define T4VF_SGE_BASE_ADDR 0x0000
80 #define A_SGE_VF_GTS 0x4
81
82 #define S_INGRESSQID    16
83 #define M_INGRESSQID    0xffffU
84 #define V_INGRESSQID(x) ((x) << S_INGRESSQID)
85 #define G_INGRESSQID(x) (((x) >> S_INGRESSQID) & M_INGRESSQID)
86
87 #define S_SEINTARM    12
88 #define V_SEINTARM(x) ((x) << S_SEINTARM)
89 #define F_SEINTARM    V_SEINTARM(1U)
90
91 #define S_CIDXINC    0
92 #define M_CIDXINC    0xfffU
93 #define V_CIDXINC(x) ((x) << S_CIDXINC)
94 #define G_CIDXINC(x) (((x) >> S_CIDXINC) & M_CIDXINC)
95
96 #define A_SGE_CONTROL 0x1008
97
98 #define S_RXPKTCPLMODE    18
99 #define V_RXPKTCPLMODE(x) ((x) << S_RXPKTCPLMODE)
100 #define F_RXPKTCPLMODE    V_RXPKTCPLMODE(1U)
101
102 #define S_EGRSTATUSPAGESIZE    17
103 #define V_EGRSTATUSPAGESIZE(x) ((x) << S_EGRSTATUSPAGESIZE)
104 #define F_EGRSTATUSPAGESIZE    V_EGRSTATUSPAGESIZE(1U)
105
106 #define S_PKTSHIFT    10
107 #define M_PKTSHIFT    0x7U
108 #define V_PKTSHIFT(x) ((x) << S_PKTSHIFT)
109 #define G_PKTSHIFT(x) (((x) >> S_PKTSHIFT) & M_PKTSHIFT)
110
111 #define S_INGPADBOUNDARY    4
112 #define M_INGPADBOUNDARY    0x7U
113 #define V_INGPADBOUNDARY(x) ((x) << S_INGPADBOUNDARY)
114 #define G_INGPADBOUNDARY(x) (((x) >> S_INGPADBOUNDARY) & M_INGPADBOUNDARY)
115
116 #define A_SGE_HOST_PAGE_SIZE 0x100c
117
118 #define S_HOSTPAGESIZEPF7    28
119 #define M_HOSTPAGESIZEPF7    0xfU
120 #define V_HOSTPAGESIZEPF7(x) ((x) << S_HOSTPAGESIZEPF7)
121 #define G_HOSTPAGESIZEPF7(x) (((x) >> S_HOSTPAGESIZEPF7) & M_HOSTPAGESIZEPF7)
122
123 #define S_HOSTPAGESIZEPF6    24
124 #define M_HOSTPAGESIZEPF6    0xfU
125 #define V_HOSTPAGESIZEPF6(x) ((x) << S_HOSTPAGESIZEPF6)
126 #define G_HOSTPAGESIZEPF6(x) (((x) >> S_HOSTPAGESIZEPF6) & M_HOSTPAGESIZEPF6)
127
128 #define S_HOSTPAGESIZEPF5    20
129 #define M_HOSTPAGESIZEPF5    0xfU
130 #define V_HOSTPAGESIZEPF5(x) ((x) << S_HOSTPAGESIZEPF5)
131 #define G_HOSTPAGESIZEPF5(x) (((x) >> S_HOSTPAGESIZEPF5) & M_HOSTPAGESIZEPF5)
132
133 #define S_HOSTPAGESIZEPF4    16
134 #define M_HOSTPAGESIZEPF4    0xfU
135 #define V_HOSTPAGESIZEPF4(x) ((x) << S_HOSTPAGESIZEPF4)
136 #define G_HOSTPAGESIZEPF4(x) (((x) >> S_HOSTPAGESIZEPF4) & M_HOSTPAGESIZEPF4)
137
138 #define S_HOSTPAGESIZEPF3    12
139 #define M_HOSTPAGESIZEPF3    0xfU
140 #define V_HOSTPAGESIZEPF3(x) ((x) << S_HOSTPAGESIZEPF3)
141 #define G_HOSTPAGESIZEPF3(x) (((x) >> S_HOSTPAGESIZEPF3) & M_HOSTPAGESIZEPF3)
142
143 #define S_HOSTPAGESIZEPF2    8
144 #define M_HOSTPAGESIZEPF2    0xfU
145 #define V_HOSTPAGESIZEPF2(x) ((x) << S_HOSTPAGESIZEPF2)
146 #define G_HOSTPAGESIZEPF2(x) (((x) >> S_HOSTPAGESIZEPF2) & M_HOSTPAGESIZEPF2)
147
148 #define S_HOSTPAGESIZEPF1    4
149 #define M_HOSTPAGESIZEPF1    0xfU
150 #define V_HOSTPAGESIZEPF1(x) ((x) << S_HOSTPAGESIZEPF1)
151 #define G_HOSTPAGESIZEPF1(x) (((x) >> S_HOSTPAGESIZEPF1) & M_HOSTPAGESIZEPF1)
152
153 #define S_HOSTPAGESIZEPF0    0
154 #define M_HOSTPAGESIZEPF0    0xfU
155 #define V_HOSTPAGESIZEPF0(x) ((x) << S_HOSTPAGESIZEPF0)
156 #define G_HOSTPAGESIZEPF0(x) (((x) >> S_HOSTPAGESIZEPF0) & M_HOSTPAGESIZEPF0)
157
158 #define A_SGE_EGRESS_QUEUES_PER_PAGE_PF 0x1010
159
160 #define S_QUEUESPERPAGEPF1    4
161 #define M_QUEUESPERPAGEPF1    0xfU
162 #define V_QUEUESPERPAGEPF1(x) ((x) << S_QUEUESPERPAGEPF1)
163 #define G_QUEUESPERPAGEPF1(x) (((x) >> S_QUEUESPERPAGEPF1) & M_QUEUESPERPAGEPF1)
164
165 #define S_QUEUESPERPAGEPF0    0
166 #define M_QUEUESPERPAGEPF0    0xfU
167 #define V_QUEUESPERPAGEPF0(x) ((x) << S_QUEUESPERPAGEPF0)
168 #define G_QUEUESPERPAGEPF0(x) (((x) >> S_QUEUESPERPAGEPF0) & M_QUEUESPERPAGEPF0)
169
170 #define A_SGE_EGRESS_QUEUES_PER_PAGE_VF 0x1014
171
172 #define S_ERR_CPL_EXCEED_IQE_SIZE    22
173 #define V_ERR_CPL_EXCEED_IQE_SIZE(x) ((x) << S_ERR_CPL_EXCEED_IQE_SIZE)
174 #define F_ERR_CPL_EXCEED_IQE_SIZE    V_ERR_CPL_EXCEED_IQE_SIZE(1U)
175
176 #define S_ERR_INVALID_CIDX_INC    21
177 #define V_ERR_INVALID_CIDX_INC(x) ((x) << S_ERR_INVALID_CIDX_INC)
178 #define F_ERR_INVALID_CIDX_INC    V_ERR_INVALID_CIDX_INC(1U)
179
180 #define S_ERR_CPL_OPCODE_0    19
181 #define V_ERR_CPL_OPCODE_0(x) ((x) << S_ERR_CPL_OPCODE_0)
182 #define F_ERR_CPL_OPCODE_0    V_ERR_CPL_OPCODE_0(1U)
183
184 #define S_ERR_DROPPED_DB    18
185 #define V_ERR_DROPPED_DB(x) ((x) << S_ERR_DROPPED_DB)
186 #define F_ERR_DROPPED_DB    V_ERR_DROPPED_DB(1U)
187
188 #define S_ERR_DATA_CPL_ON_HIGH_QID1    17
189 #define V_ERR_DATA_CPL_ON_HIGH_QID1(x) ((x) << S_ERR_DATA_CPL_ON_HIGH_QID1)
190 #define F_ERR_DATA_CPL_ON_HIGH_QID1    V_ERR_DATA_CPL_ON_HIGH_QID1(1U)
191
192 #define S_ERR_DATA_CPL_ON_HIGH_QID0    16
193 #define V_ERR_DATA_CPL_ON_HIGH_QID0(x) ((x) << S_ERR_DATA_CPL_ON_HIGH_QID0)
194 #define F_ERR_DATA_CPL_ON_HIGH_QID0    V_ERR_DATA_CPL_ON_HIGH_QID0(1U)
195
196 #define S_ERR_BAD_DB_PIDX3    15
197 #define V_ERR_BAD_DB_PIDX3(x) ((x) << S_ERR_BAD_DB_PIDX3)
198 #define F_ERR_BAD_DB_PIDX3    V_ERR_BAD_DB_PIDX3(1U)
199
200 #define S_ERR_BAD_DB_PIDX2    14
201 #define V_ERR_BAD_DB_PIDX2(x) ((x) << S_ERR_BAD_DB_PIDX2)
202 #define F_ERR_BAD_DB_PIDX2    V_ERR_BAD_DB_PIDX2(1U)
203
204 #define S_ERR_BAD_DB_PIDX1    13
205 #define V_ERR_BAD_DB_PIDX1(x) ((x) << S_ERR_BAD_DB_PIDX1)
206 #define F_ERR_BAD_DB_PIDX1    V_ERR_BAD_DB_PIDX1(1U)
207
208 #define S_ERR_BAD_DB_PIDX0    12
209 #define V_ERR_BAD_DB_PIDX0(x) ((x) << S_ERR_BAD_DB_PIDX0)
210 #define F_ERR_BAD_DB_PIDX0    V_ERR_BAD_DB_PIDX0(1U)
211
212 #define S_ERR_ING_PCIE_CHAN    11
213 #define V_ERR_ING_PCIE_CHAN(x) ((x) << S_ERR_ING_PCIE_CHAN)
214 #define F_ERR_ING_PCIE_CHAN    V_ERR_ING_PCIE_CHAN(1U)
215
216 #define S_ERR_ING_CTXT_PRIO    10
217 #define V_ERR_ING_CTXT_PRIO(x) ((x) << S_ERR_ING_CTXT_PRIO)
218 #define F_ERR_ING_CTXT_PRIO    V_ERR_ING_CTXT_PRIO(1U)
219
220 #define S_ERR_EGR_CTXT_PRIO    9
221 #define V_ERR_EGR_CTXT_PRIO(x) ((x) << S_ERR_EGR_CTXT_PRIO)
222 #define F_ERR_EGR_CTXT_PRIO    V_ERR_EGR_CTXT_PRIO(1U)
223
224 #define S_DBFIFO_HP_INT    8
225 #define V_DBFIFO_HP_INT(x) ((x) << S_DBFIFO_HP_INT)
226 #define F_DBFIFO_HP_INT    V_DBFIFO_HP_INT(1U)
227
228 #define S_DBFIFO_LP_INT    7
229 #define V_DBFIFO_LP_INT(x) ((x) << S_DBFIFO_LP_INT)
230 #define F_DBFIFO_LP_INT    V_DBFIFO_LP_INT(1U)
231
232 #define S_INGRESS_SIZE_ERR    5
233 #define V_INGRESS_SIZE_ERR(x) ((x) << S_INGRESS_SIZE_ERR)
234 #define F_INGRESS_SIZE_ERR    V_INGRESS_SIZE_ERR(1U)
235
236 #define S_EGRESS_SIZE_ERR    4
237 #define V_EGRESS_SIZE_ERR(x) ((x) << S_EGRESS_SIZE_ERR)
238 #define F_EGRESS_SIZE_ERR    V_EGRESS_SIZE_ERR(1U)
239
240 #define A_SGE_INT_ENABLE3 0x1040
241
242 #define A_SGE_FL_BUFFER_SIZE0 0x1044
243 #define A_SGE_FL_BUFFER_SIZE1 0x1048
244 #define A_SGE_FL_BUFFER_SIZE2 0x104c
245 #define A_SGE_FL_BUFFER_SIZE3 0x1050
246
247 #define A_SGE_FLM_CFG 0x1090
248
249 #define S_CREDITCNT    4
250 #define M_CREDITCNT    0x3U
251 #define V_CREDITCNT(x) ((x) << S_CREDITCNT)
252 #define G_CREDITCNT(x) (((x) >> S_CREDITCNT) & M_CREDITCNT)
253
254 #define S_CREDITCNTPACKING    2
255 #define M_CREDITCNTPACKING    0x3U
256 #define V_CREDITCNTPACKING(x) ((x) << S_CREDITCNTPACKING)
257 #define G_CREDITCNTPACKING(x) (((x) >> S_CREDITCNTPACKING) & M_CREDITCNTPACKING)
258
259 #define A_SGE_CONM_CTRL 0x1094
260
261 #define S_T6_EGRTHRESHOLDPACKING    16
262 #define M_T6_EGRTHRESHOLDPACKING    0xffU
263 #define G_T6_EGRTHRESHOLDPACKING(x) (((x) >> S_T6_EGRTHRESHOLDPACKING) & \
264                                      M_T6_EGRTHRESHOLDPACKING)
265
266 #define S_EGRTHRESHOLD    8
267 #define M_EGRTHRESHOLD    0x3fU
268 #define V_EGRTHRESHOLD(x) ((x) << S_EGRTHRESHOLD)
269 #define G_EGRTHRESHOLD(x) (((x) >> S_EGRTHRESHOLD) & M_EGRTHRESHOLD)
270
271 #define S_EGRTHRESHOLDPACKING    14
272 #define M_EGRTHRESHOLDPACKING    0x3fU
273 #define V_EGRTHRESHOLDPACKING(x) ((x) << S_EGRTHRESHOLDPACKING)
274 #define G_EGRTHRESHOLDPACKING(x) (((x) >> S_EGRTHRESHOLDPACKING) & \
275                                   M_EGRTHRESHOLDPACKING)
276
277 #define S_INGTHRESHOLD    2
278 #define M_INGTHRESHOLD    0x3fU
279 #define V_INGTHRESHOLD(x) ((x) << S_INGTHRESHOLD)
280 #define G_INGTHRESHOLD(x) (((x) >> S_INGTHRESHOLD) & M_INGTHRESHOLD)
281
282 #define A_SGE_INGRESS_RX_THRESHOLD 0x10a0
283
284 #define S_THRESHOLD_0    24
285 #define M_THRESHOLD_0    0x3fU
286 #define V_THRESHOLD_0(x) ((x) << S_THRESHOLD_0)
287 #define G_THRESHOLD_0(x) (((x) >> S_THRESHOLD_0) & M_THRESHOLD_0)
288
289 #define S_THRESHOLD_1    16
290 #define M_THRESHOLD_1    0x3fU
291 #define V_THRESHOLD_1(x) ((x) << S_THRESHOLD_1)
292 #define G_THRESHOLD_1(x) (((x) >> S_THRESHOLD_1) & M_THRESHOLD_1)
293
294 #define S_THRESHOLD_2    8
295 #define M_THRESHOLD_2    0x3fU
296 #define V_THRESHOLD_2(x) ((x) << S_THRESHOLD_2)
297 #define G_THRESHOLD_2(x) (((x) >> S_THRESHOLD_2) & M_THRESHOLD_2)
298
299 #define S_THRESHOLD_3    0
300 #define M_THRESHOLD_3    0x3fU
301 #define V_THRESHOLD_3(x) ((x) << S_THRESHOLD_3)
302 #define G_THRESHOLD_3(x) (((x) >> S_THRESHOLD_3) & M_THRESHOLD_3)
303
304 #define A_SGE_TIMER_VALUE_0_AND_1 0x10b8
305
306 #define S_TIMERVALUE0    16
307 #define M_TIMERVALUE0    0xffffU
308 #define V_TIMERVALUE0(x) ((x) << S_TIMERVALUE0)
309 #define G_TIMERVALUE0(x) (((x) >> S_TIMERVALUE0) & M_TIMERVALUE0)
310
311 #define S_TIMERVALUE1    0
312 #define M_TIMERVALUE1    0xffffU
313 #define V_TIMERVALUE1(x) ((x) << S_TIMERVALUE1)
314 #define G_TIMERVALUE1(x) (((x) >> S_TIMERVALUE1) & M_TIMERVALUE1)
315
316 #define A_SGE_TIMER_VALUE_2_AND_3 0x10bc
317
318 #define S_TIMERVALUE2    16
319 #define M_TIMERVALUE2    0xffffU
320 #define V_TIMERVALUE2(x) ((x) << S_TIMERVALUE2)
321 #define G_TIMERVALUE2(x) (((x) >> S_TIMERVALUE2) & M_TIMERVALUE2)
322
323 #define S_TIMERVALUE3    0
324 #define M_TIMERVALUE3    0xffffU
325 #define V_TIMERVALUE3(x) ((x) << S_TIMERVALUE3)
326 #define G_TIMERVALUE3(x) (((x) >> S_TIMERVALUE3) & M_TIMERVALUE3)
327
328 #define A_SGE_TIMER_VALUE_4_AND_5 0x10c0
329
330 #define S_TIMERVALUE4    16
331 #define M_TIMERVALUE4    0xffffU
332 #define V_TIMERVALUE4(x) ((x) << S_TIMERVALUE4)
333 #define G_TIMERVALUE4(x) (((x) >> S_TIMERVALUE4) & M_TIMERVALUE4)
334
335 #define S_TIMERVALUE5    0
336 #define M_TIMERVALUE5    0xffffU
337 #define V_TIMERVALUE5(x) ((x) << S_TIMERVALUE5)
338 #define G_TIMERVALUE5(x) (((x) >> S_TIMERVALUE5) & M_TIMERVALUE5)
339
340 #define A_SGE_DEBUG_INDEX 0x10cc
341 #define A_SGE_DEBUG_DATA_HIGH 0x10d0
342 #define A_SGE_DEBUG_DATA_LOW 0x10d4
343 #define A_SGE_STAT_CFG 0x10ec
344
345 #define S_STATMODE    2
346 #define M_STATMODE    0x3U
347 #define V_STATMODE(x) ((x) << S_STATMODE)
348 #define G_STATMODE(x) (((x) >> S_STATMODE) & M_STATMODE)
349
350 #define S_STATSOURCE_T5    9
351 #define M_STATSOURCE_T5    0xfU
352 #define V_STATSOURCE_T5(x) ((x) << S_STATSOURCE_T5)
353 #define G_STATSOURCE_T5(x) (((x) >> S_STATSOURCE_T5) & M_STATSOURCE_T5)
354
355 #define A_SGE_INGRESS_QUEUES_PER_PAGE_PF 0x10f4
356 #define A_SGE_INGRESS_QUEUES_PER_PAGE_VF 0x10f8
357
358 #define A_SGE_CONTROL2 0x1124
359
360 #define S_IDMAARBROUNDROBIN    19
361 #define V_IDMAARBROUNDROBIN(x) ((x) << S_IDMAARBROUNDROBIN)
362 #define F_IDMAARBROUNDROBIN    V_IDMAARBROUNDROBIN(1U)
363
364 #define S_INGPACKBOUNDARY    16
365 #define M_INGPACKBOUNDARY    0x7U
366 #define V_INGPACKBOUNDARY(x) ((x) << S_INGPACKBOUNDARY)
367 #define G_INGPACKBOUNDARY(x) (((x) >> S_INGPACKBOUNDARY) & M_INGPACKBOUNDARY)
368
369 #define S_BUSY    31
370 #define V_BUSY(x) ((x) << S_BUSY)
371 #define F_BUSY    V_BUSY(1U)
372
373 #define A_SGE_DEBUG_DATA_HIGH_INDEX_10 0x12a8
374 #define A_SGE_DEBUG_DATA_LOW_INDEX_2 0x12c8
375 #define A_SGE_DEBUG_DATA_LOW_INDEX_3 0x12cc
376
377 /* registers for module PCIE */
378 #define PCIE_BASE_ADDR 0x3000
379
380 #define A_PCIE_MEM_ACCESS_BASE_WIN 0x3068
381
382 #define S_PCIEOFST    10
383 #define M_PCIEOFST    0x3fffffU
384 #define V_PCIEOFST(x) ((x) << S_PCIEOFST)
385 #define G_PCIEOFST(x) (((x) >> S_PCIEOFST) & M_PCIEOFST)
386
387 #define S_BIR    8
388 #define M_BIR    0x3U
389 #define V_BIR(x) ((x) << S_BIR)
390 #define G_BIR(x) (((x) >> S_BIR) & M_BIR)
391
392 #define S_WINDOW    0
393 #define M_WINDOW    0xffU
394 #define V_WINDOW(x) ((x) << S_WINDOW)
395 #define G_WINDOW(x) (((x) >> S_WINDOW) & M_WINDOW)
396
397 #define A_PCIE_MEM_ACCESS_OFFSET 0x306c
398
399 #define S_PFNUM    0
400 #define M_PFNUM    0x7U
401 #define V_PFNUM(x) ((x) << S_PFNUM)
402 #define G_PFNUM(x) (((x) >> S_PFNUM) & M_PFNUM)
403
404 #define A_PCIE_FW 0x30b8
405 #define A_PCIE_FW_PF 0x30bc
406
407 #define A_PCIE_CFG2 0x3018
408
409 #define S_TOTMAXTAG    0
410 #define M_TOTMAXTAG    0x3U
411 #define V_TOTMAXTAG(x) ((x) << S_TOTMAXTAG)
412
413 #define S_T6_TOTMAXTAG    0
414 #define M_T6_TOTMAXTAG    0x7U
415 #define V_T6_TOTMAXTAG(x) ((x) << S_T6_TOTMAXTAG)
416
417 #define A_PCIE_CMD_CFG  0x5980
418
419 #define S_MINTAG        0
420 #define M_MINTAG        0xffU
421 #define V_MINTAG(x)     ((x) << S_MINTAG)
422
423 #define S_T6_MINTAG     0
424 #define M_T6_MINTAG     0xffU
425 #define V_T6_MINTAG(x)  ((x) << S_T6_MINTAG)
426
427 /* registers for module CIM */
428 #define CIM_BASE_ADDR 0x7b00
429
430 #define A_CIM_VF_EXT_MAILBOX_CTRL 0x0
431
432 #define A_CIM_PF_MAILBOX_DATA 0x240
433 #define A_CIM_PF_MAILBOX_CTRL 0x280
434
435 #define S_MBMSGVALID    3
436 #define V_MBMSGVALID(x) ((x) << S_MBMSGVALID)
437 #define F_MBMSGVALID    V_MBMSGVALID(1U)
438
439 #define S_MBOWNER    0
440 #define M_MBOWNER    0x3U
441 #define V_MBOWNER(x) ((x) << S_MBOWNER)
442 #define G_MBOWNER(x) (((x) >> S_MBOWNER) & M_MBOWNER)
443
444 #define A_CIM_PF_MAILBOX_CTRL_SHADOW_COPY 0x290
445 #define A_CIM_BOOT_CFG 0x7b00
446
447 #define S_UPCRST    0
448 #define V_UPCRST(x) ((x) << S_UPCRST)
449 #define F_UPCRST    V_UPCRST(1U)
450
451 #define NUM_CIM_PF_MAILBOX_DATA_INSTANCES 16
452
453 /* registers for module TP */
454 #define A_TP_OUT_CONFIG 0x7d04
455
456 #define S_CRXPKTENC    3
457 #define V_CRXPKTENC(x) ((x) << S_CRXPKTENC)
458 #define F_CRXPKTENC    V_CRXPKTENC(1U)
459
460 #define TP_BASE_ADDR 0x7d00
461 #define A_TP_CMM_TCB_BASE 0x7d10
462
463 #define A_TP_TIMER_RESOLUTION 0x7d90
464
465 #define S_TIMERRESOLUTION    16
466 #define M_TIMERRESOLUTION    0xffU
467 #define V_TIMERRESOLUTION(x) ((x) << S_TIMERRESOLUTION)
468 #define G_TIMERRESOLUTION(x) (((x) >> S_TIMERRESOLUTION) & M_TIMERRESOLUTION)
469
470 #define S_DELAYEDACKRESOLUTION    0
471 #define M_DELAYEDACKRESOLUTION    0xffU
472 #define V_DELAYEDACKRESOLUTION(x) ((x) << S_DELAYEDACKRESOLUTION)
473 #define G_DELAYEDACKRESOLUTION(x) (((x) >> S_DELAYEDACKRESOLUTION) & \
474                                    M_DELAYEDACKRESOLUTION)
475
476 #define A_TP_CCTRL_TABLE 0x7ddc
477
478 #define A_TP_MTU_TABLE 0x7de4
479
480 #define S_MTUINDEX    24
481 #define M_MTUINDEX    0xffU
482 #define V_MTUINDEX(x) ((x) << S_MTUINDEX)
483 #define G_MTUINDEX(x) (((x) >> S_MTUINDEX) & M_MTUINDEX)
484
485 #define S_MTUWIDTH    16
486 #define M_MTUWIDTH    0xfU
487 #define V_MTUWIDTH(x) ((x) << S_MTUWIDTH)
488 #define G_MTUWIDTH(x) (((x) >> S_MTUWIDTH) & M_MTUWIDTH)
489
490 #define S_MTUVALUE    0
491 #define M_MTUVALUE    0x3fffU
492 #define V_MTUVALUE(x) ((x) << S_MTUVALUE)
493 #define G_MTUVALUE(x) (((x) >> S_MTUVALUE) & M_MTUVALUE)
494
495 #define A_TP_RSS_CONFIG_VRT 0x7e00
496
497 #define S_KEYMODE    6
498 #define M_KEYMODE    0x3U
499 #define G_KEYMODE(x) (((x) >> S_KEYMODE) & M_KEYMODE)
500
501 #define S_KEYWRADDR    0
502 #define V_KEYWRADDR(x) ((x) << S_KEYWRADDR)
503
504 #define S_KEYWREN    4
505 #define V_KEYWREN(x) ((x) << S_KEYWREN)
506 #define F_KEYWREN    V_KEYWREN(1U)
507
508 #define S_KEYWRADDRX    30
509 #define V_KEYWRADDRX(x) ((x) << S_KEYWRADDRX)
510
511 #define S_KEYEXTEND    26
512 #define V_KEYEXTEND(x) ((x) << S_KEYEXTEND)
513 #define F_KEYEXTEND    V_KEYEXTEND(1U)
514
515 #define S_T6_VFWRADDR    8
516 #define V_T6_VFWRADDR(x) ((x) << S_T6_VFWRADDR)
517
518 #define A_TP_PIO_ADDR 0x7e40
519 #define A_TP_PIO_DATA 0x7e44
520
521 #define A_TP_RSS_SECRET_KEY0 0x40
522
523 #define A_TP_VLAN_PRI_MAP 0x140
524
525 #define S_FRAGMENTATION    9
526 #define V_FRAGMENTATION(x) ((x) << S_FRAGMENTATION)
527 #define F_FRAGMENTATION    V_FRAGMENTATION(1U)
528
529 #define S_MPSHITTYPE    8
530 #define V_MPSHITTYPE(x) ((x) << S_MPSHITTYPE)
531 #define F_MPSHITTYPE    V_MPSHITTYPE(1U)
532
533 #define S_MACMATCH    7
534 #define V_MACMATCH(x) ((x) << S_MACMATCH)
535 #define F_MACMATCH    V_MACMATCH(1U)
536
537 #define S_ETHERTYPE    6
538 #define V_ETHERTYPE(x) ((x) << S_ETHERTYPE)
539 #define F_ETHERTYPE    V_ETHERTYPE(1U)
540
541 #define S_PROTOCOL    5
542 #define V_PROTOCOL(x) ((x) << S_PROTOCOL)
543 #define F_PROTOCOL    V_PROTOCOL(1U)
544
545 #define S_TOS    4
546 #define V_TOS(x) ((x) << S_TOS)
547 #define F_TOS    V_TOS(1U)
548
549 #define S_VLAN    3
550 #define V_VLAN(x) ((x) << S_VLAN)
551 #define F_VLAN    V_VLAN(1U)
552
553 #define S_VNIC_ID    2
554 #define V_VNIC_ID(x) ((x) << S_VNIC_ID)
555 #define F_VNIC_ID    V_VNIC_ID(1U)
556
557 #define S_PORT    1
558 #define V_PORT(x) ((x) << S_PORT)
559 #define F_PORT    V_PORT(1U)
560
561 #define S_FCOE    0
562 #define V_FCOE(x) ((x) << S_FCOE)
563 #define F_FCOE    V_FCOE(1U)
564
565 #define A_TP_INGRESS_CONFIG 0x141
566
567 #define S_VNIC    11
568 #define V_VNIC(x) ((x) << S_VNIC)
569 #define F_VNIC    V_VNIC(1U)
570
571 #define S_CSUM_HAS_PSEUDO_HDR    10
572 #define V_CSUM_HAS_PSEUDO_HDR(x) ((x) << S_CSUM_HAS_PSEUDO_HDR)
573 #define F_CSUM_HAS_PSEUDO_HDR    V_CSUM_HAS_PSEUDO_HDR(1U)
574
575 #define S_RM_OVLAN      9
576 #define V_RM_OVLAN(x)   ((x) << S_RM_OVLAN)
577
578 /* registers for module MA */
579 #define A_MA_EDRAM0_BAR 0x77c0
580
581 #define S_EDRAM0_SIZE    0
582 #define M_EDRAM0_SIZE    0xfffU
583 #define V_EDRAM0_SIZE(x) ((x) << S_EDRAM0_SIZE)
584 #define G_EDRAM0_SIZE(x) (((x) >> S_EDRAM0_SIZE) & M_EDRAM0_SIZE)
585
586 #define A_MA_EXT_MEMORY0_BAR 0x77c8
587
588 #define S_EXT_MEM0_SIZE    0
589 #define M_EXT_MEM0_SIZE    0xfffU
590 #define V_EXT_MEM0_SIZE(x) ((x) << S_EXT_MEM0_SIZE)
591 #define G_EXT_MEM0_SIZE(x) (((x) >> S_EXT_MEM0_SIZE) & M_EXT_MEM0_SIZE)
592
593 /* registers for module MPS */
594 #define MPS_BASE_ADDR 0x9000
595 #define T4VF_MPS_BASE_ADDR 0x0100
596
597 #define S_REPLICATE    11
598 #define V_REPLICATE(x) ((x) << S_REPLICATE)
599 #define F_REPLICATE    V_REPLICATE(1U)
600
601 #define S_PF    8
602 #define M_PF    0x7U
603 #define V_PF(x) ((x) << S_PF)
604 #define G_PF(x) (((x) >> S_PF) & M_PF)
605
606 #define S_VF_VALID    7
607 #define V_VF_VALID(x) ((x) << S_VF_VALID)
608 #define F_VF_VALID    V_VF_VALID(1U)
609
610 #define S_VF    0
611 #define M_VF    0x7fU
612 #define V_VF(x) ((x) << S_VF)
613 #define G_VF(x) (((x) >> S_VF) & M_VF)
614
615 #define A_MPS_STAT_CTL 0x9600
616
617 #define S_COUNTPAUSEMCRX    5
618 #define V_COUNTPAUSEMCRX(x) ((x) << S_COUNTPAUSEMCRX)
619 #define F_COUNTPAUSEMCRX    V_COUNTPAUSEMCRX(1U)
620
621 #define S_COUNTPAUSESTATRX    4
622 #define V_COUNTPAUSESTATRX(x) ((x) << S_COUNTPAUSESTATRX)
623 #define F_COUNTPAUSESTATRX    V_COUNTPAUSESTATRX(1U)
624
625 #define S_COUNTPAUSEMCTX    3
626 #define V_COUNTPAUSEMCTX(x) ((x) << S_COUNTPAUSEMCTX)
627 #define F_COUNTPAUSEMCTX    V_COUNTPAUSEMCTX(1U)
628
629 #define S_COUNTPAUSESTATTX    2
630 #define V_COUNTPAUSESTATTX(x) ((x) << S_COUNTPAUSESTATTX)
631 #define F_COUNTPAUSESTATTX    V_COUNTPAUSESTATTX(1U)
632
633 #define A_MPS_PORT_STAT_TX_PORT_BYTES_L 0x400
634 #define A_MPS_PORT_STAT_TX_PORT_BYTES_H 0x404
635 #define A_MPS_PORT_STAT_TX_PORT_FRAMES_L 0x408
636 #define A_MPS_PORT_STAT_TX_PORT_FRAMES_H 0x40c
637 #define A_MPS_PORT_STAT_TX_PORT_BCAST_L 0x410
638 #define A_MPS_PORT_STAT_TX_PORT_BCAST_H 0x414
639 #define A_MPS_PORT_STAT_TX_PORT_MCAST_L 0x418
640 #define A_MPS_PORT_STAT_TX_PORT_MCAST_H 0x41c
641 #define A_MPS_PORT_STAT_TX_PORT_UCAST_L 0x420
642 #define A_MPS_PORT_STAT_TX_PORT_UCAST_H 0x424
643 #define A_MPS_PORT_STAT_TX_PORT_ERROR_L 0x428
644 #define A_MPS_PORT_STAT_TX_PORT_ERROR_H 0x42c
645 #define A_MPS_PORT_STAT_TX_PORT_64B_L 0x430
646 #define A_MPS_PORT_STAT_TX_PORT_64B_H 0x434
647 #define A_MPS_PORT_STAT_TX_PORT_65B_127B_L 0x438
648 #define A_MPS_PORT_STAT_TX_PORT_65B_127B_H 0x43c
649 #define A_MPS_PORT_STAT_TX_PORT_128B_255B_L 0x440
650 #define A_MPS_PORT_STAT_TX_PORT_128B_255B_H 0x444
651 #define A_MPS_PORT_STAT_TX_PORT_256B_511B_L 0x448
652 #define A_MPS_PORT_STAT_TX_PORT_256B_511B_H 0x44c
653 #define A_MPS_PORT_STAT_TX_PORT_512B_1023B_L 0x450
654 #define A_MPS_PORT_STAT_TX_PORT_512B_1023B_H 0x454
655 #define A_MPS_PORT_STAT_TX_PORT_1024B_1518B_L 0x458
656 #define A_MPS_PORT_STAT_TX_PORT_1024B_1518B_H 0x45c
657 #define A_MPS_PORT_STAT_TX_PORT_1519B_MAX_L 0x460
658 #define A_MPS_PORT_STAT_TX_PORT_1519B_MAX_H 0x464
659 #define A_MPS_PORT_STAT_TX_PORT_DROP_L 0x468
660 #define A_MPS_PORT_STAT_TX_PORT_DROP_H 0x46c
661 #define A_MPS_PORT_STAT_TX_PORT_PAUSE_L 0x470
662 #define A_MPS_PORT_STAT_TX_PORT_PAUSE_H 0x474
663 #define A_MPS_PORT_STAT_TX_PORT_PPP0_L 0x478
664 #define A_MPS_PORT_STAT_TX_PORT_PPP0_H 0x47c
665 #define A_MPS_PORT_STAT_TX_PORT_PPP1_L 0x480
666 #define A_MPS_PORT_STAT_TX_PORT_PPP1_H 0x484
667 #define A_MPS_PORT_STAT_TX_PORT_PPP2_L 0x488
668 #define A_MPS_PORT_STAT_TX_PORT_PPP2_H 0x48c
669 #define A_MPS_PORT_STAT_TX_PORT_PPP3_L 0x490
670 #define A_MPS_PORT_STAT_TX_PORT_PPP3_H 0x494
671 #define A_MPS_PORT_STAT_TX_PORT_PPP4_L 0x498
672 #define A_MPS_PORT_STAT_TX_PORT_PPP4_H 0x49c
673 #define A_MPS_PORT_STAT_TX_PORT_PPP5_L 0x4a0
674 #define A_MPS_PORT_STAT_TX_PORT_PPP5_H 0x4a4
675 #define A_MPS_PORT_STAT_TX_PORT_PPP6_L 0x4a8
676 #define A_MPS_PORT_STAT_TX_PORT_PPP6_H 0x4ac
677 #define A_MPS_PORT_STAT_TX_PORT_PPP7_L 0x4b0
678 #define A_MPS_PORT_STAT_TX_PORT_PPP7_H 0x4b4
679 #define A_MPS_PORT_STAT_LB_PORT_BYTES_L 0x4c0
680 #define A_MPS_PORT_STAT_LB_PORT_BYTES_H 0x4c4
681 #define A_MPS_PORT_STAT_LB_PORT_FRAMES_L 0x4c8
682 #define A_MPS_PORT_STAT_LB_PORT_FRAMES_H 0x4cc
683 #define A_MPS_PORT_STAT_LB_PORT_BCAST_L 0x4d0
684 #define A_MPS_PORT_STAT_LB_PORT_BCAST_H 0x4d4
685 #define A_MPS_PORT_STAT_LB_PORT_MCAST_L 0x4d8
686 #define A_MPS_PORT_STAT_LB_PORT_MCAST_H 0x4dc
687 #define A_MPS_PORT_STAT_LB_PORT_UCAST_L 0x4e0
688 #define A_MPS_PORT_STAT_LB_PORT_UCAST_H 0x4e4
689 #define A_MPS_PORT_STAT_LB_PORT_ERROR_L 0x4e8
690 #define A_MPS_PORT_STAT_LB_PORT_ERROR_H 0x4ec
691 #define A_MPS_PORT_STAT_LB_PORT_64B_L 0x4f0
692 #define A_MPS_PORT_STAT_LB_PORT_64B_H 0x4f4
693 #define A_MPS_PORT_STAT_LB_PORT_65B_127B_L 0x4f8
694 #define A_MPS_PORT_STAT_LB_PORT_65B_127B_H 0x4fc
695 #define A_MPS_PORT_STAT_LB_PORT_128B_255B_L 0x500
696 #define A_MPS_PORT_STAT_LB_PORT_128B_255B_H 0x504
697 #define A_MPS_PORT_STAT_LB_PORT_256B_511B_L 0x508
698 #define A_MPS_PORT_STAT_LB_PORT_256B_511B_H 0x50c
699 #define A_MPS_PORT_STAT_LB_PORT_512B_1023B_L 0x510
700 #define A_MPS_PORT_STAT_LB_PORT_512B_1023B_H 0x514
701 #define A_MPS_PORT_STAT_LB_PORT_1024B_1518B_L 0x518
702 #define A_MPS_PORT_STAT_LB_PORT_1024B_1518B_H 0x51c
703 #define A_MPS_PORT_STAT_LB_PORT_1519B_MAX_L 0x520
704 #define A_MPS_PORT_STAT_LB_PORT_1519B_MAX_H 0x524
705 #define A_MPS_PORT_STAT_LB_PORT_DROP_FRAMES 0x528
706 #define A_MPS_PORT_STAT_LB_PORT_DROP_FRAMES_L 0x528
707 #define A_MPS_PORT_STAT_LB_PORT_DROP_FRAMES_H 0x52c
708 #define A_MPS_PORT_STAT_RX_PORT_BYTES_L 0x540
709 #define A_MPS_PORT_STAT_RX_PORT_BYTES_H 0x544
710 #define A_MPS_PORT_STAT_RX_PORT_FRAMES_L 0x548
711 #define A_MPS_PORT_STAT_RX_PORT_FRAMES_H 0x54c
712 #define A_MPS_PORT_STAT_RX_PORT_BCAST_L 0x550
713 #define A_MPS_PORT_STAT_RX_PORT_BCAST_H 0x554
714 #define A_MPS_PORT_STAT_RX_PORT_MCAST_L 0x558
715 #define A_MPS_PORT_STAT_RX_PORT_MCAST_H 0x55c
716 #define A_MPS_PORT_STAT_RX_PORT_UCAST_L 0x560
717 #define A_MPS_PORT_STAT_RX_PORT_UCAST_H 0x564
718 #define A_MPS_PORT_STAT_RX_PORT_MTU_ERROR_L 0x568
719 #define A_MPS_PORT_STAT_RX_PORT_MTU_ERROR_H 0x56c
720 #define A_MPS_PORT_STAT_RX_PORT_MTU_CRC_ERROR_L 0x570
721 #define A_MPS_PORT_STAT_RX_PORT_MTU_CRC_ERROR_H 0x574
722 #define A_MPS_PORT_STAT_RX_PORT_CRC_ERROR_L 0x578
723 #define A_MPS_PORT_STAT_RX_PORT_CRC_ERROR_H 0x57c
724 #define A_MPS_PORT_STAT_RX_PORT_LEN_ERROR_L 0x580
725 #define A_MPS_PORT_STAT_RX_PORT_LEN_ERROR_H 0x584
726 #define A_MPS_PORT_STAT_RX_PORT_SYM_ERROR_L 0x588
727 #define A_MPS_PORT_STAT_RX_PORT_SYM_ERROR_H 0x58c
728 #define A_MPS_PORT_STAT_RX_PORT_64B_L 0x590
729 #define A_MPS_PORT_STAT_RX_PORT_64B_H 0x594
730 #define A_MPS_PORT_STAT_RX_PORT_65B_127B_L 0x598
731 #define A_MPS_PORT_STAT_RX_PORT_65B_127B_H 0x59c
732 #define A_MPS_PORT_STAT_RX_PORT_128B_255B_L 0x5a0
733 #define A_MPS_PORT_STAT_RX_PORT_128B_255B_H 0x5a4
734 #define A_MPS_PORT_STAT_RX_PORT_256B_511B_L 0x5a8
735 #define A_MPS_PORT_STAT_RX_PORT_256B_511B_H 0x5ac
736 #define A_MPS_PORT_STAT_RX_PORT_512B_1023B_L 0x5b0
737 #define A_MPS_PORT_STAT_RX_PORT_512B_1023B_H 0x5b4
738 #define A_MPS_PORT_STAT_RX_PORT_1024B_1518B_L 0x5b8
739 #define A_MPS_PORT_STAT_RX_PORT_1024B_1518B_H 0x5bc
740 #define A_MPS_PORT_STAT_RX_PORT_1519B_MAX_L 0x5c0
741 #define A_MPS_PORT_STAT_RX_PORT_1519B_MAX_H 0x5c4
742 #define A_MPS_PORT_STAT_RX_PORT_PAUSE_L 0x5c8
743 #define A_MPS_PORT_STAT_RX_PORT_PAUSE_H 0x5cc
744 #define A_MPS_PORT_STAT_RX_PORT_PPP0_L 0x5d0
745 #define A_MPS_PORT_STAT_RX_PORT_PPP0_H 0x5d4
746 #define A_MPS_PORT_STAT_RX_PORT_PPP1_L 0x5d8
747 #define A_MPS_PORT_STAT_RX_PORT_PPP1_H 0x5dc
748 #define A_MPS_PORT_STAT_RX_PORT_PPP2_L 0x5e0
749 #define A_MPS_PORT_STAT_RX_PORT_PPP2_H 0x5e4
750 #define A_MPS_PORT_STAT_RX_PORT_PPP3_L 0x5e8
751 #define A_MPS_PORT_STAT_RX_PORT_PPP3_H 0x5ec
752 #define A_MPS_PORT_STAT_RX_PORT_PPP4_L 0x5f0
753 #define A_MPS_PORT_STAT_RX_PORT_PPP4_H 0x5f4
754 #define A_MPS_PORT_STAT_RX_PORT_PPP5_L 0x5f8
755 #define A_MPS_PORT_STAT_RX_PORT_PPP5_H 0x5fc
756 #define A_MPS_PORT_STAT_RX_PORT_PPP6_L 0x600
757 #define A_MPS_PORT_STAT_RX_PORT_PPP6_H 0x604
758 #define A_MPS_PORT_STAT_RX_PORT_PPP7_L 0x608
759 #define A_MPS_PORT_STAT_RX_PORT_PPP7_H 0x60c
760 #define A_MPS_PORT_STAT_RX_PORT_LESS_64B_L 0x610
761 #define A_MPS_PORT_STAT_RX_PORT_LESS_64B_H 0x614
762 #define A_MPS_CMN_CTL 0x9000
763
764 #define S_NUMPORTS    0
765 #define M_NUMPORTS    0x3U
766 #define V_NUMPORTS(x) ((x) << S_NUMPORTS)
767 #define G_NUMPORTS(x) (((x) >> S_NUMPORTS) & M_NUMPORTS)
768
769 #define A_MPS_STAT_RX_BG_0_MAC_DROP_FRAME_L 0x9640
770 #define A_MPS_STAT_RX_BG_0_MAC_DROP_FRAME_H 0x9644
771 #define A_MPS_STAT_RX_BG_1_MAC_DROP_FRAME_L 0x9648
772 #define A_MPS_STAT_RX_BG_1_MAC_DROP_FRAME_H 0x964c
773 #define A_MPS_STAT_RX_BG_2_MAC_DROP_FRAME_L 0x9650
774 #define A_MPS_STAT_RX_BG_2_MAC_DROP_FRAME_H 0x9654
775 #define A_MPS_STAT_RX_BG_3_MAC_DROP_FRAME_L 0x9658
776 #define A_MPS_STAT_RX_BG_3_MAC_DROP_FRAME_H 0x965c
777 #define A_MPS_STAT_RX_BG_0_LB_DROP_FRAME_L 0x9660
778 #define A_MPS_STAT_RX_BG_0_LB_DROP_FRAME_H 0x9664
779 #define A_MPS_STAT_RX_BG_1_LB_DROP_FRAME_L 0x9668
780 #define A_MPS_STAT_RX_BG_1_LB_DROP_FRAME_H 0x966c
781 #define A_MPS_STAT_RX_BG_2_LB_DROP_FRAME_L 0x9670
782 #define A_MPS_STAT_RX_BG_2_LB_DROP_FRAME_H 0x9674
783 #define A_MPS_STAT_RX_BG_3_LB_DROP_FRAME_L 0x9678
784 #define A_MPS_STAT_RX_BG_3_LB_DROP_FRAME_H 0x967c
785 #define A_MPS_STAT_RX_BG_0_MAC_TRUNC_FRAME_L 0x9680
786 #define A_MPS_STAT_RX_BG_0_MAC_TRUNC_FRAME_H 0x9684
787 #define A_MPS_STAT_RX_BG_1_MAC_TRUNC_FRAME_L 0x9688
788 #define A_MPS_STAT_RX_BG_1_MAC_TRUNC_FRAME_H 0x968c
789 #define A_MPS_STAT_RX_BG_2_MAC_TRUNC_FRAME_L 0x9690
790 #define A_MPS_STAT_RX_BG_2_MAC_TRUNC_FRAME_H 0x9694
791 #define A_MPS_STAT_RX_BG_3_MAC_TRUNC_FRAME_L 0x9698
792 #define A_MPS_STAT_RX_BG_3_MAC_TRUNC_FRAME_H 0x969c
793 #define A_MPS_STAT_RX_BG_0_LB_TRUNC_FRAME_L 0x96a0
794 #define A_MPS_STAT_RX_BG_0_LB_TRUNC_FRAME_H 0x96a4
795 #define A_MPS_STAT_RX_BG_1_LB_TRUNC_FRAME_L 0x96a8
796 #define A_MPS_STAT_RX_BG_1_LB_TRUNC_FRAME_H 0x96ac
797 #define A_MPS_STAT_RX_BG_2_LB_TRUNC_FRAME_L 0x96b0
798 #define A_MPS_STAT_RX_BG_2_LB_TRUNC_FRAME_H 0x96b4
799 #define A_MPS_STAT_RX_BG_3_LB_TRUNC_FRAME_L 0x96b8
800 #define A_MPS_STAT_RX_BG_3_LB_TRUNC_FRAME_H 0x96bc
801
802 #define A_MPS_VF_STAT_TX_VF_BCAST_BYTES_L 0x80
803 #define A_MPS_VF_STAT_TX_VF_BCAST_FRAMES_L 0x88
804 #define A_MPS_VF_STAT_TX_VF_MCAST_BYTES_L 0x90
805 #define A_MPS_VF_STAT_TX_VF_MCAST_FRAMES_L 0x98
806 #define A_MPS_VF_STAT_TX_VF_UCAST_BYTES_L 0xa0
807 #define A_MPS_VF_STAT_TX_VF_UCAST_FRAMES_L 0xa8
808 #define A_MPS_VF_STAT_TX_VF_DROP_FRAMES_L 0xb0
809 #define A_MPS_VF_STAT_RX_VF_BCAST_FRAMES_L 0xd0
810 #define A_MPS_VF_STAT_RX_VF_MCAST_FRAMES_L 0xe0
811 #define A_MPS_VF_STAT_RX_VF_UCAST_FRAMES_L 0xf0
812 #define A_MPS_VF_STAT_RX_VF_ERR_FRAMES_L 0xf8
813
814 #define A_MPS_PORT0_RX_IVLAN    0x3011c
815
816 #define S_IVLAN_ETYPE           0
817 #define M_IVLAN_ETYPE           0xffffU
818 #define V_IVLAN_ETYPE(x)        ((x) << S_IVLAN_ETYPE)
819
820 #define MPS_PORT_RX_IVLAN_STRIDE        0x4000
821 #define MPS_PORT_RX_IVLAN(idx)          \
822         (A_MPS_PORT0_RX_IVLAN + (idx) * MPS_PORT_RX_IVLAN_STRIDE)
823
824 #define A_MPS_PORT0_RX_OVLAN0   0x30120
825
826 #define S_OVLAN_MASK    16
827 #define M_OVLAN_MASK    0xffffU
828 #define V_OVLAN_MASK(x) ((x) << S_OVLAN_MASK)
829
830 #define S_OVLAN_ETYPE           0
831 #define M_OVLAN_ETYPE           0xffffU
832 #define V_OVLAN_ETYPE(x)        ((x) << S_OVLAN_ETYPE)
833
834 #define MPS_PORT_RX_OVLAN_STRIDE        0x4000
835 #define MPS_PORT_RX_OVLAN_BASE(idx)     \
836 (A_MPS_PORT0_RX_OVLAN0 + (idx) * MPS_PORT_RX_OVLAN_STRIDE)
837 #define MPS_PORT_RX_OVLAN_REG(idx, reg) (MPS_PORT_RX_OVLAN_BASE(idx) + (reg))
838
839 #define A_RX_OVLAN0     0x0
840 #define A_RX_OVLAN1     0x4
841 #define A_RX_OVLAN2     0x8
842
843 #define A_MPS_PORT0_RX_CTL      0x30100
844
845 #define S_OVLAN_EN0     0
846 #define V_OVLAN_EN0(x)  ((x) << S_OVLAN_EN0)
847 #define F_OVLAN_EN0     V_OVLAN_EN0(1)
848
849 #define S_OVLAN_EN1     1
850 #define V_OVLAN_EN1(x)  ((x) << S_OVLAN_EN1)
851 #define F_OVLAN_EN1     V_OVLAN_EN1(1)
852
853 #define S_OVLAN_EN2     2
854 #define V_OVLAN_EN2(x)  ((x) << S_OVLAN_EN2)
855 #define F_OVLAN_EN2     V_OVLAN_EN2(1)
856
857 #define S_IVLAN_EN      4
858 #define V_IVLAN_EN(x)   ((x) << S_IVLAN_EN)
859 #define F_IVLAN_EN      V_IVLAN_EN(1)
860
861 #define MPS_PORT_RX_CTL_STRIDE  0x4000
862 #define MPS_PORT_RX_CTL(idx)    \
863         (A_MPS_PORT0_RX_CTL + (idx) * MPS_PORT_RX_CTL_STRIDE)
864
865 /* registers for module ULP_RX */
866 #define ULP_RX_BASE_ADDR 0x19150
867
868 #define S_HPZ0    0
869 #define M_HPZ0    0xfU
870 #define V_HPZ0(x) ((x) << S_HPZ0)
871 #define G_HPZ0(x) (((x) >> S_HPZ0) & M_HPZ0)
872
873 #define A_ULP_RX_TDDP_PSZ 0x19178
874
875 /* registers for module SF */
876 #define SF_BASE_ADDR 0x193f8
877
878 #define A_SF_DATA 0x193f8
879 #define A_SF_OP 0x193fc
880
881 #define S_SF_LOCK    4
882 #define V_SF_LOCK(x) ((x) << S_SF_LOCK)
883 #define F_SF_LOCK    V_SF_LOCK(1U)
884
885 #define S_CONT    3
886 #define V_CONT(x) ((x) << S_CONT)
887 #define F_CONT    V_CONT(1U)
888
889 #define S_BYTECNT    1
890 #define M_BYTECNT    0x3U
891 #define V_BYTECNT(x) ((x) << S_BYTECNT)
892 #define G_BYTECNT(x) (((x) >> S_BYTECNT) & M_BYTECNT)
893
894 #define S_OP    0
895 #define V_OP(x) ((x) << S_OP)
896 #define F_OP    V_OP(1U)
897
898 /* registers for module PL */
899 #define PL_BASE_ADDR 0x19400
900
901 #define S_SOURCEPF    8
902 #define M_SOURCEPF    0x7U
903 #define V_SOURCEPF(x) ((x) << S_SOURCEPF)
904 #define G_SOURCEPF(x) (((x) >> S_SOURCEPF) & M_SOURCEPF)
905
906 #define S_T6_SOURCEPF    9
907 #define M_T6_SOURCEPF    0x7U
908 #define V_T6_SOURCEPF(x) ((x) << S_T6_SOURCEPF)
909 #define G_T6_SOURCEPF(x) (((x) >> S_T6_SOURCEPF) & M_T6_SOURCEPF)
910
911 #define A_PL_PF_INT_ENABLE 0x3c4
912
913 #define S_PFSW    3
914 #define V_PFSW(x) ((x) << S_PFSW)
915 #define F_PFSW    V_PFSW(1U)
916
917 #define S_PFCIM    1
918 #define V_PFCIM(x) ((x) << S_PFCIM)
919 #define F_PFCIM    V_PFCIM(1U)
920
921 #define A_PL_WHOAMI 0x19400
922 #define A_PL_VF_WHOAMI 0x0
923
924 #define A_PL_RST 0x19428
925
926 #define A_PL_INT_MAP0 0x19414
927
928 #define S_PIORST    1
929 #define V_PIORST(x) ((x) << S_PIORST)
930 #define F_PIORST    V_PIORST(1U)
931
932 #define S_PIORSTMODE    0
933 #define V_PIORSTMODE(x) ((x) << S_PIORSTMODE)
934 #define F_PIORSTMODE    V_PIORSTMODE(1U)
935
936 #define A_PL_REV 0x1943c
937 #define A_PL_VF_REV 0x4
938
939 #define S_REV    0
940 #define M_REV    0xfU
941 #define V_REV(x) ((x) << S_REV)
942 #define G_REV(x) (((x) >> S_REV) & M_REV)
943
944 /* registers for module LE */
945 #define A_LE_DB_CONFIG 0x19c04
946
947 #define S_HASHEN    20
948 #define V_HASHEN(x) ((x) << S_HASHEN)
949 #define F_HASHEN    V_HASHEN(1U)
950
951 #define A_LE_DB_TID_HASHBASE 0x19df8
952
953 #define LE_3_DB_HASH_MASK_GEN_IPV4_T6_A 0x19eac
954 #define LE_4_DB_HASH_MASK_GEN_IPV4_T6_A 0x19eb0