2 * Copyright (c) 2012 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_ENOENT = 2, /* no such file or directory */
41 FW_EIO = 5, /* input/output error; hw bad */
42 FW_ENOEXEC = 8, /* exec format error; inv microcode */
43 FW_EAGAIN = 11, /* try again */
44 FW_ENOMEM = 12, /* out of memory */
45 FW_EFAULT = 14, /* bad address; fw bad */
46 FW_EBUSY = 16, /* resource busy */
47 FW_EEXIST = 17, /* file exists */
48 FW_ENODEV = 19, /* no such device */
49 FW_EINVAL = 22, /* invalid argument */
50 FW_ENOSPC = 28, /* no space left on device */
51 FW_ENOSYS = 38, /* functionality not implemented */
52 FW_ENODATA = 61, /* no data available */
53 FW_EPROTO = 71, /* protocol error */
54 FW_EADDRINUSE = 98, /* address already in use */
55 FW_EADDRNOTAVAIL = 99, /* cannot assigned requested address */
56 FW_ENETDOWN = 100, /* network is down */
57 FW_ENETUNREACH = 101, /* network is unreachable */
58 FW_ENOBUFS = 105, /* no buffer space available */
59 FW_ETIMEDOUT = 110, /* timeout */
60 FW_EINPROGRESS = 115, /* fw internal */
61 FW_SCSI_ABORT_REQUESTED = 128, /* */
62 FW_SCSI_ABORT_TIMEDOUT = 129, /* */
63 FW_SCSI_ABORTED = 130, /* */
64 FW_SCSI_CLOSE_REQUESTED = 131, /* */
65 FW_ERR_LINK_DOWN = 132, /* */
66 FW_RDEV_NOT_READY = 133, /* */
67 FW_ERR_RDEV_LOST = 134, /* */
68 FW_ERR_RDEV_LOGO = 135, /* */
69 FW_FCOE_NO_XCHG = 136, /* */
70 FW_SCSI_RSP_ERR = 137, /* */
71 FW_ERR_RDEV_IMPL_LOGO = 138, /* */
72 FW_SCSI_UNDER_FLOW_ERR = 139, /* */
73 FW_SCSI_OVER_FLOW_ERR = 140, /* */
74 FW_SCSI_DDP_ERR = 141, /* DDP error*/
75 FW_SCSI_TASK_ERR = 142, /* No SCSI tasks available */
78 /******************************************************************************
79 * W O R K R E Q U E S T s
80 ********************************/
87 FW_ETH_TX_PKT_WR = 0x08,
88 FW_ETH_TX_PKTS_WR = 0x09,
89 FW_ETH_TX_UO_WR = 0x1c,
90 FW_EQ_FLUSH_WR = 0x1b,
91 FW_OFLD_CONNECTION_WR = 0x2f,
93 FW_OFLD_TX_DATA_WR = 0x0b,
95 FW_ETH_TX_PKT_VM_WR = 0x11,
97 FW_RI_RDMA_WRITE_WR = 0x14,
99 FW_RI_RDMA_READ_WR = 0x16,
100 FW_RI_RECV_WR = 0x17,
101 FW_RI_BIND_MW_WR = 0x18,
102 FW_RI_FR_NSMR_WR = 0x19,
103 FW_RI_INV_LSTAG_WR = 0x1a,
104 FW_RI_SEND_IMMEDIATE_WR = 0x15,
105 FW_RI_ATOMIC_WR = 0x16,
107 FW_CHNET_IFCONF_WR = 0x6b,
109 FW_FOISCSI_NODE_WR = 0x60,
110 FW_FOISCSI_CTRL_WR = 0x6a,
111 FW_FOISCSI_CHAP_WR = 0x6c,
112 FW_FCOE_ELS_CT_WR = 0x30,
113 FW_SCSI_WRITE_WR = 0x31,
114 FW_SCSI_READ_WR = 0x32,
115 FW_SCSI_CMD_WR = 0x33,
116 FW_SCSI_ABRT_CLS_WR = 0x34,
117 FW_SCSI_TGT_ACC_WR = 0x35,
118 FW_SCSI_TGT_XMIT_WR = 0x36,
119 FW_SCSI_TGT_RSP_WR = 0x37,
120 FW_POFCOE_TCB_WR = 0x42,
121 FW_POFCOE_ULPTX_WR = 0x43,
126 * Generic work request header flit0
133 /* work request opcode (hi)
135 #define S_FW_WR_OP 24
136 #define M_FW_WR_OP 0xff
137 #define V_FW_WR_OP(x) ((x) << S_FW_WR_OP)
138 #define G_FW_WR_OP(x) (((x) >> S_FW_WR_OP) & M_FW_WR_OP)
140 /* atomic flag (hi) - firmware encapsulates CPLs in CPL_BARRIER
142 #define S_FW_WR_ATOMIC 23
143 #define M_FW_WR_ATOMIC 0x1
144 #define V_FW_WR_ATOMIC(x) ((x) << S_FW_WR_ATOMIC)
145 #define G_FW_WR_ATOMIC(x) \
146 (((x) >> S_FW_WR_ATOMIC) & M_FW_WR_ATOMIC)
147 #define F_FW_WR_ATOMIC V_FW_WR_ATOMIC(1U)
149 /* flush flag (hi) - firmware flushes flushable work request buffered
150 * in the flow context.
152 #define S_FW_WR_FLUSH 22
153 #define M_FW_WR_FLUSH 0x1
154 #define V_FW_WR_FLUSH(x) ((x) << S_FW_WR_FLUSH)
155 #define G_FW_WR_FLUSH(x) \
156 (((x) >> S_FW_WR_FLUSH) & M_FW_WR_FLUSH)
157 #define F_FW_WR_FLUSH V_FW_WR_FLUSH(1U)
159 /* completion flag (hi) - firmware generates a cpl_fw6_ack
161 #define S_FW_WR_COMPL 21
162 #define M_FW_WR_COMPL 0x1
163 #define V_FW_WR_COMPL(x) ((x) << S_FW_WR_COMPL)
164 #define G_FW_WR_COMPL(x) \
165 (((x) >> S_FW_WR_COMPL) & M_FW_WR_COMPL)
166 #define F_FW_WR_COMPL V_FW_WR_COMPL(1U)
169 /* work request immediate data lengh (hi)
171 #define S_FW_WR_IMMDLEN 0
172 #define M_FW_WR_IMMDLEN 0xff
173 #define V_FW_WR_IMMDLEN(x) ((x) << S_FW_WR_IMMDLEN)
174 #define G_FW_WR_IMMDLEN(x) \
175 (((x) >> S_FW_WR_IMMDLEN) & M_FW_WR_IMMDLEN)
177 /* egress queue status update to associated ingress queue entry (lo)
179 #define S_FW_WR_EQUIQ 31
180 #define M_FW_WR_EQUIQ 0x1
181 #define V_FW_WR_EQUIQ(x) ((x) << S_FW_WR_EQUIQ)
182 #define G_FW_WR_EQUIQ(x) (((x) >> S_FW_WR_EQUIQ) & M_FW_WR_EQUIQ)
183 #define F_FW_WR_EQUIQ V_FW_WR_EQUIQ(1U)
185 /* egress queue status update to egress queue status entry (lo)
187 #define S_FW_WR_EQUEQ 30
188 #define M_FW_WR_EQUEQ 0x1
189 #define V_FW_WR_EQUEQ(x) ((x) << S_FW_WR_EQUEQ)
190 #define G_FW_WR_EQUEQ(x) (((x) >> S_FW_WR_EQUEQ) & M_FW_WR_EQUEQ)
191 #define F_FW_WR_EQUEQ V_FW_WR_EQUEQ(1U)
193 /* flow context identifier (lo)
195 #define S_FW_WR_FLOWID 8
196 #define M_FW_WR_FLOWID 0xfffff
197 #define V_FW_WR_FLOWID(x) ((x) << S_FW_WR_FLOWID)
198 #define G_FW_WR_FLOWID(x) (((x) >> S_FW_WR_FLOWID) & M_FW_WR_FLOWID)
200 /* length in units of 16-bytes (lo)
202 #define S_FW_WR_LEN16 0
203 #define M_FW_WR_LEN16 0xff
204 #define V_FW_WR_LEN16(x) ((x) << S_FW_WR_LEN16)
205 #define G_FW_WR_LEN16(x) (((x) >> S_FW_WR_LEN16) & M_FW_WR_LEN16)
208 __be32 op_to_fragoff16;
213 #define S_FW_FRAG_WR_EOF 15
214 #define M_FW_FRAG_WR_EOF 0x1
215 #define V_FW_FRAG_WR_EOF(x) ((x) << S_FW_FRAG_WR_EOF)
216 #define G_FW_FRAG_WR_EOF(x) (((x) >> S_FW_FRAG_WR_EOF) & M_FW_FRAG_WR_EOF)
217 #define F_FW_FRAG_WR_EOF V_FW_FRAG_WR_EOF(1U)
219 #define S_FW_FRAG_WR_FRAGOFF16 8
220 #define M_FW_FRAG_WR_FRAGOFF16 0x7f
221 #define V_FW_FRAG_WR_FRAGOFF16(x) ((x) << S_FW_FRAG_WR_FRAGOFF16)
222 #define G_FW_FRAG_WR_FRAGOFF16(x) \
223 (((x) >> S_FW_FRAG_WR_FRAGOFF16) & M_FW_FRAG_WR_FRAGOFF16)
225 /* valid filter configurations for compressed tuple
226 * Encodings: TPL - Compressed TUPLE for filter in addition to 4-tuple
227 * FR - FRAGMENT, FC - FCoE, MT - MPS MATCH TYPE, M - MPS MATCH,
228 * E - Ethertype, P - Port, PR - Protocol, T - TOS, IV - Inner VLAN,
229 * OV - Outer VLAN/VNIC_ID,
231 #define HW_TPL_FR_MT_M_E_P_FC 0x3C3
232 #define HW_TPL_FR_MT_M_PR_T_FC 0x3B3
233 #define HW_TPL_FR_MT_M_IV_P_FC 0x38B
234 #define HW_TPL_FR_MT_M_OV_P_FC 0x387
235 #define HW_TPL_FR_MT_E_PR_T 0x370
236 #define HW_TPL_FR_MT_E_PR_P_FC 0X363
237 #define HW_TPL_FR_MT_E_T_P_FC 0X353
238 #define HW_TPL_FR_MT_PR_IV_P_FC 0X32B
239 #define HW_TPL_FR_MT_PR_OV_P_FC 0X327
240 #define HW_TPL_FR_MT_T_IV_P_FC 0X31B
241 #define HW_TPL_FR_MT_T_OV_P_FC 0X317
242 #define HW_TPL_FR_M_E_PR_FC 0X2E1
243 #define HW_TPL_FR_M_E_T_FC 0X2D1
244 #define HW_TPL_FR_M_PR_IV_FC 0X2A9
245 #define HW_TPL_FR_M_PR_OV_FC 0X2A5
246 #define HW_TPL_FR_M_T_IV_FC 0X299
247 #define HW_TPL_FR_M_T_OV_FC 0X295
248 #define HW_TPL_FR_E_PR_T_P 0X272
249 #define HW_TPL_FR_E_PR_T_FC 0X271
250 #define HW_TPL_FR_E_IV_FC 0X249
251 #define HW_TPL_FR_E_OV_FC 0X245
252 #define HW_TPL_FR_PR_T_IV_FC 0X239
253 #define HW_TPL_FR_PR_T_OV_FC 0X235
254 #define HW_TPL_FR_IV_OV_FC 0X20D
255 #define HW_TPL_MT_M_E_PR 0X1E0
256 #define HW_TPL_MT_M_E_T 0X1D0
257 #define HW_TPL_MT_E_PR_T_FC 0X171
258 #define HW_TPL_MT_E_IV 0X148
259 #define HW_TPL_MT_E_OV 0X144
260 #define HW_TPL_MT_PR_T_IV 0X138
261 #define HW_TPL_MT_PR_T_OV 0X134
262 #define HW_TPL_M_E_PR_P 0X0E2
263 #define HW_TPL_M_E_T_P 0X0D2
264 #define HW_TPL_E_PR_T_P_FC 0X073
265 #define HW_TPL_E_IV_P 0X04A
266 #define HW_TPL_E_OV_P 0X046
267 #define HW_TPL_PR_T_IV_P 0X03A
268 #define HW_TPL_PR_T_OV_P 0X036
270 /* filter wr reply code in cookie in CPL_SET_TCB_RPL */
271 enum fw_filter_wr_cookie {
272 FW_FILTER_WR_SUCCESS,
273 FW_FILTER_WR_FLT_ADDED,
274 FW_FILTER_WR_FLT_DELETED,
275 FW_FILTER_WR_SMT_TBL_FULL,
279 struct fw_filter_wr {
284 __be32 del_filter_to_l2tix;
287 __u8 frag_to_ovlan_vldm;
289 __be16 rx_chan_rx_rpl_iq;
290 __be32 maci_to_matchtypem;
311 #define S_FW_FILTER_WR_TID 12
312 #define M_FW_FILTER_WR_TID 0xfffff
313 #define V_FW_FILTER_WR_TID(x) ((x) << S_FW_FILTER_WR_TID)
314 #define G_FW_FILTER_WR_TID(x) \
315 (((x) >> S_FW_FILTER_WR_TID) & M_FW_FILTER_WR_TID)
317 #define S_FW_FILTER_WR_RQTYPE 11
318 #define M_FW_FILTER_WR_RQTYPE 0x1
319 #define V_FW_FILTER_WR_RQTYPE(x) ((x) << S_FW_FILTER_WR_RQTYPE)
320 #define G_FW_FILTER_WR_RQTYPE(x) \
321 (((x) >> S_FW_FILTER_WR_RQTYPE) & M_FW_FILTER_WR_RQTYPE)
322 #define F_FW_FILTER_WR_RQTYPE V_FW_FILTER_WR_RQTYPE(1U)
324 #define S_FW_FILTER_WR_NOREPLY 10
325 #define M_FW_FILTER_WR_NOREPLY 0x1
326 #define V_FW_FILTER_WR_NOREPLY(x) ((x) << S_FW_FILTER_WR_NOREPLY)
327 #define G_FW_FILTER_WR_NOREPLY(x) \
328 (((x) >> S_FW_FILTER_WR_NOREPLY) & M_FW_FILTER_WR_NOREPLY)
329 #define F_FW_FILTER_WR_NOREPLY V_FW_FILTER_WR_NOREPLY(1U)
331 #define S_FW_FILTER_WR_IQ 0
332 #define M_FW_FILTER_WR_IQ 0x3ff
333 #define V_FW_FILTER_WR_IQ(x) ((x) << S_FW_FILTER_WR_IQ)
334 #define G_FW_FILTER_WR_IQ(x) \
335 (((x) >> S_FW_FILTER_WR_IQ) & M_FW_FILTER_WR_IQ)
337 #define S_FW_FILTER_WR_DEL_FILTER 31
338 #define M_FW_FILTER_WR_DEL_FILTER 0x1
339 #define V_FW_FILTER_WR_DEL_FILTER(x) ((x) << S_FW_FILTER_WR_DEL_FILTER)
340 #define G_FW_FILTER_WR_DEL_FILTER(x) \
341 (((x) >> S_FW_FILTER_WR_DEL_FILTER) & M_FW_FILTER_WR_DEL_FILTER)
342 #define F_FW_FILTER_WR_DEL_FILTER V_FW_FILTER_WR_DEL_FILTER(1U)
344 #define S_FW_FILTER_WR_RPTTID 25
345 #define M_FW_FILTER_WR_RPTTID 0x1
346 #define V_FW_FILTER_WR_RPTTID(x) ((x) << S_FW_FILTER_WR_RPTTID)
347 #define G_FW_FILTER_WR_RPTTID(x) \
348 (((x) >> S_FW_FILTER_WR_RPTTID) & M_FW_FILTER_WR_RPTTID)
349 #define F_FW_FILTER_WR_RPTTID V_FW_FILTER_WR_RPTTID(1U)
351 #define S_FW_FILTER_WR_DROP 24
352 #define M_FW_FILTER_WR_DROP 0x1
353 #define V_FW_FILTER_WR_DROP(x) ((x) << S_FW_FILTER_WR_DROP)
354 #define G_FW_FILTER_WR_DROP(x) \
355 (((x) >> S_FW_FILTER_WR_DROP) & M_FW_FILTER_WR_DROP)
356 #define F_FW_FILTER_WR_DROP V_FW_FILTER_WR_DROP(1U)
358 #define S_FW_FILTER_WR_DIRSTEER 23
359 #define M_FW_FILTER_WR_DIRSTEER 0x1
360 #define V_FW_FILTER_WR_DIRSTEER(x) ((x) << S_FW_FILTER_WR_DIRSTEER)
361 #define G_FW_FILTER_WR_DIRSTEER(x) \
362 (((x) >> S_FW_FILTER_WR_DIRSTEER) & M_FW_FILTER_WR_DIRSTEER)
363 #define F_FW_FILTER_WR_DIRSTEER V_FW_FILTER_WR_DIRSTEER(1U)
365 #define S_FW_FILTER_WR_MASKHASH 22
366 #define M_FW_FILTER_WR_MASKHASH 0x1
367 #define V_FW_FILTER_WR_MASKHASH(x) ((x) << S_FW_FILTER_WR_MASKHASH)
368 #define G_FW_FILTER_WR_MASKHASH(x) \
369 (((x) >> S_FW_FILTER_WR_MASKHASH) & M_FW_FILTER_WR_MASKHASH)
370 #define F_FW_FILTER_WR_MASKHASH V_FW_FILTER_WR_MASKHASH(1U)
372 #define S_FW_FILTER_WR_DIRSTEERHASH 21
373 #define M_FW_FILTER_WR_DIRSTEERHASH 0x1
374 #define V_FW_FILTER_WR_DIRSTEERHASH(x) ((x) << S_FW_FILTER_WR_DIRSTEERHASH)
375 #define G_FW_FILTER_WR_DIRSTEERHASH(x) \
376 (((x) >> S_FW_FILTER_WR_DIRSTEERHASH) & M_FW_FILTER_WR_DIRSTEERHASH)
377 #define F_FW_FILTER_WR_DIRSTEERHASH V_FW_FILTER_WR_DIRSTEERHASH(1U)
379 #define S_FW_FILTER_WR_LPBK 20
380 #define M_FW_FILTER_WR_LPBK 0x1
381 #define V_FW_FILTER_WR_LPBK(x) ((x) << S_FW_FILTER_WR_LPBK)
382 #define G_FW_FILTER_WR_LPBK(x) \
383 (((x) >> S_FW_FILTER_WR_LPBK) & M_FW_FILTER_WR_LPBK)
384 #define F_FW_FILTER_WR_LPBK V_FW_FILTER_WR_LPBK(1U)
386 #define S_FW_FILTER_WR_DMAC 19
387 #define M_FW_FILTER_WR_DMAC 0x1
388 #define V_FW_FILTER_WR_DMAC(x) ((x) << S_FW_FILTER_WR_DMAC)
389 #define G_FW_FILTER_WR_DMAC(x) \
390 (((x) >> S_FW_FILTER_WR_DMAC) & M_FW_FILTER_WR_DMAC)
391 #define F_FW_FILTER_WR_DMAC V_FW_FILTER_WR_DMAC(1U)
393 #define S_FW_FILTER_WR_SMAC 18
394 #define M_FW_FILTER_WR_SMAC 0x1
395 #define V_FW_FILTER_WR_SMAC(x) ((x) << S_FW_FILTER_WR_SMAC)
396 #define G_FW_FILTER_WR_SMAC(x) \
397 (((x) >> S_FW_FILTER_WR_SMAC) & M_FW_FILTER_WR_SMAC)
398 #define F_FW_FILTER_WR_SMAC V_FW_FILTER_WR_SMAC(1U)
400 #define S_FW_FILTER_WR_INSVLAN 17
401 #define M_FW_FILTER_WR_INSVLAN 0x1
402 #define V_FW_FILTER_WR_INSVLAN(x) ((x) << S_FW_FILTER_WR_INSVLAN)
403 #define G_FW_FILTER_WR_INSVLAN(x) \
404 (((x) >> S_FW_FILTER_WR_INSVLAN) & M_FW_FILTER_WR_INSVLAN)
405 #define F_FW_FILTER_WR_INSVLAN V_FW_FILTER_WR_INSVLAN(1U)
407 #define S_FW_FILTER_WR_RMVLAN 16
408 #define M_FW_FILTER_WR_RMVLAN 0x1
409 #define V_FW_FILTER_WR_RMVLAN(x) ((x) << S_FW_FILTER_WR_RMVLAN)
410 #define G_FW_FILTER_WR_RMVLAN(x) \
411 (((x) >> S_FW_FILTER_WR_RMVLAN) & M_FW_FILTER_WR_RMVLAN)
412 #define F_FW_FILTER_WR_RMVLAN V_FW_FILTER_WR_RMVLAN(1U)
414 #define S_FW_FILTER_WR_HITCNTS 15
415 #define M_FW_FILTER_WR_HITCNTS 0x1
416 #define V_FW_FILTER_WR_HITCNTS(x) ((x) << S_FW_FILTER_WR_HITCNTS)
417 #define G_FW_FILTER_WR_HITCNTS(x) \
418 (((x) >> S_FW_FILTER_WR_HITCNTS) & M_FW_FILTER_WR_HITCNTS)
419 #define F_FW_FILTER_WR_HITCNTS V_FW_FILTER_WR_HITCNTS(1U)
421 #define S_FW_FILTER_WR_TXCHAN 13
422 #define M_FW_FILTER_WR_TXCHAN 0x3
423 #define V_FW_FILTER_WR_TXCHAN(x) ((x) << S_FW_FILTER_WR_TXCHAN)
424 #define G_FW_FILTER_WR_TXCHAN(x) \
425 (((x) >> S_FW_FILTER_WR_TXCHAN) & M_FW_FILTER_WR_TXCHAN)
427 #define S_FW_FILTER_WR_PRIO 12
428 #define M_FW_FILTER_WR_PRIO 0x1
429 #define V_FW_FILTER_WR_PRIO(x) ((x) << S_FW_FILTER_WR_PRIO)
430 #define G_FW_FILTER_WR_PRIO(x) \
431 (((x) >> S_FW_FILTER_WR_PRIO) & M_FW_FILTER_WR_PRIO)
432 #define F_FW_FILTER_WR_PRIO V_FW_FILTER_WR_PRIO(1U)
434 #define S_FW_FILTER_WR_L2TIX 0
435 #define M_FW_FILTER_WR_L2TIX 0xfff
436 #define V_FW_FILTER_WR_L2TIX(x) ((x) << S_FW_FILTER_WR_L2TIX)
437 #define G_FW_FILTER_WR_L2TIX(x) \
438 (((x) >> S_FW_FILTER_WR_L2TIX) & M_FW_FILTER_WR_L2TIX)
440 #define S_FW_FILTER_WR_FRAG 7
441 #define M_FW_FILTER_WR_FRAG 0x1
442 #define V_FW_FILTER_WR_FRAG(x) ((x) << S_FW_FILTER_WR_FRAG)
443 #define G_FW_FILTER_WR_FRAG(x) \
444 (((x) >> S_FW_FILTER_WR_FRAG) & M_FW_FILTER_WR_FRAG)
445 #define F_FW_FILTER_WR_FRAG V_FW_FILTER_WR_FRAG(1U)
447 #define S_FW_FILTER_WR_FRAGM 6
448 #define M_FW_FILTER_WR_FRAGM 0x1
449 #define V_FW_FILTER_WR_FRAGM(x) ((x) << S_FW_FILTER_WR_FRAGM)
450 #define G_FW_FILTER_WR_FRAGM(x) \
451 (((x) >> S_FW_FILTER_WR_FRAGM) & M_FW_FILTER_WR_FRAGM)
452 #define F_FW_FILTER_WR_FRAGM V_FW_FILTER_WR_FRAGM(1U)
454 #define S_FW_FILTER_WR_IVLAN_VLD 5
455 #define M_FW_FILTER_WR_IVLAN_VLD 0x1
456 #define V_FW_FILTER_WR_IVLAN_VLD(x) ((x) << S_FW_FILTER_WR_IVLAN_VLD)
457 #define G_FW_FILTER_WR_IVLAN_VLD(x) \
458 (((x) >> S_FW_FILTER_WR_IVLAN_VLD) & M_FW_FILTER_WR_IVLAN_VLD)
459 #define F_FW_FILTER_WR_IVLAN_VLD V_FW_FILTER_WR_IVLAN_VLD(1U)
461 #define S_FW_FILTER_WR_OVLAN_VLD 4
462 #define M_FW_FILTER_WR_OVLAN_VLD 0x1
463 #define V_FW_FILTER_WR_OVLAN_VLD(x) ((x) << S_FW_FILTER_WR_OVLAN_VLD)
464 #define G_FW_FILTER_WR_OVLAN_VLD(x) \
465 (((x) >> S_FW_FILTER_WR_OVLAN_VLD) & M_FW_FILTER_WR_OVLAN_VLD)
466 #define F_FW_FILTER_WR_OVLAN_VLD V_FW_FILTER_WR_OVLAN_VLD(1U)
468 #define S_FW_FILTER_WR_IVLAN_VLDM 3
469 #define M_FW_FILTER_WR_IVLAN_VLDM 0x1
470 #define V_FW_FILTER_WR_IVLAN_VLDM(x) ((x) << S_FW_FILTER_WR_IVLAN_VLDM)
471 #define G_FW_FILTER_WR_IVLAN_VLDM(x) \
472 (((x) >> S_FW_FILTER_WR_IVLAN_VLDM) & M_FW_FILTER_WR_IVLAN_VLDM)
473 #define F_FW_FILTER_WR_IVLAN_VLDM V_FW_FILTER_WR_IVLAN_VLDM(1U)
475 #define S_FW_FILTER_WR_OVLAN_VLDM 2
476 #define M_FW_FILTER_WR_OVLAN_VLDM 0x1
477 #define V_FW_FILTER_WR_OVLAN_VLDM(x) ((x) << S_FW_FILTER_WR_OVLAN_VLDM)
478 #define G_FW_FILTER_WR_OVLAN_VLDM(x) \
479 (((x) >> S_FW_FILTER_WR_OVLAN_VLDM) & M_FW_FILTER_WR_OVLAN_VLDM)
480 #define F_FW_FILTER_WR_OVLAN_VLDM V_FW_FILTER_WR_OVLAN_VLDM(1U)
482 #define S_FW_FILTER_WR_RX_CHAN 15
483 #define M_FW_FILTER_WR_RX_CHAN 0x1
484 #define V_FW_FILTER_WR_RX_CHAN(x) ((x) << S_FW_FILTER_WR_RX_CHAN)
485 #define G_FW_FILTER_WR_RX_CHAN(x) \
486 (((x) >> S_FW_FILTER_WR_RX_CHAN) & M_FW_FILTER_WR_RX_CHAN)
487 #define F_FW_FILTER_WR_RX_CHAN V_FW_FILTER_WR_RX_CHAN(1U)
489 #define S_FW_FILTER_WR_RX_RPL_IQ 0
490 #define M_FW_FILTER_WR_RX_RPL_IQ 0x3ff
491 #define V_FW_FILTER_WR_RX_RPL_IQ(x) ((x) << S_FW_FILTER_WR_RX_RPL_IQ)
492 #define G_FW_FILTER_WR_RX_RPL_IQ(x) \
493 (((x) >> S_FW_FILTER_WR_RX_RPL_IQ) & M_FW_FILTER_WR_RX_RPL_IQ)
495 #define S_FW_FILTER_WR_MACI 23
496 #define M_FW_FILTER_WR_MACI 0x1ff
497 #define V_FW_FILTER_WR_MACI(x) ((x) << S_FW_FILTER_WR_MACI)
498 #define G_FW_FILTER_WR_MACI(x) \
499 (((x) >> S_FW_FILTER_WR_MACI) & M_FW_FILTER_WR_MACI)
501 #define S_FW_FILTER_WR_MACIM 14
502 #define M_FW_FILTER_WR_MACIM 0x1ff
503 #define V_FW_FILTER_WR_MACIM(x) ((x) << S_FW_FILTER_WR_MACIM)
504 #define G_FW_FILTER_WR_MACIM(x) \
505 (((x) >> S_FW_FILTER_WR_MACIM) & M_FW_FILTER_WR_MACIM)
507 #define S_FW_FILTER_WR_FCOE 13
508 #define M_FW_FILTER_WR_FCOE 0x1
509 #define V_FW_FILTER_WR_FCOE(x) ((x) << S_FW_FILTER_WR_FCOE)
510 #define G_FW_FILTER_WR_FCOE(x) \
511 (((x) >> S_FW_FILTER_WR_FCOE) & M_FW_FILTER_WR_FCOE)
512 #define F_FW_FILTER_WR_FCOE V_FW_FILTER_WR_FCOE(1U)
514 #define S_FW_FILTER_WR_FCOEM 12
515 #define M_FW_FILTER_WR_FCOEM 0x1
516 #define V_FW_FILTER_WR_FCOEM(x) ((x) << S_FW_FILTER_WR_FCOEM)
517 #define G_FW_FILTER_WR_FCOEM(x) \
518 (((x) >> S_FW_FILTER_WR_FCOEM) & M_FW_FILTER_WR_FCOEM)
519 #define F_FW_FILTER_WR_FCOEM V_FW_FILTER_WR_FCOEM(1U)
521 #define S_FW_FILTER_WR_PORT 9
522 #define M_FW_FILTER_WR_PORT 0x7
523 #define V_FW_FILTER_WR_PORT(x) ((x) << S_FW_FILTER_WR_PORT)
524 #define G_FW_FILTER_WR_PORT(x) \
525 (((x) >> S_FW_FILTER_WR_PORT) & M_FW_FILTER_WR_PORT)
527 #define S_FW_FILTER_WR_PORTM 6
528 #define M_FW_FILTER_WR_PORTM 0x7
529 #define V_FW_FILTER_WR_PORTM(x) ((x) << S_FW_FILTER_WR_PORTM)
530 #define G_FW_FILTER_WR_PORTM(x) \
531 (((x) >> S_FW_FILTER_WR_PORTM) & M_FW_FILTER_WR_PORTM)
533 #define S_FW_FILTER_WR_MATCHTYPE 3
534 #define M_FW_FILTER_WR_MATCHTYPE 0x7
535 #define V_FW_FILTER_WR_MATCHTYPE(x) ((x) << S_FW_FILTER_WR_MATCHTYPE)
536 #define G_FW_FILTER_WR_MATCHTYPE(x) \
537 (((x) >> S_FW_FILTER_WR_MATCHTYPE) & M_FW_FILTER_WR_MATCHTYPE)
539 #define S_FW_FILTER_WR_MATCHTYPEM 0
540 #define M_FW_FILTER_WR_MATCHTYPEM 0x7
541 #define V_FW_FILTER_WR_MATCHTYPEM(x) ((x) << S_FW_FILTER_WR_MATCHTYPEM)
542 #define G_FW_FILTER_WR_MATCHTYPEM(x) \
543 (((x) >> S_FW_FILTER_WR_MATCHTYPEM) & M_FW_FILTER_WR_MATCHTYPEM)
552 __be32 op_to_immdlen;
557 struct fw_eth_tx_pkt_wr {
559 __be32 equiq_to_len16;
563 #define S_FW_ETH_TX_PKT_WR_IMMDLEN 0
564 #define M_FW_ETH_TX_PKT_WR_IMMDLEN 0x1ff
565 #define V_FW_ETH_TX_PKT_WR_IMMDLEN(x) ((x) << S_FW_ETH_TX_PKT_WR_IMMDLEN)
566 #define G_FW_ETH_TX_PKT_WR_IMMDLEN(x) \
567 (((x) >> S_FW_ETH_TX_PKT_WR_IMMDLEN) & M_FW_ETH_TX_PKT_WR_IMMDLEN)
569 struct fw_eth_tx_pkts_wr {
571 __be32 equiq_to_len16;
578 struct fw_eth_tx_uo_wr {
580 __be32 equiq_to_len16;
593 struct fw_eq_flush_wr {
596 __be32 equiq_to_len16;
600 struct fw_ofld_connection_wr {
606 struct fw_ofld_connection_le {
612 union fw_ofld_connection_leip {
613 struct fw_ofld_connection_le_ipv4 {
620 struct fw_ofld_connection_le_ipv6 {
628 struct fw_ofld_connection_tcb {
629 __be32 t_state_to_astid;
630 __be16 cplrxdataack_cplpassacceptrpl;
642 #define S_FW_OFLD_CONNECTION_WR_VERSION 31
643 #define M_FW_OFLD_CONNECTION_WR_VERSION 0x1
644 #define V_FW_OFLD_CONNECTION_WR_VERSION(x) \
645 ((x) << S_FW_OFLD_CONNECTION_WR_VERSION)
646 #define G_FW_OFLD_CONNECTION_WR_VERSION(x) \
647 (((x) >> S_FW_OFLD_CONNECTION_WR_VERSION) & \
648 M_FW_OFLD_CONNECTION_WR_VERSION)
649 #define F_FW_OFLD_CONNECTION_WR_VERSION V_FW_OFLD_CONNECTION_WR_VERSION(1U)
651 #define S_FW_OFLD_CONNECTION_WR_CPL 30
652 #define M_FW_OFLD_CONNECTION_WR_CPL 0x1
653 #define V_FW_OFLD_CONNECTION_WR_CPL(x) ((x) << S_FW_OFLD_CONNECTION_WR_CPL)
654 #define G_FW_OFLD_CONNECTION_WR_CPL(x) \
655 (((x) >> S_FW_OFLD_CONNECTION_WR_CPL) & M_FW_OFLD_CONNECTION_WR_CPL)
656 #define F_FW_OFLD_CONNECTION_WR_CPL V_FW_OFLD_CONNECTION_WR_CPL(1U)
658 #define S_FW_OFLD_CONNECTION_WR_T_STATE 28
659 #define M_FW_OFLD_CONNECTION_WR_T_STATE 0xf
660 #define V_FW_OFLD_CONNECTION_WR_T_STATE(x) \
661 ((x) << S_FW_OFLD_CONNECTION_WR_T_STATE)
662 #define G_FW_OFLD_CONNECTION_WR_T_STATE(x) \
663 (((x) >> S_FW_OFLD_CONNECTION_WR_T_STATE) & \
664 M_FW_OFLD_CONNECTION_WR_T_STATE)
666 #define S_FW_OFLD_CONNECTION_WR_RCV_SCALE 24
667 #define M_FW_OFLD_CONNECTION_WR_RCV_SCALE 0xf
668 #define V_FW_OFLD_CONNECTION_WR_RCV_SCALE(x) \
669 ((x) << S_FW_OFLD_CONNECTION_WR_RCV_SCALE)
670 #define G_FW_OFLD_CONNECTION_WR_RCV_SCALE(x) \
671 (((x) >> S_FW_OFLD_CONNECTION_WR_RCV_SCALE) & \
672 M_FW_OFLD_CONNECTION_WR_RCV_SCALE)
674 #define S_FW_OFLD_CONNECTION_WR_ASTID 0
675 #define M_FW_OFLD_CONNECTION_WR_ASTID 0xffffff
676 #define V_FW_OFLD_CONNECTION_WR_ASTID(x) \
677 ((x) << S_FW_OFLD_CONNECTION_WR_ASTID)
678 #define G_FW_OFLD_CONNECTION_WR_ASTID(x) \
679 (((x) >> S_FW_OFLD_CONNECTION_WR_ASTID) & M_FW_OFLD_CONNECTION_WR_ASTID)
681 #define S_FW_OFLD_CONNECTION_WR_CPLRXDATAACK 15
682 #define M_FW_OFLD_CONNECTION_WR_CPLRXDATAACK 0x1
683 #define V_FW_OFLD_CONNECTION_WR_CPLRXDATAACK(x) \
684 ((x) << S_FW_OFLD_CONNECTION_WR_CPLRXDATAACK)
685 #define G_FW_OFLD_CONNECTION_WR_CPLRXDATAACK(x) \
686 (((x) >> S_FW_OFLD_CONNECTION_WR_CPLRXDATAACK) & \
687 M_FW_OFLD_CONNECTION_WR_CPLRXDATAACK)
688 #define F_FW_OFLD_CONNECTION_WR_CPLRXDATAACK \
689 V_FW_OFLD_CONNECTION_WR_CPLRXDATAACK(1U)
691 #define S_FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL 14
692 #define M_FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL 0x1
693 #define V_FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL(x) \
694 ((x) << S_FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL)
695 #define G_FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL(x) \
696 (((x) >> S_FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL) & \
697 M_FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL)
698 #define F_FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL \
699 V_FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL(1U)
701 enum fw_flowc_mnem_tcpstate {
702 FW_FLOWC_MNEM_TCPSTATE_CLOSED = 0, /* illegal */
703 FW_FLOWC_MNEM_TCPSTATE_LISTEN = 1, /* illegal */
704 FW_FLOWC_MNEM_TCPSTATE_SYNSENT = 2, /* illegal */
705 FW_FLOWC_MNEM_TCPSTATE_SYNRECEIVED = 3, /* illegal */
706 FW_FLOWC_MNEM_TCPSTATE_ESTABLISHED = 4, /* default */
707 FW_FLOWC_MNEM_TCPSTATE_CLOSEWAIT = 5, /* got peer close already */
708 FW_FLOWC_MNEM_TCPSTATE_FINWAIT1 = 6, /* haven't gotten ACK for FIN and
709 * will resend FIN - equiv ESTAB
711 FW_FLOWC_MNEM_TCPSTATE_CLOSING = 7, /* haven't gotten ACK for FIN and
712 * will resend FIN but have
715 FW_FLOWC_MNEM_TCPSTATE_LASTACK = 8, /* haven't gotten ACK for FIN and
716 * will resend FIN but have
719 FW_FLOWC_MNEM_TCPSTATE_FINWAIT2 = 9, /* sent FIN and got FIN + ACK,
722 FW_FLOWC_MNEM_TCPSTATE_TIMEWAIT = 10, /* not expected */
725 enum fw_flowc_mnem_uostate {
726 FW_FLOWC_MNEM_UOSTATE_CLOSED = 0, /* illegal */
727 FW_FLOWC_MNEM_UOSTATE_ESTABLISHED = 1, /* default */
728 FW_FLOWC_MNEM_UOSTATE_CLOSING = 2, /* graceful close, after sending
729 * outstanding payload
731 FW_FLOWC_MNEM_UOSTATE_ABORTING = 3, /* immediate close, after
732 * discarding outstanding payload
737 FW_FLOWC_MNEM_PFNVFN = 0, /* PFN [15:8] VFN [7:0] */
738 FW_FLOWC_MNEM_CH = 1,
739 FW_FLOWC_MNEM_PORT = 2,
740 FW_FLOWC_MNEM_IQID = 3,
741 FW_FLOWC_MNEM_SNDNXT = 4,
742 FW_FLOWC_MNEM_RCVNXT = 5,
743 FW_FLOWC_MNEM_SNDBUF = 6,
744 FW_FLOWC_MNEM_MSS = 7,
745 FW_FLOWC_MNEM_TXDATAPLEN_MAX = 8,
746 FW_FLOWC_MNEM_TCPSTATE = 9,
747 FW_FLOWC_MNEM_UOSTATE = 10,
748 FW_FLOWC_MNEM_SCHEDCLASS = 11,
749 FW_FLOWC_MNEM_DCBPRIO = 12,
752 struct fw_flowc_mnemval {
759 __be32 op_to_nparams;
761 #ifndef C99_NOT_SUPPORTED
762 struct fw_flowc_mnemval mnemval[0];
766 #define S_FW_FLOWC_WR_NPARAMS 0
767 #define M_FW_FLOWC_WR_NPARAMS 0xff
768 #define V_FW_FLOWC_WR_NPARAMS(x) ((x) << S_FW_FLOWC_WR_NPARAMS)
769 #define G_FW_FLOWC_WR_NPARAMS(x) \
770 (((x) >> S_FW_FLOWC_WR_NPARAMS) & M_FW_FLOWC_WR_NPARAMS)
772 struct fw_ofld_tx_data_wr {
773 __be32 op_to_immdlen;
776 __be32 tunnel_to_proxy;
779 #define S_FW_OFLD_TX_DATA_WR_TUNNEL 19
780 #define M_FW_OFLD_TX_DATA_WR_TUNNEL 0x1
781 #define V_FW_OFLD_TX_DATA_WR_TUNNEL(x) ((x) << S_FW_OFLD_TX_DATA_WR_TUNNEL)
782 #define G_FW_OFLD_TX_DATA_WR_TUNNEL(x) \
783 (((x) >> S_FW_OFLD_TX_DATA_WR_TUNNEL) & M_FW_OFLD_TX_DATA_WR_TUNNEL)
784 #define F_FW_OFLD_TX_DATA_WR_TUNNEL V_FW_OFLD_TX_DATA_WR_TUNNEL(1U)
786 #define S_FW_OFLD_TX_DATA_WR_SAVE 18
787 #define M_FW_OFLD_TX_DATA_WR_SAVE 0x1
788 #define V_FW_OFLD_TX_DATA_WR_SAVE(x) ((x) << S_FW_OFLD_TX_DATA_WR_SAVE)
789 #define G_FW_OFLD_TX_DATA_WR_SAVE(x) \
790 (((x) >> S_FW_OFLD_TX_DATA_WR_SAVE) & M_FW_OFLD_TX_DATA_WR_SAVE)
791 #define F_FW_OFLD_TX_DATA_WR_SAVE V_FW_OFLD_TX_DATA_WR_SAVE(1U)
793 #define S_FW_OFLD_TX_DATA_WR_FLUSH 17
794 #define M_FW_OFLD_TX_DATA_WR_FLUSH 0x1
795 #define V_FW_OFLD_TX_DATA_WR_FLUSH(x) ((x) << S_FW_OFLD_TX_DATA_WR_FLUSH)
796 #define G_FW_OFLD_TX_DATA_WR_FLUSH(x) \
797 (((x) >> S_FW_OFLD_TX_DATA_WR_FLUSH) & M_FW_OFLD_TX_DATA_WR_FLUSH)
798 #define F_FW_OFLD_TX_DATA_WR_FLUSH V_FW_OFLD_TX_DATA_WR_FLUSH(1U)
800 #define S_FW_OFLD_TX_DATA_WR_URGENT 16
801 #define M_FW_OFLD_TX_DATA_WR_URGENT 0x1
802 #define V_FW_OFLD_TX_DATA_WR_URGENT(x) ((x) << S_FW_OFLD_TX_DATA_WR_URGENT)
803 #define G_FW_OFLD_TX_DATA_WR_URGENT(x) \
804 (((x) >> S_FW_OFLD_TX_DATA_WR_URGENT) & M_FW_OFLD_TX_DATA_WR_URGENT)
805 #define F_FW_OFLD_TX_DATA_WR_URGENT V_FW_OFLD_TX_DATA_WR_URGENT(1U)
807 #define S_FW_OFLD_TX_DATA_WR_MORE 15
808 #define M_FW_OFLD_TX_DATA_WR_MORE 0x1
809 #define V_FW_OFLD_TX_DATA_WR_MORE(x) ((x) << S_FW_OFLD_TX_DATA_WR_MORE)
810 #define G_FW_OFLD_TX_DATA_WR_MORE(x) \
811 (((x) >> S_FW_OFLD_TX_DATA_WR_MORE) & M_FW_OFLD_TX_DATA_WR_MORE)
812 #define F_FW_OFLD_TX_DATA_WR_MORE V_FW_OFLD_TX_DATA_WR_MORE(1U)
814 #define S_FW_OFLD_TX_DATA_WR_SHOVE 14
815 #define M_FW_OFLD_TX_DATA_WR_SHOVE 0x1
816 #define V_FW_OFLD_TX_DATA_WR_SHOVE(x) ((x) << S_FW_OFLD_TX_DATA_WR_SHOVE)
817 #define G_FW_OFLD_TX_DATA_WR_SHOVE(x) \
818 (((x) >> S_FW_OFLD_TX_DATA_WR_SHOVE) & M_FW_OFLD_TX_DATA_WR_SHOVE)
819 #define F_FW_OFLD_TX_DATA_WR_SHOVE V_FW_OFLD_TX_DATA_WR_SHOVE(1U)
821 #define S_FW_OFLD_TX_DATA_WR_ULPMODE 10
822 #define M_FW_OFLD_TX_DATA_WR_ULPMODE 0xf
823 #define V_FW_OFLD_TX_DATA_WR_ULPMODE(x) ((x) << S_FW_OFLD_TX_DATA_WR_ULPMODE)
824 #define G_FW_OFLD_TX_DATA_WR_ULPMODE(x) \
825 (((x) >> S_FW_OFLD_TX_DATA_WR_ULPMODE) & M_FW_OFLD_TX_DATA_WR_ULPMODE)
827 #define S_FW_OFLD_TX_DATA_WR_ULPSUBMODE 6
828 #define M_FW_OFLD_TX_DATA_WR_ULPSUBMODE 0xf
829 #define V_FW_OFLD_TX_DATA_WR_ULPSUBMODE(x) \
830 ((x) << S_FW_OFLD_TX_DATA_WR_ULPSUBMODE)
831 #define G_FW_OFLD_TX_DATA_WR_ULPSUBMODE(x) \
832 (((x) >> S_FW_OFLD_TX_DATA_WR_ULPSUBMODE) & \
833 M_FW_OFLD_TX_DATA_WR_ULPSUBMODE)
835 #define S_FW_OFLD_TX_DATA_WR_PROXY 5
836 #define M_FW_OFLD_TX_DATA_WR_PROXY 0x1
837 #define V_FW_OFLD_TX_DATA_WR_PROXY(x) ((x) << S_FW_OFLD_TX_DATA_WR_PROXY)
838 #define G_FW_OFLD_TX_DATA_WR_PROXY(x) \
839 (((x) >> S_FW_OFLD_TX_DATA_WR_PROXY) & M_FW_OFLD_TX_DATA_WR_PROXY)
840 #define F_FW_OFLD_TX_DATA_WR_PROXY V_FW_OFLD_TX_DATA_WR_PROXY(1U)
848 #define S_FW_CMD_WR_DMA 17
849 #define M_FW_CMD_WR_DMA 0x1
850 #define V_FW_CMD_WR_DMA(x) ((x) << S_FW_CMD_WR_DMA)
851 #define G_FW_CMD_WR_DMA(x) (((x) >> S_FW_CMD_WR_DMA) & M_FW_CMD_WR_DMA)
852 #define F_FW_CMD_WR_DMA V_FW_CMD_WR_DMA(1U)
854 struct fw_eth_tx_pkt_vm_wr {
856 __be32 equiq_to_len16;
864 /******************************************************************************
865 * R I W O R K R E Q U E S T s
866 **************************************/
868 enum fw_ri_wr_opcode {
869 FW_RI_RDMA_WRITE = 0x0, /* IETF RDMAP v1.0 ... */
870 FW_RI_READ_REQ = 0x1,
871 FW_RI_READ_RESP = 0x2,
873 FW_RI_SEND_WITH_INV = 0x4,
874 FW_RI_SEND_WITH_SE = 0x5,
875 FW_RI_SEND_WITH_SE_INV = 0x6,
876 FW_RI_TERMINATE = 0x7,
877 FW_RI_RDMA_INIT = 0x8, /* CHELSIO RI specific ... */
879 FW_RI_FAST_REGISTER = 0xa,
880 FW_RI_LOCAL_INV = 0xb,
881 FW_RI_QP_MODIFY = 0xc,
885 FW_RI_SEND_IMMEDIATE = 0x8,
886 FW_RI_SEND_IMMEDIATE_WITH_SE = 0x9,
887 FW_RI_ATOMIC_REQUEST = 0xa,
888 FW_RI_ATOMIC_RESPONSE = 0xb,
890 FW_RI_BIND_MW = 0xc, /* CHELSIO RI specific ... */
891 FW_RI_FAST_REGISTER = 0xd,
892 FW_RI_LOCAL_INV = 0xe,
894 FW_RI_SGE_EC_CR_RETURN = 0xf
897 enum fw_ri_wr_flags {
898 FW_RI_COMPLETION_FLAG = 0x01,
899 FW_RI_NOTIFICATION_FLAG = 0x02,
900 FW_RI_SOLICITED_EVENT_FLAG = 0x04,
901 FW_RI_READ_FENCE_FLAG = 0x08,
902 FW_RI_LOCAL_FENCE_FLAG = 0x10,
903 FW_RI_RDMA_READ_INVALIDATE = 0x20
906 enum fw_ri_mpa_attrs {
907 FW_RI_MPA_RX_MARKER_ENABLE = 0x01,
908 FW_RI_MPA_TX_MARKER_ENABLE = 0x02,
909 FW_RI_MPA_CRC_ENABLE = 0x04,
910 FW_RI_MPA_IETF_ENABLE = 0x08
914 FW_RI_QP_RDMA_READ_ENABLE = 0x01,
915 FW_RI_QP_RDMA_WRITE_ENABLE = 0x02,
916 FW_RI_QP_BIND_ENABLE = 0x04,
917 FW_RI_QP_FAST_REGISTER_ENABLE = 0x08,
918 FW_RI_QP_STAG0_ENABLE = 0x10,
919 FW_RI_QP_RDMA_READ_REQ_0B_ENABLE= 0x80,
922 enum fw_ri_addr_type {
923 FW_RI_ZERO_BASED_TO = 0x00,
924 FW_RI_VA_BASED_TO = 0x01
927 enum fw_ri_mem_perms {
928 FW_RI_MEM_ACCESS_REM_WRITE = 0x01,
929 FW_RI_MEM_ACCESS_REM_READ = 0x02,
930 FW_RI_MEM_ACCESS_REM = 0x03,
931 FW_RI_MEM_ACCESS_LOCAL_WRITE = 0x04,
932 FW_RI_MEM_ACCESS_LOCAL_READ = 0x08,
933 FW_RI_MEM_ACCESS_LOCAL = 0x0C
936 enum fw_ri_stag_type {
937 FW_RI_STAG_NSMR = 0x00,
938 FW_RI_STAG_SMR = 0x01,
939 FW_RI_STAG_MW = 0x02,
940 FW_RI_STAG_MW_RELAXED = 0x03
944 FW_RI_DATA_IMMD = 0x81,
945 FW_RI_DATA_DSGL = 0x82,
946 FW_RI_DATA_ISGL = 0x83
949 enum fw_ri_sgl_depth {
950 FW_RI_SGL_DEPTH_MAX_SQ = 16,
951 FW_RI_SGL_DEPTH_MAX_RQ = 4
955 FW_RI_CQE_ERR_SUCCESS = 0x00, /* success, no error detected */
956 FW_RI_CQE_ERR_STAG = 0x01, /* STAG invalid */
957 FW_RI_CQE_ERR_PDID = 0x02, /* PDID mismatch */
958 FW_RI_CQE_ERR_QPID = 0x03, /* QPID mismatch */
959 FW_RI_CQE_ERR_ACCESS = 0x04, /* Invalid access right */
960 FW_RI_CQE_ERR_WRAP = 0x05, /* Wrap error */
961 FW_RI_CQE_ERR_BOUND = 0x06, /* base and bounds violation */
962 FW_RI_CQE_ERR_INVALIDATE_SHARED_MR = 0x07, /* attempt to invalidate a SMR */
963 FW_RI_CQE_ERR_INVALIDATE_MR_WITH_MW_BOUND = 0x08, /* attempt to invalidate a MR w MW */
964 FW_RI_CQE_ERR_ECC = 0x09, /* ECC error detected */
965 FW_RI_CQE_ERR_ECC_PSTAG = 0x0A, /* ECC error detected when reading the PSTAG for a MW Invalidate */
966 FW_RI_CQE_ERR_PBL_ADDR_BOUND = 0x0B, /* pbl address out of bound : software error */
967 FW_RI_CQE_ERR_CRC = 0x10, /* CRC error */
968 FW_RI_CQE_ERR_MARKER = 0x11, /* Marker error */
969 FW_RI_CQE_ERR_PDU_LEN_ERR = 0x12, /* invalid PDU length */
970 FW_RI_CQE_ERR_OUT_OF_RQE = 0x13, /* out of RQE */
971 FW_RI_CQE_ERR_DDP_VERSION = 0x14, /* wrong DDP version */
972 FW_RI_CQE_ERR_RDMA_VERSION = 0x15, /* wrong RDMA version */
973 FW_RI_CQE_ERR_OPCODE = 0x16, /* invalid rdma opcode */
974 FW_RI_CQE_ERR_DDP_QUEUE_NUM = 0x17, /* invalid ddp queue number */
975 FW_RI_CQE_ERR_MSN = 0x18, /* MSN error */
976 FW_RI_CQE_ERR_TBIT = 0x19, /* tag bit not set correctly */
977 FW_RI_CQE_ERR_MO = 0x1A, /* MO not zero for TERMINATE or READ_REQ */
978 FW_RI_CQE_ERR_MSN_GAP = 0x1B, /* */
979 FW_RI_CQE_ERR_MSN_RANGE = 0x1C, /* */
980 FW_RI_CQE_ERR_IRD_OVERFLOW = 0x1D, /* */
981 FW_RI_CQE_ERR_RQE_ADDR_BOUND = 0x1E, /* RQE address out of bound : software error */
982 FW_RI_CQE_ERR_INTERNAL_ERR = 0x1F /* internel error (opcode mismatch) */
986 struct fw_ri_dsge_pair {
997 #ifndef C99_NOT_SUPPORTED
998 struct fw_ri_dsge_pair sge[0];
1013 #ifndef C99_NOT_SUPPORTED
1014 struct fw_ri_sge sge[0];
1023 #ifndef C99_NOT_SUPPORTED
1029 __be32 valid_to_pdid;
1030 __be32 locread_to_qpid;
1031 __be32 nosnoop_pbladdr;
1035 __be32 dca_mwbcnt_pstag;
1039 #define S_FW_RI_TPTE_VALID 31
1040 #define M_FW_RI_TPTE_VALID 0x1
1041 #define V_FW_RI_TPTE_VALID(x) ((x) << S_FW_RI_TPTE_VALID)
1042 #define G_FW_RI_TPTE_VALID(x) \
1043 (((x) >> S_FW_RI_TPTE_VALID) & M_FW_RI_TPTE_VALID)
1044 #define F_FW_RI_TPTE_VALID V_FW_RI_TPTE_VALID(1U)
1046 #define S_FW_RI_TPTE_STAGKEY 23
1047 #define M_FW_RI_TPTE_STAGKEY 0xff
1048 #define V_FW_RI_TPTE_STAGKEY(x) ((x) << S_FW_RI_TPTE_STAGKEY)
1049 #define G_FW_RI_TPTE_STAGKEY(x) \
1050 (((x) >> S_FW_RI_TPTE_STAGKEY) & M_FW_RI_TPTE_STAGKEY)
1052 #define S_FW_RI_TPTE_STAGSTATE 22
1053 #define M_FW_RI_TPTE_STAGSTATE 0x1
1054 #define V_FW_RI_TPTE_STAGSTATE(x) ((x) << S_FW_RI_TPTE_STAGSTATE)
1055 #define G_FW_RI_TPTE_STAGSTATE(x) \
1056 (((x) >> S_FW_RI_TPTE_STAGSTATE) & M_FW_RI_TPTE_STAGSTATE)
1057 #define F_FW_RI_TPTE_STAGSTATE V_FW_RI_TPTE_STAGSTATE(1U)
1059 #define S_FW_RI_TPTE_STAGTYPE 20
1060 #define M_FW_RI_TPTE_STAGTYPE 0x3
1061 #define V_FW_RI_TPTE_STAGTYPE(x) ((x) << S_FW_RI_TPTE_STAGTYPE)
1062 #define G_FW_RI_TPTE_STAGTYPE(x) \
1063 (((x) >> S_FW_RI_TPTE_STAGTYPE) & M_FW_RI_TPTE_STAGTYPE)
1065 #define S_FW_RI_TPTE_PDID 0
1066 #define M_FW_RI_TPTE_PDID 0xfffff
1067 #define V_FW_RI_TPTE_PDID(x) ((x) << S_FW_RI_TPTE_PDID)
1068 #define G_FW_RI_TPTE_PDID(x) \
1069 (((x) >> S_FW_RI_TPTE_PDID) & M_FW_RI_TPTE_PDID)
1071 #define S_FW_RI_TPTE_PERM 28
1072 #define M_FW_RI_TPTE_PERM 0xf
1073 #define V_FW_RI_TPTE_PERM(x) ((x) << S_FW_RI_TPTE_PERM)
1074 #define G_FW_RI_TPTE_PERM(x) \
1075 (((x) >> S_FW_RI_TPTE_PERM) & M_FW_RI_TPTE_PERM)
1077 #define S_FW_RI_TPTE_REMINVDIS 27
1078 #define M_FW_RI_TPTE_REMINVDIS 0x1
1079 #define V_FW_RI_TPTE_REMINVDIS(x) ((x) << S_FW_RI_TPTE_REMINVDIS)
1080 #define G_FW_RI_TPTE_REMINVDIS(x) \
1081 (((x) >> S_FW_RI_TPTE_REMINVDIS) & M_FW_RI_TPTE_REMINVDIS)
1082 #define F_FW_RI_TPTE_REMINVDIS V_FW_RI_TPTE_REMINVDIS(1U)
1084 #define S_FW_RI_TPTE_ADDRTYPE 26
1085 #define M_FW_RI_TPTE_ADDRTYPE 1
1086 #define V_FW_RI_TPTE_ADDRTYPE(x) ((x) << S_FW_RI_TPTE_ADDRTYPE)
1087 #define G_FW_RI_TPTE_ADDRTYPE(x) \
1088 (((x) >> S_FW_RI_TPTE_ADDRTYPE) & M_FW_RI_TPTE_ADDRTYPE)
1089 #define F_FW_RI_TPTE_ADDRTYPE V_FW_RI_TPTE_ADDRTYPE(1U)
1091 #define S_FW_RI_TPTE_MWBINDEN 25
1092 #define M_FW_RI_TPTE_MWBINDEN 0x1
1093 #define V_FW_RI_TPTE_MWBINDEN(x) ((x) << S_FW_RI_TPTE_MWBINDEN)
1094 #define G_FW_RI_TPTE_MWBINDEN(x) \
1095 (((x) >> S_FW_RI_TPTE_MWBINDEN) & M_FW_RI_TPTE_MWBINDEN)
1096 #define F_FW_RI_TPTE_MWBINDEN V_FW_RI_TPTE_MWBINDEN(1U)
1098 #define S_FW_RI_TPTE_PS 20
1099 #define M_FW_RI_TPTE_PS 0x1f
1100 #define V_FW_RI_TPTE_PS(x) ((x) << S_FW_RI_TPTE_PS)
1101 #define G_FW_RI_TPTE_PS(x) \
1102 (((x) >> S_FW_RI_TPTE_PS) & M_FW_RI_TPTE_PS)
1104 #define S_FW_RI_TPTE_QPID 0
1105 #define M_FW_RI_TPTE_QPID 0xfffff
1106 #define V_FW_RI_TPTE_QPID(x) ((x) << S_FW_RI_TPTE_QPID)
1107 #define G_FW_RI_TPTE_QPID(x) \
1108 (((x) >> S_FW_RI_TPTE_QPID) & M_FW_RI_TPTE_QPID)
1110 #define S_FW_RI_TPTE_NOSNOOP 31
1111 #define M_FW_RI_TPTE_NOSNOOP 0x1
1112 #define V_FW_RI_TPTE_NOSNOOP(x) ((x) << S_FW_RI_TPTE_NOSNOOP)
1113 #define G_FW_RI_TPTE_NOSNOOP(x) \
1114 (((x) >> S_FW_RI_TPTE_NOSNOOP) & M_FW_RI_TPTE_NOSNOOP)
1115 #define F_FW_RI_TPTE_NOSNOOP V_FW_RI_TPTE_NOSNOOP(1U)
1117 #define S_FW_RI_TPTE_PBLADDR 0
1118 #define M_FW_RI_TPTE_PBLADDR 0x1fffffff
1119 #define V_FW_RI_TPTE_PBLADDR(x) ((x) << S_FW_RI_TPTE_PBLADDR)
1120 #define G_FW_RI_TPTE_PBLADDR(x) \
1121 (((x) >> S_FW_RI_TPTE_PBLADDR) & M_FW_RI_TPTE_PBLADDR)
1123 #define S_FW_RI_TPTE_DCA 24
1124 #define M_FW_RI_TPTE_DCA 0x1f
1125 #define V_FW_RI_TPTE_DCA(x) ((x) << S_FW_RI_TPTE_DCA)
1126 #define G_FW_RI_TPTE_DCA(x) \
1127 (((x) >> S_FW_RI_TPTE_DCA) & M_FW_RI_TPTE_DCA)
1129 #define S_FW_RI_TPTE_MWBCNT_PSTAG 0
1130 #define M_FW_RI_TPTE_MWBCNT_PSTAG 0xffffff
1131 #define V_FW_RI_TPTE_MWBCNT_PSTAT(x) \
1132 ((x) << S_FW_RI_TPTE_MWBCNT_PSTAG)
1133 #define G_FW_RI_TPTE_MWBCNT_PSTAG(x) \
1134 (((x) >> S_FW_RI_TPTE_MWBCNT_PSTAG) & M_FW_RI_TPTE_MWBCNT_PSTAG)
1136 enum fw_ri_cqe_rxtx {
1137 FW_RI_CQE_RXTX_RX = 0x0,
1138 FW_RI_CQE_RXTX_TX = 0x1,
1144 __be32 qpid_n_stat_rxtx_type;
1150 __be32 qpid_n_stat_rxtx_type;
1158 #define S_FW_RI_CQE_QPID 12
1159 #define M_FW_RI_CQE_QPID 0xfffff
1160 #define V_FW_RI_CQE_QPID(x) ((x) << S_FW_RI_CQE_QPID)
1161 #define G_FW_RI_CQE_QPID(x) \
1162 (((x) >> S_FW_RI_CQE_QPID) & M_FW_RI_CQE_QPID)
1164 #define S_FW_RI_CQE_NOTIFY 10
1165 #define M_FW_RI_CQE_NOTIFY 0x1
1166 #define V_FW_RI_CQE_NOTIFY(x) ((x) << S_FW_RI_CQE_NOTIFY)
1167 #define G_FW_RI_CQE_NOTIFY(x) \
1168 (((x) >> S_FW_RI_CQE_NOTIFY) & M_FW_RI_CQE_NOTIFY)
1170 #define S_FW_RI_CQE_STATUS 5
1171 #define M_FW_RI_CQE_STATUS 0x1f
1172 #define V_FW_RI_CQE_STATUS(x) ((x) << S_FW_RI_CQE_STATUS)
1173 #define G_FW_RI_CQE_STATUS(x) \
1174 (((x) >> S_FW_RI_CQE_STATUS) & M_FW_RI_CQE_STATUS)
1177 #define S_FW_RI_CQE_RXTX 4
1178 #define M_FW_RI_CQE_RXTX 0x1
1179 #define V_FW_RI_CQE_RXTX(x) ((x) << S_FW_RI_CQE_RXTX)
1180 #define G_FW_RI_CQE_RXTX(x) \
1181 (((x) >> S_FW_RI_CQE_RXTX) & M_FW_RI_CQE_RXTX)
1183 #define S_FW_RI_CQE_TYPE 0
1184 #define M_FW_RI_CQE_TYPE 0xf
1185 #define V_FW_RI_CQE_TYPE(x) ((x) << S_FW_RI_CQE_TYPE)
1186 #define G_FW_RI_CQE_TYPE(x) \
1187 (((x) >> S_FW_RI_CQE_TYPE) & M_FW_RI_CQE_TYPE)
1189 enum fw_ri_res_type {
1201 union fw_ri_restype {
1202 struct fw_ri_res_sqrq {
1208 __be32 fetchszm_to_iqid;
1209 __be32 dcaen_to_eqsize;
1212 struct fw_ri_res_cq {
1218 __be32 iqandst_to_iqandstindex;
1219 __be16 iqdroprss_to_iqesize;
1229 struct fw_ri_res_wr {
1233 #ifndef C99_NOT_SUPPORTED
1234 struct fw_ri_res res[0];
1238 #define S_FW_RI_RES_WR_NRES 0
1239 #define M_FW_RI_RES_WR_NRES 0xff
1240 #define V_FW_RI_RES_WR_NRES(x) ((x) << S_FW_RI_RES_WR_NRES)
1241 #define G_FW_RI_RES_WR_NRES(x) \
1242 (((x) >> S_FW_RI_RES_WR_NRES) & M_FW_RI_RES_WR_NRES)
1244 #define S_FW_RI_RES_WR_FETCHSZM 26
1245 #define M_FW_RI_RES_WR_FETCHSZM 0x1
1246 #define V_FW_RI_RES_WR_FETCHSZM(x) ((x) << S_FW_RI_RES_WR_FETCHSZM)
1247 #define G_FW_RI_RES_WR_FETCHSZM(x) \
1248 (((x) >> S_FW_RI_RES_WR_FETCHSZM) & M_FW_RI_RES_WR_FETCHSZM)
1249 #define F_FW_RI_RES_WR_FETCHSZM V_FW_RI_RES_WR_FETCHSZM(1U)
1251 #define S_FW_RI_RES_WR_STATUSPGNS 25
1252 #define M_FW_RI_RES_WR_STATUSPGNS 0x1
1253 #define V_FW_RI_RES_WR_STATUSPGNS(x) ((x) << S_FW_RI_RES_WR_STATUSPGNS)
1254 #define G_FW_RI_RES_WR_STATUSPGNS(x) \
1255 (((x) >> S_FW_RI_RES_WR_STATUSPGNS) & M_FW_RI_RES_WR_STATUSPGNS)
1256 #define F_FW_RI_RES_WR_STATUSPGNS V_FW_RI_RES_WR_STATUSPGNS(1U)
1258 #define S_FW_RI_RES_WR_STATUSPGRO 24
1259 #define M_FW_RI_RES_WR_STATUSPGRO 0x1
1260 #define V_FW_RI_RES_WR_STATUSPGRO(x) ((x) << S_FW_RI_RES_WR_STATUSPGRO)
1261 #define G_FW_RI_RES_WR_STATUSPGRO(x) \
1262 (((x) >> S_FW_RI_RES_WR_STATUSPGRO) & M_FW_RI_RES_WR_STATUSPGRO)
1263 #define F_FW_RI_RES_WR_STATUSPGRO V_FW_RI_RES_WR_STATUSPGRO(1U)
1265 #define S_FW_RI_RES_WR_FETCHNS 23
1266 #define M_FW_RI_RES_WR_FETCHNS 0x1
1267 #define V_FW_RI_RES_WR_FETCHNS(x) ((x) << S_FW_RI_RES_WR_FETCHNS)
1268 #define G_FW_RI_RES_WR_FETCHNS(x) \
1269 (((x) >> S_FW_RI_RES_WR_FETCHNS) & M_FW_RI_RES_WR_FETCHNS)
1270 #define F_FW_RI_RES_WR_FETCHNS V_FW_RI_RES_WR_FETCHNS(1U)
1272 #define S_FW_RI_RES_WR_FETCHRO 22
1273 #define M_FW_RI_RES_WR_FETCHRO 0x1
1274 #define V_FW_RI_RES_WR_FETCHRO(x) ((x) << S_FW_RI_RES_WR_FETCHRO)
1275 #define G_FW_RI_RES_WR_FETCHRO(x) \
1276 (((x) >> S_FW_RI_RES_WR_FETCHRO) & M_FW_RI_RES_WR_FETCHRO)
1277 #define F_FW_RI_RES_WR_FETCHRO V_FW_RI_RES_WR_FETCHRO(1U)
1279 #define S_FW_RI_RES_WR_HOSTFCMODE 20
1280 #define M_FW_RI_RES_WR_HOSTFCMODE 0x3
1281 #define V_FW_RI_RES_WR_HOSTFCMODE(x) ((x) << S_FW_RI_RES_WR_HOSTFCMODE)
1282 #define G_FW_RI_RES_WR_HOSTFCMODE(x) \
1283 (((x) >> S_FW_RI_RES_WR_HOSTFCMODE) & M_FW_RI_RES_WR_HOSTFCMODE)
1285 #define S_FW_RI_RES_WR_CPRIO 19
1286 #define M_FW_RI_RES_WR_CPRIO 0x1
1287 #define V_FW_RI_RES_WR_CPRIO(x) ((x) << S_FW_RI_RES_WR_CPRIO)
1288 #define G_FW_RI_RES_WR_CPRIO(x) \
1289 (((x) >> S_FW_RI_RES_WR_CPRIO) & M_FW_RI_RES_WR_CPRIO)
1290 #define F_FW_RI_RES_WR_CPRIO V_FW_RI_RES_WR_CPRIO(1U)
1292 #define S_FW_RI_RES_WR_ONCHIP 18
1293 #define M_FW_RI_RES_WR_ONCHIP 0x1
1294 #define V_FW_RI_RES_WR_ONCHIP(x) ((x) << S_FW_RI_RES_WR_ONCHIP)
1295 #define G_FW_RI_RES_WR_ONCHIP(x) \
1296 (((x) >> S_FW_RI_RES_WR_ONCHIP) & M_FW_RI_RES_WR_ONCHIP)
1297 #define F_FW_RI_RES_WR_ONCHIP V_FW_RI_RES_WR_ONCHIP(1U)
1299 #define S_FW_RI_RES_WR_PCIECHN 16
1300 #define M_FW_RI_RES_WR_PCIECHN 0x3
1301 #define V_FW_RI_RES_WR_PCIECHN(x) ((x) << S_FW_RI_RES_WR_PCIECHN)
1302 #define G_FW_RI_RES_WR_PCIECHN(x) \
1303 (((x) >> S_FW_RI_RES_WR_PCIECHN) & M_FW_RI_RES_WR_PCIECHN)
1305 #define S_FW_RI_RES_WR_IQID 0
1306 #define M_FW_RI_RES_WR_IQID 0xffff
1307 #define V_FW_RI_RES_WR_IQID(x) ((x) << S_FW_RI_RES_WR_IQID)
1308 #define G_FW_RI_RES_WR_IQID(x) \
1309 (((x) >> S_FW_RI_RES_WR_IQID) & M_FW_RI_RES_WR_IQID)
1311 #define S_FW_RI_RES_WR_DCAEN 31
1312 #define M_FW_RI_RES_WR_DCAEN 0x1
1313 #define V_FW_RI_RES_WR_DCAEN(x) ((x) << S_FW_RI_RES_WR_DCAEN)
1314 #define G_FW_RI_RES_WR_DCAEN(x) \
1315 (((x) >> S_FW_RI_RES_WR_DCAEN) & M_FW_RI_RES_WR_DCAEN)
1316 #define F_FW_RI_RES_WR_DCAEN V_FW_RI_RES_WR_DCAEN(1U)
1318 #define S_FW_RI_RES_WR_DCACPU 26
1319 #define M_FW_RI_RES_WR_DCACPU 0x1f
1320 #define V_FW_RI_RES_WR_DCACPU(x) ((x) << S_FW_RI_RES_WR_DCACPU)
1321 #define G_FW_RI_RES_WR_DCACPU(x) \
1322 (((x) >> S_FW_RI_RES_WR_DCACPU) & M_FW_RI_RES_WR_DCACPU)
1324 #define S_FW_RI_RES_WR_FBMIN 23
1325 #define M_FW_RI_RES_WR_FBMIN 0x7
1326 #define V_FW_RI_RES_WR_FBMIN(x) ((x) << S_FW_RI_RES_WR_FBMIN)
1327 #define G_FW_RI_RES_WR_FBMIN(x) \
1328 (((x) >> S_FW_RI_RES_WR_FBMIN) & M_FW_RI_RES_WR_FBMIN)
1330 #define S_FW_RI_RES_WR_FBMAX 20
1331 #define M_FW_RI_RES_WR_FBMAX 0x7
1332 #define V_FW_RI_RES_WR_FBMAX(x) ((x) << S_FW_RI_RES_WR_FBMAX)
1333 #define G_FW_RI_RES_WR_FBMAX(x) \
1334 (((x) >> S_FW_RI_RES_WR_FBMAX) & M_FW_RI_RES_WR_FBMAX)
1336 #define S_FW_RI_RES_WR_CIDXFTHRESHO 19
1337 #define M_FW_RI_RES_WR_CIDXFTHRESHO 0x1
1338 #define V_FW_RI_RES_WR_CIDXFTHRESHO(x) ((x) << S_FW_RI_RES_WR_CIDXFTHRESHO)
1339 #define G_FW_RI_RES_WR_CIDXFTHRESHO(x) \
1340 (((x) >> S_FW_RI_RES_WR_CIDXFTHRESHO) & M_FW_RI_RES_WR_CIDXFTHRESHO)
1341 #define F_FW_RI_RES_WR_CIDXFTHRESHO V_FW_RI_RES_WR_CIDXFTHRESHO(1U)
1343 #define S_FW_RI_RES_WR_CIDXFTHRESH 16
1344 #define M_FW_RI_RES_WR_CIDXFTHRESH 0x7
1345 #define V_FW_RI_RES_WR_CIDXFTHRESH(x) ((x) << S_FW_RI_RES_WR_CIDXFTHRESH)
1346 #define G_FW_RI_RES_WR_CIDXFTHRESH(x) \
1347 (((x) >> S_FW_RI_RES_WR_CIDXFTHRESH) & M_FW_RI_RES_WR_CIDXFTHRESH)
1349 #define S_FW_RI_RES_WR_EQSIZE 0
1350 #define M_FW_RI_RES_WR_EQSIZE 0xffff
1351 #define V_FW_RI_RES_WR_EQSIZE(x) ((x) << S_FW_RI_RES_WR_EQSIZE)
1352 #define G_FW_RI_RES_WR_EQSIZE(x) \
1353 (((x) >> S_FW_RI_RES_WR_EQSIZE) & M_FW_RI_RES_WR_EQSIZE)
1355 #define S_FW_RI_RES_WR_IQANDST 15
1356 #define M_FW_RI_RES_WR_IQANDST 0x1
1357 #define V_FW_RI_RES_WR_IQANDST(x) ((x) << S_FW_RI_RES_WR_IQANDST)
1358 #define G_FW_RI_RES_WR_IQANDST(x) \
1359 (((x) >> S_FW_RI_RES_WR_IQANDST) & M_FW_RI_RES_WR_IQANDST)
1360 #define F_FW_RI_RES_WR_IQANDST V_FW_RI_RES_WR_IQANDST(1U)
1362 #define S_FW_RI_RES_WR_IQANUS 14
1363 #define M_FW_RI_RES_WR_IQANUS 0x1
1364 #define V_FW_RI_RES_WR_IQANUS(x) ((x) << S_FW_RI_RES_WR_IQANUS)
1365 #define G_FW_RI_RES_WR_IQANUS(x) \
1366 (((x) >> S_FW_RI_RES_WR_IQANUS) & M_FW_RI_RES_WR_IQANUS)
1367 #define F_FW_RI_RES_WR_IQANUS V_FW_RI_RES_WR_IQANUS(1U)
1369 #define S_FW_RI_RES_WR_IQANUD 12
1370 #define M_FW_RI_RES_WR_IQANUD 0x3
1371 #define V_FW_RI_RES_WR_IQANUD(x) ((x) << S_FW_RI_RES_WR_IQANUD)
1372 #define G_FW_RI_RES_WR_IQANUD(x) \
1373 (((x) >> S_FW_RI_RES_WR_IQANUD) & M_FW_RI_RES_WR_IQANUD)
1375 #define S_FW_RI_RES_WR_IQANDSTINDEX 0
1376 #define M_FW_RI_RES_WR_IQANDSTINDEX 0xfff
1377 #define V_FW_RI_RES_WR_IQANDSTINDEX(x) ((x) << S_FW_RI_RES_WR_IQANDSTINDEX)
1378 #define G_FW_RI_RES_WR_IQANDSTINDEX(x) \
1379 (((x) >> S_FW_RI_RES_WR_IQANDSTINDEX) & M_FW_RI_RES_WR_IQANDSTINDEX)
1381 #define S_FW_RI_RES_WR_IQDROPRSS 15
1382 #define M_FW_RI_RES_WR_IQDROPRSS 0x1
1383 #define V_FW_RI_RES_WR_IQDROPRSS(x) ((x) << S_FW_RI_RES_WR_IQDROPRSS)
1384 #define G_FW_RI_RES_WR_IQDROPRSS(x) \
1385 (((x) >> S_FW_RI_RES_WR_IQDROPRSS) & M_FW_RI_RES_WR_IQDROPRSS)
1386 #define F_FW_RI_RES_WR_IQDROPRSS V_FW_RI_RES_WR_IQDROPRSS(1U)
1388 #define S_FW_RI_RES_WR_IQGTSMODE 14
1389 #define M_FW_RI_RES_WR_IQGTSMODE 0x1
1390 #define V_FW_RI_RES_WR_IQGTSMODE(x) ((x) << S_FW_RI_RES_WR_IQGTSMODE)
1391 #define G_FW_RI_RES_WR_IQGTSMODE(x) \
1392 (((x) >> S_FW_RI_RES_WR_IQGTSMODE) & M_FW_RI_RES_WR_IQGTSMODE)
1393 #define F_FW_RI_RES_WR_IQGTSMODE V_FW_RI_RES_WR_IQGTSMODE(1U)
1395 #define S_FW_RI_RES_WR_IQPCIECH 12
1396 #define M_FW_RI_RES_WR_IQPCIECH 0x3
1397 #define V_FW_RI_RES_WR_IQPCIECH(x) ((x) << S_FW_RI_RES_WR_IQPCIECH)
1398 #define G_FW_RI_RES_WR_IQPCIECH(x) \
1399 (((x) >> S_FW_RI_RES_WR_IQPCIECH) & M_FW_RI_RES_WR_IQPCIECH)
1401 #define S_FW_RI_RES_WR_IQDCAEN 11
1402 #define M_FW_RI_RES_WR_IQDCAEN 0x1
1403 #define V_FW_RI_RES_WR_IQDCAEN(x) ((x) << S_FW_RI_RES_WR_IQDCAEN)
1404 #define G_FW_RI_RES_WR_IQDCAEN(x) \
1405 (((x) >> S_FW_RI_RES_WR_IQDCAEN) & M_FW_RI_RES_WR_IQDCAEN)
1406 #define F_FW_RI_RES_WR_IQDCAEN V_FW_RI_RES_WR_IQDCAEN(1U)
1408 #define S_FW_RI_RES_WR_IQDCACPU 6
1409 #define M_FW_RI_RES_WR_IQDCACPU 0x1f
1410 #define V_FW_RI_RES_WR_IQDCACPU(x) ((x) << S_FW_RI_RES_WR_IQDCACPU)
1411 #define G_FW_RI_RES_WR_IQDCACPU(x) \
1412 (((x) >> S_FW_RI_RES_WR_IQDCACPU) & M_FW_RI_RES_WR_IQDCACPU)
1414 #define S_FW_RI_RES_WR_IQINTCNTTHRESH 4
1415 #define M_FW_RI_RES_WR_IQINTCNTTHRESH 0x3
1416 #define V_FW_RI_RES_WR_IQINTCNTTHRESH(x) \
1417 ((x) << S_FW_RI_RES_WR_IQINTCNTTHRESH)
1418 #define G_FW_RI_RES_WR_IQINTCNTTHRESH(x) \
1419 (((x) >> S_FW_RI_RES_WR_IQINTCNTTHRESH) & M_FW_RI_RES_WR_IQINTCNTTHRESH)
1421 #define S_FW_RI_RES_WR_IQO 3
1422 #define M_FW_RI_RES_WR_IQO 0x1
1423 #define V_FW_RI_RES_WR_IQO(x) ((x) << S_FW_RI_RES_WR_IQO)
1424 #define G_FW_RI_RES_WR_IQO(x) \
1425 (((x) >> S_FW_RI_RES_WR_IQO) & M_FW_RI_RES_WR_IQO)
1426 #define F_FW_RI_RES_WR_IQO V_FW_RI_RES_WR_IQO(1U)
1428 #define S_FW_RI_RES_WR_IQCPRIO 2
1429 #define M_FW_RI_RES_WR_IQCPRIO 0x1
1430 #define V_FW_RI_RES_WR_IQCPRIO(x) ((x) << S_FW_RI_RES_WR_IQCPRIO)
1431 #define G_FW_RI_RES_WR_IQCPRIO(x) \
1432 (((x) >> S_FW_RI_RES_WR_IQCPRIO) & M_FW_RI_RES_WR_IQCPRIO)
1433 #define F_FW_RI_RES_WR_IQCPRIO V_FW_RI_RES_WR_IQCPRIO(1U)
1435 #define S_FW_RI_RES_WR_IQESIZE 0
1436 #define M_FW_RI_RES_WR_IQESIZE 0x3
1437 #define V_FW_RI_RES_WR_IQESIZE(x) ((x) << S_FW_RI_RES_WR_IQESIZE)
1438 #define G_FW_RI_RES_WR_IQESIZE(x) \
1439 (((x) >> S_FW_RI_RES_WR_IQESIZE) & M_FW_RI_RES_WR_IQESIZE)
1441 #define S_FW_RI_RES_WR_IQNS 31
1442 #define M_FW_RI_RES_WR_IQNS 0x1
1443 #define V_FW_RI_RES_WR_IQNS(x) ((x) << S_FW_RI_RES_WR_IQNS)
1444 #define G_FW_RI_RES_WR_IQNS(x) \
1445 (((x) >> S_FW_RI_RES_WR_IQNS) & M_FW_RI_RES_WR_IQNS)
1446 #define F_FW_RI_RES_WR_IQNS V_FW_RI_RES_WR_IQNS(1U)
1448 #define S_FW_RI_RES_WR_IQRO 30
1449 #define M_FW_RI_RES_WR_IQRO 0x1
1450 #define V_FW_RI_RES_WR_IQRO(x) ((x) << S_FW_RI_RES_WR_IQRO)
1451 #define G_FW_RI_RES_WR_IQRO(x) \
1452 (((x) >> S_FW_RI_RES_WR_IQRO) & M_FW_RI_RES_WR_IQRO)
1453 #define F_FW_RI_RES_WR_IQRO V_FW_RI_RES_WR_IQRO(1U)
1455 struct fw_ri_rdma_write_wr {
1465 #ifndef C99_NOT_SUPPORTED
1467 struct fw_ri_immd immd_src[0];
1468 struct fw_ri_isgl isgl_src[0];
1473 struct fw_ri_send_wr {
1484 #ifndef C99_NOT_SUPPORTED
1486 struct fw_ri_immd immd_src[0];
1487 struct fw_ri_isgl isgl_src[0];
1492 #define S_FW_RI_SEND_WR_SENDOP 0
1493 #define M_FW_RI_SEND_WR_SENDOP 0xf
1494 #define V_FW_RI_SEND_WR_SENDOP(x) ((x) << S_FW_RI_SEND_WR_SENDOP)
1495 #define G_FW_RI_SEND_WR_SENDOP(x) \
1496 (((x) >> S_FW_RI_SEND_WR_SENDOP) & M_FW_RI_SEND_WR_SENDOP)
1498 struct fw_ri_rdma_read_wr {
1515 struct fw_ri_recv_wr {
1521 struct fw_ri_isgl isgl;
1524 struct fw_ri_bind_mw_wr {
1530 __u8 qpbinde_to_dcacpu;
1542 #define S_FW_RI_BIND_MW_WR_QPBINDE 6
1543 #define M_FW_RI_BIND_MW_WR_QPBINDE 0x1
1544 #define V_FW_RI_BIND_MW_WR_QPBINDE(x) ((x) << S_FW_RI_BIND_MW_WR_QPBINDE)
1545 #define G_FW_RI_BIND_MW_WR_QPBINDE(x) \
1546 (((x) >> S_FW_RI_BIND_MW_WR_QPBINDE) & M_FW_RI_BIND_MW_WR_QPBINDE)
1547 #define F_FW_RI_BIND_MW_WR_QPBINDE V_FW_RI_BIND_MW_WR_QPBINDE(1U)
1549 #define S_FW_RI_BIND_MW_WR_NS 5
1550 #define M_FW_RI_BIND_MW_WR_NS 0x1
1551 #define V_FW_RI_BIND_MW_WR_NS(x) ((x) << S_FW_RI_BIND_MW_WR_NS)
1552 #define G_FW_RI_BIND_MW_WR_NS(x) \
1553 (((x) >> S_FW_RI_BIND_MW_WR_NS) & M_FW_RI_BIND_MW_WR_NS)
1554 #define F_FW_RI_BIND_MW_WR_NS V_FW_RI_BIND_MW_WR_NS(1U)
1556 #define S_FW_RI_BIND_MW_WR_DCACPU 0
1557 #define M_FW_RI_BIND_MW_WR_DCACPU 0x1f
1558 #define V_FW_RI_BIND_MW_WR_DCACPU(x) ((x) << S_FW_RI_BIND_MW_WR_DCACPU)
1559 #define G_FW_RI_BIND_MW_WR_DCACPU(x) \
1560 (((x) >> S_FW_RI_BIND_MW_WR_DCACPU) & M_FW_RI_BIND_MW_WR_DCACPU)
1562 struct fw_ri_fr_nsmr_wr {
1568 __u8 qpbinde_to_dcacpu;
1579 #define S_FW_RI_FR_NSMR_WR_QPBINDE 6
1580 #define M_FW_RI_FR_NSMR_WR_QPBINDE 0x1
1581 #define V_FW_RI_FR_NSMR_WR_QPBINDE(x) ((x) << S_FW_RI_FR_NSMR_WR_QPBINDE)
1582 #define G_FW_RI_FR_NSMR_WR_QPBINDE(x) \
1583 (((x) >> S_FW_RI_FR_NSMR_WR_QPBINDE) & M_FW_RI_FR_NSMR_WR_QPBINDE)
1584 #define F_FW_RI_FR_NSMR_WR_QPBINDE V_FW_RI_FR_NSMR_WR_QPBINDE(1U)
1586 #define S_FW_RI_FR_NSMR_WR_NS 5
1587 #define M_FW_RI_FR_NSMR_WR_NS 0x1
1588 #define V_FW_RI_FR_NSMR_WR_NS(x) ((x) << S_FW_RI_FR_NSMR_WR_NS)
1589 #define G_FW_RI_FR_NSMR_WR_NS(x) \
1590 (((x) >> S_FW_RI_FR_NSMR_WR_NS) & M_FW_RI_FR_NSMR_WR_NS)
1591 #define F_FW_RI_FR_NSMR_WR_NS V_FW_RI_FR_NSMR_WR_NS(1U)
1593 #define S_FW_RI_FR_NSMR_WR_DCACPU 0
1594 #define M_FW_RI_FR_NSMR_WR_DCACPU 0x1f
1595 #define V_FW_RI_FR_NSMR_WR_DCACPU(x) ((x) << S_FW_RI_FR_NSMR_WR_DCACPU)
1596 #define G_FW_RI_FR_NSMR_WR_DCACPU(x) \
1597 (((x) >> S_FW_RI_FR_NSMR_WR_DCACPU) & M_FW_RI_FR_NSMR_WR_DCACPU)
1599 struct fw_ri_inv_lstag_wr {
1609 struct fw_ri_send_immediate_wr {
1615 __be32 sendimmop_pkd;
1620 #ifndef C99_NOT_SUPPORTED
1621 struct fw_ri_immd immd_src[0];
1625 #define S_FW_RI_SEND_IMMEDIATE_WR_SENDIMMOP 0
1626 #define M_FW_RI_SEND_IMMEDIATE_WR_SENDIMMOP 0xf
1627 #define V_FW_RI_SEND_IMMEDIATE_WR_SENDIMMOP(x) \
1628 ((x) << S_FW_RI_SEND_IMMEDIATE_WR_SENDIMMOP)
1629 #define G_FW_RI_SEND_IMMEDIATE_WR_SENDIMMOP(x) \
1630 (((x) >> S_FW_RI_SEND_IMMEDIATE_WR_SENDIMMOP) & \
1631 M_FW_RI_SEND_IMMEDIATE_WR_SENDIMMOP)
1633 enum fw_ri_atomic_op {
1634 FW_RI_ATOMIC_OP_FETCHADD,
1635 FW_RI_ATOMIC_OP_SWAP,
1636 FW_RI_ATOMIC_OP_CMDSWAP,
1639 struct fw_ri_atomic_wr {
1645 __be32 atomicop_pkd;
1652 __be32 addswap_data_hi;
1653 __be32 addswap_data_lo;
1654 __be32 addswap_mask_hi;
1655 __be32 addswap_mask_lo;
1656 __be32 compare_data_hi;
1657 __be32 compare_data_lo;
1658 __be32 compare_mask_hi;
1659 __be32 compare_mask_lo;
1663 #define S_FW_RI_ATOMIC_WR_ATOMICOP 0
1664 #define M_FW_RI_ATOMIC_WR_ATOMICOP 0xf
1665 #define V_FW_RI_ATOMIC_WR_ATOMICOP(x) ((x) << S_FW_RI_ATOMIC_WR_ATOMICOP)
1666 #define G_FW_RI_ATOMIC_WR_ATOMICOP(x) \
1667 (((x) >> S_FW_RI_ATOMIC_WR_ATOMICOP) & M_FW_RI_ATOMIC_WR_ATOMICOP)
1669 #define S_FW_RI_ATOMIC_WR_AOPCODE 0
1670 #define M_FW_RI_ATOMIC_WR_AOPCODE 0xf
1671 #define V_FW_RI_ATOMIC_WR_AOPCODE(x) ((x) << S_FW_RI_ATOMIC_WR_AOPCODE)
1672 #define G_FW_RI_ATOMIC_WR_AOPCODE(x) \
1673 (((x) >> S_FW_RI_ATOMIC_WR_AOPCODE) & M_FW_RI_ATOMIC_WR_AOPCODE)
1678 FW_RI_TYPE_TERMINATE
1681 enum fw_ri_init_p2ptype {
1682 FW_RI_INIT_P2PTYPE_RDMA_WRITE = FW_RI_RDMA_WRITE,
1683 FW_RI_INIT_P2PTYPE_READ_REQ = FW_RI_READ_REQ,
1684 FW_RI_INIT_P2PTYPE_SEND = FW_RI_SEND,
1685 FW_RI_INIT_P2PTYPE_SEND_WITH_INV = FW_RI_SEND_WITH_INV,
1686 FW_RI_INIT_P2PTYPE_SEND_WITH_SE = FW_RI_SEND_WITH_SE,
1687 FW_RI_INIT_P2PTYPE_SEND_WITH_SE_INV = FW_RI_SEND_WITH_SE_INV,
1688 FW_RI_INIT_P2PTYPE_DISABLED = 0xf,
1693 __be32 flowid_len16;
1698 __u8 mpareqbit_p2ptype;
1716 union fw_ri_init_p2p {
1717 struct fw_ri_rdma_write_wr write;
1718 struct fw_ri_rdma_read_wr read;
1719 struct fw_ri_send_wr send;
1727 struct fw_ri_terminate {
1736 #define S_FW_RI_WR_MPAREQBIT 7
1737 #define M_FW_RI_WR_MPAREQBIT 0x1
1738 #define V_FW_RI_WR_MPAREQBIT(x) ((x) << S_FW_RI_WR_MPAREQBIT)
1739 #define G_FW_RI_WR_MPAREQBIT(x) \
1740 (((x) >> S_FW_RI_WR_MPAREQBIT) & M_FW_RI_WR_MPAREQBIT)
1741 #define F_FW_RI_WR_MPAREQBIT V_FW_RI_WR_MPAREQBIT(1U)
1743 #define S_FW_RI_WR_0BRRBIT 6
1744 #define M_FW_RI_WR_0BRRBIT 0x1
1745 #define V_FW_RI_WR_0BRRBIT(x) ((x) << S_FW_RI_WR_0BRRBIT)
1746 #define G_FW_RI_WR_0BRRBIT(x) \
1747 (((x) >> S_FW_RI_WR_0BRRBIT) & M_FW_RI_WR_0BRRBIT)
1748 #define F_FW_RI_WR_0BRRBIT V_FW_RI_WR_0BRRBIT(1U)
1750 #define S_FW_RI_WR_P2PTYPE 0
1751 #define M_FW_RI_WR_P2PTYPE 0xf
1752 #define V_FW_RI_WR_P2PTYPE(x) ((x) << S_FW_RI_WR_P2PTYPE)
1753 #define G_FW_RI_WR_P2PTYPE(x) \
1754 (((x) >> S_FW_RI_WR_P2PTYPE) & M_FW_RI_WR_P2PTYPE)
1756 /******************************************************************************
1757 * F O i S C S I W O R K R E Q U E S T s
1758 *********************************************/
1760 #define FW_FOISCSI_NAME_MAX_LEN 224
1761 #define FW_FOISCSI_ALIAS_MAX_LEN 224
1762 #define FW_FOISCSI_CHAP_SEC_MAX_LEN 128
1763 #define FW_FOISCSI_INIT_NODE_MAX 8
1765 enum fw_chnet_ifconf_wr_subop {
1766 FW_CHNET_IFCONF_WR_SUBOP_NONE = 0,
1768 FW_CHNET_IFCONF_WR_SUBOP_IPV4_SET,
1769 FW_CHNET_IFCONF_WR_SUBOP_IPV4_GET,
1771 FW_CHNET_IFCONF_WR_SUBOP_VLAN_IPV4_SET,
1772 FW_CHNET_IFCONF_WR_SUBOP_VLAN_IPV4_GET,
1774 FW_CHNET_IFCONF_WR_SUBOP_IPV6_SET,
1775 FW_CHNET_IFCONF_WR_SUBOP_IPV6_GET,
1777 FW_CHNET_IFCONF_WR_SUBOP_VLAN_SET,
1778 FW_CHNET_IFCONF_WR_SUBOP_VLAN_GET,
1780 FW_CHNET_IFCONF_WR_SUBOP_MTU_SET,
1781 FW_CHNET_IFCONF_WR_SUBOP_MTU_GET,
1783 FW_CHNET_IFCONF_WR_SUBOP_DHCP_SET,
1784 FW_CHNET_IFCONF_WR_SUBOP_DHCP_GET,
1786 FW_CHNET_IFCONF_WR_SUBOP_MAX,
1789 struct fw_chnet_ifconf_wr {
1791 __be32 flowid_len16;
1799 struct fw_chnet_ifconf_params {
1803 union fw_chnet_ifconf_addr_type {
1804 struct fw_chnet_ifconf_ipv4 {
1811 struct fw_chnet_ifconf_ipv6 {
1812 __be64 linklocal_lo;
1813 __be64 linklocal_hi;
1818 __be64 linklocal_aconf_hi;
1819 __be64 linklocal_aconf_lo;
1820 __be64 router_aconf_hi;
1821 __be64 router_aconf_lo;
1828 enum fw_foiscsi_node_type {
1829 FW_FOISCSI_NODE_TYPE_INITIATOR = 0,
1830 FW_FOISCSI_NODE_TYPE_TARGET,
1833 enum fw_foiscsi_session_type {
1834 FW_FOISCSI_SESSION_TYPE_DISCOVERY = 0,
1835 FW_FOISCSI_SESSION_TYPE_NORMAL,
1838 enum fw_foiscsi_auth_policy {
1839 FW_FOISCSI_AUTH_POLICY_ONEWAY = 0,
1840 FW_FOISCSI_AUTH_POLICY_MUTUAL,
1843 enum fw_foiscsi_auth_method {
1844 FW_FOISCSI_AUTH_METHOD_NONE = 0,
1845 FW_FOISCSI_AUTH_METHOD_CHAP,
1846 FW_FOISCSI_AUTH_METHOD_CHAP_FST,
1847 FW_FOISCSI_AUTH_METHOD_CHAP_SEC,
1850 enum fw_foiscsi_digest_type {
1851 FW_FOISCSI_DIGEST_TYPE_NONE = 0,
1852 FW_FOISCSI_DIGEST_TYPE_CRC32,
1853 FW_FOISCSI_DIGEST_TYPE_CRC32_FST,
1854 FW_FOISCSI_DIGEST_TYPE_CRC32_SEC,
1857 enum fw_foiscsi_wr_subop {
1858 FW_FOISCSI_WR_SUBOP_ADD = 1,
1859 FW_FOISCSI_WR_SUBOP_DEL = 2,
1860 FW_FOISCSI_WR_SUBOP_MOD = 4,
1863 enum fw_foiscsi_ctrl_state {
1864 FW_FOISCSI_CTRL_STATE_FREE = 0,
1865 FW_FOISCSI_CTRL_STATE_ONLINE = 1,
1866 FW_FOISCSI_CTRL_STATE_FAILED,
1867 FW_FOISCSI_CTRL_STATE_IN_RECOVERY,
1868 FW_FOISCSI_CTRL_STATE_REDIRECT,
1872 __be32 op_to_immdlen;
1873 __be32 alloc_to_len16;
1879 __be32 flags_to_assoc_flowid;
1881 struct fcoe_rdev_entry {
1890 __u8 rd_xfer_rdy_to_rport_type;
1892 __u8 org_proc_assoc_to_acc_rsp_code;
1893 __u8 enh_disc_to_tgt;
1900 struct iscsi_rdev_entry {
1911 __be16 first_brst_len;
1912 __be16 max_brst_len;
1914 __be16 def_time2wait;
1915 __be16 def_time2ret;
1916 __be16 nop_out_intrvl;
1928 #define S_FW_RDEV_WR_IMMDLEN 0
1929 #define M_FW_RDEV_WR_IMMDLEN 0xff
1930 #define V_FW_RDEV_WR_IMMDLEN(x) ((x) << S_FW_RDEV_WR_IMMDLEN)
1931 #define G_FW_RDEV_WR_IMMDLEN(x) \
1932 (((x) >> S_FW_RDEV_WR_IMMDLEN) & M_FW_RDEV_WR_IMMDLEN)
1934 #define S_FW_RDEV_WR_ALLOC 31
1935 #define M_FW_RDEV_WR_ALLOC 0x1
1936 #define V_FW_RDEV_WR_ALLOC(x) ((x) << S_FW_RDEV_WR_ALLOC)
1937 #define G_FW_RDEV_WR_ALLOC(x) \
1938 (((x) >> S_FW_RDEV_WR_ALLOC) & M_FW_RDEV_WR_ALLOC)
1939 #define F_FW_RDEV_WR_ALLOC V_FW_RDEV_WR_ALLOC(1U)
1941 #define S_FW_RDEV_WR_FREE 30
1942 #define M_FW_RDEV_WR_FREE 0x1
1943 #define V_FW_RDEV_WR_FREE(x) ((x) << S_FW_RDEV_WR_FREE)
1944 #define G_FW_RDEV_WR_FREE(x) \
1945 (((x) >> S_FW_RDEV_WR_FREE) & M_FW_RDEV_WR_FREE)
1946 #define F_FW_RDEV_WR_FREE V_FW_RDEV_WR_FREE(1U)
1948 #define S_FW_RDEV_WR_MODIFY 29
1949 #define M_FW_RDEV_WR_MODIFY 0x1
1950 #define V_FW_RDEV_WR_MODIFY(x) ((x) << S_FW_RDEV_WR_MODIFY)
1951 #define G_FW_RDEV_WR_MODIFY(x) \
1952 (((x) >> S_FW_RDEV_WR_MODIFY) & M_FW_RDEV_WR_MODIFY)
1953 #define F_FW_RDEV_WR_MODIFY V_FW_RDEV_WR_MODIFY(1U)
1955 #define S_FW_RDEV_WR_FLOWID 8
1956 #define M_FW_RDEV_WR_FLOWID 0xfffff
1957 #define V_FW_RDEV_WR_FLOWID(x) ((x) << S_FW_RDEV_WR_FLOWID)
1958 #define G_FW_RDEV_WR_FLOWID(x) \
1959 (((x) >> S_FW_RDEV_WR_FLOWID) & M_FW_RDEV_WR_FLOWID)
1961 #define S_FW_RDEV_WR_LEN16 0
1962 #define M_FW_RDEV_WR_LEN16 0xff
1963 #define V_FW_RDEV_WR_LEN16(x) ((x) << S_FW_RDEV_WR_LEN16)
1964 #define G_FW_RDEV_WR_LEN16(x) \
1965 (((x) >> S_FW_RDEV_WR_LEN16) & M_FW_RDEV_WR_LEN16)
1967 #define S_FW_RDEV_WR_FLAGS 24
1968 #define M_FW_RDEV_WR_FLAGS 0xff
1969 #define V_FW_RDEV_WR_FLAGS(x) ((x) << S_FW_RDEV_WR_FLAGS)
1970 #define G_FW_RDEV_WR_FLAGS(x) \
1971 (((x) >> S_FW_RDEV_WR_FLAGS) & M_FW_RDEV_WR_FLAGS)
1973 #define S_FW_RDEV_WR_GET_NEXT 20
1974 #define M_FW_RDEV_WR_GET_NEXT 0xf
1975 #define V_FW_RDEV_WR_GET_NEXT(x) ((x) << S_FW_RDEV_WR_GET_NEXT)
1976 #define G_FW_RDEV_WR_GET_NEXT(x) \
1977 (((x) >> S_FW_RDEV_WR_GET_NEXT) & M_FW_RDEV_WR_GET_NEXT)
1979 #define S_FW_RDEV_WR_ASSOC_FLOWID 0
1980 #define M_FW_RDEV_WR_ASSOC_FLOWID 0xfffff
1981 #define V_FW_RDEV_WR_ASSOC_FLOWID(x) ((x) << S_FW_RDEV_WR_ASSOC_FLOWID)
1982 #define G_FW_RDEV_WR_ASSOC_FLOWID(x) \
1983 (((x) >> S_FW_RDEV_WR_ASSOC_FLOWID) & M_FW_RDEV_WR_ASSOC_FLOWID)
1985 #define S_FW_RDEV_WR_RJT 7
1986 #define M_FW_RDEV_WR_RJT 0x1
1987 #define V_FW_RDEV_WR_RJT(x) ((x) << S_FW_RDEV_WR_RJT)
1988 #define G_FW_RDEV_WR_RJT(x) (((x) >> S_FW_RDEV_WR_RJT) & M_FW_RDEV_WR_RJT)
1989 #define F_FW_RDEV_WR_RJT V_FW_RDEV_WR_RJT(1U)
1991 #define S_FW_RDEV_WR_REASON 0
1992 #define M_FW_RDEV_WR_REASON 0x7f
1993 #define V_FW_RDEV_WR_REASON(x) ((x) << S_FW_RDEV_WR_REASON)
1994 #define G_FW_RDEV_WR_REASON(x) \
1995 (((x) >> S_FW_RDEV_WR_REASON) & M_FW_RDEV_WR_REASON)
1997 #define S_FW_RDEV_WR_RD_XFER_RDY 7
1998 #define M_FW_RDEV_WR_RD_XFER_RDY 0x1
1999 #define V_FW_RDEV_WR_RD_XFER_RDY(x) ((x) << S_FW_RDEV_WR_RD_XFER_RDY)
2000 #define G_FW_RDEV_WR_RD_XFER_RDY(x) \
2001 (((x) >> S_FW_RDEV_WR_RD_XFER_RDY) & M_FW_RDEV_WR_RD_XFER_RDY)
2002 #define F_FW_RDEV_WR_RD_XFER_RDY V_FW_RDEV_WR_RD_XFER_RDY(1U)
2004 #define S_FW_RDEV_WR_WR_XFER_RDY 6
2005 #define M_FW_RDEV_WR_WR_XFER_RDY 0x1
2006 #define V_FW_RDEV_WR_WR_XFER_RDY(x) ((x) << S_FW_RDEV_WR_WR_XFER_RDY)
2007 #define G_FW_RDEV_WR_WR_XFER_RDY(x) \
2008 (((x) >> S_FW_RDEV_WR_WR_XFER_RDY) & M_FW_RDEV_WR_WR_XFER_RDY)
2009 #define F_FW_RDEV_WR_WR_XFER_RDY V_FW_RDEV_WR_WR_XFER_RDY(1U)
2011 #define S_FW_RDEV_WR_FC_SP 5
2012 #define M_FW_RDEV_WR_FC_SP 0x1
2013 #define V_FW_RDEV_WR_FC_SP(x) ((x) << S_FW_RDEV_WR_FC_SP)
2014 #define G_FW_RDEV_WR_FC_SP(x) \
2015 (((x) >> S_FW_RDEV_WR_FC_SP) & M_FW_RDEV_WR_FC_SP)
2016 #define F_FW_RDEV_WR_FC_SP V_FW_RDEV_WR_FC_SP(1U)
2018 #define S_FW_RDEV_WR_RPORT_TYPE 0
2019 #define M_FW_RDEV_WR_RPORT_TYPE 0x1f
2020 #define V_FW_RDEV_WR_RPORT_TYPE(x) ((x) << S_FW_RDEV_WR_RPORT_TYPE)
2021 #define G_FW_RDEV_WR_RPORT_TYPE(x) \
2022 (((x) >> S_FW_RDEV_WR_RPORT_TYPE) & M_FW_RDEV_WR_RPORT_TYPE)
2024 #define S_FW_RDEV_WR_VFT 7
2025 #define M_FW_RDEV_WR_VFT 0x1
2026 #define V_FW_RDEV_WR_VFT(x) ((x) << S_FW_RDEV_WR_VFT)
2027 #define G_FW_RDEV_WR_VFT(x) (((x) >> S_FW_RDEV_WR_VFT) & M_FW_RDEV_WR_VFT)
2028 #define F_FW_RDEV_WR_VFT V_FW_RDEV_WR_VFT(1U)
2030 #define S_FW_RDEV_WR_NPIV 6
2031 #define M_FW_RDEV_WR_NPIV 0x1
2032 #define V_FW_RDEV_WR_NPIV(x) ((x) << S_FW_RDEV_WR_NPIV)
2033 #define G_FW_RDEV_WR_NPIV(x) \
2034 (((x) >> S_FW_RDEV_WR_NPIV) & M_FW_RDEV_WR_NPIV)
2035 #define F_FW_RDEV_WR_NPIV V_FW_RDEV_WR_NPIV(1U)
2037 #define S_FW_RDEV_WR_CLASS 4
2038 #define M_FW_RDEV_WR_CLASS 0x3
2039 #define V_FW_RDEV_WR_CLASS(x) ((x) << S_FW_RDEV_WR_CLASS)
2040 #define G_FW_RDEV_WR_CLASS(x) \
2041 (((x) >> S_FW_RDEV_WR_CLASS) & M_FW_RDEV_WR_CLASS)
2043 #define S_FW_RDEV_WR_SEQ_DEL 3
2044 #define M_FW_RDEV_WR_SEQ_DEL 0x1
2045 #define V_FW_RDEV_WR_SEQ_DEL(x) ((x) << S_FW_RDEV_WR_SEQ_DEL)
2046 #define G_FW_RDEV_WR_SEQ_DEL(x) \
2047 (((x) >> S_FW_RDEV_WR_SEQ_DEL) & M_FW_RDEV_WR_SEQ_DEL)
2048 #define F_FW_RDEV_WR_SEQ_DEL V_FW_RDEV_WR_SEQ_DEL(1U)
2050 #define S_FW_RDEV_WR_PRIO_PREEMP 2
2051 #define M_FW_RDEV_WR_PRIO_PREEMP 0x1
2052 #define V_FW_RDEV_WR_PRIO_PREEMP(x) ((x) << S_FW_RDEV_WR_PRIO_PREEMP)
2053 #define G_FW_RDEV_WR_PRIO_PREEMP(x) \
2054 (((x) >> S_FW_RDEV_WR_PRIO_PREEMP) & M_FW_RDEV_WR_PRIO_PREEMP)
2055 #define F_FW_RDEV_WR_PRIO_PREEMP V_FW_RDEV_WR_PRIO_PREEMP(1U)
2057 #define S_FW_RDEV_WR_PREF 1
2058 #define M_FW_RDEV_WR_PREF 0x1
2059 #define V_FW_RDEV_WR_PREF(x) ((x) << S_FW_RDEV_WR_PREF)
2060 #define G_FW_RDEV_WR_PREF(x) \
2061 (((x) >> S_FW_RDEV_WR_PREF) & M_FW_RDEV_WR_PREF)
2062 #define F_FW_RDEV_WR_PREF V_FW_RDEV_WR_PREF(1U)
2064 #define S_FW_RDEV_WR_QOS 0
2065 #define M_FW_RDEV_WR_QOS 0x1
2066 #define V_FW_RDEV_WR_QOS(x) ((x) << S_FW_RDEV_WR_QOS)
2067 #define G_FW_RDEV_WR_QOS(x) (((x) >> S_FW_RDEV_WR_QOS) & M_FW_RDEV_WR_QOS)
2068 #define F_FW_RDEV_WR_QOS V_FW_RDEV_WR_QOS(1U)
2070 #define S_FW_RDEV_WR_ORG_PROC_ASSOC 7
2071 #define M_FW_RDEV_WR_ORG_PROC_ASSOC 0x1
2072 #define V_FW_RDEV_WR_ORG_PROC_ASSOC(x) ((x) << S_FW_RDEV_WR_ORG_PROC_ASSOC)
2073 #define G_FW_RDEV_WR_ORG_PROC_ASSOC(x) \
2074 (((x) >> S_FW_RDEV_WR_ORG_PROC_ASSOC) & M_FW_RDEV_WR_ORG_PROC_ASSOC)
2075 #define F_FW_RDEV_WR_ORG_PROC_ASSOC V_FW_RDEV_WR_ORG_PROC_ASSOC(1U)
2077 #define S_FW_RDEV_WR_RSP_PROC_ASSOC 6
2078 #define M_FW_RDEV_WR_RSP_PROC_ASSOC 0x1
2079 #define V_FW_RDEV_WR_RSP_PROC_ASSOC(x) ((x) << S_FW_RDEV_WR_RSP_PROC_ASSOC)
2080 #define G_FW_RDEV_WR_RSP_PROC_ASSOC(x) \
2081 (((x) >> S_FW_RDEV_WR_RSP_PROC_ASSOC) & M_FW_RDEV_WR_RSP_PROC_ASSOC)
2082 #define F_FW_RDEV_WR_RSP_PROC_ASSOC V_FW_RDEV_WR_RSP_PROC_ASSOC(1U)
2084 #define S_FW_RDEV_WR_IMAGE_PAIR 5
2085 #define M_FW_RDEV_WR_IMAGE_PAIR 0x1
2086 #define V_FW_RDEV_WR_IMAGE_PAIR(x) ((x) << S_FW_RDEV_WR_IMAGE_PAIR)
2087 #define G_FW_RDEV_WR_IMAGE_PAIR(x) \
2088 (((x) >> S_FW_RDEV_WR_IMAGE_PAIR) & M_FW_RDEV_WR_IMAGE_PAIR)
2089 #define F_FW_RDEV_WR_IMAGE_PAIR V_FW_RDEV_WR_IMAGE_PAIR(1U)
2091 #define S_FW_RDEV_WR_ACC_RSP_CODE 0
2092 #define M_FW_RDEV_WR_ACC_RSP_CODE 0x1f
2093 #define V_FW_RDEV_WR_ACC_RSP_CODE(x) ((x) << S_FW_RDEV_WR_ACC_RSP_CODE)
2094 #define G_FW_RDEV_WR_ACC_RSP_CODE(x) \
2095 (((x) >> S_FW_RDEV_WR_ACC_RSP_CODE) & M_FW_RDEV_WR_ACC_RSP_CODE)
2097 #define S_FW_RDEV_WR_ENH_DISC 7
2098 #define M_FW_RDEV_WR_ENH_DISC 0x1
2099 #define V_FW_RDEV_WR_ENH_DISC(x) ((x) << S_FW_RDEV_WR_ENH_DISC)
2100 #define G_FW_RDEV_WR_ENH_DISC(x) \
2101 (((x) >> S_FW_RDEV_WR_ENH_DISC) & M_FW_RDEV_WR_ENH_DISC)
2102 #define F_FW_RDEV_WR_ENH_DISC V_FW_RDEV_WR_ENH_DISC(1U)
2104 #define S_FW_RDEV_WR_REC 6
2105 #define M_FW_RDEV_WR_REC 0x1
2106 #define V_FW_RDEV_WR_REC(x) ((x) << S_FW_RDEV_WR_REC)
2107 #define G_FW_RDEV_WR_REC(x) (((x) >> S_FW_RDEV_WR_REC) & M_FW_RDEV_WR_REC)
2108 #define F_FW_RDEV_WR_REC V_FW_RDEV_WR_REC(1U)
2110 #define S_FW_RDEV_WR_TASK_RETRY_ID 5
2111 #define M_FW_RDEV_WR_TASK_RETRY_ID 0x1
2112 #define V_FW_RDEV_WR_TASK_RETRY_ID(x) ((x) << S_FW_RDEV_WR_TASK_RETRY_ID)
2113 #define G_FW_RDEV_WR_TASK_RETRY_ID(x) \
2114 (((x) >> S_FW_RDEV_WR_TASK_RETRY_ID) & M_FW_RDEV_WR_TASK_RETRY_ID)
2115 #define F_FW_RDEV_WR_TASK_RETRY_ID V_FW_RDEV_WR_TASK_RETRY_ID(1U)
2117 #define S_FW_RDEV_WR_RETRY 4
2118 #define M_FW_RDEV_WR_RETRY 0x1
2119 #define V_FW_RDEV_WR_RETRY(x) ((x) << S_FW_RDEV_WR_RETRY)
2120 #define G_FW_RDEV_WR_RETRY(x) \
2121 (((x) >> S_FW_RDEV_WR_RETRY) & M_FW_RDEV_WR_RETRY)
2122 #define F_FW_RDEV_WR_RETRY V_FW_RDEV_WR_RETRY(1U)
2124 #define S_FW_RDEV_WR_CONF_CMPL 3
2125 #define M_FW_RDEV_WR_CONF_CMPL 0x1
2126 #define V_FW_RDEV_WR_CONF_CMPL(x) ((x) << S_FW_RDEV_WR_CONF_CMPL)
2127 #define G_FW_RDEV_WR_CONF_CMPL(x) \
2128 (((x) >> S_FW_RDEV_WR_CONF_CMPL) & M_FW_RDEV_WR_CONF_CMPL)
2129 #define F_FW_RDEV_WR_CONF_CMPL V_FW_RDEV_WR_CONF_CMPL(1U)
2131 #define S_FW_RDEV_WR_DATA_OVLY 2
2132 #define M_FW_RDEV_WR_DATA_OVLY 0x1
2133 #define V_FW_RDEV_WR_DATA_OVLY(x) ((x) << S_FW_RDEV_WR_DATA_OVLY)
2134 #define G_FW_RDEV_WR_DATA_OVLY(x) \
2135 (((x) >> S_FW_RDEV_WR_DATA_OVLY) & M_FW_RDEV_WR_DATA_OVLY)
2136 #define F_FW_RDEV_WR_DATA_OVLY V_FW_RDEV_WR_DATA_OVLY(1U)
2138 #define S_FW_RDEV_WR_INI 1
2139 #define M_FW_RDEV_WR_INI 0x1
2140 #define V_FW_RDEV_WR_INI(x) ((x) << S_FW_RDEV_WR_INI)
2141 #define G_FW_RDEV_WR_INI(x) (((x) >> S_FW_RDEV_WR_INI) & M_FW_RDEV_WR_INI)
2142 #define F_FW_RDEV_WR_INI V_FW_RDEV_WR_INI(1U)
2144 #define S_FW_RDEV_WR_TGT 0
2145 #define M_FW_RDEV_WR_TGT 0x1
2146 #define V_FW_RDEV_WR_TGT(x) ((x) << S_FW_RDEV_WR_TGT)
2147 #define G_FW_RDEV_WR_TGT(x) (((x) >> S_FW_RDEV_WR_TGT) & M_FW_RDEV_WR_TGT)
2148 #define F_FW_RDEV_WR_TGT V_FW_RDEV_WR_TGT(1U)
2150 struct fw_foiscsi_node_wr {
2151 __be32 op_to_immdlen;
2152 __be32 flowid_len16;
2161 __be16 retry_timeout;
2167 #define S_FW_FOISCSI_NODE_WR_IMMDLEN 0
2168 #define M_FW_FOISCSI_NODE_WR_IMMDLEN 0xffff
2169 #define V_FW_FOISCSI_NODE_WR_IMMDLEN(x) ((x) << S_FW_FOISCSI_NODE_WR_IMMDLEN)
2170 #define G_FW_FOISCSI_NODE_WR_IMMDLEN(x) \
2171 (((x) >> S_FW_FOISCSI_NODE_WR_IMMDLEN) & M_FW_FOISCSI_NODE_WR_IMMDLEN)
2173 struct fw_foiscsi_ctrl_wr {
2175 __be32 flowid_len16;
2184 struct fw_foiscsi_sess_attr {
2185 __be32 sess_type_to_erl;
2194 struct fw_foiscsi_conn_attr {
2195 __be32 hdigest_to_ddp_pgsz;
2200 union fw_foiscsi_conn_attr_addr {
2201 struct fw_foiscsi_conn_attr_ipv6 {
2205 struct fw_foiscsi_conn_attr_ipv4 {
2213 __u8 tgt_name[FW_FOISCSI_NAME_MAX_LEN];
2216 #define S_FW_FOISCSI_CTRL_WR_SESS_TYPE 30
2217 #define M_FW_FOISCSI_CTRL_WR_SESS_TYPE 0x3
2218 #define V_FW_FOISCSI_CTRL_WR_SESS_TYPE(x) \
2219 ((x) << S_FW_FOISCSI_CTRL_WR_SESS_TYPE)
2220 #define G_FW_FOISCSI_CTRL_WR_SESS_TYPE(x) \
2221 (((x) >> S_FW_FOISCSI_CTRL_WR_SESS_TYPE) & M_FW_FOISCSI_CTRL_WR_SESS_TYPE)
2223 #define S_FW_FOISCSI_CTRL_WR_SEQ_INORDER 29
2224 #define M_FW_FOISCSI_CTRL_WR_SEQ_INORDER 0x1
2225 #define V_FW_FOISCSI_CTRL_WR_SEQ_INORDER(x) \
2226 ((x) << S_FW_FOISCSI_CTRL_WR_SEQ_INORDER)
2227 #define G_FW_FOISCSI_CTRL_WR_SEQ_INORDER(x) \
2228 (((x) >> S_FW_FOISCSI_CTRL_WR_SEQ_INORDER) & \
2229 M_FW_FOISCSI_CTRL_WR_SEQ_INORDER)
2230 #define F_FW_FOISCSI_CTRL_WR_SEQ_INORDER \
2231 V_FW_FOISCSI_CTRL_WR_SEQ_INORDER(1U)
2233 #define S_FW_FOISCSI_CTRL_WR_PDU_INORDER 28
2234 #define M_FW_FOISCSI_CTRL_WR_PDU_INORDER 0x1
2235 #define V_FW_FOISCSI_CTRL_WR_PDU_INORDER(x) \
2236 ((x) << S_FW_FOISCSI_CTRL_WR_PDU_INORDER)
2237 #define G_FW_FOISCSI_CTRL_WR_PDU_INORDER(x) \
2238 (((x) >> S_FW_FOISCSI_CTRL_WR_PDU_INORDER) & \
2239 M_FW_FOISCSI_CTRL_WR_PDU_INORDER)
2240 #define F_FW_FOISCSI_CTRL_WR_PDU_INORDER \
2241 V_FW_FOISCSI_CTRL_WR_PDU_INORDER(1U)
2243 #define S_FW_FOISCSI_CTRL_WR_IMMD_DATA_EN 27
2244 #define M_FW_FOISCSI_CTRL_WR_IMMD_DATA_EN 0x1
2245 #define V_FW_FOISCSI_CTRL_WR_IMMD_DATA_EN(x) \
2246 ((x) << S_FW_FOISCSI_CTRL_WR_IMMD_DATA_EN)
2247 #define G_FW_FOISCSI_CTRL_WR_IMMD_DATA_EN(x) \
2248 (((x) >> S_FW_FOISCSI_CTRL_WR_IMMD_DATA_EN) & \
2249 M_FW_FOISCSI_CTRL_WR_IMMD_DATA_EN)
2250 #define F_FW_FOISCSI_CTRL_WR_IMMD_DATA_EN \
2251 V_FW_FOISCSI_CTRL_WR_IMMD_DATA_EN(1U)
2253 #define S_FW_FOISCSI_CTRL_WR_INIT_R2T_EN 26
2254 #define M_FW_FOISCSI_CTRL_WR_INIT_R2T_EN 0x1
2255 #define V_FW_FOISCSI_CTRL_WR_INIT_R2T_EN(x) \
2256 ((x) << S_FW_FOISCSI_CTRL_WR_INIT_R2T_EN)
2257 #define G_FW_FOISCSI_CTRL_WR_INIT_R2T_EN(x) \
2258 (((x) >> S_FW_FOISCSI_CTRL_WR_INIT_R2T_EN) & \
2259 M_FW_FOISCSI_CTRL_WR_INIT_R2T_EN)
2260 #define F_FW_FOISCSI_CTRL_WR_INIT_R2T_EN \
2261 V_FW_FOISCSI_CTRL_WR_INIT_R2T_EN(1U)
2263 #define S_FW_FOISCSI_CTRL_WR_ERL 24
2264 #define M_FW_FOISCSI_CTRL_WR_ERL 0x3
2265 #define V_FW_FOISCSI_CTRL_WR_ERL(x) ((x) << S_FW_FOISCSI_CTRL_WR_ERL)
2266 #define G_FW_FOISCSI_CTRL_WR_ERL(x) \
2267 (((x) >> S_FW_FOISCSI_CTRL_WR_ERL) & M_FW_FOISCSI_CTRL_WR_ERL)
2269 #define S_FW_FOISCSI_CTRL_WR_HDIGEST 30
2270 #define M_FW_FOISCSI_CTRL_WR_HDIGEST 0x3
2271 #define V_FW_FOISCSI_CTRL_WR_HDIGEST(x) ((x) << S_FW_FOISCSI_CTRL_WR_HDIGEST)
2272 #define G_FW_FOISCSI_CTRL_WR_HDIGEST(x) \
2273 (((x) >> S_FW_FOISCSI_CTRL_WR_HDIGEST) & M_FW_FOISCSI_CTRL_WR_HDIGEST)
2275 #define S_FW_FOISCSI_CTRL_WR_DDIGEST 28
2276 #define M_FW_FOISCSI_CTRL_WR_DDIGEST 0x3
2277 #define V_FW_FOISCSI_CTRL_WR_DDIGEST(x) ((x) << S_FW_FOISCSI_CTRL_WR_DDIGEST)
2278 #define G_FW_FOISCSI_CTRL_WR_DDIGEST(x) \
2279 (((x) >> S_FW_FOISCSI_CTRL_WR_DDIGEST) & M_FW_FOISCSI_CTRL_WR_DDIGEST)
2281 #define S_FW_FOISCSI_CTRL_WR_AUTH_METHOD 25
2282 #define M_FW_FOISCSI_CTRL_WR_AUTH_METHOD 0x7
2283 #define V_FW_FOISCSI_CTRL_WR_AUTH_METHOD(x) \
2284 ((x) << S_FW_FOISCSI_CTRL_WR_AUTH_METHOD)
2285 #define G_FW_FOISCSI_CTRL_WR_AUTH_METHOD(x) \
2286 (((x) >> S_FW_FOISCSI_CTRL_WR_AUTH_METHOD) & \
2287 M_FW_FOISCSI_CTRL_WR_AUTH_METHOD)
2289 #define S_FW_FOISCSI_CTRL_WR_AUTH_POLICY 23
2290 #define M_FW_FOISCSI_CTRL_WR_AUTH_POLICY 0x3
2291 #define V_FW_FOISCSI_CTRL_WR_AUTH_POLICY(x) \
2292 ((x) << S_FW_FOISCSI_CTRL_WR_AUTH_POLICY)
2293 #define G_FW_FOISCSI_CTRL_WR_AUTH_POLICY(x) \
2294 (((x) >> S_FW_FOISCSI_CTRL_WR_AUTH_POLICY) & \
2295 M_FW_FOISCSI_CTRL_WR_AUTH_POLICY)
2297 #define S_FW_FOISCSI_CTRL_WR_DDP_PGSZ 21
2298 #define M_FW_FOISCSI_CTRL_WR_DDP_PGSZ 0x3
2299 #define V_FW_FOISCSI_CTRL_WR_DDP_PGSZ(x) \
2300 ((x) << S_FW_FOISCSI_CTRL_WR_DDP_PGSZ)
2301 #define G_FW_FOISCSI_CTRL_WR_DDP_PGSZ(x) \
2302 (((x) >> S_FW_FOISCSI_CTRL_WR_DDP_PGSZ) & M_FW_FOISCSI_CTRL_WR_DDP_PGSZ)
2304 struct fw_foiscsi_chap_wr {
2306 __be32 flowid_len16;
2314 __u8 chap_id[FW_FOISCSI_NAME_MAX_LEN];
2315 __u8 chap_sec[FW_FOISCSI_CHAP_SEC_MAX_LEN];
2318 /******************************************************************************
2319 * F O F C O E W O R K R E Q U E S T s
2320 *******************************************/
2322 struct fw_fcoe_els_ct_wr {
2324 __be32 flowid_len16;
2341 #define S_FW_FCOE_ELS_CT_WR_OPCODE 24
2342 #define M_FW_FCOE_ELS_CT_WR_OPCODE 0xff
2343 #define V_FW_FCOE_ELS_CT_WR_OPCODE(x) ((x) << S_FW_FCOE_ELS_CT_WR_OPCODE)
2344 #define G_FW_FCOE_ELS_CT_WR_OPCODE(x) \
2345 (((x) >> S_FW_FCOE_ELS_CT_WR_OPCODE) & M_FW_FCOE_ELS_CT_WR_OPCODE)
2347 #define S_FW_FCOE_ELS_CT_WR_IMMDLEN 0
2348 #define M_FW_FCOE_ELS_CT_WR_IMMDLEN 0xff
2349 #define V_FW_FCOE_ELS_CT_WR_IMMDLEN(x) ((x) << S_FW_FCOE_ELS_CT_WR_IMMDLEN)
2350 #define G_FW_FCOE_ELS_CT_WR_IMMDLEN(x) \
2351 (((x) >> S_FW_FCOE_ELS_CT_WR_IMMDLEN) & M_FW_FCOE_ELS_CT_WR_IMMDLEN)
2353 #define S_FW_FCOE_ELS_CT_WR_FLOWID 8
2354 #define M_FW_FCOE_ELS_CT_WR_FLOWID 0xfffff
2355 #define V_FW_FCOE_ELS_CT_WR_FLOWID(x) ((x) << S_FW_FCOE_ELS_CT_WR_FLOWID)
2356 #define G_FW_FCOE_ELS_CT_WR_FLOWID(x) \
2357 (((x) >> S_FW_FCOE_ELS_CT_WR_FLOWID) & M_FW_FCOE_ELS_CT_WR_FLOWID)
2359 #define S_FW_FCOE_ELS_CT_WR_LEN16 0
2360 #define M_FW_FCOE_ELS_CT_WR_LEN16 0xff
2361 #define V_FW_FCOE_ELS_CT_WR_LEN16(x) ((x) << S_FW_FCOE_ELS_CT_WR_LEN16)
2362 #define G_FW_FCOE_ELS_CT_WR_LEN16(x) \
2363 (((x) >> S_FW_FCOE_ELS_CT_WR_LEN16) & M_FW_FCOE_ELS_CT_WR_LEN16)
2365 #define S_FW_FCOE_ELS_CT_WR_CP_EN 6
2366 #define M_FW_FCOE_ELS_CT_WR_CP_EN 0x3
2367 #define V_FW_FCOE_ELS_CT_WR_CP_EN(x) ((x) << S_FW_FCOE_ELS_CT_WR_CP_EN)
2368 #define G_FW_FCOE_ELS_CT_WR_CP_EN(x) \
2369 (((x) >> S_FW_FCOE_ELS_CT_WR_CP_EN) & M_FW_FCOE_ELS_CT_WR_CP_EN)
2371 #define S_FW_FCOE_ELS_CT_WR_CLASS 4
2372 #define M_FW_FCOE_ELS_CT_WR_CLASS 0x3
2373 #define V_FW_FCOE_ELS_CT_WR_CLASS(x) ((x) << S_FW_FCOE_ELS_CT_WR_CLASS)
2374 #define G_FW_FCOE_ELS_CT_WR_CLASS(x) \
2375 (((x) >> S_FW_FCOE_ELS_CT_WR_CLASS) & M_FW_FCOE_ELS_CT_WR_CLASS)
2377 #define S_FW_FCOE_ELS_CT_WR_FL 2
2378 #define M_FW_FCOE_ELS_CT_WR_FL 0x1
2379 #define V_FW_FCOE_ELS_CT_WR_FL(x) ((x) << S_FW_FCOE_ELS_CT_WR_FL)
2380 #define G_FW_FCOE_ELS_CT_WR_FL(x) \
2381 (((x) >> S_FW_FCOE_ELS_CT_WR_FL) & M_FW_FCOE_ELS_CT_WR_FL)
2382 #define F_FW_FCOE_ELS_CT_WR_FL V_FW_FCOE_ELS_CT_WR_FL(1U)
2384 #define S_FW_FCOE_ELS_CT_WR_NPIV 1
2385 #define M_FW_FCOE_ELS_CT_WR_NPIV 0x1
2386 #define V_FW_FCOE_ELS_CT_WR_NPIV(x) ((x) << S_FW_FCOE_ELS_CT_WR_NPIV)
2387 #define G_FW_FCOE_ELS_CT_WR_NPIV(x) \
2388 (((x) >> S_FW_FCOE_ELS_CT_WR_NPIV) & M_FW_FCOE_ELS_CT_WR_NPIV)
2389 #define F_FW_FCOE_ELS_CT_WR_NPIV V_FW_FCOE_ELS_CT_WR_NPIV(1U)
2391 #define S_FW_FCOE_ELS_CT_WR_SP 0
2392 #define M_FW_FCOE_ELS_CT_WR_SP 0x1
2393 #define V_FW_FCOE_ELS_CT_WR_SP(x) ((x) << S_FW_FCOE_ELS_CT_WR_SP)
2394 #define G_FW_FCOE_ELS_CT_WR_SP(x) \
2395 (((x) >> S_FW_FCOE_ELS_CT_WR_SP) & M_FW_FCOE_ELS_CT_WR_SP)
2396 #define F_FW_FCOE_ELS_CT_WR_SP V_FW_FCOE_ELS_CT_WR_SP(1U)
2398 /******************************************************************************
2399 * S C S I W O R K R E Q U E S T s (FOiSCSI and FCOE unified data path)
2400 *****************************************************************************/
2402 struct fw_scsi_write_wr {
2404 __be32 flowid_len16;
2409 union fw_scsi_write_priv {
2410 struct fcoe_write_priv {
2415 struct iscsi_write_priv {
2420 __be32 ini_xfer_cnt;
2426 #define S_FW_SCSI_WRITE_WR_OPCODE 24
2427 #define M_FW_SCSI_WRITE_WR_OPCODE 0xff
2428 #define V_FW_SCSI_WRITE_WR_OPCODE(x) ((x) << S_FW_SCSI_WRITE_WR_OPCODE)
2429 #define G_FW_SCSI_WRITE_WR_OPCODE(x) \
2430 (((x) >> S_FW_SCSI_WRITE_WR_OPCODE) & M_FW_SCSI_WRITE_WR_OPCODE)
2432 #define S_FW_SCSI_WRITE_WR_IMMDLEN 0
2433 #define M_FW_SCSI_WRITE_WR_IMMDLEN 0xff
2434 #define V_FW_SCSI_WRITE_WR_IMMDLEN(x) ((x) << S_FW_SCSI_WRITE_WR_IMMDLEN)
2435 #define G_FW_SCSI_WRITE_WR_IMMDLEN(x) \
2436 (((x) >> S_FW_SCSI_WRITE_WR_IMMDLEN) & M_FW_SCSI_WRITE_WR_IMMDLEN)
2438 #define S_FW_SCSI_WRITE_WR_FLOWID 8
2439 #define M_FW_SCSI_WRITE_WR_FLOWID 0xfffff
2440 #define V_FW_SCSI_WRITE_WR_FLOWID(x) ((x) << S_FW_SCSI_WRITE_WR_FLOWID)
2441 #define G_FW_SCSI_WRITE_WR_FLOWID(x) \
2442 (((x) >> S_FW_SCSI_WRITE_WR_FLOWID) & M_FW_SCSI_WRITE_WR_FLOWID)
2444 #define S_FW_SCSI_WRITE_WR_LEN16 0
2445 #define M_FW_SCSI_WRITE_WR_LEN16 0xff
2446 #define V_FW_SCSI_WRITE_WR_LEN16(x) ((x) << S_FW_SCSI_WRITE_WR_LEN16)
2447 #define G_FW_SCSI_WRITE_WR_LEN16(x) \
2448 (((x) >> S_FW_SCSI_WRITE_WR_LEN16) & M_FW_SCSI_WRITE_WR_LEN16)
2450 #define S_FW_SCSI_WRITE_WR_CP_EN 6
2451 #define M_FW_SCSI_WRITE_WR_CP_EN 0x3
2452 #define V_FW_SCSI_WRITE_WR_CP_EN(x) ((x) << S_FW_SCSI_WRITE_WR_CP_EN)
2453 #define G_FW_SCSI_WRITE_WR_CP_EN(x) \
2454 (((x) >> S_FW_SCSI_WRITE_WR_CP_EN) & M_FW_SCSI_WRITE_WR_CP_EN)
2456 #define S_FW_SCSI_WRITE_WR_CLASS 4
2457 #define M_FW_SCSI_WRITE_WR_CLASS 0x3
2458 #define V_FW_SCSI_WRITE_WR_CLASS(x) ((x) << S_FW_SCSI_WRITE_WR_CLASS)
2459 #define G_FW_SCSI_WRITE_WR_CLASS(x) \
2460 (((x) >> S_FW_SCSI_WRITE_WR_CLASS) & M_FW_SCSI_WRITE_WR_CLASS)
2462 struct fw_scsi_read_wr {
2464 __be32 flowid_len16;
2469 union fw_scsi_read_priv {
2470 struct fcoe_read_priv {
2475 struct iscsi_read_priv {
2480 __be32 ini_xfer_cnt;
2486 #define S_FW_SCSI_READ_WR_OPCODE 24
2487 #define M_FW_SCSI_READ_WR_OPCODE 0xff
2488 #define V_FW_SCSI_READ_WR_OPCODE(x) ((x) << S_FW_SCSI_READ_WR_OPCODE)
2489 #define G_FW_SCSI_READ_WR_OPCODE(x) \
2490 (((x) >> S_FW_SCSI_READ_WR_OPCODE) & M_FW_SCSI_READ_WR_OPCODE)
2492 #define S_FW_SCSI_READ_WR_IMMDLEN 0
2493 #define M_FW_SCSI_READ_WR_IMMDLEN 0xff
2494 #define V_FW_SCSI_READ_WR_IMMDLEN(x) ((x) << S_FW_SCSI_READ_WR_IMMDLEN)
2495 #define G_FW_SCSI_READ_WR_IMMDLEN(x) \
2496 (((x) >> S_FW_SCSI_READ_WR_IMMDLEN) & M_FW_SCSI_READ_WR_IMMDLEN)
2498 #define S_FW_SCSI_READ_WR_FLOWID 8
2499 #define M_FW_SCSI_READ_WR_FLOWID 0xfffff
2500 #define V_FW_SCSI_READ_WR_FLOWID(x) ((x) << S_FW_SCSI_READ_WR_FLOWID)
2501 #define G_FW_SCSI_READ_WR_FLOWID(x) \
2502 (((x) >> S_FW_SCSI_READ_WR_FLOWID) & M_FW_SCSI_READ_WR_FLOWID)
2504 #define S_FW_SCSI_READ_WR_LEN16 0
2505 #define M_FW_SCSI_READ_WR_LEN16 0xff
2506 #define V_FW_SCSI_READ_WR_LEN16(x) ((x) << S_FW_SCSI_READ_WR_LEN16)
2507 #define G_FW_SCSI_READ_WR_LEN16(x) \
2508 (((x) >> S_FW_SCSI_READ_WR_LEN16) & M_FW_SCSI_READ_WR_LEN16)
2510 #define S_FW_SCSI_READ_WR_CP_EN 6
2511 #define M_FW_SCSI_READ_WR_CP_EN 0x3
2512 #define V_FW_SCSI_READ_WR_CP_EN(x) ((x) << S_FW_SCSI_READ_WR_CP_EN)
2513 #define G_FW_SCSI_READ_WR_CP_EN(x) \
2514 (((x) >> S_FW_SCSI_READ_WR_CP_EN) & M_FW_SCSI_READ_WR_CP_EN)
2516 #define S_FW_SCSI_READ_WR_CLASS 4
2517 #define M_FW_SCSI_READ_WR_CLASS 0x3
2518 #define V_FW_SCSI_READ_WR_CLASS(x) ((x) << S_FW_SCSI_READ_WR_CLASS)
2519 #define G_FW_SCSI_READ_WR_CLASS(x) \
2520 (((x) >> S_FW_SCSI_READ_WR_CLASS) & M_FW_SCSI_READ_WR_CLASS)
2522 struct fw_scsi_cmd_wr {
2524 __be32 flowid_len16;
2529 union fw_scsi_cmd_priv {
2530 struct fcoe_cmd_priv {
2535 struct iscsi_cmd_priv {
2545 #define S_FW_SCSI_CMD_WR_OPCODE 24
2546 #define M_FW_SCSI_CMD_WR_OPCODE 0xff
2547 #define V_FW_SCSI_CMD_WR_OPCODE(x) ((x) << S_FW_SCSI_CMD_WR_OPCODE)
2548 #define G_FW_SCSI_CMD_WR_OPCODE(x) \
2549 (((x) >> S_FW_SCSI_CMD_WR_OPCODE) & M_FW_SCSI_CMD_WR_OPCODE)
2551 #define S_FW_SCSI_CMD_WR_IMMDLEN 0
2552 #define M_FW_SCSI_CMD_WR_IMMDLEN 0xff
2553 #define V_FW_SCSI_CMD_WR_IMMDLEN(x) ((x) << S_FW_SCSI_CMD_WR_IMMDLEN)
2554 #define G_FW_SCSI_CMD_WR_IMMDLEN(x) \
2555 (((x) >> S_FW_SCSI_CMD_WR_IMMDLEN) & M_FW_SCSI_CMD_WR_IMMDLEN)
2557 #define S_FW_SCSI_CMD_WR_FLOWID 8
2558 #define M_FW_SCSI_CMD_WR_FLOWID 0xfffff
2559 #define V_FW_SCSI_CMD_WR_FLOWID(x) ((x) << S_FW_SCSI_CMD_WR_FLOWID)
2560 #define G_FW_SCSI_CMD_WR_FLOWID(x) \
2561 (((x) >> S_FW_SCSI_CMD_WR_FLOWID) & M_FW_SCSI_CMD_WR_FLOWID)
2563 #define S_FW_SCSI_CMD_WR_LEN16 0
2564 #define M_FW_SCSI_CMD_WR_LEN16 0xff
2565 #define V_FW_SCSI_CMD_WR_LEN16(x) ((x) << S_FW_SCSI_CMD_WR_LEN16)
2566 #define G_FW_SCSI_CMD_WR_LEN16(x) \
2567 (((x) >> S_FW_SCSI_CMD_WR_LEN16) & M_FW_SCSI_CMD_WR_LEN16)
2569 #define S_FW_SCSI_CMD_WR_CP_EN 6
2570 #define M_FW_SCSI_CMD_WR_CP_EN 0x3
2571 #define V_FW_SCSI_CMD_WR_CP_EN(x) ((x) << S_FW_SCSI_CMD_WR_CP_EN)
2572 #define G_FW_SCSI_CMD_WR_CP_EN(x) \
2573 (((x) >> S_FW_SCSI_CMD_WR_CP_EN) & M_FW_SCSI_CMD_WR_CP_EN)
2575 #define S_FW_SCSI_CMD_WR_CLASS 4
2576 #define M_FW_SCSI_CMD_WR_CLASS 0x3
2577 #define V_FW_SCSI_CMD_WR_CLASS(x) ((x) << S_FW_SCSI_CMD_WR_CLASS)
2578 #define G_FW_SCSI_CMD_WR_CLASS(x) \
2579 (((x) >> S_FW_SCSI_CMD_WR_CLASS) & M_FW_SCSI_CMD_WR_CLASS)
2581 struct fw_scsi_abrt_cls_wr {
2583 __be32 flowid_len16;
2587 __u8 sub_opcode_to_chk_all_io;
2592 #define S_FW_SCSI_ABRT_CLS_WR_OPCODE 24
2593 #define M_FW_SCSI_ABRT_CLS_WR_OPCODE 0xff
2594 #define V_FW_SCSI_ABRT_CLS_WR_OPCODE(x) ((x) << S_FW_SCSI_ABRT_CLS_WR_OPCODE)
2595 #define G_FW_SCSI_ABRT_CLS_WR_OPCODE(x) \
2596 (((x) >> S_FW_SCSI_ABRT_CLS_WR_OPCODE) & M_FW_SCSI_ABRT_CLS_WR_OPCODE)
2598 #define S_FW_SCSI_ABRT_CLS_WR_IMMDLEN 0
2599 #define M_FW_SCSI_ABRT_CLS_WR_IMMDLEN 0xff
2600 #define V_FW_SCSI_ABRT_CLS_WR_IMMDLEN(x) \
2601 ((x) << S_FW_SCSI_ABRT_CLS_WR_IMMDLEN)
2602 #define G_FW_SCSI_ABRT_CLS_WR_IMMDLEN(x) \
2603 (((x) >> S_FW_SCSI_ABRT_CLS_WR_IMMDLEN) & M_FW_SCSI_ABRT_CLS_WR_IMMDLEN)
2605 #define S_FW_SCSI_ABRT_CLS_WR_FLOWID 8
2606 #define M_FW_SCSI_ABRT_CLS_WR_FLOWID 0xfffff
2607 #define V_FW_SCSI_ABRT_CLS_WR_FLOWID(x) ((x) << S_FW_SCSI_ABRT_CLS_WR_FLOWID)
2608 #define G_FW_SCSI_ABRT_CLS_WR_FLOWID(x) \
2609 (((x) >> S_FW_SCSI_ABRT_CLS_WR_FLOWID) & M_FW_SCSI_ABRT_CLS_WR_FLOWID)
2611 #define S_FW_SCSI_ABRT_CLS_WR_LEN16 0
2612 #define M_FW_SCSI_ABRT_CLS_WR_LEN16 0xff
2613 #define V_FW_SCSI_ABRT_CLS_WR_LEN16(x) ((x) << S_FW_SCSI_ABRT_CLS_WR_LEN16)
2614 #define G_FW_SCSI_ABRT_CLS_WR_LEN16(x) \
2615 (((x) >> S_FW_SCSI_ABRT_CLS_WR_LEN16) & M_FW_SCSI_ABRT_CLS_WR_LEN16)
2617 #define S_FW_SCSI_ABRT_CLS_WR_SUB_OPCODE 2
2618 #define M_FW_SCSI_ABRT_CLS_WR_SUB_OPCODE 0x3f
2619 #define V_FW_SCSI_ABRT_CLS_WR_SUB_OPCODE(x) \
2620 ((x) << S_FW_SCSI_ABRT_CLS_WR_SUB_OPCODE)
2621 #define G_FW_SCSI_ABRT_CLS_WR_SUB_OPCODE(x) \
2622 (((x) >> S_FW_SCSI_ABRT_CLS_WR_SUB_OPCODE) & \
2623 M_FW_SCSI_ABRT_CLS_WR_SUB_OPCODE)
2625 #define S_FW_SCSI_ABRT_CLS_WR_UNSOL 1
2626 #define M_FW_SCSI_ABRT_CLS_WR_UNSOL 0x1
2627 #define V_FW_SCSI_ABRT_CLS_WR_UNSOL(x) ((x) << S_FW_SCSI_ABRT_CLS_WR_UNSOL)
2628 #define G_FW_SCSI_ABRT_CLS_WR_UNSOL(x) \
2629 (((x) >> S_FW_SCSI_ABRT_CLS_WR_UNSOL) & M_FW_SCSI_ABRT_CLS_WR_UNSOL)
2630 #define F_FW_SCSI_ABRT_CLS_WR_UNSOL V_FW_SCSI_ABRT_CLS_WR_UNSOL(1U)
2632 #define S_FW_SCSI_ABRT_CLS_WR_CHK_ALL_IO 0
2633 #define M_FW_SCSI_ABRT_CLS_WR_CHK_ALL_IO 0x1
2634 #define V_FW_SCSI_ABRT_CLS_WR_CHK_ALL_IO(x) \
2635 ((x) << S_FW_SCSI_ABRT_CLS_WR_CHK_ALL_IO)
2636 #define G_FW_SCSI_ABRT_CLS_WR_CHK_ALL_IO(x) \
2637 (((x) >> S_FW_SCSI_ABRT_CLS_WR_CHK_ALL_IO) & \
2638 M_FW_SCSI_ABRT_CLS_WR_CHK_ALL_IO)
2639 #define F_FW_SCSI_ABRT_CLS_WR_CHK_ALL_IO \
2640 V_FW_SCSI_ABRT_CLS_WR_CHK_ALL_IO(1U)
2642 struct fw_scsi_tgt_acc_wr {
2644 __be32 flowid_len16;
2649 union fw_scsi_tgt_acc_priv {
2650 struct fcoe_tgt_acc_priv {
2655 struct iscsi_tgt_acc_priv {
2663 __be32 tot_xfer_len;
2666 #define S_FW_SCSI_TGT_ACC_WR_OPCODE 24
2667 #define M_FW_SCSI_TGT_ACC_WR_OPCODE 0xff
2668 #define V_FW_SCSI_TGT_ACC_WR_OPCODE(x) ((x) << S_FW_SCSI_TGT_ACC_WR_OPCODE)
2669 #define G_FW_SCSI_TGT_ACC_WR_OPCODE(x) \
2670 (((x) >> S_FW_SCSI_TGT_ACC_WR_OPCODE) & M_FW_SCSI_TGT_ACC_WR_OPCODE)
2672 #define S_FW_SCSI_TGT_ACC_WR_IMMDLEN 0
2673 #define M_FW_SCSI_TGT_ACC_WR_IMMDLEN 0xff
2674 #define V_FW_SCSI_TGT_ACC_WR_IMMDLEN(x) ((x) << S_FW_SCSI_TGT_ACC_WR_IMMDLEN)
2675 #define G_FW_SCSI_TGT_ACC_WR_IMMDLEN(x) \
2676 (((x) >> S_FW_SCSI_TGT_ACC_WR_IMMDLEN) & M_FW_SCSI_TGT_ACC_WR_IMMDLEN)
2678 #define S_FW_SCSI_TGT_ACC_WR_FLOWID 8
2679 #define M_FW_SCSI_TGT_ACC_WR_FLOWID 0xfffff
2680 #define V_FW_SCSI_TGT_ACC_WR_FLOWID(x) ((x) << S_FW_SCSI_TGT_ACC_WR_FLOWID)
2681 #define G_FW_SCSI_TGT_ACC_WR_FLOWID(x) \
2682 (((x) >> S_FW_SCSI_TGT_ACC_WR_FLOWID) & M_FW_SCSI_TGT_ACC_WR_FLOWID)
2684 #define S_FW_SCSI_TGT_ACC_WR_LEN16 0
2685 #define M_FW_SCSI_TGT_ACC_WR_LEN16 0xff
2686 #define V_FW_SCSI_TGT_ACC_WR_LEN16(x) ((x) << S_FW_SCSI_TGT_ACC_WR_LEN16)
2687 #define G_FW_SCSI_TGT_ACC_WR_LEN16(x) \
2688 (((x) >> S_FW_SCSI_TGT_ACC_WR_LEN16) & M_FW_SCSI_TGT_ACC_WR_LEN16)
2690 #define S_FW_SCSI_TGT_ACC_WR_CP_EN 6
2691 #define M_FW_SCSI_TGT_ACC_WR_CP_EN 0x3
2692 #define V_FW_SCSI_TGT_ACC_WR_CP_EN(x) ((x) << S_FW_SCSI_TGT_ACC_WR_CP_EN)
2693 #define G_FW_SCSI_TGT_ACC_WR_CP_EN(x) \
2694 (((x) >> S_FW_SCSI_TGT_ACC_WR_CP_EN) & M_FW_SCSI_TGT_ACC_WR_CP_EN)
2696 #define S_FW_SCSI_TGT_ACC_WR_CLASS 4
2697 #define M_FW_SCSI_TGT_ACC_WR_CLASS 0x3
2698 #define V_FW_SCSI_TGT_ACC_WR_CLASS(x) ((x) << S_FW_SCSI_TGT_ACC_WR_CLASS)
2699 #define G_FW_SCSI_TGT_ACC_WR_CLASS(x) \
2700 (((x) >> S_FW_SCSI_TGT_ACC_WR_CLASS) & M_FW_SCSI_TGT_ACC_WR_CLASS)
2702 struct fw_scsi_tgt_xmit_wr {
2704 __be32 flowid_len16;
2709 union fw_scsi_tgt_xmit_priv {
2710 struct fcoe_tgt_xmit_priv {
2715 struct iscsi_tgt_xmit_priv {
2723 __be32 tot_xfer_len;
2726 #define S_FW_SCSI_TGT_XMIT_WR_OPCODE 24
2727 #define M_FW_SCSI_TGT_XMIT_WR_OPCODE 0xff
2728 #define V_FW_SCSI_TGT_XMIT_WR_OPCODE(x) ((x) << S_FW_SCSI_TGT_XMIT_WR_OPCODE)
2729 #define G_FW_SCSI_TGT_XMIT_WR_OPCODE(x) \
2730 (((x) >> S_FW_SCSI_TGT_XMIT_WR_OPCODE) & M_FW_SCSI_TGT_XMIT_WR_OPCODE)
2732 #define S_FW_SCSI_TGT_XMIT_WR_IMMDLEN 0
2733 #define M_FW_SCSI_TGT_XMIT_WR_IMMDLEN 0xff
2734 #define V_FW_SCSI_TGT_XMIT_WR_IMMDLEN(x) \
2735 ((x) << S_FW_SCSI_TGT_XMIT_WR_IMMDLEN)
2736 #define G_FW_SCSI_TGT_XMIT_WR_IMMDLEN(x) \
2737 (((x) >> S_FW_SCSI_TGT_XMIT_WR_IMMDLEN) & M_FW_SCSI_TGT_XMIT_WR_IMMDLEN)
2739 #define S_FW_SCSI_TGT_XMIT_WR_FLOWID 8
2740 #define M_FW_SCSI_TGT_XMIT_WR_FLOWID 0xfffff
2741 #define V_FW_SCSI_TGT_XMIT_WR_FLOWID(x) ((x) << S_FW_SCSI_TGT_XMIT_WR_FLOWID)
2742 #define G_FW_SCSI_TGT_XMIT_WR_FLOWID(x) \
2743 (((x) >> S_FW_SCSI_TGT_XMIT_WR_FLOWID) & M_FW_SCSI_TGT_XMIT_WR_FLOWID)
2745 #define S_FW_SCSI_TGT_XMIT_WR_LEN16 0
2746 #define M_FW_SCSI_TGT_XMIT_WR_LEN16 0xff
2747 #define V_FW_SCSI_TGT_XMIT_WR_LEN16(x) ((x) << S_FW_SCSI_TGT_XMIT_WR_LEN16)
2748 #define G_FW_SCSI_TGT_XMIT_WR_LEN16(x) \
2749 (((x) >> S_FW_SCSI_TGT_XMIT_WR_LEN16) & M_FW_SCSI_TGT_XMIT_WR_LEN16)
2751 #define S_FW_SCSI_TGT_XMIT_WR_CP_EN 6
2752 #define M_FW_SCSI_TGT_XMIT_WR_CP_EN 0x3
2753 #define V_FW_SCSI_TGT_XMIT_WR_CP_EN(x) ((x) << S_FW_SCSI_TGT_XMIT_WR_CP_EN)
2754 #define G_FW_SCSI_TGT_XMIT_WR_CP_EN(x) \
2755 (((x) >> S_FW_SCSI_TGT_XMIT_WR_CP_EN) & M_FW_SCSI_TGT_XMIT_WR_CP_EN)
2757 #define S_FW_SCSI_TGT_XMIT_WR_CLASS 4
2758 #define M_FW_SCSI_TGT_XMIT_WR_CLASS 0x3
2759 #define V_FW_SCSI_TGT_XMIT_WR_CLASS(x) ((x) << S_FW_SCSI_TGT_XMIT_WR_CLASS)
2760 #define G_FW_SCSI_TGT_XMIT_WR_CLASS(x) \
2761 (((x) >> S_FW_SCSI_TGT_XMIT_WR_CLASS) & M_FW_SCSI_TGT_XMIT_WR_CLASS)
2763 struct fw_scsi_tgt_rsp_wr {
2765 __be32 flowid_len16;
2769 union fw_scsi_tgt_rsp_priv {
2770 struct fcoe_tgt_rsp_priv {
2775 struct iscsi_tgt_rsp_priv {
2782 #define S_FW_SCSI_TGT_RSP_WR_OPCODE 24
2783 #define M_FW_SCSI_TGT_RSP_WR_OPCODE 0xff
2784 #define V_FW_SCSI_TGT_RSP_WR_OPCODE(x) ((x) << S_FW_SCSI_TGT_RSP_WR_OPCODE)
2785 #define G_FW_SCSI_TGT_RSP_WR_OPCODE(x) \
2786 (((x) >> S_FW_SCSI_TGT_RSP_WR_OPCODE) & M_FW_SCSI_TGT_RSP_WR_OPCODE)
2788 #define S_FW_SCSI_TGT_RSP_WR_IMMDLEN 0
2789 #define M_FW_SCSI_TGT_RSP_WR_IMMDLEN 0xff
2790 #define V_FW_SCSI_TGT_RSP_WR_IMMDLEN(x) ((x) << S_FW_SCSI_TGT_RSP_WR_IMMDLEN)
2791 #define G_FW_SCSI_TGT_RSP_WR_IMMDLEN(x) \
2792 (((x) >> S_FW_SCSI_TGT_RSP_WR_IMMDLEN) & M_FW_SCSI_TGT_RSP_WR_IMMDLEN)
2794 #define S_FW_SCSI_TGT_RSP_WR_FLOWID 8
2795 #define M_FW_SCSI_TGT_RSP_WR_FLOWID 0xfffff
2796 #define V_FW_SCSI_TGT_RSP_WR_FLOWID(x) ((x) << S_FW_SCSI_TGT_RSP_WR_FLOWID)
2797 #define G_FW_SCSI_TGT_RSP_WR_FLOWID(x) \
2798 (((x) >> S_FW_SCSI_TGT_RSP_WR_FLOWID) & M_FW_SCSI_TGT_RSP_WR_FLOWID)
2800 #define S_FW_SCSI_TGT_RSP_WR_LEN16 0
2801 #define M_FW_SCSI_TGT_RSP_WR_LEN16 0xff
2802 #define V_FW_SCSI_TGT_RSP_WR_LEN16(x) ((x) << S_FW_SCSI_TGT_RSP_WR_LEN16)
2803 #define G_FW_SCSI_TGT_RSP_WR_LEN16(x) \
2804 (((x) >> S_FW_SCSI_TGT_RSP_WR_LEN16) & M_FW_SCSI_TGT_RSP_WR_LEN16)
2806 #define S_FW_SCSI_TGT_RSP_WR_CP_EN 6
2807 #define M_FW_SCSI_TGT_RSP_WR_CP_EN 0x3
2808 #define V_FW_SCSI_TGT_RSP_WR_CP_EN(x) ((x) << S_FW_SCSI_TGT_RSP_WR_CP_EN)
2809 #define G_FW_SCSI_TGT_RSP_WR_CP_EN(x) \
2810 (((x) >> S_FW_SCSI_TGT_RSP_WR_CP_EN) & M_FW_SCSI_TGT_RSP_WR_CP_EN)
2812 #define S_FW_SCSI_TGT_RSP_WR_CLASS 4
2813 #define M_FW_SCSI_TGT_RSP_WR_CLASS 0x3
2814 #define V_FW_SCSI_TGT_RSP_WR_CLASS(x) ((x) << S_FW_SCSI_TGT_RSP_WR_CLASS)
2815 #define G_FW_SCSI_TGT_RSP_WR_CLASS(x) \
2816 (((x) >> S_FW_SCSI_TGT_RSP_WR_CLASS) & M_FW_SCSI_TGT_RSP_WR_CLASS)
2818 struct fw_pofcoe_tcb_wr {
2820 __be32 equiq_to_len16;
2834 #define S_FW_POFCOE_TCB_WR_TID 12
2835 #define M_FW_POFCOE_TCB_WR_TID 0xfffff
2836 #define V_FW_POFCOE_TCB_WR_TID(x) ((x) << S_FW_POFCOE_TCB_WR_TID)
2837 #define G_FW_POFCOE_TCB_WR_TID(x) \
2838 (((x) >> S_FW_POFCOE_TCB_WR_TID) & M_FW_POFCOE_TCB_WR_TID)
2840 #define S_FW_POFCOE_TCB_WR_ALLOC 4
2841 #define M_FW_POFCOE_TCB_WR_ALLOC 0x1
2842 #define V_FW_POFCOE_TCB_WR_ALLOC(x) ((x) << S_FW_POFCOE_TCB_WR_ALLOC)
2843 #define G_FW_POFCOE_TCB_WR_ALLOC(x) \
2844 (((x) >> S_FW_POFCOE_TCB_WR_ALLOC) & M_FW_POFCOE_TCB_WR_ALLOC)
2845 #define F_FW_POFCOE_TCB_WR_ALLOC V_FW_POFCOE_TCB_WR_ALLOC(1U)
2847 #define S_FW_POFCOE_TCB_WR_FREE 3
2848 #define M_FW_POFCOE_TCB_WR_FREE 0x1
2849 #define V_FW_POFCOE_TCB_WR_FREE(x) ((x) << S_FW_POFCOE_TCB_WR_FREE)
2850 #define G_FW_POFCOE_TCB_WR_FREE(x) \
2851 (((x) >> S_FW_POFCOE_TCB_WR_FREE) & M_FW_POFCOE_TCB_WR_FREE)
2852 #define F_FW_POFCOE_TCB_WR_FREE V_FW_POFCOE_TCB_WR_FREE(1U)
2854 #define S_FW_POFCOE_TCB_WR_PORT 0
2855 #define M_FW_POFCOE_TCB_WR_PORT 0x7
2856 #define V_FW_POFCOE_TCB_WR_PORT(x) ((x) << S_FW_POFCOE_TCB_WR_PORT)
2857 #define G_FW_POFCOE_TCB_WR_PORT(x) \
2858 (((x) >> S_FW_POFCOE_TCB_WR_PORT) & M_FW_POFCOE_TCB_WR_PORT)
2860 struct fw_pofcoe_ulptx_wr {
2862 __be32 equiq_to_len16;
2867 /******************************************************************************
2869 *********************/
2872 * The maximum length of time, in miliseconds, that we expect any firmware
2873 * command to take to execute and return a reply to the host. The RESET
2874 * and INITIALIZE commands can take a fair amount of time to execute but
2875 * most execute in far less time than this maximum. This constant is used
2876 * by host software to determine how long to wait for a firmware command
2877 * reply before declaring the firmware as dead/unreachable ...
2879 #define FW_CMD_MAX_TIMEOUT 10000
2882 * If a host driver does a HELLO and discovers that there's already a MASTER
2883 * selected, we may have to wait for that MASTER to finish issuing RESET,
2884 * configuration and INITIALIZE commands. Also, there's a possibility that
2885 * our own HELLO may get lost if it happens right as the MASTER is issuign a
2886 * RESET command, so we need to be willing to make a few retries of our HELLO.
2888 #define FW_CMD_HELLO_TIMEOUT (3 * FW_CMD_MAX_TIMEOUT)
2889 #define FW_CMD_HELLO_RETRIES 3
2891 enum fw_cmd_opcodes {
2893 FW_RESET_CMD = 0x03,
2894 FW_HELLO_CMD = 0x04,
2896 FW_INITIALIZE_CMD = 0x06,
2897 FW_CAPS_CONFIG_CMD = 0x07,
2898 FW_PARAMS_CMD = 0x08,
2901 FW_EQ_MNGT_CMD = 0x11,
2902 FW_EQ_ETH_CMD = 0x12,
2903 FW_EQ_CTRL_CMD = 0x13,
2904 FW_EQ_OFLD_CMD = 0x21,
2906 FW_VI_MAC_CMD = 0x15,
2907 FW_VI_RXMODE_CMD = 0x16,
2908 FW_VI_ENABLE_CMD = 0x17,
2909 FW_VI_STATS_CMD = 0x1a,
2910 FW_ACL_MAC_CMD = 0x18,
2911 FW_ACL_VLAN_CMD = 0x19,
2913 FW_PORT_STATS_CMD = 0x1c,
2914 FW_PORT_LB_STATS_CMD = 0x1d,
2915 FW_PORT_TRACE_CMD = 0x1e,
2916 FW_PORT_TRACE_MMAP_CMD = 0x1f,
2917 FW_RSS_IND_TBL_CMD = 0x20,
2918 FW_RSS_GLB_CONFIG_CMD = 0x22,
2919 FW_RSS_VI_CONFIG_CMD = 0x23,
2920 FW_SCHED_CMD = 0x24,
2921 FW_DEVLOG_CMD = 0x25,
2922 FW_WATCHDOG_CMD = 0x27,
2924 FW_CHNET_IFACE_CMD = 0x26,
2925 FW_FCOE_RES_INFO_CMD = 0x31,
2926 FW_FCOE_LINK_CMD = 0x32,
2927 FW_FCOE_VNP_CMD = 0x33,
2928 FW_FCOE_SPARAMS_CMD = 0x35,
2929 FW_FCOE_STATS_CMD = 0x37,
2930 FW_FCOE_FCF_CMD = 0x38,
2931 FW_LASTC2E_CMD = 0x40,
2932 FW_ERROR_CMD = 0x80,
2933 FW_DEBUG_CMD = 0x81,
2937 FW_CMD_CAP_PF = 0x01,
2938 FW_CMD_CAP_DMAQ = 0x02,
2939 FW_CMD_CAP_PORT = 0x04,
2940 FW_CMD_CAP_PORTPROMISC = 0x08,
2941 FW_CMD_CAP_PORTSTATS = 0x10,
2942 FW_CMD_CAP_VF = 0x80,
2946 * Generic command header flit0
2953 #define S_FW_CMD_OP 24
2954 #define M_FW_CMD_OP 0xff
2955 #define V_FW_CMD_OP(x) ((x) << S_FW_CMD_OP)
2956 #define G_FW_CMD_OP(x) (((x) >> S_FW_CMD_OP) & M_FW_CMD_OP)
2958 #define S_FW_CMD_REQUEST 23
2959 #define M_FW_CMD_REQUEST 0x1
2960 #define V_FW_CMD_REQUEST(x) ((x) << S_FW_CMD_REQUEST)
2961 #define G_FW_CMD_REQUEST(x) (((x) >> S_FW_CMD_REQUEST) & M_FW_CMD_REQUEST)
2962 #define F_FW_CMD_REQUEST V_FW_CMD_REQUEST(1U)
2964 #define S_FW_CMD_READ 22
2965 #define M_FW_CMD_READ 0x1
2966 #define V_FW_CMD_READ(x) ((x) << S_FW_CMD_READ)
2967 #define G_FW_CMD_READ(x) (((x) >> S_FW_CMD_READ) & M_FW_CMD_READ)
2968 #define F_FW_CMD_READ V_FW_CMD_READ(1U)
2970 #define S_FW_CMD_WRITE 21
2971 #define M_FW_CMD_WRITE 0x1
2972 #define V_FW_CMD_WRITE(x) ((x) << S_FW_CMD_WRITE)
2973 #define G_FW_CMD_WRITE(x) (((x) >> S_FW_CMD_WRITE) & M_FW_CMD_WRITE)
2974 #define F_FW_CMD_WRITE V_FW_CMD_WRITE(1U)
2976 #define S_FW_CMD_EXEC 20
2977 #define M_FW_CMD_EXEC 0x1
2978 #define V_FW_CMD_EXEC(x) ((x) << S_FW_CMD_EXEC)
2979 #define G_FW_CMD_EXEC(x) (((x) >> S_FW_CMD_EXEC) & M_FW_CMD_EXEC)
2980 #define F_FW_CMD_EXEC V_FW_CMD_EXEC(1U)
2982 #define S_FW_CMD_RAMASK 20
2983 #define M_FW_CMD_RAMASK 0xf
2984 #define V_FW_CMD_RAMASK(x) ((x) << S_FW_CMD_RAMASK)
2985 #define G_FW_CMD_RAMASK(x) (((x) >> S_FW_CMD_RAMASK) & M_FW_CMD_RAMASK)
2987 #define S_FW_CMD_RETVAL 8
2988 #define M_FW_CMD_RETVAL 0xff
2989 #define V_FW_CMD_RETVAL(x) ((x) << S_FW_CMD_RETVAL)
2990 #define G_FW_CMD_RETVAL(x) (((x) >> S_FW_CMD_RETVAL) & M_FW_CMD_RETVAL)
2992 #define S_FW_CMD_LEN16 0
2993 #define M_FW_CMD_LEN16 0xff
2994 #define V_FW_CMD_LEN16(x) ((x) << S_FW_CMD_LEN16)
2995 #define G_FW_CMD_LEN16(x) (((x) >> S_FW_CMD_LEN16) & M_FW_CMD_LEN16)
2997 #define FW_LEN16(fw_struct) V_FW_CMD_LEN16(sizeof(fw_struct) / 16)
3002 enum fw_ldst_addrspc {
3003 FW_LDST_ADDRSPC_FIRMWARE = 0x0001,
3004 FW_LDST_ADDRSPC_SGE_EGRC = 0x0008,
3005 FW_LDST_ADDRSPC_SGE_INGC = 0x0009,
3006 FW_LDST_ADDRSPC_SGE_FLMC = 0x000a,
3007 FW_LDST_ADDRSPC_SGE_CONMC = 0x000b,
3008 FW_LDST_ADDRSPC_TP_PIO = 0x0010,
3009 FW_LDST_ADDRSPC_TP_TM_PIO = 0x0011,
3010 FW_LDST_ADDRSPC_TP_MIB = 0x0012,
3011 FW_LDST_ADDRSPC_MDIO = 0x0018,
3012 FW_LDST_ADDRSPC_MPS = 0x0020,
3013 FW_LDST_ADDRSPC_FUNC = 0x0028,
3014 FW_LDST_ADDRSPC_FUNC_PCIE = 0x0029,
3015 FW_LDST_ADDRSPC_FUNC_I2C = 0x002A, /* legacy */
3016 FW_LDST_ADDRSPC_LE = 0x0030,
3017 FW_LDST_ADDRSPC_I2C = 0x0038,
3018 FW_LDST_ADDRSPC_PCIE_CFGS = 0x0040,
3019 FW_LDST_ADDRSPC_PCIE_DBG = 0x0041,
3020 FW_LDST_ADDRSPC_PCIE_PHY = 0x0042,
3024 * MDIO VSC8634 register access control field
3026 enum fw_ldst_mdio_vsc8634_aid {
3027 FW_LDST_MDIO_VS_STANDARD,
3028 FW_LDST_MDIO_VS_EXTENDED,
3029 FW_LDST_MDIO_VS_GPIO
3032 enum fw_ldst_mps_fid {
3037 enum fw_ldst_func_access_ctl {
3038 FW_LDST_FUNC_ACC_CTL_VIID,
3039 FW_LDST_FUNC_ACC_CTL_FID
3042 enum fw_ldst_func_mod_index {
3046 struct fw_ldst_cmd {
3047 __be32 op_to_addrspace;
3048 __be32 cycles_to_len16;
3050 struct fw_ldst_addrval {
3054 struct fw_ldst_idctxt {
3056 __be32 msg_ctxtflush;
3066 struct fw_ldst_mdio {
3072 struct fw_ldst_mps {
3082 struct fw_ldst_func {
3090 struct fw_ldst_pcie {
3095 __u8 select_naccess;
3100 struct fw_ldst_i2c_deprecated {
3107 struct fw_ldst_i2c {
3124 #define S_FW_LDST_CMD_ADDRSPACE 0
3125 #define M_FW_LDST_CMD_ADDRSPACE 0xff
3126 #define V_FW_LDST_CMD_ADDRSPACE(x) ((x) << S_FW_LDST_CMD_ADDRSPACE)
3127 #define G_FW_LDST_CMD_ADDRSPACE(x) \
3128 (((x) >> S_FW_LDST_CMD_ADDRSPACE) & M_FW_LDST_CMD_ADDRSPACE)
3130 #define S_FW_LDST_CMD_CYCLES 16
3131 #define M_FW_LDST_CMD_CYCLES 0xffff
3132 #define V_FW_LDST_CMD_CYCLES(x) ((x) << S_FW_LDST_CMD_CYCLES)
3133 #define G_FW_LDST_CMD_CYCLES(x) \
3134 (((x) >> S_FW_LDST_CMD_CYCLES) & M_FW_LDST_CMD_CYCLES)
3136 #define S_FW_LDST_CMD_MSG 31
3137 #define M_FW_LDST_CMD_MSG 0x1
3138 #define V_FW_LDST_CMD_MSG(x) ((x) << S_FW_LDST_CMD_MSG)
3139 #define G_FW_LDST_CMD_MSG(x) \
3140 (((x) >> S_FW_LDST_CMD_MSG) & M_FW_LDST_CMD_MSG)
3141 #define F_FW_LDST_CMD_MSG V_FW_LDST_CMD_MSG(1U)
3143 #define S_FW_LDST_CMD_CTXTFLUSH 30
3144 #define M_FW_LDST_CMD_CTXTFLUSH 0x1
3145 #define V_FW_LDST_CMD_CTXTFLUSH(x) ((x) << S_FW_LDST_CMD_CTXTFLUSH)
3146 #define G_FW_LDST_CMD_CTXTFLUSH(x) \
3147 (((x) >> S_FW_LDST_CMD_CTXTFLUSH) & M_FW_LDST_CMD_CTXTFLUSH)
3148 #define F_FW_LDST_CMD_CTXTFLUSH V_FW_LDST_CMD_CTXTFLUSH(1U)
3150 #define S_FW_LDST_CMD_PADDR 8
3151 #define M_FW_LDST_CMD_PADDR 0x1f
3152 #define V_FW_LDST_CMD_PADDR(x) ((x) << S_FW_LDST_CMD_PADDR)
3153 #define G_FW_LDST_CMD_PADDR(x) \
3154 (((x) >> S_FW_LDST_CMD_PADDR) & M_FW_LDST_CMD_PADDR)
3156 #define S_FW_LDST_CMD_MMD 0
3157 #define M_FW_LDST_CMD_MMD 0x1f
3158 #define V_FW_LDST_CMD_MMD(x) ((x) << S_FW_LDST_CMD_MMD)
3159 #define G_FW_LDST_CMD_MMD(x) \
3160 (((x) >> S_FW_LDST_CMD_MMD) & M_FW_LDST_CMD_MMD)
3162 #define S_FW_LDST_CMD_FID 15
3163 #define M_FW_LDST_CMD_FID 0x1
3164 #define V_FW_LDST_CMD_FID(x) ((x) << S_FW_LDST_CMD_FID)
3165 #define G_FW_LDST_CMD_FID(x) \
3166 (((x) >> S_FW_LDST_CMD_FID) & M_FW_LDST_CMD_FID)
3167 #define F_FW_LDST_CMD_FID V_FW_LDST_CMD_FID(1U)
3169 #define S_FW_LDST_CMD_CTL 0
3170 #define M_FW_LDST_CMD_CTL 0x7fff
3171 #define V_FW_LDST_CMD_CTL(x) ((x) << S_FW_LDST_CMD_CTL)
3172 #define G_FW_LDST_CMD_CTL(x) \
3173 (((x) >> S_FW_LDST_CMD_CTL) & M_FW_LDST_CMD_CTL)
3175 #define S_FW_LDST_CMD_RPLCPF 0
3176 #define M_FW_LDST_CMD_RPLCPF 0xff
3177 #define V_FW_LDST_CMD_RPLCPF(x) ((x) << S_FW_LDST_CMD_RPLCPF)
3178 #define G_FW_LDST_CMD_RPLCPF(x) \
3179 (((x) >> S_FW_LDST_CMD_RPLCPF) & M_FW_LDST_CMD_RPLCPF)
3181 #define S_FW_LDST_CMD_CTRL 7
3182 #define M_FW_LDST_CMD_CTRL 0x1
3183 #define V_FW_LDST_CMD_CTRL(x) ((x) << S_FW_LDST_CMD_CTRL)
3184 #define G_FW_LDST_CMD_CTRL(x) \
3185 (((x) >> S_FW_LDST_CMD_CTRL) & M_FW_LDST_CMD_CTRL)
3186 #define F_FW_LDST_CMD_CTRL V_FW_LDST_CMD_CTRL(1U)
3188 #define S_FW_LDST_CMD_LC 4
3189 #define M_FW_LDST_CMD_LC 0x1
3190 #define V_FW_LDST_CMD_LC(x) ((x) << S_FW_LDST_CMD_LC)
3191 #define G_FW_LDST_CMD_LC(x) (((x) >> S_FW_LDST_CMD_LC) & M_FW_LDST_CMD_LC)
3192 #define F_FW_LDST_CMD_LC V_FW_LDST_CMD_LC(1U)
3194 #define S_FW_LDST_CMD_AI 3
3195 #define M_FW_LDST_CMD_AI 0x1
3196 #define V_FW_LDST_CMD_AI(x) ((x) << S_FW_LDST_CMD_AI)
3197 #define G_FW_LDST_CMD_AI(x) (((x) >> S_FW_LDST_CMD_AI) & M_FW_LDST_CMD_AI)
3198 #define F_FW_LDST_CMD_AI V_FW_LDST_CMD_AI(1U)
3200 #define S_FW_LDST_CMD_FN 0
3201 #define M_FW_LDST_CMD_FN 0x7
3202 #define V_FW_LDST_CMD_FN(x) ((x) << S_FW_LDST_CMD_FN)
3203 #define G_FW_LDST_CMD_FN(x) (((x) >> S_FW_LDST_CMD_FN) & M_FW_LDST_CMD_FN)
3205 #define S_FW_LDST_CMD_SELECT 4
3206 #define M_FW_LDST_CMD_SELECT 0xf
3207 #define V_FW_LDST_CMD_SELECT(x) ((x) << S_FW_LDST_CMD_SELECT)
3208 #define G_FW_LDST_CMD_SELECT(x) \
3209 (((x) >> S_FW_LDST_CMD_SELECT) & M_FW_LDST_CMD_SELECT)
3211 #define S_FW_LDST_CMD_NACCESS 0
3212 #define M_FW_LDST_CMD_NACCESS 0xf
3213 #define V_FW_LDST_CMD_NACCESS(x) ((x) << S_FW_LDST_CMD_NACCESS)
3214 #define G_FW_LDST_CMD_NACCESS(x) \
3215 (((x) >> S_FW_LDST_CMD_NACCESS) & M_FW_LDST_CMD_NACCESS)
3217 #define S_FW_LDST_CMD_NSET 14
3218 #define M_FW_LDST_CMD_NSET 0x3
3219 #define V_FW_LDST_CMD_NSET(x) ((x) << S_FW_LDST_CMD_NSET)
3220 #define G_FW_LDST_CMD_NSET(x) \
3221 (((x) >> S_FW_LDST_CMD_NSET) & M_FW_LDST_CMD_NSET)
3223 #define S_FW_LDST_CMD_PID 6
3224 #define M_FW_LDST_CMD_PID 0x3
3225 #define V_FW_LDST_CMD_PID(x) ((x) << S_FW_LDST_CMD_PID)
3226 #define G_FW_LDST_CMD_PID(x) \
3227 (((x) >> S_FW_LDST_CMD_PID) & M_FW_LDST_CMD_PID)
3229 struct fw_reset_cmd {
3231 __be32 retval_len16;
3236 #define S_FW_RESET_CMD_HALT 31
3237 #define M_FW_RESET_CMD_HALT 0x1
3238 #define V_FW_RESET_CMD_HALT(x) ((x) << S_FW_RESET_CMD_HALT)
3239 #define G_FW_RESET_CMD_HALT(x) \
3240 (((x) >> S_FW_RESET_CMD_HALT) & M_FW_RESET_CMD_HALT)
3241 #define F_FW_RESET_CMD_HALT V_FW_RESET_CMD_HALT(1U)
3244 FW_HELLO_CMD_STAGE_OS = 0,
3245 FW_HELLO_CMD_STAGE_PREOS0 = 1,
3246 FW_HELLO_CMD_STAGE_PREOS1 = 2,
3247 FW_HELLO_CMD_STAGE_POSTOS = 3,
3250 struct fw_hello_cmd {
3252 __be32 retval_len16;
3253 __be32 err_to_clearinit;
3257 #define S_FW_HELLO_CMD_ERR 31
3258 #define M_FW_HELLO_CMD_ERR 0x1
3259 #define V_FW_HELLO_CMD_ERR(x) ((x) << S_FW_HELLO_CMD_ERR)
3260 #define G_FW_HELLO_CMD_ERR(x) \
3261 (((x) >> S_FW_HELLO_CMD_ERR) & M_FW_HELLO_CMD_ERR)
3262 #define F_FW_HELLO_CMD_ERR V_FW_HELLO_CMD_ERR(1U)
3264 #define S_FW_HELLO_CMD_INIT 30
3265 #define M_FW_HELLO_CMD_INIT 0x1
3266 #define V_FW_HELLO_CMD_INIT(x) ((x) << S_FW_HELLO_CMD_INIT)
3267 #define G_FW_HELLO_CMD_INIT(x) \
3268 (((x) >> S_FW_HELLO_CMD_INIT) & M_FW_HELLO_CMD_INIT)
3269 #define F_FW_HELLO_CMD_INIT V_FW_HELLO_CMD_INIT(1U)
3271 #define S_FW_HELLO_CMD_MASTERDIS 29
3272 #define M_FW_HELLO_CMD_MASTERDIS 0x1
3273 #define V_FW_HELLO_CMD_MASTERDIS(x) ((x) << S_FW_HELLO_CMD_MASTERDIS)
3274 #define G_FW_HELLO_CMD_MASTERDIS(x) \
3275 (((x) >> S_FW_HELLO_CMD_MASTERDIS) & M_FW_HELLO_CMD_MASTERDIS)
3276 #define F_FW_HELLO_CMD_MASTERDIS V_FW_HELLO_CMD_MASTERDIS(1U)
3278 #define S_FW_HELLO_CMD_MASTERFORCE 28
3279 #define M_FW_HELLO_CMD_MASTERFORCE 0x1
3280 #define V_FW_HELLO_CMD_MASTERFORCE(x) ((x) << S_FW_HELLO_CMD_MASTERFORCE)
3281 #define G_FW_HELLO_CMD_MASTERFORCE(x) \
3282 (((x) >> S_FW_HELLO_CMD_MASTERFORCE) & M_FW_HELLO_CMD_MASTERFORCE)
3283 #define F_FW_HELLO_CMD_MASTERFORCE V_FW_HELLO_CMD_MASTERFORCE(1U)
3285 #define S_FW_HELLO_CMD_MBMASTER 24
3286 #define M_FW_HELLO_CMD_MBMASTER 0xf
3287 #define V_FW_HELLO_CMD_MBMASTER(x) ((x) << S_FW_HELLO_CMD_MBMASTER)
3288 #define G_FW_HELLO_CMD_MBMASTER(x) \
3289 (((x) >> S_FW_HELLO_CMD_MBMASTER) & M_FW_HELLO_CMD_MBMASTER)
3291 #define S_FW_HELLO_CMD_MBASYNCNOTINT 23
3292 #define M_FW_HELLO_CMD_MBASYNCNOTINT 0x1
3293 #define V_FW_HELLO_CMD_MBASYNCNOTINT(x) ((x) << S_FW_HELLO_CMD_MBASYNCNOTINT)
3294 #define G_FW_HELLO_CMD_MBASYNCNOTINT(x) \
3295 (((x) >> S_FW_HELLO_CMD_MBASYNCNOTINT) & M_FW_HELLO_CMD_MBASYNCNOTINT)
3296 #define F_FW_HELLO_CMD_MBASYNCNOTINT V_FW_HELLO_CMD_MBASYNCNOTINT(1U)
3298 #define S_FW_HELLO_CMD_MBASYNCNOT 20
3299 #define M_FW_HELLO_CMD_MBASYNCNOT 0x7
3300 #define V_FW_HELLO_CMD_MBASYNCNOT(x) ((x) << S_FW_HELLO_CMD_MBASYNCNOT)
3301 #define G_FW_HELLO_CMD_MBASYNCNOT(x) \
3302 (((x) >> S_FW_HELLO_CMD_MBASYNCNOT) & M_FW_HELLO_CMD_MBASYNCNOT)
3304 #define S_FW_HELLO_CMD_STAGE 17
3305 #define M_FW_HELLO_CMD_STAGE 0x7
3306 #define V_FW_HELLO_CMD_STAGE(x) ((x) << S_FW_HELLO_CMD_STAGE)
3307 #define G_FW_HELLO_CMD_STAGE(x) \
3308 (((x) >> S_FW_HELLO_CMD_STAGE) & M_FW_HELLO_CMD_STAGE)
3310 #define S_FW_HELLO_CMD_CLEARINIT 16
3311 #define M_FW_HELLO_CMD_CLEARINIT 0x1
3312 #define V_FW_HELLO_CMD_CLEARINIT(x) ((x) << S_FW_HELLO_CMD_CLEARINIT)
3313 #define G_FW_HELLO_CMD_CLEARINIT(x) \
3314 (((x) >> S_FW_HELLO_CMD_CLEARINIT) & M_FW_HELLO_CMD_CLEARINIT)
3315 #define F_FW_HELLO_CMD_CLEARINIT V_FW_HELLO_CMD_CLEARINIT(1U)
3319 __be32 retval_len16;
3323 struct fw_initialize_cmd {
3325 __be32 retval_len16;
3329 enum fw_caps_config_hm {
3330 FW_CAPS_CONFIG_HM_PCIE = 0x00000001,
3331 FW_CAPS_CONFIG_HM_PL = 0x00000002,
3332 FW_CAPS_CONFIG_HM_SGE = 0x00000004,
3333 FW_CAPS_CONFIG_HM_CIM = 0x00000008,
3334 FW_CAPS_CONFIG_HM_ULPTX = 0x00000010,
3335 FW_CAPS_CONFIG_HM_TP = 0x00000020,
3336 FW_CAPS_CONFIG_HM_ULPRX = 0x00000040,
3337 FW_CAPS_CONFIG_HM_PMRX = 0x00000080,
3338 FW_CAPS_CONFIG_HM_PMTX = 0x00000100,
3339 FW_CAPS_CONFIG_HM_MC = 0x00000200,
3340 FW_CAPS_CONFIG_HM_LE = 0x00000400,
3341 FW_CAPS_CONFIG_HM_MPS = 0x00000800,
3342 FW_CAPS_CONFIG_HM_XGMAC = 0x00001000,
3343 FW_CAPS_CONFIG_HM_CPLSWITCH = 0x00002000,
3344 FW_CAPS_CONFIG_HM_T4DBG = 0x00004000,
3345 FW_CAPS_CONFIG_HM_MI = 0x00008000,
3346 FW_CAPS_CONFIG_HM_I2CM = 0x00010000,
3347 FW_CAPS_CONFIG_HM_NCSI = 0x00020000,
3348 FW_CAPS_CONFIG_HM_SMB = 0x00040000,
3349 FW_CAPS_CONFIG_HM_MA = 0x00080000,
3350 FW_CAPS_CONFIG_HM_EDRAM = 0x00100000,
3351 FW_CAPS_CONFIG_HM_PMU = 0x00200000,
3352 FW_CAPS_CONFIG_HM_UART = 0x00400000,
3353 FW_CAPS_CONFIG_HM_SF = 0x00800000,
3357 * The VF Register Map.
3359 * The Scatter Gather Engine (SGE), Multiport Support module (MPS), PIO Local
3360 * bus module (PL) and CPU Interface Module (CIM) components are mapped via
3361 * the Slice to Module Map Table (see below) in the Physical Function Register
3362 * Map. The Mail Box Data (MBDATA) range is mapped via the PCI-E Mailbox Base
3363 * and Offset registers in the PF Register Map. The MBDATA base address is
3364 * quite constrained as it determines the Mailbox Data addresses for both PFs
3365 * and VFs, and therefore must fit in both the VF and PF Register Maps without
3366 * overlapping other registers.
3368 #define FW_T4VF_SGE_BASE_ADDR 0x0000
3369 #define FW_T4VF_MPS_BASE_ADDR 0x0100
3370 #define FW_T4VF_PL_BASE_ADDR 0x0200
3371 #define FW_T4VF_MBDATA_BASE_ADDR 0x0240
3372 #define FW_T4VF_CIM_BASE_ADDR 0x0300
3374 #define FW_T4VF_REGMAP_START 0x0000
3375 #define FW_T4VF_REGMAP_SIZE 0x0400
3377 enum fw_caps_config_nbm {
3378 FW_CAPS_CONFIG_NBM_IPMI = 0x00000001,
3379 FW_CAPS_CONFIG_NBM_NCSI = 0x00000002,
3382 enum fw_caps_config_link {
3383 FW_CAPS_CONFIG_LINK_PPP = 0x00000001,
3384 FW_CAPS_CONFIG_LINK_QFC = 0x00000002,
3385 FW_CAPS_CONFIG_LINK_DCBX = 0x00000004,
3388 enum fw_caps_config_switch {
3389 FW_CAPS_CONFIG_SWITCH_INGRESS = 0x00000001,
3390 FW_CAPS_CONFIG_SWITCH_EGRESS = 0x00000002,
3393 enum fw_caps_config_nic {
3394 FW_CAPS_CONFIG_NIC = 0x00000001,
3395 FW_CAPS_CONFIG_NIC_VM = 0x00000002,
3396 FW_CAPS_CONFIG_NIC_IDS = 0x00000004,
3397 FW_CAPS_CONFIG_NIC_UM = 0x00000008,
3398 FW_CAPS_CONFIG_NIC_UM_ISGL = 0x00000010,
3401 enum fw_caps_config_toe {
3402 FW_CAPS_CONFIG_TOE = 0x00000001,
3405 enum fw_caps_config_rdma {
3406 FW_CAPS_CONFIG_RDMA_RDDP = 0x00000001,
3407 FW_CAPS_CONFIG_RDMA_RDMAC = 0x00000002,
3410 enum fw_caps_config_iscsi {
3411 FW_CAPS_CONFIG_ISCSI_INITIATOR_PDU = 0x00000001,
3412 FW_CAPS_CONFIG_ISCSI_TARGET_PDU = 0x00000002,
3413 FW_CAPS_CONFIG_ISCSI_INITIATOR_CNXOFLD = 0x00000004,
3414 FW_CAPS_CONFIG_ISCSI_TARGET_CNXOFLD = 0x00000008,
3415 FW_CAPS_CONFIG_ISCSI_INITIATOR_SSNOFLD = 0x00000010,
3416 FW_CAPS_CONFIG_ISCSI_TARGET_SSNOFLD = 0x00000020,
3419 enum fw_caps_config_fcoe {
3420 FW_CAPS_CONFIG_FCOE_INITIATOR = 0x00000001,
3421 FW_CAPS_CONFIG_FCOE_TARGET = 0x00000002,
3422 FW_CAPS_CONFIG_FCOE_CTRL_OFLD = 0x00000004,
3423 FW_CAPS_CONFIG_POFCOE_INITIATOR = 0x00000008,
3424 FW_CAPS_CONFIG_POFCOE_TARGET = 0x00000010,
3427 enum fw_memtype_cf {
3428 FW_MEMTYPE_CF_EDC0 = 0x0,
3429 FW_MEMTYPE_CF_EDC1 = 0x1,
3430 FW_MEMTYPE_CF_EXTMEM = 0x2,
3431 FW_MEMTYPE_CF_FLASH = 0x4,
3432 FW_MEMTYPE_CF_INTERNAL = 0x5,
3433 FW_MEMTYPE_CF_EXTMEM1 = 0x6,
3436 struct fw_caps_config_cmd {
3438 __be32 cfvalid_to_len16;
3456 #define S_FW_CAPS_CONFIG_CMD_CFVALID 27
3457 #define M_FW_CAPS_CONFIG_CMD_CFVALID 0x1
3458 #define V_FW_CAPS_CONFIG_CMD_CFVALID(x) ((x) << S_FW_CAPS_CONFIG_CMD_CFVALID)
3459 #define G_FW_CAPS_CONFIG_CMD_CFVALID(x) \
3460 (((x) >> S_FW_CAPS_CONFIG_CMD_CFVALID) & M_FW_CAPS_CONFIG_CMD_CFVALID)
3461 #define F_FW_CAPS_CONFIG_CMD_CFVALID V_FW_CAPS_CONFIG_CMD_CFVALID(1U)
3463 #define S_FW_CAPS_CONFIG_CMD_MEMTYPE_CF 24
3464 #define M_FW_CAPS_CONFIG_CMD_MEMTYPE_CF 0x7
3465 #define V_FW_CAPS_CONFIG_CMD_MEMTYPE_CF(x) \
3466 ((x) << S_FW_CAPS_CONFIG_CMD_MEMTYPE_CF)
3467 #define G_FW_CAPS_CONFIG_CMD_MEMTYPE_CF(x) \
3468 (((x) >> S_FW_CAPS_CONFIG_CMD_MEMTYPE_CF) & \
3469 M_FW_CAPS_CONFIG_CMD_MEMTYPE_CF)
3471 #define S_FW_CAPS_CONFIG_CMD_MEMADDR64K_CF 16
3472 #define M_FW_CAPS_CONFIG_CMD_MEMADDR64K_CF 0xff
3473 #define V_FW_CAPS_CONFIG_CMD_MEMADDR64K_CF(x) \
3474 ((x) << S_FW_CAPS_CONFIG_CMD_MEMADDR64K_CF)
3475 #define G_FW_CAPS_CONFIG_CMD_MEMADDR64K_CF(x) \
3476 (((x) >> S_FW_CAPS_CONFIG_CMD_MEMADDR64K_CF) & \
3477 M_FW_CAPS_CONFIG_CMD_MEMADDR64K_CF)
3480 * params command mnemonics
3482 enum fw_params_mnem {
3483 FW_PARAMS_MNEM_DEV = 1, /* device params */
3484 FW_PARAMS_MNEM_PFVF = 2, /* function params */
3485 FW_PARAMS_MNEM_REG = 3, /* limited register access */
3486 FW_PARAMS_MNEM_DMAQ = 4, /* dma queue params */
3493 enum fw_params_param_dev {
3494 FW_PARAMS_PARAM_DEV_CCLK = 0x00, /* chip core clock in khz */
3495 FW_PARAMS_PARAM_DEV_PORTVEC = 0x01, /* the port vector */
3496 FW_PARAMS_PARAM_DEV_NTID = 0x02, /* reads the number of TIDs
3497 * allocated by the device's
3500 FW_PARAMS_PARAM_DEV_FLOWC_BUFFIFO_SZ = 0x03,
3501 FW_PARAMS_PARAM_DEV_INTFVER_NIC = 0x04,
3502 FW_PARAMS_PARAM_DEV_INTFVER_VNIC = 0x05,
3503 FW_PARAMS_PARAM_DEV_INTFVER_OFLD = 0x06,
3504 FW_PARAMS_PARAM_DEV_INTFVER_RI = 0x07,
3505 FW_PARAMS_PARAM_DEV_INTFVER_ISCSIPDU = 0x08,
3506 FW_PARAMS_PARAM_DEV_INTFVER_ISCSI = 0x09,
3507 FW_PARAMS_PARAM_DEV_INTFVER_FCOE = 0x0A,
3508 FW_PARAMS_PARAM_DEV_FWREV = 0x0B,
3509 FW_PARAMS_PARAM_DEV_TPREV = 0x0C,
3510 FW_PARAMS_PARAM_DEV_CF = 0x0D,
3511 FW_PARAMS_PARAM_DEV_BYPASS = 0x0E,
3512 FW_PARAMS_PARAM_DEV_PHYFW = 0x0F,
3513 FW_PARAMS_PARAM_DEV_LOAD = 0x10,
3514 FW_PARAMS_PARAM_DEV_DIAG = 0x11,
3515 FW_PARAMS_PARAM_DEV_UCLK = 0x12, /* uP clock in khz */
3516 FW_PARAMS_PARAM_DEV_MAXORDIRD_QP = 0x13, /* max supported QP IRD/ORD
3518 FW_PARAMS_PARAM_DEV_MAXIRD_ADAPTER= 0x14,/* max supported ADAPTER IRD
3520 FW_PARAMS_PARAM_DEV_INTFVER_FCOEPDU = 0x15,
3521 FW_PARAMS_PARAM_DEV_MCINIT = 0x16,
3522 FW_PARAMS_PARAM_DEV_ULPTX_MEMWRITE_DSGL = 0x17,
3526 * physical and virtual function parameters
3528 enum fw_params_param_pfvf {
3529 FW_PARAMS_PARAM_PFVF_RWXCAPS = 0x00,
3530 FW_PARAMS_PARAM_PFVF_ROUTE_START = 0x01,
3531 FW_PARAMS_PARAM_PFVF_ROUTE_END = 0x02,
3532 FW_PARAMS_PARAM_PFVF_CLIP_START = 0x03,
3533 FW_PARAMS_PARAM_PFVF_CLIP_END = 0x04,
3534 FW_PARAMS_PARAM_PFVF_FILTER_START = 0x05,
3535 FW_PARAMS_PARAM_PFVF_FILTER_END = 0x06,
3536 FW_PARAMS_PARAM_PFVF_SERVER_START = 0x07,
3537 FW_PARAMS_PARAM_PFVF_SERVER_END = 0x08,
3538 FW_PARAMS_PARAM_PFVF_TDDP_START = 0x09,
3539 FW_PARAMS_PARAM_PFVF_TDDP_END = 0x0A,
3540 FW_PARAMS_PARAM_PFVF_ISCSI_START = 0x0B,
3541 FW_PARAMS_PARAM_PFVF_ISCSI_END = 0x0C,
3542 FW_PARAMS_PARAM_PFVF_STAG_START = 0x0D,
3543 FW_PARAMS_PARAM_PFVF_STAG_END = 0x0E,
3544 FW_PARAMS_PARAM_PFVF_RQ_START = 0x1F,
3545 FW_PARAMS_PARAM_PFVF_RQ_END = 0x10,
3546 FW_PARAMS_PARAM_PFVF_PBL_START = 0x11,
3547 FW_PARAMS_PARAM_PFVF_PBL_END = 0x12,
3548 FW_PARAMS_PARAM_PFVF_L2T_START = 0x13,
3549 FW_PARAMS_PARAM_PFVF_L2T_END = 0x14,
3550 FW_PARAMS_PARAM_PFVF_SQRQ_START = 0x15,
3551 FW_PARAMS_PARAM_PFVF_SQRQ_END = 0x16,
3552 FW_PARAMS_PARAM_PFVF_CQ_START = 0x17,
3553 FW_PARAMS_PARAM_PFVF_CQ_END = 0x18,
3554 FW_PARAMS_PARAM_PFVF_SCHEDCLASS_ETH = 0x20,
3555 FW_PARAMS_PARAM_PFVF_VIID = 0x24,
3556 FW_PARAMS_PARAM_PFVF_CPMASK = 0x25,
3557 FW_PARAMS_PARAM_PFVF_OCQ_START = 0x26,
3558 FW_PARAMS_PARAM_PFVF_OCQ_END = 0x27,
3559 FW_PARAMS_PARAM_PFVF_CONM_MAP = 0x28,
3560 FW_PARAMS_PARAM_PFVF_IQFLINT_START = 0x29,
3561 FW_PARAMS_PARAM_PFVF_IQFLINT_END = 0x2A,
3562 FW_PARAMS_PARAM_PFVF_EQ_START = 0x2B,
3563 FW_PARAMS_PARAM_PFVF_EQ_END = 0x2C,
3564 FW_PARAMS_PARAM_PFVF_ACTIVE_FILTER_START = 0x2D,
3565 FW_PARAMS_PARAM_PFVF_ACTIVE_FILTER_END = 0x2E,
3566 FW_PARAMS_PARAM_PFVF_ETHOFLD_START = 0x2F,
3567 FW_PARAMS_PARAM_PFVF_ETHOFLD_END = 0x30,
3568 FW_PARAMS_PARAM_PFVF_CPLFW4MSG_ENCAP = 0x31
3572 * dma queue parameters
3574 enum fw_params_param_dmaq {
3575 FW_PARAMS_PARAM_DMAQ_IQ_DCAEN_DCACPU = 0x00,
3576 FW_PARAMS_PARAM_DMAQ_IQ_INTCNTTHRESH = 0x01,
3577 FW_PARAMS_PARAM_DMAQ_IQ_INTIDX = 0x02,
3578 FW_PARAMS_PARAM_DMAQ_EQ_CMPLIQID_MNGT = 0x10,
3579 FW_PARAMS_PARAM_DMAQ_EQ_CMPLIQID_CTRL = 0x11,
3580 FW_PARAMS_PARAM_DMAQ_EQ_SCHEDCLASS_ETH = 0x12,
3581 FW_PARAMS_PARAM_DMAQ_EQ_DCBPRIO_ETH = 0x13,
3582 FW_PARAMS_PARAM_DMAQ_CONM_CTXT = 0x20,
3586 * dev bypass parameters; actions and modes
3588 enum fw_params_param_dev_bypass {
3592 FW_PARAMS_PARAM_DEV_BYPASS_PFAIL = 0x00,
3593 FW_PARAMS_PARAM_DEV_BYPASS_CURRENT = 0x01,
3597 FW_PARAMS_PARAM_DEV_BYPASS_NORMAL = 0x00,
3598 FW_PARAMS_PARAM_DEV_BYPASS_DROP = 0x1,
3599 FW_PARAMS_PARAM_DEV_BYPASS_BYPASS = 0x2,
3602 enum fw_params_phyfw_actions {
3603 FW_PARAMS_PARAM_PHYFW_DOWNLOAD = 0x00,
3604 FW_PARAMS_PARAM_PHYFW_VERSION = 0x01,
3607 enum fw_params_param_dev_diag {
3608 FW_PARAM_DEV_DIAG_TMP = 0x00,
3609 FW_PARAM_DEV_DIAG_VDD = 0x01,
3612 #define S_FW_PARAMS_MNEM 24
3613 #define M_FW_PARAMS_MNEM 0xff
3614 #define V_FW_PARAMS_MNEM(x) ((x) << S_FW_PARAMS_MNEM)
3615 #define G_FW_PARAMS_MNEM(x) \
3616 (((x) >> S_FW_PARAMS_MNEM) & M_FW_PARAMS_MNEM)
3618 #define S_FW_PARAMS_PARAM_X 16
3619 #define M_FW_PARAMS_PARAM_X 0xff
3620 #define V_FW_PARAMS_PARAM_X(x) ((x) << S_FW_PARAMS_PARAM_X)
3621 #define G_FW_PARAMS_PARAM_X(x) \
3622 (((x) >> S_FW_PARAMS_PARAM_X) & M_FW_PARAMS_PARAM_X)
3624 #define S_FW_PARAMS_PARAM_Y 8
3625 #define M_FW_PARAMS_PARAM_Y 0xff
3626 #define V_FW_PARAMS_PARAM_Y(x) ((x) << S_FW_PARAMS_PARAM_Y)
3627 #define G_FW_PARAMS_PARAM_Y(x) \
3628 (((x) >> S_FW_PARAMS_PARAM_Y) & M_FW_PARAMS_PARAM_Y)
3630 #define S_FW_PARAMS_PARAM_Z 0
3631 #define M_FW_PARAMS_PARAM_Z 0xff
3632 #define V_FW_PARAMS_PARAM_Z(x) ((x) << S_FW_PARAMS_PARAM_Z)
3633 #define G_FW_PARAMS_PARAM_Z(x) \
3634 (((x) >> S_FW_PARAMS_PARAM_Z) & M_FW_PARAMS_PARAM_Z)
3636 #define S_FW_PARAMS_PARAM_XYZ 0
3637 #define M_FW_PARAMS_PARAM_XYZ 0xffffff
3638 #define V_FW_PARAMS_PARAM_XYZ(x) ((x) << S_FW_PARAMS_PARAM_XYZ)
3639 #define G_FW_PARAMS_PARAM_XYZ(x) \
3640 (((x) >> S_FW_PARAMS_PARAM_XYZ) & M_FW_PARAMS_PARAM_XYZ)
3642 #define S_FW_PARAMS_PARAM_YZ 0
3643 #define M_FW_PARAMS_PARAM_YZ 0xffff
3644 #define V_FW_PARAMS_PARAM_YZ(x) ((x) << S_FW_PARAMS_PARAM_YZ)
3645 #define G_FW_PARAMS_PARAM_YZ(x) \
3646 (((x) >> S_FW_PARAMS_PARAM_YZ) & M_FW_PARAMS_PARAM_YZ)
3648 struct fw_params_cmd {
3650 __be32 retval_len16;
3651 struct fw_params_param {
3657 #define S_FW_PARAMS_CMD_PFN 8
3658 #define M_FW_PARAMS_CMD_PFN 0x7
3659 #define V_FW_PARAMS_CMD_PFN(x) ((x) << S_FW_PARAMS_CMD_PFN)
3660 #define G_FW_PARAMS_CMD_PFN(x) \
3661 (((x) >> S_FW_PARAMS_CMD_PFN) & M_FW_PARAMS_CMD_PFN)
3663 #define S_FW_PARAMS_CMD_VFN 0
3664 #define M_FW_PARAMS_CMD_VFN 0xff
3665 #define V_FW_PARAMS_CMD_VFN(x) ((x) << S_FW_PARAMS_CMD_VFN)
3666 #define G_FW_PARAMS_CMD_VFN(x) \
3667 (((x) >> S_FW_PARAMS_CMD_VFN) & M_FW_PARAMS_CMD_VFN)
3669 struct fw_pfvf_cmd {
3671 __be32 retval_len16;
3672 __be32 niqflint_niq;
3674 __be32 tc_to_nexactf;
3675 __be32 r_caps_to_nethctrl;
3681 #define S_FW_PFVF_CMD_PFN 8
3682 #define M_FW_PFVF_CMD_PFN 0x7
3683 #define V_FW_PFVF_CMD_PFN(x) ((x) << S_FW_PFVF_CMD_PFN)
3684 #define G_FW_PFVF_CMD_PFN(x) \
3685 (((x) >> S_FW_PFVF_CMD_PFN) & M_FW_PFVF_CMD_PFN)
3687 #define S_FW_PFVF_CMD_VFN 0
3688 #define M_FW_PFVF_CMD_VFN 0xff
3689 #define V_FW_PFVF_CMD_VFN(x) ((x) << S_FW_PFVF_CMD_VFN)
3690 #define G_FW_PFVF_CMD_VFN(x) \
3691 (((x) >> S_FW_PFVF_CMD_VFN) & M_FW_PFVF_CMD_VFN)
3693 #define S_FW_PFVF_CMD_NIQFLINT 20
3694 #define M_FW_PFVF_CMD_NIQFLINT 0xfff
3695 #define V_FW_PFVF_CMD_NIQFLINT(x) ((x) << S_FW_PFVF_CMD_NIQFLINT)
3696 #define G_FW_PFVF_CMD_NIQFLINT(x) \
3697 (((x) >> S_FW_PFVF_CMD_NIQFLINT) & M_FW_PFVF_CMD_NIQFLINT)
3699 #define S_FW_PFVF_CMD_NIQ 0
3700 #define M_FW_PFVF_CMD_NIQ 0xfffff
3701 #define V_FW_PFVF_CMD_NIQ(x) ((x) << S_FW_PFVF_CMD_NIQ)
3702 #define G_FW_PFVF_CMD_NIQ(x) \
3703 (((x) >> S_FW_PFVF_CMD_NIQ) & M_FW_PFVF_CMD_NIQ)
3705 #define S_FW_PFVF_CMD_TYPE 31
3706 #define M_FW_PFVF_CMD_TYPE 0x1
3707 #define V_FW_PFVF_CMD_TYPE(x) ((x) << S_FW_PFVF_CMD_TYPE)
3708 #define G_FW_PFVF_CMD_TYPE(x) \
3709 (((x) >> S_FW_PFVF_CMD_TYPE) & M_FW_PFVF_CMD_TYPE)
3710 #define F_FW_PFVF_CMD_TYPE V_FW_PFVF_CMD_TYPE(1U)
3712 #define S_FW_PFVF_CMD_CMASK 24
3713 #define M_FW_PFVF_CMD_CMASK 0xf
3714 #define V_FW_PFVF_CMD_CMASK(x) ((x) << S_FW_PFVF_CMD_CMASK)
3715 #define G_FW_PFVF_CMD_CMASK(x) \
3716 (((x) >> S_FW_PFVF_CMD_CMASK) & M_FW_PFVF_CMD_CMASK)
3718 #define S_FW_PFVF_CMD_PMASK 20
3719 #define M_FW_PFVF_CMD_PMASK 0xf
3720 #define V_FW_PFVF_CMD_PMASK(x) ((x) << S_FW_PFVF_CMD_PMASK)
3721 #define G_FW_PFVF_CMD_PMASK(x) \
3722 (((x) >> S_FW_PFVF_CMD_PMASK) & M_FW_PFVF_CMD_PMASK)
3724 #define S_FW_PFVF_CMD_NEQ 0
3725 #define M_FW_PFVF_CMD_NEQ 0xfffff
3726 #define V_FW_PFVF_CMD_NEQ(x) ((x) << S_FW_PFVF_CMD_NEQ)
3727 #define G_FW_PFVF_CMD_NEQ(x) \
3728 (((x) >> S_FW_PFVF_CMD_NEQ) & M_FW_PFVF_CMD_NEQ)
3730 #define S_FW_PFVF_CMD_TC 24
3731 #define M_FW_PFVF_CMD_TC 0xff
3732 #define V_FW_PFVF_CMD_TC(x) ((x) << S_FW_PFVF_CMD_TC)
3733 #define G_FW_PFVF_CMD_TC(x) (((x) >> S_FW_PFVF_CMD_TC) & M_FW_PFVF_CMD_TC)
3735 #define S_FW_PFVF_CMD_NVI 16
3736 #define M_FW_PFVF_CMD_NVI 0xff
3737 #define V_FW_PFVF_CMD_NVI(x) ((x) << S_FW_PFVF_CMD_NVI)
3738 #define G_FW_PFVF_CMD_NVI(x) \
3739 (((x) >> S_FW_PFVF_CMD_NVI) & M_FW_PFVF_CMD_NVI)
3741 #define S_FW_PFVF_CMD_NEXACTF 0
3742 #define M_FW_PFVF_CMD_NEXACTF 0xffff
3743 #define V_FW_PFVF_CMD_NEXACTF(x) ((x) << S_FW_PFVF_CMD_NEXACTF)
3744 #define G_FW_PFVF_CMD_NEXACTF(x) \
3745 (((x) >> S_FW_PFVF_CMD_NEXACTF) & M_FW_PFVF_CMD_NEXACTF)
3747 #define S_FW_PFVF_CMD_R_CAPS 24
3748 #define M_FW_PFVF_CMD_R_CAPS 0xff
3749 #define V_FW_PFVF_CMD_R_CAPS(x) ((x) << S_FW_PFVF_CMD_R_CAPS)
3750 #define G_FW_PFVF_CMD_R_CAPS(x) \
3751 (((x) >> S_FW_PFVF_CMD_R_CAPS) & M_FW_PFVF_CMD_R_CAPS)
3753 #define S_FW_PFVF_CMD_WX_CAPS 16
3754 #define M_FW_PFVF_CMD_WX_CAPS 0xff
3755 #define V_FW_PFVF_CMD_WX_CAPS(x) ((x) << S_FW_PFVF_CMD_WX_CAPS)
3756 #define G_FW_PFVF_CMD_WX_CAPS(x) \
3757 (((x) >> S_FW_PFVF_CMD_WX_CAPS) & M_FW_PFVF_CMD_WX_CAPS)
3759 #define S_FW_PFVF_CMD_NETHCTRL 0
3760 #define M_FW_PFVF_CMD_NETHCTRL 0xffff
3761 #define V_FW_PFVF_CMD_NETHCTRL(x) ((x) << S_FW_PFVF_CMD_NETHCTRL)
3762 #define G_FW_PFVF_CMD_NETHCTRL(x) \
3763 (((x) >> S_FW_PFVF_CMD_NETHCTRL) & M_FW_PFVF_CMD_NETHCTRL)
3766 * ingress queue type; the first 1K ingress queues can have associated 0,
3767 * 1 or 2 free lists and an interrupt, all other ingress queues lack these
3771 FW_IQ_TYPE_FL_INT_CAP,
3772 FW_IQ_TYPE_NO_FL_INT_CAP
3777 __be32 alloc_to_len16;
3782 __be32 type_to_iqandstindex;
3783 __be16 iqdroprss_to_iqesize;
3786 __be32 iqns_to_fl0congen;
3787 __be16 fl0dcaen_to_fl0cidxfthresh;
3790 __be32 fl1cngchmap_to_fl1congen;
3791 __be16 fl1dcaen_to_fl1cidxfthresh;
3796 #define S_FW_IQ_CMD_PFN 8
3797 #define M_FW_IQ_CMD_PFN 0x7
3798 #define V_FW_IQ_CMD_PFN(x) ((x) << S_FW_IQ_CMD_PFN)
3799 #define G_FW_IQ_CMD_PFN(x) (((x) >> S_FW_IQ_CMD_PFN) & M_FW_IQ_CMD_PFN)
3801 #define S_FW_IQ_CMD_VFN 0
3802 #define M_FW_IQ_CMD_VFN 0xff
3803 #define V_FW_IQ_CMD_VFN(x) ((x) << S_FW_IQ_CMD_VFN)
3804 #define G_FW_IQ_CMD_VFN(x) (((x) >> S_FW_IQ_CMD_VFN) & M_FW_IQ_CMD_VFN)
3806 #define S_FW_IQ_CMD_ALLOC 31
3807 #define M_FW_IQ_CMD_ALLOC 0x1
3808 #define V_FW_IQ_CMD_ALLOC(x) ((x) << S_FW_IQ_CMD_ALLOC)
3809 #define G_FW_IQ_CMD_ALLOC(x) \
3810 (((x) >> S_FW_IQ_CMD_ALLOC) & M_FW_IQ_CMD_ALLOC)
3811 #define F_FW_IQ_CMD_ALLOC V_FW_IQ_CMD_ALLOC(1U)
3813 #define S_FW_IQ_CMD_FREE 30
3814 #define M_FW_IQ_CMD_FREE 0x1
3815 #define V_FW_IQ_CMD_FREE(x) ((x) << S_FW_IQ_CMD_FREE)
3816 #define G_FW_IQ_CMD_FREE(x) (((x) >> S_FW_IQ_CMD_FREE) & M_FW_IQ_CMD_FREE)
3817 #define F_FW_IQ_CMD_FREE V_FW_IQ_CMD_FREE(1U)
3819 #define S_FW_IQ_CMD_MODIFY 29
3820 #define M_FW_IQ_CMD_MODIFY 0x1
3821 #define V_FW_IQ_CMD_MODIFY(x) ((x) << S_FW_IQ_CMD_MODIFY)
3822 #define G_FW_IQ_CMD_MODIFY(x) \
3823 (((x) >> S_FW_IQ_CMD_MODIFY) & M_FW_IQ_CMD_MODIFY)
3824 #define F_FW_IQ_CMD_MODIFY V_FW_IQ_CMD_MODIFY(1U)
3826 #define S_FW_IQ_CMD_IQSTART 28
3827 #define M_FW_IQ_CMD_IQSTART 0x1
3828 #define V_FW_IQ_CMD_IQSTART(x) ((x) << S_FW_IQ_CMD_IQSTART)
3829 #define G_FW_IQ_CMD_IQSTART(x) \
3830 (((x) >> S_FW_IQ_CMD_IQSTART) & M_FW_IQ_CMD_IQSTART)
3831 #define F_FW_IQ_CMD_IQSTART V_FW_IQ_CMD_IQSTART(1U)
3833 #define S_FW_IQ_CMD_IQSTOP 27
3834 #define M_FW_IQ_CMD_IQSTOP 0x1
3835 #define V_FW_IQ_CMD_IQSTOP(x) ((x) << S_FW_IQ_CMD_IQSTOP)
3836 #define G_FW_IQ_CMD_IQSTOP(x) \
3837 (((x) >> S_FW_IQ_CMD_IQSTOP) & M_FW_IQ_CMD_IQSTOP)
3838 #define F_FW_IQ_CMD_IQSTOP V_FW_IQ_CMD_IQSTOP(1U)
3840 #define S_FW_IQ_CMD_TYPE 29
3841 #define M_FW_IQ_CMD_TYPE 0x7
3842 #define V_FW_IQ_CMD_TYPE(x) ((x) << S_FW_IQ_CMD_TYPE)
3843 #define G_FW_IQ_CMD_TYPE(x) (((x) >> S_FW_IQ_CMD_TYPE) & M_FW_IQ_CMD_TYPE)
3845 #define S_FW_IQ_CMD_IQASYNCH 28
3846 #define M_FW_IQ_CMD_IQASYNCH 0x1
3847 #define V_FW_IQ_CMD_IQASYNCH(x) ((x) << S_FW_IQ_CMD_IQASYNCH)
3848 #define G_FW_IQ_CMD_IQASYNCH(x) \
3849 (((x) >> S_FW_IQ_CMD_IQASYNCH) & M_FW_IQ_CMD_IQASYNCH)
3850 #define F_FW_IQ_CMD_IQASYNCH V_FW_IQ_CMD_IQASYNCH(1U)
3852 #define S_FW_IQ_CMD_VIID 16
3853 #define M_FW_IQ_CMD_VIID 0xfff
3854 #define V_FW_IQ_CMD_VIID(x) ((x) << S_FW_IQ_CMD_VIID)
3855 #define G_FW_IQ_CMD_VIID(x) (((x) >> S_FW_IQ_CMD_VIID) & M_FW_IQ_CMD_VIID)
3857 #define S_FW_IQ_CMD_IQANDST 15
3858 #define M_FW_IQ_CMD_IQANDST 0x1
3859 #define V_FW_IQ_CMD_IQANDST(x) ((x) << S_FW_IQ_CMD_IQANDST)
3860 #define G_FW_IQ_CMD_IQANDST(x) \
3861 (((x) >> S_FW_IQ_CMD_IQANDST) & M_FW_IQ_CMD_IQANDST)
3862 #define F_FW_IQ_CMD_IQANDST V_FW_IQ_CMD_IQANDST(1U)
3864 #define S_FW_IQ_CMD_IQANUS 14
3865 #define M_FW_IQ_CMD_IQANUS 0x1
3866 #define V_FW_IQ_CMD_IQANUS(x) ((x) << S_FW_IQ_CMD_IQANUS)
3867 #define G_FW_IQ_CMD_IQANUS(x) \
3868 (((x) >> S_FW_IQ_CMD_IQANUS) & M_FW_IQ_CMD_IQANUS)
3869 #define F_FW_IQ_CMD_IQANUS V_FW_IQ_CMD_IQANUS(1U)
3871 #define S_FW_IQ_CMD_IQANUD 12
3872 #define M_FW_IQ_CMD_IQANUD 0x3
3873 #define V_FW_IQ_CMD_IQANUD(x) ((x) << S_FW_IQ_CMD_IQANUD)
3874 #define G_FW_IQ_CMD_IQANUD(x) \
3875 (((x) >> S_FW_IQ_CMD_IQANUD) & M_FW_IQ_CMD_IQANUD)
3877 #define S_FW_IQ_CMD_IQANDSTINDEX 0
3878 #define M_FW_IQ_CMD_IQANDSTINDEX 0xfff
3879 #define V_FW_IQ_CMD_IQANDSTINDEX(x) ((x) << S_FW_IQ_CMD_IQANDSTINDEX)
3880 #define G_FW_IQ_CMD_IQANDSTINDEX(x) \
3881 (((x) >> S_FW_IQ_CMD_IQANDSTINDEX) & M_FW_IQ_CMD_IQANDSTINDEX)
3883 #define S_FW_IQ_CMD_IQDROPRSS 15
3884 #define M_FW_IQ_CMD_IQDROPRSS 0x1
3885 #define V_FW_IQ_CMD_IQDROPRSS(x) ((x) << S_FW_IQ_CMD_IQDROPRSS)
3886 #define G_FW_IQ_CMD_IQDROPRSS(x) \
3887 (((x) >> S_FW_IQ_CMD_IQDROPRSS) & M_FW_IQ_CMD_IQDROPRSS)
3888 #define F_FW_IQ_CMD_IQDROPRSS V_FW_IQ_CMD_IQDROPRSS(1U)
3890 #define S_FW_IQ_CMD_IQGTSMODE 14
3891 #define M_FW_IQ_CMD_IQGTSMODE 0x1
3892 #define V_FW_IQ_CMD_IQGTSMODE(x) ((x) << S_FW_IQ_CMD_IQGTSMODE)
3893 #define G_FW_IQ_CMD_IQGTSMODE(x) \
3894 (((x) >> S_FW_IQ_CMD_IQGTSMODE) & M_FW_IQ_CMD_IQGTSMODE)
3895 #define F_FW_IQ_CMD_IQGTSMODE V_FW_IQ_CMD_IQGTSMODE(1U)
3897 #define S_FW_IQ_CMD_IQPCIECH 12
3898 #define M_FW_IQ_CMD_IQPCIECH 0x3
3899 #define V_FW_IQ_CMD_IQPCIECH(x) ((x) << S_FW_IQ_CMD_IQPCIECH)
3900 #define G_FW_IQ_CMD_IQPCIECH(x) \
3901 (((x) >> S_FW_IQ_CMD_IQPCIECH) & M_FW_IQ_CMD_IQPCIECH)
3903 #define S_FW_IQ_CMD_IQDCAEN 11
3904 #define M_FW_IQ_CMD_IQDCAEN 0x1
3905 #define V_FW_IQ_CMD_IQDCAEN(x) ((x) << S_FW_IQ_CMD_IQDCAEN)
3906 #define G_FW_IQ_CMD_IQDCAEN(x) \
3907 (((x) >> S_FW_IQ_CMD_IQDCAEN) & M_FW_IQ_CMD_IQDCAEN)
3908 #define F_FW_IQ_CMD_IQDCAEN V_FW_IQ_CMD_IQDCAEN(1U)
3910 #define S_FW_IQ_CMD_IQDCACPU 6
3911 #define M_FW_IQ_CMD_IQDCACPU 0x1f
3912 #define V_FW_IQ_CMD_IQDCACPU(x) ((x) << S_FW_IQ_CMD_IQDCACPU)
3913 #define G_FW_IQ_CMD_IQDCACPU(x) \
3914 (((x) >> S_FW_IQ_CMD_IQDCACPU) & M_FW_IQ_CMD_IQDCACPU)
3916 #define S_FW_IQ_CMD_IQINTCNTTHRESH 4
3917 #define M_FW_IQ_CMD_IQINTCNTTHRESH 0x3
3918 #define V_FW_IQ_CMD_IQINTCNTTHRESH(x) ((x) << S_FW_IQ_CMD_IQINTCNTTHRESH)
3919 #define G_FW_IQ_CMD_IQINTCNTTHRESH(x) \
3920 (((x) >> S_FW_IQ_CMD_IQINTCNTTHRESH) & M_FW_IQ_CMD_IQINTCNTTHRESH)
3922 #define S_FW_IQ_CMD_IQO 3
3923 #define M_FW_IQ_CMD_IQO 0x1
3924 #define V_FW_IQ_CMD_IQO(x) ((x) << S_FW_IQ_CMD_IQO)
3925 #define G_FW_IQ_CMD_IQO(x) (((x) >> S_FW_IQ_CMD_IQO) & M_FW_IQ_CMD_IQO)
3926 #define F_FW_IQ_CMD_IQO V_FW_IQ_CMD_IQO(1U)
3928 #define S_FW_IQ_CMD_IQCPRIO 2
3929 #define M_FW_IQ_CMD_IQCPRIO 0x1
3930 #define V_FW_IQ_CMD_IQCPRIO(x) ((x) << S_FW_IQ_CMD_IQCPRIO)
3931 #define G_FW_IQ_CMD_IQCPRIO(x) \
3932 (((x) >> S_FW_IQ_CMD_IQCPRIO) & M_FW_IQ_CMD_IQCPRIO)
3933 #define F_FW_IQ_CMD_IQCPRIO V_FW_IQ_CMD_IQCPRIO(1U)
3935 #define S_FW_IQ_CMD_IQESIZE 0
3936 #define M_FW_IQ_CMD_IQESIZE 0x3
3937 #define V_FW_IQ_CMD_IQESIZE(x) ((x) << S_FW_IQ_CMD_IQESIZE)
3938 #define G_FW_IQ_CMD_IQESIZE(x) \
3939 (((x) >> S_FW_IQ_CMD_IQESIZE) & M_FW_IQ_CMD_IQESIZE)
3941 #define S_FW_IQ_CMD_IQNS 31
3942 #define M_FW_IQ_CMD_IQNS 0x1
3943 #define V_FW_IQ_CMD_IQNS(x) ((x) << S_FW_IQ_CMD_IQNS)
3944 #define G_FW_IQ_CMD_IQNS(x) (((x) >> S_FW_IQ_CMD_IQNS) & M_FW_IQ_CMD_IQNS)
3945 #define F_FW_IQ_CMD_IQNS V_FW_IQ_CMD_IQNS(1U)
3947 #define S_FW_IQ_CMD_IQRO 30
3948 #define M_FW_IQ_CMD_IQRO 0x1
3949 #define V_FW_IQ_CMD_IQRO(x) ((x) << S_FW_IQ_CMD_IQRO)
3950 #define G_FW_IQ_CMD_IQRO(x) (((x) >> S_FW_IQ_CMD_IQRO) & M_FW_IQ_CMD_IQRO)
3951 #define F_FW_IQ_CMD_IQRO V_FW_IQ_CMD_IQRO(1U)
3953 #define S_FW_IQ_CMD_IQFLINTIQHSEN 28
3954 #define M_FW_IQ_CMD_IQFLINTIQHSEN 0x3
3955 #define V_FW_IQ_CMD_IQFLINTIQHSEN(x) ((x) << S_FW_IQ_CMD_IQFLINTIQHSEN)
3956 #define G_FW_IQ_CMD_IQFLINTIQHSEN(x) \
3957 (((x) >> S_FW_IQ_CMD_IQFLINTIQHSEN) & M_FW_IQ_CMD_IQFLINTIQHSEN)
3959 #define S_FW_IQ_CMD_IQFLINTCONGEN 27
3960 #define M_FW_IQ_CMD_IQFLINTCONGEN 0x1
3961 #define V_FW_IQ_CMD_IQFLINTCONGEN(x) ((x) << S_FW_IQ_CMD_IQFLINTCONGEN)
3962 #define G_FW_IQ_CMD_IQFLINTCONGEN(x) \
3963 (((x) >> S_FW_IQ_CMD_IQFLINTCONGEN) & M_FW_IQ_CMD_IQFLINTCONGEN)
3964 #define F_FW_IQ_CMD_IQFLINTCONGEN V_FW_IQ_CMD_IQFLINTCONGEN(1U)
3966 #define S_FW_IQ_CMD_IQFLINTISCSIC 26
3967 #define M_FW_IQ_CMD_IQFLINTISCSIC 0x1
3968 #define V_FW_IQ_CMD_IQFLINTISCSIC(x) ((x) << S_FW_IQ_CMD_IQFLINTISCSIC)
3969 #define G_FW_IQ_CMD_IQFLINTISCSIC(x) \
3970 (((x) >> S_FW_IQ_CMD_IQFLINTISCSIC) & M_FW_IQ_CMD_IQFLINTISCSIC)
3971 #define F_FW_IQ_CMD_IQFLINTISCSIC V_FW_IQ_CMD_IQFLINTISCSIC(1U)
3973 #define S_FW_IQ_CMD_FL0CNGCHMAP 20
3974 #define M_FW_IQ_CMD_FL0CNGCHMAP 0xf
3975 #define V_FW_IQ_CMD_FL0CNGCHMAP(x) ((x) << S_FW_IQ_CMD_FL0CNGCHMAP)
3976 #define G_FW_IQ_CMD_FL0CNGCHMAP(x) \
3977 (((x) >> S_FW_IQ_CMD_FL0CNGCHMAP) & M_FW_IQ_CMD_FL0CNGCHMAP)
3979 #define S_FW_IQ_CMD_FL0CACHELOCK 15
3980 #define M_FW_IQ_CMD_FL0CACHELOCK 0x1
3981 #define V_FW_IQ_CMD_FL0CACHELOCK(x) ((x) << S_FW_IQ_CMD_FL0CACHELOCK)
3982 #define G_FW_IQ_CMD_FL0CACHELOCK(x) \
3983 (((x) >> S_FW_IQ_CMD_FL0CACHELOCK) & M_FW_IQ_CMD_FL0CACHELOCK)
3984 #define F_FW_IQ_CMD_FL0CACHELOCK V_FW_IQ_CMD_FL0CACHELOCK(1U)
3986 #define S_FW_IQ_CMD_FL0DBP 14
3987 #define M_FW_IQ_CMD_FL0DBP 0x1
3988 #define V_FW_IQ_CMD_FL0DBP(x) ((x) << S_FW_IQ_CMD_FL0DBP)
3989 #define G_FW_IQ_CMD_FL0DBP(x) \
3990 (((x) >> S_FW_IQ_CMD_FL0DBP) & M_FW_IQ_CMD_FL0DBP)
3991 #define F_FW_IQ_CMD_FL0DBP V_FW_IQ_CMD_FL0DBP(1U)
3993 #define S_FW_IQ_CMD_FL0DATANS 13
3994 #define M_FW_IQ_CMD_FL0DATANS 0x1
3995 #define V_FW_IQ_CMD_FL0DATANS(x) ((x) << S_FW_IQ_CMD_FL0DATANS)
3996 #define G_FW_IQ_CMD_FL0DATANS(x) \
3997 (((x) >> S_FW_IQ_CMD_FL0DATANS) & M_FW_IQ_CMD_FL0DATANS)
3998 #define F_FW_IQ_CMD_FL0DATANS V_FW_IQ_CMD_FL0DATANS(1U)
4000 #define S_FW_IQ_CMD_FL0DATARO 12
4001 #define M_FW_IQ_CMD_FL0DATARO 0x1
4002 #define V_FW_IQ_CMD_FL0DATARO(x) ((x) << S_FW_IQ_CMD_FL0DATARO)
4003 #define G_FW_IQ_CMD_FL0DATARO(x) \
4004 (((x) >> S_FW_IQ_CMD_FL0DATARO) & M_FW_IQ_CMD_FL0DATARO)
4005 #define F_FW_IQ_CMD_FL0DATARO V_FW_IQ_CMD_FL0DATARO(1U)
4007 #define S_FW_IQ_CMD_FL0CONGCIF 11
4008 #define M_FW_IQ_CMD_FL0CONGCIF 0x1
4009 #define V_FW_IQ_CMD_FL0CONGCIF(x) ((x) << S_FW_IQ_CMD_FL0CONGCIF)
4010 #define G_FW_IQ_CMD_FL0CONGCIF(x) \
4011 (((x) >> S_FW_IQ_CMD_FL0CONGCIF) & M_FW_IQ_CMD_FL0CONGCIF)
4012 #define F_FW_IQ_CMD_FL0CONGCIF V_FW_IQ_CMD_FL0CONGCIF(1U)
4014 #define S_FW_IQ_CMD_FL0ONCHIP 10
4015 #define M_FW_IQ_CMD_FL0ONCHIP 0x1
4016 #define V_FW_IQ_CMD_FL0ONCHIP(x) ((x) << S_FW_IQ_CMD_FL0ONCHIP)
4017 #define G_FW_IQ_CMD_FL0ONCHIP(x) \
4018 (((x) >> S_FW_IQ_CMD_FL0ONCHIP) & M_FW_IQ_CMD_FL0ONCHIP)
4019 #define F_FW_IQ_CMD_FL0ONCHIP V_FW_IQ_CMD_FL0ONCHIP(1U)
4021 #define S_FW_IQ_CMD_FL0STATUSPGNS 9
4022 #define M_FW_IQ_CMD_FL0STATUSPGNS 0x1
4023 #define V_FW_IQ_CMD_FL0STATUSPGNS(x) ((x) << S_FW_IQ_CMD_FL0STATUSPGNS)
4024 #define G_FW_IQ_CMD_FL0STATUSPGNS(x) \
4025 (((x) >> S_FW_IQ_CMD_FL0STATUSPGNS) & M_FW_IQ_CMD_FL0STATUSPGNS)
4026 #define F_FW_IQ_CMD_FL0STATUSPGNS V_FW_IQ_CMD_FL0STATUSPGNS(1U)
4028 #define S_FW_IQ_CMD_FL0STATUSPGRO 8
4029 #define M_FW_IQ_CMD_FL0STATUSPGRO 0x1
4030 #define V_FW_IQ_CMD_FL0STATUSPGRO(x) ((x) << S_FW_IQ_CMD_FL0STATUSPGRO)
4031 #define G_FW_IQ_CMD_FL0STATUSPGRO(x) \
4032 (((x) >> S_FW_IQ_CMD_FL0STATUSPGRO) & M_FW_IQ_CMD_FL0STATUSPGRO)
4033 #define F_FW_IQ_CMD_FL0STATUSPGRO V_FW_IQ_CMD_FL0STATUSPGRO(1U)
4035 #define S_FW_IQ_CMD_FL0FETCHNS 7
4036 #define M_FW_IQ_CMD_FL0FETCHNS 0x1
4037 #define V_FW_IQ_CMD_FL0FETCHNS(x) ((x) << S_FW_IQ_CMD_FL0FETCHNS)
4038 #define G_FW_IQ_CMD_FL0FETCHNS(x) \
4039 (((x) >> S_FW_IQ_CMD_FL0FETCHNS) & M_FW_IQ_CMD_FL0FETCHNS)
4040 #define F_FW_IQ_CMD_FL0FETCHNS V_FW_IQ_CMD_FL0FETCHNS(1U)
4042 #define S_FW_IQ_CMD_FL0FETCHRO 6
4043 #define M_FW_IQ_CMD_FL0FETCHRO 0x1
4044 #define V_FW_IQ_CMD_FL0FETCHRO(x) ((x) << S_FW_IQ_CMD_FL0FETCHRO)
4045 #define G_FW_IQ_CMD_FL0FETCHRO(x) \
4046 (((x) >> S_FW_IQ_CMD_FL0FETCHRO) & M_FW_IQ_CMD_FL0FETCHRO)
4047 #define F_FW_IQ_CMD_FL0FETCHRO V_FW_IQ_CMD_FL0FETCHRO(1U)
4049 #define S_FW_IQ_CMD_FL0HOSTFCMODE 4
4050 #define M_FW_IQ_CMD_FL0HOSTFCMODE 0x3
4051 #define V_FW_IQ_CMD_FL0HOSTFCMODE(x) ((x) << S_FW_IQ_CMD_FL0HOSTFCMODE)
4052 #define G_FW_IQ_CMD_FL0HOSTFCMODE(x) \
4053 (((x) >> S_FW_IQ_CMD_FL0HOSTFCMODE) & M_FW_IQ_CMD_FL0HOSTFCMODE)
4055 #define S_FW_IQ_CMD_FL0CPRIO 3
4056 #define M_FW_IQ_CMD_FL0CPRIO 0x1
4057 #define V_FW_IQ_CMD_FL0CPRIO(x) ((x) << S_FW_IQ_CMD_FL0CPRIO)
4058 #define G_FW_IQ_CMD_FL0CPRIO(x) \
4059 (((x) >> S_FW_IQ_CMD_FL0CPRIO) & M_FW_IQ_CMD_FL0CPRIO)
4060 #define F_FW_IQ_CMD_FL0CPRIO V_FW_IQ_CMD_FL0CPRIO(1U)
4062 #define S_FW_IQ_CMD_FL0PADEN 2
4063 #define M_FW_IQ_CMD_FL0PADEN 0x1
4064 #define V_FW_IQ_CMD_FL0PADEN(x) ((x) << S_FW_IQ_CMD_FL0PADEN)
4065 #define G_FW_IQ_CMD_FL0PADEN(x) \
4066 (((x) >> S_FW_IQ_CMD_FL0PADEN) & M_FW_IQ_CMD_FL0PADEN)
4067 #define F_FW_IQ_CMD_FL0PADEN V_FW_IQ_CMD_FL0PADEN(1U)
4069 #define S_FW_IQ_CMD_FL0PACKEN 1
4070 #define M_FW_IQ_CMD_FL0PACKEN 0x1
4071 #define V_FW_IQ_CMD_FL0PACKEN(x) ((x) << S_FW_IQ_CMD_FL0PACKEN)
4072 #define G_FW_IQ_CMD_FL0PACKEN(x) \
4073 (((x) >> S_FW_IQ_CMD_FL0PACKEN) & M_FW_IQ_CMD_FL0PACKEN)
4074 #define F_FW_IQ_CMD_FL0PACKEN V_FW_IQ_CMD_FL0PACKEN(1U)
4076 #define S_FW_IQ_CMD_FL0CONGEN 0
4077 #define M_FW_IQ_CMD_FL0CONGEN 0x1
4078 #define V_FW_IQ_CMD_FL0CONGEN(x) ((x) << S_FW_IQ_CMD_FL0CONGEN)
4079 #define G_FW_IQ_CMD_FL0CONGEN(x) \
4080 (((x) >> S_FW_IQ_CMD_FL0CONGEN) & M_FW_IQ_CMD_FL0CONGEN)
4081 #define F_FW_IQ_CMD_FL0CONGEN V_FW_IQ_CMD_FL0CONGEN(1U)
4083 #define S_FW_IQ_CMD_FL0DCAEN 15
4084 #define M_FW_IQ_CMD_FL0DCAEN 0x1
4085 #define V_FW_IQ_CMD_FL0DCAEN(x) ((x) << S_FW_IQ_CMD_FL0DCAEN)
4086 #define G_FW_IQ_CMD_FL0DCAEN(x) \
4087 (((x) >> S_FW_IQ_CMD_FL0DCAEN) & M_FW_IQ_CMD_FL0DCAEN)
4088 #define F_FW_IQ_CMD_FL0DCAEN V_FW_IQ_CMD_FL0DCAEN(1U)
4090 #define S_FW_IQ_CMD_FL0DCACPU 10
4091 #define M_FW_IQ_CMD_FL0DCACPU 0x1f
4092 #define V_FW_IQ_CMD_FL0DCACPU(x) ((x) << S_FW_IQ_CMD_FL0DCACPU)
4093 #define G_FW_IQ_CMD_FL0DCACPU(x) \
4094 (((x) >> S_FW_IQ_CMD_FL0DCACPU) & M_FW_IQ_CMD_FL0DCACPU)
4096 #define S_FW_IQ_CMD_FL0FBMIN 7
4097 #define M_FW_IQ_CMD_FL0FBMIN 0x7
4098 #define V_FW_IQ_CMD_FL0FBMIN(x) ((x) << S_FW_IQ_CMD_FL0FBMIN)
4099 #define G_FW_IQ_CMD_FL0FBMIN(x) \
4100 (((x) >> S_FW_IQ_CMD_FL0FBMIN) & M_FW_IQ_CMD_FL0FBMIN)
4102 #define S_FW_IQ_CMD_FL0FBMAX 4
4103 #define M_FW_IQ_CMD_FL0FBMAX 0x7
4104 #define V_FW_IQ_CMD_FL0FBMAX(x) ((x) << S_FW_IQ_CMD_FL0FBMAX)
4105 #define G_FW_IQ_CMD_FL0FBMAX(x) \
4106 (((x) >> S_FW_IQ_CMD_FL0FBMAX) & M_FW_IQ_CMD_FL0FBMAX)
4108 #define S_FW_IQ_CMD_FL0CIDXFTHRESHO 3
4109 #define M_FW_IQ_CMD_FL0CIDXFTHRESHO 0x1
4110 #define V_FW_IQ_CMD_FL0CIDXFTHRESHO(x) ((x) << S_FW_IQ_CMD_FL0CIDXFTHRESHO)
4111 #define G_FW_IQ_CMD_FL0CIDXFTHRESHO(x) \
4112 (((x) >> S_FW_IQ_CMD_FL0CIDXFTHRESHO) & M_FW_IQ_CMD_FL0CIDXFTHRESHO)
4113 #define F_FW_IQ_CMD_FL0CIDXFTHRESHO V_FW_IQ_CMD_FL0CIDXFTHRESHO(1U)
4115 #define S_FW_IQ_CMD_FL0CIDXFTHRESH 0
4116 #define M_FW_IQ_CMD_FL0CIDXFTHRESH 0x7
4117 #define V_FW_IQ_CMD_FL0CIDXFTHRESH(x) ((x) << S_FW_IQ_CMD_FL0CIDXFTHRESH)
4118 #define G_FW_IQ_CMD_FL0CIDXFTHRESH(x) \
4119 (((x) >> S_FW_IQ_CMD_FL0CIDXFTHRESH) & M_FW_IQ_CMD_FL0CIDXFTHRESH)
4121 #define S_FW_IQ_CMD_FL1CNGCHMAP 20
4122 #define M_FW_IQ_CMD_FL1CNGCHMAP 0xf
4123 #define V_FW_IQ_CMD_FL1CNGCHMAP(x) ((x) << S_FW_IQ_CMD_FL1CNGCHMAP)
4124 #define G_FW_IQ_CMD_FL1CNGCHMAP(x) \
4125 (((x) >> S_FW_IQ_CMD_FL1CNGCHMAP) & M_FW_IQ_CMD_FL1CNGCHMAP)
4127 #define S_FW_IQ_CMD_FL1CACHELOCK 15
4128 #define M_FW_IQ_CMD_FL1CACHELOCK 0x1
4129 #define V_FW_IQ_CMD_FL1CACHELOCK(x) ((x) << S_FW_IQ_CMD_FL1CACHELOCK)
4130 #define G_FW_IQ_CMD_FL1CACHELOCK(x) \
4131 (((x) >> S_FW_IQ_CMD_FL1CACHELOCK) & M_FW_IQ_CMD_FL1CACHELOCK)
4132 #define F_FW_IQ_CMD_FL1CACHELOCK V_FW_IQ_CMD_FL1CACHELOCK(1U)
4134 #define S_FW_IQ_CMD_FL1DBP 14
4135 #define M_FW_IQ_CMD_FL1DBP 0x1
4136 #define V_FW_IQ_CMD_FL1DBP(x) ((x) << S_FW_IQ_CMD_FL1DBP)
4137 #define G_FW_IQ_CMD_FL1DBP(x) \
4138 (((x) >> S_FW_IQ_CMD_FL1DBP) & M_FW_IQ_CMD_FL1DBP)
4139 #define F_FW_IQ_CMD_FL1DBP V_FW_IQ_CMD_FL1DBP(1U)
4141 #define S_FW_IQ_CMD_FL1DATANS 13
4142 #define M_FW_IQ_CMD_FL1DATANS 0x1
4143 #define V_FW_IQ_CMD_FL1DATANS(x) ((x) << S_FW_IQ_CMD_FL1DATANS)
4144 #define G_FW_IQ_CMD_FL1DATANS(x) \
4145 (((x) >> S_FW_IQ_CMD_FL1DATANS) & M_FW_IQ_CMD_FL1DATANS)
4146 #define F_FW_IQ_CMD_FL1DATANS V_FW_IQ_CMD_FL1DATANS(1U)
4148 #define S_FW_IQ_CMD_FL1DATARO 12
4149 #define M_FW_IQ_CMD_FL1DATARO 0x1
4150 #define V_FW_IQ_CMD_FL1DATARO(x) ((x) << S_FW_IQ_CMD_FL1DATARO)
4151 #define G_FW_IQ_CMD_FL1DATARO(x) \
4152 (((x) >> S_FW_IQ_CMD_FL1DATARO) & M_FW_IQ_CMD_FL1DATARO)
4153 #define F_FW_IQ_CMD_FL1DATARO V_FW_IQ_CMD_FL1DATARO(1U)
4155 #define S_FW_IQ_CMD_FL1CONGCIF 11
4156 #define M_FW_IQ_CMD_FL1CONGCIF 0x1
4157 #define V_FW_IQ_CMD_FL1CONGCIF(x) ((x) << S_FW_IQ_CMD_FL1CONGCIF)
4158 #define G_FW_IQ_CMD_FL1CONGCIF(x) \
4159 (((x) >> S_FW_IQ_CMD_FL1CONGCIF) & M_FW_IQ_CMD_FL1CONGCIF)
4160 #define F_FW_IQ_CMD_FL1CONGCIF V_FW_IQ_CMD_FL1CONGCIF(1U)
4162 #define S_FW_IQ_CMD_FL1ONCHIP 10
4163 #define M_FW_IQ_CMD_FL1ONCHIP 0x1
4164 #define V_FW_IQ_CMD_FL1ONCHIP(x) ((x) << S_FW_IQ_CMD_FL1ONCHIP)
4165 #define G_FW_IQ_CMD_FL1ONCHIP(x) \
4166 (((x) >> S_FW_IQ_CMD_FL1ONCHIP) & M_FW_IQ_CMD_FL1ONCHIP)
4167 #define F_FW_IQ_CMD_FL1ONCHIP V_FW_IQ_CMD_FL1ONCHIP(1U)
4169 #define S_FW_IQ_CMD_FL1STATUSPGNS 9
4170 #define M_FW_IQ_CMD_FL1STATUSPGNS 0x1
4171 #define V_FW_IQ_CMD_FL1STATUSPGNS(x) ((x) << S_FW_IQ_CMD_FL1STATUSPGNS)
4172 #define G_FW_IQ_CMD_FL1STATUSPGNS(x) \
4173 (((x) >> S_FW_IQ_CMD_FL1STATUSPGNS) & M_FW_IQ_CMD_FL1STATUSPGNS)
4174 #define F_FW_IQ_CMD_FL1STATUSPGNS V_FW_IQ_CMD_FL1STATUSPGNS(1U)
4176 #define S_FW_IQ_CMD_FL1STATUSPGRO 8
4177 #define M_FW_IQ_CMD_FL1STATUSPGRO 0x1
4178 #define V_FW_IQ_CMD_FL1STATUSPGRO(x) ((x) << S_FW_IQ_CMD_FL1STATUSPGRO)
4179 #define G_FW_IQ_CMD_FL1STATUSPGRO(x) \
4180 (((x) >> S_FW_IQ_CMD_FL1STATUSPGRO) & M_FW_IQ_CMD_FL1STATUSPGRO)
4181 #define F_FW_IQ_CMD_FL1STATUSPGRO V_FW_IQ_CMD_FL1STATUSPGRO(1U)
4183 #define S_FW_IQ_CMD_FL1FETCHNS 7
4184 #define M_FW_IQ_CMD_FL1FETCHNS 0x1
4185 #define V_FW_IQ_CMD_FL1FETCHNS(x) ((x) << S_FW_IQ_CMD_FL1FETCHNS)
4186 #define G_FW_IQ_CMD_FL1FETCHNS(x) \
4187 (((x) >> S_FW_IQ_CMD_FL1FETCHNS) & M_FW_IQ_CMD_FL1FETCHNS)
4188 #define F_FW_IQ_CMD_FL1FETCHNS V_FW_IQ_CMD_FL1FETCHNS(1U)
4190 #define S_FW_IQ_CMD_FL1FETCHRO 6
4191 #define M_FW_IQ_CMD_FL1FETCHRO 0x1
4192 #define V_FW_IQ_CMD_FL1FETCHRO(x) ((x) << S_FW_IQ_CMD_FL1FETCHRO)
4193 #define G_FW_IQ_CMD_FL1FETCHRO(x) \
4194 (((x) >> S_FW_IQ_CMD_FL1FETCHRO) & M_FW_IQ_CMD_FL1FETCHRO)
4195 #define F_FW_IQ_CMD_FL1FETCHRO V_FW_IQ_CMD_FL1FETCHRO(1U)
4197 #define S_FW_IQ_CMD_FL1HOSTFCMODE 4
4198 #define M_FW_IQ_CMD_FL1HOSTFCMODE 0x3
4199 #define V_FW_IQ_CMD_FL1HOSTFCMODE(x) ((x) << S_FW_IQ_CMD_FL1HOSTFCMODE)
4200 #define G_FW_IQ_CMD_FL1HOSTFCMODE(x) \
4201 (((x) >> S_FW_IQ_CMD_FL1HOSTFCMODE) & M_FW_IQ_CMD_FL1HOSTFCMODE)
4203 #define S_FW_IQ_CMD_FL1CPRIO 3
4204 #define M_FW_IQ_CMD_FL1CPRIO 0x1
4205 #define V_FW_IQ_CMD_FL1CPRIO(x) ((x) << S_FW_IQ_CMD_FL1CPRIO)
4206 #define G_FW_IQ_CMD_FL1CPRIO(x) \
4207 (((x) >> S_FW_IQ_CMD_FL1CPRIO) & M_FW_IQ_CMD_FL1CPRIO)
4208 #define F_FW_IQ_CMD_FL1CPRIO V_FW_IQ_CMD_FL1CPRIO(1U)
4210 #define S_FW_IQ_CMD_FL1PADEN 2
4211 #define M_FW_IQ_CMD_FL1PADEN 0x1
4212 #define V_FW_IQ_CMD_FL1PADEN(x) ((x) << S_FW_IQ_CMD_FL1PADEN)
4213 #define G_FW_IQ_CMD_FL1PADEN(x) \
4214 (((x) >> S_FW_IQ_CMD_FL1PADEN) & M_FW_IQ_CMD_FL1PADEN)
4215 #define F_FW_IQ_CMD_FL1PADEN V_FW_IQ_CMD_FL1PADEN(1U)
4217 #define S_FW_IQ_CMD_FL1PACKEN 1
4218 #define M_FW_IQ_CMD_FL1PACKEN 0x1
4219 #define V_FW_IQ_CMD_FL1PACKEN(x) ((x) << S_FW_IQ_CMD_FL1PACKEN)
4220 #define G_FW_IQ_CMD_FL1PACKEN(x) \
4221 (((x) >> S_FW_IQ_CMD_FL1PACKEN) & M_FW_IQ_CMD_FL1PACKEN)
4222 #define F_FW_IQ_CMD_FL1PACKEN V_FW_IQ_CMD_FL1PACKEN(1U)
4224 #define S_FW_IQ_CMD_FL1CONGEN 0
4225 #define M_FW_IQ_CMD_FL1CONGEN 0x1
4226 #define V_FW_IQ_CMD_FL1CONGEN(x) ((x) << S_FW_IQ_CMD_FL1CONGEN)
4227 #define G_FW_IQ_CMD_FL1CONGEN(x) \
4228 (((x) >> S_FW_IQ_CMD_FL1CONGEN) & M_FW_IQ_CMD_FL1CONGEN)
4229 #define F_FW_IQ_CMD_FL1CONGEN V_FW_IQ_CMD_FL1CONGEN(1U)
4231 #define S_FW_IQ_CMD_FL1DCAEN 15
4232 #define M_FW_IQ_CMD_FL1DCAEN 0x1
4233 #define V_FW_IQ_CMD_FL1DCAEN(x) ((x) << S_FW_IQ_CMD_FL1DCAEN)
4234 #define G_FW_IQ_CMD_FL1DCAEN(x) \
4235 (((x) >> S_FW_IQ_CMD_FL1DCAEN) & M_FW_IQ_CMD_FL1DCAEN)
4236 #define F_FW_IQ_CMD_FL1DCAEN V_FW_IQ_CMD_FL1DCAEN(1U)
4238 #define S_FW_IQ_CMD_FL1DCACPU 10
4239 #define M_FW_IQ_CMD_FL1DCACPU 0x1f
4240 #define V_FW_IQ_CMD_FL1DCACPU(x) ((x) << S_FW_IQ_CMD_FL1DCACPU)
4241 #define G_FW_IQ_CMD_FL1DCACPU(x) \
4242 (((x) >> S_FW_IQ_CMD_FL1DCACPU) & M_FW_IQ_CMD_FL1DCACPU)
4244 #define S_FW_IQ_CMD_FL1FBMIN 7
4245 #define M_FW_IQ_CMD_FL1FBMIN 0x7
4246 #define V_FW_IQ_CMD_FL1FBMIN(x) ((x) << S_FW_IQ_CMD_FL1FBMIN)
4247 #define G_FW_IQ_CMD_FL1FBMIN(x) \
4248 (((x) >> S_FW_IQ_CMD_FL1FBMIN) & M_FW_IQ_CMD_FL1FBMIN)
4250 #define S_FW_IQ_CMD_FL1FBMAX 4
4251 #define M_FW_IQ_CMD_FL1FBMAX 0x7
4252 #define V_FW_IQ_CMD_FL1FBMAX(x) ((x) << S_FW_IQ_CMD_FL1FBMAX)
4253 #define G_FW_IQ_CMD_FL1FBMAX(x) \
4254 (((x) >> S_FW_IQ_CMD_FL1FBMAX) & M_FW_IQ_CMD_FL1FBMAX)
4256 #define S_FW_IQ_CMD_FL1CIDXFTHRESHO 3
4257 #define M_FW_IQ_CMD_FL1CIDXFTHRESHO 0x1
4258 #define V_FW_IQ_CMD_FL1CIDXFTHRESHO(x) ((x) << S_FW_IQ_CMD_FL1CIDXFTHRESHO)
4259 #define G_FW_IQ_CMD_FL1CIDXFTHRESHO(x) \
4260 (((x) >> S_FW_IQ_CMD_FL1CIDXFTHRESHO) & M_FW_IQ_CMD_FL1CIDXFTHRESHO)
4261 #define F_FW_IQ_CMD_FL1CIDXFTHRESHO V_FW_IQ_CMD_FL1CIDXFTHRESHO(1U)
4263 #define S_FW_IQ_CMD_FL1CIDXFTHRESH 0
4264 #define M_FW_IQ_CMD_FL1CIDXFTHRESH 0x7
4265 #define V_FW_IQ_CMD_FL1CIDXFTHRESH(x) ((x) << S_FW_IQ_CMD_FL1CIDXFTHRESH)
4266 #define G_FW_IQ_CMD_FL1CIDXFTHRESH(x) \
4267 (((x) >> S_FW_IQ_CMD_FL1CIDXFTHRESH) & M_FW_IQ_CMD_FL1CIDXFTHRESH)
4269 struct fw_eq_mngt_cmd {
4271 __be32 alloc_to_len16;
4272 __be32 cmpliqid_eqid;
4273 __be32 physeqid_pkd;
4274 __be32 fetchszm_to_iqid;
4275 __be32 dcaen_to_eqsize;
4279 #define S_FW_EQ_MNGT_CMD_PFN 8
4280 #define M_FW_EQ_MNGT_CMD_PFN 0x7
4281 #define V_FW_EQ_MNGT_CMD_PFN(x) ((x) << S_FW_EQ_MNGT_CMD_PFN)
4282 #define G_FW_EQ_MNGT_CMD_PFN(x) \
4283 (((x) >> S_FW_EQ_MNGT_CMD_PFN) & M_FW_EQ_MNGT_CMD_PFN)
4285 #define S_FW_EQ_MNGT_CMD_VFN 0
4286 #define M_FW_EQ_MNGT_CMD_VFN 0xff
4287 #define V_FW_EQ_MNGT_CMD_VFN(x) ((x) << S_FW_EQ_MNGT_CMD_VFN)
4288 #define G_FW_EQ_MNGT_CMD_VFN(x) \
4289 (((x) >> S_FW_EQ_MNGT_CMD_VFN) & M_FW_EQ_MNGT_CMD_VFN)
4291 #define S_FW_EQ_MNGT_CMD_ALLOC 31
4292 #define M_FW_EQ_MNGT_CMD_ALLOC 0x1
4293 #define V_FW_EQ_MNGT_CMD_ALLOC(x) ((x) << S_FW_EQ_MNGT_CMD_ALLOC)
4294 #define G_FW_EQ_MNGT_CMD_ALLOC(x) \
4295 (((x) >> S_FW_EQ_MNGT_CMD_ALLOC) & M_FW_EQ_MNGT_CMD_ALLOC)
4296 #define F_FW_EQ_MNGT_CMD_ALLOC V_FW_EQ_MNGT_CMD_ALLOC(1U)
4298 #define S_FW_EQ_MNGT_CMD_FREE 30
4299 #define M_FW_EQ_MNGT_CMD_FREE 0x1
4300 #define V_FW_EQ_MNGT_CMD_FREE(x) ((x) << S_FW_EQ_MNGT_CMD_FREE)
4301 #define G_FW_EQ_MNGT_CMD_FREE(x) \
4302 (((x) >> S_FW_EQ_MNGT_CMD_FREE) & M_FW_EQ_MNGT_CMD_FREE)
4303 #define F_FW_EQ_MNGT_CMD_FREE V_FW_EQ_MNGT_CMD_FREE(1U)
4305 #define S_FW_EQ_MNGT_CMD_MODIFY 29
4306 #define M_FW_EQ_MNGT_CMD_MODIFY 0x1
4307 #define V_FW_EQ_MNGT_CMD_MODIFY(x) ((x) << S_FW_EQ_MNGT_CMD_MODIFY)
4308 #define G_FW_EQ_MNGT_CMD_MODIFY(x) \
4309 (((x) >> S_FW_EQ_MNGT_CMD_MODIFY) & M_FW_EQ_MNGT_CMD_MODIFY)
4310 #define F_FW_EQ_MNGT_CMD_MODIFY V_FW_EQ_MNGT_CMD_MODIFY(1U)
4312 #define S_FW_EQ_MNGT_CMD_EQSTART 28
4313 #define M_FW_EQ_MNGT_CMD_EQSTART 0x1
4314 #define V_FW_EQ_MNGT_CMD_EQSTART(x) ((x) << S_FW_EQ_MNGT_CMD_EQSTART)
4315 #define G_FW_EQ_MNGT_CMD_EQSTART(x) \
4316 (((x) >> S_FW_EQ_MNGT_CMD_EQSTART) & M_FW_EQ_MNGT_CMD_EQSTART)
4317 #define F_FW_EQ_MNGT_CMD_EQSTART V_FW_EQ_MNGT_CMD_EQSTART(1U)
4319 #define S_FW_EQ_MNGT_CMD_EQSTOP 27
4320 #define M_FW_EQ_MNGT_CMD_EQSTOP 0x1
4321 #define V_FW_EQ_MNGT_CMD_EQSTOP(x) ((x) << S_FW_EQ_MNGT_CMD_EQSTOP)
4322 #define G_FW_EQ_MNGT_CMD_EQSTOP(x) \
4323 (((x) >> S_FW_EQ_MNGT_CMD_EQSTOP) & M_FW_EQ_MNGT_CMD_EQSTOP)
4324 #define F_FW_EQ_MNGT_CMD_EQSTOP V_FW_EQ_MNGT_CMD_EQSTOP(1U)
4326 #define S_FW_EQ_MNGT_CMD_CMPLIQID 20
4327 #define M_FW_EQ_MNGT_CMD_CMPLIQID 0xfff
4328 #define V_FW_EQ_MNGT_CMD_CMPLIQID(x) ((x) << S_FW_EQ_MNGT_CMD_CMPLIQID)
4329 #define G_FW_EQ_MNGT_CMD_CMPLIQID(x) \
4330 (((x) >> S_FW_EQ_MNGT_CMD_CMPLIQID) & M_FW_EQ_MNGT_CMD_CMPLIQID)
4332 #define S_FW_EQ_MNGT_CMD_EQID 0
4333 #define M_FW_EQ_MNGT_CMD_EQID 0xfffff
4334 #define V_FW_EQ_MNGT_CMD_EQID(x) ((x) << S_FW_EQ_MNGT_CMD_EQID)
4335 #define G_FW_EQ_MNGT_CMD_EQID(x) \
4336 (((x) >> S_FW_EQ_MNGT_CMD_EQID) & M_FW_EQ_MNGT_CMD_EQID)
4338 #define S_FW_EQ_MNGT_CMD_PHYSEQID 0
4339 #define M_FW_EQ_MNGT_CMD_PHYSEQID 0xfffff
4340 #define V_FW_EQ_MNGT_CMD_PHYSEQID(x) ((x) << S_FW_EQ_MNGT_CMD_PHYSEQID)
4341 #define G_FW_EQ_MNGT_CMD_PHYSEQID(x) \
4342 (((x) >> S_FW_EQ_MNGT_CMD_PHYSEQID) & M_FW_EQ_MNGT_CMD_PHYSEQID)
4344 #define S_FW_EQ_MNGT_CMD_FETCHSZM 26
4345 #define M_FW_EQ_MNGT_CMD_FETCHSZM 0x1
4346 #define V_FW_EQ_MNGT_CMD_FETCHSZM(x) ((x) << S_FW_EQ_MNGT_CMD_FETCHSZM)
4347 #define G_FW_EQ_MNGT_CMD_FETCHSZM(x) \
4348 (((x) >> S_FW_EQ_MNGT_CMD_FETCHSZM) & M_FW_EQ_MNGT_CMD_FETCHSZM)
4349 #define F_FW_EQ_MNGT_CMD_FETCHSZM V_FW_EQ_MNGT_CMD_FETCHSZM(1U)
4351 #define S_FW_EQ_MNGT_CMD_STATUSPGNS 25
4352 #define M_FW_EQ_MNGT_CMD_STATUSPGNS 0x1
4353 #define V_FW_EQ_MNGT_CMD_STATUSPGNS(x) ((x) << S_FW_EQ_MNGT_CMD_STATUSPGNS)
4354 #define G_FW_EQ_MNGT_CMD_STATUSPGNS(x) \
4355 (((x) >> S_FW_EQ_MNGT_CMD_STATUSPGNS) & M_FW_EQ_MNGT_CMD_STATUSPGNS)
4356 #define F_FW_EQ_MNGT_CMD_STATUSPGNS V_FW_EQ_MNGT_CMD_STATUSPGNS(1U)
4358 #define S_FW_EQ_MNGT_CMD_STATUSPGRO 24
4359 #define M_FW_EQ_MNGT_CMD_STATUSPGRO 0x1
4360 #define V_FW_EQ_MNGT_CMD_STATUSPGRO(x) ((x) << S_FW_EQ_MNGT_CMD_STATUSPGRO)
4361 #define G_FW_EQ_MNGT_CMD_STATUSPGRO(x) \
4362 (((x) >> S_FW_EQ_MNGT_CMD_STATUSPGRO) & M_FW_EQ_MNGT_CMD_STATUSPGRO)
4363 #define F_FW_EQ_MNGT_CMD_STATUSPGRO V_FW_EQ_MNGT_CMD_STATUSPGRO(1U)
4365 #define S_FW_EQ_MNGT_CMD_FETCHNS 23
4366 #define M_FW_EQ_MNGT_CMD_FETCHNS 0x1
4367 #define V_FW_EQ_MNGT_CMD_FETCHNS(x) ((x) << S_FW_EQ_MNGT_CMD_FETCHNS)
4368 #define G_FW_EQ_MNGT_CMD_FETCHNS(x) \
4369 (((x) >> S_FW_EQ_MNGT_CMD_FETCHNS) & M_FW_EQ_MNGT_CMD_FETCHNS)
4370 #define F_FW_EQ_MNGT_CMD_FETCHNS V_FW_EQ_MNGT_CMD_FETCHNS(1U)
4372 #define S_FW_EQ_MNGT_CMD_FETCHRO 22
4373 #define M_FW_EQ_MNGT_CMD_FETCHRO 0x1
4374 #define V_FW_EQ_MNGT_CMD_FETCHRO(x) ((x) << S_FW_EQ_MNGT_CMD_FETCHRO)
4375 #define G_FW_EQ_MNGT_CMD_FETCHRO(x) \
4376 (((x) >> S_FW_EQ_MNGT_CMD_FETCHRO) & M_FW_EQ_MNGT_CMD_FETCHRO)
4377 #define F_FW_EQ_MNGT_CMD_FETCHRO V_FW_EQ_MNGT_CMD_FETCHRO(1U)
4379 #define S_FW_EQ_MNGT_CMD_HOSTFCMODE 20
4380 #define M_FW_EQ_MNGT_CMD_HOSTFCMODE 0x3
4381 #define V_FW_EQ_MNGT_CMD_HOSTFCMODE(x) ((x) << S_FW_EQ_MNGT_CMD_HOSTFCMODE)
4382 #define G_FW_EQ_MNGT_CMD_HOSTFCMODE(x) \
4383 (((x) >> S_FW_EQ_MNGT_CMD_HOSTFCMODE) & M_FW_EQ_MNGT_CMD_HOSTFCMODE)
4385 #define S_FW_EQ_MNGT_CMD_CPRIO 19
4386 #define M_FW_EQ_MNGT_CMD_CPRIO 0x1
4387 #define V_FW_EQ_MNGT_CMD_CPRIO(x) ((x) << S_FW_EQ_MNGT_CMD_CPRIO)
4388 #define G_FW_EQ_MNGT_CMD_CPRIO(x) \
4389 (((x) >> S_FW_EQ_MNGT_CMD_CPRIO) & M_FW_EQ_MNGT_CMD_CPRIO)
4390 #define F_FW_EQ_MNGT_CMD_CPRIO V_FW_EQ_MNGT_CMD_CPRIO(1U)
4392 #define S_FW_EQ_MNGT_CMD_ONCHIP 18
4393 #define M_FW_EQ_MNGT_CMD_ONCHIP 0x1
4394 #define V_FW_EQ_MNGT_CMD_ONCHIP(x) ((x) << S_FW_EQ_MNGT_CMD_ONCHIP)
4395 #define G_FW_EQ_MNGT_CMD_ONCHIP(x) \
4396 (((x) >> S_FW_EQ_MNGT_CMD_ONCHIP) & M_FW_EQ_MNGT_CMD_ONCHIP)
4397 #define F_FW_EQ_MNGT_CMD_ONCHIP V_FW_EQ_MNGT_CMD_ONCHIP(1U)
4399 #define S_FW_EQ_MNGT_CMD_PCIECHN 16
4400 #define M_FW_EQ_MNGT_CMD_PCIECHN 0x3
4401 #define V_FW_EQ_MNGT_CMD_PCIECHN(x) ((x) << S_FW_EQ_MNGT_CMD_PCIECHN)
4402 #define G_FW_EQ_MNGT_CMD_PCIECHN(x) \
4403 (((x) >> S_FW_EQ_MNGT_CMD_PCIECHN) & M_FW_EQ_MNGT_CMD_PCIECHN)
4405 #define S_FW_EQ_MNGT_CMD_IQID 0
4406 #define M_FW_EQ_MNGT_CMD_IQID 0xffff
4407 #define V_FW_EQ_MNGT_CMD_IQID(x) ((x) << S_FW_EQ_MNGT_CMD_IQID)
4408 #define G_FW_EQ_MNGT_CMD_IQID(x) \
4409 (((x) >> S_FW_EQ_MNGT_CMD_IQID) & M_FW_EQ_MNGT_CMD_IQID)
4411 #define S_FW_EQ_MNGT_CMD_DCAEN 31
4412 #define M_FW_EQ_MNGT_CMD_DCAEN 0x1
4413 #define V_FW_EQ_MNGT_CMD_DCAEN(x) ((x) << S_FW_EQ_MNGT_CMD_DCAEN)
4414 #define G_FW_EQ_MNGT_CMD_DCAEN(x) \
4415 (((x) >> S_FW_EQ_MNGT_CMD_DCAEN) & M_FW_EQ_MNGT_CMD_DCAEN)
4416 #define F_FW_EQ_MNGT_CMD_DCAEN V_FW_EQ_MNGT_CMD_DCAEN(1U)
4418 #define S_FW_EQ_MNGT_CMD_DCACPU 26
4419 #define M_FW_EQ_MNGT_CMD_DCACPU 0x1f
4420 #define V_FW_EQ_MNGT_CMD_DCACPU(x) ((x) << S_FW_EQ_MNGT_CMD_DCACPU)
4421 #define G_FW_EQ_MNGT_CMD_DCACPU(x) \
4422 (((x) >> S_FW_EQ_MNGT_CMD_DCACPU) & M_FW_EQ_MNGT_CMD_DCACPU)
4424 #define S_FW_EQ_MNGT_CMD_FBMIN 23
4425 #define M_FW_EQ_MNGT_CMD_FBMIN 0x7
4426 #define V_FW_EQ_MNGT_CMD_FBMIN(x) ((x) << S_FW_EQ_MNGT_CMD_FBMIN)
4427 #define G_FW_EQ_MNGT_CMD_FBMIN(x) \
4428 (((x) >> S_FW_EQ_MNGT_CMD_FBMIN) & M_FW_EQ_MNGT_CMD_FBMIN)
4430 #define S_FW_EQ_MNGT_CMD_FBMAX 20
4431 #define M_FW_EQ_MNGT_CMD_FBMAX 0x7
4432 #define V_FW_EQ_MNGT_CMD_FBMAX(x) ((x) << S_FW_EQ_MNGT_CMD_FBMAX)
4433 #define G_FW_EQ_MNGT_CMD_FBMAX(x) \
4434 (((x) >> S_FW_EQ_MNGT_CMD_FBMAX) & M_FW_EQ_MNGT_CMD_FBMAX)
4436 #define S_FW_EQ_MNGT_CMD_CIDXFTHRESHO 19
4437 #define M_FW_EQ_MNGT_CMD_CIDXFTHRESHO 0x1
4438 #define V_FW_EQ_MNGT_CMD_CIDXFTHRESHO(x) \
4439 ((x) << S_FW_EQ_MNGT_CMD_CIDXFTHRESHO)
4440 #define G_FW_EQ_MNGT_CMD_CIDXFTHRESHO(x) \
4441 (((x) >> S_FW_EQ_MNGT_CMD_CIDXFTHRESHO) & M_FW_EQ_MNGT_CMD_CIDXFTHRESHO)
4442 #define F_FW_EQ_MNGT_CMD_CIDXFTHRESHO V_FW_EQ_MNGT_CMD_CIDXFTHRESHO(1U)
4444 #define S_FW_EQ_MNGT_CMD_CIDXFTHRESH 16
4445 #define M_FW_EQ_MNGT_CMD_CIDXFTHRESH 0x7
4446 #define V_FW_EQ_MNGT_CMD_CIDXFTHRESH(x) ((x) << S_FW_EQ_MNGT_CMD_CIDXFTHRESH)
4447 #define G_FW_EQ_MNGT_CMD_CIDXFTHRESH(x) \
4448 (((x) >> S_FW_EQ_MNGT_CMD_CIDXFTHRESH) & M_FW_EQ_MNGT_CMD_CIDXFTHRESH)
4450 #define S_FW_EQ_MNGT_CMD_EQSIZE 0
4451 #define M_FW_EQ_MNGT_CMD_EQSIZE 0xffff
4452 #define V_FW_EQ_MNGT_CMD_EQSIZE(x) ((x) << S_FW_EQ_MNGT_CMD_EQSIZE)
4453 #define G_FW_EQ_MNGT_CMD_EQSIZE(x) \
4454 (((x) >> S_FW_EQ_MNGT_CMD_EQSIZE) & M_FW_EQ_MNGT_CMD_EQSIZE)
4456 struct fw_eq_eth_cmd {
4458 __be32 alloc_to_len16;
4460 __be32 physeqid_pkd;
4461 __be32 fetchszm_to_iqid;
4462 __be32 dcaen_to_eqsize;
4469 #define S_FW_EQ_ETH_CMD_PFN 8
4470 #define M_FW_EQ_ETH_CMD_PFN 0x7
4471 #define V_FW_EQ_ETH_CMD_PFN(x) ((x) << S_FW_EQ_ETH_CMD_PFN)
4472 #define G_FW_EQ_ETH_CMD_PFN(x) \
4473 (((x) >> S_FW_EQ_ETH_CMD_PFN) & M_FW_EQ_ETH_CMD_PFN)
4475 #define S_FW_EQ_ETH_CMD_VFN 0
4476 #define M_FW_EQ_ETH_CMD_VFN 0xff
4477 #define V_FW_EQ_ETH_CMD_VFN(x) ((x) << S_FW_EQ_ETH_CMD_VFN)
4478 #define G_FW_EQ_ETH_CMD_VFN(x) \
4479 (((x) >> S_FW_EQ_ETH_CMD_VFN) & M_FW_EQ_ETH_CMD_VFN)
4481 #define S_FW_EQ_ETH_CMD_ALLOC 31
4482 #define M_FW_EQ_ETH_CMD_ALLOC 0x1
4483 #define V_FW_EQ_ETH_CMD_ALLOC(x) ((x) << S_FW_EQ_ETH_CMD_ALLOC)
4484 #define G_FW_EQ_ETH_CMD_ALLOC(x) \
4485 (((x) >> S_FW_EQ_ETH_CMD_ALLOC) & M_FW_EQ_ETH_CMD_ALLOC)
4486 #define F_FW_EQ_ETH_CMD_ALLOC V_FW_EQ_ETH_CMD_ALLOC(1U)
4488 #define S_FW_EQ_ETH_CMD_FREE 30
4489 #define M_FW_EQ_ETH_CMD_FREE 0x1
4490 #define V_FW_EQ_ETH_CMD_FREE(x) ((x) << S_FW_EQ_ETH_CMD_FREE)
4491 #define G_FW_EQ_ETH_CMD_FREE(x) \
4492 (((x) >> S_FW_EQ_ETH_CMD_FREE) & M_FW_EQ_ETH_CMD_FREE)
4493 #define F_FW_EQ_ETH_CMD_FREE V_FW_EQ_ETH_CMD_FREE(1U)
4495 #define S_FW_EQ_ETH_CMD_MODIFY 29
4496 #define M_FW_EQ_ETH_CMD_MODIFY 0x1
4497 #define V_FW_EQ_ETH_CMD_MODIFY(x) ((x) << S_FW_EQ_ETH_CMD_MODIFY)
4498 #define G_FW_EQ_ETH_CMD_MODIFY(x) \
4499 (((x) >> S_FW_EQ_ETH_CMD_MODIFY) & M_FW_EQ_ETH_CMD_MODIFY)
4500 #define F_FW_EQ_ETH_CMD_MODIFY V_FW_EQ_ETH_CMD_MODIFY(1U)
4502 #define S_FW_EQ_ETH_CMD_EQSTART 28
4503 #define M_FW_EQ_ETH_CMD_EQSTART 0x1
4504 #define V_FW_EQ_ETH_CMD_EQSTART(x) ((x) << S_FW_EQ_ETH_CMD_EQSTART)
4505 #define G_FW_EQ_ETH_CMD_EQSTART(x) \
4506 (((x) >> S_FW_EQ_ETH_CMD_EQSTART) & M_FW_EQ_ETH_CMD_EQSTART)
4507 #define F_FW_EQ_ETH_CMD_EQSTART V_FW_EQ_ETH_CMD_EQSTART(1U)
4509 #define S_FW_EQ_ETH_CMD_EQSTOP 27
4510 #define M_FW_EQ_ETH_CMD_EQSTOP 0x1
4511 #define V_FW_EQ_ETH_CMD_EQSTOP(x) ((x) << S_FW_EQ_ETH_CMD_EQSTOP)
4512 #define G_FW_EQ_ETH_CMD_EQSTOP(x) \
4513 (((x) >> S_FW_EQ_ETH_CMD_EQSTOP) & M_FW_EQ_ETH_CMD_EQSTOP)
4514 #define F_FW_EQ_ETH_CMD_EQSTOP V_FW_EQ_ETH_CMD_EQSTOP(1U)
4516 #define S_FW_EQ_ETH_CMD_EQID 0
4517 #define M_FW_EQ_ETH_CMD_EQID 0xfffff
4518 #define V_FW_EQ_ETH_CMD_EQID(x) ((x) << S_FW_EQ_ETH_CMD_EQID)
4519 #define G_FW_EQ_ETH_CMD_EQID(x) \
4520 (((x) >> S_FW_EQ_ETH_CMD_EQID) & M_FW_EQ_ETH_CMD_EQID)
4522 #define S_FW_EQ_ETH_CMD_PHYSEQID 0
4523 #define M_FW_EQ_ETH_CMD_PHYSEQID 0xfffff
4524 #define V_FW_EQ_ETH_CMD_PHYSEQID(x) ((x) << S_FW_EQ_ETH_CMD_PHYSEQID)
4525 #define G_FW_EQ_ETH_CMD_PHYSEQID(x) \
4526 (((x) >> S_FW_EQ_ETH_CMD_PHYSEQID) & M_FW_EQ_ETH_CMD_PHYSEQID)
4528 #define S_FW_EQ_ETH_CMD_FETCHSZM 26
4529 #define M_FW_EQ_ETH_CMD_FETCHSZM 0x1
4530 #define V_FW_EQ_ETH_CMD_FETCHSZM(x) ((x) << S_FW_EQ_ETH_CMD_FETCHSZM)
4531 #define G_FW_EQ_ETH_CMD_FETCHSZM(x) \
4532 (((x) >> S_FW_EQ_ETH_CMD_FETCHSZM) & M_FW_EQ_ETH_CMD_FETCHSZM)
4533 #define F_FW_EQ_ETH_CMD_FETCHSZM V_FW_EQ_ETH_CMD_FETCHSZM(1U)
4535 #define S_FW_EQ_ETH_CMD_STATUSPGNS 25
4536 #define M_FW_EQ_ETH_CMD_STATUSPGNS 0x1
4537 #define V_FW_EQ_ETH_CMD_STATUSPGNS(x) ((x) << S_FW_EQ_ETH_CMD_STATUSPGNS)
4538 #define G_FW_EQ_ETH_CMD_STATUSPGNS(x) \
4539 (((x) >> S_FW_EQ_ETH_CMD_STATUSPGNS) & M_FW_EQ_ETH_CMD_STATUSPGNS)
4540 #define F_FW_EQ_ETH_CMD_STATUSPGNS V_FW_EQ_ETH_CMD_STATUSPGNS(1U)
4542 #define S_FW_EQ_ETH_CMD_STATUSPGRO 24
4543 #define M_FW_EQ_ETH_CMD_STATUSPGRO 0x1
4544 #define V_FW_EQ_ETH_CMD_STATUSPGRO(x) ((x) << S_FW_EQ_ETH_CMD_STATUSPGRO)
4545 #define G_FW_EQ_ETH_CMD_STATUSPGRO(x) \
4546 (((x) >> S_FW_EQ_ETH_CMD_STATUSPGRO) & M_FW_EQ_ETH_CMD_STATUSPGRO)
4547 #define F_FW_EQ_ETH_CMD_STATUSPGRO V_FW_EQ_ETH_CMD_STATUSPGRO(1U)
4549 #define S_FW_EQ_ETH_CMD_FETCHNS 23
4550 #define M_FW_EQ_ETH_CMD_FETCHNS 0x1
4551 #define V_FW_EQ_ETH_CMD_FETCHNS(x) ((x) << S_FW_EQ_ETH_CMD_FETCHNS)
4552 #define G_FW_EQ_ETH_CMD_FETCHNS(x) \
4553 (((x) >> S_FW_EQ_ETH_CMD_FETCHNS) & M_FW_EQ_ETH_CMD_FETCHNS)
4554 #define F_FW_EQ_ETH_CMD_FETCHNS V_FW_EQ_ETH_CMD_FETCHNS(1U)
4556 #define S_FW_EQ_ETH_CMD_FETCHRO 22
4557 #define M_FW_EQ_ETH_CMD_FETCHRO 0x1
4558 #define V_FW_EQ_ETH_CMD_FETCHRO(x) ((x) << S_FW_EQ_ETH_CMD_FETCHRO)
4559 #define G_FW_EQ_ETH_CMD_FETCHRO(x) \
4560 (((x) >> S_FW_EQ_ETH_CMD_FETCHRO) & M_FW_EQ_ETH_CMD_FETCHRO)
4561 #define F_FW_EQ_ETH_CMD_FETCHRO V_FW_EQ_ETH_CMD_FETCHRO(1U)
4563 #define S_FW_EQ_ETH_CMD_HOSTFCMODE 20
4564 #define M_FW_EQ_ETH_CMD_HOSTFCMODE 0x3
4565 #define V_FW_EQ_ETH_CMD_HOSTFCMODE(x) ((x) << S_FW_EQ_ETH_CMD_HOSTFCMODE)
4566 #define G_FW_EQ_ETH_CMD_HOSTFCMODE(x) \
4567 (((x) >> S_FW_EQ_ETH_CMD_HOSTFCMODE) & M_FW_EQ_ETH_CMD_HOSTFCMODE)
4569 #define S_FW_EQ_ETH_CMD_CPRIO 19
4570 #define M_FW_EQ_ETH_CMD_CPRIO 0x1
4571 #define V_FW_EQ_ETH_CMD_CPRIO(x) ((x) << S_FW_EQ_ETH_CMD_CPRIO)
4572 #define G_FW_EQ_ETH_CMD_CPRIO(x) \
4573 (((x) >> S_FW_EQ_ETH_CMD_CPRIO) & M_FW_EQ_ETH_CMD_CPRIO)
4574 #define F_FW_EQ_ETH_CMD_CPRIO V_FW_EQ_ETH_CMD_CPRIO(1U)
4576 #define S_FW_EQ_ETH_CMD_ONCHIP 18
4577 #define M_FW_EQ_ETH_CMD_ONCHIP 0x1
4578 #define V_FW_EQ_ETH_CMD_ONCHIP(x) ((x) << S_FW_EQ_ETH_CMD_ONCHIP)
4579 #define G_FW_EQ_ETH_CMD_ONCHIP(x) \
4580 (((x) >> S_FW_EQ_ETH_CMD_ONCHIP) & M_FW_EQ_ETH_CMD_ONCHIP)
4581 #define F_FW_EQ_ETH_CMD_ONCHIP V_FW_EQ_ETH_CMD_ONCHIP(1U)
4583 #define S_FW_EQ_ETH_CMD_PCIECHN 16
4584 #define M_FW_EQ_ETH_CMD_PCIECHN 0x3
4585 #define V_FW_EQ_ETH_CMD_PCIECHN(x) ((x) << S_FW_EQ_ETH_CMD_PCIECHN)
4586 #define G_FW_EQ_ETH_CMD_PCIECHN(x) \
4587 (((x) >> S_FW_EQ_ETH_CMD_PCIECHN) & M_FW_EQ_ETH_CMD_PCIECHN)
4589 #define S_FW_EQ_ETH_CMD_IQID 0
4590 #define M_FW_EQ_ETH_CMD_IQID 0xffff
4591 #define V_FW_EQ_ETH_CMD_IQID(x) ((x) << S_FW_EQ_ETH_CMD_IQID)
4592 #define G_FW_EQ_ETH_CMD_IQID(x) \
4593 (((x) >> S_FW_EQ_ETH_CMD_IQID) & M_FW_EQ_ETH_CMD_IQID)
4595 #define S_FW_EQ_ETH_CMD_DCAEN 31
4596 #define M_FW_EQ_ETH_CMD_DCAEN 0x1
4597 #define V_FW_EQ_ETH_CMD_DCAEN(x) ((x) << S_FW_EQ_ETH_CMD_DCAEN)
4598 #define G_FW_EQ_ETH_CMD_DCAEN(x) \
4599 (((x) >> S_FW_EQ_ETH_CMD_DCAEN) & M_FW_EQ_ETH_CMD_DCAEN)
4600 #define F_FW_EQ_ETH_CMD_DCAEN V_FW_EQ_ETH_CMD_DCAEN(1U)
4602 #define S_FW_EQ_ETH_CMD_DCACPU 26
4603 #define M_FW_EQ_ETH_CMD_DCACPU 0x1f
4604 #define V_FW_EQ_ETH_CMD_DCACPU(x) ((x) << S_FW_EQ_ETH_CMD_DCACPU)
4605 #define G_FW_EQ_ETH_CMD_DCACPU(x) \
4606 (((x) >> S_FW_EQ_ETH_CMD_DCACPU) & M_FW_EQ_ETH_CMD_DCACPU)
4608 #define S_FW_EQ_ETH_CMD_FBMIN 23
4609 #define M_FW_EQ_ETH_CMD_FBMIN 0x7
4610 #define V_FW_EQ_ETH_CMD_FBMIN(x) ((x) << S_FW_EQ_ETH_CMD_FBMIN)
4611 #define G_FW_EQ_ETH_CMD_FBMIN(x) \
4612 (((x) >> S_FW_EQ_ETH_CMD_FBMIN) & M_FW_EQ_ETH_CMD_FBMIN)
4614 #define S_FW_EQ_ETH_CMD_FBMAX 20
4615 #define M_FW_EQ_ETH_CMD_FBMAX 0x7
4616 #define V_FW_EQ_ETH_CMD_FBMAX(x) ((x) << S_FW_EQ_ETH_CMD_FBMAX)
4617 #define G_FW_EQ_ETH_CMD_FBMAX(x) \
4618 (((x) >> S_FW_EQ_ETH_CMD_FBMAX) & M_FW_EQ_ETH_CMD_FBMAX)
4620 #define S_FW_EQ_ETH_CMD_CIDXFTHRESHO 19
4621 #define M_FW_EQ_ETH_CMD_CIDXFTHRESHO 0x1
4622 #define V_FW_EQ_ETH_CMD_CIDXFTHRESHO(x) ((x) << S_FW_EQ_ETH_CMD_CIDXFTHRESHO)
4623 #define G_FW_EQ_ETH_CMD_CIDXFTHRESHO(x) \
4624 (((x) >> S_FW_EQ_ETH_CMD_CIDXFTHRESHO) & M_FW_EQ_ETH_CMD_CIDXFTHRESHO)
4625 #define F_FW_EQ_ETH_CMD_CIDXFTHRESHO V_FW_EQ_ETH_CMD_CIDXFTHRESHO(1U)
4627 #define S_FW_EQ_ETH_CMD_CIDXFTHRESH 16
4628 #define M_FW_EQ_ETH_CMD_CIDXFTHRESH 0x7
4629 #define V_FW_EQ_ETH_CMD_CIDXFTHRESH(x) ((x) << S_FW_EQ_ETH_CMD_CIDXFTHRESH)
4630 #define G_FW_EQ_ETH_CMD_CIDXFTHRESH(x) \
4631 (((x) >> S_FW_EQ_ETH_CMD_CIDXFTHRESH) & M_FW_EQ_ETH_CMD_CIDXFTHRESH)
4633 #define S_FW_EQ_ETH_CMD_EQSIZE 0
4634 #define M_FW_EQ_ETH_CMD_EQSIZE 0xffff
4635 #define V_FW_EQ_ETH_CMD_EQSIZE(x) ((x) << S_FW_EQ_ETH_CMD_EQSIZE)
4636 #define G_FW_EQ_ETH_CMD_EQSIZE(x) \
4637 (((x) >> S_FW_EQ_ETH_CMD_EQSIZE) & M_FW_EQ_ETH_CMD_EQSIZE)
4639 #define S_FW_EQ_ETH_CMD_VIID 16
4640 #define M_FW_EQ_ETH_CMD_VIID 0xfff
4641 #define V_FW_EQ_ETH_CMD_VIID(x) ((x) << S_FW_EQ_ETH_CMD_VIID)
4642 #define G_FW_EQ_ETH_CMD_VIID(x) \
4643 (((x) >> S_FW_EQ_ETH_CMD_VIID) & M_FW_EQ_ETH_CMD_VIID)
4645 struct fw_eq_ctrl_cmd {
4647 __be32 alloc_to_len16;
4648 __be32 cmpliqid_eqid;
4649 __be32 physeqid_pkd;
4650 __be32 fetchszm_to_iqid;
4651 __be32 dcaen_to_eqsize;
4655 #define S_FW_EQ_CTRL_CMD_PFN 8
4656 #define M_FW_EQ_CTRL_CMD_PFN 0x7
4657 #define V_FW_EQ_CTRL_CMD_PFN(x) ((x) << S_FW_EQ_CTRL_CMD_PFN)
4658 #define G_FW_EQ_CTRL_CMD_PFN(x) \
4659 (((x) >> S_FW_EQ_CTRL_CMD_PFN) & M_FW_EQ_CTRL_CMD_PFN)
4661 #define S_FW_EQ_CTRL_CMD_VFN 0
4662 #define M_FW_EQ_CTRL_CMD_VFN 0xff
4663 #define V_FW_EQ_CTRL_CMD_VFN(x) ((x) << S_FW_EQ_CTRL_CMD_VFN)
4664 #define G_FW_EQ_CTRL_CMD_VFN(x) \
4665 (((x) >> S_FW_EQ_CTRL_CMD_VFN) & M_FW_EQ_CTRL_CMD_VFN)
4667 #define S_FW_EQ_CTRL_CMD_ALLOC 31
4668 #define M_FW_EQ_CTRL_CMD_ALLOC 0x1
4669 #define V_FW_EQ_CTRL_CMD_ALLOC(x) ((x) << S_FW_EQ_CTRL_CMD_ALLOC)
4670 #define G_FW_EQ_CTRL_CMD_ALLOC(x) \
4671 (((x) >> S_FW_EQ_CTRL_CMD_ALLOC) & M_FW_EQ_CTRL_CMD_ALLOC)
4672 #define F_FW_EQ_CTRL_CMD_ALLOC V_FW_EQ_CTRL_CMD_ALLOC(1U)
4674 #define S_FW_EQ_CTRL_CMD_FREE 30
4675 #define M_FW_EQ_CTRL_CMD_FREE 0x1
4676 #define V_FW_EQ_CTRL_CMD_FREE(x) ((x) << S_FW_EQ_CTRL_CMD_FREE)
4677 #define G_FW_EQ_CTRL_CMD_FREE(x) \
4678 (((x) >> S_FW_EQ_CTRL_CMD_FREE) & M_FW_EQ_CTRL_CMD_FREE)
4679 #define F_FW_EQ_CTRL_CMD_FREE V_FW_EQ_CTRL_CMD_FREE(1U)
4681 #define S_FW_EQ_CTRL_CMD_MODIFY 29
4682 #define M_FW_EQ_CTRL_CMD_MODIFY 0x1
4683 #define V_FW_EQ_CTRL_CMD_MODIFY(x) ((x) << S_FW_EQ_CTRL_CMD_MODIFY)
4684 #define G_FW_EQ_CTRL_CMD_MODIFY(x) \
4685 (((x) >> S_FW_EQ_CTRL_CMD_MODIFY) & M_FW_EQ_CTRL_CMD_MODIFY)
4686 #define F_FW_EQ_CTRL_CMD_MODIFY V_FW_EQ_CTRL_CMD_MODIFY(1U)
4688 #define S_FW_EQ_CTRL_CMD_EQSTART 28
4689 #define M_FW_EQ_CTRL_CMD_EQSTART 0x1
4690 #define V_FW_EQ_CTRL_CMD_EQSTART(x) ((x) << S_FW_EQ_CTRL_CMD_EQSTART)
4691 #define G_FW_EQ_CTRL_CMD_EQSTART(x) \
4692 (((x) >> S_FW_EQ_CTRL_CMD_EQSTART) & M_FW_EQ_CTRL_CMD_EQSTART)
4693 #define F_FW_EQ_CTRL_CMD_EQSTART V_FW_EQ_CTRL_CMD_EQSTART(1U)
4695 #define S_FW_EQ_CTRL_CMD_EQSTOP 27
4696 #define M_FW_EQ_CTRL_CMD_EQSTOP 0x1
4697 #define V_FW_EQ_CTRL_CMD_EQSTOP(x) ((x) << S_FW_EQ_CTRL_CMD_EQSTOP)
4698 #define G_FW_EQ_CTRL_CMD_EQSTOP(x) \
4699 (((x) >> S_FW_EQ_CTRL_CMD_EQSTOP) & M_FW_EQ_CTRL_CMD_EQSTOP)
4700 #define F_FW_EQ_CTRL_CMD_EQSTOP V_FW_EQ_CTRL_CMD_EQSTOP(1U)
4702 #define S_FW_EQ_CTRL_CMD_CMPLIQID 20
4703 #define M_FW_EQ_CTRL_CMD_CMPLIQID 0xfff
4704 #define V_FW_EQ_CTRL_CMD_CMPLIQID(x) ((x) << S_FW_EQ_CTRL_CMD_CMPLIQID)
4705 #define G_FW_EQ_CTRL_CMD_CMPLIQID(x) \
4706 (((x) >> S_FW_EQ_CTRL_CMD_CMPLIQID) & M_FW_EQ_CTRL_CMD_CMPLIQID)
4708 #define S_FW_EQ_CTRL_CMD_EQID 0
4709 #define M_FW_EQ_CTRL_CMD_EQID 0xfffff
4710 #define V_FW_EQ_CTRL_CMD_EQID(x) ((x) << S_FW_EQ_CTRL_CMD_EQID)
4711 #define G_FW_EQ_CTRL_CMD_EQID(x) \
4712 (((x) >> S_FW_EQ_CTRL_CMD_EQID) & M_FW_EQ_CTRL_CMD_EQID)
4714 #define S_FW_EQ_CTRL_CMD_PHYSEQID 0
4715 #define M_FW_EQ_CTRL_CMD_PHYSEQID 0xfffff
4716 #define V_FW_EQ_CTRL_CMD_PHYSEQID(x) ((x) << S_FW_EQ_CTRL_CMD_PHYSEQID)
4717 #define G_FW_EQ_CTRL_CMD_PHYSEQID(x) \
4718 (((x) >> S_FW_EQ_CTRL_CMD_PHYSEQID) & M_FW_EQ_CTRL_CMD_PHYSEQID)
4720 #define S_FW_EQ_CTRL_CMD_FETCHSZM 26
4721 #define M_FW_EQ_CTRL_CMD_FETCHSZM 0x1
4722 #define V_FW_EQ_CTRL_CMD_FETCHSZM(x) ((x) << S_FW_EQ_CTRL_CMD_FETCHSZM)
4723 #define G_FW_EQ_CTRL_CMD_FETCHSZM(x) \
4724 (((x) >> S_FW_EQ_CTRL_CMD_FETCHSZM) & M_FW_EQ_CTRL_CMD_FETCHSZM)
4725 #define F_FW_EQ_CTRL_CMD_FETCHSZM V_FW_EQ_CTRL_CMD_FETCHSZM(1U)
4727 #define S_FW_EQ_CTRL_CMD_STATUSPGNS 25
4728 #define M_FW_EQ_CTRL_CMD_STATUSPGNS 0x1
4729 #define V_FW_EQ_CTRL_CMD_STATUSPGNS(x) ((x) << S_FW_EQ_CTRL_CMD_STATUSPGNS)
4730 #define G_FW_EQ_CTRL_CMD_STATUSPGNS(x) \
4731 (((x) >> S_FW_EQ_CTRL_CMD_STATUSPGNS) & M_FW_EQ_CTRL_CMD_STATUSPGNS)
4732 #define F_FW_EQ_CTRL_CMD_STATUSPGNS V_FW_EQ_CTRL_CMD_STATUSPGNS(1U)
4734 #define S_FW_EQ_CTRL_CMD_STATUSPGRO 24
4735 #define M_FW_EQ_CTRL_CMD_STATUSPGRO 0x1
4736 #define V_FW_EQ_CTRL_CMD_STATUSPGRO(x) ((x) << S_FW_EQ_CTRL_CMD_STATUSPGRO)
4737 #define G_FW_EQ_CTRL_CMD_STATUSPGRO(x) \
4738 (((x) >> S_FW_EQ_CTRL_CMD_STATUSPGRO) & M_FW_EQ_CTRL_CMD_STATUSPGRO)
4739 #define F_FW_EQ_CTRL_CMD_STATUSPGRO V_FW_EQ_CTRL_CMD_STATUSPGRO(1U)
4741 #define S_FW_EQ_CTRL_CMD_FETCHNS 23
4742 #define M_FW_EQ_CTRL_CMD_FETCHNS 0x1
4743 #define V_FW_EQ_CTRL_CMD_FETCHNS(x) ((x) << S_FW_EQ_CTRL_CMD_FETCHNS)
4744 #define G_FW_EQ_CTRL_CMD_FETCHNS(x) \
4745 (((x) >> S_FW_EQ_CTRL_CMD_FETCHNS) & M_FW_EQ_CTRL_CMD_FETCHNS)
4746 #define F_FW_EQ_CTRL_CMD_FETCHNS V_FW_EQ_CTRL_CMD_FETCHNS(1U)
4748 #define S_FW_EQ_CTRL_CMD_FETCHRO 22
4749 #define M_FW_EQ_CTRL_CMD_FETCHRO 0x1
4750 #define V_FW_EQ_CTRL_CMD_FETCHRO(x) ((x) << S_FW_EQ_CTRL_CMD_FETCHRO)
4751 #define G_FW_EQ_CTRL_CMD_FETCHRO(x) \
4752 (((x) >> S_FW_EQ_CTRL_CMD_FETCHRO) & M_FW_EQ_CTRL_CMD_FETCHRO)
4753 #define F_FW_EQ_CTRL_CMD_FETCHRO V_FW_EQ_CTRL_CMD_FETCHRO(1U)
4755 #define S_FW_EQ_CTRL_CMD_HOSTFCMODE 20
4756 #define M_FW_EQ_CTRL_CMD_HOSTFCMODE 0x3
4757 #define V_FW_EQ_CTRL_CMD_HOSTFCMODE(x) ((x) << S_FW_EQ_CTRL_CMD_HOSTFCMODE)
4758 #define G_FW_EQ_CTRL_CMD_HOSTFCMODE(x) \
4759 (((x) >> S_FW_EQ_CTRL_CMD_HOSTFCMODE) & M_FW_EQ_CTRL_CMD_HOSTFCMODE)
4761 #define S_FW_EQ_CTRL_CMD_CPRIO 19
4762 #define M_FW_EQ_CTRL_CMD_CPRIO 0x1
4763 #define V_FW_EQ_CTRL_CMD_CPRIO(x) ((x) << S_FW_EQ_CTRL_CMD_CPRIO)
4764 #define G_FW_EQ_CTRL_CMD_CPRIO(x) \
4765 (((x) >> S_FW_EQ_CTRL_CMD_CPRIO) & M_FW_EQ_CTRL_CMD_CPRIO)
4766 #define F_FW_EQ_CTRL_CMD_CPRIO V_FW_EQ_CTRL_CMD_CPRIO(1U)
4768 #define S_FW_EQ_CTRL_CMD_ONCHIP 18
4769 #define M_FW_EQ_CTRL_CMD_ONCHIP 0x1
4770 #define V_FW_EQ_CTRL_CMD_ONCHIP(x) ((x) << S_FW_EQ_CTRL_CMD_ONCHIP)
4771 #define G_FW_EQ_CTRL_CMD_ONCHIP(x) \
4772 (((x) >> S_FW_EQ_CTRL_CMD_ONCHIP) & M_FW_EQ_CTRL_CMD_ONCHIP)
4773 #define F_FW_EQ_CTRL_CMD_ONCHIP V_FW_EQ_CTRL_CMD_ONCHIP(1U)
4775 #define S_FW_EQ_CTRL_CMD_PCIECHN 16
4776 #define M_FW_EQ_CTRL_CMD_PCIECHN 0x3
4777 #define V_FW_EQ_CTRL_CMD_PCIECHN(x) ((x) << S_FW_EQ_CTRL_CMD_PCIECHN)
4778 #define G_FW_EQ_CTRL_CMD_PCIECHN(x) \
4779 (((x) >> S_FW_EQ_CTRL_CMD_PCIECHN) & M_FW_EQ_CTRL_CMD_PCIECHN)
4781 #define S_FW_EQ_CTRL_CMD_IQID 0
4782 #define M_FW_EQ_CTRL_CMD_IQID 0xffff
4783 #define V_FW_EQ_CTRL_CMD_IQID(x) ((x) << S_FW_EQ_CTRL_CMD_IQID)
4784 #define G_FW_EQ_CTRL_CMD_IQID(x) \
4785 (((x) >> S_FW_EQ_CTRL_CMD_IQID) & M_FW_EQ_CTRL_CMD_IQID)
4787 #define S_FW_EQ_CTRL_CMD_DCAEN 31
4788 #define M_FW_EQ_CTRL_CMD_DCAEN 0x1
4789 #define V_FW_EQ_CTRL_CMD_DCAEN(x) ((x) << S_FW_EQ_CTRL_CMD_DCAEN)
4790 #define G_FW_EQ_CTRL_CMD_DCAEN(x) \
4791 (((x) >> S_FW_EQ_CTRL_CMD_DCAEN) & M_FW_EQ_CTRL_CMD_DCAEN)
4792 #define F_FW_EQ_CTRL_CMD_DCAEN V_FW_EQ_CTRL_CMD_DCAEN(1U)
4794 #define S_FW_EQ_CTRL_CMD_DCACPU 26
4795 #define M_FW_EQ_CTRL_CMD_DCACPU 0x1f
4796 #define V_FW_EQ_CTRL_CMD_DCACPU(x) ((x) << S_FW_EQ_CTRL_CMD_DCACPU)
4797 #define G_FW_EQ_CTRL_CMD_DCACPU(x) \
4798 (((x) >> S_FW_EQ_CTRL_CMD_DCACPU) & M_FW_EQ_CTRL_CMD_DCACPU)
4800 #define S_FW_EQ_CTRL_CMD_FBMIN 23
4801 #define M_FW_EQ_CTRL_CMD_FBMIN 0x7
4802 #define V_FW_EQ_CTRL_CMD_FBMIN(x) ((x) << S_FW_EQ_CTRL_CMD_FBMIN)
4803 #define G_FW_EQ_CTRL_CMD_FBMIN(x) \
4804 (((x) >> S_FW_EQ_CTRL_CMD_FBMIN) & M_FW_EQ_CTRL_CMD_FBMIN)
4806 #define S_FW_EQ_CTRL_CMD_FBMAX 20
4807 #define M_FW_EQ_CTRL_CMD_FBMAX 0x7
4808 #define V_FW_EQ_CTRL_CMD_FBMAX(x) ((x) << S_FW_EQ_CTRL_CMD_FBMAX)
4809 #define G_FW_EQ_CTRL_CMD_FBMAX(x) \
4810 (((x) >> S_FW_EQ_CTRL_CMD_FBMAX) & M_FW_EQ_CTRL_CMD_FBMAX)
4812 #define S_FW_EQ_CTRL_CMD_CIDXFTHRESHO 19
4813 #define M_FW_EQ_CTRL_CMD_CIDXFTHRESHO 0x1
4814 #define V_FW_EQ_CTRL_CMD_CIDXFTHRESHO(x) \
4815 ((x) << S_FW_EQ_CTRL_CMD_CIDXFTHRESHO)
4816 #define G_FW_EQ_CTRL_CMD_CIDXFTHRESHO(x) \
4817 (((x) >> S_FW_EQ_CTRL_CMD_CIDXFTHRESHO) & M_FW_EQ_CTRL_CMD_CIDXFTHRESHO)
4818 #define F_FW_EQ_CTRL_CMD_CIDXFTHRESHO V_FW_EQ_CTRL_CMD_CIDXFTHRESHO(1U)
4820 #define S_FW_EQ_CTRL_CMD_CIDXFTHRESH 16
4821 #define M_FW_EQ_CTRL_CMD_CIDXFTHRESH 0x7
4822 #define V_FW_EQ_CTRL_CMD_CIDXFTHRESH(x) ((x) << S_FW_EQ_CTRL_CMD_CIDXFTHRESH)
4823 #define G_FW_EQ_CTRL_CMD_CIDXFTHRESH(x) \
4824 (((x) >> S_FW_EQ_CTRL_CMD_CIDXFTHRESH) & M_FW_EQ_CTRL_CMD_CIDXFTHRESH)
4826 #define S_FW_EQ_CTRL_CMD_EQSIZE 0
4827 #define M_FW_EQ_CTRL_CMD_EQSIZE 0xffff
4828 #define V_FW_EQ_CTRL_CMD_EQSIZE(x) ((x) << S_FW_EQ_CTRL_CMD_EQSIZE)
4829 #define G_FW_EQ_CTRL_CMD_EQSIZE(x) \
4830 (((x) >> S_FW_EQ_CTRL_CMD_EQSIZE) & M_FW_EQ_CTRL_CMD_EQSIZE)
4832 struct fw_eq_ofld_cmd {
4834 __be32 alloc_to_len16;
4836 __be32 physeqid_pkd;
4837 __be32 fetchszm_to_iqid;
4838 __be32 dcaen_to_eqsize;
4842 #define S_FW_EQ_OFLD_CMD_PFN 8
4843 #define M_FW_EQ_OFLD_CMD_PFN 0x7
4844 #define V_FW_EQ_OFLD_CMD_PFN(x) ((x) << S_FW_EQ_OFLD_CMD_PFN)
4845 #define G_FW_EQ_OFLD_CMD_PFN(x) \
4846 (((x) >> S_FW_EQ_OFLD_CMD_PFN) & M_FW_EQ_OFLD_CMD_PFN)
4848 #define S_FW_EQ_OFLD_CMD_VFN 0
4849 #define M_FW_EQ_OFLD_CMD_VFN 0xff
4850 #define V_FW_EQ_OFLD_CMD_VFN(x) ((x) << S_FW_EQ_OFLD_CMD_VFN)
4851 #define G_FW_EQ_OFLD_CMD_VFN(x) \
4852 (((x) >> S_FW_EQ_OFLD_CMD_VFN) & M_FW_EQ_OFLD_CMD_VFN)
4854 #define S_FW_EQ_OFLD_CMD_ALLOC 31
4855 #define M_FW_EQ_OFLD_CMD_ALLOC 0x1
4856 #define V_FW_EQ_OFLD_CMD_ALLOC(x) ((x) << S_FW_EQ_OFLD_CMD_ALLOC)
4857 #define G_FW_EQ_OFLD_CMD_ALLOC(x) \
4858 (((x) >> S_FW_EQ_OFLD_CMD_ALLOC) & M_FW_EQ_OFLD_CMD_ALLOC)
4859 #define F_FW_EQ_OFLD_CMD_ALLOC V_FW_EQ_OFLD_CMD_ALLOC(1U)
4861 #define S_FW_EQ_OFLD_CMD_FREE 30
4862 #define M_FW_EQ_OFLD_CMD_FREE 0x1
4863 #define V_FW_EQ_OFLD_CMD_FREE(x) ((x) << S_FW_EQ_OFLD_CMD_FREE)
4864 #define G_FW_EQ_OFLD_CMD_FREE(x) \
4865 (((x) >> S_FW_EQ_OFLD_CMD_FREE) & M_FW_EQ_OFLD_CMD_FREE)
4866 #define F_FW_EQ_OFLD_CMD_FREE V_FW_EQ_OFLD_CMD_FREE(1U)
4868 #define S_FW_EQ_OFLD_CMD_MODIFY 29
4869 #define M_FW_EQ_OFLD_CMD_MODIFY 0x1
4870 #define V_FW_EQ_OFLD_CMD_MODIFY(x) ((x) << S_FW_EQ_OFLD_CMD_MODIFY)
4871 #define G_FW_EQ_OFLD_CMD_MODIFY(x) \
4872 (((x) >> S_FW_EQ_OFLD_CMD_MODIFY) & M_FW_EQ_OFLD_CMD_MODIFY)
4873 #define F_FW_EQ_OFLD_CMD_MODIFY V_FW_EQ_OFLD_CMD_MODIFY(1U)
4875 #define S_FW_EQ_OFLD_CMD_EQSTART 28
4876 #define M_FW_EQ_OFLD_CMD_EQSTART 0x1
4877 #define V_FW_EQ_OFLD_CMD_EQSTART(x) ((x) << S_FW_EQ_OFLD_CMD_EQSTART)
4878 #define G_FW_EQ_OFLD_CMD_EQSTART(x) \
4879 (((x) >> S_FW_EQ_OFLD_CMD_EQSTART) & M_FW_EQ_OFLD_CMD_EQSTART)
4880 #define F_FW_EQ_OFLD_CMD_EQSTART V_FW_EQ_OFLD_CMD_EQSTART(1U)
4882 #define S_FW_EQ_OFLD_CMD_EQSTOP 27
4883 #define M_FW_EQ_OFLD_CMD_EQSTOP 0x1
4884 #define V_FW_EQ_OFLD_CMD_EQSTOP(x) ((x) << S_FW_EQ_OFLD_CMD_EQSTOP)
4885 #define G_FW_EQ_OFLD_CMD_EQSTOP(x) \
4886 (((x) >> S_FW_EQ_OFLD_CMD_EQSTOP) & M_FW_EQ_OFLD_CMD_EQSTOP)
4887 #define F_FW_EQ_OFLD_CMD_EQSTOP V_FW_EQ_OFLD_CMD_EQSTOP(1U)
4889 #define S_FW_EQ_OFLD_CMD_EQID 0
4890 #define M_FW_EQ_OFLD_CMD_EQID 0xfffff
4891 #define V_FW_EQ_OFLD_CMD_EQID(x) ((x) << S_FW_EQ_OFLD_CMD_EQID)
4892 #define G_FW_EQ_OFLD_CMD_EQID(x) \
4893 (((x) >> S_FW_EQ_OFLD_CMD_EQID) & M_FW_EQ_OFLD_CMD_EQID)
4895 #define S_FW_EQ_OFLD_CMD_PHYSEQID 0
4896 #define M_FW_EQ_OFLD_CMD_PHYSEQID 0xfffff
4897 #define V_FW_EQ_OFLD_CMD_PHYSEQID(x) ((x) << S_FW_EQ_OFLD_CMD_PHYSEQID)
4898 #define G_FW_EQ_OFLD_CMD_PHYSEQID(x) \
4899 (((x) >> S_FW_EQ_OFLD_CMD_PHYSEQID) & M_FW_EQ_OFLD_CMD_PHYSEQID)
4901 #define S_FW_EQ_OFLD_CMD_FETCHSZM 26
4902 #define M_FW_EQ_OFLD_CMD_FETCHSZM 0x1
4903 #define V_FW_EQ_OFLD_CMD_FETCHSZM(x) ((x) << S_FW_EQ_OFLD_CMD_FETCHSZM)
4904 #define G_FW_EQ_OFLD_CMD_FETCHSZM(x) \
4905 (((x) >> S_FW_EQ_OFLD_CMD_FETCHSZM) & M_FW_EQ_OFLD_CMD_FETCHSZM)
4906 #define F_FW_EQ_OFLD_CMD_FETCHSZM V_FW_EQ_OFLD_CMD_FETCHSZM(1U)
4908 #define S_FW_EQ_OFLD_CMD_STATUSPGNS 25
4909 #define M_FW_EQ_OFLD_CMD_STATUSPGNS 0x1
4910 #define V_FW_EQ_OFLD_CMD_STATUSPGNS(x) ((x) << S_FW_EQ_OFLD_CMD_STATUSPGNS)
4911 #define G_FW_EQ_OFLD_CMD_STATUSPGNS(x) \
4912 (((x) >> S_FW_EQ_OFLD_CMD_STATUSPGNS) & M_FW_EQ_OFLD_CMD_STATUSPGNS)
4913 #define F_FW_EQ_OFLD_CMD_STATUSPGNS V_FW_EQ_OFLD_CMD_STATUSPGNS(1U)
4915 #define S_FW_EQ_OFLD_CMD_STATUSPGRO 24
4916 #define M_FW_EQ_OFLD_CMD_STATUSPGRO 0x1
4917 #define V_FW_EQ_OFLD_CMD_STATUSPGRO(x) ((x) << S_FW_EQ_OFLD_CMD_STATUSPGRO)
4918 #define G_FW_EQ_OFLD_CMD_STATUSPGRO(x) \
4919 (((x) >> S_FW_EQ_OFLD_CMD_STATUSPGRO) & M_FW_EQ_OFLD_CMD_STATUSPGRO)
4920 #define F_FW_EQ_OFLD_CMD_STATUSPGRO V_FW_EQ_OFLD_CMD_STATUSPGRO(1U)
4922 #define S_FW_EQ_OFLD_CMD_FETCHNS 23
4923 #define M_FW_EQ_OFLD_CMD_FETCHNS 0x1
4924 #define V_FW_EQ_OFLD_CMD_FETCHNS(x) ((x) << S_FW_EQ_OFLD_CMD_FETCHNS)
4925 #define G_FW_EQ_OFLD_CMD_FETCHNS(x) \
4926 (((x) >> S_FW_EQ_OFLD_CMD_FETCHNS) & M_FW_EQ_OFLD_CMD_FETCHNS)
4927 #define F_FW_EQ_OFLD_CMD_FETCHNS V_FW_EQ_OFLD_CMD_FETCHNS(1U)
4929 #define S_FW_EQ_OFLD_CMD_FETCHRO 22
4930 #define M_FW_EQ_OFLD_CMD_FETCHRO 0x1
4931 #define V_FW_EQ_OFLD_CMD_FETCHRO(x) ((x) << S_FW_EQ_OFLD_CMD_FETCHRO)
4932 #define G_FW_EQ_OFLD_CMD_FETCHRO(x) \
4933 (((x) >> S_FW_EQ_OFLD_CMD_FETCHRO) & M_FW_EQ_OFLD_CMD_FETCHRO)
4934 #define F_FW_EQ_OFLD_CMD_FETCHRO V_FW_EQ_OFLD_CMD_FETCHRO(1U)
4936 #define S_FW_EQ_OFLD_CMD_HOSTFCMODE 20
4937 #define M_FW_EQ_OFLD_CMD_HOSTFCMODE 0x3
4938 #define V_FW_EQ_OFLD_CMD_HOSTFCMODE(x) ((x) << S_FW_EQ_OFLD_CMD_HOSTFCMODE)
4939 #define G_FW_EQ_OFLD_CMD_HOSTFCMODE(x) \
4940 (((x) >> S_FW_EQ_OFLD_CMD_HOSTFCMODE) & M_FW_EQ_OFLD_CMD_HOSTFCMODE)
4942 #define S_FW_EQ_OFLD_CMD_CPRIO 19
4943 #define M_FW_EQ_OFLD_CMD_CPRIO 0x1
4944 #define V_FW_EQ_OFLD_CMD_CPRIO(x) ((x) << S_FW_EQ_OFLD_CMD_CPRIO)
4945 #define G_FW_EQ_OFLD_CMD_CPRIO(x) \
4946 (((x) >> S_FW_EQ_OFLD_CMD_CPRIO) & M_FW_EQ_OFLD_CMD_CPRIO)
4947 #define F_FW_EQ_OFLD_CMD_CPRIO V_FW_EQ_OFLD_CMD_CPRIO(1U)
4949 #define S_FW_EQ_OFLD_CMD_ONCHIP 18
4950 #define M_FW_EQ_OFLD_CMD_ONCHIP 0x1
4951 #define V_FW_EQ_OFLD_CMD_ONCHIP(x) ((x) << S_FW_EQ_OFLD_CMD_ONCHIP)
4952 #define G_FW_EQ_OFLD_CMD_ONCHIP(x) \
4953 (((x) >> S_FW_EQ_OFLD_CMD_ONCHIP) & M_FW_EQ_OFLD_CMD_ONCHIP)
4954 #define F_FW_EQ_OFLD_CMD_ONCHIP V_FW_EQ_OFLD_CMD_ONCHIP(1U)
4956 #define S_FW_EQ_OFLD_CMD_PCIECHN 16
4957 #define M_FW_EQ_OFLD_CMD_PCIECHN 0x3
4958 #define V_FW_EQ_OFLD_CMD_PCIECHN(x) ((x) << S_FW_EQ_OFLD_CMD_PCIECHN)
4959 #define G_FW_EQ_OFLD_CMD_PCIECHN(x) \
4960 (((x) >> S_FW_EQ_OFLD_CMD_PCIECHN) & M_FW_EQ_OFLD_CMD_PCIECHN)
4962 #define S_FW_EQ_OFLD_CMD_IQID 0
4963 #define M_FW_EQ_OFLD_CMD_IQID 0xffff
4964 #define V_FW_EQ_OFLD_CMD_IQID(x) ((x) << S_FW_EQ_OFLD_CMD_IQID)
4965 #define G_FW_EQ_OFLD_CMD_IQID(x) \
4966 (((x) >> S_FW_EQ_OFLD_CMD_IQID) & M_FW_EQ_OFLD_CMD_IQID)
4968 #define S_FW_EQ_OFLD_CMD_DCAEN 31
4969 #define M_FW_EQ_OFLD_CMD_DCAEN 0x1
4970 #define V_FW_EQ_OFLD_CMD_DCAEN(x) ((x) << S_FW_EQ_OFLD_CMD_DCAEN)
4971 #define G_FW_EQ_OFLD_CMD_DCAEN(x) \
4972 (((x) >> S_FW_EQ_OFLD_CMD_DCAEN) & M_FW_EQ_OFLD_CMD_DCAEN)
4973 #define F_FW_EQ_OFLD_CMD_DCAEN V_FW_EQ_OFLD_CMD_DCAEN(1U)
4975 #define S_FW_EQ_OFLD_CMD_DCACPU 26
4976 #define M_FW_EQ_OFLD_CMD_DCACPU 0x1f
4977 #define V_FW_EQ_OFLD_CMD_DCACPU(x) ((x) << S_FW_EQ_OFLD_CMD_DCACPU)
4978 #define G_FW_EQ_OFLD_CMD_DCACPU(x) \
4979 (((x) >> S_FW_EQ_OFLD_CMD_DCACPU) & M_FW_EQ_OFLD_CMD_DCACPU)
4981 #define S_FW_EQ_OFLD_CMD_FBMIN 23
4982 #define M_FW_EQ_OFLD_CMD_FBMIN 0x7
4983 #define V_FW_EQ_OFLD_CMD_FBMIN(x) ((x) << S_FW_EQ_OFLD_CMD_FBMIN)
4984 #define G_FW_EQ_OFLD_CMD_FBMIN(x) \
4985 (((x) >> S_FW_EQ_OFLD_CMD_FBMIN) & M_FW_EQ_OFLD_CMD_FBMIN)
4987 #define S_FW_EQ_OFLD_CMD_FBMAX 20
4988 #define M_FW_EQ_OFLD_CMD_FBMAX 0x7
4989 #define V_FW_EQ_OFLD_CMD_FBMAX(x) ((x) << S_FW_EQ_OFLD_CMD_FBMAX)
4990 #define G_FW_EQ_OFLD_CMD_FBMAX(x) \
4991 (((x) >> S_FW_EQ_OFLD_CMD_FBMAX) & M_FW_EQ_OFLD_CMD_FBMAX)
4993 #define S_FW_EQ_OFLD_CMD_CIDXFTHRESHO 19
4994 #define M_FW_EQ_OFLD_CMD_CIDXFTHRESHO 0x1
4995 #define V_FW_EQ_OFLD_CMD_CIDXFTHRESHO(x) \
4996 ((x) << S_FW_EQ_OFLD_CMD_CIDXFTHRESHO)
4997 #define G_FW_EQ_OFLD_CMD_CIDXFTHRESHO(x) \
4998 (((x) >> S_FW_EQ_OFLD_CMD_CIDXFTHRESHO) & M_FW_EQ_OFLD_CMD_CIDXFTHRESHO)
4999 #define F_FW_EQ_OFLD_CMD_CIDXFTHRESHO V_FW_EQ_OFLD_CMD_CIDXFTHRESHO(1U)
5001 #define S_FW_EQ_OFLD_CMD_CIDXFTHRESH 16
5002 #define M_FW_EQ_OFLD_CMD_CIDXFTHRESH 0x7
5003 #define V_FW_EQ_OFLD_CMD_CIDXFTHRESH(x) ((x) << S_FW_EQ_OFLD_CMD_CIDXFTHRESH)
5004 #define G_FW_EQ_OFLD_CMD_CIDXFTHRESH(x) \
5005 (((x) >> S_FW_EQ_OFLD_CMD_CIDXFTHRESH) & M_FW_EQ_OFLD_CMD_CIDXFTHRESH)
5007 #define S_FW_EQ_OFLD_CMD_EQSIZE 0
5008 #define M_FW_EQ_OFLD_CMD_EQSIZE 0xffff
5009 #define V_FW_EQ_OFLD_CMD_EQSIZE(x) ((x) << S_FW_EQ_OFLD_CMD_EQSIZE)
5010 #define G_FW_EQ_OFLD_CMD_EQSIZE(x) \
5011 (((x) >> S_FW_EQ_OFLD_CMD_EQSIZE) & M_FW_EQ_OFLD_CMD_EQSIZE)
5013 /* Macros for VIID parsing:
5014 VIID - [10:8] PFN, [7] VI Valid, [6:0] VI number */
5015 #define S_FW_VIID_PFN 8
5016 #define M_FW_VIID_PFN 0x7
5017 #define V_FW_VIID_PFN(x) ((x) << S_FW_VIID_PFN)
5018 #define G_FW_VIID_PFN(x) (((x) >> S_FW_VIID_PFN) & M_FW_VIID_PFN)
5020 #define S_FW_VIID_VIVLD 7
5021 #define M_FW_VIID_VIVLD 0x1
5022 #define V_FW_VIID_VIVLD(x) ((x) << S_FW_VIID_VIVLD)
5023 #define G_FW_VIID_VIVLD(x) (((x) >> S_FW_VIID_VIVLD) & M_FW_VIID_VIVLD)
5025 #define S_FW_VIID_VIN 0
5026 #define M_FW_VIID_VIN 0x7F
5027 #define V_FW_VIID_VIN(x) ((x) << S_FW_VIID_VIN)
5028 #define G_FW_VIID_VIN(x) (((x) >> S_FW_VIID_VIN) & M_FW_VIID_VIN)
5034 FW_VI_FUNC_OPENISCSI,
5035 FW_VI_FUNC_OPENFCOE,
5043 __be32 alloc_to_len16;
5044 __be16 type_to_viid;
5049 __be16 norss_rsssize;
5059 #define S_FW_VI_CMD_PFN 8
5060 #define M_FW_VI_CMD_PFN 0x7
5061 #define V_FW_VI_CMD_PFN(x) ((x) << S_FW_VI_CMD_PFN)
5062 #define G_FW_VI_CMD_PFN(x) (((x) >> S_FW_VI_CMD_PFN) & M_FW_VI_CMD_PFN)
5064 #define S_FW_VI_CMD_VFN 0
5065 #define M_FW_VI_CMD_VFN 0xff
5066 #define V_FW_VI_CMD_VFN(x) ((x) << S_FW_VI_CMD_VFN)
5067 #define G_FW_VI_CMD_VFN(x) (((x) >> S_FW_VI_CMD_VFN) & M_FW_VI_CMD_VFN)
5069 #define S_FW_VI_CMD_ALLOC 31
5070 #define M_FW_VI_CMD_ALLOC 0x1
5071 #define V_FW_VI_CMD_ALLOC(x) ((x) << S_FW_VI_CMD_ALLOC)
5072 #define G_FW_VI_CMD_ALLOC(x) \
5073 (((x) >> S_FW_VI_CMD_ALLOC) & M_FW_VI_CMD_ALLOC)
5074 #define F_FW_VI_CMD_ALLOC V_FW_VI_CMD_ALLOC(1U)
5076 #define S_FW_VI_CMD_FREE 30
5077 #define M_FW_VI_CMD_FREE 0x1
5078 #define V_FW_VI_CMD_FREE(x) ((x) << S_FW_VI_CMD_FREE)
5079 #define G_FW_VI_CMD_FREE(x) (((x) >> S_FW_VI_CMD_FREE) & M_FW_VI_CMD_FREE)
5080 #define F_FW_VI_CMD_FREE V_FW_VI_CMD_FREE(1U)
5082 #define S_FW_VI_CMD_TYPE 15
5083 #define M_FW_VI_CMD_TYPE 0x1
5084 #define V_FW_VI_CMD_TYPE(x) ((x) << S_FW_VI_CMD_TYPE)
5085 #define G_FW_VI_CMD_TYPE(x) (((x) >> S_FW_VI_CMD_TYPE) & M_FW_VI_CMD_TYPE)
5086 #define F_FW_VI_CMD_TYPE V_FW_VI_CMD_TYPE(1U)
5088 #define S_FW_VI_CMD_FUNC 12
5089 #define M_FW_VI_CMD_FUNC 0x7
5090 #define V_FW_VI_CMD_FUNC(x) ((x) << S_FW_VI_CMD_FUNC)
5091 #define G_FW_VI_CMD_FUNC(x) (((x) >> S_FW_VI_CMD_FUNC) & M_FW_VI_CMD_FUNC)
5093 #define S_FW_VI_CMD_VIID 0
5094 #define M_FW_VI_CMD_VIID 0xfff
5095 #define V_FW_VI_CMD_VIID(x) ((x) << S_FW_VI_CMD_VIID)
5096 #define G_FW_VI_CMD_VIID(x) (((x) >> S_FW_VI_CMD_VIID) & M_FW_VI_CMD_VIID)
5098 #define S_FW_VI_CMD_PORTID 4
5099 #define M_FW_VI_CMD_PORTID 0xf
5100 #define V_FW_VI_CMD_PORTID(x) ((x) << S_FW_VI_CMD_PORTID)
5101 #define G_FW_VI_CMD_PORTID(x) \
5102 (((x) >> S_FW_VI_CMD_PORTID) & M_FW_VI_CMD_PORTID)
5104 #define S_FW_VI_CMD_NORSS 11
5105 #define M_FW_VI_CMD_NORSS 0x1
5106 #define V_FW_VI_CMD_NORSS(x) ((x) << S_FW_VI_CMD_NORSS)
5107 #define G_FW_VI_CMD_NORSS(x) \
5108 (((x) >> S_FW_VI_CMD_NORSS) & M_FW_VI_CMD_NORSS)
5109 #define F_FW_VI_CMD_NORSS V_FW_VI_CMD_NORSS(1U)
5111 #define S_FW_VI_CMD_RSSSIZE 0
5112 #define M_FW_VI_CMD_RSSSIZE 0x7ff
5113 #define V_FW_VI_CMD_RSSSIZE(x) ((x) << S_FW_VI_CMD_RSSSIZE)
5114 #define G_FW_VI_CMD_RSSSIZE(x) \
5115 (((x) >> S_FW_VI_CMD_RSSSIZE) & M_FW_VI_CMD_RSSSIZE)
5117 #define S_FW_VI_CMD_IDSIIQ 0
5118 #define M_FW_VI_CMD_IDSIIQ 0x3ff
5119 #define V_FW_VI_CMD_IDSIIQ(x) ((x) << S_FW_VI_CMD_IDSIIQ)
5120 #define G_FW_VI_CMD_IDSIIQ(x) \
5121 (((x) >> S_FW_VI_CMD_IDSIIQ) & M_FW_VI_CMD_IDSIIQ)
5123 #define S_FW_VI_CMD_IDSEIQ 0
5124 #define M_FW_VI_CMD_IDSEIQ 0x3ff
5125 #define V_FW_VI_CMD_IDSEIQ(x) ((x) << S_FW_VI_CMD_IDSEIQ)
5126 #define G_FW_VI_CMD_IDSEIQ(x) \
5127 (((x) >> S_FW_VI_CMD_IDSEIQ) & M_FW_VI_CMD_IDSEIQ)
5129 /* Special VI_MAC command index ids */
5130 #define FW_VI_MAC_ADD_MAC 0x3FF
5131 #define FW_VI_MAC_ADD_PERSIST_MAC 0x3FE
5132 #define FW_VI_MAC_MAC_BASED_FREE 0x3FD
5134 enum fw_vi_mac_smac {
5135 FW_VI_MAC_MPS_TCAM_ENTRY,
5136 FW_VI_MAC_MPS_TCAM_ONLY,
5138 FW_VI_MAC_SMT_AND_MPSTCAM
5141 enum fw_vi_mac_result {
5142 FW_VI_MAC_R_SUCCESS,
5143 FW_VI_MAC_R_F_NONEXISTENT_NOMEM,
5144 FW_VI_MAC_R_SMAC_FAIL,
5145 FW_VI_MAC_R_F_ACL_CHECK
5148 struct fw_vi_mac_cmd {
5150 __be32 freemacs_to_len16;
5152 struct fw_vi_mac_exact {
5153 __be16 valid_to_idx;
5156 struct fw_vi_mac_hash {
5162 #define S_FW_VI_MAC_CMD_VIID 0
5163 #define M_FW_VI_MAC_CMD_VIID 0xfff
5164 #define V_FW_VI_MAC_CMD_VIID(x) ((x) << S_FW_VI_MAC_CMD_VIID)
5165 #define G_FW_VI_MAC_CMD_VIID(x) \
5166 (((x) >> S_FW_VI_MAC_CMD_VIID) & M_FW_VI_MAC_CMD_VIID)
5168 #define S_FW_VI_MAC_CMD_FREEMACS 31
5169 #define M_FW_VI_MAC_CMD_FREEMACS 0x1
5170 #define V_FW_VI_MAC_CMD_FREEMACS(x) ((x) << S_FW_VI_MAC_CMD_FREEMACS)
5171 #define G_FW_VI_MAC_CMD_FREEMACS(x) \
5172 (((x) >> S_FW_VI_MAC_CMD_FREEMACS) & M_FW_VI_MAC_CMD_FREEMACS)
5173 #define F_FW_VI_MAC_CMD_FREEMACS V_FW_VI_MAC_CMD_FREEMACS(1U)
5175 #define S_FW_VI_MAC_CMD_HASHVECEN 23
5176 #define M_FW_VI_MAC_CMD_HASHVECEN 0x1
5177 #define V_FW_VI_MAC_CMD_HASHVECEN(x) ((x) << S_FW_VI_MAC_CMD_HASHVECEN)
5178 #define G_FW_VI_MAC_CMD_HASHVECEN(x) \
5179 (((x) >> S_FW_VI_MAC_CMD_HASHVECEN) & M_FW_VI_MAC_CMD_HASHVECEN)
5180 #define F_FW_VI_MAC_CMD_HASHVECEN V_FW_VI_MAC_CMD_HASHVECEN(1U)
5182 #define S_FW_VI_MAC_CMD_HASHUNIEN 22
5183 #define M_FW_VI_MAC_CMD_HASHUNIEN 0x1
5184 #define V_FW_VI_MAC_CMD_HASHUNIEN(x) ((x) << S_FW_VI_MAC_CMD_HASHUNIEN)
5185 #define G_FW_VI_MAC_CMD_HASHUNIEN(x) \
5186 (((x) >> S_FW_VI_MAC_CMD_HASHUNIEN) & M_FW_VI_MAC_CMD_HASHUNIEN)
5187 #define F_FW_VI_MAC_CMD_HASHUNIEN V_FW_VI_MAC_CMD_HASHUNIEN(1U)
5189 #define S_FW_VI_MAC_CMD_VALID 15
5190 #define M_FW_VI_MAC_CMD_VALID 0x1
5191 #define V_FW_VI_MAC_CMD_VALID(x) ((x) << S_FW_VI_MAC_CMD_VALID)
5192 #define G_FW_VI_MAC_CMD_VALID(x) \
5193 (((x) >> S_FW_VI_MAC_CMD_VALID) & M_FW_VI_MAC_CMD_VALID)
5194 #define F_FW_VI_MAC_CMD_VALID V_FW_VI_MAC_CMD_VALID(1U)
5196 #define S_FW_VI_MAC_CMD_PRIO 12
5197 #define M_FW_VI_MAC_CMD_PRIO 0x7
5198 #define V_FW_VI_MAC_CMD_PRIO(x) ((x) << S_FW_VI_MAC_CMD_PRIO)
5199 #define G_FW_VI_MAC_CMD_PRIO(x) \
5200 (((x) >> S_FW_VI_MAC_CMD_PRIO) & M_FW_VI_MAC_CMD_PRIO)
5202 #define S_FW_VI_MAC_CMD_SMAC_RESULT 10
5203 #define M_FW_VI_MAC_CMD_SMAC_RESULT 0x3
5204 #define V_FW_VI_MAC_CMD_SMAC_RESULT(x) ((x) << S_FW_VI_MAC_CMD_SMAC_RESULT)
5205 #define G_FW_VI_MAC_CMD_SMAC_RESULT(x) \
5206 (((x) >> S_FW_VI_MAC_CMD_SMAC_RESULT) & M_FW_VI_MAC_CMD_SMAC_RESULT)
5208 #define S_FW_VI_MAC_CMD_IDX 0
5209 #define M_FW_VI_MAC_CMD_IDX 0x3ff
5210 #define V_FW_VI_MAC_CMD_IDX(x) ((x) << S_FW_VI_MAC_CMD_IDX)
5211 #define G_FW_VI_MAC_CMD_IDX(x) \
5212 (((x) >> S_FW_VI_MAC_CMD_IDX) & M_FW_VI_MAC_CMD_IDX)
5214 /* T4 max MTU supported */
5215 #define T4_MAX_MTU_SUPPORTED 9600
5216 #define FW_RXMODE_MTU_NO_CHG 65535
5218 struct fw_vi_rxmode_cmd {
5220 __be32 retval_len16;
5221 __be32 mtu_to_vlanexen;
5225 #define S_FW_VI_RXMODE_CMD_VIID 0
5226 #define M_FW_VI_RXMODE_CMD_VIID 0xfff
5227 #define V_FW_VI_RXMODE_CMD_VIID(x) ((x) << S_FW_VI_RXMODE_CMD_VIID)
5228 #define G_FW_VI_RXMODE_CMD_VIID(x) \
5229 (((x) >> S_FW_VI_RXMODE_CMD_VIID) & M_FW_VI_RXMODE_CMD_VIID)
5231 #define S_FW_VI_RXMODE_CMD_MTU 16
5232 #define M_FW_VI_RXMODE_CMD_MTU 0xffff
5233 #define V_FW_VI_RXMODE_CMD_MTU(x) ((x) << S_FW_VI_RXMODE_CMD_MTU)
5234 #define G_FW_VI_RXMODE_CMD_MTU(x) \
5235 (((x) >> S_FW_VI_RXMODE_CMD_MTU) & M_FW_VI_RXMODE_CMD_MTU)
5237 #define S_FW_VI_RXMODE_CMD_PROMISCEN 14
5238 #define M_FW_VI_RXMODE_CMD_PROMISCEN 0x3
5239 #define V_FW_VI_RXMODE_CMD_PROMISCEN(x) ((x) << S_FW_VI_RXMODE_CMD_PROMISCEN)
5240 #define G_FW_VI_RXMODE_CMD_PROMISCEN(x) \
5241 (((x) >> S_FW_VI_RXMODE_CMD_PROMISCEN) & M_FW_VI_RXMODE_CMD_PROMISCEN)
5243 #define S_FW_VI_RXMODE_CMD_ALLMULTIEN 12
5244 #define M_FW_VI_RXMODE_CMD_ALLMULTIEN 0x3
5245 #define V_FW_VI_RXMODE_CMD_ALLMULTIEN(x) \
5246 ((x) << S_FW_VI_RXMODE_CMD_ALLMULTIEN)
5247 #define G_FW_VI_RXMODE_CMD_ALLMULTIEN(x) \
5248 (((x) >> S_FW_VI_RXMODE_CMD_ALLMULTIEN) & M_FW_VI_RXMODE_CMD_ALLMULTIEN)
5250 #define S_FW_VI_RXMODE_CMD_BROADCASTEN 10
5251 #define M_FW_VI_RXMODE_CMD_BROADCASTEN 0x3
5252 #define V_FW_VI_RXMODE_CMD_BROADCASTEN(x) \
5253 ((x) << S_FW_VI_RXMODE_CMD_BROADCASTEN)
5254 #define G_FW_VI_RXMODE_CMD_BROADCASTEN(x) \
5255 (((x) >> S_FW_VI_RXMODE_CMD_BROADCASTEN) & M_FW_VI_RXMODE_CMD_BROADCASTEN)
5257 #define S_FW_VI_RXMODE_CMD_VLANEXEN 8
5258 #define M_FW_VI_RXMODE_CMD_VLANEXEN 0x3
5259 #define V_FW_VI_RXMODE_CMD_VLANEXEN(x) ((x) << S_FW_VI_RXMODE_CMD_VLANEXEN)
5260 #define G_FW_VI_RXMODE_CMD_VLANEXEN(x) \
5261 (((x) >> S_FW_VI_RXMODE_CMD_VLANEXEN) & M_FW_VI_RXMODE_CMD_VLANEXEN)
5263 struct fw_vi_enable_cmd {
5265 __be32 ien_to_len16;
5271 #define S_FW_VI_ENABLE_CMD_VIID 0
5272 #define M_FW_VI_ENABLE_CMD_VIID 0xfff
5273 #define V_FW_VI_ENABLE_CMD_VIID(x) ((x) << S_FW_VI_ENABLE_CMD_VIID)
5274 #define G_FW_VI_ENABLE_CMD_VIID(x) \
5275 (((x) >> S_FW_VI_ENABLE_CMD_VIID) & M_FW_VI_ENABLE_CMD_VIID)
5277 #define S_FW_VI_ENABLE_CMD_IEN 31
5278 #define M_FW_VI_ENABLE_CMD_IEN 0x1
5279 #define V_FW_VI_ENABLE_CMD_IEN(x) ((x) << S_FW_VI_ENABLE_CMD_IEN)
5280 #define G_FW_VI_ENABLE_CMD_IEN(x) \
5281 (((x) >> S_FW_VI_ENABLE_CMD_IEN) & M_FW_VI_ENABLE_CMD_IEN)
5282 #define F_FW_VI_ENABLE_CMD_IEN V_FW_VI_ENABLE_CMD_IEN(1U)
5284 #define S_FW_VI_ENABLE_CMD_EEN 30
5285 #define M_FW_VI_ENABLE_CMD_EEN 0x1
5286 #define V_FW_VI_ENABLE_CMD_EEN(x) ((x) << S_FW_VI_ENABLE_CMD_EEN)
5287 #define G_FW_VI_ENABLE_CMD_EEN(x) \
5288 (((x) >> S_FW_VI_ENABLE_CMD_EEN) & M_FW_VI_ENABLE_CMD_EEN)
5289 #define F_FW_VI_ENABLE_CMD_EEN V_FW_VI_ENABLE_CMD_EEN(1U)
5291 #define S_FW_VI_ENABLE_CMD_LED 29
5292 #define M_FW_VI_ENABLE_CMD_LED 0x1
5293 #define V_FW_VI_ENABLE_CMD_LED(x) ((x) << S_FW_VI_ENABLE_CMD_LED)
5294 #define G_FW_VI_ENABLE_CMD_LED(x) \
5295 (((x) >> S_FW_VI_ENABLE_CMD_LED) & M_FW_VI_ENABLE_CMD_LED)
5296 #define F_FW_VI_ENABLE_CMD_LED V_FW_VI_ENABLE_CMD_LED(1U)
5298 #define S_FW_VI_ENABLE_CMD_DCB_INFO 28
5299 #define M_FW_VI_ENABLE_CMD_DCB_INFO 0x1
5300 #define V_FW_VI_ENABLE_CMD_DCB_INFO(x) ((x) << S_FW_VI_ENABLE_CMD_DCB_INFO)
5301 #define G_FW_VI_ENABLE_CMD_DCB_INFO(x) \
5302 (((x) >> S_FW_VI_ENABLE_CMD_DCB_INFO) & M_FW_VI_ENABLE_CMD_DCB_INFO)
5303 #define F_FW_VI_ENABLE_CMD_DCB_INFO V_FW_VI_ENABLE_CMD_DCB_INFO(1U)
5305 /* VI VF stats offset definitions */
5306 #define VI_VF_NUM_STATS 16
5307 enum fw_vi_stats_vf_index {
5308 FW_VI_VF_STAT_TX_BCAST_BYTES_IX,
5309 FW_VI_VF_STAT_TX_BCAST_FRAMES_IX,
5310 FW_VI_VF_STAT_TX_MCAST_BYTES_IX,
5311 FW_VI_VF_STAT_TX_MCAST_FRAMES_IX,
5312 FW_VI_VF_STAT_TX_UCAST_BYTES_IX,
5313 FW_VI_VF_STAT_TX_UCAST_FRAMES_IX,
5314 FW_VI_VF_STAT_TX_DROP_FRAMES_IX,
5315 FW_VI_VF_STAT_TX_OFLD_BYTES_IX,
5316 FW_VI_VF_STAT_TX_OFLD_FRAMES_IX,
5317 FW_VI_VF_STAT_RX_BCAST_BYTES_IX,
5318 FW_VI_VF_STAT_RX_BCAST_FRAMES_IX,
5319 FW_VI_VF_STAT_RX_MCAST_BYTES_IX,
5320 FW_VI_VF_STAT_RX_MCAST_FRAMES_IX,
5321 FW_VI_VF_STAT_RX_UCAST_BYTES_IX,
5322 FW_VI_VF_STAT_RX_UCAST_FRAMES_IX,
5323 FW_VI_VF_STAT_RX_ERR_FRAMES_IX
5326 /* VI PF stats offset definitions */
5327 #define VI_PF_NUM_STATS 17
5328 enum fw_vi_stats_pf_index {
5329 FW_VI_PF_STAT_TX_BCAST_BYTES_IX,
5330 FW_VI_PF_STAT_TX_BCAST_FRAMES_IX,
5331 FW_VI_PF_STAT_TX_MCAST_BYTES_IX,
5332 FW_VI_PF_STAT_TX_MCAST_FRAMES_IX,
5333 FW_VI_PF_STAT_TX_UCAST_BYTES_IX,
5334 FW_VI_PF_STAT_TX_UCAST_FRAMES_IX,
5335 FW_VI_PF_STAT_TX_OFLD_BYTES_IX,
5336 FW_VI_PF_STAT_TX_OFLD_FRAMES_IX,
5337 FW_VI_PF_STAT_RX_BYTES_IX,
5338 FW_VI_PF_STAT_RX_FRAMES_IX,
5339 FW_VI_PF_STAT_RX_BCAST_BYTES_IX,
5340 FW_VI_PF_STAT_RX_BCAST_FRAMES_IX,
5341 FW_VI_PF_STAT_RX_MCAST_BYTES_IX,
5342 FW_VI_PF_STAT_RX_MCAST_FRAMES_IX,
5343 FW_VI_PF_STAT_RX_UCAST_BYTES_IX,
5344 FW_VI_PF_STAT_RX_UCAST_FRAMES_IX,
5345 FW_VI_PF_STAT_RX_ERR_FRAMES_IX
5348 struct fw_vi_stats_cmd {
5350 __be32 retval_len16;
5352 struct fw_vi_stats_ctl {
5363 struct fw_vi_stats_pf {
5364 __be64 tx_bcast_bytes;
5365 __be64 tx_bcast_frames;
5366 __be64 tx_mcast_bytes;
5367 __be64 tx_mcast_frames;
5368 __be64 tx_ucast_bytes;
5369 __be64 tx_ucast_frames;
5370 __be64 tx_offload_bytes;
5371 __be64 tx_offload_frames;
5373 __be64 rx_pf_frames;
5374 __be64 rx_bcast_bytes;
5375 __be64 rx_bcast_frames;
5376 __be64 rx_mcast_bytes;
5377 __be64 rx_mcast_frames;
5378 __be64 rx_ucast_bytes;
5379 __be64 rx_ucast_frames;
5380 __be64 rx_err_frames;
5382 struct fw_vi_stats_vf {
5383 __be64 tx_bcast_bytes;
5384 __be64 tx_bcast_frames;
5385 __be64 tx_mcast_bytes;
5386 __be64 tx_mcast_frames;
5387 __be64 tx_ucast_bytes;
5388 __be64 tx_ucast_frames;
5389 __be64 tx_drop_frames;
5390 __be64 tx_offload_bytes;
5391 __be64 tx_offload_frames;
5392 __be64 rx_bcast_bytes;
5393 __be64 rx_bcast_frames;
5394 __be64 rx_mcast_bytes;
5395 __be64 rx_mcast_frames;
5396 __be64 rx_ucast_bytes;
5397 __be64 rx_ucast_frames;
5398 __be64 rx_err_frames;
5403 #define S_FW_VI_STATS_CMD_VIID 0
5404 #define M_FW_VI_STATS_CMD_VIID 0xfff
5405 #define V_FW_VI_STATS_CMD_VIID(x) ((x) << S_FW_VI_STATS_CMD_VIID)
5406 #define G_FW_VI_STATS_CMD_VIID(x) \
5407 (((x) >> S_FW_VI_STATS_CMD_VIID) & M_FW_VI_STATS_CMD_VIID)
5409 #define S_FW_VI_STATS_CMD_NSTATS 12
5410 #define M_FW_VI_STATS_CMD_NSTATS 0x7
5411 #define V_FW_VI_STATS_CMD_NSTATS(x) ((x) << S_FW_VI_STATS_CMD_NSTATS)
5412 #define G_FW_VI_STATS_CMD_NSTATS(x) \
5413 (((x) >> S_FW_VI_STATS_CMD_NSTATS) & M_FW_VI_STATS_CMD_NSTATS)
5415 #define S_FW_VI_STATS_CMD_IX 0
5416 #define M_FW_VI_STATS_CMD_IX 0x1f
5417 #define V_FW_VI_STATS_CMD_IX(x) ((x) << S_FW_VI_STATS_CMD_IX)
5418 #define G_FW_VI_STATS_CMD_IX(x) \
5419 (((x) >> S_FW_VI_STATS_CMD_IX) & M_FW_VI_STATS_CMD_IX)
5421 struct fw_acl_mac_cmd {
5436 #define S_FW_ACL_MAC_CMD_PFN 8
5437 #define M_FW_ACL_MAC_CMD_PFN 0x7
5438 #define V_FW_ACL_MAC_CMD_PFN(x) ((x) << S_FW_ACL_MAC_CMD_PFN)
5439 #define G_FW_ACL_MAC_CMD_PFN(x) \
5440 (((x) >> S_FW_ACL_MAC_CMD_PFN) & M_FW_ACL_MAC_CMD_PFN)
5442 #define S_FW_ACL_MAC_CMD_VFN 0
5443 #define M_FW_ACL_MAC_CMD_VFN 0xff
5444 #define V_FW_ACL_MAC_CMD_VFN(x) ((x) << S_FW_ACL_MAC_CMD_VFN)
5445 #define G_FW_ACL_MAC_CMD_VFN(x) \
5446 (((x) >> S_FW_ACL_MAC_CMD_VFN) & M_FW_ACL_MAC_CMD_VFN)
5448 #define S_FW_ACL_MAC_CMD_EN 31
5449 #define M_FW_ACL_MAC_CMD_EN 0x1
5450 #define V_FW_ACL_MAC_CMD_EN(x) ((x) << S_FW_ACL_MAC_CMD_EN)
5451 #define G_FW_ACL_MAC_CMD_EN(x) \
5452 (((x) >> S_FW_ACL_MAC_CMD_EN) & M_FW_ACL_MAC_CMD_EN)
5453 #define F_FW_ACL_MAC_CMD_EN V_FW_ACL_MAC_CMD_EN(1U)
5455 struct fw_acl_vlan_cmd {
5464 #define S_FW_ACL_VLAN_CMD_PFN 8
5465 #define M_FW_ACL_VLAN_CMD_PFN 0x7
5466 #define V_FW_ACL_VLAN_CMD_PFN(x) ((x) << S_FW_ACL_VLAN_CMD_PFN)
5467 #define G_FW_ACL_VLAN_CMD_PFN(x) \
5468 (((x) >> S_FW_ACL_VLAN_CMD_PFN) & M_FW_ACL_VLAN_CMD_PFN)
5470 #define S_FW_ACL_VLAN_CMD_VFN 0
5471 #define M_FW_ACL_VLAN_CMD_VFN 0xff
5472 #define V_FW_ACL_VLAN_CMD_VFN(x) ((x) << S_FW_ACL_VLAN_CMD_VFN)
5473 #define G_FW_ACL_VLAN_CMD_VFN(x) \
5474 (((x) >> S_FW_ACL_VLAN_CMD_VFN) & M_FW_ACL_VLAN_CMD_VFN)
5476 #define S_FW_ACL_VLAN_CMD_EN 31
5477 #define M_FW_ACL_VLAN_CMD_EN 0x1
5478 #define V_FW_ACL_VLAN_CMD_EN(x) ((x) << S_FW_ACL_VLAN_CMD_EN)
5479 #define G_FW_ACL_VLAN_CMD_EN(x) \
5480 (((x) >> S_FW_ACL_VLAN_CMD_EN) & M_FW_ACL_VLAN_CMD_EN)
5481 #define F_FW_ACL_VLAN_CMD_EN V_FW_ACL_VLAN_CMD_EN(1U)
5483 #define S_FW_ACL_VLAN_CMD_DROPNOVLAN 7
5484 #define M_FW_ACL_VLAN_CMD_DROPNOVLAN 0x1
5485 #define V_FW_ACL_VLAN_CMD_DROPNOVLAN(x) ((x) << S_FW_ACL_VLAN_CMD_DROPNOVLAN)
5486 #define G_FW_ACL_VLAN_CMD_DROPNOVLAN(x) \
5487 (((x) >> S_FW_ACL_VLAN_CMD_DROPNOVLAN) & M_FW_ACL_VLAN_CMD_DROPNOVLAN)
5488 #define F_FW_ACL_VLAN_CMD_DROPNOVLAN V_FW_ACL_VLAN_CMD_DROPNOVLAN(1U)
5490 #define S_FW_ACL_VLAN_CMD_FM 6
5491 #define M_FW_ACL_VLAN_CMD_FM 0x1
5492 #define V_FW_ACL_VLAN_CMD_FM(x) ((x) << S_FW_ACL_VLAN_CMD_FM)
5493 #define G_FW_ACL_VLAN_CMD_FM(x) \
5494 (((x) >> S_FW_ACL_VLAN_CMD_FM) & M_FW_ACL_VLAN_CMD_FM)
5495 #define F_FW_ACL_VLAN_CMD_FM V_FW_ACL_VLAN_CMD_FM(1U)
5497 /* port capabilities bitmap */
5499 FW_PORT_CAP_SPEED_100M = 0x0001,
5500 FW_PORT_CAP_SPEED_1G = 0x0002,
5501 FW_PORT_CAP_SPEED_2_5G = 0x0004,
5502 FW_PORT_CAP_SPEED_10G = 0x0008,
5503 FW_PORT_CAP_SPEED_40G = 0x0010,
5504 FW_PORT_CAP_SPEED_100G = 0x0020,
5505 FW_PORT_CAP_FC_RX = 0x0040,
5506 FW_PORT_CAP_FC_TX = 0x0080,
5507 FW_PORT_CAP_ANEG = 0x0100,
5508 FW_PORT_CAP_MDIX = 0x0200,
5509 FW_PORT_CAP_MDIAUTO = 0x0400,
5510 FW_PORT_CAP_FEC = 0x0800,
5511 FW_PORT_CAP_TECHKR = 0x1000,
5512 FW_PORT_CAP_TECHKX4 = 0x2000,
5515 #define S_FW_PORT_AUXLINFO_MDI 3
5516 #define M_FW_PORT_AUXLINFO_MDI 0x3
5517 #define V_FW_PORT_AUXLINFO_MDI(x) ((x) << S_FW_PORT_AUXLINFO_MDI)
5518 #define G_FW_PORT_AUXLINFO_MDI(x) \
5519 (((x) >> S_FW_PORT_AUXLINFO_MDI) & M_FW_PORT_AUXLINFO_MDI)
5521 #define S_FW_PORT_AUXLINFO_KX4 2
5522 #define M_FW_PORT_AUXLINFO_KX4 0x1
5523 #define V_FW_PORT_AUXLINFO_KX4(x) ((x) << S_FW_PORT_AUXLINFO_KX4)
5524 #define G_FW_PORT_AUXLINFO_KX4(x) \
5525 (((x) >> S_FW_PORT_AUXLINFO_KX4) & M_FW_PORT_AUXLINFO_KX4)
5526 #define F_FW_PORT_AUXLINFO_KX4 V_FW_PORT_AUXLINFO_KX4(1U)
5528 #define S_FW_PORT_AUXLINFO_KR 1
5529 #define M_FW_PORT_AUXLINFO_KR 0x1
5530 #define V_FW_PORT_AUXLINFO_KR(x) ((x) << S_FW_PORT_AUXLINFO_KR)
5531 #define G_FW_PORT_AUXLINFO_KR(x) \
5532 (((x) >> S_FW_PORT_AUXLINFO_KR) & M_FW_PORT_AUXLINFO_KR)
5533 #define F_FW_PORT_AUXLINFO_KR V_FW_PORT_AUXLINFO_KR(1U)
5535 #define S_FW_PORT_AUXLINFO_FEC 0
5536 #define M_FW_PORT_AUXLINFO_FEC 0x1
5537 #define V_FW_PORT_AUXLINFO_FEC(x) ((x) << S_FW_PORT_AUXLINFO_FEC)
5538 #define G_FW_PORT_AUXLINFO_FEC(x) \
5539 (((x) >> S_FW_PORT_AUXLINFO_FEC) & M_FW_PORT_AUXLINFO_FEC)
5540 #define F_FW_PORT_AUXLINFO_FEC V_FW_PORT_AUXLINFO_FEC(1U)
5542 #define S_FW_PORT_RCAP_AUX 11
5543 #define M_FW_PORT_RCAP_AUX 0x7
5544 #define V_FW_PORT_RCAP_AUX(x) ((x) << S_FW_PORT_RCAP_AUX)
5545 #define G_FW_PORT_RCAP_AUX(x) \
5546 (((x) >> S_FW_PORT_RCAP_AUX) & M_FW_PORT_RCAP_AUX)
5548 #define S_FW_PORT_CAP_SPEED 0
5549 #define M_FW_PORT_CAP_SPEED 0x3f
5550 #define V_FW_PORT_CAP_SPEED(x) ((x) << S_FW_PORT_CAP_SPEED)
5551 #define G_FW_PORT_CAP_SPEED(x) \
5552 (((x) >> S_FW_PORT_CAP_SPEED) & M_FW_PORT_CAP_SPEED)
5554 #define S_FW_PORT_CAP_FC 6
5555 #define M_FW_PORT_CAP_FC 0x3
5556 #define V_FW_PORT_CAP_FC(x) ((x) << S_FW_PORT_CAP_FC)
5557 #define G_FW_PORT_CAP_FC(x) \
5558 (((x) >> S_FW_PORT_CAP_FC) & M_FW_PORT_CAP_FC)
5560 #define S_FW_PORT_CAP_ANEG 8
5561 #define M_FW_PORT_CAP_ANEG 0x1
5562 #define V_FW_PORT_CAP_ANEG(x) ((x) << S_FW_PORT_CAP_ANEG)
5563 #define G_FW_PORT_CAP_ANEG(x) \
5564 (((x) >> S_FW_PORT_CAP_ANEG) & M_FW_PORT_CAP_ANEG)
5567 FW_PORT_CAP_MDI_UNCHANGED,
5568 FW_PORT_CAP_MDI_AUTO,
5569 FW_PORT_CAP_MDI_F_STRAIGHT,
5570 FW_PORT_CAP_MDI_F_CROSSOVER
5573 #define S_FW_PORT_CAP_MDI 9
5574 #define M_FW_PORT_CAP_MDI 3
5575 #define V_FW_PORT_CAP_MDI(x) ((x) << S_FW_PORT_CAP_MDI)
5576 #define G_FW_PORT_CAP_MDI(x) (((x) >> S_FW_PORT_CAP_MDI) & M_FW_PORT_CAP_MDI)
5578 enum fw_port_action {
5579 FW_PORT_ACTION_L1_CFG = 0x0001,
5580 FW_PORT_ACTION_L2_CFG = 0x0002,
5581 FW_PORT_ACTION_GET_PORT_INFO = 0x0003,
5582 FW_PORT_ACTION_L2_PPP_CFG = 0x0004,
5583 FW_PORT_ACTION_L2_DCB_CFG = 0x0005,
5584 FW_PORT_ACTION_DCB_READ_TRANS = 0x0006,
5585 FW_PORT_ACTION_DCB_READ_RECV = 0x0007,
5586 FW_PORT_ACTION_DCB_READ_DET = 0x0008,
5587 FW_PORT_ACTION_LOW_PWR_TO_NORMAL = 0x0010,
5588 FW_PORT_ACTION_L1_LOW_PWR_EN = 0x0011,
5589 FW_PORT_ACTION_L2_WOL_MODE_EN = 0x0012,
5590 FW_PORT_ACTION_LPBK_TO_NORMAL = 0x0020,
5591 FW_PORT_ACTION_L1_SS_LPBK_ASIC = 0x0021,
5592 FW_PORT_ACTION_MAC_LPBK = 0x0022,
5593 FW_PORT_ACTION_L1_WS_LPBK_ASIC = 0x0023,
5594 FW_PORT_ACTION_L1_EXT_LPBK = 0x0026,
5595 FW_PORT_ACTION_DIAGNOSTICS = 0x0027,
5596 FW_PORT_ACTION_PCS_LPBK = 0x0028,
5597 FW_PORT_ACTION_PHY_RESET = 0x0040,
5598 FW_PORT_ACTION_PMA_RESET = 0x0041,
5599 FW_PORT_ACTION_PCS_RESET = 0x0042,
5600 FW_PORT_ACTION_PHYXS_RESET = 0x0043,
5601 FW_PORT_ACTION_DTEXS_REEST = 0x0044,
5602 FW_PORT_ACTION_AN_RESET = 0x0045,
5605 enum fw_port_l2cfg_ctlbf {
5606 FW_PORT_L2_CTLBF_OVLAN0 = 0x01,
5607 FW_PORT_L2_CTLBF_OVLAN1 = 0x02,
5608 FW_PORT_L2_CTLBF_OVLAN2 = 0x04,
5609 FW_PORT_L2_CTLBF_OVLAN3 = 0x08,
5610 FW_PORT_L2_CTLBF_IVLAN = 0x10,
5611 FW_PORT_L2_CTLBF_TXIPG = 0x20,
5612 FW_PORT_L2_CTLBF_MTU = 0x40
5615 enum fw_port_dcb_cfg {
5616 FW_PORT_DCB_CFG_PG = 0x01,
5617 FW_PORT_DCB_CFG_PFC = 0x02,
5618 FW_PORT_DCB_CFG_APPL = 0x04
5621 enum fw_port_dcb_cfg_rc {
5622 FW_PORT_DCB_CFG_SUCCESS = 0x0,
5623 FW_PORT_DCB_CFG_ERROR = 0x1
5626 enum fw_port_dcb_type {
5627 FW_PORT_DCB_TYPE_PGID = 0x00,
5628 FW_PORT_DCB_TYPE_PGRATE = 0x01,
5629 FW_PORT_DCB_TYPE_PRIORATE = 0x02,
5630 FW_PORT_DCB_TYPE_PFC = 0x03,
5631 FW_PORT_DCB_TYPE_APP_ID = 0x04,
5632 FW_PORT_DCB_TYPE_CONTROL = 0x05,
5635 enum fw_port_diag_ops {
5636 FW_PORT_DIAGS_TEMP = 0x00,
5637 FW_PORT_DIAGS_TX_POWER = 0x01,
5638 FW_PORT_DIAGS_RX_POWER = 0x02,
5641 struct fw_port_cmd {
5642 __be32 op_to_portid;
5643 __be32 action_to_len16;
5645 struct fw_port_l1cfg {
5649 struct fw_port_l2cfg {
5651 __u8 ovlan3_to_ivlan0;
5653 __be16 txipg_force_pinfo;
5664 struct fw_port_info {
5665 __be32 lstatus_to_modtype;
5674 struct fw_port_diags {
5680 struct fw_port_dcb_pgid {
5687 struct fw_port_dcb_pgrate {
5691 __u8 num_tcs_supported;
5694 struct fw_port_dcb_priorate {
5698 __u8 strict_priorate[8];
5700 struct fw_port_dcb_pfc {
5706 struct fw_port_app_priority {
5715 struct fw_port_dcb_control {
5725 #define S_FW_PORT_CMD_READ 22
5726 #define M_FW_PORT_CMD_READ 0x1
5727 #define V_FW_PORT_CMD_READ(x) ((x) << S_FW_PORT_CMD_READ)
5728 #define G_FW_PORT_CMD_READ(x) \
5729 (((x) >> S_FW_PORT_CMD_READ) & M_FW_PORT_CMD_READ)
5730 #define F_FW_PORT_CMD_READ V_FW_PORT_CMD_READ(1U)
5732 #define S_FW_PORT_CMD_PORTID 0
5733 #define M_FW_PORT_CMD_PORTID 0xf
5734 #define V_FW_PORT_CMD_PORTID(x) ((x) << S_FW_PORT_CMD_PORTID)
5735 #define G_FW_PORT_CMD_PORTID(x) \
5736 (((x) >> S_FW_PORT_CMD_PORTID) & M_FW_PORT_CMD_PORTID)
5738 #define S_FW_PORT_CMD_ACTION 16
5739 #define M_FW_PORT_CMD_ACTION 0xffff
5740 #define V_FW_PORT_CMD_ACTION(x) ((x) << S_FW_PORT_CMD_ACTION)
5741 #define G_FW_PORT_CMD_ACTION(x) \
5742 (((x) >> S_FW_PORT_CMD_ACTION) & M_FW_PORT_CMD_ACTION)
5744 #define S_FW_PORT_CMD_OVLAN3 7
5745 #define M_FW_PORT_CMD_OVLAN3 0x1
5746 #define V_FW_PORT_CMD_OVLAN3(x) ((x) << S_FW_PORT_CMD_OVLAN3)
5747 #define G_FW_PORT_CMD_OVLAN3(x) \
5748 (((x) >> S_FW_PORT_CMD_OVLAN3) & M_FW_PORT_CMD_OVLAN3)
5749 #define F_FW_PORT_CMD_OVLAN3 V_FW_PORT_CMD_OVLAN3(1U)
5751 #define S_FW_PORT_CMD_OVLAN2 6
5752 #define M_FW_PORT_CMD_OVLAN2 0x1
5753 #define V_FW_PORT_CMD_OVLAN2(x) ((x) << S_FW_PORT_CMD_OVLAN2)
5754 #define G_FW_PORT_CMD_OVLAN2(x) \
5755 (((x) >> S_FW_PORT_CMD_OVLAN2) & M_FW_PORT_CMD_OVLAN2)
5756 #define F_FW_PORT_CMD_OVLAN2 V_FW_PORT_CMD_OVLAN2(1U)
5758 #define S_FW_PORT_CMD_OVLAN1 5
5759 #define M_FW_PORT_CMD_OVLAN1 0x1
5760 #define V_FW_PORT_CMD_OVLAN1(x) ((x) << S_FW_PORT_CMD_OVLAN1)
5761 #define G_FW_PORT_CMD_OVLAN1(x) \
5762 (((x) >> S_FW_PORT_CMD_OVLAN1) & M_FW_PORT_CMD_OVLAN1)
5763 #define F_FW_PORT_CMD_OVLAN1 V_FW_PORT_CMD_OVLAN1(1U)
5765 #define S_FW_PORT_CMD_OVLAN0 4
5766 #define M_FW_PORT_CMD_OVLAN0 0x1
5767 #define V_FW_PORT_CMD_OVLAN0(x) ((x) << S_FW_PORT_CMD_OVLAN0)
5768 #define G_FW_PORT_CMD_OVLAN0(x) \
5769 (((x) >> S_FW_PORT_CMD_OVLAN0) & M_FW_PORT_CMD_OVLAN0)
5770 #define F_FW_PORT_CMD_OVLAN0 V_FW_PORT_CMD_OVLAN0(1U)
5772 #define S_FW_PORT_CMD_IVLAN0 3
5773 #define M_FW_PORT_CMD_IVLAN0 0x1
5774 #define V_FW_PORT_CMD_IVLAN0(x) ((x) << S_FW_PORT_CMD_IVLAN0)
5775 #define G_FW_PORT_CMD_IVLAN0(x) \
5776 (((x) >> S_FW_PORT_CMD_IVLAN0) & M_FW_PORT_CMD_IVLAN0)
5777 #define F_FW_PORT_CMD_IVLAN0 V_FW_PORT_CMD_IVLAN0(1U)
5779 #define S_FW_PORT_CMD_TXIPG 3
5780 #define M_FW_PORT_CMD_TXIPG 0x1fff
5781 #define V_FW_PORT_CMD_TXIPG(x) ((x) << S_FW_PORT_CMD_TXIPG)
5782 #define G_FW_PORT_CMD_TXIPG(x) \
5783 (((x) >> S_FW_PORT_CMD_TXIPG) & M_FW_PORT_CMD_TXIPG)
5785 #define S_FW_PORT_CMD_FORCE_PINFO 0
5786 #define M_FW_PORT_CMD_FORCE_PINFO 0x1
5787 #define V_FW_PORT_CMD_FORCE_PINFO(x) ((x) << S_FW_PORT_CMD_FORCE_PINFO)
5788 #define G_FW_PORT_CMD_FORCE_PINFO(x) \
5789 (((x) >> S_FW_PORT_CMD_FORCE_PINFO) & M_FW_PORT_CMD_FORCE_PINFO)
5790 #define F_FW_PORT_CMD_FORCE_PINFO V_FW_PORT_CMD_FORCE_PINFO(1U)
5792 #define S_FW_PORT_CMD_LSTATUS 31
5793 #define M_FW_PORT_CMD_LSTATUS 0x1
5794 #define V_FW_PORT_CMD_LSTATUS(x) ((x) << S_FW_PORT_CMD_LSTATUS)
5795 #define G_FW_PORT_CMD_LSTATUS(x) \
5796 (((x) >> S_FW_PORT_CMD_LSTATUS) & M_FW_PORT_CMD_LSTATUS)
5797 #define F_FW_PORT_CMD_LSTATUS V_FW_PORT_CMD_LSTATUS(1U)
5799 #define S_FW_PORT_CMD_LSPEED 24
5800 #define M_FW_PORT_CMD_LSPEED 0x3f
5801 #define V_FW_PORT_CMD_LSPEED(x) ((x) << S_FW_PORT_CMD_LSPEED)
5802 #define G_FW_PORT_CMD_LSPEED(x) \
5803 (((x) >> S_FW_PORT_CMD_LSPEED) & M_FW_PORT_CMD_LSPEED)
5805 #define S_FW_PORT_CMD_TXPAUSE 23
5806 #define M_FW_PORT_CMD_TXPAUSE 0x1
5807 #define V_FW_PORT_CMD_TXPAUSE(x) ((x) << S_FW_PORT_CMD_TXPAUSE)
5808 #define G_FW_PORT_CMD_TXPAUSE(x) \
5809 (((x) >> S_FW_PORT_CMD_TXPAUSE) & M_FW_PORT_CMD_TXPAUSE)
5810 #define F_FW_PORT_CMD_TXPAUSE V_FW_PORT_CMD_TXPAUSE(1U)
5812 #define S_FW_PORT_CMD_RXPAUSE 22
5813 #define M_FW_PORT_CMD_RXPAUSE 0x1
5814 #define V_FW_PORT_CMD_RXPAUSE(x) ((x) << S_FW_PORT_CMD_RXPAUSE)
5815 #define G_FW_PORT_CMD_RXPAUSE(x) \
5816 (((x) >> S_FW_PORT_CMD_RXPAUSE) & M_FW_PORT_CMD_RXPAUSE)
5817 #define F_FW_PORT_CMD_RXPAUSE V_FW_PORT_CMD_RXPAUSE(1U)
5819 #define S_FW_PORT_CMD_MDIOCAP 21
5820 #define M_FW_PORT_CMD_MDIOCAP 0x1
5821 #define V_FW_PORT_CMD_MDIOCAP(x) ((x) << S_FW_PORT_CMD_MDIOCAP)
5822 #define G_FW_PORT_CMD_MDIOCAP(x) \
5823 (((x) >> S_FW_PORT_CMD_MDIOCAP) & M_FW_PORT_CMD_MDIOCAP)
5824 #define F_FW_PORT_CMD_MDIOCAP V_FW_PORT_CMD_MDIOCAP(1U)
5826 #define S_FW_PORT_CMD_MDIOADDR 16
5827 #define M_FW_PORT_CMD_MDIOADDR 0x1f
5828 #define V_FW_PORT_CMD_MDIOADDR(x) ((x) << S_FW_PORT_CMD_MDIOADDR)
5829 #define G_FW_PORT_CMD_MDIOADDR(x) \
5830 (((x) >> S_FW_PORT_CMD_MDIOADDR) & M_FW_PORT_CMD_MDIOADDR)
5832 #define S_FW_PORT_CMD_LPTXPAUSE 15
5833 #define M_FW_PORT_CMD_LPTXPAUSE 0x1
5834 #define V_FW_PORT_CMD_LPTXPAUSE(x) ((x) << S_FW_PORT_CMD_LPTXPAUSE)
5835 #define G_FW_PORT_CMD_LPTXPAUSE(x) \
5836 (((x) >> S_FW_PORT_CMD_LPTXPAUSE) & M_FW_PORT_CMD_LPTXPAUSE)
5837 #define F_FW_PORT_CMD_LPTXPAUSE V_FW_PORT_CMD_LPTXPAUSE(1U)
5839 #define S_FW_PORT_CMD_LPRXPAUSE 14
5840 #define M_FW_PORT_CMD_LPRXPAUSE 0x1
5841 #define V_FW_PORT_CMD_LPRXPAUSE(x) ((x) << S_FW_PORT_CMD_LPRXPAUSE)
5842 #define G_FW_PORT_CMD_LPRXPAUSE(x) \
5843 (((x) >> S_FW_PORT_CMD_LPRXPAUSE) & M_FW_PORT_CMD_LPRXPAUSE)
5844 #define F_FW_PORT_CMD_LPRXPAUSE V_FW_PORT_CMD_LPRXPAUSE(1U)
5846 #define S_FW_PORT_CMD_PTYPE 8
5847 #define M_FW_PORT_CMD_PTYPE 0x1f
5848 #define V_FW_PORT_CMD_PTYPE(x) ((x) << S_FW_PORT_CMD_PTYPE)
5849 #define G_FW_PORT_CMD_PTYPE(x) \
5850 (((x) >> S_FW_PORT_CMD_PTYPE) & M_FW_PORT_CMD_PTYPE)
5852 #define S_FW_PORT_CMD_LINKDNRC 5
5853 #define M_FW_PORT_CMD_LINKDNRC 0x7
5854 #define V_FW_PORT_CMD_LINKDNRC(x) ((x) << S_FW_PORT_CMD_LINKDNRC)
5855 #define G_FW_PORT_CMD_LINKDNRC(x) \
5856 (((x) >> S_FW_PORT_CMD_LINKDNRC) & M_FW_PORT_CMD_LINKDNRC)
5858 #define S_FW_PORT_CMD_MODTYPE 0
5859 #define M_FW_PORT_CMD_MODTYPE 0x1f
5860 #define V_FW_PORT_CMD_MODTYPE(x) ((x) << S_FW_PORT_CMD_MODTYPE)
5861 #define G_FW_PORT_CMD_MODTYPE(x) \
5862 (((x) >> S_FW_PORT_CMD_MODTYPE) & M_FW_PORT_CMD_MODTYPE)
5864 #define S_FW_PORT_CMD_APPLY 7
5865 #define M_FW_PORT_CMD_APPLY 0x1
5866 #define V_FW_PORT_CMD_APPLY(x) ((x) << S_FW_PORT_CMD_APPLY)
5867 #define G_FW_PORT_CMD_APPLY(x) \
5868 (((x) >> S_FW_PORT_CMD_APPLY) & M_FW_PORT_CMD_APPLY)
5869 #define F_FW_PORT_CMD_APPLY V_FW_PORT_CMD_APPLY(1U)
5871 #define S_FW_PORT_CMD_ALL_SYNCD 7
5872 #define M_FW_PORT_CMD_ALL_SYNCD 0x1
5873 #define V_FW_PORT_CMD_ALL_SYNCD(x) ((x) << S_FW_PORT_CMD_ALL_SYNCD)
5874 #define G_FW_PORT_CMD_ALL_SYNCD(x) \
5875 (((x) >> S_FW_PORT_CMD_ALL_SYNCD) & M_FW_PORT_CMD_ALL_SYNCD)
5876 #define F_FW_PORT_CMD_ALL_SYNCD V_FW_PORT_CMD_ALL_SYNCD(1U)
5879 * These are configured into the VPD and hence tools that generate
5880 * VPD may use this enumeration.
5881 * extPHY #lanes T4_I2C extI2C BP_Eq BP_ANEG Speed
5884 FW_PORT_TYPE_FIBER_XFI = 0, /* Y, 1, N, Y, N, N, 10G */
5885 FW_PORT_TYPE_FIBER_XAUI = 1, /* Y, 4, N, Y, N, N, 10G */
5886 FW_PORT_TYPE_BT_SGMII = 2, /* Y, 1, No, No, No, No, 1G/100M */
5887 FW_PORT_TYPE_BT_XFI = 3, /* Y, 1, No, No, No, No, 10G */
5888 FW_PORT_TYPE_BT_XAUI = 4, /* Y, 4, No, No, No, No, 10G/1G/100M? */
5889 FW_PORT_TYPE_KX4 = 5, /* No, 4, No, No, Yes, Yes, 10G */
5890 FW_PORT_TYPE_CX4 = 6, /* No, 4, No, No, No, No, 10G */
5891 FW_PORT_TYPE_KX = 7, /* No, 1, No, No, Yes, No, 1G */
5892 FW_PORT_TYPE_KR = 8, /* No, 1, No, No, Yes, Yes, 10G */
5893 FW_PORT_TYPE_SFP = 9, /* No, 1, Yes, No, No, No, 10G */
5894 FW_PORT_TYPE_BP_AP = 10, /* No, 1, No, No, Yes, Yes, 10G, BP ANGE */
5895 FW_PORT_TYPE_BP4_AP = 11, /* No, 4, No, No, Yes, Yes, 10G, BP ANGE */
5896 FW_PORT_TYPE_QSFP_10G = 12, /* No, 1, Yes, No, No, No, 10G */
5897 FW_PORT_TYPE_QSFP = 14, /* No, 4, Yes, No, No, No, 40G */
5898 FW_PORT_TYPE_BP40_BA = 15, /* No, 4, No, No, Yes, Yes, 40G/10G/1G, BP ANGE */
5900 FW_PORT_TYPE_NONE = M_FW_PORT_CMD_PTYPE
5903 /* These are read from module's EEPROM and determined once the
5904 module is inserted. */
5905 enum fw_port_module_type {
5906 FW_PORT_MOD_TYPE_NA = 0x0,
5907 FW_PORT_MOD_TYPE_LR = 0x1,
5908 FW_PORT_MOD_TYPE_SR = 0x2,
5909 FW_PORT_MOD_TYPE_ER = 0x3,
5910 FW_PORT_MOD_TYPE_TWINAX_PASSIVE = 0x4,
5911 FW_PORT_MOD_TYPE_TWINAX_ACTIVE = 0x5,
5912 FW_PORT_MOD_TYPE_LRM = 0x6,
5913 FW_PORT_MOD_TYPE_ERROR = M_FW_PORT_CMD_MODTYPE - 3,
5914 FW_PORT_MOD_TYPE_UNKNOWN = M_FW_PORT_CMD_MODTYPE - 2,
5915 FW_PORT_MOD_TYPE_NOTSUPPORTED = M_FW_PORT_CMD_MODTYPE - 1,
5916 FW_PORT_MOD_TYPE_NONE = M_FW_PORT_CMD_MODTYPE
5919 /* used by FW and tools may use this to generate VPD */
5920 enum fw_port_mod_sub_type {
5921 FW_PORT_MOD_SUB_TYPE_NA,
5922 FW_PORT_MOD_SUB_TYPE_MV88E114X=0x1,
5923 FW_PORT_MOD_SUB_TYPE_TN8022=0x2,
5924 FW_PORT_MOD_SUB_TYPE_AQ1202=0x3,
5925 FW_PORT_MOD_SUB_TYPE_88x3120=0x4,
5926 FW_PORT_MOD_SUB_TYPE_BCM84834=0x5,
5927 FW_PORT_MOD_SUB_TYPE_BT_VSC8634=0x8,
5930 * The following will never been in the VPD. They are TWINAX cable
5931 * lengths decoded from SFP+ module i2c PROMs. These should almost
5932 * certainly go somewhere else ...
5934 FW_PORT_MOD_SUB_TYPE_TWINAX_1=0x9,
5935 FW_PORT_MOD_SUB_TYPE_TWINAX_3=0xA,
5936 FW_PORT_MOD_SUB_TYPE_TWINAX_5=0xB,
5937 FW_PORT_MOD_SUB_TYPE_TWINAX_7=0xC,
5940 /* link down reason codes (3b) */
5941 enum fw_port_link_dn_rc {
5942 FW_PORT_LINK_DN_RC_NONE,
5943 FW_PORT_LINK_DN_RC_REMFLT, /* Remote fault detected */
5944 FW_PORT_LINK_DN_ANEG_F, /* Auto-negotiation fault */
5945 FW_PORT_LINK_DN_RESERVED3,
5946 FW_PORT_LINK_DN_OVERHEAT, /* Port overheated */
5947 FW_PORT_LINK_DN_UNKNOWN, /* Unable to determine reason */
5948 FW_PORT_LINK_DN_RX_LOS, /* No RX signal detected */
5949 FW_PORT_LINK_DN_RESERVED7
5953 #define FW_NUM_PORT_STATS 50
5954 #define FW_NUM_PORT_TX_STATS 23
5955 #define FW_NUM_PORT_RX_STATS 27
5957 enum fw_port_stats_tx_index {
5958 FW_STAT_TX_PORT_BYTES_IX,
5959 FW_STAT_TX_PORT_FRAMES_IX,
5960 FW_STAT_TX_PORT_BCAST_IX,
5961 FW_STAT_TX_PORT_MCAST_IX,
5962 FW_STAT_TX_PORT_UCAST_IX,
5963 FW_STAT_TX_PORT_ERROR_IX,
5964 FW_STAT_TX_PORT_64B_IX,
5965 FW_STAT_TX_PORT_65B_127B_IX,
5966 FW_STAT_TX_PORT_128B_255B_IX,
5967 FW_STAT_TX_PORT_256B_511B_IX,
5968 FW_STAT_TX_PORT_512B_1023B_IX,
5969 FW_STAT_TX_PORT_1024B_1518B_IX,
5970 FW_STAT_TX_PORT_1519B_MAX_IX,
5971 FW_STAT_TX_PORT_DROP_IX,
5972 FW_STAT_TX_PORT_PAUSE_IX,
5973 FW_STAT_TX_PORT_PPP0_IX,
5974 FW_STAT_TX_PORT_PPP1_IX,
5975 FW_STAT_TX_PORT_PPP2_IX,
5976 FW_STAT_TX_PORT_PPP3_IX,
5977 FW_STAT_TX_PORT_PPP4_IX,
5978 FW_STAT_TX_PORT_PPP5_IX,
5979 FW_STAT_TX_PORT_PPP6_IX,
5980 FW_STAT_TX_PORT_PPP7_IX
5983 enum fw_port_stat_rx_index {
5984 FW_STAT_RX_PORT_BYTES_IX,
5985 FW_STAT_RX_PORT_FRAMES_IX,
5986 FW_STAT_RX_PORT_BCAST_IX,
5987 FW_STAT_RX_PORT_MCAST_IX,
5988 FW_STAT_RX_PORT_UCAST_IX,
5989 FW_STAT_RX_PORT_MTU_ERROR_IX,
5990 FW_STAT_RX_PORT_MTU_CRC_ERROR_IX,
5991 FW_STAT_RX_PORT_CRC_ERROR_IX,
5992 FW_STAT_RX_PORT_LEN_ERROR_IX,
5993 FW_STAT_RX_PORT_SYM_ERROR_IX,
5994 FW_STAT_RX_PORT_64B_IX,
5995 FW_STAT_RX_PORT_65B_127B_IX,
5996 FW_STAT_RX_PORT_128B_255B_IX,
5997 FW_STAT_RX_PORT_256B_511B_IX,
5998 FW_STAT_RX_PORT_512B_1023B_IX,
5999 FW_STAT_RX_PORT_1024B_1518B_IX,
6000 FW_STAT_RX_PORT_1519B_MAX_IX,
6001 FW_STAT_RX_PORT_PAUSE_IX,
6002 FW_STAT_RX_PORT_PPP0_IX,
6003 FW_STAT_RX_PORT_PPP1_IX,
6004 FW_STAT_RX_PORT_PPP2_IX,
6005 FW_STAT_RX_PORT_PPP3_IX,
6006 FW_STAT_RX_PORT_PPP4_IX,
6007 FW_STAT_RX_PORT_PPP5_IX,
6008 FW_STAT_RX_PORT_PPP6_IX,
6009 FW_STAT_RX_PORT_PPP7_IX,
6010 FW_STAT_RX_PORT_LESS_64B_IX
6013 struct fw_port_stats_cmd {
6014 __be32 op_to_portid;
6015 __be32 retval_len16;
6016 union fw_port_stats {
6017 struct fw_port_stats_ctl {
6029 struct fw_port_stats_all {
6038 __be64 tx_128b_255b;
6039 __be64 tx_256b_511b;
6040 __be64 tx_512b_1023b;
6041 __be64 tx_1024b_1518b;
6042 __be64 tx_1519b_max;
6058 __be64 rx_mtu_error;
6059 __be64 rx_mtu_crc_error;
6060 __be64 rx_crc_error;
6061 __be64 rx_len_error;
6062 __be64 rx_sym_error;
6065 __be64 rx_128b_255b;
6066 __be64 rx_256b_511b;
6067 __be64 rx_512b_1023b;
6068 __be64 rx_1024b_1518b;
6069 __be64 rx_1519b_max;
6086 #define S_FW_PORT_STATS_CMD_NSTATS 4
6087 #define M_FW_PORT_STATS_CMD_NSTATS 0x7
6088 #define V_FW_PORT_STATS_CMD_NSTATS(x) ((x) << S_FW_PORT_STATS_CMD_NSTATS)
6089 #define G_FW_PORT_STATS_CMD_NSTATS(x) \
6090 (((x) >> S_FW_PORT_STATS_CMD_NSTATS) & M_FW_PORT_STATS_CMD_NSTATS)
6092 #define S_FW_PORT_STATS_CMD_BG_BM 0
6093 #define M_FW_PORT_STATS_CMD_BG_BM 0x3
6094 #define V_FW_PORT_STATS_CMD_BG_BM(x) ((x) << S_FW_PORT_STATS_CMD_BG_BM)
6095 #define G_FW_PORT_STATS_CMD_BG_BM(x) \
6096 (((x) >> S_FW_PORT_STATS_CMD_BG_BM) & M_FW_PORT_STATS_CMD_BG_BM)
6098 #define S_FW_PORT_STATS_CMD_TX 7
6099 #define M_FW_PORT_STATS_CMD_TX 0x1
6100 #define V_FW_PORT_STATS_CMD_TX(x) ((x) << S_FW_PORT_STATS_CMD_TX)
6101 #define G_FW_PORT_STATS_CMD_TX(x) \
6102 (((x) >> S_FW_PORT_STATS_CMD_TX) & M_FW_PORT_STATS_CMD_TX)
6103 #define F_FW_PORT_STATS_CMD_TX V_FW_PORT_STATS_CMD_TX(1U)
6105 #define S_FW_PORT_STATS_CMD_IX 0
6106 #define M_FW_PORT_STATS_CMD_IX 0x3f
6107 #define V_FW_PORT_STATS_CMD_IX(x) ((x) << S_FW_PORT_STATS_CMD_IX)
6108 #define G_FW_PORT_STATS_CMD_IX(x) \
6109 (((x) >> S_FW_PORT_STATS_CMD_IX) & M_FW_PORT_STATS_CMD_IX)
6111 /* port loopback stats */
6112 #define FW_NUM_LB_STATS 14
6113 enum fw_port_lb_stats_index {
6114 FW_STAT_LB_PORT_BYTES_IX,
6115 FW_STAT_LB_PORT_FRAMES_IX,
6116 FW_STAT_LB_PORT_BCAST_IX,
6117 FW_STAT_LB_PORT_MCAST_IX,
6118 FW_STAT_LB_PORT_UCAST_IX,
6119 FW_STAT_LB_PORT_ERROR_IX,
6120 FW_STAT_LB_PORT_64B_IX,
6121 FW_STAT_LB_PORT_65B_127B_IX,
6122 FW_STAT_LB_PORT_128B_255B_IX,
6123 FW_STAT_LB_PORT_256B_511B_IX,
6124 FW_STAT_LB_PORT_512B_1023B_IX,
6125 FW_STAT_LB_PORT_1024B_1518B_IX,
6126 FW_STAT_LB_PORT_1519B_MAX_IX,
6127 FW_STAT_LB_PORT_DROP_FRAMES_IX
6130 struct fw_port_lb_stats_cmd {
6131 __be32 op_to_lbport;
6132 __be32 retval_len16;
6133 union fw_port_lb_stats {
6134 struct fw_port_lb_stats_ctl {
6146 struct fw_port_lb_stats_all {
6155 __be64 tx_128b_255b;
6156 __be64 tx_256b_511b;
6157 __be64 tx_512b_1023b;
6158 __be64 tx_1024b_1518b;
6159 __be64 tx_1519b_max;
6166 #define S_FW_PORT_LB_STATS_CMD_LBPORT 0
6167 #define M_FW_PORT_LB_STATS_CMD_LBPORT 0xf
6168 #define V_FW_PORT_LB_STATS_CMD_LBPORT(x) \
6169 ((x) << S_FW_PORT_LB_STATS_CMD_LBPORT)
6170 #define G_FW_PORT_LB_STATS_CMD_LBPORT(x) \
6171 (((x) >> S_FW_PORT_LB_STATS_CMD_LBPORT) & M_FW_PORT_LB_STATS_CMD_LBPORT)
6173 #define S_FW_PORT_LB_STATS_CMD_NSTATS 4
6174 #define M_FW_PORT_LB_STATS_CMD_NSTATS 0x7
6175 #define V_FW_PORT_LB_STATS_CMD_NSTATS(x) \
6176 ((x) << S_FW_PORT_LB_STATS_CMD_NSTATS)
6177 #define G_FW_PORT_LB_STATS_CMD_NSTATS(x) \
6178 (((x) >> S_FW_PORT_LB_STATS_CMD_NSTATS) & M_FW_PORT_LB_STATS_CMD_NSTATS)
6180 #define S_FW_PORT_LB_STATS_CMD_BG_BM 0
6181 #define M_FW_PORT_LB_STATS_CMD_BG_BM 0x3
6182 #define V_FW_PORT_LB_STATS_CMD_BG_BM(x) ((x) << S_FW_PORT_LB_STATS_CMD_BG_BM)
6183 #define G_FW_PORT_LB_STATS_CMD_BG_BM(x) \
6184 (((x) >> S_FW_PORT_LB_STATS_CMD_BG_BM) & M_FW_PORT_LB_STATS_CMD_BG_BM)
6186 #define S_FW_PORT_LB_STATS_CMD_IX 0
6187 #define M_FW_PORT_LB_STATS_CMD_IX 0xf
6188 #define V_FW_PORT_LB_STATS_CMD_IX(x) ((x) << S_FW_PORT_LB_STATS_CMD_IX)
6189 #define G_FW_PORT_LB_STATS_CMD_IX(x) \
6190 (((x) >> S_FW_PORT_LB_STATS_CMD_IX) & M_FW_PORT_LB_STATS_CMD_IX)
6192 /* Trace related defines */
6193 #define FW_TRACE_CAPTURE_MAX_SINGLE_FLT_MODE 10240
6194 #define FW_TRACE_CAPTURE_MAX_MULTI_FLT_MODE 2560
6196 struct fw_port_trace_cmd {
6197 __be32 op_to_portid;
6198 __be32 retval_len16;
6199 __be16 traceen_to_pciech;
6204 #define S_FW_PORT_TRACE_CMD_PORTID 0
6205 #define M_FW_PORT_TRACE_CMD_PORTID 0xf
6206 #define V_FW_PORT_TRACE_CMD_PORTID(x) ((x) << S_FW_PORT_TRACE_CMD_PORTID)
6207 #define G_FW_PORT_TRACE_CMD_PORTID(x) \
6208 (((x) >> S_FW_PORT_TRACE_CMD_PORTID) & M_FW_PORT_TRACE_CMD_PORTID)
6210 #define S_FW_PORT_TRACE_CMD_TRACEEN 15
6211 #define M_FW_PORT_TRACE_CMD_TRACEEN 0x1
6212 #define V_FW_PORT_TRACE_CMD_TRACEEN(x) ((x) << S_FW_PORT_TRACE_CMD_TRACEEN)
6213 #define G_FW_PORT_TRACE_CMD_TRACEEN(x) \
6214 (((x) >> S_FW_PORT_TRACE_CMD_TRACEEN) & M_FW_PORT_TRACE_CMD_TRACEEN)
6215 #define F_FW_PORT_TRACE_CMD_TRACEEN V_FW_PORT_TRACE_CMD_TRACEEN(1U)
6217 #define S_FW_PORT_TRACE_CMD_FLTMODE 14
6218 #define M_FW_PORT_TRACE_CMD_FLTMODE 0x1
6219 #define V_FW_PORT_TRACE_CMD_FLTMODE(x) ((x) << S_FW_PORT_TRACE_CMD_FLTMODE)
6220 #define G_FW_PORT_TRACE_CMD_FLTMODE(x) \
6221 (((x) >> S_FW_PORT_TRACE_CMD_FLTMODE) & M_FW_PORT_TRACE_CMD_FLTMODE)
6222 #define F_FW_PORT_TRACE_CMD_FLTMODE V_FW_PORT_TRACE_CMD_FLTMODE(1U)
6224 #define S_FW_PORT_TRACE_CMD_DUPLEN 13
6225 #define M_FW_PORT_TRACE_CMD_DUPLEN 0x1
6226 #define V_FW_PORT_TRACE_CMD_DUPLEN(x) ((x) << S_FW_PORT_TRACE_CMD_DUPLEN)
6227 #define G_FW_PORT_TRACE_CMD_DUPLEN(x) \
6228 (((x) >> S_FW_PORT_TRACE_CMD_DUPLEN) & M_FW_PORT_TRACE_CMD_DUPLEN)
6229 #define F_FW_PORT_TRACE_CMD_DUPLEN V_FW_PORT_TRACE_CMD_DUPLEN(1U)
6231 #define S_FW_PORT_TRACE_CMD_RUNTFLTSIZE 8
6232 #define M_FW_PORT_TRACE_CMD_RUNTFLTSIZE 0x1f
6233 #define V_FW_PORT_TRACE_CMD_RUNTFLTSIZE(x) \
6234 ((x) << S_FW_PORT_TRACE_CMD_RUNTFLTSIZE)
6235 #define G_FW_PORT_TRACE_CMD_RUNTFLTSIZE(x) \
6236 (((x) >> S_FW_PORT_TRACE_CMD_RUNTFLTSIZE) & \
6237 M_FW_PORT_TRACE_CMD_RUNTFLTSIZE)
6239 #define S_FW_PORT_TRACE_CMD_PCIECH 6
6240 #define M_FW_PORT_TRACE_CMD_PCIECH 0x3
6241 #define V_FW_PORT_TRACE_CMD_PCIECH(x) ((x) << S_FW_PORT_TRACE_CMD_PCIECH)
6242 #define G_FW_PORT_TRACE_CMD_PCIECH(x) \
6243 (((x) >> S_FW_PORT_TRACE_CMD_PCIECH) & M_FW_PORT_TRACE_CMD_PCIECH)
6245 struct fw_port_trace_mmap_cmd {
6246 __be32 op_to_portid;
6247 __be32 retval_len16;
6248 __be32 fid_to_skipoffset;
6249 __be32 minpktsize_capturemax;
6253 #define S_FW_PORT_TRACE_MMAP_CMD_PORTID 0
6254 #define M_FW_PORT_TRACE_MMAP_CMD_PORTID 0xf
6255 #define V_FW_PORT_TRACE_MMAP_CMD_PORTID(x) \
6256 ((x) << S_FW_PORT_TRACE_MMAP_CMD_PORTID)
6257 #define G_FW_PORT_TRACE_MMAP_CMD_PORTID(x) \
6258 (((x) >> S_FW_PORT_TRACE_MMAP_CMD_PORTID) & \
6259 M_FW_PORT_TRACE_MMAP_CMD_PORTID)
6261 #define S_FW_PORT_TRACE_MMAP_CMD_FID 30
6262 #define M_FW_PORT_TRACE_MMAP_CMD_FID 0x3
6263 #define V_FW_PORT_TRACE_MMAP_CMD_FID(x) ((x) << S_FW_PORT_TRACE_MMAP_CMD_FID)
6264 #define G_FW_PORT_TRACE_MMAP_CMD_FID(x) \
6265 (((x) >> S_FW_PORT_TRACE_MMAP_CMD_FID) & M_FW_PORT_TRACE_MMAP_CMD_FID)
6267 #define S_FW_PORT_TRACE_MMAP_CMD_MMAPEN 29
6268 #define M_FW_PORT_TRACE_MMAP_CMD_MMAPEN 0x1
6269 #define V_FW_PORT_TRACE_MMAP_CMD_MMAPEN(x) \
6270 ((x) << S_FW_PORT_TRACE_MMAP_CMD_MMAPEN)
6271 #define G_FW_PORT_TRACE_MMAP_CMD_MMAPEN(x) \
6272 (((x) >> S_FW_PORT_TRACE_MMAP_CMD_MMAPEN) & \
6273 M_FW_PORT_TRACE_MMAP_CMD_MMAPEN)
6274 #define F_FW_PORT_TRACE_MMAP_CMD_MMAPEN V_FW_PORT_TRACE_MMAP_CMD_MMAPEN(1U)
6276 #define S_FW_PORT_TRACE_MMAP_CMD_DCMAPEN 28
6277 #define M_FW_PORT_TRACE_MMAP_CMD_DCMAPEN 0x1
6278 #define V_FW_PORT_TRACE_MMAP_CMD_DCMAPEN(x) \
6279 ((x) << S_FW_PORT_TRACE_MMAP_CMD_DCMAPEN)
6280 #define G_FW_PORT_TRACE_MMAP_CMD_DCMAPEN(x) \
6281 (((x) >> S_FW_PORT_TRACE_MMAP_CMD_DCMAPEN) & \
6282 M_FW_PORT_TRACE_MMAP_CMD_DCMAPEN)
6283 #define F_FW_PORT_TRACE_MMAP_CMD_DCMAPEN \
6284 V_FW_PORT_TRACE_MMAP_CMD_DCMAPEN(1U)
6286 #define S_FW_PORT_TRACE_MMAP_CMD_SKIPLENGTH 8
6287 #define M_FW_PORT_TRACE_MMAP_CMD_SKIPLENGTH 0x1f
6288 #define V_FW_PORT_TRACE_MMAP_CMD_SKIPLENGTH(x) \
6289 ((x) << S_FW_PORT_TRACE_MMAP_CMD_SKIPLENGTH)
6290 #define G_FW_PORT_TRACE_MMAP_CMD_SKIPLENGTH(x) \
6291 (((x) >> S_FW_PORT_TRACE_MMAP_CMD_SKIPLENGTH) & \
6292 M_FW_PORT_TRACE_MMAP_CMD_SKIPLENGTH)
6294 #define S_FW_PORT_TRACE_MMAP_CMD_SKIPOFFSET 0
6295 #define M_FW_PORT_TRACE_MMAP_CMD_SKIPOFFSET 0x1f
6296 #define V_FW_PORT_TRACE_MMAP_CMD_SKIPOFFSET(x) \
6297 ((x) << S_FW_PORT_TRACE_MMAP_CMD_SKIPOFFSET)
6298 #define G_FW_PORT_TRACE_MMAP_CMD_SKIPOFFSET(x) \
6299 (((x) >> S_FW_PORT_TRACE_MMAP_CMD_SKIPOFFSET) & \
6300 M_FW_PORT_TRACE_MMAP_CMD_SKIPOFFSET)
6302 #define S_FW_PORT_TRACE_MMAP_CMD_MINPKTSIZE 18
6303 #define M_FW_PORT_TRACE_MMAP_CMD_MINPKTSIZE 0x3fff
6304 #define V_FW_PORT_TRACE_MMAP_CMD_MINPKTSIZE(x) \
6305 ((x) << S_FW_PORT_TRACE_MMAP_CMD_MINPKTSIZE)
6306 #define G_FW_PORT_TRACE_MMAP_CMD_MINPKTSIZE(x) \
6307 (((x) >> S_FW_PORT_TRACE_MMAP_CMD_MINPKTSIZE) & \
6308 M_FW_PORT_TRACE_MMAP_CMD_MINPKTSIZE)
6310 #define S_FW_PORT_TRACE_MMAP_CMD_CAPTUREMAX 0
6311 #define M_FW_PORT_TRACE_MMAP_CMD_CAPTUREMAX 0x3fff
6312 #define V_FW_PORT_TRACE_MMAP_CMD_CAPTUREMAX(x) \
6313 ((x) << S_FW_PORT_TRACE_MMAP_CMD_CAPTUREMAX)
6314 #define G_FW_PORT_TRACE_MMAP_CMD_CAPTUREMAX(x) \
6315 (((x) >> S_FW_PORT_TRACE_MMAP_CMD_CAPTUREMAX) & \
6316 M_FW_PORT_TRACE_MMAP_CMD_CAPTUREMAX)
6318 struct fw_rss_ind_tbl_cmd {
6320 __be32 retval_len16;
6328 __be32 iq12_to_iq14;
6329 __be32 iq15_to_iq17;
6330 __be32 iq18_to_iq20;
6331 __be32 iq21_to_iq23;
6332 __be32 iq24_to_iq26;
6333 __be32 iq27_to_iq29;
6338 #define S_FW_RSS_IND_TBL_CMD_VIID 0
6339 #define M_FW_RSS_IND_TBL_CMD_VIID 0xfff
6340 #define V_FW_RSS_IND_TBL_CMD_VIID(x) ((x) << S_FW_RSS_IND_TBL_CMD_VIID)
6341 #define G_FW_RSS_IND_TBL_CMD_VIID(x) \
6342 (((x) >> S_FW_RSS_IND_TBL_CMD_VIID) & M_FW_RSS_IND_TBL_CMD_VIID)
6344 #define S_FW_RSS_IND_TBL_CMD_IQ0 20
6345 #define M_FW_RSS_IND_TBL_CMD_IQ0 0x3ff
6346 #define V_FW_RSS_IND_TBL_CMD_IQ0(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ0)
6347 #define G_FW_RSS_IND_TBL_CMD_IQ0(x) \
6348 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ0) & M_FW_RSS_IND_TBL_CMD_IQ0)
6350 #define S_FW_RSS_IND_TBL_CMD_IQ1 10
6351 #define M_FW_RSS_IND_TBL_CMD_IQ1 0x3ff
6352 #define V_FW_RSS_IND_TBL_CMD_IQ1(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ1)
6353 #define G_FW_RSS_IND_TBL_CMD_IQ1(x) \
6354 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ1) & M_FW_RSS_IND_TBL_CMD_IQ1)
6356 #define S_FW_RSS_IND_TBL_CMD_IQ2 0
6357 #define M_FW_RSS_IND_TBL_CMD_IQ2 0x3ff
6358 #define V_FW_RSS_IND_TBL_CMD_IQ2(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ2)
6359 #define G_FW_RSS_IND_TBL_CMD_IQ2(x) \
6360 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ2) & M_FW_RSS_IND_TBL_CMD_IQ2)
6362 #define S_FW_RSS_IND_TBL_CMD_IQ3 20
6363 #define M_FW_RSS_IND_TBL_CMD_IQ3 0x3ff
6364 #define V_FW_RSS_IND_TBL_CMD_IQ3(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ3)
6365 #define G_FW_RSS_IND_TBL_CMD_IQ3(x) \
6366 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ3) & M_FW_RSS_IND_TBL_CMD_IQ3)
6368 #define S_FW_RSS_IND_TBL_CMD_IQ4 10
6369 #define M_FW_RSS_IND_TBL_CMD_IQ4 0x3ff
6370 #define V_FW_RSS_IND_TBL_CMD_IQ4(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ4)
6371 #define G_FW_RSS_IND_TBL_CMD_IQ4(x) \
6372 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ4) & M_FW_RSS_IND_TBL_CMD_IQ4)
6374 #define S_FW_RSS_IND_TBL_CMD_IQ5 0
6375 #define M_FW_RSS_IND_TBL_CMD_IQ5 0x3ff
6376 #define V_FW_RSS_IND_TBL_CMD_IQ5(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ5)
6377 #define G_FW_RSS_IND_TBL_CMD_IQ5(x) \
6378 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ5) & M_FW_RSS_IND_TBL_CMD_IQ5)
6380 #define S_FW_RSS_IND_TBL_CMD_IQ6 20
6381 #define M_FW_RSS_IND_TBL_CMD_IQ6 0x3ff
6382 #define V_FW_RSS_IND_TBL_CMD_IQ6(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ6)
6383 #define G_FW_RSS_IND_TBL_CMD_IQ6(x) \
6384 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ6) & M_FW_RSS_IND_TBL_CMD_IQ6)
6386 #define S_FW_RSS_IND_TBL_CMD_IQ7 10
6387 #define M_FW_RSS_IND_TBL_CMD_IQ7 0x3ff
6388 #define V_FW_RSS_IND_TBL_CMD_IQ7(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ7)
6389 #define G_FW_RSS_IND_TBL_CMD_IQ7(x) \
6390 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ7) & M_FW_RSS_IND_TBL_CMD_IQ7)
6392 #define S_FW_RSS_IND_TBL_CMD_IQ8 0
6393 #define M_FW_RSS_IND_TBL_CMD_IQ8 0x3ff
6394 #define V_FW_RSS_IND_TBL_CMD_IQ8(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ8)
6395 #define G_FW_RSS_IND_TBL_CMD_IQ8(x) \
6396 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ8) & M_FW_RSS_IND_TBL_CMD_IQ8)
6398 #define S_FW_RSS_IND_TBL_CMD_IQ9 20
6399 #define M_FW_RSS_IND_TBL_CMD_IQ9 0x3ff
6400 #define V_FW_RSS_IND_TBL_CMD_IQ9(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ9)
6401 #define G_FW_RSS_IND_TBL_CMD_IQ9(x) \
6402 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ9) & M_FW_RSS_IND_TBL_CMD_IQ9)
6404 #define S_FW_RSS_IND_TBL_CMD_IQ10 10
6405 #define M_FW_RSS_IND_TBL_CMD_IQ10 0x3ff
6406 #define V_FW_RSS_IND_TBL_CMD_IQ10(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ10)
6407 #define G_FW_RSS_IND_TBL_CMD_IQ10(x) \
6408 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ10) & M_FW_RSS_IND_TBL_CMD_IQ10)
6410 #define S_FW_RSS_IND_TBL_CMD_IQ11 0
6411 #define M_FW_RSS_IND_TBL_CMD_IQ11 0x3ff
6412 #define V_FW_RSS_IND_TBL_CMD_IQ11(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ11)
6413 #define G_FW_RSS_IND_TBL_CMD_IQ11(x) \
6414 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ11) & M_FW_RSS_IND_TBL_CMD_IQ11)
6416 #define S_FW_RSS_IND_TBL_CMD_IQ12 20
6417 #define M_FW_RSS_IND_TBL_CMD_IQ12 0x3ff
6418 #define V_FW_RSS_IND_TBL_CMD_IQ12(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ12)
6419 #define G_FW_RSS_IND_TBL_CMD_IQ12(x) \
6420 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ12) & M_FW_RSS_IND_TBL_CMD_IQ12)
6422 #define S_FW_RSS_IND_TBL_CMD_IQ13 10
6423 #define M_FW_RSS_IND_TBL_CMD_IQ13 0x3ff
6424 #define V_FW_RSS_IND_TBL_CMD_IQ13(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ13)
6425 #define G_FW_RSS_IND_TBL_CMD_IQ13(x) \
6426 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ13) & M_FW_RSS_IND_TBL_CMD_IQ13)
6428 #define S_FW_RSS_IND_TBL_CMD_IQ14 0
6429 #define M_FW_RSS_IND_TBL_CMD_IQ14 0x3ff
6430 #define V_FW_RSS_IND_TBL_CMD_IQ14(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ14)
6431 #define G_FW_RSS_IND_TBL_CMD_IQ14(x) \
6432 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ14) & M_FW_RSS_IND_TBL_CMD_IQ14)
6434 #define S_FW_RSS_IND_TBL_CMD_IQ15 20
6435 #define M_FW_RSS_IND_TBL_CMD_IQ15 0x3ff
6436 #define V_FW_RSS_IND_TBL_CMD_IQ15(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ15)
6437 #define G_FW_RSS_IND_TBL_CMD_IQ15(x) \
6438 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ15) & M_FW_RSS_IND_TBL_CMD_IQ15)
6440 #define S_FW_RSS_IND_TBL_CMD_IQ16 10
6441 #define M_FW_RSS_IND_TBL_CMD_IQ16 0x3ff
6442 #define V_FW_RSS_IND_TBL_CMD_IQ16(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ16)
6443 #define G_FW_RSS_IND_TBL_CMD_IQ16(x) \
6444 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ16) & M_FW_RSS_IND_TBL_CMD_IQ16)
6446 #define S_FW_RSS_IND_TBL_CMD_IQ17 0
6447 #define M_FW_RSS_IND_TBL_CMD_IQ17 0x3ff
6448 #define V_FW_RSS_IND_TBL_CMD_IQ17(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ17)
6449 #define G_FW_RSS_IND_TBL_CMD_IQ17(x) \
6450 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ17) & M_FW_RSS_IND_TBL_CMD_IQ17)
6452 #define S_FW_RSS_IND_TBL_CMD_IQ18 20
6453 #define M_FW_RSS_IND_TBL_CMD_IQ18 0x3ff
6454 #define V_FW_RSS_IND_TBL_CMD_IQ18(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ18)
6455 #define G_FW_RSS_IND_TBL_CMD_IQ18(x) \
6456 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ18) & M_FW_RSS_IND_TBL_CMD_IQ18)
6458 #define S_FW_RSS_IND_TBL_CMD_IQ19 10
6459 #define M_FW_RSS_IND_TBL_CMD_IQ19 0x3ff
6460 #define V_FW_RSS_IND_TBL_CMD_IQ19(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ19)
6461 #define G_FW_RSS_IND_TBL_CMD_IQ19(x) \
6462 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ19) & M_FW_RSS_IND_TBL_CMD_IQ19)
6464 #define S_FW_RSS_IND_TBL_CMD_IQ20 0
6465 #define M_FW_RSS_IND_TBL_CMD_IQ20 0x3ff
6466 #define V_FW_RSS_IND_TBL_CMD_IQ20(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ20)
6467 #define G_FW_RSS_IND_TBL_CMD_IQ20(x) \
6468 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ20) & M_FW_RSS_IND_TBL_CMD_IQ20)
6470 #define S_FW_RSS_IND_TBL_CMD_IQ21 20
6471 #define M_FW_RSS_IND_TBL_CMD_IQ21 0x3ff
6472 #define V_FW_RSS_IND_TBL_CMD_IQ21(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ21)
6473 #define G_FW_RSS_IND_TBL_CMD_IQ21(x) \
6474 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ21) & M_FW_RSS_IND_TBL_CMD_IQ21)
6476 #define S_FW_RSS_IND_TBL_CMD_IQ22 10
6477 #define M_FW_RSS_IND_TBL_CMD_IQ22 0x3ff
6478 #define V_FW_RSS_IND_TBL_CMD_IQ22(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ22)
6479 #define G_FW_RSS_IND_TBL_CMD_IQ22(x) \
6480 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ22) & M_FW_RSS_IND_TBL_CMD_IQ22)
6482 #define S_FW_RSS_IND_TBL_CMD_IQ23 0
6483 #define M_FW_RSS_IND_TBL_CMD_IQ23 0x3ff
6484 #define V_FW_RSS_IND_TBL_CMD_IQ23(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ23)
6485 #define G_FW_RSS_IND_TBL_CMD_IQ23(x) \
6486 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ23) & M_FW_RSS_IND_TBL_CMD_IQ23)
6488 #define S_FW_RSS_IND_TBL_CMD_IQ24 20
6489 #define M_FW_RSS_IND_TBL_CMD_IQ24 0x3ff
6490 #define V_FW_RSS_IND_TBL_CMD_IQ24(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ24)
6491 #define G_FW_RSS_IND_TBL_CMD_IQ24(x) \
6492 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ24) & M_FW_RSS_IND_TBL_CMD_IQ24)
6494 #define S_FW_RSS_IND_TBL_CMD_IQ25 10
6495 #define M_FW_RSS_IND_TBL_CMD_IQ25 0x3ff
6496 #define V_FW_RSS_IND_TBL_CMD_IQ25(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ25)
6497 #define G_FW_RSS_IND_TBL_CMD_IQ25(x) \
6498 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ25) & M_FW_RSS_IND_TBL_CMD_IQ25)
6500 #define S_FW_RSS_IND_TBL_CMD_IQ26 0
6501 #define M_FW_RSS_IND_TBL_CMD_IQ26 0x3ff
6502 #define V_FW_RSS_IND_TBL_CMD_IQ26(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ26)
6503 #define G_FW_RSS_IND_TBL_CMD_IQ26(x) \
6504 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ26) & M_FW_RSS_IND_TBL_CMD_IQ26)
6506 #define S_FW_RSS_IND_TBL_CMD_IQ27 20
6507 #define M_FW_RSS_IND_TBL_CMD_IQ27 0x3ff
6508 #define V_FW_RSS_IND_TBL_CMD_IQ27(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ27)
6509 #define G_FW_RSS_IND_TBL_CMD_IQ27(x) \
6510 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ27) & M_FW_RSS_IND_TBL_CMD_IQ27)
6512 #define S_FW_RSS_IND_TBL_CMD_IQ28 10
6513 #define M_FW_RSS_IND_TBL_CMD_IQ28 0x3ff
6514 #define V_FW_RSS_IND_TBL_CMD_IQ28(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ28)
6515 #define G_FW_RSS_IND_TBL_CMD_IQ28(x) \
6516 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ28) & M_FW_RSS_IND_TBL_CMD_IQ28)
6518 #define S_FW_RSS_IND_TBL_CMD_IQ29 0
6519 #define M_FW_RSS_IND_TBL_CMD_IQ29 0x3ff
6520 #define V_FW_RSS_IND_TBL_CMD_IQ29(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ29)
6521 #define G_FW_RSS_IND_TBL_CMD_IQ29(x) \
6522 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ29) & M_FW_RSS_IND_TBL_CMD_IQ29)
6524 #define S_FW_RSS_IND_TBL_CMD_IQ30 20
6525 #define M_FW_RSS_IND_TBL_CMD_IQ30 0x3ff
6526 #define V_FW_RSS_IND_TBL_CMD_IQ30(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ30)
6527 #define G_FW_RSS_IND_TBL_CMD_IQ30(x) \
6528 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ30) & M_FW_RSS_IND_TBL_CMD_IQ30)
6530 #define S_FW_RSS_IND_TBL_CMD_IQ31 10
6531 #define M_FW_RSS_IND_TBL_CMD_IQ31 0x3ff
6532 #define V_FW_RSS_IND_TBL_CMD_IQ31(x) ((x) << S_FW_RSS_IND_TBL_CMD_IQ31)
6533 #define G_FW_RSS_IND_TBL_CMD_IQ31(x) \
6534 (((x) >> S_FW_RSS_IND_TBL_CMD_IQ31) & M_FW_RSS_IND_TBL_CMD_IQ31)
6536 struct fw_rss_glb_config_cmd {
6538 __be32 retval_len16;
6539 union fw_rss_glb_config {
6540 struct fw_rss_glb_config_manual {
6546 struct fw_rss_glb_config_basicvirtual {
6548 __be32 synmapen_to_hashtoeplitz;
6555 #define S_FW_RSS_GLB_CONFIG_CMD_MODE 28
6556 #define M_FW_RSS_GLB_CONFIG_CMD_MODE 0xf
6557 #define V_FW_RSS_GLB_CONFIG_CMD_MODE(x) ((x) << S_FW_RSS_GLB_CONFIG_CMD_MODE)
6558 #define G_FW_RSS_GLB_CONFIG_CMD_MODE(x) \
6559 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_MODE) & M_FW_RSS_GLB_CONFIG_CMD_MODE)
6561 #define FW_RSS_GLB_CONFIG_CMD_MODE_MANUAL 0
6562 #define FW_RSS_GLB_CONFIG_CMD_MODE_BASICVIRTUAL 1
6563 #define FW_RSS_GLB_CONFIG_CMD_MODE_MAX 1
6565 #define S_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN 8
6566 #define M_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN 0x1
6567 #define V_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN(x) \
6568 ((x) << S_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN)
6569 #define G_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN(x) \
6570 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN) & \
6571 M_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN)
6572 #define F_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN \
6573 V_FW_RSS_GLB_CONFIG_CMD_SYNMAPEN(1U)
6575 #define S_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6 7
6576 #define M_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6 0x1
6577 #define V_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6(x) \
6578 ((x) << S_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6)
6579 #define G_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6(x) \
6580 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6) & \
6581 M_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6)
6582 #define F_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6 \
6583 V_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6(1U)
6585 #define S_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6 6
6586 #define M_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6 0x1
6587 #define V_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6(x) \
6588 ((x) << S_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6)
6589 #define G_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6(x) \
6590 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6) & \
6591 M_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6)
6592 #define F_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6 \
6593 V_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6(1U)
6595 #define S_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4 5
6596 #define M_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4 0x1
6597 #define V_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4(x) \
6598 ((x) << S_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4)
6599 #define G_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4(x) \
6600 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4) & \
6601 M_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4)
6602 #define F_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4 \
6603 V_FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4(1U)
6605 #define S_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4 4
6606 #define M_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4 0x1
6607 #define V_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4(x) \
6608 ((x) << S_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4)
6609 #define G_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4(x) \
6610 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4) & \
6611 M_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4)
6612 #define F_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4 \
6613 V_FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4(1U)
6615 #define S_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN 3
6616 #define M_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN 0x1
6617 #define V_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN(x) \
6618 ((x) << S_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN)
6619 #define G_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN(x) \
6620 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN) & \
6621 M_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN)
6622 #define F_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN \
6623 V_FW_RSS_GLB_CONFIG_CMD_OFDMAPEN(1U)
6625 #define S_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN 2
6626 #define M_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN 0x1
6627 #define V_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN(x) \
6628 ((x) << S_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN)
6629 #define G_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN(x) \
6630 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN) & \
6631 M_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN)
6632 #define F_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN \
6633 V_FW_RSS_GLB_CONFIG_CMD_TNLMAPEN(1U)
6635 #define S_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP 1
6636 #define M_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP 0x1
6637 #define V_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP(x) \
6638 ((x) << S_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP)
6639 #define G_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP(x) \
6640 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP) & \
6641 M_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP)
6642 #define F_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP \
6643 V_FW_RSS_GLB_CONFIG_CMD_TNLALLLKP(1U)
6645 #define S_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ 0
6646 #define M_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ 0x1
6647 #define V_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ(x) \
6648 ((x) << S_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ)
6649 #define G_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ(x) \
6650 (((x) >> S_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ) & \
6651 M_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ)
6652 #define F_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ \
6653 V_FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ(1U)
6655 struct fw_rss_vi_config_cmd {
6657 __be32 retval_len16;
6658 union fw_rss_vi_config {
6659 struct fw_rss_vi_config_manual {
6664 struct fw_rss_vi_config_basicvirtual {
6666 __be32 defaultq_to_udpen;
6673 #define S_FW_RSS_VI_CONFIG_CMD_VIID 0
6674 #define M_FW_RSS_VI_CONFIG_CMD_VIID 0xfff
6675 #define V_FW_RSS_VI_CONFIG_CMD_VIID(x) ((x) << S_FW_RSS_VI_CONFIG_CMD_VIID)
6676 #define G_FW_RSS_VI_CONFIG_CMD_VIID(x) \
6677 (((x) >> S_FW_RSS_VI_CONFIG_CMD_VIID) & M_FW_RSS_VI_CONFIG_CMD_VIID)
6679 #define S_FW_RSS_VI_CONFIG_CMD_DEFAULTQ 16
6680 #define M_FW_RSS_VI_CONFIG_CMD_DEFAULTQ 0x3ff
6681 #define V_FW_RSS_VI_CONFIG_CMD_DEFAULTQ(x) \
6682 ((x) << S_FW_RSS_VI_CONFIG_CMD_DEFAULTQ)
6683 #define G_FW_RSS_VI_CONFIG_CMD_DEFAULTQ(x) \
6684 (((x) >> S_FW_RSS_VI_CONFIG_CMD_DEFAULTQ) & \
6685 M_FW_RSS_VI_CONFIG_CMD_DEFAULTQ)
6687 #define S_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN 4
6688 #define M_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN 0x1
6689 #define V_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN(x) \
6690 ((x) << S_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN)
6691 #define G_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN(x) \
6692 (((x) >> S_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN) & \
6693 M_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN)
6694 #define F_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN \
6695 V_FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN(1U)
6697 #define S_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN 3
6698 #define M_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN 0x1
6699 #define V_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN(x) \
6700 ((x) << S_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN)
6701 #define G_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN(x) \
6702 (((x) >> S_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN) & \
6703 M_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN)
6704 #define F_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN \
6705 V_FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN(1U)
6707 #define S_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN 2
6708 #define M_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN 0x1
6709 #define V_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN(x) \
6710 ((x) << S_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN)
6711 #define G_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN(x) \
6712 (((x) >> S_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN) & \
6713 M_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN)
6714 #define F_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN \
6715 V_FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN(1U)
6717 #define S_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN 1
6718 #define M_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN 0x1
6719 #define V_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN(x) \
6720 ((x) << S_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN)
6721 #define G_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN(x) \
6722 (((x) >> S_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN) & \
6723 M_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN)
6724 #define F_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN \
6725 V_FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN(1U)
6727 #define S_FW_RSS_VI_CONFIG_CMD_UDPEN 0
6728 #define M_FW_RSS_VI_CONFIG_CMD_UDPEN 0x1
6729 #define V_FW_RSS_VI_CONFIG_CMD_UDPEN(x) ((x) << S_FW_RSS_VI_CONFIG_CMD_UDPEN)
6730 #define G_FW_RSS_VI_CONFIG_CMD_UDPEN(x) \
6731 (((x) >> S_FW_RSS_VI_CONFIG_CMD_UDPEN) & M_FW_RSS_VI_CONFIG_CMD_UDPEN)
6732 #define F_FW_RSS_VI_CONFIG_CMD_UDPEN V_FW_RSS_VI_CONFIG_CMD_UDPEN(1U)
6735 FW_SCHED_SC_CONFIG = 0,
6736 FW_SCHED_SC_PARAMS = 1,
6739 enum fw_sched_type {
6740 FW_SCHED_TYPE_PKTSCHED = 0,
6741 FW_SCHED_TYPE_STREAMSCHED = 1,
6744 enum fw_sched_params_level {
6745 FW_SCHED_PARAMS_LEVEL_CL_RL = 0,
6746 FW_SCHED_PARAMS_LEVEL_CL_WRR = 1,
6747 FW_SCHED_PARAMS_LEVEL_CH_RL = 2,
6750 enum fw_sched_params_mode {
6751 FW_SCHED_PARAMS_MODE_CLASS = 0,
6752 FW_SCHED_PARAMS_MODE_FLOW = 1,
6755 enum fw_sched_params_unit {
6756 FW_SCHED_PARAMS_UNIT_BITRATE = 0,
6757 FW_SCHED_PARAMS_UNIT_PKTRATE = 1,
6760 enum fw_sched_params_rate {
6761 FW_SCHED_PARAMS_RATE_REL = 0,
6762 FW_SCHED_PARAMS_RATE_ABS = 1,
6765 struct fw_sched_cmd {
6767 __be32 retval_len16;
6769 struct fw_sched_config {
6777 struct fw_sched_params {
6797 * length of the formatting string
6799 #define FW_DEVLOG_FMT_LEN 192
6802 * maximum number of the formatting string parameters
6804 #define FW_DEVLOG_FMT_PARAMS_NUM 8
6809 enum fw_devlog_level {
6810 FW_DEVLOG_LEVEL_EMERG = 0x0,
6811 FW_DEVLOG_LEVEL_CRIT = 0x1,
6812 FW_DEVLOG_LEVEL_ERR = 0x2,
6813 FW_DEVLOG_LEVEL_NOTICE = 0x3,
6814 FW_DEVLOG_LEVEL_INFO = 0x4,
6815 FW_DEVLOG_LEVEL_DEBUG = 0x5,
6816 FW_DEVLOG_LEVEL_MAX = 0x5,
6820 * facilities that may send a log message
6822 enum fw_devlog_facility {
6823 FW_DEVLOG_FACILITY_CORE = 0x00,
6824 FW_DEVLOG_FACILITY_CF = 0x01,
6825 FW_DEVLOG_FACILITY_SCHED = 0x02,
6826 FW_DEVLOG_FACILITY_TIMER = 0x04,
6827 FW_DEVLOG_FACILITY_RES = 0x06,
6828 FW_DEVLOG_FACILITY_HW = 0x08,
6829 FW_DEVLOG_FACILITY_FLR = 0x10,
6830 FW_DEVLOG_FACILITY_DMAQ = 0x12,
6831 FW_DEVLOG_FACILITY_PHY = 0x14,
6832 FW_DEVLOG_FACILITY_MAC = 0x16,
6833 FW_DEVLOG_FACILITY_PORT = 0x18,
6834 FW_DEVLOG_FACILITY_VI = 0x1A,
6835 FW_DEVLOG_FACILITY_FILTER = 0x1C,
6836 FW_DEVLOG_FACILITY_ACL = 0x1E,
6837 FW_DEVLOG_FACILITY_TM = 0x20,
6838 FW_DEVLOG_FACILITY_QFC = 0x22,
6839 FW_DEVLOG_FACILITY_DCB = 0x24,
6840 FW_DEVLOG_FACILITY_ETH = 0x26,
6841 FW_DEVLOG_FACILITY_OFLD = 0x28,
6842 FW_DEVLOG_FACILITY_RI = 0x2A,
6843 FW_DEVLOG_FACILITY_ISCSI = 0x2C,
6844 FW_DEVLOG_FACILITY_FCOE = 0x2E,
6845 FW_DEVLOG_FACILITY_FOISCSI = 0x30,
6846 FW_DEVLOG_FACILITY_FOFCOE = 0x32,
6847 FW_DEVLOG_FACILITY_MAX = 0x32,
6851 * log message format
6853 struct fw_devlog_e {
6859 __u8 fmt[FW_DEVLOG_FMT_LEN];
6860 __be32 params[FW_DEVLOG_FMT_PARAMS_NUM];
6861 __be32 reserved3[4];
6864 struct fw_devlog_cmd {
6866 __be32 retval_len16;
6869 __be32 memtype_devlog_memaddr16_devlog;
6870 __be32 memsize_devlog;
6874 #define S_FW_DEVLOG_CMD_MEMTYPE_DEVLOG 28
6875 #define M_FW_DEVLOG_CMD_MEMTYPE_DEVLOG 0xf
6876 #define V_FW_DEVLOG_CMD_MEMTYPE_DEVLOG(x) \
6877 ((x) << S_FW_DEVLOG_CMD_MEMTYPE_DEVLOG)
6878 #define G_FW_DEVLOG_CMD_MEMTYPE_DEVLOG(x) \
6879 (((x) >> S_FW_DEVLOG_CMD_MEMTYPE_DEVLOG) & M_FW_DEVLOG_CMD_MEMTYPE_DEVLOG)
6881 #define S_FW_DEVLOG_CMD_MEMADDR16_DEVLOG 0
6882 #define M_FW_DEVLOG_CMD_MEMADDR16_DEVLOG 0xfffffff
6883 #define V_FW_DEVLOG_CMD_MEMADDR16_DEVLOG(x) \
6884 ((x) << S_FW_DEVLOG_CMD_MEMADDR16_DEVLOG)
6885 #define G_FW_DEVLOG_CMD_MEMADDR16_DEVLOG(x) \
6886 (((x) >> S_FW_DEVLOG_CMD_MEMADDR16_DEVLOG) & \
6887 M_FW_DEVLOG_CMD_MEMADDR16_DEVLOG)
6889 enum fw_watchdog_actions {
6890 FW_WATCHDOG_ACTION_SHUTDOWN = 0,
6891 FW_WATCHDOG_ACTION_FLR = 1,
6892 FW_WATCHDOG_ACTION_BYPASS = 2,
6893 FW_WATCHDOG_ACTION_TMPCHK = 3,
6895 FW_WATCHDOG_ACTION_MAX = 4,
6898 #define FW_WATCHDOG_MAX_TIMEOUT_SECS 60
6900 struct fw_watchdog_cmd {
6902 __be32 retval_len16;
6907 #define S_FW_WATCHDOG_CMD_PFN 8
6908 #define M_FW_WATCHDOG_CMD_PFN 0x7
6909 #define V_FW_WATCHDOG_CMD_PFN(x) ((x) << S_FW_WATCHDOG_CMD_PFN)
6910 #define G_FW_WATCHDOG_CMD_PFN(x) \
6911 (((x) >> S_FW_WATCHDOG_CMD_PFN) & M_FW_WATCHDOG_CMD_PFN)
6913 #define S_FW_WATCHDOG_CMD_VFN 0
6914 #define M_FW_WATCHDOG_CMD_VFN 0xff
6915 #define V_FW_WATCHDOG_CMD_VFN(x) ((x) << S_FW_WATCHDOG_CMD_VFN)
6916 #define G_FW_WATCHDOG_CMD_VFN(x) \
6917 (((x) >> S_FW_WATCHDOG_CMD_VFN) & M_FW_WATCHDOG_CMD_VFN)
6919 struct fw_clip_cmd {
6921 __be32 alloc_to_len16;
6927 #define S_FW_CLIP_CMD_ALLOC 31
6928 #define M_FW_CLIP_CMD_ALLOC 0x1
6929 #define V_FW_CLIP_CMD_ALLOC(x) ((x) << S_FW_CLIP_CMD_ALLOC)
6930 #define G_FW_CLIP_CMD_ALLOC(x) \
6931 (((x) >> S_FW_CLIP_CMD_ALLOC) & M_FW_CLIP_CMD_ALLOC)
6932 #define F_FW_CLIP_CMD_ALLOC V_FW_CLIP_CMD_ALLOC(1U)
6934 #define S_FW_CLIP_CMD_FREE 30
6935 #define M_FW_CLIP_CMD_FREE 0x1
6936 #define V_FW_CLIP_CMD_FREE(x) ((x) << S_FW_CLIP_CMD_FREE)
6937 #define G_FW_CLIP_CMD_FREE(x) \
6938 (((x) >> S_FW_CLIP_CMD_FREE) & M_FW_CLIP_CMD_FREE)
6939 #define F_FW_CLIP_CMD_FREE V_FW_CLIP_CMD_FREE(1U)
6941 /******************************************************************************
6942 * F O i S C S I C O M M A N D s
6943 **************************************/
6945 #define FW_CHNET_IFACE_ADDR_MAX 3
6947 enum fw_chnet_iface_cmd_subop {
6948 FW_CHNET_IFACE_CMD_SUBOP_NOOP = 0,
6950 FW_CHNET_IFACE_CMD_SUBOP_LINK_UP,
6951 FW_CHNET_IFACE_CMD_SUBOP_LINK_DOWN,
6953 FW_CHNET_IFACE_CMD_SUBOP_MTU_SET,
6954 FW_CHNET_IFACE_CMD_SUBOP_MTU_GET,
6956 FW_CHNET_IFACE_CMD_SUBOP_MAX,
6959 struct fw_chnet_iface_cmd {
6960 __be32 op_to_portid;
6961 __be32 retval_len16;
6964 __be32 ifid_ifstate;
6972 #define S_FW_CHNET_IFACE_CMD_PORTID 0
6973 #define M_FW_CHNET_IFACE_CMD_PORTID 0xf
6974 #define V_FW_CHNET_IFACE_CMD_PORTID(x) ((x) << S_FW_CHNET_IFACE_CMD_PORTID)
6975 #define G_FW_CHNET_IFACE_CMD_PORTID(x) \
6976 (((x) >> S_FW_CHNET_IFACE_CMD_PORTID) & M_FW_CHNET_IFACE_CMD_PORTID)
6978 #define S_FW_CHNET_IFACE_CMD_IFID 8
6979 #define M_FW_CHNET_IFACE_CMD_IFID 0xffffff
6980 #define V_FW_CHNET_IFACE_CMD_IFID(x) ((x) << S_FW_CHNET_IFACE_CMD_IFID)
6981 #define G_FW_CHNET_IFACE_CMD_IFID(x) \
6982 (((x) >> S_FW_CHNET_IFACE_CMD_IFID) & M_FW_CHNET_IFACE_CMD_IFID)
6984 #define S_FW_CHNET_IFACE_CMD_IFSTATE 0
6985 #define M_FW_CHNET_IFACE_CMD_IFSTATE 0xff
6986 #define V_FW_CHNET_IFACE_CMD_IFSTATE(x) ((x) << S_FW_CHNET_IFACE_CMD_IFSTATE)
6987 #define G_FW_CHNET_IFACE_CMD_IFSTATE(x) \
6988 (((x) >> S_FW_CHNET_IFACE_CMD_IFSTATE) & M_FW_CHNET_IFACE_CMD_IFSTATE)
6990 /******************************************************************************
6991 * F O F C O E C O M M A N D s
6992 ************************************/
6994 struct fw_fcoe_res_info_cmd {
6996 __be32 retval_len16;
7011 struct fw_fcoe_link_cmd {
7012 __be32 op_to_portid;
7013 __be32 retval_len16;
7014 __be32 sub_opcode_fcfi;
7024 __u8 vnport_wwnn[8];
7025 __u8 vnport_wwpn[8];
7028 #define S_FW_FCOE_LINK_CMD_PORTID 0
7029 #define M_FW_FCOE_LINK_CMD_PORTID 0xf
7030 #define V_FW_FCOE_LINK_CMD_PORTID(x) ((x) << S_FW_FCOE_LINK_CMD_PORTID)
7031 #define G_FW_FCOE_LINK_CMD_PORTID(x) \
7032 (((x) >> S_FW_FCOE_LINK_CMD_PORTID) & M_FW_FCOE_LINK_CMD_PORTID)
7034 #define S_FW_FCOE_LINK_CMD_SUB_OPCODE 24
7035 #define M_FW_FCOE_LINK_CMD_SUB_OPCODE 0xff
7036 #define V_FW_FCOE_LINK_CMD_SUB_OPCODE(x) \
7037 ((x) << S_FW_FCOE_LINK_CMD_SUB_OPCODE)
7038 #define G_FW_FCOE_LINK_CMD_SUB_OPCODE(x) \
7039 (((x) >> S_FW_FCOE_LINK_CMD_SUB_OPCODE) & M_FW_FCOE_LINK_CMD_SUB_OPCODE)
7041 #define S_FW_FCOE_LINK_CMD_FCFI 0
7042 #define M_FW_FCOE_LINK_CMD_FCFI 0xffffff
7043 #define V_FW_FCOE_LINK_CMD_FCFI(x) ((x) << S_FW_FCOE_LINK_CMD_FCFI)
7044 #define G_FW_FCOE_LINK_CMD_FCFI(x) \
7045 (((x) >> S_FW_FCOE_LINK_CMD_FCFI) & M_FW_FCOE_LINK_CMD_FCFI)
7047 #define S_FW_FCOE_LINK_CMD_VNPI 0
7048 #define M_FW_FCOE_LINK_CMD_VNPI 0xfffff
7049 #define V_FW_FCOE_LINK_CMD_VNPI(x) ((x) << S_FW_FCOE_LINK_CMD_VNPI)
7050 #define G_FW_FCOE_LINK_CMD_VNPI(x) \
7051 (((x) >> S_FW_FCOE_LINK_CMD_VNPI) & M_FW_FCOE_LINK_CMD_VNPI)
7053 struct fw_fcoe_vnp_cmd {
7055 __be32 alloc_to_len16;
7056 __be32 gen_wwn_to_vnpi;
7060 __u8 vnport_wwnn[8];
7061 __u8 vnport_wwpn[8];
7062 __u8 cmn_srv_parms[16];
7063 __u8 clsp_word_0_1[8];
7066 #define S_FW_FCOE_VNP_CMD_FCFI 0
7067 #define M_FW_FCOE_VNP_CMD_FCFI 0xfffff
7068 #define V_FW_FCOE_VNP_CMD_FCFI(x) ((x) << S_FW_FCOE_VNP_CMD_FCFI)
7069 #define G_FW_FCOE_VNP_CMD_FCFI(x) \
7070 (((x) >> S_FW_FCOE_VNP_CMD_FCFI) & M_FW_FCOE_VNP_CMD_FCFI)
7072 #define S_FW_FCOE_VNP_CMD_ALLOC 31
7073 #define M_FW_FCOE_VNP_CMD_ALLOC 0x1
7074 #define V_FW_FCOE_VNP_CMD_ALLOC(x) ((x) << S_FW_FCOE_VNP_CMD_ALLOC)
7075 #define G_FW_FCOE_VNP_CMD_ALLOC(x) \
7076 (((x) >> S_FW_FCOE_VNP_CMD_ALLOC) & M_FW_FCOE_VNP_CMD_ALLOC)
7077 #define F_FW_FCOE_VNP_CMD_ALLOC V_FW_FCOE_VNP_CMD_ALLOC(1U)
7079 #define S_FW_FCOE_VNP_CMD_FREE 30
7080 #define M_FW_FCOE_VNP_CMD_FREE 0x1
7081 #define V_FW_FCOE_VNP_CMD_FREE(x) ((x) << S_FW_FCOE_VNP_CMD_FREE)
7082 #define G_FW_FCOE_VNP_CMD_FREE(x) \
7083 (((x) >> S_FW_FCOE_VNP_CMD_FREE) & M_FW_FCOE_VNP_CMD_FREE)
7084 #define F_FW_FCOE_VNP_CMD_FREE V_FW_FCOE_VNP_CMD_FREE(1U)
7086 #define S_FW_FCOE_VNP_CMD_MODIFY 29
7087 #define M_FW_FCOE_VNP_CMD_MODIFY 0x1
7088 #define V_FW_FCOE_VNP_CMD_MODIFY(x) ((x) << S_FW_FCOE_VNP_CMD_MODIFY)
7089 #define G_FW_FCOE_VNP_CMD_MODIFY(x) \
7090 (((x) >> S_FW_FCOE_VNP_CMD_MODIFY) & M_FW_FCOE_VNP_CMD_MODIFY)
7091 #define F_FW_FCOE_VNP_CMD_MODIFY V_FW_FCOE_VNP_CMD_MODIFY(1U)
7093 #define S_FW_FCOE_VNP_CMD_GEN_WWN 22
7094 #define M_FW_FCOE_VNP_CMD_GEN_WWN 0x1
7095 #define V_FW_FCOE_VNP_CMD_GEN_WWN(x) ((x) << S_FW_FCOE_VNP_CMD_GEN_WWN)
7096 #define G_FW_FCOE_VNP_CMD_GEN_WWN(x) \
7097 (((x) >> S_FW_FCOE_VNP_CMD_GEN_WWN) & M_FW_FCOE_VNP_CMD_GEN_WWN)
7098 #define F_FW_FCOE_VNP_CMD_GEN_WWN V_FW_FCOE_VNP_CMD_GEN_WWN(1U)
7100 #define S_FW_FCOE_VNP_CMD_PERSIST 21
7101 #define M_FW_FCOE_VNP_CMD_PERSIST 0x1
7102 #define V_FW_FCOE_VNP_CMD_PERSIST(x) ((x) << S_FW_FCOE_VNP_CMD_PERSIST)
7103 #define G_FW_FCOE_VNP_CMD_PERSIST(x) \
7104 (((x) >> S_FW_FCOE_VNP_CMD_PERSIST) & M_FW_FCOE_VNP_CMD_PERSIST)
7105 #define F_FW_FCOE_VNP_CMD_PERSIST V_FW_FCOE_VNP_CMD_PERSIST(1U)
7107 #define S_FW_FCOE_VNP_CMD_VFID_EN 20
7108 #define M_FW_FCOE_VNP_CMD_VFID_EN 0x1
7109 #define V_FW_FCOE_VNP_CMD_VFID_EN(x) ((x) << S_FW_FCOE_VNP_CMD_VFID_EN)
7110 #define G_FW_FCOE_VNP_CMD_VFID_EN(x) \
7111 (((x) >> S_FW_FCOE_VNP_CMD_VFID_EN) & M_FW_FCOE_VNP_CMD_VFID_EN)
7112 #define F_FW_FCOE_VNP_CMD_VFID_EN V_FW_FCOE_VNP_CMD_VFID_EN(1U)
7114 #define S_FW_FCOE_VNP_CMD_VNPI 0
7115 #define M_FW_FCOE_VNP_CMD_VNPI 0xfffff
7116 #define V_FW_FCOE_VNP_CMD_VNPI(x) ((x) << S_FW_FCOE_VNP_CMD_VNPI)
7117 #define G_FW_FCOE_VNP_CMD_VNPI(x) \
7118 (((x) >> S_FW_FCOE_VNP_CMD_VNPI) & M_FW_FCOE_VNP_CMD_VNPI)
7120 struct fw_fcoe_sparams_cmd {
7121 __be32 op_to_portid;
7122 __be32 retval_len16;
7127 __u8 cmn_srv_parms[16];
7128 __u8 cls_srv_parms[16];
7131 #define S_FW_FCOE_SPARAMS_CMD_PORTID 0
7132 #define M_FW_FCOE_SPARAMS_CMD_PORTID 0xf
7133 #define V_FW_FCOE_SPARAMS_CMD_PORTID(x) ((x) << S_FW_FCOE_SPARAMS_CMD_PORTID)
7134 #define G_FW_FCOE_SPARAMS_CMD_PORTID(x) \
7135 (((x) >> S_FW_FCOE_SPARAMS_CMD_PORTID) & M_FW_FCOE_SPARAMS_CMD_PORTID)
7137 struct fw_fcoe_stats_cmd {
7138 __be32 op_to_flowid;
7139 __be32 free_to_len16;
7140 union fw_fcoe_stats {
7141 struct fw_fcoe_stats_ctl {
7153 struct fw_fcoe_port_stats {
7154 __be64 tx_bcast_bytes;
7155 __be64 tx_bcast_frames;
7156 __be64 tx_mcast_bytes;
7157 __be64 tx_mcast_frames;
7158 __be64 tx_ucast_bytes;
7159 __be64 tx_ucast_frames;
7160 __be64 tx_drop_frames;
7161 __be64 tx_offload_bytes;
7162 __be64 tx_offload_frames;
7163 __be64 rx_bcast_bytes;
7164 __be64 rx_bcast_frames;
7165 __be64 rx_mcast_bytes;
7166 __be64 rx_mcast_frames;
7167 __be64 rx_ucast_bytes;
7168 __be64 rx_ucast_frames;
7169 __be64 rx_err_frames;
7171 struct fw_fcoe_fcf_stats {
7172 __be32 fip_tx_bytes;
7175 __be64 mcast_adv_rcvd;
7176 __be16 ucast_adv_rcvd;
7194 struct fw_fcoe_pcb_stats {
7200 __be32 unsol_els_rcvd;
7201 __be64 unsol_cmd_rcvd;
7202 __be16 implicit_logo;
7203 __be16 flogi_inv_sparm;
7204 __be16 fdisc_inv_sparm;
7208 __be16 mac_flt_fail;
7211 struct fw_fcoe_scb_stats {
7216 __be32 host_abrt_req;
7217 __be32 adap_auto_abrt;
7218 __be32 adap_abrt_rsp;
7219 __be32 host_ios_req;
7220 __be16 ssn_offl_ios;
7221 __be16 ssn_not_rdy_ios;
7222 __u8 rx_data_ddp_err;
7223 __u8 ddp_flt_set_err;
7224 __be16 rx_data_fr_err;
7225 __u8 bad_st_abrt_req;
7226 __u8 no_io_abrt_req;
7230 __u8 no_ppod_res_tmo;
7234 __be32 host_cls_req;
7235 __be64 unsol_cmd_rcvd;
7236 __be32 plogi_req_rcvd;
7237 __be32 prli_req_rcvd;
7238 __be16 logo_req_rcvd;
7239 __be16 prlo_req_rcvd;
7240 __be16 plogi_rjt_rcvd;
7241 __be16 prli_rjt_rcvd;
7242 __be32 adisc_req_rcvd;
7244 __be32 rrq_req_rcvd;
7245 __be32 unsol_els_rcvd;
7246 __u8 adisc_rjt_rcvd;
7249 __u8 inval_bls_rcvd;
7255 #define S_FW_FCOE_STATS_CMD_FLOWID 0
7256 #define M_FW_FCOE_STATS_CMD_FLOWID 0xfffff
7257 #define V_FW_FCOE_STATS_CMD_FLOWID(x) ((x) << S_FW_FCOE_STATS_CMD_FLOWID)
7258 #define G_FW_FCOE_STATS_CMD_FLOWID(x) \
7259 (((x) >> S_FW_FCOE_STATS_CMD_FLOWID) & M_FW_FCOE_STATS_CMD_FLOWID)
7261 #define S_FW_FCOE_STATS_CMD_FREE 30
7262 #define M_FW_FCOE_STATS_CMD_FREE 0x1
7263 #define V_FW_FCOE_STATS_CMD_FREE(x) ((x) << S_FW_FCOE_STATS_CMD_FREE)
7264 #define G_FW_FCOE_STATS_CMD_FREE(x) \
7265 (((x) >> S_FW_FCOE_STATS_CMD_FREE) & M_FW_FCOE_STATS_CMD_FREE)
7266 #define F_FW_FCOE_STATS_CMD_FREE V_FW_FCOE_STATS_CMD_FREE(1U)
7268 #define S_FW_FCOE_STATS_CMD_NSTATS 4
7269 #define M_FW_FCOE_STATS_CMD_NSTATS 0x7
7270 #define V_FW_FCOE_STATS_CMD_NSTATS(x) ((x) << S_FW_FCOE_STATS_CMD_NSTATS)
7271 #define G_FW_FCOE_STATS_CMD_NSTATS(x) \
7272 (((x) >> S_FW_FCOE_STATS_CMD_NSTATS) & M_FW_FCOE_STATS_CMD_NSTATS)
7274 #define S_FW_FCOE_STATS_CMD_PORT 0
7275 #define M_FW_FCOE_STATS_CMD_PORT 0x3
7276 #define V_FW_FCOE_STATS_CMD_PORT(x) ((x) << S_FW_FCOE_STATS_CMD_PORT)
7277 #define G_FW_FCOE_STATS_CMD_PORT(x) \
7278 (((x) >> S_FW_FCOE_STATS_CMD_PORT) & M_FW_FCOE_STATS_CMD_PORT)
7280 #define S_FW_FCOE_STATS_CMD_PORT_VALID 7
7281 #define M_FW_FCOE_STATS_CMD_PORT_VALID 0x1
7282 #define V_FW_FCOE_STATS_CMD_PORT_VALID(x) \
7283 ((x) << S_FW_FCOE_STATS_CMD_PORT_VALID)
7284 #define G_FW_FCOE_STATS_CMD_PORT_VALID(x) \
7285 (((x) >> S_FW_FCOE_STATS_CMD_PORT_VALID) & M_FW_FCOE_STATS_CMD_PORT_VALID)
7286 #define F_FW_FCOE_STATS_CMD_PORT_VALID V_FW_FCOE_STATS_CMD_PORT_VALID(1U)
7288 #define S_FW_FCOE_STATS_CMD_IX 0
7289 #define M_FW_FCOE_STATS_CMD_IX 0x3f
7290 #define V_FW_FCOE_STATS_CMD_IX(x) ((x) << S_FW_FCOE_STATS_CMD_IX)
7291 #define G_FW_FCOE_STATS_CMD_IX(x) \
7292 (((x) >> S_FW_FCOE_STATS_CMD_IX) & M_FW_FCOE_STATS_CMD_IX)
7294 struct fw_fcoe_fcf_cmd {
7296 __be32 retval_len16;
7297 __be16 priority_pkd;
7302 __be16 max_fcoe_size;
7308 __u8 fpma_to_portid;
7313 #define S_FW_FCOE_FCF_CMD_FCFI 0
7314 #define M_FW_FCOE_FCF_CMD_FCFI 0xfffff
7315 #define V_FW_FCOE_FCF_CMD_FCFI(x) ((x) << S_FW_FCOE_FCF_CMD_FCFI)
7316 #define G_FW_FCOE_FCF_CMD_FCFI(x) \
7317 (((x) >> S_FW_FCOE_FCF_CMD_FCFI) & M_FW_FCOE_FCF_CMD_FCFI)
7319 #define S_FW_FCOE_FCF_CMD_PRIORITY 0
7320 #define M_FW_FCOE_FCF_CMD_PRIORITY 0xff
7321 #define V_FW_FCOE_FCF_CMD_PRIORITY(x) ((x) << S_FW_FCOE_FCF_CMD_PRIORITY)
7322 #define G_FW_FCOE_FCF_CMD_PRIORITY(x) \
7323 (((x) >> S_FW_FCOE_FCF_CMD_PRIORITY) & M_FW_FCOE_FCF_CMD_PRIORITY)
7325 #define S_FW_FCOE_FCF_CMD_FPMA 6
7326 #define M_FW_FCOE_FCF_CMD_FPMA 0x1
7327 #define V_FW_FCOE_FCF_CMD_FPMA(x) ((x) << S_FW_FCOE_FCF_CMD_FPMA)
7328 #define G_FW_FCOE_FCF_CMD_FPMA(x) \
7329 (((x) >> S_FW_FCOE_FCF_CMD_FPMA) & M_FW_FCOE_FCF_CMD_FPMA)
7330 #define F_FW_FCOE_FCF_CMD_FPMA V_FW_FCOE_FCF_CMD_FPMA(1U)
7332 #define S_FW_FCOE_FCF_CMD_SPMA 5
7333 #define M_FW_FCOE_FCF_CMD_SPMA 0x1
7334 #define V_FW_FCOE_FCF_CMD_SPMA(x) ((x) << S_FW_FCOE_FCF_CMD_SPMA)
7335 #define G_FW_FCOE_FCF_CMD_SPMA(x) \
7336 (((x) >> S_FW_FCOE_FCF_CMD_SPMA) & M_FW_FCOE_FCF_CMD_SPMA)
7337 #define F_FW_FCOE_FCF_CMD_SPMA V_FW_FCOE_FCF_CMD_SPMA(1U)
7339 #define S_FW_FCOE_FCF_CMD_LOGIN 4
7340 #define M_FW_FCOE_FCF_CMD_LOGIN 0x1
7341 #define V_FW_FCOE_FCF_CMD_LOGIN(x) ((x) << S_FW_FCOE_FCF_CMD_LOGIN)
7342 #define G_FW_FCOE_FCF_CMD_LOGIN(x) \
7343 (((x) >> S_FW_FCOE_FCF_CMD_LOGIN) & M_FW_FCOE_FCF_CMD_LOGIN)
7344 #define F_FW_FCOE_FCF_CMD_LOGIN V_FW_FCOE_FCF_CMD_LOGIN(1U)
7346 #define S_FW_FCOE_FCF_CMD_PORTID 0
7347 #define M_FW_FCOE_FCF_CMD_PORTID 0xf
7348 #define V_FW_FCOE_FCF_CMD_PORTID(x) ((x) << S_FW_FCOE_FCF_CMD_PORTID)
7349 #define G_FW_FCOE_FCF_CMD_PORTID(x) \
7350 (((x) >> S_FW_FCOE_FCF_CMD_PORTID) & M_FW_FCOE_FCF_CMD_PORTID)
7352 /******************************************************************************
7353 * E R R O R a n d D E B U G C O M M A N D s
7354 ******************************************************/
7356 enum fw_error_type {
7357 FW_ERROR_TYPE_EXCEPTION = 0x0,
7358 FW_ERROR_TYPE_HWMODULE = 0x1,
7359 FW_ERROR_TYPE_WR = 0x2,
7360 FW_ERROR_TYPE_ACL = 0x3,
7363 struct fw_error_cmd {
7367 struct fw_error_exception {
7370 struct fw_error_hwmodule {
7374 struct fw_error_wr {
7380 struct fw_error_acl {
7391 #define S_FW_ERROR_CMD_FATAL 4
7392 #define M_FW_ERROR_CMD_FATAL 0x1
7393 #define V_FW_ERROR_CMD_FATAL(x) ((x) << S_FW_ERROR_CMD_FATAL)
7394 #define G_FW_ERROR_CMD_FATAL(x) \
7395 (((x) >> S_FW_ERROR_CMD_FATAL) & M_FW_ERROR_CMD_FATAL)
7396 #define F_FW_ERROR_CMD_FATAL V_FW_ERROR_CMD_FATAL(1U)
7398 #define S_FW_ERROR_CMD_TYPE 0
7399 #define M_FW_ERROR_CMD_TYPE 0xf
7400 #define V_FW_ERROR_CMD_TYPE(x) ((x) << S_FW_ERROR_CMD_TYPE)
7401 #define G_FW_ERROR_CMD_TYPE(x) \
7402 (((x) >> S_FW_ERROR_CMD_TYPE) & M_FW_ERROR_CMD_TYPE)
7404 #define S_FW_ERROR_CMD_PFN 8
7405 #define M_FW_ERROR_CMD_PFN 0x7
7406 #define V_FW_ERROR_CMD_PFN(x) ((x) << S_FW_ERROR_CMD_PFN)
7407 #define G_FW_ERROR_CMD_PFN(x) \
7408 (((x) >> S_FW_ERROR_CMD_PFN) & M_FW_ERROR_CMD_PFN)
7410 #define S_FW_ERROR_CMD_VFN 0
7411 #define M_FW_ERROR_CMD_VFN 0xff
7412 #define V_FW_ERROR_CMD_VFN(x) ((x) << S_FW_ERROR_CMD_VFN)
7413 #define G_FW_ERROR_CMD_VFN(x) \
7414 (((x) >> S_FW_ERROR_CMD_VFN) & M_FW_ERROR_CMD_VFN)
7416 #define S_FW_ERROR_CMD_PFN 8
7417 #define M_FW_ERROR_CMD_PFN 0x7
7418 #define V_FW_ERROR_CMD_PFN(x) ((x) << S_FW_ERROR_CMD_PFN)
7419 #define G_FW_ERROR_CMD_PFN(x) \
7420 (((x) >> S_FW_ERROR_CMD_PFN) & M_FW_ERROR_CMD_PFN)
7422 #define S_FW_ERROR_CMD_VFN 0
7423 #define M_FW_ERROR_CMD_VFN 0xff
7424 #define V_FW_ERROR_CMD_VFN(x) ((x) << S_FW_ERROR_CMD_VFN)
7425 #define G_FW_ERROR_CMD_VFN(x) \
7426 (((x) >> S_FW_ERROR_CMD_VFN) & M_FW_ERROR_CMD_VFN)
7428 #define S_FW_ERROR_CMD_MV 15
7429 #define M_FW_ERROR_CMD_MV 0x1
7430 #define V_FW_ERROR_CMD_MV(x) ((x) << S_FW_ERROR_CMD_MV)
7431 #define G_FW_ERROR_CMD_MV(x) \
7432 (((x) >> S_FW_ERROR_CMD_MV) & M_FW_ERROR_CMD_MV)
7433 #define F_FW_ERROR_CMD_MV V_FW_ERROR_CMD_MV(1U)
7435 struct fw_debug_cmd {
7439 struct fw_debug_assert {
7444 __u8 filename_0_7[8];
7445 __u8 filename_8_15[8];
7448 struct fw_debug_prt {
7451 __be32 dprtstrparam0;
7452 __be32 dprtstrparam1;
7453 __be32 dprtstrparam2;
7454 __be32 dprtstrparam3;
7459 #define S_FW_DEBUG_CMD_TYPE 0
7460 #define M_FW_DEBUG_CMD_TYPE 0xff
7461 #define V_FW_DEBUG_CMD_TYPE(x) ((x) << S_FW_DEBUG_CMD_TYPE)
7462 #define G_FW_DEBUG_CMD_TYPE(x) \
7463 (((x) >> S_FW_DEBUG_CMD_TYPE) & M_FW_DEBUG_CMD_TYPE)
7465 /******************************************************************************
7466 * P C I E F W R E G I S T E R
7467 **************************************/
7470 PCIE_FW_EVAL_CRASH = 0,
7471 PCIE_FW_EVAL_PREP = 1,
7472 PCIE_FW_EVAL_CONF = 2,
7473 PCIE_FW_EVAL_INIT = 3,
7474 PCIE_FW_EVAL_UNEXPECTEDEVENT = 4,
7475 PCIE_FW_EVAL_OVERHEAT = 5,
7476 PCIE_FW_EVAL_DEVICESHUTDOWN = 6,
7480 * Register definitions for the PCIE_FW register which the firmware uses
7481 * to retain status across RESETs. This register should be considered
7482 * as a READ-ONLY register for Host Software and only to be used to
7483 * track firmware initialization/error state, etc.
7485 #define S_PCIE_FW_ERR 31
7486 #define M_PCIE_FW_ERR 0x1
7487 #define V_PCIE_FW_ERR(x) ((x) << S_PCIE_FW_ERR)
7488 #define G_PCIE_FW_ERR(x) (((x) >> S_PCIE_FW_ERR) & M_PCIE_FW_ERR)
7489 #define F_PCIE_FW_ERR V_PCIE_FW_ERR(1U)
7491 #define S_PCIE_FW_INIT 30
7492 #define M_PCIE_FW_INIT 0x1
7493 #define V_PCIE_FW_INIT(x) ((x) << S_PCIE_FW_INIT)
7494 #define G_PCIE_FW_INIT(x) (((x) >> S_PCIE_FW_INIT) & M_PCIE_FW_INIT)
7495 #define F_PCIE_FW_INIT V_PCIE_FW_INIT(1U)
7497 #define S_PCIE_FW_HALT 29
7498 #define M_PCIE_FW_HALT 0x1
7499 #define V_PCIE_FW_HALT(x) ((x) << S_PCIE_FW_HALT)
7500 #define G_PCIE_FW_HALT(x) (((x) >> S_PCIE_FW_HALT) & M_PCIE_FW_HALT)
7501 #define F_PCIE_FW_HALT V_PCIE_FW_HALT(1U)
7503 #define S_PCIE_FW_EVAL 24
7504 #define M_PCIE_FW_EVAL 0x7
7505 #define V_PCIE_FW_EVAL(x) ((x) << S_PCIE_FW_EVAL)
7506 #define G_PCIE_FW_EVAL(x) (((x) >> S_PCIE_FW_EVAL) & M_PCIE_FW_EVAL)
7508 #define S_PCIE_FW_STAGE 21
7509 #define M_PCIE_FW_STAGE 0x7
7510 #define V_PCIE_FW_STAGE(x) ((x) << S_PCIE_FW_STAGE)
7511 #define G_PCIE_FW_STAGE(x) (((x) >> S_PCIE_FW_STAGE) & M_PCIE_FW_STAGE)
7513 #define S_PCIE_FW_ASYNCNOT_VLD 20
7514 #define M_PCIE_FW_ASYNCNOT_VLD 0x1
7515 #define V_PCIE_FW_ASYNCNOT_VLD(x) \
7516 ((x) << S_PCIE_FW_ASYNCNOT_VLD)
7517 #define G_PCIE_FW_ASYNCNOT_VLD(x) \
7518 (((x) >> S_PCIE_FW_ASYNCNOT_VLD) & M_PCIE_FW_ASYNCNOT_VLD)
7519 #define F_PCIE_FW_ASYNCNOT_VLD V_PCIE_FW_ASYNCNOT_VLD(1U)
7521 #define S_PCIE_FW_ASYNCNOTINT 19
7522 #define M_PCIE_FW_ASYNCNOTINT 0x1
7523 #define V_PCIE_FW_ASYNCNOTINT(x) \
7524 ((x) << S_PCIE_FW_ASYNCNOTINT)
7525 #define G_PCIE_FW_ASYNCNOTINT(x) \
7526 (((x) >> S_PCIE_FW_ASYNCNOTINT) & M_PCIE_FW_ASYNCNOTINT)
7527 #define F_PCIE_FW_ASYNCNOTINT V_PCIE_FW_ASYNCNOTINT(1U)
7529 #define S_PCIE_FW_ASYNCNOT 16
7530 #define M_PCIE_FW_ASYNCNOT 0x7
7531 #define V_PCIE_FW_ASYNCNOT(x) ((x) << S_PCIE_FW_ASYNCNOT)
7532 #define G_PCIE_FW_ASYNCNOT(x) \
7533 (((x) >> S_PCIE_FW_ASYNCNOT) & M_PCIE_FW_ASYNCNOT)
7535 #define S_PCIE_FW_MASTER_VLD 15
7536 #define M_PCIE_FW_MASTER_VLD 0x1
7537 #define V_PCIE_FW_MASTER_VLD(x) ((x) << S_PCIE_FW_MASTER_VLD)
7538 #define G_PCIE_FW_MASTER_VLD(x) \
7539 (((x) >> S_PCIE_FW_MASTER_VLD) & M_PCIE_FW_MASTER_VLD)
7540 #define F_PCIE_FW_MASTER_VLD V_PCIE_FW_MASTER_VLD(1U)
7542 #define S_PCIE_FW_MASTER 12
7543 #define M_PCIE_FW_MASTER 0x7
7544 #define V_PCIE_FW_MASTER(x) ((x) << S_PCIE_FW_MASTER)
7545 #define G_PCIE_FW_MASTER(x) (((x) >> S_PCIE_FW_MASTER) & M_PCIE_FW_MASTER)
7547 #define S_PCIE_FW_RESET_VLD 11
7548 #define M_PCIE_FW_RESET_VLD 0x1
7549 #define V_PCIE_FW_RESET_VLD(x) ((x) << S_PCIE_FW_RESET_VLD)
7550 #define G_PCIE_FW_RESET_VLD(x) \
7551 (((x) >> S_PCIE_FW_RESET_VLD) & M_PCIE_FW_RESET_VLD)
7552 #define F_PCIE_FW_RESET_VLD V_PCIE_FW_RESET_VLD(1U)
7554 #define S_PCIE_FW_RESET 8
7555 #define M_PCIE_FW_RESET 0x7
7556 #define V_PCIE_FW_RESET(x) ((x) << S_PCIE_FW_RESET)
7557 #define G_PCIE_FW_RESET(x) \
7558 (((x) >> S_PCIE_FW_RESET) & M_PCIE_FW_RESET)
7560 #define S_PCIE_FW_REGISTERED 0
7561 #define M_PCIE_FW_REGISTERED 0xff
7562 #define V_PCIE_FW_REGISTERED(x) ((x) << S_PCIE_FW_REGISTERED)
7563 #define G_PCIE_FW_REGISTERED(x) \
7564 (((x) >> S_PCIE_FW_REGISTERED) & M_PCIE_FW_REGISTERED)
7567 /******************************************************************************
7568 * B I N A R Y H E A D E R F O R M A T
7569 **********************************************/
7572 * firmware binary header format
7576 __u8 chip; /* terminator chip family */
7577 __be16 len512; /* bin length in units of 512-bytes */
7578 __be32 fw_ver; /* firmware version */
7579 __be32 tp_microcode_ver; /* tcp processor microcode version */
7584 __u8 intfver_iscsipdu;
7586 __u8 intfver_fcoepdu;
7590 __u32 magic; /* runtime or bootstrap fw */
7592 __be32 reserved6[23];
7600 #define S_FW_HDR_FW_VER_MAJOR 24
7601 #define M_FW_HDR_FW_VER_MAJOR 0xff
7602 #define V_FW_HDR_FW_VER_MAJOR(x) \
7603 ((x) << S_FW_HDR_FW_VER_MAJOR)
7604 #define G_FW_HDR_FW_VER_MAJOR(x) \
7605 (((x) >> S_FW_HDR_FW_VER_MAJOR) & M_FW_HDR_FW_VER_MAJOR)
7607 #define S_FW_HDR_FW_VER_MINOR 16
7608 #define M_FW_HDR_FW_VER_MINOR 0xff
7609 #define V_FW_HDR_FW_VER_MINOR(x) \
7610 ((x) << S_FW_HDR_FW_VER_MINOR)
7611 #define G_FW_HDR_FW_VER_MINOR(x) \
7612 (((x) >> S_FW_HDR_FW_VER_MINOR) & M_FW_HDR_FW_VER_MINOR)
7614 #define S_FW_HDR_FW_VER_MICRO 8
7615 #define M_FW_HDR_FW_VER_MICRO 0xff
7616 #define V_FW_HDR_FW_VER_MICRO(x) \
7617 ((x) << S_FW_HDR_FW_VER_MICRO)
7618 #define G_FW_HDR_FW_VER_MICRO(x) \
7619 (((x) >> S_FW_HDR_FW_VER_MICRO) & M_FW_HDR_FW_VER_MICRO)
7621 #define S_FW_HDR_FW_VER_BUILD 0
7622 #define M_FW_HDR_FW_VER_BUILD 0xff
7623 #define V_FW_HDR_FW_VER_BUILD(x) \
7624 ((x) << S_FW_HDR_FW_VER_BUILD)
7625 #define G_FW_HDR_FW_VER_BUILD(x) \
7626 (((x) >> S_FW_HDR_FW_VER_BUILD) & M_FW_HDR_FW_VER_BUILD)
7629 T4FW_VERSION_MAJOR = 0x01,
7630 T4FW_VERSION_MINOR = 0x08,
7631 T4FW_VERSION_MICRO = 0x0b,
7632 T4FW_VERSION_BUILD = 0x00,
7634 T5FW_VERSION_MAJOR = 0x01,
7635 T5FW_VERSION_MINOR = 0x08,
7636 T5FW_VERSION_MICRO = 0x16,
7637 T5FW_VERSION_BUILD = 0x00,
7641 T4FW_HDR_INTFVER_NIC = 0x00,
7642 T4FW_HDR_INTFVER_VNIC = 0x00,
7643 T4FW_HDR_INTFVER_OFLD = 0x00,
7644 T4FW_HDR_INTFVER_RI = 0x00,
7645 T4FW_HDR_INTFVER_ISCSIPDU = 0x00,
7646 T4FW_HDR_INTFVER_ISCSI = 0x00,
7647 T4FW_HDR_INTFVER_FCOEPDU = 0x00,
7648 T4FW_HDR_INTFVER_FCOE = 0x00,
7650 T5FW_HDR_INTFVER_NIC = 0x00,
7651 T5FW_HDR_INTFVER_VNIC = 0x00,
7652 T5FW_HDR_INTFVER_OFLD = 0x00,
7653 T5FW_HDR_INTFVER_RI = 0x00,
7654 T5FW_HDR_INTFVER_ISCSIPDU= 0x00,
7655 T5FW_HDR_INTFVER_ISCSI = 0x00,
7656 T5FW_HDR_INTFVER_FCOEPDU= 0x00,
7657 T5FW_HDR_INTFVER_FCOE = 0x00,
7661 FW_HDR_MAGIC_RUNTIME = 0x00000000,
7662 FW_HDR_MAGIC_BOOTSTRAP = 0x626f6f74,
7666 FW_HDR_FLAGS_RESET_HALT = 0x00000001,
7669 #endif /* _T4FW_INTERFACE_H_ */