blob: 6f9d3b831a2a0d545ef44b3dc6247ae5f141f3d0 [file] [log] [blame]
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001/* 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>
Yuval Mintz7a9b6b82016-06-03 14:35:33 +030020#include <linux/qed/storage_common.h>
21#include <linux/qed/tcp_common.h>
Yuval Mintz25c089d2015-10-26 11:02:26 +020022#include <linux/qed/eth_common.h>
Yuval Mintz7a9b6b82016-06-03 14:35:33 +030023#include <linux/qed/iscsi_common.h>
24#include <linux/qed/rdma_common.h>
25#include <linux/qed/roce_common.h>
Yuval Mintzfe56b9e2015-10-26 11:02:25 +020026
27struct qed_hwfn;
28struct qed_ptt;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +020029
30/* opcodes for the event ring */
31enum common_event_opcode {
32 COMMON_EVENT_PF_START,
33 COMMON_EVENT_PF_STOP,
Yuval Mintz1408cc1f2016-05-11 16:36:14 +030034 COMMON_EVENT_VF_START,
Yuval Mintz0b55e272016-05-11 16:36:15 +030035 COMMON_EVENT_VF_STOP,
Yuval Mintz37bff2b2016-05-11 16:36:13 +030036 COMMON_EVENT_VF_PF_CHANNEL,
Yuval Mintz351a4ded2016-06-02 10:23:29 +030037 COMMON_EVENT_VF_FLR,
38 COMMON_EVENT_PF_UPDATE,
39 COMMON_EVENT_MALICIOUS_VF,
40 COMMON_EVENT_RL_UPDATE,
Yuval Mintzfc48b7a2016-02-15 13:22:35 -050041 COMMON_EVENT_EMPTY,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +020042 MAX_COMMON_EVENT_OPCODE
43};
44
45/* Common Ramrod Command IDs */
46enum common_ramrod_cmd_id {
47 COMMON_RAMROD_UNUSED,
Yuval Mintz351a4ded2016-06-02 10:23:29 +030048 COMMON_RAMROD_PF_START,
49 COMMON_RAMROD_PF_STOP,
Yuval Mintz1408cc1f2016-05-11 16:36:14 +030050 COMMON_RAMROD_VF_START,
Yuval Mintz0b55e272016-05-11 16:36:15 +030051 COMMON_RAMROD_VF_STOP,
Manish Chopra464f6642016-04-14 01:38:29 -040052 COMMON_RAMROD_PF_UPDATE,
Yuval Mintz351a4ded2016-06-02 10:23:29 +030053 COMMON_RAMROD_RL_UPDATE,
Yuval Mintzfc48b7a2016-02-15 13:22:35 -050054 COMMON_RAMROD_EMPTY,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +020055 MAX_COMMON_RAMROD_CMD_ID
56};
57
58/* The core storm context for the Ystorm */
59struct ystorm_core_conn_st_ctx {
60 __le32 reserved[4];
61};
62
63/* The core storm context for the Pstorm */
64struct pstorm_core_conn_st_ctx {
65 __le32 reserved[4];
66};
67
68/* Core Slowpath Connection storm context of Xstorm */
69struct xstorm_core_conn_st_ctx {
Yuval Mintz351a4ded2016-06-02 10:23:29 +030070 __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];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +020076};
77
78struct xstorm_core_conn_ag_ctx {
Yuval Mintz351a4ded2016-06-02 10:23:29 +030079 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +020098 u8 flags1;
Yuval Mintz351a4ded2016-06-02 10:23:29 +030099#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200115 u8 flags2;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300116#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200124 u8 flags3;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300125#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200133 u8 flags4;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300134#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200142 u8 flags5;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300143#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200151 u8 flags6;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300152#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200160 u8 flags7;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300161#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200171 u8 flags8;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300172#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200188 u8 flags9;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300189#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200205 u8 flags10;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300206#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200222 u8 flags11;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300223#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200239 u8 flags12;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300240#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200256 u8 flags13;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300257#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200273 u8 flags14;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300274#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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200339};
340
Yuval Mintzfc48b7a2016-02-15 13:22:35 -0500341struct tstorm_core_conn_ag_ctx {
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300342 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
Yuval Mintzfc48b7a2016-02-15 13:22:35 -0500359 u8 flags1;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300360#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
Yuval Mintzfc48b7a2016-02-15 13:22:35 -0500368 u8 flags2;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300369#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
Yuval Mintzfc48b7a2016-02-15 13:22:35 -0500377 u8 flags3;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300378#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
Yuval Mintzfc48b7a2016-02-15 13:22:35 -0500390 u8 flags4;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300391#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
Yuval Mintzfc48b7a2016-02-15 13:22:35 -0500407 u8 flags5;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300408#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;
Yuval Mintzfc48b7a2016-02-15 13:22:35 -0500443};
444
445struct ustorm_core_conn_ag_ctx {
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300446 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
Yuval Mintzfc48b7a2016-02-15 13:22:35 -0500459 u8 flags1;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300460#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
Yuval Mintzfc48b7a2016-02-15 13:22:35 -0500468 u8 flags2;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300469#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
Yuval Mintzfc48b7a2016-02-15 13:22:35 -0500485 u8 flags3;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300486#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;
Yuval Mintzfc48b7a2016-02-15 13:22:35 -0500512};
513
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200514/* The core storm context for the Mstorm */
515struct mstorm_core_conn_st_ctx {
516 __le32 reserved[24];
517};
518
519/* The core storm context for the Ustorm */
520struct ustorm_core_conn_st_ctx {
521 __le32 reserved[4];
522};
523
524/* core connection context */
525struct core_conn_context {
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300526 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
539struct 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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200544};
545
Manish Chopra9df2ed02015-10-26 11:02:33 +0200546struct eth_mstorm_per_queue_stat {
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300547 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;
Manish Chopra9df2ed02015-10-26 11:02:33 +0200555};
556
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300557/* Ethernet TX Per PF */
558struct 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 */
Manish Chopra9df2ed02015-10-26 11:02:33 +0200577struct eth_pstorm_per_queue_stat {
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300578 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 */
588struct eth_rx_rate_limit {
589 __le16 mult;
590 __le16 cnst;
591 u8 add_sub_cnst;
592 u8 reserved0;
593 __le16 reserved1;
594};
595
596struct 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;
Manish Chopra9df2ed02015-10-26 11:02:33 +0200609};
610
611struct eth_ustorm_per_queue_stat {
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300612 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;
Manish Chopra9df2ed02015-10-26 11:02:33 +0200618};
619
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200620/* Event Ring Next Page Address */
621struct event_ring_next_addr {
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300622 struct regpair addr;
623 __le32 reserved[2];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200624};
625
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300626/* Event Ring Element */
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200627union event_ring_element {
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300628 struct event_ring_entry entry;
629 struct event_ring_next_addr next_addr;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200630};
631
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300632/* Major and Minor hsi Versions */
633struct hsi_fp_ver_struct {
634 u8 minor_ver_arr[2];
635 u8 major_ver_arr[2];
636};
637
638/* Mstorm non-triggering VF zone */
Yuval Mintz1408cc1f2016-05-11 16:36:14 +0300639struct mstorm_non_trigger_vf_zone {
640 struct eth_mstorm_per_queue_stat eth_queue_stat;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300641 struct eth_rx_prod_data eth_rx_queue_producers[ETH_MAX_NUM_RX_QUEUES_PER_VF];
Yuval Mintz1408cc1f2016-05-11 16:36:14 +0300642};
643
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300644/* Mstorm VF zone */
Yuval Mintz1408cc1f2016-05-11 16:36:14 +0300645struct mstorm_vf_zone {
646 struct mstorm_non_trigger_vf_zone non_trigger;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300647
Yuval Mintz1408cc1f2016-05-11 16:36:14 +0300648};
649
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300650/* personality per PF */
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200651enum personality_type {
Yuval Mintzfc48b7a2016-02-15 13:22:35 -0500652 BAD_PERSONALITY_TYP,
Yuval Mintzc5ac9312016-06-03 14:35:34 +0300653 PERSONALITY_ISCSI,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200654 PERSONALITY_RESERVED2,
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300655 PERSONALITY_RDMA_AND_ETH,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200656 PERSONALITY_RESERVED3,
Yuval Mintzfc48b7a2016-02-15 13:22:35 -0500657 PERSONALITY_CORE,
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300658 PERSONALITY_ETH,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200659 PERSONALITY_RESERVED4,
660 MAX_PERSONALITY_TYPE
661};
662
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300663/* tunnel configuration */
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200664struct pf_start_tunnel_config {
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300665 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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200679};
680
681/* Ramrod data for PF start ramrod */
682struct pf_start_ramrod_data {
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300683 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200704};
705
Sudarsana Reddy Kalluru39651ab2016-05-17 06:44:26 -0400706struct protocol_dcb_data {
707 u8 dcb_enable_flag;
708 u8 dcb_priority;
709 u8 dcb_tc;
710 u8 reserved;
711};
712
Manish Chopra464f6642016-04-14 01:38:29 -0400713struct pf_update_tunnel_config {
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300714 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];
Manish Chopra464f6642016-04-14 01:38:29 -0400731};
732
733struct pf_update_ramrod_data {
Sudarsana Reddy Kalluru39651ab2016-05-17 06:44:26 -0400734 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;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300739 u8 update_iwarp_dcb_data_flag;
Sudarsana Reddy Kalluru39651ab2016-05-17 06:44:26 -0400740 u8 update_mf_vlan_flag;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300741 u8 reserved;
Sudarsana Reddy Kalluru39651ab2016-05-17 06:44:26 -0400742 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;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300746 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 */
753enum 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 */
763enum 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 */
770struct 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 */
776struct pstorm_vf_zone {
777 struct pstorm_non_trigger_vf_zone non_trigger;
778 struct regpair reserved[7];
779};
780
781/* Ramrod Header of SPQE */
782struct ramrod_header {
783 __le32 cid;
784 u8 cmd_id;
785 u8 protocol_id;
786 __le16 echo;
787};
788
789/* Slowpath Element (SPQE) */
790struct slow_path_element {
791 struct ramrod_header hdr;
792 struct regpair data_ptr;
793};
794
795/* Tstorm non-triggering VF zone */
796struct tstorm_non_trigger_vf_zone {
797 struct regpair reserved[2];
798};
799
800struct 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 */
814struct tstorm_vf_zone {
815 struct tstorm_non_trigger_vf_zone non_trigger;
Manish Chopra464f6642016-04-14 01:38:29 -0400816};
817
818/* Tunnel classification scheme */
819enum 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,
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300824 TUNNEL_CLSS_MAC_VLAN_DUAL_STAGE,
Manish Chopra464f6642016-04-14 01:38:29 -0400825 MAX_TUNNEL_CLSS
826};
827
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300828/* Ustorm non-triggering VF zone */
Yuval Mintz1408cc1f2016-05-11 16:36:14 +0300829struct ustorm_non_trigger_vf_zone {
830 struct eth_ustorm_per_queue_stat eth_queue_stat;
831 struct regpair vf_pf_msg_addr;
832};
833
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300834/* Ustorm triggering VF zone */
Yuval Mintz1408cc1f2016-05-11 16:36:14 +0300835struct ustorm_trigger_vf_zone {
836 u8 vf_pf_msg_valid;
837 u8 reserved[7];
838};
839
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300840/* Ustorm VF zone */
Yuval Mintz1408cc1f2016-05-11 16:36:14 +0300841struct ustorm_vf_zone {
842 struct ustorm_non_trigger_vf_zone non_trigger;
843 struct ustorm_trigger_vf_zone trigger;
844};
845
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300846/* VF-PF channel data */
847struct 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 */
Yuval Mintz1408cc1f2016-05-11 16:36:14 +0300855struct vf_start_ramrod_data {
856 u8 vf_id;
857 u8 enable_flr_ack;
858 __le16 opaque_fid;
859 u8 personality;
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300860 u8 reserved[7];
861 struct hsi_fp_ver_struct hsi_fp_ver;
862
Yuval Mintz1408cc1f2016-05-11 16:36:14 +0300863};
864
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300865/* Ramrod data for VF start ramrod */
Yuval Mintz0b55e272016-05-11 16:36:15 +0300866struct vf_stop_ramrod_data {
867 u8 vf_id;
868 u8 reserved0;
869 __le16 reserved1;
870 __le32 reserved2;
871};
872
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300873/* Attentions status block */
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200874struct atten_status_block {
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300875 __le32 atten_bits;
876 __le32 atten_ack;
877 __le16 reserved0;
878 __le16 sb_index;
879 __le32 reserved1;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +0200880};
881
Yuval Mintz351a4ded2016-06-02 10:23:29 +0300882enum 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 */
889struct 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
952enum 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
958enum 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
964enum 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
970enum 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
976enum 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
984enum 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
991enum 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 */
998struct 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 */
1012union igu_command {
1013 struct igu_prod_cons_update prod_cons_update;
1014 struct igu_cleanup cleanup;
1015};
1016
1017/* IGU firmware driver command */
1018struct 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 */
1030struct 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 */
1047struct 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
1061struct 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 */
1099struct 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
1117enum 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 */
1126struct 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 */
1147struct 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 */
1172struct 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 */
1191struct 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) */
1202struct 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
1212struct 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001260enum block_addr {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001261 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,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001341 MAX_BLOCK_ADDR
1342};
1343
1344enum 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,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001367 BLOCK_DMAE,
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001368 BLOCK_PTU,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001369 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,
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001422 BLOCK_LED,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001423 BLOCK_MISC_AEU,
1424 BLOCK_BAR0_MAP,
1425 MAX_BLOCK_ID
1426};
1427
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001428/* binary debug buffer types */
1429enum 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001443};
1444
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001445/* Chip IDs */
1446enum chip_ids {
1447 CHIP_RESERVED,
1448 CHIP_BB_B0,
1449 CHIP_RESERVED2,
1450 MAX_CHIP_IDS
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001451};
1452
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001453/* Attention bit mapping */
1454struct 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001460};
1461
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001462/* Attention block per-type data */
1463struct dbg_attn_block_type_data {
1464 __le16 names_offset;
1465 __le16 reserved1;
1466 u8 num_regs;
1467 u8 reserved2;
1468 __le16 regs_offset;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001469};
1470
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001471/* Block attentions */
1472struct dbg_attn_block {
1473 struct dbg_attn_block_type_data per_type_data[2];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001474};
1475
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001476/* Attention register result */
1477struct 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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001487};
1488
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001489/* Attention block result */
1490struct 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];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001499};
1500
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001501/* mode header */
1502struct 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 */
1511struct 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 */
1524enum dbg_attn_type {
1525 ATTN_TYPE_INTERRUPT,
1526 ATTN_TYPE_PARITY,
1527 MAX_DBG_ATTN_TYPE
1528};
1529
1530/* Debug status codes */
1531enum 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 */
1593struct 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 */
1602struct 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 */
1610struct 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001630enum init_modes {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001631 MODE_RESERVED,
Yuval Mintz12e09c62016-03-02 20:26:01 +02001632 MODE_BB_B0,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001633 MODE_RESERVED2,
1634 MODE_ASIC,
1635 MODE_RESERVED3,
1636 MODE_RESERVED4,
1637 MODE_RESERVED5,
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05001638 MODE_RESERVED6,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001639 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,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001645 MODE_100G,
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001646 MODE_40G,
1647 MODE_RESERVED7,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001648 MAX_INIT_MODES
1649};
1650
1651enum init_phases {
1652 PHASE_ENGINE,
1653 PHASE_PORT,
1654 PHASE_PF,
Yuval Mintz1408cc1f2016-05-11 16:36:14 +03001655 PHASE_VF,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001656 PHASE_QM_PF,
1657 MAX_INIT_PHASES
1658};
1659
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001660enum 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001667};
1668
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001669/* Binary buffer header */
1670struct bin_buffer_hdr {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001671 __le32 offset;
1672 __le32 length;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001673};
1674
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001675/* binary init buffer types */
1676enum 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001683};
1684
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001685/* init array header: raw */
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001686struct init_array_raw_hdr {
1687 __le32 data;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001688#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001692};
1693
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001694/* init array header: standard */
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001695struct init_array_standard_hdr {
1696 __le32 data;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001697#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001701};
1702
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001703/* init array header: zipped */
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001704struct init_array_zipped_hdr {
1705 __le32 data;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001706#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001710};
1711
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001712/* init array header: pattern */
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001713struct init_array_pattern_hdr {
1714 __le32 data;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001715#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001721};
1722
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001723/* init array header union */
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001724union init_array_hdr {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001725 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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001729};
1730
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001731/* init array types */
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001732enum init_array_types {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001733 INIT_ARR_STANDARD,
1734 INIT_ARR_ZIPPED,
1735 INIT_ARR_PATTERN,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001736 MAX_INIT_ARRAY_TYPES
1737};
1738
1739/* init operation: callback */
1740struct init_callback_op {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001741 __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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001748};
1749
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001750/* init operation: delay */
1751struct init_delay_op {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001752 __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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001758};
1759
1760/* init operation: if_mode */
1761struct init_if_mode_op {
1762 __le32 op_data;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001763#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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001771};
1772
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001773/* init operation: if_phase */
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001774struct init_if_phase_op {
1775 __le32 op_data;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001776#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001784 __le32 phase_data;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001785#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001791};
1792
1793/* init mode operators */
1794enum init_mode_ops {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001795 INIT_MODE_OP_NOT,
1796 INIT_MODE_OP_OR,
1797 INIT_MODE_OP_AND,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001798 MAX_INIT_MODE_OPS
1799};
1800
1801/* init operation: raw */
1802struct init_raw_op {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001803 __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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001809};
1810
1811/* init array params */
1812struct init_op_array_params {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001813 __le16 size;
1814 __le16 offset;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001815};
1816
1817/* Write init operation arguments */
1818union init_write_args {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001819 __le32 inline_val;
1820 __le32 zeros_count;
1821 __le32 array_offset;
1822 struct init_op_array_params runtime;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001823};
1824
1825/* init operation: write */
1826struct init_write_op {
1827 __le32 data;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001828#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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001839};
1840
1841/* init operation: read */
1842struct init_read_op {
1843 __le32 op_data;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001844#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001852 __le32 expected_val;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001853
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001854};
1855
1856/* Init operations union */
1857union init_op {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001858 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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001865};
1866
1867/* Init command operation types */
1868enum init_op_types {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001869 INIT_OP_READ,
1870 INIT_OP_WRITE,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001871 INIT_OP_IF_MODE,
1872 INIT_OP_IF_PHASE,
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001873 INIT_OP_DELAY,
1874 INIT_OP_CALLBACK,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001875 MAX_INIT_OP_TYPES
1876};
1877
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001878/* init polling types */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05001879enum init_poll_types {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001880 INIT_POLL_NONE,
1881 INIT_POLL_EQ,
1882 INIT_POLL_OR,
1883 INIT_POLL_AND,
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05001884 MAX_INIT_POLL_TYPES
1885};
1886
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001887/* init source types */
1888enum init_source_types {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001889 INIT_SRC_INLINE,
1890 INIT_SRC_ZEROS,
1891 INIT_SRC_ARRAY,
1892 INIT_SRC_RUNTIME,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001893 MAX_INIT_SOURCE_TYPES
1894};
1895
1896/* Internal RAM Offsets macro data */
1897struct iro {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001898 __le32 base;
1899 __le16 m1;
1900 __le16 m2;
1901 __le16 m3;
1902 __le16 size;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001903};
1904
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001905/**
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 */
1915enum dbg_status qed_dbg_print_attn(struct qed_hwfn *p_hwfn,
1916 struct dbg_attn_block_result *results);
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001917
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001918#define MAX_NAME_LEN 16
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001919
1920/* Win 2 */
1921#define GTT_BAR0_MAP_REG_IGU_CMD \
1922 0x00f000UL
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001923
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001924/* Win 3 */
1925#define GTT_BAR0_MAP_REG_TSDM_RAM \
1926 0x010000UL
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001927
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001928/* Win 4 */
1929#define GTT_BAR0_MAP_REG_MSDM_RAM \
1930 0x011000UL
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001931
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001932/* Win 5 */
1933#define GTT_BAR0_MAP_REG_MSDM_RAM_1024 \
1934 0x012000UL
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001935
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001936/* Win 6 */
1937#define GTT_BAR0_MAP_REG_USDM_RAM \
1938 0x013000UL
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001939
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001940/* Win 7 */
1941#define GTT_BAR0_MAP_REG_USDM_RAM_1024 \
1942 0x014000UL
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001943
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001944/* Win 8 */
1945#define GTT_BAR0_MAP_REG_USDM_RAM_2048 \
1946 0x015000UL
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001947
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001948/* Win 9 */
1949#define GTT_BAR0_MAP_REG_XSDM_RAM \
1950 0x016000UL
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001951
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001952/* Win 10 */
1953#define GTT_BAR0_MAP_REG_YSDM_RAM \
1954 0x017000UL
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001955
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001956/* 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 *
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001966 * @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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001972 *
1973 * @return The required host memory size in 4KB units.
1974 */
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001975u32 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);
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001979
1980struct qed_qm_common_rt_init_params {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001981 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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001988};
1989
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001990int qed_qm_common_rt_init(struct qed_hwfn *p_hwfn,
1991 struct qed_qm_common_rt_init_params *p_params);
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02001992
1993struct qed_qm_pf_rt_init_params {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03001994 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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002010};
2011
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002012int 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);
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002015
2016/**
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002017 * @brief qed_init_pf_wfq - Initializes the WFQ weight of the specified PF
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002018 *
2019 * @param p_hwfn
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002020 * @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.
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002023 *
2024 * @return 0 on success, -1 on error.
2025 */
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002026int qed_init_pf_wfq(struct qed_hwfn *p_hwfn,
2027 struct qed_ptt *p_ptt, u8 pf_id, u16 pf_wfq);
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002028
2029/**
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002030 * @brief qed_init_pf_rl - Initializes the rate limit of the specified PF
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002031 *
2032 * @param p_hwfn
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002033 * @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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002036 *
2037 * @return 0 on success, -1 on error.
2038 */
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002039int qed_init_pf_rl(struct qed_hwfn *p_hwfn,
2040 struct qed_ptt *p_ptt, u8 pf_id, u32 pf_rl);
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002041
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002042/**
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 */
2054int 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 */
2068int qed_init_vport_rl(struct qed_hwfn *p_hwfn,
2069 struct qed_ptt *p_ptt, u8 vport_id, u32 vport_rl);
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002070/**
2071 * @brief qed_send_qm_stop_cmd Sends a stop command to the QM
2072 *
2073 * @param p_hwfn
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002074 * @param p_ptt
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002075 * @param is_release_cmd - true for release, false for stop.
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002076 * @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.
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002079 *
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002080 * @return bool, true if successful, false if timeout occured while waiting for QM command done.
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002081 */
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002082bool 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);
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002086
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002087/**
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 */
Manish Chopra464f6642016-04-14 01:38:29 -04002093void qed_set_vxlan_dest_port(struct qed_hwfn *p_hwfn,
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002094 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 */
Manish Chopra464f6642016-04-14 01:38:29 -04002102void qed_set_vxlan_enable(struct qed_hwfn *p_hwfn,
2103 struct qed_ptt *p_ptt, bool vxlan_enable);
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002104
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 */
Manish Chopra464f6642016-04-14 01:38:29 -04002112void qed_set_gre_enable(struct qed_hwfn *p_hwfn,
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002113 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 */
Manish Chopra464f6642016-04-14 01:38:29 -04002122void qed_set_geneve_dest_port(struct qed_hwfn *p_hwfn,
2123 struct qed_ptt *p_ptt, u16 dest_port);
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002124
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 */
Manish Chopra464f6642016-04-14 01:38:29 -04002132void qed_set_geneve_enable(struct qed_hwfn *p_hwfn,
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002133 struct qed_ptt *p_ptt,
2134 bool eth_geneve_enable, bool ip_geneve_enable);
Manish Chopra464f6642016-04-14 01:38:29 -04002135
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002136#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)
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002190
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002191static 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},
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002238};
2239
2240/* Runtime array offsets */
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002241#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002676
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002677#define RUNTIME_ARRAY_SIZE 33925
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002678
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05002679/* The eth storm context for the Tstorm */
2680struct tstorm_eth_conn_st_ctx {
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002681 __le32 reserved[4];
2682};
2683
2684/* The eth storm context for the Pstorm */
2685struct pstorm_eth_conn_st_ctx {
2686 __le32 reserved[8];
2687};
2688
2689/* The eth storm context for the Xstorm */
2690struct xstorm_eth_conn_st_ctx {
2691 __le32 reserved[60];
2692};
2693
2694struct xstorm_eth_conn_ag_ctx {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002695 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002731 u8 flags2;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002732#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002740 u8 flags3;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002741#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002758 u8 flags5;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002759#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002767 u8 flags6;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002768#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002776 u8 flags7;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002777#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002787 u8 flags8;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002788#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002804 u8 flags9;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002805#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002821 u8 flags10;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002822#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002833#define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_SHIFT 5
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002834#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002838 u8 flags11;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002839#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002855 u8 flags12;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002856#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002872 u8 flags13;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002873#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002889 u8 flags14;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002890#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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002955};
2956
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05002957/* The eth storm context for the Ystorm */
2958struct ystorm_eth_conn_st_ctx {
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002959 __le32 reserved[8];
2960};
2961
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05002962struct ystorm_eth_conn_ag_ctx {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002963 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02002976 u8 flags1;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03002977#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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02003004};
3005
3006struct tstorm_eth_conn_ag_ctx {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003007 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02003024 u8 flags1;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003025#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02003033 u8 flags2;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003034#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02003042 u8 flags3;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003043#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02003055 u8 flags4;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003056#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02003072 u8 flags5;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003073#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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02003108};
3109
3110struct ustorm_eth_conn_ag_ctx {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003111 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02003124 u8 flags1;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003125#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02003133 u8 flags2;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003134#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02003150 u8 flags3;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003151#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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02003177};
3178
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003179/* The eth storm context for the Ustorm */
3180struct ustorm_eth_conn_st_ctx {
3181 __le32 reserved[40];
3182};
3183
3184/* The eth storm context for the Mstorm */
3185struct mstorm_eth_conn_st_ctx {
3186 __le32 reserved[8];
3187};
3188
3189/* eth connection context */
3190struct eth_conn_context {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003191 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;
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003202};
3203
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003204/* opcodes for the event ring */
3205enum 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 */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003227enum eth_filter_action {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003228 ETH_FILTER_ACTION_UNUSED,
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003229 ETH_FILTER_ACTION_REMOVE,
3230 ETH_FILTER_ACTION_ADD,
3231 ETH_FILTER_ACTION_REMOVE_ALL,
3232 MAX_ETH_FILTER_ACTION
3233};
3234
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003235/* Command for adding/removing a classification rule $$KEEP_ENDIANNESS$$ */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003236struct eth_filter_cmd {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003237 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;
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003246};
3247
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003248/* $$KEEP_ENDIANNESS$$ */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003249struct eth_filter_cmd_header {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003250 u8 rx;
3251 u8 tx;
3252 u8 cmd_cnt;
3253 u8 assert_on_error;
3254 u8 reserved1[4];
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003255};
3256
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003257/* Ethernet filter types: mac/vlan/pair */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003258enum eth_filter_type {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003259 ETH_FILTER_TYPE_UNUSED,
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003260 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
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003272/* Ethernet Ramrod Command IDs */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003273enum eth_ramrod_cmd_id {
3274 ETH_RAMROD_UNUSED,
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003275 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,
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003291 MAX_ETH_RAMROD_CMD_ID
3292};
3293
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003294/* return code from eth sp ramrods */
3295struct 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 */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003306enum eth_tx_err {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003307 ETH_TX_ERR_DROP,
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003308 ETH_TX_ERR_ASSERT_MALICIOUS,
3309 MAX_ETH_TX_ERR
3310};
3311
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003312/* Array of the different error type behaviors */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003313struct eth_tx_err_vals {
3314 __le16 values;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003315#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
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003331};
3332
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003333/* vport rss configuration data */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003334struct eth_vport_rss_config {
3335 __le16 capabilities;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003336#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];
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003363};
3364
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003365/* eth vport RSS mode */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003366enum eth_vport_rss_mode {
3367 ETH_VPORT_RSS_MODE_DISABLED,
3368 ETH_VPORT_RSS_MODE_REGULAR,
3369 MAX_ETH_VPORT_RSS_MODE
3370};
3371
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003372/* Command for setting classification flags for a vport $$KEEP_ENDIANNESS$$ */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003373struct eth_vport_rx_mode {
3374 __le16 state;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003375#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
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003389 __le16 reserved2[3];
3390};
3391
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003392/* Command for setting tpa parameters */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003393struct eth_vport_tpa_param {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003394 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;
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003410};
3411
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003412/* Command for setting classification flags for a vport $$KEEP_ENDIANNESS$$ */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003413struct eth_vport_tx_mode {
3414 __le16 state;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003415#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
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003427 __le16 reserved2[3];
3428};
3429
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003430/* Ramrod data for rx queue start ramrod */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003431struct rx_queue_start_ramrod_data {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003432 __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;
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003460};
3461
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003462/* Ramrod data for rx queue start ramrod */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003463struct rx_queue_stop_ramrod_data {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003464 __le16 rx_queue_id;
3465 u8 complete_cqe_flg;
3466 u8 complete_event_flg;
3467 u8 vport_id;
3468 u8 reserved[3];
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003469};
3470
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003471/* Ramrod data for rx queue update ramrod */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003472struct rx_queue_update_ramrod_data {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003473 __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;
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003483 struct regpair reserved6;
3484};
3485
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003486/* Ramrod data for rx Add UDP Filter */
3487struct 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;
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003498};
3499
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003500/* Ramrod data for rx queue start ramrod */
3501struct 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 */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003538struct tx_queue_stop_ramrod_data {
3539 __le16 reserved[4];
3540};
3541
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003542/* Ramrod data for vport update ramrod */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003543struct vport_filter_update_ramrod_data {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003544 struct eth_filter_cmd_header filter_cmd_hdr;
3545 struct eth_filter_cmd filter_cmds[ETH_FILTER_RULES_COUNT];
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003546};
3547
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003548/* Ramrod data for vport start ramrod */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003549struct vport_start_ramrod_data {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003550 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];
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003573};
3574
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003575/* Ramrod data for vport stop ramrod */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003576struct vport_stop_ramrod_data {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003577 u8 vport_id;
3578 u8 reserved[7];
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003579};
3580
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003581/* Ramrod data for vport update ramrod */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003582struct vport_update_ramrod_data_cmn {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003583 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];
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003622};
3623
3624struct vport_update_ramrod_mcast {
3625 __le32 bins[ETH_MULTICAST_MAC_BINS_IN_REGS];
3626};
3627
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003628/* Ramrod data for vport update ramrod */
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05003629struct vport_update_ramrod_data {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03003630 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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02003637};
3638
Yuval Mintz7a9b6b82016-06-03 14:35:33 +03003639struct mstorm_rdma_task_st_ctx {
3640 struct regpair temp[4];
3641};
3642
3643struct 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
3651struct 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
3661struct 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
3675struct rdma_deregister_tid_ramrod_data {
3676 __le32 itid;
3677 __le32 reserved;
3678};
3679
3680struct rdma_destroy_cq_output_params {
3681 __le16 cnq_num;
3682 __le16 reserved0;
3683 __le32 reserved1;
3684};
3685
3686struct rdma_destroy_cq_ramrod_data {
3687 struct regpair output_params_addr;
3688};
3689
3690enum 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
3705enum 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
3714struct 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
3726struct 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
3731enum 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
3746struct 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
3797struct rdma_resize_cq_output_params {
3798 __le32 old_cq_cons;
3799 __le32 old_cq_prod;
3800};
3801
3802struct 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
3817struct rdma_srq_context {
3818 struct regpair temp[8];
3819};
3820
3821struct 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
3832struct rdma_srq_destroy_ramrod_data {
3833 struct rdma_srq_id srq_id;
3834 __le32 reserved;
3835};
3836
3837struct rdma_srq_modify_ramrod_data {
3838 struct rdma_srq_id srq_id;
3839 __le32 wqe_limit;
3840};
3841
3842struct ystorm_rdma_task_st_ctx {
3843 struct regpair temp[4];
3844};
3845
3846struct 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
3902struct 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
3958struct ustorm_rdma_task_st_ctx {
3959 struct regpair temp[2];
3960};
3961
3962struct 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
4020struct 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
4032enum 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
4040struct 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
4077struct 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
4181struct 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
4260struct 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
4329struct 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
4556struct 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
4785struct 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
4829struct mstorm_roce_conn_st_ctx {
4830 struct regpair temp[6];
4831};
4832
4833struct pstorm_roce_conn_st_ctx {
4834 struct regpair temp[16];
4835};
4836
4837struct ystorm_roce_conn_st_ctx {
4838 struct regpair temp[2];
4839};
4840
4841struct xstorm_roce_conn_st_ctx {
4842 struct regpair temp[22];
4843};
4844
4845struct tstorm_roce_conn_st_ctx {
4846 struct regpair temp[30];
4847};
4848
4849struct ustorm_roce_conn_st_ctx {
4850 struct regpair temp[12];
4851};
4852
4853struct 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
4869struct 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
4915struct 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
4965struct roce_destroy_qp_req_output_params {
4966 __le32 num_bound_mw;
4967 __le32 reserved;
4968};
4969
4970struct roce_destroy_qp_req_ramrod_data {
4971 struct regpair output_params_addr;
4972};
4973
4974struct roce_destroy_qp_resp_output_params {
4975 __le32 num_invalidated_mw;
4976 __le32 reserved;
4977};
4978
4979struct roce_destroy_qp_resp_ramrod_data {
4980 struct regpair output_params_addr;
4981};
4982
4983enum 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
4991struct 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
5035struct 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
5075struct 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
5086struct roce_query_qp_req_ramrod_data {
5087 struct regpair output_params_addr;
5088};
5089
5090struct 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
5099struct roce_query_qp_resp_ramrod_data {
5100 struct regpair output_params_addr;
5101};
5102
5103enum 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
5111struct 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
5148struct 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
5185enum 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
5192struct 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
5296struct 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
5400struct 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
5469struct 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
5538struct 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
5767struct 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
5998struct 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
6042struct 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
6086struct ystorm_iscsi_conn_st_ctx {
6087 __le32 reserved[4];
6088};
6089
6090struct pstorm_iscsi_tcp_conn_st_ctx {
6091 __le32 tcp[32];
6092 __le32 iscsi[4];
6093};
6094
6095struct xstorm_iscsi_tcp_conn_st_ctx {
6096 __le32 reserved_iscsi[40];
6097 __le32 reserved_tcp[4];
6098};
6099
6100struct 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
6357struct 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
6454struct 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
6523struct tstorm_iscsi_conn_st_ctx {
6524 __le32 reserved[40];
6525};
6526
6527struct 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
6564struct mstorm_iscsi_tcp_conn_st_ctx {
6565 __le32 reserved_tcp[20];
6566 __le32 reserved_iscsi[8];
6567};
6568
6569struct ustorm_iscsi_conn_st_ctx {
6570 __le32 reserved[52];
6571};
6572
6573struct 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
6594struct iscsi_init_ramrod_params {
6595 struct iscsi_spe_func_init iscsi_init_spe;
6596 struct tcp_init_params tcp_init;
6597};
6598
6599struct 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};
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006642#define VF_MAX_STATIC 192
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006643
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006644#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006648
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006649/* Offset from the beginning of the MCP scratchpad */
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006650#define OFFSIZE_OFFSET_SHIFT 0
6651#define OFFSIZE_OFFSET_MASK 0x0000ffff
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006652/* Size of specific element (not the whole array if any) */
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006653#define OFFSIZE_SIZE_SHIFT 16
6654#define OFFSIZE_SIZE_MASK 0xffff0000
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006655
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006656#define SECTION_OFFSET(_offsize) ((((_offsize & \
6657 OFFSIZE_OFFSET_MASK) >> \
6658 OFFSIZE_OFFSET_SHIFT) << 2))
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006659
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006660#define QED_SECTION_SIZE(_offsize) (((_offsize & \
6661 OFFSIZE_SIZE_MASK) >> \
6662 OFFSIZE_SIZE_SHIFT) << 2)
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006663
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006664#define SECTION_ADDR(_offsize, idx) (MCP_REG_SCRATCH + \
6665 SECTION_OFFSET(_offsize) + \
6666 (QED_SECTION_SIZE(_offsize) * idx))
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006667
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006668#define SECTION_OFFSIZE_ADDR(_pub_base, _section) \
6669 (_pub_base + offsetof(struct mcp_public_data, sections[_section]))
6670
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006671/* PHY configuration */
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006672struct eth_phy_cfg {
6673 u32 speed;
6674#define ETH_SPEED_AUTONEG 0
6675#define ETH_SPEED_SMARTLINQ 0x8
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006676
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006677 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006682
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006683 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)
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006690
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006691 u32 feature_config_flags;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006692#define ETH_EEE_MODE_ADV_LPI (1 << 0)
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006693};
6694
6695struct port_mf_cfg {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006696 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006700
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006701 u32 reserved[1];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006702};
6703
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006704struct 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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006750};
6751
6752struct brb_stats {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006753 u64 brb_truncate[8];
6754 u64 brb_discard[8];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006755};
6756
6757struct port_stats {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006758 struct brb_stats brb;
6759 struct eth_stats eth;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006760};
6761
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006762struct couple_mode_teaming {
6763 u8 port_cmt[MCP_GLOB_PORT_MAX];
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006764#define PORT_CMT_IN_TEAM (1 << 0)
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006765
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006766#define PORT_CMT_PORT_ROLE (1 << 1)
6767#define PORT_CMT_PORT_INACTIVE (0 << 1)
6768#define PORT_CMT_PORT_ACTIVE (1 << 1)
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006769
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006770#define PORT_CMT_TEAM_MASK (1 << 2)
6771#define PORT_CMT_TEAM0 (0 << 2)
6772#define PORT_CMT_TEAM1 (1 << 2)
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006773};
6774
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006775#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006779
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006780enum _lldp_agent {
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006781 LLDP_NEAREST_BRIDGE = 0,
6782 LLDP_NEAREST_NON_TPMR_BRIDGE,
6783 LLDP_NEAREST_CUSTOMER_BRIDGE,
6784 LLDP_MAX_LLDP_AGENTS
6785};
6786
6787struct lldp_config_params_s {
6788 u32 config;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006789#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];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006801};
6802
6803struct lldp_status_params_s {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006804 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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006809};
6810
6811struct dcbx_ets_feature {
6812 u32 flags;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006813#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006835};
6836
6837struct dcbx_app_priority_entry {
6838 u32 entry;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006839#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
Sudarsana Reddy Kallurufb9ea8a2016-08-08 21:57:41 -04006853#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
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006861#define DCBX_APP_PROTOCOL_ID_MASK 0xffff0000
6862#define DCBX_APP_PROTOCOL_ID_SHIFT 16
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006863};
6864
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006865struct dcbx_app_priority_feature {
6866 u32 flags;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006867#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006877 struct dcbx_app_priority_entry app_pri_tbl[DCBX_MAX_APP_PROTOCOL];
6878};
6879
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006880struct dcbx_features {
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006881 struct dcbx_ets_feature ets;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006882 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006893
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006894#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006906
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006907 struct dcbx_app_priority_feature app;
6908};
6909
6910struct dcbx_local_params {
6911 u32 config;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006912#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006918
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006919 u32 flags;
6920 struct dcbx_features features;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006921};
6922
6923struct dcbx_mib {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006924 u32 prefix_seq_num;
6925 u32 flags;
6926 struct dcbx_features features;
6927 u32 suffix_seq_num;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006928};
6929
6930struct lldp_system_tlvs_buffer_s {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006931 u16 valid;
6932 u16 length;
6933 u32 data[MAX_SYSTEM_LLDP_TLV_DATA];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006934};
6935
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006936struct 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006944struct public_global {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006945 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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006955};
6956
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006957struct fw_flr_mb {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006958 u32 aggint;
6959 u32 opgen_addr;
6960 u32 accum_ack;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006961};
6962
6963struct public_path {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006964 struct fw_flr_mb flr_mb;
6965 u32 mcp_vf_disabled[VF_MAX_STATIC / 32];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006966
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006967 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006972#define GLOBAL_AEU_BIT(aeu_reg_id, aeu_bit) (aeu_reg_id * 32 + aeu_bit)
6973};
6974
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006975struct public_port {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006976 u32 validity_map;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006977
6978 u32 link_status;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006979#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)
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006989
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006990#define LINK_STATUS_AUTO_NEGOTIATE_ENABLED 0x00000020
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006991
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006992#define LINK_STATUS_AUTO_NEGOTIATE_COMPLETE 0x00000040
6993#define LINK_STATUS_PARALLEL_DETECTION_USED 0x00000080
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02006994
Yuval Mintz351a4ded2016-06-02 10:23:29 +03006995#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007004
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007005#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)
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007010
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007011#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007018
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007019 u32 link_status1;
7020 u32 ext_phy_fw_version;
7021 u32 drv_phy_cfg_addr;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007022
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007023 u32 port_stx;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007024
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007025 u32 stat_nig_timer;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007026
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007027 struct port_mf_cfg port_mf_config;
7028 struct port_stats stats;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007029
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007030 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007040
7041 u32 lfa_status;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007042 u32 link_change_count;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007043
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007044 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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007047
7048 /* DCBX related MIB */
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007049 struct dcbx_local_params local_admin_dcbx_mib;
7050 struct dcbx_mib remote_dcbx_mib;
7051 struct dcbx_mib operational_dcbx_mib;
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05007052
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007053 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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007066};
7067
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007068struct public_func {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007069 u32 reserved0[2];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007070
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007071 u32 mtu_size;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007072
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007073 u32 reserved[7];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007074
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007075 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007079
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007080#define FUNC_MF_CFG_PROTOCOL_MASK 0x000000f0
7081#define FUNC_MF_CFG_PROTOCOL_SHIFT 4
7082#define FUNC_MF_CFG_PROTOCOL_ETHERNET 0x00000000
Yuval Mintzc5ac9312016-06-03 14:35:34 +03007083#define FUNC_MF_CFG_PROTOCOL_ISCSI 0x00000010
7084#define FUNC_MF_CFG_PROTOCOL_ROCE 0x00000030
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007085#define FUNC_MF_CFG_PROTOCOL_MAX 0x00000030
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007086
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007087#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007093
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007094 u32 status;
7095#define FUNC_STATUS_VLINK_DOWN 0x00000001
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007096
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007097 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007103
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007104 u32 fcoe_wwn_port_name_upper;
7105 u32 fcoe_wwn_port_name_lower;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007106
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007107 u32 fcoe_wwn_node_name_upper;
7108 u32 fcoe_wwn_node_name_lower;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007109
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007110 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007114
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007115 u32 pf_allocation;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007116
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007117 u32 preserve_data;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007118
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007119 u32 driver_last_activity_ts;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007120
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007121 u32 drv_ack_vf_disabled[VF_MAX_STATIC / 32];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007122
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007123 u32 drv_id;
7124#define DRV_ID_PDA_COMP_VER_MASK 0x0000ffff
7125#define DRV_ID_PDA_COMP_VER_SHIFT 0
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007126
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007127#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)
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007130
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007131#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)
Yuval Mintzfc48b7a2016-02-15 13:22:35 -05007135
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007136#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)
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007139};
7140
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007141struct mcp_mac {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007142 u32 mac_upper;
7143 u32 mac_lower;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007144};
7145
7146struct mcp_val64 {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007147 u32 lo;
7148 u32 hi;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007149};
7150
7151struct mcp_file_att {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007152 u32 nvm_start_addr;
7153 u32 len;
7154};
7155
7156struct bist_nvm_image_att {
7157 u32 return_code;
7158 u32 image_type;
7159 u32 nvm_start_addr;
7160 u32 len;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007161};
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
7166struct drv_version_stc {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007167 u32 version;
7168 u8 name[MCP_DRV_VER_STR_SIZE - 4];
7169};
7170
7171struct lan_stats_stc {
7172 u64 ucast_rx_pkts;
7173 u64 ucast_tx_pkts;
7174 u32 fcs_err;
7175 u32 rserved;
7176};
7177
7178struct 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
7185struct temperature_status_stc {
7186 u32 num_of_sensors;
7187 u32 sensor[MAX_NUM_OF_SENSORS];
7188};
7189
7190/* crash dump configuration header */
7191struct mdump_config_stc {
7192 u32 version;
7193 u32 config;
7194 u32 epoc;
7195 u32 num_of_logs;
7196 u32 valid_logs;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007197};
7198
7199union drv_union_data {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007200 u32 ver_str[MCP_DRV_VER_STR_SIZE_DWORD];
7201 struct mcp_mac wol_mac;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007202
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007203 struct eth_phy_cfg drv_phy_cfg;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007204
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007205 struct mcp_val64 val64;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007206
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007207 u8 raw_data[MCP_DRV_NVM_BUF_LEN];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007208
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007209 struct mcp_file_att file_att;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007210
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007211 u32 ack_vf_disabled[VF_MAX_STATIC / 32];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007212
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007213 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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007221};
7222
7223struct public_drv_mb {
7224 u32 drv_mb_header;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007225#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007234
Manish Chopra4b01e512016-04-26 10:56:09 -04007235#define DRV_MSG_CODE_BW_UPDATE_ACK 0x32000000
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007236#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007241
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007242#define DRV_MSG_CODE_BIST_TEST 0x001e0000
7243#define DRV_MSG_CODE_SET_LED_MODE 0x00200000
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007244
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007245#define DRV_MSG_SEQ_NUMBER_MASK 0x0000ffff
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007246
7247 u32 drv_mb_param;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007248#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
Sudarsana Reddy Kalluru6ad8c632016-06-08 06:22:10 -04007255#define DRV_MB_PARAM_LLDP_SEND_MASK 0x00000001
7256#define DRV_MB_PARAM_LLDP_SEND_SHIFT 0
7257
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007258
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007259#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007262
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007263#define DRV_MB_PARAM_BIST_REGISTER_TEST 1
7264#define DRV_MB_PARAM_BIST_CLOCK_TEST 2
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007265
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007266#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007270
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007271#define DRV_MB_PARAM_BIST_TEST_INDEX_SHIFT 0
7272#define DRV_MB_PARAM_BIST_TEST_INDEX_MASK 0x000000FF
Sudarsana Reddy Kalluru03dc76c2016-04-28 20:20:52 -04007273
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007274 u32 fw_mb_header;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007275#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007289
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007290#define FW_MSG_SEQ_NUMBER_MASK 0x0000ffff
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007291
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007292 u32 fw_mb_param;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007293
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007294 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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007298
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007299 u32 mcp_pulse_mb;
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007300#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
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007304
7305 union drv_union_data union_data;
7306};
7307
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007308enum 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,
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007315 MFW_DRV_MSG_RESERVED4,
Zvi Nachmani334c03b2016-03-09 09:16:25 +02007316 MFW_DRV_MSG_BW_UPDATE,
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007317 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,
Zvi Nachmani334c03b2016-03-09 09:16:25 +02007323 MFW_DRV_MSG_TRANSCEIVER_STATE_CHANGE,
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007324 MFW_DRV_MSG_BW_UPDATE11,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007325 MFW_DRV_MSG_MAX
7326};
7327
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007328#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))
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007332
7333struct public_mfw_mb {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007334 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)];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007337};
7338
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007339enum public_sections {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007340 PUBLIC_DRV_MB,
7341 PUBLIC_MFW_MB,
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007342 PUBLIC_GLOBAL,
7343 PUBLIC_PATH,
7344 PUBLIC_PORT,
7345 PUBLIC_FUNC,
7346 PUBLIC_MAX_SECTIONS
7347};
7348
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007349struct mcp_public_data {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007350 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];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007358};
7359
7360struct nvm_cfg_mac_address {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007361 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;
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007365};
7366
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007367struct nvm_cfg1_glob {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007368 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
Yuval Mintzc5ac9312016-06-03 14:35:34 +03007421#define NVM_CFG1_GLOB_DEVICE_CAPABILITIES_ISCSI 0x4
7422#define NVM_CFG1_GLOB_DEVICE_CAPABILITIES_ROCE 0x8
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007423 u32 power_dissipated;
7424 u32 power_consumed;
7425 u32 efi_version;
7426 u32 multi_network_modes_capability;
7427 u32 reserved[41];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007428};
7429
7430struct nvm_cfg1_path {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007431 u32 reserved[30];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007432};
7433
7434struct nvm_cfg1_port {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007435 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];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007503};
7504
7505struct nvm_cfg1_func {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007506 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];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007516};
7517
7518struct nvm_cfg1 {
Yuval Mintz351a4ded2016-06-02 10:23:29 +03007519 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];
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007523};
Yuval Mintzfe56b9e2015-10-26 11:02:25 +02007524#endif