Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / drivers / net / ethernet / broadcom / bnxt / bnxt_hsi.h
1 /* Broadcom NetXtreme-C/E network driver.
2  *
3  * Copyright (c) 2014-2016 Broadcom Corporation
4  * Copyright (c) 2016-2019 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_QUERY_ROCE_CC_GEN1              0x4UL
41 #define TLV_TYPE_MODIFY_ROCE_CC_GEN1             0x5UL
42 #define TLV_TYPE_ENGINE_CKV_DEVICE_SERIAL_NUMBER 0x8001UL
43 #define TLV_TYPE_ENGINE_CKV_NONCE                0x8002UL
44 #define TLV_TYPE_ENGINE_CKV_IV                   0x8003UL
45 #define TLV_TYPE_ENGINE_CKV_AUTH_TAG             0x8004UL
46 #define TLV_TYPE_ENGINE_CKV_CIPHERTEXT           0x8005UL
47 #define TLV_TYPE_ENGINE_CKV_ALGORITHMS           0x8006UL
48 #define TLV_TYPE_ENGINE_CKV_ECC_PUBLIC_KEY       0x8007UL
49 #define TLV_TYPE_ENGINE_CKV_ECDSA_SIGNATURE      0x8008UL
50 #define TLV_TYPE_LAST                           TLV_TYPE_ENGINE_CKV_ECDSA_SIGNATURE
51
52
53 /* tlv (size:64b/8B) */
54 struct tlv {
55         __le16  cmd_discr;
56         u8      reserved_8b;
57         u8      flags;
58         #define TLV_FLAGS_MORE         0x1UL
59         #define TLV_FLAGS_MORE_LAST      0x0UL
60         #define TLV_FLAGS_MORE_NOT_LAST  0x1UL
61         #define TLV_FLAGS_REQUIRED     0x2UL
62         #define TLV_FLAGS_REQUIRED_NO    (0x0UL << 1)
63         #define TLV_FLAGS_REQUIRED_YES   (0x1UL << 1)
64         #define TLV_FLAGS_REQUIRED_LAST TLV_FLAGS_REQUIRED_YES
65         __le16  tlv_type;
66         __le16  length;
67 };
68
69 /* input (size:128b/16B) */
70 struct input {
71         __le16  req_type;
72         __le16  cmpl_ring;
73         __le16  seq_id;
74         __le16  target_id;
75         __le64  resp_addr;
76 };
77
78 /* output (size:64b/8B) */
79 struct output {
80         __le16  error_code;
81         __le16  req_type;
82         __le16  seq_id;
83         __le16  resp_len;
84 };
85
86 /* hwrm_short_input (size:128b/16B) */
87 struct hwrm_short_input {
88         __le16  req_type;
89         __le16  signature;
90         #define SHORT_REQ_SIGNATURE_SHORT_CMD 0x4321UL
91         #define SHORT_REQ_SIGNATURE_LAST     SHORT_REQ_SIGNATURE_SHORT_CMD
92         __le16  target_id;
93         #define SHORT_REQ_TARGET_ID_DEFAULT 0x0UL
94         #define SHORT_REQ_TARGET_ID_TOOLS   0xfffdUL
95         #define SHORT_REQ_TARGET_ID_LAST   SHORT_REQ_TARGET_ID_TOOLS
96         __le16  size;
97         __le64  req_addr;
98 };
99
100 /* cmd_nums (size:64b/8B) */
101 struct cmd_nums {
102         __le16  req_type;
103         #define HWRM_VER_GET                              0x0UL
104         #define HWRM_ERROR_RECOVERY_QCFG                  0xcUL
105         #define HWRM_FUNC_DRV_IF_CHANGE                   0xdUL
106         #define HWRM_FUNC_BUF_UNRGTR                      0xeUL
107         #define HWRM_FUNC_VF_CFG                          0xfUL
108         #define HWRM_RESERVED1                            0x10UL
109         #define HWRM_FUNC_RESET                           0x11UL
110         #define HWRM_FUNC_GETFID                          0x12UL
111         #define HWRM_FUNC_VF_ALLOC                        0x13UL
112         #define HWRM_FUNC_VF_FREE                         0x14UL
113         #define HWRM_FUNC_QCAPS                           0x15UL
114         #define HWRM_FUNC_QCFG                            0x16UL
115         #define HWRM_FUNC_CFG                             0x17UL
116         #define HWRM_FUNC_QSTATS                          0x18UL
117         #define HWRM_FUNC_CLR_STATS                       0x19UL
118         #define HWRM_FUNC_DRV_UNRGTR                      0x1aUL
119         #define HWRM_FUNC_VF_RESC_FREE                    0x1bUL
120         #define HWRM_FUNC_VF_VNIC_IDS_QUERY               0x1cUL
121         #define HWRM_FUNC_DRV_RGTR                        0x1dUL
122         #define HWRM_FUNC_DRV_QVER                        0x1eUL
123         #define HWRM_FUNC_BUF_RGTR                        0x1fUL
124         #define HWRM_PORT_PHY_CFG                         0x20UL
125         #define HWRM_PORT_MAC_CFG                         0x21UL
126         #define HWRM_PORT_TS_QUERY                        0x22UL
127         #define HWRM_PORT_QSTATS                          0x23UL
128         #define HWRM_PORT_LPBK_QSTATS                     0x24UL
129         #define HWRM_PORT_CLR_STATS                       0x25UL
130         #define HWRM_PORT_LPBK_CLR_STATS                  0x26UL
131         #define HWRM_PORT_PHY_QCFG                        0x27UL
132         #define HWRM_PORT_MAC_QCFG                        0x28UL
133         #define HWRM_PORT_MAC_PTP_QCFG                    0x29UL
134         #define HWRM_PORT_PHY_QCAPS                       0x2aUL
135         #define HWRM_PORT_PHY_I2C_WRITE                   0x2bUL
136         #define HWRM_PORT_PHY_I2C_READ                    0x2cUL
137         #define HWRM_PORT_LED_CFG                         0x2dUL
138         #define HWRM_PORT_LED_QCFG                        0x2eUL
139         #define HWRM_PORT_LED_QCAPS                       0x2fUL
140         #define HWRM_QUEUE_QPORTCFG                       0x30UL
141         #define HWRM_QUEUE_QCFG                           0x31UL
142         #define HWRM_QUEUE_CFG                            0x32UL
143         #define HWRM_FUNC_VLAN_CFG                        0x33UL
144         #define HWRM_FUNC_VLAN_QCFG                       0x34UL
145         #define HWRM_QUEUE_PFCENABLE_QCFG                 0x35UL
146         #define HWRM_QUEUE_PFCENABLE_CFG                  0x36UL
147         #define HWRM_QUEUE_PRI2COS_QCFG                   0x37UL
148         #define HWRM_QUEUE_PRI2COS_CFG                    0x38UL
149         #define HWRM_QUEUE_COS2BW_QCFG                    0x39UL
150         #define HWRM_QUEUE_COS2BW_CFG                     0x3aUL
151         #define HWRM_QUEUE_DSCP_QCAPS                     0x3bUL
152         #define HWRM_QUEUE_DSCP2PRI_QCFG                  0x3cUL
153         #define HWRM_QUEUE_DSCP2PRI_CFG                   0x3dUL
154         #define HWRM_VNIC_ALLOC                           0x40UL
155         #define HWRM_VNIC_FREE                            0x41UL
156         #define HWRM_VNIC_CFG                             0x42UL
157         #define HWRM_VNIC_QCFG                            0x43UL
158         #define HWRM_VNIC_TPA_CFG                         0x44UL
159         #define HWRM_VNIC_TPA_QCFG                        0x45UL
160         #define HWRM_VNIC_RSS_CFG                         0x46UL
161         #define HWRM_VNIC_RSS_QCFG                        0x47UL
162         #define HWRM_VNIC_PLCMODES_CFG                    0x48UL
163         #define HWRM_VNIC_PLCMODES_QCFG                   0x49UL
164         #define HWRM_VNIC_QCAPS                           0x4aUL
165         #define HWRM_RING_ALLOC                           0x50UL
166         #define HWRM_RING_FREE                            0x51UL
167         #define HWRM_RING_CMPL_RING_QAGGINT_PARAMS        0x52UL
168         #define HWRM_RING_CMPL_RING_CFG_AGGINT_PARAMS     0x53UL
169         #define HWRM_RING_AGGINT_QCAPS                    0x54UL
170         #define HWRM_RING_RESET                           0x5eUL
171         #define HWRM_RING_GRP_ALLOC                       0x60UL
172         #define HWRM_RING_GRP_FREE                        0x61UL
173         #define HWRM_RESERVED5                            0x64UL
174         #define HWRM_RESERVED6                            0x65UL
175         #define HWRM_VNIC_RSS_COS_LB_CTX_ALLOC            0x70UL
176         #define HWRM_VNIC_RSS_COS_LB_CTX_FREE             0x71UL
177         #define HWRM_CFA_L2_FILTER_ALLOC                  0x90UL
178         #define HWRM_CFA_L2_FILTER_FREE                   0x91UL
179         #define HWRM_CFA_L2_FILTER_CFG                    0x92UL
180         #define HWRM_CFA_L2_SET_RX_MASK                   0x93UL
181         #define HWRM_CFA_VLAN_ANTISPOOF_CFG               0x94UL
182         #define HWRM_CFA_TUNNEL_FILTER_ALLOC              0x95UL
183         #define HWRM_CFA_TUNNEL_FILTER_FREE               0x96UL
184         #define HWRM_CFA_ENCAP_RECORD_ALLOC               0x97UL
185         #define HWRM_CFA_ENCAP_RECORD_FREE                0x98UL
186         #define HWRM_CFA_NTUPLE_FILTER_ALLOC              0x99UL
187         #define HWRM_CFA_NTUPLE_FILTER_FREE               0x9aUL
188         #define HWRM_CFA_NTUPLE_FILTER_CFG                0x9bUL
189         #define HWRM_CFA_EM_FLOW_ALLOC                    0x9cUL
190         #define HWRM_CFA_EM_FLOW_FREE                     0x9dUL
191         #define HWRM_CFA_EM_FLOW_CFG                      0x9eUL
192         #define HWRM_TUNNEL_DST_PORT_QUERY                0xa0UL
193         #define HWRM_TUNNEL_DST_PORT_ALLOC                0xa1UL
194         #define HWRM_TUNNEL_DST_PORT_FREE                 0xa2UL
195         #define HWRM_STAT_CTX_ENG_QUERY                   0xafUL
196         #define HWRM_STAT_CTX_ALLOC                       0xb0UL
197         #define HWRM_STAT_CTX_FREE                        0xb1UL
198         #define HWRM_STAT_CTX_QUERY                       0xb2UL
199         #define HWRM_STAT_CTX_CLR_STATS                   0xb3UL
200         #define HWRM_PORT_QSTATS_EXT                      0xb4UL
201         #define HWRM_PORT_PHY_MDIO_WRITE                  0xb5UL
202         #define HWRM_PORT_PHY_MDIO_READ                   0xb6UL
203         #define HWRM_FW_RESET                             0xc0UL
204         #define HWRM_FW_QSTATUS                           0xc1UL
205         #define HWRM_FW_HEALTH_CHECK                      0xc2UL
206         #define HWRM_FW_SYNC                              0xc3UL
207         #define HWRM_FW_SET_TIME                          0xc8UL
208         #define HWRM_FW_GET_TIME                          0xc9UL
209         #define HWRM_FW_SET_STRUCTURED_DATA               0xcaUL
210         #define HWRM_FW_GET_STRUCTURED_DATA               0xcbUL
211         #define HWRM_FW_IPC_MAILBOX                       0xccUL
212         #define HWRM_EXEC_FWD_RESP                        0xd0UL
213         #define HWRM_REJECT_FWD_RESP                      0xd1UL
214         #define HWRM_FWD_RESP                             0xd2UL
215         #define HWRM_FWD_ASYNC_EVENT_CMPL                 0xd3UL
216         #define HWRM_OEM_CMD                              0xd4UL
217         #define HWRM_PORT_PRBS_TEST                       0xd5UL
218         #define HWRM_TEMP_MONITOR_QUERY                   0xe0UL
219         #define HWRM_WOL_FILTER_ALLOC                     0xf0UL
220         #define HWRM_WOL_FILTER_FREE                      0xf1UL
221         #define HWRM_WOL_FILTER_QCFG                      0xf2UL
222         #define HWRM_WOL_REASON_QCFG                      0xf3UL
223         #define HWRM_CFA_METER_QCAPS                      0xf4UL
224         #define HWRM_CFA_METER_PROFILE_ALLOC              0xf5UL
225         #define HWRM_CFA_METER_PROFILE_FREE               0xf6UL
226         #define HWRM_CFA_METER_PROFILE_CFG                0xf7UL
227         #define HWRM_CFA_METER_INSTANCE_ALLOC             0xf8UL
228         #define HWRM_CFA_METER_INSTANCE_FREE              0xf9UL
229         #define HWRM_CFA_METER_INSTANCE_CFG               0xfaUL
230         #define HWRM_CFA_VFR_ALLOC                        0xfdUL
231         #define HWRM_CFA_VFR_FREE                         0xfeUL
232         #define HWRM_CFA_VF_PAIR_ALLOC                    0x100UL
233         #define HWRM_CFA_VF_PAIR_FREE                     0x101UL
234         #define HWRM_CFA_VF_PAIR_INFO                     0x102UL
235         #define HWRM_CFA_FLOW_ALLOC                       0x103UL
236         #define HWRM_CFA_FLOW_FREE                        0x104UL
237         #define HWRM_CFA_FLOW_FLUSH                       0x105UL
238         #define HWRM_CFA_FLOW_STATS                       0x106UL
239         #define HWRM_CFA_FLOW_INFO                        0x107UL
240         #define HWRM_CFA_DECAP_FILTER_ALLOC               0x108UL
241         #define HWRM_CFA_DECAP_FILTER_FREE                0x109UL
242         #define HWRM_CFA_VLAN_ANTISPOOF_QCFG              0x10aUL
243         #define HWRM_CFA_REDIRECT_TUNNEL_TYPE_ALLOC       0x10bUL
244         #define HWRM_CFA_REDIRECT_TUNNEL_TYPE_FREE        0x10cUL
245         #define HWRM_CFA_PAIR_ALLOC                       0x10dUL
246         #define HWRM_CFA_PAIR_FREE                        0x10eUL
247         #define HWRM_CFA_PAIR_INFO                        0x10fUL
248         #define HWRM_FW_IPC_MSG                           0x110UL
249         #define HWRM_CFA_REDIRECT_TUNNEL_TYPE_INFO        0x111UL
250         #define HWRM_CFA_REDIRECT_QUERY_TUNNEL_TYPE       0x112UL
251         #define HWRM_CFA_FLOW_AGING_TIMER_RESET           0x113UL
252         #define HWRM_CFA_FLOW_AGING_CFG                   0x114UL
253         #define HWRM_CFA_FLOW_AGING_QCFG                  0x115UL
254         #define HWRM_CFA_FLOW_AGING_QCAPS                 0x116UL
255         #define HWRM_CFA_CTX_MEM_RGTR                     0x117UL
256         #define HWRM_CFA_CTX_MEM_UNRGTR                   0x118UL
257         #define HWRM_CFA_CTX_MEM_QCTX                     0x119UL
258         #define HWRM_CFA_CTX_MEM_QCAPS                    0x11aUL
259         #define HWRM_CFA_COUNTER_QCAPS                    0x11bUL
260         #define HWRM_CFA_COUNTER_CFG                      0x11cUL
261         #define HWRM_CFA_COUNTER_QCFG                     0x11dUL
262         #define HWRM_CFA_COUNTER_QSTATS                   0x11eUL
263         #define HWRM_CFA_TCP_FLAG_PROCESS_QCFG            0x11fUL
264         #define HWRM_CFA_EEM_QCAPS                        0x120UL
265         #define HWRM_CFA_EEM_CFG                          0x121UL
266         #define HWRM_CFA_EEM_QCFG                         0x122UL
267         #define HWRM_CFA_EEM_OP                           0x123UL
268         #define HWRM_CFA_ADV_FLOW_MGNT_QCAPS              0x124UL
269         #define HWRM_CFA_TFLIB                            0x125UL
270         #define HWRM_ENGINE_CKV_HELLO                     0x12dUL
271         #define HWRM_ENGINE_CKV_STATUS                    0x12eUL
272         #define HWRM_ENGINE_CKV_CKEK_ADD                  0x12fUL
273         #define HWRM_ENGINE_CKV_CKEK_DELETE               0x130UL
274         #define HWRM_ENGINE_CKV_KEY_ADD                   0x131UL
275         #define HWRM_ENGINE_CKV_KEY_DELETE                0x132UL
276         #define HWRM_ENGINE_CKV_FLUSH                     0x133UL
277         #define HWRM_ENGINE_CKV_RNG_GET                   0x134UL
278         #define HWRM_ENGINE_CKV_KEY_GEN                   0x135UL
279         #define HWRM_ENGINE_CKV_KEY_LABEL_CFG             0x136UL
280         #define HWRM_ENGINE_CKV_KEY_LABEL_QCFG            0x137UL
281         #define HWRM_ENGINE_QG_CONFIG_QUERY               0x13cUL
282         #define HWRM_ENGINE_QG_QUERY                      0x13dUL
283         #define HWRM_ENGINE_QG_METER_PROFILE_CONFIG_QUERY 0x13eUL
284         #define HWRM_ENGINE_QG_METER_PROFILE_QUERY        0x13fUL
285         #define HWRM_ENGINE_QG_METER_PROFILE_ALLOC        0x140UL
286         #define HWRM_ENGINE_QG_METER_PROFILE_FREE         0x141UL
287         #define HWRM_ENGINE_QG_METER_QUERY                0x142UL
288         #define HWRM_ENGINE_QG_METER_BIND                 0x143UL
289         #define HWRM_ENGINE_QG_METER_UNBIND               0x144UL
290         #define HWRM_ENGINE_QG_FUNC_BIND                  0x145UL
291         #define HWRM_ENGINE_SG_CONFIG_QUERY               0x146UL
292         #define HWRM_ENGINE_SG_QUERY                      0x147UL
293         #define HWRM_ENGINE_SG_METER_QUERY                0x148UL
294         #define HWRM_ENGINE_SG_METER_CONFIG               0x149UL
295         #define HWRM_ENGINE_SG_QG_BIND                    0x14aUL
296         #define HWRM_ENGINE_QG_SG_UNBIND                  0x14bUL
297         #define HWRM_ENGINE_CONFIG_QUERY                  0x154UL
298         #define HWRM_ENGINE_STATS_CONFIG                  0x155UL
299         #define HWRM_ENGINE_STATS_CLEAR                   0x156UL
300         #define HWRM_ENGINE_STATS_QUERY                   0x157UL
301         #define HWRM_ENGINE_RQ_ALLOC                      0x15eUL
302         #define HWRM_ENGINE_RQ_FREE                       0x15fUL
303         #define HWRM_ENGINE_CQ_ALLOC                      0x160UL
304         #define HWRM_ENGINE_CQ_FREE                       0x161UL
305         #define HWRM_ENGINE_NQ_ALLOC                      0x162UL
306         #define HWRM_ENGINE_NQ_FREE                       0x163UL
307         #define HWRM_ENGINE_ON_DIE_RQE_CREDITS            0x164UL
308         #define HWRM_ENGINE_FUNC_QCFG                     0x165UL
309         #define HWRM_FUNC_RESOURCE_QCAPS                  0x190UL
310         #define HWRM_FUNC_VF_RESOURCE_CFG                 0x191UL
311         #define HWRM_FUNC_BACKING_STORE_QCAPS             0x192UL
312         #define HWRM_FUNC_BACKING_STORE_CFG               0x193UL
313         #define HWRM_FUNC_BACKING_STORE_QCFG              0x194UL
314         #define HWRM_FUNC_VF_BW_CFG                       0x195UL
315         #define HWRM_FUNC_VF_BW_QCFG                      0x196UL
316         #define HWRM_SELFTEST_QLIST                       0x200UL
317         #define HWRM_SELFTEST_EXEC                        0x201UL
318         #define HWRM_SELFTEST_IRQ                         0x202UL
319         #define HWRM_SELFTEST_RETRIEVE_SERDES_DATA        0x203UL
320         #define HWRM_PCIE_QSTATS                          0x204UL
321         #define HWRM_MFG_FRU_WRITE_CONTROL                0x205UL
322         #define HWRM_MFG_TIMERS_QUERY                     0x206UL
323         #define HWRM_MFG_OTP_CFG                          0x207UL
324         #define HWRM_MFG_OTP_QCFG                         0x208UL
325         #define HWRM_MFG_HDMA_TEST                        0x209UL
326         #define HWRM_DBG_READ_DIRECT                      0xff10UL
327         #define HWRM_DBG_READ_INDIRECT                    0xff11UL
328         #define HWRM_DBG_WRITE_DIRECT                     0xff12UL
329         #define HWRM_DBG_WRITE_INDIRECT                   0xff13UL
330         #define HWRM_DBG_DUMP                             0xff14UL
331         #define HWRM_DBG_ERASE_NVM                        0xff15UL
332         #define HWRM_DBG_CFG                              0xff16UL
333         #define HWRM_DBG_COREDUMP_LIST                    0xff17UL
334         #define HWRM_DBG_COREDUMP_INITIATE                0xff18UL
335         #define HWRM_DBG_COREDUMP_RETRIEVE                0xff19UL
336         #define HWRM_DBG_FW_CLI                           0xff1aUL
337         #define HWRM_DBG_I2C_CMD                          0xff1bUL
338         #define HWRM_DBG_RING_INFO_GET                    0xff1cUL
339         #define HWRM_DBG_CRASHDUMP_HEADER                 0xff1dUL
340         #define HWRM_DBG_CRASHDUMP_ERASE                  0xff1eUL
341         #define HWRM_NVM_FACTORY_DEFAULTS                 0xffeeUL
342         #define HWRM_NVM_VALIDATE_OPTION                  0xffefUL
343         #define HWRM_NVM_FLUSH                            0xfff0UL
344         #define HWRM_NVM_GET_VARIABLE                     0xfff1UL
345         #define HWRM_NVM_SET_VARIABLE                     0xfff2UL
346         #define HWRM_NVM_INSTALL_UPDATE                   0xfff3UL
347         #define HWRM_NVM_MODIFY                           0xfff4UL
348         #define HWRM_NVM_VERIFY_UPDATE                    0xfff5UL
349         #define HWRM_NVM_GET_DEV_INFO                     0xfff6UL
350         #define HWRM_NVM_ERASE_DIR_ENTRY                  0xfff7UL
351         #define HWRM_NVM_MOD_DIR_ENTRY                    0xfff8UL
352         #define HWRM_NVM_FIND_DIR_ENTRY                   0xfff9UL
353         #define HWRM_NVM_GET_DIR_ENTRIES                  0xfffaUL
354         #define HWRM_NVM_GET_DIR_INFO                     0xfffbUL
355         #define HWRM_NVM_RAW_DUMP                         0xfffcUL
356         #define HWRM_NVM_READ                             0xfffdUL
357         #define HWRM_NVM_WRITE                            0xfffeUL
358         #define HWRM_NVM_RAW_WRITE_BLK                    0xffffUL
359         #define HWRM_LAST                                HWRM_NVM_RAW_WRITE_BLK
360         __le16  unused_0[3];
361 };
362
363 /* ret_codes (size:64b/8B) */
364 struct ret_codes {
365         __le16  error_code;
366         #define HWRM_ERR_CODE_SUCCESS                      0x0UL
367         #define HWRM_ERR_CODE_FAIL                         0x1UL
368         #define HWRM_ERR_CODE_INVALID_PARAMS               0x2UL
369         #define HWRM_ERR_CODE_RESOURCE_ACCESS_DENIED       0x3UL
370         #define HWRM_ERR_CODE_RESOURCE_ALLOC_ERROR         0x4UL
371         #define HWRM_ERR_CODE_INVALID_FLAGS                0x5UL
372         #define HWRM_ERR_CODE_INVALID_ENABLES              0x6UL
373         #define HWRM_ERR_CODE_UNSUPPORTED_TLV              0x7UL
374         #define HWRM_ERR_CODE_NO_BUFFER                    0x8UL
375         #define HWRM_ERR_CODE_UNSUPPORTED_OPTION_ERR       0x9UL
376         #define HWRM_ERR_CODE_HOT_RESET_PROGRESS           0xaUL
377         #define HWRM_ERR_CODE_HOT_RESET_FAIL               0xbUL
378         #define HWRM_ERR_CODE_NO_FLOW_COUNTER_DURING_ALLOC 0xcUL
379         #define HWRM_ERR_CODE_KEY_HASH_COLLISION           0xdUL
380         #define HWRM_ERR_CODE_KEY_ALREADY_EXISTS           0xeUL
381         #define HWRM_ERR_CODE_HWRM_ERROR                   0xfUL
382         #define HWRM_ERR_CODE_TLV_ENCAPSULATED_RESPONSE    0x8000UL
383         #define HWRM_ERR_CODE_UNKNOWN_ERR                  0xfffeUL
384         #define HWRM_ERR_CODE_CMD_NOT_SUPPORTED            0xffffUL
385         #define HWRM_ERR_CODE_LAST                        HWRM_ERR_CODE_CMD_NOT_SUPPORTED
386         __le16  unused_0[3];
387 };
388
389 /* hwrm_err_output (size:128b/16B) */
390 struct hwrm_err_output {
391         __le16  error_code;
392         __le16  req_type;
393         __le16  seq_id;
394         __le16  resp_len;
395         __le32  opaque_0;
396         __le16  opaque_1;
397         u8      cmd_err;
398         u8      valid;
399 };
400 #define HWRM_NA_SIGNATURE ((__le32)(-1))
401 #define HWRM_MAX_REQ_LEN 128
402 #define HWRM_MAX_RESP_LEN 704
403 #define HW_HASH_INDEX_SIZE 0x80
404 #define HW_HASH_KEY_SIZE 40
405 #define HWRM_RESP_VALID_KEY 1
406 #define HWRM_TARGET_ID_BONO 0xFFF8
407 #define HWRM_TARGET_ID_KONG 0xFFF9
408 #define HWRM_TARGET_ID_APE 0xFFFA
409 #define HWRM_TARGET_ID_TOOLS 0xFFFD
410 #define HWRM_VERSION_MAJOR 1
411 #define HWRM_VERSION_MINOR 10
412 #define HWRM_VERSION_UPDATE 0
413 #define HWRM_VERSION_RSVD 69
414 #define HWRM_VERSION_STR "1.10.0.69"
415
416 /* hwrm_ver_get_input (size:192b/24B) */
417 struct hwrm_ver_get_input {
418         __le16  req_type;
419         __le16  cmpl_ring;
420         __le16  seq_id;
421         __le16  target_id;
422         __le64  resp_addr;
423         u8      hwrm_intf_maj;
424         u8      hwrm_intf_min;
425         u8      hwrm_intf_upd;
426         u8      unused_0[5];
427 };
428
429 /* hwrm_ver_get_output (size:1408b/176B) */
430 struct hwrm_ver_get_output {
431         __le16  error_code;
432         __le16  req_type;
433         __le16  seq_id;
434         __le16  resp_len;
435         u8      hwrm_intf_maj_8b;
436         u8      hwrm_intf_min_8b;
437         u8      hwrm_intf_upd_8b;
438         u8      hwrm_intf_rsvd_8b;
439         u8      hwrm_fw_maj_8b;
440         u8      hwrm_fw_min_8b;
441         u8      hwrm_fw_bld_8b;
442         u8      hwrm_fw_rsvd_8b;
443         u8      mgmt_fw_maj_8b;
444         u8      mgmt_fw_min_8b;
445         u8      mgmt_fw_bld_8b;
446         u8      mgmt_fw_rsvd_8b;
447         u8      netctrl_fw_maj_8b;
448         u8      netctrl_fw_min_8b;
449         u8      netctrl_fw_bld_8b;
450         u8      netctrl_fw_rsvd_8b;
451         __le32  dev_caps_cfg;
452         #define VER_GET_RESP_DEV_CAPS_CFG_SECURE_FW_UPD_SUPPORTED                  0x1UL
453         #define VER_GET_RESP_DEV_CAPS_CFG_FW_DCBX_AGENT_SUPPORTED                  0x2UL
454         #define VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_SUPPORTED                      0x4UL
455         #define VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_REQUIRED                       0x8UL
456         #define VER_GET_RESP_DEV_CAPS_CFG_KONG_MB_CHNL_SUPPORTED                   0x10UL
457         #define VER_GET_RESP_DEV_CAPS_CFG_FLOW_HANDLE_64BIT_SUPPORTED              0x20UL
458         #define VER_GET_RESP_DEV_CAPS_CFG_L2_FILTER_TYPES_ROCE_OR_L2_SUPPORTED     0x40UL
459         #define VER_GET_RESP_DEV_CAPS_CFG_VIRTIO_VSWITCH_OFFLOAD_SUPPORTED         0x80UL
460         #define VER_GET_RESP_DEV_CAPS_CFG_TRUSTED_VF_SUPPORTED                     0x100UL
461         #define VER_GET_RESP_DEV_CAPS_CFG_FLOW_AGING_SUPPORTED                     0x200UL
462         #define VER_GET_RESP_DEV_CAPS_CFG_ADV_FLOW_COUNTERS_SUPPORTED              0x400UL
463         #define VER_GET_RESP_DEV_CAPS_CFG_CFA_EEM_SUPPORTED                        0x800UL
464         #define VER_GET_RESP_DEV_CAPS_CFG_CFA_ADV_FLOW_MGNT_SUPPORTED              0x1000UL
465         #define VER_GET_RESP_DEV_CAPS_CFG_CFA_TFLIB_SUPPORTED                      0x2000UL
466         u8      roce_fw_maj_8b;
467         u8      roce_fw_min_8b;
468         u8      roce_fw_bld_8b;
469         u8      roce_fw_rsvd_8b;
470         char    hwrm_fw_name[16];
471         char    mgmt_fw_name[16];
472         char    netctrl_fw_name[16];
473         char    active_pkg_name[16];
474         char    roce_fw_name[16];
475         __le16  chip_num;
476         u8      chip_rev;
477         u8      chip_metal;
478         u8      chip_bond_id;
479         u8      chip_platform_type;
480         #define VER_GET_RESP_CHIP_PLATFORM_TYPE_ASIC      0x0UL
481         #define VER_GET_RESP_CHIP_PLATFORM_TYPE_FPGA      0x1UL
482         #define VER_GET_RESP_CHIP_PLATFORM_TYPE_PALLADIUM 0x2UL
483         #define VER_GET_RESP_CHIP_PLATFORM_TYPE_LAST     VER_GET_RESP_CHIP_PLATFORM_TYPE_PALLADIUM
484         __le16  max_req_win_len;
485         __le16  max_resp_len;
486         __le16  def_req_timeout;
487         u8      flags;
488         #define VER_GET_RESP_FLAGS_DEV_NOT_RDY       0x1UL
489         #define VER_GET_RESP_FLAGS_EXT_VER_AVAIL     0x2UL
490         u8      unused_0[2];
491         u8      always_1;
492         __le16  hwrm_intf_major;
493         __le16  hwrm_intf_minor;
494         __le16  hwrm_intf_build;
495         __le16  hwrm_intf_patch;
496         __le16  hwrm_fw_major;
497         __le16  hwrm_fw_minor;
498         __le16  hwrm_fw_build;
499         __le16  hwrm_fw_patch;
500         __le16  mgmt_fw_major;
501         __le16  mgmt_fw_minor;
502         __le16  mgmt_fw_build;
503         __le16  mgmt_fw_patch;
504         __le16  netctrl_fw_major;
505         __le16  netctrl_fw_minor;
506         __le16  netctrl_fw_build;
507         __le16  netctrl_fw_patch;
508         __le16  roce_fw_major;
509         __le16  roce_fw_minor;
510         __le16  roce_fw_build;
511         __le16  roce_fw_patch;
512         __le16  max_ext_req_len;
513         u8      unused_1[5];
514         u8      valid;
515 };
516
517 /* eject_cmpl (size:128b/16B) */
518 struct eject_cmpl {
519         __le16  type;
520         #define EJECT_CMPL_TYPE_MASK       0x3fUL
521         #define EJECT_CMPL_TYPE_SFT        0
522         #define EJECT_CMPL_TYPE_STAT_EJECT   0x1aUL
523         #define EJECT_CMPL_TYPE_LAST        EJECT_CMPL_TYPE_STAT_EJECT
524         #define EJECT_CMPL_FLAGS_MASK      0xffc0UL
525         #define EJECT_CMPL_FLAGS_SFT       6
526         #define EJECT_CMPL_FLAGS_ERROR      0x40UL
527         __le16  len;
528         __le32  opaque;
529         __le16  v;
530         #define EJECT_CMPL_V                              0x1UL
531         #define EJECT_CMPL_ERRORS_MASK                    0xfffeUL
532         #define EJECT_CMPL_ERRORS_SFT                     1
533         #define EJECT_CMPL_ERRORS_BUFFER_ERROR_MASK        0xeUL
534         #define EJECT_CMPL_ERRORS_BUFFER_ERROR_SFT         1
535         #define EJECT_CMPL_ERRORS_BUFFER_ERROR_NO_BUFFER     (0x0UL << 1)
536         #define EJECT_CMPL_ERRORS_BUFFER_ERROR_DID_NOT_FIT   (0x1UL << 1)
537         #define EJECT_CMPL_ERRORS_BUFFER_ERROR_BAD_FORMAT    (0x3UL << 1)
538         #define EJECT_CMPL_ERRORS_BUFFER_ERROR_FLUSH         (0x5UL << 1)
539         #define EJECT_CMPL_ERRORS_BUFFER_ERROR_LAST         EJECT_CMPL_ERRORS_BUFFER_ERROR_FLUSH
540         __le16  reserved16;
541         __le32  unused_2;
542 };
543
544 /* hwrm_cmpl (size:128b/16B) */
545 struct hwrm_cmpl {
546         __le16  type;
547         #define CMPL_TYPE_MASK     0x3fUL
548         #define CMPL_TYPE_SFT      0
549         #define CMPL_TYPE_HWRM_DONE  0x20UL
550         #define CMPL_TYPE_LAST      CMPL_TYPE_HWRM_DONE
551         __le16  sequence_id;
552         __le32  unused_1;
553         __le32  v;
554         #define CMPL_V     0x1UL
555         __le32  unused_3;
556 };
557
558 /* hwrm_fwd_req_cmpl (size:128b/16B) */
559 struct hwrm_fwd_req_cmpl {
560         __le16  req_len_type;
561         #define FWD_REQ_CMPL_TYPE_MASK        0x3fUL
562         #define FWD_REQ_CMPL_TYPE_SFT         0
563         #define FWD_REQ_CMPL_TYPE_HWRM_FWD_REQ  0x22UL
564         #define FWD_REQ_CMPL_TYPE_LAST         FWD_REQ_CMPL_TYPE_HWRM_FWD_REQ
565         #define FWD_REQ_CMPL_REQ_LEN_MASK     0xffc0UL
566         #define FWD_REQ_CMPL_REQ_LEN_SFT      6
567         __le16  source_id;
568         __le32  unused0;
569         __le32  req_buf_addr_v[2];
570         #define FWD_REQ_CMPL_V                0x1UL
571         #define FWD_REQ_CMPL_REQ_BUF_ADDR_MASK 0xfffffffeUL
572         #define FWD_REQ_CMPL_REQ_BUF_ADDR_SFT 1
573 };
574
575 /* hwrm_fwd_resp_cmpl (size:128b/16B) */
576 struct hwrm_fwd_resp_cmpl {
577         __le16  type;
578         #define FWD_RESP_CMPL_TYPE_MASK         0x3fUL
579         #define FWD_RESP_CMPL_TYPE_SFT          0
580         #define FWD_RESP_CMPL_TYPE_HWRM_FWD_RESP  0x24UL
581         #define FWD_RESP_CMPL_TYPE_LAST          FWD_RESP_CMPL_TYPE_HWRM_FWD_RESP
582         __le16  source_id;
583         __le16  resp_len;
584         __le16  unused_1;
585         __le32  resp_buf_addr_v[2];
586         #define FWD_RESP_CMPL_V                 0x1UL
587         #define FWD_RESP_CMPL_RESP_BUF_ADDR_MASK 0xfffffffeUL
588         #define FWD_RESP_CMPL_RESP_BUF_ADDR_SFT 1
589 };
590
591 /* hwrm_async_event_cmpl (size:128b/16B) */
592 struct hwrm_async_event_cmpl {
593         __le16  type;
594         #define ASYNC_EVENT_CMPL_TYPE_MASK            0x3fUL
595         #define ASYNC_EVENT_CMPL_TYPE_SFT             0
596         #define ASYNC_EVENT_CMPL_TYPE_HWRM_ASYNC_EVENT  0x2eUL
597         #define ASYNC_EVENT_CMPL_TYPE_LAST             ASYNC_EVENT_CMPL_TYPE_HWRM_ASYNC_EVENT
598         __le16  event_id;
599         #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_STATUS_CHANGE         0x0UL
600         #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_MTU_CHANGE            0x1UL
601         #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CHANGE          0x2UL
602         #define ASYNC_EVENT_CMPL_EVENT_ID_DCB_CONFIG_CHANGE          0x3UL
603         #define ASYNC_EVENT_CMPL_EVENT_ID_PORT_CONN_NOT_ALLOWED      0x4UL
604         #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_NOT_ALLOWED 0x5UL
605         #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_CHANGE      0x6UL
606         #define ASYNC_EVENT_CMPL_EVENT_ID_PORT_PHY_CFG_CHANGE        0x7UL
607         #define ASYNC_EVENT_CMPL_EVENT_ID_RESET_NOTIFY               0x8UL
608         #define ASYNC_EVENT_CMPL_EVENT_ID_ERROR_RECOVERY             0x9UL
609         #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_UNLOAD           0x10UL
610         #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_LOAD             0x11UL
611         #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_FLR_PROC_CMPLT        0x12UL
612         #define ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_UNLOAD             0x20UL
613         #define ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_LOAD               0x21UL
614         #define ASYNC_EVENT_CMPL_EVENT_ID_VF_FLR                     0x30UL
615         #define ASYNC_EVENT_CMPL_EVENT_ID_VF_MAC_ADDR_CHANGE         0x31UL
616         #define ASYNC_EVENT_CMPL_EVENT_ID_PF_VF_COMM_STATUS_CHANGE   0x32UL
617         #define ASYNC_EVENT_CMPL_EVENT_ID_VF_CFG_CHANGE              0x33UL
618         #define ASYNC_EVENT_CMPL_EVENT_ID_LLFC_PFC_CHANGE            0x34UL
619         #define ASYNC_EVENT_CMPL_EVENT_ID_DEFAULT_VNIC_CHANGE        0x35UL
620         #define ASYNC_EVENT_CMPL_EVENT_ID_HW_FLOW_AGED               0x36UL
621         #define ASYNC_EVENT_CMPL_EVENT_ID_DEBUG_NOTIFICATION         0x37UL
622         #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CACHE_FLUSH_REQ        0x38UL
623         #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CACHE_FLUSH_DONE       0x39UL
624         #define ASYNC_EVENT_CMPL_EVENT_ID_TCP_FLAG_ACTION_CHANGE     0x3aUL
625         #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_FLOW_ACTIVE            0x3bUL
626         #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CFG_CHANGE             0x3cUL
627         #define ASYNC_EVENT_CMPL_EVENT_ID_FW_TRACE_MSG               0xfeUL
628         #define ASYNC_EVENT_CMPL_EVENT_ID_HWRM_ERROR                 0xffUL
629         #define ASYNC_EVENT_CMPL_EVENT_ID_LAST                      ASYNC_EVENT_CMPL_EVENT_ID_HWRM_ERROR
630         __le32  event_data2;
631         u8      opaque_v;
632         #define ASYNC_EVENT_CMPL_V          0x1UL
633         #define ASYNC_EVENT_CMPL_OPAQUE_MASK 0xfeUL
634         #define ASYNC_EVENT_CMPL_OPAQUE_SFT 1
635         u8      timestamp_lo;
636         __le16  timestamp_hi;
637         __le32  event_data1;
638 };
639
640 /* hwrm_async_event_cmpl_link_status_change (size:128b/16B) */
641 struct hwrm_async_event_cmpl_link_status_change {
642         __le16  type;
643         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_MASK            0x3fUL
644         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_SFT             0
645         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_HWRM_ASYNC_EVENT  0x2eUL
646         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_LAST             ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_HWRM_ASYNC_EVENT
647         __le16  event_id;
648         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LINK_STATUS_CHANGE 0x0UL
649         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LAST              ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LINK_STATUS_CHANGE
650         __le32  event_data2;
651         u8      opaque_v;
652         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_V          0x1UL
653         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_OPAQUE_MASK 0xfeUL
654         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_OPAQUE_SFT 1
655         u8      timestamp_lo;
656         __le16  timestamp_hi;
657         __le32  event_data1;
658         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE     0x1UL
659         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_DOWN  0x0UL
660         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_UP    0x1UL
661         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_LAST ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_UP
662         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_MASK       0xeUL
663         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_SFT        1
664         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_ID_MASK    0xffff0UL
665         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_ID_SFT     4
666         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PF_ID_MASK      0xff00000UL
667         #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PF_ID_SFT       20
668 };
669
670 /* hwrm_async_event_cmpl_port_conn_not_allowed (size:128b/16B) */
671 struct hwrm_async_event_cmpl_port_conn_not_allowed {
672         __le16  type;
673         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_MASK            0x3fUL
674         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_SFT             0
675         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_HWRM_ASYNC_EVENT  0x2eUL
676         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_LAST             ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_HWRM_ASYNC_EVENT
677         __le16  event_id;
678         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_PORT_CONN_NOT_ALLOWED 0x4UL
679         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_LAST                 ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_PORT_CONN_NOT_ALLOWED
680         __le32  event_data2;
681         u8      opaque_v;
682         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_V          0x1UL
683         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_OPAQUE_MASK 0xfeUL
684         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_OPAQUE_SFT 1
685         u8      timestamp_lo;
686         __le16  timestamp_hi;
687         __le32  event_data1;
688         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_PORT_ID_MASK                 0xffffUL
689         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_PORT_ID_SFT                  0
690         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_MASK      0xff0000UL
691         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_SFT       16
692         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_NONE        (0x0UL << 16)
693         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_DISABLETX   (0x1UL << 16)
694         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_WARNINGMSG  (0x2UL << 16)
695         #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_PWRDOWN     (0x3UL << 16)
696         #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
697 };
698
699 /* hwrm_async_event_cmpl_link_speed_cfg_change (size:128b/16B) */
700 struct hwrm_async_event_cmpl_link_speed_cfg_change {
701         __le16  type;
702         #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_MASK            0x3fUL
703         #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_SFT             0
704         #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT  0x2eUL
705         #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_LAST             ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT
706         __le16  event_id;
707         #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LINK_SPEED_CFG_CHANGE 0x6UL
708         #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LAST                 ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LINK_SPEED_CFG_CHANGE
709         __le32  event_data2;
710         u8      opaque_v;
711         #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_V          0x1UL
712         #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_OPAQUE_MASK 0xfeUL
713         #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_OPAQUE_SFT 1
714         u8      timestamp_lo;
715         __le16  timestamp_hi;
716         __le32  event_data1;
717         #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_PORT_ID_MASK                     0xffffUL
718         #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_PORT_ID_SFT                      0
719         #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_SUPPORTED_LINK_SPEEDS_CHANGE     0x10000UL
720         #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_ILLEGAL_LINK_SPEED_CFG           0x20000UL
721 };
722
723 /* hwrm_async_event_cmpl_reset_notify (size:128b/16B) */
724 struct hwrm_async_event_cmpl_reset_notify {
725         __le16  type;
726         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_MASK            0x3fUL
727         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_SFT             0
728         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_HWRM_ASYNC_EVENT  0x2eUL
729         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_LAST             ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_HWRM_ASYNC_EVENT
730         __le16  event_id;
731         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_RESET_NOTIFY 0x8UL
732         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_LAST        ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_RESET_NOTIFY
733         __le32  event_data2;
734         u8      opaque_v;
735         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_V          0x1UL
736         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_OPAQUE_MASK 0xfeUL
737         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_OPAQUE_SFT 1
738         u8      timestamp_lo;
739         __le16  timestamp_hi;
740         __le32  event_data1;
741         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_MASK                  0xffUL
742         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_SFT                   0
743         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_STOP_TX_QUEUE    0x1UL
744         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_IFDOWN           0x2UL
745         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_LAST                   ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_IFDOWN
746         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_MASK                    0xff00UL
747         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_SFT                     8
748         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_MANAGEMENT_RESET_REQUEST  (0x1UL << 8)
749         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_EXCEPTION_FATAL        (0x2UL << 8)
750         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_EXCEPTION_NON_FATAL    (0x3UL << 8)
751         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_LAST                     ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_EXCEPTION_NON_FATAL
752         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DELAY_IN_100MS_TICKS_MASK           0xffff0000UL
753         #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DELAY_IN_100MS_TICKS_SFT            16
754 };
755
756 /* hwrm_async_event_cmpl_error_recovery (size:128b/16B) */
757 struct hwrm_async_event_cmpl_error_recovery {
758         __le16  type;
759         #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_MASK            0x3fUL
760         #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_SFT             0
761         #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_HWRM_ASYNC_EVENT  0x2eUL
762         #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_LAST             ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_HWRM_ASYNC_EVENT
763         __le16  event_id;
764         #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_ERROR_RECOVERY 0x9UL
765         #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_LAST          ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_ERROR_RECOVERY
766         __le32  event_data2;
767         u8      opaque_v;
768         #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_V          0x1UL
769         #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_OPAQUE_MASK 0xfeUL
770         #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_OPAQUE_SFT 1
771         u8      timestamp_lo;
772         __le16  timestamp_hi;
773         __le32  event_data1;
774         #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_MASK                 0xffUL
775         #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_SFT                  0
776         #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_MASTER_FUNC           0x1UL
777         #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_RECOVERY_ENABLED      0x2UL
778 };
779
780 /* hwrm_async_event_cmpl_vf_cfg_change (size:128b/16B) */
781 struct hwrm_async_event_cmpl_vf_cfg_change {
782         __le16  type;
783         #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_MASK            0x3fUL
784         #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_SFT             0
785         #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT  0x2eUL
786         #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_LAST             ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT
787         __le16  event_id;
788         #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_VF_CFG_CHANGE 0x33UL
789         #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_LAST         ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_VF_CFG_CHANGE
790         __le32  event_data2;
791         u8      opaque_v;
792         #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_V          0x1UL
793         #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_OPAQUE_MASK 0xfeUL
794         #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_OPAQUE_SFT 1
795         u8      timestamp_lo;
796         __le16  timestamp_hi;
797         __le32  event_data1;
798         #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_MTU_CHANGE                0x1UL
799         #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_MRU_CHANGE                0x2UL
800         #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_DFLT_MAC_ADDR_CHANGE      0x4UL
801         #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_DFLT_VLAN_CHANGE          0x8UL
802         #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_TRUSTED_VF_CFG_CHANGE     0x10UL
803 };
804
805 /* hwrm_async_event_cmpl_hw_flow_aged (size:128b/16B) */
806 struct hwrm_async_event_cmpl_hw_flow_aged {
807         __le16  type;
808         #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_MASK            0x3fUL
809         #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_SFT             0
810         #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_HWRM_ASYNC_EVENT  0x2eUL
811         #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_LAST             ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_HWRM_ASYNC_EVENT
812         __le16  event_id;
813         #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_HW_FLOW_AGED 0x36UL
814         #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_LAST        ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_HW_FLOW_AGED
815         __le32  event_data2;
816         u8      opaque_v;
817         #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_V          0x1UL
818         #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_OPAQUE_MASK 0xfeUL
819         #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_OPAQUE_SFT 1
820         u8      timestamp_lo;
821         __le16  timestamp_hi;
822         __le32  event_data1;
823         #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_ID_MASK       0x7fffffffUL
824         #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_ID_SFT        0
825         #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION     0x80000000UL
826         #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_RX    (0x0UL << 31)
827         #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_TX    (0x1UL << 31)
828         #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_LAST ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_TX
829 };
830
831 /* hwrm_async_event_cmpl_eem_cache_flush_req (size:128b/16B) */
832 struct hwrm_async_event_cmpl_eem_cache_flush_req {
833         __le16  type;
834         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_MASK            0x3fUL
835         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_SFT             0
836         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_HWRM_ASYNC_EVENT  0x2eUL
837         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_LAST             ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_HWRM_ASYNC_EVENT
838         __le16  event_id;
839         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_EEM_CACHE_FLUSH_REQ 0x38UL
840         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_LAST               ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_EEM_CACHE_FLUSH_REQ
841         __le32  event_data2;
842         u8      opaque_v;
843         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_V          0x1UL
844         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_OPAQUE_MASK 0xfeUL
845         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_OPAQUE_SFT 1
846         u8      timestamp_lo;
847         __le16  timestamp_hi;
848         __le32  event_data1;
849 };
850
851 /* hwrm_async_event_cmpl_eem_cache_flush_done (size:128b/16B) */
852 struct hwrm_async_event_cmpl_eem_cache_flush_done {
853         __le16  type;
854         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_MASK            0x3fUL
855         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_SFT             0
856         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_HWRM_ASYNC_EVENT  0x2eUL
857         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_LAST             ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_HWRM_ASYNC_EVENT
858         __le16  event_id;
859         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_EEM_CACHE_FLUSH_DONE 0x39UL
860         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_LAST                ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_EEM_CACHE_FLUSH_DONE
861         __le32  event_data2;
862         u8      opaque_v;
863         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_V          0x1UL
864         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_OPAQUE_MASK 0xfeUL
865         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_OPAQUE_SFT 1
866         u8      timestamp_lo;
867         __le16  timestamp_hi;
868         __le32  event_data1;
869         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_DATA1_FID_MASK 0xffffUL
870         #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_DATA1_FID_SFT 0
871 };
872
873 /* hwrm_func_reset_input (size:192b/24B) */
874 struct hwrm_func_reset_input {
875         __le16  req_type;
876         __le16  cmpl_ring;
877         __le16  seq_id;
878         __le16  target_id;
879         __le64  resp_addr;
880         __le32  enables;
881         #define FUNC_RESET_REQ_ENABLES_VF_ID_VALID     0x1UL
882         __le16  vf_id;
883         u8      func_reset_level;
884         #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETALL      0x0UL
885         #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETME       0x1UL
886         #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETCHILDREN 0x2UL
887         #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETVF       0x3UL
888         #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_LAST         FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETVF
889         u8      unused_0;
890 };
891
892 /* hwrm_func_reset_output (size:128b/16B) */
893 struct hwrm_func_reset_output {
894         __le16  error_code;
895         __le16  req_type;
896         __le16  seq_id;
897         __le16  resp_len;
898         u8      unused_0[7];
899         u8      valid;
900 };
901
902 /* hwrm_func_getfid_input (size:192b/24B) */
903 struct hwrm_func_getfid_input {
904         __le16  req_type;
905         __le16  cmpl_ring;
906         __le16  seq_id;
907         __le16  target_id;
908         __le64  resp_addr;
909         __le32  enables;
910         #define FUNC_GETFID_REQ_ENABLES_PCI_ID     0x1UL
911         __le16  pci_id;
912         u8      unused_0[2];
913 };
914
915 /* hwrm_func_getfid_output (size:128b/16B) */
916 struct hwrm_func_getfid_output {
917         __le16  error_code;
918         __le16  req_type;
919         __le16  seq_id;
920         __le16  resp_len;
921         __le16  fid;
922         u8      unused_0[5];
923         u8      valid;
924 };
925
926 /* hwrm_func_vf_alloc_input (size:192b/24B) */
927 struct hwrm_func_vf_alloc_input {
928         __le16  req_type;
929         __le16  cmpl_ring;
930         __le16  seq_id;
931         __le16  target_id;
932         __le64  resp_addr;
933         __le32  enables;
934         #define FUNC_VF_ALLOC_REQ_ENABLES_FIRST_VF_ID     0x1UL
935         __le16  first_vf_id;
936         __le16  num_vfs;
937 };
938
939 /* hwrm_func_vf_alloc_output (size:128b/16B) */
940 struct hwrm_func_vf_alloc_output {
941         __le16  error_code;
942         __le16  req_type;
943         __le16  seq_id;
944         __le16  resp_len;
945         __le16  first_vf_id;
946         u8      unused_0[5];
947         u8      valid;
948 };
949
950 /* hwrm_func_vf_free_input (size:192b/24B) */
951 struct hwrm_func_vf_free_input {
952         __le16  req_type;
953         __le16  cmpl_ring;
954         __le16  seq_id;
955         __le16  target_id;
956         __le64  resp_addr;
957         __le32  enables;
958         #define FUNC_VF_FREE_REQ_ENABLES_FIRST_VF_ID     0x1UL
959         __le16  first_vf_id;
960         __le16  num_vfs;
961 };
962
963 /* hwrm_func_vf_free_output (size:128b/16B) */
964 struct hwrm_func_vf_free_output {
965         __le16  error_code;
966         __le16  req_type;
967         __le16  seq_id;
968         __le16  resp_len;
969         u8      unused_0[7];
970         u8      valid;
971 };
972
973 /* hwrm_func_vf_cfg_input (size:448b/56B) */
974 struct hwrm_func_vf_cfg_input {
975         __le16  req_type;
976         __le16  cmpl_ring;
977         __le16  seq_id;
978         __le16  target_id;
979         __le64  resp_addr;
980         __le32  enables;
981         #define FUNC_VF_CFG_REQ_ENABLES_MTU                  0x1UL
982         #define FUNC_VF_CFG_REQ_ENABLES_GUEST_VLAN           0x2UL
983         #define FUNC_VF_CFG_REQ_ENABLES_ASYNC_EVENT_CR       0x4UL
984         #define FUNC_VF_CFG_REQ_ENABLES_DFLT_MAC_ADDR        0x8UL
985         #define FUNC_VF_CFG_REQ_ENABLES_NUM_RSSCOS_CTXS      0x10UL
986         #define FUNC_VF_CFG_REQ_ENABLES_NUM_CMPL_RINGS       0x20UL
987         #define FUNC_VF_CFG_REQ_ENABLES_NUM_TX_RINGS         0x40UL
988         #define FUNC_VF_CFG_REQ_ENABLES_NUM_RX_RINGS         0x80UL
989         #define FUNC_VF_CFG_REQ_ENABLES_NUM_L2_CTXS          0x100UL
990         #define FUNC_VF_CFG_REQ_ENABLES_NUM_VNICS            0x200UL
991         #define FUNC_VF_CFG_REQ_ENABLES_NUM_STAT_CTXS        0x400UL
992         #define FUNC_VF_CFG_REQ_ENABLES_NUM_HW_RING_GRPS     0x800UL
993         __le16  mtu;
994         __le16  guest_vlan;
995         __le16  async_event_cr;
996         u8      dflt_mac_addr[6];
997         __le32  flags;
998         #define FUNC_VF_CFG_REQ_FLAGS_TX_ASSETS_TEST             0x1UL
999         #define FUNC_VF_CFG_REQ_FLAGS_RX_ASSETS_TEST             0x2UL
1000         #define FUNC_VF_CFG_REQ_FLAGS_CMPL_ASSETS_TEST           0x4UL
1001         #define FUNC_VF_CFG_REQ_FLAGS_RSSCOS_CTX_ASSETS_TEST     0x8UL
1002         #define FUNC_VF_CFG_REQ_FLAGS_RING_GRP_ASSETS_TEST       0x10UL
1003         #define FUNC_VF_CFG_REQ_FLAGS_STAT_CTX_ASSETS_TEST       0x20UL
1004         #define FUNC_VF_CFG_REQ_FLAGS_VNIC_ASSETS_TEST           0x40UL
1005         #define FUNC_VF_CFG_REQ_FLAGS_L2_CTX_ASSETS_TEST         0x80UL
1006         __le16  num_rsscos_ctxs;
1007         __le16  num_cmpl_rings;
1008         __le16  num_tx_rings;
1009         __le16  num_rx_rings;
1010         __le16  num_l2_ctxs;
1011         __le16  num_vnics;
1012         __le16  num_stat_ctxs;
1013         __le16  num_hw_ring_grps;
1014         u8      unused_0[4];
1015 };
1016
1017 /* hwrm_func_vf_cfg_output (size:128b/16B) */
1018 struct hwrm_func_vf_cfg_output {
1019         __le16  error_code;
1020         __le16  req_type;
1021         __le16  seq_id;
1022         __le16  resp_len;
1023         u8      unused_0[7];
1024         u8      valid;
1025 };
1026
1027 /* hwrm_func_qcaps_input (size:192b/24B) */
1028 struct hwrm_func_qcaps_input {
1029         __le16  req_type;
1030         __le16  cmpl_ring;
1031         __le16  seq_id;
1032         __le16  target_id;
1033         __le64  resp_addr;
1034         __le16  fid;
1035         u8      unused_0[6];
1036 };
1037
1038 /* hwrm_func_qcaps_output (size:640b/80B) */
1039 struct hwrm_func_qcaps_output {
1040         __le16  error_code;
1041         __le16  req_type;
1042         __le16  seq_id;
1043         __le16  resp_len;
1044         __le16  fid;
1045         __le16  port_id;
1046         __le32  flags;
1047         #define FUNC_QCAPS_RESP_FLAGS_PUSH_MODE_SUPPORTED             0x1UL
1048         #define FUNC_QCAPS_RESP_FLAGS_GLOBAL_MSIX_AUTOMASKING         0x2UL
1049         #define FUNC_QCAPS_RESP_FLAGS_PTP_SUPPORTED                   0x4UL
1050         #define FUNC_QCAPS_RESP_FLAGS_ROCE_V1_SUPPORTED               0x8UL
1051         #define FUNC_QCAPS_RESP_FLAGS_ROCE_V2_SUPPORTED               0x10UL
1052         #define FUNC_QCAPS_RESP_FLAGS_WOL_MAGICPKT_SUPPORTED          0x20UL
1053         #define FUNC_QCAPS_RESP_FLAGS_WOL_BMP_SUPPORTED               0x40UL
1054         #define FUNC_QCAPS_RESP_FLAGS_TX_RING_RL_SUPPORTED            0x80UL
1055         #define FUNC_QCAPS_RESP_FLAGS_TX_BW_CFG_SUPPORTED             0x100UL
1056         #define FUNC_QCAPS_RESP_FLAGS_VF_TX_RING_RL_SUPPORTED         0x200UL
1057         #define FUNC_QCAPS_RESP_FLAGS_VF_BW_CFG_SUPPORTED             0x400UL
1058         #define FUNC_QCAPS_RESP_FLAGS_STD_TX_RING_MODE_SUPPORTED      0x800UL
1059         #define FUNC_QCAPS_RESP_FLAGS_GENEVE_TUN_FLAGS_SUPPORTED      0x1000UL
1060         #define FUNC_QCAPS_RESP_FLAGS_NVGRE_TUN_FLAGS_SUPPORTED       0x2000UL
1061         #define FUNC_QCAPS_RESP_FLAGS_GRE_TUN_FLAGS_SUPPORTED         0x4000UL
1062         #define FUNC_QCAPS_RESP_FLAGS_MPLS_TUN_FLAGS_SUPPORTED        0x8000UL
1063         #define FUNC_QCAPS_RESP_FLAGS_PCIE_STATS_SUPPORTED            0x10000UL
1064         #define FUNC_QCAPS_RESP_FLAGS_ADOPTED_PF_SUPPORTED            0x20000UL
1065         #define FUNC_QCAPS_RESP_FLAGS_ADMIN_PF_SUPPORTED              0x40000UL
1066         #define FUNC_QCAPS_RESP_FLAGS_LINK_ADMIN_STATUS_SUPPORTED     0x80000UL
1067         #define FUNC_QCAPS_RESP_FLAGS_WCB_PUSH_MODE                   0x100000UL
1068         #define FUNC_QCAPS_RESP_FLAGS_DYNAMIC_TX_RING_ALLOC           0x200000UL
1069         #define FUNC_QCAPS_RESP_FLAGS_HOT_RESET_CAPABLE               0x400000UL
1070         #define FUNC_QCAPS_RESP_FLAGS_ERROR_RECOVERY_CAPABLE          0x800000UL
1071         #define FUNC_QCAPS_RESP_FLAGS_EXT_STATS_SUPPORTED             0x1000000UL
1072         u8      mac_address[6];
1073         __le16  max_rsscos_ctx;
1074         __le16  max_cmpl_rings;
1075         __le16  max_tx_rings;
1076         __le16  max_rx_rings;
1077         __le16  max_l2_ctxs;
1078         __le16  max_vnics;
1079         __le16  first_vf_id;
1080         __le16  max_vfs;
1081         __le16  max_stat_ctx;
1082         __le32  max_encap_records;
1083         __le32  max_decap_records;
1084         __le32  max_tx_em_flows;
1085         __le32  max_tx_wm_flows;
1086         __le32  max_rx_em_flows;
1087         __le32  max_rx_wm_flows;
1088         __le32  max_mcast_filters;
1089         __le32  max_flow_id;
1090         __le32  max_hw_ring_grps;
1091         __le16  max_sp_tx_rings;
1092         u8      unused_0;
1093         u8      valid;
1094 };
1095
1096 /* hwrm_func_qcfg_input (size:192b/24B) */
1097 struct hwrm_func_qcfg_input {
1098         __le16  req_type;
1099         __le16  cmpl_ring;
1100         __le16  seq_id;
1101         __le16  target_id;
1102         __le64  resp_addr;
1103         __le16  fid;
1104         u8      unused_0[6];
1105 };
1106
1107 /* hwrm_func_qcfg_output (size:704b/88B) */
1108 struct hwrm_func_qcfg_output {
1109         __le16  error_code;
1110         __le16  req_type;
1111         __le16  seq_id;
1112         __le16  resp_len;
1113         __le16  fid;
1114         __le16  port_id;
1115         __le16  vlan;
1116         __le16  flags;
1117         #define FUNC_QCFG_RESP_FLAGS_OOB_WOL_MAGICPKT_ENABLED     0x1UL
1118         #define FUNC_QCFG_RESP_FLAGS_OOB_WOL_BMP_ENABLED          0x2UL
1119         #define FUNC_QCFG_RESP_FLAGS_FW_DCBX_AGENT_ENABLED        0x4UL
1120         #define FUNC_QCFG_RESP_FLAGS_STD_TX_RING_MODE_ENABLED     0x8UL
1121         #define FUNC_QCFG_RESP_FLAGS_FW_LLDP_AGENT_ENABLED        0x10UL
1122         #define FUNC_QCFG_RESP_FLAGS_MULTI_HOST                   0x20UL
1123         #define FUNC_QCFG_RESP_FLAGS_TRUSTED_VF                   0x40UL
1124         #define FUNC_QCFG_RESP_FLAGS_SECURE_MODE_ENABLED          0x80UL
1125         u8      mac_address[6];
1126         __le16  pci_id;
1127         __le16  alloc_rsscos_ctx;
1128         __le16  alloc_cmpl_rings;
1129         __le16  alloc_tx_rings;
1130         __le16  alloc_rx_rings;
1131         __le16  alloc_l2_ctx;
1132         __le16  alloc_vnics;
1133         __le16  mtu;
1134         __le16  mru;
1135         __le16  stat_ctx_id;
1136         u8      port_partition_type;
1137         #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_SPF     0x0UL
1138         #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_MPFS    0x1UL
1139         #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_0 0x2UL
1140         #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_5 0x3UL
1141         #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR2_0 0x4UL
1142         #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_UNKNOWN 0xffUL
1143         #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_LAST   FUNC_QCFG_RESP_PORT_PARTITION_TYPE_UNKNOWN
1144         u8      port_pf_cnt;
1145         #define FUNC_QCFG_RESP_PORT_PF_CNT_UNAVAIL 0x0UL
1146         #define FUNC_QCFG_RESP_PORT_PF_CNT_LAST   FUNC_QCFG_RESP_PORT_PF_CNT_UNAVAIL
1147         __le16  dflt_vnic_id;
1148         __le16  max_mtu_configured;
1149         __le32  min_bw;
1150         #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_MASK             0xfffffffUL
1151         #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_SFT              0
1152         #define FUNC_QCFG_RESP_MIN_BW_SCALE                     0x10000000UL
1153         #define FUNC_QCFG_RESP_MIN_BW_SCALE_BITS                  (0x0UL << 28)
1154         #define FUNC_QCFG_RESP_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
1155         #define FUNC_QCFG_RESP_MIN_BW_SCALE_LAST                 FUNC_QCFG_RESP_MIN_BW_SCALE_BYTES
1156         #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
1157         #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_SFT         29
1158         #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
1159         #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
1160         #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
1161         #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
1162         #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
1163         #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
1164         #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_LAST         FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_INVALID
1165         __le32  max_bw;
1166         #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_MASK             0xfffffffUL
1167         #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_SFT              0
1168         #define FUNC_QCFG_RESP_MAX_BW_SCALE                     0x10000000UL
1169         #define FUNC_QCFG_RESP_MAX_BW_SCALE_BITS                  (0x0UL << 28)
1170         #define FUNC_QCFG_RESP_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
1171         #define FUNC_QCFG_RESP_MAX_BW_SCALE_LAST                 FUNC_QCFG_RESP_MAX_BW_SCALE_BYTES
1172         #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
1173         #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_SFT         29
1174         #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
1175         #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
1176         #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
1177         #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
1178         #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
1179         #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
1180         #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_LAST         FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_INVALID
1181         u8      evb_mode;
1182         #define FUNC_QCFG_RESP_EVB_MODE_NO_EVB 0x0UL
1183         #define FUNC_QCFG_RESP_EVB_MODE_VEB    0x1UL
1184         #define FUNC_QCFG_RESP_EVB_MODE_VEPA   0x2UL
1185         #define FUNC_QCFG_RESP_EVB_MODE_LAST  FUNC_QCFG_RESP_EVB_MODE_VEPA
1186         u8      options;
1187         #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_MASK         0x3UL
1188         #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SFT          0
1189         #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_64        0x0UL
1190         #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_128       0x1UL
1191         #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_LAST          FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_128
1192         #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_MASK       0xcUL
1193         #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_SFT        2
1194         #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_FORCED_DOWN  (0x0UL << 2)
1195         #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_FORCED_UP    (0x1UL << 2)
1196         #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_AUTO         (0x2UL << 2)
1197         #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_LAST        FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_AUTO
1198         #define FUNC_QCFG_RESP_OPTIONS_RSVD_MASK                   0xf0UL
1199         #define FUNC_QCFG_RESP_OPTIONS_RSVD_SFT                    4
1200         __le16  alloc_vfs;
1201         __le32  alloc_mcast_filters;
1202         __le32  alloc_hw_ring_grps;
1203         __le16  alloc_sp_tx_rings;
1204         __le16  alloc_stat_ctx;
1205         __le16  alloc_msix;
1206         __le16  registered_vfs;
1207         u8      unused_1[3];
1208         u8      always_1;
1209         __le32  reset_addr_poll;
1210         u8      unused_2[3];
1211         u8      valid;
1212 };
1213
1214 /* hwrm_func_cfg_input (size:704b/88B) */
1215 struct hwrm_func_cfg_input {
1216         __le16  req_type;
1217         __le16  cmpl_ring;
1218         __le16  seq_id;
1219         __le16  target_id;
1220         __le64  resp_addr;
1221         __le16  fid;
1222         __le16  num_msix;
1223         __le32  flags;
1224         #define FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_DISABLE     0x1UL
1225         #define FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_ENABLE      0x2UL
1226         #define FUNC_CFG_REQ_FLAGS_RSVD_MASK                      0x1fcUL
1227         #define FUNC_CFG_REQ_FLAGS_RSVD_SFT                       2
1228         #define FUNC_CFG_REQ_FLAGS_STD_TX_RING_MODE_ENABLE        0x200UL
1229         #define FUNC_CFG_REQ_FLAGS_STD_TX_RING_MODE_DISABLE       0x400UL
1230         #define FUNC_CFG_REQ_FLAGS_VIRT_MAC_PERSIST               0x800UL
1231         #define FUNC_CFG_REQ_FLAGS_NO_AUTOCLEAR_STATISTIC         0x1000UL
1232         #define FUNC_CFG_REQ_FLAGS_TX_ASSETS_TEST                 0x2000UL
1233         #define FUNC_CFG_REQ_FLAGS_RX_ASSETS_TEST                 0x4000UL
1234         #define FUNC_CFG_REQ_FLAGS_CMPL_ASSETS_TEST               0x8000UL
1235         #define FUNC_CFG_REQ_FLAGS_RSSCOS_CTX_ASSETS_TEST         0x10000UL
1236         #define FUNC_CFG_REQ_FLAGS_RING_GRP_ASSETS_TEST           0x20000UL
1237         #define FUNC_CFG_REQ_FLAGS_STAT_CTX_ASSETS_TEST           0x40000UL
1238         #define FUNC_CFG_REQ_FLAGS_VNIC_ASSETS_TEST               0x80000UL
1239         #define FUNC_CFG_REQ_FLAGS_L2_CTX_ASSETS_TEST             0x100000UL
1240         #define FUNC_CFG_REQ_FLAGS_TRUSTED_VF_ENABLE              0x200000UL
1241         #define FUNC_CFG_REQ_FLAGS_DYNAMIC_TX_RING_ALLOC          0x400000UL
1242         #define FUNC_CFG_REQ_FLAGS_NQ_ASSETS_TEST                 0x800000UL
1243         #define FUNC_CFG_REQ_FLAGS_TRUSTED_VF_DISABLE             0x1000000UL
1244         __le32  enables;
1245         #define FUNC_CFG_REQ_ENABLES_MTU                     0x1UL
1246         #define FUNC_CFG_REQ_ENABLES_MRU                     0x2UL
1247         #define FUNC_CFG_REQ_ENABLES_NUM_RSSCOS_CTXS         0x4UL
1248         #define FUNC_CFG_REQ_ENABLES_NUM_CMPL_RINGS          0x8UL
1249         #define FUNC_CFG_REQ_ENABLES_NUM_TX_RINGS            0x10UL
1250         #define FUNC_CFG_REQ_ENABLES_NUM_RX_RINGS            0x20UL
1251         #define FUNC_CFG_REQ_ENABLES_NUM_L2_CTXS             0x40UL
1252         #define FUNC_CFG_REQ_ENABLES_NUM_VNICS               0x80UL
1253         #define FUNC_CFG_REQ_ENABLES_NUM_STAT_CTXS           0x100UL
1254         #define FUNC_CFG_REQ_ENABLES_DFLT_MAC_ADDR           0x200UL
1255         #define FUNC_CFG_REQ_ENABLES_DFLT_VLAN               0x400UL
1256         #define FUNC_CFG_REQ_ENABLES_DFLT_IP_ADDR            0x800UL
1257         #define FUNC_CFG_REQ_ENABLES_MIN_BW                  0x1000UL
1258         #define FUNC_CFG_REQ_ENABLES_MAX_BW                  0x2000UL
1259         #define FUNC_CFG_REQ_ENABLES_ASYNC_EVENT_CR          0x4000UL
1260         #define FUNC_CFG_REQ_ENABLES_VLAN_ANTISPOOF_MODE     0x8000UL
1261         #define FUNC_CFG_REQ_ENABLES_ALLOWED_VLAN_PRIS       0x10000UL
1262         #define FUNC_CFG_REQ_ENABLES_EVB_MODE                0x20000UL
1263         #define FUNC_CFG_REQ_ENABLES_NUM_MCAST_FILTERS       0x40000UL
1264         #define FUNC_CFG_REQ_ENABLES_NUM_HW_RING_GRPS        0x80000UL
1265         #define FUNC_CFG_REQ_ENABLES_CACHE_LINESIZE          0x100000UL
1266         #define FUNC_CFG_REQ_ENABLES_NUM_MSIX                0x200000UL
1267         #define FUNC_CFG_REQ_ENABLES_ADMIN_LINK_STATE        0x400000UL
1268         __le16  mtu;
1269         __le16  mru;
1270         __le16  num_rsscos_ctxs;
1271         __le16  num_cmpl_rings;
1272         __le16  num_tx_rings;
1273         __le16  num_rx_rings;
1274         __le16  num_l2_ctxs;
1275         __le16  num_vnics;
1276         __le16  num_stat_ctxs;
1277         __le16  num_hw_ring_grps;
1278         u8      dflt_mac_addr[6];
1279         __le16  dflt_vlan;
1280         __be32  dflt_ip_addr[4];
1281         __le32  min_bw;
1282         #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_MASK             0xfffffffUL
1283         #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_SFT              0
1284         #define FUNC_CFG_REQ_MIN_BW_SCALE                     0x10000000UL
1285         #define FUNC_CFG_REQ_MIN_BW_SCALE_BITS                  (0x0UL << 28)
1286         #define FUNC_CFG_REQ_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
1287         #define FUNC_CFG_REQ_MIN_BW_SCALE_LAST                 FUNC_CFG_REQ_MIN_BW_SCALE_BYTES
1288         #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
1289         #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_SFT         29
1290         #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
1291         #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
1292         #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
1293         #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
1294         #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
1295         #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
1296         #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_LAST         FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_INVALID
1297         __le32  max_bw;
1298         #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_MASK             0xfffffffUL
1299         #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_SFT              0
1300         #define FUNC_CFG_REQ_MAX_BW_SCALE                     0x10000000UL
1301         #define FUNC_CFG_REQ_MAX_BW_SCALE_BITS                  (0x0UL << 28)
1302         #define FUNC_CFG_REQ_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
1303         #define FUNC_CFG_REQ_MAX_BW_SCALE_LAST                 FUNC_CFG_REQ_MAX_BW_SCALE_BYTES
1304         #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
1305         #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_SFT         29
1306         #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
1307         #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
1308         #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
1309         #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
1310         #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
1311         #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
1312         #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_LAST         FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_INVALID
1313         __le16  async_event_cr;
1314         u8      vlan_antispoof_mode;
1315         #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_NOCHECK                 0x0UL
1316         #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_VALIDATE_VLAN           0x1UL
1317         #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_IF_VLANDNE       0x2UL
1318         #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_OR_OVERRIDE_VLAN 0x3UL
1319         #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_LAST                   FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_OR_OVERRIDE_VLAN
1320         u8      allowed_vlan_pris;
1321         u8      evb_mode;
1322         #define FUNC_CFG_REQ_EVB_MODE_NO_EVB 0x0UL
1323         #define FUNC_CFG_REQ_EVB_MODE_VEB    0x1UL
1324         #define FUNC_CFG_REQ_EVB_MODE_VEPA   0x2UL
1325         #define FUNC_CFG_REQ_EVB_MODE_LAST  FUNC_CFG_REQ_EVB_MODE_VEPA
1326         u8      options;
1327         #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_MASK         0x3UL
1328         #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SFT          0
1329         #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_64        0x0UL
1330         #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_128       0x1UL
1331         #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_LAST          FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_128
1332         #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_MASK       0xcUL
1333         #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_SFT        2
1334         #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_FORCED_DOWN  (0x0UL << 2)
1335         #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_FORCED_UP    (0x1UL << 2)
1336         #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_AUTO         (0x2UL << 2)
1337         #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_LAST        FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_AUTO
1338         #define FUNC_CFG_REQ_OPTIONS_RSVD_MASK                   0xf0UL
1339         #define FUNC_CFG_REQ_OPTIONS_RSVD_SFT                    4
1340         __le16  num_mcast_filters;
1341 };
1342
1343 /* hwrm_func_cfg_output (size:128b/16B) */
1344 struct hwrm_func_cfg_output {
1345         __le16  error_code;
1346         __le16  req_type;
1347         __le16  seq_id;
1348         __le16  resp_len;
1349         u8      unused_0[7];
1350         u8      valid;
1351 };
1352
1353 /* hwrm_func_qstats_input (size:192b/24B) */
1354 struct hwrm_func_qstats_input {
1355         __le16  req_type;
1356         __le16  cmpl_ring;
1357         __le16  seq_id;
1358         __le16  target_id;
1359         __le64  resp_addr;
1360         __le16  fid;
1361         u8      unused_0[6];
1362 };
1363
1364 /* hwrm_func_qstats_output (size:1408b/176B) */
1365 struct hwrm_func_qstats_output {
1366         __le16  error_code;
1367         __le16  req_type;
1368         __le16  seq_id;
1369         __le16  resp_len;
1370         __le64  tx_ucast_pkts;
1371         __le64  tx_mcast_pkts;
1372         __le64  tx_bcast_pkts;
1373         __le64  tx_discard_pkts;
1374         __le64  tx_drop_pkts;
1375         __le64  tx_ucast_bytes;
1376         __le64  tx_mcast_bytes;
1377         __le64  tx_bcast_bytes;
1378         __le64  rx_ucast_pkts;
1379         __le64  rx_mcast_pkts;
1380         __le64  rx_bcast_pkts;
1381         __le64  rx_discard_pkts;
1382         __le64  rx_drop_pkts;
1383         __le64  rx_ucast_bytes;
1384         __le64  rx_mcast_bytes;
1385         __le64  rx_bcast_bytes;
1386         __le64  rx_agg_pkts;
1387         __le64  rx_agg_bytes;
1388         __le64  rx_agg_events;
1389         __le64  rx_agg_aborts;
1390         u8      unused_0[7];
1391         u8      valid;
1392 };
1393
1394 /* hwrm_func_clr_stats_input (size:192b/24B) */
1395 struct hwrm_func_clr_stats_input {
1396         __le16  req_type;
1397         __le16  cmpl_ring;
1398         __le16  seq_id;
1399         __le16  target_id;
1400         __le64  resp_addr;
1401         __le16  fid;
1402         u8      unused_0[6];
1403 };
1404
1405 /* hwrm_func_clr_stats_output (size:128b/16B) */
1406 struct hwrm_func_clr_stats_output {
1407         __le16  error_code;
1408         __le16  req_type;
1409         __le16  seq_id;
1410         __le16  resp_len;
1411         u8      unused_0[7];
1412         u8      valid;
1413 };
1414
1415 /* hwrm_func_vf_resc_free_input (size:192b/24B) */
1416 struct hwrm_func_vf_resc_free_input {
1417         __le16  req_type;
1418         __le16  cmpl_ring;
1419         __le16  seq_id;
1420         __le16  target_id;
1421         __le64  resp_addr;
1422         __le16  vf_id;
1423         u8      unused_0[6];
1424 };
1425
1426 /* hwrm_func_vf_resc_free_output (size:128b/16B) */
1427 struct hwrm_func_vf_resc_free_output {
1428         __le16  error_code;
1429         __le16  req_type;
1430         __le16  seq_id;
1431         __le16  resp_len;
1432         u8      unused_0[7];
1433         u8      valid;
1434 };
1435
1436 /* hwrm_func_drv_rgtr_input (size:896b/112B) */
1437 struct hwrm_func_drv_rgtr_input {
1438         __le16  req_type;
1439         __le16  cmpl_ring;
1440         __le16  seq_id;
1441         __le16  target_id;
1442         __le64  resp_addr;
1443         __le32  flags;
1444         #define FUNC_DRV_RGTR_REQ_FLAGS_FWD_ALL_MODE               0x1UL
1445         #define FUNC_DRV_RGTR_REQ_FLAGS_FWD_NONE_MODE              0x2UL
1446         #define FUNC_DRV_RGTR_REQ_FLAGS_16BIT_VER_MODE             0x4UL
1447         #define FUNC_DRV_RGTR_REQ_FLAGS_FLOW_HANDLE_64BIT_MODE     0x8UL
1448         #define FUNC_DRV_RGTR_REQ_FLAGS_HOT_RESET_SUPPORT          0x10UL
1449         #define FUNC_DRV_RGTR_REQ_FLAGS_ERROR_RECOVERY_SUPPORT     0x20UL
1450         __le32  enables;
1451         #define FUNC_DRV_RGTR_REQ_ENABLES_OS_TYPE             0x1UL
1452         #define FUNC_DRV_RGTR_REQ_ENABLES_VER                 0x2UL
1453         #define FUNC_DRV_RGTR_REQ_ENABLES_TIMESTAMP           0x4UL
1454         #define FUNC_DRV_RGTR_REQ_ENABLES_VF_REQ_FWD          0x8UL
1455         #define FUNC_DRV_RGTR_REQ_ENABLES_ASYNC_EVENT_FWD     0x10UL
1456         __le16  os_type;
1457         #define FUNC_DRV_RGTR_REQ_OS_TYPE_UNKNOWN   0x0UL
1458         #define FUNC_DRV_RGTR_REQ_OS_TYPE_OTHER     0x1UL
1459         #define FUNC_DRV_RGTR_REQ_OS_TYPE_MSDOS     0xeUL
1460         #define FUNC_DRV_RGTR_REQ_OS_TYPE_WINDOWS   0x12UL
1461         #define FUNC_DRV_RGTR_REQ_OS_TYPE_SOLARIS   0x1dUL
1462         #define FUNC_DRV_RGTR_REQ_OS_TYPE_LINUX     0x24UL
1463         #define FUNC_DRV_RGTR_REQ_OS_TYPE_FREEBSD   0x2aUL
1464         #define FUNC_DRV_RGTR_REQ_OS_TYPE_ESXI      0x68UL
1465         #define FUNC_DRV_RGTR_REQ_OS_TYPE_WIN864    0x73UL
1466         #define FUNC_DRV_RGTR_REQ_OS_TYPE_WIN2012R2 0x74UL
1467         #define FUNC_DRV_RGTR_REQ_OS_TYPE_UEFI      0x8000UL
1468         #define FUNC_DRV_RGTR_REQ_OS_TYPE_LAST     FUNC_DRV_RGTR_REQ_OS_TYPE_UEFI
1469         u8      ver_maj_8b;
1470         u8      ver_min_8b;
1471         u8      ver_upd_8b;
1472         u8      unused_0[3];
1473         __le32  timestamp;
1474         u8      unused_1[4];
1475         __le32  vf_req_fwd[8];
1476         __le32  async_event_fwd[8];
1477         __le16  ver_maj;
1478         __le16  ver_min;
1479         __le16  ver_upd;
1480         __le16  ver_patch;
1481 };
1482
1483 /* hwrm_func_drv_rgtr_output (size:128b/16B) */
1484 struct hwrm_func_drv_rgtr_output {
1485         __le16  error_code;
1486         __le16  req_type;
1487         __le16  seq_id;
1488         __le16  resp_len;
1489         __le32  flags;
1490         #define FUNC_DRV_RGTR_RESP_FLAGS_IF_CHANGE_SUPPORTED     0x1UL
1491         u8      unused_0[3];
1492         u8      valid;
1493 };
1494
1495 /* hwrm_func_drv_unrgtr_input (size:192b/24B) */
1496 struct hwrm_func_drv_unrgtr_input {
1497         __le16  req_type;
1498         __le16  cmpl_ring;
1499         __le16  seq_id;
1500         __le16  target_id;
1501         __le64  resp_addr;
1502         __le32  flags;
1503         #define FUNC_DRV_UNRGTR_REQ_FLAGS_PREPARE_FOR_SHUTDOWN     0x1UL
1504         u8      unused_0[4];
1505 };
1506
1507 /* hwrm_func_drv_unrgtr_output (size:128b/16B) */
1508 struct hwrm_func_drv_unrgtr_output {
1509         __le16  error_code;
1510         __le16  req_type;
1511         __le16  seq_id;
1512         __le16  resp_len;
1513         u8      unused_0[7];
1514         u8      valid;
1515 };
1516
1517 /* hwrm_func_buf_rgtr_input (size:1024b/128B) */
1518 struct hwrm_func_buf_rgtr_input {
1519         __le16  req_type;
1520         __le16  cmpl_ring;
1521         __le16  seq_id;
1522         __le16  target_id;
1523         __le64  resp_addr;
1524         __le32  enables;
1525         #define FUNC_BUF_RGTR_REQ_ENABLES_VF_ID            0x1UL
1526         #define FUNC_BUF_RGTR_REQ_ENABLES_ERR_BUF_ADDR     0x2UL
1527         __le16  vf_id;
1528         __le16  req_buf_num_pages;
1529         __le16  req_buf_page_size;
1530         #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_16B 0x4UL
1531         #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_4K  0xcUL
1532         #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_8K  0xdUL
1533         #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_64K 0x10UL
1534         #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_2M  0x15UL
1535         #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_4M  0x16UL
1536         #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_1G  0x1eUL
1537         #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_LAST FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_1G
1538         __le16  req_buf_len;
1539         __le16  resp_buf_len;
1540         u8      unused_0[2];
1541         __le64  req_buf_page_addr0;
1542         __le64  req_buf_page_addr1;
1543         __le64  req_buf_page_addr2;
1544         __le64  req_buf_page_addr3;
1545         __le64  req_buf_page_addr4;
1546         __le64  req_buf_page_addr5;
1547         __le64  req_buf_page_addr6;
1548         __le64  req_buf_page_addr7;
1549         __le64  req_buf_page_addr8;
1550         __le64  req_buf_page_addr9;
1551         __le64  error_buf_addr;
1552         __le64  resp_buf_addr;
1553 };
1554
1555 /* hwrm_func_buf_rgtr_output (size:128b/16B) */
1556 struct hwrm_func_buf_rgtr_output {
1557         __le16  error_code;
1558         __le16  req_type;
1559         __le16  seq_id;
1560         __le16  resp_len;
1561         u8      unused_0[7];
1562         u8      valid;
1563 };
1564
1565 /* hwrm_func_drv_qver_input (size:192b/24B) */
1566 struct hwrm_func_drv_qver_input {
1567         __le16  req_type;
1568         __le16  cmpl_ring;
1569         __le16  seq_id;
1570         __le16  target_id;
1571         __le64  resp_addr;
1572         __le32  reserved;
1573         __le16  fid;
1574         u8      unused_0[2];
1575 };
1576
1577 /* hwrm_func_drv_qver_output (size:256b/32B) */
1578 struct hwrm_func_drv_qver_output {
1579         __le16  error_code;
1580         __le16  req_type;
1581         __le16  seq_id;
1582         __le16  resp_len;
1583         __le16  os_type;
1584         #define FUNC_DRV_QVER_RESP_OS_TYPE_UNKNOWN   0x0UL
1585         #define FUNC_DRV_QVER_RESP_OS_TYPE_OTHER     0x1UL
1586         #define FUNC_DRV_QVER_RESP_OS_TYPE_MSDOS     0xeUL
1587         #define FUNC_DRV_QVER_RESP_OS_TYPE_WINDOWS   0x12UL
1588         #define FUNC_DRV_QVER_RESP_OS_TYPE_SOLARIS   0x1dUL
1589         #define FUNC_DRV_QVER_RESP_OS_TYPE_LINUX     0x24UL
1590         #define FUNC_DRV_QVER_RESP_OS_TYPE_FREEBSD   0x2aUL
1591         #define FUNC_DRV_QVER_RESP_OS_TYPE_ESXI      0x68UL
1592         #define FUNC_DRV_QVER_RESP_OS_TYPE_WIN864    0x73UL
1593         #define FUNC_DRV_QVER_RESP_OS_TYPE_WIN2012R2 0x74UL
1594         #define FUNC_DRV_QVER_RESP_OS_TYPE_UEFI      0x8000UL
1595         #define FUNC_DRV_QVER_RESP_OS_TYPE_LAST     FUNC_DRV_QVER_RESP_OS_TYPE_UEFI
1596         u8      ver_maj_8b;
1597         u8      ver_min_8b;
1598         u8      ver_upd_8b;
1599         u8      unused_0[3];
1600         __le16  ver_maj;
1601         __le16  ver_min;
1602         __le16  ver_upd;
1603         __le16  ver_patch;
1604         u8      unused_1[7];
1605         u8      valid;
1606 };
1607
1608 /* hwrm_func_resource_qcaps_input (size:192b/24B) */
1609 struct hwrm_func_resource_qcaps_input {
1610         __le16  req_type;
1611         __le16  cmpl_ring;
1612         __le16  seq_id;
1613         __le16  target_id;
1614         __le64  resp_addr;
1615         __le16  fid;
1616         u8      unused_0[6];
1617 };
1618
1619 /* hwrm_func_resource_qcaps_output (size:448b/56B) */
1620 struct hwrm_func_resource_qcaps_output {
1621         __le16  error_code;
1622         __le16  req_type;
1623         __le16  seq_id;
1624         __le16  resp_len;
1625         __le16  max_vfs;
1626         __le16  max_msix;
1627         __le16  vf_reservation_strategy;
1628         #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MAXIMAL        0x0UL
1629         #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL        0x1UL
1630         #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL_STATIC 0x2UL
1631         #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_LAST          FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL_STATIC
1632         __le16  min_rsscos_ctx;
1633         __le16  max_rsscos_ctx;
1634         __le16  min_cmpl_rings;
1635         __le16  max_cmpl_rings;
1636         __le16  min_tx_rings;
1637         __le16  max_tx_rings;
1638         __le16  min_rx_rings;
1639         __le16  max_rx_rings;
1640         __le16  min_l2_ctxs;
1641         __le16  max_l2_ctxs;
1642         __le16  min_vnics;
1643         __le16  max_vnics;
1644         __le16  min_stat_ctx;
1645         __le16  max_stat_ctx;
1646         __le16  min_hw_ring_grps;
1647         __le16  max_hw_ring_grps;
1648         __le16  max_tx_scheduler_inputs;
1649         __le16  flags;
1650         #define FUNC_RESOURCE_QCAPS_RESP_FLAGS_MIN_GUARANTEED     0x1UL
1651         u8      unused_0[5];
1652         u8      valid;
1653 };
1654
1655 /* hwrm_func_vf_resource_cfg_input (size:448b/56B) */
1656 struct hwrm_func_vf_resource_cfg_input {
1657         __le16  req_type;
1658         __le16  cmpl_ring;
1659         __le16  seq_id;
1660         __le16  target_id;
1661         __le64  resp_addr;
1662         __le16  vf_id;
1663         __le16  max_msix;
1664         __le16  min_rsscos_ctx;
1665         __le16  max_rsscos_ctx;
1666         __le16  min_cmpl_rings;
1667         __le16  max_cmpl_rings;
1668         __le16  min_tx_rings;
1669         __le16  max_tx_rings;
1670         __le16  min_rx_rings;
1671         __le16  max_rx_rings;
1672         __le16  min_l2_ctxs;
1673         __le16  max_l2_ctxs;
1674         __le16  min_vnics;
1675         __le16  max_vnics;
1676         __le16  min_stat_ctx;
1677         __le16  max_stat_ctx;
1678         __le16  min_hw_ring_grps;
1679         __le16  max_hw_ring_grps;
1680         __le16  flags;
1681         #define FUNC_VF_RESOURCE_CFG_REQ_FLAGS_MIN_GUARANTEED     0x1UL
1682         u8      unused_0[2];
1683 };
1684
1685 /* hwrm_func_vf_resource_cfg_output (size:256b/32B) */
1686 struct hwrm_func_vf_resource_cfg_output {
1687         __le16  error_code;
1688         __le16  req_type;
1689         __le16  seq_id;
1690         __le16  resp_len;
1691         __le16  reserved_rsscos_ctx;
1692         __le16  reserved_cmpl_rings;
1693         __le16  reserved_tx_rings;
1694         __le16  reserved_rx_rings;
1695         __le16  reserved_l2_ctxs;
1696         __le16  reserved_vnics;
1697         __le16  reserved_stat_ctx;
1698         __le16  reserved_hw_ring_grps;
1699         u8      unused_0[7];
1700         u8      valid;
1701 };
1702
1703 /* hwrm_func_backing_store_qcaps_input (size:128b/16B) */
1704 struct hwrm_func_backing_store_qcaps_input {
1705         __le16  req_type;
1706         __le16  cmpl_ring;
1707         __le16  seq_id;
1708         __le16  target_id;
1709         __le64  resp_addr;
1710 };
1711
1712 /* hwrm_func_backing_store_qcaps_output (size:576b/72B) */
1713 struct hwrm_func_backing_store_qcaps_output {
1714         __le16  error_code;
1715         __le16  req_type;
1716         __le16  seq_id;
1717         __le16  resp_len;
1718         __le32  qp_max_entries;
1719         __le16  qp_min_qp1_entries;
1720         __le16  qp_max_l2_entries;
1721         __le16  qp_entry_size;
1722         __le16  srq_max_l2_entries;
1723         __le32  srq_max_entries;
1724         __le16  srq_entry_size;
1725         __le16  cq_max_l2_entries;
1726         __le32  cq_max_entries;
1727         __le16  cq_entry_size;
1728         __le16  vnic_max_vnic_entries;
1729         __le16  vnic_max_ring_table_entries;
1730         __le16  vnic_entry_size;
1731         __le32  stat_max_entries;
1732         __le16  stat_entry_size;
1733         __le16  tqm_entry_size;
1734         __le32  tqm_min_entries_per_ring;
1735         __le32  tqm_max_entries_per_ring;
1736         __le32  mrav_max_entries;
1737         __le16  mrav_entry_size;
1738         __le16  tim_entry_size;
1739         __le32  tim_max_entries;
1740         __le16  mrav_num_entries_units;
1741         u8      tqm_entries_multiple;
1742         u8      valid;
1743 };
1744
1745 /* hwrm_func_backing_store_cfg_input (size:2048b/256B) */
1746 struct hwrm_func_backing_store_cfg_input {
1747         __le16  req_type;
1748         __le16  cmpl_ring;
1749         __le16  seq_id;
1750         __le16  target_id;
1751         __le64  resp_addr;
1752         __le32  flags;
1753         #define FUNC_BACKING_STORE_CFG_REQ_FLAGS_PREBOOT_MODE               0x1UL
1754         #define FUNC_BACKING_STORE_CFG_REQ_FLAGS_MRAV_RESERVATION_SPLIT     0x2UL
1755         __le32  enables;
1756         #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_QP            0x1UL
1757         #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_SRQ           0x2UL
1758         #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_CQ            0x4UL
1759         #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_VNIC          0x8UL
1760         #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_STAT          0x10UL
1761         #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_SP        0x20UL
1762         #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING0     0x40UL
1763         #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING1     0x80UL
1764         #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING2     0x100UL
1765         #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING3     0x200UL
1766         #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING4     0x400UL
1767         #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING5     0x800UL
1768         #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING6     0x1000UL
1769         #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING7     0x2000UL
1770         #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_MRAV          0x4000UL
1771         #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TIM           0x8000UL
1772         u8      qpc_pg_size_qpc_lvl;
1773         #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_MASK      0xfUL
1774         #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_SFT       0
1775         #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_0       0x0UL
1776         #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_1       0x1UL
1777         #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_2       0x2UL
1778         #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_2
1779         #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_MASK  0xf0UL
1780         #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_SFT   4
1781         #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_4K   (0x0UL << 4)
1782         #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_8K   (0x1UL << 4)
1783         #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_64K  (0x2UL << 4)
1784         #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_2M   (0x3UL << 4)
1785         #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_8M   (0x4UL << 4)
1786         #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_1G   (0x5UL << 4)
1787         #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_1G
1788         u8      srq_pg_size_srq_lvl;
1789         #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_MASK      0xfUL
1790         #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_SFT       0
1791         #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_0       0x0UL
1792         #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_1       0x1UL
1793         #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_2       0x2UL
1794         #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_2
1795         #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_MASK  0xf0UL
1796         #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_SFT   4
1797         #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_4K   (0x0UL << 4)
1798         #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_8K   (0x1UL << 4)
1799         #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_64K  (0x2UL << 4)
1800         #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_2M   (0x3UL << 4)
1801         #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_8M   (0x4UL << 4)
1802         #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_1G   (0x5UL << 4)
1803         #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_1G
1804         u8      cq_pg_size_cq_lvl;
1805         #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_MASK      0xfUL
1806         #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_SFT       0
1807         #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_0       0x0UL
1808         #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_1       0x1UL
1809         #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_2       0x2UL
1810         #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_2
1811         #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_MASK  0xf0UL
1812         #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_SFT   4
1813         #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_4K   (0x0UL << 4)
1814         #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_8K   (0x1UL << 4)
1815         #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_64K  (0x2UL << 4)
1816         #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_2M   (0x3UL << 4)
1817         #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_8M   (0x4UL << 4)
1818         #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_1G   (0x5UL << 4)
1819         #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_1G
1820         u8      vnic_pg_size_vnic_lvl;
1821         #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_MASK      0xfUL
1822         #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_SFT       0
1823         #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_0       0x0UL
1824         #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_1       0x1UL
1825         #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_2       0x2UL
1826         #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_2
1827         #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_MASK  0xf0UL
1828         #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_SFT   4
1829         #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_4K   (0x0UL << 4)
1830         #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_8K   (0x1UL << 4)
1831         #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_64K  (0x2UL << 4)
1832         #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_2M   (0x3UL << 4)
1833         #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_8M   (0x4UL << 4)
1834         #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_1G   (0x5UL << 4)
1835         #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_1G
1836         u8      stat_pg_size_stat_lvl;
1837         #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_MASK      0xfUL
1838         #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_SFT       0
1839         #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_0       0x0UL
1840         #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_1       0x1UL
1841         #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_2       0x2UL
1842         #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_2
1843         #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_MASK  0xf0UL
1844         #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_SFT   4
1845         #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_4K   (0x0UL << 4)
1846         #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_8K   (0x1UL << 4)
1847         #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_64K  (0x2UL << 4)
1848         #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_2M   (0x3UL << 4)
1849         #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_8M   (0x4UL << 4)
1850         #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_1G   (0x5UL << 4)
1851         #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_1G
1852         u8      tqm_sp_pg_size_tqm_sp_lvl;
1853         #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_MASK      0xfUL
1854         #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_SFT       0
1855         #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_0       0x0UL
1856         #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_1       0x1UL
1857         #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_2       0x2UL
1858         #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_2
1859         #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_MASK  0xf0UL
1860         #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_SFT   4
1861         #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_4K   (0x0UL << 4)
1862         #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_8K   (0x1UL << 4)
1863         #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_64K  (0x2UL << 4)
1864         #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_2M   (0x3UL << 4)
1865         #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_8M   (0x4UL << 4)
1866         #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_1G   (0x5UL << 4)
1867         #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_1G
1868         u8      tqm_ring0_pg_size_tqm_ring0_lvl;
1869         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_MASK      0xfUL
1870         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_SFT       0
1871         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_0       0x0UL
1872         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_1       0x1UL
1873         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_2       0x2UL
1874         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_2
1875         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_MASK  0xf0UL
1876         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_SFT   4
1877         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_4K   (0x0UL << 4)
1878         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_8K   (0x1UL << 4)
1879         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_64K  (0x2UL << 4)
1880         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_2M   (0x3UL << 4)
1881         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_8M   (0x4UL << 4)
1882         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_1G   (0x5UL << 4)
1883         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_1G
1884         u8      tqm_ring1_pg_size_tqm_ring1_lvl;
1885         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_MASK      0xfUL
1886         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_SFT       0
1887         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_0       0x0UL
1888         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_1       0x1UL
1889         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_2       0x2UL
1890         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_2
1891         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_MASK  0xf0UL
1892         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_SFT   4
1893         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_4K   (0x0UL << 4)
1894         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_8K   (0x1UL << 4)
1895         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_64K  (0x2UL << 4)
1896         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_2M   (0x3UL << 4)
1897         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_8M   (0x4UL << 4)
1898         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_1G   (0x5UL << 4)
1899         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_1G
1900         u8      tqm_ring2_pg_size_tqm_ring2_lvl;
1901         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_MASK      0xfUL
1902         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_SFT       0
1903         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_0       0x0UL
1904         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_1       0x1UL
1905         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_2       0x2UL
1906         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_2
1907         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_MASK  0xf0UL
1908         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_SFT   4
1909         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_4K   (0x0UL << 4)
1910         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_8K   (0x1UL << 4)
1911         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_64K  (0x2UL << 4)
1912         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_2M   (0x3UL << 4)
1913         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_8M   (0x4UL << 4)
1914         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_1G   (0x5UL << 4)
1915         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_1G
1916         u8      tqm_ring3_pg_size_tqm_ring3_lvl;
1917         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_MASK      0xfUL
1918         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_SFT       0
1919         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_0       0x0UL
1920         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_1       0x1UL
1921         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_2       0x2UL
1922         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_2
1923         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_MASK  0xf0UL
1924         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_SFT   4
1925         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_4K   (0x0UL << 4)
1926         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_8K   (0x1UL << 4)
1927         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_64K  (0x2UL << 4)
1928         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_2M   (0x3UL << 4)
1929         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_8M   (0x4UL << 4)
1930         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_1G   (0x5UL << 4)
1931         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_1G
1932         u8      tqm_ring4_pg_size_tqm_ring4_lvl;
1933         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_MASK      0xfUL
1934         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_SFT       0
1935         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_0       0x0UL
1936         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_1       0x1UL
1937         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_2       0x2UL
1938         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_2
1939         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_MASK  0xf0UL
1940         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_SFT   4
1941         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_4K   (0x0UL << 4)
1942         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_8K   (0x1UL << 4)
1943         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_64K  (0x2UL << 4)
1944         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_2M   (0x3UL << 4)
1945         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_8M   (0x4UL << 4)
1946         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_1G   (0x5UL << 4)
1947         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_1G
1948         u8      tqm_ring5_pg_size_tqm_ring5_lvl;
1949         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_MASK      0xfUL
1950         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_SFT       0
1951         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_0       0x0UL
1952         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_1       0x1UL
1953         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_2       0x2UL
1954         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_2
1955         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_MASK  0xf0UL
1956         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_SFT   4
1957         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_4K   (0x0UL << 4)
1958         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_8K   (0x1UL << 4)
1959         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_64K  (0x2UL << 4)
1960         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_2M   (0x3UL << 4)
1961         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_8M   (0x4UL << 4)
1962         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_1G   (0x5UL << 4)
1963         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_1G
1964         u8      tqm_ring6_pg_size_tqm_ring6_lvl;
1965         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_MASK      0xfUL
1966         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_SFT       0
1967         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_0       0x0UL
1968         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_1       0x1UL
1969         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_2       0x2UL
1970         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_2
1971         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_MASK  0xf0UL
1972         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_SFT   4
1973         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_4K   (0x0UL << 4)
1974         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_8K   (0x1UL << 4)
1975         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_64K  (0x2UL << 4)
1976         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_2M   (0x3UL << 4)
1977         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_8M   (0x4UL << 4)
1978         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_1G   (0x5UL << 4)
1979         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_1G
1980         u8      tqm_ring7_pg_size_tqm_ring7_lvl;
1981         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_MASK      0xfUL
1982         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_SFT       0
1983         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_0       0x0UL
1984         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_1       0x1UL
1985         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_2       0x2UL
1986         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_2
1987         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_MASK  0xf0UL
1988         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_SFT   4
1989         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_4K   (0x0UL << 4)
1990         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_8K   (0x1UL << 4)
1991         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_64K  (0x2UL << 4)
1992         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_2M   (0x3UL << 4)
1993         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_8M   (0x4UL << 4)
1994         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_1G   (0x5UL << 4)
1995         #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_1G
1996         u8      mrav_pg_size_mrav_lvl;
1997         #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_MASK      0xfUL
1998         #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_SFT       0
1999         #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_0       0x0UL
2000         #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_1       0x1UL
2001         #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_2       0x2UL
2002         #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_2
2003         #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_MASK  0xf0UL
2004         #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_SFT   4
2005         #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_4K   (0x0UL << 4)
2006         #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_8K   (0x1UL << 4)
2007         #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_64K  (0x2UL << 4)
2008         #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_2M   (0x3UL << 4)
2009         #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_8M   (0x4UL << 4)
2010         #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_1G   (0x5UL << 4)
2011         #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_1G
2012         u8      tim_pg_size_tim_lvl;
2013         #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_MASK      0xfUL
2014         #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_SFT       0
2015         #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_0       0x0UL
2016         #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_1       0x1UL
2017         #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_2       0x2UL
2018         #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_2
2019         #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_MASK  0xf0UL
2020         #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_SFT   4
2021         #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_4K   (0x0UL << 4)
2022         #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_8K   (0x1UL << 4)
2023         #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_64K  (0x2UL << 4)
2024         #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_2M   (0x3UL << 4)
2025         #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_8M   (0x4UL << 4)
2026         #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_1G   (0x5UL << 4)
2027         #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_1G
2028         __le64  qpc_page_dir;
2029         __le64  srq_page_dir;
2030         __le64  cq_page_dir;
2031         __le64  vnic_page_dir;
2032         __le64  stat_page_dir;
2033         __le64  tqm_sp_page_dir;
2034         __le64  tqm_ring0_page_dir;
2035         __le64  tqm_ring1_page_dir;
2036         __le64  tqm_ring2_page_dir;
2037         __le64  tqm_ring3_page_dir;
2038         __le64  tqm_ring4_page_dir;
2039         __le64  tqm_ring5_page_dir;
2040         __le64  tqm_ring6_page_dir;
2041         __le64  tqm_ring7_page_dir;
2042         __le64  mrav_page_dir;
2043         __le64  tim_page_dir;
2044         __le32  qp_num_entries;
2045         __le32  srq_num_entries;
2046         __le32  cq_num_entries;
2047         __le32  stat_num_entries;
2048         __le32  tqm_sp_num_entries;
2049         __le32  tqm_ring0_num_entries;
2050         __le32  tqm_ring1_num_entries;
2051         __le32  tqm_ring2_num_entries;
2052         __le32  tqm_ring3_num_entries;
2053         __le32  tqm_ring4_num_entries;
2054         __le32  tqm_ring5_num_entries;
2055         __le32  tqm_ring6_num_entries;
2056         __le32  tqm_ring7_num_entries;
2057         __le32  mrav_num_entries;
2058         __le32  tim_num_entries;
2059         __le16  qp_num_qp1_entries;
2060         __le16  qp_num_l2_entries;
2061         __le16  qp_entry_size;
2062         __le16  srq_num_l2_entries;
2063         __le16  srq_entry_size;
2064         __le16  cq_num_l2_entries;
2065         __le16  cq_entry_size;
2066         __le16  vnic_num_vnic_entries;
2067         __le16  vnic_num_ring_table_entries;
2068         __le16  vnic_entry_size;
2069         __le16  stat_entry_size;
2070         __le16  tqm_entry_size;
2071         __le16  mrav_entry_size;
2072         __le16  tim_entry_size;
2073 };
2074
2075 /* hwrm_func_backing_store_cfg_output (size:128b/16B) */
2076 struct hwrm_func_backing_store_cfg_output {
2077         __le16  error_code;
2078         __le16  req_type;
2079         __le16  seq_id;
2080         __le16  resp_len;
2081         u8      unused_0[7];
2082         u8      valid;
2083 };
2084
2085 /* hwrm_error_recovery_qcfg_input (size:192b/24B) */
2086 struct hwrm_error_recovery_qcfg_input {
2087         __le16  req_type;
2088         __le16  cmpl_ring;
2089         __le16  seq_id;
2090         __le16  target_id;
2091         __le64  resp_addr;
2092         u8      unused_0[8];
2093 };
2094
2095 /* hwrm_error_recovery_qcfg_output (size:1664b/208B) */
2096 struct hwrm_error_recovery_qcfg_output {
2097         __le16  error_code;
2098         __le16  req_type;
2099         __le16  seq_id;
2100         __le16  resp_len;
2101         __le32  flags;
2102         #define ERROR_RECOVERY_QCFG_RESP_FLAGS_HOST       0x1UL
2103         #define ERROR_RECOVERY_QCFG_RESP_FLAGS_CO_CPU     0x2UL
2104         __le32  driver_polling_freq;
2105         __le32  master_func_wait_period;
2106         __le32  normal_func_wait_period;
2107         __le32  master_func_wait_period_after_reset;
2108         __le32  max_bailout_time_after_reset;
2109         __le32  fw_health_status_reg;
2110         #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_MASK    0x3UL
2111         #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_SFT     0
2112         #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_PCIE_CFG  0x0UL
2113         #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_GRC       0x1UL
2114         #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR0      0x2UL
2115         #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR1      0x3UL
2116         #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_LAST     ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR1
2117         #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_MASK          0xfffffffcUL
2118         #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SFT           2
2119         __le32  fw_heartbeat_reg;
2120         #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_MASK    0x3UL
2121         #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_SFT     0
2122         #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_PCIE_CFG  0x0UL
2123         #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_GRC       0x1UL
2124         #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR0      0x2UL
2125         #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR1      0x3UL
2126         #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_LAST     ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR1
2127         #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_MASK          0xfffffffcUL
2128         #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SFT           2
2129         __le32  fw_reset_cnt_reg;
2130         #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_MASK    0x3UL
2131         #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_SFT     0
2132         #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_PCIE_CFG  0x0UL
2133         #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_GRC       0x1UL
2134         #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR0      0x2UL
2135         #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR1      0x3UL
2136         #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_LAST     ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR1
2137         #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_MASK          0xfffffffcUL
2138         #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SFT           2
2139         __le32  reset_inprogress_reg;
2140         #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_MASK    0x3UL
2141         #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_SFT     0
2142         #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_PCIE_CFG  0x0UL
2143         #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_GRC       0x1UL
2144         #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR0      0x2UL
2145         #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR1      0x3UL
2146         #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_LAST     ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR1
2147         #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_MASK          0xfffffffcUL
2148         #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SFT           2
2149         __le32  reset_inprogress_reg_mask;
2150         u8      unused_0[3];
2151         u8      reg_array_cnt;
2152         __le32  reset_reg[16];
2153         #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_MASK    0x3UL
2154         #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_SFT     0
2155         #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_PCIE_CFG  0x0UL
2156         #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_GRC       0x1UL
2157         #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR0      0x2UL
2158         #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR1      0x3UL
2159         #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_LAST     ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR1
2160         #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_MASK          0xfffffffcUL
2161         #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SFT           2
2162         __le32  reset_reg_val[16];
2163         u8      delay_after_reset[16];
2164         u8      unused_1[7];
2165         u8      valid;
2166 };
2167
2168 /* hwrm_func_drv_if_change_input (size:192b/24B) */
2169 struct hwrm_func_drv_if_change_input {
2170         __le16  req_type;
2171         __le16  cmpl_ring;
2172         __le16  seq_id;
2173         __le16  target_id;
2174         __le64  resp_addr;
2175         __le32  flags;
2176         #define FUNC_DRV_IF_CHANGE_REQ_FLAGS_UP     0x1UL
2177         __le32  unused;
2178 };
2179
2180 /* hwrm_func_drv_if_change_output (size:128b/16B) */
2181 struct hwrm_func_drv_if_change_output {
2182         __le16  error_code;
2183         __le16  req_type;
2184         __le16  seq_id;
2185         __le16  resp_len;
2186         __le32  flags;
2187         #define FUNC_DRV_IF_CHANGE_RESP_FLAGS_RESC_CHANGE           0x1UL
2188         #define FUNC_DRV_IF_CHANGE_RESP_FLAGS_HOT_FW_RESET_DONE     0x2UL
2189         u8      unused_0[3];
2190         u8      valid;
2191 };
2192
2193 /* hwrm_port_phy_cfg_input (size:448b/56B) */
2194 struct hwrm_port_phy_cfg_input {
2195         __le16  req_type;
2196         __le16  cmpl_ring;
2197         __le16  seq_id;
2198         __le16  target_id;
2199         __le64  resp_addr;
2200         __le32  flags;
2201         #define PORT_PHY_CFG_REQ_FLAGS_RESET_PHY                0x1UL
2202         #define PORT_PHY_CFG_REQ_FLAGS_DEPRECATED               0x2UL
2203         #define PORT_PHY_CFG_REQ_FLAGS_FORCE                    0x4UL
2204         #define PORT_PHY_CFG_REQ_FLAGS_RESTART_AUTONEG          0x8UL
2205         #define PORT_PHY_CFG_REQ_FLAGS_EEE_ENABLE               0x10UL
2206         #define PORT_PHY_CFG_REQ_FLAGS_EEE_DISABLE              0x20UL
2207         #define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_ENABLE        0x40UL
2208         #define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_DISABLE       0x80UL
2209         #define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_ENABLE       0x100UL
2210         #define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_DISABLE      0x200UL
2211         #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_ENABLE      0x400UL
2212         #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_DISABLE     0x800UL
2213         #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_ENABLE      0x1000UL
2214         #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_DISABLE     0x2000UL
2215         #define PORT_PHY_CFG_REQ_FLAGS_FORCE_LINK_DWN           0x4000UL
2216         __le32  enables;
2217         #define PORT_PHY_CFG_REQ_ENABLES_AUTO_MODE                0x1UL
2218         #define PORT_PHY_CFG_REQ_ENABLES_AUTO_DUPLEX              0x2UL
2219         #define PORT_PHY_CFG_REQ_ENABLES_AUTO_PAUSE               0x4UL
2220         #define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEED          0x8UL
2221         #define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEED_MASK     0x10UL
2222         #define PORT_PHY_CFG_REQ_ENABLES_WIRESPEED                0x20UL
2223         #define PORT_PHY_CFG_REQ_ENABLES_LPBK                     0x40UL
2224         #define PORT_PHY_CFG_REQ_ENABLES_PREEMPHASIS              0x80UL
2225         #define PORT_PHY_CFG_REQ_ENABLES_FORCE_PAUSE              0x100UL
2226         #define PORT_PHY_CFG_REQ_ENABLES_EEE_LINK_SPEED_MASK      0x200UL
2227         #define PORT_PHY_CFG_REQ_ENABLES_TX_LPI_TIMER             0x400UL
2228         __le16  port_id;
2229         __le16  force_link_speed;
2230         #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_100MB 0x1UL
2231         #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_1GB   0xaUL
2232         #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_2GB   0x14UL
2233         #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_2_5GB 0x19UL
2234         #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10GB  0x64UL
2235         #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_20GB  0xc8UL
2236         #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_25GB  0xfaUL
2237         #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_40GB  0x190UL
2238         #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_50GB  0x1f4UL
2239         #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_100GB 0x3e8UL
2240         #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_200GB 0x7d0UL
2241         #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10MB  0xffffUL
2242         #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_LAST PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10MB
2243         u8      auto_mode;
2244         #define PORT_PHY_CFG_REQ_AUTO_MODE_NONE         0x0UL
2245         #define PORT_PHY_CFG_REQ_AUTO_MODE_ALL_SPEEDS   0x1UL
2246         #define PORT_PHY_CFG_REQ_AUTO_MODE_ONE_SPEED    0x2UL
2247         #define PORT_PHY_CFG_REQ_AUTO_MODE_ONE_OR_BELOW 0x3UL
2248         #define PORT_PHY_CFG_REQ_AUTO_MODE_SPEED_MASK   0x4UL
2249         #define PORT_PHY_CFG_REQ_AUTO_MODE_LAST        PORT_PHY_CFG_REQ_AUTO_MODE_SPEED_MASK
2250         u8      auto_duplex;
2251         #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_HALF 0x0UL
2252         #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_FULL 0x1UL
2253         #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_BOTH 0x2UL
2254         #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_LAST PORT_PHY_CFG_REQ_AUTO_DUPLEX_BOTH
2255         u8      auto_pause;
2256         #define PORT_PHY_CFG_REQ_AUTO_PAUSE_TX                0x1UL
2257         #define PORT_PHY_CFG_REQ_AUTO_PAUSE_RX                0x2UL
2258         #define PORT_PHY_CFG_REQ_AUTO_PAUSE_AUTONEG_PAUSE     0x4UL
2259         u8      unused_0;
2260         __le16  auto_link_speed;
2261         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_100MB 0x1UL
2262         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_1GB   0xaUL
2263         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_2GB   0x14UL
2264         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_2_5GB 0x19UL
2265         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10GB  0x64UL
2266         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_20GB  0xc8UL
2267         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_25GB  0xfaUL
2268         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_40GB  0x190UL
2269         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_50GB  0x1f4UL
2270         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_100GB 0x3e8UL
2271         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_200GB 0x7d0UL
2272         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10MB  0xffffUL
2273         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_LAST PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10MB
2274         __le16  auto_link_speed_mask;
2275         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100MBHD     0x1UL
2276         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100MB       0x2UL
2277         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_1GBHD       0x4UL
2278         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_1GB         0x8UL
2279         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_2GB         0x10UL
2280         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_2_5GB       0x20UL
2281         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10GB        0x40UL
2282         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_20GB        0x80UL
2283         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_25GB        0x100UL
2284         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_40GB        0x200UL
2285         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_50GB        0x400UL
2286         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100GB       0x800UL
2287         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10MBHD      0x1000UL
2288         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10MB        0x2000UL
2289         #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_200GB       0x4000UL
2290         u8      wirespeed;
2291         #define PORT_PHY_CFG_REQ_WIRESPEED_OFF 0x0UL
2292         #define PORT_PHY_CFG_REQ_WIRESPEED_ON  0x1UL
2293         #define PORT_PHY_CFG_REQ_WIRESPEED_LAST PORT_PHY_CFG_REQ_WIRESPEED_ON
2294         u8      lpbk;
2295         #define PORT_PHY_CFG_REQ_LPBK_NONE     0x0UL
2296         #define PORT_PHY_CFG_REQ_LPBK_LOCAL    0x1UL
2297         #define PORT_PHY_CFG_REQ_LPBK_REMOTE   0x2UL
2298         #define PORT_PHY_CFG_REQ_LPBK_EXTERNAL 0x3UL
2299         #define PORT_PHY_CFG_REQ_LPBK_LAST    PORT_PHY_CFG_REQ_LPBK_EXTERNAL
2300         u8      force_pause;
2301         #define PORT_PHY_CFG_REQ_FORCE_PAUSE_TX     0x1UL
2302         #define PORT_PHY_CFG_REQ_FORCE_PAUSE_RX     0x2UL
2303         u8      unused_1;
2304         __le32  preemphasis;
2305         __le16  eee_link_speed_mask;
2306         #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD1     0x1UL
2307         #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_100MB     0x2UL
2308         #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD2     0x4UL
2309         #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_1GB       0x8UL
2310         #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD3     0x10UL
2311         #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD4     0x20UL
2312         #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_10GB      0x40UL
2313         u8      unused_2[2];
2314         __le32  tx_lpi_timer;
2315         #define PORT_PHY_CFG_REQ_TX_LPI_TIMER_MASK 0xffffffUL
2316         #define PORT_PHY_CFG_REQ_TX_LPI_TIMER_SFT 0
2317         __le32  unused_3;
2318 };
2319
2320 /* hwrm_port_phy_cfg_output (size:128b/16B) */
2321 struct hwrm_port_phy_cfg_output {
2322         __le16  error_code;
2323         __le16  req_type;
2324         __le16  seq_id;
2325         __le16  resp_len;
2326         u8      unused_0[7];
2327         u8      valid;
2328 };
2329
2330 /* hwrm_port_phy_cfg_cmd_err (size:64b/8B) */
2331 struct hwrm_port_phy_cfg_cmd_err {
2332         u8      code;
2333         #define PORT_PHY_CFG_CMD_ERR_CODE_UNKNOWN       0x0UL
2334         #define PORT_PHY_CFG_CMD_ERR_CODE_ILLEGAL_SPEED 0x1UL
2335         #define PORT_PHY_CFG_CMD_ERR_CODE_RETRY         0x2UL
2336         #define PORT_PHY_CFG_CMD_ERR_CODE_LAST         PORT_PHY_CFG_CMD_ERR_CODE_RETRY
2337         u8      unused_0[7];
2338 };
2339
2340 /* hwrm_port_phy_qcfg_input (size:192b/24B) */
2341 struct hwrm_port_phy_qcfg_input {
2342         __le16  req_type;
2343         __le16  cmpl_ring;
2344         __le16  seq_id;
2345         __le16  target_id;
2346         __le64  resp_addr;
2347         __le16  port_id;
2348         u8      unused_0[6];
2349 };
2350
2351 /* hwrm_port_phy_qcfg_output (size:768b/96B) */
2352 struct hwrm_port_phy_qcfg_output {
2353         __le16  error_code;
2354         __le16  req_type;
2355         __le16  seq_id;
2356         __le16  resp_len;
2357         u8      link;
2358         #define PORT_PHY_QCFG_RESP_LINK_NO_LINK 0x0UL
2359         #define PORT_PHY_QCFG_RESP_LINK_SIGNAL  0x1UL
2360         #define PORT_PHY_QCFG_RESP_LINK_LINK    0x2UL
2361         #define PORT_PHY_QCFG_RESP_LINK_LAST   PORT_PHY_QCFG_RESP_LINK_LINK
2362         u8      unused_0;
2363         __le16  link_speed;
2364         #define PORT_PHY_QCFG_RESP_LINK_SPEED_100MB 0x1UL
2365         #define PORT_PHY_QCFG_RESP_LINK_SPEED_1GB   0xaUL
2366         #define PORT_PHY_QCFG_RESP_LINK_SPEED_2GB   0x14UL
2367         #define PORT_PHY_QCFG_RESP_LINK_SPEED_2_5GB 0x19UL
2368         #define PORT_PHY_QCFG_RESP_LINK_SPEED_10GB  0x64UL
2369         #define PORT_PHY_QCFG_RESP_LINK_SPEED_20GB  0xc8UL
2370         #define PORT_PHY_QCFG_RESP_LINK_SPEED_25GB  0xfaUL
2371         #define PORT_PHY_QCFG_RESP_LINK_SPEED_40GB  0x190UL
2372         #define PORT_PHY_QCFG_RESP_LINK_SPEED_50GB  0x1f4UL
2373         #define PORT_PHY_QCFG_RESP_LINK_SPEED_100GB 0x3e8UL
2374         #define PORT_PHY_QCFG_RESP_LINK_SPEED_200GB 0x7d0UL
2375         #define PORT_PHY_QCFG_RESP_LINK_SPEED_10MB  0xffffUL
2376         #define PORT_PHY_QCFG_RESP_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_LINK_SPEED_10MB
2377         u8      duplex_cfg;
2378         #define PORT_PHY_QCFG_RESP_DUPLEX_CFG_HALF 0x0UL
2379         #define PORT_PHY_QCFG_RESP_DUPLEX_CFG_FULL 0x1UL
2380         #define PORT_PHY_QCFG_RESP_DUPLEX_CFG_LAST PORT_PHY_QCFG_RESP_DUPLEX_CFG_FULL
2381         u8      pause;
2382         #define PORT_PHY_QCFG_RESP_PAUSE_TX     0x1UL
2383         #define PORT_PHY_QCFG_RESP_PAUSE_RX     0x2UL
2384         __le16  support_speeds;
2385         #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100MBHD     0x1UL
2386         #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100MB       0x2UL
2387         #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_1GBHD       0x4UL
2388         #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_1GB         0x8UL
2389         #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_2GB         0x10UL
2390         #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_2_5GB       0x20UL
2391         #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10GB        0x40UL
2392         #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_20GB        0x80UL
2393         #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_25GB        0x100UL
2394         #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_40GB        0x200UL
2395         #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_50GB        0x400UL
2396         #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100GB       0x800UL
2397         #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10MBHD      0x1000UL
2398         #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10MB        0x2000UL
2399         #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_200GB       0x4000UL
2400         __le16  force_link_speed;
2401         #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_100MB 0x1UL
2402         #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_1GB   0xaUL
2403         #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_2GB   0x14UL
2404         #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_2_5GB 0x19UL
2405         #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10GB  0x64UL
2406         #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_20GB  0xc8UL
2407         #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_25GB  0xfaUL
2408         #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_40GB  0x190UL
2409         #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_50GB  0x1f4UL
2410         #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_100GB 0x3e8UL
2411         #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_200GB 0x7d0UL
2412         #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10MB  0xffffUL
2413         #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10MB
2414         u8      auto_mode;
2415         #define PORT_PHY_QCFG_RESP_AUTO_MODE_NONE         0x0UL
2416         #define PORT_PHY_QCFG_RESP_AUTO_MODE_ALL_SPEEDS   0x1UL
2417         #define PORT_PHY_QCFG_RESP_AUTO_MODE_ONE_SPEED    0x2UL
2418         #define PORT_PHY_QCFG_RESP_AUTO_MODE_ONE_OR_BELOW 0x3UL
2419         #define PORT_PHY_QCFG_RESP_AUTO_MODE_SPEED_MASK   0x4UL
2420         #define PORT_PHY_QCFG_RESP_AUTO_MODE_LAST        PORT_PHY_QCFG_RESP_AUTO_MODE_SPEED_MASK
2421         u8      auto_pause;
2422         #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_TX                0x1UL
2423         #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_RX                0x2UL
2424         #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_AUTONEG_PAUSE     0x4UL
2425         __le16  auto_link_speed;
2426         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_100MB 0x1UL
2427         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_1GB   0xaUL
2428         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_2GB   0x14UL
2429         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_2_5GB 0x19UL
2430         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10GB  0x64UL
2431         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_20GB  0xc8UL
2432         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_25GB  0xfaUL
2433         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_40GB  0x190UL
2434         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_50GB  0x1f4UL
2435         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_100GB 0x3e8UL
2436         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_200GB 0x7d0UL
2437         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10MB  0xffffUL
2438         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10MB
2439         __le16  auto_link_speed_mask;
2440         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100MBHD     0x1UL
2441         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100MB       0x2UL
2442         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_1GBHD       0x4UL
2443         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_1GB         0x8UL
2444         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_2GB         0x10UL
2445         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_2_5GB       0x20UL
2446         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10GB        0x40UL
2447         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_20GB        0x80UL
2448         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_25GB        0x100UL
2449         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_40GB        0x200UL
2450         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_50GB        0x400UL
2451         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100GB       0x800UL
2452         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10MBHD      0x1000UL
2453         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10MB        0x2000UL
2454         #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_200GB       0x4000UL
2455         u8      wirespeed;
2456         #define PORT_PHY_QCFG_RESP_WIRESPEED_OFF 0x0UL
2457         #define PORT_PHY_QCFG_RESP_WIRESPEED_ON  0x1UL
2458         #define PORT_PHY_QCFG_RESP_WIRESPEED_LAST PORT_PHY_QCFG_RESP_WIRESPEED_ON
2459         u8      lpbk;
2460         #define PORT_PHY_QCFG_RESP_LPBK_NONE     0x0UL
2461         #define PORT_PHY_QCFG_RESP_LPBK_LOCAL    0x1UL
2462         #define PORT_PHY_QCFG_RESP_LPBK_REMOTE   0x2UL
2463         #define PORT_PHY_QCFG_RESP_LPBK_EXTERNAL 0x3UL
2464         #define PORT_PHY_QCFG_RESP_LPBK_LAST    PORT_PHY_QCFG_RESP_LPBK_EXTERNAL
2465         u8      force_pause;
2466         #define PORT_PHY_QCFG_RESP_FORCE_PAUSE_TX     0x1UL
2467         #define PORT_PHY_QCFG_RESP_FORCE_PAUSE_RX     0x2UL
2468         u8      module_status;
2469         #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NONE          0x0UL
2470         #define PORT_PHY_QCFG_RESP_MODULE_STATUS_DISABLETX     0x1UL
2471         #define PORT_PHY_QCFG_RESP_MODULE_STATUS_WARNINGMSG    0x2UL
2472         #define PORT_PHY_QCFG_RESP_MODULE_STATUS_PWRDOWN       0x3UL
2473         #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTINSERTED   0x4UL
2474         #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTAPPLICABLE 0xffUL
2475         #define PORT_PHY_QCFG_RESP_MODULE_STATUS_LAST         PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTAPPLICABLE
2476         __le32  preemphasis;
2477         u8      phy_maj;
2478         u8      phy_min;
2479         u8      phy_bld;
2480         u8      phy_type;
2481         #define PORT_PHY_QCFG_RESP_PHY_TYPE_UNKNOWN          0x0UL
2482         #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASECR           0x1UL
2483         #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR4          0x2UL
2484         #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASELR           0x3UL
2485         #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASESR           0x4UL
2486         #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR2          0x5UL
2487         #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKX           0x6UL
2488         #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR           0x7UL
2489         #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASET            0x8UL
2490         #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASETE           0x9UL
2491         #define PORT_PHY_QCFG_RESP_PHY_TYPE_SGMIIEXTPHY      0xaUL
2492         #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_L  0xbUL
2493         #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_S  0xcUL
2494         #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_N  0xdUL
2495         #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASESR       0xeUL
2496         #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASECR4     0xfUL
2497         #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR4     0x10UL
2498         #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASELR4     0x11UL
2499         #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASEER4     0x12UL
2500         #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR10    0x13UL
2501         #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASECR4      0x14UL
2502         #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASESR4      0x15UL
2503         #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASELR4      0x16UL
2504         #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASEER4      0x17UL
2505         #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_ACTIVE_CABLE 0x18UL
2506         #define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASET         0x19UL
2507         #define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASESX        0x1aUL
2508         #define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASECX        0x1bUL
2509         #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASECR4     0x1cUL
2510         #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASESR4     0x1dUL
2511         #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASELR4     0x1eUL
2512         #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASEER4     0x1fUL
2513         #define PORT_PHY_QCFG_RESP_PHY_TYPE_LAST            PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASEER4
2514         u8      media_type;
2515         #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_UNKNOWN 0x0UL
2516         #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_TP      0x1UL
2517         #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_DAC     0x2UL
2518         #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_FIBRE   0x3UL
2519         #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_LAST   PORT_PHY_QCFG_RESP_MEDIA_TYPE_FIBRE
2520         u8      xcvr_pkg_type;
2521         #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_INTERNAL 0x1UL
2522         #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_EXTERNAL 0x2UL
2523         #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_LAST         PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_EXTERNAL
2524         u8      eee_config_phy_addr;
2525         #define PORT_PHY_QCFG_RESP_PHY_ADDR_MASK              0x1fUL
2526         #define PORT_PHY_QCFG_RESP_PHY_ADDR_SFT               0
2527         #define PORT_PHY_QCFG_RESP_EEE_CONFIG_MASK            0xe0UL
2528         #define PORT_PHY_QCFG_RESP_EEE_CONFIG_SFT             5
2529         #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_ENABLED      0x20UL
2530         #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_ACTIVE       0x40UL
2531         #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_TX_LPI       0x80UL
2532         u8      parallel_detect;
2533         #define PORT_PHY_QCFG_RESP_PARALLEL_DETECT     0x1UL
2534         __le16  link_partner_adv_speeds;
2535         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100MBHD     0x1UL
2536         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100MB       0x2UL
2537         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_1GBHD       0x4UL
2538         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_1GB         0x8UL
2539         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_2GB         0x10UL
2540         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_2_5GB       0x20UL
2541         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10GB        0x40UL
2542         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_20GB        0x80UL
2543         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_25GB        0x100UL
2544         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_40GB        0x200UL
2545         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_50GB        0x400UL
2546         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100GB       0x800UL
2547         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10MBHD      0x1000UL
2548         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10MB        0x2000UL
2549         u8      link_partner_adv_auto_mode;
2550         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_NONE         0x0UL
2551         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ALL_SPEEDS   0x1UL
2552         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ONE_SPEED    0x2UL
2553         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ONE_OR_BELOW 0x3UL
2554         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_SPEED_MASK   0x4UL
2555         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_LAST        PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_SPEED_MASK
2556         u8      link_partner_adv_pause;
2557         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_PAUSE_TX     0x1UL
2558         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_PAUSE_RX     0x2UL
2559         __le16  adv_eee_link_speed_mask;
2560         #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD1     0x1UL
2561         #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_100MB     0x2UL
2562         #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD2     0x4UL
2563         #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_1GB       0x8UL
2564         #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD3     0x10UL
2565         #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD4     0x20UL
2566         #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_10GB      0x40UL
2567         __le16  link_partner_adv_eee_link_speed_mask;
2568         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD1     0x1UL
2569         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_100MB     0x2UL
2570         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD2     0x4UL
2571         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_1GB       0x8UL
2572         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD3     0x10UL
2573         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD4     0x20UL
2574         #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_10GB      0x40UL
2575         __le32  xcvr_identifier_type_tx_lpi_timer;
2576         #define PORT_PHY_QCFG_RESP_TX_LPI_TIMER_MASK            0xffffffUL
2577         #define PORT_PHY_QCFG_RESP_TX_LPI_TIMER_SFT             0
2578         #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_MASK    0xff000000UL
2579         #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFT     24
2580         #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_UNKNOWN   (0x0UL << 24)
2581         #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFP       (0x3UL << 24)
2582         #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP      (0xcUL << 24)
2583         #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFPPLUS  (0xdUL << 24)
2584         #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP28    (0x11UL << 24)
2585         #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_LAST     PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP28
2586         __le16  fec_cfg;
2587         #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_NONE_SUPPORTED         0x1UL
2588         #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_SUPPORTED      0x2UL
2589         #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_ENABLED        0x4UL
2590         #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_SUPPORTED     0x8UL
2591         #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_ENABLED       0x10UL
2592         #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_SUPPORTED     0x20UL
2593         #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_ENABLED       0x40UL
2594         u8      duplex_state;
2595         #define PORT_PHY_QCFG_RESP_DUPLEX_STATE_HALF 0x0UL
2596         #define PORT_PHY_QCFG_RESP_DUPLEX_STATE_FULL 0x1UL
2597         #define PORT_PHY_QCFG_RESP_DUPLEX_STATE_LAST PORT_PHY_QCFG_RESP_DUPLEX_STATE_FULL
2598         u8      option_flags;
2599         #define PORT_PHY_QCFG_RESP_OPTION_FLAGS_MEDIA_AUTO_DETECT     0x1UL
2600         char    phy_vendor_name[16];
2601         char    phy_vendor_partnumber[16];
2602         u8      unused_2[7];
2603         u8      valid;
2604 };
2605
2606 /* hwrm_port_mac_cfg_input (size:384b/48B) */
2607 struct hwrm_port_mac_cfg_input {
2608         __le16  req_type;
2609         __le16  cmpl_ring;
2610         __le16  seq_id;
2611         __le16  target_id;
2612         __le64  resp_addr;
2613         __le32  flags;
2614         #define PORT_MAC_CFG_REQ_FLAGS_MATCH_LINK                    0x1UL
2615         #define PORT_MAC_CFG_REQ_FLAGS_VLAN_PRI2COS_ENABLE           0x2UL
2616         #define PORT_MAC_CFG_REQ_FLAGS_TUNNEL_PRI2COS_ENABLE         0x4UL
2617         #define PORT_MAC_CFG_REQ_FLAGS_IP_DSCP2COS_ENABLE            0x8UL
2618         #define PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_ENABLE      0x10UL
2619         #define PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_DISABLE     0x20UL
2620         #define PORT_MAC_CFG_REQ_FLAGS_PTP_TX_TS_CAPTURE_ENABLE      0x40UL
2621         #define PORT_MAC_CFG_REQ_FLAGS_PTP_TX_TS_CAPTURE_DISABLE     0x80UL
2622         #define PORT_MAC_CFG_REQ_FLAGS_OOB_WOL_ENABLE                0x100UL
2623         #define PORT_MAC_CFG_REQ_FLAGS_OOB_WOL_DISABLE               0x200UL
2624         #define PORT_MAC_CFG_REQ_FLAGS_VLAN_PRI2COS_DISABLE          0x400UL
2625         #define PORT_MAC_CFG_REQ_FLAGS_TUNNEL_PRI2COS_DISABLE        0x800UL
2626         #define PORT_MAC_CFG_REQ_FLAGS_IP_DSCP2COS_DISABLE           0x1000UL
2627         #define PORT_MAC_CFG_REQ_FLAGS_PTP_ONE_STEP_TX_TS            0x2000UL
2628         __le32  enables;
2629         #define PORT_MAC_CFG_REQ_ENABLES_IPG                            0x1UL
2630         #define PORT_MAC_CFG_REQ_ENABLES_LPBK                           0x2UL
2631         #define PORT_MAC_CFG_REQ_ENABLES_VLAN_PRI2COS_MAP_PRI           0x4UL
2632         #define PORT_MAC_CFG_REQ_ENABLES_TUNNEL_PRI2COS_MAP_PRI         0x10UL
2633         #define PORT_MAC_CFG_REQ_ENABLES_DSCP2COS_MAP_PRI               0x20UL
2634         #define PORT_MAC_CFG_REQ_ENABLES_RX_TS_CAPTURE_PTP_MSG_TYPE     0x40UL
2635         #define PORT_MAC_CFG_REQ_ENABLES_TX_TS_CAPTURE_PTP_MSG_TYPE     0x80UL
2636         #define PORT_MAC_CFG_REQ_ENABLES_COS_FIELD_CFG                  0x100UL
2637         #define PORT_MAC_CFG_REQ_ENABLES_PTP_FREQ_ADJ_PPB               0x200UL
2638         __le16  port_id;
2639         u8      ipg;
2640         u8      lpbk;
2641         #define PORT_MAC_CFG_REQ_LPBK_NONE   0x0UL
2642         #define PORT_MAC_CFG_REQ_LPBK_LOCAL  0x1UL
2643         #define PORT_MAC_CFG_REQ_LPBK_REMOTE 0x2UL
2644         #define PORT_MAC_CFG_REQ_LPBK_LAST  PORT_MAC_CFG_REQ_LPBK_REMOTE
2645         u8      vlan_pri2cos_map_pri;
2646         u8      reserved1;
2647         u8      tunnel_pri2cos_map_pri;
2648         u8      dscp2pri_map_pri;
2649         __le16  rx_ts_capture_ptp_msg_type;
2650         __le16  tx_ts_capture_ptp_msg_type;
2651         u8      cos_field_cfg;
2652         #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_RSVD1                     0x1UL
2653         #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_MASK         0x6UL
2654         #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_SFT          1
2655         #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_INNERMOST      (0x0UL << 1)
2656         #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_OUTER          (0x1UL << 1)
2657         #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_OUTERMOST      (0x2UL << 1)
2658         #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_UNSPECIFIED    (0x3UL << 1)
2659         #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_LAST          PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_UNSPECIFIED
2660         #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_MASK       0x18UL
2661         #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_SFT        3
2662         #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_INNERMOST    (0x0UL << 3)
2663         #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_OUTER        (0x1UL << 3)
2664         #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_OUTERMOST    (0x2UL << 3)
2665         #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_UNSPECIFIED  (0x3UL << 3)
2666         #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
2667         #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_DEFAULT_COS_MASK          0xe0UL
2668         #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_DEFAULT_COS_SFT           5
2669         u8      unused_0[3];
2670         __s32   ptp_freq_adj_ppb;
2671         u8      unused_1[4];
2672 };
2673
2674 /* hwrm_port_mac_cfg_output (size:128b/16B) */
2675 struct hwrm_port_mac_cfg_output {
2676         __le16  error_code;
2677         __le16  req_type;
2678         __le16  seq_id;
2679         __le16  resp_len;
2680         __le16  mru;
2681         __le16  mtu;
2682         u8      ipg;
2683         u8      lpbk;
2684         #define PORT_MAC_CFG_RESP_LPBK_NONE   0x0UL
2685         #define PORT_MAC_CFG_RESP_LPBK_LOCAL  0x1UL
2686         #define PORT_MAC_CFG_RESP_LPBK_REMOTE 0x2UL
2687         #define PORT_MAC_CFG_RESP_LPBK_LAST  PORT_MAC_CFG_RESP_LPBK_REMOTE
2688         u8      unused_0;
2689         u8      valid;
2690 };
2691
2692 /* hwrm_port_mac_ptp_qcfg_input (size:192b/24B) */
2693 struct hwrm_port_mac_ptp_qcfg_input {
2694         __le16  req_type;
2695         __le16  cmpl_ring;
2696         __le16  seq_id;
2697         __le16  target_id;
2698         __le64  resp_addr;
2699         __le16  port_id;
2700         u8      unused_0[6];
2701 };
2702
2703 /* hwrm_port_mac_ptp_qcfg_output (size:640b/80B) */
2704 struct hwrm_port_mac_ptp_qcfg_output {
2705         __le16  error_code;
2706         __le16  req_type;
2707         __le16  seq_id;
2708         __le16  resp_len;
2709         u8      flags;
2710         #define PORT_MAC_PTP_QCFG_RESP_FLAGS_DIRECT_ACCESS      0x1UL
2711         #define PORT_MAC_PTP_QCFG_RESP_FLAGS_HWRM_ACCESS        0x2UL
2712         #define PORT_MAC_PTP_QCFG_RESP_FLAGS_ONE_STEP_TX_TS     0x4UL
2713         u8      unused_0[3];
2714         __le32  rx_ts_reg_off_lower;
2715         __le32  rx_ts_reg_off_upper;
2716         __le32  rx_ts_reg_off_seq_id;
2717         __le32  rx_ts_reg_off_src_id_0;
2718         __le32  rx_ts_reg_off_src_id_1;
2719         __le32  rx_ts_reg_off_src_id_2;
2720         __le32  rx_ts_reg_off_domain_id;
2721         __le32  rx_ts_reg_off_fifo;
2722         __le32  rx_ts_reg_off_fifo_adv;
2723         __le32  rx_ts_reg_off_granularity;
2724         __le32  tx_ts_reg_off_lower;
2725         __le32  tx_ts_reg_off_upper;
2726         __le32  tx_ts_reg_off_seq_id;
2727         __le32  tx_ts_reg_off_fifo;
2728         __le32  tx_ts_reg_off_granularity;
2729         u8      unused_1[7];
2730         u8      valid;
2731 };
2732
2733 /* tx_port_stats (size:3264b/408B) */
2734 struct tx_port_stats {
2735         __le64  tx_64b_frames;
2736         __le64  tx_65b_127b_frames;
2737         __le64  tx_128b_255b_frames;
2738         __le64  tx_256b_511b_frames;
2739         __le64  tx_512b_1023b_frames;
2740         __le64  tx_1024b_1518b_frames;
2741         __le64  tx_good_vlan_frames;
2742         __le64  tx_1519b_2047b_frames;
2743         __le64  tx_2048b_4095b_frames;
2744         __le64  tx_4096b_9216b_frames;
2745         __le64  tx_9217b_16383b_frames;
2746         __le64  tx_good_frames;
2747         __le64  tx_total_frames;
2748         __le64  tx_ucast_frames;
2749         __le64  tx_mcast_frames;
2750         __le64  tx_bcast_frames;
2751         __le64  tx_pause_frames;
2752         __le64  tx_pfc_frames;
2753         __le64  tx_jabber_frames;
2754         __le64  tx_fcs_err_frames;
2755         __le64  tx_control_frames;
2756         __le64  tx_oversz_frames;
2757         __le64  tx_single_dfrl_frames;
2758         __le64  tx_multi_dfrl_frames;
2759         __le64  tx_single_coll_frames;
2760         __le64  tx_multi_coll_frames;
2761         __le64  tx_late_coll_frames;
2762         __le64  tx_excessive_coll_frames;
2763         __le64  tx_frag_frames;
2764         __le64  tx_err;
2765         __le64  tx_tagged_frames;
2766         __le64  tx_dbl_tagged_frames;
2767         __le64  tx_runt_frames;
2768         __le64  tx_fifo_underruns;
2769         __le64  tx_pfc_ena_frames_pri0;
2770         __le64  tx_pfc_ena_frames_pri1;
2771         __le64  tx_pfc_ena_frames_pri2;
2772         __le64  tx_pfc_ena_frames_pri3;
2773         __le64  tx_pfc_ena_frames_pri4;
2774         __le64  tx_pfc_ena_frames_pri5;
2775         __le64  tx_pfc_ena_frames_pri6;
2776         __le64  tx_pfc_ena_frames_pri7;
2777         __le64  tx_eee_lpi_events;
2778         __le64  tx_eee_lpi_duration;
2779         __le64  tx_llfc_logical_msgs;
2780         __le64  tx_hcfc_msgs;
2781         __le64  tx_total_collisions;
2782         __le64  tx_bytes;
2783         __le64  tx_xthol_frames;
2784         __le64  tx_stat_discard;
2785         __le64  tx_stat_error;
2786 };
2787
2788 /* rx_port_stats (size:4224b/528B) */
2789 struct rx_port_stats {
2790         __le64  rx_64b_frames;
2791         __le64  rx_65b_127b_frames;
2792         __le64  rx_128b_255b_frames;
2793         __le64  rx_256b_511b_frames;
2794         __le64  rx_512b_1023b_frames;
2795         __le64  rx_1024b_1518b_frames;
2796         __le64  rx_good_vlan_frames;
2797         __le64  rx_1519b_2047b_frames;
2798         __le64  rx_2048b_4095b_frames;
2799         __le64  rx_4096b_9216b_frames;
2800         __le64  rx_9217b_16383b_frames;
2801         __le64  rx_total_frames;
2802         __le64  rx_ucast_frames;
2803         __le64  rx_mcast_frames;
2804         __le64  rx_bcast_frames;
2805         __le64  rx_fcs_err_frames;
2806         __le64  rx_ctrl_frames;
2807         __le64  rx_pause_frames;
2808         __le64  rx_pfc_frames;
2809         __le64  rx_unsupported_opcode_frames;
2810         __le64  rx_unsupported_da_pausepfc_frames;
2811         __le64  rx_wrong_sa_frames;
2812         __le64  rx_align_err_frames;
2813         __le64  rx_oor_len_frames;
2814         __le64  rx_code_err_frames;
2815         __le64  rx_false_carrier_frames;
2816         __le64  rx_ovrsz_frames;
2817         __le64  rx_jbr_frames;
2818         __le64  rx_mtu_err_frames;
2819         __le64  rx_match_crc_frames;
2820         __le64  rx_promiscuous_frames;
2821         __le64  rx_tagged_frames;
2822         __le64  rx_double_tagged_frames;
2823         __le64  rx_trunc_frames;
2824         __le64  rx_good_frames;
2825         __le64  rx_pfc_xon2xoff_frames_pri0;
2826         __le64  rx_pfc_xon2xoff_frames_pri1;
2827         __le64  rx_pfc_xon2xoff_frames_pri2;
2828         __le64  rx_pfc_xon2xoff_frames_pri3;
2829         __le64  rx_pfc_xon2xoff_frames_pri4;
2830         __le64  rx_pfc_xon2xoff_frames_pri5;
2831         __le64  rx_pfc_xon2xoff_frames_pri6;
2832         __le64  rx_pfc_xon2xoff_frames_pri7;
2833         __le64  rx_pfc_ena_frames_pri0;
2834         __le64  rx_pfc_ena_frames_pri1;
2835         __le64  rx_pfc_ena_frames_pri2;
2836         __le64  rx_pfc_ena_frames_pri3;
2837         __le64  rx_pfc_ena_frames_pri4;
2838         __le64  rx_pfc_ena_frames_pri5;
2839         __le64  rx_pfc_ena_frames_pri6;
2840         __le64  rx_pfc_ena_frames_pri7;
2841         __le64  rx_sch_crc_err_frames;
2842         __le64  rx_undrsz_frames;
2843         __le64  rx_frag_frames;
2844         __le64  rx_eee_lpi_events;
2845         __le64  rx_eee_lpi_duration;
2846         __le64  rx_llfc_physical_msgs;
2847         __le64  rx_llfc_logical_msgs;
2848         __le64  rx_llfc_msgs_with_crc_err;
2849         __le64  rx_hcfc_msgs;
2850         __le64  rx_hcfc_msgs_with_crc_err;
2851         __le64  rx_bytes;
2852         __le64  rx_runt_bytes;
2853         __le64  rx_runt_frames;
2854         __le64  rx_stat_discard;
2855         __le64  rx_stat_err;
2856 };
2857
2858 /* hwrm_port_qstats_input (size:320b/40B) */
2859 struct hwrm_port_qstats_input {
2860         __le16  req_type;
2861         __le16  cmpl_ring;
2862         __le16  seq_id;
2863         __le16  target_id;
2864         __le64  resp_addr;
2865         __le16  port_id;
2866         u8      unused_0[6];
2867         __le64  tx_stat_host_addr;
2868         __le64  rx_stat_host_addr;
2869 };
2870
2871 /* hwrm_port_qstats_output (size:128b/16B) */
2872 struct hwrm_port_qstats_output {
2873         __le16  error_code;
2874         __le16  req_type;
2875         __le16  seq_id;
2876         __le16  resp_len;
2877         __le16  tx_stat_size;
2878         __le16  rx_stat_size;
2879         u8      unused_0[3];
2880         u8      valid;
2881 };
2882
2883 /* tx_port_stats_ext (size:2048b/256B) */
2884 struct tx_port_stats_ext {
2885         __le64  tx_bytes_cos0;
2886         __le64  tx_bytes_cos1;
2887         __le64  tx_bytes_cos2;
2888         __le64  tx_bytes_cos3;
2889         __le64  tx_bytes_cos4;
2890         __le64  tx_bytes_cos5;
2891         __le64  tx_bytes_cos6;
2892         __le64  tx_bytes_cos7;
2893         __le64  tx_packets_cos0;
2894         __le64  tx_packets_cos1;
2895         __le64  tx_packets_cos2;
2896         __le64  tx_packets_cos3;
2897         __le64  tx_packets_cos4;
2898         __le64  tx_packets_cos5;
2899         __le64  tx_packets_cos6;
2900         __le64  tx_packets_cos7;
2901         __le64  pfc_pri0_tx_duration_us;
2902         __le64  pfc_pri0_tx_transitions;
2903         __le64  pfc_pri1_tx_duration_us;
2904         __le64  pfc_pri1_tx_transitions;
2905         __le64  pfc_pri2_tx_duration_us;
2906         __le64  pfc_pri2_tx_transitions;
2907         __le64  pfc_pri3_tx_duration_us;
2908         __le64  pfc_pri3_tx_transitions;
2909         __le64  pfc_pri4_tx_duration_us;
2910         __le64  pfc_pri4_tx_transitions;
2911         __le64  pfc_pri5_tx_duration_us;
2912         __le64  pfc_pri5_tx_transitions;
2913         __le64  pfc_pri6_tx_duration_us;
2914         __le64  pfc_pri6_tx_transitions;
2915         __le64  pfc_pri7_tx_duration_us;
2916         __le64  pfc_pri7_tx_transitions;
2917 };
2918
2919 /* rx_port_stats_ext (size:2624b/328B) */
2920 struct rx_port_stats_ext {
2921         __le64  link_down_events;
2922         __le64  continuous_pause_events;
2923         __le64  resume_pause_events;
2924         __le64  continuous_roce_pause_events;
2925         __le64  resume_roce_pause_events;
2926         __le64  rx_bytes_cos0;
2927         __le64  rx_bytes_cos1;
2928         __le64  rx_bytes_cos2;
2929         __le64  rx_bytes_cos3;
2930         __le64  rx_bytes_cos4;
2931         __le64  rx_bytes_cos5;
2932         __le64  rx_bytes_cos6;
2933         __le64  rx_bytes_cos7;
2934         __le64  rx_packets_cos0;
2935         __le64  rx_packets_cos1;
2936         __le64  rx_packets_cos2;
2937         __le64  rx_packets_cos3;
2938         __le64  rx_packets_cos4;
2939         __le64  rx_packets_cos5;
2940         __le64  rx_packets_cos6;
2941         __le64  rx_packets_cos7;
2942         __le64  pfc_pri0_rx_duration_us;
2943         __le64  pfc_pri0_rx_transitions;
2944         __le64  pfc_pri1_rx_duration_us;
2945         __le64  pfc_pri1_rx_transitions;
2946         __le64  pfc_pri2_rx_duration_us;
2947         __le64  pfc_pri2_rx_transitions;
2948         __le64  pfc_pri3_rx_duration_us;
2949         __le64  pfc_pri3_rx_transitions;
2950         __le64  pfc_pri4_rx_duration_us;
2951         __le64  pfc_pri4_rx_transitions;
2952         __le64  pfc_pri5_rx_duration_us;
2953         __le64  pfc_pri5_rx_transitions;
2954         __le64  pfc_pri6_rx_duration_us;
2955         __le64  pfc_pri6_rx_transitions;
2956         __le64  pfc_pri7_rx_duration_us;
2957         __le64  pfc_pri7_rx_transitions;
2958         __le64  rx_bits;
2959         __le64  rx_buffer_passed_threshold;
2960         __le64  rx_pcs_symbol_err;
2961         __le64  rx_corrected_bits;
2962 };
2963
2964 /* hwrm_port_qstats_ext_input (size:320b/40B) */
2965 struct hwrm_port_qstats_ext_input {
2966         __le16  req_type;
2967         __le16  cmpl_ring;
2968         __le16  seq_id;
2969         __le16  target_id;
2970         __le64  resp_addr;
2971         __le16  port_id;
2972         __le16  tx_stat_size;
2973         __le16  rx_stat_size;
2974         u8      unused_0[2];
2975         __le64  tx_stat_host_addr;
2976         __le64  rx_stat_host_addr;
2977 };
2978
2979 /* hwrm_port_qstats_ext_output (size:128b/16B) */
2980 struct hwrm_port_qstats_ext_output {
2981         __le16  error_code;
2982         __le16  req_type;
2983         __le16  seq_id;
2984         __le16  resp_len;
2985         __le16  tx_stat_size;
2986         __le16  rx_stat_size;
2987         __le16  total_active_cos_queues;
2988         u8      flags;
2989         #define PORT_QSTATS_EXT_RESP_FLAGS_CLEAR_ROCE_COUNTERS_SUPPORTED     0x1UL
2990         u8      valid;
2991 };
2992
2993 /* hwrm_port_lpbk_qstats_input (size:128b/16B) */
2994 struct hwrm_port_lpbk_qstats_input {
2995         __le16  req_type;
2996         __le16  cmpl_ring;
2997         __le16  seq_id;
2998         __le16  target_id;
2999         __le64  resp_addr;
3000 };
3001
3002 /* hwrm_port_lpbk_qstats_output (size:768b/96B) */
3003 struct hwrm_port_lpbk_qstats_output {
3004         __le16  error_code;
3005         __le16  req_type;
3006         __le16  seq_id;
3007         __le16  resp_len;
3008         __le64  lpbk_ucast_frames;
3009         __le64  lpbk_mcast_frames;
3010         __le64  lpbk_bcast_frames;
3011         __le64  lpbk_ucast_bytes;
3012         __le64  lpbk_mcast_bytes;
3013         __le64  lpbk_bcast_bytes;
3014         __le64  tx_stat_discard;
3015         __le64  tx_stat_error;
3016         __le64  rx_stat_discard;
3017         __le64  rx_stat_error;
3018         u8      unused_0[7];
3019         u8      valid;
3020 };
3021
3022 /* hwrm_port_clr_stats_input (size:192b/24B) */
3023 struct hwrm_port_clr_stats_input {
3024         __le16  req_type;
3025         __le16  cmpl_ring;
3026         __le16  seq_id;
3027         __le16  target_id;
3028         __le64  resp_addr;
3029         __le16  port_id;
3030         u8      flags;
3031         #define PORT_CLR_STATS_REQ_FLAGS_ROCE_COUNTERS     0x1UL
3032         u8      unused_0[5];
3033 };
3034
3035 /* hwrm_port_clr_stats_output (size:128b/16B) */
3036 struct hwrm_port_clr_stats_output {
3037         __le16  error_code;
3038         __le16  req_type;
3039         __le16  seq_id;
3040         __le16  resp_len;
3041         u8      unused_0[7];
3042         u8      valid;
3043 };
3044
3045 /* hwrm_port_lpbk_clr_stats_input (size:128b/16B) */
3046 struct hwrm_port_lpbk_clr_stats_input {
3047         __le16  req_type;
3048         __le16  cmpl_ring;
3049         __le16  seq_id;
3050         __le16  target_id;
3051         __le64  resp_addr;
3052 };
3053
3054 /* hwrm_port_lpbk_clr_stats_output (size:128b/16B) */
3055 struct hwrm_port_lpbk_clr_stats_output {
3056         __le16  error_code;
3057         __le16  req_type;
3058         __le16  seq_id;
3059         __le16  resp_len;
3060         u8      unused_0[7];
3061         u8      valid;
3062 };
3063
3064 /* hwrm_port_ts_query_input (size:192b/24B) */
3065 struct hwrm_port_ts_query_input {
3066         __le16  req_type;
3067         __le16  cmpl_ring;
3068         __le16  seq_id;
3069         __le16  target_id;
3070         __le64  resp_addr;
3071         __le32  flags;
3072         #define PORT_TS_QUERY_REQ_FLAGS_PATH             0x1UL
3073         #define PORT_TS_QUERY_REQ_FLAGS_PATH_TX            0x0UL
3074         #define PORT_TS_QUERY_REQ_FLAGS_PATH_RX            0x1UL
3075         #define PORT_TS_QUERY_REQ_FLAGS_PATH_LAST         PORT_TS_QUERY_REQ_FLAGS_PATH_RX
3076         #define PORT_TS_QUERY_REQ_FLAGS_CURRENT_TIME     0x2UL
3077         __le16  port_id;
3078         u8      unused_0[2];
3079 };
3080
3081 /* hwrm_port_ts_query_output (size:192b/24B) */
3082 struct hwrm_port_ts_query_output {
3083         __le16  error_code;
3084         __le16  req_type;
3085         __le16  seq_id;
3086         __le16  resp_len;
3087         __le64  ptp_msg_ts;
3088         __le16  ptp_msg_seqid;
3089         u8      unused_0[5];
3090         u8      valid;
3091 };
3092
3093 /* hwrm_port_phy_qcaps_input (size:192b/24B) */
3094 struct hwrm_port_phy_qcaps_input {
3095         __le16  req_type;
3096         __le16  cmpl_ring;
3097         __le16  seq_id;
3098         __le16  target_id;
3099         __le64  resp_addr;
3100         __le16  port_id;
3101         u8      unused_0[6];
3102 };
3103
3104 /* hwrm_port_phy_qcaps_output (size:192b/24B) */
3105 struct hwrm_port_phy_qcaps_output {
3106         __le16  error_code;
3107         __le16  req_type;
3108         __le16  seq_id;
3109         __le16  resp_len;
3110         u8      flags;
3111         #define PORT_PHY_QCAPS_RESP_FLAGS_EEE_SUPPORTED               0x1UL
3112         #define PORT_PHY_QCAPS_RESP_FLAGS_EXTERNAL_LPBK_SUPPORTED     0x2UL
3113         #define PORT_PHY_QCAPS_RESP_FLAGS_RSVD1_MASK                  0xfcUL
3114         #define PORT_PHY_QCAPS_RESP_FLAGS_RSVD1_SFT                   2
3115         u8      port_cnt;
3116         #define PORT_PHY_QCAPS_RESP_PORT_CNT_UNKNOWN 0x0UL
3117         #define PORT_PHY_QCAPS_RESP_PORT_CNT_1       0x1UL
3118         #define PORT_PHY_QCAPS_RESP_PORT_CNT_2       0x2UL
3119         #define PORT_PHY_QCAPS_RESP_PORT_CNT_3       0x3UL
3120         #define PORT_PHY_QCAPS_RESP_PORT_CNT_4       0x4UL
3121         #define PORT_PHY_QCAPS_RESP_PORT_CNT_LAST   PORT_PHY_QCAPS_RESP_PORT_CNT_4
3122         __le16  supported_speeds_force_mode;
3123         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100MBHD     0x1UL
3124         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100MB       0x2UL
3125         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_1GBHD       0x4UL
3126         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_1GB         0x8UL
3127         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_2GB         0x10UL
3128         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_2_5GB       0x20UL
3129         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10GB        0x40UL
3130         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_20GB        0x80UL
3131         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_25GB        0x100UL
3132         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_40GB        0x200UL
3133         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_50GB        0x400UL
3134         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100GB       0x800UL
3135         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10MBHD      0x1000UL
3136         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10MB        0x2000UL
3137         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_200GB       0x4000UL
3138         __le16  supported_speeds_auto_mode;
3139         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100MBHD     0x1UL
3140         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100MB       0x2UL
3141         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_1GBHD       0x4UL
3142         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_1GB         0x8UL
3143         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_2GB         0x10UL
3144         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_2_5GB       0x20UL
3145         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10GB        0x40UL
3146         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_20GB        0x80UL
3147         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_25GB        0x100UL
3148         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_40GB        0x200UL
3149         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_50GB        0x400UL
3150         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100GB       0x800UL
3151         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10MBHD      0x1000UL
3152         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10MB        0x2000UL
3153         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_200GB       0x4000UL
3154         __le16  supported_speeds_eee_mode;
3155         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD1     0x1UL
3156         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_100MB     0x2UL
3157         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD2     0x4UL
3158         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_1GB       0x8UL
3159         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD3     0x10UL
3160         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD4     0x20UL
3161         #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_10GB      0x40UL
3162         __le32  tx_lpi_timer_low;
3163         #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_LOW_MASK 0xffffffUL
3164         #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_LOW_SFT 0
3165         #define PORT_PHY_QCAPS_RESP_RSVD2_MASK           0xff000000UL
3166         #define PORT_PHY_QCAPS_RESP_RSVD2_SFT            24
3167         __le32  valid_tx_lpi_timer_high;
3168         #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_MASK 0xffffffUL
3169         #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_SFT 0
3170         #define PORT_PHY_QCAPS_RESP_VALID_MASK            0xff000000UL
3171         #define PORT_PHY_QCAPS_RESP_VALID_SFT             24
3172 };
3173
3174 /* hwrm_port_phy_i2c_read_input (size:320b/40B) */
3175 struct hwrm_port_phy_i2c_read_input {
3176         __le16  req_type;
3177         __le16  cmpl_ring;
3178         __le16  seq_id;
3179         __le16  target_id;
3180         __le64  resp_addr;
3181         __le32  flags;
3182         __le32  enables;
3183         #define PORT_PHY_I2C_READ_REQ_ENABLES_PAGE_OFFSET     0x1UL
3184         __le16  port_id;
3185         u8      i2c_slave_addr;
3186         u8      unused_0;
3187         __le16  page_number;
3188         __le16  page_offset;
3189         u8      data_length;
3190         u8      unused_1[7];
3191 };
3192
3193 /* hwrm_port_phy_i2c_read_output (size:640b/80B) */
3194 struct hwrm_port_phy_i2c_read_output {
3195         __le16  error_code;
3196         __le16  req_type;
3197         __le16  seq_id;
3198         __le16  resp_len;
3199         __le32  data[16];
3200         u8      unused_0[7];
3201         u8      valid;
3202 };
3203
3204 /* hwrm_port_phy_mdio_write_input (size:320b/40B) */
3205 struct hwrm_port_phy_mdio_write_input {
3206         __le16  req_type;
3207         __le16  cmpl_ring;
3208         __le16  seq_id;
3209         __le16  target_id;
3210         __le64  resp_addr;
3211         __le32  unused_0[2];
3212         __le16  port_id;
3213         u8      phy_addr;
3214         u8      dev_addr;
3215         __le16  reg_addr;
3216         __le16  reg_data;
3217         u8      cl45_mdio;
3218         u8      unused_1[7];
3219 };
3220
3221 /* hwrm_port_phy_mdio_write_output (size:128b/16B) */
3222 struct hwrm_port_phy_mdio_write_output {
3223         __le16  error_code;
3224         __le16  req_type;
3225         __le16  seq_id;
3226         __le16  resp_len;
3227         u8      unused_0[7];
3228         u8      valid;
3229 };
3230
3231 /* hwrm_port_phy_mdio_read_input (size:256b/32B) */
3232 struct hwrm_port_phy_mdio_read_input {
3233         __le16  req_type;
3234         __le16  cmpl_ring;
3235         __le16  seq_id;
3236         __le16  target_id;
3237         __le64  resp_addr;
3238         __le32  unused_0[2];
3239         __le16  port_id;
3240         u8      phy_addr;
3241         u8      dev_addr;
3242         __le16  reg_addr;
3243         u8      cl45_mdio;
3244         u8      unused_1;
3245 };
3246
3247 /* hwrm_port_phy_mdio_read_output (size:128b/16B) */
3248 struct hwrm_port_phy_mdio_read_output {
3249         __le16  error_code;
3250         __le16  req_type;
3251         __le16  seq_id;
3252         __le16  resp_len;
3253         __le16  reg_data;
3254         u8      unused_0[5];
3255         u8      valid;
3256 };
3257
3258 /* hwrm_port_led_cfg_input (size:512b/64B) */
3259 struct hwrm_port_led_cfg_input {
3260         __le16  req_type;
3261         __le16  cmpl_ring;
3262         __le16  seq_id;
3263         __le16  target_id;
3264         __le64  resp_addr;
3265         __le32  enables;
3266         #define PORT_LED_CFG_REQ_ENABLES_LED0_ID            0x1UL
3267         #define PORT_LED_CFG_REQ_ENABLES_LED0_STATE         0x2UL
3268         #define PORT_LED_CFG_REQ_ENABLES_LED0_COLOR         0x4UL
3269         #define PORT_LED_CFG_REQ_ENABLES_LED0_BLINK_ON      0x8UL
3270         #define PORT_LED_CFG_REQ_ENABLES_LED0_BLINK_OFF     0x10UL
3271         #define PORT_LED_CFG_REQ_ENABLES_LED0_GROUP_ID      0x20UL
3272         #define PORT_LED_CFG_REQ_ENABLES_LED1_ID            0x40UL
3273         #define PORT_LED_CFG_REQ_ENABLES_LED1_STATE         0x80UL
3274         #define PORT_LED_CFG_REQ_ENABLES_LED1_COLOR         0x100UL
3275         #define PORT_LED_CFG_REQ_ENABLES_LED1_BLINK_ON      0x200UL
3276         #define PORT_LED_CFG_REQ_ENABLES_LED1_BLINK_OFF     0x400UL
3277         #define PORT_LED_CFG_REQ_ENABLES_LED1_GROUP_ID      0x800UL
3278         #define PORT_LED_CFG_REQ_ENABLES_LED2_ID            0x1000UL
3279         #define PORT_LED_CFG_REQ_ENABLES_LED2_STATE         0x2000UL
3280         #define PORT_LED_CFG_REQ_ENABLES_LED2_COLOR         0x4000UL
3281         #define PORT_LED_CFG_REQ_ENABLES_LED2_BLINK_ON      0x8000UL
3282         #define PORT_LED_CFG_REQ_ENABLES_LED2_BLINK_OFF     0x10000UL
3283         #define PORT_LED_CFG_REQ_ENABLES_LED2_GROUP_ID      0x20000UL
3284         #define PORT_LED_CFG_REQ_ENABLES_LED3_ID            0x40000UL
3285         #define PORT_LED_CFG_REQ_ENABLES_LED3_STATE         0x80000UL
3286         #define PORT_LED_CFG_REQ_ENABLES_LED3_COLOR         0x100000UL
3287         #define PORT_LED_CFG_REQ_ENABLES_LED3_BLINK_ON      0x200000UL
3288         #define PORT_LED_CFG_REQ_ENABLES_LED3_BLINK_OFF     0x400000UL
3289         #define PORT_LED_CFG_REQ_ENABLES_LED3_GROUP_ID      0x800000UL
3290         __le16  port_id;
3291         u8      num_leds;
3292         u8      rsvd;
3293         u8      led0_id;
3294         u8      led0_state;
3295         #define PORT_LED_CFG_REQ_LED0_STATE_DEFAULT  0x0UL
3296         #define PORT_LED_CFG_REQ_LED0_STATE_OFF      0x1UL
3297         #define PORT_LED_CFG_REQ_LED0_STATE_ON       0x2UL
3298         #define PORT_LED_CFG_REQ_LED0_STATE_BLINK    0x3UL
3299         #define PORT_LED_CFG_REQ_LED0_STATE_BLINKALT 0x4UL
3300         #define PORT_LED_CFG_REQ_LED0_STATE_LAST    PORT_LED_CFG_REQ_LED0_STATE_BLINKALT
3301         u8      led0_color;
3302         #define PORT_LED_CFG_REQ_LED0_COLOR_DEFAULT    0x0UL
3303         #define PORT_LED_CFG_REQ_LED0_COLOR_AMBER      0x1UL
3304         #define PORT_LED_CFG_REQ_LED0_COLOR_GREEN      0x2UL
3305         #define PORT_LED_CFG_REQ_LED0_COLOR_GREENAMBER 0x3UL
3306         #define PORT_LED_CFG_REQ_LED0_COLOR_LAST      PORT_LED_CFG_REQ_LED0_COLOR_GREENAMBER
3307         u8      unused_0;
3308         __le16  led0_blink_on;
3309         __le16  led0_blink_off;
3310         u8      led0_group_id;
3311         u8      rsvd0;
3312         u8      led1_id;
3313         u8      led1_state;
3314         #define PORT_LED_CFG_REQ_LED1_STATE_DEFAULT  0x0UL
3315         #define PORT_LED_CFG_REQ_LED1_STATE_OFF      0x1UL
3316         #define PORT_LED_CFG_REQ_LED1_STATE_ON       0x2UL
3317         #define PORT_LED_CFG_REQ_LED1_STATE_BLINK    0x3UL
3318         #define PORT_LED_CFG_REQ_LED1_STATE_BLINKALT 0x4UL
3319         #define PORT_LED_CFG_REQ_LED1_STATE_LAST    PORT_LED_CFG_REQ_LED1_STATE_BLINKALT
3320         u8      led1_color;
3321         #define PORT_LED_CFG_REQ_LED1_COLOR_DEFAULT    0x0UL
3322         #define PORT_LED_CFG_REQ_LED1_COLOR_AMBER      0x1UL
3323         #define PORT_LED_CFG_REQ_LED1_COLOR_GREEN      0x2UL
3324         #define PORT_LED_CFG_REQ_LED1_COLOR_GREENAMBER 0x3UL
3325         #define PORT_LED_CFG_REQ_LED1_COLOR_LAST      PORT_LED_CFG_REQ_LED1_COLOR_GREENAMBER
3326         u8      unused_1;
3327         __le16  led1_blink_on;
3328         __le16  led1_blink_off;
3329         u8      led1_group_id;
3330         u8      rsvd1;
3331         u8      led2_id;
3332         u8      led2_state;
3333         #define PORT_LED_CFG_REQ_LED2_STATE_DEFAULT  0x0UL
3334         #define PORT_LED_CFG_REQ_LED2_STATE_OFF      0x1UL
3335         #define PORT_LED_CFG_REQ_LED2_STATE_ON       0x2UL
3336         #define PORT_LED_CFG_REQ_LED2_STATE_BLINK    0x3UL
3337         #define PORT_LED_CFG_REQ_LED2_STATE_BLINKALT 0x4UL
3338         #define PORT_LED_CFG_REQ_LED2_STATE_LAST    PORT_LED_CFG_REQ_LED2_STATE_BLINKALT
3339         u8      led2_color;
3340         #define PORT_LED_CFG_REQ_LED2_COLOR_DEFAULT    0x0UL
3341         #define PORT_LED_CFG_REQ_LED2_COLOR_AMBER      0x1UL
3342         #define PORT_LED_CFG_REQ_LED2_COLOR_GREEN      0x2UL
3343         #define PORT_LED_CFG_REQ_LED2_COLOR_GREENAMBER 0x3UL
3344         #define PORT_LED_CFG_REQ_LED2_COLOR_LAST      PORT_LED_CFG_REQ_LED2_COLOR_GREENAMBER
3345         u8      unused_2;
3346         __le16  led2_blink_on;
3347         __le16  led2_blink_off;
3348         u8      led2_group_id;
3349         u8      rsvd2;
3350         u8      led3_id;
3351         u8      led3_state;
3352         #define PORT_LED_CFG_REQ_LED3_STATE_DEFAULT  0x0UL
3353         #define PORT_LED_CFG_REQ_LED3_STATE_OFF      0x1UL
3354         #define PORT_LED_CFG_REQ_LED3_STATE_ON       0x2UL
3355         #define PORT_LED_CFG_REQ_LED3_STATE_BLINK    0x3UL
3356         #define PORT_LED_CFG_REQ_LED3_STATE_BLINKALT 0x4UL
3357         #define PORT_LED_CFG_REQ_LED3_STATE_LAST    PORT_LED_CFG_REQ_LED3_STATE_BLINKALT
3358         u8      led3_color;
3359         #define PORT_LED_CFG_REQ_LED3_COLOR_DEFAULT    0x0UL
3360         #define PORT_LED_CFG_REQ_LED3_COLOR_AMBER      0x1UL
3361         #define PORT_LED_CFG_REQ_LED3_COLOR_GREEN      0x2UL
3362         #define PORT_LED_CFG_REQ_LED3_COLOR_GREENAMBER 0x3UL
3363         #define PORT_LED_CFG_REQ_LED3_COLOR_LAST      PORT_LED_CFG_REQ_LED3_COLOR_GREENAMBER
3364         u8      unused_3;
3365         __le16  led3_blink_on;
3366         __le16  led3_blink_off;
3367         u8      led3_group_id;
3368         u8      rsvd3;
3369 };
3370
3371 /* hwrm_port_led_cfg_output (size:128b/16B) */
3372 struct hwrm_port_led_cfg_output {
3373         __le16  error_code;
3374         __le16  req_type;
3375         __le16  seq_id;
3376         __le16  resp_len;
3377         u8      unused_0[7];
3378         u8      valid;
3379 };
3380
3381 /* hwrm_port_led_qcfg_input (size:192b/24B) */
3382 struct hwrm_port_led_qcfg_input {
3383         __le16  req_type;
3384         __le16  cmpl_ring;
3385         __le16  seq_id;
3386         __le16  target_id;
3387         __le64  resp_addr;
3388         __le16  port_id;
3389         u8      unused_0[6];
3390 };
3391
3392 /* hwrm_port_led_qcfg_output (size:448b/56B) */
3393 struct hwrm_port_led_qcfg_output {
3394         __le16  error_code;
3395         __le16  req_type;
3396         __le16  seq_id;
3397         __le16  resp_len;
3398         u8      num_leds;
3399         u8      led0_id;
3400         u8      led0_type;
3401         #define PORT_LED_QCFG_RESP_LED0_TYPE_SPEED    0x0UL
3402         #define PORT_LED_QCFG_RESP_LED0_TYPE_ACTIVITY 0x1UL
3403         #define PORT_LED_QCFG_RESP_LED0_TYPE_INVALID  0xffUL
3404         #define PORT_LED_QCFG_RESP_LED0_TYPE_LAST    PORT_LED_QCFG_RESP_LED0_TYPE_INVALID
3405         u8      led0_state;
3406         #define PORT_LED_QCFG_RESP_LED0_STATE_DEFAULT  0x0UL
3407         #define PORT_LED_QCFG_RESP_LED0_STATE_OFF      0x1UL
3408         #define PORT_LED_QCFG_RESP_LED0_STATE_ON       0x2UL
3409         #define PORT_LED_QCFG_RESP_LED0_STATE_BLINK    0x3UL
3410         #define PORT_LED_QCFG_RESP_LED0_STATE_BLINKALT 0x4UL
3411         #define PORT_LED_QCFG_RESP_LED0_STATE_LAST    PORT_LED_QCFG_RESP_LED0_STATE_BLINKALT
3412         u8      led0_color;
3413         #define PORT_LED_QCFG_RESP_LED0_COLOR_DEFAULT    0x0UL
3414         #define PORT_LED_QCFG_RESP_LED0_COLOR_AMBER      0x1UL
3415         #define PORT_LED_QCFG_RESP_LED0_COLOR_GREEN      0x2UL
3416         #define PORT_LED_QCFG_RESP_LED0_COLOR_GREENAMBER 0x3UL
3417         #define PORT_LED_QCFG_RESP_LED0_COLOR_LAST      PORT_LED_QCFG_RESP_LED0_COLOR_GREENAMBER
3418         u8      unused_0;
3419         __le16  led0_blink_on;
3420         __le16  led0_blink_off;
3421         u8      led0_group_id;
3422         u8      led1_id;
3423         u8      led1_type;
3424         #define PORT_LED_QCFG_RESP_LED1_TYPE_SPEED    0x0UL
3425         #define PORT_LED_QCFG_RESP_LED1_TYPE_ACTIVITY 0x1UL
3426         #define PORT_LED_QCFG_RESP_LED1_TYPE_INVALID  0xffUL
3427         #define PORT_LED_QCFG_RESP_LED1_TYPE_LAST    PORT_LED_QCFG_RESP_LED1_TYPE_INVALID
3428         u8      led1_state;
3429         #define PORT_LED_QCFG_RESP_LED1_STATE_DEFAULT  0x0UL
3430         #define PORT_LED_QCFG_RESP_LED1_STATE_OFF      0x1UL
3431         #define PORT_LED_QCFG_RESP_LED1_STATE_ON       0x2UL
3432         #define PORT_LED_QCFG_RESP_LED1_STATE_BLINK    0x3UL
3433         #define PORT_LED_QCFG_RESP_LED1_STATE_BLINKALT 0x4UL
3434         #define PORT_LED_QCFG_RESP_LED1_STATE_LAST    PORT_LED_QCFG_RESP_LED1_STATE_BLINKALT
3435         u8      led1_color;
3436         #define PORT_LED_QCFG_RESP_LED1_COLOR_DEFAULT    0x0UL
3437         #define PORT_LED_QCFG_RESP_LED1_COLOR_AMBER      0x1UL
3438         #define PORT_LED_QCFG_RESP_LED1_COLOR_GREEN      0x2UL
3439         #define PORT_LED_QCFG_RESP_LED1_COLOR_GREENAMBER 0x3UL
3440         #define PORT_LED_QCFG_RESP_LED1_COLOR_LAST      PORT_LED_QCFG_RESP_LED1_COLOR_GREENAMBER
3441         u8      unused_1;
3442         __le16  led1_blink_on;
3443         __le16  led1_blink_off;
3444         u8      led1_group_id;
3445         u8      led2_id;
3446         u8      led2_type;
3447         #define PORT_LED_QCFG_RESP_LED2_TYPE_SPEED    0x0UL
3448         #define PORT_LED_QCFG_RESP_LED2_TYPE_ACTIVITY 0x1UL
3449         #define PORT_LED_QCFG_RESP_LED2_TYPE_INVALID  0xffUL
3450         #define PORT_LED_QCFG_RESP_LED2_TYPE_LAST    PORT_LED_QCFG_RESP_LED2_TYPE_INVALID
3451         u8      led2_state;
3452         #define PORT_LED_QCFG_RESP_LED2_STATE_DEFAULT  0x0UL
3453         #define PORT_LED_QCFG_RESP_LED2_STATE_OFF      0x1UL
3454         #define PORT_LED_QCFG_RESP_LED2_STATE_ON       0x2UL
3455         #define PORT_LED_QCFG_RESP_LED2_STATE_BLINK    0x3UL
3456         #define PORT_LED_QCFG_RESP_LED2_STATE_BLINKALT 0x4UL
3457         #define PORT_LED_QCFG_RESP_LED2_STATE_LAST    PORT_LED_QCFG_RESP_LED2_STATE_BLINKALT
3458         u8      led2_color;
3459         #define PORT_LED_QCFG_RESP_LED2_COLOR_DEFAULT    0x0UL
3460         #define PORT_LED_QCFG_RESP_LED2_COLOR_AMBER      0x1UL
3461         #define PORT_LED_QCFG_RESP_LED2_COLOR_GREEN      0x2UL
3462         #define PORT_LED_QCFG_RESP_LED2_COLOR_GREENAMBER 0x3UL
3463         #define PORT_LED_QCFG_RESP_LED2_COLOR_LAST      PORT_LED_QCFG_RESP_LED2_COLOR_GREENAMBER
3464         u8      unused_2;
3465         __le16  led2_blink_on;
3466         __le16  led2_blink_off;
3467         u8      led2_group_id;
3468         u8      led3_id;
3469         u8      led3_type;
3470         #define PORT_LED_QCFG_RESP_LED3_TYPE_SPEED    0x0UL
3471         #define PORT_LED_QCFG_RESP_LED3_TYPE_ACTIVITY 0x1UL
3472         #define PORT_LED_QCFG_RESP_LED3_TYPE_INVALID  0xffUL
3473         #define PORT_LED_QCFG_RESP_LED3_TYPE_LAST    PORT_LED_QCFG_RESP_LED3_TYPE_INVALID
3474         u8      led3_state;
3475         #define PORT_LED_QCFG_RESP_LED3_STATE_DEFAULT  0x0UL
3476         #define PORT_LED_QCFG_RESP_LED3_STATE_OFF      0x1UL
3477         #define PORT_LED_QCFG_RESP_LED3_STATE_ON       0x2UL
3478         #define PORT_LED_QCFG_RESP_LED3_STATE_BLINK    0x3UL
3479         #define PORT_LED_QCFG_RESP_LED3_STATE_BLINKALT 0x4UL
3480         #define PORT_LED_QCFG_RESP_LED3_STATE_LAST    PORT_LED_QCFG_RESP_LED3_STATE_BLINKALT
3481         u8      led3_color;
3482         #define PORT_LED_QCFG_RESP_LED3_COLOR_DEFAULT    0x0UL
3483         #define PORT_LED_QCFG_RESP_LED3_COLOR_AMBER      0x1UL
3484         #define PORT_LED_QCFG_RESP_LED3_COLOR_GREEN      0x2UL
3485         #define PORT_LED_QCFG_RESP_LED3_COLOR_GREENAMBER 0x3UL
3486         #define PORT_LED_QCFG_RESP_LED3_COLOR_LAST      PORT_LED_QCFG_RESP_LED3_COLOR_GREENAMBER
3487         u8      unused_3;
3488         __le16  led3_blink_on;
3489         __le16  led3_blink_off;
3490         u8      led3_group_id;
3491         u8      unused_4[6];
3492         u8      valid;
3493 };
3494
3495 /* hwrm_port_led_qcaps_input (size:192b/24B) */
3496 struct hwrm_port_led_qcaps_input {
3497         __le16  req_type;
3498         __le16  cmpl_ring;
3499         __le16  seq_id;
3500         __le16  target_id;
3501         __le64  resp_addr;
3502         __le16  port_id;
3503         u8      unused_0[6];
3504 };
3505
3506 /* hwrm_port_led_qcaps_output (size:384b/48B) */
3507 struct hwrm_port_led_qcaps_output {
3508         __le16  error_code;
3509         __le16  req_type;
3510         __le16  seq_id;
3511         __le16  resp_len;
3512         u8      num_leds;
3513         u8      unused[3];
3514         u8      led0_id;
3515         u8      led0_type;
3516         #define PORT_LED_QCAPS_RESP_LED0_TYPE_SPEED    0x0UL
3517         #define PORT_LED_QCAPS_RESP_LED0_TYPE_ACTIVITY 0x1UL
3518         #define PORT_LED_QCAPS_RESP_LED0_TYPE_INVALID  0xffUL
3519         #define PORT_LED_QCAPS_RESP_LED0_TYPE_LAST    PORT_LED_QCAPS_RESP_LED0_TYPE_INVALID
3520         u8      led0_group_id;
3521         u8      unused_0;
3522         __le16  led0_state_caps;
3523         #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_ENABLED                 0x1UL
3524         #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_OFF_SUPPORTED           0x2UL
3525         #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_ON_SUPPORTED            0x4UL
3526         #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_BLINK_SUPPORTED         0x8UL
3527         #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_BLINK_ALT_SUPPORTED     0x10UL
3528         __le16  led0_color_caps;
3529         #define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_RSVD                0x1UL
3530         #define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_AMBER_SUPPORTED     0x2UL
3531         #define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_GREEN_SUPPORTED     0x4UL
3532         u8      led1_id;
3533         u8      led1_type;
3534         #define PORT_LED_QCAPS_RESP_LED1_TYPE_SPEED    0x0UL
3535         #define PORT_LED_QCAPS_RESP_LED1_TYPE_ACTIVITY 0x1UL
3536         #define PORT_LED_QCAPS_RESP_LED1_TYPE_INVALID  0xffUL
3537         #define PORT_LED_QCAPS_RESP_LED1_TYPE_LAST    PORT_LED_QCAPS_RESP_LED1_TYPE_INVALID
3538         u8      led1_group_id;
3539         u8      unused_1;
3540         __le16  led1_state_caps;
3541         #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_ENABLED                 0x1UL
3542         #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_OFF_SUPPORTED           0x2UL
3543         #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_ON_SUPPORTED            0x4UL
3544         #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_BLINK_SUPPORTED         0x8UL
3545         #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_BLINK_ALT_SUPPORTED     0x10UL
3546         __le16  led1_color_caps;
3547         #define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_RSVD                0x1UL
3548         #define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_AMBER_SUPPORTED     0x2UL
3549         #define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_GREEN_SUPPORTED     0x4UL
3550         u8      led2_id;
3551         u8      led2_type;
3552         #define PORT_LED_QCAPS_RESP_LED2_TYPE_SPEED    0x0UL
3553         #define PORT_LED_QCAPS_RESP_LED2_TYPE_ACTIVITY 0x1UL
3554         #define PORT_LED_QCAPS_RESP_LED2_TYPE_INVALID  0xffUL
3555         #define PORT_LED_QCAPS_RESP_LED2_TYPE_LAST    PORT_LED_QCAPS_RESP_LED2_TYPE_INVALID
3556         u8      led2_group_id;
3557         u8      unused_2;
3558         __le16  led2_state_caps;
3559         #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_ENABLED                 0x1UL
3560         #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_OFF_SUPPORTED           0x2UL
3561         #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_ON_SUPPORTED            0x4UL
3562         #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_BLINK_SUPPORTED         0x8UL
3563         #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_BLINK_ALT_SUPPORTED     0x10UL
3564         __le16  led2_color_caps;
3565         #define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_RSVD                0x1UL
3566         #define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_AMBER_SUPPORTED     0x2UL
3567         #define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_GREEN_SUPPORTED     0x4UL
3568         u8      led3_id;
3569         u8      led3_type;
3570         #define PORT_LED_QCAPS_RESP_LED3_TYPE_SPEED    0x0UL
3571         #define PORT_LED_QCAPS_RESP_LED3_TYPE_ACTIVITY 0x1UL
3572         #define PORT_LED_QCAPS_RESP_LED3_TYPE_INVALID  0xffUL
3573         #define PORT_LED_QCAPS_RESP_LED3_TYPE_LAST    PORT_LED_QCAPS_RESP_LED3_TYPE_INVALID
3574         u8      led3_group_id;
3575         u8      unused_3;
3576         __le16  led3_state_caps;
3577         #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_ENABLED                 0x1UL
3578         #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_OFF_SUPPORTED           0x2UL
3579         #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_ON_SUPPORTED            0x4UL
3580         #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_BLINK_SUPPORTED         0x8UL
3581         #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_BLINK_ALT_SUPPORTED     0x10UL
3582         __le16  led3_color_caps;
3583         #define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_RSVD                0x1UL
3584         #define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_AMBER_SUPPORTED     0x2UL
3585         #define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_GREEN_SUPPORTED     0x4UL
3586         u8      unused_4[3];
3587         u8      valid;
3588 };
3589
3590 /* hwrm_queue_qportcfg_input (size:192b/24B) */
3591 struct hwrm_queue_qportcfg_input {
3592         __le16  req_type;
3593         __le16  cmpl_ring;
3594         __le16  seq_id;
3595         __le16  target_id;
3596         __le64  resp_addr;
3597         __le32  flags;
3598         #define QUEUE_QPORTCFG_REQ_FLAGS_PATH     0x1UL
3599         #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_TX    0x0UL
3600         #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_RX    0x1UL
3601         #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_LAST QUEUE_QPORTCFG_REQ_FLAGS_PATH_RX
3602         __le16  port_id;
3603         u8      drv_qmap_cap;
3604         #define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_DISABLED 0x0UL
3605         #define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_ENABLED  0x1UL
3606         #define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_LAST    QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_ENABLED
3607         u8      unused_0;
3608 };
3609
3610 /* hwrm_queue_qportcfg_output (size:256b/32B) */
3611 struct hwrm_queue_qportcfg_output {
3612         __le16  error_code;
3613         __le16  req_type;
3614         __le16  seq_id;
3615         __le16  resp_len;
3616         u8      max_configurable_queues;
3617         u8      max_configurable_lossless_queues;
3618         u8      queue_cfg_allowed;
3619         u8      queue_cfg_info;
3620         #define QUEUE_QPORTCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG     0x1UL
3621         u8      queue_pfcenable_cfg_allowed;
3622         u8      queue_pri2cos_cfg_allowed;
3623         u8      queue_cos2bw_cfg_allowed;
3624         u8      queue_id0;
3625         u8      queue_id0_service_profile;
3626         #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY          0x0UL
3627         #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS       0x1UL
3628         #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
3629         #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
3630         #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
3631         #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_UNKNOWN        0xffUL
3632         #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_UNKNOWN
3633         u8      queue_id1;
3634         u8      queue_id1_service_profile;
3635         #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSY          0x0UL
3636         #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS       0x1UL
3637         #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
3638         #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
3639         #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
3640         #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_UNKNOWN        0xffUL
3641         #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_UNKNOWN
3642         u8      queue_id2;
3643         u8      queue_id2_service_profile;
3644         #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSY          0x0UL
3645         #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS       0x1UL
3646         #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
3647         #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
3648         #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
3649         #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_UNKNOWN        0xffUL
3650         #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_UNKNOWN
3651         u8      queue_id3;
3652         u8      queue_id3_service_profile;
3653         #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSY          0x0UL
3654         #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS       0x1UL
3655         #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
3656         #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
3657         #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
3658         #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_UNKNOWN        0xffUL
3659         #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_UNKNOWN
3660         u8      queue_id4;
3661         u8      queue_id4_service_profile;
3662         #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSY          0x0UL
3663         #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS       0x1UL
3664         #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
3665         #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
3666         #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
3667         #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_UNKNOWN        0xffUL
3668         #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_UNKNOWN
3669         u8      queue_id5;
3670         u8      queue_id5_service_profile;
3671         #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSY          0x0UL
3672         #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS       0x1UL
3673         #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
3674         #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
3675         #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
3676         #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_UNKNOWN        0xffUL
3677         #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_UNKNOWN
3678         u8      queue_id6;
3679         u8      queue_id6_service_profile;
3680         #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSY          0x0UL
3681         #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS       0x1UL
3682         #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
3683         #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
3684         #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
3685         #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_UNKNOWN        0xffUL
3686         #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_UNKNOWN
3687         u8      queue_id7;
3688         u8      queue_id7_service_profile;
3689         #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSY          0x0UL
3690         #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS       0x1UL
3691         #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
3692         #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
3693         #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
3694         #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_UNKNOWN        0xffUL
3695         #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_UNKNOWN
3696         u8      valid;
3697 };
3698
3699 /* hwrm_queue_cfg_input (size:320b/40B) */
3700 struct hwrm_queue_cfg_input {
3701         __le16  req_type;
3702         __le16  cmpl_ring;
3703         __le16  seq_id;
3704         __le16  target_id;
3705         __le64  resp_addr;
3706         __le32  flags;
3707         #define QUEUE_CFG_REQ_FLAGS_PATH_MASK 0x3UL
3708         #define QUEUE_CFG_REQ_FLAGS_PATH_SFT  0
3709         #define QUEUE_CFG_REQ_FLAGS_PATH_TX     0x0UL
3710         #define QUEUE_CFG_REQ_FLAGS_PATH_RX     0x1UL
3711         #define QUEUE_CFG_REQ_FLAGS_PATH_BIDIR  0x2UL
3712         #define QUEUE_CFG_REQ_FLAGS_PATH_LAST  QUEUE_CFG_REQ_FLAGS_PATH_BIDIR
3713         __le32  enables;
3714         #define QUEUE_CFG_REQ_ENABLES_DFLT_LEN            0x1UL
3715         #define QUEUE_CFG_REQ_ENABLES_SERVICE_PROFILE     0x2UL
3716         __le32  queue_id;
3717         __le32  dflt_len;
3718         u8      service_profile;
3719         #define QUEUE_CFG_REQ_SERVICE_PROFILE_LOSSY    0x0UL
3720         #define QUEUE_CFG_REQ_SERVICE_PROFILE_LOSSLESS 0x1UL
3721         #define QUEUE_CFG_REQ_SERVICE_PROFILE_UNKNOWN  0xffUL
3722         #define QUEUE_CFG_REQ_SERVICE_PROFILE_LAST    QUEUE_CFG_REQ_SERVICE_PROFILE_UNKNOWN
3723         u8      unused_0[7];
3724 };
3725
3726 /* hwrm_queue_cfg_output (size:128b/16B) */
3727 struct hwrm_queue_cfg_output {
3728         __le16  error_code;
3729         __le16  req_type;
3730         __le16  seq_id;
3731         __le16  resp_len;
3732         u8      unused_0[7];
3733         u8      valid;
3734 };
3735
3736 /* hwrm_queue_pfcenable_qcfg_input (size:192b/24B) */
3737 struct hwrm_queue_pfcenable_qcfg_input {
3738         __le16  req_type;
3739         __le16  cmpl_ring;
3740         __le16  seq_id;
3741         __le16  target_id;
3742         __le64  resp_addr;
3743         __le16  port_id;
3744         u8      unused_0[6];
3745 };
3746
3747 /* hwrm_queue_pfcenable_qcfg_output (size:128b/16B) */
3748 struct hwrm_queue_pfcenable_qcfg_output {
3749         __le16  error_code;
3750         __le16  req_type;
3751         __le16  seq_id;
3752         __le16  resp_len;
3753         __le32  flags;
3754         #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI0_PFC_ENABLED     0x1UL
3755         #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI1_PFC_ENABLED     0x2UL
3756         #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI2_PFC_ENABLED     0x4UL
3757         #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI3_PFC_ENABLED     0x8UL
3758         #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI4_PFC_ENABLED     0x10UL
3759         #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI5_PFC_ENABLED     0x20UL
3760         #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI6_PFC_ENABLED     0x40UL
3761         #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI7_PFC_ENABLED     0x80UL
3762         u8      unused_0[3];
3763         u8      valid;
3764 };
3765
3766 /* hwrm_queue_pfcenable_cfg_input (size:192b/24B) */
3767 struct hwrm_queue_pfcenable_cfg_input {
3768         __le16  req_type;
3769         __le16  cmpl_ring;
3770         __le16  seq_id;
3771         __le16  target_id;
3772         __le64  resp_addr;
3773         __le32  flags;
3774         #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI0_PFC_ENABLED     0x1UL
3775         #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI1_PFC_ENABLED     0x2UL
3776         #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI2_PFC_ENABLED     0x4UL
3777         #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI3_PFC_ENABLED     0x8UL
3778         #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI4_PFC_ENABLED     0x10UL
3779         #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI5_PFC_ENABLED     0x20UL
3780         #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI6_PFC_ENABLED     0x40UL
3781         #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI7_PFC_ENABLED     0x80UL
3782         __le16  port_id;
3783         u8      unused_0[2];
3784 };
3785
3786 /* hwrm_queue_pfcenable_cfg_output (size:128b/16B) */
3787 struct hwrm_queue_pfcenable_cfg_output {
3788         __le16  error_code;
3789         __le16  req_type;
3790         __le16  seq_id;
3791         __le16  resp_len;
3792         u8      unused_0[7];
3793         u8      valid;
3794 };
3795
3796 /* hwrm_queue_pri2cos_qcfg_input (size:192b/24B) */
3797 struct hwrm_queue_pri2cos_qcfg_input {
3798         __le16  req_type;
3799         __le16  cmpl_ring;
3800         __le16  seq_id;
3801         __le16  target_id;
3802         __le64  resp_addr;
3803         __le32  flags;
3804         #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH      0x1UL
3805         #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_TX     0x0UL
3806         #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_RX     0x1UL
3807         #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_LAST  QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_RX
3808         #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_IVLAN     0x2UL
3809         u8      port_id;
3810         u8      unused_0[3];
3811 };
3812
3813 /* hwrm_queue_pri2cos_qcfg_output (size:192b/24B) */
3814 struct hwrm_queue_pri2cos_qcfg_output {
3815         __le16  error_code;
3816         __le16  req_type;
3817         __le16  seq_id;
3818         __le16  resp_len;
3819         u8      pri0_cos_queue_id;
3820         u8      pri1_cos_queue_id;
3821         u8      pri2_cos_queue_id;
3822         u8      pri3_cos_queue_id;
3823         u8      pri4_cos_queue_id;
3824         u8      pri5_cos_queue_id;
3825         u8      pri6_cos_queue_id;
3826         u8      pri7_cos_queue_id;
3827         u8      queue_cfg_info;
3828         #define QUEUE_PRI2COS_QCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG     0x1UL
3829         u8      unused_0[6];
3830         u8      valid;
3831 };
3832
3833 /* hwrm_queue_pri2cos_cfg_input (size:320b/40B) */
3834 struct hwrm_queue_pri2cos_cfg_input {
3835         __le16  req_type;
3836         __le16  cmpl_ring;
3837         __le16  seq_id;
3838         __le16  target_id;
3839         __le64  resp_addr;
3840         __le32  flags;
3841         #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_MASK 0x3UL
3842         #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_SFT  0
3843         #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_TX     0x0UL
3844         #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_RX     0x1UL
3845         #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_BIDIR  0x2UL
3846         #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_LAST  QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_BIDIR
3847         #define QUEUE_PRI2COS_CFG_REQ_FLAGS_IVLAN     0x4UL
3848         __le32  enables;
3849         #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI0_COS_QUEUE_ID     0x1UL
3850         #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI1_COS_QUEUE_ID     0x2UL
3851         #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI2_COS_QUEUE_ID     0x4UL
3852         #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI3_COS_QUEUE_ID     0x8UL
3853         #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI4_COS_QUEUE_ID     0x10UL
3854         #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI5_COS_QUEUE_ID     0x20UL
3855         #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI6_COS_QUEUE_ID     0x40UL
3856         #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI7_COS_QUEUE_ID     0x80UL
3857         u8      port_id;
3858         u8      pri0_cos_queue_id;
3859         u8      pri1_cos_queue_id;
3860         u8      pri2_cos_queue_id;
3861         u8      pri3_cos_queue_id;
3862         u8      pri4_cos_queue_id;
3863         u8      pri5_cos_queue_id;
3864         u8      pri6_cos_queue_id;
3865         u8      pri7_cos_queue_id;
3866         u8      unused_0[7];
3867 };
3868
3869 /* hwrm_queue_pri2cos_cfg_output (size:128b/16B) */
3870 struct hwrm_queue_pri2cos_cfg_output {
3871         __le16  error_code;
3872         __le16  req_type;
3873         __le16  seq_id;
3874         __le16  resp_len;
3875         u8      unused_0[7];
3876         u8      valid;
3877 };
3878
3879 /* hwrm_queue_cos2bw_qcfg_input (size:192b/24B) */
3880 struct hwrm_queue_cos2bw_qcfg_input {
3881         __le16  req_type;
3882         __le16  cmpl_ring;
3883         __le16  seq_id;
3884         __le16  target_id;
3885         __le64  resp_addr;
3886         __le16  port_id;
3887         u8      unused_0[6];
3888 };
3889
3890 /* hwrm_queue_cos2bw_qcfg_output (size:896b/112B) */
3891 struct hwrm_queue_cos2bw_qcfg_output {
3892         __le16  error_code;
3893         __le16  req_type;
3894         __le16  seq_id;
3895         __le16  resp_len;
3896         u8      queue_id0;
3897         u8      unused_0;
3898         __le16  unused_1;
3899         __le32  queue_id0_min_bw;
3900         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_MASK             0xfffffffUL
3901         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_SFT              0
3902         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE                     0x10000000UL
3903         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BITS                  (0x0UL << 28)
3904         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
3905         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BYTES
3906         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3907         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_SFT         29
3908         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3909         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3910         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3911         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3912         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3913         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3914         #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
3915         __le32  queue_id0_max_bw;
3916         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3917         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_SFT              0
3918         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE                     0x10000000UL
3919         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BITS                  (0x0UL << 28)
3920         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
3921         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BYTES
3922         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3923         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_SFT         29
3924         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3925         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3926         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3927         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3928         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3929         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3930         #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
3931         u8      queue_id0_tsa_assign;
3932         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_SP             0x0UL
3933         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_ETS            0x1UL
3934         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3935         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_RESERVED_LAST  0xffUL
3936         u8      queue_id0_pri_lvl;
3937         u8      queue_id0_bw_weight;
3938         u8      queue_id1;
3939         __le32  queue_id1_min_bw;
3940         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_MASK             0xfffffffUL
3941         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_SFT              0
3942         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE                     0x10000000UL
3943         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE_BITS                  (0x0UL << 28)
3944         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
3945         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE_BYTES
3946         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3947         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_SFT         29
3948         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3949         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3950         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3951         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3952         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3953         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3954         #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
3955         __le32  queue_id1_max_bw;
3956         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3957         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_SFT              0
3958         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE                     0x10000000UL
3959         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE_BITS                  (0x0UL << 28)
3960         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
3961         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE_BYTES
3962         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3963         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_SFT         29
3964         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3965         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3966         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3967         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3968         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3969         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3970         #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
3971         u8      queue_id1_tsa_assign;
3972         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_SP             0x0UL
3973         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_ETS            0x1UL
3974         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3975         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_RESERVED_LAST  0xffUL
3976         u8      queue_id1_pri_lvl;
3977         u8      queue_id1_bw_weight;
3978         u8      queue_id2;
3979         __le32  queue_id2_min_bw;
3980         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_MASK             0xfffffffUL
3981         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_SFT              0
3982         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE                     0x10000000UL
3983         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE_BITS                  (0x0UL << 28)
3984         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
3985         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE_BYTES
3986         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
3987         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_SFT         29
3988         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
3989         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
3990         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
3991         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
3992         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
3993         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
3994         #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
3995         __le32  queue_id2_max_bw;
3996         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_MASK             0xfffffffUL
3997         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_SFT              0
3998         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE                     0x10000000UL
3999         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE_BITS                  (0x0UL << 28)
4000         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
4001         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE_BYTES
4002         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4003         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_SFT         29
4004         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4005         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4006         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4007         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4008         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4009         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4010         #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
4011         u8      queue_id2_tsa_assign;
4012         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_SP             0x0UL
4013         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_ETS            0x1UL
4014         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4015         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_RESERVED_LAST  0xffUL
4016         u8      queue_id2_pri_lvl;
4017         u8      queue_id2_bw_weight;
4018         u8      queue_id3;
4019         __le32  queue_id3_min_bw;
4020         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_MASK             0xfffffffUL
4021         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_SFT              0
4022         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE                     0x10000000UL
4023         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE_BITS                  (0x0UL << 28)
4024         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
4025         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE_BYTES
4026         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4027         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_SFT         29
4028         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4029         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4030         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4031         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4032         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4033         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4034         #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
4035         __le32  queue_id3_max_bw;
4036         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_MASK             0xfffffffUL
4037         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_SFT              0
4038         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE                     0x10000000UL
4039         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE_BITS                  (0x0UL << 28)
4040         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
4041         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE_BYTES
4042         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4043         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_SFT         29
4044         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4045         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4046         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4047         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4048         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4049         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4050         #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
4051         u8      queue_id3_tsa_assign;
4052         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_SP             0x0UL
4053         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_ETS            0x1UL
4054         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4055         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_RESERVED_LAST  0xffUL
4056         u8      queue_id3_pri_lvl;
4057         u8      queue_id3_bw_weight;
4058         u8      queue_id4;
4059         __le32  queue_id4_min_bw;
4060         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_MASK             0xfffffffUL
4061         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_SFT              0
4062         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE                     0x10000000UL
4063         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE_BITS                  (0x0UL << 28)
4064         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
4065         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE_BYTES
4066         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4067         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_SFT         29
4068         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4069         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4070         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4071         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4072         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4073         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4074         #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
4075         __le32  queue_id4_max_bw;
4076         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_MASK             0xfffffffUL
4077         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_SFT              0
4078         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE                     0x10000000UL
4079         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE_BITS                  (0x0UL << 28)
4080         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
4081         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE_BYTES
4082         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4083         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_SFT         29
4084         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4085         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4086         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4087         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4088         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4089         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4090         #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
4091         u8      queue_id4_tsa_assign;
4092         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_SP             0x0UL
4093         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_ETS            0x1UL
4094         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4095         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_RESERVED_LAST  0xffUL
4096         u8      queue_id4_pri_lvl;
4097         u8      queue_id4_bw_weight;
4098         u8      queue_id5;
4099         __le32  queue_id5_min_bw;
4100         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_MASK             0xfffffffUL
4101         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_SFT              0
4102         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE                     0x10000000UL
4103         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE_BITS                  (0x0UL << 28)
4104         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
4105         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE_BYTES
4106         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4107         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_SFT         29
4108         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4109         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4110         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4111         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4112         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4113         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4114         #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
4115         __le32  queue_id5_max_bw;
4116         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_MASK             0xfffffffUL
4117         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_SFT              0
4118         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE                     0x10000000UL
4119         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE_BITS                  (0x0UL << 28)
4120         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
4121         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE_BYTES
4122         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4123         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_SFT         29
4124         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4125         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4126         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4127         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4128         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4129         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4130         #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
4131         u8      queue_id5_tsa_assign;
4132         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_SP             0x0UL
4133         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_ETS            0x1UL
4134         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4135         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_RESERVED_LAST  0xffUL
4136         u8      queue_id5_pri_lvl;
4137         u8      queue_id5_bw_weight;
4138         u8      queue_id6;
4139         __le32  queue_id6_min_bw;
4140         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_MASK             0xfffffffUL
4141         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_SFT              0
4142         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE                     0x10000000UL
4143         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE_BITS                  (0x0UL << 28)
4144         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
4145         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE_BYTES
4146         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4147         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_SFT         29
4148         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4149         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4150         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4151         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4152         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4153         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4154         #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
4155         __le32  queue_id6_max_bw;
4156         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_MASK             0xfffffffUL
4157         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_SFT              0
4158         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE                     0x10000000UL
4159         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE_BITS                  (0x0UL << 28)
4160         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
4161         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE_BYTES
4162         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4163         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_SFT         29
4164         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4165         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4166         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4167         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4168         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4169         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4170         #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
4171         u8      queue_id6_tsa_assign;
4172         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_SP             0x0UL
4173         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_ETS            0x1UL
4174         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4175         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_RESERVED_LAST  0xffUL
4176         u8      queue_id6_pri_lvl;
4177         u8      queue_id6_bw_weight;
4178         u8      queue_id7;
4179         __le32  queue_id7_min_bw;
4180         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_MASK             0xfffffffUL
4181         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_SFT              0
4182         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE                     0x10000000UL
4183         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE_BITS                  (0x0UL << 28)
4184         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
4185         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE_BYTES
4186         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4187         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_SFT         29
4188         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4189         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4190         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4191         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4192         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4193         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4194         #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
4195         __le32  queue_id7_max_bw;
4196         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_MASK             0xfffffffUL
4197         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_SFT              0
4198         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE                     0x10000000UL
4199         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE_BITS                  (0x0UL << 28)
4200         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
4201         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE_BYTES
4202         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4203         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_SFT         29
4204         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4205         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4206         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4207         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4208         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4209         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4210         #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
4211         u8      queue_id7_tsa_assign;
4212         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_SP             0x0UL
4213         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_ETS            0x1UL
4214         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4215         #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_RESERVED_LAST  0xffUL
4216         u8      queue_id7_pri_lvl;
4217         u8      queue_id7_bw_weight;
4218         u8      unused_2[4];
4219         u8      valid;
4220 };
4221
4222 /* hwrm_queue_cos2bw_cfg_input (size:1024b/128B) */
4223 struct hwrm_queue_cos2bw_cfg_input {
4224         __le16  req_type;
4225         __le16  cmpl_ring;
4226         __le16  seq_id;
4227         __le16  target_id;
4228         __le64  resp_addr;
4229         __le32  flags;
4230         __le32  enables;
4231         #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID0_VALID     0x1UL
4232         #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID1_VALID     0x2UL
4233         #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID2_VALID     0x4UL
4234         #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID3_VALID     0x8UL
4235         #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID4_VALID     0x10UL
4236         #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID5_VALID     0x20UL
4237         #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID6_VALID     0x40UL
4238         #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID7_VALID     0x80UL
4239         __le16  port_id;
4240         u8      queue_id0;
4241         u8      unused_0;
4242         __le32  queue_id0_min_bw;
4243         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_MASK             0xfffffffUL
4244         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_SFT              0
4245         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE                     0x10000000UL
4246         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BITS                  (0x0UL << 28)
4247         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
4248         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BYTES
4249         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4250         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_SFT         29
4251         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4252         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4253         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4254         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4255         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4256         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4257         #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
4258         __le32  queue_id0_max_bw;
4259         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_MASK             0xfffffffUL
4260         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_SFT              0
4261         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE                     0x10000000UL
4262         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BITS                  (0x0UL << 28)
4263         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
4264         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BYTES
4265         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4266         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_SFT         29
4267         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4268         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4269         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4270         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4271         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4272         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4273         #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
4274         u8      queue_id0_tsa_assign;
4275         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_SP             0x0UL
4276         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_ETS            0x1UL
4277         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4278         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_RESERVED_LAST  0xffUL
4279         u8      queue_id0_pri_lvl;
4280         u8      queue_id0_bw_weight;
4281         u8      queue_id1;
4282         __le32  queue_id1_min_bw;
4283         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_MASK             0xfffffffUL
4284         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_SFT              0
4285         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE                     0x10000000UL
4286         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE_BITS                  (0x0UL << 28)
4287         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
4288         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE_BYTES
4289         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4290         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_SFT         29
4291         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4292         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4293         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4294         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4295         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4296         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4297         #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
4298         __le32  queue_id1_max_bw;
4299         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_MASK             0xfffffffUL
4300         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_SFT              0
4301         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE                     0x10000000UL
4302         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE_BITS                  (0x0UL << 28)
4303         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
4304         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE_BYTES
4305         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4306         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_SFT         29
4307         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4308         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4309         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4310         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4311         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4312         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4313         #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
4314         u8      queue_id1_tsa_assign;
4315         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_SP             0x0UL
4316         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_ETS            0x1UL
4317         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4318         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_RESERVED_LAST  0xffUL
4319         u8      queue_id1_pri_lvl;
4320         u8      queue_id1_bw_weight;
4321         u8      queue_id2;
4322         __le32  queue_id2_min_bw;
4323         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_MASK             0xfffffffUL
4324         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_SFT              0
4325         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE                     0x10000000UL
4326         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE_BITS                  (0x0UL << 28)
4327         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
4328         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE_BYTES
4329         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4330         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_SFT         29
4331         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4332         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4333         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4334         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4335         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4336         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4337         #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
4338         __le32  queue_id2_max_bw;
4339         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_MASK             0xfffffffUL
4340         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_SFT              0
4341         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE                     0x10000000UL
4342         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE_BITS                  (0x0UL << 28)
4343         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
4344         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE_BYTES
4345         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4346         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_SFT         29
4347         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4348         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4349         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4350         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4351         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4352         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4353         #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
4354         u8      queue_id2_tsa_assign;
4355         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_SP             0x0UL
4356         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_ETS            0x1UL
4357         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4358         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_RESERVED_LAST  0xffUL
4359         u8      queue_id2_pri_lvl;
4360         u8      queue_id2_bw_weight;
4361         u8      queue_id3;
4362         __le32  queue_id3_min_bw;
4363         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_MASK             0xfffffffUL
4364         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_SFT              0
4365         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE                     0x10000000UL
4366         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE_BITS                  (0x0UL << 28)
4367         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
4368         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE_BYTES
4369         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4370         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_SFT         29
4371         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4372         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4373         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4374         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4375         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4376         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4377         #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
4378         __le32  queue_id3_max_bw;
4379         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_MASK             0xfffffffUL
4380         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_SFT              0
4381         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE                     0x10000000UL
4382         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE_BITS                  (0x0UL << 28)
4383         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
4384         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE_BYTES
4385         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4386         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_SFT         29
4387         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4388         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4389         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4390         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4391         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4392         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4393         #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
4394         u8      queue_id3_tsa_assign;
4395         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_SP             0x0UL
4396         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_ETS            0x1UL
4397         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4398         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_RESERVED_LAST  0xffUL
4399         u8      queue_id3_pri_lvl;
4400         u8      queue_id3_bw_weight;
4401         u8      queue_id4;
4402         __le32  queue_id4_min_bw;
4403         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_MASK             0xfffffffUL
4404         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_SFT              0
4405         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE                     0x10000000UL
4406         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE_BITS                  (0x0UL << 28)
4407         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
4408         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE_BYTES
4409         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4410         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_SFT         29
4411         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4412         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4413         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4414         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4415         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4416         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4417         #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
4418         __le32  queue_id4_max_bw;
4419         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_MASK             0xfffffffUL
4420         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_SFT              0
4421         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE                     0x10000000UL
4422         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE_BITS                  (0x0UL << 28)
4423         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
4424         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE_BYTES
4425         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4426         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_SFT         29
4427         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4428         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4429         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4430         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4431         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4432         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4433         #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
4434         u8      queue_id4_tsa_assign;
4435         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_SP             0x0UL
4436         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_ETS            0x1UL
4437         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4438         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_RESERVED_LAST  0xffUL
4439         u8      queue_id4_pri_lvl;
4440         u8      queue_id4_bw_weight;
4441         u8      queue_id5;
4442         __le32  queue_id5_min_bw;
4443         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_MASK             0xfffffffUL
4444         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_SFT              0
4445         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE                     0x10000000UL
4446         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE_BITS                  (0x0UL << 28)
4447         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
4448         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE_BYTES
4449         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4450         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_SFT         29
4451         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4452         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4453         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4454         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4455         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4456         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4457         #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
4458         __le32  queue_id5_max_bw;
4459         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_MASK             0xfffffffUL
4460         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_SFT              0
4461         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE                     0x10000000UL
4462         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE_BITS                  (0x0UL << 28)
4463         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
4464         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE_BYTES
4465         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4466         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_SFT         29
4467         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4468         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4469         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4470         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4471         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4472         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4473         #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
4474         u8      queue_id5_tsa_assign;
4475         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_SP             0x0UL
4476         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_ETS            0x1UL
4477         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4478         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_RESERVED_LAST  0xffUL
4479         u8      queue_id5_pri_lvl;
4480         u8      queue_id5_bw_weight;
4481         u8      queue_id6;
4482         __le32  queue_id6_min_bw;
4483         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_MASK             0xfffffffUL
4484         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_SFT              0
4485         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE                     0x10000000UL
4486         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE_BITS                  (0x0UL << 28)
4487         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
4488         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE_BYTES
4489         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4490         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_SFT         29
4491         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4492         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4493         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4494         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4495         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4496         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4497         #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
4498         __le32  queue_id6_max_bw;
4499         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_MASK             0xfffffffUL
4500         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_SFT              0
4501         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE                     0x10000000UL
4502         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE_BITS                  (0x0UL << 28)
4503         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
4504         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE_BYTES
4505         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4506         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_SFT         29
4507         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4508         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4509         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4510         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4511         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4512         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4513         #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
4514         u8      queue_id6_tsa_assign;
4515         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_SP             0x0UL
4516         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_ETS            0x1UL
4517         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4518         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_RESERVED_LAST  0xffUL
4519         u8      queue_id6_pri_lvl;
4520         u8      queue_id6_bw_weight;
4521         u8      queue_id7;
4522         __le32  queue_id7_min_bw;
4523         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_MASK             0xfffffffUL
4524         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_SFT              0
4525         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE                     0x10000000UL
4526         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE_BITS                  (0x0UL << 28)
4527         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
4528         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE_BYTES
4529         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4530         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_SFT         29
4531         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4532         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4533         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4534         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4535         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4536         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4537         #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
4538         __le32  queue_id7_max_bw;
4539         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_MASK             0xfffffffUL
4540         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_SFT              0
4541         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE                     0x10000000UL
4542         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE_BITS                  (0x0UL << 28)
4543         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
4544         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE_BYTES
4545         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
4546         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_SFT         29
4547         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
4548         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
4549         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
4550         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
4551         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
4552         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
4553         #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
4554         u8      queue_id7_tsa_assign;
4555         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_SP             0x0UL
4556         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_ETS            0x1UL
4557         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4558         #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_RESERVED_LAST  0xffUL
4559         u8      queue_id7_pri_lvl;
4560         u8      queue_id7_bw_weight;
4561         u8      unused_1[5];
4562 };
4563
4564 /* hwrm_queue_cos2bw_cfg_output (size:128b/16B) */
4565 struct hwrm_queue_cos2bw_cfg_output {
4566         __le16  error_code;
4567         __le16  req_type;
4568         __le16  seq_id;
4569         __le16  resp_len;
4570         u8      unused_0[7];
4571         u8      valid;
4572 };
4573
4574 /* hwrm_queue_dscp_qcaps_input (size:192b/24B) */
4575 struct hwrm_queue_dscp_qcaps_input {
4576         __le16  req_type;
4577         __le16  cmpl_ring;
4578         __le16  seq_id;
4579         __le16  target_id;
4580         __le64  resp_addr;
4581         u8      port_id;
4582         u8      unused_0[7];
4583 };
4584
4585 /* hwrm_queue_dscp_qcaps_output (size:128b/16B) */
4586 struct hwrm_queue_dscp_qcaps_output {
4587         __le16  error_code;
4588         __le16  req_type;
4589         __le16  seq_id;
4590         __le16  resp_len;
4591         u8      num_dscp_bits;
4592         u8      unused_0;
4593         __le16  max_entries;
4594         u8      unused_1[3];
4595         u8      valid;
4596 };
4597
4598 /* hwrm_queue_dscp2pri_qcfg_input (size:256b/32B) */
4599 struct hwrm_queue_dscp2pri_qcfg_input {
4600         __le16  req_type;
4601         __le16  cmpl_ring;
4602         __le16  seq_id;
4603         __le16  target_id;
4604         __le64  resp_addr;
4605         __le64  dest_data_addr;
4606         u8      port_id;
4607         u8      unused_0;
4608         __le16  dest_data_buffer_size;
4609         u8      unused_1[4];
4610 };
4611
4612 /* hwrm_queue_dscp2pri_qcfg_output (size:128b/16B) */
4613 struct hwrm_queue_dscp2pri_qcfg_output {
4614         __le16  error_code;
4615         __le16  req_type;
4616         __le16  seq_id;
4617         __le16  resp_len;
4618         __le16  entry_cnt;
4619         u8      default_pri;
4620         u8      unused_0[4];
4621         u8      valid;
4622 };
4623
4624 /* hwrm_queue_dscp2pri_cfg_input (size:320b/40B) */
4625 struct hwrm_queue_dscp2pri_cfg_input {
4626         __le16  req_type;
4627         __le16  cmpl_ring;
4628         __le16  seq_id;
4629         __le16  target_id;
4630         __le64  resp_addr;
4631         __le64  src_data_addr;
4632         __le32  flags;
4633         #define QUEUE_DSCP2PRI_CFG_REQ_FLAGS_USE_HW_DEFAULT_PRI     0x1UL
4634         __le32  enables;
4635         #define QUEUE_DSCP2PRI_CFG_REQ_ENABLES_DEFAULT_PRI     0x1UL
4636         u8      port_id;
4637         u8      default_pri;
4638         __le16  entry_cnt;
4639         u8      unused_0[4];
4640 };
4641
4642 /* hwrm_queue_dscp2pri_cfg_output (size:128b/16B) */
4643 struct hwrm_queue_dscp2pri_cfg_output {
4644         __le16  error_code;
4645         __le16  req_type;
4646         __le16  seq_id;
4647         __le16  resp_len;
4648         u8      unused_0[7];
4649         u8      valid;
4650 };
4651
4652 /* hwrm_vnic_alloc_input (size:192b/24B) */
4653 struct hwrm_vnic_alloc_input {
4654         __le16  req_type;
4655         __le16  cmpl_ring;
4656         __le16  seq_id;
4657         __le16  target_id;
4658         __le64  resp_addr;
4659         __le32  flags;
4660         #define VNIC_ALLOC_REQ_FLAGS_DEFAULT     0x1UL
4661         u8      unused_0[4];
4662 };
4663
4664 /* hwrm_vnic_alloc_output (size:128b/16B) */
4665 struct hwrm_vnic_alloc_output {
4666         __le16  error_code;
4667         __le16  req_type;
4668         __le16  seq_id;
4669         __le16  resp_len;
4670         __le32  vnic_id;
4671         u8      unused_0[3];
4672         u8      valid;
4673 };
4674
4675 /* hwrm_vnic_free_input (size:192b/24B) */
4676 struct hwrm_vnic_free_input {
4677         __le16  req_type;
4678         __le16  cmpl_ring;
4679         __le16  seq_id;
4680         __le16  target_id;
4681         __le64  resp_addr;
4682         __le32  vnic_id;
4683         u8      unused_0[4];
4684 };
4685
4686 /* hwrm_vnic_free_output (size:128b/16B) */
4687 struct hwrm_vnic_free_output {
4688         __le16  error_code;
4689         __le16  req_type;
4690         __le16  seq_id;
4691         __le16  resp_len;
4692         u8      unused_0[7];
4693         u8      valid;
4694 };
4695
4696 /* hwrm_vnic_cfg_input (size:320b/40B) */
4697 struct hwrm_vnic_cfg_input {
4698         __le16  req_type;
4699         __le16  cmpl_ring;
4700         __le16  seq_id;
4701         __le16  target_id;
4702         __le64  resp_addr;
4703         __le32  flags;
4704         #define VNIC_CFG_REQ_FLAGS_DEFAULT                              0x1UL
4705         #define VNIC_CFG_REQ_FLAGS_VLAN_STRIP_MODE                      0x2UL
4706         #define VNIC_CFG_REQ_FLAGS_BD_STALL_MODE                        0x4UL
4707         #define VNIC_CFG_REQ_FLAGS_ROCE_DUAL_VNIC_MODE                  0x8UL
4708         #define VNIC_CFG_REQ_FLAGS_ROCE_ONLY_VNIC_MODE                  0x10UL
4709         #define VNIC_CFG_REQ_FLAGS_RSS_DFLT_CR_MODE                     0x20UL
4710         #define VNIC_CFG_REQ_FLAGS_ROCE_MIRRORING_CAPABLE_VNIC_MODE     0x40UL
4711         __le32  enables;
4712         #define VNIC_CFG_REQ_ENABLES_DFLT_RING_GRP            0x1UL
4713         #define VNIC_CFG_REQ_ENABLES_RSS_RULE                 0x2UL
4714         #define VNIC_CFG_REQ_ENABLES_COS_RULE                 0x4UL
4715         #define VNIC_CFG_REQ_ENABLES_LB_RULE                  0x8UL
4716         #define VNIC_CFG_REQ_ENABLES_MRU                      0x10UL
4717         #define VNIC_CFG_REQ_ENABLES_DEFAULT_RX_RING_ID       0x20UL
4718         #define VNIC_CFG_REQ_ENABLES_DEFAULT_CMPL_RING_ID     0x40UL
4719         __le16  vnic_id;
4720         __le16  dflt_ring_grp;
4721         __le16  rss_rule;
4722         __le16  cos_rule;
4723         __le16  lb_rule;
4724         __le16  mru;
4725         __le16  default_rx_ring_id;
4726         __le16  default_cmpl_ring_id;
4727 };
4728
4729 /* hwrm_vnic_cfg_output (size:128b/16B) */
4730 struct hwrm_vnic_cfg_output {
4731         __le16  error_code;
4732         __le16  req_type;
4733         __le16  seq_id;
4734         __le16  resp_len;
4735         u8      unused_0[7];
4736         u8      valid;
4737 };
4738
4739 /* hwrm_vnic_qcaps_input (size:192b/24B) */
4740 struct hwrm_vnic_qcaps_input {
4741         __le16  req_type;
4742         __le16  cmpl_ring;
4743         __le16  seq_id;
4744         __le16  target_id;
4745         __le64  resp_addr;
4746         __le32  enables;
4747         u8      unused_0[4];
4748 };
4749
4750 /* hwrm_vnic_qcaps_output (size:192b/24B) */
4751 struct hwrm_vnic_qcaps_output {
4752         __le16  error_code;
4753         __le16  req_type;
4754         __le16  seq_id;
4755         __le16  resp_len;
4756         __le16  mru;
4757         u8      unused_0[2];
4758         __le32  flags;
4759         #define VNIC_QCAPS_RESP_FLAGS_UNUSED                              0x1UL
4760         #define VNIC_QCAPS_RESP_FLAGS_VLAN_STRIP_CAP                      0x2UL
4761         #define VNIC_QCAPS_RESP_FLAGS_BD_STALL_CAP                        0x4UL
4762         #define VNIC_QCAPS_RESP_FLAGS_ROCE_DUAL_VNIC_CAP                  0x8UL
4763         #define VNIC_QCAPS_RESP_FLAGS_ROCE_ONLY_VNIC_CAP                  0x10UL
4764         #define VNIC_QCAPS_RESP_FLAGS_RSS_DFLT_CR_CAP                     0x20UL
4765         #define VNIC_QCAPS_RESP_FLAGS_ROCE_MIRRORING_CAPABLE_VNIC_CAP     0x40UL
4766         #define VNIC_QCAPS_RESP_FLAGS_OUTERMOST_RSS_CAP                   0x80UL
4767         __le16  max_aggs_supported;
4768         u8      unused_1[5];
4769         u8      valid;
4770 };
4771
4772 /* hwrm_vnic_tpa_cfg_input (size:320b/40B) */
4773 struct hwrm_vnic_tpa_cfg_input {
4774         __le16  req_type;
4775         __le16  cmpl_ring;
4776         __le16  seq_id;
4777         __le16  target_id;
4778         __le64  resp_addr;
4779         __le32  flags;
4780         #define VNIC_TPA_CFG_REQ_FLAGS_TPA                       0x1UL
4781         #define VNIC_TPA_CFG_REQ_FLAGS_ENCAP_TPA                 0x2UL
4782         #define VNIC_TPA_CFG_REQ_FLAGS_RSC_WND_UPDATE            0x4UL
4783         #define VNIC_TPA_CFG_REQ_FLAGS_GRO                       0x8UL
4784         #define VNIC_TPA_CFG_REQ_FLAGS_AGG_WITH_ECN              0x10UL
4785         #define VNIC_TPA_CFG_REQ_FLAGS_AGG_WITH_SAME_GRE_SEQ     0x20UL
4786         #define VNIC_TPA_CFG_REQ_FLAGS_GRO_IPID_CHECK            0x40UL
4787         #define VNIC_TPA_CFG_REQ_FLAGS_GRO_TTL_CHECK             0x80UL
4788         #define VNIC_TPA_CFG_REQ_FLAGS_AGG_PACK_AS_GRO           0x100UL
4789         __le32  enables;
4790         #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGG_SEGS      0x1UL
4791         #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGGS          0x2UL
4792         #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGG_TIMER     0x4UL
4793         #define VNIC_TPA_CFG_REQ_ENABLES_MIN_AGG_LEN       0x8UL
4794         __le16  vnic_id;
4795         __le16  max_agg_segs;
4796         #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_1   0x0UL
4797         #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_2   0x1UL
4798         #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_4   0x2UL
4799         #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_8   0x3UL
4800         #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_MAX 0x1fUL
4801         #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_LAST VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_MAX
4802         __le16  max_aggs;
4803         #define VNIC_TPA_CFG_REQ_MAX_AGGS_1   0x0UL
4804         #define VNIC_TPA_CFG_REQ_MAX_AGGS_2   0x1UL
4805         #define VNIC_TPA_CFG_REQ_MAX_AGGS_4   0x2UL
4806         #define VNIC_TPA_CFG_REQ_MAX_AGGS_8   0x3UL
4807         #define VNIC_TPA_CFG_REQ_MAX_AGGS_16  0x4UL
4808         #define VNIC_TPA_CFG_REQ_MAX_AGGS_MAX 0x7UL
4809         #define VNIC_TPA_CFG_REQ_MAX_AGGS_LAST VNIC_TPA_CFG_REQ_MAX_AGGS_MAX
4810         u8      unused_0[2];
4811         __le32  max_agg_timer;
4812         __le32  min_agg_len;
4813 };
4814
4815 /* hwrm_vnic_tpa_cfg_output (size:128b/16B) */
4816 struct hwrm_vnic_tpa_cfg_output {
4817         __le16  error_code;
4818         __le16  req_type;
4819         __le16  seq_id;
4820         __le16  resp_len;
4821         u8      unused_0[7];
4822         u8      valid;
4823 };
4824
4825 /* hwrm_vnic_tpa_qcfg_input (size:192b/24B) */
4826 struct hwrm_vnic_tpa_qcfg_input {
4827         __le16  req_type;
4828         __le16  cmpl_ring;
4829         __le16  seq_id;
4830         __le16  target_id;
4831         __le64  resp_addr;
4832         __le16  vnic_id;
4833         u8      unused_0[6];
4834 };
4835
4836 /* hwrm_vnic_tpa_qcfg_output (size:256b/32B) */
4837 struct hwrm_vnic_tpa_qcfg_output {
4838         __le16  error_code;
4839         __le16  req_type;
4840         __le16  seq_id;
4841         __le16  resp_len;
4842         __le32  flags;
4843         #define VNIC_TPA_QCFG_RESP_FLAGS_TPA                       0x1UL
4844         #define VNIC_TPA_QCFG_RESP_FLAGS_ENCAP_TPA                 0x2UL
4845         #define VNIC_TPA_QCFG_RESP_FLAGS_RSC_WND_UPDATE            0x4UL
4846         #define VNIC_TPA_QCFG_RESP_FLAGS_GRO                       0x8UL
4847         #define VNIC_TPA_QCFG_RESP_FLAGS_AGG_WITH_ECN              0x10UL
4848         #define VNIC_TPA_QCFG_RESP_FLAGS_AGG_WITH_SAME_GRE_SEQ     0x20UL
4849         #define VNIC_TPA_QCFG_RESP_FLAGS_GRO_IPID_CHECK            0x40UL
4850         #define VNIC_TPA_QCFG_RESP_FLAGS_GRO_TTL_CHECK             0x80UL
4851         __le16  max_agg_segs;
4852         #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_1   0x0UL
4853         #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_2   0x1UL
4854         #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_4   0x2UL
4855         #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_8   0x3UL
4856         #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_MAX 0x1fUL
4857         #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_LAST VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_MAX
4858         __le16  max_aggs;
4859         #define VNIC_TPA_QCFG_RESP_MAX_AGGS_1   0x0UL
4860         #define VNIC_TPA_QCFG_RESP_MAX_AGGS_2   0x1UL
4861         #define VNIC_TPA_QCFG_RESP_MAX_AGGS_4   0x2UL
4862         #define VNIC_TPA_QCFG_RESP_MAX_AGGS_8   0x3UL
4863         #define VNIC_TPA_QCFG_RESP_MAX_AGGS_16  0x4UL
4864         #define VNIC_TPA_QCFG_RESP_MAX_AGGS_MAX 0x7UL
4865         #define VNIC_TPA_QCFG_RESP_MAX_AGGS_LAST VNIC_TPA_QCFG_RESP_MAX_AGGS_MAX
4866         __le32  max_agg_timer;
4867         __le32  min_agg_len;
4868         u8      unused_0[7];
4869         u8      valid;
4870 };
4871
4872 /* hwrm_vnic_rss_cfg_input (size:384b/48B) */
4873 struct hwrm_vnic_rss_cfg_input {
4874         __le16  req_type;
4875         __le16  cmpl_ring;
4876         __le16  seq_id;
4877         __le16  target_id;
4878         __le64  resp_addr;
4879         __le32  hash_type;
4880         #define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV4         0x1UL
4881         #define VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV4     0x2UL
4882         #define VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV4     0x4UL
4883         #define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV6         0x8UL
4884         #define VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV6     0x10UL
4885         #define VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV6     0x20UL
4886         __le16  vnic_id;
4887         u8      ring_table_pair_index;
4888         u8      hash_mode_flags;
4889         #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_DEFAULT         0x1UL
4890         #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_INNERMOST_4     0x2UL
4891         #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_INNERMOST_2     0x4UL
4892         #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_OUTERMOST_4     0x8UL
4893         #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_OUTERMOST_2     0x10UL
4894         __le64  ring_grp_tbl_addr;
4895         __le64  hash_key_tbl_addr;
4896         __le16  rss_ctx_idx;
4897         u8      unused_1[6];
4898 };
4899
4900 /* hwrm_vnic_rss_cfg_output (size:128b/16B) */
4901 struct hwrm_vnic_rss_cfg_output {
4902         __le16  error_code;
4903         __le16  req_type;
4904         __le16  seq_id;
4905         __le16  resp_len;
4906         u8      unused_0[7];
4907         u8      valid;
4908 };
4909
4910 /* hwrm_vnic_plcmodes_cfg_input (size:320b/40B) */
4911 struct hwrm_vnic_plcmodes_cfg_input {
4912         __le16  req_type;
4913         __le16  cmpl_ring;
4914         __le16  seq_id;
4915         __le16  target_id;
4916         __le64  resp_addr;
4917         __le32  flags;
4918         #define VNIC_PLCMODES_CFG_REQ_FLAGS_REGULAR_PLACEMENT     0x1UL
4919         #define VNIC_PLCMODES_CFG_REQ_FLAGS_JUMBO_PLACEMENT       0x2UL
4920         #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV4              0x4UL
4921         #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV6              0x8UL
4922         #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_FCOE              0x10UL
4923         #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_ROCE              0x20UL
4924         __le32  enables;
4925         #define VNIC_PLCMODES_CFG_REQ_ENABLES_JUMBO_THRESH_VALID      0x1UL
4926         #define VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_OFFSET_VALID        0x2UL
4927         #define VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_THRESHOLD_VALID     0x4UL
4928         __le32  vnic_id;
4929         __le16  jumbo_thresh;
4930         __le16  hds_offset;
4931         __le16  hds_threshold;
4932         u8      unused_0[6];
4933 };
4934
4935 /* hwrm_vnic_plcmodes_cfg_output (size:128b/16B) */
4936 struct hwrm_vnic_plcmodes_cfg_output {
4937         __le16  error_code;
4938         __le16  req_type;
4939         __le16  seq_id;
4940         __le16  resp_len;
4941         u8      unused_0[7];
4942         u8      valid;
4943 };
4944
4945 /* hwrm_vnic_rss_cos_lb_ctx_alloc_input (size:128b/16B) */
4946 struct hwrm_vnic_rss_cos_lb_ctx_alloc_input {
4947         __le16  req_type;
4948         __le16  cmpl_ring;
4949         __le16  seq_id;
4950         __le16  target_id;
4951         __le64  resp_addr;
4952 };
4953
4954 /* hwrm_vnic_rss_cos_lb_ctx_alloc_output (size:128b/16B) */
4955 struct hwrm_vnic_rss_cos_lb_ctx_alloc_output {
4956         __le16  error_code;
4957         __le16  req_type;
4958         __le16  seq_id;
4959         __le16  resp_len;
4960         __le16  rss_cos_lb_ctx_id;
4961         u8      unused_0[5];
4962         u8      valid;
4963 };
4964
4965 /* hwrm_vnic_rss_cos_lb_ctx_free_input (size:192b/24B) */
4966 struct hwrm_vnic_rss_cos_lb_ctx_free_input {
4967         __le16  req_type;
4968         __le16  cmpl_ring;
4969         __le16  seq_id;
4970         __le16  target_id;
4971         __le64  resp_addr;
4972         __le16  rss_cos_lb_ctx_id;
4973         u8      unused_0[6];
4974 };
4975
4976 /* hwrm_vnic_rss_cos_lb_ctx_free_output (size:128b/16B) */
4977 struct hwrm_vnic_rss_cos_lb_ctx_free_output {
4978         __le16  error_code;
4979         __le16  req_type;
4980         __le16  seq_id;
4981         __le16  resp_len;
4982         u8      unused_0[7];
4983         u8      valid;
4984 };
4985
4986 /* hwrm_ring_alloc_input (size:704b/88B) */
4987 struct hwrm_ring_alloc_input {
4988         __le16  req_type;
4989         __le16  cmpl_ring;
4990         __le16  seq_id;
4991         __le16  target_id;
4992         __le64  resp_addr;
4993         __le32  enables;
4994         #define RING_ALLOC_REQ_ENABLES_RING_ARB_CFG          0x2UL
4995         #define RING_ALLOC_REQ_ENABLES_STAT_CTX_ID_VALID     0x8UL
4996         #define RING_ALLOC_REQ_ENABLES_MAX_BW_VALID          0x20UL
4997         #define RING_ALLOC_REQ_ENABLES_RX_RING_ID_VALID      0x40UL
4998         #define RING_ALLOC_REQ_ENABLES_NQ_RING_ID_VALID      0x80UL
4999         #define RING_ALLOC_REQ_ENABLES_RX_BUF_SIZE_VALID     0x100UL
5000         u8      ring_type;
5001         #define RING_ALLOC_REQ_RING_TYPE_L2_CMPL   0x0UL
5002         #define RING_ALLOC_REQ_RING_TYPE_TX        0x1UL
5003         #define RING_ALLOC_REQ_RING_TYPE_RX        0x2UL
5004         #define RING_ALLOC_REQ_RING_TYPE_ROCE_CMPL 0x3UL
5005         #define RING_ALLOC_REQ_RING_TYPE_RX_AGG    0x4UL
5006         #define RING_ALLOC_REQ_RING_TYPE_NQ        0x5UL
5007         #define RING_ALLOC_REQ_RING_TYPE_LAST     RING_ALLOC_REQ_RING_TYPE_NQ
5008         u8      unused_0;
5009         __le16  flags;
5010         #define RING_ALLOC_REQ_FLAGS_RX_SOP_PAD     0x1UL
5011         __le64  page_tbl_addr;
5012         __le32  fbo;
5013         u8      page_size;
5014         u8      page_tbl_depth;
5015         u8      unused_1[2];
5016         __le32  length;
5017         __le16  logical_id;
5018         __le16  cmpl_ring_id;
5019         __le16  queue_id;
5020         __le16  rx_buf_size;
5021         __le16  rx_ring_id;
5022         __le16  nq_ring_id;
5023         __le16  ring_arb_cfg;
5024         #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_MASK      0xfUL
5025         #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_SFT       0
5026         #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_SP          0x1UL
5027         #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_WFQ         0x2UL
5028         #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_LAST       RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_WFQ
5029         #define RING_ALLOC_REQ_RING_ARB_CFG_RSVD_MASK            0xf0UL
5030         #define RING_ALLOC_REQ_RING_ARB_CFG_RSVD_SFT             4
5031         #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_PARAM_MASK 0xff00UL
5032         #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_PARAM_SFT 8
5033         __le16  unused_3;
5034         __le32  reserved3;
5035         __le32  stat_ctx_id;
5036         __le32  reserved4;
5037         __le32  max_bw;
5038         #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_MASK             0xfffffffUL
5039         #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_SFT              0
5040         #define RING_ALLOC_REQ_MAX_BW_SCALE                     0x10000000UL
5041         #define RING_ALLOC_REQ_MAX_BW_SCALE_BITS                  (0x0UL << 28)
5042         #define RING_ALLOC_REQ_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
5043         #define RING_ALLOC_REQ_MAX_BW_SCALE_LAST                 RING_ALLOC_REQ_MAX_BW_SCALE_BYTES
5044         #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
5045         #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_SFT         29
5046         #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
5047         #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
5048         #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
5049         #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
5050         #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
5051         #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
5052         #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_LAST         RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_INVALID
5053         u8      int_mode;
5054         #define RING_ALLOC_REQ_INT_MODE_LEGACY 0x0UL
5055         #define RING_ALLOC_REQ_INT_MODE_RSVD   0x1UL
5056         #define RING_ALLOC_REQ_INT_MODE_MSIX   0x2UL
5057         #define RING_ALLOC_REQ_INT_MODE_POLL   0x3UL
5058         #define RING_ALLOC_REQ_INT_MODE_LAST  RING_ALLOC_REQ_INT_MODE_POLL
5059         u8      unused_4[3];
5060         __le64  cq_handle;
5061 };
5062
5063 /* hwrm_ring_alloc_output (size:128b/16B) */
5064 struct hwrm_ring_alloc_output {
5065         __le16  error_code;
5066         __le16  req_type;
5067         __le16  seq_id;
5068         __le16  resp_len;
5069         __le16  ring_id;
5070         __le16  logical_ring_id;
5071         u8      unused_0[3];
5072         u8      valid;
5073 };
5074
5075 /* hwrm_ring_free_input (size:192b/24B) */
5076 struct hwrm_ring_free_input {
5077         __le16  req_type;
5078         __le16  cmpl_ring;
5079         __le16  seq_id;
5080         __le16  target_id;
5081         __le64  resp_addr;
5082         u8      ring_type;
5083         #define RING_FREE_REQ_RING_TYPE_L2_CMPL   0x0UL
5084         #define RING_FREE_REQ_RING_TYPE_TX        0x1UL
5085         #define RING_FREE_REQ_RING_TYPE_RX        0x2UL
5086         #define RING_FREE_REQ_RING_TYPE_ROCE_CMPL 0x3UL
5087         #define RING_FREE_REQ_RING_TYPE_RX_AGG    0x4UL
5088         #define RING_FREE_REQ_RING_TYPE_NQ        0x5UL
5089         #define RING_FREE_REQ_RING_TYPE_LAST     RING_FREE_REQ_RING_TYPE_NQ
5090         u8      unused_0;
5091         __le16  ring_id;
5092         u8      unused_1[4];
5093 };
5094
5095 /* hwrm_ring_free_output (size:128b/16B) */
5096 struct hwrm_ring_free_output {
5097         __le16  error_code;
5098         __le16  req_type;
5099         __le16  seq_id;
5100         __le16  resp_len;
5101         u8      unused_0[7];
5102         u8      valid;
5103 };
5104
5105 /* hwrm_ring_reset_input (size:192b/24B) */
5106 struct hwrm_ring_reset_input {
5107         __le16  req_type;
5108         __le16  cmpl_ring;
5109         __le16  seq_id;
5110         __le16  target_id;
5111         __le64  resp_addr;
5112         u8      ring_type;
5113         #define RING_RESET_REQ_RING_TYPE_L2_CMPL   0x0UL
5114         #define RING_RESET_REQ_RING_TYPE_TX        0x1UL
5115         #define RING_RESET_REQ_RING_TYPE_RX        0x2UL
5116         #define RING_RESET_REQ_RING_TYPE_ROCE_CMPL 0x3UL
5117         #define RING_RESET_REQ_RING_TYPE_LAST     RING_RESET_REQ_RING_TYPE_ROCE_CMPL
5118         u8      unused_0;
5119         __le16  ring_id;
5120         u8      unused_1[4];
5121 };
5122
5123 /* hwrm_ring_reset_output (size:128b/16B) */
5124 struct hwrm_ring_reset_output {
5125         __le16  error_code;
5126         __le16  req_type;
5127         __le16  seq_id;
5128         __le16  resp_len;
5129         u8      unused_0[4];
5130         u8      consumer_idx[3];
5131         u8      valid;
5132 };
5133
5134 /* hwrm_ring_aggint_qcaps_input (size:128b/16B) */
5135 struct hwrm_ring_aggint_qcaps_input {
5136         __le16  req_type;
5137         __le16  cmpl_ring;
5138         __le16  seq_id;
5139         __le16  target_id;
5140         __le64  resp_addr;
5141 };
5142
5143 /* hwrm_ring_aggint_qcaps_output (size:384b/48B) */
5144 struct hwrm_ring_aggint_qcaps_output {
5145         __le16  error_code;
5146         __le16  req_type;
5147         __le16  seq_id;
5148         __le16  resp_len;
5149         __le32  cmpl_params;
5150         #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_INT_LAT_TMR_MIN                  0x1UL
5151         #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_INT_LAT_TMR_MAX                  0x2UL
5152         #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_TIMER_RESET                      0x4UL
5153         #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_RING_IDLE                        0x8UL
5154         #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_DMA_AGGR                0x10UL
5155         #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_DMA_AGGR_DURING_INT     0x20UL
5156         #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_CMPL_AGGR_DMA_TMR                0x40UL
5157         #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_CMPL_AGGR_DMA_TMR_DURING_INT     0x80UL
5158         #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_AGGR_INT                0x100UL
5159         __le32  nq_params;
5160         #define RING_AGGINT_QCAPS_RESP_NQ_PARAMS_INT_LAT_TMR_MIN     0x1UL
5161         __le16  num_cmpl_dma_aggr_min;
5162         __le16  num_cmpl_dma_aggr_max;
5163         __le16  num_cmpl_dma_aggr_during_int_min;
5164         __le16  num_cmpl_dma_aggr_during_int_max;
5165         __le16  cmpl_aggr_dma_tmr_min;
5166         __le16  cmpl_aggr_dma_tmr_max;
5167         __le16  cmpl_aggr_dma_tmr_during_int_min;
5168         __le16  cmpl_aggr_dma_tmr_during_int_max;
5169         __le16  int_lat_tmr_min_min;
5170         __le16  int_lat_tmr_min_max;
5171         __le16  int_lat_tmr_max_min;
5172         __le16  int_lat_tmr_max_max;
5173         __le16  num_cmpl_aggr_int_min;
5174         __le16  num_cmpl_aggr_int_max;
5175         __le16  timer_units;
5176         u8      unused_0[1];
5177         u8      valid;
5178 };
5179
5180 /* hwrm_ring_cmpl_ring_qaggint_params_input (size:192b/24B) */
5181 struct hwrm_ring_cmpl_ring_qaggint_params_input {
5182         __le16  req_type;
5183         __le16  cmpl_ring;
5184         __le16  seq_id;
5185         __le16  target_id;
5186         __le64  resp_addr;
5187         __le16  ring_id;
5188         u8      unused_0[6];
5189 };
5190
5191 /* hwrm_ring_cmpl_ring_qaggint_params_output (size:256b/32B) */
5192 struct hwrm_ring_cmpl_ring_qaggint_params_output {
5193         __le16  error_code;
5194         __le16  req_type;
5195         __le16  seq_id;
5196         __le16  resp_len;
5197         __le16  flags;
5198         #define RING_CMPL_RING_QAGGINT_PARAMS_RESP_FLAGS_TIMER_RESET     0x1UL
5199         #define RING_CMPL_RING_QAGGINT_PARAMS_RESP_FLAGS_RING_IDLE       0x2UL
5200         __le16  num_cmpl_dma_aggr;
5201         __le16  num_cmpl_dma_aggr_during_int;
5202         __le16  cmpl_aggr_dma_tmr;
5203         __le16  cmpl_aggr_dma_tmr_during_int;
5204         __le16  int_lat_tmr_min;
5205         __le16  int_lat_tmr_max;
5206         __le16  num_cmpl_aggr_int;
5207         u8      unused_0[7];
5208         u8      valid;
5209 };
5210
5211 /* hwrm_ring_cmpl_ring_cfg_aggint_params_input (size:320b/40B) */
5212 struct hwrm_ring_cmpl_ring_cfg_aggint_params_input {
5213         __le16  req_type;
5214         __le16  cmpl_ring;
5215         __le16  seq_id;
5216         __le16  target_id;
5217         __le64  resp_addr;
5218         __le16  ring_id;
5219         __le16  flags;
5220         #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_TIMER_RESET     0x1UL
5221         #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_RING_IDLE       0x2UL
5222         #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_IS_NQ           0x4UL
5223         __le16  num_cmpl_dma_aggr;
5224         __le16  num_cmpl_dma_aggr_during_int;
5225         __le16  cmpl_aggr_dma_tmr;
5226         __le16  cmpl_aggr_dma_tmr_during_int;
5227         __le16  int_lat_tmr_min;
5228         __le16  int_lat_tmr_max;
5229         __le16  num_cmpl_aggr_int;
5230         __le16  enables;
5231         #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_DMA_AGGR                0x1UL
5232         #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_DMA_AGGR_DURING_INT     0x2UL
5233         #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_CMPL_AGGR_DMA_TMR                0x4UL
5234         #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_INT_LAT_TMR_MIN                  0x8UL
5235         #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_INT_LAT_TMR_MAX                  0x10UL
5236         #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_AGGR_INT                0x20UL
5237         u8      unused_0[4];
5238 };
5239
5240 /* hwrm_ring_cmpl_ring_cfg_aggint_params_output (size:128b/16B) */
5241 struct hwrm_ring_cmpl_ring_cfg_aggint_params_output {
5242         __le16  error_code;
5243         __le16  req_type;
5244         __le16  seq_id;
5245         __le16  resp_len;
5246         u8      unused_0[7];
5247         u8      valid;
5248 };
5249
5250 /* hwrm_ring_grp_alloc_input (size:192b/24B) */
5251 struct hwrm_ring_grp_alloc_input {
5252         __le16  req_type;
5253         __le16  cmpl_ring;
5254         __le16  seq_id;
5255         __le16  target_id;
5256         __le64  resp_addr;
5257         __le16  cr;
5258         __le16  rr;
5259         __le16  ar;
5260         __le16  sc;
5261 };
5262
5263 /* hwrm_ring_grp_alloc_output (size:128b/16B) */
5264 struct hwrm_ring_grp_alloc_output {
5265         __le16  error_code;
5266         __le16  req_type;
5267         __le16  seq_id;
5268         __le16  resp_len;
5269         __le32  ring_group_id;
5270         u8      unused_0[3];
5271         u8      valid;
5272 };
5273
5274 /* hwrm_ring_grp_free_input (size:192b/24B) */
5275 struct hwrm_ring_grp_free_input {
5276         __le16  req_type;
5277         __le16  cmpl_ring;
5278         __le16  seq_id;
5279         __le16  target_id;
5280         __le64  resp_addr;
5281         __le32  ring_group_id;
5282         u8      unused_0[4];
5283 };
5284
5285 /* hwrm_ring_grp_free_output (size:128b/16B) */
5286 struct hwrm_ring_grp_free_output {
5287         __le16  error_code;
5288         __le16  req_type;
5289         __le16  seq_id;
5290         __le16  resp_len;
5291         u8      unused_0[7];
5292         u8      valid;
5293 };
5294 #define DEFAULT_FLOW_ID 0xFFFFFFFFUL
5295 #define ROCEV1_FLOW_ID 0xFFFFFFFEUL
5296 #define ROCEV2_FLOW_ID 0xFFFFFFFDUL
5297 #define ROCEV2_CNP_FLOW_ID 0xFFFFFFFCUL
5298
5299 /* hwrm_cfa_l2_filter_alloc_input (size:768b/96B) */
5300 struct hwrm_cfa_l2_filter_alloc_input {
5301         __le16  req_type;
5302         __le16  cmpl_ring;
5303         __le16  seq_id;
5304         __le16  target_id;
5305         __le64  resp_addr;
5306         __le32  flags;
5307         #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH              0x1UL
5308         #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_TX             0x0UL
5309         #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_RX             0x1UL
5310         #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_LAST          CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_RX
5311         #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_LOOPBACK          0x2UL
5312         #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_DROP              0x4UL
5313         #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_OUTERMOST         0x8UL
5314         #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_MASK      0x30UL
5315         #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_SFT       4
5316         #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_NO_ROCE_L2  (0x0UL << 4)
5317         #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_L2          (0x1UL << 4)
5318         #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_ROCE        (0x2UL << 4)
5319         #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_LAST       CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_ROCE
5320         #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_XDP_DISABLE       0x40UL
5321         #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_SOURCE_VALID      0x80UL
5322         __le32  enables;
5323         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_ADDR             0x1UL
5324         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_ADDR_MASK        0x2UL
5325         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_OVLAN            0x4UL
5326         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_OVLAN_MASK       0x8UL
5327         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN            0x10UL
5328         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN_MASK       0x20UL
5329         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_ADDR           0x40UL
5330         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_ADDR_MASK      0x80UL
5331         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_OVLAN          0x100UL
5332         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_OVLAN_MASK     0x200UL
5333         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_IVLAN          0x400UL
5334         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_IVLAN_MASK     0x800UL
5335         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_SRC_TYPE            0x1000UL
5336         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_SRC_ID              0x2000UL
5337         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE         0x4000UL
5338         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_DST_ID              0x8000UL
5339         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID      0x10000UL
5340         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_NUM_VLANS           0x20000UL
5341         #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_NUM_VLANS         0x40000UL
5342         u8      l2_addr[6];
5343         u8      num_vlans;
5344         u8      t_num_vlans;
5345         u8      l2_addr_mask[6];
5346         __le16  l2_ovlan;
5347         __le16  l2_ovlan_mask;
5348         __le16  l2_ivlan;
5349         __le16  l2_ivlan_mask;
5350         u8      unused_1[2];
5351         u8      t_l2_addr[6];
5352         u8      unused_2[2];
5353         u8      t_l2_addr_mask[6];
5354         __le16  t_l2_ovlan;
5355         __le16  t_l2_ovlan_mask;
5356         __le16  t_l2_ivlan;
5357         __le16  t_l2_ivlan_mask;
5358         u8      src_type;
5359         #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_NPORT 0x0UL
5360         #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_PF    0x1UL
5361         #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_VF    0x2UL
5362         #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_VNIC  0x3UL
5363         #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_KONG  0x4UL
5364         #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_APE   0x5UL
5365         #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_BONO  0x6UL
5366         #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_TANG  0x7UL
5367         #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_LAST CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_TANG
5368         u8      unused_3;
5369         __le32  src_id;
5370         u8      tunnel_type;
5371         #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL    0x0UL
5372         #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN        0x1UL
5373         #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE        0x2UL
5374         #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE        0x3UL
5375         #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP         0x4UL
5376         #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE       0x5UL
5377         #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS         0x6UL
5378         #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT          0x7UL
5379         #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE        0x8UL
5380         #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4     0x9UL
5381         #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1     0xaUL
5382         #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE     0xbUL
5383         #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
5384         #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL    0xffUL
5385         #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST        CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
5386         u8      unused_4;
5387         __le16  dst_id;
5388         __le16  mirror_vnic_id;
5389         u8      pri_hint;
5390         #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_NO_PREFER    0x0UL
5391         #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_ABOVE_FILTER 0x1UL
5392         #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_BELOW_FILTER 0x2UL
5393         #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MAX          0x3UL
5394         #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MIN          0x4UL
5395         #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_LAST        CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MIN
5396         u8      unused_5;
5397         __le32  unused_6;
5398         __le64  l2_filter_id_hint;
5399 };
5400
5401 /* hwrm_cfa_l2_filter_alloc_output (size:192b/24B) */
5402 struct hwrm_cfa_l2_filter_alloc_output {
5403         __le16  error_code;
5404         __le16  req_type;
5405         __le16  seq_id;
5406         __le16  resp_len;
5407         __le64  l2_filter_id;
5408         __le32  flow_id;
5409         #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL
5410         #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0
5411         #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE      0x40000000UL
5412         #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT    (0x0UL << 30)
5413         #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT    (0x1UL << 30)
5414         #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST  CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT
5415         #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR       0x80000000UL
5416         #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX      (0x0UL << 31)
5417         #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX      (0x1UL << 31)
5418         #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST   CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX
5419         u8      unused_0[3];
5420         u8      valid;
5421 };
5422
5423 /* hwrm_cfa_l2_filter_free_input (size:192b/24B) */
5424 struct hwrm_cfa_l2_filter_free_input {
5425         __le16  req_type;
5426         __le16  cmpl_ring;
5427         __le16  seq_id;
5428         __le16  target_id;
5429         __le64  resp_addr;
5430         __le64  l2_filter_id;
5431 };
5432
5433 /* hwrm_cfa_l2_filter_free_output (size:128b/16B) */
5434 struct hwrm_cfa_l2_filter_free_output {
5435         __le16  error_code;
5436         __le16  req_type;
5437         __le16  seq_id;
5438         __le16  resp_len;
5439         u8      unused_0[7];
5440         u8      valid;
5441 };
5442
5443 /* hwrm_cfa_l2_filter_cfg_input (size:320b/40B) */
5444 struct hwrm_cfa_l2_filter_cfg_input {
5445         __le16  req_type;
5446         __le16  cmpl_ring;
5447         __le16  seq_id;
5448         __le16  target_id;
5449         __le64  resp_addr;
5450         __le32  flags;
5451         #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH              0x1UL
5452         #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_TX             0x0UL
5453         #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_RX             0x1UL
5454         #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_LAST          CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_RX
5455         #define CFA_L2_FILTER_CFG_REQ_FLAGS_DROP              0x2UL
5456         #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_MASK      0xcUL
5457         #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_SFT       2
5458         #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_NO_ROCE_L2  (0x0UL << 2)
5459         #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_L2          (0x1UL << 2)
5460         #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_ROCE        (0x2UL << 2)
5461         #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_LAST       CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_ROCE
5462         __le32  enables;
5463         #define CFA_L2_FILTER_CFG_REQ_ENABLES_DST_ID                 0x1UL
5464         #define CFA_L2_FILTER_CFG_REQ_ENABLES_NEW_MIRROR_VNIC_ID     0x2UL
5465         __le64  l2_filter_id;
5466         __le32  dst_id;
5467         __le32  new_mirror_vnic_id;
5468 };
5469
5470 /* hwrm_cfa_l2_filter_cfg_output (size:128b/16B) */
5471 struct hwrm_cfa_l2_filter_cfg_output {
5472         __le16  error_code;
5473         __le16  req_type;
5474         __le16  seq_id;
5475         __le16  resp_len;
5476         u8      unused_0[7];
5477         u8      valid;
5478 };
5479
5480 /* hwrm_cfa_l2_set_rx_mask_input (size:448b/56B) */
5481 struct hwrm_cfa_l2_set_rx_mask_input {
5482         __le16  req_type;
5483         __le16  cmpl_ring;
5484         __le16  seq_id;
5485         __le16  target_id;
5486         __le64  resp_addr;
5487         __le32  vnic_id;
5488         __le32  mask;
5489         #define CFA_L2_SET_RX_MASK_REQ_MASK_MCAST               0x2UL
5490         #define CFA_L2_SET_RX_MASK_REQ_MASK_ALL_MCAST           0x4UL
5491         #define CFA_L2_SET_RX_MASK_REQ_MASK_BCAST               0x8UL
5492         #define CFA_L2_SET_RX_MASK_REQ_MASK_PROMISCUOUS         0x10UL
5493         #define CFA_L2_SET_RX_MASK_REQ_MASK_OUTERMOST           0x20UL
5494         #define CFA_L2_SET_RX_MASK_REQ_MASK_VLANONLY            0x40UL
5495         #define CFA_L2_SET_RX_MASK_REQ_MASK_VLAN_NONVLAN        0x80UL
5496         #define CFA_L2_SET_RX_MASK_REQ_MASK_ANYVLAN_NONVLAN     0x100UL
5497         __le64  mc_tbl_addr;
5498         __le32  num_mc_entries;
5499         u8      unused_0[4];
5500         __le64  vlan_tag_tbl_addr;
5501         __le32  num_vlan_tags;
5502         u8      unused_1[4];
5503 };
5504
5505 /* hwrm_cfa_l2_set_rx_mask_output (size:128b/16B) */
5506 struct hwrm_cfa_l2_set_rx_mask_output {
5507         __le16  error_code;
5508         __le16  req_type;
5509         __le16  seq_id;
5510         __le16  resp_len;
5511         u8      unused_0[7];
5512         u8      valid;
5513 };
5514
5515 /* hwrm_cfa_l2_set_rx_mask_cmd_err (size:64b/8B) */
5516 struct hwrm_cfa_l2_set_rx_mask_cmd_err {
5517         u8      code;
5518         #define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_UNKNOWN                    0x0UL
5519         #define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_NTUPLE_FILTER_CONFLICT_ERR 0x1UL
5520         #define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_LAST                      CFA_L2_SET_RX_MASK_CMD_ERR_CODE_NTUPLE_FILTER_CONFLICT_ERR
5521         u8      unused_0[7];
5522 };
5523
5524 /* hwrm_cfa_tunnel_filter_alloc_input (size:704b/88B) */
5525 struct hwrm_cfa_tunnel_filter_alloc_input {
5526         __le16  req_type;
5527         __le16  cmpl_ring;
5528         __le16  seq_id;
5529         __le16  target_id;
5530         __le64  resp_addr;
5531         __le32  flags;
5532         #define CFA_TUNNEL_FILTER_ALLOC_REQ_FLAGS_LOOPBACK     0x1UL
5533         __le32  enables;
5534         #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_FILTER_ID       0x1UL
5535         #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_ADDR            0x2UL
5536         #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN           0x4UL
5537         #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L3_ADDR            0x8UL
5538         #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L3_ADDR_TYPE       0x10UL
5539         #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_T_L3_ADDR_TYPE     0x20UL
5540         #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_T_L3_ADDR          0x40UL
5541         #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE        0x80UL
5542         #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_VNI                0x100UL
5543         #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_DST_VNIC_ID        0x200UL
5544         #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID     0x400UL
5545         __le64  l2_filter_id;
5546         u8      l2_addr[6];
5547         __le16  l2_ivlan;
5548         __le32  l3_addr[4];
5549         __le32  t_l3_addr[4];
5550         u8      l3_addr_type;
5551         u8      t_l3_addr_type;
5552         u8      tunnel_type;
5553         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL    0x0UL
5554         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN        0x1UL
5555         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE        0x2UL
5556         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE        0x3UL
5557         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP         0x4UL
5558         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE       0x5UL
5559         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS         0x6UL
5560         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT          0x7UL
5561         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE        0x8UL
5562         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4     0x9UL
5563         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1     0xaUL
5564         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE     0xbUL
5565         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
5566         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL    0xffUL
5567         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST        CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
5568         u8      tunnel_flags;
5569         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_OAM_CHECKSUM_EXPLHDR     0x1UL
5570         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_CRITICAL_OPT_S1          0x2UL
5571         #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_EXTHDR_SEQNUM_S0         0x4UL
5572         __le32  vni;
5573         __le32  dst_vnic_id;
5574         __le32  mirror_vnic_id;
5575 };
5576
5577 /* hwrm_cfa_tunnel_filter_alloc_output (size:192b/24B) */
5578 struct hwrm_cfa_tunnel_filter_alloc_output {
5579         __le16  error_code;
5580         __le16  req_type;
5581         __le16  seq_id;
5582         __le16  resp_len;
5583         __le64  tunnel_filter_id;
5584         __le32  flow_id;
5585         #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL
5586         #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0
5587         #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE      0x40000000UL
5588         #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT    (0x0UL << 30)
5589         #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT    (0x1UL << 30)
5590         #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST  CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT
5591         #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR       0x80000000UL
5592         #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX      (0x0UL << 31)
5593         #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX      (0x1UL << 31)
5594         #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST   CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX
5595         u8      unused_0[3];
5596         u8      valid;
5597 };
5598
5599 /* hwrm_cfa_tunnel_filter_free_input (size:192b/24B) */
5600 struct hwrm_cfa_tunnel_filter_free_input {
5601         __le16  req_type;
5602         __le16  cmpl_ring;
5603         __le16  seq_id;
5604         __le16  target_id;
5605         __le64  resp_addr;
5606         __le64  tunnel_filter_id;
5607 };
5608
5609 /* hwrm_cfa_tunnel_filter_free_output (size:128b/16B) */
5610 struct hwrm_cfa_tunnel_filter_free_output {
5611         __le16  error_code;
5612         __le16  req_type;
5613         __le16  seq_id;
5614         __le16  resp_len;
5615         u8      unused_0[7];
5616         u8      valid;
5617 };
5618
5619 /* hwrm_vxlan_ipv4_hdr (size:128b/16B) */
5620 struct hwrm_vxlan_ipv4_hdr {
5621         u8      ver_hlen;
5622         #define VXLAN_IPV4_HDR_VER_HLEN_HEADER_LENGTH_MASK 0xfUL
5623         #define VXLAN_IPV4_HDR_VER_HLEN_HEADER_LENGTH_SFT 0
5624         #define VXLAN_IPV4_HDR_VER_HLEN_VERSION_MASK      0xf0UL
5625         #define VXLAN_IPV4_HDR_VER_HLEN_VERSION_SFT       4
5626         u8      tos;
5627         __be16  ip_id;
5628         __be16  flags_frag_offset;
5629         u8      ttl;
5630         u8      protocol;
5631         __be32  src_ip_addr;
5632         __be32  dest_ip_addr;
5633 };
5634
5635 /* hwrm_vxlan_ipv6_hdr (size:320b/40B) */
5636 struct hwrm_vxlan_ipv6_hdr {
5637         __be32  ver_tc_flow_label;
5638         #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_VER_SFT         0x1cUL
5639         #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_VER_MASK        0xf0000000UL
5640         #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_TC_SFT          0x14UL
5641         #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_TC_MASK         0xff00000UL
5642         #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_SFT  0x0UL
5643         #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_MASK 0xfffffUL
5644         #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_LAST           VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_MASK
5645         __be16  payload_len;
5646         u8      next_hdr;
5647         u8      ttl;
5648         __be32  src_ip_addr[4];
5649         __be32  dest_ip_addr[4];
5650 };
5651
5652 /* hwrm_cfa_encap_data_vxlan (size:640b/80B) */
5653 struct hwrm_cfa_encap_data_vxlan {
5654         u8      src_mac_addr[6];
5655         __le16  unused_0;
5656         u8      dst_mac_addr[6];
5657         u8      num_vlan_tags;
5658         u8      unused_1;
5659         __be16  ovlan_tpid;
5660         __be16  ovlan_tci;
5661         __be16  ivlan_tpid;
5662         __be16  ivlan_tci;
5663         __le32  l3[10];
5664         #define CFA_ENCAP_DATA_VXLAN_L3_VER_MASK 0xfUL
5665         #define CFA_ENCAP_DATA_VXLAN_L3_VER_IPV4 0x4UL
5666         #define CFA_ENCAP_DATA_VXLAN_L3_VER_IPV6 0x6UL
5667         #define CFA_ENCAP_DATA_VXLAN_L3_LAST    CFA_ENCAP_DATA_VXLAN_L3_VER_IPV6
5668         __be16  src_port;
5669         __be16  dst_port;
5670         __be32  vni;
5671         u8      hdr_rsvd0[3];
5672         u8      hdr_rsvd1;
5673         u8      hdr_flags;
5674         u8      unused[3];
5675 };
5676
5677 /* hwrm_cfa_encap_record_alloc_input (size:832b/104B) */
5678 struct hwrm_cfa_encap_record_alloc_input {
5679         __le16  req_type;
5680         __le16  cmpl_ring;
5681         __le16  seq_id;
5682         __le16  target_id;
5683         __le64  resp_addr;
5684         __le32  flags;
5685         #define CFA_ENCAP_RECORD_ALLOC_REQ_FLAGS_LOOPBACK     0x1UL
5686         #define CFA_ENCAP_RECORD_ALLOC_REQ_FLAGS_EXTERNAL     0x2UL
5687         u8      encap_type;
5688         #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN        0x1UL
5689         #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_NVGRE        0x2UL
5690         #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_L2GRE        0x3UL
5691         #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPIP         0x4UL
5692         #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_GENEVE       0x5UL
5693         #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_MPLS         0x6UL
5694         #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VLAN         0x7UL
5695         #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPGRE        0x8UL
5696         #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_V4     0x9UL
5697         #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPGRE_V1     0xaUL
5698         #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_L2_ETYPE     0xbUL
5699         #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_GPE_V6 0xcUL
5700         #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_LAST        CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_GPE_V6
5701         u8      unused_0[3];
5702         __le32  encap_data[20];
5703 };
5704
5705 /* hwrm_cfa_encap_record_alloc_output (size:128b/16B) */
5706 struct hwrm_cfa_encap_record_alloc_output {
5707         __le16  error_code;
5708         __le16  req_type;
5709         __le16  seq_id;
5710         __le16  resp_len;
5711         __le32  encap_record_id;
5712         u8      unused_0[3];
5713         u8      valid;
5714 };
5715
5716 /* hwrm_cfa_encap_record_free_input (size:192b/24B) */
5717 struct hwrm_cfa_encap_record_free_input {
5718         __le16  req_type;
5719         __le16  cmpl_ring;
5720         __le16  seq_id;
5721         __le16  target_id;
5722         __le64  resp_addr;
5723         __le32  encap_record_id;
5724         u8      unused_0[4];
5725 };
5726
5727 /* hwrm_cfa_encap_record_free_output (size:128b/16B) */
5728 struct hwrm_cfa_encap_record_free_output {
5729         __le16  error_code;
5730         __le16  req_type;
5731         __le16  seq_id;
5732         __le16  resp_len;
5733         u8      unused_0[7];
5734         u8      valid;
5735 };
5736
5737 /* hwrm_cfa_ntuple_filter_alloc_input (size:1088b/136B) */
5738 struct hwrm_cfa_ntuple_filter_alloc_input {
5739         __le16  req_type;
5740         __le16  cmpl_ring;
5741         __le16  seq_id;
5742         __le16  target_id;
5743         __le64  resp_addr;
5744         __le32  flags;
5745         #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_LOOPBACK     0x1UL
5746         #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DROP         0x2UL
5747         #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_METER        0x4UL
5748         #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DEST_FID     0x8UL
5749         __le32  enables;
5750         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_L2_FILTER_ID         0x1UL
5751         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_ETHERTYPE            0x2UL
5752         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE          0x4UL
5753         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_MACADDR          0x8UL
5754         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_IPADDR_TYPE          0x10UL
5755         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR           0x20UL
5756         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR_MASK      0x40UL
5757         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR           0x80UL
5758         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR_MASK      0x100UL
5759         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_IP_PROTOCOL          0x200UL
5760         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_PORT             0x400UL
5761         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_PORT_MASK        0x800UL
5762         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_PORT             0x1000UL
5763         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_PORT_MASK        0x2000UL
5764         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_PRI_HINT             0x4000UL
5765         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_NTUPLE_FILTER_ID     0x8000UL
5766         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_ID               0x10000UL
5767         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID       0x20000UL
5768         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_MACADDR          0x40000UL
5769         #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_RFS_RING_TBL_IDX     0x80000UL
5770         __le64  l2_filter_id;
5771         u8      src_macaddr[6];
5772         __be16  ethertype;
5773         u8      ip_addr_type;
5774         #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_UNKNOWN 0x0UL
5775         #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV4    0x4UL
5776         #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6    0x6UL
5777         #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_LAST   CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6
5778         u8      ip_protocol;
5779         #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UNKNOWN 0x0UL
5780         #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_TCP     0x6UL
5781         #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP     0x11UL
5782         #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_LAST   CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP
5783         __le16  dst_id;
5784         __le16  mirror_vnic_id;
5785         u8      tunnel_type;
5786         #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL    0x0UL
5787         #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN        0x1UL
5788         #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE        0x2UL
5789         #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE        0x3UL
5790         #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP         0x4UL
5791         #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE       0x5UL
5792         #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS         0x6UL
5793         #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT          0x7UL
5794         #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE        0x8UL
5795         #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4     0x9UL
5796         #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1     0xaUL
5797         #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE     0xbUL
5798         #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
5799         #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL    0xffUL
5800         #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST        CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
5801         u8      pri_hint;
5802         #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_NO_PREFER 0x0UL
5803         #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_ABOVE     0x1UL
5804         #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_BELOW     0x2UL
5805         #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_HIGHEST   0x3UL
5806         #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LOWEST    0x4UL
5807         #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LAST     CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LOWEST
5808         __be32  src_ipaddr[4];
5809         __be32  src_ipaddr_mask[4];
5810         __be32  dst_ipaddr[4];
5811         __be32  dst_ipaddr_mask[4];
5812         __be16  src_port;
5813         __be16  src_port_mask;
5814         __be16  dst_port;
5815         __be16  dst_port_mask;
5816         __le64  ntuple_filter_id_hint;
5817         __le16  rfs_ring_tbl_idx;
5818         u8      unused_0[6];
5819 };
5820
5821 /* hwrm_cfa_ntuple_filter_alloc_output (size:192b/24B) */
5822 struct hwrm_cfa_ntuple_filter_alloc_output {
5823         __le16  error_code;
5824         __le16  req_type;
5825         __le16  seq_id;
5826         __le16  resp_len;
5827         __le64  ntuple_filter_id;
5828         __le32  flow_id;
5829         #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL
5830         #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0
5831         #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE      0x40000000UL
5832         #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT    (0x0UL << 30)
5833         #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT    (0x1UL << 30)
5834         #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST  CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT
5835         #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR       0x80000000UL
5836         #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX      (0x0UL << 31)
5837         #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX      (0x1UL << 31)
5838         #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST   CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX
5839         u8      unused_0[3];
5840         u8      valid;
5841 };
5842
5843 /* hwrm_cfa_ntuple_filter_alloc_cmd_err (size:64b/8B) */
5844 struct hwrm_cfa_ntuple_filter_alloc_cmd_err {
5845         u8      code;
5846         #define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_UNKNOWN                   0x0UL
5847         #define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_RX_MASK_VLAN_CONFLICT_ERR 0x1UL
5848         #define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_LAST                     CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_RX_MASK_VLAN_CONFLICT_ERR
5849         u8      unused_0[7];
5850 };
5851
5852 /* hwrm_cfa_ntuple_filter_free_input (size:192b/24B) */
5853 struct hwrm_cfa_ntuple_filter_free_input {
5854         __le16  req_type;
5855         __le16  cmpl_ring;
5856         __le16  seq_id;
5857         __le16  target_id;
5858         __le64  resp_addr;
5859         __le64  ntuple_filter_id;
5860 };
5861
5862 /* hwrm_cfa_ntuple_filter_free_output (size:128b/16B) */
5863 struct hwrm_cfa_ntuple_filter_free_output {
5864         __le16  error_code;
5865         __le16  req_type;
5866         __le16  seq_id;
5867         __le16  resp_len;
5868         u8      unused_0[7];
5869         u8      valid;
5870 };
5871
5872 /* hwrm_cfa_ntuple_filter_cfg_input (size:384b/48B) */
5873 struct hwrm_cfa_ntuple_filter_cfg_input {
5874         __le16  req_type;
5875         __le16  cmpl_ring;
5876         __le16  seq_id;
5877         __le16  target_id;
5878         __le64  resp_addr;
5879         __le32  enables;
5880         #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_DST_ID                0x1UL
5881         #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_MIRROR_VNIC_ID        0x2UL
5882         #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_METER_INSTANCE_ID     0x4UL
5883         __le32  flags;
5884         #define CFA_NTUPLE_FILTER_CFG_REQ_FLAGS_DEST_FID     0x1UL
5885         __le64  ntuple_filter_id;
5886         __le32  new_dst_id;
5887         __le32  new_mirror_vnic_id;
5888         __le16  new_meter_instance_id;
5889         #define CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_INVALID 0xffffUL
5890         #define CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_LAST   CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_INVALID
5891         u8      unused_1[6];
5892 };
5893
5894 /* hwrm_cfa_ntuple_filter_cfg_output (size:128b/16B) */
5895 struct hwrm_cfa_ntuple_filter_cfg_output {
5896         __le16  error_code;
5897         __le16  req_type;
5898         __le16  seq_id;
5899         __le16  resp_len;
5900         u8      unused_0[7];
5901         u8      valid;
5902 };
5903
5904 /* hwrm_cfa_decap_filter_alloc_input (size:832b/104B) */
5905 struct hwrm_cfa_decap_filter_alloc_input {
5906         __le16  req_type;
5907         __le16  cmpl_ring;
5908         __le16  seq_id;
5909         __le16  target_id;
5910         __le64  resp_addr;
5911         __le32  flags;
5912         #define CFA_DECAP_FILTER_ALLOC_REQ_FLAGS_OVS_TUNNEL     0x1UL
5913         __le32  enables;
5914         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE        0x1UL
5915         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_TUNNEL_ID          0x2UL
5916         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_MACADDR        0x4UL
5917         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_MACADDR        0x8UL
5918         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_OVLAN_VID          0x10UL
5919         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IVLAN_VID          0x20UL
5920         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_T_OVLAN_VID        0x40UL
5921         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_T_IVLAN_VID        0x80UL
5922         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_ETHERTYPE          0x100UL
5923         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR         0x200UL
5924         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR         0x400UL
5925         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IPADDR_TYPE        0x800UL
5926         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IP_PROTOCOL        0x1000UL
5927         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_PORT           0x2000UL
5928         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_PORT           0x4000UL
5929         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_ID             0x8000UL
5930         #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID     0x10000UL
5931         __be32  tunnel_id;
5932         u8      tunnel_type;
5933         #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL    0x0UL
5934         #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN        0x1UL
5935         #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE        0x2UL
5936         #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE        0x3UL
5937         #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP         0x4UL
5938         #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE       0x5UL
5939         #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS         0x6UL
5940         #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT          0x7UL
5941         #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE        0x8UL
5942         #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4     0x9UL
5943         #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1     0xaUL
5944         #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE     0xbUL
5945         #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
5946         #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL    0xffUL
5947         #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST        CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
5948         u8      unused_0;
5949         __le16  unused_1;
5950         u8      src_macaddr[6];
5951         u8      unused_2[2];
5952         u8      dst_macaddr[6];
5953         __be16  ovlan_vid;
5954         __be16  ivlan_vid;
5955         __be16  t_ovlan_vid;
5956         __be16  t_ivlan_vid;
5957         __be16  ethertype;
5958         u8      ip_addr_type;
5959         #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_UNKNOWN 0x0UL
5960         #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV4    0x4UL
5961         #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6    0x6UL
5962         #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_LAST   CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6
5963         u8      ip_protocol;
5964         #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UNKNOWN 0x0UL
5965         #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_TCP     0x6UL
5966         #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP     0x11UL
5967         #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_LAST   CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP
5968         __le16  unused_3;
5969         __le32  unused_4;
5970         __be32  src_ipaddr[4];
5971         __be32  dst_ipaddr[4];
5972         __be16  src_port;
5973         __be16  dst_port;
5974         __le16  dst_id;
5975         __le16  l2_ctxt_ref_id;
5976 };
5977
5978 /* hwrm_cfa_decap_filter_alloc_output (size:128b/16B) */
5979 struct hwrm_cfa_decap_filter_alloc_output {
5980         __le16  error_code;
5981         __le16  req_type;
5982         __le16  seq_id;
5983         __le16  resp_len;
5984         __le32  decap_filter_id;
5985         u8      unused_0[3];
5986         u8      valid;
5987 };
5988
5989 /* hwrm_cfa_decap_filter_free_input (size:192b/24B) */
5990 struct hwrm_cfa_decap_filter_free_input {
5991         __le16  req_type;
5992         __le16  cmpl_ring;
5993         __le16  seq_id;
5994         __le16  target_id;
5995         __le64  resp_addr;
5996         __le32  decap_filter_id;
5997         u8      unused_0[4];
5998 };
5999
6000 /* hwrm_cfa_decap_filter_free_output (size:128b/16B) */
6001 struct hwrm_cfa_decap_filter_free_output {
6002         __le16  error_code;
6003         __le16  req_type;
6004         __le16  seq_id;
6005         __le16  resp_len;
6006         u8      unused_0[7];
6007         u8      valid;
6008 };
6009
6010 /* hwrm_cfa_flow_alloc_input (size:1024b/128B) */
6011 struct hwrm_cfa_flow_alloc_input {
6012         __le16  req_type;
6013         __le16  cmpl_ring;
6014         __le16  seq_id;
6015         __le16  target_id;
6016         __le64  resp_addr;
6017         __le16  flags;
6018         #define CFA_FLOW_ALLOC_REQ_FLAGS_TUNNEL                 0x1UL
6019         #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_MASK          0x6UL
6020         #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_SFT           1
6021         #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_NONE            (0x0UL << 1)
6022         #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_ONE             (0x1UL << 1)
6023         #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_TWO             (0x2UL << 1)
6024         #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_LAST           CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_TWO
6025         #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_MASK          0x38UL
6026         #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_SFT           3
6027         #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_L2              (0x0UL << 3)
6028         #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV4            (0x1UL << 3)
6029         #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV6            (0x2UL << 3)
6030         #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_LAST           CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV6
6031         #define CFA_FLOW_ALLOC_REQ_FLAGS_PATH_TX                0x40UL
6032         #define CFA_FLOW_ALLOC_REQ_FLAGS_PATH_RX                0x80UL
6033         #define CFA_FLOW_ALLOC_REQ_FLAGS_MATCH_VXLAN_IP_VNI     0x100UL
6034         #define CFA_FLOW_ALLOC_REQ_FLAGS_VHOST_ID_USE_VLAN      0x200UL
6035         __le16  src_fid;
6036         __le32  tunnel_handle;
6037         __le16  action_flags;
6038         #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_FWD                       0x1UL
6039         #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_RECYCLE                   0x2UL
6040         #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_DROP                      0x4UL
6041         #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_METER                     0x8UL
6042         #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TUNNEL                    0x10UL
6043         #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_SRC                   0x20UL
6044         #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_DEST                  0x40UL
6045         #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_IPV4_ADDRESS          0x80UL
6046         #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_L2_HEADER_REWRITE         0x100UL
6047         #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TTL_DECREMENT             0x200UL
6048         #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TUNNEL_IP                 0x400UL
6049         #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_FLOW_AGING_ENABLED        0x800UL
6050         #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_PRI_HINT                  0x1000UL
6051         #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NO_FLOW_COUNTER_ALLOC     0x2000UL
6052         __le16  dst_fid;
6053         __be16  l2_rewrite_vlan_tpid;
6054         __be16  l2_rewrite_vlan_tci;
6055         __le16  act_meter_id;
6056         __le16  ref_flow_handle;
6057         __be16  ethertype;
6058         __be16  outer_vlan_tci;
6059         __be16  dmac[3];
6060         __be16  inner_vlan_tci;
6061         __be16  smac[3];
6062         u8      ip_dst_mask_len;
6063         u8      ip_src_mask_len;
6064         __be32  ip_dst[4];
6065         __be32  ip_src[4];
6066         __be16  l4_src_port;
6067         __be16  l4_src_port_mask;
6068         __be16  l4_dst_port;
6069         __be16  l4_dst_port_mask;
6070         __be32  nat_ip_address[4];
6071         __be16  l2_rewrite_dmac[3];
6072         __be16  nat_port;
6073         __be16  l2_rewrite_smac[3];
6074         u8      ip_proto;
6075         u8      tunnel_type;
6076         #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL    0x0UL
6077         #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN        0x1UL
6078         #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_NVGRE        0x2UL
6079         #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_L2GRE        0x3UL
6080         #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPIP         0x4UL
6081         #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_GENEVE       0x5UL
6082         #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_MPLS         0x6UL
6083         #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_STT          0x7UL
6084         #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPGRE        0x8UL
6085         #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4     0x9UL
6086         #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1     0xaUL
6087         #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE     0xbUL
6088         #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
6089         #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL    0xffUL
6090         #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_LAST        CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
6091 };
6092
6093 /* hwrm_cfa_flow_alloc_output (size:256b/32B) */
6094 struct hwrm_cfa_flow_alloc_output {
6095         __le16  error_code;
6096         __le16  req_type;
6097         __le16  seq_id;
6098         __le16  resp_len;
6099         __le16  flow_handle;
6100         u8      unused_0[2];
6101         __le32  flow_id;
6102         #define CFA_FLOW_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL
6103         #define CFA_FLOW_ALLOC_RESP_FLOW_ID_VALUE_SFT 0
6104         #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE      0x40000000UL
6105         #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_INT    (0x0UL << 30)
6106         #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_EXT    (0x1UL << 30)
6107         #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_LAST  CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_EXT
6108         #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR       0x80000000UL
6109         #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_RX      (0x0UL << 31)
6110         #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_TX      (0x1UL << 31)
6111         #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_LAST   CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_TX
6112         __le64  ext_flow_handle;
6113         __le32  flow_counter_id;
6114         u8      unused_1[3];
6115         u8      valid;
6116 };
6117
6118 /* hwrm_cfa_flow_free_input (size:256b/32B) */
6119 struct hwrm_cfa_flow_free_input {
6120         __le16  req_type;
6121         __le16  cmpl_ring;
6122         __le16  seq_id;
6123         __le16  target_id;
6124         __le64  resp_addr;
6125         __le16  flow_handle;
6126         __le16  unused_0;
6127         __le32  flow_counter_id;
6128         __le64  ext_flow_handle;
6129 };
6130
6131 /* hwrm_cfa_flow_free_output (size:256b/32B) */
6132 struct hwrm_cfa_flow_free_output {
6133         __le16  error_code;
6134         __le16  req_type;
6135         __le16  seq_id;
6136         __le16  resp_len;
6137         __le64  packet;
6138         __le64  byte;
6139         u8      unused_0[7];
6140         u8      valid;
6141 };
6142
6143 /* hwrm_cfa_flow_info_input (size:256b/32B) */
6144 struct hwrm_cfa_flow_info_input {
6145         __le16  req_type;
6146         __le16  cmpl_ring;
6147         __le16  seq_id;
6148         __le16  target_id;
6149         __le64  resp_addr;
6150         __le16  flow_handle;
6151         #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_MAX_MASK       0xfffUL
6152         #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_MAX_SFT        0
6153         #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_CNP_CNT        0x1000UL
6154         #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV1_CNT     0x2000UL
6155         #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV2_CNT     0x4000UL
6156         #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_DIR_RX         0x8000UL
6157         u8      unused_0[6];
6158         __le64  ext_flow_handle;
6159 };
6160
6161 /* hwrm_cfa_flow_info_output (size:5632b/704B) */
6162 struct hwrm_cfa_flow_info_output {
6163         __le16  error_code;
6164         __le16  req_type;
6165         __le16  seq_id;
6166         __le16  resp_len;
6167         u8      flags;
6168         #define CFA_FLOW_INFO_RESP_FLAGS_PATH_TX     0x1UL
6169         #define CFA_FLOW_INFO_RESP_FLAGS_PATH_RX     0x2UL
6170         u8      profile;
6171         __le16  src_fid;
6172         __le16  dst_fid;
6173         __le16  l2_ctxt_id;
6174         __le64  em_info;
6175         __le64  tcam_info;
6176         __le64  vfp_tcam_info;
6177         __le16  ar_id;
6178         __le16  flow_handle;
6179         __le32  tunnel_handle;
6180         __le16  flow_timer;
6181         u8      unused_0[6];
6182         __le32  flow_key_data[130];
6183         __le32  flow_action_info[30];
6184         u8      unused_1[7];
6185         u8      valid;
6186 };
6187
6188 /* hwrm_cfa_flow_stats_input (size:640b/80B) */
6189 struct hwrm_cfa_flow_stats_input {
6190         __le16  req_type;
6191         __le16  cmpl_ring;
6192         __le16  seq_id;
6193         __le16  target_id;
6194         __le64  resp_addr;
6195         __le16  num_flows;
6196         __le16  flow_handle_0;
6197         __le16  flow_handle_1;
6198         __le16  flow_handle_2;
6199         __le16  flow_handle_3;
6200         __le16  flow_handle_4;
6201         __le16  flow_handle_5;
6202         __le16  flow_handle_6;
6203         __le16  flow_handle_7;
6204         __le16  flow_handle_8;
6205         __le16  flow_handle_9;
6206         u8      unused_0[2];
6207         __le32  flow_id_0;
6208         __le32  flow_id_1;
6209         __le32  flow_id_2;
6210         __le32  flow_id_3;
6211         __le32  flow_id_4;
6212         __le32  flow_id_5;
6213         __le32  flow_id_6;
6214         __le32  flow_id_7;
6215         __le32  flow_id_8;
6216         __le32  flow_id_9;
6217 };
6218
6219 /* hwrm_cfa_flow_stats_output (size:1408b/176B) */
6220 struct hwrm_cfa_flow_stats_output {
6221         __le16  error_code;
6222         __le16  req_type;
6223         __le16  seq_id;
6224         __le16  resp_len;
6225         __le64  packet_0;
6226         __le64  packet_1;
6227         __le64  packet_2;
6228         __le64  packet_3;
6229         __le64  packet_4;
6230         __le64  packet_5;
6231         __le64  packet_6;
6232         __le64  packet_7;
6233         __le64  packet_8;
6234         __le64  packet_9;
6235         __le64  byte_0;
6236         __le64  byte_1;
6237         __le64  byte_2;
6238         __le64  byte_3;
6239         __le64  byte_4;
6240         __le64  byte_5;
6241         __le64  byte_6;
6242         __le64  byte_7;
6243         __le64  byte_8;
6244         __le64  byte_9;
6245         u8      unused_0[7];
6246         u8      valid;
6247 };
6248
6249 /* hwrm_cfa_vfr_alloc_input (size:448b/56B) */
6250 struct hwrm_cfa_vfr_alloc_input {
6251         __le16  req_type;
6252         __le16  cmpl_ring;
6253         __le16  seq_id;
6254         __le16  target_id;
6255         __le64  resp_addr;
6256         __le16  vf_id;
6257         __le16  reserved;
6258         u8      unused_0[4];
6259         char    vfr_name[32];
6260 };
6261
6262 /* hwrm_cfa_vfr_alloc_output (size:128b/16B) */
6263 struct hwrm_cfa_vfr_alloc_output {
6264         __le16  error_code;
6265         __le16  req_type;
6266         __le16  seq_id;
6267         __le16  resp_len;
6268         __le16  rx_cfa_code;
6269         __le16  tx_cfa_action;
6270         u8      unused_0[3];
6271         u8      valid;
6272 };
6273
6274 /* hwrm_cfa_vfr_free_input (size:384b/48B) */
6275 struct hwrm_cfa_vfr_free_input {
6276         __le16  req_type;
6277         __le16  cmpl_ring;
6278         __le16  seq_id;
6279         __le16  target_id;
6280         __le64  resp_addr;
6281         char    vfr_name[32];
6282 };
6283
6284 /* hwrm_cfa_vfr_free_output (size:128b/16B) */
6285 struct hwrm_cfa_vfr_free_output {
6286         __le16  error_code;
6287         __le16  req_type;
6288         __le16  seq_id;
6289         __le16  resp_len;
6290         u8      unused_0[7];
6291         u8      valid;
6292 };
6293
6294 /* hwrm_cfa_eem_qcaps_input (size:192b/24B) */
6295 struct hwrm_cfa_eem_qcaps_input {
6296         __le16  req_type;
6297         __le16  cmpl_ring;
6298         __le16  seq_id;
6299         __le16  target_id;
6300         __le64  resp_addr;
6301         __le32  flags;
6302         #define CFA_EEM_QCAPS_REQ_FLAGS_PATH_TX               0x1UL
6303         #define CFA_EEM_QCAPS_REQ_FLAGS_PATH_RX               0x2UL
6304         #define CFA_EEM_QCAPS_REQ_FLAGS_PREFERRED_OFFLOAD     0x4UL
6305         __le32  unused_0;
6306 };
6307
6308 /* hwrm_cfa_eem_qcaps_output (size:256b/32B) */
6309 struct hwrm_cfa_eem_qcaps_output {
6310         __le16  error_code;
6311         __le16  req_type;
6312         __le16  seq_id;
6313         __le16  resp_len;
6314         __le32  flags;
6315         #define CFA_EEM_QCAPS_RESP_FLAGS_PATH_TX                                         0x1UL
6316         #define CFA_EEM_QCAPS_RESP_FLAGS_PATH_RX                                         0x2UL
6317         #define CFA_EEM_QCAPS_RESP_FLAGS_CENTRALIZED_MEMORY_MODEL_SUPPORTED              0x4UL
6318         #define CFA_EEM_QCAPS_RESP_FLAGS_DETACHED_CENTRALIZED_MEMORY_MODEL_SUPPORTED     0x8UL
6319         __le32  unused_0;
6320         __le32  supported;
6321         #define CFA_EEM_QCAPS_RESP_SUPPORTED_KEY0_TABLE                       0x1UL
6322         #define CFA_EEM_QCAPS_RESP_SUPPORTED_KEY1_TABLE                       0x2UL
6323         #define CFA_EEM_QCAPS_RESP_SUPPORTED_EXTERNAL_RECORD_TABLE            0x4UL
6324         #define CFA_EEM_QCAPS_RESP_SUPPORTED_EXTERNAL_FLOW_COUNTERS_TABLE     0x8UL
6325         __le32  max_entries_supported;
6326         __le16  key_entry_size;
6327         __le16  record_entry_size;
6328         __le16  efc_entry_size;
6329         u8      unused_1;
6330         u8      valid;
6331 };
6332
6333 /* hwrm_cfa_eem_cfg_input (size:320b/40B) */
6334 struct hwrm_cfa_eem_cfg_input {
6335         __le16  req_type;
6336         __le16  cmpl_ring;
6337         __le16  seq_id;
6338         __le16  target_id;
6339         __le64  resp_addr;
6340         __le32  flags;
6341         #define CFA_EEM_CFG_REQ_FLAGS_PATH_TX               0x1UL
6342         #define CFA_EEM_CFG_REQ_FLAGS_PATH_RX               0x2UL
6343         #define CFA_EEM_CFG_REQ_FLAGS_PREFERRED_OFFLOAD     0x4UL
6344         #define CFA_EEM_CFG_REQ_FLAGS_SECONDARY_PF          0x8UL
6345         __le16  group_id;
6346         __le16  unused_0;
6347         __le32  num_entries;
6348         __le32  unused_1;
6349         __le16  key0_ctx_id;
6350         __le16  key1_ctx_id;
6351         __le16  record_ctx_id;
6352         __le16  efc_ctx_id;
6353 };
6354
6355 /* hwrm_cfa_eem_cfg_output (size:128b/16B) */
6356 struct hwrm_cfa_eem_cfg_output {
6357         __le16  error_code;
6358         __le16  req_type;
6359         __le16  seq_id;
6360         __le16  resp_len;
6361         u8      unused_0[7];
6362         u8      valid;
6363 };
6364
6365 /* hwrm_cfa_eem_qcfg_input (size:192b/24B) */
6366 struct hwrm_cfa_eem_qcfg_input {
6367         __le16  req_type;
6368         __le16  cmpl_ring;
6369         __le16  seq_id;
6370         __le16  target_id;
6371         __le64  resp_addr;
6372         __le32  flags;
6373         #define CFA_EEM_QCFG_REQ_FLAGS_PATH_TX     0x1UL
6374         #define CFA_EEM_QCFG_REQ_FLAGS_PATH_RX     0x2UL
6375         __le32  unused_0;
6376 };
6377
6378 /* hwrm_cfa_eem_qcfg_output (size:192b/24B) */
6379 struct hwrm_cfa_eem_qcfg_output {
6380         __le16  error_code;
6381         __le16  req_type;
6382         __le16  seq_id;
6383         __le16  resp_len;
6384         __le32  flags;
6385         #define CFA_EEM_QCFG_RESP_FLAGS_PATH_TX               0x1UL
6386         #define CFA_EEM_QCFG_RESP_FLAGS_PATH_RX               0x2UL
6387         #define CFA_EEM_QCFG_RESP_FLAGS_PREFERRED_OFFLOAD     0x4UL
6388         __le32  num_entries;
6389         u8      unused_0[7];
6390         u8      valid;
6391 };
6392
6393 /* hwrm_cfa_eem_op_input (size:192b/24B) */
6394 struct hwrm_cfa_eem_op_input {
6395         __le16  req_type;
6396         __le16  cmpl_ring;
6397         __le16  seq_id;
6398         __le16  target_id;
6399         __le64  resp_addr;
6400         __le32  flags;
6401         #define CFA_EEM_OP_REQ_FLAGS_PATH_TX     0x1UL
6402         #define CFA_EEM_OP_REQ_FLAGS_PATH_RX     0x2UL
6403         __le16  unused_0;
6404         __le16  op;
6405         #define CFA_EEM_OP_REQ_OP_RESERVED    0x0UL
6406         #define CFA_EEM_OP_REQ_OP_EEM_DISABLE 0x1UL
6407         #define CFA_EEM_OP_REQ_OP_EEM_ENABLE  0x2UL
6408         #define CFA_EEM_OP_REQ_OP_EEM_CLEANUP 0x3UL
6409         #define CFA_EEM_OP_REQ_OP_LAST       CFA_EEM_OP_REQ_OP_EEM_CLEANUP
6410 };
6411
6412 /* hwrm_cfa_eem_op_output (size:128b/16B) */
6413 struct hwrm_cfa_eem_op_output {
6414         __le16  error_code;
6415         __le16  req_type;
6416         __le16  seq_id;
6417         __le16  resp_len;
6418         u8      unused_0[7];
6419         u8      valid;
6420 };
6421
6422 /* hwrm_cfa_adv_flow_mgnt_qcaps_input (size:256b/32B) */
6423 struct hwrm_cfa_adv_flow_mgnt_qcaps_input {
6424         __le16  req_type;
6425         __le16  cmpl_ring;
6426         __le16  seq_id;
6427         __le16  target_id;
6428         __le64  resp_addr;
6429         __le32  unused_0[4];
6430 };
6431
6432 /* hwrm_cfa_adv_flow_mgnt_qcaps_output (size:128b/16B) */
6433 struct hwrm_cfa_adv_flow_mgnt_qcaps_output {
6434         __le16  error_code;
6435         __le16  req_type;
6436         __le16  seq_id;
6437         __le16  resp_len;
6438         __le32  flags;
6439         #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_HND_16BIT_SUPPORTED              0x1UL
6440         #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_HND_64BIT_SUPPORTED              0x2UL
6441         #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_BATCH_DELETE_SUPPORTED           0x4UL
6442         #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_RESET_ALL_SUPPORTED              0x8UL
6443         #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_DEST_FUNC_SUPPORTED       0x10UL
6444         #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_TX_EEM_FLOW_SUPPORTED                 0x20UL
6445         #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RX_EEM_FLOW_SUPPORTED                 0x40UL
6446         #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_COUNTER_ALLOC_SUPPORTED          0x80UL
6447         #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RFS_RING_TBL_IDX_SUPPORTED            0x100UL
6448         #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_UNTAGGED_VLAN_SUPPORTED               0x200UL
6449         #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_XDP_SUPPORTED                         0x400UL
6450         #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_L2_HEADER_SOURCE_FIELDS_SUPPORTED     0x800UL
6451         u8      unused_0[3];
6452         u8      valid;
6453 };
6454
6455 /* hwrm_tunnel_dst_port_query_input (size:192b/24B) */
6456 struct hwrm_tunnel_dst_port_query_input {
6457         __le16  req_type;
6458         __le16  cmpl_ring;
6459         __le16  seq_id;
6460         __le16  target_id;
6461         __le64  resp_addr;
6462         u8      tunnel_type;
6463         #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN        0x1UL
6464         #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_GENEVE       0x5UL
6465         #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_V4     0x9UL
6466         #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_IPGRE_V1     0xaUL
6467         #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_L2_ETYPE     0xbUL
6468         #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
6469         #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_LAST        TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_GPE_V6
6470         u8      unused_0[7];
6471 };
6472
6473 /* hwrm_tunnel_dst_port_query_output (size:128b/16B) */
6474 struct hwrm_tunnel_dst_port_query_output {
6475         __le16  error_code;
6476         __le16  req_type;
6477         __le16  seq_id;
6478         __le16  resp_len;
6479         __le16  tunnel_dst_port_id;
6480         __be16  tunnel_dst_port_val;
6481         u8      unused_0[3];
6482         u8      valid;
6483 };
6484
6485 /* hwrm_tunnel_dst_port_alloc_input (size:192b/24B) */
6486 struct hwrm_tunnel_dst_port_alloc_input {
6487         __le16  req_type;
6488         __le16  cmpl_ring;
6489         __le16  seq_id;
6490         __le16  target_id;
6491         __le64  resp_addr;
6492         u8      tunnel_type;
6493         #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN        0x1UL
6494         #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_GENEVE       0x5UL
6495         #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4     0x9UL
6496         #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1     0xaUL
6497         #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE     0xbUL
6498         #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
6499         #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_LAST        TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6
6500         u8      unused_0;
6501         __be16  tunnel_dst_port_val;
6502         u8      unused_1[4];
6503 };
6504
6505 /* hwrm_tunnel_dst_port_alloc_output (size:128b/16B) */
6506 struct hwrm_tunnel_dst_port_alloc_output {
6507         __le16  error_code;
6508         __le16  req_type;
6509         __le16  seq_id;
6510         __le16  resp_len;
6511         __le16  tunnel_dst_port_id;
6512         u8      unused_0[5];
6513         u8      valid;
6514 };
6515
6516 /* hwrm_tunnel_dst_port_free_input (size:192b/24B) */
6517 struct hwrm_tunnel_dst_port_free_input {
6518         __le16  req_type;
6519         __le16  cmpl_ring;
6520         __le16  seq_id;
6521         __le16  target_id;
6522         __le64  resp_addr;
6523         u8      tunnel_type;
6524         #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN        0x1UL
6525         #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_GENEVE       0x5UL
6526         #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_V4     0x9UL
6527         #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_IPGRE_V1     0xaUL
6528         #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_L2_ETYPE     0xbUL
6529         #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
6530         #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_LAST        TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_GPE_V6
6531         u8      unused_0;
6532         __le16  tunnel_dst_port_id;
6533         u8      unused_1[4];
6534 };
6535
6536 /* hwrm_tunnel_dst_port_free_output (size:128b/16B) */
6537 struct hwrm_tunnel_dst_port_free_output {
6538         __le16  error_code;
6539         __le16  req_type;
6540         __le16  seq_id;
6541         __le16  resp_len;
6542         u8      unused_1[7];
6543         u8      valid;
6544 };
6545
6546 /* ctx_hw_stats (size:1280b/160B) */
6547 struct ctx_hw_stats {
6548         __le64  rx_ucast_pkts;
6549         __le64  rx_mcast_pkts;
6550         __le64  rx_bcast_pkts;
6551         __le64  rx_discard_pkts;
6552         __le64  rx_drop_pkts;
6553         __le64  rx_ucast_bytes;
6554         __le64  rx_mcast_bytes;
6555         __le64  rx_bcast_bytes;
6556         __le64  tx_ucast_pkts;
6557         __le64  tx_mcast_pkts;
6558         __le64  tx_bcast_pkts;
6559         __le64  tx_discard_pkts;
6560         __le64  tx_drop_pkts;
6561         __le64  tx_ucast_bytes;
6562         __le64  tx_mcast_bytes;
6563         __le64  tx_bcast_bytes;
6564         __le64  tpa_pkts;
6565         __le64  tpa_bytes;
6566         __le64  tpa_events;
6567         __le64  tpa_aborts;
6568 };
6569
6570 /* hwrm_stat_ctx_alloc_input (size:256b/32B) */
6571 struct hwrm_stat_ctx_alloc_input {
6572         __le16  req_type;
6573         __le16  cmpl_ring;
6574         __le16  seq_id;
6575         __le16  target_id;
6576         __le64  resp_addr;
6577         __le64  stats_dma_addr;
6578         __le32  update_period_ms;
6579         u8      stat_ctx_flags;
6580         #define STAT_CTX_ALLOC_REQ_STAT_CTX_FLAGS_ROCE     0x1UL
6581         u8      unused_0[3];
6582 };
6583
6584 /* hwrm_stat_ctx_alloc_output (size:128b/16B) */
6585 struct hwrm_stat_ctx_alloc_output {
6586         __le16  error_code;
6587         __le16  req_type;
6588         __le16  seq_id;
6589         __le16  resp_len;
6590         __le32  stat_ctx_id;
6591         u8      unused_0[3];
6592         u8      valid;
6593 };
6594
6595 /* hwrm_stat_ctx_free_input (size:192b/24B) */
6596 struct hwrm_stat_ctx_free_input {
6597         __le16  req_type;
6598         __le16  cmpl_ring;
6599         __le16  seq_id;
6600         __le16  target_id;
6601         __le64  resp_addr;
6602         __le32  stat_ctx_id;
6603         u8      unused_0[4];
6604 };
6605
6606 /* hwrm_stat_ctx_free_output (size:128b/16B) */
6607 struct hwrm_stat_ctx_free_output {
6608         __le16  error_code;
6609         __le16  req_type;
6610         __le16  seq_id;
6611         __le16  resp_len;
6612         __le32  stat_ctx_id;
6613         u8      unused_0[3];
6614         u8      valid;
6615 };
6616
6617 /* hwrm_stat_ctx_query_input (size:192b/24B) */
6618 struct hwrm_stat_ctx_query_input {
6619         __le16  req_type;
6620         __le16  cmpl_ring;
6621         __le16  seq_id;
6622         __le16  target_id;
6623         __le64  resp_addr;
6624         __le32  stat_ctx_id;
6625         u8      unused_0[4];
6626 };
6627
6628 /* hwrm_stat_ctx_query_output (size:1408b/176B) */
6629 struct hwrm_stat_ctx_query_output {
6630         __le16  error_code;
6631         __le16  req_type;
6632         __le16  seq_id;
6633         __le16  resp_len;
6634         __le64  tx_ucast_pkts;
6635         __le64  tx_mcast_pkts;
6636         __le64  tx_bcast_pkts;
6637         __le64  tx_err_pkts;
6638         __le64  tx_drop_pkts;
6639         __le64  tx_ucast_bytes;
6640         __le64  tx_mcast_bytes;
6641         __le64  tx_bcast_bytes;
6642         __le64  rx_ucast_pkts;
6643         __le64  rx_mcast_pkts;
6644         __le64  rx_bcast_pkts;
6645         __le64  rx_err_pkts;
6646         __le64  rx_drop_pkts;
6647         __le64  rx_ucast_bytes;
6648         __le64  rx_mcast_bytes;
6649         __le64  rx_bcast_bytes;
6650         __le64  rx_agg_pkts;
6651         __le64  rx_agg_bytes;
6652         __le64  rx_agg_events;
6653         __le64  rx_agg_aborts;
6654         u8      unused_0[7];
6655         u8      valid;
6656 };
6657
6658 /* hwrm_stat_ctx_clr_stats_input (size:192b/24B) */
6659 struct hwrm_stat_ctx_clr_stats_input {
6660         __le16  req_type;
6661         __le16  cmpl_ring;
6662         __le16  seq_id;
6663         __le16  target_id;
6664         __le64  resp_addr;
6665         __le32  stat_ctx_id;
6666         u8      unused_0[4];
6667 };
6668
6669 /* hwrm_stat_ctx_clr_stats_output (size:128b/16B) */
6670 struct hwrm_stat_ctx_clr_stats_output {
6671         __le16  error_code;
6672         __le16  req_type;
6673         __le16  seq_id;
6674         __le16  resp_len;
6675         u8      unused_0[7];
6676         u8      valid;
6677 };
6678
6679 /* hwrm_pcie_qstats_input (size:256b/32B) */
6680 struct hwrm_pcie_qstats_input {
6681         __le16  req_type;
6682         __le16  cmpl_ring;
6683         __le16  seq_id;
6684         __le16  target_id;
6685         __le64  resp_addr;
6686         __le16  pcie_stat_size;
6687         u8      unused_0[6];
6688         __le64  pcie_stat_host_addr;
6689 };
6690
6691 /* hwrm_pcie_qstats_output (size:128b/16B) */
6692 struct hwrm_pcie_qstats_output {
6693         __le16  error_code;
6694         __le16  req_type;
6695         __le16  seq_id;
6696         __le16  resp_len;
6697         __le16  pcie_stat_size;
6698         u8      unused_0[5];
6699         u8      valid;
6700 };
6701
6702 /* pcie_ctx_hw_stats (size:768b/96B) */
6703 struct pcie_ctx_hw_stats {
6704         __le64  pcie_pl_signal_integrity;
6705         __le64  pcie_dl_signal_integrity;
6706         __le64  pcie_tl_signal_integrity;
6707         __le64  pcie_link_integrity;
6708         __le64  pcie_tx_traffic_rate;
6709         __le64  pcie_rx_traffic_rate;
6710         __le64  pcie_tx_dllp_statistics;
6711         __le64  pcie_rx_dllp_statistics;
6712         __le64  pcie_equalization_time;
6713         __le32  pcie_ltssm_histogram[4];
6714         __le64  pcie_recovery_histogram;
6715 };
6716
6717 /* hwrm_fw_reset_input (size:192b/24B) */
6718 struct hwrm_fw_reset_input {
6719         __le16  req_type;
6720         __le16  cmpl_ring;
6721         __le16  seq_id;
6722         __le16  target_id;
6723         __le64  resp_addr;
6724         u8      embedded_proc_type;
6725         #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_BOOT                 0x0UL
6726         #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_MGMT                 0x1UL
6727         #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_NETCTRL              0x2UL
6728         #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_ROCE                 0x3UL
6729         #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST                 0x4UL
6730         #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_AP                   0x5UL
6731         #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_CHIP                 0x6UL
6732         #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST_RESOURCE_REINIT 0x7UL
6733         #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_LAST                FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST_RESOURCE_REINIT
6734         u8      selfrst_status;
6735         #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTNONE      0x0UL
6736         #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTASAP      0x1UL
6737         #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTPCIERST   0x2UL
6738         #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTIMMEDIATE 0x3UL
6739         #define FW_RESET_REQ_SELFRST_STATUS_LAST            FW_RESET_REQ_SELFRST_STATUS_SELFRSTIMMEDIATE
6740         u8      host_idx;
6741         u8      flags;
6742         #define FW_RESET_REQ_FLAGS_RESET_GRACEFUL     0x1UL
6743         u8      unused_0[4];
6744 };
6745
6746 /* hwrm_fw_reset_output (size:128b/16B) */
6747 struct hwrm_fw_reset_output {
6748         __le16  error_code;
6749         __le16  req_type;
6750         __le16  seq_id;
6751         __le16  resp_len;
6752         u8      selfrst_status;
6753         #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTNONE      0x0UL
6754         #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTASAP      0x1UL
6755         #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTPCIERST   0x2UL
6756         #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTIMMEDIATE 0x3UL
6757         #define FW_RESET_RESP_SELFRST_STATUS_LAST            FW_RESET_RESP_SELFRST_STATUS_SELFRSTIMMEDIATE
6758         u8      unused_0[6];
6759         u8      valid;
6760 };
6761
6762 /* hwrm_fw_qstatus_input (size:192b/24B) */
6763 struct hwrm_fw_qstatus_input {
6764         __le16  req_type;
6765         __le16  cmpl_ring;
6766         __le16  seq_id;
6767         __le16  target_id;
6768         __le64  resp_addr;
6769         u8      embedded_proc_type;
6770         #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_BOOT    0x0UL
6771         #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_MGMT    0x1UL
6772         #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_NETCTRL 0x2UL
6773         #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_ROCE    0x3UL
6774         #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_HOST    0x4UL
6775         #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_AP      0x5UL
6776         #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_CHIP    0x6UL
6777         #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_LAST   FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_CHIP
6778         u8      unused_0[7];
6779 };
6780
6781 /* hwrm_fw_qstatus_output (size:128b/16B) */
6782 struct hwrm_fw_qstatus_output {
6783         __le16  error_code;
6784         __le16  req_type;
6785         __le16  seq_id;
6786         __le16  resp_len;
6787         u8      selfrst_status;
6788         #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTNONE    0x0UL
6789         #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTASAP    0x1UL
6790         #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPCIERST 0x2UL
6791         #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPOWER   0x3UL
6792         #define FW_QSTATUS_RESP_SELFRST_STATUS_LAST          FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPOWER
6793         u8      unused_0[6];
6794         u8      valid;
6795 };
6796
6797 /* hwrm_fw_set_time_input (size:256b/32B) */
6798 struct hwrm_fw_set_time_input {
6799         __le16  req_type;
6800         __le16  cmpl_ring;
6801         __le16  seq_id;
6802         __le16  target_id;
6803         __le64  resp_addr;
6804         __le16  year;
6805         #define FW_SET_TIME_REQ_YEAR_UNKNOWN 0x0UL
6806         #define FW_SET_TIME_REQ_YEAR_LAST   FW_SET_TIME_REQ_YEAR_UNKNOWN
6807         u8      month;
6808         u8      day;
6809         u8      hour;
6810         u8      minute;
6811         u8      second;
6812         u8      unused_0;
6813         __le16  millisecond;
6814         __le16  zone;
6815         #define FW_SET_TIME_REQ_ZONE_UTC     0
6816         #define FW_SET_TIME_REQ_ZONE_UNKNOWN 65535
6817         #define FW_SET_TIME_REQ_ZONE_LAST   FW_SET_TIME_REQ_ZONE_UNKNOWN
6818         u8      unused_1[4];
6819 };
6820
6821 /* hwrm_fw_set_time_output (size:128b/16B) */
6822 struct hwrm_fw_set_time_output {
6823         __le16  error_code;
6824         __le16  req_type;
6825         __le16  seq_id;
6826         __le16  resp_len;
6827         u8      unused_0[7];
6828         u8      valid;
6829 };
6830
6831 /* hwrm_struct_hdr (size:128b/16B) */
6832 struct hwrm_struct_hdr {
6833         __le16  struct_id;
6834         #define STRUCT_HDR_STRUCT_ID_LLDP_CFG           0x41bUL
6835         #define STRUCT_HDR_STRUCT_ID_DCBX_ETS           0x41dUL
6836         #define STRUCT_HDR_STRUCT_ID_DCBX_PFC           0x41fUL
6837         #define STRUCT_HDR_STRUCT_ID_DCBX_APP           0x421UL
6838         #define STRUCT_HDR_STRUCT_ID_DCBX_FEATURE_STATE 0x422UL
6839         #define STRUCT_HDR_STRUCT_ID_LLDP_GENERIC       0x424UL
6840         #define STRUCT_HDR_STRUCT_ID_LLDP_DEVICE        0x426UL
6841         #define STRUCT_HDR_STRUCT_ID_POWER_BKUP         0x427UL
6842         #define STRUCT_HDR_STRUCT_ID_AFM_OPAQUE         0x1UL
6843         #define STRUCT_HDR_STRUCT_ID_PORT_DESCRIPTION   0xaUL
6844         #define STRUCT_HDR_STRUCT_ID_RSS_V2             0x64UL
6845         #define STRUCT_HDR_STRUCT_ID_LAST              STRUCT_HDR_STRUCT_ID_RSS_V2
6846         __le16  len;
6847         u8      version;
6848         u8      count;
6849         __le16  subtype;
6850         __le16  next_offset;
6851         #define STRUCT_HDR_NEXT_OFFSET_LAST 0x0UL
6852         u8      unused_0[6];
6853 };
6854
6855 /* hwrm_struct_data_dcbx_app (size:64b/8B) */
6856 struct hwrm_struct_data_dcbx_app {
6857         __be16  protocol_id;
6858         u8      protocol_selector;
6859         #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_ETHER_TYPE   0x1UL
6860         #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_PORT     0x2UL
6861         #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_UDP_PORT     0x3UL
6862         #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_UDP_PORT 0x4UL
6863         #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_LAST        STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_UDP_PORT
6864         u8      priority;
6865         u8      valid;
6866         u8      unused_0[3];
6867 };
6868
6869 /* hwrm_fw_set_structured_data_input (size:256b/32B) */
6870 struct hwrm_fw_set_structured_data_input {
6871         __le16  req_type;
6872         __le16  cmpl_ring;
6873         __le16  seq_id;
6874         __le16  target_id;
6875         __le64  resp_addr;
6876         __le64  src_data_addr;
6877         __le16  data_len;
6878         u8      hdr_cnt;
6879         u8      unused_0[5];
6880 };
6881
6882 /* hwrm_fw_set_structured_data_output (size:128b/16B) */
6883 struct hwrm_fw_set_structured_data_output {
6884         __le16  error_code;
6885         __le16  req_type;
6886         __le16  seq_id;
6887         __le16  resp_len;
6888         u8      unused_0[7];
6889         u8      valid;
6890 };
6891
6892 /* hwrm_fw_set_structured_data_cmd_err (size:64b/8B) */
6893 struct hwrm_fw_set_structured_data_cmd_err {
6894         u8      code;
6895         #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_UNKNOWN     0x0UL
6896         #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_HDR_CNT 0x1UL
6897         #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_FMT     0x2UL
6898         #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID      0x3UL
6899         #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_LAST       FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID
6900         u8      unused_0[7];
6901 };
6902
6903 /* hwrm_fw_get_structured_data_input (size:256b/32B) */
6904 struct hwrm_fw_get_structured_data_input {
6905         __le16  req_type;
6906         __le16  cmpl_ring;
6907         __le16  seq_id;
6908         __le16  target_id;
6909         __le64  resp_addr;
6910         __le64  dest_data_addr;
6911         __le16  data_len;
6912         __le16  structure_id;
6913         __le16  subtype;
6914         #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_UNUSED                  0x0UL
6915         #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_ALL                     0xffffUL
6916         #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_ADMIN       0x100UL
6917         #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_PEER        0x101UL
6918         #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_OPERATIONAL 0x102UL
6919         #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_ADMIN          0x200UL
6920         #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_PEER           0x201UL
6921         #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_OPERATIONAL    0x202UL
6922         #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_HOST_OPERATIONAL        0x300UL
6923         #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_LAST                   FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_HOST_OPERATIONAL
6924         u8      count;
6925         u8      unused_0;
6926 };
6927
6928 /* hwrm_fw_get_structured_data_output (size:128b/16B) */
6929 struct hwrm_fw_get_structured_data_output {
6930         __le16  error_code;
6931         __le16  req_type;
6932         __le16  seq_id;
6933         __le16  resp_len;
6934         u8      hdr_cnt;
6935         u8      unused_0[6];
6936         u8      valid;
6937 };
6938
6939 /* hwrm_fw_get_structured_data_cmd_err (size:64b/8B) */
6940 struct hwrm_fw_get_structured_data_cmd_err {
6941         u8      code;
6942         #define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_UNKNOWN 0x0UL
6943         #define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID  0x3UL
6944         #define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_LAST   FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID
6945         u8      unused_0[7];
6946 };
6947
6948 /* hwrm_exec_fwd_resp_input (size:1024b/128B) */
6949 struct hwrm_exec_fwd_resp_input {
6950         __le16  req_type;
6951         __le16  cmpl_ring;
6952         __le16  seq_id;
6953         __le16  target_id;
6954         __le64  resp_addr;
6955         __le32  encap_request[26];
6956         __le16  encap_resp_target_id;
6957         u8      unused_0[6];
6958 };
6959
6960 /* hwrm_exec_fwd_resp_output (size:128b/16B) */
6961 struct hwrm_exec_fwd_resp_output {
6962         __le16  error_code;
6963         __le16  req_type;
6964         __le16  seq_id;
6965         __le16  resp_len;
6966         u8      unused_0[7];
6967         u8      valid;
6968 };
6969
6970 /* hwrm_reject_fwd_resp_input (size:1024b/128B) */
6971 struct hwrm_reject_fwd_resp_input {
6972         __le16  req_type;
6973         __le16  cmpl_ring;
6974         __le16  seq_id;
6975         __le16  target_id;
6976         __le64  resp_addr;
6977         __le32  encap_request[26];
6978         __le16  encap_resp_target_id;
6979         u8      unused_0[6];
6980 };
6981
6982 /* hwrm_reject_fwd_resp_output (size:128b/16B) */
6983 struct hwrm_reject_fwd_resp_output {
6984         __le16  error_code;
6985         __le16  req_type;
6986         __le16  seq_id;
6987         __le16  resp_len;
6988         u8      unused_0[7];
6989         u8      valid;
6990 };
6991
6992 /* hwrm_fwd_resp_input (size:1024b/128B) */
6993 struct hwrm_fwd_resp_input {
6994         __le16  req_type;
6995         __le16  cmpl_ring;
6996         __le16  seq_id;
6997         __le16  target_id;
6998         __le64  resp_addr;
6999         __le16  encap_resp_target_id;
7000         __le16  encap_resp_cmpl_ring;
7001         __le16  encap_resp_len;
7002         u8      unused_0;
7003         u8      unused_1;
7004         __le64  encap_resp_addr;
7005         __le32  encap_resp[24];
7006 };
7007
7008 /* hwrm_fwd_resp_output (size:128b/16B) */
7009 struct hwrm_fwd_resp_output {
7010         __le16  error_code;
7011         __le16  req_type;
7012         __le16  seq_id;
7013         __le16  resp_len;
7014         u8      unused_0[7];
7015         u8      valid;
7016 };
7017
7018 /* hwrm_fwd_async_event_cmpl_input (size:320b/40B) */
7019 struct hwrm_fwd_async_event_cmpl_input {
7020         __le16  req_type;
7021         __le16  cmpl_ring;
7022         __le16  seq_id;
7023         __le16  target_id;
7024         __le64  resp_addr;
7025         __le16  encap_async_event_target_id;
7026         u8      unused_0[6];
7027         __le32  encap_async_event_cmpl[4];
7028 };
7029
7030 /* hwrm_fwd_async_event_cmpl_output (size:128b/16B) */
7031 struct hwrm_fwd_async_event_cmpl_output {
7032         __le16  error_code;
7033         __le16  req_type;
7034         __le16  seq_id;
7035         __le16  resp_len;
7036         u8      unused_0[7];
7037         u8      valid;
7038 };
7039
7040 /* hwrm_temp_monitor_query_input (size:128b/16B) */
7041 struct hwrm_temp_monitor_query_input {
7042         __le16  req_type;
7043         __le16  cmpl_ring;
7044         __le16  seq_id;
7045         __le16  target_id;
7046         __le64  resp_addr;
7047 };
7048
7049 /* hwrm_temp_monitor_query_output (size:128b/16B) */
7050 struct hwrm_temp_monitor_query_output {
7051         __le16  error_code;
7052         __le16  req_type;
7053         __le16  seq_id;
7054         __le16  resp_len;
7055         u8      temp;
7056         u8      unused_0[6];
7057         u8      valid;
7058 };
7059
7060 /* hwrm_wol_filter_alloc_input (size:512b/64B) */
7061 struct hwrm_wol_filter_alloc_input {
7062         __le16  req_type;
7063         __le16  cmpl_ring;
7064         __le16  seq_id;
7065         __le16  target_id;
7066         __le64  resp_addr;
7067         __le32  flags;
7068         __le32  enables;
7069         #define WOL_FILTER_ALLOC_REQ_ENABLES_MAC_ADDRESS           0x1UL
7070         #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_OFFSET        0x2UL
7071         #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_BUF_SIZE      0x4UL
7072         #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_BUF_ADDR      0x8UL
7073         #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_MASK_ADDR     0x10UL
7074         #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_MASK_SIZE     0x20UL
7075         __le16  port_id;
7076         u8      wol_type;
7077         #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_MAGICPKT 0x0UL
7078         #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_BMP      0x1UL
7079         #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_INVALID  0xffUL
7080         #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_LAST    WOL_FILTER_ALLOC_REQ_WOL_TYPE_INVALID
7081         u8      unused_0[5];
7082         u8      mac_address[6];
7083         __le16  pattern_offset;
7084         __le16  pattern_buf_size;
7085         __le16  pattern_mask_size;
7086         u8      unused_1[4];
7087         __le64  pattern_buf_addr;
7088         __le64  pattern_mask_addr;
7089 };
7090
7091 /* hwrm_wol_filter_alloc_output (size:128b/16B) */
7092 struct hwrm_wol_filter_alloc_output {
7093         __le16  error_code;
7094         __le16  req_type;
7095         __le16  seq_id;
7096         __le16  resp_len;
7097         u8      wol_filter_id;
7098         u8      unused_0[6];
7099         u8      valid;
7100 };
7101
7102 /* hwrm_wol_filter_free_input (size:256b/32B) */
7103 struct hwrm_wol_filter_free_input {
7104         __le16  req_type;
7105         __le16  cmpl_ring;
7106         __le16  seq_id;
7107         __le16  target_id;
7108         __le64  resp_addr;
7109         __le32  flags;
7110         #define WOL_FILTER_FREE_REQ_FLAGS_FREE_ALL_WOL_FILTERS     0x1UL
7111         __le32  enables;
7112         #define WOL_FILTER_FREE_REQ_ENABLES_WOL_FILTER_ID     0x1UL
7113         __le16  port_id;
7114         u8      wol_filter_id;
7115         u8      unused_0[5];
7116 };
7117
7118 /* hwrm_wol_filter_free_output (size:128b/16B) */
7119 struct hwrm_wol_filter_free_output {
7120         __le16  error_code;
7121         __le16  req_type;
7122         __le16  seq_id;
7123         __le16  resp_len;
7124         u8      unused_0[7];
7125         u8      valid;
7126 };
7127
7128 /* hwrm_wol_filter_qcfg_input (size:448b/56B) */
7129 struct hwrm_wol_filter_qcfg_input {
7130         __le16  req_type;
7131         __le16  cmpl_ring;
7132         __le16  seq_id;
7133         __le16  target_id;
7134         __le64  resp_addr;
7135         __le16  port_id;
7136         __le16  handle;
7137         u8      unused_0[4];
7138         __le64  pattern_buf_addr;
7139         __le16  pattern_buf_size;
7140         u8      unused_1[6];
7141         __le64  pattern_mask_addr;
7142         __le16  pattern_mask_size;
7143         u8      unused_2[6];
7144 };
7145
7146 /* hwrm_wol_filter_qcfg_output (size:256b/32B) */
7147 struct hwrm_wol_filter_qcfg_output {
7148         __le16  error_code;
7149         __le16  req_type;
7150         __le16  seq_id;
7151         __le16  resp_len;
7152         __le16  next_handle;
7153         u8      wol_filter_id;
7154         u8      wol_type;
7155         #define WOL_FILTER_QCFG_RESP_WOL_TYPE_MAGICPKT 0x0UL
7156         #define WOL_FILTER_QCFG_RESP_WOL_TYPE_BMP      0x1UL
7157         #define WOL_FILTER_QCFG_RESP_WOL_TYPE_INVALID  0xffUL
7158         #define WOL_FILTER_QCFG_RESP_WOL_TYPE_LAST    WOL_FILTER_QCFG_RESP_WOL_TYPE_INVALID
7159         __le32  unused_0;
7160         u8      mac_address[6];
7161         __le16  pattern_offset;
7162         __le16  pattern_size;
7163         __le16  pattern_mask_size;
7164         u8      unused_1[3];
7165         u8      valid;
7166 };
7167
7168 /* hwrm_wol_reason_qcfg_input (size:320b/40B) */
7169 struct hwrm_wol_reason_qcfg_input {
7170         __le16  req_type;
7171         __le16  cmpl_ring;
7172         __le16  seq_id;
7173         __le16  target_id;
7174         __le64  resp_addr;
7175         __le16  port_id;
7176         u8      unused_0[6];
7177         __le64  wol_pkt_buf_addr;
7178         __le16  wol_pkt_buf_size;
7179         u8      unused_1[6];
7180 };
7181
7182 /* hwrm_wol_reason_qcfg_output (size:128b/16B) */
7183 struct hwrm_wol_reason_qcfg_output {
7184         __le16  error_code;
7185         __le16  req_type;
7186         __le16  seq_id;
7187         __le16  resp_len;
7188         u8      wol_filter_id;
7189         u8      wol_reason;
7190         #define WOL_REASON_QCFG_RESP_WOL_REASON_MAGICPKT 0x0UL
7191         #define WOL_REASON_QCFG_RESP_WOL_REASON_BMP      0x1UL
7192         #define WOL_REASON_QCFG_RESP_WOL_REASON_INVALID  0xffUL
7193         #define WOL_REASON_QCFG_RESP_WOL_REASON_LAST    WOL_REASON_QCFG_RESP_WOL_REASON_INVALID
7194         u8      wol_pkt_len;
7195         u8      unused_0[4];
7196         u8      valid;
7197 };
7198
7199 /* coredump_segment_record (size:128b/16B) */
7200 struct coredump_segment_record {
7201         __le16  component_id;
7202         __le16  segment_id;
7203         __le16  max_instances;
7204         u8      version_hi;
7205         u8      version_low;
7206         u8      seg_flags;
7207         u8      unused_0[7];
7208 };
7209
7210 /* hwrm_dbg_coredump_list_input (size:256b/32B) */
7211 struct hwrm_dbg_coredump_list_input {
7212         __le16  req_type;
7213         __le16  cmpl_ring;
7214         __le16  seq_id;
7215         __le16  target_id;
7216         __le64  resp_addr;
7217         __le64  host_dest_addr;
7218         __le32  host_buf_len;
7219         __le16  seq_no;
7220         u8      flags;
7221         #define DBG_COREDUMP_LIST_REQ_FLAGS_CRASHDUMP     0x1UL
7222         u8      unused_0[1];
7223 };
7224
7225 /* hwrm_dbg_coredump_list_output (size:128b/16B) */
7226 struct hwrm_dbg_coredump_list_output {
7227         __le16  error_code;
7228         __le16  req_type;
7229         __le16  seq_id;
7230         __le16  resp_len;
7231         u8      flags;
7232         #define DBG_COREDUMP_LIST_RESP_FLAGS_MORE     0x1UL
7233         u8      unused_0;
7234         __le16  total_segments;
7235         __le16  data_len;
7236         u8      unused_1;
7237         u8      valid;
7238 };
7239
7240 /* hwrm_dbg_coredump_initiate_input (size:256b/32B) */
7241 struct hwrm_dbg_coredump_initiate_input {
7242         __le16  req_type;
7243         __le16  cmpl_ring;
7244         __le16  seq_id;
7245         __le16  target_id;
7246         __le64  resp_addr;
7247         __le16  component_id;
7248         __le16  segment_id;
7249         __le16  instance;
7250         __le16  unused_0;
7251         u8      seg_flags;
7252         u8      unused_1[7];
7253 };
7254
7255 /* hwrm_dbg_coredump_initiate_output (size:128b/16B) */
7256 struct hwrm_dbg_coredump_initiate_output {
7257         __le16  error_code;
7258         __le16  req_type;
7259         __le16  seq_id;
7260         __le16  resp_len;
7261         u8      unused_0[7];
7262         u8      valid;
7263 };
7264
7265 /* coredump_data_hdr (size:128b/16B) */
7266 struct coredump_data_hdr {
7267         __le32  address;
7268         __le32  flags_length;
7269         __le32  instance;
7270         __le32  next_offset;
7271 };
7272
7273 /* hwrm_dbg_coredump_retrieve_input (size:448b/56B) */
7274 struct hwrm_dbg_coredump_retrieve_input {
7275         __le16  req_type;
7276         __le16  cmpl_ring;
7277         __le16  seq_id;
7278         __le16  target_id;
7279         __le64  resp_addr;
7280         __le64  host_dest_addr;
7281         __le32  host_buf_len;
7282         __le32  unused_0;
7283         __le16  component_id;
7284         __le16  segment_id;
7285         __le16  instance;
7286         __le16  unused_1;
7287         u8      seg_flags;
7288         u8      unused_2;
7289         __le16  unused_3;
7290         __le32  unused_4;
7291         __le32  seq_no;
7292         __le32  unused_5;
7293 };
7294
7295 /* hwrm_dbg_coredump_retrieve_output (size:128b/16B) */
7296 struct hwrm_dbg_coredump_retrieve_output {
7297         __le16  error_code;
7298         __le16  req_type;
7299         __le16  seq_id;
7300         __le16  resp_len;
7301         u8      flags;
7302         #define DBG_COREDUMP_RETRIEVE_RESP_FLAGS_MORE     0x1UL
7303         u8      unused_0;
7304         __le16  data_len;
7305         u8      unused_1[3];
7306         u8      valid;
7307 };
7308
7309 /* hwrm_dbg_ring_info_get_input (size:192b/24B) */
7310 struct hwrm_dbg_ring_info_get_input {
7311         __le16  req_type;
7312         __le16  cmpl_ring;
7313         __le16  seq_id;
7314         __le16  target_id;
7315         __le64  resp_addr;
7316         u8      ring_type;
7317         #define DBG_RING_INFO_GET_REQ_RING_TYPE_L2_CMPL 0x0UL
7318         #define DBG_RING_INFO_GET_REQ_RING_TYPE_TX      0x1UL
7319         #define DBG_RING_INFO_GET_REQ_RING_TYPE_RX      0x2UL
7320         #define DBG_RING_INFO_GET_REQ_RING_TYPE_LAST   DBG_RING_INFO_GET_REQ_RING_TYPE_RX
7321         u8      unused_0[3];
7322         __le32  fw_ring_id;
7323 };
7324
7325 /* hwrm_dbg_ring_info_get_output (size:192b/24B) */
7326 struct hwrm_dbg_ring_info_get_output {
7327         __le16  error_code;
7328         __le16  req_type;
7329         __le16  seq_id;
7330         __le16  resp_len;
7331         __le32  producer_index;
7332         __le32  consumer_index;
7333         u8      unused_0[7];
7334         u8      valid;
7335 };
7336
7337 /* hwrm_nvm_read_input (size:320b/40B) */
7338 struct hwrm_nvm_read_input {
7339         __le16  req_type;
7340         __le16  cmpl_ring;
7341         __le16  seq_id;
7342         __le16  target_id;
7343         __le64  resp_addr;
7344         __le64  host_dest_addr;
7345         __le16  dir_idx;
7346         u8      unused_0[2];
7347         __le32  offset;
7348         __le32  len;
7349         u8      unused_1[4];
7350 };
7351
7352 /* hwrm_nvm_read_output (size:128b/16B) */
7353 struct hwrm_nvm_read_output {
7354         __le16  error_code;
7355         __le16  req_type;
7356         __le16  seq_id;
7357         __le16  resp_len;
7358         u8      unused_0[7];
7359         u8      valid;
7360 };
7361
7362 /* hwrm_nvm_get_dir_entries_input (size:192b/24B) */
7363 struct hwrm_nvm_get_dir_entries_input {
7364         __le16  req_type;
7365         __le16  cmpl_ring;
7366         __le16  seq_id;
7367         __le16  target_id;
7368         __le64  resp_addr;
7369         __le64  host_dest_addr;
7370 };
7371
7372 /* hwrm_nvm_get_dir_entries_output (size:128b/16B) */
7373 struct hwrm_nvm_get_dir_entries_output {
7374         __le16  error_code;
7375         __le16  req_type;
7376         __le16  seq_id;
7377         __le16  resp_len;
7378         u8      unused_0[7];
7379         u8      valid;
7380 };
7381
7382 /* hwrm_nvm_get_dir_info_input (size:128b/16B) */
7383 struct hwrm_nvm_get_dir_info_input {
7384         __le16  req_type;
7385         __le16  cmpl_ring;
7386         __le16  seq_id;
7387         __le16  target_id;
7388         __le64  resp_addr;
7389 };
7390
7391 /* hwrm_nvm_get_dir_info_output (size:192b/24B) */
7392 struct hwrm_nvm_get_dir_info_output {
7393         __le16  error_code;
7394         __le16  req_type;
7395         __le16  seq_id;
7396         __le16  resp_len;
7397         __le32  entries;
7398         __le32  entry_length;
7399         u8      unused_0[7];
7400         u8      valid;
7401 };
7402
7403 /* hwrm_nvm_write_input (size:384b/48B) */
7404 struct hwrm_nvm_write_input {
7405         __le16  req_type;
7406         __le16  cmpl_ring;
7407         __le16  seq_id;
7408         __le16  target_id;
7409         __le64  resp_addr;
7410         __le64  host_src_addr;
7411         __le16  dir_type;
7412         __le16  dir_ordinal;
7413         __le16  dir_ext;
7414         __le16  dir_attr;
7415         __le32  dir_data_length;
7416         __le16  option;
7417         __le16  flags;
7418         #define NVM_WRITE_REQ_FLAGS_KEEP_ORIG_ACTIVE_IMG     0x1UL
7419         __le32  dir_item_length;
7420         __le32  unused_0;
7421 };
7422
7423 /* hwrm_nvm_write_output (size:128b/16B) */
7424 struct hwrm_nvm_write_output {
7425         __le16  error_code;
7426         __le16  req_type;
7427         __le16  seq_id;
7428         __le16  resp_len;
7429         __le32  dir_item_length;
7430         __le16  dir_idx;
7431         u8      unused_0;
7432         u8      valid;
7433 };
7434
7435 /* hwrm_nvm_write_cmd_err (size:64b/8B) */
7436 struct hwrm_nvm_write_cmd_err {
7437         u8      code;
7438         #define NVM_WRITE_CMD_ERR_CODE_UNKNOWN  0x0UL
7439         #define NVM_WRITE_CMD_ERR_CODE_FRAG_ERR 0x1UL
7440         #define NVM_WRITE_CMD_ERR_CODE_NO_SPACE 0x2UL
7441         #define NVM_WRITE_CMD_ERR_CODE_LAST    NVM_WRITE_CMD_ERR_CODE_NO_SPACE
7442         u8      unused_0[7];
7443 };
7444
7445 /* hwrm_nvm_modify_input (size:320b/40B) */
7446 struct hwrm_nvm_modify_input {
7447         __le16  req_type;
7448         __le16  cmpl_ring;
7449         __le16  seq_id;
7450         __le16  target_id;
7451         __le64  resp_addr;
7452         __le64  host_src_addr;
7453         __le16  dir_idx;
7454         u8      unused_0[2];
7455         __le32  offset;
7456         __le32  len;
7457         u8      unused_1[4];
7458 };
7459
7460 /* hwrm_nvm_modify_output (size:128b/16B) */
7461 struct hwrm_nvm_modify_output {
7462         __le16  error_code;
7463         __le16  req_type;
7464         __le16  seq_id;
7465         __le16  resp_len;
7466         u8      unused_0[7];
7467         u8      valid;
7468 };
7469
7470 /* hwrm_nvm_find_dir_entry_input (size:256b/32B) */
7471 struct hwrm_nvm_find_dir_entry_input {
7472         __le16  req_type;
7473         __le16  cmpl_ring;
7474         __le16  seq_id;
7475         __le16  target_id;
7476         __le64  resp_addr;
7477         __le32  enables;
7478         #define NVM_FIND_DIR_ENTRY_REQ_ENABLES_DIR_IDX_VALID     0x1UL
7479         __le16  dir_idx;
7480         __le16  dir_type;
7481         __le16  dir_ordinal;
7482         __le16  dir_ext;
7483         u8      opt_ordinal;
7484         #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_MASK 0x3UL
7485         #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_SFT 0
7486         #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_EQ    0x0UL
7487         #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GE    0x1UL
7488         #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GT    0x2UL
7489         #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_LAST NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GT
7490         u8      unused_0[3];
7491 };
7492
7493 /* hwrm_nvm_find_dir_entry_output (size:256b/32B) */
7494 struct hwrm_nvm_find_dir_entry_output {
7495         __le16  error_code;
7496         __le16  req_type;
7497         __le16  seq_id;
7498         __le16  resp_len;
7499         __le32  dir_item_length;
7500         __le32  dir_data_length;
7501         __le32  fw_ver;
7502         __le16  dir_ordinal;
7503         __le16  dir_idx;
7504         u8      unused_0[7];
7505         u8      valid;
7506 };
7507
7508 /* hwrm_nvm_erase_dir_entry_input (size:192b/24B) */
7509 struct hwrm_nvm_erase_dir_entry_input {
7510         __le16  req_type;
7511         __le16  cmpl_ring;
7512         __le16  seq_id;
7513         __le16  target_id;
7514         __le64  resp_addr;
7515         __le16  dir_idx;
7516         u8      unused_0[6];
7517 };
7518
7519 /* hwrm_nvm_erase_dir_entry_output (size:128b/16B) */
7520 struct hwrm_nvm_erase_dir_entry_output {
7521         __le16  error_code;
7522         __le16  req_type;
7523         __le16  seq_id;
7524         __le16  resp_len;
7525         u8      unused_0[7];
7526         u8      valid;
7527 };
7528
7529 /* hwrm_nvm_get_dev_info_input (size:128b/16B) */
7530 struct hwrm_nvm_get_dev_info_input {
7531         __le16  req_type;
7532         __le16  cmpl_ring;
7533         __le16  seq_id;
7534         __le16  target_id;
7535         __le64  resp_addr;
7536 };
7537
7538 /* hwrm_nvm_get_dev_info_output (size:256b/32B) */
7539 struct hwrm_nvm_get_dev_info_output {
7540         __le16  error_code;
7541         __le16  req_type;
7542         __le16  seq_id;
7543         __le16  resp_len;
7544         __le16  manufacturer_id;
7545         __le16  device_id;
7546         __le32  sector_size;
7547         __le32  nvram_size;
7548         __le32  reserved_size;
7549         __le32  available_size;
7550         u8      nvm_cfg_ver_maj;
7551         u8      nvm_cfg_ver_min;
7552         u8      nvm_cfg_ver_upd;
7553         u8      valid;
7554 };
7555
7556 /* hwrm_nvm_mod_dir_entry_input (size:256b/32B) */
7557 struct hwrm_nvm_mod_dir_entry_input {
7558         __le16  req_type;
7559         __le16  cmpl_ring;
7560         __le16  seq_id;
7561         __le16  target_id;
7562         __le64  resp_addr;
7563         __le32  enables;
7564         #define NVM_MOD_DIR_ENTRY_REQ_ENABLES_CHECKSUM     0x1UL
7565         __le16  dir_idx;
7566         __le16  dir_ordinal;
7567         __le16  dir_ext;
7568         __le16  dir_attr;
7569         __le32  checksum;
7570 };
7571
7572 /* hwrm_nvm_mod_dir_entry_output (size:128b/16B) */
7573 struct hwrm_nvm_mod_dir_entry_output {
7574         __le16  error_code;
7575         __le16  req_type;
7576         __le16  seq_id;
7577         __le16  resp_len;
7578         u8      unused_0[7];
7579         u8      valid;
7580 };
7581
7582 /* hwrm_nvm_verify_update_input (size:192b/24B) */
7583 struct hwrm_nvm_verify_update_input {
7584         __le16  req_type;
7585         __le16  cmpl_ring;
7586         __le16  seq_id;
7587         __le16  target_id;
7588         __le64  resp_addr;
7589         __le16  dir_type;
7590         __le16  dir_ordinal;
7591         __le16  dir_ext;
7592         u8      unused_0[2];
7593 };
7594
7595 /* hwrm_nvm_verify_update_output (size:128b/16B) */
7596 struct hwrm_nvm_verify_update_output {
7597         __le16  error_code;
7598         __le16  req_type;
7599         __le16  seq_id;
7600         __le16  resp_len;
7601         u8      unused_0[7];
7602         u8      valid;
7603 };
7604
7605 /* hwrm_nvm_install_update_input (size:192b/24B) */
7606 struct hwrm_nvm_install_update_input {
7607         __le16  req_type;
7608         __le16  cmpl_ring;
7609         __le16  seq_id;
7610         __le16  target_id;
7611         __le64  resp_addr;
7612         __le32  install_type;
7613         #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_NORMAL 0x0UL
7614         #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_ALL    0xffffffffUL
7615         #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_LAST  NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_ALL
7616         __le16  flags;
7617         #define NVM_INSTALL_UPDATE_REQ_FLAGS_ERASE_UNUSED_SPACE     0x1UL
7618         #define NVM_INSTALL_UPDATE_REQ_FLAGS_REMOVE_UNUSED_PKG      0x2UL
7619         #define NVM_INSTALL_UPDATE_REQ_FLAGS_ALLOWED_TO_DEFRAG      0x4UL
7620         u8      unused_0[2];
7621 };
7622
7623 /* hwrm_nvm_install_update_output (size:192b/24B) */
7624 struct hwrm_nvm_install_update_output {
7625         __le16  error_code;
7626         __le16  req_type;
7627         __le16  seq_id;
7628         __le16  resp_len;
7629         __le64  installed_items;
7630         u8      result;
7631         #define NVM_INSTALL_UPDATE_RESP_RESULT_SUCCESS 0x0UL
7632         #define NVM_INSTALL_UPDATE_RESP_RESULT_LAST   NVM_INSTALL_UPDATE_RESP_RESULT_SUCCESS
7633         u8      problem_item;
7634         #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_NONE    0x0UL
7635         #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_PACKAGE 0xffUL
7636         #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_LAST   NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_PACKAGE
7637         u8      reset_required;
7638         #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_NONE  0x0UL
7639         #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_PCI   0x1UL
7640         #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_POWER 0x2UL
7641         #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_LAST NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_POWER
7642         u8      unused_0[4];
7643         u8      valid;
7644 };
7645
7646 /* hwrm_nvm_install_update_cmd_err (size:64b/8B) */
7647 struct hwrm_nvm_install_update_cmd_err {
7648         u8      code;
7649         #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_UNKNOWN  0x0UL
7650         #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_FRAG_ERR 0x1UL
7651         #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_SPACE 0x2UL
7652         #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_LAST    NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_SPACE
7653         u8      unused_0[7];
7654 };
7655
7656 /* hwrm_nvm_get_variable_input (size:320b/40B) */
7657 struct hwrm_nvm_get_variable_input {
7658         __le16  req_type;
7659         __le16  cmpl_ring;
7660         __le16  seq_id;
7661         __le16  target_id;
7662         __le64  resp_addr;
7663         __le64  dest_data_addr;
7664         __le16  data_len;
7665         __le16  option_num;
7666         #define NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_0    0x0UL
7667         #define NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 0xffffUL
7668         #define NVM_GET_VARIABLE_REQ_OPTION_NUM_LAST     NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF
7669         __le16  dimensions;
7670         __le16  index_0;
7671         __le16  index_1;
7672         __le16  index_2;
7673         __le16  index_3;
7674         u8      flags;
7675         #define NVM_GET_VARIABLE_REQ_FLAGS_FACTORY_DFLT     0x1UL
7676         u8      unused_0;
7677 };
7678
7679 /* hwrm_nvm_get_variable_output (size:128b/16B) */
7680 struct hwrm_nvm_get_variable_output {
7681         __le16  error_code;
7682         __le16  req_type;
7683         __le16  seq_id;
7684         __le16  resp_len;
7685         __le16  data_len;
7686         __le16  option_num;
7687         #define NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_0    0x0UL
7688         #define NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_FFFF 0xffffUL
7689         #define NVM_GET_VARIABLE_RESP_OPTION_NUM_LAST     NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_FFFF
7690         u8      unused_0[3];
7691         u8      valid;
7692 };
7693
7694 /* hwrm_nvm_get_variable_cmd_err (size:64b/8B) */
7695 struct hwrm_nvm_get_variable_cmd_err {
7696         u8      code;
7697         #define NVM_GET_VARIABLE_CMD_ERR_CODE_UNKNOWN       0x0UL
7698         #define NVM_GET_VARIABLE_CMD_ERR_CODE_VAR_NOT_EXIST 0x1UL
7699         #define NVM_GET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR   0x2UL
7700         #define NVM_GET_VARIABLE_CMD_ERR_CODE_LEN_TOO_SHORT 0x3UL
7701         #define NVM_GET_VARIABLE_CMD_ERR_CODE_LAST         NVM_GET_VARIABLE_CMD_ERR_CODE_LEN_TOO_SHORT
7702         u8      unused_0[7];
7703 };
7704
7705 /* hwrm_nvm_set_variable_input (size:320b/40B) */
7706 struct hwrm_nvm_set_variable_input {
7707         __le16  req_type;
7708         __le16  cmpl_ring;
7709         __le16  seq_id;
7710         __le16  target_id;
7711         __le64  resp_addr;
7712         __le64  src_data_addr;
7713         __le16  data_len;
7714         __le16  option_num;
7715         #define NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_0    0x0UL
7716         #define NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 0xffffUL
7717         #define NVM_SET_VARIABLE_REQ_OPTION_NUM_LAST     NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF
7718         __le16  dimensions;
7719         __le16  index_0;
7720         __le16  index_1;
7721         __le16  index_2;
7722         __le16  index_3;
7723         u8      flags;
7724         #define NVM_SET_VARIABLE_REQ_FLAGS_FORCE_FLUSH                0x1UL
7725         #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_MASK          0xeUL
7726         #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_SFT           1
7727         #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_NONE            (0x0UL << 1)
7728         #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1       (0x1UL << 1)
7729         #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_AES256          (0x2UL << 1)
7730         #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1_AUTH  (0x3UL << 1)
7731         #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_LAST           NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1_AUTH
7732         u8      unused_0;
7733 };
7734
7735 /* hwrm_nvm_set_variable_output (size:128b/16B) */
7736 struct hwrm_nvm_set_variable_output {
7737         __le16  error_code;
7738         __le16  req_type;
7739         __le16  seq_id;
7740         __le16  resp_len;
7741         u8      unused_0[7];
7742         u8      valid;
7743 };
7744
7745 /* hwrm_nvm_set_variable_cmd_err (size:64b/8B) */
7746 struct hwrm_nvm_set_variable_cmd_err {
7747         u8      code;
7748         #define NVM_SET_VARIABLE_CMD_ERR_CODE_UNKNOWN       0x0UL
7749         #define NVM_SET_VARIABLE_CMD_ERR_CODE_VAR_NOT_EXIST 0x1UL
7750         #define NVM_SET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR   0x2UL
7751         #define NVM_SET_VARIABLE_CMD_ERR_CODE_LAST         NVM_SET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR
7752         u8      unused_0[7];
7753 };
7754
7755 /* hwrm_selftest_qlist_input (size:128b/16B) */
7756 struct hwrm_selftest_qlist_input {
7757         __le16  req_type;
7758         __le16  cmpl_ring;
7759         __le16  seq_id;
7760         __le16  target_id;
7761         __le64  resp_addr;
7762 };
7763
7764 /* hwrm_selftest_qlist_output (size:2240b/280B) */
7765 struct hwrm_selftest_qlist_output {
7766         __le16  error_code;
7767         __le16  req_type;
7768         __le16  seq_id;
7769         __le16  resp_len;
7770         u8      num_tests;
7771         u8      available_tests;
7772         #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_NVM_TEST                 0x1UL
7773         #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_LINK_TEST                0x2UL
7774         #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_REGISTER_TEST            0x4UL
7775         #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_MEMORY_TEST              0x8UL
7776         #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_PCIE_SERDES_TEST         0x10UL
7777         #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_ETHERNET_SERDES_TEST     0x20UL
7778         u8      offline_tests;
7779         #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_NVM_TEST                 0x1UL
7780         #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_LINK_TEST                0x2UL
7781         #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_REGISTER_TEST            0x4UL
7782         #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_MEMORY_TEST              0x8UL
7783         #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_PCIE_SERDES_TEST         0x10UL
7784         #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_ETHERNET_SERDES_TEST     0x20UL
7785         u8      unused_0;
7786         __le16  test_timeout;
7787         u8      unused_1[2];
7788         char    test0_name[32];
7789         char    test1_name[32];
7790         char    test2_name[32];
7791         char    test3_name[32];
7792         char    test4_name[32];
7793         char    test5_name[32];
7794         char    test6_name[32];
7795         char    test7_name[32];
7796         u8      unused_2[7];
7797         u8      valid;
7798 };
7799
7800 /* hwrm_selftest_exec_input (size:192b/24B) */
7801 struct hwrm_selftest_exec_input {
7802         __le16  req_type;
7803         __le16  cmpl_ring;
7804         __le16  seq_id;
7805         __le16  target_id;
7806         __le64  resp_addr;
7807         u8      flags;
7808         #define SELFTEST_EXEC_REQ_FLAGS_NVM_TEST                 0x1UL
7809         #define SELFTEST_EXEC_REQ_FLAGS_LINK_TEST                0x2UL
7810         #define SELFTEST_EXEC_REQ_FLAGS_REGISTER_TEST            0x4UL
7811         #define SELFTEST_EXEC_REQ_FLAGS_MEMORY_TEST              0x8UL
7812         #define SELFTEST_EXEC_REQ_FLAGS_PCIE_SERDES_TEST         0x10UL
7813         #define SELFTEST_EXEC_REQ_FLAGS_ETHERNET_SERDES_TEST     0x20UL
7814         u8      unused_0[7];
7815 };
7816
7817 /* hwrm_selftest_exec_output (size:128b/16B) */
7818 struct hwrm_selftest_exec_output {
7819         __le16  error_code;
7820         __le16  req_type;
7821         __le16  seq_id;
7822         __le16  resp_len;
7823         u8      requested_tests;
7824         #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_NVM_TEST                 0x1UL
7825         #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_LINK_TEST                0x2UL
7826         #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_REGISTER_TEST            0x4UL
7827         #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_MEMORY_TEST              0x8UL
7828         #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_PCIE_SERDES_TEST         0x10UL
7829         #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_ETHERNET_SERDES_TEST     0x20UL
7830         u8      test_success;
7831         #define SELFTEST_EXEC_RESP_TEST_SUCCESS_NVM_TEST                 0x1UL
7832         #define SELFTEST_EXEC_RESP_TEST_SUCCESS_LINK_TEST                0x2UL
7833         #define SELFTEST_EXEC_RESP_TEST_SUCCESS_REGISTER_TEST            0x4UL
7834         #define SELFTEST_EXEC_RESP_TEST_SUCCESS_MEMORY_TEST              0x8UL
7835         #define SELFTEST_EXEC_RESP_TEST_SUCCESS_PCIE_SERDES_TEST         0x10UL
7836         #define SELFTEST_EXEC_RESP_TEST_SUCCESS_ETHERNET_SERDES_TEST     0x20UL
7837         u8      unused_0[5];
7838         u8      valid;
7839 };
7840
7841 /* hwrm_selftest_irq_input (size:128b/16B) */
7842 struct hwrm_selftest_irq_input {
7843         __le16  req_type;
7844         __le16  cmpl_ring;
7845         __le16  seq_id;
7846         __le16  target_id;
7847         __le64  resp_addr;
7848 };
7849
7850 /* hwrm_selftest_irq_output (size:128b/16B) */
7851 struct hwrm_selftest_irq_output {
7852         __le16  error_code;
7853         __le16  req_type;
7854         __le16  seq_id;
7855         __le16  resp_len;
7856         u8      unused_0[7];
7857         u8      valid;
7858 };
7859
7860 #endif /* _BNXT_HSI_H_ */