ecore_hsi_iscsi.h revision 337517
1/*
2 * Copyright (c) 2017-2018 Cavium, Inc.
3 * All rights reserved.
4 *
5 *  Redistribution and use in source and binary forms, with or without
6 *  modification, are permitted provided that the following conditions
7 *  are met:
8 *
9 *  1. Redistributions of source code must retain the above copyright
10 *     notice, this list of conditions and the following disclaimer.
11 *  2. Redistributions in binary form must reproduce the above copyright
12 *     notice, this list of conditions and the following disclaimer in the
13 *     documentation and/or other materials provided with the distribution.
14 *
15 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 *  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19 *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 *  POSSIBILITY OF SUCH DAMAGE.
26 *
27 * $FreeBSD: stable/11/sys/dev/qlnx/qlnxe/ecore_hsi_iscsi.h 337517 2018-08-09 01:17:35Z davidcs $
28 *
29 */
30
31#ifndef __ECORE_HSI_ISCSI__
32#define __ECORE_HSI_ISCSI__
33/****************************************/
34/* Add include to common storage target */
35/****************************************/
36#include "storage_common.h"
37
38/*************************************************************************/
39/* Add include to common iSCSI target for both eCore and protocol driver */
40/************************************************************************/
41#include "iscsi_common.h"
42
43
44/*
45 * The iscsi storm connection context of Ystorm
46 */
47struct ystorm_iscsi_conn_st_ctx
48{
49	__le32 reserved[8];
50};
51
52/*
53 * Combined iSCSI and TCP storm connection of Pstorm
54 */
55struct pstorm_iscsi_tcp_conn_st_ctx
56{
57	__le32 tcp[32];
58	__le32 iscsi[4];
59};
60
61/*
62 * The combined tcp and iscsi storm context of Xstorm
63 */
64struct xstorm_iscsi_tcp_conn_st_ctx
65{
66	__le32 reserved_tcp[4];
67	__le32 reserved_iscsi[44];
68};
69
70struct e4_xstorm_iscsi_conn_ag_ctx
71{
72	u8 cdu_validation /* cdu_validation */;
73	u8 state /* state */;
74	u8 flags0;
75#define E4_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_MASK                0x1 /* exist_in_qm0 */
76#define E4_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_SHIFT               0
77#define E4_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM1_MASK                0x1 /* exist_in_qm1 */
78#define E4_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM1_SHIFT               1
79#define E4_XSTORM_ISCSI_CONN_AG_CTX_RESERVED1_MASK                   0x1 /* exist_in_qm2 */
80#define E4_XSTORM_ISCSI_CONN_AG_CTX_RESERVED1_SHIFT                  2
81#define E4_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM3_MASK                0x1 /* exist_in_qm3 */
82#define E4_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM3_SHIFT               3
83#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT4_MASK                        0x1 /* bit4 */
84#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT4_SHIFT                       4
85#define E4_XSTORM_ISCSI_CONN_AG_CTX_RESERVED2_MASK                   0x1 /* cf_array_active */
86#define E4_XSTORM_ISCSI_CONN_AG_CTX_RESERVED2_SHIFT                  5
87#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT6_MASK                        0x1 /* bit6 */
88#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT6_SHIFT                       6
89#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT7_MASK                        0x1 /* bit7 */
90#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT7_SHIFT                       7
91	u8 flags1;
92#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT8_MASK                        0x1 /* bit8 */
93#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT8_SHIFT                       0
94#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT9_MASK                        0x1 /* bit9 */
95#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT9_SHIFT                       1
96#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT10_MASK                       0x1 /* bit10 */
97#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT10_SHIFT                      2
98#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT11_MASK                       0x1 /* bit11 */
99#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT11_SHIFT                      3
100#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT12_MASK                       0x1 /* bit12 */
101#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT12_SHIFT                      4
102#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT13_MASK                       0x1 /* bit13 */
103#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT13_SHIFT                      5
104#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT14_MASK                       0x1 /* bit14 */
105#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT14_SHIFT                      6
106#define E4_XSTORM_ISCSI_CONN_AG_CTX_TX_TRUNCATE_MASK                 0x1 /* bit15 */
107#define E4_XSTORM_ISCSI_CONN_AG_CTX_TX_TRUNCATE_SHIFT                7
108	u8 flags2;
109#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF0_MASK                         0x3 /* timer0cf */
110#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT                        0
111#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF1_MASK                         0x3 /* timer1cf */
112#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT                        2
113#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF2_MASK                         0x3 /* timer2cf */
114#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT                        4
115#define E4_XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_MASK              0x3 /* timer_stop_all */
116#define E4_XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT             6
117	u8 flags3;
118#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF4_MASK                         0x3 /* cf4 */
119#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT                        0
120#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF5_MASK                         0x3 /* cf5 */
121#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT                        2
122#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF6_MASK                         0x3 /* cf6 */
123#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT                        4
124#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF7_MASK                         0x3 /* cf7 */
125#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF7_SHIFT                        6
126	u8 flags4;
127#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF8_MASK                         0x3 /* cf8 */
128#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF8_SHIFT                        0
129#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF9_MASK                         0x3 /* cf9 */
130#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF9_SHIFT                        2
131#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF10_MASK                        0x3 /* cf10 */
132#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF10_SHIFT                       4
133#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF11_MASK                        0x3 /* cf11 */
134#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF11_SHIFT                       6
135	u8 flags5;
136#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF12_MASK                        0x3 /* cf12 */
137#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF12_SHIFT                       0
138#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF13_MASK                        0x3 /* cf13 */
139#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF13_SHIFT                       2
140#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF14_MASK                        0x3 /* cf14 */
141#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF14_SHIFT                       4
142#define E4_XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_MASK     0x3 /* cf15 */
143#define E4_XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_SHIFT    6
144	u8 flags6;
145#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF16_MASK                        0x3 /* cf16 */
146#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF16_SHIFT                       0
147#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF17_MASK                        0x3 /* cf_array_cf */
148#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF17_SHIFT                       2
149#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF18_MASK                        0x3 /* cf18 */
150#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF18_SHIFT                       4
151#define E4_XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_MASK                    0x3 /* cf19 */
152#define E4_XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_SHIFT                   6
153	u8 flags7;
154#define E4_XSTORM_ISCSI_CONN_AG_CTX_MST_XCM_Q0_FLUSH_CF_MASK         0x3 /* cf20 */
155#define E4_XSTORM_ISCSI_CONN_AG_CTX_MST_XCM_Q0_FLUSH_CF_SHIFT        0
156#define E4_XSTORM_ISCSI_CONN_AG_CTX_UST_XCM_Q1_FLUSH_CF_MASK         0x3 /* cf21 */
157#define E4_XSTORM_ISCSI_CONN_AG_CTX_UST_XCM_Q1_FLUSH_CF_SHIFT        2
158#define E4_XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_MASK                   0x3 /* cf22 */
159#define E4_XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_SHIFT                  4
160#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK                       0x1 /* cf0en */
161#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT                      6
162#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK                       0x1 /* cf1en */
163#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT                      7
164	u8 flags8;
165#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK                       0x1 /* cf2en */
166#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT                      0
167#define E4_XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK           0x1 /* cf3en */
168#define E4_XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT          1
169#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK                       0x1 /* cf4en */
170#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT                      2
171#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK                       0x1 /* cf5en */
172#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT                      3
173#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK                       0x1 /* cf6en */
174#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT                      4
175#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF7EN_MASK                       0x1 /* cf7en */
176#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF7EN_SHIFT                      5
177#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF8EN_MASK                       0x1 /* cf8en */
178#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF8EN_SHIFT                      6
179#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF9EN_MASK                       0x1 /* cf9en */
180#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF9EN_SHIFT                      7
181	u8 flags9;
182#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF10EN_MASK                      0x1 /* cf10en */
183#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF10EN_SHIFT                     0
184#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF11EN_MASK                      0x1 /* cf11en */
185#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF11EN_SHIFT                     1
186#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF12EN_MASK                      0x1 /* cf12en */
187#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF12EN_SHIFT                     2
188#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF13EN_MASK                      0x1 /* cf13en */
189#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF13EN_SHIFT                     3
190#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF14EN_MASK                      0x1 /* cf14en */
191#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF14EN_SHIFT                     4
192#define E4_XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_EN_MASK  0x1 /* cf15en */
193#define E4_XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_EN_SHIFT 5
194#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF16EN_MASK                      0x1 /* cf16en */
195#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF16EN_SHIFT                     6
196#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF17EN_MASK                      0x1 /* cf_array_cf_en */
197#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF17EN_SHIFT                     7
198	u8 flags10;
199#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF18EN_MASK                      0x1 /* cf18en */
200#define E4_XSTORM_ISCSI_CONN_AG_CTX_CF18EN_SHIFT                     0
201#define E4_XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_EN_MASK                 0x1 /* cf19en */
202#define E4_XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_EN_SHIFT                1
203#define E4_XSTORM_ISCSI_CONN_AG_CTX_MST_XCM_Q0_FLUSH_CF_EN_MASK      0x1 /* cf20en */
204#define E4_XSTORM_ISCSI_CONN_AG_CTX_MST_XCM_Q0_FLUSH_CF_EN_SHIFT     2
205#define E4_XSTORM_ISCSI_CONN_AG_CTX_UST_XCM_Q1_FLUSH_CF_EN_MASK      0x1 /* cf21en */
206#define E4_XSTORM_ISCSI_CONN_AG_CTX_UST_XCM_Q1_FLUSH_CF_EN_SHIFT     3
207#define E4_XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_EN_MASK                0x1 /* cf22en */
208#define E4_XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_EN_SHIFT               4
209#define E4_XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_EN_MASK        0x1 /* cf23en */
210#define E4_XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_EN_SHIFT       5
211#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK                     0x1 /* rule0en */
212#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT                    6
213#define E4_XSTORM_ISCSI_CONN_AG_CTX_MORE_TO_SEND_DEC_RULE_EN_MASK    0x1 /* rule1en */
214#define E4_XSTORM_ISCSI_CONN_AG_CTX_MORE_TO_SEND_DEC_RULE_EN_SHIFT   7
215	u8 flags11;
216#define E4_XSTORM_ISCSI_CONN_AG_CTX_TX_BLOCKED_EN_MASK               0x1 /* rule2en */
217#define E4_XSTORM_ISCSI_CONN_AG_CTX_TX_BLOCKED_EN_SHIFT              0
218#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK                     0x1 /* rule3en */
219#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT                    1
220#define E4_XSTORM_ISCSI_CONN_AG_CTX_RESERVED3_MASK                   0x1 /* rule4en */
221#define E4_XSTORM_ISCSI_CONN_AG_CTX_RESERVED3_SHIFT                  2
222#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK                     0x1 /* rule5en */
223#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT                    3
224#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK                     0x1 /* rule6en */
225#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT                    4
226#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK                     0x1 /* rule7en */
227#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT                    5
228#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED1_MASK                0x1 /* rule8en */
229#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED1_SHIFT               6
230#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE9EN_MASK                     0x1 /* rule9en */
231#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE9EN_SHIFT                    7
232	u8 flags12;
233#define E4_XSTORM_ISCSI_CONN_AG_CTX_SQ_DEC_RULE_EN_MASK              0x1 /* rule10en */
234#define E4_XSTORM_ISCSI_CONN_AG_CTX_SQ_DEC_RULE_EN_SHIFT             0
235#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE11EN_MASK                    0x1 /* rule11en */
236#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE11EN_SHIFT                   1
237#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED2_MASK                0x1 /* rule12en */
238#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED2_SHIFT               2
239#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED3_MASK                0x1 /* rule13en */
240#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED3_SHIFT               3
241#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE14EN_MASK                    0x1 /* rule14en */
242#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE14EN_SHIFT                   4
243#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE15EN_MASK                    0x1 /* rule15en */
244#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE15EN_SHIFT                   5
245#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE16EN_MASK                    0x1 /* rule16en */
246#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE16EN_SHIFT                   6
247#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE17EN_MASK                    0x1 /* rule17en */
248#define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE17EN_SHIFT                   7
249	u8 flags13;
250#define E4_XSTORM_ISCSI_CONN_AG_CTX_R2TQ_DEC_RULE_EN_MASK            0x1 /* rule18en */
251#define E4_XSTORM_ISCSI_CONN_AG_CTX_R2TQ_DEC_RULE_EN_SHIFT           0
252#define E4_XSTORM_ISCSI_CONN_AG_CTX_HQ_DEC_RULE_EN_MASK              0x1 /* rule19en */
253#define E4_XSTORM_ISCSI_CONN_AG_CTX_HQ_DEC_RULE_EN_SHIFT             1
254#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED4_MASK                0x1 /* rule20en */
255#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED4_SHIFT               2
256#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED5_MASK                0x1 /* rule21en */
257#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED5_SHIFT               3
258#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED6_MASK                0x1 /* rule22en */
259#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED6_SHIFT               4
260#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED7_MASK                0x1 /* rule23en */
261#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED7_SHIFT               5
262#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED8_MASK                0x1 /* rule24en */
263#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED8_SHIFT               6
264#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED9_MASK                0x1 /* rule25en */
265#define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED9_SHIFT               7
266	u8 flags14;
267#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT16_MASK                       0x1 /* bit16 */
268#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT16_SHIFT                      0
269#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT17_MASK                       0x1 /* bit17 */
270#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT17_SHIFT                      1
271#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT18_MASK                       0x1 /* bit18 */
272#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT18_SHIFT                      2
273#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT19_MASK                       0x1 /* bit19 */
274#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT19_SHIFT                      3
275#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT20_MASK                       0x1 /* bit20 */
276#define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT20_SHIFT                      4
277#define E4_XSTORM_ISCSI_CONN_AG_CTX_DUMMY_READ_DONE_MASK             0x1 /* bit21 */
278#define E4_XSTORM_ISCSI_CONN_AG_CTX_DUMMY_READ_DONE_SHIFT            5
279#define E4_XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_MASK           0x3 /* cf23 */
280#define E4_XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_SHIFT          6
281	u8 byte2 /* byte2 */;
282	__le16 physical_q0 /* physical_q0 */;
283	__le16 physical_q1 /* physical_q1 */;
284	__le16 dummy_dorq_var /* physical_q2 */;
285	__le16 sq_cons /* word3 */;
286	__le16 sq_prod /* word4 */;
287	__le16 word5 /* word5 */;
288	__le16 slow_io_total_data_tx_update /* conn_dpi */;
289	u8 byte3 /* byte3 */;
290	u8 byte4 /* byte4 */;
291	u8 byte5 /* byte5 */;
292	u8 byte6 /* byte6 */;
293	__le32 reg0 /* reg0 */;
294	__le32 reg1 /* reg1 */;
295	__le32 reg2 /* reg2 */;
296	__le32 more_to_send_seq /* reg3 */;
297	__le32 reg4 /* reg4 */;
298	__le32 reg5 /* cf_array0 */;
299	__le32 hq_scan_next_relevant_ack /* cf_array1 */;
300	__le16 r2tq_prod /* word7 */;
301	__le16 r2tq_cons /* word8 */;
302	__le16 hq_prod /* word9 */;
303	__le16 hq_cons /* word10 */;
304	__le32 remain_seq /* reg7 */;
305	__le32 bytes_to_next_pdu /* reg8 */;
306	__le32 hq_tcp_seq /* reg9 */;
307	u8 byte7 /* byte7 */;
308	u8 byte8 /* byte8 */;
309	u8 byte9 /* byte9 */;
310	u8 byte10 /* byte10 */;
311	u8 byte11 /* byte11 */;
312	u8 byte12 /* byte12 */;
313	u8 byte13 /* byte13 */;
314	u8 byte14 /* byte14 */;
315	u8 byte15 /* byte15 */;
316	u8 e5_reserved /* e5_reserved */;
317	__le16 word11 /* word11 */;
318	__le32 reg10 /* reg10 */;
319	__le32 reg11 /* reg11 */;
320	__le32 exp_stat_sn /* reg12 */;
321	__le32 ongoing_fast_rxmit_seq /* reg13 */;
322	__le32 reg14 /* reg14 */;
323	__le32 reg15 /* reg15 */;
324	__le32 reg16 /* reg16 */;
325	__le32 reg17 /* reg17 */;
326};
327
328struct e4_tstorm_iscsi_conn_ag_ctx
329{
330	u8 reserved0 /* cdu_validation */;
331	u8 state /* state */;
332	u8 flags0;
333#define E4_TSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_MASK       0x1 /* exist_in_qm0 */
334#define E4_TSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_SHIFT      0
335#define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK               0x1 /* exist_in_qm1 */
336#define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT              1
337#define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT2_MASK               0x1 /* bit2 */
338#define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT2_SHIFT              2
339#define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT3_MASK               0x1 /* bit3 */
340#define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT3_SHIFT              3
341#define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT4_MASK               0x1 /* bit4 */
342#define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT4_SHIFT              4
343#define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT5_MASK               0x1 /* bit5 */
344#define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT5_SHIFT              5
345#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF0_MASK                0x3 /* timer0cf */
346#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT               6
347	u8 flags1;
348#define E4_TSTORM_ISCSI_CONN_AG_CTX_P2T_FLUSH_CF_MASK       0x3 /* timer1cf */
349#define E4_TSTORM_ISCSI_CONN_AG_CTX_P2T_FLUSH_CF_SHIFT      0
350#define E4_TSTORM_ISCSI_CONN_AG_CTX_M2T_FLUSH_CF_MASK       0x3 /* timer2cf */
351#define E4_TSTORM_ISCSI_CONN_AG_CTX_M2T_FLUSH_CF_SHIFT      2
352#define E4_TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_MASK     0x3 /* timer_stop_all */
353#define E4_TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT    4
354#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF4_MASK                0x3 /* cf4 */
355#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT               6
356	u8 flags2;
357#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF5_MASK                0x3 /* cf5 */
358#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT               0
359#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF6_MASK                0x3 /* cf6 */
360#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT               2
361#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF7_MASK                0x3 /* cf7 */
362#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF7_SHIFT               4
363#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF8_MASK                0x3 /* cf8 */
364#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF8_SHIFT               6
365	u8 flags3;
366#define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_MASK           0x3 /* cf9 */
367#define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_SHIFT          0
368#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF10_MASK               0x3 /* cf10 */
369#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF10_SHIFT              2
370#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK              0x1 /* cf0en */
371#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT             4
372#define E4_TSTORM_ISCSI_CONN_AG_CTX_P2T_FLUSH_CF_EN_MASK    0x1 /* cf1en */
373#define E4_TSTORM_ISCSI_CONN_AG_CTX_P2T_FLUSH_CF_EN_SHIFT   5
374#define E4_TSTORM_ISCSI_CONN_AG_CTX_M2T_FLUSH_CF_EN_MASK    0x1 /* cf2en */
375#define E4_TSTORM_ISCSI_CONN_AG_CTX_M2T_FLUSH_CF_EN_SHIFT   6
376#define E4_TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK  0x1 /* cf3en */
377#define E4_TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT 7
378	u8 flags4;
379#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK              0x1 /* cf4en */
380#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT             0
381#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK              0x1 /* cf5en */
382#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT             1
383#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK              0x1 /* cf6en */
384#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT             2
385#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF7EN_MASK              0x1 /* cf7en */
386#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF7EN_SHIFT             3
387#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF8EN_MASK              0x1 /* cf8en */
388#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF8EN_SHIFT             4
389#define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_MASK        0x1 /* cf9en */
390#define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT       5
391#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF10EN_MASK             0x1 /* cf10en */
392#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF10EN_SHIFT            6
393#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK            0x1 /* rule0en */
394#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT           7
395	u8 flags5;
396#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK            0x1 /* rule1en */
397#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT           0
398#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK            0x1 /* rule2en */
399#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT           1
400#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK            0x1 /* rule3en */
401#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT           2
402#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK            0x1 /* rule4en */
403#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT           3
404#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK            0x1 /* rule5en */
405#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT           4
406#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK            0x1 /* rule6en */
407#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT           5
408#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK            0x1 /* rule7en */
409#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT           6
410#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE8EN_MASK            0x1 /* rule8en */
411#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE8EN_SHIFT           7
412	__le32 reg0 /* reg0 */;
413	__le32 reg1 /* reg1 */;
414	__le32 rx_tcp_checksum_err_cnt /* reg2 */;
415	__le32 reg3 /* reg3 */;
416	__le32 reg4 /* reg4 */;
417	__le32 reg5 /* reg5 */;
418	__le32 reg6 /* reg6 */;
419	__le32 reg7 /* reg7 */;
420	__le32 reg8 /* reg8 */;
421	u8 cid_offload_cnt /* byte2 */;
422	u8 byte3 /* byte3 */;
423	__le16 word0 /* word0 */;
424};
425
426struct e4_ustorm_iscsi_conn_ag_ctx
427{
428	u8 byte0 /* cdu_validation */;
429	u8 byte1 /* state */;
430	u8 flags0;
431#define E4_USTORM_ISCSI_CONN_AG_CTX_BIT0_MASK     0x1 /* exist_in_qm0 */
432#define E4_USTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT    0
433#define E4_USTORM_ISCSI_CONN_AG_CTX_BIT1_MASK     0x1 /* exist_in_qm1 */
434#define E4_USTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT    1
435#define E4_USTORM_ISCSI_CONN_AG_CTX_CF0_MASK      0x3 /* timer0cf */
436#define E4_USTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT     2
437#define E4_USTORM_ISCSI_CONN_AG_CTX_CF1_MASK      0x3 /* timer1cf */
438#define E4_USTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT     4
439#define E4_USTORM_ISCSI_CONN_AG_CTX_CF2_MASK      0x3 /* timer2cf */
440#define E4_USTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT     6
441	u8 flags1;
442#define E4_USTORM_ISCSI_CONN_AG_CTX_CF3_MASK      0x3 /* timer_stop_all */
443#define E4_USTORM_ISCSI_CONN_AG_CTX_CF3_SHIFT     0
444#define E4_USTORM_ISCSI_CONN_AG_CTX_CF4_MASK      0x3 /* cf4 */
445#define E4_USTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT     2
446#define E4_USTORM_ISCSI_CONN_AG_CTX_CF5_MASK      0x3 /* cf5 */
447#define E4_USTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT     4
448#define E4_USTORM_ISCSI_CONN_AG_CTX_CF6_MASK      0x3 /* cf6 */
449#define E4_USTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT     6
450	u8 flags2;
451#define E4_USTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK    0x1 /* cf0en */
452#define E4_USTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT   0
453#define E4_USTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK    0x1 /* cf1en */
454#define E4_USTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT   1
455#define E4_USTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK    0x1 /* cf2en */
456#define E4_USTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT   2
457#define E4_USTORM_ISCSI_CONN_AG_CTX_CF3EN_MASK    0x1 /* cf3en */
458#define E4_USTORM_ISCSI_CONN_AG_CTX_CF3EN_SHIFT   3
459#define E4_USTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK    0x1 /* cf4en */
460#define E4_USTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT   4
461#define E4_USTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK    0x1 /* cf5en */
462#define E4_USTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT   5
463#define E4_USTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK    0x1 /* cf6en */
464#define E4_USTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT   6
465#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK  0x1 /* rule0en */
466#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 7
467	u8 flags3;
468#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK  0x1 /* rule1en */
469#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 0
470#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK  0x1 /* rule2en */
471#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 1
472#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK  0x1 /* rule3en */
473#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 2
474#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK  0x1 /* rule4en */
475#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 3
476#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK  0x1 /* rule5en */
477#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT 4
478#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK  0x1 /* rule6en */
479#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT 5
480#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK  0x1 /* rule7en */
481#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT 6
482#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE8EN_MASK  0x1 /* rule8en */
483#define E4_USTORM_ISCSI_CONN_AG_CTX_RULE8EN_SHIFT 7
484	u8 byte2 /* byte2 */;
485	u8 byte3 /* byte3 */;
486	__le16 word0 /* conn_dpi */;
487	__le16 word1 /* word1 */;
488	__le32 reg0 /* reg0 */;
489	__le32 reg1 /* reg1 */;
490	__le32 reg2 /* reg2 */;
491	__le32 reg3 /* reg3 */;
492	__le16 word2 /* word2 */;
493	__le16 word3 /* word3 */;
494};
495
496/*
497 * The iscsi storm connection context of Tstorm
498 */
499struct tstorm_iscsi_conn_st_ctx
500{
501	__le32 reserved[44];
502};
503
504struct e4_mstorm_iscsi_conn_ag_ctx
505{
506	u8 reserved /* cdu_validation */;
507	u8 state /* state */;
508	u8 flags0;
509#define E4_MSTORM_ISCSI_CONN_AG_CTX_BIT0_MASK     0x1 /* exist_in_qm0 */
510#define E4_MSTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT    0
511#define E4_MSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK     0x1 /* exist_in_qm1 */
512#define E4_MSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT    1
513#define E4_MSTORM_ISCSI_CONN_AG_CTX_CF0_MASK      0x3 /* cf0 */
514#define E4_MSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT     2
515#define E4_MSTORM_ISCSI_CONN_AG_CTX_CF1_MASK      0x3 /* cf1 */
516#define E4_MSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT     4
517#define E4_MSTORM_ISCSI_CONN_AG_CTX_CF2_MASK      0x3 /* cf2 */
518#define E4_MSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT     6
519	u8 flags1;
520#define E4_MSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK    0x1 /* cf0en */
521#define E4_MSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT   0
522#define E4_MSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK    0x1 /* cf1en */
523#define E4_MSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT   1
524#define E4_MSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK    0x1 /* cf2en */
525#define E4_MSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT   2
526#define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK  0x1 /* rule0en */
527#define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 3
528#define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK  0x1 /* rule1en */
529#define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 4
530#define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK  0x1 /* rule2en */
531#define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 5
532#define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK  0x1 /* rule3en */
533#define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 6
534#define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK  0x1 /* rule4en */
535#define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 7
536	__le16 word0 /* word0 */;
537	__le16 word1 /* word1 */;
538	__le32 reg0 /* reg0 */;
539	__le32 reg1 /* reg1 */;
540};
541
542/*
543 * Combined iSCSI and TCP storm connection of Mstorm
544 */
545struct mstorm_iscsi_tcp_conn_st_ctx
546{
547	__le32 reserved_tcp[20];
548	__le32 reserved_iscsi[12];
549};
550
551/*
552 * The iscsi storm context of Ustorm
553 */
554struct ustorm_iscsi_conn_st_ctx
555{
556	__le32 reserved[52];
557};
558
559/*
560 * iscsi connection context
561 */
562struct e4_iscsi_conn_context
563{
564	struct ystorm_iscsi_conn_st_ctx ystorm_st_context /* ystorm storm context */;
565	struct pstorm_iscsi_tcp_conn_st_ctx pstorm_st_context /* pstorm storm context */;
566	struct regpair pstorm_st_padding[2] /* padding */;
567	struct pb_context xpb2_context /* xpb2 context */;
568	struct xstorm_iscsi_tcp_conn_st_ctx xstorm_st_context /* xstorm storm context */;
569	struct regpair xstorm_st_padding[2] /* padding */;
570	struct e4_xstorm_iscsi_conn_ag_ctx xstorm_ag_context /* xstorm aggregative context */;
571	struct e4_tstorm_iscsi_conn_ag_ctx tstorm_ag_context /* tstorm aggregative context */;
572	struct regpair tstorm_ag_padding[2] /* padding */;
573	struct timers_context timer_context /* timer context */;
574	struct e4_ustorm_iscsi_conn_ag_ctx ustorm_ag_context /* ustorm aggregative context */;
575	struct pb_context upb_context /* upb context */;
576	struct tstorm_iscsi_conn_st_ctx tstorm_st_context /* tstorm storm context */;
577	struct regpair tstorm_st_padding[2] /* padding */;
578	struct e4_mstorm_iscsi_conn_ag_ctx mstorm_ag_context /* mstorm aggregative context */;
579	struct mstorm_iscsi_tcp_conn_st_ctx mstorm_st_context /* mstorm storm context */;
580	struct ustorm_iscsi_conn_st_ctx ustorm_st_context /* ustorm storm context */;
581};
582
583
584struct e5_xstorm_iscsi_conn_ag_ctx
585{
586	u8 cdu_validation /* cdu_validation */;
587	u8 state_and_core_id /* state_and_core_id */;
588	u8 flags0;
589#define E5_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_MASK                0x1 /* exist_in_qm0 */
590#define E5_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_SHIFT               0
591#define E5_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM1_MASK                0x1 /* exist_in_qm1 */
592#define E5_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM1_SHIFT               1
593#define E5_XSTORM_ISCSI_CONN_AG_CTX_RESERVED1_MASK                   0x1 /* exist_in_qm2 */
594#define E5_XSTORM_ISCSI_CONN_AG_CTX_RESERVED1_SHIFT                  2
595#define E5_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM3_MASK                0x1 /* exist_in_qm3 */
596#define E5_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM3_SHIFT               3
597#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT4_MASK                        0x1 /* bit4 */
598#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT4_SHIFT                       4
599#define E5_XSTORM_ISCSI_CONN_AG_CTX_RESERVED2_MASK                   0x1 /* cf_array_active */
600#define E5_XSTORM_ISCSI_CONN_AG_CTX_RESERVED2_SHIFT                  5
601#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT6_MASK                        0x1 /* bit6 */
602#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT6_SHIFT                       6
603#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT7_MASK                        0x1 /* bit7 */
604#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT7_SHIFT                       7
605	u8 flags1;
606#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT8_MASK                        0x1 /* bit8 */
607#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT8_SHIFT                       0
608#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT9_MASK                        0x1 /* bit9 */
609#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT9_SHIFT                       1
610#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT10_MASK                       0x1 /* bit10 */
611#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT10_SHIFT                      2
612#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT11_MASK                       0x1 /* bit11 */
613#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT11_SHIFT                      3
614#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT12_MASK                       0x1 /* bit12 */
615#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT12_SHIFT                      4
616#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT13_MASK                       0x1 /* bit13 */
617#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT13_SHIFT                      5
618#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT14_MASK                       0x1 /* bit14 */
619#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT14_SHIFT                      6
620#define E5_XSTORM_ISCSI_CONN_AG_CTX_TX_TRUNCATE_MASK                 0x1 /* bit15 */
621#define E5_XSTORM_ISCSI_CONN_AG_CTX_TX_TRUNCATE_SHIFT                7
622	u8 flags2;
623#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF0_MASK                         0x3 /* timer0cf */
624#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT                        0
625#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF1_MASK                         0x3 /* timer1cf */
626#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT                        2
627#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF2_MASK                         0x3 /* timer2cf */
628#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT                        4
629#define E5_XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_MASK              0x3 /* timer_stop_all */
630#define E5_XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT             6
631	u8 flags3;
632#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF4_MASK                         0x3 /* cf4 */
633#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT                        0
634#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF5_MASK                         0x3 /* cf5 */
635#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT                        2
636#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF6_MASK                         0x3 /* cf6 */
637#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT                        4
638#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF7_MASK                         0x3 /* cf7 */
639#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF7_SHIFT                        6
640	u8 flags4;
641#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF8_MASK                         0x3 /* cf8 */
642#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF8_SHIFT                        0
643#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF9_MASK                         0x3 /* cf9 */
644#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF9_SHIFT                        2
645#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF10_MASK                        0x3 /* cf10 */
646#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF10_SHIFT                       4
647#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF11_MASK                        0x3 /* cf11 */
648#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF11_SHIFT                       6
649	u8 flags5;
650#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF12_MASK                        0x3 /* cf12 */
651#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF12_SHIFT                       0
652#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF13_MASK                        0x3 /* cf13 */
653#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF13_SHIFT                       2
654#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF14_MASK                        0x3 /* cf14 */
655#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF14_SHIFT                       4
656#define E5_XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_MASK     0x3 /* cf15 */
657#define E5_XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_SHIFT    6
658	u8 flags6;
659#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF16_MASK                        0x3 /* cf16 */
660#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF16_SHIFT                       0
661#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF17_MASK                        0x3 /* cf_array_cf */
662#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF17_SHIFT                       2
663#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF18_MASK                        0x3 /* cf18 */
664#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF18_SHIFT                       4
665#define E5_XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_MASK                    0x3 /* cf19 */
666#define E5_XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_SHIFT                   6
667	u8 flags7;
668#define E5_XSTORM_ISCSI_CONN_AG_CTX_MST_XCM_Q0_FLUSH_CF_MASK         0x3 /* cf20 */
669#define E5_XSTORM_ISCSI_CONN_AG_CTX_MST_XCM_Q0_FLUSH_CF_SHIFT        0
670#define E5_XSTORM_ISCSI_CONN_AG_CTX_UST_XCM_Q1_FLUSH_CF_MASK         0x3 /* cf21 */
671#define E5_XSTORM_ISCSI_CONN_AG_CTX_UST_XCM_Q1_FLUSH_CF_SHIFT        2
672#define E5_XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_MASK                   0x3 /* cf22 */
673#define E5_XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_SHIFT                  4
674#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK                       0x1 /* cf0en */
675#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT                      6
676#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK                       0x1 /* cf1en */
677#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT                      7
678	u8 flags8;
679#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK                       0x1 /* cf2en */
680#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT                      0
681#define E5_XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK           0x1 /* cf3en */
682#define E5_XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT          1
683#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK                       0x1 /* cf4en */
684#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT                      2
685#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK                       0x1 /* cf5en */
686#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT                      3
687#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK                       0x1 /* cf6en */
688#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT                      4
689#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF7EN_MASK                       0x1 /* cf7en */
690#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF7EN_SHIFT                      5
691#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF8EN_MASK                       0x1 /* cf8en */
692#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF8EN_SHIFT                      6
693#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF9EN_MASK                       0x1 /* cf9en */
694#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF9EN_SHIFT                      7
695	u8 flags9;
696#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF10EN_MASK                      0x1 /* cf10en */
697#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF10EN_SHIFT                     0
698#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF11EN_MASK                      0x1 /* cf11en */
699#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF11EN_SHIFT                     1
700#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF12EN_MASK                      0x1 /* cf12en */
701#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF12EN_SHIFT                     2
702#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF13EN_MASK                      0x1 /* cf13en */
703#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF13EN_SHIFT                     3
704#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF14EN_MASK                      0x1 /* cf14en */
705#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF14EN_SHIFT                     4
706#define E5_XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_EN_MASK  0x1 /* cf15en */
707#define E5_XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_EN_SHIFT 5
708#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF16EN_MASK                      0x1 /* cf16en */
709#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF16EN_SHIFT                     6
710#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF17EN_MASK                      0x1 /* cf_array_cf_en */
711#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF17EN_SHIFT                     7
712	u8 flags10;
713#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF18EN_MASK                      0x1 /* cf18en */
714#define E5_XSTORM_ISCSI_CONN_AG_CTX_CF18EN_SHIFT                     0
715#define E5_XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_EN_MASK                 0x1 /* cf19en */
716#define E5_XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_EN_SHIFT                1
717#define E5_XSTORM_ISCSI_CONN_AG_CTX_MST_XCM_Q0_FLUSH_CF_EN_MASK      0x1 /* cf20en */
718#define E5_XSTORM_ISCSI_CONN_AG_CTX_MST_XCM_Q0_FLUSH_CF_EN_SHIFT     2
719#define E5_XSTORM_ISCSI_CONN_AG_CTX_UST_XCM_Q1_FLUSH_CF_EN_MASK      0x1 /* cf21en */
720#define E5_XSTORM_ISCSI_CONN_AG_CTX_UST_XCM_Q1_FLUSH_CF_EN_SHIFT     3
721#define E5_XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_EN_MASK                0x1 /* cf22en */
722#define E5_XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_EN_SHIFT               4
723#define E5_XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_EN_MASK        0x1 /* cf23en */
724#define E5_XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_EN_SHIFT       5
725#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK                     0x1 /* rule0en */
726#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT                    6
727#define E5_XSTORM_ISCSI_CONN_AG_CTX_MORE_TO_SEND_DEC_RULE_EN_MASK    0x1 /* rule1en */
728#define E5_XSTORM_ISCSI_CONN_AG_CTX_MORE_TO_SEND_DEC_RULE_EN_SHIFT   7
729	u8 flags11;
730#define E5_XSTORM_ISCSI_CONN_AG_CTX_TX_BLOCKED_EN_MASK               0x1 /* rule2en */
731#define E5_XSTORM_ISCSI_CONN_AG_CTX_TX_BLOCKED_EN_SHIFT              0
732#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK                     0x1 /* rule3en */
733#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT                    1
734#define E5_XSTORM_ISCSI_CONN_AG_CTX_RESERVED3_MASK                   0x1 /* rule4en */
735#define E5_XSTORM_ISCSI_CONN_AG_CTX_RESERVED3_SHIFT                  2
736#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK                     0x1 /* rule5en */
737#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT                    3
738#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK                     0x1 /* rule6en */
739#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT                    4
740#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK                     0x1 /* rule7en */
741#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT                    5
742#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED1_MASK                0x1 /* rule8en */
743#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED1_SHIFT               6
744#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE9EN_MASK                     0x1 /* rule9en */
745#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE9EN_SHIFT                    7
746	u8 flags12;
747#define E5_XSTORM_ISCSI_CONN_AG_CTX_SQ_DEC_RULE_EN_MASK              0x1 /* rule10en */
748#define E5_XSTORM_ISCSI_CONN_AG_CTX_SQ_DEC_RULE_EN_SHIFT             0
749#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE11EN_MASK                    0x1 /* rule11en */
750#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE11EN_SHIFT                   1
751#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED2_MASK                0x1 /* rule12en */
752#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED2_SHIFT               2
753#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED3_MASK                0x1 /* rule13en */
754#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED3_SHIFT               3
755#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE14EN_MASK                    0x1 /* rule14en */
756#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE14EN_SHIFT                   4
757#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE15EN_MASK                    0x1 /* rule15en */
758#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE15EN_SHIFT                   5
759#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE16EN_MASK                    0x1 /* rule16en */
760#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE16EN_SHIFT                   6
761#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE17EN_MASK                    0x1 /* rule17en */
762#define E5_XSTORM_ISCSI_CONN_AG_CTX_RULE17EN_SHIFT                   7
763	u8 flags13;
764#define E5_XSTORM_ISCSI_CONN_AG_CTX_R2TQ_DEC_RULE_EN_MASK            0x1 /* rule18en */
765#define E5_XSTORM_ISCSI_CONN_AG_CTX_R2TQ_DEC_RULE_EN_SHIFT           0
766#define E5_XSTORM_ISCSI_CONN_AG_CTX_HQ_DEC_RULE_EN_MASK              0x1 /* rule19en */
767#define E5_XSTORM_ISCSI_CONN_AG_CTX_HQ_DEC_RULE_EN_SHIFT             1
768#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED4_MASK                0x1 /* rule20en */
769#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED4_SHIFT               2
770#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED5_MASK                0x1 /* rule21en */
771#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED5_SHIFT               3
772#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED6_MASK                0x1 /* rule22en */
773#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED6_SHIFT               4
774#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED7_MASK                0x1 /* rule23en */
775#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED7_SHIFT               5
776#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED8_MASK                0x1 /* rule24en */
777#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED8_SHIFT               6
778#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED9_MASK                0x1 /* rule25en */
779#define E5_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED9_SHIFT               7
780	u8 flags14;
781#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT16_MASK                       0x1 /* bit16 */
782#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT16_SHIFT                      0
783#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT17_MASK                       0x1 /* bit17 */
784#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT17_SHIFT                      1
785#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT18_MASK                       0x1 /* bit18 */
786#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT18_SHIFT                      2
787#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT19_MASK                       0x1 /* bit19 */
788#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT19_SHIFT                      3
789#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT20_MASK                       0x1 /* bit20 */
790#define E5_XSTORM_ISCSI_CONN_AG_CTX_BIT20_SHIFT                      4
791#define E5_XSTORM_ISCSI_CONN_AG_CTX_DUMMY_READ_DONE_MASK             0x1 /* bit21 */
792#define E5_XSTORM_ISCSI_CONN_AG_CTX_DUMMY_READ_DONE_SHIFT            5
793#define E5_XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_MASK           0x3 /* cf23 */
794#define E5_XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_SHIFT          6
795	u8 byte2 /* byte2 */;
796	__le16 physical_q0 /* physical_q0 */;
797	__le16 physical_q1 /* physical_q1 */;
798	__le16 dummy_dorq_var /* physical_q2 */;
799	__le16 sq_cons /* word3 */;
800	__le16 sq_prod /* word4 */;
801	__le16 word5 /* word5 */;
802	__le16 slow_io_total_data_tx_update /* conn_dpi */;
803	u8 byte3 /* byte3 */;
804	u8 byte4 /* byte4 */;
805	u8 byte5 /* byte5 */;
806	u8 byte6 /* byte6 */;
807	__le32 reg0 /* reg0 */;
808	__le32 reg1 /* reg1 */;
809	__le32 reg2 /* reg2 */;
810	__le32 more_to_send_seq /* reg3 */;
811	__le32 reg4 /* reg4 */;
812	__le32 reg5 /* cf_array0 */;
813	__le32 hq_scan_next_relevant_ack /* cf_array1 */;
814	u8 flags15;
815#define E5_XSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED1_MASK                0x1 /* bit22 */
816#define E5_XSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED1_SHIFT               0
817#define E5_XSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED2_MASK                0x1 /* bit23 */
818#define E5_XSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED2_SHIFT               1
819#define E5_XSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED3_MASK                0x1 /* bit24 */
820#define E5_XSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED3_SHIFT               2
821#define E5_XSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED4_MASK                0x3 /* cf24 */
822#define E5_XSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED4_SHIFT               3
823#define E5_XSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED5_MASK                0x1 /* cf24en */
824#define E5_XSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED5_SHIFT               5
825#define E5_XSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED6_MASK                0x1 /* rule26en */
826#define E5_XSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED6_SHIFT               6
827#define E5_XSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED7_MASK                0x1 /* rule27en */
828#define E5_XSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED7_SHIFT               7
829	u8 byte7 /* byte7 */;
830	__le16 r2tq_prod /* word7 */;
831	__le16 r2tq_cons /* word8 */;
832	__le16 hq_prod /* word9 */;
833	__le16 hq_cons /* word10 */;
834	__le16 word11 /* word11 */;
835	__le32 remain_seq /* reg7 */;
836	__le32 bytes_to_next_pdu /* reg8 */;
837	__le32 hq_tcp_seq /* reg9 */;
838	u8 byte8 /* byte8 */;
839	u8 byte9 /* byte9 */;
840	u8 byte10 /* byte10 */;
841	u8 byte11 /* byte11 */;
842	u8 byte12 /* byte12 */;
843	u8 byte13 /* byte13 */;
844	u8 byte14 /* byte14 */;
845	u8 byte15 /* byte15 */;
846	__le32 reg10 /* reg10 */;
847	__le32 reg11 /* reg11 */;
848	__le32 reg12 /* reg12 */;
849	__le32 ongoing_fast_rxmit_seq /* reg13 */;
850	__le32 exp_stat_sn /* reg14 */;
851	__le32 reg15 /* reg15 */;
852	__le32 reg16 /* reg16 */;
853	__le32 reg17 /* reg17 */;
854};
855
856struct e5_tstorm_iscsi_conn_ag_ctx
857{
858	u8 reserved0 /* cdu_validation */;
859	u8 state_and_core_id /* state_and_core_id */;
860	u8 flags0;
861#define E5_TSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_MASK       0x1 /* exist_in_qm0 */
862#define E5_TSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_SHIFT      0
863#define E5_TSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK               0x1 /* exist_in_qm1 */
864#define E5_TSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT              1
865#define E5_TSTORM_ISCSI_CONN_AG_CTX_BIT2_MASK               0x1 /* bit2 */
866#define E5_TSTORM_ISCSI_CONN_AG_CTX_BIT2_SHIFT              2
867#define E5_TSTORM_ISCSI_CONN_AG_CTX_BIT3_MASK               0x1 /* bit3 */
868#define E5_TSTORM_ISCSI_CONN_AG_CTX_BIT3_SHIFT              3
869#define E5_TSTORM_ISCSI_CONN_AG_CTX_BIT4_MASK               0x1 /* bit4 */
870#define E5_TSTORM_ISCSI_CONN_AG_CTX_BIT4_SHIFT              4
871#define E5_TSTORM_ISCSI_CONN_AG_CTX_BIT5_MASK               0x1 /* bit5 */
872#define E5_TSTORM_ISCSI_CONN_AG_CTX_BIT5_SHIFT              5
873#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF0_MASK                0x3 /* timer0cf */
874#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT               6
875	u8 flags1;
876#define E5_TSTORM_ISCSI_CONN_AG_CTX_P2T_FLUSH_CF_MASK       0x3 /* timer1cf */
877#define E5_TSTORM_ISCSI_CONN_AG_CTX_P2T_FLUSH_CF_SHIFT      0
878#define E5_TSTORM_ISCSI_CONN_AG_CTX_M2T_FLUSH_CF_MASK       0x3 /* timer2cf */
879#define E5_TSTORM_ISCSI_CONN_AG_CTX_M2T_FLUSH_CF_SHIFT      2
880#define E5_TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_MASK     0x3 /* timer_stop_all */
881#define E5_TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT    4
882#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF4_MASK                0x3 /* cf4 */
883#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT               6
884	u8 flags2;
885#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF5_MASK                0x3 /* cf5 */
886#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT               0
887#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF6_MASK                0x3 /* cf6 */
888#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT               2
889#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF7_MASK                0x3 /* cf7 */
890#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF7_SHIFT               4
891#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF8_MASK                0x3 /* cf8 */
892#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF8_SHIFT               6
893	u8 flags3;
894#define E5_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_MASK           0x3 /* cf9 */
895#define E5_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_SHIFT          0
896#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF10_MASK               0x3 /* cf10 */
897#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF10_SHIFT              2
898#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK              0x1 /* cf0en */
899#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT             4
900#define E5_TSTORM_ISCSI_CONN_AG_CTX_P2T_FLUSH_CF_EN_MASK    0x1 /* cf1en */
901#define E5_TSTORM_ISCSI_CONN_AG_CTX_P2T_FLUSH_CF_EN_SHIFT   5
902#define E5_TSTORM_ISCSI_CONN_AG_CTX_M2T_FLUSH_CF_EN_MASK    0x1 /* cf2en */
903#define E5_TSTORM_ISCSI_CONN_AG_CTX_M2T_FLUSH_CF_EN_SHIFT   6
904#define E5_TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK  0x1 /* cf3en */
905#define E5_TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT 7
906	u8 flags4;
907#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK              0x1 /* cf4en */
908#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT             0
909#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK              0x1 /* cf5en */
910#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT             1
911#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK              0x1 /* cf6en */
912#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT             2
913#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF7EN_MASK              0x1 /* cf7en */
914#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF7EN_SHIFT             3
915#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF8EN_MASK              0x1 /* cf8en */
916#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF8EN_SHIFT             4
917#define E5_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_MASK        0x1 /* cf9en */
918#define E5_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT       5
919#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF10EN_MASK             0x1 /* cf10en */
920#define E5_TSTORM_ISCSI_CONN_AG_CTX_CF10EN_SHIFT            6
921#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK            0x1 /* rule0en */
922#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT           7
923	u8 flags5;
924#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK            0x1 /* rule1en */
925#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT           0
926#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK            0x1 /* rule2en */
927#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT           1
928#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK            0x1 /* rule3en */
929#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT           2
930#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK            0x1 /* rule4en */
931#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT           3
932#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK            0x1 /* rule5en */
933#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT           4
934#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK            0x1 /* rule6en */
935#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT           5
936#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK            0x1 /* rule7en */
937#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT           6
938#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE8EN_MASK            0x1 /* rule8en */
939#define E5_TSTORM_ISCSI_CONN_AG_CTX_RULE8EN_SHIFT           7
940	u8 flags6;
941#define E5_TSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED1_MASK       0x1 /* bit6 */
942#define E5_TSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED1_SHIFT      0
943#define E5_TSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED2_MASK       0x1 /* bit7 */
944#define E5_TSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED2_SHIFT      1
945#define E5_TSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED3_MASK       0x1 /* bit8 */
946#define E5_TSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED3_SHIFT      2
947#define E5_TSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED4_MASK       0x3 /* cf11 */
948#define E5_TSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED4_SHIFT      3
949#define E5_TSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED5_MASK       0x1 /* cf11en */
950#define E5_TSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED5_SHIFT      5
951#define E5_TSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED6_MASK       0x1 /* rule9en */
952#define E5_TSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED6_SHIFT      6
953#define E5_TSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED7_MASK       0x1 /* rule10en */
954#define E5_TSTORM_ISCSI_CONN_AG_CTX_E4_RESERVED7_SHIFT      7
955	u8 cid_offload_cnt /* byte2 */;
956	__le16 word0 /* word0 */;
957	__le32 reg0 /* reg0 */;
958	__le32 reg1 /* reg1 */;
959	__le32 reg2 /* reg2 */;
960	__le32 reg3 /* reg3 */;
961	__le32 reg4 /* reg4 */;
962	__le32 reg5 /* reg5 */;
963	__le32 reg6 /* reg6 */;
964	__le32 reg7 /* reg7 */;
965	__le32 reg8 /* reg8 */;
966};
967
968struct e5_ustorm_iscsi_conn_ag_ctx
969{
970	u8 byte0 /* cdu_validation */;
971	u8 byte1 /* state_and_core_id */;
972	u8 flags0;
973#define E5_USTORM_ISCSI_CONN_AG_CTX_BIT0_MASK          0x1 /* exist_in_qm0 */
974#define E5_USTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT         0
975#define E5_USTORM_ISCSI_CONN_AG_CTX_BIT1_MASK          0x1 /* exist_in_qm1 */
976#define E5_USTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT         1
977#define E5_USTORM_ISCSI_CONN_AG_CTX_CF0_MASK           0x3 /* timer0cf */
978#define E5_USTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT          2
979#define E5_USTORM_ISCSI_CONN_AG_CTX_CF1_MASK           0x3 /* timer1cf */
980#define E5_USTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT          4
981#define E5_USTORM_ISCSI_CONN_AG_CTX_CF2_MASK           0x3 /* timer2cf */
982#define E5_USTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT          6
983	u8 flags1;
984#define E5_USTORM_ISCSI_CONN_AG_CTX_CF3_MASK           0x3 /* timer_stop_all */
985#define E5_USTORM_ISCSI_CONN_AG_CTX_CF3_SHIFT          0
986#define E5_USTORM_ISCSI_CONN_AG_CTX_CF4_MASK           0x3 /* cf4 */
987#define E5_USTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT          2
988#define E5_USTORM_ISCSI_CONN_AG_CTX_CF5_MASK           0x3 /* cf5 */
989#define E5_USTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT          4
990#define E5_USTORM_ISCSI_CONN_AG_CTX_CF6_MASK           0x3 /* cf6 */
991#define E5_USTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT          6
992	u8 flags2;
993#define E5_USTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK         0x1 /* cf0en */
994#define E5_USTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT        0
995#define E5_USTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK         0x1 /* cf1en */
996#define E5_USTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT        1
997#define E5_USTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK         0x1 /* cf2en */
998#define E5_USTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT        2
999#define E5_USTORM_ISCSI_CONN_AG_CTX_CF3EN_MASK         0x1 /* cf3en */
1000#define E5_USTORM_ISCSI_CONN_AG_CTX_CF3EN_SHIFT        3
1001#define E5_USTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK         0x1 /* cf4en */
1002#define E5_USTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT        4
1003#define E5_USTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK         0x1 /* cf5en */
1004#define E5_USTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT        5
1005#define E5_USTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK         0x1 /* cf6en */
1006#define E5_USTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT        6
1007#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK       0x1 /* rule0en */
1008#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT      7
1009	u8 flags3;
1010#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK       0x1 /* rule1en */
1011#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT      0
1012#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK       0x1 /* rule2en */
1013#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT      1
1014#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK       0x1 /* rule3en */
1015#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT      2
1016#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK       0x1 /* rule4en */
1017#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT      3
1018#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK       0x1 /* rule5en */
1019#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT      4
1020#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK       0x1 /* rule6en */
1021#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT      5
1022#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK       0x1 /* rule7en */
1023#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT      6
1024#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE8EN_MASK       0x1 /* rule8en */
1025#define E5_USTORM_ISCSI_CONN_AG_CTX_RULE8EN_SHIFT      7
1026	u8 flags4;
1027#define E5_USTORM_ISCSI_CONN_AG_CTX_E4_RESERVED1_MASK  0x1 /* bit2 */
1028#define E5_USTORM_ISCSI_CONN_AG_CTX_E4_RESERVED1_SHIFT 0
1029#define E5_USTORM_ISCSI_CONN_AG_CTX_E4_RESERVED2_MASK  0x1 /* bit3 */
1030#define E5_USTORM_ISCSI_CONN_AG_CTX_E4_RESERVED2_SHIFT 1
1031#define E5_USTORM_ISCSI_CONN_AG_CTX_E4_RESERVED3_MASK  0x3 /* cf7 */
1032#define E5_USTORM_ISCSI_CONN_AG_CTX_E4_RESERVED3_SHIFT 2
1033#define E5_USTORM_ISCSI_CONN_AG_CTX_E4_RESERVED4_MASK  0x3 /* cf8 */
1034#define E5_USTORM_ISCSI_CONN_AG_CTX_E4_RESERVED4_SHIFT 4
1035#define E5_USTORM_ISCSI_CONN_AG_CTX_E4_RESERVED5_MASK  0x1 /* cf7en */
1036#define E5_USTORM_ISCSI_CONN_AG_CTX_E4_RESERVED5_SHIFT 6
1037#define E5_USTORM_ISCSI_CONN_AG_CTX_E4_RESERVED6_MASK  0x1 /* cf8en */
1038#define E5_USTORM_ISCSI_CONN_AG_CTX_E4_RESERVED6_SHIFT 7
1039	u8 byte2 /* byte2 */;
1040	__le16 word0 /* conn_dpi */;
1041	__le16 word1 /* word1 */;
1042	__le32 reg0 /* reg0 */;
1043	__le32 reg1 /* reg1 */;
1044	__le32 reg2 /* reg2 */;
1045	__le32 reg3 /* reg3 */;
1046	__le16 word2 /* word2 */;
1047	__le16 word3 /* word3 */;
1048};
1049
1050struct e5_mstorm_iscsi_conn_ag_ctx
1051{
1052	u8 reserved /* cdu_validation */;
1053	u8 state_and_core_id /* state_and_core_id */;
1054	u8 flags0;
1055#define E5_MSTORM_ISCSI_CONN_AG_CTX_BIT0_MASK     0x1 /* exist_in_qm0 */
1056#define E5_MSTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT    0
1057#define E5_MSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK     0x1 /* exist_in_qm1 */
1058#define E5_MSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT    1
1059#define E5_MSTORM_ISCSI_CONN_AG_CTX_CF0_MASK      0x3 /* cf0 */
1060#define E5_MSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT     2
1061#define E5_MSTORM_ISCSI_CONN_AG_CTX_CF1_MASK      0x3 /* cf1 */
1062#define E5_MSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT     4
1063#define E5_MSTORM_ISCSI_CONN_AG_CTX_CF2_MASK      0x3 /* cf2 */
1064#define E5_MSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT     6
1065	u8 flags1;
1066#define E5_MSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK    0x1 /* cf0en */
1067#define E5_MSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT   0
1068#define E5_MSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK    0x1 /* cf1en */
1069#define E5_MSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT   1
1070#define E5_MSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK    0x1 /* cf2en */
1071#define E5_MSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT   2
1072#define E5_MSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK  0x1 /* rule0en */
1073#define E5_MSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 3
1074#define E5_MSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK  0x1 /* rule1en */
1075#define E5_MSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 4
1076#define E5_MSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK  0x1 /* rule2en */
1077#define E5_MSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 5
1078#define E5_MSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK  0x1 /* rule3en */
1079#define E5_MSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 6
1080#define E5_MSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK  0x1 /* rule4en */
1081#define E5_MSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 7
1082	__le16 word0 /* word0 */;
1083	__le16 word1 /* word1 */;
1084	__le32 reg0 /* reg0 */;
1085	__le32 reg1 /* reg1 */;
1086};
1087
1088/*
1089 * iscsi connection context
1090 */
1091struct e5_iscsi_conn_context
1092{
1093	struct ystorm_iscsi_conn_st_ctx ystorm_st_context /* ystorm storm context */;
1094	struct regpair ystorm_st_padding[2] /* padding */;
1095	struct pstorm_iscsi_tcp_conn_st_ctx pstorm_st_context /* pstorm storm context */;
1096	struct regpair pstorm_st_padding[2] /* padding */;
1097	struct pb_context xpb2_context /* xpb2 context */;
1098	struct xstorm_iscsi_tcp_conn_st_ctx xstorm_st_context /* xstorm storm context */;
1099	struct regpair xstorm_st_padding[2] /* padding */;
1100	struct e5_xstorm_iscsi_conn_ag_ctx xstorm_ag_context /* xstorm aggregative context */;
1101	struct e5_tstorm_iscsi_conn_ag_ctx tstorm_ag_context /* tstorm aggregative context */;
1102	struct regpair tstorm_ag_padding[2] /* padding */;
1103	struct timers_context timer_context /* timer context */;
1104	struct e5_ustorm_iscsi_conn_ag_ctx ustorm_ag_context /* ustorm aggregative context */;
1105	struct pb_context upb_context /* upb context */;
1106	struct tstorm_iscsi_conn_st_ctx tstorm_st_context /* tstorm storm context */;
1107	struct regpair tstorm_st_padding[2] /* padding */;
1108	struct e5_mstorm_iscsi_conn_ag_ctx mstorm_ag_context /* mstorm aggregative context */;
1109	struct mstorm_iscsi_tcp_conn_st_ctx mstorm_st_context /* mstorm storm context */;
1110	struct ustorm_iscsi_conn_st_ctx ustorm_st_context /* ustorm storm context */;
1111};
1112
1113
1114/*
1115 * iSCSI init params passed by driver to FW in iSCSI init ramrod
1116 */
1117struct iscsi_init_ramrod_params
1118{
1119	struct iscsi_spe_func_init iscsi_init_spe /* parameters initialized by the miniport and handed to bus-driver */;
1120	struct tcp_init_params tcp_init /* TCP parameters initialized by the bus-driver */;
1121};
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134struct e4_ystorm_iscsi_conn_ag_ctx
1135{
1136	u8 byte0 /* cdu_validation */;
1137	u8 byte1 /* state */;
1138	u8 flags0;
1139#define E4_YSTORM_ISCSI_CONN_AG_CTX_BIT0_MASK     0x1 /* exist_in_qm0 */
1140#define E4_YSTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT    0
1141#define E4_YSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK     0x1 /* exist_in_qm1 */
1142#define E4_YSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT    1
1143#define E4_YSTORM_ISCSI_CONN_AG_CTX_CF0_MASK      0x3 /* cf0 */
1144#define E4_YSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT     2
1145#define E4_YSTORM_ISCSI_CONN_AG_CTX_CF1_MASK      0x3 /* cf1 */
1146#define E4_YSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT     4
1147#define E4_YSTORM_ISCSI_CONN_AG_CTX_CF2_MASK      0x3 /* cf2 */
1148#define E4_YSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT     6
1149	u8 flags1;
1150#define E4_YSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK    0x1 /* cf0en */
1151#define E4_YSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT   0
1152#define E4_YSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK    0x1 /* cf1en */
1153#define E4_YSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT   1
1154#define E4_YSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK    0x1 /* cf2en */
1155#define E4_YSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT   2
1156#define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK  0x1 /* rule0en */
1157#define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 3
1158#define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK  0x1 /* rule1en */
1159#define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 4
1160#define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK  0x1 /* rule2en */
1161#define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 5
1162#define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK  0x1 /* rule3en */
1163#define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 6
1164#define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK  0x1 /* rule4en */
1165#define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 7
1166	u8 byte2 /* byte2 */;
1167	u8 byte3 /* byte3 */;
1168	__le16 word0 /* word0 */;
1169	__le32 reg0 /* reg0 */;
1170	__le32 reg1 /* reg1 */;
1171	__le16 word1 /* word1 */;
1172	__le16 word2 /* word2 */;
1173	__le16 word3 /* word3 */;
1174	__le16 word4 /* word4 */;
1175	__le32 reg2 /* reg2 */;
1176	__le32 reg3 /* reg3 */;
1177};
1178
1179
1180
1181
1182
1183
1184struct e5_ystorm_iscsi_conn_ag_ctx
1185{
1186	u8 byte0 /* cdu_validation */;
1187	u8 byte1 /* state_and_core_id */;
1188	u8 flags0;
1189#define E5_YSTORM_ISCSI_CONN_AG_CTX_BIT0_MASK     0x1 /* exist_in_qm0 */
1190#define E5_YSTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT    0
1191#define E5_YSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK     0x1 /* exist_in_qm1 */
1192#define E5_YSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT    1
1193#define E5_YSTORM_ISCSI_CONN_AG_CTX_CF0_MASK      0x3 /* cf0 */
1194#define E5_YSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT     2
1195#define E5_YSTORM_ISCSI_CONN_AG_CTX_CF1_MASK      0x3 /* cf1 */
1196#define E5_YSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT     4
1197#define E5_YSTORM_ISCSI_CONN_AG_CTX_CF2_MASK      0x3 /* cf2 */
1198#define E5_YSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT     6
1199	u8 flags1;
1200#define E5_YSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK    0x1 /* cf0en */
1201#define E5_YSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT   0
1202#define E5_YSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK    0x1 /* cf1en */
1203#define E5_YSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT   1
1204#define E5_YSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK    0x1 /* cf2en */
1205#define E5_YSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT   2
1206#define E5_YSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK  0x1 /* rule0en */
1207#define E5_YSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 3
1208#define E5_YSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK  0x1 /* rule1en */
1209#define E5_YSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 4
1210#define E5_YSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK  0x1 /* rule2en */
1211#define E5_YSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 5
1212#define E5_YSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK  0x1 /* rule3en */
1213#define E5_YSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 6
1214#define E5_YSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK  0x1 /* rule4en */
1215#define E5_YSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 7
1216	u8 byte2 /* byte2 */;
1217	u8 byte3 /* byte3 */;
1218	__le16 word0 /* word0 */;
1219	__le32 reg0 /* reg0 */;
1220	__le32 reg1 /* reg1 */;
1221	__le16 word1 /* word1 */;
1222	__le16 word2 /* word2 */;
1223	__le16 word3 /* word3 */;
1224	__le16 word4 /* word4 */;
1225	__le32 reg2 /* reg2 */;
1226	__le32 reg3 /* reg3 */;
1227};
1228
1229#endif /* __ECORE_HSI_ISCSI__ */
1230