1
2
3
4
5
6
7#ifndef __ECORE_HSI_COMMON__
8#define __ECORE_HSI_COMMON__
9
10
11
12#include "common_hsi.h"
13#include "mcp_public.h"
14
15
16
17
18
19enum common_event_opcode {
20 COMMON_EVENT_PF_START,
21 COMMON_EVENT_PF_STOP,
22 COMMON_EVENT_VF_START,
23 COMMON_EVENT_VF_STOP,
24 COMMON_EVENT_VF_PF_CHANNEL,
25 COMMON_EVENT_VF_FLR,
26 COMMON_EVENT_PF_UPDATE,
27 COMMON_EVENT_MALICIOUS_VF,
28 COMMON_EVENT_RL_UPDATE,
29 COMMON_EVENT_EMPTY,
30 MAX_COMMON_EVENT_OPCODE
31};
32
33
34
35
36
37enum common_ramrod_cmd_id {
38 COMMON_RAMROD_UNUSED,
39 COMMON_RAMROD_PF_START ,
40 COMMON_RAMROD_PF_STOP ,
41 COMMON_RAMROD_VF_START ,
42 COMMON_RAMROD_VF_STOP ,
43 COMMON_RAMROD_PF_UPDATE ,
44 COMMON_RAMROD_RL_UPDATE ,
45 COMMON_RAMROD_EMPTY ,
46 MAX_COMMON_RAMROD_CMD_ID
47};
48
49
50
51
52
53struct ystorm_core_conn_st_ctx {
54 __le32 reserved[4];
55};
56
57
58
59
60struct pstorm_core_conn_st_ctx {
61 __le32 reserved[20];
62};
63
64
65
66
67struct xstorm_core_conn_st_ctx {
68 __le32 spq_base_lo ;
69 __le32 spq_base_hi ;
70
71 struct regpair consolid_base_addr;
72 __le16 spq_cons ;
73 __le16 consolid_cons ;
74 __le32 reserved0[55] ;
75};
76
77struct xstorm_core_conn_ag_ctx {
78 u8 reserved0 ;
79 u8 state ;
80 u8 flags0;
81#define XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
82#define XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
83#define XSTORM_CORE_CONN_AG_CTX_RESERVED1_MASK 0x1
84#define XSTORM_CORE_CONN_AG_CTX_RESERVED1_SHIFT 1
85#define XSTORM_CORE_CONN_AG_CTX_RESERVED2_MASK 0x1
86#define XSTORM_CORE_CONN_AG_CTX_RESERVED2_SHIFT 2
87#define XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
88#define XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
89#define XSTORM_CORE_CONN_AG_CTX_RESERVED3_MASK 0x1
90#define XSTORM_CORE_CONN_AG_CTX_RESERVED3_SHIFT 4
91
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
123#define XSTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3
124#define XSTORM_CORE_CONN_AG_CTX_CF3_SHIFT 6
125 u8 flags3;
126#define XSTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3
127#define XSTORM_CORE_CONN_AG_CTX_CF4_SHIFT 0
128#define XSTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3
129#define XSTORM_CORE_CONN_AG_CTX_CF5_SHIFT 2
130#define XSTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3
131#define XSTORM_CORE_CONN_AG_CTX_CF6_SHIFT 4
132#define XSTORM_CORE_CONN_AG_CTX_CF7_MASK 0x3
133#define XSTORM_CORE_CONN_AG_CTX_CF7_SHIFT 6
134 u8 flags4;
135#define XSTORM_CORE_CONN_AG_CTX_CF8_MASK 0x3
136#define XSTORM_CORE_CONN_AG_CTX_CF8_SHIFT 0
137#define XSTORM_CORE_CONN_AG_CTX_CF9_MASK 0x3
138#define XSTORM_CORE_CONN_AG_CTX_CF9_SHIFT 2
139#define XSTORM_CORE_CONN_AG_CTX_CF10_MASK 0x3
140#define XSTORM_CORE_CONN_AG_CTX_CF10_SHIFT 4
141#define XSTORM_CORE_CONN_AG_CTX_CF11_MASK 0x3
142#define XSTORM_CORE_CONN_AG_CTX_CF11_SHIFT 6
143 u8 flags5;
144#define XSTORM_CORE_CONN_AG_CTX_CF12_MASK 0x3
145#define XSTORM_CORE_CONN_AG_CTX_CF12_SHIFT 0
146#define XSTORM_CORE_CONN_AG_CTX_CF13_MASK 0x3
147#define XSTORM_CORE_CONN_AG_CTX_CF13_SHIFT 2
148#define XSTORM_CORE_CONN_AG_CTX_CF14_MASK 0x3
149#define XSTORM_CORE_CONN_AG_CTX_CF14_SHIFT 4
150#define XSTORM_CORE_CONN_AG_CTX_CF15_MASK 0x3
151#define XSTORM_CORE_CONN_AG_CTX_CF15_SHIFT 6
152 u8 flags6;
153#define XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_MASK 0x3
154#define XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_SHIFT 0
155#define XSTORM_CORE_CONN_AG_CTX_CF17_MASK 0x3
156#define XSTORM_CORE_CONN_AG_CTX_CF17_SHIFT 2
157#define XSTORM_CORE_CONN_AG_CTX_DQ_CF_MASK 0x3
158#define XSTORM_CORE_CONN_AG_CTX_DQ_CF_SHIFT 4
159#define XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_MASK 0x3
160#define XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_SHIFT 6
161 u8 flags7;
162#define XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_MASK 0x3
163#define XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
164#define XSTORM_CORE_CONN_AG_CTX_RESERVED10_MASK 0x3
165#define XSTORM_CORE_CONN_AG_CTX_RESERVED10_SHIFT 2
166#define XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_MASK 0x3
167#define XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_SHIFT 4
168#define XSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
169#define XSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 6
170#define XSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
171#define XSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 7
172 u8 flags8;
173#define XSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
174#define XSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 0
175#define XSTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1
176#define XSTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 1
177#define XSTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1
178#define XSTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 2
179#define XSTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1
180#define XSTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 3
181#define XSTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1
182#define XSTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 4
183#define XSTORM_CORE_CONN_AG_CTX_CF7EN_MASK 0x1
184#define XSTORM_CORE_CONN_AG_CTX_CF7EN_SHIFT 5
185#define XSTORM_CORE_CONN_AG_CTX_CF8EN_MASK 0x1
186#define XSTORM_CORE_CONN_AG_CTX_CF8EN_SHIFT 6
187#define XSTORM_CORE_CONN_AG_CTX_CF9EN_MASK 0x1
188#define XSTORM_CORE_CONN_AG_CTX_CF9EN_SHIFT 7
189 u8 flags9;
190#define XSTORM_CORE_CONN_AG_CTX_CF10EN_MASK 0x1
191#define XSTORM_CORE_CONN_AG_CTX_CF10EN_SHIFT 0
192#define XSTORM_CORE_CONN_AG_CTX_CF11EN_MASK 0x1
193#define XSTORM_CORE_CONN_AG_CTX_CF11EN_SHIFT 1
194#define XSTORM_CORE_CONN_AG_CTX_CF12EN_MASK 0x1
195#define XSTORM_CORE_CONN_AG_CTX_CF12EN_SHIFT 2
196#define XSTORM_CORE_CONN_AG_CTX_CF13EN_MASK 0x1
197#define XSTORM_CORE_CONN_AG_CTX_CF13EN_SHIFT 3
198#define XSTORM_CORE_CONN_AG_CTX_CF14EN_MASK 0x1
199#define XSTORM_CORE_CONN_AG_CTX_CF14EN_SHIFT 4
200#define XSTORM_CORE_CONN_AG_CTX_CF15EN_MASK 0x1
201#define XSTORM_CORE_CONN_AG_CTX_CF15EN_SHIFT 5
202#define XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_EN_MASK 0x1
203#define XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_EN_SHIFT 6
204
205#define XSTORM_CORE_CONN_AG_CTX_CF17EN_MASK 0x1
206#define XSTORM_CORE_CONN_AG_CTX_CF17EN_SHIFT 7
207 u8 flags10;
208#define XSTORM_CORE_CONN_AG_CTX_DQ_CF_EN_MASK 0x1
209#define XSTORM_CORE_CONN_AG_CTX_DQ_CF_EN_SHIFT 0
210#define XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1
211#define XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1
212#define XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1
213#define XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2
214#define XSTORM_CORE_CONN_AG_CTX_RESERVED11_MASK 0x1
215#define XSTORM_CORE_CONN_AG_CTX_RESERVED11_SHIFT 3
216#define XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
217#define XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
218#define XSTORM_CORE_CONN_AG_CTX_CF23EN_MASK 0x1
219#define XSTORM_CORE_CONN_AG_CTX_CF23EN_SHIFT 5
220#define XSTORM_CORE_CONN_AG_CTX_RESERVED12_MASK 0x1
221#define XSTORM_CORE_CONN_AG_CTX_RESERVED12_SHIFT 6
222#define XSTORM_CORE_CONN_AG_CTX_RESERVED13_MASK 0x1
223#define XSTORM_CORE_CONN_AG_CTX_RESERVED13_SHIFT 7
224 u8 flags11;
225#define XSTORM_CORE_CONN_AG_CTX_RESERVED14_MASK 0x1
226#define XSTORM_CORE_CONN_AG_CTX_RESERVED14_SHIFT 0
227#define XSTORM_CORE_CONN_AG_CTX_RESERVED15_MASK 0x1
228#define XSTORM_CORE_CONN_AG_CTX_RESERVED15_SHIFT 1
229#define XSTORM_CORE_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1
230#define XSTORM_CORE_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2
231#define XSTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1
232#define XSTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 3
233#define XSTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1
234#define XSTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 4
235#define XSTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1
236#define XSTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 5
237#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
238#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
239#define XSTORM_CORE_CONN_AG_CTX_RULE9EN_MASK 0x1
240#define XSTORM_CORE_CONN_AG_CTX_RULE9EN_SHIFT 7
241 u8 flags12;
242#define XSTORM_CORE_CONN_AG_CTX_RULE10EN_MASK 0x1
243#define XSTORM_CORE_CONN_AG_CTX_RULE10EN_SHIFT 0
244#define XSTORM_CORE_CONN_AG_CTX_RULE11EN_MASK 0x1
245#define XSTORM_CORE_CONN_AG_CTX_RULE11EN_SHIFT 1
246#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
247#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
248#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
249#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
250#define XSTORM_CORE_CONN_AG_CTX_RULE14EN_MASK 0x1
251#define XSTORM_CORE_CONN_AG_CTX_RULE14EN_SHIFT 4
252#define XSTORM_CORE_CONN_AG_CTX_RULE15EN_MASK 0x1
253#define XSTORM_CORE_CONN_AG_CTX_RULE15EN_SHIFT 5
254#define XSTORM_CORE_CONN_AG_CTX_RULE16EN_MASK 0x1
255#define XSTORM_CORE_CONN_AG_CTX_RULE16EN_SHIFT 6
256#define XSTORM_CORE_CONN_AG_CTX_RULE17EN_MASK 0x1
257#define XSTORM_CORE_CONN_AG_CTX_RULE17EN_SHIFT 7
258 u8 flags13;
259#define XSTORM_CORE_CONN_AG_CTX_RULE18EN_MASK 0x1
260#define XSTORM_CORE_CONN_AG_CTX_RULE18EN_SHIFT 0
261#define XSTORM_CORE_CONN_AG_CTX_RULE19EN_MASK 0x1
262#define XSTORM_CORE_CONN_AG_CTX_RULE19EN_SHIFT 1
263#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
264#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
265#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
266#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
267#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
268#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
269#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
270#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
271#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
272#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
273#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
274#define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
275 u8 flags14;
276#define XSTORM_CORE_CONN_AG_CTX_BIT16_MASK 0x1
277#define XSTORM_CORE_CONN_AG_CTX_BIT16_SHIFT 0
278#define XSTORM_CORE_CONN_AG_CTX_BIT17_MASK 0x1
279#define XSTORM_CORE_CONN_AG_CTX_BIT17_SHIFT 1
280#define XSTORM_CORE_CONN_AG_CTX_BIT18_MASK 0x1
281#define XSTORM_CORE_CONN_AG_CTX_BIT18_SHIFT 2
282#define XSTORM_CORE_CONN_AG_CTX_BIT19_MASK 0x1
283#define XSTORM_CORE_CONN_AG_CTX_BIT19_SHIFT 3
284#define XSTORM_CORE_CONN_AG_CTX_BIT20_MASK 0x1
285#define XSTORM_CORE_CONN_AG_CTX_BIT20_SHIFT 4
286#define XSTORM_CORE_CONN_AG_CTX_BIT21_MASK 0x1
287#define XSTORM_CORE_CONN_AG_CTX_BIT21_SHIFT 5
288#define XSTORM_CORE_CONN_AG_CTX_CF23_MASK 0x3
289#define XSTORM_CORE_CONN_AG_CTX_CF23_SHIFT 6
290 u8 byte2 ;
291 __le16 physical_q0 ;
292 __le16 consolid_prod ;
293 __le16 reserved16 ;
294 __le16 tx_bd_cons ;
295 __le16 tx_bd_or_spq_prod ;
296 __le16 updated_qm_pq_id ;
297 __le16 conn_dpi ;
298 u8 byte3 ;
299 u8 byte4 ;
300 u8 byte5 ;
301 u8 byte6 ;
302 __le32 reg0 ;
303 __le32 reg1 ;
304 __le32 reg2 ;
305 __le32 reg3 ;
306 __le32 reg4 ;
307 __le32 reg5 ;
308 __le32 reg6 ;
309 __le16 word7 ;
310 __le16 word8 ;
311 __le16 word9 ;
312 __le16 word10 ;
313 __le32 reg7 ;
314 __le32 reg8 ;
315 __le32 reg9 ;
316 u8 byte7 ;
317 u8 byte8 ;
318 u8 byte9 ;
319 u8 byte10 ;
320 u8 byte11 ;
321 u8 byte12 ;
322 u8 byte13 ;
323 u8 byte14 ;
324 u8 byte15 ;
325 u8 e5_reserved ;
326 __le16 word11 ;
327 __le32 reg10 ;
328 __le32 reg11 ;
329 __le32 reg12 ;
330 __le32 reg13 ;
331 __le32 reg14 ;
332 __le32 reg15 ;
333 __le32 reg16 ;
334 __le32 reg17 ;
335 __le32 reg18 ;
336 __le32 reg19 ;
337 __le16 word12 ;
338 __le16 word13 ;
339 __le16 word14 ;
340 __le16 word15 ;
341};
342
343struct tstorm_core_conn_ag_ctx {
344 u8 byte0 ;
345 u8 byte1 ;
346 u8 flags0;
347#define TSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1
348#define TSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0
349#define TSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1
350#define TSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1
351#define TSTORM_CORE_CONN_AG_CTX_BIT2_MASK 0x1
352#define TSTORM_CORE_CONN_AG_CTX_BIT2_SHIFT 2
353#define TSTORM_CORE_CONN_AG_CTX_BIT3_MASK 0x1
354#define TSTORM_CORE_CONN_AG_CTX_BIT3_SHIFT 3
355#define TSTORM_CORE_CONN_AG_CTX_BIT4_MASK 0x1
356#define TSTORM_CORE_CONN_AG_CTX_BIT4_SHIFT 4
357#define TSTORM_CORE_CONN_AG_CTX_BIT5_MASK 0x1
358#define TSTORM_CORE_CONN_AG_CTX_BIT5_SHIFT 5
359#define TSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
360#define TSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 6
361 u8 flags1;
362#define TSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
363#define TSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 0
364#define TSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
365#define TSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 2
366#define TSTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3
367#define TSTORM_CORE_CONN_AG_CTX_CF3_SHIFT 4
368#define TSTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3
369#define TSTORM_CORE_CONN_AG_CTX_CF4_SHIFT 6
370 u8 flags2;
371#define TSTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3
372#define TSTORM_CORE_CONN_AG_CTX_CF5_SHIFT 0
373#define TSTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3
374#define TSTORM_CORE_CONN_AG_CTX_CF6_SHIFT 2
375#define TSTORM_CORE_CONN_AG_CTX_CF7_MASK 0x3
376#define TSTORM_CORE_CONN_AG_CTX_CF7_SHIFT 4
377#define TSTORM_CORE_CONN_AG_CTX_CF8_MASK 0x3
378#define TSTORM_CORE_CONN_AG_CTX_CF8_SHIFT 6
379 u8 flags3;
380#define TSTORM_CORE_CONN_AG_CTX_CF9_MASK 0x3
381#define TSTORM_CORE_CONN_AG_CTX_CF9_SHIFT 0
382#define TSTORM_CORE_CONN_AG_CTX_CF10_MASK 0x3
383#define TSTORM_CORE_CONN_AG_CTX_CF10_SHIFT 2
384#define TSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
385#define TSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 4
386#define TSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
387#define TSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 5
388#define TSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
389#define TSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 6
390#define TSTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1
391#define TSTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 7
392 u8 flags4;
393#define TSTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1
394#define TSTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 0
395#define TSTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1
396#define TSTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 1
397#define TSTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1
398#define TSTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 2
399#define TSTORM_CORE_CONN_AG_CTX_CF7EN_MASK 0x1
400#define TSTORM_CORE_CONN_AG_CTX_CF7EN_SHIFT 3
401#define TSTORM_CORE_CONN_AG_CTX_CF8EN_MASK 0x1
402#define TSTORM_CORE_CONN_AG_CTX_CF8EN_SHIFT 4
403#define TSTORM_CORE_CONN_AG_CTX_CF9EN_MASK 0x1
404#define TSTORM_CORE_CONN_AG_CTX_CF9EN_SHIFT 5
405#define TSTORM_CORE_CONN_AG_CTX_CF10EN_MASK 0x1
406#define TSTORM_CORE_CONN_AG_CTX_CF10EN_SHIFT 6
407#define TSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1
408#define TSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 7
409 u8 flags5;
410#define TSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1
411#define TSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 0
412#define TSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1
413#define TSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 1
414#define TSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1
415#define TSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 2
416#define TSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1
417#define TSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 3
418#define TSTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1
419#define TSTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 4
420#define TSTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1
421#define TSTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 5
422#define TSTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1
423#define TSTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 6
424#define TSTORM_CORE_CONN_AG_CTX_RULE8EN_MASK 0x1
425#define TSTORM_CORE_CONN_AG_CTX_RULE8EN_SHIFT 7
426 __le32 reg0 ;
427 __le32 reg1 ;
428 __le32 reg2 ;
429 __le32 reg3 ;
430 __le32 reg4 ;
431 __le32 reg5 ;
432 __le32 reg6 ;
433 __le32 reg7 ;
434 __le32 reg8 ;
435 u8 byte2 ;
436 u8 byte3 ;
437 __le16 word0 ;
438 u8 byte4 ;
439 u8 byte5 ;
440 __le16 word1 ;
441 __le16 word2 ;
442 __le16 word3 ;
443 __le32 reg9 ;
444 __le32 reg10 ;
445};
446
447struct ustorm_core_conn_ag_ctx {
448 u8 reserved ;
449 u8 byte1 ;
450 u8 flags0;
451#define USTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1
452#define USTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0
453#define USTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1
454#define USTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1
455#define USTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
456#define USTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2
457#define USTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
458#define USTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4
459#define USTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
460#define USTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6
461 u8 flags1;
462#define USTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3
463#define USTORM_CORE_CONN_AG_CTX_CF3_SHIFT 0
464#define USTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3
465#define USTORM_CORE_CONN_AG_CTX_CF4_SHIFT 2
466#define USTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3
467#define USTORM_CORE_CONN_AG_CTX_CF5_SHIFT 4
468#define USTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3
469#define USTORM_CORE_CONN_AG_CTX_CF6_SHIFT 6
470 u8 flags2;
471#define USTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
472#define USTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0
473#define USTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
474#define USTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1
475#define USTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
476#define USTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2
477#define USTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1
478#define USTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 3
479#define USTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1
480#define USTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 4
481#define USTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1
482#define USTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 5
483#define USTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1
484#define USTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 6
485#define USTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1
486#define USTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 7
487 u8 flags3;
488#define USTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1
489#define USTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 0
490#define USTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1
491#define USTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 1
492#define USTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1
493#define USTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 2
494#define USTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1
495#define USTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 3
496#define USTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1
497#define USTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 4
498#define USTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1
499#define USTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 5
500#define USTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1
501#define USTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 6
502#define USTORM_CORE_CONN_AG_CTX_RULE8EN_MASK 0x1
503#define USTORM_CORE_CONN_AG_CTX_RULE8EN_SHIFT 7
504 u8 byte2 ;
505 u8 byte3 ;
506 __le16 word0 ;
507 __le16 word1 ;
508 __le32 rx_producers ;
509 __le32 reg1 ;
510 __le32 reg2 ;
511 __le32 reg3 ;
512 __le16 word2 ;
513 __le16 word3 ;
514};
515
516
517
518
519struct mstorm_core_conn_st_ctx {
520 __le32 reserved[40];
521};
522
523
524
525
526struct ustorm_core_conn_st_ctx {
527 __le32 reserved[20];
528};
529
530
531
532
533struct tstorm_core_conn_st_ctx {
534 __le32 reserved[4];
535};
536
537
538
539
540struct core_conn_context {
541
542 struct ystorm_core_conn_st_ctx ystorm_st_context;
543 struct regpair ystorm_st_padding[2] ;
544
545 struct pstorm_core_conn_st_ctx pstorm_st_context;
546 struct regpair pstorm_st_padding[2] ;
547
548 struct xstorm_core_conn_st_ctx xstorm_st_context;
549
550 struct xstorm_core_conn_ag_ctx xstorm_ag_context;
551
552 struct tstorm_core_conn_ag_ctx tstorm_ag_context;
553
554 struct ustorm_core_conn_ag_ctx ustorm_ag_context;
555
556 struct mstorm_core_conn_st_ctx mstorm_st_context;
557
558 struct ustorm_core_conn_st_ctx ustorm_st_context;
559 struct regpair ustorm_st_padding[2] ;
560
561 struct tstorm_core_conn_st_ctx tstorm_st_context;
562 struct regpair tstorm_st_padding[2] ;
563};
564
565
566
567
568
569enum core_error_handle {
570 LL2_DROP_PACKET ,
571 LL2_DO_NOTHING ,
572 LL2_ASSERT ,
573 MAX_CORE_ERROR_HANDLE
574};
575
576
577
578
579
580enum core_event_opcode {
581 CORE_EVENT_TX_QUEUE_START,
582 CORE_EVENT_TX_QUEUE_STOP,
583 CORE_EVENT_RX_QUEUE_START,
584 CORE_EVENT_RX_QUEUE_STOP,
585 CORE_EVENT_RX_QUEUE_FLUSH,
586 CORE_EVENT_TX_QUEUE_UPDATE,
587 CORE_EVENT_QUEUE_STATS_QUERY,
588 MAX_CORE_EVENT_OPCODE
589};
590
591
592
593
594
595enum core_l4_pseudo_checksum_mode {
596
597 CORE_L4_PSEUDO_CSUM_CORRECT_LENGTH,
598
599 CORE_L4_PSEUDO_CSUM_ZERO_LENGTH,
600 MAX_CORE_L4_PSEUDO_CHECKSUM_MODE
601};
602
603
604
605
606
607struct core_ll2_port_stats {
608 struct regpair gsi_invalid_hdr;
609 struct regpair gsi_invalid_pkt_length;
610 struct regpair gsi_unsupported_pkt_typ;
611 struct regpair gsi_crcchksm_error;
612};
613
614
615
616
617
618struct core_ll2_pstorm_per_queue_stat {
619
620 struct regpair sent_ucast_bytes;
621
622 struct regpair sent_mcast_bytes;
623
624 struct regpair sent_bcast_bytes;
625
626 struct regpair sent_ucast_pkts;
627
628 struct regpair sent_mcast_pkts;
629
630 struct regpair sent_bcast_pkts;
631
632 struct regpair error_drop_pkts;
633};
634
635
636struct core_ll2_tstorm_per_queue_stat {
637
638 struct regpair packet_too_big_discard;
639
640 struct regpair no_buff_discard;
641};
642
643struct core_ll2_ustorm_per_queue_stat {
644 struct regpair rcv_ucast_bytes;
645 struct regpair rcv_mcast_bytes;
646 struct regpair rcv_bcast_bytes;
647 struct regpair rcv_ucast_pkts;
648 struct regpair rcv_mcast_pkts;
649 struct regpair rcv_bcast_pkts;
650};
651
652
653
654
655
656struct core_ll2_rx_prod {
657 __le16 bd_prod ;
658 __le16 cqe_prod ;
659};
660
661
662
663struct core_ll2_tx_per_queue_stat {
664
665 struct core_ll2_pstorm_per_queue_stat pstorm_stat;
666};
667
668
669
670
671
672
673struct core_pwm_prod_update_data {
674 __le16 icid ;
675 u8 reserved0;
676 u8 params;
677
678
679
680#define CORE_PWM_PROD_UPDATE_DATA_AGG_CMD_MASK 0x3
681#define CORE_PWM_PROD_UPDATE_DATA_AGG_CMD_SHIFT 0
682#define CORE_PWM_PROD_UPDATE_DATA_RESERVED1_MASK 0x3F
683#define CORE_PWM_PROD_UPDATE_DATA_RESERVED1_SHIFT 2
684 struct core_ll2_rx_prod prod ;
685};
686
687
688
689
690
691struct core_queue_stats_query_ramrod_data {
692 u8 rx_stat ;
693 u8 tx_stat ;
694 __le16 reserved[3];
695
696
697
698 struct regpair rx_stat_addr;
699
700
701
702 struct regpair tx_stat_addr;
703};
704
705
706
707
708
709enum core_ramrod_cmd_id {
710 CORE_RAMROD_UNUSED,
711 CORE_RAMROD_RX_QUEUE_START ,
712 CORE_RAMROD_TX_QUEUE_START ,
713 CORE_RAMROD_RX_QUEUE_STOP ,
714 CORE_RAMROD_TX_QUEUE_STOP ,
715 CORE_RAMROD_RX_QUEUE_FLUSH ,
716 CORE_RAMROD_TX_QUEUE_UPDATE ,
717 CORE_RAMROD_QUEUE_STATS_QUERY ,
718 MAX_CORE_RAMROD_CMD_ID
719};
720
721
722
723
724
725enum core_roce_flavor_type {
726 CORE_ROCE,
727 CORE_RROCE,
728 MAX_CORE_ROCE_FLAVOR_TYPE
729};
730
731
732
733
734
735struct core_rx_action_on_error {
736 u8 error_type;
737
738#define CORE_RX_ACTION_ON_ERROR_PACKET_TOO_BIG_MASK 0x3
739#define CORE_RX_ACTION_ON_ERROR_PACKET_TOO_BIG_SHIFT 0
740
741#define CORE_RX_ACTION_ON_ERROR_NO_BUFF_MASK 0x3
742#define CORE_RX_ACTION_ON_ERROR_NO_BUFF_SHIFT 2
743#define CORE_RX_ACTION_ON_ERROR_RESERVED_MASK 0xF
744#define CORE_RX_ACTION_ON_ERROR_RESERVED_SHIFT 4
745};
746
747
748
749
750
751struct core_rx_bd {
752 struct regpair addr;
753 __le16 reserved[4];
754};
755
756
757
758
759
760struct core_rx_bd_with_buff_len {
761 struct regpair addr;
762 __le16 buff_length;
763 __le16 reserved[3];
764};
765
766
767
768
769union core_rx_bd_union {
770 struct core_rx_bd rx_bd ;
771
772 struct core_rx_bd_with_buff_len rx_bd_with_len;
773};
774
775
776
777
778
779
780struct core_rx_cqe_opaque_data {
781 __le32 data[2] ;
782};
783
784
785
786
787
788enum core_rx_cqe_type {
789 CORE_RX_CQE_ILLIGAL_TYPE ,
790 CORE_RX_CQE_TYPE_REGULAR ,
791 CORE_RX_CQE_TYPE_GSI_OFFLOAD ,
792 CORE_RX_CQE_TYPE_SLOW_PATH ,
793 MAX_CORE_RX_CQE_TYPE
794};
795
796
797
798
799
800struct core_rx_fast_path_cqe {
801 u8 type ;
802
803 u8 placement_offset;
804
805 struct parsing_and_err_flags parse_flags;
806 __le16 packet_length ;
807 __le16 vlan ;
808 struct core_rx_cqe_opaque_data opaque_data ;
809
810
811
812 struct parsing_err_flags err_flags;
813 __le16 reserved0;
814 __le32 reserved1[3];
815};
816
817
818
819
820struct core_rx_gsi_offload_cqe {
821 u8 type ;
822 u8 data_length_error ;
823
824 struct parsing_and_err_flags parse_flags;
825 __le16 data_length ;
826 __le16 vlan ;
827 __le32 src_mac_addrhi ;
828 __le16 src_mac_addrlo ;
829
830 __le16 qp_id;
831 __le32 src_qp ;
832 struct core_rx_cqe_opaque_data opaque_data ;
833 __le32 reserved;
834};
835
836
837
838
839struct core_rx_slow_path_cqe {
840 u8 type ;
841 u8 ramrod_cmd_id;
842 __le16 echo;
843 struct core_rx_cqe_opaque_data opaque_data ;
844 __le32 reserved1[5];
845};
846
847
848
849
850union core_rx_cqe_union {
851 struct core_rx_fast_path_cqe rx_cqe_fp ;
852 struct core_rx_gsi_offload_cqe rx_cqe_gsi ;
853 struct core_rx_slow_path_cqe rx_cqe_sp ;
854};
855
856
857
858
859
860
861
862
863struct core_rx_start_ramrod_data {
864 struct regpair bd_base ;
865 struct regpair cqe_pbl_addr ;
866 __le16 mtu ;
867 __le16 sb_id ;
868 u8 sb_index ;
869 u8 complete_cqe_flg ;
870 u8 complete_event_flg ;
871 u8 drop_ttl0_flg ;
872 __le16 num_of_pbl_pages ;
873
874 u8 inner_vlan_stripping_en;
875
876 u8 outer_vlan_stripping_dis;
877 u8 queue_id ;
878 u8 main_func_queue ;
879
880
881
882 u8 mf_si_bcast_accept_all;
883
884
885
886 u8 mf_si_mcast_accept_all;
887
888
889
890
891 struct core_rx_action_on_error action_on_error;
892 u8 gsi_offload_flag ;
893
894 u8 vport_id_valid;
895 u8 vport_id ;
896 u8 zero_prod_flg ;
897
898
899
900 u8 wipe_inner_vlan_pri_en;
901 u8 reserved[2];
902};
903
904
905
906
907
908struct core_rx_stop_ramrod_data {
909 u8 complete_cqe_flg ;
910 u8 complete_event_flg ;
911 u8 queue_id ;
912 u8 reserved1;
913 __le16 reserved2[2];
914};
915
916
917
918
919
920struct core_tx_bd_data {
921 __le16 as_bitfield;
922
923#define CORE_TX_BD_DATA_FORCE_VLAN_MODE_MASK 0x1
924#define CORE_TX_BD_DATA_FORCE_VLAN_MODE_SHIFT 0
925
926
927
928#define CORE_TX_BD_DATA_VLAN_INSERTION_MASK 0x1
929#define CORE_TX_BD_DATA_VLAN_INSERTION_SHIFT 1
930
931#define CORE_TX_BD_DATA_START_BD_MASK 0x1
932#define CORE_TX_BD_DATA_START_BD_SHIFT 2
933
934#define CORE_TX_BD_DATA_IP_CSUM_MASK 0x1
935#define CORE_TX_BD_DATA_IP_CSUM_SHIFT 3
936
937#define CORE_TX_BD_DATA_L4_CSUM_MASK 0x1
938#define CORE_TX_BD_DATA_L4_CSUM_SHIFT 4
939
940#define CORE_TX_BD_DATA_IPV6_EXT_MASK 0x1
941#define CORE_TX_BD_DATA_IPV6_EXT_SHIFT 5
942
943
944
945#define CORE_TX_BD_DATA_L4_PROTOCOL_MASK 0x1
946#define CORE_TX_BD_DATA_L4_PROTOCOL_SHIFT 6
947
948
949
950#define CORE_TX_BD_DATA_L4_PSEUDO_CSUM_MODE_MASK 0x1
951#define CORE_TX_BD_DATA_L4_PSEUDO_CSUM_MODE_SHIFT 7
952
953
954
955#define CORE_TX_BD_DATA_NBDS_MASK 0xF
956#define CORE_TX_BD_DATA_NBDS_SHIFT 8
957
958
959
960#define CORE_TX_BD_DATA_ROCE_FLAV_MASK 0x1
961#define CORE_TX_BD_DATA_ROCE_FLAV_SHIFT 12
962
963#define CORE_TX_BD_DATA_IP_LEN_MASK 0x1
964#define CORE_TX_BD_DATA_IP_LEN_SHIFT 13
965
966#define CORE_TX_BD_DATA_DISABLE_STAG_INSERTION_MASK 0x1
967#define CORE_TX_BD_DATA_DISABLE_STAG_INSERTION_SHIFT 14
968#define CORE_TX_BD_DATA_RESERVED0_MASK 0x1
969#define CORE_TX_BD_DATA_RESERVED0_SHIFT 15
970};
971
972
973
974
975struct core_tx_bd {
976 struct regpair addr ;
977 __le16 nbytes ;
978
979
980
981 __le16 nw_vlan_or_lb_echo;
982 struct core_tx_bd_data bd_data ;
983 __le16 bitfield1;
984
985
986
987#define CORE_TX_BD_L4_HDR_OFFSET_W_MASK 0x3FFF
988#define CORE_TX_BD_L4_HDR_OFFSET_W_SHIFT 0
989
990#define CORE_TX_BD_TX_DST_MASK 0x3
991#define CORE_TX_BD_TX_DST_SHIFT 14
992};
993
994
995
996
997
998
999enum core_tx_dest {
1000 CORE_TX_DEST_NW ,
1001 CORE_TX_DEST_LB ,
1002 CORE_TX_DEST_RESERVED,
1003 CORE_TX_DEST_DROP ,
1004 MAX_CORE_TX_DEST
1005};
1006
1007
1008
1009
1010
1011struct core_tx_start_ramrod_data {
1012 struct regpair pbl_base_addr ;
1013 __le16 mtu ;
1014 __le16 sb_id ;
1015 u8 sb_index ;
1016 u8 stats_en ;
1017 u8 stats_id ;
1018 u8 conn_type ;
1019 __le16 pbl_size ;
1020 __le16 qm_pq_id ;
1021 u8 gsi_offload_flag ;
1022 u8 ctx_stats_en ;
1023
1024 u8 vport_id_valid;
1025
1026
1027
1028 u8 vport_id;
1029};
1030
1031
1032
1033
1034
1035struct core_tx_stop_ramrod_data {
1036 __le32 reserved0[2];
1037};
1038
1039
1040
1041
1042
1043struct core_tx_update_ramrod_data {
1044 u8 update_qm_pq_id_flg ;
1045 u8 reserved0;
1046 __le16 qm_pq_id ;
1047 __le32 reserved1[1];
1048};
1049
1050
1051
1052
1053
1054enum dcb_dscp_update_mode {
1055
1056 DONT_UPDATE_DCB_DSCP,
1057 UPDATE_DCB ,
1058 UPDATE_DSCP ,
1059 UPDATE_DCB_DSCP ,
1060 MAX_DCB_DSCP_UPDATE_FLAG
1061};
1062
1063
1064struct eth_mstorm_per_pf_stat {
1065 struct regpair gre_discard_pkts ;
1066 struct regpair vxlan_discard_pkts ;
1067 struct regpair geneve_discard_pkts ;
1068 struct regpair lb_discard_pkts ;
1069};
1070
1071
1072struct eth_mstorm_per_queue_stat {
1073
1074 struct regpair ttl0_discard;
1075
1076 struct regpair packet_too_big_discard;
1077
1078 struct regpair no_buff_discard;
1079
1080 struct regpair not_active_discard;
1081
1082 struct regpair tpa_coalesced_pkts;
1083
1084 struct regpair tpa_coalesced_events;
1085
1086 struct regpair tpa_aborts_num;
1087
1088 struct regpair tpa_coalesced_bytes;
1089};
1090
1091
1092
1093
1094
1095struct eth_pstorm_per_pf_stat {
1096
1097 struct regpair sent_lb_ucast_bytes;
1098
1099 struct regpair sent_lb_mcast_bytes;
1100
1101 struct regpair sent_lb_bcast_bytes;
1102
1103 struct regpair sent_lb_ucast_pkts;
1104
1105 struct regpair sent_lb_mcast_pkts;
1106
1107 struct regpair sent_lb_bcast_pkts;
1108 struct regpair sent_gre_bytes ;
1109 struct regpair sent_vxlan_bytes ;
1110 struct regpair sent_geneve_bytes ;
1111 struct regpair sent_mpls_bytes ;
1112 struct regpair sent_gre_mpls_bytes ;
1113 struct regpair sent_udp_mpls_bytes ;
1114 struct regpair sent_gre_pkts ;
1115 struct regpair sent_vxlan_pkts ;
1116 struct regpair sent_geneve_pkts ;
1117 struct regpair sent_mpls_pkts ;
1118 struct regpair sent_gre_mpls_pkts ;
1119 struct regpair sent_udp_mpls_pkts ;
1120 struct regpair gre_drop_pkts ;
1121 struct regpair vxlan_drop_pkts ;
1122 struct regpair geneve_drop_pkts ;
1123 struct regpair mpls_drop_pkts ;
1124
1125 struct regpair gre_mpls_drop_pkts;
1126
1127 struct regpair udp_mpls_drop_pkts;
1128};
1129
1130
1131
1132
1133
1134struct eth_pstorm_per_queue_stat {
1135
1136 struct regpair sent_ucast_bytes;
1137
1138 struct regpair sent_mcast_bytes;
1139
1140 struct regpair sent_bcast_bytes;
1141
1142 struct regpair sent_ucast_pkts;
1143
1144 struct regpair sent_mcast_pkts;
1145
1146 struct regpair sent_bcast_pkts;
1147
1148 struct regpair error_drop_pkts;
1149};
1150
1151
1152
1153
1154
1155struct eth_rx_rate_limit {
1156
1157 __le16 mult;
1158
1159 __le16 cnst;
1160 u8 add_sub_cnst ;
1161 u8 reserved0;
1162 __le16 reserved1;
1163};
1164
1165
1166
1167
1168
1169struct eth_tstorm_rss_update_data {
1170
1171
1172
1173 u8 valid;
1174
1175
1176
1177 u8 vport_id;
1178 u8 ind_table_index ;
1179 u8 reserved;
1180 __le16 ind_table_value ;
1181 __le16 reserved1 ;
1182};
1183
1184
1185struct eth_ustorm_per_pf_stat {
1186
1187 struct regpair rcv_lb_ucast_bytes;
1188
1189 struct regpair rcv_lb_mcast_bytes;
1190
1191 struct regpair rcv_lb_bcast_bytes;
1192
1193 struct regpair rcv_lb_ucast_pkts;
1194
1195 struct regpair rcv_lb_mcast_pkts;
1196
1197 struct regpair rcv_lb_bcast_pkts;
1198 struct regpair rcv_gre_bytes ;
1199 struct regpair rcv_vxlan_bytes ;
1200 struct regpair rcv_geneve_bytes ;
1201 struct regpair rcv_gre_pkts ;
1202 struct regpair rcv_vxlan_pkts ;
1203 struct regpair rcv_geneve_pkts ;
1204};
1205
1206
1207struct eth_ustorm_per_queue_stat {
1208 struct regpair rcv_ucast_bytes;
1209 struct regpair rcv_mcast_bytes;
1210 struct regpair rcv_bcast_bytes;
1211 struct regpair rcv_ucast_pkts;
1212 struct regpair rcv_mcast_pkts;
1213 struct regpair rcv_bcast_pkts;
1214};
1215
1216
1217
1218
1219
1220struct vf_pf_channel_eqe_data {
1221 struct regpair msg_addr ;
1222};
1223
1224
1225
1226
1227struct malicious_vf_eqe_data {
1228 u8 vf_id ;
1229 u8 err_id ;
1230 __le16 reserved[3];
1231};
1232
1233
1234
1235
1236struct initial_cleanup_eqe_data {
1237 u8 vf_id ;
1238 u8 reserved[7];
1239};
1240
1241
1242
1243
1244union event_ring_data {
1245 u8 bytes[8] ;
1246 struct vf_pf_channel_eqe_data vf_pf_channel ;
1247 struct iscsi_eqe_data iscsi_info ;
1248
1249 struct iscsi_connect_done_results iscsi_conn_done_info;
1250 union rdma_eqe_data rdma_data ;
1251 struct nvmf_eqe_data nvmf_data ;
1252 struct malicious_vf_eqe_data malicious_vf ;
1253
1254 struct initial_cleanup_eqe_data vf_init_cleanup;
1255};
1256
1257
1258
1259
1260
1261struct event_ring_entry {
1262 u8 protocol_id ;
1263 u8 opcode ;
1264 u8 reserved0 ;
1265 u8 vfId ;
1266 __le16 echo ;
1267
1268
1269
1270 u8 fw_return_code;
1271 u8 flags;
1272
1273#define EVENT_RING_ENTRY_ASYNC_MASK 0x1
1274#define EVENT_RING_ENTRY_ASYNC_SHIFT 0
1275#define EVENT_RING_ENTRY_RESERVED1_MASK 0x7F
1276#define EVENT_RING_ENTRY_RESERVED1_SHIFT 1
1277 union event_ring_data data;
1278};
1279
1280
1281
1282
1283struct event_ring_next_addr {
1284 struct regpair addr ;
1285 __le32 reserved[2] ;
1286};
1287
1288
1289
1290
1291union event_ring_element {
1292 struct event_ring_entry entry ;
1293
1294 struct event_ring_next_addr next_addr;
1295};
1296
1297
1298
1299
1300
1301
1302enum fw_flow_ctrl_mode {
1303 flow_ctrl_pause,
1304 flow_ctrl_pfc,
1305 MAX_FW_FLOW_CTRL_MODE
1306};
1307
1308
1309
1310
1311
1312enum gft_profile_type {
1313
1314 GFT_PROFILE_TYPE_4_TUPLE,
1315
1316 GFT_PROFILE_TYPE_L4_DST_PORT,
1317
1318 GFT_PROFILE_TYPE_IP_DST_ADDR,
1319
1320 GFT_PROFILE_TYPE_IP_SRC_ADDR,
1321 GFT_PROFILE_TYPE_TUNNEL_TYPE ,
1322 MAX_GFT_PROFILE_TYPE
1323};
1324
1325
1326
1327
1328
1329struct hsi_fp_ver_struct {
1330 u8 minor_ver_arr[2] ;
1331 u8 major_ver_arr[2] ;
1332};
1333
1334
1335
1336
1337
1338enum integ_phase {
1339 INTEG_PHASE_BB_A0_LATEST = 3 ,
1340 INTEG_PHASE_BB_B0_NO_MCP = 10 ,
1341 INTEG_PHASE_BB_B0_WITH_MCP = 11 ,
1342 MAX_INTEG_PHASE
1343};
1344
1345
1346
1347
1348
1349enum iwarp_ll2_tx_queues {
1350
1351 IWARP_LL2_IN_ORDER_TX_QUEUE = 1,
1352
1353 IWARP_LL2_ALIGNED_TX_QUEUE,
1354
1355
1356
1357 IWARP_LL2_ALIGNED_RIGHT_TRIMMED_TX_QUEUE,
1358 IWARP_LL2_ERROR ,
1359 MAX_IWARP_LL2_TX_QUEUES
1360};
1361
1362
1363
1364
1365
1366enum malicious_vf_error_id {
1367 MALICIOUS_VF_NO_ERROR ,
1368
1369 VF_PF_CHANNEL_NOT_READY,
1370 VF_ZONE_MSG_NOT_VALID ,
1371 VF_ZONE_FUNC_NOT_ENABLED ,
1372
1373 ETH_PACKET_TOO_SMALL,
1374
1375 ETH_ILLEGAL_VLAN_MODE,
1376 ETH_MTU_VIOLATION ,
1377
1378 ETH_ILLEGAL_INBAND_TAGS,
1379
1380 ETH_VLAN_INSERT_AND_INBAND_VLAN,
1381
1382 ETH_ILLEGAL_NBDS,
1383 ETH_FIRST_BD_WO_SOP ,
1384
1385 ETH_INSUFFICIENT_BDS,
1386 ETH_ILLEGAL_LSO_HDR_NBDS ,
1387 ETH_ILLEGAL_LSO_MSS ,
1388
1389 ETH_ZERO_SIZE_BD,
1390 ETH_ILLEGAL_LSO_HDR_LEN ,
1391
1392
1393
1394 ETH_INSUFFICIENT_PAYLOAD,
1395 ETH_EDPM_OUT_OF_SYNC ,
1396
1397 ETH_TUNN_IPV6_EXT_NBD_ERR,
1398 ETH_CONTROL_PACKET_VIOLATION ,
1399 ETH_ANTI_SPOOFING_ERR ,
1400
1401 ETH_PACKET_SIZE_TOO_LARGE,
1402
1403 CORE_ILLEGAL_VLAN_MODE,
1404
1405 CORE_ILLEGAL_NBDS,
1406 CORE_FIRST_BD_WO_SOP ,
1407
1408 CORE_INSUFFICIENT_BDS,
1409
1410 CORE_PACKET_TOO_SMALL,
1411 CORE_ILLEGAL_INBAND_TAGS ,
1412 CORE_VLAN_INSERT_AND_INBAND_VLAN ,
1413 CORE_MTU_VIOLATION ,
1414 CORE_CONTROL_PACKET_VIOLATION ,
1415 CORE_ANTI_SPOOFING_ERR ,
1416 MAX_MALICIOUS_VF_ERROR_ID
1417};
1418
1419
1420
1421
1422
1423
1424struct mstorm_non_trigger_vf_zone {
1425
1426 struct eth_mstorm_per_queue_stat eth_queue_stat;
1427
1428 struct eth_rx_prod_data
1429 eth_rx_queue_producers[ETH_MAX_NUM_RX_QUEUES_PER_VF_QUAD];
1430};
1431
1432
1433
1434
1435
1436struct mstorm_vf_zone {
1437
1438 struct mstorm_non_trigger_vf_zone non_trigger;
1439};
1440
1441
1442
1443
1444
1445struct vlan_header {
1446 __le16 tpid ;
1447 __le16 tci ;
1448};
1449
1450
1451
1452
1453struct outer_tag_config_struct {
1454
1455
1456
1457
1458 u8 enable_stag_pri_change;
1459
1460 u8 pri_map_valid;
1461 u8 reserved[2];
1462
1463
1464
1465 struct vlan_header outer_tag;
1466
1467 u8 inner_to_outer_pri_map[8];
1468};
1469
1470
1471
1472
1473
1474enum personality_type {
1475 BAD_PERSONALITY_TYP,
1476 PERSONALITY_ISCSI ,
1477 PERSONALITY_FCOE ,
1478 PERSONALITY_RDMA_AND_ETH ,
1479 PERSONALITY_RDMA ,
1480 PERSONALITY_CORE ,
1481 PERSONALITY_ETH ,
1482 PERSONALITY_TOE ,
1483 MAX_PERSONALITY_TYPE
1484};
1485
1486
1487
1488
1489
1490struct pf_start_tunnel_config {
1491
1492
1493
1494 u8 set_vxlan_udp_port_flg;
1495
1496
1497
1498 u8 set_geneve_udp_port_flg;
1499
1500
1501
1502 u8 set_no_inner_l2_vxlan_udp_port_flg;
1503 u8 tunnel_clss_vxlan ;
1504
1505 u8 tunnel_clss_l2geneve;
1506
1507 u8 tunnel_clss_ipgeneve;
1508 u8 tunnel_clss_l2gre ;
1509 u8 tunnel_clss_ipgre ;
1510
1511 __le16 vxlan_udp_port;
1512
1513 __le16 geneve_udp_port;
1514
1515
1516
1517 __le16 no_inner_l2_vxlan_udp_port;
1518 __le16 reserved[3];
1519};
1520
1521
1522
1523
1524struct pf_start_ramrod_data {
1525 struct regpair event_ring_pbl_addr ;
1526
1527 struct regpair consolid_q_pbl_addr;
1528
1529 struct pf_start_tunnel_config tunnel_config;
1530 __le16 event_ring_sb_id ;
1531
1532 u8 base_vf_id;
1533 u8 num_vfs ;
1534 u8 event_ring_num_pages ;
1535 u8 event_ring_sb_index ;
1536 u8 path_id ;
1537 u8 warning_as_error ;
1538
1539 u8 dont_log_ramrods;
1540 u8 personality ;
1541
1542
1543
1544 __le16 log_type_mask;
1545 u8 mf_mode ;
1546 u8 integ_phase ;
1547
1548 u8 allow_npar_tx_switching;
1549 u8 reserved0;
1550
1551 struct hsi_fp_ver_struct hsi_fp_ver;
1552
1553 struct outer_tag_config_struct outer_tag_config;
1554};
1555
1556
1557
1558
1559
1560
1561struct protocol_dcb_data {
1562 u8 dcb_enable_flag ;
1563 u8 dscp_enable_flag ;
1564 u8 dcb_priority ;
1565 u8 dcb_tc ;
1566 u8 dscp_val ;
1567
1568
1569
1570 u8 dcb_dont_add_vlan0;
1571};
1572
1573
1574
1575
1576struct pf_update_tunnel_config {
1577
1578 u8 update_rx_pf_clss;
1579
1580
1581
1582 u8 update_rx_def_ucast_clss;
1583
1584
1585
1586 u8 update_rx_def_non_ucast_clss;
1587
1588 u8 set_vxlan_udp_port_flg;
1589
1590 u8 set_geneve_udp_port_flg;
1591
1592 u8 set_no_inner_l2_vxlan_udp_port_flg;
1593 u8 tunnel_clss_vxlan ;
1594
1595 u8 tunnel_clss_l2geneve;
1596
1597 u8 tunnel_clss_ipgeneve;
1598 u8 tunnel_clss_l2gre ;
1599 u8 tunnel_clss_ipgre ;
1600 u8 reserved;
1601 __le16 vxlan_udp_port ;
1602 __le16 geneve_udp_port ;
1603
1604 __le16 no_inner_l2_vxlan_udp_port;
1605 __le16 reserved1[3];
1606};
1607
1608
1609
1610
1611struct pf_update_ramrod_data {
1612
1613 u8 update_eth_dcb_data_mode;
1614
1615 u8 update_fcoe_dcb_data_mode;
1616
1617 u8 update_iscsi_dcb_data_mode;
1618 u8 update_roce_dcb_data_mode ;
1619
1620 u8 update_rroce_dcb_data_mode;
1621 u8 update_iwarp_dcb_data_mode ;
1622 u8 update_mf_vlan_flag ;
1623
1624 u8 update_enable_stag_pri_change;
1625 struct protocol_dcb_data eth_dcb_data ;
1626 struct protocol_dcb_data fcoe_dcb_data ;
1627
1628 struct protocol_dcb_data iscsi_dcb_data;
1629 struct protocol_dcb_data roce_dcb_data ;
1630
1631 struct protocol_dcb_data rroce_dcb_data;
1632
1633 struct protocol_dcb_data iwarp_dcb_data;
1634 __le16 mf_vlan ;
1635
1636
1637
1638
1639 u8 enable_stag_pri_change;
1640 u8 reserved;
1641
1642 struct pf_update_tunnel_config tunnel_config;
1643};
1644
1645
1646
1647
1648
1649
1650enum ports_mode {
1651 ENGX2_PORTX1 ,
1652 ENGX2_PORTX2 ,
1653 ENGX1_PORTX1 ,
1654 ENGX1_PORTX2 ,
1655 ENGX1_PORTX4 ,
1656 MAX_PORTS_MODE
1657};
1658
1659
1660
1661
1662
1663
1664enum protocol_version_array_key {
1665 ETH_VER_KEY = 0,
1666 ROCE_VER_KEY,
1667 MAX_PROTOCOL_VERSION_ARRAY_KEY
1668};
1669
1670
1671
1672
1673
1674
1675struct rdma_sent_stats {
1676 struct regpair sent_bytes ;
1677 struct regpair sent_pkts ;
1678};
1679
1680
1681
1682
1683struct pstorm_non_trigger_vf_zone {
1684
1685 struct eth_pstorm_per_queue_stat eth_queue_stat;
1686 struct rdma_sent_stats rdma_stats ;
1687};
1688
1689
1690
1691
1692
1693struct pstorm_vf_zone {
1694
1695 struct pstorm_non_trigger_vf_zone non_trigger;
1696 struct regpair reserved[7] ;
1697};
1698
1699
1700
1701
1702
1703struct ramrod_header {
1704 __le32 cid ;
1705 u8 cmd_id ;
1706 u8 protocol_id ;
1707 __le16 echo ;
1708};
1709
1710
1711
1712
1713
1714struct rdma_rcv_stats {
1715 struct regpair rcv_bytes ;
1716 struct regpair rcv_pkts ;
1717};
1718
1719
1720
1721
1722
1723
1724struct rl_update_ramrod_data {
1725 u8 qcn_update_param_flg ;
1726
1727 u8 dcqcn_update_param_flg;
1728 u8 rl_init_flg ;
1729 u8 rl_start_flg ;
1730 u8 rl_stop_flg ;
1731 u8 rl_id_first ;
1732
1733 u8 rl_id_last;
1734 u8 rl_dc_qcn_flg ;
1735
1736 u8 dcqcn_reset_alpha_on_idle;
1737
1738 u8 rl_bc_stage_th;
1739
1740 u8 rl_timer_stage_th;
1741 u8 reserved1;
1742 __le32 rl_bc_rate ;
1743 __le16 rl_max_rate ;
1744 __le16 rl_r_ai ;
1745 __le16 rl_r_hai ;
1746 __le16 dcqcn_g ;
1747 __le32 dcqcn_k_us ;
1748 __le32 dcqcn_timeuot_us ;
1749 __le32 qcn_timeuot_us ;
1750 __le32 reserved2;
1751};
1752
1753
1754
1755
1756
1757struct slow_path_element {
1758 struct ramrod_header hdr ;
1759 struct regpair data_ptr ;
1760};
1761
1762
1763
1764
1765
1766struct tstorm_non_trigger_vf_zone {
1767 struct rdma_rcv_stats rdma_stats ;
1768};
1769
1770
1771struct tstorm_per_port_stat {
1772
1773 struct regpair trunc_error_discard;
1774
1775 struct regpair mac_error_discard;
1776
1777 struct regpair mftag_filter_discard;
1778
1779 struct regpair eth_mac_filter_discard;
1780
1781
1782
1783 struct regpair ll2_mac_filter_discard;
1784
1785
1786
1787 struct regpair ll2_conn_disabled_discard;
1788
1789 struct regpair iscsi_irregular_pkt;
1790
1791 struct regpair fcoe_irregular_pkt;
1792
1793 struct regpair roce_irregular_pkt;
1794
1795 struct regpair iwarp_irregular_pkt;
1796
1797 struct regpair eth_irregular_pkt;
1798
1799 struct regpair toe_irregular_pkt;
1800
1801 struct regpair preroce_irregular_pkt;
1802 struct regpair eth_gre_tunn_filter_discard ;
1803
1804 struct regpair eth_vxlan_tunn_filter_discard;
1805
1806 struct regpair eth_geneve_tunn_filter_discard;
1807 struct regpair eth_gft_drop_pkt ;
1808};
1809
1810
1811
1812
1813
1814struct tstorm_vf_zone {
1815
1816 struct tstorm_non_trigger_vf_zone non_trigger;
1817};
1818
1819
1820
1821
1822
1823enum tunnel_clss {
1824
1825 TUNNEL_CLSS_MAC_VLAN = 0,
1826
1827
1828
1829 TUNNEL_CLSS_MAC_VNI,
1830
1831 TUNNEL_CLSS_INNER_MAC_VLAN,
1832
1833
1834
1835 TUNNEL_CLSS_INNER_MAC_VNI,
1836
1837
1838
1839 TUNNEL_CLSS_MAC_VLAN_DUAL_STAGE,
1840 MAX_TUNNEL_CLSS
1841};
1842
1843
1844
1845
1846
1847
1848struct ustorm_non_trigger_vf_zone {
1849
1850 struct eth_ustorm_per_queue_stat eth_queue_stat;
1851 struct regpair vf_pf_msg_addr ;
1852};
1853
1854
1855
1856
1857
1858struct ustorm_trigger_vf_zone {
1859 u8 vf_pf_msg_valid ;
1860 u8 reserved[7];
1861};
1862
1863
1864
1865
1866
1867struct ustorm_vf_zone {
1868
1869 struct ustorm_non_trigger_vf_zone non_trigger;
1870 struct ustorm_trigger_vf_zone trigger ;
1871};
1872
1873
1874
1875
1876
1877struct vf_pf_channel_data {
1878
1879
1880
1881 __le32 ready;
1882
1883
1884
1885 u8 valid;
1886 u8 reserved0;
1887 __le16 reserved1;
1888};
1889
1890
1891
1892
1893
1894struct vf_start_ramrod_data {
1895 u8 vf_id ;
1896
1897 u8 enable_flr_ack;
1898 __le16 opaque_fid ;
1899 u8 personality ;
1900 u8 reserved[7];
1901
1902 struct hsi_fp_ver_struct hsi_fp_ver;
1903};
1904
1905
1906
1907
1908
1909struct vf_stop_ramrod_data {
1910 u8 vf_id ;
1911 u8 reserved0;
1912 __le16 reserved1;
1913 __le32 reserved2;
1914};
1915
1916
1917
1918
1919
1920enum vf_zone_size_mode {
1921
1922 VF_ZONE_SIZE_MODE_DEFAULT,
1923
1924 VF_ZONE_SIZE_MODE_DOUBLE,
1925
1926 VF_ZONE_SIZE_MODE_QUAD,
1927 MAX_VF_ZONE_SIZE_MODE
1928};
1929
1930
1931
1932
1933
1934
1935
1936struct xstorm_non_trigger_vf_zone {
1937 struct regpair non_edpm_ack_pkts ;
1938};
1939
1940
1941
1942
1943
1944struct xstorm_vf_zone {
1945
1946 struct xstorm_non_trigger_vf_zone non_trigger;
1947};
1948
1949
1950
1951
1952
1953
1954struct atten_status_block {
1955 __le32 atten_bits;
1956 __le32 atten_ack;
1957 __le16 reserved0;
1958 __le16 sb_index ;
1959 __le32 reserved1;
1960};
1961
1962
1963
1964
1965
1966struct dmae_cmd {
1967 __le32 opcode;
1968
1969#define DMAE_CMD_SRC_MASK 0x1
1970#define DMAE_CMD_SRC_SHIFT 0
1971
1972
1973
1974#define DMAE_CMD_DST_MASK 0x3
1975#define DMAE_CMD_DST_SHIFT 1
1976
1977#define DMAE_CMD_C_DST_MASK 0x1
1978#define DMAE_CMD_C_DST_SHIFT 3
1979
1980#define DMAE_CMD_CRC_RESET_MASK 0x1
1981#define DMAE_CMD_CRC_RESET_SHIFT 4
1982
1983
1984
1985#define DMAE_CMD_SRC_ADDR_RESET_MASK 0x1
1986#define DMAE_CMD_SRC_ADDR_RESET_SHIFT 5
1987
1988
1989
1990#define DMAE_CMD_DST_ADDR_RESET_MASK 0x1
1991#define DMAE_CMD_DST_ADDR_RESET_SHIFT 6
1992
1993
1994
1995#define DMAE_CMD_COMP_FUNC_MASK 0x1
1996#define DMAE_CMD_COMP_FUNC_SHIFT 7
1997
1998
1999
2000#define DMAE_CMD_COMP_WORD_EN_MASK 0x1
2001#define DMAE_CMD_COMP_WORD_EN_SHIFT 8
2002
2003
2004
2005#define DMAE_CMD_COMP_CRC_EN_MASK 0x1
2006#define DMAE_CMD_COMP_CRC_EN_SHIFT 9
2007
2008
2009
2010#define DMAE_CMD_COMP_CRC_OFFSET_MASK 0x7
2011#define DMAE_CMD_COMP_CRC_OFFSET_SHIFT 10
2012#define DMAE_CMD_RESERVED1_MASK 0x1
2013#define DMAE_CMD_RESERVED1_SHIFT 13
2014#define DMAE_CMD_ENDIANITY_MODE_MASK 0x3
2015#define DMAE_CMD_ENDIANITY_MODE_SHIFT 14
2016
2017
2018
2019
2020#define DMAE_CMD_ERR_HANDLING_MASK 0x3
2021#define DMAE_CMD_ERR_HANDLING_SHIFT 16
2022
2023
2024
2025
2026#define DMAE_CMD_PORT_ID_MASK 0x3
2027#define DMAE_CMD_PORT_ID_SHIFT 18
2028
2029#define DMAE_CMD_SRC_PF_ID_MASK 0xF
2030#define DMAE_CMD_SRC_PF_ID_SHIFT 20
2031
2032#define DMAE_CMD_DST_PF_ID_MASK 0xF
2033#define DMAE_CMD_DST_PF_ID_SHIFT 24
2034#define DMAE_CMD_SRC_VF_ID_VALID_MASK 0x1
2035#define DMAE_CMD_SRC_VF_ID_VALID_SHIFT 28
2036#define DMAE_CMD_DST_VF_ID_VALID_MASK 0x1
2037#define DMAE_CMD_DST_VF_ID_VALID_SHIFT 29
2038#define DMAE_CMD_RESERVED2_MASK 0x3
2039#define DMAE_CMD_RESERVED2_SHIFT 30
2040
2041 __le32 src_addr_lo;
2042
2043 __le32 src_addr_hi;
2044
2045 __le32 dst_addr_lo;
2046
2047 __le32 dst_addr_hi;
2048 __le16 length_dw ;
2049 __le16 opcode_b;
2050#define DMAE_CMD_SRC_VF_ID_MASK 0xFF
2051#define DMAE_CMD_SRC_VF_ID_SHIFT 0
2052#define DMAE_CMD_DST_VF_ID_MASK 0xFF
2053#define DMAE_CMD_DST_VF_ID_SHIFT 8
2054
2055 __le32 comp_addr_lo;
2056
2057
2058
2059 __le32 comp_addr_hi;
2060 __le32 comp_val ;
2061 __le32 crc32 ;
2062 __le32 crc_32_c ;
2063 __le16 crc16 ;
2064 __le16 crc16_c ;
2065 __le16 crc10 ;
2066 __le16 error_bit_reserved;
2067#define DMAE_CMD_ERROR_BIT_MASK 0x1
2068#define DMAE_CMD_ERROR_BIT_SHIFT 0
2069#define DMAE_CMD_RESERVED_MASK 0x7FFF
2070#define DMAE_CMD_RESERVED_SHIFT 1
2071 __le16 xsum16 ;
2072 __le16 xsum8 ;
2073};
2074
2075
2076enum dmae_cmd_comp_crc_en_enum {
2077 dmae_cmd_comp_crc_disabled ,
2078 dmae_cmd_comp_crc_enabled ,
2079 MAX_DMAE_CMD_COMP_CRC_EN_ENUM
2080};
2081
2082
2083enum dmae_cmd_comp_func_enum {
2084
2085 dmae_cmd_comp_func_to_src,
2086
2087 dmae_cmd_comp_func_to_dst,
2088 MAX_DMAE_CMD_COMP_FUNC_ENUM
2089};
2090
2091
2092enum dmae_cmd_comp_word_en_enum {
2093 dmae_cmd_comp_word_disabled ,
2094 dmae_cmd_comp_word_enabled ,
2095 MAX_DMAE_CMD_COMP_WORD_EN_ENUM
2096};
2097
2098
2099enum dmae_cmd_c_dst_enum {
2100 dmae_cmd_c_dst_pcie,
2101 dmae_cmd_c_dst_grc,
2102 MAX_DMAE_CMD_C_DST_ENUM
2103};
2104
2105
2106enum dmae_cmd_dst_enum {
2107 dmae_cmd_dst_none_0,
2108 dmae_cmd_dst_pcie,
2109 dmae_cmd_dst_grc,
2110 dmae_cmd_dst_none_3,
2111 MAX_DMAE_CMD_DST_ENUM
2112};
2113
2114
2115enum dmae_cmd_error_handling_enum {
2116
2117 dmae_cmd_error_handling_send_regular_comp,
2118
2119
2120
2121 dmae_cmd_error_handling_send_comp_with_err,
2122 dmae_cmd_error_handling_dont_send_comp ,
2123 MAX_DMAE_CMD_ERROR_HANDLING_ENUM
2124};
2125
2126
2127enum dmae_cmd_src_enum {
2128 dmae_cmd_src_pcie ,
2129 dmae_cmd_src_grc ,
2130 MAX_DMAE_CMD_SRC_ENUM
2131};
2132
2133
2134
2135
2136
2137struct dmae_params {
2138 __le32 flags;
2139
2140
2141
2142
2143
2144#define DMAE_PARAMS_RW_REPL_SRC_MASK 0x1
2145#define DMAE_PARAMS_RW_REPL_SRC_SHIFT 0
2146
2147
2148
2149#define DMAE_PARAMS_SRC_VF_VALID_MASK 0x1
2150#define DMAE_PARAMS_SRC_VF_VALID_SHIFT 1
2151
2152
2153
2154#define DMAE_PARAMS_DST_VF_VALID_MASK 0x1
2155#define DMAE_PARAMS_DST_VF_VALID_SHIFT 2
2156
2157
2158
2159#define DMAE_PARAMS_COMPLETION_DST_MASK 0x1
2160#define DMAE_PARAMS_COMPLETION_DST_SHIFT 3
2161
2162
2163
2164#define DMAE_PARAMS_PORT_VALID_MASK 0x1
2165#define DMAE_PARAMS_PORT_VALID_SHIFT 4
2166
2167
2168
2169#define DMAE_PARAMS_SRC_PF_VALID_MASK 0x1
2170#define DMAE_PARAMS_SRC_PF_VALID_SHIFT 5
2171
2172
2173
2174#define DMAE_PARAMS_DST_PF_VALID_MASK 0x1
2175#define DMAE_PARAMS_DST_PF_VALID_SHIFT 6
2176#define DMAE_PARAMS_RESERVED_MASK 0x1FFFFFF
2177#define DMAE_PARAMS_RESERVED_SHIFT 7
2178 u8 src_vf_id ;
2179 u8 dst_vf_id ;
2180 u8 port_id ;
2181 u8 src_pf_id ;
2182 u8 dst_pf_id ;
2183 u8 reserved1;
2184 __le16 reserved2;
2185};
2186
2187
2188struct fw_asserts_ram_section {
2189
2190 __le16 section_ram_line_offset;
2191
2192 __le16 section_ram_line_size;
2193
2194 u8 list_dword_offset;
2195
2196 u8 list_element_dword_size;
2197 u8 list_num_elements ;
2198
2199 u8 list_next_index_dword_offset;
2200};
2201
2202
2203struct fw_ver_num {
2204 u8 major ;
2205 u8 minor ;
2206 u8 rev ;
2207 u8 eng ;
2208};
2209
2210struct fw_ver_info {
2211 __le16 tools_ver ;
2212 u8 image_id ;
2213 u8 reserved1;
2214 struct fw_ver_num num ;
2215 __le32 timestamp ;
2216 __le32 reserved2;
2217};
2218
2219struct fw_info {
2220 struct fw_ver_info ver ;
2221
2222 struct fw_asserts_ram_section fw_asserts_section;
2223};
2224
2225
2226struct fw_info_location {
2227 __le32 grc_addr ;
2228
2229 __le32 size;
2230};
2231
2232
2233
2234struct ecore_dmae_params {
2235 u32 flags;
2236
2237
2238
2239
2240
2241
2242
2243#define ECORE_DMAE_PARAMS_RW_REPL_SRC_MASK 0x1
2244#define ECORE_DMAE_PARAMS_RW_REPL_SRC_SHIFT 0
2245#define ECORE_DMAE_PARAMS_SRC_VF_VALID_MASK 0x1
2246#define ECORE_DMAE_PARAMS_SRC_VF_VALID_SHIFT 1
2247#define ECORE_DMAE_PARAMS_DST_VF_VALID_MASK 0x1
2248#define ECORE_DMAE_PARAMS_DST_VF_VALID_SHIFT 2
2249#define ECORE_DMAE_PARAMS_COMPLETION_DST_MASK 0x1
2250#define ECORE_DMAE_PARAMS_COMPLETION_DST_SHIFT 3
2251#define ECORE_DMAE_PARAMS_PORT_VALID_MASK 0x1
2252#define ECORE_DMAE_PARAMS_PORT_VALID_SHIFT 4
2253#define ECORE_DMAE_PARAMS_SRC_PF_VALID_MASK 0x1
2254#define ECORE_DMAE_PARAMS_SRC_PF_VALID_SHIFT 5
2255#define ECORE_DMAE_PARAMS_DST_PF_VALID_MASK 0x1
2256#define ECORE_DMAE_PARAMS_DST_PF_VALID_SHIFT 6
2257#define ECORE_DMAE_PARAMS_RESERVED_MASK 0x1FFFFFF
2258#define ECORE_DMAE_PARAMS_RESERVED_SHIFT 7
2259 u8 src_vfid;
2260 u8 dst_vfid;
2261 u8 port_id;
2262 u8 src_pfid;
2263 u8 dst_pfid;
2264 u8 reserved1;
2265 __le16 reserved2;
2266};
2267
2268
2269
2270
2271struct igu_cleanup {
2272 __le32 sb_id_and_flags;
2273#define IGU_CLEANUP_RESERVED0_MASK 0x7FFFFFF
2274#define IGU_CLEANUP_RESERVED0_SHIFT 0
2275
2276#define IGU_CLEANUP_CLEANUP_SET_MASK 0x1
2277#define IGU_CLEANUP_CLEANUP_SET_SHIFT 27
2278#define IGU_CLEANUP_CLEANUP_TYPE_MASK 0x7
2279#define IGU_CLEANUP_CLEANUP_TYPE_SHIFT 28
2280
2281#define IGU_CLEANUP_COMMAND_TYPE_MASK 0x1U
2282#define IGU_CLEANUP_COMMAND_TYPE_SHIFT 31
2283 __le32 reserved1;
2284};
2285
2286
2287
2288
2289
2290union igu_command {
2291 struct igu_prod_cons_update prod_cons_update;
2292 struct igu_cleanup cleanup;
2293};
2294
2295
2296
2297
2298
2299struct igu_command_reg_ctrl {
2300 __le16 opaque_fid;
2301 __le16 igu_command_reg_ctrl_fields;
2302#define IGU_COMMAND_REG_CTRL_PXP_BAR_ADDR_MASK 0xFFF
2303#define IGU_COMMAND_REG_CTRL_PXP_BAR_ADDR_SHIFT 0
2304#define IGU_COMMAND_REG_CTRL_RESERVED_MASK 0x7
2305#define IGU_COMMAND_REG_CTRL_RESERVED_SHIFT 12
2306
2307#define IGU_COMMAND_REG_CTRL_COMMAND_TYPE_MASK 0x1
2308#define IGU_COMMAND_REG_CTRL_COMMAND_TYPE_SHIFT 15
2309};
2310
2311
2312
2313
2314
2315struct igu_mapping_line {
2316 __le32 igu_mapping_line_fields;
2317#define IGU_MAPPING_LINE_VALID_MASK 0x1
2318#define IGU_MAPPING_LINE_VALID_SHIFT 0
2319#define IGU_MAPPING_LINE_VECTOR_NUMBER_MASK 0xFF
2320#define IGU_MAPPING_LINE_VECTOR_NUMBER_SHIFT 1
2321
2322#define IGU_MAPPING_LINE_FUNCTION_NUMBER_MASK 0xFF
2323#define IGU_MAPPING_LINE_FUNCTION_NUMBER_SHIFT 9
2324#define IGU_MAPPING_LINE_PF_VALID_MASK 0x1
2325#define IGU_MAPPING_LINE_PF_VALID_SHIFT 17
2326#define IGU_MAPPING_LINE_IPS_GROUP_MASK 0x3F
2327#define IGU_MAPPING_LINE_IPS_GROUP_SHIFT 18
2328#define IGU_MAPPING_LINE_RESERVED_MASK 0xFF
2329#define IGU_MAPPING_LINE_RESERVED_SHIFT 24
2330};
2331
2332
2333
2334
2335
2336struct igu_msix_vector {
2337 struct regpair address;
2338 __le32 data;
2339 __le32 msix_vector_fields;
2340#define IGU_MSIX_VECTOR_MASK_BIT_MASK 0x1
2341#define IGU_MSIX_VECTOR_MASK_BIT_SHIFT 0
2342#define IGU_MSIX_VECTOR_RESERVED0_MASK 0x7FFF
2343#define IGU_MSIX_VECTOR_RESERVED0_SHIFT 1
2344#define IGU_MSIX_VECTOR_STEERING_TAG_MASK 0xFF
2345#define IGU_MSIX_VECTOR_STEERING_TAG_SHIFT 16
2346#define IGU_MSIX_VECTOR_RESERVED1_MASK 0xFF
2347#define IGU_MSIX_VECTOR_RESERVED1_SHIFT 24
2348};
2349
2350
2351struct mstorm_core_conn_ag_ctx {
2352 u8 byte0 ;
2353 u8 byte1 ;
2354 u8 flags0;
2355#define MSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1
2356#define MSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0
2357#define MSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1
2358#define MSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1
2359#define MSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
2360#define MSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2
2361#define MSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
2362#define MSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4
2363#define MSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
2364#define MSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6
2365 u8 flags1;
2366#define MSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
2367#define MSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0
2368#define MSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
2369#define MSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1
2370#define MSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
2371#define MSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2
2372#define MSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1
2373#define MSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 3
2374#define MSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1
2375#define MSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 4
2376#define MSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1
2377#define MSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 5
2378#define MSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1
2379#define MSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 6
2380#define MSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1
2381#define MSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 7
2382 __le16 word0 ;
2383 __le16 word1 ;
2384 __le32 reg0 ;
2385 __le32 reg1 ;
2386};
2387
2388
2389
2390
2391
2392struct prs_reg_encapsulation_type_en {
2393 u8 flags;
2394
2395#define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GRE_ENABLE_MASK 0x1
2396#define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GRE_ENABLE_SHIFT 0
2397
2398#define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GRE_ENABLE_MASK 0x1
2399#define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GRE_ENABLE_SHIFT 1
2400
2401#define PRS_REG_ENCAPSULATION_TYPE_EN_VXLAN_ENABLE_MASK 0x1
2402#define PRS_REG_ENCAPSULATION_TYPE_EN_VXLAN_ENABLE_SHIFT 2
2403
2404#define PRS_REG_ENCAPSULATION_TYPE_EN_T_TAG_ENABLE_MASK 0x1
2405#define PRS_REG_ENCAPSULATION_TYPE_EN_T_TAG_ENABLE_SHIFT 3
2406
2407#define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GENEVE_ENABLE_MASK 0x1
2408#define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GENEVE_ENABLE_SHIFT 4
2409
2410#define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GENEVE_ENABLE_MASK 0x1
2411#define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GENEVE_ENABLE_SHIFT 5
2412#define PRS_REG_ENCAPSULATION_TYPE_EN_RESERVED_MASK 0x3
2413#define PRS_REG_ENCAPSULATION_TYPE_EN_RESERVED_SHIFT 6
2414};
2415
2416
2417enum pxp_tph_st_hint {
2418 TPH_ST_HINT_BIDIR ,
2419 TPH_ST_HINT_REQUESTER ,
2420
2421 TPH_ST_HINT_TARGET,
2422
2423
2424
2425 TPH_ST_HINT_TARGET_PRIO,
2426 MAX_PXP_TPH_ST_HINT
2427};
2428
2429
2430
2431
2432
2433struct qm_rf_bypass_mask {
2434 u8 flags;
2435#define QM_RF_BYPASS_MASK_LINEVOQ_MASK 0x1
2436#define QM_RF_BYPASS_MASK_LINEVOQ_SHIFT 0
2437#define QM_RF_BYPASS_MASK_RESERVED0_MASK 0x1
2438#define QM_RF_BYPASS_MASK_RESERVED0_SHIFT 1
2439#define QM_RF_BYPASS_MASK_PFWFQ_MASK 0x1
2440#define QM_RF_BYPASS_MASK_PFWFQ_SHIFT 2
2441#define QM_RF_BYPASS_MASK_VPWFQ_MASK 0x1
2442#define QM_RF_BYPASS_MASK_VPWFQ_SHIFT 3
2443#define QM_RF_BYPASS_MASK_PFRL_MASK 0x1
2444#define QM_RF_BYPASS_MASK_PFRL_SHIFT 4
2445#define QM_RF_BYPASS_MASK_VPQCNRL_MASK 0x1
2446#define QM_RF_BYPASS_MASK_VPQCNRL_SHIFT 5
2447#define QM_RF_BYPASS_MASK_FWPAUSE_MASK 0x1
2448#define QM_RF_BYPASS_MASK_FWPAUSE_SHIFT 6
2449#define QM_RF_BYPASS_MASK_RESERVED1_MASK 0x1
2450#define QM_RF_BYPASS_MASK_RESERVED1_SHIFT 7
2451};
2452
2453
2454
2455
2456
2457struct qm_rf_opportunistic_mask {
2458 __le16 flags;
2459#define QM_RF_OPPORTUNISTIC_MASK_LINEVOQ_MASK 0x1
2460#define QM_RF_OPPORTUNISTIC_MASK_LINEVOQ_SHIFT 0
2461#define QM_RF_OPPORTUNISTIC_MASK_BYTEVOQ_MASK 0x1
2462#define QM_RF_OPPORTUNISTIC_MASK_BYTEVOQ_SHIFT 1
2463#define QM_RF_OPPORTUNISTIC_MASK_PFWFQ_MASK 0x1
2464#define QM_RF_OPPORTUNISTIC_MASK_PFWFQ_SHIFT 2
2465#define QM_RF_OPPORTUNISTIC_MASK_VPWFQ_MASK 0x1
2466#define QM_RF_OPPORTUNISTIC_MASK_VPWFQ_SHIFT 3
2467#define QM_RF_OPPORTUNISTIC_MASK_PFRL_MASK 0x1
2468#define QM_RF_OPPORTUNISTIC_MASK_PFRL_SHIFT 4
2469#define QM_RF_OPPORTUNISTIC_MASK_VPQCNRL_MASK 0x1
2470#define QM_RF_OPPORTUNISTIC_MASK_VPQCNRL_SHIFT 5
2471#define QM_RF_OPPORTUNISTIC_MASK_FWPAUSE_MASK 0x1
2472#define QM_RF_OPPORTUNISTIC_MASK_FWPAUSE_SHIFT 6
2473#define QM_RF_OPPORTUNISTIC_MASK_RESERVED0_MASK 0x1
2474#define QM_RF_OPPORTUNISTIC_MASK_RESERVED0_SHIFT 7
2475#define QM_RF_OPPORTUNISTIC_MASK_QUEUEEMPTY_MASK 0x1
2476#define QM_RF_OPPORTUNISTIC_MASK_QUEUEEMPTY_SHIFT 8
2477#define QM_RF_OPPORTUNISTIC_MASK_RESERVED1_MASK 0x7F
2478#define QM_RF_OPPORTUNISTIC_MASK_RESERVED1_SHIFT 9
2479};
2480
2481
2482
2483
2484
2485struct qm_rf_pq_map {
2486 __le32 reg;
2487#define QM_RF_PQ_MAP_PQ_VALID_MASK 0x1
2488#define QM_RF_PQ_MAP_PQ_VALID_SHIFT 0
2489#define QM_RF_PQ_MAP_RL_ID_MASK 0xFF
2490#define QM_RF_PQ_MAP_RL_ID_SHIFT 1
2491
2492#define QM_RF_PQ_MAP_VP_PQ_ID_MASK 0x1FF
2493#define QM_RF_PQ_MAP_VP_PQ_ID_SHIFT 9
2494#define QM_RF_PQ_MAP_VOQ_MASK 0x1F
2495#define QM_RF_PQ_MAP_VOQ_SHIFT 18
2496#define QM_RF_PQ_MAP_WRR_WEIGHT_GROUP_MASK 0x3
2497#define QM_RF_PQ_MAP_WRR_WEIGHT_GROUP_SHIFT 23
2498#define QM_RF_PQ_MAP_RL_VALID_MASK 0x1
2499#define QM_RF_PQ_MAP_RL_VALID_SHIFT 25
2500#define QM_RF_PQ_MAP_RESERVED_MASK 0x3F
2501#define QM_RF_PQ_MAP_RESERVED_SHIFT 26
2502};
2503
2504
2505
2506
2507
2508struct sdm_agg_int_comp_params {
2509 __le16 params;
2510
2511#define SDM_AGG_INT_COMP_PARAMS_AGG_INT_INDEX_MASK 0x3F
2512#define SDM_AGG_INT_COMP_PARAMS_AGG_INT_INDEX_SHIFT 0
2513
2514#define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_ENABLE_MASK 0x1
2515#define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_ENABLE_SHIFT 6
2516
2517#define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_BIT_MASK 0x1FF
2518#define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_BIT_SHIFT 7
2519};
2520
2521
2522
2523
2524
2525struct sdm_op_gen {
2526 __le32 command;
2527
2528#define SDM_OP_GEN_COMP_PARAM_MASK 0xFFFF
2529#define SDM_OP_GEN_COMP_PARAM_SHIFT 0
2530#define SDM_OP_GEN_COMP_TYPE_MASK 0xF
2531#define SDM_OP_GEN_COMP_TYPE_SHIFT 16
2532#define SDM_OP_GEN_RESERVED_MASK 0xFFF
2533#define SDM_OP_GEN_RESERVED_SHIFT 20
2534};
2535
2536struct ystorm_core_conn_ag_ctx {
2537 u8 byte0 ;
2538 u8 byte1 ;
2539 u8 flags0;
2540#define YSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1
2541#define YSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0
2542#define YSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1
2543#define YSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1
2544#define YSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
2545#define YSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2
2546#define YSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
2547#define YSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4
2548#define YSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
2549#define YSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6
2550 u8 flags1;
2551#define YSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
2552#define YSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0
2553#define YSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
2554#define YSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1
2555#define YSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
2556#define YSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2
2557#define YSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1
2558#define YSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 3
2559#define YSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1
2560#define YSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 4
2561#define YSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1
2562#define YSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 5
2563#define YSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1
2564#define YSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 6
2565#define YSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1
2566#define YSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 7
2567 u8 byte2 ;
2568 u8 byte3 ;
2569 __le16 word0 ;
2570 __le32 reg0 ;
2571 __le32 reg1 ;
2572 __le16 word1 ;
2573 __le16 word2 ;
2574 __le16 word3 ;
2575 __le16 word4 ;
2576 __le32 reg2 ;
2577 __le32 reg3 ;
2578};
2579
2580
2581
2582
2583
2584#define MFW_TRACE_SIGNATURE 0x25071946
2585
2586
2587#define MFW_TRACE_EVENTID_MASK 0x00ffff
2588#define MFW_TRACE_PRM_SIZE_MASK 0x0f0000
2589#define MFW_TRACE_PRM_SIZE_OFFSET 16
2590#define MFW_TRACE_ENTRY_SIZE 3
2591
2592struct mcp_trace {
2593 u32 signature;
2594 u32 size;
2595 u32 curr_level;
2596
2597
2598
2599
2600
2601
2602 u32 modules_mask[2];
2603
2604
2605
2606
2607
2608 u32 trace_prod;
2609
2610
2611
2612 u32 trace_oldest;
2613};
2614
2615enum spad_sections {
2616 SPAD_SECTION_TRACE,
2617 SPAD_SECTION_NVM_CFG,
2618 SPAD_SECTION_PUBLIC,
2619 SPAD_SECTION_PRIVATE,
2620 SPAD_SECTION_MAX
2621};
2622
2623#define MCP_TRACE_SIZE 2048
2624
2625
2626
2627
2628
2629
2630
2631
2632struct static_init {
2633 u32 num_sections;
2634 offsize_t sections[SPAD_SECTION_MAX];
2635#define SECTION(_sec_) (*((offsize_t *)(STRUCT_OFFSET(sections[_sec_]))))
2636
2637 struct mcp_trace trace;
2638#define MCP_TRACE_P ((struct mcp_trace *)(STRUCT_OFFSET(trace)))
2639 u8 trace_buffer[MCP_TRACE_SIZE];
2640#define MCP_TRACE_BUF ((u8 *)(STRUCT_OFFSET(trace_buffer)))
2641
2642
2643
2644
2645 u32 running_mfw;
2646#define RUNNING_MFW (*((u32 *)(STRUCT_OFFSET(running_mfw))))
2647 u32 build_time;
2648#define MFW_BUILD_TIME (*((u32 *)(STRUCT_OFFSET(build_time))))
2649 u32 reset_type;
2650#define RESET_TYPE (*((u32 *)(STRUCT_OFFSET(reset_type))))
2651 u32 mfw_secure_mode;
2652#define MFW_SECURE_MODE (*((u32 *)(STRUCT_OFFSET(mfw_secure_mode))))
2653 u16 pme_status_pf_bitmap;
2654#define PME_STATUS_PF_BITMAP (*((u16 *)(STRUCT_OFFSET(pme_status_pf_bitmap))))
2655 u16 pme_enable_pf_bitmap;
2656#define PME_ENABLE_PF_BITMAP (*((u16 *)(STRUCT_OFFSET(pme_enable_pf_bitmap))))
2657 u32 mim_nvm_addr;
2658 u32 mim_start_addr;
2659 u32 ah_pcie_link_params;
2660#define AH_PCIE_LINK_PARAMS_LINK_SPEED_MASK (0x000000ff)
2661#define AH_PCIE_LINK_PARAMS_LINK_SPEED_SHIFT (0)
2662#define AH_PCIE_LINK_PARAMS_LINK_WIDTH_MASK (0x0000ff00)
2663#define AH_PCIE_LINK_PARAMS_LINK_WIDTH_SHIFT (8)
2664#define AH_PCIE_LINK_PARAMS_ASPM_MODE_MASK (0x00ff0000)
2665#define AH_PCIE_LINK_PARAMS_ASPM_MODE_SHIFT (16)
2666#define AH_PCIE_LINK_PARAMS_ASPM_CAP_MASK (0xff000000)
2667#define AH_PCIE_LINK_PARAMS_ASPM_CAP_SHIFT (24)
2668#define AH_PCIE_LINK_PARAMS (*((u32 *)(STRUCT_OFFSET(ah_pcie_link_params))))
2669
2670 u32 rsrv_persist[5];
2671};
2672
2673#define NVM_MAGIC_VALUE 0x669955aa
2674
2675enum nvm_image_type {
2676 NVM_TYPE_TIM1 = 0x01,
2677 NVM_TYPE_TIM2 = 0x02,
2678 NVM_TYPE_MIM1 = 0x03,
2679 NVM_TYPE_MIM2 = 0x04,
2680 NVM_TYPE_MBA = 0x05,
2681 NVM_TYPE_MODULES_PN = 0x06,
2682 NVM_TYPE_VPD = 0x07,
2683 NVM_TYPE_MFW_TRACE1 = 0x08,
2684 NVM_TYPE_MFW_TRACE2 = 0x09,
2685 NVM_TYPE_NVM_CFG1 = 0x0a,
2686 NVM_TYPE_L2B = 0x0b,
2687 NVM_TYPE_DIR1 = 0x0c,
2688 NVM_TYPE_EAGLE_FW1 = 0x0d,
2689 NVM_TYPE_FALCON_FW1 = 0x0e,
2690 NVM_TYPE_PCIE_FW1 = 0x0f,
2691 NVM_TYPE_HW_SET = 0x10,
2692 NVM_TYPE_LIM = 0x11,
2693 NVM_TYPE_AVS_FW1 = 0x12,
2694 NVM_TYPE_DIR2 = 0x13,
2695 NVM_TYPE_CCM = 0x14,
2696 NVM_TYPE_EAGLE_FW2 = 0x15,
2697 NVM_TYPE_FALCON_FW2 = 0x16,
2698 NVM_TYPE_PCIE_FW2 = 0x17,
2699 NVM_TYPE_AVS_FW2 = 0x18,
2700 NVM_TYPE_INIT_HW = 0x19,
2701 NVM_TYPE_DEFAULT_CFG = 0x1a,
2702 NVM_TYPE_MDUMP = 0x1b,
2703 NVM_TYPE_META = 0x1c,
2704 NVM_TYPE_ISCSI_CFG = 0x1d,
2705 NVM_TYPE_FCOE_CFG = 0x1f,
2706 NVM_TYPE_ETH_PHY_FW1 = 0x20,
2707 NVM_TYPE_ETH_PHY_FW2 = 0x21,
2708 NVM_TYPE_BDN = 0x22,
2709 NVM_TYPE_8485X_PHY_FW = 0x23,
2710 NVM_TYPE_PUB_KEY = 0x24,
2711 NVM_TYPE_RECOVERY = 0x25,
2712 NVM_TYPE_PLDM = 0x26,
2713 NVM_TYPE_UPK1 = 0x27,
2714 NVM_TYPE_UPK2 = 0x28,
2715 NVM_TYPE_MASTER_KC = 0x29,
2716 NVM_TYPE_BACKUP_KC = 0x2a,
2717 NVM_TYPE_HW_DUMP = 0x2b,
2718 NVM_TYPE_HW_DUMP_OUT = 0x2c,
2719 NVM_TYPE_BIN_NVM_META = 0x30,
2720 NVM_TYPE_ROM_TEST = 0xf0,
2721 NVM_TYPE_88X33X0_PHY_FW = 0x31,
2722 NVM_TYPE_88X33X0_PHY_SLAVE_FW = 0x32,
2723 NVM_TYPE_MAX,
2724};
2725
2726#define DIR_ID_1 (0)
2727
2728#endif
2729