xref: /linux/drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h (revision af50e4ba34f4c45e92535364133d4deb5931c1c5)
1 /* Broadcom NetXtreme-C/E network driver.
2  *
3  * Copyright (c) 2014-2016 Broadcom Corporation
4  * Copyright (c) 2016-2018 Broadcom Limited
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation.
9  *
10  * DO NOT MODIFY!!! This file is automatically generated.
11  */
12 
13 #ifndef _BNXT_HSI_H_
14 #define _BNXT_HSI_H_
15 
16 /* hwrm_cmd_hdr (size:128b/16B) */
17 struct hwrm_cmd_hdr {
18 	__le16	req_type;
19 	__le16	cmpl_ring;
20 	__le16	seq_id;
21 	__le16	target_id;
22 	__le64	resp_addr;
23 };
24 
25 /* hwrm_resp_hdr (size:64b/8B) */
26 struct hwrm_resp_hdr {
27 	__le16	error_code;
28 	__le16	req_type;
29 	__le16	seq_id;
30 	__le16	resp_len;
31 };
32 
33 #define CMD_DISCR_TLV_ENCAP 0x8000UL
34 #define CMD_DISCR_LAST     CMD_DISCR_TLV_ENCAP
35 
36 
37 #define TLV_TYPE_HWRM_REQUEST                    0x1UL
38 #define TLV_TYPE_HWRM_RESPONSE                   0x2UL
39 #define TLV_TYPE_ROCE_SP_COMMAND                 0x3UL
40 #define TLV_TYPE_ENGINE_CKV_DEVICE_SERIAL_NUMBER 0x8001UL
41 #define TLV_TYPE_ENGINE_CKV_NONCE                0x8002UL
42 #define TLV_TYPE_ENGINE_CKV_IV                   0x8003UL
43 #define TLV_TYPE_ENGINE_CKV_AUTH_TAG             0x8004UL
44 #define TLV_TYPE_ENGINE_CKV_CIPHERTEXT           0x8005UL
45 #define TLV_TYPE_ENGINE_CKV_ALGORITHMS           0x8006UL
46 #define TLV_TYPE_ENGINE_CKV_ECC_PUBLIC_KEY       0x8007UL
47 #define TLV_TYPE_ENGINE_CKV_ECDSA_SIGNATURE      0x8008UL
48 #define TLV_TYPE_LAST                           TLV_TYPE_ENGINE_CKV_ECDSA_SIGNATURE
49 
50 
51 /* tlv (size:64b/8B) */
52 struct tlv {
53 	__le16	cmd_discr;
54 	u8	reserved_8b;
55 	u8	flags;
56 	#define TLV_FLAGS_MORE         0x1UL
57 	#define TLV_FLAGS_MORE_LAST      0x0UL
58 	#define TLV_FLAGS_MORE_NOT_LAST  0x1UL
59 	#define TLV_FLAGS_REQUIRED     0x2UL
60 	#define TLV_FLAGS_REQUIRED_NO    (0x0UL << 1)
61 	#define TLV_FLAGS_REQUIRED_YES   (0x1UL << 1)
62 	#define TLV_FLAGS_REQUIRED_LAST TLV_FLAGS_REQUIRED_YES
63 	__le16	tlv_type;
64 	__le16	length;
65 };
66 
67 /* input (size:128b/16B) */
68 struct input {
69 	__le16	req_type;
70 	__le16	cmpl_ring;
71 	__le16	seq_id;
72 	__le16	target_id;
73 	__le64	resp_addr;
74 };
75 
76 /* output (size:64b/8B) */
77 struct output {
78 	__le16	error_code;
79 	__le16	req_type;
80 	__le16	seq_id;
81 	__le16	resp_len;
82 };
83 
84 /* hwrm_short_input (size:128b/16B) */
85 struct hwrm_short_input {
86 	__le16	req_type;
87 	__le16	signature;
88 	#define SHORT_REQ_SIGNATURE_SHORT_CMD 0x4321UL
89 	#define SHORT_REQ_SIGNATURE_LAST     SHORT_REQ_SIGNATURE_SHORT_CMD
90 	__le16	unused_0;
91 	__le16	size;
92 	__le64	req_addr;
93 };
94 
95 /* cmd_nums (size:64b/8B) */
96 struct cmd_nums {
97 	__le16	req_type;
98 	#define HWRM_VER_GET                              0x0UL
99 	#define HWRM_FUNC_BUF_UNRGTR                      0xeUL
100 	#define HWRM_FUNC_VF_CFG                          0xfUL
101 	#define HWRM_RESERVED1                            0x10UL
102 	#define HWRM_FUNC_RESET                           0x11UL
103 	#define HWRM_FUNC_GETFID                          0x12UL
104 	#define HWRM_FUNC_VF_ALLOC                        0x13UL
105 	#define HWRM_FUNC_VF_FREE                         0x14UL
106 	#define HWRM_FUNC_QCAPS                           0x15UL
107 	#define HWRM_FUNC_QCFG                            0x16UL
108 	#define HWRM_FUNC_CFG                             0x17UL
109 	#define HWRM_FUNC_QSTATS                          0x18UL
110 	#define HWRM_FUNC_CLR_STATS                       0x19UL
111 	#define HWRM_FUNC_DRV_UNRGTR                      0x1aUL
112 	#define HWRM_FUNC_VF_RESC_FREE                    0x1bUL
113 	#define HWRM_FUNC_VF_VNIC_IDS_QUERY               0x1cUL
114 	#define HWRM_FUNC_DRV_RGTR                        0x1dUL
115 	#define HWRM_FUNC_DRV_QVER                        0x1eUL
116 	#define HWRM_FUNC_BUF_RGTR                        0x1fUL
117 	#define HWRM_PORT_PHY_CFG                         0x20UL
118 	#define HWRM_PORT_MAC_CFG                         0x21UL
119 	#define HWRM_PORT_TS_QUERY                        0x22UL
120 	#define HWRM_PORT_QSTATS                          0x23UL
121 	#define HWRM_PORT_LPBK_QSTATS                     0x24UL
122 	#define HWRM_PORT_CLR_STATS                       0x25UL
123 	#define HWRM_PORT_LPBK_CLR_STATS                  0x26UL
124 	#define HWRM_PORT_PHY_QCFG                        0x27UL
125 	#define HWRM_PORT_MAC_QCFG                        0x28UL
126 	#define HWRM_PORT_MAC_PTP_QCFG                    0x29UL
127 	#define HWRM_PORT_PHY_QCAPS                       0x2aUL
128 	#define HWRM_PORT_PHY_I2C_WRITE                   0x2bUL
129 	#define HWRM_PORT_PHY_I2C_READ                    0x2cUL
130 	#define HWRM_PORT_LED_CFG                         0x2dUL
131 	#define HWRM_PORT_LED_QCFG                        0x2eUL
132 	#define HWRM_PORT_LED_QCAPS                       0x2fUL
133 	#define HWRM_QUEUE_QPORTCFG                       0x30UL
134 	#define HWRM_QUEUE_QCFG                           0x31UL
135 	#define HWRM_QUEUE_CFG                            0x32UL
136 	#define HWRM_FUNC_VLAN_CFG                        0x33UL
137 	#define HWRM_FUNC_VLAN_QCFG                       0x34UL
138 	#define HWRM_QUEUE_PFCENABLE_QCFG                 0x35UL
139 	#define HWRM_QUEUE_PFCENABLE_CFG                  0x36UL
140 	#define HWRM_QUEUE_PRI2COS_QCFG                   0x37UL
141 	#define HWRM_QUEUE_PRI2COS_CFG                    0x38UL
142 	#define HWRM_QUEUE_COS2BW_QCFG                    0x39UL
143 	#define HWRM_QUEUE_COS2BW_CFG                     0x3aUL
144 	#define HWRM_QUEUE_DSCP_QCAPS                     0x3bUL
145 	#define HWRM_QUEUE_DSCP2PRI_QCFG                  0x3cUL
146 	#define HWRM_QUEUE_DSCP2PRI_CFG                   0x3dUL
147 	#define HWRM_VNIC_ALLOC                           0x40UL
148 	#define HWRM_VNIC_FREE                            0x41UL
149 	#define HWRM_VNIC_CFG                             0x42UL
150 	#define HWRM_VNIC_QCFG                            0x43UL
151 	#define HWRM_VNIC_TPA_CFG                         0x44UL
152 	#define HWRM_VNIC_TPA_QCFG                        0x45UL
153 	#define HWRM_VNIC_RSS_CFG                         0x46UL
154 	#define HWRM_VNIC_RSS_QCFG                        0x47UL
155 	#define HWRM_VNIC_PLCMODES_CFG                    0x48UL
156 	#define HWRM_VNIC_PLCMODES_QCFG                   0x49UL
157 	#define HWRM_VNIC_QCAPS                           0x4aUL
158 	#define HWRM_RING_ALLOC                           0x50UL
159 	#define HWRM_RING_FREE                            0x51UL
160 	#define HWRM_RING_CMPL_RING_QAGGINT_PARAMS        0x52UL
161 	#define HWRM_RING_CMPL_RING_CFG_AGGINT_PARAMS     0x53UL
162 	#define HWRM_RING_RESET                           0x5eUL
163 	#define HWRM_RING_GRP_ALLOC                       0x60UL
164 	#define HWRM_RING_GRP_FREE                        0x61UL
165 	#define HWRM_RESERVED5                            0x64UL
166 	#define HWRM_RESERVED6                            0x65UL
167 	#define HWRM_VNIC_RSS_COS_LB_CTX_ALLOC            0x70UL
168 	#define HWRM_VNIC_RSS_COS_LB_CTX_FREE             0x71UL
169 	#define HWRM_CFA_L2_FILTER_ALLOC                  0x90UL
170 	#define HWRM_CFA_L2_FILTER_FREE                   0x91UL
171 	#define HWRM_CFA_L2_FILTER_CFG                    0x92UL
172 	#define HWRM_CFA_L2_SET_RX_MASK                   0x93UL
173 	#define HWRM_CFA_VLAN_ANTISPOOF_CFG               0x94UL
174 	#define HWRM_CFA_TUNNEL_FILTER_ALLOC              0x95UL
175 	#define HWRM_CFA_TUNNEL_FILTER_FREE               0x96UL
176 	#define HWRM_CFA_ENCAP_RECORD_ALLOC               0x97UL
177 	#define HWRM_CFA_ENCAP_RECORD_FREE                0x98UL
178 	#define HWRM_CFA_NTUPLE_FILTER_ALLOC              0x99UL
179 	#define HWRM_CFA_NTUPLE_FILTER_FREE               0x9aUL
180 	#define HWRM_CFA_NTUPLE_FILTER_CFG                0x9bUL
181 	#define HWRM_CFA_EM_FLOW_ALLOC                    0x9cUL
182 	#define HWRM_CFA_EM_FLOW_FREE                     0x9dUL
183 	#define HWRM_CFA_EM_FLOW_CFG                      0x9eUL
184 	#define HWRM_TUNNEL_DST_PORT_QUERY                0xa0UL
185 	#define HWRM_TUNNEL_DST_PORT_ALLOC                0xa1UL
186 	#define HWRM_TUNNEL_DST_PORT_FREE                 0xa2UL
187 	#define HWRM_STAT_CTX_ALLOC                       0xb0UL
188 	#define HWRM_STAT_CTX_FREE                        0xb1UL
189 	#define HWRM_STAT_CTX_QUERY                       0xb2UL
190 	#define HWRM_STAT_CTX_CLR_STATS                   0xb3UL
191 	#define HWRM_PORT_QSTATS_EXT                      0xb4UL
192 	#define HWRM_FW_RESET                             0xc0UL
193 	#define HWRM_FW_QSTATUS                           0xc1UL
194 	#define HWRM_FW_SET_TIME                          0xc8UL
195 	#define HWRM_FW_GET_TIME                          0xc9UL
196 	#define HWRM_FW_SET_STRUCTURED_DATA               0xcaUL
197 	#define HWRM_FW_GET_STRUCTURED_DATA               0xcbUL
198 	#define HWRM_FW_IPC_MAILBOX                       0xccUL
199 	#define HWRM_EXEC_FWD_RESP                        0xd0UL
200 	#define HWRM_REJECT_FWD_RESP                      0xd1UL
201 	#define HWRM_FWD_RESP                             0xd2UL
202 	#define HWRM_FWD_ASYNC_EVENT_CMPL                 0xd3UL
203 	#define HWRM_OEM_CMD                              0xd4UL
204 	#define HWRM_TEMP_MONITOR_QUERY                   0xe0UL
205 	#define HWRM_WOL_FILTER_ALLOC                     0xf0UL
206 	#define HWRM_WOL_FILTER_FREE                      0xf1UL
207 	#define HWRM_WOL_FILTER_QCFG                      0xf2UL
208 	#define HWRM_WOL_REASON_QCFG                      0xf3UL
209 	#define HWRM_CFA_METER_PROFILE_ALLOC              0xf5UL
210 	#define HWRM_CFA_METER_PROFILE_FREE               0xf6UL
211 	#define HWRM_CFA_METER_PROFILE_CFG                0xf7UL
212 	#define HWRM_CFA_METER_INSTANCE_ALLOC             0xf8UL
213 	#define HWRM_CFA_METER_INSTANCE_FREE              0xf9UL
214 	#define HWRM_CFA_VFR_ALLOC                        0xfdUL
215 	#define HWRM_CFA_VFR_FREE                         0xfeUL
216 	#define HWRM_CFA_VF_PAIR_ALLOC                    0x100UL
217 	#define HWRM_CFA_VF_PAIR_FREE                     0x101UL
218 	#define HWRM_CFA_VF_PAIR_INFO                     0x102UL
219 	#define HWRM_CFA_FLOW_ALLOC                       0x103UL
220 	#define HWRM_CFA_FLOW_FREE                        0x104UL
221 	#define HWRM_CFA_FLOW_FLUSH                       0x105UL
222 	#define HWRM_CFA_FLOW_STATS                       0x106UL
223 	#define HWRM_CFA_FLOW_INFO                        0x107UL
224 	#define HWRM_CFA_DECAP_FILTER_ALLOC               0x108UL
225 	#define HWRM_CFA_DECAP_FILTER_FREE                0x109UL
226 	#define HWRM_CFA_VLAN_ANTISPOOF_QCFG              0x10aUL
227 	#define HWRM_CFA_REDIRECT_TUNNEL_TYPE_ALLOC       0x10bUL
228 	#define HWRM_CFA_REDIRECT_TUNNEL_TYPE_FREE        0x10cUL
229 	#define HWRM_CFA_PAIR_ALLOC                       0x10dUL
230 	#define HWRM_CFA_PAIR_FREE                        0x10eUL
231 	#define HWRM_CFA_PAIR_INFO                        0x10fUL
232 	#define HWRM_FW_IPC_MSG                           0x110UL
233 	#define HWRM_CFA_REDIRECT_TUNNEL_TYPE_INFO        0x111UL
234 	#define HWRM_ENGINE_CKV_HELLO                     0x12dUL
235 	#define HWRM_ENGINE_CKV_STATUS                    0x12eUL
236 	#define HWRM_ENGINE_CKV_CKEK_ADD                  0x12fUL
237 	#define HWRM_ENGINE_CKV_CKEK_DELETE               0x130UL
238 	#define HWRM_ENGINE_CKV_KEY_ADD                   0x131UL
239 	#define HWRM_ENGINE_CKV_KEY_DELETE                0x132UL
240 	#define HWRM_ENGINE_CKV_FLUSH                     0x133UL
241 	#define HWRM_ENGINE_CKV_RNG_GET                   0x134UL
242 	#define HWRM_ENGINE_CKV_KEY_GEN                   0x135UL
243 	#define HWRM_ENGINE_QG_CONFIG_QUERY               0x13cUL
244 	#define HWRM_ENGINE_QG_QUERY                      0x13dUL
245 	#define HWRM_ENGINE_QG_METER_PROFILE_CONFIG_QUERY 0x13eUL
246 	#define HWRM_ENGINE_QG_METER_PROFILE_QUERY        0x13fUL
247 	#define HWRM_ENGINE_QG_METER_PROFILE_ALLOC        0x140UL
248 	#define HWRM_ENGINE_QG_METER_PROFILE_FREE         0x141UL
249 	#define HWRM_ENGINE_QG_METER_QUERY                0x142UL
250 	#define HWRM_ENGINE_QG_METER_BIND                 0x143UL
251 	#define HWRM_ENGINE_QG_METER_UNBIND               0x144UL
252 	#define HWRM_ENGINE_QG_FUNC_BIND                  0x145UL
253 	#define HWRM_ENGINE_SG_CONFIG_QUERY               0x146UL
254 	#define HWRM_ENGINE_SG_QUERY                      0x147UL
255 	#define HWRM_ENGINE_SG_METER_QUERY                0x148UL
256 	#define HWRM_ENGINE_SG_METER_CONFIG               0x149UL
257 	#define HWRM_ENGINE_SG_QG_BIND                    0x14aUL
258 	#define HWRM_ENGINE_QG_SG_UNBIND                  0x14bUL
259 	#define HWRM_ENGINE_CONFIG_QUERY                  0x154UL
260 	#define HWRM_ENGINE_STATS_CONFIG                  0x155UL
261 	#define HWRM_ENGINE_STATS_CLEAR                   0x156UL
262 	#define HWRM_ENGINE_STATS_QUERY                   0x157UL
263 	#define HWRM_ENGINE_RQ_ALLOC                      0x15eUL
264 	#define HWRM_ENGINE_RQ_FREE                       0x15fUL
265 	#define HWRM_ENGINE_CQ_ALLOC                      0x160UL
266 	#define HWRM_ENGINE_CQ_FREE                       0x161UL
267 	#define HWRM_ENGINE_NQ_ALLOC                      0x162UL
268 	#define HWRM_ENGINE_NQ_FREE                       0x163UL
269 	#define HWRM_ENGINE_ON_DIE_RQE_CREDITS            0x164UL
270 	#define HWRM_FUNC_RESOURCE_QCAPS                  0x190UL
271 	#define HWRM_FUNC_VF_RESOURCE_CFG                 0x191UL
272 	#define HWRM_SELFTEST_QLIST                       0x200UL
273 	#define HWRM_SELFTEST_EXEC                        0x201UL
274 	#define HWRM_SELFTEST_IRQ                         0x202UL
275 	#define HWRM_SELFTEST_RETRIEVE_SERDES_DATA        0x203UL
276 	#define HWRM_PCIE_QSTATS                          0x204UL
277 	#define HWRM_DBG_READ_DIRECT                      0xff10UL
278 	#define HWRM_DBG_READ_INDIRECT                    0xff11UL
279 	#define HWRM_DBG_WRITE_DIRECT                     0xff12UL
280 	#define HWRM_DBG_WRITE_INDIRECT                   0xff13UL
281 	#define HWRM_DBG_DUMP                             0xff14UL
282 	#define HWRM_DBG_ERASE_NVM                        0xff15UL
283 	#define HWRM_DBG_CFG                              0xff16UL
284 	#define HWRM_DBG_COREDUMP_LIST                    0xff17UL
285 	#define HWRM_DBG_COREDUMP_INITIATE                0xff18UL
286 	#define HWRM_DBG_COREDUMP_RETRIEVE                0xff19UL
287 	#define HWRM_NVM_FACTORY_DEFAULTS                 0xffeeUL
288 	#define HWRM_NVM_VALIDATE_OPTION                  0xffefUL
289 	#define HWRM_NVM_FLUSH                            0xfff0UL
290 	#define HWRM_NVM_GET_VARIABLE                     0xfff1UL
291 	#define HWRM_NVM_SET_VARIABLE                     0xfff2UL
292 	#define HWRM_NVM_INSTALL_UPDATE                   0xfff3UL
293 	#define HWRM_NVM_MODIFY                           0xfff4UL
294 	#define HWRM_NVM_VERIFY_UPDATE                    0xfff5UL
295 	#define HWRM_NVM_GET_DEV_INFO                     0xfff6UL
296 	#define HWRM_NVM_ERASE_DIR_ENTRY                  0xfff7UL
297 	#define HWRM_NVM_MOD_DIR_ENTRY                    0xfff8UL
298 	#define HWRM_NVM_FIND_DIR_ENTRY                   0xfff9UL
299 	#define HWRM_NVM_GET_DIR_ENTRIES                  0xfffaUL
300 	#define HWRM_NVM_GET_DIR_INFO                     0xfffbUL
301 	#define HWRM_NVM_RAW_DUMP                         0xfffcUL
302 	#define HWRM_NVM_READ                             0xfffdUL
303 	#define HWRM_NVM_WRITE                            0xfffeUL
304 	#define HWRM_NVM_RAW_WRITE_BLK                    0xffffUL
305 	#define HWRM_LAST                                HWRM_NVM_RAW_WRITE_BLK
306 	__le16	unused_0[3];
307 };
308 
309 /* ret_codes (size:64b/8B) */
310 struct ret_codes {
311 	__le16	error_code;
312 	#define HWRM_ERR_CODE_SUCCESS                0x0UL
313 	#define HWRM_ERR_CODE_FAIL                   0x1UL
314 	#define HWRM_ERR_CODE_INVALID_PARAMS         0x2UL
315 	#define HWRM_ERR_CODE_RESOURCE_ACCESS_DENIED 0x3UL
316 	#define HWRM_ERR_CODE_RESOURCE_ALLOC_ERROR   0x4UL
317 	#define HWRM_ERR_CODE_INVALID_FLAGS          0x5UL
318 	#define HWRM_ERR_CODE_INVALID_ENABLES        0x6UL
319 	#define HWRM_ERR_CODE_UNSUPPORTED_TLV        0x7UL
320 	#define HWRM_ERR_CODE_NO_BUFFER              0x8UL
321 	#define HWRM_ERR_CODE_HWRM_ERROR             0xfUL
322 	#define HWRM_ERR_CODE_UNKNOWN_ERR            0xfffeUL
323 	#define HWRM_ERR_CODE_CMD_NOT_SUPPORTED      0xffffUL
324 	#define HWRM_ERR_CODE_LAST                  HWRM_ERR_CODE_CMD_NOT_SUPPORTED
325 	__le16	unused_0[3];
326 };
327 
328 /* hwrm_err_output (size:128b/16B) */
329 struct hwrm_err_output {
330 	__le16	error_code;
331 	__le16	req_type;
332 	__le16	seq_id;
333 	__le16	resp_len;
334 	__le32	opaque_0;
335 	__le16	opaque_1;
336 	u8	cmd_err;
337 	u8	valid;
338 };
339 #define HWRM_NA_SIGNATURE ((__le32)(-1))
340 #define HWRM_MAX_REQ_LEN 128
341 #define HWRM_MAX_RESP_LEN 280
342 #define HW_HASH_INDEX_SIZE 0x80
343 #define HW_HASH_KEY_SIZE 40
344 #define HWRM_RESP_VALID_KEY 1
345 #define HWRM_VERSION_MAJOR 1
346 #define HWRM_VERSION_MINOR 9
347 #define HWRM_VERSION_UPDATE 1
348 #define HWRM_VERSION_RSVD 15
349 #define HWRM_VERSION_STR "1.9.1.15"
350 
351 /* hwrm_ver_get_input (size:192b/24B) */
352 struct hwrm_ver_get_input {
353 	__le16	req_type;
354 	__le16	cmpl_ring;
355 	__le16	seq_id;
356 	__le16	target_id;
357 	__le64	resp_addr;
358 	u8	hwrm_intf_maj;
359 	u8	hwrm_intf_min;
360 	u8	hwrm_intf_upd;
361 	u8	unused_0[5];
362 };
363 
364 /* hwrm_ver_get_output (size:1408b/176B) */
365 struct hwrm_ver_get_output {
366 	__le16	error_code;
367 	__le16	req_type;
368 	__le16	seq_id;
369 	__le16	resp_len;
370 	u8	hwrm_intf_maj_8b;
371 	u8	hwrm_intf_min_8b;
372 	u8	hwrm_intf_upd_8b;
373 	u8	hwrm_intf_rsvd_8b;
374 	u8	hwrm_fw_maj_8b;
375 	u8	hwrm_fw_min_8b;
376 	u8	hwrm_fw_bld_8b;
377 	u8	hwrm_fw_rsvd_8b;
378 	u8	mgmt_fw_maj_8b;
379 	u8	mgmt_fw_min_8b;
380 	u8	mgmt_fw_bld_8b;
381 	u8	mgmt_fw_rsvd_8b;
382 	u8	netctrl_fw_maj_8b;
383 	u8	netctrl_fw_min_8b;
384 	u8	netctrl_fw_bld_8b;
385 	u8	netctrl_fw_rsvd_8b;
386 	__le32	dev_caps_cfg;
387 	#define VER_GET_RESP_DEV_CAPS_CFG_SECURE_FW_UPD_SUPPORTED     0x1UL
388 	#define VER_GET_RESP_DEV_CAPS_CFG_FW_DCBX_AGENT_SUPPORTED     0x2UL
389 	#define VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_SUPPORTED         0x4UL
390 	#define VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_REQUIRED          0x8UL
391 	u8	roce_fw_maj_8b;
392 	u8	roce_fw_min_8b;
393 	u8	roce_fw_bld_8b;
394 	u8	roce_fw_rsvd_8b;
395 	char	hwrm_fw_name[16];
396 	char	mgmt_fw_name[16];
397 	char	netctrl_fw_name[16];
398 	u8	reserved2[16];
399 	char	roce_fw_name[16];
400 	__le16	chip_num;
401 	u8	chip_rev;
402 	u8	chip_metal;
403 	u8	chip_bond_id;
404 	u8	chip_platform_type;
405 	#define VER_GET_RESP_CHIP_PLATFORM_TYPE_ASIC      0x0UL
406 	#define VER_GET_RESP_CHIP_PLATFORM_TYPE_FPGA      0x1UL
407 	#define VER_GET_RESP_CHIP_PLATFORM_TYPE_PALLADIUM 0x2UL
408 	#define VER_GET_RESP_CHIP_PLATFORM_TYPE_LAST     VER_GET_RESP_CHIP_PLATFORM_TYPE_PALLADIUM
409 	__le16	max_req_win_len;
410 	__le16	max_resp_len;
411 	__le16	def_req_timeout;
412 	u8	flags;
413 	#define VER_GET_RESP_FLAGS_DEV_NOT_RDY       0x1UL
414 	#define VER_GET_RESP_FLAGS_EXT_VER_AVAIL     0x2UL
415 	u8	unused_0[2];
416 	u8	always_1;
417 	__le16	hwrm_intf_major;
418 	__le16	hwrm_intf_minor;
419 	__le16	hwrm_intf_build;
420 	__le16	hwrm_intf_patch;
421 	__le16	hwrm_fw_major;
422 	__le16	hwrm_fw_minor;
423 	__le16	hwrm_fw_build;
424 	__le16	hwrm_fw_patch;
425 	__le16	mgmt_fw_major;
426 	__le16	mgmt_fw_minor;
427 	__le16	mgmt_fw_build;
428 	__le16	mgmt_fw_patch;
429 	__le16	netctrl_fw_major;
430 	__le16	netctrl_fw_minor;
431 	__le16	netctrl_fw_build;
432 	__le16	netctrl_fw_patch;
433 	__le16	roce_fw_major;
434 	__le16	roce_fw_minor;
435 	__le16	roce_fw_build;
436 	__le16	roce_fw_patch;
437 	__le16	max_ext_req_len;
438 	u8	unused_1[5];
439 	u8	valid;
440 };
441 
442 /* eject_cmpl (size:128b/16B) */
443 struct eject_cmpl {
444 	__le16	type;
445 	#define EJECT_CMPL_TYPE_MASK      0x3fUL
446 	#define EJECT_CMPL_TYPE_SFT       0
447 	#define EJECT_CMPL_TYPE_STAT_EJECT  0x1aUL
448 	#define EJECT_CMPL_TYPE_LAST       EJECT_CMPL_TYPE_STAT_EJECT
449 	__le16	len;
450 	__le32	opaque;
451 	__le32	v;
452 	#define EJECT_CMPL_V     0x1UL
453 	__le32	unused_2;
454 };
455 
456 /* hwrm_cmpl (size:128b/16B) */
457 struct hwrm_cmpl {
458 	__le16	type;
459 	#define CMPL_TYPE_MASK     0x3fUL
460 	#define CMPL_TYPE_SFT      0
461 	#define CMPL_TYPE_HWRM_DONE  0x20UL
462 	#define CMPL_TYPE_LAST      CMPL_TYPE_HWRM_DONE
463 	__le16	sequence_id;
464 	__le32	unused_1;
465 	__le32	v;
466 	#define CMPL_V     0x1UL
467 	__le32	unused_3;
468 };
469 
470 /* hwrm_fwd_req_cmpl (size:128b/16B) */
471 struct hwrm_fwd_req_cmpl {
472 	__le16	req_len_type;
473 	#define FWD_REQ_CMPL_TYPE_MASK        0x3fUL
474 	#define FWD_REQ_CMPL_TYPE_SFT         0
475 	#define FWD_REQ_CMPL_TYPE_HWRM_FWD_REQ  0x22UL
476 	#define FWD_REQ_CMPL_TYPE_LAST         FWD_REQ_CMPL_TYPE_HWRM_FWD_REQ
477 	#define FWD_REQ_CMPL_REQ_LEN_MASK     0xffc0UL
478 	#define FWD_REQ_CMPL_REQ_LEN_SFT      6
479 	__le16	source_id;
480 	__le32	unused0;
481 	__le32	req_buf_addr_v[2];
482 	#define FWD_REQ_CMPL_V                0x1UL
483 	#define FWD_REQ_CMPL_REQ_BUF_ADDR_MASK 0xfffffffeUL
484 	#define FWD_REQ_CMPL_REQ_BUF_ADDR_SFT 1
485 };
486 
487 /* hwrm_fwd_resp_cmpl (size:128b/16B) */
488 struct hwrm_fwd_resp_cmpl {
489 	__le16	type;
490 	#define FWD_RESP_CMPL_TYPE_MASK         0x3fUL
491 	#define FWD_RESP_CMPL_TYPE_SFT          0
492 	#define FWD_RESP_CMPL_TYPE_HWRM_FWD_RESP  0x24UL
493 	#define FWD_RESP_CMPL_TYPE_LAST          FWD_RESP_CMPL_TYPE_HWRM_FWD_RESP
494 	__le16	source_id;
495 	__le16	resp_len;
496 	__le16	unused_1;
497 	__le32	resp_buf_addr_v[2];
498 	#define FWD_RESP_CMPL_V                 0x1UL
499 	#define FWD_RESP_CMPL_RESP_BUF_ADDR_MASK 0xfffffffeUL
500 	#define FWD_RESP_CMPL_RESP_BUF_ADDR_SFT 1
501 };
502 
503 /* hwrm_async_event_cmpl (size:128b/16B) */
504 struct hwrm_async_event_cmpl {
505 	__le16	type;
506 	#define ASYNC_EVENT_CMPL_TYPE_MASK            0x3fUL
507 	#define ASYNC_EVENT_CMPL_TYPE_SFT             0
508 	#define ASYNC_EVENT_CMPL_TYPE_HWRM_ASYNC_EVENT  0x2eUL
509 	#define ASYNC_EVENT_CMPL_TYPE_LAST             ASYNC_EVENT_CMPL_TYPE_HWRM_ASYNC_EVENT
510 	__le16	event_id;
511 	#define ASYNC_EVENT_CMPL_EVENT_ID_LINK_STATUS_CHANGE         0x0UL
512 	#define ASYNC_EVENT_CMPL_EVENT_ID_LINK_MTU_CHANGE            0x1UL
513 	#define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CHANGE          0x2UL
514 	#define ASYNC_EVENT_CMPL_EVENT_ID_DCB_CONFIG_CHANGE          0x3UL
515 	#define ASYNC_EVENT_CMPL_EVENT_ID_PORT_CONN_NOT_ALLOWED      0x4UL
516 	#define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_NOT_ALLOWED 0x5UL
517 	#define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_CHANGE      0x6UL
518 	#define ASYNC_EVENT_CMPL_EVENT_ID_PORT_PHY_CFG_CHANGE        0x7UL
519 	#define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_UNLOAD           0x10UL
520 	#define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_LOAD             0x11UL
521 	#define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_FLR_PROC_CMPLT        0x12UL
522 	#define ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_UNLOAD             0x20UL
523 	#define ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_LOAD               0x21UL
524 	#define ASYNC_EVENT_CMPL_EVENT_ID_VF_FLR                     0x30UL
525 	#define ASYNC_EVENT_CMPL_EVENT_ID_VF_MAC_ADDR_CHANGE         0x31UL
526 	#define ASYNC_EVENT_CMPL_EVENT_ID_PF_VF_COMM_STATUS_CHANGE   0x32UL
527 	#define ASYNC_EVENT_CMPL_EVENT_ID_VF_CFG_CHANGE              0x33UL
528 	#define ASYNC_EVENT_CMPL_EVENT_ID_LLFC_PFC_CHANGE            0x34UL
529 	#define ASYNC_EVENT_CMPL_EVENT_ID_HWRM_ERROR                 0xffUL
530 	#define ASYNC_EVENT_CMPL_EVENT_ID_LAST                      ASYNC_EVENT_CMPL_EVENT_ID_HWRM_ERROR
531 	__le32	event_data2;
532 	u8	opaque_v;
533 	#define ASYNC_EVENT_CMPL_V          0x1UL
534 	#define ASYNC_EVENT_CMPL_OPAQUE_MASK 0xfeUL
535 	#define ASYNC_EVENT_CMPL_OPAQUE_SFT 1
536 	u8	timestamp_lo;
537 	__le16	timestamp_hi;
538 	__le32	event_data1;
539 };
540 
541 /* hwrm_async_event_cmpl_link_status_change (size:128b/16B) */
542 struct hwrm_async_event_cmpl_link_status_change {
543 	__le16	type;
544 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_MASK            0x3fUL
545 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_SFT             0
546 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_HWRM_ASYNC_EVENT  0x2eUL
547 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_LAST             ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_HWRM_ASYNC_EVENT
548 	__le16	event_id;
549 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LINK_STATUS_CHANGE 0x0UL
550 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LAST              ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LINK_STATUS_CHANGE
551 	__le32	event_data2;
552 	u8	opaque_v;
553 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_V          0x1UL
554 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_OPAQUE_MASK 0xfeUL
555 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_OPAQUE_SFT 1
556 	u8	timestamp_lo;
557 	__le16	timestamp_hi;
558 	__le32	event_data1;
559 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE     0x1UL
560 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_DOWN  0x0UL
561 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_UP    0x1UL
562 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_LAST ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_UP
563 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_MASK       0xeUL
564 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_SFT        1
565 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_ID_MASK    0xffff0UL
566 	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_ID_SFT     4
567 };
568 
569 /* hwrm_async_event_cmpl_port_conn_not_allowed (size:128b/16B) */
570 struct hwrm_async_event_cmpl_port_conn_not_allowed {
571 	__le16	type;
572 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_MASK            0x3fUL
573 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_SFT             0
574 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_HWRM_ASYNC_EVENT  0x2eUL
575 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_LAST             ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_HWRM_ASYNC_EVENT
576 	__le16	event_id;
577 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_PORT_CONN_NOT_ALLOWED 0x4UL
578 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_LAST                 ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_PORT_CONN_NOT_ALLOWED
579 	__le32	event_data2;
580 	u8	opaque_v;
581 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_V          0x1UL
582 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_OPAQUE_MASK 0xfeUL
583 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_OPAQUE_SFT 1
584 	u8	timestamp_lo;
585 	__le16	timestamp_hi;
586 	__le32	event_data1;
587 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_PORT_ID_MASK                 0xffffUL
588 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_PORT_ID_SFT                  0
589 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_MASK      0xff0000UL
590 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_SFT       16
591 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_NONE        (0x0UL << 16)
592 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_DISABLETX   (0x1UL << 16)
593 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_WARNINGMSG  (0x2UL << 16)
594 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_PWRDOWN     (0x3UL << 16)
595 	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_LAST       ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_PWRDOWN
596 };
597 
598 /* hwrm_async_event_cmpl_link_speed_cfg_change (size:128b/16B) */
599 struct hwrm_async_event_cmpl_link_speed_cfg_change {
600 	__le16	type;
601 	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_MASK            0x3fUL
602 	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_SFT             0
603 	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT  0x2eUL
604 	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_LAST             ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT
605 	__le16	event_id;
606 	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LINK_SPEED_CFG_CHANGE 0x6UL
607 	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LAST                 ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LINK_SPEED_CFG_CHANGE
608 	__le32	event_data2;
609 	u8	opaque_v;
610 	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_V          0x1UL
611 	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_OPAQUE_MASK 0xfeUL
612 	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_OPAQUE_SFT 1
613 	u8	timestamp_lo;
614 	__le16	timestamp_hi;
615 	__le32	event_data1;
616 	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_PORT_ID_MASK                     0xffffUL
617 	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_PORT_ID_SFT                      0
618 	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_SUPPORTED_LINK_SPEEDS_CHANGE     0x10000UL
619 	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_ILLEGAL_LINK_SPEED_CFG           0x20000UL
620 };
621 
622 /* hwrm_async_event_cmpl_vf_cfg_change (size:128b/16B) */
623 struct hwrm_async_event_cmpl_vf_cfg_change {
624 	__le16	type;
625 	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_MASK            0x3fUL
626 	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_SFT             0
627 	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT  0x2eUL
628 	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_LAST             ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT
629 	__le16	event_id;
630 	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_VF_CFG_CHANGE 0x33UL
631 	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_LAST         ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_VF_CFG_CHANGE
632 	__le32	event_data2;
633 	u8	opaque_v;
634 	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_V          0x1UL
635 	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_OPAQUE_MASK 0xfeUL
636 	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_OPAQUE_SFT 1
637 	u8	timestamp_lo;
638 	__le16	timestamp_hi;
639 	__le32	event_data1;
640 	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_MTU_CHANGE               0x1UL
641 	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_MRU_CHANGE               0x2UL
642 	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_DFLT_MAC_ADDR_CHANGE     0x4UL
643 	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_DFLT_VLAN_CHANGE         0x8UL
644 };
645 
646 /* hwrm_func_reset_input (size:192b/24B) */
647 struct hwrm_func_reset_input {
648 	__le16	req_type;
649 	__le16	cmpl_ring;
650 	__le16	seq_id;
651 	__le16	target_id;
652 	__le64	resp_addr;
653 	__le32	enables;
654 	#define FUNC_RESET_REQ_ENABLES_VF_ID_VALID     0x1UL
655 	__le16	vf_id;
656 	u8	func_reset_level;
657 	#define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETALL      0x0UL
658 	#define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETME       0x1UL
659 	#define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETCHILDREN 0x2UL
660 	#define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETVF       0x3UL
661 	#define FUNC_RESET_REQ_FUNC_RESET_LEVEL_LAST         FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETVF
662 	u8	unused_0;
663 };
664 
665 /* hwrm_func_reset_output (size:128b/16B) */
666 struct hwrm_func_reset_output {
667 	__le16	error_code;
668 	__le16	req_type;
669 	__le16	seq_id;
670 	__le16	resp_len;
671 	u8	unused_0[7];
672 	u8	valid;
673 };
674 
675 /* hwrm_func_getfid_input (size:192b/24B) */
676 struct hwrm_func_getfid_input {
677 	__le16	req_type;
678 	__le16	cmpl_ring;
679 	__le16	seq_id;
680 	__le16	target_id;
681 	__le64	resp_addr;
682 	__le32	enables;
683 	#define FUNC_GETFID_REQ_ENABLES_PCI_ID     0x1UL
684 	__le16	pci_id;
685 	u8	unused_0[2];
686 };
687 
688 /* hwrm_func_getfid_output (size:128b/16B) */
689 struct hwrm_func_getfid_output {
690 	__le16	error_code;
691 	__le16	req_type;
692 	__le16	seq_id;
693 	__le16	resp_len;
694 	__le16	fid;
695 	u8	unused_0[5];
696 	u8	valid;
697 };
698 
699 /* hwrm_func_vf_alloc_input (size:192b/24B) */
700 struct hwrm_func_vf_alloc_input {
701 	__le16	req_type;
702 	__le16	cmpl_ring;
703 	__le16	seq_id;
704 	__le16	target_id;
705 	__le64	resp_addr;
706 	__le32	enables;
707 	#define FUNC_VF_ALLOC_REQ_ENABLES_FIRST_VF_ID     0x1UL
708 	__le16	first_vf_id;
709 	__le16	num_vfs;
710 };
711 
712 /* hwrm_func_vf_alloc_output (size:128b/16B) */
713 struct hwrm_func_vf_alloc_output {
714 	__le16	error_code;
715 	__le16	req_type;
716 	__le16	seq_id;
717 	__le16	resp_len;
718 	__le16	first_vf_id;
719 	u8	unused_0[5];
720 	u8	valid;
721 };
722 
723 /* hwrm_func_vf_free_input (size:192b/24B) */
724 struct hwrm_func_vf_free_input {
725 	__le16	req_type;
726 	__le16	cmpl_ring;
727 	__le16	seq_id;
728 	__le16	target_id;
729 	__le64	resp_addr;
730 	__le32	enables;
731 	#define FUNC_VF_FREE_REQ_ENABLES_FIRST_VF_ID     0x1UL
732 	__le16	first_vf_id;
733 	__le16	num_vfs;
734 };
735 
736 /* hwrm_func_vf_free_output (size:128b/16B) */
737 struct hwrm_func_vf_free_output {
738 	__le16	error_code;
739 	__le16	req_type;
740 	__le16	seq_id;
741 	__le16	resp_len;
742 	u8	unused_0[7];
743 	u8	valid;
744 };
745 
746 /* hwrm_func_vf_cfg_input (size:448b/56B) */
747 struct hwrm_func_vf_cfg_input {
748 	__le16	req_type;
749 	__le16	cmpl_ring;
750 	__le16	seq_id;
751 	__le16	target_id;
752 	__le64	resp_addr;
753 	__le32	enables;
754 	#define FUNC_VF_CFG_REQ_ENABLES_MTU                  0x1UL
755 	#define FUNC_VF_CFG_REQ_ENABLES_GUEST_VLAN           0x2UL
756 	#define FUNC_VF_CFG_REQ_ENABLES_ASYNC_EVENT_CR       0x4UL
757 	#define FUNC_VF_CFG_REQ_ENABLES_DFLT_MAC_ADDR        0x8UL
758 	#define FUNC_VF_CFG_REQ_ENABLES_NUM_RSSCOS_CTXS      0x10UL
759 	#define FUNC_VF_CFG_REQ_ENABLES_NUM_CMPL_RINGS       0x20UL
760 	#define FUNC_VF_CFG_REQ_ENABLES_NUM_TX_RINGS         0x40UL
761 	#define FUNC_VF_CFG_REQ_ENABLES_NUM_RX_RINGS         0x80UL
762 	#define FUNC_VF_CFG_REQ_ENABLES_NUM_L2_CTXS          0x100UL
763 	#define FUNC_VF_CFG_REQ_ENABLES_NUM_VNICS            0x200UL
764 	#define FUNC_VF_CFG_REQ_ENABLES_NUM_STAT_CTXS        0x400UL
765 	#define FUNC_VF_CFG_REQ_ENABLES_NUM_HW_RING_GRPS     0x800UL
766 	__le16	mtu;
767 	__le16	guest_vlan;
768 	__le16	async_event_cr;
769 	u8	dflt_mac_addr[6];
770 	__le32	flags;
771 	#define FUNC_VF_CFG_REQ_FLAGS_TX_ASSETS_TEST             0x1UL
772 	#define FUNC_VF_CFG_REQ_FLAGS_RX_ASSETS_TEST             0x2UL
773 	#define FUNC_VF_CFG_REQ_FLAGS_CMPL_ASSETS_TEST           0x4UL
774 	#define FUNC_VF_CFG_REQ_FLAGS_RSSCOS_CTX_ASSETS_TEST     0x8UL
775 	#define FUNC_VF_CFG_REQ_FLAGS_RING_GRP_ASSETS_TEST       0x10UL
776 	#define FUNC_VF_CFG_REQ_FLAGS_STAT_CTX_ASSETS_TEST       0x20UL
777 	#define FUNC_VF_CFG_REQ_FLAGS_VNIC_ASSETS_TEST           0x40UL
778 	#define FUNC_VF_CFG_REQ_FLAGS_L2_CTX_ASSETS_TEST         0x80UL
779 	__le16	num_rsscos_ctxs;
780 	__le16	num_cmpl_rings;
781 	__le16	num_tx_rings;
782 	__le16	num_rx_rings;
783 	__le16	num_l2_ctxs;
784 	__le16	num_vnics;
785 	__le16	num_stat_ctxs;
786 	__le16	num_hw_ring_grps;
787 	u8	unused_0[4];
788 };
789 
790 /* hwrm_func_vf_cfg_output (size:128b/16B) */
791 struct hwrm_func_vf_cfg_output {
792 	__le16	error_code;
793 	__le16	req_type;
794 	__le16	seq_id;
795 	__le16	resp_len;
796 	u8	unused_0[7];
797 	u8	valid;
798 };
799 
800 /* hwrm_func_qcaps_input (size:192b/24B) */
801 struct hwrm_func_qcaps_input {
802 	__le16	req_type;
803 	__le16	cmpl_ring;
804 	__le16	seq_id;
805 	__le16	target_id;
806 	__le64	resp_addr;
807 	__le16	fid;
808 	u8	unused_0[6];
809 };
810 
811 /* hwrm_func_qcaps_output (size:640b/80B) */
812 struct hwrm_func_qcaps_output {
813 	__le16	error_code;
814 	__le16	req_type;
815 	__le16	seq_id;
816 	__le16	resp_len;
817 	__le16	fid;
818 	__le16	port_id;
819 	__le32	flags;
820 	#define FUNC_QCAPS_RESP_FLAGS_PUSH_MODE_SUPPORTED            0x1UL
821 	#define FUNC_QCAPS_RESP_FLAGS_GLOBAL_MSIX_AUTOMASKING        0x2UL
822 	#define FUNC_QCAPS_RESP_FLAGS_PTP_SUPPORTED                  0x4UL
823 	#define FUNC_QCAPS_RESP_FLAGS_ROCE_V1_SUPPORTED              0x8UL
824 	#define FUNC_QCAPS_RESP_FLAGS_ROCE_V2_SUPPORTED              0x10UL
825 	#define FUNC_QCAPS_RESP_FLAGS_WOL_MAGICPKT_SUPPORTED         0x20UL
826 	#define FUNC_QCAPS_RESP_FLAGS_WOL_BMP_SUPPORTED              0x40UL
827 	#define FUNC_QCAPS_RESP_FLAGS_TX_RING_RL_SUPPORTED           0x80UL
828 	#define FUNC_QCAPS_RESP_FLAGS_TX_BW_CFG_SUPPORTED            0x100UL
829 	#define FUNC_QCAPS_RESP_FLAGS_VF_TX_RING_RL_SUPPORTED        0x200UL
830 	#define FUNC_QCAPS_RESP_FLAGS_VF_BW_CFG_SUPPORTED            0x400UL
831 	#define FUNC_QCAPS_RESP_FLAGS_STD_TX_RING_MODE_SUPPORTED     0x800UL
832 	#define FUNC_QCAPS_RESP_FLAGS_GENEVE_TUN_FLAGS_SUPPORTED     0x1000UL
833 	#define FUNC_QCAPS_RESP_FLAGS_NVGRE_TUN_FLAGS_SUPPORTED      0x2000UL
834 	#define FUNC_QCAPS_RESP_FLAGS_GRE_TUN_FLAGS_SUPPORTED        0x4000UL
835 	#define FUNC_QCAPS_RESP_FLAGS_MPLS_TUN_FLAGS_SUPPORTED       0x8000UL
836 	#define FUNC_QCAPS_RESP_FLAGS_PCIE_STATS_SUPPORTED           0x10000UL
837 	u8	mac_address[6];
838 	__le16	max_rsscos_ctx;
839 	__le16	max_cmpl_rings;
840 	__le16	max_tx_rings;
841 	__le16	max_rx_rings;
842 	__le16	max_l2_ctxs;
843 	__le16	max_vnics;
844 	__le16	first_vf_id;
845 	__le16	max_vfs;
846 	__le16	max_stat_ctx;
847 	__le32	max_encap_records;
848 	__le32	max_decap_records;
849 	__le32	max_tx_em_flows;
850 	__le32	max_tx_wm_flows;
851 	__le32	max_rx_em_flows;
852 	__le32	max_rx_wm_flows;
853 	__le32	max_mcast_filters;
854 	__le32	max_flow_id;
855 	__le32	max_hw_ring_grps;
856 	__le16	max_sp_tx_rings;
857 	u8	unused_0;
858 	u8	valid;
859 };
860 
861 /* hwrm_func_qcfg_input (size:192b/24B) */
862 struct hwrm_func_qcfg_input {
863 	__le16	req_type;
864 	__le16	cmpl_ring;
865 	__le16	seq_id;
866 	__le16	target_id;
867 	__le64	resp_addr;
868 	__le16	fid;
869 	u8	unused_0[6];
870 };
871 
872 /* hwrm_func_qcfg_output (size:640b/80B) */
873 struct hwrm_func_qcfg_output {
874 	__le16	error_code;
875 	__le16	req_type;
876 	__le16	seq_id;
877 	__le16	resp_len;
878 	__le16	fid;
879 	__le16	port_id;
880 	__le16	vlan;
881 	__le16	flags;
882 	#define FUNC_QCFG_RESP_FLAGS_OOB_WOL_MAGICPKT_ENABLED     0x1UL
883 	#define FUNC_QCFG_RESP_FLAGS_OOB_WOL_BMP_ENABLED          0x2UL
884 	#define FUNC_QCFG_RESP_FLAGS_FW_DCBX_AGENT_ENABLED        0x4UL
885 	#define FUNC_QCFG_RESP_FLAGS_STD_TX_RING_MODE_ENABLED     0x8UL
886 	#define FUNC_QCFG_RESP_FLAGS_FW_LLDP_AGENT_ENABLED        0x10UL
887 	#define FUNC_QCFG_RESP_FLAGS_MULTI_HOST                   0x20UL
888 	u8	mac_address[6];
889 	__le16	pci_id;
890 	__le16	alloc_rsscos_ctx;
891 	__le16	alloc_cmpl_rings;
892 	__le16	alloc_tx_rings;
893 	__le16	alloc_rx_rings;
894 	__le16	alloc_l2_ctx;
895 	__le16	alloc_vnics;
896 	__le16	mtu;
897 	__le16	mru;
898 	__le16	stat_ctx_id;
899 	u8	port_partition_type;
900 	#define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_SPF     0x0UL
901 	#define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_MPFS    0x1UL
902 	#define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_0 0x2UL
903 	#define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_5 0x3UL
904 	#define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR2_0 0x4UL
905 	#define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_UNKNOWN 0xffUL
906 	#define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_LAST   FUNC_QCFG_RESP_PORT_PARTITION_TYPE_UNKNOWN
907 	u8	port_pf_cnt;
908 	#define FUNC_QCFG_RESP_PORT_PF_CNT_UNAVAIL 0x0UL
909 	#define FUNC_QCFG_RESP_PORT_PF_CNT_LAST   FUNC_QCFG_RESP_PORT_PF_CNT_UNAVAIL
910 	__le16	dflt_vnic_id;
911 	__le16	max_mtu_configured;
912 	__le32	min_bw;
913 	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_MASK             0xfffffffUL
914 	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_SFT              0
915 	#define FUNC_QCFG_RESP_MIN_BW_SCALE                     0x10000000UL
916 	#define FUNC_QCFG_RESP_MIN_BW_SCALE_BITS                  (0x0UL << 28)
917 	#define FUNC_QCFG_RESP_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
918 	#define FUNC_QCFG_RESP_MIN_BW_SCALE_LAST                 FUNC_QCFG_RESP_MIN_BW_SCALE_BYTES
919 	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
920 	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_SFT         29
921 	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
922 	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
923 	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
924 	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
925 	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
926 	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
927 	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_LAST         FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_INVALID
928 	__le32	max_bw;
929 	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_MASK             0xfffffffUL
930 	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_SFT              0
931 	#define FUNC_QCFG_RESP_MAX_BW_SCALE                     0x10000000UL
932 	#define FUNC_QCFG_RESP_MAX_BW_SCALE_BITS                  (0x0UL << 28)
933 	#define FUNC_QCFG_RESP_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
934 	#define FUNC_QCFG_RESP_MAX_BW_SCALE_LAST                 FUNC_QCFG_RESP_MAX_BW_SCALE_BYTES
935 	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
936 	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_SFT         29
937 	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
938 	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
939 	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
940 	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
941 	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
942 	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
943 	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_LAST         FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_INVALID
944 	u8	evb_mode;
945 	#define FUNC_QCFG_RESP_EVB_MODE_NO_EVB 0x0UL
946 	#define FUNC_QCFG_RESP_EVB_MODE_VEB    0x1UL
947 	#define FUNC_QCFG_RESP_EVB_MODE_VEPA   0x2UL
948 	#define FUNC_QCFG_RESP_EVB_MODE_LAST  FUNC_QCFG_RESP_EVB_MODE_VEPA
949 	u8	options;
950 	#define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_MASK    0x3UL
951 	#define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SFT     0
952 	#define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_64   0x0UL
953 	#define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_128  0x1UL
954 	#define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_LAST     FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_128
955 	#define FUNC_QCFG_RESP_OPTIONS_RSVD_MASK              0xfcUL
956 	#define FUNC_QCFG_RESP_OPTIONS_RSVD_SFT               2
957 	__le16	alloc_vfs;
958 	__le32	alloc_mcast_filters;
959 	__le32	alloc_hw_ring_grps;
960 	__le16	alloc_sp_tx_rings;
961 	__le16	alloc_stat_ctx;
962 	u8	unused_2[7];
963 	u8	valid;
964 };
965 
966 /* hwrm_func_vlan_cfg_input (size:384b/48B) */
967 struct hwrm_func_vlan_cfg_input {
968 	__le16	req_type;
969 	__le16	cmpl_ring;
970 	__le16	seq_id;
971 	__le16	target_id;
972 	__le64	resp_addr;
973 	__le16	fid;
974 	u8	unused_0[2];
975 	__le32	enables;
976 	#define FUNC_VLAN_CFG_REQ_ENABLES_STAG_VID      0x1UL
977 	#define FUNC_VLAN_CFG_REQ_ENABLES_CTAG_VID      0x2UL
978 	#define FUNC_VLAN_CFG_REQ_ENABLES_STAG_PCP      0x4UL
979 	#define FUNC_VLAN_CFG_REQ_ENABLES_CTAG_PCP      0x8UL
980 	#define FUNC_VLAN_CFG_REQ_ENABLES_STAG_TPID     0x10UL
981 	#define FUNC_VLAN_CFG_REQ_ENABLES_CTAG_TPID     0x20UL
982 	__le16	stag_vid;
983 	u8	stag_pcp;
984 	u8	unused_1;
985 	__be16	stag_tpid;
986 	__le16	ctag_vid;
987 	u8	ctag_pcp;
988 	u8	unused_2;
989 	__be16	ctag_tpid;
990 	__le32	rsvd1;
991 	__le32	rsvd2;
992 	u8	unused_3[4];
993 };
994 
995 /* hwrm_func_vlan_cfg_output (size:128b/16B) */
996 struct hwrm_func_vlan_cfg_output {
997 	__le16	error_code;
998 	__le16	req_type;
999 	__le16	seq_id;
1000 	__le16	resp_len;
1001 	u8	unused_0[7];
1002 	u8	valid;
1003 };
1004 
1005 /* hwrm_func_cfg_input (size:704b/88B) */
1006 struct hwrm_func_cfg_input {
1007 	__le16	req_type;
1008 	__le16	cmpl_ring;
1009 	__le16	seq_id;
1010 	__le16	target_id;
1011 	__le64	resp_addr;
1012 	__le16	fid;
1013 	u8	unused_0[2];
1014 	__le32	flags;
1015 	#define FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_DISABLE     0x1UL
1016 	#define FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_ENABLE      0x2UL
1017 	#define FUNC_CFG_REQ_FLAGS_RSVD_MASK                      0x1fcUL
1018 	#define FUNC_CFG_REQ_FLAGS_RSVD_SFT                       2
1019 	#define FUNC_CFG_REQ_FLAGS_STD_TX_RING_MODE_ENABLE        0x200UL
1020 	#define FUNC_CFG_REQ_FLAGS_STD_TX_RING_MODE_DISABLE       0x400UL
1021 	#define FUNC_CFG_REQ_FLAGS_VIRT_MAC_PERSIST               0x800UL
1022 	#define FUNC_CFG_REQ_FLAGS_NO_AUTOCLEAR_STATISTIC         0x1000UL
1023 	#define FUNC_CFG_REQ_FLAGS_TX_ASSETS_TEST                 0x2000UL
1024 	#define FUNC_CFG_REQ_FLAGS_RX_ASSETS_TEST                 0x4000UL
1025 	#define FUNC_CFG_REQ_FLAGS_CMPL_ASSETS_TEST               0x8000UL
1026 	#define FUNC_CFG_REQ_FLAGS_RSSCOS_CTX_ASSETS_TEST         0x10000UL
1027 	#define FUNC_CFG_REQ_FLAGS_RING_GRP_ASSETS_TEST           0x20000UL
1028 	#define FUNC_CFG_REQ_FLAGS_STAT_CTX_ASSETS_TEST           0x40000UL
1029 	#define FUNC_CFG_REQ_FLAGS_VNIC_ASSETS_TEST               0x80000UL
1030 	#define FUNC_CFG_REQ_FLAGS_L2_CTX_ASSETS_TEST             0x100000UL
1031 	__le32	enables;
1032 	#define FUNC_CFG_REQ_ENABLES_MTU                     0x1UL
1033 	#define FUNC_CFG_REQ_ENABLES_MRU                     0x2UL
1034 	#define FUNC_CFG_REQ_ENABLES_NUM_RSSCOS_CTXS         0x4UL
1035 	#define FUNC_CFG_REQ_ENABLES_NUM_CMPL_RINGS          0x8UL
1036 	#define FUNC_CFG_REQ_ENABLES_NUM_TX_RINGS            0x10UL
1037 	#define FUNC_CFG_REQ_ENABLES_NUM_RX_RINGS            0x20UL
1038 	#define FUNC_CFG_REQ_ENABLES_NUM_L2_CTXS             0x40UL
1039 	#define FUNC_CFG_REQ_ENABLES_NUM_VNICS               0x80UL
1040 	#define FUNC_CFG_REQ_ENABLES_NUM_STAT_CTXS           0x100UL
1041 	#define FUNC_CFG_REQ_ENABLES_DFLT_MAC_ADDR           0x200UL
1042 	#define FUNC_CFG_REQ_ENABLES_DFLT_VLAN               0x400UL
1043 	#define FUNC_CFG_REQ_ENABLES_DFLT_IP_ADDR            0x800UL
1044 	#define FUNC_CFG_REQ_ENABLES_MIN_BW                  0x1000UL
1045 	#define FUNC_CFG_REQ_ENABLES_MAX_BW                  0x2000UL
1046 	#define FUNC_CFG_REQ_ENABLES_ASYNC_EVENT_CR          0x4000UL
1047 	#define FUNC_CFG_REQ_ENABLES_VLAN_ANTISPOOF_MODE     0x8000UL
1048 	#define FUNC_CFG_REQ_ENABLES_ALLOWED_VLAN_PRIS       0x10000UL
1049 	#define FUNC_CFG_REQ_ENABLES_EVB_MODE                0x20000UL
1050 	#define FUNC_CFG_REQ_ENABLES_NUM_MCAST_FILTERS       0x40000UL
1051 	#define FUNC_CFG_REQ_ENABLES_NUM_HW_RING_GRPS        0x80000UL
1052 	#define FUNC_CFG_REQ_ENABLES_CACHE_LINESIZE          0x100000UL
1053 	__le16	mtu;
1054 	__le16	mru;
1055 	__le16	num_rsscos_ctxs;
1056 	__le16	num_cmpl_rings;
1057 	__le16	num_tx_rings;
1058 	__le16	num_rx_rings;
1059 	__le16	num_l2_ctxs;
1060 	__le16	num_vnics;
1061 	__le16	num_stat_ctxs;
1062 	__le16	num_hw_ring_grps;
1063 	u8	dflt_mac_addr[6];
1064 	__le16	dflt_vlan;
1065 	__be32	dflt_ip_addr[4];
1066 	__le32	min_bw;
1067 	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_MASK             0xfffffffUL
1068 	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_SFT              0
1069 	#define FUNC_CFG_REQ_MIN_BW_SCALE                     0x10000000UL
1070 	#define FUNC_CFG_REQ_MIN_BW_SCALE_BITS                  (0x0UL << 28)
1071 	#define FUNC_CFG_REQ_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
1072 	#define FUNC_CFG_REQ_MIN_BW_SCALE_LAST                 FUNC_CFG_REQ_MIN_BW_SCALE_BYTES
1073 	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
1074 	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_SFT         29
1075 	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
1076 	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
1077 	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
1078 	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
1079 	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
1080 	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
1081 	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_LAST         FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_INVALID
1082 	__le32	max_bw;
1083 	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_MASK             0xfffffffUL
1084 	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_SFT              0
1085 	#define FUNC_CFG_REQ_MAX_BW_SCALE                     0x10000000UL
1086 	#define FUNC_CFG_REQ_MAX_BW_SCALE_BITS                  (0x0UL << 28)
1087 	#define FUNC_CFG_REQ_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
1088 	#define FUNC_CFG_REQ_MAX_BW_SCALE_LAST                 FUNC_CFG_REQ_MAX_BW_SCALE_BYTES
1089 	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
1090 	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_SFT         29
1091 	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
1092 	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
1093 	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
1094 	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
1095 	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
1096 	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
1097 	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_LAST         FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_INVALID
1098 	__le16	async_event_cr;
1099 	u8	vlan_antispoof_mode;
1100 	#define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_NOCHECK                 0x0UL
1101 	#define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_VALIDATE_VLAN           0x1UL
1102 	#define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_IF_VLANDNE       0x2UL
1103 	#define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_OR_OVERRIDE_VLAN 0x3UL
1104 	#define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_LAST                   FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_OR_OVERRIDE_VLAN
1105 	u8	allowed_vlan_pris;
1106 	u8	evb_mode;
1107 	#define FUNC_CFG_REQ_EVB_MODE_NO_EVB 0x0UL
1108 	#define FUNC_CFG_REQ_EVB_MODE_VEB    0x1UL
1109 	#define FUNC_CFG_REQ_EVB_MODE_VEPA   0x2UL
1110 	#define FUNC_CFG_REQ_EVB_MODE_LAST  FUNC_CFG_REQ_EVB_MODE_VEPA
1111 	u8	options;
1112 	#define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_MASK    0x3UL
1113 	#define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SFT     0
1114 	#define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_64   0x0UL
1115 	#define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_128  0x1UL
1116 	#define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_LAST     FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_128
1117 	#define FUNC_CFG_REQ_OPTIONS_RSVD_MASK              0xfcUL
1118 	#define FUNC_CFG_REQ_OPTIONS_RSVD_SFT               2
1119 	__le16	num_mcast_filters;
1120 };
1121 
1122 /* hwrm_func_cfg_output (size:128b/16B) */
1123 struct hwrm_func_cfg_output {
1124 	__le16	error_code;
1125 	__le16	req_type;
1126 	__le16	seq_id;
1127 	__le16	resp_len;
1128 	u8	unused_0[7];
1129 	u8	valid;
1130 };
1131 
1132 /* hwrm_func_qstats_input (size:192b/24B) */
1133 struct hwrm_func_qstats_input {
1134 	__le16	req_type;
1135 	__le16	cmpl_ring;
1136 	__le16	seq_id;
1137 	__le16	target_id;
1138 	__le64	resp_addr;
1139 	__le16	fid;
1140 	u8	unused_0[6];
1141 };
1142 
1143 /* hwrm_func_qstats_output (size:1408b/176B) */
1144 struct hwrm_func_qstats_output {
1145 	__le16	error_code;
1146 	__le16	req_type;
1147 	__le16	seq_id;
1148 	__le16	resp_len;
1149 	__le64	tx_ucast_pkts;
1150 	__le64	tx_mcast_pkts;
1151 	__le64	tx_bcast_pkts;
1152 	__le64	tx_discard_pkts;
1153 	__le64	tx_drop_pkts;
1154 	__le64	tx_ucast_bytes;
1155 	__le64	tx_mcast_bytes;
1156 	__le64	tx_bcast_bytes;
1157 	__le64	rx_ucast_pkts;
1158 	__le64	rx_mcast_pkts;
1159 	__le64	rx_bcast_pkts;
1160 	__le64	rx_discard_pkts;
1161 	__le64	rx_drop_pkts;
1162 	__le64	rx_ucast_bytes;
1163 	__le64	rx_mcast_bytes;
1164 	__le64	rx_bcast_bytes;
1165 	__le64	rx_agg_pkts;
1166 	__le64	rx_agg_bytes;
1167 	__le64	rx_agg_events;
1168 	__le64	rx_agg_aborts;
1169 	u8	unused_0[7];
1170 	u8	valid;
1171 };
1172 
1173 /* hwrm_func_clr_stats_input (size:192b/24B) */
1174 struct hwrm_func_clr_stats_input {
1175 	__le16	req_type;
1176 	__le16	cmpl_ring;
1177 	__le16	seq_id;
1178 	__le16	target_id;
1179 	__le64	resp_addr;
1180 	__le16	fid;
1181 	u8	unused_0[6];
1182 };
1183 
1184 /* hwrm_func_clr_stats_output (size:128b/16B) */
1185 struct hwrm_func_clr_stats_output {
1186 	__le16	error_code;
1187 	__le16	req_type;
1188 	__le16	seq_id;
1189 	__le16	resp_len;
1190 	u8	unused_0[7];
1191 	u8	valid;
1192 };
1193 
1194 /* hwrm_func_vf_resc_free_input (size:192b/24B) */
1195 struct hwrm_func_vf_resc_free_input {
1196 	__le16	req_type;
1197 	__le16	cmpl_ring;
1198 	__le16	seq_id;
1199 	__le16	target_id;
1200 	__le64	resp_addr;
1201 	__le16	vf_id;
1202 	u8	unused_0[6];
1203 };
1204 
1205 /* hwrm_func_vf_resc_free_output (size:128b/16B) */
1206 struct hwrm_func_vf_resc_free_output {
1207 	__le16	error_code;
1208 	__le16	req_type;
1209 	__le16	seq_id;
1210 	__le16	resp_len;
1211 	u8	unused_0[7];
1212 	u8	valid;
1213 };
1214 
1215 /* hwrm_func_vf_vnic_ids_query_input (size:256b/32B) */
1216 struct hwrm_func_vf_vnic_ids_query_input {
1217 	__le16	req_type;
1218 	__le16	cmpl_ring;
1219 	__le16	seq_id;
1220 	__le16	target_id;
1221 	__le64	resp_addr;
1222 	__le16	vf_id;
1223 	u8	unused_0[2];
1224 	__le32	max_vnic_id_cnt;
1225 	__le64	vnic_id_tbl_addr;
1226 };
1227 
1228 /* hwrm_func_vf_vnic_ids_query_output (size:128b/16B) */
1229 struct hwrm_func_vf_vnic_ids_query_output {
1230 	__le16	error_code;
1231 	__le16	req_type;
1232 	__le16	seq_id;
1233 	__le16	resp_len;
1234 	__le32	vnic_id_cnt;
1235 	u8	unused_0[3];
1236 	u8	valid;
1237 };
1238 
1239 /* hwrm_func_drv_rgtr_input (size:896b/112B) */
1240 struct hwrm_func_drv_rgtr_input {
1241 	__le16	req_type;
1242 	__le16	cmpl_ring;
1243 	__le16	seq_id;
1244 	__le16	target_id;
1245 	__le64	resp_addr;
1246 	__le32	flags;
1247 	#define FUNC_DRV_RGTR_REQ_FLAGS_FWD_ALL_MODE       0x1UL
1248 	#define FUNC_DRV_RGTR_REQ_FLAGS_FWD_NONE_MODE      0x2UL
1249 	#define FUNC_DRV_RGTR_REQ_FLAGS_16BIT_VER_MODE     0x4UL
1250 	__le32	enables;
1251 	#define FUNC_DRV_RGTR_REQ_ENABLES_OS_TYPE             0x1UL
1252 	#define FUNC_DRV_RGTR_REQ_ENABLES_VER                 0x2UL
1253 	#define FUNC_DRV_RGTR_REQ_ENABLES_TIMESTAMP           0x4UL
1254 	#define FUNC_DRV_RGTR_REQ_ENABLES_VF_REQ_FWD          0x8UL
1255 	#define FUNC_DRV_RGTR_REQ_ENABLES_ASYNC_EVENT_FWD     0x10UL
1256 	__le16	os_type;
1257 	#define FUNC_DRV_RGTR_REQ_OS_TYPE_UNKNOWN   0x0UL
1258 	#define FUNC_DRV_RGTR_REQ_OS_TYPE_OTHER     0x1UL
1259 	#define FUNC_DRV_RGTR_REQ_OS_TYPE_MSDOS     0xeUL
1260 	#define FUNC_DRV_RGTR_REQ_OS_TYPE_WINDOWS   0x12UL
1261 	#define FUNC_DRV_RGTR_REQ_OS_TYPE_SOLARIS   0x1dUL
1262 	#define FUNC_DRV_RGTR_REQ_OS_TYPE_LINUX     0x24UL
1263 	#define FUNC_DRV_RGTR_REQ_OS_TYPE_FREEBSD   0x2aUL
1264 	#define FUNC_DRV_RGTR_REQ_OS_TYPE_ESXI      0x68UL
1265 	#define FUNC_DRV_RGTR_REQ_OS_TYPE_WIN864    0x73UL
1266 	#define FUNC_DRV_RGTR_REQ_OS_TYPE_WIN2012R2 0x74UL
1267 	#define FUNC_DRV_RGTR_REQ_OS_TYPE_UEFI      0x8000UL
1268 	#define FUNC_DRV_RGTR_REQ_OS_TYPE_LAST     FUNC_DRV_RGTR_REQ_OS_TYPE_UEFI
1269 	u8	ver_maj_8b;
1270 	u8	ver_min_8b;
1271 	u8	ver_upd_8b;
1272 	u8	unused_0[3];
1273 	__le32	timestamp;
1274 	u8	unused_1[4];
1275 	__le32	vf_req_fwd[8];
1276 	__le32	async_event_fwd[8];
1277 	__le16	ver_maj;
1278 	__le16	ver_min;
1279 	__le16	ver_upd;
1280 	__le16	ver_patch;
1281 };
1282 
1283 /* hwrm_func_drv_rgtr_output (size:128b/16B) */
1284 struct hwrm_func_drv_rgtr_output {
1285 	__le16	error_code;
1286 	__le16	req_type;
1287 	__le16	seq_id;
1288 	__le16	resp_len;
1289 	u8	unused_0[7];
1290 	u8	valid;
1291 };
1292 
1293 /* hwrm_func_drv_unrgtr_input (size:192b/24B) */
1294 struct hwrm_func_drv_unrgtr_input {
1295 	__le16	req_type;
1296 	__le16	cmpl_ring;
1297 	__le16	seq_id;
1298 	__le16	target_id;
1299 	__le64	resp_addr;
1300 	__le32	flags;
1301 	#define FUNC_DRV_UNRGTR_REQ_FLAGS_PREPARE_FOR_SHUTDOWN     0x1UL
1302 	u8	unused_0[4];
1303 };
1304 
1305 /* hwrm_func_drv_unrgtr_output (size:128b/16B) */
1306 struct hwrm_func_drv_unrgtr_output {
1307 	__le16	error_code;
1308 	__le16	req_type;
1309 	__le16	seq_id;
1310 	__le16	resp_len;
1311 	u8	unused_0[7];
1312 	u8	valid;
1313 };
1314 
1315 /* hwrm_func_buf_rgtr_input (size:1024b/128B) */
1316 struct hwrm_func_buf_rgtr_input {
1317 	__le16	req_type;
1318 	__le16	cmpl_ring;
1319 	__le16	seq_id;
1320 	__le16	target_id;
1321 	__le64	resp_addr;
1322 	__le32	enables;
1323 	#define FUNC_BUF_RGTR_REQ_ENABLES_VF_ID            0x1UL
1324 	#define FUNC_BUF_RGTR_REQ_ENABLES_ERR_BUF_ADDR     0x2UL
1325 	__le16	vf_id;
1326 	__le16	req_buf_num_pages;
1327 	__le16	req_buf_page_size;
1328 	#define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_16B 0x4UL
1329 	#define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_4K  0xcUL
1330 	#define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_8K  0xdUL
1331 	#define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_64K 0x10UL
1332 	#define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_2M  0x15UL
1333 	#define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_4M  0x16UL
1334 	#define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_1G  0x1eUL
1335 	#define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_LAST FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_1G
1336 	__le16	req_buf_len;
1337 	__le16	resp_buf_len;
1338 	u8	unused_0[2];
1339 	__le64	req_buf_page_addr0;
1340 	__le64	req_buf_page_addr1;
1341 	__le64	req_buf_page_addr2;
1342 	__le64	req_buf_page_addr3;
1343 	__le64	req_buf_page_addr4;
1344 	__le64	req_buf_page_addr5;
1345 	__le64	req_buf_page_addr6;
1346 	__le64	req_buf_page_addr7;
1347 	__le64	req_buf_page_addr8;
1348 	__le64	req_buf_page_addr9;
1349 	__le64	error_buf_addr;
1350 	__le64	resp_buf_addr;
1351 };
1352 
1353 /* hwrm_func_buf_rgtr_output (size:128b/16B) */
1354 struct hwrm_func_buf_rgtr_output {
1355 	__le16	error_code;
1356 	__le16	req_type;
1357 	__le16	seq_id;
1358 	__le16	resp_len;
1359 	u8	unused_0[7];
1360 	u8	valid;
1361 };
1362 
1363 /* hwrm_func_drv_qver_input (size:192b/24B) */
1364 struct hwrm_func_drv_qver_input {
1365 	__le16	req_type;
1366 	__le16	cmpl_ring;
1367 	__le16	seq_id;
1368 	__le16	target_id;
1369 	__le64	resp_addr;
1370 	__le32	reserved;
1371 	__le16	fid;
1372 	u8	unused_0[2];
1373 };
1374 
1375 /* hwrm_func_drv_qver_output (size:192b/24B) */
1376 struct hwrm_func_drv_qver_output {
1377 	__le16	error_code;
1378 	__le16	req_type;
1379 	__le16	seq_id;
1380 	__le16	resp_len;
1381 	__le16	os_type;
1382 	#define FUNC_DRV_QVER_RESP_OS_TYPE_UNKNOWN   0x0UL
1383 	#define FUNC_DRV_QVER_RESP_OS_TYPE_OTHER     0x1UL
1384 	#define FUNC_DRV_QVER_RESP_OS_TYPE_MSDOS     0xeUL
1385 	#define FUNC_DRV_QVER_RESP_OS_TYPE_WINDOWS   0x12UL
1386 	#define FUNC_DRV_QVER_RESP_OS_TYPE_SOLARIS   0x1dUL
1387 	#define FUNC_DRV_QVER_RESP_OS_TYPE_LINUX     0x24UL
1388 	#define FUNC_DRV_QVER_RESP_OS_TYPE_FREEBSD   0x2aUL
1389 	#define FUNC_DRV_QVER_RESP_OS_TYPE_ESXI      0x68UL
1390 	#define FUNC_DRV_QVER_RESP_OS_TYPE_WIN864    0x73UL
1391 	#define FUNC_DRV_QVER_RESP_OS_TYPE_WIN2012R2 0x74UL
1392 	#define FUNC_DRV_QVER_RESP_OS_TYPE_UEFI      0x8000UL
1393 	#define FUNC_DRV_QVER_RESP_OS_TYPE_LAST     FUNC_DRV_QVER_RESP_OS_TYPE_UEFI
1394 	u8	ver_maj_8b;
1395 	u8	ver_min_8b;
1396 	u8	ver_upd_8b;
1397 	u8	unused_0[2];
1398 	u8	valid;
1399 	__le16	ver_maj;
1400 	__le16	ver_min;
1401 	__le16	ver_upd;
1402 	__le16	ver_patch;
1403 };
1404 
1405 /* hwrm_func_resource_qcaps_input (size:192b/24B) */
1406 struct hwrm_func_resource_qcaps_input {
1407 	__le16	req_type;
1408 	__le16	cmpl_ring;
1409 	__le16	seq_id;
1410 	__le16	target_id;
1411 	__le64	resp_addr;
1412 	__le16	fid;
1413 	u8	unused_0[6];
1414 };
1415 
1416 /* hwrm_func_resource_qcaps_output (size:448b/56B) */
1417 struct hwrm_func_resource_qcaps_output {
1418 	__le16	error_code;
1419 	__le16	req_type;
1420 	__le16	seq_id;
1421 	__le16	resp_len;
1422 	__le16	max_vfs;
1423 	__le16	max_msix;
1424 	__le16	vf_reservation_strategy;
1425 	#define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MAXIMAL        0x0UL
1426 	#define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL        0x1UL
1427 	#define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL_STATIC 0x2UL
1428 	#define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_LAST          FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL_STATIC
1429 	__le16	min_rsscos_ctx;
1430 	__le16	max_rsscos_ctx;
1431 	__le16	min_cmpl_rings;
1432 	__le16	max_cmpl_rings;
1433 	__le16	min_tx_rings;
1434 	__le16	max_tx_rings;
1435 	__le16	min_rx_rings;
1436 	__le16	max_rx_rings;
1437 	__le16	min_l2_ctxs;
1438 	__le16	max_l2_ctxs;
1439 	__le16	min_vnics;
1440 	__le16	max_vnics;
1441 	__le16	min_stat_ctx;
1442 	__le16	max_stat_ctx;
1443 	__le16	min_hw_ring_grps;
1444 	__le16	max_hw_ring_grps;
1445 	__le16	max_tx_scheduler_inputs;
1446 	u8	unused_0[7];
1447 	u8	valid;
1448 };
1449 
1450 /* hwrm_func_vf_resource_cfg_input (size:448b/56B) */
1451 struct hwrm_func_vf_resource_cfg_input {
1452 	__le16	req_type;
1453 	__le16	cmpl_ring;
1454 	__le16	seq_id;
1455 	__le16	target_id;
1456 	__le64	resp_addr;
1457 	__le16	vf_id;
1458 	__le16	max_msix;
1459 	__le16	min_rsscos_ctx;
1460 	__le16	max_rsscos_ctx;
1461 	__le16	min_cmpl_rings;
1462 	__le16	max_cmpl_rings;
1463 	__le16	min_tx_rings;
1464 	__le16	max_tx_rings;
1465 	__le16	min_rx_rings;
1466 	__le16	max_rx_rings;
1467 	__le16	min_l2_ctxs;
1468 	__le16	max_l2_ctxs;
1469 	__le16	min_vnics;
1470 	__le16	max_vnics;
1471 	__le16	min_stat_ctx;
1472 	__le16	max_stat_ctx;
1473 	__le16	min_hw_ring_grps;
1474 	__le16	max_hw_ring_grps;
1475 	u8	unused_0[4];
1476 };
1477 
1478 /* hwrm_func_vf_resource_cfg_output (size:256b/32B) */
1479 struct hwrm_func_vf_resource_cfg_output {
1480 	__le16	error_code;
1481 	__le16	req_type;
1482 	__le16	seq_id;
1483 	__le16	resp_len;
1484 	__le16	reserved_rsscos_ctx;
1485 	__le16	reserved_cmpl_rings;
1486 	__le16	reserved_tx_rings;
1487 	__le16	reserved_rx_rings;
1488 	__le16	reserved_l2_ctxs;
1489 	__le16	reserved_vnics;
1490 	__le16	reserved_stat_ctx;
1491 	__le16	reserved_hw_ring_grps;
1492 	u8	unused_0[7];
1493 	u8	valid;
1494 };
1495 
1496 /* hwrm_port_phy_cfg_input (size:448b/56B) */
1497 struct hwrm_port_phy_cfg_input {
1498 	__le16	req_type;
1499 	__le16	cmpl_ring;
1500 	__le16	seq_id;
1501 	__le16	target_id;
1502 	__le64	resp_addr;
1503 	__le32	flags;
1504 	#define PORT_PHY_CFG_REQ_FLAGS_RESET_PHY                0x1UL
1505 	#define PORT_PHY_CFG_REQ_FLAGS_DEPRECATED               0x2UL
1506 	#define PORT_PHY_CFG_REQ_FLAGS_FORCE                    0x4UL
1507 	#define PORT_PHY_CFG_REQ_FLAGS_RESTART_AUTONEG          0x8UL
1508 	#define PORT_PHY_CFG_REQ_FLAGS_EEE_ENABLE               0x10UL
1509 	#define PORT_PHY_CFG_REQ_FLAGS_EEE_DISABLE              0x20UL
1510 	#define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_ENABLE        0x40UL
1511 	#define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_DISABLE       0x80UL
1512 	#define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_ENABLE       0x100UL
1513 	#define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_DISABLE      0x200UL
1514 	#define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_ENABLE      0x400UL
1515 	#define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_DISABLE     0x800UL
1516 	#define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_ENABLE      0x1000UL
1517 	#define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_DISABLE     0x2000UL
1518 	#define PORT_PHY_CFG_REQ_FLAGS_FORCE_LINK_DWN           0x4000UL
1519 	__le32	enables;
1520 	#define PORT_PHY_CFG_REQ_ENABLES_AUTO_MODE                0x1UL
1521 	#define PORT_PHY_CFG_REQ_ENABLES_AUTO_DUPLEX              0x2UL
1522 	#define PORT_PHY_CFG_REQ_ENABLES_AUTO_PAUSE               0x4UL
1523 	#define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEED          0x8UL
1524 	#define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEED_MASK     0x10UL
1525 	#define PORT_PHY_CFG_REQ_ENABLES_WIRESPEED                0x20UL
1526 	#define PORT_PHY_CFG_REQ_ENABLES_LPBK                     0x40UL
1527 	#define PORT_PHY_CFG_REQ_ENABLES_PREEMPHASIS              0x80UL
1528 	#define PORT_PHY_CFG_REQ_ENABLES_FORCE_PAUSE              0x100UL
1529 	#define PORT_PHY_CFG_REQ_ENABLES_EEE_LINK_SPEED_MASK      0x200UL
1530 	#define PORT_PHY_CFG_REQ_ENABLES_TX_LPI_TIMER             0x400UL
1531 	__le16	port_id;
1532 	__le16	force_link_speed;
1533 	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_100MB 0x1UL
1534 	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_1GB   0xaUL
1535 	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_2GB   0x14UL
1536 	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_2_5GB 0x19UL
1537 	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10GB  0x64UL
1538 	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_20GB  0xc8UL
1539 	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_25GB  0xfaUL
1540 	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_40GB  0x190UL
1541 	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_50GB  0x1f4UL
1542 	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_100GB 0x3e8UL
1543 	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10MB  0xffffUL
1544 	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_LAST PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10MB
1545 	u8	auto_mode;
1546 	#define PORT_PHY_CFG_REQ_AUTO_MODE_NONE         0x0UL
1547 	#define PORT_PHY_CFG_REQ_AUTO_MODE_ALL_SPEEDS   0x1UL
1548 	#define PORT_PHY_CFG_REQ_AUTO_MODE_ONE_SPEED    0x2UL
1549 	#define PORT_PHY_CFG_REQ_AUTO_MODE_ONE_OR_BELOW 0x3UL
1550 	#define PORT_PHY_CFG_REQ_AUTO_MODE_SPEED_MASK   0x4UL
1551 	#define PORT_PHY_CFG_REQ_AUTO_MODE_LAST        PORT_PHY_CFG_REQ_AUTO_MODE_SPEED_MASK
1552 	u8	auto_duplex;
1553 	#define PORT_PHY_CFG_REQ_AUTO_DUPLEX_HALF 0x0UL
1554 	#define PORT_PHY_CFG_REQ_AUTO_DUPLEX_FULL 0x1UL
1555 	#define PORT_PHY_CFG_REQ_AUTO_DUPLEX_BOTH 0x2UL
1556 	#define PORT_PHY_CFG_REQ_AUTO_DUPLEX_LAST PORT_PHY_CFG_REQ_AUTO_DUPLEX_BOTH
1557 	u8	auto_pause;
1558 	#define PORT_PHY_CFG_REQ_AUTO_PAUSE_TX                0x1UL
1559 	#define PORT_PHY_CFG_REQ_AUTO_PAUSE_RX                0x2UL
1560 	#define PORT_PHY_CFG_REQ_AUTO_PAUSE_AUTONEG_PAUSE     0x4UL
1561 	u8	unused_0;
1562 	__le16	auto_link_speed;
1563 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_100MB 0x1UL
1564 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_1GB   0xaUL
1565 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_2GB   0x14UL
1566 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_2_5GB 0x19UL
1567 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10GB  0x64UL
1568 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_20GB  0xc8UL
1569 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_25GB  0xfaUL
1570 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_40GB  0x190UL
1571 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_50GB  0x1f4UL
1572 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_100GB 0x3e8UL
1573 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10MB  0xffffUL
1574 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_LAST PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10MB
1575 	__le16	auto_link_speed_mask;
1576 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100MBHD     0x1UL
1577 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100MB       0x2UL
1578 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_1GBHD       0x4UL
1579 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_1GB         0x8UL
1580 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_2GB         0x10UL
1581 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_2_5GB       0x20UL
1582 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10GB        0x40UL
1583 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_20GB        0x80UL
1584 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_25GB        0x100UL
1585 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_40GB        0x200UL
1586 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_50GB        0x400UL
1587 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100GB       0x800UL
1588 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10MBHD      0x1000UL
1589 	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10MB        0x2000UL
1590 	u8	wirespeed;
1591 	#define PORT_PHY_CFG_REQ_WIRESPEED_OFF 0x0UL
1592 	#define PORT_PHY_CFG_REQ_WIRESPEED_ON  0x1UL
1593 	#define PORT_PHY_CFG_REQ_WIRESPEED_LAST PORT_PHY_CFG_REQ_WIRESPEED_ON
1594 	u8	lpbk;
1595 	#define PORT_PHY_CFG_REQ_LPBK_NONE   0x0UL
1596 	#define PORT_PHY_CFG_REQ_LPBK_LOCAL  0x1UL
1597 	#define PORT_PHY_CFG_REQ_LPBK_REMOTE 0x2UL
1598 	#define PORT_PHY_CFG_REQ_LPBK_LAST  PORT_PHY_CFG_REQ_LPBK_REMOTE
1599 	u8	force_pause;
1600 	#define PORT_PHY_CFG_REQ_FORCE_PAUSE_TX     0x1UL
1601 	#define PORT_PHY_CFG_REQ_FORCE_PAUSE_RX     0x2UL
1602 	u8	unused_1;
1603 	__le32	preemphasis;
1604 	__le16	eee_link_speed_mask;
1605 	#define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD1     0x1UL
1606 	#define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_100MB     0x2UL
1607 	#define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD2     0x4UL
1608 	#define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_1GB       0x8UL
1609 	#define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD3     0x10UL
1610 	#define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD4     0x20UL
1611 	#define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_10GB      0x40UL
1612 	u8	unused_2[2];
1613 	__le32	tx_lpi_timer;
1614 	#define PORT_PHY_CFG_REQ_TX_LPI_TIMER_MASK 0xffffffUL
1615 	#define PORT_PHY_CFG_REQ_TX_LPI_TIMER_SFT 0
1616 	__le32	unused_3;
1617 };
1618 
1619 /* hwrm_port_phy_cfg_output (size:128b/16B) */
1620 struct hwrm_port_phy_cfg_output {
1621 	__le16	error_code;
1622 	__le16	req_type;
1623 	__le16	seq_id;
1624 	__le16	resp_len;
1625 	u8	unused_0[7];
1626 	u8	valid;
1627 };
1628 
1629 /* hwrm_port_phy_cfg_cmd_err (size:64b/8B) */
1630 struct hwrm_port_phy_cfg_cmd_err {
1631 	u8	code;
1632 	#define PORT_PHY_CFG_CMD_ERR_CODE_UNKNOWN       0x0UL
1633 	#define PORT_PHY_CFG_CMD_ERR_CODE_ILLEGAL_SPEED 0x1UL
1634 	#define PORT_PHY_CFG_CMD_ERR_CODE_RETRY         0x2UL
1635 	#define PORT_PHY_CFG_CMD_ERR_CODE_LAST         PORT_PHY_CFG_CMD_ERR_CODE_RETRY
1636 	u8	unused_0[7];
1637 };
1638 
1639 /* hwrm_port_phy_qcfg_input (size:192b/24B) */
1640 struct hwrm_port_phy_qcfg_input {
1641 	__le16	req_type;
1642 	__le16	cmpl_ring;
1643 	__le16	seq_id;
1644 	__le16	target_id;
1645 	__le64	resp_addr;
1646 	__le16	port_id;
1647 	u8	unused_0[6];
1648 };
1649 
1650 /* hwrm_port_phy_qcfg_output (size:768b/96B) */
1651 struct hwrm_port_phy_qcfg_output {
1652 	__le16	error_code;
1653 	__le16	req_type;
1654 	__le16	seq_id;
1655 	__le16	resp_len;
1656 	u8	link;
1657 	#define PORT_PHY_QCFG_RESP_LINK_NO_LINK 0x0UL
1658 	#define PORT_PHY_QCFG_RESP_LINK_SIGNAL  0x1UL
1659 	#define PORT_PHY_QCFG_RESP_LINK_LINK    0x2UL
1660 	#define PORT_PHY_QCFG_RESP_LINK_LAST   PORT_PHY_QCFG_RESP_LINK_LINK
1661 	u8	unused_0;
1662 	__le16	link_speed;
1663 	#define PORT_PHY_QCFG_RESP_LINK_SPEED_100MB 0x1UL
1664 	#define PORT_PHY_QCFG_RESP_LINK_SPEED_1GB   0xaUL
1665 	#define PORT_PHY_QCFG_RESP_LINK_SPEED_2GB   0x14UL
1666 	#define PORT_PHY_QCFG_RESP_LINK_SPEED_2_5GB 0x19UL
1667 	#define PORT_PHY_QCFG_RESP_LINK_SPEED_10GB  0x64UL
1668 	#define PORT_PHY_QCFG_RESP_LINK_SPEED_20GB  0xc8UL
1669 	#define PORT_PHY_QCFG_RESP_LINK_SPEED_25GB  0xfaUL
1670 	#define PORT_PHY_QCFG_RESP_LINK_SPEED_40GB  0x190UL
1671 	#define PORT_PHY_QCFG_RESP_LINK_SPEED_50GB  0x1f4UL
1672 	#define PORT_PHY_QCFG_RESP_LINK_SPEED_100GB 0x3e8UL
1673 	#define PORT_PHY_QCFG_RESP_LINK_SPEED_10MB  0xffffUL
1674 	#define PORT_PHY_QCFG_RESP_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_LINK_SPEED_10MB
1675 	u8	duplex_cfg;
1676 	#define PORT_PHY_QCFG_RESP_DUPLEX_CFG_HALF 0x0UL
1677 	#define PORT_PHY_QCFG_RESP_DUPLEX_CFG_FULL 0x1UL
1678 	#define PORT_PHY_QCFG_RESP_DUPLEX_CFG_LAST PORT_PHY_QCFG_RESP_DUPLEX_CFG_FULL
1679 	u8	pause;
1680 	#define PORT_PHY_QCFG_RESP_PAUSE_TX     0x1UL
1681 	#define PORT_PHY_QCFG_RESP_PAUSE_RX     0x2UL
1682 	__le16	support_speeds;
1683 	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100MBHD     0x1UL
1684 	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100MB       0x2UL
1685 	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_1GBHD       0x4UL
1686 	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_1GB         0x8UL
1687 	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_2GB         0x10UL
1688 	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_2_5GB       0x20UL
1689 	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10GB        0x40UL
1690 	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_20GB        0x80UL
1691 	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_25GB        0x100UL
1692 	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_40GB        0x200UL
1693 	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_50GB        0x400UL
1694 	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100GB       0x800UL
1695 	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10MBHD      0x1000UL
1696 	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10MB        0x2000UL
1697 	__le16	force_link_speed;
1698 	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_100MB 0x1UL
1699 	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_1GB   0xaUL
1700 	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_2GB   0x14UL
1701 	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_2_5GB 0x19UL
1702 	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10GB  0x64UL
1703 	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_20GB  0xc8UL
1704 	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_25GB  0xfaUL
1705 	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_40GB  0x190UL
1706 	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_50GB  0x1f4UL
1707 	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_100GB 0x3e8UL
1708 	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10MB  0xffffUL
1709 	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10MB
1710 	u8	auto_mode;
1711 	#define PORT_PHY_QCFG_RESP_AUTO_MODE_NONE         0x0UL
1712 	#define PORT_PHY_QCFG_RESP_AUTO_MODE_ALL_SPEEDS   0x1UL
1713 	#define PORT_PHY_QCFG_RESP_AUTO_MODE_ONE_SPEED    0x2UL
1714 	#define PORT_PHY_QCFG_RESP_AUTO_MODE_ONE_OR_BELOW 0x3UL
1715 	#define PORT_PHY_QCFG_RESP_AUTO_MODE_SPEED_MASK   0x4UL
1716 	#define PORT_PHY_QCFG_RESP_AUTO_MODE_LAST        PORT_PHY_QCFG_RESP_AUTO_MODE_SPEED_MASK
1717 	u8	auto_pause;
1718 	#define PORT_PHY_QCFG_RESP_AUTO_PAUSE_TX                0x1UL
1719 	#define PORT_PHY_QCFG_RESP_AUTO_PAUSE_RX                0x2UL
1720 	#define PORT_PHY_QCFG_RESP_AUTO_PAUSE_AUTONEG_PAUSE     0x4UL
1721 	__le16	auto_link_speed;
1722 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_100MB 0x1UL
1723 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_1GB   0xaUL
1724 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_2GB   0x14UL
1725 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_2_5GB 0x19UL
1726 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10GB  0x64UL
1727 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_20GB  0xc8UL
1728 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_25GB  0xfaUL
1729 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_40GB  0x190UL
1730 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_50GB  0x1f4UL
1731 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_100GB 0x3e8UL
1732 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10MB  0xffffUL
1733 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10MB
1734 	__le16	auto_link_speed_mask;
1735 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100MBHD     0x1UL
1736 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100MB       0x2UL
1737 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_1GBHD       0x4UL
1738 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_1GB         0x8UL
1739 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_2GB         0x10UL
1740 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_2_5GB       0x20UL
1741 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10GB        0x40UL
1742 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_20GB        0x80UL
1743 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_25GB        0x100UL
1744 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_40GB        0x200UL
1745 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_50GB        0x400UL
1746 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100GB       0x800UL
1747 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10MBHD      0x1000UL
1748 	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10MB        0x2000UL
1749 	u8	wirespeed;
1750 	#define PORT_PHY_QCFG_RESP_WIRESPEED_OFF 0x0UL
1751 	#define PORT_PHY_QCFG_RESP_WIRESPEED_ON  0x1UL
1752 	#define PORT_PHY_QCFG_RESP_WIRESPEED_LAST PORT_PHY_QCFG_RESP_WIRESPEED_ON
1753 	u8	lpbk;
1754 	#define PORT_PHY_QCFG_RESP_LPBK_NONE   0x0UL
1755 	#define PORT_PHY_QCFG_RESP_LPBK_LOCAL  0x1UL
1756 	#define PORT_PHY_QCFG_RESP_LPBK_REMOTE 0x2UL
1757 	#define PORT_PHY_QCFG_RESP_LPBK_LAST  PORT_PHY_QCFG_RESP_LPBK_REMOTE
1758 	u8	force_pause;
1759 	#define PORT_PHY_QCFG_RESP_FORCE_PAUSE_TX     0x1UL
1760 	#define PORT_PHY_QCFG_RESP_FORCE_PAUSE_RX     0x2UL
1761 	u8	module_status;
1762 	#define PORT_PHY_QCFG_RESP_MODULE_STATUS_NONE          0x0UL
1763 	#define PORT_PHY_QCFG_RESP_MODULE_STATUS_DISABLETX     0x1UL
1764 	#define PORT_PHY_QCFG_RESP_MODULE_STATUS_WARNINGMSG    0x2UL
1765 	#define PORT_PHY_QCFG_RESP_MODULE_STATUS_PWRDOWN       0x3UL
1766 	#define PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTINSERTED   0x4UL
1767 	#define PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTAPPLICABLE 0xffUL
1768 	#define PORT_PHY_QCFG_RESP_MODULE_STATUS_LAST         PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTAPPLICABLE
1769 	__le32	preemphasis;
1770 	u8	phy_maj;
1771 	u8	phy_min;
1772 	u8	phy_bld;
1773 	u8	phy_type;
1774 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_UNKNOWN          0x0UL
1775 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASECR           0x1UL
1776 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR4          0x2UL
1777 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASELR           0x3UL
1778 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASESR           0x4UL
1779 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR2          0x5UL
1780 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKX           0x6UL
1781 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR           0x7UL
1782 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASET            0x8UL
1783 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASETE           0x9UL
1784 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_SGMIIEXTPHY      0xaUL
1785 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_L  0xbUL
1786 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_S  0xcUL
1787 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_N  0xdUL
1788 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASESR       0xeUL
1789 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASECR4     0xfUL
1790 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR4     0x10UL
1791 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASELR4     0x11UL
1792 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASEER4     0x12UL
1793 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR10    0x13UL
1794 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASECR4      0x14UL
1795 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASESR4      0x15UL
1796 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASELR4      0x16UL
1797 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASEER4      0x17UL
1798 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_ACTIVE_CABLE 0x18UL
1799 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASET         0x19UL
1800 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASESX        0x1aUL
1801 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASECX        0x1bUL
1802 	#define PORT_PHY_QCFG_RESP_PHY_TYPE_LAST            PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASECX
1803 	u8	media_type;
1804 	#define PORT_PHY_QCFG_RESP_MEDIA_TYPE_UNKNOWN 0x0UL
1805 	#define PORT_PHY_QCFG_RESP_MEDIA_TYPE_TP      0x1UL
1806 	#define PORT_PHY_QCFG_RESP_MEDIA_TYPE_DAC     0x2UL
1807 	#define PORT_PHY_QCFG_RESP_MEDIA_TYPE_FIBRE   0x3UL
1808 	#define PORT_PHY_QCFG_RESP_MEDIA_TYPE_LAST   PORT_PHY_QCFG_RESP_MEDIA_TYPE_FIBRE
1809 	u8	xcvr_pkg_type;
1810 	#define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_INTERNAL 0x1UL
1811 	#define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_EXTERNAL 0x2UL
1812 	#define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_LAST         PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_EXTERNAL
1813 	u8	eee_config_phy_addr;
1814 	#define PORT_PHY_QCFG_RESP_PHY_ADDR_MASK              0x1fUL
1815 	#define PORT_PHY_QCFG_RESP_PHY_ADDR_SFT               0
1816 	#define PORT_PHY_QCFG_RESP_EEE_CONFIG_MASK            0xe0UL
1817 	#define PORT_PHY_QCFG_RESP_EEE_CONFIG_SFT             5
1818 	#define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_ENABLED      0x20UL
1819 	#define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_ACTIVE       0x40UL
1820 	#define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_TX_LPI       0x80UL
1821 	u8	parallel_detect;
1822 	#define PORT_PHY_QCFG_RESP_PARALLEL_DETECT     0x1UL
1823 	__le16	link_partner_adv_speeds;
1824 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100MBHD     0x1UL
1825 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100MB       0x2UL
1826 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_1GBHD       0x4UL
1827 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_1GB         0x8UL
1828 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_2GB         0x10UL
1829 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_2_5GB       0x20UL
1830 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10GB        0x40UL
1831 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_20GB        0x80UL
1832 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_25GB        0x100UL
1833 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_40GB        0x200UL
1834 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_50GB        0x400UL
1835 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100GB       0x800UL
1836 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10MBHD      0x1000UL
1837 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10MB        0x2000UL
1838 	u8	link_partner_adv_auto_mode;
1839 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_NONE         0x0UL
1840 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ALL_SPEEDS   0x1UL
1841 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ONE_SPEED    0x2UL
1842 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ONE_OR_BELOW 0x3UL
1843 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_SPEED_MASK   0x4UL
1844 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_LAST        PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_SPEED_MASK
1845 	u8	link_partner_adv_pause;
1846 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_PAUSE_TX     0x1UL
1847 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_PAUSE_RX     0x2UL
1848 	__le16	adv_eee_link_speed_mask;
1849 	#define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD1     0x1UL
1850 	#define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_100MB     0x2UL
1851 	#define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD2     0x4UL
1852 	#define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_1GB       0x8UL
1853 	#define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD3     0x10UL
1854 	#define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD4     0x20UL
1855 	#define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_10GB      0x40UL
1856 	__le16	link_partner_adv_eee_link_speed_mask;
1857 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD1     0x1UL
1858 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_100MB     0x2UL
1859 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD2     0x4UL
1860 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_1GB       0x8UL
1861 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD3     0x10UL
1862 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD4     0x20UL
1863 	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_10GB      0x40UL
1864 	__le32	xcvr_identifier_type_tx_lpi_timer;
1865 	#define PORT_PHY_QCFG_RESP_TX_LPI_TIMER_MASK            0xffffffUL
1866 	#define PORT_PHY_QCFG_RESP_TX_LPI_TIMER_SFT             0
1867 	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_MASK    0xff000000UL
1868 	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFT     24
1869 	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_UNKNOWN   (0x0UL << 24)
1870 	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFP       (0x3UL << 24)
1871 	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP      (0xcUL << 24)
1872 	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFPPLUS  (0xdUL << 24)
1873 	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP28    (0x11UL << 24)
1874 	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_LAST     PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP28
1875 	__le16	fec_cfg;
1876 	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_NONE_SUPPORTED         0x1UL
1877 	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_SUPPORTED      0x2UL
1878 	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_ENABLED        0x4UL
1879 	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_SUPPORTED     0x8UL
1880 	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_ENABLED       0x10UL
1881 	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_SUPPORTED     0x20UL
1882 	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_ENABLED       0x40UL
1883 	u8	duplex_state;
1884 	#define PORT_PHY_QCFG_RESP_DUPLEX_STATE_HALF 0x0UL
1885 	#define PORT_PHY_QCFG_RESP_DUPLEX_STATE_FULL 0x1UL
1886 	#define PORT_PHY_QCFG_RESP_DUPLEX_STATE_LAST PORT_PHY_QCFG_RESP_DUPLEX_STATE_FULL
1887 	u8	option_flags;
1888 	#define PORT_PHY_QCFG_RESP_OPTION_FLAGS_MEDIA_AUTO_DETECT     0x1UL
1889 	char	phy_vendor_name[16];
1890 	char	phy_vendor_partnumber[16];
1891 	u8	unused_2[7];
1892 	u8	valid;
1893 };
1894 
1895 /* hwrm_port_mac_cfg_input (size:320b/40B) */
1896 struct hwrm_port_mac_cfg_input {
1897 	__le16	req_type;
1898 	__le16	cmpl_ring;
1899 	__le16	seq_id;
1900 	__le16	target_id;
1901 	__le64	resp_addr;
1902 	__le32	flags;
1903 	#define PORT_MAC_CFG_REQ_FLAGS_MATCH_LINK                    0x1UL
1904 	#define PORT_MAC_CFG_REQ_FLAGS_VLAN_PRI2COS_ENABLE           0x2UL
1905 	#define PORT_MAC_CFG_REQ_FLAGS_TUNNEL_PRI2COS_ENABLE         0x4UL
1906 	#define PORT_MAC_CFG_REQ_FLAGS_IP_DSCP2COS_ENABLE            0x8UL
1907 	#define PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_ENABLE      0x10UL
1908 	#define PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_DISABLE     0x20UL
1909 	#define PORT_MAC_CFG_REQ_FLAGS_PTP_TX_TS_CAPTURE_ENABLE      0x40UL
1910 	#define PORT_MAC_CFG_REQ_FLAGS_PTP_TX_TS_CAPTURE_DISABLE     0x80UL
1911 	#define PORT_MAC_CFG_REQ_FLAGS_OOB_WOL_ENABLE                0x100UL
1912 	#define PORT_MAC_CFG_REQ_FLAGS_OOB_WOL_DISABLE               0x200UL
1913 	#define PORT_MAC_CFG_REQ_FLAGS_VLAN_PRI2COS_DISABLE          0x400UL
1914 	#define PORT_MAC_CFG_REQ_FLAGS_TUNNEL_PRI2COS_DISABLE        0x800UL
1915 	#define PORT_MAC_CFG_REQ_FLAGS_IP_DSCP2COS_DISABLE           0x1000UL
1916 	__le32	enables;
1917 	#define PORT_MAC_CFG_REQ_ENABLES_IPG                            0x1UL
1918 	#define PORT_MAC_CFG_REQ_ENABLES_LPBK                           0x2UL
1919 	#define PORT_MAC_CFG_REQ_ENABLES_VLAN_PRI2COS_MAP_PRI           0x4UL
1920 	#define PORT_MAC_CFG_REQ_ENABLES_TUNNEL_PRI2COS_MAP_PRI         0x10UL
1921 	#define PORT_MAC_CFG_REQ_ENABLES_DSCP2COS_MAP_PRI               0x20UL
1922 	#define PORT_MAC_CFG_REQ_ENABLES_RX_TS_CAPTURE_PTP_MSG_TYPE     0x40UL
1923 	#define PORT_MAC_CFG_REQ_ENABLES_TX_TS_CAPTURE_PTP_MSG_TYPE     0x80UL
1924 	#define PORT_MAC_CFG_REQ_ENABLES_COS_FIELD_CFG                  0x100UL
1925 	__le16	port_id;
1926 	u8	ipg;
1927 	u8	lpbk;
1928 	#define PORT_MAC_CFG_REQ_LPBK_NONE   0x0UL
1929 	#define PORT_MAC_CFG_REQ_LPBK_LOCAL  0x1UL
1930 	#define PORT_MAC_CFG_REQ_LPBK_REMOTE 0x2UL
1931 	#define PORT_MAC_CFG_REQ_LPBK_LAST  PORT_MAC_CFG_REQ_LPBK_REMOTE
1932 	u8	vlan_pri2cos_map_pri;
1933 	u8	reserved1;
1934 	u8	tunnel_pri2cos_map_pri;
1935 	u8	dscp2pri_map_pri;
1936 	__le16	rx_ts_capture_ptp_msg_type;
1937 	__le16	tx_ts_capture_ptp_msg_type;
1938 	u8	cos_field_cfg;
1939 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_RSVD1                     0x1UL
1940 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_MASK         0x6UL
1941 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_SFT          1
1942 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_INNERMOST      (0x0UL << 1)
1943 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_OUTER          (0x1UL << 1)
1944 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_OUTERMOST      (0x2UL << 1)
1945 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_UNSPECIFIED    (0x3UL << 1)
1946 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_LAST          PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_UNSPECIFIED
1947 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_MASK       0x18UL
1948 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_SFT        3
1949 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_INNERMOST    (0x0UL << 3)
1950 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_OUTER        (0x1UL << 3)
1951 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_OUTERMOST    (0x2UL << 3)
1952 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_UNSPECIFIED  (0x3UL << 3)
1953 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_LAST        PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_UNSPECIFIED
1954 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_DEFAULT_COS_MASK          0xe0UL
1955 	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_DEFAULT_COS_SFT           5
1956 	u8	unused_0[3];
1957 };
1958 
1959 /* hwrm_port_mac_cfg_output (size:128b/16B) */
1960 struct hwrm_port_mac_cfg_output {
1961 	__le16	error_code;
1962 	__le16	req_type;
1963 	__le16	seq_id;
1964 	__le16	resp_len;
1965 	__le16	mru;
1966 	__le16	mtu;
1967 	u8	ipg;
1968 	u8	lpbk;
1969 	#define PORT_MAC_CFG_RESP_LPBK_NONE   0x0UL
1970 	#define PORT_MAC_CFG_RESP_LPBK_LOCAL  0x1UL
1971 	#define PORT_MAC_CFG_RESP_LPBK_REMOTE 0x2UL
1972 	#define PORT_MAC_CFG_RESP_LPBK_LAST  PORT_MAC_CFG_RESP_LPBK_REMOTE
1973 	u8	unused_0;
1974 	u8	valid;
1975 };
1976 
1977 /* hwrm_port_mac_ptp_qcfg_input (size:192b/24B) */
1978 struct hwrm_port_mac_ptp_qcfg_input {
1979 	__le16	req_type;
1980 	__le16	cmpl_ring;
1981 	__le16	seq_id;
1982 	__le16	target_id;
1983 	__le64	resp_addr;
1984 	__le16	port_id;
1985 	u8	unused_0[6];
1986 };
1987 
1988 /* hwrm_port_mac_ptp_qcfg_output (size:640b/80B) */
1989 struct hwrm_port_mac_ptp_qcfg_output {
1990 	__le16	error_code;
1991 	__le16	req_type;
1992 	__le16	seq_id;
1993 	__le16	resp_len;
1994 	u8	flags;
1995 	#define PORT_MAC_PTP_QCFG_RESP_FLAGS_DIRECT_ACCESS     0x1UL
1996 	#define PORT_MAC_PTP_QCFG_RESP_FLAGS_HWRM_ACCESS       0x2UL
1997 	u8	unused_0[3];
1998 	__le32	rx_ts_reg_off_lower;
1999 	__le32	rx_ts_reg_off_upper;
2000 	__le32	rx_ts_reg_off_seq_id;
2001 	__le32	rx_ts_reg_off_src_id_0;
2002 	__le32	rx_ts_reg_off_src_id_1;
2003 	__le32	rx_ts_reg_off_src_id_2;
2004 	__le32	rx_ts_reg_off_domain_id;
2005 	__le32	rx_ts_reg_off_fifo;
2006 	__le32	rx_ts_reg_off_fifo_adv;
2007 	__le32	rx_ts_reg_off_granularity;
2008 	__le32	tx_ts_reg_off_lower;
2009 	__le32	tx_ts_reg_off_upper;
2010 	__le32	tx_ts_reg_off_seq_id;
2011 	__le32	tx_ts_reg_off_fifo;
2012 	__le32	tx_ts_reg_off_granularity;
2013 	u8	unused_1[7];
2014 	u8	valid;
2015 };
2016 
2017 /* hwrm_port_qstats_input (size:320b/40B) */
2018 struct hwrm_port_qstats_input {
2019 	__le16	req_type;
2020 	__le16	cmpl_ring;
2021 	__le16	seq_id;
2022 	__le16	target_id;
2023 	__le64	resp_addr;
2024 	__le16	port_id;
2025 	u8	unused_0[6];
2026 	__le64	tx_stat_host_addr;
2027 	__le64	rx_stat_host_addr;
2028 };
2029 
2030 /* hwrm_port_qstats_output (size:128b/16B) */
2031 struct hwrm_port_qstats_output {
2032 	__le16	error_code;
2033 	__le16	req_type;
2034 	__le16	seq_id;
2035 	__le16	resp_len;
2036 	__le16	tx_stat_size;
2037 	__le16	rx_stat_size;
2038 	u8	unused_0[3];
2039 	u8	valid;
2040 };
2041 
2042 /* hwrm_port_qstats_ext_input (size:320b/40B) */
2043 struct hwrm_port_qstats_ext_input {
2044 	__le16	req_type;
2045 	__le16	cmpl_ring;
2046 	__le16	seq_id;
2047 	__le16	target_id;
2048 	__le64	resp_addr;
2049 	__le16	port_id;
2050 	__le16	tx_stat_size;
2051 	__le16	rx_stat_size;
2052 	u8	unused_0[2];
2053 	__le64	tx_stat_host_addr;
2054 	__le64	rx_stat_host_addr;
2055 };
2056 
2057 /* hwrm_port_qstats_ext_output (size:128b/16B) */
2058 struct hwrm_port_qstats_ext_output {
2059 	__le16	error_code;
2060 	__le16	req_type;
2061 	__le16	seq_id;
2062 	__le16	resp_len;
2063 	__le16	tx_stat_size;
2064 	__le16	rx_stat_size;
2065 	u8	unused_0[3];
2066 	u8	valid;
2067 };
2068 
2069 /* hwrm_port_lpbk_qstats_input (size:128b/16B) */
2070 struct hwrm_port_lpbk_qstats_input {
2071 	__le16	req_type;
2072 	__le16	cmpl_ring;
2073 	__le16	seq_id;
2074 	__le16	target_id;
2075 	__le64	resp_addr;
2076 };
2077 
2078 /* hwrm_port_lpbk_qstats_output (size:768b/96B) */
2079 struct hwrm_port_lpbk_qstats_output {
2080 	__le16	error_code;
2081 	__le16	req_type;
2082 	__le16	seq_id;
2083 	__le16	resp_len;
2084 	__le64	lpbk_ucast_frames;
2085 	__le64	lpbk_mcast_frames;
2086 	__le64	lpbk_bcast_frames;
2087 	__le64	lpbk_ucast_bytes;
2088 	__le64	lpbk_mcast_bytes;
2089 	__le64	lpbk_bcast_bytes;
2090 	__le64	tx_stat_discard;
2091 	__le64	tx_stat_error;
2092 	__le64	rx_stat_discard;
2093 	__le64	rx_stat_error;
2094 	u8	unused_0[7];
2095 	u8	valid;
2096 };
2097 
2098 /* hwrm_port_clr_stats_input (size:192b/24B) */
2099 struct hwrm_port_clr_stats_input {
2100 	__le16	req_type;
2101 	__le16	cmpl_ring;
2102 	__le16	seq_id;
2103 	__le16	target_id;
2104 	__le64	resp_addr;
2105 	__le16	port_id;
2106 	u8	unused_0[6];
2107 };
2108 
2109 /* hwrm_port_clr_stats_output (size:128b/16B) */
2110 struct hwrm_port_clr_stats_output {
2111 	__le16	error_code;
2112 	__le16	req_type;
2113 	__le16	seq_id;
2114 	__le16	resp_len;
2115 	u8	unused_0[7];
2116 	u8	valid;
2117 };
2118 
2119 /* hwrm_port_lpbk_clr_stats_input (size:128b/16B) */
2120 struct hwrm_port_lpbk_clr_stats_input {
2121 	__le16	req_type;
2122 	__le16	cmpl_ring;
2123 	__le16	seq_id;
2124 	__le16	target_id;
2125 	__le64	resp_addr;
2126 };
2127 
2128 /* hwrm_port_lpbk_clr_stats_output (size:128b/16B) */
2129 struct hwrm_port_lpbk_clr_stats_output {
2130 	__le16	error_code;
2131 	__le16	req_type;
2132 	__le16	seq_id;
2133 	__le16	resp_len;
2134 	u8	unused_0[7];
2135 	u8	valid;
2136 };
2137 
2138 /* hwrm_port_phy_qcaps_input (size:192b/24B) */
2139 struct hwrm_port_phy_qcaps_input {
2140 	__le16	req_type;
2141 	__le16	cmpl_ring;
2142 	__le16	seq_id;
2143 	__le16	target_id;
2144 	__le64	resp_addr;
2145 	__le16	port_id;
2146 	u8	unused_0[6];
2147 };
2148 
2149 /* hwrm_port_phy_qcaps_output (size:192b/24B) */
2150 struct hwrm_port_phy_qcaps_output {
2151 	__le16	error_code;
2152 	__le16	req_type;
2153 	__le16	seq_id;
2154 	__le16	resp_len;
2155 	u8	flags;
2156 	#define PORT_PHY_QCAPS_RESP_FLAGS_EEE_SUPPORTED     0x1UL
2157 	#define PORT_PHY_QCAPS_RESP_FLAGS_RSVD1_MASK        0xfeUL
2158 	#define PORT_PHY_QCAPS_RESP_FLAGS_RSVD1_SFT         1
2159 	u8	port_cnt;
2160 	#define PORT_PHY_QCAPS_RESP_PORT_CNT_UNKNOWN 0x0UL
2161 	#define PORT_PHY_QCAPS_RESP_PORT_CNT_1       0x1UL
2162 	#define PORT_PHY_QCAPS_RESP_PORT_CNT_2       0x2UL
2163 	#define PORT_PHY_QCAPS_RESP_PORT_CNT_3       0x3UL
2164 	#define PORT_PHY_QCAPS_RESP_PORT_CNT_4       0x4UL
2165 	#define PORT_PHY_QCAPS_RESP_PORT_CNT_LAST   PORT_PHY_QCAPS_RESP_PORT_CNT_4
2166 	__le16	supported_speeds_force_mode;
2167 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100MBHD     0x1UL
2168 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100MB       0x2UL
2169 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_1GBHD       0x4UL
2170 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_1GB         0x8UL
2171 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_2GB         0x10UL
2172 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_2_5GB       0x20UL
2173 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10GB        0x40UL
2174 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_20GB        0x80UL
2175 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_25GB        0x100UL
2176 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_40GB        0x200UL
2177 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_50GB        0x400UL
2178 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100GB       0x800UL
2179 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10MBHD      0x1000UL
2180 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10MB        0x2000UL
2181 	__le16	supported_speeds_auto_mode;
2182 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100MBHD     0x1UL
2183 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100MB       0x2UL
2184 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_1GBHD       0x4UL
2185 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_1GB         0x8UL
2186 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_2GB         0x10UL
2187 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_2_5GB       0x20UL
2188 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10GB        0x40UL
2189 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_20GB        0x80UL
2190 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_25GB        0x100UL
2191 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_40GB        0x200UL
2192 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_50GB        0x400UL
2193 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100GB       0x800UL
2194 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10MBHD      0x1000UL
2195 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10MB        0x2000UL
2196 	__le16	supported_speeds_eee_mode;
2197 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD1     0x1UL
2198 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_100MB     0x2UL
2199 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD2     0x4UL
2200 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_1GB       0x8UL
2201 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD3     0x10UL
2202 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD4     0x20UL
2203 	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_10GB      0x40UL
2204 	__le32	tx_lpi_timer_low;
2205 	#define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_LOW_MASK 0xffffffUL
2206 	#define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_LOW_SFT 0
2207 	#define PORT_PHY_QCAPS_RESP_RSVD2_MASK           0xff000000UL
2208 	#define PORT_PHY_QCAPS_RESP_RSVD2_SFT            24
2209 	__le32	valid_tx_lpi_timer_high;
2210 	#define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_MASK 0xffffffUL
2211 	#define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_SFT 0
2212 	#define PORT_PHY_QCAPS_RESP_VALID_MASK            0xff000000UL
2213 	#define PORT_PHY_QCAPS_RESP_VALID_SFT             24
2214 };
2215 
2216 /* hwrm_port_phy_i2c_read_input (size:320b/40B) */
2217 struct hwrm_port_phy_i2c_read_input {
2218 	__le16	req_type;
2219 	__le16	cmpl_ring;
2220 	__le16	seq_id;
2221 	__le16	target_id;
2222 	__le64	resp_addr;
2223 	__le32	flags;
2224 	__le32	enables;
2225 	#define PORT_PHY_I2C_READ_REQ_ENABLES_PAGE_OFFSET     0x1UL
2226 	__le16	port_id;
2227 	u8	i2c_slave_addr;
2228 	u8	unused_0;
2229 	__le16	page_number;
2230 	__le16	page_offset;
2231 	u8	data_length;
2232 	u8	unused_1[7];
2233 };
2234 
2235 /* hwrm_port_phy_i2c_read_output (size:640b/80B) */
2236 struct hwrm_port_phy_i2c_read_output {
2237 	__le16	error_code;
2238 	__le16	req_type;
2239 	__le16	seq_id;
2240 	__le16	resp_len;
2241 	__le32	data[16];
2242 	u8	unused_0[7];
2243 	u8	valid;
2244 };
2245 
2246 /* hwrm_port_led_cfg_input (size:512b/64B) */
2247 struct hwrm_port_led_cfg_input {
2248 	__le16	req_type;
2249 	__le16	cmpl_ring;
2250 	__le16	seq_id;
2251 	__le16	target_id;
2252 	__le64	resp_addr;
2253 	__le32	enables;
2254 	#define PORT_LED_CFG_REQ_ENABLES_LED0_ID            0x1UL
2255 	#define PORT_LED_CFG_REQ_ENABLES_LED0_STATE         0x2UL
2256 	#define PORT_LED_CFG_REQ_ENABLES_LED0_COLOR         0x4UL
2257 	#define PORT_LED_CFG_REQ_ENABLES_LED0_BLINK_ON      0x8UL
2258 	#define PORT_LED_CFG_REQ_ENABLES_LED0_BLINK_OFF     0x10UL
2259 	#define PORT_LED_CFG_REQ_ENABLES_LED0_GROUP_ID      0x20UL
2260 	#define PORT_LED_CFG_REQ_ENABLES_LED1_ID            0x40UL
2261 	#define PORT_LED_CFG_REQ_ENABLES_LED1_STATE         0x80UL
2262 	#define PORT_LED_CFG_REQ_ENABLES_LED1_COLOR         0x100UL
2263 	#define PORT_LED_CFG_REQ_ENABLES_LED1_BLINK_ON      0x200UL
2264 	#define PORT_LED_CFG_REQ_ENABLES_LED1_BLINK_OFF     0x400UL
2265 	#define PORT_LED_CFG_REQ_ENABLES_LED1_GROUP_ID      0x800UL
2266 	#define PORT_LED_CFG_REQ_ENABLES_LED2_ID            0x1000UL
2267 	#define PORT_LED_CFG_REQ_ENABLES_LED2_STATE         0x2000UL
2268 	#define PORT_LED_CFG_REQ_ENABLES_LED2_COLOR         0x4000UL
2269 	#define PORT_LED_CFG_REQ_ENABLES_LED2_BLINK_ON      0x8000UL
2270 	#define PORT_LED_CFG_REQ_ENABLES_LED2_BLINK_OFF     0x10000UL
2271 	#define PORT_LED_CFG_REQ_ENABLES_LED2_GROUP_ID      0x20000UL
2272 	#define PORT_LED_CFG_REQ_ENABLES_LED3_ID            0x40000UL
2273 	#define PORT_LED_CFG_REQ_ENABLES_LED3_STATE         0x80000UL
2274 	#define PORT_LED_CFG_REQ_ENABLES_LED3_COLOR         0x100000UL
2275 	#define PORT_LED_CFG_REQ_ENABLES_LED3_BLINK_ON      0x200000UL
2276 	#define PORT_LED_CFG_REQ_ENABLES_LED3_BLINK_OFF     0x400000UL
2277 	#define PORT_LED_CFG_REQ_ENABLES_LED3_GROUP_ID      0x800000UL
2278 	__le16	port_id;
2279 	u8	num_leds;
2280 	u8	rsvd;
2281 	u8	led0_id;
2282 	u8	led0_state;
2283 	#define PORT_LED_CFG_REQ_LED0_STATE_DEFAULT  0x0UL
2284 	#define PORT_LED_CFG_REQ_LED0_STATE_OFF      0x1UL
2285 	#define PORT_LED_CFG_REQ_LED0_STATE_ON       0x2UL
2286 	#define PORT_LED_CFG_REQ_LED0_STATE_BLINK    0x3UL
2287 	#define PORT_LED_CFG_REQ_LED0_STATE_BLINKALT 0x4UL
2288 	#define PORT_LED_CFG_REQ_LED0_STATE_LAST    PORT_LED_CFG_REQ_LED0_STATE_BLINKALT
2289 	u8	led0_color;
2290 	#define PORT_LED_CFG_REQ_LED0_COLOR_DEFAULT    0x0UL
2291 	#define PORT_LED_CFG_REQ_LED0_COLOR_AMBER      0x1UL
2292 	#define PORT_LED_CFG_REQ_LED0_COLOR_GREEN      0x2UL
2293 	#define PORT_LED_CFG_REQ_LED0_COLOR_GREENAMBER 0x3UL
2294 	#define PORT_LED_CFG_REQ_LED0_COLOR_LAST      PORT_LED_CFG_REQ_LED0_COLOR_GREENAMBER
2295 	u8	unused_0;
2296 	__le16	led0_blink_on;
2297 	__le16	led0_blink_off;
2298 	u8	led0_group_id;
2299 	u8	rsvd0;
2300 	u8	led1_id;
2301 	u8	led1_state;
2302 	#define PORT_LED_CFG_REQ_LED1_STATE_DEFAULT  0x0UL
2303 	#define PORT_LED_CFG_REQ_LED1_STATE_OFF      0x1UL
2304 	#define PORT_LED_CFG_REQ_LED1_STATE_ON       0x2UL
2305 	#define PORT_LED_CFG_REQ_LED1_STATE_BLINK    0x3UL
2306 	#define PORT_LED_CFG_REQ_LED1_STATE_BLINKALT 0x4UL
2307 	#define PORT_LED_CFG_REQ_LED1_STATE_LAST    PORT_LED_CFG_REQ_LED1_STATE_BLINKALT
2308 	u8	led1_color;
2309 	#define PORT_LED_CFG_REQ_LED1_COLOR_DEFAULT    0x0UL
2310 	#define PORT_LED_CFG_REQ_LED1_COLOR_AMBER      0x1UL
2311 	#define PORT_LED_CFG_REQ_LED1_COLOR_GREEN      0x2UL
2312 	#define PORT_LED_CFG_REQ_LED1_COLOR_GREENAMBER 0x3UL
2313 	#define PORT_LED_CFG_REQ_LED1_COLOR_LAST      PORT_LED_CFG_REQ_LED1_COLOR_GREENAMBER
2314 	u8	unused_1;
2315 	__le16	led1_blink_on;
2316 	__le16	led1_blink_off;
2317 	u8	led1_group_id;
2318 	u8	rsvd1;
2319 	u8	led2_id;
2320 	u8	led2_state;
2321 	#define PORT_LED_CFG_REQ_LED2_STATE_DEFAULT  0x0UL
2322 	#define PORT_LED_CFG_REQ_LED2_STATE_OFF      0x1UL
2323 	#define PORT_LED_CFG_REQ_LED2_STATE_ON       0x2UL
2324 	#define PORT_LED_CFG_REQ_LED2_STATE_BLINK    0x3UL
2325 	#define PORT_LED_CFG_REQ_LED2_STATE_BLINKALT 0x4UL
2326 	#define PORT_LED_CFG_REQ_LED2_STATE_LAST    PORT_LED_CFG_REQ_LED2_STATE_BLINKALT
2327 	u8	led2_color;
2328 	#define PORT_LED_CFG_REQ_LED2_COLOR_DEFAULT    0x0UL
2329 	#define PORT_LED_CFG_REQ_LED2_COLOR_AMBER      0x1UL
2330 	#define PORT_LED_CFG_REQ_LED2_COLOR_GREEN      0x2UL
2331 	#define PORT_LED_CFG_REQ_LED2_COLOR_GREENAMBER 0x3UL
2332 	#define PORT_LED_CFG_REQ_LED2_COLOR_LAST      PORT_LED_CFG_REQ_LED2_COLOR_GREENAMBER
2333 	u8	unused_2;
2334 	__le16	led2_blink_on;
2335 	__le16	led2_blink_off;
2336 	u8	led2_group_id;
2337 	u8	rsvd2;
2338 	u8	led3_id;
2339 	u8	led3_state;
2340 	#define PORT_LED_CFG_REQ_LED3_STATE_DEFAULT  0x0UL
2341 	#define PORT_LED_CFG_REQ_LED3_STATE_OFF      0x1UL
2342 	#define PORT_LED_CFG_REQ_LED3_STATE_ON       0x2UL
2343 	#define PORT_LED_CFG_REQ_LED3_STATE_BLINK    0x3UL
2344 	#define PORT_LED_CFG_REQ_LED3_STATE_BLINKALT 0x4UL
2345 	#define PORT_LED_CFG_REQ_LED3_STATE_LAST    PORT_LED_CFG_REQ_LED3_STATE_BLINKALT
2346 	u8	led3_color;
2347 	#define PORT_LED_CFG_REQ_LED3_COLOR_DEFAULT    0x0UL
2348 	#define PORT_LED_CFG_REQ_LED3_COLOR_AMBER      0x1UL
2349 	#define PORT_LED_CFG_REQ_LED3_COLOR_GREEN      0x2UL
2350 	#define PORT_LED_CFG_REQ_LED3_COLOR_GREENAMBER 0x3UL
2351 	#define PORT_LED_CFG_REQ_LED3_COLOR_LAST      PORT_LED_CFG_REQ_LED3_COLOR_GREENAMBER
2352 	u8	unused_3;
2353 	__le16	led3_blink_on;
2354 	__le16	led3_blink_off;
2355 	u8	led3_group_id;
2356 	u8	rsvd3;
2357 };
2358 
2359 /* hwrm_port_led_cfg_output (size:128b/16B) */
2360 struct hwrm_port_led_cfg_output {
2361 	__le16	error_code;
2362 	__le16	req_type;
2363 	__le16	seq_id;
2364 	__le16	resp_len;
2365 	u8	unused_0[7];
2366 	u8	valid;
2367 };
2368 
2369 /* hwrm_port_led_qcfg_input (size:192b/24B) */
2370 struct hwrm_port_led_qcfg_input {
2371 	__le16	req_type;
2372 	__le16	cmpl_ring;
2373 	__le16	seq_id;
2374 	__le16	target_id;
2375 	__le64	resp_addr;
2376 	__le16	port_id;
2377 	u8	unused_0[6];
2378 };
2379 
2380 /* hwrm_port_led_qcfg_output (size:448b/56B) */
2381 struct hwrm_port_led_qcfg_output {
2382 	__le16	error_code;
2383 	__le16	req_type;
2384 	__le16	seq_id;
2385 	__le16	resp_len;
2386 	u8	num_leds;
2387 	u8	led0_id;
2388 	u8	led0_type;
2389 	#define PORT_LED_QCFG_RESP_LED0_TYPE_SPEED    0x0UL
2390 	#define PORT_LED_QCFG_RESP_LED0_TYPE_ACTIVITY 0x1UL
2391 	#define PORT_LED_QCFG_RESP_LED0_TYPE_INVALID  0xffUL
2392 	#define PORT_LED_QCFG_RESP_LED0_TYPE_LAST    PORT_LED_QCFG_RESP_LED0_TYPE_INVALID
2393 	u8	led0_state;
2394 	#define PORT_LED_QCFG_RESP_LED0_STATE_DEFAULT  0x0UL
2395 	#define PORT_LED_QCFG_RESP_LED0_STATE_OFF      0x1UL
2396 	#define PORT_LED_QCFG_RESP_LED0_STATE_ON       0x2UL
2397 	#define PORT_LED_QCFG_RESP_LED0_STATE_BLINK    0x3UL
2398 	#define PORT_LED_QCFG_RESP_LED0_STATE_BLINKALT 0x4UL
2399 	#define PORT_LED_QCFG_RESP_LED0_STATE_LAST    PORT_LED_QCFG_RESP_LED0_STATE_BLINKALT
2400 	u8	led0_color;
2401 	#define PORT_LED_QCFG_RESP_LED0_COLOR_DEFAULT    0x0UL
2402 	#define PORT_LED_QCFG_RESP_LED0_COLOR_AMBER      0x1UL
2403 	#define PORT_LED_QCFG_RESP_LED0_COLOR_GREEN      0x2UL
2404 	#define PORT_LED_QCFG_RESP_LED0_COLOR_GREENAMBER 0x3UL
2405 	#define PORT_LED_QCFG_RESP_LED0_COLOR_LAST      PORT_LED_QCFG_RESP_LED0_COLOR_GREENAMBER
2406 	u8	unused_0;
2407 	__le16	led0_blink_on;
2408 	__le16	led0_blink_off;
2409 	u8	led0_group_id;
2410 	u8	led1_id;
2411 	u8	led1_type;
2412 	#define PORT_LED_QCFG_RESP_LED1_TYPE_SPEED    0x0UL
2413 	#define PORT_LED_QCFG_RESP_LED1_TYPE_ACTIVITY 0x1UL
2414 	#define PORT_LED_QCFG_RESP_LED1_TYPE_INVALID  0xffUL
2415 	#define PORT_LED_QCFG_RESP_LED1_TYPE_LAST    PORT_LED_QCFG_RESP_LED1_TYPE_INVALID
2416 	u8	led1_state;
2417 	#define PORT_LED_QCFG_RESP_LED1_STATE_DEFAULT  0x0UL
2418 	#define PORT_LED_QCFG_RESP_LED1_STATE_OFF      0x1UL
2419 	#define PORT_LED_QCFG_RESP_LED1_STATE_ON       0x2UL
2420 	#define PORT_LED_QCFG_RESP_LED1_STATE_BLINK    0x3UL
2421 	#define PORT_LED_QCFG_RESP_LED1_STATE_BLINKALT 0x4UL
2422 	#define PORT_LED_QCFG_RESP_LED1_STATE_LAST    PORT_LED_QCFG_RESP_LED1_STATE_BLINKALT
2423 	u8	led1_color;
2424 	#define PORT_LED_QCFG_RESP_LED1_COLOR_DEFAULT    0x0UL
2425 	#define PORT_LED_QCFG_RESP_LED1_COLOR_AMBER      0x1UL
2426 	#define PORT_LED_QCFG_RESP_LED1_COLOR_GREEN      0x2UL
2427 	#define PORT_LED_QCFG_RESP_LED1_COLOR_GREENAMBER 0x3UL
2428 	#define PORT_LED_QCFG_RESP_LED1_COLOR_LAST      PORT_LED_QCFG_RESP_LED1_COLOR_GREENAMBER
2429 	u8	unused_1;
2430 	__le16	led1_blink_on;
2431 	__le16	led1_blink_off;
2432 	u8	led1_group_id;
2433 	u8	led2_id;
2434 	u8	led2_type;
2435 	#define PORT_LED_QCFG_RESP_LED2_TYPE_SPEED    0x0UL
2436 	#define PORT_LED_QCFG_RESP_LED2_TYPE_ACTIVITY 0x1UL
2437 	#define PORT_LED_QCFG_RESP_LED2_TYPE_INVALID  0xffUL
2438 	#define PORT_LED_QCFG_RESP_LED2_TYPE_LAST    PORT_LED_QCFG_RESP_LED2_TYPE_INVALID
2439 	u8	led2_state;
2440 	#define PORT_LED_QCFG_RESP_LED2_STATE_DEFAULT  0x0UL
2441 	#define PORT_LED_QCFG_RESP_LED2_STATE_OFF      0x1UL
2442 	#define PORT_LED_QCFG_RESP_LED2_STATE_ON       0x2UL
2443 	#define PORT_LED_QCFG_RESP_LED2_STATE_BLINK    0x3UL
2444 	#define PORT_LED_QCFG_RESP_LED2_STATE_BLINKALT 0x4UL
2445 	#define PORT_LED_QCFG_RESP_LED2_STATE_LAST    PORT_LED_QCFG_RESP_LED2_STATE_BLINKALT
2446 	u8	led2_color;
2447 	#define PORT_LED_QCFG_RESP_LED2_COLOR_DEFAULT    0x0UL
2448 	#define PORT_LED_QCFG_RESP_LED2_COLOR_AMBER      0x1UL
2449 	#define PORT_LED_QCFG_RESP_LED2_COLOR_GREEN      0x2UL
2450 	#define PORT_LED_QCFG_RESP_LED2_COLOR_GREENAMBER 0x3UL
2451 	#define PORT_LED_QCFG_RESP_LED2_COLOR_LAST      PORT_LED_QCFG_RESP_LED2_COLOR_GREENAMBER
2452 	u8	unused_2;
2453 	__le16	led2_blink_on;
2454 	__le16	led2_blink_off;
2455 	u8	led2_group_id;
2456 	u8	led3_id;
2457 	u8	led3_type;
2458 	#define PORT_LED_QCFG_RESP_LED3_TYPE_SPEED    0x0UL
2459 	#define PORT_LED_QCFG_RESP_LED3_TYPE_ACTIVITY 0x1UL
2460 	#define PORT_LED_QCFG_RESP_LED3_TYPE_INVALID  0xffUL
2461 	#define PORT_LED_QCFG_RESP_LED3_TYPE_LAST    PORT_LED_QCFG_RESP_LED3_TYPE_INVALID
2462 	u8	led3_state;
2463 	#define PORT_LED_QCFG_RESP_LED3_STATE_DEFAULT  0x0UL
2464 	#define PORT_LED_QCFG_RESP_LED3_STATE_OFF      0x1UL
2465 	#define PORT_LED_QCFG_RESP_LED3_STATE_ON       0x2UL
2466 	#define PORT_LED_QCFG_RESP_LED3_STATE_BLINK    0x3UL
2467 	#define PORT_LED_QCFG_RESP_LED3_STATE_BLINKALT 0x4UL
2468 	#define PORT_LED_QCFG_RESP_LED3_STATE_LAST    PORT_LED_QCFG_RESP_LED3_STATE_BLINKALT
2469 	u8	led3_color;
2470 	#define PORT_LED_QCFG_RESP_LED3_COLOR_DEFAULT    0x0UL
2471 	#define PORT_LED_QCFG_RESP_LED3_COLOR_AMBER      0x1UL
2472 	#define PORT_LED_QCFG_RESP_LED3_COLOR_GREEN      0x2UL
2473 	#define PORT_LED_QCFG_RESP_LED3_COLOR_GREENAMBER 0x3UL
2474 	#define PORT_LED_QCFG_RESP_LED3_COLOR_LAST      PORT_LED_QCFG_RESP_LED3_COLOR_GREENAMBER
2475 	u8	unused_3;
2476 	__le16	led3_blink_on;
2477 	__le16	led3_blink_off;
2478 	u8	led3_group_id;
2479 	u8	unused_4[6];
2480 	u8	valid;
2481 };
2482 
2483 /* hwrm_port_led_qcaps_input (size:192b/24B) */
2484 struct hwrm_port_led_qcaps_input {
2485 	__le16	req_type;
2486 	__le16	cmpl_ring;
2487 	__le16	seq_id;
2488 	__le16	target_id;
2489 	__le64	resp_addr;
2490 	__le16	port_id;
2491 	u8	unused_0[6];
2492 };
2493 
2494 /* hwrm_port_led_qcaps_output (size:384b/48B) */
2495 struct hwrm_port_led_qcaps_output {
2496 	__le16	error_code;
2497 	__le16	req_type;
2498 	__le16	seq_id;
2499 	__le16	resp_len;
2500 	u8	num_leds;
2501 	u8	unused[3];
2502 	u8	led0_id;
2503 	u8	led0_type;
2504 	#define PORT_LED_QCAPS_RESP_LED0_TYPE_SPEED    0x0UL
2505 	#define PORT_LED_QCAPS_RESP_LED0_TYPE_ACTIVITY 0x1UL
2506 	#define PORT_LED_QCAPS_RESP_LED0_TYPE_INVALID  0xffUL
2507 	#define PORT_LED_QCAPS_RESP_LED0_TYPE_LAST    PORT_LED_QCAPS_RESP_LED0_TYPE_INVALID
2508 	u8	led0_group_id;
2509 	u8	unused_0;
2510 	__le16	led0_state_caps;
2511 	#define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_ENABLED                 0x1UL
2512 	#define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_OFF_SUPPORTED           0x2UL
2513 	#define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_ON_SUPPORTED            0x4UL
2514 	#define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_BLINK_SUPPORTED         0x8UL
2515 	#define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_BLINK_ALT_SUPPORTED     0x10UL
2516 	__le16	led0_color_caps;
2517 	#define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_RSVD                0x1UL
2518 	#define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_AMBER_SUPPORTED     0x2UL
2519 	#define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_GREEN_SUPPORTED     0x4UL
2520 	u8	led1_id;
2521 	u8	led1_type;
2522 	#define PORT_LED_QCAPS_RESP_LED1_TYPE_SPEED    0x0UL
2523 	#define PORT_LED_QCAPS_RESP_LED1_TYPE_ACTIVITY 0x1UL
2524 	#define PORT_LED_QCAPS_RESP_LED1_TYPE_INVALID  0xffUL
2525 	#define PORT_LED_QCAPS_RESP_LED1_TYPE_LAST    PORT_LED_QCAPS_RESP_LED1_TYPE_INVALID
2526 	u8	led1_group_id;
2527 	u8	unused_1;
2528 	__le16	led1_state_caps;
2529 	#define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_ENABLED                 0x1UL
2530 	#define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_OFF_SUPPORTED           0x2UL
2531 	#define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_ON_SUPPORTED            0x4UL
2532 	#define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_BLINK_SUPPORTED         0x8UL
2533 	#define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_BLINK_ALT_SUPPORTED     0x10UL
2534 	__le16	led1_color_caps;
2535 	#define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_RSVD                0x1UL
2536 	#define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_AMBER_SUPPORTED     0x2UL
2537 	#define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_GREEN_SUPPORTED     0x4UL
2538 	u8	led2_id;
2539 	u8	led2_type;
2540 	#define PORT_LED_QCAPS_RESP_LED2_TYPE_SPEED    0x0UL
2541 	#define PORT_LED_QCAPS_RESP_LED2_TYPE_ACTIVITY 0x1UL
2542 	#define PORT_LED_QCAPS_RESP_LED2_TYPE_INVALID  0xffUL
2543 	#define PORT_LED_QCAPS_RESP_LED2_TYPE_LAST    PORT_LED_QCAPS_RESP_LED2_TYPE_INVALID
2544 	u8	led2_group_id;
2545 	u8	unused_2;
2546 	__le16	led2_state_caps;
2547 	#define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_ENABLED                 0x1UL
2548 	#define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_OFF_SUPPORTED           0x2UL
2549 	#define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_ON_SUPPORTED            0x4UL
2550 	#define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_BLINK_SUPPORTED         0x8UL
2551 	#define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_BLINK_ALT_SUPPORTED     0x10UL
2552 	__le16	led2_color_caps;
2553 	#define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_RSVD                0x1UL
2554 	#define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_AMBER_SUPPORTED     0x2UL
2555 	#define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_GREEN_SUPPORTED     0x4UL
2556 	u8	led3_id;
2557 	u8	led3_type;
2558 	#define PORT_LED_QCAPS_RESP_LED3_TYPE_SPEED    0x0UL
2559 	#define PORT_LED_QCAPS_RESP_LED3_TYPE_ACTIVITY 0x1UL
2560 	#define PORT_LED_QCAPS_RESP_LED3_TYPE_INVALID  0xffUL
2561 	#define PORT_LED_QCAPS_RESP_LED3_TYPE_LAST    PORT_LED_QCAPS_RESP_LED3_TYPE_INVALID
2562 	u8	led3_group_id;
2563 	u8	unused_3;
2564 	__le16	led3_state_caps;
2565 	#define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_ENABLED                 0x1UL
2566 	#define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_OFF_SUPPORTED           0x2UL
2567 	#define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_ON_SUPPORTED            0x4UL
2568 	#define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_BLINK_SUPPORTED         0x8UL
2569 	#define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_BLINK_ALT_SUPPORTED     0x10UL
2570 	__le16	led3_color_caps;
2571 	#define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_RSVD                0x1UL
2572 	#define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_AMBER_SUPPORTED     0x2UL
2573 	#define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_GREEN_SUPPORTED     0x4UL
2574 	u8	unused_4[3];
2575 	u8	valid;
2576 };
2577 
2578 /* hwrm_queue_qportcfg_input (size:192b/24B) */
2579 struct hwrm_queue_qportcfg_input {
2580 	__le16	req_type;
2581 	__le16	cmpl_ring;
2582 	__le16	seq_id;
2583 	__le16	target_id;
2584 	__le64	resp_addr;
2585 	__le32	flags;
2586 	#define QUEUE_QPORTCFG_REQ_FLAGS_PATH     0x1UL
2587 	#define QUEUE_QPORTCFG_REQ_FLAGS_PATH_TX    0x0UL
2588 	#define QUEUE_QPORTCFG_REQ_FLAGS_PATH_RX    0x1UL
2589 	#define QUEUE_QPORTCFG_REQ_FLAGS_PATH_LAST QUEUE_QPORTCFG_REQ_FLAGS_PATH_RX
2590 	__le16	port_id;
2591 	u8	drv_qmap_cap;
2592 	#define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_DISABLED 0x0UL
2593 	#define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_ENABLED  0x1UL
2594 	#define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_LAST    QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_ENABLED
2595 	u8	unused_0;
2596 };
2597 
2598 /* hwrm_queue_qportcfg_output (size:256b/32B) */
2599 struct hwrm_queue_qportcfg_output {
2600 	__le16	error_code;
2601 	__le16	req_type;
2602 	__le16	seq_id;
2603 	__le16	resp_len;
2604 	u8	max_configurable_queues;
2605 	u8	max_configurable_lossless_queues;
2606 	u8	queue_cfg_allowed;
2607 	u8	queue_cfg_info;
2608 	#define QUEUE_QPORTCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG     0x1UL
2609 	u8	queue_pfcenable_cfg_allowed;
2610 	u8	queue_pri2cos_cfg_allowed;
2611 	u8	queue_cos2bw_cfg_allowed;
2612 	u8	queue_id0;
2613 	u8	queue_id0_service_profile;
2614 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY          0x0UL
2615 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
2616 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
2617 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
2618 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_UNKNOWN        0xffUL
2619 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_UNKNOWN
2620 	u8	queue_id1;
2621 	u8	queue_id1_service_profile;
2622 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSY          0x0UL
2623 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
2624 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
2625 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
2626 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_UNKNOWN        0xffUL
2627 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_UNKNOWN
2628 	u8	queue_id2;
2629 	u8	queue_id2_service_profile;
2630 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSY          0x0UL
2631 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
2632 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
2633 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
2634 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_UNKNOWN        0xffUL
2635 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_UNKNOWN
2636 	u8	queue_id3;
2637 	u8	queue_id3_service_profile;
2638 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSY          0x0UL
2639 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
2640 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
2641 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
2642 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_UNKNOWN        0xffUL
2643 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_UNKNOWN
2644 	u8	queue_id4;
2645 	u8	queue_id4_service_profile;
2646 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSY          0x0UL
2647 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
2648 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
2649 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
2650 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_UNKNOWN        0xffUL
2651 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_UNKNOWN
2652 	u8	queue_id5;
2653 	u8	queue_id5_service_profile;
2654 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSY          0x0UL
2655 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
2656 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
2657 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
2658 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_UNKNOWN        0xffUL
2659 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_UNKNOWN
2660 	u8	queue_id6;
2661 	u8	queue_id6_service_profile;
2662 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSY          0x0UL
2663 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
2664 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
2665 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
2666 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_UNKNOWN        0xffUL
2667 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_UNKNOWN
2668 	u8	queue_id7;
2669 	u8	queue_id7_service_profile;
2670 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSY          0x0UL
2671 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
2672 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
2673 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
2674 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_UNKNOWN        0xffUL
2675 	#define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_UNKNOWN
2676 	u8	valid;
2677 };
2678 
2679 /* hwrm_queue_cfg_input (size:320b/40B) */
2680 struct hwrm_queue_cfg_input {
2681 	__le16	req_type;
2682 	__le16	cmpl_ring;
2683 	__le16	seq_id;
2684 	__le16	target_id;
2685 	__le64	resp_addr;
2686 	__le32	flags;
2687 	#define QUEUE_CFG_REQ_FLAGS_PATH_MASK 0x3UL
2688 	#define QUEUE_CFG_REQ_FLAGS_PATH_SFT  0
2689 	#define QUEUE_CFG_REQ_FLAGS_PATH_TX     0x0UL
2690 	#define QUEUE_CFG_REQ_FLAGS_PATH_RX     0x1UL
2691 	#define QUEUE_CFG_REQ_FLAGS_PATH_BIDIR  0x2UL
2692 	#define QUEUE_CFG_REQ_FLAGS_PATH_LAST  QUEUE_CFG_REQ_FLAGS_PATH_BIDIR
2693 	__le32	enables;
2694 	#define QUEUE_CFG_REQ_ENABLES_DFLT_LEN            0x1UL
2695 	#define QUEUE_CFG_REQ_ENABLES_SERVICE_PROFILE     0x2UL
2696 	__le32	queue_id;
2697 	__le32	dflt_len;
2698 	u8	service_profile;
2699 	#define QUEUE_CFG_REQ_SERVICE_PROFILE_LOSSY    0x0UL
2700 	#define QUEUE_CFG_REQ_SERVICE_PROFILE_LOSSLESS 0x1UL
2701 	#define QUEUE_CFG_REQ_SERVICE_PROFILE_UNKNOWN  0xffUL
2702 	#define QUEUE_CFG_REQ_SERVICE_PROFILE_LAST    QUEUE_CFG_REQ_SERVICE_PROFILE_UNKNOWN
2703 	u8	unused_0[7];
2704 };
2705 
2706 /* hwrm_queue_cfg_output (size:128b/16B) */
2707 struct hwrm_queue_cfg_output {
2708 	__le16	error_code;
2709 	__le16	req_type;
2710 	__le16	seq_id;
2711 	__le16	resp_len;
2712 	u8	unused_0[7];
2713 	u8	valid;
2714 };
2715 
2716 /* hwrm_queue_pfcenable_qcfg_input (size:192b/24B) */
2717 struct hwrm_queue_pfcenable_qcfg_input {
2718 	__le16	req_type;
2719 	__le16	cmpl_ring;
2720 	__le16	seq_id;
2721 	__le16	target_id;
2722 	__le64	resp_addr;
2723 	__le16	port_id;
2724 	u8	unused_0[6];
2725 };
2726 
2727 /* hwrm_queue_pfcenable_qcfg_output (size:128b/16B) */
2728 struct hwrm_queue_pfcenable_qcfg_output {
2729 	__le16	error_code;
2730 	__le16	req_type;
2731 	__le16	seq_id;
2732 	__le16	resp_len;
2733 	__le32	flags;
2734 	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI0_PFC_ENABLED     0x1UL
2735 	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI1_PFC_ENABLED     0x2UL
2736 	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI2_PFC_ENABLED     0x4UL
2737 	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI3_PFC_ENABLED     0x8UL
2738 	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI4_PFC_ENABLED     0x10UL
2739 	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI5_PFC_ENABLED     0x20UL
2740 	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI6_PFC_ENABLED     0x40UL
2741 	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI7_PFC_ENABLED     0x80UL
2742 	u8	unused_0[3];
2743 	u8	valid;
2744 };
2745 
2746 /* hwrm_queue_pfcenable_cfg_input (size:192b/24B) */
2747 struct hwrm_queue_pfcenable_cfg_input {
2748 	__le16	req_type;
2749 	__le16	cmpl_ring;
2750 	__le16	seq_id;
2751 	__le16	target_id;
2752 	__le64	resp_addr;
2753 	__le32	flags;
2754 	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI0_PFC_ENABLED     0x1UL
2755 	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI1_PFC_ENABLED     0x2UL
2756 	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI2_PFC_ENABLED     0x4UL
2757 	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI3_PFC_ENABLED     0x8UL
2758 	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI4_PFC_ENABLED     0x10UL
2759 	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI5_PFC_ENABLED     0x20UL
2760 	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI6_PFC_ENABLED     0x40UL
2761 	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI7_PFC_ENABLED     0x80UL
2762 	__le16	port_id;
2763 	u8	unused_0[2];
2764 };
2765 
2766 /* hwrm_queue_pfcenable_cfg_output (size:128b/16B) */
2767 struct hwrm_queue_pfcenable_cfg_output {
2768 	__le16	error_code;
2769 	__le16	req_type;
2770 	__le16	seq_id;
2771 	__le16	resp_len;
2772 	u8	unused_0[7];
2773 	u8	valid;
2774 };
2775 
2776 /* hwrm_queue_pri2cos_qcfg_input (size:192b/24B) */
2777 struct hwrm_queue_pri2cos_qcfg_input {
2778 	__le16	req_type;
2779 	__le16	cmpl_ring;
2780 	__le16	seq_id;
2781 	__le16	target_id;
2782 	__le64	resp_addr;
2783 	__le32	flags;
2784 	#define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH      0x1UL
2785 	#define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_TX     0x0UL
2786 	#define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_RX     0x1UL
2787 	#define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_LAST  QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_RX
2788 	#define QUEUE_PRI2COS_QCFG_REQ_FLAGS_IVLAN     0x2UL
2789 	u8	port_id;
2790 	u8	unused_0[3];
2791 };
2792 
2793 /* hwrm_queue_pri2cos_qcfg_output (size:192b/24B) */
2794 struct hwrm_queue_pri2cos_qcfg_output {
2795 	__le16	error_code;
2796 	__le16	req_type;
2797 	__le16	seq_id;
2798 	__le16	resp_len;
2799 	u8	pri0_cos_queue_id;
2800 	u8	pri1_cos_queue_id;
2801 	u8	pri2_cos_queue_id;
2802 	u8	pri3_cos_queue_id;
2803 	u8	pri4_cos_queue_id;
2804 	u8	pri5_cos_queue_id;
2805 	u8	pri6_cos_queue_id;
2806 	u8	pri7_cos_queue_id;
2807 	u8	queue_cfg_info;
2808 	#define QUEUE_PRI2COS_QCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG     0x1UL
2809 	u8	unused_0[6];
2810 	u8	valid;
2811 };
2812 
2813 /* hwrm_queue_pri2cos_cfg_input (size:320b/40B) */
2814 struct hwrm_queue_pri2cos_cfg_input {
2815 	__le16	req_type;
2816 	__le16	cmpl_ring;
2817 	__le16	seq_id;
2818 	__le16	target_id;
2819 	__le64	resp_addr;
2820 	__le32	flags;
2821 	#define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_MASK 0x3UL
2822 	#define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_SFT  0
2823 	#define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_TX     0x0UL
2824 	#define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_RX     0x1UL
2825 	#define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_BIDIR  0x2UL
2826 	#define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_LAST  QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_BIDIR
2827 	#define QUEUE_PRI2COS_CFG_REQ_FLAGS_IVLAN     0x4UL
2828 	__le32	enables;
2829 	#define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI0_COS_QUEUE_ID     0x1UL
2830 	#define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI1_COS_QUEUE_ID     0x2UL
2831 	#define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI2_COS_QUEUE_ID     0x4UL
2832 	#define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI3_COS_QUEUE_ID     0x8UL
2833 	#define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI4_COS_QUEUE_ID     0x10UL
2834 	#define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI5_COS_QUEUE_ID     0x20UL
2835 	#define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI6_COS_QUEUE_ID     0x40UL
2836 	#define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI7_COS_QUEUE_ID     0x80UL
2837 	u8	port_id;
2838 	u8	pri0_cos_queue_id;
2839 	u8	pri1_cos_queue_id;
2840 	u8	pri2_cos_queue_id;
2841 	u8	pri3_cos_queue_id;
2842 	u8	pri4_cos_queue_id;
2843 	u8	pri5_cos_queue_id;
2844 	u8	pri6_cos_queue_id;
2845 	u8	pri7_cos_queue_id;
2846 	u8	unused_0[7];
2847 };
2848 
2849 /* hwrm_queue_pri2cos_cfg_output (size:128b/16B) */
2850 struct hwrm_queue_pri2cos_cfg_output {
2851 	__le16	error_code;
2852 	__le16	req_type;
2853 	__le16	seq_id;
2854 	__le16	resp_len;
2855 	u8	unused_0[7];
2856 	u8	valid;
2857 };
2858 
2859 /* hwrm_queue_cos2bw_qcfg_input (size:192b/24B) */
2860 struct hwrm_queue_cos2bw_qcfg_input {
2861 	__le16	req_type;
2862 	__le16	cmpl_ring;
2863 	__le16	seq_id;
2864 	__le16	target_id;
2865 	__le64	resp_addr;
2866 	__le16	port_id;
2867 	u8	unused_0[6];
2868 };
2869 
2870 /* hwrm_queue_cos2bw_qcfg_output (size:896b/112B) */
2871 struct hwrm_queue_cos2bw_qcfg_output {
2872 	__le16	error_code;
2873 	__le16	req_type;
2874 	__le16	seq_id;
2875 	__le16	resp_len;
2876 	u8	queue_id0;
2877 	u8	unused_0;
2878 	__le16	unused_1;
2879 	__le32	queue_id0_min_bw;
2880 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_MASK             0xfffffffUL
2881 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_SFT              0
2882 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE                     0x10000000UL
2883 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BITS                  (0x0UL << 28)
2884 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
2885 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BYTES
2886 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
2887 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_SFT         29
2888 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
2889 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
2890 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
2891 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
2892 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
2893 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
2894 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID
2895 	__le32	queue_id0_max_bw;
2896 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_MASK             0xfffffffUL
2897 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_SFT              0
2898 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE                     0x10000000UL
2899 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BITS                  (0x0UL << 28)
2900 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
2901 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BYTES
2902 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
2903 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_SFT         29
2904 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
2905 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
2906 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
2907 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
2908 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
2909 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
2910 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID
2911 	u8	queue_id0_tsa_assign;
2912 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_SP             0x0UL
2913 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_ETS            0x1UL
2914 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2915 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_RESERVED_LAST  0xffUL
2916 	u8	queue_id0_pri_lvl;
2917 	u8	queue_id0_bw_weight;
2918 	u8	queue_id1;
2919 	__le32	queue_id1_min_bw;
2920 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_MASK             0xfffffffUL
2921 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_SFT              0
2922 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE                     0x10000000UL
2923 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE_BITS                  (0x0UL << 28)
2924 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
2925 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE_BYTES
2926 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
2927 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_SFT         29
2928 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
2929 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
2930 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
2931 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
2932 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
2933 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
2934 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_INVALID
2935 	__le32	queue_id1_max_bw;
2936 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_MASK             0xfffffffUL
2937 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_SFT              0
2938 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE                     0x10000000UL
2939 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE_BITS                  (0x0UL << 28)
2940 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
2941 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE_BYTES
2942 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
2943 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_SFT         29
2944 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
2945 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
2946 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
2947 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
2948 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
2949 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
2950 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_INVALID
2951 	u8	queue_id1_tsa_assign;
2952 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_SP             0x0UL
2953 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_ETS            0x1UL
2954 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2955 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_RESERVED_LAST  0xffUL
2956 	u8	queue_id1_pri_lvl;
2957 	u8	queue_id1_bw_weight;
2958 	u8	queue_id2;
2959 	__le32	queue_id2_min_bw;
2960 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_MASK             0xfffffffUL
2961 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_SFT              0
2962 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE                     0x10000000UL
2963 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE_BITS                  (0x0UL << 28)
2964 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
2965 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE_BYTES
2966 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
2967 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_SFT         29
2968 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
2969 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
2970 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
2971 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
2972 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
2973 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
2974 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_INVALID
2975 	__le32	queue_id2_max_bw;
2976 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_MASK             0xfffffffUL
2977 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_SFT              0
2978 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE                     0x10000000UL
2979 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE_BITS                  (0x0UL << 28)
2980 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
2981 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE_BYTES
2982 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
2983 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_SFT         29
2984 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
2985 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
2986 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
2987 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
2988 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
2989 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
2990 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_INVALID
2991 	u8	queue_id2_tsa_assign;
2992 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_SP             0x0UL
2993 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_ETS            0x1UL
2994 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2995 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_RESERVED_LAST  0xffUL
2996 	u8	queue_id2_pri_lvl;
2997 	u8	queue_id2_bw_weight;
2998 	u8	queue_id3;
2999 	__le32	queue_id3_min_bw;
3000 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_MASK             0xfffffffUL
3001 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_SFT              0
3002 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE                     0x10000000UL
3003 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE_BITS                  (0x0UL << 28)
3004 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
3005 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE_BYTES
3006 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3007 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_SFT         29
3008 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3009 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3010 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3011 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3012 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3013 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3014 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_INVALID
3015 	__le32	queue_id3_max_bw;
3016 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3017 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_SFT              0
3018 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE                     0x10000000UL
3019 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE_BITS                  (0x0UL << 28)
3020 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
3021 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE_BYTES
3022 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3023 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_SFT         29
3024 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3025 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3026 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3027 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3028 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3029 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3030 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_INVALID
3031 	u8	queue_id3_tsa_assign;
3032 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_SP             0x0UL
3033 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_ETS            0x1UL
3034 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3035 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_RESERVED_LAST  0xffUL
3036 	u8	queue_id3_pri_lvl;
3037 	u8	queue_id3_bw_weight;
3038 	u8	queue_id4;
3039 	__le32	queue_id4_min_bw;
3040 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_MASK             0xfffffffUL
3041 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_SFT              0
3042 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE                     0x10000000UL
3043 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE_BITS                  (0x0UL << 28)
3044 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
3045 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE_BYTES
3046 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3047 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_SFT         29
3048 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3049 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3050 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3051 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3052 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3053 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3054 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_INVALID
3055 	__le32	queue_id4_max_bw;
3056 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3057 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_SFT              0
3058 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE                     0x10000000UL
3059 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE_BITS                  (0x0UL << 28)
3060 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
3061 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE_BYTES
3062 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3063 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_SFT         29
3064 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3065 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3066 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3067 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3068 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3069 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3070 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_INVALID
3071 	u8	queue_id4_tsa_assign;
3072 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_SP             0x0UL
3073 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_ETS            0x1UL
3074 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3075 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_RESERVED_LAST  0xffUL
3076 	u8	queue_id4_pri_lvl;
3077 	u8	queue_id4_bw_weight;
3078 	u8	queue_id5;
3079 	__le32	queue_id5_min_bw;
3080 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_MASK             0xfffffffUL
3081 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_SFT              0
3082 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE                     0x10000000UL
3083 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE_BITS                  (0x0UL << 28)
3084 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
3085 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE_BYTES
3086 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3087 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_SFT         29
3088 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3089 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3090 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3091 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3092 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3093 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3094 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_INVALID
3095 	__le32	queue_id5_max_bw;
3096 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3097 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_SFT              0
3098 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE                     0x10000000UL
3099 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE_BITS                  (0x0UL << 28)
3100 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
3101 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE_BYTES
3102 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3103 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_SFT         29
3104 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3105 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3106 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3107 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3108 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3109 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3110 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_INVALID
3111 	u8	queue_id5_tsa_assign;
3112 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_SP             0x0UL
3113 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_ETS            0x1UL
3114 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3115 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_RESERVED_LAST  0xffUL
3116 	u8	queue_id5_pri_lvl;
3117 	u8	queue_id5_bw_weight;
3118 	u8	queue_id6;
3119 	__le32	queue_id6_min_bw;
3120 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_MASK             0xfffffffUL
3121 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_SFT              0
3122 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE                     0x10000000UL
3123 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE_BITS                  (0x0UL << 28)
3124 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
3125 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE_BYTES
3126 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3127 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_SFT         29
3128 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3129 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3130 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3131 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3132 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3133 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3134 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_INVALID
3135 	__le32	queue_id6_max_bw;
3136 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3137 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_SFT              0
3138 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE                     0x10000000UL
3139 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE_BITS                  (0x0UL << 28)
3140 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
3141 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE_BYTES
3142 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3143 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_SFT         29
3144 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3145 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3146 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3147 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3148 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3149 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3150 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_INVALID
3151 	u8	queue_id6_tsa_assign;
3152 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_SP             0x0UL
3153 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_ETS            0x1UL
3154 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3155 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_RESERVED_LAST  0xffUL
3156 	u8	queue_id6_pri_lvl;
3157 	u8	queue_id6_bw_weight;
3158 	u8	queue_id7;
3159 	__le32	queue_id7_min_bw;
3160 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_MASK             0xfffffffUL
3161 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_SFT              0
3162 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE                     0x10000000UL
3163 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE_BITS                  (0x0UL << 28)
3164 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
3165 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE_BYTES
3166 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3167 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_SFT         29
3168 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3169 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3170 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3171 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3172 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3173 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3174 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_INVALID
3175 	__le32	queue_id7_max_bw;
3176 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3177 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_SFT              0
3178 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE                     0x10000000UL
3179 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE_BITS                  (0x0UL << 28)
3180 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
3181 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE_BYTES
3182 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3183 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_SFT         29
3184 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3185 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3186 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3187 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3188 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3189 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3190 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_INVALID
3191 	u8	queue_id7_tsa_assign;
3192 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_SP             0x0UL
3193 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_ETS            0x1UL
3194 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3195 	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_RESERVED_LAST  0xffUL
3196 	u8	queue_id7_pri_lvl;
3197 	u8	queue_id7_bw_weight;
3198 	u8	unused_2[4];
3199 	u8	valid;
3200 };
3201 
3202 /* hwrm_queue_cos2bw_cfg_input (size:1024b/128B) */
3203 struct hwrm_queue_cos2bw_cfg_input {
3204 	__le16	req_type;
3205 	__le16	cmpl_ring;
3206 	__le16	seq_id;
3207 	__le16	target_id;
3208 	__le64	resp_addr;
3209 	__le32	flags;
3210 	__le32	enables;
3211 	#define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID0_VALID     0x1UL
3212 	#define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID1_VALID     0x2UL
3213 	#define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID2_VALID     0x4UL
3214 	#define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID3_VALID     0x8UL
3215 	#define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID4_VALID     0x10UL
3216 	#define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID5_VALID     0x20UL
3217 	#define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID6_VALID     0x40UL
3218 	#define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID7_VALID     0x80UL
3219 	__le16	port_id;
3220 	u8	queue_id0;
3221 	u8	unused_0;
3222 	__le32	queue_id0_min_bw;
3223 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_MASK             0xfffffffUL
3224 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_SFT              0
3225 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE                     0x10000000UL
3226 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BITS                  (0x0UL << 28)
3227 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
3228 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BYTES
3229 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3230 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_SFT         29
3231 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3232 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3233 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3234 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3235 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3236 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3237 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID
3238 	__le32	queue_id0_max_bw;
3239 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3240 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_SFT              0
3241 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE                     0x10000000UL
3242 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BITS                  (0x0UL << 28)
3243 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
3244 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BYTES
3245 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3246 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_SFT         29
3247 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3248 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3249 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3250 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3251 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3252 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3253 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID
3254 	u8	queue_id0_tsa_assign;
3255 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_SP             0x0UL
3256 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_ETS            0x1UL
3257 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3258 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_RESERVED_LAST  0xffUL
3259 	u8	queue_id0_pri_lvl;
3260 	u8	queue_id0_bw_weight;
3261 	u8	queue_id1;
3262 	__le32	queue_id1_min_bw;
3263 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_MASK             0xfffffffUL
3264 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_SFT              0
3265 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE                     0x10000000UL
3266 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE_BITS                  (0x0UL << 28)
3267 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
3268 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE_BYTES
3269 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3270 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_SFT         29
3271 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3272 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3273 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3274 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3275 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3276 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3277 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_INVALID
3278 	__le32	queue_id1_max_bw;
3279 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3280 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_SFT              0
3281 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE                     0x10000000UL
3282 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE_BITS                  (0x0UL << 28)
3283 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
3284 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE_BYTES
3285 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3286 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_SFT         29
3287 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3288 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3289 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3290 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3291 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3292 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3293 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_INVALID
3294 	u8	queue_id1_tsa_assign;
3295 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_SP             0x0UL
3296 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_ETS            0x1UL
3297 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3298 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_RESERVED_LAST  0xffUL
3299 	u8	queue_id1_pri_lvl;
3300 	u8	queue_id1_bw_weight;
3301 	u8	queue_id2;
3302 	__le32	queue_id2_min_bw;
3303 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_MASK             0xfffffffUL
3304 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_SFT              0
3305 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE                     0x10000000UL
3306 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE_BITS                  (0x0UL << 28)
3307 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
3308 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE_BYTES
3309 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3310 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_SFT         29
3311 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3312 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3313 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3314 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3315 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3316 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3317 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_INVALID
3318 	__le32	queue_id2_max_bw;
3319 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3320 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_SFT              0
3321 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE                     0x10000000UL
3322 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE_BITS                  (0x0UL << 28)
3323 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
3324 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE_BYTES
3325 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3326 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_SFT         29
3327 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3328 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3329 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3330 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3331 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3332 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3333 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_INVALID
3334 	u8	queue_id2_tsa_assign;
3335 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_SP             0x0UL
3336 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_ETS            0x1UL
3337 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3338 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_RESERVED_LAST  0xffUL
3339 	u8	queue_id2_pri_lvl;
3340 	u8	queue_id2_bw_weight;
3341 	u8	queue_id3;
3342 	__le32	queue_id3_min_bw;
3343 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_MASK             0xfffffffUL
3344 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_SFT              0
3345 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE                     0x10000000UL
3346 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE_BITS                  (0x0UL << 28)
3347 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
3348 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE_BYTES
3349 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3350 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_SFT         29
3351 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3352 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3353 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3354 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3355 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3356 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3357 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_INVALID
3358 	__le32	queue_id3_max_bw;
3359 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3360 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_SFT              0
3361 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE                     0x10000000UL
3362 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE_BITS                  (0x0UL << 28)
3363 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
3364 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE_BYTES
3365 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3366 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_SFT         29
3367 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3368 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3369 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3370 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3371 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3372 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3373 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_INVALID
3374 	u8	queue_id3_tsa_assign;
3375 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_SP             0x0UL
3376 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_ETS            0x1UL
3377 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3378 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_RESERVED_LAST  0xffUL
3379 	u8	queue_id3_pri_lvl;
3380 	u8	queue_id3_bw_weight;
3381 	u8	queue_id4;
3382 	__le32	queue_id4_min_bw;
3383 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_MASK             0xfffffffUL
3384 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_SFT              0
3385 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE                     0x10000000UL
3386 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE_BITS                  (0x0UL << 28)
3387 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
3388 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE_BYTES
3389 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3390 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_SFT         29
3391 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3392 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3393 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3394 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3395 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3396 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3397 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_INVALID
3398 	__le32	queue_id4_max_bw;
3399 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3400 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_SFT              0
3401 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE                     0x10000000UL
3402 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE_BITS                  (0x0UL << 28)
3403 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
3404 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE_BYTES
3405 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3406 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_SFT         29
3407 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3408 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3409 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3410 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3411 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3412 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3413 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_INVALID
3414 	u8	queue_id4_tsa_assign;
3415 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_SP             0x0UL
3416 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_ETS            0x1UL
3417 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3418 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_RESERVED_LAST  0xffUL
3419 	u8	queue_id4_pri_lvl;
3420 	u8	queue_id4_bw_weight;
3421 	u8	queue_id5;
3422 	__le32	queue_id5_min_bw;
3423 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_MASK             0xfffffffUL
3424 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_SFT              0
3425 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE                     0x10000000UL
3426 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE_BITS                  (0x0UL << 28)
3427 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
3428 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE_BYTES
3429 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3430 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_SFT         29
3431 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3432 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3433 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3434 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3435 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3436 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3437 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_INVALID
3438 	__le32	queue_id5_max_bw;
3439 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3440 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_SFT              0
3441 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE                     0x10000000UL
3442 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE_BITS                  (0x0UL << 28)
3443 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
3444 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE_BYTES
3445 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3446 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_SFT         29
3447 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3448 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3449 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3450 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3451 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3452 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3453 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_INVALID
3454 	u8	queue_id5_tsa_assign;
3455 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_SP             0x0UL
3456 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_ETS            0x1UL
3457 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3458 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_RESERVED_LAST  0xffUL
3459 	u8	queue_id5_pri_lvl;
3460 	u8	queue_id5_bw_weight;
3461 	u8	queue_id6;
3462 	__le32	queue_id6_min_bw;
3463 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_MASK             0xfffffffUL
3464 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_SFT              0
3465 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE                     0x10000000UL
3466 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE_BITS                  (0x0UL << 28)
3467 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
3468 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE_BYTES
3469 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3470 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_SFT         29
3471 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3472 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3473 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3474 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3475 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3476 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3477 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_INVALID
3478 	__le32	queue_id6_max_bw;
3479 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3480 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_SFT              0
3481 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE                     0x10000000UL
3482 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE_BITS                  (0x0UL << 28)
3483 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
3484 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE_BYTES
3485 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3486 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_SFT         29
3487 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3488 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3489 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3490 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3491 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3492 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3493 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_INVALID
3494 	u8	queue_id6_tsa_assign;
3495 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_SP             0x0UL
3496 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_ETS            0x1UL
3497 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3498 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_RESERVED_LAST  0xffUL
3499 	u8	queue_id6_pri_lvl;
3500 	u8	queue_id6_bw_weight;
3501 	u8	queue_id7;
3502 	__le32	queue_id7_min_bw;
3503 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_MASK             0xfffffffUL
3504 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_SFT              0
3505 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE                     0x10000000UL
3506 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE_BITS                  (0x0UL << 28)
3507 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
3508 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE_BYTES
3509 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3510 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_SFT         29
3511 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3512 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3513 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3514 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3515 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3516 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3517 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_INVALID
3518 	__le32	queue_id7_max_bw;
3519 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3520 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_SFT              0
3521 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE                     0x10000000UL
3522 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE_BITS                  (0x0UL << 28)
3523 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
3524 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE_BYTES
3525 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3526 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_SFT         29
3527 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3528 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3529 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3530 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3531 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3532 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3533 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_INVALID
3534 	u8	queue_id7_tsa_assign;
3535 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_SP             0x0UL
3536 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_ETS            0x1UL
3537 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3538 	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_RESERVED_LAST  0xffUL
3539 	u8	queue_id7_pri_lvl;
3540 	u8	queue_id7_bw_weight;
3541 	u8	unused_1[5];
3542 };
3543 
3544 /* hwrm_queue_cos2bw_cfg_output (size:128b/16B) */
3545 struct hwrm_queue_cos2bw_cfg_output {
3546 	__le16	error_code;
3547 	__le16	req_type;
3548 	__le16	seq_id;
3549 	__le16	resp_len;
3550 	u8	unused_0[7];
3551 	u8	valid;
3552 };
3553 
3554 /* hwrm_queue_dscp_qcaps_input (size:192b/24B) */
3555 struct hwrm_queue_dscp_qcaps_input {
3556 	__le16	req_type;
3557 	__le16	cmpl_ring;
3558 	__le16	seq_id;
3559 	__le16	target_id;
3560 	__le64	resp_addr;
3561 	u8	port_id;
3562 	u8	unused_0[7];
3563 };
3564 
3565 /* hwrm_queue_dscp_qcaps_output (size:128b/16B) */
3566 struct hwrm_queue_dscp_qcaps_output {
3567 	__le16	error_code;
3568 	__le16	req_type;
3569 	__le16	seq_id;
3570 	__le16	resp_len;
3571 	u8	num_dscp_bits;
3572 	u8	unused_0;
3573 	__le16	max_entries;
3574 	u8	unused_1[3];
3575 	u8	valid;
3576 };
3577 
3578 /* hwrm_queue_dscp2pri_qcfg_input (size:256b/32B) */
3579 struct hwrm_queue_dscp2pri_qcfg_input {
3580 	__le16	req_type;
3581 	__le16	cmpl_ring;
3582 	__le16	seq_id;
3583 	__le16	target_id;
3584 	__le64	resp_addr;
3585 	__le64	dest_data_addr;
3586 	u8	port_id;
3587 	u8	unused_0;
3588 	__le16	dest_data_buffer_size;
3589 	u8	unused_1[4];
3590 };
3591 
3592 /* hwrm_queue_dscp2pri_qcfg_output (size:128b/16B) */
3593 struct hwrm_queue_dscp2pri_qcfg_output {
3594 	__le16	error_code;
3595 	__le16	req_type;
3596 	__le16	seq_id;
3597 	__le16	resp_len;
3598 	__le16	entry_cnt;
3599 	u8	default_pri;
3600 	u8	unused_0[4];
3601 	u8	valid;
3602 };
3603 
3604 /* hwrm_queue_dscp2pri_cfg_input (size:320b/40B) */
3605 struct hwrm_queue_dscp2pri_cfg_input {
3606 	__le16	req_type;
3607 	__le16	cmpl_ring;
3608 	__le16	seq_id;
3609 	__le16	target_id;
3610 	__le64	resp_addr;
3611 	__le64	src_data_addr;
3612 	__le32	flags;
3613 	#define QUEUE_DSCP2PRI_CFG_REQ_FLAGS_USE_HW_DEFAULT_PRI     0x1UL
3614 	__le32	enables;
3615 	#define QUEUE_DSCP2PRI_CFG_REQ_ENABLES_DEFAULT_PRI     0x1UL
3616 	u8	port_id;
3617 	u8	default_pri;
3618 	__le16	entry_cnt;
3619 	u8	unused_0[4];
3620 };
3621 
3622 /* hwrm_queue_dscp2pri_cfg_output (size:128b/16B) */
3623 struct hwrm_queue_dscp2pri_cfg_output {
3624 	__le16	error_code;
3625 	__le16	req_type;
3626 	__le16	seq_id;
3627 	__le16	resp_len;
3628 	u8	unused_0[7];
3629 	u8	valid;
3630 };
3631 
3632 /* hwrm_vnic_alloc_input (size:192b/24B) */
3633 struct hwrm_vnic_alloc_input {
3634 	__le16	req_type;
3635 	__le16	cmpl_ring;
3636 	__le16	seq_id;
3637 	__le16	target_id;
3638 	__le64	resp_addr;
3639 	__le32	flags;
3640 	#define VNIC_ALLOC_REQ_FLAGS_DEFAULT     0x1UL
3641 	u8	unused_0[4];
3642 };
3643 
3644 /* hwrm_vnic_alloc_output (size:128b/16B) */
3645 struct hwrm_vnic_alloc_output {
3646 	__le16	error_code;
3647 	__le16	req_type;
3648 	__le16	seq_id;
3649 	__le16	resp_len;
3650 	__le32	vnic_id;
3651 	u8	unused_0[3];
3652 	u8	valid;
3653 };
3654 
3655 /* hwrm_vnic_free_input (size:192b/24B) */
3656 struct hwrm_vnic_free_input {
3657 	__le16	req_type;
3658 	__le16	cmpl_ring;
3659 	__le16	seq_id;
3660 	__le16	target_id;
3661 	__le64	resp_addr;
3662 	__le32	vnic_id;
3663 	u8	unused_0[4];
3664 };
3665 
3666 /* hwrm_vnic_free_output (size:128b/16B) */
3667 struct hwrm_vnic_free_output {
3668 	__le16	error_code;
3669 	__le16	req_type;
3670 	__le16	seq_id;
3671 	__le16	resp_len;
3672 	u8	unused_0[7];
3673 	u8	valid;
3674 };
3675 
3676 /* hwrm_vnic_cfg_input (size:320b/40B) */
3677 struct hwrm_vnic_cfg_input {
3678 	__le16	req_type;
3679 	__le16	cmpl_ring;
3680 	__le16	seq_id;
3681 	__le16	target_id;
3682 	__le64	resp_addr;
3683 	__le32	flags;
3684 	#define VNIC_CFG_REQ_FLAGS_DEFAULT                              0x1UL
3685 	#define VNIC_CFG_REQ_FLAGS_VLAN_STRIP_MODE                      0x2UL
3686 	#define VNIC_CFG_REQ_FLAGS_BD_STALL_MODE                        0x4UL
3687 	#define VNIC_CFG_REQ_FLAGS_ROCE_DUAL_VNIC_MODE                  0x8UL
3688 	#define VNIC_CFG_REQ_FLAGS_ROCE_ONLY_VNIC_MODE                  0x10UL
3689 	#define VNIC_CFG_REQ_FLAGS_RSS_DFLT_CR_MODE                     0x20UL
3690 	#define VNIC_CFG_REQ_FLAGS_ROCE_MIRRORING_CAPABLE_VNIC_MODE     0x40UL
3691 	__le32	enables;
3692 	#define VNIC_CFG_REQ_ENABLES_DFLT_RING_GRP     0x1UL
3693 	#define VNIC_CFG_REQ_ENABLES_RSS_RULE          0x2UL
3694 	#define VNIC_CFG_REQ_ENABLES_COS_RULE          0x4UL
3695 	#define VNIC_CFG_REQ_ENABLES_LB_RULE           0x8UL
3696 	#define VNIC_CFG_REQ_ENABLES_MRU               0x10UL
3697 	__le16	vnic_id;
3698 	__le16	dflt_ring_grp;
3699 	__le16	rss_rule;
3700 	__le16	cos_rule;
3701 	__le16	lb_rule;
3702 	__le16	mru;
3703 	u8	unused_0[4];
3704 };
3705 
3706 /* hwrm_vnic_cfg_output (size:128b/16B) */
3707 struct hwrm_vnic_cfg_output {
3708 	__le16	error_code;
3709 	__le16	req_type;
3710 	__le16	seq_id;
3711 	__le16	resp_len;
3712 	u8	unused_0[7];
3713 	u8	valid;
3714 };
3715 
3716 /* hwrm_vnic_qcaps_input (size:192b/24B) */
3717 struct hwrm_vnic_qcaps_input {
3718 	__le16	req_type;
3719 	__le16	cmpl_ring;
3720 	__le16	seq_id;
3721 	__le16	target_id;
3722 	__le64	resp_addr;
3723 	__le32	enables;
3724 	u8	unused_0[4];
3725 };
3726 
3727 /* hwrm_vnic_qcaps_output (size:192b/24B) */
3728 struct hwrm_vnic_qcaps_output {
3729 	__le16	error_code;
3730 	__le16	req_type;
3731 	__le16	seq_id;
3732 	__le16	resp_len;
3733 	__le16	mru;
3734 	u8	unused_0[2];
3735 	__le32	flags;
3736 	#define VNIC_QCAPS_RESP_FLAGS_UNUSED                              0x1UL
3737 	#define VNIC_QCAPS_RESP_FLAGS_VLAN_STRIP_CAP                      0x2UL
3738 	#define VNIC_QCAPS_RESP_FLAGS_BD_STALL_CAP                        0x4UL
3739 	#define VNIC_QCAPS_RESP_FLAGS_ROCE_DUAL_VNIC_CAP                  0x8UL
3740 	#define VNIC_QCAPS_RESP_FLAGS_ROCE_ONLY_VNIC_CAP                  0x10UL
3741 	#define VNIC_QCAPS_RESP_FLAGS_RSS_DFLT_CR_CAP                     0x20UL
3742 	#define VNIC_QCAPS_RESP_FLAGS_ROCE_MIRRORING_CAPABLE_VNIC_CAP     0x40UL
3743 	u8	unused_1[7];
3744 	u8	valid;
3745 };
3746 
3747 /* hwrm_vnic_tpa_cfg_input (size:320b/40B) */
3748 struct hwrm_vnic_tpa_cfg_input {
3749 	__le16	req_type;
3750 	__le16	cmpl_ring;
3751 	__le16	seq_id;
3752 	__le16	target_id;
3753 	__le64	resp_addr;
3754 	__le32	flags;
3755 	#define VNIC_TPA_CFG_REQ_FLAGS_TPA                       0x1UL
3756 	#define VNIC_TPA_CFG_REQ_FLAGS_ENCAP_TPA                 0x2UL
3757 	#define VNIC_TPA_CFG_REQ_FLAGS_RSC_WND_UPDATE            0x4UL
3758 	#define VNIC_TPA_CFG_REQ_FLAGS_GRO                       0x8UL
3759 	#define VNIC_TPA_CFG_REQ_FLAGS_AGG_WITH_ECN              0x10UL
3760 	#define VNIC_TPA_CFG_REQ_FLAGS_AGG_WITH_SAME_GRE_SEQ     0x20UL
3761 	#define VNIC_TPA_CFG_REQ_FLAGS_GRO_IPID_CHECK            0x40UL
3762 	#define VNIC_TPA_CFG_REQ_FLAGS_GRO_TTL_CHECK             0x80UL
3763 	__le32	enables;
3764 	#define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGG_SEGS      0x1UL
3765 	#define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGGS          0x2UL
3766 	#define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGG_TIMER     0x4UL
3767 	#define VNIC_TPA_CFG_REQ_ENABLES_MIN_AGG_LEN       0x8UL
3768 	__le16	vnic_id;
3769 	__le16	max_agg_segs;
3770 	#define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_1   0x0UL
3771 	#define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_2   0x1UL
3772 	#define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_4   0x2UL
3773 	#define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_8   0x3UL
3774 	#define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_MAX 0x1fUL
3775 	#define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_LAST VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_MAX
3776 	__le16	max_aggs;
3777 	#define VNIC_TPA_CFG_REQ_MAX_AGGS_1   0x0UL
3778 	#define VNIC_TPA_CFG_REQ_MAX_AGGS_2   0x1UL
3779 	#define VNIC_TPA_CFG_REQ_MAX_AGGS_4   0x2UL
3780 	#define VNIC_TPA_CFG_REQ_MAX_AGGS_8   0x3UL
3781 	#define VNIC_TPA_CFG_REQ_MAX_AGGS_16  0x4UL
3782 	#define VNIC_TPA_CFG_REQ_MAX_AGGS_MAX 0x7UL
3783 	#define VNIC_TPA_CFG_REQ_MAX_AGGS_LAST VNIC_TPA_CFG_REQ_MAX_AGGS_MAX
3784 	u8	unused_0[2];
3785 	__le32	max_agg_timer;
3786 	__le32	min_agg_len;
3787 };
3788 
3789 /* hwrm_vnic_tpa_cfg_output (size:128b/16B) */
3790 struct hwrm_vnic_tpa_cfg_output {
3791 	__le16	error_code;
3792 	__le16	req_type;
3793 	__le16	seq_id;
3794 	__le16	resp_len;
3795 	u8	unused_0[7];
3796 	u8	valid;
3797 };
3798 
3799 /* hwrm_vnic_tpa_qcfg_input (size:192b/24B) */
3800 struct hwrm_vnic_tpa_qcfg_input {
3801 	__le16	req_type;
3802 	__le16	cmpl_ring;
3803 	__le16	seq_id;
3804 	__le16	target_id;
3805 	__le64	resp_addr;
3806 	__le16	vnic_id;
3807 	u8	unused_0[6];
3808 };
3809 
3810 /* hwrm_vnic_tpa_qcfg_output (size:256b/32B) */
3811 struct hwrm_vnic_tpa_qcfg_output {
3812 	__le16	error_code;
3813 	__le16	req_type;
3814 	__le16	seq_id;
3815 	__le16	resp_len;
3816 	__le32	flags;
3817 	#define VNIC_TPA_QCFG_RESP_FLAGS_TPA                       0x1UL
3818 	#define VNIC_TPA_QCFG_RESP_FLAGS_ENCAP_TPA                 0x2UL
3819 	#define VNIC_TPA_QCFG_RESP_FLAGS_RSC_WND_UPDATE            0x4UL
3820 	#define VNIC_TPA_QCFG_RESP_FLAGS_GRO                       0x8UL
3821 	#define VNIC_TPA_QCFG_RESP_FLAGS_AGG_WITH_ECN              0x10UL
3822 	#define VNIC_TPA_QCFG_RESP_FLAGS_AGG_WITH_SAME_GRE_SEQ     0x20UL
3823 	#define VNIC_TPA_QCFG_RESP_FLAGS_GRO_IPID_CHECK            0x40UL
3824 	#define VNIC_TPA_QCFG_RESP_FLAGS_GRO_TTL_CHECK             0x80UL
3825 	__le16	max_agg_segs;
3826 	#define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_1   0x0UL
3827 	#define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_2   0x1UL
3828 	#define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_4   0x2UL
3829 	#define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_8   0x3UL
3830 	#define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_MAX 0x1fUL
3831 	#define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_LAST VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_MAX
3832 	__le16	max_aggs;
3833 	#define VNIC_TPA_QCFG_RESP_MAX_AGGS_1   0x0UL
3834 	#define VNIC_TPA_QCFG_RESP_MAX_AGGS_2   0x1UL
3835 	#define VNIC_TPA_QCFG_RESP_MAX_AGGS_4   0x2UL
3836 	#define VNIC_TPA_QCFG_RESP_MAX_AGGS_8   0x3UL
3837 	#define VNIC_TPA_QCFG_RESP_MAX_AGGS_16  0x4UL
3838 	#define VNIC_TPA_QCFG_RESP_MAX_AGGS_MAX 0x7UL
3839 	#define VNIC_TPA_QCFG_RESP_MAX_AGGS_LAST VNIC_TPA_QCFG_RESP_MAX_AGGS_MAX
3840 	__le32	max_agg_timer;
3841 	__le32	min_agg_len;
3842 	u8	unused_0[7];
3843 	u8	valid;
3844 };
3845 
3846 /* hwrm_vnic_rss_cfg_input (size:384b/48B) */
3847 struct hwrm_vnic_rss_cfg_input {
3848 	__le16	req_type;
3849 	__le16	cmpl_ring;
3850 	__le16	seq_id;
3851 	__le16	target_id;
3852 	__le64	resp_addr;
3853 	__le32	hash_type;
3854 	#define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV4         0x1UL
3855 	#define VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV4     0x2UL
3856 	#define VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV4     0x4UL
3857 	#define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV6         0x8UL
3858 	#define VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV6     0x10UL
3859 	#define VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV6     0x20UL
3860 	u8	unused_0[4];
3861 	__le64	ring_grp_tbl_addr;
3862 	__le64	hash_key_tbl_addr;
3863 	__le16	rss_ctx_idx;
3864 	u8	unused_1[6];
3865 };
3866 
3867 /* hwrm_vnic_rss_cfg_output (size:128b/16B) */
3868 struct hwrm_vnic_rss_cfg_output {
3869 	__le16	error_code;
3870 	__le16	req_type;
3871 	__le16	seq_id;
3872 	__le16	resp_len;
3873 	u8	unused_0[7];
3874 	u8	valid;
3875 };
3876 
3877 /* hwrm_vnic_plcmodes_cfg_input (size:320b/40B) */
3878 struct hwrm_vnic_plcmodes_cfg_input {
3879 	__le16	req_type;
3880 	__le16	cmpl_ring;
3881 	__le16	seq_id;
3882 	__le16	target_id;
3883 	__le64	resp_addr;
3884 	__le32	flags;
3885 	#define VNIC_PLCMODES_CFG_REQ_FLAGS_REGULAR_PLACEMENT     0x1UL
3886 	#define VNIC_PLCMODES_CFG_REQ_FLAGS_JUMBO_PLACEMENT       0x2UL
3887 	#define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV4              0x4UL
3888 	#define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV6              0x8UL
3889 	#define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_FCOE              0x10UL
3890 	#define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_ROCE              0x20UL
3891 	__le32	enables;
3892 	#define VNIC_PLCMODES_CFG_REQ_ENABLES_JUMBO_THRESH_VALID      0x1UL
3893 	#define VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_OFFSET_VALID        0x2UL
3894 	#define VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_THRESHOLD_VALID     0x4UL
3895 	__le32	vnic_id;
3896 	__le16	jumbo_thresh;
3897 	__le16	hds_offset;
3898 	__le16	hds_threshold;
3899 	u8	unused_0[6];
3900 };
3901 
3902 /* hwrm_vnic_plcmodes_cfg_output (size:128b/16B) */
3903 struct hwrm_vnic_plcmodes_cfg_output {
3904 	__le16	error_code;
3905 	__le16	req_type;
3906 	__le16	seq_id;
3907 	__le16	resp_len;
3908 	u8	unused_0[7];
3909 	u8	valid;
3910 };
3911 
3912 /* hwrm_vnic_rss_cos_lb_ctx_alloc_input (size:128b/16B) */
3913 struct hwrm_vnic_rss_cos_lb_ctx_alloc_input {
3914 	__le16	req_type;
3915 	__le16	cmpl_ring;
3916 	__le16	seq_id;
3917 	__le16	target_id;
3918 	__le64	resp_addr;
3919 };
3920 
3921 /* hwrm_vnic_rss_cos_lb_ctx_alloc_output (size:128b/16B) */
3922 struct hwrm_vnic_rss_cos_lb_ctx_alloc_output {
3923 	__le16	error_code;
3924 	__le16	req_type;
3925 	__le16	seq_id;
3926 	__le16	resp_len;
3927 	__le16	rss_cos_lb_ctx_id;
3928 	u8	unused_0[5];
3929 	u8	valid;
3930 };
3931 
3932 /* hwrm_vnic_rss_cos_lb_ctx_free_input (size:192b/24B) */
3933 struct hwrm_vnic_rss_cos_lb_ctx_free_input {
3934 	__le16	req_type;
3935 	__le16	cmpl_ring;
3936 	__le16	seq_id;
3937 	__le16	target_id;
3938 	__le64	resp_addr;
3939 	__le16	rss_cos_lb_ctx_id;
3940 	u8	unused_0[6];
3941 };
3942 
3943 /* hwrm_vnic_rss_cos_lb_ctx_free_output (size:128b/16B) */
3944 struct hwrm_vnic_rss_cos_lb_ctx_free_output {
3945 	__le16	error_code;
3946 	__le16	req_type;
3947 	__le16	seq_id;
3948 	__le16	resp_len;
3949 	u8	unused_0[7];
3950 	u8	valid;
3951 };
3952 
3953 /* hwrm_ring_alloc_input (size:640b/80B) */
3954 struct hwrm_ring_alloc_input {
3955 	__le16	req_type;
3956 	__le16	cmpl_ring;
3957 	__le16	seq_id;
3958 	__le16	target_id;
3959 	__le64	resp_addr;
3960 	__le32	enables;
3961 	#define RING_ALLOC_REQ_ENABLES_RING_ARB_CFG          0x2UL
3962 	#define RING_ALLOC_REQ_ENABLES_STAT_CTX_ID_VALID     0x8UL
3963 	#define RING_ALLOC_REQ_ENABLES_MAX_BW_VALID          0x20UL
3964 	u8	ring_type;
3965 	#define RING_ALLOC_REQ_RING_TYPE_L2_CMPL   0x0UL
3966 	#define RING_ALLOC_REQ_RING_TYPE_TX        0x1UL
3967 	#define RING_ALLOC_REQ_RING_TYPE_RX        0x2UL
3968 	#define RING_ALLOC_REQ_RING_TYPE_ROCE_CMPL 0x3UL
3969 	#define RING_ALLOC_REQ_RING_TYPE_LAST     RING_ALLOC_REQ_RING_TYPE_ROCE_CMPL
3970 	u8	unused_0[3];
3971 	__le64	page_tbl_addr;
3972 	__le32	fbo;
3973 	u8	page_size;
3974 	u8	page_tbl_depth;
3975 	u8	unused_1[2];
3976 	__le32	length;
3977 	__le16	logical_id;
3978 	__le16	cmpl_ring_id;
3979 	__le16	queue_id;
3980 	u8	unused_2[2];
3981 	__le32	reserved1;
3982 	__le16	ring_arb_cfg;
3983 	#define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_MASK      0xfUL
3984 	#define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_SFT       0
3985 	#define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_SP          0x1UL
3986 	#define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_WFQ         0x2UL
3987 	#define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_LAST       RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_WFQ
3988 	#define RING_ALLOC_REQ_RING_ARB_CFG_RSVD_MASK            0xf0UL
3989 	#define RING_ALLOC_REQ_RING_ARB_CFG_RSVD_SFT             4
3990 	#define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_PARAM_MASK 0xff00UL
3991 	#define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_PARAM_SFT 8
3992 	__le16	unused_3;
3993 	__le32	reserved3;
3994 	__le32	stat_ctx_id;
3995 	__le32	reserved4;
3996 	__le32	max_bw;
3997 	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3998 	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_SFT              0
3999 	#define RING_ALLOC_REQ_MAX_BW_SCALE                     0x10000000UL
4000 	#define RING_ALLOC_REQ_MAX_BW_SCALE_BITS                  (0x0UL << 28)
4001 	#define RING_ALLOC_REQ_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
4002 	#define RING_ALLOC_REQ_MAX_BW_SCALE_LAST                 RING_ALLOC_REQ_MAX_BW_SCALE_BYTES
4003 	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4004 	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_SFT         29
4005 	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4006 	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4007 	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4008 	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4009 	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4010 	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4011 	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_LAST         RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_INVALID
4012 	u8	int_mode;
4013 	#define RING_ALLOC_REQ_INT_MODE_LEGACY 0x0UL
4014 	#define RING_ALLOC_REQ_INT_MODE_RSVD   0x1UL
4015 	#define RING_ALLOC_REQ_INT_MODE_MSIX   0x2UL
4016 	#define RING_ALLOC_REQ_INT_MODE_POLL   0x3UL
4017 	#define RING_ALLOC_REQ_INT_MODE_LAST  RING_ALLOC_REQ_INT_MODE_POLL
4018 	u8	unused_4[3];
4019 };
4020 
4021 /* hwrm_ring_alloc_output (size:128b/16B) */
4022 struct hwrm_ring_alloc_output {
4023 	__le16	error_code;
4024 	__le16	req_type;
4025 	__le16	seq_id;
4026 	__le16	resp_len;
4027 	__le16	ring_id;
4028 	__le16	logical_ring_id;
4029 	u8	unused_0[3];
4030 	u8	valid;
4031 };
4032 
4033 /* hwrm_ring_free_input (size:192b/24B) */
4034 struct hwrm_ring_free_input {
4035 	__le16	req_type;
4036 	__le16	cmpl_ring;
4037 	__le16	seq_id;
4038 	__le16	target_id;
4039 	__le64	resp_addr;
4040 	u8	ring_type;
4041 	#define RING_FREE_REQ_RING_TYPE_L2_CMPL   0x0UL
4042 	#define RING_FREE_REQ_RING_TYPE_TX        0x1UL
4043 	#define RING_FREE_REQ_RING_TYPE_RX        0x2UL
4044 	#define RING_FREE_REQ_RING_TYPE_ROCE_CMPL 0x3UL
4045 	#define RING_FREE_REQ_RING_TYPE_LAST     RING_FREE_REQ_RING_TYPE_ROCE_CMPL
4046 	u8	unused_0;
4047 	__le16	ring_id;
4048 	u8	unused_1[4];
4049 };
4050 
4051 /* hwrm_ring_free_output (size:128b/16B) */
4052 struct hwrm_ring_free_output {
4053 	__le16	error_code;
4054 	__le16	req_type;
4055 	__le16	seq_id;
4056 	__le16	resp_len;
4057 	u8	unused_0[7];
4058 	u8	valid;
4059 };
4060 
4061 /* hwrm_ring_cmpl_ring_qaggint_params_input (size:192b/24B) */
4062 struct hwrm_ring_cmpl_ring_qaggint_params_input {
4063 	__le16	req_type;
4064 	__le16	cmpl_ring;
4065 	__le16	seq_id;
4066 	__le16	target_id;
4067 	__le64	resp_addr;
4068 	__le16	ring_id;
4069 	u8	unused_0[6];
4070 };
4071 
4072 /* hwrm_ring_cmpl_ring_qaggint_params_output (size:256b/32B) */
4073 struct hwrm_ring_cmpl_ring_qaggint_params_output {
4074 	__le16	error_code;
4075 	__le16	req_type;
4076 	__le16	seq_id;
4077 	__le16	resp_len;
4078 	__le16	flags;
4079 	#define RING_CMPL_RING_QAGGINT_PARAMS_RESP_FLAGS_TIMER_RESET     0x1UL
4080 	#define RING_CMPL_RING_QAGGINT_PARAMS_RESP_FLAGS_RING_IDLE       0x2UL
4081 	__le16	num_cmpl_dma_aggr;
4082 	__le16	num_cmpl_dma_aggr_during_int;
4083 	__le16	cmpl_aggr_dma_tmr;
4084 	__le16	cmpl_aggr_dma_tmr_during_int;
4085 	__le16	int_lat_tmr_min;
4086 	__le16	int_lat_tmr_max;
4087 	__le16	num_cmpl_aggr_int;
4088 	u8	unused_0[7];
4089 	u8	valid;
4090 };
4091 
4092 /* hwrm_ring_cmpl_ring_cfg_aggint_params_input (size:320b/40B) */
4093 struct hwrm_ring_cmpl_ring_cfg_aggint_params_input {
4094 	__le16	req_type;
4095 	__le16	cmpl_ring;
4096 	__le16	seq_id;
4097 	__le16	target_id;
4098 	__le64	resp_addr;
4099 	__le16	ring_id;
4100 	__le16	flags;
4101 	#define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_TIMER_RESET     0x1UL
4102 	#define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_RING_IDLE       0x2UL
4103 	__le16	num_cmpl_dma_aggr;
4104 	__le16	num_cmpl_dma_aggr_during_int;
4105 	__le16	cmpl_aggr_dma_tmr;
4106 	__le16	cmpl_aggr_dma_tmr_during_int;
4107 	__le16	int_lat_tmr_min;
4108 	__le16	int_lat_tmr_max;
4109 	__le16	num_cmpl_aggr_int;
4110 	u8	unused_0[6];
4111 };
4112 
4113 /* hwrm_ring_cmpl_ring_cfg_aggint_params_output (size:128b/16B) */
4114 struct hwrm_ring_cmpl_ring_cfg_aggint_params_output {
4115 	__le16	error_code;
4116 	__le16	req_type;
4117 	__le16	seq_id;
4118 	__le16	resp_len;
4119 	u8	unused_0[7];
4120 	u8	valid;
4121 };
4122 
4123 /* hwrm_ring_reset_input (size:192b/24B) */
4124 struct hwrm_ring_reset_input {
4125 	__le16	req_type;
4126 	__le16	cmpl_ring;
4127 	__le16	seq_id;
4128 	__le16	target_id;
4129 	__le64	resp_addr;
4130 	u8	ring_type;
4131 	#define RING_RESET_REQ_RING_TYPE_L2_CMPL   0x0UL
4132 	#define RING_RESET_REQ_RING_TYPE_TX        0x1UL
4133 	#define RING_RESET_REQ_RING_TYPE_RX        0x2UL
4134 	#define RING_RESET_REQ_RING_TYPE_ROCE_CMPL 0x3UL
4135 	#define RING_RESET_REQ_RING_TYPE_LAST     RING_RESET_REQ_RING_TYPE_ROCE_CMPL
4136 	u8	unused_0;
4137 	__le16	ring_id;
4138 	u8	unused_1[4];
4139 };
4140 
4141 /* hwrm_ring_reset_output (size:128b/16B) */
4142 struct hwrm_ring_reset_output {
4143 	__le16	error_code;
4144 	__le16	req_type;
4145 	__le16	seq_id;
4146 	__le16	resp_len;
4147 	u8	unused_0[7];
4148 	u8	valid;
4149 };
4150 
4151 /* hwrm_ring_grp_alloc_input (size:192b/24B) */
4152 struct hwrm_ring_grp_alloc_input {
4153 	__le16	req_type;
4154 	__le16	cmpl_ring;
4155 	__le16	seq_id;
4156 	__le16	target_id;
4157 	__le64	resp_addr;
4158 	__le16	cr;
4159 	__le16	rr;
4160 	__le16	ar;
4161 	__le16	sc;
4162 };
4163 
4164 /* hwrm_ring_grp_alloc_output (size:128b/16B) */
4165 struct hwrm_ring_grp_alloc_output {
4166 	__le16	error_code;
4167 	__le16	req_type;
4168 	__le16	seq_id;
4169 	__le16	resp_len;
4170 	__le32	ring_group_id;
4171 	u8	unused_0[3];
4172 	u8	valid;
4173 };
4174 
4175 /* hwrm_ring_grp_free_input (size:192b/24B) */
4176 struct hwrm_ring_grp_free_input {
4177 	__le16	req_type;
4178 	__le16	cmpl_ring;
4179 	__le16	seq_id;
4180 	__le16	target_id;
4181 	__le64	resp_addr;
4182 	__le32	ring_group_id;
4183 	u8	unused_0[4];
4184 };
4185 
4186 /* hwrm_ring_grp_free_output (size:128b/16B) */
4187 struct hwrm_ring_grp_free_output {
4188 	__le16	error_code;
4189 	__le16	req_type;
4190 	__le16	seq_id;
4191 	__le16	resp_len;
4192 	u8	unused_0[7];
4193 	u8	valid;
4194 };
4195 
4196 /* hwrm_cfa_l2_filter_alloc_input (size:768b/96B) */
4197 struct hwrm_cfa_l2_filter_alloc_input {
4198 	__le16	req_type;
4199 	__le16	cmpl_ring;
4200 	__le16	seq_id;
4201 	__le16	target_id;
4202 	__le64	resp_addr;
4203 	__le32	flags;
4204 	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH          0x1UL
4205 	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_TX         0x0UL
4206 	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_RX         0x1UL
4207 	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_LAST      CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_RX
4208 	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_LOOPBACK      0x2UL
4209 	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_DROP          0x4UL
4210 	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_OUTERMOST     0x8UL
4211 	__le32	enables;
4212 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_ADDR             0x1UL
4213 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_ADDR_MASK        0x2UL
4214 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_OVLAN            0x4UL
4215 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_OVLAN_MASK       0x8UL
4216 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN            0x10UL
4217 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN_MASK       0x20UL
4218 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_ADDR           0x40UL
4219 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_ADDR_MASK      0x80UL
4220 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_OVLAN          0x100UL
4221 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_OVLAN_MASK     0x200UL
4222 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_IVLAN          0x400UL
4223 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_IVLAN_MASK     0x800UL
4224 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_SRC_TYPE            0x1000UL
4225 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_SRC_ID              0x2000UL
4226 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE         0x4000UL
4227 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_DST_ID              0x8000UL
4228 	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID      0x10000UL
4229 	u8	l2_addr[6];
4230 	u8	unused_0[2];
4231 	u8	l2_addr_mask[6];
4232 	__le16	l2_ovlan;
4233 	__le16	l2_ovlan_mask;
4234 	__le16	l2_ivlan;
4235 	__le16	l2_ivlan_mask;
4236 	u8	unused_1[2];
4237 	u8	t_l2_addr[6];
4238 	u8	unused_2[2];
4239 	u8	t_l2_addr_mask[6];
4240 	__le16	t_l2_ovlan;
4241 	__le16	t_l2_ovlan_mask;
4242 	__le16	t_l2_ivlan;
4243 	__le16	t_l2_ivlan_mask;
4244 	u8	src_type;
4245 	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_NPORT 0x0UL
4246 	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_PF    0x1UL
4247 	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_VF    0x2UL
4248 	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_VNIC  0x3UL
4249 	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_KONG  0x4UL
4250 	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_APE   0x5UL
4251 	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_BONO  0x6UL
4252 	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_TANG  0x7UL
4253 	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_LAST CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_TANG
4254 	u8	unused_3;
4255 	__le32	src_id;
4256 	u8	tunnel_type;
4257 	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL
4258 	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN     0x1UL
4259 	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE     0x2UL
4260 	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE     0x3UL
4261 	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP      0x4UL
4262 	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE    0x5UL
4263 	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS      0x6UL
4264 	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT       0x7UL
4265 	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE     0x8UL
4266 	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4  0x9UL
4267 	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL
4268 	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST     CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
4269 	u8	unused_4;
4270 	__le16	dst_id;
4271 	__le16	mirror_vnic_id;
4272 	u8	pri_hint;
4273 	#define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_NO_PREFER    0x0UL
4274 	#define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_ABOVE_FILTER 0x1UL
4275 	#define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_BELOW_FILTER 0x2UL
4276 	#define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MAX          0x3UL
4277 	#define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MIN          0x4UL
4278 	#define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_LAST        CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MIN
4279 	u8	unused_5;
4280 	__le32	unused_6;
4281 	__le64	l2_filter_id_hint;
4282 };
4283 
4284 /* hwrm_cfa_l2_filter_alloc_output (size:192b/24B) */
4285 struct hwrm_cfa_l2_filter_alloc_output {
4286 	__le16	error_code;
4287 	__le16	req_type;
4288 	__le16	seq_id;
4289 	__le16	resp_len;
4290 	__le64	l2_filter_id;
4291 	__le32	flow_id;
4292 	u8	unused_0[3];
4293 	u8	valid;
4294 };
4295 
4296 /* hwrm_cfa_l2_filter_free_input (size:192b/24B) */
4297 struct hwrm_cfa_l2_filter_free_input {
4298 	__le16	req_type;
4299 	__le16	cmpl_ring;
4300 	__le16	seq_id;
4301 	__le16	target_id;
4302 	__le64	resp_addr;
4303 	__le64	l2_filter_id;
4304 };
4305 
4306 /* hwrm_cfa_l2_filter_free_output (size:128b/16B) */
4307 struct hwrm_cfa_l2_filter_free_output {
4308 	__le16	error_code;
4309 	__le16	req_type;
4310 	__le16	seq_id;
4311 	__le16	resp_len;
4312 	u8	unused_0[7];
4313 	u8	valid;
4314 };
4315 
4316 /* hwrm_cfa_l2_filter_cfg_input (size:320b/40B) */
4317 struct hwrm_cfa_l2_filter_cfg_input {
4318 	__le16	req_type;
4319 	__le16	cmpl_ring;
4320 	__le16	seq_id;
4321 	__le16	target_id;
4322 	__le64	resp_addr;
4323 	__le32	flags;
4324 	#define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH     0x1UL
4325 	#define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_TX    0x0UL
4326 	#define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_RX    0x1UL
4327 	#define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_LAST CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_RX
4328 	#define CFA_L2_FILTER_CFG_REQ_FLAGS_DROP     0x2UL
4329 	__le32	enables;
4330 	#define CFA_L2_FILTER_CFG_REQ_ENABLES_DST_ID                 0x1UL
4331 	#define CFA_L2_FILTER_CFG_REQ_ENABLES_NEW_MIRROR_VNIC_ID     0x2UL
4332 	__le64	l2_filter_id;
4333 	__le32	dst_id;
4334 	__le32	new_mirror_vnic_id;
4335 };
4336 
4337 /* hwrm_cfa_l2_filter_cfg_output (size:128b/16B) */
4338 struct hwrm_cfa_l2_filter_cfg_output {
4339 	__le16	error_code;
4340 	__le16	req_type;
4341 	__le16	seq_id;
4342 	__le16	resp_len;
4343 	u8	unused_0[7];
4344 	u8	valid;
4345 };
4346 
4347 /* hwrm_cfa_l2_set_rx_mask_input (size:448b/56B) */
4348 struct hwrm_cfa_l2_set_rx_mask_input {
4349 	__le16	req_type;
4350 	__le16	cmpl_ring;
4351 	__le16	seq_id;
4352 	__le16	target_id;
4353 	__le64	resp_addr;
4354 	__le32	vnic_id;
4355 	__le32	mask;
4356 	#define CFA_L2_SET_RX_MASK_REQ_MASK_MCAST               0x2UL
4357 	#define CFA_L2_SET_RX_MASK_REQ_MASK_ALL_MCAST           0x4UL
4358 	#define CFA_L2_SET_RX_MASK_REQ_MASK_BCAST               0x8UL
4359 	#define CFA_L2_SET_RX_MASK_REQ_MASK_PROMISCUOUS         0x10UL
4360 	#define CFA_L2_SET_RX_MASK_REQ_MASK_OUTERMOST           0x20UL
4361 	#define CFA_L2_SET_RX_MASK_REQ_MASK_VLANONLY            0x40UL
4362 	#define CFA_L2_SET_RX_MASK_REQ_MASK_VLAN_NONVLAN        0x80UL
4363 	#define CFA_L2_SET_RX_MASK_REQ_MASK_ANYVLAN_NONVLAN     0x100UL
4364 	__le64	mc_tbl_addr;
4365 	__le32	num_mc_entries;
4366 	u8	unused_0[4];
4367 	__le64	vlan_tag_tbl_addr;
4368 	__le32	num_vlan_tags;
4369 	u8	unused_1[4];
4370 };
4371 
4372 /* hwrm_cfa_l2_set_rx_mask_output (size:128b/16B) */
4373 struct hwrm_cfa_l2_set_rx_mask_output {
4374 	__le16	error_code;
4375 	__le16	req_type;
4376 	__le16	seq_id;
4377 	__le16	resp_len;
4378 	u8	unused_0[7];
4379 	u8	valid;
4380 };
4381 
4382 /* hwrm_cfa_l2_set_rx_mask_cmd_err (size:64b/8B) */
4383 struct hwrm_cfa_l2_set_rx_mask_cmd_err {
4384 	u8	code;
4385 	#define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_UNKNOWN                    0x0UL
4386 	#define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_NTUPLE_FILTER_CONFLICT_ERR 0x1UL
4387 	#define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_LAST                      CFA_L2_SET_RX_MASK_CMD_ERR_CODE_NTUPLE_FILTER_CONFLICT_ERR
4388 	u8	unused_0[7];
4389 };
4390 
4391 /* hwrm_cfa_tunnel_filter_alloc_input (size:704b/88B) */
4392 struct hwrm_cfa_tunnel_filter_alloc_input {
4393 	__le16	req_type;
4394 	__le16	cmpl_ring;
4395 	__le16	seq_id;
4396 	__le16	target_id;
4397 	__le64	resp_addr;
4398 	__le32	flags;
4399 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_FLAGS_LOOPBACK     0x1UL
4400 	__le32	enables;
4401 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_FILTER_ID       0x1UL
4402 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_ADDR            0x2UL
4403 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN           0x4UL
4404 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L3_ADDR            0x8UL
4405 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L3_ADDR_TYPE       0x10UL
4406 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_T_L3_ADDR_TYPE     0x20UL
4407 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_T_L3_ADDR          0x40UL
4408 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE        0x80UL
4409 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_VNI                0x100UL
4410 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_DST_VNIC_ID        0x200UL
4411 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID     0x400UL
4412 	__le64	l2_filter_id;
4413 	u8	l2_addr[6];
4414 	__le16	l2_ivlan;
4415 	__le32	l3_addr[4];
4416 	__le32	t_l3_addr[4];
4417 	u8	l3_addr_type;
4418 	u8	t_l3_addr_type;
4419 	u8	tunnel_type;
4420 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL
4421 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN     0x1UL
4422 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE     0x2UL
4423 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE     0x3UL
4424 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP      0x4UL
4425 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE    0x5UL
4426 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS      0x6UL
4427 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT       0x7UL
4428 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE     0x8UL
4429 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4  0x9UL
4430 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL
4431 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST     CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
4432 	u8	tunnel_flags;
4433 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_OAM_CHECKSUM_EXPLHDR     0x1UL
4434 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_CRITICAL_OPT_S1          0x2UL
4435 	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_EXTHDR_SEQNUM_S0         0x4UL
4436 	__le32	vni;
4437 	__le32	dst_vnic_id;
4438 	__le32	mirror_vnic_id;
4439 };
4440 
4441 /* hwrm_cfa_tunnel_filter_alloc_output (size:192b/24B) */
4442 struct hwrm_cfa_tunnel_filter_alloc_output {
4443 	__le16	error_code;
4444 	__le16	req_type;
4445 	__le16	seq_id;
4446 	__le16	resp_len;
4447 	__le64	tunnel_filter_id;
4448 	__le32	flow_id;
4449 	u8	unused_0[3];
4450 	u8	valid;
4451 };
4452 
4453 /* hwrm_cfa_tunnel_filter_free_input (size:192b/24B) */
4454 struct hwrm_cfa_tunnel_filter_free_input {
4455 	__le16	req_type;
4456 	__le16	cmpl_ring;
4457 	__le16	seq_id;
4458 	__le16	target_id;
4459 	__le64	resp_addr;
4460 	__le64	tunnel_filter_id;
4461 };
4462 
4463 /* hwrm_cfa_tunnel_filter_free_output (size:128b/16B) */
4464 struct hwrm_cfa_tunnel_filter_free_output {
4465 	__le16	error_code;
4466 	__le16	req_type;
4467 	__le16	seq_id;
4468 	__le16	resp_len;
4469 	u8	unused_0[7];
4470 	u8	valid;
4471 };
4472 
4473 /* hwrm_vxlan_ipv4_hdr (size:128b/16B) */
4474 struct hwrm_vxlan_ipv4_hdr {
4475 	u8	ver_hlen;
4476 	#define VXLAN_IPV4_HDR_VER_HLEN_HEADER_LENGTH_MASK 0xfUL
4477 	#define VXLAN_IPV4_HDR_VER_HLEN_HEADER_LENGTH_SFT 0
4478 	#define VXLAN_IPV4_HDR_VER_HLEN_VERSION_MASK      0xf0UL
4479 	#define VXLAN_IPV4_HDR_VER_HLEN_VERSION_SFT       4
4480 	u8	tos;
4481 	__be16	ip_id;
4482 	__be16	flags_frag_offset;
4483 	u8	ttl;
4484 	u8	protocol;
4485 	__be32	src_ip_addr;
4486 	__be32	dest_ip_addr;
4487 };
4488 
4489 /* hwrm_vxlan_ipv6_hdr (size:320b/40B) */
4490 struct hwrm_vxlan_ipv6_hdr {
4491 	__be32	ver_tc_flow_label;
4492 	#define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_VER_SFT         0x1cUL
4493 	#define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_VER_MASK        0xf0000000UL
4494 	#define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_TC_SFT          0x14UL
4495 	#define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_TC_MASK         0xff00000UL
4496 	#define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_SFT  0x0UL
4497 	#define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_MASK 0xfffffUL
4498 	#define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_LAST           VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_MASK
4499 	__be16	payload_len;
4500 	u8	next_hdr;
4501 	u8	ttl;
4502 	__be32	src_ip_addr[4];
4503 	__be32	dest_ip_addr[4];
4504 };
4505 
4506 /* hwrm_cfa_encap_data_vxlan (size:576b/72B) */
4507 struct hwrm_cfa_encap_data_vxlan {
4508 	u8	src_mac_addr[6];
4509 	__le16	unused_0;
4510 	u8	dst_mac_addr[6];
4511 	u8	num_vlan_tags;
4512 	u8	unused_1;
4513 	__be16	ovlan_tpid;
4514 	__be16	ovlan_tci;
4515 	__be16	ivlan_tpid;
4516 	__be16	ivlan_tci;
4517 	__le32	l3[10];
4518 	#define CFA_ENCAP_DATA_VXLAN_L3_VER_MASK 0xfUL
4519 	#define CFA_ENCAP_DATA_VXLAN_L3_VER_IPV4 0x4UL
4520 	#define CFA_ENCAP_DATA_VXLAN_L3_VER_IPV6 0x6UL
4521 	#define CFA_ENCAP_DATA_VXLAN_L3_LAST    CFA_ENCAP_DATA_VXLAN_L3_VER_IPV6
4522 	__be16	src_port;
4523 	__be16	dst_port;
4524 	__be32	vni;
4525 };
4526 
4527 /* hwrm_cfa_encap_record_alloc_input (size:832b/104B) */
4528 struct hwrm_cfa_encap_record_alloc_input {
4529 	__le16	req_type;
4530 	__le16	cmpl_ring;
4531 	__le16	seq_id;
4532 	__le16	target_id;
4533 	__le64	resp_addr;
4534 	__le32	flags;
4535 	#define CFA_ENCAP_RECORD_ALLOC_REQ_FLAGS_LOOPBACK     0x1UL
4536 	u8	encap_type;
4537 	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN  0x1UL
4538 	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_NVGRE  0x2UL
4539 	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_L2GRE  0x3UL
4540 	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPIP   0x4UL
4541 	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_GENEVE 0x5UL
4542 	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_MPLS   0x6UL
4543 	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VLAN   0x7UL
4544 	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPGRE  0x8UL
4545 	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_LAST  CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPGRE
4546 	u8	unused_0[3];
4547 	__le32	encap_data[20];
4548 };
4549 
4550 /* hwrm_cfa_encap_record_alloc_output (size:128b/16B) */
4551 struct hwrm_cfa_encap_record_alloc_output {
4552 	__le16	error_code;
4553 	__le16	req_type;
4554 	__le16	seq_id;
4555 	__le16	resp_len;
4556 	__le32	encap_record_id;
4557 	u8	unused_0[3];
4558 	u8	valid;
4559 };
4560 
4561 /* hwrm_cfa_encap_record_free_input (size:192b/24B) */
4562 struct hwrm_cfa_encap_record_free_input {
4563 	__le16	req_type;
4564 	__le16	cmpl_ring;
4565 	__le16	seq_id;
4566 	__le16	target_id;
4567 	__le64	resp_addr;
4568 	__le32	encap_record_id;
4569 	u8	unused_0[4];
4570 };
4571 
4572 /* hwrm_cfa_encap_record_free_output (size:128b/16B) */
4573 struct hwrm_cfa_encap_record_free_output {
4574 	__le16	error_code;
4575 	__le16	req_type;
4576 	__le16	seq_id;
4577 	__le16	resp_len;
4578 	u8	unused_0[7];
4579 	u8	valid;
4580 };
4581 
4582 /* hwrm_cfa_ntuple_filter_alloc_input (size:1024b/128B) */
4583 struct hwrm_cfa_ntuple_filter_alloc_input {
4584 	__le16	req_type;
4585 	__le16	cmpl_ring;
4586 	__le16	seq_id;
4587 	__le16	target_id;
4588 	__le64	resp_addr;
4589 	__le32	flags;
4590 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_LOOPBACK     0x1UL
4591 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DROP         0x2UL
4592 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_METER        0x4UL
4593 	__le32	enables;
4594 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_L2_FILTER_ID         0x1UL
4595 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_ETHERTYPE            0x2UL
4596 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE          0x4UL
4597 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_MACADDR          0x8UL
4598 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_IPADDR_TYPE          0x10UL
4599 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR           0x20UL
4600 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR_MASK      0x40UL
4601 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR           0x80UL
4602 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR_MASK      0x100UL
4603 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_IP_PROTOCOL          0x200UL
4604 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_PORT             0x400UL
4605 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_PORT_MASK        0x800UL
4606 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_PORT             0x1000UL
4607 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_PORT_MASK        0x2000UL
4608 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_PRI_HINT             0x4000UL
4609 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_NTUPLE_FILTER_ID     0x8000UL
4610 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_ID               0x10000UL
4611 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID       0x20000UL
4612 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_MACADDR          0x40000UL
4613 	__le64	l2_filter_id;
4614 	u8	src_macaddr[6];
4615 	__be16	ethertype;
4616 	u8	ip_addr_type;
4617 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_UNKNOWN 0x0UL
4618 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV4    0x4UL
4619 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6    0x6UL
4620 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_LAST   CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6
4621 	u8	ip_protocol;
4622 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UNKNOWN 0x0UL
4623 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_TCP     0x6UL
4624 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP     0x11UL
4625 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_LAST   CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP
4626 	__le16	dst_id;
4627 	__le16	mirror_vnic_id;
4628 	u8	tunnel_type;
4629 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL
4630 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN     0x1UL
4631 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE     0x2UL
4632 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE     0x3UL
4633 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP      0x4UL
4634 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE    0x5UL
4635 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS      0x6UL
4636 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT       0x7UL
4637 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE     0x8UL
4638 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4  0x9UL
4639 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL
4640 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST     CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
4641 	u8	pri_hint;
4642 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_NO_PREFER 0x0UL
4643 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_ABOVE     0x1UL
4644 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_BELOW     0x2UL
4645 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_HIGHEST   0x3UL
4646 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LOWEST    0x4UL
4647 	#define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LAST     CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LOWEST
4648 	__be32	src_ipaddr[4];
4649 	__be32	src_ipaddr_mask[4];
4650 	__be32	dst_ipaddr[4];
4651 	__be32	dst_ipaddr_mask[4];
4652 	__be16	src_port;
4653 	__be16	src_port_mask;
4654 	__be16	dst_port;
4655 	__be16	dst_port_mask;
4656 	__le64	ntuple_filter_id_hint;
4657 };
4658 
4659 /* hwrm_cfa_ntuple_filter_alloc_output (size:192b/24B) */
4660 struct hwrm_cfa_ntuple_filter_alloc_output {
4661 	__le16	error_code;
4662 	__le16	req_type;
4663 	__le16	seq_id;
4664 	__le16	resp_len;
4665 	__le64	ntuple_filter_id;
4666 	__le32	flow_id;
4667 	u8	unused_0[3];
4668 	u8	valid;
4669 };
4670 
4671 /* hwrm_cfa_ntuple_filter_alloc_cmd_err (size:64b/8B) */
4672 struct hwrm_cfa_ntuple_filter_alloc_cmd_err {
4673 	u8	code;
4674 	#define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_UNKNOWN                   0x0UL
4675 	#define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_RX_MASK_VLAN_CONFLICT_ERR 0x1UL
4676 	#define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_LAST                     CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_RX_MASK_VLAN_CONFLICT_ERR
4677 	u8	unused_0[7];
4678 };
4679 
4680 /* hwrm_cfa_ntuple_filter_free_input (size:192b/24B) */
4681 struct hwrm_cfa_ntuple_filter_free_input {
4682 	__le16	req_type;
4683 	__le16	cmpl_ring;
4684 	__le16	seq_id;
4685 	__le16	target_id;
4686 	__le64	resp_addr;
4687 	__le64	ntuple_filter_id;
4688 };
4689 
4690 /* hwrm_cfa_ntuple_filter_free_output (size:128b/16B) */
4691 struct hwrm_cfa_ntuple_filter_free_output {
4692 	__le16	error_code;
4693 	__le16	req_type;
4694 	__le16	seq_id;
4695 	__le16	resp_len;
4696 	u8	unused_0[7];
4697 	u8	valid;
4698 };
4699 
4700 /* hwrm_cfa_ntuple_filter_cfg_input (size:384b/48B) */
4701 struct hwrm_cfa_ntuple_filter_cfg_input {
4702 	__le16	req_type;
4703 	__le16	cmpl_ring;
4704 	__le16	seq_id;
4705 	__le16	target_id;
4706 	__le64	resp_addr;
4707 	__le32	enables;
4708 	#define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_DST_ID                0x1UL
4709 	#define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_MIRROR_VNIC_ID        0x2UL
4710 	#define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_METER_INSTANCE_ID     0x4UL
4711 	u8	unused_0[4];
4712 	__le64	ntuple_filter_id;
4713 	__le32	new_dst_id;
4714 	__le32	new_mirror_vnic_id;
4715 	__le16	new_meter_instance_id;
4716 	#define CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_INVALID 0xffffUL
4717 	#define CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_LAST   CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_INVALID
4718 	u8	unused_1[6];
4719 };
4720 
4721 /* hwrm_cfa_ntuple_filter_cfg_output (size:128b/16B) */
4722 struct hwrm_cfa_ntuple_filter_cfg_output {
4723 	__le16	error_code;
4724 	__le16	req_type;
4725 	__le16	seq_id;
4726 	__le16	resp_len;
4727 	u8	unused_0[7];
4728 	u8	valid;
4729 };
4730 
4731 /* hwrm_cfa_decap_filter_alloc_input (size:832b/104B) */
4732 struct hwrm_cfa_decap_filter_alloc_input {
4733 	__le16	req_type;
4734 	__le16	cmpl_ring;
4735 	__le16	seq_id;
4736 	__le16	target_id;
4737 	__le64	resp_addr;
4738 	__le32	flags;
4739 	#define CFA_DECAP_FILTER_ALLOC_REQ_FLAGS_OVS_TUNNEL     0x1UL
4740 	__le32	enables;
4741 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE        0x1UL
4742 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_TUNNEL_ID          0x2UL
4743 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_MACADDR        0x4UL
4744 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_MACADDR        0x8UL
4745 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_OVLAN_VID          0x10UL
4746 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IVLAN_VID          0x20UL
4747 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_T_OVLAN_VID        0x40UL
4748 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_T_IVLAN_VID        0x80UL
4749 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_ETHERTYPE          0x100UL
4750 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR         0x200UL
4751 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR         0x400UL
4752 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IPADDR_TYPE        0x800UL
4753 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IP_PROTOCOL        0x1000UL
4754 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_PORT           0x2000UL
4755 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_PORT           0x4000UL
4756 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_ID             0x8000UL
4757 	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID     0x10000UL
4758 	__be32	tunnel_id;
4759 	u8	tunnel_type;
4760 	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL
4761 	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN     0x1UL
4762 	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE     0x2UL
4763 	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE     0x3UL
4764 	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP      0x4UL
4765 	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE    0x5UL
4766 	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS      0x6UL
4767 	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT       0x7UL
4768 	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE     0x8UL
4769 	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4  0x9UL
4770 	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL
4771 	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST     CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
4772 	u8	unused_0;
4773 	__le16	unused_1;
4774 	u8	src_macaddr[6];
4775 	u8	unused_2[2];
4776 	u8	dst_macaddr[6];
4777 	__be16	ovlan_vid;
4778 	__be16	ivlan_vid;
4779 	__be16	t_ovlan_vid;
4780 	__be16	t_ivlan_vid;
4781 	__be16	ethertype;
4782 	u8	ip_addr_type;
4783 	#define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_UNKNOWN 0x0UL
4784 	#define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV4    0x4UL
4785 	#define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6    0x6UL
4786 	#define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_LAST   CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6
4787 	u8	ip_protocol;
4788 	#define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UNKNOWN 0x0UL
4789 	#define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_TCP     0x6UL
4790 	#define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP     0x11UL
4791 	#define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_LAST   CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP
4792 	__le16	unused_3;
4793 	__le32	unused_4;
4794 	__be32	src_ipaddr[4];
4795 	__be32	dst_ipaddr[4];
4796 	__be16	src_port;
4797 	__be16	dst_port;
4798 	__le16	dst_id;
4799 	__le16	l2_ctxt_ref_id;
4800 };
4801 
4802 /* hwrm_cfa_decap_filter_alloc_output (size:128b/16B) */
4803 struct hwrm_cfa_decap_filter_alloc_output {
4804 	__le16	error_code;
4805 	__le16	req_type;
4806 	__le16	seq_id;
4807 	__le16	resp_len;
4808 	__le32	decap_filter_id;
4809 	u8	unused_0[3];
4810 	u8	valid;
4811 };
4812 
4813 /* hwrm_cfa_decap_filter_free_input (size:192b/24B) */
4814 struct hwrm_cfa_decap_filter_free_input {
4815 	__le16	req_type;
4816 	__le16	cmpl_ring;
4817 	__le16	seq_id;
4818 	__le16	target_id;
4819 	__le64	resp_addr;
4820 	__le32	decap_filter_id;
4821 	u8	unused_0[4];
4822 };
4823 
4824 /* hwrm_cfa_decap_filter_free_output (size:128b/16B) */
4825 struct hwrm_cfa_decap_filter_free_output {
4826 	__le16	error_code;
4827 	__le16	req_type;
4828 	__le16	seq_id;
4829 	__le16	resp_len;
4830 	u8	unused_0[7];
4831 	u8	valid;
4832 };
4833 
4834 /* hwrm_cfa_flow_alloc_input (size:1024b/128B) */
4835 struct hwrm_cfa_flow_alloc_input {
4836 	__le16	req_type;
4837 	__le16	cmpl_ring;
4838 	__le16	seq_id;
4839 	__le16	target_id;
4840 	__le64	resp_addr;
4841 	__le16	flags;
4842 	#define CFA_FLOW_ALLOC_REQ_FLAGS_TUNNEL       0x1UL
4843 	#define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_MASK 0x6UL
4844 	#define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_SFT 1
4845 	#define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_NONE  (0x0UL << 1)
4846 	#define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_ONE   (0x1UL << 1)
4847 	#define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_TWO   (0x2UL << 1)
4848 	#define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_LAST CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_TWO
4849 	#define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_MASK 0x38UL
4850 	#define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_SFT 3
4851 	#define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_L2    (0x0UL << 3)
4852 	#define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV4  (0x1UL << 3)
4853 	#define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV6  (0x2UL << 3)
4854 	#define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_LAST CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV6
4855 	__le16	src_fid;
4856 	__le32	tunnel_handle;
4857 	__le16	action_flags;
4858 	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_FWD                   0x1UL
4859 	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_RECYCLE               0x2UL
4860 	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_DROP                  0x4UL
4861 	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_METER                 0x8UL
4862 	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TUNNEL                0x10UL
4863 	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_SRC               0x20UL
4864 	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_DEST              0x40UL
4865 	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_IPV4_ADDRESS      0x80UL
4866 	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_L2_HEADER_REWRITE     0x100UL
4867 	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TTL_DECREMENT         0x200UL
4868 	__le16	dst_fid;
4869 	__be16	l2_rewrite_vlan_tpid;
4870 	__be16	l2_rewrite_vlan_tci;
4871 	__le16	act_meter_id;
4872 	__le16	ref_flow_handle;
4873 	__be16	ethertype;
4874 	__be16	outer_vlan_tci;
4875 	__be16	dmac[3];
4876 	__be16	inner_vlan_tci;
4877 	__be16	smac[3];
4878 	u8	ip_dst_mask_len;
4879 	u8	ip_src_mask_len;
4880 	__be32	ip_dst[4];
4881 	__be32	ip_src[4];
4882 	__be16	l4_src_port;
4883 	__be16	l4_src_port_mask;
4884 	__be16	l4_dst_port;
4885 	__be16	l4_dst_port_mask;
4886 	__be32	nat_ip_address[4];
4887 	__be16	l2_rewrite_dmac[3];
4888 	__be16	nat_port;
4889 	__be16	l2_rewrite_smac[3];
4890 	u8	ip_proto;
4891 	u8	unused_0;
4892 };
4893 
4894 /* hwrm_cfa_flow_alloc_output (size:128b/16B) */
4895 struct hwrm_cfa_flow_alloc_output {
4896 	__le16	error_code;
4897 	__le16	req_type;
4898 	__le16	seq_id;
4899 	__le16	resp_len;
4900 	__le16	flow_handle;
4901 	u8	unused_0[5];
4902 	u8	valid;
4903 };
4904 
4905 /* hwrm_cfa_flow_free_input (size:192b/24B) */
4906 struct hwrm_cfa_flow_free_input {
4907 	__le16	req_type;
4908 	__le16	cmpl_ring;
4909 	__le16	seq_id;
4910 	__le16	target_id;
4911 	__le64	resp_addr;
4912 	__le16	flow_handle;
4913 	u8	unused_0[6];
4914 };
4915 
4916 /* hwrm_cfa_flow_free_output (size:256b/32B) */
4917 struct hwrm_cfa_flow_free_output {
4918 	__le16	error_code;
4919 	__le16	req_type;
4920 	__le16	seq_id;
4921 	__le16	resp_len;
4922 	__le64	packet;
4923 	__le64	byte;
4924 	u8	unused_0[7];
4925 	u8	valid;
4926 };
4927 
4928 /* hwrm_cfa_flow_stats_input (size:320b/40B) */
4929 struct hwrm_cfa_flow_stats_input {
4930 	__le16	req_type;
4931 	__le16	cmpl_ring;
4932 	__le16	seq_id;
4933 	__le16	target_id;
4934 	__le64	resp_addr;
4935 	__le16	num_flows;
4936 	__le16	flow_handle_0;
4937 	__le16	flow_handle_1;
4938 	__le16	flow_handle_2;
4939 	__le16	flow_handle_3;
4940 	__le16	flow_handle_4;
4941 	__le16	flow_handle_5;
4942 	__le16	flow_handle_6;
4943 	__le16	flow_handle_7;
4944 	__le16	flow_handle_8;
4945 	__le16	flow_handle_9;
4946 	u8	unused_0[2];
4947 };
4948 
4949 /* hwrm_cfa_flow_stats_output (size:1408b/176B) */
4950 struct hwrm_cfa_flow_stats_output {
4951 	__le16	error_code;
4952 	__le16	req_type;
4953 	__le16	seq_id;
4954 	__le16	resp_len;
4955 	__le64	packet_0;
4956 	__le64	packet_1;
4957 	__le64	packet_2;
4958 	__le64	packet_3;
4959 	__le64	packet_4;
4960 	__le64	packet_5;
4961 	__le64	packet_6;
4962 	__le64	packet_7;
4963 	__le64	packet_8;
4964 	__le64	packet_9;
4965 	__le64	byte_0;
4966 	__le64	byte_1;
4967 	__le64	byte_2;
4968 	__le64	byte_3;
4969 	__le64	byte_4;
4970 	__le64	byte_5;
4971 	__le64	byte_6;
4972 	__le64	byte_7;
4973 	__le64	byte_8;
4974 	__le64	byte_9;
4975 	u8	unused_0[7];
4976 	u8	valid;
4977 };
4978 
4979 /* hwrm_cfa_vfr_alloc_input (size:448b/56B) */
4980 struct hwrm_cfa_vfr_alloc_input {
4981 	__le16	req_type;
4982 	__le16	cmpl_ring;
4983 	__le16	seq_id;
4984 	__le16	target_id;
4985 	__le64	resp_addr;
4986 	__le16	vf_id;
4987 	__le16	reserved;
4988 	u8	unused_0[4];
4989 	char	vfr_name[32];
4990 };
4991 
4992 /* hwrm_cfa_vfr_alloc_output (size:128b/16B) */
4993 struct hwrm_cfa_vfr_alloc_output {
4994 	__le16	error_code;
4995 	__le16	req_type;
4996 	__le16	seq_id;
4997 	__le16	resp_len;
4998 	__le16	rx_cfa_code;
4999 	__le16	tx_cfa_action;
5000 	u8	unused_0[3];
5001 	u8	valid;
5002 };
5003 
5004 /* hwrm_cfa_vfr_free_input (size:384b/48B) */
5005 struct hwrm_cfa_vfr_free_input {
5006 	__le16	req_type;
5007 	__le16	cmpl_ring;
5008 	__le16	seq_id;
5009 	__le16	target_id;
5010 	__le64	resp_addr;
5011 	char	vfr_name[32];
5012 };
5013 
5014 /* hwrm_cfa_vfr_free_output (size:128b/16B) */
5015 struct hwrm_cfa_vfr_free_output {
5016 	__le16	error_code;
5017 	__le16	req_type;
5018 	__le16	seq_id;
5019 	__le16	resp_len;
5020 	u8	unused_0[7];
5021 	u8	valid;
5022 };
5023 
5024 /* hwrm_tunnel_dst_port_query_input (size:192b/24B) */
5025 struct hwrm_tunnel_dst_port_query_input {
5026 	__le16	req_type;
5027 	__le16	cmpl_ring;
5028 	__le16	seq_id;
5029 	__le16	target_id;
5030 	__le64	resp_addr;
5031 	u8	tunnel_type;
5032 	#define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN    0x1UL
5033 	#define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_GENEVE   0x5UL
5034 	#define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL
5035 	#define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_LAST    TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_V4
5036 	u8	unused_0[7];
5037 };
5038 
5039 /* hwrm_tunnel_dst_port_query_output (size:128b/16B) */
5040 struct hwrm_tunnel_dst_port_query_output {
5041 	__le16	error_code;
5042 	__le16	req_type;
5043 	__le16	seq_id;
5044 	__le16	resp_len;
5045 	__le16	tunnel_dst_port_id;
5046 	__be16	tunnel_dst_port_val;
5047 	u8	unused_0[3];
5048 	u8	valid;
5049 };
5050 
5051 /* hwrm_tunnel_dst_port_alloc_input (size:192b/24B) */
5052 struct hwrm_tunnel_dst_port_alloc_input {
5053 	__le16	req_type;
5054 	__le16	cmpl_ring;
5055 	__le16	seq_id;
5056 	__le16	target_id;
5057 	__le64	resp_addr;
5058 	u8	tunnel_type;
5059 	#define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN    0x1UL
5060 	#define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_GENEVE   0x5UL
5061 	#define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL
5062 	#define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_LAST    TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4
5063 	u8	unused_0;
5064 	__be16	tunnel_dst_port_val;
5065 	u8	unused_1[4];
5066 };
5067 
5068 /* hwrm_tunnel_dst_port_alloc_output (size:128b/16B) */
5069 struct hwrm_tunnel_dst_port_alloc_output {
5070 	__le16	error_code;
5071 	__le16	req_type;
5072 	__le16	seq_id;
5073 	__le16	resp_len;
5074 	__le16	tunnel_dst_port_id;
5075 	u8	unused_0[5];
5076 	u8	valid;
5077 };
5078 
5079 /* hwrm_tunnel_dst_port_free_input (size:192b/24B) */
5080 struct hwrm_tunnel_dst_port_free_input {
5081 	__le16	req_type;
5082 	__le16	cmpl_ring;
5083 	__le16	seq_id;
5084 	__le16	target_id;
5085 	__le64	resp_addr;
5086 	u8	tunnel_type;
5087 	#define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN    0x1UL
5088 	#define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_GENEVE   0x5UL
5089 	#define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL
5090 	#define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_LAST    TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_V4
5091 	u8	unused_0;
5092 	__le16	tunnel_dst_port_id;
5093 	u8	unused_1[4];
5094 };
5095 
5096 /* hwrm_tunnel_dst_port_free_output (size:128b/16B) */
5097 struct hwrm_tunnel_dst_port_free_output {
5098 	__le16	error_code;
5099 	__le16	req_type;
5100 	__le16	seq_id;
5101 	__le16	resp_len;
5102 	u8	unused_1[7];
5103 	u8	valid;
5104 };
5105 
5106 /* ctx_hw_stats (size:1280b/160B) */
5107 struct ctx_hw_stats {
5108 	__le64	rx_ucast_pkts;
5109 	__le64	rx_mcast_pkts;
5110 	__le64	rx_bcast_pkts;
5111 	__le64	rx_discard_pkts;
5112 	__le64	rx_drop_pkts;
5113 	__le64	rx_ucast_bytes;
5114 	__le64	rx_mcast_bytes;
5115 	__le64	rx_bcast_bytes;
5116 	__le64	tx_ucast_pkts;
5117 	__le64	tx_mcast_pkts;
5118 	__le64	tx_bcast_pkts;
5119 	__le64	tx_discard_pkts;
5120 	__le64	tx_drop_pkts;
5121 	__le64	tx_ucast_bytes;
5122 	__le64	tx_mcast_bytes;
5123 	__le64	tx_bcast_bytes;
5124 	__le64	tpa_pkts;
5125 	__le64	tpa_bytes;
5126 	__le64	tpa_events;
5127 	__le64	tpa_aborts;
5128 };
5129 
5130 /* hwrm_stat_ctx_alloc_input (size:256b/32B) */
5131 struct hwrm_stat_ctx_alloc_input {
5132 	__le16	req_type;
5133 	__le16	cmpl_ring;
5134 	__le16	seq_id;
5135 	__le16	target_id;
5136 	__le64	resp_addr;
5137 	__le64	stats_dma_addr;
5138 	__le32	update_period_ms;
5139 	u8	stat_ctx_flags;
5140 	#define STAT_CTX_ALLOC_REQ_STAT_CTX_FLAGS_ROCE     0x1UL
5141 	u8	unused_0[3];
5142 };
5143 
5144 /* hwrm_stat_ctx_alloc_output (size:128b/16B) */
5145 struct hwrm_stat_ctx_alloc_output {
5146 	__le16	error_code;
5147 	__le16	req_type;
5148 	__le16	seq_id;
5149 	__le16	resp_len;
5150 	__le32	stat_ctx_id;
5151 	u8	unused_0[3];
5152 	u8	valid;
5153 };
5154 
5155 /* hwrm_stat_ctx_free_input (size:192b/24B) */
5156 struct hwrm_stat_ctx_free_input {
5157 	__le16	req_type;
5158 	__le16	cmpl_ring;
5159 	__le16	seq_id;
5160 	__le16	target_id;
5161 	__le64	resp_addr;
5162 	__le32	stat_ctx_id;
5163 	u8	unused_0[4];
5164 };
5165 
5166 /* hwrm_stat_ctx_free_output (size:128b/16B) */
5167 struct hwrm_stat_ctx_free_output {
5168 	__le16	error_code;
5169 	__le16	req_type;
5170 	__le16	seq_id;
5171 	__le16	resp_len;
5172 	__le32	stat_ctx_id;
5173 	u8	unused_0[3];
5174 	u8	valid;
5175 };
5176 
5177 /* hwrm_stat_ctx_query_input (size:192b/24B) */
5178 struct hwrm_stat_ctx_query_input {
5179 	__le16	req_type;
5180 	__le16	cmpl_ring;
5181 	__le16	seq_id;
5182 	__le16	target_id;
5183 	__le64	resp_addr;
5184 	__le32	stat_ctx_id;
5185 	u8	unused_0[4];
5186 };
5187 
5188 /* hwrm_stat_ctx_query_output (size:1408b/176B) */
5189 struct hwrm_stat_ctx_query_output {
5190 	__le16	error_code;
5191 	__le16	req_type;
5192 	__le16	seq_id;
5193 	__le16	resp_len;
5194 	__le64	tx_ucast_pkts;
5195 	__le64	tx_mcast_pkts;
5196 	__le64	tx_bcast_pkts;
5197 	__le64	tx_err_pkts;
5198 	__le64	tx_drop_pkts;
5199 	__le64	tx_ucast_bytes;
5200 	__le64	tx_mcast_bytes;
5201 	__le64	tx_bcast_bytes;
5202 	__le64	rx_ucast_pkts;
5203 	__le64	rx_mcast_pkts;
5204 	__le64	rx_bcast_pkts;
5205 	__le64	rx_err_pkts;
5206 	__le64	rx_drop_pkts;
5207 	__le64	rx_ucast_bytes;
5208 	__le64	rx_mcast_bytes;
5209 	__le64	rx_bcast_bytes;
5210 	__le64	rx_agg_pkts;
5211 	__le64	rx_agg_bytes;
5212 	__le64	rx_agg_events;
5213 	__le64	rx_agg_aborts;
5214 	u8	unused_0[7];
5215 	u8	valid;
5216 };
5217 
5218 /* hwrm_stat_ctx_clr_stats_input (size:192b/24B) */
5219 struct hwrm_stat_ctx_clr_stats_input {
5220 	__le16	req_type;
5221 	__le16	cmpl_ring;
5222 	__le16	seq_id;
5223 	__le16	target_id;
5224 	__le64	resp_addr;
5225 	__le32	stat_ctx_id;
5226 	u8	unused_0[4];
5227 };
5228 
5229 /* hwrm_stat_ctx_clr_stats_output (size:128b/16B) */
5230 struct hwrm_stat_ctx_clr_stats_output {
5231 	__le16	error_code;
5232 	__le16	req_type;
5233 	__le16	seq_id;
5234 	__le16	resp_len;
5235 	u8	unused_0[7];
5236 	u8	valid;
5237 };
5238 
5239 /* hwrm_pcie_qstats_input (size:256b/32B) */
5240 struct hwrm_pcie_qstats_input {
5241 	__le16	req_type;
5242 	__le16	cmpl_ring;
5243 	__le16	seq_id;
5244 	__le16	target_id;
5245 	__le64	resp_addr;
5246 	__le16	pcie_stat_size;
5247 	u8	unused_0[6];
5248 	__le64	pcie_stat_host_addr;
5249 };
5250 
5251 /* hwrm_pcie_qstats_output (size:128b/16B) */
5252 struct hwrm_pcie_qstats_output {
5253 	__le16	error_code;
5254 	__le16	req_type;
5255 	__le16	seq_id;
5256 	__le16	resp_len;
5257 	__le16	pcie_stat_size;
5258 	u8	unused_0[5];
5259 	u8	valid;
5260 };
5261 
5262 /* tx_port_stats (size:3264b/408B) */
5263 struct tx_port_stats {
5264 	__le64	tx_64b_frames;
5265 	__le64	tx_65b_127b_frames;
5266 	__le64	tx_128b_255b_frames;
5267 	__le64	tx_256b_511b_frames;
5268 	__le64	tx_512b_1023b_frames;
5269 	__le64	tx_1024b_1518_frames;
5270 	__le64	tx_good_vlan_frames;
5271 	__le64	tx_1519b_2047_frames;
5272 	__le64	tx_2048b_4095b_frames;
5273 	__le64	tx_4096b_9216b_frames;
5274 	__le64	tx_9217b_16383b_frames;
5275 	__le64	tx_good_frames;
5276 	__le64	tx_total_frames;
5277 	__le64	tx_ucast_frames;
5278 	__le64	tx_mcast_frames;
5279 	__le64	tx_bcast_frames;
5280 	__le64	tx_pause_frames;
5281 	__le64	tx_pfc_frames;
5282 	__le64	tx_jabber_frames;
5283 	__le64	tx_fcs_err_frames;
5284 	__le64	tx_control_frames;
5285 	__le64	tx_oversz_frames;
5286 	__le64	tx_single_dfrl_frames;
5287 	__le64	tx_multi_dfrl_frames;
5288 	__le64	tx_single_coll_frames;
5289 	__le64	tx_multi_coll_frames;
5290 	__le64	tx_late_coll_frames;
5291 	__le64	tx_excessive_coll_frames;
5292 	__le64	tx_frag_frames;
5293 	__le64	tx_err;
5294 	__le64	tx_tagged_frames;
5295 	__le64	tx_dbl_tagged_frames;
5296 	__le64	tx_runt_frames;
5297 	__le64	tx_fifo_underruns;
5298 	__le64	tx_pfc_ena_frames_pri0;
5299 	__le64	tx_pfc_ena_frames_pri1;
5300 	__le64	tx_pfc_ena_frames_pri2;
5301 	__le64	tx_pfc_ena_frames_pri3;
5302 	__le64	tx_pfc_ena_frames_pri4;
5303 	__le64	tx_pfc_ena_frames_pri5;
5304 	__le64	tx_pfc_ena_frames_pri6;
5305 	__le64	tx_pfc_ena_frames_pri7;
5306 	__le64	tx_eee_lpi_events;
5307 	__le64	tx_eee_lpi_duration;
5308 	__le64	tx_llfc_logical_msgs;
5309 	__le64	tx_hcfc_msgs;
5310 	__le64	tx_total_collisions;
5311 	__le64	tx_bytes;
5312 	__le64	tx_xthol_frames;
5313 	__le64	tx_stat_discard;
5314 	__le64	tx_stat_error;
5315 };
5316 
5317 /* rx_port_stats (size:4224b/528B) */
5318 struct rx_port_stats {
5319 	__le64	rx_64b_frames;
5320 	__le64	rx_65b_127b_frames;
5321 	__le64	rx_128b_255b_frames;
5322 	__le64	rx_256b_511b_frames;
5323 	__le64	rx_512b_1023b_frames;
5324 	__le64	rx_1024b_1518_frames;
5325 	__le64	rx_good_vlan_frames;
5326 	__le64	rx_1519b_2047b_frames;
5327 	__le64	rx_2048b_4095b_frames;
5328 	__le64	rx_4096b_9216b_frames;
5329 	__le64	rx_9217b_16383b_frames;
5330 	__le64	rx_total_frames;
5331 	__le64	rx_ucast_frames;
5332 	__le64	rx_mcast_frames;
5333 	__le64	rx_bcast_frames;
5334 	__le64	rx_fcs_err_frames;
5335 	__le64	rx_ctrl_frames;
5336 	__le64	rx_pause_frames;
5337 	__le64	rx_pfc_frames;
5338 	__le64	rx_unsupported_opcode_frames;
5339 	__le64	rx_unsupported_da_pausepfc_frames;
5340 	__le64	rx_wrong_sa_frames;
5341 	__le64	rx_align_err_frames;
5342 	__le64	rx_oor_len_frames;
5343 	__le64	rx_code_err_frames;
5344 	__le64	rx_false_carrier_frames;
5345 	__le64	rx_ovrsz_frames;
5346 	__le64	rx_jbr_frames;
5347 	__le64	rx_mtu_err_frames;
5348 	__le64	rx_match_crc_frames;
5349 	__le64	rx_promiscuous_frames;
5350 	__le64	rx_tagged_frames;
5351 	__le64	rx_double_tagged_frames;
5352 	__le64	rx_trunc_frames;
5353 	__le64	rx_good_frames;
5354 	__le64	rx_pfc_xon2xoff_frames_pri0;
5355 	__le64	rx_pfc_xon2xoff_frames_pri1;
5356 	__le64	rx_pfc_xon2xoff_frames_pri2;
5357 	__le64	rx_pfc_xon2xoff_frames_pri3;
5358 	__le64	rx_pfc_xon2xoff_frames_pri4;
5359 	__le64	rx_pfc_xon2xoff_frames_pri5;
5360 	__le64	rx_pfc_xon2xoff_frames_pri6;
5361 	__le64	rx_pfc_xon2xoff_frames_pri7;
5362 	__le64	rx_pfc_ena_frames_pri0;
5363 	__le64	rx_pfc_ena_frames_pri1;
5364 	__le64	rx_pfc_ena_frames_pri2;
5365 	__le64	rx_pfc_ena_frames_pri3;
5366 	__le64	rx_pfc_ena_frames_pri4;
5367 	__le64	rx_pfc_ena_frames_pri5;
5368 	__le64	rx_pfc_ena_frames_pri6;
5369 	__le64	rx_pfc_ena_frames_pri7;
5370 	__le64	rx_sch_crc_err_frames;
5371 	__le64	rx_undrsz_frames;
5372 	__le64	rx_frag_frames;
5373 	__le64	rx_eee_lpi_events;
5374 	__le64	rx_eee_lpi_duration;
5375 	__le64	rx_llfc_physical_msgs;
5376 	__le64	rx_llfc_logical_msgs;
5377 	__le64	rx_llfc_msgs_with_crc_err;
5378 	__le64	rx_hcfc_msgs;
5379 	__le64	rx_hcfc_msgs_with_crc_err;
5380 	__le64	rx_bytes;
5381 	__le64	rx_runt_bytes;
5382 	__le64	rx_runt_frames;
5383 	__le64	rx_stat_discard;
5384 	__le64	rx_stat_err;
5385 };
5386 
5387 /* rx_port_stats_ext (size:320b/40B) */
5388 struct rx_port_stats_ext {
5389 	__le64	link_down_events;
5390 	__le64	continuous_pause_events;
5391 	__le64	resume_pause_events;
5392 	__le64	continuous_roce_pause_events;
5393 	__le64	resume_roce_pause_events;
5394 };
5395 
5396 /* pcie_ctx_hw_stats (size:768b/96B) */
5397 struct pcie_ctx_hw_stats {
5398 	__le64	pcie_pl_signal_integrity;
5399 	__le64	pcie_dl_signal_integrity;
5400 	__le64	pcie_tl_signal_integrity;
5401 	__le64	pcie_link_integrity;
5402 	__le64	pcie_tx_traffic_rate;
5403 	__le64	pcie_rx_traffic_rate;
5404 	__le64	pcie_tx_dllp_statistics;
5405 	__le64	pcie_rx_dllp_statistics;
5406 	__le64	pcie_equalization_time;
5407 	__le32	pcie_ltssm_histogram[4];
5408 	__le64	pcie_recovery_histogram;
5409 };
5410 
5411 /* hwrm_fw_reset_input (size:192b/24B) */
5412 struct hwrm_fw_reset_input {
5413 	__le16	req_type;
5414 	__le16	cmpl_ring;
5415 	__le16	seq_id;
5416 	__le16	target_id;
5417 	__le64	resp_addr;
5418 	u8	embedded_proc_type;
5419 	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_BOOT                 0x0UL
5420 	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_MGMT                 0x1UL
5421 	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_NETCTRL              0x2UL
5422 	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_ROCE                 0x3UL
5423 	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST                 0x4UL
5424 	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_AP                   0x5UL
5425 	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_CHIP                 0x6UL
5426 	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST_RESOURCE_REINIT 0x7UL
5427 	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_LAST                FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST_RESOURCE_REINIT
5428 	u8	selfrst_status;
5429 	#define FW_RESET_REQ_SELFRST_STATUS_SELFRSTNONE    0x0UL
5430 	#define FW_RESET_REQ_SELFRST_STATUS_SELFRSTASAP    0x1UL
5431 	#define FW_RESET_REQ_SELFRST_STATUS_SELFRSTPCIERST 0x2UL
5432 	#define FW_RESET_REQ_SELFRST_STATUS_LAST          FW_RESET_REQ_SELFRST_STATUS_SELFRSTPCIERST
5433 	u8	host_idx;
5434 	u8	unused_0[5];
5435 };
5436 
5437 /* hwrm_fw_reset_output (size:128b/16B) */
5438 struct hwrm_fw_reset_output {
5439 	__le16	error_code;
5440 	__le16	req_type;
5441 	__le16	seq_id;
5442 	__le16	resp_len;
5443 	u8	selfrst_status;
5444 	#define FW_RESET_RESP_SELFRST_STATUS_SELFRSTNONE    0x0UL
5445 	#define FW_RESET_RESP_SELFRST_STATUS_SELFRSTASAP    0x1UL
5446 	#define FW_RESET_RESP_SELFRST_STATUS_SELFRSTPCIERST 0x2UL
5447 	#define FW_RESET_RESP_SELFRST_STATUS_LAST          FW_RESET_RESP_SELFRST_STATUS_SELFRSTPCIERST
5448 	u8	unused_0[6];
5449 	u8	valid;
5450 };
5451 
5452 /* hwrm_fw_qstatus_input (size:192b/24B) */
5453 struct hwrm_fw_qstatus_input {
5454 	__le16	req_type;
5455 	__le16	cmpl_ring;
5456 	__le16	seq_id;
5457 	__le16	target_id;
5458 	__le64	resp_addr;
5459 	u8	embedded_proc_type;
5460 	#define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_BOOT    0x0UL
5461 	#define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_MGMT    0x1UL
5462 	#define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_NETCTRL 0x2UL
5463 	#define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_ROCE    0x3UL
5464 	#define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_HOST    0x4UL
5465 	#define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_AP      0x5UL
5466 	#define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_CHIP    0x6UL
5467 	#define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_LAST   FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_CHIP
5468 	u8	unused_0[7];
5469 };
5470 
5471 /* hwrm_fw_qstatus_output (size:128b/16B) */
5472 struct hwrm_fw_qstatus_output {
5473 	__le16	error_code;
5474 	__le16	req_type;
5475 	__le16	seq_id;
5476 	__le16	resp_len;
5477 	u8	selfrst_status;
5478 	#define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTNONE    0x0UL
5479 	#define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTASAP    0x1UL
5480 	#define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPCIERST 0x2UL
5481 	#define FW_QSTATUS_RESP_SELFRST_STATUS_LAST          FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPCIERST
5482 	u8	unused_0[6];
5483 	u8	valid;
5484 };
5485 
5486 /* hwrm_fw_set_time_input (size:256b/32B) */
5487 struct hwrm_fw_set_time_input {
5488 	__le16	req_type;
5489 	__le16	cmpl_ring;
5490 	__le16	seq_id;
5491 	__le16	target_id;
5492 	__le64	resp_addr;
5493 	__le16	year;
5494 	#define FW_SET_TIME_REQ_YEAR_UNKNOWN 0x0UL
5495 	#define FW_SET_TIME_REQ_YEAR_LAST   FW_SET_TIME_REQ_YEAR_UNKNOWN
5496 	u8	month;
5497 	u8	day;
5498 	u8	hour;
5499 	u8	minute;
5500 	u8	second;
5501 	u8	unused_0;
5502 	__le16	millisecond;
5503 	__le16	zone;
5504 	#define FW_SET_TIME_REQ_ZONE_UTC     0x0UL
5505 	#define FW_SET_TIME_REQ_ZONE_UNKNOWN 0xffffUL
5506 	#define FW_SET_TIME_REQ_ZONE_LAST   FW_SET_TIME_REQ_ZONE_UNKNOWN
5507 	u8	unused_1[4];
5508 };
5509 
5510 /* hwrm_fw_set_time_output (size:128b/16B) */
5511 struct hwrm_fw_set_time_output {
5512 	__le16	error_code;
5513 	__le16	req_type;
5514 	__le16	seq_id;
5515 	__le16	resp_len;
5516 	u8	unused_0[7];
5517 	u8	valid;
5518 };
5519 
5520 /* hwrm_struct_hdr (size:128b/16B) */
5521 struct hwrm_struct_hdr {
5522 	__le16	struct_id;
5523 	#define STRUCT_HDR_STRUCT_ID_LLDP_CFG           0x41bUL
5524 	#define STRUCT_HDR_STRUCT_ID_DCBX_ETS           0x41dUL
5525 	#define STRUCT_HDR_STRUCT_ID_DCBX_PFC           0x41fUL
5526 	#define STRUCT_HDR_STRUCT_ID_DCBX_APP           0x421UL
5527 	#define STRUCT_HDR_STRUCT_ID_DCBX_FEATURE_STATE 0x422UL
5528 	#define STRUCT_HDR_STRUCT_ID_LLDP_GENERIC       0x424UL
5529 	#define STRUCT_HDR_STRUCT_ID_LLDP_DEVICE        0x426UL
5530 	#define STRUCT_HDR_STRUCT_ID_AFM_OPAQUE         0x1UL
5531 	#define STRUCT_HDR_STRUCT_ID_PORT_DESCRIPTION   0xaUL
5532 	#define STRUCT_HDR_STRUCT_ID_RSS_V2             0x64UL
5533 	#define STRUCT_HDR_STRUCT_ID_LAST              STRUCT_HDR_STRUCT_ID_RSS_V2
5534 	__le16	len;
5535 	u8	version;
5536 	u8	count;
5537 	__le16	subtype;
5538 	__le16	next_offset;
5539 	#define STRUCT_HDR_NEXT_OFFSET_LAST 0x0UL
5540 	u8	unused_0[6];
5541 };
5542 
5543 /* hwrm_struct_data_dcbx_app (size:64b/8B) */
5544 struct hwrm_struct_data_dcbx_app {
5545 	__be16	protocol_id;
5546 	u8	protocol_selector;
5547 	#define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_ETHER_TYPE   0x1UL
5548 	#define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_PORT     0x2UL
5549 	#define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_UDP_PORT     0x3UL
5550 	#define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_UDP_PORT 0x4UL
5551 	#define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_LAST        STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_UDP_PORT
5552 	u8	priority;
5553 	u8	valid;
5554 	u8	unused_0[3];
5555 };
5556 
5557 /* hwrm_fw_set_structured_data_input (size:256b/32B) */
5558 struct hwrm_fw_set_structured_data_input {
5559 	__le16	req_type;
5560 	__le16	cmpl_ring;
5561 	__le16	seq_id;
5562 	__le16	target_id;
5563 	__le64	resp_addr;
5564 	__le64	src_data_addr;
5565 	__le16	data_len;
5566 	u8	hdr_cnt;
5567 	u8	unused_0[5];
5568 };
5569 
5570 /* hwrm_fw_set_structured_data_output (size:128b/16B) */
5571 struct hwrm_fw_set_structured_data_output {
5572 	__le16	error_code;
5573 	__le16	req_type;
5574 	__le16	seq_id;
5575 	__le16	resp_len;
5576 	u8	unused_0[7];
5577 	u8	valid;
5578 };
5579 
5580 /* hwrm_fw_set_structured_data_cmd_err (size:64b/8B) */
5581 struct hwrm_fw_set_structured_data_cmd_err {
5582 	u8	code;
5583 	#define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_UNKNOWN     0x0UL
5584 	#define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_HDR_CNT 0x1UL
5585 	#define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_FMT     0x2UL
5586 	#define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID      0x3UL
5587 	#define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_LAST       FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID
5588 	u8	unused_0[7];
5589 };
5590 
5591 /* hwrm_fw_get_structured_data_input (size:256b/32B) */
5592 struct hwrm_fw_get_structured_data_input {
5593 	__le16	req_type;
5594 	__le16	cmpl_ring;
5595 	__le16	seq_id;
5596 	__le16	target_id;
5597 	__le64	resp_addr;
5598 	__le64	dest_data_addr;
5599 	__le16	data_len;
5600 	__le16	structure_id;
5601 	__le16	subtype;
5602 	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_UNUSED                  0x0UL
5603 	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_ALL                     0xffffUL
5604 	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_ADMIN       0x100UL
5605 	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_PEER        0x101UL
5606 	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_OPERATIONAL 0x102UL
5607 	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_ADMIN          0x200UL
5608 	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_PEER           0x201UL
5609 	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_OPERATIONAL    0x202UL
5610 	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_HOST_OPERATIONAL        0x300UL
5611 	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_LAST                   FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_HOST_OPERATIONAL
5612 	u8	count;
5613 	u8	unused_0;
5614 };
5615 
5616 /* hwrm_fw_get_structured_data_output (size:128b/16B) */
5617 struct hwrm_fw_get_structured_data_output {
5618 	__le16	error_code;
5619 	__le16	req_type;
5620 	__le16	seq_id;
5621 	__le16	resp_len;
5622 	u8	hdr_cnt;
5623 	u8	unused_0[6];
5624 	u8	valid;
5625 };
5626 
5627 /* hwrm_fw_get_structured_data_cmd_err (size:64b/8B) */
5628 struct hwrm_fw_get_structured_data_cmd_err {
5629 	u8	code;
5630 	#define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_UNKNOWN 0x0UL
5631 	#define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID  0x3UL
5632 	#define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_LAST   FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID
5633 	u8	unused_0[7];
5634 };
5635 
5636 /* hwrm_exec_fwd_resp_input (size:1024b/128B) */
5637 struct hwrm_exec_fwd_resp_input {
5638 	__le16	req_type;
5639 	__le16	cmpl_ring;
5640 	__le16	seq_id;
5641 	__le16	target_id;
5642 	__le64	resp_addr;
5643 	__le32	encap_request[26];
5644 	__le16	encap_resp_target_id;
5645 	u8	unused_0[6];
5646 };
5647 
5648 /* hwrm_exec_fwd_resp_output (size:128b/16B) */
5649 struct hwrm_exec_fwd_resp_output {
5650 	__le16	error_code;
5651 	__le16	req_type;
5652 	__le16	seq_id;
5653 	__le16	resp_len;
5654 	u8	unused_0[7];
5655 	u8	valid;
5656 };
5657 
5658 /* hwrm_reject_fwd_resp_input (size:1024b/128B) */
5659 struct hwrm_reject_fwd_resp_input {
5660 	__le16	req_type;
5661 	__le16	cmpl_ring;
5662 	__le16	seq_id;
5663 	__le16	target_id;
5664 	__le64	resp_addr;
5665 	__le32	encap_request[26];
5666 	__le16	encap_resp_target_id;
5667 	u8	unused_0[6];
5668 };
5669 
5670 /* hwrm_reject_fwd_resp_output (size:128b/16B) */
5671 struct hwrm_reject_fwd_resp_output {
5672 	__le16	error_code;
5673 	__le16	req_type;
5674 	__le16	seq_id;
5675 	__le16	resp_len;
5676 	u8	unused_0[7];
5677 	u8	valid;
5678 };
5679 
5680 /* hwrm_fwd_resp_input (size:1024b/128B) */
5681 struct hwrm_fwd_resp_input {
5682 	__le16	req_type;
5683 	__le16	cmpl_ring;
5684 	__le16	seq_id;
5685 	__le16	target_id;
5686 	__le64	resp_addr;
5687 	__le16	encap_resp_target_id;
5688 	__le16	encap_resp_cmpl_ring;
5689 	__le16	encap_resp_len;
5690 	u8	unused_0;
5691 	u8	unused_1;
5692 	__le64	encap_resp_addr;
5693 	__le32	encap_resp[24];
5694 };
5695 
5696 /* hwrm_fwd_resp_output (size:128b/16B) */
5697 struct hwrm_fwd_resp_output {
5698 	__le16	error_code;
5699 	__le16	req_type;
5700 	__le16	seq_id;
5701 	__le16	resp_len;
5702 	u8	unused_0[7];
5703 	u8	valid;
5704 };
5705 
5706 /* hwrm_fwd_async_event_cmpl_input (size:320b/40B) */
5707 struct hwrm_fwd_async_event_cmpl_input {
5708 	__le16	req_type;
5709 	__le16	cmpl_ring;
5710 	__le16	seq_id;
5711 	__le16	target_id;
5712 	__le64	resp_addr;
5713 	__le16	encap_async_event_target_id;
5714 	u8	unused_0[6];
5715 	__le32	encap_async_event_cmpl[4];
5716 };
5717 
5718 /* hwrm_fwd_async_event_cmpl_output (size:128b/16B) */
5719 struct hwrm_fwd_async_event_cmpl_output {
5720 	__le16	error_code;
5721 	__le16	req_type;
5722 	__le16	seq_id;
5723 	__le16	resp_len;
5724 	u8	unused_0[7];
5725 	u8	valid;
5726 };
5727 
5728 /* hwrm_temp_monitor_query_input (size:128b/16B) */
5729 struct hwrm_temp_monitor_query_input {
5730 	__le16	req_type;
5731 	__le16	cmpl_ring;
5732 	__le16	seq_id;
5733 	__le16	target_id;
5734 	__le64	resp_addr;
5735 };
5736 
5737 /* hwrm_temp_monitor_query_output (size:128b/16B) */
5738 struct hwrm_temp_monitor_query_output {
5739 	__le16	error_code;
5740 	__le16	req_type;
5741 	__le16	seq_id;
5742 	__le16	resp_len;
5743 	u8	temp;
5744 	u8	unused_0[6];
5745 	u8	valid;
5746 };
5747 
5748 /* hwrm_wol_filter_alloc_input (size:512b/64B) */
5749 struct hwrm_wol_filter_alloc_input {
5750 	__le16	req_type;
5751 	__le16	cmpl_ring;
5752 	__le16	seq_id;
5753 	__le16	target_id;
5754 	__le64	resp_addr;
5755 	__le32	flags;
5756 	__le32	enables;
5757 	#define WOL_FILTER_ALLOC_REQ_ENABLES_MAC_ADDRESS           0x1UL
5758 	#define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_OFFSET        0x2UL
5759 	#define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_BUF_SIZE      0x4UL
5760 	#define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_BUF_ADDR      0x8UL
5761 	#define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_MASK_ADDR     0x10UL
5762 	#define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_MASK_SIZE     0x20UL
5763 	__le16	port_id;
5764 	u8	wol_type;
5765 	#define WOL_FILTER_ALLOC_REQ_WOL_TYPE_MAGICPKT 0x0UL
5766 	#define WOL_FILTER_ALLOC_REQ_WOL_TYPE_BMP      0x1UL
5767 	#define WOL_FILTER_ALLOC_REQ_WOL_TYPE_INVALID  0xffUL
5768 	#define WOL_FILTER_ALLOC_REQ_WOL_TYPE_LAST    WOL_FILTER_ALLOC_REQ_WOL_TYPE_INVALID
5769 	u8	unused_0[5];
5770 	u8	mac_address[6];
5771 	__le16	pattern_offset;
5772 	__le16	pattern_buf_size;
5773 	__le16	pattern_mask_size;
5774 	u8	unused_1[4];
5775 	__le64	pattern_buf_addr;
5776 	__le64	pattern_mask_addr;
5777 };
5778 
5779 /* hwrm_wol_filter_alloc_output (size:128b/16B) */
5780 struct hwrm_wol_filter_alloc_output {
5781 	__le16	error_code;
5782 	__le16	req_type;
5783 	__le16	seq_id;
5784 	__le16	resp_len;
5785 	u8	wol_filter_id;
5786 	u8	unused_0[6];
5787 	u8	valid;
5788 };
5789 
5790 /* hwrm_wol_filter_free_input (size:256b/32B) */
5791 struct hwrm_wol_filter_free_input {
5792 	__le16	req_type;
5793 	__le16	cmpl_ring;
5794 	__le16	seq_id;
5795 	__le16	target_id;
5796 	__le64	resp_addr;
5797 	__le32	flags;
5798 	#define WOL_FILTER_FREE_REQ_FLAGS_FREE_ALL_WOL_FILTERS     0x1UL
5799 	__le32	enables;
5800 	#define WOL_FILTER_FREE_REQ_ENABLES_WOL_FILTER_ID     0x1UL
5801 	__le16	port_id;
5802 	u8	wol_filter_id;
5803 	u8	unused_0[5];
5804 };
5805 
5806 /* hwrm_wol_filter_free_output (size:128b/16B) */
5807 struct hwrm_wol_filter_free_output {
5808 	__le16	error_code;
5809 	__le16	req_type;
5810 	__le16	seq_id;
5811 	__le16	resp_len;
5812 	u8	unused_0[7];
5813 	u8	valid;
5814 };
5815 
5816 /* hwrm_wol_filter_qcfg_input (size:448b/56B) */
5817 struct hwrm_wol_filter_qcfg_input {
5818 	__le16	req_type;
5819 	__le16	cmpl_ring;
5820 	__le16	seq_id;
5821 	__le16	target_id;
5822 	__le64	resp_addr;
5823 	__le16	port_id;
5824 	__le16	handle;
5825 	u8	unused_0[4];
5826 	__le64	pattern_buf_addr;
5827 	__le16	pattern_buf_size;
5828 	u8	unused_1[6];
5829 	__le64	pattern_mask_addr;
5830 	__le16	pattern_mask_size;
5831 	u8	unused_2[6];
5832 };
5833 
5834 /* hwrm_wol_filter_qcfg_output (size:256b/32B) */
5835 struct hwrm_wol_filter_qcfg_output {
5836 	__le16	error_code;
5837 	__le16	req_type;
5838 	__le16	seq_id;
5839 	__le16	resp_len;
5840 	__le16	next_handle;
5841 	u8	wol_filter_id;
5842 	u8	wol_type;
5843 	#define WOL_FILTER_QCFG_RESP_WOL_TYPE_MAGICPKT 0x0UL
5844 	#define WOL_FILTER_QCFG_RESP_WOL_TYPE_BMP      0x1UL
5845 	#define WOL_FILTER_QCFG_RESP_WOL_TYPE_INVALID  0xffUL
5846 	#define WOL_FILTER_QCFG_RESP_WOL_TYPE_LAST    WOL_FILTER_QCFG_RESP_WOL_TYPE_INVALID
5847 	__le32	unused_0;
5848 	u8	mac_address[6];
5849 	__le16	pattern_offset;
5850 	__le16	pattern_size;
5851 	__le16	pattern_mask_size;
5852 	u8	unused_1[3];
5853 	u8	valid;
5854 };
5855 
5856 /* hwrm_wol_reason_qcfg_input (size:320b/40B) */
5857 struct hwrm_wol_reason_qcfg_input {
5858 	__le16	req_type;
5859 	__le16	cmpl_ring;
5860 	__le16	seq_id;
5861 	__le16	target_id;
5862 	__le64	resp_addr;
5863 	__le16	port_id;
5864 	u8	unused_0[6];
5865 	__le64	wol_pkt_buf_addr;
5866 	__le16	wol_pkt_buf_size;
5867 	u8	unused_1[6];
5868 };
5869 
5870 /* hwrm_wol_reason_qcfg_output (size:128b/16B) */
5871 struct hwrm_wol_reason_qcfg_output {
5872 	__le16	error_code;
5873 	__le16	req_type;
5874 	__le16	seq_id;
5875 	__le16	resp_len;
5876 	u8	wol_filter_id;
5877 	u8	wol_reason;
5878 	#define WOL_REASON_QCFG_RESP_WOL_REASON_MAGICPKT 0x0UL
5879 	#define WOL_REASON_QCFG_RESP_WOL_REASON_BMP      0x1UL
5880 	#define WOL_REASON_QCFG_RESP_WOL_REASON_INVALID  0xffUL
5881 	#define WOL_REASON_QCFG_RESP_WOL_REASON_LAST    WOL_REASON_QCFG_RESP_WOL_REASON_INVALID
5882 	u8	wol_pkt_len;
5883 	u8	unused_0[4];
5884 	u8	valid;
5885 };
5886 
5887 /* hwrm_nvm_read_input (size:320b/40B) */
5888 struct hwrm_nvm_read_input {
5889 	__le16	req_type;
5890 	__le16	cmpl_ring;
5891 	__le16	seq_id;
5892 	__le16	target_id;
5893 	__le64	resp_addr;
5894 	__le64	host_dest_addr;
5895 	__le16	dir_idx;
5896 	u8	unused_0[2];
5897 	__le32	offset;
5898 	__le32	len;
5899 	u8	unused_1[4];
5900 };
5901 
5902 /* hwrm_nvm_read_output (size:128b/16B) */
5903 struct hwrm_nvm_read_output {
5904 	__le16	error_code;
5905 	__le16	req_type;
5906 	__le16	seq_id;
5907 	__le16	resp_len;
5908 	u8	unused_0[7];
5909 	u8	valid;
5910 };
5911 
5912 /* hwrm_nvm_get_dir_entries_input (size:192b/24B) */
5913 struct hwrm_nvm_get_dir_entries_input {
5914 	__le16	req_type;
5915 	__le16	cmpl_ring;
5916 	__le16	seq_id;
5917 	__le16	target_id;
5918 	__le64	resp_addr;
5919 	__le64	host_dest_addr;
5920 };
5921 
5922 /* hwrm_nvm_get_dir_entries_output (size:128b/16B) */
5923 struct hwrm_nvm_get_dir_entries_output {
5924 	__le16	error_code;
5925 	__le16	req_type;
5926 	__le16	seq_id;
5927 	__le16	resp_len;
5928 	u8	unused_0[7];
5929 	u8	valid;
5930 };
5931 
5932 /* hwrm_nvm_get_dir_info_input (size:128b/16B) */
5933 struct hwrm_nvm_get_dir_info_input {
5934 	__le16	req_type;
5935 	__le16	cmpl_ring;
5936 	__le16	seq_id;
5937 	__le16	target_id;
5938 	__le64	resp_addr;
5939 };
5940 
5941 /* hwrm_nvm_get_dir_info_output (size:192b/24B) */
5942 struct hwrm_nvm_get_dir_info_output {
5943 	__le16	error_code;
5944 	__le16	req_type;
5945 	__le16	seq_id;
5946 	__le16	resp_len;
5947 	__le32	entries;
5948 	__le32	entry_length;
5949 	u8	unused_0[7];
5950 	u8	valid;
5951 };
5952 
5953 /* hwrm_nvm_write_input (size:384b/48B) */
5954 struct hwrm_nvm_write_input {
5955 	__le16	req_type;
5956 	__le16	cmpl_ring;
5957 	__le16	seq_id;
5958 	__le16	target_id;
5959 	__le64	resp_addr;
5960 	__le64	host_src_addr;
5961 	__le16	dir_type;
5962 	__le16	dir_ordinal;
5963 	__le16	dir_ext;
5964 	__le16	dir_attr;
5965 	__le32	dir_data_length;
5966 	__le16	option;
5967 	__le16	flags;
5968 	#define NVM_WRITE_REQ_FLAGS_KEEP_ORIG_ACTIVE_IMG     0x1UL
5969 	__le32	dir_item_length;
5970 	__le32	unused_0;
5971 };
5972 
5973 /* hwrm_nvm_write_output (size:128b/16B) */
5974 struct hwrm_nvm_write_output {
5975 	__le16	error_code;
5976 	__le16	req_type;
5977 	__le16	seq_id;
5978 	__le16	resp_len;
5979 	__le32	dir_item_length;
5980 	__le16	dir_idx;
5981 	u8	unused_0;
5982 	u8	valid;
5983 };
5984 
5985 /* hwrm_nvm_write_cmd_err (size:64b/8B) */
5986 struct hwrm_nvm_write_cmd_err {
5987 	u8	code;
5988 	#define NVM_WRITE_CMD_ERR_CODE_UNKNOWN  0x0UL
5989 	#define NVM_WRITE_CMD_ERR_CODE_FRAG_ERR 0x1UL
5990 	#define NVM_WRITE_CMD_ERR_CODE_NO_SPACE 0x2UL
5991 	#define NVM_WRITE_CMD_ERR_CODE_LAST    NVM_WRITE_CMD_ERR_CODE_NO_SPACE
5992 	u8	unused_0[7];
5993 };
5994 
5995 /* hwrm_nvm_modify_input (size:320b/40B) */
5996 struct hwrm_nvm_modify_input {
5997 	__le16	req_type;
5998 	__le16	cmpl_ring;
5999 	__le16	seq_id;
6000 	__le16	target_id;
6001 	__le64	resp_addr;
6002 	__le64	host_src_addr;
6003 	__le16	dir_idx;
6004 	u8	unused_0[2];
6005 	__le32	offset;
6006 	__le32	len;
6007 	u8	unused_1[4];
6008 };
6009 
6010 /* hwrm_nvm_modify_output (size:128b/16B) */
6011 struct hwrm_nvm_modify_output {
6012 	__le16	error_code;
6013 	__le16	req_type;
6014 	__le16	seq_id;
6015 	__le16	resp_len;
6016 	u8	unused_0[7];
6017 	u8	valid;
6018 };
6019 
6020 /* hwrm_nvm_find_dir_entry_input (size:256b/32B) */
6021 struct hwrm_nvm_find_dir_entry_input {
6022 	__le16	req_type;
6023 	__le16	cmpl_ring;
6024 	__le16	seq_id;
6025 	__le16	target_id;
6026 	__le64	resp_addr;
6027 	__le32	enables;
6028 	#define NVM_FIND_DIR_ENTRY_REQ_ENABLES_DIR_IDX_VALID     0x1UL
6029 	__le16	dir_idx;
6030 	__le16	dir_type;
6031 	__le16	dir_ordinal;
6032 	__le16	dir_ext;
6033 	u8	opt_ordinal;
6034 	#define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_MASK 0x3UL
6035 	#define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_SFT 0
6036 	#define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_EQ    0x0UL
6037 	#define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GE    0x1UL
6038 	#define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GT    0x2UL
6039 	#define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_LAST NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GT
6040 	u8	unused_0[3];
6041 };
6042 
6043 /* hwrm_nvm_find_dir_entry_output (size:256b/32B) */
6044 struct hwrm_nvm_find_dir_entry_output {
6045 	__le16	error_code;
6046 	__le16	req_type;
6047 	__le16	seq_id;
6048 	__le16	resp_len;
6049 	__le32	dir_item_length;
6050 	__le32	dir_data_length;
6051 	__le32	fw_ver;
6052 	__le16	dir_ordinal;
6053 	__le16	dir_idx;
6054 	u8	unused_0[7];
6055 	u8	valid;
6056 };
6057 
6058 /* hwrm_nvm_erase_dir_entry_input (size:192b/24B) */
6059 struct hwrm_nvm_erase_dir_entry_input {
6060 	__le16	req_type;
6061 	__le16	cmpl_ring;
6062 	__le16	seq_id;
6063 	__le16	target_id;
6064 	__le64	resp_addr;
6065 	__le16	dir_idx;
6066 	u8	unused_0[6];
6067 };
6068 
6069 /* hwrm_nvm_erase_dir_entry_output (size:128b/16B) */
6070 struct hwrm_nvm_erase_dir_entry_output {
6071 	__le16	error_code;
6072 	__le16	req_type;
6073 	__le16	seq_id;
6074 	__le16	resp_len;
6075 	u8	unused_0[7];
6076 	u8	valid;
6077 };
6078 
6079 /* hwrm_nvm_get_dev_info_input (size:128b/16B) */
6080 struct hwrm_nvm_get_dev_info_input {
6081 	__le16	req_type;
6082 	__le16	cmpl_ring;
6083 	__le16	seq_id;
6084 	__le16	target_id;
6085 	__le64	resp_addr;
6086 };
6087 
6088 /* hwrm_nvm_get_dev_info_output (size:256b/32B) */
6089 struct hwrm_nvm_get_dev_info_output {
6090 	__le16	error_code;
6091 	__le16	req_type;
6092 	__le16	seq_id;
6093 	__le16	resp_len;
6094 	__le16	manufacturer_id;
6095 	__le16	device_id;
6096 	__le32	sector_size;
6097 	__le32	nvram_size;
6098 	__le32	reserved_size;
6099 	__le32	available_size;
6100 	u8	unused_0[3];
6101 	u8	valid;
6102 };
6103 
6104 /* hwrm_nvm_mod_dir_entry_input (size:256b/32B) */
6105 struct hwrm_nvm_mod_dir_entry_input {
6106 	__le16	req_type;
6107 	__le16	cmpl_ring;
6108 	__le16	seq_id;
6109 	__le16	target_id;
6110 	__le64	resp_addr;
6111 	__le32	enables;
6112 	#define NVM_MOD_DIR_ENTRY_REQ_ENABLES_CHECKSUM     0x1UL
6113 	__le16	dir_idx;
6114 	__le16	dir_ordinal;
6115 	__le16	dir_ext;
6116 	__le16	dir_attr;
6117 	__le32	checksum;
6118 };
6119 
6120 /* hwrm_nvm_mod_dir_entry_output (size:128b/16B) */
6121 struct hwrm_nvm_mod_dir_entry_output {
6122 	__le16	error_code;
6123 	__le16	req_type;
6124 	__le16	seq_id;
6125 	__le16	resp_len;
6126 	u8	unused_0[7];
6127 	u8	valid;
6128 };
6129 
6130 /* hwrm_nvm_verify_update_input (size:192b/24B) */
6131 struct hwrm_nvm_verify_update_input {
6132 	__le16	req_type;
6133 	__le16	cmpl_ring;
6134 	__le16	seq_id;
6135 	__le16	target_id;
6136 	__le64	resp_addr;
6137 	__le16	dir_type;
6138 	__le16	dir_ordinal;
6139 	__le16	dir_ext;
6140 	u8	unused_0[2];
6141 };
6142 
6143 /* hwrm_nvm_verify_update_output (size:128b/16B) */
6144 struct hwrm_nvm_verify_update_output {
6145 	__le16	error_code;
6146 	__le16	req_type;
6147 	__le16	seq_id;
6148 	__le16	resp_len;
6149 	u8	unused_0[7];
6150 	u8	valid;
6151 };
6152 
6153 /* hwrm_nvm_install_update_input (size:192b/24B) */
6154 struct hwrm_nvm_install_update_input {
6155 	__le16	req_type;
6156 	__le16	cmpl_ring;
6157 	__le16	seq_id;
6158 	__le16	target_id;
6159 	__le64	resp_addr;
6160 	__le32	install_type;
6161 	#define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_NORMAL 0x0UL
6162 	#define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_ALL    0xffffffffUL
6163 	#define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_LAST  NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_ALL
6164 	__le16	flags;
6165 	#define NVM_INSTALL_UPDATE_REQ_FLAGS_ERASE_UNUSED_SPACE     0x1UL
6166 	#define NVM_INSTALL_UPDATE_REQ_FLAGS_REMOVE_UNUSED_PKG      0x2UL
6167 	#define NVM_INSTALL_UPDATE_REQ_FLAGS_ALLOWED_TO_DEFRAG      0x4UL
6168 	u8	unused_0[2];
6169 };
6170 
6171 /* hwrm_nvm_install_update_output (size:192b/24B) */
6172 struct hwrm_nvm_install_update_output {
6173 	__le16	error_code;
6174 	__le16	req_type;
6175 	__le16	seq_id;
6176 	__le16	resp_len;
6177 	__le64	installed_items;
6178 	u8	result;
6179 	#define NVM_INSTALL_UPDATE_RESP_RESULT_SUCCESS 0x0UL
6180 	#define NVM_INSTALL_UPDATE_RESP_RESULT_LAST   NVM_INSTALL_UPDATE_RESP_RESULT_SUCCESS
6181 	u8	problem_item;
6182 	#define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_NONE    0x0UL
6183 	#define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_PACKAGE 0xffUL
6184 	#define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_LAST   NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_PACKAGE
6185 	u8	reset_required;
6186 	#define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_NONE  0x0UL
6187 	#define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_PCI   0x1UL
6188 	#define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_POWER 0x2UL
6189 	#define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_LAST NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_POWER
6190 	u8	unused_0[4];
6191 	u8	valid;
6192 };
6193 
6194 /* hwrm_nvm_install_update_cmd_err (size:64b/8B) */
6195 struct hwrm_nvm_install_update_cmd_err {
6196 	u8	code;
6197 	#define NVM_INSTALL_UPDATE_CMD_ERR_CODE_UNKNOWN  0x0UL
6198 	#define NVM_INSTALL_UPDATE_CMD_ERR_CODE_FRAG_ERR 0x1UL
6199 	#define NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_SPACE 0x2UL
6200 	#define NVM_INSTALL_UPDATE_CMD_ERR_CODE_LAST    NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_SPACE
6201 	u8	unused_0[7];
6202 };
6203 
6204 /* hwrm_nvm_get_variable_input (size:320b/40B) */
6205 struct hwrm_nvm_get_variable_input {
6206 	__le16	req_type;
6207 	__le16	cmpl_ring;
6208 	__le16	seq_id;
6209 	__le16	target_id;
6210 	__le64	resp_addr;
6211 	__le64	dest_data_addr;
6212 	__le16	data_len;
6213 	__le16	option_num;
6214 	#define NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_0    0x0UL
6215 	#define NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 0xffffUL
6216 	#define NVM_GET_VARIABLE_REQ_OPTION_NUM_LAST     NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF
6217 	__le16	dimensions;
6218 	__le16	index_0;
6219 	__le16	index_1;
6220 	__le16	index_2;
6221 	__le16	index_3;
6222 	u8	flags;
6223 	#define NVM_GET_VARIABLE_REQ_FLAGS_FACTORY_DFLT     0x1UL
6224 	u8	unused_0;
6225 };
6226 
6227 /* hwrm_nvm_get_variable_output (size:128b/16B) */
6228 struct hwrm_nvm_get_variable_output {
6229 	__le16	error_code;
6230 	__le16	req_type;
6231 	__le16	seq_id;
6232 	__le16	resp_len;
6233 	__le16	data_len;
6234 	__le16	option_num;
6235 	#define NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_0    0x0UL
6236 	#define NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_FFFF 0xffffUL
6237 	#define NVM_GET_VARIABLE_RESP_OPTION_NUM_LAST     NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_FFFF
6238 	u8	unused_0[3];
6239 	u8	valid;
6240 };
6241 
6242 /* hwrm_nvm_get_variable_cmd_err (size:64b/8B) */
6243 struct hwrm_nvm_get_variable_cmd_err {
6244 	u8	code;
6245 	#define NVM_GET_VARIABLE_CMD_ERR_CODE_UNKNOWN       0x0UL
6246 	#define NVM_GET_VARIABLE_CMD_ERR_CODE_VAR_NOT_EXIST 0x1UL
6247 	#define NVM_GET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR   0x2UL
6248 	#define NVM_GET_VARIABLE_CMD_ERR_CODE_LEN_TOO_SHORT 0x3UL
6249 	#define NVM_GET_VARIABLE_CMD_ERR_CODE_LAST         NVM_GET_VARIABLE_CMD_ERR_CODE_LEN_TOO_SHORT
6250 	u8	unused_0[7];
6251 };
6252 
6253 /* hwrm_nvm_set_variable_input (size:320b/40B) */
6254 struct hwrm_nvm_set_variable_input {
6255 	__le16	req_type;
6256 	__le16	cmpl_ring;
6257 	__le16	seq_id;
6258 	__le16	target_id;
6259 	__le64	resp_addr;
6260 	__le64	src_data_addr;
6261 	__le16	data_len;
6262 	__le16	option_num;
6263 	#define NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_0    0x0UL
6264 	#define NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 0xffffUL
6265 	#define NVM_SET_VARIABLE_REQ_OPTION_NUM_LAST     NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF
6266 	__le16	dimensions;
6267 	__le16	index_0;
6268 	__le16	index_1;
6269 	__le16	index_2;
6270 	__le16	index_3;
6271 	u8	flags;
6272 	#define NVM_SET_VARIABLE_REQ_FLAGS_FORCE_FLUSH           0x1UL
6273 	#define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_MASK     0xeUL
6274 	#define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_SFT      1
6275 	#define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_NONE       (0x0UL << 1)
6276 	#define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1  (0x1UL << 1)
6277 	#define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_LAST      NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1
6278 	u8	unused_0;
6279 };
6280 
6281 /* hwrm_nvm_set_variable_output (size:128b/16B) */
6282 struct hwrm_nvm_set_variable_output {
6283 	__le16	error_code;
6284 	__le16	req_type;
6285 	__le16	seq_id;
6286 	__le16	resp_len;
6287 	u8	unused_0[7];
6288 	u8	valid;
6289 };
6290 
6291 /* hwrm_nvm_set_variable_cmd_err (size:64b/8B) */
6292 struct hwrm_nvm_set_variable_cmd_err {
6293 	u8	code;
6294 	#define NVM_SET_VARIABLE_CMD_ERR_CODE_UNKNOWN       0x0UL
6295 	#define NVM_SET_VARIABLE_CMD_ERR_CODE_VAR_NOT_EXIST 0x1UL
6296 	#define NVM_SET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR   0x2UL
6297 	#define NVM_SET_VARIABLE_CMD_ERR_CODE_LAST         NVM_SET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR
6298 	u8	unused_0[7];
6299 };
6300 
6301 /* hwrm_selftest_qlist_input (size:128b/16B) */
6302 struct hwrm_selftest_qlist_input {
6303 	__le16	req_type;
6304 	__le16	cmpl_ring;
6305 	__le16	seq_id;
6306 	__le16	target_id;
6307 	__le64	resp_addr;
6308 };
6309 
6310 /* hwrm_selftest_qlist_output (size:2240b/280B) */
6311 struct hwrm_selftest_qlist_output {
6312 	__le16	error_code;
6313 	__le16	req_type;
6314 	__le16	seq_id;
6315 	__le16	resp_len;
6316 	u8	num_tests;
6317 	u8	available_tests;
6318 	#define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_NVM_TEST                 0x1UL
6319 	#define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_LINK_TEST                0x2UL
6320 	#define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_REGISTER_TEST            0x4UL
6321 	#define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_MEMORY_TEST              0x8UL
6322 	#define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_PCIE_SERDES_TEST         0x10UL
6323 	#define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_ETHERNET_SERDES_TEST     0x20UL
6324 	u8	offline_tests;
6325 	#define SELFTEST_QLIST_RESP_OFFLINE_TESTS_NVM_TEST                 0x1UL
6326 	#define SELFTEST_QLIST_RESP_OFFLINE_TESTS_LINK_TEST                0x2UL
6327 	#define SELFTEST_QLIST_RESP_OFFLINE_TESTS_REGISTER_TEST            0x4UL
6328 	#define SELFTEST_QLIST_RESP_OFFLINE_TESTS_MEMORY_TEST              0x8UL
6329 	#define SELFTEST_QLIST_RESP_OFFLINE_TESTS_PCIE_SERDES_TEST         0x10UL
6330 	#define SELFTEST_QLIST_RESP_OFFLINE_TESTS_ETHERNET_SERDES_TEST     0x20UL
6331 	u8	unused_0;
6332 	__le16	test_timeout;
6333 	u8	unused_1[2];
6334 	char	test0_name[32];
6335 	char	test1_name[32];
6336 	char	test2_name[32];
6337 	char	test3_name[32];
6338 	char	test4_name[32];
6339 	char	test5_name[32];
6340 	char	test6_name[32];
6341 	char	test7_name[32];
6342 	u8	unused_2[7];
6343 	u8	valid;
6344 };
6345 
6346 /* hwrm_selftest_exec_input (size:192b/24B) */
6347 struct hwrm_selftest_exec_input {
6348 	__le16	req_type;
6349 	__le16	cmpl_ring;
6350 	__le16	seq_id;
6351 	__le16	target_id;
6352 	__le64	resp_addr;
6353 	u8	flags;
6354 	#define SELFTEST_EXEC_REQ_FLAGS_NVM_TEST                 0x1UL
6355 	#define SELFTEST_EXEC_REQ_FLAGS_LINK_TEST                0x2UL
6356 	#define SELFTEST_EXEC_REQ_FLAGS_REGISTER_TEST            0x4UL
6357 	#define SELFTEST_EXEC_REQ_FLAGS_MEMORY_TEST              0x8UL
6358 	#define SELFTEST_EXEC_REQ_FLAGS_PCIE_SERDES_TEST         0x10UL
6359 	#define SELFTEST_EXEC_REQ_FLAGS_ETHERNET_SERDES_TEST     0x20UL
6360 	u8	unused_0[7];
6361 };
6362 
6363 /* hwrm_selftest_exec_output (size:128b/16B) */
6364 struct hwrm_selftest_exec_output {
6365 	__le16	error_code;
6366 	__le16	req_type;
6367 	__le16	seq_id;
6368 	__le16	resp_len;
6369 	u8	requested_tests;
6370 	#define SELFTEST_EXEC_RESP_REQUESTED_TESTS_NVM_TEST                 0x1UL
6371 	#define SELFTEST_EXEC_RESP_REQUESTED_TESTS_LINK_TEST                0x2UL
6372 	#define SELFTEST_EXEC_RESP_REQUESTED_TESTS_REGISTER_TEST            0x4UL
6373 	#define SELFTEST_EXEC_RESP_REQUESTED_TESTS_MEMORY_TEST              0x8UL
6374 	#define SELFTEST_EXEC_RESP_REQUESTED_TESTS_PCIE_SERDES_TEST         0x10UL
6375 	#define SELFTEST_EXEC_RESP_REQUESTED_TESTS_ETHERNET_SERDES_TEST     0x20UL
6376 	u8	test_success;
6377 	#define SELFTEST_EXEC_RESP_TEST_SUCCESS_NVM_TEST                 0x1UL
6378 	#define SELFTEST_EXEC_RESP_TEST_SUCCESS_LINK_TEST                0x2UL
6379 	#define SELFTEST_EXEC_RESP_TEST_SUCCESS_REGISTER_TEST            0x4UL
6380 	#define SELFTEST_EXEC_RESP_TEST_SUCCESS_MEMORY_TEST              0x8UL
6381 	#define SELFTEST_EXEC_RESP_TEST_SUCCESS_PCIE_SERDES_TEST         0x10UL
6382 	#define SELFTEST_EXEC_RESP_TEST_SUCCESS_ETHERNET_SERDES_TEST     0x20UL
6383 	u8	unused_0[5];
6384 	u8	valid;
6385 };
6386 
6387 /* hwrm_selftest_irq_input (size:128b/16B) */
6388 struct hwrm_selftest_irq_input {
6389 	__le16	req_type;
6390 	__le16	cmpl_ring;
6391 	__le16	seq_id;
6392 	__le16	target_id;
6393 	__le64	resp_addr;
6394 };
6395 
6396 /* hwrm_selftest_irq_output (size:128b/16B) */
6397 struct hwrm_selftest_irq_output {
6398 	__le16	error_code;
6399 	__le16	req_type;
6400 	__le16	seq_id;
6401 	__le16	resp_len;
6402 	u8	unused_0[7];
6403 	u8	valid;
6404 };
6405 
6406 #endif /* _BNXT_HSI_H_ */
6407