cnic_defs.h revision 23021c21055f88a428b6deb6f803fa0d659e023f
1a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
2a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/* cnic.c: Broadcom CNIC core network driver.
3a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan *
4619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Copyright (c) 2006-2009 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
38e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KCQE_OPCODE_INIT_FUNC			(0x10)
39e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KCQE_OPCODE_DESTROY_FUNC			(0x11)
40e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KCQE_OPCODE_STAT_FUNC			(0x12)
41e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KCQE_OPCODE_OFFLOAD_CONN			(0x15)
42e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KCQE_OPCODE_ENABLE_CONN			(0x16)
43e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KCQE_OPCODE_DISABLE_CONN			(0x17)
44e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KCQE_OPCODE_DESTROY_CONN			(0x18)
45e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KCQE_OPCODE_CQ_EVENT_NOTIFICATION  (0x20)
46e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KCQE_OPCODE_FCOE_ERROR				(0x21)
47e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
48619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_RAMROD_CMD_ID_INIT_FUNC		(FCOE_KCQE_OPCODE_INIT_FUNC)
49619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_RAMROD_CMD_ID_DESTROY_FUNC		(FCOE_KCQE_OPCODE_DESTROY_FUNC)
50619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_RAMROD_CMD_ID_STAT_FUNC		(FCOE_KCQE_OPCODE_STAT_FUNC)
51e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_RAMROD_CMD_ID_OFFLOAD_CONN		(FCOE_KCQE_OPCODE_OFFLOAD_CONN)
52e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_RAMROD_CMD_ID_ENABLE_CONN		(FCOE_KCQE_OPCODE_ENABLE_CONN)
53e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_RAMROD_CMD_ID_DISABLE_CONN		(FCOE_KCQE_OPCODE_DISABLE_CONN)
54e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_RAMROD_CMD_ID_DESTROY_CONN		(FCOE_KCQE_OPCODE_DESTROY_CONN)
55e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_RAMROD_CMD_ID_TERMINATE_CONN	(0x81)
56e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
57e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KWQE_OPCODE_INIT1                  (0)
58e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KWQE_OPCODE_INIT2                  (1)
59e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KWQE_OPCODE_INIT3                  (2)
60e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KWQE_OPCODE_OFFLOAD_CONN1  (3)
61e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KWQE_OPCODE_OFFLOAD_CONN2  (4)
62e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KWQE_OPCODE_OFFLOAD_CONN3  (5)
63e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KWQE_OPCODE_OFFLOAD_CONN4  (6)
64e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KWQE_OPCODE_ENABLE_CONN	(7)
65e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KWQE_OPCODE_DISABLE_CONN	(8)
66e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KWQE_OPCODE_DESTROY_CONN	(9)
67e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KWQE_OPCODE_DESTROY		(10)
68e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KWQE_OPCODE_STAT			(11)
69e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
70dcc7e3a6a2a2464cf96dee329f7c58fe8c230d97Michael Chan#define FCOE_KCQE_COMPLETION_STATUS_ERROR	(0x1)
71e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define FCOE_KCQE_COMPLETION_STATUS_CTX_ALLOC_FAILURE	(0x3)
72e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
73a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/* KCQ (kernel completion queue) response op codes */
74a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_CLOSE_COMP             (53)
75a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_RESET_COMP             (54)
76a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_FW_TCP_UPDATE          (55)
77a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_CONNECT_COMPLETE       (56)
78a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_RESET_RECEIVED         (57)
79a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_CLOSE_RECEIVED         (58)
80a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_INIT_ULP               (61)
81a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
82a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_OFFLOAD_PG             (1)
83a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_UPDATE_PG              (9)
84a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQE_OPCODE_VALUE_UPLOAD_PG              (14)
85a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
86a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/* KCQ (kernel completion queue) completion status */
87523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define L4_KCQE_COMPLETION_STATUS_SUCCESS           (0)
8823021c21055f88a428b6deb6f803fa0d659e023fMichael Chan#define L4_KCQE_COMPLETION_STATUS_NIC_ERROR         (4)
89523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define L4_KCQE_COMPLETION_STATUS_TIMEOUT           (0x93)
90a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
91523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define L4_KCQE_COMPLETION_STATUS_CTX_ALLOC_FAIL    (0x83)
92523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define L4_KCQE_COMPLETION_STATUS_OFFLOADED_PG      (0x89)
93523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov
94523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define L4_KCQE_OPCODE_VALUE_OOO_EVENT_NOTIFICATION (0xa0)
95523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define L4_KCQE_OPCODE_VALUE_OOO_FLUSH              (0xa1)
96e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
97a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_LAYER_CODE (4)
98a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L2_LAYER_CODE (2)
99a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
100a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
101a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * L4 KCQ CQE
102a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
103a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kcq {
104a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 cid;
105a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 pg_cid;
106a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 conn_id;
107a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 pg_host_opaque;
108a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
109a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 status;
110a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved1;
111a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
112a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved1;
113a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 status;
114a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
115a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 reserved2[2];
116a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
117a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
118a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RESERVED3 (0x7<<0)
119a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RESERVED3_SHIFT 0
120a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RAMROD_COMPLETION (0x1<<3) /* Everest only */
121a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RAMROD_COMPLETION_SHIFT 3
122a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_LAYER_CODE (0x7<<4)
123a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_LAYER_CODE_SHIFT 4
124a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RESERVED4 (0x1<<7)
125a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RESERVED4_SHIFT 7
126a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
127a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 qe_self_seq;
128a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
129a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 qe_self_seq;
130a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
131a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
132a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RESERVED3 (0xF<<0)
133a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RESERVED3_SHIFT 0
134a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RAMROD_COMPLETION (0x1<<3) /* Everest only */
135a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RAMROD_COMPLETION_SHIFT 3
136a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_LAYER_CODE (0x7<<4)
137a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_LAYER_CODE_SHIFT 4
138a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RESERVED4 (0x1<<7)
139a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_RESERVED4_SHIFT 7
140a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
141a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
142a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
143a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
144a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
145a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * L4 KCQ CQE PG upload
146a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
147a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kcq_upload_pg {
148a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 pg_cid;
149a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
150a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 pg_status;
151a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 pg_ipid_count;
152a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
153a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 pg_ipid_count;
154a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 pg_status;
155a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
156a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 reserved1[5];
157a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
158a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
159a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_RESERVED3 (0xF<<0)
160a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_RESERVED3_SHIFT 0
161a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_LAYER_CODE (0x7<<4)
162a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_LAYER_CODE_SHIFT 4
163a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_RESERVED4 (0x1<<7)
164a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_RESERVED4_SHIFT 7
165a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
166a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 qe_self_seq;
167a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
168a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 qe_self_seq;
169a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
170a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
171a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_RESERVED3 (0xF<<0)
172a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_RESERVED3_SHIFT 0
173a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_LAYER_CODE (0x7<<4)
174a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_LAYER_CODE_SHIFT 4
175a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_RESERVED4 (0x1<<7)
176a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KCQ_UPLOAD_PG_RESERVED4_SHIFT 7
177a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
178a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
179a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
180a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
181a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
182a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * Gracefully close the connection request
183a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
184a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kwq_close_req {
185a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
186a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
187a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_RESERVED1 (0xF<<0)
188a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_RESERVED1_SHIFT 0
189a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_LAYER_CODE (0x7<<4)
190a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_LAYER_CODE_SHIFT 4
191a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_LINKED_WITH_NEXT (0x1<<7)
192a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_LINKED_WITH_NEXT_SHIFT 7
193a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
194a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved0;
195a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
196a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved0;
197a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
198a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
199a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_RESERVED1 (0xF<<0)
200a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_RESERVED1_SHIFT 0
201a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_LAYER_CODE (0x7<<4)
202a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_LAYER_CODE_SHIFT 4
203a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_LINKED_WITH_NEXT (0x1<<7)
204a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CLOSE_REQ_LINKED_WITH_NEXT_SHIFT 7
205a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
206a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 cid;
207a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 reserved2[6];
208a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
209a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
210a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
211a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
212a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * The first request to be passed in order to establish connection in option2
213a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
214a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kwq_connect_req1 {
215a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
216a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
217a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RESERVED1 (0xF<<0)
218a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RESERVED1_SHIFT 0
219a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_LAYER_CODE (0x7<<4)
220a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_LAYER_CODE_SHIFT 4
221a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_LINKED_WITH_NEXT (0x1<<7)
222a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_LINKED_WITH_NEXT_SHIFT 7
223a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
224a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 reserved0;
225a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 conn_flags;
226a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_IS_PG_HOST_OPAQUE (0x1<<0)
227a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_IS_PG_HOST_OPAQUE_SHIFT 0
228a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_IP_V6 (0x1<<1)
229a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_IP_V6_SHIFT 1
230a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_PASSIVE_FLAG (0x1<<2)
231a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_PASSIVE_FLAG_SHIFT 2
232a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RSRV (0x1F<<3)
233a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RSRV_SHIFT 3
234a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
235a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 conn_flags;
236a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_IS_PG_HOST_OPAQUE (0x1<<0)
237a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_IS_PG_HOST_OPAQUE_SHIFT 0
238a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_IP_V6 (0x1<<1)
239a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_IP_V6_SHIFT 1
240a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_PASSIVE_FLAG (0x1<<2)
241a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_PASSIVE_FLAG_SHIFT 2
242a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RSRV (0x1F<<3)
243a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RSRV_SHIFT 3
244a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 reserved0;
245a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
246a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
247a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RESERVED1 (0xF<<0)
248a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RESERVED1_SHIFT 0
249a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_LAYER_CODE (0x7<<4)
250a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_LAYER_CODE_SHIFT 4
251a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_LINKED_WITH_NEXT (0x1<<7)
252a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_LINKED_WITH_NEXT_SHIFT 7
253a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
254a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 cid;
255a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 pg_cid;
256a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 src_ip;
257a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 dst_ip;
258a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
259a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 dst_port;
260a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 src_port;
261a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
262a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 src_port;
263a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 dst_port;
264a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
265a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
266a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 rsrv1[3];
267a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 tcp_flags;
268a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_NO_DELAY_ACK (0x1<<0)
269a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_NO_DELAY_ACK_SHIFT 0
270a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_KEEP_ALIVE (0x1<<1)
271a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_KEEP_ALIVE_SHIFT 1
272a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_NAGLE_ENABLE (0x1<<2)
273a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_NAGLE_ENABLE_SHIFT 2
274a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_TIME_STAMP (0x1<<3)
275a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_TIME_STAMP_SHIFT 3
276a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_SACK (0x1<<4)
277a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_SACK_SHIFT 4
278a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_SEG_SCALING (0x1<<5)
279a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_SEG_SCALING_SHIFT 5
280a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RESERVED2 (0x3<<6)
281a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RESERVED2_SHIFT 6
282a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
283a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 tcp_flags;
284a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_NO_DELAY_ACK (0x1<<0)
285a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_NO_DELAY_ACK_SHIFT 0
286a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_KEEP_ALIVE (0x1<<1)
287a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_KEEP_ALIVE_SHIFT 1
288a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_NAGLE_ENABLE (0x1<<2)
289a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_NAGLE_ENABLE_SHIFT 2
290a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_TIME_STAMP (0x1<<3)
291a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_TIME_STAMP_SHIFT 3
292a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_SACK (0x1<<4)
293a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_SACK_SHIFT 4
294a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_SEG_SCALING (0x1<<5)
295a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_SEG_SCALING_SHIFT 5
296a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RESERVED2 (0x3<<6)
297a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ1_RESERVED2_SHIFT 6
298a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 rsrv1[3];
299a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
300a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 rsrv2;
301a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
302a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
303a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
304a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
305a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * The second ( optional )request to be passed in order to establish
306a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * connection in option2 - for IPv6 only
307a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
308a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kwq_connect_req2 {
309a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
310a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
311a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_RESERVED1 (0xF<<0)
312a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_RESERVED1_SHIFT 0
313a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_LAYER_CODE (0x7<<4)
314a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_LAYER_CODE_SHIFT 4
315a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_LINKED_WITH_NEXT (0x1<<7)
316a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_LINKED_WITH_NEXT_SHIFT 7
317a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
318a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 reserved0;
319a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 rsrv;
320a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
321a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 rsrv;
322a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 reserved0;
323a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
324a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
325a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_RESERVED1 (0xF<<0)
326a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_RESERVED1_SHIFT 0
327a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_LAYER_CODE (0x7<<4)
328a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_LAYER_CODE_SHIFT 4
329a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_LINKED_WITH_NEXT (0x1<<7)
330a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ2_LINKED_WITH_NEXT_SHIFT 7
331a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
332a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 reserved2;
333a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 src_ip_v6_2;
334a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 src_ip_v6_3;
335a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 src_ip_v6_4;
336a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 dst_ip_v6_2;
337a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 dst_ip_v6_3;
338a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 dst_ip_v6_4;
339a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
340a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
341a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
342a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
343a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * The third ( and last )request to be passed in order to establish
344a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * connection in option2
345a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
346a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kwq_connect_req3 {
347a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
348a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
349a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_RESERVED1 (0xF<<0)
350a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_RESERVED1_SHIFT 0
351a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_LAYER_CODE (0x7<<4)
352a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_LAYER_CODE_SHIFT 4
353a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_LINKED_WITH_NEXT (0x1<<7)
354a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_LINKED_WITH_NEXT_SHIFT 7
355a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
356a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved0;
357a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
358a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved0;
359a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
360a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
361a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_RESERVED1 (0xF<<0)
362a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_RESERVED1_SHIFT 0
363a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_LAYER_CODE (0x7<<4)
364a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_LAYER_CODE_SHIFT 4
365a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_LINKED_WITH_NEXT (0x1<<7)
366a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_CONNECT_REQ3_LINKED_WITH_NEXT_SHIFT 7
367a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
368a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 ka_timeout;
369a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 ka_interval ;
370a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
371a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 snd_seq_scale;
372a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 ttl;
373a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 tos;
374a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 ka_max_probe_count;
375a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
376a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 ka_max_probe_count;
377a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 tos;
378a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 ttl;
379a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 snd_seq_scale;
380a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
381a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
382a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 pmtu;
383a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 mss;
384a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
385a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 mss;
386a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 pmtu;
387a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
388a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 rcv_buf;
389a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 snd_buf;
390a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 seed;
391a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
392a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
393a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
394a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
395a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * a KWQE request to offload a PG connection
396a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
397a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kwq_offload_pg {
398a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
399a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
400a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_RESERVED1 (0xF<<0)
401a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_RESERVED1_SHIFT 0
402a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_LAYER_CODE (0x7<<4)
403a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_LAYER_CODE_SHIFT 4
404a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_LINKED_WITH_NEXT (0x1<<7)
405a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_LINKED_WITH_NEXT_SHIFT 7
406a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
407a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved0;
408a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
409a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved0;
410a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
411a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
412a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_RESERVED1 (0xF<<0)
413a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_RESERVED1_SHIFT 0
414a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_LAYER_CODE (0x7<<4)
415a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_LAYER_CODE_SHIFT 4
416a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_LINKED_WITH_NEXT (0x1<<7)
417a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_LINKED_WITH_NEXT_SHIFT 7
418a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
419a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
420a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 l2hdr_nbytes;
421a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 pg_flags;
422a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_SNAP_ENCAP (0x1<<0)
423a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_SNAP_ENCAP_SHIFT 0
424a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_VLAN_TAGGING (0x1<<1)
425a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_VLAN_TAGGING_SHIFT 1
426a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_RESERVED2 (0x3F<<2)
427a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_RESERVED2_SHIFT 2
428a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da0;
429a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da1;
430a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
431a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da1;
432a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da0;
433a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 pg_flags;
434a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_SNAP_ENCAP (0x1<<0)
435a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_SNAP_ENCAP_SHIFT 0
436a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_VLAN_TAGGING (0x1<<1)
437a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_VLAN_TAGGING_SHIFT 1
438a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_RESERVED2 (0x3F<<2)
439a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_OFFLOAD_PG_RESERVED2_SHIFT 2
440a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 l2hdr_nbytes;
441a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
442a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
443a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da2;
444a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da3;
445a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da4;
446a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da5;
447a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
448a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da5;
449a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da4;
450a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da3;
451a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da2;
452a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
453a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
454a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa0;
455a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa1;
456a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa2;
457a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa3;
458a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
459a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa3;
460a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa2;
461a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa1;
462a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa0;
463a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
464a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
465a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa4;
466a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa5;
467a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 etype;
468a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
469a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 etype;
470a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa5;
471a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 sa4;
472a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
473a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
474a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 vlan_tag;
475a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 ipid_start;
476a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
477a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 ipid_start;
478a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 vlan_tag;
479a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
480a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
481a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 ipid_count;
482a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved3;
483a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
484a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved3;
485a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 ipid_count;
486a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
487a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 host_opaque;
488a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
489a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
490a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
491a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
492a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * Abortively close the connection request
493a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
494a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kwq_reset_req {
495a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
496a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
497a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_RESERVED1 (0xF<<0)
498a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_RESERVED1_SHIFT 0
499a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_LAYER_CODE (0x7<<4)
500a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_LAYER_CODE_SHIFT 4
501a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_LINKED_WITH_NEXT (0x1<<7)
502a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_LINKED_WITH_NEXT_SHIFT 7
503a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
504a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved0;
505a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
506a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserved0;
507a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 op_code;
508a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
509a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_RESERVED1 (0xF<<0)
510a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_RESERVED1_SHIFT 0
511a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_LAYER_CODE (0x7<<4)
512a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_LAYER_CODE_SHIFT 4
513a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_LINKED_WITH_NEXT (0x1<<7)
514a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_RESET_REQ_LINKED_WITH_NEXT_SHIFT 7
515a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
516a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 cid;
517a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 reserved2[6];
518a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
519a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
520a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
521a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
522a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * a KWQE request to update a PG connection
523a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
524a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kwq_update_pg {
525a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
526a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
527a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_RESERVED1 (0xF<<0)
528a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_RESERVED1_SHIFT 0
529a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_LAYER_CODE (0x7<<4)
530a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_LAYER_CODE_SHIFT 4
531a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_LINKED_WITH_NEXT (0x1<<7)
532a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_LINKED_WITH_NEXT_SHIFT 7
533a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 opcode;
534a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 oper16;
535a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
536a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 oper16;
537a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 opcode;
538a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
539a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_RESERVED1 (0xF<<0)
540a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_RESERVED1_SHIFT 0
541a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_LAYER_CODE (0x7<<4)
542a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_LAYER_CODE_SHIFT 4
543a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_LINKED_WITH_NEXT (0x1<<7)
544a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_LINKED_WITH_NEXT_SHIFT 7
545a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
546a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 pg_cid;
547a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 pg_host_opaque;
548a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
549a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 pg_valids;
550a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_VALIDS_IPID_COUNT (0x1<<0)
551a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_VALIDS_IPID_COUNT_SHIFT 0
552a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_VALIDS_DA (0x1<<1)
553a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_VALIDS_DA_SHIFT 1
554a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_RESERVERD2 (0x3F<<2)
555a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_RESERVERD2_SHIFT 2
556a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 pg_unused_a;
557a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 pg_ipid_count;
558a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
559a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 pg_ipid_count;
560a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 pg_unused_a;
561a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 pg_valids;
562a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_VALIDS_IPID_COUNT (0x1<<0)
563a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_VALIDS_IPID_COUNT_SHIFT 0
564a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_VALIDS_DA (0x1<<1)
565a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_VALIDS_DA_SHIFT 1
566a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_RESERVERD2 (0x3F<<2)
567a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPDATE_PG_RESERVERD2_SHIFT 2
568a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
569a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
570a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserverd3;
571a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da0;
572a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da1;
573a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
574a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da1;
575a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da0;
576a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 reserverd3;
577a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
578a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
579a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da2;
580a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da3;
581a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da4;
582a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da5;
583a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
584a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da5;
585a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da4;
586a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da3;
587a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 da2;
588a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
589a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 reserved4;
590a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 reserved5;
591a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
592a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
593a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
594a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan/*
595a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan * a KWQE request to upload a PG or L4 context
596a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan */
597a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chanstruct l4_kwq_upload {
598a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#if defined(__BIG_ENDIAN)
599a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
600a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_RESERVED1 (0xF<<0)
601a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_RESERVED1_SHIFT 0
602a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_LAYER_CODE (0x7<<4)
603a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_LAYER_CODE_SHIFT 4
604a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_LINKED_WITH_NEXT (0x1<<7)
605a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_LINKED_WITH_NEXT_SHIFT 7
606a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 opcode;
607a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 oper16;
608a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#elif defined(__LITTLE_ENDIAN)
609a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u16 oper16;
610a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 opcode;
611a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u8 flags;
612a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_RESERVED1 (0xF<<0)
613a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_RESERVED1_SHIFT 0
614a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_LAYER_CODE (0x7<<4)
615a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_LAYER_CODE_SHIFT 4
616a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_LINKED_WITH_NEXT (0x1<<7)
617a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#define L4_KWQ_UPLOAD_LINKED_WITH_NEXT_SHIFT 7
618a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan#endif
619a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 cid;
620a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan	u32 reserved2[6];
621a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan};
622a463696039f7097ce87c21db3cf5c16cdcb3850dMichael Chan
623e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
624e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * bnx2x structures
625e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
626e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
627e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
628523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov * The iscsi aggregative context of Cstorm
629523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov */
630523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkovstruct cstorm_iscsi_ag_context {
631523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u32 agg_vars1;
632523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define CSTORM_ISCSI_AG_CONTEXT_STATE (0xFF<<0)
633523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define CSTORM_ISCSI_AG_CONTEXT_STATE_SHIFT 0
634523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<8)
635523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 8
636523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<9)
637523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 9
638523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<10)
639523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 10
640523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<11)
641523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 11
642523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_SE_CF_EN (0x1<<12)
643523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_SE_CF_EN_SHIFT 12
644523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_INV_CF_EN (0x1<<13)
645523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_INV_CF_EN_SHIFT 13
646619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF (0x3<<14)
647619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF_SHIFT 14
648523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED66 (0x3<<16)
649523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED66_SHIFT 16
650523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_FIN_RECEIVED_CF_EN (0x1<<18)
651523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_FIN_RECEIVED_CF_EN_SHIFT 18
652619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN (0x1<<19)
653619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN_SHIFT 19
654619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX2_CF_EN (0x1<<20)
655619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX2_CF_EN_SHIFT 20
656619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN (0x1<<21)
657619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN_SHIFT 21
658619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF_EN (0x1<<22)
659619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF_EN_SHIFT 22
660523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_REL_SEQ_RULE (0x7<<23)
661523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_REL_SEQ_RULE_SHIFT 23
662523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define CSTORM_ISCSI_AG_CONTEXT_HQ_PROD_RULE (0x3<<26)
663523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define CSTORM_ISCSI_AG_CONTEXT_HQ_PROD_RULE_SHIFT 26
664523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED52 (0x3<<28)
665523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED52_SHIFT 28
666523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED53 (0x3<<30)
667523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED53_SHIFT 30
668523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#if defined(__BIG_ENDIAN)
669523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __aux1_th;
670523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __aux1_val;
671523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 __agg_vars2;
672523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#elif defined(__LITTLE_ENDIAN)
673523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 __agg_vars2;
674523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __aux1_val;
675523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __aux1_th;
676523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#endif
677523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u32 rel_seq;
678523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u32 rel_seq_th;
679523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#if defined(__BIG_ENDIAN)
680523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 hq_cons;
681523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 hq_prod;
682523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#elif defined(__LITTLE_ENDIAN)
683523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 hq_prod;
684523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 hq_cons;
685523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#endif
686523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#if defined(__BIG_ENDIAN)
687523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __reserved62;
688523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __reserved61;
689523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __reserved60;
690523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __reserved59;
691523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#elif defined(__LITTLE_ENDIAN)
692523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __reserved59;
693523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __reserved60;
694523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __reserved61;
695523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u8 __reserved62;
696523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#endif
697523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#if defined(__BIG_ENDIAN)
698523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 __reserved64;
699619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_u_prod;
700523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#elif defined(__LITTLE_ENDIAN)
701619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_u_prod;
702523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 __reserved64;
703523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#endif
704523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u32 __cq_u_prod1;
705523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#if defined(__BIG_ENDIAN)
706523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 __agg_vars3;
707619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_u_pend;
708523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#elif defined(__LITTLE_ENDIAN)
709619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_u_pend;
710523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u16 __agg_vars3;
711523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#endif
712523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#if defined(__BIG_ENDIAN)
713e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __aux2_th;
714619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 aux2_val;
715e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
716619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 aux2_val;
717e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __aux2_th;
718e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
719e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
720e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
721e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
722619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The fcoe extra aggregative context section of Tstorm
723e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
724619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct tstorm_fcoe_extra_ag_context_section {
725619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __agg_val1;
726e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
727619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars2;
728619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val3;
729619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val2;
730e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
731619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val2;
732619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val3;
733619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars2;
734e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
735e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
736619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val5;
737619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val6;
738619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars3;
739e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
740619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars3;
741619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val6;
742619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val5;
743e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
744619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __lcq_prod;
745619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rtt_seq;
746619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rtt_time;
747619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __reserved66;
748619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 wnd_right_edge;
749619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 tcp_agg_vars1;
750619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_FIN_SENT_FLAG (0x1<<0)
751619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT 0
752619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG (0x1<<1)
753619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG_SHIFT 1
754619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF (0x3<<2)
755619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF_SHIFT 2
756619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF (0x3<<4)
757619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF_SHIFT 4
758619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF_EN (0x1<<6)
759619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF_EN_SHIFT 6
760619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF_EN (0x1<<7)
761619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF_EN_SHIFT 7
762619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN (0x1<<8)
763619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN_SHIFT 8
764619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LCQ_SND_EN (0x1<<9)
765619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LCQ_SND_EN_SHIFT 9
766619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<10)
767619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 10
768619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_FLAG (0x1<<11)
769619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_FLAG_SHIFT 11
770619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF_EN (0x1<<12)
771619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF_EN_SHIFT 12
772619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF_EN (0x1<<13)
773619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF_EN_SHIFT 13
774619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF (0x3<<14)
775619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF_SHIFT 14
776619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF (0x3<<16)
777619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF_SHIFT 16
778619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_BLOCKED (0x1<<18)
779619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_BLOCKED_SHIFT 18
780619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX10_CF_EN (0x1<<19)
781619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT 19
782619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX11_CF_EN (0x1<<20)
783619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX11_CF_EN_SHIFT 20
784619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX12_CF_EN (0x1<<21)
785619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX12_CF_EN_SHIFT 21
786619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED1 (0x3<<22)
787619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED1_SHIFT 22
788619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ (0xF<<24)
789619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ_SHIFT 24
790619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ (0xF<<28)
791619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ_SHIFT 28
792619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 snd_max;
793619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __lcq_cons;
794619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __reserved2;
795619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
796619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
797619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
798619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The fcoe aggregative context of Tstorm
799619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
800619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct tstorm_fcoe_ag_context {
801e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
802619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 ulp_credit;
803619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
804619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
805619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
806619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
807619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
808619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
809619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
810619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
811619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
812619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF (0x3<<4)
813619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_SHIFT 4
814619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG (0x1<<6)
815619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG_SHIFT 6
816619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG (0x1<<7)
817619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG_SHIFT 7
818619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
819e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
820619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
821619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
822619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
823619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
824619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
825619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
826619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
827619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
828619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
829619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
830619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF (0x3<<4)
831619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_SHIFT 4
832619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG (0x1<<6)
833619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG_SHIFT 6
834619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG (0x1<<7)
835619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG_SHIFT 7
836619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 ulp_credit;
837e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
838e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
839619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val4;
840619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars2;
841619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG (0x1<<0)
842619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG_SHIFT 0
843619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG (0x1<<1)
844619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG_SHIFT 1
845619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF (0x3<<2)
846619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF_SHIFT 2
847619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF (0x3<<4)
848619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF_SHIFT 4
849619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF (0x3<<6)
850619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF_SHIFT 6
851619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF (0x3<<8)
852619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF_SHIFT 8
853619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG (0x1<<10)
854619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG_SHIFT 10
855619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN (0x1<<11)
856619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN_SHIFT 11
857619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN (0x1<<12)
858619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN_SHIFT 12
859619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN (0x1<<13)
860619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN_SHIFT 13
861619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN (0x1<<14)
862619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN_SHIFT 14
863619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN (0x1<<15)
864619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN_SHIFT 15
865e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
866619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars2;
867619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG (0x1<<0)
868619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG_SHIFT 0
869619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG (0x1<<1)
870619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG_SHIFT 1
871619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF (0x3<<2)
872619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF_SHIFT 2
873619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF (0x3<<4)
874619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF_SHIFT 4
875619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF (0x3<<6)
876619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF_SHIFT 6
877619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF (0x3<<8)
878619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF_SHIFT 8
879619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG (0x1<<10)
880619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG_SHIFT 10
881619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN (0x1<<11)
882619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN_SHIFT 11
883619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN (0x1<<12)
884619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN_SHIFT 12
885619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN (0x1<<13)
886619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN_SHIFT 13
887619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN (0x1<<14)
888619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN_SHIFT 14
889619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN (0x1<<15)
890619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN_SHIFT 15
891619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val4;
892e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
893619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct tstorm_fcoe_extra_ag_context_section __extra_section;
894e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
895e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
896e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
897e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
898e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
899619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The tcp aggregative context section of Tstorm
900e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
901619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct tstorm_tcp_tcp_ag_context_section {
902619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __agg_val1;
903e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
904619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars2;
905619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val3;
906619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val2;
907e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
908619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val2;
909619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val3;
910619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars2;
911e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
912e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
913619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val5;
914619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val6;
915619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars3;
916e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
917619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars3;
918619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val6;
919619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val5;
920e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
921619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 snd_nxt;
922619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rtt_seq;
923619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rtt_time;
924619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __reserved66;
925619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 wnd_right_edge;
926619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 tcp_agg_vars1;
927619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG (0x1<<0)
928619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT 0
929619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG (0x1<<1)
930619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG_SHIFT 1
931619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF (0x3<<2)
932619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_SHIFT 2
933619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF (0x3<<4)
934619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_SHIFT 4
935619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_EN (0x1<<6)
936619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_EN_SHIFT 6
937619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN (0x1<<7)
938619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN_SHIFT 7
939619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN (0x1<<8)
940619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN_SHIFT 8
941619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_SND_NXT_EN (0x1<<9)
942619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_SND_NXT_EN_SHIFT 9
943619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<10)
944619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 10
945619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_FLAG (0x1<<11)
946619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_FLAG_SHIFT 11
947619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF_EN (0x1<<12)
948619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF_EN_SHIFT 12
949619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF_EN (0x1<<13)
950619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF_EN_SHIFT 13
951619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF (0x3<<14)
952619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF_SHIFT 14
953619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF (0x3<<16)
954619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF_SHIFT 16
955619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_BLOCKED (0x1<<18)
956619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_BLOCKED_SHIFT 18
957619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN (0x1<<19)
958619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT 19
959619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN (0x1<<20)
960619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN_SHIFT 20
961619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN (0x1<<21)
962619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN_SHIFT 21
963619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED1 (0x3<<22)
964619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED1_SHIFT 22
965619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ (0xF<<24)
966619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ_SHIFT 24
967619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ (0xF<<28)
968619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ_SHIFT 28
969619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 snd_max;
970619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 snd_una;
971619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __reserved2;
972e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
973e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
974619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
975619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The iscsi aggregative context of Tstorm
976619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
977619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct tstorm_iscsi_ag_context {
978e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
979619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 ulp_credit;
980619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
981619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
982619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
983619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
984619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
985619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
986619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
987619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
988619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
989619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF (0x3<<4)
990619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_SHIFT 4
991619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG (0x1<<6)
992619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG_SHIFT 6
993619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG (0x1<<7)
994619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG_SHIFT 7
995619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
996e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
997619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
998619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
999619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1000619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1001619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1002619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1003619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
1004619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
1005619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
1006619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
1007619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF (0x3<<4)
1008619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_SHIFT 4
1009619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG (0x1<<6)
1010619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG_SHIFT 6
1011619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG (0x1<<7)
1012619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG_SHIFT 7
1013619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 ulp_credit;
1014619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
1015619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
1016619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val4;
1017619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars2;
1018619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG (0x1<<0)
1019619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG_SHIFT 0
1020619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG (0x1<<1)
1021619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG_SHIFT 1
1022619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF (0x3<<2)
1023619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_SHIFT 2
1024619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF (0x3<<4)
1025619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_SHIFT 4
1026619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF (0x3<<6)
1027619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_SHIFT 6
1028619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF (0x3<<8)
1029619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_SHIFT 8
1030619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG (0x1<<10)
1031619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG_SHIFT 10
1032619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<11)
1033619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 11
1034619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN (0x1<<12)
1035619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN_SHIFT 12
1036619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN (0x1<<13)
1037619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN_SHIFT 13
1038619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN (0x1<<14)
1039619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN_SHIFT 14
1040619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN (0x1<<15)
1041619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN_SHIFT 15
1042619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
1043619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars2;
1044619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG (0x1<<0)
1045619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG_SHIFT 0
1046619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG (0x1<<1)
1047619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG_SHIFT 1
1048619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF (0x3<<2)
1049619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_SHIFT 2
1050619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF (0x3<<4)
1051619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_SHIFT 4
1052619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF (0x3<<6)
1053619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_SHIFT 6
1054619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF (0x3<<8)
1055619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_SHIFT 8
1056619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG (0x1<<10)
1057619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG_SHIFT 10
1058619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<11)
1059619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 11
1060619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN (0x1<<12)
1061619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN_SHIFT 12
1062619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN (0x1<<13)
1063619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN_SHIFT 13
1064619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN (0x1<<14)
1065619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN_SHIFT 14
1066619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN (0x1<<15)
1067619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN_SHIFT 15
1068619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val4;
1069e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1070619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct tstorm_tcp_tcp_ag_context_section tcp;
1071e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
1072e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1073e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1074619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
1075619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
1076619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The fcoe aggregative context of Ustorm
1077619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
1078619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_fcoe_ag_context {
1079e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1080619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __aux_counter_flags;
1081619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars2;
1082619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_TX_CF (0x3<<0)
1083619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_TX_CF_SHIFT 0
1084619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF (0x3<<2)
1085619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_SHIFT 2
1086619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE (0x7<<4)
1087619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE_SHIFT 4
1088619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK (0x1<<7)
1089619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK_SHIFT 7
1090619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
1091619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1092619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1093619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1094619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1095619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
1096619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
1097619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
1098619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
1099619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_INV_CF (0x3<<4)
1100619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_INV_CF_SHIFT 4
1101619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF (0x3<<6)
1102619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_SHIFT 6
1103619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
1104e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1105619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
1106619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
1107619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1108619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1109619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1110619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1111619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
1112619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
1113619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
1114619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
1115619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_INV_CF (0x3<<4)
1116619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_INV_CF_SHIFT 4
1117619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF (0x3<<6)
1118619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_SHIFT 6
1119619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars2;
1120619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_TX_CF (0x3<<0)
1121619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_TX_CF_SHIFT 0
1122619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF (0x3<<2)
1123619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_SHIFT 2
1124619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE (0x7<<4)
1125619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE_SHIFT 4
1126619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK (0x1<<7)
1127619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK_SHIFT 7
1128619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __aux_counter_flags;
1129e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1130e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1131619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cdu_usage;
1132619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_misc2;
1133619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_tx_seq_ack;
1134e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1135619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_tx_seq_ack;
1136619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_misc2;
1137619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cdu_usage;
1138e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1139619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 agg_misc4;
1140e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1141619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3_th;
1142619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3;
1143619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_misc3;
1144e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1145619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_misc3;
1146619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3;
1147619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3_th;
1148e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1149619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 expired_task_id;
1150619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 agg_misc4_th;
1151e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1152619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_prod;
1153619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_cons;
1154e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1155619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_cons;
1156619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_prod;
1157e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1158e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1159619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __reserved2;
1160619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 decision_rules;
1161619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE (0x7<<0)
1162619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE_SHIFT 0
1163619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
1164619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
1165619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG (0x1<<6)
1166619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG_SHIFT 6
1167619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_RESERVED1 (0x1<<7)
1168619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_RESERVED1_SHIFT 7
1169619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 decision_rule_enable_bits;
1170619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN (0x1<<0)
1171619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN_SHIFT 0
1172619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN (0x1<<1)
1173619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN_SHIFT 1
1174619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_TX_CF_EN (0x1<<2)
1175619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_TX_CF_EN_SHIFT 2
1176619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN (0x1<<3)
1177619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN_SHIFT 3
1178619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN (0x1<<4)
1179619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT 4
1180619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN (0x1<<5)
1181619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN_SHIFT 5
1182619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN (0x1<<6)
1183619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN_SHIFT 6
1184619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN (0x1<<7)
1185619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT 7
1186e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1187619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 decision_rule_enable_bits;
1188619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN (0x1<<0)
1189619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN_SHIFT 0
1190619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN (0x1<<1)
1191619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN_SHIFT 1
1192619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_TX_CF_EN (0x1<<2)
1193619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_TX_CF_EN_SHIFT 2
1194619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN (0x1<<3)
1195619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN_SHIFT 3
1196619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN (0x1<<4)
1197619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT 4
1198619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN (0x1<<5)
1199619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN_SHIFT 5
1200619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN (0x1<<6)
1201619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN_SHIFT 6
1202619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN (0x1<<7)
1203619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT 7
1204619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 decision_rules;
1205619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE (0x7<<0)
1206619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE_SHIFT 0
1207619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
1208619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
1209619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG (0x1<<6)
1210619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG_SHIFT 6
1211619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_RESERVED1 (0x1<<7)
1212619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_FCOE_AG_CONTEXT_RESERVED1_SHIFT 7
1213619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __reserved2;
1214e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1215e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
1216e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1217e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1218e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
1219619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The iscsi aggregative context of Ustorm
1220e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
1221619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_iscsi_ag_context {
1222e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1223619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __aux_counter_flags;
1224619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars2;
1225619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_TX_CF (0x3<<0)
1226619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_TX_CF_SHIFT 0
1227619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF (0x3<<2)
1228619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_SHIFT 2
1229619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE (0x7<<4)
1230619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE_SHIFT 4
1231619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK (0x1<<7)
1232619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK_SHIFT 7
1233619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
1234619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1235619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1236619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1237619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1238619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
1239619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
1240619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
1241619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
1242619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_INV_CF (0x3<<4)
1243619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_INV_CF_SHIFT 4
1244619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF (0x3<<6)
1245619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_SHIFT 6
1246619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
1247e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1248619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
1249619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
1250619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1251619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1252619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1253619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1254619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
1255619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
1256619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
1257619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
1258619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_INV_CF (0x3<<4)
1259619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_INV_CF_SHIFT 4
1260619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF (0x3<<6)
1261619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_SHIFT 6
1262619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars2;
1263619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_TX_CF (0x3<<0)
1264619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_TX_CF_SHIFT 0
1265619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF (0x3<<2)
1266619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_SHIFT 2
1267619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE (0x7<<4)
1268619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE_SHIFT 4
1269619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK (0x1<<7)
1270619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK_SHIFT 7
1271619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __aux_counter_flags;
1272e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1273e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1274619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cdu_usage;
1275619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_misc2;
1276619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __cq_local_comp_itt_val;
1277e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1278619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __cq_local_comp_itt_val;
1279619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_misc2;
1280619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cdu_usage;
1281e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1282619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 agg_misc4;
1283e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1284619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3_th;
1285619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3;
1286619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_misc3;
1287e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1288619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_misc3;
1289619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3;
1290619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3_th;
1291e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1292619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 agg_val1;
1293619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 agg_misc4_th;
1294e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1295619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val2_th;
1296619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val2;
1297e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1298619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val2;
1299619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val2_th;
1300e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1301e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1302619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __reserved2;
1303619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 decision_rules;
1304619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE (0x7<<0)
1305619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE_SHIFT 0
1306619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
1307619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
1308619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG (0x1<<6)
1309619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG_SHIFT 6
1310619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_RESERVED1 (0x1<<7)
1311619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_RESERVED1_SHIFT 7
1312619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 decision_rule_enable_bits;
1313619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN (0x1<<0)
1314619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN_SHIFT 0
1315619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN (0x1<<1)
1316619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN_SHIFT 1
1317619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN (0x1<<2)
1318619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN_SHIFT 2
1319619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN (0x1<<3)
1320619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN_SHIFT 3
1321619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN (0x1<<4)
1322619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN_SHIFT 4
1323619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<5)
1324619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 5
1325619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN (0x1<<6)
1326619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN_SHIFT 6
1327619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN (0x1<<7)
1328619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT 7
1329e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1330619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 decision_rule_enable_bits;
1331619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN (0x1<<0)
1332619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN_SHIFT 0
1333619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN (0x1<<1)
1334619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN_SHIFT 1
1335619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN (0x1<<2)
1336619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN_SHIFT 2
1337619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN (0x1<<3)
1338619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN_SHIFT 3
1339619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN (0x1<<4)
1340619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN_SHIFT 4
1341619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<5)
1342619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 5
1343619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN (0x1<<6)
1344619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN_SHIFT 6
1345619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN (0x1<<7)
1346619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT 7
1347619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 decision_rules;
1348619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE (0x7<<0)
1349619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE_SHIFT 0
1350619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
1351619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
1352619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG (0x1<<6)
1353619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG_SHIFT 6
1354619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_RESERVED1 (0x1<<7)
1355619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __USTORM_ISCSI_AG_CONTEXT_RESERVED1_SHIFT 7
1356619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __reserved2;
1357e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1358e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
1359e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1360e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1361e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
1362e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan * The fcoe aggregative context section of Xstorm
1363e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
1364e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chanstruct xstorm_fcoe_extra_ag_context_section {
1365e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1366e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 tcp_agg_vars1;
1367e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51 (0x3<<0)
1368e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51_SHIFT 0
1369e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED (0x3<<2)
1370e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT 2
1371619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF (0x3<<4)
1372619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT 4
1373e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN (0x1<<6)
1374e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN_SHIFT 6
1375e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG (0x1<<7)
1376e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG_SHIFT 7
1377e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __reserved_da_cnt;
1378e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __mtu;
1379e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1380e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __mtu;
1381e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __reserved_da_cnt;
1382e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 tcp_agg_vars1;
1383e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51 (0x3<<0)
1384e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51_SHIFT 0
1385e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED (0x3<<2)
1386e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT 2
1387619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF (0x3<<4)
1388619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT 4
1389e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN (0x1<<6)
1390e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN_SHIFT 6
1391e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG (0x1<<7)
1392e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG_SHIFT 7
1393e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1394619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 snd_nxt;
1395619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 tx_wnd;
1396e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 __reserved55;
1397619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 local_adv_wnd;
1398e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1399e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __agg_val8_th;
1400619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tx_dest;
1401e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 tcp_agg_vars2;
1402e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57 (0x1<<0)
1403e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57_SHIFT 0
1404e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58 (0x1<<1)
1405e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58_SHIFT 1
1406e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59 (0x1<<2)
1407e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59_SHIFT 2
1408e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG (0x1<<3)
1409e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT 3
1410e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX4_FLAG (0x1<<4)
1411e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT 4
1412e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED60 (0x1<<5)
1413e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED60_SHIFT 5
1414e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_ACK_TO_FE_UPDATED_EN (0x1<<6)
1415e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_ACK_TO_FE_UPDATED_EN_SHIFT 6
1416619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN (0x1<<7)
1417619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT 7
1418e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_TX_FIN_FLAG_EN (0x1<<8)
1419e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_TX_FIN_FLAG_EN_SHIFT 8
1420e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<9)
1421e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 9
1422e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SET_RTO_CF (0x3<<10)
1423e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT 10
1424e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF (0x3<<12)
1425e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT 12
1426619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF (0x3<<14)
1427619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT 14
1428e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1429e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 tcp_agg_vars2;
1430e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57 (0x1<<0)
1431e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57_SHIFT 0
1432e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58 (0x1<<1)
1433e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58_SHIFT 1
1434e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59 (0x1<<2)
1435e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59_SHIFT 2
1436e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG (0x1<<3)
1437e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT 3
1438e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX4_FLAG (0x1<<4)
1439e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT 4
1440e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED60 (0x1<<5)
1441e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED60_SHIFT 5
1442e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_ACK_TO_FE_UPDATED_EN (0x1<<6)
1443e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_ACK_TO_FE_UPDATED_EN_SHIFT 6
1444619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN (0x1<<7)
1445619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT 7
1446e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_TX_FIN_FLAG_EN (0x1<<8)
1447e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_TX_FIN_FLAG_EN_SHIFT 8
1448e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<9)
1449e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 9
1450e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SET_RTO_CF (0x3<<10)
1451e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT 10
1452e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF (0x3<<12)
1453e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT 12
1454619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF (0x3<<14)
1455619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT 14
1456619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tx_dest;
1457e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __agg_val8_th;
1458e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1459e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 __sq_base_addr_lo;
1460e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 __sq_base_addr_hi;
1461e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 __xfrq_base_addr_lo;
1462e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 __xfrq_base_addr_hi;
1463e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1464e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __xfrq_cons;
1465e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __xfrq_prod;
1466e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1467e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __xfrq_prod;
1468e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __xfrq_cons;
1469e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1470e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1471e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __tcp_agg_vars5;
1472e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __tcp_agg_vars4;
1473e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __tcp_agg_vars3;
1474e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __reserved_force_pure_ack_cnt;
1475e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1476e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __reserved_force_pure_ack_cnt;
1477e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __tcp_agg_vars3;
1478e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __tcp_agg_vars4;
1479e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __tcp_agg_vars5;
1480e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1481e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 __tcp_agg_vars6;
1482e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1483e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __agg_misc6;
1484e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __tcp_agg_vars7;
1485e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1486e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __tcp_agg_vars7;
1487e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __agg_misc6;
1488e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1489e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 __agg_val10;
1490e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 __agg_val10_th;
1491e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1492e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __reserved3;
1493e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __reserved2;
1494e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __da_only_cnt;
1495e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1496e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __da_only_cnt;
1497e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __reserved2;
1498e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __reserved3;
1499e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1500e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
1501e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1502e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
1503e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan * The fcoe aggregative context of Xstorm
1504e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
1505e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chanstruct xstorm_fcoe_ag_context {
1506e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1507e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 agg_val1;
1508e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars1;
1509e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1510e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1511e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1512e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1513e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED51 (0x1<<2)
1514e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED51_SHIFT 2
1515e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED52 (0x1<<3)
1516e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED52_SHIFT 3
1517e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
1518e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
1519e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_NAGLE_EN (0x1<<5)
1520e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_NAGLE_EN_SHIFT 5
1521e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG (0x1<<6)
1522e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT 6
1523e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED_UNA_GT_NXT_EN (0x1<<7)
1524e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED_UNA_GT_NXT_EN_SHIFT 7
1525e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __state;
1526e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1527e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __state;
1528e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars1;
1529e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1530e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1531e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1532e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1533e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED51 (0x1<<2)
1534e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED51_SHIFT 2
1535e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED52 (0x1<<3)
1536e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED52_SHIFT 3
1537e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
1538e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
1539e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_NAGLE_EN (0x1<<5)
1540e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_NAGLE_EN_SHIFT 5
1541e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG (0x1<<6)
1542e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT 6
1543e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED_UNA_GT_NXT_EN (0x1<<7)
1544e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED_UNA_GT_NXT_EN_SHIFT 7
1545e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 agg_val1;
1546e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1547e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1548e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 cdu_reserved;
1549e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __agg_vars4;
1550e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars3;
1551e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
1552e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
1553e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX19_CF (0x3<<6)
1554e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX19_CF_SHIFT 6
1555e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars2;
1556e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF (0x3<<0)
1557e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_SHIFT 0
1558e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_EN (0x1<<2)
1559e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT 2
1560e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX8_FLAG (0x1<<3)
1561e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX8_FLAG_SHIFT 3
1562e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX9_FLAG (0x1<<4)
1563e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX9_FLAG_SHIFT 4
1564e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE1 (0x3<<5)
1565e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE1_SHIFT 5
1566e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_EN (0x1<<7)
1567e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT 7
1568e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1569e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars2;
1570e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF (0x3<<0)
1571e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_SHIFT 0
1572e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_EN (0x1<<2)
1573e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT 2
1574e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX8_FLAG (0x1<<3)
1575e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX8_FLAG_SHIFT 3
1576e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX9_FLAG (0x1<<4)
1577e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX9_FLAG_SHIFT 4
1578e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE1 (0x3<<5)
1579e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE1_SHIFT 5
1580e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_EN (0x1<<7)
1581e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT 7
1582e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars3;
1583e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
1584e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
1585e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX19_CF (0x3<<6)
1586e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX19_CF_SHIFT 6
1587e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __agg_vars4;
1588e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 cdu_reserved;
1589e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1590e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 more_to_send;
1591e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1592e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 agg_vars5;
1593e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE5 (0x3<<0)
1594e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE5_SHIFT 0
1595e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
1596e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
1597e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
1598e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
1599e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_CONFQ_DEC_RULE (0x3<<14)
1600e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_CONFQ_DEC_RULE_SHIFT 14
1601e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 sq_cons;
1602e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1603e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 sq_cons;
1604e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 agg_vars5;
1605e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE5 (0x3<<0)
1606e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE5_SHIFT 0
1607e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
1608e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
1609e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
1610e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
1611e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_CONFQ_DEC_RULE (0x3<<14)
1612e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_CONFQ_DEC_RULE_SHIFT 14
1613e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1614e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	struct xstorm_fcoe_extra_ag_context_section __extra_section;
1615e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1616e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 agg_vars7;
1617e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AGG_VAL11_DECISION_RULE (0x7<<0)
1618e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT 0
1619e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX13_FLAG (0x1<<3)
1620e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX13_FLAG_SHIFT 3
1621e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_QUEUE0_CF (0x3<<4)
1622e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_QUEUE0_CF_SHIFT 4
1623e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE3 (0x3<<6)
1624e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE3_SHIFT 6
1625e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_AUX1_CF (0x3<<8)
1626e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_AUX1_CF_SHIFT 8
1627e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED62 (0x1<<10)
1628e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED62_SHIFT 10
1629e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX1_CF_EN (0x1<<11)
1630e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT 11
1631e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX10_FLAG (0x1<<12)
1632e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX10_FLAG_SHIFT 12
1633e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX11_FLAG (0x1<<13)
1634e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX11_FLAG_SHIFT 13
1635e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX12_FLAG (0x1<<14)
1636e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX12_FLAG_SHIFT 14
1637e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX2_FLAG (0x1<<15)
1638e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX2_FLAG_SHIFT 15
1639e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val3_th;
1640e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars6;
1641e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE6 (0x7<<0)
1642e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE6_SHIFT 0
1643e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_XFRQ_DEC_RULE (0x7<<3)
1644e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_XFRQ_DEC_RULE_SHIFT 3
1645e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_SQ_DEC_RULE (0x3<<6)
1646e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_SQ_DEC_RULE_SHIFT 6
1647e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1648e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars6;
1649e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE6 (0x7<<0)
1650e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE6_SHIFT 0
1651e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_XFRQ_DEC_RULE (0x7<<3)
1652e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_XFRQ_DEC_RULE_SHIFT 3
1653e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_SQ_DEC_RULE (0x3<<6)
1654e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_SQ_DEC_RULE_SHIFT 6
1655e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val3_th;
1656e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 agg_vars7;
1657e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AGG_VAL11_DECISION_RULE (0x7<<0)
1658e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT 0
1659e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX13_FLAG (0x1<<3)
1660e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX13_FLAG_SHIFT 3
1661e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_QUEUE0_CF (0x3<<4)
1662e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_QUEUE0_CF_SHIFT 4
1663e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE3 (0x3<<6)
1664e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE3_SHIFT 6
1665e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_AUX1_CF (0x3<<8)
1666e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_AUX1_CF_SHIFT 8
1667e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED62 (0x1<<10)
1668e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_RESERVED62_SHIFT 10
1669e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX1_CF_EN (0x1<<11)
1670e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT 11
1671e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX10_FLAG (0x1<<12)
1672e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX10_FLAG_SHIFT 12
1673e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX11_FLAG (0x1<<13)
1674e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX11_FLAG_SHIFT 13
1675e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX12_FLAG (0x1<<14)
1676e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX12_FLAG_SHIFT 14
1677e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX2_FLAG (0x1<<15)
1678e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define __XSTORM_FCOE_AG_CONTEXT_AUX2_FLAG_SHIFT 15
1679e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1680e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1681e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __agg_val11_th;
1682e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __agg_val11;
1683e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1684e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __agg_val11;
1685e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 __agg_val11_th;
1686e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1687e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1688e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __reserved1;
1689e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __agg_val6_th;
1690619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val9;
1691e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1692619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val9;
1693e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __agg_val6_th;
1694e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 __reserved1;
1695e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1696e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1697e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 confq_cons;
1698e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 confq_prod;
1699e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1700e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 confq_prod;
1701e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 confq_cons;
1702e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1703e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 agg_vars8;
1704619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_AG_CONTEXT_AGG_MISC2 (0xFFFFFF<<0)
1705619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_AG_CONTEXT_AGG_MISC2_SHIFT 0
1706e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_AGG_MISC3 (0xFF<<24)
1707e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#define XSTORM_FCOE_AG_CONTEXT_AGG_MISC3_SHIFT 24
1708e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1709619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_misc0;
1710e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 sq_prod;
1711e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1712e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 sq_prod;
1713619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_misc0;
1714e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1715e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1716e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val3;
1717e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val6;
1718e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val5_th;
1719e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val5;
1720e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1721e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val5;
1722e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val5_th;
1723e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val6;
1724e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_val3;
1725e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1726e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1727619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_misc1;
1728e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 agg_limit1;
1729e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1730e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u16 agg_limit1;
1731619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_misc1;
1732e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1733e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 completion_seq;
1734e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 confq_pbl_base_lo;
1735e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u32 confq_pbl_base_hi;
1736e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
1737e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1738619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
1739619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
1740e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
1741619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The tcp aggregative context section of Xstorm
1742e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
1743619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_tcp_tcp_ag_context_section {
1744e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1745619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tcp_agg_vars1;
1746619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF (0x3<<0)
1747619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF_SHIFT 0
1748619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED (0x3<<2)
1749619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT 2
1750619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF (0x3<<4)
1751619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT 4
1752619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN (0x1<<6)
1753619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN_SHIFT 6
1754619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG (0x1<<7)
1755619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG_SHIFT 7
1756619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __da_cnt;
1757619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 mss;
1758e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1759619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 mss;
1760619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __da_cnt;
1761619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tcp_agg_vars1;
1762619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF (0x3<<0)
1763619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF_SHIFT 0
1764619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED (0x3<<2)
1765619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT 2
1766619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF (0x3<<4)
1767619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT 4
1768619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN (0x1<<6)
1769619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN_SHIFT 6
1770619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG (0x1<<7)
1771619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG_SHIFT 7
1772e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1773619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 snd_nxt;
1774619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 tx_wnd;
1775619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 snd_una;
1776619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 local_adv_wnd;
1777e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1778619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val8_th;
1779619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tx_dest;
1780619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tcp_agg_vars2;
1781619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG (0x1<<0)
1782619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_SHIFT 0
1783619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED (0x1<<1)
1784619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED_SHIFT 1
1785619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE (0x1<<2)
1786619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE_SHIFT 2
1787619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX3_FLAG (0x1<<3)
1788619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT 3
1789619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX4_FLAG (0x1<<4)
1790619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT 4
1791619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_ENABLE (0x1<<5)
1792619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_ENABLE_SHIFT 5
1793619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN (0x1<<6)
1794619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN_SHIFT 6
1795619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN (0x1<<7)
1796619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT 7
1797619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN (0x1<<8)
1798619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN_SHIFT 8
1799619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<9)
1800619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 9
1801619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_RTO_CF (0x3<<10)
1802619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT 10
1803619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF (0x3<<12)
1804619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT 12
1805619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF (0x3<<14)
1806619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT 14
1807e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1808619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tcp_agg_vars2;
1809619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG (0x1<<0)
1810619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_SHIFT 0
1811619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED (0x1<<1)
1812619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED_SHIFT 1
1813619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE (0x1<<2)
1814619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE_SHIFT 2
1815619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX3_FLAG (0x1<<3)
1816619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT 3
1817619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX4_FLAG (0x1<<4)
1818619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT 4
1819619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_ENABLE (0x1<<5)
1820619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_ENABLE_SHIFT 5
1821619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN (0x1<<6)
1822619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN_SHIFT 6
1823619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN (0x1<<7)
1824619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT 7
1825619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN (0x1<<8)
1826619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN_SHIFT 8
1827619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<9)
1828619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 9
1829619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_RTO_CF (0x3<<10)
1830619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT 10
1831619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF (0x3<<12)
1832619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT 12
1833619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF (0x3<<14)
1834619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT 14
1835619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tx_dest;
1836619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val8_th;
1837e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1838619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ack_to_far_end;
1839619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rto_timer;
1840619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ka_timer;
1841619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ts_to_echo;
1842e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1843619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val7_th;
1844619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val7;
1845e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1846619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val7;
1847619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val7_th;
1848e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1849e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1850619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars5;
1851619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars4;
1852619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars3;
1853619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __force_pure_ack_cnt;
1854e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1855619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __force_pure_ack_cnt;
1856619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars3;
1857619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars4;
1858619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __tcp_agg_vars5;
1859619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
1860619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 tcp_agg_vars6;
1861619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_CF_EN (0x1<<0)
1862619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_CF_EN_SHIFT 0
1863619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_EN (0x1<<1)
1864619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_EN_SHIFT 1
1865619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX9_CF_EN (0x1<<2)
1866619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX9_CF_EN_SHIFT 2
1867619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN (0x1<<3)
1868619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT 3
1869619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX6_FLAG (0x1<<4)
1870619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX6_FLAG_SHIFT 4
1871619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX7_FLAG (0x1<<5)
1872619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX7_FLAG_SHIFT 5
1873619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX5_CF (0x3<<6)
1874619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX5_CF_SHIFT 6
1875619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX9_CF (0x3<<8)
1876619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX9_CF_SHIFT 8
1877619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF (0x3<<10)
1878619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_SHIFT 10
1879619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF (0x3<<12)
1880619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF_SHIFT 12
1881619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF (0x3<<14)
1882619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF_SHIFT 14
1883619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX13_CF (0x3<<16)
1884619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX13_CF_SHIFT 16
1885619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX14_CF (0x3<<18)
1886619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX14_CF_SHIFT 18
1887619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX15_CF (0x3<<20)
1888619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX15_CF_SHIFT 20
1889619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX16_CF (0x3<<22)
1890619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX16_CF_SHIFT 22
1891619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX17_CF (0x3<<24)
1892619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX17_CF_SHIFT 24
1893619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ECE_FLAG (0x1<<26)
1894619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ECE_FLAG_SHIFT 26
1895619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED71 (0x1<<27)
1896619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED71_SHIFT 27
1897619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_FORCE_PURE_ACK_CNT_DIRTY (0x1<<28)
1898619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_FORCE_PURE_ACK_CNT_DIRTY_SHIFT 28
1899619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TCP_AUTO_STOP_FLAG (0x1<<29)
1900619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TCP_AUTO_STOP_FLAG_SHIFT 29
1901619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DO_TS_UPDATE_FLAG (0x1<<30)
1902619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DO_TS_UPDATE_FLAG_SHIFT 30
1903619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CANCEL_RETRANSMIT_FLAG (0x1<<31)
1904619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CANCEL_RETRANSMIT_FLAG_SHIFT 31
1905619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
1906619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_misc6;
1907619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __tcp_agg_vars7;
1908619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
1909619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __tcp_agg_vars7;
1910619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_misc6;
1911619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
1912619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __agg_val10;
1913619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __agg_val10_th;
1914619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
1915619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __reserved3;
1916619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __reserved2;
1917619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __da_only_cnt;
1918619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
1919619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __da_only_cnt;
1920619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __reserved2;
1921619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __reserved3;
1922e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1923e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
1924e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
1925e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
1926619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The iscsi aggregative context of Xstorm
1927e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
1928619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_iscsi_ag_context {
1929e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1930619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val1;
1931e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars1;
1932619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1933619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1934619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1935619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1936619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
1937619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
1938619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
1939619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
1940619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
1941619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
1942619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_NAGLE_EN (0x1<<5)
1943619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_NAGLE_EN_SHIFT 5
1944619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG (0x1<<6)
1945619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT 6
1946619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_UNA_GT_NXT_EN (0x1<<7)
1947619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_UNA_GT_NXT_EN_SHIFT 7
1948e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 state;
1949e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1950e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 state;
1951e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 agg_vars1;
1952619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
1953619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
1954619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
1955619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
1956619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
1957619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
1958619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
1959619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
1960619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
1961619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
1962619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_NAGLE_EN (0x1<<5)
1963619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_NAGLE_EN_SHIFT 5
1964619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG (0x1<<6)
1965619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT 6
1966619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_UNA_GT_NXT_EN (0x1<<7)
1967619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_UNA_GT_NXT_EN_SHIFT 7
1968619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val1;
1969e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
1970e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
1971619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cdu_reserved;
1972619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_vars4;
1973619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars3;
1974619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
1975619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
1976619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_RX_TS_EN_CF (0x3<<6)
1977619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_RX_TS_EN_CF_SHIFT 6
1978619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars2;
1979619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF (0x3<<0)
1980619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_SHIFT 0
1981619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_EN (0x1<<2)
1982619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT 2
1983619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX8_FLAG (0x1<<3)
1984619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX8_FLAG_SHIFT 3
1985619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX9_FLAG (0x1<<4)
1986619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX9_FLAG_SHIFT 4
1987619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE1 (0x3<<5)
1988619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE1_SHIFT 5
1989619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_EN (0x1<<7)
1990619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT 7
1991e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
1992619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars2;
1993619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF (0x3<<0)
1994619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_SHIFT 0
1995619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_EN (0x1<<2)
1996619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT 2
1997619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX8_FLAG (0x1<<3)
1998619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX8_FLAG_SHIFT 3
1999619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX9_FLAG (0x1<<4)
2000619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX9_FLAG_SHIFT 4
2001619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE1 (0x3<<5)
2002619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE1_SHIFT 5
2003619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_EN (0x1<<7)
2004619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT 7
2005619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars3;
2006619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
2007619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
2008619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_RX_TS_EN_CF (0x3<<6)
2009619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_RX_TS_EN_CF_SHIFT 6
2010619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_vars4;
2011619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cdu_reserved;
2012619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
2013619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 more_to_send;
2014619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
2015619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars5;
2016619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE5 (0x3<<0)
2017619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE5_SHIFT 0
2018619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
2019619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
2020619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
2021619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
2022619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE2 (0x3<<14)
2023619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE2_SHIFT 14
2024619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sq_cons;
2025e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2026619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sq_cons;
2027619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars5;
2028619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE5 (0x3<<0)
2029619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE5_SHIFT 0
2030619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
2031619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
2032619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
2033619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
2034619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE2 (0x3<<14)
2035619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE2_SHIFT 14
2036e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2037619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_tcp_tcp_ag_context_section tcp;
2038e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2039619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars7;
2040619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AGG_VAL11_DECISION_RULE (0x7<<0)
2041619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT 0
2042619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX13_FLAG (0x1<<3)
2043619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX13_FLAG_SHIFT 3
2044619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_STORMS_SYNC_CF (0x3<<4)
2045619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_STORMS_SYNC_CF_SHIFT 4
2046619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE3 (0x3<<6)
2047619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE3_SHIFT 6
2048619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_AUX1_CF (0x3<<8)
2049619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_SHIFT 8
2050619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK (0x1<<10)
2051619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK_SHIFT 10
2052619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN (0x1<<11)
2053619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN_SHIFT 11
2054619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX10_FLAG (0x1<<12)
2055619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX10_FLAG_SHIFT 12
2056619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX11_FLAG (0x1<<13)
2057619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX11_FLAG_SHIFT 13
2058619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX12_FLAG (0x1<<14)
2059619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX12_FLAG_SHIFT 14
2060619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_RX_WND_SCL_EN (0x1<<15)
2061619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_RX_WND_SCL_EN_SHIFT 15
2062619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3_th;
2063619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars6;
2064619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE6 (0x7<<0)
2065619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE6_SHIFT 0
2066619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE7 (0x7<<3)
2067619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE7_SHIFT 3
2068619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE4 (0x3<<6)
2069619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE4_SHIFT 6
2070e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2071619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars6;
2072619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE6 (0x7<<0)
2073619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE6_SHIFT 0
2074619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE7 (0x7<<3)
2075619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE7_SHIFT 3
2076619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE4 (0x3<<6)
2077619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE4_SHIFT 6
2078619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3_th;
2079619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars7;
2080619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AGG_VAL11_DECISION_RULE (0x7<<0)
2081619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT 0
2082619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX13_FLAG (0x1<<3)
2083619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX13_FLAG_SHIFT 3
2084619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_STORMS_SYNC_CF (0x3<<4)
2085619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_STORMS_SYNC_CF_SHIFT 4
2086619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE3 (0x3<<6)
2087619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE3_SHIFT 6
2088619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_AUX1_CF (0x3<<8)
2089619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_SHIFT 8
2090619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK (0x1<<10)
2091619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK_SHIFT 10
2092619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN (0x1<<11)
2093619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN_SHIFT 11
2094619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX10_FLAG (0x1<<12)
2095619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX10_FLAG_SHIFT 12
2096619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX11_FLAG (0x1<<13)
2097619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX11_FLAG_SHIFT 13
2098619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX12_FLAG (0x1<<14)
2099619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_AUX12_FLAG_SHIFT 14
2100619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_RX_WND_SCL_EN (0x1<<15)
2101619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_ISCSI_AG_CONTEXT_RX_WND_SCL_EN_SHIFT 15
2102e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2103e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2104619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val11_th;
2105619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __gen_data;
2106e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2107619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __gen_data;
2108619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val11_th;
2109e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2110e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2111619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __reserved1;
2112619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val6_th;
2113619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val9;
2114e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2115619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val9;
2116619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val6_th;
2117619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __reserved1;
2118e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2119e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2120619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_prod;
2121619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_cons;
2122e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2123619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_cons;
2124619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_prod;
2125e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2126619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 agg_vars8;
2127619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_AGG_MISC2 (0xFFFFFF<<0)
2128619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_AGG_MISC2_SHIFT 0
2129619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_AGG_MISC3 (0xFF<<24)
2130619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_AG_CONTEXT_AGG_MISC3_SHIFT 24
2131e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2132619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 r2tq_prod;
2133619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sq_prod;
2134e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2135619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sq_prod;
2136619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 r2tq_prod;
2137619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
2138619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
2139619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3;
2140619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val6;
2141619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val5_th;
2142619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val5;
2143619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
2144619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val5;
2145619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val5_th;
2146619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val6;
2147619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3;
2148619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
2149619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
2150619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_misc1;
2151619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_limit1;
2152619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
2153619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_limit1;
2154619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_misc1;
2155e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2156619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 hq_cons_tcp_seq;
2157619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
2158619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rst_seq_num;
2159e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
2160e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
2161619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2162e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
2163619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The L5cm aggregative context of XStorm
2164e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
2165619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_l5cm_ag_context {
2166e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2167619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val1;
2168619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
2169619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
2170619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
2171619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
2172619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
2173619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
2174619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
2175619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
2176619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
2177619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
2178619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
2179619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_NAGLE_EN (0x1<<5)
2180619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_NAGLE_EN_SHIFT 5
2181619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_DQ_SPARE_FLAG (0x1<<6)
2182619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT 6
2183619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_UNA_GT_NXT_EN (0x1<<7)
2184619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_UNA_GT_NXT_EN_SHIFT 7
2185619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
2186e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2187619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 state;
2188619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars1;
2189619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
2190619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
2191619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
2192619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
2193619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
2194619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
2195619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
2196619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
2197619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
2198619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
2199619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_NAGLE_EN (0x1<<5)
2200619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_NAGLE_EN_SHIFT 5
2201619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_DQ_SPARE_FLAG (0x1<<6)
2202619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT 6
2203619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_UNA_GT_NXT_EN (0x1<<7)
2204619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_UNA_GT_NXT_EN_SHIFT 7
2205619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val1;
2206e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2207e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2208619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cdu_reserved;
2209619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_vars4;
2210619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars3;
2211619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
2212619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
2213619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_RX_TS_EN_CF (0x3<<6)
2214619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_RX_TS_EN_CF_SHIFT 6
2215619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars2;
2216619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX4_CF (0x3<<0)
2217619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX4_CF_SHIFT 0
2218619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_DQ_SPARE_FLAG_EN (0x1<<2)
2219619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT 2
2220619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX8_FLAG (0x1<<3)
2221619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX8_FLAG_SHIFT 3
2222619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX9_FLAG (0x1<<4)
2223619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX9_FLAG_SHIFT 4
2224619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE1 (0x3<<5)
2225619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE1_SHIFT 5
2226619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX4_CF_EN (0x1<<7)
2227619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX4_CF_EN_SHIFT 7
2228e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2229619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars2;
2230619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX4_CF (0x3<<0)
2231619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX4_CF_SHIFT 0
2232619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_DQ_SPARE_FLAG_EN (0x1<<2)
2233619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT 2
2234619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX8_FLAG (0x1<<3)
2235619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX8_FLAG_SHIFT 3
2236619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX9_FLAG (0x1<<4)
2237619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX9_FLAG_SHIFT 4
2238619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE1 (0x3<<5)
2239619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE1_SHIFT 5
2240619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX4_CF_EN (0x1<<7)
2241619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX4_CF_EN_SHIFT 7
2242619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars3;
2243619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
2244619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
2245619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_RX_TS_EN_CF (0x3<<6)
2246619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_RX_TS_EN_CF_SHIFT 6
2247619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_vars4;
2248619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cdu_reserved;
2249e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2250619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 more_to_send;
2251e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2252619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars5;
2253619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE5 (0x3<<0)
2254619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE5_SHIFT 0
2255619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
2256619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
2257619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
2258619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
2259619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE2 (0x3<<14)
2260619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE2_SHIFT 14
2261619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val4_th;
2262619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
2263619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val4_th;
2264619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars5;
2265619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE5 (0x3<<0)
2266619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE5_SHIFT 0
2267619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
2268619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
2269619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
2270619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
2271619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE2 (0x3<<14)
2272619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE2_SHIFT 14
2273e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2274619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_tcp_tcp_ag_context_section tcp;
2275e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2276619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars7;
2277619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AGG_VAL11_DECISION_RULE (0x7<<0)
2278619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT 0
2279619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX13_FLAG (0x1<<3)
2280619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX13_FLAG_SHIFT 3
2281619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_STORMS_SYNC_CF (0x3<<4)
2282619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_STORMS_SYNC_CF_SHIFT 4
2283619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE3 (0x3<<6)
2284619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE3_SHIFT 6
2285619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX1_CF (0x3<<8)
2286619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX1_CF_SHIFT 8
2287619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK (0x1<<10)
2288619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK_SHIFT 10
2289619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX1_CF_EN (0x1<<11)
2290619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX1_CF_EN_SHIFT 11
2291619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX10_FLAG (0x1<<12)
2292619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX10_FLAG_SHIFT 12
2293619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX11_FLAG (0x1<<13)
2294619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX11_FLAG_SHIFT 13
2295619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX12_FLAG (0x1<<14)
2296619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX12_FLAG_SHIFT 14
2297619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_RX_WND_SCL_EN (0x1<<15)
2298619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_RX_WND_SCL_EN_SHIFT 15
2299619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3_th;
2300619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars6;
2301619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE6 (0x7<<0)
2302619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE6_SHIFT 0
2303619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE7 (0x7<<3)
2304619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE7_SHIFT 3
2305619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE4 (0x3<<6)
2306619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE4_SHIFT 6
2307e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2308619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_vars6;
2309619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE6 (0x7<<0)
2310619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE6_SHIFT 0
2311619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE7 (0x7<<3)
2312619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE7_SHIFT 3
2313619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE4 (0x3<<6)
2314619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE4_SHIFT 6
2315619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3_th;
2316619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_vars7;
2317619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AGG_VAL11_DECISION_RULE (0x7<<0)
2318619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT 0
2319619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX13_FLAG (0x1<<3)
2320619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX13_FLAG_SHIFT 3
2321619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_STORMS_SYNC_CF (0x3<<4)
2322619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_STORMS_SYNC_CF_SHIFT 4
2323619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE3 (0x3<<6)
2324619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_DECISION_RULE3_SHIFT 6
2325619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX1_CF (0x3<<8)
2326619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AUX1_CF_SHIFT 8
2327619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK (0x1<<10)
2328619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK_SHIFT 10
2329619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX1_CF_EN (0x1<<11)
2330619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX1_CF_EN_SHIFT 11
2331619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX10_FLAG (0x1<<12)
2332619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX10_FLAG_SHIFT 12
2333619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX11_FLAG (0x1<<13)
2334619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX11_FLAG_SHIFT 13
2335619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX12_FLAG (0x1<<14)
2336619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_AUX12_FLAG_SHIFT 14
2337619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_RX_WND_SCL_EN (0x1<<15)
2338619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_L5CM_AG_CONTEXT_RX_WND_SCL_EN_SHIFT 15
2339e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2340e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2341619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val11_th;
2342619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __gen_data;
2343e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2344619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __gen_data;
2345619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val11_th;
2346e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2347e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2348619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __reserved1;
2349619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val6_th;
2350619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val9;
2351e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2352619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_val9;
2353619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __agg_val6_th;
2354619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __reserved1;
2355e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2356e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2357619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val2_th;
2358619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val2;
2359e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2360619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val2;
2361619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val2_th;
2362e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2363619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 agg_vars8;
2364619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AGG_MISC2 (0xFFFFFF<<0)
2365619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AGG_MISC2_SHIFT 0
2366619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AGG_MISC3 (0xFF<<24)
2367619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_L5CM_AG_CONTEXT_AGG_MISC3_SHIFT 24
2368e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2369619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_misc0;
2370619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val4;
2371e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2372619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_val4;
2373619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_misc0;
2374e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2375e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2376619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3;
2377619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val6;
2378619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val5_th;
2379619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val5;
2380e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
2381619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val5;
2382619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val5_th;
2383619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val6;
2384619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 agg_val3;
2385e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
2386e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
2387619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_misc1;
2388619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_limit1;
2389523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#elif defined(__LITTLE_ENDIAN)
2390619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 agg_limit1;
2391619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __agg_misc1;
2392523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov#endif
2393619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 completion_seq;
2394619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 agg_misc4;
2395619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rst_seq_num;
2396e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
2397e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
2398e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
2399619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * ABTS info $$KEEP_ENDIANNESS$$
2400e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
2401619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_abts_info {
2402619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 aborted_task_id;
2403619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved0;
2404619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved1;
2405e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
2406e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
2407619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2408e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
2409619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fixed size structure in order to plant it in Union structure
2410619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * $$KEEP_ENDIANNESS$$
2411e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
2412619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_abts_rsp_union {
2413619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 r_ctl;
2414619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv[3];
2415619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 abts_rsp_payload[7];
2416523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov};
2417523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov
2418619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2419523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov/*
2420619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * 4 regs size $$KEEP_ENDIANNESS$$
2421e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2422619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_bd_ctx {
2423619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 buf_addr_hi;
2424619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 buf_addr_lo;
2425619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 buf_len;
2426619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rsrv0;
2427619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 flags;
2428619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rsrv1;
2429e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2430e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2431619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2432e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2433619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE cached sges context $$KEEP_ENDIANNESS$$
2434e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2435619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_cached_sge_ctx {
2436619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair cur_buf_addr;
2437619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 cur_buf_rem;
2438619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 second_buf_rem;
2439619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair second_buf_addr;
2440e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2441e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2442619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2443e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2444619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Cleanup info $$KEEP_ENDIANNESS$$
2445e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2446619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_cleanup_info {
2447619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 cleaned_task_id;
2448619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rolled_tx_seq_cnt;
2449619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rolled_tx_data_offset;
2450e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2451e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2452619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2453e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2454619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcp RSP flags $$KEEP_ENDIANNESS$$
2455e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2456619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_fcp_rsp_flags {
2457619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
2458619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_RSP_LEN_VALID (0x1<<0)
2459619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_RSP_LEN_VALID_SHIFT 0
2460619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_SNS_LEN_VALID (0x1<<1)
2461619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_SNS_LEN_VALID_SHIFT 1
2462619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_RESID_OVER (0x1<<2)
2463619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_RESID_OVER_SHIFT 2
2464619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_RESID_UNDER (0x1<<3)
2465619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_RESID_UNDER_SHIFT 3
2466619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_CONF_REQ (0x1<<4)
2467619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_CONF_REQ_SHIFT 4
2468619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_BIDI_FLAGS (0x7<<5)
2469619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_FCP_RSP_FLAGS_FCP_BIDI_FLAGS_SHIFT 5
2470e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2471e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2472e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2473619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcp RSP payload $$KEEP_ENDIANNESS$$
2474e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2475619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_fcp_rsp_payload {
2476619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair reserved0;
2477619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 fcp_resid;
2478619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 scsi_status_code;
2479619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fcp_rsp_flags fcp_flags;
2480619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 retry_delay_timer;
2481619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 fcp_rsp_len;
2482619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 fcp_sns_len;
2483e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2484e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2485e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2486619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fixed size structure in order to plant it in Union structure
2487619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * $$KEEP_ENDIANNESS$$
2488e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2489619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_fcp_rsp_union {
2490619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fcp_rsp_payload payload;
2491619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair reserved0;
2492e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2493e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2494e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2495619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FC header $$KEEP_ENDIANNESS$$
2496e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2497619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_fc_hdr {
2498619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 s_id[3];
2499619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cs_ctl;
2500619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 d_id[3];
2501619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 r_ctl;
2502619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 seq_cnt;
2503619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 df_ctl;
2504619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 seq_id;
2505619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 f_ctl[3];
2506619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 type;
2507619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 parameters;
2508619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rx_id;
2509619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 ox_id;
2510e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2511e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2512e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2513619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FC header union $$KEEP_ENDIANNESS$$
2514e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2515619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_mp_rsp_union {
2516619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fc_hdr fc_hdr;
2517619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 mp_payload_len;
2518619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rsrv;
2519e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2520e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2521e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2522619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Completion information $$KEEP_ENDIANNESS$$
2523e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2524619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_comp_flow_info {
2525619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fcp_rsp_union fcp_rsp;
2526619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_abts_rsp_union abts_rsp;
2527619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_mp_rsp_union mp_rsp;
2528619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 opaque[8];
2529e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2530e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2531619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2532e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2533619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * External ABTS info $$KEEP_ENDIANNESS$$
2534e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2535619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_ext_abts_info {
2536619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rsrv0[6];
2537619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_abts_info ctx;
2538e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2539e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2540619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2541e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2542619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * External cleanup info $$KEEP_ENDIANNESS$$
2543e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2544619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_ext_cleanup_info {
2545619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rsrv0[6];
2546619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_cleanup_info ctx;
2547e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
2548e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
2549619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2550e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
2551619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcoe FW Tx sequence context $$KEEP_ENDIANNESS$$
2552e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
2553619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_fw_tx_seq_ctx {
2554619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 data_offset;
2555619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 seq_cnt;
2556619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rsrv0;
2557619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2558619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2559619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2560619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcoe external FW Tx sequence context $$KEEP_ENDIANNESS$$
2561619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2562619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_ext_fw_tx_seq_ctx {
2563619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rsrv0[6];
2564619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fw_tx_seq_ctx ctx;
2565619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2566619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2567619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2568619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2569619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE multiple sges context $$KEEP_ENDIANNESS$$
2570619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2571619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_mul_sges_ctx {
2572619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair cur_sge_addr;
2573619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 cur_sge_off;
2574619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cur_sge_idx;
2575619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sgl_size;
2576619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2577619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2578619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2579619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE external multiple sges context $$KEEP_ENDIANNESS$$
2580619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2581619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_ext_mul_sges_ctx {
2582619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_mul_sges_ctx mul_sgl;
2583619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair rsrv0;
2584619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2585619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2586619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2587619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2588619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCP CMD payload $$KEEP_ENDIANNESS$$
2589619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2590619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_fcp_cmd_payload {
2591619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 opaque[8];
2592619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2593619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2594619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2595619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2596619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2597619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2598619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2599619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcp xfr rdy payload $$KEEP_ENDIANNESS$$
2600619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2601619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_fcp_xfr_rdy_payload {
2602619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 burst_len;
2603619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 data_ro;
2604619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2605619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2606619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2607619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2608619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FC frame $$KEEP_ENDIANNESS$$
2609619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2610619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_fc_frame {
2611619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fc_hdr fc_hdr;
2612619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved0[2];
2613619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2614619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2615619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2616619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2617619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2618619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2619619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE KCQ CQE parameters $$KEEP_ENDIANNESS$$
2620619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2621619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_kcqe_params {
2622619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved0[4];
2623619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2624619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2625619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2626619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE KCQ CQE $$KEEP_ENDIANNESS$$
2627619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2628619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kcqe {
2629619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 fcoe_conn_id;
2630619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 completion_status;
2631619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 fcoe_conn_context_id;
2632619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_kcqe_params params;
2633619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 qe_self_seq;
2634619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_code;
2635619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
2636619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KCQE_RESERVED0 (0x7<<0)
2637619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KCQE_RESERVED0_SHIFT 0
2638619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KCQE_RAMROD_COMPLETION (0x1<<3)
2639619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KCQE_RAMROD_COMPLETION_SHIFT 3
2640619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KCQE_LAYER_CODE (0x7<<4)
2641619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KCQE_LAYER_CODE_SHIFT 4
2642619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KCQE_LINKED_WITH_NEXT (0x1<<7)
2643619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KCQE_LINKED_WITH_NEXT_SHIFT 7
2644619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2645619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2646619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2647619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2648619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2649619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE KWQE header $$KEEP_ENDIANNESS$$
2650619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2651619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_header {
2652619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_code;
2653619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
2654619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_HEADER_RESERVED0 (0xF<<0)
2655619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_HEADER_RESERVED0_SHIFT 0
2656619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_HEADER_LAYER_CODE (0x7<<4)
2657619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_HEADER_LAYER_CODE_SHIFT 4
2658619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_HEADER_RESERVED1 (0x1<<7)
2659619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_HEADER_RESERVED1_SHIFT 7
2660619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2661619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2662619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2663619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE firmware init request 1 $$KEEP_ENDIANNESS$$
2664619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2665619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_init1 {
2666619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 num_tasks;
2667619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2668619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 task_list_pbl_addr_lo;
2669619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 task_list_pbl_addr_hi;
2670619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 dummy_buffer_addr_lo;
2671619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 dummy_buffer_addr_hi;
2672619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 sq_num_wqes;
2673619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rq_num_wqes;
2674619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rq_buffer_log_size;
2675619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 cq_num_wqes;
2676619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 mtu;
2677619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 num_sessions_log;
2678619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
2679619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_INIT1_LOG_PAGE_SIZE (0xF<<0)
2680619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_INIT1_LOG_PAGE_SIZE_SHIFT 0
2681619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_INIT1_LOG_CACHED_PBES_PER_FUNC (0x7<<4)
2682619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_INIT1_LOG_CACHED_PBES_PER_FUNC_SHIFT 4
2683619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_INIT1_RESERVED1 (0x1<<7)
2684619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_INIT1_RESERVED1_SHIFT 7
2685619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2686619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2687619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2688619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE firmware init request 2 $$KEEP_ENDIANNESS$$
2689619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2690619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_init2 {
2691619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hsi_major_version;
2692619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hsi_minor_version;
2693619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2694619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 hash_tbl_pbl_addr_lo;
2695619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 hash_tbl_pbl_addr_hi;
2696619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 t2_hash_tbl_addr_lo;
2697619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 t2_hash_tbl_addr_hi;
2698619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 t2_ptr_hash_tbl_addr_lo;
2699619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 t2_ptr_hash_tbl_addr_hi;
2700619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 free_list_count;
2701619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2702619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2703619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2704619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE firmware init request 3 $$KEEP_ENDIANNESS$$
2705619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2706619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_init3 {
2707619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved0;
2708619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2709619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 error_bit_map_lo;
2710619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 error_bit_map_hi;
2711619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 perf_config;
2712619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved21[3];
2713619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved2[4];
2714619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2715619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2716619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2717619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE connection offload request 1 $$KEEP_ENDIANNESS$$
2718619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2719619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_conn_offload1 {
2720619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 fcoe_conn_id;
2721619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2722619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 sq_addr_lo;
2723619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 sq_addr_hi;
2724619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rq_pbl_addr_lo;
2725619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rq_pbl_addr_hi;
2726619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rq_first_pbe_addr_lo;
2727619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rq_first_pbe_addr_hi;
2728619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rq_prod;
2729619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved0;
2730619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2731619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2732619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2733619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE connection offload request 2 $$KEEP_ENDIANNESS$$
2734619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2735619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_conn_offload2 {
2736619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 tx_max_fc_pay_len;
2737619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2738619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 cq_addr_lo;
2739619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 cq_addr_hi;
2740619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 xferq_addr_lo;
2741619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 xferq_addr_hi;
2742619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 conn_db_addr_lo;
2743619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 conn_db_addr_hi;
2744619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved1;
2745619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2746619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2747619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2748619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE connection offload request 3 $$KEEP_ENDIANNESS$$
2749619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2750619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_conn_offload3 {
2751619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 vlan_tag;
2752619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_VLAN_ID (0xFFF<<0)
2753619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_VLAN_ID_SHIFT 0
2754619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_CFI (0x1<<12)
2755619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_CFI_SHIFT 12
2756619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_PRIORITY (0x7<<13)
2757619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_PRIORITY_SHIFT 13
2758619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2759619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 s_id[3];
2760619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tx_max_conc_seqs_c3;
2761619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 d_id[3];
2762619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
2763619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_MUL_N_PORT_IDS (0x1<<0)
2764619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_MUL_N_PORT_IDS_SHIFT 0
2765619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_E_D_TOV_RES (0x1<<1)
2766619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_E_D_TOV_RES_SHIFT 1
2767619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_CONT_INCR_SEQ_CNT (0x1<<2)
2768619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_CONT_INCR_SEQ_CNT_SHIFT 2
2769619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_CONF_REQ (0x1<<3)
2770619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_CONF_REQ_SHIFT 3
2771619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_REC_VALID (0x1<<4)
2772619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_REC_VALID_SHIFT 4
2773619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_C2_VALID (0x1<<5)
2774619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_C2_VALID_SHIFT 5
2775619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_ACK_0 (0x1<<6)
2776619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_ACK_0_SHIFT 6
2777619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_VLAN_FLAG (0x1<<7)
2778619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_OFFLOAD3_B_VLAN_FLAG_SHIFT 7
2779619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved;
2780619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 confq_first_pbe_addr_lo;
2781619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 confq_first_pbe_addr_hi;
2782619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 tx_total_conc_seqs;
2783619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rx_max_fc_pay_len;
2784619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rx_total_conc_seqs;
2785619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rx_max_conc_seqs_c3;
2786619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rx_open_seqs_exch_c3;
2787619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2788619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2789619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2790619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE connection offload request 4 $$KEEP_ENDIANNESS$$
2791619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2792619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_conn_offload4 {
2793619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 e_d_tov_timer_val;
2794619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved2;
2795619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2796619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 src_mac_addr_lo[2];
2797619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 src_mac_addr_mid[2];
2798619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 src_mac_addr_hi[2];
2799619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dst_mac_addr_hi[2];
2800619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dst_mac_addr_lo[2];
2801619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dst_mac_addr_mid[2];
2802619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 lcq_addr_lo;
2803619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 lcq_addr_hi;
2804619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 confq_pbl_base_addr_lo;
2805619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 confq_pbl_base_addr_hi;
2806619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2807619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2808619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2809619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE connection enable request $$KEEP_ENDIANNESS$$
2810619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2811619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_conn_enable_disable {
2812619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved0;
2813619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2814619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 src_mac_addr_lo[2];
2815619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 src_mac_addr_mid[2];
2816619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 src_mac_addr_hi[2];
2817619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 vlan_tag;
2818619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_ENABLE_DISABLE_VLAN_ID (0xFFF<<0)
2819619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_ENABLE_DISABLE_VLAN_ID_SHIFT 0
2820619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_ENABLE_DISABLE_CFI (0x1<<12)
2821619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_ENABLE_DISABLE_CFI_SHIFT 12
2822619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_ENABLE_DISABLE_PRIORITY (0x7<<13)
2823619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_KWQE_CONN_ENABLE_DISABLE_PRIORITY_SHIFT 13
2824619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dst_mac_addr_lo[2];
2825619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dst_mac_addr_mid[2];
2826619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dst_mac_addr_hi[2];
2827619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved1;
2828619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 s_id[3];
2829619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vlan_flag;
2830619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 d_id[3];
2831619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved3;
2832619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 context_id;
2833619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 conn_id;
2834619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved4;
2835619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2836619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2837619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2838619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE connection destroy request $$KEEP_ENDIANNESS$$
2839619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2840619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_conn_destroy {
2841619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved0;
2842619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2843619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 context_id;
2844619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 conn_id;
2845619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved1[5];
2846619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2847619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2848619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2849619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoe destroy request $$KEEP_ENDIANNESS$$
2850619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2851619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_destroy {
2852619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved0;
2853619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2854619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved1[7];
2855619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2856619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2857619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2858619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoe statistics request $$KEEP_ENDIANNESS$$
2859619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2860619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_kwqe_stat {
2861619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved0;
2862619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_header hdr;
2863619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 stat_params_addr_lo;
2864619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 stat_params_addr_hi;
2865619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved1[5];
2866619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2867619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2868619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2869619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE KWQ WQE $$KEEP_ENDIANNESS$$
2870619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2871619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_kwqe {
2872619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_init1 init1;
2873619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_init2 init2;
2874619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_init3 init3;
2875619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_offload1 conn_offload1;
2876619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_offload2 conn_offload2;
2877619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_offload3 conn_offload3;
2878619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_offload4 conn_offload4;
2879619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_enable_disable conn_enable_disable;
2880619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_destroy conn_destroy;
2881619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_destroy destroy;
2882619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_stat statistics;
2883619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2884619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2885619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2886619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2887619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2888619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2889619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2890619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2891619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2892619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2893619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2894619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2895619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2896619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2897619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2898619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2899619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2900619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2901619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * TX SGL context $$KEEP_ENDIANNESS$$
2902619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2903619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_sgl_union_ctx {
2904619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_cached_sge_ctx cached_sge;
2905619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_ext_mul_sges_ctx sgl;
2906619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 opaque[5];
2907619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2908619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2909619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2910619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Data-In/ELS/BLS information $$KEEP_ENDIANNESS$$
2911619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2912619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_read_flow_info {
2913619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_sgl_union_ctx sgl_ctx;
2914619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rsrv0[3];
2915619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2916619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2917619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2918619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2919619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcoe stat context $$KEEP_ENDIANNESS$$
2920619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2921619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_s_stat_ctx {
2922619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
2923619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_ACTIVE (0x1<<0)
2924619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_ACTIVE_SHIFT 0
2925619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_ACK_ABORT_SEQ_COND (0x1<<1)
2926619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_ACK_ABORT_SEQ_COND_SHIFT 1
2927619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_ABTS_PERFORMED (0x1<<2)
2928619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_ABTS_PERFORMED_SHIFT 2
2929619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_SEQ_TIMEOUT (0x1<<3)
2930619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_SEQ_TIMEOUT_SHIFT 3
2931619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_P_RJT (0x1<<4)
2932619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_P_RJT_SHIFT 4
2933619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_ACK_EOFT (0x1<<5)
2934619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_ACK_EOFT_SHIFT 5
2935619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_RSRV1 (0x3<<6)
2936619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_S_STAT_CTX_RSRV1_SHIFT 6
2937619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2938619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2939619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2940619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcoe rx seq context $$KEEP_ENDIANNESS$$
2941619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2942619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_rx_seq_ctx {
2943619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 seq_id;
2944619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_s_stat_ctx s_stat;
2945619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 seq_cnt;
2946619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 low_exp_ro;
2947619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 high_exp_ro;
2948619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2949619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2950619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2951619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2952619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcoe rx_wr union context $$KEEP_ENDIANNESS$$
2953619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2954619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_rx_wr_union_ctx {
2955619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_read_flow_info read_info;
2956619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_comp_flow_info comp_info;
2957619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 opaque[8];
2958619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2959619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2960619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2961619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2962619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2963619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE SQ element $$KEEP_ENDIANNESS$$
2964619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2965619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_sqe {
2966619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 wqe;
2967619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_SQE_TASK_ID (0x7FFF<<0)
2968619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_SQE_TASK_ID_SHIFT 0
2969619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_SQE_TOGGLE_BIT (0x1<<15)
2970619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_SQE_TOGGLE_BIT_SHIFT 15
2971619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2972619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2973619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2974619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2975619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2976619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * 14 regs $$KEEP_ENDIANNESS$$
2977619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2978619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_tce_tx_only {
2979619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_sgl_union_ctx sgl_ctx;
2980619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 rsrv0;
2981619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2982619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2983619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2984619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * 32 bytes (8 regs) used for TX only purposes $$KEEP_ENDIANNESS$$
2985619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2986619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_tx_wr_rx_rd_union_ctx {
2987619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fc_frame tx_frame;
2988619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fcp_cmd_payload fcp_cmd;
2989619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_ext_cleanup_info cleanup;
2990619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_ext_abts_info abts;
2991619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_ext_fw_tx_seq_ctx tx_seq;
2992619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 opaque[8];
2993619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
2994619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
2995619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
2996619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * tce_tx_wr_rx_rd_const $$KEEP_ENDIANNESS$$
2997619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
2998619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_tce_tx_wr_rx_rd_const {
2999619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 init_flags;
3000619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_TASK_TYPE (0x7<<0)
3001619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_TASK_TYPE_SHIFT 0
3002619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_DEV_TYPE (0x1<<3)
3003619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_DEV_TYPE_SHIFT 3
3004619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_CLASS_TYPE (0x1<<4)
3005619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_CLASS_TYPE_SHIFT 4
3006619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_CACHED_SGE (0x3<<5)
3007619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_CACHED_SGE_SHIFT 5
3008619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_SUPPORT_REC_TOV (0x1<<7)
3009619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_SUPPORT_REC_TOV_SHIFT 7
3010619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tx_flags;
3011619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_VALID (0x1<<0)
3012619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_VALID_SHIFT 0
3013619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_STATE (0xF<<1)
3014619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_STATE_SHIFT 1
3015619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_RSRV1 (0x1<<5)
3016619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_RSRV1_SHIFT 5
3017619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_SEQ_INIT (0x1<<6)
3018619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_SEQ_INIT_SHIFT 6
3019619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_RSRV2 (0x1<<7)
3020619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_TX_WR_RX_RD_CONST_RSRV2_SHIFT 7
3021619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rsrv3;
3022619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 verify_tx_seq;
3023619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3024619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3025619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3026619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * tce_tx_wr_rx_rd $$KEEP_ENDIANNESS$$
3027619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3028619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_tce_tx_wr_rx_rd {
3029619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_tx_wr_rx_rd_union_ctx union_ctx;
3030619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_tx_wr_rx_rd_const const_ctx;
3031619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3032619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3033619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3034619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * tce_rx_wr_tx_rd_const $$KEEP_ENDIANNESS$$
3035619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3036619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_tce_rx_wr_tx_rd_const {
3037619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 data_2_trns;
3038619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 init_flags;
3039619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_CONST_CID (0xFFFFFF<<0)
3040619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_CONST_CID_SHIFT 0
3041619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_CONST_RSRV0 (0xFF<<24)
3042619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_CONST_RSRV0_SHIFT 24
3043619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3044619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3045619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3046619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * tce_rx_wr_tx_rd_var $$KEEP_ENDIANNESS$$
3047619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3048619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_tce_rx_wr_tx_rd_var {
3049619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rx_flags;
3050619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RSRV1 (0xF<<0)
3051619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RSRV1_SHIFT 0
3052619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_NUM_RQ_WQE (0x7<<4)
3053619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_NUM_RQ_WQE_SHIFT 4
3054619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_CONF_REQ (0x1<<7)
3055619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_CONF_REQ_SHIFT 7
3056619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_STATE (0xF<<8)
3057619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_STATE_SHIFT 8
3058619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_EXP_FIRST_FRAME (0x1<<12)
3059619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_EXP_FIRST_FRAME_SHIFT 12
3060619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_SEQ_INIT (0x1<<13)
3061619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_SEQ_INIT_SHIFT 13
3062619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RSRV2 (0x1<<14)
3063619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RSRV2_SHIFT 14
3064619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_VALID (0x1<<15)
3065619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_VALID_SHIFT 15
3066619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 rx_id;
3067619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fcp_xfr_rdy_payload fcp_xfr_rdy;
3068619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3069619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3070619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3071619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * tce_rx_wr_tx_rd $$KEEP_ENDIANNESS$$
3072619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3073619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_tce_rx_wr_tx_rd {
3074619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_rx_wr_tx_rd_const const_ctx;
3075619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_rx_wr_tx_rd_var var_ctx;
3076619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3077619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3078619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3079619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * tce_rx_only $$KEEP_ENDIANNESS$$
3080619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3081619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_tce_rx_only {
3082619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_rx_seq_ctx rx_seq_ctx;
3083619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_rx_wr_union_ctx union_ctx;
3084619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3085619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3086619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3087619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * task_ctx_entry $$KEEP_ENDIANNESS$$
3088619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3089619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_task_ctx_entry {
3090619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_tx_only txwr_only;
3091619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_tx_wr_rx_rd txwr_rxrd;
3092619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_rx_wr_tx_rd rxwr_txrd;
3093619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_rx_only rxwr_only;
3094619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3095619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3096619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3097619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3098619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3099619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3100619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3101619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3102619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3103619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3104619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3105619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3106619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE XFRQ element $$KEEP_ENDIANNESS$$
3107619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3108619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_xfrqe {
3109619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 wqe;
3110619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_XFRQE_TASK_ID (0x7FFF<<0)
3111619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_XFRQE_TASK_ID_SHIFT 0
3112619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_XFRQE_TOGGLE_BIT (0x1<<15)
3113619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_XFRQE_TOGGLE_BIT_SHIFT 15
3114619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3115619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3116619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3117619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3118619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Cached SGEs $$KEEP_ENDIANNESS$$
3119619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3120619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct common_fcoe_sgl {
3121619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_bd_ctx sge[3];
3122619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3123619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3124619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3125619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3126619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE SQ\XFRQ element
3127619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3128619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_cached_wqe {
3129619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_sqe sqe;
3130619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_xfrqe xfrqe;
3131619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3132619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3133619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3134619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3135619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE connection enable\disable params passed by driver to FW in FCoE enable
3136619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * ramrod $$KEEP_ENDIANNESS$$
3137619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3138619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_conn_enable_disable_ramrod_params {
3139619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_enable_disable enable_disable_kwqe;
3140619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3141619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3142619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3143619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3144619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE connection offload params passed by driver to FW in FCoE offload ramrod
3145619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * $$KEEP_ENDIANNESS$$
3146619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3147619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_conn_offload_ramrod_params {
3148619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_offload1 offload_kwqe1;
3149619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_offload2 offload_kwqe2;
3150619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_offload3 offload_kwqe3;
3151619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_conn_offload4 offload_kwqe4;
3152619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3153619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3154619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3155619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_fcoe_mng_ctx {
3156e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3157619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 mid_seq_proc_flag;
3158619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tce_in_cam_flag;
3159619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tce_on_ior_flag;
3160619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 en_cached_tce_flag;
3161e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3162619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 en_cached_tce_flag;
3163619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tce_on_ior_flag;
3164619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tce_in_cam_flag;
3165619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 mid_seq_proc_flag;
3166e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3167e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3168619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tce_cam_addr;
3169619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cached_conn_flag;
3170619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
3171e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3172619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
3173619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cached_conn_flag;
3174619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tce_cam_addr;
3175e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3176e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3177619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 dma_tce_ram_addr;
3178619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tce_ram_addr;
3179e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3180619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tce_ram_addr;
3181619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 dma_tce_ram_addr;
3182e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3183e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3184619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 ox_id;
3185619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 wr_done_seq;
3186e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3187619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 wr_done_seq;
3188619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 ox_id;
3189e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3190619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair task_addr;
3191e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3192e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3193e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3194619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Parameters initialized during offloaded according to FLOGI/PLOGI/PRLI and
3195619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * used in FCoE context section
3196e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3197619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_fcoe_params {
3198e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3199619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fcoe_conn_id;
3200619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 flags;
3201619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_MUL_N_PORT_IDS (0x1<<0)
3202619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_MUL_N_PORT_IDS_SHIFT 0
3203619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_E_D_TOV_RES (0x1<<1)
3204619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_E_D_TOV_RES_SHIFT 1
3205619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CONT_INCR_SEQ_CNT (0x1<<2)
3206619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CONT_INCR_SEQ_CNT_SHIFT 2
3207619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CONF_REQ (0x1<<3)
3208619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CONF_REQ_SHIFT 3
3209619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_REC_VALID (0x1<<4)
3210619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_REC_VALID_SHIFT 4
3211619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CQ_TOGGLE_BIT (0x1<<5)
3212619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CQ_TOGGLE_BIT_SHIFT 5
3213619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_XFRQ_TOGGLE_BIT (0x1<<6)
3214619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_XFRQ_TOGGLE_BIT_SHIFT 6
3215619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_RSRV0 (0x1FF<<7)
3216619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_RSRV0_SHIFT 7
3217e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3218619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 flags;
3219619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_MUL_N_PORT_IDS (0x1<<0)
3220619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_MUL_N_PORT_IDS_SHIFT 0
3221619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_E_D_TOV_RES (0x1<<1)
3222619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_E_D_TOV_RES_SHIFT 1
3223619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CONT_INCR_SEQ_CNT (0x1<<2)
3224619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CONT_INCR_SEQ_CNT_SHIFT 2
3225619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CONF_REQ (0x1<<3)
3226619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CONF_REQ_SHIFT 3
3227619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_REC_VALID (0x1<<4)
3228619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_REC_VALID_SHIFT 4
3229619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CQ_TOGGLE_BIT (0x1<<5)
3230619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_CQ_TOGGLE_BIT_SHIFT 5
3231619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_XFRQ_TOGGLE_BIT (0x1<<6)
3232619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_B_XFRQ_TOGGLE_BIT_SHIFT 6
3233619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_RSRV0 (0x1FF<<7)
3234619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_FCOE_PARAMS_RSRV0_SHIFT 7
3235619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fcoe_conn_id;
3236e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3237e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3238619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hc_csdm_byte_en;
3239619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 func_id;
3240619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 port_id;
3241619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vnic_id;
3242e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3243619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vnic_id;
3244619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 port_id;
3245619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 func_id;
3246619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hc_csdm_byte_en;
3247e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3248e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3249619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rx_total_conc_seqs;
3250619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rx_max_fc_pay_len;
3251e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3252619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rx_max_fc_pay_len;
3253619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rx_total_conc_seqs;
3254e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3255e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3256619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_pbe_idx_off;
3257619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_in_page_log_size;
3258619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rx_max_conc_seqs;
3259e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3260619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rx_max_conc_seqs;
3261619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_in_page_log_size;
3262619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_pbe_idx_off;
3263e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3264e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3265e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3266e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3267619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE 16-bits index structure
3268e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3269619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_idx16_fields {
3270619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fields;
3271619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_IDX16_FIELDS_IDX (0x7FFF<<0)
3272619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_IDX16_FIELDS_IDX_SHIFT 0
3273619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_IDX16_FIELDS_MSB (0x1<<15)
3274619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_IDX16_FIELDS_MSB_SHIFT 15
3275619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3276619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3277619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3278619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE 16-bits index union
3279619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3280619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_idx16_field_union {
3281619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_idx16_fields fields;
3282619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 val;
3283619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3284619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3285619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3286619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Parameters required for placement according to SGL
3287619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3288619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_fcoe_data_place_mng {
3289e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3290619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sge_off;
3291619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 num_sges;
3292619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sge_idx;
3293e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3294619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sge_idx;
3295619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 num_sges;
3296619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sge_off;
3297e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3298619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3299619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3300619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3301619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Parameters required for placement according to SGL
3302619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3303619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_fcoe_data_place {
3304619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_fcoe_data_place_mng cached_mng;
3305619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_bd_ctx cached_sge[2];
3306619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3307619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3308619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3309619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * TX processing shall write and RX processing shall read from this section
3310619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3311619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_u_tce_tx_wr_rx_rd_union {
3312619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_abts_info abts;
3313619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_cleanup_info cleanup;
3314619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_fw_tx_seq_ctx tx_seq_ctx;
3315619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 opaque[2];
3316619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3317619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3318619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3319619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * TX processing shall write and RX processing shall read from this section
3320619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3321619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_u_tce_tx_wr_rx_rd {
3322619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_u_tce_tx_wr_rx_rd_union union_ctx;
3323619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_tx_wr_rx_rd_const const_ctx;
3324619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3325619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3326619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_fcoe_tce {
3327619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_u_tce_tx_wr_rx_rd txwr_rxrd;
3328619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_rx_wr_tx_rd rxwr_txrd;
3329619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_rx_only rxwr;
3330619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3331619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3332619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_fcoe_cache_ctx {
3333619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv0;
3334619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_fcoe_data_place data_place;
3335619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_fcoe_tce tce;
3336619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3337619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3338619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3339619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Ustorm FCoE Storm Context
3340619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3341619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_fcoe_st_context {
3342619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_fcoe_mng_ctx mng_ctx;
3343619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_fcoe_params fcoe_params;
3344619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair cq_base_addr;
3345619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair rq_pbl_base;
3346619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair rq_cur_page_addr;
3347619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair confq_pbl_base_addr;
3348619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair conn_db_base;
3349619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair xfrq_base_addr;
3350619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lcq_base_addr;
3351e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3352619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_idx16_field_union rq_cons;
3353619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_idx16_field_union rq_prod;
3354e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3355619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_idx16_field_union rq_prod;
3356619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_idx16_field_union rq_cons;
3357e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3358e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3359619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 xfrq_prod;
3360619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_cons;
3361e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3362619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_cons;
3363619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 xfrq_prod;
3364e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3365e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3366619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 lcq_cons;
3367619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hc_cram_address;
3368e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3369619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hc_cram_address;
3370619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 lcq_cons;
3371619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3372619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3373619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sq_xfrq_lcq_confq_size;
3374619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 confq_prod;
3375e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3376619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 confq_prod;
3377619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sq_xfrq_lcq_confq_size;
3378619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3379619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3380619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hc_csdm_agg_int;
3381619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv2;
3382619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 available_rqes;
3383619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sp_q_flush_cnt;
3384619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3385619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sp_q_flush_cnt;
3386619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 available_rqes;
3387619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv2;
3388619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hc_csdm_agg_int;
3389619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3390619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3391619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 num_pend_tasks;
3392619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_ack_ram_addr;
3393619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3394619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_ack_ram_addr;
3395619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 num_pend_tasks;
3396e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3397619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_fcoe_cache_ctx cache_ctx;
3398e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3399e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3400e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3401619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The FCoE non-aggregative context of Tstorm
3402e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3403619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct tstorm_fcoe_st_context {
3404619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair reserved0;
3405619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair reserved1;
3406619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3407619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3408619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3409619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Ethernet context section
3410619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3411619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_fcoe_eth_context_section {
3412e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3413e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_4;
3414e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_5;
3415e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_0;
3416e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_1;
3417e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3418e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_1;
3419e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_0;
3420e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_5;
3421e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_4;
3422e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3423e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3424e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_0;
3425e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_1;
3426e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_2;
3427e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_3;
3428e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3429e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_3;
3430e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_2;
3431e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_1;
3432e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_0;
3433e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3434e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3435e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 reserved_vlan_type;
3436e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 params;
3437619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_VLAN_ID (0xFFF<<0)
3438619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_VLAN_ID_SHIFT 0
3439619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_CFI (0x1<<12)
3440619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_CFI_SHIFT 12
3441619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_PRIORITY (0x7<<13)
3442619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_PRIORITY_SHIFT 13
3443e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3444e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 params;
3445619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_VLAN_ID (0xFFF<<0)
3446619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_VLAN_ID_SHIFT 0
3447619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_CFI (0x1<<12)
3448619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_CFI_SHIFT 12
3449619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_PRIORITY (0x7<<13)
3450619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_ETH_CONTEXT_SECTION_PRIORITY_SHIFT 13
3451e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 reserved_vlan_type;
3452e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3453e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3454e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_2;
3455e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_3;
3456e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_4;
3457e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_5;
3458e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3459e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_5;
3460e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_4;
3461e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_3;
3462e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 local_addr_2;
3463e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3464e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3465e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3466e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3467619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Flags used in FCoE context section - 1 byte
3468619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3469619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_fcoe_context_flags {
3470619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
3471619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_PROC_Q (0x3<<0)
3472619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_PROC_Q_SHIFT 0
3473619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_MID_SEQ (0x1<<2)
3474619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_MID_SEQ_SHIFT 2
3475619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_BLOCK_SQ (0x1<<3)
3476619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_BLOCK_SQ_SHIFT 3
3477619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_REC_SUPPORT (0x1<<4)
3478619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_REC_SUPPORT_SHIFT 4
3479619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_SQ_TOGGLE (0x1<<5)
3480619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_SQ_TOGGLE_SHIFT 5
3481619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_XFRQ_TOGGLE (0x1<<6)
3482619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_XFRQ_TOGGLE_SHIFT 6
3483619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_VNTAG_VLAN (0x1<<7)
3484619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_CONTEXT_FLAGS_B_VNTAG_VLAN_SHIFT 7
3485619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3486619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3487619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_fcoe_tce {
3488619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_tx_only txwr;
3489619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_tce_tx_wr_rx_rd txwr_rxrd;
3490619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3491619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3492619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3493619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCP_DATA parameters required for transmission
3494619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3495619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_fcoe_fcp_data {
3496619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 io_rem;
3497619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3498619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cached_sge_off;
3499619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cached_num_sges;
3500619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cached_sge_idx;
3501619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3502619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cached_sge_idx;
3503619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cached_num_sges;
3504619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cached_sge_off;
3505619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3506619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 buf_addr_hi_0;
3507619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 buf_addr_lo_0;
3508619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3509619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 num_of_pending_tasks;
3510619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 buf_len_0;
3511619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3512619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 buf_len_0;
3513619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 num_of_pending_tasks;
3514619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3515619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 buf_addr_hi_1;
3516619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 buf_addr_lo_1;
3517619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3518619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 task_pbe_idx_off;
3519619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 buf_len_1;
3520619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3521619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 buf_len_1;
3522619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 task_pbe_idx_off;
3523619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3524619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 buf_addr_hi_2;
3525619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 buf_addr_lo_2;
3526619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3527619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 ox_id;
3528619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 buf_len_2;
3529619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3530619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 buf_len_2;
3531619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 ox_id;
3532619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3533619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3534619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3535619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3536619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * vlan configuration
3537619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3538619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_fcoe_vlan_conf {
3539619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vlan_conf;
3540619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_VLAN_CONF_PRIORITY (0x7<<0)
3541619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_VLAN_CONF_PRIORITY_SHIFT 0
3542619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_VLAN_CONF_INNER_VLAN_FLAG (0x1<<3)
3543619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_VLAN_CONF_INNER_VLAN_FLAG_SHIFT 3
3544619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_VLAN_CONF_RESERVED (0xF<<4)
3545619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_FCOE_VLAN_CONF_RESERVED_SHIFT 4
3546619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3547619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3548619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3549619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE 16-bits vlan structure
3550619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3551619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_vlan_fields {
3552619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fields;
3553619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_VLAN_FIELDS_VID (0xFFF<<0)
3554619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_VLAN_FIELDS_VID_SHIFT 0
3555619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_VLAN_FIELDS_CLI (0x1<<12)
3556619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_VLAN_FIELDS_CLI_SHIFT 12
3557619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_VLAN_FIELDS_PRI (0x7<<13)
3558619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define FCOE_VLAN_FIELDS_PRI_SHIFT 13
3559619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3560619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3561619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3562619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE 16-bits vlan union
3563619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3564619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_vlan_field_union {
3565619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_vlan_fields fields;
3566619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 val;
3567619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3568619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3569619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3570619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE 16-bits vlan, vif union
3571619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3572619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion fcoe_vlan_vif_field_union {
3573619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_vlan_field_union vlan;
3574619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 vif;
3575619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3576619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3577619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3578619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE context section
3579619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3580619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_fcoe_context_section {
3581619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3582619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cs_ctl;
3583619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 s_id[3];
3584619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3585619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 s_id[3];
3586619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cs_ctl;
3587619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3588619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3589619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rctl;
3590619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 d_id[3];
3591619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3592619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 d_id[3];
3593619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rctl;
3594619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3595619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3596619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sq_xfrq_lcq_confq_size;
3597619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tx_max_fc_pay_len;
3598619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3599619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tx_max_fc_pay_len;
3600619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sq_xfrq_lcq_confq_size;
3601619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3602619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 lcq_prod;
3603619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3604619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 port_id;
3605619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 func_id;
3606619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 seq_id;
3607619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_context_flags tx_flags;
3608619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3609619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_context_flags tx_flags;
3610619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 seq_id;
3611619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 func_id;
3612619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 port_id;
3613619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3614619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3615619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 mtu;
3616619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 func_mode;
3617619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vnic_id;
3618619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3619619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vnic_id;
3620619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 func_mode;
3621619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 mtu;
3622619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3623619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair confq_curr_page_addr;
3624619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_cached_wqe cached_wqe[8];
3625619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lcq_base_addr;
3626619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_tce tce;
3627619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_fcp_data fcp_data;
3628619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3629619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tx_max_conc_seqs_c3;
3630619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vlan_flag;
3631619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dcb_val;
3632619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 data_pb_cmd_size;
3633619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3634619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 data_pb_cmd_size;
3635619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dcb_val;
3636619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vlan_flag;
3637619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tx_max_conc_seqs_c3;
3638619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3639619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3640619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fcoe_tx_stat_params_ram_addr;
3641619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fcoe_tx_fc_seq_ram_addr;
3642619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3643619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fcoe_tx_fc_seq_ram_addr;
3644619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fcoe_tx_stat_params_ram_addr;
3645619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3646619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3647619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 fcp_cmd_line_credit;
3648619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 eth_hdr_size;
3649619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_addr;
3650619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3651619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_addr;
3652619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 eth_hdr_size;
3653619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 fcp_cmd_line_credit;
3654619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3655619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3656619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_vlan_vif_field_union multi_func_val;
3657619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 page_log_size;
3658619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_vlan_conf orig_vlan_conf;
3659619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3660619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_vlan_conf orig_vlan_conf;
3661619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 page_log_size;
3662619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union fcoe_vlan_vif_field_union multi_func_val;
3663619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3664619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3665619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fcp_cmd_frame_size;
3666619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_addr_ff;
3667619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3668619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_addr_ff;
3669619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 fcp_cmd_frame_size;
3670619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3671619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3672619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vlan_num;
3673619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cos;
3674619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cache_xfrq_cons;
3675619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cache_sq_cons;
3676619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3677619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cache_sq_cons;
3678619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cache_xfrq_cons;
3679619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cos;
3680619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 vlan_num;
3681619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3682619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 verify_tx_seq;
3683619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3684619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3685619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3686619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Xstorm FCoE Storm Context
3687619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3688619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_fcoe_st_context {
3689619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_eth_context_section eth;
3690619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_context_section fcoe;
3691619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3692619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3693619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3694619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Fcoe connection context
3695619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3696619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_context {
3697619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_fcoe_st_context ustorm_st_context;
3698619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct tstorm_fcoe_st_context tstorm_st_context;
3699619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_ag_context xstorm_ag_context;
3700619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct tstorm_fcoe_ag_context tstorm_ag_context;
3701619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_fcoe_ag_context ustorm_ag_context;
3702619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct timers_block_context timers_context;
3703619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_fcoe_st_context xstorm_st_context;
3704619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3705619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3706619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3707619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE init params passed by driver to FW in FCoE init ramrod
3708619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * $$KEEP_ENDIANNESS$$
3709e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3710619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_init_ramrod_params {
3711619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_init1 init_kwqe1;
3712619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_init2 init_kwqe2;
3713619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_init3 init_kwqe3;
3714619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair eq_pbl_base;
3715619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 eq_pbl_size;
3716619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 reserved2;
3717619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 eq_prod;
3718619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 sb_num;
3719619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sb_id;
3720619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved0;
3721619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le16 reserved1;
3722e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3723e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3724e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3725619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * FCoE statistics params buffer passed by driver to FW in FCoE statistics
3726619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * ramrod $$KEEP_ENDIANNESS$$
3727e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3728619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct fcoe_stat_ramrod_params {
3729619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct fcoe_kwqe_stat stat_kwqe;
3730e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3731e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3732e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3733619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * CQ DB CQ producer and pending completion counter
3734e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3735619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_cq_db_prod_pnd_cmpltn_cnt {
3736e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3737619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cntr;
3738619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 prod;
3739e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3740619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 prod;
3741619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cntr;
3742e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3743e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3744e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3745619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3746619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * CQ DB pending completion ITT array
3747619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3748619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_cq_db_prod_pnd_cmpltn_cnt_arr {
3749619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_cq_db_prod_pnd_cmpltn_cnt prod_pend_comp[8];
3750e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3751e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3752e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3753619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Cstorm CQ sequence to notify array, updated by driver
3754e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3755619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_cq_db_sqn_2_notify_arr {
3756619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sqn[8];
3757619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3758619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3759619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3760619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Cstorm iSCSI Storm Context
3761619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3762619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct cstorm_iscsi_st_context {
3763619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_cq_db_prod_pnd_cmpltn_cnt_arr cq_c_prod_pend_comp_ctr_arr;
3764619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_cq_db_sqn_2_notify_arr cq_c_prod_sqn_arr;
3765619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_cq_db_sqn_2_notify_arr cq_c_sqn_2_notify_arr;
3766619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair hq_pbl_base;
3767619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair hq_curr_pbe;
3768619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair task_pbl_base;
3769619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair cq_db_base;
3770e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3771619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_bd_itt;
3772619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 iscsi_conn_id;
3773e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3774619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 iscsi_conn_id;
3775619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_bd_itt;
3776e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3777619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 hq_bd_data_segment_len;
3778619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 hq_bd_buffer_offset;
3779e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3780619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv;
3781619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cq_proc_en_bit_map;
3782619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cq_pend_comp_itt_valid_bit_map;
3783619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hq_bd_opcode;
3784e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3785619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hq_bd_opcode;
3786619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cq_pend_comp_itt_valid_bit_map;
3787619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cq_proc_en_bit_map;
3788619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv;
3789e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3790619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 hq_tcp_seq;
3791e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3792619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 flags;
3793619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_DATA_DIGEST_EN (0x1<<0)
3794619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_DATA_DIGEST_EN_SHIFT 0
3795619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HDR_DIGEST_EN (0x1<<1)
3796619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HDR_DIGEST_EN_SHIFT 1
3797619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_CTXT_VALID (0x1<<2)
3798619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_CTXT_VALID_SHIFT 2
3799619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_LCL_CMPLN_FLG (0x1<<3)
3800619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_LCL_CMPLN_FLG_SHIFT 3
3801619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_WRITE_TASK (0x1<<4)
3802619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_WRITE_TASK_SHIFT 4
3803619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_CTRL_FLAGS_RSRV (0x7FF<<5)
3804619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_CTRL_FLAGS_RSRV_SHIFT 5
3805619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_cons;
3806e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3807619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_cons;
3808619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 flags;
3809619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_DATA_DIGEST_EN (0x1<<0)
3810619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_DATA_DIGEST_EN_SHIFT 0
3811619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HDR_DIGEST_EN (0x1<<1)
3812619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HDR_DIGEST_EN_SHIFT 1
3813619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_CTXT_VALID (0x1<<2)
3814619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_CTXT_VALID_SHIFT 2
3815619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_LCL_CMPLN_FLG (0x1<<3)
3816619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_LCL_CMPLN_FLG_SHIFT 3
3817619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_WRITE_TASK (0x1<<4)
3818619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_WRITE_TASK_SHIFT 4
3819619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_CTRL_FLAGS_RSRV (0x7FF<<5)
3820619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define CSTORM_ISCSI_ST_CONTEXT_CTRL_FLAGS_RSRV_SHIFT 5
3821e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3822619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair rsrv1;
3823e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3824e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3825619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3826e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3827619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * SCSI read/write SQ WQE
3828e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3829619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_cmd_pdu_hdr_little_endian {
3830e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3831619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
3832619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
3833619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_ATTRIBUTES (0x7<<0)
3834619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_ATTRIBUTES_SHIFT 0
3835619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_RSRV1 (0x3<<3)
3836619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 3
3837619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_WRITE_FLAG (0x1<<5)
3838619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_WRITE_FLAG_SHIFT 5
3839619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_READ_FLAG (0x1<<6)
3840619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_READ_FLAG_SHIFT 6
3841619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG (0x1<<7)
3842619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG_SHIFT 7
3843619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
3844e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3845619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
3846619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
3847619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_ATTRIBUTES (0x7<<0)
3848619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_ATTRIBUTES_SHIFT 0
3849619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_RSRV1 (0x3<<3)
3850619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 3
3851619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_WRITE_FLAG (0x1<<5)
3852619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_WRITE_FLAG_SHIFT 5
3853619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_READ_FLAG (0x1<<6)
3854619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_READ_FLAG_SHIFT 6
3855619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG (0x1<<7)
3856619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG_SHIFT 7
3857619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
3858e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3859619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_fields;
3860619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
3861619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
3862619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
3863619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
3864619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lun;
3865619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 itt;
3866619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 expected_data_transfer_length;
3867619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cmd_sn;
3868619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
3869619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 scsi_command_block[4];
3870e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3871e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3872619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3873e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3874619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Buffer per connection, used in Tstorm
3875e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3876619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_conn_buf {
3877619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair reserved[8];
3878e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3879e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3880619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3881619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3882619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * iSCSI context region, used only in iSCSI
3883619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3884619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_iscsi_rq_db {
3885619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair pbl_base;
3886619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair curr_pbe;
3887619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3888619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3889619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3890619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * iSCSI context region, used only in iSCSI
3891619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3892619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_iscsi_r2tq_db {
3893619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair pbl_base;
3894619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair curr_pbe;
3895619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
3896619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
3897619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3898619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * iSCSI context region, used only in iSCSI
3899619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3900619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_iscsi_cq_db {
3901619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3902619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_sn;
3903619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 prod;
3904619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3905619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 prod;
3906619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cq_sn;
3907619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3908619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair curr_pbe;
3909e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3910e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3911619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3912619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * iSCSI context region, used only in iSCSI
3913619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3914619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct rings_db {
3915619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_iscsi_rq_db rq;
3916619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_iscsi_r2tq_db r2tq;
3917619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_iscsi_cq_db cq[8];
3918619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3919619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rq_prod;
3920619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 r2tq_prod;
3921619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3922619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 r2tq_prod;
3923619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rq_prod;
3924619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3925619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair cq_pbl_base;
3926e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3927e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3928619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
3929619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * iSCSI context region, used only in iSCSI
3930619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
3931619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_iscsi_placement_db {
3932e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 sgl_base_lo;
3933e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 sgl_base_hi;
3934619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 local_sge_0_address_hi;
3935619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 local_sge_0_address_lo;
3936619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3937619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 curr_sge_offset;
3938619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 local_sge_0_size;
3939619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3940619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 local_sge_0_size;
3941619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 curr_sge_offset;
3942619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3943619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 local_sge_1_address_hi;
3944619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 local_sge_1_address_lo;
3945619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
3946619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 exp_padding_2b;
3947619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 nal_len_3b;
3948619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 local_sge_1_size;
3949619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
3950619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 local_sge_1_size;
3951619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 nal_len_3b;
3952619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 exp_padding_2b;
3953619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
3954e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3955e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 sgl_size;
3956619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_sge_index_2b;
3957619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved7;
3958e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3959619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved7;
3960619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_sge_index_2b;
3961e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 sgl_size;
3962e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
3963619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rem_pdu;
3964619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 place_db_bitfield_1;
3965619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_REM_PDU_PAYLOAD (0xFFFFFF<<0)
3966619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_REM_PDU_PAYLOAD_SHIFT 0
3967619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_CQ_ID (0xFF<<24)
3968619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_CQ_ID_SHIFT 24
3969619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 place_db_bitfield_2;
3970619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_BYTES_2_TRUNCATE (0xFFFFFF<<0)
3971619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_BYTES_2_TRUNCATE_SHIFT 0
3972619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_HOST_SGE_INDEX (0xFF<<24)
3973619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_HOST_SGE_INDEX_SHIFT 24
3974619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 nal;
3975619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_REM_SGE_SIZE (0xFFFFFF<<0)
3976619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_REM_SGE_SIZE_SHIFT 0
3977619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_EXP_DIGEST_3B (0xFF<<24)
3978619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_PLACEMENT_DB_EXP_DIGEST_3B_SHIFT 24
3979e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
3980e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
3981e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
3982619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Ustorm iSCSI Storm Context
3983e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
3984619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct ustorm_iscsi_st_context {
3985619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
3986619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_data_sn;
3987619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct rings_db ring;
3988e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct regpair task_pbl_base;
3989619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair tce_phy_addr;
3990619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_iscsi_placement_db place_db;
3991619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 reserved8;
3992619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rem_rcv_len;
3993e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
3994619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hdr_itt;
3995619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 iscsi_conn_id;
3996e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
3997619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 iscsi_conn_id;
3998619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hdr_itt;
3999e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
4000619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 nal_bytes;
4001e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
4002619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hdr_second_byte_union;
4003619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 bitfield_0;
4004619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BMIDDLEOFPDU (0x1<<0)
4005619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BMIDDLEOFPDU_SHIFT 0
4006619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BFENCECQE (0x1<<1)
4007619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BFENCECQE_SHIFT 1
4008619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BRESETCRC (0x1<<2)
4009619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BRESETCRC_SHIFT 2
4010619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_RESERVED1 (0x1F<<3)
4011619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_RESERVED1_SHIFT 3
4012619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_pdu_cache_index;
4013619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_pbe_cache_index;
4014e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
4015619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_pbe_cache_index;
4016619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_pdu_cache_index;
4017619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 bitfield_0;
4018619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BMIDDLEOFPDU (0x1<<0)
4019619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BMIDDLEOFPDU_SHIFT 0
4020619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BFENCECQE (0x1<<1)
4021619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BFENCECQE_SHIFT 1
4022619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BRESETCRC (0x1<<2)
4023619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_BRESETCRC_SHIFT 2
4024619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_RESERVED1 (0x1F<<3)
4025619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_RESERVED1_SHIFT 3
4026619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hdr_second_byte_union;
4027e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
4028e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
4029619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved3;
4030619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved2;
4031619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 acDecrement;
4032619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4033619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 acDecrement;
4034619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved2;
4035619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved3;
4036619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4037619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 task_stat;
4038619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4039619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hdr_opcode;
4040619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 num_cqs;
4041619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved5;
4042619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4043619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved5;
4044619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 num_cqs;
4045619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hdr_opcode;
4046619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4047619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 negotiated_rx;
4048619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_MAX_RECV_PDU_LENGTH (0xFFFFFF<<0)
4049619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_MAX_RECV_PDU_LENGTH_SHIFT 0
4050619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_MAX_OUTSTANDING_R2TS (0xFF<<24)
4051619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_MAX_OUTSTANDING_R2TS_SHIFT 24
4052619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 negotiated_rx_and_flags;
4053619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_MAX_BURST_LENGTH (0xFFFFFF<<0)
4054619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_MAX_BURST_LENGTH_SHIFT 0
4055619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_CQE_POSTED_OR_HEADER_CACHED (0x1<<24)
4056619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_CQE_POSTED_OR_HEADER_CACHED_SHIFT 24
4057619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_HDR_DIGEST_EN (0x1<<25)
4058619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_HDR_DIGEST_EN_SHIFT 25
4059619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_DATA_DIGEST_EN (0x1<<26)
4060619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_DATA_DIGEST_EN_SHIFT 26
4061619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_PROTOCOL_ERROR (0x1<<27)
4062619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_PROTOCOL_ERROR_SHIFT 27
4063619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_TASK_VALID (0x1<<28)
4064619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_TASK_VALID_SHIFT 28
4065619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_TASK_TYPE (0x3<<29)
4066619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_TASK_TYPE_SHIFT 29
4067619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_ALL_DATA_ACKED (0x1<<31)
4068619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define USTORM_ISCSI_ST_CONTEXT_B_ALL_DATA_ACKED_SHIFT 31
4069619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4070619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4071619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
4072619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * TCP context region, shared in TOE, RDMA and ISCSI
4073619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
4074619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct tstorm_tcp_st_context_section {
4075619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 flags1;
4076619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_RTT_SRTT (0xFFFFFF<<0)
4077619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_RTT_SRTT_SHIFT 0
4078619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_PAWS_INVALID (0x1<<24)
4079619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_PAWS_INVALID_SHIFT 24
4080619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_TIMESTAMP_EXISTS (0x1<<25)
4081619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_TIMESTAMP_EXISTS_SHIFT 25
4082619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_RESERVED0 (0x1<<26)
4083619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_RESERVED0_SHIFT 26
4084619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_STOP_RX_PAYLOAD (0x1<<27)
4085619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_STOP_RX_PAYLOAD_SHIFT 27
4086619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_KA_ENABLED (0x1<<28)
4087619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_KA_ENABLED_SHIFT 28
4088619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_FIRST_RTO_ESTIMATE (0x1<<29)
4089619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_FIRST_RTO_ESTIMATE_SHIFT 29
4090619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_MAX_SEG_RETRANSMIT_EN (0x1<<30)
4091619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_MAX_SEG_RETRANSMIT_EN_SHIFT 30
4092619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_LAST_ISLE_HAS_FIN (0x1<<31)
4093619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_LAST_ISLE_HAS_FIN_SHIFT 31
4094619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 flags2;
4095619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_RTT_VARIATION (0xFFFFFF<<0)
4096619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_RTT_VARIATION_SHIFT 0
4097619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_DA_EN (0x1<<24)
4098619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_DA_EN_SHIFT 24
4099619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_DA_COUNTER_EN (0x1<<25)
4100619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_DA_COUNTER_EN_SHIFT 25
4101619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_ST_CONTEXT_SECTION_KA_PROBE_SENT (0x1<<26)
4102619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_ST_CONTEXT_SECTION_KA_PROBE_SENT_SHIFT 26
4103619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_ST_CONTEXT_SECTION_PERSIST_PROBE_SENT (0x1<<27)
4104619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_ST_CONTEXT_SECTION_PERSIST_PROBE_SENT_SHIFT 27
4105619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_UPDATE_L2_STATSTICS (0x1<<28)
4106619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_UPDATE_L2_STATSTICS_SHIFT 28
4107619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_UPDATE_L4_STATSTICS (0x1<<29)
4108619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_TCP_ST_CONTEXT_SECTION_UPDATE_L4_STATSTICS_SHIFT 29
4109619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_ST_CONTEXT_SECTION_IN_WINDOW_RST_ATTACK (0x1<<30)
4110619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_ST_CONTEXT_SECTION_IN_WINDOW_RST_ATTACK_SHIFT 30
4111619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_ST_CONTEXT_SECTION_IN_WINDOW_SYN_ATTACK (0x1<<31)
4112619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __TSTORM_TCP_ST_CONTEXT_SECTION_IN_WINDOW_SYN_ATTACK_SHIFT 31
4113619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4114619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 mss;
4115619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tcp_sm_state;
4116619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rto_exp;
4117619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4118619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rto_exp;
4119619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tcp_sm_state;
4120619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 mss;
4121619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4122619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rcv_nxt;
4123619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 timestamp_recent;
4124619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 timestamp_recent_time;
4125619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cwnd;
4126619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ss_thresh;
4127619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cwnd_accum;
4128619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 prev_seg_seq;
4129619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 expected_rel_seq;
4130619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 recover;
4131619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4132619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 retransmit_count;
4133619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ka_max_probe_count;
4134619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 persist_probe_count;
4135619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ka_probe_count;
4136e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
4137619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ka_probe_count;
4138619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 persist_probe_count;
4139619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ka_max_probe_count;
4140619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 retransmit_count;
4141e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
4142e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
4143619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 statistics_counter_id;
4144619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ooo_support_mode;
4145619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 snd_wnd_scale;
4146619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dup_ack_count;
4147e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
4148619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 dup_ack_count;
4149619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 snd_wnd_scale;
4150619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ooo_support_mode;
4151619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 statistics_counter_id;
4152e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
4153619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 retransmit_start_time;
4154619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ka_timeout;
4155619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ka_interval;
4156619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 isle_start_seq;
4157619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 isle_end_seq;
4158e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
4159619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 second_isle_address;
4160619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 recent_seg_wnd;
4161e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
4162619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 recent_seg_wnd;
4163619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 second_isle_address;
4164e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
4165e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
4166619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 max_isles_ever_happened;
4167619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 isles_number;
4168619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 last_isle_address;
4169e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
4170619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 last_isle_address;
4171619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 isles_number;
4172619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 max_isles_ever_happened;
4173e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
4174619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 max_rt_time;
4175e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
4176619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 lsb_mac_address;
4177619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 vlan_id;
4178e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
4179619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 vlan_id;
4180619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 lsb_mac_address;
4181e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
4182619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4183619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 msb_mac_address;
4184619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 mid_mac_address;
4185619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4186619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 mid_mac_address;
4187619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 msb_mac_address;
4188619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4189619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rightmost_received_seq;
4190e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
4191e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
4192e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
4193619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Termination variables
4194e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4195619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_term_vars {
4196619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 BitMap;
4197619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_TCP_STATE (0xF<<0)
4198619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_TCP_STATE_SHIFT 0
4199619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_FIN_RECEIVED_SBIT (0x1<<4)
4200619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_FIN_RECEIVED_SBIT_SHIFT 4
4201619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_ACK_ON_FIN_RECEIVED_SBIT (0x1<<5)
4202619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_ACK_ON_FIN_RECEIVED_SBIT_SHIFT 5
4203619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_TERM_ON_CHIP (0x1<<6)
4204619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_TERM_ON_CHIP_SHIFT 6
4205619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_RSRV (0x1<<7)
4206619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TERM_VARS_RSRV_SHIFT 7
4207e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4208e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4209e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4210619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * iSCSI context region, used only in iSCSI
4211e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4212619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct tstorm_iscsi_st_context_section {
4213619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 nalPayload;
4214619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 b2nh;
4215e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4216619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rq_cons;
4217e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 flags;
4218619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_HDR_DIGEST_EN (0x1<<0)
4219619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_HDR_DIGEST_EN_SHIFT 0
4220619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DATA_DIGEST_EN (0x1<<1)
4221619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DATA_DIGEST_EN_SHIFT 1
4222619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_PARTIAL_HEADER (0x1<<2)
4223619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_PARTIAL_HEADER_SHIFT 2
4224619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_FULL_FEATURE (0x1<<3)
4225619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_FULL_FEATURE_SHIFT 3
4226619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DROP_ALL_PDUS (0x1<<4)
4227619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DROP_ALL_PDUS_SHIFT 4
4228619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_NALLEN (0x3<<5)
4229619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_NALLEN_SHIFT 5
4230619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_RSRV0 (0x1<<7)
4231619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_RSRV0_SHIFT 7
4232619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hdr_bytes_2_fetch;
4233e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4234619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hdr_bytes_2_fetch;
4235e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan	u8 flags;
4236619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_HDR_DIGEST_EN (0x1<<0)
4237619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_HDR_DIGEST_EN_SHIFT 0
4238619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DATA_DIGEST_EN (0x1<<1)
4239619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DATA_DIGEST_EN_SHIFT 1
4240619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_PARTIAL_HEADER (0x1<<2)
4241619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_PARTIAL_HEADER_SHIFT 2
4242619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_FULL_FEATURE (0x1<<3)
4243619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_FULL_FEATURE_SHIFT 3
4244619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DROP_ALL_PDUS (0x1<<4)
4245619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DROP_ALL_PDUS_SHIFT 4
4246619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_NALLEN (0x3<<5)
4247619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_NALLEN_SHIFT 5
4248619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_RSRV0 (0x1<<7)
4249619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define TSTORM_ISCSI_ST_CONTEXT_SECTION_RSRV0_SHIFT 7
4250619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rq_cons;
4251619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4252619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair rq_db_phy_addr;
4253619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4254619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_term_vars term_vars;
4255619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv1;
4256619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 iscsi_conn_id;
4257619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4258619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 iscsi_conn_id;
4259619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv1;
4260619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_term_vars term_vars;
4261e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4262619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 process_nxt;
4263e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4264e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4265e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4266619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The iSCSI non-aggregative context of Tstorm
4267e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4268619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct tstorm_iscsi_st_context {
4269619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct tstorm_tcp_st_context_section tcp;
4270619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct tstorm_iscsi_st_context_section iscsi;
4271e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4272e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4273e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4274619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Ethernet context section, shared in TOE, RDMA and ISCSI
4275e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4276619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_eth_context_section {
4277e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4278619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_4;
4279619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_5;
4280619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_0;
4281619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_1;
4282e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4283619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_1;
4284619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_0;
4285619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_5;
4286619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_4;
4287e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4288e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4289619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_0;
4290619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_1;
4291619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_2;
4292619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_3;
4293e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4294619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_3;
4295619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_2;
4296619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_1;
4297619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 remote_addr_0;
4298e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4299e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4300619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved_vlan_type;
4301619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 params;
4302619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_VLAN_ID (0xFFF<<0)
4303619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_VLAN_ID_SHIFT 0
4304619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_CFI (0x1<<12)
4305619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_CFI_SHIFT 12
4306619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_PRIORITY (0x7<<13)
4307619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_PRIORITY_SHIFT 13
4308e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4309619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 params;
4310619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_VLAN_ID (0xFFF<<0)
4311619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_VLAN_ID_SHIFT 0
4312619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_CFI (0x1<<12)
4313619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_CFI_SHIFT 12
4314619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_PRIORITY (0x7<<13)
4315619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ETH_CONTEXT_SECTION_PRIORITY_SHIFT 13
4316619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved_vlan_type;
4317e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4318e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4319619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_2;
4320619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_3;
4321619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_4;
4322619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_5;
4323e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4324619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_5;
4325619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_4;
4326619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_3;
4327619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 local_addr_2;
4328e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4329e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4330e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4331e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4332619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * IpV4 context section, shared in TOE, RDMA and ISCSI
4333e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4334619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_ip_v4_context_section {
4335e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4336619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __pbf_hdr_cmd_rsvd_id;
4337619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __pbf_hdr_cmd_rsvd_flags_offset;
4338e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4339619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __pbf_hdr_cmd_rsvd_flags_offset;
4340619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __pbf_hdr_cmd_rsvd_id;
4341e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4342e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4343619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __pbf_hdr_cmd_rsvd_ver_ihl;
4344619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tos;
4345619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __pbf_hdr_cmd_rsvd_length;
4346e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4347619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __pbf_hdr_cmd_rsvd_length;
4348619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 tos;
4349619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __pbf_hdr_cmd_rsvd_ver_ihl;
4350e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4351619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_local_addr;
4352e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4353619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ttl;
4354619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __pbf_hdr_cmd_rsvd_protocol;
4355619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __pbf_hdr_cmd_rsvd_csum;
4356e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4357619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __pbf_hdr_cmd_rsvd_csum;
4358619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __pbf_hdr_cmd_rsvd_protocol;
4359619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ttl;
4360e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4361619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __pbf_hdr_cmd_rsvd_1;
4362619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_remote_addr;
4363e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4364e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4365e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4366619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * context section, shared in TOE, RDMA and ISCSI
4367e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4368619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_padded_ip_v4_context_section {
4369619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_ip_v4_context_section ip_v4;
4370619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 reserved1[4];
4371e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4372e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4373e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4374619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * IpV6 context section, shared in TOE, RDMA and ISCSI
4375e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4376619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_ip_v6_context_section {
4377e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4378619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_hdr_cmd_rsvd_payload_len;
4379619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 pbf_hdr_cmd_rsvd_nxt_hdr;
4380619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hop_limit;
4381e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4382619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 hop_limit;
4383619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 pbf_hdr_cmd_rsvd_nxt_hdr;
4384619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pbf_hdr_cmd_rsvd_payload_len;
4385e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4386619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 priority_flow_label;
4387619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_IP_V6_CONTEXT_SECTION_FLOW_LABEL (0xFFFFF<<0)
4388619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_IP_V6_CONTEXT_SECTION_FLOW_LABEL_SHIFT 0
4389619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_IP_V6_CONTEXT_SECTION_TRAFFIC_CLASS (0xFF<<20)
4390619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_IP_V6_CONTEXT_SECTION_TRAFFIC_CLASS_SHIFT 20
4391619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_IP_V6_CONTEXT_SECTION_PBF_HDR_CMD_RSVD_VER (0xF<<28)
4392619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_IP_V6_CONTEXT_SECTION_PBF_HDR_CMD_RSVD_VER_SHIFT 28
4393619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_local_addr_lo_hi;
4394619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_local_addr_lo_lo;
4395619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_local_addr_hi_hi;
4396619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_local_addr_hi_lo;
4397619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_remote_addr_lo_hi;
4398619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_remote_addr_lo_lo;
4399619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_remote_addr_hi_hi;
4400619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ip_remote_addr_hi_lo;
4401619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4402619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4403619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion xstorm_ip_context_section_types {
4404619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_padded_ip_v4_context_section padded_ip_v4;
4405619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_ip_v6_context_section ip_v6;
4406e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4407e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4408e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4409619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * TCP context section, shared in TOE, RDMA and ISCSI
4410e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4411619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_tcp_context_section {
4412619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 snd_max;
4413e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4414619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 remote_port;
4415619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 local_port;
4416e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4417619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 local_port;
4418619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 remote_port;
4419e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4420e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4421619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 original_nagle_1b;
4422619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ts_enabled;
4423619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tcp_params;
4424619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_TOTAL_HEADER_SIZE (0xFF<<0)
4425619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_TOTAL_HEADER_SIZE_SHIFT 0
4426619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_CONTEXT_SECTION_ECT_BIT (0x1<<8)
4427619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_CONTEXT_SECTION_ECT_BIT_SHIFT 8
4428619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_CONTEXT_SECTION_ECN_ENABLED (0x1<<9)
4429619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_CONTEXT_SECTION_ECN_ENABLED_SHIFT 9
4430619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SACK_ENABLED (0x1<<10)
4431619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SACK_ENABLED_SHIFT 10
4432619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SMALL_WIN_ADV (0x1<<11)
4433619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SMALL_WIN_ADV_SHIFT 11
4434619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_FIN_SENT_FLAG (0x1<<12)
4435619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT 12
4436619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_WINDOW_SATURATED (0x1<<13)
4437619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_WINDOW_SATURATED_SHIFT 13
4438619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SLOWPATH_QUEUES_FLUSH_COUNTER (0x3<<14)
4439619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SLOWPATH_QUEUES_FLUSH_COUNTER_SHIFT 14
4440e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4441619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tcp_params;
4442619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_TOTAL_HEADER_SIZE (0xFF<<0)
4443619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_TOTAL_HEADER_SIZE_SHIFT 0
4444619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_CONTEXT_SECTION_ECT_BIT (0x1<<8)
4445619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_CONTEXT_SECTION_ECT_BIT_SHIFT 8
4446619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_CONTEXT_SECTION_ECN_ENABLED (0x1<<9)
4447619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define __XSTORM_TCP_CONTEXT_SECTION_ECN_ENABLED_SHIFT 9
4448619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SACK_ENABLED (0x1<<10)
4449619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SACK_ENABLED_SHIFT 10
4450619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SMALL_WIN_ADV (0x1<<11)
4451619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SMALL_WIN_ADV_SHIFT 11
4452619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_FIN_SENT_FLAG (0x1<<12)
4453619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT 12
4454619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_WINDOW_SATURATED (0x1<<13)
4455619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_WINDOW_SATURATED_SHIFT 13
4456619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SLOWPATH_QUEUES_FLUSH_COUNTER (0x3<<14)
4457619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_SLOWPATH_QUEUES_FLUSH_COUNTER_SHIFT 14
4458619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ts_enabled;
4459619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 original_nagle_1b;
4460e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4461e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4462619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pseudo_csum;
4463619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 window_scaling_factor;
4464e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4465619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 window_scaling_factor;
4466619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pseudo_csum;
4467e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4468e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4469619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved2;
4470619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 statistics_counter_id;
4471619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 statistics_params;
4472619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L2_STATSTICS (0x1<<0)
4473619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L2_STATSTICS_SHIFT 0
4474619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L4_STATSTICS (0x1<<1)
4475619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L4_STATSTICS_SHIFT 1
4476619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_RESERVED (0x3F<<2)
4477619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_RESERVED_SHIFT 2
4478e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4479619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 statistics_params;
4480619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L2_STATSTICS (0x1<<0)
4481619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L2_STATSTICS_SHIFT 0
4482619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L4_STATSTICS (0x1<<1)
4483619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L4_STATSTICS_SHIFT 1
4484619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_RESERVED (0x3F<<2)
4485619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_TCP_CONTEXT_SECTION_RESERVED_SHIFT 2
4486619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 statistics_counter_id;
4487619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved2;
4488e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4489619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ts_time_diff;
4490619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __next_timer_expir;
4491e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4492e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4493e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4494619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Common context section, shared in TOE, RDMA and ISCSI
4495e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4496619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_common_context_section {
4497619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_eth_context_section ethernet;
4498619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union xstorm_ip_context_section_types ip_union;
4499619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_tcp_context_section tcp;
4500e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4501619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __dcb_val;
4502619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
4503619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_PHYSQ_INITIALIZED (0x1<<0)
4504619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_PHYSQ_INITIALIZED_SHIFT 0
4505619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_PBF_PORT (0x7<<1)
4506619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_PBF_PORT_SHIFT 1
4507619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_VLAN_MODE (0x1<<4)
4508619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_VLAN_MODE_SHIFT 4
4509619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_ORIGINAL_PRIORITY (0x7<<5)
4510619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_ORIGINAL_PRIORITY_SHIFT 5
4511619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved;
4512619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ip_version_1b;
4513e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4514619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ip_version_1b;
4515619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved;
4516619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
4517619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_PHYSQ_INITIALIZED (0x1<<0)
4518619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_PHYSQ_INITIALIZED_SHIFT 0
4519619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_PBF_PORT (0x7<<1)
4520619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_PBF_PORT_SHIFT 1
4521619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_VLAN_MODE (0x1<<4)
4522619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_VLAN_MODE_SHIFT 4
4523619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_ORIGINAL_PRIORITY (0x7<<5)
4524619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_COMMON_CONTEXT_SECTION_ORIGINAL_PRIORITY_SHIFT 5
4525619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 __dcb_val;
4526e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4527e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4528e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4529e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4530619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Flags used in ISCSI context section
4531e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4532619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_iscsi_context_flags {
4533619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
4534619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_IMMEDIATE_DATA (0x1<<0)
4535619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_IMMEDIATE_DATA_SHIFT 0
4536619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_INITIAL_R2T (0x1<<1)
4537619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_INITIAL_R2T_SHIFT 1
4538619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_EN_HEADER_DIGEST (0x1<<2)
4539619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_EN_HEADER_DIGEST_SHIFT 2
4540619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_EN_DATA_DIGEST (0x1<<3)
4541619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_EN_DATA_DIGEST_SHIFT 3
4542619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_HQ_BD_WRITTEN (0x1<<4)
4543619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_HQ_BD_WRITTEN_SHIFT 4
4544619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_LAST_OP_SQ (0x1<<5)
4545619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_LAST_OP_SQ_SHIFT 5
4546619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_UPDATE_SND_NXT (0x1<<6)
4547619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_B_UPDATE_SND_NXT_SHIFT 6
4548619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_RESERVED4 (0x1<<7)
4549619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_FLAGS_RESERVED4_SHIFT 7
4550619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4551619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4552619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry_x {
4553619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_out_buffer_offset;
4554619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 itt;
4555619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_sn;
4556619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4557619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4558619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry_xuc_x_write_only {
4559619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 tx_r2t_sn;
4560619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4561619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4562619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry_xuc_xu_write_both {
4563619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 sgl_base_lo;
4564619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 sgl_base_hi;
4565e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4566619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sgl_size;
4567619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sge_index;
4568619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sge_offset;
4569e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4570619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sge_offset;
4571619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sge_index;
4572619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sgl_size;
4573e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4574619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4575619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4576619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
4577619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * iSCSI context section
4578619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
4579619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_iscsi_context_section {
4580619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 first_burst_length;
4581619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 max_send_pdu_length;
4582619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair sq_pbl_base;
4583619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair sq_curr_pbe;
4584619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair hq_pbl_base;
4585619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair hq_curr_pbe_base;
4586619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair r2tq_pbl_base;
4587619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair r2tq_curr_pbe_base;
4588619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair task_pbl_base;
4589e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4590619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 data_out_count;
4591619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_iscsi_context_flags flags;
4592619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_pbl_cache_idx;
4593e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4594619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 task_pbl_cache_idx;
4595619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_iscsi_context_flags flags;
4596619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 data_out_count;
4597e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4598619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 seq_more_2_send;
4599619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 pdu_more_2_send;
4600619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_x temp_tce_x;
4601619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_xuc_x_write_only temp_tce_x_wr;
4602619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_xuc_xu_write_both temp_tce_xu_wr;
4603619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lun;
4604619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_data_transfer_len_ttt;
4605619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 pdu_data_2_rxmit;
4606619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rxmit_bytes_2_dr;
4607e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4608619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rxmit_sge_offset;
4609619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_rxmit_cons;
4610e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4611619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 hq_rxmit_cons;
4612619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rxmit_sge_offset;
4613e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4614e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4615619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 r2tq_cons;
4616619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rxmit_flags;
4617619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_NEW_HQ_BD (0x1<<0)
4618619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_NEW_HQ_BD_SHIFT 0
4619619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PDU_HDR (0x1<<1)
4620619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PDU_HDR_SHIFT 1
4621619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_END_PDU (0x1<<2)
4622619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_END_PDU_SHIFT 2
4623619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_DR (0x1<<3)
4624619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_DR_SHIFT 3
4625619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_START_DR (0x1<<4)
4626619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_START_DR_SHIFT 4
4627619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PADDING (0x3<<5)
4628619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PADDING_SHIFT 5
4629619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_ISCSI_CONT_FAST_RXMIT (0x1<<7)
4630619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_ISCSI_CONT_FAST_RXMIT_SHIFT 7
4631619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rxmit_sge_idx;
4632e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4633619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rxmit_sge_idx;
4634619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rxmit_flags;
4635619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_NEW_HQ_BD (0x1<<0)
4636619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_NEW_HQ_BD_SHIFT 0
4637619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PDU_HDR (0x1<<1)
4638619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PDU_HDR_SHIFT 1
4639619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_END_PDU (0x1<<2)
4640619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_END_PDU_SHIFT 2
4641619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_DR (0x1<<3)
4642619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_DR_SHIFT 3
4643619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_START_DR (0x1<<4)
4644619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_START_DR_SHIFT 4
4645619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PADDING (0x3<<5)
4646619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PADDING_SHIFT 5
4647619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_ISCSI_CONT_FAST_RXMIT (0x1<<7)
4648619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define XSTORM_ISCSI_CONTEXT_SECTION_B_ISCSI_CONT_FAST_RXMIT_SHIFT 7
4649619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 r2tq_cons;
4650e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4651619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 hq_rxmit_tcp_seq;
4652619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4653619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4654619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
4655619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Xstorm iSCSI Storm Context
4656619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
4657619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct xstorm_iscsi_st_context {
4658619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_common_context_section common;
4659619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_iscsi_context_section iscsi;
4660619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4661619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4662619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
4663619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Iscsi connection context
4664619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
4665619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_context {
4666619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_iscsi_st_context ustorm_st_context;
4667619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct tstorm_iscsi_st_context tstorm_st_context;
4668619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_iscsi_ag_context xstorm_ag_context;
4669619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct tstorm_iscsi_ag_context tstorm_ag_context;
4670619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct cstorm_iscsi_ag_context cstorm_ag_context;
4671619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ustorm_iscsi_ag_context ustorm_ag_context;
4672619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct timers_block_context timers_context;
4673619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair upb_context;
4674619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct xstorm_iscsi_st_context xstorm_st_context;
4675619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair xpb_context;
4676619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct cstorm_iscsi_st_context cstorm_st_context;
4677619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4678619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4679619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4680619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
4681619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * PDU header of an iSCSI DATA-OUT
4682619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
4683619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_data_pdu_hdr_little_endian {
4684e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4685619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4686619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4687619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_RSRV1 (0x7F<<0)
4688619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
4689619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG (0x1<<7)
4690619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG_SHIFT 7
4691619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4692e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4693619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4694619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4695619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_RSRV1 (0x7F<<0)
4696619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
4697619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG (0x1<<7)
4698619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG_SHIFT 7
4699619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4700e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4701619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_fields;
4702619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
4703619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
4704619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
4705619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
4706619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lun;
4707619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 itt;
4708619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ttt;
4709619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv2;
4710619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
4711619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv3;
4712619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_sn;
4713619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 buffer_offset;
4714619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv4;
4715e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4716e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4717619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4718e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4719619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * PDU header of an iSCSI login request
4720e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4721619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_login_req_hdr_little_endian {
4722e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4723619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4724619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4725619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_NSG (0x3<<0)
4726619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_NSG_SHIFT 0
4727619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CSG (0x3<<2)
4728619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CSG_SHIFT 2
4729619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_RSRV0 (0x3<<4)
4730619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_RSRV0_SHIFT 4
4731619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG (0x1<<6)
4732619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG_SHIFT 6
4733619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TRANSIT (0x1<<7)
4734619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TRANSIT_SHIFT 7
4735619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 version_max;
4736619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 version_min;
4737619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4738619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 version_min;
4739619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 version_max;
4740619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4741619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_NSG (0x3<<0)
4742619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_NSG_SHIFT 0
4743619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CSG (0x3<<2)
4744619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CSG_SHIFT 2
4745619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_RSRV0 (0x3<<4)
4746619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_RSRV0_SHIFT 4
4747619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG (0x1<<6)
4748619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG_SHIFT 6
4749619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TRANSIT (0x1<<7)
4750619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TRANSIT_SHIFT 7
4751619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4752619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4753619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_fields;
4754619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
4755619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
4756619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
4757619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
4758619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 isid_lo;
4759619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4760619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 isid_hi;
4761619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tsih;
4762e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4763619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 tsih;
4764619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 isid_hi;
4765e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4766619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 itt;
4767619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4768619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cid;
4769619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv1;
4770619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4771619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv1;
4772619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cid;
4773619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4774619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cmd_sn;
4775619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
4776619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv2[4];
4777e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4778e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4779e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4780619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * PDU header of an iSCSI logout request
4781e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4782619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_logout_req_hdr_little_endian {
4783e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4784619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4785619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4786619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_REASON_CODE (0x7F<<0)
4787619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_REASON_CODE_SHIFT 0
4788619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_RSRV1_1 (0x1<<7)
4789619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_RSRV1_1_SHIFT 7
4790619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4791e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4792619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4793619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4794619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_REASON_CODE (0x7F<<0)
4795619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_REASON_CODE_SHIFT 0
4796619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_RSRV1_1 (0x1<<7)
4797619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_RSRV1_1_SHIFT 7
4798619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4799619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4800619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_fields;
4801619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
4802619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
4803619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
4804619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
4805619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv2[2];
4806619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 itt;
4807619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4808619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cid;
4809619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv1;
4810619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4811619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv1;
4812619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 cid;
4813e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4814619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cmd_sn;
4815619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
4816619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv3[4];
4817e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4818e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4819e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4820619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * PDU header of an iSCSI TMF request
4821e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4822619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_tmf_req_hdr_little_endian {
4823e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4824619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4825619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4826619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_FUNCTION (0x7F<<0)
4827619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_FUNCTION_SHIFT 0
4828619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_RSRV1_1 (0x1<<7)
4829619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_RSRV1_1_SHIFT 7
4830619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4831e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4832619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4833619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4834619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_FUNCTION (0x7F<<0)
4835619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_FUNCTION_SHIFT 0
4836619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_RSRV1_1 (0x1<<7)
4837619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_RSRV1_1_SHIFT 7
4838619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4839e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4840619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_fields;
4841619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
4842619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
4843619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
4844619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
4845619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lun;
4846619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 itt;
4847619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 referenced_task_tag;
4848619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cmd_sn;
4849619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
4850619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ref_cmd_sn;
4851619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_data_sn;
4852619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv2[2];
4853e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4854e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4855e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4856619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * PDU header of an iSCSI Text request
4857e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4858619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_text_req_hdr_little_endian {
4859619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4860619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4861619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4862619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_RSRV1 (0x3F<<0)
4863619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
4864619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG (0x1<<6)
4865619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG_SHIFT 6
4866619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_FINAL (0x1<<7)
4867619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_FINAL_SHIFT 7
4868619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4869619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4870619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4871619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4872619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_RSRV1 (0x3F<<0)
4873619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
4874619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG (0x1<<6)
4875619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG_SHIFT 6
4876619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_FINAL (0x1<<7)
4877619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_FINAL_SHIFT 7
4878619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4879619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4880619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_fields;
4881619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
4882619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
4883619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
4884619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
4885619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lun;
4886619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 itt;
4887619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ttt;
4888619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cmd_sn;
4889619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
4890619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv3[4];
4891e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4892e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4893e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4894619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * PDU header of an iSCSI Nop-Out
4895e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4896619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_nop_out_hdr_little_endian {
4897619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
4898619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4899619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4900619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV1 (0x7F<<0)
4901619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
4902619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV2_1 (0x1<<7)
4903619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV2_1_SHIFT 7
4904619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4905619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
4906619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
4907619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 op_attr;
4908619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV1 (0x7F<<0)
4909619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
4910619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV2_1 (0x1<<7)
4911619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV2_1_SHIFT 7
4912619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 opcode;
4913619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
4914619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 data_fields;
4915619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
4916619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
4917619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
4918619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
4919619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lun;
4920619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 itt;
4921619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ttt;
4922619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cmd_sn;
4923619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_stat_sn;
4924619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv3[4];
4925e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4926e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4927e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4928619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * iscsi pdu headers in little endian form.
4929e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4930619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion iscsi_pdu_headers_little_endian {
4931619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 fullHeaderSize[12];
4932619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_cmd_pdu_hdr_little_endian command_pdu_hdr;
4933619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_data_pdu_hdr_little_endian data_out_pdu_hdr;
4934619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_login_req_hdr_little_endian login_req_pdu_hdr;
4935619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_logout_req_hdr_little_endian logout_req_pdu_hdr;
4936619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_tmf_req_hdr_little_endian tmf_req_pdu_hdr;
4937619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_text_req_hdr_little_endian text_req_pdu_hdr;
4938619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_nop_out_hdr_little_endian nop_out_pdu_hdr;
4939e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4940e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4941619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_hq_bd {
4942619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union iscsi_pdu_headers_little_endian pdu_header;
4943e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4944619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved1;
4945619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 lcl_cmp_flg;
4946e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4947619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 lcl_cmp_flg;
4948619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 reserved1;
4949e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4950619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 sgl_base_lo;
4951619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 sgl_base_hi;
4952e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4953619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sgl_size;
4954619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sge_index;
4955619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sge_offset;
4956e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4957619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 sge_offset;
4958619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sge_index;
4959619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 sgl_size;
4960e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
4961e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4962e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4963e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4964e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan/*
4965619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * CQE data for L2 OOO connection $$KEEP_ENDIANNESS$$
4966e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan */
4967619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_l2_ooo_data {
4968619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	__le32 iscsi_cid;
4969619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 drop_isle;
4970619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 drop_size;
4971619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ooo_opcode;
4972619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 ooo_isle;
4973619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 reserved[8];
4974e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4975e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4976e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4977e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4978e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4979619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4980619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4981619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry_xuc_c_write_only {
4982619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 total_data_acked;
4983e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
4984e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
4985619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_r2t_table_entry {
4986619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 ttt;
4987619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 desired_data_len;
4988619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
4989619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
4990619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry_xuc_u_write_only {
4991619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_r2t_sn;
4992619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_r2t_table_entry r2t_table[4];
4993e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
4994619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 data_in_count;
4995619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cq_id;
4996619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 valid_1b;
4997e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
4998619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 valid_1b;
4999619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 cq_id;
5000619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 data_in_count;
5001e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
5002e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
5003e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
5004619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry_xuc {
5005619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_xuc_c_write_only write_c;
5006619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_data_transfer_len;
5007619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_xuc_x_write_only write_x;
5008619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 lun_lo;
5009619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_xuc_xu_write_both write_xu;
5010619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 lun_hi;
5011619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_xuc_u_write_only write_u;
5012619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5013619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5014619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry_u {
5015619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_r2t_buff_offset;
5016619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rem_rcv_len;
5017619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_data_sn;
5018619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5019619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5020619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry {
5021619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_x tce_x;
5022e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#if defined(__BIG_ENDIAN)
5023619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 data_out_count;
5024619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
5025e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#elif defined(__LITTLE_ENDIAN)
5026619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv0;
5027619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 data_out_count;
5028e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan#endif
5029619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_xuc tce_xuc;
5030619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct iscsi_task_context_entry_u tce_u;
5031619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv1[7];
5032e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan};
5033e1928c86c4829703b800c81cc9edc939b5634e6fMichael Chan
5034619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5035619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5036619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5037619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5038619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5039619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5040619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5041619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct iscsi_task_context_entry_xuc_x_init_only {
5042619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct regpair lun;
5043619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 exp_data_transfer_len;
5044e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5045e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5046619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5047619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5048619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5049619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5050619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5051619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5052619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5053619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5054619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5055619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5056619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5057619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5058619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5059619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5060619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5061619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5062e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5063e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * ipv6 structure
5064e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5065e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct ip_v6_addr {
5066e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 ip_addr_lo_lo;
5067e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 ip_addr_lo_hi;
5068e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 ip_addr_hi_lo;
5069e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 ip_addr_hi_hi;
5070e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5071e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5072619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5073619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5074e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5075e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5cm- connection identification params
5076e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5077e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct l5cm_conn_addr_params {
5078e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 pmtu;
5079e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
5080e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_3;
5081e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_2;
5082e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_1;
5083e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_0;
5084e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
5085e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_0;
5086e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_1;
5087e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_2;
5088e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_3;
5089e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
5090e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
5091e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 params;
5092e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_CONN_ADDR_PARAMS_IP_VERSION (0x1<<0)
5093e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_CONN_ADDR_PARAMS_IP_VERSION_SHIFT 0
5094e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_CONN_ADDR_PARAMS_RSRV (0x7FFF<<1)
5095e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_CONN_ADDR_PARAMS_RSRV_SHIFT 1
5096e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_5;
5097e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_4;
5098e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
5099e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_4;
5100e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 remote_addr_5;
5101e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 params;
5102e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_CONN_ADDR_PARAMS_IP_VERSION (0x1<<0)
5103e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_CONN_ADDR_PARAMS_IP_VERSION_SHIFT 0
5104e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_CONN_ADDR_PARAMS_RSRV (0x7FFF<<1)
5105e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_CONN_ADDR_PARAMS_RSRV_SHIFT 1
5106e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
5107e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct ip_v6_addr local_ip_addr;
5108e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct ip_v6_addr remote_ip_addr;
5109e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 ipv6_flow_label_20b;
5110e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 reserved1;
5111e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
5112e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 remote_tcp_port;
5113e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 local_tcp_port;
5114e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
5115e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 local_tcp_port;
5116e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 remote_tcp_port;
5117e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
5118e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5119e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5120e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5121e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5cm-xstorm connection buffer
5122e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5123e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct l5cm_xstorm_conn_buffer {
5124e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
5125e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 rsrv1;
5126e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 params;
5127e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_XSTORM_CONN_BUFFER_NAGLE_ENABLE (0x1<<0)
5128e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_XSTORM_CONN_BUFFER_NAGLE_ENABLE_SHIFT 0
5129e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_XSTORM_CONN_BUFFER_RSRV (0x7FFF<<1)
5130e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_XSTORM_CONN_BUFFER_RSRV_SHIFT 1
5131e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
5132e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 params;
5133e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_XSTORM_CONN_BUFFER_NAGLE_ENABLE (0x1<<0)
5134e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_XSTORM_CONN_BUFFER_NAGLE_ENABLE_SHIFT 0
5135e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_XSTORM_CONN_BUFFER_RSRV (0x7FFF<<1)
5136e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_XSTORM_CONN_BUFFER_RSRV_SHIFT 1
5137e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 rsrv1;
5138e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
5139e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
5140e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 mss;
5141e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 pseudo_header_checksum;
5142e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
5143e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 pseudo_header_checksum;
5144e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 mss;
5145e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
5146e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 rcv_buf;
5147e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 rsrv2;
5148e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct regpair context_addr;
5149e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5150e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5151e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5152e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5cm-tstorm connection buffer
5153e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5154e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct l5cm_tstorm_conn_buffer {
5155619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv1[2];
5156e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#if defined(__BIG_ENDIAN)
5157e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 params;
5158e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_TSTORM_CONN_BUFFER_DELAYED_ACK_ENABLE (0x1<<0)
5159e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_TSTORM_CONN_BUFFER_DELAYED_ACK_ENABLE_SHIFT 0
5160e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_TSTORM_CONN_BUFFER_RSRV (0x7FFF<<1)
5161e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_TSTORM_CONN_BUFFER_RSRV_SHIFT 1
5162e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 ka_max_probe_count;
5163e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 ka_enable;
5164e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#elif defined(__LITTLE_ENDIAN)
5165e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 ka_enable;
5166e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 ka_max_probe_count;
5167e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 params;
5168e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_TSTORM_CONN_BUFFER_DELAYED_ACK_ENABLE (0x1<<0)
5169e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_TSTORM_CONN_BUFFER_DELAYED_ACK_ENABLE_SHIFT 0
5170e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_TSTORM_CONN_BUFFER_RSRV (0x7FFF<<1)
5171e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define L5CM_TSTORM_CONN_BUFFER_RSRV_SHIFT 1
5172e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#endif
5173e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 ka_timeout;
5174e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 ka_interval;
5175e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 max_rt_time;
5176e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5177e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5178e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5179e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5cm connection buffer for active side
5180e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5181e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct l5cm_active_conn_buffer {
5182e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct l5cm_conn_addr_params conn_addr_buf;
5183e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct l5cm_xstorm_conn_buffer xstorm_conn_buffer;
5184e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct l5cm_tstorm_conn_buffer tstorm_conn_buffer;
5185e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5186e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5187619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5188619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5189619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5190619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The l5cm opaque buffer passed in add new connection ramrod passive side
5191619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5192619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_hash_input_string {
5193619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __opaque1;
5194619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
5195619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __opaque3;
5196619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __opaque2;
5197619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
5198619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __opaque2;
5199619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 __opaque3;
5200619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
5201619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ip_v6_addr __opaque4;
5202619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct ip_v6_addr __opaque5;
5203619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __opaque6;
5204619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __opaque7[5];
5205619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5206619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5207619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5208619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5209619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * syn cookie component
5210619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5211619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_syn_cookie_comp {
5212619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __opaque;
5213619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5214619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5215619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5216619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * data related to listeners of a TCP port
5217619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5218619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_port_listener_data {
5219619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 params;
5220619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_ENABLE (0x1<<0)
5221619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_ENABLE_SHIFT 0
5222619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_IP_INDEX (0xF<<1)
5223619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_IP_INDEX_SHIFT 1
5224619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_NET_FILTER (0x1<<5)
5225619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_NET_FILTER_SHIFT 5
5226619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_DEFFERED_MODE (0x1<<6)
5227619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_DEFFERED_MODE_SHIFT 6
5228619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_MPA_MODE (0x1<<7)
5229619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PORT_LISTENER_DATA_MPA_MODE_SHIFT 7
5230619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5231619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5232619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5233619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Opaque structure passed from U to X when final ack arrives
5234619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5235619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_opaque_buf {
5236619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __opaque1;
5237619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __opaque2;
5238619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __opaque3;
5239619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 __opaque4;
5240619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_syn_cookie_comp __opaque5;
5241619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
5242619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv2;
5243619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv;
5244619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_port_listener_data __opaque6;
5245619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
5246619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_port_listener_data __opaque6;
5247619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rsrv;
5248619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv2;
5249619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
5250619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5251619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5252619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5253e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5254e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5cm slow path element
5255e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5256e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct l5cm_packet_size {
5257e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 size;
5258e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u32 rsrv;
5259e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5260e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5261619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5262619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5263619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The final-ack union structure in PCS entry after final ack arrived
5264619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5265619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_pcse_ack {
5266619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_xstorm_conn_buffer tx_socket_params;
5267619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_opaque_buf opaque_buf;
5268619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_tstorm_conn_buffer rx_socket_params;
5269619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5270619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5271619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5272619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5273619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * The syn union structure in PCS entry after syn arrived
5274619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5275619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_pcse_syn {
5276619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_opaque_buf opaque_buf;
5277619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 rsrv[12];
5278619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5279619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5280619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5281619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5282619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * pcs entry data for passive connections
5283619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5284619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_pcs_attributes {
5285619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
5286619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pcs_id;
5287619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 status;
5288619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
5289619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_NET_FILTER (0x1<<0)
5290619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_NET_FILTER_SHIFT 0
5291619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_CALCULATE_HASH (0x1<<1)
5292619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_CALCULATE_HASH_SHIFT 1
5293619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_COMPARE_HASH_RESULT (0x1<<2)
5294619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_COMPARE_HASH_RESULT_SHIFT 2
5295619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_QUERY_ULP_ACCEPT (0x1<<3)
5296619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_QUERY_ULP_ACCEPT_SHIFT 3
5297619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_FIND_DEST_MAC (0x1<<4)
5298619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_FIND_DEST_MAC_SHIFT 4
5299619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_L4_OFFLOAD (0x1<<5)
5300619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_L4_OFFLOAD_SHIFT 5
5301619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_FORWARD_PACKET (0x1<<6)
5302619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_FORWARD_PACKET_SHIFT 6
5303619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_RSRV (0x1<<7)
5304619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_RSRV_SHIFT 7
5305619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
5306619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 flags;
5307619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_NET_FILTER (0x1<<0)
5308619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_NET_FILTER_SHIFT 0
5309619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_CALCULATE_HASH (0x1<<1)
5310619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_CALCULATE_HASH_SHIFT 1
5311619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_COMPARE_HASH_RESULT (0x1<<2)
5312619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_COMPARE_HASH_RESULT_SHIFT 2
5313619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_QUERY_ULP_ACCEPT (0x1<<3)
5314619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_QUERY_ULP_ACCEPT_SHIFT 3
5315619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_FIND_DEST_MAC (0x1<<4)
5316619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_FIND_DEST_MAC_SHIFT 4
5317619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_L4_OFFLOAD (0x1<<5)
5318619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_L4_OFFLOAD_SHIFT 5
5319619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_FORWARD_PACKET (0x1<<6)
5320619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_FORWARD_PACKET_SHIFT 6
5321619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_RSRV (0x1<<7)
5322619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_PCS_ATTRIBUTES_RSRV_SHIFT 7
5323619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 status;
5324619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 pcs_id;
5325619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
5326619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5327619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5328619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5329619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovunion l5cm_seg_params {
5330619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_pcse_syn syn_seg_params;
5331619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_pcse_ack ack_seg_params;
5332619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5333619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5334619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5335619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * pcs entry data for passive connections
5336619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5337619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_pcs_hdr {
5338619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_hash_input_string hash_input_string;
5339619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_conn_addr_params conn_addr_buf;
5340619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 cid;
5341619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u32 hash_result;
5342619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	union l5cm_seg_params seg_params;
5343619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_pcs_attributes att;
5344619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#if defined(__BIG_ENDIAN)
5345619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv;
5346619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rx_seg_size;
5347619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#elif defined(__LITTLE_ENDIAN)
5348619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rx_seg_size;
5349619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u16 rsrv;
5350619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif
5351619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5352619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5353619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5354619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * pcs entry for passive connections
5355619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5356619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_pcs_entry {
5357619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	struct l5cm_pcs_hdr hdr;
5358619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 rx_segment[1516];
5359619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5360619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5361619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5362619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5363619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5364e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5365e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5cm connection parameters
5366e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5367e251306556d30c9c678feca60204acaaa0784cbdMichael Chanunion l5cm_reduce_param_union {
5368523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u32 opaque1;
5369523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u32 opaque2;
5370e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5371e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5372e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5373e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5cm connection parameters
5374e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5375e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct l5cm_reduce_conn {
5376523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	union l5cm_reduce_param_union opaque1;
5377523224a3b3cd407ce4e6731a087194e13a90db18Dmitry Kravkov	u32 opaque2;
5378e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5379e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5380e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5381e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5cm slow path element
5382e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5383e251306556d30c9c678feca60204acaaa0784cbdMichael Chanunion l5cm_specific_data {
5384e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 protocol_data[8];
5385e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct regpair phy_address;
5386e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct l5cm_packet_size packet_size;
5387e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct l5cm_reduce_conn reduced_conn;
5388e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5389e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5390e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5391e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * l5 slow path element
5392e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5393e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct l5cm_spe {
5394e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	struct spe_hdr hdr;
5395e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	union l5cm_specific_data data;
5396e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5397e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5398619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5399619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5400619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5401619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5402619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Termination variables
5403619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5404619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovstruct l5cm_term_vars {
5405619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	u8 BitMap;
5406619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_TCP_STATE (0xF<<0)
5407619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_TCP_STATE_SHIFT 0
5408619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_FIN_RECEIVED_SBIT (0x1<<4)
5409619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_FIN_RECEIVED_SBIT_SHIFT 4
5410619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_ACK_ON_FIN_RECEIVED_SBIT (0x1<<5)
5411619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_ACK_ON_FIN_RECEIVED_SBIT_SHIFT 5
5412619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_TERM_ON_CHIP (0x1<<6)
5413619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_TERM_ON_CHIP_SHIFT 6
5414619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_RSRV (0x1<<7)
5415619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define L5CM_TERM_VARS_RSRV_SHIFT 7
5416619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5417619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5418619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5419619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5420619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5421e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5422e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * Tstorm Tcp flags
5423e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5424e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct tstorm_l5cm_tcp_flags {
5425e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u16 flags;
5426e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define TSTORM_L5CM_TCP_FLAGS_VLAN_ID (0xFFF<<0)
5427e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define TSTORM_L5CM_TCP_FLAGS_VLAN_ID_SHIFT 0
5428e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define TSTORM_L5CM_TCP_FLAGS_RSRV0 (0x1<<12)
5429e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define TSTORM_L5CM_TCP_FLAGS_RSRV0_SHIFT 12
5430e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define TSTORM_L5CM_TCP_FLAGS_TS_ENABLED (0x1<<13)
5431e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define TSTORM_L5CM_TCP_FLAGS_TS_ENABLED_SHIFT 13
5432e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define TSTORM_L5CM_TCP_FLAGS_RSRV1 (0x3<<14)
5433e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define TSTORM_L5CM_TCP_FLAGS_RSRV1_SHIFT 14
5434e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5435e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5436619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5437e251306556d30c9c678feca60204acaaa0784cbdMichael Chan/*
5438e251306556d30c9c678feca60204acaaa0784cbdMichael Chan * Xstorm Tcp flags
5439e251306556d30c9c678feca60204acaaa0784cbdMichael Chan */
5440e251306556d30c9c678feca60204acaaa0784cbdMichael Chanstruct xstorm_l5cm_tcp_flags {
5441e251306556d30c9c678feca60204acaaa0784cbdMichael Chan	u8 flags;
5442e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define XSTORM_L5CM_TCP_FLAGS_ENC_ENABLED (0x1<<0)
5443e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define XSTORM_L5CM_TCP_FLAGS_ENC_ENABLED_SHIFT 0
5444e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define XSTORM_L5CM_TCP_FLAGS_TS_ENABLED (0x1<<1)
5445e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define XSTORM_L5CM_TCP_FLAGS_TS_ENABLED_SHIFT 1
5446e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define XSTORM_L5CM_TCP_FLAGS_WND_SCL_EN (0x1<<2)
5447e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define XSTORM_L5CM_TCP_FLAGS_WND_SCL_EN_SHIFT 2
5448e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define XSTORM_L5CM_TCP_FLAGS_RSRV (0x1F<<3)
5449e251306556d30c9c678feca60204acaaa0784cbdMichael Chan#define XSTORM_L5CM_TCP_FLAGS_RSRV_SHIFT 3
5450e251306556d30c9c678feca60204acaaa0784cbdMichael Chan};
5451e251306556d30c9c678feca60204acaaa0784cbdMichael Chan
5452619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5453619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5454619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5455619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * Out-of-order states
5456619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5457619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovenum tcp_ooo_event {
5458619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_EVENT_ADD_PEN = 0,
5459619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_EVENT_ADD_NEW_ISLE = 1,
5460619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_EVENT_ADD_ISLE_RIGHT = 2,
5461619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_EVENT_ADD_ISLE_LEFT = 3,
5462619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_EVENT_JOIN = 4,
5463619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_EVENT_NOP = 5,
5464619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	MAX_TCP_OOO_EVENT
5465619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5466619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5467619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5468619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov/*
5469619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov * OOO support modes
5470619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov */
5471619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarovenum tcp_tstorm_ooo {
5472619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_TSTORM_OOO_DROP_AND_PROC_ACK = 0,
5473619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_TSTORM_OOO_SEND_PURE_ACK = 1,
5474619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	TCP_TSTORM_OOO_SUPPORTED = 2,
5475619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov	MAX_TCP_TSTORM_OOO
5476619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov};
5477619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5478619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5479619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5480619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5481619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5482619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5483619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5484619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5485619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov
5486619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#endif /* __5710_HSI_CNIC_LE__ */
5487