2 * Copyright (c) 2011 Chelsio Communications, Inc.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 #ifndef _T4FW_INTERFACE_H_
31 #define _T4FW_INTERFACE_H_
33 /******************************************************************************
34 * R E T U R N V A L U E S
35 ********************************/
38 FW_SUCCESS = 0, /* completed sucessfully */
39 FW_EPERM = 1, /* operation not permitted */
40 FW_EIO = 5, /* input/output error; hw bad */
41 FW_ENOEXEC = 8, /* Exec format error; inv microcode */
42 FW_EAGAIN = 11, /* try again */
43 FW_ENOMEM = 12, /* out of memory */
44 FW_EFAULT = 14, /* bad address; fw bad */
45 FW_EBUSY = 16, /* resource busy */
46 FW_EEXIST = 17, /* File exists */
47 FW_EINVAL = 22, /* invalid argument */
48 FW_ENOSYS = 38, /* functionality not implemented */
49 FW_EPROTO = 71, /* protocol error */
50 FW_ETIMEDOUT = 110, /* timeout */
51 FW_EINPROGRESS = 115, /* fw internal */
52 FW_SCSI_ABORT_REQUESTED = 128, /* */
53 FW_SCSI_ABORT_TIMEDOUT = 129, /* */
54 FW_SCSI_ABORTED = 130, /* */
55 FW_SCSI_CLOSE_REQUESTED = 131, /* */
56 FW_ERR_LINK_DOWN = 132, /* */
57 FW_RDEV_NOT_READY = 133, /* */
58 FW_ERR_RDEV_LOST = 134, /* */
59 FW_ERR_RDEV_LOGO = 135, /* */
60 FW_FCOE_NO_XCHG = 136, /* */
61 FW_SCSI_RSP_ERR = 137, /* */
62 FW_ERR_RDEV_IMPL_LOGO = 138, /* */
63 FW_SCSI_UNDER_FLOW_ERR = 139, /* */
64 FW_SCSI_OVER_FLOW_ERR = 140, /* */
67 /******************************************************************************
68 * W O R K R E Q U E S T s
69 ********************************/
75 FW_ETH_TX_PKT_WR = 0x08,
76 FW_ETH_TX_PKTS_WR = 0x09,
77 FW_EQ_FLUSH_WR = 0x1b,
79 FW_OFLD_TX_DATA_WR = 0x0b,
81 FW_ETH_TX_PKT_VM_WR = 0x11,
83 FW_RI_RDMA_WRITE_WR = 0x14,
85 FW_RI_RDMA_READ_WR = 0x16,
87 FW_RI_BIND_MW_WR = 0x18,
88 FW_RI_FR_NSMR_WR = 0x19,
89 FW_RI_INV_LSTAG_WR = 0x1a,
91 FW_ISCSI_NODE_WR = 0x4a,
96 * Generic work request header flit0
103 /* work request opcode (hi)
105 #define S_FW_WR_OP 24
106 #define M_FW_WR_OP 0xff
107 #define V_FW_WR_OP(x) ((x) << S_FW_WR_OP)
108 #define G_FW_WR_OP(x) (((x) >> S_FW_WR_OP) & M_FW_WR_OP)
110 /* atomic flag (hi) - firmware encapsulates CPLs in CPL_BARRIER
112 #define S_FW_WR_ATOMIC 23
113 #define M_FW_WR_ATOMIC 0x1
114 #define V_FW_WR_ATOMIC(x) ((x) << S_FW_WR_ATOMIC)
115 #define G_FW_WR_ATOMIC(x) \
116 (((x) >> S_FW_WR_ATOMIC) & M_FW_WR_ATOMIC)
117 #define F_FW_WR_ATOMIC V_FW_WR_ATOMIC(1U)
119 /* flush flag (hi) - firmware flushes flushable work request buffered
120 * in the flow context.
122 #define S_FW_WR_FLUSH 22
123 #define M_FW_WR_FLUSH 0x1
124 #define V_FW_WR_FLUSH(x) ((x) << S_FW_WR_FLUSH)
125 #define G_FW_WR_FLUSH(x) \
126 (((x) >> S_FW_WR_FLUSH) & M_FW_WR_FLUSH)
127 #define F_FW_WR_FLUSH V_FW_WR_FLUSH(1U)
129 /* completion flag (hi) - firmware generates a cpl_fw6_ack
131 #define S_FW_WR_COMPL 21
132 #define M_FW_WR_COMPL 0x1
133 #define V_FW_WR_COMPL(x) ((x) << S_FW_WR_COMPL)
134 #define G_FW_WR_COMPL(x) \
135 (((x) >> S_FW_WR_COMPL) & M_FW_WR_COMPL)
136 #define F_FW_WR_COMPL V_FW_WR_COMPL(1U)
139 /* work request immediate data lengh (hi)
141 #define S_FW_WR_IMMDLEN 0
142 #define M_FW_WR_IMMDLEN 0xff
143 #define V_FW_WR_IMMDLEN(x) ((x) << S_FW_WR_IMMDLEN)
144 #define G_FW_WR_IMMDLEN(x) \
145 (((x) >> S_FW_WR_IMMDLEN) & M_FW_WR_IMMDLEN)
147 /* egress queue status update to associated ingress queue entry (lo)
149 #define S_FW_WR_EQUIQ 31
150 #define M_FW_WR_EQUIQ 0x1
151 #define V_FW_WR_EQUIQ(x) ((x) << S_FW_WR_EQUIQ)
152 #define G_FW_WR_EQUIQ(x) (((x) >> S_FW_WR_EQUIQ) & M_FW_WR_EQUIQ)
153 #define F_FW_WR_EQUIQ V_FW_WR_EQUIQ(1U)
155 /* egress queue status update to egress queue status entry (lo)
157 #define S_FW_WR_EQUEQ 30
158 #define M_FW_WR_EQUEQ 0x1
159 #define V_FW_WR_EQUEQ(x) ((x) << S_FW_WR_EQUEQ)
160 #define G_FW_WR_EQUEQ(x) (((x) >> S_FW_WR_EQUEQ) & M_FW_WR_EQUEQ)
161 #define F_FW_WR_EQUEQ V_FW_WR_EQUEQ(1U)
163 /* flow context identifier (lo)
165 #define S_FW_WR_FLOWID 8
166 #define M_FW_WR_FLOWID 0xfffff
167 #define V_FW_WR_FLOWID(x) ((x) << S_FW_WR_FLOWID)
168 #define G_FW_WR_FLOWID(x) (((x) >> S_FW_WR_FLOWID) & M_FW_WR_FLOWID)
170 /* length in units of 16-bytes (lo)
172 #define S_FW_WR_LEN16 0
173 #define M_FW_WR_LEN16 0xff
174 #define V_FW_WR_LEN16(x) ((x) << S_FW_WR_LEN16)
175 #define G_FW_WR_LEN16(x) (((x) >> S_FW_WR_LEN16) & M_FW_WR_LEN16)
177 /* valid filter configurations for compressed tuple
178 * Encodings: TPL - Compressed TUPLE for filter in addition to 4-tuple
179 * FR - FRAGMENT, FC - FCoE, MT - MPS MATCH TYPE, M - MPS MATCH,
180 * E - Ethertype, P - Port, PR - Protocol, T - TOS, IV - Inner VLAN,
181 * OV - Outer VLAN/VNIC_ID,
183 #define HW_TPL_FR_MT_M_E_P_FC 0x3C3
184 #define HW_TPL_FR_MT_M_PR_T_FC 0x3B3
185 #define HW_TPL_FR_MT_M_IV_P_FC 0x38B
186 #define HW_TPL_FR_MT_M_OV_P_FC 0x387
187 #define HW_TPL_FR_MT_E_PR_T 0x370
188 #define HW_TPL_FR_MT_E_PR_P_FC 0X363
189 #define HW_TPL_FR_MT_E_T_P_FC 0X353
190 #define HW_TPL_FR_MT_PR_IV_P_FC 0X32B
191 #define HW_TPL_FR_MT_PR_OV_P_FC 0X327
192 #define HW_TPL_FR_MT_T_IV_P_FC 0X31B
193 #define HW_TPL_FR_MT_T_OV_P_FC 0X317
194 #define HW_TPL_FR_M_E_PR_FC 0X2E1
195 #define HW_TPL_FR_M_E_T_FC 0X2D1
196 #define HW_TPL_FR_M_PR_IV_FC 0X2A9
197 #define HW_TPL_FR_M_PR_OV_FC 0X2A5
198 #define HW_TPL_FR_M_T_IV_FC 0X299
199 #define HW_TPL_FR_M_T_OV_FC 0X295
200 #define HW_TPL_FR_E_PR_T_P 0X272
201 #define HW_TPL_FR_E_PR_T_FC 0X271
202 #define HW_TPL_FR_E_IV_FC 0X249
203 #define HW_TPL_FR_E_OV_FC 0X245
204 #define HW_TPL_FR_PR_T_IV_FC 0X239
205 #define HW_TPL_FR_PR_T_OV_FC 0X235
206 #define HW_TPL_FR_IV_OV_FC 0X20D
207 #define HW_TPL_MT_M_E_PR 0X1E0
208 #define HW_TPL_MT_M_E_T 0X1D0
209 #define HW_TPL_MT_E_PR_T_FC 0X171
210 #define HW_TPL_MT_E_IV 0X148
211 #define HW_TPL_MT_E_OV 0X144
212 #define HW_TPL_MT_PR_T_IV 0X138
213 #define HW_TPL_MT_PR_T_OV 0X134
214 #define HW_TPL_M_E_PR_P 0X0E2
215 #define HW_TPL_M_E_T_P 0X0D2
216 #define HW_TPL_E_PR_T_P_FC 0X073
217 #define HW_TPL_E_IV_P 0X04A
218 #define HW_TPL_E_OV_P 0X046
219 #define HW_TPL_PR_T_IV_P 0X03A
220 #define HW_TPL_PR_T_OV_P 0X036
222 /* filter wr reply code in cookie in CPL_SET_TCB_RPL */
223 enum fw_filter_wr_cookie {
224 FW_FILTER_WR_SUCCESS,
225 FW_FILTER_WR_FLT_ADDED,
226 FW_FILTER_WR_FLT_DELETED,
227 FW_FILTER_WR_SMT_TBL_FULL,
231 struct fw_filter_wr {
236 __be32 del_filter_to_l2tix;
239 __u8 frag_to_ovlan_vldm;
241 __be16 rx_chan_rx_rpl_iq;
242 __be32 maci_to_matchtypem;
263 #define S_FW_FILTER_WR_TID 12
264 #define M_FW_FILTER_WR_TID 0xfffff
265 #define V_FW_FILTER_WR_TID(x) ((x) << S_FW_FILTER_WR_TID)
266 #define G_FW_FILTER_WR_TID(x) \
267 (((x) >> S_FW_FILTER_WR_TID) & M_FW_FILTER_WR_TID)
269 #define S_FW_FILTER_WR_RQTYPE 11
270 #define M_FW_FILTER_WR_RQTYPE 0x1
271 #define V_FW_FILTER_WR_RQTYPE(x) ((x) << S_FW_FILTER_WR_RQTYPE)
272 #define G_FW_FILTER_WR_RQTYPE(x) \
273 (((x) >> S_FW_FILTER_WR_RQTYPE) & M_FW_FILTER_WR_RQTYPE)
274 #define F_FW_FILTER_WR_RQTYPE V_FW_FILTER_WR_RQTYPE(1U)
276 #define S_FW_FILTER_WR_NOREPLY 10
277 #define M_FW_FILTER_WR_NOREPLY 0x1
278 #define V_FW_FILTER_WR_NOREPLY(x) ((x) << S_FW_FILTER_WR_NOREPLY)
279 #define G_FW_FILTER_WR_NOREPLY(x) \
280 (((x) >> S_FW_FILTER_WR_NOREPLY) & M_FW_FILTER_WR_NOREPLY)
281 #define F_FW_FILTER_WR_NOREPLY V_FW_FILTER_WR_NOREPLY(1U)
283 #define S_FW_FILTER_WR_IQ 0
284 #define M_FW_FILTER_WR_IQ 0x3ff
285 #define V_FW_FILTER_WR_IQ(x) ((x) << S_FW_FILTER_WR_IQ)
286 #define G_FW_FILTER_WR_IQ(x) \
287 (((x) >> S_FW_FILTER_WR_IQ) & M_FW_FILTER_WR_IQ)
289 #define S_FW_FILTER_WR_DEL_FILTER 31
290 #define M_FW_FILTER_WR_DEL_FILTER 0x1
291 #define V_FW_FILTER_WR_DEL_FILTER(x) ((x) << S_FW_FILTER_WR_DEL_FILTER)
292 #define G_FW_FILTER_WR_DEL_FILTER(x) \
293 (((x) >> S_FW_FILTER_WR_DEL_FILTER) & M_FW_FILTER_WR_DEL_FILTER)
294 #define F_FW_FILTER_WR_DEL_FILTER V_FW_FILTER_WR_DEL_FILTER(1U)
296 #define S_FW_FILTER_WR_RPTTID 25
297 #define M_FW_FILTER_WR_RPTTID 0x1
298 #define V_FW_FILTER_WR_RPTTID(x) ((x) << S_FW_FILTER_WR_RPTTID)
299 #define G_FW_FILTER_WR_RPTTID(x) \
300 (((x) >> S_FW_FILTER_WR_RPTTID) & M_FW_FILTER_WR_RPTTID)
301 #define F_FW_FILTER_WR_RPTTID V_FW_FILTER_WR_RPTTID(1U)
303 #define S_FW_FILTER_WR_DROP 24
304 #define M_FW_FILTER_WR_DROP 0x1
305 #define V_FW_FILTER_WR_DROP(x) ((x) << S_FW_FILTER_WR_DROP)
306 #define G_FW_FILTER_WR_DROP(x) \
307 (((x) >> S_FW_FILTER_WR_DROP) & M_FW_FILTER_WR_DROP)
308 #define F_FW_FILTER_WR_DROP V_FW_FILTER_WR_DROP(1U)
310 #define S_FW_FILTER_WR_DIRSTEER 23
311 #define M_FW_FILTER_WR_DIRSTEER 0x1
312 #define V_FW_FILTER_WR_DIRSTEER(x) ((x) << S_FW_FILTER_WR_DIRSTEER)
313 #define G_FW_FILTER_WR_DIRSTEER(x) \
314 (((x) >> S_FW_FILTER_WR_DIRSTEER) & M_FW_FILTER_WR_DIRSTEER)
315 #define F_FW_FILTER_WR_DIRSTEER V_FW_FILTER_WR_DIRSTEER(1U)
317 #define S_FW_FILTER_WR_MASKHASH 22
318 #define M_FW_FILTER_WR_MASKHASH 0x1
319 #define V_FW_FILTER_WR_MASKHASH(x) ((x) << S_FW_FILTER_WR_MASKHASH)
320 #define G_FW_FILTER_WR_MASKHASH(x) \
321 (((x) >> S_FW_FILTER_WR_MASKHASH) & M_FW_FILTER_WR_MASKHASH)
322 #define F_FW_FILTER_WR_MASKHASH V_FW_FILTER_WR_MASKHASH(1U)
324 #define S_FW_FILTER_WR_DIRSTEERHASH 21
325 #define M_FW_FILTER_WR_DIRSTEERHASH 0x1
326 #define V_FW_FILTER_WR_DIRSTEERHASH(x) ((x) << S_FW_FILTER_WR_DIRSTEERHASH)
327 #define G_FW_FILTER_WR_DIRSTEERHASH(x) \
328 (((x) >> S_FW_FILTER_WR_DIRSTEERHASH) & M_FW_FILTER_WR_DIRSTEERHASH)
329 #define F_FW_FILTER_WR_DIRSTEERHASH V_FW_FILTER_WR_DIRSTEERHASH(1U)
331 #define S_FW_FILTER_WR_LPBK 20
332 #define M_FW_FILTER_WR_LPBK 0x1
333 #define V_FW_FILTER_WR_LPBK(x) ((x) << S_FW_FILTER_WR_LPBK)
334 #define G_FW_FILTER_WR_LPBK(x) \
335 (((x) >> S_FW_FILTER_WR_LPBK) & M_FW_FILTER_WR_LPBK)
336 #define F_FW_FILTER_WR_LPBK V_FW_FILTER_WR_LPBK(1U)
338 #define S_FW_FILTER_WR_DMAC 19
339 #define M_FW_FILTER_WR_DMAC 0x1
340 #define V_FW_FILTER_WR_DMAC(x) ((x) << S_FW_FILTER_WR_DMAC)
341 #define G_FW_FILTER_WR_DMAC(x) \
342 (((x) >> S_FW_FILTER_WR_DMAC) & M_FW_FILTER_WR_DMAC)
343 #define F_FW_FILTER_WR_DMAC V_FW_FILTER_WR_DMAC(1U)
345 #define S_FW_FILTER_WR_SMAC 18
346 #define M_FW_FILTER_WR_SMAC 0x1
347 #define V_FW_FILTER_WR_SMAC(x) ((x) << S_FW_FILTER_WR_SMAC)
348 #define G_FW_FILTER_WR_SMAC(x) \
349 (((x) >> S_FW_FILTER_WR_SMAC) & M_FW_FILTER_WR_SMAC)
350 #define F_FW_FILTER_WR_SMAC V_FW_FILTER_WR_SMAC(1U)
352 #define S_FW_FILTER_WR_INSVLAN 17
353 #define M_FW_FILTER_WR_INSVLAN 0x1
354 #define V_FW_FILTER_WR_INSVLAN(x) ((x) << S_FW_FILTER_WR_INSVLAN)
355 #define G_FW_FILTER_WR_INSVLAN(x) \
356 (((x) >> S_FW_FILTER_WR_INSVLAN) & M_FW_FILTER_WR_INSVLAN)
357 #define F_FW_FILTER_WR_INSVLAN V_FW_FILTER_WR_INSVLAN(1U)
359 #define S_FW_FILTER_WR_RMVLAN 16
360 #define M_FW_FILTER_WR_RMVLAN 0x1
361 #define V_FW_FILTER_WR_RMVLAN(x) ((x) << S_FW_FILTER_WR_RMVLAN)
362 #define G_FW_FILTER_WR_RMVLAN(x) \
363 (((x) >> S_FW_FILTER_WR_RMVLAN) & M_FW_FILTER_WR_RMVLAN)
364 #define F_FW_FILTER_WR_RMVLAN V_FW_FILTER_WR_RMVLAN(1U)
366 #define S_FW_FILTER_WR_HITCNTS 15
367 #define M_FW_FILTER_WR_HITCNTS 0x1
368 #define V_FW_FILTER_WR_HITCNTS(x) ((x) << S_FW_FILTER_WR_HITCNTS)
369 #define G_FW_FILTER_WR_HITCNTS(x) \
370 (((x) >> S_FW_FILTER_WR_HITCNTS) & M_FW_FILTER_WR_HITCNTS)
371 #define F_FW_FILTER_WR_HITCNTS V_FW_FILTER_WR_HITCNTS(1U)
373 #define S_FW_FILTER_WR_TXCHAN 13
374 #define M_FW_FILTER_WR_TXCHAN 0x3
375 #define V_FW_FILTER_WR_TXCHAN(x) ((x) << S_FW_FILTER_WR_TXCHAN)
376 #define G_FW_FILTER_WR_TXCHAN(x) \
377 (((x) >> S_FW_FILTER_WR_TXCHAN) & M_FW_FILTER_WR_TXCHAN)
379 #define S_FW_FILTER_WR_PRIO 12
380 #define M_FW_FILTER_WR_PRIO 0x1
381 #define V_FW_FILTER_WR_PRIO(x) ((x) << S_FW_FILTER_WR_PRIO)
382 #define G_FW_FILTER_WR_PRIO(x) \
383 (((x) >> S_FW_FILTER_WR_PRIO) & M_FW_FILTER_WR_PRIO)
384 #define F_FW_FILTER_WR_PRIO V_FW_FILTER_WR_PRIO(1U)
386 #define S_FW_FILTER_WR_L2TIX 0
387 #define M_FW_FILTER_WR_L2TIX 0xfff
388 #define V_FW_FILTER_WR_L2TIX(x) ((x) << S_FW_FILTER_WR_L2TIX)
389 #define G_FW_FILTER_WR_L2TIX(x) \
390 (((x) >> S_FW_FILTER_WR_L2TIX) & M_FW_FILTER_WR_L2TIX)
392 #define S_FW_FILTER_WR_FRAG 7
393 #define M_FW_FILTER_WR_FRAG 0x1
394 #define V_FW_FILTER_WR_FRAG(x) ((x) << S_FW_FILTER_WR_FRAG)
395 #define G_FW_FILTER_WR_FRAG(x) \
396 (((x) >> S_FW_FILTER_WR_FRAG) & M_FW_FILTER_WR_FRAG)
397 #define F_FW_FILTER_WR_FRAG V_FW_FILTER_WR_FRAG(1U)
399 #define S_FW_FILTER_WR_FRAGM 6
400 #define M_FW_FILTER_WR_FRAGM 0x1
401 #define V_FW_FILTER_WR_FRAGM(x) ((x) << S_FW_FILTER_WR_FRAGM)
402 #define G_FW_FILTER_WR_FRAGM(x) \
403 (((x) >> S_FW_FILTER_WR_FRAGM) & M_FW_FILTER_WR_FRAGM)
404 #define F_FW_FILTER_WR_FRAGM V_FW_FILTER_WR_FRAGM(1U)
406 #define S_FW_FILTER_WR_IVLAN_VLD 5
407 #define M_FW_FILTER_WR_IVLAN_VLD 0x1
408 #define V_FW_FILTER_WR_IVLAN_VLD(x) ((x) << S_FW_FILTER_WR_IVLAN_VLD)
409 #define G_FW_FILTER_WR_IVLAN_VLD(x) \
410 (((x) >> S_FW_FILTER_WR_IVLAN_VLD) & M_FW_FILTER_WR_IVLAN_VLD)
411 #define F_FW_FILTER_WR_IVLAN_VLD V_FW_FILTER_WR_IVLAN_VLD(1U)
413 #define S_FW_FILTER_WR_OVLAN_VLD 4
414 #define M_FW_FILTER_WR_OVLAN_VLD 0x1
415 #define V_FW_FILTER_WR_OVLAN_VLD(x) ((x) << S_FW_FILTER_WR_OVLAN_VLD)
416 #define G_FW_FILTER_WR_OVLAN_VLD(x) \
417 (((x) >> S_FW_FILTER_WR_OVLAN_VLD) & M_FW_FILTER_WR_OVLAN_VLD)
418 #define F_FW_FILTER_WR_OVLAN_VLD V_FW_FILTER_WR_OVLAN_VLD(1U)
420 #define S_FW_FILTER_WR_IVLAN_VLDM 3
421 #define M_FW_FILTER_WR_IVLAN_VLDM 0x1
422 #define V_FW_FILTER_WR_IVLAN_VLDM(x) ((x) << S_FW_FILTER_WR_IVLAN_VLDM)
423 #define G_FW_FILTER_WR_IVLAN_VLDM(x) \
424 (((x) >> S_FW_FILTER_WR_IVLAN_VLDM) & M_FW_FILTER_WR_IVLAN_VLDM)
425 #define F_FW_FILTER_WR_IVLAN_VLDM V_FW_FILTER_WR_IVLAN_VLDM(1U)
427 #define S_FW_FILTER_WR_OVLAN_VLDM 2
428 #define M_FW_FILTER_WR_OVLAN_VLDM 0x1
429 #define V_FW_FILTER_WR_OVLAN_VLDM(x) ((x) << S_FW_FILTER_WR_OVLAN_VLDM)
430 #define G_FW_FILTER_WR_OVLAN_VLDM(x) \
431 (((x) >> S_FW_FILTER_WR_OVLAN_VLDM) & M_FW_FILTER_WR_OVLAN_VLDM)
432 #define F_FW_FILTER_WR_OVLAN_VLDM V_FW_FILTER_WR_OVLAN_VLDM(1U)
434 #define S_FW_FILTER_WR_RX_CHAN 15
435 #define M_FW_FILTER_WR_RX_CHAN 0x1
436 #define V_FW_FILTER_WR_RX_CHAN(x) ((x) << S_FW_FILTER_WR_RX_CHAN)
437 #define G_FW_FILTER_WR_RX_CHAN(x) \
438 (((x) >> S_FW_FILTER_WR_RX_CHAN) & M_FW_FILTER_WR_RX_CHAN)
439 #define F_FW_FILTER_WR_RX_CHAN V_FW_FILTER_WR_RX_CHAN(1U)
441 #define S_FW_FILTER_WR_RX_RPL_IQ 0
442 #define M_FW_FILTER_WR_RX_RPL_IQ 0x3ff
443 #define V_FW_FILTER_WR_RX_RPL_IQ(x) ((x) << S_FW_FILTER_WR_RX_RPL_IQ)
444 #define G_FW_FILTER_WR_RX_RPL_IQ(x) \
445 (((x) >> S_FW_FILTER_WR_RX_RPL_IQ) & M_FW_FILTER_WR_RX_RPL_IQ)
447 #define S_FW_FILTER_WR_MACI 23
448 #define M_FW_FILTER_WR_MACI 0x1ff
449 #define V_FW_FILTER_WR_MACI(x) ((x) << S_FW_FILTER_WR_MACI)
450 #define G_FW_FILTER_WR_MACI(x) \
451 (((x) >> S_FW_FILTER_WR_MACI) & M_FW_FILTER_WR_MACI)
453 #define S_FW_FILTER_WR_MACIM 14
454 #define M_FW_FILTER_WR_MACIM 0x1ff
455 #define V_FW_FILTER_WR_MACIM(x) ((x) << S_FW_FILTER_WR_MACIM)
456 #define G_FW_FILTER_WR_MACIM(x) \
457 (((x) >> S_FW_FILTER_WR_MACIM) & M_FW_FILTER_WR_MACIM)
459 #define S_FW_FILTER_WR_FCOE 13
460 #define M_FW_FILTER_WR_FCOE 0x1
461 #define V_FW_FILTER_WR_FCOE(x) ((x) << S_FW_FILTER_WR_FCOE)
462 #define G_FW_FILTER_WR_FCOE(x) \
463 (((x) >> S_FW_FILTER_WR_FCOE) & M_FW_FILTER_WR_FCOE)
464 #define F_FW_FILTER_WR_FCOE V_FW_FILTER_WR_FCOE(1U)
466 #define S_FW_FILTER_WR_FCOEM 12
467 #define M_FW_FILTER_WR_FCOEM 0x1
468 #define V_FW_FILTER_WR_FCOEM(x) ((x) << S_FW_FILTER_WR_FCOEM)
469 #define G_FW_FILTER_WR_FCOEM(x) \
470 (((x) >> S_FW_FILTER_WR_FCOEM) & M_FW_FILTER_WR_FCOEM)
471 #define F_FW_FILTER_WR_FCOEM V_FW_FILTER_WR_FCOEM(1U)
473 #define S_FW_FILTER_WR_PORT 9
474 #define M_FW_FILTER_WR_PORT 0x7
475 #define V_FW_FILTER_WR_PORT(x) ((x) << S_FW_FILTER_WR_PORT)
476 #define G_FW_FILTER_WR_PORT(x) \
477 (((x) >> S_FW_FILTER_WR_PORT) & M_FW_FILTER_WR_PORT)
479 #define S_FW_FILTER_WR_PORTM 6
480 #define M_FW_FILTER_WR_PORTM 0x7
481 #define V_FW_FILTER_WR_PORTM(x) ((x) << S_FW_FILTER_WR_PORTM)
482 #define G_FW_FILTER_WR_PORTM(x) \
483 (((x) >> S_FW_FILTER_WR_PORTM) & M_FW_FILTER_WR_PORTM)
485 #define S_FW_FILTER_WR_MATCHTYPE 3
486 #define M_FW_FILTER_WR_MATCHTYPE 0x7
487 #define V_FW_FILTER_WR_MATCHTYPE(x) ((x) << S_FW_FILTER_WR_MATCHTYPE)
488 #define G_FW_FILTER_WR_MATCHTYPE(x) \
489 (((x) >> S_FW_FILTER_WR_MATCHTYPE) & M_FW_FILTER_WR_MATCHTYPE)
491 #define S_FW_FILTER_WR_MATCHTYPEM 0
492 #define M_FW_FILTER_WR_MATCHTYPEM 0x7
493 #define V_FW_FILTER_WR_MATCHTYPEM(x) ((x) << S_FW_FILTER_WR_MATCHTYPEM)
494 #define G_FW_FILTER_WR_MATCHTYPEM(x) \
495 (((x) >> S_FW_FILTER_WR_MATCHTYPEM) & M_FW_FILTER_WR_MATCHTYPEM)
504 __be32 op_to_immdlen;
509 struct fw_eth_tx_pkt_wr {
511 __be32 equiq_to_len16;
515 struct fw_eth_tx_pkts_wr {
517 __be32 equiq_to_len16;
524 struct fw_eq_flush_wr {
527 __be32 equiq_to_len16;
532 FW_FLOWC_MNEM_PFNVFN, /* PFN [15:8] VFN [7:0] */
536 FW_FLOWC_MNEM_SNDNXT,
537 FW_FLOWC_MNEM_RCVNXT,
538 FW_FLOWC_MNEM_SNDBUF,
540 FW_FLOWC_MEM_TXDATAPLEN_MAX,
543 struct fw_flowc_mnemval {
550 __be32 op_to_nparams;
552 #ifndef C99_NOT_SUPPORTED
553 struct fw_flowc_mnemval mnemval[0];
557 #define S_FW_FLOWC_WR_NPARAMS 0
558 #define M_FW_FLOWC_WR_NPARAMS 0xff
559 #define V_FW_FLOWC_WR_NPARAMS(x) ((x) << S_FW_FLOWC_WR_NPARAMS)
560 #define G_FW_FLOWC_WR_NPARAMS(x) \
561 (((x) >> S_FW_FLOWC_WR_NPARAMS) & M_FW_FLOWC_WR_NPARAMS)
563 struct fw_ofld_tx_data_wr {
564 __be32 op_to_immdlen;
567 __be32 tunnel_to_proxy;
570 #define S_FW_OFLD_TX_DATA_WR_TUNNEL 19
571 #define M_FW_OFLD_TX_DATA_WR_TUNNEL 0x1
572 #define V_FW_OFLD_TX_DATA_WR_TUNNEL(x) ((x) << S_FW_OFLD_TX_DATA_WR_TUNNEL)
573 #define G_FW_OFLD_TX_DATA_WR_TUNNEL(x) \
574 (((x) >> S_FW_OFLD_TX_DATA_WR_TUNNEL) & M_FW_OFLD_TX_DATA_WR_TUNNEL)
575 #define F_FW_OFLD_TX_DATA_WR_TUNNEL V_FW_OFLD_TX_DATA_WR_TUNNEL(1U)
577 #define S_FW_OFLD_TX_DATA_WR_SAVE 18
578 #define M_FW_OFLD_TX_DATA_WR_SAVE 0x1
579 #define V_FW_OFLD_TX_DATA_WR_SAVE(x) ((x) << S_FW_OFLD_TX_DATA_WR_SAVE)
580 #define G_FW_OFLD_TX_DATA_WR_SAVE(x) \
581 (((x) >> S_FW_OFLD_TX_DATA_WR_SAVE) & M_FW_OFLD_TX_DATA_WR_SAVE)
582 #define F_FW_OFLD_TX_DATA_WR_SAVE V_FW_OFLD_TX_DATA_WR_SAVE(1U)
584 #define S_FW_OFLD_TX_DATA_WR_FLUSH 17
585 #define M_FW_OFLD_TX_DATA_WR_FLUSH 0x1
586 #define V_FW_OFLD_TX_DATA_WR_FLUSH(x) ((x) << S_FW_OFLD_TX_DATA_WR_FLUSH)
587 #define G_FW_OFLD_TX_DATA_WR_FLUSH(x) \
588 (((x) >> S_FW_OFLD_TX_DATA_WR_FLUSH) & M_FW_OFLD_TX_DATA_WR_FLUSH)
589 #define F_FW_OFLD_TX_DATA_WR_FLUSH V_FW_OFLD_TX_DATA_WR_FLUSH(1U)
591 #define S_FW_OFLD_TX_DATA_WR_URGENT 16
592 #define M_FW_OFLD_TX_DATA_WR_URGENT 0x1
593 #define V_FW_OFLD_TX_DATA_WR_URGENT(x) ((x) << S_FW_OFLD_TX_DATA_WR_URGENT)
594 #define G_FW_OFLD_TX_DATA_WR_URGENT(x) \
595 (((x) >> S_FW_OFLD_TX_DATA_WR_URGENT) & M_FW_OFLD_TX_DATA_WR_URGENT)
596 #define F_FW_OFLD_TX_DATA_WR_URGENT V_FW_OFLD_TX_DATA_WR_URGENT(1U)
598 #define S_FW_OFLD_TX_DATA_WR_MORE 15
599 #define M_FW_OFLD_TX_DATA_WR_MORE 0x1
600 #define V_FW_OFLD_TX_DATA_WR_MORE(x) ((x) << S_FW_OFLD_TX_DATA_WR_MORE)
601 #define G_FW_OFLD_TX_DATA_WR_MORE(x) \
602 (((x) >> S_FW_OFLD_TX_DATA_WR_MORE) & M_FW_OFLD_TX_DATA_WR_MORE)
603 #define F_FW_OFLD_TX_DATA_WR_MORE V_FW_OFLD_TX_DATA_WR_MORE(1U)
605 #define S_FW_OFLD_TX_DATA_WR_SHOVE 14
606 #define M_FW_OFLD_TX_DATA_WR_SHOVE 0x1
607 #define V_FW_OFLD_TX_DATA_WR_SHOVE(x) ((x) << S_FW_OFLD_TX_DATA_WR_SHOVE)
608 #define G_FW_OFLD_TX_DATA_WR_SHOVE(x) \
609 (((x) >> S_FW_OFLD_TX_DATA_WR_SHOVE) & M_FW_OFLD_TX_DATA_WR_SHOVE)
610 #define F_FW_OFLD_TX_DATA_WR_SHOVE V_FW_OFLD_TX_DATA_WR_SHOVE(1U)
612 #define S_FW_OFLD_TX_DATA_WR_ULPMODE 10
613 #define M_FW_OFLD_TX_DATA_WR_ULPMODE 0xf
614 #define V_FW_OFLD_TX_DATA_WR_ULPMODE(x) ((x) << S_FW_OFLD_TX_DATA_WR_ULPMODE)
615 #define G_FW_OFLD_TX_DATA_WR_ULPMODE(x) \
616 (((x) >> S_FW_OFLD_TX_DATA_WR_ULPMODE) & M_FW_OFLD_TX_DATA_WR_ULPMODE)
618 #define S_FW_OFLD_TX_DATA_WR_ULPSUBMODE 6
619 #define M_FW_OFLD_TX_DATA_WR_ULPSUBMODE 0xf
620 #define V_FW_OFLD_TX_DATA_WR_ULPSUBMODE(x) \
621 ((x) << S_FW_OFLD_TX_DATA_WR_ULPSUBMODE)
622 #define G_FW_OFLD_TX_DATA_WR_ULPSUBMODE(x) \
623 (((x) >> S_FW_OFLD_TX_DATA_WR_ULPSUBMODE) & \
624 M_FW_OFLD_TX_DATA_WR_ULPSUBMODE)
626 #define S_FW_OFLD_TX_DATA_WR_PROXY 5
627 #define M_FW_OFLD_TX_DATA_WR_PROXY 0x1
628 #define V_FW_OFLD_TX_DATA_WR_PROXY(x) ((x) << S_FW_OFLD_TX_DATA_WR_PROXY)
629 #define G_FW_OFLD_TX_DATA_WR_PROXY(x) \
630 (((x) >> S_FW_OFLD_TX_DATA_WR_PROXY) & M_FW_OFLD_TX_DATA_WR_PROXY)
631 #define F_FW_OFLD_TX_DATA_WR_PROXY V_FW_OFLD_TX_DATA_WR_PROXY(1U)
639 #define S_FW_CMD_WR_DMA 17
640 #define M_FW_CMD_WR_DMA 0x1
641 #define V_FW_CMD_WR_DMA(x) ((x) << S_FW_CMD_WR_DMA)
642 #define G_FW_CMD_WR_DMA(x) (((x) >> S_FW_CMD_WR_DMA) & M_FW_CMD_WR_DMA)
643 #define F_FW_CMD_WR_DMA V_FW_CMD_WR_DMA(1U)
645 struct fw_eth_tx_pkt_vm_wr {
647 __be32 equiq_to_len16;
655 /******************************************************************************
656 * R I W O R K R E Q U E S T s
657 **************************************/
659 enum fw_ri_wr_opcode {
660 FW_RI_RDMA_WRITE = 0x0, /* IETF RDMAP v1.0 ... */
661 FW_RI_READ_REQ = 0x1,
662 FW_RI_READ_RESP = 0x2,
664 FW_RI_SEND_WITH_INV = 0x4,
665 FW_RI_SEND_WITH_SE = 0x5,
666 FW_RI_SEND_WITH_SE_INV = 0x6,
667 FW_RI_TERMINATE = 0x7,
668 FW_RI_RDMA_INIT = 0x8, /* CHELSIO RI specific ... */
670 FW_RI_FAST_REGISTER = 0xa,
671 FW_RI_LOCAL_INV = 0xb,
672 FW_RI_QP_MODIFY = 0xc,
676 FW_RI_SGE_EC_CR_RETURN = 0xf
679 enum fw_ri_wr_flags {
680 FW_RI_COMPLETION_FLAG = 0x01,
681 FW_RI_NOTIFICATION_FLAG = 0x02,
682 FW_RI_SOLICITED_EVENT_FLAG = 0x04,
683 FW_RI_READ_FENCE_FLAG = 0x08,
684 FW_RI_LOCAL_FENCE_FLAG = 0x10,
685 FW_RI_RDMA_READ_INVALIDATE = 0x20
688 enum fw_ri_mpa_attrs {
689 FW_RI_MPA_RX_MARKER_ENABLE = 0x01,
690 FW_RI_MPA_TX_MARKER_ENABLE = 0x02,
691 FW_RI_MPA_CRC_ENABLE = 0x04,
692 FW_RI_MPA_IETF_ENABLE = 0x08
696 FW_RI_QP_RDMA_READ_ENABLE = 0x01,
697 FW_RI_QP_RDMA_WRITE_ENABLE = 0x02,
698 FW_RI_QP_BIND_ENABLE = 0x04,
699 FW_RI_QP_FAST_REGISTER_ENABLE = 0x08,
700 FW_RI_QP_STAG0_ENABLE = 0x10,
701 FW_RI_QP_RDMA_READ_REQ_0B_ENABLE= 0x80,
704 enum fw_ri_addr_type {
705 FW_RI_ZERO_BASED_TO = 0x00,
706 FW_RI_VA_BASED_TO = 0x01
709 enum fw_ri_mem_perms {
710 FW_RI_MEM_ACCESS_REM_WRITE = 0x01,
711 FW_RI_MEM_ACCESS_REM_READ = 0x02,
712 FW_RI_MEM_ACCESS_REM = 0x03,
713 FW_RI_MEM_ACCESS_LOCAL_WRITE = 0x04,
714 FW_RI_MEM_ACCESS_LOCAL_READ = 0x08,
715 FW_RI_MEM_ACCESS_LOCAL = 0x0C
718 enum fw_ri_stag_type {
719 FW_RI_STAG_NSMR = 0x00,
720 FW_RI_STAG_SMR = 0x01,
721 FW_RI_STAG_MW = 0x02,
722 FW_RI_STAG_MW_RELAXED = 0x03
726 FW_RI_DATA_IMMD = 0x81,
727 FW_RI_DATA_DSGL = 0x82,
728 FW_RI_DATA_ISGL = 0x83
731 enum fw_ri_sgl_depth {
732 FW_RI_SGL_DEPTH_MAX_SQ = 16,
733 FW_RI_SGL_DEPTH_MAX_RQ = 4
737 FW_RI_CQE_ERR_SUCCESS = 0x00, /* success, no error detected */
738 FW_RI_CQE_ERR_STAG = 0x01, /* STAG invalid */
739 FW_RI_CQE_ERR_PDID = 0x02, /* PDID mismatch */
740 FW_RI_CQE_ERR_QPID = 0x03, /* QPID mismatch */
741 FW_RI_CQE_ERR_ACCESS = 0x04, /* Invalid access right */
742 FW_RI_CQE_ERR_WRAP = 0x05, /* Wrap error */
743 FW_RI_CQE_ERR_BOUND = 0x06, /* base and bounds violation */
744 FW_RI_CQE_ERR_INVALIDATE_SHARED_MR = 0x07, /* attempt to invalidate a SMR */
745 FW_RI_CQE_ERR_INVALIDATE_MR_WITH_MW_BOUND = 0x08, /* attempt to invalidate a MR w MW */
746 FW_RI_CQE_ERR_ECC = 0x09, /* ECC error detected */
747 FW_RI_CQE_ERR_ECC_PSTAG = 0x0A, /* ECC error detected when reading the PSTAG for a MW Invalidate */
748 FW_RI_CQE_ERR_PBL_ADDR_BOUND = 0x0B, /* pbl address out of bound : software error */
749 FW_RI_CQE_ERR_CRC = 0x10, /* CRC error */
750 FW_RI_CQE_ERR_MARKER = 0x11, /* Marker error */
751 FW_RI_CQE_ERR_PDU_LEN_ERR = 0x12, /* invalid PDU length */
752 FW_RI_CQE_ERR_OUT_OF_RQE = 0x13, /* out of RQE */
753 FW_RI_CQE_ERR_DDP_VERSION = 0x14, /* wrong DDP version */
754 FW_RI_CQE_ERR_RDMA_VERSION = 0x15, /* wrong RDMA version */
755 FW_RI_CQE_ERR_OPCODE = 0x16, /* invalid rdma opcode */
756 FW_RI_CQE_ERR_DDP_QUEUE_NUM = 0x17, /* invalid ddp queue number */
757 FW_RI_CQE_ERR_MSN = 0x18, /* MSN error */
758 FW_RI_CQE_ERR_TBIT = 0x19, /* tag bit not set correctly */
759 FW_RI_CQE_ERR_MO = 0x1A, /* MO not zero for TERMINATE or READ_REQ */
760 FW_RI_CQE_ERR_MSN_GAP = 0x1B, /* */
761 FW_RI_CQE_ERR_MSN_RANGE = 0x1C, /* */
762 FW_RI_CQE_ERR_IRD_OVERFLOW = 0x1D, /* */
763 FW_RI_CQE_ERR_RQE_ADDR_BOUND = 0x1E, /* RQE address out of bound : software error */
764 FW_RI_CQE_ERR_INTERNAL_ERR = 0x1F /* internel error (opcode mismatch) */
768 struct fw_ri_dsge_pair {
779 #ifndef C99_NOT_SUPPORTED
780 struct fw_ri_dsge_pair sge[0];
795 #ifndef C99_NOT_SUPPORTED
796 struct fw_ri_sge sge[0];
805 #ifndef C99_NOT_SUPPORTED
811 __be32 valid_to_pdid;
812 __be32 locread_to_qpid;
813 __be32 nosnoop_pbladdr;
817 __be32 dca_mwbcnt_pstag;
821 #define S_FW_RI_TPTE_VALID 31
822 #define M_FW_RI_TPTE_VALID 0x1
823 #define V_FW_RI_TPTE_VALID(x) ((x) << S_FW_RI_TPTE_VALID)
824 #define G_FW_RI_TPTE_VALID(x) \
825 (((x) >> S_FW_RI_TPTE_VALID) & M_FW_RI_TPTE_VALID)
826 #define F_FW_RI_TPTE_VALID V_FW_RI_TPTE_VALID(1U)
828 #define S_FW_RI_TPTE_STAGKEY 23
829 #define M_FW_RI_TPTE_STAGKEY 0xff
830 #define V_FW_RI_TPTE_STAGKEY(x) ((x) << S_FW_RI_TPTE_STAGKEY)
831 #define G_FW_RI_TPTE_STAGKEY(x) \
832 (((x) >> S_FW_RI_TPTE_STAGKEY) & M_FW_RI_TPTE_STAGKEY)
834 #define S_FW_RI_TPTE_STAGSTATE 22
835 #define M_FW_RI_TPTE_STAGSTATE 0x1
836 #define V_FW_RI_TPTE_STAGSTATE(x) ((x) << S_FW_RI_TPTE_STAGSTATE)
837 #define G_FW_RI_TPTE_STAGSTATE(x) \
838 (((x) >> S_FW_RI_TPTE_STAGSTATE) & M_FW_RI_TPTE_STAGSTATE)
839 #define F_FW_RI_TPTE_STAGSTATE V_FW_RI_TPTE_STAGSTATE(1U)
841 #define S_FW_RI_TPTE_STAGTYPE 20
842 #define M_FW_RI_TPTE_STAGTYPE 0x3
843 #define V_FW_RI_TPTE_STAGTYPE(x) ((x) << S_FW_RI_TPTE_STAGTYPE)
844 #define G_FW_RI_TPTE_STAGTYPE(x) \
845 (((x) >> S_FW_RI_TPTE_STAGTYPE) & M_FW_RI_TPTE_STAGTYPE)
847 #define S_FW_RI_TPTE_PDID 0
848 #define M_FW_RI_TPTE_PDID 0xfffff
849 #define V_FW_RI_TPTE_PDID(x) ((x) << S_FW_RI_TPTE_PDID)
850 #define G_FW_RI_TPTE_PDID(x) \
851 (((x) >> S_FW_RI_TPTE_PDID) & M_FW_RI_TPTE_PDID)
853 #define S_FW_RI_TPTE_PERM 28
854 #define M_FW_RI_TPTE_PERM 0xf
855 #define V_FW_RI_TPTE_PERM(x) ((x) << S_FW_RI_TPTE_PERM)
856 #define G_FW_RI_TPTE_PERM(x) \
857 (((x) >> S_FW_RI_TPTE_PERM) & M_FW_RI_TPTE_PERM)
859 #define S_FW_RI_TPTE_REMINVDIS 27
860 #define M_FW_RI_TPTE_REMINVDIS 0x1
861 #define V_FW_RI_TPTE_REMINVDIS(x) ((x) << S_FW_RI_TPTE_REMINVDIS)
862 #define G_FW_RI_TPTE_REMINVDIS(x) \
863 (((x) >> S_FW_RI_TPTE_REMINVDIS) & M_FW_RI_TPTE_REMINVDIS)
864 #define F_FW_RI_TPTE_REMINVDIS V_FW_RI_TPTE_REMINVDIS(1U)
866 #define S_FW_RI_TPTE_ADDRTYPE 26
867 #define M_FW_RI_TPTE_ADDRTYPE 1
868 #define V_FW_RI_TPTE_ADDRTYPE(x) ((x) << S_FW_RI_TPTE_ADDRTYPE)
869 #define G_FW_RI_TPTE_ADDRTYPE(x) \
870 (((x) >> S_FW_RI_TPTE_ADDRTYPE) & M_FW_RI_TPTE_ADDRTYPE)
871 #define F_FW_RI_TPTE_ADDRTYPE V_FW_RI_TPTE_ADDRTYPE(1U)
873 #define S_FW_RI_TPTE_MWBINDEN 25
874 #define M_FW_RI_TPTE_MWBINDEN 0x1
875 #define V_FW_RI_TPTE_MWBINDEN(x) ((x) << S_FW_RI_TPTE_MWBINDEN)
876 #define G_FW_RI_TPTE_MWBINDEN(x) \
877 (((x) >> S_FW_RI_TPTE_MWBINDEN) & M_FW_RI_TPTE_MWBINDEN)
878 #define F_FW_RI_TPTE_MWBINDEN V_FW_RI_TPTE_MWBINDEN(1U)
880 #define S_FW_RI_TPTE_PS 20
881 #define M_FW_RI_TPTE_PS 0x1f
882 #define V_FW_RI_TPTE_PS(x) ((x) << S_FW_RI_TPTE_PS)
883 #define G_FW_RI_TPTE_PS(x) \
884 (((x) >> S_FW_RI_TPTE_PS) & M_FW_RI_TPTE_PS)
886 #define S_FW_RI_TPTE_QPID 0
887 #define M_FW_RI_TPTE_QPID 0xfffff
888 #define V_FW_RI_TPTE_QPID(x) ((x) << S_FW_RI_TPTE_QPID)
889 #define G_FW_RI_TPTE_QPID(x) \
890 (((x) >> S_FW_RI_TPTE_QPID) & M_FW_RI_TPTE_QPID)
892 #define S_FW_RI_TPTE_NOSNOOP 31
893 #define M_FW_RI_TPTE_NOSNOOP 0x1
894 #define V_FW_RI_TPTE_NOSNOOP(x) ((x) << S_FW_RI_TPTE_NOSNOOP)
895 #define G_FW_RI_TPTE_NOSNOOP(x) \
896 (((x) >> S_FW_RI_TPTE_NOSNOOP) & M_FW_RI_TPTE_NOSNOOP)
897 #define F_FW_RI_TPTE_NOSNOOP V_FW_RI_TPTE_NOSNOOP(1U)
899 #define S_FW_RI_TPTE_PBLADDR 0
900 #define M_FW_RI_TPTE_PBLADDR 0x1fffffff
901 #define V_FW_RI_TPTE_PBLADDR(x) ((x) << S_FW_RI_TPTE_PBLADDR)
902 #define G_FW_RI_TPTE_PBLADDR(x) \
903 (((x) >> S_FW_RI_TPTE_PBLADDR) & M_FW_RI_TPTE_PBLADDR)
905 #define S_FW_RI_TPTE_DCA 24
906 #define M_FW_RI_TPTE_DCA 0x1f
907 #define V_FW_RI_TPTE_DCA(x) ((x) << S_FW_RI_TPTE_DCA)
908 #define G_FW_RI_TPTE_DCA(x) \
909 (((x) >> S_FW_RI_TPTE_DCA) & M_FW_RI_TPTE_DCA)
911 #define S_FW_RI_TPTE_MWBCNT_PSTAG 0
912 #define M_FW_RI_TPTE_MWBCNT_PSTAG 0xffffff
913 #define V_FW_RI_TPTE_MWBCNT_PSTAT(x) \
914 ((x) << S_FW_RI_TPTE_MWBCNT_PSTAG)
915 #define G_FW_RI_TPTE_MWBCNT_PSTAG(x) \
916 (((x) >> S_FW_RI_TPTE_MWBCNT_PSTAG) & M_FW_RI_TPTE_MWBCNT_PSTAG)
918 enum fw_ri_cqe_rxtx {
919 FW_RI_CQE_RXTX_RX = 0x0,
920 FW_RI_CQE_RXTX_TX = 0x1,
926 __be32 qpid_n_stat_rxtx_type;
932 __be32 qpid_n_stat_rxtx_type;
940 #define S_FW_RI_CQE_QPID 12
941 #define M_FW_RI_CQE_QPID 0xfffff
942 #define V_FW_RI_CQE_QPID(x) ((x) << S_FW_RI_CQE_QPID)
943 #define G_FW_RI_CQE_QPID(x) \
944 (((x) >> S_FW_RI_CQE_QPID) & M_FW_RI_CQE_QPID)
946 #define S_FW_RI_CQE_NOTIFY 10
947 #define M_FW_RI_CQE_NOTIFY 0x1
948 #define V_FW_RI_CQE_NOTIFY(x) ((x) << S_FW_RI_CQE_NOTIFY)
949 #define G_FW_RI_CQE_NOTIFY(x) \
950 (((x) >> S_FW_RI_CQE_NOTIFY) & M_FW_RI_CQE_NOTIFY)
952 #define S_FW_RI_CQE_STATUS 5
953 #define M_FW_RI_CQE_STATUS 0x1f
954 #define V_FW_RI_CQE_STATUS(x) ((x) << S_FW_RI_CQE_STATUS)
955 #define G_FW_RI_CQE_STATUS(x) \
956 (((x) >> S_FW_RI_CQE_STATUS) & M_FW_RI_CQE_STATUS)
959 #define S_FW_RI_CQE_RXTX 4
960 #define M_FW_RI_CQE_RXTX 0x1
961 #define V_FW_RI_CQE_RXTX(x) ((x) << S_FW_RI_CQE_RXTX)
962 #define G_FW_RI_CQE_RXTX(x) \
963 (((x) >> S_FW_RI_CQE_RXTX) & M_FW_RI_CQE_RXTX)
965 #define S_FW_RI_CQE_TYPE 0
966 #define M_FW_RI_CQE_TYPE 0xf
967 #define V_FW_RI_CQE_TYPE(x) ((x) << S_FW_RI_CQE_TYPE)
968 #define G_FW_RI_CQE_TYPE(x) \
969 (((x) >> S_FW_RI_CQE_TYPE) & M_FW_RI_CQE_TYPE)
971 enum fw_ri_res_type {
983 union fw_ri_restype {
984 struct fw_ri_res_sqrq {
990 __be32 fetchszm_to_iqid;
991 __be32 dcaen_to_eqsize;
994 struct fw_ri_res_cq {
1000 __be32 iqandst_to_iqandstindex;
1001 __be16 iqdroprss_to_iqesize;
1011 struct fw_ri_res_wr {
1015 #ifndef C99_NOT_SUPPORTED
1016 struct fw_ri_res res[0];
1020 #define S_FW_RI_RES_WR_NRES 0
1021 #define M_FW_RI_RES_WR_NRES 0xff
1022 #define V_FW_RI_RES_WR_NRES(x) ((x) << S_FW_RI_RES_WR_NRES)
1023 #define G_FW_RI_RES_WR_NRES(x) \
1024 (((x) >> S_FW_RI_RES_WR_NRES) & M_FW_RI_RES_WR_NRES)
1026 #define S_FW_RI_RES_WR_FETCHSZM 26
1027 #define M_FW_RI_RES_WR_FETCHSZM 0x1
1028 #define V_FW_RI_RES_WR_FETCHSZM(x) ((x) << S_FW_RI_RES_WR_FETCHSZM)
1029 #define G_FW_RI_RES_WR_FETCHSZM(x) \
1030 (((x) >> S_FW_RI_RES_WR_FETCHSZM) & M_FW_RI_RES_WR_FETCHSZM)
1031 #define F_FW_RI_RES_WR_FETCHSZM V_FW_RI_RES_WR_FETCHSZM(1U)
1033 #define S_FW_RI_RES_WR_STATUSPGNS 25
1034 #define M_FW_RI_RES_WR_STATUSPGNS 0x1
1035 #define V_FW_RI_RES_WR_STATUSPGNS(x) ((x) << S_FW_RI_RES_WR_STATUSPGNS)
1036 #define G_FW_RI_RES_WR_STATUSPGNS(x) \
1037 (((x) >> S_FW_RI_RES_WR_STATUSPGNS) & M_FW_RI_RES_WR_STATUSPGNS)
1038 #define F_FW_RI_RES_WR_STATUSPGNS V_FW_RI_RES_WR_STATUSPGNS(1U)
1040 #define S_FW_RI_RES_WR_STATUSPGRO 24
1041 #define M_FW_RI_RES_WR_STATUSPGRO 0x1
1042 #define V_FW_RI_RES_WR_STATUSPGRO(x) ((x) << S_FW_RI_RES_WR_STATUSPGRO)
1043 #define G_FW_RI_RES_WR_STATUSPGRO(x) \
1044 (((x) >> S_FW_RI_RES_WR_STATUSPGRO) & M_FW_RI_RES_WR_STATUSPGRO)
1045 #define F_FW_RI_RES_WR_STATUSPGRO V_FW_RI_RES_WR_STATUSPGRO(1U)
1047 #define S_FW_RI_RES_WR_FETCHNS 23
1048 #define M_FW_RI_RES_WR_FETCHNS 0x1
1049 #define V_FW_RI_RES_WR_FETCHNS(x) ((x) << S_FW_RI_RES_WR_FETCHNS)
1050 #define G_FW_RI_RES_WR_FETCHNS(x) \
1051 (((x) >> S_FW_RI_RES_WR_FETCHNS) & M_FW_RI_RES_WR_FETCHNS)
1052 #define F_FW_RI_RES_WR_FETCHNS V_FW_RI_RES_WR_FETCHNS(1U)
1054 #define S_FW_RI_RES_WR_FETCHRO 22
1055 #define M_FW_RI_RES_WR_FETCHRO 0x1
1056 #define V_FW_RI_RES_WR_FETCHRO(x) ((x) << S_FW_RI_RES_WR_FETCHRO)
1057 #define G_FW_RI_RES_WR_FETCHRO(x) \
1058 (((x) >> S_FW_RI_RES_WR_FETCHRO) & M_FW_RI_RES_WR_FETCHRO)
1059 #define F_FW_RI_RES_WR_FETCHRO V_FW_RI_RES_WR_FETCHRO(1U)
1061 #define S_FW_RI_RES_WR_HOSTFCMODE 20
1062 #define M_FW_RI_RES_WR_HOSTFCMODE 0x3
1063 #define V_FW_RI_RES_WR_HOSTFCMODE(x) ((x) << S_FW_RI_RES_WR_HOSTFCMODE)
1064 #define G_FW_RI_RES_WR_HOSTFCMODE(x) \
1065 (((x) >> S_FW_RI_RES_WR_HOSTFCMODE) & M_FW_RI_RES_WR_HOSTFCMODE)
1067 #define S_FW_RI_RES_WR_CPRIO 19
1068 #define M_FW_RI_RES_WR_CPRIO 0x1
1069 #define V_FW_RI_RES_WR_CPRIO(x) ((x) << S_FW_RI_RES_WR_CPRIO)
1070 #define G_FW_RI_RES_WR_CPRIO(x) \
1071 (((x) >> S_FW_RI_RES_WR_CPRIO) & M_FW_RI_RES_WR_CPRIO)
1072 #define F_FW_RI_RES_WR_CPRIO V_FW_RI_RES_WR_CPRIO(1U)
1074 #define S_FW_RI_RES_WR_ONCHIP 18
1075 #define M_FW_RI_RES_WR_ONCHIP 0x1
1076 #define V_FW_RI_RES_WR_ONCHIP(x) ((x) << S_FW_RI_RES_WR_ONCHIP)
1077 #define G_FW_RI_RES_WR_ONCHIP(x) \
1078 (((x) >> S_FW_RI_RES_WR_ONCHIP) & M_FW_RI_RES_WR_ONCHIP)
1079 #define F_FW_RI_RES_WR_ONCHIP V_FW_RI_RES_WR_ONCHIP(1U)
1081 #define S_FW_RI_RES_WR_PCIECHN 16
1082 #define M_FW_RI_RES_WR_PCIECHN 0x3
1083 #define V_FW_RI_RES_WR_PCIECHN(x) ((x) << S_FW_RI_RES_WR_PCIECHN)
1084 #define G_FW_RI_RES_WR_PCIECHN(x) \
1085 (((x) >> S_FW_RI_RES_WR_PCIECHN) & M_FW_RI_RES_WR_PCIECHN)
1087 #define S_FW_RI_RES_WR_IQID 0
1088 #define M_FW_RI_RES_WR_IQID 0xffff
1089 #define V_FW_RI_RES_WR_IQID(x) ((x) << S_FW_RI_RES_WR_IQID)
1090 #define G_FW_RI_RES_WR_IQID(x) \
1091 (((x) >> S_FW_RI_RES_WR_IQID) & M_FW_RI_RES_WR_IQID)
1093 #define S_FW_RI_RES_WR_DCAEN 31
1094 #define M_FW_RI_RES_WR_DCAEN 0x1
1095 #define V_FW_RI_RES_WR_DCAEN(x) ((x) << S_FW_RI_RES_WR_DCAEN)
1096 #define G_FW_RI_RES_WR_DCAEN(x) \
1097 (((x) >> S_FW_RI_RES_WR_DCAEN) & M_FW_RI_RES_WR_DCAEN)
1098 #define F_FW_RI_RES_WR_DCAEN V_FW_RI_RES_WR_DCAEN(1U)
1100 #define S_FW_RI_RES_WR_DCACPU 26
1101 #define M_FW_RI_RES_WR_DCACPU 0x1f
1102 #define V_FW_RI_RES_WR_DCACPU(x) ((x) << S_FW_RI_RES_WR_DCACPU)
1103 #define G_FW_RI_RES_WR_DCACPU(x) \
1104 (((x) >> S_FW_RI_RES_WR_DCACPU) & M_FW_RI_RES_WR_DCACPU)
1106 #define S_FW_RI_RES_WR_FBMIN 23
1107 #define M_FW_RI_RES_WR_FBMIN 0x7
1108 #define V_FW_RI_RES_WR_FBMIN(x) ((x) << S_FW_RI_RES_WR_FBMIN)
1109 #define G_FW_RI_RES_WR_FBMIN(x) \
1110 (((x) >> S_FW_RI_RES_WR_FBMIN) & M_FW_RI_RES_WR_FBMIN)
1112 #define S_FW_RI_RES_WR_FBMAX 20
1113 #define M_FW_RI_RES_WR_FBMAX 0x7
1114 #define V_FW_RI_RES_WR_FBMAX(x) ((x) << S_FW_RI_RES_WR_FBMAX)
1115 #define G_FW_RI_RES_WR_FBMAX(x) \
1116 (((x) >> S_FW_RI_RES_WR_FBMAX) & M_FW_RI_RES_WR_FBMAX)
1118 #define S_FW_RI_RES_WR_CIDXFTHRESHO 19
1119 #define M_FW_RI_RES_WR_CIDXFTHRESHO 0x1
1120 #define V_FW_RI_RES_WR_CIDXFTHRESHO(x) ((x) << S_FW_RI_RES_WR_CIDXFTHRESHO)
1121 #define G_FW_RI_RES_WR_CIDXFTHRESHO(x) \
1122 (((x) >> S_FW_RI_RES_WR_CIDXFTHRESHO) & M_FW_RI_RES_WR_CIDXFTHRESHO)
1123 #define F_FW_RI_RES_WR_CIDXFTHRESHO V_FW_RI_RES_WR_CIDXFTHRESHO(1U)
1125 #define S_FW_RI_RES_WR_CIDXFTHRESH 16
1126 #define M_FW_RI_RES_WR_CIDXFTHRESH 0x7
1127 #define V_FW_RI_RES_WR_CIDXFTHRESH(x) ((x) << S_FW_RI_RES_WR_CIDXFTHRESH)
1128 #define G_FW_RI_RES_WR_CIDXFTHRESH(x) \
1129 (((x) >> S_FW_RI_RES_WR_CIDXFTHRESH) & M_FW_RI_RES_WR_CIDXFTHRESH)
1131 #define S_FW_RI_RES_WR_EQSIZE 0
1132 #define M_FW_RI_RES_WR_EQSIZE 0xffff
1133 #define V_FW_RI_RES_WR_EQSIZE(x) ((x) << S_FW_RI_RES_WR_EQSIZE)
1134 #define G_FW_RI_RES_WR_EQSIZE(x) \
1135 (((x) >> S_FW_RI_RES_WR_EQSIZE) & M_FW_RI_RES_WR_EQSIZE)
1137 #define S_FW_RI_RES_WR_IQANDST 15
1138 #define M_FW_RI_RES_WR_IQANDST 0x1
1139 #define V_FW_RI_RES_WR_IQANDST(x) ((x) << S_FW_RI_RES_WR_IQANDST)
1140 #define G_FW_RI_RES_WR_IQANDST(x) \
1141 (((x) >> S_FW_RI_RES_WR_IQANDST) & M_FW_RI_RES_WR_IQANDST)
1142 #define F_FW_RI_RES_WR_IQANDST V_FW_RI_RES_WR_IQANDST(1U)
1144 #define S_FW_RI_RES_WR_IQANUS 14
1145 #define M_FW_RI_RES_WR_IQANUS 0x1
1146 #define V_FW_RI_RES_WR_IQANUS(x) ((x) << S_FW_RI_RES_WR_IQANUS)
1147 #define G_FW_RI_RES_WR_IQANUS(x) \
1148 (((x) >> S_FW_RI_RES_WR_IQANUS) & M_FW_RI_RES_WR_IQANUS)
1149 #define F_FW_RI_RES_WR_IQANUS V_FW_RI_RES_WR_IQANUS(1U)
1151 #define S_FW_RI_RES_WR_IQANUD 12
1152 #define M_FW_RI_RES_WR_IQANUD 0x3
1153 #define V_FW_RI_RES_WR_IQANUD(x) ((x) << S_FW_RI_RES_WR_IQANUD)
1154 #define G_FW_RI_RES_WR_IQANUD(x) \
1155 (((x) >> S_FW_RI_RES_WR_IQANUD) & M_FW_RI_RES_WR_IQANUD)
1157 #define S_FW_RI_RES_WR_IQANDSTINDEX 0
1158 #define M_FW_RI_RES_WR_IQANDSTINDEX 0xfff
1159 #define V_FW_RI_RES_WR_IQANDSTINDEX(x) ((x) << S_FW_RI_RES_WR_IQANDSTINDEX)
1160 #define G_FW_RI_RES_WR_IQANDSTINDEX(x) \
1161 (((x) >> S_FW_RI_RES_WR_IQANDSTINDEX) & M_FW_RI_RES_WR_IQANDSTINDEX)
1163 #define S_FW_RI_RES_WR_IQDROPRSS 15
1164 #define M_FW_RI_RES_WR_IQDROPRSS 0x1
1165 #define V_FW_RI_RES_WR_IQDROPRSS(x) ((x) << S_FW_RI_RES_WR_IQDROPRSS)
1166 #define G_FW_RI_RES_WR_IQDROPRSS(x) \
1167 (((x) >> S_FW_RI_RES_WR_IQDROPRSS) & M_FW_RI_RES_WR_IQDROPRSS)
1168 #define F_FW_RI_RES_WR_IQDROPRSS V_FW_RI_RES_WR_IQDROPRSS(1U)
1170 #define S_FW_RI_RES_WR_IQGTSMODE 14
1171 #define M_FW_RI_RES_WR_IQGTSMODE 0x1
1172 #define V_FW_RI_RES_WR_IQGTSMODE(x) ((x) << S_FW_RI_RES_WR_IQGTSMODE)
1173 #define G_FW_RI_RES_WR_IQGTSMODE(x) \
1174 (((x) >> S_FW_RI_RES_WR_IQGTSMODE) & M_FW_RI_RES_WR_IQGTSMODE)
1175 #define F_FW_RI_RES_WR_IQGTSMODE V_FW_RI_RES_WR_IQGTSMODE(1U)
1177 #define S_FW_RI_RES_WR_IQPCIECH 12
1178 #define M_FW_RI_RES_WR_IQPCIECH 0x3
1179 #define V_FW_RI_RES_WR_IQPCIECH(x) ((x) << S_FW_RI_RES_WR_IQPCIECH)
1180 #define G_FW_RI_RES_WR_IQPCIECH(x) \
1181 (((x) >> S_FW_RI_RES_WR_IQPCIECH) & M_FW_RI_RES_WR_IQPCIECH)
1183 #define S_FW_RI_RES_WR_IQDCAEN 11
1184 #define M_FW_RI_RES_WR_IQDCAEN 0x1
1185 #define V_FW_RI_RES_WR_IQDCAEN(x) ((x) << S_FW_RI_RES_WR_IQDCAEN)
1186 #define G_FW_RI_RES_WR_IQDCAEN(x) \
1187 (((x) >> S_FW_RI_RES_WR_IQDCAEN) & M_FW_RI_RES_WR_IQDCAEN)
1188 #define F_FW_RI_RES_WR_IQDCAEN V_FW_RI_RES_WR_IQDCAEN(1U)
1190 #define S_FW_RI_RES_WR_IQDCACPU 6
1191 #define M_FW_RI_RES_WR_IQDCACPU 0x1f
1192 #define V_FW_RI_RES_WR_IQDCACPU(x) ((x) << S_FW_RI_RES_WR_IQDCACPU)
1193 #define G_FW_RI_RES_WR_IQDCACPU(x) \
1194 (((x) >> S_FW_RI_RES_WR_IQDCACPU) & M_FW_RI_RES_WR_IQDCACPU)
1196 #define S_FW_RI_RES_WR_IQINTCNTTHRESH 4
1197 #define M_FW_RI_RES_WR_IQINTCNTTHRESH 0x3
1198 #define V_FW_RI_RES_WR_IQINTCNTTHRESH(x) \
1199 ((x) << S_FW_RI_RES_WR_IQINTCNTTHRESH)
1200 #define G_FW_RI_RES_WR_IQINTCNTTHRESH(x) \
1201 (((x) >> S_FW_RI_RES_WR_IQINTCNTTHRESH) & M_FW_RI_RES_WR_IQINTCNTTHRESH)
1203 #define S_FW_RI_RES_WR_IQO 3
1204 #define M_FW_RI_RES_WR_IQO 0x1
1205 #define V_FW_RI_RES_WR_IQO(x) ((x) << S_FW_RI_RES_WR_IQO)
1206 #define G_FW_RI_RES_WR_IQO(x) \
1207 (((x) >> S_FW_RI_RES_WR_IQO) & M_FW_RI_RES_WR_IQO)
1208 #define F_FW_RI_RES_WR_IQO V_FW_RI_RES_WR_IQO(1U)
1210 #define S_FW_RI_RES_WR_IQCPRIO 2
1211 #define M_FW_RI_RES_WR_IQCPRIO 0x1
1212 #define V_FW_RI_RES_WR_IQCPRIO(x) ((x) << S_FW_RI_RES_WR_IQCPRIO)
1213 #define G_FW_RI_RES_WR_IQCPRIO(x) \
1214 (((x) >> S_FW_RI_RES_WR_IQCPRIO) & M_FW_RI_RES_WR_IQCPRIO)
1215 #define F_FW_RI_RES_WR_IQCPRIO V_FW_RI_RES_WR_IQCPRIO(1U)
1217 #define S_FW_RI_RES_WR_IQESIZE 0
1218 #define M_FW_RI_RES_WR_IQESIZE 0x3
1219 #define V_FW_RI_RES_WR_IQESIZE(x) ((x) << S_FW_RI_RES_WR_IQESIZE)
1220 #define G_FW_RI_RES_WR_IQESIZE(x) \
1221 (((x) >> S_FW_RI_RES_WR_IQESIZE) & M_FW_RI_RES_WR_IQESIZE)
1223 #define S_FW_RI_RES_WR_IQNS 31
1224 #define M_FW_RI_RES_WR_IQNS 0x1
1225 #define V_FW_RI_RES_WR_IQNS(x) ((x) << S_FW_RI_RES_WR_IQNS)
1226 #define G_FW_RI_RES_WR_IQNS(x) \
1227 (((x) >> S_FW_RI_RES_WR_IQNS) & M_FW_RI_RES_WR_IQNS)
1228 #define F_FW_RI_RES_WR_IQNS V_FW_RI_RES_WR_IQNS(1U)
1230 #define S_FW_RI_RES_WR_IQRO 30
1231 #define M_FW_RI_RES_WR_IQRO 0x1
1232 #define V_FW_RI_RES_WR_IQRO(x) ((x) << S_FW_RI_RES_WR_IQRO)
1233 #define G_FW_RI_RES_WR_IQRO(x) \
1234 (((x) >> S_FW_RI_RES_WR_IQRO) & M_FW_RI_RES_WR_IQRO)
1235 #define F_FW_RI_RES_WR_IQRO V_FW_RI_RES_WR_IQRO(1U)
1237 struct fw_ri_rdma_write_wr {
1247 #ifndef C99_NOT_SUPPORTED
1249 struct fw_ri_immd immd_src[0];
1250 struct fw_ri_isgl isgl_src[0];
1255 struct fw_ri_send_wr {
1266 #ifndef C99_NOT_SUPPORTED
1268 struct fw_ri_immd immd_src[0];
1269 struct fw_ri_isgl isgl_src[0];
1274 #define S_FW_RI_SEND_WR_SENDOP 0
1275 #define M_FW_RI_SEND_WR_SENDOP 0xf
1276 #define V_FW_RI_SEND_WR_SENDOP(x) ((x) << S_FW_RI_SEND_WR_SENDOP)
1277 #define G_FW_RI_SEND_WR_SENDOP(x) \
1278 (((x) >> S_FW_RI_SEND_WR_SENDOP) & M_FW_RI_SEND_WR_SENDOP)
1280 struct fw_ri_rdma_read_wr {
1297 struct fw_ri_recv_wr {
1303 struct fw_ri_isgl isgl;
1306 struct fw_ri_bind_mw_wr {
1312 __u8 qpbinde_to_dcacpu;
1324 #define S_FW_RI_BIND_MW_WR_QPBINDE 6
1325 #define M_FW_RI_BIND_MW_WR_QPBINDE 0x1
1326 #define V_FW_RI_BIND_MW_WR_QPBINDE(x) ((x) << S_FW_RI_BIND_MW_WR_QPBINDE)
1327 #define G_FW_RI_BIND_MW_WR_QPBINDE(x) \
1328 (((x) >> S_FW_RI_BIND_MW_WR_QPBINDE) & M_FW_RI_BIND_MW_WR_QPBINDE)
1329 #define F_FW_RI_BIND_MW_WR_QPBINDE V_FW_RI_BIND_MW_WR_QPBINDE(1U)
1331 #define S_FW_RI_BIND_MW_WR_NS 5
1332 #define M_FW_RI_BIND_MW_WR_NS 0x1
1333 #define V_FW_RI_BIND_MW_WR_NS(x) ((x) << S_FW_RI_BIND_MW_WR_NS)
1334 #define G_FW_RI_BIND_MW_WR_NS(x) \
1335 (((x) >> S_FW_RI_BIND_MW_WR_NS) & M_FW_RI_BIND_MW_WR_NS)
1336 #define F_FW_RI_BIND_MW_WR_NS V_FW_RI_BIND_MW_WR_NS(1U)
1338 #define S_FW_RI_BIND_MW_WR_DCACPU 0
1339 #define M_FW_RI_BIND_MW_WR_DCACPU 0x1f
1340 #define V_FW_RI_BIND_MW_WR_DCACPU(x) ((x) << S_FW_RI_BIND_MW_WR_DCACPU)
1341 #define G_FW_RI_BIND_MW_WR_DCACPU(x) \
1342 (((x) >> S_FW_RI_BIND_MW_WR_DCACPU) & M_FW_RI_BIND_MW_WR_DCACPU)
1344 struct fw_ri_fr_nsmr_wr {
1350 __u8 qpbinde_to_dcacpu;
1361 #define S_FW_RI_FR_NSMR_WR_QPBINDE 6
1362 #define M_FW_RI_FR_NSMR_WR_QPBINDE 0x1
1363 #define V_FW_RI_FR_NSMR_WR_QPBINDE(x) ((x) << S_FW_RI_FR_NSMR_WR_QPBINDE)
1364 #define G_FW_RI_FR_NSMR_WR_QPBINDE(x) \
1365 (((x) >> S_FW_RI_FR_NSMR_WR_QPBINDE) & M_FW_RI_FR_NSMR_WR_QPBINDE)
1366 #define F_FW_RI_FR_NSMR_WR_QPBINDE V_FW_RI_FR_NSMR_WR_QPBINDE(1U)
1368 #define S_FW_RI_FR_NSMR_WR_NS 5
1369 #define M_FW_RI_FR_NSMR_WR_NS 0x1
1370 #define V_FW_RI_FR_NSMR_WR_NS(x) ((x) << S_FW_RI_FR_NSMR_WR_NS)
1371 #define G_FW_RI_FR_NSMR_WR_NS(x) \
1372 (((x) >> S_FW_RI_FR_NSMR_WR_NS) & M_FW_RI_FR_NSMR_WR_NS)
1373 #define F_FW_RI_FR_NSMR_WR_NS V_FW_RI_FR_NSMR_WR_NS(1U)
1375 #define S_FW_RI_FR_NSMR_WR_DCACPU 0
1376 #define M_FW_RI_FR_NSMR_WR_DCACPU 0x1f
1377 #define V_FW_RI_FR_NSMR_WR_DCACPU(x) ((x) << S_FW_RI_FR_NSMR_WR_DCACPU)
1378 #define G_FW_RI_FR_NSMR_WR_DCACPU(x) \
1379 (((x) >> S_FW_RI_FR_NSMR_WR_DCACPU) & M_FW_RI_FR_NSMR_WR_DCACPU)
1381 struct fw_ri_inv_lstag_wr {
1394 FW_RI_TYPE_TERMINATE
1397 enum fw_ri_init_p2ptype {
1398 FW_RI_INIT_P2PTYPE_RDMA_WRITE = FW_RI_RDMA_WRITE,
1399 FW_RI_INIT_P2PTYPE_READ_REQ = FW_RI_READ_REQ,
1400 FW_RI_INIT_P2PTYPE_SEND = FW_RI_SEND,
1401 FW_RI_INIT_P2PTYPE_SEND_WITH_INV = FW_RI_SEND_WITH_INV,
1402 FW_RI_INIT_P2PTYPE_SEND_WITH_SE = FW_RI_SEND_WITH_SE,
1403 FW_RI_INIT_P2PTYPE_SEND_WITH_SE_INV = FW_RI_SEND_WITH_SE_INV,
1404 FW_RI_INIT_P2PTYPE_DISABLED = 0xf,
1409 __be32 flowid_len16;
1414 __u8 mpareqbit_p2ptype;
1432 union fw_ri_init_p2p {
1433 struct fw_ri_rdma_write_wr write;
1434 struct fw_ri_rdma_read_wr read;
1435 struct fw_ri_send_wr send;
1443 struct fw_ri_terminate {
1452 #define S_FW_RI_WR_MPAREQBIT 7
1453 #define M_FW_RI_WR_MPAREQBIT 0x1
1454 #define V_FW_RI_WR_MPAREQBIT(x) ((x) << S_FW_RI_WR_MPAREQBIT)
1455 #define G_FW_RI_WR_MPAREQBIT(x) \
1456 (((x) >> S_FW_RI_WR_MPAREQBIT) & M_FW_RI_WR_MPAREQBIT)
1457 #define F_FW_RI_WR_MPAREQBIT V_FW_RI_WR_MPAREQBIT(1U)
1459 #define S_FW_RI_WR_0BRRBIT 6
1460 #define M_FW_RI_WR_0BRRBIT 0x1
1461 #define V_FW_RI_WR_0BRRBIT(x) ((x) << S_FW_RI_WR_0BRRBIT)
1462 #define G_FW_RI_WR_0BRRBIT(x) \
1463 (((x) >> S_FW_RI_WR_0BRRBIT) & M_FW_RI_WR_0BRRBIT)
1464 #define F_FW_RI_WR_0BRRBIT V_FW_RI_WR_0BRRBIT(1U)
1466 #define S_FW_RI_WR_P2PTYPE 0
1467 #define M_FW_RI_WR_P2PTYPE 0xf
1468 #define V_FW_RI_WR_P2PTYPE(x) ((x) << S_FW_RI_WR_P2PTYPE)
1469 #define G_FW_RI_WR_P2PTYPE(x) \
1470 (((x) >> S_FW_RI_WR_P2PTYPE) & M_FW_RI_WR_P2PTYPE)
1473 struct fw_iscsi_node_wr {
1476 __u8 node_attr_to_compl;
1488 #define S_FW_ISCSI_NODE_WR_NODE_ATTR 7
1489 #define M_FW_ISCSI_NODE_WR_NODE_ATTR 0x1
1490 #define V_FW_ISCSI_NODE_WR_NODE_ATTR(x) ((x) << S_FW_ISCSI_NODE_WR_NODE_ATTR)
1491 #define G_FW_ISCSI_NODE_WR_NODE_ATTR(x) \
1492 (((x) >> S_FW_ISCSI_NODE_WR_NODE_ATTR) & M_FW_ISCSI_NODE_WR_NODE_ATTR)
1493 #define F_FW_ISCSI_NODE_WR_NODE_ATTR V_FW_ISCSI_NODE_WR_NODE_ATTR(1U)
1495 #define S_FW_ISCSI_NODE_WR_SESS_ATTR 6
1496 #define M_FW_ISCSI_NODE_WR_SESS_ATTR 0x1
1497 #define V_FW_ISCSI_NODE_WR_SESS_ATTR(x) ((x) << S_FW_ISCSI_NODE_WR_SESS_ATTR)
1498 #define G_FW_ISCSI_NODE_WR_SESS_ATTR(x) \
1499 (((x) >> S_FW_ISCSI_NODE_WR_SESS_ATTR) & M_FW_ISCSI_NODE_WR_SESS_ATTR)
1500 #define F_FW_ISCSI_NODE_WR_SESS_ATTR V_FW_ISCSI_NODE_WR_SESS_ATTR(1U)
1502 #define S_FW_ISCSI_NODE_WR_CONN_ATTR 5
1503 #define M_FW_ISCSI_NODE_WR_CONN_ATTR 0x1
1504 #define V_FW_ISCSI_NODE_WR_CONN_ATTR(x) ((x) << S_FW_ISCSI_NODE_WR_CONN_ATTR)
1505 #define G_FW_ISCSI_NODE_WR_CONN_ATTR(x) \
1506 (((x) >> S_FW_ISCSI_NODE_WR_CONN_ATTR) & M_FW_ISCSI_NODE_WR_CONN_ATTR)
1507 #define F_FW_ISCSI_NODE_WR_CONN_ATTR V_FW_ISCSI_NODE_WR_CONN_ATTR(1U)
1509 #define S_FW_ISCSI_NODE_WR_TGT_ATTR 4
1510 #define M_FW_ISCSI_NODE_WR_TGT_ATTR 0x1
1511 #define V_FW_ISCSI_NODE_WR_TGT_ATTR(x) ((x) << S_FW_ISCSI_NODE_WR_TGT_ATTR)
1512 #define G_FW_ISCSI_NODE_WR_TGT_ATTR(x) \
1513 (((x) >> S_FW_ISCSI_NODE_WR_TGT_ATTR) & M_FW_ISCSI_NODE_WR_TGT_ATTR)
1514 #define F_FW_ISCSI_NODE_WR_TGT_ATTR V_FW_ISCSI_NODE_WR_TGT_ATTR(1U)
1516 #define S_FW_ISCSI_NODE_WR_NODE_TYPE 3
1517 #define M_FW_ISCSI_NODE_WR_NODE_TYPE 0x1
1518 #define V_FW_ISCSI_NODE_WR_NODE_TYPE(x) ((x) << S_FW_ISCSI_NODE_WR_NODE_TYPE)
1519 #define G_FW_ISCSI_NODE_WR_NODE_TYPE(x) \
1520 (((x) >> S_FW_ISCSI_NODE_WR_NODE_TYPE) & M_FW_ISCSI_NODE_WR_NODE_TYPE)
1521 #define F_FW_ISCSI_NODE_WR_NODE_TYPE V_FW_ISCSI_NODE_WR_NODE_TYPE(1U)
1523 #define S_FW_ISCSI_NODE_WR_COMPL 0
1524 #define M_FW_ISCSI_NODE_WR_COMPL 0x1
1525 #define V_FW_ISCSI_NODE_WR_COMPL(x) ((x) << S_FW_ISCSI_NODE_WR_COMPL)
1526 #define G_FW_ISCSI_NODE_WR_COMPL(x) \
1527 (((x) >> S_FW_ISCSI_NODE_WR_COMPL) & M_FW_ISCSI_NODE_WR_COMPL)
1528 #define F_FW_ISCSI_NODE_WR_COMPL V_FW_ISCSI_NODE_WR_COMPL(1U)
1532 /******************************************************************************
1534 *********************/
1537 * The maximum length of time, in miliseconds, that we expect any firmware
1538 * command to take to execute and return a reply to the host. The RESET
1539 * and INITIALIZE commands can take a fair amount of time to execute but
1540 * most execute in far less time than this maximum. This constant is used
1541 * by host software to determine how long to wait for a firmware command
1542 * reply before declaring the firmware as dead/unreachable ...
1544 #define FW_CMD_MAX_TIMEOUT 10000
1546 enum fw_cmd_opcodes {
1548 FW_RESET_CMD = 0x03,
1549 FW_HELLO_CMD = 0x04,
1551 FW_INITIALIZE_CMD = 0x06,
1552 FW_CAPS_CONFIG_CMD = 0x07,
1553 FW_PARAMS_CMD = 0x08,
1556 FW_EQ_MNGT_CMD = 0x11,
1557 FW_EQ_ETH_CMD = 0x12,
1558 FW_EQ_CTRL_CMD = 0x13,
1559 FW_EQ_OFLD_CMD = 0x21,
1561 FW_VI_MAC_CMD = 0x15,
1562 FW_VI_RXMODE_CMD = 0x16,
1563 FW_VI_ENABLE_CMD = 0x17,
1564 FW_VI_STATS_CMD = 0x1a,
1565 FW_ACL_MAC_CMD = 0x18,
1566 FW_ACL_VLAN_CMD = 0x19,
1568 FW_PORT_STATS_CMD = 0x1c,
1569 FW_PORT_LB_STATS_CMD = 0x1d,
1570 FW_PORT_TRACE_CMD = 0x1e,
1571 FW_PORT_TRACE_MMAP_CMD = 0x1f,
1572 FW_RSS_IND_TBL_CMD = 0x20,
1573 FW_RSS_GLB_CONFIG_CMD = 0x22,
1574 FW_RSS_VI_CONFIG_CMD = 0x23,
1575 FW_SCHED_CMD = 0x24,
1576 FW_DEVLOG_CMD = 0x25,
1577 FW_NETIF_CMD = 0x26,
1578 FW_LASTC2E_CMD = 0x40,
1579 FW_ERROR_CMD = 0x80,
1580 FW_DEBUG_CMD = 0x81,
1585 FW_CMD_CAP_PF = 0x01,
1586 FW_CMD_CAP_DMAQ = 0x02,
1587 FW_CMD_CAP_PORT = 0x04,
1588 FW_CMD_CAP_PORTPROMISC = 0x08,
1589 FW_CMD_CAP_PORTSTATS = 0x10,
1590 FW_CMD_CAP_VF = 0x80,
1594 * Generic command header flit0
1601 #define S_FW_CMD_OP 24
1602 #define M_FW_CMD_OP 0xff
1603 #define V_FW_CMD_OP(x) ((x) << S_FW_CMD_OP)
1604 #define G_FW_CMD_OP(x) (((x) >> S_FW_CMD_OP) & M_FW_CMD_OP)
1606 #define S_FW_CMD_REQUEST 23
1607 #define M_FW_CMD_REQUEST 0x1
1608 #define V_FW_CMD_REQUEST(x) ((x) << S_FW_CMD_REQUEST)
1609 #define G_FW_CMD_REQUEST(x) (((x) >> S_FW_CMD_REQUEST) & M_FW_CMD_REQUEST)
1610 #define F_FW_CMD_REQUEST V_FW_CMD_REQUEST(1U)
1612 #define S_FW_CMD_READ 22
1613 #define M_FW_CMD_READ 0x1
1614 #define V_FW_CMD_READ(x) ((x) << S_FW_CMD_READ)
1615 #define G_FW_CMD_READ(x) (((x) >> S_FW_CMD_READ) & M_FW_CMD_READ)
1616 #define F_FW_CMD_READ V_FW_CMD_READ(1U)
1618 #define S_FW_CMD_WRITE 21
1619 #define M_FW_CMD_WRITE 0x1
1620 #define V_FW_CMD_WRITE(x) ((x) << S_FW_CMD_WRITE)
1621 #define G_FW_CMD_WRITE(x) (((x) >> S_FW_CMD_WRITE) & M_FW_CMD_WRITE)
1622 #define F_FW_CMD_WRITE V_FW_CMD_WRITE(1U)
1624 #define S_FW_CMD_EXEC 20
1625 #define M_FW_CMD_EXEC 0x1
1626 #define V_FW_CMD_EXEC(x) ((x) << S_FW_CMD_EXEC)
1627 #define G_FW_CMD_EXEC(x) (((x) >> S_FW_CMD_EXEC) & M_FW_CMD_EXEC)
1628 #define F_FW_CMD_EXEC V_FW_CMD_EXEC(1U)
1630 #define S_FW_CMD_RAMASK 20
1631 #define M_FW_CMD_RAMASK 0xf
1632 #define V_FW_CMD_RAMASK(x) ((x) << S_FW_CMD_RAMASK)
1633 #define G_FW_CMD_RAMASK(x) (((x) >> S_FW_CMD_RAMASK) & M_FW_CMD_RAMASK)
1635 #define S_FW_CMD_RETVAL 8
1636 #define M_FW_CMD_RETVAL 0xff
1637 #define V_FW_CMD_RETVAL(x) ((x) << S_FW_CMD_RETVAL)
1638 #define G_FW_CMD_RETVAL(x) (((x) >> S_FW_CMD_RETVAL) & M_FW_CMD_RETVAL)
1640 #define S_FW_CMD_LEN16 0
1641 #define M_FW_CMD_LEN16 0xff
1642 #define V_FW_CMD_LEN16(x) ((x) << S_FW_CMD_LEN16)
1643 #define G_FW_CMD_LEN16(x) (((x) >> S_FW_CMD_LEN16) & M_FW_CMD_LEN16)
1645 #define FW_LEN16(fw_struct) V_FW_CMD_LEN16(sizeof(fw_struct) / 16)
1650 enum fw_ldst_addrspc {
1651 FW_LDST_ADDRSPC_FIRMWARE = 0x0001,
1652 FW_LDST_ADDRSPC_SGE_EGRC = 0x0008,
1653 FW_LDST_ADDRSPC_SGE_INGC = 0x0009,
1654 FW_LDST_ADDRSPC_SGE_FLMC = 0x000a,
1655 FW_LDST_ADDRSPC_SGE_CONMC = 0x000b,
1656 FW_LDST_ADDRSPC_TP_PIO = 0x0010,
1657 FW_LDST_ADDRSPC_TP_TM_PIO = 0x0011,
1658 FW_LDST_ADDRSPC_TP_MIB = 0x0012,
1659 FW_LDST_ADDRSPC_MDIO = 0x0018,
1660 FW_LDST_ADDRSPC_MPS = 0x0020,
1661 FW_LDST_ADDRSPC_FUNC = 0x0028,
1662 FW_LDST_ADDRSPC_FUNC_PCIE = 0x0029,
1663 FW_LDST_ADDRSPC_FUNC_I2C = 0x002A,
1667 * MDIO VSC8634 register access control field
1669 enum fw_ldst_mdio_vsc8634_aid {
1670 FW_LDST_MDIO_VS_STANDARD,
1671 FW_LDST_MDIO_VS_EXTENDED,
1672 FW_LDST_MDIO_VS_GPIO
1675 enum fw_ldst_mps_fid {
1680 enum fw_ldst_func_access_ctl {
1681 FW_LDST_FUNC_ACC_CTL_VIID,
1682 FW_LDST_FUNC_ACC_CTL_FID
1685 enum fw_ldst_func_mod_index {
1689 struct fw_ldst_cmd {
1690 __be32 op_to_addrspace;
1691 __be32 cycles_to_len16;
1693 struct fw_ldst_addrval {
1697 struct fw_ldst_idctxt {
1709 struct fw_ldst_mdio {
1715 struct fw_ldst_mps {
1725 struct fw_ldst_func {
1733 struct fw_ldst_pcie {
1738 __u8 select_naccess;
1743 struct fw_ldst_i2c {
1753 #define S_FW_LDST_CMD_ADDRSPACE 0
1754 #define M_FW_LDST_CMD_ADDRSPACE 0xff
1755 #define V_FW_LDST_CMD_ADDRSPACE(x) ((x) << S_FW_LDST_CMD_ADDRSPACE)
1756 #define G_FW_LDST_CMD_ADDRSPACE(x) \
1757 (((x) >> S_FW_LDST_CMD_ADDRSPACE) & M_FW_LDST_CMD_ADDRSPACE)
1759 #define S_FW_LDST_CMD_CYCLES 16
1760 #define M_FW_LDST_CMD_CYCLES 0xffff
1761 #define V_FW_LDST_CMD_CYCLES(x) ((x) << S_FW_LDST_CMD_CYCLES)
1762 #define G_FW_LDST_CMD_CYCLES(x) \
1763 (((x) >> S_FW_LDST_CMD_CYCLES) & M_FW_LDST_CMD_CYCLES)
1765 #define S_FW_LDST_CMD_MSG 31
1766 #define M_FW_LDST_CMD_MSG 0x1
1767 #define V_FW_LDST_CMD_MSG(x) ((x) << S_FW_LDST_CMD_MSG)
1768 #define G_FW_LDST_CMD_MSG(x) \
1769 (((x) >> S_FW_LDST_CMD_MSG) & M_FW_LDST_CMD_MSG)
1770 #define F_FW_LDST_CMD_MSG V_FW_LDST_CMD_MSG(1U)
1772 #define S_FW_LDST_CMD_PADDR 8
1773 #define M_FW_LDST_CMD_PADDR 0x1f
1774 #define V_FW_LDST_CMD_PADDR(x) ((x) << S_FW_LDST_CMD_PADDR)
1775 #define G_FW_LDST_CMD_PADDR(x) \
1776 (((x) >> S_FW_LDST_CMD_PADDR) & M_FW_LDST_CMD_PADDR)
1778 #define S_FW_LDST_CMD_MMD 0
1779 #define M_FW_LDST_CMD_MMD 0x1f
1780 #define V_FW_LDST_CMD_MMD(x) ((x) << S_FW_LDST_CMD_MMD)
1781 #define G_FW_LDST_CMD_MMD(x) \
1782 (((x) >> S_FW_LDST_CMD_MMD) & M_FW_LDST_CMD_MMD)
1784 #define S_FW_LDST_CMD_FID 15
1785 #define M_FW_LDST_CMD_FID 0x1
1786 #define V_FW_LDST_CMD_FID(x) ((x) << S_FW_LDST_CMD_FID)
1787 #define G_FW_LDST_CMD_FID(x) \
1788 (((x) >> S_FW_LDST_CMD_FID) & M_FW_LDST_CMD_FID)
1789 #define F_FW_LDST_CMD_FID V_FW_LDST_CMD_FID(1U)
1791 #define S_FW_LDST_CMD_CTL 0
1792 #define M_FW_LDST_CMD_CTL 0x7fff
1793 #define V_FW_LDST_CMD_CTL(x) ((x) << S_FW_LDST_CMD_CTL)
1794 #define G_FW_LDST_CMD_CTL(x) \
1795 (((x) >> S_FW_LDST_CMD_CTL) & M_FW_LDST_CMD_CTL)
1797 #define S_FW_LDST_CMD_RPLCPF 0
1798 #define M_FW_LDST_CMD_RPLCPF 0xff
1799 #define V_FW_LDST_CMD_RPLCPF(x) ((x) << S_FW_LDST_CMD_RPLCPF)
1800 #define G_FW_LDST_CMD_RPLCPF(x) \
1801 (((x) >> S_FW_LDST_CMD_RPLCPF) & M_FW_LDST_CMD_RPLCPF)
1803 #define S_FW_LDST_CMD_CTRL 7
1804 #define M_FW_LDST_CMD_CTRL 0x1
1805 #define V_FW_LDST_CMD_CTRL(x) ((x) << S_FW_LDST_CMD_CTRL)
1806 #define G_FW_LDST_CMD_CTRL(x) \
1807 (((x) >> S_FW_LDST_CMD_CTRL) & M_FW_LDST_CMD_CTRL)
1808 #define F_FW_LDST_CMD_CTRL V_FW_LDST_CMD_CTRL(1U)
1810 #define S_FW_LDST_CMD_LC 4
1811 #define M_FW_LDST_CMD_LC 0x1
1812 #define V_FW_LDST_CMD_LC(x) ((x) << S_FW_LDST_CMD_LC)
1813 #define G_FW_LDST_CMD_LC(x) (((x) >> S_FW_LDST_CMD_LC) & M_FW_LDST_CMD_LC)
1814 #define F_FW_LDST_CMD_LC V_FW_LDST_CMD_LC(1U)
1816 #define S_FW_LDST_CMD_AI 3
1817 #define M_FW_LDST_CMD_AI 0x1
1818 #define V_FW_LDST_CMD_AI(x) ((x) << S_FW_LDST_CMD_AI)
1819 #define G_FW_LDST_CMD_AI(x) (((x) >> S_FW_LDST_CMD_AI) & M_FW_LDST_CMD_AI)
1820 #define F_FW_LDST_CMD_AI V_FW_LDST_CMD_AI(1U)
1822 #define S_FW_LDST_CMD_FN 0
1823 #define M_FW_LDST_CMD_FN 0x7
1824 #define V_FW_LDST_CMD_FN(x) ((x) << S_FW_LDST_CMD_FN)
1825 #define G_FW_LDST_CMD_FN(x) (((x) >> S_FW_LDST_CMD_FN) & M_FW_LDST_CMD_FN)
1827 #define S_FW_LDST_CMD_SELECT 4
1828 #define M_FW_LDST_CMD_SELECT 0xf
1829 #define V_FW_LDST_CMD_SELECT(x) ((x) << S_FW_LDST_CMD_SELECT)
1830 #define G_FW_LDST_CMD_SELECT(x) \
1831 (((x) >> S_FW_LDST_CMD_SELECT) & M_FW_LDST_CMD_SELECT)
1833 #define S_FW_LDST_CMD_NACCESS 0
1834 #define M_FW_LDST_CMD_NACCESS 0xf
1835 #define V_FW_LDST_CMD_NACCESS(x) ((x) << S_FW_LDST_CMD_NACCESS)
1836 #define G_FW_LDST_CMD_NACCESS(x) \
1837 (((x) >> S_FW_LDST_CMD_NACCESS) & M_FW_LDST_CMD_NACCESS)
1839 #define S_FW_LDST_CMD_NSET 14
1840 #define M_FW_LDST_CMD_NSET 0x3
1841 #define V_FW_LDST_CMD_NSET(x) ((x) << S_FW_LDST_CMD_NSET)
1842 #define G_FW_LDST_CMD_NSET(x) \
1843 (((x) >> S_FW_LDST_CMD_NSET) & M_FW_LDST_CMD_NSET)
1845 #define S_FW_LDST_CMD_PID 6
1846 #define M_FW_LDST_CMD_PID 0x3
1847 #define V_FW_LDST_CMD_PID(x) ((x) << S_FW_LDST_CMD_PID)
1848 #define G_FW_LDST_CMD_PID(x) \
1849 (((x) >> S_FW_LDST_CMD_PID) & M_FW_LDST_CMD_PID)
1851 struct fw_reset_cmd {
1853 __be32 retval_len16;
1858 struct fw_hello_cmd {
1860 __be32 retval_len16;
1861 __be32 err_to_mbasyncnot;
1865 #define S_FW_HELLO_CMD_ERR 31
1866 #define M_FW_HELLO_CMD_ERR 0x1
1867 #define V_FW_HELLO_CMD_ERR(x) ((x) << S_FW_HELLO_CMD_ERR)
1868 #define G_FW_HELLO_CMD_ERR(x) \
1869 (((x) >> S_FW_HELLO_CMD_ERR) & M_FW_HELLO_CMD_ERR)
1870 #define F_FW_HELLO_CMD_ERR V_FW_HELLO_CMD_ERR(1U)
1872 #define S_FW_HELLO_CMD_INIT 30
1873 #define M_FW_HELLO_CMD_INIT 0x1
1874 #define V_FW_HELLO_CMD_INIT(x) ((x) << S_FW_HELLO_CMD_INIT)
1875 #define G_FW_HELLO_CMD_INIT(x) \
1876 (((x) >> S_FW_HELLO_CMD_INIT) & M_FW_HELLO_CMD_INIT)
1877 #define F_FW_HELLO_CMD_INIT V_FW_HELLO_CMD_INIT(1U)
1879 #define S_FW_HELLO_CMD_MASTERDIS 29
1880 #define M_FW_HELLO_CMD_MASTERDIS 0x1
1881 #define V_FW_HELLO_CMD_MASTERDIS(x) ((x) << S_FW_HELLO_CMD_MASTERDIS)
1882 #define G_FW_HELLO_CMD_MASTERDIS(x) \
1883 (((x) >> S_FW_HELLO_CMD_MASTERDIS) & M_FW_HELLO_CMD_MASTERDIS)
1884 #define F_FW_HELLO_CMD_MASTERDIS V_FW_HELLO_CMD_MASTERDIS(1U)
1886 #define S_FW_HELLO_CMD_MASTERFORCE 28
1887 #define M_FW_HELLO_CMD_MASTERFORCE 0x1
1888 #define V_FW_HELLO_CMD_MASTERFORCE(x) ((x) << S_FW_HELLO_CMD_MASTERFORCE)
1889 #define G_FW_HELLO_CMD_MASTERFORCE(x) \
1890 (((x) >> S_FW_HELLO_CMD_MASTERFORCE) & M_FW_HELLO_CMD_MASTERFORCE)
1891 #define F_FW_HELLO_CMD_MASTERFORCE V_FW_HELLO_CMD_MASTERFORCE(1U)
1893 #define S_FW_HELLO_CMD_MBMASTER 24
1894 #define M_FW_HELLO_CMD_MBMASTER 0xf
1895 #define V_FW_HELLO_CMD_MBMASTER(x) ((x) << S_FW_HELLO_CMD_MBMASTER)
1896 #define G_FW_HELLO_CMD_MBMASTER(x) \
1897 (((x) >> S_FW_HELLO_CMD_MBMASTER) & M_FW_HELLO_CMD_MBMASTER)
1899 #define S_FW_HELLO_CMD_MBASYNCNOTINT 23
1900 #define M_FW_HELLO_CMD_MBASYNCNOTINT 0x1
1901 #define V_FW_HELLO_CMD_MBASYNCNOTINT(x) ((x) << S_FW_HELLO_CMD_MBASYNCNOTINT)
1902 #define G_FW_HELLO_CMD_MBASYNCNOTINT(x) \
1903 (((x) >> S_FW_HELLO_CMD_MBASYNCNOTINT) & M_FW_HELLO_CMD_MBASYNCNOTINT)
1904 #define F_FW_HELLO_CMD_MBASYNCNOTINT V_FW_HELLO_CMD_MBASYNCNOTINT(1U)
1906 #define S_FW_HELLO_CMD_MBASYNCNOT 20
1907 #define M_FW_HELLO_CMD_MBASYNCNOT 0x7
1908 #define V_FW_HELLO_CMD_MBASYNCNOT(x) ((x) << S_FW_HELLO_CMD_MBASYNCNOT)
1909 #define G_FW_HELLO_CMD_MBASYNCNOT(x) \
1910 (((x) >> S_FW_HELLO_CMD_MBASYNCNOT) & M_FW_HELLO_CMD_MBASYNCNOT)
1914 __be32 retval_len16;
1918 struct fw_initialize_cmd {
1920 __be32 retval_len16;
1924 enum fw_caps_config_hm {
1925 FW_CAPS_CONFIG_HM_PCIE = 0x00000001,
1926 FW_CAPS_CONFIG_HM_PL = 0x00000002,
1927 FW_CAPS_CONFIG_HM_SGE = 0x00000004,
1928 FW_CAPS_CONFIG_HM_CIM = 0x00000008,
1929 FW_CAPS_CONFIG_HM_ULPTX = 0x00000010,
1930 FW_CAPS_CONFIG_HM_TP = 0x00000020,
1931 FW_CAPS_CONFIG_HM_ULPRX = 0x00000040,
1932 FW_CAPS_CONFIG_HM_PMRX = 0x00000080,
1933 FW_CAPS_CONFIG_HM_PMTX = 0x00000100,
1934 FW_CAPS_CONFIG_HM_MC = 0x00000200,
1935 FW_CAPS_CONFIG_HM_LE = 0x00000400,
1936 FW_CAPS_CONFIG_HM_MPS = 0x00000800,
1937 FW_CAPS_CONFIG_HM_XGMAC = 0x00001000,
1938 FW_CAPS_CONFIG_HM_CPLSWITCH = 0x00002000,
1939 FW_CAPS_CONFIG_HM_T4DBG = 0x00004000,
1940 FW_CAPS_CONFIG_HM_MI = 0x00008000,
1941 FW_CAPS_CONFIG_HM_I2CM = 0x00010000,
1942 FW_CAPS_CONFIG_HM_NCSI = 0x00020000,
1943 FW_CAPS_CONFIG_HM_SMB = 0x00040000,
1944 FW_CAPS_CONFIG_HM_MA = 0x00080000,
1945 FW_CAPS_CONFIG_HM_EDRAM = 0x00100000,
1946 FW_CAPS_CONFIG_HM_PMU = 0x00200000,
1947 FW_CAPS_CONFIG_HM_UART = 0x00400000,
1948 FW_CAPS_CONFIG_HM_SF = 0x00800000,
1952 * The VF Register Map.
1954 * The Scatter Gather Engine (SGE), Multiport Support module (MPS), PIO Local
1955 * bus module (PL) and CPU Interface Module (CIM) components are mapped via
1956 * the Slice to Module Map Table (see below) in the Physical Function Register
1957 * Map. The Mail Box Data (MBDATA) range is mapped via the PCI-E Mailbox Base
1958 * and Offset registers in the PF Register Map. The MBDATA base address is
1959 * quite constrained as it determines the Mailbox Data addresses for both PFs
1960 * and VFs, and therefore must fit in both the VF and PF Register Maps without
1961 * overlapping other registers.
1963 #define FW_T4VF_SGE_BASE_ADDR 0x0000
1964 #define FW_T4VF_MPS_BASE_ADDR 0x0100
1965 #define FW_T4VF_PL_BASE_ADDR 0x0200
1966 #define FW_T4VF_MBDATA_BASE_ADDR 0x0240
1967 #define FW_T4VF_CIM_BASE_ADDR 0x0300
1969 #define FW_T4VF_REGMAP_START 0x0000
1970 #define FW_T4VF_REGMAP_SIZE 0x0400
1972 enum fw_caps_config_nbm {
1973 FW_CAPS_CONFIG_NBM_IPMI = 0x00000001,
1974 FW_CAPS_CONFIG_NBM_NCSI = 0x00000002,
1977 enum fw_caps_config_link {
1978 FW_CAPS_CONFIG_LINK_PPP = 0x00000001,
1979 FW_CAPS_CONFIG_LINK_QFC = 0x00000002,
1980 FW_CAPS_CONFIG_LINK_DCBX = 0x00000004,
1983 enum fw_caps_config_switch {
1984 FW_CAPS_CONFIG_SWITCH_INGRESS = 0x00000001,
1985 FW_CAPS_CONFIG_SWITCH_EGRESS = 0x00000002,
1988 enum fw_caps_config_nic {
1989 FW_CAPS_CONFIG_NIC = 0x00000001,
1990 FW_CAPS_CONFIG_NIC_VM = 0x00000002,
1991 FW_CAPS_CONFIG_NIC_IDS = 0x00000004,
1994 enum fw_caps_config_toe {
1995 FW_CAPS_CONFIG_TOE = 0x00000001,
1998 enum fw_caps_config_rdma {
1999 FW_CAPS_CONFIG_RDMA_RDDP = 0x00000001,
2000 FW_CAPS_CONFIG_RDMA_RDMAC = 0x00000002,
2003 enum fw_caps_config_iscsi {
2004 FW_CAPS_CONFIG_ISCSI_INITIATOR_PDU = 0x00000001,
2005 FW_CAPS_CONFIG_ISCSI_TARGET_PDU = 0x00000002,
2006 FW_CAPS_CONFIG_ISCSI_INITIATOR_CNXOFLD = 0x00000004,
2007 FW_CAPS_CONFIG_ISCSI_TARGET_CNXOFLD = 0x00000008,
2008 FW_CAPS_CONFIG_ISCSI_INITIATOR_SSNOFLD = 0x00000010,
2009 FW_CAPS_CONFIG_ISCSI_TARGET_SSNOFLD = 0x00000020,
2012 enum fw_caps_config_fcoe {
2013 FW_CAPS_CONFIG_FCOE_INITIATOR = 0x00000001,
2014 FW_CAPS_CONFIG_FCOE_TARGET = 0x00000002,
2015 FW_CAPS_CONFIG_FCOE_CTRL_OFLD = 0x00000004,
2018 struct fw_caps_config_cmd {
2020 __be32 retval_len16;
2038 * params command mnemonics
2040 enum fw_params_mnem {
2041 FW_PARAMS_MNEM_DEV = 1, /* device params */
2042 FW_PARAMS_MNEM_PFVF = 2, /* function params */
2043 FW_PARAMS_MNEM_REG = 3, /* limited register access */
2044 FW_PARAMS_MNEM_DMAQ = 4, /* dma queue params */
2051 enum fw_params_param_dev {
2052 FW_PARAMS_PARAM_DEV_CCLK = 0x00, /* chip core clock in khz */
2053 FW_PARAMS_PARAM_DEV_PORTVEC = 0x01, /* the port vector */
2054 FW_PARAMS_PARAM_DEV_NTID = 0x02, /* reads the number of TIDs
2055 * allocated by the device's
2058 FW_PARAMS_PARAM_DEV_FLOWC_BUFFIFO_SZ = 0x03,
2059 FW_PARAMS_PARAM_DEV_INTVER_NIC = 0x04,
2060 FW_PARAMS_PARAM_DEV_INTVER_VNIC = 0x05,
2061 FW_PARAMS_PARAM_DEV_INTVER_OFLD = 0x06,
2062 FW_PARAMS_PARAM_DEV_INTVER_RI = 0x07,
2063 FW_PARAMS_PARAM_DEV_INTVER_ISCSIPDU = 0x08,
2064 FW_PARAMS_PARAM_DEV_INTVER_ISCSI = 0x09,
2065 FW_PARAMS_PARAM_DEV_INTVER_FCOE = 0x0A,
2066 FW_PARAMS_PARAM_DEV_FWREV = 0x0B,
2067 FW_PARAMS_PARAM_DEV_TPREV = 0x0C,
2071 * physical and virtual function parameters
2073 enum fw_params_param_pfvf {
2074 FW_PARAMS_PARAM_PFVF_RWXCAPS = 0x00,
2075 FW_PARAMS_PARAM_PFVF_ROUTE_START = 0x01,
2076 FW_PARAMS_PARAM_PFVF_ROUTE_END = 0x02,
2077 FW_PARAMS_PARAM_PFVF_CLIP_START = 0x03,
2078 FW_PARAMS_PARAM_PFVF_CLIP_END = 0x04,
2079 FW_PARAMS_PARAM_PFVF_FILTER_START = 0x05,
2080 FW_PARAMS_PARAM_PFVF_FILTER_END = 0x06,
2081 FW_PARAMS_PARAM_PFVF_SERVER_START = 0x07,
2082 FW_PARAMS_PARAM_PFVF_SERVER_END = 0x08,
2083 FW_PARAMS_PARAM_PFVF_TDDP_START = 0x09,
2084 FW_PARAMS_PARAM_PFVF_TDDP_END = 0x0A,
2085 FW_PARAMS_PARAM_PFVF_ISCSI_START = 0x0B,
2086 FW_PARAMS_PARAM_PFVF_ISCSI_END = 0x0C,
2087 FW_PARAMS_PARAM_PFVF_STAG_START = 0x0D,
2088 FW_PARAMS_PARAM_PFVF_STAG_END = 0x0E,
2089 FW_PARAMS_PARAM_PFVF_RQ_START = 0x1F,
2090 FW_PARAMS_PARAM_PFVF_RQ_END = 0x10,
2091 FW_PARAMS_PARAM_PFVF_PBL_START = 0x11,
2092 FW_PARAMS_PARAM_PFVF_PBL_END = 0x12,
2093 FW_PARAMS_PARAM_PFVF_L2T_START = 0x13,
2094 FW_PARAMS_PARAM_PFVF_L2T_END = 0x14,
2095 FW_PARAMS_PARAM_PFVF_SQRQ_START = 0x15,
2096 FW_PARAMS_PARAM_PFVF_SQRQ_END = 0x16,
2097 FW_PARAMS_PARAM_PFVF_CQ_START = 0x17,
2098 FW_PARAMS_PARAM_PFVF_CQ_END = 0x18,
2099 FW_PARAMS_PARAM_PFVF_SCHEDCLASS_ETH = 0x20,
2100 FW_PARAMS_PARAM_PFVF_VIID = 0x24,
2101 FW_PARAMS_PARAM_PFVF_CPMASK = 0x25,
2102 FW_PARAMS_PARAM_PFVF_OCQ_START = 0x26,
2103 FW_PARAMS_PARAM_PFVF_OCQ_END = 0x27,
2104 FW_PARAMS_PARAM_PFVF_CONM_MAP = 0x28,
2105 FW_PARAMS_PARAM_PFVF_IQFLINT_START = 0x29,
2106 FW_PARAMS_PARAM_PFVF_IQFLINT_END = 0x2A,
2107 FW_PARAMS_PARAM_PFVF_EQ_START = 0x2B,
2108 FW_PARAMS_PARAM_PFVF_EQ_END = 0x2C
2112 * dma queue parameters
2114 enum fw_params_param_dmaq {
2115 FW_PARAMS_PARAM_DMAQ_IQ_DCAEN_DCACPU = 0x00,
2116 FW_PARAMS_PARAM_DMAQ_IQ_INTCNTTHRESH = 0x01,
2117 FW_PARAMS_PARAM_DMAQ_EQ_CMPLIQID_MNGT = 0x10,
2118 FW_PARAMS_PARAM_DMAQ_EQ_CMPLIQID_CTRL = 0x11,
2119 FW_PARAMS_PARAM_DMAQ_EQ_SCHEDCLASS_ETH = 0x12,
2122 #define S_FW_PARAMS_MNEM 24
2123 #define M_FW_PARAMS_MNEM 0xff
2124 #define V_FW_PARAMS_MNEM(x) ((x) << S_FW_PARAMS_MNEM)
2125 #define G_FW_PARAMS_MNEM(x) \
2126 (((x) >> S_FW_PARAMS_MNEM) & M_FW_PARAMS_MNEM)
2128 #define S_FW_PARAMS_PARAM_X 16
2129 #define M_FW_PARAMS_PARAM_X 0xff
2130 #define V_FW_PARAMS_PARAM_X(x) ((x) << S_FW_PARAMS_PARAM_X)
2131 #define G_FW_PARAMS_PARAM_X(x) \
2132 (((x) >> S_FW_PARAMS_PARAM_X) & M_FW_PARAMS_PARAM_X)
2134 #define S_FW_PARAMS_PARAM_Y 8
2135 #define M_FW_PARAMS_PARAM_Y 0xff
2136 #define V_FW_PARAMS_PARAM_Y(x) ((x) << S_FW_PARAMS_PARAM_Y)
2137 #define G_FW_PARAMS_PARAM_Y(x) \
2138 (((x) >> S_FW_PARAMS_PARAM_Y) & M_FW_PARAMS_PARAM_Y)
2140 #define S_FW_PARAMS_PARAM_Z 0
2141 #define M_FW_PARAMS_PARAM_Z 0xff
2142 #define V_FW_PARAMS_PARAM_Z(x) ((x) << S_FW_PARAMS_PARAM_Z)
2143 #define G_FW_PARAMS_PARAM_Z(x) \
2144 (((x) >> S_FW_PARAMS_PARAM_Z) & M_FW_PARAMS_PARAM_Z)
2146 #define S_FW_PARAMS_PARAM_XYZ 0
2147 #define M_FW_PARAMS_PARAM_XYZ 0xffffff
2148 #define V_FW_PARAMS_PARAM_XYZ(x) ((x) << S_FW_PARAMS_PARAM_XYZ)
2149 #define G_FW_PARAMS_PARAM_XYZ(x) \
2150 (((x) >> S_FW_PARAMS_PARAM_XYZ) & M_FW_PARAMS_PARAM_XYZ)
2152 #define S_FW_PARAMS_PARAM_YZ 0
2153 #define M_FW_PARAMS_PARAM_YZ 0xffff
2154 #define V_FW_PARAMS_PARAM_YZ(x) ((x) << S_FW_PARAMS_PARAM_YZ)
2155 #define G_FW_PARAMS_PARAM_YZ(x) \
2156 (((x) >> S_FW_PARAMS_PARAM_YZ) & M_FW_PARAMS_PARAM_YZ)
2158 struct fw_params_cmd {
2160 __be32 retval_len16;
2161 struct fw_params_param {
2167 #define S_FW_PARAMS_CMD_PFN 8
2168 #define M_FW_PARAMS_CMD_PFN 0x7
2169 #define V_FW_PARAMS_CMD_PFN(x) ((x) << S_FW_PARAMS_CMD_PFN)
2170 #define G_FW_PARAMS_CMD_PFN(x) \
2171 (((x) >> S_FW_PARAMS_CMD_PFN) & M_FW_PARAMS_CMD_PFN)
2173 #define S_FW_PARAMS_CMD_VFN 0
2174 #define M_FW_PARAMS_CMD_VFN 0xff
2175 #define V_FW_PARAMS_CMD_VFN(x) ((x) << S_FW_PARAMS_CMD_VFN)
2176 #define G_FW_PARAMS_CMD_VFN(x) \
2177 (((x) >> S_FW_PARAMS_CMD_VFN) & M_FW_PARAMS_CMD_VFN)
2179 struct fw_pfvf_cmd {
2181 __be32 retval_len16;
2182 __be32 niqflint_niq;
2184 __be32 tc_to_nexactf;
2185 __be32 r_caps_to_nethctrl;
2191 #define S_FW_PFVF_CMD_PFN 8
2192 #define M_FW_PFVF_CMD_PFN 0x7
2193 #define V_FW_PFVF_CMD_PFN(x) ((x) << S_FW_PFVF_CMD_PFN)
2194 #define G_FW_PFVF_CMD_PFN(x) \
2195 (((x) >> S_FW_PFVF_CMD_PFN) & M_FW_PFVF_CMD_PFN)
2197 #define S_FW_PFVF_CMD_VFN 0
2198 #define M_FW_PFVF_CMD_VFN 0xff
2199 #define V_FW_PFVF_CMD_VFN(x) ((x) << S_FW_PFVF_CMD_VFN)
2200 #define G_FW_PFVF_CMD_VFN(x) \
2201 (((x) >> S_FW_PFVF_CMD_VFN) & M_FW_PFVF_CMD_VFN)
2203 #define S_FW_PFVF_CMD_NIQFLINT 20
2204 #define M_FW_PFVF_CMD_NIQFLINT 0xfff
2205 #define V_FW_PFVF_CMD_NIQFLINT(x) ((x) << S_FW_PFVF_CMD_NIQFLINT)
2206 #define G_FW_PFVF_CMD_NIQFLINT(x) \
2207 (((x) >> S_FW_PFVF_CMD_NIQFLINT) & M_FW_PFVF_CMD_NIQFLINT)
2209 #define S_FW_PFVF_CMD_NIQ 0
2210 #define M_FW_PFVF_CMD_NIQ 0xfffff
2211 #define V_FW_PFVF_CMD_NIQ(x) ((x) << S_FW_PFVF_CMD_NIQ)
2212 #define G_FW_PFVF_CMD_NIQ(x) \
2213 (((x) >> S_FW_PFVF_CMD_NIQ) & M_FW_PFVF_CMD_NIQ)
2215 #define S_FW_PFVF_CMD_TYPE 31
2216 #define M_FW_PFVF_CMD_TYPE 0x1
2217 #define V_FW_PFVF_CMD_TYPE(x) ((x) << S_FW_PFVF_CMD_TYPE)
2218 #define G_FW_PFVF_CMD_TYPE(x) \
2219 (((x) >> S_FW_PFVF_CMD_TYPE) & M_FW_PFVF_CMD_TYPE)
2220 #define F_FW_PFVF_CMD_TYPE V_FW_PFVF_CMD_TYPE(1U)
2222 #define S_FW_PFVF_CMD_CMASK 24
2223 #define M_FW_PFVF_CMD_CMASK 0xf
2224 #define V_FW_PFVF_CMD_CMASK(x) ((x) << S_FW_PFVF_CMD_CMASK)
2225 #define G_FW_PFVF_CMD_CMASK(x) \
2226 (((x) >> S_FW_PFVF_CMD_CMASK) & M_FW_PFVF_CMD_CMASK)
2228 #define S_FW_PFVF_CMD_PMASK 20
2229 #define M_FW_PFVF_CMD_PMASK 0xf
2230 #define V_FW_PFVF_CMD_PMASK(x) ((x) << S_FW_PFVF_CMD_PMASK)
2231 #define G_FW_PFVF_CMD_PMASK(x) \
2232 (((x) >> S_FW_PFVF_CMD_PMASK) & M_FW_PFVF_CMD_PMASK)
2234 #define S_FW_PFVF_CMD_NEQ 0
2235 #define M_FW_PFVF_CMD_NEQ 0xfffff
2236 #define V_FW_PFVF_CMD_NEQ(x) ((x) << S_FW_PFVF_CMD_NEQ)
2237 #define G_FW_PFVF_CMD_NEQ(x) \
2238 (((x) >> S_FW_PFVF_CMD_NEQ) & M_FW_PFVF_CMD_NEQ)
2240 #define S_FW_PFVF_CMD_TC 24
2241 #define M_FW_PFVF_CMD_TC 0xff
2242 #define V_FW_PFVF_CMD_TC(x) ((x) << S_FW_PFVF_CMD_TC)
2243 #define G_FW_PFVF_CMD_TC(x) (((x) >> S_FW_PFVF_CMD_TC) & M_FW_PFVF_CMD_TC)
2245 #define S_FW_PFVF_CMD_NVI 16
2246 #define M_FW_PFVF_CMD_NVI 0xff
2247 #define V_FW_PFVF_CMD_NVI(x) ((x) << S_FW_PFVF_CMD_NVI)
2248 #define G_FW_PFVF_CMD_NVI(x) \
2249 (((x) >> S_FW_PFVF_CMD_NVI) & M_FW_PFVF_CMD_NVI)
2251 #define S_FW_PFVF_CMD_NEXACTF 0
2252 #define M_FW_PFVF_CMD_NEXACTF 0xffff
2253 #define V_FW_PFVF_CMD_NEXACTF(x) ((x) << S_FW_PFVF_CMD_NEXACTF)
2254 #define G_FW_PFVF_CMD_NEXACTF(x) \
2255 (((x) >> S_FW_PFVF_CMD_NEXACTF) & M_FW_PFVF_CMD_NEXACTF)
2257 #define S_FW_PFVF_CMD_R_CAPS 24
2258 #define M_FW_PFVF_CMD_R_CAPS 0xff
2259 #define V_FW_PFVF_CMD_R_CAPS(x) ((x) << S_FW_PFVF_CMD_R_CAPS)
2260 #define G_FW_PFVF_CMD_R_CAPS(x) \
2261 (((x) >> S_FW_PFVF_CMD_R_CAPS) & M_FW_PFVF_CMD_R_CAPS)
2263 #define S_FW_PFVF_CMD_WX_CAPS 16
2264 #define M_FW_PFVF_CMD_WX_CAPS 0xff
2265 #define V_FW_PFVF_CMD_WX_CAPS(x) ((x) << S_FW_PFVF_CMD_WX_CAPS)
2266 #define G_FW_PFVF_CMD_WX_CAPS(x) \
2267 (((x) >> S_FW_PFVF_CMD_WX_CAPS) & M_FW_PFVF_CMD_WX_CAPS)
2269 #define S_FW_PFVF_CMD_NETHCTRL 0
2270 #define M_FW_PFVF_CMD_NETHCTRL 0xffff
2271 #define V_FW_PFVF_CMD_NETHCTRL(x) ((x) << S_FW_PFVF_CMD_NETHCTRL)
2272 #define G_FW_PFVF_CMD_NETHCTRL(x) \
2273 (((x) >> S_FW_PFVF_CMD_NETHCTRL) & M_FW_PFVF_CMD_NETHCTRL)
2275 * ingress queue type; the first 1K ingress queues can have associated 0,
2276 * 1 or 2 free lists and an interrupt, all other ingress queues lack these
2280 FW_IQ_TYPE_FL_INT_CAP,
2281 FW_IQ_TYPE_NO_FL_INT_CAP
2286 __be32 alloc_to_len16;
2291 __be32 type_to_iqandstindex;
2292 __be16 iqdroprss_to_iqesize;
2295 __be32 iqns_to_fl0congen;
2296 __be16 fl0dcaen_to_fl0cidxfthresh;
2299 __be32 fl1cngchmap_to_fl1congen;
2300 __be16 fl1dcaen_to_fl1cidxfthresh;
2305 #define S_FW_IQ_CMD_PFN 8
2306 #define M_FW_IQ_CMD_PFN 0x7
2307 #define V_FW_IQ_CMD_PFN(x) ((x) << S_FW_IQ_CMD_PFN)
2308 #define G_FW_IQ_CMD_PFN(x) (((x) >> S_FW_IQ_CMD_PFN) & M_FW_IQ_CMD_PFN)
2310 #define S_FW_IQ_CMD_VFN 0
2311 #define M_FW_IQ_CMD_VFN 0xff
2312 #define V_FW_IQ_CMD_VFN(x) ((x) << S_FW_IQ_CMD_VFN)
2313 #define G_FW_IQ_CMD_VFN(x) (((x) >> S_FW_IQ_CMD_VFN) & M_FW_IQ_CMD_VFN)
2315 #define S_FW_IQ_CMD_ALLOC 31
2316 #define M_FW_IQ_CMD_ALLOC 0x1
2317 #define V_FW_IQ_CMD_ALLOC(x) ((x) << S_FW_IQ_CMD_ALLOC)
2318 #define G_FW_IQ_CMD_ALLOC(x) \
2319 (((x) >> S_FW_IQ_CMD_ALLOC) & M_FW_IQ_CMD_ALLOC)
2320 #define F_FW_IQ_CMD_ALLOC V_FW_IQ_CMD_ALLOC(1U)
2322 #define S_FW_IQ_CMD_FREE 30
2323 #define M_FW_IQ_CMD_FREE 0x1
2324 #define V_FW_IQ_CMD_FREE(x) ((x) << S_FW_IQ_CMD_FREE)
2325 #define G_FW_IQ_CMD_FREE(x) (((x) >> S_FW_IQ_CMD_FREE) & M_FW_IQ_CMD_FREE)
2326 #define F_FW_IQ_CMD_FREE V_FW_IQ_CMD_FREE(1U)
2328 #define S_FW_IQ_CMD_MODIFY 29
2329 #define M_FW_IQ_CMD_MODIFY 0x1
2330 #define V_FW_IQ_CMD_MODIFY(x) ((x) << S_FW_IQ_CMD_MODIFY)
2331 #define G_FW_IQ_CMD_MODIFY(x) \
2332 (((x) >> S_FW_IQ_CMD_MODIFY) & M_FW_IQ_CMD_MODIFY)
2333 #define F_FW_IQ_CMD_MODIFY V_FW_IQ_CMD_MODIFY(1U)
2335 #define S_FW_IQ_CMD_IQSTART 28
2336 #define M_FW_IQ_CMD_IQSTART 0x1
2337 #define V_FW_IQ_CMD_IQSTART(x) ((x) << S_FW_IQ_CMD_IQSTART)
2338 #define G_FW_IQ_CMD_IQSTART(x) \
2339 (((x) >> S_FW_IQ_CMD_IQSTART) & M_FW_IQ_CMD_IQSTART)
2340 #define F_FW_IQ_CMD_IQSTART V_FW_IQ_CMD_IQSTART(1U)
2342 #define S_FW_IQ_CMD_IQSTOP 27
2343 #define M_FW_IQ_CMD_IQSTOP 0x1
2344 #define V_FW_IQ_CMD_IQSTOP(x) ((x) << S_FW_IQ_CMD_IQSTOP)
2345 #define G_FW_IQ_CMD_IQSTOP(x) \
2346 (((x) >> S_FW_IQ_CMD_IQSTOP) & M_FW_IQ_CMD_IQSTOP)
2347 #define F_FW_IQ_CMD_IQSTOP V_FW_IQ_CMD_IQSTOP(1U)
2349 #define S_FW_IQ_CMD_TYPE 29
2350 #define M_FW_IQ_CMD_TYPE 0x7
2351 #define V_FW_IQ_CMD_TYPE(x) ((x) << S_FW_IQ_CMD_TYPE)
2352 #define G_FW_IQ_CMD_TYPE(x) (((x) >> S_FW_IQ_CMD_TYPE) & M_FW_IQ_CMD_TYPE)
2354 #define S_FW_IQ_CMD_IQASYNCH 28
2355 #define M_FW_IQ_CMD_IQASYNCH 0x1
2356 #define V_FW_IQ_CMD_IQASYNCH(x) ((x) << S_FW_IQ_CMD_IQASYNCH)
2357 #define G_FW_IQ_CMD_IQASYNCH(x) \
2358 (((x) >> S_FW_IQ_CMD_IQASYNCH) & M_FW_IQ_CMD_IQASYNCH)
2359 #define F_FW_IQ_CMD_IQASYNCH V_FW_IQ_CMD_IQASYNCH(1U)
2361 #define S_FW_IQ_CMD_VIID 16
2362 #define M_FW_IQ_CMD_VIID 0xfff
2363 #define V_FW_IQ_CMD_VIID(x) ((x) << S_FW_IQ_CMD_VIID)
2364 #define G_FW_IQ_CMD_VIID(x) (((x) >> S_FW_IQ_CMD_VIID) & M_FW_IQ_CMD_VIID)
2366 #define S_FW_IQ_CMD_IQANDST 15
2367 #define M_FW_IQ_CMD_IQANDST 0x1
2368 #define V_FW_IQ_CMD_IQANDST(x) ((x) << S_FW_IQ_CMD_IQANDST)
2369 #define G_FW_IQ_CMD_IQANDST(x) \
2370 (((x) >> S_FW_IQ_CMD_IQANDST) & M_FW_IQ_CMD_IQANDST)
2371 #define F_FW_IQ_CMD_IQANDST V_FW_IQ_CMD_IQANDST(1U)
2373 #define S_FW_IQ_CMD_IQANUS 14
2374 #define M_FW_IQ_CMD_IQANUS 0x1
2375 #define V_FW_IQ_CMD_IQANUS(x) ((x) << S_FW_IQ_CMD_IQANUS)
2376 #define G_FW_IQ_CMD_IQANUS(x) \
2377 (((x) >> S_FW_IQ_CMD_IQANUS) & M_FW_IQ_CMD_IQANUS)
2378 #define F_FW_IQ_CMD_IQANUS V_FW_IQ_CMD_IQANUS(1U)
2380 #define S_FW_IQ_CMD_IQANUD 12
2381 #define M_FW_IQ_CMD_IQANUD 0x3
2382 #define V_FW_IQ_CMD_IQANUD(x) ((x) << S_FW_IQ_CMD_IQANUD)
2383 #define G_FW_IQ_CMD_IQANUD(x) \
2384 (((x) >> S_FW_IQ_CMD_IQANUD) & M_FW_IQ_CMD_IQANUD)
2386 #define S_FW_IQ_CMD_IQANDSTINDEX 0
2387 #define M_FW_IQ_CMD_IQANDSTINDEX 0xfff
2388 #define V_FW_IQ_CMD_IQANDSTINDEX(x) ((x) << S_FW_IQ_CMD_IQANDSTINDEX)
2389 #define G_FW_IQ_CMD_IQANDSTINDEX(x) \
2390 (((x) >> S_FW_IQ_CMD_IQANDSTINDEX) & M_FW_IQ_CMD_IQANDSTINDEX)
2392 #define S_FW_IQ_CMD_IQDROPRSS 15
2393 #define M_FW_IQ_CMD_IQDROPRSS 0x1
2394 #define V_FW_IQ_CMD_IQDROPRSS(x) ((x) << S_FW_IQ_CMD_IQDROPRSS)
2395 #define G_FW_IQ_CMD_IQDROPRSS(x) \
2396 (((x) >> S_FW_IQ_CMD_IQDROPRSS) & M_FW_IQ_CMD_IQDROPRSS)
2397 #define F_FW_IQ_CMD_IQDROPRSS V_FW_IQ_CMD_IQDROPRSS(1U)
2399 #define S_FW_IQ_CMD_IQGTSMODE 14
2400 #define M_FW_IQ_CMD_IQGTSMODE 0x1
2401 #define V_FW_IQ_CMD_IQGTSMODE(x) ((x) << S_FW_IQ_CMD_IQGTSMODE)
2402 #define G_FW_IQ_CMD_IQGTSMODE(x) \
2403 (((x) >> S_FW_IQ_CMD_IQGTSMODE) & M_FW_IQ_CMD_IQGTSMODE)
2404 #define F_FW_IQ_CMD_IQGTSMODE V_FW_IQ_CMD_IQGTSMODE(1U)
2406 #define S_FW_IQ_CMD_IQPCIECH 12
2407 #define M_FW_IQ_CMD_IQPCIECH 0x3
2408 #define V_FW_IQ_CMD_IQPCIECH(x) ((x) << S_FW_IQ_CMD_IQPCIECH)
2409 #define G_FW_IQ_CMD_IQPCIECH(x) \
2410 (((x) >> S_FW_IQ_CMD_IQPCIECH) & M_FW_IQ_CMD_IQPCIECH)
2412 #define S_FW_IQ_CMD_IQDCAEN 11
2413 #define M_FW_IQ_CMD_IQDCAEN 0x1
2414 #define V_FW_IQ_CMD_IQDCAEN(x) ((x) << S_FW_IQ_CMD_IQDCAEN)
2415 #define G_FW_IQ_CMD_IQDCAEN(x) \
2416 (((x) >> S_FW_IQ_CMD_IQDCAEN) & M_FW_IQ_CMD_IQDCAEN)
2417 #define F_FW_IQ_CMD_IQDCAEN V_FW_IQ_CMD_IQDCAEN(1U)
2419 #define S_FW_IQ_CMD_IQDCACPU 6
2420 #define M_FW_IQ_CMD_IQDCACPU 0x1f
2421 #define V_FW_IQ_CMD_IQDCACPU(x) ((x) << S_FW_IQ_CMD_IQDCACPU)
2422 #define G_FW_IQ_CMD_IQDCACPU(x) \
2423 (((x) >> S_FW_IQ_CMD_IQDCACPU) & M_FW_IQ_CMD_IQDCACPU)
2425 #define S_FW_IQ_CMD_IQINTCNTTHRESH 4
2426 #define M_FW_IQ_CMD_IQINTCNTTHRESH 0x3
2427 #define V_FW_IQ_CMD_IQINTCNTTHRESH(x) ((x) << S_FW_IQ_CMD_IQINTCNTTHRESH)
2428 #define G_FW_IQ_CMD_IQINTCNTTHRESH(x) \
2429 (((x) >> S_FW_IQ_CMD_IQINTCNTTHRESH) & M_FW_IQ_CMD_IQINTCNTTHRESH)
2431 #define S_FW_IQ_CMD_IQO 3
2432 #define M_FW_IQ_CMD_IQO 0x1
2433 #define V_FW_IQ_CMD_IQO(x) ((x) << S_FW_IQ_CMD_IQO)
2434 #define G_FW_IQ_CMD_IQO(x) (((x) >> S_FW_IQ_CMD_IQO) & M_FW_IQ_CMD_IQO)
2435 #define F_FW_IQ_CMD_IQO V_FW_IQ_CMD_IQO(1U)
2437 #define S_FW_IQ_CMD_IQCPRIO 2
2438 #define M_FW_IQ_CMD_IQCPRIO 0x1
2439 #define V_FW_IQ_CMD_IQCPRIO(x) ((x) << S_FW_IQ_CMD_IQCPRIO)
2440 #define G_FW_IQ_CMD_IQCPRIO(x) \
2441 (((x) >> S_FW_IQ_CMD_IQCPRIO) & M_FW_IQ_CMD_IQCPRIO)
2442 #define F_FW_IQ_CMD_IQCPRIO V_FW_IQ_CMD_IQCPRIO(1U)
2444 #define S_FW_IQ_CMD_IQESIZE 0
2445 #define M_FW_IQ_CMD_IQESIZE 0x3
2446 #define V_FW_IQ_CMD_IQESIZE(x) ((x) << S_FW_IQ_CMD_IQESIZE)
2447 #define G_FW_IQ_CMD_IQESIZE(x) \
2448 (((x) >> S_FW_IQ_CMD_IQESIZE) & M_FW_IQ_CMD_IQESIZE)
2450 #define S_FW_IQ_CMD_IQNS 31
2451 #define M_FW_IQ_CMD_IQNS 0x1
2452 #define V_FW_IQ_CMD_IQNS(x) ((x) << S_FW_IQ_CMD_IQNS)
2453 #define G_FW_IQ_CMD_IQNS(x) (((x) >> S_FW_IQ_CMD_IQNS) & M_FW_IQ_CMD_IQNS)
2454 #define F_FW_IQ_CMD_IQNS V_FW_IQ_CMD_IQNS(1U)
2456 #define S_FW_IQ_CMD_IQRO 30
2457 #define M_FW_IQ_CMD_IQRO 0x1
2458 #define V_FW_IQ_CMD_IQRO(x) ((x) << S_FW_IQ_CMD_IQRO)
2459 #define G_FW_IQ_CMD_IQRO(x) (((x) >> S_FW_IQ_CMD_IQRO) & M_FW_IQ_CMD_IQRO)
2460 #define F_FW_IQ_CMD_IQRO V_FW_IQ_CMD_IQRO(1U)
2462 #define S_FW_IQ_CMD_IQFLINTIQHSEN 28
2463 #define M_FW_IQ_CMD_IQFLINTIQHSEN 0x3
2464 #define V_FW_IQ_CMD_IQFLINTIQHSEN(x) ((x) << S_FW_IQ_CMD_IQFLINTIQHSEN)
2465 #define G_FW_IQ_CMD_IQFLINTIQHSEN(x) \
2466 (((x) >> S_FW_IQ_CMD_IQFLINTIQHSEN) & M_FW_IQ_CMD_IQFLINTIQHSEN)
2468 #define S_FW_IQ_CMD_IQFLINTCONGEN 27
2469 #define M_FW_IQ_CMD_IQFLINTCONGEN 0x1
2470 #define V_FW_IQ_CMD_IQFLINTCONGEN(x) ((x) << S_FW_IQ_CMD_IQFLINTCONGEN)
2471 #define G_FW_IQ_CMD_IQFLINTCONGEN(x) \
2472 (((x) >> S_FW_IQ_CMD_IQFLINTCONGEN) & M_FW_IQ_CMD_IQFLINTCONGEN)
2473 #define F_FW_IQ_CMD_IQFLINTCONGEN V_FW_IQ_CMD_IQFLINTCONGEN(1U)
2475 #define S_FW_IQ_CMD_IQFLINTISCSIC 26
2476 #define M_FW_IQ_CMD_IQFLINTISCSIC 0x1
2477 #define V_FW_IQ_CMD_IQFLINTISCSIC(x) ((x) << S_FW_IQ_CMD_IQFLINTISCSIC)
2478 #define G_FW_IQ_CMD_IQFLINTISCSIC(x) \
2479 (((x) >> S_FW_IQ_CMD_IQFLINTISCSIC) & M_FW_IQ_CMD_IQFLINTISCSIC)
2480 #define F_FW_IQ_CMD_IQFLINTISCSIC V_FW_IQ_CMD_IQFLINTISCSIC(1U)
2482 #define S_FW_IQ_CMD_FL0CNGCHMAP 20
2483 #define M_FW_IQ_CMD_FL0CNGCHMAP 0xf
2484 #define V_FW_IQ_CMD_FL0CNGCHMAP(x) ((x) << S_FW_IQ_CMD_FL0CNGCHMAP)
2485 #define G_FW_IQ_CMD_FL0CNGCHMAP(x) \
2486 (((x) >> S_FW_IQ_CMD_FL0CNGCHMAP) & M_FW_IQ_CMD_FL0CNGCHMAP)
2488 #define S_FW_IQ_CMD_FL0CACHELOCK 15
2489 #define M_FW_IQ_CMD_FL0CACHELOCK 0x1
2490 #define V_FW_IQ_CMD_FL0CACHELOCK(x) ((x) << S_FW_IQ_CMD_FL0CACHELOCK)
2491 #define G_FW_IQ_CMD_FL0CACHELOCK(x) \
2492 (((x) >> S_FW_IQ_CMD_FL0CACHELOCK) & M_FW_IQ_CMD_FL0CACHELOCK)
2493 #define F_FW_IQ_CMD_FL0CACHELOCK V_FW_IQ_CMD_FL0CACHELOCK(1U)
2495 #define S_FW_IQ_CMD_FL0DBP 14
2496 #define M_FW_IQ_CMD_FL0DBP 0x1
2497 #define V_FW_IQ_CMD_FL0DBP(x) ((x) << S_FW_IQ_CMD_FL0DBP)
2498 #define G_FW_IQ_CMD_FL0DBP(x) \
2499 (((x) >> S_FW_IQ_CMD_FL0DBP) & M_FW_IQ_CMD_FL0DBP)
2500 #define F_FW_IQ_CMD_FL0DBP V_FW_IQ_CMD_FL0DBP(1U)
2502 #define S_FW_IQ_CMD_FL0DATANS 13
2503 #define M_FW_IQ_CMD_FL0DATANS 0x1
2504 #define V_FW_IQ_CMD_FL0DATANS(x) ((x) << S_FW_IQ_CMD_FL0DATANS)
2505 #define G_FW_IQ_CMD_FL0DATANS(x) \
2506 (((x) >> S_FW_IQ_CMD_FL0DATANS) & M_FW_IQ_CMD_FL0DATANS)
2507 #define F_FW_IQ_CMD_FL0DATANS V_FW_IQ_CMD_FL0DATANS(1U)
2509 #define S_FW_IQ_CMD_FL0DATARO 12
2510 #define M_FW_IQ_CMD_FL0DATARO 0x1
2511 #define V_FW_IQ_CMD_FL0DATARO(x) ((x) << S_FW_IQ_CMD_FL0DATARO)
2512 #define G_FW_IQ_CMD_FL0DATARO(x) \
2513 (((x) >> S_FW_IQ_CMD_FL0DATARO) & M_FW_IQ_CMD_FL0DATARO)
2514 #define F_FW_IQ_CMD_FL0DATARO V_FW_IQ_CMD_FL0DATARO(1U)
2516 #define S_FW_IQ_CMD_FL0CONGCIF 11
2517 #define M_FW_IQ_CMD_FL0CONGCIF 0x1
2518 #define V_FW_IQ_CMD_FL0CONGCIF(x) ((x) << S_FW_IQ_CMD_FL0CONGCIF)
2519 #define G_FW_IQ_CMD_FL0CONGCIF(x) \
2520 (((x) >> S_FW_IQ_CMD_FL0CONGCIF) & M_FW_IQ_CMD_FL0CONGCIF)
2521 #define F_FW_IQ_CMD_FL0CONGCIF V_FW_IQ_CMD_FL0CONGCIF(1U)
2523 #define S_FW_IQ_CMD_FL0ONCHIP 10
2524 #define M_FW_IQ_CMD_FL0ONCHIP 0x1
2525 #define V_FW_IQ_CMD_FL0ONCHIP(x) ((x) << S_FW_IQ_CMD_FL0ONCHIP)
2526 #define G_FW_IQ_CMD_FL0ONCHIP(x) \
2527 (((x) >> S_FW_IQ_CMD_FL0ONCHIP) & M_FW_IQ_CMD_FL0ONCHIP)
2528 #define F_FW_IQ_CMD_FL0ONCHIP V_FW_IQ_CMD_FL0ONCHIP(1U)
2530 #define S_FW_IQ_CMD_FL0STATUSPGNS 9
2531 #define M_FW_IQ_CMD_FL0STATUSPGNS 0x1
2532 #define V_FW_IQ_CMD_FL0STATUSPGNS(x) ((x) << S_FW_IQ_CMD_FL0STATUSPGNS)
2533 #define G_FW_IQ_CMD_FL0STATUSPGNS(x) \
2534 (((x) >> S_FW_IQ_CMD_FL0STATUSPGNS) & M_FW_IQ_CMD_FL0STATUSPGNS)
2535 #define F_FW_IQ_CMD_FL0STATUSPGNS V_FW_IQ_CMD_FL0STATUSPGNS(1U)
2537 #define S_FW_IQ_CMD_FL0STATUSPGRO 8
2538 #define M_FW_IQ_CMD_FL0STATUSPGRO 0x1
2539 #define V_FW_IQ_CMD_FL0STATUSPGRO(x) ((x) << S_FW_IQ_CMD_FL0STATUSPGRO)
2540 #define G_FW_IQ_CMD_FL0STATUSPGRO(x) \
2541 (((x) >> S_FW_IQ_CMD_FL0STATUSPGRO) & M_FW_IQ_CMD_FL0STATUSPGRO)
2542 #define F_FW_IQ_CMD_FL0STATUSPGRO V_FW_IQ_CMD_FL0STATUSPGRO(1U)
2544 #define S_FW_IQ_CMD_FL0FETCHNS 7
2545 #define M_FW_IQ_CMD_FL0FETCHNS 0x1
2546 #define V_FW_IQ_CMD_FL0FETCHNS(x) ((x) << S_FW_IQ_CMD_FL0FETCHNS)
2547 #define G_FW_IQ_CMD_FL0FETCHNS(x) \
2548 (((x) >> S_FW_IQ_CMD_FL0FETCHNS) & M_FW_IQ_CMD_FL0FETCHNS)
2549 #define F_FW_IQ_CMD_FL0FETCHNS V_FW_IQ_CMD_FL0FETCHNS(1U)
2551 #define S_FW_IQ_CMD_FL0FETCHRO 6
2552 #define M_FW_IQ_CMD_FL0FETCHRO 0x1
2553 #define V_FW_IQ_CMD_FL0FETCHRO(x) ((x) << S_FW_IQ_CMD_FL0FETCHRO)
2554 #define G_FW_IQ_CMD_FL0FETCHRO(x) \
2555 (((x) >> S_FW_IQ_CMD_FL0FETCHRO) & M_FW_IQ_CMD_FL0FETCHRO)
2556 #define F_FW_IQ_CMD_FL0FETCHRO V_FW_IQ_CMD_FL0FETCHRO(1U)
2558 #define S_FW_IQ_CMD_FL0HOSTFCMODE 4
2559 #define M_FW_IQ_CMD_FL0HOSTFCMODE 0x3
2560 #define V_FW_IQ_CMD_FL0HOSTFCMODE(x) ((x) << S_FW_IQ_CMD_FL0HOSTFCMODE)
2561 #define G_FW_IQ_CMD_FL0HOSTFCMODE(x) \
2562 (((x) >> S_FW_IQ_CMD_FL0HOSTFCMODE) & M_FW_IQ_CMD_FL0HOSTFCMODE)
2564 #define S_FW_IQ_CMD_FL0CPRIO 3
2565 #define M_FW_IQ_CMD_FL0CPRIO 0x1
2566 #define V_FW_IQ_CMD_FL0CPRIO(x) ((x) << S_FW_IQ_CMD_FL0CPRIO)
2567 #define G_FW_IQ_CMD_FL0CPRIO(x) \
2568 (((x) >> S_FW_IQ_CMD_FL0CPRIO) & M_FW_IQ_CMD_FL0CPRIO)
2569 #define F_FW_IQ_CMD_FL0CPRIO V_FW_IQ_CMD_FL0CPRIO(1U)
2571 #define S_FW_IQ_CMD_FL0PADEN 2
2572 #define M_FW_IQ_CMD_FL0PADEN 0x1
2573 #define V_FW_IQ_CMD_FL0PADEN(x) ((x) << S_FW_IQ_CMD_FL0PADEN)
2574 #define G_FW_IQ_CMD_FL0PADEN(x) \
2575 (((x) >> S_FW_IQ_CMD_FL0PADEN) & M_FW_IQ_CMD_FL0PADEN)
2576 #define F_FW_IQ_CMD_FL0PADEN V_FW_IQ_CMD_FL0PADEN(1U)
2578 #define S_FW_IQ_CMD_FL0PACKEN 1
2579 #define M_FW_IQ_CMD_FL0PACKEN 0x1
2580 #define V_FW_IQ_CMD_FL0PACKEN(x) ((x) << S_FW_IQ_CMD_FL0PACKEN)
2581 #define G_FW_IQ_CMD_FL0PACKEN(x) \
2582 (((x) >> S_FW_IQ_CMD_FL0PACKEN) & M_FW_IQ_CMD_FL0PACKEN)
2583 #define F_FW_IQ_CMD_FL0PACKEN V_FW_IQ_CMD_FL0PACKEN(1U)
2585 #define S_FW_IQ_CMD_FL0CONGEN 0
2586 #define M_FW_IQ_CMD_FL0CONGEN 0x1
2587 #define V_FW_IQ_CMD_FL0CONGEN(x) ((x) << S_FW_IQ_CMD_FL0CONGEN)
2588 #define G_FW_IQ_CMD_FL0CONGEN(x) \
2589 (((x) >> S_FW_IQ_CMD_FL0CONGEN) & M_FW_IQ_CMD_FL0CONGEN)
2590 #define F_FW_IQ_CMD_FL0CONGEN V_FW_IQ_CMD_FL0CONGEN(1U)
2592 #define S_FW_IQ_CMD_FL0DCAEN 15
2593 #define M_FW_IQ_CMD_FL0DCAEN 0x1
2594 #define V_FW_IQ_CMD_FL0DCAEN(x) ((x) << S_FW_IQ_CMD_FL0DCAEN)
2595 #define G_FW_IQ_CMD_FL0DCAEN(x) \
2596 (((x) >> S_FW_IQ_CMD_FL0DCAEN) & M_FW_IQ_CMD_FL0DCAEN)
2597 #define F_FW_IQ_CMD_FL0DCAEN V_FW_IQ_CMD_FL0DCAEN(1U)
2599 #define S_FW_IQ_CMD_FL0DCACPU 10
2600 #define M_FW_IQ_CMD_FL0DCACPU 0x1f
2601 #define V_FW_IQ_CMD_FL0DCACPU(x) ((x) << S_FW_IQ_CMD_FL0DCACPU)
2602 #define G_FW_IQ_CMD_FL0DCACPU(x) \
2603 (((x) >> S_FW_IQ_CMD_FL0DCACPU) & M_FW_IQ_CMD_FL0DCACPU)
2605 #define S_FW_IQ_CMD_FL0FBMIN 7
2606 #define M_FW_IQ_CMD_FL0FBMIN 0x7
2607 #define V_FW_IQ_CMD_FL0FBMIN(x) ((x) << S_FW_IQ_CMD_FL0FBMIN)
2608 #define G_FW_IQ_CMD_FL0FBMIN(x) \
2609 (((x) >> S_FW_IQ_CMD_FL0FBMIN) & M_FW_IQ_CMD_FL0FBMIN)
2611 #define S_FW_IQ_CMD_FL0FBMAX 4
2612 #define M_FW_IQ_CMD_FL0FBMAX 0x7
2613 #define V_FW_IQ_CMD_FL0FBMAX(x) ((x) << S_FW_IQ_CMD_FL0FBMAX)
2614 #define G_FW_IQ_CMD_FL0FBMAX(x) \
2615 (((x) >> S_FW_IQ_CMD_FL0FBMAX) & M_FW_IQ_CMD_FL0FBMAX)
2617 #define S_FW_IQ_CMD_FL0CIDXFTHRESHO 3
2618 #define M_FW_IQ_CMD_FL0CIDXFTHRESHO 0x1
2619 #define V_FW_IQ_CMD_FL0CIDXFTHRESHO(x) ((x) << S_FW_IQ_CMD_FL0CIDXFTHRESHO)
2620 #define G_FW_IQ_CMD_FL0CIDXFTHRESHO(x) \
2621 (((x) >> S_FW_IQ_CMD_FL0CIDXFTHRESHO) & M_FW_IQ_CMD_FL0CIDXFTHRESHO)
2622 #define F_FW_IQ_CMD_FL0CIDXFTHRESHO V_FW_IQ_CMD_FL0CIDXFTHRESHO(1U)
2624 #define S_FW_IQ_CMD_FL0CIDXFTHRESH 0
2625 #define M_FW_IQ_CMD_FL0CIDXFTHRESH 0x7
2626 #define V_FW_IQ_CMD_FL0CIDXFTHRESH(x) ((x) << S_FW_IQ_CMD_FL0CIDXFTHRESH)
2627 #define G_FW_IQ_CMD_FL0CIDXFTHRESH(x) \
2628 (((x) >> S_FW_IQ_CMD_FL0CIDXFTHRESH) & M_FW_IQ_CMD_FL0CIDXFTHRESH)
2630 #define S_FW_IQ_CMD_FL1CNGCHMAP 20
2631 #define M_FW_IQ_CMD_FL1CNGCHMAP 0xf
2632 #define V_FW_IQ_CMD_FL1CNGCHMAP(x) ((x) << S_FW_IQ_CMD_FL1CNGCHMAP)
2633 #define G_FW_IQ_CMD_FL1CNGCHMAP(x) \
2634 (((x) >> S_FW_IQ_CMD_FL1CNGCHMAP) & M_FW_IQ_CMD_FL1CNGCHMAP)
2636 #define S_FW_IQ_CMD_FL1CACHELOCK 15
2637 #define M_FW_IQ_CMD_FL1CACHELOCK 0x1
2638 #define V_FW_IQ_CMD_FL1CACHELOCK(x) ((x) << S_FW_IQ_CMD_FL1CACHELOCK)
2639 #define G_FW_IQ_CMD_FL1CACHELOCK(x) \
2640 (((x) >> S_FW_IQ_CMD_FL1CACHELOCK) & M_FW_IQ_CMD_FL1CACHELOCK)
2641 #define F_FW_IQ_CMD_FL1CACHELOCK V_FW_IQ_CMD_FL1CACHELOCK(1U)
2643 #define S_FW_IQ_CMD_FL1DBP 14
2644 #define M_FW_IQ_CMD_FL1DBP 0x1
2645 #define V_FW_IQ_CMD_FL1DBP(x) ((x) << S_FW_IQ_CMD_FL1DBP)
2646 #define G_FW_IQ_CMD_FL1DBP(x) \
2647 (((x) >> S_FW_IQ_CMD_FL1DBP) & M_FW_IQ_CMD_FL1DBP)
2648 #define F_FW_IQ_CMD_FL1DBP V_FW_IQ_CMD_FL1DBP(1U)
2650 #define S_FW_IQ_CMD_FL1DATANS 13
2651 #define M_FW_IQ_CMD_FL1DATANS 0x1
2652 #define V_FW_IQ_CMD_FL1DATANS(x) ((x) << S_FW_IQ_CMD_FL1DATANS)
2653 #define G_FW_IQ_CMD_FL1DATANS(x) \
2654 (((x) >> S_FW_IQ_CMD_FL1DATANS) & M_FW_IQ_CMD_FL1DATANS)
2655 #define F_FW_IQ_CMD_FL1DATANS V_FW_IQ_CMD_FL1DATANS(1U)
2657 #define S_FW_IQ_CMD_FL1DATARO 12
2658 #define M_FW_IQ_CMD_FL1DATARO 0x1
2659 #define V_FW_IQ_CMD_FL1DATARO(x) ((x) << S_FW_IQ_CMD_FL1DATARO)
2660 #define G_FW_IQ_CMD_FL1DATARO(x) \
2661 (((x) >> S_FW_IQ_CMD_FL1DATARO) & M_FW_IQ_CMD_FL1DATARO)
2662 #define F_FW_IQ_CMD_FL1DATARO V_FW_IQ_CMD_FL1DATARO(1U)
2664 #define S_FW_IQ_CMD_FL1CONGCIF 11
2665 #define M_FW_IQ_CMD_FL1CONGCIF 0x1
2666 #define V_FW_IQ_CMD_FL1CONGCIF(x) ((x) << S_FW_IQ_CMD_FL1CONGCIF)
2667 #define G_FW_IQ_CMD_FL1CONGCIF(x) \
2668 (((x) >> S_FW_IQ_CMD_FL1CONGCIF) & M_FW_IQ_CMD_FL1CONGCIF)
2669 #define F_FW_IQ_CMD_FL1CONGCIF V_FW_IQ_CMD_FL1CONGCIF(1U)
2671 #define S_FW_IQ_CMD_FL1ONCHIP 10
2672 #define M_FW_IQ_CMD_FL1ONCHIP 0x1
2673 #define V_FW_IQ_CMD_FL1ONCHIP(x) ((x) << S_FW_IQ_CMD_FL1ONCHIP)
2674 #define G_FW_IQ_CMD_FL1ONCHIP(x) \
2675 (((x) >> S_FW_IQ_CMD_FL1ONCHIP) & M_FW_IQ_CMD_FL1ONCHIP)
2676 #define F_FW_IQ_CMD_FL1ONCHIP V_FW_IQ_CMD_FL1ONCHIP(1U)
2678 #define S_FW_IQ_CMD_FL1STATUSPGNS 9
2679 #define M_FW_IQ_CMD_FL1STATUSPGNS 0x1
2680 #define V_FW_IQ_CMD_FL1STATUSPGNS(x) ((x) << S_FW_IQ_CMD_FL1STATUSPGNS)
2681 #define G_FW_IQ_CMD_FL1STATUSPGNS(x) \
2682 (((x) >> S_FW_IQ_CMD_FL1STATUSPGNS) & M_FW_IQ_CMD_FL1STATUSPGNS)
2683 #define F_FW_IQ_CMD_FL1STATUSPGNS V_FW_IQ_CMD_FL1STATUSPGNS(1U)
2685 #define S_FW_IQ_CMD_FL1STATUSPGRO 8
2686 #define M_FW_IQ_CMD_FL1STATUSPGRO 0x1
2687 #define V_FW_IQ_CMD_FL1STATUSPGRO(x) ((x) << S_FW_IQ_CMD_FL1STATUSPGRO)
2688 #define G_FW_IQ_CMD_FL1STATUSPGRO(x) \
2689 (((x) >> S_FW_IQ_CMD_FL1STATUSPGRO) & M_FW_IQ_CMD_FL1STATUSPGRO)
2690 #define F_FW_IQ_CMD_FL1STATUSPGRO V_FW_IQ_CMD_FL1STATUSPGRO(1U)
2692 #define S_FW_IQ_CMD_FL1FETCHNS 7
2693 #define M_FW_IQ_CMD_FL1FETCHNS 0x1
2694 #define V_FW_IQ_CMD_FL1FETCHNS(x) ((x) << S_FW_IQ_CMD_FL1FETCHNS)
2695 #define G_FW_IQ_CMD_FL1FETCHNS(x) \
2696 (((x) >> S_FW_IQ_CMD_FL1FETCHNS) & M_FW_IQ_CMD_FL1FETCHNS)
2697 #define F_FW_IQ_CMD_FL1FETCHNS V_FW_IQ_CMD_FL1FETCHNS(1U)
2699 #define S_FW_IQ_CMD_FL1FETCHRO 6
2700 #define M_FW_IQ_CMD_FL1FETCHRO 0x1
2701 #define V_FW_IQ_CMD_FL1FETCHRO(x) ((x) << S_FW_IQ_CMD_FL1FETCHRO)
2702 #define G_FW_IQ_CMD_FL1FETCHRO(x) \
2703 (((x) >> S_FW_IQ_CMD_FL1FETCHRO) & M_FW_IQ_CMD_FL1FETCHRO)
2704 #define F_FW_IQ_CMD_FL1FETCHRO V_FW_IQ_CMD_FL1FETCHRO(1U)
2706 #define S_FW_IQ_CMD_FL1HOSTFCMODE 4
2707 #define M_FW_IQ_CMD_FL1HOSTFCMODE 0x3
2708 #define V_FW_IQ_CMD_FL1HOSTFCMODE(x) ((x) << S_FW_IQ_CMD_FL1HOSTFCMODE)
2709 #define G_FW_IQ_CMD_FL1HOSTFCMODE(x) \
2710 (((x) >> S_FW_IQ_CMD_FL1HOSTFCMODE) & M_FW_IQ_CMD_FL1HOSTFCMODE)
2712 #define S_FW_IQ_CMD_FL1CPRIO 3
2713 #define M_FW_IQ_CMD_FL1CPRIO 0x1
2714 #define V_FW_IQ_CMD_FL1CPRIO(x) ((x) << S_FW_IQ_CMD_FL1CPRIO)
2715 #define G_FW_IQ_CMD_FL1CPRIO(x) \
2716 (((x) >> S_FW_IQ_CMD_FL1CPRIO) & M_FW_IQ_CMD_FL1CPRIO)
2717 #define F_FW_IQ_CMD_FL1CPRIO V_FW_IQ_CMD_FL1CPRIO(1U)
2719 #define S_FW_IQ_CMD_FL1PADEN 2
2720 #define M_FW_IQ_CMD_FL1PADEN 0x1
2721 #define V_FW_IQ_CMD_FL1PADEN(x) ((x) << S_FW_IQ_CMD_FL1PADEN)
2722 #define G_FW_IQ_CMD_FL1PADEN(x) \
2723 (((x) >> S_FW_IQ_CMD_FL1PADEN) & M_FW_IQ_CMD_FL1PADEN)
2724 #define F_FW_IQ_CMD_FL1PADEN V_FW_IQ_CMD_FL1PADEN(1U)
2726 #define S_FW_IQ_CMD_FL1PACKEN 1
2727 #define M_FW_IQ_CMD_FL1PACKEN 0x1
2728 #define V_FW_IQ_CMD_FL1PACKEN(x) ((x) << S_FW_IQ_CMD_FL1PACKEN)
2729 #define G_FW_IQ_CMD_FL1PACKEN(x) \
2730 (((x) >> S_FW_IQ_CMD_FL1PACKEN) & M_FW_IQ_CMD_FL1PACKEN)
2731 #define F_FW_IQ_CMD_FL1PACKEN V_FW_IQ_CMD_FL1PACKEN(1U)
2733 #define S_FW_IQ_CMD_FL1CONGEN 0
2734 #define M_FW_IQ_CMD_FL1CONGEN 0x1
2735 #define V_FW_IQ_CMD_FL1CONGEN(x) ((x) << S_FW_IQ_CMD_FL1CONGEN)
2736 #define G_FW_IQ_CMD_FL1CONGEN(x) \
2737 (((x) >> S_FW_IQ_CMD_FL1CONGEN) & M_FW_IQ_CMD_FL1CONGEN)
2738 #define F_FW_IQ_CMD_FL1CONGEN V_FW_IQ_CMD_FL1CONGEN(1U)
2740 #define S_FW_IQ_CMD_FL1DCAEN 15
2741 #define M_FW_IQ_CMD_FL1DCAEN 0x1
2742 #define V_FW_IQ_CMD_FL1DCAEN(x) ((x) << S_FW_IQ_CMD_FL1DCAEN)
2743 #define G_FW_IQ_CMD_FL1DCAEN(x) \
2744 (((x) >> S_FW_IQ_CMD_FL1DCAEN) & M_FW_IQ_CMD_FL1DCAEN)
2745 #define F_FW_IQ_CMD_FL1DCAEN V_FW_IQ_CMD_FL1DCAEN(1U)
2747 #define S_FW_IQ_CMD_FL1DCACPU 10
2748 #define M_FW_IQ_CMD_FL1DCACPU 0x1f
2749 #define V_FW_IQ_CMD_FL1DCACPU(x) ((x) << S_FW_IQ_CMD_FL1DCACPU)
2750 #define G_FW_IQ_CMD_FL1DCACPU(x) \
2751 (((x) >> S_FW_IQ_CMD_FL1DCACPU) & M_FW_IQ_CMD_FL1DCACPU)
2753 #define S_FW_IQ_CMD_FL1FBMIN 7
2754 #define M_FW_IQ_CMD_FL1FBMIN 0x7
2755 #define V_FW_IQ_CMD_FL1FBMIN(x) ((x) << S_FW_IQ_CMD_FL1FBMIN)
2756 #define G_FW_IQ_CMD_FL1FBMIN(x) \
2757 (((x) >> S_FW_IQ_CMD_FL1FBMIN) & M_FW_IQ_CMD_FL1FBMIN)
2759 #define S_FW_IQ_CMD_FL1FBMAX 4
2760 #define M_FW_IQ_CMD_FL1FBMAX 0x7
2761 #define V_FW_IQ_CMD_FL1FBMAX(x) ((x) << S_FW_IQ_CMD_FL1FBMAX)
2762 #define G_FW_IQ_CMD_FL1FBMAX(x) \
2763 (((x) >> S_FW_IQ_CMD_FL1FBMAX) & M_FW_IQ_CMD_FL1FBMAX)
2765 #define S_FW_IQ_CMD_FL1CIDXFTHRESHO 3
2766 #define M_FW_IQ_CMD_FL1CIDXFTHRESHO 0x1
2767 #define V_FW_IQ_CMD_FL1CIDXFTHRESHO(x) ((x) << S_FW_IQ_CMD_FL1CIDXFTHRESHO)
2768 #define G_FW_IQ_CMD_FL1CIDXFTHRESHO(x) \
2769 (((x) >> S_FW_IQ_CMD_FL1CIDXFTHRESHO) & M_FW_IQ_CMD_FL1CIDXFTHRESHO)
2770 #define F_FW_IQ_CMD_FL1CIDXFTHRESHO V_FW_IQ_CMD_FL1CIDXFTHRESHO(1U)
2772 #define S_FW_IQ_CMD_FL1CIDXFTHRESH 0
2773 #define M_FW_IQ_CMD_FL1CIDXFTHRESH 0x7
2774 #define V_FW_IQ_CMD_FL1CIDXFTHRESH(x) ((x) << S_FW_IQ_CMD_FL1CIDXFTHRESH)
2775 #define G_FW_IQ_CMD_FL1CIDXFTHRESH(x) \
2776 (((x) >> S_FW_IQ_CMD_FL1CIDXFTHRESH) & M_FW_IQ_CMD_FL1CIDXFTHRESH)
2778 struct fw_eq_mngt_cmd {
2780 __be32 alloc_to_len16;
2781 __be32 cmpliqid_eqid;
2782 __be32 physeqid_pkd;
2783 __be32 fetchszm_to_iqid;
2784 __be32 dcaen_to_eqsize;
2788 #define S_FW_EQ_MNGT_CMD_PFN 8
2789 #define M_FW_EQ_MNGT_CMD_PFN 0x7
2790 #define V_FW_EQ_MNGT_CMD_PFN(x) ((x) << S_FW_EQ_MNGT_CMD_PFN)
2791 #define G_FW_EQ_MNGT_CMD_PFN(x) \
2792 (((x) >> S_FW_EQ_MNGT_CMD_PFN) & M_FW_EQ_MNGT_CMD_PFN)
2794 #define S_FW_EQ_MNGT_CMD_VFN 0
2795 #define M_FW_EQ_MNGT_CMD_VFN 0xff
2796 #define V_FW_EQ_MNGT_CMD_VFN(x) ((x) << S_FW_EQ_MNGT_CMD_VFN)
2797 #define G_FW_EQ_MNGT_CMD_VFN(x) \
2798 (((x) >> S_FW_EQ_MNGT_CMD_VFN) & M_FW_EQ_MNGT_CMD_VFN)
2800 #define S_FW_EQ_MNGT_CMD_ALLOC 31
2801 #define M_FW_EQ_MNGT_CMD_ALLOC 0x1
2802 #define V_FW_EQ_MNGT_CMD_ALLOC(x) ((x) << S_FW_EQ_MNGT_CMD_ALLOC)
2803 #define G_FW_EQ_MNGT_CMD_ALLOC(x) \
2804 (((x) >> S_FW_EQ_MNGT_CMD_ALLOC) & M_FW_EQ_MNGT_CMD_ALLOC)
2805 #define F_FW_EQ_MNGT_CMD_ALLOC V_FW_EQ_MNGT_CMD_ALLOC(1U)
2807 #define S_FW_EQ_MNGT_CMD_FREE 30
2808 #define M_FW_EQ_MNGT_CMD_FREE 0x1
2809 #define V_FW_EQ_MNGT_CMD_FREE(x) ((x) << S_FW_EQ_MNGT_CMD_FREE)
2810 #define G_FW_EQ_MNGT_CMD_FREE(x) \
2811 (((x) >> S_FW_EQ_MNGT_CMD_FREE) & M_FW_EQ_MNGT_CMD_FREE)
2812 #define F_FW_EQ_MNGT_CMD_FREE V_FW_EQ_MNGT_CMD_FREE(1U)
2814 #define S_FW_EQ_MNGT_CMD_MODIFY 29
2815 #define M_FW_EQ_MNGT_CMD_MODIFY 0x1
2816 #define V_FW_EQ_MNGT_CMD_MODIFY(x) ((x) << S_FW_EQ_MNGT_CMD_MODIFY)
2817 #define G_FW_EQ_MNGT_CMD_MODIFY(x) \
2818 (((x) >> S_FW_EQ_MNGT_CMD_MODIFY) & M_FW_EQ_MNGT_CMD_MODIFY)
2819 #define F_FW_EQ_MNGT_CMD_MODIFY V_FW_EQ_MNGT_CMD_MODIFY(1U)
2821 #define S_FW_EQ_MNGT_CMD_EQSTART 28
2822 #define M_FW_EQ_MNGT_CMD_EQSTART 0x1
2823 #define V_FW_EQ_MNGT_CMD_EQSTART(x) ((x) << S_FW_EQ_MNGT_CMD_EQSTART)
2824 #define G_FW_EQ_MNGT_CMD_EQSTART(x) \
2825 (((x) >> S_FW_EQ_MNGT_CMD_EQSTART) & M_FW_EQ_MNGT_CMD_EQSTART)
2826 #define F_FW_EQ_MNGT_CMD_EQSTART V_FW_EQ_MNGT_CMD_EQSTART(1U)
2828 #define S_FW_EQ_MNGT_CMD_EQSTOP 27
2829 #define M_FW_EQ_MNGT_CMD_EQSTOP 0x1
2830 #define V_FW_EQ_MNGT_CMD_EQSTOP(x) ((x) << S_FW_EQ_MNGT_CMD_EQSTOP)
2831 #define G_FW_EQ_MNGT_CMD_EQSTOP(x) \
2832 (((x) >> S_FW_EQ_MNGT_CMD_EQSTOP) & M_FW_EQ_MNGT_CMD_EQSTOP)
2833 #define F_FW_EQ_MNGT_CMD_EQSTOP V_FW_EQ_MNGT_CMD_EQSTOP(1U)
2835 #define S_FW_EQ_MNGT_CMD_CMPLIQID 20
2836 #define M_FW_EQ_MNGT_CMD_CMPLIQID 0xfff
2837 #define V_FW_EQ_MNGT_CMD_CMPLIQID(x) ((x) << S_FW_EQ_MNGT_CMD_CMPLIQID)
2838 #define G_FW_EQ_MNGT_CMD_CMPLIQID(x) \
2839 (((x) >> S_FW_EQ_MNGT_CMD_CMPLIQID) & M_FW_EQ_MNGT_CMD_CMPLIQID)
2841 #define S_FW_EQ_MNGT_CMD_EQID 0
2842 #define M_FW_EQ_MNGT_CMD_EQID 0xfffff
2843 #define V_FW_EQ_MNGT_CMD_EQID(x) ((x) << S_FW_EQ_MNGT_CMD_EQID)
2844 #define G_FW_EQ_MNGT_CMD_EQID(x) \
2845 (((x) >> S_FW_EQ_MNGT_CMD_EQID) & M_FW_EQ_MNGT_CMD_EQID)
2847 #define S_FW_EQ_MNGT_CMD_PHYSEQID 0
2848 #define M_FW_EQ_MNGT_CMD_PHYSEQID 0xfffff
2849 #define V_FW_EQ_MNGT_CMD_PHYSEQID(x) ((x) << S_FW_EQ_MNGT_CMD_PHYSEQID)
2850 #define G_FW_EQ_MNGT_CMD_PHYSEQID(x) \
2851 (((x) >> S_FW_EQ_MNGT_CMD_PHYSEQID) & M_FW_EQ_MNGT_CMD_PHYSEQID)
2853 #define S_FW_EQ_MNGT_CMD_FETCHSZM 26
2854 #define M_FW_EQ_MNGT_CMD_FETCHSZM 0x1
2855 #define V_FW_EQ_MNGT_CMD_FETCHSZM(x) ((x) << S_FW_EQ_MNGT_CMD_FETCHSZM)
2856 #define G_FW_EQ_MNGT_CMD_FETCHSZM(x) \
2857 (((x) >> S_FW_EQ_MNGT_CMD_FETCHSZM) & M_FW_EQ_MNGT_CMD_FETCHSZM)
2858 #define F_FW_EQ_MNGT_CMD_FETCHSZM V_FW_EQ_MNGT_CMD_FETCHSZM(1U)
2860 #define S_FW_EQ_MNGT_CMD_STATUSPGNS 25
2861 #define M_FW_EQ_MNGT_CMD_STATUSPGNS 0x1
2862 #define V_FW_EQ_MNGT_CMD_STATUSPGNS(x) ((x) << S_FW_EQ_MNGT_CMD_STATUSPGNS)
2863 #define G_FW_EQ_MNGT_CMD_STATUSPGNS(x) \
2864 (((x) >> S_FW_EQ_MNGT_CMD_STATUSPGNS) & M_FW_EQ_MNGT_CMD_STATUSPGNS)
2865 #define F_FW_EQ_MNGT_CMD_STATUSPGNS V_FW_EQ_MNGT_CMD_STATUSPGNS(1U)
2867 #define S_FW_EQ_MNGT_CMD_STATUSPGRO 24
2868 #define M_FW_EQ_MNGT_CMD_STATUSPGRO 0x1
2869 #define V_FW_EQ_MNGT_CMD_STATUSPGRO(x) ((x) << S_FW_EQ_MNGT_CMD_STATUSPGRO)
2870 #define G_FW_EQ_MNGT_CMD_STATUSPGRO(x) \
2871 (((x) >> S_FW_EQ_MNGT_CMD_STATUSPGRO) & M_FW_EQ_MNGT_CMD_STATUSPGRO)
2872 #define F_FW_EQ_MNGT_CMD_STATUSPGRO V_FW_EQ_MNGT_CMD_STATUSPGRO(1U)
2874 #define S_FW_EQ_MNGT_CMD_FETCHNS 23
2875 #define M_FW_EQ_MNGT_CMD_FETCHNS 0x1
2876 #define V_FW_EQ_MNGT_CMD_FETCHNS(x) ((x) << S_FW_EQ_MNGT_CMD_FETCHNS)
2877 #define G_FW_EQ_MNGT_CMD_FETCHNS(x) \
2878 (((x) >> S_FW_EQ_MNGT_CMD_FETCHNS) & M_FW_EQ_MNGT_CMD_FETCHNS)
2879 #define F_FW_EQ_MNGT_CMD_FETCHNS V_FW_EQ_MNGT_CMD_FETCHNS(1U)
2881 #define S_FW_EQ_MNGT_CMD_FETCHRO 22
2882 #define M_FW_EQ_MNGT_CMD_FETCHRO 0x1
2883 #define V_FW_EQ_MNGT_CMD_FETCHRO(x) ((x) << S_FW_EQ_MNGT_CMD_FETCHRO)
2884 #define G_FW_EQ_MNGT_CMD_FETCHRO(x) \
2885 (((x) >> S_FW_EQ_MNGT_CMD_FETCHRO) & M_FW_EQ_MNGT_CMD_FETCHRO)
2886 #define F_FW_EQ_MNGT_CMD_FETCHRO V_FW_EQ_MNGT_CMD_FETCHRO(1U)
2888 #define S_FW_EQ_MNGT_CMD_HOSTFCMODE 20
2889 #define M_FW_EQ_MNGT_CMD_HOSTFCMODE 0x3
2890 #define V_FW_EQ_MNGT_CMD_HOSTFCMODE(x) ((x) << S_FW_EQ_MNGT_CMD_HOSTFCMODE)
2891 #define G_FW_EQ_MNGT_CMD_HOSTFCMODE(x) \
2892 (((x) >> S_FW_EQ_MNGT_CMD_HOSTFCMODE) & M_FW_EQ_MNGT_CMD_HOSTFCMODE)
2894 #define S_FW_EQ_MNGT_CMD_CPRIO 19
2895 #define M_FW_EQ_MNGT_CMD_CPRIO 0x1
2896 #define V_FW_EQ_MNGT_CMD_CPRIO(x) ((x) << S_FW_EQ_MNGT_CMD_CPRIO)
2897 #define G_FW_EQ_MNGT_CMD_CPRIO(x) \
2898 (((x) >> S_FW_EQ_MNGT_CMD_CPRIO) & M_FW_EQ_MNGT_CMD_CPRIO)
2899 #define F_FW_EQ_MNGT_CMD_CPRIO V_FW_EQ_MNGT_CMD_CPRIO(1U)
2901 #define S_FW_EQ_MNGT_CMD_ONCHIP 18
2902 #define M_FW_EQ_MNGT_CMD_ONCHIP 0x1
2903 #define V_FW_EQ_MNGT_CMD_ONCHIP(x) ((x) << S_FW_EQ_MNGT_CMD_ONCHIP)
2904 #define G_FW_EQ_MNGT_CMD_ONCHIP(x) \
2905 (((x) >> S_FW_EQ_MNGT_CMD_ONCHIP) & M_FW_EQ_MNGT_CMD_ONCHIP)
2906 #define F_FW_EQ_MNGT_CMD_ONCHIP V_FW_EQ_MNGT_CMD_ONCHIP(1U)
2908 #define S_FW_EQ_MNGT_CMD_PCIECHN 16
2909 #define M_FW_EQ_MNGT_CMD_PCIECHN 0x3
2910 #define V_FW_EQ_MNGT_CMD_PCIECHN(x) ((x) << S_FW_EQ_MNGT_CMD_PCIECHN)
2911 #define G_FW_EQ_MNGT_CMD_PCIECHN(x) \
2912 (((x) >> S_FW_EQ_MNGT_CMD_PCIECHN) & M_FW_EQ_MNGT_CMD_PCIECHN)
2914 #define S_FW_EQ_MNGT_CMD_IQID 0
2915 #define M_FW_EQ_MNGT_CMD_IQID 0xffff
2916 #define V_FW_EQ_MNGT_CMD_IQID(x) ((x) << S_FW_EQ_MNGT_CMD_IQID)
2917 #define G_FW_EQ_MNGT_CMD_IQID(x) \
2918 (((x) >> S_FW_EQ_MNGT_CMD_IQID) & M_FW_EQ_MNGT_CMD_IQID)
2920 #define S_FW_EQ_MNGT_CMD_DCAEN 31
2921 #define M_FW_EQ_MNGT_CMD_DCAEN 0x1
2922 #define V_FW_EQ_MNGT_CMD_DCAEN(x) ((x) << S_FW_EQ_MNGT_CMD_DCAEN)
2923 #define G_FW_EQ_MNGT_CMD_DCAEN(x) \
2924 (((x) >> S_FW_EQ_MNGT_CMD_DCAEN) & M_FW_EQ_MNGT_CMD_DCAEN)
2925 #define F_FW_EQ_MNGT_CMD_DCAEN V_FW_EQ_MNGT_CMD_DCAEN(1U)
2927 #define S_FW_EQ_MNGT_CMD_DCACPU 26
2928 #define M_FW_EQ_MNGT_CMD_DCACPU 0x1f
2929 #define V_FW_EQ_MNGT_CMD_DCACPU(x) ((x) << S_FW_EQ_MNGT_CMD_DCACPU)
2930 #define G_FW_EQ_MNGT_CMD_DCACPU(x) \
2931 (((x) >> S_FW_EQ_MNGT_CMD_DCACPU) & M_FW_EQ_MNGT_CMD_DCACPU)
2933 #define S_FW_EQ_MNGT_CMD_FBMIN 23
2934 #define M_FW_EQ_MNGT_CMD_FBMIN 0x7
2935 #define V_FW_EQ_MNGT_CMD_FBMIN(x) ((x) << S_FW_EQ_MNGT_CMD_FBMIN)
2936 #define G_FW_EQ_MNGT_CMD_FBMIN(x) \
2937 (((x) >> S_FW_EQ_MNGT_CMD_FBMIN) & M_FW_EQ_MNGT_CMD_FBMIN)
2939 #define S_FW_EQ_MNGT_CMD_FBMAX 20
2940 #define M_FW_EQ_MNGT_CMD_FBMAX 0x7
2941 #define V_FW_EQ_MNGT_CMD_FBMAX(x) ((x) << S_FW_EQ_MNGT_CMD_FBMAX)
2942 #define G_FW_EQ_MNGT_CMD_FBMAX(x) \
2943 (((x) >> S_FW_EQ_MNGT_CMD_FBMAX) & M_FW_EQ_MNGT_CMD_FBMAX)
2945 #define S_FW_EQ_MNGT_CMD_CIDXFTHRESHO 19
2946 #define M_FW_EQ_MNGT_CMD_CIDXFTHRESHO 0x1
2947 #define V_FW_EQ_MNGT_CMD_CIDXFTHRESHO(x) \
2948 ((x) << S_FW_EQ_MNGT_CMD_CIDXFTHRESHO)
2949 #define G_FW_EQ_MNGT_CMD_CIDXFTHRESHO(x) \
2950 (((x) >> S_FW_EQ_MNGT_CMD_CIDXFTHRESHO) & M_FW_EQ_MNGT_CMD_CIDXFTHRESHO)
2951 #define F_FW_EQ_MNGT_CMD_CIDXFTHRESHO V_FW_EQ_MNGT_CMD_CIDXFTHRESHO(1U)
2953 #define S_FW_EQ_MNGT_CMD_CIDXFTHRESH 16
2954 #define M_FW_EQ_MNGT_CMD_CIDXFTHRESH 0x7
2955 #define V_FW_EQ_MNGT_CMD_CIDXFTHRESH(x) ((x) << S_FW_EQ_MNGT_CMD_CIDXFTHRESH)
2956 #define G_FW_EQ_MNGT_CMD_CIDXFTHRESH(x) \
2957 (((x) >> S_FW_EQ_MNGT_CMD_CIDXFTHRESH) & M_FW_EQ_MNGT_CMD_CIDXFTHRESH)
2959 #define S_FW_EQ_MNGT_CMD_EQSIZE 0
2960 #define M_FW_EQ_MNGT_CMD_EQSIZE 0xffff
2961 #define V_FW_EQ_MNGT_CMD_EQSIZE(x) ((x) << S_FW_EQ_MNGT_CMD_EQSIZE)
2962 #define G_FW_EQ_MNGT_CMD_EQSIZE(x) \
2963 (((x) >> S_FW_EQ_MNGT_CMD_EQSIZE) & M_FW_EQ_MNGT_CMD_EQSIZE)
2965 struct fw_eq_eth_cmd {
2967 __be32 alloc_to_len16;
2969 __be32 physeqid_pkd;
2970 __be32 fetchszm_to_iqid;
2971 __be32 dcaen_to_eqsize;
2978 #define S_FW_EQ_ETH_CMD_PFN 8
2979 #define M_FW_EQ_ETH_CMD_PFN 0x7
2980 #define V_FW_EQ_ETH_CMD_PFN(x) ((x) << S_FW_EQ_ETH_CMD_PFN)
2981 #define G_FW_EQ_ETH_CMD_PFN(x) \
2982 (((x) >> S_FW_EQ_ETH_CMD_PFN) & M_FW_EQ_ETH_CMD_PFN)
2984 #define S_FW_EQ_ETH_CMD_VFN 0
2985 #define M_FW_EQ_ETH_CMD_VFN 0xff
2986 #define V_FW_EQ_ETH_CMD_VFN(x) ((x) << S_FW_EQ_ETH_CMD_VFN)
2987 #define G_FW_EQ_ETH_CMD_VFN(x) \
2988 (((x) >> S_FW_EQ_ETH_CMD_VFN) & M_FW_EQ_ETH_CMD_VFN)
2990 #define S_FW_EQ_ETH_CMD_ALLOC 31
2991 #define M_FW_EQ_ETH_CMD_ALLOC 0x1
2992 #define V_FW_EQ_ETH_CMD_ALLOC(x) ((x) << S_FW_EQ_ETH_CMD_ALLOC)
2993 #define G_FW_EQ_ETH_CMD_ALLOC(x) \
2994 (((x) >> S_FW_EQ_ETH_CMD_ALLOC) & M_FW_EQ_ETH_CMD_ALLOC)
2995 #define F_FW_EQ_ETH_CMD_ALLOC V_FW_EQ_ETH_CMD_ALLOC(1U)
2997 #define S_FW_EQ_ETH_CMD_FREE 30
2998 #define M_FW_EQ_ETH_CMD_FREE 0x1
2999 #define V_FW_EQ_ETH_CMD_FREE(x) ((x) << S_FW_EQ_ETH_CMD_FREE)
3000 #define G_FW_EQ_ETH_CMD_FREE(x) \
3001 (((x) >> S_FW_EQ_ETH_CMD_FREE) & M_FW_EQ_ETH_CMD_FREE)
3002 #define F_FW_EQ_ETH_CMD_FREE V_FW_EQ_ETH_CMD_FREE(1U)
3004 #define S_FW_EQ_ETH_CMD_MODIFY 29
3005 #define M_FW_EQ_ETH_CMD_MODIFY 0x1
3006 #define V_FW_EQ_ETH_CMD_MODIFY(x) ((x) << S_FW_EQ_ETH_CMD_MODIFY)
3007 #define G_FW_EQ_ETH_CMD_MODIFY(x) \
3008 (((x) >> S_FW_EQ_ETH_CMD_MODIFY) & M_FW_EQ_ETH_CMD_MODIFY)
3009 #define F_FW_EQ_ETH_CMD_MODIFY V_FW_EQ_ETH_CMD_MODIFY(1U)
3011 #define S_FW_EQ_ETH_CMD_EQSTART 28
3012 #define M_FW_EQ_ETH_CMD_EQSTART 0x1
3013 #define V_FW_EQ_ETH_CMD_EQSTART(x) ((x) << S_FW_EQ_ETH_CMD_EQSTART)
3014 #define G_FW_EQ_ETH_CMD_EQSTART(x) \
3015 (((x) >> S_FW_EQ_ETH_CMD_EQSTART) & M_FW_EQ_ETH_CMD_EQSTART)
3016 #define F_FW_EQ_ETH_CMD_EQSTART V_FW_EQ_ETH_CMD_EQSTART(1U)
3018 #define S_FW_EQ_ETH_CMD_EQSTOP 27
3019 #define M_FW_EQ_ETH_CMD_EQSTOP 0x1
3020 #define V_FW_EQ_ETH_CMD_EQSTOP(x) ((x) << S_FW_EQ_ETH_CMD_EQSTOP)
3021 #define G_FW_EQ_ETH_CMD_EQSTOP(x) \
3022 (((x) >> S_FW_EQ_ETH_CMD_EQSTOP) & M_FW_EQ_ETH_CMD_EQSTOP)
3023 #define F_FW_EQ_ETH_CMD_EQSTOP V_FW_EQ_ETH_CMD_EQSTOP(1U)
3025 #define S_FW_EQ_ETH_CMD_EQID 0
3026 #define M_FW_EQ_ETH_CMD_EQID 0xfffff
3027 #define V_FW_EQ_ETH_CMD_EQID(x) ((x) << S_FW_EQ_ETH_CMD_EQID)
3028 #define G_FW_EQ_ETH_CMD_EQID(x) \
3029 (((x) >> S_FW_EQ_ETH_CMD_EQID) & M_FW_EQ_ETH_CMD_EQID)
3031 #define S_FW_EQ_ETH_CMD_PHYSEQID 0
3032 #define M_FW_EQ_ETH_CMD_PHYSEQID 0xfffff
3033 #define V_FW_EQ_ETH_CMD_PHYSEQID(x) ((x) << S_FW_EQ_ETH_CMD_PHYSEQID)
3034 #define G_FW_EQ_ETH_CMD_PHYSEQID(x) \
3035 (((x) >> S_FW_EQ_ETH_CMD_PHYSEQID) & M_FW_EQ_ETH_CMD_PHYSEQID)
3037 #define S_FW_EQ_ETH_CMD_FETCHSZM 26
3038 #define M_FW_EQ_ETH_CMD_FETCHSZM 0x1
3039 #define V_FW_EQ_ETH_CMD_FETCHSZM(x) ((x) << S_FW_EQ_ETH_CMD_FETCHSZM)
3040 #define G_FW_EQ_ETH_CMD_FETCHSZM(x) \
3041 (((x) >> S_FW_EQ_ETH_CMD_FETCHSZM) & M_FW_EQ_ETH_CMD_FETCHSZM)
3042 #define F_FW_EQ_ETH_CMD_FETCHSZM V_FW_EQ_ETH_CMD_FETCHSZM(1U)
3044 #define S_FW_EQ_ETH_CMD_STATUSPGNS 25
3045 #define M_FW_EQ_ETH_CMD_STATUSPGNS 0x1
3046 #define V_FW_EQ_ETH_CMD_STATUSPGNS(x) ((x) << S_FW_EQ_ETH_CMD_STATUSPGNS)
3047 #define G_FW_EQ_ETH_CMD_STATUSPGNS(x) \
3048 (((x) >> S_FW_EQ_ETH_CMD_STATUSPGNS) & M_FW_EQ_ETH_CMD_STATUSPGNS)
3049 #define F_FW_EQ_ETH_CMD_STATUSPGNS V_FW_EQ_ETH_CMD_STATUSPGNS(1U)
3051 #define S_FW_EQ_ETH_CMD_STATUSPGRO 24
3052 #define M_FW_EQ_ETH_CMD_STATUSPGRO 0x1
3053 #define V_FW_EQ_ETH_CMD_STATUSPGRO(x) ((x) << S_FW_EQ_ETH_CMD_STATUSPGRO)
3054 #define G_FW_EQ_ETH_CMD_STATUSPGRO(x) \
3055 (((x) >> S_FW_EQ_ETH_CMD_STATUSPGRO) & M_FW_EQ_ETH_CMD_STATUSPGRO)
3056 #define F_FW_EQ_ETH_CMD_STATUSPGRO V_FW_EQ_ETH_CMD_STATUSPGRO(1U)
3058 #define S_FW_EQ_ETH_CMD_FETCHNS 23
3059 #define M_FW_EQ_ETH_CMD_FETCHNS 0x1
3060 #define V_FW_EQ_ETH_CMD_FETCHNS(x) ((x) << S_FW_EQ_ETH_CMD_FETCHNS)
3061 #define G_FW_EQ_ETH_CMD_FETCHNS(x) \
3062 (((x) >> S_FW_EQ_ETH_CMD_FETCHNS) & M_FW_EQ_ETH_CMD_FETCHNS)
3063 #define F_FW_EQ_ETH_CMD_FETCHNS V_FW_EQ_ETH_CMD_FETCHNS(1U)
3065 #define S_FW_EQ_ETH_CMD_FETCHRO 22
3066 #define M_FW_EQ_ETH_CMD_FETCHRO 0x1
3067 #define V_FW_EQ_ETH_CMD_FETCHRO(x) ((x) << S_FW_EQ_ETH_CMD_FETCHRO)
3068 #define G_FW_EQ_ETH_CMD_FETCHRO(x) \
3069 (((x) >> S_FW_EQ_ETH_CMD_FETCHRO) & M_FW_EQ_ETH_CMD_FETCHRO)
3070 #define F_FW_EQ_ETH_CMD_FETCHRO V_FW_EQ_ETH_CMD_FETCHRO(1U)
3072 #define S_FW_EQ_ETH_CMD_HOSTFCMODE 20
3073 #define M_FW_EQ_ETH_CMD_HOSTFCMODE 0x3
3074 #define V_FW_EQ_ETH_CMD_HOSTFCMODE(x) ((x) << S_FW_EQ_ETH_CMD_HOSTFCMODE)
3075 #define G_FW_EQ_ETH_CMD_HOSTFCMODE(x) \
3076 (((x) >> S_FW_EQ_ETH_CMD_HOSTFCMODE) & M_FW_EQ_ETH_CMD_HOSTFCMODE)
3078 #define S_FW_EQ_ETH_CMD_CPRIO 19
3079 #define M_FW_EQ_ETH_CMD_CPRIO 0x1
3080 #define V_FW_EQ_ETH_CMD_CPRIO(x) ((x) << S_FW_EQ_ETH_CMD_CPRIO)
3081 #define G_FW_EQ_ETH_CMD_CPRIO(x) \
3082 (((x) >> S_FW_EQ_ETH_CMD_CPRIO) & M_FW_EQ_ETH_CMD_CPRIO)
3083 #define F_FW_EQ_ETH_CMD_CPRIO V_FW_EQ_ETH_CMD_CPRIO(1U)
3085 #define S_FW_EQ_ETH_CMD_ONCHIP 18
3086 #define M_FW_EQ_ETH_CMD_ONCHIP 0x1
3087 #define V_FW_EQ_ETH_CMD_ONCHIP(x) ((x) << S_FW_EQ_ETH_CMD_ONCHIP)
3088 #define G_FW_EQ_ETH_CMD_ONCHIP(x) \
3089 (((x) >> S_FW_EQ_ETH_CMD_ONCHIP) & M_FW_EQ_ETH_CMD_ONCHIP)
3090 #define F_FW_EQ_ETH_CMD_ONCHIP V_FW_EQ_ETH_CMD_ONCHIP(1U)
3092 #define S_FW_EQ_ETH_CMD_PCIECHN 16
3093 #define M_FW_EQ_ETH_CMD_PCIECHN 0x3
3094 #define V_FW_EQ_ETH_CMD_PCIECHN(x) ((x) << S_FW_EQ_ETH_CMD_PCIECHN)
3095 #define G_FW_EQ_ETH_CMD_PCIECHN(x) \
3096 (((x) >> S_FW_EQ_ETH_CMD_PCIECHN) & M_FW_EQ_ETH_CMD_PCIECHN)
3098 #define S_FW_EQ_ETH_CMD_IQID 0
3099 #define M_FW_EQ_ETH_CMD_IQID 0xffff
3100 #define V_FW_EQ_ETH_CMD_IQID(x) ((x) << S_FW_EQ_ETH_CMD_IQID)
3101 #define G_FW_EQ_ETH_CMD_IQID(x) \
3102 (((x) >> S_FW_EQ_ETH_CMD_IQID) & M_FW_EQ_ETH_CMD_IQID)
3104 #define S_FW_EQ_ETH_CMD_DCAEN 31
3105 #define M_FW_EQ_ETH_CMD_DCAEN 0x1
3106 #define V_FW_EQ_ETH_CMD_DCAEN(x) ((x) << S_FW_EQ_ETH_CMD_DCAEN)
3107 #define G_FW_EQ_ETH_CMD_DCAEN(x) \
3108 (((x) >> S_FW_EQ_ETH_CMD_DCAEN) & M_FW_EQ_ETH_CMD_DCAEN)
3109 #define F_FW_EQ_ETH_CMD_DCAEN V_FW_EQ_ETH_CMD_DCAEN(1U)
3111 #define S_FW_EQ_ETH_CMD_DCACPU 26
3112 #define M_FW_EQ_ETH_CMD_DCACPU 0x1f
3113 #define V_FW_EQ_ETH_CMD_DCACPU(x) ((x) << S_FW_EQ_ETH_CMD_DCACPU)
3114 #define G_FW_EQ_ETH_CMD_DCACPU(x) \
3115 (((x) >> S_FW_EQ_ETH_CMD_DCACPU) & M_FW_EQ_ETH_CMD_DCACPU)
3117 #define S_FW_EQ_ETH_CMD_FBMIN 23
3118 #define M_FW_EQ_ETH_CMD_FBMIN 0x7
3119 #define V_FW_EQ_ETH_CMD_FBMIN(x) ((x) << S_FW_EQ_ETH_CMD_FBMIN)
3120 #define G_FW_EQ_ETH_CMD_FBMIN(x) \
3121 (((x) >> S_FW_EQ_ETH_CMD_FBMIN) & M_FW_EQ_ETH_CMD_FBMIN)
3123 #define S_FW_EQ_ETH_CMD_FBMAX 20
3124 #define M_FW_EQ_ETH_CMD_FBMAX 0x7
3125 #define V_FW_EQ_ETH_CMD_FBMAX(x) ((x) << S_FW_EQ_ETH_CMD_FBMAX)
3126 #define G_FW_EQ_ETH_CMD_FBMAX(x) \
3127 (((x) >> S_FW_EQ_ETH_CMD_FBMAX) & M_FW_EQ_ETH_CMD_FBMAX)
3129 #define S_FW_EQ_ETH_CMD_CIDXFTHRESHO 19
3130 #define M_FW_EQ_ETH_CMD_CIDXFTHRESHO 0x1
3131 #define V_FW_EQ_ETH_CMD_CIDXFTHRESHO(x) ((x) << S_FW_EQ_ETH_CMD_CIDXFTHRESHO)
3132 #define G_FW_EQ_ETH_CMD_CIDXFTHRESHO(x) \
3133 (((x) >> S_FW_EQ_ETH_CMD_CIDXFTHRESHO) & M_FW_EQ_ETH_CMD_CIDXFTHRESHO)
3134 #define F_FW_EQ_ETH_CMD_CIDXFTHRESHO V_FW_EQ_ETH_CMD_CIDXFTHRESHO(1U)
3136 #define S_FW_EQ_ETH_CMD_CIDXFTHRESH 16
3137 #define M_FW_EQ_ETH_CMD_CIDXFTHRESH 0x7
3138 #define V_FW_EQ_ETH_CMD_CIDXFTHRESH(x) ((x) << S_FW_EQ_ETH_CMD_CIDXFTHRESH)
3139 #define G_FW_EQ_ETH_CMD_CIDXFTHRESH(x) \
3140 (((x) >> S_FW_EQ_ETH_CMD_CIDXFTHRESH) & M_FW_EQ_ETH_CMD_CIDXFTHRESH)
3142 #define S_FW_EQ_ETH_CMD_EQSIZE 0
3143 #define M_FW_EQ_ETH_CMD_EQSIZE 0xffff
3144 #define V_FW_EQ_ETH_CMD_EQSIZE(x) ((x) << S_FW_EQ_ETH_CMD_EQSIZE)
3145 #define G_FW_EQ_ETH_CMD_EQSIZE(x) \
3146 (((x) >> S_FW_EQ_ETH_CMD_EQSIZE) & M_FW_EQ_ETH_CMD_EQSIZE)
3148 #define S_FW_EQ_ETH_CMD_VIID 16
3149 #define M_FW_EQ_ETH_CMD_VIID 0xfff
3150 #define V_FW_EQ_ETH_CMD_VIID(x) ((x) << S_FW_EQ_ETH_CMD_VIID)
3151 #define G_FW_EQ_ETH_CMD_VIID(x) \
3152 (((x) >> S_FW_EQ_ETH_CMD_VIID) & M_FW_EQ_ETH_CMD_VIID)
3154 struct fw_eq_ctrl_cmd {
3156 __be32 alloc_to_len16;
3157 __be32 cmpliqid_eqid;
3158 __be32 physeqid_pkd;
3159 __be32 fetchszm_to_iqid;
3160 __be32 dcaen_to_eqsize;
3164 #define S_FW_EQ_CTRL_CMD_PFN 8
3165 #define M_FW_EQ_CTRL_CMD_PFN 0x7
3166 #define V_FW_EQ_CTRL_CMD_PFN(x) ((x) << S_FW_EQ_CTRL_CMD_PFN)
3167 #define G_FW_EQ_CTRL_CMD_PFN(x) \
3168 (((x) >> S_FW_EQ_CTRL_CMD_PFN) & M_FW_EQ_CTRL_CMD_PFN)
3170 #define S_FW_EQ_CTRL_CMD_VFN 0
3171 #define M_FW_EQ_CTRL_CMD_VFN 0xff
3172 #define V_FW_EQ_CTRL_CMD_VFN(x) ((x) << S_FW_EQ_CTRL_CMD_VFN)
3173 #define G_FW_EQ_CTRL_CMD_VFN(x) \
3174 (((x) >> S_FW_EQ_CTRL_CMD_VFN) & M_FW_EQ_CTRL_CMD_VFN)
3176 #define S_FW_EQ_CTRL_CMD_ALLOC 31
3177 #define M_FW_EQ_CTRL_CMD_ALLOC 0x1
3178 #define V_FW_EQ_CTRL_CMD_ALLOC(x) ((x) << S_FW_EQ_CTRL_CMD_ALLOC)
3179 #define G_FW_EQ_CTRL_CMD_ALLOC(x) \
3180 (((x) >> S_FW_EQ_CTRL_CMD_ALLOC) & M_FW_EQ_CTRL_CMD_ALLOC)
3181 #define F_FW_EQ_CTRL_CMD_ALLOC V_FW_EQ_CTRL_CMD_ALLOC(1U)
3183 #define S_FW_EQ_CTRL_CMD_FREE 30
3184 #define M_FW_EQ_CTRL_CMD_FREE 0x1
3185 #define V_FW_EQ_CTRL_CMD_FREE(x) ((x) << S_FW_EQ_CTRL_CMD_FREE)
3186 #define G_FW_EQ_CTRL_CMD_FREE(x) \
3187 (((x) >> S_FW_EQ_CTRL_CMD_FREE) & M_FW_EQ_CTRL_CMD_FREE)
3188 #define F_FW_EQ_CTRL_CMD_FREE V_FW_EQ_CTRL_CMD_FREE(1U)
3190 #define S_FW_EQ_CTRL_CMD_MODIFY 29
3191 #define M_FW_EQ_CTRL_CMD_MODIFY 0x1
3192 #define V_FW_EQ_CTRL_CMD_MODIFY(x) ((x) << S_FW_EQ_CTRL_CMD_MODIFY)
3193 #define G_FW_EQ_CTRL_CMD_MODIFY(x) \
3194 (((x) >> S_FW_EQ_CTRL_CMD_MODIFY) & M_FW_EQ_CTRL_CMD_MODIFY)
3195 #define F_FW_EQ_CTRL_CMD_MODIFY V_FW_EQ_CTRL_CMD_MODIFY(1U)
3197 #define S_FW_EQ_CTRL_CMD_EQSTART 28
3198 #define M_FW_EQ_CTRL_CMD_EQSTART 0x1
3199 #define V_FW_EQ_CTRL_CMD_EQSTART(x) ((x) << S_FW_EQ_CTRL_CMD_EQSTART)
3200 #define G_FW_EQ_CTRL_CMD_EQSTART(x) \
3201 (((x) >> S_FW_EQ_CTRL_CMD_EQSTART) & M_FW_EQ_CTRL_CMD_EQSTART)
3202 #define F_FW_EQ_CTRL_CMD_EQSTART V_FW_EQ_CTRL_CMD_EQSTART(1U)
3204 #define S_FW_EQ_CTRL_CMD_EQSTOP 27
3205 #define M_FW_EQ_CTRL_CMD_EQSTOP 0x1
3206 #define V_FW_EQ_CTRL_CMD_EQSTOP(x) ((x) << S_FW_EQ_CTRL_CMD_EQSTOP)
3207 #define G_FW_EQ_CTRL_CMD_EQSTOP(x) \
3208 (((x) >> S_FW_EQ_CTRL_CMD_EQSTOP) & M_FW_EQ_CTRL_CMD_EQSTOP)
3209 #define F_FW_EQ_CTRL_CMD_EQSTOP V_FW_EQ_CTRL_CMD_EQSTOP(1U)
3211 #define S_FW_EQ_CTRL_CMD_CMPLIQID 20
3212 #define M_FW_EQ_CTRL_CMD_CMPLIQID 0xfff
3213 #define V_FW_EQ_CTRL_CMD_CMPLIQID(x) ((x) << S_FW_EQ_CTRL_CMD_CMPLIQID)
3214 #define G_FW_EQ_CTRL_CMD_CMPLIQID(x) \
3215 (((x) >> S_FW_EQ_CTRL_CMD_CMPLIQID) & M_FW_EQ_CTRL_CMD_CMPLIQID)
3217 #define S_FW_EQ_CTRL_CMD_EQID 0
3218 #define M_FW_EQ_CTRL_CMD_EQID 0xfffff
3219 #define V_FW_EQ_CTRL_CMD_EQID(x) ((x) << S_FW_EQ_CTRL_CMD_EQID)
3220 #define G_FW_EQ_CTRL_CMD_EQID(x) \
3221 (((x) >> S_FW_EQ_CTRL_CMD_EQID) & M_FW_EQ_CTRL_CMD_EQID)
3223 #define S_FW_EQ_CTRL_CMD_PHYSEQID 0
3224 #define M_FW_EQ_CTRL_CMD_PHYSEQID 0xfffff
3225 #define V_FW_EQ_CTRL_CMD_PHYSEQID(x) ((x) << S_FW_EQ_CTRL_CMD_PHYSEQID)
3226 #define G_FW_EQ_CTRL_CMD_PHYSEQID(x) \
3227 (((x) >> S_FW_EQ_CTRL_CMD_PHYSEQID) & M_FW_EQ_CTRL_CMD_PHYSEQID)
3229 #define S_FW_EQ_CTRL_CMD_FETCHSZM 26
3230 #define M_FW_EQ_CTRL_CMD_FETCHSZM 0x1
3231 #define V_FW_EQ_CTRL_CMD_FETCHSZM(x) ((x) << S_FW_EQ_CTRL_CMD_FETCHSZM)
3232 #define G_FW_EQ_CTRL_CMD_FETCHSZM(x) \
3233 (((x) >> S_FW_EQ_CTRL_CMD_FETCHSZM) & M_FW_EQ_CTRL_CMD_FETCHSZM)
3234 #define F_FW_EQ_CTRL_CMD_FETCHSZM V_FW_EQ_CTRL_CMD_FETCHSZM(1U)
3236 #define S_FW_EQ_CTRL_CMD_STATUSPGNS 25
3237 #define M_FW_EQ_CTRL_CMD_STATUSPGNS 0x1
3238 #define V_FW_EQ_CTRL_CMD_STATUSPGNS(x) ((x) << S_FW_EQ_CTRL_CMD_STATUSPGNS)
3239 #define G_FW_EQ_CTRL_CMD_STATUSPGNS(x) \
3240 (((x) >> S_FW_EQ_CTRL_CMD_STATUSPGNS) & M_FW_EQ_CTRL_CMD_STATUSPGNS)
3241 #define F_FW_EQ_CTRL_CMD_STATUSPGNS V_FW_EQ_CTRL_CMD_STATUSPGNS(1U)
3243 #define S_FW_EQ_CTRL_CMD_STATUSPGRO 24
3244 #define M_FW_EQ_CTRL_CMD_STATUSPGRO 0x1
3245 #define V_FW_EQ_CTRL_CMD_STATUSPGRO(x) ((x) << S_FW_EQ_CTRL_CMD_STATUSPGRO)
3246 #define G_FW_EQ_CTRL_CMD_STATUSPGRO(x) \
3247 (((x) >> S_FW_EQ_CTRL_CMD_STATUSPGRO) & M_FW_EQ_CTRL_CMD_STATUSPGRO)
3248 #define F_FW_EQ_CTRL_CMD_STATUSPGRO V_FW_EQ_CTRL_CMD_STATUSPGRO(1U)
3250 #define S_FW_EQ_CTRL_CMD_FETCHNS 23
3251 #define M_FW_EQ_CTRL_CMD_FETCHNS 0x1
3252 #define V_FW_EQ_CTRL_CMD_FETCHNS(x) ((x) << S_FW_EQ_CTRL_CMD_FETCHNS)
3253 #define G_FW_EQ_CTRL_CMD_FETCHNS(x) \
3254 (((x) >> S_FW_EQ_CTRL_CMD_FETCHNS) & M_FW_EQ_CTRL_CMD_FETCHNS)
3255 #define F_FW_EQ_CTRL_CMD_FETCHNS V_FW_EQ_CTRL_CMD_FETCHNS(1U)
3257 #define S_FW_EQ_CTRL_CMD_FETCHRO 22
3258 #define M_FW_EQ_CTRL_CMD_FETCHRO 0x1
3259 #define V_FW_EQ_CTRL_CMD_FETCHRO(x) ((x) << S_FW_EQ_CTRL_CMD_FETCHRO)
3260 #define G_FW_EQ_CTRL_CMD_FETCHRO(x) \
3261 (((x) >> S_FW_EQ_CTRL_CMD_FETCHRO) & M_FW_EQ_CTRL_CMD_FETCHRO)
3262 #define F_FW_EQ_CTRL_CMD_FETCHRO V_FW_EQ_CTRL_CMD_FETCHRO(1U)
3264 #define S_FW_EQ_CTRL_CMD_HOSTFCMODE 20
3265 #define M_FW_EQ_CTRL_CMD_HOSTFCMODE 0x3
3266 #define V_FW_EQ_CTRL_CMD_HOSTFCMODE(x) ((x) << S_FW_EQ_CTRL_CMD_HOSTFCMODE)
3267 #define G_FW_EQ_CTRL_CMD_HOSTFCMODE(x) \
3268 (((x) >> S_FW_EQ_CTRL_CMD_HOSTFCMODE) & M_FW_EQ_CTRL_CMD_HOSTFCMODE)
3270 #define S_FW_EQ_CTRL_CMD_CPRIO 19
3271 #define M_FW_EQ_CTRL_CMD_CPRIO 0x1
3272 #define V_FW_EQ_CTRL_CMD_CPRIO(x) ((x) << S_FW_EQ_CTRL_CMD_CPRIO)
3273 #define G_FW_EQ_CTRL_CMD_CPRIO(x) \
3274 (((x) >> S_FW_EQ_CTRL_CMD_CPRIO) & M_FW_EQ_CTRL_CMD_CPRIO)
3275 #define F_FW_EQ_CTRL_CMD_CPRIO V_FW_EQ_CTRL_CMD_CPRIO(1U)
3277 #define S_FW_EQ_CTRL_CMD_ONCHIP 18
3278 #define M_FW_EQ_CTRL_CMD_ONCHIP 0x1
3279 #define V_FW_EQ_CTRL_CMD_ONCHIP(x) ((x) << S_FW_EQ_CTRL_CMD_ONCHIP)
3280 #define G_FW_EQ_CTRL_CMD_ONCHIP(x) \
3281 (((x) >> S_FW_EQ_CTRL_CMD_ONCHIP) & M_FW_EQ_CTRL_CMD_ONCHIP)
3282 #define F_FW_EQ_CTRL_CMD_ONCHIP V_FW_EQ_CTRL_CMD_ONCHIP(1U)
3284 #define S_FW_EQ_CTRL_CMD_PCIECHN 16
3285 #define M_FW_EQ_CTRL_CMD_PCIECHN 0x3
3286 #define V_FW_EQ_CTRL_CMD_PCIECHN(x) ((x) << S_FW_EQ_CTRL_CMD_PCIECHN)
3287 #define G_FW_EQ_CTRL_CMD_PCIECHN(x) \
3288 (((x) >> S_FW_EQ_CTRL_CMD_PCIECHN) & M_FW_EQ_CTRL_CMD_PCIECHN)
3290 #define S_FW_EQ_CTRL_CMD_IQID 0
3291 #define M_FW_EQ_CTRL_CMD_IQID 0xffff
3292 #define V_FW_EQ_CTRL_CMD_IQID(x) ((x) << S_FW_EQ_CTRL_CMD_IQID)
3293 #define G_FW_EQ_CTRL_CMD_IQID(x) \
3294 (((x) >> S_FW_EQ_CTRL_CMD_IQID) & M_FW_EQ_CTRL_CMD_IQID)
3296 #define S_FW_EQ_CTRL_CMD_DCAEN 31
3297 #define M_FW_EQ_CTRL_CMD_DCAEN 0x1
3298 #define V_FW_EQ_CTRL_CMD_DCAEN(x) ((x) << S_FW_EQ_CTRL_CMD_DCAEN)
3299 #define G_FW_EQ_CTRL_CMD_DCAEN(x) \
3300 (((x) >> S_FW_EQ_CTRL_CMD_DCAEN) & M_FW_EQ_CTRL_CMD_DCAEN)
3301 #define F_FW_EQ_CTRL_CMD_DCAEN V_FW_EQ_CTRL_CMD_DCAEN(1U)
3303 #define S_FW_EQ_CTRL_CMD_DCACPU 26
3304 #define M_FW_EQ_CTRL_CMD_DCACPU 0x1f
3305 #define V_FW_EQ_CTRL_CMD_DCACPU(x) ((x) << S_FW_EQ_CTRL_CMD_DCACPU)
3306 #define G_FW_EQ_CTRL_CMD_DCACPU(x) \
3307 (((x) >> S_FW_EQ_CTRL_CMD_DCACPU) & M_FW_EQ_CTRL_CMD_DCACPU)
3309 #define S_FW_EQ_CTRL_CMD_FBMIN 23
3310 #define M_FW_EQ_CTRL_CMD_FBMIN 0x7
3311 #define V_FW_EQ_CTRL_CMD_FBMIN(x) ((x) << S_FW_EQ_CTRL_CMD_FBMIN)
3312 #define G_FW_EQ_CTRL_CMD_FBMIN(x) \
3313 (((x) >> S_FW_EQ_CTRL_CMD_FBMIN) & M_FW_EQ_CTRL_CMD_FBMIN)
3315 #define S_FW_EQ_CTRL_CMD_FBMAX 20
3316 #define M_FW_EQ_CTRL_CMD_FBMAX 0x7
3317 #define V_FW_EQ_CTRL_CMD_FBMAX(x) ((x) << S_FW_EQ_CTRL_CMD_FBMAX)
3318 #define G_FW_EQ_CTRL_CMD_FBMAX(x) \
3319 (((x) >> S_FW_EQ_CTRL_CMD_FBMAX) & M_FW_EQ_CTRL_CMD_FBMAX)
3321 #define S_FW_EQ_CTRL_CMD_CIDXFTHRESHO 19
3322 #define M_FW_EQ_CTRL_CMD_CIDXFTHRESHO 0x1
3323 #define V_FW_EQ_CTRL_CMD_CIDXFTHRESHO(x) \
3324 ((x) << S_FW_EQ_CTRL_CMD_CIDXFTHRESHO)
3325 #define G_FW_EQ_CTRL_CMD_CIDXFTHRESHO(x) \
3326 (((x) >> S_FW_EQ_CTRL_CMD_CIDXFTHRESHO) & M_FW_EQ_CTRL_CMD_CIDXFTHRESHO)
3327 #define F_FW_EQ_CTRL_CMD_CIDXFTHRESHO V_FW_EQ_CTRL_CMD_CIDXFTHRESHO(1U)
3329 #define S_FW_EQ_CTRL_CMD_CIDXFTHRESH 16
3330 #define M_FW_EQ_CTRL_CMD_CIDXFTHRESH 0x7
3331 #define V_FW_EQ_CTRL_CMD_CIDXFTHRESH(x) ((x) << S_FW_EQ_CTRL_CMD_CIDXFTHRESH)
3332 #define G_FW_EQ_CTRL_CMD_CIDXFTHRESH(x) \
3333 (((x) >> S_FW_EQ_CTRL_CMD_CIDXFTHRESH) & M_FW_EQ_CTRL_CMD_CIDXFTHRESH)
3335 #define S_FW_EQ_CTRL_CMD_EQSIZE 0
3336 #define M_FW_EQ_CTRL_CMD_EQSIZE 0xffff
3337 #define V_FW_EQ_CTRL_CMD_EQSIZE(x) ((x) << S_FW_EQ_CTRL_CMD_EQSIZE)
3338 #define G_FW_EQ_CTRL_CMD_EQSIZE(x) \
3339 (((x) >> S_FW_EQ_CTRL_CMD_EQSIZE) & M_FW_EQ_CTRL_CMD_EQSIZE)
3341 struct fw_eq_ofld_cmd {
3343 __be32 alloc_to_len16;
3345 __be32 physeqid_pkd;
3346 __be32 fetchszm_to_iqid;
3347 __be32 dcaen_to_eqsize;
3351 #define S_FW_EQ_OFLD_CMD_PFN 8
3352 #define M_FW_EQ_OFLD_CMD_PFN 0x7
3353 #define V_FW_EQ_OFLD_CMD_PFN(x) ((x) << S_FW_EQ_OFLD_CMD_PFN)
3354 #define G_FW_EQ_OFLD_CMD_PFN(x) \
3355 (((x) >> S_FW_EQ_OFLD_CMD_PFN) & M_FW_EQ_OFLD_CMD_PFN)
3357 #define S_FW_EQ_OFLD_CMD_VFN 0
3358 #define M_FW_EQ_OFLD_CMD_VFN 0xff
3359 #define V_FW_EQ_OFLD_CMD_VFN(x) ((x) << S_FW_EQ_OFLD_CMD_VFN)
3360 #define G_FW_EQ_OFLD_CMD_VFN(x) \
3361 (((x) >> S_FW_EQ_OFLD_CMD_VFN) & M_FW_EQ_OFLD_CMD_VFN)
3363 #define S_FW_EQ_OFLD_CMD_ALLOC 31
3364 #define M_FW_EQ_OFLD_CMD_ALLOC 0x1
3365 #define V_FW_EQ_OFLD_CMD_ALLOC(x) ((x) << S_FW_EQ_OFLD_CMD_ALLOC)
3366 #define G_FW_EQ_OFLD_CMD_ALLOC(x) \
3367 (((x) >> S_FW_EQ_OFLD_CMD_ALLOC) & M_FW_EQ_OFLD_CMD_ALLOC)
3368 #define F_FW_EQ_OFLD_CMD_ALLOC V_FW_EQ_OFLD_CMD_ALLOC(1U)
3370 #define S_FW_EQ_OFLD_CMD_FREE 30
3371 #define M_FW_EQ_OFLD_CMD_FREE 0x1
3372 #define V_FW_EQ_OFLD_CMD_FREE(x) ((x) << S_FW_EQ_OFLD_CMD_FREE)
3373 #define G_FW_EQ_OFLD_CMD_FREE(x) \
3374 (((x) >> S_FW_EQ_OFLD_CMD_FREE) & M_FW_EQ_OFLD_CMD_FREE)
3375 #define F_FW_EQ_OFLD_CMD_FREE V_FW_EQ_OFLD_CMD_FREE(1U)
3377 #define S_FW_EQ_OFLD_CMD_MODIFY 29
3378 #define M_FW_EQ_OFLD_CMD_MODIFY 0x1
3379 #define V_FW_EQ_OFLD_CMD_MODIFY(x) ((x) << S_FW_EQ_OFLD_CMD_MODIFY)
3380 #define G_FW_EQ_OFLD_CMD_MODIFY(x) \
3381 (((x) >> S_FW_EQ_OFLD_CMD_MODIFY) & M_FW_EQ_OFLD_CMD_MODIFY)
3382 #define F_FW_EQ_OFLD_CMD_MODIFY V_FW_EQ_OFLD_CMD_MODIFY(1U)
3384 #define S_FW_EQ_OFLD_CMD_EQSTART 28
3385 #define M_FW_EQ_OFLD_CMD_EQSTART 0x1
3386 #define V_FW_EQ_OFLD_CMD_EQSTART(x) ((x) << S_FW_EQ_OFLD_CMD_EQSTART)
3387 #define G_FW_EQ_OFLD_CMD_EQSTART(x) \
3388 (((x) >> S_FW_EQ_OFLD_CMD_EQSTART) & M_FW_EQ_OFLD_CMD_EQSTART)
3389 #define F_FW_EQ_OFLD_CMD_EQSTART V_FW_EQ_OFLD_CMD_EQSTART(1U)
3391 #define S_FW_EQ_OFLD_CMD_EQSTOP 27
3392 #define M_FW_EQ_OFLD_CMD_EQSTOP 0x1
3393 #define V_FW_EQ_OFLD_CMD_EQSTOP(x) ((x) << S_FW_EQ_OFLD_CMD_EQSTOP)
3394 #define G_FW_EQ_OFLD_CMD_EQSTOP(x) \
3395 (((x) >> S_FW_EQ_OFLD_CMD_EQSTOP) & M_FW_EQ_OFLD_CMD_EQSTOP)
3396 #define F_FW_EQ_OFLD_CMD_EQSTOP V_FW_EQ_OFLD_CMD_EQSTOP(1U)
3398 #define S_FW_EQ_OFLD_CMD_EQID 0
3399 #define M_FW_EQ_OFLD_CMD_EQID 0xfffff
3400 #define V_FW_EQ_OFLD_CMD_EQID(x) ((x) << S_FW_EQ_OFLD_CMD_EQID)
3401 #define G_FW_EQ_OFLD_CMD_EQID(x) \
3402 (((x) >> S_FW_EQ_OFLD_CMD_EQID) & M_FW_EQ_OFLD_CMD_EQID)
3404 #define S_FW_EQ_OFLD_CMD_PHYSEQID 0
3405 #define M_FW_EQ_OFLD_CMD_PHYSEQID 0xfffff
3406 #define V_FW_EQ_OFLD_CMD_PHYSEQID(x) ((x) << S_FW_EQ_OFLD_CMD_PHYSEQID)
3407 #define G_FW_EQ_OFLD_CMD_PHYSEQID(x) \
3408 (((x) >> S_FW_EQ_OFLD_CMD_PHYSEQID) & M_FW_EQ_OFLD_CMD_PHYSEQID)
3410 #define S_FW_EQ_OFLD_CMD_FETCHSZM 26
3411 #define M_FW_EQ_OFLD_CMD_FETCHSZM 0x1
3412 #define V_FW_EQ_OFLD_CMD_FETCHSZM(x) ((x) << S_FW_EQ_OFLD_CMD_FETCHSZM)
3413 #define G_FW_EQ_OFLD_CMD_FETCHSZM(x) \
3414 (((x) >> S_FW_EQ_OFLD_CMD_FETCHSZM) & M_FW_EQ_OFLD_CMD_FETCHSZM)
3415 #define F_FW_EQ_OFLD_CMD_FETCHSZM V_FW_EQ_OFLD_CMD_FETCHSZM(1U)
3417 #define S_FW_EQ_OFLD_CMD_STATUSPGNS 25
3418 #define M_FW_EQ_OFLD_CMD_STATUSPGNS 0x1
3419 #define V_FW_EQ_OFLD_CMD_STATUSPGNS(x) ((x) << S_FW_EQ_OFLD_CMD_STATUSPGNS)
3420 #define G_FW_EQ_OFLD_CMD_STATUSPGNS(x) \
3421 (((x) >> S_FW_EQ_OFLD_CMD_STATUSPGNS) & M_FW_EQ_OFLD_CMD_STATUSPGNS)
3422 #define F_FW_EQ_OFLD_CMD_STATUSPGNS V_FW_EQ_OFLD_CMD_STATUSPGNS(1U)
3424 #define S_FW_EQ_OFLD_CMD_STATUSPGRO 24
3425 #define M_FW_EQ_OFLD_CMD_STATUSPGRO 0x1
3426 #define V_FW_EQ_OFLD_CMD_STATUSPGRO(x) ((x) << S_FW_EQ_OFLD_CMD_STATUSPGRO)
3427 #define G_FW_EQ_OFLD_CMD_STATUSPGRO(x) \
3428 (((x) >> S_FW_EQ_OFLD_CMD_STATUSPGRO) & M_FW_EQ_OFLD_CMD_STATUSPGRO)
3429 #define F_FW_EQ_OFLD_CMD_STATUSPGRO V_FW_EQ_OFLD_CMD_STATUSPGRO(1U)
3431 #define S_FW_EQ_OFLD_CMD_FETCHNS 23
3432 #define M_FW_EQ_OFLD_CMD_FETCHNS 0x1
3433 #define V_FW_EQ_OFLD_CMD_FETCHNS(x) ((x) << S_FW_EQ_OFLD_CMD_FETCHNS)
3434 #define G_FW_EQ_OFLD_CMD_FETCHNS(x) \
3435 (((x) >> S_FW_EQ_OFLD_CMD_FETCHNS) & M_FW_EQ_OFLD_CMD_FETCHNS)
3436 #define F_FW_EQ_OFLD_CMD_FETCHNS V_FW_EQ_OFLD_CMD_FETCHNS(1U)
3438 #define S_FW_EQ_OFLD_CMD_FETCHRO 22
3439 #define M_FW_EQ_OFLD_CMD_FETCHRO 0x1
3440 #define V_FW_EQ_OFLD_CMD_FETCHRO(x) ((x) << S_FW_EQ_OFLD_CMD_FETCHRO)
3441 #define G_FW_EQ_OFLD_CMD_FETCHRO(x) \
3442 (((x) >> S_FW_EQ_OFLD_CMD_FETCHRO) & M_FW_EQ_OFLD_CMD_FETCHRO)
3443 #define F_FW_EQ_OFLD_CMD_FETCHRO V_FW_EQ_OFLD_CMD_FETCHRO(1U)
3445 #define S_FW_EQ_OFLD_CMD_HOSTFCMODE 20
3446 #define M_FW_EQ_OFLD_CMD_HOSTFCMODE 0x3
3447 #define V_FW_EQ_OFLD_CMD_HOSTFCMODE(x) ((x) << S_FW_EQ_OFLD_CMD_HOSTFCMODE)
3448 #define G_FW_EQ_OFLD_CMD_HOSTFCMODE(x) \
3449 (((x) >> S_FW_EQ_OFLD_CMD_HOSTFCMODE) & M_FW_EQ_OFLD_CMD_HOSTFCMODE)
3451 #define S_FW_EQ_OFLD_CMD_CPRIO 19
3452 #define M_FW_EQ_OFLD_CMD_CPRIO 0x1
3453 #define V_FW_EQ_OFLD_CMD_CPRIO(x) ((x) << S_FW_EQ_OFLD_CMD_CPRIO)
3454 #define G_FW_EQ_OFLD_CMD_CPRIO(x) \
3455 (((x) >> S_FW_EQ_OFLD_CMD_CPRIO) & M_FW_EQ_OFLD_CMD_CPRIO)
3456 #define F_FW_EQ_OFLD_CMD_CPRIO V_FW_EQ_OFLD_CMD_CPRIO(1U)
3458 #define S_FW_EQ_OFLD_CMD_ONCHIP 18
3459 #define M_FW_EQ_OFLD_CMD_ONCHIP 0x1
3460 #define V_FW_EQ_OFLD_CMD_ONCHIP(x) ((x) << S_FW_EQ_OFLD_CMD_ONCHIP)
3461 #define G_FW_EQ_OFLD_CMD_ONCHIP(x) \
3462 (((x) >> S_FW_EQ_OFLD_CMD_ONCHIP) & M_FW_EQ_OFLD_CMD_ONCHIP)
3463 #define F_FW_EQ_OFLD_CMD_ONCHIP V_FW_EQ_OFLD_CMD_ONCHIP(1U)
3465 #define S_FW_EQ_OFLD_CMD_PCIECHN 16
3466 #define M_FW_EQ_OFLD_CMD_PCIECHN 0x3
3467 #define V_FW_EQ_OFLD_CMD_PCIECHN(x) ((x) << S_FW_EQ_OFLD_CMD_PCIECHN)
3468 #define G_FW_EQ_OFLD_CMD_PCIECHN(x) \
3469 (((x) >> S_FW_EQ_OFLD_CMD_PCIECHN) & M_FW_EQ_OFLD_CMD_PCIECHN)
3471 #define S_FW_EQ_OFLD_CMD_IQID 0
3472 #define M_FW_EQ_OFLD_CMD_IQID 0xffff
3473 #define V_FW_EQ_OFLD_CMD_IQID(x) ((x) << S_FW_EQ_OFLD_CMD_IQID)
3474 #define G_FW_EQ_OFLD_CMD_IQID(x) \
3475 (((x) >> S_FW_EQ_OFLD_CMD_IQID) & M_FW_EQ_OFLD_CMD_IQID)
3477 #define S_FW_EQ_OFLD_CMD_DCAEN 31
3478 #define M_FW_EQ_OFLD_CMD_DCAEN 0x1
3479 #define V_FW_EQ_OFLD_CMD_DCAEN(x) ((x) << S_FW_EQ_OFLD_CMD_DCAEN)
3480 #define G_FW_EQ_OFLD_CMD_DCAEN(x) \
3481 (((x) >> S_FW_EQ_OFLD_CMD_DCAEN) & M_FW_EQ_OFLD_CMD_DCAEN)
3482 #define F_FW_EQ_OFLD_CMD_DCAEN V_FW_EQ_OFLD_CMD_DCAEN(1U)
3484 #define S_FW_EQ_OFLD_CMD_DCACPU 26
3485 #define M_FW_EQ_OFLD_CMD_DCACPU 0x1f
3486 #define V_FW_EQ_OFLD_CMD_DCACPU(x) ((x) << S_FW_EQ_OFLD_CMD_DCACPU)
3487 #define G_FW_EQ_OFLD_CMD_DCACPU(x) \
3488 (((x) >> S_FW_EQ_OFLD_CMD_DCACPU) & M_FW_EQ_OFLD_CMD_DCACPU)
3490 #define S_FW_EQ_OFLD_CMD_FBMIN 23
3491 #define M_FW_EQ_OFLD_CMD_FBMIN 0x7
3492 #define V_FW_EQ_OFLD_CMD_FBMIN(x) ((x) << S_FW_EQ_OFLD_CMD_FBMIN)
3493 #define G_FW_EQ_OFLD_CMD_FBMIN(x) \
3494 (((x) >> S_FW_EQ_OFLD_CMD_FBMIN) & M_FW_EQ_OFLD_CMD_FBMIN)
3496 #define S_FW_EQ_OFLD_CMD_FBMAX 20
3497 #define M_FW_EQ_OFLD_CMD_FBMAX 0x7
3498 #define V_FW_EQ_OFLD_CMD_FBMAX(x) ((x) << S_FW_EQ_OFLD_CMD_FBMAX)
3499 #define G_FW_EQ_OFLD_CMD_FBMAX(x) \
3500 (((x) >> S_FW_EQ_OFLD_CMD_FBMAX) & M_FW_EQ_OFLD_CMD_FBMAX)
3502 #define S_FW_EQ_OFLD_CMD_CIDXFTHRESHO 19
3503 #define M_FW_EQ_OFLD_CMD_CIDXFTHRESHO 0x1
3504 #define V_FW_EQ_OFLD_CMD_CIDXFTHRESHO(x) \
3505 ((x) << S_FW_EQ_OFLD_CMD_CIDXFTHRESHO)
3506 #define G_FW_EQ_OFLD_CMD_CIDXFTHRESHO(x) \
3507 (((x) >> S_FW_EQ_OFLD_CMD_CIDXFTHRESHO) & M_FW_EQ_OFLD_CMD_CIDXFTHRESHO)
3508 #define F_FW_EQ_OFLD_CMD_CIDXFTHRESHO V_FW_EQ_OFLD_CMD_CIDXFTHRESHO(1U)
3510 #define S_FW_EQ_OFLD_CMD_CIDXFTHRESH 16
3511 #define M_FW_EQ_OFLD_CMD_CIDXFTHRESH 0x7
3512 #define V_FW_EQ_OFLD_CMD_CIDXFTHRESH(x) ((x) << S_FW_EQ_OFLD_CMD_CIDXFTHRESH)
3513 #define G_FW_EQ_OFLD_CMD_CIDXFTHRESH(x) \
3514 (((x) >> S_FW_EQ_OFLD_CMD_CIDXFTHRESH) & M_FW_EQ_OFLD_CMD_CIDXFTHRESH)
3516 #define S_FW_EQ_OFLD_CMD_EQSIZE 0
3517 #define M_FW_EQ_OFLD_CMD_EQSIZE 0xffff
3518 #define V_FW_EQ_OFLD_CMD_EQSIZE(x) ((x) << S_FW_EQ_OFLD_CMD_EQSIZE)
3519 #define G_FW_EQ_OFLD_CMD_EQSIZE(x) \
3520 (((x) >> S_FW_EQ_OFLD_CMD_EQSIZE) & M_FW_EQ_OFLD_CMD_EQSIZE)
3521 /* Macros for VIID parsing:
3522 VIID - [10:8] PFN, [7] VI Valid, [6:0] VI number */
3523 #define S_FW_VIID_PFN 8
3524 #define M_FW_VIID_PFN 0x7
3525 #define V_FW_VIID_PFN(x) ((x) << S_FW_VIID_PFN)
3526 #define G_FW_VIID_PFN(x) (((x) >> S_FW_VIID_PFN) & M_FW_VIID_PFN)
3528 #define S_FW_VIID_VIVLD 7
3529 #define M_FW_VIID_VIVLD 0x1
3530 #define V_FW_VIID_VIVLD(x) ((x) << S_FW_VIID_VIVLD)
3531 #define G_FW_VIID_VIVLD(x) (((x) >> S_FW_VIID_VIVLD) & M_FW_VIID_VIVLD)
3533 #define S_FW_VIID_VIN 0
3534 #define M_FW_VIID_VIN 0x7F
3535 #define V_FW_VIID_VIN(x) ((x) << S_FW_VIID_VIN)
3536 #define G_FW_VIID_VIN(x) (((x) >> S_FW_VIID_VIN) & M_FW_VIID_VIN)
3542 FW_VI_FUNC_OPENISCSI,
3543 FW_VI_FUNC_OPENFCOE,
3551 __be32 alloc_to_len16;
3552 __be16 type_to_viid;
3567 #define S_FW_VI_CMD_PFN 8
3568 #define M_FW_VI_CMD_PFN 0x7
3569 #define V_FW_VI_CMD_PFN(x) ((x) << S_FW_VI_CMD_PFN)
3570 #define G_FW_VI_CMD_PFN(x) (((x) >> S_FW_VI_CMD_PFN) & M_FW_VI_CMD_PFN)
3572 #define S_FW_VI_CMD_VFN 0
3573 #define M_FW_VI_CMD_VFN 0xff
3574 #define V_FW_VI_CMD_VFN(x) ((x) << S_FW_VI_CMD_VFN)
3575 #define G_FW_VI_CMD_VFN(x) (((x) >> S_FW_VI_CMD_VFN) & M_FW_VI_CMD_VFN)
3577 #define S_FW_VI_CMD_ALLOC 31
3578 #define M_FW_VI_CMD_ALLOC 0x1
3579 #define V_FW_VI_CMD_ALLOC(x) ((x) << S_FW_VI_CMD_ALLOC)
3580 #define G_FW_VI_CMD_ALLOC(x) \
3581 (((x) >> S_FW_VI_CMD_ALLOC) & M_FW_VI_CMD_ALLOC)
3582 #define F_FW_VI_CMD_ALLOC V_FW_VI_CMD_ALLOC(1U)
3584 #define S_FW_VI_CMD_FREE 30
3585 #define M_FW_VI_CMD_FREE 0x1
3586 #define V_FW_VI_CMD_FREE(x) ((x) << S_FW_VI_CMD_FREE)
3587 #define G_FW_VI_CMD_FREE(x) (((x) >> S_FW_VI_CMD_FREE) & M_FW_VI_CMD_FREE)
3588 #define F_FW_VI_CMD_FREE V_FW_VI_CMD_FREE(1U)
3590 #define S_FW_VI_CMD_TYPE 15
3591 #define M_FW_VI_CMD_TYPE 0x1
3592 #define V_FW_VI_CMD_TYPE(x) ((x) << S_FW_VI_CMD_TYPE)
3593 #define G_FW_VI_CMD_TYPE(x) (((x) >> S_FW_VI_CMD_TYPE) & M_FW_VI_CMD_TYPE)
3594 #define F_FW_VI_CMD_TYPE V_FW_VI_CMD_TYPE(1U)
3596 #define S_FW_VI_CMD_FUNC 12
3597 #define M_FW_VI_CMD_FUNC 0x7
3598 #define V_FW_VI_CMD_FUNC(x) ((x) << S_FW_VI_CMD_FUNC)
3599 #define G_FW_VI_CMD_FUNC(x) (((x) >> S_FW_VI_CMD_FUNC) & M_FW_VI_CMD_FUNC)
3601 #define S_FW_VI_CMD_VIID 0
3602 #define M_FW_VI_CMD_VIID 0xfff
3603 #define V_FW_VI_CMD_VIID(x) ((x) << S_FW_VI_CMD_VIID)
3604 #define G_FW_VI_CMD_VIID(x) (((x) >> S_FW_VI_CMD_VIID) & M_FW_VI_CMD_VIID)
3606 #define S_FW_VI_CMD_PORTID 4
3607 #define M_FW_VI_CMD_PORTID 0xf
3608 #define V_FW_VI_CMD_PORTID(x) ((x) << S_FW_VI_CMD_PORTID)
3609 #define G_FW_VI_CMD_PORTID(x) \
3610 (((x) >> S_FW_VI_CMD_PORTID) & M_FW_VI_CMD_PORTID)
3612 #define S_FW_VI_CMD_RSSSIZE 0
3613 #define M_FW_VI_CMD_RSSSIZE 0x7ff
3614 #define V_FW_VI_CMD_RSSSIZE(x) ((x) << S_FW_VI_CMD_RSSSIZE)
3615 #define G_FW_VI_CMD_RSSSIZE(x) \
3616 (((x) >> S_FW_VI_CMD_RSSSIZE) & M_FW_VI_CMD_RSSSIZE)
3618 #define S_FW_VI_CMD_IDSIIQ 0
3619 #define M_FW_VI_CMD_IDSIIQ 0x3ff
3620 #define V_FW_VI_CMD_IDSIIQ(x) ((x) << S_FW_VI_CMD_IDSIIQ)
3621 #define G_FW_VI_CMD_IDSIIQ(x) \
3622 (((x) >> S_FW_VI_CMD_IDSIIQ) & M_FW_VI_CMD_IDSIIQ)
3624 #define S_FW_VI_CMD_IDSEIQ 0
3625 #define M_FW_VI_CMD_IDSEIQ 0x3ff
3626 #define V_FW_VI_CMD_IDSEIQ(x) ((x) << S_FW_VI_CMD_IDSEIQ)
3627 #define G_FW_VI_CMD_IDSEIQ(x) \
3628 (((x) >> S_FW_VI_CMD_IDSEIQ) & M_FW_VI_CMD_IDSEIQ)
3630 /* Special VI_MAC command index ids */
3631 #define FW_VI_MAC_ADD_MAC 0x3FF
3632 #define FW_VI_MAC_ADD_PERSIST_MAC 0x3FE
3633 #define FW_VI_MAC_MAC_BASED_FREE 0x3FD
3634 #define FW_CLS_TCAM_NUM_ENTRIES 336
3636 enum fw_vi_mac_smac {
3637 FW_VI_MAC_MPS_TCAM_ENTRY,
3638 FW_VI_MAC_MPS_TCAM_ONLY,
3640 FW_VI_MAC_SMT_AND_MPSTCAM
3643 enum fw_vi_mac_result {
3644 FW_VI_MAC_R_SUCCESS,
3645 FW_VI_MAC_R_F_NONEXISTENT_NOMEM,
3646 FW_VI_MAC_R_SMAC_FAIL,
3647 FW_VI_MAC_R_F_ACL_CHECK
3650 struct fw_vi_mac_cmd {
3652 __be32 freemacs_to_len16;
3654 struct fw_vi_mac_exact {
3655 __be16 valid_to_idx;
3658 struct fw_vi_mac_hash {
3664 #define S_FW_VI_MAC_CMD_VIID 0
3665 #define M_FW_VI_MAC_CMD_VIID 0xfff
3666 #define V_FW_VI_MAC_CMD_VIID(x) ((x) << S_FW_VI_MAC_CMD_VIID)
3667 #define G_FW_VI_MAC_CMD_VIID(x) \
3668 (((x) >> S_FW_VI_MAC_CMD_VIID) & M_FW_VI_MAC_CMD_VIID)
3670 #define S_FW_VI_MAC_CMD_FREEMACS 31
3671 #define M_FW_VI_MAC_CMD_FREEMACS 0x1
3672 #define V_FW_VI_MAC_CMD_FREEMACS(x) ((x) << S_FW_VI_MAC_CMD_FREEMACS)
3673 #define G_FW_VI_MAC_CMD_FREEMACS(x) \
3674 (((x) >> S_FW_VI_MAC_CMD_FREEMACS) & M_FW_VI_MAC_CMD_FREEMACS)
3675 #define F_FW_VI_MAC_CMD_FREEMACS V_FW_VI_MAC_CMD_FREEMACS(1U)
3677 #define S_FW_VI_MAC_CMD_HASHVECEN 23
3678 #define M_FW_VI_MAC_CMD_HASHVECEN 0x1
3679 #define V_FW_VI_MAC_CMD_HASHVECEN(x) ((x) << S_FW_VI_MAC_CMD_HASHVECEN)
3680 #define G_FW_VI_MAC_CMD_HASHVECEN(x) \
3681 (((x) >> S_FW_VI_MAC_CMD_HASHVECEN) & M_FW_VI_MAC_CMD_HASHVECEN)
3682 #define F_FW_VI_MAC_CMD_HASHVECEN V_FW_VI_MAC_CMD_HASHVECEN(1U)
3684 #define S_FW_VI_MAC_CMD_HASHUNIEN 22
3685 #define M_FW_VI_MAC_CMD_HASHUNIEN 0x1
3686 #define V_FW_VI_MAC_CMD_HASHUNIEN(x) ((x) << S_FW_VI_MAC_CMD_HASHUNIEN)
3687 #define G_FW_VI_MAC_CMD_HASHUNIEN(x) \
3688 (((x) >> S_FW_VI_MAC_CMD_HASHUNIEN) & M_FW_VI_MAC_CMD_HASHUNIEN)
3689 #define F_FW_VI_MAC_CMD_HASHUNIEN V_FW_VI_MAC_CMD_HASHUNIEN(1U)
3691 #define S_FW_VI_MAC_CMD_VALID 15
3692 #define M_FW_VI_MAC_CMD_VALID 0x1
3693 #define V_FW_VI_MAC_CMD_VALID(x) ((x) << S_FW_VI_MAC_CMD_VALID)
3694 #define G_FW_VI_MAC_CMD_VALID(x) \
3695 (((x) >> S_FW_VI_MAC_CMD_VALID) & M_FW_VI_MAC_CMD_VALID)
3696 #define F_FW_VI_MAC_CMD_VALID V_FW_VI_MAC_CMD_VALID(1U)
3698 #define S_FW_VI_MAC_CMD_PRIO 12
3699 #define M_FW_VI_MAC_CMD_PRIO 0x7
3700 #define V_FW_VI_MAC_CMD_PRIO(x) ((x) << S_FW_VI_MAC_CMD_PRIO)
3701 #define G_FW_VI_MAC_CMD_PRIO(x) \
3702 (((x) >> S_FW_VI_MAC_CMD_PRIO) & M_FW_VI_MAC_CMD_PRIO)
3704 #define S_FW_VI_MAC_CMD_SMAC_RESULT 10
3705 #define M_FW_VI_MAC_CMD_SMAC_RESULT 0x3
3706 #define V_FW_VI_MAC_CMD_SMAC_RESULT(x) ((x) << S_FW_VI_MAC_CMD_SMAC_RESULT)
3707 #define G_FW_VI_MAC_CMD_SMAC_RESULT(x) \
3708 (((x) >> S_FW_VI_MAC_CMD_SMAC_RESULT) & M_FW_VI_MAC_CMD_SMAC_RESULT)
3710 #define S_FW_VI_MAC_CMD_IDX 0
3711 #define M_FW_VI_MAC_CMD_IDX 0x3ff
3712 #define V_FW_VI_MAC_CMD_IDX(x) ((x) << S_FW_VI_MAC_CMD_IDX)
3713 #define G_FW_VI_MAC_CMD_IDX(x) \
3714 (((x) >> S_FW_VI_MAC_CMD_IDX) & M_FW_VI_MAC_CMD_IDX)
3716 /* T4 max MTU supported */
3717 #define T4_MAX_MTU_SUPPORTED 9600
3718 #define FW_RXMODE_MTU_NO_CHG 65535
3720 struct fw_vi_rxmode_cmd {
3722 __be32 retval_len16;
3723 __be32 mtu_to_vlanexen;
3727 #define S_FW_VI_RXMODE_CMD_VIID 0
3728 #define M_FW_VI_RXMODE_CMD_VIID 0xfff
3729 #define V_FW_VI_RXMODE_CMD_VIID(x) ((x) << S_FW_VI_RXMODE_CMD_VIID)
3730 #define G_FW_VI_RXMODE_CMD_VIID(x) \
3731 (((x) >> S_FW_VI_RXMODE_CMD_VIID) & M_FW_VI_RXMODE_CMD_VIID)
3733 #define S_FW_VI_RXMODE_CMD_MTU 16
3734 #define M_FW_VI_RXMODE_CMD_MTU 0xffff
3735 #define V_FW_VI_RXMODE_CMD_MTU(x) ((x) << S_FW_VI_RXMODE_CMD_MTU)
3736 #define G_FW_VI_RXMODE_CMD_MTU(x) \
3737 (((x) >> S_FW_VI_RXMODE_CMD_MTU) & M_FW_VI_RXMODE_CMD_MTU)
3739 #define S_FW_VI_RXMODE_CMD_PROMISCEN 14
3740 #define M_FW_VI_RXMODE_CMD_PROMISCEN 0x3
3741 #define V_FW_VI_RXMODE_CMD_PROMISCEN(x) ((x) << S_FW_VI_RXMODE_CMD_PROMISCEN)
3742 #define G_FW_VI_RXMODE_CMD_PROMISCEN(x) \
3743 (((x) >> S_FW_VI_RXMODE_CMD_PROMISCEN) & M_FW_VI_RXMODE_CMD_PROMISCEN)
3745 #define S_FW_VI_RXMODE_CMD_ALLMULTIEN 12
3746 #define M_FW_VI_RXMODE_CMD_ALLMULTIEN 0x3
3747 #define V_FW_VI_RXMODE_CMD_ALLMULTIEN(x) \
3748 ((x) << S_FW_VI_RXMODE_CMD_ALLMULTIEN)
3749 #define G_FW_VI_RXMODE_CMD_ALLMULTIEN(x) \
3750 (((x) >> S_FW_VI_RXMODE_CMD_ALLMULTIEN) & M_FW_VI_RXMODE_CMD_ALLMULTIEN)
3752 #define S_FW_VI_RXMODE_CMD_BROADCASTEN 10
3753 #define M_FW_VI_RXMODE_CMD_BROADCASTEN 0x3
3754 #define V_FW_VI_RXMODE_CMD_BROADCASTEN(x) \
3755 ((x) << S_FW_VI_RXMODE_CMD_BROADCASTEN)
3756 #define G_FW_VI_RXMODE_CMD_BROADCASTEN(x) \
3757 (((x) >> S_FW_VI_RXMODE_CMD_BROADCASTEN) & M_FW_VI_RXMODE_CMD_BROADCASTEN)
3759 #define S_FW_VI_RXMODE_CMD_VLANEXEN 8
3760 #define M_FW_VI_RXMODE_CMD_VLANEXEN 0x3
3761 #define V_FW_VI_RXMODE_CMD_VLANEXEN(x) ((x) << S_FW_VI_RXMODE_CMD_VLANEXEN)
3762 #define G_FW_VI_RXMODE_CMD_VLANEXEN(x) \
3763 (((x) >> S_FW_VI_RXMODE_CMD_VLANEXEN) & M_FW_VI_RXMODE_CMD_VLANEXEN)
3765 struct fw_vi_enable_cmd {
3767 __be32 ien_to_len16;
3773 #define S_FW_VI_ENABLE_CMD_VIID 0
3774 #define M_FW_VI_ENABLE_CMD_VIID 0xfff
3775 #define V_FW_VI_ENABLE_CMD_VIID(x) ((x) << S_FW_VI_ENABLE_CMD_VIID)
3776 #define G_FW_VI_ENABLE_CMD_VIID(x) \
3777 (((x) >> S_FW_VI_ENABLE_CMD_VIID) & M_FW_VI_ENABLE_CMD_VIID)
3779 #define S_FW_VI_ENABLE_CMD_IEN 31
3780 #define M_FW_VI_ENABLE_CMD_IEN 0x1
3781 #define V_FW_VI_ENABLE_CMD_IEN(x) ((x) << S_FW_VI_ENABLE_CMD_IEN)
3782 #define G_FW_VI_ENABLE_CMD_IEN(x) \
3783 (((x) >> S_FW_VI_ENABLE_CMD_IEN) & M_FW_VI_ENABLE_CMD_IEN)
3784 #define F_FW_VI_ENABLE_CMD_IEN V_FW_VI_ENABLE_CMD_IEN(1U)
3786 #define S_FW_VI_ENABLE_CMD_EEN 30
3787 #define M_FW_VI_ENABLE_CMD_EEN 0x1
3788 #define V_FW_VI_ENABLE_CMD_EEN(x) ((x) << S_FW_VI_ENABLE_CMD_EEN)
3789 #define G_FW_VI_ENABLE_CMD_EEN(x) \
3790 (((x) >> S_FW_VI_ENABLE_CMD_EEN) & M_FW_VI_ENABLE_CMD_EEN)
3791 #define F_FW_VI_ENABLE_CMD_EEN V_FW_VI_ENABLE_CMD_EEN(1U)
3793 #define S_FW_VI_ENABLE_CMD_LED 29
3794 #define M_FW_VI_ENABLE_CMD_LED 0x1
3795 #define V_FW_VI_ENABLE_CMD_LED(x) ((x) << S_FW_VI_ENABLE_CMD_LED)
3796 #define G_FW_VI_ENABLE_CMD_LED(x) \
3797 (((x) >> S_FW_VI_ENABLE_CMD_LED) & M_FW_VI_ENABLE_CMD_LED)
3798 #define F_FW_VI_ENABLE_CMD_LED V_FW_VI_ENABLE_CMD_LED(1U)
3800 /* VI VF stats offset definitions */
3801 #define VI_VF_NUM_STATS 16
3802 enum fw_vi_stats_vf_index {
3803 FW_VI_VF_STAT_TX_BCAST_BYTES_IX,
3804 FW_VI_VF_STAT_TX_BCAST_FRAMES_IX,
3805 FW_VI_VF_STAT_TX_MCAST_BYTES_IX,
3806 FW_VI_VF_STAT_TX_MCAST_FRAMES_IX,
3807 FW_VI_VF_STAT_TX_UCAST_BYTES_IX,
3808 FW_VI_VF_STAT_TX_UCAST_FRAMES_IX,
3809 FW_VI_VF_STAT_TX_DROP_FRAMES_IX,
3810 FW_VI_VF_STAT_TX_OFLD_BYTES_IX,
3811 FW_VI_VF_STAT_TX_OFLD_FRAMES_IX,
3812 FW_VI_VF_STAT_RX_BCAST_BYTES_IX,
3813 FW_VI_VF_STAT_RX_BCAST_FRAMES_IX,
3814 FW_VI_VF_STAT_RX_MCAST_BYTES_IX,
3815 FW_VI_VF_STAT_RX_MCAST_FRAMES_IX,
3816 FW_VI_VF_STAT_RX_UCAST_BYTES_IX,
3817 FW_VI_VF_STAT_RX_UCAST_FRAMES_IX,
3818 FW_VI_VF_STAT_RX_ERR_FRAMES_IX
3821 /* VI PF stats offset definitions */
3822 #define VI_PF_NUM_STATS 17
3823 enum fw_vi_stats_pf_index {
3824 FW_VI_PF_STAT_TX_BCAST_BYTES_IX,
3825 FW_VI_PF_STAT_TX_BCAST_FRAMES_IX,
3826 FW_VI_PF_STAT_TX_MCAST_BYTES_IX,
3827 FW_VI_PF_STAT_TX_MCAST_FRAMES_IX,
3828 FW_VI_PF_STAT_TX_UCAST_BYTES_IX,
3829 FW_VI_PF_STAT_TX_UCAST_FRAMES_IX,
3830 FW_VI_PF_STAT_TX_OFLD_BYTES_IX,
3831 FW_VI_PF_STAT_TX_OFLD_FRAMES_IX,
3832 FW_VI_PF_STAT_RX_BYTES_IX,
3833 FW_VI_PF_STAT_RX_FRAMES_IX,
3834 FW_VI_PF_STAT_RX_BCAST_BYTES_IX,
3835 FW_VI_PF_STAT_RX_BCAST_FRAMES_IX,
3836 FW_VI_PF_STAT_RX_MCAST_BYTES_IX,
3837 FW_VI_PF_STAT_RX_MCAST_FRAMES_IX,
3838 FW_VI_PF_STAT_RX_UCAST_BYTES_IX,
3839 FW_VI_PF_STAT_RX_UCAST_FRAMES_IX,
3840 FW_VI_PF_STAT_RX_ERR_FRAMES_IX
3843 struct fw_vi_stats_cmd {
3845 __be32 retval_len16;
3847 struct fw_vi_stats_ctl {
3858 struct fw_vi_stats_pf {
3859 __be64 tx_bcast_bytes;
3860 __be64 tx_bcast_frames;
3861 __be64 tx_mcast_bytes;
3862 __be64 tx_mcast_frames;
3863 __be64 tx_ucast_bytes;
3864 __be64 tx_ucast_frames;
3865 __be64 tx_offload_bytes;
3866 __be64 tx_offload_frames;
3868 __be64 rx_pf_frames;
3869 __be64 rx_bcast_bytes;
3870 __be64 rx_bcast_frames;
3871 __be64 rx_mcast_bytes;
3872 __be64 rx_mcast_frames;
3873 __be64 rx_ucast_bytes;
3874 __be64 rx_ucast_frames;
3875 __be64 rx_err_frames;
3877 struct fw_vi_stats_vf {
3878 __be64 tx_bcast_bytes;
3879 __be64 tx_bcast_frames;
3880 __be64 tx_mcast_bytes;
3881 __be64 tx_mcast_frames;
3882 __be64 tx_ucast_bytes;
3883 __be64 tx_ucast_frames;
3884 __be64 tx_drop_frames;
3885 __be64 tx_offload_bytes;
3886 __be64 tx_offload_frames;
3887 __be64 rx_bcast_bytes;
3888 __be64 rx_bcast_frames;
3889 __be64 rx_mcast_bytes;
3890 __be64 rx_mcast_frames;
3891 __be64 rx_ucast_bytes;
3892 __be64 rx_ucast_frames;
3893 __be64 rx_err_frames;
3898 #define S_FW_VI_STATS_CMD_VIID 0
3899 #define M_FW_VI_STATS_CMD_VIID 0xfff
3900 #define V_FW_VI_STATS_CMD_VIID(x) ((x) << S_FW_VI_STATS_CMD_VIID)
3901 #define G_FW_VI_STATS_CMD_VIID(x) \
3902 (((x) >> S_FW_VI_STATS_CMD_VIID) & M_FW_VI_STATS_CMD_VIID)
3904 #define S_FW_VI_STATS_CMD_NSTATS 12
3905 #define M_FW_VI_STATS_CMD_NSTATS 0x7
3906 #define V_FW_VI_STATS_CMD_NSTATS(x) ((x) << S_FW_VI_STATS_CMD_NSTATS)
3907 #define G_FW_VI_STATS_CMD_NSTATS(x) \
3908 (((x) >> S_FW_VI_STATS_CMD_NSTATS) & M_FW_VI_STATS_CMD_NSTATS)
3910 #define S_FW_VI_STATS_CMD_IX 0
3911 #define M_FW_VI_STATS_CMD_IX 0x1f
3912 #define V_FW_VI_STATS_CMD_IX(x) ((x) << S_FW_VI_STATS_CMD_IX)
3913 #define G_FW_VI_STATS_CMD_IX(x) \
3914 (((x) >> S_FW_VI_STATS_CMD_IX) & M_FW_VI_STATS_CMD_IX)
3916 struct fw_acl_mac_cmd {
3931 #define S_FW_ACL_MAC_CMD_PFN 8
3932 #define M_FW_ACL_MAC_CMD_PFN 0x7
3933 #define V_FW_ACL_MAC_CMD_PFN(x) ((x) << S_FW_ACL_MAC_CMD_PFN)
3934 #define G_FW_ACL_MAC_CMD_PFN(x) \
3935 (((x) >> S_FW_ACL_MAC_CMD_PFN) & M_FW_ACL_MAC_CMD_PFN)
3937 #define S_FW_ACL_MAC_CMD_VFN 0
3938 #define M_FW_ACL_MAC_CMD_VFN 0xff
3939 #define V_FW_ACL_MAC_CMD_VFN(x) ((x) << S_FW_ACL_MAC_CMD_VFN)
3940 #define G_FW_ACL_MAC_CMD_VFN(x) \
3941 (((x) >> S_FW_ACL_MAC_CMD_VFN) & M_FW_ACL_MAC_CMD_VFN)
3943 #define S_FW_ACL_MAC_CMD_EN 31
3944 #define M_FW_ACL_MAC_CMD_EN 0x1
3945 #define V_FW_ACL_MAC_CMD_EN(x) ((x) << S_FW_ACL_MAC_CMD_EN)
3946 #define G_FW_ACL_MAC_CMD_EN(x) \
3947 (((x) >> S_FW_ACL_MAC_CMD_EN) & M_FW_ACL_MAC_CMD_EN)
3948 #define F_FW_ACL_MAC_CMD_EN V_FW_ACL_MAC_CMD_EN(1U)
3950 struct fw_acl_vlan_cmd {
3959 #define S_FW_ACL_VLAN_CMD_PFN 8
3960 #define M_FW_ACL_VLAN_CMD_PFN 0x7
3961 #define V_FW_ACL_VLAN_CMD_PFN(x) ((x) << S_FW_ACL_VLAN_CMD_PFN)
3962 #define G_FW_ACL_VLAN_CMD_PFN(x) \
3963 (((x) >> S_FW_ACL_VLAN_CMD_PFN) & M_FW_ACL_VLAN_CMD_PFN)
3965 #define S_FW_ACL_VLAN_CMD_VFN 0
3966 #define M_FW_ACL_VLAN_CMD_VFN 0xff
3967 #define V_FW_ACL_VLAN_CMD_VFN(x) ((x) << S_FW_ACL_VLAN_CMD_VFN)
3968 #define G_FW_ACL_VLAN_CMD_VFN(x) \
3969 (((x) >> S_FW_ACL_VLAN_CMD_VFN) & M_FW_ACL_VLAN_CMD_VFN)
3971 #define S_FW_ACL_VLAN_CMD_EN 31
3972 #define M_FW_ACL_VLAN_CMD_EN 0x1
3973 #define V_FW_ACL_VLAN_CMD_EN(x) ((x) << S_FW_ACL_VLAN_CMD_EN)
3974 #define G_FW_ACL_VLAN_CMD_EN(x) \
3975 (((x) >> S_FW_ACL_VLAN_CMD_EN) & M_FW_ACL_VLAN_CMD_EN)
3976 #define F_FW_ACL_VLAN_CMD_EN V_FW_ACL_VLAN_CMD_EN(1U)
3978 #define S_FW_ACL_VLAN_CMD_DROPNOVLAN 7
3979 #define M_FW_ACL_VLAN_CMD_DROPNOVLAN 0x1
3980 #define V_FW_ACL_VLAN_CMD_DROPNOVLAN(x) ((x) << S_FW_ACL_VLAN_CMD_DROPNOVLAN)
3981 #define G_FW_ACL_VLAN_CMD_DROPNOVLAN(x) \
3982 (((x) >> S_FW_ACL_VLAN_CMD_DROPNOVLAN) & M_FW_ACL_VLAN_CMD_DROPNOVLAN)
3983 #define F_FW_ACL_VLAN_CMD_DROPNOVLAN V_FW_ACL_VLAN_CMD_DROPNOVLAN(1U)
3985 #define S_FW_ACL_VLAN_CMD_FM 6
3986 #define M_FW_ACL_VLAN_CMD_FM 0x1
3987 #define V_FW_ACL_VLAN_CMD_FM(x) ((x) << S_FW_ACL_VLAN_CMD_FM)
3988 #define G_FW_ACL_VLAN_CMD_FM(x) \
3989 (((x) >> S_FW_ACL_VLAN_CMD_FM) & M_FW_ACL_VLAN_CMD_FM)
3990 #define F_FW_ACL_VLAN_CMD_FM V_FW_ACL_VLAN_CMD_FM(1U)
3992 /* port capabilities bitmap */
3994 FW_PORT_CAP_SPEED_100M = 0x0001,
3995 FW_PORT_CAP_SPEED_1G = 0x0002,
3996 FW_PORT_CAP_SPEED_2_5G = 0x0004,
3997 FW_PORT_CAP_SPEED_10G = 0x0008,
3998 FW_PORT_CAP_SPEED_40G = 0x0010,
3999 FW_PORT_CAP_SPEED_100G = 0x0020,
4000 FW_PORT_CAP_FC_RX = 0x0040,
4001 FW_PORT_CAP_FC_TX = 0x0080,
4002 FW_PORT_CAP_ANEG = 0x0100,
4003 FW_PORT_CAP_MDIX = 0x0200,
4004 FW_PORT_CAP_MDIAUTO = 0x0400,
4005 FW_PORT_CAP_FEC = 0x0800,
4006 FW_PORT_CAP_TECHKR = 0x1000,
4007 FW_PORT_CAP_TECHKX4 = 0x2000,
4010 #define S_FW_PORT_AUXLINFO_MDI 3
4011 #define M_FW_PORT_AUXLINFO_MDI 0x3
4012 #define V_FW_PORT_AUXLINFO_MDI(x) ((x) << S_FW_PORT_AUXLINFO_MDI)
4013 #define G_FW_PORT_AUXLINFO_MDI(x) \
4014 (((x) >> S_FW_PORT_AUXLINFO_MDI) & M_FW_PORT_AUXLINFO_MDI)
4016 #define S_FW_PORT_AUXLINFO_KX4 2
4017 #define M_FW_PORT_AUXLINFO_KX4 0x1
4018 #define V_FW_PORT_AUXLINFO_KX4(x) ((x) << S_FW_PORT_AUXLINFO_KX4)
4019 #define G_FW_PORT_AUXLINFO_KX4(x) \
4020 (((x) >> S_FW_PORT_AUXLINFO_KX4) & M_FW_PORT_AUXLINFO_KX4)
4021 #define F_FW_PORT_AUXLINFO_KX4 V_FW_PORT_AUXLINFO_KX4(1U)
4023 #define S_FW_PORT_AUXLINFO_KR 1
4024 #define M_FW_PORT_AUXLINFO_KR 0x1
4025 #define V_FW_PORT_AUXLINFO_KR(x) ((x) << S_FW_PORT_AUXLINFO_KR)
4026 #define G_FW_PORT_AUXLINFO_KR(x) \
4027 (((x) >> S_FW_PORT_AUXLINFO_KR) & M_FW_PORT_AUXLINFO_KR)
4028 #define F_FW_PORT_AUXLINFO_KR V_FW_PORT_AUXLINFO_KR(1U)
4030 #define S_FW_PORT_AUXLINFO_FEC 0
4031 #define M_FW_PORT_AUXLINFO_FEC 0x1
4032 #define V_FW_PORT_AUXLINFO_FEC(x) ((x) << S_FW_PORT_AUXLINFO_FEC)
4033 #define G_FW_PORT_AUXLINFO_FEC(x) \
4034 (((x) >> S_FW_PORT_AUXLINFO_FEC) & M_FW_PORT_AUXLINFO_FEC)
4035 #define F_FW_PORT_AUXLINFO_FEC V_FW_PORT_AUXLINFO_FEC(1U)
4037 #define S_FW_PORT_RCAP_AUX 11
4038 #define M_FW_PORT_RCAP_AUX 0x7
4039 #define V_FW_PORT_RCAP_AUX(x) ((x) << S_FW_PORT_RCAP_AUX)
4040 #define G_FW_PORT_RCAP_AUX(x) \
4041 (((x) >> S_FW_PORT_RCAP_AUX) & M_FW_PORT_RCAP_AUX)
4043 #define S_FW_PORT_CAP_SPEED 0
4044 #define M_FW_PORT_CAP_SPEED 0x3f
4045 #define V_FW_PORT_CAP_SPEED(x) ((x) << S_FW_PORT_CAP_SPEED)
4046 #define G_FW_PORT_CAP_SPEED(x) \
4047 (((x) >> S_FW_PORT_CAP_SPEED) & M_FW_PORT_CAP_SPEED)
4049 #define S_FW_PORT_CAP_FC 6
4050 #define M_FW_PORT_CAP_FC 0x3
4051 #define V_FW_PORT_CAP_FC(x) ((x) << S_FW_PORT_CAP_FC)
4052 #define G_FW_PORT_CAP_FC(x) \
4053 (((x) >> S_FW_PORT_CAP_FC) & M_FW_PORT_CAP_FC)
4055 #define S_FW_PORT_CAP_ANEG 8
4056 #define M_FW_PORT_CAP_ANEG 0x1
4057 #define V_FW_PORT_CAP_ANEG(x) ((x) << S_FW_PORT_CAP_ANEG)
4058 #define G_FW_PORT_CAP_ANEG(x) \
4059 (((x) >> S_FW_PORT_CAP_ANEG) & M_FW_PORT_CAP_ANEG)
4062 FW_PORT_CAP_MDI_UNCHANGED,
4063 FW_PORT_CAP_MDI_AUTO,
4064 FW_PORT_CAP_MDI_F_STRAIGHT,
4065 FW_PORT_CAP_MDI_F_CROSSOVER
4068 #define S_FW_PORT_CAP_MDI 9
4069 #define M_FW_PORT_CAP_MDI 3
4070 #define V_FW_PORT_CAP_MDI(x) ((x) << S_FW_PORT_CAP_MDI)
4071 #define G_FW_PORT_CAP_MDI(x) (((x) >> S_FW_PORT_CAP_MDI) & M_FW_PORT_CAP_MDI)
4073 enum fw_port_action {
4074 FW_PORT_ACTION_L1_CFG = 0x0001,
4075 FW_PORT_ACTION_L2_CFG = 0x0002,
4076 FW_PORT_ACTION_GET_PORT_INFO = 0x0003,
4077 FW_PORT_ACTION_L2_PPP_CFG = 0x0004,
4078 FW_PORT_ACTION_L2_DCB_CFG = 0x0005,
4079 FW_PORT_ACTION_LOW_PWR_TO_NORMAL = 0x0010,
4080 FW_PORT_ACTION_L1_LOW_PWR_EN = 0x0011,
4081 FW_PORT_ACTION_L2_WOL_MODE_EN = 0x0012,
4082 FW_PORT_ACTION_LPBK_TO_NORMAL = 0x0020,
4083 FW_PORT_ACTION_L1_SS_LPBK_ASIC = 0x0021,
4084 FW_PORT_ACTION_L1_WS_LPBK_ASIC = 0x0023,
4085 FW_PORT_ACTION_L1_EXT_LPBK = 0x0026,
4086 FW_PORT_ACTION_PHY_RESET = 0x0040,
4087 FW_PORT_ACTION_PMA_RESET = 0x0041,
4088 FW_PORT_ACTION_PCS_RESET = 0x0042,
4089 FW_PORT_ACTION_PHYXS_RESET = 0x0043,
4090 FW_PORT_ACTION_DTEXS_REEST = 0x0044,
4091 FW_PORT_ACTION_AN_RESET = 0x0045
4094 enum fw_port_l2cfg_ctlbf {
4095 FW_PORT_L2_CTLBF_OVLAN0 = 0x01,
4096 FW_PORT_L2_CTLBF_OVLAN1 = 0x02,
4097 FW_PORT_L2_CTLBF_OVLAN2 = 0x04,
4098 FW_PORT_L2_CTLBF_OVLAN3 = 0x08,
4099 FW_PORT_L2_CTLBF_IVLAN = 0x10,
4100 FW_PORT_L2_CTLBF_TXIPG = 0x20,
4101 FW_PORT_L2_CTLBF_MTU = 0x40
4104 enum fw_port_dcb_cfg {
4105 FW_PORT_DCB_CFG_PG = 0x01,
4106 FW_PORT_DCB_CFG_PFC = 0x02,
4107 FW_PORT_DCB_CFG_APPL = 0x04
4110 enum fw_port_dcb_cfg_rc {
4111 FW_PORT_DCB_CFG_SUCCESS = 0x0,
4112 FW_PORT_DCB_CFG_ERROR = 0x1
4115 enum fw_port_dcb_type {
4116 FW_PORT_DCB_TYPE_PGID = 0x00,
4117 FW_PORT_DCB_TYPE_PGRATE = 0x01,
4118 FW_PORT_DCB_TYPE_PRIORATE = 0x02,
4119 FW_PORT_DCB_TYPE_PFC = 0x03,
4120 FW_PORT_DCB_TYPE_APP_ID = 0x04,
4123 struct fw_port_cmd {
4124 __be32 op_to_portid;
4125 __be32 action_to_len16;
4127 struct fw_port_l1cfg {
4131 struct fw_port_l2cfg {
4133 __u8 ovlan3_to_ivlan0;
4135 __be16 txipg_force_pinfo;
4146 struct fw_port_info {
4147 __be32 lstatus_to_modtype;
4157 struct fw_port_dcb_pgid {
4164 struct fw_port_dcb_pgrate {
4170 struct fw_port_dcb_priorate {
4174 __u8 strict_priorate[8];
4176 struct fw_port_dcb_pfc {
4182 struct fw_port_app_priority {
4194 #define S_FW_PORT_CMD_READ 22
4195 #define M_FW_PORT_CMD_READ 0x1
4196 #define V_FW_PORT_CMD_READ(x) ((x) << S_FW_PORT_CMD_READ)
4197 #define G_FW_PORT_CMD_READ(x) \
4198 (((x) >> S_FW_PORT_CMD_READ) & M_FW_PORT_CMD_READ)
4199 #define F_FW_PORT_CMD_READ V_FW_PORT_CMD_READ(1U)
4201 #define S_FW_PORT_CMD_PORTID 0
4202 #define M_FW_PORT_CMD_PORTID 0xf
4203 #define V_FW_PORT_CMD_PORTID(x) ((x) << S_FW_PORT_CMD_PORTID)
4204 #define G_FW_PORT_CMD_PORTID(x) \
4205 (((x) >> S_FW_PORT_CMD_PORTID) & M_FW_PORT_CMD_PORTID)
4207 #define S_FW_PORT_CMD_ACTION 16
4208 #define M_FW_PORT_CMD_ACTION 0xffff
4209 #define V_FW_PORT_CMD_ACTION(x) ((x) << S_FW_PORT_CMD_ACTION)
4210 #define G_FW_PORT_CMD_ACTION(x) \
4211 (((x) >> S_FW_PORT_CMD_ACTION) & M_FW_PORT_CMD_ACTION)
4213 #define S_FW_PORT_CMD_OVLAN3 7
4214 #define M_FW_PORT_CMD_OVLAN3 0x1
4215 #define V_FW_PORT_CMD_OVLAN3(x) ((x) << S_FW_PORT_CMD_OVLAN3)
4216 #define G_FW_PORT_CMD_OVLAN3(x) \
4217 (((x) >> S_FW_PORT_CMD_OVLAN3) & M_FW_PORT_CMD_OVLAN3)
4218 #define F_FW_PORT_CMD_OVLAN3 V_FW_PORT_CMD_OVLAN3(1U)
4220 #define S_FW_PORT_CMD_OVLAN2 6
4221 #define M_FW_PORT_CMD_OVLAN2 0x1
4222 #define V_FW_PORT_CMD_OVLAN2(x) ((x) << S_FW_PORT_CMD_OVLAN2)
4223 #define G_FW_PORT_CMD_OVLAN2(x) \
4224 (((x) >> S_FW_PORT_CMD_OVLAN2) & M_FW_PORT_CMD_OVLAN2)
4225 #define F_FW_PORT_CMD_OVLAN2 V_FW_PORT_CMD_OVLAN2(1U)
4227 #define S_FW_PORT_CMD_OVLAN1 5
4228 #define M_FW_PORT_CMD_OVLAN1 0x1
4229 #define V_FW_PORT_CMD_OVLAN1(x) ((x) << S_FW_PORT_CMD_OVLAN1)
4230 #define G_FW_PORT_CMD_OVLAN1(x) \
4231 (((x) >> S_FW_PORT_CMD_OVLAN1) & M_FW_PORT_CMD_OVLAN1)
4232 #define F_FW_PORT_CMD_OVLAN1 V_FW_PORT_CMD_OVLAN1(1U)
4234 #define S_FW_PORT_CMD_OVLAN0 4
4235 #define M_FW_PORT_CMD_OVLAN0 0x1
4236 #define V_FW_PORT_CMD_OVLAN0(x) ((x) << S_FW_PORT_CMD_OVLAN0)
4237 #define G_FW_PORT_CMD_OVLAN0(x) \
4238 (((x) >> S_FW_PORT_CMD_OVLAN0) & M_FW_PORT_CMD_OVLAN0)
4239 #define F_FW_PORT_CMD_OVLAN0 V_FW_PORT_CMD_OVLAN0(1U)
4241 #define S_FW_PORT_CMD_IVLAN0 3
4242 #define M_FW_PORT_CMD_IVLAN0 0x1
4243 #define V_FW_PORT_CMD_IVLAN0(x) ((x) << S_FW_PORT_CMD_IVLAN0)
4244 #define G_FW_PORT_CMD_IVLAN0(x) \
4245 (((x) >> S_FW_PORT_CMD_IVLAN0) & M_FW_PORT_CMD_IVLAN0)
4246 #define F_FW_PORT_CMD_IVLAN0 V_FW_PORT_CMD_IVLAN0(1U)
4248 #define S_FW_PORT_CMD_TXIPG 3
4249 #define M_FW_PORT_CMD_TXIPG 0x1fff
4250 #define V_FW_PORT_CMD_TXIPG(x) ((x) << S_FW_PORT_CMD_TXIPG)
4251 #define G_FW_PORT_CMD_TXIPG(x) \
4252 (((x) >> S_FW_PORT_CMD_TXIPG) & M_FW_PORT_CMD_TXIPG)
4254 #define S_FW_PORT_CMD_FORCE_PINFO 0
4255 #define M_FW_PORT_CMD_FORCE_PINFO 0x1
4256 #define V_FW_PORT_CMD_FORCE_PINFO(x) ((x) << S_FW_PORT_CMD_FORCE_PINFO)
4257 #define G_FW_PORT_CMD_FORCE_PINFO(x) \
4258 (((x) >> S_FW_PORT_CMD_FORCE_PINFO) & M_FW_PORT_CMD_FORCE_PINFO)
4259 #define F_FW_PORT_CMD_FORCE_PINFO V_FW_PORT_CMD_FORCE_PINFO(1U)
4261 #define S_FW_PORT_CMD_LSTATUS 31
4262 #define M_FW_PORT_CMD_LSTATUS 0x1
4263 #define V_FW_PORT_CMD_LSTATUS(x) ((x) << S_FW_PORT_CMD_LSTATUS)
4264 #define G_FW_PORT_CMD_LSTATUS(x) \
4265 (((x) >> S_FW_PORT_CMD_LSTATUS) & M_FW_PORT_CMD_LSTATUS)
4266 #define F_FW_PORT_CMD_LSTATUS V_FW_PORT_CMD_LSTATUS(1U)
4268 #define S_FW_PORT_CMD_LSPEED 24
4269 #define M_FW_PORT_CMD_LSPEED 0x3f
4270 #define V_FW_PORT_CMD_LSPEED(x) ((x) << S_FW_PORT_CMD_LSPEED)
4271 #define G_FW_PORT_CMD_LSPEED(x) \
4272 (((x) >> S_FW_PORT_CMD_LSPEED) & M_FW_PORT_CMD_LSPEED)
4274 #define S_FW_PORT_CMD_TXPAUSE 23
4275 #define M_FW_PORT_CMD_TXPAUSE 0x1
4276 #define V_FW_PORT_CMD_TXPAUSE(x) ((x) << S_FW_PORT_CMD_TXPAUSE)
4277 #define G_FW_PORT_CMD_TXPAUSE(x) \
4278 (((x) >> S_FW_PORT_CMD_TXPAUSE) & M_FW_PORT_CMD_TXPAUSE)
4279 #define F_FW_PORT_CMD_TXPAUSE V_FW_PORT_CMD_TXPAUSE(1U)
4281 #define S_FW_PORT_CMD_RXPAUSE 22
4282 #define M_FW_PORT_CMD_RXPAUSE 0x1
4283 #define V_FW_PORT_CMD_RXPAUSE(x) ((x) << S_FW_PORT_CMD_RXPAUSE)
4284 #define G_FW_PORT_CMD_RXPAUSE(x) \
4285 (((x) >> S_FW_PORT_CMD_RXPAUSE) & M_FW_PORT_CMD_RXPAUSE)
4286 #define F_FW_PORT_CMD_RXPAUSE V_FW_PORT_CMD_RXPAUSE(1U)
4288 #define S_FW_PORT_CMD_MDIOCAP 21
4289 #define M_FW_PORT_CMD_MDIOCAP 0x1
4290 #define V_FW_PORT_CMD_MDIOCAP(x) ((x) << S_FW_PORT_CMD_MDIOCAP)
4291 #define G_FW_PORT_CMD_MDIOCAP(x) \
4292 (((x) >> S_FW_PORT_CMD_MDIOCAP) & M_FW_PORT_CMD_MDIOCAP)
4293 #define F_FW_PORT_CMD_MDIOCAP V_FW_PORT_CMD_MDIOCAP(1U)
4295 #define S_FW_PORT_CMD_MDIOADDR 16
4296 #define M_FW_PORT_CMD_MDIOADDR 0x1f
4297 #define V_FW_PORT_CMD_MDIOADDR(x) ((x) << S_FW_PORT_CMD_MDIOADDR)
4298 #define G_FW_PORT_CMD_MDIOADDR(x) \
4299 (((x) >> S_FW_PORT_CMD_MDIOADDR) & M_FW_PORT_CMD_MDIOADDR)
4301 #define S_FW_PORT_CMD_LPTXPAUSE 15
4302 #define M_FW_PORT_CMD_LPTXPAUSE 0x1
4303 #define V_FW_PORT_CMD_LPTXPAUSE(x) ((x) << S_FW_PORT_CMD_LPTXPAUSE)
4304 #define G_FW_PORT_CMD_LPTXPAUSE(x) \
4305 (((x) >> S_FW_PORT_CMD_LPTXPAUSE) & M_FW_PORT_CMD_LPTXPAUSE)
4306 #define F_FW_PORT_CMD_LPTXPAUSE V_FW_PORT_CMD_LPTXPAUSE(1U)
4308 #define S_FW_PORT_CMD_LPRXPAUSE 14
4309 #define M_FW_PORT_CMD_LPRXPAUSE 0x1
4310 #define V_FW_PORT_CMD_LPRXPAUSE(x) ((x) << S_FW_PORT_CMD_LPRXPAUSE)
4311 #define G_FW_PORT_CMD_LPRXPAUSE(x) \
4312 (((x) >> S_FW_PORT_CMD_LPRXPAUSE) & M_FW_PORT_CMD_LPRXPAUSE)
4313 #define F_FW_PORT_CMD_LPRXPAUSE V_FW_PORT_CMD_LPRXPAUSE(1U)
4315 #define S_FW_PORT_CMD_PTYPE 8
4316 #define M_FW_PORT_CMD_PTYPE 0x1f
4317 #define V_FW_PORT_CMD_PTYPE(x) ((x) << S_FW_PORT_CMD_PTYPE)
4318 #define G_FW_PORT_CMD_PTYPE(x) \
4319 (((x) >> S_FW_PORT_CMD_PTYPE) & M_FW_PORT_CMD_PTYPE)
4321 #define S_FW_PORT_CMD_LINKDNRC 5
4322 #define M_FW_PORT_CMD_LINKDNRC 0x7
4323 #define V_FW_PORT_CMD_LINKDNRC(x) ((x) << S_FW_PORT_CMD_LINKDNRC)
4324 #define G_FW_PORT_CMD_LINKDNRC(x) \
4325 (((x) >> S_FW_PORT_CMD_LINKDNRC) & M_FW_PORT_CMD_LINKDNRC)
4327 #define S_FW_PORT_CMD_MODTYPE 0
4328 #define M_FW_PORT_CMD_MODTYPE 0x1f
4329 #define V_FW_PORT_CMD_MODTYPE(x) ((x) << S_FW_PORT_CMD_MODTYPE)
4330 #define G_FW_PORT_CMD_MODTYPE(x) \
4331 (((x) >> S_FW_PORT_CMD_MODTYPE) & M_FW_PORT_CMD_MODTYPE)
4333 #define S_FW_PORT_CMD_APPLY 7
4334 #define M_FW_PORT_CMD_APPLY 0x1
4335 #define V_FW_PORT_CMD_APPLY(x) ((x) << S_FW_PORT_CMD_APPLY)
4336 #define G_FW_PORT_CMD_APPLY(x) \
4337 (((x) >> S_FW_PORT_CMD_APPLY) & M_FW_PORT_CMD_APPLY)
4338 #define F_FW_PORT_CMD_APPLY V_FW_PORT_CMD_APPLY(1U)
4340 #define S_FW_PORT_CMD_APPLY 7
4341 #define M_FW_PORT_CMD_APPLY 0x1
4342 #define V_FW_PORT_CMD_APPLY(x) ((x) << S_FW_PORT_CMD_APPLY)
4343 #define G_FW_PORT_CMD_APPLY(x) \
4344 (((x) >> S_FW_PORT_CMD_APPLY) & M_FW_PORT_CMD_APPLY)
4345 #define F_FW_PORT_CMD_APPLY V_FW_PORT_CMD_APPLY(1U)
4347 #define S_FW_PORT_CMD_APPLY 7
4348 #define M_FW_PORT_CMD_APPLY 0x1
4349 #define V_FW_PORT_CMD_APPLY(x) ((x) << S_FW_PORT_CMD_APPLY)
4350 #define G_FW_PORT_CMD_APPLY(x) \
4351 (((x) >> S_FW_PORT_CMD_APPLY) & M_FW_PORT_CMD_APPLY)
4352 #define F_FW_PORT_CMD_APPLY V_FW_PORT_CMD_APPLY(1U)
4355 * These are configured into the VPD and hence tools that generate
4356 * VPD may use this enumeration.
4357 * extPHY #lanes T4_I2C extI2C BP_Eq BP_ANEG Speed
4360 FW_PORT_TYPE_FIBER_XFI = 0, /* Y, 1, N, Y, N, N, 10G */
4361 FW_PORT_TYPE_FIBER_XAUI = 1, /* Y, 4, N, Y, N, N, 10G */
4362 FW_PORT_TYPE_BT_SGMII = 2, /* Y, 1, No, No, No, No, 1G/100M */
4363 FW_PORT_TYPE_BT_XFI = 3, /* Y, 1, No, No, No, No, 10G */
4364 FW_PORT_TYPE_BT_XAUI = 4, /* Y, 4, No, No, No, No, 10G/1G/100M? */
4365 FW_PORT_TYPE_KX4 = 5, /* No, 4, No, No, Yes, Yes, 10G */
4366 FW_PORT_TYPE_CX4 = 6, /* No, 4, No, No, No, No, 10G */
4367 FW_PORT_TYPE_KX = 7, /* No, 1, No, No, Yes, No, 1G */
4368 FW_PORT_TYPE_KR = 8, /* No, 1, No, No, Yes, Yes, 10G */
4369 FW_PORT_TYPE_SFP = 9, /* No, 1, Yes, No, No, No, 10G */
4370 FW_PORT_TYPE_BP_AP = 10, /* No, 1, No, No, Yes, Yes, 10G, BP ANGE */
4371 FW_PORT_TYPE_BP4_AP = 11, /* No, 4, No, No, Yes, Yes, 10G, BP ANGE */
4373 FW_PORT_TYPE_NONE = M_FW_PORT_CMD_PTYPE
4376 /* These are read from module's EEPROM and determined once the
4377 module is inserted. */
4378 enum fw_port_module_type {
4379 FW_PORT_MOD_TYPE_NA = 0x0,
4380 FW_PORT_MOD_TYPE_LR = 0x1,
4381 FW_PORT_MOD_TYPE_SR = 0x2,
4382 FW_PORT_MOD_TYPE_ER = 0x3,
4383 FW_PORT_MOD_TYPE_TWINAX_PASSIVE = 0x4,
4384 FW_PORT_MOD_TYPE_TWINAX_ACTIVE = 0x5,
4385 FW_PORT_MOD_TYPE_LRM = 0x6,
4386 FW_PORT_MOD_TYPE_UNKNOWN = M_FW_PORT_CMD_MODTYPE - 2,
4387 FW_PORT_MOD_TYPE_NOTSUPPORTED = M_FW_PORT_CMD_MODTYPE - 1,
4388 FW_PORT_MOD_TYPE_NONE = M_FW_PORT_CMD_MODTYPE
4391 /* used by FW and tools may use this to generate VPD */
4392 enum fw_port_mod_sub_type {
4393 FW_PORT_MOD_SUB_TYPE_NA,
4394 FW_PORT_MOD_SUB_TYPE_MV88E114X=0x1,
4395 FW_PORT_MOD_SUB_TYPE_BT_VSC8634=0x8,
4398 * The following will never been in the VPD. They are TWINAX cable
4399 * lengths decoded from SFP+ module i2c PROMs. These should almost
4400 * certainly go somewhere else ...
4402 FW_PORT_MOD_SUB_TYPE_TWINAX_1=0x9,
4403 FW_PORT_MOD_SUB_TYPE_TWINAX_3=0xA,
4404 FW_PORT_MOD_SUB_TYPE_TWINAX_5=0xB,
4405 FW_PORT_MOD_SUB_TYPE_TWINAX_7=0xC,
4408 /* link down reason codes (3b) */
4409 enum fw_port_link_dn_rc {
4410 FW_PORT_LINK_DN_RC_NONE,
4411 FW_PORT_LINK_DN_RC_REMFLT,
4412 FW_PORT_LINK_DN_ANEG_F,
4413 FW_PORT_LINK_DN_MS_RES_F,
4414 FW_PORT_LINK_DN_UNKNOWN
4418 #define FW_NUM_PORT_STATS 50
4419 #define FW_NUM_PORT_TX_STATS 23
4420 #define FW_NUM_PORT_RX_STATS 27
4422 enum fw_port_stats_tx_index {
4423 FW_STAT_TX_PORT_BYTES_IX,
4424 FW_STAT_TX_PORT_FRAMES_IX,
4425 FW_STAT_TX_PORT_BCAST_IX,
4426 FW_STAT_TX_PORT_MCAST_IX,
4427 FW_STAT_TX_PORT_UCAST_IX,
4428 FW_STAT_TX_PORT_ERROR_IX,
4429 FW_STAT_TX_PORT_64B_IX,
4430 FW_STAT_TX_PORT_65B_127B_IX,
4431 FW_STAT_TX_PORT_128B_255B_IX,
4432 FW_STAT_TX_PORT_256B_511B_IX,
4433 FW_STAT_TX_PORT_512B_1023B_IX,
4434 FW_STAT_TX_PORT_1024B_1518B_IX,
4435 FW_STAT_TX_PORT_1519B_MAX_IX,
4436 FW_STAT_TX_PORT_DROP_IX,
4437 FW_STAT_TX_PORT_PAUSE_IX,
4438 FW_STAT_TX_PORT_PPP0_IX,
4439 FW_STAT_TX_PORT_PPP1_IX,
4440 FW_STAT_TX_PORT_PPP2_IX,
4441 FW_STAT_TX_PORT_PPP3_IX,
4442 FW_STAT_TX_PORT_PPP4_IX,
4443 FW_STAT_TX_PORT_PPP5_IX,
4444 FW_STAT_TX_PORT_PPP6_IX,
4445 FW_STAT_TX_PORT_PPP7_IX
4448 enum fw_port_stat_rx_index {
4449 FW_STAT_RX_PORT_BYTES_IX,
4450 FW_STAT_RX_PORT_FRAMES_IX,
4451 FW_STAT_RX_PORT_BCAST_IX,
4452 FW_STAT_RX_PORT_MCAST_IX,
4453 FW_STAT_RX_PORT_UCAST_IX,
4454 FW_STAT_RX_PORT_MTU_ERROR_IX,
4455 FW_STAT_RX_PORT_MTU_CRC_ERROR_IX,
4456 FW_STAT_RX_PORT_CRC_ERROR_IX,
4457 FW_STAT_RX_PORT_LEN_ERROR_IX,
4458 FW_STAT_RX_PORT_SYM_ERROR_IX,
4459 FW_STAT_RX_PORT_64B_IX,
4460 FW_STAT_RX_PORT_65B_127B_IX,
4461 FW_STAT_RX_PORT_128B_255B_IX,
4462 FW_STAT_RX_PORT_256B_511B_IX,
4463 FW_STAT_RX_PORT_512B_1023B_IX,
4464 FW_STAT_RX_PORT_1024B_1518B_IX,
4465 FW_STAT_RX_PORT_1519B_MAX_IX,
4466 FW_STAT_RX_PORT_PAUSE_IX,
4467 FW_STAT_RX_PORT_PPP0_IX,
4468 FW_STAT_RX_PORT_PPP1_IX,
4469 FW_STAT_RX_PORT_PPP2_IX,
4470 FW_STAT_RX_PORT_PPP3_IX,
4471 FW_STAT_RX_PORT_PPP4_IX,
4472 FW_STAT_RX_PORT_PPP5_IX,
4473 FW_STAT_RX_PORT_PPP6_IX,
4474 FW_STAT_RX_PORT_PPP7_IX,
4475 FW_STAT_RX_PORT_LESS_64B_IX
4478 struct fw_port_stats_cmd {
4479 __be32 op_to_portid;
4480 __be32 retval_len16;
4481 union fw_port_stats {
4482 struct fw_port_stats_ctl {
4494 struct fw_port_stats_all {
4503 __be64 tx_128b_255b;
4504 __be64 tx_256b_511b;
4505 __be64 tx_512b_1023b;
4506 __be64 tx_1024b_1518b;
4507 __be64 tx_1519b_max;
4523 __be64 rx_mtu_error;
4524 __be64 rx_mtu_crc_error;
4525 __be64 rx_crc_error;
4526 __be64 rx_len_error;
4527 __be64 rx_sym_error;
4530 __be64 rx_128b_255b;
4531 __be64 rx_256b_511b;
4532 __be64 rx_512b_1023b;
4533 __be64 rx_1024b_1518b;
4534 __be64 rx_1519b_max;
4551 #define S_FW_PORT_STATS_CMD_NSTATS 4
4552 #define M_FW_PORT_STATS_CMD_NSTATS 0x7
4553 #define V_FW_PORT_STATS_CMD_NSTATS(x) ((x) << S_FW_PORT_STATS_CMD_NSTATS)
4554 #define G_FW_PORT_STATS_CMD_NSTATS(x) \
4555 (((x) >> S_FW_PORT_STATS_CMD_NSTATS) & M_FW_PORT_STATS_CMD_NSTATS)
4557 #define S_FW_PORT_STATS_CMD_BG_BM 0
4558 #define M_FW_PORT_STATS_CMD_BG_BM 0x3
4559 #define V_FW_PORT_STATS_CMD_BG_BM(x) ((x) << S_FW_PORT_STATS_CMD_BG_BM)
4560 #define G_FW_PORT_STATS_CMD_BG_BM(x) \
4561 (((x) >> S_FW_PORT_STATS_CMD_BG_BM) & M_FW_PORT_STATS_CMD_BG_BM)
4563 #define S_FW_PORT_STATS_CMD_TX 7
4564 #define M_FW_PORT_STATS_CMD_TX 0x1
4565 #define V_FW_PORT_STATS_CMD_TX(x) ((x) << S_FW_PORT_STATS_CMD_TX)
4566 #define G_FW_PORT_STATS_CMD_TX(x) \
4567 (((x) >> S_FW_PORT_STATS_CMD_TX) & M_FW_PORT_STATS_CMD_TX)
4568 #define F_FW_PORT_STATS_CMD_TX V_FW_PORT_STATS_CMD_TX(1U)
4570 #define S_FW_PORT_STATS_CMD_IX 0
4571 #define M_FW_PORT_STATS_CMD_IX 0x3f
4572 #define V_FW_PORT_STATS_CMD_IX(x) ((x) << S_FW_PORT_STATS_CMD_IX)
4573 #define G_FW_PORT_STATS_CMD_IX(x) \
4574 (((x) >> S_FW_PORT_STATS_CMD_IX) & M_FW_PORT_STATS_CMD_IX)
4576 /* port loopback stats */
4577 #define FW_NUM_LB_STATS 14
4578 enum fw_port_lb_stats_index {
4579 FW_STAT_LB_PORT_BYTES_IX,
4580 FW_STAT_LB_PORT_FRAMES_IX,
4581 FW_STAT_LB_PORT_BCAST_IX,
4582 FW_STAT_LB_PORT_MCAST_IX,
4583 FW_STAT_LB_PORT_UCAST_IX,
4584 FW_STAT_LB_PORT_ERROR_IX,
4585 FW_STAT_LB_PORT_64B_IX,
4586 FW_STAT_LB_PORT_65B_127B_IX,
4587 FW_STAT_LB_PORT_128B_255B_IX,
4588 FW_STAT_LB_PORT_256B_511B_IX,
4589 FW_STAT_LB_PORT_512B_1023B_IX,
4590 FW_STAT_LB_PORT_1024B_1518B_IX,
4591 FW_STAT_LB_PORT_1519B_MAX_IX,
4592 FW_STAT_LB_PORT_DROP_FRAMES_IX
4595 struct fw_port_lb_stats_cmd {
4596 __be32 op_to_lbport;
4597 __be32 retval_len16;
4598 union fw_port_lb_stats {
4599 struct fw_port_lb_stats_ctl {
4611 struct fw_port_lb_stats_all {
4620 __be64 tx_128b_255b;
4621 __be64 tx_256b_511b;
4622 __be64 tx_512b_1023b;
4623 __be64 tx_1024b_1518b;
4624 __be64 tx_1519b_max;
4631 #define S_FW_PORT_LB_STATS_CMD_LBPORT 0
4632 #define M_FW_PORT_LB_STATS_CMD_LBPORT 0xf
4633 #define V_FW_PORT_LB_STATS_CMD_LBPORT(x) \
4634 ((x) << S_FW_PORT_LB_STATS_CMD_LBPORT)
4635 #define G_FW_PORT_LB_STATS_CMD_LBPORT(x) \
4636 (((x) >> S_FW_PORT_LB_STATS_CMD_LBPORT) & M_FW_PORT_LB_STATS_CMD_LBPORT)
4638 #define S_FW_PORT_LB_STATS_CMD_NSTATS 4
4639 #define M_FW_PORT_LB_STATS_CMD_NSTATS 0x7
4640 #define V_FW_PORT_LB_STATS_CMD_NSTATS(x) \
4641 ((x) << S_FW_PORT_LB_STATS_CMD_NSTATS)
4642 #define G_FW_PORT_LB_STATS_CMD_NSTATS(x) \
4643 (((x) >> S_FW_PORT_LB_STATS_CMD_NSTATS) & M_FW_PORT_LB_STATS_CMD_NSTATS)
4645 #define S_FW_PORT_LB_STATS_CMD_BG_BM 0
4646 #define M_FW_PORT_LB_STATS_CMD_BG_BM 0x3
4647 #define V_FW_PORT_LB_STATS_CMD_BG_BM(x) ((x) << S_FW_PORT_LB_STATS_CMD_BG_BM)
4648 #define G_FW_PORT_LB_STATS_CMD_BG_BM(x) \
4649 (((x) >> S_FW_PORT_LB_STATS_CMD_BG_BM) & M_FW_PORT_LB_STATS_CMD_BG_BM)
4651 #define S_FW_PORT_LB_STATS_CMD_IX 0
4652 #define M_FW_PORT_LB_STATS_CMD_IX 0xf
4653 #define V_FW_PORT_LB_STATS_CMD_IX(x) ((x) << S_FW_PORT_LB_STATS_CMD_IX)
4654 #define G_FW_PORT_LB_STATS_CMD_IX(x) \
4655 (((x) >> S_FW_PORT_LB_STATS_CMD_IX) & M_FW_PORT_LB_STATS_CMD_IX)
4657 /* Trace related defines */
4658 #define FW_TRACE_CAPTURE_MAX_SINGLE_FLT_MODE 10240
4659 #define FW_TRACE_CAPTURE_MAX_MULTI_FLT_MODE 2560
4661 struct fw_port_trace_cmd {
4662 __be32 op_to_portid;
4663 __be32 retval_len16;
4664 __be16 traceen_to_pciech;
4669 #define S_FW_PORT_TRACE_CMD_PORTID 0
4670 #define M_FW_PORT_TRACE_CMD_PORTID 0xf
4671 #define V_FW_PORT_TRACE_CMD_PORTID(x) ((x) << S_FW_PORT_TRACE_CMD_PORTID)
4672 #define G_FW_PORT_TRACE_CMD_PORTID(x) \
4673 (((x) >> S_FW_PORT_TRACE_CMD_PORTID) & M_FW_PORT_TRACE_CMD_PORTID)
4675 #define S_FW_PORT_TRACE_CMD_TRACEEN 15
4676 #define M_FW_PORT_TRACE_CMD_TRACEEN 0x1
4677 #define V_FW_PORT_TRACE_CMD_TRACEEN(x) ((x) << S_FW_PORT_TRACE_CMD_TRACEEN)
4678 #define G_FW_PORT_TRACE_CMD_TRACEEN(x) \
4679 (((x) >> S_FW_PORT_TRACE_CMD_TRACEEN) & M_FW_PORT_TRACE_CMD_TRACEEN)
4680 #define F_FW_PORT_TRACE_CMD_TRACEEN V_FW_PORT_TRACE_CMD_TRACEEN(1U)
4682 #define S_FW_PORT_TRACE_CMD_FLTMODE 14
4683 #define M_FW_PORT_TRACE_CMD_FLTMODE 0x1
4684 #define V_FW_PORT_TRACE_CMD_FLTMODE(x) ((x) << S_FW_PORT_TRACE_CMD_FLTMODE)
4685 #define G_FW_PORT_TRACE_CMD_FLTMODE(x) \
4686 (((x) >> S_FW_PORT_TRACE_CMD_FLTMODE) & M_FW_PORT_TRACE_CMD_FLTMODE)
4687 #define F_FW_PORT_TRACE_CMD_FLTMODE V_FW_PORT_TRACE_CMD_FLTMODE(1U)
4689 #define S_FW_PORT_TRACE_CMD_DUPLEN 13
4690 #define M_FW_PORT_TRACE_CMD_DUPLEN 0x1
4691 #define V_FW_PORT_TRACE_CMD_DUPLEN(x) ((x) << S_FW_PORT_TRACE_CMD_DUPLEN)
4692 #define G_FW_PORT_TRACE_CMD_DUPLEN(x) \
4693 (((x) >> S_FW_PORT_TRACE_CMD_DUPLEN) & M_FW_PORT_TRACE_CMD_DUPLEN)
4694 #define F_FW_PORT_TRACE_CMD_DUPLEN V_FW_PORT_TRACE_CMD_DUPLEN(1U)
4696 #define S_FW_PORT_TRACE_CMD_RUNTFLTSIZE 8
4697 #define M_FW_PORT_TRACE_CMD_RUNTFLTSIZE 0x1f
4698 #define V_FW_PORT_TRACE_CMD_RUNTFLTSIZE(x) \
4699 ((x) << S_FW_PORT_TRACE_CMD_RUNTFLTSIZE)
4700 #define G_FW_PORT_TRACE_CMD_RUNTFLTSIZE(x) \
4701 (((x) >> S_FW_PORT_TRACE_CMD_RUNTFLTSIZE) & \
4702 M_FW_PORT_TRACE_CMD_RUNTFLTSIZE)
4704 #define S_FW_PORT_TRACE_CMD_PCIECH 6
4705 #define M_FW_PORT_TRACE_CMD_PCIECH 0x3
4706 #define V_FW_PORT_TRACE_CMD_PCIECH(x) ((x) << S_FW_PORT_TRACE_CMD_PCIECH)
4707 #define G_FW_PORT_TRACE_CMD_PCIECH(x) \
4708 (((x) >> S_FW_PORT_TRACE_CMD_PCIECH) & M_FW_PORT_TRACE_CMD_PCIECH)
4710 struct fw_port_trace_mmap_cmd {
4711 __be32 op_to_portid;
4712 __be32 retval_len16;
4713 __be32 fid_to_skipoffset;
4714 __be32 minpktsize_capturemax;
4718 #define S_FW_PORT_TRACE_MMAP_CMD_PORTID 0
4719 #define M_FW_PORT_TRACE_MMAP_CMD_PORTID 0xf
4720 #define V_FW_PORT_TRACE_MMAP_CMD_PORTID(x) \
4721 ((x) << S_FW_PORT_TRACE_MMAP_CMD_PORTID)
4722 #define G_FW_PORT_TRACE_MMAP_CMD_PORTID(x) \
4723 (((x) >> S_FW_PORT_TRACE_MMAP_CMD_PORTID) & \
4724 M_FW_PORT_TRACE_MMAP_CMD_PORTID)
4726 #define S_FW_PORT_TRACE_MMAP_CMD_FID 30
4727 #define M_FW_PORT_TRACE_MMAP_CMD_FID 0x3
4728 #define V_FW_PORT_TRACE_MMAP_CMD_FID(x) ((x) << S_FW_PORT_TRACE_MMAP_CMD_FID)
4729 #define G_FW_PORT_TRACE_MMAP_CMD_FID(x) \
4730 (((x) >> S_FW_PORT_TRACE_MMAP_CMD_FID) & M_FW_PORT_TRACE_MMAP_CMD_FID)
4732 #define S_FW_PORT_TRACE_MMAP_CMD_MMAPEN 29
4733 #define M_FW_PORT_TRACE_MMAP_CMD_MMAPEN 0x1
4734 #define V_FW_PORT_TRACE_MMAP_CMD_MMAPEN(x) \
4735 ((x) << S_FW_PORT_TRACE_MMAP_CMD_MMAPEN)
4736 #define G_FW_PORT_TRACE_MMAP_CMD_MMAPEN(x) \
4737 (((x) >> S_FW_PORT_TRACE_MMAP_CMD_MMAPEN) & \
4738 M_FW_PORT_TRACE_MMAP_CMD_MMAPEN)
4739 #define F_FW_PORT_TRACE_MMAP_CMD_MMAPEN V_FW_PORT_TRACE_MMAP_CMD_MMAPEN(1U)
4741 #define S_FW_PORT_TRACE_MMAP_CMD_DCMAPEN 28
4742 #define M_FW_PORT_TRACE_MMAP_CMD_DCMAPEN 0x1
4743 #define V_FW_PORT_TRACE_MMAP_CMD_DCMAPEN(x) \
4744 ((x) << S_FW_PORT_TRACE_MMAP_CMD_DCMAPEN)
4745 #define G_FW_PORT_TRACE_MMAP_CMD_DCMAPEN(x) \
4746 (((x) >> S_FW_PORT_TRACE_MMAP_CMD_DCMAPEN) & \
4747 M_FW_PORT_TRACE_MMAP_CMD_DCMAPEN)
4748 #define F_FW_PORT_TRACE_MMAP_CMD_DCMAPEN \
4749 V_FW_PORT_TRACE_MMAP_CMD_DCMAPEN(1U)
4751 #define S_FW_PORT_TRACE_MMAP_CMD_SKIPLENGTH 8
4752 #define M_FW_PORT_TRACE_MMAP_CMD_SKIPLENGTH 0x1f
4753 #define V_FW_PORT_TRACE_MMAP_CMD_SKIPLENGTH(x) \
4754 ((x) << S_FW_PORT_TRACE_MMAP_CMD_SKIPLENGTH)
4755 #define G_FW_PORT_TRACE_MMAP_CMD_SKIPLENGTH(x) \
4756 (((x) >> S_FW_PORT_TRACE_MMAP_CMD_SKIPLENGTH) & \
4757 M_FW_PORT_TRACE_MMAP_CMD_SKIPLENGTH)
4759 #define S_FW_PORT_TRACE_MMAP_CMD_SKIPOFFSET 0
4760 #define M_FW_PORT_TRACE_MMAP_CMD_SKIPOFFSET 0x1f
4761 #define V_FW_PORT_TRACE_MMAP_CMD_SKIPOFFSET(x) \
4762 ((x) << S_FW_PORT_TRACE_MMAP_CMD_SKIPOFFSET)
4763 #define G_FW_PORT_TRACE_MMAP_CMD_SKIPOFFSET(x) \
4764 (((x) >> S_FW_PORT_TRACE_MMAP_CMD_SKIPOFFSET) & \
4765 M_FW_PORT_TRACE_MMAP_CMD_SKIPOFFSET)
4767 #define S_FW_PORT_TRACE_MMAP_CMD_MINPKTSIZE 18
4768 #define M_FW_PORT_TRACE_MMAP_CMD_MINPKTSIZE 0x3fff
4769 #define V_FW_PORT_TRACE_MMAP_CMD_MINPKTSIZE(x) \
4770 ((x) << S_FW_PORT_TRACE_MMAP_CMD_MINPKTSIZE)
4771 #define G_FW_PORT_TRACE_MMAP_CMD_MINPKTSIZE(x) \
4772 (((x) >> S_FW_PORT_TRACE_MMAP_CMD_MINPKTSIZE) & \
4773 M_FW_PORT_TRACE_MMAP_CMD_MINPKTSIZE)
4775 #define S_FW_PORT_TRACE_MMAP_CMD_CAPTUREMAX 0
4776 #define M_FW_PORT_TRACE_MMAP_CMD_CAPTUREMAX 0x3fff
4777 #define V_FW_PORT_TRACE_MMAP_CMD_CAPTUREMAX(x) \
4778 ((x) << S_FW_PORT_TRACE_MMAP_CMD_CAPTUREMAX)
4779 #define G_FW_PORT_TRACE_MMAP_CMD_CAPTUREMAX(x) \
4780 (((x) >> S_FW_PORT_TRACE_MMAP_CMD_CAPTUREMAX) & \
4781 M_FW_PORT_TRACE_MMAP_CMD_CAPTUREMAX)
4783 struct fw_rss_ind_tbl_cmd {
4785 __be32 retval_len16;
4793 __be32 iq12_to_iq14;
4794 __be32 iq15_to_iq17;
4795 __be32 iq18_to_iq20;
4796 __be32 iq21_to_iq23;
4797 __be32 iq24_to_iq26;
4798 __be32 iq27_to_iq29;
4803 #define S_FW_RSS_IND_TBL_CMD_VIID 0
4804 #define M_FW_RSS_IND_TBL_CMD_VIID 0xfff
4805 #define V_FW_RSS_IND_TBL_CMD_VIID(x) ((x) << S_FW_RSS_IND_TBL_CMD_VIID)
4806 #define G_FW_RSS_IND_TBL_CMD_VIID(x) \
4807 (((x) >> S_FW_RSS_IND_TBL_CMD_VIID) & M_FW_RSS_IND_TBL_CMD_VIID)
4809 #define S_FW_RSS_IND_TBL_CMD_IQ0 20
4810 #define M_FW_RSS_IND_TBL_CMD_IQ0 0x3ff
4811 #define V_FW_RSS_IND_TBL_CMD_IQ0(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ0)
4812 #define G_FW_RSS_IND_TBL_CMD_IQ0(x) \
4813 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ0) & M_FW_RSS_IND_TBL_CMD_IQ0)
4815 #define S_FW_RSS_IND_TBL_CMD_IQ1 10
4816 #define M_FW_RSS_IND_TBL_CMD_IQ1 0x3ff
4817 #define V_FW_RSS_IND_TBL_CMD_IQ1(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ1)
4818 #define G_FW_RSS_IND_TBL_CMD_IQ1(x) \
4819 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ1) & M_FW_RSS_IND_TBL_CMD_IQ1)
4821 #define S_FW_RSS_IND_TBL_CMD_IQ2 0
4822 #define M_FW_RSS_IND_TBL_CMD_IQ2 0x3ff
4823 #define V_FW_RSS_IND_TBL_CMD_IQ2(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ2)
4824 #define G_FW_RSS_IND_TBL_CMD_IQ2(x) \
4825 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ2) & M_FW_RSS_IND_TBL_CMD_IQ2)
4827 #define S_FW_RSS_IND_TBL_CMD_IQ3 20
4828 #define M_FW_RSS_IND_TBL_CMD_IQ3 0x3ff
4829 #define V_FW_RSS_IND_TBL_CMD_IQ3(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ3)
4830 #define G_FW_RSS_IND_TBL_CMD_IQ3(x) \
4831 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ3) & M_FW_RSS_IND_TBL_CMD_IQ3)
4833 #define S_FW_RSS_IND_TBL_CMD_IQ4 10
4834 #define M_FW_RSS_IND_TBL_CMD_IQ4 0x3ff
4835 #define V_FW_RSS_IND_TBL_CMD_IQ4(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ4)
4836 #define G_FW_RSS_IND_TBL_CMD_IQ4(x) \
4837 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ4) & M_FW_RSS_IND_TBL_CMD_IQ4)
4839 #define S_FW_RSS_IND_TBL_CMD_IQ5 0
4840 #define M_FW_RSS_IND_TBL_CMD_IQ5 0x3ff
4841 #define V_FW_RSS_IND_TBL_CMD_IQ5(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ5)
4842 #define G_FW_RSS_IND_TBL_CMD_IQ5(x) \
4843 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ5) & M_FW_RSS_IND_TBL_CMD_IQ5)
4845 #define S_FW_RSS_IND_TBL_CMD_IQ6 20
4846 #define M_FW_RSS_IND_TBL_CMD_IQ6 0x3ff
4847 #define V_FW_RSS_IND_TBL_CMD_IQ6(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ6)
4848 #define G_FW_RSS_IND_TBL_CMD_IQ6(x) \
4849 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ6) & M_FW_RSS_IND_TBL_CMD_IQ6)
4851 #define S_FW_RSS_IND_TBL_CMD_IQ7 10
4852 #define M_FW_RSS_IND_TBL_CMD_IQ7 0x3ff
4853 #define V_FW_RSS_IND_TBL_CMD_IQ7(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ7)
4854 #define G_FW_RSS_IND_TBL_CMD_IQ7(x) \
4855 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ7) & M_FW_RSS_IND_TBL_CMD_IQ7)
4857 #define S_FW_RSS_IND_TBL_CMD_IQ8 0
4858 #define M_FW_RSS_IND_TBL_CMD_IQ8 0x3ff
4859 #define V_FW_RSS_IND_TBL_CMD_IQ8(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ8)
4860 #define G_FW_RSS_IND_TBL_CMD_IQ8(x) \
4861 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ8) & M_FW_RSS_IND_TBL_CMD_IQ8)
4863 #define S_FW_RSS_IND_TBL_CMD_IQ9 20
4864 #define M_FW_RSS_IND_TBL_CMD_IQ9 0x3ff
4865 #define V_FW_RSS_IND_TBL_CMD_IQ9(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ9)
4866 #define G_FW_RSS_IND_TBL_CMD_IQ9(x) \
4867 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ9) & M_FW_RSS_IND_TBL_CMD_IQ9)
4869 #define S_FW_RSS_IND_TBL_CMD_IQ10 10
4870 #define M_FW_RSS_IND_TBL_CMD_IQ10 0x3ff
4871 #define V_FW_RSS_IND_TBL_CMD_IQ10(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ10)
4872 #define G_FW_RSS_IND_TBL_CMD_IQ10(x) \
4873 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ10) & M_FW_RSS_IND_TBL_CMD_IQ10)
4875 #define S_FW_RSS_IND_TBL_CMD_IQ11 0
4876 #define M_FW_RSS_IND_TBL_CMD_IQ11 0x3ff
4877 #define V_FW_RSS_IND_TBL_CMD_IQ11(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ11)
4878 #define G_FW_RSS_IND_TBL_CMD_IQ11(x) \
4879 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ11) & M_FW_RSS_IND_TBL_CMD_IQ11)
4881 #define S_FW_RSS_IND_TBL_CMD_IQ12 20
4882 #define M_FW_RSS_IND_TBL_CMD_IQ12 0x3ff
4883 #define V_FW_RSS_IND_TBL_CMD_IQ12(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ12)
4884 #define G_FW_RSS_IND_TBL_CMD_IQ12(x) \
4885 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ12) & M_FW_RSS_IND_TBL_CMD_IQ12)
4887 #define S_FW_RSS_IND_TBL_CMD_IQ13 10
4888 #define M_FW_RSS_IND_TBL_CMD_IQ13 0x3ff
4889 #define V_FW_RSS_IND_TBL_CMD_IQ13(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ13)
4890 #define G_FW_RSS_IND_TBL_CMD_IQ13(x) \
4891 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ13) & M_FW_RSS_IND_TBL_CMD_IQ13)
4893 #define S_FW_RSS_IND_TBL_CMD_IQ14 0
4894 #define M_FW_RSS_IND_TBL_CMD_IQ14 0x3ff
4895 #define V_FW_RSS_IND_TBL_CMD_IQ14(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ14)
4896 #define G_FW_RSS_IND_TBL_CMD_IQ14(x) \
4897 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ14) & M_FW_RSS_IND_TBL_CMD_IQ14)
4899 #define S_FW_RSS_IND_TBL_CMD_IQ15 20
4900 #define M_FW_RSS_IND_TBL_CMD_IQ15 0x3ff
4901 #define V_FW_RSS_IND_TBL_CMD_IQ15(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ15)
4902 #define G_FW_RSS_IND_TBL_CMD_IQ15(x) \
4903 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ15) & M_FW_RSS_IND_TBL_CMD_IQ15)
4905 #define S_FW_RSS_IND_TBL_CMD_IQ16 10
4906 #define M_FW_RSS_IND_TBL_CMD_IQ16 0x3ff
4907 #define V_FW_RSS_IND_TBL_CMD_IQ16(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ16)
4908 #define G_FW_RSS_IND_TBL_CMD_IQ16(x) \
4909 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ16) & M_FW_RSS_IND_TBL_CMD_IQ16)
4911 #define S_FW_RSS_IND_TBL_CMD_IQ17 0
4912 #define M_FW_RSS_IND_TBL_CMD_IQ17 0x3ff
4913 #define V_FW_RSS_IND_TBL_CMD_IQ17(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ17)
4914 #define G_FW_RSS_IND_TBL_CMD_IQ17(x) \
4915 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ17) & M_FW_RSS_IND_TBL_CMD_IQ17)
4917 #define S_FW_RSS_IND_TBL_CMD_IQ18 20
4918 #define M_FW_RSS_IND_TBL_CMD_IQ18 0x3ff
4919 #define V_FW_RSS_IND_TBL_CMD_IQ18(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ18)
4920 #define G_FW_RSS_IND_TBL_CMD_IQ18(x) \
4921 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ18) & M_FW_RSS_IND_TBL_CMD_IQ18)
4923 #define S_FW_RSS_IND_TBL_CMD_IQ19 10
4924 #define M_FW_RSS_IND_TBL_CMD_IQ19 0x3ff
4925 #define V_FW_RSS_IND_TBL_CMD_IQ19(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ19)
4926 #define G_FW_RSS_IND_TBL_CMD_IQ19(x) \
4927 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ19) & M_FW_RSS_IND_TBL_CMD_IQ19)
4929 #define S_FW_RSS_IND_TBL_CMD_IQ20 0
4930 #define M_FW_RSS_IND_TBL_CMD_IQ20 0x3ff
4931 #define V_FW_RSS_IND_TBL_CMD_IQ20(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ20)
4932 #define G_FW_RSS_IND_TBL_CMD_IQ20(x) \
4933 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ20) & M_FW_RSS_IND_TBL_CMD_IQ20)
4935 #define S_FW_RSS_IND_TBL_CMD_IQ21 20
4936 #define M_FW_RSS_IND_TBL_CMD_IQ21 0x3ff
4937 #define V_FW_RSS_IND_TBL_CMD_IQ21(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ21)
4938 #define G_FW_RSS_IND_TBL_CMD_IQ21(x) \
4939 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ21) & M_FW_RSS_IND_TBL_CMD_IQ21)
4941 #define S_FW_RSS_IND_TBL_CMD_IQ22 10
4942 #define M_FW_RSS_IND_TBL_CMD_IQ22 0x3ff
4943 #define V_FW_RSS_IND_TBL_CMD_IQ22(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ22)
4944 #define G_FW_RSS_IND_TBL_CMD_IQ22(x) \
4945 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ22) & M_FW_RSS_IND_TBL_CMD_IQ22)
4947 #define S_FW_RSS_IND_TBL_CMD_IQ23 0
4948 #define M_FW_RSS_IND_TBL_CMD_IQ23 0x3ff
4949 #define V_FW_RSS_IND_TBL_CMD_IQ23(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ23)
4950 #define G_FW_RSS_IND_TBL_CMD_IQ23(x) \
4951 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ23) & M_FW_RSS_IND_TBL_CMD_IQ23)
4953 #define S_FW_RSS_IND_TBL_CMD_IQ24 20
4954 #define M_FW_RSS_IND_TBL_CMD_IQ24 0x3ff
4955 #define V_FW_RSS_IND_TBL_CMD_IQ24(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ24)
4956 #define G_FW_RSS_IND_TBL_CMD_IQ24(x) \
4957 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ24) & M_FW_RSS_IND_TBL_CMD_IQ24)
4959 #define S_FW_RSS_IND_TBL_CMD_IQ25 10
4960 #define M_FW_RSS_IND_TBL_CMD_IQ25 0x3ff
4961 #define V_FW_RSS_IND_TBL_CMD_IQ25(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ25)
4962 #define G_FW_RSS_IND_TBL_CMD_IQ25(x) \
4963 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ25) & M_FW_RSS_IND_TBL_CMD_IQ25)
4965 #define S_FW_RSS_IND_TBL_CMD_IQ26 0
4966 #define M_FW_RSS_IND_TBL_CMD_IQ26 0x3ff
4967 #define V_FW_RSS_IND_TBL_CMD_IQ26(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ26)
4968 #define G_FW_RSS_IND_TBL_CMD_IQ26(x) \
4969 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ26) & M_FW_RSS_IND_TBL_CMD_IQ26)
4971 #define S_FW_RSS_IND_TBL_CMD_IQ27 20
4972 #define M_FW_RSS_IND_TBL_CMD_IQ27 0x3ff
4973 #define V_FW_RSS_IND_TBL_CMD_IQ27(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ27)
4974 #define G_FW_RSS_IND_TBL_CMD_IQ27(x) \
4975 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ27) & M_FW_RSS_IND_TBL_CMD_IQ27)
4977 #define S_FW_RSS_IND_TBL_CMD_IQ28 10
4978 #define M_FW_RSS_IND_TBL_CMD_IQ28 0x3ff
4979 #define V_FW_RSS_IND_TBL_CMD_IQ28(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ28)
4980 #define G_FW_RSS_IND_TBL_CMD_IQ28(x) \
4981 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ28) & M_FW_RSS_IND_TBL_CMD_IQ28)
4983 #define S_FW_RSS_IND_TBL_CMD_IQ29 0
4984 #define M_FW_RSS_IND_TBL_CMD_IQ29 0x3ff
4985 #define V_FW_RSS_IND_TBL_CMD_IQ29(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ29)
4986 #define G_FW_RSS_IND_TBL_CMD_IQ29(x) \
4987 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ29) & M_FW_RSS_IND_TBL_CMD_IQ29)
4989 #define S_FW_RSS_IND_TBL_CMD_IQ30 20
4990 #define M_FW_RSS_IND_TBL_CMD_IQ30 0x3ff
4991 #define V_FW_RSS_IND_TBL_CMD_IQ30(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ30)
4992 #define G_FW_RSS_IND_TBL_CMD_IQ30(x) \
4993 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ30) & M_FW_RSS_IND_TBL_CMD_IQ30)
4995 #define S_FW_RSS_IND_TBL_CMD_IQ31 10
4996 #define M_FW_RSS_IND_TBL_CMD_IQ31 0x3ff
4997 #define V_FW_RSS_IND_TBL_CMD_IQ31(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ31)
4998 #define G_FW_RSS_IND_TBL_CMD_IQ31(x) \
4999 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ31) & M_FW_RSS_IND_TBL_CMD_IQ31)
5001 struct fw_rss_glb_config_cmd {
5003 __be32 retval_len16;
5004 union fw_rss_glb_config {
5005 struct fw_rss_glb_config_manual {
5011 struct fw_rss_glb_config_basicvirtual {
5013 __be32 synmapen_to_hashtoeplitz;
5020 #define S_FW_RSS_GLB_CONFIG_CMD_MODE 28
5021 #define M_FW_RSS_GLB_CONFIG_CMD_MODE 0xf
5022 #define V_FW_RSS_GLB_CONFIG_CMD_MODE(x) ((x) << S_FW_RSS_GLB_CONFIG_CMD_MODE)
5023 #define G_FW_RSS_GLB_CONFIG_CMD_MODE(x) \
5024 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_MODE) & M_FW_RSS_GLB_CONFIG_CMD_MODE)
5026 #define FW_RSS_GLB_CONFIG_CMD_MODE_MANUAL 0
5027 #define FW_RSS_GLB_CONFIG_CMD_MODE_BASICVIRTUAL 1
5028 #define FW_RSS_GLB_CONFIG_CMD_MODE_MAX 1
5030 #define S_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN 8
5031 #define M_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN 0x1
5032 #define V_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN(x) \
5033 ((x) << S_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN)
5034 #define G_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN(x) \
5035 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN) & \
5036 M_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN)
5037 #define F_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN \
5038 V_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN(1U)
5040 #define S_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6 7
5041 #define M_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6 0x1
5042 #define V_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6(x) \
5043 ((x) << S_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6)
5044 #define G_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6(x) \
5045 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6) & \
5046 M_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6)
5047 #define F_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6 \
5048 V_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6(1U)
5050 #define S_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6 6
5051 #define M_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6 0x1
5052 #define V_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6(x) \
5053 ((x) << S_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6)
5054 #define G_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6(x) \
5055 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6) & \
5056 M_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6)
5057 #define F_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6 \
5058 V_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6(1U)
5060 #define S_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4 5
5061 #define M_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4 0x1
5062 #define V_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4(x) \
5063 ((x) << S_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4)
5064 #define G_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4(x) \
5065 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4) & \
5066 M_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4)
5067 #define F_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4 \
5068 V_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4(1U)
5070 #define S_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4 4
5071 #define M_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4 0x1
5072 #define V_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4(x) \
5073 ((x) << S_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4)
5074 #define G_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4(x) \
5075 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4) & \
5076 M_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4)
5077 #define F_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4 \
5078 V_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4(1U)
5080 #define S_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN 3
5081 #define M_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN 0x1
5082 #define V_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN(x) \
5083 ((x) << S_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN)
5084 #define G_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN(x) \
5085 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN) & \
5086 M_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN)
5087 #define F_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN \
5088 V_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN(1U)
5090 #define S_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN 2
5091 #define M_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN 0x1
5092 #define V_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN(x) \
5093 ((x) << S_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN)
5094 #define G_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN(x) \
5095 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN) & \
5096 M_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN)
5097 #define F_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN \
5098 V_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN(1U)
5100 #define S_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP 1
5101 #define M_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP 0x1
5102 #define V_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP(x) \
5103 ((x) << S_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP)
5104 #define G_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP(x) \
5105 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP) & \
5106 M_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP)
5107 #define F_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP \
5108 V_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP(1U)
5110 #define S_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ 0
5111 #define M_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ 0x1
5112 #define V_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ(x) \
5113 ((x) << S_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ)
5114 #define G_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ(x) \
5115 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ) & \
5116 M_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ)
5117 #define F_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ \
5118 V_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ(1U)
5120 struct fw_rss_vi_config_cmd {
5122 __be32 retval_len16;
5123 union fw_rss_vi_config {
5124 struct fw_rss_vi_config_manual {
5129 struct fw_rss_vi_config_basicvirtual {
5131 __be32 defaultq_to_udpen;
5138 #define S_FW_RSS_VI_CONFIG_CMD_VIID 0
5139 #define M_FW_RSS_VI_CONFIG_CMD_VIID 0xfff
5140 #define V_FW_RSS_VI_CONFIG_CMD_VIID(x) ((x) << S_FW_RSS_VI_CONFIG_CMD_VIID)
5141 #define G_FW_RSS_VI_CONFIG_CMD_VIID(x) \
5142 (((x) >> S_FW_RSS_VI_CONFIG_CMD_VIID) & M_FW_RSS_VI_CONFIG_CMD_VIID)
5144 #define S_FW_RSS_VI_CONFIG_CMD_DEFAULTQ 16
5145 #define M_FW_RSS_VI_CONFIG_CMD_DEFAULTQ 0x3ff
5146 #define V_FW_RSS_VI_CONFIG_CMD_DEFAULTQ(x) \
5147 ((x) << S_FW_RSS_VI_CONFIG_CMD_DEFAULTQ)
5148 #define G_FW_RSS_VI_CONFIG_CMD_DEFAULTQ(x) \
5149 (((x) >> S_FW_RSS_VI_CONFIG_CMD_DEFAULTQ) & \
5150 M_FW_RSS_VI_CONFIG_CMD_DEFAULTQ)
5152 #define S_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN 4
5153 #define M_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN 0x1
5154 #define V_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN(x) \
5155 ((x) << S_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN)
5156 #define G_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN(x) \
5157 (((x) >> S_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN) & \
5158 M_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN)
5159 #define F_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN \
5160 V_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN(1U)
5162 #define S_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN 3
5163 #define M_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN 0x1
5164 #define V_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN(x) \
5165 ((x) << S_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN)
5166 #define G_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN(x) \
5167 (((x) >> S_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN) & \
5168 M_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN)
5169 #define F_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN \
5170 V_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN(1U)
5172 #define S_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN 2
5173 #define M_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN 0x1
5174 #define V_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN(x) \
5175 ((x) << S_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN)
5176 #define G_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN(x) \
5177 (((x) >> S_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN) & \
5178 M_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN)
5179 #define F_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN \
5180 V_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN(1U)
5182 #define S_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN 1
5183 #define M_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN 0x1
5184 #define V_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN(x) \
5185 ((x) << S_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN)
5186 #define G_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN(x) \
5187 (((x) >> S_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN) & \
5188 M_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN)
5189 #define F_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN \
5190 V_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN(1U)
5192 #define S_FW_RSS_VI_CONFIG_CMD_UDPEN 0
5193 #define M_FW_RSS_VI_CONFIG_CMD_UDPEN 0x1
5194 #define V_FW_RSS_VI_CONFIG_CMD_UDPEN(x) \
5195 ((x) << S_FW_RSS_VI_CONFIG_CMD_UDPEN)
5196 #define G_FW_RSS_VI_CONFIG_CMD_UDPEN(x) \
5197 (((x) >> S_FW_RSS_VI_CONFIG_CMD_UDPEN) & \
5198 M_FW_RSS_VI_CONFIG_CMD_UDPEN)
5199 #define F_FW_RSS_VI_CONFIG_CMD_UDPEN \
5200 V_FW_RSS_VI_CONFIG_CMD_UDPEN(1U)
5203 FW_SCHED_SC_CONFIG = 0,
5204 FW_SCHED_SC_PARAMS = 1,
5207 enum fw_sched_type {
5208 FW_SCHED_TYPE_PKTSCHED = 0,
5209 FW_SCHED_TYPE_STREAMSCHED = 1,
5212 enum fw_sched_params_level {
5213 FW_SCHED_PARAMS_LEVEL_CL_RL = 0,
5214 FW_SCHED_PARAMS_LEVEL_CL_WRR = 1,
5215 FW_SCHED_PARAMS_LEVEL_CH_RL = 2,
5216 FW_SCHED_PARAMS_LEVEL_CH_WRR = 3,
5219 enum fw_sched_params_mode {
5220 FW_SCHED_PARAMS_MODE_CLASS = 0,
5221 FW_SCHED_PARAMS_MODE_FLOW = 1,
5224 enum fw_sched_params_unit {
5225 FW_SCHED_PARAMS_UNIT_BITRATE = 0,
5226 FW_SCHED_PARAMS_UNIT_PKTRATE = 1,
5229 enum fw_sched_params_rate {
5230 FW_SCHED_PARAMS_RATE_REL = 0,
5231 FW_SCHED_PARAMS_RATE_ABS = 1,
5234 struct fw_sched_cmd {
5236 __be32 retval_len16;
5238 struct fw_sched_config {
5244 struct fw_sched_params {
5263 * length of the formatting string
5265 #define FW_DEVLOG_FMT_LEN 192
5268 * maximum number of the formatting string parameters
5270 #define FW_DEVLOG_FMT_PARAMS_NUM 8
5275 enum fw_devlog_level {
5276 FW_DEVLOG_LEVEL_EMERG = 0x0,
5277 FW_DEVLOG_LEVEL_CRIT = 0x1,
5278 FW_DEVLOG_LEVEL_ERR = 0x2,
5279 FW_DEVLOG_LEVEL_NOTICE = 0x3,
5280 FW_DEVLOG_LEVEL_INFO = 0x4,
5281 FW_DEVLOG_LEVEL_DEBUG = 0x5,
5282 FW_DEVLOG_LEVEL_MAX = 0x5,
5286 * facilities that may send a log message
5288 enum fw_devlog_facility {
5289 FW_DEVLOG_FACILITY_CORE = 0x00,
5290 FW_DEVLOG_FACILITY_SCHED = 0x02,
5291 FW_DEVLOG_FACILITY_TIMER = 0x04,
5292 FW_DEVLOG_FACILITY_RES = 0x06,
5293 FW_DEVLOG_FACILITY_HW = 0x08,
5294 FW_DEVLOG_FACILITY_FLR = 0x10,
5295 FW_DEVLOG_FACILITY_DMAQ = 0x12,
5296 FW_DEVLOG_FACILITY_PHY = 0x14,
5297 FW_DEVLOG_FACILITY_MAC = 0x16,
5298 FW_DEVLOG_FACILITY_PORT = 0x18,
5299 FW_DEVLOG_FACILITY_VI = 0x1A,
5300 FW_DEVLOG_FACILITY_FILTER = 0x1C,
5301 FW_DEVLOG_FACILITY_ACL = 0x1E,
5302 FW_DEVLOG_FACILITY_TM = 0x20,
5303 FW_DEVLOG_FACILITY_QFC = 0x22,
5304 FW_DEVLOG_FACILITY_DCB = 0x24,
5305 FW_DEVLOG_FACILITY_ETH = 0x26,
5306 FW_DEVLOG_FACILITY_OFLD = 0x28,
5307 FW_DEVLOG_FACILITY_RI = 0x2A,
5308 FW_DEVLOG_FACILITY_ISCSI = 0x2C,
5309 FW_DEVLOG_FACILITY_FCOE = 0x2E,
5310 FW_DEVLOG_FACILITY_FOISCSI = 0x30,
5311 FW_DEVLOG_FACILITY_FOFCOE = 0x32,
5312 FW_DEVLOG_FACILITY_MAX = 0x32,
5316 * log message format
5318 struct fw_devlog_e {
5324 __u8 fmt[FW_DEVLOG_FMT_LEN];
5325 __be32 params[FW_DEVLOG_FMT_PARAMS_NUM];
5326 __be32 reserved3[4];
5329 struct fw_devlog_cmd {
5331 __be32 retval_len16;
5334 __be32 memtype_devlog_memaddr16_devlog;
5335 __be32 memsize_devlog;
5339 #define S_FW_DEVLOG_CMD_MEMTYPE_DEVLOG 28
5340 #define M_FW_DEVLOG_CMD_MEMTYPE_DEVLOG 0xf
5341 #define V_FW_DEVLOG_CMD_MEMTYPE_DEVLOG(x) \
5342 ((x) << S_FW_DEVLOG_CMD_MEMTYPE_DEVLOG)
5343 #define G_FW_DEVLOG_CMD_MEMTYPE_DEVLOG(x) \
5344 (((x) >> S_FW_DEVLOG_CMD_MEMTYPE_DEVLOG) & M_FW_DEVLOG_CMD_MEMTYPE_DEVLOG)
5346 #define S_FW_DEVLOG_CMD_MEMADDR16_DEVLOG 0
5347 #define M_FW_DEVLOG_CMD_MEMADDR16_DEVLOG 0xfffffff
5348 #define V_FW_DEVLOG_CMD_MEMADDR16_DEVLOG(x) \
5349 ((x) << S_FW_DEVLOG_CMD_MEMADDR16_DEVLOG)
5350 #define G_FW_DEVLOG_CMD_MEMADDR16_DEVLOG(x) \
5351 (((x) >> S_FW_DEVLOG_CMD_MEMADDR16_DEVLOG) & \
5352 M_FW_DEVLOG_CMD_MEMADDR16_DEVLOG)
5354 struct fw_netif_cmd {
5356 __be32 retval_to_len16;
5357 __be32 add_to_ipv4gw;
5358 __be32 vlanid_mtuval;
5365 #define S_FW_NETIF_CMD_PORTID 0
5366 #define M_FW_NETIF_CMD_PORTID 0xf
5367 #define V_FW_NETIF_CMD_PORTID(x) ((x) << S_FW_NETIF_CMD_PORTID)
5368 #define G_FW_NETIF_CMD_PORTID(x) \
5369 (((x) >> S_FW_NETIF_CMD_PORTID) & M_FW_NETIF_CMD_PORTID)
5371 #define S_FW_NETIF_CMD_RETVAL 24
5372 #define M_FW_NETIF_CMD_RETVAL 0xff
5373 #define V_FW_NETIF_CMD_RETVAL(x) ((x) << S_FW_NETIF_CMD_RETVAL)
5374 #define G_FW_NETIF_CMD_RETVAL(x) \
5375 (((x) >> S_FW_NETIF_CMD_RETVAL) & M_FW_NETIF_CMD_RETVAL)
5377 #define S_FW_NETIF_CMD_IFIDX 16
5378 #define M_FW_NETIF_CMD_IFIDX 0xff
5379 #define V_FW_NETIF_CMD_IFIDX(x) ((x) << S_FW_NETIF_CMD_IFIDX)
5380 #define G_FW_NETIF_CMD_IFIDX(x) \
5381 (((x) >> S_FW_NETIF_CMD_IFIDX) & M_FW_NETIF_CMD_IFIDX)
5383 #define S_FW_NETIF_CMD_LEN16 0
5384 #define M_FW_NETIF_CMD_LEN16 0xff
5385 #define V_FW_NETIF_CMD_LEN16(x) ((x) << S_FW_NETIF_CMD_LEN16)
5386 #define G_FW_NETIF_CMD_LEN16(x) \
5387 (((x) >> S_FW_NETIF_CMD_LEN16) & M_FW_NETIF_CMD_LEN16)
5389 #define S_FW_NETIF_CMD_ADD 31
5390 #define M_FW_NETIF_CMD_ADD 0x1
5391 #define V_FW_NETIF_CMD_ADD(x) ((x) << S_FW_NETIF_CMD_ADD)
5392 #define G_FW_NETIF_CMD_ADD(x) \
5393 (((x) >> S_FW_NETIF_CMD_ADD) & M_FW_NETIF_CMD_ADD)
5394 #define F_FW_NETIF_CMD_ADD V_FW_NETIF_CMD_ADD(1U)
5396 #define S_FW_NETIF_CMD_LINK 30
5397 #define M_FW_NETIF_CMD_LINK 0x1
5398 #define V_FW_NETIF_CMD_LINK(x) ((x) << S_FW_NETIF_CMD_LINK)
5399 #define G_FW_NETIF_CMD_LINK(x) \
5400 (((x) >> S_FW_NETIF_CMD_LINK) & M_FW_NETIF_CMD_LINK)
5401 #define F_FW_NETIF_CMD_LINK V_FW_NETIF_CMD_LINK(1U)
5403 #define S_FW_NETIF_CMD_VLAN 29
5404 #define M_FW_NETIF_CMD_VLAN 0x1
5405 #define V_FW_NETIF_CMD_VLAN(x) ((x) << S_FW_NETIF_CMD_VLAN)
5406 #define G_FW_NETIF_CMD_VLAN(x) \
5407 (((x) >> S_FW_NETIF_CMD_VLAN) & M_FW_NETIF_CMD_VLAN)
5408 #define F_FW_NETIF_CMD_VLAN V_FW_NETIF_CMD_VLAN(1U)
5410 #define S_FW_NETIF_CMD_MTU 28
5411 #define M_FW_NETIF_CMD_MTU 0x1
5412 #define V_FW_NETIF_CMD_MTU(x) ((x) << S_FW_NETIF_CMD_MTU)
5413 #define G_FW_NETIF_CMD_MTU(x) \
5414 (((x) >> S_FW_NETIF_CMD_MTU) & M_FW_NETIF_CMD_MTU)
5415 #define F_FW_NETIF_CMD_MTU V_FW_NETIF_CMD_MTU(1U)
5417 #define S_FW_NETIF_CMD_DHCP 27
5418 #define M_FW_NETIF_CMD_DHCP 0x1
5419 #define V_FW_NETIF_CMD_DHCP(x) ((x) << S_FW_NETIF_CMD_DHCP)
5420 #define G_FW_NETIF_CMD_DHCP(x) \
5421 (((x) >> S_FW_NETIF_CMD_DHCP) & M_FW_NETIF_CMD_DHCP)
5422 #define F_FW_NETIF_CMD_DHCP V_FW_NETIF_CMD_DHCP(1U)
5424 #define S_FW_NETIF_CMD_IPV4BCADDR 3
5425 #define M_FW_NETIF_CMD_IPV4BCADDR 0x1
5426 #define V_FW_NETIF_CMD_IPV4BCADDR(x) ((x) << S_FW_NETIF_CMD_IPV4BCADDR)
5427 #define G_FW_NETIF_CMD_IPV4BCADDR(x) \
5428 (((x) >> S_FW_NETIF_CMD_IPV4BCADDR) & M_FW_NETIF_CMD_IPV4BCADDR)
5429 #define F_FW_NETIF_CMD_IPV4BCADDR V_FW_NETIF_CMD_IPV4BCADDR(1U)
5431 #define S_FW_NETIF_CMD_IPV4NMASK 2
5432 #define M_FW_NETIF_CMD_IPV4NMASK 0x1
5433 #define V_FW_NETIF_CMD_IPV4NMASK(x) ((x) << S_FW_NETIF_CMD_IPV4NMASK)
5434 #define G_FW_NETIF_CMD_IPV4NMASK(x) \
5435 (((x) >> S_FW_NETIF_CMD_IPV4NMASK) & M_FW_NETIF_CMD_IPV4NMASK)
5436 #define F_FW_NETIF_CMD_IPV4NMASK V_FW_NETIF_CMD_IPV4NMASK(1U)
5438 #define S_FW_NETIF_CMD_IPV4ADDR 1
5439 #define M_FW_NETIF_CMD_IPV4ADDR 0x1
5440 #define V_FW_NETIF_CMD_IPV4ADDR(x) ((x) << S_FW_NETIF_CMD_IPV4ADDR)
5441 #define G_FW_NETIF_CMD_IPV4ADDR(x) \
5442 (((x) >> S_FW_NETIF_CMD_IPV4ADDR) & M_FW_NETIF_CMD_IPV4ADDR)
5443 #define F_FW_NETIF_CMD_IPV4ADDR V_FW_NETIF_CMD_IPV4ADDR(1U)
5445 #define S_FW_NETIF_CMD_IPV4GW 0
5446 #define M_FW_NETIF_CMD_IPV4GW 0x1
5447 #define V_FW_NETIF_CMD_IPV4GW(x) ((x) << S_FW_NETIF_CMD_IPV4GW)
5448 #define G_FW_NETIF_CMD_IPV4GW(x) \
5449 (((x) >> S_FW_NETIF_CMD_IPV4GW) & M_FW_NETIF_CMD_IPV4GW)
5450 #define F_FW_NETIF_CMD_IPV4GW V_FW_NETIF_CMD_IPV4GW(1U)
5452 #define S_FW_NETIF_CMD_VLANID 16
5453 #define M_FW_NETIF_CMD_VLANID 0xfff
5454 #define V_FW_NETIF_CMD_VLANID(x) ((x) << S_FW_NETIF_CMD_VLANID)
5455 #define G_FW_NETIF_CMD_VLANID(x) \
5456 (((x) >> S_FW_NETIF_CMD_VLANID) & M_FW_NETIF_CMD_VLANID)
5458 #define S_FW_NETIF_CMD_MTUVAL 0
5459 #define M_FW_NETIF_CMD_MTUVAL 0xffff
5460 #define V_FW_NETIF_CMD_MTUVAL(x) ((x) << S_FW_NETIF_CMD_MTUVAL)
5461 #define G_FW_NETIF_CMD_MTUVAL(x) \
5462 (((x) >> S_FW_NETIF_CMD_MTUVAL) & M_FW_NETIF_CMD_MTUVAL)
5464 enum fw_error_type {
5465 FW_ERROR_TYPE_EXCEPTION = 0x0,
5466 FW_ERROR_TYPE_HWMODULE = 0x1,
5467 FW_ERROR_TYPE_WR = 0x2,
5468 FW_ERROR_TYPE_ACL = 0x3,
5471 struct fw_error_cmd {
5475 struct fw_error_exception {
5478 struct fw_error_hwmodule {
5482 struct fw_error_wr {
5488 struct fw_error_acl {
5499 #define S_FW_ERROR_CMD_FATAL 4
5500 #define M_FW_ERROR_CMD_FATAL 0x1
5501 #define V_FW_ERROR_CMD_FATAL(x) ((x) << S_FW_ERROR_CMD_FATAL)
5502 #define G_FW_ERROR_CMD_FATAL(x) \
5503 (((x) >> S_FW_ERROR_CMD_FATAL) & M_FW_ERROR_CMD_FATAL)
5504 #define F_FW_ERROR_CMD_FATAL V_FW_ERROR_CMD_FATAL(1U)
5506 #define S_FW_ERROR_CMD_TYPE 0
5507 #define M_FW_ERROR_CMD_TYPE 0xf
5508 #define V_FW_ERROR_CMD_TYPE(x) ((x) << S_FW_ERROR_CMD_TYPE)
5509 #define G_FW_ERROR_CMD_TYPE(x) \
5510 (((x) >> S_FW_ERROR_CMD_TYPE) & M_FW_ERROR_CMD_TYPE)
5512 #define S_FW_ERROR_CMD_PFN 8
5513 #define M_FW_ERROR_CMD_PFN 0x7
5514 #define V_FW_ERROR_CMD_PFN(x) ((x) << S_FW_ERROR_CMD_PFN)
5515 #define G_FW_ERROR_CMD_PFN(x) \
5516 (((x) >> S_FW_ERROR_CMD_PFN) & M_FW_ERROR_CMD_PFN)
5518 #define S_FW_ERROR_CMD_VFN 0
5519 #define M_FW_ERROR_CMD_VFN 0xff
5520 #define V_FW_ERROR_CMD_VFN(x) ((x) << S_FW_ERROR_CMD_VFN)
5521 #define G_FW_ERROR_CMD_VFN(x) \
5522 (((x) >> S_FW_ERROR_CMD_VFN) & M_FW_ERROR_CMD_VFN)
5524 #define S_FW_ERROR_CMD_PFN 8
5525 #define M_FW_ERROR_CMD_PFN 0x7
5526 #define V_FW_ERROR_CMD_PFN(x) ((x) << S_FW_ERROR_CMD_PFN)
5527 #define G_FW_ERROR_CMD_PFN(x) \
5528 (((x) >> S_FW_ERROR_CMD_PFN) & M_FW_ERROR_CMD_PFN)
5530 #define S_FW_ERROR_CMD_VFN 0
5531 #define M_FW_ERROR_CMD_VFN 0xff
5532 #define V_FW_ERROR_CMD_VFN(x) ((x) << S_FW_ERROR_CMD_VFN)
5533 #define G_FW_ERROR_CMD_VFN(x) \
5534 (((x) >> S_FW_ERROR_CMD_VFN) & M_FW_ERROR_CMD_VFN)
5536 #define S_FW_ERROR_CMD_MV 15
5537 #define M_FW_ERROR_CMD_MV 0x1
5538 #define V_FW_ERROR_CMD_MV(x) ((x) << S_FW_ERROR_CMD_MV)
5539 #define G_FW_ERROR_CMD_MV(x) \
5540 (((x) >> S_FW_ERROR_CMD_MV) & M_FW_ERROR_CMD_MV)
5541 #define F_FW_ERROR_CMD_MV V_FW_ERROR_CMD_MV(1U)
5543 struct fw_debug_cmd {
5547 struct fw_debug_assert {
5552 __u8 filename_0_7[8];
5553 __u8 filename_8_15[8];
5556 struct fw_debug_prt {
5559 __be32 dprtstrparam0;
5560 __be32 dprtstrparam1;
5561 __be32 dprtstrparam2;
5562 __be32 dprtstrparam3;
5567 #define S_FW_DEBUG_CMD_TYPE 0
5568 #define M_FW_DEBUG_CMD_TYPE 0xff
5569 #define V_FW_DEBUG_CMD_TYPE(x) ((x) << S_FW_DEBUG_CMD_TYPE)
5570 #define G_FW_DEBUG_CMD_TYPE(x) \
5571 (((x) >> S_FW_DEBUG_CMD_TYPE) & M_FW_DEBUG_CMD_TYPE)
5573 /******************************************************************************
5574 * B I N A R Y H E A D E R F O R M A T
5575 **********************************************/
5578 * firmware binary header format
5583 __be16 len512; /* bin length in units of 512-bytes */
5584 __be32 fw_ver; /* firmware version */
5585 __be32 tp_microcode_ver; /* tcp processor microcode version */
5590 __u8 intfver_iscsipdu;
5594 __be32 reserved3[27];
5597 #define S_FW_HDR_FW_VER_MAJOR 24
5598 #define M_FW_HDR_FW_VER_MAJOR 0xff
5599 #define V_FW_HDR_FW_VER_MAJOR(x) \
5600 ((x) << S_FW_HDR_FW_VER_MAJOR)
5601 #define G_FW_HDR_FW_VER_MAJOR(x) \
5602 (((x) >> S_FW_HDR_FW_VER_MAJOR) & M_FW_HDR_FW_VER_MAJOR)
5604 #define S_FW_HDR_FW_VER_MINOR 16
5605 #define M_FW_HDR_FW_VER_MINOR 0xff
5606 #define V_FW_HDR_FW_VER_MINOR(x) \
5607 ((x) << S_FW_HDR_FW_VER_MINOR)
5608 #define G_FW_HDR_FW_VER_MINOR(x) \
5609 (((x) >> S_FW_HDR_FW_VER_MINOR) & M_FW_HDR_FW_VER_MINOR)
5611 #define S_FW_HDR_FW_VER_MICRO 8
5612 #define M_FW_HDR_FW_VER_MICRO 0xff
5613 #define V_FW_HDR_FW_VER_MICRO(x) \
5614 ((x) << S_FW_HDR_FW_VER_MICRO)
5615 #define G_FW_HDR_FW_VER_MICRO(x) \
5616 (((x) >> S_FW_HDR_FW_VER_MICRO) & M_FW_HDR_FW_VER_MICRO)
5618 #define S_FW_HDR_FW_VER_BUILD 0
5619 #define M_FW_HDR_FW_VER_BUILD 0xff
5620 #define V_FW_HDR_FW_VER_BUILD(x) \
5621 ((x) << S_FW_HDR_FW_VER_BUILD)
5622 #define G_FW_HDR_FW_VER_BUILD(x) \
5623 (((x) >> S_FW_HDR_FW_VER_BUILD) & M_FW_HDR_FW_VER_BUILD)
5625 #endif /* _T4FW_INTERFACE_H_ */