]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blob - drivers/net/ethernet/qlogic/qed/qed_hsi.h
Merge remote-tracking branches 'asoc/topic/sgtl5000', 'asoc/topic/simple', 'asoc...
[mirror_ubuntu-zesty-kernel.git] / drivers / net / ethernet / qlogic / qed / qed_hsi.h
1 /* QLogic qed NIC Driver
2 * Copyright (c) 2015 QLogic Corporation
3 *
4 * This software is available under the terms of the GNU General Public License
5 * (GPL) Version 2, available from the file COPYING in the main directory of
6 * this source tree.
7 */
8
9 #ifndef _QED_HSI_H
10 #define _QED_HSI_H
11
12 #include <linux/types.h>
13 #include <linux/io.h>
14 #include <linux/bitops.h>
15 #include <linux/delay.h>
16 #include <linux/kernel.h>
17 #include <linux/list.h>
18 #include <linux/slab.h>
19 #include <linux/qed/common_hsi.h>
20 #include <linux/qed/storage_common.h>
21 #include <linux/qed/tcp_common.h>
22 #include <linux/qed/eth_common.h>
23 #include <linux/qed/iscsi_common.h>
24 #include <linux/qed/rdma_common.h>
25 #include <linux/qed/roce_common.h>
26
27 struct qed_hwfn;
28 struct qed_ptt;
29
30 /* opcodes for the event ring */
31 enum common_event_opcode {
32 COMMON_EVENT_PF_START,
33 COMMON_EVENT_PF_STOP,
34 COMMON_EVENT_VF_START,
35 COMMON_EVENT_VF_STOP,
36 COMMON_EVENT_VF_PF_CHANNEL,
37 COMMON_EVENT_VF_FLR,
38 COMMON_EVENT_PF_UPDATE,
39 COMMON_EVENT_MALICIOUS_VF,
40 COMMON_EVENT_RL_UPDATE,
41 COMMON_EVENT_EMPTY,
42 MAX_COMMON_EVENT_OPCODE
43 };
44
45 /* Common Ramrod Command IDs */
46 enum common_ramrod_cmd_id {
47 COMMON_RAMROD_UNUSED,
48 COMMON_RAMROD_PF_START,
49 COMMON_RAMROD_PF_STOP,
50 COMMON_RAMROD_VF_START,
51 COMMON_RAMROD_VF_STOP,
52 COMMON_RAMROD_PF_UPDATE,
53 COMMON_RAMROD_RL_UPDATE,
54 COMMON_RAMROD_EMPTY,
55 MAX_COMMON_RAMROD_CMD_ID
56 };
57
58 /* The core storm context for the Ystorm */
59 struct ystorm_core_conn_st_ctx {
60 __le32 reserved[4];
61 };
62
63 /* The core storm context for the Pstorm */
64 struct pstorm_core_conn_st_ctx {
65 __le32 reserved[4];
66 };
67
68 /* Core Slowpath Connection storm context of Xstorm */
69 struct xstorm_core_conn_st_ctx {
70 __le32 spq_base_lo;
71 __le32 spq_base_hi;
72 struct regpair consolid_base_addr;
73 __le16 spq_cons;
74 __le16 consolid_cons;
75 __le32 reserved0[55];
76 };
77
78 struct xstorm_core_conn_ag_ctx {
79 u8 reserved0;
80 u8 core_state;
81 u8 flags0;
82 #define XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
83 #define XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
84 #define XSTORM_CORE_CONN_AG_CTX_RESERVED1_MASK 0x1
85 #define XSTORM_CORE_CONN_AG_CTX_RESERVED1_SHIFT 1
86 #define XSTORM_CORE_CONN_AG_CTX_RESERVED2_MASK 0x1
87 #define XSTORM_CORE_CONN_AG_CTX_RESERVED2_SHIFT 2
88 #define XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
89 #define XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
90 #define XSTORM_CORE_CONN_AG_CTX_RESERVED3_MASK 0x1
91 #define XSTORM_CORE_CONN_AG_CTX_RESERVED3_SHIFT 4
92 #define XSTORM_CORE_CONN_AG_CTX_RESERVED4_MASK 0x1
93 #define XSTORM_CORE_CONN_AG_CTX_RESERVED4_SHIFT 5
94 #define XSTORM_CORE_CONN_AG_CTX_RESERVED5_MASK 0x1
95 #define XSTORM_CORE_CONN_AG_CTX_RESERVED5_SHIFT 6
96 #define XSTORM_CORE_CONN_AG_CTX_RESERVED6_MASK 0x1
97 #define XSTORM_CORE_CONN_AG_CTX_RESERVED6_SHIFT 7
98 u8 flags1;
99 #define XSTORM_CORE_CONN_AG_CTX_RESERVED7_MASK 0x1
100 #define XSTORM_CORE_CONN_AG_CTX_RESERVED7_SHIFT 0
101 #define XSTORM_CORE_CONN_AG_CTX_RESERVED8_MASK 0x1
102 #define XSTORM_CORE_CONN_AG_CTX_RESERVED8_SHIFT 1
103 #define XSTORM_CORE_CONN_AG_CTX_RESERVED9_MASK 0x1
104 #define XSTORM_CORE_CONN_AG_CTX_RESERVED9_SHIFT 2
105 #define XSTORM_CORE_CONN_AG_CTX_BIT11_MASK 0x1
106 #define XSTORM_CORE_CONN_AG_CTX_BIT11_SHIFT 3
107 #define XSTORM_CORE_CONN_AG_CTX_BIT12_MASK 0x1
108 #define XSTORM_CORE_CONN_AG_CTX_BIT12_SHIFT 4
109 #define XSTORM_CORE_CONN_AG_CTX_BIT13_MASK 0x1
110 #define XSTORM_CORE_CONN_AG_CTX_BIT13_SHIFT 5
111 #define XSTORM_CORE_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1
112 #define XSTORM_CORE_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6
113 #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1
114 #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7
115 u8 flags2;
116 #define XSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
117 #define XSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 0
118 #define XSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
119 #define XSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 2
120 #define XSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
121 #define XSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 4
122 #define XSTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3
123 #define XSTORM_CORE_CONN_AG_CTX_CF3_SHIFT 6
124 u8 flags3;
125 #define XSTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3
126 #define XSTORM_CORE_CONN_AG_CTX_CF4_SHIFT 0
127 #define XSTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3
128 #define XSTORM_CORE_CONN_AG_CTX_CF5_SHIFT 2
129 #define XSTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3
130 #define XSTORM_CORE_CONN_AG_CTX_CF6_SHIFT 4
131 #define XSTORM_CORE_CONN_AG_CTX_CF7_MASK 0x3
132 #define XSTORM_CORE_CONN_AG_CTX_CF7_SHIFT 6
133 u8 flags4;
134 #define XSTORM_CORE_CONN_AG_CTX_CF8_MASK 0x3
135 #define XSTORM_CORE_CONN_AG_CTX_CF8_SHIFT 0
136 #define XSTORM_CORE_CONN_AG_CTX_CF9_MASK 0x3
137 #define XSTORM_CORE_CONN_AG_CTX_CF9_SHIFT 2
138 #define XSTORM_CORE_CONN_AG_CTX_CF10_MASK 0x3
139 #define XSTORM_CORE_CONN_AG_CTX_CF10_SHIFT 4
140 #define XSTORM_CORE_CONN_AG_CTX_CF11_MASK 0x3
141 #define XSTORM_CORE_CONN_AG_CTX_CF11_SHIFT 6
142 u8 flags5;
143 #define XSTORM_CORE_CONN_AG_CTX_CF12_MASK 0x3
144 #define XSTORM_CORE_CONN_AG_CTX_CF12_SHIFT 0
145 #define XSTORM_CORE_CONN_AG_CTX_CF13_MASK 0x3
146 #define XSTORM_CORE_CONN_AG_CTX_CF13_SHIFT 2
147 #define XSTORM_CORE_CONN_AG_CTX_CF14_MASK 0x3
148 #define XSTORM_CORE_CONN_AG_CTX_CF14_SHIFT 4
149 #define XSTORM_CORE_CONN_AG_CTX_CF15_MASK 0x3
150 #define XSTORM_CORE_CONN_AG_CTX_CF15_SHIFT 6
151 u8 flags6;
152 #define XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_MASK 0x3
153 #define XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_SHIFT 0
154 #define XSTORM_CORE_CONN_AG_CTX_CF17_MASK 0x3
155 #define XSTORM_CORE_CONN_AG_CTX_CF17_SHIFT 2
156 #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_MASK 0x3
157 #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_SHIFT 4
158 #define XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_MASK 0x3
159 #define XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_SHIFT 6
160 u8 flags7;
161 #define XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_MASK 0x3
162 #define XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
163 #define XSTORM_CORE_CONN_AG_CTX_RESERVED10_MASK 0x3
164 #define XSTORM_CORE_CONN_AG_CTX_RESERVED10_SHIFT 2
165 #define XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_MASK 0x3
166 #define XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_SHIFT 4
167 #define XSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
168 #define XSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 6
169 #define XSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
170 #define XSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 7
171 u8 flags8;
172 #define XSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
173 #define XSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 0
174 #define XSTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1
175 #define XSTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 1
176 #define XSTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1
177 #define XSTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 2
178 #define XSTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1
179 #define XSTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 3
180 #define XSTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1
181 #define XSTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 4
182 #define XSTORM_CORE_CONN_AG_CTX_CF7EN_MASK 0x1
183 #define XSTORM_CORE_CONN_AG_CTX_CF7EN_SHIFT 5
184 #define XSTORM_CORE_CONN_AG_CTX_CF8EN_MASK 0x1
185 #define XSTORM_CORE_CONN_AG_CTX_CF8EN_SHIFT 6
186 #define XSTORM_CORE_CONN_AG_CTX_CF9EN_MASK 0x1
187 #define XSTORM_CORE_CONN_AG_CTX_CF9EN_SHIFT 7
188 u8 flags9;
189 #define XSTORM_CORE_CONN_AG_CTX_CF10EN_MASK 0x1
190 #define XSTORM_CORE_CONN_AG_CTX_CF10EN_SHIFT 0
191 #define XSTORM_CORE_CONN_AG_CTX_CF11EN_MASK 0x1
192 #define XSTORM_CORE_CONN_AG_CTX_CF11EN_SHIFT 1
193 #define XSTORM_CORE_CONN_AG_CTX_CF12EN_MASK 0x1
194 #define XSTORM_CORE_CONN_AG_CTX_CF12EN_SHIFT 2
195 #define XSTORM_CORE_CONN_AG_CTX_CF13EN_MASK 0x1
196 #define XSTORM_CORE_CONN_AG_CTX_CF13EN_SHIFT 3
197 #define XSTORM_CORE_CONN_AG_CTX_CF14EN_MASK 0x1
198 #define XSTORM_CORE_CONN_AG_CTX_CF14EN_SHIFT 4
199 #define XSTORM_CORE_CONN_AG_CTX_CF15EN_MASK 0x1
200 #define XSTORM_CORE_CONN_AG_CTX_CF15EN_SHIFT 5
201 #define XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_EN_MASK 0x1
202 #define XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_EN_SHIFT 6
203 #define XSTORM_CORE_CONN_AG_CTX_CF17EN_MASK 0x1
204 #define XSTORM_CORE_CONN_AG_CTX_CF17EN_SHIFT 7
205 u8 flags10;
206 #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_EN_MASK 0x1
207 #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_EN_SHIFT 0
208 #define XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1
209 #define XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1
210 #define XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1
211 #define XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2
212 #define XSTORM_CORE_CONN_AG_CTX_RESERVED11_MASK 0x1
213 #define XSTORM_CORE_CONN_AG_CTX_RESERVED11_SHIFT 3
214 #define XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
215 #define XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
216 #define XSTORM_CORE_CONN_AG_CTX_CF23EN_MASK 0x1
217 #define XSTORM_CORE_CONN_AG_CTX_CF23EN_SHIFT 5
218 #define XSTORM_CORE_CONN_AG_CTX_RESERVED12_MASK 0x1
219 #define XSTORM_CORE_CONN_AG_CTX_RESERVED12_SHIFT 6
220 #define XSTORM_CORE_CONN_AG_CTX_RESERVED13_MASK 0x1
221 #define XSTORM_CORE_CONN_AG_CTX_RESERVED13_SHIFT 7
222 u8 flags11;
223 #define XSTORM_CORE_CONN_AG_CTX_RESERVED14_MASK 0x1
224 #define XSTORM_CORE_CONN_AG_CTX_RESERVED14_SHIFT 0
225 #define XSTORM_CORE_CONN_AG_CTX_RESERVED15_MASK 0x1
226 #define XSTORM_CORE_CONN_AG_CTX_RESERVED15_SHIFT 1
227 #define XSTORM_CORE_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1
228 #define XSTORM_CORE_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2
229 #define XSTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1
230 #define XSTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 3
231 #define XSTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1
232 #define XSTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 4
233 #define XSTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1
234 #define XSTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 5
235 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
236 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
237 #define XSTORM_CORE_CONN_AG_CTX_RULE9EN_MASK 0x1
238 #define XSTORM_CORE_CONN_AG_CTX_RULE9EN_SHIFT 7
239 u8 flags12;
240 #define XSTORM_CORE_CONN_AG_CTX_RULE10EN_MASK 0x1
241 #define XSTORM_CORE_CONN_AG_CTX_RULE10EN_SHIFT 0
242 #define XSTORM_CORE_CONN_AG_CTX_RULE11EN_MASK 0x1
243 #define XSTORM_CORE_CONN_AG_CTX_RULE11EN_SHIFT 1
244 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
245 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
246 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
247 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
248 #define XSTORM_CORE_CONN_AG_CTX_RULE14EN_MASK 0x1
249 #define XSTORM_CORE_CONN_AG_CTX_RULE14EN_SHIFT 4
250 #define XSTORM_CORE_CONN_AG_CTX_RULE15EN_MASK 0x1
251 #define XSTORM_CORE_CONN_AG_CTX_RULE15EN_SHIFT 5
252 #define XSTORM_CORE_CONN_AG_CTX_RULE16EN_MASK 0x1
253 #define XSTORM_CORE_CONN_AG_CTX_RULE16EN_SHIFT 6
254 #define XSTORM_CORE_CONN_AG_CTX_RULE17EN_MASK 0x1
255 #define XSTORM_CORE_CONN_AG_CTX_RULE17EN_SHIFT 7
256 u8 flags13;
257 #define XSTORM_CORE_CONN_AG_CTX_RULE18EN_MASK 0x1
258 #define XSTORM_CORE_CONN_AG_CTX_RULE18EN_SHIFT 0
259 #define XSTORM_CORE_CONN_AG_CTX_RULE19EN_MASK 0x1
260 #define XSTORM_CORE_CONN_AG_CTX_RULE19EN_SHIFT 1
261 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
262 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
263 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
264 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
265 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
266 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
267 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
268 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
269 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
270 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
271 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
272 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
273 u8 flags14;
274 #define XSTORM_CORE_CONN_AG_CTX_BIT16_MASK 0x1
275 #define XSTORM_CORE_CONN_AG_CTX_BIT16_SHIFT 0
276 #define XSTORM_CORE_CONN_AG_CTX_BIT17_MASK 0x1
277 #define XSTORM_CORE_CONN_AG_CTX_BIT17_SHIFT 1
278 #define XSTORM_CORE_CONN_AG_CTX_BIT18_MASK 0x1
279 #define XSTORM_CORE_CONN_AG_CTX_BIT18_SHIFT 2
280 #define XSTORM_CORE_CONN_AG_CTX_BIT19_MASK 0x1
281 #define XSTORM_CORE_CONN_AG_CTX_BIT19_SHIFT 3
282 #define XSTORM_CORE_CONN_AG_CTX_BIT20_MASK 0x1
283 #define XSTORM_CORE_CONN_AG_CTX_BIT20_SHIFT 4
284 #define XSTORM_CORE_CONN_AG_CTX_BIT21_MASK 0x1
285 #define XSTORM_CORE_CONN_AG_CTX_BIT21_SHIFT 5
286 #define XSTORM_CORE_CONN_AG_CTX_CF23_MASK 0x3
287 #define XSTORM_CORE_CONN_AG_CTX_CF23_SHIFT 6
288 u8 byte2;
289 __le16 physical_q0;
290 __le16 consolid_prod;
291 __le16 reserved16;
292 __le16 tx_bd_cons;
293 __le16 tx_bd_or_spq_prod;
294 __le16 word5;
295 __le16 conn_dpi;
296 u8 byte3;
297 u8 byte4;
298 u8 byte5;
299 u8 byte6;
300 __le32 reg0;
301 __le32 reg1;
302 __le32 reg2;
303 __le32 reg3;
304 __le32 reg4;
305 __le32 reg5;
306 __le32 reg6;
307 __le16 word7;
308 __le16 word8;
309 __le16 word9;
310 __le16 word10;
311 __le32 reg7;
312 __le32 reg8;
313 __le32 reg9;
314 u8 byte7;
315 u8 byte8;
316 u8 byte9;
317 u8 byte10;
318 u8 byte11;
319 u8 byte12;
320 u8 byte13;
321 u8 byte14;
322 u8 byte15;
323 u8 byte16;
324 __le16 word11;
325 __le32 reg10;
326 __le32 reg11;
327 __le32 reg12;
328 __le32 reg13;
329 __le32 reg14;
330 __le32 reg15;
331 __le32 reg16;
332 __le32 reg17;
333 __le32 reg18;
334 __le32 reg19;
335 __le16 word12;
336 __le16 word13;
337 __le16 word14;
338 __le16 word15;
339 };
340
341 struct tstorm_core_conn_ag_ctx {
342 u8 byte0;
343 u8 byte1;
344 u8 flags0;
345 #define TSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1
346 #define TSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0
347 #define TSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1
348 #define TSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1
349 #define TSTORM_CORE_CONN_AG_CTX_BIT2_MASK 0x1
350 #define TSTORM_CORE_CONN_AG_CTX_BIT2_SHIFT 2
351 #define TSTORM_CORE_CONN_AG_CTX_BIT3_MASK 0x1
352 #define TSTORM_CORE_CONN_AG_CTX_BIT3_SHIFT 3
353 #define TSTORM_CORE_CONN_AG_CTX_BIT4_MASK 0x1
354 #define TSTORM_CORE_CONN_AG_CTX_BIT4_SHIFT 4
355 #define TSTORM_CORE_CONN_AG_CTX_BIT5_MASK 0x1
356 #define TSTORM_CORE_CONN_AG_CTX_BIT5_SHIFT 5
357 #define TSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
358 #define TSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 6
359 u8 flags1;
360 #define TSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
361 #define TSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 0
362 #define TSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
363 #define TSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 2
364 #define TSTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3
365 #define TSTORM_CORE_CONN_AG_CTX_CF3_SHIFT 4
366 #define TSTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3
367 #define TSTORM_CORE_CONN_AG_CTX_CF4_SHIFT 6
368 u8 flags2;
369 #define TSTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3
370 #define TSTORM_CORE_CONN_AG_CTX_CF5_SHIFT 0
371 #define TSTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3
372 #define TSTORM_CORE_CONN_AG_CTX_CF6_SHIFT 2
373 #define TSTORM_CORE_CONN_AG_CTX_CF7_MASK 0x3
374 #define TSTORM_CORE_CONN_AG_CTX_CF7_SHIFT 4
375 #define TSTORM_CORE_CONN_AG_CTX_CF8_MASK 0x3
376 #define TSTORM_CORE_CONN_AG_CTX_CF8_SHIFT 6
377 u8 flags3;
378 #define TSTORM_CORE_CONN_AG_CTX_CF9_MASK 0x3
379 #define TSTORM_CORE_CONN_AG_CTX_CF9_SHIFT 0
380 #define TSTORM_CORE_CONN_AG_CTX_CF10_MASK 0x3
381 #define TSTORM_CORE_CONN_AG_CTX_CF10_SHIFT 2
382 #define TSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
383 #define TSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 4
384 #define TSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
385 #define TSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 5
386 #define TSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
387 #define TSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 6
388 #define TSTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1
389 #define TSTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 7
390 u8 flags4;
391 #define TSTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1
392 #define TSTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 0
393 #define TSTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1
394 #define TSTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 1
395 #define TSTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1
396 #define TSTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 2
397 #define TSTORM_CORE_CONN_AG_CTX_CF7EN_MASK 0x1
398 #define TSTORM_CORE_CONN_AG_CTX_CF7EN_SHIFT 3
399 #define TSTORM_CORE_CONN_AG_CTX_CF8EN_MASK 0x1
400 #define TSTORM_CORE_CONN_AG_CTX_CF8EN_SHIFT 4
401 #define TSTORM_CORE_CONN_AG_CTX_CF9EN_MASK 0x1
402 #define TSTORM_CORE_CONN_AG_CTX_CF9EN_SHIFT 5
403 #define TSTORM_CORE_CONN_AG_CTX_CF10EN_MASK 0x1
404 #define TSTORM_CORE_CONN_AG_CTX_CF10EN_SHIFT 6
405 #define TSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1
406 #define TSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 7
407 u8 flags5;
408 #define TSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1
409 #define TSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 0
410 #define TSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1
411 #define TSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 1
412 #define TSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1
413 #define TSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 2
414 #define TSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1
415 #define TSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 3
416 #define TSTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1
417 #define TSTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 4
418 #define TSTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1
419 #define TSTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 5
420 #define TSTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1
421 #define TSTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 6
422 #define TSTORM_CORE_CONN_AG_CTX_RULE8EN_MASK 0x1
423 #define TSTORM_CORE_CONN_AG_CTX_RULE8EN_SHIFT 7
424 __le32 reg0;
425 __le32 reg1;
426 __le32 reg2;
427 __le32 reg3;
428 __le32 reg4;
429 __le32 reg5;
430 __le32 reg6;
431 __le32 reg7;
432 __le32 reg8;
433 u8 byte2;
434 u8 byte3;
435 __le16 word0;
436 u8 byte4;
437 u8 byte5;
438 __le16 word1;
439 __le16 word2;
440 __le16 word3;
441 __le32 reg9;
442 __le32 reg10;
443 };
444
445 struct ustorm_core_conn_ag_ctx {
446 u8 reserved;
447 u8 byte1;
448 u8 flags0;
449 #define USTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1
450 #define USTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0
451 #define USTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1
452 #define USTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1
453 #define USTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
454 #define USTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2
455 #define USTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
456 #define USTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4
457 #define USTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
458 #define USTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6
459 u8 flags1;
460 #define USTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3
461 #define USTORM_CORE_CONN_AG_CTX_CF3_SHIFT 0
462 #define USTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3
463 #define USTORM_CORE_CONN_AG_CTX_CF4_SHIFT 2
464 #define USTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3
465 #define USTORM_CORE_CONN_AG_CTX_CF5_SHIFT 4
466 #define USTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3
467 #define USTORM_CORE_CONN_AG_CTX_CF6_SHIFT 6
468 u8 flags2;
469 #define USTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
470 #define USTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0
471 #define USTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
472 #define USTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1
473 #define USTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
474 #define USTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2
475 #define USTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1
476 #define USTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 3
477 #define USTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1
478 #define USTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 4
479 #define USTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1
480 #define USTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 5
481 #define USTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1
482 #define USTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 6
483 #define USTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1
484 #define USTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 7
485 u8 flags3;
486 #define USTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1
487 #define USTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 0
488 #define USTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1
489 #define USTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 1
490 #define USTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1
491 #define USTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 2
492 #define USTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1
493 #define USTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 3
494 #define USTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1
495 #define USTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 4
496 #define USTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1
497 #define USTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 5
498 #define USTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1
499 #define USTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 6
500 #define USTORM_CORE_CONN_AG_CTX_RULE8EN_MASK 0x1
501 #define USTORM_CORE_CONN_AG_CTX_RULE8EN_SHIFT 7
502 u8 byte2;
503 u8 byte3;
504 __le16 word0;
505 __le16 word1;
506 __le32 rx_producers;
507 __le32 reg1;
508 __le32 reg2;
509 __le32 reg3;
510 __le16 word2;
511 __le16 word3;
512 };
513
514 /* The core storm context for the Mstorm */
515 struct mstorm_core_conn_st_ctx {
516 __le32 reserved[24];
517 };
518
519 /* The core storm context for the Ustorm */
520 struct ustorm_core_conn_st_ctx {
521 __le32 reserved[4];
522 };
523
524 /* core connection context */
525 struct core_conn_context {
526 struct ystorm_core_conn_st_ctx ystorm_st_context;
527 struct regpair ystorm_st_padding[2];
528 struct pstorm_core_conn_st_ctx pstorm_st_context;
529 struct regpair pstorm_st_padding[2];
530 struct xstorm_core_conn_st_ctx xstorm_st_context;
531 struct xstorm_core_conn_ag_ctx xstorm_ag_context;
532 struct tstorm_core_conn_ag_ctx tstorm_ag_context;
533 struct ustorm_core_conn_ag_ctx ustorm_ag_context;
534 struct mstorm_core_conn_st_ctx mstorm_st_context;
535 struct ustorm_core_conn_st_ctx ustorm_st_context;
536 struct regpair ustorm_st_padding[2];
537 };
538
539 struct eth_mstorm_per_pf_stat {
540 struct regpair gre_discard_pkts;
541 struct regpair vxlan_discard_pkts;
542 struct regpair geneve_discard_pkts;
543 struct regpair lb_discard_pkts;
544 };
545
546 struct eth_mstorm_per_queue_stat {
547 struct regpair ttl0_discard;
548 struct regpair packet_too_big_discard;
549 struct regpair no_buff_discard;
550 struct regpair not_active_discard;
551 struct regpair tpa_coalesced_pkts;
552 struct regpair tpa_coalesced_events;
553 struct regpair tpa_aborts_num;
554 struct regpair tpa_coalesced_bytes;
555 };
556
557 /* Ethernet TX Per PF */
558 struct eth_pstorm_per_pf_stat {
559 struct regpair sent_lb_ucast_bytes;
560 struct regpair sent_lb_mcast_bytes;
561 struct regpair sent_lb_bcast_bytes;
562 struct regpair sent_lb_ucast_pkts;
563 struct regpair sent_lb_mcast_pkts;
564 struct regpair sent_lb_bcast_pkts;
565 struct regpair sent_gre_bytes;
566 struct regpair sent_vxlan_bytes;
567 struct regpair sent_geneve_bytes;
568 struct regpair sent_gre_pkts;
569 struct regpair sent_vxlan_pkts;
570 struct regpair sent_geneve_pkts;
571 struct regpair gre_drop_pkts;
572 struct regpair vxlan_drop_pkts;
573 struct regpair geneve_drop_pkts;
574 };
575
576 /* Ethernet TX Per Queue Stats */
577 struct eth_pstorm_per_queue_stat {
578 struct regpair sent_ucast_bytes;
579 struct regpair sent_mcast_bytes;
580 struct regpair sent_bcast_bytes;
581 struct regpair sent_ucast_pkts;
582 struct regpair sent_mcast_pkts;
583 struct regpair sent_bcast_pkts;
584 struct regpair error_drop_pkts;
585 };
586
587 /* ETH Rx producers data */
588 struct eth_rx_rate_limit {
589 __le16 mult;
590 __le16 cnst;
591 u8 add_sub_cnst;
592 u8 reserved0;
593 __le16 reserved1;
594 };
595
596 struct eth_ustorm_per_pf_stat {
597 struct regpair rcv_lb_ucast_bytes;
598 struct regpair rcv_lb_mcast_bytes;
599 struct regpair rcv_lb_bcast_bytes;
600 struct regpair rcv_lb_ucast_pkts;
601 struct regpair rcv_lb_mcast_pkts;
602 struct regpair rcv_lb_bcast_pkts;
603 struct regpair rcv_gre_bytes;
604 struct regpair rcv_vxlan_bytes;
605 struct regpair rcv_geneve_bytes;
606 struct regpair rcv_gre_pkts;
607 struct regpair rcv_vxlan_pkts;
608 struct regpair rcv_geneve_pkts;
609 };
610
611 struct eth_ustorm_per_queue_stat {
612 struct regpair rcv_ucast_bytes;
613 struct regpair rcv_mcast_bytes;
614 struct regpair rcv_bcast_bytes;
615 struct regpair rcv_ucast_pkts;
616 struct regpair rcv_mcast_pkts;
617 struct regpair rcv_bcast_pkts;
618 };
619
620 /* Event Ring Next Page Address */
621 struct event_ring_next_addr {
622 struct regpair addr;
623 __le32 reserved[2];
624 };
625
626 /* Event Ring Element */
627 union event_ring_element {
628 struct event_ring_entry entry;
629 struct event_ring_next_addr next_addr;
630 };
631
632 /* Major and Minor hsi Versions */
633 struct hsi_fp_ver_struct {
634 u8 minor_ver_arr[2];
635 u8 major_ver_arr[2];
636 };
637
638 /* Mstorm non-triggering VF zone */
639 struct mstorm_non_trigger_vf_zone {
640 struct eth_mstorm_per_queue_stat eth_queue_stat;
641 struct eth_rx_prod_data eth_rx_queue_producers[ETH_MAX_NUM_RX_QUEUES_PER_VF];
642 };
643
644 /* Mstorm VF zone */
645 struct mstorm_vf_zone {
646 struct mstorm_non_trigger_vf_zone non_trigger;
647
648 };
649
650 /* personality per PF */
651 enum personality_type {
652 BAD_PERSONALITY_TYP,
653 PERSONALITY_ISCSI,
654 PERSONALITY_RESERVED2,
655 PERSONALITY_RDMA_AND_ETH,
656 PERSONALITY_RESERVED3,
657 PERSONALITY_CORE,
658 PERSONALITY_ETH,
659 PERSONALITY_RESERVED4,
660 MAX_PERSONALITY_TYPE
661 };
662
663 /* tunnel configuration */
664 struct pf_start_tunnel_config {
665 u8 set_vxlan_udp_port_flg;
666 u8 set_geneve_udp_port_flg;
667 u8 tx_enable_vxlan;
668 u8 tx_enable_l2geneve;
669 u8 tx_enable_ipgeneve;
670 u8 tx_enable_l2gre;
671 u8 tx_enable_ipgre;
672 u8 tunnel_clss_vxlan;
673 u8 tunnel_clss_l2geneve;
674 u8 tunnel_clss_ipgeneve;
675 u8 tunnel_clss_l2gre;
676 u8 tunnel_clss_ipgre;
677 __le16 vxlan_udp_port;
678 __le16 geneve_udp_port;
679 };
680
681 /* Ramrod data for PF start ramrod */
682 struct pf_start_ramrod_data {
683 struct regpair event_ring_pbl_addr;
684 struct regpair consolid_q_pbl_addr;
685 struct pf_start_tunnel_config tunnel_config;
686 __le16 event_ring_sb_id;
687 u8 base_vf_id;
688 u8 num_vfs;
689 u8 event_ring_num_pages;
690 u8 event_ring_sb_index;
691 u8 path_id;
692 u8 warning_as_error;
693 u8 dont_log_ramrods;
694 u8 personality;
695 __le16 log_type_mask;
696 u8 mf_mode;
697 u8 integ_phase;
698 u8 allow_npar_tx_switching;
699 u8 inner_to_outer_pri_map[8];
700 u8 pri_map_valid;
701 __le32 outer_tag;
702 struct hsi_fp_ver_struct hsi_fp_ver;
703
704 };
705
706 struct protocol_dcb_data {
707 u8 dcb_enable_flag;
708 u8 dcb_priority;
709 u8 dcb_tc;
710 u8 reserved;
711 };
712
713 struct pf_update_tunnel_config {
714 u8 update_rx_pf_clss;
715 u8 update_tx_pf_clss;
716 u8 set_vxlan_udp_port_flg;
717 u8 set_geneve_udp_port_flg;
718 u8 tx_enable_vxlan;
719 u8 tx_enable_l2geneve;
720 u8 tx_enable_ipgeneve;
721 u8 tx_enable_l2gre;
722 u8 tx_enable_ipgre;
723 u8 tunnel_clss_vxlan;
724 u8 tunnel_clss_l2geneve;
725 u8 tunnel_clss_ipgeneve;
726 u8 tunnel_clss_l2gre;
727 u8 tunnel_clss_ipgre;
728 __le16 vxlan_udp_port;
729 __le16 geneve_udp_port;
730 __le16 reserved[3];
731 };
732
733 struct pf_update_ramrod_data {
734 u8 pf_id;
735 u8 update_eth_dcb_data_flag;
736 u8 update_fcoe_dcb_data_flag;
737 u8 update_iscsi_dcb_data_flag;
738 u8 update_roce_dcb_data_flag;
739 u8 update_iwarp_dcb_data_flag;
740 u8 update_mf_vlan_flag;
741 u8 reserved;
742 struct protocol_dcb_data eth_dcb_data;
743 struct protocol_dcb_data fcoe_dcb_data;
744 struct protocol_dcb_data iscsi_dcb_data;
745 struct protocol_dcb_data roce_dcb_data;
746 struct protocol_dcb_data iwarp_dcb_data;
747 __le16 mf_vlan;
748 __le16 reserved2;
749 struct pf_update_tunnel_config tunnel_config;
750 };
751
752 /* Ports mode */
753 enum ports_mode {
754 ENGX2_PORTX1,
755 ENGX2_PORTX2,
756 ENGX1_PORTX1,
757 ENGX1_PORTX2,
758 ENGX1_PORTX4,
759 MAX_PORTS_MODE
760 };
761
762 /* use to index in hsi_fp_[major|minor]_ver_arr per protocol */
763 enum protocol_version_array_key {
764 ETH_VER_KEY = 0,
765 ROCE_VER_KEY,
766 MAX_PROTOCOL_VERSION_ARRAY_KEY
767 };
768
769 /* Pstorm non-triggering VF zone */
770 struct pstorm_non_trigger_vf_zone {
771 struct eth_pstorm_per_queue_stat eth_queue_stat;
772 struct regpair reserved[2];
773 };
774
775 /* Pstorm VF zone */
776 struct pstorm_vf_zone {
777 struct pstorm_non_trigger_vf_zone non_trigger;
778 struct regpair reserved[7];
779 };
780
781 /* Ramrod Header of SPQE */
782 struct ramrod_header {
783 __le32 cid;
784 u8 cmd_id;
785 u8 protocol_id;
786 __le16 echo;
787 };
788
789 /* Slowpath Element (SPQE) */
790 struct slow_path_element {
791 struct ramrod_header hdr;
792 struct regpair data_ptr;
793 };
794
795 /* Tstorm non-triggering VF zone */
796 struct tstorm_non_trigger_vf_zone {
797 struct regpair reserved[2];
798 };
799
800 struct tstorm_per_port_stat {
801 struct regpair trunc_error_discard;
802 struct regpair mac_error_discard;
803 struct regpair mftag_filter_discard;
804 struct regpair eth_mac_filter_discard;
805 struct regpair reserved[5];
806 struct regpair eth_irregular_pkt;
807 struct regpair reserved1[2];
808 struct regpair eth_gre_tunn_filter_discard;
809 struct regpair eth_vxlan_tunn_filter_discard;
810 struct regpair eth_geneve_tunn_filter_discard;
811 };
812
813 /* Tstorm VF zone */
814 struct tstorm_vf_zone {
815 struct tstorm_non_trigger_vf_zone non_trigger;
816 };
817
818 /* Tunnel classification scheme */
819 enum tunnel_clss {
820 TUNNEL_CLSS_MAC_VLAN = 0,
821 TUNNEL_CLSS_MAC_VNI,
822 TUNNEL_CLSS_INNER_MAC_VLAN,
823 TUNNEL_CLSS_INNER_MAC_VNI,
824 TUNNEL_CLSS_MAC_VLAN_DUAL_STAGE,
825 MAX_TUNNEL_CLSS
826 };
827
828 /* Ustorm non-triggering VF zone */
829 struct ustorm_non_trigger_vf_zone {
830 struct eth_ustorm_per_queue_stat eth_queue_stat;
831 struct regpair vf_pf_msg_addr;
832 };
833
834 /* Ustorm triggering VF zone */
835 struct ustorm_trigger_vf_zone {
836 u8 vf_pf_msg_valid;
837 u8 reserved[7];
838 };
839
840 /* Ustorm VF zone */
841 struct ustorm_vf_zone {
842 struct ustorm_non_trigger_vf_zone non_trigger;
843 struct ustorm_trigger_vf_zone trigger;
844 };
845
846 /* VF-PF channel data */
847 struct vf_pf_channel_data {
848 __le32 ready;
849 u8 valid;
850 u8 reserved0;
851 __le16 reserved1;
852 };
853
854 /* Ramrod data for VF start ramrod */
855 struct vf_start_ramrod_data {
856 u8 vf_id;
857 u8 enable_flr_ack;
858 __le16 opaque_fid;
859 u8 personality;
860 u8 reserved[7];
861 struct hsi_fp_ver_struct hsi_fp_ver;
862
863 };
864
865 /* Ramrod data for VF start ramrod */
866 struct vf_stop_ramrod_data {
867 u8 vf_id;
868 u8 reserved0;
869 __le16 reserved1;
870 __le32 reserved2;
871 };
872
873 /* Attentions status block */
874 struct atten_status_block {
875 __le32 atten_bits;
876 __le32 atten_ack;
877 __le16 reserved0;
878 __le16 sb_index;
879 __le32 reserved1;
880 };
881
882 enum command_type_bit {
883 IGU_COMMAND_TYPE_NOP = 0,
884 IGU_COMMAND_TYPE_SET = 1,
885 MAX_COMMAND_TYPE_BIT
886 };
887
888 /* DMAE command */
889 struct dmae_cmd {
890 __le32 opcode;
891 #define DMAE_CMD_SRC_MASK 0x1
892 #define DMAE_CMD_SRC_SHIFT 0
893 #define DMAE_CMD_DST_MASK 0x3
894 #define DMAE_CMD_DST_SHIFT 1
895 #define DMAE_CMD_C_DST_MASK 0x1
896 #define DMAE_CMD_C_DST_SHIFT 3
897 #define DMAE_CMD_CRC_RESET_MASK 0x1
898 #define DMAE_CMD_CRC_RESET_SHIFT 4
899 #define DMAE_CMD_SRC_ADDR_RESET_MASK 0x1
900 #define DMAE_CMD_SRC_ADDR_RESET_SHIFT 5
901 #define DMAE_CMD_DST_ADDR_RESET_MASK 0x1
902 #define DMAE_CMD_DST_ADDR_RESET_SHIFT 6
903 #define DMAE_CMD_COMP_FUNC_MASK 0x1
904 #define DMAE_CMD_COMP_FUNC_SHIFT 7
905 #define DMAE_CMD_COMP_WORD_EN_MASK 0x1
906 #define DMAE_CMD_COMP_WORD_EN_SHIFT 8
907 #define DMAE_CMD_COMP_CRC_EN_MASK 0x1
908 #define DMAE_CMD_COMP_CRC_EN_SHIFT 9
909 #define DMAE_CMD_COMP_CRC_OFFSET_MASK 0x7
910 #define DMAE_CMD_COMP_CRC_OFFSET_SHIFT 10
911 #define DMAE_CMD_RESERVED1_MASK 0x1
912 #define DMAE_CMD_RESERVED1_SHIFT 13
913 #define DMAE_CMD_ENDIANITY_MODE_MASK 0x3
914 #define DMAE_CMD_ENDIANITY_MODE_SHIFT 14
915 #define DMAE_CMD_ERR_HANDLING_MASK 0x3
916 #define DMAE_CMD_ERR_HANDLING_SHIFT 16
917 #define DMAE_CMD_PORT_ID_MASK 0x3
918 #define DMAE_CMD_PORT_ID_SHIFT 18
919 #define DMAE_CMD_SRC_PF_ID_MASK 0xF
920 #define DMAE_CMD_SRC_PF_ID_SHIFT 20
921 #define DMAE_CMD_DST_PF_ID_MASK 0xF
922 #define DMAE_CMD_DST_PF_ID_SHIFT 24
923 #define DMAE_CMD_SRC_VF_ID_VALID_MASK 0x1
924 #define DMAE_CMD_SRC_VF_ID_VALID_SHIFT 28
925 #define DMAE_CMD_DST_VF_ID_VALID_MASK 0x1
926 #define DMAE_CMD_DST_VF_ID_VALID_SHIFT 29
927 #define DMAE_CMD_RESERVED2_MASK 0x3
928 #define DMAE_CMD_RESERVED2_SHIFT 30
929 __le32 src_addr_lo;
930 __le32 src_addr_hi;
931 __le32 dst_addr_lo;
932 __le32 dst_addr_hi;
933 __le16 length_dw;
934 __le16 opcode_b;
935 #define DMAE_CMD_SRC_VF_ID_MASK 0xFF
936 #define DMAE_CMD_SRC_VF_ID_SHIFT 0
937 #define DMAE_CMD_DST_VF_ID_MASK 0xFF
938 #define DMAE_CMD_DST_VF_ID_SHIFT 8
939 __le32 comp_addr_lo;
940 __le32 comp_addr_hi;
941 __le32 comp_val;
942 __le32 crc32;
943 __le32 crc_32_c;
944 __le16 crc16;
945 __le16 crc16_c;
946 __le16 crc10;
947 __le16 reserved;
948 __le16 xsum16;
949 __le16 xsum8;
950 };
951
952 enum dmae_cmd_comp_crc_en_enum {
953 dmae_cmd_comp_crc_disabled,
954 dmae_cmd_comp_crc_enabled,
955 MAX_DMAE_CMD_COMP_CRC_EN_ENUM
956 };
957
958 enum dmae_cmd_comp_func_enum {
959 dmae_cmd_comp_func_to_src,
960 dmae_cmd_comp_func_to_dst,
961 MAX_DMAE_CMD_COMP_FUNC_ENUM
962 };
963
964 enum dmae_cmd_comp_word_en_enum {
965 dmae_cmd_comp_word_disabled,
966 dmae_cmd_comp_word_enabled,
967 MAX_DMAE_CMD_COMP_WORD_EN_ENUM
968 };
969
970 enum dmae_cmd_c_dst_enum {
971 dmae_cmd_c_dst_pcie,
972 dmae_cmd_c_dst_grc,
973 MAX_DMAE_CMD_C_DST_ENUM
974 };
975
976 enum dmae_cmd_dst_enum {
977 dmae_cmd_dst_none_0,
978 dmae_cmd_dst_pcie,
979 dmae_cmd_dst_grc,
980 dmae_cmd_dst_none_3,
981 MAX_DMAE_CMD_DST_ENUM
982 };
983
984 enum dmae_cmd_error_handling_enum {
985 dmae_cmd_error_handling_send_regular_comp,
986 dmae_cmd_error_handling_send_comp_with_err,
987 dmae_cmd_error_handling_dont_send_comp,
988 MAX_DMAE_CMD_ERROR_HANDLING_ENUM
989 };
990
991 enum dmae_cmd_src_enum {
992 dmae_cmd_src_pcie,
993 dmae_cmd_src_grc,
994 MAX_DMAE_CMD_SRC_ENUM
995 };
996
997 /* IGU cleanup command */
998 struct igu_cleanup {
999 __le32 sb_id_and_flags;
1000 #define IGU_CLEANUP_RESERVED0_MASK 0x7FFFFFF
1001 #define IGU_CLEANUP_RESERVED0_SHIFT 0
1002 #define IGU_CLEANUP_CLEANUP_SET_MASK 0x1
1003 #define IGU_CLEANUP_CLEANUP_SET_SHIFT 27
1004 #define IGU_CLEANUP_CLEANUP_TYPE_MASK 0x7
1005 #define IGU_CLEANUP_CLEANUP_TYPE_SHIFT 28
1006 #define IGU_CLEANUP_COMMAND_TYPE_MASK 0x1
1007 #define IGU_CLEANUP_COMMAND_TYPE_SHIFT 31
1008 __le32 reserved1;
1009 };
1010
1011 /* IGU firmware driver command */
1012 union igu_command {
1013 struct igu_prod_cons_update prod_cons_update;
1014 struct igu_cleanup cleanup;
1015 };
1016
1017 /* IGU firmware driver command */
1018 struct igu_command_reg_ctrl {
1019 __le16 opaque_fid;
1020 __le16 igu_command_reg_ctrl_fields;
1021 #define IGU_COMMAND_REG_CTRL_PXP_BAR_ADDR_MASK 0xFFF
1022 #define IGU_COMMAND_REG_CTRL_PXP_BAR_ADDR_SHIFT 0
1023 #define IGU_COMMAND_REG_CTRL_RESERVED_MASK 0x7
1024 #define IGU_COMMAND_REG_CTRL_RESERVED_SHIFT 12
1025 #define IGU_COMMAND_REG_CTRL_COMMAND_TYPE_MASK 0x1
1026 #define IGU_COMMAND_REG_CTRL_COMMAND_TYPE_SHIFT 15
1027 };
1028
1029 /* IGU mapping line structure */
1030 struct igu_mapping_line {
1031 __le32 igu_mapping_line_fields;
1032 #define IGU_MAPPING_LINE_VALID_MASK 0x1
1033 #define IGU_MAPPING_LINE_VALID_SHIFT 0
1034 #define IGU_MAPPING_LINE_VECTOR_NUMBER_MASK 0xFF
1035 #define IGU_MAPPING_LINE_VECTOR_NUMBER_SHIFT 1
1036 #define IGU_MAPPING_LINE_FUNCTION_NUMBER_MASK 0xFF
1037 #define IGU_MAPPING_LINE_FUNCTION_NUMBER_SHIFT 9
1038 #define IGU_MAPPING_LINE_PF_VALID_MASK 0x1
1039 #define IGU_MAPPING_LINE_PF_VALID_SHIFT 17
1040 #define IGU_MAPPING_LINE_IPS_GROUP_MASK 0x3F
1041 #define IGU_MAPPING_LINE_IPS_GROUP_SHIFT 18
1042 #define IGU_MAPPING_LINE_RESERVED_MASK 0xFF
1043 #define IGU_MAPPING_LINE_RESERVED_SHIFT 24
1044 };
1045
1046 /* IGU MSIX line structure */
1047 struct igu_msix_vector {
1048 struct regpair address;
1049 __le32 data;
1050 __le32 msix_vector_fields;
1051 #define IGU_MSIX_VECTOR_MASK_BIT_MASK 0x1
1052 #define IGU_MSIX_VECTOR_MASK_BIT_SHIFT 0
1053 #define IGU_MSIX_VECTOR_RESERVED0_MASK 0x7FFF
1054 #define IGU_MSIX_VECTOR_RESERVED0_SHIFT 1
1055 #define IGU_MSIX_VECTOR_STEERING_TAG_MASK 0xFF
1056 #define IGU_MSIX_VECTOR_STEERING_TAG_SHIFT 16
1057 #define IGU_MSIX_VECTOR_RESERVED1_MASK 0xFF
1058 #define IGU_MSIX_VECTOR_RESERVED1_SHIFT 24
1059 };
1060
1061 struct mstorm_core_conn_ag_ctx {
1062 u8 byte0;
1063 u8 byte1;
1064 u8 flags0;
1065 #define MSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1
1066 #define MSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0
1067 #define MSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1
1068 #define MSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1
1069 #define MSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
1070 #define MSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2
1071 #define MSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
1072 #define MSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4
1073 #define MSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
1074 #define MSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6
1075 u8 flags1;
1076 #define MSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
1077 #define MSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0
1078 #define MSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
1079 #define MSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1
1080 #define MSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
1081 #define MSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2
1082 #define MSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1
1083 #define MSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 3
1084 #define MSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1
1085 #define MSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 4
1086 #define MSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1
1087 #define MSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 5
1088 #define MSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1
1089 #define MSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 6
1090 #define MSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1
1091 #define MSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 7
1092 __le16 word0;
1093 __le16 word1;
1094 __le32 reg0;
1095 __le32 reg1;
1096 };
1097
1098 /* per encapsulation type enabling flags */
1099 struct prs_reg_encapsulation_type_en {
1100 u8 flags;
1101 #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GRE_ENABLE_MASK 0x1
1102 #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GRE_ENABLE_SHIFT 0
1103 #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GRE_ENABLE_MASK 0x1
1104 #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GRE_ENABLE_SHIFT 1
1105 #define PRS_REG_ENCAPSULATION_TYPE_EN_VXLAN_ENABLE_MASK 0x1
1106 #define PRS_REG_ENCAPSULATION_TYPE_EN_VXLAN_ENABLE_SHIFT 2
1107 #define PRS_REG_ENCAPSULATION_TYPE_EN_T_TAG_ENABLE_MASK 0x1
1108 #define PRS_REG_ENCAPSULATION_TYPE_EN_T_TAG_ENABLE_SHIFT 3
1109 #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GENEVE_ENABLE_MASK 0x1
1110 #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GENEVE_ENABLE_SHIFT 4
1111 #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GENEVE_ENABLE_MASK 0x1
1112 #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GENEVE_ENABLE_SHIFT 5
1113 #define PRS_REG_ENCAPSULATION_TYPE_EN_RESERVED_MASK 0x3
1114 #define PRS_REG_ENCAPSULATION_TYPE_EN_RESERVED_SHIFT 6
1115 };
1116
1117 enum pxp_tph_st_hint {
1118 TPH_ST_HINT_BIDIR,
1119 TPH_ST_HINT_REQUESTER,
1120 TPH_ST_HINT_TARGET,
1121 TPH_ST_HINT_TARGET_PRIO,
1122 MAX_PXP_TPH_ST_HINT
1123 };
1124
1125 /* QM hardware structure of enable bypass credit mask */
1126 struct qm_rf_bypass_mask {
1127 u8 flags;
1128 #define QM_RF_BYPASS_MASK_LINEVOQ_MASK 0x1
1129 #define QM_RF_BYPASS_MASK_LINEVOQ_SHIFT 0
1130 #define QM_RF_BYPASS_MASK_RESERVED0_MASK 0x1
1131 #define QM_RF_BYPASS_MASK_RESERVED0_SHIFT 1
1132 #define QM_RF_BYPASS_MASK_PFWFQ_MASK 0x1
1133 #define QM_RF_BYPASS_MASK_PFWFQ_SHIFT 2
1134 #define QM_RF_BYPASS_MASK_VPWFQ_MASK 0x1
1135 #define QM_RF_BYPASS_MASK_VPWFQ_SHIFT 3
1136 #define QM_RF_BYPASS_MASK_PFRL_MASK 0x1
1137 #define QM_RF_BYPASS_MASK_PFRL_SHIFT 4
1138 #define QM_RF_BYPASS_MASK_VPQCNRL_MASK 0x1
1139 #define QM_RF_BYPASS_MASK_VPQCNRL_SHIFT 5
1140 #define QM_RF_BYPASS_MASK_FWPAUSE_MASK 0x1
1141 #define QM_RF_BYPASS_MASK_FWPAUSE_SHIFT 6
1142 #define QM_RF_BYPASS_MASK_RESERVED1_MASK 0x1
1143 #define QM_RF_BYPASS_MASK_RESERVED1_SHIFT 7
1144 };
1145
1146 /* QM hardware structure of opportunistic credit mask */
1147 struct qm_rf_opportunistic_mask {
1148 __le16 flags;
1149 #define QM_RF_OPPORTUNISTIC_MASK_LINEVOQ_MASK 0x1
1150 #define QM_RF_OPPORTUNISTIC_MASK_LINEVOQ_SHIFT 0
1151 #define QM_RF_OPPORTUNISTIC_MASK_BYTEVOQ_MASK 0x1
1152 #define QM_RF_OPPORTUNISTIC_MASK_BYTEVOQ_SHIFT 1
1153 #define QM_RF_OPPORTUNISTIC_MASK_PFWFQ_MASK 0x1
1154 #define QM_RF_OPPORTUNISTIC_MASK_PFWFQ_SHIFT 2
1155 #define QM_RF_OPPORTUNISTIC_MASK_VPWFQ_MASK 0x1
1156 #define QM_RF_OPPORTUNISTIC_MASK_VPWFQ_SHIFT 3
1157 #define QM_RF_OPPORTUNISTIC_MASK_PFRL_MASK 0x1
1158 #define QM_RF_OPPORTUNISTIC_MASK_PFRL_SHIFT 4
1159 #define QM_RF_OPPORTUNISTIC_MASK_VPQCNRL_MASK 0x1
1160 #define QM_RF_OPPORTUNISTIC_MASK_VPQCNRL_SHIFT 5
1161 #define QM_RF_OPPORTUNISTIC_MASK_FWPAUSE_MASK 0x1
1162 #define QM_RF_OPPORTUNISTIC_MASK_FWPAUSE_SHIFT 6
1163 #define QM_RF_OPPORTUNISTIC_MASK_RESERVED0_MASK 0x1
1164 #define QM_RF_OPPORTUNISTIC_MASK_RESERVED0_SHIFT 7
1165 #define QM_RF_OPPORTUNISTIC_MASK_QUEUEEMPTY_MASK 0x1
1166 #define QM_RF_OPPORTUNISTIC_MASK_QUEUEEMPTY_SHIFT 8
1167 #define QM_RF_OPPORTUNISTIC_MASK_RESERVED1_MASK 0x7F
1168 #define QM_RF_OPPORTUNISTIC_MASK_RESERVED1_SHIFT 9
1169 };
1170
1171 /* QM hardware structure of QM map memory */
1172 struct qm_rf_pq_map {
1173 __le32 reg;
1174 #define QM_RF_PQ_MAP_PQ_VALID_MASK 0x1
1175 #define QM_RF_PQ_MAP_PQ_VALID_SHIFT 0
1176 #define QM_RF_PQ_MAP_RL_ID_MASK 0xFF
1177 #define QM_RF_PQ_MAP_RL_ID_SHIFT 1
1178 #define QM_RF_PQ_MAP_VP_PQ_ID_MASK 0x1FF
1179 #define QM_RF_PQ_MAP_VP_PQ_ID_SHIFT 9
1180 #define QM_RF_PQ_MAP_VOQ_MASK 0x1F
1181 #define QM_RF_PQ_MAP_VOQ_SHIFT 18
1182 #define QM_RF_PQ_MAP_WRR_WEIGHT_GROUP_MASK 0x3
1183 #define QM_RF_PQ_MAP_WRR_WEIGHT_GROUP_SHIFT 23
1184 #define QM_RF_PQ_MAP_RL_VALID_MASK 0x1
1185 #define QM_RF_PQ_MAP_RL_VALID_SHIFT 25
1186 #define QM_RF_PQ_MAP_RESERVED_MASK 0x3F
1187 #define QM_RF_PQ_MAP_RESERVED_SHIFT 26
1188 };
1189
1190 /* Completion params for aggregated interrupt completion */
1191 struct sdm_agg_int_comp_params {
1192 __le16 params;
1193 #define SDM_AGG_INT_COMP_PARAMS_AGG_INT_INDEX_MASK 0x3F
1194 #define SDM_AGG_INT_COMP_PARAMS_AGG_INT_INDEX_SHIFT 0
1195 #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_ENABLE_MASK 0x1
1196 #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_ENABLE_SHIFT 6
1197 #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_BIT_MASK 0x1FF
1198 #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_BIT_SHIFT 7
1199 };
1200
1201 /* SDM operation gen command (generate aggregative interrupt) */
1202 struct sdm_op_gen {
1203 __le32 command;
1204 #define SDM_OP_GEN_COMP_PARAM_MASK 0xFFFF
1205 #define SDM_OP_GEN_COMP_PARAM_SHIFT 0
1206 #define SDM_OP_GEN_COMP_TYPE_MASK 0xF
1207 #define SDM_OP_GEN_COMP_TYPE_SHIFT 16
1208 #define SDM_OP_GEN_RESERVED_MASK 0xFFF
1209 #define SDM_OP_GEN_RESERVED_SHIFT 20
1210 };
1211
1212 struct ystorm_core_conn_ag_ctx {
1213 u8 byte0;
1214 u8 byte1;
1215 u8 flags0;
1216 #define YSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1
1217 #define YSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0
1218 #define YSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1
1219 #define YSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1
1220 #define YSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
1221 #define YSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2
1222 #define YSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
1223 #define YSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4
1224 #define YSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
1225 #define YSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6
1226 u8 flags1;
1227 #define YSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
1228 #define YSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0
1229 #define YSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
1230 #define YSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1
1231 #define YSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
1232 #define YSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2
1233 #define YSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1
1234 #define YSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 3
1235 #define YSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1
1236 #define YSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 4
1237 #define YSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1
1238 #define YSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 5
1239 #define YSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1
1240 #define YSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 6
1241 #define YSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1
1242 #define YSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 7
1243 u8 byte2;
1244 u8 byte3;
1245 __le16 word0;
1246 __le32 reg0;
1247 __le32 reg1;
1248 __le16 word1;
1249 __le16 word2;
1250 __le16 word3;
1251 __le16 word4;
1252 __le32 reg2;
1253 __le32 reg3;
1254 };
1255
1256 /****************************************/
1257 /* Debug Tools HSI constants and macros */
1258 /****************************************/
1259
1260 enum block_addr {
1261 GRCBASE_GRC = 0x50000,
1262 GRCBASE_MISCS = 0x9000,
1263 GRCBASE_MISC = 0x8000,
1264 GRCBASE_DBU = 0xa000,
1265 GRCBASE_PGLUE_B = 0x2a8000,
1266 GRCBASE_CNIG = 0x218000,
1267 GRCBASE_CPMU = 0x30000,
1268 GRCBASE_NCSI = 0x40000,
1269 GRCBASE_OPTE = 0x53000,
1270 GRCBASE_BMB = 0x540000,
1271 GRCBASE_PCIE = 0x54000,
1272 GRCBASE_MCP = 0xe00000,
1273 GRCBASE_MCP2 = 0x52000,
1274 GRCBASE_PSWHST = 0x2a0000,
1275 GRCBASE_PSWHST2 = 0x29e000,
1276 GRCBASE_PSWRD = 0x29c000,
1277 GRCBASE_PSWRD2 = 0x29d000,
1278 GRCBASE_PSWWR = 0x29a000,
1279 GRCBASE_PSWWR2 = 0x29b000,
1280 GRCBASE_PSWRQ = 0x280000,
1281 GRCBASE_PSWRQ2 = 0x240000,
1282 GRCBASE_PGLCS = 0x0,
1283 GRCBASE_DMAE = 0xc000,
1284 GRCBASE_PTU = 0x560000,
1285 GRCBASE_TCM = 0x1180000,
1286 GRCBASE_MCM = 0x1200000,
1287 GRCBASE_UCM = 0x1280000,
1288 GRCBASE_XCM = 0x1000000,
1289 GRCBASE_YCM = 0x1080000,
1290 GRCBASE_PCM = 0x1100000,
1291 GRCBASE_QM = 0x2f0000,
1292 GRCBASE_TM = 0x2c0000,
1293 GRCBASE_DORQ = 0x100000,
1294 GRCBASE_BRB = 0x340000,
1295 GRCBASE_SRC = 0x238000,
1296 GRCBASE_PRS = 0x1f0000,
1297 GRCBASE_TSDM = 0xfb0000,
1298 GRCBASE_MSDM = 0xfc0000,
1299 GRCBASE_USDM = 0xfd0000,
1300 GRCBASE_XSDM = 0xf80000,
1301 GRCBASE_YSDM = 0xf90000,
1302 GRCBASE_PSDM = 0xfa0000,
1303 GRCBASE_TSEM = 0x1700000,
1304 GRCBASE_MSEM = 0x1800000,
1305 GRCBASE_USEM = 0x1900000,
1306 GRCBASE_XSEM = 0x1400000,
1307 GRCBASE_YSEM = 0x1500000,
1308 GRCBASE_PSEM = 0x1600000,
1309 GRCBASE_RSS = 0x238800,
1310 GRCBASE_TMLD = 0x4d0000,
1311 GRCBASE_MULD = 0x4e0000,
1312 GRCBASE_YULD = 0x4c8000,
1313 GRCBASE_XYLD = 0x4c0000,
1314 GRCBASE_PRM = 0x230000,
1315 GRCBASE_PBF_PB1 = 0xda0000,
1316 GRCBASE_PBF_PB2 = 0xda4000,
1317 GRCBASE_RPB = 0x23c000,
1318 GRCBASE_BTB = 0xdb0000,
1319 GRCBASE_PBF = 0xd80000,
1320 GRCBASE_RDIF = 0x300000,
1321 GRCBASE_TDIF = 0x310000,
1322 GRCBASE_CDU = 0x580000,
1323 GRCBASE_CCFC = 0x2e0000,
1324 GRCBASE_TCFC = 0x2d0000,
1325 GRCBASE_IGU = 0x180000,
1326 GRCBASE_CAU = 0x1c0000,
1327 GRCBASE_UMAC = 0x51000,
1328 GRCBASE_XMAC = 0x210000,
1329 GRCBASE_DBG = 0x10000,
1330 GRCBASE_NIG = 0x500000,
1331 GRCBASE_WOL = 0x600000,
1332 GRCBASE_BMBN = 0x610000,
1333 GRCBASE_IPC = 0x20000,
1334 GRCBASE_NWM = 0x800000,
1335 GRCBASE_NWS = 0x700000,
1336 GRCBASE_MS = 0x6a0000,
1337 GRCBASE_PHY_PCIE = 0x620000,
1338 GRCBASE_LED = 0x6b8000,
1339 GRCBASE_MISC_AEU = 0x8000,
1340 GRCBASE_BAR0_MAP = 0x1c00000,
1341 MAX_BLOCK_ADDR
1342 };
1343
1344 enum block_id {
1345 BLOCK_GRC,
1346 BLOCK_MISCS,
1347 BLOCK_MISC,
1348 BLOCK_DBU,
1349 BLOCK_PGLUE_B,
1350 BLOCK_CNIG,
1351 BLOCK_CPMU,
1352 BLOCK_NCSI,
1353 BLOCK_OPTE,
1354 BLOCK_BMB,
1355 BLOCK_PCIE,
1356 BLOCK_MCP,
1357 BLOCK_MCP2,
1358 BLOCK_PSWHST,
1359 BLOCK_PSWHST2,
1360 BLOCK_PSWRD,
1361 BLOCK_PSWRD2,
1362 BLOCK_PSWWR,
1363 BLOCK_PSWWR2,
1364 BLOCK_PSWRQ,
1365 BLOCK_PSWRQ2,
1366 BLOCK_PGLCS,
1367 BLOCK_DMAE,
1368 BLOCK_PTU,
1369 BLOCK_TCM,
1370 BLOCK_MCM,
1371 BLOCK_UCM,
1372 BLOCK_XCM,
1373 BLOCK_YCM,
1374 BLOCK_PCM,
1375 BLOCK_QM,
1376 BLOCK_TM,
1377 BLOCK_DORQ,
1378 BLOCK_BRB,
1379 BLOCK_SRC,
1380 BLOCK_PRS,
1381 BLOCK_TSDM,
1382 BLOCK_MSDM,
1383 BLOCK_USDM,
1384 BLOCK_XSDM,
1385 BLOCK_YSDM,
1386 BLOCK_PSDM,
1387 BLOCK_TSEM,
1388 BLOCK_MSEM,
1389 BLOCK_USEM,
1390 BLOCK_XSEM,
1391 BLOCK_YSEM,
1392 BLOCK_PSEM,
1393 BLOCK_RSS,
1394 BLOCK_TMLD,
1395 BLOCK_MULD,
1396 BLOCK_YULD,
1397 BLOCK_XYLD,
1398 BLOCK_PRM,
1399 BLOCK_PBF_PB1,
1400 BLOCK_PBF_PB2,
1401 BLOCK_RPB,
1402 BLOCK_BTB,
1403 BLOCK_PBF,
1404 BLOCK_RDIF,
1405 BLOCK_TDIF,
1406 BLOCK_CDU,
1407 BLOCK_CCFC,
1408 BLOCK_TCFC,
1409 BLOCK_IGU,
1410 BLOCK_CAU,
1411 BLOCK_UMAC,
1412 BLOCK_XMAC,
1413 BLOCK_DBG,
1414 BLOCK_NIG,
1415 BLOCK_WOL,
1416 BLOCK_BMBN,
1417 BLOCK_IPC,
1418 BLOCK_NWM,
1419 BLOCK_NWS,
1420 BLOCK_MS,
1421 BLOCK_PHY_PCIE,
1422 BLOCK_LED,
1423 BLOCK_MISC_AEU,
1424 BLOCK_BAR0_MAP,
1425 MAX_BLOCK_ID
1426 };
1427
1428 /* binary debug buffer types */
1429 enum bin_dbg_buffer_type {
1430 BIN_BUF_DBG_MODE_TREE,
1431 BIN_BUF_DBG_DUMP_REG,
1432 BIN_BUF_DBG_DUMP_MEM,
1433 BIN_BUF_DBG_IDLE_CHK_REGS,
1434 BIN_BUF_DBG_IDLE_CHK_IMMS,
1435 BIN_BUF_DBG_IDLE_CHK_RULES,
1436 BIN_BUF_DBG_IDLE_CHK_PARSING_DATA,
1437 BIN_BUF_DBG_ATTN_BLOCKS,
1438 BIN_BUF_DBG_ATTN_REGS,
1439 BIN_BUF_DBG_ATTN_INDEXES,
1440 BIN_BUF_DBG_ATTN_NAME_OFFSETS,
1441 BIN_BUF_DBG_PARSING_STRINGS,
1442 MAX_BIN_DBG_BUFFER_TYPE
1443 };
1444
1445 /* Chip IDs */
1446 enum chip_ids {
1447 CHIP_RESERVED,
1448 CHIP_BB_B0,
1449 CHIP_RESERVED2,
1450 MAX_CHIP_IDS
1451 };
1452
1453 /* Attention bit mapping */
1454 struct dbg_attn_bit_mapping {
1455 __le16 data;
1456 #define DBG_ATTN_BIT_MAPPING_VAL_MASK 0x7FFF
1457 #define DBG_ATTN_BIT_MAPPING_VAL_SHIFT 0
1458 #define DBG_ATTN_BIT_MAPPING_IS_UNUSED_BIT_CNT_MASK 0x1
1459 #define DBG_ATTN_BIT_MAPPING_IS_UNUSED_BIT_CNT_SHIFT 15
1460 };
1461
1462 /* Attention block per-type data */
1463 struct dbg_attn_block_type_data {
1464 __le16 names_offset;
1465 __le16 reserved1;
1466 u8 num_regs;
1467 u8 reserved2;
1468 __le16 regs_offset;
1469 };
1470
1471 /* Block attentions */
1472 struct dbg_attn_block {
1473 struct dbg_attn_block_type_data per_type_data[2];
1474 };
1475
1476 /* Attention register result */
1477 struct dbg_attn_reg_result {
1478 __le32 data;
1479 #define DBG_ATTN_REG_RESULT_STS_ADDRESS_MASK 0xFFFFFF
1480 #define DBG_ATTN_REG_RESULT_STS_ADDRESS_SHIFT 0
1481 #define DBG_ATTN_REG_RESULT_NUM_ATTN_IDX_MASK 0xFF
1482 #define DBG_ATTN_REG_RESULT_NUM_ATTN_IDX_SHIFT 24
1483 __le16 attn_idx_offset;
1484 __le16 reserved;
1485 __le32 sts_val;
1486 __le32 mask_val;
1487 };
1488
1489 /* Attention block result */
1490 struct dbg_attn_block_result {
1491 u8 block_id;
1492 u8 data;
1493 #define DBG_ATTN_BLOCK_RESULT_ATTN_TYPE_MASK 0x3
1494 #define DBG_ATTN_BLOCK_RESULT_ATTN_TYPE_SHIFT 0
1495 #define DBG_ATTN_BLOCK_RESULT_NUM_REGS_MASK 0x3F
1496 #define DBG_ATTN_BLOCK_RESULT_NUM_REGS_SHIFT 2
1497 __le16 names_offset;
1498 struct dbg_attn_reg_result reg_results[15];
1499 };
1500
1501 /* mode header */
1502 struct dbg_mode_hdr {
1503 __le16 data;
1504 #define DBG_MODE_HDR_EVAL_MODE_MASK 0x1
1505 #define DBG_MODE_HDR_EVAL_MODE_SHIFT 0
1506 #define DBG_MODE_HDR_MODES_BUF_OFFSET_MASK 0x7FFF
1507 #define DBG_MODE_HDR_MODES_BUF_OFFSET_SHIFT 1
1508 };
1509
1510 /* Attention register */
1511 struct dbg_attn_reg {
1512 struct dbg_mode_hdr mode;
1513 __le16 attn_idx_offset;
1514 __le32 data;
1515 #define DBG_ATTN_REG_STS_ADDRESS_MASK 0xFFFFFF
1516 #define DBG_ATTN_REG_STS_ADDRESS_SHIFT 0
1517 #define DBG_ATTN_REG_NUM_ATTN_IDX_MASK 0xFF
1518 #define DBG_ATTN_REG_NUM_ATTN_IDX_SHIFT 24
1519 __le32 sts_clr_address;
1520 __le32 mask_address;
1521 };
1522
1523 /* attention types */
1524 enum dbg_attn_type {
1525 ATTN_TYPE_INTERRUPT,
1526 ATTN_TYPE_PARITY,
1527 MAX_DBG_ATTN_TYPE
1528 };
1529
1530 /* Debug status codes */
1531 enum dbg_status {
1532 DBG_STATUS_OK,
1533 DBG_STATUS_APP_VERSION_NOT_SET,
1534 DBG_STATUS_UNSUPPORTED_APP_VERSION,
1535 DBG_STATUS_DBG_BLOCK_NOT_RESET,
1536 DBG_STATUS_INVALID_ARGS,
1537 DBG_STATUS_OUTPUT_ALREADY_SET,
1538 DBG_STATUS_INVALID_PCI_BUF_SIZE,
1539 DBG_STATUS_PCI_BUF_ALLOC_FAILED,
1540 DBG_STATUS_PCI_BUF_NOT_ALLOCATED,
1541 DBG_STATUS_TOO_MANY_INPUTS,
1542 DBG_STATUS_INPUT_OVERLAP,
1543 DBG_STATUS_HW_ONLY_RECORDING,
1544 DBG_STATUS_STORM_ALREADY_ENABLED,
1545 DBG_STATUS_STORM_NOT_ENABLED,
1546 DBG_STATUS_BLOCK_ALREADY_ENABLED,
1547 DBG_STATUS_BLOCK_NOT_ENABLED,
1548 DBG_STATUS_NO_INPUT_ENABLED,
1549 DBG_STATUS_NO_FILTER_TRIGGER_64B,
1550 DBG_STATUS_FILTER_ALREADY_ENABLED,
1551 DBG_STATUS_TRIGGER_ALREADY_ENABLED,
1552 DBG_STATUS_TRIGGER_NOT_ENABLED,
1553 DBG_STATUS_CANT_ADD_CONSTRAINT,
1554 DBG_STATUS_TOO_MANY_TRIGGER_STATES,
1555 DBG_STATUS_TOO_MANY_CONSTRAINTS,
1556 DBG_STATUS_RECORDING_NOT_STARTED,
1557 DBG_STATUS_DATA_DIDNT_TRIGGER,
1558 DBG_STATUS_NO_DATA_RECORDED,
1559 DBG_STATUS_DUMP_BUF_TOO_SMALL,
1560 DBG_STATUS_DUMP_NOT_CHUNK_ALIGNED,
1561 DBG_STATUS_UNKNOWN_CHIP,
1562 DBG_STATUS_VIRT_MEM_ALLOC_FAILED,
1563 DBG_STATUS_BLOCK_IN_RESET,
1564 DBG_STATUS_INVALID_TRACE_SIGNATURE,
1565 DBG_STATUS_INVALID_NVRAM_BUNDLE,
1566 DBG_STATUS_NVRAM_GET_IMAGE_FAILED,
1567 DBG_STATUS_NON_ALIGNED_NVRAM_IMAGE,
1568 DBG_STATUS_NVRAM_READ_FAILED,
1569 DBG_STATUS_IDLE_CHK_PARSE_FAILED,
1570 DBG_STATUS_MCP_TRACE_BAD_DATA,
1571 DBG_STATUS_MCP_TRACE_NO_META,
1572 DBG_STATUS_MCP_COULD_NOT_HALT,
1573 DBG_STATUS_MCP_COULD_NOT_RESUME,
1574 DBG_STATUS_DMAE_FAILED,
1575 DBG_STATUS_SEMI_FIFO_NOT_EMPTY,
1576 DBG_STATUS_IGU_FIFO_BAD_DATA,
1577 DBG_STATUS_MCP_COULD_NOT_MASK_PRTY,
1578 DBG_STATUS_FW_ASSERTS_PARSE_FAILED,
1579 DBG_STATUS_REG_FIFO_BAD_DATA,
1580 DBG_STATUS_PROTECTION_OVERRIDE_BAD_DATA,
1581 DBG_STATUS_DBG_ARRAY_NOT_SET,
1582 MAX_DBG_STATUS
1583 };
1584
1585 /********************************/
1586 /* HSI Init Functions constants */
1587 /********************************/
1588
1589 /* Number of VLAN priorities */
1590 #define NUM_OF_VLAN_PRIORITIES 8
1591
1592 /* QM per-port init parameters */
1593 struct init_qm_port_params {
1594 u8 active;
1595 u8 active_phys_tcs;
1596 __le16 num_pbf_cmd_lines;
1597 __le16 num_btb_blocks;
1598 __le16 reserved;
1599 };
1600
1601 /* QM per-PQ init parameters */
1602 struct init_qm_pq_params {
1603 u8 vport_id;
1604 u8 tc_id;
1605 u8 wrr_group;
1606 u8 rl_valid;
1607 };
1608
1609 /* QM per-vport init parameters */
1610 struct init_qm_vport_params {
1611 __le32 vport_rl;
1612 __le16 vport_wfq;
1613 __le16 first_tx_pq_id[NUM_OF_TCS];
1614 };
1615
1616 /**************************************/
1617 /* Init Tool HSI constants and macros */
1618 /**************************************/
1619
1620 /* Width of GRC address in bits (addresses are specified in dwords) */
1621 #define GRC_ADDR_BITS 23
1622 #define MAX_GRC_ADDR ((1 << GRC_ADDR_BITS) - 1)
1623
1624 /* indicates an init that should be applied to any phase ID */
1625 #define ANY_PHASE_ID 0xffff
1626
1627 /* Max size in dwords of a zipped array */
1628 #define MAX_ZIPPED_SIZE 8192
1629
1630 enum init_modes {
1631 MODE_RESERVED,
1632 MODE_BB_B0,
1633 MODE_RESERVED2,
1634 MODE_ASIC,
1635 MODE_RESERVED3,
1636 MODE_RESERVED4,
1637 MODE_RESERVED5,
1638 MODE_RESERVED6,
1639 MODE_SF,
1640 MODE_MF_SD,
1641 MODE_MF_SI,
1642 MODE_PORTS_PER_ENG_1,
1643 MODE_PORTS_PER_ENG_2,
1644 MODE_PORTS_PER_ENG_4,
1645 MODE_100G,
1646 MODE_40G,
1647 MODE_RESERVED7,
1648 MAX_INIT_MODES
1649 };
1650
1651 enum init_phases {
1652 PHASE_ENGINE,
1653 PHASE_PORT,
1654 PHASE_PF,
1655 PHASE_VF,
1656 PHASE_QM_PF,
1657 MAX_INIT_PHASES
1658 };
1659
1660 enum init_split_types {
1661 SPLIT_TYPE_NONE,
1662 SPLIT_TYPE_PORT,
1663 SPLIT_TYPE_PF,
1664 SPLIT_TYPE_PORT_PF,
1665 SPLIT_TYPE_VF,
1666 MAX_INIT_SPLIT_TYPES
1667 };
1668
1669 /* Binary buffer header */
1670 struct bin_buffer_hdr {
1671 __le32 offset;
1672 __le32 length;
1673 };
1674
1675 /* binary init buffer types */
1676 enum bin_init_buffer_type {
1677 BIN_BUF_FW_VER_INFO,
1678 BIN_BUF_INIT_CMD,
1679 BIN_BUF_INIT_VAL,
1680 BIN_BUF_INIT_MODE_TREE,
1681 BIN_BUF_IRO,
1682 MAX_BIN_INIT_BUFFER_TYPE
1683 };
1684
1685 /* init array header: raw */
1686 struct init_array_raw_hdr {
1687 __le32 data;
1688 #define INIT_ARRAY_RAW_HDR_TYPE_MASK 0xF
1689 #define INIT_ARRAY_RAW_HDR_TYPE_SHIFT 0
1690 #define INIT_ARRAY_RAW_HDR_PARAMS_MASK 0xFFFFFFF
1691 #define INIT_ARRAY_RAW_HDR_PARAMS_SHIFT 4
1692 };
1693
1694 /* init array header: standard */
1695 struct init_array_standard_hdr {
1696 __le32 data;
1697 #define INIT_ARRAY_STANDARD_HDR_TYPE_MASK 0xF
1698 #define INIT_ARRAY_STANDARD_HDR_TYPE_SHIFT 0
1699 #define INIT_ARRAY_STANDARD_HDR_SIZE_MASK 0xFFFFFFF
1700 #define INIT_ARRAY_STANDARD_HDR_SIZE_SHIFT 4
1701 };
1702
1703 /* init array header: zipped */
1704 struct init_array_zipped_hdr {
1705 __le32 data;
1706 #define INIT_ARRAY_ZIPPED_HDR_TYPE_MASK 0xF
1707 #define INIT_ARRAY_ZIPPED_HDR_TYPE_SHIFT 0
1708 #define INIT_ARRAY_ZIPPED_HDR_ZIPPED_SIZE_MASK 0xFFFFFFF
1709 #define INIT_ARRAY_ZIPPED_HDR_ZIPPED_SIZE_SHIFT 4
1710 };
1711
1712 /* init array header: pattern */
1713 struct init_array_pattern_hdr {
1714 __le32 data;
1715 #define INIT_ARRAY_PATTERN_HDR_TYPE_MASK 0xF
1716 #define INIT_ARRAY_PATTERN_HDR_TYPE_SHIFT 0
1717 #define INIT_ARRAY_PATTERN_HDR_PATTERN_SIZE_MASK 0xF
1718 #define INIT_ARRAY_PATTERN_HDR_PATTERN_SIZE_SHIFT 4
1719 #define INIT_ARRAY_PATTERN_HDR_REPETITIONS_MASK 0xFFFFFF
1720 #define INIT_ARRAY_PATTERN_HDR_REPETITIONS_SHIFT 8
1721 };
1722
1723 /* init array header union */
1724 union init_array_hdr {
1725 struct init_array_raw_hdr raw;
1726 struct init_array_standard_hdr standard;
1727 struct init_array_zipped_hdr zipped;
1728 struct init_array_pattern_hdr pattern;
1729 };
1730
1731 /* init array types */
1732 enum init_array_types {
1733 INIT_ARR_STANDARD,
1734 INIT_ARR_ZIPPED,
1735 INIT_ARR_PATTERN,
1736 MAX_INIT_ARRAY_TYPES
1737 };
1738
1739 /* init operation: callback */
1740 struct init_callback_op {
1741 __le32 op_data;
1742 #define INIT_CALLBACK_OP_OP_MASK 0xF
1743 #define INIT_CALLBACK_OP_OP_SHIFT 0
1744 #define INIT_CALLBACK_OP_RESERVED_MASK 0xFFFFFFF
1745 #define INIT_CALLBACK_OP_RESERVED_SHIFT 4
1746 __le16 callback_id;
1747 __le16 block_id;
1748 };
1749
1750 /* init operation: delay */
1751 struct init_delay_op {
1752 __le32 op_data;
1753 #define INIT_DELAY_OP_OP_MASK 0xF
1754 #define INIT_DELAY_OP_OP_SHIFT 0
1755 #define INIT_DELAY_OP_RESERVED_MASK 0xFFFFFFF
1756 #define INIT_DELAY_OP_RESERVED_SHIFT 4
1757 __le32 delay;
1758 };
1759
1760 /* init operation: if_mode */
1761 struct init_if_mode_op {
1762 __le32 op_data;
1763 #define INIT_IF_MODE_OP_OP_MASK 0xF
1764 #define INIT_IF_MODE_OP_OP_SHIFT 0
1765 #define INIT_IF_MODE_OP_RESERVED1_MASK 0xFFF
1766 #define INIT_IF_MODE_OP_RESERVED1_SHIFT 4
1767 #define INIT_IF_MODE_OP_CMD_OFFSET_MASK 0xFFFF
1768 #define INIT_IF_MODE_OP_CMD_OFFSET_SHIFT 16
1769 __le16 reserved2;
1770 __le16 modes_buf_offset;
1771 };
1772
1773 /* init operation: if_phase */
1774 struct init_if_phase_op {
1775 __le32 op_data;
1776 #define INIT_IF_PHASE_OP_OP_MASK 0xF
1777 #define INIT_IF_PHASE_OP_OP_SHIFT 0
1778 #define INIT_IF_PHASE_OP_DMAE_ENABLE_MASK 0x1
1779 #define INIT_IF_PHASE_OP_DMAE_ENABLE_SHIFT 4
1780 #define INIT_IF_PHASE_OP_RESERVED1_MASK 0x7FF
1781 #define INIT_IF_PHASE_OP_RESERVED1_SHIFT 5
1782 #define INIT_IF_PHASE_OP_CMD_OFFSET_MASK 0xFFFF
1783 #define INIT_IF_PHASE_OP_CMD_OFFSET_SHIFT 16
1784 __le32 phase_data;
1785 #define INIT_IF_PHASE_OP_PHASE_MASK 0xFF
1786 #define INIT_IF_PHASE_OP_PHASE_SHIFT 0
1787 #define INIT_IF_PHASE_OP_RESERVED2_MASK 0xFF
1788 #define INIT_IF_PHASE_OP_RESERVED2_SHIFT 8
1789 #define INIT_IF_PHASE_OP_PHASE_ID_MASK 0xFFFF
1790 #define INIT_IF_PHASE_OP_PHASE_ID_SHIFT 16
1791 };
1792
1793 /* init mode operators */
1794 enum init_mode_ops {
1795 INIT_MODE_OP_NOT,
1796 INIT_MODE_OP_OR,
1797 INIT_MODE_OP_AND,
1798 MAX_INIT_MODE_OPS
1799 };
1800
1801 /* init operation: raw */
1802 struct init_raw_op {
1803 __le32 op_data;
1804 #define INIT_RAW_OP_OP_MASK 0xF
1805 #define INIT_RAW_OP_OP_SHIFT 0
1806 #define INIT_RAW_OP_PARAM1_MASK 0xFFFFFFF
1807 #define INIT_RAW_OP_PARAM1_SHIFT 4
1808 __le32 param2;
1809 };
1810
1811 /* init array params */
1812 struct init_op_array_params {
1813 __le16 size;
1814 __le16 offset;
1815 };
1816
1817 /* Write init operation arguments */
1818 union init_write_args {
1819 __le32 inline_val;
1820 __le32 zeros_count;
1821 __le32 array_offset;
1822 struct init_op_array_params runtime;
1823 };
1824
1825 /* init operation: write */
1826 struct init_write_op {
1827 __le32 data;
1828 #define INIT_WRITE_OP_OP_MASK 0xF
1829 #define INIT_WRITE_OP_OP_SHIFT 0
1830 #define INIT_WRITE_OP_SOURCE_MASK 0x7
1831 #define INIT_WRITE_OP_SOURCE_SHIFT 4
1832 #define INIT_WRITE_OP_RESERVED_MASK 0x1
1833 #define INIT_WRITE_OP_RESERVED_SHIFT 7
1834 #define INIT_WRITE_OP_WIDE_BUS_MASK 0x1
1835 #define INIT_WRITE_OP_WIDE_BUS_SHIFT 8
1836 #define INIT_WRITE_OP_ADDRESS_MASK 0x7FFFFF
1837 #define INIT_WRITE_OP_ADDRESS_SHIFT 9
1838 union init_write_args args;
1839 };
1840
1841 /* init operation: read */
1842 struct init_read_op {
1843 __le32 op_data;
1844 #define INIT_READ_OP_OP_MASK 0xF
1845 #define INIT_READ_OP_OP_SHIFT 0
1846 #define INIT_READ_OP_POLL_TYPE_MASK 0xF
1847 #define INIT_READ_OP_POLL_TYPE_SHIFT 4
1848 #define INIT_READ_OP_RESERVED_MASK 0x1
1849 #define INIT_READ_OP_RESERVED_SHIFT 8
1850 #define INIT_READ_OP_ADDRESS_MASK 0x7FFFFF
1851 #define INIT_READ_OP_ADDRESS_SHIFT 9
1852 __le32 expected_val;
1853
1854 };
1855
1856 /* Init operations union */
1857 union init_op {
1858 struct init_raw_op raw;
1859 struct init_write_op write;
1860 struct init_read_op read;
1861 struct init_if_mode_op if_mode;
1862 struct init_if_phase_op if_phase;
1863 struct init_callback_op callback;
1864 struct init_delay_op delay;
1865 };
1866
1867 /* Init command operation types */
1868 enum init_op_types {
1869 INIT_OP_READ,
1870 INIT_OP_WRITE,
1871 INIT_OP_IF_MODE,
1872 INIT_OP_IF_PHASE,
1873 INIT_OP_DELAY,
1874 INIT_OP_CALLBACK,
1875 MAX_INIT_OP_TYPES
1876 };
1877
1878 /* init polling types */
1879 enum init_poll_types {
1880 INIT_POLL_NONE,
1881 INIT_POLL_EQ,
1882 INIT_POLL_OR,
1883 INIT_POLL_AND,
1884 MAX_INIT_POLL_TYPES
1885 };
1886
1887 /* init source types */
1888 enum init_source_types {
1889 INIT_SRC_INLINE,
1890 INIT_SRC_ZEROS,
1891 INIT_SRC_ARRAY,
1892 INIT_SRC_RUNTIME,
1893 MAX_INIT_SOURCE_TYPES
1894 };
1895
1896 /* Internal RAM Offsets macro data */
1897 struct iro {
1898 __le32 base;
1899 __le16 m1;
1900 __le16 m2;
1901 __le16 m3;
1902 __le16 size;
1903 };
1904
1905 /**
1906 * @brief qed_dbg_print_attn - Prints attention registers values in the specified results struct.
1907 *
1908 * @param p_hwfn
1909 * @param results - Pointer to the attention read results
1910 *
1911 * @return error if one of the following holds:
1912 * - the version wasn't set
1913 * Otherwise, returns ok.
1914 */
1915 enum dbg_status qed_dbg_print_attn(struct qed_hwfn *p_hwfn,
1916 struct dbg_attn_block_result *results);
1917
1918 #define MAX_NAME_LEN 16
1919
1920 /* Win 2 */
1921 #define GTT_BAR0_MAP_REG_IGU_CMD \
1922 0x00f000UL
1923
1924 /* Win 3 */
1925 #define GTT_BAR0_MAP_REG_TSDM_RAM \
1926 0x010000UL
1927
1928 /* Win 4 */
1929 #define GTT_BAR0_MAP_REG_MSDM_RAM \
1930 0x011000UL
1931
1932 /* Win 5 */
1933 #define GTT_BAR0_MAP_REG_MSDM_RAM_1024 \
1934 0x012000UL
1935
1936 /* Win 6 */
1937 #define GTT_BAR0_MAP_REG_USDM_RAM \
1938 0x013000UL
1939
1940 /* Win 7 */
1941 #define GTT_BAR0_MAP_REG_USDM_RAM_1024 \
1942 0x014000UL
1943
1944 /* Win 8 */
1945 #define GTT_BAR0_MAP_REG_USDM_RAM_2048 \
1946 0x015000UL
1947
1948 /* Win 9 */
1949 #define GTT_BAR0_MAP_REG_XSDM_RAM \
1950 0x016000UL
1951
1952 /* Win 10 */
1953 #define GTT_BAR0_MAP_REG_YSDM_RAM \
1954 0x017000UL
1955
1956 /* Win 11 */
1957 #define GTT_BAR0_MAP_REG_PSDM_RAM \
1958 0x018000UL
1959
1960 /**
1961 * @brief qed_qm_pf_mem_size - prepare QM ILT sizes
1962 *
1963 * Returns the required host memory size in 4KB units.
1964 * Must be called before all QM init HSI functions.
1965 *
1966 * @param pf_id - physical function ID
1967 * @param num_pf_cids - number of connections used by this PF
1968 * @param num_vf_cids - number of connections used by VFs of this PF
1969 * @param num_tids - number of tasks used by this PF
1970 * @param num_pf_pqs - number of PQs used by this PF
1971 * @param num_vf_pqs - number of PQs used by VFs of this PF
1972 *
1973 * @return The required host memory size in 4KB units.
1974 */
1975 u32 qed_qm_pf_mem_size(u8 pf_id,
1976 u32 num_pf_cids,
1977 u32 num_vf_cids,
1978 u32 num_tids, u16 num_pf_pqs, u16 num_vf_pqs);
1979
1980 struct qed_qm_common_rt_init_params {
1981 u8 max_ports_per_engine;
1982 u8 max_phys_tcs_per_port;
1983 bool pf_rl_en;
1984 bool pf_wfq_en;
1985 bool vport_rl_en;
1986 bool vport_wfq_en;
1987 struct init_qm_port_params *port_params;
1988 };
1989
1990 int qed_qm_common_rt_init(struct qed_hwfn *p_hwfn,
1991 struct qed_qm_common_rt_init_params *p_params);
1992
1993 struct qed_qm_pf_rt_init_params {
1994 u8 port_id;
1995 u8 pf_id;
1996 u8 max_phys_tcs_per_port;
1997 bool is_first_pf;
1998 u32 num_pf_cids;
1999 u32 num_vf_cids;
2000 u32 num_tids;
2001 u16 start_pq;
2002 u16 num_pf_pqs;
2003 u16 num_vf_pqs;
2004 u8 start_vport;
2005 u8 num_vports;
2006 u8 pf_wfq;
2007 u32 pf_rl;
2008 struct init_qm_pq_params *pq_params;
2009 struct init_qm_vport_params *vport_params;
2010 };
2011
2012 int qed_qm_pf_rt_init(struct qed_hwfn *p_hwfn,
2013 struct qed_ptt *p_ptt,
2014 struct qed_qm_pf_rt_init_params *p_params);
2015
2016 /**
2017 * @brief qed_init_pf_wfq - Initializes the WFQ weight of the specified PF
2018 *
2019 * @param p_hwfn
2020 * @param p_ptt - ptt window used for writing the registers
2021 * @param pf_id - PF ID
2022 * @param pf_wfq - WFQ weight. Must be non-zero.
2023 *
2024 * @return 0 on success, -1 on error.
2025 */
2026 int qed_init_pf_wfq(struct qed_hwfn *p_hwfn,
2027 struct qed_ptt *p_ptt, u8 pf_id, u16 pf_wfq);
2028
2029 /**
2030 * @brief qed_init_pf_rl - Initializes the rate limit of the specified PF
2031 *
2032 * @param p_hwfn
2033 * @param p_ptt - ptt window used for writing the registers
2034 * @param pf_id - PF ID
2035 * @param pf_rl - rate limit in Mb/sec units
2036 *
2037 * @return 0 on success, -1 on error.
2038 */
2039 int qed_init_pf_rl(struct qed_hwfn *p_hwfn,
2040 struct qed_ptt *p_ptt, u8 pf_id, u32 pf_rl);
2041
2042 /**
2043 * @brief qed_init_vport_wfq Initializes the WFQ weight of the specified VPORT
2044 *
2045 * @param p_hwfn
2046 * @param p_ptt - ptt window used for writing the registers
2047 * @param first_tx_pq_id- An array containing the first Tx PQ ID associated
2048 * with the VPORT for each TC. This array is filled by
2049 * qed_qm_pf_rt_init
2050 * @param vport_wfq - WFQ weight. Must be non-zero.
2051 *
2052 * @return 0 on success, -1 on error.
2053 */
2054 int qed_init_vport_wfq(struct qed_hwfn *p_hwfn,
2055 struct qed_ptt *p_ptt,
2056 u16 first_tx_pq_id[NUM_OF_TCS], u16 vport_wfq);
2057
2058 /**
2059 * @brief qed_init_vport_rl - Initializes the rate limit of the specified VPORT
2060 *
2061 * @param p_hwfn
2062 * @param p_ptt - ptt window used for writing the registers
2063 * @param vport_id - VPORT ID
2064 * @param vport_rl - rate limit in Mb/sec units
2065 *
2066 * @return 0 on success, -1 on error.
2067 */
2068 int qed_init_vport_rl(struct qed_hwfn *p_hwfn,
2069 struct qed_ptt *p_ptt, u8 vport_id, u32 vport_rl);
2070 /**
2071 * @brief qed_send_qm_stop_cmd Sends a stop command to the QM
2072 *
2073 * @param p_hwfn
2074 * @param p_ptt
2075 * @param is_release_cmd - true for release, false for stop.
2076 * @param is_tx_pq - true for Tx PQs, false for Other PQs.
2077 * @param start_pq - first PQ ID to stop
2078 * @param num_pqs - Number of PQs to stop, starting from start_pq.
2079 *
2080 * @return bool, true if successful, false if timeout occured while waiting for QM command done.
2081 */
2082 bool qed_send_qm_stop_cmd(struct qed_hwfn *p_hwfn,
2083 struct qed_ptt *p_ptt,
2084 bool is_release_cmd,
2085 bool is_tx_pq, u16 start_pq, u16 num_pqs);
2086
2087 /**
2088 * @brief qed_set_vxlan_dest_port - initializes vxlan tunnel destination udp port
2089 *
2090 * @param p_ptt - ptt window used for writing the registers.
2091 * @param dest_port - vxlan destination udp port.
2092 */
2093 void qed_set_vxlan_dest_port(struct qed_hwfn *p_hwfn,
2094 struct qed_ptt *p_ptt, u16 dest_port);
2095
2096 /**
2097 * @brief qed_set_vxlan_enable - enable or disable VXLAN tunnel in HW
2098 *
2099 * @param p_ptt - ptt window used for writing the registers.
2100 * @param vxlan_enable - vxlan enable flag.
2101 */
2102 void qed_set_vxlan_enable(struct qed_hwfn *p_hwfn,
2103 struct qed_ptt *p_ptt, bool vxlan_enable);
2104
2105 /**
2106 * @brief qed_set_gre_enable - enable or disable GRE tunnel in HW
2107 *
2108 * @param p_ptt - ptt window used for writing the registers.
2109 * @param eth_gre_enable - eth GRE enable enable flag.
2110 * @param ip_gre_enable - IP GRE enable enable flag.
2111 */
2112 void qed_set_gre_enable(struct qed_hwfn *p_hwfn,
2113 struct qed_ptt *p_ptt,
2114 bool eth_gre_enable, bool ip_gre_enable);
2115
2116 /**
2117 * @brief qed_set_geneve_dest_port - initializes geneve tunnel destination udp port
2118 *
2119 * @param p_ptt - ptt window used for writing the registers.
2120 * @param dest_port - geneve destination udp port.
2121 */
2122 void qed_set_geneve_dest_port(struct qed_hwfn *p_hwfn,
2123 struct qed_ptt *p_ptt, u16 dest_port);
2124
2125 /**
2126 * @brief qed_set_gre_enable - enable or disable GRE tunnel in HW
2127 *
2128 * @param p_ptt - ptt window used for writing the registers.
2129 * @param eth_geneve_enable - eth GENEVE enable enable flag.
2130 * @param ip_geneve_enable - IP GENEVE enable enable flag.
2131 */
2132 void qed_set_geneve_enable(struct qed_hwfn *p_hwfn,
2133 struct qed_ptt *p_ptt,
2134 bool eth_geneve_enable, bool ip_geneve_enable);
2135
2136 #define YSTORM_FLOW_CONTROL_MODE_OFFSET (IRO[0].base)
2137 #define YSTORM_FLOW_CONTROL_MODE_SIZE (IRO[0].size)
2138 #define TSTORM_PORT_STAT_OFFSET(port_id) \
2139 (IRO[1].base + ((port_id) * IRO[1].m1))
2140 #define TSTORM_PORT_STAT_SIZE (IRO[1].size)
2141 #define USTORM_VF_PF_CHANNEL_READY_OFFSET(vf_id) \
2142 (IRO[3].base + ((vf_id) * IRO[3].m1))
2143 #define USTORM_VF_PF_CHANNEL_READY_SIZE (IRO[3].size)
2144 #define USTORM_FLR_FINAL_ACK_OFFSET(pf_id) \
2145 (IRO[4].base + (pf_id) * IRO[4].m1)
2146 #define USTORM_FLR_FINAL_ACK_SIZE (IRO[4].size)
2147 #define USTORM_EQE_CONS_OFFSET(pf_id) \
2148 (IRO[5].base + ((pf_id) * IRO[5].m1))
2149 #define USTORM_EQE_CONS_SIZE (IRO[5].size)
2150 #define USTORM_ETH_QUEUE_ZONE_OFFSET(queue_zone_id) \
2151 (IRO[6].base + ((queue_zone_id) * IRO[6].m1))
2152 #define USTORM_ETH_QUEUE_ZONE_SIZE (IRO[6].size)
2153 #define USTORM_COMMON_QUEUE_CONS_OFFSET(queue_zone_id) \
2154 (IRO[7].base + ((queue_zone_id) * IRO[7].m1))
2155 #define USTORM_COMMON_QUEUE_CONS_SIZE (IRO[7].size)
2156 #define MSTORM_QUEUE_STAT_OFFSET(stat_counter_id) \
2157 (IRO[18].base + ((stat_counter_id) * IRO[18].m1))
2158 #define MSTORM_QUEUE_STAT_SIZE (IRO[18].size)
2159 #define MSTORM_ETH_PF_PRODS_OFFSET(queue_id) \
2160 (IRO[19].base + ((queue_id) * IRO[19].m1))
2161 #define MSTORM_ETH_PF_PRODS_SIZE (IRO[19].size)
2162 #define MSTORM_TPA_TIMEOUT_US_OFFSET (IRO[20].base)
2163 #define MSTORM_TPA_TIMEOUT_US_SIZE (IRO[20].size)
2164 #define MSTORM_ETH_PF_STAT_OFFSET(pf_id) \
2165 (IRO[21].base + ((pf_id) * IRO[21].m1))
2166 #define MSTORM_ETH_PF_STAT_SIZE (IRO[21].size)
2167 #define USTORM_QUEUE_STAT_OFFSET(stat_counter_id) \
2168 (IRO[22].base + ((stat_counter_id) * IRO[22].m1))
2169 #define USTORM_QUEUE_STAT_SIZE (IRO[22].size)
2170 #define USTORM_ETH_PF_STAT_OFFSET(pf_id) \
2171 (IRO[23].base + ((pf_id) * IRO[23].m1))
2172 #define USTORM_ETH_PF_STAT_SIZE (IRO[23].size)
2173 #define PSTORM_QUEUE_STAT_OFFSET(stat_counter_id) \
2174 (IRO[24].base + ((stat_counter_id) * IRO[24].m1))
2175 #define PSTORM_QUEUE_STAT_SIZE (IRO[24].size)
2176 #define PSTORM_ETH_PF_STAT_OFFSET(pf_id) \
2177 (IRO[25].base + ((pf_id) * IRO[25].m1))
2178 #define PSTORM_ETH_PF_STAT_SIZE (IRO[25].size)
2179 #define PSTORM_CTL_FRAME_ETHTYPE_OFFSET(ethtype) \
2180 (IRO[26].base + ((ethtype) * IRO[26].m1))
2181 #define PSTORM_CTL_FRAME_ETHTYPE_SIZE (IRO[26].size)
2182 #define TSTORM_ETH_PRS_INPUT_OFFSET (IRO[27].base)
2183 #define TSTORM_ETH_PRS_INPUT_SIZE (IRO[27].size)
2184 #define ETH_RX_RATE_LIMIT_OFFSET(pf_id) \
2185 (IRO[28].base + ((pf_id) * IRO[28].m1))
2186 #define ETH_RX_RATE_LIMIT_SIZE (IRO[28].size)
2187 #define XSTORM_ETH_QUEUE_ZONE_OFFSET(queue_id) \
2188 (IRO[29].base + ((queue_id) * IRO[29].m1))
2189 #define XSTORM_ETH_QUEUE_ZONE_SIZE (IRO[29].size)
2190
2191 static const struct iro iro_arr[46] = {
2192 {0x0, 0x0, 0x0, 0x0, 0x8},
2193 {0x4cb0, 0x78, 0x0, 0x0, 0x78},
2194 {0x6318, 0x20, 0x0, 0x0, 0x20},
2195 {0xb00, 0x8, 0x0, 0x0, 0x4},
2196 {0xa80, 0x8, 0x0, 0x0, 0x4},
2197 {0x0, 0x8, 0x0, 0x0, 0x2},
2198 {0x80, 0x8, 0x0, 0x0, 0x4},
2199 {0x84, 0x8, 0x0, 0x0, 0x2},
2200 {0x4bc0, 0x0, 0x0, 0x0, 0x78},
2201 {0x3df0, 0x0, 0x0, 0x0, 0x78},
2202 {0x29b0, 0x0, 0x0, 0x0, 0x78},
2203 {0x4c38, 0x0, 0x0, 0x0, 0x78},
2204 {0x4a48, 0x0, 0x0, 0x0, 0x78},
2205 {0x7e48, 0x0, 0x0, 0x0, 0x78},
2206 {0xa28, 0x8, 0x0, 0x0, 0x8},
2207 {0x60f8, 0x10, 0x0, 0x0, 0x10},
2208 {0xb820, 0x30, 0x0, 0x0, 0x30},
2209 {0x95b8, 0x30, 0x0, 0x0, 0x30},
2210 {0x4c18, 0x80, 0x0, 0x0, 0x40},
2211 {0x1f8, 0x4, 0x0, 0x0, 0x4},
2212 {0xc9a8, 0x0, 0x0, 0x0, 0x4},
2213 {0x4c58, 0x80, 0x0, 0x0, 0x20},
2214 {0x8050, 0x40, 0x0, 0x0, 0x30},
2215 {0xe770, 0x60, 0x0, 0x0, 0x60},
2216 {0x2b48, 0x80, 0x0, 0x0, 0x38},
2217 {0xdf88, 0x78, 0x0, 0x0, 0x78},
2218 {0x1f8, 0x4, 0x0, 0x0, 0x4},
2219 {0xacf0, 0x0, 0x0, 0x0, 0xf0},
2220 {0xade0, 0x8, 0x0, 0x0, 0x8},
2221 {0x1f8, 0x8, 0x0, 0x0, 0x8},
2222 {0xac0, 0x8, 0x0, 0x0, 0x8},
2223 {0x2578, 0x8, 0x0, 0x0, 0x8},
2224 {0x24f8, 0x8, 0x0, 0x0, 0x8},
2225 {0x0, 0x8, 0x0, 0x0, 0x8},
2226 {0x200, 0x10, 0x8, 0x0, 0x8},
2227 {0xb78, 0x10, 0x8, 0x0, 0x2},
2228 {0xd888, 0x38, 0x0, 0x0, 0x24},
2229 {0x12120, 0x10, 0x0, 0x0, 0x8},
2230 {0x11b20, 0x38, 0x0, 0x0, 0x18},
2231 {0xa8c0, 0x30, 0x0, 0x0, 0x10},
2232 {0x86f8, 0x28, 0x0, 0x0, 0x18},
2233 {0xeff8, 0x10, 0x0, 0x0, 0x10},
2234 {0xdd08, 0x48, 0x0, 0x0, 0x38},
2235 {0xf460, 0x20, 0x0, 0x0, 0x20},
2236 {0x2b80, 0x80, 0x0, 0x0, 0x10},
2237 {0x5000, 0x10, 0x0, 0x0, 0x10},
2238 };
2239
2240 /* Runtime array offsets */
2241 #define DORQ_REG_PF_MAX_ICID_0_RT_OFFSET 0
2242 #define DORQ_REG_PF_MAX_ICID_1_RT_OFFSET 1
2243 #define DORQ_REG_PF_MAX_ICID_2_RT_OFFSET 2
2244 #define DORQ_REG_PF_MAX_ICID_3_RT_OFFSET 3
2245 #define DORQ_REG_PF_MAX_ICID_4_RT_OFFSET 4
2246 #define DORQ_REG_PF_MAX_ICID_5_RT_OFFSET 5
2247 #define DORQ_REG_PF_MAX_ICID_6_RT_OFFSET 6
2248 #define DORQ_REG_PF_MAX_ICID_7_RT_OFFSET 7
2249 #define DORQ_REG_VF_MAX_ICID_0_RT_OFFSET 8
2250 #define DORQ_REG_VF_MAX_ICID_1_RT_OFFSET 9
2251 #define DORQ_REG_VF_MAX_ICID_2_RT_OFFSET 10
2252 #define DORQ_REG_VF_MAX_ICID_3_RT_OFFSET 11
2253 #define DORQ_REG_VF_MAX_ICID_4_RT_OFFSET 12
2254 #define DORQ_REG_VF_MAX_ICID_5_RT_OFFSET 13
2255 #define DORQ_REG_VF_MAX_ICID_6_RT_OFFSET 14
2256 #define DORQ_REG_VF_MAX_ICID_7_RT_OFFSET 15
2257 #define DORQ_REG_PF_WAKE_ALL_RT_OFFSET 16
2258 #define DORQ_REG_TAG1_ETHERTYPE_RT_OFFSET 17
2259 #define IGU_REG_PF_CONFIGURATION_RT_OFFSET 18
2260 #define IGU_REG_VF_CONFIGURATION_RT_OFFSET 19
2261 #define IGU_REG_ATTN_MSG_ADDR_L_RT_OFFSET 20
2262 #define IGU_REG_ATTN_MSG_ADDR_H_RT_OFFSET 21
2263 #define IGU_REG_LEADING_EDGE_LATCH_RT_OFFSET 22
2264 #define IGU_REG_TRAILING_EDGE_LATCH_RT_OFFSET 23
2265 #define CAU_REG_CQE_AGG_UNIT_SIZE_RT_OFFSET 24
2266 #define CAU_REG_SB_VAR_MEMORY_RT_OFFSET 761
2267 #define CAU_REG_SB_VAR_MEMORY_RT_SIZE 736
2268 #define CAU_REG_SB_VAR_MEMORY_RT_OFFSET 761
2269 #define CAU_REG_SB_VAR_MEMORY_RT_SIZE 736
2270 #define CAU_REG_SB_ADDR_MEMORY_RT_OFFSET 1497
2271 #define CAU_REG_SB_ADDR_MEMORY_RT_SIZE 736
2272 #define CAU_REG_PI_MEMORY_RT_OFFSET 2233
2273 #define CAU_REG_PI_MEMORY_RT_SIZE 4416
2274 #define PRS_REG_SEARCH_RESP_INITIATOR_TYPE_RT_OFFSET 6649
2275 #define PRS_REG_TASK_ID_MAX_INITIATOR_PF_RT_OFFSET 6650
2276 #define PRS_REG_TASK_ID_MAX_INITIATOR_VF_RT_OFFSET 6651
2277 #define PRS_REG_TASK_ID_MAX_TARGET_PF_RT_OFFSET 6652
2278 #define PRS_REG_TASK_ID_MAX_TARGET_VF_RT_OFFSET 6653
2279 #define PRS_REG_SEARCH_TCP_RT_OFFSET 6654
2280 #define PRS_REG_SEARCH_FCOE_RT_OFFSET 6655
2281 #define PRS_REG_SEARCH_ROCE_RT_OFFSET 6656
2282 #define PRS_REG_ROCE_DEST_QP_MAX_VF_RT_OFFSET 6657
2283 #define PRS_REG_ROCE_DEST_QP_MAX_PF_RT_OFFSET 6658
2284 #define PRS_REG_SEARCH_OPENFLOW_RT_OFFSET 6659
2285 #define PRS_REG_SEARCH_NON_IP_AS_OPENFLOW_RT_OFFSET 6660
2286 #define PRS_REG_OPENFLOW_SUPPORT_ONLY_KNOWN_OVER_IP_RT_OFFSET 6661
2287 #define PRS_REG_OPENFLOW_SEARCH_KEY_MASK_RT_OFFSET 6662
2288 #define PRS_REG_TAG_ETHERTYPE_0_RT_OFFSET 6663
2289 #define PRS_REG_LIGHT_L2_ETHERTYPE_EN_RT_OFFSET 6664
2290 #define SRC_REG_FIRSTFREE_RT_OFFSET 6665
2291 #define SRC_REG_FIRSTFREE_RT_SIZE 2
2292 #define SRC_REG_LASTFREE_RT_OFFSET 6667
2293 #define SRC_REG_LASTFREE_RT_SIZE 2
2294 #define SRC_REG_COUNTFREE_RT_OFFSET 6669
2295 #define SRC_REG_NUMBER_HASH_BITS_RT_OFFSET 6670
2296 #define PSWRQ2_REG_CDUT_P_SIZE_RT_OFFSET 6671
2297 #define PSWRQ2_REG_CDUC_P_SIZE_RT_OFFSET 6672
2298 #define PSWRQ2_REG_TM_P_SIZE_RT_OFFSET 6673
2299 #define PSWRQ2_REG_QM_P_SIZE_RT_OFFSET 6674
2300 #define PSWRQ2_REG_SRC_P_SIZE_RT_OFFSET 6675
2301 #define PSWRQ2_REG_TSDM_P_SIZE_RT_OFFSET 6676
2302 #define PSWRQ2_REG_TM_FIRST_ILT_RT_OFFSET 6677
2303 #define PSWRQ2_REG_TM_LAST_ILT_RT_OFFSET 6678
2304 #define PSWRQ2_REG_QM_FIRST_ILT_RT_OFFSET 6679
2305 #define PSWRQ2_REG_QM_LAST_ILT_RT_OFFSET 6680
2306 #define PSWRQ2_REG_SRC_FIRST_ILT_RT_OFFSET 6681
2307 #define PSWRQ2_REG_SRC_LAST_ILT_RT_OFFSET 6682
2308 #define PSWRQ2_REG_CDUC_FIRST_ILT_RT_OFFSET 6683
2309 #define PSWRQ2_REG_CDUC_LAST_ILT_RT_OFFSET 6684
2310 #define PSWRQ2_REG_CDUT_FIRST_ILT_RT_OFFSET 6685
2311 #define PSWRQ2_REG_CDUT_LAST_ILT_RT_OFFSET 6686
2312 #define PSWRQ2_REG_TSDM_FIRST_ILT_RT_OFFSET 6687
2313 #define PSWRQ2_REG_TSDM_LAST_ILT_RT_OFFSET 6688
2314 #define PSWRQ2_REG_TM_NUMBER_OF_PF_BLOCKS_RT_OFFSET 6689
2315 #define PSWRQ2_REG_CDUT_NUMBER_OF_PF_BLOCKS_RT_OFFSET 6690
2316 #define PSWRQ2_REG_CDUC_NUMBER_OF_PF_BLOCKS_RT_OFFSET 6691
2317 #define PSWRQ2_REG_TM_VF_BLOCKS_RT_OFFSET 6692
2318 #define PSWRQ2_REG_CDUT_VF_BLOCKS_RT_OFFSET 6693
2319 #define PSWRQ2_REG_CDUC_VF_BLOCKS_RT_OFFSET 6694
2320 #define PSWRQ2_REG_TM_BLOCKS_FACTOR_RT_OFFSET 6695
2321 #define PSWRQ2_REG_CDUT_BLOCKS_FACTOR_RT_OFFSET 6696
2322 #define PSWRQ2_REG_CDUC_BLOCKS_FACTOR_RT_OFFSET 6697
2323 #define PSWRQ2_REG_VF_BASE_RT_OFFSET 6698
2324 #define PSWRQ2_REG_VF_LAST_ILT_RT_OFFSET 6699
2325 #define PSWRQ2_REG_WR_MBS0_RT_OFFSET 6700
2326 #define PSWRQ2_REG_RD_MBS0_RT_OFFSET 6701
2327 #define PSWRQ2_REG_DRAM_ALIGN_WR_RT_OFFSET 6702
2328 #define PSWRQ2_REG_DRAM_ALIGN_RD_RT_OFFSET 6703
2329 #define PSWRQ2_REG_ILT_MEMORY_RT_OFFSET 6704
2330 #define PSWRQ2_REG_ILT_MEMORY_RT_SIZE 22000
2331 #define PGLUE_REG_B_VF_BASE_RT_OFFSET 28704
2332 #define PGLUE_REG_B_CACHE_LINE_SIZE_RT_OFFSET 28705
2333 #define PGLUE_REG_B_PF_BAR0_SIZE_RT_OFFSET 28706
2334 #define PGLUE_REG_B_PF_BAR1_SIZE_RT_OFFSET 28707
2335 #define PGLUE_REG_B_VF_BAR1_SIZE_RT_OFFSET 28708
2336 #define TM_REG_VF_ENABLE_CONN_RT_OFFSET 28709
2337 #define TM_REG_PF_ENABLE_CONN_RT_OFFSET 28710
2338 #define TM_REG_PF_ENABLE_TASK_RT_OFFSET 28711
2339 #define TM_REG_GROUP_SIZE_RESOLUTION_CONN_RT_OFFSET 28712
2340 #define TM_REG_GROUP_SIZE_RESOLUTION_TASK_RT_OFFSET 28713
2341 #define TM_REG_CONFIG_CONN_MEM_RT_OFFSET 28714
2342 #define TM_REG_CONFIG_CONN_MEM_RT_SIZE 416
2343 #define TM_REG_CONFIG_TASK_MEM_RT_OFFSET 29130
2344 #define TM_REG_CONFIG_TASK_MEM_RT_SIZE 512
2345 #define QM_REG_MAXPQSIZE_0_RT_OFFSET 29642
2346 #define QM_REG_MAXPQSIZE_1_RT_OFFSET 29643
2347 #define QM_REG_MAXPQSIZE_2_RT_OFFSET 29644
2348 #define QM_REG_MAXPQSIZETXSEL_0_RT_OFFSET 29645
2349 #define QM_REG_MAXPQSIZETXSEL_1_RT_OFFSET 29646
2350 #define QM_REG_MAXPQSIZETXSEL_2_RT_OFFSET 29647
2351 #define QM_REG_MAXPQSIZETXSEL_3_RT_OFFSET 29648
2352 #define QM_REG_MAXPQSIZETXSEL_4_RT_OFFSET 29649
2353 #define QM_REG_MAXPQSIZETXSEL_5_RT_OFFSET 29650
2354 #define QM_REG_MAXPQSIZETXSEL_6_RT_OFFSET 29651
2355 #define QM_REG_MAXPQSIZETXSEL_7_RT_OFFSET 29652
2356 #define QM_REG_MAXPQSIZETXSEL_8_RT_OFFSET 29653
2357 #define QM_REG_MAXPQSIZETXSEL_9_RT_OFFSET 29654
2358 #define QM_REG_MAXPQSIZETXSEL_10_RT_OFFSET 29655
2359 #define QM_REG_MAXPQSIZETXSEL_11_RT_OFFSET 29656
2360 #define QM_REG_MAXPQSIZETXSEL_12_RT_OFFSET 29657
2361 #define QM_REG_MAXPQSIZETXSEL_13_RT_OFFSET 29658
2362 #define QM_REG_MAXPQSIZETXSEL_14_RT_OFFSET 29659
2363 #define QM_REG_MAXPQSIZETXSEL_15_RT_OFFSET 29660
2364 #define QM_REG_MAXPQSIZETXSEL_16_RT_OFFSET 29661
2365 #define QM_REG_MAXPQSIZETXSEL_17_RT_OFFSET 29662
2366 #define QM_REG_MAXPQSIZETXSEL_18_RT_OFFSET 29663
2367 #define QM_REG_MAXPQSIZETXSEL_19_RT_OFFSET 29664
2368 #define QM_REG_MAXPQSIZETXSEL_20_RT_OFFSET 29665
2369 #define QM_REG_MAXPQSIZETXSEL_21_RT_OFFSET 29666
2370 #define QM_REG_MAXPQSIZETXSEL_22_RT_OFFSET 29667
2371 #define QM_REG_MAXPQSIZETXSEL_23_RT_OFFSET 29668
2372 #define QM_REG_MAXPQSIZETXSEL_24_RT_OFFSET 29669
2373 #define QM_REG_MAXPQSIZETXSEL_25_RT_OFFSET 29670
2374 #define QM_REG_MAXPQSIZETXSEL_26_RT_OFFSET 29671
2375 #define QM_REG_MAXPQSIZETXSEL_27_RT_OFFSET 29672
2376 #define QM_REG_MAXPQSIZETXSEL_28_RT_OFFSET 29673
2377 #define QM_REG_MAXPQSIZETXSEL_29_RT_OFFSET 29674
2378 #define QM_REG_MAXPQSIZETXSEL_30_RT_OFFSET 29675
2379 #define QM_REG_MAXPQSIZETXSEL_31_RT_OFFSET 29676
2380 #define QM_REG_MAXPQSIZETXSEL_32_RT_OFFSET 29677
2381 #define QM_REG_MAXPQSIZETXSEL_33_RT_OFFSET 29678
2382 #define QM_REG_MAXPQSIZETXSEL_34_RT_OFFSET 29679
2383 #define QM_REG_MAXPQSIZETXSEL_35_RT_OFFSET 29680
2384 #define QM_REG_MAXPQSIZETXSEL_36_RT_OFFSET 29681
2385 #define QM_REG_MAXPQSIZETXSEL_37_RT_OFFSET 29682
2386 #define QM_REG_MAXPQSIZETXSEL_38_RT_OFFSET 29683
2387 #define QM_REG_MAXPQSIZETXSEL_39_RT_OFFSET 29684
2388 #define QM_REG_MAXPQSIZETXSEL_40_RT_OFFSET 29685
2389 #define QM_REG_MAXPQSIZETXSEL_41_RT_OFFSET 29686
2390 #define QM_REG_MAXPQSIZETXSEL_42_RT_OFFSET 29687
2391 #define QM_REG_MAXPQSIZETXSEL_43_RT_OFFSET 29688
2392 #define QM_REG_MAXPQSIZETXSEL_44_RT_OFFSET 29689
2393 #define QM_REG_MAXPQSIZETXSEL_45_RT_OFFSET 29690
2394 #define QM_REG_MAXPQSIZETXSEL_46_RT_OFFSET 29691
2395 #define QM_REG_MAXPQSIZETXSEL_47_RT_OFFSET 29692
2396 #define QM_REG_MAXPQSIZETXSEL_48_RT_OFFSET 29693
2397 #define QM_REG_MAXPQSIZETXSEL_49_RT_OFFSET 29694
2398 #define QM_REG_MAXPQSIZETXSEL_50_RT_OFFSET 29695
2399 #define QM_REG_MAXPQSIZETXSEL_51_RT_OFFSET 29696
2400 #define QM_REG_MAXPQSIZETXSEL_52_RT_OFFSET 29697
2401 #define QM_REG_MAXPQSIZETXSEL_53_RT_OFFSET 29698
2402 #define QM_REG_MAXPQSIZETXSEL_54_RT_OFFSET 29699
2403 #define QM_REG_MAXPQSIZETXSEL_55_RT_OFFSET 29700
2404 #define QM_REG_MAXPQSIZETXSEL_56_RT_OFFSET 29701
2405 #define QM_REG_MAXPQSIZETXSEL_57_RT_OFFSET 29702
2406 #define QM_REG_MAXPQSIZETXSEL_58_RT_OFFSET 29703
2407 #define QM_REG_MAXPQSIZETXSEL_59_RT_OFFSET 29704
2408 #define QM_REG_MAXPQSIZETXSEL_60_RT_OFFSET 29705
2409 #define QM_REG_MAXPQSIZETXSEL_61_RT_OFFSET 29706
2410 #define QM_REG_MAXPQSIZETXSEL_62_RT_OFFSET 29707
2411 #define QM_REG_MAXPQSIZETXSEL_63_RT_OFFSET 29708
2412 #define QM_REG_BASEADDROTHERPQ_RT_OFFSET 29709
2413 #define QM_REG_BASEADDROTHERPQ_RT_SIZE 128
2414 #define QM_REG_VOQCRDLINE_RT_OFFSET 29837
2415 #define QM_REG_VOQCRDLINE_RT_SIZE 20
2416 #define QM_REG_VOQINITCRDLINE_RT_OFFSET 29857
2417 #define QM_REG_VOQINITCRDLINE_RT_SIZE 20
2418 #define QM_REG_AFULLQMBYPTHRPFWFQ_RT_OFFSET 29877
2419 #define QM_REG_AFULLQMBYPTHRVPWFQ_RT_OFFSET 29878
2420 #define QM_REG_AFULLQMBYPTHRPFRL_RT_OFFSET 29879
2421 #define QM_REG_AFULLQMBYPTHRGLBLRL_RT_OFFSET 29880
2422 #define QM_REG_AFULLOPRTNSTCCRDMASK_RT_OFFSET 29881
2423 #define QM_REG_WRROTHERPQGRP_0_RT_OFFSET 29882
2424 #define QM_REG_WRROTHERPQGRP_1_RT_OFFSET 29883
2425 #define QM_REG_WRROTHERPQGRP_2_RT_OFFSET 29884
2426 #define QM_REG_WRROTHERPQGRP_3_RT_OFFSET 29885
2427 #define QM_REG_WRROTHERPQGRP_4_RT_OFFSET 29886
2428 #define QM_REG_WRROTHERPQGRP_5_RT_OFFSET 29887
2429 #define QM_REG_WRROTHERPQGRP_6_RT_OFFSET 29888
2430 #define QM_REG_WRROTHERPQGRP_7_RT_OFFSET 29889
2431 #define QM_REG_WRROTHERPQGRP_8_RT_OFFSET 29890
2432 #define QM_REG_WRROTHERPQGRP_9_RT_OFFSET 29891
2433 #define QM_REG_WRROTHERPQGRP_10_RT_OFFSET 29892
2434 #define QM_REG_WRROTHERPQGRP_11_RT_OFFSET 29893
2435 #define QM_REG_WRROTHERPQGRP_12_RT_OFFSET 29894
2436 #define QM_REG_WRROTHERPQGRP_13_RT_OFFSET 29895
2437 #define QM_REG_WRROTHERPQGRP_14_RT_OFFSET 29896
2438 #define QM_REG_WRROTHERPQGRP_15_RT_OFFSET 29897
2439 #define QM_REG_WRROTHERGRPWEIGHT_0_RT_OFFSET 29898
2440 #define QM_REG_WRROTHERGRPWEIGHT_1_RT_OFFSET 29899
2441 #define QM_REG_WRROTHERGRPWEIGHT_2_RT_OFFSET 29900
2442 #define QM_REG_WRROTHERGRPWEIGHT_3_RT_OFFSET 29901
2443 #define QM_REG_WRRTXGRPWEIGHT_0_RT_OFFSET 29902
2444 #define QM_REG_WRRTXGRPWEIGHT_1_RT_OFFSET 29903
2445 #define QM_REG_PQTX2PF_0_RT_OFFSET 29904
2446 #define QM_REG_PQTX2PF_1_RT_OFFSET 29905
2447 #define QM_REG_PQTX2PF_2_RT_OFFSET 29906
2448 #define QM_REG_PQTX2PF_3_RT_OFFSET 29907
2449 #define QM_REG_PQTX2PF_4_RT_OFFSET 29908
2450 #define QM_REG_PQTX2PF_5_RT_OFFSET 29909
2451 #define QM_REG_PQTX2PF_6_RT_OFFSET 29910
2452 #define QM_REG_PQTX2PF_7_RT_OFFSET 29911
2453 #define QM_REG_PQTX2PF_8_RT_OFFSET 29912
2454 #define QM_REG_PQTX2PF_9_RT_OFFSET 29913
2455 #define QM_REG_PQTX2PF_10_RT_OFFSET 29914
2456 #define QM_REG_PQTX2PF_11_RT_OFFSET 29915
2457 #define QM_REG_PQTX2PF_12_RT_OFFSET 29916
2458 #define QM_REG_PQTX2PF_13_RT_OFFSET 29917
2459 #define QM_REG_PQTX2PF_14_RT_OFFSET 29918
2460 #define QM_REG_PQTX2PF_15_RT_OFFSET 29919
2461 #define QM_REG_PQTX2PF_16_RT_OFFSET 29920
2462 #define QM_REG_PQTX2PF_17_RT_OFFSET 29921
2463 #define QM_REG_PQTX2PF_18_RT_OFFSET 29922
2464 #define QM_REG_PQTX2PF_19_RT_OFFSET 29923
2465 #define QM_REG_PQTX2PF_20_RT_OFFSET 29924
2466 #define QM_REG_PQTX2PF_21_RT_OFFSET 29925
2467 #define QM_REG_PQTX2PF_22_RT_OFFSET 29926
2468 #define QM_REG_PQTX2PF_23_RT_OFFSET 29927
2469 #define QM_REG_PQTX2PF_24_RT_OFFSET 29928
2470 #define QM_REG_PQTX2PF_25_RT_OFFSET 29929
2471 #define QM_REG_PQTX2PF_26_RT_OFFSET 29930
2472 #define QM_REG_PQTX2PF_27_RT_OFFSET 29931
2473 #define QM_REG_PQTX2PF_28_RT_OFFSET 29932
2474 #define QM_REG_PQTX2PF_29_RT_OFFSET 29933
2475 #define QM_REG_PQTX2PF_30_RT_OFFSET 29934
2476 #define QM_REG_PQTX2PF_31_RT_OFFSET 29935
2477 #define QM_REG_PQTX2PF_32_RT_OFFSET 29936
2478 #define QM_REG_PQTX2PF_33_RT_OFFSET 29937
2479 #define QM_REG_PQTX2PF_34_RT_OFFSET 29938
2480 #define QM_REG_PQTX2PF_35_RT_OFFSET 29939
2481 #define QM_REG_PQTX2PF_36_RT_OFFSET 29940
2482 #define QM_REG_PQTX2PF_37_RT_OFFSET 29941
2483 #define QM_REG_PQTX2PF_38_RT_OFFSET 29942
2484 #define QM_REG_PQTX2PF_39_RT_OFFSET 29943
2485 #define QM_REG_PQTX2PF_40_RT_OFFSET 29944
2486 #define QM_REG_PQTX2PF_41_RT_OFFSET 29945
2487 #define QM_REG_PQTX2PF_42_RT_OFFSET 29946
2488 #define QM_REG_PQTX2PF_43_RT_OFFSET 29947
2489 #define QM_REG_PQTX2PF_44_RT_OFFSET 29948
2490 #define QM_REG_PQTX2PF_45_RT_OFFSET 29949
2491 #define QM_REG_PQTX2PF_46_RT_OFFSET 29950
2492 #define QM_REG_PQTX2PF_47_RT_OFFSET 29951
2493 #define QM_REG_PQTX2PF_48_RT_OFFSET 29952
2494 #define QM_REG_PQTX2PF_49_RT_OFFSET 29953
2495 #define QM_REG_PQTX2PF_50_RT_OFFSET 29954
2496 #define QM_REG_PQTX2PF_51_RT_OFFSET 29955
2497 #define QM_REG_PQTX2PF_52_RT_OFFSET 29956
2498 #define QM_REG_PQTX2PF_53_RT_OFFSET 29957
2499 #define QM_REG_PQTX2PF_54_RT_OFFSET 29958
2500 #define QM_REG_PQTX2PF_55_RT_OFFSET 29959
2501 #define QM_REG_PQTX2PF_56_RT_OFFSET 29960
2502 #define QM_REG_PQTX2PF_57_RT_OFFSET 29961
2503 #define QM_REG_PQTX2PF_58_RT_OFFSET 29962
2504 #define QM_REG_PQTX2PF_59_RT_OFFSET 29963
2505 #define QM_REG_PQTX2PF_60_RT_OFFSET 29964
2506 #define QM_REG_PQTX2PF_61_RT_OFFSET 29965
2507 #define QM_REG_PQTX2PF_62_RT_OFFSET 29966
2508 #define QM_REG_PQTX2PF_63_RT_OFFSET 29967
2509 #define QM_REG_PQOTHER2PF_0_RT_OFFSET 29968
2510 #define QM_REG_PQOTHER2PF_1_RT_OFFSET 29969
2511 #define QM_REG_PQOTHER2PF_2_RT_OFFSET 29970
2512 #define QM_REG_PQOTHER2PF_3_RT_OFFSET 29971
2513 #define QM_REG_PQOTHER2PF_4_RT_OFFSET 29972
2514 #define QM_REG_PQOTHER2PF_5_RT_OFFSET 29973
2515 #define QM_REG_PQOTHER2PF_6_RT_OFFSET 29974
2516 #define QM_REG_PQOTHER2PF_7_RT_OFFSET 29975
2517 #define QM_REG_PQOTHER2PF_8_RT_OFFSET 29976
2518 #define QM_REG_PQOTHER2PF_9_RT_OFFSET 29977
2519 #define QM_REG_PQOTHER2PF_10_RT_OFFSET 29978
2520 #define QM_REG_PQOTHER2PF_11_RT_OFFSET 29979
2521 #define QM_REG_PQOTHER2PF_12_RT_OFFSET 29980
2522 #define QM_REG_PQOTHER2PF_13_RT_OFFSET 29981
2523 #define QM_REG_PQOTHER2PF_14_RT_OFFSET 29982
2524 #define QM_REG_PQOTHER2PF_15_RT_OFFSET 29983
2525 #define QM_REG_RLGLBLPERIOD_0_RT_OFFSET 29984
2526 #define QM_REG_RLGLBLPERIOD_1_RT_OFFSET 29985
2527 #define QM_REG_RLGLBLPERIODTIMER_0_RT_OFFSET 29986
2528 #define QM_REG_RLGLBLPERIODTIMER_1_RT_OFFSET 29987
2529 #define QM_REG_RLGLBLPERIODSEL_0_RT_OFFSET 29988
2530 #define QM_REG_RLGLBLPERIODSEL_1_RT_OFFSET 29989
2531 #define QM_REG_RLGLBLPERIODSEL_2_RT_OFFSET 29990
2532 #define QM_REG_RLGLBLPERIODSEL_3_RT_OFFSET 29991
2533 #define QM_REG_RLGLBLPERIODSEL_4_RT_OFFSET 29992
2534 #define QM_REG_RLGLBLPERIODSEL_5_RT_OFFSET 29993
2535 #define QM_REG_RLGLBLPERIODSEL_6_RT_OFFSET 29994
2536 #define QM_REG_RLGLBLPERIODSEL_7_RT_OFFSET 29995
2537 #define QM_REG_RLGLBLINCVAL_RT_OFFSET 29996
2538 #define QM_REG_RLGLBLINCVAL_RT_SIZE 256
2539 #define QM_REG_RLGLBLUPPERBOUND_RT_OFFSET 30252
2540 #define QM_REG_RLGLBLUPPERBOUND_RT_SIZE 256
2541 #define QM_REG_RLGLBLCRD_RT_OFFSET 30508
2542 #define QM_REG_RLGLBLCRD_RT_SIZE 256
2543 #define QM_REG_RLGLBLENABLE_RT_OFFSET 30764
2544 #define QM_REG_RLPFPERIOD_RT_OFFSET 30765
2545 #define QM_REG_RLPFPERIODTIMER_RT_OFFSET 30766
2546 #define QM_REG_RLPFINCVAL_RT_OFFSET 30767
2547 #define QM_REG_RLPFINCVAL_RT_SIZE 16
2548 #define QM_REG_RLPFUPPERBOUND_RT_OFFSET 30783
2549 #define QM_REG_RLPFUPPERBOUND_RT_SIZE 16
2550 #define QM_REG_RLPFCRD_RT_OFFSET 30799
2551 #define QM_REG_RLPFCRD_RT_SIZE 16
2552 #define QM_REG_RLPFENABLE_RT_OFFSET 30815
2553 #define QM_REG_RLPFVOQENABLE_RT_OFFSET 30816
2554 #define QM_REG_WFQPFWEIGHT_RT_OFFSET 30817
2555 #define QM_REG_WFQPFWEIGHT_RT_SIZE 16
2556 #define QM_REG_WFQPFUPPERBOUND_RT_OFFSET 30833
2557 #define QM_REG_WFQPFUPPERBOUND_RT_SIZE 16
2558 #define QM_REG_WFQPFCRD_RT_OFFSET 30849
2559 #define QM_REG_WFQPFCRD_RT_SIZE 160
2560 #define QM_REG_WFQPFENABLE_RT_OFFSET 31009
2561 #define QM_REG_WFQVPENABLE_RT_OFFSET 31010
2562 #define QM_REG_BASEADDRTXPQ_RT_OFFSET 31011
2563 #define QM_REG_BASEADDRTXPQ_RT_SIZE 512
2564 #define QM_REG_TXPQMAP_RT_OFFSET 31523
2565 #define QM_REG_TXPQMAP_RT_SIZE 512
2566 #define QM_REG_WFQVPWEIGHT_RT_OFFSET 32035
2567 #define QM_REG_WFQVPWEIGHT_RT_SIZE 512
2568 #define QM_REG_WFQVPCRD_RT_OFFSET 32547
2569 #define QM_REG_WFQVPCRD_RT_SIZE 512
2570 #define QM_REG_WFQVPMAP_RT_OFFSET 33059
2571 #define QM_REG_WFQVPMAP_RT_SIZE 512
2572 #define QM_REG_WFQPFCRD_MSB_RT_OFFSET 33571
2573 #define QM_REG_WFQPFCRD_MSB_RT_SIZE 160
2574 #define NIG_REG_TAG_ETHERTYPE_0_RT_OFFSET 33731
2575 #define NIG_REG_OUTER_TAG_VALUE_LIST0_RT_OFFSET 33732
2576 #define NIG_REG_OUTER_TAG_VALUE_LIST1_RT_OFFSET 33733
2577 #define NIG_REG_OUTER_TAG_VALUE_LIST2_RT_OFFSET 33734
2578 #define NIG_REG_OUTER_TAG_VALUE_LIST3_RT_OFFSET 33735
2579 #define NIG_REG_OUTER_TAG_VALUE_MASK_RT_OFFSET 33736
2580 #define NIG_REG_LLH_FUNC_TAGMAC_CLS_TYPE_RT_OFFSET 33737
2581 #define NIG_REG_LLH_FUNC_TAG_EN_RT_OFFSET 33738
2582 #define NIG_REG_LLH_FUNC_TAG_EN_RT_SIZE 4
2583 #define NIG_REG_LLH_FUNC_TAG_HDR_SEL_RT_OFFSET 33742
2584 #define NIG_REG_LLH_FUNC_TAG_HDR_SEL_RT_SIZE 4
2585 #define NIG_REG_LLH_FUNC_TAG_VALUE_RT_OFFSET 33746
2586 #define NIG_REG_LLH_FUNC_TAG_VALUE_RT_SIZE 4
2587 #define NIG_REG_LLH_FUNC_NO_TAG_RT_OFFSET 33750
2588 #define NIG_REG_LLH_FUNC_FILTER_VALUE_RT_OFFSET 33751
2589 #define NIG_REG_LLH_FUNC_FILTER_VALUE_RT_SIZE 32
2590 #define NIG_REG_LLH_FUNC_FILTER_EN_RT_OFFSET 33783
2591 #define NIG_REG_LLH_FUNC_FILTER_EN_RT_SIZE 16
2592 #define NIG_REG_LLH_FUNC_FILTER_MODE_RT_OFFSET 33799
2593 #define NIG_REG_LLH_FUNC_FILTER_MODE_RT_SIZE 16
2594 #define NIG_REG_LLH_FUNC_FILTER_PROTOCOL_TYPE_RT_OFFSET 33815
2595 #define NIG_REG_LLH_FUNC_FILTER_PROTOCOL_TYPE_RT_SIZE 16
2596 #define NIG_REG_LLH_FUNC_FILTER_HDR_SEL_RT_OFFSET 33831
2597 #define NIG_REG_LLH_FUNC_FILTER_HDR_SEL_RT_SIZE 16
2598 #define NIG_REG_TX_EDPM_CTRL_RT_OFFSET 33847
2599 #define NIG_REG_ROCE_DUPLICATE_TO_HOST_RT_OFFSET 33848
2600 #define CDU_REG_CID_ADDR_PARAMS_RT_OFFSET 33849
2601 #define CDU_REG_SEGMENT0_PARAMS_RT_OFFSET 33850
2602 #define CDU_REG_SEGMENT1_PARAMS_RT_OFFSET 33851
2603 #define CDU_REG_PF_SEG0_TYPE_OFFSET_RT_OFFSET 33852
2604 #define CDU_REG_PF_SEG1_TYPE_OFFSET_RT_OFFSET 33853
2605 #define CDU_REG_PF_SEG2_TYPE_OFFSET_RT_OFFSET 33854
2606 #define CDU_REG_PF_SEG3_TYPE_OFFSET_RT_OFFSET 33855
2607 #define CDU_REG_PF_FL_SEG0_TYPE_OFFSET_RT_OFFSET 33856
2608 #define CDU_REG_PF_FL_SEG1_TYPE_OFFSET_RT_OFFSET 33857
2609 #define CDU_REG_PF_FL_SEG2_TYPE_OFFSET_RT_OFFSET 33858
2610 #define CDU_REG_PF_FL_SEG3_TYPE_OFFSET_RT_OFFSET 33859
2611 #define CDU_REG_VF_SEG_TYPE_OFFSET_RT_OFFSET 33860
2612 #define CDU_REG_VF_FL_SEG_TYPE_OFFSET_RT_OFFSET 33861
2613 #define PBF_REG_TAG_ETHERTYPE_0_RT_OFFSET 33862
2614 #define PBF_REG_BTB_SHARED_AREA_SIZE_RT_OFFSET 33863
2615 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ0_RT_OFFSET 33864
2616 #define PBF_REG_BTB_GUARANTEED_VOQ0_RT_OFFSET 33865
2617 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ0_RT_OFFSET 33866
2618 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ1_RT_OFFSET 33867
2619 #define PBF_REG_BTB_GUARANTEED_VOQ1_RT_OFFSET 33868
2620 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ1_RT_OFFSET 33869
2621 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ2_RT_OFFSET 33870
2622 #define PBF_REG_BTB_GUARANTEED_VOQ2_RT_OFFSET 33871
2623 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ2_RT_OFFSET 33872
2624 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ3_RT_OFFSET 33873
2625 #define PBF_REG_BTB_GUARANTEED_VOQ3_RT_OFFSET 33874
2626 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ3_RT_OFFSET 33875
2627 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ4_RT_OFFSET 33876
2628 #define PBF_REG_BTB_GUARANTEED_VOQ4_RT_OFFSET 33877
2629 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ4_RT_OFFSET 33878
2630 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ5_RT_OFFSET 33879
2631 #define PBF_REG_BTB_GUARANTEED_VOQ5_RT_OFFSET 33880
2632 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ5_RT_OFFSET 33881
2633 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ6_RT_OFFSET 33882
2634 #define PBF_REG_BTB_GUARANTEED_VOQ6_RT_OFFSET 33883
2635 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ6_RT_OFFSET 33884
2636 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ7_RT_OFFSET 33885
2637 #define PBF_REG_BTB_GUARANTEED_VOQ7_RT_OFFSET 33886
2638 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ7_RT_OFFSET 33887
2639 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ8_RT_OFFSET 33888
2640 #define PBF_REG_BTB_GUARANTEED_VOQ8_RT_OFFSET 33889
2641 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ8_RT_OFFSET 33890
2642 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ9_RT_OFFSET 33891
2643 #define PBF_REG_BTB_GUARANTEED_VOQ9_RT_OFFSET 33892
2644 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ9_RT_OFFSET 33893
2645 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ10_RT_OFFSET 33894
2646 #define PBF_REG_BTB_GUARANTEED_VOQ10_RT_OFFSET 33895
2647 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ10_RT_OFFSET 33896
2648 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ11_RT_OFFSET 33897
2649 #define PBF_REG_BTB_GUARANTEED_VOQ11_RT_OFFSET 33898
2650 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ11_RT_OFFSET 33899
2651 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ12_RT_OFFSET 33900
2652 #define PBF_REG_BTB_GUARANTEED_VOQ12_RT_OFFSET 33901
2653 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ12_RT_OFFSET 33902
2654 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ13_RT_OFFSET 33903
2655 #define PBF_REG_BTB_GUARANTEED_VOQ13_RT_OFFSET 33904
2656 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ13_RT_OFFSET 33905
2657 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ14_RT_OFFSET 33906
2658 #define PBF_REG_BTB_GUARANTEED_VOQ14_RT_OFFSET 33907
2659 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ14_RT_OFFSET 33908
2660 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ15_RT_OFFSET 33909
2661 #define PBF_REG_BTB_GUARANTEED_VOQ15_RT_OFFSET 33910
2662 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ15_RT_OFFSET 33911
2663 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ16_RT_OFFSET 33912
2664 #define PBF_REG_BTB_GUARANTEED_VOQ16_RT_OFFSET 33913
2665 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ16_RT_OFFSET 33914
2666 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ17_RT_OFFSET 33915
2667 #define PBF_REG_BTB_GUARANTEED_VOQ17_RT_OFFSET 33916
2668 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ17_RT_OFFSET 33917
2669 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ18_RT_OFFSET 33918
2670 #define PBF_REG_BTB_GUARANTEED_VOQ18_RT_OFFSET 33919
2671 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ18_RT_OFFSET 33920
2672 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ19_RT_OFFSET 33921
2673 #define PBF_REG_BTB_GUARANTEED_VOQ19_RT_OFFSET 33922
2674 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ19_RT_OFFSET 33923
2675 #define XCM_REG_CON_PHY_Q3_RT_OFFSET 33924
2676
2677 #define RUNTIME_ARRAY_SIZE 33925
2678
2679 /* The eth storm context for the Tstorm */
2680 struct tstorm_eth_conn_st_ctx {
2681 __le32 reserved[4];
2682 };
2683
2684 /* The eth storm context for the Pstorm */
2685 struct pstorm_eth_conn_st_ctx {
2686 __le32 reserved[8];
2687 };
2688
2689 /* The eth storm context for the Xstorm */
2690 struct xstorm_eth_conn_st_ctx {
2691 __le32 reserved[60];
2692 };
2693
2694 struct xstorm_eth_conn_ag_ctx {
2695 u8 reserved0;
2696 u8 eth_state;
2697 u8 flags0;
2698 #define XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
2699 #define XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
2700 #define XSTORM_ETH_CONN_AG_CTX_RESERVED1_MASK 0x1
2701 #define XSTORM_ETH_CONN_AG_CTX_RESERVED1_SHIFT 1
2702 #define XSTORM_ETH_CONN_AG_CTX_RESERVED2_MASK 0x1
2703 #define XSTORM_ETH_CONN_AG_CTX_RESERVED2_SHIFT 2
2704 #define XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
2705 #define XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
2706 #define XSTORM_ETH_CONN_AG_CTX_RESERVED3_MASK 0x1
2707 #define XSTORM_ETH_CONN_AG_CTX_RESERVED3_SHIFT 4
2708 #define XSTORM_ETH_CONN_AG_CTX_RESERVED4_MASK 0x1
2709 #define XSTORM_ETH_CONN_AG_CTX_RESERVED4_SHIFT 5
2710 #define XSTORM_ETH_CONN_AG_CTX_RESERVED5_MASK 0x1
2711 #define XSTORM_ETH_CONN_AG_CTX_RESERVED5_SHIFT 6
2712 #define XSTORM_ETH_CONN_AG_CTX_RESERVED6_MASK 0x1
2713 #define XSTORM_ETH_CONN_AG_CTX_RESERVED6_SHIFT 7
2714 u8 flags1;
2715 #define XSTORM_ETH_CONN_AG_CTX_RESERVED7_MASK 0x1
2716 #define XSTORM_ETH_CONN_AG_CTX_RESERVED7_SHIFT 0
2717 #define XSTORM_ETH_CONN_AG_CTX_RESERVED8_MASK 0x1
2718 #define XSTORM_ETH_CONN_AG_CTX_RESERVED8_SHIFT 1
2719 #define XSTORM_ETH_CONN_AG_CTX_RESERVED9_MASK 0x1
2720 #define XSTORM_ETH_CONN_AG_CTX_RESERVED9_SHIFT 2
2721 #define XSTORM_ETH_CONN_AG_CTX_BIT11_MASK 0x1
2722 #define XSTORM_ETH_CONN_AG_CTX_BIT11_SHIFT 3
2723 #define XSTORM_ETH_CONN_AG_CTX_BIT12_MASK 0x1
2724 #define XSTORM_ETH_CONN_AG_CTX_BIT12_SHIFT 4
2725 #define XSTORM_ETH_CONN_AG_CTX_BIT13_MASK 0x1
2726 #define XSTORM_ETH_CONN_AG_CTX_BIT13_SHIFT 5
2727 #define XSTORM_ETH_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1
2728 #define XSTORM_ETH_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6
2729 #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1
2730 #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7
2731 u8 flags2;
2732 #define XSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3
2733 #define XSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 0
2734 #define XSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3
2735 #define XSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 2
2736 #define XSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3
2737 #define XSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 4
2738 #define XSTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3
2739 #define XSTORM_ETH_CONN_AG_CTX_CF3_SHIFT 6
2740 u8 flags3;
2741 #define XSTORM_ETH_CONN_AG_CTX_CF4_MASK 0x3
2742 #define XSTORM_ETH_CONN_AG_CTX_CF4_SHIFT 0
2743 #define XSTORM_ETH_CONN_AG_CTX_CF5_MASK 0x3
2744 #define XSTORM_ETH_CONN_AG_CTX_CF5_SHIFT 2
2745 #define XSTORM_ETH_CONN_AG_CTX_CF6_MASK 0x3
2746 #define XSTORM_ETH_CONN_AG_CTX_CF6_SHIFT 4
2747 #define XSTORM_ETH_CONN_AG_CTX_CF7_MASK 0x3
2748 #define XSTORM_ETH_CONN_AG_CTX_CF7_SHIFT 6
2749 u8 flags4;
2750 #define XSTORM_ETH_CONN_AG_CTX_CF8_MASK 0x3
2751 #define XSTORM_ETH_CONN_AG_CTX_CF8_SHIFT 0
2752 #define XSTORM_ETH_CONN_AG_CTX_CF9_MASK 0x3
2753 #define XSTORM_ETH_CONN_AG_CTX_CF9_SHIFT 2
2754 #define XSTORM_ETH_CONN_AG_CTX_CF10_MASK 0x3
2755 #define XSTORM_ETH_CONN_AG_CTX_CF10_SHIFT 4
2756 #define XSTORM_ETH_CONN_AG_CTX_CF11_MASK 0x3
2757 #define XSTORM_ETH_CONN_AG_CTX_CF11_SHIFT 6
2758 u8 flags5;
2759 #define XSTORM_ETH_CONN_AG_CTX_CF12_MASK 0x3
2760 #define XSTORM_ETH_CONN_AG_CTX_CF12_SHIFT 0
2761 #define XSTORM_ETH_CONN_AG_CTX_CF13_MASK 0x3
2762 #define XSTORM_ETH_CONN_AG_CTX_CF13_SHIFT 2
2763 #define XSTORM_ETH_CONN_AG_CTX_CF14_MASK 0x3
2764 #define XSTORM_ETH_CONN_AG_CTX_CF14_SHIFT 4
2765 #define XSTORM_ETH_CONN_AG_CTX_CF15_MASK 0x3
2766 #define XSTORM_ETH_CONN_AG_CTX_CF15_SHIFT 6
2767 u8 flags6;
2768 #define XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_MASK 0x3
2769 #define XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_SHIFT 0
2770 #define XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_MASK 0x3
2771 #define XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_SHIFT 2
2772 #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_MASK 0x3
2773 #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_SHIFT 4
2774 #define XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_MASK 0x3
2775 #define XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_SHIFT 6
2776 u8 flags7;
2777 #define XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_MASK 0x3
2778 #define XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
2779 #define XSTORM_ETH_CONN_AG_CTX_RESERVED10_MASK 0x3
2780 #define XSTORM_ETH_CONN_AG_CTX_RESERVED10_SHIFT 2
2781 #define XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_MASK 0x3
2782 #define XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_SHIFT 4
2783 #define XSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1
2784 #define XSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 6
2785 #define XSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1
2786 #define XSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 7
2787 u8 flags8;
2788 #define XSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1
2789 #define XSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 0
2790 #define XSTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1
2791 #define XSTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 1
2792 #define XSTORM_ETH_CONN_AG_CTX_CF4EN_MASK 0x1
2793 #define XSTORM_ETH_CONN_AG_CTX_CF4EN_SHIFT 2
2794 #define XSTORM_ETH_CONN_AG_CTX_CF5EN_MASK 0x1
2795 #define XSTORM_ETH_CONN_AG_CTX_CF5EN_SHIFT 3
2796 #define XSTORM_ETH_CONN_AG_CTX_CF6EN_MASK 0x1
2797 #define XSTORM_ETH_CONN_AG_CTX_CF6EN_SHIFT 4
2798 #define XSTORM_ETH_CONN_AG_CTX_CF7EN_MASK 0x1
2799 #define XSTORM_ETH_CONN_AG_CTX_CF7EN_SHIFT 5
2800 #define XSTORM_ETH_CONN_AG_CTX_CF8EN_MASK 0x1
2801 #define XSTORM_ETH_CONN_AG_CTX_CF8EN_SHIFT 6
2802 #define XSTORM_ETH_CONN_AG_CTX_CF9EN_MASK 0x1
2803 #define XSTORM_ETH_CONN_AG_CTX_CF9EN_SHIFT 7
2804 u8 flags9;
2805 #define XSTORM_ETH_CONN_AG_CTX_CF10EN_MASK 0x1
2806 #define XSTORM_ETH_CONN_AG_CTX_CF10EN_SHIFT 0
2807 #define XSTORM_ETH_CONN_AG_CTX_CF11EN_MASK 0x1
2808 #define XSTORM_ETH_CONN_AG_CTX_CF11EN_SHIFT 1
2809 #define XSTORM_ETH_CONN_AG_CTX_CF12EN_MASK 0x1
2810 #define XSTORM_ETH_CONN_AG_CTX_CF12EN_SHIFT 2
2811 #define XSTORM_ETH_CONN_AG_CTX_CF13EN_MASK 0x1
2812 #define XSTORM_ETH_CONN_AG_CTX_CF13EN_SHIFT 3
2813 #define XSTORM_ETH_CONN_AG_CTX_CF14EN_MASK 0x1
2814 #define XSTORM_ETH_CONN_AG_CTX_CF14EN_SHIFT 4
2815 #define XSTORM_ETH_CONN_AG_CTX_CF15EN_MASK 0x1
2816 #define XSTORM_ETH_CONN_AG_CTX_CF15EN_SHIFT 5
2817 #define XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_MASK 0x1
2818 #define XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_SHIFT 6
2819 #define XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_EN_MASK 0x1
2820 #define XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_EN_SHIFT 7
2821 u8 flags10;
2822 #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_EN_MASK 0x1
2823 #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_EN_SHIFT 0
2824 #define XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1
2825 #define XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1
2826 #define XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1
2827 #define XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2
2828 #define XSTORM_ETH_CONN_AG_CTX_RESERVED11_MASK 0x1
2829 #define XSTORM_ETH_CONN_AG_CTX_RESERVED11_SHIFT 3
2830 #define XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
2831 #define XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
2832 #define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_MASK 0x1
2833 #define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_SHIFT 5
2834 #define XSTORM_ETH_CONN_AG_CTX_RESERVED12_MASK 0x1
2835 #define XSTORM_ETH_CONN_AG_CTX_RESERVED12_SHIFT 6
2836 #define XSTORM_ETH_CONN_AG_CTX_RESERVED13_MASK 0x1
2837 #define XSTORM_ETH_CONN_AG_CTX_RESERVED13_SHIFT 7
2838 u8 flags11;
2839 #define XSTORM_ETH_CONN_AG_CTX_RESERVED14_MASK 0x1
2840 #define XSTORM_ETH_CONN_AG_CTX_RESERVED14_SHIFT 0
2841 #define XSTORM_ETH_CONN_AG_CTX_RESERVED15_MASK 0x1
2842 #define XSTORM_ETH_CONN_AG_CTX_RESERVED15_SHIFT 1
2843 #define XSTORM_ETH_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1
2844 #define XSTORM_ETH_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2
2845 #define XSTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1
2846 #define XSTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 3
2847 #define XSTORM_ETH_CONN_AG_CTX_RULE6EN_MASK 0x1
2848 #define XSTORM_ETH_CONN_AG_CTX_RULE6EN_SHIFT 4
2849 #define XSTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1
2850 #define XSTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 5
2851 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
2852 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
2853 #define XSTORM_ETH_CONN_AG_CTX_RULE9EN_MASK 0x1
2854 #define XSTORM_ETH_CONN_AG_CTX_RULE9EN_SHIFT 7
2855 u8 flags12;
2856 #define XSTORM_ETH_CONN_AG_CTX_RULE10EN_MASK 0x1
2857 #define XSTORM_ETH_CONN_AG_CTX_RULE10EN_SHIFT 0
2858 #define XSTORM_ETH_CONN_AG_CTX_RULE11EN_MASK 0x1
2859 #define XSTORM_ETH_CONN_AG_CTX_RULE11EN_SHIFT 1
2860 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
2861 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
2862 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
2863 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
2864 #define XSTORM_ETH_CONN_AG_CTX_RULE14EN_MASK 0x1
2865 #define XSTORM_ETH_CONN_AG_CTX_RULE14EN_SHIFT 4
2866 #define XSTORM_ETH_CONN_AG_CTX_RULE15EN_MASK 0x1
2867 #define XSTORM_ETH_CONN_AG_CTX_RULE15EN_SHIFT 5
2868 #define XSTORM_ETH_CONN_AG_CTX_RULE16EN_MASK 0x1
2869 #define XSTORM_ETH_CONN_AG_CTX_RULE16EN_SHIFT 6
2870 #define XSTORM_ETH_CONN_AG_CTX_RULE17EN_MASK 0x1
2871 #define XSTORM_ETH_CONN_AG_CTX_RULE17EN_SHIFT 7
2872 u8 flags13;
2873 #define XSTORM_ETH_CONN_AG_CTX_RULE18EN_MASK 0x1
2874 #define XSTORM_ETH_CONN_AG_CTX_RULE18EN_SHIFT 0
2875 #define XSTORM_ETH_CONN_AG_CTX_RULE19EN_MASK 0x1
2876 #define XSTORM_ETH_CONN_AG_CTX_RULE19EN_SHIFT 1
2877 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
2878 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
2879 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
2880 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
2881 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
2882 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
2883 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
2884 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
2885 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
2886 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
2887 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
2888 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
2889 u8 flags14;
2890 #define XSTORM_ETH_CONN_AG_CTX_EDPM_USE_EXT_HDR_MASK 0x1
2891 #define XSTORM_ETH_CONN_AG_CTX_EDPM_USE_EXT_HDR_SHIFT 0
2892 #define XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_MASK 0x1
2893 #define XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_SHIFT 1
2894 #define XSTORM_ETH_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_MASK 0x1
2895 #define XSTORM_ETH_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_SHIFT 2
2896 #define XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_MASK 0x1
2897 #define XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_SHIFT 3
2898 #define XSTORM_ETH_CONN_AG_CTX_L2_EDPM_ENABLE_MASK 0x1
2899 #define XSTORM_ETH_CONN_AG_CTX_L2_EDPM_ENABLE_SHIFT 4
2900 #define XSTORM_ETH_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1
2901 #define XSTORM_ETH_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5
2902 #define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_MASK 0x3
2903 #define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_SHIFT 6
2904 u8 edpm_event_id;
2905 __le16 physical_q0;
2906 __le16 quota;
2907 __le16 edpm_num_bds;
2908 __le16 tx_bd_cons;
2909 __le16 tx_bd_prod;
2910 __le16 tx_class;
2911 __le16 conn_dpi;
2912 u8 byte3;
2913 u8 byte4;
2914 u8 byte5;
2915 u8 byte6;
2916 __le32 reg0;
2917 __le32 reg1;
2918 __le32 reg2;
2919 __le32 reg3;
2920 __le32 reg4;
2921 __le32 reg5;
2922 __le32 reg6;
2923 __le16 word7;
2924 __le16 word8;
2925 __le16 word9;
2926 __le16 word10;
2927 __le32 reg7;
2928 __le32 reg8;
2929 __le32 reg9;
2930 u8 byte7;
2931 u8 byte8;
2932 u8 byte9;
2933 u8 byte10;
2934 u8 byte11;
2935 u8 byte12;
2936 u8 byte13;
2937 u8 byte14;
2938 u8 byte15;
2939 u8 byte16;
2940 __le16 word11;
2941 __le32 reg10;
2942 __le32 reg11;
2943 __le32 reg12;
2944 __le32 reg13;
2945 __le32 reg14;
2946 __le32 reg15;
2947 __le32 reg16;
2948 __le32 reg17;
2949 __le32 reg18;
2950 __le32 reg19;
2951 __le16 word12;
2952 __le16 word13;
2953 __le16 word14;
2954 __le16 word15;
2955 };
2956
2957 /* The eth storm context for the Ystorm */
2958 struct ystorm_eth_conn_st_ctx {
2959 __le32 reserved[8];
2960 };
2961
2962 struct ystorm_eth_conn_ag_ctx {
2963 u8 byte0;
2964 u8 state;
2965 u8 flags0;
2966 #define YSTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1
2967 #define YSTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0
2968 #define YSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1
2969 #define YSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
2970 #define YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_MASK 0x3
2971 #define YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_SHIFT 2
2972 #define YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_MASK 0x3
2973 #define YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_SHIFT 4
2974 #define YSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3
2975 #define YSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6
2976 u8 flags1;
2977 #define YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_MASK 0x1
2978 #define YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_SHIFT 0
2979 #define YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_EN_MASK 0x1
2980 #define YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_EN_SHIFT 1
2981 #define YSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1
2982 #define YSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2
2983 #define YSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1
2984 #define YSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 3
2985 #define YSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1
2986 #define YSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 4
2987 #define YSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1
2988 #define YSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 5
2989 #define YSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1
2990 #define YSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 6
2991 #define YSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1
2992 #define YSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 7
2993 u8 tx_q0_int_coallecing_timeset;
2994 u8 byte3;
2995 __le16 word0;
2996 __le32 terminate_spqe;
2997 __le32 reg1;
2998 __le16 tx_bd_cons_upd;
2999 __le16 word2;
3000 __le16 word3;
3001 __le16 word4;
3002 __le32 reg2;
3003 __le32 reg3;
3004 };
3005
3006 struct tstorm_eth_conn_ag_ctx {
3007 u8 byte0;
3008 u8 byte1;
3009 u8 flags0;
3010 #define TSTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1
3011 #define TSTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0
3012 #define TSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1
3013 #define TSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
3014 #define TSTORM_ETH_CONN_AG_CTX_BIT2_MASK 0x1
3015 #define TSTORM_ETH_CONN_AG_CTX_BIT2_SHIFT 2
3016 #define TSTORM_ETH_CONN_AG_CTX_BIT3_MASK 0x1
3017 #define TSTORM_ETH_CONN_AG_CTX_BIT3_SHIFT 3
3018 #define TSTORM_ETH_CONN_AG_CTX_BIT4_MASK 0x1
3019 #define TSTORM_ETH_CONN_AG_CTX_BIT4_SHIFT 4
3020 #define TSTORM_ETH_CONN_AG_CTX_BIT5_MASK 0x1
3021 #define TSTORM_ETH_CONN_AG_CTX_BIT5_SHIFT 5
3022 #define TSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3
3023 #define TSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 6
3024 u8 flags1;
3025 #define TSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3
3026 #define TSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 0
3027 #define TSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3
3028 #define TSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 2
3029 #define TSTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3
3030 #define TSTORM_ETH_CONN_AG_CTX_CF3_SHIFT 4
3031 #define TSTORM_ETH_CONN_AG_CTX_CF4_MASK 0x3
3032 #define TSTORM_ETH_CONN_AG_CTX_CF4_SHIFT 6
3033 u8 flags2;
3034 #define TSTORM_ETH_CONN_AG_CTX_CF5_MASK 0x3
3035 #define TSTORM_ETH_CONN_AG_CTX_CF5_SHIFT 0
3036 #define TSTORM_ETH_CONN_AG_CTX_CF6_MASK 0x3
3037 #define TSTORM_ETH_CONN_AG_CTX_CF6_SHIFT 2
3038 #define TSTORM_ETH_CONN_AG_CTX_CF7_MASK 0x3
3039 #define TSTORM_ETH_CONN_AG_CTX_CF7_SHIFT 4
3040 #define TSTORM_ETH_CONN_AG_CTX_CF8_MASK 0x3
3041 #define TSTORM_ETH_CONN_AG_CTX_CF8_SHIFT 6
3042 u8 flags3;
3043 #define TSTORM_ETH_CONN_AG_CTX_CF9_MASK 0x3
3044 #define TSTORM_ETH_CONN_AG_CTX_CF9_SHIFT 0
3045 #define TSTORM_ETH_CONN_AG_CTX_CF10_MASK 0x3
3046 #define TSTORM_ETH_CONN_AG_CTX_CF10_SHIFT 2
3047 #define TSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1
3048 #define TSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 4
3049 #define TSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1
3050 #define TSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 5
3051 #define TSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1
3052 #define TSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 6
3053 #define TSTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1
3054 #define TSTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 7
3055 u8 flags4;
3056 #define TSTORM_ETH_CONN_AG_CTX_CF4EN_MASK 0x1
3057 #define TSTORM_ETH_CONN_AG_CTX_CF4EN_SHIFT 0
3058 #define TSTORM_ETH_CONN_AG_CTX_CF5EN_MASK 0x1
3059 #define TSTORM_ETH_CONN_AG_CTX_CF5EN_SHIFT 1
3060 #define TSTORM_ETH_CONN_AG_CTX_CF6EN_MASK 0x1
3061 #define TSTORM_ETH_CONN_AG_CTX_CF6EN_SHIFT 2
3062 #define TSTORM_ETH_CONN_AG_CTX_CF7EN_MASK 0x1
3063 #define TSTORM_ETH_CONN_AG_CTX_CF7EN_SHIFT 3
3064 #define TSTORM_ETH_CONN_AG_CTX_CF8EN_MASK 0x1
3065 #define TSTORM_ETH_CONN_AG_CTX_CF8EN_SHIFT 4
3066 #define TSTORM_ETH_CONN_AG_CTX_CF9EN_MASK 0x1
3067 #define TSTORM_ETH_CONN_AG_CTX_CF9EN_SHIFT 5
3068 #define TSTORM_ETH_CONN_AG_CTX_CF10EN_MASK 0x1
3069 #define TSTORM_ETH_CONN_AG_CTX_CF10EN_SHIFT 6
3070 #define TSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1
3071 #define TSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 7
3072 u8 flags5;
3073 #define TSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1
3074 #define TSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 0
3075 #define TSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1
3076 #define TSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 1
3077 #define TSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1
3078 #define TSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 2
3079 #define TSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1
3080 #define TSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 3
3081 #define TSTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1
3082 #define TSTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 4
3083 #define TSTORM_ETH_CONN_AG_CTX_RX_BD_EN_MASK 0x1
3084 #define TSTORM_ETH_CONN_AG_CTX_RX_BD_EN_SHIFT 5
3085 #define TSTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1
3086 #define TSTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 6
3087 #define TSTORM_ETH_CONN_AG_CTX_RULE8EN_MASK 0x1
3088 #define TSTORM_ETH_CONN_AG_CTX_RULE8EN_SHIFT 7
3089 __le32 reg0;
3090 __le32 reg1;
3091 __le32 reg2;
3092 __le32 reg3;
3093 __le32 reg4;
3094 __le32 reg5;
3095 __le32 reg6;
3096 __le32 reg7;
3097 __le32 reg8;
3098 u8 byte2;
3099 u8 byte3;
3100 __le16 rx_bd_cons;
3101 u8 byte4;
3102 u8 byte5;
3103 __le16 rx_bd_prod;
3104 __le16 word2;
3105 __le16 word3;
3106 __le32 reg9;
3107 __le32 reg10;
3108 };
3109
3110 struct ustorm_eth_conn_ag_ctx {
3111 u8 byte0;
3112 u8 byte1;
3113 u8 flags0;
3114 #define USTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1
3115 #define USTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0
3116 #define USTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1
3117 #define USTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
3118 #define USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_MASK 0x3
3119 #define USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_SHIFT 2
3120 #define USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_MASK 0x3
3121 #define USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_SHIFT 4
3122 #define USTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3
3123 #define USTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6
3124 u8 flags1;
3125 #define USTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3
3126 #define USTORM_ETH_CONN_AG_CTX_CF3_SHIFT 0
3127 #define USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_MASK 0x3
3128 #define USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_SHIFT 2
3129 #define USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_MASK 0x3
3130 #define USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_SHIFT 4
3131 #define USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_MASK 0x3
3132 #define USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_SHIFT 6
3133 u8 flags2;
3134 #define USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_EN_MASK 0x1
3135 #define USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_EN_SHIFT 0
3136 #define USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_EN_MASK 0x1
3137 #define USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_EN_SHIFT 1
3138 #define USTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1
3139 #define USTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2
3140 #define USTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1
3141 #define USTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 3
3142 #define USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_EN_MASK 0x1
3143 #define USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_EN_SHIFT 4
3144 #define USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_EN_MASK 0x1
3145 #define USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_EN_SHIFT 5
3146 #define USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_MASK 0x1
3147 #define USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_SHIFT 6
3148 #define USTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1
3149 #define USTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 7
3150 u8 flags3;
3151 #define USTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1
3152 #define USTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 0
3153 #define USTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1
3154 #define USTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 1
3155 #define USTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1
3156 #define USTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 2
3157 #define USTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1
3158 #define USTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 3
3159 #define USTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1
3160 #define USTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 4
3161 #define USTORM_ETH_CONN_AG_CTX_RULE6EN_MASK 0x1
3162 #define USTORM_ETH_CONN_AG_CTX_RULE6EN_SHIFT 5
3163 #define USTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1
3164 #define USTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 6
3165 #define USTORM_ETH_CONN_AG_CTX_RULE8EN_MASK 0x1
3166 #define USTORM_ETH_CONN_AG_CTX_RULE8EN_SHIFT 7
3167 u8 byte2;
3168 u8 byte3;
3169 __le16 word0;
3170 __le16 tx_bd_cons;
3171 __le32 reg0;
3172 __le32 reg1;
3173 __le32 reg2;
3174 __le32 tx_int_coallecing_timeset;
3175 __le16 tx_drv_bd_cons;
3176 __le16 rx_drv_cqe_cons;
3177 };
3178
3179 /* The eth storm context for the Ustorm */
3180 struct ustorm_eth_conn_st_ctx {
3181 __le32 reserved[40];
3182 };
3183
3184 /* The eth storm context for the Mstorm */
3185 struct mstorm_eth_conn_st_ctx {
3186 __le32 reserved[8];
3187 };
3188
3189 /* eth connection context */
3190 struct eth_conn_context {
3191 struct tstorm_eth_conn_st_ctx tstorm_st_context;
3192 struct regpair tstorm_st_padding[2];
3193 struct pstorm_eth_conn_st_ctx pstorm_st_context;
3194 struct xstorm_eth_conn_st_ctx xstorm_st_context;
3195 struct xstorm_eth_conn_ag_ctx xstorm_ag_context;
3196 struct ystorm_eth_conn_st_ctx ystorm_st_context;
3197 struct ystorm_eth_conn_ag_ctx ystorm_ag_context;
3198 struct tstorm_eth_conn_ag_ctx tstorm_ag_context;
3199 struct ustorm_eth_conn_ag_ctx ustorm_ag_context;
3200 struct ustorm_eth_conn_st_ctx ustorm_st_context;
3201 struct mstorm_eth_conn_st_ctx mstorm_st_context;
3202 };
3203
3204 /* opcodes for the event ring */
3205 enum eth_event_opcode {
3206 ETH_EVENT_UNUSED,
3207 ETH_EVENT_VPORT_START,
3208 ETH_EVENT_VPORT_UPDATE,
3209 ETH_EVENT_VPORT_STOP,
3210 ETH_EVENT_TX_QUEUE_START,
3211 ETH_EVENT_TX_QUEUE_STOP,
3212 ETH_EVENT_RX_QUEUE_START,
3213 ETH_EVENT_RX_QUEUE_UPDATE,
3214 ETH_EVENT_RX_QUEUE_STOP,
3215 ETH_EVENT_FILTERS_UPDATE,
3216 ETH_EVENT_RESERVED,
3217 ETH_EVENT_RESERVED2,
3218 ETH_EVENT_RESERVED3,
3219 ETH_EVENT_RX_ADD_UDP_FILTER,
3220 ETH_EVENT_RX_DELETE_UDP_FILTER,
3221 ETH_EVENT_RESERVED4,
3222 ETH_EVENT_RESERVED5,
3223 MAX_ETH_EVENT_OPCODE
3224 };
3225
3226 /* Classify rule types in E2/E3 */
3227 enum eth_filter_action {
3228 ETH_FILTER_ACTION_UNUSED,
3229 ETH_FILTER_ACTION_REMOVE,
3230 ETH_FILTER_ACTION_ADD,
3231 ETH_FILTER_ACTION_REMOVE_ALL,
3232 MAX_ETH_FILTER_ACTION
3233 };
3234
3235 /* Command for adding/removing a classification rule $$KEEP_ENDIANNESS$$ */
3236 struct eth_filter_cmd {
3237 u8 type;
3238 u8 vport_id;
3239 u8 action;
3240 u8 reserved0;
3241 __le32 vni;
3242 __le16 mac_lsb;
3243 __le16 mac_mid;
3244 __le16 mac_msb;
3245 __le16 vlan_id;
3246 };
3247
3248 /* $$KEEP_ENDIANNESS$$ */
3249 struct eth_filter_cmd_header {
3250 u8 rx;
3251 u8 tx;
3252 u8 cmd_cnt;
3253 u8 assert_on_error;
3254 u8 reserved1[4];
3255 };
3256
3257 /* Ethernet filter types: mac/vlan/pair */
3258 enum eth_filter_type {
3259 ETH_FILTER_TYPE_UNUSED,
3260 ETH_FILTER_TYPE_MAC,
3261 ETH_FILTER_TYPE_VLAN,
3262 ETH_FILTER_TYPE_PAIR,
3263 ETH_FILTER_TYPE_INNER_MAC,
3264 ETH_FILTER_TYPE_INNER_VLAN,
3265 ETH_FILTER_TYPE_INNER_PAIR,
3266 ETH_FILTER_TYPE_INNER_MAC_VNI_PAIR,
3267 ETH_FILTER_TYPE_MAC_VNI_PAIR,
3268 ETH_FILTER_TYPE_VNI,
3269 MAX_ETH_FILTER_TYPE
3270 };
3271
3272 /* Ethernet Ramrod Command IDs */
3273 enum eth_ramrod_cmd_id {
3274 ETH_RAMROD_UNUSED,
3275 ETH_RAMROD_VPORT_START,
3276 ETH_RAMROD_VPORT_UPDATE,
3277 ETH_RAMROD_VPORT_STOP,
3278 ETH_RAMROD_RX_QUEUE_START,
3279 ETH_RAMROD_RX_QUEUE_STOP,
3280 ETH_RAMROD_TX_QUEUE_START,
3281 ETH_RAMROD_TX_QUEUE_STOP,
3282 ETH_RAMROD_FILTERS_UPDATE,
3283 ETH_RAMROD_RX_QUEUE_UPDATE,
3284 ETH_RAMROD_RX_CREATE_OPENFLOW_ACTION,
3285 ETH_RAMROD_RX_ADD_OPENFLOW_FILTER,
3286 ETH_RAMROD_RX_DELETE_OPENFLOW_FILTER,
3287 ETH_RAMROD_RX_ADD_UDP_FILTER,
3288 ETH_RAMROD_RX_DELETE_UDP_FILTER,
3289 ETH_RAMROD_RX_CREATE_GFT_ACTION,
3290 ETH_RAMROD_GFT_UPDATE_FILTER,
3291 MAX_ETH_RAMROD_CMD_ID
3292 };
3293
3294 /* return code from eth sp ramrods */
3295 struct eth_return_code {
3296 u8 value;
3297 #define ETH_RETURN_CODE_ERR_CODE_MASK 0x1F
3298 #define ETH_RETURN_CODE_ERR_CODE_SHIFT 0
3299 #define ETH_RETURN_CODE_RESERVED_MASK 0x3
3300 #define ETH_RETURN_CODE_RESERVED_SHIFT 5
3301 #define ETH_RETURN_CODE_RX_TX_MASK 0x1
3302 #define ETH_RETURN_CODE_RX_TX_SHIFT 7
3303 };
3304
3305 /* What to do in case an error occurs */
3306 enum eth_tx_err {
3307 ETH_TX_ERR_DROP,
3308 ETH_TX_ERR_ASSERT_MALICIOUS,
3309 MAX_ETH_TX_ERR
3310 };
3311
3312 /* Array of the different error type behaviors */
3313 struct eth_tx_err_vals {
3314 __le16 values;
3315 #define ETH_TX_ERR_VALS_ILLEGAL_VLAN_MODE_MASK 0x1
3316 #define ETH_TX_ERR_VALS_ILLEGAL_VLAN_MODE_SHIFT 0
3317 #define ETH_TX_ERR_VALS_PACKET_TOO_SMALL_MASK 0x1
3318 #define ETH_TX_ERR_VALS_PACKET_TOO_SMALL_SHIFT 1
3319 #define ETH_TX_ERR_VALS_ANTI_SPOOFING_ERR_MASK 0x1
3320 #define ETH_TX_ERR_VALS_ANTI_SPOOFING_ERR_SHIFT 2
3321 #define ETH_TX_ERR_VALS_ILLEGAL_INBAND_TAGS_MASK 0x1
3322 #define ETH_TX_ERR_VALS_ILLEGAL_INBAND_TAGS_SHIFT 3
3323 #define ETH_TX_ERR_VALS_VLAN_INSERTION_W_INBAND_TAG_MASK 0x1
3324 #define ETH_TX_ERR_VALS_VLAN_INSERTION_W_INBAND_TAG_SHIFT 4
3325 #define ETH_TX_ERR_VALS_MTU_VIOLATION_MASK 0x1
3326 #define ETH_TX_ERR_VALS_MTU_VIOLATION_SHIFT 5
3327 #define ETH_TX_ERR_VALS_ILLEGAL_CONTROL_FRAME_MASK 0x1
3328 #define ETH_TX_ERR_VALS_ILLEGAL_CONTROL_FRAME_SHIFT 6
3329 #define ETH_TX_ERR_VALS_RESERVED_MASK 0x1FF
3330 #define ETH_TX_ERR_VALS_RESERVED_SHIFT 7
3331 };
3332
3333 /* vport rss configuration data */
3334 struct eth_vport_rss_config {
3335 __le16 capabilities;
3336 #define ETH_VPORT_RSS_CONFIG_IPV4_CAPABILITY_MASK 0x1
3337 #define ETH_VPORT_RSS_CONFIG_IPV4_CAPABILITY_SHIFT 0
3338 #define ETH_VPORT_RSS_CONFIG_IPV6_CAPABILITY_MASK 0x1
3339 #define ETH_VPORT_RSS_CONFIG_IPV6_CAPABILITY_SHIFT 1
3340 #define ETH_VPORT_RSS_CONFIG_IPV4_TCP_CAPABILITY_MASK 0x1
3341 #define ETH_VPORT_RSS_CONFIG_IPV4_TCP_CAPABILITY_SHIFT 2
3342 #define ETH_VPORT_RSS_CONFIG_IPV6_TCP_CAPABILITY_MASK 0x1
3343 #define ETH_VPORT_RSS_CONFIG_IPV6_TCP_CAPABILITY_SHIFT 3
3344 #define ETH_VPORT_RSS_CONFIG_IPV4_UDP_CAPABILITY_MASK 0x1
3345 #define ETH_VPORT_RSS_CONFIG_IPV4_UDP_CAPABILITY_SHIFT 4
3346 #define ETH_VPORT_RSS_CONFIG_IPV6_UDP_CAPABILITY_MASK 0x1
3347 #define ETH_VPORT_RSS_CONFIG_IPV6_UDP_CAPABILITY_SHIFT 5
3348 #define ETH_VPORT_RSS_CONFIG_EN_5_TUPLE_CAPABILITY_MASK 0x1
3349 #define ETH_VPORT_RSS_CONFIG_EN_5_TUPLE_CAPABILITY_SHIFT 6
3350 #define ETH_VPORT_RSS_CONFIG_RESERVED0_MASK 0x1FF
3351 #define ETH_VPORT_RSS_CONFIG_RESERVED0_SHIFT 7
3352 u8 rss_id;
3353 u8 rss_mode;
3354 u8 update_rss_key;
3355 u8 update_rss_ind_table;
3356 u8 update_rss_capabilities;
3357 u8 tbl_size;
3358 __le32 reserved2[2];
3359 __le16 indirection_table[ETH_RSS_IND_TABLE_ENTRIES_NUM];
3360
3361 __le32 rss_key[ETH_RSS_KEY_SIZE_REGS];
3362 __le32 reserved3[2];
3363 };
3364
3365 /* eth vport RSS mode */
3366 enum eth_vport_rss_mode {
3367 ETH_VPORT_RSS_MODE_DISABLED,
3368 ETH_VPORT_RSS_MODE_REGULAR,
3369 MAX_ETH_VPORT_RSS_MODE
3370 };
3371
3372 /* Command for setting classification flags for a vport $$KEEP_ENDIANNESS$$ */
3373 struct eth_vport_rx_mode {
3374 __le16 state;
3375 #define ETH_VPORT_RX_MODE_UCAST_DROP_ALL_MASK 0x1
3376 #define ETH_VPORT_RX_MODE_UCAST_DROP_ALL_SHIFT 0
3377 #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_ALL_MASK 0x1
3378 #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_ALL_SHIFT 1
3379 #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_UNMATCHED_MASK 0x1
3380 #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_UNMATCHED_SHIFT 2
3381 #define ETH_VPORT_RX_MODE_MCAST_DROP_ALL_MASK 0x1
3382 #define ETH_VPORT_RX_MODE_MCAST_DROP_ALL_SHIFT 3
3383 #define ETH_VPORT_RX_MODE_MCAST_ACCEPT_ALL_MASK 0x1
3384 #define ETH_VPORT_RX_MODE_MCAST_ACCEPT_ALL_SHIFT 4
3385 #define ETH_VPORT_RX_MODE_BCAST_ACCEPT_ALL_MASK 0x1
3386 #define ETH_VPORT_RX_MODE_BCAST_ACCEPT_ALL_SHIFT 5
3387 #define ETH_VPORT_RX_MODE_RESERVED1_MASK 0x3FF
3388 #define ETH_VPORT_RX_MODE_RESERVED1_SHIFT 6
3389 __le16 reserved2[3];
3390 };
3391
3392 /* Command for setting tpa parameters */
3393 struct eth_vport_tpa_param {
3394 u8 tpa_ipv4_en_flg;
3395 u8 tpa_ipv6_en_flg;
3396 u8 tpa_ipv4_tunn_en_flg;
3397 u8 tpa_ipv6_tunn_en_flg;
3398 u8 tpa_pkt_split_flg;
3399 u8 tpa_hdr_data_split_flg;
3400 u8 tpa_gro_consistent_flg;
3401
3402 u8 tpa_max_aggs_num;
3403
3404 __le16 tpa_max_size;
3405 __le16 tpa_min_size_to_start;
3406
3407 __le16 tpa_min_size_to_cont;
3408 u8 max_buff_num;
3409 u8 reserved;
3410 };
3411
3412 /* Command for setting classification flags for a vport $$KEEP_ENDIANNESS$$ */
3413 struct eth_vport_tx_mode {
3414 __le16 state;
3415 #define ETH_VPORT_TX_MODE_UCAST_DROP_ALL_MASK 0x1
3416 #define ETH_VPORT_TX_MODE_UCAST_DROP_ALL_SHIFT 0
3417 #define ETH_VPORT_TX_MODE_UCAST_ACCEPT_ALL_MASK 0x1
3418 #define ETH_VPORT_TX_MODE_UCAST_ACCEPT_ALL_SHIFT 1
3419 #define ETH_VPORT_TX_MODE_MCAST_DROP_ALL_MASK 0x1
3420 #define ETH_VPORT_TX_MODE_MCAST_DROP_ALL_SHIFT 2
3421 #define ETH_VPORT_TX_MODE_MCAST_ACCEPT_ALL_MASK 0x1
3422 #define ETH_VPORT_TX_MODE_MCAST_ACCEPT_ALL_SHIFT 3
3423 #define ETH_VPORT_TX_MODE_BCAST_ACCEPT_ALL_MASK 0x1
3424 #define ETH_VPORT_TX_MODE_BCAST_ACCEPT_ALL_SHIFT 4
3425 #define ETH_VPORT_TX_MODE_RESERVED1_MASK 0x7FF
3426 #define ETH_VPORT_TX_MODE_RESERVED1_SHIFT 5
3427 __le16 reserved2[3];
3428 };
3429
3430 /* Ramrod data for rx queue start ramrod */
3431 struct rx_queue_start_ramrod_data {
3432 __le16 rx_queue_id;
3433 __le16 num_of_pbl_pages;
3434 __le16 bd_max_bytes;
3435 __le16 sb_id;
3436 u8 sb_index;
3437 u8 vport_id;
3438 u8 default_rss_queue_flg;
3439 u8 complete_cqe_flg;
3440 u8 complete_event_flg;
3441 u8 stats_counter_id;
3442 u8 pin_context;
3443 u8 pxp_tph_valid_bd;
3444 u8 pxp_tph_valid_pkt;
3445 u8 pxp_st_hint;
3446
3447 __le16 pxp_st_index;
3448 u8 pmd_mode;
3449
3450 u8 notify_en;
3451 u8 toggle_val;
3452
3453 u8 vf_rx_prod_index;
3454
3455 u8 reserved[6];
3456 __le16 reserved1;
3457 struct regpair cqe_pbl_addr;
3458 struct regpair bd_base;
3459 struct regpair reserved2;
3460 };
3461
3462 /* Ramrod data for rx queue start ramrod */
3463 struct rx_queue_stop_ramrod_data {
3464 __le16 rx_queue_id;
3465 u8 complete_cqe_flg;
3466 u8 complete_event_flg;
3467 u8 vport_id;
3468 u8 reserved[3];
3469 };
3470
3471 /* Ramrod data for rx queue update ramrod */
3472 struct rx_queue_update_ramrod_data {
3473 __le16 rx_queue_id;
3474 u8 complete_cqe_flg;
3475 u8 complete_event_flg;
3476 u8 vport_id;
3477 u8 reserved[4];
3478 u8 reserved1;
3479 u8 reserved2;
3480 u8 reserved3;
3481 __le16 reserved4;
3482 __le16 reserved5;
3483 struct regpair reserved6;
3484 };
3485
3486 /* Ramrod data for rx Add UDP Filter */
3487 struct rx_udp_filter_data {
3488 __le16 action_icid;
3489 __le16 vlan_id;
3490 u8 ip_type;
3491 u8 tenant_id_exists;
3492 __le16 reserved1;
3493 __le32 ip_dst_addr[4];
3494 __le32 ip_src_addr[4];
3495 __le16 udp_dst_port;
3496 __le16 udp_src_port;
3497 __le32 tenant_id;
3498 };
3499
3500 /* Ramrod data for rx queue start ramrod */
3501 struct tx_queue_start_ramrod_data {
3502 __le16 sb_id;
3503 u8 sb_index;
3504 u8 vport_id;
3505 u8 reserved0;
3506 u8 stats_counter_id;
3507 __le16 qm_pq_id;
3508 u8 flags;
3509 #define TX_QUEUE_START_RAMROD_DATA_DISABLE_OPPORTUNISTIC_MASK 0x1
3510 #define TX_QUEUE_START_RAMROD_DATA_DISABLE_OPPORTUNISTIC_SHIFT 0
3511 #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_PKT_DUP_MASK 0x1
3512 #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_PKT_DUP_SHIFT 1
3513 #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_TX_DEST_MASK 0x1
3514 #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_TX_DEST_SHIFT 2
3515 #define TX_QUEUE_START_RAMROD_DATA_PMD_MODE_MASK 0x1
3516 #define TX_QUEUE_START_RAMROD_DATA_PMD_MODE_SHIFT 3
3517 #define TX_QUEUE_START_RAMROD_DATA_NOTIFY_EN_MASK 0x1
3518 #define TX_QUEUE_START_RAMROD_DATA_NOTIFY_EN_SHIFT 4
3519 #define TX_QUEUE_START_RAMROD_DATA_PIN_CONTEXT_MASK 0x1
3520 #define TX_QUEUE_START_RAMROD_DATA_PIN_CONTEXT_SHIFT 5
3521 #define TX_QUEUE_START_RAMROD_DATA_RESERVED1_MASK 0x3
3522 #define TX_QUEUE_START_RAMROD_DATA_RESERVED1_SHIFT 6
3523 u8 pxp_st_hint;
3524 u8 pxp_tph_valid_bd;
3525 u8 pxp_tph_valid_pkt;
3526 __le16 pxp_st_index;
3527 __le16 comp_agg_size;
3528 __le16 queue_zone_id;
3529 __le16 test_dup_count;
3530 __le16 pbl_size;
3531 __le16 tx_queue_id;
3532
3533 struct regpair pbl_base_addr;
3534 struct regpair bd_cons_address;
3535 };
3536
3537 /* Ramrod data for tx queue stop ramrod */
3538 struct tx_queue_stop_ramrod_data {
3539 __le16 reserved[4];
3540 };
3541
3542 /* Ramrod data for vport update ramrod */
3543 struct vport_filter_update_ramrod_data {
3544 struct eth_filter_cmd_header filter_cmd_hdr;
3545 struct eth_filter_cmd filter_cmds[ETH_FILTER_RULES_COUNT];
3546 };
3547
3548 /* Ramrod data for vport start ramrod */
3549 struct vport_start_ramrod_data {
3550 u8 vport_id;
3551 u8 sw_fid;
3552 __le16 mtu;
3553 u8 drop_ttl0_en;
3554 u8 inner_vlan_removal_en;
3555 struct eth_vport_rx_mode rx_mode;
3556 struct eth_vport_tx_mode tx_mode;
3557 struct eth_vport_tpa_param tpa_param;
3558 __le16 default_vlan;
3559 u8 tx_switching_en;
3560 u8 anti_spoofing_en;
3561
3562 u8 default_vlan_en;
3563
3564 u8 handle_ptp_pkts;
3565 u8 silent_vlan_removal_en;
3566 u8 untagged;
3567 struct eth_tx_err_vals tx_err_behav;
3568
3569 u8 zero_placement_offset;
3570 u8 ctl_frame_mac_check_en;
3571 u8 ctl_frame_ethtype_check_en;
3572 u8 reserved[5];
3573 };
3574
3575 /* Ramrod data for vport stop ramrod */
3576 struct vport_stop_ramrod_data {
3577 u8 vport_id;
3578 u8 reserved[7];
3579 };
3580
3581 /* Ramrod data for vport update ramrod */
3582 struct vport_update_ramrod_data_cmn {
3583 u8 vport_id;
3584 u8 update_rx_active_flg;
3585 u8 rx_active_flg;
3586 u8 update_tx_active_flg;
3587 u8 tx_active_flg;
3588 u8 update_rx_mode_flg;
3589 u8 update_tx_mode_flg;
3590 u8 update_approx_mcast_flg;
3591
3592 u8 update_rss_flg;
3593 u8 update_inner_vlan_removal_en_flg;
3594
3595 u8 inner_vlan_removal_en;
3596 u8 update_tpa_param_flg;
3597 u8 update_tpa_en_flg;
3598 u8 update_tx_switching_en_flg;
3599
3600 u8 tx_switching_en;
3601 u8 update_anti_spoofing_en_flg;
3602
3603 u8 anti_spoofing_en;
3604 u8 update_handle_ptp_pkts;
3605
3606 u8 handle_ptp_pkts;
3607 u8 update_default_vlan_en_flg;
3608
3609 u8 default_vlan_en;
3610
3611 u8 update_default_vlan_flg;
3612
3613 __le16 default_vlan;
3614 u8 update_accept_any_vlan_flg;
3615
3616 u8 accept_any_vlan;
3617 u8 silent_vlan_removal_en;
3618 u8 update_mtu_flg;
3619
3620 __le16 mtu;
3621 u8 reserved[2];
3622 };
3623
3624 struct vport_update_ramrod_mcast {
3625 __le32 bins[ETH_MULTICAST_MAC_BINS_IN_REGS];
3626 };
3627
3628 /* Ramrod data for vport update ramrod */
3629 struct vport_update_ramrod_data {
3630 struct vport_update_ramrod_data_cmn common;
3631
3632 struct eth_vport_rx_mode rx_mode;
3633 struct eth_vport_tx_mode tx_mode;
3634 struct eth_vport_tpa_param tpa_param;
3635 struct vport_update_ramrod_mcast approx_mcast;
3636 struct eth_vport_rss_config rss_config;
3637 };
3638
3639 struct mstorm_rdma_task_st_ctx {
3640 struct regpair temp[4];
3641 };
3642
3643 struct rdma_close_func_ramrod_data {
3644 u8 cnq_start_offset;
3645 u8 num_cnqs;
3646 u8 vf_id;
3647 u8 vf_valid;
3648 u8 reserved[4];
3649 };
3650
3651 struct rdma_cnq_params {
3652 __le16 sb_num;
3653 u8 sb_index;
3654 u8 num_pbl_pages;
3655 __le32 reserved;
3656 struct regpair pbl_base_addr;
3657 __le16 queue_zone_num;
3658 u8 reserved1[6];
3659 };
3660
3661 struct rdma_create_cq_ramrod_data {
3662 struct regpair cq_handle;
3663 struct regpair pbl_addr;
3664 __le32 max_cqes;
3665 __le16 pbl_num_pages;
3666 __le16 dpi;
3667 u8 is_two_level_pbl;
3668 u8 cnq_id;
3669 u8 pbl_log_page_size;
3670 u8 toggle_bit;
3671 __le16 int_timeout;
3672 __le16 reserved1;
3673 };
3674
3675 struct rdma_deregister_tid_ramrod_data {
3676 __le32 itid;
3677 __le32 reserved;
3678 };
3679
3680 struct rdma_destroy_cq_output_params {
3681 __le16 cnq_num;
3682 __le16 reserved0;
3683 __le32 reserved1;
3684 };
3685
3686 struct rdma_destroy_cq_ramrod_data {
3687 struct regpair output_params_addr;
3688 };
3689
3690 enum rdma_event_opcode {
3691 RDMA_EVENT_UNUSED,
3692 RDMA_EVENT_FUNC_INIT,
3693 RDMA_EVENT_FUNC_CLOSE,
3694 RDMA_EVENT_REGISTER_MR,
3695 RDMA_EVENT_DEREGISTER_MR,
3696 RDMA_EVENT_CREATE_CQ,
3697 RDMA_EVENT_RESIZE_CQ,
3698 RDMA_EVENT_DESTROY_CQ,
3699 RDMA_EVENT_CREATE_SRQ,
3700 RDMA_EVENT_MODIFY_SRQ,
3701 RDMA_EVENT_DESTROY_SRQ,
3702 MAX_RDMA_EVENT_OPCODE
3703 };
3704
3705 enum rdma_fw_return_code {
3706 RDMA_RETURN_OK = 0,
3707 RDMA_RETURN_REGISTER_MR_BAD_STATE_ERR,
3708 RDMA_RETURN_DEREGISTER_MR_BAD_STATE_ERR,
3709 RDMA_RETURN_RESIZE_CQ_ERR,
3710 RDMA_RETURN_NIG_DRAIN_REQ,
3711 MAX_RDMA_FW_RETURN_CODE
3712 };
3713
3714 struct rdma_init_func_hdr {
3715 u8 cnq_start_offset;
3716 u8 num_cnqs;
3717 u8 cq_ring_mode;
3718 u8 cnp_vlan_priority;
3719 __le32 cnp_send_timeout;
3720 u8 cnp_dscp;
3721 u8 vf_id;
3722 u8 vf_valid;
3723 u8 reserved[5];
3724 };
3725
3726 struct rdma_init_func_ramrod_data {
3727 struct rdma_init_func_hdr params_header;
3728 struct rdma_cnq_params cnq_params[NUM_OF_GLOBAL_QUEUES];
3729 };
3730
3731 enum rdma_ramrod_cmd_id {
3732 RDMA_RAMROD_UNUSED,
3733 RDMA_RAMROD_FUNC_INIT,
3734 RDMA_RAMROD_FUNC_CLOSE,
3735 RDMA_RAMROD_REGISTER_MR,
3736 RDMA_RAMROD_DEREGISTER_MR,
3737 RDMA_RAMROD_CREATE_CQ,
3738 RDMA_RAMROD_RESIZE_CQ,
3739 RDMA_RAMROD_DESTROY_CQ,
3740 RDMA_RAMROD_CREATE_SRQ,
3741 RDMA_RAMROD_MODIFY_SRQ,
3742 RDMA_RAMROD_DESTROY_SRQ,
3743 MAX_RDMA_RAMROD_CMD_ID
3744 };
3745
3746 struct rdma_register_tid_ramrod_data {
3747 __le32 flags;
3748 #define RDMA_REGISTER_TID_RAMROD_DATA_MAX_ID_MASK 0x3FFFF
3749 #define RDMA_REGISTER_TID_RAMROD_DATA_MAX_ID_SHIFT 0
3750 #define RDMA_REGISTER_TID_RAMROD_DATA_PAGE_SIZE_LOG_MASK 0x1F
3751 #define RDMA_REGISTER_TID_RAMROD_DATA_PAGE_SIZE_LOG_SHIFT 18
3752 #define RDMA_REGISTER_TID_RAMROD_DATA_TWO_LEVEL_PBL_MASK 0x1
3753 #define RDMA_REGISTER_TID_RAMROD_DATA_TWO_LEVEL_PBL_SHIFT 23
3754 #define RDMA_REGISTER_TID_RAMROD_DATA_ZERO_BASED_MASK 0x1
3755 #define RDMA_REGISTER_TID_RAMROD_DATA_ZERO_BASED_SHIFT 24
3756 #define RDMA_REGISTER_TID_RAMROD_DATA_PHY_MR_MASK 0x1
3757 #define RDMA_REGISTER_TID_RAMROD_DATA_PHY_MR_SHIFT 25
3758 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_READ_MASK 0x1
3759 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_READ_SHIFT 26
3760 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_WRITE_MASK 0x1
3761 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_WRITE_SHIFT 27
3762 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_ATOMIC_MASK 0x1
3763 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_ATOMIC_SHIFT 28
3764 #define RDMA_REGISTER_TID_RAMROD_DATA_LOCAL_WRITE_MASK 0x1
3765 #define RDMA_REGISTER_TID_RAMROD_DATA_LOCAL_WRITE_SHIFT 29
3766 #define RDMA_REGISTER_TID_RAMROD_DATA_LOCAL_READ_MASK 0x1
3767 #define RDMA_REGISTER_TID_RAMROD_DATA_LOCAL_READ_SHIFT 30
3768 #define RDMA_REGISTER_TID_RAMROD_DATA_ENABLE_MW_BIND_MASK 0x1
3769 #define RDMA_REGISTER_TID_RAMROD_DATA_ENABLE_MW_BIND_SHIFT 31
3770 u8 flags1;
3771 #define RDMA_REGISTER_TID_RAMROD_DATA_PBL_PAGE_SIZE_LOG_MASK 0x1F
3772 #define RDMA_REGISTER_TID_RAMROD_DATA_PBL_PAGE_SIZE_LOG_SHIFT 0
3773 #define RDMA_REGISTER_TID_RAMROD_DATA_TID_TYPE_MASK 0x7
3774 #define RDMA_REGISTER_TID_RAMROD_DATA_TID_TYPE_SHIFT 5
3775 u8 flags2;
3776 #define RDMA_REGISTER_TID_RAMROD_DATA_DMA_MR_MASK 0x1
3777 #define RDMA_REGISTER_TID_RAMROD_DATA_DMA_MR_SHIFT 0
3778 #define RDMA_REGISTER_TID_RAMROD_DATA_DIF_ON_HOST_FLG_MASK 0x1
3779 #define RDMA_REGISTER_TID_RAMROD_DATA_DIF_ON_HOST_FLG_SHIFT 1
3780 #define RDMA_REGISTER_TID_RAMROD_DATA_RESERVED1_MASK 0x3F
3781 #define RDMA_REGISTER_TID_RAMROD_DATA_RESERVED1_SHIFT 2
3782 u8 key;
3783 u8 length_hi;
3784 u8 vf_id;
3785 u8 vf_valid;
3786 __le16 pd;
3787 __le32 length_lo;
3788 __le32 itid;
3789 __le32 reserved2;
3790 struct regpair va;
3791 struct regpair pbl_base;
3792 struct regpair dif_error_addr;
3793 struct regpair dif_runt_addr;
3794 __le32 reserved3[2];
3795 };
3796
3797 struct rdma_resize_cq_output_params {
3798 __le32 old_cq_cons;
3799 __le32 old_cq_prod;
3800 };
3801
3802 struct rdma_resize_cq_ramrod_data {
3803 u8 flags;
3804 #define RDMA_RESIZE_CQ_RAMROD_DATA_TOGGLE_BIT_MASK 0x1
3805 #define RDMA_RESIZE_CQ_RAMROD_DATA_TOGGLE_BIT_SHIFT 0
3806 #define RDMA_RESIZE_CQ_RAMROD_DATA_IS_TWO_LEVEL_PBL_MASK 0x1
3807 #define RDMA_RESIZE_CQ_RAMROD_DATA_IS_TWO_LEVEL_PBL_SHIFT 1
3808 #define RDMA_RESIZE_CQ_RAMROD_DATA_RESERVED_MASK 0x3F
3809 #define RDMA_RESIZE_CQ_RAMROD_DATA_RESERVED_SHIFT 2
3810 u8 pbl_log_page_size;
3811 __le16 pbl_num_pages;
3812 __le32 max_cqes;
3813 struct regpair pbl_addr;
3814 struct regpair output_params_addr;
3815 };
3816
3817 struct rdma_srq_context {
3818 struct regpair temp[8];
3819 };
3820
3821 struct rdma_srq_create_ramrod_data {
3822 struct regpair pbl_base_addr;
3823 __le16 pages_in_srq_pbl;
3824 __le16 pd_id;
3825 struct rdma_srq_id srq_id;
3826 __le16 page_size;
3827 __le16 reserved1;
3828 __le32 reserved2;
3829 struct regpair producers_addr;
3830 };
3831
3832 struct rdma_srq_destroy_ramrod_data {
3833 struct rdma_srq_id srq_id;
3834 __le32 reserved;
3835 };
3836
3837 struct rdma_srq_modify_ramrod_data {
3838 struct rdma_srq_id srq_id;
3839 __le32 wqe_limit;
3840 };
3841
3842 struct ystorm_rdma_task_st_ctx {
3843 struct regpair temp[4];
3844 };
3845
3846 struct ystorm_rdma_task_ag_ctx {
3847 u8 reserved;
3848 u8 byte1;
3849 __le16 msem_ctx_upd_seq;
3850 u8 flags0;
3851 #define YSTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_MASK 0xF
3852 #define YSTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_SHIFT 0
3853 #define YSTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_MASK 0x1
3854 #define YSTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_SHIFT 4
3855 #define YSTORM_RDMA_TASK_AG_CTX_BIT1_MASK 0x1
3856 #define YSTORM_RDMA_TASK_AG_CTX_BIT1_SHIFT 5
3857 #define YSTORM_RDMA_TASK_AG_CTX_VALID_MASK 0x1
3858 #define YSTORM_RDMA_TASK_AG_CTX_VALID_SHIFT 6
3859 #define YSTORM_RDMA_TASK_AG_CTX_BIT3_MASK 0x1
3860 #define YSTORM_RDMA_TASK_AG_CTX_BIT3_SHIFT 7
3861 u8 flags1;
3862 #define YSTORM_RDMA_TASK_AG_CTX_CF0_MASK 0x3
3863 #define YSTORM_RDMA_TASK_AG_CTX_CF0_SHIFT 0
3864 #define YSTORM_RDMA_TASK_AG_CTX_CF1_MASK 0x3
3865 #define YSTORM_RDMA_TASK_AG_CTX_CF1_SHIFT 2
3866 #define YSTORM_RDMA_TASK_AG_CTX_CF2SPECIAL_MASK 0x3
3867 #define YSTORM_RDMA_TASK_AG_CTX_CF2SPECIAL_SHIFT 4
3868 #define YSTORM_RDMA_TASK_AG_CTX_CF0EN_MASK 0x1
3869 #define YSTORM_RDMA_TASK_AG_CTX_CF0EN_SHIFT 6
3870 #define YSTORM_RDMA_TASK_AG_CTX_CF1EN_MASK 0x1
3871 #define YSTORM_RDMA_TASK_AG_CTX_CF1EN_SHIFT 7
3872 u8 flags2;
3873 #define YSTORM_RDMA_TASK_AG_CTX_BIT4_MASK 0x1
3874 #define YSTORM_RDMA_TASK_AG_CTX_BIT4_SHIFT 0
3875 #define YSTORM_RDMA_TASK_AG_CTX_RULE0EN_MASK 0x1
3876 #define YSTORM_RDMA_TASK_AG_CTX_RULE0EN_SHIFT 1
3877 #define YSTORM_RDMA_TASK_AG_CTX_RULE1EN_MASK 0x1
3878 #define YSTORM_RDMA_TASK_AG_CTX_RULE1EN_SHIFT 2
3879 #define YSTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1
3880 #define YSTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 3
3881 #define YSTORM_RDMA_TASK_AG_CTX_RULE3EN_MASK 0x1
3882 #define YSTORM_RDMA_TASK_AG_CTX_RULE3EN_SHIFT 4
3883 #define YSTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1
3884 #define YSTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 5
3885 #define YSTORM_RDMA_TASK_AG_CTX_RULE5EN_MASK 0x1
3886 #define YSTORM_RDMA_TASK_AG_CTX_RULE5EN_SHIFT 6
3887 #define YSTORM_RDMA_TASK_AG_CTX_RULE6EN_MASK 0x1
3888 #define YSTORM_RDMA_TASK_AG_CTX_RULE6EN_SHIFT 7
3889 u8 key;
3890 __le32 mw_cnt;
3891 u8 ref_cnt_seq;
3892 u8 ctx_upd_seq;
3893 __le16 dif_flags;
3894 __le16 tx_ref_count;
3895 __le16 last_used_ltid;
3896 __le16 parent_mr_lo;
3897 __le16 parent_mr_hi;
3898 __le32 fbo_lo;
3899 __le32 fbo_hi;
3900 };
3901
3902 struct mstorm_rdma_task_ag_ctx {
3903 u8 reserved;
3904 u8 byte1;
3905 __le16 icid;
3906 u8 flags0;
3907 #define MSTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_MASK 0xF
3908 #define MSTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_SHIFT 0
3909 #define MSTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_MASK 0x1
3910 #define MSTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_SHIFT 4
3911 #define MSTORM_RDMA_TASK_AG_CTX_BIT1_MASK 0x1
3912 #define MSTORM_RDMA_TASK_AG_CTX_BIT1_SHIFT 5
3913 #define MSTORM_RDMA_TASK_AG_CTX_BIT2_MASK 0x1
3914 #define MSTORM_RDMA_TASK_AG_CTX_BIT2_SHIFT 6
3915 #define MSTORM_RDMA_TASK_AG_CTX_BIT3_MASK 0x1
3916 #define MSTORM_RDMA_TASK_AG_CTX_BIT3_SHIFT 7
3917 u8 flags1;
3918 #define MSTORM_RDMA_TASK_AG_CTX_CF0_MASK 0x3
3919 #define MSTORM_RDMA_TASK_AG_CTX_CF0_SHIFT 0
3920 #define MSTORM_RDMA_TASK_AG_CTX_CF1_MASK 0x3
3921 #define MSTORM_RDMA_TASK_AG_CTX_CF1_SHIFT 2
3922 #define MSTORM_RDMA_TASK_AG_CTX_CF2_MASK 0x3
3923 #define MSTORM_RDMA_TASK_AG_CTX_CF2_SHIFT 4
3924 #define MSTORM_RDMA_TASK_AG_CTX_CF0EN_MASK 0x1
3925 #define MSTORM_RDMA_TASK_AG_CTX_CF0EN_SHIFT 6
3926 #define MSTORM_RDMA_TASK_AG_CTX_CF1EN_MASK 0x1
3927 #define MSTORM_RDMA_TASK_AG_CTX_CF1EN_SHIFT 7
3928 u8 flags2;
3929 #define MSTORM_RDMA_TASK_AG_CTX_CF2EN_MASK 0x1
3930 #define MSTORM_RDMA_TASK_AG_CTX_CF2EN_SHIFT 0
3931 #define MSTORM_RDMA_TASK_AG_CTX_RULE0EN_MASK 0x1
3932 #define MSTORM_RDMA_TASK_AG_CTX_RULE0EN_SHIFT 1
3933 #define MSTORM_RDMA_TASK_AG_CTX_RULE1EN_MASK 0x1
3934 #define MSTORM_RDMA_TASK_AG_CTX_RULE1EN_SHIFT 2
3935 #define MSTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1
3936 #define MSTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 3
3937 #define MSTORM_RDMA_TASK_AG_CTX_RULE3EN_MASK 0x1
3938 #define MSTORM_RDMA_TASK_AG_CTX_RULE3EN_SHIFT 4
3939 #define MSTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1
3940 #define MSTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 5
3941 #define MSTORM_RDMA_TASK_AG_CTX_RULE5EN_MASK 0x1
3942 #define MSTORM_RDMA_TASK_AG_CTX_RULE5EN_SHIFT 6
3943 #define MSTORM_RDMA_TASK_AG_CTX_RULE6EN_MASK 0x1
3944 #define MSTORM_RDMA_TASK_AG_CTX_RULE6EN_SHIFT 7
3945 u8 key;
3946 __le32 mw_cnt;
3947 u8 ref_cnt_seq;
3948 u8 ctx_upd_seq;
3949 __le16 dif_flags;
3950 __le16 tx_ref_count;
3951 __le16 last_used_ltid;
3952 __le16 parent_mr_lo;
3953 __le16 parent_mr_hi;
3954 __le32 fbo_lo;
3955 __le32 fbo_hi;
3956 };
3957
3958 struct ustorm_rdma_task_st_ctx {
3959 struct regpair temp[2];
3960 };
3961
3962 struct ustorm_rdma_task_ag_ctx {
3963 u8 reserved;
3964 u8 byte1;
3965 __le16 icid;
3966 u8 flags0;
3967 #define USTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_MASK 0xF
3968 #define USTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_SHIFT 0
3969 #define USTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_MASK 0x1
3970 #define USTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_SHIFT 4
3971 #define USTORM_RDMA_TASK_AG_CTX_DIF_RUNT_VALID_MASK 0x1
3972 #define USTORM_RDMA_TASK_AG_CTX_DIF_RUNT_VALID_SHIFT 5
3973 #define USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_MASK 0x3
3974 #define USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_SHIFT 6
3975 u8 flags1;
3976 #define USTORM_RDMA_TASK_AG_CTX_DIF_RESULT_TOGGLE_BIT_MASK 0x3
3977 #define USTORM_RDMA_TASK_AG_CTX_DIF_RESULT_TOGGLE_BIT_SHIFT 0
3978 #define USTORM_RDMA_TASK_AG_CTX_DIF_TX_IO_FLG_MASK 0x3
3979 #define USTORM_RDMA_TASK_AG_CTX_DIF_TX_IO_FLG_SHIFT 2
3980 #define USTORM_RDMA_TASK_AG_CTX_CF3_MASK 0x3
3981 #define USTORM_RDMA_TASK_AG_CTX_CF3_SHIFT 4
3982 #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_CF_MASK 0x3
3983 #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_CF_SHIFT 6
3984 u8 flags2;
3985 #define USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_EN_MASK 0x1
3986 #define USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_EN_SHIFT 0
3987 #define USTORM_RDMA_TASK_AG_CTX_RESERVED2_MASK 0x1
3988 #define USTORM_RDMA_TASK_AG_CTX_RESERVED2_SHIFT 1
3989 #define USTORM_RDMA_TASK_AG_CTX_RESERVED3_MASK 0x1
3990 #define USTORM_RDMA_TASK_AG_CTX_RESERVED3_SHIFT 2
3991 #define USTORM_RDMA_TASK_AG_CTX_CF3EN_MASK 0x1
3992 #define USTORM_RDMA_TASK_AG_CTX_CF3EN_SHIFT 3
3993 #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_CF_EN_MASK 0x1
3994 #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_CF_EN_SHIFT 4
3995 #define USTORM_RDMA_TASK_AG_CTX_RULE0EN_MASK 0x1
3996 #define USTORM_RDMA_TASK_AG_CTX_RULE0EN_SHIFT 5
3997 #define USTORM_RDMA_TASK_AG_CTX_RULE1EN_MASK 0x1
3998 #define USTORM_RDMA_TASK_AG_CTX_RULE1EN_SHIFT 6
3999 #define USTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1
4000 #define USTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 7
4001 u8 flags3;
4002 #define USTORM_RDMA_TASK_AG_CTX_RULE3EN_MASK 0x1
4003 #define USTORM_RDMA_TASK_AG_CTX_RULE3EN_SHIFT 0
4004 #define USTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1
4005 #define USTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 1
4006 #define USTORM_RDMA_TASK_AG_CTX_RULE5EN_MASK 0x1
4007 #define USTORM_RDMA_TASK_AG_CTX_RULE5EN_SHIFT 2
4008 #define USTORM_RDMA_TASK_AG_CTX_RULE6EN_MASK 0x1
4009 #define USTORM_RDMA_TASK_AG_CTX_RULE6EN_SHIFT 3
4010 #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_TYPE_MASK 0xF
4011 #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_TYPE_SHIFT 4
4012 __le32 dif_err_intervals;
4013 __le32 dif_error_1st_interval;
4014 __le32 reg2;
4015 __le32 dif_runt_value;
4016 __le32 reg4;
4017 __le32 reg5;
4018 };
4019
4020 struct rdma_task_context {
4021 struct ystorm_rdma_task_st_ctx ystorm_st_context;
4022 struct ystorm_rdma_task_ag_ctx ystorm_ag_context;
4023 struct tdif_task_context tdif_context;
4024 struct mstorm_rdma_task_ag_ctx mstorm_ag_context;
4025 struct mstorm_rdma_task_st_ctx mstorm_st_context;
4026 struct rdif_task_context rdif_context;
4027 struct ustorm_rdma_task_st_ctx ustorm_st_context;
4028 struct regpair ustorm_st_padding[2];
4029 struct ustorm_rdma_task_ag_ctx ustorm_ag_context;
4030 };
4031
4032 enum rdma_tid_type {
4033 RDMA_TID_REGISTERED_MR,
4034 RDMA_TID_FMR,
4035 RDMA_TID_MW_TYPE1,
4036 RDMA_TID_MW_TYPE2A,
4037 MAX_RDMA_TID_TYPE
4038 };
4039
4040 struct mstorm_rdma_conn_ag_ctx {
4041 u8 byte0;
4042 u8 byte1;
4043 u8 flags0;
4044 #define MSTORM_RDMA_CONN_AG_CTX_BIT0_MASK 0x1
4045 #define MSTORM_RDMA_CONN_AG_CTX_BIT0_SHIFT 0
4046 #define MSTORM_RDMA_CONN_AG_CTX_BIT1_MASK 0x1
4047 #define MSTORM_RDMA_CONN_AG_CTX_BIT1_SHIFT 1
4048 #define MSTORM_RDMA_CONN_AG_CTX_CF0_MASK 0x3
4049 #define MSTORM_RDMA_CONN_AG_CTX_CF0_SHIFT 2
4050 #define MSTORM_RDMA_CONN_AG_CTX_CF1_MASK 0x3
4051 #define MSTORM_RDMA_CONN_AG_CTX_CF1_SHIFT 4
4052 #define MSTORM_RDMA_CONN_AG_CTX_CF2_MASK 0x3
4053 #define MSTORM_RDMA_CONN_AG_CTX_CF2_SHIFT 6
4054 u8 flags1;
4055 #define MSTORM_RDMA_CONN_AG_CTX_CF0EN_MASK 0x1
4056 #define MSTORM_RDMA_CONN_AG_CTX_CF0EN_SHIFT 0
4057 #define MSTORM_RDMA_CONN_AG_CTX_CF1EN_MASK 0x1
4058 #define MSTORM_RDMA_CONN_AG_CTX_CF1EN_SHIFT 1
4059 #define MSTORM_RDMA_CONN_AG_CTX_CF2EN_MASK 0x1
4060 #define MSTORM_RDMA_CONN_AG_CTX_CF2EN_SHIFT 2
4061 #define MSTORM_RDMA_CONN_AG_CTX_RULE0EN_MASK 0x1
4062 #define MSTORM_RDMA_CONN_AG_CTX_RULE0EN_SHIFT 3
4063 #define MSTORM_RDMA_CONN_AG_CTX_RULE1EN_MASK 0x1
4064 #define MSTORM_RDMA_CONN_AG_CTX_RULE1EN_SHIFT 4
4065 #define MSTORM_RDMA_CONN_AG_CTX_RULE2EN_MASK 0x1
4066 #define MSTORM_RDMA_CONN_AG_CTX_RULE2EN_SHIFT 5
4067 #define MSTORM_RDMA_CONN_AG_CTX_RULE3EN_MASK 0x1
4068 #define MSTORM_RDMA_CONN_AG_CTX_RULE3EN_SHIFT 6
4069 #define MSTORM_RDMA_CONN_AG_CTX_RULE4EN_MASK 0x1
4070 #define MSTORM_RDMA_CONN_AG_CTX_RULE4EN_SHIFT 7
4071 __le16 word0;
4072 __le16 word1;
4073 __le32 reg0;
4074 __le32 reg1;
4075 };
4076
4077 struct tstorm_rdma_conn_ag_ctx {
4078 u8 reserved0;
4079 u8 byte1;
4080 u8 flags0;
4081 #define TSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
4082 #define TSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
4083 #define TSTORM_RDMA_CONN_AG_CTX_BIT1_MASK 0x1
4084 #define TSTORM_RDMA_CONN_AG_CTX_BIT1_SHIFT 1
4085 #define TSTORM_RDMA_CONN_AG_CTX_BIT2_MASK 0x1
4086 #define TSTORM_RDMA_CONN_AG_CTX_BIT2_SHIFT 2
4087 #define TSTORM_RDMA_CONN_AG_CTX_BIT3_MASK 0x1
4088 #define TSTORM_RDMA_CONN_AG_CTX_BIT3_SHIFT 3
4089 #define TSTORM_RDMA_CONN_AG_CTX_BIT4_MASK 0x1
4090 #define TSTORM_RDMA_CONN_AG_CTX_BIT4_SHIFT 4
4091 #define TSTORM_RDMA_CONN_AG_CTX_BIT5_MASK 0x1
4092 #define TSTORM_RDMA_CONN_AG_CTX_BIT5_SHIFT 5
4093 #define TSTORM_RDMA_CONN_AG_CTX_CF0_MASK 0x3
4094 #define TSTORM_RDMA_CONN_AG_CTX_CF0_SHIFT 6
4095 u8 flags1;
4096 #define TSTORM_RDMA_CONN_AG_CTX_CF1_MASK 0x3
4097 #define TSTORM_RDMA_CONN_AG_CTX_CF1_SHIFT 0
4098 #define TSTORM_RDMA_CONN_AG_CTX_CF2_MASK 0x3
4099 #define TSTORM_RDMA_CONN_AG_CTX_CF2_SHIFT 2
4100 #define TSTORM_RDMA_CONN_AG_CTX_TIMER_STOP_ALL_CF_MASK 0x3
4101 #define TSTORM_RDMA_CONN_AG_CTX_TIMER_STOP_ALL_CF_SHIFT 4
4102 #define TSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
4103 #define TSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
4104 u8 flags2;
4105 #define TSTORM_RDMA_CONN_AG_CTX_MSTORM_FLUSH_CF_MASK 0x3
4106 #define TSTORM_RDMA_CONN_AG_CTX_MSTORM_FLUSH_CF_SHIFT 0
4107 #define TSTORM_RDMA_CONN_AG_CTX_CF6_MASK 0x3
4108 #define TSTORM_RDMA_CONN_AG_CTX_CF6_SHIFT 2
4109 #define TSTORM_RDMA_CONN_AG_CTX_CF7_MASK 0x3
4110 #define TSTORM_RDMA_CONN_AG_CTX_CF7_SHIFT 4
4111 #define TSTORM_RDMA_CONN_AG_CTX_CF8_MASK 0x3
4112 #define TSTORM_RDMA_CONN_AG_CTX_CF8_SHIFT 6
4113 u8 flags3;
4114 #define TSTORM_RDMA_CONN_AG_CTX_CF9_MASK 0x3
4115 #define TSTORM_RDMA_CONN_AG_CTX_CF9_SHIFT 0
4116 #define TSTORM_RDMA_CONN_AG_CTX_CF10_MASK 0x3
4117 #define TSTORM_RDMA_CONN_AG_CTX_CF10_SHIFT 2
4118 #define TSTORM_RDMA_CONN_AG_CTX_CF0EN_MASK 0x1
4119 #define TSTORM_RDMA_CONN_AG_CTX_CF0EN_SHIFT 4
4120 #define TSTORM_RDMA_CONN_AG_CTX_CF1EN_MASK 0x1
4121 #define TSTORM_RDMA_CONN_AG_CTX_CF1EN_SHIFT 5
4122 #define TSTORM_RDMA_CONN_AG_CTX_CF2EN_MASK 0x1
4123 #define TSTORM_RDMA_CONN_AG_CTX_CF2EN_SHIFT 6
4124 #define TSTORM_RDMA_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_MASK 0x1
4125 #define TSTORM_RDMA_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_SHIFT 7
4126 u8 flags4;
4127 #define TSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
4128 #define TSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 0
4129 #define TSTORM_RDMA_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_MASK 0x1
4130 #define TSTORM_RDMA_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_SHIFT 1
4131 #define TSTORM_RDMA_CONN_AG_CTX_CF6EN_MASK 0x1
4132 #define TSTORM_RDMA_CONN_AG_CTX_CF6EN_SHIFT 2
4133 #define TSTORM_RDMA_CONN_AG_CTX_CF7EN_MASK 0x1
4134 #define TSTORM_RDMA_CONN_AG_CTX_CF7EN_SHIFT 3
4135 #define TSTORM_RDMA_CONN_AG_CTX_CF8EN_MASK 0x1
4136 #define TSTORM_RDMA_CONN_AG_CTX_CF8EN_SHIFT 4
4137 #define TSTORM_RDMA_CONN_AG_CTX_CF9EN_MASK 0x1
4138 #define TSTORM_RDMA_CONN_AG_CTX_CF9EN_SHIFT 5
4139 #define TSTORM_RDMA_CONN_AG_CTX_CF10EN_MASK 0x1
4140 #define TSTORM_RDMA_CONN_AG_CTX_CF10EN_SHIFT 6
4141 #define TSTORM_RDMA_CONN_AG_CTX_RULE0EN_MASK 0x1
4142 #define TSTORM_RDMA_CONN_AG_CTX_RULE0EN_SHIFT 7
4143 u8 flags5;
4144 #define TSTORM_RDMA_CONN_AG_CTX_RULE1EN_MASK 0x1
4145 #define TSTORM_RDMA_CONN_AG_CTX_RULE1EN_SHIFT 0
4146 #define TSTORM_RDMA_CONN_AG_CTX_RULE2EN_MASK 0x1
4147 #define TSTORM_RDMA_CONN_AG_CTX_RULE2EN_SHIFT 1
4148 #define TSTORM_RDMA_CONN_AG_CTX_RULE3EN_MASK 0x1
4149 #define TSTORM_RDMA_CONN_AG_CTX_RULE3EN_SHIFT 2
4150 #define TSTORM_RDMA_CONN_AG_CTX_RULE4EN_MASK 0x1
4151 #define TSTORM_RDMA_CONN_AG_CTX_RULE4EN_SHIFT 3
4152 #define TSTORM_RDMA_CONN_AG_CTX_RULE5EN_MASK 0x1
4153 #define TSTORM_RDMA_CONN_AG_CTX_RULE5EN_SHIFT 4
4154 #define TSTORM_RDMA_CONN_AG_CTX_RULE6EN_MASK 0x1
4155 #define TSTORM_RDMA_CONN_AG_CTX_RULE6EN_SHIFT 5
4156 #define TSTORM_RDMA_CONN_AG_CTX_RULE7EN_MASK 0x1
4157 #define TSTORM_RDMA_CONN_AG_CTX_RULE7EN_SHIFT 6
4158 #define TSTORM_RDMA_CONN_AG_CTX_RULE8EN_MASK 0x1
4159 #define TSTORM_RDMA_CONN_AG_CTX_RULE8EN_SHIFT 7
4160 __le32 reg0;
4161 __le32 reg1;
4162 __le32 reg2;
4163 __le32 reg3;
4164 __le32 reg4;
4165 __le32 reg5;
4166 __le32 reg6;
4167 __le32 reg7;
4168 __le32 reg8;
4169 u8 byte2;
4170 u8 byte3;
4171 __le16 word0;
4172 u8 byte4;
4173 u8 byte5;
4174 __le16 word1;
4175 __le16 word2;
4176 __le16 word3;
4177 __le32 reg9;
4178 __le32 reg10;
4179 };
4180
4181 struct tstorm_rdma_task_ag_ctx {
4182 u8 byte0;
4183 u8 byte1;
4184 __le16 word0;
4185 u8 flags0;
4186 #define TSTORM_RDMA_TASK_AG_CTX_NIBBLE0_MASK 0xF
4187 #define TSTORM_RDMA_TASK_AG_CTX_NIBBLE0_SHIFT 0
4188 #define TSTORM_RDMA_TASK_AG_CTX_BIT0_MASK 0x1
4189 #define TSTORM_RDMA_TASK_AG_CTX_BIT0_SHIFT 4
4190 #define TSTORM_RDMA_TASK_AG_CTX_BIT1_MASK 0x1
4191 #define TSTORM_RDMA_TASK_AG_CTX_BIT1_SHIFT 5
4192 #define TSTORM_RDMA_TASK_AG_CTX_BIT2_MASK 0x1
4193 #define TSTORM_RDMA_TASK_AG_CTX_BIT2_SHIFT 6
4194 #define TSTORM_RDMA_TASK_AG_CTX_BIT3_MASK 0x1
4195 #define TSTORM_RDMA_TASK_AG_CTX_BIT3_SHIFT 7
4196 u8 flags1;
4197 #define TSTORM_RDMA_TASK_AG_CTX_BIT4_MASK 0x1
4198 #define TSTORM_RDMA_TASK_AG_CTX_BIT4_SHIFT 0
4199 #define TSTORM_RDMA_TASK_AG_CTX_BIT5_MASK 0x1
4200 #define TSTORM_RDMA_TASK_AG_CTX_BIT5_SHIFT 1
4201 #define TSTORM_RDMA_TASK_AG_CTX_CF0_MASK 0x3
4202 #define TSTORM_RDMA_TASK_AG_CTX_CF0_SHIFT 2
4203 #define TSTORM_RDMA_TASK_AG_CTX_CF1_MASK 0x3
4204 #define TSTORM_RDMA_TASK_AG_CTX_CF1_SHIFT 4
4205 #define TSTORM_RDMA_TASK_AG_CTX_CF2_MASK 0x3
4206 #define TSTORM_RDMA_TASK_AG_CTX_CF2_SHIFT 6
4207 u8 flags2;
4208 #define TSTORM_RDMA_TASK_AG_CTX_CF3_MASK 0x3
4209 #define TSTORM_RDMA_TASK_AG_CTX_CF3_SHIFT 0
4210 #define TSTORM_RDMA_TASK_AG_CTX_CF4_MASK 0x3
4211 #define TSTORM_RDMA_TASK_AG_CTX_CF4_SHIFT 2
4212 #define TSTORM_RDMA_TASK_AG_CTX_CF5_MASK 0x3
4213 #define TSTORM_RDMA_TASK_AG_CTX_CF5_SHIFT 4
4214 #define TSTORM_RDMA_TASK_AG_CTX_CF6_MASK 0x3
4215 #define TSTORM_RDMA_TASK_AG_CTX_CF6_SHIFT 6
4216 u8 flags3;
4217 #define TSTORM_RDMA_TASK_AG_CTX_CF7_MASK 0x3
4218 #define TSTORM_RDMA_TASK_AG_CTX_CF7_SHIFT 0
4219 #define TSTORM_RDMA_TASK_AG_CTX_CF0EN_MASK 0x1
4220 #define TSTORM_RDMA_TASK_AG_CTX_CF0EN_SHIFT 2
4221 #define TSTORM_RDMA_TASK_AG_CTX_CF1EN_MASK 0x1
4222 #define TSTORM_RDMA_TASK_AG_CTX_CF1EN_SHIFT 3
4223 #define TSTORM_RDMA_TASK_AG_CTX_CF2EN_MASK 0x1
4224 #define TSTORM_RDMA_TASK_AG_CTX_CF2EN_SHIFT 4
4225 #define TSTORM_RDMA_TASK_AG_CTX_CF3EN_MASK 0x1
4226 #define TSTORM_RDMA_TASK_AG_CTX_CF3EN_SHIFT 5
4227 #define TSTORM_RDMA_TASK_AG_CTX_CF4EN_MASK 0x1
4228 #define TSTORM_RDMA_TASK_AG_CTX_CF4EN_SHIFT 6
4229 #define TSTORM_RDMA_TASK_AG_CTX_CF5EN_MASK 0x1
4230 #define TSTORM_RDMA_TASK_AG_CTX_CF5EN_SHIFT 7
4231 u8 flags4;
4232 #define TSTORM_RDMA_TASK_AG_CTX_CF6EN_MASK 0x1
4233 #define TSTORM_RDMA_TASK_AG_CTX_CF6EN_SHIFT 0
4234 #define TSTORM_RDMA_TASK_AG_CTX_CF7EN_MASK 0x1
4235 #define TSTORM_RDMA_TASK_AG_CTX_CF7EN_SHIFT 1
4236 #define TSTORM_RDMA_TASK_AG_CTX_RULE0EN_MASK 0x1
4237 #define TSTORM_RDMA_TASK_AG_CTX_RULE0EN_SHIFT 2
4238 #define TSTORM_RDMA_TASK_AG_CTX_RULE1EN_MASK 0x1
4239 #define TSTORM_RDMA_TASK_AG_CTX_RULE1EN_SHIFT 3
4240 #define TSTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1
4241 #define TSTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 4
4242 #define TSTORM_RDMA_TASK_AG_CTX_RULE3EN_MASK 0x1
4243 #define TSTORM_RDMA_TASK_AG_CTX_RULE3EN_SHIFT 5
4244 #define TSTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1
4245 #define TSTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 6
4246 #define TSTORM_RDMA_TASK_AG_CTX_RULE5EN_MASK 0x1
4247 #define TSTORM_RDMA_TASK_AG_CTX_RULE5EN_SHIFT 7
4248 u8 byte2;
4249 __le16 word1;
4250 __le32 reg0;
4251 u8 byte3;
4252 u8 byte4;
4253 __le16 word2;
4254 __le16 word3;
4255 __le16 word4;
4256 __le32 reg1;
4257 __le32 reg2;
4258 };
4259
4260 struct ustorm_rdma_conn_ag_ctx {
4261 u8 reserved;
4262 u8 byte1;
4263 u8 flags0;
4264 #define USTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
4265 #define USTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
4266 #define USTORM_RDMA_CONN_AG_CTX_BIT1_MASK 0x1
4267 #define USTORM_RDMA_CONN_AG_CTX_BIT1_SHIFT 1
4268 #define USTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
4269 #define USTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 2
4270 #define USTORM_RDMA_CONN_AG_CTX_CF1_MASK 0x3
4271 #define USTORM_RDMA_CONN_AG_CTX_CF1_SHIFT 4
4272 #define USTORM_RDMA_CONN_AG_CTX_CF2_MASK 0x3
4273 #define USTORM_RDMA_CONN_AG_CTX_CF2_SHIFT 6
4274 u8 flags1;
4275 #define USTORM_RDMA_CONN_AG_CTX_CF3_MASK 0x3
4276 #define USTORM_RDMA_CONN_AG_CTX_CF3_SHIFT 0
4277 #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_SE_CF_MASK 0x3
4278 #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_SE_CF_SHIFT 2
4279 #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_CF_MASK 0x3
4280 #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_CF_SHIFT 4
4281 #define USTORM_RDMA_CONN_AG_CTX_CF6_MASK 0x3
4282 #define USTORM_RDMA_CONN_AG_CTX_CF6_SHIFT 6
4283 u8 flags2;
4284 #define USTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
4285 #define USTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 0
4286 #define USTORM_RDMA_CONN_AG_CTX_CF1EN_MASK 0x1
4287 #define USTORM_RDMA_CONN_AG_CTX_CF1EN_SHIFT 1
4288 #define USTORM_RDMA_CONN_AG_CTX_CF2EN_MASK 0x1
4289 #define USTORM_RDMA_CONN_AG_CTX_CF2EN_SHIFT 2
4290 #define USTORM_RDMA_CONN_AG_CTX_CF3EN_MASK 0x1
4291 #define USTORM_RDMA_CONN_AG_CTX_CF3EN_SHIFT 3
4292 #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_SE_CF_EN_MASK 0x1
4293 #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_SE_CF_EN_SHIFT 4
4294 #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_CF_EN_MASK 0x1
4295 #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_CF_EN_SHIFT 5
4296 #define USTORM_RDMA_CONN_AG_CTX_CF6EN_MASK 0x1
4297 #define USTORM_RDMA_CONN_AG_CTX_CF6EN_SHIFT 6
4298 #define USTORM_RDMA_CONN_AG_CTX_CQ_SE_EN_MASK 0x1
4299 #define USTORM_RDMA_CONN_AG_CTX_CQ_SE_EN_SHIFT 7
4300 u8 flags3;
4301 #define USTORM_RDMA_CONN_AG_CTX_CQ_EN_MASK 0x1
4302 #define USTORM_RDMA_CONN_AG_CTX_CQ_EN_SHIFT 0
4303 #define USTORM_RDMA_CONN_AG_CTX_RULE2EN_MASK 0x1
4304 #define USTORM_RDMA_CONN_AG_CTX_RULE2EN_SHIFT 1
4305 #define USTORM_RDMA_CONN_AG_CTX_RULE3EN_MASK 0x1
4306 #define USTORM_RDMA_CONN_AG_CTX_RULE3EN_SHIFT 2
4307 #define USTORM_RDMA_CONN_AG_CTX_RULE4EN_MASK 0x1
4308 #define USTORM_RDMA_CONN_AG_CTX_RULE4EN_SHIFT 3
4309 #define USTORM_RDMA_CONN_AG_CTX_RULE5EN_MASK 0x1
4310 #define USTORM_RDMA_CONN_AG_CTX_RULE5EN_SHIFT 4
4311 #define USTORM_RDMA_CONN_AG_CTX_RULE6EN_MASK 0x1
4312 #define USTORM_RDMA_CONN_AG_CTX_RULE6EN_SHIFT 5
4313 #define USTORM_RDMA_CONN_AG_CTX_RULE7EN_MASK 0x1
4314 #define USTORM_RDMA_CONN_AG_CTX_RULE7EN_SHIFT 6
4315 #define USTORM_RDMA_CONN_AG_CTX_RULE8EN_MASK 0x1
4316 #define USTORM_RDMA_CONN_AG_CTX_RULE8EN_SHIFT 7
4317 u8 byte2;
4318 u8 byte3;
4319 __le16 conn_dpi;
4320 __le16 word1;
4321 __le32 cq_cons;
4322 __le32 cq_se_prod;
4323 __le32 cq_prod;
4324 __le32 reg3;
4325 __le16 int_timeout;
4326 __le16 word3;
4327 };
4328
4329 struct xstorm_roce_conn_ag_ctx_dq_ext_ld_part {
4330 u8 reserved0;
4331 u8 state;
4332 u8 flags0;
4333 #define XSTORMROCECONNAGCTXDQEXTLDPART_EXIST_IN_QM0_MASK 0x1
4334 #define XSTORMROCECONNAGCTXDQEXTLDPART_EXIST_IN_QM0_SHIFT 0
4335 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT1_MASK 0x1
4336 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT1_SHIFT 1
4337 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT2_MASK 0x1
4338 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT2_SHIFT 2
4339 #define XSTORMROCECONNAGCTXDQEXTLDPART_EXIST_IN_QM3_MASK 0x1
4340 #define XSTORMROCECONNAGCTXDQEXTLDPART_EXIST_IN_QM3_SHIFT 3
4341 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT4_MASK 0x1
4342 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT4_SHIFT 4
4343 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT5_MASK 0x1
4344 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT5_SHIFT 5
4345 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT6_MASK 0x1
4346 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT6_SHIFT 6
4347 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT7_MASK 0x1
4348 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT7_SHIFT 7
4349 u8 flags1;
4350 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT8_MASK 0x1
4351 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT8_SHIFT 0
4352 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT9_MASK 0x1
4353 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT9_SHIFT 1
4354 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT10_MASK 0x1
4355 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT10_SHIFT 2
4356 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT11_MASK 0x1
4357 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT11_SHIFT 3
4358 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT12_MASK 0x1
4359 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT12_SHIFT 4
4360 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT13_MASK 0x1
4361 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT13_SHIFT 5
4362 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT14_MASK 0x1
4363 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT14_SHIFT 6
4364 #define XSTORMROCECONNAGCTXDQEXTLDPART_YSTORM_FLUSH_MASK 0x1
4365 #define XSTORMROCECONNAGCTXDQEXTLDPART_YSTORM_FLUSH_SHIFT 7
4366 u8 flags2;
4367 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF0_MASK 0x3
4368 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF0_SHIFT 0
4369 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF1_MASK 0x3
4370 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF1_SHIFT 2
4371 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF2_MASK 0x3
4372 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF2_SHIFT 4
4373 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF3_MASK 0x3
4374 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF3_SHIFT 6
4375 u8 flags3;
4376 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF4_MASK 0x3
4377 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF4_SHIFT 0
4378 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF5_MASK 0x3
4379 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF5_SHIFT 2
4380 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF6_MASK 0x3
4381 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF6_SHIFT 4
4382 #define XSTORMROCECONNAGCTXDQEXTLDPART_FLUSH_Q0_CF_MASK 0x3
4383 #define XSTORMROCECONNAGCTXDQEXTLDPART_FLUSH_Q0_CF_SHIFT 6
4384 u8 flags4;
4385 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF8_MASK 0x3
4386 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF8_SHIFT 0
4387 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF9_MASK 0x3
4388 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF9_SHIFT 2
4389 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF10_MASK 0x3
4390 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF10_SHIFT 4
4391 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF11_MASK 0x3
4392 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF11_SHIFT 6
4393 u8 flags5;
4394 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF12_MASK 0x3
4395 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF12_SHIFT 0
4396 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF13_MASK 0x3
4397 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF13_SHIFT 2
4398 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF14_MASK 0x3
4399 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF14_SHIFT 4
4400 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF15_MASK 0x3
4401 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF15_SHIFT 6
4402 u8 flags6;
4403 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF16_MASK 0x3
4404 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF16_SHIFT 0
4405 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF17_MASK 0x3
4406 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF17_SHIFT 2
4407 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF18_MASK 0x3
4408 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF18_SHIFT 4
4409 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF19_MASK 0x3
4410 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF19_SHIFT 6
4411 u8 flags7;
4412 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF20_MASK 0x3
4413 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF20_SHIFT 0
4414 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF21_MASK 0x3
4415 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF21_SHIFT 2
4416 #define XSTORMROCECONNAGCTXDQEXTLDPART_SLOW_PATH_MASK 0x3
4417 #define XSTORMROCECONNAGCTXDQEXTLDPART_SLOW_PATH_SHIFT 4
4418 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF0EN_MASK 0x1
4419 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF0EN_SHIFT 6
4420 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF1EN_MASK 0x1
4421 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF1EN_SHIFT 7
4422 u8 flags8;
4423 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF2EN_MASK 0x1
4424 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF2EN_SHIFT 0
4425 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF3EN_MASK 0x1
4426 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF3EN_SHIFT 1
4427 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF4EN_MASK 0x1
4428 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF4EN_SHIFT 2
4429 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF5EN_MASK 0x1
4430 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF5EN_SHIFT 3
4431 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF6EN_MASK 0x1
4432 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF6EN_SHIFT 4
4433 #define XSTORMROCECONNAGCTXDQEXTLDPART_FLUSH_Q0_CF_EN_MASK 0x1
4434 #define XSTORMROCECONNAGCTXDQEXTLDPART_FLUSH_Q0_CF_EN_SHIFT 5
4435 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF8EN_MASK 0x1
4436 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF8EN_SHIFT 6
4437 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF9EN_MASK 0x1
4438 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF9EN_SHIFT 7
4439 u8 flags9;
4440 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF10EN_MASK 0x1
4441 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF10EN_SHIFT 0
4442 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF11EN_MASK 0x1
4443 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF11EN_SHIFT 1
4444 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF12EN_MASK 0x1
4445 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF12EN_SHIFT 2
4446 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF13EN_MASK 0x1
4447 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF13EN_SHIFT 3
4448 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF14EN_MASK 0x1
4449 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF14EN_SHIFT 4
4450 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF15EN_MASK 0x1
4451 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF15EN_SHIFT 5
4452 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF16EN_MASK 0x1
4453 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF16EN_SHIFT 6
4454 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF17EN_MASK 0x1
4455 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF17EN_SHIFT 7
4456 u8 flags10;
4457 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF18EN_MASK 0x1
4458 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF18EN_SHIFT 0
4459 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF19EN_MASK 0x1
4460 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF19EN_SHIFT 1
4461 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF20EN_MASK 0x1
4462 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF20EN_SHIFT 2
4463 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF21EN_MASK 0x1
4464 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF21EN_SHIFT 3
4465 #define XSTORMROCECONNAGCTXDQEXTLDPART_SLOW_PATH_EN_MASK 0x1
4466 #define XSTORMROCECONNAGCTXDQEXTLDPART_SLOW_PATH_EN_SHIFT 4
4467 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF23EN_MASK 0x1
4468 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF23EN_SHIFT 5
4469 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE0EN_MASK 0x1
4470 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE0EN_SHIFT 6
4471 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE1EN_MASK 0x1
4472 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE1EN_SHIFT 7
4473 u8 flags11;
4474 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE2EN_MASK 0x1
4475 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE2EN_SHIFT 0
4476 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE3EN_MASK 0x1
4477 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE3EN_SHIFT 1
4478 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE4EN_MASK 0x1
4479 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE4EN_SHIFT 2
4480 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE5EN_MASK 0x1
4481 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE5EN_SHIFT 3
4482 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE6EN_MASK 0x1
4483 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE6EN_SHIFT 4
4484 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE7EN_MASK 0x1
4485 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE7EN_SHIFT 5
4486 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED1_MASK 0x1
4487 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED1_SHIFT 6
4488 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE9EN_MASK 0x1
4489 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE9EN_SHIFT 7
4490 u8 flags12;
4491 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE10EN_MASK 0x1
4492 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE10EN_SHIFT 0
4493 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE11EN_MASK 0x1
4494 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE11EN_SHIFT 1
4495 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED2_MASK 0x1
4496 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED2_SHIFT 2
4497 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED3_MASK 0x1
4498 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED3_SHIFT 3
4499 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE14EN_MASK 0x1
4500 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE14EN_SHIFT 4
4501 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE15EN_MASK 0x1
4502 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE15EN_SHIFT 5
4503 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE16EN_MASK 0x1
4504 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE16EN_SHIFT 6
4505 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE17EN_MASK 0x1
4506 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE17EN_SHIFT 7
4507 u8 flags13;
4508 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE18EN_MASK 0x1
4509 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE18EN_SHIFT 0
4510 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE19EN_MASK 0x1
4511 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE19EN_SHIFT 1
4512 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED4_MASK 0x1
4513 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED4_SHIFT 2
4514 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED5_MASK 0x1
4515 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED5_SHIFT 3
4516 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED6_MASK 0x1
4517 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED6_SHIFT 4
4518 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED7_MASK 0x1
4519 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED7_SHIFT 5
4520 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED8_MASK 0x1
4521 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED8_SHIFT 6
4522 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED9_MASK 0x1
4523 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED9_SHIFT 7
4524 u8 flags14;
4525 #define XSTORMROCECONNAGCTXDQEXTLDPART_MIGRATION_MASK 0x1
4526 #define XSTORMROCECONNAGCTXDQEXTLDPART_MIGRATION_SHIFT 0
4527 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT17_MASK 0x1
4528 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT17_SHIFT 1
4529 #define XSTORMROCECONNAGCTXDQEXTLDPART_DPM_PORT_NUM_MASK 0x3
4530 #define XSTORMROCECONNAGCTXDQEXTLDPART_DPM_PORT_NUM_SHIFT 2
4531 #define XSTORMROCECONNAGCTXDQEXTLDPART_RESERVED_MASK 0x1
4532 #define XSTORMROCECONNAGCTXDQEXTLDPART_RESERVED_SHIFT 4
4533 #define XSTORMROCECONNAGCTXDQEXTLDPART_ROCE_EDPM_ENABLE_MASK 0x1
4534 #define XSTORMROCECONNAGCTXDQEXTLDPART_ROCE_EDPM_ENABLE_SHIFT 5
4535 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF23_MASK 0x3
4536 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF23_SHIFT 6
4537 u8 byte2;
4538 __le16 physical_q0;
4539 __le16 word1;
4540 __le16 word2;
4541 __le16 word3;
4542 __le16 word4;
4543 __le16 word5;
4544 __le16 conn_dpi;
4545 u8 byte3;
4546 u8 byte4;
4547 u8 byte5;
4548 u8 byte6;
4549 __le32 reg0;
4550 __le32 reg1;
4551 __le32 reg2;
4552 __le32 snd_nxt_psn;
4553 __le32 reg4;
4554 };
4555
4556 struct xstorm_rdma_conn_ag_ctx {
4557 u8 reserved0;
4558 u8 state;
4559 u8 flags0;
4560 #define XSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
4561 #define XSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
4562 #define XSTORM_RDMA_CONN_AG_CTX_BIT1_MASK 0x1
4563 #define XSTORM_RDMA_CONN_AG_CTX_BIT1_SHIFT 1
4564 #define XSTORM_RDMA_CONN_AG_CTX_BIT2_MASK 0x1
4565 #define XSTORM_RDMA_CONN_AG_CTX_BIT2_SHIFT 2
4566 #define XSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
4567 #define XSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
4568 #define XSTORM_RDMA_CONN_AG_CTX_BIT4_MASK 0x1
4569 #define XSTORM_RDMA_CONN_AG_CTX_BIT4_SHIFT 4
4570 #define XSTORM_RDMA_CONN_AG_CTX_BIT5_MASK 0x1
4571 #define XSTORM_RDMA_CONN_AG_CTX_BIT5_SHIFT 5
4572 #define XSTORM_RDMA_CONN_AG_CTX_BIT6_MASK 0x1
4573 #define XSTORM_RDMA_CONN_AG_CTX_BIT6_SHIFT 6
4574 #define XSTORM_RDMA_CONN_AG_CTX_BIT7_MASK 0x1
4575 #define XSTORM_RDMA_CONN_AG_CTX_BIT7_SHIFT 7
4576 u8 flags1;
4577 #define XSTORM_RDMA_CONN_AG_CTX_BIT8_MASK 0x1
4578 #define XSTORM_RDMA_CONN_AG_CTX_BIT8_SHIFT 0
4579 #define XSTORM_RDMA_CONN_AG_CTX_BIT9_MASK 0x1
4580 #define XSTORM_RDMA_CONN_AG_CTX_BIT9_SHIFT 1
4581 #define XSTORM_RDMA_CONN_AG_CTX_BIT10_MASK 0x1
4582 #define XSTORM_RDMA_CONN_AG_CTX_BIT10_SHIFT 2
4583 #define XSTORM_RDMA_CONN_AG_CTX_BIT11_MASK 0x1
4584 #define XSTORM_RDMA_CONN_AG_CTX_BIT11_SHIFT 3
4585 #define XSTORM_RDMA_CONN_AG_CTX_BIT12_MASK 0x1
4586 #define XSTORM_RDMA_CONN_AG_CTX_BIT12_SHIFT 4
4587 #define XSTORM_RDMA_CONN_AG_CTX_BIT13_MASK 0x1
4588 #define XSTORM_RDMA_CONN_AG_CTX_BIT13_SHIFT 5
4589 #define XSTORM_RDMA_CONN_AG_CTX_BIT14_MASK 0x1
4590 #define XSTORM_RDMA_CONN_AG_CTX_BIT14_SHIFT 6
4591 #define XSTORM_RDMA_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x1
4592 #define XSTORM_RDMA_CONN_AG_CTX_YSTORM_FLUSH_SHIFT 7
4593 u8 flags2;
4594 #define XSTORM_RDMA_CONN_AG_CTX_CF0_MASK 0x3
4595 #define XSTORM_RDMA_CONN_AG_CTX_CF0_SHIFT 0
4596 #define XSTORM_RDMA_CONN_AG_CTX_CF1_MASK 0x3
4597 #define XSTORM_RDMA_CONN_AG_CTX_CF1_SHIFT 2
4598 #define XSTORM_RDMA_CONN_AG_CTX_CF2_MASK 0x3
4599 #define XSTORM_RDMA_CONN_AG_CTX_CF2_SHIFT 4
4600 #define XSTORM_RDMA_CONN_AG_CTX_CF3_MASK 0x3
4601 #define XSTORM_RDMA_CONN_AG_CTX_CF3_SHIFT 6
4602 u8 flags3;
4603 #define XSTORM_RDMA_CONN_AG_CTX_CF4_MASK 0x3
4604 #define XSTORM_RDMA_CONN_AG_CTX_CF4_SHIFT 0
4605 #define XSTORM_RDMA_CONN_AG_CTX_CF5_MASK 0x3
4606 #define XSTORM_RDMA_CONN_AG_CTX_CF5_SHIFT 2
4607 #define XSTORM_RDMA_CONN_AG_CTX_CF6_MASK 0x3
4608 #define XSTORM_RDMA_CONN_AG_CTX_CF6_SHIFT 4
4609 #define XSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
4610 #define XSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
4611 u8 flags4;
4612 #define XSTORM_RDMA_CONN_AG_CTX_CF8_MASK 0x3
4613 #define XSTORM_RDMA_CONN_AG_CTX_CF8_SHIFT 0
4614 #define XSTORM_RDMA_CONN_AG_CTX_CF9_MASK 0x3
4615 #define XSTORM_RDMA_CONN_AG_CTX_CF9_SHIFT 2
4616 #define XSTORM_RDMA_CONN_AG_CTX_CF10_MASK 0x3
4617 #define XSTORM_RDMA_CONN_AG_CTX_CF10_SHIFT 4
4618 #define XSTORM_RDMA_CONN_AG_CTX_CF11_MASK 0x3
4619 #define XSTORM_RDMA_CONN_AG_CTX_CF11_SHIFT 6
4620 u8 flags5;
4621 #define XSTORM_RDMA_CONN_AG_CTX_CF12_MASK 0x3
4622 #define XSTORM_RDMA_CONN_AG_CTX_CF12_SHIFT 0
4623 #define XSTORM_RDMA_CONN_AG_CTX_CF13_MASK 0x3
4624 #define XSTORM_RDMA_CONN_AG_CTX_CF13_SHIFT 2
4625 #define XSTORM_RDMA_CONN_AG_CTX_CF14_MASK 0x3
4626 #define XSTORM_RDMA_CONN_AG_CTX_CF14_SHIFT 4
4627 #define XSTORM_RDMA_CONN_AG_CTX_CF15_MASK 0x3
4628 #define XSTORM_RDMA_CONN_AG_CTX_CF15_SHIFT 6
4629 u8 flags6;
4630 #define XSTORM_RDMA_CONN_AG_CTX_CF16_MASK 0x3
4631 #define XSTORM_RDMA_CONN_AG_CTX_CF16_SHIFT 0
4632 #define XSTORM_RDMA_CONN_AG_CTX_CF17_MASK 0x3
4633 #define XSTORM_RDMA_CONN_AG_CTX_CF17_SHIFT 2
4634 #define XSTORM_RDMA_CONN_AG_CTX_CF18_MASK 0x3
4635 #define XSTORM_RDMA_CONN_AG_CTX_CF18_SHIFT 4
4636 #define XSTORM_RDMA_CONN_AG_CTX_CF19_MASK 0x3
4637 #define XSTORM_RDMA_CONN_AG_CTX_CF19_SHIFT 6
4638 u8 flags7;
4639 #define XSTORM_RDMA_CONN_AG_CTX_CF20_MASK 0x3
4640 #define XSTORM_RDMA_CONN_AG_CTX_CF20_SHIFT 0
4641 #define XSTORM_RDMA_CONN_AG_CTX_CF21_MASK 0x3
4642 #define XSTORM_RDMA_CONN_AG_CTX_CF21_SHIFT 2
4643 #define XSTORM_RDMA_CONN_AG_CTX_SLOW_PATH_MASK 0x3
4644 #define XSTORM_RDMA_CONN_AG_CTX_SLOW_PATH_SHIFT 4
4645 #define XSTORM_RDMA_CONN_AG_CTX_CF0EN_MASK 0x1
4646 #define XSTORM_RDMA_CONN_AG_CTX_CF0EN_SHIFT 6
4647 #define XSTORM_RDMA_CONN_AG_CTX_CF1EN_MASK 0x1
4648 #define XSTORM_RDMA_CONN_AG_CTX_CF1EN_SHIFT 7
4649 u8 flags8;
4650 #define XSTORM_RDMA_CONN_AG_CTX_CF2EN_MASK 0x1
4651 #define XSTORM_RDMA_CONN_AG_CTX_CF2EN_SHIFT 0
4652 #define XSTORM_RDMA_CONN_AG_CTX_CF3EN_MASK 0x1
4653 #define XSTORM_RDMA_CONN_AG_CTX_CF3EN_SHIFT 1
4654 #define XSTORM_RDMA_CONN_AG_CTX_CF4EN_MASK 0x1
4655 #define XSTORM_RDMA_CONN_AG_CTX_CF4EN_SHIFT 2
4656 #define XSTORM_RDMA_CONN_AG_CTX_CF5EN_MASK 0x1
4657 #define XSTORM_RDMA_CONN_AG_CTX_CF5EN_SHIFT 3
4658 #define XSTORM_RDMA_CONN_AG_CTX_CF6EN_MASK 0x1
4659 #define XSTORM_RDMA_CONN_AG_CTX_CF6EN_SHIFT 4
4660 #define XSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
4661 #define XSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 5
4662 #define XSTORM_RDMA_CONN_AG_CTX_CF8EN_MASK 0x1
4663 #define XSTORM_RDMA_CONN_AG_CTX_CF8EN_SHIFT 6
4664 #define XSTORM_RDMA_CONN_AG_CTX_CF9EN_MASK 0x1
4665 #define XSTORM_RDMA_CONN_AG_CTX_CF9EN_SHIFT 7
4666 u8 flags9;
4667 #define XSTORM_RDMA_CONN_AG_CTX_CF10EN_MASK 0x1
4668 #define XSTORM_RDMA_CONN_AG_CTX_CF10EN_SHIFT 0
4669 #define XSTORM_RDMA_CONN_AG_CTX_CF11EN_MASK 0x1
4670 #define XSTORM_RDMA_CONN_AG_CTX_CF11EN_SHIFT 1
4671 #define XSTORM_RDMA_CONN_AG_CTX_CF12EN_MASK 0x1
4672 #define XSTORM_RDMA_CONN_AG_CTX_CF12EN_SHIFT 2
4673 #define XSTORM_RDMA_CONN_AG_CTX_CF13EN_MASK 0x1
4674 #define XSTORM_RDMA_CONN_AG_CTX_CF13EN_SHIFT 3
4675 #define XSTORM_RDMA_CONN_AG_CTX_CF14EN_MASK 0x1
4676 #define XSTORM_RDMA_CONN_AG_CTX_CF14EN_SHIFT 4
4677 #define XSTORM_RDMA_CONN_AG_CTX_CF15EN_MASK 0x1
4678 #define XSTORM_RDMA_CONN_AG_CTX_CF15EN_SHIFT 5
4679 #define XSTORM_RDMA_CONN_AG_CTX_CF16EN_MASK 0x1
4680 #define XSTORM_RDMA_CONN_AG_CTX_CF16EN_SHIFT 6
4681 #define XSTORM_RDMA_CONN_AG_CTX_CF17EN_MASK 0x1
4682 #define XSTORM_RDMA_CONN_AG_CTX_CF17EN_SHIFT 7
4683 u8 flags10;
4684 #define XSTORM_RDMA_CONN_AG_CTX_CF18EN_MASK 0x1
4685 #define XSTORM_RDMA_CONN_AG_CTX_CF18EN_SHIFT 0
4686 #define XSTORM_RDMA_CONN_AG_CTX_CF19EN_MASK 0x1
4687 #define XSTORM_RDMA_CONN_AG_CTX_CF19EN_SHIFT 1
4688 #define XSTORM_RDMA_CONN_AG_CTX_CF20EN_MASK 0x1
4689 #define XSTORM_RDMA_CONN_AG_CTX_CF20EN_SHIFT 2
4690 #define XSTORM_RDMA_CONN_AG_CTX_CF21EN_MASK 0x1
4691 #define XSTORM_RDMA_CONN_AG_CTX_CF21EN_SHIFT 3
4692 #define XSTORM_RDMA_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
4693 #define XSTORM_RDMA_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
4694 #define XSTORM_RDMA_CONN_AG_CTX_CF23EN_MASK 0x1
4695 #define XSTORM_RDMA_CONN_AG_CTX_CF23EN_SHIFT 5
4696 #define XSTORM_RDMA_CONN_AG_CTX_RULE0EN_MASK 0x1
4697 #define XSTORM_RDMA_CONN_AG_CTX_RULE0EN_SHIFT 6
4698 #define XSTORM_RDMA_CONN_AG_CTX_RULE1EN_MASK 0x1
4699 #define XSTORM_RDMA_CONN_AG_CTX_RULE1EN_SHIFT 7
4700 u8 flags11;
4701 #define XSTORM_RDMA_CONN_AG_CTX_RULE2EN_MASK 0x1
4702 #define XSTORM_RDMA_CONN_AG_CTX_RULE2EN_SHIFT 0
4703 #define XSTORM_RDMA_CONN_AG_CTX_RULE3EN_MASK 0x1
4704 #define XSTORM_RDMA_CONN_AG_CTX_RULE3EN_SHIFT 1
4705 #define XSTORM_RDMA_CONN_AG_CTX_RULE4EN_MASK 0x1
4706 #define XSTORM_RDMA_CONN_AG_CTX_RULE4EN_SHIFT 2
4707 #define XSTORM_RDMA_CONN_AG_CTX_RULE5EN_MASK 0x1
4708 #define XSTORM_RDMA_CONN_AG_CTX_RULE5EN_SHIFT 3
4709 #define XSTORM_RDMA_CONN_AG_CTX_RULE6EN_MASK 0x1
4710 #define XSTORM_RDMA_CONN_AG_CTX_RULE6EN_SHIFT 4
4711 #define XSTORM_RDMA_CONN_AG_CTX_RULE7EN_MASK 0x1
4712 #define XSTORM_RDMA_CONN_AG_CTX_RULE7EN_SHIFT 5
4713 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
4714 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
4715 #define XSTORM_RDMA_CONN_AG_CTX_RULE9EN_MASK 0x1
4716 #define XSTORM_RDMA_CONN_AG_CTX_RULE9EN_SHIFT 7
4717 u8 flags12;
4718 #define XSTORM_RDMA_CONN_AG_CTX_RULE10EN_MASK 0x1
4719 #define XSTORM_RDMA_CONN_AG_CTX_RULE10EN_SHIFT 0
4720 #define XSTORM_RDMA_CONN_AG_CTX_RULE11EN_MASK 0x1
4721 #define XSTORM_RDMA_CONN_AG_CTX_RULE11EN_SHIFT 1
4722 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
4723 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
4724 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
4725 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
4726 #define XSTORM_RDMA_CONN_AG_CTX_RULE14EN_MASK 0x1
4727 #define XSTORM_RDMA_CONN_AG_CTX_RULE14EN_SHIFT 4
4728 #define XSTORM_RDMA_CONN_AG_CTX_RULE15EN_MASK 0x1
4729 #define XSTORM_RDMA_CONN_AG_CTX_RULE15EN_SHIFT 5
4730 #define XSTORM_RDMA_CONN_AG_CTX_RULE16EN_MASK 0x1
4731 #define XSTORM_RDMA_CONN_AG_CTX_RULE16EN_SHIFT 6
4732 #define XSTORM_RDMA_CONN_AG_CTX_RULE17EN_MASK 0x1
4733 #define XSTORM_RDMA_CONN_AG_CTX_RULE17EN_SHIFT 7
4734 u8 flags13;
4735 #define XSTORM_RDMA_CONN_AG_CTX_RULE18EN_MASK 0x1
4736 #define XSTORM_RDMA_CONN_AG_CTX_RULE18EN_SHIFT 0
4737 #define XSTORM_RDMA_CONN_AG_CTX_RULE19EN_MASK 0x1
4738 #define XSTORM_RDMA_CONN_AG_CTX_RULE19EN_SHIFT 1
4739 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
4740 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
4741 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
4742 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
4743 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
4744 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
4745 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
4746 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
4747 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
4748 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
4749 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
4750 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
4751 u8 flags14;
4752 #define XSTORM_RDMA_CONN_AG_CTX_MIGRATION_MASK 0x1
4753 #define XSTORM_RDMA_CONN_AG_CTX_MIGRATION_SHIFT 0
4754 #define XSTORM_RDMA_CONN_AG_CTX_BIT17_MASK 0x1
4755 #define XSTORM_RDMA_CONN_AG_CTX_BIT17_SHIFT 1
4756 #define XSTORM_RDMA_CONN_AG_CTX_DPM_PORT_NUM_MASK 0x3
4757 #define XSTORM_RDMA_CONN_AG_CTX_DPM_PORT_NUM_SHIFT 2
4758 #define XSTORM_RDMA_CONN_AG_CTX_RESERVED_MASK 0x1
4759 #define XSTORM_RDMA_CONN_AG_CTX_RESERVED_SHIFT 4
4760 #define XSTORM_RDMA_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1
4761 #define XSTORM_RDMA_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5
4762 #define XSTORM_RDMA_CONN_AG_CTX_CF23_MASK 0x3
4763 #define XSTORM_RDMA_CONN_AG_CTX_CF23_SHIFT 6
4764 u8 byte2;
4765 __le16 physical_q0;
4766 __le16 word1;
4767 __le16 word2;
4768 __le16 word3;
4769 __le16 word4;
4770 __le16 word5;
4771 __le16 conn_dpi;
4772 u8 byte3;
4773 u8 byte4;
4774 u8 byte5;
4775 u8 byte6;
4776 __le32 reg0;
4777 __le32 reg1;
4778 __le32 reg2;
4779 __le32 snd_nxt_psn;
4780 __le32 reg4;
4781 __le32 reg5;
4782 __le32 reg6;
4783 };
4784
4785 struct ystorm_rdma_conn_ag_ctx {
4786 u8 byte0;
4787 u8 byte1;
4788 u8 flags0;
4789 #define YSTORM_RDMA_CONN_AG_CTX_BIT0_MASK 0x1
4790 #define YSTORM_RDMA_CONN_AG_CTX_BIT0_SHIFT 0
4791 #define YSTORM_RDMA_CONN_AG_CTX_BIT1_MASK 0x1
4792 #define YSTORM_RDMA_CONN_AG_CTX_BIT1_SHIFT 1
4793 #define YSTORM_RDMA_CONN_AG_CTX_CF0_MASK 0x3
4794 #define YSTORM_RDMA_CONN_AG_CTX_CF0_SHIFT 2
4795 #define YSTORM_RDMA_CONN_AG_CTX_CF1_MASK 0x3
4796 #define YSTORM_RDMA_CONN_AG_CTX_CF1_SHIFT 4
4797 #define YSTORM_RDMA_CONN_AG_CTX_CF2_MASK 0x3
4798 #define YSTORM_RDMA_CONN_AG_CTX_CF2_SHIFT 6
4799 u8 flags1;
4800 #define YSTORM_RDMA_CONN_AG_CTX_CF0EN_MASK 0x1
4801 #define YSTORM_RDMA_CONN_AG_CTX_CF0EN_SHIFT 0
4802 #define YSTORM_RDMA_CONN_AG_CTX_CF1EN_MASK 0x1
4803 #define YSTORM_RDMA_CONN_AG_CTX_CF1EN_SHIFT 1
4804 #define YSTORM_RDMA_CONN_AG_CTX_CF2EN_MASK 0x1
4805 #define YSTORM_RDMA_CONN_AG_CTX_CF2EN_SHIFT 2
4806 #define YSTORM_RDMA_CONN_AG_CTX_RULE0EN_MASK 0x1
4807 #define YSTORM_RDMA_CONN_AG_CTX_RULE0EN_SHIFT 3
4808 #define YSTORM_RDMA_CONN_AG_CTX_RULE1EN_MASK 0x1
4809 #define YSTORM_RDMA_CONN_AG_CTX_RULE1EN_SHIFT 4
4810 #define YSTORM_RDMA_CONN_AG_CTX_RULE2EN_MASK 0x1
4811 #define YSTORM_RDMA_CONN_AG_CTX_RULE2EN_SHIFT 5
4812 #define YSTORM_RDMA_CONN_AG_CTX_RULE3EN_MASK 0x1
4813 #define YSTORM_RDMA_CONN_AG_CTX_RULE3EN_SHIFT 6
4814 #define YSTORM_RDMA_CONN_AG_CTX_RULE4EN_MASK 0x1
4815 #define YSTORM_RDMA_CONN_AG_CTX_RULE4EN_SHIFT 7
4816 u8 byte2;
4817 u8 byte3;
4818 __le16 word0;
4819 __le32 reg0;
4820 __le32 reg1;
4821 __le16 word1;
4822 __le16 word2;
4823 __le16 word3;
4824 __le16 word4;
4825 __le32 reg2;
4826 __le32 reg3;
4827 };
4828
4829 struct mstorm_roce_conn_st_ctx {
4830 struct regpair temp[6];
4831 };
4832
4833 struct pstorm_roce_conn_st_ctx {
4834 struct regpair temp[16];
4835 };
4836
4837 struct ystorm_roce_conn_st_ctx {
4838 struct regpair temp[2];
4839 };
4840
4841 struct xstorm_roce_conn_st_ctx {
4842 struct regpair temp[22];
4843 };
4844
4845 struct tstorm_roce_conn_st_ctx {
4846 struct regpair temp[30];
4847 };
4848
4849 struct ustorm_roce_conn_st_ctx {
4850 struct regpair temp[12];
4851 };
4852
4853 struct roce_conn_context {
4854 struct ystorm_roce_conn_st_ctx ystorm_st_context;
4855 struct regpair ystorm_st_padding[2];
4856 struct pstorm_roce_conn_st_ctx pstorm_st_context;
4857 struct xstorm_roce_conn_st_ctx xstorm_st_context;
4858 struct regpair xstorm_st_padding[2];
4859 struct xstorm_rdma_conn_ag_ctx xstorm_ag_context;
4860 struct tstorm_rdma_conn_ag_ctx tstorm_ag_context;
4861 struct timers_context timer_context;
4862 struct ustorm_rdma_conn_ag_ctx ustorm_ag_context;
4863 struct tstorm_roce_conn_st_ctx tstorm_st_context;
4864 struct mstorm_roce_conn_st_ctx mstorm_st_context;
4865 struct ustorm_roce_conn_st_ctx ustorm_st_context;
4866 struct regpair ustorm_st_padding[2];
4867 };
4868
4869 struct roce_create_qp_req_ramrod_data {
4870 __le16 flags;
4871 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_ROCE_FLAVOR_MASK 0x3
4872 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_ROCE_FLAVOR_SHIFT 0
4873 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_FMR_AND_RESERVED_EN_MASK 0x1
4874 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_FMR_AND_RESERVED_EN_SHIFT 2
4875 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_SIGNALED_COMP_MASK 0x1
4876 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_SIGNALED_COMP_SHIFT 3
4877 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_PRI_MASK 0x7
4878 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_PRI_SHIFT 4
4879 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_RESERVED_MASK 0x1
4880 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_RESERVED_SHIFT 7
4881 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_MASK 0xF
4882 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_SHIFT 8
4883 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_MASK 0xF
4884 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_SHIFT 12
4885 u8 max_ord;
4886 u8 traffic_class;
4887 u8 hop_limit;
4888 u8 orq_num_pages;
4889 __le16 p_key;
4890 __le32 flow_label;
4891 __le32 dst_qp_id;
4892 __le32 ack_timeout_val;
4893 __le32 initial_psn;
4894 __le16 mtu;
4895 __le16 pd;
4896 __le16 sq_num_pages;
4897 __le16 reseved2;
4898 struct regpair sq_pbl_addr;
4899 struct regpair orq_pbl_addr;
4900 __le16 local_mac_addr[3];
4901 __le16 remote_mac_addr[3];
4902 __le16 vlan_id;
4903 __le16 udp_src_port;
4904 __le32 src_gid[4];
4905 __le32 dst_gid[4];
4906 struct regpair qp_handle_for_cqe;
4907 struct regpair qp_handle_for_async;
4908 u8 stats_counter_id;
4909 u8 reserved3[7];
4910 __le32 cq_cid;
4911 __le16 physical_queue0;
4912 __le16 dpi;
4913 };
4914
4915 struct roce_create_qp_resp_ramrod_data {
4916 __le16 flags;
4917 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_ROCE_FLAVOR_MASK 0x3
4918 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_ROCE_FLAVOR_SHIFT 0
4919 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RDMA_RD_EN_MASK 0x1
4920 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RDMA_RD_EN_SHIFT 2
4921 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RDMA_WR_EN_MASK 0x1
4922 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RDMA_WR_EN_SHIFT 3
4923 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_ATOMIC_EN_MASK 0x1
4924 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_ATOMIC_EN_SHIFT 4
4925 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_SRQ_FLG_MASK 0x1
4926 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_SRQ_FLG_SHIFT 5
4927 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_E2E_FLOW_CONTROL_EN_MASK 0x1
4928 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_E2E_FLOW_CONTROL_EN_SHIFT 6
4929 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RESERVED0_MASK 0x1
4930 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RESERVED0_SHIFT 7
4931 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_PRI_MASK 0x7
4932 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_PRI_SHIFT 8
4933 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_MASK 0x1F
4934 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_SHIFT 11
4935 u8 max_ird;
4936 u8 traffic_class;
4937 u8 hop_limit;
4938 u8 irq_num_pages;
4939 __le16 p_key;
4940 __le32 flow_label;
4941 __le32 dst_qp_id;
4942 u8 stats_counter_id;
4943 u8 reserved1;
4944 __le16 mtu;
4945 __le32 initial_psn;
4946 __le16 pd;
4947 __le16 rq_num_pages;
4948 struct rdma_srq_id srq_id;
4949 struct regpair rq_pbl_addr;
4950 struct regpair irq_pbl_addr;
4951 __le16 local_mac_addr[3];
4952 __le16 remote_mac_addr[3];
4953 __le16 vlan_id;
4954 __le16 udp_src_port;
4955 __le32 src_gid[4];
4956 __le32 dst_gid[4];
4957 struct regpair qp_handle_for_cqe;
4958 struct regpair qp_handle_for_async;
4959 __le32 reserved2[2];
4960 __le32 cq_cid;
4961 __le16 physical_queue0;
4962 __le16 dpi;
4963 };
4964
4965 struct roce_destroy_qp_req_output_params {
4966 __le32 num_bound_mw;
4967 __le32 reserved;
4968 };
4969
4970 struct roce_destroy_qp_req_ramrod_data {
4971 struct regpair output_params_addr;
4972 };
4973
4974 struct roce_destroy_qp_resp_output_params {
4975 __le32 num_invalidated_mw;
4976 __le32 reserved;
4977 };
4978
4979 struct roce_destroy_qp_resp_ramrod_data {
4980 struct regpair output_params_addr;
4981 };
4982
4983 enum roce_event_opcode {
4984 ROCE_EVENT_CREATE_QP = 11,
4985 ROCE_EVENT_MODIFY_QP,
4986 ROCE_EVENT_QUERY_QP,
4987 ROCE_EVENT_DESTROY_QP,
4988 MAX_ROCE_EVENT_OPCODE
4989 };
4990
4991 struct roce_modify_qp_req_ramrod_data {
4992 __le16 flags;
4993 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MOVE_TO_ERR_FLG_MASK 0x1
4994 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MOVE_TO_ERR_FLG_SHIFT 0
4995 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MOVE_TO_SQD_FLG_MASK 0x1
4996 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MOVE_TO_SQD_FLG_SHIFT 1
4997 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_EN_SQD_ASYNC_NOTIFY_MASK 0x1
4998 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_EN_SQD_ASYNC_NOTIFY_SHIFT 2
4999 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_P_KEY_FLG_MASK 0x1
5000 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_P_KEY_FLG_SHIFT 3
5001 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ADDRESS_VECTOR_FLG_MASK 0x1
5002 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ADDRESS_VECTOR_FLG_SHIFT 4
5003 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MAX_ORD_FLG_MASK 0x1
5004 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MAX_ORD_FLG_SHIFT 5
5005 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_FLG_MASK 0x1
5006 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_FLG_SHIFT 6
5007 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_FLG_MASK 0x1
5008 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_FLG_SHIFT 7
5009 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ACK_TIMEOUT_FLG_MASK 0x1
5010 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ACK_TIMEOUT_FLG_SHIFT 8
5011 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_FLG_MASK 0x1
5012 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_FLG_SHIFT 9
5013 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_MASK 0x7
5014 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_SHIFT 10
5015 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RESERVED1_MASK 0x7
5016 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RESERVED1_SHIFT 13
5017 u8 fields;
5018 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_MASK 0xF
5019 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_SHIFT 0
5020 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_MASK 0xF
5021 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_SHIFT 4
5022 u8 max_ord;
5023 u8 traffic_class;
5024 u8 hop_limit;
5025 __le16 p_key;
5026 __le32 flow_label;
5027 __le32 ack_timeout_val;
5028 __le16 mtu;
5029 __le16 reserved2;
5030 __le32 reserved3[3];
5031 __le32 src_gid[4];
5032 __le32 dst_gid[4];
5033 };
5034
5035 struct roce_modify_qp_resp_ramrod_data {
5036 __le16 flags;
5037 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MOVE_TO_ERR_FLG_MASK 0x1
5038 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MOVE_TO_ERR_FLG_SHIFT 0
5039 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_RD_EN_MASK 0x1
5040 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_RD_EN_SHIFT 1
5041 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_WR_EN_MASK 0x1
5042 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_WR_EN_SHIFT 2
5043 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_ATOMIC_EN_MASK 0x1
5044 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_ATOMIC_EN_SHIFT 3
5045 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_P_KEY_FLG_MASK 0x1
5046 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_P_KEY_FLG_SHIFT 4
5047 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_ADDRESS_VECTOR_FLG_MASK 0x1
5048 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_ADDRESS_VECTOR_FLG_SHIFT 5
5049 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MAX_IRD_FLG_MASK 0x1
5050 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MAX_IRD_FLG_SHIFT 6
5051 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PRI_FLG_MASK 0x1
5052 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PRI_FLG_SHIFT 7
5053 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_FLG_MASK 0x1
5054 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_FLG_SHIFT 8
5055 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_OPS_EN_FLG_MASK 0x1
5056 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_OPS_EN_FLG_SHIFT 9
5057 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RESERVED1_MASK 0x3F
5058 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RESERVED1_SHIFT 10
5059 u8 fields;
5060 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PRI_MASK 0x7
5061 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PRI_SHIFT 0
5062 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_MASK 0x1F
5063 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_SHIFT 3
5064 u8 max_ird;
5065 u8 traffic_class;
5066 u8 hop_limit;
5067 __le16 p_key;
5068 __le32 flow_label;
5069 __le16 mtu;
5070 __le16 reserved2;
5071 __le32 src_gid[4];
5072 __le32 dst_gid[4];
5073 };
5074
5075 struct roce_query_qp_req_output_params {
5076 __le32 psn;
5077 __le32 flags;
5078 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_ERR_FLG_MASK 0x1
5079 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_ERR_FLG_SHIFT 0
5080 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_SQ_DRAINING_FLG_MASK 0x1
5081 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_SQ_DRAINING_FLG_SHIFT 1
5082 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_RESERVED0_MASK 0x3FFFFFFF
5083 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_RESERVED0_SHIFT 2
5084 };
5085
5086 struct roce_query_qp_req_ramrod_data {
5087 struct regpair output_params_addr;
5088 };
5089
5090 struct roce_query_qp_resp_output_params {
5091 __le32 psn;
5092 __le32 err_flag;
5093 #define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_ERROR_FLG_MASK 0x1
5094 #define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_ERROR_FLG_SHIFT 0
5095 #define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_RESERVED0_MASK 0x7FFFFFFF
5096 #define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_RESERVED0_SHIFT 1
5097 };
5098
5099 struct roce_query_qp_resp_ramrod_data {
5100 struct regpair output_params_addr;
5101 };
5102
5103 enum roce_ramrod_cmd_id {
5104 ROCE_RAMROD_CREATE_QP = 11,
5105 ROCE_RAMROD_MODIFY_QP,
5106 ROCE_RAMROD_QUERY_QP,
5107 ROCE_RAMROD_DESTROY_QP,
5108 MAX_ROCE_RAMROD_CMD_ID
5109 };
5110
5111 struct mstorm_roce_req_conn_ag_ctx {
5112 u8 byte0;
5113 u8 byte1;
5114 u8 flags0;
5115 #define MSTORM_ROCE_REQ_CONN_AG_CTX_BIT0_MASK 0x1
5116 #define MSTORM_ROCE_REQ_CONN_AG_CTX_BIT0_SHIFT 0
5117 #define MSTORM_ROCE_REQ_CONN_AG_CTX_BIT1_MASK 0x1
5118 #define MSTORM_ROCE_REQ_CONN_AG_CTX_BIT1_SHIFT 1
5119 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF0_MASK 0x3
5120 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF0_SHIFT 2
5121 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3
5122 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 4
5123 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF2_MASK 0x3
5124 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF2_SHIFT 6
5125 u8 flags1;
5126 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_MASK 0x1
5127 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_SHIFT 0
5128 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1
5129 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 1
5130 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_MASK 0x1
5131 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_SHIFT 2
5132 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1
5133 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 3
5134 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1
5135 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 4
5136 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1
5137 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 5
5138 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1
5139 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 6
5140 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1
5141 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 7
5142 __le16 word0;
5143 __le16 word1;
5144 __le32 reg0;
5145 __le32 reg1;
5146 };
5147
5148 struct mstorm_roce_resp_conn_ag_ctx {
5149 u8 byte0;
5150 u8 byte1;
5151 u8 flags0;
5152 #define MSTORM_ROCE_RESP_CONN_AG_CTX_BIT0_MASK 0x1
5153 #define MSTORM_ROCE_RESP_CONN_AG_CTX_BIT0_SHIFT 0
5154 #define MSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_MASK 0x1
5155 #define MSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_SHIFT 1
5156 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3
5157 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 2
5158 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF1_MASK 0x3
5159 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF1_SHIFT 4
5160 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF2_MASK 0x3
5161 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF2_SHIFT 6
5162 u8 flags1;
5163 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1
5164 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 0
5165 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_MASK 0x1
5166 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_SHIFT 1
5167 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_MASK 0x1
5168 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_SHIFT 2
5169 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1
5170 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 3
5171 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1
5172 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 4
5173 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1
5174 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 5
5175 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1
5176 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 6
5177 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1
5178 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 7
5179 __le16 word0;
5180 __le16 word1;
5181 __le32 reg0;
5182 __le32 reg1;
5183 };
5184
5185 enum roce_flavor {
5186 PLAIN_ROCE /* RoCE v1 */ ,
5187 RROCE_IPV4 /* RoCE v2 (Routable RoCE) over ipv4 */ ,
5188 RROCE_IPV6 /* RoCE v2 (Routable RoCE) over ipv6 */ ,
5189 MAX_ROCE_FLAVOR
5190 };
5191
5192 struct tstorm_roce_req_conn_ag_ctx {
5193 u8 reserved0;
5194 u8 state;
5195 u8 flags0;
5196 #define TSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
5197 #define TSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
5198 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_OCCURED_MASK 0x1
5199 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_OCCURED_SHIFT 1
5200 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_CQE_ERROR_OCCURED_MASK 0x1
5201 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_CQE_ERROR_OCCURED_SHIFT 2
5202 #define TSTORM_ROCE_REQ_CONN_AG_CTX_BIT3_MASK 0x1
5203 #define TSTORM_ROCE_REQ_CONN_AG_CTX_BIT3_SHIFT 3
5204 #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_MASK 0x1
5205 #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_SHIFT 4
5206 #define TSTORM_ROCE_REQ_CONN_AG_CTX_CACHED_ORQ_MASK 0x1
5207 #define TSTORM_ROCE_REQ_CONN_AG_CTX_CACHED_ORQ_SHIFT 5
5208 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_CF_MASK 0x3
5209 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_CF_SHIFT 6
5210 u8 flags1;
5211 #define TSTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3
5212 #define TSTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 0
5213 #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_SQ_CF_MASK 0x3
5214 #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_SQ_CF_SHIFT 2
5215 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_STOP_ALL_CF_MASK 0x3
5216 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_STOP_ALL_CF_SHIFT 4
5217 #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
5218 #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
5219 u8 flags2;
5220 #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_CF_MASK 0x3
5221 #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_CF_SHIFT 0
5222 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SET_TIMER_CF_MASK 0x3
5223 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SET_TIMER_CF_SHIFT 2
5224 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_ASYNC_ERROR_CF_MASK 0x3
5225 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_ASYNC_ERROR_CF_SHIFT 4
5226 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RXMIT_DONE_CF_MASK 0x3
5227 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RXMIT_DONE_CF_SHIFT 6
5228 u8 flags3;
5229 #define TSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_SCAN_COMPLETED_CF_MASK 0x3
5230 #define TSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_SCAN_COMPLETED_CF_SHIFT 0
5231 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SQ_DRAIN_COMPLETED_CF_MASK 0x3
5232 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SQ_DRAIN_COMPLETED_CF_SHIFT 2
5233 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_CF_EN_MASK 0x1
5234 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_CF_EN_SHIFT 4
5235 #define TSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1
5236 #define TSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 5
5237 #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_SQ_CF_EN_MASK 0x1
5238 #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_SQ_CF_EN_SHIFT 6
5239 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_MASK 0x1
5240 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_SHIFT 7
5241 u8 flags4;
5242 #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
5243 #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 0
5244 #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_MASK 0x1
5245 #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_SHIFT 1
5246 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SET_TIMER_CF_EN_MASK 0x1
5247 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SET_TIMER_CF_EN_SHIFT 2
5248 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_ASYNC_ERROR_CF_EN_MASK 0x1
5249 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_ASYNC_ERROR_CF_EN_SHIFT 3
5250 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RXMIT_DONE_CF_EN_MASK 0x1
5251 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RXMIT_DONE_CF_EN_SHIFT 4
5252 #define TSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_SCAN_COMPLETED_CF_EN_MASK 0x1
5253 #define TSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_SCAN_COMPLETED_CF_EN_SHIFT 5
5254 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SQ_DRAIN_COMPLETED_CF_EN_MASK 0x1
5255 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SQ_DRAIN_COMPLETED_CF_EN_SHIFT 6
5256 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1
5257 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 7
5258 u8 flags5;
5259 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1
5260 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 0
5261 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1
5262 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 1
5263 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1
5264 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 2
5265 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1
5266 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 3
5267 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_MASK 0x1
5268 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_SHIFT 4
5269 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SND_SQ_CONS_EN_MASK 0x1
5270 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SND_SQ_CONS_EN_SHIFT 5
5271 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_MASK 0x1
5272 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_SHIFT 6
5273 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_MASK 0x1
5274 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_SHIFT 7
5275 __le32 reg0;
5276 __le32 snd_nxt_psn;
5277 __le32 snd_max_psn;
5278 __le32 orq_prod;
5279 __le32 reg4;
5280 __le32 reg5;
5281 __le32 reg6;
5282 __le32 reg7;
5283 __le32 reg8;
5284 u8 tx_cqe_error_type;
5285 u8 orq_cache_idx;
5286 __le16 snd_sq_cons_th;
5287 u8 byte4;
5288 u8 byte5;
5289 __le16 snd_sq_cons;
5290 __le16 word2;
5291 __le16 word3;
5292 __le32 reg9;
5293 __le32 reg10;
5294 };
5295
5296 struct tstorm_roce_resp_conn_ag_ctx {
5297 u8 byte0;
5298 u8 state;
5299 u8 flags0;
5300 #define TSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
5301 #define TSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
5302 #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_MASK 0x1
5303 #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_SHIFT 1
5304 #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT2_MASK 0x1
5305 #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT2_SHIFT 2
5306 #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT3_MASK 0x1
5307 #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT3_SHIFT 3
5308 #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_MASK 0x1
5309 #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_SHIFT 4
5310 #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT5_MASK 0x1
5311 #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT5_SHIFT 5
5312 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3
5313 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 6
5314 u8 flags1;
5315 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_MASK 0x3
5316 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_SHIFT 0
5317 #define TSTORM_ROCE_RESP_CONN_AG_CTX_TX_ERROR_CF_MASK 0x3
5318 #define TSTORM_ROCE_RESP_CONN_AG_CTX_TX_ERROR_CF_SHIFT 2
5319 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF3_MASK 0x3
5320 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF3_SHIFT 4
5321 #define TSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
5322 #define TSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
5323 u8 flags2;
5324 #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_CF_MASK 0x3
5325 #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_CF_SHIFT 0
5326 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF6_MASK 0x3
5327 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF6_SHIFT 2
5328 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF7_MASK 0x3
5329 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF7_SHIFT 4
5330 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF8_MASK 0x3
5331 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF8_SHIFT 6
5332 u8 flags3;
5333 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF9_MASK 0x3
5334 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF9_SHIFT 0
5335 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF10_MASK 0x3
5336 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF10_SHIFT 2
5337 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1
5338 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 4
5339 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_EN_MASK 0x1
5340 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_EN_SHIFT 5
5341 #define TSTORM_ROCE_RESP_CONN_AG_CTX_TX_ERROR_CF_EN_MASK 0x1
5342 #define TSTORM_ROCE_RESP_CONN_AG_CTX_TX_ERROR_CF_EN_SHIFT 6
5343 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_MASK 0x1
5344 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_SHIFT 7
5345 u8 flags4;
5346 #define TSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
5347 #define TSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 0
5348 #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_MASK 0x1
5349 #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_SHIFT 1
5350 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF6EN_MASK 0x1
5351 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF6EN_SHIFT 2
5352 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF7EN_MASK 0x1
5353 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF7EN_SHIFT 3
5354 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF8EN_MASK 0x1
5355 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF8EN_SHIFT 4
5356 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF9EN_MASK 0x1
5357 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF9EN_SHIFT 5
5358 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF10EN_MASK 0x1
5359 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF10EN_SHIFT 6
5360 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1
5361 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 7
5362 u8 flags5;
5363 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1
5364 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 0
5365 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1
5366 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 1
5367 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1
5368 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 2
5369 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1
5370 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 3
5371 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_MASK 0x1
5372 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_SHIFT 4
5373 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RQ_RULE_EN_MASK 0x1
5374 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RQ_RULE_EN_SHIFT 5
5375 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_MASK 0x1
5376 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_SHIFT 6
5377 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE8EN_MASK 0x1
5378 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE8EN_SHIFT 7
5379 __le32 psn_and_rxmit_id_echo;
5380 __le32 reg1;
5381 __le32 reg2;
5382 __le32 reg3;
5383 __le32 reg4;
5384 __le32 reg5;
5385 __le32 reg6;
5386 __le32 reg7;
5387 __le32 reg8;
5388 u8 tx_async_error_type;
5389 u8 byte3;
5390 __le16 rq_cons;
5391 u8 byte4;
5392 u8 byte5;
5393 __le16 rq_prod;
5394 __le16 conn_dpi;
5395 __le16 irq_cons;
5396 __le32 num_invlidated_mw;
5397 __le32 reg10;
5398 };
5399
5400 struct ustorm_roce_req_conn_ag_ctx {
5401 u8 byte0;
5402 u8 byte1;
5403 u8 flags0;
5404 #define USTORM_ROCE_REQ_CONN_AG_CTX_BIT0_MASK 0x1
5405 #define USTORM_ROCE_REQ_CONN_AG_CTX_BIT0_SHIFT 0
5406 #define USTORM_ROCE_REQ_CONN_AG_CTX_BIT1_MASK 0x1
5407 #define USTORM_ROCE_REQ_CONN_AG_CTX_BIT1_SHIFT 1
5408 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF0_MASK 0x3
5409 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF0_SHIFT 2
5410 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3
5411 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 4
5412 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF2_MASK 0x3
5413 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF2_SHIFT 6
5414 u8 flags1;
5415 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF3_MASK 0x3
5416 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF3_SHIFT 0
5417 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF4_MASK 0x3
5418 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF4_SHIFT 2
5419 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF5_MASK 0x3
5420 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF5_SHIFT 4
5421 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF6_MASK 0x3
5422 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF6_SHIFT 6
5423 u8 flags2;
5424 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_MASK 0x1
5425 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_SHIFT 0
5426 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1
5427 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 1
5428 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_MASK 0x1
5429 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_SHIFT 2
5430 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF3EN_MASK 0x1
5431 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF3EN_SHIFT 3
5432 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF4EN_MASK 0x1
5433 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF4EN_SHIFT 4
5434 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF5EN_MASK 0x1
5435 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF5EN_SHIFT 5
5436 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF6EN_MASK 0x1
5437 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF6EN_SHIFT 6
5438 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1
5439 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 7
5440 u8 flags3;
5441 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1
5442 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 0
5443 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1
5444 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 1
5445 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1
5446 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 2
5447 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1
5448 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 3
5449 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_MASK 0x1
5450 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_SHIFT 4
5451 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE6EN_MASK 0x1
5452 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE6EN_SHIFT 5
5453 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_MASK 0x1
5454 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_SHIFT 6
5455 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_MASK 0x1
5456 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_SHIFT 7
5457 u8 byte2;
5458 u8 byte3;
5459 __le16 word0;
5460 __le16 word1;
5461 __le32 reg0;
5462 __le32 reg1;
5463 __le32 reg2;
5464 __le32 reg3;
5465 __le16 word2;
5466 __le16 word3;
5467 };
5468
5469 struct ustorm_roce_resp_conn_ag_ctx {
5470 u8 byte0;
5471 u8 byte1;
5472 u8 flags0;
5473 #define USTORM_ROCE_RESP_CONN_AG_CTX_BIT0_MASK 0x1
5474 #define USTORM_ROCE_RESP_CONN_AG_CTX_BIT0_SHIFT 0
5475 #define USTORM_ROCE_RESP_CONN_AG_CTX_BIT1_MASK 0x1
5476 #define USTORM_ROCE_RESP_CONN_AG_CTX_BIT1_SHIFT 1
5477 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3
5478 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 2
5479 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF1_MASK 0x3
5480 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF1_SHIFT 4
5481 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF2_MASK 0x3
5482 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF2_SHIFT 6
5483 u8 flags1;
5484 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF3_MASK 0x3
5485 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF3_SHIFT 0
5486 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF4_MASK 0x3
5487 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF4_SHIFT 2
5488 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF5_MASK 0x3
5489 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF5_SHIFT 4
5490 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF6_MASK 0x3
5491 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF6_SHIFT 6
5492 u8 flags2;
5493 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1
5494 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 0
5495 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_MASK 0x1
5496 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_SHIFT 1
5497 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_MASK 0x1
5498 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_SHIFT 2
5499 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_MASK 0x1
5500 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_SHIFT 3
5501 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF4EN_MASK 0x1
5502 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF4EN_SHIFT 4
5503 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF5EN_MASK 0x1
5504 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF5EN_SHIFT 5
5505 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF6EN_MASK 0x1
5506 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF6EN_SHIFT 6
5507 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1
5508 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 7
5509 u8 flags3;
5510 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1
5511 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 0
5512 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1
5513 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 1
5514 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1
5515 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 2
5516 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1
5517 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 3
5518 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_MASK 0x1
5519 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_SHIFT 4
5520 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE6EN_MASK 0x1
5521 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE6EN_SHIFT 5
5522 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_MASK 0x1
5523 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_SHIFT 6
5524 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE8EN_MASK 0x1
5525 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE8EN_SHIFT 7
5526 u8 byte2;
5527 u8 byte3;
5528 __le16 word0;
5529 __le16 word1;
5530 __le32 reg0;
5531 __le32 reg1;
5532 __le32 reg2;
5533 __le32 reg3;
5534 __le16 word2;
5535 __le16 word3;
5536 };
5537
5538 struct xstorm_roce_req_conn_ag_ctx {
5539 u8 reserved0;
5540 u8 state;
5541 u8 flags0;
5542 #define XSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
5543 #define XSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
5544 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED1_MASK 0x1
5545 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED1_SHIFT 1
5546 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED2_MASK 0x1
5547 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED2_SHIFT 2
5548 #define XSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
5549 #define XSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
5550 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED3_MASK 0x1
5551 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED3_SHIFT 4
5552 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED4_MASK 0x1
5553 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED4_SHIFT 5
5554 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED5_MASK 0x1
5555 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED5_SHIFT 6
5556 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED6_MASK 0x1
5557 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED6_SHIFT 7
5558 u8 flags1;
5559 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED7_MASK 0x1
5560 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED7_SHIFT 0
5561 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED8_MASK 0x1
5562 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED8_SHIFT 1
5563 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT10_MASK 0x1
5564 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT10_SHIFT 2
5565 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT11_MASK 0x1
5566 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT11_SHIFT 3
5567 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT12_MASK 0x1
5568 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT12_SHIFT 4
5569 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT13_MASK 0x1
5570 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT13_SHIFT 5
5571 #define XSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_STATE_MASK 0x1
5572 #define XSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_STATE_SHIFT 6
5573 #define XSTORM_ROCE_REQ_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x1
5574 #define XSTORM_ROCE_REQ_CONN_AG_CTX_YSTORM_FLUSH_SHIFT 7
5575 u8 flags2;
5576 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF0_MASK 0x3
5577 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF0_SHIFT 0
5578 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3
5579 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 2
5580 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF2_MASK 0x3
5581 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF2_SHIFT 4
5582 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF3_MASK 0x3
5583 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF3_SHIFT 6
5584 u8 flags3;
5585 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_FLUSH_CF_MASK 0x3
5586 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_FLUSH_CF_SHIFT 0
5587 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_CF_MASK 0x3
5588 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_CF_SHIFT 2
5589 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SND_RXMIT_CF_MASK 0x3
5590 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SND_RXMIT_CF_SHIFT 4
5591 #define XSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
5592 #define XSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
5593 u8 flags4;
5594 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF8_MASK 0x3
5595 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF8_SHIFT 0
5596 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF9_MASK 0x3
5597 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF9_SHIFT 2
5598 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF10_MASK 0x3
5599 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF10_SHIFT 4
5600 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF11_MASK 0x3
5601 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF11_SHIFT 6
5602 u8 flags5;
5603 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF12_MASK 0x3
5604 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF12_SHIFT 0
5605 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF13_MASK 0x3
5606 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF13_SHIFT 2
5607 #define XSTORM_ROCE_REQ_CONN_AG_CTX_FMR_ENDED_CF_MASK 0x3
5608 #define XSTORM_ROCE_REQ_CONN_AG_CTX_FMR_ENDED_CF_SHIFT 4
5609 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF15_MASK 0x3
5610 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF15_SHIFT 6
5611 u8 flags6;
5612 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF16_MASK 0x3
5613 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF16_SHIFT 0
5614 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF17_MASK 0x3
5615 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF17_SHIFT 2
5616 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF18_MASK 0x3
5617 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF18_SHIFT 4
5618 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF19_MASK 0x3
5619 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF19_SHIFT 6
5620 u8 flags7;
5621 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF20_MASK 0x3
5622 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF20_SHIFT 0
5623 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF21_MASK 0x3
5624 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF21_SHIFT 2
5625 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SLOW_PATH_MASK 0x3
5626 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SLOW_PATH_SHIFT 4
5627 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_MASK 0x1
5628 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_SHIFT 6
5629 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1
5630 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 7
5631 u8 flags8;
5632 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_MASK 0x1
5633 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_SHIFT 0
5634 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF3EN_MASK 0x1
5635 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF3EN_SHIFT 1
5636 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_FLUSH_CF_EN_MASK 0x1
5637 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_FLUSH_CF_EN_SHIFT 2
5638 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_CF_EN_MASK 0x1
5639 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_CF_EN_SHIFT 3
5640 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SND_RXMIT_CF_EN_MASK 0x1
5641 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SND_RXMIT_CF_EN_SHIFT 4
5642 #define XSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
5643 #define XSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 5
5644 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF8EN_MASK 0x1
5645 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF8EN_SHIFT 6
5646 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF9EN_MASK 0x1
5647 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF9EN_SHIFT 7
5648 u8 flags9;
5649 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF10EN_MASK 0x1
5650 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF10EN_SHIFT 0
5651 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF11EN_MASK 0x1
5652 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF11EN_SHIFT 1
5653 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF12EN_MASK 0x1
5654 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF12EN_SHIFT 2
5655 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF13EN_MASK 0x1
5656 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF13EN_SHIFT 3
5657 #define XSTORM_ROCE_REQ_CONN_AG_CTX_FME_ENDED_CF_EN_MASK 0x1
5658 #define XSTORM_ROCE_REQ_CONN_AG_CTX_FME_ENDED_CF_EN_SHIFT 4
5659 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF15EN_MASK 0x1
5660 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF15EN_SHIFT 5
5661 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF16EN_MASK 0x1
5662 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF16EN_SHIFT 6
5663 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF17EN_MASK 0x1
5664 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF17EN_SHIFT 7
5665 u8 flags10;
5666 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF18EN_MASK 0x1
5667 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF18EN_SHIFT 0
5668 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF19EN_MASK 0x1
5669 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF19EN_SHIFT 1
5670 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF20EN_MASK 0x1
5671 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF20EN_SHIFT 2
5672 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF21EN_MASK 0x1
5673 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF21EN_SHIFT 3
5674 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
5675 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
5676 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF23EN_MASK 0x1
5677 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF23EN_SHIFT 5
5678 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1
5679 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 6
5680 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1
5681 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 7
5682 u8 flags11;
5683 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1
5684 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 0
5685 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1
5686 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 1
5687 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1
5688 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 2
5689 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_MASK 0x1
5690 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_SHIFT 3
5691 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE6EN_MASK 0x1
5692 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE6EN_SHIFT 4
5693 #define XSTORM_ROCE_REQ_CONN_AG_CTX_E2E_CREDIT_RULE_EN_MASK 0x1
5694 #define XSTORM_ROCE_REQ_CONN_AG_CTX_E2E_CREDIT_RULE_EN_SHIFT 5
5695 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
5696 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
5697 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE9EN_MASK 0x1
5698 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE9EN_SHIFT 7
5699 u8 flags12;
5700 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_PROD_EN_MASK 0x1
5701 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_PROD_EN_SHIFT 0
5702 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE11EN_MASK 0x1
5703 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE11EN_SHIFT 1
5704 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
5705 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
5706 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
5707 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
5708 #define XSTORM_ROCE_REQ_CONN_AG_CTX_INV_FENCE_RULE_EN_MASK 0x1
5709 #define XSTORM_ROCE_REQ_CONN_AG_CTX_INV_FENCE_RULE_EN_SHIFT 4
5710 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE15EN_MASK 0x1
5711 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE15EN_SHIFT 5
5712 #define XSTORM_ROCE_REQ_CONN_AG_CTX_ORQ_FENCE_RULE_EN_MASK 0x1
5713 #define XSTORM_ROCE_REQ_CONN_AG_CTX_ORQ_FENCE_RULE_EN_SHIFT 6
5714 #define XSTORM_ROCE_REQ_CONN_AG_CTX_MAX_ORD_RULE_EN_MASK 0x1
5715 #define XSTORM_ROCE_REQ_CONN_AG_CTX_MAX_ORD_RULE_EN_SHIFT 7
5716 u8 flags13;
5717 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE18EN_MASK 0x1
5718 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE18EN_SHIFT 0
5719 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE19EN_MASK 0x1
5720 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE19EN_SHIFT 1
5721 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
5722 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
5723 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
5724 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
5725 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
5726 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
5727 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
5728 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
5729 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
5730 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
5731 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
5732 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
5733 u8 flags14;
5734 #define XSTORM_ROCE_REQ_CONN_AG_CTX_MIGRATION_FLAG_MASK 0x1
5735 #define XSTORM_ROCE_REQ_CONN_AG_CTX_MIGRATION_FLAG_SHIFT 0
5736 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT17_MASK 0x1
5737 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT17_SHIFT 1
5738 #define XSTORM_ROCE_REQ_CONN_AG_CTX_DPM_PORT_NUM_MASK 0x3
5739 #define XSTORM_ROCE_REQ_CONN_AG_CTX_DPM_PORT_NUM_SHIFT 2
5740 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED_MASK 0x1
5741 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED_SHIFT 4
5742 #define XSTORM_ROCE_REQ_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1
5743 #define XSTORM_ROCE_REQ_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5
5744 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF23_MASK 0x3
5745 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF23_SHIFT 6
5746 u8 byte2;
5747 __le16 physical_q0;
5748 __le16 word1;
5749 __le16 sq_cmp_cons;
5750 __le16 sq_cons;
5751 __le16 sq_prod;
5752 __le16 word5;
5753 __le16 conn_dpi;
5754 u8 byte3;
5755 u8 byte4;
5756 u8 byte5;
5757 u8 byte6;
5758 __le32 lsn;
5759 __le32 ssn;
5760 __le32 snd_una_psn;
5761 __le32 snd_nxt_psn;
5762 __le32 reg4;
5763 __le32 orq_cons_th;
5764 __le32 orq_cons;
5765 };
5766
5767 struct xstorm_roce_resp_conn_ag_ctx {
5768 u8 reserved0;
5769 u8 state;
5770 u8 flags0;
5771 #define XSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
5772 #define XSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
5773 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED1_MASK 0x1
5774 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED1_SHIFT 1
5775 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED2_MASK 0x1
5776 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED2_SHIFT 2
5777 #define XSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
5778 #define XSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
5779 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED3_MASK 0x1
5780 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED3_SHIFT 4
5781 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED4_MASK 0x1
5782 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED4_SHIFT 5
5783 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED5_MASK 0x1
5784 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED5_SHIFT 6
5785 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED6_MASK 0x1
5786 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED6_SHIFT 7
5787 u8 flags1;
5788 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED7_MASK 0x1
5789 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED7_SHIFT 0
5790 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED8_MASK 0x1
5791 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED8_SHIFT 1
5792 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT10_MASK 0x1
5793 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT10_SHIFT 2
5794 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT11_MASK 0x1
5795 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT11_SHIFT 3
5796 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT12_MASK 0x1
5797 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT12_SHIFT 4
5798 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT13_MASK 0x1
5799 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT13_SHIFT 5
5800 #define XSTORM_ROCE_RESP_CONN_AG_CTX_ERROR_STATE_MASK 0x1
5801 #define XSTORM_ROCE_RESP_CONN_AG_CTX_ERROR_STATE_SHIFT 6
5802 #define XSTORM_ROCE_RESP_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x1
5803 #define XSTORM_ROCE_RESP_CONN_AG_CTX_YSTORM_FLUSH_SHIFT 7
5804 u8 flags2;
5805 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3
5806 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 0
5807 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF1_MASK 0x3
5808 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF1_SHIFT 2
5809 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF2_MASK 0x3
5810 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF2_SHIFT 4
5811 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF3_MASK 0x3
5812 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF3_SHIFT 6
5813 u8 flags3;
5814 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RXMIT_CF_MASK 0x3
5815 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RXMIT_CF_SHIFT 0
5816 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_MASK 0x3
5817 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_SHIFT 2
5818 #define XSTORM_ROCE_RESP_CONN_AG_CTX_FORCE_ACK_CF_MASK 0x3
5819 #define XSTORM_ROCE_RESP_CONN_AG_CTX_FORCE_ACK_CF_SHIFT 4
5820 #define XSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
5821 #define XSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
5822 u8 flags4;
5823 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF8_MASK 0x3
5824 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF8_SHIFT 0
5825 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF9_MASK 0x3
5826 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF9_SHIFT 2
5827 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF10_MASK 0x3
5828 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF10_SHIFT 4
5829 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF11_MASK 0x3
5830 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF11_SHIFT 6
5831 u8 flags5;
5832 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF12_MASK 0x3
5833 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF12_SHIFT 0
5834 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF13_MASK 0x3
5835 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF13_SHIFT 2
5836 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF14_MASK 0x3
5837 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF14_SHIFT 4
5838 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF15_MASK 0x3
5839 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF15_SHIFT 6
5840 u8 flags6;
5841 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF16_MASK 0x3
5842 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF16_SHIFT 0
5843 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF17_MASK 0x3
5844 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF17_SHIFT 2
5845 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF18_MASK 0x3
5846 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF18_SHIFT 4
5847 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF19_MASK 0x3
5848 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF19_SHIFT 6
5849 u8 flags7;
5850 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF20_MASK 0x3
5851 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF20_SHIFT 0
5852 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF21_MASK 0x3
5853 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF21_SHIFT 2
5854 #define XSTORM_ROCE_RESP_CONN_AG_CTX_SLOW_PATH_MASK 0x3
5855 #define XSTORM_ROCE_RESP_CONN_AG_CTX_SLOW_PATH_SHIFT 4
5856 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1
5857 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 6
5858 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_MASK 0x1
5859 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_SHIFT 7
5860 u8 flags8;
5861 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_MASK 0x1
5862 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_SHIFT 0
5863 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_MASK 0x1
5864 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_SHIFT 1
5865 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RXMIT_CF_EN_MASK 0x1
5866 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RXMIT_CF_EN_SHIFT 2
5867 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_EN_MASK 0x1
5868 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_EN_SHIFT 3
5869 #define XSTORM_ROCE_RESP_CONN_AG_CTX_FORCE_ACK_CF_EN_MASK 0x1
5870 #define XSTORM_ROCE_RESP_CONN_AG_CTX_FORCE_ACK_CF_EN_SHIFT 4
5871 #define XSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
5872 #define XSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 5
5873 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF8EN_MASK 0x1
5874 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF8EN_SHIFT 6
5875 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF9EN_MASK 0x1
5876 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF9EN_SHIFT 7
5877 u8 flags9;
5878 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF10EN_MASK 0x1
5879 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF10EN_SHIFT 0
5880 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF11EN_MASK 0x1
5881 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF11EN_SHIFT 1
5882 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF12EN_MASK 0x1
5883 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF12EN_SHIFT 2
5884 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF13EN_MASK 0x1
5885 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF13EN_SHIFT 3
5886 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF14EN_MASK 0x1
5887 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF14EN_SHIFT 4
5888 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF15EN_MASK 0x1
5889 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF15EN_SHIFT 5
5890 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF16EN_MASK 0x1
5891 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF16EN_SHIFT 6
5892 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF17EN_MASK 0x1
5893 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF17EN_SHIFT 7
5894 u8 flags10;
5895 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF18EN_MASK 0x1
5896 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF18EN_SHIFT 0
5897 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF19EN_MASK 0x1
5898 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF19EN_SHIFT 1
5899 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF20EN_MASK 0x1
5900 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF20EN_SHIFT 2
5901 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF21EN_MASK 0x1
5902 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF21EN_SHIFT 3
5903 #define XSTORM_ROCE_RESP_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
5904 #define XSTORM_ROCE_RESP_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
5905 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF23EN_MASK 0x1
5906 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF23EN_SHIFT 5
5907 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1
5908 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 6
5909 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1
5910 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 7
5911 u8 flags11;
5912 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1
5913 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 0
5914 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1
5915 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 1
5916 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1
5917 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 2
5918 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_MASK 0x1
5919 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_SHIFT 3
5920 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE6EN_MASK 0x1
5921 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE6EN_SHIFT 4
5922 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_MASK 0x1
5923 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_SHIFT 5
5924 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
5925 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
5926 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE9EN_MASK 0x1
5927 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE9EN_SHIFT 7
5928 u8 flags12;
5929 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE10EN_MASK 0x1
5930 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE10EN_SHIFT 0
5931 #define XSTORM_ROCE_RESP_CONN_AG_CTX_IRQ_PROD_RULE_EN_MASK 0x1
5932 #define XSTORM_ROCE_RESP_CONN_AG_CTX_IRQ_PROD_RULE_EN_SHIFT 1
5933 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
5934 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
5935 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
5936 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
5937 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE14EN_MASK 0x1
5938 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE14EN_SHIFT 4
5939 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE15EN_MASK 0x1
5940 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE15EN_SHIFT 5
5941 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE16EN_MASK 0x1
5942 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE16EN_SHIFT 6
5943 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE17EN_MASK 0x1
5944 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE17EN_SHIFT 7
5945 u8 flags13;
5946 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE18EN_MASK 0x1
5947 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE18EN_SHIFT 0
5948 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE19EN_MASK 0x1
5949 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE19EN_SHIFT 1
5950 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
5951 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
5952 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
5953 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
5954 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
5955 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
5956 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
5957 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
5958 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
5959 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
5960 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
5961 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
5962 u8 flags14;
5963 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT16_MASK 0x1
5964 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT16_SHIFT 0
5965 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT17_MASK 0x1
5966 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT17_SHIFT 1
5967 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT18_MASK 0x1
5968 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT18_SHIFT 2
5969 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT19_MASK 0x1
5970 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT19_SHIFT 3
5971 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT20_MASK 0x1
5972 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT20_SHIFT 4
5973 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT21_MASK 0x1
5974 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT21_SHIFT 5
5975 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF23_MASK 0x3
5976 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF23_SHIFT 6
5977 u8 byte2;
5978 __le16 physical_q0;
5979 __le16 word1;
5980 __le16 irq_prod;
5981 __le16 word3;
5982 __le16 word4;
5983 __le16 word5;
5984 __le16 irq_cons;
5985 u8 rxmit_opcode;
5986 u8 byte4;
5987 u8 byte5;
5988 u8 byte6;
5989 __le32 rxmit_psn_and_id;
5990 __le32 rxmit_bytes_length;
5991 __le32 psn;
5992 __le32 reg3;
5993 __le32 reg4;
5994 __le32 reg5;
5995 __le32 msn_and_syndrome;
5996 };
5997
5998 struct ystorm_roce_req_conn_ag_ctx {
5999 u8 byte0;
6000 u8 byte1;
6001 u8 flags0;
6002 #define YSTORM_ROCE_REQ_CONN_AG_CTX_BIT0_MASK 0x1
6003 #define YSTORM_ROCE_REQ_CONN_AG_CTX_BIT0_SHIFT 0
6004 #define YSTORM_ROCE_REQ_CONN_AG_CTX_BIT1_MASK 0x1
6005 #define YSTORM_ROCE_REQ_CONN_AG_CTX_BIT1_SHIFT 1
6006 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF0_MASK 0x3
6007 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF0_SHIFT 2
6008 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3
6009 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 4
6010 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF2_MASK 0x3
6011 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF2_SHIFT 6
6012 u8 flags1;
6013 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_MASK 0x1
6014 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_SHIFT 0
6015 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1
6016 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 1
6017 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_MASK 0x1
6018 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_SHIFT 2
6019 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1
6020 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 3
6021 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1
6022 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 4
6023 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1
6024 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 5
6025 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1
6026 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 6
6027 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1
6028 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 7
6029 u8 byte2;
6030 u8 byte3;
6031 __le16 word0;
6032 __le32 reg0;
6033 __le32 reg1;
6034 __le16 word1;
6035 __le16 word2;
6036 __le16 word3;
6037 __le16 word4;
6038 __le32 reg2;
6039 __le32 reg3;
6040 };
6041
6042 struct ystorm_roce_resp_conn_ag_ctx {
6043 u8 byte0;
6044 u8 byte1;
6045 u8 flags0;
6046 #define YSTORM_ROCE_RESP_CONN_AG_CTX_BIT0_MASK 0x1
6047 #define YSTORM_ROCE_RESP_CONN_AG_CTX_BIT0_SHIFT 0
6048 #define YSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_MASK 0x1
6049 #define YSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_SHIFT 1
6050 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3
6051 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 2
6052 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF1_MASK 0x3
6053 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF1_SHIFT 4
6054 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF2_MASK 0x3
6055 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF2_SHIFT 6
6056 u8 flags1;
6057 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1
6058 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 0
6059 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_MASK 0x1
6060 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_SHIFT 1
6061 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_MASK 0x1
6062 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_SHIFT 2
6063 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1
6064 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 3
6065 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1
6066 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 4
6067 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1
6068 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 5
6069 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1
6070 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 6
6071 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1
6072 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 7
6073 u8 byte2;
6074 u8 byte3;
6075 __le16 word0;
6076 __le32 reg0;
6077 __le32 reg1;
6078 __le16 word1;
6079 __le16 word2;
6080 __le16 word3;
6081 __le16 word4;
6082 __le32 reg2;
6083 __le32 reg3;
6084 };
6085
6086 struct ystorm_iscsi_conn_st_ctx {
6087 __le32 reserved[4];
6088 };
6089
6090 struct pstorm_iscsi_tcp_conn_st_ctx {
6091 __le32 tcp[32];
6092 __le32 iscsi[4];
6093 };
6094
6095 struct xstorm_iscsi_tcp_conn_st_ctx {
6096 __le32 reserved_iscsi[40];
6097 __le32 reserved_tcp[4];
6098 };
6099
6100 struct xstorm_iscsi_conn_ag_ctx {
6101 u8 cdu_validation;
6102 u8 state;
6103 u8 flags0;
6104 #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
6105 #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
6106 #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM1_MASK 0x1
6107 #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM1_SHIFT 1
6108 #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED1_MASK 0x1
6109 #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED1_SHIFT 2
6110 #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
6111 #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
6112 #define XSTORM_ISCSI_CONN_AG_CTX_BIT4_MASK 0x1
6113 #define XSTORM_ISCSI_CONN_AG_CTX_BIT4_SHIFT 4
6114 #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED2_MASK 0x1
6115 #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED2_SHIFT 5
6116 #define XSTORM_ISCSI_CONN_AG_CTX_BIT6_MASK 0x1
6117 #define XSTORM_ISCSI_CONN_AG_CTX_BIT6_SHIFT 6
6118 #define XSTORM_ISCSI_CONN_AG_CTX_BIT7_MASK 0x1
6119 #define XSTORM_ISCSI_CONN_AG_CTX_BIT7_SHIFT 7
6120 u8 flags1;
6121 #define XSTORM_ISCSI_CONN_AG_CTX_BIT8_MASK 0x1
6122 #define XSTORM_ISCSI_CONN_AG_CTX_BIT8_SHIFT 0
6123 #define XSTORM_ISCSI_CONN_AG_CTX_BIT9_MASK 0x1
6124 #define XSTORM_ISCSI_CONN_AG_CTX_BIT9_SHIFT 1
6125 #define XSTORM_ISCSI_CONN_AG_CTX_BIT10_MASK 0x1
6126 #define XSTORM_ISCSI_CONN_AG_CTX_BIT10_SHIFT 2
6127 #define XSTORM_ISCSI_CONN_AG_CTX_BIT11_MASK 0x1
6128 #define XSTORM_ISCSI_CONN_AG_CTX_BIT11_SHIFT 3
6129 #define XSTORM_ISCSI_CONN_AG_CTX_BIT12_MASK 0x1
6130 #define XSTORM_ISCSI_CONN_AG_CTX_BIT12_SHIFT 4
6131 #define XSTORM_ISCSI_CONN_AG_CTX_BIT13_MASK 0x1
6132 #define XSTORM_ISCSI_CONN_AG_CTX_BIT13_SHIFT 5
6133 #define XSTORM_ISCSI_CONN_AG_CTX_BIT14_MASK 0x1
6134 #define XSTORM_ISCSI_CONN_AG_CTX_BIT14_SHIFT 6
6135 #define XSTORM_ISCSI_CONN_AG_CTX_TX_TRUNCATE_MASK 0x1
6136 #define XSTORM_ISCSI_CONN_AG_CTX_TX_TRUNCATE_SHIFT 7
6137 u8 flags2;
6138 #define XSTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3
6139 #define XSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 0
6140 #define XSTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3
6141 #define XSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 2
6142 #define XSTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3
6143 #define XSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 4
6144 #define XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_MASK 0x3
6145 #define XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT 6
6146 u8 flags3;
6147 #define XSTORM_ISCSI_CONN_AG_CTX_CF4_MASK 0x3
6148 #define XSTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT 0
6149 #define XSTORM_ISCSI_CONN_AG_CTX_CF5_MASK 0x3
6150 #define XSTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT 2
6151 #define XSTORM_ISCSI_CONN_AG_CTX_CF6_MASK 0x3
6152 #define XSTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT 4
6153 #define XSTORM_ISCSI_CONN_AG_CTX_CF7_MASK 0x3
6154 #define XSTORM_ISCSI_CONN_AG_CTX_CF7_SHIFT 6
6155 u8 flags4;
6156 #define XSTORM_ISCSI_CONN_AG_CTX_CF8_MASK 0x3
6157 #define XSTORM_ISCSI_CONN_AG_CTX_CF8_SHIFT 0
6158 #define XSTORM_ISCSI_CONN_AG_CTX_CF9_MASK 0x3
6159 #define XSTORM_ISCSI_CONN_AG_CTX_CF9_SHIFT 2
6160 #define XSTORM_ISCSI_CONN_AG_CTX_CF10_MASK 0x3
6161 #define XSTORM_ISCSI_CONN_AG_CTX_CF10_SHIFT 4
6162 #define XSTORM_ISCSI_CONN_AG_CTX_CF11_MASK 0x3
6163 #define XSTORM_ISCSI_CONN_AG_CTX_CF11_SHIFT 6
6164 u8 flags5;
6165 #define XSTORM_ISCSI_CONN_AG_CTX_CF12_MASK 0x3
6166 #define XSTORM_ISCSI_CONN_AG_CTX_CF12_SHIFT 0
6167 #define XSTORM_ISCSI_CONN_AG_CTX_CF13_MASK 0x3
6168 #define XSTORM_ISCSI_CONN_AG_CTX_CF13_SHIFT 2
6169 #define XSTORM_ISCSI_CONN_AG_CTX_CF14_MASK 0x3
6170 #define XSTORM_ISCSI_CONN_AG_CTX_CF14_SHIFT 4
6171 #define XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_MASK 0x3
6172 #define XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_SHIFT 6
6173 u8 flags6;
6174 #define XSTORM_ISCSI_CONN_AG_CTX_CF16_MASK 0x3
6175 #define XSTORM_ISCSI_CONN_AG_CTX_CF16_SHIFT 0
6176 #define XSTORM_ISCSI_CONN_AG_CTX_CF17_MASK 0x3
6177 #define XSTORM_ISCSI_CONN_AG_CTX_CF17_SHIFT 2
6178 #define XSTORM_ISCSI_CONN_AG_CTX_CF18_MASK 0x3
6179 #define XSTORM_ISCSI_CONN_AG_CTX_CF18_SHIFT 4
6180 #define XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_MASK 0x3
6181 #define XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_SHIFT 6
6182 u8 flags7;
6183 #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_MASK 0x3
6184 #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
6185 #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q1_MASK 0x3
6186 #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q1_SHIFT 2
6187 #define XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_MASK 0x3
6188 #define XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_SHIFT 4
6189 #define XSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1
6190 #define XSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 6
6191 #define XSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1
6192 #define XSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 7
6193 u8 flags8;
6194 #define XSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1
6195 #define XSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 0
6196 #define XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK 0x1
6197 #define XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT 1
6198 #define XSTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK 0x1
6199 #define XSTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT 2
6200 #define XSTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK 0x1
6201 #define XSTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT 3
6202 #define XSTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK 0x1
6203 #define XSTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT 4
6204 #define XSTORM_ISCSI_CONN_AG_CTX_CF7EN_MASK 0x1
6205 #define XSTORM_ISCSI_CONN_AG_CTX_CF7EN_SHIFT 5
6206 #define XSTORM_ISCSI_CONN_AG_CTX_CF8EN_MASK 0x1
6207 #define XSTORM_ISCSI_CONN_AG_CTX_CF8EN_SHIFT 6
6208 #define XSTORM_ISCSI_CONN_AG_CTX_CF9EN_MASK 0x1
6209 #define XSTORM_ISCSI_CONN_AG_CTX_CF9EN_SHIFT 7
6210 u8 flags9;
6211 #define XSTORM_ISCSI_CONN_AG_CTX_CF10EN_MASK 0x1
6212 #define XSTORM_ISCSI_CONN_AG_CTX_CF10EN_SHIFT 0
6213 #define XSTORM_ISCSI_CONN_AG_CTX_CF11EN_MASK 0x1
6214 #define XSTORM_ISCSI_CONN_AG_CTX_CF11EN_SHIFT 1
6215 #define XSTORM_ISCSI_CONN_AG_CTX_CF12EN_MASK 0x1
6216 #define XSTORM_ISCSI_CONN_AG_CTX_CF12EN_SHIFT 2
6217 #define XSTORM_ISCSI_CONN_AG_CTX_CF13EN_MASK 0x1
6218 #define XSTORM_ISCSI_CONN_AG_CTX_CF13EN_SHIFT 3
6219 #define XSTORM_ISCSI_CONN_AG_CTX_CF14EN_MASK 0x1
6220 #define XSTORM_ISCSI_CONN_AG_CTX_CF14EN_SHIFT 4
6221 #define XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_EN_MASK 0x1
6222 #define XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_EN_SHIFT 5
6223 #define XSTORM_ISCSI_CONN_AG_CTX_CF16EN_MASK 0x1
6224 #define XSTORM_ISCSI_CONN_AG_CTX_CF16EN_SHIFT 6
6225 #define XSTORM_ISCSI_CONN_AG_CTX_CF17EN_MASK 0x1
6226 #define XSTORM_ISCSI_CONN_AG_CTX_CF17EN_SHIFT 7
6227 u8 flags10;
6228 #define XSTORM_ISCSI_CONN_AG_CTX_CF18EN_MASK 0x1
6229 #define XSTORM_ISCSI_CONN_AG_CTX_CF18EN_SHIFT 0
6230 #define XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_EN_MASK 0x1
6231 #define XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_EN_SHIFT 1
6232 #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1
6233 #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2
6234 #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q1_EN_MASK 0x1
6235 #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q1_EN_SHIFT 3
6236 #define XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
6237 #define XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
6238 #define XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_EN_MASK 0x1
6239 #define XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_EN_SHIFT 5
6240 #define XSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1
6241 #define XSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 6
6242 #define XSTORM_ISCSI_CONN_AG_CTX_MORE_TO_SEND_DEC_RULE_EN_MASK 0x1
6243 #define XSTORM_ISCSI_CONN_AG_CTX_MORE_TO_SEND_DEC_RULE_EN_SHIFT 7
6244 u8 flags11;
6245 #define XSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1
6246 #define XSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 0
6247 #define XSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1
6248 #define XSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 1
6249 #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED3_MASK 0x1
6250 #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED3_SHIFT 2
6251 #define XSTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK 0x1
6252 #define XSTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT 3
6253 #define XSTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK 0x1
6254 #define XSTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT 4
6255 #define XSTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK 0x1
6256 #define XSTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT 5
6257 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
6258 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
6259 #define XSTORM_ISCSI_CONN_AG_CTX_RULE9EN_MASK 0x1
6260 #define XSTORM_ISCSI_CONN_AG_CTX_RULE9EN_SHIFT 7
6261 u8 flags12;
6262 #define XSTORM_ISCSI_CONN_AG_CTX_SQ_DEC_RULE_EN_MASK 0x1
6263 #define XSTORM_ISCSI_CONN_AG_CTX_SQ_DEC_RULE_EN_SHIFT 0
6264 #define XSTORM_ISCSI_CONN_AG_CTX_RULE11EN_MASK 0x1
6265 #define XSTORM_ISCSI_CONN_AG_CTX_RULE11EN_SHIFT 1
6266 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
6267 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
6268 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
6269 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
6270 #define XSTORM_ISCSI_CONN_AG_CTX_RULE14EN_MASK 0x1
6271 #define XSTORM_ISCSI_CONN_AG_CTX_RULE14EN_SHIFT 4
6272 #define XSTORM_ISCSI_CONN_AG_CTX_RULE15EN_MASK 0x1
6273 #define XSTORM_ISCSI_CONN_AG_CTX_RULE15EN_SHIFT 5
6274 #define XSTORM_ISCSI_CONN_AG_CTX_RULE16EN_MASK 0x1
6275 #define XSTORM_ISCSI_CONN_AG_CTX_RULE16EN_SHIFT 6
6276 #define XSTORM_ISCSI_CONN_AG_CTX_RULE17EN_MASK 0x1
6277 #define XSTORM_ISCSI_CONN_AG_CTX_RULE17EN_SHIFT 7
6278 u8 flags13;
6279 #define XSTORM_ISCSI_CONN_AG_CTX_R2TQ_DEC_RULE_EN_MASK 0x1
6280 #define XSTORM_ISCSI_CONN_AG_CTX_R2TQ_DEC_RULE_EN_SHIFT 0
6281 #define XSTORM_ISCSI_CONN_AG_CTX_HQ_DEC_RULE_EN_MASK 0x1
6282 #define XSTORM_ISCSI_CONN_AG_CTX_HQ_DEC_RULE_EN_SHIFT 1
6283 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
6284 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
6285 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
6286 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
6287 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
6288 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
6289 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
6290 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
6291 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
6292 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
6293 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
6294 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
6295 u8 flags14;
6296 #define XSTORM_ISCSI_CONN_AG_CTX_BIT16_MASK 0x1
6297 #define XSTORM_ISCSI_CONN_AG_CTX_BIT16_SHIFT 0
6298 #define XSTORM_ISCSI_CONN_AG_CTX_BIT17_MASK 0x1
6299 #define XSTORM_ISCSI_CONN_AG_CTX_BIT17_SHIFT 1
6300 #define XSTORM_ISCSI_CONN_AG_CTX_BIT18_MASK 0x1
6301 #define XSTORM_ISCSI_CONN_AG_CTX_BIT18_SHIFT 2
6302 #define XSTORM_ISCSI_CONN_AG_CTX_BIT19_MASK 0x1
6303 #define XSTORM_ISCSI_CONN_AG_CTX_BIT19_SHIFT 3
6304 #define XSTORM_ISCSI_CONN_AG_CTX_BIT20_MASK 0x1
6305 #define XSTORM_ISCSI_CONN_AG_CTX_BIT20_SHIFT 4
6306 #define XSTORM_ISCSI_CONN_AG_CTX_DUMMY_READ_DONE_MASK 0x1
6307 #define XSTORM_ISCSI_CONN_AG_CTX_DUMMY_READ_DONE_SHIFT 5
6308 #define XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_MASK 0x3
6309 #define XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_SHIFT 6
6310 u8 byte2;
6311 __le16 physical_q0;
6312 __le16 physical_q1;
6313 __le16 dummy_dorq_var;
6314 __le16 sq_cons;
6315 __le16 sq_prod;
6316 __le16 word5;
6317 __le16 slow_io_total_data_tx_update;
6318 u8 byte3;
6319 u8 byte4;
6320 u8 byte5;
6321 u8 byte6;
6322 __le32 reg0;
6323 __le32 reg1;
6324 __le32 reg2;
6325 __le32 more_to_send_seq;
6326 __le32 reg4;
6327 __le32 reg5;
6328 __le32 hq_scan_next_relevant_ack;
6329 __le16 r2tq_prod;
6330 __le16 r2tq_cons;
6331 __le16 hq_prod;
6332 __le16 hq_cons;
6333 __le32 remain_seq;
6334 __le32 bytes_to_next_pdu;
6335 __le32 hq_tcp_seq;
6336 u8 byte7;
6337 u8 byte8;
6338 u8 byte9;
6339 u8 byte10;
6340 u8 byte11;
6341 u8 byte12;
6342 u8 byte13;
6343 u8 byte14;
6344 u8 byte15;
6345 u8 byte16;
6346 __le16 word11;
6347 __le32 reg10;
6348 __le32 reg11;
6349 __le32 exp_stat_sn;
6350 __le32 reg13;
6351 __le32 reg14;
6352 __le32 reg15;
6353 __le32 reg16;
6354 __le32 reg17;
6355 };
6356
6357 struct tstorm_iscsi_conn_ag_ctx {
6358 u8 reserved0;
6359 u8 state;
6360 u8 flags0;
6361 #define TSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
6362 #define TSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
6363 #define TSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK 0x1
6364 #define TSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT 1
6365 #define TSTORM_ISCSI_CONN_AG_CTX_BIT2_MASK 0x1
6366 #define TSTORM_ISCSI_CONN_AG_CTX_BIT2_SHIFT 2
6367 #define TSTORM_ISCSI_CONN_AG_CTX_BIT3_MASK 0x1
6368 #define TSTORM_ISCSI_CONN_AG_CTX_BIT3_SHIFT 3
6369 #define TSTORM_ISCSI_CONN_AG_CTX_BIT4_MASK 0x1
6370 #define TSTORM_ISCSI_CONN_AG_CTX_BIT4_SHIFT 4
6371 #define TSTORM_ISCSI_CONN_AG_CTX_BIT5_MASK 0x1
6372 #define TSTORM_ISCSI_CONN_AG_CTX_BIT5_SHIFT 5
6373 #define TSTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3
6374 #define TSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 6
6375 u8 flags1;
6376 #define TSTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3
6377 #define TSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 0
6378 #define TSTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3
6379 #define TSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 2
6380 #define TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_MASK 0x3
6381 #define TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT 4
6382 #define TSTORM_ISCSI_CONN_AG_CTX_CF4_MASK 0x3
6383 #define TSTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT 6
6384 u8 flags2;
6385 #define TSTORM_ISCSI_CONN_AG_CTX_CF5_MASK 0x3
6386 #define TSTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT 0
6387 #define TSTORM_ISCSI_CONN_AG_CTX_CF6_MASK 0x3
6388 #define TSTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT 2
6389 #define TSTORM_ISCSI_CONN_AG_CTX_CF7_MASK 0x3
6390 #define TSTORM_ISCSI_CONN_AG_CTX_CF7_SHIFT 4
6391 #define TSTORM_ISCSI_CONN_AG_CTX_CF8_MASK 0x3
6392 #define TSTORM_ISCSI_CONN_AG_CTX_CF8_SHIFT 6
6393 u8 flags3;
6394 #define TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_MASK 0x3
6395 #define TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
6396 #define TSTORM_ISCSI_CONN_AG_CTX_CF10_MASK 0x3
6397 #define TSTORM_ISCSI_CONN_AG_CTX_CF10_SHIFT 2
6398 #define TSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1
6399 #define TSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 4
6400 #define TSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1
6401 #define TSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 5
6402 #define TSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1
6403 #define TSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 6
6404 #define TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK 0x1
6405 #define TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT 7
6406 u8 flags4;
6407 #define TSTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK 0x1
6408 #define TSTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT 0
6409 #define TSTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK 0x1
6410 #define TSTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT 1
6411 #define TSTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK 0x1
6412 #define TSTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT 2
6413 #define TSTORM_ISCSI_CONN_AG_CTX_CF7EN_MASK 0x1
6414 #define TSTORM_ISCSI_CONN_AG_CTX_CF7EN_SHIFT 3
6415 #define TSTORM_ISCSI_CONN_AG_CTX_CF8EN_MASK 0x1
6416 #define TSTORM_ISCSI_CONN_AG_CTX_CF8EN_SHIFT 4
6417 #define TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1
6418 #define TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 5
6419 #define TSTORM_ISCSI_CONN_AG_CTX_CF10EN_MASK 0x1
6420 #define TSTORM_ISCSI_CONN_AG_CTX_CF10EN_SHIFT 6
6421 #define TSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1
6422 #define TSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 7
6423 u8 flags5;
6424 #define TSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK 0x1
6425 #define TSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 0
6426 #define TSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1
6427 #define TSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 1
6428 #define TSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1
6429 #define TSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 2
6430 #define TSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK 0x1
6431 #define TSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 3
6432 #define TSTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK 0x1
6433 #define TSTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT 4
6434 #define TSTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK 0x1
6435 #define TSTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT 5
6436 #define TSTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK 0x1
6437 #define TSTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT 6
6438 #define TSTORM_ISCSI_CONN_AG_CTX_RULE8EN_MASK 0x1
6439 #define TSTORM_ISCSI_CONN_AG_CTX_RULE8EN_SHIFT 7
6440 __le32 reg0;
6441 __le32 reg1;
6442 __le32 reg2;
6443 __le32 reg3;
6444 __le32 reg4;
6445 __le32 reg5;
6446 __le32 reg6;
6447 __le32 reg7;
6448 __le32 reg8;
6449 u8 byte2;
6450 u8 byte3;
6451 __le16 word0;
6452 };
6453
6454 struct ustorm_iscsi_conn_ag_ctx {
6455 u8 byte0;
6456 u8 byte1;
6457 u8 flags0;
6458 #define USTORM_ISCSI_CONN_AG_CTX_BIT0_MASK 0x1
6459 #define USTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT 0
6460 #define USTORM_ISCSI_CONN_AG_CTX_BIT1_MASK 0x1
6461 #define USTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT 1
6462 #define USTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3
6463 #define USTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 2
6464 #define USTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3
6465 #define USTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 4
6466 #define USTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3
6467 #define USTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 6
6468 u8 flags1;
6469 #define USTORM_ISCSI_CONN_AG_CTX_CF3_MASK 0x3
6470 #define USTORM_ISCSI_CONN_AG_CTX_CF3_SHIFT 0
6471 #define USTORM_ISCSI_CONN_AG_CTX_CF4_MASK 0x3
6472 #define USTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT 2
6473 #define USTORM_ISCSI_CONN_AG_CTX_CF5_MASK 0x3
6474 #define USTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT 4
6475 #define USTORM_ISCSI_CONN_AG_CTX_CF6_MASK 0x3
6476 #define USTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT 6
6477 u8 flags2;
6478 #define USTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1
6479 #define USTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 0
6480 #define USTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1
6481 #define USTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 1
6482 #define USTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1
6483 #define USTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 2
6484 #define USTORM_ISCSI_CONN_AG_CTX_CF3EN_MASK 0x1
6485 #define USTORM_ISCSI_CONN_AG_CTX_CF3EN_SHIFT 3
6486 #define USTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK 0x1
6487 #define USTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT 4
6488 #define USTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK 0x1
6489 #define USTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT 5
6490 #define USTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK 0x1
6491 #define USTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT 6
6492 #define USTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1
6493 #define USTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 7
6494 u8 flags3;
6495 #define USTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK 0x1
6496 #define USTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 0
6497 #define USTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1
6498 #define USTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 1
6499 #define USTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1
6500 #define USTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 2
6501 #define USTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK 0x1
6502 #define USTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 3
6503 #define USTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK 0x1
6504 #define USTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT 4
6505 #define USTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK 0x1
6506 #define USTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT 5
6507 #define USTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK 0x1
6508 #define USTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT 6
6509 #define USTORM_ISCSI_CONN_AG_CTX_RULE8EN_MASK 0x1
6510 #define USTORM_ISCSI_CONN_AG_CTX_RULE8EN_SHIFT 7
6511 u8 byte2;
6512 u8 byte3;
6513 __le16 word0;
6514 __le16 word1;
6515 __le32 reg0;
6516 __le32 reg1;
6517 __le32 reg2;
6518 __le32 reg3;
6519 __le16 word2;
6520 __le16 word3;
6521 };
6522
6523 struct tstorm_iscsi_conn_st_ctx {
6524 __le32 reserved[40];
6525 };
6526
6527 struct mstorm_iscsi_conn_ag_ctx {
6528 u8 reserved;
6529 u8 state;
6530 u8 flags0;
6531 #define MSTORM_ISCSI_CONN_AG_CTX_BIT0_MASK 0x1
6532 #define MSTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT 0
6533 #define MSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK 0x1
6534 #define MSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT 1
6535 #define MSTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3
6536 #define MSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 2
6537 #define MSTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3
6538 #define MSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 4
6539 #define MSTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3
6540 #define MSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 6
6541 u8 flags1;
6542 #define MSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1
6543 #define MSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 0
6544 #define MSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1
6545 #define MSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 1
6546 #define MSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1
6547 #define MSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 2
6548 #define MSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1
6549 #define MSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 3
6550 #define MSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK 0x1
6551 #define MSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 4
6552 #define MSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1
6553 #define MSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 5
6554 #define MSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1
6555 #define MSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 6
6556 #define MSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK 0x1
6557 #define MSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 7
6558 __le16 word0;
6559 __le16 word1;
6560 __le32 reg0;
6561 __le32 reg1;
6562 };
6563
6564 struct mstorm_iscsi_tcp_conn_st_ctx {
6565 __le32 reserved_tcp[20];
6566 __le32 reserved_iscsi[8];
6567 };
6568
6569 struct ustorm_iscsi_conn_st_ctx {
6570 __le32 reserved[52];
6571 };
6572
6573 struct iscsi_conn_context {
6574 struct ystorm_iscsi_conn_st_ctx ystorm_st_context;
6575 struct regpair ystorm_st_padding[2];
6576 struct pstorm_iscsi_tcp_conn_st_ctx pstorm_st_context;
6577 struct regpair pstorm_st_padding[2];
6578 struct pb_context xpb2_context;
6579 struct xstorm_iscsi_tcp_conn_st_ctx xstorm_st_context;
6580 struct regpair xstorm_st_padding[2];
6581 struct xstorm_iscsi_conn_ag_ctx xstorm_ag_context;
6582 struct tstorm_iscsi_conn_ag_ctx tstorm_ag_context;
6583 struct regpair tstorm_ag_padding[2];
6584 struct timers_context timer_context;
6585 struct ustorm_iscsi_conn_ag_ctx ustorm_ag_context;
6586 struct pb_context upb_context;
6587 struct tstorm_iscsi_conn_st_ctx tstorm_st_context;
6588 struct regpair tstorm_st_padding[2];
6589 struct mstorm_iscsi_conn_ag_ctx mstorm_ag_context;
6590 struct mstorm_iscsi_tcp_conn_st_ctx mstorm_st_context;
6591 struct ustorm_iscsi_conn_st_ctx ustorm_st_context;
6592 };
6593
6594 struct iscsi_init_ramrod_params {
6595 struct iscsi_spe_func_init iscsi_init_spe;
6596 struct tcp_init_params tcp_init;
6597 };
6598
6599 struct ystorm_iscsi_conn_ag_ctx {
6600 u8 byte0;
6601 u8 byte1;
6602 u8 flags0;
6603 #define YSTORM_ISCSI_CONN_AG_CTX_BIT0_MASK 0x1
6604 #define YSTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT 0
6605 #define YSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK 0x1
6606 #define YSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT 1
6607 #define YSTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3
6608 #define YSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 2
6609 #define YSTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3
6610 #define YSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 4
6611 #define YSTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3
6612 #define YSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 6
6613 u8 flags1;
6614 #define YSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1
6615 #define YSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 0
6616 #define YSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1
6617 #define YSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 1
6618 #define YSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1
6619 #define YSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 2
6620 #define YSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1
6621 #define YSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 3
6622 #define YSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK 0x1
6623 #define YSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 4
6624 #define YSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1
6625 #define YSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 5
6626 #define YSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1
6627 #define YSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 6
6628 #define YSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK 0x1
6629 #define YSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 7
6630 u8 byte2;
6631 u8 byte3;
6632 __le16 word0;
6633 __le32 reg0;
6634 __le32 reg1;
6635 __le16 word1;
6636 __le16 word2;
6637 __le16 word3;
6638 __le16 word4;
6639 __le32 reg2;
6640 __le32 reg3;
6641 };
6642 #define VF_MAX_STATIC 192
6643
6644 #define MCP_GLOB_PATH_MAX 2
6645 #define MCP_PORT_MAX 2
6646 #define MCP_GLOB_PORT_MAX 4
6647 #define MCP_GLOB_FUNC_MAX 16
6648
6649 /* Offset from the beginning of the MCP scratchpad */
6650 #define OFFSIZE_OFFSET_SHIFT 0
6651 #define OFFSIZE_OFFSET_MASK 0x0000ffff
6652 /* Size of specific element (not the whole array if any) */
6653 #define OFFSIZE_SIZE_SHIFT 16
6654 #define OFFSIZE_SIZE_MASK 0xffff0000
6655
6656 #define SECTION_OFFSET(_offsize) ((((_offsize & \
6657 OFFSIZE_OFFSET_MASK) >> \
6658 OFFSIZE_OFFSET_SHIFT) << 2))
6659
6660 #define QED_SECTION_SIZE(_offsize) (((_offsize & \
6661 OFFSIZE_SIZE_MASK) >> \
6662 OFFSIZE_SIZE_SHIFT) << 2)
6663
6664 #define SECTION_ADDR(_offsize, idx) (MCP_REG_SCRATCH + \
6665 SECTION_OFFSET(_offsize) + \
6666 (QED_SECTION_SIZE(_offsize) * idx))
6667
6668 #define SECTION_OFFSIZE_ADDR(_pub_base, _section) \
6669 (_pub_base + offsetof(struct mcp_public_data, sections[_section]))
6670
6671 /* PHY configuration */
6672 struct eth_phy_cfg {
6673 u32 speed;
6674 #define ETH_SPEED_AUTONEG 0
6675 #define ETH_SPEED_SMARTLINQ 0x8
6676
6677 u32 pause;
6678 #define ETH_PAUSE_NONE 0x0
6679 #define ETH_PAUSE_AUTONEG 0x1
6680 #define ETH_PAUSE_RX 0x2
6681 #define ETH_PAUSE_TX 0x4
6682
6683 u32 adv_speed;
6684 u32 loopback_mode;
6685 #define ETH_LOOPBACK_NONE (0)
6686 #define ETH_LOOPBACK_INT_PHY (1)
6687 #define ETH_LOOPBACK_EXT_PHY (2)
6688 #define ETH_LOOPBACK_EXT (3)
6689 #define ETH_LOOPBACK_MAC (4)
6690
6691 u32 feature_config_flags;
6692 #define ETH_EEE_MODE_ADV_LPI (1 << 0)
6693 };
6694
6695 struct port_mf_cfg {
6696 u32 dynamic_cfg;
6697 #define PORT_MF_CFG_OV_TAG_MASK 0x0000ffff
6698 #define PORT_MF_CFG_OV_TAG_SHIFT 0
6699 #define PORT_MF_CFG_OV_TAG_DEFAULT PORT_MF_CFG_OV_TAG_MASK
6700
6701 u32 reserved[1];
6702 };
6703
6704 struct eth_stats {
6705 u64 r64;
6706 u64 r127;
6707 u64 r255;
6708 u64 r511;
6709 u64 r1023;
6710 u64 r1518;
6711 u64 r1522;
6712 u64 r2047;
6713 u64 r4095;
6714 u64 r9216;
6715 u64 r16383;
6716 u64 rfcs;
6717 u64 rxcf;
6718 u64 rxpf;
6719 u64 rxpp;
6720 u64 raln;
6721 u64 rfcr;
6722 u64 rovr;
6723 u64 rjbr;
6724 u64 rund;
6725 u64 rfrg;
6726 u64 t64;
6727 u64 t127;
6728 u64 t255;
6729 u64 t511;
6730 u64 t1023;
6731 u64 t1518;
6732 u64 t2047;
6733 u64 t4095;
6734 u64 t9216;
6735 u64 t16383;
6736 u64 txpf;
6737 u64 txpp;
6738 u64 tlpiec;
6739 u64 tncl;
6740 u64 rbyte;
6741 u64 rxuca;
6742 u64 rxmca;
6743 u64 rxbca;
6744 u64 rxpok;
6745 u64 tbyte;
6746 u64 txuca;
6747 u64 txmca;
6748 u64 txbca;
6749 u64 txcf;
6750 };
6751
6752 struct brb_stats {
6753 u64 brb_truncate[8];
6754 u64 brb_discard[8];
6755 };
6756
6757 struct port_stats {
6758 struct brb_stats brb;
6759 struct eth_stats eth;
6760 };
6761
6762 struct couple_mode_teaming {
6763 u8 port_cmt[MCP_GLOB_PORT_MAX];
6764 #define PORT_CMT_IN_TEAM (1 << 0)
6765
6766 #define PORT_CMT_PORT_ROLE (1 << 1)
6767 #define PORT_CMT_PORT_INACTIVE (0 << 1)
6768 #define PORT_CMT_PORT_ACTIVE (1 << 1)
6769
6770 #define PORT_CMT_TEAM_MASK (1 << 2)
6771 #define PORT_CMT_TEAM0 (0 << 2)
6772 #define PORT_CMT_TEAM1 (1 << 2)
6773 };
6774
6775 #define LLDP_CHASSIS_ID_STAT_LEN 4
6776 #define LLDP_PORT_ID_STAT_LEN 4
6777 #define DCBX_MAX_APP_PROTOCOL 32
6778 #define MAX_SYSTEM_LLDP_TLV_DATA 32
6779
6780 enum _lldp_agent {
6781 LLDP_NEAREST_BRIDGE = 0,
6782 LLDP_NEAREST_NON_TPMR_BRIDGE,
6783 LLDP_NEAREST_CUSTOMER_BRIDGE,
6784 LLDP_MAX_LLDP_AGENTS
6785 };
6786
6787 struct lldp_config_params_s {
6788 u32 config;
6789 #define LLDP_CONFIG_TX_INTERVAL_MASK 0x000000ff
6790 #define LLDP_CONFIG_TX_INTERVAL_SHIFT 0
6791 #define LLDP_CONFIG_HOLD_MASK 0x00000f00
6792 #define LLDP_CONFIG_HOLD_SHIFT 8
6793 #define LLDP_CONFIG_MAX_CREDIT_MASK 0x0000f000
6794 #define LLDP_CONFIG_MAX_CREDIT_SHIFT 12
6795 #define LLDP_CONFIG_ENABLE_RX_MASK 0x40000000
6796 #define LLDP_CONFIG_ENABLE_RX_SHIFT 30
6797 #define LLDP_CONFIG_ENABLE_TX_MASK 0x80000000
6798 #define LLDP_CONFIG_ENABLE_TX_SHIFT 31
6799 u32 local_chassis_id[LLDP_CHASSIS_ID_STAT_LEN];
6800 u32 local_port_id[LLDP_PORT_ID_STAT_LEN];
6801 };
6802
6803 struct lldp_status_params_s {
6804 u32 prefix_seq_num;
6805 u32 status;
6806 u32 peer_chassis_id[LLDP_CHASSIS_ID_STAT_LEN];
6807 u32 peer_port_id[LLDP_PORT_ID_STAT_LEN];
6808 u32 suffix_seq_num;
6809 };
6810
6811 struct dcbx_ets_feature {
6812 u32 flags;
6813 #define DCBX_ETS_ENABLED_MASK 0x00000001
6814 #define DCBX_ETS_ENABLED_SHIFT 0
6815 #define DCBX_ETS_WILLING_MASK 0x00000002
6816 #define DCBX_ETS_WILLING_SHIFT 1
6817 #define DCBX_ETS_ERROR_MASK 0x00000004
6818 #define DCBX_ETS_ERROR_SHIFT 2
6819 #define DCBX_ETS_CBS_MASK 0x00000008
6820 #define DCBX_ETS_CBS_SHIFT 3
6821 #define DCBX_ETS_MAX_TCS_MASK 0x000000f0
6822 #define DCBX_ETS_MAX_TCS_SHIFT 4
6823 #define DCBX_ISCSI_OOO_TC_MASK 0x00000f00
6824 #define DCBX_ISCSI_OOO_TC_SHIFT 8
6825 u32 pri_tc_tbl[1];
6826 #define DCBX_ISCSI_OOO_TC (4)
6827
6828 #define NIG_ETS_ISCSI_OOO_CLIENT_OFFSET (DCBX_ISCSI_OOO_TC + 1)
6829 #define DCBX_CEE_STRICT_PRIORITY 0xf
6830 u32 tc_bw_tbl[2];
6831 u32 tc_tsa_tbl[2];
6832 #define DCBX_ETS_TSA_STRICT 0
6833 #define DCBX_ETS_TSA_CBS 1
6834 #define DCBX_ETS_TSA_ETS 2
6835 };
6836
6837 struct dcbx_app_priority_entry {
6838 u32 entry;
6839 #define DCBX_APP_PRI_MAP_MASK 0x000000ff
6840 #define DCBX_APP_PRI_MAP_SHIFT 0
6841 #define DCBX_APP_PRI_0 0x01
6842 #define DCBX_APP_PRI_1 0x02
6843 #define DCBX_APP_PRI_2 0x04
6844 #define DCBX_APP_PRI_3 0x08
6845 #define DCBX_APP_PRI_4 0x10
6846 #define DCBX_APP_PRI_5 0x20
6847 #define DCBX_APP_PRI_6 0x40
6848 #define DCBX_APP_PRI_7 0x80
6849 #define DCBX_APP_SF_MASK 0x00000300
6850 #define DCBX_APP_SF_SHIFT 8
6851 #define DCBX_APP_SF_ETHTYPE 0
6852 #define DCBX_APP_SF_PORT 1
6853 #define DCBX_APP_SF_IEEE_MASK 0x0000f000
6854 #define DCBX_APP_SF_IEEE_SHIFT 12
6855 #define DCBX_APP_SF_IEEE_RESERVED 0
6856 #define DCBX_APP_SF_IEEE_ETHTYPE 1
6857 #define DCBX_APP_SF_IEEE_TCP_PORT 2
6858 #define DCBX_APP_SF_IEEE_UDP_PORT 3
6859 #define DCBX_APP_SF_IEEE_TCP_UDP_PORT 4
6860
6861 #define DCBX_APP_PROTOCOL_ID_MASK 0xffff0000
6862 #define DCBX_APP_PROTOCOL_ID_SHIFT 16
6863 };
6864
6865 struct dcbx_app_priority_feature {
6866 u32 flags;
6867 #define DCBX_APP_ENABLED_MASK 0x00000001
6868 #define DCBX_APP_ENABLED_SHIFT 0
6869 #define DCBX_APP_WILLING_MASK 0x00000002
6870 #define DCBX_APP_WILLING_SHIFT 1
6871 #define DCBX_APP_ERROR_MASK 0x00000004
6872 #define DCBX_APP_ERROR_SHIFT 2
6873 #define DCBX_APP_MAX_TCS_MASK 0x0000f000
6874 #define DCBX_APP_MAX_TCS_SHIFT 12
6875 #define DCBX_APP_NUM_ENTRIES_MASK 0x00ff0000
6876 #define DCBX_APP_NUM_ENTRIES_SHIFT 16
6877 struct dcbx_app_priority_entry app_pri_tbl[DCBX_MAX_APP_PROTOCOL];
6878 };
6879
6880 struct dcbx_features {
6881 struct dcbx_ets_feature ets;
6882 u32 pfc;
6883 #define DCBX_PFC_PRI_EN_BITMAP_MASK 0x000000ff
6884 #define DCBX_PFC_PRI_EN_BITMAP_SHIFT 0
6885 #define DCBX_PFC_PRI_EN_BITMAP_PRI_0 0x01
6886 #define DCBX_PFC_PRI_EN_BITMAP_PRI_1 0x02
6887 #define DCBX_PFC_PRI_EN_BITMAP_PRI_2 0x04
6888 #define DCBX_PFC_PRI_EN_BITMAP_PRI_3 0x08
6889 #define DCBX_PFC_PRI_EN_BITMAP_PRI_4 0x10
6890 #define DCBX_PFC_PRI_EN_BITMAP_PRI_5 0x20
6891 #define DCBX_PFC_PRI_EN_BITMAP_PRI_6 0x40
6892 #define DCBX_PFC_PRI_EN_BITMAP_PRI_7 0x80
6893
6894 #define DCBX_PFC_FLAGS_MASK 0x0000ff00
6895 #define DCBX_PFC_FLAGS_SHIFT 8
6896 #define DCBX_PFC_CAPS_MASK 0x00000f00
6897 #define DCBX_PFC_CAPS_SHIFT 8
6898 #define DCBX_PFC_MBC_MASK 0x00004000
6899 #define DCBX_PFC_MBC_SHIFT 14
6900 #define DCBX_PFC_WILLING_MASK 0x00008000
6901 #define DCBX_PFC_WILLING_SHIFT 15
6902 #define DCBX_PFC_ENABLED_MASK 0x00010000
6903 #define DCBX_PFC_ENABLED_SHIFT 16
6904 #define DCBX_PFC_ERROR_MASK 0x00020000
6905 #define DCBX_PFC_ERROR_SHIFT 17
6906
6907 struct dcbx_app_priority_feature app;
6908 };
6909
6910 struct dcbx_local_params {
6911 u32 config;
6912 #define DCBX_CONFIG_VERSION_MASK 0x00000007
6913 #define DCBX_CONFIG_VERSION_SHIFT 0
6914 #define DCBX_CONFIG_VERSION_DISABLED 0
6915 #define DCBX_CONFIG_VERSION_IEEE 1
6916 #define DCBX_CONFIG_VERSION_CEE 2
6917 #define DCBX_CONFIG_VERSION_STATIC 4
6918
6919 u32 flags;
6920 struct dcbx_features features;
6921 };
6922
6923 struct dcbx_mib {
6924 u32 prefix_seq_num;
6925 u32 flags;
6926 struct dcbx_features features;
6927 u32 suffix_seq_num;
6928 };
6929
6930 struct lldp_system_tlvs_buffer_s {
6931 u16 valid;
6932 u16 length;
6933 u32 data[MAX_SYSTEM_LLDP_TLV_DATA];
6934 };
6935
6936 struct dcb_dscp_map {
6937 u32 flags;
6938 #define DCB_DSCP_ENABLE_MASK 0x1
6939 #define DCB_DSCP_ENABLE_SHIFT 0
6940 #define DCB_DSCP_ENABLE 1
6941 u32 dscp_pri_map[8];
6942 };
6943
6944 struct public_global {
6945 u32 max_path;
6946 u32 max_ports;
6947 u32 debug_mb_offset;
6948 u32 phymod_dbg_mb_offset;
6949 struct couple_mode_teaming cmt;
6950 s32 internal_temperature;
6951 u32 mfw_ver;
6952 u32 running_bundle_id;
6953 s32 external_temperature;
6954 u32 mdump_reason;
6955 };
6956
6957 struct fw_flr_mb {
6958 u32 aggint;
6959 u32 opgen_addr;
6960 u32 accum_ack;
6961 };
6962
6963 struct public_path {
6964 struct fw_flr_mb flr_mb;
6965 u32 mcp_vf_disabled[VF_MAX_STATIC / 32];
6966
6967 u32 process_kill;
6968 #define PROCESS_KILL_COUNTER_MASK 0x0000ffff
6969 #define PROCESS_KILL_COUNTER_SHIFT 0
6970 #define PROCESS_KILL_GLOB_AEU_BIT_MASK 0xffff0000
6971 #define PROCESS_KILL_GLOB_AEU_BIT_SHIFT 16
6972 #define GLOBAL_AEU_BIT(aeu_reg_id, aeu_bit) (aeu_reg_id * 32 + aeu_bit)
6973 };
6974
6975 struct public_port {
6976 u32 validity_map;
6977
6978 u32 link_status;
6979 #define LINK_STATUS_LINK_UP 0x00000001
6980 #define LINK_STATUS_SPEED_AND_DUPLEX_MASK 0x0000001e
6981 #define LINK_STATUS_SPEED_AND_DUPLEX_1000THD (1 << 1)
6982 #define LINK_STATUS_SPEED_AND_DUPLEX_1000TFD (2 << 1)
6983 #define LINK_STATUS_SPEED_AND_DUPLEX_10G (3 << 1)
6984 #define LINK_STATUS_SPEED_AND_DUPLEX_20G (4 << 1)
6985 #define LINK_STATUS_SPEED_AND_DUPLEX_40G (5 << 1)
6986 #define LINK_STATUS_SPEED_AND_DUPLEX_50G (6 << 1)
6987 #define LINK_STATUS_SPEED_AND_DUPLEX_100G (7 << 1)
6988 #define LINK_STATUS_SPEED_AND_DUPLEX_25G (8 << 1)
6989
6990 #define LINK_STATUS_AUTO_NEGOTIATE_ENABLED 0x00000020
6991
6992 #define LINK_STATUS_AUTO_NEGOTIATE_COMPLETE 0x00000040
6993 #define LINK_STATUS_PARALLEL_DETECTION_USED 0x00000080
6994
6995 #define LINK_STATUS_PFC_ENABLED 0x00000100
6996 #define LINK_STATUS_LINK_PARTNER_1000TFD_CAPABLE 0x00000200
6997 #define LINK_STATUS_LINK_PARTNER_1000THD_CAPABLE 0x00000400
6998 #define LINK_STATUS_LINK_PARTNER_10G_CAPABLE 0x00000800
6999 #define LINK_STATUS_LINK_PARTNER_20G_CAPABLE 0x00001000
7000 #define LINK_STATUS_LINK_PARTNER_40G_CAPABLE 0x00002000
7001 #define LINK_STATUS_LINK_PARTNER_50G_CAPABLE 0x00004000
7002 #define LINK_STATUS_LINK_PARTNER_100G_CAPABLE 0x00008000
7003 #define LINK_STATUS_LINK_PARTNER_25G_CAPABLE 0x00010000
7004
7005 #define LINK_STATUS_LINK_PARTNER_FLOW_CONTROL_MASK 0x000C0000
7006 #define LINK_STATUS_LINK_PARTNER_NOT_PAUSE_CAPABLE (0 << 18)
7007 #define LINK_STATUS_LINK_PARTNER_SYMMETRIC_PAUSE (1 << 18)
7008 #define LINK_STATUS_LINK_PARTNER_ASYMMETRIC_PAUSE (2 << 18)
7009 #define LINK_STATUS_LINK_PARTNER_BOTH_PAUSE (3 << 18)
7010
7011 #define LINK_STATUS_SFP_TX_FAULT 0x00100000
7012 #define LINK_STATUS_TX_FLOW_CONTROL_ENABLED 0x00200000
7013 #define LINK_STATUS_RX_FLOW_CONTROL_ENABLED 0x00400000
7014 #define LINK_STATUS_RX_SIGNAL_PRESENT 0x00800000
7015 #define LINK_STATUS_MAC_LOCAL_FAULT 0x01000000
7016 #define LINK_STATUS_MAC_REMOTE_FAULT 0x02000000
7017 #define LINK_STATUS_UNSUPPORTED_SPD_REQ 0x04000000
7018
7019 u32 link_status1;
7020 u32 ext_phy_fw_version;
7021 u32 drv_phy_cfg_addr;
7022
7023 u32 port_stx;
7024
7025 u32 stat_nig_timer;
7026
7027 struct port_mf_cfg port_mf_config;
7028 struct port_stats stats;
7029
7030 u32 media_type;
7031 #define MEDIA_UNSPECIFIED 0x0
7032 #define MEDIA_SFPP_10G_FIBER 0x1
7033 #define MEDIA_XFP_FIBER 0x2
7034 #define MEDIA_DA_TWINAX 0x3
7035 #define MEDIA_BASE_T 0x4
7036 #define MEDIA_SFP_1G_FIBER 0x5
7037 #define MEDIA_MODULE_FIBER 0x6
7038 #define MEDIA_KR 0xf0
7039 #define MEDIA_NOT_PRESENT 0xff
7040
7041 u32 lfa_status;
7042 u32 link_change_count;
7043
7044 struct lldp_config_params_s lldp_config_params[LLDP_MAX_LLDP_AGENTS];
7045 struct lldp_status_params_s lldp_status_params[LLDP_MAX_LLDP_AGENTS];
7046 struct lldp_system_tlvs_buffer_s system_lldp_tlvs_buf;
7047
7048 /* DCBX related MIB */
7049 struct dcbx_local_params local_admin_dcbx_mib;
7050 struct dcbx_mib remote_dcbx_mib;
7051 struct dcbx_mib operational_dcbx_mib;
7052
7053 u32 reserved[2];
7054 u32 transceiver_data;
7055 #define ETH_TRANSCEIVER_STATE_MASK 0x000000FF
7056 #define ETH_TRANSCEIVER_STATE_SHIFT 0x00000000
7057 #define ETH_TRANSCEIVER_STATE_UNPLUGGED 0x00000000
7058 #define ETH_TRANSCEIVER_STATE_PRESENT 0x00000001
7059 #define ETH_TRANSCEIVER_STATE_VALID 0x00000003
7060 #define ETH_TRANSCEIVER_STATE_UPDATING 0x00000008
7061
7062 u32 wol_info;
7063 u32 wol_pkt_len;
7064 u32 wol_pkt_details;
7065 struct dcb_dscp_map dcb_dscp_map;
7066 };
7067
7068 struct public_func {
7069 u32 reserved0[2];
7070
7071 u32 mtu_size;
7072
7073 u32 reserved[7];
7074
7075 u32 config;
7076 #define FUNC_MF_CFG_FUNC_HIDE 0x00000001
7077 #define FUNC_MF_CFG_PAUSE_ON_HOST_RING 0x00000002
7078 #define FUNC_MF_CFG_PAUSE_ON_HOST_RING_SHIFT 0x00000001
7079
7080 #define FUNC_MF_CFG_PROTOCOL_MASK 0x000000f0
7081 #define FUNC_MF_CFG_PROTOCOL_SHIFT 4
7082 #define FUNC_MF_CFG_PROTOCOL_ETHERNET 0x00000000
7083 #define FUNC_MF_CFG_PROTOCOL_ISCSI 0x00000010
7084 #define FUNC_MF_CFG_PROTOCOL_ROCE 0x00000030
7085 #define FUNC_MF_CFG_PROTOCOL_MAX 0x00000030
7086
7087 #define FUNC_MF_CFG_MIN_BW_MASK 0x0000ff00
7088 #define FUNC_MF_CFG_MIN_BW_SHIFT 8
7089 #define FUNC_MF_CFG_MIN_BW_DEFAULT 0x00000000
7090 #define FUNC_MF_CFG_MAX_BW_MASK 0x00ff0000
7091 #define FUNC_MF_CFG_MAX_BW_SHIFT 16
7092 #define FUNC_MF_CFG_MAX_BW_DEFAULT 0x00640000
7093
7094 u32 status;
7095 #define FUNC_STATUS_VLINK_DOWN 0x00000001
7096
7097 u32 mac_upper;
7098 #define FUNC_MF_CFG_UPPERMAC_MASK 0x0000ffff
7099 #define FUNC_MF_CFG_UPPERMAC_SHIFT 0
7100 #define FUNC_MF_CFG_UPPERMAC_DEFAULT FUNC_MF_CFG_UPPERMAC_MASK
7101 u32 mac_lower;
7102 #define FUNC_MF_CFG_LOWERMAC_DEFAULT 0xffffffff
7103
7104 u32 fcoe_wwn_port_name_upper;
7105 u32 fcoe_wwn_port_name_lower;
7106
7107 u32 fcoe_wwn_node_name_upper;
7108 u32 fcoe_wwn_node_name_lower;
7109
7110 u32 ovlan_stag;
7111 #define FUNC_MF_CFG_OV_STAG_MASK 0x0000ffff
7112 #define FUNC_MF_CFG_OV_STAG_SHIFT 0
7113 #define FUNC_MF_CFG_OV_STAG_DEFAULT FUNC_MF_CFG_OV_STAG_MASK
7114
7115 u32 pf_allocation;
7116
7117 u32 preserve_data;
7118
7119 u32 driver_last_activity_ts;
7120
7121 u32 drv_ack_vf_disabled[VF_MAX_STATIC / 32];
7122
7123 u32 drv_id;
7124 #define DRV_ID_PDA_COMP_VER_MASK 0x0000ffff
7125 #define DRV_ID_PDA_COMP_VER_SHIFT 0
7126
7127 #define DRV_ID_MCP_HSI_VER_MASK 0x00ff0000
7128 #define DRV_ID_MCP_HSI_VER_SHIFT 16
7129 #define DRV_ID_MCP_HSI_VER_CURRENT (1 << DRV_ID_MCP_HSI_VER_SHIFT)
7130
7131 #define DRV_ID_DRV_TYPE_MASK 0x7f000000
7132 #define DRV_ID_DRV_TYPE_SHIFT 24
7133 #define DRV_ID_DRV_TYPE_UNKNOWN (0 << DRV_ID_DRV_TYPE_SHIFT)
7134 #define DRV_ID_DRV_TYPE_LINUX (1 << DRV_ID_DRV_TYPE_SHIFT)
7135
7136 #define DRV_ID_DRV_INIT_HW_MASK 0x80000000
7137 #define DRV_ID_DRV_INIT_HW_SHIFT 31
7138 #define DRV_ID_DRV_INIT_HW_FLAG (1 << DRV_ID_DRV_INIT_HW_SHIFT)
7139 };
7140
7141 struct mcp_mac {
7142 u32 mac_upper;
7143 u32 mac_lower;
7144 };
7145
7146 struct mcp_val64 {
7147 u32 lo;
7148 u32 hi;
7149 };
7150
7151 struct mcp_file_att {
7152 u32 nvm_start_addr;
7153 u32 len;
7154 };
7155
7156 struct bist_nvm_image_att {
7157 u32 return_code;
7158 u32 image_type;
7159 u32 nvm_start_addr;
7160 u32 len;
7161 };
7162
7163 #define MCP_DRV_VER_STR_SIZE 16
7164 #define MCP_DRV_VER_STR_SIZE_DWORD (MCP_DRV_VER_STR_SIZE / sizeof(u32))
7165 #define MCP_DRV_NVM_BUF_LEN 32
7166 struct drv_version_stc {
7167 u32 version;
7168 u8 name[MCP_DRV_VER_STR_SIZE - 4];
7169 };
7170
7171 struct lan_stats_stc {
7172 u64 ucast_rx_pkts;
7173 u64 ucast_tx_pkts;
7174 u32 fcs_err;
7175 u32 rserved;
7176 };
7177
7178 struct ocbb_data_stc {
7179 u32 ocbb_host_addr;
7180 u32 ocsd_host_addr;
7181 u32 ocsd_req_update_interval;
7182 };
7183
7184 #define MAX_NUM_OF_SENSORS 7
7185 struct temperature_status_stc {
7186 u32 num_of_sensors;
7187 u32 sensor[MAX_NUM_OF_SENSORS];
7188 };
7189
7190 /* crash dump configuration header */
7191 struct mdump_config_stc {
7192 u32 version;
7193 u32 config;
7194 u32 epoc;
7195 u32 num_of_logs;
7196 u32 valid_logs;
7197 };
7198
7199 union drv_union_data {
7200 u32 ver_str[MCP_DRV_VER_STR_SIZE_DWORD];
7201 struct mcp_mac wol_mac;
7202
7203 struct eth_phy_cfg drv_phy_cfg;
7204
7205 struct mcp_val64 val64;
7206
7207 u8 raw_data[MCP_DRV_NVM_BUF_LEN];
7208
7209 struct mcp_file_att file_att;
7210
7211 u32 ack_vf_disabled[VF_MAX_STATIC / 32];
7212
7213 struct drv_version_stc drv_version;
7214
7215 struct lan_stats_stc lan_stats;
7216 u64 reserved_stats[11];
7217 struct ocbb_data_stc ocbb_info;
7218 struct temperature_status_stc temp_info;
7219 struct bist_nvm_image_att nvm_image_att;
7220 struct mdump_config_stc mdump_config;
7221 };
7222
7223 struct public_drv_mb {
7224 u32 drv_mb_header;
7225 #define DRV_MSG_CODE_MASK 0xffff0000
7226 #define DRV_MSG_CODE_LOAD_REQ 0x10000000
7227 #define DRV_MSG_CODE_LOAD_DONE 0x11000000
7228 #define DRV_MSG_CODE_INIT_HW 0x12000000
7229 #define DRV_MSG_CODE_UNLOAD_REQ 0x20000000
7230 #define DRV_MSG_CODE_UNLOAD_DONE 0x21000000
7231 #define DRV_MSG_CODE_INIT_PHY 0x22000000
7232 #define DRV_MSG_CODE_LINK_RESET 0x23000000
7233 #define DRV_MSG_CODE_SET_DCBX 0x25000000
7234
7235 #define DRV_MSG_CODE_BW_UPDATE_ACK 0x32000000
7236 #define DRV_MSG_CODE_NIG_DRAIN 0x30000000
7237 #define DRV_MSG_CODE_VF_DISABLED_DONE 0xc0000000
7238 #define DRV_MSG_CODE_CFG_VF_MSIX 0xc0010000
7239 #define DRV_MSG_CODE_MCP_RESET 0x00090000
7240 #define DRV_MSG_CODE_SET_VERSION 0x000f0000
7241
7242 #define DRV_MSG_CODE_BIST_TEST 0x001e0000
7243 #define DRV_MSG_CODE_SET_LED_MODE 0x00200000
7244
7245 #define DRV_MSG_SEQ_NUMBER_MASK 0x0000ffff
7246
7247 u32 drv_mb_param;
7248 #define DRV_MB_PARAM_UNLOAD_WOL_MCP 0x00000001
7249 #define DRV_MB_PARAM_DCBX_NOTIFY_MASK 0x000000FF
7250 #define DRV_MB_PARAM_DCBX_NOTIFY_SHIFT 3
7251 #define DRV_MB_PARAM_CFG_VF_MSIX_VF_ID_SHIFT 0
7252 #define DRV_MB_PARAM_CFG_VF_MSIX_VF_ID_MASK 0x000000FF
7253 #define DRV_MB_PARAM_CFG_VF_MSIX_SB_NUM_SHIFT 8
7254 #define DRV_MB_PARAM_CFG_VF_MSIX_SB_NUM_MASK 0x0000FF00
7255 #define DRV_MB_PARAM_LLDP_SEND_MASK 0x00000001
7256 #define DRV_MB_PARAM_LLDP_SEND_SHIFT 0
7257
7258
7259 #define DRV_MB_PARAM_SET_LED_MODE_OPER 0x0
7260 #define DRV_MB_PARAM_SET_LED_MODE_ON 0x1
7261 #define DRV_MB_PARAM_SET_LED_MODE_OFF 0x2
7262
7263 #define DRV_MB_PARAM_BIST_REGISTER_TEST 1
7264 #define DRV_MB_PARAM_BIST_CLOCK_TEST 2
7265
7266 #define DRV_MB_PARAM_BIST_RC_UNKNOWN 0
7267 #define DRV_MB_PARAM_BIST_RC_PASSED 1
7268 #define DRV_MB_PARAM_BIST_RC_FAILED 2
7269 #define DRV_MB_PARAM_BIST_RC_INVALID_PARAMETER 3
7270
7271 #define DRV_MB_PARAM_BIST_TEST_INDEX_SHIFT 0
7272 #define DRV_MB_PARAM_BIST_TEST_INDEX_MASK 0x000000FF
7273
7274 u32 fw_mb_header;
7275 #define FW_MSG_CODE_MASK 0xffff0000
7276 #define FW_MSG_CODE_DRV_LOAD_ENGINE 0x10100000
7277 #define FW_MSG_CODE_DRV_LOAD_PORT 0x10110000
7278 #define FW_MSG_CODE_DRV_LOAD_FUNCTION 0x10120000
7279 #define FW_MSG_CODE_DRV_LOAD_REFUSED_PDA 0x10200000
7280 #define FW_MSG_CODE_DRV_LOAD_REFUSED_HSI 0x10210000
7281 #define FW_MSG_CODE_DRV_LOAD_REFUSED_DIAG 0x10220000
7282 #define FW_MSG_CODE_DRV_LOAD_DONE 0x11100000
7283 #define FW_MSG_CODE_DRV_UNLOAD_ENGINE 0x20110000
7284 #define FW_MSG_CODE_DRV_UNLOAD_PORT 0x20120000
7285 #define FW_MSG_CODE_DRV_UNLOAD_FUNCTION 0x20130000
7286 #define FW_MSG_CODE_DRV_UNLOAD_DONE 0x21100000
7287 #define FW_MSG_CODE_DRV_CFG_VF_MSIX_DONE 0xb0010000
7288 #define FW_MSG_CODE_OK 0x00160000
7289
7290 #define FW_MSG_SEQ_NUMBER_MASK 0x0000ffff
7291
7292 u32 fw_mb_param;
7293
7294 u32 drv_pulse_mb;
7295 #define DRV_PULSE_SEQ_MASK 0x00007fff
7296 #define DRV_PULSE_SYSTEM_TIME_MASK 0xffff0000
7297 #define DRV_PULSE_ALWAYS_ALIVE 0x00008000
7298
7299 u32 mcp_pulse_mb;
7300 #define MCP_PULSE_SEQ_MASK 0x00007fff
7301 #define MCP_PULSE_ALWAYS_ALIVE 0x00008000
7302 #define MCP_EVENT_MASK 0xffff0000
7303 #define MCP_EVENT_OTHER_DRIVER_RESET_REQ 0x00010000
7304
7305 union drv_union_data union_data;
7306 };
7307
7308 enum MFW_DRV_MSG_TYPE {
7309 MFW_DRV_MSG_LINK_CHANGE,
7310 MFW_DRV_MSG_FLR_FW_ACK_FAILED,
7311 MFW_DRV_MSG_VF_DISABLED,
7312 MFW_DRV_MSG_LLDP_DATA_UPDATED,
7313 MFW_DRV_MSG_DCBX_REMOTE_MIB_UPDATED,
7314 MFW_DRV_MSG_DCBX_OPERATIONAL_MIB_UPDATED,
7315 MFW_DRV_MSG_RESERVED4,
7316 MFW_DRV_MSG_BW_UPDATE,
7317 MFW_DRV_MSG_BW_UPDATE5,
7318 MFW_DRV_MSG_BW_UPDATE6,
7319 MFW_DRV_MSG_BW_UPDATE7,
7320 MFW_DRV_MSG_BW_UPDATE8,
7321 MFW_DRV_MSG_BW_UPDATE9,
7322 MFW_DRV_MSG_BW_UPDATE10,
7323 MFW_DRV_MSG_TRANSCEIVER_STATE_CHANGE,
7324 MFW_DRV_MSG_BW_UPDATE11,
7325 MFW_DRV_MSG_MAX
7326 };
7327
7328 #define MFW_DRV_MSG_MAX_DWORDS(msgs) (((msgs - 1) >> 2) + 1)
7329 #define MFW_DRV_MSG_DWORD(msg_id) (msg_id >> 2)
7330 #define MFW_DRV_MSG_OFFSET(msg_id) ((msg_id & 0x3) << 3)
7331 #define MFW_DRV_MSG_MASK(msg_id) (0xff << MFW_DRV_MSG_OFFSET(msg_id))
7332
7333 struct public_mfw_mb {
7334 u32 sup_msgs;
7335 u32 msg[MFW_DRV_MSG_MAX_DWORDS(MFW_DRV_MSG_MAX)];
7336 u32 ack[MFW_DRV_MSG_MAX_DWORDS(MFW_DRV_MSG_MAX)];
7337 };
7338
7339 enum public_sections {
7340 PUBLIC_DRV_MB,
7341 PUBLIC_MFW_MB,
7342 PUBLIC_GLOBAL,
7343 PUBLIC_PATH,
7344 PUBLIC_PORT,
7345 PUBLIC_FUNC,
7346 PUBLIC_MAX_SECTIONS
7347 };
7348
7349 struct mcp_public_data {
7350 u32 num_sections;
7351 u32 sections[PUBLIC_MAX_SECTIONS];
7352 struct public_drv_mb drv_mb[MCP_GLOB_FUNC_MAX];
7353 struct public_mfw_mb mfw_mb[MCP_GLOB_FUNC_MAX];
7354 struct public_global global;
7355 struct public_path path[MCP_GLOB_PATH_MAX];
7356 struct public_port port[MCP_GLOB_PORT_MAX];
7357 struct public_func func[MCP_GLOB_FUNC_MAX];
7358 };
7359
7360 struct nvm_cfg_mac_address {
7361 u32 mac_addr_hi;
7362 #define NVM_CFG_MAC_ADDRESS_HI_MASK 0x0000FFFF
7363 #define NVM_CFG_MAC_ADDRESS_HI_OFFSET 0
7364 u32 mac_addr_lo;
7365 };
7366
7367 struct nvm_cfg1_glob {
7368 u32 generic_cont0;
7369 #define NVM_CFG1_GLOB_MF_MODE_MASK 0x00000FF0
7370 #define NVM_CFG1_GLOB_MF_MODE_OFFSET 4
7371 #define NVM_CFG1_GLOB_MF_MODE_MF_ALLOWED 0x0
7372 #define NVM_CFG1_GLOB_MF_MODE_DEFAULT 0x1
7373 #define NVM_CFG1_GLOB_MF_MODE_SPIO4 0x2
7374 #define NVM_CFG1_GLOB_MF_MODE_NPAR1_0 0x3
7375 #define NVM_CFG1_GLOB_MF_MODE_NPAR1_5 0x4
7376 #define NVM_CFG1_GLOB_MF_MODE_NPAR2_0 0x5
7377 #define NVM_CFG1_GLOB_MF_MODE_BD 0x6
7378 #define NVM_CFG1_GLOB_MF_MODE_UFP 0x7
7379 u32 engineering_change[3];
7380 u32 manufacturing_id;
7381 u32 serial_number[4];
7382 u32 pcie_cfg;
7383 u32 mgmt_traffic;
7384 u32 core_cfg;
7385 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_MASK 0x000000FF
7386 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_OFFSET 0
7387 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_BB_2X40G 0x0
7388 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_2X50G 0x1
7389 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_BB_1X100G 0x2
7390 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_4X10G_F 0x3
7391 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_BB_4X10G_E 0x4
7392 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_BB_4X20G 0x5
7393 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_1X40G 0xB
7394 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_2X25G 0xC
7395 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_1X25G 0xD
7396 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_4X25G 0xE
7397 u32 e_lane_cfg1;
7398 u32 e_lane_cfg2;
7399 u32 f_lane_cfg1;
7400 u32 f_lane_cfg2;
7401 u32 mps10_preemphasis;
7402 u32 mps10_driver_current;
7403 u32 mps25_preemphasis;
7404 u32 mps25_driver_current;
7405 u32 pci_id;
7406 u32 pci_subsys_id;
7407 u32 bar;
7408 u32 mps10_txfir_main;
7409 u32 mps10_txfir_post;
7410 u32 mps25_txfir_main;
7411 u32 mps25_txfir_post;
7412 u32 manufacture_ver;
7413 u32 manufacture_time;
7414 u32 led_global_settings;
7415 u32 generic_cont1;
7416 u32 mbi_version;
7417 u32 mbi_date;
7418 u32 misc_sig;
7419 u32 device_capabilities;
7420 #define NVM_CFG1_GLOB_DEVICE_CAPABILITIES_ETHERNET 0x1
7421 #define NVM_CFG1_GLOB_DEVICE_CAPABILITIES_ISCSI 0x4
7422 #define NVM_CFG1_GLOB_DEVICE_CAPABILITIES_ROCE 0x8
7423 u32 power_dissipated;
7424 u32 power_consumed;
7425 u32 efi_version;
7426 u32 multi_network_modes_capability;
7427 u32 reserved[41];
7428 };
7429
7430 struct nvm_cfg1_path {
7431 u32 reserved[30];
7432 };
7433
7434 struct nvm_cfg1_port {
7435 u32 reserved__m_relocated_to_option_123;
7436 u32 reserved__m_relocated_to_option_124;
7437 u32 generic_cont0;
7438 #define NVM_CFG1_PORT_DCBX_MODE_MASK 0x000F0000
7439 #define NVM_CFG1_PORT_DCBX_MODE_OFFSET 16
7440 #define NVM_CFG1_PORT_DCBX_MODE_DISABLED 0x0
7441 #define NVM_CFG1_PORT_DCBX_MODE_IEEE 0x1
7442 #define NVM_CFG1_PORT_DCBX_MODE_CEE 0x2
7443 #define NVM_CFG1_PORT_DCBX_MODE_DYNAMIC 0x3
7444 #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_MASK 0x00F00000
7445 #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_OFFSET 20
7446 #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_ETHERNET 0x1
7447 #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_FCOE 0x2
7448 #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_ISCSI 0x4
7449 u32 pcie_cfg;
7450 u32 features;
7451 u32 speed_cap_mask;
7452 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_MASK 0x0000FFFF
7453 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_OFFSET 0
7454 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_1G 0x1
7455 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_10G 0x2
7456 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_25G 0x8
7457 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_40G 0x10
7458 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_50G 0x20
7459 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_BB_100G 0x40
7460 u32 link_settings;
7461 #define NVM_CFG1_PORT_DRV_LINK_SPEED_MASK 0x0000000F
7462 #define NVM_CFG1_PORT_DRV_LINK_SPEED_OFFSET 0
7463 #define NVM_CFG1_PORT_DRV_LINK_SPEED_AUTONEG 0x0
7464 #define NVM_CFG1_PORT_DRV_LINK_SPEED_1G 0x1
7465 #define NVM_CFG1_PORT_DRV_LINK_SPEED_10G 0x2
7466 #define NVM_CFG1_PORT_DRV_LINK_SPEED_25G 0x4
7467 #define NVM_CFG1_PORT_DRV_LINK_SPEED_40G 0x5
7468 #define NVM_CFG1_PORT_DRV_LINK_SPEED_50G 0x6
7469 #define NVM_CFG1_PORT_DRV_LINK_SPEED_BB_100G 0x7
7470 #define NVM_CFG1_PORT_DRV_LINK_SPEED_SMARTLINQ 0x8
7471 #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_MASK 0x00000070
7472 #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_OFFSET 4
7473 #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_AUTONEG 0x1
7474 #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_RX 0x2
7475 #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_TX 0x4
7476 u32 phy_cfg;
7477 u32 mgmt_traffic;
7478 u32 ext_phy;
7479 u32 mba_cfg1;
7480 u32 mba_cfg2;
7481 u32 vf_cfg;
7482 struct nvm_cfg_mac_address lldp_mac_address;
7483 u32 led_port_settings;
7484 u32 transceiver_00;
7485 u32 device_ids;
7486 u32 board_cfg;
7487 u32 mnm_10g_cap;
7488 u32 mnm_10g_ctrl;
7489 u32 mnm_10g_misc;
7490 u32 mnm_25g_cap;
7491 u32 mnm_25g_ctrl;
7492 u32 mnm_25g_misc;
7493 u32 mnm_40g_cap;
7494 u32 mnm_40g_ctrl;
7495 u32 mnm_40g_misc;
7496 u32 mnm_50g_cap;
7497 u32 mnm_50g_ctrl;
7498 u32 mnm_50g_misc;
7499 u32 mnm_100g_cap;
7500 u32 mnm_100g_ctrl;
7501 u32 mnm_100g_misc;
7502 u32 reserved[116];
7503 };
7504
7505 struct nvm_cfg1_func {
7506 struct nvm_cfg_mac_address mac_address;
7507 u32 rsrv1;
7508 u32 rsrv2;
7509 u32 device_id;
7510 u32 cmn_cfg;
7511 u32 pci_cfg;
7512 struct nvm_cfg_mac_address fcoe_node_wwn_mac_addr;
7513 struct nvm_cfg_mac_address fcoe_port_wwn_mac_addr;
7514 u32 preboot_generic_cfg;
7515 u32 reserved[8];
7516 };
7517
7518 struct nvm_cfg1 {
7519 struct nvm_cfg1_glob glob;
7520 struct nvm_cfg1_path path[MCP_GLOB_PATH_MAX];
7521 struct nvm_cfg1_port port[MCP_GLOB_PORT_MAX];
7522 struct nvm_cfg1_func func[MCP_GLOB_FUNC_MAX];
7523 };
7524 #endif