1a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
2a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/* cnic.c: Broadcom CNIC core network driver.
3a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan *
43238a9be4d7ad95c741bcfe6c147406eeef62d95Michael Chan * Copyright (c) 2006-2012 Broadcom Corporation
5a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan *
6a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * This program is free software; you can redistribute it and/or modify
7a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * it under the terms of the GNU General Public License as published by
8a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * the Free Software Foundation.
9a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan *
10a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
11a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
12a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#ifndef CNIC_DEFS_H
13a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define CNIC_DEFS_H
14a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
15a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/* KWQ (kernel work queue) request op codes */
16a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L2_KWQE_OPCODE_VALUE_FLUSH                  (4)
17523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define L2_KWQE_OPCODE_VALUE_VM_FREE_RX_QUEUE       (8)
18a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
19a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQE_OPCODE_VALUE_CONNECT1               (50)
20a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQE_OPCODE_VALUE_CONNECT2               (51)
21a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQE_OPCODE_VALUE_CONNECT3               (52)
22a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQE_OPCODE_VALUE_RESET                  (53)
23a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQE_OPCODE_VALUE_CLOSE                  (54)
24a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQE_OPCODE_VALUE_UPDATE_SECRET          (60)
25a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQE_OPCODE_VALUE_INIT_ULP               (61)
26a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
27a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQE_OPCODE_VALUE_OFFLOAD_PG             (1)
28a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQE_OPCODE_VALUE_UPDATE_PG              (9)
29a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQE_OPCODE_VALUE_UPLOAD_PG              (14)
30a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
31a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L5CM_RAMROD_CMD_ID_BASE			(0x80)
32a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L5CM_RAMROD_CMD_ID_TCP_CONNECT		(L5CM_RAMROD_CMD_ID_BASE + 3)
33a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L5CM_RAMROD_CMD_ID_CLOSE		(L5CM_RAMROD_CMD_ID_BASE + 12)
34a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L5CM_RAMROD_CMD_ID_ABORT		(L5CM_RAMROD_CMD_ID_BASE + 13)
35a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L5CM_RAMROD_CMD_ID_SEARCHER_DELETE	(L5CM_RAMROD_CMD_ID_BASE + 14)
36a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L5CM_RAMROD_CMD_ID_TERMINATE_OFFLOAD	(L5CM_RAMROD_CMD_ID_BASE + 15)
37a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
38619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_RAMROD_CMD_ID_INIT_FUNC		(FCOE_KCQE_OPCODE_INIT_FUNC)
39619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_RAMROD_CMD_ID_DESTROY_FUNC		(FCOE_KCQE_OPCODE_DESTROY_FUNC)
40619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_RAMROD_CMD_ID_STAT_FUNC		(FCOE_KCQE_OPCODE_STAT_FUNC)
41e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_RAMROD_CMD_ID_OFFLOAD_CONN		(FCOE_KCQE_OPCODE_OFFLOAD_CONN)
42e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_RAMROD_CMD_ID_ENABLE_CONN		(FCOE_KCQE_OPCODE_ENABLE_CONN)
43e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_RAMROD_CMD_ID_DISABLE_CONN		(FCOE_KCQE_OPCODE_DISABLE_CONN)
44e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_RAMROD_CMD_ID_DESTROY_CONN		(FCOE_KCQE_OPCODE_DESTROY_CONN)
45e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_RAMROD_CMD_ID_TERMINATE_CONN	(0x81)
46e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
47a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/* KCQ (kernel completion queue) response op codes */
48a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_CLOSE_COMP             (53)
49a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_RESET_COMP             (54)
50a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_FW_TCP_UPDATE          (55)
51a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_CONNECT_COMPLETE       (56)
52a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_RESET_RECEIVED         (57)
53a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_CLOSE_RECEIVED         (58)
54a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_INIT_ULP               (61)
55a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
56a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_OFFLOAD_PG             (1)
57a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_UPDATE_PG              (9)
58a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_UPLOAD_PG              (14)
59a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
60a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/* KCQ (kernel completion queue) completion status */
61523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define L4_KCQE_COMPLETION_STATUS_SUCCESS           (0)
6223021c21055f88a428b6deb6f803fa0d659e023fMichael Chan#define L4_KCQE_COMPLETION_STATUS_NIC_ERROR         (4)
638ec3e70207486bbd3e2d3c0d6b809116ccd4f219Michael Chan#define L4_KCQE_COMPLETION_STATUS_PARITY_ERROR	    (0x81)
64523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define L4_KCQE_COMPLETION_STATUS_TIMEOUT           (0x93)
65a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
66523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define L4_KCQE_COMPLETION_STATUS_CTX_ALLOC_FAIL    (0x83)
67523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define L4_KCQE_COMPLETION_STATUS_OFFLOADED_PG      (0x89)
68523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov
69523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define L4_KCQE_OPCODE_VALUE_OOO_EVENT_NOTIFICATION (0xa0)
70523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define L4_KCQE_OPCODE_VALUE_OOO_FLUSH              (0xa1)
71e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
72a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_LAYER_CODE (4)
73a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L2_LAYER_CODE (2)
74a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
75a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
76a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * L4 KCQ CQE
77a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
78a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kcq {
79a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 cid;
80a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 pg_cid;
81a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 conn_id;
82a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 pg_host_opaque;
83a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
84a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 status;
85a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved1;
86a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
87a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved1;
88a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 status;
89a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
90a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 reserved2[2];
91a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
92a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
93a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RESERVED3 (0x7<<0)
94a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RESERVED3_SHIFT 0
95a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RAMROD_COMPLETION (0x1<<3) /* Everest only */
96a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RAMROD_COMPLETION_SHIFT 3
97a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_LAYER_CODE (0x7<<4)
98a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_LAYER_CODE_SHIFT 4
99a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RESERVED4 (0x1<<7)
100a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RESERVED4_SHIFT 7
101a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
102a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 qe_self_seq;
103a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
104a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 qe_self_seq;
105a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
106a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
107a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RESERVED3 (0xF<<0)
108a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RESERVED3_SHIFT 0
109a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RAMROD_COMPLETION (0x1<<3) /* Everest only */
110a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RAMROD_COMPLETION_SHIFT 3
111a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_LAYER_CODE (0x7<<4)
112a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_LAYER_CODE_SHIFT 4
113a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RESERVED4 (0x1<<7)
114a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RESERVED4_SHIFT 7
115a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
116a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
117a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
118a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
119a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
120a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * L4 KCQ CQE PG upload
121a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
122a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kcq_upload_pg {
123a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 pg_cid;
124a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
125a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 pg_status;
126a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 pg_ipid_count;
127a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
128a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 pg_ipid_count;
129a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 pg_status;
130a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
131a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 reserved1[5];
132a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
133a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
134a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_RESERVED3 (0xF<<0)
135a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_RESERVED3_SHIFT 0
136a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_LAYER_CODE (0x7<<4)
137a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_LAYER_CODE_SHIFT 4
138a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_RESERVED4 (0x1<<7)
139a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_RESERVED4_SHIFT 7
140a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
141a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 qe_self_seq;
142a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
143a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 qe_self_seq;
144a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
145a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
146a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_RESERVED3 (0xF<<0)
147a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_RESERVED3_SHIFT 0
148a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_LAYER_CODE (0x7<<4)
149a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_LAYER_CODE_SHIFT 4
150a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_RESERVED4 (0x1<<7)
151a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_RESERVED4_SHIFT 7
152a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
153a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
154a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
155a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
156a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
157a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * Gracefully close the connection request
158a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
159a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kwq_close_req {
160a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
161a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
162a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_RESERVED1 (0xF<<0)
163a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_RESERVED1_SHIFT 0
164a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_LAYER_CODE (0x7<<4)
165a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_LAYER_CODE_SHIFT 4
166a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_LINKED_WITH_NEXT (0x1<<7)
167a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_LINKED_WITH_NEXT_SHIFT 7
168a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
169a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved0;
170a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
171a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved0;
172a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
173a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
174a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_RESERVED1 (0xF<<0)
175a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_RESERVED1_SHIFT 0
176a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_LAYER_CODE (0x7<<4)
177a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_LAYER_CODE_SHIFT 4
178a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_LINKED_WITH_NEXT (0x1<<7)
179a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_LINKED_WITH_NEXT_SHIFT 7
180a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
181a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 cid;
182a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 reserved2[6];
183a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
184a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
185a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
186a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
187a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * The first request to be passed in order to establish connection in option2
188a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
189a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kwq_connect_req1 {
190a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
191a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
192a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RESERVED1 (0xF<<0)
193a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RESERVED1_SHIFT 0
194a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_LAYER_CODE (0x7<<4)
195a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_LAYER_CODE_SHIFT 4
196a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_LINKED_WITH_NEXT (0x1<<7)
197a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_LINKED_WITH_NEXT_SHIFT 7
198a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
199a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 reserved0;
200a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 conn_flags;
201a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_IS_PG_HOST_OPAQUE (0x1<<0)
202a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_IS_PG_HOST_OPAQUE_SHIFT 0
203a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_IP_V6 (0x1<<1)
204a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_IP_V6_SHIFT 1
205a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_PASSIVE_FLAG (0x1<<2)
206a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_PASSIVE_FLAG_SHIFT 2
207a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RSRV (0x1F<<3)
208a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RSRV_SHIFT 3
209a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
210a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 conn_flags;
211a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_IS_PG_HOST_OPAQUE (0x1<<0)
212a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_IS_PG_HOST_OPAQUE_SHIFT 0
213a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_IP_V6 (0x1<<1)
214a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_IP_V6_SHIFT 1
215a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_PASSIVE_FLAG (0x1<<2)
216a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_PASSIVE_FLAG_SHIFT 2
217a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RSRV (0x1F<<3)
218a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RSRV_SHIFT 3
219a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 reserved0;
220a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
221a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
222a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RESERVED1 (0xF<<0)
223a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RESERVED1_SHIFT 0
224a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_LAYER_CODE (0x7<<4)
225a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_LAYER_CODE_SHIFT 4
226a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_LINKED_WITH_NEXT (0x1<<7)
227a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_LINKED_WITH_NEXT_SHIFT 7
228a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
229a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 cid;
230a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 pg_cid;
231a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 src_ip;
232a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 dst_ip;
233a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
234a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 dst_port;
235a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 src_port;
236a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
237a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 src_port;
238a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 dst_port;
239a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
240a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
241a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 rsrv1[3];
242a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 tcp_flags;
243a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_NO_DELAY_ACK (0x1<<0)
244a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_NO_DELAY_ACK_SHIFT 0
245a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_KEEP_ALIVE (0x1<<1)
246a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_KEEP_ALIVE_SHIFT 1
247a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_NAGLE_ENABLE (0x1<<2)
248a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_NAGLE_ENABLE_SHIFT 2
249a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_TIME_STAMP (0x1<<3)
250a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_TIME_STAMP_SHIFT 3
251a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_SACK (0x1<<4)
252a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_SACK_SHIFT 4
253a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_SEG_SCALING (0x1<<5)
254a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_SEG_SCALING_SHIFT 5
255a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RESERVED2 (0x3<<6)
256a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RESERVED2_SHIFT 6
257a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
258a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 tcp_flags;
259a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_NO_DELAY_ACK (0x1<<0)
260a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_NO_DELAY_ACK_SHIFT 0
261a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_KEEP_ALIVE (0x1<<1)
262a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_KEEP_ALIVE_SHIFT 1
263a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_NAGLE_ENABLE (0x1<<2)
264a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_NAGLE_ENABLE_SHIFT 2
265a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_TIME_STAMP (0x1<<3)
266a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_TIME_STAMP_SHIFT 3
267a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_SACK (0x1<<4)
268a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_SACK_SHIFT 4
269a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_SEG_SCALING (0x1<<5)
270a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_SEG_SCALING_SHIFT 5
271a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RESERVED2 (0x3<<6)
272a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RESERVED2_SHIFT 6
273a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 rsrv1[3];
274a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
275a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 rsrv2;
276a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
277a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
278a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
279a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
280a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * The second ( optional )request to be passed in order to establish
281a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * connection in option2 - for IPv6 only
282a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
283a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kwq_connect_req2 {
284a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
285a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
286a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_RESERVED1 (0xF<<0)
287a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_RESERVED1_SHIFT 0
288a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_LAYER_CODE (0x7<<4)
289a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_LAYER_CODE_SHIFT 4
290a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_LINKED_WITH_NEXT (0x1<<7)
291a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_LINKED_WITH_NEXT_SHIFT 7
292a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
293a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 reserved0;
294a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 rsrv;
295a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
296a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 rsrv;
297a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 reserved0;
298a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
299a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
300a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_RESERVED1 (0xF<<0)
301a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_RESERVED1_SHIFT 0
302a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_LAYER_CODE (0x7<<4)
303a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_LAYER_CODE_SHIFT 4
304a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_LINKED_WITH_NEXT (0x1<<7)
305a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_LINKED_WITH_NEXT_SHIFT 7
306a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
307a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 reserved2;
308a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 src_ip_v6_2;
309a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 src_ip_v6_3;
310a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 src_ip_v6_4;
311a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 dst_ip_v6_2;
312a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 dst_ip_v6_3;
313a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 dst_ip_v6_4;
314a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
315a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
316a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
317a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
318a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * The third ( and last )request to be passed in order to establish
319a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * connection in option2
320a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
321a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kwq_connect_req3 {
322a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
323a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
324a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_RESERVED1 (0xF<<0)
325a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_RESERVED1_SHIFT 0
326a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_LAYER_CODE (0x7<<4)
327a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_LAYER_CODE_SHIFT 4
328a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_LINKED_WITH_NEXT (0x1<<7)
329a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_LINKED_WITH_NEXT_SHIFT 7
330a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
331a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved0;
332a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
333a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved0;
334a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
335a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
336a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_RESERVED1 (0xF<<0)
337a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_RESERVED1_SHIFT 0
338a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_LAYER_CODE (0x7<<4)
339a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_LAYER_CODE_SHIFT 4
340a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_LINKED_WITH_NEXT (0x1<<7)
341a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_LINKED_WITH_NEXT_SHIFT 7
342a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
343a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 ka_timeout;
344a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 ka_interval ;
345a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
346a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 snd_seq_scale;
347a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 ttl;
348a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 tos;
349a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 ka_max_probe_count;
350a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
351a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 ka_max_probe_count;
352a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 tos;
353a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 ttl;
354a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 snd_seq_scale;
355a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
356a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
357a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 pmtu;
358a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 mss;
359a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
360a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 mss;
361a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 pmtu;
362a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
363a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 rcv_buf;
364a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 snd_buf;
365a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 seed;
366a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
367a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
368a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
369a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
370a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * a KWQE request to offload a PG connection
371a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
372a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kwq_offload_pg {
373a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
374a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
375a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_RESERVED1 (0xF<<0)
376a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_RESERVED1_SHIFT 0
377a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_LAYER_CODE (0x7<<4)
378a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_LAYER_CODE_SHIFT 4
379a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_LINKED_WITH_NEXT (0x1<<7)
380a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_LINKED_WITH_NEXT_SHIFT 7
381a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
382a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved0;
383a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
384a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved0;
385a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
386a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
387a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_RESERVED1 (0xF<<0)
388a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_RESERVED1_SHIFT 0
389a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_LAYER_CODE (0x7<<4)
390a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_LAYER_CODE_SHIFT 4
391a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_LINKED_WITH_NEXT (0x1<<7)
392a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_LINKED_WITH_NEXT_SHIFT 7
393a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
394a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
395a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 l2hdr_nbytes;
396a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 pg_flags;
397a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_SNAP_ENCAP (0x1<<0)
398a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_SNAP_ENCAP_SHIFT 0
399a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_VLAN_TAGGING (0x1<<1)
400a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_VLAN_TAGGING_SHIFT 1
401a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_RESERVED2 (0x3F<<2)
402a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_RESERVED2_SHIFT 2
403a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da0;
404a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da1;
405a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
406a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da1;
407a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da0;
408a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 pg_flags;
409a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_SNAP_ENCAP (0x1<<0)
410a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_SNAP_ENCAP_SHIFT 0
411a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_VLAN_TAGGING (0x1<<1)
412a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_VLAN_TAGGING_SHIFT 1
413a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_RESERVED2 (0x3F<<2)
414a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_RESERVED2_SHIFT 2
415a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 l2hdr_nbytes;
416a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
417a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
418a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da2;
419a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da3;
420a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da4;
421a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da5;
422a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
423a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da5;
424a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da4;
425a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da3;
426a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da2;
427a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
428a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
429a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa0;
430a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa1;
431a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa2;
432a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa3;
433a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
434a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa3;
435a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa2;
436a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa1;
437a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa0;
438a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
439a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
440a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa4;
441a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa5;
442a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 etype;
443a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
444a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 etype;
445a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa5;
446a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa4;
447a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
448a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
449a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 vlan_tag;
450a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 ipid_start;
451a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
452a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 ipid_start;
453a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 vlan_tag;
454a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
455a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
456a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 ipid_count;
457a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved3;
458a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
459a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved3;
460a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 ipid_count;
461a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
462a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 host_opaque;
463a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
464a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
465a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
466a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
467a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * Abortively close the connection request
468a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
469a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kwq_reset_req {
470a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
471a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
472a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_RESERVED1 (0xF<<0)
473a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_RESERVED1_SHIFT 0
474a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_LAYER_CODE (0x7<<4)
475a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_LAYER_CODE_SHIFT 4
476a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_LINKED_WITH_NEXT (0x1<<7)
477a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_LINKED_WITH_NEXT_SHIFT 7
478a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
479a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved0;
480a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
481a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved0;
482a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
483a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
484a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_RESERVED1 (0xF<<0)
485a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_RESERVED1_SHIFT 0
486a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_LAYER_CODE (0x7<<4)
487a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_LAYER_CODE_SHIFT 4
488a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_LINKED_WITH_NEXT (0x1<<7)
489a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_LINKED_WITH_NEXT_SHIFT 7
490a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
491a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 cid;
492a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 reserved2[6];
493a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
494a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
495a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
496a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
497a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * a KWQE request to update a PG connection
498a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
499a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kwq_update_pg {
500a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
501a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
502a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_RESERVED1 (0xF<<0)
503a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_RESERVED1_SHIFT 0
504a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_LAYER_CODE (0x7<<4)
505a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_LAYER_CODE_SHIFT 4
506a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_LINKED_WITH_NEXT (0x1<<7)
507a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_LINKED_WITH_NEXT_SHIFT 7
508a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 opcode;
509a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 oper16;
510a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
511a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 oper16;
512a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 opcode;
513a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
514a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_RESERVED1 (0xF<<0)
515a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_RESERVED1_SHIFT 0
516a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_LAYER_CODE (0x7<<4)
517a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_LAYER_CODE_SHIFT 4
518a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_LINKED_WITH_NEXT (0x1<<7)
519a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_LINKED_WITH_NEXT_SHIFT 7
520a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
521a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 pg_cid;
522a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 pg_host_opaque;
523a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
524a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 pg_valids;
525a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_VALIDS_IPID_COUNT (0x1<<0)
526a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_VALIDS_IPID_COUNT_SHIFT 0
527a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_VALIDS_DA (0x1<<1)
528a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_VALIDS_DA_SHIFT 1
529a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_RESERVERD2 (0x3F<<2)
530a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_RESERVERD2_SHIFT 2
531a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 pg_unused_a;
532a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 pg_ipid_count;
533a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
534a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 pg_ipid_count;
535a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 pg_unused_a;
536a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 pg_valids;
537a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_VALIDS_IPID_COUNT (0x1<<0)
538a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_VALIDS_IPID_COUNT_SHIFT 0
539a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_VALIDS_DA (0x1<<1)
540a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_VALIDS_DA_SHIFT 1
541a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_RESERVERD2 (0x3F<<2)
542a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_RESERVERD2_SHIFT 2
543a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
544a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
545a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserverd3;
546a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da0;
547a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da1;
548a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
549a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da1;
550a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da0;
551a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserverd3;
552a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
553a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
554a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da2;
555a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da3;
556a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da4;
557a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da5;
558a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
559a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da5;
560a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da4;
561a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da3;
562a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da2;
563a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
564a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 reserved4;
565a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 reserved5;
566a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
567a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
568a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
569a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
570a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * a KWQE request to upload a PG or L4 context
571a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
572a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kwq_upload {
573a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
574a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
575a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_RESERVED1 (0xF<<0)
576a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_RESERVED1_SHIFT 0
577a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_LAYER_CODE (0x7<<4)
578a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_LAYER_CODE_SHIFT 4
579a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_LINKED_WITH_NEXT (0x1<<7)
580a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_LINKED_WITH_NEXT_SHIFT 7
581a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 opcode;
582a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 oper16;
583a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
584a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 oper16;
585a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 opcode;
586a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
587a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_RESERVED1 (0xF<<0)
588a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_RESERVED1_SHIFT 0
589a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_LAYER_CODE (0x7<<4)
590a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_LAYER_CODE_SHIFT 4
591a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_LINKED_WITH_NEXT (0x1<<7)
592a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_LINKED_WITH_NEXT_SHIFT 7
593a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
594a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 cid;
595a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 reserved2[6];
596a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
597a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
598e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
599e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * bnx2x structures
600e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
601e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
602e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
603523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov * The iscsi aggregative context of Cstorm
604523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov */
605523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkovstruct cstorm_iscsi_ag_context {
606523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u32 agg_vars1;
607523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define CSTORM_ISCSI_AG_CONTEXT_STATE (0xFF<<0)
608523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define CSTORM_ISCSI_AG_CONTEXT_STATE_SHIFT 0
609523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<8)
610523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 8
611523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<9)
612523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 9
613523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<10)
614523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 10
615523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<11)
616523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 11
617523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_SE_CF_EN (0x1<<12)
618523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_SE_CF_EN_SHIFT 12
619523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_INV_CF_EN (0x1<<13)
620523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_INV_CF_EN_SHIFT 13
621619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF (0x3<<14)
622619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF_SHIFT 14
623523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED66 (0x3<<16)
624523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED66_SHIFT 16
625523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_FIN_RECEIVED_CF_EN (0x1<<18)
626523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_FIN_RECEIVED_CF_EN_SHIFT 18
627619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN (0x1<<19)
628619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN_SHIFT 19
629619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX2_CF_EN (0x1<<20)
630619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX2_CF_EN_SHIFT 20
631619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN (0x1<<21)
632619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN_SHIFT 21
633619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF_EN (0x1<<22)
634619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF_EN_SHIFT 22
635523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_REL_SEQ_RULE (0x7<<23)
636523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_REL_SEQ_RULE_SHIFT 23
637523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define CSTORM_ISCSI_AG_CONTEXT_HQ_PROD_RULE (0x3<<26)
638523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define CSTORM_ISCSI_AG_CONTEXT_HQ_PROD_RULE_SHIFT 26
639523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED52 (0x3<<28)
640523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED52_SHIFT 28
641523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED53 (0x3<<30)
642523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED53_SHIFT 30
643523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#if defined(__BIG_ENDIAN)
644523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __aux1_th;
645523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __aux1_val;
646523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 __agg_vars2;
647523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#elif defined(__LITTLE_ENDIAN)
648523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 __agg_vars2;
649523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __aux1_val;
650523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __aux1_th;
651523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#endif
652523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u32 rel_seq;
653523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u32 rel_seq_th;
654523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#if defined(__BIG_ENDIAN)
655523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 hq_cons;
656523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 hq_prod;
657523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#elif defined(__LITTLE_ENDIAN)
658523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 hq_prod;
659523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 hq_cons;
660523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#endif
661523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#if defined(__BIG_ENDIAN)
662523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __reserved62;
663523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __reserved61;
664523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __reserved60;
665523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __reserved59;
666523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#elif defined(__LITTLE_ENDIAN)
667523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __reserved59;
668523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __reserved60;
669523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __reserved61;
670523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __reserved62;
671523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#endif
672523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#if defined(__BIG_ENDIAN)
673523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 __reserved64;
674619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_u_prod;
675523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#elif defined(__LITTLE_ENDIAN)
676619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_u_prod;
677523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 __reserved64;
678523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#endif
679523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u32 __cq_u_prod1;
680523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#if defined(__BIG_ENDIAN)
681523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 __agg_vars3;
682619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_u_pend;
683523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#elif defined(__LITTLE_ENDIAN)
684619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_u_pend;
685523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 __agg_vars3;
686523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#endif
687523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#if defined(__BIG_ENDIAN)
688e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __aux2_th;
689619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 aux2_val;
690e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
691619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 aux2_val;
692e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __aux2_th;
693e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
694e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
695e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
696e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
697619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The fcoe extra aggregative context section of Tstorm
698e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
699619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct tstorm_fcoe_extra_ag_context_section {
700619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __agg_val1;
701e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
702619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars2;
703619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val3;
704619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val2;
705e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
706619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val2;
707619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val3;
708619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars2;
709e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
710e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
711619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val5;
712619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val6;
713619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars3;
714e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
715619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars3;
716619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val6;
717619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val5;
718e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
719619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __lcq_prod;
720619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rtt_seq;
721619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rtt_time;
722619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __reserved66;
723619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 wnd_right_edge;
724619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 tcp_agg_vars1;
725619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_FIN_SENT_FLAG (0x1<<0)
726619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT 0
727619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG (0x1<<1)
728619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG_SHIFT 1
729619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF (0x3<<2)
730619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF_SHIFT 2
731619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF (0x3<<4)
732619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF_SHIFT 4
733619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF_EN (0x1<<6)
734619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF_EN_SHIFT 6
735619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF_EN (0x1<<7)
736619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF_EN_SHIFT 7
737619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN (0x1<<8)
738619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN_SHIFT 8
739619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LCQ_SND_EN (0x1<<9)
740619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LCQ_SND_EN_SHIFT 9
741619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<10)
742619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 10
743619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_FLAG (0x1<<11)
744619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_FLAG_SHIFT 11
745619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF_EN (0x1<<12)
746619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF_EN_SHIFT 12
747619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF_EN (0x1<<13)
748619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF_EN_SHIFT 13
749619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF (0x3<<14)
750619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF_SHIFT 14
751619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF (0x3<<16)
752619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF_SHIFT 16
753619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_BLOCKED (0x1<<18)
754619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_BLOCKED_SHIFT 18
755619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX10_CF_EN (0x1<<19)
756619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT 19
757619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX11_CF_EN (0x1<<20)
758619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX11_CF_EN_SHIFT 20
759619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX12_CF_EN (0x1<<21)
760619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX12_CF_EN_SHIFT 21
761619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED1 (0x3<<22)
762619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED1_SHIFT 22
763619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ (0xF<<24)
764619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ_SHIFT 24
765619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ (0xF<<28)
766619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ_SHIFT 28
767619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 snd_max;
768619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __lcq_cons;
769619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __reserved2;
770619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
771619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
772619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
773619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The fcoe aggregative context of Tstorm
774619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
775619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct tstorm_fcoe_ag_context {
776e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
777619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 ulp_credit;
778619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
779619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
780619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
781619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
782619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
783619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
784619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
785619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
786619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
787619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF (0x3<<4)
788619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_SHIFT 4
789619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG (0x1<<6)
790619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG_SHIFT 6
791619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG (0x1<<7)
792619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG_SHIFT 7
793619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
794e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
795619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
796619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
797619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
798619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
799619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
800619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
801619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
802619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
803619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
804619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
805619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF (0x3<<4)
806619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_SHIFT 4
807619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG (0x1<<6)
808619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG_SHIFT 6
809619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG (0x1<<7)
810619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG_SHIFT 7
811619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 ulp_credit;
812e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
813e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
814619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val4;
815619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars2;
816619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG (0x1<<0)
817619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG_SHIFT 0
818619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG (0x1<<1)
819619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG_SHIFT 1
820619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF (0x3<<2)
821619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF_SHIFT 2
822619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF (0x3<<4)
823619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF_SHIFT 4
824619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF (0x3<<6)
825619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF_SHIFT 6
826619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF (0x3<<8)
827619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF_SHIFT 8
828619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG (0x1<<10)
829619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG_SHIFT 10
830619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN (0x1<<11)
831619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN_SHIFT 11
832619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN (0x1<<12)
833619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN_SHIFT 12
834619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN (0x1<<13)
835619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN_SHIFT 13
836619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN (0x1<<14)
837619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN_SHIFT 14
838619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN (0x1<<15)
839619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN_SHIFT 15
840e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
841619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars2;
842619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG (0x1<<0)
843619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG_SHIFT 0
844619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG (0x1<<1)
845619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG_SHIFT 1
846619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF (0x3<<2)
847619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF_SHIFT 2
848619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF (0x3<<4)
849619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF_SHIFT 4
850619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF (0x3<<6)
851619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF_SHIFT 6
852619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF (0x3<<8)
853619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF_SHIFT 8
854619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG (0x1<<10)
855619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG_SHIFT 10
856619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN (0x1<<11)
857619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN_SHIFT 11
858619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN (0x1<<12)
859619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN_SHIFT 12
860619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN (0x1<<13)
861619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN_SHIFT 13
862619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN (0x1<<14)
863619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN_SHIFT 14
864619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN (0x1<<15)
865619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN_SHIFT 15
866619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val4;
867e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
868619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct tstorm_fcoe_extra_ag_context_section __extra_section;
869e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
870e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
871e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
872e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
873e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
874619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The tcp aggregative context section of Tstorm
875e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
876619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct tstorm_tcp_tcp_ag_context_section {
877619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __agg_val1;
878e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
879619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars2;
880619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val3;
881619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val2;
882e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
883619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val2;
884619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val3;
885619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars2;
886e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
887e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
888619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val5;
889619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val6;
890619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars3;
891e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
892619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars3;
893619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val6;
894619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val5;
895e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
896619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 snd_nxt;
897619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rtt_seq;
898619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rtt_time;
899619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __reserved66;
900619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 wnd_right_edge;
901619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 tcp_agg_vars1;
902619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG (0x1<<0)
903619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT 0
904619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG (0x1<<1)
905619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG_SHIFT 1
906619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF (0x3<<2)
907619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_SHIFT 2
908619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF (0x3<<4)
909619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_SHIFT 4
910619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_EN (0x1<<6)
911619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_EN_SHIFT 6
912619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN (0x1<<7)
913619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN_SHIFT 7
914619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN (0x1<<8)
915619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN_SHIFT 8
916619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_SND_NXT_EN (0x1<<9)
917619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_SND_NXT_EN_SHIFT 9
918619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<10)
919619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 10
920619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_FLAG (0x1<<11)
921619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_FLAG_SHIFT 11
922619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF_EN (0x1<<12)
923619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF_EN_SHIFT 12
924619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF_EN (0x1<<13)
925619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF_EN_SHIFT 13
926619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF (0x3<<14)
927619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF_SHIFT 14
928619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF (0x3<<16)
929619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF_SHIFT 16
930619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_BLOCKED (0x1<<18)
931619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_BLOCKED_SHIFT 18
932619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN (0x1<<19)
933619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT 19
934619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN (0x1<<20)
935619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN_SHIFT 20
936619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN (0x1<<21)
937619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN_SHIFT 21
938619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED1 (0x3<<22)
939619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED1_SHIFT 22
940619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ (0xF<<24)
941619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ_SHIFT 24
942619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ (0xF<<28)
943619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ_SHIFT 28
944619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 snd_max;
945619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 snd_una;
946619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __reserved2;
947e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
948e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
949619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
950619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The iscsi aggregative context of Tstorm
951619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
952619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct tstorm_iscsi_ag_context {
953e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
954619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 ulp_credit;
955619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
956619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
957619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
958619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
959619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
960619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
961619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
962619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
963619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
964619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF (0x3<<4)
965619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_SHIFT 4
966619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG (0x1<<6)
967619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG_SHIFT 6
968619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG (0x1<<7)
969619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG_SHIFT 7
970619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
971e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
972619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
973619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
974619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
975619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
976619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
977619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
978619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
979619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
980619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
981619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
982619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF (0x3<<4)
983619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_SHIFT 4
984619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG (0x1<<6)
985619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG_SHIFT 6
986619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG (0x1<<7)
987619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG_SHIFT 7
988619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 ulp_credit;
989619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
990619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
991619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val4;
992619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars2;
993619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG (0x1<<0)
994619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG_SHIFT 0
995619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG (0x1<<1)
996619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG_SHIFT 1
997619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF (0x3<<2)
998619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_SHIFT 2
999619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF (0x3<<4)
1000619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_SHIFT 4
1001619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF (0x3<<6)
1002619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_SHIFT 6
1003619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF (0x3<<8)
1004619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_SHIFT 8
1005619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG (0x1<<10)
1006619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG_SHIFT 10
1007619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<11)
1008619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 11
1009619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN (0x1<<12)
1010619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN_SHIFT 12
1011619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN (0x1<<13)
1012619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN_SHIFT 13
1013619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN (0x1<<14)
1014619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN_SHIFT 14
1015619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN (0x1<<15)
1016619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN_SHIFT 15
1017619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
1018619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars2;
1019619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG (0x1<<0)
1020619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG_SHIFT 0
1021619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG (0x1<<1)
1022619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG_SHIFT 1
1023619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF (0x3<<2)
1024619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_SHIFT 2
1025619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF (0x3<<4)
1026619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_SHIFT 4
1027619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF (0x3<<6)
1028619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_SHIFT 6
1029619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF (0x3<<8)
1030619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_SHIFT 8
1031619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG (0x1<<10)
1032619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG_SHIFT 10
1033619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<11)
1034619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 11
1035619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN (0x1<<12)
1036619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN_SHIFT 12
1037619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN (0x1<<13)
1038619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN_SHIFT 13
1039619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN (0x1<<14)
1040619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN_SHIFT 14
1041619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN (0x1<<15)
1042619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN_SHIFT 15
1043619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val4;
1044e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1045619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct tstorm_tcp_tcp_ag_context_section tcp;
1046e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
1047e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1048e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1049619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
1050619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
1051619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The fcoe aggregative context of Ustorm
1052619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
1053619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_fcoe_ag_context {
1054e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1055619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __aux_counter_flags;
1056619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars2;
1057619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_TX_CF (0x3<<0)
1058619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_TX_CF_SHIFT 0
1059619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF (0x3<<2)
1060619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_SHIFT 2
1061619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE (0x7<<4)
1062619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE_SHIFT 4
1063619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK (0x1<<7)
1064619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK_SHIFT 7
1065619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
1066619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1067619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1068619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1069619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1070619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
1071619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
1072619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
1073619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
1074619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_INV_CF (0x3<<4)
1075619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_INV_CF_SHIFT 4
1076619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF (0x3<<6)
1077619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_SHIFT 6
1078619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
1079e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1080619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
1081619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
1082619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1083619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1084619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1085619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1086619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
1087619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
1088619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
1089619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
1090619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_INV_CF (0x3<<4)
1091619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_INV_CF_SHIFT 4
1092619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF (0x3<<6)
1093619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_SHIFT 6
1094619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars2;
1095619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_TX_CF (0x3<<0)
1096619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_TX_CF_SHIFT 0
1097619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF (0x3<<2)
1098619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_SHIFT 2
1099619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE (0x7<<4)
1100619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE_SHIFT 4
1101619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK (0x1<<7)
1102619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK_SHIFT 7
1103619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __aux_counter_flags;
1104e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1105e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1106619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cdu_usage;
1107619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_misc2;
1108619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_tx_seq_ack;
1109e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1110619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_tx_seq_ack;
1111619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_misc2;
1112619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cdu_usage;
1113e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1114619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 agg_misc4;
1115e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1116619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3_th;
1117619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3;
1118619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_misc3;
1119e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1120619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_misc3;
1121619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3;
1122619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3_th;
1123e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1124619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 expired_task_id;
1125619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 agg_misc4_th;
1126e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1127619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_prod;
1128619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_cons;
1129e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1130619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_cons;
1131619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_prod;
1132e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1133e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1134619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __reserved2;
1135619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 decision_rules;
1136619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE (0x7<<0)
1137619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE_SHIFT 0
1138619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
1139619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
1140619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG (0x1<<6)
1141619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG_SHIFT 6
1142619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_RESERVED1 (0x1<<7)
1143619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_RESERVED1_SHIFT 7
1144619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 decision_rule_enable_bits;
1145619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN (0x1<<0)
1146619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN_SHIFT 0
1147619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN (0x1<<1)
1148619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN_SHIFT 1
1149619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_TX_CF_EN (0x1<<2)
1150619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_TX_CF_EN_SHIFT 2
1151619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN (0x1<<3)
1152619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN_SHIFT 3
1153619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN (0x1<<4)
1154619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT 4
1155619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN (0x1<<5)
1156619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN_SHIFT 5
1157619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN (0x1<<6)
1158619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN_SHIFT 6
1159619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN (0x1<<7)
1160619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT 7
1161e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1162619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 decision_rule_enable_bits;
1163619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN (0x1<<0)
1164619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN_SHIFT 0
1165619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN (0x1<<1)
1166619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN_SHIFT 1
1167619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_TX_CF_EN (0x1<<2)
1168619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_TX_CF_EN_SHIFT 2
1169619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN (0x1<<3)
1170619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN_SHIFT 3
1171619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN (0x1<<4)
1172619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT 4
1173619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN (0x1<<5)
1174619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN_SHIFT 5
1175619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN (0x1<<6)
1176619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN_SHIFT 6
1177619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN (0x1<<7)
1178619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT 7
1179619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 decision_rules;
1180619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE (0x7<<0)
1181619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE_SHIFT 0
1182619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
1183619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
1184619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG (0x1<<6)
1185619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG_SHIFT 6
1186619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_RESERVED1 (0x1<<7)
1187619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_RESERVED1_SHIFT 7
1188619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __reserved2;
1189e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1190e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
1191e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1192e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1193e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
1194619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The iscsi aggregative context of Ustorm
1195e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
1196619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_iscsi_ag_context {
1197e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1198619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __aux_counter_flags;
1199619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars2;
1200619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_TX_CF (0x3<<0)
1201619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_TX_CF_SHIFT 0
1202619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF (0x3<<2)
1203619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_SHIFT 2
1204619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE (0x7<<4)
1205619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE_SHIFT 4
1206619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK (0x1<<7)
1207619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK_SHIFT 7
1208619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
1209619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1210619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1211619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1212619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1213619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
1214619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
1215619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
1216619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
1217619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_INV_CF (0x3<<4)
1218619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_INV_CF_SHIFT 4
1219619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF (0x3<<6)
1220619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_SHIFT 6
1221619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
1222e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1223619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
1224619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
1225619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1226619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1227619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1228619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1229619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
1230619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
1231619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
1232619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
1233619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_INV_CF (0x3<<4)
1234619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_INV_CF_SHIFT 4
1235619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF (0x3<<6)
1236619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_SHIFT 6
1237619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars2;
1238619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_TX_CF (0x3<<0)
1239619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_TX_CF_SHIFT 0
1240619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF (0x3<<2)
1241619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_SHIFT 2
1242619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE (0x7<<4)
1243619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE_SHIFT 4
1244619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK (0x1<<7)
1245619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK_SHIFT 7
1246619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __aux_counter_flags;
1247e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1248e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1249619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cdu_usage;
1250619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_misc2;
1251619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __cq_local_comp_itt_val;
1252e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1253619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __cq_local_comp_itt_val;
1254619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_misc2;
1255619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cdu_usage;
1256e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1257619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 agg_misc4;
1258e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1259619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3_th;
1260619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3;
1261619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_misc3;
1262e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1263619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_misc3;
1264619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3;
1265619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3_th;
1266e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1267619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 agg_val1;
1268619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 agg_misc4_th;
1269e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1270619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val2_th;
1271619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val2;
1272e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1273619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val2;
1274619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val2_th;
1275e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1276e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1277619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __reserved2;
1278619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 decision_rules;
1279619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE (0x7<<0)
1280619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE_SHIFT 0
1281619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
1282619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
1283619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG (0x1<<6)
1284619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG_SHIFT 6
1285619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_RESERVED1 (0x1<<7)
1286619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_RESERVED1_SHIFT 7
1287619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 decision_rule_enable_bits;
1288619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN (0x1<<0)
1289619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN_SHIFT 0
1290619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN (0x1<<1)
1291619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN_SHIFT 1
1292619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN (0x1<<2)
1293619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN_SHIFT 2
1294619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN (0x1<<3)
1295619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN_SHIFT 3
1296619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN (0x1<<4)
1297619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN_SHIFT 4
1298619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<5)
1299619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 5
1300619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN (0x1<<6)
1301619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN_SHIFT 6
1302619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN (0x1<<7)
1303619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT 7
1304e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1305619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 decision_rule_enable_bits;
1306619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN (0x1<<0)
1307619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN_SHIFT 0
1308619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN (0x1<<1)
1309619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN_SHIFT 1
1310619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN (0x1<<2)
1311619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN_SHIFT 2
1312619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN (0x1<<3)
1313619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN_SHIFT 3
1314619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN (0x1<<4)
1315619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN_SHIFT 4
1316619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<5)
1317619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 5
1318619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN (0x1<<6)
1319619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN_SHIFT 6
1320619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN (0x1<<7)
1321619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT 7
1322619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 decision_rules;
1323619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE (0x7<<0)
1324619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE_SHIFT 0
1325619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
1326619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
1327619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG (0x1<<6)
1328619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG_SHIFT 6
1329619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_RESERVED1 (0x1<<7)
1330619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_RESERVED1_SHIFT 7
1331619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __reserved2;
1332e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1333e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
1334e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1335e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1336e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
1337e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan * The fcoe aggregative context section of Xstorm
1338e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
1339e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chanstruct xstorm_fcoe_extra_ag_context_section {
1340e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1341e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 tcp_agg_vars1;
1342e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51 (0x3<<0)
1343e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51_SHIFT 0
1344e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED (0x3<<2)
1345e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT 2
1346619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF (0x3<<4)
1347619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT 4
1348e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN (0x1<<6)
1349e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN_SHIFT 6
1350e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG (0x1<<7)
1351e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG_SHIFT 7
1352e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __reserved_da_cnt;
1353e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __mtu;
1354e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1355e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __mtu;
1356e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __reserved_da_cnt;
1357e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 tcp_agg_vars1;
1358e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51 (0x3<<0)
1359e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51_SHIFT 0
1360e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED (0x3<<2)
1361e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT 2
1362619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF (0x3<<4)
1363619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT 4
1364e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN (0x1<<6)
1365e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN_SHIFT 6
1366e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG (0x1<<7)
1367e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG_SHIFT 7
1368e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1369619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 snd_nxt;
1370e65de0716f4fb72b09fb37f603b71f4eabe18322Michael Chan	u32 __xfrqe_bd_addr_lo;
1371e65de0716f4fb72b09fb37f603b71f4eabe18322Michael Chan	u32 __xfrqe_bd_addr_hi;
1372e65de0716f4fb72b09fb37f603b71f4eabe18322Michael Chan	u32 __xfrqe_data1;
1373e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1374e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __agg_val8_th;
1375619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tx_dest;
1376e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 tcp_agg_vars2;
1377e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57 (0x1<<0)
1378e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57_SHIFT 0
1379e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58 (0x1<<1)
1380e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58_SHIFT 1
1381e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59 (0x1<<2)
1382e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59_SHIFT 2
1383e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG (0x1<<3)
1384e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT 3
1385e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX4_FLAG (0x1<<4)
1386e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT 4
1387e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED60 (0x1<<5)
1388e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED60_SHIFT 5
1389e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_ACK_TO_FE_UPDATED_EN (0x1<<6)
1390e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_ACK_TO_FE_UPDATED_EN_SHIFT 6
1391619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN (0x1<<7)
1392619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT 7
1393e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_TX_FIN_FLAG_EN (0x1<<8)
1394e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_TX_FIN_FLAG_EN_SHIFT 8
1395e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<9)
1396e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 9
1397e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SET_RTO_CF (0x3<<10)
1398e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT 10
1399e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF (0x3<<12)
1400e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT 12
1401619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF (0x3<<14)
1402619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT 14
1403e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1404e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 tcp_agg_vars2;
1405e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57 (0x1<<0)
1406e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57_SHIFT 0
1407e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58 (0x1<<1)
1408e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58_SHIFT 1
1409e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59 (0x1<<2)
1410e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59_SHIFT 2
1411e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG (0x1<<3)
1412e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT 3
1413e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX4_FLAG (0x1<<4)
1414e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT 4
1415e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED60 (0x1<<5)
1416e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED60_SHIFT 5
1417e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_ACK_TO_FE_UPDATED_EN (0x1<<6)
1418e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_ACK_TO_FE_UPDATED_EN_SHIFT 6
1419619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN (0x1<<7)
1420619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT 7
1421e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_TX_FIN_FLAG_EN (0x1<<8)
1422e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_TX_FIN_FLAG_EN_SHIFT 8
1423e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<9)
1424e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 9
1425e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SET_RTO_CF (0x3<<10)
1426e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT 10
1427e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF (0x3<<12)
1428e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT 12
1429619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF (0x3<<14)
1430619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT 14
1431619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tx_dest;
1432e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __agg_val8_th;
1433e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1434e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 __sq_base_addr_lo;
1435e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 __sq_base_addr_hi;
1436e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 __xfrq_base_addr_lo;
1437e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 __xfrq_base_addr_hi;
1438e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1439e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __xfrq_cons;
1440e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __xfrq_prod;
1441e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1442e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __xfrq_prod;
1443e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __xfrq_cons;
1444e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1445e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1446e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __tcp_agg_vars5;
1447e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __tcp_agg_vars4;
1448e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __tcp_agg_vars3;
1449e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __reserved_force_pure_ack_cnt;
1450e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1451e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __reserved_force_pure_ack_cnt;
1452e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __tcp_agg_vars3;
1453e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __tcp_agg_vars4;
1454e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __tcp_agg_vars5;
1455e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1456e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 __tcp_agg_vars6;
1457e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1458e65de0716f4fb72b09fb37f603b71f4eabe18322Michael Chan	u16 __xfrqe_mng;
1459e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __tcp_agg_vars7;
1460e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1461e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __tcp_agg_vars7;
1462e65de0716f4fb72b09fb37f603b71f4eabe18322Michael Chan	u16 __xfrqe_mng;
1463e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1464e65de0716f4fb72b09fb37f603b71f4eabe18322Michael Chan	u32 __xfrqe_data0;
1465e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 __agg_val10_th;
1466e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1467e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __reserved3;
1468e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __reserved2;
1469e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __da_only_cnt;
1470e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1471e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __da_only_cnt;
1472e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __reserved2;
1473e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __reserved3;
1474e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1475e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
1476e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1477e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
1478e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan * The fcoe aggregative context of Xstorm
1479e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
1480e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chanstruct xstorm_fcoe_ag_context {
1481e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1482e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 agg_val1;
1483e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars1;
1484e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1485e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1486e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1487e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1488e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED51 (0x1<<2)
1489e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED51_SHIFT 2
1490e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED52 (0x1<<3)
1491e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED52_SHIFT 3
1492e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
1493e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
1494e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_NAGLE_EN (0x1<<5)
1495e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_NAGLE_EN_SHIFT 5
1496e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG (0x1<<6)
1497e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT 6
1498e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED_UNA_GT_NXT_EN (0x1<<7)
1499e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED_UNA_GT_NXT_EN_SHIFT 7
1500e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __state;
1501e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1502e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __state;
1503e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars1;
1504e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1505e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1506e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1507e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1508e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED51 (0x1<<2)
1509e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED51_SHIFT 2
1510e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED52 (0x1<<3)
1511e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED52_SHIFT 3
1512e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
1513e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
1514e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_NAGLE_EN (0x1<<5)
1515e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_NAGLE_EN_SHIFT 5
1516e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG (0x1<<6)
1517e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT 6
1518e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED_UNA_GT_NXT_EN (0x1<<7)
1519e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED_UNA_GT_NXT_EN_SHIFT 7
1520e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 agg_val1;
1521e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1522e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1523e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 cdu_reserved;
1524e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __agg_vars4;
1525e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars3;
1526e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
1527e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
1528e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX19_CF (0x3<<6)
1529e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX19_CF_SHIFT 6
1530e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars2;
1531e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF (0x3<<0)
1532e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_SHIFT 0
1533e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_EN (0x1<<2)
1534e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT 2
1535e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX8_FLAG (0x1<<3)
1536e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX8_FLAG_SHIFT 3
1537e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX9_FLAG (0x1<<4)
1538e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX9_FLAG_SHIFT 4
1539e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE1 (0x3<<5)
1540e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE1_SHIFT 5
1541e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_EN (0x1<<7)
1542e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT 7
1543e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1544e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars2;
1545e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF (0x3<<0)
1546e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_SHIFT 0
1547e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_EN (0x1<<2)
1548e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT 2
1549e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX8_FLAG (0x1<<3)
1550e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX8_FLAG_SHIFT 3
1551e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX9_FLAG (0x1<<4)
1552e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX9_FLAG_SHIFT 4
1553e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE1 (0x3<<5)
1554e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE1_SHIFT 5
1555e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_EN (0x1<<7)
1556e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT 7
1557e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars3;
1558e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
1559e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
1560e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX19_CF (0x3<<6)
1561e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX19_CF_SHIFT 6
1562e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __agg_vars4;
1563e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 cdu_reserved;
1564e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1565e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 more_to_send;
1566e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1567e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 agg_vars5;
1568e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE5 (0x3<<0)
1569e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE5_SHIFT 0
1570e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
1571e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
1572e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
1573e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
1574e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_CONFQ_DEC_RULE (0x3<<14)
1575e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_CONFQ_DEC_RULE_SHIFT 14
1576e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 sq_cons;
1577e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1578e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 sq_cons;
1579e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 agg_vars5;
1580e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE5 (0x3<<0)
1581e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE5_SHIFT 0
1582e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
1583e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
1584e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
1585e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
1586e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_CONFQ_DEC_RULE (0x3<<14)
1587e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_CONFQ_DEC_RULE_SHIFT 14
1588e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1589e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	struct xstorm_fcoe_extra_ag_context_section __extra_section;
1590e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1591e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 agg_vars7;
1592e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AGG_VAL11_DECISION_RULE (0x7<<0)
1593e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT 0
1594e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX13_FLAG (0x1<<3)
1595e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX13_FLAG_SHIFT 3
1596e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_QUEUE0_CF (0x3<<4)
1597e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_QUEUE0_CF_SHIFT 4
1598e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE3 (0x3<<6)
1599e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE3_SHIFT 6
1600e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_AUX1_CF (0x3<<8)
1601e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_AUX1_CF_SHIFT 8
1602e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED62 (0x1<<10)
1603e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED62_SHIFT 10
1604e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX1_CF_EN (0x1<<11)
1605e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT 11
1606e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX10_FLAG (0x1<<12)
1607e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX10_FLAG_SHIFT 12
1608e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX11_FLAG (0x1<<13)
1609e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX11_FLAG_SHIFT 13
1610e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX12_FLAG (0x1<<14)
1611e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX12_FLAG_SHIFT 14
1612e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX2_FLAG (0x1<<15)
1613e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX2_FLAG_SHIFT 15
1614e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val3_th;
1615e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars6;
1616e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE6 (0x7<<0)
1617e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE6_SHIFT 0
1618e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_XFRQ_DEC_RULE (0x7<<3)
1619e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_XFRQ_DEC_RULE_SHIFT 3
1620e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_SQ_DEC_RULE (0x3<<6)
1621e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_SQ_DEC_RULE_SHIFT 6
1622e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1623e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars6;
1624e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE6 (0x7<<0)
1625e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE6_SHIFT 0
1626e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_XFRQ_DEC_RULE (0x7<<3)
1627e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_XFRQ_DEC_RULE_SHIFT 3
1628e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_SQ_DEC_RULE (0x3<<6)
1629e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_SQ_DEC_RULE_SHIFT 6
1630e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val3_th;
1631e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 agg_vars7;
1632e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AGG_VAL11_DECISION_RULE (0x7<<0)
1633e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT 0
1634e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX13_FLAG (0x1<<3)
1635e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX13_FLAG_SHIFT 3
1636e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_QUEUE0_CF (0x3<<4)
1637e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_QUEUE0_CF_SHIFT 4
1638e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE3 (0x3<<6)
1639e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE3_SHIFT 6
1640e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_AUX1_CF (0x3<<8)
1641e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_AUX1_CF_SHIFT 8
1642e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED62 (0x1<<10)
1643e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED62_SHIFT 10
1644e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX1_CF_EN (0x1<<11)
1645e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT 11
1646e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX10_FLAG (0x1<<12)
1647e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX10_FLAG_SHIFT 12
1648e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX11_FLAG (0x1<<13)
1649e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX11_FLAG_SHIFT 13
1650e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX12_FLAG (0x1<<14)
1651e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX12_FLAG_SHIFT 14
1652e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX2_FLAG (0x1<<15)
1653e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX2_FLAG_SHIFT 15
1654e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1655e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1656e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __agg_val11_th;
1657e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __agg_val11;
1658e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1659e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __agg_val11;
1660e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __agg_val11_th;
1661e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1662e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1663e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __reserved1;
1664e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __agg_val6_th;
1665619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val9;
1666e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1667619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val9;
1668e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __agg_val6_th;
1669e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __reserved1;
1670e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1671e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1672e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 confq_cons;
1673e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 confq_prod;
1674e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1675e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 confq_prod;
1676e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 confq_cons;
1677e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1678e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 agg_vars8;
1679619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_AG_CONTEXT_AGG_MISC2 (0xFFFFFF<<0)
1680619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_AG_CONTEXT_AGG_MISC2_SHIFT 0
1681e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_AGG_MISC3 (0xFF<<24)
1682e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_AGG_MISC3_SHIFT 24
1683e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1684e65de0716f4fb72b09fb37f603b71f4eabe18322Michael Chan	u16 __cache_wqe_db;
1685e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 sq_prod;
1686e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1687e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 sq_prod;
1688e65de0716f4fb72b09fb37f603b71f4eabe18322Michael Chan	u16 __cache_wqe_db;
1689e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1690e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1691e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val3;
1692e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val6;
1693e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val5_th;
1694e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val5;
1695e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1696e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val5;
1697e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val5_th;
1698e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val6;
1699e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val3;
1700e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1701e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1702619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_misc1;
1703e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 agg_limit1;
1704e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1705e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 agg_limit1;
1706619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_misc1;
1707e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1708e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 completion_seq;
1709e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 confq_pbl_base_lo;
1710e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 confq_pbl_base_hi;
1711e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
1712e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1713619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
1714619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
1715e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
1716619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The tcp aggregative context section of Xstorm
1717e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
1718619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_tcp_tcp_ag_context_section {
1719e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1720619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tcp_agg_vars1;
1721619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF (0x3<<0)
1722619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF_SHIFT 0
1723619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED (0x3<<2)
1724619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT 2
1725619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF (0x3<<4)
1726619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT 4
1727619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN (0x1<<6)
1728619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN_SHIFT 6
1729619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG (0x1<<7)
1730619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG_SHIFT 7
1731619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __da_cnt;
1732619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 mss;
1733e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1734619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 mss;
1735619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __da_cnt;
1736619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tcp_agg_vars1;
1737619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF (0x3<<0)
1738619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF_SHIFT 0
1739619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED (0x3<<2)
1740619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT 2
1741619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF (0x3<<4)
1742619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT 4
1743619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN (0x1<<6)
1744619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN_SHIFT 6
1745619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG (0x1<<7)
1746619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG_SHIFT 7
1747e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1748619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 snd_nxt;
1749619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 tx_wnd;
1750619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 snd_una;
1751619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 local_adv_wnd;
1752e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1753619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val8_th;
1754619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tx_dest;
1755619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tcp_agg_vars2;
1756619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG (0x1<<0)
1757619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_SHIFT 0
1758619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED (0x1<<1)
1759619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED_SHIFT 1
1760619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE (0x1<<2)
1761619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE_SHIFT 2
1762619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX3_FLAG (0x1<<3)
1763619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT 3
1764619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX4_FLAG (0x1<<4)
1765619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT 4
1766619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_ENABLE (0x1<<5)
1767619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_ENABLE_SHIFT 5
1768619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN (0x1<<6)
1769619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN_SHIFT 6
1770619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN (0x1<<7)
1771619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT 7
1772619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN (0x1<<8)
1773619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN_SHIFT 8
1774619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<9)
1775619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 9
1776619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_RTO_CF (0x3<<10)
1777619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT 10
1778619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF (0x3<<12)
1779619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT 12
1780619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF (0x3<<14)
1781619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT 14
1782e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1783619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tcp_agg_vars2;
1784619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG (0x1<<0)
1785619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_SHIFT 0
1786619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED (0x1<<1)
1787619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED_SHIFT 1
1788619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE (0x1<<2)
1789619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE_SHIFT 2
1790619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX3_FLAG (0x1<<3)
1791619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT 3
1792619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX4_FLAG (0x1<<4)
1793619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT 4
1794619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_ENABLE (0x1<<5)
1795619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_ENABLE_SHIFT 5
1796619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN (0x1<<6)
1797619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN_SHIFT 6
1798619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN (0x1<<7)
1799619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT 7
1800619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN (0x1<<8)
1801619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN_SHIFT 8
1802619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<9)
1803619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 9
1804619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_RTO_CF (0x3<<10)
1805619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT 10
1806619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF (0x3<<12)
1807619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT 12
1808619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF (0x3<<14)
1809619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT 14
1810619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tx_dest;
1811619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val8_th;
1812e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1813619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ack_to_far_end;
1814619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rto_timer;
1815619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ka_timer;
1816619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ts_to_echo;
1817e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1818619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val7_th;
1819619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val7;
1820e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1821619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val7;
1822619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val7_th;
1823e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1824e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1825619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars5;
1826619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars4;
1827619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars3;
1828619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __force_pure_ack_cnt;
1829e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1830619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __force_pure_ack_cnt;
1831619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars3;
1832619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars4;
1833619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars5;
1834619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
1835619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 tcp_agg_vars6;
1836619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_CF_EN (0x1<<0)
1837619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_CF_EN_SHIFT 0
1838619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_EN (0x1<<1)
1839619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_EN_SHIFT 1
1840619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX9_CF_EN (0x1<<2)
1841619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX9_CF_EN_SHIFT 2
1842619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN (0x1<<3)
1843619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT 3
1844619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX6_FLAG (0x1<<4)
1845619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX6_FLAG_SHIFT 4
1846619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX7_FLAG (0x1<<5)
1847619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX7_FLAG_SHIFT 5
1848619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX5_CF (0x3<<6)
1849619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX5_CF_SHIFT 6
1850619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX9_CF (0x3<<8)
1851619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX9_CF_SHIFT 8
1852619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF (0x3<<10)
1853619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_SHIFT 10
1854619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF (0x3<<12)
1855619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF_SHIFT 12
1856619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF (0x3<<14)
1857619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF_SHIFT 14
1858619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX13_CF (0x3<<16)
1859619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX13_CF_SHIFT 16
1860619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX14_CF (0x3<<18)
1861619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX14_CF_SHIFT 18
1862619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX15_CF (0x3<<20)
1863619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX15_CF_SHIFT 20
1864619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX16_CF (0x3<<22)
1865619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX16_CF_SHIFT 22
1866619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX17_CF (0x3<<24)
1867619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX17_CF_SHIFT 24
1868619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ECE_FLAG (0x1<<26)
1869619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ECE_FLAG_SHIFT 26
1870619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED71 (0x1<<27)
1871619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED71_SHIFT 27
1872619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_FORCE_PURE_ACK_CNT_DIRTY (0x1<<28)
1873619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_FORCE_PURE_ACK_CNT_DIRTY_SHIFT 28
1874619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TCP_AUTO_STOP_FLAG (0x1<<29)
1875619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TCP_AUTO_STOP_FLAG_SHIFT 29
1876619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DO_TS_UPDATE_FLAG (0x1<<30)
1877619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DO_TS_UPDATE_FLAG_SHIFT 30
1878619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CANCEL_RETRANSMIT_FLAG (0x1<<31)
1879619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CANCEL_RETRANSMIT_FLAG_SHIFT 31
1880619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
1881619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_misc6;
1882619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __tcp_agg_vars7;
1883619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
1884619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __tcp_agg_vars7;
1885619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_misc6;
1886619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
1887619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __agg_val10;
1888619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __agg_val10_th;
1889619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
1890619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __reserved3;
1891619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __reserved2;
1892619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __da_only_cnt;
1893619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
1894619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __da_only_cnt;
1895619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __reserved2;
1896619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __reserved3;
1897e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1898e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
1899e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1900e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
1901619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The iscsi aggregative context of Xstorm
1902e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
1903619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_iscsi_ag_context {
1904e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1905619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val1;
1906e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars1;
1907619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1908619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1909619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1910619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1911619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
1912619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
1913619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
1914619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
1915619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
1916619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
1917619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_NAGLE_EN (0x1<<5)
1918619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_NAGLE_EN_SHIFT 5
1919619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG (0x1<<6)
1920619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT 6
1921619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_UNA_GT_NXT_EN (0x1<<7)
1922619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_UNA_GT_NXT_EN_SHIFT 7
1923e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 state;
1924e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1925e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 state;
1926e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars1;
1927619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1928619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1929619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1930619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1931619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
1932619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
1933619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
1934619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
1935619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
1936619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
1937619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_NAGLE_EN (0x1<<5)
1938619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_NAGLE_EN_SHIFT 5
1939619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG (0x1<<6)
1940619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT 6
1941619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_UNA_GT_NXT_EN (0x1<<7)
1942619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_UNA_GT_NXT_EN_SHIFT 7
1943619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val1;
1944e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1945e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1946619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cdu_reserved;
1947619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_vars4;
1948619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars3;
1949619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
1950619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
1951619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_RX_TS_EN_CF (0x3<<6)
1952619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_RX_TS_EN_CF_SHIFT 6
1953619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars2;
1954619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF (0x3<<0)
1955619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_SHIFT 0
1956619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_EN (0x1<<2)
1957619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT 2
1958619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX8_FLAG (0x1<<3)
1959619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX8_FLAG_SHIFT 3
1960619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX9_FLAG (0x1<<4)
1961619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX9_FLAG_SHIFT 4
1962619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE1 (0x3<<5)
1963619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE1_SHIFT 5
1964619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_EN (0x1<<7)
1965619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT 7
1966e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1967619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars2;
1968619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF (0x3<<0)
1969619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_SHIFT 0
1970619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_EN (0x1<<2)
1971619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT 2
1972619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX8_FLAG (0x1<<3)
1973619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX8_FLAG_SHIFT 3
1974619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX9_FLAG (0x1<<4)
1975619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX9_FLAG_SHIFT 4
1976619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE1 (0x3<<5)
1977619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE1_SHIFT 5
1978619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_EN (0x1<<7)
1979619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT 7
1980619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars3;
1981619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
1982619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
1983619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_RX_TS_EN_CF (0x3<<6)
1984619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_RX_TS_EN_CF_SHIFT 6
1985619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_vars4;
1986619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cdu_reserved;
1987619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
1988619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 more_to_send;
1989619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
1990619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars5;
1991619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE5 (0x3<<0)
1992619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE5_SHIFT 0
1993619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
1994619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
1995619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
1996619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
1997619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE2 (0x3<<14)
1998619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE2_SHIFT 14
1999619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sq_cons;
2000e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2001619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sq_cons;
2002619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars5;
2003619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE5 (0x3<<0)
2004619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE5_SHIFT 0
2005619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
2006619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
2007619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
2008619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
2009619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE2 (0x3<<14)
2010619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE2_SHIFT 14
2011e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2012619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_tcp_tcp_ag_context_section tcp;
2013e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2014619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars7;
2015619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AGG_VAL11_DECISION_RULE (0x7<<0)
2016619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT 0
2017619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX13_FLAG (0x1<<3)
2018619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX13_FLAG_SHIFT 3
2019619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_STORMS_SYNC_CF (0x3<<4)
2020619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_STORMS_SYNC_CF_SHIFT 4
2021619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE3 (0x3<<6)
2022619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE3_SHIFT 6
2023619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_AUX1_CF (0x3<<8)
2024619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_SHIFT 8
2025619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK (0x1<<10)
2026619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK_SHIFT 10
2027619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN (0x1<<11)
2028619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN_SHIFT 11
2029619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX10_FLAG (0x1<<12)
2030619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX10_FLAG_SHIFT 12
2031619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX11_FLAG (0x1<<13)
2032619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX11_FLAG_SHIFT 13
2033619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX12_FLAG (0x1<<14)
2034619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX12_FLAG_SHIFT 14
2035619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_RX_WND_SCL_EN (0x1<<15)
2036619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_RX_WND_SCL_EN_SHIFT 15
2037619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3_th;
2038619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars6;
2039619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE6 (0x7<<0)
2040619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE6_SHIFT 0
2041619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE7 (0x7<<3)
2042619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE7_SHIFT 3
2043619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE4 (0x3<<6)
2044619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE4_SHIFT 6
2045e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2046619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars6;
2047619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE6 (0x7<<0)
2048619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE6_SHIFT 0
2049619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE7 (0x7<<3)
2050619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE7_SHIFT 3
2051619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE4 (0x3<<6)
2052619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE4_SHIFT 6
2053619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3_th;
2054619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars7;
2055619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AGG_VAL11_DECISION_RULE (0x7<<0)
2056619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT 0
2057619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX13_FLAG (0x1<<3)
2058619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX13_FLAG_SHIFT 3
2059619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_STORMS_SYNC_CF (0x3<<4)
2060619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_STORMS_SYNC_CF_SHIFT 4
2061619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE3 (0x3<<6)
2062619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE3_SHIFT 6
2063619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_AUX1_CF (0x3<<8)
2064619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_SHIFT 8
2065619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK (0x1<<10)
2066619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK_SHIFT 10
2067619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN (0x1<<11)
2068619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN_SHIFT 11
2069619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX10_FLAG (0x1<<12)
2070619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX10_FLAG_SHIFT 12
2071619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX11_FLAG (0x1<<13)
2072619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX11_FLAG_SHIFT 13
2073619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX12_FLAG (0x1<<14)
2074619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX12_FLAG_SHIFT 14
2075619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_RX_WND_SCL_EN (0x1<<15)
2076619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_RX_WND_SCL_EN_SHIFT 15
2077e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2078e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2079619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val11_th;
2080619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __gen_data;
2081e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2082619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __gen_data;
2083619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val11_th;
2084e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2085e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2086619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __reserved1;
2087619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val6_th;
2088619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val9;
2089e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2090619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val9;
2091619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val6_th;
2092619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __reserved1;
2093e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2094e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2095619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_prod;
2096619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_cons;
2097e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2098619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_cons;
2099619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_prod;
2100e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2101619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 agg_vars8;
2102619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_AGG_MISC2 (0xFFFFFF<<0)
2103619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_AGG_MISC2_SHIFT 0
2104619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_AGG_MISC3 (0xFF<<24)
2105619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_AGG_MISC3_SHIFT 24
2106e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2107619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 r2tq_prod;
2108619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sq_prod;
2109e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2110619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sq_prod;
2111619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 r2tq_prod;
2112619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
2113619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
2114619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3;
2115619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val6;
2116619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val5_th;
2117619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val5;
2118619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
2119619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val5;
2120619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val5_th;
2121619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val6;
2122619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3;
2123619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
2124619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
2125619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_misc1;
2126619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_limit1;
2127619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
2128619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_limit1;
2129619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_misc1;
2130e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2131619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 hq_cons_tcp_seq;
2132619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
2133619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rst_seq_num;
2134e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
2135e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
2136619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2137e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
2138619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The L5cm aggregative context of XStorm
2139e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
2140619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_l5cm_ag_context {
2141e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2142619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val1;
2143619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
2144619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
2145619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
2146619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
2147619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
2148619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
2149619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
2150619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
2151619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
2152619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
2153619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
2154619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_NAGLE_EN (0x1<<5)
2155619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_NAGLE_EN_SHIFT 5
2156619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_DQ_SPARE_FLAG (0x1<<6)
2157619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT 6
2158619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_UNA_GT_NXT_EN (0x1<<7)
2159619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_UNA_GT_NXT_EN_SHIFT 7
2160619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
2161e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2162619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
2163619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
2164619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
2165619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
2166619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
2167619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
2168619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
2169619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
2170619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
2171619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
2172619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
2173619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
2174619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_NAGLE_EN (0x1<<5)
2175619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_NAGLE_EN_SHIFT 5
2176619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_DQ_SPARE_FLAG (0x1<<6)
2177619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT 6
2178619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_UNA_GT_NXT_EN (0x1<<7)
2179619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_UNA_GT_NXT_EN_SHIFT 7
2180619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val1;
2181e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2182e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2183619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cdu_reserved;
2184619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_vars4;
2185619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars3;
2186619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
2187619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
2188619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_RX_TS_EN_CF (0x3<<6)
2189619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_RX_TS_EN_CF_SHIFT 6
2190619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars2;
2191619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX4_CF (0x3<<0)
2192619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX4_CF_SHIFT 0
2193619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_DQ_SPARE_FLAG_EN (0x1<<2)
2194619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT 2
2195619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX8_FLAG (0x1<<3)
2196619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX8_FLAG_SHIFT 3
2197619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX9_FLAG (0x1<<4)
2198619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX9_FLAG_SHIFT 4
2199619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE1 (0x3<<5)
2200619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE1_SHIFT 5
2201619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX4_CF_EN (0x1<<7)
2202619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX4_CF_EN_SHIFT 7
2203e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2204619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars2;
2205619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX4_CF (0x3<<0)
2206619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX4_CF_SHIFT 0
2207619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_DQ_SPARE_FLAG_EN (0x1<<2)
2208619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT 2
2209619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX8_FLAG (0x1<<3)
2210619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX8_FLAG_SHIFT 3
2211619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX9_FLAG (0x1<<4)
2212619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX9_FLAG_SHIFT 4
2213619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE1 (0x3<<5)
2214619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE1_SHIFT 5
2215619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX4_CF_EN (0x1<<7)
2216619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX4_CF_EN_SHIFT 7
2217619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars3;
2218619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
2219619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
2220619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_RX_TS_EN_CF (0x3<<6)
2221619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_RX_TS_EN_CF_SHIFT 6
2222619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_vars4;
2223619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cdu_reserved;
2224e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2225619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 more_to_send;
2226e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2227619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars5;
2228619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE5 (0x3<<0)
2229619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE5_SHIFT 0
2230619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
2231619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
2232619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
2233619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
2234619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE2 (0x3<<14)
2235619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE2_SHIFT 14
2236619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val4_th;
2237619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
2238619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val4_th;
2239619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars5;
2240619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE5 (0x3<<0)
2241619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE5_SHIFT 0
2242619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
2243619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
2244619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
2245619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
2246619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE2 (0x3<<14)
2247619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE2_SHIFT 14
2248e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2249619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_tcp_tcp_ag_context_section tcp;
2250e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2251619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars7;
2252619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AGG_VAL11_DECISION_RULE (0x7<<0)
2253619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT 0
2254619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX13_FLAG (0x1<<3)
2255619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX13_FLAG_SHIFT 3
2256619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_STORMS_SYNC_CF (0x3<<4)
2257619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_STORMS_SYNC_CF_SHIFT 4
2258619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE3 (0x3<<6)
2259619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE3_SHIFT 6
2260619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX1_CF (0x3<<8)
2261619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX1_CF_SHIFT 8
2262619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK (0x1<<10)
2263619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK_SHIFT 10
2264619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX1_CF_EN (0x1<<11)
2265619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX1_CF_EN_SHIFT 11
2266619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX10_FLAG (0x1<<12)
2267619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX10_FLAG_SHIFT 12
2268619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX11_FLAG (0x1<<13)
2269619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX11_FLAG_SHIFT 13
2270619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX12_FLAG (0x1<<14)
2271619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX12_FLAG_SHIFT 14
2272619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_RX_WND_SCL_EN (0x1<<15)
2273619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_RX_WND_SCL_EN_SHIFT 15
2274619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3_th;
2275619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars6;
2276619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE6 (0x7<<0)
2277619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE6_SHIFT 0
2278619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE7 (0x7<<3)
2279619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE7_SHIFT 3
2280619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE4 (0x3<<6)
2281619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE4_SHIFT 6
2282e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2283619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars6;
2284619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE6 (0x7<<0)
2285619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE6_SHIFT 0
2286619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE7 (0x7<<3)
2287619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE7_SHIFT 3
2288619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE4 (0x3<<6)
2289619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE4_SHIFT 6
2290619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3_th;
2291619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars7;
2292619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AGG_VAL11_DECISION_RULE (0x7<<0)
2293619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT 0
2294619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX13_FLAG (0x1<<3)
2295619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX13_FLAG_SHIFT 3
2296619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_STORMS_SYNC_CF (0x3<<4)
2297619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_STORMS_SYNC_CF_SHIFT 4
2298619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE3 (0x3<<6)
2299619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE3_SHIFT 6
2300619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX1_CF (0x3<<8)
2301619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX1_CF_SHIFT 8
2302619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK (0x1<<10)
2303619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK_SHIFT 10
2304619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX1_CF_EN (0x1<<11)
2305619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX1_CF_EN_SHIFT 11
2306619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX10_FLAG (0x1<<12)
2307619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX10_FLAG_SHIFT 12
2308619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX11_FLAG (0x1<<13)
2309619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX11_FLAG_SHIFT 13
2310619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX12_FLAG (0x1<<14)
2311619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX12_FLAG_SHIFT 14
2312619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_RX_WND_SCL_EN (0x1<<15)
2313619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_RX_WND_SCL_EN_SHIFT 15
2314e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2315e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2316619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val11_th;
2317619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __gen_data;
2318e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2319619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __gen_data;
2320619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val11_th;
2321e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2322e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2323619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __reserved1;
2324619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val6_th;
2325619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val9;
2326e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2327619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val9;
2328619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val6_th;
2329619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __reserved1;
2330e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2331e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2332619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val2_th;
2333619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val2;
2334e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2335619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val2;
2336619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val2_th;
2337e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2338619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 agg_vars8;
2339619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AGG_MISC2 (0xFFFFFF<<0)
2340619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AGG_MISC2_SHIFT 0
2341619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AGG_MISC3 (0xFF<<24)
2342619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AGG_MISC3_SHIFT 24
2343e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2344619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_misc0;
2345619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val4;
2346e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2347619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val4;
2348619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_misc0;
2349e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2350e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2351619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3;
2352619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val6;
2353619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val5_th;
2354619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val5;
2355e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2356619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val5;
2357619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val5_th;
2358619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val6;
2359619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3;
2360e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2361e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2362619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_misc1;
2363619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_limit1;
2364523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#elif defined(__LITTLE_ENDIAN)
2365619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_limit1;
2366619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_misc1;
2367523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#endif
2368619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 completion_seq;
2369619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 agg_misc4;
2370619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rst_seq_num;
2371e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
2372e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
2373e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
2374619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * ABTS info $$KEEP_ENDIANNESS$$
2375e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
2376619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_abts_info {
2377619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 aborted_task_id;
2378619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved0;
2379619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved1;
2380e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
2381e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
2382619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2383e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
2384619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fixed size structure in order to plant it in Union structure
2385619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * $$KEEP_ENDIANNESS$$
2386e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
2387619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_abts_rsp_union {
2388619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 r_ctl;
2389619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv[3];
2390619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 abts_rsp_payload[7];
2391523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov};
2392523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov
2393619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2394523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov/*
2395619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * 4 regs size $$KEEP_ENDIANNESS$$
2396e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2397619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_bd_ctx {
2398619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 buf_addr_hi;
2399619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 buf_addr_lo;
2400619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 buf_len;
2401619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rsrv0;
2402619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 flags;
2403619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rsrv1;
2404e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2405e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2406619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2407e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2408619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE cached sges context $$KEEP_ENDIANNESS$$
2409e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2410619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_cached_sge_ctx {
2411619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair cur_buf_addr;
2412619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 cur_buf_rem;
2413619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 second_buf_rem;
2414619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair second_buf_addr;
2415e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2416e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2417619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2418e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2419619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Cleanup info $$KEEP_ENDIANNESS$$
2420e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2421619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_cleanup_info {
2422619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 cleaned_task_id;
2423619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rolled_tx_seq_cnt;
2424619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rolled_tx_data_offset;
2425e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2426e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2427619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2428e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2429619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcp RSP flags $$KEEP_ENDIANNESS$$
2430e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2431619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_fcp_rsp_flags {
2432619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
2433619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_RSP_LEN_VALID (0x1<<0)
2434619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_RSP_LEN_VALID_SHIFT 0
2435619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_SNS_LEN_VALID (0x1<<1)
2436619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_SNS_LEN_VALID_SHIFT 1
2437619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_RESID_OVER (0x1<<2)
2438619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_RESID_OVER_SHIFT 2
2439619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_RESID_UNDER (0x1<<3)
2440619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_RESID_UNDER_SHIFT 3
2441619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_CONF_REQ (0x1<<4)
2442619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_CONF_REQ_SHIFT 4
2443619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_BIDI_FLAGS (0x7<<5)
2444619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_BIDI_FLAGS_SHIFT 5
2445e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2446e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2447e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2448619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcp RSP payload $$KEEP_ENDIANNESS$$
2449e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2450619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_fcp_rsp_payload {
2451619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair reserved0;
2452619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 fcp_resid;
2453619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 scsi_status_code;
2454619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fcp_rsp_flags fcp_flags;
2455619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 retry_delay_timer;
2456619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 fcp_rsp_len;
2457619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 fcp_sns_len;
2458e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2459e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2460e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2461619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fixed size structure in order to plant it in Union structure
2462619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * $$KEEP_ENDIANNESS$$
2463e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2464619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_fcp_rsp_union {
2465619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fcp_rsp_payload payload;
2466619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair reserved0;
2467e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2468e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2469e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2470619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FC header $$KEEP_ENDIANNESS$$
2471e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2472619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_fc_hdr {
2473619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 s_id[3];
2474619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cs_ctl;
2475619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 d_id[3];
2476619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 r_ctl;
2477619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 seq_cnt;
2478619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 df_ctl;
2479619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 seq_id;
2480619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 f_ctl[3];
2481619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 type;
2482619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 parameters;
2483619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rx_id;
2484619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 ox_id;
2485e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2486e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2487e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2488619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FC header union $$KEEP_ENDIANNESS$$
2489e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2490619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_mp_rsp_union {
2491619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fc_hdr fc_hdr;
2492619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 mp_payload_len;
2493619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rsrv;
2494e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2495e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2496e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2497619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Completion information $$KEEP_ENDIANNESS$$
2498e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2499619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_comp_flow_info {
2500619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fcp_rsp_union fcp_rsp;
2501619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_abts_rsp_union abts_rsp;
2502619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_mp_rsp_union mp_rsp;
2503619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 opaque[8];
2504e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2505e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2506619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2507e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2508619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * External ABTS info $$KEEP_ENDIANNESS$$
2509e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2510619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_ext_abts_info {
2511619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rsrv0[6];
2512619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_abts_info ctx;
2513e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2514e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2515619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2516e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2517619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * External cleanup info $$KEEP_ENDIANNESS$$
2518e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2519619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_ext_cleanup_info {
2520619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rsrv0[6];
2521619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_cleanup_info ctx;
2522e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2523e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2524619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2525e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2526619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcoe FW Tx sequence context $$KEEP_ENDIANNESS$$
2527e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2528619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_fw_tx_seq_ctx {
2529619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 data_offset;
2530619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 seq_cnt;
2531619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rsrv0;
2532619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2533619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2534619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2535619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcoe external FW Tx sequence context $$KEEP_ENDIANNESS$$
2536619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2537619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_ext_fw_tx_seq_ctx {
2538619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rsrv0[6];
2539619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fw_tx_seq_ctx ctx;
2540619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2541619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2542619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2543619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2544619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE multiple sges context $$KEEP_ENDIANNESS$$
2545619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2546619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_mul_sges_ctx {
2547619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair cur_sge_addr;
2548619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 cur_sge_off;
2549619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cur_sge_idx;
2550619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sgl_size;
2551619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2552619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2553619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2554619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE external multiple sges context $$KEEP_ENDIANNESS$$
2555619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2556619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_ext_mul_sges_ctx {
2557619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_mul_sges_ctx mul_sgl;
2558619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair rsrv0;
2559619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2560619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2561619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2562619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2563619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCP CMD payload $$KEEP_ENDIANNESS$$
2564619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2565619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_fcp_cmd_payload {
2566619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 opaque[8];
2567619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2568619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2569619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2570619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2571619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2572619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2573619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2574619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcp xfr rdy payload $$KEEP_ENDIANNESS$$
2575619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2576619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_fcp_xfr_rdy_payload {
2577619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 burst_len;
2578619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 data_ro;
2579619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2580619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2581619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2582619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2583619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FC frame $$KEEP_ENDIANNESS$$
2584619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2585619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_fc_frame {
2586619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fc_hdr fc_hdr;
2587619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved0[2];
2588619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2589619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2590619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2591619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2592619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2593619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2594619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE KCQ CQE parameters $$KEEP_ENDIANNESS$$
2595619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2596619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_kcqe_params {
2597619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved0[4];
2598619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2599619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2600619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2601619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE KCQ CQE $$KEEP_ENDIANNESS$$
2602619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2603619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kcqe {
2604619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 fcoe_conn_id;
2605619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 completion_status;
2606619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 fcoe_conn_context_id;
2607619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_kcqe_params params;
2608619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 qe_self_seq;
2609619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_code;
2610619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
2611619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KCQE_RESERVED0 (0x7<<0)
2612619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KCQE_RESERVED0_SHIFT 0
2613619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KCQE_RAMROD_COMPLETION (0x1<<3)
2614619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KCQE_RAMROD_COMPLETION_SHIFT 3
2615619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KCQE_LAYER_CODE (0x7<<4)
2616619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KCQE_LAYER_CODE_SHIFT 4
2617619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KCQE_LINKED_WITH_NEXT (0x1<<7)
2618619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KCQE_LINKED_WITH_NEXT_SHIFT 7
2619619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2620619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2621619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2622619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2623619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2624619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE KWQE header $$KEEP_ENDIANNESS$$
2625619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2626619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_header {
2627619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_code;
2628619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
2629619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_HEADER_RESERVED0 (0xF<<0)
2630619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_HEADER_RESERVED0_SHIFT 0
2631619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_HEADER_LAYER_CODE (0x7<<4)
2632619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_HEADER_LAYER_CODE_SHIFT 4
2633619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_HEADER_RESERVED1 (0x1<<7)
2634619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_HEADER_RESERVED1_SHIFT 7
2635619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2636619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2637619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2638619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE firmware init request 1 $$KEEP_ENDIANNESS$$
2639619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2640619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_init1 {
2641619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 num_tasks;
2642619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2643619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 task_list_pbl_addr_lo;
2644619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 task_list_pbl_addr_hi;
2645619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 dummy_buffer_addr_lo;
2646619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 dummy_buffer_addr_hi;
2647619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 sq_num_wqes;
2648619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rq_num_wqes;
2649619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rq_buffer_log_size;
2650619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 cq_num_wqes;
2651619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 mtu;
2652619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 num_sessions_log;
2653619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
2654619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_INIT1_LOG_PAGE_SIZE (0xF<<0)
2655619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_INIT1_LOG_PAGE_SIZE_SHIFT 0
2656619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_INIT1_LOG_CACHED_PBES_PER_FUNC (0x7<<4)
2657619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_INIT1_LOG_CACHED_PBES_PER_FUNC_SHIFT 4
2658619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_INIT1_RESERVED1 (0x1<<7)
2659619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_INIT1_RESERVED1_SHIFT 7
2660619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2661619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2662619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2663619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE firmware init request 2 $$KEEP_ENDIANNESS$$
2664619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2665619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_init2 {
2666619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hsi_major_version;
2667619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hsi_minor_version;
2668619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2669619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 hash_tbl_pbl_addr_lo;
2670619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 hash_tbl_pbl_addr_hi;
2671619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 t2_hash_tbl_addr_lo;
2672619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 t2_hash_tbl_addr_hi;
2673619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 t2_ptr_hash_tbl_addr_lo;
2674619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 t2_ptr_hash_tbl_addr_hi;
2675619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 free_list_count;
2676619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2677619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2678619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2679619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE firmware init request 3 $$KEEP_ENDIANNESS$$
2680619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2681619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_init3 {
2682619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved0;
2683619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2684619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 error_bit_map_lo;
2685619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 error_bit_map_hi;
2686619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 perf_config;
2687619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved21[3];
2688619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved2[4];
2689619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2690619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2691619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2692619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE connection offload request 1 $$KEEP_ENDIANNESS$$
2693619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2694619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_conn_offload1 {
2695619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 fcoe_conn_id;
2696619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2697619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 sq_addr_lo;
2698619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 sq_addr_hi;
2699619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rq_pbl_addr_lo;
2700619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rq_pbl_addr_hi;
2701619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rq_first_pbe_addr_lo;
2702619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rq_first_pbe_addr_hi;
2703619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rq_prod;
2704619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved0;
2705619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2706619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2707619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2708619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE connection offload request 2 $$KEEP_ENDIANNESS$$
2709619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2710619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_conn_offload2 {
2711619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 tx_max_fc_pay_len;
2712619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2713619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 cq_addr_lo;
2714619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 cq_addr_hi;
2715619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 xferq_addr_lo;
2716619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 xferq_addr_hi;
2717619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 conn_db_addr_lo;
2718619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 conn_db_addr_hi;
2719619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved1;
2720619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2721619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2722619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2723619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE connection offload request 3 $$KEEP_ENDIANNESS$$
2724619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2725619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_conn_offload3 {
2726619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 vlan_tag;
2727619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_VLAN_ID (0xFFF<<0)
2728619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_VLAN_ID_SHIFT 0
2729619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_CFI (0x1<<12)
2730619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_CFI_SHIFT 12
2731619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_PRIORITY (0x7<<13)
2732619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_PRIORITY_SHIFT 13
2733619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2734619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 s_id[3];
2735619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tx_max_conc_seqs_c3;
2736619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 d_id[3];
2737619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
2738619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_MUL_N_PORT_IDS (0x1<<0)
2739619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_MUL_N_PORT_IDS_SHIFT 0
2740619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_E_D_TOV_RES (0x1<<1)
2741619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_E_D_TOV_RES_SHIFT 1
2742619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_CONT_INCR_SEQ_CNT (0x1<<2)
2743619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_CONT_INCR_SEQ_CNT_SHIFT 2
2744619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_CONF_REQ (0x1<<3)
2745619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_CONF_REQ_SHIFT 3
2746619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_REC_VALID (0x1<<4)
2747619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_REC_VALID_SHIFT 4
2748619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_C2_VALID (0x1<<5)
2749619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_C2_VALID_SHIFT 5
2750619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_ACK_0 (0x1<<6)
2751619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_ACK_0_SHIFT 6
2752619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_VLAN_FLAG (0x1<<7)
2753619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_VLAN_FLAG_SHIFT 7
2754619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved;
2755619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 confq_first_pbe_addr_lo;
2756619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 confq_first_pbe_addr_hi;
2757619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 tx_total_conc_seqs;
2758619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rx_max_fc_pay_len;
2759619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rx_total_conc_seqs;
2760619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rx_max_conc_seqs_c3;
2761619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rx_open_seqs_exch_c3;
2762619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2763619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2764619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2765619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE connection offload request 4 $$KEEP_ENDIANNESS$$
2766619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2767619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_conn_offload4 {
2768619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 e_d_tov_timer_val;
2769619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved2;
2770619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2771619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 src_mac_addr_lo[2];
2772619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 src_mac_addr_mid[2];
2773619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 src_mac_addr_hi[2];
2774619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dst_mac_addr_hi[2];
2775619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dst_mac_addr_lo[2];
2776619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dst_mac_addr_mid[2];
2777619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 lcq_addr_lo;
2778619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 lcq_addr_hi;
2779619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 confq_pbl_base_addr_lo;
2780619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 confq_pbl_base_addr_hi;
2781619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2782619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2783619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2784619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE connection enable request $$KEEP_ENDIANNESS$$
2785619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2786619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_conn_enable_disable {
2787619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved0;
2788619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2789619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 src_mac_addr_lo[2];
2790619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 src_mac_addr_mid[2];
2791619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 src_mac_addr_hi[2];
2792619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 vlan_tag;
2793619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_ENABLE_DISABLE_VLAN_ID (0xFFF<<0)
2794619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_ENABLE_DISABLE_VLAN_ID_SHIFT 0
2795619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_ENABLE_DISABLE_CFI (0x1<<12)
2796619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_ENABLE_DISABLE_CFI_SHIFT 12
2797619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_ENABLE_DISABLE_PRIORITY (0x7<<13)
2798619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_ENABLE_DISABLE_PRIORITY_SHIFT 13
2799619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dst_mac_addr_lo[2];
2800619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dst_mac_addr_mid[2];
2801619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dst_mac_addr_hi[2];
2802619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved1;
2803619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 s_id[3];
2804619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vlan_flag;
2805619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 d_id[3];
2806619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved3;
2807619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 context_id;
2808619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 conn_id;
2809619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved4;
2810619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2811619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2812619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2813619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE connection destroy request $$KEEP_ENDIANNESS$$
2814619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2815619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_conn_destroy {
2816619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved0;
2817619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2818619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 context_id;
2819619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 conn_id;
2820619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved1[5];
2821619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2822619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2823619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2824619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoe destroy request $$KEEP_ENDIANNESS$$
2825619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2826619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_destroy {
2827619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved0;
2828619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2829619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved1[7];
2830619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2831619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2832619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2833619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoe statistics request $$KEEP_ENDIANNESS$$
2834619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2835619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_stat {
2836619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved0;
2837619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2838619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 stat_params_addr_lo;
2839619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 stat_params_addr_hi;
2840619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved1[5];
2841619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2842619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2843619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2844619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE KWQ WQE $$KEEP_ENDIANNESS$$
2845619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2846619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_kwqe {
2847619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_init1 init1;
2848619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_init2 init2;
2849619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_init3 init3;
2850619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_offload1 conn_offload1;
2851619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_offload2 conn_offload2;
2852619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_offload3 conn_offload3;
2853619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_offload4 conn_offload4;
2854619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_enable_disable conn_enable_disable;
2855619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_destroy conn_destroy;
2856619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_destroy destroy;
2857619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_stat statistics;
2858619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2859619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2860619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2861619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2862619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2863619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2864619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2865619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2866619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2867619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2868619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2869619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2870619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2871619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2872619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2873619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2874619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2875619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2876619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * TX SGL context $$KEEP_ENDIANNESS$$
2877619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2878619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_sgl_union_ctx {
2879619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_cached_sge_ctx cached_sge;
2880619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_ext_mul_sges_ctx sgl;
2881619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 opaque[5];
2882619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2883619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2884619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2885619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Data-In/ELS/BLS information $$KEEP_ENDIANNESS$$
2886619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2887619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_read_flow_info {
2888619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_sgl_union_ctx sgl_ctx;
2889619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rsrv0[3];
2890619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2891619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2892619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2893619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2894619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcoe stat context $$KEEP_ENDIANNESS$$
2895619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2896619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_s_stat_ctx {
2897619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
2898619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_ACTIVE (0x1<<0)
2899619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_ACTIVE_SHIFT 0
2900619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_ACK_ABORT_SEQ_COND (0x1<<1)
2901619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_ACK_ABORT_SEQ_COND_SHIFT 1
2902619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_ABTS_PERFORMED (0x1<<2)
2903619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_ABTS_PERFORMED_SHIFT 2
2904619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_SEQ_TIMEOUT (0x1<<3)
2905619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_SEQ_TIMEOUT_SHIFT 3
2906619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_P_RJT (0x1<<4)
2907619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_P_RJT_SHIFT 4
2908619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_ACK_EOFT (0x1<<5)
2909619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_ACK_EOFT_SHIFT 5
2910619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_RSRV1 (0x3<<6)
2911619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_RSRV1_SHIFT 6
2912619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2913619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2914619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2915619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcoe rx seq context $$KEEP_ENDIANNESS$$
2916619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2917619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_rx_seq_ctx {
2918619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 seq_id;
2919619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_s_stat_ctx s_stat;
2920619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 seq_cnt;
2921619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 low_exp_ro;
2922619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 high_exp_ro;
2923619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2924619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2925619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2926619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2927619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcoe rx_wr union context $$KEEP_ENDIANNESS$$
2928619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2929619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_rx_wr_union_ctx {
2930619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_read_flow_info read_info;
2931619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_comp_flow_info comp_info;
2932619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 opaque[8];
2933619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2934619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2935619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2936619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2937619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2938619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE SQ element $$KEEP_ENDIANNESS$$
2939619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2940619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_sqe {
2941619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 wqe;
2942619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_SQE_TASK_ID (0x7FFF<<0)
2943619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_SQE_TASK_ID_SHIFT 0
2944619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_SQE_TOGGLE_BIT (0x1<<15)
2945619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_SQE_TOGGLE_BIT_SHIFT 15
2946619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2947619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2948619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2949619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2950619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2951619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * 14 regs $$KEEP_ENDIANNESS$$
2952619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2953619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_tce_tx_only {
2954619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_sgl_union_ctx sgl_ctx;
2955619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rsrv0;
2956619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2957619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2958619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2959619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * 32 bytes (8 regs) used for TX only purposes $$KEEP_ENDIANNESS$$
2960619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2961619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_tx_wr_rx_rd_union_ctx {
2962619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fc_frame tx_frame;
2963619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fcp_cmd_payload fcp_cmd;
2964619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_ext_cleanup_info cleanup;
2965619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_ext_abts_info abts;
2966619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_ext_fw_tx_seq_ctx tx_seq;
2967619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 opaque[8];
2968619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2969619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2970619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2971619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * tce_tx_wr_rx_rd_const $$KEEP_ENDIANNESS$$
2972619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2973619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_tce_tx_wr_rx_rd_const {
2974619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 init_flags;
2975619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_TASK_TYPE (0x7<<0)
2976619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_TASK_TYPE_SHIFT 0
2977619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_DEV_TYPE (0x1<<3)
2978619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_DEV_TYPE_SHIFT 3
2979619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_CLASS_TYPE (0x1<<4)
2980619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_CLASS_TYPE_SHIFT 4
2981619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_CACHED_SGE (0x3<<5)
2982619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_CACHED_SGE_SHIFT 5
2983619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_SUPPORT_REC_TOV (0x1<<7)
2984619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_SUPPORT_REC_TOV_SHIFT 7
2985619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tx_flags;
2986619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_VALID (0x1<<0)
2987619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_VALID_SHIFT 0
2988619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_STATE (0xF<<1)
2989619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_STATE_SHIFT 1
2990619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_RSRV1 (0x1<<5)
2991619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_RSRV1_SHIFT 5
2992619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_SEQ_INIT (0x1<<6)
2993619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_SEQ_INIT_SHIFT 6
2994e65de0716f4fb72b09fb37f603b71f4eabe18322Michael Chan#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_COMP_TRNS (0x1<<7)
2995e65de0716f4fb72b09fb37f603b71f4eabe18322Michael Chan#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_COMP_TRNS_SHIFT 7
2996619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rsrv3;
2997619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 verify_tx_seq;
2998619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2999619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3000619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3001619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * tce_tx_wr_rx_rd $$KEEP_ENDIANNESS$$
3002619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3003619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_tce_tx_wr_rx_rd {
3004619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_tx_wr_rx_rd_union_ctx union_ctx;
3005619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_tx_wr_rx_rd_const const_ctx;
3006619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3007619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3008619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3009619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * tce_rx_wr_tx_rd_const $$KEEP_ENDIANNESS$$
3010619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3011619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_tce_rx_wr_tx_rd_const {
3012619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 data_2_trns;
3013619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 init_flags;
3014619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_CONST_CID (0xFFFFFF<<0)
3015619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_CONST_CID_SHIFT 0
3016619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_CONST_RSRV0 (0xFF<<24)
3017619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_CONST_RSRV0_SHIFT 24
3018619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3019619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3020619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3021619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * tce_rx_wr_tx_rd_var $$KEEP_ENDIANNESS$$
3022619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3023619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_tce_rx_wr_tx_rd_var {
3024619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rx_flags;
3025619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RSRV1 (0xF<<0)
3026619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RSRV1_SHIFT 0
3027619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_NUM_RQ_WQE (0x7<<4)
3028619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_NUM_RQ_WQE_SHIFT 4
3029619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_CONF_REQ (0x1<<7)
3030619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_CONF_REQ_SHIFT 7
3031619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_STATE (0xF<<8)
3032619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_STATE_SHIFT 8
3033619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_EXP_FIRST_FRAME (0x1<<12)
3034619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_EXP_FIRST_FRAME_SHIFT 12
3035619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_SEQ_INIT (0x1<<13)
3036619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_SEQ_INIT_SHIFT 13
3037619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RSRV2 (0x1<<14)
3038619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RSRV2_SHIFT 14
3039619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_VALID (0x1<<15)
3040619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_VALID_SHIFT 15
3041619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rx_id;
3042619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fcp_xfr_rdy_payload fcp_xfr_rdy;
3043619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3044619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3045619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3046619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * tce_rx_wr_tx_rd $$KEEP_ENDIANNESS$$
3047619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3048619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_tce_rx_wr_tx_rd {
3049619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_rx_wr_tx_rd_const const_ctx;
3050619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_rx_wr_tx_rd_var var_ctx;
3051619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3052619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3053619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3054619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * tce_rx_only $$KEEP_ENDIANNESS$$
3055619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3056619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_tce_rx_only {
3057619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_rx_seq_ctx rx_seq_ctx;
3058619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_rx_wr_union_ctx union_ctx;
3059619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3060619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3061619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3062619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * task_ctx_entry $$KEEP_ENDIANNESS$$
3063619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3064619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_task_ctx_entry {
3065619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_tx_only txwr_only;
3066619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_tx_wr_rx_rd txwr_rxrd;
3067619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_rx_wr_tx_rd rxwr_txrd;
3068619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_rx_only rxwr_only;
3069619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3070619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3071619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3072619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3073619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3074619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3075619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3076619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3077619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3078619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3079619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3080619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3081619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE XFRQ element $$KEEP_ENDIANNESS$$
3082619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3083619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_xfrqe {
3084619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 wqe;
3085619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_XFRQE_TASK_ID (0x7FFF<<0)
3086619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_XFRQE_TASK_ID_SHIFT 0
3087619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_XFRQE_TOGGLE_BIT (0x1<<15)
3088619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_XFRQE_TOGGLE_BIT_SHIFT 15
3089619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3090619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3091619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3092619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3093619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Cached SGEs $$KEEP_ENDIANNESS$$
3094619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3095619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct common_fcoe_sgl {
3096619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_bd_ctx sge[3];
3097619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3098619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3099619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3100619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3101619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE SQ\XFRQ element
3102619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3103619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_cached_wqe {
3104619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_sqe sqe;
3105619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_xfrqe xfrqe;
3106619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3107619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3108619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3109619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3110619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE connection enable\disable params passed by driver to FW in FCoE enable
3111619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * ramrod $$KEEP_ENDIANNESS$$
3112619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3113619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_conn_enable_disable_ramrod_params {
3114619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_enable_disable enable_disable_kwqe;
3115619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3116619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3117619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3118619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3119619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE connection offload params passed by driver to FW in FCoE offload ramrod
3120619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * $$KEEP_ENDIANNESS$$
3121619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3122619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_conn_offload_ramrod_params {
3123619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_offload1 offload_kwqe1;
3124619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_offload2 offload_kwqe2;
3125619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_offload3 offload_kwqe3;
3126619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_offload4 offload_kwqe4;
3127619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3128619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3129619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3130619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_fcoe_mng_ctx {
3131e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3132619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 mid_seq_proc_flag;
3133619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tce_in_cam_flag;
3134619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tce_on_ior_flag;
3135619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 en_cached_tce_flag;
3136e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3137619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 en_cached_tce_flag;
3138619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tce_on_ior_flag;
3139619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tce_in_cam_flag;
3140619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 mid_seq_proc_flag;
3141e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3142e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3143619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tce_cam_addr;
3144619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cached_conn_flag;
3145619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
3146e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3147619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
3148619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cached_conn_flag;
3149619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tce_cam_addr;
3150e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3151e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3152619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 dma_tce_ram_addr;
3153619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tce_ram_addr;
3154e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3155619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tce_ram_addr;
3156619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 dma_tce_ram_addr;
3157e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3158e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3159619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 ox_id;
3160619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 wr_done_seq;
3161e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3162619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 wr_done_seq;
3163619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 ox_id;
3164e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3165619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair task_addr;
3166e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3167e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3168e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3169619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Parameters initialized during offloaded according to FLOGI/PLOGI/PRLI and
3170619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * used in FCoE context section
3171e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3172619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_fcoe_params {
3173e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3174619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fcoe_conn_id;
3175619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 flags;
3176619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_MUL_N_PORT_IDS (0x1<<0)
3177619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_MUL_N_PORT_IDS_SHIFT 0
3178619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_E_D_TOV_RES (0x1<<1)
3179619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_E_D_TOV_RES_SHIFT 1
3180619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CONT_INCR_SEQ_CNT (0x1<<2)
3181619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CONT_INCR_SEQ_CNT_SHIFT 2
3182619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CONF_REQ (0x1<<3)
3183619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CONF_REQ_SHIFT 3
3184619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_REC_VALID (0x1<<4)
3185619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_REC_VALID_SHIFT 4
3186619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CQ_TOGGLE_BIT (0x1<<5)
3187619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CQ_TOGGLE_BIT_SHIFT 5
3188619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_XFRQ_TOGGLE_BIT (0x1<<6)
3189619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_XFRQ_TOGGLE_BIT_SHIFT 6
3190619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_RSRV0 (0x1FF<<7)
3191619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_RSRV0_SHIFT 7
3192e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3193619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 flags;
3194619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_MUL_N_PORT_IDS (0x1<<0)
3195619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_MUL_N_PORT_IDS_SHIFT 0
3196619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_E_D_TOV_RES (0x1<<1)
3197619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_E_D_TOV_RES_SHIFT 1
3198619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CONT_INCR_SEQ_CNT (0x1<<2)
3199619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CONT_INCR_SEQ_CNT_SHIFT 2
3200619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CONF_REQ (0x1<<3)
3201619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CONF_REQ_SHIFT 3
3202619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_REC_VALID (0x1<<4)
3203619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_REC_VALID_SHIFT 4
3204619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CQ_TOGGLE_BIT (0x1<<5)
3205619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CQ_TOGGLE_BIT_SHIFT 5
3206619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_XFRQ_TOGGLE_BIT (0x1<<6)
3207619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_XFRQ_TOGGLE_BIT_SHIFT 6
3208619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_RSRV0 (0x1FF<<7)
3209619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_RSRV0_SHIFT 7
3210619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fcoe_conn_id;
3211e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3212e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3213619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hc_csdm_byte_en;
3214619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 func_id;
3215619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 port_id;
3216619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vnic_id;
3217e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3218619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vnic_id;
3219619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 port_id;
3220619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 func_id;
3221619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hc_csdm_byte_en;
3222e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3223e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3224619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rx_total_conc_seqs;
3225619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rx_max_fc_pay_len;
3226e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3227619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rx_max_fc_pay_len;
3228619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rx_total_conc_seqs;
3229e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3230e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3231619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_pbe_idx_off;
3232619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_in_page_log_size;
3233619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rx_max_conc_seqs;
3234e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3235619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rx_max_conc_seqs;
3236619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_in_page_log_size;
3237619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_pbe_idx_off;
3238e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3239e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3240e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3241e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3242619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE 16-bits index structure
3243e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3244619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_idx16_fields {
3245619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fields;
3246619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_IDX16_FIELDS_IDX (0x7FFF<<0)
3247619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_IDX16_FIELDS_IDX_SHIFT 0
3248619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_IDX16_FIELDS_MSB (0x1<<15)
3249619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_IDX16_FIELDS_MSB_SHIFT 15
3250619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3251619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3252619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3253619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE 16-bits index union
3254619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3255619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_idx16_field_union {
3256619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_idx16_fields fields;
3257619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 val;
3258619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3259619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3260619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3261619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Parameters required for placement according to SGL
3262619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3263619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_fcoe_data_place_mng {
3264e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3265619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sge_off;
3266619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 num_sges;
3267619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sge_idx;
3268e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3269619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sge_idx;
3270619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 num_sges;
3271619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sge_off;
3272e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3273619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3274619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3275619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3276619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Parameters required for placement according to SGL
3277619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3278619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_fcoe_data_place {
3279619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_fcoe_data_place_mng cached_mng;
3280619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_bd_ctx cached_sge[2];
3281619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3282619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3283619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3284619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * TX processing shall write and RX processing shall read from this section
3285619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3286619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_u_tce_tx_wr_rx_rd_union {
3287619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_abts_info abts;
3288619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_cleanup_info cleanup;
3289619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fw_tx_seq_ctx tx_seq_ctx;
3290619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 opaque[2];
3291619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3292619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3293619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3294619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * TX processing shall write and RX processing shall read from this section
3295619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3296619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_u_tce_tx_wr_rx_rd {
3297619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_u_tce_tx_wr_rx_rd_union union_ctx;
3298619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_tx_wr_rx_rd_const const_ctx;
3299619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3300619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3301619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_fcoe_tce {
3302619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_u_tce_tx_wr_rx_rd txwr_rxrd;
3303619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_rx_wr_tx_rd rxwr_txrd;
3304619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_rx_only rxwr;
3305619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3306619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3307619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_fcoe_cache_ctx {
3308619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv0;
3309619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_fcoe_data_place data_place;
3310619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_fcoe_tce tce;
3311619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3312619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3313619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3314619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Ustorm FCoE Storm Context
3315619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3316619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_fcoe_st_context {
3317619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_fcoe_mng_ctx mng_ctx;
3318619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_fcoe_params fcoe_params;
3319619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair cq_base_addr;
3320619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair rq_pbl_base;
3321619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair rq_cur_page_addr;
3322619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair confq_pbl_base_addr;
3323619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair conn_db_base;
3324619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair xfrq_base_addr;
3325619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lcq_base_addr;
3326e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3327619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_idx16_field_union rq_cons;
3328619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_idx16_field_union rq_prod;
3329e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3330619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_idx16_field_union rq_prod;
3331619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_idx16_field_union rq_cons;
3332e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3333e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3334619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 xfrq_prod;
3335619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_cons;
3336e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3337619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_cons;
3338619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 xfrq_prod;
3339e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3340e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3341619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 lcq_cons;
3342619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hc_cram_address;
3343e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3344619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hc_cram_address;
3345619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 lcq_cons;
3346619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3347619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3348619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sq_xfrq_lcq_confq_size;
3349619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 confq_prod;
3350e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3351619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 confq_prod;
3352619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sq_xfrq_lcq_confq_size;
3353619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3354619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3355619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hc_csdm_agg_int;
3356619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv2;
3357619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 available_rqes;
3358619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sp_q_flush_cnt;
3359619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3360619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sp_q_flush_cnt;
3361619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 available_rqes;
3362619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv2;
3363619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hc_csdm_agg_int;
3364619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3365619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3366619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 num_pend_tasks;
3367619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_ack_ram_addr;
3368619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3369619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_ack_ram_addr;
3370619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 num_pend_tasks;
3371e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3372619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_fcoe_cache_ctx cache_ctx;
3373e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3374e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3375e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3376619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The FCoE non-aggregative context of Tstorm
3377e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3378619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct tstorm_fcoe_st_context {
3379619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair reserved0;
3380619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair reserved1;
3381619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3382619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3383619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3384619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Ethernet context section
3385619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3386619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_fcoe_eth_context_section {
3387e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3388e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_4;
3389e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_5;
3390e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_0;
3391e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_1;
3392e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3393e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_1;
3394e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_0;
3395e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_5;
3396e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_4;
3397e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3398e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3399e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_0;
3400e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_1;
3401e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_2;
3402e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_3;
3403e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3404e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_3;
3405e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_2;
3406e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_1;
3407e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_0;
3408e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3409e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3410e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 reserved_vlan_type;
3411e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 params;
3412619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_VLAN_ID (0xFFF<<0)
3413619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_VLAN_ID_SHIFT 0
3414619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_CFI (0x1<<12)
3415619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_CFI_SHIFT 12
3416619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_PRIORITY (0x7<<13)
3417619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_PRIORITY_SHIFT 13
3418e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3419e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 params;
3420619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_VLAN_ID (0xFFF<<0)
3421619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_VLAN_ID_SHIFT 0
3422619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_CFI (0x1<<12)
3423619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_CFI_SHIFT 12
3424619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_PRIORITY (0x7<<13)
3425619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_PRIORITY_SHIFT 13
3426e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 reserved_vlan_type;
3427e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3428e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3429e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_2;
3430e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_3;
3431e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_4;
3432e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_5;
3433e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3434e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_5;
3435e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_4;
3436e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_3;
3437e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_2;
3438e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3439e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3440e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3441e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3442619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Flags used in FCoE context section - 1 byte
3443619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3444619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_fcoe_context_flags {
3445619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
3446619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_PROC_Q (0x3<<0)
3447619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_PROC_Q_SHIFT 0
3448619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_MID_SEQ (0x1<<2)
3449619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_MID_SEQ_SHIFT 2
3450619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_BLOCK_SQ (0x1<<3)
3451619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_BLOCK_SQ_SHIFT 3
3452619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_REC_SUPPORT (0x1<<4)
3453619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_REC_SUPPORT_SHIFT 4
3454619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_SQ_TOGGLE (0x1<<5)
3455619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_SQ_TOGGLE_SHIFT 5
3456619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_XFRQ_TOGGLE (0x1<<6)
3457619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_XFRQ_TOGGLE_SHIFT 6
3458619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_VNTAG_VLAN (0x1<<7)
3459619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_VNTAG_VLAN_SHIFT 7
3460619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3461619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3462619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_fcoe_tce {
3463619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_tx_only txwr;
3464619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_tx_wr_rx_rd txwr_rxrd;
3465619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3466619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3467619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3468619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCP_DATA parameters required for transmission
3469619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3470619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_fcoe_fcp_data {
3471619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 io_rem;
3472619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3473619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cached_sge_off;
3474619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cached_num_sges;
3475619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cached_sge_idx;
3476619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3477619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cached_sge_idx;
3478619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cached_num_sges;
3479619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cached_sge_off;
3480619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3481619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 buf_addr_hi_0;
3482619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 buf_addr_lo_0;
3483619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3484619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 num_of_pending_tasks;
3485619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 buf_len_0;
3486619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3487619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 buf_len_0;
3488619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 num_of_pending_tasks;
3489619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3490619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 buf_addr_hi_1;
3491619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 buf_addr_lo_1;
3492619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3493619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 task_pbe_idx_off;
3494619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 buf_len_1;
3495619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3496619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 buf_len_1;
3497619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 task_pbe_idx_off;
3498619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3499619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 buf_addr_hi_2;
3500619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 buf_addr_lo_2;
3501619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3502619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 ox_id;
3503619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 buf_len_2;
3504619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3505619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 buf_len_2;
3506619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 ox_id;
3507619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3508619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3509619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3510619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3511619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * vlan configuration
3512619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3513619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_fcoe_vlan_conf {
3514619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vlan_conf;
3515619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_VLAN_CONF_PRIORITY (0x7<<0)
3516619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_VLAN_CONF_PRIORITY_SHIFT 0
3517619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_VLAN_CONF_INNER_VLAN_FLAG (0x1<<3)
3518619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_VLAN_CONF_INNER_VLAN_FLAG_SHIFT 3
3519619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_VLAN_CONF_RESERVED (0xF<<4)
3520619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_VLAN_CONF_RESERVED_SHIFT 4
3521619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3522619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3523619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3524619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE 16-bits vlan structure
3525619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3526619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_vlan_fields {
3527619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fields;
3528619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_VLAN_FIELDS_VID (0xFFF<<0)
3529619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_VLAN_FIELDS_VID_SHIFT 0
3530619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_VLAN_FIELDS_CLI (0x1<<12)
3531619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_VLAN_FIELDS_CLI_SHIFT 12
3532619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_VLAN_FIELDS_PRI (0x7<<13)
3533619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_VLAN_FIELDS_PRI_SHIFT 13
3534619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3535619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3536619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3537619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE 16-bits vlan union
3538619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3539619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_vlan_field_union {
3540619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_vlan_fields fields;
3541619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 val;
3542619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3543619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3544619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3545619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE 16-bits vlan, vif union
3546619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3547619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_vlan_vif_field_union {
3548619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_vlan_field_union vlan;
3549619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 vif;
3550619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3551619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3552619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3553619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE context section
3554619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3555619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_fcoe_context_section {
3556619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3557619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cs_ctl;
3558619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 s_id[3];
3559619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3560619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 s_id[3];
3561619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cs_ctl;
3562619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3563619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3564619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rctl;
3565619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 d_id[3];
3566619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3567619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 d_id[3];
3568619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rctl;
3569619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3570619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3571619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sq_xfrq_lcq_confq_size;
3572619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tx_max_fc_pay_len;
3573619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3574619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tx_max_fc_pay_len;
3575619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sq_xfrq_lcq_confq_size;
3576619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3577619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 lcq_prod;
3578619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3579619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 port_id;
3580619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 func_id;
3581619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 seq_id;
3582619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_context_flags tx_flags;
3583619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3584619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_context_flags tx_flags;
3585619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 seq_id;
3586619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 func_id;
3587619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 port_id;
3588619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3589619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3590619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 mtu;
3591619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 func_mode;
3592619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vnic_id;
3593619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3594619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vnic_id;
3595619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 func_mode;
3596619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 mtu;
3597619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3598619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair confq_curr_page_addr;
3599619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_cached_wqe cached_wqe[8];
3600619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lcq_base_addr;
3601619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_tce tce;
3602619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_fcp_data fcp_data;
3603619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3604619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tx_max_conc_seqs_c3;
3605619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vlan_flag;
3606619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dcb_val;
3607619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 data_pb_cmd_size;
3608619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3609619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 data_pb_cmd_size;
3610619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dcb_val;
3611619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vlan_flag;
3612619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tx_max_conc_seqs_c3;
3613619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3614619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3615619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fcoe_tx_stat_params_ram_addr;
3616619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fcoe_tx_fc_seq_ram_addr;
3617619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3618619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fcoe_tx_fc_seq_ram_addr;
3619619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fcoe_tx_stat_params_ram_addr;
3620619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3621619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3622619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 fcp_cmd_line_credit;
3623619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 eth_hdr_size;
3624619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_addr;
3625619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3626619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_addr;
3627619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 eth_hdr_size;
3628619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 fcp_cmd_line_credit;
3629619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3630619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3631619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_vlan_vif_field_union multi_func_val;
3632619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 page_log_size;
3633619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_vlan_conf orig_vlan_conf;
3634619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3635619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_vlan_conf orig_vlan_conf;
3636619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 page_log_size;
3637619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_vlan_vif_field_union multi_func_val;
3638619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3639619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3640619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fcp_cmd_frame_size;
3641619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_addr_ff;
3642619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3643619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_addr_ff;
3644619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fcp_cmd_frame_size;
3645619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3646619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3647619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vlan_num;
3648619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cos;
3649619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cache_xfrq_cons;
3650619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cache_sq_cons;
3651619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3652619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cache_sq_cons;
3653619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cache_xfrq_cons;
3654619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cos;
3655619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vlan_num;
3656619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3657619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 verify_tx_seq;
3658619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3659619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3660619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3661619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Xstorm FCoE Storm Context
3662619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3663619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_fcoe_st_context {
3664619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_eth_context_section eth;
3665619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_context_section fcoe;
3666619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3667619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3668619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3669619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcoe connection context
3670619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3671619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_context {
3672619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_fcoe_st_context ustorm_st_context;
3673619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct tstorm_fcoe_st_context tstorm_st_context;
3674619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_ag_context xstorm_ag_context;
3675619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct tstorm_fcoe_ag_context tstorm_ag_context;
3676619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_fcoe_ag_context ustorm_ag_context;
3677619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct timers_block_context timers_context;
3678619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_st_context xstorm_st_context;
3679619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3680619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3681619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3682619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE init params passed by driver to FW in FCoE init ramrod
3683619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * $$KEEP_ENDIANNESS$$
3684e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3685619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_init_ramrod_params {
3686619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_init1 init_kwqe1;
3687619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_init2 init_kwqe2;
3688619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_init3 init_kwqe3;
3689619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair eq_pbl_base;
3690619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 eq_pbl_size;
3691619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved2;
3692619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 eq_prod;
3693619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 sb_num;
3694619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sb_id;
3695619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved0;
3696619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved1;
3697e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3698e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3699e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3700619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE statistics params buffer passed by driver to FW in FCoE statistics
3701619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * ramrod $$KEEP_ENDIANNESS$$
3702e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3703619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_stat_ramrod_params {
3704619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_stat stat_kwqe;
3705e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3706e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3707e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3708619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * CQ DB CQ producer and pending completion counter
3709e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3710619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_cq_db_prod_pnd_cmpltn_cnt {
3711e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3712619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cntr;
3713619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 prod;
3714e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3715619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 prod;
3716619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cntr;
3717e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3718e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3719e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3720619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3721619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * CQ DB pending completion ITT array
3722619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3723619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_cq_db_prod_pnd_cmpltn_cnt_arr {
3724619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_cq_db_prod_pnd_cmpltn_cnt prod_pend_comp[8];
3725e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3726e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3727e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3728619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Cstorm CQ sequence to notify array, updated by driver
3729e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3730619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_cq_db_sqn_2_notify_arr {
3731619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sqn[8];
3732619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3733619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3734619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3735619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Cstorm iSCSI Storm Context
3736619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3737619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct cstorm_iscsi_st_context {
3738619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_cq_db_prod_pnd_cmpltn_cnt_arr cq_c_prod_pend_comp_ctr_arr;
3739619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_cq_db_sqn_2_notify_arr cq_c_prod_sqn_arr;
3740619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_cq_db_sqn_2_notify_arr cq_c_sqn_2_notify_arr;
3741619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair hq_pbl_base;
3742619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair hq_curr_pbe;
3743619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair task_pbl_base;
3744619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair cq_db_base;
3745e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3746619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_bd_itt;
3747619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 iscsi_conn_id;
3748e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3749619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 iscsi_conn_id;
3750619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_bd_itt;
3751e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3752619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 hq_bd_data_segment_len;
3753619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 hq_bd_buffer_offset;
3754e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3755619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv;
3756619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cq_proc_en_bit_map;
3757619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cq_pend_comp_itt_valid_bit_map;
3758619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hq_bd_opcode;
3759e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3760619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hq_bd_opcode;
3761619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cq_pend_comp_itt_valid_bit_map;
3762619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cq_proc_en_bit_map;
3763619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv;
3764e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3765619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 hq_tcp_seq;
3766e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3767619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 flags;
3768619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_DATA_DIGEST_EN (0x1<<0)
3769619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_DATA_DIGEST_EN_SHIFT 0
3770619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HDR_DIGEST_EN (0x1<<1)
3771619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HDR_DIGEST_EN_SHIFT 1
3772619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_CTXT_VALID (0x1<<2)
3773619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_CTXT_VALID_SHIFT 2
3774619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_LCL_CMPLN_FLG (0x1<<3)
3775619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_LCL_CMPLN_FLG_SHIFT 3
3776619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_WRITE_TASK (0x1<<4)
3777619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_WRITE_TASK_SHIFT 4
3778619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_CTRL_FLAGS_RSRV (0x7FF<<5)
3779619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_CTRL_FLAGS_RSRV_SHIFT 5
3780619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_cons;
3781e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3782619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_cons;
3783619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 flags;
3784619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_DATA_DIGEST_EN (0x1<<0)
3785619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_DATA_DIGEST_EN_SHIFT 0
3786619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HDR_DIGEST_EN (0x1<<1)
3787619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HDR_DIGEST_EN_SHIFT 1
3788619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_CTXT_VALID (0x1<<2)
3789619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_CTXT_VALID_SHIFT 2
3790619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_LCL_CMPLN_FLG (0x1<<3)
3791619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_LCL_CMPLN_FLG_SHIFT 3
3792619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_WRITE_TASK (0x1<<4)
3793619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_WRITE_TASK_SHIFT 4
3794619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_CTRL_FLAGS_RSRV (0x7FF<<5)
3795619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_CTRL_FLAGS_RSRV_SHIFT 5
3796e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3797619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair rsrv1;
3798e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3799e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3800619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3801e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3802619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * SCSI read/write SQ WQE
3803e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3804619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_cmd_pdu_hdr_little_endian {
3805e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3806619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
3807619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
3808619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_ATTRIBUTES (0x7<<0)
3809619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_ATTRIBUTES_SHIFT 0
3810619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_RSRV1 (0x3<<3)
3811619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 3
3812619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_WRITE_FLAG (0x1<<5)
3813619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_WRITE_FLAG_SHIFT 5
3814619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_READ_FLAG (0x1<<6)
3815619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_READ_FLAG_SHIFT 6
3816619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG (0x1<<7)
3817619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG_SHIFT 7
3818619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
3819e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3820619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
3821619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
3822619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_ATTRIBUTES (0x7<<0)
3823619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_ATTRIBUTES_SHIFT 0
3824619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_RSRV1 (0x3<<3)
3825619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 3
3826619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_WRITE_FLAG (0x1<<5)
3827619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_WRITE_FLAG_SHIFT 5
3828619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_READ_FLAG (0x1<<6)
3829619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_READ_FLAG_SHIFT 6
3830619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG (0x1<<7)
3831619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG_SHIFT 7
3832619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
3833e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3834619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_fields;
3835619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
3836619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
3837619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
3838619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
3839619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lun;
3840619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 itt;
3841619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 expected_data_transfer_length;
3842619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cmd_sn;
3843619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
3844619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 scsi_command_block[4];
3845e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3846e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3847619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3848e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3849619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Buffer per connection, used in Tstorm
3850e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3851619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_conn_buf {
3852619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair reserved[8];
3853e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3854e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3855619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3856619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3857619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * iSCSI context region, used only in iSCSI
3858619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3859619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_iscsi_rq_db {
3860619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair pbl_base;
3861619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair curr_pbe;
3862619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3863619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3864619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3865619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * iSCSI context region, used only in iSCSI
3866619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3867619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_iscsi_r2tq_db {
3868619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair pbl_base;
3869619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair curr_pbe;
3870619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3871619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3872619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3873619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * iSCSI context region, used only in iSCSI
3874619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3875619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_iscsi_cq_db {
3876619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3877619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_sn;
3878619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 prod;
3879619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3880619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 prod;
3881619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_sn;
3882619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3883619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair curr_pbe;
3884e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3885e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3886619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3887619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * iSCSI context region, used only in iSCSI
3888619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3889619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct rings_db {
3890619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_iscsi_rq_db rq;
3891619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_iscsi_r2tq_db r2tq;
3892619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_iscsi_cq_db cq[8];
3893619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3894619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rq_prod;
3895619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 r2tq_prod;
3896619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3897619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 r2tq_prod;
3898619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rq_prod;
3899619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3900619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair cq_pbl_base;
3901e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3902e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3903619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3904619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * iSCSI context region, used only in iSCSI
3905619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3906619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_iscsi_placement_db {
3907e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 sgl_base_lo;
3908e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 sgl_base_hi;
3909619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 local_sge_0_address_hi;
3910619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 local_sge_0_address_lo;
3911619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3912619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 curr_sge_offset;
3913619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 local_sge_0_size;
3914619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3915619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 local_sge_0_size;
3916619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 curr_sge_offset;
3917619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3918619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 local_sge_1_address_hi;
3919619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 local_sge_1_address_lo;
3920619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3921619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 exp_padding_2b;
3922619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 nal_len_3b;
3923619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 local_sge_1_size;
3924619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3925619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 local_sge_1_size;
3926619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 nal_len_3b;
3927619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 exp_padding_2b;
3928619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3929e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3930e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 sgl_size;
3931619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_sge_index_2b;
3932619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved7;
3933e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3934619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved7;
3935619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_sge_index_2b;
3936e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 sgl_size;
3937e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3938619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rem_pdu;
3939619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 place_db_bitfield_1;
3940619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_REM_PDU_PAYLOAD (0xFFFFFF<<0)
3941619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_REM_PDU_PAYLOAD_SHIFT 0
3942619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_CQ_ID (0xFF<<24)
3943619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_CQ_ID_SHIFT 24
3944619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 place_db_bitfield_2;
3945619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_BYTES_2_TRUNCATE (0xFFFFFF<<0)
3946619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_BYTES_2_TRUNCATE_SHIFT 0
3947619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_HOST_SGE_INDEX (0xFF<<24)
3948619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_HOST_SGE_INDEX_SHIFT 24
3949619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 nal;
3950619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_REM_SGE_SIZE (0xFFFFFF<<0)
3951619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_REM_SGE_SIZE_SHIFT 0
3952619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_EXP_DIGEST_3B (0xFF<<24)
3953619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_EXP_DIGEST_3B_SHIFT 24
3954e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3955e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3956e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3957619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Ustorm iSCSI Storm Context
3958e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3959619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_iscsi_st_context {
3960619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
3961619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_data_sn;
3962619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct rings_db ring;
3963e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct regpair task_pbl_base;
3964619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair tce_phy_addr;
3965619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_iscsi_placement_db place_db;
3966619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 reserved8;
3967619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rem_rcv_len;
3968e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3969619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hdr_itt;
3970619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 iscsi_conn_id;
3971e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3972619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 iscsi_conn_id;
3973619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hdr_itt;
3974e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3975619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 nal_bytes;
3976e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3977619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hdr_second_byte_union;
3978619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 bitfield_0;
3979619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BMIDDLEOFPDU (0x1<<0)
3980619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BMIDDLEOFPDU_SHIFT 0
3981619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BFENCECQE (0x1<<1)
3982619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BFENCECQE_SHIFT 1
3983619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BRESETCRC (0x1<<2)
3984619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BRESETCRC_SHIFT 2
3985619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_RESERVED1 (0x1F<<3)
3986619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_RESERVED1_SHIFT 3
3987619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_pdu_cache_index;
3988619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_pbe_cache_index;
3989e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3990619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_pbe_cache_index;
3991619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_pdu_cache_index;
3992619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 bitfield_0;
3993619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BMIDDLEOFPDU (0x1<<0)
3994619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BMIDDLEOFPDU_SHIFT 0
3995619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BFENCECQE (0x1<<1)
3996619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BFENCECQE_SHIFT 1
3997619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BRESETCRC (0x1<<2)
3998619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BRESETCRC_SHIFT 2
3999619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_RESERVED1 (0x1F<<3)
4000619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_RESERVED1_SHIFT 3
4001619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hdr_second_byte_union;
4002e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
4003e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
4004619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved3;
4005619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved2;
4006619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 acDecrement;
4007619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4008619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 acDecrement;
4009619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved2;
4010619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved3;
4011619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4012619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 task_stat;
4013619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4014619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hdr_opcode;
4015619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 num_cqs;
4016619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved5;
4017619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4018619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved5;
4019619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 num_cqs;
4020619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hdr_opcode;
4021619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4022619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 negotiated_rx;
4023619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_MAX_RECV_PDU_LENGTH (0xFFFFFF<<0)
4024619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_MAX_RECV_PDU_LENGTH_SHIFT 0
4025619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_MAX_OUTSTANDING_R2TS (0xFF<<24)
4026619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_MAX_OUTSTANDING_R2TS_SHIFT 24
4027619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 negotiated_rx_and_flags;
4028619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_MAX_BURST_LENGTH (0xFFFFFF<<0)
4029619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_MAX_BURST_LENGTH_SHIFT 0
4030619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_CQE_POSTED_OR_HEADER_CACHED (0x1<<24)
4031619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_CQE_POSTED_OR_HEADER_CACHED_SHIFT 24
4032619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_HDR_DIGEST_EN (0x1<<25)
4033619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_HDR_DIGEST_EN_SHIFT 25
4034619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_DATA_DIGEST_EN (0x1<<26)
4035619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_DATA_DIGEST_EN_SHIFT 26
4036619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_PROTOCOL_ERROR (0x1<<27)
4037619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_PROTOCOL_ERROR_SHIFT 27
4038619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_TASK_VALID (0x1<<28)
4039619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_TASK_VALID_SHIFT 28
4040619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_TASK_TYPE (0x3<<29)
4041619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_TASK_TYPE_SHIFT 29
4042619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_ALL_DATA_ACKED (0x1<<31)
4043619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_ALL_DATA_ACKED_SHIFT 31
4044619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4045619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4046619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
4047619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * TCP context region, shared in TOE, RDMA and ISCSI
4048619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
4049619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct tstorm_tcp_st_context_section {
4050619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 flags1;
4051619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_RTT_SRTT (0xFFFFFF<<0)
4052619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_RTT_SRTT_SHIFT 0
4053619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_PAWS_INVALID (0x1<<24)
4054619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_PAWS_INVALID_SHIFT 24
4055619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_TIMESTAMP_EXISTS (0x1<<25)
4056619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_TIMESTAMP_EXISTS_SHIFT 25
4057619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_RESERVED0 (0x1<<26)
4058619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_RESERVED0_SHIFT 26
4059619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_STOP_RX_PAYLOAD (0x1<<27)
4060619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_STOP_RX_PAYLOAD_SHIFT 27
4061619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_KA_ENABLED (0x1<<28)
4062619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_KA_ENABLED_SHIFT 28
4063619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_FIRST_RTO_ESTIMATE (0x1<<29)
4064619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_FIRST_RTO_ESTIMATE_SHIFT 29
4065619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_MAX_SEG_RETRANSMIT_EN (0x1<<30)
4066619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_MAX_SEG_RETRANSMIT_EN_SHIFT 30
4067619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_LAST_ISLE_HAS_FIN (0x1<<31)
4068619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_LAST_ISLE_HAS_FIN_SHIFT 31
4069619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 flags2;
4070619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_RTT_VARIATION (0xFFFFFF<<0)
4071619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_RTT_VARIATION_SHIFT 0
4072619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_DA_EN (0x1<<24)
4073619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_DA_EN_SHIFT 24
4074619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_DA_COUNTER_EN (0x1<<25)
4075619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_DA_COUNTER_EN_SHIFT 25
4076619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_ST_CONTEXT_SECTION_KA_PROBE_SENT (0x1<<26)
4077619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_ST_CONTEXT_SECTION_KA_PROBE_SENT_SHIFT 26
4078619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_ST_CONTEXT_SECTION_PERSIST_PROBE_SENT (0x1<<27)
4079619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_ST_CONTEXT_SECTION_PERSIST_PROBE_SENT_SHIFT 27
4080619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_UPDATE_L2_STATSTICS (0x1<<28)
4081619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_UPDATE_L2_STATSTICS_SHIFT 28
4082619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_UPDATE_L4_STATSTICS (0x1<<29)
4083619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_UPDATE_L4_STATSTICS_SHIFT 29
4084619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_ST_CONTEXT_SECTION_IN_WINDOW_RST_ATTACK (0x1<<30)
4085619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_ST_CONTEXT_SECTION_IN_WINDOW_RST_ATTACK_SHIFT 30
4086619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_ST_CONTEXT_SECTION_IN_WINDOW_SYN_ATTACK (0x1<<31)
4087619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_ST_CONTEXT_SECTION_IN_WINDOW_SYN_ATTACK_SHIFT 31
4088619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4089619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 mss;
4090619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tcp_sm_state;
4091619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rto_exp;
4092619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4093619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rto_exp;
4094619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tcp_sm_state;
4095619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 mss;
4096619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4097619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rcv_nxt;
4098619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 timestamp_recent;
4099619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 timestamp_recent_time;
4100619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cwnd;
4101619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ss_thresh;
4102619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cwnd_accum;
4103619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 prev_seg_seq;
4104619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 expected_rel_seq;
4105619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 recover;
4106619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4107619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 retransmit_count;
4108619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ka_max_probe_count;
4109619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 persist_probe_count;
4110619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ka_probe_count;
4111e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
4112619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ka_probe_count;
4113619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 persist_probe_count;
4114619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ka_max_probe_count;
4115619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 retransmit_count;
4116e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
4117e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
4118619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 statistics_counter_id;
4119619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ooo_support_mode;
4120619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 snd_wnd_scale;
4121619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dup_ack_count;
4122e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
4123619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dup_ack_count;
4124619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 snd_wnd_scale;
4125619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ooo_support_mode;
4126619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 statistics_counter_id;
4127e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
4128619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 retransmit_start_time;
4129619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ka_timeout;
4130619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ka_interval;
4131619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 isle_start_seq;
4132619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 isle_end_seq;
4133e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
4134619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 second_isle_address;
4135619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 recent_seg_wnd;
4136e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
4137619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 recent_seg_wnd;
4138619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 second_isle_address;
4139e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
4140e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
4141619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 max_isles_ever_happened;
4142619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 isles_number;
4143619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 last_isle_address;
4144e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
4145619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 last_isle_address;
4146619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 isles_number;
4147619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 max_isles_ever_happened;
4148e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
4149619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 max_rt_time;
4150e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
4151619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 lsb_mac_address;
4152619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 vlan_id;
4153e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
4154619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 vlan_id;
4155619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 lsb_mac_address;
4156e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
4157619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4158619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 msb_mac_address;
4159619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 mid_mac_address;
4160619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4161619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 mid_mac_address;
4162619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 msb_mac_address;
4163619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4164619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rightmost_received_seq;
4165e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
4166e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
4167e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
4168619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Termination variables
4169e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4170619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_term_vars {
4171619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 BitMap;
4172619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_TCP_STATE (0xF<<0)
4173619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_TCP_STATE_SHIFT 0
4174619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_FIN_RECEIVED_SBIT (0x1<<4)
4175619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_FIN_RECEIVED_SBIT_SHIFT 4
4176619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_ACK_ON_FIN_RECEIVED_SBIT (0x1<<5)
4177619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_ACK_ON_FIN_RECEIVED_SBIT_SHIFT 5
4178619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_TERM_ON_CHIP (0x1<<6)
4179619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_TERM_ON_CHIP_SHIFT 6
4180619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_RSRV (0x1<<7)
4181619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_RSRV_SHIFT 7
4182e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4183e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4184e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4185619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * iSCSI context region, used only in iSCSI
4186e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4187619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct tstorm_iscsi_st_context_section {
4188619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 nalPayload;
4189619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 b2nh;
4190e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4191619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rq_cons;
4192e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 flags;
4193619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_HDR_DIGEST_EN (0x1<<0)
4194619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_HDR_DIGEST_EN_SHIFT 0
4195619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DATA_DIGEST_EN (0x1<<1)
4196619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DATA_DIGEST_EN_SHIFT 1
4197619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_PARTIAL_HEADER (0x1<<2)
4198619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_PARTIAL_HEADER_SHIFT 2
4199619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_FULL_FEATURE (0x1<<3)
4200619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_FULL_FEATURE_SHIFT 3
4201619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DROP_ALL_PDUS (0x1<<4)
4202619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DROP_ALL_PDUS_SHIFT 4
4203619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_NALLEN (0x3<<5)
4204619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_NALLEN_SHIFT 5
4205619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_RSRV0 (0x1<<7)
4206619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_RSRV0_SHIFT 7
4207619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hdr_bytes_2_fetch;
4208e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4209619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hdr_bytes_2_fetch;
4210e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 flags;
4211619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_HDR_DIGEST_EN (0x1<<0)
4212619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_HDR_DIGEST_EN_SHIFT 0
4213619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DATA_DIGEST_EN (0x1<<1)
4214619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DATA_DIGEST_EN_SHIFT 1
4215619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_PARTIAL_HEADER (0x1<<2)
4216619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_PARTIAL_HEADER_SHIFT 2
4217619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_FULL_FEATURE (0x1<<3)
4218619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_FULL_FEATURE_SHIFT 3
4219619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DROP_ALL_PDUS (0x1<<4)
4220619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DROP_ALL_PDUS_SHIFT 4
4221619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_NALLEN (0x3<<5)
4222619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_NALLEN_SHIFT 5
4223619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_RSRV0 (0x1<<7)
4224619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_RSRV0_SHIFT 7
4225619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rq_cons;
4226619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4227619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair rq_db_phy_addr;
4228619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4229619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_term_vars term_vars;
4230619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv1;
4231619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 iscsi_conn_id;
4232619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4233619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 iscsi_conn_id;
4234619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv1;
4235619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_term_vars term_vars;
4236e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4237619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 process_nxt;
4238e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4239e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4240e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4241619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The iSCSI non-aggregative context of Tstorm
4242e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4243619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct tstorm_iscsi_st_context {
4244619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct tstorm_tcp_st_context_section tcp;
4245619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct tstorm_iscsi_st_context_section iscsi;
4246e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4247e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4248e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4249619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Ethernet context section, shared in TOE, RDMA and ISCSI
4250e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4251619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_eth_context_section {
4252e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4253619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_4;
4254619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_5;
4255619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_0;
4256619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_1;
4257e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4258619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_1;
4259619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_0;
4260619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_5;
4261619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_4;
4262e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4263e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4264619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_0;
4265619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_1;
4266619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_2;
4267619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_3;
4268e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4269619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_3;
4270619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_2;
4271619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_1;
4272619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_0;
4273e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4274e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4275619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved_vlan_type;
4276e65de0716f4fb72b09fb37f603b71f4eabe18322Michael Chan	u16 vlan_params;
4277619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_VLAN_ID (0xFFF<<0)
4278619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_VLAN_ID_SHIFT 0
4279619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_CFI (0x1<<12)
4280619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_CFI_SHIFT 12
4281619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_PRIORITY (0x7<<13)
4282619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_PRIORITY_SHIFT 13
4283e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4284e65de0716f4fb72b09fb37f603b71f4eabe18322Michael Chan	u16 vlan_params;
4285619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_VLAN_ID (0xFFF<<0)
4286619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_VLAN_ID_SHIFT 0
4287619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_CFI (0x1<<12)
4288619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_CFI_SHIFT 12
4289619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_PRIORITY (0x7<<13)
4290619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_PRIORITY_SHIFT 13
4291619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved_vlan_type;
4292e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4293e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4294619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_2;
4295619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_3;
4296619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_4;
4297619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_5;
4298e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4299619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_5;
4300619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_4;
4301619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_3;
4302619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_2;
4303e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4304e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4305e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4306e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4307619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * IpV4 context section, shared in TOE, RDMA and ISCSI
4308e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4309619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_ip_v4_context_section {
4310e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4311619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __pbf_hdr_cmd_rsvd_id;
4312619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __pbf_hdr_cmd_rsvd_flags_offset;
4313e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4314619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __pbf_hdr_cmd_rsvd_flags_offset;
4315619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __pbf_hdr_cmd_rsvd_id;
4316e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4317e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4318619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __pbf_hdr_cmd_rsvd_ver_ihl;
4319619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tos;
4320619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __pbf_hdr_cmd_rsvd_length;
4321e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4322619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __pbf_hdr_cmd_rsvd_length;
4323619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tos;
4324619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __pbf_hdr_cmd_rsvd_ver_ihl;
4325e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4326619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_local_addr;
4327e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4328619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ttl;
4329619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __pbf_hdr_cmd_rsvd_protocol;
4330619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __pbf_hdr_cmd_rsvd_csum;
4331e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4332619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __pbf_hdr_cmd_rsvd_csum;
4333619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __pbf_hdr_cmd_rsvd_protocol;
4334619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ttl;
4335e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4336619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __pbf_hdr_cmd_rsvd_1;
4337619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_remote_addr;
4338e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4339e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4340e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4341619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * context section, shared in TOE, RDMA and ISCSI
4342e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4343619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_padded_ip_v4_context_section {
4344619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_ip_v4_context_section ip_v4;
4345619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 reserved1[4];
4346e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4347e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4348e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4349619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * IpV6 context section, shared in TOE, RDMA and ISCSI
4350e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4351619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_ip_v6_context_section {
4352e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4353619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_hdr_cmd_rsvd_payload_len;
4354619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 pbf_hdr_cmd_rsvd_nxt_hdr;
4355619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hop_limit;
4356e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4357619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hop_limit;
4358619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 pbf_hdr_cmd_rsvd_nxt_hdr;
4359619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_hdr_cmd_rsvd_payload_len;
4360e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4361619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 priority_flow_label;
4362619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_IP_V6_CONTEXT_SECTION_FLOW_LABEL (0xFFFFF<<0)
4363619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_IP_V6_CONTEXT_SECTION_FLOW_LABEL_SHIFT 0
4364619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_IP_V6_CONTEXT_SECTION_TRAFFIC_CLASS (0xFF<<20)
4365619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_IP_V6_CONTEXT_SECTION_TRAFFIC_CLASS_SHIFT 20
4366619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_IP_V6_CONTEXT_SECTION_PBF_HDR_CMD_RSVD_VER (0xF<<28)
4367619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_IP_V6_CONTEXT_SECTION_PBF_HDR_CMD_RSVD_VER_SHIFT 28
4368619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_local_addr_lo_hi;
4369619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_local_addr_lo_lo;
4370619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_local_addr_hi_hi;
4371619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_local_addr_hi_lo;
4372619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_remote_addr_lo_hi;
4373619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_remote_addr_lo_lo;
4374619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_remote_addr_hi_hi;
4375619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_remote_addr_hi_lo;
4376619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4377619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4378619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion xstorm_ip_context_section_types {
4379619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_padded_ip_v4_context_section padded_ip_v4;
4380619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_ip_v6_context_section ip_v6;
4381e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4382e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4383e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4384619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * TCP context section, shared in TOE, RDMA and ISCSI
4385e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4386619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_tcp_context_section {
4387619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 snd_max;
4388e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4389619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 remote_port;
4390619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 local_port;
4391e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4392619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 local_port;
4393619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 remote_port;
4394e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4395e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4396619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 original_nagle_1b;
4397619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ts_enabled;
4398619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tcp_params;
4399619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_TOTAL_HEADER_SIZE (0xFF<<0)
4400619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_TOTAL_HEADER_SIZE_SHIFT 0
4401619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_CONTEXT_SECTION_ECT_BIT (0x1<<8)
4402619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_CONTEXT_SECTION_ECT_BIT_SHIFT 8
4403619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_CONTEXT_SECTION_ECN_ENABLED (0x1<<9)
4404619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_CONTEXT_SECTION_ECN_ENABLED_SHIFT 9
4405619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SACK_ENABLED (0x1<<10)
4406619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SACK_ENABLED_SHIFT 10
4407619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SMALL_WIN_ADV (0x1<<11)
4408619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SMALL_WIN_ADV_SHIFT 11
4409619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_FIN_SENT_FLAG (0x1<<12)
4410619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT 12
4411619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_WINDOW_SATURATED (0x1<<13)
4412619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_WINDOW_SATURATED_SHIFT 13
4413619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SLOWPATH_QUEUES_FLUSH_COUNTER (0x3<<14)
4414619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SLOWPATH_QUEUES_FLUSH_COUNTER_SHIFT 14
4415e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4416619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tcp_params;
4417619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_TOTAL_HEADER_SIZE (0xFF<<0)
4418619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_TOTAL_HEADER_SIZE_SHIFT 0
4419619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_CONTEXT_SECTION_ECT_BIT (0x1<<8)
4420619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_CONTEXT_SECTION_ECT_BIT_SHIFT 8
4421619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_CONTEXT_SECTION_ECN_ENABLED (0x1<<9)
4422619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_CONTEXT_SECTION_ECN_ENABLED_SHIFT 9
4423619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SACK_ENABLED (0x1<<10)
4424619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SACK_ENABLED_SHIFT 10
4425619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SMALL_WIN_ADV (0x1<<11)
4426619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SMALL_WIN_ADV_SHIFT 11
4427619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_FIN_SENT_FLAG (0x1<<12)
4428619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT 12
4429619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_WINDOW_SATURATED (0x1<<13)
4430619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_WINDOW_SATURATED_SHIFT 13
4431619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SLOWPATH_QUEUES_FLUSH_COUNTER (0x3<<14)
4432619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SLOWPATH_QUEUES_FLUSH_COUNTER_SHIFT 14
4433619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ts_enabled;
4434619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 original_nagle_1b;
4435e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4436e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4437619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pseudo_csum;
4438619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 window_scaling_factor;
4439e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4440619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 window_scaling_factor;
4441619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pseudo_csum;
4442e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4443e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4444619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved2;
4445619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 statistics_counter_id;
4446619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 statistics_params;
4447619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L2_STATSTICS (0x1<<0)
4448619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L2_STATSTICS_SHIFT 0
4449619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L4_STATSTICS (0x1<<1)
4450619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L4_STATSTICS_SHIFT 1
4451619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_RESERVED (0x3F<<2)
4452619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_RESERVED_SHIFT 2
4453e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4454619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 statistics_params;
4455619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L2_STATSTICS (0x1<<0)
4456619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L2_STATSTICS_SHIFT 0
4457619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L4_STATSTICS (0x1<<1)
4458619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L4_STATSTICS_SHIFT 1
4459619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_RESERVED (0x3F<<2)
4460619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_RESERVED_SHIFT 2
4461619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 statistics_counter_id;
4462619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved2;
4463e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4464619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ts_time_diff;
4465619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __next_timer_expir;
4466e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4467e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4468e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4469619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Common context section, shared in TOE, RDMA and ISCSI
4470e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4471619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_common_context_section {
4472619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_eth_context_section ethernet;
4473619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union xstorm_ip_context_section_types ip_union;
4474619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_tcp_context_section tcp;
4475e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4476619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __dcb_val;
4477619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
4478619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_PHYSQ_INITIALIZED (0x1<<0)
4479619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_PHYSQ_INITIALIZED_SHIFT 0
4480619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_PBF_PORT (0x7<<1)
4481619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_PBF_PORT_SHIFT 1
4482619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_VLAN_MODE (0x1<<4)
4483619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_VLAN_MODE_SHIFT 4
4484619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_ORIGINAL_PRIORITY (0x7<<5)
4485619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_ORIGINAL_PRIORITY_SHIFT 5
4486619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved;
4487619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ip_version_1b;
4488e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4489619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ip_version_1b;
4490619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved;
4491619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
4492619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_PHYSQ_INITIALIZED (0x1<<0)
4493619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_PHYSQ_INITIALIZED_SHIFT 0
4494619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_PBF_PORT (0x7<<1)
4495619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_PBF_PORT_SHIFT 1
4496619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_VLAN_MODE (0x1<<4)
4497619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_VLAN_MODE_SHIFT 4
4498619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_ORIGINAL_PRIORITY (0x7<<5)
4499619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_ORIGINAL_PRIORITY_SHIFT 5
4500619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __dcb_val;
4501e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4502e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4503e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4504e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4505619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Flags used in ISCSI context section
4506e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4507619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_iscsi_context_flags {
4508619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
4509619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_IMMEDIATE_DATA (0x1<<0)
4510619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_IMMEDIATE_DATA_SHIFT 0
4511619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_INITIAL_R2T (0x1<<1)
4512619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_INITIAL_R2T_SHIFT 1
4513619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_EN_HEADER_DIGEST (0x1<<2)
4514619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_EN_HEADER_DIGEST_SHIFT 2
4515619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_EN_DATA_DIGEST (0x1<<3)
4516619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_EN_DATA_DIGEST_SHIFT 3
4517619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_HQ_BD_WRITTEN (0x1<<4)
4518619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_HQ_BD_WRITTEN_SHIFT 4
4519619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_LAST_OP_SQ (0x1<<5)
4520619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_LAST_OP_SQ_SHIFT 5
4521619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_UPDATE_SND_NXT (0x1<<6)
4522619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_UPDATE_SND_NXT_SHIFT 6
4523619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_RESERVED4 (0x1<<7)
4524619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_RESERVED4_SHIFT 7
4525619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4526619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4527619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry_x {
4528619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_out_buffer_offset;
4529619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 itt;
4530619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_sn;
4531619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4532619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4533619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry_xuc_x_write_only {
4534619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 tx_r2t_sn;
4535619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4536619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4537619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry_xuc_xu_write_both {
4538619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 sgl_base_lo;
4539619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 sgl_base_hi;
4540e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4541619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sgl_size;
4542619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sge_index;
4543619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sge_offset;
4544e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4545619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sge_offset;
4546619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sge_index;
4547619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sgl_size;
4548e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4549619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4550619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4551619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
4552619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * iSCSI context section
4553619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
4554619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_iscsi_context_section {
4555619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 first_burst_length;
4556619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 max_send_pdu_length;
4557619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair sq_pbl_base;
4558619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair sq_curr_pbe;
4559619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair hq_pbl_base;
4560619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair hq_curr_pbe_base;
4561619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair r2tq_pbl_base;
4562619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair r2tq_curr_pbe_base;
4563619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair task_pbl_base;
4564e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4565619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 data_out_count;
4566619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_iscsi_context_flags flags;
4567619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_pbl_cache_idx;
4568e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4569619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_pbl_cache_idx;
4570619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_iscsi_context_flags flags;
4571619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 data_out_count;
4572e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4573619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 seq_more_2_send;
4574619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 pdu_more_2_send;
4575619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_x temp_tce_x;
4576619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_xuc_x_write_only temp_tce_x_wr;
4577619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_xuc_xu_write_both temp_tce_xu_wr;
4578619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lun;
4579619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_data_transfer_len_ttt;
4580619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 pdu_data_2_rxmit;
4581619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rxmit_bytes_2_dr;
4582e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4583619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rxmit_sge_offset;
4584619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_rxmit_cons;
4585e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4586619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_rxmit_cons;
4587619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rxmit_sge_offset;
4588e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4589e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4590619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 r2tq_cons;
4591619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rxmit_flags;
4592619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_NEW_HQ_BD (0x1<<0)
4593619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_NEW_HQ_BD_SHIFT 0
4594619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PDU_HDR (0x1<<1)
4595619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PDU_HDR_SHIFT 1
4596619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_END_PDU (0x1<<2)
4597619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_END_PDU_SHIFT 2
4598619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_DR (0x1<<3)
4599619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_DR_SHIFT 3
4600619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_START_DR (0x1<<4)
4601619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_START_DR_SHIFT 4
4602619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PADDING (0x3<<5)
4603619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PADDING_SHIFT 5
4604619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_ISCSI_CONT_FAST_RXMIT (0x1<<7)
4605619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_ISCSI_CONT_FAST_RXMIT_SHIFT 7
4606619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rxmit_sge_idx;
4607e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4608619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rxmit_sge_idx;
4609619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rxmit_flags;
4610619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_NEW_HQ_BD (0x1<<0)
4611619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_NEW_HQ_BD_SHIFT 0
4612619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PDU_HDR (0x1<<1)
4613619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PDU_HDR_SHIFT 1
4614619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_END_PDU (0x1<<2)
4615619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_END_PDU_SHIFT 2
4616619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_DR (0x1<<3)
4617619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_DR_SHIFT 3
4618619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_START_DR (0x1<<4)
4619619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_START_DR_SHIFT 4
4620619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PADDING (0x3<<5)
4621619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PADDING_SHIFT 5
4622619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_ISCSI_CONT_FAST_RXMIT (0x1<<7)
4623619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_ISCSI_CONT_FAST_RXMIT_SHIFT 7
4624619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 r2tq_cons;
4625e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4626619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 hq_rxmit_tcp_seq;
4627619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4628619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4629619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
4630619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Xstorm iSCSI Storm Context
4631619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
4632619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_iscsi_st_context {
4633619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_common_context_section common;
4634619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_iscsi_context_section iscsi;
4635619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4636619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4637619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
4638619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Iscsi connection context
4639619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
4640619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_context {
4641619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_iscsi_st_context ustorm_st_context;
4642619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct tstorm_iscsi_st_context tstorm_st_context;
4643619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_iscsi_ag_context xstorm_ag_context;
4644619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct tstorm_iscsi_ag_context tstorm_ag_context;
4645619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct cstorm_iscsi_ag_context cstorm_ag_context;
4646619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_iscsi_ag_context ustorm_ag_context;
4647619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct timers_block_context timers_context;
4648619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair upb_context;
4649619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_iscsi_st_context xstorm_st_context;
4650619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair xpb_context;
4651619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct cstorm_iscsi_st_context cstorm_st_context;
4652619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4653619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4654619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4655619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
4656619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * PDU header of an iSCSI DATA-OUT
4657619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
4658619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_data_pdu_hdr_little_endian {
4659e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4660619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4661619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4662619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_RSRV1 (0x7F<<0)
4663619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
4664619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG (0x1<<7)
4665619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG_SHIFT 7
4666619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4667e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4668619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4669619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4670619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_RSRV1 (0x7F<<0)
4671619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
4672619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG (0x1<<7)
4673619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG_SHIFT 7
4674619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4675e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4676619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_fields;
4677619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
4678619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
4679619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
4680619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
4681619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lun;
4682619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 itt;
4683619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ttt;
4684619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv2;
4685619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
4686619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv3;
4687619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_sn;
4688619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 buffer_offset;
4689619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv4;
4690e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4691e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4692619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4693e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4694619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * PDU header of an iSCSI login request
4695e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4696619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_login_req_hdr_little_endian {
4697e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4698619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4699619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4700619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_NSG (0x3<<0)
4701619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_NSG_SHIFT 0
4702619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CSG (0x3<<2)
4703619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CSG_SHIFT 2
4704619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_RSRV0 (0x3<<4)
4705619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_RSRV0_SHIFT 4
4706619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG (0x1<<6)
4707619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG_SHIFT 6
4708619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TRANSIT (0x1<<7)
4709619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TRANSIT_SHIFT 7
4710619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 version_max;
4711619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 version_min;
4712619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4713619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 version_min;
4714619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 version_max;
4715619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4716619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_NSG (0x3<<0)
4717619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_NSG_SHIFT 0
4718619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CSG (0x3<<2)
4719619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CSG_SHIFT 2
4720619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_RSRV0 (0x3<<4)
4721619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_RSRV0_SHIFT 4
4722619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG (0x1<<6)
4723619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG_SHIFT 6
4724619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TRANSIT (0x1<<7)
4725619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TRANSIT_SHIFT 7
4726619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4727619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4728619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_fields;
4729619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
4730619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
4731619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
4732619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
4733619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 isid_lo;
4734619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4735619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 isid_hi;
4736619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tsih;
4737e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4738619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tsih;
4739619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 isid_hi;
4740e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4741619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 itt;
4742619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4743619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cid;
4744619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv1;
4745619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4746619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv1;
4747619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cid;
4748619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4749619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cmd_sn;
4750619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
4751619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv2[4];
4752e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4753e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4754e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4755619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * PDU header of an iSCSI logout request
4756e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4757619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_logout_req_hdr_little_endian {
4758e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4759619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4760619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4761619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_REASON_CODE (0x7F<<0)
4762619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_REASON_CODE_SHIFT 0
4763619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_RSRV1_1 (0x1<<7)
4764619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_RSRV1_1_SHIFT 7
4765619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4766e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4767619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4768619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4769619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_REASON_CODE (0x7F<<0)
4770619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_REASON_CODE_SHIFT 0
4771619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_RSRV1_1 (0x1<<7)
4772619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_RSRV1_1_SHIFT 7
4773619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4774619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4775619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_fields;
4776619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
4777619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
4778619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
4779619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
4780619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv2[2];
4781619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 itt;
4782619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4783619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cid;
4784619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv1;
4785619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4786619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv1;
4787619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cid;
4788e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4789619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cmd_sn;
4790619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
4791619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv3[4];
4792e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4793e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4794e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4795619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * PDU header of an iSCSI TMF request
4796e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4797619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_tmf_req_hdr_little_endian {
4798e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4799619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4800619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4801619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_FUNCTION (0x7F<<0)
4802619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_FUNCTION_SHIFT 0
4803619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_RSRV1_1 (0x1<<7)
4804619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_RSRV1_1_SHIFT 7
4805619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4806e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4807619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4808619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4809619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_FUNCTION (0x7F<<0)
4810619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_FUNCTION_SHIFT 0
4811619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_RSRV1_1 (0x1<<7)
4812619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_RSRV1_1_SHIFT 7
4813619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4814e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4815619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_fields;
4816619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
4817619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
4818619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
4819619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
4820619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lun;
4821619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 itt;
4822619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 referenced_task_tag;
4823619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cmd_sn;
4824619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
4825619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ref_cmd_sn;
4826619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_data_sn;
4827619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv2[2];
4828e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4829e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4830e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4831619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * PDU header of an iSCSI Text request
4832e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4833619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_text_req_hdr_little_endian {
4834619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4835619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4836619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4837619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_RSRV1 (0x3F<<0)
4838619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
4839619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG (0x1<<6)
4840619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG_SHIFT 6
4841619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_FINAL (0x1<<7)
4842619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_FINAL_SHIFT 7
4843619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4844619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4845619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4846619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4847619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_RSRV1 (0x3F<<0)
4848619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
4849619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG (0x1<<6)
4850619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG_SHIFT 6
4851619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_FINAL (0x1<<7)
4852619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_FINAL_SHIFT 7
4853619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4854619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4855619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_fields;
4856619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
4857619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
4858619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
4859619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
4860619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lun;
4861619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 itt;
4862619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ttt;
4863619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cmd_sn;
4864619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
4865619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv3[4];
4866e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4867e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4868e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4869619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * PDU header of an iSCSI Nop-Out
4870e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4871619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_nop_out_hdr_little_endian {
4872619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4873619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4874619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4875619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV1 (0x7F<<0)
4876619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
4877619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV2_1 (0x1<<7)
4878619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV2_1_SHIFT 7
4879619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4880619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4881619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4882619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4883619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV1 (0x7F<<0)
4884619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
4885619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV2_1 (0x1<<7)
4886619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV2_1_SHIFT 7
4887619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4888619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4889619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_fields;
4890619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
4891619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
4892619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
4893619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
4894619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lun;
4895619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 itt;
4896619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ttt;
4897619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cmd_sn;
4898619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
4899619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv3[4];
4900e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4901e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4902e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4903619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * iscsi pdu headers in little endian form.
4904e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4905619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion iscsi_pdu_headers_little_endian {
4906619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 fullHeaderSize[12];
4907619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_cmd_pdu_hdr_little_endian command_pdu_hdr;
4908619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_data_pdu_hdr_little_endian data_out_pdu_hdr;
4909619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_login_req_hdr_little_endian login_req_pdu_hdr;
4910619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_logout_req_hdr_little_endian logout_req_pdu_hdr;
4911619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_tmf_req_hdr_little_endian tmf_req_pdu_hdr;
4912619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_text_req_hdr_little_endian text_req_pdu_hdr;
4913619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_nop_out_hdr_little_endian nop_out_pdu_hdr;
4914e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4915e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4916619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_hq_bd {
4917619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union iscsi_pdu_headers_little_endian pdu_header;
4918e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4919619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved1;
4920619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 lcl_cmp_flg;
4921e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4922619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 lcl_cmp_flg;
4923619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved1;
4924e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4925619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 sgl_base_lo;
4926619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 sgl_base_hi;
4927e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4928619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sgl_size;
4929619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sge_index;
4930619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sge_offset;
4931e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4932619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sge_offset;
4933619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sge_index;
4934619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sgl_size;
4935e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4936e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4937e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4938e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4939e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4940619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * CQE data for L2 OOO connection $$KEEP_ENDIANNESS$$
4941e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4942619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_l2_ooo_data {
4943619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 iscsi_cid;
4944619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 drop_isle;
4945619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 drop_size;
4946619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ooo_opcode;
4947619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ooo_isle;
4948619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved[8];
4949e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4950e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4951e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4952e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4953e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4954619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4955619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4956619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry_xuc_c_write_only {
4957619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 total_data_acked;
4958e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4959e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4960619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_r2t_table_entry {
4961619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ttt;
4962619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 desired_data_len;
4963619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4964619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4965619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry_xuc_u_write_only {
4966619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_r2t_sn;
4967619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_r2t_table_entry r2t_table[4];
4968e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4969619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 data_in_count;
4970619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cq_id;
4971619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 valid_1b;
4972e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4973619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 valid_1b;
4974619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cq_id;
4975619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 data_in_count;
4976e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4977e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4978e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4979619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry_xuc {
4980619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_xuc_c_write_only write_c;
4981619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_data_transfer_len;
4982619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_xuc_x_write_only write_x;
4983619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 lun_lo;
4984619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_xuc_xu_write_both write_xu;
4985619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 lun_hi;
4986619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_xuc_u_write_only write_u;
4987619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4988619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4989619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry_u {
4990619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_r2t_buff_offset;
4991619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rem_rcv_len;
4992619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_data_sn;
4993619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4994619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4995619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry {
4996619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_x tce_x;
4997e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4998619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 data_out_count;
4999619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
5000e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
5001619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
5002619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 data_out_count;
5003e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
5004619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_xuc tce_xuc;
5005619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_u tce_u;
5006619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv1[7];
5007e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
5008e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
5009619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5010619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5011619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5012619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5013619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5014619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5015619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5016619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry_xuc_x_init_only {
5017619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lun;
5018619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_data_transfer_len;
5019e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5020e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5021619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5022619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5023619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5024619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5025619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5026619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5027619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5028619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5029619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5030619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5031619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5032619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5033619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5034619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5035619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5036619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5037e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5038e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * ipv6 structure
5039e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5040e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct ip_v6_addr {
5041e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 ip_addr_lo_lo;
5042e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 ip_addr_lo_hi;
5043e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 ip_addr_hi_lo;
5044e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 ip_addr_hi_hi;
5045e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5046e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5047619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5048619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5049e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5050e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5cm- connection identification params
5051e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5052e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct l5cm_conn_addr_params {
5053e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 pmtu;
5054e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
5055e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_3;
5056e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_2;
5057e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_1;
5058e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_0;
5059e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
5060e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_0;
5061e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_1;
5062e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_2;
5063e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_3;
5064e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
5065e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
5066e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 params;
5067e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_CONN_ADDR_PARAMS_IP_VERSION (0x1<<0)
5068e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_CONN_ADDR_PARAMS_IP_VERSION_SHIFT 0
5069e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_CONN_ADDR_PARAMS_RSRV (0x7FFF<<1)
5070e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_CONN_ADDR_PARAMS_RSRV_SHIFT 1
5071e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_5;
5072e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_4;
5073e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
5074e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_4;
5075e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_5;
5076e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 params;
5077e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_CONN_ADDR_PARAMS_IP_VERSION (0x1<<0)
5078e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_CONN_ADDR_PARAMS_IP_VERSION_SHIFT 0
5079e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_CONN_ADDR_PARAMS_RSRV (0x7FFF<<1)
5080e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_CONN_ADDR_PARAMS_RSRV_SHIFT 1
5081e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
5082e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct ip_v6_addr local_ip_addr;
5083e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct ip_v6_addr remote_ip_addr;
5084e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 ipv6_flow_label_20b;
5085e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 reserved1;
5086e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
5087e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 remote_tcp_port;
5088e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 local_tcp_port;
5089e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
5090e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 local_tcp_port;
5091e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 remote_tcp_port;
5092e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
5093e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5094e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5095e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5096e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5cm-xstorm connection buffer
5097e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5098e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct l5cm_xstorm_conn_buffer {
5099e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
5100e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 rsrv1;
5101e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 params;
5102e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_XSTORM_CONN_BUFFER_NAGLE_ENABLE (0x1<<0)
5103e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_XSTORM_CONN_BUFFER_NAGLE_ENABLE_SHIFT 0
5104e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_XSTORM_CONN_BUFFER_RSRV (0x7FFF<<1)
5105e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_XSTORM_CONN_BUFFER_RSRV_SHIFT 1
5106e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
5107e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 params;
5108e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_XSTORM_CONN_BUFFER_NAGLE_ENABLE (0x1<<0)
5109e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_XSTORM_CONN_BUFFER_NAGLE_ENABLE_SHIFT 0
5110e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_XSTORM_CONN_BUFFER_RSRV (0x7FFF<<1)
5111e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_XSTORM_CONN_BUFFER_RSRV_SHIFT 1
5112e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 rsrv1;
5113e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
5114e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
5115e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 mss;
5116e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 pseudo_header_checksum;
5117e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
5118e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 pseudo_header_checksum;
5119e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 mss;
5120e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
5121e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 rcv_buf;
5122e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 rsrv2;
5123e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct regpair context_addr;
5124e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5125e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5126e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5127e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5cm-tstorm connection buffer
5128e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5129e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct l5cm_tstorm_conn_buffer {
5130619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv1[2];
5131e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
5132e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 params;
5133e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_TSTORM_CONN_BUFFER_DELAYED_ACK_ENABLE (0x1<<0)
5134e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_TSTORM_CONN_BUFFER_DELAYED_ACK_ENABLE_SHIFT 0
5135e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_TSTORM_CONN_BUFFER_RSRV (0x7FFF<<1)
5136e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_TSTORM_CONN_BUFFER_RSRV_SHIFT 1
5137e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 ka_max_probe_count;
5138e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 ka_enable;
5139e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
5140e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 ka_enable;
5141e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 ka_max_probe_count;
5142e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 params;
5143e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_TSTORM_CONN_BUFFER_DELAYED_ACK_ENABLE (0x1<<0)
5144e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_TSTORM_CONN_BUFFER_DELAYED_ACK_ENABLE_SHIFT 0
5145e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_TSTORM_CONN_BUFFER_RSRV (0x7FFF<<1)
5146e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_TSTORM_CONN_BUFFER_RSRV_SHIFT 1
5147e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
5148e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 ka_timeout;
5149e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 ka_interval;
5150e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 max_rt_time;
5151e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5152e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5153e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5154e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5cm connection buffer for active side
5155e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5156e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct l5cm_active_conn_buffer {
5157e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct l5cm_conn_addr_params conn_addr_buf;
5158e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct l5cm_xstorm_conn_buffer xstorm_conn_buffer;
5159e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct l5cm_tstorm_conn_buffer tstorm_conn_buffer;
5160e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5161e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5162619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5163619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5164619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5165619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The l5cm opaque buffer passed in add new connection ramrod passive side
5166619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5167619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_hash_input_string {
5168619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __opaque1;
5169619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
5170619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __opaque3;
5171619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __opaque2;
5172619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
5173619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __opaque2;
5174619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __opaque3;
5175619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
5176619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ip_v6_addr __opaque4;
5177619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ip_v6_addr __opaque5;
5178619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __opaque6;
5179619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __opaque7[5];
5180619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5181619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5182619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5183619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5184619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * syn cookie component
5185619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5186619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_syn_cookie_comp {
5187619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __opaque;
5188619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5189619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5190619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5191619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * data related to listeners of a TCP port
5192619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5193619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_port_listener_data {
5194619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 params;
5195619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_ENABLE (0x1<<0)
5196619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_ENABLE_SHIFT 0
5197619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_IP_INDEX (0xF<<1)
5198619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_IP_INDEX_SHIFT 1
5199619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_NET_FILTER (0x1<<5)
5200619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_NET_FILTER_SHIFT 5
5201619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_DEFFERED_MODE (0x1<<6)
5202619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_DEFFERED_MODE_SHIFT 6
5203619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_MPA_MODE (0x1<<7)
5204619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_MPA_MODE_SHIFT 7
5205619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5206619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5207619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5208619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Opaque structure passed from U to X when final ack arrives
5209619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5210619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_opaque_buf {
5211619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __opaque1;
5212619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __opaque2;
5213619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __opaque3;
5214619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __opaque4;
5215619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_syn_cookie_comp __opaque5;
5216619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
5217619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv2;
5218619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv;
5219619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_port_listener_data __opaque6;
5220619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
5221619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_port_listener_data __opaque6;
5222619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv;
5223619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv2;
5224619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
5225619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5226619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5227619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5228e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5229e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5cm slow path element
5230e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5231e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct l5cm_packet_size {
5232e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 size;
5233e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 rsrv;
5234e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5235e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5236619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5237619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5238619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The final-ack union structure in PCS entry after final ack arrived
5239619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5240619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_pcse_ack {
5241619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_xstorm_conn_buffer tx_socket_params;
5242619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_opaque_buf opaque_buf;
5243619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_tstorm_conn_buffer rx_socket_params;
5244619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5245619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5246619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5247619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5248619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The syn union structure in PCS entry after syn arrived
5249619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5250619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_pcse_syn {
5251619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_opaque_buf opaque_buf;
5252619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv[12];
5253619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5254619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5255619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5256619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5257619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * pcs entry data for passive connections
5258619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5259619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_pcs_attributes {
5260619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
5261619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pcs_id;
5262619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 status;
5263619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
5264619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_NET_FILTER (0x1<<0)
5265619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_NET_FILTER_SHIFT 0
5266619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_CALCULATE_HASH (0x1<<1)
5267619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_CALCULATE_HASH_SHIFT 1
5268619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_COMPARE_HASH_RESULT (0x1<<2)
5269619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_COMPARE_HASH_RESULT_SHIFT 2
5270619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_QUERY_ULP_ACCEPT (0x1<<3)
5271619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_QUERY_ULP_ACCEPT_SHIFT 3
5272619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_FIND_DEST_MAC (0x1<<4)
5273619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_FIND_DEST_MAC_SHIFT 4
5274619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_L4_OFFLOAD (0x1<<5)
5275619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_L4_OFFLOAD_SHIFT 5
5276619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_FORWARD_PACKET (0x1<<6)
5277619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_FORWARD_PACKET_SHIFT 6
5278619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_RSRV (0x1<<7)
5279619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_RSRV_SHIFT 7
5280619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
5281619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
5282619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_NET_FILTER (0x1<<0)
5283619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_NET_FILTER_SHIFT 0
5284619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_CALCULATE_HASH (0x1<<1)
5285619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_CALCULATE_HASH_SHIFT 1
5286619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_COMPARE_HASH_RESULT (0x1<<2)
5287619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_COMPARE_HASH_RESULT_SHIFT 2
5288619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_QUERY_ULP_ACCEPT (0x1<<3)
5289619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_QUERY_ULP_ACCEPT_SHIFT 3
5290619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_FIND_DEST_MAC (0x1<<4)
5291619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_FIND_DEST_MAC_SHIFT 4
5292619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_L4_OFFLOAD (0x1<<5)
5293619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_L4_OFFLOAD_SHIFT 5
5294619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_FORWARD_PACKET (0x1<<6)
5295619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_FORWARD_PACKET_SHIFT 6
5296619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_RSRV (0x1<<7)
5297619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_RSRV_SHIFT 7
5298619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 status;
5299619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pcs_id;
5300619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
5301619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5302619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5303619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5304619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion l5cm_seg_params {
5305619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_pcse_syn syn_seg_params;
5306619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_pcse_ack ack_seg_params;
5307619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5308619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5309619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5310619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * pcs entry data for passive connections
5311619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5312619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_pcs_hdr {
5313619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_hash_input_string hash_input_string;
5314619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_conn_addr_params conn_addr_buf;
5315619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cid;
5316619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 hash_result;
5317619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union l5cm_seg_params seg_params;
5318619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_pcs_attributes att;
5319619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
5320619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv;
5321619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rx_seg_size;
5322619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
5323619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rx_seg_size;
5324619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv;
5325619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
5326619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5327619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5328619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5329619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * pcs entry for passive connections
5330619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5331619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_pcs_entry {
5332619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_pcs_hdr hdr;
5333619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rx_segment[1516];
5334619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5335619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5336619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5337619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5338619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5339e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5340e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5cm connection parameters
5341e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5342e251306556d30c9c678feca60204acaaa0784cbdMichael Chanunion l5cm_reduce_param_union {
5343523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u32 opaque1;
5344523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u32 opaque2;
5345e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5346e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5347e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5348e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5cm connection parameters
5349e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5350e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct l5cm_reduce_conn {
5351523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	union l5cm_reduce_param_union opaque1;
5352523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u32 opaque2;
5353e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5354e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5355e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5356e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5cm slow path element
5357e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5358e251306556d30c9c678feca60204acaaa0784cbdMichael Chanunion l5cm_specific_data {
5359e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 protocol_data[8];
5360e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct regpair phy_address;
5361e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct l5cm_packet_size packet_size;
5362e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct l5cm_reduce_conn reduced_conn;
5363e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5364e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5365e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5366e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5 slow path element
5367e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5368e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct l5cm_spe {
5369e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct spe_hdr hdr;
5370e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	union l5cm_specific_data data;
5371e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5372e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5373619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5374619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5375619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5376619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5377619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Termination variables
5378619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5379619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_term_vars {
5380619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 BitMap;
5381619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_TCP_STATE (0xF<<0)
5382619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_TCP_STATE_SHIFT 0
5383619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_FIN_RECEIVED_SBIT (0x1<<4)
5384619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_FIN_RECEIVED_SBIT_SHIFT 4
5385619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_ACK_ON_FIN_RECEIVED_SBIT (0x1<<5)
5386619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_ACK_ON_FIN_RECEIVED_SBIT_SHIFT 5
5387619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_TERM_ON_CHIP (0x1<<6)
5388619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_TERM_ON_CHIP_SHIFT 6
5389619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_RSRV (0x1<<7)
5390619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_RSRV_SHIFT 7
5391619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5392619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5393619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5394619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5395619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5396e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5397e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * Tstorm Tcp flags
5398e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5399e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct tstorm_l5cm_tcp_flags {
5400e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 flags;
5401e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define TSTORM_L5CM_TCP_FLAGS_VLAN_ID (0xFFF<<0)
5402e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define TSTORM_L5CM_TCP_FLAGS_VLAN_ID_SHIFT 0
5403e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define TSTORM_L5CM_TCP_FLAGS_RSRV0 (0x1<<12)
5404e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define TSTORM_L5CM_TCP_FLAGS_RSRV0_SHIFT 12
5405e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define TSTORM_L5CM_TCP_FLAGS_TS_ENABLED (0x1<<13)
5406e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define TSTORM_L5CM_TCP_FLAGS_TS_ENABLED_SHIFT 13
5407e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define TSTORM_L5CM_TCP_FLAGS_RSRV1 (0x3<<14)
5408e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define TSTORM_L5CM_TCP_FLAGS_RSRV1_SHIFT 14
5409e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5410e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5411619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5412e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5413e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * Xstorm Tcp flags
5414e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5415e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct xstorm_l5cm_tcp_flags {
5416e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 flags;
5417e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define XSTORM_L5CM_TCP_FLAGS_ENC_ENABLED (0x1<<0)
5418e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define XSTORM_L5CM_TCP_FLAGS_ENC_ENABLED_SHIFT 0
5419e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define XSTORM_L5CM_TCP_FLAGS_TS_ENABLED (0x1<<1)
5420e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define XSTORM_L5CM_TCP_FLAGS_TS_ENABLED_SHIFT 1
5421e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define XSTORM_L5CM_TCP_FLAGS_WND_SCL_EN (0x1<<2)
5422e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define XSTORM_L5CM_TCP_FLAGS_WND_SCL_EN_SHIFT 2
5423e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define XSTORM_L5CM_TCP_FLAGS_RSRV (0x1F<<3)
5424e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define XSTORM_L5CM_TCP_FLAGS_RSRV_SHIFT 3
5425e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5426e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5427619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5428619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5429619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5430619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Out-of-order states
5431619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5432619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovenum tcp_ooo_event {
5433619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_EVENT_ADD_PEN = 0,
5434619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_EVENT_ADD_NEW_ISLE = 1,
5435619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_EVENT_ADD_ISLE_RIGHT = 2,
5436619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_EVENT_ADD_ISLE_LEFT = 3,
5437619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_EVENT_JOIN = 4,
5438619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_EVENT_NOP = 5,
5439619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	MAX_TCP_OOO_EVENT
5440619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5441619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5442619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5443619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5444619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * OOO support modes
5445619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5446619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovenum tcp_tstorm_ooo {
5447619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_TSTORM_OOO_DROP_AND_PROC_ACK = 0,
5448619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_TSTORM_OOO_SEND_PURE_ACK = 1,
5449619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_TSTORM_OOO_SUPPORTED = 2,
5450619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	MAX_TCP_TSTORM_OOO
5451619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5452619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5453619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5454619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5455619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5456619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5457619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5458619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5459619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5460619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5461619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif /* __5710_HSI_CNIC_LE__ */
5462