1/* Broadcom NetXtreme-C/E network driver.
2 *
3 * Copyright (c) 2014-2016 Broadcom Corporation
4 * Copyright (c) 2014-2018 Broadcom Limited
5 * Copyright (c) 2018-2023 Broadcom Inc.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation.
10 *
11 * DO NOT MODIFY!!! This file is automatically generated.
12 */
13
14#ifndef _BNXT_HSI_H_
15#define _BNXT_HSI_H_
16
17/* hwrm_cmd_hdr (size:128b/16B) */
18struct hwrm_cmd_hdr {
19	__le16	req_type;
20	__le16	cmpl_ring;
21	__le16	seq_id;
22	__le16	target_id;
23	__le64	resp_addr;
24};
25
26/* hwrm_resp_hdr (size:64b/8B) */
27struct hwrm_resp_hdr {
28	__le16	error_code;
29	__le16	req_type;
30	__le16	seq_id;
31	__le16	resp_len;
32};
33
34#define CMD_DISCR_TLV_ENCAP 0x8000UL
35#define CMD_DISCR_LAST     CMD_DISCR_TLV_ENCAP
36
37
38#define TLV_TYPE_HWRM_REQUEST                    0x1UL
39#define TLV_TYPE_HWRM_RESPONSE                   0x2UL
40#define TLV_TYPE_ROCE_SP_COMMAND                 0x3UL
41#define TLV_TYPE_QUERY_ROCE_CC_GEN1              0x4UL
42#define TLV_TYPE_MODIFY_ROCE_CC_GEN1             0x5UL
43#define TLV_TYPE_QUERY_ROCE_CC_GEN2              0x6UL
44#define TLV_TYPE_MODIFY_ROCE_CC_GEN2             0x7UL
45#define TLV_TYPE_ENGINE_CKV_ALIAS_ECC_PUBLIC_KEY 0x8001UL
46#define TLV_TYPE_ENGINE_CKV_IV                   0x8003UL
47#define TLV_TYPE_ENGINE_CKV_AUTH_TAG             0x8004UL
48#define TLV_TYPE_ENGINE_CKV_CIPHERTEXT           0x8005UL
49#define TLV_TYPE_ENGINE_CKV_HOST_ALGORITHMS      0x8006UL
50#define TLV_TYPE_ENGINE_CKV_HOST_ECC_PUBLIC_KEY  0x8007UL
51#define TLV_TYPE_ENGINE_CKV_ECDSA_SIGNATURE      0x8008UL
52#define TLV_TYPE_ENGINE_CKV_FW_ECC_PUBLIC_KEY    0x8009UL
53#define TLV_TYPE_ENGINE_CKV_FW_ALGORITHMS        0x800aUL
54#define TLV_TYPE_LAST                           TLV_TYPE_ENGINE_CKV_FW_ALGORITHMS
55
56
57/* tlv (size:64b/8B) */
58struct tlv {
59	__le16	cmd_discr;
60	u8	reserved_8b;
61	u8	flags;
62	#define TLV_FLAGS_MORE         0x1UL
63	#define TLV_FLAGS_MORE_LAST      0x0UL
64	#define TLV_FLAGS_MORE_NOT_LAST  0x1UL
65	#define TLV_FLAGS_REQUIRED     0x2UL
66	#define TLV_FLAGS_REQUIRED_NO    (0x0UL << 1)
67	#define TLV_FLAGS_REQUIRED_YES   (0x1UL << 1)
68	#define TLV_FLAGS_REQUIRED_LAST TLV_FLAGS_REQUIRED_YES
69	__le16	tlv_type;
70	__le16	length;
71};
72
73/* input (size:128b/16B) */
74struct input {
75	__le16	req_type;
76	__le16	cmpl_ring;
77	__le16	seq_id;
78	__le16	target_id;
79	__le64	resp_addr;
80};
81
82/* output (size:64b/8B) */
83struct output {
84	__le16	error_code;
85	__le16	req_type;
86	__le16	seq_id;
87	__le16	resp_len;
88};
89
90/* hwrm_short_input (size:128b/16B) */
91struct hwrm_short_input {
92	__le16	req_type;
93	__le16	signature;
94	#define SHORT_REQ_SIGNATURE_SHORT_CMD 0x4321UL
95	#define SHORT_REQ_SIGNATURE_LAST     SHORT_REQ_SIGNATURE_SHORT_CMD
96	__le16	target_id;
97	#define SHORT_REQ_TARGET_ID_DEFAULT 0x0UL
98	#define SHORT_REQ_TARGET_ID_TOOLS   0xfffdUL
99	#define SHORT_REQ_TARGET_ID_LAST   SHORT_REQ_TARGET_ID_TOOLS
100	__le16	size;
101	__le64	req_addr;
102};
103
104/* cmd_nums (size:64b/8B) */
105struct cmd_nums {
106	__le16	req_type;
107	#define HWRM_VER_GET                              0x0UL
108	#define HWRM_FUNC_ECHO_RESPONSE                   0xbUL
109	#define HWRM_ERROR_RECOVERY_QCFG                  0xcUL
110	#define HWRM_FUNC_DRV_IF_CHANGE                   0xdUL
111	#define HWRM_FUNC_BUF_UNRGTR                      0xeUL
112	#define HWRM_FUNC_VF_CFG                          0xfUL
113	#define HWRM_RESERVED1                            0x10UL
114	#define HWRM_FUNC_RESET                           0x11UL
115	#define HWRM_FUNC_GETFID                          0x12UL
116	#define HWRM_FUNC_VF_ALLOC                        0x13UL
117	#define HWRM_FUNC_VF_FREE                         0x14UL
118	#define HWRM_FUNC_QCAPS                           0x15UL
119	#define HWRM_FUNC_QCFG                            0x16UL
120	#define HWRM_FUNC_CFG                             0x17UL
121	#define HWRM_FUNC_QSTATS                          0x18UL
122	#define HWRM_FUNC_CLR_STATS                       0x19UL
123	#define HWRM_FUNC_DRV_UNRGTR                      0x1aUL
124	#define HWRM_FUNC_VF_RESC_FREE                    0x1bUL
125	#define HWRM_FUNC_VF_VNIC_IDS_QUERY               0x1cUL
126	#define HWRM_FUNC_DRV_RGTR                        0x1dUL
127	#define HWRM_FUNC_DRV_QVER                        0x1eUL
128	#define HWRM_FUNC_BUF_RGTR                        0x1fUL
129	#define HWRM_PORT_PHY_CFG                         0x20UL
130	#define HWRM_PORT_MAC_CFG                         0x21UL
131	#define HWRM_PORT_TS_QUERY                        0x22UL
132	#define HWRM_PORT_QSTATS                          0x23UL
133	#define HWRM_PORT_LPBK_QSTATS                     0x24UL
134	#define HWRM_PORT_CLR_STATS                       0x25UL
135	#define HWRM_PORT_LPBK_CLR_STATS                  0x26UL
136	#define HWRM_PORT_PHY_QCFG                        0x27UL
137	#define HWRM_PORT_MAC_QCFG                        0x28UL
138	#define HWRM_PORT_MAC_PTP_QCFG                    0x29UL
139	#define HWRM_PORT_PHY_QCAPS                       0x2aUL
140	#define HWRM_PORT_PHY_I2C_WRITE                   0x2bUL
141	#define HWRM_PORT_PHY_I2C_READ                    0x2cUL
142	#define HWRM_PORT_LED_CFG                         0x2dUL
143	#define HWRM_PORT_LED_QCFG                        0x2eUL
144	#define HWRM_PORT_LED_QCAPS                       0x2fUL
145	#define HWRM_QUEUE_QPORTCFG                       0x30UL
146	#define HWRM_QUEUE_QCFG                           0x31UL
147	#define HWRM_QUEUE_CFG                            0x32UL
148	#define HWRM_FUNC_VLAN_CFG                        0x33UL
149	#define HWRM_FUNC_VLAN_QCFG                       0x34UL
150	#define HWRM_QUEUE_PFCENABLE_QCFG                 0x35UL
151	#define HWRM_QUEUE_PFCENABLE_CFG                  0x36UL
152	#define HWRM_QUEUE_PRI2COS_QCFG                   0x37UL
153	#define HWRM_QUEUE_PRI2COS_CFG                    0x38UL
154	#define HWRM_QUEUE_COS2BW_QCFG                    0x39UL
155	#define HWRM_QUEUE_COS2BW_CFG                     0x3aUL
156	#define HWRM_QUEUE_DSCP_QCAPS                     0x3bUL
157	#define HWRM_QUEUE_DSCP2PRI_QCFG                  0x3cUL
158	#define HWRM_QUEUE_DSCP2PRI_CFG                   0x3dUL
159	#define HWRM_VNIC_ALLOC                           0x40UL
160	#define HWRM_VNIC_FREE                            0x41UL
161	#define HWRM_VNIC_CFG                             0x42UL
162	#define HWRM_VNIC_QCFG                            0x43UL
163	#define HWRM_VNIC_TPA_CFG                         0x44UL
164	#define HWRM_VNIC_TPA_QCFG                        0x45UL
165	#define HWRM_VNIC_RSS_CFG                         0x46UL
166	#define HWRM_VNIC_RSS_QCFG                        0x47UL
167	#define HWRM_VNIC_PLCMODES_CFG                    0x48UL
168	#define HWRM_VNIC_PLCMODES_QCFG                   0x49UL
169	#define HWRM_VNIC_QCAPS                           0x4aUL
170	#define HWRM_VNIC_UPDATE                          0x4bUL
171	#define HWRM_RING_ALLOC                           0x50UL
172	#define HWRM_RING_FREE                            0x51UL
173	#define HWRM_RING_CMPL_RING_QAGGINT_PARAMS        0x52UL
174	#define HWRM_RING_CMPL_RING_CFG_AGGINT_PARAMS     0x53UL
175	#define HWRM_RING_AGGINT_QCAPS                    0x54UL
176	#define HWRM_RING_SCHQ_ALLOC                      0x55UL
177	#define HWRM_RING_SCHQ_CFG                        0x56UL
178	#define HWRM_RING_SCHQ_FREE                       0x57UL
179	#define HWRM_RING_RESET                           0x5eUL
180	#define HWRM_RING_GRP_ALLOC                       0x60UL
181	#define HWRM_RING_GRP_FREE                        0x61UL
182	#define HWRM_RING_CFG                             0x62UL
183	#define HWRM_RING_QCFG                            0x63UL
184	#define HWRM_RESERVED5                            0x64UL
185	#define HWRM_RESERVED6                            0x65UL
186	#define HWRM_VNIC_RSS_COS_LB_CTX_ALLOC            0x70UL
187	#define HWRM_VNIC_RSS_COS_LB_CTX_FREE             0x71UL
188	#define HWRM_QUEUE_MPLS_QCAPS                     0x80UL
189	#define HWRM_QUEUE_MPLSTC2PRI_QCFG                0x81UL
190	#define HWRM_QUEUE_MPLSTC2PRI_CFG                 0x82UL
191	#define HWRM_QUEUE_VLANPRI_QCAPS                  0x83UL
192	#define HWRM_QUEUE_VLANPRI2PRI_QCFG               0x84UL
193	#define HWRM_QUEUE_VLANPRI2PRI_CFG                0x85UL
194	#define HWRM_QUEUE_GLOBAL_CFG                     0x86UL
195	#define HWRM_QUEUE_GLOBAL_QCFG                    0x87UL
196	#define HWRM_QUEUE_ADPTV_QOS_RX_FEATURE_QCFG      0x88UL
197	#define HWRM_QUEUE_ADPTV_QOS_RX_FEATURE_CFG       0x89UL
198	#define HWRM_QUEUE_ADPTV_QOS_TX_FEATURE_QCFG      0x8aUL
199	#define HWRM_QUEUE_ADPTV_QOS_TX_FEATURE_CFG       0x8bUL
200	#define HWRM_QUEUE_QCAPS                          0x8cUL
201	#define HWRM_QUEUE_ADPTV_QOS_RX_TUNING_QCFG       0x8dUL
202	#define HWRM_QUEUE_ADPTV_QOS_RX_TUNING_CFG        0x8eUL
203	#define HWRM_QUEUE_ADPTV_QOS_TX_TUNING_QCFG       0x8fUL
204	#define HWRM_CFA_L2_FILTER_ALLOC                  0x90UL
205	#define HWRM_CFA_L2_FILTER_FREE                   0x91UL
206	#define HWRM_CFA_L2_FILTER_CFG                    0x92UL
207	#define HWRM_CFA_L2_SET_RX_MASK                   0x93UL
208	#define HWRM_CFA_VLAN_ANTISPOOF_CFG               0x94UL
209	#define HWRM_CFA_TUNNEL_FILTER_ALLOC              0x95UL
210	#define HWRM_CFA_TUNNEL_FILTER_FREE               0x96UL
211	#define HWRM_CFA_ENCAP_RECORD_ALLOC               0x97UL
212	#define HWRM_CFA_ENCAP_RECORD_FREE                0x98UL
213	#define HWRM_CFA_NTUPLE_FILTER_ALLOC              0x99UL
214	#define HWRM_CFA_NTUPLE_FILTER_FREE               0x9aUL
215	#define HWRM_CFA_NTUPLE_FILTER_CFG                0x9bUL
216	#define HWRM_CFA_EM_FLOW_ALLOC                    0x9cUL
217	#define HWRM_CFA_EM_FLOW_FREE                     0x9dUL
218	#define HWRM_CFA_EM_FLOW_CFG                      0x9eUL
219	#define HWRM_TUNNEL_DST_PORT_QUERY                0xa0UL
220	#define HWRM_TUNNEL_DST_PORT_ALLOC                0xa1UL
221	#define HWRM_TUNNEL_DST_PORT_FREE                 0xa2UL
222	#define HWRM_QUEUE_ADPTV_QOS_TX_TUNING_CFG        0xa3UL
223	#define HWRM_STAT_CTX_ENG_QUERY                   0xafUL
224	#define HWRM_STAT_CTX_ALLOC                       0xb0UL
225	#define HWRM_STAT_CTX_FREE                        0xb1UL
226	#define HWRM_STAT_CTX_QUERY                       0xb2UL
227	#define HWRM_STAT_CTX_CLR_STATS                   0xb3UL
228	#define HWRM_PORT_QSTATS_EXT                      0xb4UL
229	#define HWRM_PORT_PHY_MDIO_WRITE                  0xb5UL
230	#define HWRM_PORT_PHY_MDIO_READ                   0xb6UL
231	#define HWRM_PORT_PHY_MDIO_BUS_ACQUIRE            0xb7UL
232	#define HWRM_PORT_PHY_MDIO_BUS_RELEASE            0xb8UL
233	#define HWRM_PORT_QSTATS_EXT_PFC_WD               0xb9UL
234	#define HWRM_RESERVED7                            0xbaUL
235	#define HWRM_PORT_TX_FIR_CFG                      0xbbUL
236	#define HWRM_PORT_TX_FIR_QCFG                     0xbcUL
237	#define HWRM_PORT_ECN_QSTATS                      0xbdUL
238	#define HWRM_FW_LIVEPATCH_QUERY                   0xbeUL
239	#define HWRM_FW_LIVEPATCH                         0xbfUL
240	#define HWRM_FW_RESET                             0xc0UL
241	#define HWRM_FW_QSTATUS                           0xc1UL
242	#define HWRM_FW_HEALTH_CHECK                      0xc2UL
243	#define HWRM_FW_SYNC                              0xc3UL
244	#define HWRM_FW_STATE_QCAPS                       0xc4UL
245	#define HWRM_FW_STATE_QUIESCE                     0xc5UL
246	#define HWRM_FW_STATE_BACKUP                      0xc6UL
247	#define HWRM_FW_STATE_RESTORE                     0xc7UL
248	#define HWRM_FW_SET_TIME                          0xc8UL
249	#define HWRM_FW_GET_TIME                          0xc9UL
250	#define HWRM_FW_SET_STRUCTURED_DATA               0xcaUL
251	#define HWRM_FW_GET_STRUCTURED_DATA               0xcbUL
252	#define HWRM_FW_IPC_MAILBOX                       0xccUL
253	#define HWRM_FW_ECN_CFG                           0xcdUL
254	#define HWRM_FW_ECN_QCFG                          0xceUL
255	#define HWRM_FW_SECURE_CFG                        0xcfUL
256	#define HWRM_EXEC_FWD_RESP                        0xd0UL
257	#define HWRM_REJECT_FWD_RESP                      0xd1UL
258	#define HWRM_FWD_RESP                             0xd2UL
259	#define HWRM_FWD_ASYNC_EVENT_CMPL                 0xd3UL
260	#define HWRM_OEM_CMD                              0xd4UL
261	#define HWRM_PORT_PRBS_TEST                       0xd5UL
262	#define HWRM_PORT_SFP_SIDEBAND_CFG                0xd6UL
263	#define HWRM_PORT_SFP_SIDEBAND_QCFG               0xd7UL
264	#define HWRM_FW_STATE_UNQUIESCE                   0xd8UL
265	#define HWRM_PORT_DSC_DUMP                        0xd9UL
266	#define HWRM_PORT_EP_TX_QCFG                      0xdaUL
267	#define HWRM_PORT_EP_TX_CFG                       0xdbUL
268	#define HWRM_PORT_CFG                             0xdcUL
269	#define HWRM_PORT_QCFG                            0xddUL
270	#define HWRM_PORT_MAC_QCAPS                       0xdfUL
271	#define HWRM_TEMP_MONITOR_QUERY                   0xe0UL
272	#define HWRM_REG_POWER_QUERY                      0xe1UL
273	#define HWRM_CORE_FREQUENCY_QUERY                 0xe2UL
274	#define HWRM_REG_POWER_HISTOGRAM                  0xe3UL
275	#define HWRM_WOL_FILTER_ALLOC                     0xf0UL
276	#define HWRM_WOL_FILTER_FREE                      0xf1UL
277	#define HWRM_WOL_FILTER_QCFG                      0xf2UL
278	#define HWRM_WOL_REASON_QCFG                      0xf3UL
279	#define HWRM_CFA_METER_QCAPS                      0xf4UL
280	#define HWRM_CFA_METER_PROFILE_ALLOC              0xf5UL
281	#define HWRM_CFA_METER_PROFILE_FREE               0xf6UL
282	#define HWRM_CFA_METER_PROFILE_CFG                0xf7UL
283	#define HWRM_CFA_METER_INSTANCE_ALLOC             0xf8UL
284	#define HWRM_CFA_METER_INSTANCE_FREE              0xf9UL
285	#define HWRM_CFA_METER_INSTANCE_CFG               0xfaUL
286	#define HWRM_CFA_VFR_ALLOC                        0xfdUL
287	#define HWRM_CFA_VFR_FREE                         0xfeUL
288	#define HWRM_CFA_VF_PAIR_ALLOC                    0x100UL
289	#define HWRM_CFA_VF_PAIR_FREE                     0x101UL
290	#define HWRM_CFA_VF_PAIR_INFO                     0x102UL
291	#define HWRM_CFA_FLOW_ALLOC                       0x103UL
292	#define HWRM_CFA_FLOW_FREE                        0x104UL
293	#define HWRM_CFA_FLOW_FLUSH                       0x105UL
294	#define HWRM_CFA_FLOW_STATS                       0x106UL
295	#define HWRM_CFA_FLOW_INFO                        0x107UL
296	#define HWRM_CFA_DECAP_FILTER_ALLOC               0x108UL
297	#define HWRM_CFA_DECAP_FILTER_FREE                0x109UL
298	#define HWRM_CFA_VLAN_ANTISPOOF_QCFG              0x10aUL
299	#define HWRM_CFA_REDIRECT_TUNNEL_TYPE_ALLOC       0x10bUL
300	#define HWRM_CFA_REDIRECT_TUNNEL_TYPE_FREE        0x10cUL
301	#define HWRM_CFA_PAIR_ALLOC                       0x10dUL
302	#define HWRM_CFA_PAIR_FREE                        0x10eUL
303	#define HWRM_CFA_PAIR_INFO                        0x10fUL
304	#define HWRM_FW_IPC_MSG                           0x110UL
305	#define HWRM_CFA_REDIRECT_TUNNEL_TYPE_INFO        0x111UL
306	#define HWRM_CFA_REDIRECT_QUERY_TUNNEL_TYPE       0x112UL
307	#define HWRM_CFA_FLOW_AGING_TIMER_RESET           0x113UL
308	#define HWRM_CFA_FLOW_AGING_CFG                   0x114UL
309	#define HWRM_CFA_FLOW_AGING_QCFG                  0x115UL
310	#define HWRM_CFA_FLOW_AGING_QCAPS                 0x116UL
311	#define HWRM_CFA_CTX_MEM_RGTR                     0x117UL
312	#define HWRM_CFA_CTX_MEM_UNRGTR                   0x118UL
313	#define HWRM_CFA_CTX_MEM_QCTX                     0x119UL
314	#define HWRM_CFA_CTX_MEM_QCAPS                    0x11aUL
315	#define HWRM_CFA_COUNTER_QCAPS                    0x11bUL
316	#define HWRM_CFA_COUNTER_CFG                      0x11cUL
317	#define HWRM_CFA_COUNTER_QCFG                     0x11dUL
318	#define HWRM_CFA_COUNTER_QSTATS                   0x11eUL
319	#define HWRM_CFA_TCP_FLAG_PROCESS_QCFG            0x11fUL
320	#define HWRM_CFA_EEM_QCAPS                        0x120UL
321	#define HWRM_CFA_EEM_CFG                          0x121UL
322	#define HWRM_CFA_EEM_QCFG                         0x122UL
323	#define HWRM_CFA_EEM_OP                           0x123UL
324	#define HWRM_CFA_ADV_FLOW_MGNT_QCAPS              0x124UL
325	#define HWRM_CFA_TFLIB                            0x125UL
326	#define HWRM_CFA_LAG_GROUP_MEMBER_RGTR            0x126UL
327	#define HWRM_CFA_LAG_GROUP_MEMBER_UNRGTR          0x127UL
328	#define HWRM_CFA_TLS_FILTER_ALLOC                 0x128UL
329	#define HWRM_CFA_TLS_FILTER_FREE                  0x129UL
330	#define HWRM_CFA_RELEASE_AFM_FUNC                 0x12aUL
331	#define HWRM_ENGINE_CKV_STATUS                    0x12eUL
332	#define HWRM_ENGINE_CKV_CKEK_ADD                  0x12fUL
333	#define HWRM_ENGINE_CKV_CKEK_DELETE               0x130UL
334	#define HWRM_ENGINE_CKV_KEY_ADD                   0x131UL
335	#define HWRM_ENGINE_CKV_KEY_DELETE                0x132UL
336	#define HWRM_ENGINE_CKV_FLUSH                     0x133UL
337	#define HWRM_ENGINE_CKV_RNG_GET                   0x134UL
338	#define HWRM_ENGINE_CKV_KEY_GEN                   0x135UL
339	#define HWRM_ENGINE_CKV_KEY_LABEL_CFG             0x136UL
340	#define HWRM_ENGINE_CKV_KEY_LABEL_QCFG            0x137UL
341	#define HWRM_ENGINE_QG_CONFIG_QUERY               0x13cUL
342	#define HWRM_ENGINE_QG_QUERY                      0x13dUL
343	#define HWRM_ENGINE_QG_METER_PROFILE_CONFIG_QUERY 0x13eUL
344	#define HWRM_ENGINE_QG_METER_PROFILE_QUERY        0x13fUL
345	#define HWRM_ENGINE_QG_METER_PROFILE_ALLOC        0x140UL
346	#define HWRM_ENGINE_QG_METER_PROFILE_FREE         0x141UL
347	#define HWRM_ENGINE_QG_METER_QUERY                0x142UL
348	#define HWRM_ENGINE_QG_METER_BIND                 0x143UL
349	#define HWRM_ENGINE_QG_METER_UNBIND               0x144UL
350	#define HWRM_ENGINE_QG_FUNC_BIND                  0x145UL
351	#define HWRM_ENGINE_SG_CONFIG_QUERY               0x146UL
352	#define HWRM_ENGINE_SG_QUERY                      0x147UL
353	#define HWRM_ENGINE_SG_METER_QUERY                0x148UL
354	#define HWRM_ENGINE_SG_METER_CONFIG               0x149UL
355	#define HWRM_ENGINE_SG_QG_BIND                    0x14aUL
356	#define HWRM_ENGINE_QG_SG_UNBIND                  0x14bUL
357	#define HWRM_ENGINE_CONFIG_QUERY                  0x154UL
358	#define HWRM_ENGINE_STATS_CONFIG                  0x155UL
359	#define HWRM_ENGINE_STATS_CLEAR                   0x156UL
360	#define HWRM_ENGINE_STATS_QUERY                   0x157UL
361	#define HWRM_ENGINE_STATS_QUERY_CONTINUOUS_ERROR  0x158UL
362	#define HWRM_ENGINE_RQ_ALLOC                      0x15eUL
363	#define HWRM_ENGINE_RQ_FREE                       0x15fUL
364	#define HWRM_ENGINE_CQ_ALLOC                      0x160UL
365	#define HWRM_ENGINE_CQ_FREE                       0x161UL
366	#define HWRM_ENGINE_NQ_ALLOC                      0x162UL
367	#define HWRM_ENGINE_NQ_FREE                       0x163UL
368	#define HWRM_ENGINE_ON_DIE_RQE_CREDITS            0x164UL
369	#define HWRM_ENGINE_FUNC_QCFG                     0x165UL
370	#define HWRM_FUNC_RESOURCE_QCAPS                  0x190UL
371	#define HWRM_FUNC_VF_RESOURCE_CFG                 0x191UL
372	#define HWRM_FUNC_BACKING_STORE_QCAPS             0x192UL
373	#define HWRM_FUNC_BACKING_STORE_CFG               0x193UL
374	#define HWRM_FUNC_BACKING_STORE_QCFG              0x194UL
375	#define HWRM_FUNC_VF_BW_CFG                       0x195UL
376	#define HWRM_FUNC_VF_BW_QCFG                      0x196UL
377	#define HWRM_FUNC_HOST_PF_IDS_QUERY               0x197UL
378	#define HWRM_FUNC_QSTATS_EXT                      0x198UL
379	#define HWRM_STAT_EXT_CTX_QUERY                   0x199UL
380	#define HWRM_FUNC_SPD_CFG                         0x19aUL
381	#define HWRM_FUNC_SPD_QCFG                        0x19bUL
382	#define HWRM_FUNC_PTP_PIN_QCFG                    0x19cUL
383	#define HWRM_FUNC_PTP_PIN_CFG                     0x19dUL
384	#define HWRM_FUNC_PTP_CFG                         0x19eUL
385	#define HWRM_FUNC_PTP_TS_QUERY                    0x19fUL
386	#define HWRM_FUNC_PTP_EXT_CFG                     0x1a0UL
387	#define HWRM_FUNC_PTP_EXT_QCFG                    0x1a1UL
388	#define HWRM_FUNC_KEY_CTX_ALLOC                   0x1a2UL
389	#define HWRM_FUNC_BACKING_STORE_CFG_V2            0x1a3UL
390	#define HWRM_FUNC_BACKING_STORE_QCFG_V2           0x1a4UL
391	#define HWRM_FUNC_DBR_PACING_CFG                  0x1a5UL
392	#define HWRM_FUNC_DBR_PACING_QCFG                 0x1a6UL
393	#define HWRM_FUNC_DBR_PACING_BROADCAST_EVENT      0x1a7UL
394	#define HWRM_FUNC_BACKING_STORE_QCAPS_V2          0x1a8UL
395	#define HWRM_FUNC_DBR_PACING_NQLIST_QUERY         0x1a9UL
396	#define HWRM_FUNC_DBR_RECOVERY_COMPLETED          0x1aaUL
397	#define HWRM_FUNC_SYNCE_CFG                       0x1abUL
398	#define HWRM_FUNC_SYNCE_QCFG                      0x1acUL
399	#define HWRM_FUNC_KEY_CTX_FREE                    0x1adUL
400	#define HWRM_FUNC_LAG_MODE_CFG                    0x1aeUL
401	#define HWRM_FUNC_LAG_MODE_QCFG                   0x1afUL
402	#define HWRM_FUNC_LAG_CREATE                      0x1b0UL
403	#define HWRM_FUNC_LAG_UPDATE                      0x1b1UL
404	#define HWRM_FUNC_LAG_FREE                        0x1b2UL
405	#define HWRM_FUNC_LAG_QCFG                        0x1b3UL
406	#define HWRM_SELFTEST_QLIST                       0x200UL
407	#define HWRM_SELFTEST_EXEC                        0x201UL
408	#define HWRM_SELFTEST_IRQ                         0x202UL
409	#define HWRM_SELFTEST_RETRIEVE_SERDES_DATA        0x203UL
410	#define HWRM_PCIE_QSTATS                          0x204UL
411	#define HWRM_MFG_FRU_WRITE_CONTROL                0x205UL
412	#define HWRM_MFG_TIMERS_QUERY                     0x206UL
413	#define HWRM_MFG_OTP_CFG                          0x207UL
414	#define HWRM_MFG_OTP_QCFG                         0x208UL
415	#define HWRM_MFG_HDMA_TEST                        0x209UL
416	#define HWRM_MFG_FRU_EEPROM_WRITE                 0x20aUL
417	#define HWRM_MFG_FRU_EEPROM_READ                  0x20bUL
418	#define HWRM_MFG_SOC_IMAGE                        0x20cUL
419	#define HWRM_MFG_SOC_QSTATUS                      0x20dUL
420	#define HWRM_MFG_PARAM_CRITICAL_DATA_FINALIZE     0x20eUL
421	#define HWRM_MFG_PARAM_CRITICAL_DATA_READ         0x20fUL
422	#define HWRM_MFG_PARAM_CRITICAL_DATA_HEALTH       0x210UL
423	#define HWRM_MFG_PRVSN_EXPORT_CSR                 0x211UL
424	#define HWRM_MFG_PRVSN_IMPORT_CERT                0x212UL
425	#define HWRM_MFG_PRVSN_GET_STATE                  0x213UL
426	#define HWRM_MFG_GET_NVM_MEASUREMENT              0x214UL
427	#define HWRM_MFG_PSOC_QSTATUS                     0x215UL
428	#define HWRM_MFG_SELFTEST_QLIST                   0x216UL
429	#define HWRM_MFG_SELFTEST_EXEC                    0x217UL
430	#define HWRM_STAT_GENERIC_QSTATS                  0x218UL
431	#define HWRM_MFG_PRVSN_EXPORT_CERT                0x219UL
432	#define HWRM_STAT_DB_ERROR_QSTATS                 0x21aUL
433	#define HWRM_UDCC_QCAPS                           0x258UL
434	#define HWRM_UDCC_CFG                             0x259UL
435	#define HWRM_UDCC_QCFG                            0x25aUL
436	#define HWRM_UDCC_SESSION_CFG                     0x25bUL
437	#define HWRM_UDCC_SESSION_QCFG                    0x25cUL
438	#define HWRM_UDCC_SESSION_QUERY                   0x25dUL
439	#define HWRM_UDCC_COMP_CFG                        0x25eUL
440	#define HWRM_UDCC_COMP_QCFG                       0x25fUL
441	#define HWRM_UDCC_COMP_QUERY                      0x260UL
442	#define HWRM_TF                                   0x2bcUL
443	#define HWRM_TF_VERSION_GET                       0x2bdUL
444	#define HWRM_TF_SESSION_OPEN                      0x2c6UL
445	#define HWRM_TF_SESSION_REGISTER                  0x2c8UL
446	#define HWRM_TF_SESSION_UNREGISTER                0x2c9UL
447	#define HWRM_TF_SESSION_CLOSE                     0x2caUL
448	#define HWRM_TF_SESSION_QCFG                      0x2cbUL
449	#define HWRM_TF_SESSION_RESC_QCAPS                0x2ccUL
450	#define HWRM_TF_SESSION_RESC_ALLOC                0x2cdUL
451	#define HWRM_TF_SESSION_RESC_FREE                 0x2ceUL
452	#define HWRM_TF_SESSION_RESC_FLUSH                0x2cfUL
453	#define HWRM_TF_SESSION_RESC_INFO                 0x2d0UL
454	#define HWRM_TF_SESSION_HOTUP_STATE_SET           0x2d1UL
455	#define HWRM_TF_SESSION_HOTUP_STATE_GET           0x2d2UL
456	#define HWRM_TF_TBL_TYPE_GET                      0x2daUL
457	#define HWRM_TF_TBL_TYPE_SET                      0x2dbUL
458	#define HWRM_TF_TBL_TYPE_BULK_GET                 0x2dcUL
459	#define HWRM_TF_EM_INSERT                         0x2eaUL
460	#define HWRM_TF_EM_DELETE                         0x2ebUL
461	#define HWRM_TF_EM_HASH_INSERT                    0x2ecUL
462	#define HWRM_TF_EM_MOVE                           0x2edUL
463	#define HWRM_TF_TCAM_SET                          0x2f8UL
464	#define HWRM_TF_TCAM_GET                          0x2f9UL
465	#define HWRM_TF_TCAM_MOVE                         0x2faUL
466	#define HWRM_TF_TCAM_FREE                         0x2fbUL
467	#define HWRM_TF_GLOBAL_CFG_SET                    0x2fcUL
468	#define HWRM_TF_GLOBAL_CFG_GET                    0x2fdUL
469	#define HWRM_TF_IF_TBL_SET                        0x2feUL
470	#define HWRM_TF_IF_TBL_GET                        0x2ffUL
471	#define HWRM_TFC_TBL_SCOPE_QCAPS                  0x380UL
472	#define HWRM_TFC_TBL_SCOPE_ID_ALLOC               0x381UL
473	#define HWRM_TFC_TBL_SCOPE_CONFIG                 0x382UL
474	#define HWRM_TFC_TBL_SCOPE_DECONFIG               0x383UL
475	#define HWRM_TFC_TBL_SCOPE_FID_ADD                0x384UL
476	#define HWRM_TFC_TBL_SCOPE_FID_REM                0x385UL
477	#define HWRM_TFC_TBL_SCOPE_POOL_ALLOC             0x386UL
478	#define HWRM_TFC_TBL_SCOPE_POOL_FREE              0x387UL
479	#define HWRM_TFC_SESSION_ID_ALLOC                 0x388UL
480	#define HWRM_TFC_SESSION_FID_ADD                  0x389UL
481	#define HWRM_TFC_SESSION_FID_REM                  0x38aUL
482	#define HWRM_TFC_IDENT_ALLOC                      0x38bUL
483	#define HWRM_TFC_IDENT_FREE                       0x38cUL
484	#define HWRM_TFC_IDX_TBL_ALLOC                    0x38dUL
485	#define HWRM_TFC_IDX_TBL_ALLOC_SET                0x38eUL
486	#define HWRM_TFC_IDX_TBL_SET                      0x38fUL
487	#define HWRM_TFC_IDX_TBL_GET                      0x390UL
488	#define HWRM_TFC_IDX_TBL_FREE                     0x391UL
489	#define HWRM_TFC_GLOBAL_ID_ALLOC                  0x392UL
490	#define HWRM_TFC_TCAM_SET                         0x393UL
491	#define HWRM_TFC_TCAM_GET                         0x394UL
492	#define HWRM_TFC_TCAM_ALLOC                       0x395UL
493	#define HWRM_TFC_TCAM_ALLOC_SET                   0x396UL
494	#define HWRM_TFC_TCAM_FREE                        0x397UL
495	#define HWRM_TFC_IF_TBL_SET                       0x398UL
496	#define HWRM_TFC_IF_TBL_GET                       0x399UL
497	#define HWRM_TFC_TBL_SCOPE_CONFIG_GET             0x39aUL
498	#define HWRM_SV                                   0x400UL
499	#define HWRM_DBG_READ_DIRECT                      0xff10UL
500	#define HWRM_DBG_READ_INDIRECT                    0xff11UL
501	#define HWRM_DBG_WRITE_DIRECT                     0xff12UL
502	#define HWRM_DBG_WRITE_INDIRECT                   0xff13UL
503	#define HWRM_DBG_DUMP                             0xff14UL
504	#define HWRM_DBG_ERASE_NVM                        0xff15UL
505	#define HWRM_DBG_CFG                              0xff16UL
506	#define HWRM_DBG_COREDUMP_LIST                    0xff17UL
507	#define HWRM_DBG_COREDUMP_INITIATE                0xff18UL
508	#define HWRM_DBG_COREDUMP_RETRIEVE                0xff19UL
509	#define HWRM_DBG_FW_CLI                           0xff1aUL
510	#define HWRM_DBG_I2C_CMD                          0xff1bUL
511	#define HWRM_DBG_RING_INFO_GET                    0xff1cUL
512	#define HWRM_DBG_CRASHDUMP_HEADER                 0xff1dUL
513	#define HWRM_DBG_CRASHDUMP_ERASE                  0xff1eUL
514	#define HWRM_DBG_DRV_TRACE                        0xff1fUL
515	#define HWRM_DBG_QCAPS                            0xff20UL
516	#define HWRM_DBG_QCFG                             0xff21UL
517	#define HWRM_DBG_CRASHDUMP_MEDIUM_CFG             0xff22UL
518	#define HWRM_DBG_USEQ_ALLOC                       0xff23UL
519	#define HWRM_DBG_USEQ_FREE                        0xff24UL
520	#define HWRM_DBG_USEQ_FLUSH                       0xff25UL
521	#define HWRM_DBG_USEQ_QCAPS                       0xff26UL
522	#define HWRM_DBG_USEQ_CW_CFG                      0xff27UL
523	#define HWRM_DBG_USEQ_SCHED_CFG                   0xff28UL
524	#define HWRM_DBG_USEQ_RUN                         0xff29UL
525	#define HWRM_DBG_USEQ_DELIVERY_REQ                0xff2aUL
526	#define HWRM_DBG_USEQ_RESP_HDR                    0xff2bUL
527	#define HWRM_NVM_GET_VPD_FIELD_INFO               0xffeaUL
528	#define HWRM_NVM_SET_VPD_FIELD_INFO               0xffebUL
529	#define HWRM_NVM_DEFRAG                           0xffecUL
530	#define HWRM_NVM_REQ_ARBITRATION                  0xffedUL
531	#define HWRM_NVM_FACTORY_DEFAULTS                 0xffeeUL
532	#define HWRM_NVM_VALIDATE_OPTION                  0xffefUL
533	#define HWRM_NVM_FLUSH                            0xfff0UL
534	#define HWRM_NVM_GET_VARIABLE                     0xfff1UL
535	#define HWRM_NVM_SET_VARIABLE                     0xfff2UL
536	#define HWRM_NVM_INSTALL_UPDATE                   0xfff3UL
537	#define HWRM_NVM_MODIFY                           0xfff4UL
538	#define HWRM_NVM_VERIFY_UPDATE                    0xfff5UL
539	#define HWRM_NVM_GET_DEV_INFO                     0xfff6UL
540	#define HWRM_NVM_ERASE_DIR_ENTRY                  0xfff7UL
541	#define HWRM_NVM_MOD_DIR_ENTRY                    0xfff8UL
542	#define HWRM_NVM_FIND_DIR_ENTRY                   0xfff9UL
543	#define HWRM_NVM_GET_DIR_ENTRIES                  0xfffaUL
544	#define HWRM_NVM_GET_DIR_INFO                     0xfffbUL
545	#define HWRM_NVM_RAW_DUMP                         0xfffcUL
546	#define HWRM_NVM_READ                             0xfffdUL
547	#define HWRM_NVM_WRITE                            0xfffeUL
548	#define HWRM_NVM_RAW_WRITE_BLK                    0xffffUL
549	#define HWRM_LAST                                HWRM_NVM_RAW_WRITE_BLK
550	__le16	unused_0[3];
551};
552
553/* ret_codes (size:64b/8B) */
554struct ret_codes {
555	__le16	error_code;
556	#define HWRM_ERR_CODE_SUCCESS                      0x0UL
557	#define HWRM_ERR_CODE_FAIL                         0x1UL
558	#define HWRM_ERR_CODE_INVALID_PARAMS               0x2UL
559	#define HWRM_ERR_CODE_RESOURCE_ACCESS_DENIED       0x3UL
560	#define HWRM_ERR_CODE_RESOURCE_ALLOC_ERROR         0x4UL
561	#define HWRM_ERR_CODE_INVALID_FLAGS                0x5UL
562	#define HWRM_ERR_CODE_INVALID_ENABLES              0x6UL
563	#define HWRM_ERR_CODE_UNSUPPORTED_TLV              0x7UL
564	#define HWRM_ERR_CODE_NO_BUFFER                    0x8UL
565	#define HWRM_ERR_CODE_UNSUPPORTED_OPTION_ERR       0x9UL
566	#define HWRM_ERR_CODE_HOT_RESET_PROGRESS           0xaUL
567	#define HWRM_ERR_CODE_HOT_RESET_FAIL               0xbUL
568	#define HWRM_ERR_CODE_NO_FLOW_COUNTER_DURING_ALLOC 0xcUL
569	#define HWRM_ERR_CODE_KEY_HASH_COLLISION           0xdUL
570	#define HWRM_ERR_CODE_KEY_ALREADY_EXISTS           0xeUL
571	#define HWRM_ERR_CODE_HWRM_ERROR                   0xfUL
572	#define HWRM_ERR_CODE_BUSY                         0x10UL
573	#define HWRM_ERR_CODE_RESOURCE_LOCKED              0x11UL
574	#define HWRM_ERR_CODE_PF_UNAVAILABLE               0x12UL
575	#define HWRM_ERR_CODE_ENTITY_NOT_PRESENT           0x13UL
576	#define HWRM_ERR_CODE_TLV_ENCAPSULATED_RESPONSE    0x8000UL
577	#define HWRM_ERR_CODE_UNKNOWN_ERR                  0xfffeUL
578	#define HWRM_ERR_CODE_CMD_NOT_SUPPORTED            0xffffUL
579	#define HWRM_ERR_CODE_LAST                        HWRM_ERR_CODE_CMD_NOT_SUPPORTED
580	__le16	unused_0[3];
581};
582
583/* hwrm_err_output (size:128b/16B) */
584struct hwrm_err_output {
585	__le16	error_code;
586	__le16	req_type;
587	__le16	seq_id;
588	__le16	resp_len;
589	__le32	opaque_0;
590	__le16	opaque_1;
591	u8	cmd_err;
592	u8	valid;
593};
594#define HWRM_NA_SIGNATURE ((__le32)(-1))
595#define HWRM_MAX_REQ_LEN 128
596#define HWRM_MAX_RESP_LEN 704
597#define HW_HASH_INDEX_SIZE 0x80
598#define HW_HASH_KEY_SIZE 40
599#define HWRM_RESP_VALID_KEY 1
600#define HWRM_TARGET_ID_BONO 0xFFF8
601#define HWRM_TARGET_ID_KONG 0xFFF9
602#define HWRM_TARGET_ID_APE 0xFFFA
603#define HWRM_TARGET_ID_TOOLS 0xFFFD
604#define HWRM_VERSION_MAJOR 1
605#define HWRM_VERSION_MINOR 10
606#define HWRM_VERSION_UPDATE 3
607#define HWRM_VERSION_RSVD 15
608#define HWRM_VERSION_STR "1.10.3.15"
609
610/* hwrm_ver_get_input (size:192b/24B) */
611struct hwrm_ver_get_input {
612	__le16	req_type;
613	__le16	cmpl_ring;
614	__le16	seq_id;
615	__le16	target_id;
616	__le64	resp_addr;
617	u8	hwrm_intf_maj;
618	u8	hwrm_intf_min;
619	u8	hwrm_intf_upd;
620	u8	unused_0[5];
621};
622
623/* hwrm_ver_get_output (size:1408b/176B) */
624struct hwrm_ver_get_output {
625	__le16	error_code;
626	__le16	req_type;
627	__le16	seq_id;
628	__le16	resp_len;
629	u8	hwrm_intf_maj_8b;
630	u8	hwrm_intf_min_8b;
631	u8	hwrm_intf_upd_8b;
632	u8	hwrm_intf_rsvd_8b;
633	u8	hwrm_fw_maj_8b;
634	u8	hwrm_fw_min_8b;
635	u8	hwrm_fw_bld_8b;
636	u8	hwrm_fw_rsvd_8b;
637	u8	mgmt_fw_maj_8b;
638	u8	mgmt_fw_min_8b;
639	u8	mgmt_fw_bld_8b;
640	u8	mgmt_fw_rsvd_8b;
641	u8	netctrl_fw_maj_8b;
642	u8	netctrl_fw_min_8b;
643	u8	netctrl_fw_bld_8b;
644	u8	netctrl_fw_rsvd_8b;
645	__le32	dev_caps_cfg;
646	#define VER_GET_RESP_DEV_CAPS_CFG_SECURE_FW_UPD_SUPPORTED                  0x1UL
647	#define VER_GET_RESP_DEV_CAPS_CFG_FW_DCBX_AGENT_SUPPORTED                  0x2UL
648	#define VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_SUPPORTED                      0x4UL
649	#define VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_REQUIRED                       0x8UL
650	#define VER_GET_RESP_DEV_CAPS_CFG_KONG_MB_CHNL_SUPPORTED                   0x10UL
651	#define VER_GET_RESP_DEV_CAPS_CFG_FLOW_HANDLE_64BIT_SUPPORTED              0x20UL
652	#define VER_GET_RESP_DEV_CAPS_CFG_L2_FILTER_TYPES_ROCE_OR_L2_SUPPORTED     0x40UL
653	#define VER_GET_RESP_DEV_CAPS_CFG_VIRTIO_VSWITCH_OFFLOAD_SUPPORTED         0x80UL
654	#define VER_GET_RESP_DEV_CAPS_CFG_TRUSTED_VF_SUPPORTED                     0x100UL
655	#define VER_GET_RESP_DEV_CAPS_CFG_FLOW_AGING_SUPPORTED                     0x200UL
656	#define VER_GET_RESP_DEV_CAPS_CFG_ADV_FLOW_COUNTERS_SUPPORTED              0x400UL
657	#define VER_GET_RESP_DEV_CAPS_CFG_CFA_EEM_SUPPORTED                        0x800UL
658	#define VER_GET_RESP_DEV_CAPS_CFG_CFA_ADV_FLOW_MGNT_SUPPORTED              0x1000UL
659	#define VER_GET_RESP_DEV_CAPS_CFG_CFA_TFLIB_SUPPORTED                      0x2000UL
660	#define VER_GET_RESP_DEV_CAPS_CFG_CFA_TRUFLOW_SUPPORTED                    0x4000UL
661	#define VER_GET_RESP_DEV_CAPS_CFG_SECURE_BOOT_CAPABLE                      0x8000UL
662	u8	roce_fw_maj_8b;
663	u8	roce_fw_min_8b;
664	u8	roce_fw_bld_8b;
665	u8	roce_fw_rsvd_8b;
666	char	hwrm_fw_name[16];
667	char	mgmt_fw_name[16];
668	char	netctrl_fw_name[16];
669	char	active_pkg_name[16];
670	char	roce_fw_name[16];
671	__le16	chip_num;
672	u8	chip_rev;
673	u8	chip_metal;
674	u8	chip_bond_id;
675	u8	chip_platform_type;
676	#define VER_GET_RESP_CHIP_PLATFORM_TYPE_ASIC      0x0UL
677	#define VER_GET_RESP_CHIP_PLATFORM_TYPE_FPGA      0x1UL
678	#define VER_GET_RESP_CHIP_PLATFORM_TYPE_PALLADIUM 0x2UL
679	#define VER_GET_RESP_CHIP_PLATFORM_TYPE_LAST     VER_GET_RESP_CHIP_PLATFORM_TYPE_PALLADIUM
680	__le16	max_req_win_len;
681	__le16	max_resp_len;
682	__le16	def_req_timeout;
683	u8	flags;
684	#define VER_GET_RESP_FLAGS_DEV_NOT_RDY                   0x1UL
685	#define VER_GET_RESP_FLAGS_EXT_VER_AVAIL                 0x2UL
686	#define VER_GET_RESP_FLAGS_DEV_NOT_RDY_BACKING_STORE     0x4UL
687	u8	unused_0[2];
688	u8	always_1;
689	__le16	hwrm_intf_major;
690	__le16	hwrm_intf_minor;
691	__le16	hwrm_intf_build;
692	__le16	hwrm_intf_patch;
693	__le16	hwrm_fw_major;
694	__le16	hwrm_fw_minor;
695	__le16	hwrm_fw_build;
696	__le16	hwrm_fw_patch;
697	__le16	mgmt_fw_major;
698	__le16	mgmt_fw_minor;
699	__le16	mgmt_fw_build;
700	__le16	mgmt_fw_patch;
701	__le16	netctrl_fw_major;
702	__le16	netctrl_fw_minor;
703	__le16	netctrl_fw_build;
704	__le16	netctrl_fw_patch;
705	__le16	roce_fw_major;
706	__le16	roce_fw_minor;
707	__le16	roce_fw_build;
708	__le16	roce_fw_patch;
709	__le16	max_ext_req_len;
710	__le16	max_req_timeout;
711	u8	unused_1[3];
712	u8	valid;
713};
714
715/* eject_cmpl (size:128b/16B) */
716struct eject_cmpl {
717	__le16	type;
718	#define EJECT_CMPL_TYPE_MASK       0x3fUL
719	#define EJECT_CMPL_TYPE_SFT        0
720	#define EJECT_CMPL_TYPE_STAT_EJECT   0x1aUL
721	#define EJECT_CMPL_TYPE_LAST        EJECT_CMPL_TYPE_STAT_EJECT
722	#define EJECT_CMPL_FLAGS_MASK      0xffc0UL
723	#define EJECT_CMPL_FLAGS_SFT       6
724	#define EJECT_CMPL_FLAGS_ERROR      0x40UL
725	__le16	len;
726	__le32	opaque;
727	__le16	v;
728	#define EJECT_CMPL_V                              0x1UL
729	#define EJECT_CMPL_ERRORS_MASK                    0xfffeUL
730	#define EJECT_CMPL_ERRORS_SFT                     1
731	#define EJECT_CMPL_ERRORS_BUFFER_ERROR_MASK        0xeUL
732	#define EJECT_CMPL_ERRORS_BUFFER_ERROR_SFT         1
733	#define EJECT_CMPL_ERRORS_BUFFER_ERROR_NO_BUFFER     (0x0UL << 1)
734	#define EJECT_CMPL_ERRORS_BUFFER_ERROR_DID_NOT_FIT   (0x1UL << 1)
735	#define EJECT_CMPL_ERRORS_BUFFER_ERROR_BAD_FORMAT    (0x3UL << 1)
736	#define EJECT_CMPL_ERRORS_BUFFER_ERROR_FLUSH         (0x5UL << 1)
737	#define EJECT_CMPL_ERRORS_BUFFER_ERROR_LAST         EJECT_CMPL_ERRORS_BUFFER_ERROR_FLUSH
738	__le16	reserved16;
739	__le32	unused_2;
740};
741
742/* hwrm_cmpl (size:128b/16B) */
743struct hwrm_cmpl {
744	__le16	type;
745	#define CMPL_TYPE_MASK     0x3fUL
746	#define CMPL_TYPE_SFT      0
747	#define CMPL_TYPE_HWRM_DONE  0x20UL
748	#define CMPL_TYPE_LAST      CMPL_TYPE_HWRM_DONE
749	__le16	sequence_id;
750	__le32	unused_1;
751	__le32	v;
752	#define CMPL_V     0x1UL
753	__le32	unused_3;
754};
755
756/* hwrm_fwd_req_cmpl (size:128b/16B) */
757struct hwrm_fwd_req_cmpl {
758	__le16	req_len_type;
759	#define FWD_REQ_CMPL_TYPE_MASK        0x3fUL
760	#define FWD_REQ_CMPL_TYPE_SFT         0
761	#define FWD_REQ_CMPL_TYPE_HWRM_FWD_REQ  0x22UL
762	#define FWD_REQ_CMPL_TYPE_LAST         FWD_REQ_CMPL_TYPE_HWRM_FWD_REQ
763	#define FWD_REQ_CMPL_REQ_LEN_MASK     0xffc0UL
764	#define FWD_REQ_CMPL_REQ_LEN_SFT      6
765	__le16	source_id;
766	__le32	unused0;
767	__le32	req_buf_addr_v[2];
768	#define FWD_REQ_CMPL_V                0x1UL
769	#define FWD_REQ_CMPL_REQ_BUF_ADDR_MASK 0xfffffffeUL
770	#define FWD_REQ_CMPL_REQ_BUF_ADDR_SFT 1
771};
772
773/* hwrm_fwd_resp_cmpl (size:128b/16B) */
774struct hwrm_fwd_resp_cmpl {
775	__le16	type;
776	#define FWD_RESP_CMPL_TYPE_MASK         0x3fUL
777	#define FWD_RESP_CMPL_TYPE_SFT          0
778	#define FWD_RESP_CMPL_TYPE_HWRM_FWD_RESP  0x24UL
779	#define FWD_RESP_CMPL_TYPE_LAST          FWD_RESP_CMPL_TYPE_HWRM_FWD_RESP
780	__le16	source_id;
781	__le16	resp_len;
782	__le16	unused_1;
783	__le32	resp_buf_addr_v[2];
784	#define FWD_RESP_CMPL_V                 0x1UL
785	#define FWD_RESP_CMPL_RESP_BUF_ADDR_MASK 0xfffffffeUL
786	#define FWD_RESP_CMPL_RESP_BUF_ADDR_SFT 1
787};
788
789/* hwrm_async_event_cmpl (size:128b/16B) */
790struct hwrm_async_event_cmpl {
791	__le16	type;
792	#define ASYNC_EVENT_CMPL_TYPE_MASK            0x3fUL
793	#define ASYNC_EVENT_CMPL_TYPE_SFT             0
794	#define ASYNC_EVENT_CMPL_TYPE_HWRM_ASYNC_EVENT  0x2eUL
795	#define ASYNC_EVENT_CMPL_TYPE_LAST             ASYNC_EVENT_CMPL_TYPE_HWRM_ASYNC_EVENT
796	__le16	event_id;
797	#define ASYNC_EVENT_CMPL_EVENT_ID_LINK_STATUS_CHANGE              0x0UL
798	#define ASYNC_EVENT_CMPL_EVENT_ID_LINK_MTU_CHANGE                 0x1UL
799	#define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CHANGE               0x2UL
800	#define ASYNC_EVENT_CMPL_EVENT_ID_DCB_CONFIG_CHANGE               0x3UL
801	#define ASYNC_EVENT_CMPL_EVENT_ID_PORT_CONN_NOT_ALLOWED           0x4UL
802	#define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_NOT_ALLOWED      0x5UL
803	#define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_CHANGE           0x6UL
804	#define ASYNC_EVENT_CMPL_EVENT_ID_PORT_PHY_CFG_CHANGE             0x7UL
805	#define ASYNC_EVENT_CMPL_EVENT_ID_RESET_NOTIFY                    0x8UL
806	#define ASYNC_EVENT_CMPL_EVENT_ID_ERROR_RECOVERY                  0x9UL
807	#define ASYNC_EVENT_CMPL_EVENT_ID_RING_MONITOR_MSG                0xaUL
808	#define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_UNLOAD                0x10UL
809	#define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_LOAD                  0x11UL
810	#define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_FLR_PROC_CMPLT             0x12UL
811	#define ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_UNLOAD                  0x20UL
812	#define ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_LOAD                    0x21UL
813	#define ASYNC_EVENT_CMPL_EVENT_ID_VF_FLR                          0x30UL
814	#define ASYNC_EVENT_CMPL_EVENT_ID_VF_MAC_ADDR_CHANGE              0x31UL
815	#define ASYNC_EVENT_CMPL_EVENT_ID_PF_VF_COMM_STATUS_CHANGE        0x32UL
816	#define ASYNC_EVENT_CMPL_EVENT_ID_VF_CFG_CHANGE                   0x33UL
817	#define ASYNC_EVENT_CMPL_EVENT_ID_LLFC_PFC_CHANGE                 0x34UL
818	#define ASYNC_EVENT_CMPL_EVENT_ID_DEFAULT_VNIC_CHANGE             0x35UL
819	#define ASYNC_EVENT_CMPL_EVENT_ID_HW_FLOW_AGED                    0x36UL
820	#define ASYNC_EVENT_CMPL_EVENT_ID_DEBUG_NOTIFICATION              0x37UL
821	#define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CACHE_FLUSH_REQ             0x38UL
822	#define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CACHE_FLUSH_DONE            0x39UL
823	#define ASYNC_EVENT_CMPL_EVENT_ID_TCP_FLAG_ACTION_CHANGE          0x3aUL
824	#define ASYNC_EVENT_CMPL_EVENT_ID_EEM_FLOW_ACTIVE                 0x3bUL
825	#define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CFG_CHANGE                  0x3cUL
826	#define ASYNC_EVENT_CMPL_EVENT_ID_TFLIB_DEFAULT_VNIC_CHANGE       0x3dUL
827	#define ASYNC_EVENT_CMPL_EVENT_ID_TFLIB_LINK_STATUS_CHANGE        0x3eUL
828	#define ASYNC_EVENT_CMPL_EVENT_ID_QUIESCE_DONE                    0x3fUL
829	#define ASYNC_EVENT_CMPL_EVENT_ID_DEFERRED_RESPONSE               0x40UL
830	#define ASYNC_EVENT_CMPL_EVENT_ID_PFC_WATCHDOG_CFG_CHANGE         0x41UL
831	#define ASYNC_EVENT_CMPL_EVENT_ID_ECHO_REQUEST                    0x42UL
832	#define ASYNC_EVENT_CMPL_EVENT_ID_PHC_UPDATE                      0x43UL
833	#define ASYNC_EVENT_CMPL_EVENT_ID_PPS_TIMESTAMP                   0x44UL
834	#define ASYNC_EVENT_CMPL_EVENT_ID_ERROR_REPORT                    0x45UL
835	#define ASYNC_EVENT_CMPL_EVENT_ID_DOORBELL_PACING_THRESHOLD       0x46UL
836	#define ASYNC_EVENT_CMPL_EVENT_ID_RSS_CHANGE                      0x47UL
837	#define ASYNC_EVENT_CMPL_EVENT_ID_DOORBELL_PACING_NQ_UPDATE       0x48UL
838	#define ASYNC_EVENT_CMPL_EVENT_ID_HW_DOORBELL_RECOVERY_READ_ERROR 0x49UL
839	#define ASYNC_EVENT_CMPL_EVENT_ID_CTX_ERROR                       0x4aUL
840	#define ASYNC_EVENT_CMPL_EVENT_ID_UDCC_SESSION_CHANGE             0x4bUL
841	#define ASYNC_EVENT_CMPL_EVENT_ID_MAX_RGTR_EVENT_ID               0x4cUL
842	#define ASYNC_EVENT_CMPL_EVENT_ID_FW_TRACE_MSG                    0xfeUL
843	#define ASYNC_EVENT_CMPL_EVENT_ID_HWRM_ERROR                      0xffUL
844	#define ASYNC_EVENT_CMPL_EVENT_ID_LAST                           ASYNC_EVENT_CMPL_EVENT_ID_HWRM_ERROR
845	__le32	event_data2;
846	u8	opaque_v;
847	#define ASYNC_EVENT_CMPL_V          0x1UL
848	#define ASYNC_EVENT_CMPL_OPAQUE_MASK 0xfeUL
849	#define ASYNC_EVENT_CMPL_OPAQUE_SFT 1
850	u8	timestamp_lo;
851	__le16	timestamp_hi;
852	__le32	event_data1;
853};
854
855/* hwrm_async_event_cmpl_link_status_change (size:128b/16B) */
856struct hwrm_async_event_cmpl_link_status_change {
857	__le16	type;
858	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_MASK            0x3fUL
859	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_SFT             0
860	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_HWRM_ASYNC_EVENT  0x2eUL
861	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_LAST             ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_HWRM_ASYNC_EVENT
862	__le16	event_id;
863	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LINK_STATUS_CHANGE 0x0UL
864	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LAST              ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LINK_STATUS_CHANGE
865	__le32	event_data2;
866	u8	opaque_v;
867	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_V          0x1UL
868	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_OPAQUE_MASK 0xfeUL
869	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_OPAQUE_SFT 1
870	u8	timestamp_lo;
871	__le16	timestamp_hi;
872	__le32	event_data1;
873	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE     0x1UL
874	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_DOWN  0x0UL
875	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_UP    0x1UL
876	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_LAST ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_UP
877	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_MASK       0xeUL
878	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_SFT        1
879	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_ID_MASK    0xffff0UL
880	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_ID_SFT     4
881	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PF_ID_MASK      0xff00000UL
882	#define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PF_ID_SFT       20
883};
884
885/* hwrm_async_event_cmpl_port_conn_not_allowed (size:128b/16B) */
886struct hwrm_async_event_cmpl_port_conn_not_allowed {
887	__le16	type;
888	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_MASK            0x3fUL
889	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_SFT             0
890	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_HWRM_ASYNC_EVENT  0x2eUL
891	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_LAST             ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_HWRM_ASYNC_EVENT
892	__le16	event_id;
893	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_PORT_CONN_NOT_ALLOWED 0x4UL
894	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_LAST                 ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_PORT_CONN_NOT_ALLOWED
895	__le32	event_data2;
896	u8	opaque_v;
897	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_V          0x1UL
898	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_OPAQUE_MASK 0xfeUL
899	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_OPAQUE_SFT 1
900	u8	timestamp_lo;
901	__le16	timestamp_hi;
902	__le32	event_data1;
903	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_PORT_ID_MASK                 0xffffUL
904	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_PORT_ID_SFT                  0
905	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_MASK      0xff0000UL
906	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_SFT       16
907	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_NONE        (0x0UL << 16)
908	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_DISABLETX   (0x1UL << 16)
909	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_WARNINGMSG  (0x2UL << 16)
910	#define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_PWRDOWN     (0x3UL << 16)
911	#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
912};
913
914/* hwrm_async_event_cmpl_link_speed_cfg_change (size:128b/16B) */
915struct hwrm_async_event_cmpl_link_speed_cfg_change {
916	__le16	type;
917	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_MASK            0x3fUL
918	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_SFT             0
919	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT  0x2eUL
920	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_LAST             ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT
921	__le16	event_id;
922	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LINK_SPEED_CFG_CHANGE 0x6UL
923	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LAST                 ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LINK_SPEED_CFG_CHANGE
924	__le32	event_data2;
925	u8	opaque_v;
926	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_V          0x1UL
927	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_OPAQUE_MASK 0xfeUL
928	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_OPAQUE_SFT 1
929	u8	timestamp_lo;
930	__le16	timestamp_hi;
931	__le32	event_data1;
932	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_PORT_ID_MASK                     0xffffUL
933	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_PORT_ID_SFT                      0
934	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_SUPPORTED_LINK_SPEEDS_CHANGE     0x10000UL
935	#define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_ILLEGAL_LINK_SPEED_CFG           0x20000UL
936};
937
938/* hwrm_async_event_cmpl_reset_notify (size:128b/16B) */
939struct hwrm_async_event_cmpl_reset_notify {
940	__le16	type;
941	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_MASK            0x3fUL
942	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_SFT             0
943	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_HWRM_ASYNC_EVENT  0x2eUL
944	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_LAST             ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_HWRM_ASYNC_EVENT
945	__le16	event_id;
946	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_RESET_NOTIFY 0x8UL
947	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_LAST        ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_RESET_NOTIFY
948	__le32	event_data2;
949	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA2_FW_STATUS_CODE_MASK 0xffffUL
950	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA2_FW_STATUS_CODE_SFT 0
951	u8	opaque_v;
952	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_V          0x1UL
953	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_OPAQUE_MASK 0xfeUL
954	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_OPAQUE_SFT 1
955	u8	timestamp_lo;
956	__le16	timestamp_hi;
957	__le32	event_data1;
958	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_MASK                  0xffUL
959	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_SFT                   0
960	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_STOP_TX_QUEUE    0x1UL
961	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_IFDOWN           0x2UL
962	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_LAST                   ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_IFDOWN
963	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_MASK                    0xff00UL
964	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_SFT                     8
965	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_MANAGEMENT_RESET_REQUEST  (0x1UL << 8)
966	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_EXCEPTION_FATAL        (0x2UL << 8)
967	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_EXCEPTION_NON_FATAL    (0x3UL << 8)
968	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FAST_RESET                (0x4UL << 8)
969	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_ACTIVATION             (0x5UL << 8)
970	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_LAST                     ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_ACTIVATION
971	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DELAY_IN_100MS_TICKS_MASK           0xffff0000UL
972	#define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DELAY_IN_100MS_TICKS_SFT            16
973};
974
975/* hwrm_async_event_cmpl_error_recovery (size:128b/16B) */
976struct hwrm_async_event_cmpl_error_recovery {
977	__le16	type;
978	#define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_MASK            0x3fUL
979	#define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_SFT             0
980	#define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_HWRM_ASYNC_EVENT  0x2eUL
981	#define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_LAST             ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_HWRM_ASYNC_EVENT
982	__le16	event_id;
983	#define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_ERROR_RECOVERY 0x9UL
984	#define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_LAST          ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_ERROR_RECOVERY
985	__le32	event_data2;
986	u8	opaque_v;
987	#define ASYNC_EVENT_CMPL_ERROR_RECOVERY_V          0x1UL
988	#define ASYNC_EVENT_CMPL_ERROR_RECOVERY_OPAQUE_MASK 0xfeUL
989	#define ASYNC_EVENT_CMPL_ERROR_RECOVERY_OPAQUE_SFT 1
990	u8	timestamp_lo;
991	__le16	timestamp_hi;
992	__le32	event_data1;
993	#define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_MASK                 0xffUL
994	#define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_SFT                  0
995	#define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_MASTER_FUNC           0x1UL
996	#define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_RECOVERY_ENABLED      0x2UL
997};
998
999/* hwrm_async_event_cmpl_ring_monitor_msg (size:128b/16B) */
1000struct hwrm_async_event_cmpl_ring_monitor_msg {
1001	__le16	type;
1002	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_MASK            0x3fUL
1003	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_SFT             0
1004	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1005	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_LAST             ASYNC_EVENT_CMPL_RING_MONITOR_MSG_TYPE_HWRM_ASYNC_EVENT
1006	__le16	event_id;
1007	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_ID_RING_MONITOR_MSG 0xaUL
1008	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_ID_LAST            ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_ID_RING_MONITOR_MSG
1009	__le32	event_data2;
1010	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_MASK 0xffUL
1011	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_SFT 0
1012	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_TX    0x0UL
1013	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_RX    0x1UL
1014	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_CMPL  0x2UL
1015	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_LAST ASYNC_EVENT_CMPL_RING_MONITOR_MSG_EVENT_DATA2_DISABLE_RING_TYPE_CMPL
1016	u8	opaque_v;
1017	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_V          0x1UL
1018	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_OPAQUE_MASK 0xfeUL
1019	#define ASYNC_EVENT_CMPL_RING_MONITOR_MSG_OPAQUE_SFT 1
1020	u8	timestamp_lo;
1021	__le16	timestamp_hi;
1022	__le32	event_data1;
1023};
1024
1025/* hwrm_async_event_cmpl_vf_cfg_change (size:128b/16B) */
1026struct hwrm_async_event_cmpl_vf_cfg_change {
1027	__le16	type;
1028	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_MASK            0x3fUL
1029	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_SFT             0
1030	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1031	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_LAST             ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT
1032	__le16	event_id;
1033	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_VF_CFG_CHANGE 0x33UL
1034	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_LAST         ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_VF_CFG_CHANGE
1035	__le32	event_data2;
1036	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA2_VF_ID_MASK 0xffffUL
1037	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA2_VF_ID_SFT 0
1038	u8	opaque_v;
1039	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_V          0x1UL
1040	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_OPAQUE_MASK 0xfeUL
1041	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_OPAQUE_SFT 1
1042	u8	timestamp_lo;
1043	__le16	timestamp_hi;
1044	__le32	event_data1;
1045	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_MTU_CHANGE                0x1UL
1046	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_MRU_CHANGE                0x2UL
1047	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_DFLT_MAC_ADDR_CHANGE      0x4UL
1048	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_DFLT_VLAN_CHANGE          0x8UL
1049	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_TRUSTED_VF_CFG_CHANGE     0x10UL
1050	#define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_TF_OWNERSHIP_RELEASE      0x20UL
1051};
1052
1053/* hwrm_async_event_cmpl_default_vnic_change (size:128b/16B) */
1054struct hwrm_async_event_cmpl_default_vnic_change {
1055	__le16	type;
1056	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_MASK            0x3fUL
1057	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_SFT             0
1058	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1059	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_LAST             ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_TYPE_HWRM_ASYNC_EVENT
1060	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_UNUSED1_MASK         0xffc0UL
1061	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_UNUSED1_SFT          6
1062	__le16	event_id;
1063	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_ID_ALLOC_FREE_NOTIFICATION 0x35UL
1064	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_ID_LAST                   ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_ID_ALLOC_FREE_NOTIFICATION
1065	__le32	event_data2;
1066	u8	opaque_v;
1067	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_V          0x1UL
1068	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_OPAQUE_MASK 0xfeUL
1069	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_OPAQUE_SFT 1
1070	u8	timestamp_lo;
1071	__le16	timestamp_hi;
1072	__le32	event_data1;
1073	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_MASK          0x3UL
1074	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_SFT           0
1075	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_DEF_VNIC_ALLOC  0x1UL
1076	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_DEF_VNIC_FREE   0x2UL
1077	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_LAST           ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_DEF_VNIC_STATE_DEF_VNIC_FREE
1078	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_PF_ID_MASK                   0x3fcUL
1079	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_PF_ID_SFT                    2
1080	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_VF_ID_MASK                   0x3fffc00UL
1081	#define ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_VF_ID_SFT                    10
1082};
1083
1084/* hwrm_async_event_cmpl_hw_flow_aged (size:128b/16B) */
1085struct hwrm_async_event_cmpl_hw_flow_aged {
1086	__le16	type;
1087	#define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_MASK            0x3fUL
1088	#define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_SFT             0
1089	#define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1090	#define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_LAST             ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_HWRM_ASYNC_EVENT
1091	__le16	event_id;
1092	#define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_HW_FLOW_AGED 0x36UL
1093	#define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_LAST        ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_HW_FLOW_AGED
1094	__le32	event_data2;
1095	u8	opaque_v;
1096	#define ASYNC_EVENT_CMPL_HW_FLOW_AGED_V          0x1UL
1097	#define ASYNC_EVENT_CMPL_HW_FLOW_AGED_OPAQUE_MASK 0xfeUL
1098	#define ASYNC_EVENT_CMPL_HW_FLOW_AGED_OPAQUE_SFT 1
1099	u8	timestamp_lo;
1100	__le16	timestamp_hi;
1101	__le32	event_data1;
1102	#define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_ID_MASK       0x7fffffffUL
1103	#define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_ID_SFT        0
1104	#define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION     0x80000000UL
1105	#define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_RX    (0x0UL << 31)
1106	#define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_TX    (0x1UL << 31)
1107	#define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_LAST ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_TX
1108};
1109
1110/* hwrm_async_event_cmpl_eem_cache_flush_req (size:128b/16B) */
1111struct hwrm_async_event_cmpl_eem_cache_flush_req {
1112	__le16	type;
1113	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_MASK            0x3fUL
1114	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_SFT             0
1115	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1116	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_LAST             ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_HWRM_ASYNC_EVENT
1117	__le16	event_id;
1118	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_EEM_CACHE_FLUSH_REQ 0x38UL
1119	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_LAST               ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_EEM_CACHE_FLUSH_REQ
1120	__le32	event_data2;
1121	u8	opaque_v;
1122	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_V          0x1UL
1123	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_OPAQUE_MASK 0xfeUL
1124	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_OPAQUE_SFT 1
1125	u8	timestamp_lo;
1126	__le16	timestamp_hi;
1127	__le32	event_data1;
1128};
1129
1130/* hwrm_async_event_cmpl_eem_cache_flush_done (size:128b/16B) */
1131struct hwrm_async_event_cmpl_eem_cache_flush_done {
1132	__le16	type;
1133	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_MASK            0x3fUL
1134	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_SFT             0
1135	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1136	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_LAST             ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_HWRM_ASYNC_EVENT
1137	__le16	event_id;
1138	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_EEM_CACHE_FLUSH_DONE 0x39UL
1139	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_LAST                ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_EEM_CACHE_FLUSH_DONE
1140	__le32	event_data2;
1141	u8	opaque_v;
1142	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_V          0x1UL
1143	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_OPAQUE_MASK 0xfeUL
1144	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_OPAQUE_SFT 1
1145	u8	timestamp_lo;
1146	__le16	timestamp_hi;
1147	__le32	event_data1;
1148	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_DATA1_FID_MASK 0xffffUL
1149	#define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_DATA1_FID_SFT 0
1150};
1151
1152/* hwrm_async_event_cmpl_deferred_response (size:128b/16B) */
1153struct hwrm_async_event_cmpl_deferred_response {
1154	__le16	type;
1155	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_MASK            0x3fUL
1156	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_SFT             0
1157	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1158	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_LAST             ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_TYPE_HWRM_ASYNC_EVENT
1159	__le16	event_id;
1160	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_ID_DEFERRED_RESPONSE 0x40UL
1161	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_ID_LAST             ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_ID_DEFERRED_RESPONSE
1162	__le32	event_data2;
1163	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_DATA2_SEQ_ID_MASK 0xffffUL
1164	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_EVENT_DATA2_SEQ_ID_SFT 0
1165	u8	opaque_v;
1166	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_V          0x1UL
1167	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_OPAQUE_MASK 0xfeUL
1168	#define ASYNC_EVENT_CMPL_DEFERRED_RESPONSE_OPAQUE_SFT 1
1169	u8	timestamp_lo;
1170	__le16	timestamp_hi;
1171	__le32	event_data1;
1172};
1173
1174/* hwrm_async_event_cmpl_echo_request (size:128b/16B) */
1175struct hwrm_async_event_cmpl_echo_request {
1176	__le16	type;
1177	#define ASYNC_EVENT_CMPL_ECHO_REQUEST_TYPE_MASK            0x3fUL
1178	#define ASYNC_EVENT_CMPL_ECHO_REQUEST_TYPE_SFT             0
1179	#define ASYNC_EVENT_CMPL_ECHO_REQUEST_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1180	#define ASYNC_EVENT_CMPL_ECHO_REQUEST_TYPE_LAST             ASYNC_EVENT_CMPL_ECHO_REQUEST_TYPE_HWRM_ASYNC_EVENT
1181	__le16	event_id;
1182	#define ASYNC_EVENT_CMPL_ECHO_REQUEST_EVENT_ID_ECHO_REQUEST 0x42UL
1183	#define ASYNC_EVENT_CMPL_ECHO_REQUEST_EVENT_ID_LAST        ASYNC_EVENT_CMPL_ECHO_REQUEST_EVENT_ID_ECHO_REQUEST
1184	__le32	event_data2;
1185	u8	opaque_v;
1186	#define ASYNC_EVENT_CMPL_ECHO_REQUEST_V          0x1UL
1187	#define ASYNC_EVENT_CMPL_ECHO_REQUEST_OPAQUE_MASK 0xfeUL
1188	#define ASYNC_EVENT_CMPL_ECHO_REQUEST_OPAQUE_SFT 1
1189	u8	timestamp_lo;
1190	__le16	timestamp_hi;
1191	__le32	event_data1;
1192};
1193
1194/* hwrm_async_event_cmpl_phc_update (size:128b/16B) */
1195struct hwrm_async_event_cmpl_phc_update {
1196	__le16	type;
1197	#define ASYNC_EVENT_CMPL_PHC_UPDATE_TYPE_MASK            0x3fUL
1198	#define ASYNC_EVENT_CMPL_PHC_UPDATE_TYPE_SFT             0
1199	#define ASYNC_EVENT_CMPL_PHC_UPDATE_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1200	#define ASYNC_EVENT_CMPL_PHC_UPDATE_TYPE_LAST             ASYNC_EVENT_CMPL_PHC_UPDATE_TYPE_HWRM_ASYNC_EVENT
1201	__le16	event_id;
1202	#define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_ID_PHC_UPDATE 0x43UL
1203	#define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_ID_LAST      ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_ID_PHC_UPDATE
1204	__le32	event_data2;
1205	#define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA2_PHC_MASTER_FID_MASK 0xffffUL
1206	#define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA2_PHC_MASTER_FID_SFT 0
1207	#define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA2_PHC_SEC_FID_MASK   0xffff0000UL
1208	#define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA2_PHC_SEC_FID_SFT    16
1209	u8	opaque_v;
1210	#define ASYNC_EVENT_CMPL_PHC_UPDATE_V          0x1UL
1211	#define ASYNC_EVENT_CMPL_PHC_UPDATE_OPAQUE_MASK 0xfeUL
1212	#define ASYNC_EVENT_CMPL_PHC_UPDATE_OPAQUE_SFT 1
1213	u8	timestamp_lo;
1214	__le16	timestamp_hi;
1215	__le32	event_data1;
1216	#define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_MASK          0xfUL
1217	#define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_SFT           0
1218	#define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_PHC_MASTER      0x1UL
1219	#define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_PHC_SECONDARY   0x2UL
1220	#define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_PHC_FAILOVER    0x3UL
1221	#define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_PHC_RTC_UPDATE  0x4UL
1222	#define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_LAST           ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_FLAGS_PHC_RTC_UPDATE
1223	#define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_PHC_TIME_MSB_MASK   0xffff0UL
1224	#define ASYNC_EVENT_CMPL_PHC_UPDATE_EVENT_DATA1_PHC_TIME_MSB_SFT    4
1225};
1226
1227/* hwrm_async_event_cmpl_pps_timestamp (size:128b/16B) */
1228struct hwrm_async_event_cmpl_pps_timestamp {
1229	__le16	type;
1230	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_TYPE_MASK            0x3fUL
1231	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_TYPE_SFT             0
1232	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1233	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_TYPE_LAST             ASYNC_EVENT_CMPL_PPS_TIMESTAMP_TYPE_HWRM_ASYNC_EVENT
1234	__le16	event_id;
1235	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_ID_PPS_TIMESTAMP 0x44UL
1236	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_ID_LAST         ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_ID_PPS_TIMESTAMP
1237	__le32	event_data2;
1238	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_EVENT_TYPE              0x1UL
1239	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_EVENT_TYPE_INTERNAL       0x0UL
1240	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_EVENT_TYPE_EXTERNAL       0x1UL
1241	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_EVENT_TYPE_LAST          ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_EVENT_TYPE_EXTERNAL
1242	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_PIN_NUMBER_MASK         0xeUL
1243	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_PIN_NUMBER_SFT          1
1244	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_PPS_TIMESTAMP_UPPER_MASK 0xffff0UL
1245	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA2_PPS_TIMESTAMP_UPPER_SFT 4
1246	u8	opaque_v;
1247	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_V          0x1UL
1248	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_OPAQUE_MASK 0xfeUL
1249	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_OPAQUE_SFT 1
1250	u8	timestamp_lo;
1251	__le16	timestamp_hi;
1252	__le32	event_data1;
1253	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA1_PPS_TIMESTAMP_LOWER_MASK 0xffffffffUL
1254	#define ASYNC_EVENT_CMPL_PPS_TIMESTAMP_EVENT_DATA1_PPS_TIMESTAMP_LOWER_SFT 0
1255};
1256
1257/* hwrm_async_event_cmpl_error_report (size:128b/16B) */
1258struct hwrm_async_event_cmpl_error_report {
1259	__le16	type;
1260	#define ASYNC_EVENT_CMPL_ERROR_REPORT_TYPE_MASK            0x3fUL
1261	#define ASYNC_EVENT_CMPL_ERROR_REPORT_TYPE_SFT             0
1262	#define ASYNC_EVENT_CMPL_ERROR_REPORT_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1263	#define ASYNC_EVENT_CMPL_ERROR_REPORT_TYPE_LAST             ASYNC_EVENT_CMPL_ERROR_REPORT_TYPE_HWRM_ASYNC_EVENT
1264	__le16	event_id;
1265	#define ASYNC_EVENT_CMPL_ERROR_REPORT_EVENT_ID_ERROR_REPORT 0x45UL
1266	#define ASYNC_EVENT_CMPL_ERROR_REPORT_EVENT_ID_LAST        ASYNC_EVENT_CMPL_ERROR_REPORT_EVENT_ID_ERROR_REPORT
1267	__le32	event_data2;
1268	u8	opaque_v;
1269	#define ASYNC_EVENT_CMPL_ERROR_REPORT_V          0x1UL
1270	#define ASYNC_EVENT_CMPL_ERROR_REPORT_OPAQUE_MASK 0xfeUL
1271	#define ASYNC_EVENT_CMPL_ERROR_REPORT_OPAQUE_SFT 1
1272	u8	timestamp_lo;
1273	__le16	timestamp_hi;
1274	__le32	event_data1;
1275	#define ASYNC_EVENT_CMPL_ERROR_REPORT_EVENT_DATA1_ERROR_TYPE_MASK 0xffUL
1276	#define ASYNC_EVENT_CMPL_ERROR_REPORT_EVENT_DATA1_ERROR_TYPE_SFT 0
1277};
1278
1279/* hwrm_async_event_cmpl_hwrm_error (size:128b/16B) */
1280struct hwrm_async_event_cmpl_hwrm_error {
1281	__le16	type;
1282	#define ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_MASK            0x3fUL
1283	#define ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_SFT             0
1284	#define ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1285	#define ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_LAST             ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_HWRM_ASYNC_EVENT
1286	__le16	event_id;
1287	#define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_ID_HWRM_ERROR 0xffUL
1288	#define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_ID_LAST      ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_ID_HWRM_ERROR
1289	__le32	event_data2;
1290	#define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_MASK    0xffUL
1291	#define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_SFT     0
1292	#define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_WARNING   0x0UL
1293	#define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_NONFATAL  0x1UL
1294	#define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_FATAL     0x2UL
1295	#define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_LAST     ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_FATAL
1296	u8	opaque_v;
1297	#define ASYNC_EVENT_CMPL_HWRM_ERROR_V          0x1UL
1298	#define ASYNC_EVENT_CMPL_HWRM_ERROR_OPAQUE_MASK 0xfeUL
1299	#define ASYNC_EVENT_CMPL_HWRM_ERROR_OPAQUE_SFT 1
1300	u8	timestamp_lo;
1301	__le16	timestamp_hi;
1302	__le32	event_data1;
1303	#define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA1_TIMESTAMP     0x1UL
1304};
1305
1306/* hwrm_async_event_cmpl_error_report_base (size:128b/16B) */
1307struct hwrm_async_event_cmpl_error_report_base {
1308	__le16	type;
1309	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_TYPE_MASK            0x3fUL
1310	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_TYPE_SFT             0
1311	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1312	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_TYPE_LAST             ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_TYPE_HWRM_ASYNC_EVENT
1313	__le16	event_id;
1314	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_ID_ERROR_REPORT 0x45UL
1315	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_ID_LAST        ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_ID_ERROR_REPORT
1316	__le32	event_data2;
1317	u8	opaque_v;
1318	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_V          0x1UL
1319	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_OPAQUE_MASK 0xfeUL
1320	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_OPAQUE_SFT 1
1321	u8	timestamp_lo;
1322	__le16	timestamp_hi;
1323	__le32	event_data1;
1324	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_MASK                   0xffUL
1325	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_SFT                    0
1326	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_RESERVED                 0x0UL
1327	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_PAUSE_STORM              0x1UL
1328	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_INVALID_SIGNAL           0x2UL
1329	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_NVM                      0x3UL
1330	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_DOORBELL_DROP_THRESHOLD  0x4UL
1331	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_THERMAL_THRESHOLD        0x5UL
1332	#define ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_LAST                    ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_THERMAL_THRESHOLD
1333};
1334
1335/* hwrm_async_event_cmpl_error_report_pause_storm (size:128b/16B) */
1336struct hwrm_async_event_cmpl_error_report_pause_storm {
1337	__le16	type;
1338	#define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_TYPE_MASK            0x3fUL
1339	#define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_TYPE_SFT             0
1340	#define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1341	#define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_TYPE_LAST             ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_TYPE_HWRM_ASYNC_EVENT
1342	__le16	event_id;
1343	#define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_ID_ERROR_REPORT 0x45UL
1344	#define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_ID_LAST        ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_ID_ERROR_REPORT
1345	__le32	event_data2;
1346	u8	opaque_v;
1347	#define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_V          0x1UL
1348	#define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_OPAQUE_MASK 0xfeUL
1349	#define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_OPAQUE_SFT 1
1350	u8	timestamp_lo;
1351	__le16	timestamp_hi;
1352	__le32	event_data1;
1353	#define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_DATA1_ERROR_TYPE_MASK       0xffUL
1354	#define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_DATA1_ERROR_TYPE_SFT        0
1355	#define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_DATA1_ERROR_TYPE_PAUSE_STORM  0x1UL
1356	#define ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_DATA1_ERROR_TYPE_LAST        ASYNC_EVENT_CMPL_ERROR_REPORT_PAUSE_STORM_EVENT_DATA1_ERROR_TYPE_PAUSE_STORM
1357};
1358
1359/* hwrm_async_event_cmpl_error_report_invalid_signal (size:128b/16B) */
1360struct hwrm_async_event_cmpl_error_report_invalid_signal {
1361	__le16	type;
1362	#define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_TYPE_MASK            0x3fUL
1363	#define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_TYPE_SFT             0
1364	#define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1365	#define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_TYPE_LAST             ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_TYPE_HWRM_ASYNC_EVENT
1366	__le16	event_id;
1367	#define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_ID_ERROR_REPORT 0x45UL
1368	#define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_ID_LAST        ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_ID_ERROR_REPORT
1369	__le32	event_data2;
1370	#define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA2_PIN_ID_MASK 0xffUL
1371	#define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA2_PIN_ID_SFT 0
1372	u8	opaque_v;
1373	#define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_V          0x1UL
1374	#define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_OPAQUE_MASK 0xfeUL
1375	#define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_OPAQUE_SFT 1
1376	u8	timestamp_lo;
1377	__le16	timestamp_hi;
1378	__le32	event_data1;
1379	#define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA1_ERROR_TYPE_MASK          0xffUL
1380	#define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA1_ERROR_TYPE_SFT           0
1381	#define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA1_ERROR_TYPE_INVALID_SIGNAL  0x2UL
1382	#define ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA1_ERROR_TYPE_LAST           ASYNC_EVENT_CMPL_ERROR_REPORT_INVALID_SIGNAL_EVENT_DATA1_ERROR_TYPE_INVALID_SIGNAL
1383};
1384
1385/* hwrm_async_event_cmpl_error_report_nvm (size:128b/16B) */
1386struct hwrm_async_event_cmpl_error_report_nvm {
1387	__le16	type;
1388	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_TYPE_MASK            0x3fUL
1389	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_TYPE_SFT             0
1390	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1391	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_TYPE_LAST             ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_TYPE_HWRM_ASYNC_EVENT
1392	__le16	event_id;
1393	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_ID_ERROR_REPORT 0x45UL
1394	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_ID_LAST        ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_ID_ERROR_REPORT
1395	__le32	event_data2;
1396	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA2_ERR_ADDR_MASK 0xffffffffUL
1397	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA2_ERR_ADDR_SFT 0
1398	u8	opaque_v;
1399	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_V          0x1UL
1400	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_OPAQUE_MASK 0xfeUL
1401	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_OPAQUE_SFT 1
1402	u8	timestamp_lo;
1403	__le16	timestamp_hi;
1404	__le32	event_data1;
1405	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_ERROR_TYPE_MASK     0xffUL
1406	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_ERROR_TYPE_SFT      0
1407	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_ERROR_TYPE_NVM_ERROR  0x3UL
1408	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_ERROR_TYPE_LAST      ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_ERROR_TYPE_NVM_ERROR
1409	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_MASK   0xff00UL
1410	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_SFT    8
1411	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_WRITE    (0x1UL << 8)
1412	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_ERASE    (0x2UL << 8)
1413	#define ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_LAST    ASYNC_EVENT_CMPL_ERROR_REPORT_NVM_EVENT_DATA1_NVM_ERR_TYPE_ERASE
1414};
1415
1416/* hwrm_async_event_cmpl_error_report_doorbell_drop_threshold (size:128b/16B) */
1417struct hwrm_async_event_cmpl_error_report_doorbell_drop_threshold {
1418	__le16	type;
1419	#define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_TYPE_MASK            0x3fUL
1420	#define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_TYPE_SFT             0
1421	#define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1422	#define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_TYPE_LAST             ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_TYPE_HWRM_ASYNC_EVENT
1423	__le16	event_id;
1424	#define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_ID_ERROR_REPORT 0x45UL
1425	#define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_ID_LAST        ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_ID_ERROR_REPORT
1426	__le32	event_data2;
1427	u8	opaque_v;
1428	#define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_V          0x1UL
1429	#define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_OPAQUE_MASK 0xfeUL
1430	#define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_OPAQUE_SFT 1
1431	u8	timestamp_lo;
1432	__le16	timestamp_hi;
1433	__le32	event_data1;
1434	#define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_ERROR_TYPE_MASK                   0xffUL
1435	#define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_ERROR_TYPE_SFT                    0
1436	#define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_ERROR_TYPE_DOORBELL_DROP_THRESHOLD  0x4UL
1437	#define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_ERROR_TYPE_LAST                    ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_ERROR_TYPE_DOORBELL_DROP_THRESHOLD
1438	#define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_EPOCH_MASK                        0xffffff00UL
1439	#define ASYNC_EVENT_CMPL_ERROR_REPORT_DOORBELL_DROP_THRESHOLD_EVENT_DATA1_EPOCH_SFT                         8
1440};
1441
1442/* hwrm_async_event_cmpl_error_report_thermal (size:128b/16B) */
1443struct hwrm_async_event_cmpl_error_report_thermal {
1444	__le16	type;
1445	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_TYPE_MASK            0x3fUL
1446	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_TYPE_SFT             0
1447	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_TYPE_HWRM_ASYNC_EVENT  0x2eUL
1448	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_TYPE_LAST             ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_TYPE_HWRM_ASYNC_EVENT
1449	__le16	event_id;
1450	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_ID_ERROR_REPORT 0x45UL
1451	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_ID_LAST        ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_ID_ERROR_REPORT
1452	__le32	event_data2;
1453	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA2_CURRENT_TEMP_MASK  0xffUL
1454	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA2_CURRENT_TEMP_SFT   0
1455	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA2_THRESHOLD_TEMP_MASK 0xff00UL
1456	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA2_THRESHOLD_TEMP_SFT 8
1457	u8	opaque_v;
1458	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_V          0x1UL
1459	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_OPAQUE_MASK 0xfeUL
1460	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_OPAQUE_SFT 1
1461	u8	timestamp_lo;
1462	__le16	timestamp_hi;
1463	__le32	event_data1;
1464	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_ERROR_TYPE_MASK          0xffUL
1465	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_ERROR_TYPE_SFT           0
1466	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_ERROR_TYPE_THERMAL_EVENT   0x5UL
1467	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_ERROR_TYPE_LAST           ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_ERROR_TYPE_THERMAL_EVENT
1468	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_THRESHOLD_TYPE_MASK      0x700UL
1469	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_THRESHOLD_TYPE_SFT       8
1470	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_THRESHOLD_TYPE_WARN        (0x0UL << 8)
1471	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_THRESHOLD_TYPE_CRITICAL    (0x1UL << 8)
1472	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_THRESHOLD_TYPE_FATAL       (0x2UL << 8)
1473	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_THRESHOLD_TYPE_SHUTDOWN    (0x3UL << 8)
1474	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_THRESHOLD_TYPE_LAST       ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_THRESHOLD_TYPE_SHUTDOWN
1475	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_TRANSITION_DIR           0x800UL
1476	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_TRANSITION_DIR_DECREASING  (0x0UL << 11)
1477	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_TRANSITION_DIR_INCREASING  (0x1UL << 11)
1478	#define ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_TRANSITION_DIR_LAST       ASYNC_EVENT_CMPL_ERROR_REPORT_THERMAL_EVENT_DATA1_TRANSITION_DIR_INCREASING
1479};
1480
1481/* hwrm_func_reset_input (size:192b/24B) */
1482struct hwrm_func_reset_input {
1483	__le16	req_type;
1484	__le16	cmpl_ring;
1485	__le16	seq_id;
1486	__le16	target_id;
1487	__le64	resp_addr;
1488	__le32	enables;
1489	#define FUNC_RESET_REQ_ENABLES_VF_ID_VALID     0x1UL
1490	__le16	vf_id;
1491	u8	func_reset_level;
1492	#define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETALL      0x0UL
1493	#define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETME       0x1UL
1494	#define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETCHILDREN 0x2UL
1495	#define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETVF       0x3UL
1496	#define FUNC_RESET_REQ_FUNC_RESET_LEVEL_LAST         FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETVF
1497	u8	unused_0;
1498};
1499
1500/* hwrm_func_reset_output (size:128b/16B) */
1501struct hwrm_func_reset_output {
1502	__le16	error_code;
1503	__le16	req_type;
1504	__le16	seq_id;
1505	__le16	resp_len;
1506	u8	unused_0[7];
1507	u8	valid;
1508};
1509
1510/* hwrm_func_getfid_input (size:192b/24B) */
1511struct hwrm_func_getfid_input {
1512	__le16	req_type;
1513	__le16	cmpl_ring;
1514	__le16	seq_id;
1515	__le16	target_id;
1516	__le64	resp_addr;
1517	__le32	enables;
1518	#define FUNC_GETFID_REQ_ENABLES_PCI_ID     0x1UL
1519	__le16	pci_id;
1520	u8	unused_0[2];
1521};
1522
1523/* hwrm_func_getfid_output (size:128b/16B) */
1524struct hwrm_func_getfid_output {
1525	__le16	error_code;
1526	__le16	req_type;
1527	__le16	seq_id;
1528	__le16	resp_len;
1529	__le16	fid;
1530	u8	unused_0[5];
1531	u8	valid;
1532};
1533
1534/* hwrm_func_vf_alloc_input (size:192b/24B) */
1535struct hwrm_func_vf_alloc_input {
1536	__le16	req_type;
1537	__le16	cmpl_ring;
1538	__le16	seq_id;
1539	__le16	target_id;
1540	__le64	resp_addr;
1541	__le32	enables;
1542	#define FUNC_VF_ALLOC_REQ_ENABLES_FIRST_VF_ID     0x1UL
1543	__le16	first_vf_id;
1544	__le16	num_vfs;
1545};
1546
1547/* hwrm_func_vf_alloc_output (size:128b/16B) */
1548struct hwrm_func_vf_alloc_output {
1549	__le16	error_code;
1550	__le16	req_type;
1551	__le16	seq_id;
1552	__le16	resp_len;
1553	__le16	first_vf_id;
1554	u8	unused_0[5];
1555	u8	valid;
1556};
1557
1558/* hwrm_func_vf_free_input (size:192b/24B) */
1559struct hwrm_func_vf_free_input {
1560	__le16	req_type;
1561	__le16	cmpl_ring;
1562	__le16	seq_id;
1563	__le16	target_id;
1564	__le64	resp_addr;
1565	__le32	enables;
1566	#define FUNC_VF_FREE_REQ_ENABLES_FIRST_VF_ID     0x1UL
1567	__le16	first_vf_id;
1568	__le16	num_vfs;
1569};
1570
1571/* hwrm_func_vf_free_output (size:128b/16B) */
1572struct hwrm_func_vf_free_output {
1573	__le16	error_code;
1574	__le16	req_type;
1575	__le16	seq_id;
1576	__le16	resp_len;
1577	u8	unused_0[7];
1578	u8	valid;
1579};
1580
1581/* hwrm_func_vf_cfg_input (size:576b/72B) */
1582struct hwrm_func_vf_cfg_input {
1583	__le16	req_type;
1584	__le16	cmpl_ring;
1585	__le16	seq_id;
1586	__le16	target_id;
1587	__le64	resp_addr;
1588	__le32	enables;
1589	#define FUNC_VF_CFG_REQ_ENABLES_MTU                      0x1UL
1590	#define FUNC_VF_CFG_REQ_ENABLES_GUEST_VLAN               0x2UL
1591	#define FUNC_VF_CFG_REQ_ENABLES_ASYNC_EVENT_CR           0x4UL
1592	#define FUNC_VF_CFG_REQ_ENABLES_DFLT_MAC_ADDR            0x8UL
1593	#define FUNC_VF_CFG_REQ_ENABLES_NUM_RSSCOS_CTXS          0x10UL
1594	#define FUNC_VF_CFG_REQ_ENABLES_NUM_CMPL_RINGS           0x20UL
1595	#define FUNC_VF_CFG_REQ_ENABLES_NUM_TX_RINGS             0x40UL
1596	#define FUNC_VF_CFG_REQ_ENABLES_NUM_RX_RINGS             0x80UL
1597	#define FUNC_VF_CFG_REQ_ENABLES_NUM_L2_CTXS              0x100UL
1598	#define FUNC_VF_CFG_REQ_ENABLES_NUM_VNICS                0x200UL
1599	#define FUNC_VF_CFG_REQ_ENABLES_NUM_STAT_CTXS            0x400UL
1600	#define FUNC_VF_CFG_REQ_ENABLES_NUM_HW_RING_GRPS         0x800UL
1601	#define FUNC_VF_CFG_REQ_ENABLES_NUM_KTLS_TX_KEY_CTXS     0x1000UL
1602	#define FUNC_VF_CFG_REQ_ENABLES_NUM_KTLS_RX_KEY_CTXS     0x2000UL
1603	#define FUNC_VF_CFG_REQ_ENABLES_NUM_QUIC_TX_KEY_CTXS     0x4000UL
1604	#define FUNC_VF_CFG_REQ_ENABLES_NUM_QUIC_RX_KEY_CTXS     0x8000UL
1605	__le16	mtu;
1606	__le16	guest_vlan;
1607	__le16	async_event_cr;
1608	u8	dflt_mac_addr[6];
1609	__le32	flags;
1610	#define FUNC_VF_CFG_REQ_FLAGS_TX_ASSETS_TEST             0x1UL
1611	#define FUNC_VF_CFG_REQ_FLAGS_RX_ASSETS_TEST             0x2UL
1612	#define FUNC_VF_CFG_REQ_FLAGS_CMPL_ASSETS_TEST           0x4UL
1613	#define FUNC_VF_CFG_REQ_FLAGS_RSSCOS_CTX_ASSETS_TEST     0x8UL
1614	#define FUNC_VF_CFG_REQ_FLAGS_RING_GRP_ASSETS_TEST       0x10UL
1615	#define FUNC_VF_CFG_REQ_FLAGS_STAT_CTX_ASSETS_TEST       0x20UL
1616	#define FUNC_VF_CFG_REQ_FLAGS_VNIC_ASSETS_TEST           0x40UL
1617	#define FUNC_VF_CFG_REQ_FLAGS_L2_CTX_ASSETS_TEST         0x80UL
1618	#define FUNC_VF_CFG_REQ_FLAGS_PPP_PUSH_MODE_ENABLE       0x100UL
1619	#define FUNC_VF_CFG_REQ_FLAGS_PPP_PUSH_MODE_DISABLE      0x200UL
1620	__le16	num_rsscos_ctxs;
1621	__le16	num_cmpl_rings;
1622	__le16	num_tx_rings;
1623	__le16	num_rx_rings;
1624	__le16	num_l2_ctxs;
1625	__le16	num_vnics;
1626	__le16	num_stat_ctxs;
1627	__le16	num_hw_ring_grps;
1628	__le32	num_ktls_tx_key_ctxs;
1629	__le32	num_ktls_rx_key_ctxs;
1630	__le16	num_msix;
1631	u8	unused[2];
1632	__le32	num_quic_tx_key_ctxs;
1633	__le32	num_quic_rx_key_ctxs;
1634};
1635
1636/* hwrm_func_vf_cfg_output (size:128b/16B) */
1637struct hwrm_func_vf_cfg_output {
1638	__le16	error_code;
1639	__le16	req_type;
1640	__le16	seq_id;
1641	__le16	resp_len;
1642	u8	unused_0[7];
1643	u8	valid;
1644};
1645
1646/* hwrm_func_qcaps_input (size:192b/24B) */
1647struct hwrm_func_qcaps_input {
1648	__le16	req_type;
1649	__le16	cmpl_ring;
1650	__le16	seq_id;
1651	__le16	target_id;
1652	__le64	resp_addr;
1653	__le16	fid;
1654	u8	unused_0[6];
1655};
1656
1657/* hwrm_func_qcaps_output (size:1088b/136B) */
1658struct hwrm_func_qcaps_output {
1659	__le16	error_code;
1660	__le16	req_type;
1661	__le16	seq_id;
1662	__le16	resp_len;
1663	__le16	fid;
1664	__le16	port_id;
1665	__le32	flags;
1666	#define FUNC_QCAPS_RESP_FLAGS_PUSH_MODE_SUPPORTED                   0x1UL
1667	#define FUNC_QCAPS_RESP_FLAGS_GLOBAL_MSIX_AUTOMASKING               0x2UL
1668	#define FUNC_QCAPS_RESP_FLAGS_PTP_SUPPORTED                         0x4UL
1669	#define FUNC_QCAPS_RESP_FLAGS_ROCE_V1_SUPPORTED                     0x8UL
1670	#define FUNC_QCAPS_RESP_FLAGS_ROCE_V2_SUPPORTED                     0x10UL
1671	#define FUNC_QCAPS_RESP_FLAGS_WOL_MAGICPKT_SUPPORTED                0x20UL
1672	#define FUNC_QCAPS_RESP_FLAGS_WOL_BMP_SUPPORTED                     0x40UL
1673	#define FUNC_QCAPS_RESP_FLAGS_TX_RING_RL_SUPPORTED                  0x80UL
1674	#define FUNC_QCAPS_RESP_FLAGS_TX_BW_CFG_SUPPORTED                   0x100UL
1675	#define FUNC_QCAPS_RESP_FLAGS_VF_TX_RING_RL_SUPPORTED               0x200UL
1676	#define FUNC_QCAPS_RESP_FLAGS_VF_BW_CFG_SUPPORTED                   0x400UL
1677	#define FUNC_QCAPS_RESP_FLAGS_STD_TX_RING_MODE_SUPPORTED            0x800UL
1678	#define FUNC_QCAPS_RESP_FLAGS_GENEVE_TUN_FLAGS_SUPPORTED            0x1000UL
1679	#define FUNC_QCAPS_RESP_FLAGS_NVGRE_TUN_FLAGS_SUPPORTED             0x2000UL
1680	#define FUNC_QCAPS_RESP_FLAGS_GRE_TUN_FLAGS_SUPPORTED               0x4000UL
1681	#define FUNC_QCAPS_RESP_FLAGS_MPLS_TUN_FLAGS_SUPPORTED              0x8000UL
1682	#define FUNC_QCAPS_RESP_FLAGS_PCIE_STATS_SUPPORTED                  0x10000UL
1683	#define FUNC_QCAPS_RESP_FLAGS_ADOPTED_PF_SUPPORTED                  0x20000UL
1684	#define FUNC_QCAPS_RESP_FLAGS_ADMIN_PF_SUPPORTED                    0x40000UL
1685	#define FUNC_QCAPS_RESP_FLAGS_LINK_ADMIN_STATUS_SUPPORTED           0x80000UL
1686	#define FUNC_QCAPS_RESP_FLAGS_WCB_PUSH_MODE                         0x100000UL
1687	#define FUNC_QCAPS_RESP_FLAGS_DYNAMIC_TX_RING_ALLOC                 0x200000UL
1688	#define FUNC_QCAPS_RESP_FLAGS_HOT_RESET_CAPABLE                     0x400000UL
1689	#define FUNC_QCAPS_RESP_FLAGS_ERROR_RECOVERY_CAPABLE                0x800000UL
1690	#define FUNC_QCAPS_RESP_FLAGS_EXT_STATS_SUPPORTED                   0x1000000UL
1691	#define FUNC_QCAPS_RESP_FLAGS_ERR_RECOVER_RELOAD                    0x2000000UL
1692	#define FUNC_QCAPS_RESP_FLAGS_NOTIFY_VF_DEF_VNIC_CHNG_SUPPORTED     0x4000000UL
1693	#define FUNC_QCAPS_RESP_FLAGS_VLAN_ACCELERATION_TX_DISABLED         0x8000000UL
1694	#define FUNC_QCAPS_RESP_FLAGS_COREDUMP_CMD_SUPPORTED                0x10000000UL
1695	#define FUNC_QCAPS_RESP_FLAGS_CRASHDUMP_CMD_SUPPORTED               0x20000000UL
1696	#define FUNC_QCAPS_RESP_FLAGS_PFC_WD_STATS_SUPPORTED                0x40000000UL
1697	#define FUNC_QCAPS_RESP_FLAGS_DBG_QCAPS_CMD_SUPPORTED               0x80000000UL
1698	u8	mac_address[6];
1699	__le16	max_rsscos_ctx;
1700	__le16	max_cmpl_rings;
1701	__le16	max_tx_rings;
1702	__le16	max_rx_rings;
1703	__le16	max_l2_ctxs;
1704	__le16	max_vnics;
1705	__le16	first_vf_id;
1706	__le16	max_vfs;
1707	__le16	max_stat_ctx;
1708	__le32	max_encap_records;
1709	__le32	max_decap_records;
1710	__le32	max_tx_em_flows;
1711	__le32	max_tx_wm_flows;
1712	__le32	max_rx_em_flows;
1713	__le32	max_rx_wm_flows;
1714	__le32	max_mcast_filters;
1715	__le32	max_flow_id;
1716	__le32	max_hw_ring_grps;
1717	__le16	max_sp_tx_rings;
1718	__le16	max_msix_vfs;
1719	__le32	flags_ext;
1720	#define FUNC_QCAPS_RESP_FLAGS_EXT_ECN_MARK_SUPPORTED                          0x1UL
1721	#define FUNC_QCAPS_RESP_FLAGS_EXT_ECN_STATS_SUPPORTED                         0x2UL
1722	#define FUNC_QCAPS_RESP_FLAGS_EXT_EXT_HW_STATS_SUPPORTED                      0x4UL
1723	#define FUNC_QCAPS_RESP_FLAGS_EXT_HOT_RESET_IF_SUPPORT                        0x8UL
1724	#define FUNC_QCAPS_RESP_FLAGS_EXT_PROXY_MODE_SUPPORT                          0x10UL
1725	#define FUNC_QCAPS_RESP_FLAGS_EXT_TX_PROXY_SRC_INTF_OVERRIDE_SUPPORT          0x20UL
1726	#define FUNC_QCAPS_RESP_FLAGS_EXT_SCHQ_SUPPORTED                              0x40UL
1727	#define FUNC_QCAPS_RESP_FLAGS_EXT_PPP_PUSH_MODE_SUPPORTED                     0x80UL
1728	#define FUNC_QCAPS_RESP_FLAGS_EXT_EVB_MODE_CFG_NOT_SUPPORTED                  0x100UL
1729	#define FUNC_QCAPS_RESP_FLAGS_EXT_SOC_SPD_SUPPORTED                           0x200UL
1730	#define FUNC_QCAPS_RESP_FLAGS_EXT_FW_LIVEPATCH_SUPPORTED                      0x400UL
1731	#define FUNC_QCAPS_RESP_FLAGS_EXT_FAST_RESET_CAPABLE                          0x800UL
1732	#define FUNC_QCAPS_RESP_FLAGS_EXT_TX_METADATA_CFG_CAPABLE                     0x1000UL
1733	#define FUNC_QCAPS_RESP_FLAGS_EXT_NVM_OPTION_ACTION_SUPPORTED                 0x2000UL
1734	#define FUNC_QCAPS_RESP_FLAGS_EXT_BD_METADATA_SUPPORTED                       0x4000UL
1735	#define FUNC_QCAPS_RESP_FLAGS_EXT_ECHO_REQUEST_SUPPORTED                      0x8000UL
1736	#define FUNC_QCAPS_RESP_FLAGS_EXT_NPAR_1_2_SUPPORTED                          0x10000UL
1737	#define FUNC_QCAPS_RESP_FLAGS_EXT_PTP_PTM_SUPPORTED                           0x20000UL
1738	#define FUNC_QCAPS_RESP_FLAGS_EXT_PTP_PPS_SUPPORTED                           0x40000UL
1739	#define FUNC_QCAPS_RESP_FLAGS_EXT_VF_CFG_ASYNC_FOR_PF_SUPPORTED               0x80000UL
1740	#define FUNC_QCAPS_RESP_FLAGS_EXT_PARTITION_BW_SUPPORTED                      0x100000UL
1741	#define FUNC_QCAPS_RESP_FLAGS_EXT_DFLT_VLAN_TPID_PCP_SUPPORTED                0x200000UL
1742	#define FUNC_QCAPS_RESP_FLAGS_EXT_KTLS_SUPPORTED                              0x400000UL
1743	#define FUNC_QCAPS_RESP_FLAGS_EXT_EP_RATE_CONTROL                             0x800000UL
1744	#define FUNC_QCAPS_RESP_FLAGS_EXT_MIN_BW_SUPPORTED                            0x1000000UL
1745	#define FUNC_QCAPS_RESP_FLAGS_EXT_TX_COAL_CMPL_CAP                            0x2000000UL
1746	#define FUNC_QCAPS_RESP_FLAGS_EXT_BS_V2_SUPPORTED                             0x4000000UL
1747	#define FUNC_QCAPS_RESP_FLAGS_EXT_BS_V2_REQUIRED                              0x8000000UL
1748	#define FUNC_QCAPS_RESP_FLAGS_EXT_PTP_64BIT_RTC_SUPPORTED                     0x10000000UL
1749	#define FUNC_QCAPS_RESP_FLAGS_EXT_DBR_PACING_SUPPORTED                        0x20000000UL
1750	#define FUNC_QCAPS_RESP_FLAGS_EXT_HW_DBR_DROP_RECOV_SUPPORTED                 0x40000000UL
1751	#define FUNC_QCAPS_RESP_FLAGS_EXT_DISABLE_CQ_OVERFLOW_DETECTION_SUPPORTED     0x80000000UL
1752	u8	max_schqs;
1753	u8	mpc_chnls_cap;
1754	#define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_TCE         0x1UL
1755	#define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_RCE         0x2UL
1756	#define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_TE_CFA      0x4UL
1757	#define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_RE_CFA      0x8UL
1758	#define FUNC_QCAPS_RESP_MPC_CHNLS_CAP_PRIMATE     0x10UL
1759	__le16	max_key_ctxs_alloc;
1760	__le32	flags_ext2;
1761	#define FUNC_QCAPS_RESP_FLAGS_EXT2_RX_ALL_PKTS_TIMESTAMPS_SUPPORTED      0x1UL
1762	#define FUNC_QCAPS_RESP_FLAGS_EXT2_QUIC_SUPPORTED                        0x2UL
1763	#define FUNC_QCAPS_RESP_FLAGS_EXT2_KDNET_SUPPORTED                       0x4UL
1764	#define FUNC_QCAPS_RESP_FLAGS_EXT2_DBR_PACING_EXT_SUPPORTED              0x8UL
1765	#define FUNC_QCAPS_RESP_FLAGS_EXT2_SW_DBR_DROP_RECOVERY_SUPPORTED        0x10UL
1766	#define FUNC_QCAPS_RESP_FLAGS_EXT2_GENERIC_STATS_SUPPORTED               0x20UL
1767	#define FUNC_QCAPS_RESP_FLAGS_EXT2_UDP_GSO_SUPPORTED                     0x40UL
1768	#define FUNC_QCAPS_RESP_FLAGS_EXT2_SYNCE_SUPPORTED                       0x80UL
1769	#define FUNC_QCAPS_RESP_FLAGS_EXT2_DBR_PACING_V0_SUPPORTED               0x100UL
1770	#define FUNC_QCAPS_RESP_FLAGS_EXT2_TX_PKT_TS_CMPL_SUPPORTED              0x200UL
1771	#define FUNC_QCAPS_RESP_FLAGS_EXT2_HW_LAG_SUPPORTED                      0x400UL
1772	#define FUNC_QCAPS_RESP_FLAGS_EXT2_ON_CHIP_CTX_SUPPORTED                 0x800UL
1773	#define FUNC_QCAPS_RESP_FLAGS_EXT2_STEERING_TAG_SUPPORTED                0x1000UL
1774	#define FUNC_QCAPS_RESP_FLAGS_EXT2_ENHANCED_VF_SCALE_SUPPORTED           0x2000UL
1775	#define FUNC_QCAPS_RESP_FLAGS_EXT2_KEY_XID_PARTITION_SUPPORTED           0x4000UL
1776	#define FUNC_QCAPS_RESP_FLAGS_EXT2_CONCURRENT_KTLS_QUIC_SUPPORTED        0x8000UL
1777	#define FUNC_QCAPS_RESP_FLAGS_EXT2_SCHQ_CROSS_TC_CAP_SUPPORTED           0x10000UL
1778	#define FUNC_QCAPS_RESP_FLAGS_EXT2_SCHQ_PER_TC_CAP_SUPPORTED             0x20000UL
1779	#define FUNC_QCAPS_RESP_FLAGS_EXT2_SCHQ_PER_TC_RESERVATION_SUPPORTED     0x40000UL
1780	#define FUNC_QCAPS_RESP_FLAGS_EXT2_DB_ERROR_STATS_SUPPORTED              0x80000UL
1781	#define FUNC_QCAPS_RESP_FLAGS_EXT2_ROCE_VF_RESOURCE_MGMT_SUPPORTED       0x100000UL
1782	#define FUNC_QCAPS_RESP_FLAGS_EXT2_UDCC_SUPPORTED                        0x200000UL
1783	#define FUNC_QCAPS_RESP_FLAGS_EXT2_TIMED_TX_SO_TXTIME_SUPPORTED          0x400000UL
1784	__le16	tunnel_disable_flag;
1785	#define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_VXLAN      0x1UL
1786	#define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_NGE        0x2UL
1787	#define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_NVGRE      0x4UL
1788	#define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_L2GRE      0x8UL
1789	#define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_GRE        0x10UL
1790	#define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_IPINIP     0x20UL
1791	#define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_MPLS       0x40UL
1792	#define FUNC_QCAPS_RESP_TUNNEL_DISABLE_FLAG_DISABLE_PPPOE      0x80UL
1793	__le16	xid_partition_cap;
1794	#define FUNC_QCAPS_RESP_XID_PARTITION_CAP_KTLS_TKC     0x1UL
1795	#define FUNC_QCAPS_RESP_XID_PARTITION_CAP_KTLS_RKC     0x2UL
1796	#define FUNC_QCAPS_RESP_XID_PARTITION_CAP_QUIC_TKC     0x4UL
1797	#define FUNC_QCAPS_RESP_XID_PARTITION_CAP_QUIC_RKC     0x8UL
1798	u8	device_serial_number[8];
1799	__le16	ctxs_per_partition;
1800	u8	unused_2[2];
1801	__le32	roce_vf_max_av;
1802	__le32	roce_vf_max_cq;
1803	__le32	roce_vf_max_mrw;
1804	__le32	roce_vf_max_qp;
1805	__le32	roce_vf_max_srq;
1806	__le32	roce_vf_max_gid;
1807	u8	unused_3[3];
1808	u8	valid;
1809};
1810
1811/* hwrm_func_qcfg_input (size:192b/24B) */
1812struct hwrm_func_qcfg_input {
1813	__le16	req_type;
1814	__le16	cmpl_ring;
1815	__le16	seq_id;
1816	__le16	target_id;
1817	__le64	resp_addr;
1818	__le16	fid;
1819	u8	unused_0[6];
1820};
1821
1822/* hwrm_func_qcfg_output (size:1280b/160B) */
1823struct hwrm_func_qcfg_output {
1824	__le16	error_code;
1825	__le16	req_type;
1826	__le16	seq_id;
1827	__le16	resp_len;
1828	__le16	fid;
1829	__le16	port_id;
1830	__le16	vlan;
1831	__le16	flags;
1832	#define FUNC_QCFG_RESP_FLAGS_OOB_WOL_MAGICPKT_ENABLED     0x1UL
1833	#define FUNC_QCFG_RESP_FLAGS_OOB_WOL_BMP_ENABLED          0x2UL
1834	#define FUNC_QCFG_RESP_FLAGS_FW_DCBX_AGENT_ENABLED        0x4UL
1835	#define FUNC_QCFG_RESP_FLAGS_STD_TX_RING_MODE_ENABLED     0x8UL
1836	#define FUNC_QCFG_RESP_FLAGS_FW_LLDP_AGENT_ENABLED        0x10UL
1837	#define FUNC_QCFG_RESP_FLAGS_MULTI_HOST                   0x20UL
1838	#define FUNC_QCFG_RESP_FLAGS_TRUSTED_VF                   0x40UL
1839	#define FUNC_QCFG_RESP_FLAGS_SECURE_MODE_ENABLED          0x80UL
1840	#define FUNC_QCFG_RESP_FLAGS_PREBOOT_LEGACY_L2_RINGS      0x100UL
1841	#define FUNC_QCFG_RESP_FLAGS_HOT_RESET_ALLOWED            0x200UL
1842	#define FUNC_QCFG_RESP_FLAGS_PPP_PUSH_MODE_ENABLED        0x400UL
1843	#define FUNC_QCFG_RESP_FLAGS_RING_MONITOR_ENABLED         0x800UL
1844	#define FUNC_QCFG_RESP_FLAGS_FAST_RESET_ALLOWED           0x1000UL
1845	#define FUNC_QCFG_RESP_FLAGS_MULTI_ROOT                   0x2000UL
1846	#define FUNC_QCFG_RESP_FLAGS_ENABLE_RDMA_SRIOV            0x4000UL
1847	u8	mac_address[6];
1848	__le16	pci_id;
1849	__le16	alloc_rsscos_ctx;
1850	__le16	alloc_cmpl_rings;
1851	__le16	alloc_tx_rings;
1852	__le16	alloc_rx_rings;
1853	__le16	alloc_l2_ctx;
1854	__le16	alloc_vnics;
1855	__le16	admin_mtu;
1856	__le16	mru;
1857	__le16	stat_ctx_id;
1858	u8	port_partition_type;
1859	#define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_SPF     0x0UL
1860	#define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_MPFS    0x1UL
1861	#define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_0 0x2UL
1862	#define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_5 0x3UL
1863	#define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR2_0 0x4UL
1864	#define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_2 0x5UL
1865	#define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_UNKNOWN 0xffUL
1866	#define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_LAST   FUNC_QCFG_RESP_PORT_PARTITION_TYPE_UNKNOWN
1867	u8	port_pf_cnt;
1868	#define FUNC_QCFG_RESP_PORT_PF_CNT_UNAVAIL 0x0UL
1869	#define FUNC_QCFG_RESP_PORT_PF_CNT_LAST   FUNC_QCFG_RESP_PORT_PF_CNT_UNAVAIL
1870	__le16	dflt_vnic_id;
1871	__le16	max_mtu_configured;
1872	__le32	min_bw;
1873	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_MASK             0xfffffffUL
1874	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_SFT              0
1875	#define FUNC_QCFG_RESP_MIN_BW_SCALE                     0x10000000UL
1876	#define FUNC_QCFG_RESP_MIN_BW_SCALE_BITS                  (0x0UL << 28)
1877	#define FUNC_QCFG_RESP_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
1878	#define FUNC_QCFG_RESP_MIN_BW_SCALE_LAST                 FUNC_QCFG_RESP_MIN_BW_SCALE_BYTES
1879	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
1880	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_SFT         29
1881	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
1882	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
1883	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
1884	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
1885	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
1886	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
1887	#define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_LAST         FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_INVALID
1888	__le32	max_bw;
1889	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_MASK             0xfffffffUL
1890	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_SFT              0
1891	#define FUNC_QCFG_RESP_MAX_BW_SCALE                     0x10000000UL
1892	#define FUNC_QCFG_RESP_MAX_BW_SCALE_BITS                  (0x0UL << 28)
1893	#define FUNC_QCFG_RESP_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
1894	#define FUNC_QCFG_RESP_MAX_BW_SCALE_LAST                 FUNC_QCFG_RESP_MAX_BW_SCALE_BYTES
1895	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
1896	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_SFT         29
1897	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
1898	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
1899	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
1900	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
1901	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
1902	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
1903	#define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_LAST         FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_INVALID
1904	u8	evb_mode;
1905	#define FUNC_QCFG_RESP_EVB_MODE_NO_EVB 0x0UL
1906	#define FUNC_QCFG_RESP_EVB_MODE_VEB    0x1UL
1907	#define FUNC_QCFG_RESP_EVB_MODE_VEPA   0x2UL
1908	#define FUNC_QCFG_RESP_EVB_MODE_LAST  FUNC_QCFG_RESP_EVB_MODE_VEPA
1909	u8	options;
1910	#define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_MASK         0x3UL
1911	#define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SFT          0
1912	#define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_64        0x0UL
1913	#define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_128       0x1UL
1914	#define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_LAST          FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_128
1915	#define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_MASK       0xcUL
1916	#define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_SFT        2
1917	#define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_FORCED_DOWN  (0x0UL << 2)
1918	#define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_FORCED_UP    (0x1UL << 2)
1919	#define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_AUTO         (0x2UL << 2)
1920	#define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_LAST        FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_AUTO
1921	#define FUNC_QCFG_RESP_OPTIONS_RSVD_MASK                   0xf0UL
1922	#define FUNC_QCFG_RESP_OPTIONS_RSVD_SFT                    4
1923	__le16	alloc_vfs;
1924	__le32	alloc_mcast_filters;
1925	__le32	alloc_hw_ring_grps;
1926	__le16	alloc_sp_tx_rings;
1927	__le16	alloc_stat_ctx;
1928	__le16	alloc_msix;
1929	__le16	registered_vfs;
1930	__le16	l2_doorbell_bar_size_kb;
1931	u8	active_endpoints;
1932	u8	always_1;
1933	__le32	reset_addr_poll;
1934	__le16	legacy_l2_db_size_kb;
1935	__le16	svif_info;
1936	#define FUNC_QCFG_RESP_SVIF_INFO_SVIF_MASK      0x7fffUL
1937	#define FUNC_QCFG_RESP_SVIF_INFO_SVIF_SFT       0
1938	#define FUNC_QCFG_RESP_SVIF_INFO_SVIF_VALID     0x8000UL
1939	u8	mpc_chnls;
1940	#define FUNC_QCFG_RESP_MPC_CHNLS_TCE_ENABLED         0x1UL
1941	#define FUNC_QCFG_RESP_MPC_CHNLS_RCE_ENABLED         0x2UL
1942	#define FUNC_QCFG_RESP_MPC_CHNLS_TE_CFA_ENABLED      0x4UL
1943	#define FUNC_QCFG_RESP_MPC_CHNLS_RE_CFA_ENABLED      0x8UL
1944	#define FUNC_QCFG_RESP_MPC_CHNLS_PRIMATE_ENABLED     0x10UL
1945	u8	db_page_size;
1946	#define FUNC_QCFG_RESP_DB_PAGE_SIZE_4KB   0x0UL
1947	#define FUNC_QCFG_RESP_DB_PAGE_SIZE_8KB   0x1UL
1948	#define FUNC_QCFG_RESP_DB_PAGE_SIZE_16KB  0x2UL
1949	#define FUNC_QCFG_RESP_DB_PAGE_SIZE_32KB  0x3UL
1950	#define FUNC_QCFG_RESP_DB_PAGE_SIZE_64KB  0x4UL
1951	#define FUNC_QCFG_RESP_DB_PAGE_SIZE_128KB 0x5UL
1952	#define FUNC_QCFG_RESP_DB_PAGE_SIZE_256KB 0x6UL
1953	#define FUNC_QCFG_RESP_DB_PAGE_SIZE_512KB 0x7UL
1954	#define FUNC_QCFG_RESP_DB_PAGE_SIZE_1MB   0x8UL
1955	#define FUNC_QCFG_RESP_DB_PAGE_SIZE_2MB   0x9UL
1956	#define FUNC_QCFG_RESP_DB_PAGE_SIZE_4MB   0xaUL
1957	#define FUNC_QCFG_RESP_DB_PAGE_SIZE_LAST FUNC_QCFG_RESP_DB_PAGE_SIZE_4MB
1958	u8	unused_2[2];
1959	__le32	partition_min_bw;
1960	#define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_MASK             0xfffffffUL
1961	#define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_SFT              0
1962	#define FUNC_QCFG_RESP_PARTITION_MIN_BW_SCALE                     0x10000000UL
1963	#define FUNC_QCFG_RESP_PARTITION_MIN_BW_SCALE_BITS                  (0x0UL << 28)
1964	#define FUNC_QCFG_RESP_PARTITION_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
1965	#define FUNC_QCFG_RESP_PARTITION_MIN_BW_SCALE_LAST                 FUNC_QCFG_RESP_PARTITION_MIN_BW_SCALE_BYTES
1966	#define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
1967	#define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_UNIT_SFT         29
1968	#define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
1969	#define FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_UNIT_LAST         FUNC_QCFG_RESP_PARTITION_MIN_BW_BW_VALUE_UNIT_PERCENT1_100
1970	__le32	partition_max_bw;
1971	#define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_MASK             0xfffffffUL
1972	#define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_SFT              0
1973	#define FUNC_QCFG_RESP_PARTITION_MAX_BW_SCALE                     0x10000000UL
1974	#define FUNC_QCFG_RESP_PARTITION_MAX_BW_SCALE_BITS                  (0x0UL << 28)
1975	#define FUNC_QCFG_RESP_PARTITION_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
1976	#define FUNC_QCFG_RESP_PARTITION_MAX_BW_SCALE_LAST                 FUNC_QCFG_RESP_PARTITION_MAX_BW_SCALE_BYTES
1977	#define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
1978	#define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_UNIT_SFT         29
1979	#define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
1980	#define FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_UNIT_LAST         FUNC_QCFG_RESP_PARTITION_MAX_BW_BW_VALUE_UNIT_PERCENT1_100
1981	__le16	host_mtu;
1982	u8	unused_3[2];
1983	u8	unused_4[2];
1984	u8	port_kdnet_mode;
1985	#define FUNC_QCFG_RESP_PORT_KDNET_MODE_DISABLED 0x0UL
1986	#define FUNC_QCFG_RESP_PORT_KDNET_MODE_ENABLED  0x1UL
1987	#define FUNC_QCFG_RESP_PORT_KDNET_MODE_LAST    FUNC_QCFG_RESP_PORT_KDNET_MODE_ENABLED
1988	u8	kdnet_pcie_function;
1989	__le16	port_kdnet_fid;
1990	u8	unused_5[2];
1991	__le32	num_ktls_tx_key_ctxs;
1992	__le32	num_ktls_rx_key_ctxs;
1993	u8	lag_id;
1994	u8	parif;
1995	u8	fw_lag_id;
1996	u8	unused_6;
1997	__le32	num_quic_tx_key_ctxs;
1998	__le32	num_quic_rx_key_ctxs;
1999	__le32	roce_max_av_per_vf;
2000	__le32	roce_max_cq_per_vf;
2001	__le32	roce_max_mrw_per_vf;
2002	__le32	roce_max_qp_per_vf;
2003	__le32	roce_max_srq_per_vf;
2004	__le32	roce_max_gid_per_vf;
2005	__le16	xid_partition_cfg;
2006	u8	unused_7;
2007	u8	valid;
2008};
2009
2010/* hwrm_func_cfg_input (size:1280b/160B) */
2011struct hwrm_func_cfg_input {
2012	__le16	req_type;
2013	__le16	cmpl_ring;
2014	__le16	seq_id;
2015	__le16	target_id;
2016	__le64	resp_addr;
2017	__le16	fid;
2018	__le16	num_msix;
2019	__le32	flags;
2020	#define FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_DISABLE     0x1UL
2021	#define FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_ENABLE      0x2UL
2022	#define FUNC_CFG_REQ_FLAGS_RSVD_MASK                      0x1fcUL
2023	#define FUNC_CFG_REQ_FLAGS_RSVD_SFT                       2
2024	#define FUNC_CFG_REQ_FLAGS_STD_TX_RING_MODE_ENABLE        0x200UL
2025	#define FUNC_CFG_REQ_FLAGS_STD_TX_RING_MODE_DISABLE       0x400UL
2026	#define FUNC_CFG_REQ_FLAGS_VIRT_MAC_PERSIST               0x800UL
2027	#define FUNC_CFG_REQ_FLAGS_NO_AUTOCLEAR_STATISTIC         0x1000UL
2028	#define FUNC_CFG_REQ_FLAGS_TX_ASSETS_TEST                 0x2000UL
2029	#define FUNC_CFG_REQ_FLAGS_RX_ASSETS_TEST                 0x4000UL
2030	#define FUNC_CFG_REQ_FLAGS_CMPL_ASSETS_TEST               0x8000UL
2031	#define FUNC_CFG_REQ_FLAGS_RSSCOS_CTX_ASSETS_TEST         0x10000UL
2032	#define FUNC_CFG_REQ_FLAGS_RING_GRP_ASSETS_TEST           0x20000UL
2033	#define FUNC_CFG_REQ_FLAGS_STAT_CTX_ASSETS_TEST           0x40000UL
2034	#define FUNC_CFG_REQ_FLAGS_VNIC_ASSETS_TEST               0x80000UL
2035	#define FUNC_CFG_REQ_FLAGS_L2_CTX_ASSETS_TEST             0x100000UL
2036	#define FUNC_CFG_REQ_FLAGS_TRUSTED_VF_ENABLE              0x200000UL
2037	#define FUNC_CFG_REQ_FLAGS_DYNAMIC_TX_RING_ALLOC          0x400000UL
2038	#define FUNC_CFG_REQ_FLAGS_NQ_ASSETS_TEST                 0x800000UL
2039	#define FUNC_CFG_REQ_FLAGS_TRUSTED_VF_DISABLE             0x1000000UL
2040	#define FUNC_CFG_REQ_FLAGS_PREBOOT_LEGACY_L2_RINGS        0x2000000UL
2041	#define FUNC_CFG_REQ_FLAGS_HOT_RESET_IF_EN_DIS            0x4000000UL
2042	#define FUNC_CFG_REQ_FLAGS_PPP_PUSH_MODE_ENABLE           0x8000000UL
2043	#define FUNC_CFG_REQ_FLAGS_PPP_PUSH_MODE_DISABLE          0x10000000UL
2044	#define FUNC_CFG_REQ_FLAGS_BD_METADATA_ENABLE             0x20000000UL
2045	#define FUNC_CFG_REQ_FLAGS_BD_METADATA_DISABLE            0x40000000UL
2046	__le32	enables;
2047	#define FUNC_CFG_REQ_ENABLES_ADMIN_MTU                0x1UL
2048	#define FUNC_CFG_REQ_ENABLES_MRU                      0x2UL
2049	#define FUNC_CFG_REQ_ENABLES_NUM_RSSCOS_CTXS          0x4UL
2050	#define FUNC_CFG_REQ_ENABLES_NUM_CMPL_RINGS           0x8UL
2051	#define FUNC_CFG_REQ_ENABLES_NUM_TX_RINGS             0x10UL
2052	#define FUNC_CFG_REQ_ENABLES_NUM_RX_RINGS             0x20UL
2053	#define FUNC_CFG_REQ_ENABLES_NUM_L2_CTXS              0x40UL
2054	#define FUNC_CFG_REQ_ENABLES_NUM_VNICS                0x80UL
2055	#define FUNC_CFG_REQ_ENABLES_NUM_STAT_CTXS            0x100UL
2056	#define FUNC_CFG_REQ_ENABLES_DFLT_MAC_ADDR            0x200UL
2057	#define FUNC_CFG_REQ_ENABLES_DFLT_VLAN                0x400UL
2058	#define FUNC_CFG_REQ_ENABLES_DFLT_IP_ADDR             0x800UL
2059	#define FUNC_CFG_REQ_ENABLES_MIN_BW                   0x1000UL
2060	#define FUNC_CFG_REQ_ENABLES_MAX_BW                   0x2000UL
2061	#define FUNC_CFG_REQ_ENABLES_ASYNC_EVENT_CR           0x4000UL
2062	#define FUNC_CFG_REQ_ENABLES_VLAN_ANTISPOOF_MODE      0x8000UL
2063	#define FUNC_CFG_REQ_ENABLES_ALLOWED_VLAN_PRIS        0x10000UL
2064	#define FUNC_CFG_REQ_ENABLES_EVB_MODE                 0x20000UL
2065	#define FUNC_CFG_REQ_ENABLES_NUM_MCAST_FILTERS        0x40000UL
2066	#define FUNC_CFG_REQ_ENABLES_NUM_HW_RING_GRPS         0x80000UL
2067	#define FUNC_CFG_REQ_ENABLES_CACHE_LINESIZE           0x100000UL
2068	#define FUNC_CFG_REQ_ENABLES_NUM_MSIX                 0x200000UL
2069	#define FUNC_CFG_REQ_ENABLES_ADMIN_LINK_STATE         0x400000UL
2070	#define FUNC_CFG_REQ_ENABLES_HOT_RESET_IF_SUPPORT     0x800000UL
2071	#define FUNC_CFG_REQ_ENABLES_SCHQ_ID                  0x1000000UL
2072	#define FUNC_CFG_REQ_ENABLES_MPC_CHNLS                0x2000000UL
2073	#define FUNC_CFG_REQ_ENABLES_PARTITION_MIN_BW         0x4000000UL
2074	#define FUNC_CFG_REQ_ENABLES_PARTITION_MAX_BW         0x8000000UL
2075	#define FUNC_CFG_REQ_ENABLES_TPID                     0x10000000UL
2076	#define FUNC_CFG_REQ_ENABLES_HOST_MTU                 0x20000000UL
2077	#define FUNC_CFG_REQ_ENABLES_KTLS_TX_KEY_CTXS         0x40000000UL
2078	#define FUNC_CFG_REQ_ENABLES_KTLS_RX_KEY_CTXS         0x80000000UL
2079	__le16	admin_mtu;
2080	__le16	mru;
2081	__le16	num_rsscos_ctxs;
2082	__le16	num_cmpl_rings;
2083	__le16	num_tx_rings;
2084	__le16	num_rx_rings;
2085	__le16	num_l2_ctxs;
2086	__le16	num_vnics;
2087	__le16	num_stat_ctxs;
2088	__le16	num_hw_ring_grps;
2089	u8	dflt_mac_addr[6];
2090	__le16	dflt_vlan;
2091	__be32	dflt_ip_addr[4];
2092	__le32	min_bw;
2093	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_MASK             0xfffffffUL
2094	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_SFT              0
2095	#define FUNC_CFG_REQ_MIN_BW_SCALE                     0x10000000UL
2096	#define FUNC_CFG_REQ_MIN_BW_SCALE_BITS                  (0x0UL << 28)
2097	#define FUNC_CFG_REQ_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
2098	#define FUNC_CFG_REQ_MIN_BW_SCALE_LAST                 FUNC_CFG_REQ_MIN_BW_SCALE_BYTES
2099	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
2100	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_SFT         29
2101	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
2102	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
2103	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
2104	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
2105	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
2106	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
2107	#define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_LAST         FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_INVALID
2108	__le32	max_bw;
2109	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_MASK             0xfffffffUL
2110	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_SFT              0
2111	#define FUNC_CFG_REQ_MAX_BW_SCALE                     0x10000000UL
2112	#define FUNC_CFG_REQ_MAX_BW_SCALE_BITS                  (0x0UL << 28)
2113	#define FUNC_CFG_REQ_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
2114	#define FUNC_CFG_REQ_MAX_BW_SCALE_LAST                 FUNC_CFG_REQ_MAX_BW_SCALE_BYTES
2115	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
2116	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_SFT         29
2117	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
2118	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
2119	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
2120	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
2121	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
2122	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
2123	#define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_LAST         FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_INVALID
2124	__le16	async_event_cr;
2125	u8	vlan_antispoof_mode;
2126	#define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_NOCHECK                 0x0UL
2127	#define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_VALIDATE_VLAN           0x1UL
2128	#define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_IF_VLANDNE       0x2UL
2129	#define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_OR_OVERRIDE_VLAN 0x3UL
2130	#define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_LAST                   FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_OR_OVERRIDE_VLAN
2131	u8	allowed_vlan_pris;
2132	u8	evb_mode;
2133	#define FUNC_CFG_REQ_EVB_MODE_NO_EVB 0x0UL
2134	#define FUNC_CFG_REQ_EVB_MODE_VEB    0x1UL
2135	#define FUNC_CFG_REQ_EVB_MODE_VEPA   0x2UL
2136	#define FUNC_CFG_REQ_EVB_MODE_LAST  FUNC_CFG_REQ_EVB_MODE_VEPA
2137	u8	options;
2138	#define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_MASK         0x3UL
2139	#define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SFT          0
2140	#define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_64        0x0UL
2141	#define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_128       0x1UL
2142	#define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_LAST          FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_128
2143	#define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_MASK       0xcUL
2144	#define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_SFT        2
2145	#define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_FORCED_DOWN  (0x0UL << 2)
2146	#define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_FORCED_UP    (0x1UL << 2)
2147	#define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_AUTO         (0x2UL << 2)
2148	#define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_LAST        FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_AUTO
2149	#define FUNC_CFG_REQ_OPTIONS_RSVD_MASK                   0xf0UL
2150	#define FUNC_CFG_REQ_OPTIONS_RSVD_SFT                    4
2151	__le16	num_mcast_filters;
2152	__le16	schq_id;
2153	__le16	mpc_chnls;
2154	#define FUNC_CFG_REQ_MPC_CHNLS_TCE_ENABLE          0x1UL
2155	#define FUNC_CFG_REQ_MPC_CHNLS_TCE_DISABLE         0x2UL
2156	#define FUNC_CFG_REQ_MPC_CHNLS_RCE_ENABLE          0x4UL
2157	#define FUNC_CFG_REQ_MPC_CHNLS_RCE_DISABLE         0x8UL
2158	#define FUNC_CFG_REQ_MPC_CHNLS_TE_CFA_ENABLE       0x10UL
2159	#define FUNC_CFG_REQ_MPC_CHNLS_TE_CFA_DISABLE      0x20UL
2160	#define FUNC_CFG_REQ_MPC_CHNLS_RE_CFA_ENABLE       0x40UL
2161	#define FUNC_CFG_REQ_MPC_CHNLS_RE_CFA_DISABLE      0x80UL
2162	#define FUNC_CFG_REQ_MPC_CHNLS_PRIMATE_ENABLE      0x100UL
2163	#define FUNC_CFG_REQ_MPC_CHNLS_PRIMATE_DISABLE     0x200UL
2164	__le32	partition_min_bw;
2165	#define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_MASK             0xfffffffUL
2166	#define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_SFT              0
2167	#define FUNC_CFG_REQ_PARTITION_MIN_BW_SCALE                     0x10000000UL
2168	#define FUNC_CFG_REQ_PARTITION_MIN_BW_SCALE_BITS                  (0x0UL << 28)
2169	#define FUNC_CFG_REQ_PARTITION_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
2170	#define FUNC_CFG_REQ_PARTITION_MIN_BW_SCALE_LAST                 FUNC_CFG_REQ_PARTITION_MIN_BW_SCALE_BYTES
2171	#define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
2172	#define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_UNIT_SFT         29
2173	#define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
2174	#define FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_UNIT_LAST         FUNC_CFG_REQ_PARTITION_MIN_BW_BW_VALUE_UNIT_PERCENT1_100
2175	__le32	partition_max_bw;
2176	#define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_MASK             0xfffffffUL
2177	#define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_SFT              0
2178	#define FUNC_CFG_REQ_PARTITION_MAX_BW_SCALE                     0x10000000UL
2179	#define FUNC_CFG_REQ_PARTITION_MAX_BW_SCALE_BITS                  (0x0UL << 28)
2180	#define FUNC_CFG_REQ_PARTITION_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
2181	#define FUNC_CFG_REQ_PARTITION_MAX_BW_SCALE_LAST                 FUNC_CFG_REQ_PARTITION_MAX_BW_SCALE_BYTES
2182	#define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
2183	#define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_UNIT_SFT         29
2184	#define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
2185	#define FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_UNIT_LAST         FUNC_CFG_REQ_PARTITION_MAX_BW_BW_VALUE_UNIT_PERCENT1_100
2186	__be16	tpid;
2187	__le16	host_mtu;
2188	__le32	flags2;
2189	#define FUNC_CFG_REQ_FLAGS2_KTLS_KEY_CTX_ASSETS_TEST     0x1UL
2190	#define FUNC_CFG_REQ_FLAGS2_QUIC_KEY_CTX_ASSETS_TEST     0x2UL
2191	__le32	enables2;
2192	#define FUNC_CFG_REQ_ENABLES2_KDNET                   0x1UL
2193	#define FUNC_CFG_REQ_ENABLES2_DB_PAGE_SIZE            0x2UL
2194	#define FUNC_CFG_REQ_ENABLES2_QUIC_TX_KEY_CTXS        0x4UL
2195	#define FUNC_CFG_REQ_ENABLES2_QUIC_RX_KEY_CTXS        0x8UL
2196	#define FUNC_CFG_REQ_ENABLES2_ROCE_MAX_AV_PER_VF      0x10UL
2197	#define FUNC_CFG_REQ_ENABLES2_ROCE_MAX_CQ_PER_VF      0x20UL
2198	#define FUNC_CFG_REQ_ENABLES2_ROCE_MAX_MRW_PER_VF     0x40UL
2199	#define FUNC_CFG_REQ_ENABLES2_ROCE_MAX_QP_PER_VF      0x80UL
2200	#define FUNC_CFG_REQ_ENABLES2_ROCE_MAX_SRQ_PER_VF     0x100UL
2201	#define FUNC_CFG_REQ_ENABLES2_ROCE_MAX_GID_PER_VF     0x200UL
2202	#define FUNC_CFG_REQ_ENABLES2_XID_PARTITION_CFG       0x400UL
2203	u8	port_kdnet_mode;
2204	#define FUNC_CFG_REQ_PORT_KDNET_MODE_DISABLED 0x0UL
2205	#define FUNC_CFG_REQ_PORT_KDNET_MODE_ENABLED  0x1UL
2206	#define FUNC_CFG_REQ_PORT_KDNET_MODE_LAST    FUNC_CFG_REQ_PORT_KDNET_MODE_ENABLED
2207	u8	db_page_size;
2208	#define FUNC_CFG_REQ_DB_PAGE_SIZE_4KB   0x0UL
2209	#define FUNC_CFG_REQ_DB_PAGE_SIZE_8KB   0x1UL
2210	#define FUNC_CFG_REQ_DB_PAGE_SIZE_16KB  0x2UL
2211	#define FUNC_CFG_REQ_DB_PAGE_SIZE_32KB  0x3UL
2212	#define FUNC_CFG_REQ_DB_PAGE_SIZE_64KB  0x4UL
2213	#define FUNC_CFG_REQ_DB_PAGE_SIZE_128KB 0x5UL
2214	#define FUNC_CFG_REQ_DB_PAGE_SIZE_256KB 0x6UL
2215	#define FUNC_CFG_REQ_DB_PAGE_SIZE_512KB 0x7UL
2216	#define FUNC_CFG_REQ_DB_PAGE_SIZE_1MB   0x8UL
2217	#define FUNC_CFG_REQ_DB_PAGE_SIZE_2MB   0x9UL
2218	#define FUNC_CFG_REQ_DB_PAGE_SIZE_4MB   0xaUL
2219	#define FUNC_CFG_REQ_DB_PAGE_SIZE_LAST FUNC_CFG_REQ_DB_PAGE_SIZE_4MB
2220	u8	unused_1[2];
2221	__le32	num_ktls_tx_key_ctxs;
2222	__le32	num_ktls_rx_key_ctxs;
2223	__le32	num_quic_tx_key_ctxs;
2224	__le32	num_quic_rx_key_ctxs;
2225	__le32	roce_max_av_per_vf;
2226	__le32	roce_max_cq_per_vf;
2227	__le32	roce_max_mrw_per_vf;
2228	__le32	roce_max_qp_per_vf;
2229	__le32	roce_max_srq_per_vf;
2230	__le32	roce_max_gid_per_vf;
2231	__le16	xid_partition_cfg;
2232	#define FUNC_CFG_REQ_XID_PARTITION_CFG_KTLS_TKC     0x1UL
2233	#define FUNC_CFG_REQ_XID_PARTITION_CFG_KTLS_RKC     0x2UL
2234	#define FUNC_CFG_REQ_XID_PARTITION_CFG_QUIC_TKC     0x4UL
2235	#define FUNC_CFG_REQ_XID_PARTITION_CFG_QUIC_RKC     0x8UL
2236	__le16	unused_2;
2237};
2238
2239/* hwrm_func_cfg_output (size:128b/16B) */
2240struct hwrm_func_cfg_output {
2241	__le16	error_code;
2242	__le16	req_type;
2243	__le16	seq_id;
2244	__le16	resp_len;
2245	u8	unused_0[7];
2246	u8	valid;
2247};
2248
2249/* hwrm_func_cfg_cmd_err (size:64b/8B) */
2250struct hwrm_func_cfg_cmd_err {
2251	u8	code;
2252	#define FUNC_CFG_CMD_ERR_CODE_UNKNOWN                      0x0UL
2253	#define FUNC_CFG_CMD_ERR_CODE_PARTITION_MIN_BW_RANGE       0x1UL
2254	#define FUNC_CFG_CMD_ERR_CODE_PARTITION_MIN_MORE_THAN_MAX  0x2UL
2255	#define FUNC_CFG_CMD_ERR_CODE_PARTITION_MIN_BW_UNSUPPORTED 0x3UL
2256	#define FUNC_CFG_CMD_ERR_CODE_PARTITION_BW_PERCENT         0x4UL
2257	#define FUNC_CFG_CMD_ERR_CODE_LAST                        FUNC_CFG_CMD_ERR_CODE_PARTITION_BW_PERCENT
2258	u8	unused_0[7];
2259};
2260
2261/* hwrm_func_qstats_input (size:192b/24B) */
2262struct hwrm_func_qstats_input {
2263	__le16	req_type;
2264	__le16	cmpl_ring;
2265	__le16	seq_id;
2266	__le16	target_id;
2267	__le64	resp_addr;
2268	__le16	fid;
2269	u8	flags;
2270	#define FUNC_QSTATS_REQ_FLAGS_ROCE_ONLY        0x1UL
2271	#define FUNC_QSTATS_REQ_FLAGS_COUNTER_MASK     0x2UL
2272	#define FUNC_QSTATS_REQ_FLAGS_L2_ONLY          0x4UL
2273	u8	unused_0[5];
2274};
2275
2276/* hwrm_func_qstats_output (size:1408b/176B) */
2277struct hwrm_func_qstats_output {
2278	__le16	error_code;
2279	__le16	req_type;
2280	__le16	seq_id;
2281	__le16	resp_len;
2282	__le64	tx_ucast_pkts;
2283	__le64	tx_mcast_pkts;
2284	__le64	tx_bcast_pkts;
2285	__le64	tx_discard_pkts;
2286	__le64	tx_drop_pkts;
2287	__le64	tx_ucast_bytes;
2288	__le64	tx_mcast_bytes;
2289	__le64	tx_bcast_bytes;
2290	__le64	rx_ucast_pkts;
2291	__le64	rx_mcast_pkts;
2292	__le64	rx_bcast_pkts;
2293	__le64	rx_discard_pkts;
2294	__le64	rx_drop_pkts;
2295	__le64	rx_ucast_bytes;
2296	__le64	rx_mcast_bytes;
2297	__le64	rx_bcast_bytes;
2298	__le64	rx_agg_pkts;
2299	__le64	rx_agg_bytes;
2300	__le64	rx_agg_events;
2301	__le64	rx_agg_aborts;
2302	u8	clear_seq;
2303	u8	unused_0[6];
2304	u8	valid;
2305};
2306
2307/* hwrm_func_qstats_ext_input (size:256b/32B) */
2308struct hwrm_func_qstats_ext_input {
2309	__le16	req_type;
2310	__le16	cmpl_ring;
2311	__le16	seq_id;
2312	__le16	target_id;
2313	__le64	resp_addr;
2314	__le16	fid;
2315	u8	flags;
2316	#define FUNC_QSTATS_EXT_REQ_FLAGS_ROCE_ONLY        0x1UL
2317	#define FUNC_QSTATS_EXT_REQ_FLAGS_COUNTER_MASK     0x2UL
2318	u8	unused_0[1];
2319	__le32	enables;
2320	#define FUNC_QSTATS_EXT_REQ_ENABLES_SCHQ_ID     0x1UL
2321	__le16	schq_id;
2322	__le16	traffic_class;
2323	u8	unused_1[4];
2324};
2325
2326/* hwrm_func_qstats_ext_output (size:1536b/192B) */
2327struct hwrm_func_qstats_ext_output {
2328	__le16	error_code;
2329	__le16	req_type;
2330	__le16	seq_id;
2331	__le16	resp_len;
2332	__le64	rx_ucast_pkts;
2333	__le64	rx_mcast_pkts;
2334	__le64	rx_bcast_pkts;
2335	__le64	rx_discard_pkts;
2336	__le64	rx_error_pkts;
2337	__le64	rx_ucast_bytes;
2338	__le64	rx_mcast_bytes;
2339	__le64	rx_bcast_bytes;
2340	__le64	tx_ucast_pkts;
2341	__le64	tx_mcast_pkts;
2342	__le64	tx_bcast_pkts;
2343	__le64	tx_error_pkts;
2344	__le64	tx_discard_pkts;
2345	__le64	tx_ucast_bytes;
2346	__le64	tx_mcast_bytes;
2347	__le64	tx_bcast_bytes;
2348	__le64	rx_tpa_eligible_pkt;
2349	__le64	rx_tpa_eligible_bytes;
2350	__le64	rx_tpa_pkt;
2351	__le64	rx_tpa_bytes;
2352	__le64	rx_tpa_errors;
2353	__le64	rx_tpa_events;
2354	u8	unused_0[7];
2355	u8	valid;
2356};
2357
2358/* hwrm_func_clr_stats_input (size:192b/24B) */
2359struct hwrm_func_clr_stats_input {
2360	__le16	req_type;
2361	__le16	cmpl_ring;
2362	__le16	seq_id;
2363	__le16	target_id;
2364	__le64	resp_addr;
2365	__le16	fid;
2366	u8	unused_0[6];
2367};
2368
2369/* hwrm_func_clr_stats_output (size:128b/16B) */
2370struct hwrm_func_clr_stats_output {
2371	__le16	error_code;
2372	__le16	req_type;
2373	__le16	seq_id;
2374	__le16	resp_len;
2375	u8	unused_0[7];
2376	u8	valid;
2377};
2378
2379/* hwrm_func_vf_resc_free_input (size:192b/24B) */
2380struct hwrm_func_vf_resc_free_input {
2381	__le16	req_type;
2382	__le16	cmpl_ring;
2383	__le16	seq_id;
2384	__le16	target_id;
2385	__le64	resp_addr;
2386	__le16	vf_id;
2387	u8	unused_0[6];
2388};
2389
2390/* hwrm_func_vf_resc_free_output (size:128b/16B) */
2391struct hwrm_func_vf_resc_free_output {
2392	__le16	error_code;
2393	__le16	req_type;
2394	__le16	seq_id;
2395	__le16	resp_len;
2396	u8	unused_0[7];
2397	u8	valid;
2398};
2399
2400/* hwrm_func_drv_rgtr_input (size:896b/112B) */
2401struct hwrm_func_drv_rgtr_input {
2402	__le16	req_type;
2403	__le16	cmpl_ring;
2404	__le16	seq_id;
2405	__le16	target_id;
2406	__le64	resp_addr;
2407	__le32	flags;
2408	#define FUNC_DRV_RGTR_REQ_FLAGS_FWD_ALL_MODE                     0x1UL
2409	#define FUNC_DRV_RGTR_REQ_FLAGS_FWD_NONE_MODE                    0x2UL
2410	#define FUNC_DRV_RGTR_REQ_FLAGS_16BIT_VER_MODE                   0x4UL
2411	#define FUNC_DRV_RGTR_REQ_FLAGS_FLOW_HANDLE_64BIT_MODE           0x8UL
2412	#define FUNC_DRV_RGTR_REQ_FLAGS_HOT_RESET_SUPPORT                0x10UL
2413	#define FUNC_DRV_RGTR_REQ_FLAGS_ERROR_RECOVERY_SUPPORT           0x20UL
2414	#define FUNC_DRV_RGTR_REQ_FLAGS_MASTER_SUPPORT                   0x40UL
2415	#define FUNC_DRV_RGTR_REQ_FLAGS_FAST_RESET_SUPPORT               0x80UL
2416	#define FUNC_DRV_RGTR_REQ_FLAGS_RSS_STRICT_HASH_TYPE_SUPPORT     0x100UL
2417	#define FUNC_DRV_RGTR_REQ_FLAGS_NPAR_1_2_SUPPORT                 0x200UL
2418	#define FUNC_DRV_RGTR_REQ_FLAGS_ASYM_QUEUE_CFG_SUPPORT           0x400UL
2419	__le32	enables;
2420	#define FUNC_DRV_RGTR_REQ_ENABLES_OS_TYPE             0x1UL
2421	#define FUNC_DRV_RGTR_REQ_ENABLES_VER                 0x2UL
2422	#define FUNC_DRV_RGTR_REQ_ENABLES_TIMESTAMP           0x4UL
2423	#define FUNC_DRV_RGTR_REQ_ENABLES_VF_REQ_FWD          0x8UL
2424	#define FUNC_DRV_RGTR_REQ_ENABLES_ASYNC_EVENT_FWD     0x10UL
2425	__le16	os_type;
2426	#define FUNC_DRV_RGTR_REQ_OS_TYPE_UNKNOWN   0x0UL
2427	#define FUNC_DRV_RGTR_REQ_OS_TYPE_OTHER     0x1UL
2428	#define FUNC_DRV_RGTR_REQ_OS_TYPE_MSDOS     0xeUL
2429	#define FUNC_DRV_RGTR_REQ_OS_TYPE_WINDOWS   0x12UL
2430	#define FUNC_DRV_RGTR_REQ_OS_TYPE_SOLARIS   0x1dUL
2431	#define FUNC_DRV_RGTR_REQ_OS_TYPE_LINUX     0x24UL
2432	#define FUNC_DRV_RGTR_REQ_OS_TYPE_FREEBSD   0x2aUL
2433	#define FUNC_DRV_RGTR_REQ_OS_TYPE_ESXI      0x68UL
2434	#define FUNC_DRV_RGTR_REQ_OS_TYPE_WIN864    0x73UL
2435	#define FUNC_DRV_RGTR_REQ_OS_TYPE_WIN2012R2 0x74UL
2436	#define FUNC_DRV_RGTR_REQ_OS_TYPE_UEFI      0x8000UL
2437	#define FUNC_DRV_RGTR_REQ_OS_TYPE_LAST     FUNC_DRV_RGTR_REQ_OS_TYPE_UEFI
2438	u8	ver_maj_8b;
2439	u8	ver_min_8b;
2440	u8	ver_upd_8b;
2441	u8	unused_0[3];
2442	__le32	timestamp;
2443	u8	unused_1[4];
2444	__le32	vf_req_fwd[8];
2445	__le32	async_event_fwd[8];
2446	__le16	ver_maj;
2447	__le16	ver_min;
2448	__le16	ver_upd;
2449	__le16	ver_patch;
2450};
2451
2452/* hwrm_func_drv_rgtr_output (size:128b/16B) */
2453struct hwrm_func_drv_rgtr_output {
2454	__le16	error_code;
2455	__le16	req_type;
2456	__le16	seq_id;
2457	__le16	resp_len;
2458	__le32	flags;
2459	#define FUNC_DRV_RGTR_RESP_FLAGS_IF_CHANGE_SUPPORTED     0x1UL
2460	u8	unused_0[3];
2461	u8	valid;
2462};
2463
2464/* hwrm_func_drv_unrgtr_input (size:192b/24B) */
2465struct hwrm_func_drv_unrgtr_input {
2466	__le16	req_type;
2467	__le16	cmpl_ring;
2468	__le16	seq_id;
2469	__le16	target_id;
2470	__le64	resp_addr;
2471	__le32	flags;
2472	#define FUNC_DRV_UNRGTR_REQ_FLAGS_PREPARE_FOR_SHUTDOWN     0x1UL
2473	u8	unused_0[4];
2474};
2475
2476/* hwrm_func_drv_unrgtr_output (size:128b/16B) */
2477struct hwrm_func_drv_unrgtr_output {
2478	__le16	error_code;
2479	__le16	req_type;
2480	__le16	seq_id;
2481	__le16	resp_len;
2482	u8	unused_0[7];
2483	u8	valid;
2484};
2485
2486/* hwrm_func_buf_rgtr_input (size:1024b/128B) */
2487struct hwrm_func_buf_rgtr_input {
2488	__le16	req_type;
2489	__le16	cmpl_ring;
2490	__le16	seq_id;
2491	__le16	target_id;
2492	__le64	resp_addr;
2493	__le32	enables;
2494	#define FUNC_BUF_RGTR_REQ_ENABLES_VF_ID            0x1UL
2495	#define FUNC_BUF_RGTR_REQ_ENABLES_ERR_BUF_ADDR     0x2UL
2496	__le16	vf_id;
2497	__le16	req_buf_num_pages;
2498	__le16	req_buf_page_size;
2499	#define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_16B 0x4UL
2500	#define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_4K  0xcUL
2501	#define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_8K  0xdUL
2502	#define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_64K 0x10UL
2503	#define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_2M  0x15UL
2504	#define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_4M  0x16UL
2505	#define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_1G  0x1eUL
2506	#define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_LAST FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_1G
2507	__le16	req_buf_len;
2508	__le16	resp_buf_len;
2509	u8	unused_0[2];
2510	__le64	req_buf_page_addr0;
2511	__le64	req_buf_page_addr1;
2512	__le64	req_buf_page_addr2;
2513	__le64	req_buf_page_addr3;
2514	__le64	req_buf_page_addr4;
2515	__le64	req_buf_page_addr5;
2516	__le64	req_buf_page_addr6;
2517	__le64	req_buf_page_addr7;
2518	__le64	req_buf_page_addr8;
2519	__le64	req_buf_page_addr9;
2520	__le64	error_buf_addr;
2521	__le64	resp_buf_addr;
2522};
2523
2524/* hwrm_func_buf_rgtr_output (size:128b/16B) */
2525struct hwrm_func_buf_rgtr_output {
2526	__le16	error_code;
2527	__le16	req_type;
2528	__le16	seq_id;
2529	__le16	resp_len;
2530	u8	unused_0[7];
2531	u8	valid;
2532};
2533
2534/* hwrm_func_drv_qver_input (size:192b/24B) */
2535struct hwrm_func_drv_qver_input {
2536	__le16	req_type;
2537	__le16	cmpl_ring;
2538	__le16	seq_id;
2539	__le16	target_id;
2540	__le64	resp_addr;
2541	__le32	reserved;
2542	__le16	fid;
2543	u8	driver_type;
2544	#define FUNC_DRV_QVER_REQ_DRIVER_TYPE_L2   0x0UL
2545	#define FUNC_DRV_QVER_REQ_DRIVER_TYPE_ROCE 0x1UL
2546	#define FUNC_DRV_QVER_REQ_DRIVER_TYPE_LAST FUNC_DRV_QVER_REQ_DRIVER_TYPE_ROCE
2547	u8	unused_0;
2548};
2549
2550/* hwrm_func_drv_qver_output (size:256b/32B) */
2551struct hwrm_func_drv_qver_output {
2552	__le16	error_code;
2553	__le16	req_type;
2554	__le16	seq_id;
2555	__le16	resp_len;
2556	__le16	os_type;
2557	#define FUNC_DRV_QVER_RESP_OS_TYPE_UNKNOWN   0x0UL
2558	#define FUNC_DRV_QVER_RESP_OS_TYPE_OTHER     0x1UL
2559	#define FUNC_DRV_QVER_RESP_OS_TYPE_MSDOS     0xeUL
2560	#define FUNC_DRV_QVER_RESP_OS_TYPE_WINDOWS   0x12UL
2561	#define FUNC_DRV_QVER_RESP_OS_TYPE_SOLARIS   0x1dUL
2562	#define FUNC_DRV_QVER_RESP_OS_TYPE_LINUX     0x24UL
2563	#define FUNC_DRV_QVER_RESP_OS_TYPE_FREEBSD   0x2aUL
2564	#define FUNC_DRV_QVER_RESP_OS_TYPE_ESXI      0x68UL
2565	#define FUNC_DRV_QVER_RESP_OS_TYPE_WIN864    0x73UL
2566	#define FUNC_DRV_QVER_RESP_OS_TYPE_WIN2012R2 0x74UL
2567	#define FUNC_DRV_QVER_RESP_OS_TYPE_UEFI      0x8000UL
2568	#define FUNC_DRV_QVER_RESP_OS_TYPE_LAST     FUNC_DRV_QVER_RESP_OS_TYPE_UEFI
2569	u8	ver_maj_8b;
2570	u8	ver_min_8b;
2571	u8	ver_upd_8b;
2572	u8	unused_0[3];
2573	__le16	ver_maj;
2574	__le16	ver_min;
2575	__le16	ver_upd;
2576	__le16	ver_patch;
2577	u8	unused_1[7];
2578	u8	valid;
2579};
2580
2581/* hwrm_func_resource_qcaps_input (size:192b/24B) */
2582struct hwrm_func_resource_qcaps_input {
2583	__le16	req_type;
2584	__le16	cmpl_ring;
2585	__le16	seq_id;
2586	__le16	target_id;
2587	__le64	resp_addr;
2588	__le16	fid;
2589	u8	unused_0[6];
2590};
2591
2592/* hwrm_func_resource_qcaps_output (size:704b/88B) */
2593struct hwrm_func_resource_qcaps_output {
2594	__le16	error_code;
2595	__le16	req_type;
2596	__le16	seq_id;
2597	__le16	resp_len;
2598	__le16	max_vfs;
2599	__le16	max_msix;
2600	__le16	vf_reservation_strategy;
2601	#define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MAXIMAL        0x0UL
2602	#define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL        0x1UL
2603	#define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL_STATIC 0x2UL
2604	#define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_LAST          FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL_STATIC
2605	__le16	min_rsscos_ctx;
2606	__le16	max_rsscos_ctx;
2607	__le16	min_cmpl_rings;
2608	__le16	max_cmpl_rings;
2609	__le16	min_tx_rings;
2610	__le16	max_tx_rings;
2611	__le16	min_rx_rings;
2612	__le16	max_rx_rings;
2613	__le16	min_l2_ctxs;
2614	__le16	max_l2_ctxs;
2615	__le16	min_vnics;
2616	__le16	max_vnics;
2617	__le16	min_stat_ctx;
2618	__le16	max_stat_ctx;
2619	__le16	min_hw_ring_grps;
2620	__le16	max_hw_ring_grps;
2621	__le16	max_tx_scheduler_inputs;
2622	__le16	flags;
2623	#define FUNC_RESOURCE_QCAPS_RESP_FLAGS_MIN_GUARANTEED     0x1UL
2624	__le16	min_msix;
2625	__le32	min_ktls_tx_key_ctxs;
2626	__le32	max_ktls_tx_key_ctxs;
2627	__le32	min_ktls_rx_key_ctxs;
2628	__le32	max_ktls_rx_key_ctxs;
2629	__le32	min_quic_tx_key_ctxs;
2630	__le32	max_quic_tx_key_ctxs;
2631	__le32	min_quic_rx_key_ctxs;
2632	__le32	max_quic_rx_key_ctxs;
2633	u8	unused_0[3];
2634	u8	valid;
2635};
2636
2637/* hwrm_func_vf_resource_cfg_input (size:704b/88B) */
2638struct hwrm_func_vf_resource_cfg_input {
2639	__le16	req_type;
2640	__le16	cmpl_ring;
2641	__le16	seq_id;
2642	__le16	target_id;
2643	__le64	resp_addr;
2644	__le16	vf_id;
2645	__le16	max_msix;
2646	__le16	min_rsscos_ctx;
2647	__le16	max_rsscos_ctx;
2648	__le16	min_cmpl_rings;
2649	__le16	max_cmpl_rings;
2650	__le16	min_tx_rings;
2651	__le16	max_tx_rings;
2652	__le16	min_rx_rings;
2653	__le16	max_rx_rings;
2654	__le16	min_l2_ctxs;
2655	__le16	max_l2_ctxs;
2656	__le16	min_vnics;
2657	__le16	max_vnics;
2658	__le16	min_stat_ctx;
2659	__le16	max_stat_ctx;
2660	__le16	min_hw_ring_grps;
2661	__le16	max_hw_ring_grps;
2662	__le16	flags;
2663	#define FUNC_VF_RESOURCE_CFG_REQ_FLAGS_MIN_GUARANTEED     0x1UL
2664	__le16	min_msix;
2665	__le32	min_ktls_tx_key_ctxs;
2666	__le32	max_ktls_tx_key_ctxs;
2667	__le32	min_ktls_rx_key_ctxs;
2668	__le32	max_ktls_rx_key_ctxs;
2669	__le32	min_quic_tx_key_ctxs;
2670	__le32	max_quic_tx_key_ctxs;
2671	__le32	min_quic_rx_key_ctxs;
2672	__le32	max_quic_rx_key_ctxs;
2673};
2674
2675/* hwrm_func_vf_resource_cfg_output (size:384b/48B) */
2676struct hwrm_func_vf_resource_cfg_output {
2677	__le16	error_code;
2678	__le16	req_type;
2679	__le16	seq_id;
2680	__le16	resp_len;
2681	__le16	reserved_rsscos_ctx;
2682	__le16	reserved_cmpl_rings;
2683	__le16	reserved_tx_rings;
2684	__le16	reserved_rx_rings;
2685	__le16	reserved_l2_ctxs;
2686	__le16	reserved_vnics;
2687	__le16	reserved_stat_ctx;
2688	__le16	reserved_hw_ring_grps;
2689	__le32	reserved_ktls_tx_key_ctxs;
2690	__le32	reserved_ktls_rx_key_ctxs;
2691	__le32	reserved_quic_tx_key_ctxs;
2692	__le32	reserved_quic_rx_key_ctxs;
2693	u8	unused_0[7];
2694	u8	valid;
2695};
2696
2697/* hwrm_func_backing_store_qcaps_input (size:128b/16B) */
2698struct hwrm_func_backing_store_qcaps_input {
2699	__le16	req_type;
2700	__le16	cmpl_ring;
2701	__le16	seq_id;
2702	__le16	target_id;
2703	__le64	resp_addr;
2704};
2705
2706/* hwrm_func_backing_store_qcaps_output (size:832b/104B) */
2707struct hwrm_func_backing_store_qcaps_output {
2708	__le16	error_code;
2709	__le16	req_type;
2710	__le16	seq_id;
2711	__le16	resp_len;
2712	__le32	qp_max_entries;
2713	__le16	qp_min_qp1_entries;
2714	__le16	qp_max_l2_entries;
2715	__le16	qp_entry_size;
2716	__le16	srq_max_l2_entries;
2717	__le32	srq_max_entries;
2718	__le16	srq_entry_size;
2719	__le16	cq_max_l2_entries;
2720	__le32	cq_max_entries;
2721	__le16	cq_entry_size;
2722	__le16	vnic_max_vnic_entries;
2723	__le16	vnic_max_ring_table_entries;
2724	__le16	vnic_entry_size;
2725	__le32	stat_max_entries;
2726	__le16	stat_entry_size;
2727	__le16	tqm_entry_size;
2728	__le32	tqm_min_entries_per_ring;
2729	__le32	tqm_max_entries_per_ring;
2730	__le32	mrav_max_entries;
2731	__le16	mrav_entry_size;
2732	__le16	tim_entry_size;
2733	__le32	tim_max_entries;
2734	__le16	mrav_num_entries_units;
2735	u8	tqm_entries_multiple;
2736	u8	ctx_kind_initializer;
2737	__le16	ctx_init_mask;
2738	#define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_QP       0x1UL
2739	#define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_SRQ      0x2UL
2740	#define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_CQ       0x4UL
2741	#define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_VNIC     0x8UL
2742	#define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_STAT     0x10UL
2743	#define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_MRAV     0x20UL
2744	#define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_TKC      0x40UL
2745	#define FUNC_BACKING_STORE_QCAPS_RESP_CTX_INIT_MASK_RKC      0x80UL
2746	u8	qp_init_offset;
2747	u8	srq_init_offset;
2748	u8	cq_init_offset;
2749	u8	vnic_init_offset;
2750	u8	tqm_fp_rings_count;
2751	u8	stat_init_offset;
2752	u8	mrav_init_offset;
2753	u8	tqm_fp_rings_count_ext;
2754	u8	tkc_init_offset;
2755	u8	rkc_init_offset;
2756	__le16	tkc_entry_size;
2757	__le16	rkc_entry_size;
2758	__le32	tkc_max_entries;
2759	__le32	rkc_max_entries;
2760	__le16	fast_qpmd_qp_num_entries;
2761	u8	rsvd1[5];
2762	u8	valid;
2763};
2764
2765/* tqm_fp_ring_cfg (size:128b/16B) */
2766struct tqm_fp_ring_cfg {
2767	u8	tqm_ring_pg_size_tqm_ring_lvl;
2768	#define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_MASK      0xfUL
2769	#define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_SFT       0
2770	#define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_LVL_0       0x0UL
2771	#define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_LVL_1       0x1UL
2772	#define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_LVL_2       0x2UL
2773	#define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_LAST       TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_LVL_LVL_2
2774	#define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_MASK  0xf0UL
2775	#define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_SFT   4
2776	#define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_4K   (0x0UL << 4)
2777	#define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_8K   (0x1UL << 4)
2778	#define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_64K  (0x2UL << 4)
2779	#define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_2M   (0x3UL << 4)
2780	#define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_8M   (0x4UL << 4)
2781	#define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_1G   (0x5UL << 4)
2782	#define TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_LAST   TQM_FP_RING_CFG_TQM_RING_CFG_TQM_RING_PG_SIZE_PG_1G
2783	u8	unused[3];
2784	__le32	tqm_ring_num_entries;
2785	__le64	tqm_ring_page_dir;
2786};
2787
2788/* hwrm_func_backing_store_cfg_input (size:2688b/336B) */
2789struct hwrm_func_backing_store_cfg_input {
2790	__le16	req_type;
2791	__le16	cmpl_ring;
2792	__le16	seq_id;
2793	__le16	target_id;
2794	__le64	resp_addr;
2795	__le32	flags;
2796	#define FUNC_BACKING_STORE_CFG_REQ_FLAGS_PREBOOT_MODE               0x1UL
2797	#define FUNC_BACKING_STORE_CFG_REQ_FLAGS_MRAV_RESERVATION_SPLIT     0x2UL
2798	__le32	enables;
2799	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_QP               0x1UL
2800	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_SRQ              0x2UL
2801	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_CQ               0x4UL
2802	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_VNIC             0x8UL
2803	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_STAT             0x10UL
2804	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_SP           0x20UL
2805	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING0        0x40UL
2806	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING1        0x80UL
2807	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING2        0x100UL
2808	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING3        0x200UL
2809	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING4        0x400UL
2810	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING5        0x800UL
2811	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING6        0x1000UL
2812	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING7        0x2000UL
2813	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_MRAV             0x4000UL
2814	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TIM              0x8000UL
2815	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING8        0x10000UL
2816	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING9        0x20000UL
2817	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING10       0x40000UL
2818	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TKC              0x80000UL
2819	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_RKC              0x100000UL
2820	#define FUNC_BACKING_STORE_CFG_REQ_ENABLES_QP_FAST_QPMD     0x200000UL
2821	u8	qpc_pg_size_qpc_lvl;
2822	#define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_MASK      0xfUL
2823	#define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_SFT       0
2824	#define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_0       0x0UL
2825	#define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_1       0x1UL
2826	#define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_2       0x2UL
2827	#define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_2
2828	#define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_MASK  0xf0UL
2829	#define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_SFT   4
2830	#define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_4K   (0x0UL << 4)
2831	#define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_8K   (0x1UL << 4)
2832	#define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_64K  (0x2UL << 4)
2833	#define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_2M   (0x3UL << 4)
2834	#define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_8M   (0x4UL << 4)
2835	#define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_1G   (0x5UL << 4)
2836	#define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_1G
2837	u8	srq_pg_size_srq_lvl;
2838	#define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_MASK      0xfUL
2839	#define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_SFT       0
2840	#define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_0       0x0UL
2841	#define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_1       0x1UL
2842	#define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_2       0x2UL
2843	#define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_2
2844	#define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_MASK  0xf0UL
2845	#define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_SFT   4
2846	#define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_4K   (0x0UL << 4)
2847	#define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_8K   (0x1UL << 4)
2848	#define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_64K  (0x2UL << 4)
2849	#define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_2M   (0x3UL << 4)
2850	#define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_8M   (0x4UL << 4)
2851	#define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_1G   (0x5UL << 4)
2852	#define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_1G
2853	u8	cq_pg_size_cq_lvl;
2854	#define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_MASK      0xfUL
2855	#define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_SFT       0
2856	#define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_0       0x0UL
2857	#define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_1       0x1UL
2858	#define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_2       0x2UL
2859	#define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_2
2860	#define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_MASK  0xf0UL
2861	#define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_SFT   4
2862	#define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_4K   (0x0UL << 4)
2863	#define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_8K   (0x1UL << 4)
2864	#define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_64K  (0x2UL << 4)
2865	#define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_2M   (0x3UL << 4)
2866	#define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_8M   (0x4UL << 4)
2867	#define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_1G   (0x5UL << 4)
2868	#define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_1G
2869	u8	vnic_pg_size_vnic_lvl;
2870	#define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_MASK      0xfUL
2871	#define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_SFT       0
2872	#define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_0       0x0UL
2873	#define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_1       0x1UL
2874	#define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_2       0x2UL
2875	#define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_2
2876	#define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_MASK  0xf0UL
2877	#define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_SFT   4
2878	#define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_4K   (0x0UL << 4)
2879	#define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_8K   (0x1UL << 4)
2880	#define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_64K  (0x2UL << 4)
2881	#define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_2M   (0x3UL << 4)
2882	#define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_8M   (0x4UL << 4)
2883	#define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_1G   (0x5UL << 4)
2884	#define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_1G
2885	u8	stat_pg_size_stat_lvl;
2886	#define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_MASK      0xfUL
2887	#define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_SFT       0
2888	#define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_0       0x0UL
2889	#define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_1       0x1UL
2890	#define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_2       0x2UL
2891	#define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_2
2892	#define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_MASK  0xf0UL
2893	#define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_SFT   4
2894	#define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_4K   (0x0UL << 4)
2895	#define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_8K   (0x1UL << 4)
2896	#define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_64K  (0x2UL << 4)
2897	#define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_2M   (0x3UL << 4)
2898	#define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_8M   (0x4UL << 4)
2899	#define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_1G   (0x5UL << 4)
2900	#define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_1G
2901	u8	tqm_sp_pg_size_tqm_sp_lvl;
2902	#define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_MASK      0xfUL
2903	#define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_SFT       0
2904	#define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_0       0x0UL
2905	#define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_1       0x1UL
2906	#define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_2       0x2UL
2907	#define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_2
2908	#define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_MASK  0xf0UL
2909	#define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_SFT   4
2910	#define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_4K   (0x0UL << 4)
2911	#define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_8K   (0x1UL << 4)
2912	#define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_64K  (0x2UL << 4)
2913	#define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_2M   (0x3UL << 4)
2914	#define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_8M   (0x4UL << 4)
2915	#define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_1G   (0x5UL << 4)
2916	#define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_1G
2917	u8	tqm_ring0_pg_size_tqm_ring0_lvl;
2918	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_MASK      0xfUL
2919	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_SFT       0
2920	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_0       0x0UL
2921	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_1       0x1UL
2922	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_2       0x2UL
2923	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_2
2924	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_MASK  0xf0UL
2925	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_SFT   4
2926	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_4K   (0x0UL << 4)
2927	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_8K   (0x1UL << 4)
2928	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_64K  (0x2UL << 4)
2929	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_2M   (0x3UL << 4)
2930	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_8M   (0x4UL << 4)
2931	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_1G   (0x5UL << 4)
2932	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_1G
2933	u8	tqm_ring1_pg_size_tqm_ring1_lvl;
2934	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_MASK      0xfUL
2935	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_SFT       0
2936	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_0       0x0UL
2937	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_1       0x1UL
2938	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_2       0x2UL
2939	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_2
2940	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_MASK  0xf0UL
2941	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_SFT   4
2942	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_4K   (0x0UL << 4)
2943	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_8K   (0x1UL << 4)
2944	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_64K  (0x2UL << 4)
2945	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_2M   (0x3UL << 4)
2946	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_8M   (0x4UL << 4)
2947	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_1G   (0x5UL << 4)
2948	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_1G
2949	u8	tqm_ring2_pg_size_tqm_ring2_lvl;
2950	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_MASK      0xfUL
2951	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_SFT       0
2952	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_0       0x0UL
2953	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_1       0x1UL
2954	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_2       0x2UL
2955	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_2
2956	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_MASK  0xf0UL
2957	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_SFT   4
2958	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_4K   (0x0UL << 4)
2959	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_8K   (0x1UL << 4)
2960	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_64K  (0x2UL << 4)
2961	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_2M   (0x3UL << 4)
2962	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_8M   (0x4UL << 4)
2963	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_1G   (0x5UL << 4)
2964	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_1G
2965	u8	tqm_ring3_pg_size_tqm_ring3_lvl;
2966	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_MASK      0xfUL
2967	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_SFT       0
2968	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_0       0x0UL
2969	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_1       0x1UL
2970	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_2       0x2UL
2971	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_2
2972	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_MASK  0xf0UL
2973	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_SFT   4
2974	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_4K   (0x0UL << 4)
2975	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_8K   (0x1UL << 4)
2976	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_64K  (0x2UL << 4)
2977	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_2M   (0x3UL << 4)
2978	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_8M   (0x4UL << 4)
2979	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_1G   (0x5UL << 4)
2980	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_1G
2981	u8	tqm_ring4_pg_size_tqm_ring4_lvl;
2982	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_MASK      0xfUL
2983	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_SFT       0
2984	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_0       0x0UL
2985	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_1       0x1UL
2986	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_2       0x2UL
2987	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_2
2988	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_MASK  0xf0UL
2989	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_SFT   4
2990	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_4K   (0x0UL << 4)
2991	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_8K   (0x1UL << 4)
2992	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_64K  (0x2UL << 4)
2993	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_2M   (0x3UL << 4)
2994	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_8M   (0x4UL << 4)
2995	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_1G   (0x5UL << 4)
2996	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_1G
2997	u8	tqm_ring5_pg_size_tqm_ring5_lvl;
2998	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_MASK      0xfUL
2999	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_SFT       0
3000	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_0       0x0UL
3001	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_1       0x1UL
3002	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_2       0x2UL
3003	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_2
3004	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_MASK  0xf0UL
3005	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_SFT   4
3006	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_4K   (0x0UL << 4)
3007	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_8K   (0x1UL << 4)
3008	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_64K  (0x2UL << 4)
3009	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_2M   (0x3UL << 4)
3010	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_8M   (0x4UL << 4)
3011	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_1G   (0x5UL << 4)
3012	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_1G
3013	u8	tqm_ring6_pg_size_tqm_ring6_lvl;
3014	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_MASK      0xfUL
3015	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_SFT       0
3016	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_0       0x0UL
3017	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_1       0x1UL
3018	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_2       0x2UL
3019	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_2
3020	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_MASK  0xf0UL
3021	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_SFT   4
3022	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_4K   (0x0UL << 4)
3023	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_8K   (0x1UL << 4)
3024	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_64K  (0x2UL << 4)
3025	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_2M   (0x3UL << 4)
3026	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_8M   (0x4UL << 4)
3027	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_1G   (0x5UL << 4)
3028	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_1G
3029	u8	tqm_ring7_pg_size_tqm_ring7_lvl;
3030	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_MASK      0xfUL
3031	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_SFT       0
3032	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_0       0x0UL
3033	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_1       0x1UL
3034	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_2       0x2UL
3035	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_2
3036	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_MASK  0xf0UL
3037	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_SFT   4
3038	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_4K   (0x0UL << 4)
3039	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_8K   (0x1UL << 4)
3040	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_64K  (0x2UL << 4)
3041	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_2M   (0x3UL << 4)
3042	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_8M   (0x4UL << 4)
3043	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_1G   (0x5UL << 4)
3044	#define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_1G
3045	u8	mrav_pg_size_mrav_lvl;
3046	#define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_MASK      0xfUL
3047	#define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_SFT       0
3048	#define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_0       0x0UL
3049	#define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_1       0x1UL
3050	#define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_2       0x2UL
3051	#define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_2
3052	#define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_MASK  0xf0UL
3053	#define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_SFT   4
3054	#define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_4K   (0x0UL << 4)
3055	#define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_8K   (0x1UL << 4)
3056	#define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_64K  (0x2UL << 4)
3057	#define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_2M   (0x3UL << 4)
3058	#define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_8M   (0x4UL << 4)
3059	#define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_1G   (0x5UL << 4)
3060	#define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_1G
3061	u8	tim_pg_size_tim_lvl;
3062	#define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_MASK      0xfUL
3063	#define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_SFT       0
3064	#define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_0       0x0UL
3065	#define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_1       0x1UL
3066	#define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_2       0x2UL
3067	#define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_2
3068	#define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_MASK  0xf0UL
3069	#define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_SFT   4
3070	#define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_4K   (0x0UL << 4)
3071	#define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_8K   (0x1UL << 4)
3072	#define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_64K  (0x2UL << 4)
3073	#define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_2M   (0x3UL << 4)
3074	#define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_8M   (0x4UL << 4)
3075	#define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_1G   (0x5UL << 4)
3076	#define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_1G
3077	__le64	qpc_page_dir;
3078	__le64	srq_page_dir;
3079	__le64	cq_page_dir;
3080	__le64	vnic_page_dir;
3081	__le64	stat_page_dir;
3082	__le64	tqm_sp_page_dir;
3083	__le64	tqm_ring0_page_dir;
3084	__le64	tqm_ring1_page_dir;
3085	__le64	tqm_ring2_page_dir;
3086	__le64	tqm_ring3_page_dir;
3087	__le64	tqm_ring4_page_dir;
3088	__le64	tqm_ring5_page_dir;
3089	__le64	tqm_ring6_page_dir;
3090	__le64	tqm_ring7_page_dir;
3091	__le64	mrav_page_dir;
3092	__le64	tim_page_dir;
3093	__le32	qp_num_entries;
3094	__le32	srq_num_entries;
3095	__le32	cq_num_entries;
3096	__le32	stat_num_entries;
3097	__le32	tqm_sp_num_entries;
3098	__le32	tqm_ring0_num_entries;
3099	__le32	tqm_ring1_num_entries;
3100	__le32	tqm_ring2_num_entries;
3101	__le32	tqm_ring3_num_entries;
3102	__le32	tqm_ring4_num_entries;
3103	__le32	tqm_ring5_num_entries;
3104	__le32	tqm_ring6_num_entries;
3105	__le32	tqm_ring7_num_entries;
3106	__le32	mrav_num_entries;
3107	__le32	tim_num_entries;
3108	__le16	qp_num_qp1_entries;
3109	__le16	qp_num_l2_entries;
3110	__le16	qp_entry_size;
3111	__le16	srq_num_l2_entries;
3112	__le16	srq_entry_size;
3113	__le16	cq_num_l2_entries;
3114	__le16	cq_entry_size;
3115	__le16	vnic_num_vnic_entries;
3116	__le16	vnic_num_ring_table_entries;
3117	__le16	vnic_entry_size;
3118	__le16	stat_entry_size;
3119	__le16	tqm_entry_size;
3120	__le16	mrav_entry_size;
3121	__le16	tim_entry_size;
3122	u8	tqm_ring8_pg_size_tqm_ring_lvl;
3123	#define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_MASK      0xfUL
3124	#define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_SFT       0
3125	#define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_LVL_0       0x0UL
3126	#define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_LVL_1       0x1UL
3127	#define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_LVL_2       0x2UL
3128	#define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_LVL_LVL_2
3129	#define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_MASK  0xf0UL
3130	#define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_SFT   4
3131	#define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_4K   (0x0UL << 4)
3132	#define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_8K   (0x1UL << 4)
3133	#define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_64K  (0x2UL << 4)
3134	#define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_2M   (0x3UL << 4)
3135	#define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_8M   (0x4UL << 4)
3136	#define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_1G   (0x5UL << 4)
3137	#define FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_RING8_TQM_RING_PG_SIZE_PG_1G
3138	u8	ring8_unused[3];
3139	__le32	tqm_ring8_num_entries;
3140	__le64	tqm_ring8_page_dir;
3141	u8	tqm_ring9_pg_size_tqm_ring_lvl;
3142	#define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_MASK      0xfUL
3143	#define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_SFT       0
3144	#define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_LVL_0       0x0UL
3145	#define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_LVL_1       0x1UL
3146	#define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_LVL_2       0x2UL
3147	#define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_LVL_LVL_2
3148	#define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_MASK  0xf0UL
3149	#define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_SFT   4
3150	#define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_4K   (0x0UL << 4)
3151	#define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_8K   (0x1UL << 4)
3152	#define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_64K  (0x2UL << 4)
3153	#define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_2M   (0x3UL << 4)
3154	#define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_8M   (0x4UL << 4)
3155	#define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_1G   (0x5UL << 4)
3156	#define FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_RING9_TQM_RING_PG_SIZE_PG_1G
3157	u8	ring9_unused[3];
3158	__le32	tqm_ring9_num_entries;
3159	__le64	tqm_ring9_page_dir;
3160	u8	tqm_ring10_pg_size_tqm_ring_lvl;
3161	#define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_MASK      0xfUL
3162	#define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_SFT       0
3163	#define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_LVL_0       0x0UL
3164	#define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_LVL_1       0x1UL
3165	#define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_LVL_2       0x2UL
3166	#define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_LVL_LVL_2
3167	#define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_MASK  0xf0UL
3168	#define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_SFT   4
3169	#define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_4K   (0x0UL << 4)
3170	#define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_8K   (0x1UL << 4)
3171	#define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_64K  (0x2UL << 4)
3172	#define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_2M   (0x3UL << 4)
3173	#define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_8M   (0x4UL << 4)
3174	#define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_1G   (0x5UL << 4)
3175	#define FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_RING10_TQM_RING_PG_SIZE_PG_1G
3176	u8	ring10_unused[3];
3177	__le32	tqm_ring10_num_entries;
3178	__le64	tqm_ring10_page_dir;
3179	__le32	tkc_num_entries;
3180	__le32	rkc_num_entries;
3181	__le64	tkc_page_dir;
3182	__le64	rkc_page_dir;
3183	__le16	tkc_entry_size;
3184	__le16	rkc_entry_size;
3185	u8	tkc_pg_size_tkc_lvl;
3186	#define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_MASK      0xfUL
3187	#define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_SFT       0
3188	#define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_LVL_0       0x0UL
3189	#define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_LVL_1       0x1UL
3190	#define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_LVL_2       0x2UL
3191	#define FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_TKC_LVL_LVL_2
3192	#define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_MASK  0xf0UL
3193	#define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_SFT   4
3194	#define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_4K   (0x0UL << 4)
3195	#define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_8K   (0x1UL << 4)
3196	#define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_64K  (0x2UL << 4)
3197	#define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_2M   (0x3UL << 4)
3198	#define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_8M   (0x4UL << 4)
3199	#define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_1G   (0x5UL << 4)
3200	#define FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_TKC_PG_SIZE_PG_1G
3201	u8	rkc_pg_size_rkc_lvl;
3202	#define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_MASK      0xfUL
3203	#define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_SFT       0
3204	#define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_LVL_0       0x0UL
3205	#define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_LVL_1       0x1UL
3206	#define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_LVL_2       0x2UL
3207	#define FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_LAST       FUNC_BACKING_STORE_CFG_REQ_RKC_LVL_LVL_2
3208	#define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_MASK  0xf0UL
3209	#define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_SFT   4
3210	#define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_4K   (0x0UL << 4)
3211	#define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_8K   (0x1UL << 4)
3212	#define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_64K  (0x2UL << 4)
3213	#define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_2M   (0x3UL << 4)
3214	#define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_8M   (0x4UL << 4)
3215	#define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_1G   (0x5UL << 4)
3216	#define FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_LAST   FUNC_BACKING_STORE_CFG_REQ_RKC_PG_SIZE_PG_1G
3217	__le16	qp_num_fast_qpmd_entries;
3218};
3219
3220/* hwrm_func_backing_store_cfg_output (size:128b/16B) */
3221struct hwrm_func_backing_store_cfg_output {
3222	__le16	error_code;
3223	__le16	req_type;
3224	__le16	seq_id;
3225	__le16	resp_len;
3226	u8	unused_0[7];
3227	u8	valid;
3228};
3229
3230/* hwrm_error_recovery_qcfg_input (size:192b/24B) */
3231struct hwrm_error_recovery_qcfg_input {
3232	__le16	req_type;
3233	__le16	cmpl_ring;
3234	__le16	seq_id;
3235	__le16	target_id;
3236	__le64	resp_addr;
3237	u8	unused_0[8];
3238};
3239
3240/* hwrm_error_recovery_qcfg_output (size:1664b/208B) */
3241struct hwrm_error_recovery_qcfg_output {
3242	__le16	error_code;
3243	__le16	req_type;
3244	__le16	seq_id;
3245	__le16	resp_len;
3246	__le32	flags;
3247	#define ERROR_RECOVERY_QCFG_RESP_FLAGS_HOST       0x1UL
3248	#define ERROR_RECOVERY_QCFG_RESP_FLAGS_CO_CPU     0x2UL
3249	__le32	driver_polling_freq;
3250	__le32	master_func_wait_period;
3251	__le32	normal_func_wait_period;
3252	__le32	master_func_wait_period_after_reset;
3253	__le32	max_bailout_time_after_reset;
3254	__le32	fw_health_status_reg;
3255	#define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_MASK    0x3UL
3256	#define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_SFT     0
3257	#define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_PCIE_CFG  0x0UL
3258	#define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_GRC       0x1UL
3259	#define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR0      0x2UL
3260	#define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR1      0x3UL
3261	#define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_LAST     ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR1
3262	#define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_MASK          0xfffffffcUL
3263	#define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SFT           2
3264	__le32	fw_heartbeat_reg;
3265	#define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_MASK    0x3UL
3266	#define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_SFT     0
3267	#define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_PCIE_CFG  0x0UL
3268	#define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_GRC       0x1UL
3269	#define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR0      0x2UL
3270	#define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR1      0x3UL
3271	#define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_LAST     ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR1
3272	#define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_MASK          0xfffffffcUL
3273	#define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SFT           2
3274	__le32	fw_reset_cnt_reg;
3275	#define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_MASK    0x3UL
3276	#define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_SFT     0
3277	#define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_PCIE_CFG  0x0UL
3278	#define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_GRC       0x1UL
3279	#define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR0      0x2UL
3280	#define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR1      0x3UL
3281	#define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_LAST     ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR1
3282	#define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_MASK          0xfffffffcUL
3283	#define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SFT           2
3284	__le32	reset_inprogress_reg;
3285	#define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_MASK    0x3UL
3286	#define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_SFT     0
3287	#define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_PCIE_CFG  0x0UL
3288	#define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_GRC       0x1UL
3289	#define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR0      0x2UL
3290	#define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR1      0x3UL
3291	#define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_LAST     ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR1
3292	#define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_MASK          0xfffffffcUL
3293	#define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SFT           2
3294	__le32	reset_inprogress_reg_mask;
3295	u8	unused_0[3];
3296	u8	reg_array_cnt;
3297	__le32	reset_reg[16];
3298	#define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_MASK    0x3UL
3299	#define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_SFT     0
3300	#define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_PCIE_CFG  0x0UL
3301	#define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_GRC       0x1UL
3302	#define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR0      0x2UL
3303	#define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR1      0x3UL
3304	#define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_LAST     ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR1
3305	#define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_MASK          0xfffffffcUL
3306	#define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SFT           2
3307	__le32	reset_reg_val[16];
3308	u8	delay_after_reset[16];
3309	__le32	err_recovery_cnt_reg;
3310	#define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_MASK    0x3UL
3311	#define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_SFT     0
3312	#define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_PCIE_CFG  0x0UL
3313	#define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_GRC       0x1UL
3314	#define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_BAR0      0x2UL
3315	#define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_BAR1      0x3UL
3316	#define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_LAST     ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SPACE_BAR1
3317	#define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_MASK          0xfffffffcUL
3318	#define ERROR_RECOVERY_QCFG_RESP_ERR_RECOVERY_CNT_REG_ADDR_SFT           2
3319	u8	unused_1[3];
3320	u8	valid;
3321};
3322
3323/* hwrm_func_echo_response_input (size:192b/24B) */
3324struct hwrm_func_echo_response_input {
3325	__le16	req_type;
3326	__le16	cmpl_ring;
3327	__le16	seq_id;
3328	__le16	target_id;
3329	__le64	resp_addr;
3330	__le32	event_data1;
3331	__le32	event_data2;
3332};
3333
3334/* hwrm_func_echo_response_output (size:128b/16B) */
3335struct hwrm_func_echo_response_output {
3336	__le16	error_code;
3337	__le16	req_type;
3338	__le16	seq_id;
3339	__le16	resp_len;
3340	u8	unused_0[7];
3341	u8	valid;
3342};
3343
3344/* hwrm_func_ptp_pin_qcfg_input (size:192b/24B) */
3345struct hwrm_func_ptp_pin_qcfg_input {
3346	__le16	req_type;
3347	__le16	cmpl_ring;
3348	__le16	seq_id;
3349	__le16	target_id;
3350	__le64	resp_addr;
3351	u8	unused_0[8];
3352};
3353
3354/* hwrm_func_ptp_pin_qcfg_output (size:128b/16B) */
3355struct hwrm_func_ptp_pin_qcfg_output {
3356	__le16	error_code;
3357	__le16	req_type;
3358	__le16	seq_id;
3359	__le16	resp_len;
3360	u8	num_pins;
3361	u8	state;
3362	#define FUNC_PTP_PIN_QCFG_RESP_STATE_PIN0_ENABLED     0x1UL
3363	#define FUNC_PTP_PIN_QCFG_RESP_STATE_PIN1_ENABLED     0x2UL
3364	#define FUNC_PTP_PIN_QCFG_RESP_STATE_PIN2_ENABLED     0x4UL
3365	#define FUNC_PTP_PIN_QCFG_RESP_STATE_PIN3_ENABLED     0x8UL
3366	u8	pin0_usage;
3367	#define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_NONE     0x0UL
3368	#define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_PPS_IN   0x1UL
3369	#define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_PPS_OUT  0x2UL
3370	#define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_SYNC_IN  0x3UL
3371	#define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_SYNC_OUT 0x4UL
3372	#define FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_LAST    FUNC_PTP_PIN_QCFG_RESP_PIN0_USAGE_SYNC_OUT
3373	u8	pin1_usage;
3374	#define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_NONE     0x0UL
3375	#define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_PPS_IN   0x1UL
3376	#define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_PPS_OUT  0x2UL
3377	#define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_SYNC_IN  0x3UL
3378	#define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_SYNC_OUT 0x4UL
3379	#define FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_LAST    FUNC_PTP_PIN_QCFG_RESP_PIN1_USAGE_SYNC_OUT
3380	u8	pin2_usage;
3381	#define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_NONE                      0x0UL
3382	#define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_PPS_IN                    0x1UL
3383	#define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_PPS_OUT                   0x2UL
3384	#define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_SYNC_IN                   0x3UL
3385	#define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_SYNC_OUT                  0x4UL
3386	#define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_SYNCE_PRIMARY_CLOCK_OUT   0x5UL
3387	#define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_SYNCE_SECONDARY_CLOCK_OUT 0x6UL
3388	#define FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_LAST                     FUNC_PTP_PIN_QCFG_RESP_PIN2_USAGE_SYNCE_SECONDARY_CLOCK_OUT
3389	u8	pin3_usage;
3390	#define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_NONE                      0x0UL
3391	#define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_PPS_IN                    0x1UL
3392	#define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_PPS_OUT                   0x2UL
3393	#define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_SYNC_IN                   0x3UL
3394	#define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_SYNC_OUT                  0x4UL
3395	#define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_SYNCE_PRIMARY_CLOCK_OUT   0x5UL
3396	#define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_SYNCE_SECONDARY_CLOCK_OUT 0x6UL
3397	#define FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_LAST                     FUNC_PTP_PIN_QCFG_RESP_PIN3_USAGE_SYNCE_SECONDARY_CLOCK_OUT
3398	u8	unused_0;
3399	u8	valid;
3400};
3401
3402/* hwrm_func_ptp_pin_cfg_input (size:256b/32B) */
3403struct hwrm_func_ptp_pin_cfg_input {
3404	__le16	req_type;
3405	__le16	cmpl_ring;
3406	__le16	seq_id;
3407	__le16	target_id;
3408	__le64	resp_addr;
3409	__le32	enables;
3410	#define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN0_STATE     0x1UL
3411	#define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN0_USAGE     0x2UL
3412	#define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN1_STATE     0x4UL
3413	#define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN1_USAGE     0x8UL
3414	#define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN2_STATE     0x10UL
3415	#define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN2_USAGE     0x20UL
3416	#define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN3_STATE     0x40UL
3417	#define FUNC_PTP_PIN_CFG_REQ_ENABLES_PIN3_USAGE     0x80UL
3418	u8	pin0_state;
3419	#define FUNC_PTP_PIN_CFG_REQ_PIN0_STATE_DISABLED 0x0UL
3420	#define FUNC_PTP_PIN_CFG_REQ_PIN0_STATE_ENABLED  0x1UL
3421	#define FUNC_PTP_PIN_CFG_REQ_PIN0_STATE_LAST    FUNC_PTP_PIN_CFG_REQ_PIN0_STATE_ENABLED
3422	u8	pin0_usage;
3423	#define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_NONE     0x0UL
3424	#define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_PPS_IN   0x1UL
3425	#define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_PPS_OUT  0x2UL
3426	#define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_SYNC_IN  0x3UL
3427	#define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_SYNC_OUT 0x4UL
3428	#define FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_LAST    FUNC_PTP_PIN_CFG_REQ_PIN0_USAGE_SYNC_OUT
3429	u8	pin1_state;
3430	#define FUNC_PTP_PIN_CFG_REQ_PIN1_STATE_DISABLED 0x0UL
3431	#define FUNC_PTP_PIN_CFG_REQ_PIN1_STATE_ENABLED  0x1UL
3432	#define FUNC_PTP_PIN_CFG_REQ_PIN1_STATE_LAST    FUNC_PTP_PIN_CFG_REQ_PIN1_STATE_ENABLED
3433	u8	pin1_usage;
3434	#define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_NONE     0x0UL
3435	#define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_PPS_IN   0x1UL
3436	#define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_PPS_OUT  0x2UL
3437	#define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_SYNC_IN  0x3UL
3438	#define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_SYNC_OUT 0x4UL
3439	#define FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_LAST    FUNC_PTP_PIN_CFG_REQ_PIN1_USAGE_SYNC_OUT
3440	u8	pin2_state;
3441	#define FUNC_PTP_PIN_CFG_REQ_PIN2_STATE_DISABLED 0x0UL
3442	#define FUNC_PTP_PIN_CFG_REQ_PIN2_STATE_ENABLED  0x1UL
3443	#define FUNC_PTP_PIN_CFG_REQ_PIN2_STATE_LAST    FUNC_PTP_PIN_CFG_REQ_PIN2_STATE_ENABLED
3444	u8	pin2_usage;
3445	#define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_NONE                      0x0UL
3446	#define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_PPS_IN                    0x1UL
3447	#define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_PPS_OUT                   0x2UL
3448	#define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_SYNC_IN                   0x3UL
3449	#define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_SYNC_OUT                  0x4UL
3450	#define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_SYNCE_PRIMARY_CLOCK_OUT   0x5UL
3451	#define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_SYNCE_SECONDARY_CLOCK_OUT 0x6UL
3452	#define FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_LAST                     FUNC_PTP_PIN_CFG_REQ_PIN2_USAGE_SYNCE_SECONDARY_CLOCK_OUT
3453	u8	pin3_state;
3454	#define FUNC_PTP_PIN_CFG_REQ_PIN3_STATE_DISABLED 0x0UL
3455	#define FUNC_PTP_PIN_CFG_REQ_PIN3_STATE_ENABLED  0x1UL
3456	#define FUNC_PTP_PIN_CFG_REQ_PIN3_STATE_LAST    FUNC_PTP_PIN_CFG_REQ_PIN3_STATE_ENABLED
3457	u8	pin3_usage;
3458	#define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_NONE                      0x0UL
3459	#define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_PPS_IN                    0x1UL
3460	#define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_PPS_OUT                   0x2UL
3461	#define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_SYNC_IN                   0x3UL
3462	#define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_SYNC_OUT                  0x4UL
3463	#define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_SYNCE_PRIMARY_CLOCK_OUT   0x5UL
3464	#define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_SYNCE_SECONDARY_CLOCK_OUT 0x6UL
3465	#define FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_LAST                     FUNC_PTP_PIN_CFG_REQ_PIN3_USAGE_SYNCE_SECONDARY_CLOCK_OUT
3466	u8	unused_0[4];
3467};
3468
3469/* hwrm_func_ptp_pin_cfg_output (size:128b/16B) */
3470struct hwrm_func_ptp_pin_cfg_output {
3471	__le16	error_code;
3472	__le16	req_type;
3473	__le16	seq_id;
3474	__le16	resp_len;
3475	u8	unused_0[7];
3476	u8	valid;
3477};
3478
3479/* hwrm_func_ptp_cfg_input (size:384b/48B) */
3480struct hwrm_func_ptp_cfg_input {
3481	__le16	req_type;
3482	__le16	cmpl_ring;
3483	__le16	seq_id;
3484	__le16	target_id;
3485	__le64	resp_addr;
3486	__le16	enables;
3487	#define FUNC_PTP_CFG_REQ_ENABLES_PTP_PPS_EVENT               0x1UL
3488	#define FUNC_PTP_CFG_REQ_ENABLES_PTP_FREQ_ADJ_DLL_SOURCE     0x2UL
3489	#define FUNC_PTP_CFG_REQ_ENABLES_PTP_FREQ_ADJ_DLL_PHASE      0x4UL
3490	#define FUNC_PTP_CFG_REQ_ENABLES_PTP_FREQ_ADJ_EXT_PERIOD     0x8UL
3491	#define FUNC_PTP_CFG_REQ_ENABLES_PTP_FREQ_ADJ_EXT_UP         0x10UL
3492	#define FUNC_PTP_CFG_REQ_ENABLES_PTP_FREQ_ADJ_EXT_PHASE      0x20UL
3493	#define FUNC_PTP_CFG_REQ_ENABLES_PTP_SET_TIME                0x40UL
3494	u8	ptp_pps_event;
3495	#define FUNC_PTP_CFG_REQ_PTP_PPS_EVENT_INTERNAL     0x1UL
3496	#define FUNC_PTP_CFG_REQ_PTP_PPS_EVENT_EXTERNAL     0x2UL
3497	u8	ptp_freq_adj_dll_source;
3498	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_NONE    0x0UL
3499	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_TSIO_0  0x1UL
3500	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_TSIO_1  0x2UL
3501	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_TSIO_2  0x3UL
3502	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_TSIO_3  0x4UL
3503	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_PORT_0  0x5UL
3504	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_PORT_1  0x6UL
3505	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_PORT_2  0x7UL
3506	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_PORT_3  0x8UL
3507	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_INVALID 0xffUL
3508	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_LAST   FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_SOURCE_INVALID
3509	u8	ptp_freq_adj_dll_phase;
3510	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_NONE 0x0UL
3511	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_4K   0x1UL
3512	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_8K   0x2UL
3513	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_10M  0x3UL
3514	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_25M  0x4UL
3515	#define FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_LAST FUNC_PTP_CFG_REQ_PTP_FREQ_ADJ_DLL_PHASE_25M
3516	u8	unused_0[3];
3517	__le32	ptp_freq_adj_ext_period;
3518	__le32	ptp_freq_adj_ext_up;
3519	__le32	ptp_freq_adj_ext_phase_lower;
3520	__le32	ptp_freq_adj_ext_phase_upper;
3521	__le64	ptp_set_time;
3522};
3523
3524/* hwrm_func_ptp_cfg_output (size:128b/16B) */
3525struct hwrm_func_ptp_cfg_output {
3526	__le16	error_code;
3527	__le16	req_type;
3528	__le16	seq_id;
3529	__le16	resp_len;
3530	u8	unused_0[7];
3531	u8	valid;
3532};
3533
3534/* hwrm_func_ptp_ts_query_input (size:192b/24B) */
3535struct hwrm_func_ptp_ts_query_input {
3536	__le16	req_type;
3537	__le16	cmpl_ring;
3538	__le16	seq_id;
3539	__le16	target_id;
3540	__le64	resp_addr;
3541	__le32	flags;
3542	#define FUNC_PTP_TS_QUERY_REQ_FLAGS_PPS_TIME     0x1UL
3543	#define FUNC_PTP_TS_QUERY_REQ_FLAGS_PTM_TIME     0x2UL
3544	u8	unused_0[4];
3545};
3546
3547/* hwrm_func_ptp_ts_query_output (size:320b/40B) */
3548struct hwrm_func_ptp_ts_query_output {
3549	__le16	error_code;
3550	__le16	req_type;
3551	__le16	seq_id;
3552	__le16	resp_len;
3553	__le64	pps_event_ts;
3554	__le64	ptm_local_ts;
3555	__le64	ptm_system_ts;
3556	__le32	ptm_link_delay;
3557	u8	unused_0[3];
3558	u8	valid;
3559};
3560
3561/* hwrm_func_ptp_ext_cfg_input (size:256b/32B) */
3562struct hwrm_func_ptp_ext_cfg_input {
3563	__le16	req_type;
3564	__le16	cmpl_ring;
3565	__le16	seq_id;
3566	__le16	target_id;
3567	__le64	resp_addr;
3568	__le16	enables;
3569	#define FUNC_PTP_EXT_CFG_REQ_ENABLES_PHC_MASTER_FID     0x1UL
3570	#define FUNC_PTP_EXT_CFG_REQ_ENABLES_PHC_SEC_FID        0x2UL
3571	#define FUNC_PTP_EXT_CFG_REQ_ENABLES_PHC_SEC_MODE       0x4UL
3572	#define FUNC_PTP_EXT_CFG_REQ_ENABLES_FAILOVER_TIMER     0x8UL
3573	__le16	phc_master_fid;
3574	__le16	phc_sec_fid;
3575	u8	phc_sec_mode;
3576	#define FUNC_PTP_EXT_CFG_REQ_PHC_SEC_MODE_SWITCH  0x0UL
3577	#define FUNC_PTP_EXT_CFG_REQ_PHC_SEC_MODE_ALL     0x1UL
3578	#define FUNC_PTP_EXT_CFG_REQ_PHC_SEC_MODE_PF_ONLY 0x2UL
3579	#define FUNC_PTP_EXT_CFG_REQ_PHC_SEC_MODE_LAST   FUNC_PTP_EXT_CFG_REQ_PHC_SEC_MODE_PF_ONLY
3580	u8	unused_0;
3581	__le32	failover_timer;
3582	u8	unused_1[4];
3583};
3584
3585/* hwrm_func_ptp_ext_cfg_output (size:128b/16B) */
3586struct hwrm_func_ptp_ext_cfg_output {
3587	__le16	error_code;
3588	__le16	req_type;
3589	__le16	seq_id;
3590	__le16	resp_len;
3591	u8	unused_0[7];
3592	u8	valid;
3593};
3594
3595/* hwrm_func_ptp_ext_qcfg_input (size:192b/24B) */
3596struct hwrm_func_ptp_ext_qcfg_input {
3597	__le16	req_type;
3598	__le16	cmpl_ring;
3599	__le16	seq_id;
3600	__le16	target_id;
3601	__le64	resp_addr;
3602	u8	unused_0[8];
3603};
3604
3605/* hwrm_func_ptp_ext_qcfg_output (size:256b/32B) */
3606struct hwrm_func_ptp_ext_qcfg_output {
3607	__le16	error_code;
3608	__le16	req_type;
3609	__le16	seq_id;
3610	__le16	resp_len;
3611	__le16	phc_master_fid;
3612	__le16	phc_sec_fid;
3613	__le16	phc_active_fid0;
3614	__le16	phc_active_fid1;
3615	__le32	last_failover_event;
3616	__le16	from_fid;
3617	__le16	to_fid;
3618	u8	unused_0[7];
3619	u8	valid;
3620};
3621
3622/* hwrm_func_backing_store_cfg_v2_input (size:448b/56B) */
3623struct hwrm_func_backing_store_cfg_v2_input {
3624	__le16	req_type;
3625	__le16	cmpl_ring;
3626	__le16	seq_id;
3627	__le16	target_id;
3628	__le64	resp_addr;
3629	__le16	type;
3630	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_QP            0x0UL
3631	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_SRQ           0x1UL
3632	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_CQ            0x2UL
3633	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_VNIC          0x3UL
3634	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_STAT          0x4UL
3635	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_SP_TQM_RING   0x5UL
3636	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_FP_TQM_RING   0x6UL
3637	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_MRAV          0xeUL
3638	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_TIM           0xfUL
3639	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_TKC           0x13UL
3640	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_RKC           0x14UL
3641	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_MP_TQM_RING   0x15UL
3642	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_SQ_DB_SHADOW  0x16UL
3643	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_RQ_DB_SHADOW  0x17UL
3644	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_SRQ_DB_SHADOW 0x18UL
3645	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_CQ_DB_SHADOW  0x19UL
3646	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_QUIC_TKC      0x1aUL
3647	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_QUIC_RKC      0x1bUL
3648	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_TBL_SCOPE     0x1cUL
3649	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_XID_PARTITION 0x1dUL
3650	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_INVALID       0xffffUL
3651	#define FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_LAST         FUNC_BACKING_STORE_CFG_V2_REQ_TYPE_INVALID
3652	__le16	instance;
3653	__le32	flags;
3654	#define FUNC_BACKING_STORE_CFG_V2_REQ_FLAGS_PREBOOT_MODE        0x1UL
3655	#define FUNC_BACKING_STORE_CFG_V2_REQ_FLAGS_BS_CFG_ALL_DONE     0x2UL
3656	#define FUNC_BACKING_STORE_CFG_V2_REQ_FLAGS_BS_EXTEND           0x4UL
3657	__le64	page_dir;
3658	__le32	num_entries;
3659	__le16	entry_size;
3660	u8	page_size_pbl_level;
3661	#define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_MASK  0xfUL
3662	#define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_SFT   0
3663	#define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_LVL_0   0x0UL
3664	#define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_LVL_1   0x1UL
3665	#define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_LVL_2   0x2UL
3666	#define FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_LAST   FUNC_BACKING_STORE_CFG_V2_REQ_PBL_LEVEL_LVL_2
3667	#define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_MASK  0xf0UL
3668	#define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_SFT   4
3669	#define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_4K   (0x0UL << 4)
3670	#define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_8K   (0x1UL << 4)
3671	#define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_64K  (0x2UL << 4)
3672	#define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_2M   (0x3UL << 4)
3673	#define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_8M   (0x4UL << 4)
3674	#define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_1G   (0x5UL << 4)
3675	#define FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_LAST   FUNC_BACKING_STORE_CFG_V2_REQ_PAGE_SIZE_PG_1G
3676	u8	subtype_valid_cnt;
3677	__le32	split_entry_0;
3678	__le32	split_entry_1;
3679	__le32	split_entry_2;
3680	__le32	split_entry_3;
3681};
3682
3683/* hwrm_func_backing_store_cfg_v2_output (size:128b/16B) */
3684struct hwrm_func_backing_store_cfg_v2_output {
3685	__le16	error_code;
3686	__le16	req_type;
3687	__le16	seq_id;
3688	__le16	resp_len;
3689	u8	rsvd0[7];
3690	u8	valid;
3691};
3692
3693/* hwrm_func_backing_store_qcfg_v2_input (size:192b/24B) */
3694struct hwrm_func_backing_store_qcfg_v2_input {
3695	__le16	req_type;
3696	__le16	cmpl_ring;
3697	__le16	seq_id;
3698	__le16	target_id;
3699	__le64	resp_addr;
3700	__le16	type;
3701	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_QP                  0x0UL
3702	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_SRQ                 0x1UL
3703	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_CQ                  0x2UL
3704	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_VNIC                0x3UL
3705	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_STAT                0x4UL
3706	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_SP_TQM_RING         0x5UL
3707	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_FP_TQM_RING         0x6UL
3708	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_MRAV                0xeUL
3709	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_TIM                 0xfUL
3710	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_TKC                 0x13UL
3711	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_RKC                 0x14UL
3712	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_MP_TQM_RING         0x15UL
3713	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_SQ_DB_SHADOW        0x16UL
3714	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_RQ_DB_SHADOW        0x17UL
3715	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_SRQ_DB_SHADOW       0x18UL
3716	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_CQ_DB_SHADOW        0x19UL
3717	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_QUIC_TKC            0x1aUL
3718	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_QUIC_RKC            0x1bUL
3719	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_TBL_SCOPE           0x1cUL
3720	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_XID_PARTITION_TABLE 0x1dUL
3721	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_INVALID             0xffffUL
3722	#define FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_LAST               FUNC_BACKING_STORE_QCFG_V2_REQ_TYPE_INVALID
3723	__le16	instance;
3724	u8	rsvd[4];
3725};
3726
3727/* hwrm_func_backing_store_qcfg_v2_output (size:448b/56B) */
3728struct hwrm_func_backing_store_qcfg_v2_output {
3729	__le16	error_code;
3730	__le16	req_type;
3731	__le16	seq_id;
3732	__le16	resp_len;
3733	__le16	type;
3734	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_QP            0x0UL
3735	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_SRQ           0x1UL
3736	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_CQ            0x2UL
3737	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_VNIC          0x3UL
3738	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_STAT          0x4UL
3739	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_SP_TQM_RING   0x5UL
3740	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_FP_TQM_RING   0x6UL
3741	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_MRAV          0xeUL
3742	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_TIM           0xfUL
3743	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_TKC           0x13UL
3744	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_RKC           0x14UL
3745	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_MP_TQM_RING   0x15UL
3746	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_QUIC_TKC      0x1aUL
3747	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_QUIC_RKC      0x1bUL
3748	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_TBL_SCOPE     0x1cUL
3749	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_XID_PARTITION 0x1dUL
3750	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_INVALID       0xffffUL
3751	#define FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_LAST         FUNC_BACKING_STORE_QCFG_V2_RESP_TYPE_INVALID
3752	__le16	instance;
3753	__le32	flags;
3754	__le64	page_dir;
3755	__le32	num_entries;
3756	u8	page_size_pbl_level;
3757	#define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_MASK  0xfUL
3758	#define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_SFT   0
3759	#define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_LVL_0   0x0UL
3760	#define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_LVL_1   0x1UL
3761	#define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_LVL_2   0x2UL
3762	#define FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_LAST   FUNC_BACKING_STORE_QCFG_V2_RESP_PBL_LEVEL_LVL_2
3763	#define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_MASK  0xf0UL
3764	#define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_SFT   4
3765	#define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_4K   (0x0UL << 4)
3766	#define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_8K   (0x1UL << 4)
3767	#define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_64K  (0x2UL << 4)
3768	#define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_2M   (0x3UL << 4)
3769	#define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_8M   (0x4UL << 4)
3770	#define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_1G   (0x5UL << 4)
3771	#define FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_LAST   FUNC_BACKING_STORE_QCFG_V2_RESP_PAGE_SIZE_PG_1G
3772	u8	subtype_valid_cnt;
3773	u8	rsvd[2];
3774	__le32	split_entry_0;
3775	__le32	split_entry_1;
3776	__le32	split_entry_2;
3777	__le32	split_entry_3;
3778	u8	rsvd2[7];
3779	u8	valid;
3780};
3781
3782/* qpc_split_entries (size:128b/16B) */
3783struct qpc_split_entries {
3784	__le32	qp_num_l2_entries;
3785	__le32	qp_num_qp1_entries;
3786	__le32	qp_num_fast_qpmd_entries;
3787	__le32	rsvd;
3788};
3789
3790/* srq_split_entries (size:128b/16B) */
3791struct srq_split_entries {
3792	__le32	srq_num_l2_entries;
3793	__le32	rsvd;
3794	__le32	rsvd2[2];
3795};
3796
3797/* cq_split_entries (size:128b/16B) */
3798struct cq_split_entries {
3799	__le32	cq_num_l2_entries;
3800	__le32	rsvd;
3801	__le32	rsvd2[2];
3802};
3803
3804/* vnic_split_entries (size:128b/16B) */
3805struct vnic_split_entries {
3806	__le32	vnic_num_vnic_entries;
3807	__le32	rsvd;
3808	__le32	rsvd2[2];
3809};
3810
3811/* mrav_split_entries (size:128b/16B) */
3812struct mrav_split_entries {
3813	__le32	mrav_num_av_entries;
3814	__le32	rsvd;
3815	__le32	rsvd2[2];
3816};
3817
3818/* ts_split_entries (size:128b/16B) */
3819struct ts_split_entries {
3820	__le32	region_num_entries;
3821	u8	tsid;
3822	u8	lkup_static_bkt_cnt_exp[2];
3823	u8	rsvd;
3824	__le32	rsvd2[2];
3825};
3826
3827/* hwrm_func_backing_store_qcaps_v2_input (size:192b/24B) */
3828struct hwrm_func_backing_store_qcaps_v2_input {
3829	__le16	req_type;
3830	__le16	cmpl_ring;
3831	__le16	seq_id;
3832	__le16	target_id;
3833	__le64	resp_addr;
3834	__le16	type;
3835	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_QP            0x0UL
3836	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_SRQ           0x1UL
3837	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_CQ            0x2UL
3838	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_VNIC          0x3UL
3839	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_STAT          0x4UL
3840	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_SP_TQM_RING   0x5UL
3841	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_FP_TQM_RING   0x6UL
3842	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_MRAV          0xeUL
3843	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_TIM           0xfUL
3844	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_KTLS_TKC      0x13UL
3845	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_KTLS_RKC      0x14UL
3846	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_MP_TQM_RING   0x15UL
3847	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_SQ_DB_SHADOW  0x16UL
3848	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_RQ_DB_SHADOW  0x17UL
3849	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_SRQ_DB_SHADOW 0x18UL
3850	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_CQ_DB_SHADOW  0x19UL
3851	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_QUIC_TKC      0x1aUL
3852	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_QUIC_RKC      0x1bUL
3853	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_TBL_SCOPE     0x1cUL
3854	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_XID_PARTITION 0x1dUL
3855	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_INVALID       0xffffUL
3856	#define FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_LAST         FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_INVALID
3857	u8	rsvd[6];
3858};
3859
3860/* hwrm_func_backing_store_qcaps_v2_output (size:448b/56B) */
3861struct hwrm_func_backing_store_qcaps_v2_output {
3862	__le16	error_code;
3863	__le16	req_type;
3864	__le16	seq_id;
3865	__le16	resp_len;
3866	__le16	type;
3867	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_QP            0x0UL
3868	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_SRQ           0x1UL
3869	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_CQ            0x2UL
3870	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_VNIC          0x3UL
3871	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_STAT          0x4UL
3872	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_SP_TQM_RING   0x5UL
3873	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_FP_TQM_RING   0x6UL
3874	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_MRAV          0xeUL
3875	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_TIM           0xfUL
3876	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_KTLS_TKC      0x13UL
3877	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_KTLS_RKC      0x14UL
3878	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_MP_TQM_RING   0x15UL
3879	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_SQ_DB_SHADOW  0x16UL
3880	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_RQ_DB_SHADOW  0x17UL
3881	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_SRQ_DB_SHADOW 0x18UL
3882	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_CQ_DB_SHADOW  0x19UL
3883	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_QUIC_TKC      0x1aUL
3884	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_QUIC_RKC      0x1bUL
3885	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_TBL_SCOPE     0x1cUL
3886	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_XID_PARTITION 0x1dUL
3887	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_INVALID       0xffffUL
3888	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_LAST         FUNC_BACKING_STORE_QCAPS_V2_RESP_TYPE_INVALID
3889	__le16	entry_size;
3890	__le32	flags;
3891	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_FLAGS_ENABLE_CTX_KIND_INIT            0x1UL
3892	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_FLAGS_TYPE_VALID                      0x2UL
3893	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_FLAGS_DRIVER_MANAGED_MEMORY           0x4UL
3894	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_FLAGS_ROCE_QP_PSEUDO_STATIC_ALLOC     0x8UL
3895	__le32	instance_bit_map;
3896	u8	ctx_init_value;
3897	u8	ctx_init_offset;
3898	u8	entry_multiple;
3899	u8	rsvd;
3900	__le32	max_num_entries;
3901	__le32	min_num_entries;
3902	__le16	next_valid_type;
3903	u8	subtype_valid_cnt;
3904	u8	exact_cnt_bit_map;
3905	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_EXACT_CNT_BIT_MAP_SPLIT_ENTRY_0_EXACT     0x1UL
3906	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_EXACT_CNT_BIT_MAP_SPLIT_ENTRY_1_EXACT     0x2UL
3907	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_EXACT_CNT_BIT_MAP_SPLIT_ENTRY_2_EXACT     0x4UL
3908	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_EXACT_CNT_BIT_MAP_SPLIT_ENTRY_3_EXACT     0x8UL
3909	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_EXACT_CNT_BIT_MAP_UNUSED_MASK             0xf0UL
3910	#define FUNC_BACKING_STORE_QCAPS_V2_RESP_EXACT_CNT_BIT_MAP_UNUSED_SFT              4
3911	__le32	split_entry_0;
3912	__le32	split_entry_1;
3913	__le32	split_entry_2;
3914	__le32	split_entry_3;
3915	u8	rsvd3[3];
3916	u8	valid;
3917};
3918
3919/* hwrm_func_dbr_pacing_qcfg_input (size:128b/16B) */
3920struct hwrm_func_dbr_pacing_qcfg_input {
3921	__le16	req_type;
3922	__le16	cmpl_ring;
3923	__le16	seq_id;
3924	__le16	target_id;
3925	__le64	resp_addr;
3926};
3927
3928/* hwrm_func_dbr_pacing_qcfg_output (size:512b/64B) */
3929struct hwrm_func_dbr_pacing_qcfg_output {
3930	__le16	error_code;
3931	__le16	req_type;
3932	__le16	seq_id;
3933	__le16	resp_len;
3934	u8	flags;
3935	#define FUNC_DBR_PACING_QCFG_RESP_FLAGS_DBR_NQ_EVENT_ENABLED     0x1UL
3936	u8	unused_0[7];
3937	__le32	dbr_stat_db_fifo_reg;
3938	#define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_MASK    0x3UL
3939	#define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_SFT     0
3940	#define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_PCIE_CFG  0x0UL
3941	#define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_GRC       0x1UL
3942	#define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_BAR0      0x2UL
3943	#define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_BAR1      0x3UL
3944	#define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_LAST     FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SPACE_BAR1
3945	#define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_MASK          0xfffffffcUL
3946	#define FUNC_DBR_PACING_QCFG_RESP_DBR_STAT_DB_FIFO_REG_ADDR_SFT           2
3947	__le32	dbr_stat_db_fifo_reg_watermark_mask;
3948	u8	dbr_stat_db_fifo_reg_watermark_shift;
3949	u8	unused_1[3];
3950	__le32	dbr_stat_db_fifo_reg_fifo_room_mask;
3951	u8	dbr_stat_db_fifo_reg_fifo_room_shift;
3952	u8	unused_2[3];
3953	__le32	dbr_throttling_aeq_arm_reg;
3954	#define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_MASK    0x3UL
3955	#define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_SFT     0
3956	#define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_PCIE_CFG  0x0UL
3957	#define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_GRC       0x1UL
3958	#define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_BAR0      0x2UL
3959	#define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_BAR1      0x3UL
3960	#define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_LAST     FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SPACE_BAR1
3961	#define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_MASK          0xfffffffcUL
3962	#define FUNC_DBR_PACING_QCFG_RESP_DBR_THROTTLING_AEQ_ARM_REG_ADDR_SFT           2
3963	u8	dbr_throttling_aeq_arm_reg_val;
3964	u8	unused_3[3];
3965	__le32	dbr_stat_db_max_fifo_depth;
3966	__le32	primary_nq_id;
3967	__le32	pacing_threshold;
3968	u8	unused_4[7];
3969	u8	valid;
3970};
3971
3972/* hwrm_func_drv_if_change_input (size:192b/24B) */
3973struct hwrm_func_drv_if_change_input {
3974	__le16	req_type;
3975	__le16	cmpl_ring;
3976	__le16	seq_id;
3977	__le16	target_id;
3978	__le64	resp_addr;
3979	__le32	flags;
3980	#define FUNC_DRV_IF_CHANGE_REQ_FLAGS_UP     0x1UL
3981	__le32	unused;
3982};
3983
3984/* hwrm_func_drv_if_change_output (size:128b/16B) */
3985struct hwrm_func_drv_if_change_output {
3986	__le16	error_code;
3987	__le16	req_type;
3988	__le16	seq_id;
3989	__le16	resp_len;
3990	__le32	flags;
3991	#define FUNC_DRV_IF_CHANGE_RESP_FLAGS_RESC_CHANGE           0x1UL
3992	#define FUNC_DRV_IF_CHANGE_RESP_FLAGS_HOT_FW_RESET_DONE     0x2UL
3993	u8	unused_0[3];
3994	u8	valid;
3995};
3996
3997/* hwrm_port_phy_cfg_input (size:512b/64B) */
3998struct hwrm_port_phy_cfg_input {
3999	__le16	req_type;
4000	__le16	cmpl_ring;
4001	__le16	seq_id;
4002	__le16	target_id;
4003	__le64	resp_addr;
4004	__le32	flags;
4005	#define PORT_PHY_CFG_REQ_FLAGS_RESET_PHY                  0x1UL
4006	#define PORT_PHY_CFG_REQ_FLAGS_DEPRECATED                 0x2UL
4007	#define PORT_PHY_CFG_REQ_FLAGS_FORCE                      0x4UL
4008	#define PORT_PHY_CFG_REQ_FLAGS_RESTART_AUTONEG            0x8UL
4009	#define PORT_PHY_CFG_REQ_FLAGS_EEE_ENABLE                 0x10UL
4010	#define PORT_PHY_CFG_REQ_FLAGS_EEE_DISABLE                0x20UL
4011	#define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_ENABLE          0x40UL
4012	#define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_DISABLE         0x80UL
4013	#define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_ENABLE         0x100UL
4014	#define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_DISABLE        0x200UL
4015	#define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_ENABLE        0x400UL
4016	#define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_DISABLE       0x800UL
4017	#define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_ENABLE        0x1000UL
4018	#define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_DISABLE       0x2000UL
4019	#define PORT_PHY_CFG_REQ_FLAGS_FORCE_LINK_DWN             0x4000UL
4020	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_1XN_ENABLE       0x8000UL
4021	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_1XN_DISABLE      0x10000UL
4022	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_IEEE_ENABLE      0x20000UL
4023	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS544_IEEE_DISABLE     0x40000UL
4024	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS272_1XN_ENABLE       0x80000UL
4025	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS272_1XN_DISABLE      0x100000UL
4026	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS272_IEEE_ENABLE      0x200000UL
4027	#define PORT_PHY_CFG_REQ_FLAGS_FEC_RS272_IEEE_DISABLE     0x400000UL
4028	__le32	enables;
4029	#define PORT_PHY_CFG_REQ_ENABLES_AUTO_MODE                     0x1UL
4030	#define PORT_PHY_CFG_REQ_ENABLES_AUTO_DUPLEX                   0x2UL
4031	#define PORT_PHY_CFG_REQ_ENABLES_AUTO_PAUSE                    0x4UL
4032	#define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEED               0x8UL
4033	#define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEED_MASK          0x10UL
4034	#define PORT_PHY_CFG_REQ_ENABLES_WIRESPEED                     0x20UL
4035	#define PORT_PHY_CFG_REQ_ENABLES_LPBK                          0x40UL
4036	#define PORT_PHY_CFG_REQ_ENABLES_PREEMPHASIS                   0x80UL
4037	#define PORT_PHY_CFG_REQ_ENABLES_FORCE_PAUSE                   0x100UL
4038	#define PORT_PHY_CFG_REQ_ENABLES_EEE_LINK_SPEED_MASK           0x200UL
4039	#define PORT_PHY_CFG_REQ_ENABLES_TX_LPI_TIMER                  0x400UL
4040	#define PORT_PHY_CFG_REQ_ENABLES_FORCE_PAM4_LINK_SPEED         0x800UL
4041	#define PORT_PHY_CFG_REQ_ENABLES_AUTO_PAM4_LINK_SPEED_MASK     0x1000UL
4042	#define PORT_PHY_CFG_REQ_ENABLES_FORCE_LINK_SPEEDS2            0x2000UL
4043	#define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEEDS2_MASK        0x4000UL
4044	__le16	port_id;
4045	__le16	force_link_speed;
4046	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_100MB 0x1UL
4047	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_1GB   0xaUL
4048	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_2GB   0x14UL
4049	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_2_5GB 0x19UL
4050	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10GB  0x64UL
4051	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_20GB  0xc8UL
4052	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_25GB  0xfaUL
4053	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_40GB  0x190UL
4054	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_50GB  0x1f4UL
4055	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_100GB 0x3e8UL
4056	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10MB  0xffffUL
4057	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_LAST PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10MB
4058	u8	auto_mode;
4059	#define PORT_PHY_CFG_REQ_AUTO_MODE_NONE         0x0UL
4060	#define PORT_PHY_CFG_REQ_AUTO_MODE_ALL_SPEEDS   0x1UL
4061	#define PORT_PHY_CFG_REQ_AUTO_MODE_ONE_SPEED    0x2UL
4062	#define PORT_PHY_CFG_REQ_AUTO_MODE_ONE_OR_BELOW 0x3UL
4063	#define PORT_PHY_CFG_REQ_AUTO_MODE_SPEED_MASK   0x4UL
4064	#define PORT_PHY_CFG_REQ_AUTO_MODE_LAST        PORT_PHY_CFG_REQ_AUTO_MODE_SPEED_MASK
4065	u8	auto_duplex;
4066	#define PORT_PHY_CFG_REQ_AUTO_DUPLEX_HALF 0x0UL
4067	#define PORT_PHY_CFG_REQ_AUTO_DUPLEX_FULL 0x1UL
4068	#define PORT_PHY_CFG_REQ_AUTO_DUPLEX_BOTH 0x2UL
4069	#define PORT_PHY_CFG_REQ_AUTO_DUPLEX_LAST PORT_PHY_CFG_REQ_AUTO_DUPLEX_BOTH
4070	u8	auto_pause;
4071	#define PORT_PHY_CFG_REQ_AUTO_PAUSE_TX                0x1UL
4072	#define PORT_PHY_CFG_REQ_AUTO_PAUSE_RX                0x2UL
4073	#define PORT_PHY_CFG_REQ_AUTO_PAUSE_AUTONEG_PAUSE     0x4UL
4074	u8	mgmt_flag;
4075	#define PORT_PHY_CFG_REQ_MGMT_FLAG_LINK_RELEASE     0x1UL
4076	#define PORT_PHY_CFG_REQ_MGMT_FLAG_MGMT_VALID       0x80UL
4077	__le16	auto_link_speed;
4078	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_100MB 0x1UL
4079	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_1GB   0xaUL
4080	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_2GB   0x14UL
4081	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_2_5GB 0x19UL
4082	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10GB  0x64UL
4083	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_20GB  0xc8UL
4084	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_25GB  0xfaUL
4085	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_40GB  0x190UL
4086	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_50GB  0x1f4UL
4087	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_100GB 0x3e8UL
4088	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10MB  0xffffUL
4089	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_LAST PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10MB
4090	__le16	auto_link_speed_mask;
4091	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100MBHD     0x1UL
4092	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100MB       0x2UL
4093	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_1GBHD       0x4UL
4094	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_1GB         0x8UL
4095	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_2GB         0x10UL
4096	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_2_5GB       0x20UL
4097	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10GB        0x40UL
4098	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_20GB        0x80UL
4099	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_25GB        0x100UL
4100	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_40GB        0x200UL
4101	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_50GB        0x400UL
4102	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100GB       0x800UL
4103	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10MBHD      0x1000UL
4104	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10MB        0x2000UL
4105	u8	wirespeed;
4106	#define PORT_PHY_CFG_REQ_WIRESPEED_OFF 0x0UL
4107	#define PORT_PHY_CFG_REQ_WIRESPEED_ON  0x1UL
4108	#define PORT_PHY_CFG_REQ_WIRESPEED_LAST PORT_PHY_CFG_REQ_WIRESPEED_ON
4109	u8	lpbk;
4110	#define PORT_PHY_CFG_REQ_LPBK_NONE     0x0UL
4111	#define PORT_PHY_CFG_REQ_LPBK_LOCAL    0x1UL
4112	#define PORT_PHY_CFG_REQ_LPBK_REMOTE   0x2UL
4113	#define PORT_PHY_CFG_REQ_LPBK_EXTERNAL 0x3UL
4114	#define PORT_PHY_CFG_REQ_LPBK_LAST    PORT_PHY_CFG_REQ_LPBK_EXTERNAL
4115	u8	force_pause;
4116	#define PORT_PHY_CFG_REQ_FORCE_PAUSE_TX     0x1UL
4117	#define PORT_PHY_CFG_REQ_FORCE_PAUSE_RX     0x2UL
4118	u8	unused_1;
4119	__le32	preemphasis;
4120	__le16	eee_link_speed_mask;
4121	#define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD1     0x1UL
4122	#define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_100MB     0x2UL
4123	#define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD2     0x4UL
4124	#define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_1GB       0x8UL
4125	#define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD3     0x10UL
4126	#define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD4     0x20UL
4127	#define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_10GB      0x40UL
4128	__le16	force_pam4_link_speed;
4129	#define PORT_PHY_CFG_REQ_FORCE_PAM4_LINK_SPEED_50GB  0x1f4UL
4130	#define PORT_PHY_CFG_REQ_FORCE_PAM4_LINK_SPEED_100GB 0x3e8UL
4131	#define PORT_PHY_CFG_REQ_FORCE_PAM4_LINK_SPEED_200GB 0x7d0UL
4132	#define PORT_PHY_CFG_REQ_FORCE_PAM4_LINK_SPEED_LAST PORT_PHY_CFG_REQ_FORCE_PAM4_LINK_SPEED_200GB
4133	__le32	tx_lpi_timer;
4134	#define PORT_PHY_CFG_REQ_TX_LPI_TIMER_MASK 0xffffffUL
4135	#define PORT_PHY_CFG_REQ_TX_LPI_TIMER_SFT 0
4136	__le16	auto_link_pam4_speed_mask;
4137	#define PORT_PHY_CFG_REQ_AUTO_LINK_PAM4_SPEED_MASK_50G      0x1UL
4138	#define PORT_PHY_CFG_REQ_AUTO_LINK_PAM4_SPEED_MASK_100G     0x2UL
4139	#define PORT_PHY_CFG_REQ_AUTO_LINK_PAM4_SPEED_MASK_200G     0x4UL
4140	__le16	force_link_speeds2;
4141	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_1GB            0xaUL
4142	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_10GB           0x64UL
4143	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_25GB           0xfaUL
4144	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_40GB           0x190UL
4145	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_50GB           0x1f4UL
4146	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_100GB          0x3e8UL
4147	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_50GB_PAM4_56   0x1f5UL
4148	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_100GB_PAM4_56  0x3e9UL
4149	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_200GB_PAM4_56  0x7d1UL
4150	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_400GB_PAM4_56  0xfa1UL
4151	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_100GB_PAM4_112 0x3eaUL
4152	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_200GB_PAM4_112 0x7d2UL
4153	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_400GB_PAM4_112 0xfa2UL
4154	#define PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_LAST          PORT_PHY_CFG_REQ_FORCE_LINK_SPEEDS2_400GB_PAM4_112
4155	__le16	auto_link_speeds2_mask;
4156	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_1GB                0x1UL
4157	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_10GB               0x2UL
4158	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_25GB               0x4UL
4159	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_40GB               0x8UL
4160	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_50GB               0x10UL
4161	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_100GB              0x20UL
4162	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_50GB_PAM4_56       0x40UL
4163	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_100GB_PAM4_56      0x80UL
4164	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_200GB_PAM4_56      0x100UL
4165	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_400GB_PAM4_56      0x200UL
4166	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_100GB_PAM4_112     0x400UL
4167	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_200GB_PAM4_112     0x800UL
4168	#define PORT_PHY_CFG_REQ_AUTO_LINK_SPEEDS2_MASK_400GB_PAM4_112     0x1000UL
4169	u8	unused_2[6];
4170};
4171
4172/* hwrm_port_phy_cfg_output (size:128b/16B) */
4173struct hwrm_port_phy_cfg_output {
4174	__le16	error_code;
4175	__le16	req_type;
4176	__le16	seq_id;
4177	__le16	resp_len;
4178	u8	unused_0[7];
4179	u8	valid;
4180};
4181
4182/* hwrm_port_phy_cfg_cmd_err (size:64b/8B) */
4183struct hwrm_port_phy_cfg_cmd_err {
4184	u8	code;
4185	#define PORT_PHY_CFG_CMD_ERR_CODE_UNKNOWN       0x0UL
4186	#define PORT_PHY_CFG_CMD_ERR_CODE_ILLEGAL_SPEED 0x1UL
4187	#define PORT_PHY_CFG_CMD_ERR_CODE_RETRY         0x2UL
4188	#define PORT_PHY_CFG_CMD_ERR_CODE_LAST         PORT_PHY_CFG_CMD_ERR_CODE_RETRY
4189	u8	unused_0[7];
4190};
4191
4192/* hwrm_port_phy_qcfg_input (size:192b/24B) */
4193struct hwrm_port_phy_qcfg_input {
4194	__le16	req_type;
4195	__le16	cmpl_ring;
4196	__le16	seq_id;
4197	__le16	target_id;
4198	__le64	resp_addr;
4199	__le16	port_id;
4200	u8	unused_0[6];
4201};
4202
4203/* hwrm_port_phy_qcfg_output (size:832b/104B) */
4204struct hwrm_port_phy_qcfg_output {
4205	__le16	error_code;
4206	__le16	req_type;
4207	__le16	seq_id;
4208	__le16	resp_len;
4209	u8	link;
4210	#define PORT_PHY_QCFG_RESP_LINK_NO_LINK 0x0UL
4211	#define PORT_PHY_QCFG_RESP_LINK_SIGNAL  0x1UL
4212	#define PORT_PHY_QCFG_RESP_LINK_LINK    0x2UL
4213	#define PORT_PHY_QCFG_RESP_LINK_LAST   PORT_PHY_QCFG_RESP_LINK_LINK
4214	u8	active_fec_signal_mode;
4215	#define PORT_PHY_QCFG_RESP_SIGNAL_MODE_MASK                0xfUL
4216	#define PORT_PHY_QCFG_RESP_SIGNAL_MODE_SFT                 0
4217	#define PORT_PHY_QCFG_RESP_SIGNAL_MODE_NRZ                   0x0UL
4218	#define PORT_PHY_QCFG_RESP_SIGNAL_MODE_PAM4                  0x1UL
4219	#define PORT_PHY_QCFG_RESP_SIGNAL_MODE_PAM4_112              0x2UL
4220	#define PORT_PHY_QCFG_RESP_SIGNAL_MODE_LAST                 PORT_PHY_QCFG_RESP_SIGNAL_MODE_PAM4_112
4221	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_MASK                 0xf0UL
4222	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_SFT                  4
4223	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_NONE_ACTIVE        (0x0UL << 4)
4224	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_CLAUSE74_ACTIVE    (0x1UL << 4)
4225	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_CLAUSE91_ACTIVE    (0x2UL << 4)
4226	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS544_1XN_ACTIVE   (0x3UL << 4)
4227	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS544_IEEE_ACTIVE  (0x4UL << 4)
4228	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS272_1XN_ACTIVE   (0x5UL << 4)
4229	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS272_IEEE_ACTIVE  (0x6UL << 4)
4230	#define PORT_PHY_QCFG_RESP_ACTIVE_FEC_LAST                  PORT_PHY_QCFG_RESP_ACTIVE_FEC_FEC_RS272_IEEE_ACTIVE
4231	__le16	link_speed;
4232	#define PORT_PHY_QCFG_RESP_LINK_SPEED_100MB 0x1UL
4233	#define PORT_PHY_QCFG_RESP_LINK_SPEED_1GB   0xaUL
4234	#define PORT_PHY_QCFG_RESP_LINK_SPEED_2GB   0x14UL
4235	#define PORT_PHY_QCFG_RESP_LINK_SPEED_2_5GB 0x19UL
4236	#define PORT_PHY_QCFG_RESP_LINK_SPEED_10GB  0x64UL
4237	#define PORT_PHY_QCFG_RESP_LINK_SPEED_20GB  0xc8UL
4238	#define PORT_PHY_QCFG_RESP_LINK_SPEED_25GB  0xfaUL
4239	#define PORT_PHY_QCFG_RESP_LINK_SPEED_40GB  0x190UL
4240	#define PORT_PHY_QCFG_RESP_LINK_SPEED_50GB  0x1f4UL
4241	#define PORT_PHY_QCFG_RESP_LINK_SPEED_100GB 0x3e8UL
4242	#define PORT_PHY_QCFG_RESP_LINK_SPEED_200GB 0x7d0UL
4243	#define PORT_PHY_QCFG_RESP_LINK_SPEED_400GB 0xfa0UL
4244	#define PORT_PHY_QCFG_RESP_LINK_SPEED_10MB  0xffffUL
4245	#define PORT_PHY_QCFG_RESP_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_LINK_SPEED_10MB
4246	u8	duplex_cfg;
4247	#define PORT_PHY_QCFG_RESP_DUPLEX_CFG_HALF 0x0UL
4248	#define PORT_PHY_QCFG_RESP_DUPLEX_CFG_FULL 0x1UL
4249	#define PORT_PHY_QCFG_RESP_DUPLEX_CFG_LAST PORT_PHY_QCFG_RESP_DUPLEX_CFG_FULL
4250	u8	pause;
4251	#define PORT_PHY_QCFG_RESP_PAUSE_TX     0x1UL
4252	#define PORT_PHY_QCFG_RESP_PAUSE_RX     0x2UL
4253	__le16	support_speeds;
4254	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100MBHD     0x1UL
4255	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100MB       0x2UL
4256	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_1GBHD       0x4UL
4257	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_1GB         0x8UL
4258	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_2GB         0x10UL
4259	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_2_5GB       0x20UL
4260	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10GB        0x40UL
4261	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_20GB        0x80UL
4262	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_25GB        0x100UL
4263	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_40GB        0x200UL
4264	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_50GB        0x400UL
4265	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100GB       0x800UL
4266	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10MBHD      0x1000UL
4267	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10MB        0x2000UL
4268	__le16	force_link_speed;
4269	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_100MB 0x1UL
4270	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_1GB   0xaUL
4271	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_2GB   0x14UL
4272	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_2_5GB 0x19UL
4273	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10GB  0x64UL
4274	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_20GB  0xc8UL
4275	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_25GB  0xfaUL
4276	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_40GB  0x190UL
4277	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_50GB  0x1f4UL
4278	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_100GB 0x3e8UL
4279	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10MB  0xffffUL
4280	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10MB
4281	u8	auto_mode;
4282	#define PORT_PHY_QCFG_RESP_AUTO_MODE_NONE         0x0UL
4283	#define PORT_PHY_QCFG_RESP_AUTO_MODE_ALL_SPEEDS   0x1UL
4284	#define PORT_PHY_QCFG_RESP_AUTO_MODE_ONE_SPEED    0x2UL
4285	#define PORT_PHY_QCFG_RESP_AUTO_MODE_ONE_OR_BELOW 0x3UL
4286	#define PORT_PHY_QCFG_RESP_AUTO_MODE_SPEED_MASK   0x4UL
4287	#define PORT_PHY_QCFG_RESP_AUTO_MODE_LAST        PORT_PHY_QCFG_RESP_AUTO_MODE_SPEED_MASK
4288	u8	auto_pause;
4289	#define PORT_PHY_QCFG_RESP_AUTO_PAUSE_TX                0x1UL
4290	#define PORT_PHY_QCFG_RESP_AUTO_PAUSE_RX                0x2UL
4291	#define PORT_PHY_QCFG_RESP_AUTO_PAUSE_AUTONEG_PAUSE     0x4UL
4292	__le16	auto_link_speed;
4293	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_100MB 0x1UL
4294	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_1GB   0xaUL
4295	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_2GB   0x14UL
4296	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_2_5GB 0x19UL
4297	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10GB  0x64UL
4298	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_20GB  0xc8UL
4299	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_25GB  0xfaUL
4300	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_40GB  0x190UL
4301	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_50GB  0x1f4UL
4302	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_100GB 0x3e8UL
4303	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10MB  0xffffUL
4304	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10MB
4305	__le16	auto_link_speed_mask;
4306	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100MBHD     0x1UL
4307	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100MB       0x2UL
4308	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_1GBHD       0x4UL
4309	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_1GB         0x8UL
4310	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_2GB         0x10UL
4311	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_2_5GB       0x20UL
4312	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10GB        0x40UL
4313	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_20GB        0x80UL
4314	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_25GB        0x100UL
4315	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_40GB        0x200UL
4316	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_50GB        0x400UL
4317	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100GB       0x800UL
4318	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10MBHD      0x1000UL
4319	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10MB        0x2000UL
4320	u8	wirespeed;
4321	#define PORT_PHY_QCFG_RESP_WIRESPEED_OFF 0x0UL
4322	#define PORT_PHY_QCFG_RESP_WIRESPEED_ON  0x1UL
4323	#define PORT_PHY_QCFG_RESP_WIRESPEED_LAST PORT_PHY_QCFG_RESP_WIRESPEED_ON
4324	u8	lpbk;
4325	#define PORT_PHY_QCFG_RESP_LPBK_NONE     0x0UL
4326	#define PORT_PHY_QCFG_RESP_LPBK_LOCAL    0x1UL
4327	#define PORT_PHY_QCFG_RESP_LPBK_REMOTE   0x2UL
4328	#define PORT_PHY_QCFG_RESP_LPBK_EXTERNAL 0x3UL
4329	#define PORT_PHY_QCFG_RESP_LPBK_LAST    PORT_PHY_QCFG_RESP_LPBK_EXTERNAL
4330	u8	force_pause;
4331	#define PORT_PHY_QCFG_RESP_FORCE_PAUSE_TX     0x1UL
4332	#define PORT_PHY_QCFG_RESP_FORCE_PAUSE_RX     0x2UL
4333	u8	module_status;
4334	#define PORT_PHY_QCFG_RESP_MODULE_STATUS_NONE          0x0UL
4335	#define PORT_PHY_QCFG_RESP_MODULE_STATUS_DISABLETX     0x1UL
4336	#define PORT_PHY_QCFG_RESP_MODULE_STATUS_WARNINGMSG    0x2UL
4337	#define PORT_PHY_QCFG_RESP_MODULE_STATUS_PWRDOWN       0x3UL
4338	#define PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTINSERTED   0x4UL
4339	#define PORT_PHY_QCFG_RESP_MODULE_STATUS_CURRENTFAULT  0x5UL
4340	#define PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTAPPLICABLE 0xffUL
4341	#define PORT_PHY_QCFG_RESP_MODULE_STATUS_LAST         PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTAPPLICABLE
4342	__le32	preemphasis;
4343	u8	phy_maj;
4344	u8	phy_min;
4345	u8	phy_bld;
4346	u8	phy_type;
4347	#define PORT_PHY_QCFG_RESP_PHY_TYPE_UNKNOWN          0x0UL
4348	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASECR           0x1UL
4349	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR4          0x2UL
4350	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASELR           0x3UL
4351	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASESR           0x4UL
4352	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR2          0x5UL
4353	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKX           0x6UL
4354	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR           0x7UL
4355	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASET            0x8UL
4356	#define PORT_PHY_QCFG_RESP_PHY_TYPE_BASETE           0x9UL
4357	#define PORT_PHY_QCFG_RESP_PHY_TYPE_SGMIIEXTPHY      0xaUL
4358	#define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_L  0xbUL
4359	#define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_S  0xcUL
4360	#define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_N  0xdUL
4361	#define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASESR       0xeUL
4362	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASECR4     0xfUL
4363	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR4     0x10UL
4364	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASELR4     0x11UL
4365	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASEER4     0x12UL
4366	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR10    0x13UL
4367	#define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASECR4      0x14UL
4368	#define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASESR4      0x15UL
4369	#define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASELR4      0x16UL
4370	#define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASEER4      0x17UL
4371	#define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_ACTIVE_CABLE 0x18UL
4372	#define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASET         0x19UL
4373	#define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASESX        0x1aUL
4374	#define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASECX        0x1bUL
4375	#define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASECR4     0x1cUL
4376	#define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASESR4     0x1dUL
4377	#define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASELR4     0x1eUL
4378	#define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASEER4     0x1fUL
4379	#define PORT_PHY_QCFG_RESP_PHY_TYPE_50G_BASECR       0x20UL
4380	#define PORT_PHY_QCFG_RESP_PHY_TYPE_50G_BASESR       0x21UL
4381	#define PORT_PHY_QCFG_RESP_PHY_TYPE_50G_BASELR       0x22UL
4382	#define PORT_PHY_QCFG_RESP_PHY_TYPE_50G_BASEER       0x23UL
4383	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASECR2     0x24UL
4384	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR2     0x25UL
4385	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASELR2     0x26UL
4386	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASEER2     0x27UL
4387	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASECR      0x28UL
4388	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR      0x29UL
4389	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASELR      0x2aUL
4390	#define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASEER      0x2bUL
4391	#define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASECR2     0x2cUL
4392	#define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASESR2     0x2dUL
4393	#define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASELR2     0x2eUL
4394	#define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASEER2     0x2fUL
4395	#define PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASECR8     0x30UL
4396	#define PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASESR8     0x31UL
4397	#define PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASELR8     0x32UL
4398	#define PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASEER8     0x33UL
4399	#define PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASECR4     0x34UL
4400	#define PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASESR4     0x35UL
4401	#define PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASELR4     0x36UL
4402	#define PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASEER4     0x37UL
4403	#define PORT_PHY_QCFG_RESP_PHY_TYPE_LAST            PORT_PHY_QCFG_RESP_PHY_TYPE_400G_BASEER4
4404	u8	media_type;
4405	#define PORT_PHY_QCFG_RESP_MEDIA_TYPE_UNKNOWN 0x0UL
4406	#define PORT_PHY_QCFG_RESP_MEDIA_TYPE_TP      0x1UL
4407	#define PORT_PHY_QCFG_RESP_MEDIA_TYPE_DAC     0x2UL
4408	#define PORT_PHY_QCFG_RESP_MEDIA_TYPE_FIBRE   0x3UL
4409	#define PORT_PHY_QCFG_RESP_MEDIA_TYPE_LAST   PORT_PHY_QCFG_RESP_MEDIA_TYPE_FIBRE
4410	u8	xcvr_pkg_type;
4411	#define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_INTERNAL 0x1UL
4412	#define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_EXTERNAL 0x2UL
4413	#define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_LAST         PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_EXTERNAL
4414	u8	eee_config_phy_addr;
4415	#define PORT_PHY_QCFG_RESP_PHY_ADDR_MASK              0x1fUL
4416	#define PORT_PHY_QCFG_RESP_PHY_ADDR_SFT               0
4417	#define PORT_PHY_QCFG_RESP_EEE_CONFIG_MASK            0xe0UL
4418	#define PORT_PHY_QCFG_RESP_EEE_CONFIG_SFT             5
4419	#define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_ENABLED      0x20UL
4420	#define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_ACTIVE       0x40UL
4421	#define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_TX_LPI       0x80UL
4422	u8	parallel_detect;
4423	#define PORT_PHY_QCFG_RESP_PARALLEL_DETECT     0x1UL
4424	__le16	link_partner_adv_speeds;
4425	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100MBHD     0x1UL
4426	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100MB       0x2UL
4427	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_1GBHD       0x4UL
4428	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_1GB         0x8UL
4429	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_2GB         0x10UL
4430	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_2_5GB       0x20UL
4431	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10GB        0x40UL
4432	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_20GB        0x80UL
4433	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_25GB        0x100UL
4434	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_40GB        0x200UL
4435	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_50GB        0x400UL
4436	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100GB       0x800UL
4437	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10MBHD      0x1000UL
4438	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10MB        0x2000UL
4439	u8	link_partner_adv_auto_mode;
4440	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_NONE         0x0UL
4441	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ALL_SPEEDS   0x1UL
4442	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ONE_SPEED    0x2UL
4443	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ONE_OR_BELOW 0x3UL
4444	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_SPEED_MASK   0x4UL
4445	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_LAST        PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_SPEED_MASK
4446	u8	link_partner_adv_pause;
4447	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_PAUSE_TX     0x1UL
4448	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_PAUSE_RX     0x2UL
4449	__le16	adv_eee_link_speed_mask;
4450	#define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD1     0x1UL
4451	#define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_100MB     0x2UL
4452	#define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD2     0x4UL
4453	#define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_1GB       0x8UL
4454	#define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD3     0x10UL
4455	#define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD4     0x20UL
4456	#define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_10GB      0x40UL
4457	__le16	link_partner_adv_eee_link_speed_mask;
4458	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD1     0x1UL
4459	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_100MB     0x2UL
4460	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD2     0x4UL
4461	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_1GB       0x8UL
4462	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD3     0x10UL
4463	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD4     0x20UL
4464	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_10GB      0x40UL
4465	__le32	xcvr_identifier_type_tx_lpi_timer;
4466	#define PORT_PHY_QCFG_RESP_TX_LPI_TIMER_MASK            0xffffffUL
4467	#define PORT_PHY_QCFG_RESP_TX_LPI_TIMER_SFT             0
4468	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_MASK    0xff000000UL
4469	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFT     24
4470	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_UNKNOWN   (0x0UL << 24)
4471	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFP       (0x3UL << 24)
4472	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP      (0xcUL << 24)
4473	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFPPLUS  (0xdUL << 24)
4474	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP28    (0x11UL << 24)
4475	#define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_LAST     PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP28
4476	__le16	fec_cfg;
4477	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_NONE_SUPPORTED           0x1UL
4478	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_SUPPORTED        0x2UL
4479	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_ENABLED          0x4UL
4480	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_SUPPORTED       0x8UL
4481	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_ENABLED         0x10UL
4482	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_SUPPORTED       0x20UL
4483	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_ENABLED         0x40UL
4484	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_1XN_SUPPORTED      0x80UL
4485	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_1XN_ENABLED        0x100UL
4486	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_IEEE_SUPPORTED     0x200UL
4487	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS544_IEEE_ENABLED       0x400UL
4488	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS272_1XN_SUPPORTED      0x800UL
4489	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS272_1XN_ENABLED        0x1000UL
4490	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS272_IEEE_SUPPORTED     0x2000UL
4491	#define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_RS272_IEEE_ENABLED       0x4000UL
4492	u8	duplex_state;
4493	#define PORT_PHY_QCFG_RESP_DUPLEX_STATE_HALF 0x0UL
4494	#define PORT_PHY_QCFG_RESP_DUPLEX_STATE_FULL 0x1UL
4495	#define PORT_PHY_QCFG_RESP_DUPLEX_STATE_LAST PORT_PHY_QCFG_RESP_DUPLEX_STATE_FULL
4496	u8	option_flags;
4497	#define PORT_PHY_QCFG_RESP_OPTION_FLAGS_MEDIA_AUTO_DETECT     0x1UL
4498	#define PORT_PHY_QCFG_RESP_OPTION_FLAGS_SIGNAL_MODE_KNOWN     0x2UL
4499	#define PORT_PHY_QCFG_RESP_OPTION_FLAGS_SPEEDS2_SUPPORTED     0x4UL
4500	char	phy_vendor_name[16];
4501	char	phy_vendor_partnumber[16];
4502	__le16	support_pam4_speeds;
4503	#define PORT_PHY_QCFG_RESP_SUPPORT_PAM4_SPEEDS_50G      0x1UL
4504	#define PORT_PHY_QCFG_RESP_SUPPORT_PAM4_SPEEDS_100G     0x2UL
4505	#define PORT_PHY_QCFG_RESP_SUPPORT_PAM4_SPEEDS_200G     0x4UL
4506	__le16	force_pam4_link_speed;
4507	#define PORT_PHY_QCFG_RESP_FORCE_PAM4_LINK_SPEED_50GB  0x1f4UL
4508	#define PORT_PHY_QCFG_RESP_FORCE_PAM4_LINK_SPEED_100GB 0x3e8UL
4509	#define PORT_PHY_QCFG_RESP_FORCE_PAM4_LINK_SPEED_200GB 0x7d0UL
4510	#define PORT_PHY_QCFG_RESP_FORCE_PAM4_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_FORCE_PAM4_LINK_SPEED_200GB
4511	__le16	auto_pam4_link_speed_mask;
4512	#define PORT_PHY_QCFG_RESP_AUTO_PAM4_LINK_SPEED_MASK_50G      0x1UL
4513	#define PORT_PHY_QCFG_RESP_AUTO_PAM4_LINK_SPEED_MASK_100G     0x2UL
4514	#define PORT_PHY_QCFG_RESP_AUTO_PAM4_LINK_SPEED_MASK_200G     0x4UL
4515	u8	link_partner_pam4_adv_speeds;
4516	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_PAM4_ADV_SPEEDS_50GB      0x1UL
4517	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_PAM4_ADV_SPEEDS_100GB     0x2UL
4518	#define PORT_PHY_QCFG_RESP_LINK_PARTNER_PAM4_ADV_SPEEDS_200GB     0x4UL
4519	u8	link_down_reason;
4520	#define PORT_PHY_QCFG_RESP_LINK_DOWN_REASON_RF     0x1UL
4521	__le16	support_speeds2;
4522	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_1GB                0x1UL
4523	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_10GB               0x2UL
4524	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_25GB               0x4UL
4525	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_40GB               0x8UL
4526	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_50GB               0x10UL
4527	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_100GB              0x20UL
4528	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_50GB_PAM4_56       0x40UL
4529	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_100GB_PAM4_56      0x80UL
4530	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_200GB_PAM4_56      0x100UL
4531	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_400GB_PAM4_56      0x200UL
4532	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_100GB_PAM4_112     0x400UL
4533	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_200GB_PAM4_112     0x800UL
4534	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_400GB_PAM4_112     0x1000UL
4535	#define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS2_800GB_PAM4_112     0x2000UL
4536	__le16	force_link_speeds2;
4537	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_1GB            0xaUL
4538	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_10GB           0x64UL
4539	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_25GB           0xfaUL
4540	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_40GB           0x190UL
4541	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_50GB           0x1f4UL
4542	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_100GB          0x3e8UL
4543	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_50GB_PAM4_56   0x1f5UL
4544	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_100GB_PAM4_56  0x3e9UL
4545	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_200GB_PAM4_56  0x7d1UL
4546	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_400GB_PAM4_56  0xfa1UL
4547	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_100GB_PAM4_112 0x3eaUL
4548	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_200GB_PAM4_112 0x7d2UL
4549	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_400GB_PAM4_112 0xfa2UL
4550	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_800GB_PAM4_112 0x1f42UL
4551	#define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_LAST          PORT_PHY_QCFG_RESP_FORCE_LINK_SPEEDS2_800GB_PAM4_112
4552	__le16	auto_link_speeds2;
4553	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_1GB                0x1UL
4554	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_10GB               0x2UL
4555	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_25GB               0x4UL
4556	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_40GB               0x8UL
4557	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_50GB               0x10UL
4558	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_100GB              0x20UL
4559	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_50GB_PAM4_56       0x40UL
4560	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_100GB_PAM4_56      0x80UL
4561	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_200GB_PAM4_56      0x100UL
4562	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_400GB_PAM4_56      0x200UL
4563	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_100GB_PAM4_112     0x400UL
4564	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_200GB_PAM4_112     0x800UL
4565	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_400GB_PAM4_112     0x1000UL
4566	#define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEEDS2_800GB_PAM4_112     0x2000UL
4567	u8	active_lanes;
4568	u8	valid;
4569};
4570
4571/* hwrm_port_mac_cfg_input (size:448b/56B) */
4572struct hwrm_port_mac_cfg_input {
4573	__le16	req_type;
4574	__le16	cmpl_ring;
4575	__le16	seq_id;
4576	__le16	target_id;
4577	__le64	resp_addr;
4578	__le32	flags;
4579	#define PORT_MAC_CFG_REQ_FLAGS_MATCH_LINK                    0x1UL
4580	#define PORT_MAC_CFG_REQ_FLAGS_VLAN_PRI2COS_ENABLE           0x2UL
4581	#define PORT_MAC_CFG_REQ_FLAGS_TUNNEL_PRI2COS_ENABLE         0x4UL
4582	#define PORT_MAC_CFG_REQ_FLAGS_IP_DSCP2COS_ENABLE            0x8UL
4583	#define PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_ENABLE      0x10UL
4584	#define PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_DISABLE     0x20UL
4585	#define PORT_MAC_CFG_REQ_FLAGS_PTP_TX_TS_CAPTURE_ENABLE      0x40UL
4586	#define PORT_MAC_CFG_REQ_FLAGS_PTP_TX_TS_CAPTURE_DISABLE     0x80UL
4587	#define PORT_MAC_CFG_REQ_FLAGS_OOB_WOL_ENABLE                0x100UL
4588	#define PORT_MAC_CFG_REQ_FLAGS_OOB_WOL_DISABLE               0x200UL
4589	#define PORT_MAC_CFG_REQ_FLAGS_VLAN_PRI2COS_DISABLE          0x400UL
4590	#define PORT_MAC_CFG_REQ_FLAGS_TUNNEL_PRI2COS_DISABLE        0x800UL
4591	#define PORT_MAC_CFG_REQ_FLAGS_IP_DSCP2COS_DISABLE           0x1000UL
4592	#define PORT_MAC_CFG_REQ_FLAGS_PTP_ONE_STEP_TX_TS            0x2000UL
4593	#define PORT_MAC_CFG_REQ_FLAGS_ALL_RX_TS_CAPTURE_ENABLE      0x4000UL
4594	#define PORT_MAC_CFG_REQ_FLAGS_ALL_RX_TS_CAPTURE_DISABLE     0x8000UL
4595	__le32	enables;
4596	#define PORT_MAC_CFG_REQ_ENABLES_IPG                            0x1UL
4597	#define PORT_MAC_CFG_REQ_ENABLES_LPBK                           0x2UL
4598	#define PORT_MAC_CFG_REQ_ENABLES_VLAN_PRI2COS_MAP_PRI           0x4UL
4599	#define PORT_MAC_CFG_REQ_ENABLES_TUNNEL_PRI2COS_MAP_PRI         0x10UL
4600	#define PORT_MAC_CFG_REQ_ENABLES_DSCP2COS_MAP_PRI               0x20UL
4601	#define PORT_MAC_CFG_REQ_ENABLES_RX_TS_CAPTURE_PTP_MSG_TYPE     0x40UL
4602	#define PORT_MAC_CFG_REQ_ENABLES_TX_TS_CAPTURE_PTP_MSG_TYPE     0x80UL
4603	#define PORT_MAC_CFG_REQ_ENABLES_COS_FIELD_CFG                  0x100UL
4604	#define PORT_MAC_CFG_REQ_ENABLES_PTP_FREQ_ADJ_PPB               0x200UL
4605	#define PORT_MAC_CFG_REQ_ENABLES_PTP_ADJ_PHASE                  0x400UL
4606	#define PORT_MAC_CFG_REQ_ENABLES_PTP_LOAD_CONTROL               0x800UL
4607	__le16	port_id;
4608	u8	ipg;
4609	u8	lpbk;
4610	#define PORT_MAC_CFG_REQ_LPBK_NONE   0x0UL
4611	#define PORT_MAC_CFG_REQ_LPBK_LOCAL  0x1UL
4612	#define PORT_MAC_CFG_REQ_LPBK_REMOTE 0x2UL
4613	#define PORT_MAC_CFG_REQ_LPBK_LAST  PORT_MAC_CFG_REQ_LPBK_REMOTE
4614	u8	vlan_pri2cos_map_pri;
4615	u8	reserved1;
4616	u8	tunnel_pri2cos_map_pri;
4617	u8	dscp2pri_map_pri;
4618	__le16	rx_ts_capture_ptp_msg_type;
4619	__le16	tx_ts_capture_ptp_msg_type;
4620	u8	cos_field_cfg;
4621	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_RSVD1                     0x1UL
4622	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_MASK         0x6UL
4623	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_SFT          1
4624	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_INNERMOST      (0x0UL << 1)
4625	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_OUTER          (0x1UL << 1)
4626	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_OUTERMOST      (0x2UL << 1)
4627	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_UNSPECIFIED    (0x3UL << 1)
4628	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_LAST          PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_UNSPECIFIED
4629	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_MASK       0x18UL
4630	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_SFT        3
4631	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_INNERMOST    (0x0UL << 3)
4632	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_OUTER        (0x1UL << 3)
4633	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_OUTERMOST    (0x2UL << 3)
4634	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_UNSPECIFIED  (0x3UL << 3)
4635	#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
4636	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_DEFAULT_COS_MASK          0xe0UL
4637	#define PORT_MAC_CFG_REQ_COS_FIELD_CFG_DEFAULT_COS_SFT           5
4638	u8	unused_0[3];
4639	__le32	ptp_freq_adj_ppb;
4640	u8	unused_1[3];
4641	u8	ptp_load_control;
4642	#define PORT_MAC_CFG_REQ_PTP_LOAD_CONTROL_NONE      0x0UL
4643	#define PORT_MAC_CFG_REQ_PTP_LOAD_CONTROL_IMMEDIATE 0x1UL
4644	#define PORT_MAC_CFG_REQ_PTP_LOAD_CONTROL_PPS_EVENT 0x2UL
4645	#define PORT_MAC_CFG_REQ_PTP_LOAD_CONTROL_LAST     PORT_MAC_CFG_REQ_PTP_LOAD_CONTROL_PPS_EVENT
4646	__le64	ptp_adj_phase;
4647};
4648
4649/* hwrm_port_mac_cfg_output (size:128b/16B) */
4650struct hwrm_port_mac_cfg_output {
4651	__le16	error_code;
4652	__le16	req_type;
4653	__le16	seq_id;
4654	__le16	resp_len;
4655	__le16	mru;
4656	__le16	mtu;
4657	u8	ipg;
4658	u8	lpbk;
4659	#define PORT_MAC_CFG_RESP_LPBK_NONE   0x0UL
4660	#define PORT_MAC_CFG_RESP_LPBK_LOCAL  0x1UL
4661	#define PORT_MAC_CFG_RESP_LPBK_REMOTE 0x2UL
4662	#define PORT_MAC_CFG_RESP_LPBK_LAST  PORT_MAC_CFG_RESP_LPBK_REMOTE
4663	u8	unused_0;
4664	u8	valid;
4665};
4666
4667/* hwrm_port_mac_ptp_qcfg_input (size:192b/24B) */
4668struct hwrm_port_mac_ptp_qcfg_input {
4669	__le16	req_type;
4670	__le16	cmpl_ring;
4671	__le16	seq_id;
4672	__le16	target_id;
4673	__le64	resp_addr;
4674	__le16	port_id;
4675	u8	unused_0[6];
4676};
4677
4678/* hwrm_port_mac_ptp_qcfg_output (size:704b/88B) */
4679struct hwrm_port_mac_ptp_qcfg_output {
4680	__le16	error_code;
4681	__le16	req_type;
4682	__le16	seq_id;
4683	__le16	resp_len;
4684	u8	flags;
4685	#define PORT_MAC_PTP_QCFG_RESP_FLAGS_DIRECT_ACCESS                       0x1UL
4686	#define PORT_MAC_PTP_QCFG_RESP_FLAGS_ONE_STEP_TX_TS                      0x4UL
4687	#define PORT_MAC_PTP_QCFG_RESP_FLAGS_HWRM_ACCESS                         0x8UL
4688	#define PORT_MAC_PTP_QCFG_RESP_FLAGS_PARTIAL_DIRECT_ACCESS_REF_CLOCK     0x10UL
4689	#define PORT_MAC_PTP_QCFG_RESP_FLAGS_RTC_CONFIGURED                      0x20UL
4690	#define PORT_MAC_PTP_QCFG_RESP_FLAGS_64B_PHC_TIME                        0x40UL
4691	u8	unused_0[3];
4692	__le32	rx_ts_reg_off_lower;
4693	__le32	rx_ts_reg_off_upper;
4694	__le32	rx_ts_reg_off_seq_id;
4695	__le32	rx_ts_reg_off_src_id_0;
4696	__le32	rx_ts_reg_off_src_id_1;
4697	__le32	rx_ts_reg_off_src_id_2;
4698	__le32	rx_ts_reg_off_domain_id;
4699	__le32	rx_ts_reg_off_fifo;
4700	__le32	rx_ts_reg_off_fifo_adv;
4701	__le32	rx_ts_reg_off_granularity;
4702	__le32	tx_ts_reg_off_lower;
4703	__le32	tx_ts_reg_off_upper;
4704	__le32	tx_ts_reg_off_seq_id;
4705	__le32	tx_ts_reg_off_fifo;
4706	__le32	tx_ts_reg_off_granularity;
4707	__le32	ts_ref_clock_reg_lower;
4708	__le32	ts_ref_clock_reg_upper;
4709	u8	unused_1[7];
4710	u8	valid;
4711};
4712
4713/* tx_port_stats (size:3264b/408B) */
4714struct tx_port_stats {
4715	__le64	tx_64b_frames;
4716	__le64	tx_65b_127b_frames;
4717	__le64	tx_128b_255b_frames;
4718	__le64	tx_256b_511b_frames;
4719	__le64	tx_512b_1023b_frames;
4720	__le64	tx_1024b_1518b_frames;
4721	__le64	tx_good_vlan_frames;
4722	__le64	tx_1519b_2047b_frames;
4723	__le64	tx_2048b_4095b_frames;
4724	__le64	tx_4096b_9216b_frames;
4725	__le64	tx_9217b_16383b_frames;
4726	__le64	tx_good_frames;
4727	__le64	tx_total_frames;
4728	__le64	tx_ucast_frames;
4729	__le64	tx_mcast_frames;
4730	__le64	tx_bcast_frames;
4731	__le64	tx_pause_frames;
4732	__le64	tx_pfc_frames;
4733	__le64	tx_jabber_frames;
4734	__le64	tx_fcs_err_frames;
4735	__le64	tx_control_frames;
4736	__le64	tx_oversz_frames;
4737	__le64	tx_single_dfrl_frames;
4738	__le64	tx_multi_dfrl_frames;
4739	__le64	tx_single_coll_frames;
4740	__le64	tx_multi_coll_frames;
4741	__le64	tx_late_coll_frames;
4742	__le64	tx_excessive_coll_frames;
4743	__le64	tx_frag_frames;
4744	__le64	tx_err;
4745	__le64	tx_tagged_frames;
4746	__le64	tx_dbl_tagged_frames;
4747	__le64	tx_runt_frames;
4748	__le64	tx_fifo_underruns;
4749	__le64	tx_pfc_ena_frames_pri0;
4750	__le64	tx_pfc_ena_frames_pri1;
4751	__le64	tx_pfc_ena_frames_pri2;
4752	__le64	tx_pfc_ena_frames_pri3;
4753	__le64	tx_pfc_ena_frames_pri4;
4754	__le64	tx_pfc_ena_frames_pri5;
4755	__le64	tx_pfc_ena_frames_pri6;
4756	__le64	tx_pfc_ena_frames_pri7;
4757	__le64	tx_eee_lpi_events;
4758	__le64	tx_eee_lpi_duration;
4759	__le64	tx_llfc_logical_msgs;
4760	__le64	tx_hcfc_msgs;
4761	__le64	tx_total_collisions;
4762	__le64	tx_bytes;
4763	__le64	tx_xthol_frames;
4764	__le64	tx_stat_discard;
4765	__le64	tx_stat_error;
4766};
4767
4768/* rx_port_stats (size:4224b/528B) */
4769struct rx_port_stats {
4770	__le64	rx_64b_frames;
4771	__le64	rx_65b_127b_frames;
4772	__le64	rx_128b_255b_frames;
4773	__le64	rx_256b_511b_frames;
4774	__le64	rx_512b_1023b_frames;
4775	__le64	rx_1024b_1518b_frames;
4776	__le64	rx_good_vlan_frames;
4777	__le64	rx_1519b_2047b_frames;
4778	__le64	rx_2048b_4095b_frames;
4779	__le64	rx_4096b_9216b_frames;
4780	__le64	rx_9217b_16383b_frames;
4781	__le64	rx_total_frames;
4782	__le64	rx_ucast_frames;
4783	__le64	rx_mcast_frames;
4784	__le64	rx_bcast_frames;
4785	__le64	rx_fcs_err_frames;
4786	__le64	rx_ctrl_frames;
4787	__le64	rx_pause_frames;
4788	__le64	rx_pfc_frames;
4789	__le64	rx_unsupported_opcode_frames;
4790	__le64	rx_unsupported_da_pausepfc_frames;
4791	__le64	rx_wrong_sa_frames;
4792	__le64	rx_align_err_frames;
4793	__le64	rx_oor_len_frames;
4794	__le64	rx_code_err_frames;
4795	__le64	rx_false_carrier_frames;
4796	__le64	rx_ovrsz_frames;
4797	__le64	rx_jbr_frames;
4798	__le64	rx_mtu_err_frames;
4799	__le64	rx_match_crc_frames;
4800	__le64	rx_promiscuous_frames;
4801	__le64	rx_tagged_frames;
4802	__le64	rx_double_tagged_frames;
4803	__le64	rx_trunc_frames;
4804	__le64	rx_good_frames;
4805	__le64	rx_pfc_xon2xoff_frames_pri0;
4806	__le64	rx_pfc_xon2xoff_frames_pri1;
4807	__le64	rx_pfc_xon2xoff_frames_pri2;
4808	__le64	rx_pfc_xon2xoff_frames_pri3;
4809	__le64	rx_pfc_xon2xoff_frames_pri4;
4810	__le64	rx_pfc_xon2xoff_frames_pri5;
4811	__le64	rx_pfc_xon2xoff_frames_pri6;
4812	__le64	rx_pfc_xon2xoff_frames_pri7;
4813	__le64	rx_pfc_ena_frames_pri0;
4814	__le64	rx_pfc_ena_frames_pri1;
4815	__le64	rx_pfc_ena_frames_pri2;
4816	__le64	rx_pfc_ena_frames_pri3;
4817	__le64	rx_pfc_ena_frames_pri4;
4818	__le64	rx_pfc_ena_frames_pri5;
4819	__le64	rx_pfc_ena_frames_pri6;
4820	__le64	rx_pfc_ena_frames_pri7;
4821	__le64	rx_sch_crc_err_frames;
4822	__le64	rx_undrsz_frames;
4823	__le64	rx_frag_frames;
4824	__le64	rx_eee_lpi_events;
4825	__le64	rx_eee_lpi_duration;
4826	__le64	rx_llfc_physical_msgs;
4827	__le64	rx_llfc_logical_msgs;
4828	__le64	rx_llfc_msgs_with_crc_err;
4829	__le64	rx_hcfc_msgs;
4830	__le64	rx_hcfc_msgs_with_crc_err;
4831	__le64	rx_bytes;
4832	__le64	rx_runt_bytes;
4833	__le64	rx_runt_frames;
4834	__le64	rx_stat_discard;
4835	__le64	rx_stat_err;
4836};
4837
4838/* hwrm_port_qstats_input (size:320b/40B) */
4839struct hwrm_port_qstats_input {
4840	__le16	req_type;
4841	__le16	cmpl_ring;
4842	__le16	seq_id;
4843	__le16	target_id;
4844	__le64	resp_addr;
4845	__le16	port_id;
4846	u8	flags;
4847	#define PORT_QSTATS_REQ_FLAGS_COUNTER_MASK     0x1UL
4848	u8	unused_0[5];
4849	__le64	tx_stat_host_addr;
4850	__le64	rx_stat_host_addr;
4851};
4852
4853/* hwrm_port_qstats_output (size:128b/16B) */
4854struct hwrm_port_qstats_output {
4855	__le16	error_code;
4856	__le16	req_type;
4857	__le16	seq_id;
4858	__le16	resp_len;
4859	__le16	tx_stat_size;
4860	__le16	rx_stat_size;
4861	u8	unused_0[3];
4862	u8	valid;
4863};
4864
4865/* tx_port_stats_ext (size:2048b/256B) */
4866struct tx_port_stats_ext {
4867	__le64	tx_bytes_cos0;
4868	__le64	tx_bytes_cos1;
4869	__le64	tx_bytes_cos2;
4870	__le64	tx_bytes_cos3;
4871	__le64	tx_bytes_cos4;
4872	__le64	tx_bytes_cos5;
4873	__le64	tx_bytes_cos6;
4874	__le64	tx_bytes_cos7;
4875	__le64	tx_packets_cos0;
4876	__le64	tx_packets_cos1;
4877	__le64	tx_packets_cos2;
4878	__le64	tx_packets_cos3;
4879	__le64	tx_packets_cos4;
4880	__le64	tx_packets_cos5;
4881	__le64	tx_packets_cos6;
4882	__le64	tx_packets_cos7;
4883	__le64	pfc_pri0_tx_duration_us;
4884	__le64	pfc_pri0_tx_transitions;
4885	__le64	pfc_pri1_tx_duration_us;
4886	__le64	pfc_pri1_tx_transitions;
4887	__le64	pfc_pri2_tx_duration_us;
4888	__le64	pfc_pri2_tx_transitions;
4889	__le64	pfc_pri3_tx_duration_us;
4890	__le64	pfc_pri3_tx_transitions;
4891	__le64	pfc_pri4_tx_duration_us;
4892	__le64	pfc_pri4_tx_transitions;
4893	__le64	pfc_pri5_tx_duration_us;
4894	__le64	pfc_pri5_tx_transitions;
4895	__le64	pfc_pri6_tx_duration_us;
4896	__le64	pfc_pri6_tx_transitions;
4897	__le64	pfc_pri7_tx_duration_us;
4898	__le64	pfc_pri7_tx_transitions;
4899};
4900
4901/* rx_port_stats_ext (size:3904b/488B) */
4902struct rx_port_stats_ext {
4903	__le64	link_down_events;
4904	__le64	continuous_pause_events;
4905	__le64	resume_pause_events;
4906	__le64	continuous_roce_pause_events;
4907	__le64	resume_roce_pause_events;
4908	__le64	rx_bytes_cos0;
4909	__le64	rx_bytes_cos1;
4910	__le64	rx_bytes_cos2;
4911	__le64	rx_bytes_cos3;
4912	__le64	rx_bytes_cos4;
4913	__le64	rx_bytes_cos5;
4914	__le64	rx_bytes_cos6;
4915	__le64	rx_bytes_cos7;
4916	__le64	rx_packets_cos0;
4917	__le64	rx_packets_cos1;
4918	__le64	rx_packets_cos2;
4919	__le64	rx_packets_cos3;
4920	__le64	rx_packets_cos4;
4921	__le64	rx_packets_cos5;
4922	__le64	rx_packets_cos6;
4923	__le64	rx_packets_cos7;
4924	__le64	pfc_pri0_rx_duration_us;
4925	__le64	pfc_pri0_rx_transitions;
4926	__le64	pfc_pri1_rx_duration_us;
4927	__le64	pfc_pri1_rx_transitions;
4928	__le64	pfc_pri2_rx_duration_us;
4929	__le64	pfc_pri2_rx_transitions;
4930	__le64	pfc_pri3_rx_duration_us;
4931	__le64	pfc_pri3_rx_transitions;
4932	__le64	pfc_pri4_rx_duration_us;
4933	__le64	pfc_pri4_rx_transitions;
4934	__le64	pfc_pri5_rx_duration_us;
4935	__le64	pfc_pri5_rx_transitions;
4936	__le64	pfc_pri6_rx_duration_us;
4937	__le64	pfc_pri6_rx_transitions;
4938	__le64	pfc_pri7_rx_duration_us;
4939	__le64	pfc_pri7_rx_transitions;
4940	__le64	rx_bits;
4941	__le64	rx_buffer_passed_threshold;
4942	__le64	rx_pcs_symbol_err;
4943	__le64	rx_corrected_bits;
4944	__le64	rx_discard_bytes_cos0;
4945	__le64	rx_discard_bytes_cos1;
4946	__le64	rx_discard_bytes_cos2;
4947	__le64	rx_discard_bytes_cos3;
4948	__le64	rx_discard_bytes_cos4;
4949	__le64	rx_discard_bytes_cos5;
4950	__le64	rx_discard_bytes_cos6;
4951	__le64	rx_discard_bytes_cos7;
4952	__le64	rx_discard_packets_cos0;
4953	__le64	rx_discard_packets_cos1;
4954	__le64	rx_discard_packets_cos2;
4955	__le64	rx_discard_packets_cos3;
4956	__le64	rx_discard_packets_cos4;
4957	__le64	rx_discard_packets_cos5;
4958	__le64	rx_discard_packets_cos6;
4959	__le64	rx_discard_packets_cos7;
4960	__le64	rx_fec_corrected_blocks;
4961	__le64	rx_fec_uncorrectable_blocks;
4962	__le64	rx_filter_miss;
4963	__le64	rx_fec_symbol_err;
4964};
4965
4966/* hwrm_port_qstats_ext_input (size:320b/40B) */
4967struct hwrm_port_qstats_ext_input {
4968	__le16	req_type;
4969	__le16	cmpl_ring;
4970	__le16	seq_id;
4971	__le16	target_id;
4972	__le64	resp_addr;
4973	__le16	port_id;
4974	__le16	tx_stat_size;
4975	__le16	rx_stat_size;
4976	u8	flags;
4977	#define PORT_QSTATS_EXT_REQ_FLAGS_COUNTER_MASK     0x1UL
4978	u8	unused_0;
4979	__le64	tx_stat_host_addr;
4980	__le64	rx_stat_host_addr;
4981};
4982
4983/* hwrm_port_qstats_ext_output (size:128b/16B) */
4984struct hwrm_port_qstats_ext_output {
4985	__le16	error_code;
4986	__le16	req_type;
4987	__le16	seq_id;
4988	__le16	resp_len;
4989	__le16	tx_stat_size;
4990	__le16	rx_stat_size;
4991	__le16	total_active_cos_queues;
4992	u8	flags;
4993	#define PORT_QSTATS_EXT_RESP_FLAGS_CLEAR_ROCE_COUNTERS_SUPPORTED     0x1UL
4994	u8	valid;
4995};
4996
4997/* hwrm_port_lpbk_qstats_input (size:128b/16B) */
4998struct hwrm_port_lpbk_qstats_input {
4999	__le16	req_type;
5000	__le16	cmpl_ring;
5001	__le16	seq_id;
5002	__le16	target_id;
5003	__le64	resp_addr;
5004};
5005
5006/* hwrm_port_lpbk_qstats_output (size:768b/96B) */
5007struct hwrm_port_lpbk_qstats_output {
5008	__le16	error_code;
5009	__le16	req_type;
5010	__le16	seq_id;
5011	__le16	resp_len;
5012	__le64	lpbk_ucast_frames;
5013	__le64	lpbk_mcast_frames;
5014	__le64	lpbk_bcast_frames;
5015	__le64	lpbk_ucast_bytes;
5016	__le64	lpbk_mcast_bytes;
5017	__le64	lpbk_bcast_bytes;
5018	__le64	tx_stat_discard;
5019	__le64	tx_stat_error;
5020	__le64	rx_stat_discard;
5021	__le64	rx_stat_error;
5022	u8	unused_0[7];
5023	u8	valid;
5024};
5025
5026/* hwrm_port_ecn_qstats_input (size:256b/32B) */
5027struct hwrm_port_ecn_qstats_input {
5028	__le16	req_type;
5029	__le16	cmpl_ring;
5030	__le16	seq_id;
5031	__le16	target_id;
5032	__le64	resp_addr;
5033	__le16	port_id;
5034	__le16	ecn_stat_buf_size;
5035	u8	flags;
5036	#define PORT_ECN_QSTATS_REQ_FLAGS_COUNTER_MASK     0x1UL
5037	u8	unused_0[3];
5038	__le64	ecn_stat_host_addr;
5039};
5040
5041/* hwrm_port_ecn_qstats_output (size:128b/16B) */
5042struct hwrm_port_ecn_qstats_output {
5043	__le16	error_code;
5044	__le16	req_type;
5045	__le16	seq_id;
5046	__le16	resp_len;
5047	__le16	ecn_stat_buf_size;
5048	u8	mark_en;
5049	u8	unused_0[4];
5050	u8	valid;
5051};
5052
5053/* port_stats_ecn (size:512b/64B) */
5054struct port_stats_ecn {
5055	__le64	mark_cnt_cos0;
5056	__le64	mark_cnt_cos1;
5057	__le64	mark_cnt_cos2;
5058	__le64	mark_cnt_cos3;
5059	__le64	mark_cnt_cos4;
5060	__le64	mark_cnt_cos5;
5061	__le64	mark_cnt_cos6;
5062	__le64	mark_cnt_cos7;
5063};
5064
5065/* hwrm_port_clr_stats_input (size:192b/24B) */
5066struct hwrm_port_clr_stats_input {
5067	__le16	req_type;
5068	__le16	cmpl_ring;
5069	__le16	seq_id;
5070	__le16	target_id;
5071	__le64	resp_addr;
5072	__le16	port_id;
5073	u8	flags;
5074	#define PORT_CLR_STATS_REQ_FLAGS_ROCE_COUNTERS     0x1UL
5075	u8	unused_0[5];
5076};
5077
5078/* hwrm_port_clr_stats_output (size:128b/16B) */
5079struct hwrm_port_clr_stats_output {
5080	__le16	error_code;
5081	__le16	req_type;
5082	__le16	seq_id;
5083	__le16	resp_len;
5084	u8	unused_0[7];
5085	u8	valid;
5086};
5087
5088/* hwrm_port_lpbk_clr_stats_input (size:128b/16B) */
5089struct hwrm_port_lpbk_clr_stats_input {
5090	__le16	req_type;
5091	__le16	cmpl_ring;
5092	__le16	seq_id;
5093	__le16	target_id;
5094	__le64	resp_addr;
5095};
5096
5097/* hwrm_port_lpbk_clr_stats_output (size:128b/16B) */
5098struct hwrm_port_lpbk_clr_stats_output {
5099	__le16	error_code;
5100	__le16	req_type;
5101	__le16	seq_id;
5102	__le16	resp_len;
5103	u8	unused_0[7];
5104	u8	valid;
5105};
5106
5107/* hwrm_port_ts_query_input (size:320b/40B) */
5108struct hwrm_port_ts_query_input {
5109	__le16	req_type;
5110	__le16	cmpl_ring;
5111	__le16	seq_id;
5112	__le16	target_id;
5113	__le64	resp_addr;
5114	__le32	flags;
5115	#define PORT_TS_QUERY_REQ_FLAGS_PATH             0x1UL
5116	#define PORT_TS_QUERY_REQ_FLAGS_PATH_TX            0x0UL
5117	#define PORT_TS_QUERY_REQ_FLAGS_PATH_RX            0x1UL
5118	#define PORT_TS_QUERY_REQ_FLAGS_PATH_LAST         PORT_TS_QUERY_REQ_FLAGS_PATH_RX
5119	#define PORT_TS_QUERY_REQ_FLAGS_CURRENT_TIME     0x2UL
5120	__le16	port_id;
5121	u8	unused_0[2];
5122	__le16	enables;
5123	#define PORT_TS_QUERY_REQ_ENABLES_TS_REQ_TIMEOUT     0x1UL
5124	#define PORT_TS_QUERY_REQ_ENABLES_PTP_SEQ_ID         0x2UL
5125	#define PORT_TS_QUERY_REQ_ENABLES_PTP_HDR_OFFSET     0x4UL
5126	__le16	ts_req_timeout;
5127	__le32	ptp_seq_id;
5128	__le16	ptp_hdr_offset;
5129	u8	unused_1[6];
5130};
5131
5132/* hwrm_port_ts_query_output (size:192b/24B) */
5133struct hwrm_port_ts_query_output {
5134	__le16	error_code;
5135	__le16	req_type;
5136	__le16	seq_id;
5137	__le16	resp_len;
5138	__le64	ptp_msg_ts;
5139	__le16	ptp_msg_seqid;
5140	u8	unused_0[5];
5141	u8	valid;
5142};
5143
5144/* hwrm_port_phy_qcaps_input (size:192b/24B) */
5145struct hwrm_port_phy_qcaps_input {
5146	__le16	req_type;
5147	__le16	cmpl_ring;
5148	__le16	seq_id;
5149	__le16	target_id;
5150	__le64	resp_addr;
5151	__le16	port_id;
5152	u8	unused_0[6];
5153};
5154
5155/* hwrm_port_phy_qcaps_output (size:320b/40B) */
5156struct hwrm_port_phy_qcaps_output {
5157	__le16	error_code;
5158	__le16	req_type;
5159	__le16	seq_id;
5160	__le16	resp_len;
5161	u8	flags;
5162	#define PORT_PHY_QCAPS_RESP_FLAGS_EEE_SUPPORTED                    0x1UL
5163	#define PORT_PHY_QCAPS_RESP_FLAGS_EXTERNAL_LPBK_SUPPORTED          0x2UL
5164	#define PORT_PHY_QCAPS_RESP_FLAGS_AUTONEG_LPBK_SUPPORTED           0x4UL
5165	#define PORT_PHY_QCAPS_RESP_FLAGS_SHARED_PHY_CFG_SUPPORTED         0x8UL
5166	#define PORT_PHY_QCAPS_RESP_FLAGS_CUMULATIVE_COUNTERS_ON_RESET     0x10UL
5167	#define PORT_PHY_QCAPS_RESP_FLAGS_LOCAL_LPBK_NOT_SUPPORTED         0x20UL
5168	#define PORT_PHY_QCAPS_RESP_FLAGS_FW_MANAGED_LINK_DOWN             0x40UL
5169	#define PORT_PHY_QCAPS_RESP_FLAGS_NO_FCS                           0x80UL
5170	u8	port_cnt;
5171	#define PORT_PHY_QCAPS_RESP_PORT_CNT_UNKNOWN 0x0UL
5172	#define PORT_PHY_QCAPS_RESP_PORT_CNT_1       0x1UL
5173	#define PORT_PHY_QCAPS_RESP_PORT_CNT_2       0x2UL
5174	#define PORT_PHY_QCAPS_RESP_PORT_CNT_3       0x3UL
5175	#define PORT_PHY_QCAPS_RESP_PORT_CNT_4       0x4UL
5176	#define PORT_PHY_QCAPS_RESP_PORT_CNT_12      0xcUL
5177	#define PORT_PHY_QCAPS_RESP_PORT_CNT_LAST   PORT_PHY_QCAPS_RESP_PORT_CNT_12
5178	__le16	supported_speeds_force_mode;
5179	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100MBHD     0x1UL
5180	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100MB       0x2UL
5181	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_1GBHD       0x4UL
5182	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_1GB         0x8UL
5183	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_2GB         0x10UL
5184	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_2_5GB       0x20UL
5185	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10GB        0x40UL
5186	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_20GB        0x80UL
5187	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_25GB        0x100UL
5188	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_40GB        0x200UL
5189	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_50GB        0x400UL
5190	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100GB       0x800UL
5191	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10MBHD      0x1000UL
5192	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10MB        0x2000UL
5193	__le16	supported_speeds_auto_mode;
5194	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100MBHD     0x1UL
5195	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100MB       0x2UL
5196	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_1GBHD       0x4UL
5197	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_1GB         0x8UL
5198	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_2GB         0x10UL
5199	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_2_5GB       0x20UL
5200	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10GB        0x40UL
5201	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_20GB        0x80UL
5202	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_25GB        0x100UL
5203	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_40GB        0x200UL
5204	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_50GB        0x400UL
5205	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100GB       0x800UL
5206	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10MBHD      0x1000UL
5207	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10MB        0x2000UL
5208	__le16	supported_speeds_eee_mode;
5209	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD1     0x1UL
5210	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_100MB     0x2UL
5211	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD2     0x4UL
5212	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_1GB       0x8UL
5213	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD3     0x10UL
5214	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD4     0x20UL
5215	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_10GB      0x40UL
5216	__le32	tx_lpi_timer_low;
5217	#define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_LOW_MASK 0xffffffUL
5218	#define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_LOW_SFT 0
5219	#define PORT_PHY_QCAPS_RESP_RSVD2_MASK           0xff000000UL
5220	#define PORT_PHY_QCAPS_RESP_RSVD2_SFT            24
5221	__le32	valid_tx_lpi_timer_high;
5222	#define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_MASK 0xffffffUL
5223	#define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_SFT 0
5224	#define PORT_PHY_QCAPS_RESP_RSVD_MASK             0xff000000UL
5225	#define PORT_PHY_QCAPS_RESP_RSVD_SFT              24
5226	__le16	supported_pam4_speeds_auto_mode;
5227	#define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_AUTO_MODE_50G      0x1UL
5228	#define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_AUTO_MODE_100G     0x2UL
5229	#define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_AUTO_MODE_200G     0x4UL
5230	__le16	supported_pam4_speeds_force_mode;
5231	#define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_FORCE_MODE_50G      0x1UL
5232	#define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_FORCE_MODE_100G     0x2UL
5233	#define PORT_PHY_QCAPS_RESP_SUPPORTED_PAM4_SPEEDS_FORCE_MODE_200G     0x4UL
5234	__le16	flags2;
5235	#define PORT_PHY_QCAPS_RESP_FLAGS2_PAUSE_UNSUPPORTED       0x1UL
5236	#define PORT_PHY_QCAPS_RESP_FLAGS2_PFC_UNSUPPORTED         0x2UL
5237	#define PORT_PHY_QCAPS_RESP_FLAGS2_BANK_ADDR_SUPPORTED     0x4UL
5238	#define PORT_PHY_QCAPS_RESP_FLAGS2_SPEEDS2_SUPPORTED       0x8UL
5239	u8	internal_port_cnt;
5240	u8	unused_0;
5241	__le16	supported_speeds2_force_mode;
5242	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_1GB                0x1UL
5243	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_10GB               0x2UL
5244	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_25GB               0x4UL
5245	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_40GB               0x8UL
5246	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_50GB               0x10UL
5247	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_100GB              0x20UL
5248	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_50GB_PAM4_56       0x40UL
5249	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_100GB_PAM4_56      0x80UL
5250	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_200GB_PAM4_56      0x100UL
5251	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_400GB_PAM4_56      0x200UL
5252	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_100GB_PAM4_112     0x400UL
5253	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_200GB_PAM4_112     0x800UL
5254	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_400GB_PAM4_112     0x1000UL
5255	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_FORCE_MODE_800GB_PAM4_112     0x2000UL
5256	__le16	supported_speeds2_auto_mode;
5257	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_1GB                0x1UL
5258	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_10GB               0x2UL
5259	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_25GB               0x4UL
5260	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_40GB               0x8UL
5261	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_50GB               0x10UL
5262	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_100GB              0x20UL
5263	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_50GB_PAM4_56       0x40UL
5264	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_100GB_PAM4_56      0x80UL
5265	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_200GB_PAM4_56      0x100UL
5266	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_400GB_PAM4_56      0x200UL
5267	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_100GB_PAM4_112     0x400UL
5268	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_200GB_PAM4_112     0x800UL
5269	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_400GB_PAM4_112     0x1000UL
5270	#define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS2_AUTO_MODE_800GB_PAM4_112     0x2000UL
5271	u8	unused_1[3];
5272	u8	valid;
5273};
5274
5275/* hwrm_port_phy_i2c_read_input (size:320b/40B) */
5276struct hwrm_port_phy_i2c_read_input {
5277	__le16	req_type;
5278	__le16	cmpl_ring;
5279	__le16	seq_id;
5280	__le16	target_id;
5281	__le64	resp_addr;
5282	__le32	flags;
5283	__le32	enables;
5284	#define PORT_PHY_I2C_READ_REQ_ENABLES_PAGE_OFFSET     0x1UL
5285	#define PORT_PHY_I2C_READ_REQ_ENABLES_BANK_NUMBER     0x2UL
5286	__le16	port_id;
5287	u8	i2c_slave_addr;
5288	u8	bank_number;
5289	__le16	page_number;
5290	__le16	page_offset;
5291	u8	data_length;
5292	u8	unused_1[7];
5293};
5294
5295/* hwrm_port_phy_i2c_read_output (size:640b/80B) */
5296struct hwrm_port_phy_i2c_read_output {
5297	__le16	error_code;
5298	__le16	req_type;
5299	__le16	seq_id;
5300	__le16	resp_len;
5301	__le32	data[16];
5302	u8	unused_0[7];
5303	u8	valid;
5304};
5305
5306/* hwrm_port_phy_mdio_write_input (size:320b/40B) */
5307struct hwrm_port_phy_mdio_write_input {
5308	__le16	req_type;
5309	__le16	cmpl_ring;
5310	__le16	seq_id;
5311	__le16	target_id;
5312	__le64	resp_addr;
5313	__le32	unused_0[2];
5314	__le16	port_id;
5315	u8	phy_addr;
5316	u8	dev_addr;
5317	__le16	reg_addr;
5318	__le16	reg_data;
5319	u8	cl45_mdio;
5320	u8	unused_1[7];
5321};
5322
5323/* hwrm_port_phy_mdio_write_output (size:128b/16B) */
5324struct hwrm_port_phy_mdio_write_output {
5325	__le16	error_code;
5326	__le16	req_type;
5327	__le16	seq_id;
5328	__le16	resp_len;
5329	u8	unused_0[7];
5330	u8	valid;
5331};
5332
5333/* hwrm_port_phy_mdio_read_input (size:256b/32B) */
5334struct hwrm_port_phy_mdio_read_input {
5335	__le16	req_type;
5336	__le16	cmpl_ring;
5337	__le16	seq_id;
5338	__le16	target_id;
5339	__le64	resp_addr;
5340	__le32	unused_0[2];
5341	__le16	port_id;
5342	u8	phy_addr;
5343	u8	dev_addr;
5344	__le16	reg_addr;
5345	u8	cl45_mdio;
5346	u8	unused_1;
5347};
5348
5349/* hwrm_port_phy_mdio_read_output (size:128b/16B) */
5350struct hwrm_port_phy_mdio_read_output {
5351	__le16	error_code;
5352	__le16	req_type;
5353	__le16	seq_id;
5354	__le16	resp_len;
5355	__le16	reg_data;
5356	u8	unused_0[5];
5357	u8	valid;
5358};
5359
5360/* hwrm_port_led_cfg_input (size:512b/64B) */
5361struct hwrm_port_led_cfg_input {
5362	__le16	req_type;
5363	__le16	cmpl_ring;
5364	__le16	seq_id;
5365	__le16	target_id;
5366	__le64	resp_addr;
5367	__le32	enables;
5368	#define PORT_LED_CFG_REQ_ENABLES_LED0_ID            0x1UL
5369	#define PORT_LED_CFG_REQ_ENABLES_LED0_STATE         0x2UL
5370	#define PORT_LED_CFG_REQ_ENABLES_LED0_COLOR         0x4UL
5371	#define PORT_LED_CFG_REQ_ENABLES_LED0_BLINK_ON      0x8UL
5372	#define PORT_LED_CFG_REQ_ENABLES_LED0_BLINK_OFF     0x10UL
5373	#define PORT_LED_CFG_REQ_ENABLES_LED0_GROUP_ID      0x20UL
5374	#define PORT_LED_CFG_REQ_ENABLES_LED1_ID            0x40UL
5375	#define PORT_LED_CFG_REQ_ENABLES_LED1_STATE         0x80UL
5376	#define PORT_LED_CFG_REQ_ENABLES_LED1_COLOR         0x100UL
5377	#define PORT_LED_CFG_REQ_ENABLES_LED1_BLINK_ON      0x200UL
5378	#define PORT_LED_CFG_REQ_ENABLES_LED1_BLINK_OFF     0x400UL
5379	#define PORT_LED_CFG_REQ_ENABLES_LED1_GROUP_ID      0x800UL
5380	#define PORT_LED_CFG_REQ_ENABLES_LED2_ID            0x1000UL
5381	#define PORT_LED_CFG_REQ_ENABLES_LED2_STATE         0x2000UL
5382	#define PORT_LED_CFG_REQ_ENABLES_LED2_COLOR         0x4000UL
5383	#define PORT_LED_CFG_REQ_ENABLES_LED2_BLINK_ON      0x8000UL
5384	#define PORT_LED_CFG_REQ_ENABLES_LED2_BLINK_OFF     0x10000UL
5385	#define PORT_LED_CFG_REQ_ENABLES_LED2_GROUP_ID      0x20000UL
5386	#define PORT_LED_CFG_REQ_ENABLES_LED3_ID            0x40000UL
5387	#define PORT_LED_CFG_REQ_ENABLES_LED3_STATE         0x80000UL
5388	#define PORT_LED_CFG_REQ_ENABLES_LED3_COLOR         0x100000UL
5389	#define PORT_LED_CFG_REQ_ENABLES_LED3_BLINK_ON      0x200000UL
5390	#define PORT_LED_CFG_REQ_ENABLES_LED3_BLINK_OFF     0x400000UL
5391	#define PORT_LED_CFG_REQ_ENABLES_LED3_GROUP_ID      0x800000UL
5392	__le16	port_id;
5393	u8	num_leds;
5394	u8	rsvd;
5395	u8	led0_id;
5396	u8	led0_state;
5397	#define PORT_LED_CFG_REQ_LED0_STATE_DEFAULT  0x0UL
5398	#define PORT_LED_CFG_REQ_LED0_STATE_OFF      0x1UL
5399	#define PORT_LED_CFG_REQ_LED0_STATE_ON       0x2UL
5400	#define PORT_LED_CFG_REQ_LED0_STATE_BLINK    0x3UL
5401	#define PORT_LED_CFG_REQ_LED0_STATE_BLINKALT 0x4UL
5402	#define PORT_LED_CFG_REQ_LED0_STATE_LAST    PORT_LED_CFG_REQ_LED0_STATE_BLINKALT
5403	u8	led0_color;
5404	#define PORT_LED_CFG_REQ_LED0_COLOR_DEFAULT    0x0UL
5405	#define PORT_LED_CFG_REQ_LED0_COLOR_AMBER      0x1UL
5406	#define PORT_LED_CFG_REQ_LED0_COLOR_GREEN      0x2UL
5407	#define PORT_LED_CFG_REQ_LED0_COLOR_GREENAMBER 0x3UL
5408	#define PORT_LED_CFG_REQ_LED0_COLOR_LAST      PORT_LED_CFG_REQ_LED0_COLOR_GREENAMBER
5409	u8	unused_0;
5410	__le16	led0_blink_on;
5411	__le16	led0_blink_off;
5412	u8	led0_group_id;
5413	u8	rsvd0;
5414	u8	led1_id;
5415	u8	led1_state;
5416	#define PORT_LED_CFG_REQ_LED1_STATE_DEFAULT  0x0UL
5417	#define PORT_LED_CFG_REQ_LED1_STATE_OFF      0x1UL
5418	#define PORT_LED_CFG_REQ_LED1_STATE_ON       0x2UL
5419	#define PORT_LED_CFG_REQ_LED1_STATE_BLINK    0x3UL
5420	#define PORT_LED_CFG_REQ_LED1_STATE_BLINKALT 0x4UL
5421	#define PORT_LED_CFG_REQ_LED1_STATE_LAST    PORT_LED_CFG_REQ_LED1_STATE_BLINKALT
5422	u8	led1_color;
5423	#define PORT_LED_CFG_REQ_LED1_COLOR_DEFAULT    0x0UL
5424	#define PORT_LED_CFG_REQ_LED1_COLOR_AMBER      0x1UL
5425	#define PORT_LED_CFG_REQ_LED1_COLOR_GREEN      0x2UL
5426	#define PORT_LED_CFG_REQ_LED1_COLOR_GREENAMBER 0x3UL
5427	#define PORT_LED_CFG_REQ_LED1_COLOR_LAST      PORT_LED_CFG_REQ_LED1_COLOR_GREENAMBER
5428	u8	unused_1;
5429	__le16	led1_blink_on;
5430	__le16	led1_blink_off;
5431	u8	led1_group_id;
5432	u8	rsvd1;
5433	u8	led2_id;
5434	u8	led2_state;
5435	#define PORT_LED_CFG_REQ_LED2_STATE_DEFAULT  0x0UL
5436	#define PORT_LED_CFG_REQ_LED2_STATE_OFF      0x1UL
5437	#define PORT_LED_CFG_REQ_LED2_STATE_ON       0x2UL
5438	#define PORT_LED_CFG_REQ_LED2_STATE_BLINK    0x3UL
5439	#define PORT_LED_CFG_REQ_LED2_STATE_BLINKALT 0x4UL
5440	#define PORT_LED_CFG_REQ_LED2_STATE_LAST    PORT_LED_CFG_REQ_LED2_STATE_BLINKALT
5441	u8	led2_color;
5442	#define PORT_LED_CFG_REQ_LED2_COLOR_DEFAULT    0x0UL
5443	#define PORT_LED_CFG_REQ_LED2_COLOR_AMBER      0x1UL
5444	#define PORT_LED_CFG_REQ_LED2_COLOR_GREEN      0x2UL
5445	#define PORT_LED_CFG_REQ_LED2_COLOR_GREENAMBER 0x3UL
5446	#define PORT_LED_CFG_REQ_LED2_COLOR_LAST      PORT_LED_CFG_REQ_LED2_COLOR_GREENAMBER
5447	u8	unused_2;
5448	__le16	led2_blink_on;
5449	__le16	led2_blink_off;
5450	u8	led2_group_id;
5451	u8	rsvd2;
5452	u8	led3_id;
5453	u8	led3_state;
5454	#define PORT_LED_CFG_REQ_LED3_STATE_DEFAULT  0x0UL
5455	#define PORT_LED_CFG_REQ_LED3_STATE_OFF      0x1UL
5456	#define PORT_LED_CFG_REQ_LED3_STATE_ON       0x2UL
5457	#define PORT_LED_CFG_REQ_LED3_STATE_BLINK    0x3UL
5458	#define PORT_LED_CFG_REQ_LED3_STATE_BLINKALT 0x4UL
5459	#define PORT_LED_CFG_REQ_LED3_STATE_LAST    PORT_LED_CFG_REQ_LED3_STATE_BLINKALT
5460	u8	led3_color;
5461	#define PORT_LED_CFG_REQ_LED3_COLOR_DEFAULT    0x0UL
5462	#define PORT_LED_CFG_REQ_LED3_COLOR_AMBER      0x1UL
5463	#define PORT_LED_CFG_REQ_LED3_COLOR_GREEN      0x2UL
5464	#define PORT_LED_CFG_REQ_LED3_COLOR_GREENAMBER 0x3UL
5465	#define PORT_LED_CFG_REQ_LED3_COLOR_LAST      PORT_LED_CFG_REQ_LED3_COLOR_GREENAMBER
5466	u8	unused_3;
5467	__le16	led3_blink_on;
5468	__le16	led3_blink_off;
5469	u8	led3_group_id;
5470	u8	rsvd3;
5471};
5472
5473/* hwrm_port_led_cfg_output (size:128b/16B) */
5474struct hwrm_port_led_cfg_output {
5475	__le16	error_code;
5476	__le16	req_type;
5477	__le16	seq_id;
5478	__le16	resp_len;
5479	u8	unused_0[7];
5480	u8	valid;
5481};
5482
5483/* hwrm_port_led_qcfg_input (size:192b/24B) */
5484struct hwrm_port_led_qcfg_input {
5485	__le16	req_type;
5486	__le16	cmpl_ring;
5487	__le16	seq_id;
5488	__le16	target_id;
5489	__le64	resp_addr;
5490	__le16	port_id;
5491	u8	unused_0[6];
5492};
5493
5494/* hwrm_port_led_qcfg_output (size:448b/56B) */
5495struct hwrm_port_led_qcfg_output {
5496	__le16	error_code;
5497	__le16	req_type;
5498	__le16	seq_id;
5499	__le16	resp_len;
5500	u8	num_leds;
5501	u8	led0_id;
5502	u8	led0_type;
5503	#define PORT_LED_QCFG_RESP_LED0_TYPE_SPEED    0x0UL
5504	#define PORT_LED_QCFG_RESP_LED0_TYPE_ACTIVITY 0x1UL
5505	#define PORT_LED_QCFG_RESP_LED0_TYPE_INVALID  0xffUL
5506	#define PORT_LED_QCFG_RESP_LED0_TYPE_LAST    PORT_LED_QCFG_RESP_LED0_TYPE_INVALID
5507	u8	led0_state;
5508	#define PORT_LED_QCFG_RESP_LED0_STATE_DEFAULT  0x0UL
5509	#define PORT_LED_QCFG_RESP_LED0_STATE_OFF      0x1UL
5510	#define PORT_LED_QCFG_RESP_LED0_STATE_ON       0x2UL
5511	#define PORT_LED_QCFG_RESP_LED0_STATE_BLINK    0x3UL
5512	#define PORT_LED_QCFG_RESP_LED0_STATE_BLINKALT 0x4UL
5513	#define PORT_LED_QCFG_RESP_LED0_STATE_LAST    PORT_LED_QCFG_RESP_LED0_STATE_BLINKALT
5514	u8	led0_color;
5515	#define PORT_LED_QCFG_RESP_LED0_COLOR_DEFAULT    0x0UL
5516	#define PORT_LED_QCFG_RESP_LED0_COLOR_AMBER      0x1UL
5517	#define PORT_LED_QCFG_RESP_LED0_COLOR_GREEN      0x2UL
5518	#define PORT_LED_QCFG_RESP_LED0_COLOR_GREENAMBER 0x3UL
5519	#define PORT_LED_QCFG_RESP_LED0_COLOR_LAST      PORT_LED_QCFG_RESP_LED0_COLOR_GREENAMBER
5520	u8	unused_0;
5521	__le16	led0_blink_on;
5522	__le16	led0_blink_off;
5523	u8	led0_group_id;
5524	u8	led1_id;
5525	u8	led1_type;
5526	#define PORT_LED_QCFG_RESP_LED1_TYPE_SPEED    0x0UL
5527	#define PORT_LED_QCFG_RESP_LED1_TYPE_ACTIVITY 0x1UL
5528	#define PORT_LED_QCFG_RESP_LED1_TYPE_INVALID  0xffUL
5529	#define PORT_LED_QCFG_RESP_LED1_TYPE_LAST    PORT_LED_QCFG_RESP_LED1_TYPE_INVALID
5530	u8	led1_state;
5531	#define PORT_LED_QCFG_RESP_LED1_STATE_DEFAULT  0x0UL
5532	#define PORT_LED_QCFG_RESP_LED1_STATE_OFF      0x1UL
5533	#define PORT_LED_QCFG_RESP_LED1_STATE_ON       0x2UL
5534	#define PORT_LED_QCFG_RESP_LED1_STATE_BLINK    0x3UL
5535	#define PORT_LED_QCFG_RESP_LED1_STATE_BLINKALT 0x4UL
5536	#define PORT_LED_QCFG_RESP_LED1_STATE_LAST    PORT_LED_QCFG_RESP_LED1_STATE_BLINKALT
5537	u8	led1_color;
5538	#define PORT_LED_QCFG_RESP_LED1_COLOR_DEFAULT    0x0UL
5539	#define PORT_LED_QCFG_RESP_LED1_COLOR_AMBER      0x1UL
5540	#define PORT_LED_QCFG_RESP_LED1_COLOR_GREEN      0x2UL
5541	#define PORT_LED_QCFG_RESP_LED1_COLOR_GREENAMBER 0x3UL
5542	#define PORT_LED_QCFG_RESP_LED1_COLOR_LAST      PORT_LED_QCFG_RESP_LED1_COLOR_GREENAMBER
5543	u8	unused_1;
5544	__le16	led1_blink_on;
5545	__le16	led1_blink_off;
5546	u8	led1_group_id;
5547	u8	led2_id;
5548	u8	led2_type;
5549	#define PORT_LED_QCFG_RESP_LED2_TYPE_SPEED    0x0UL
5550	#define PORT_LED_QCFG_RESP_LED2_TYPE_ACTIVITY 0x1UL
5551	#define PORT_LED_QCFG_RESP_LED2_TYPE_INVALID  0xffUL
5552	#define PORT_LED_QCFG_RESP_LED2_TYPE_LAST    PORT_LED_QCFG_RESP_LED2_TYPE_INVALID
5553	u8	led2_state;
5554	#define PORT_LED_QCFG_RESP_LED2_STATE_DEFAULT  0x0UL
5555	#define PORT_LED_QCFG_RESP_LED2_STATE_OFF      0x1UL
5556	#define PORT_LED_QCFG_RESP_LED2_STATE_ON       0x2UL
5557	#define PORT_LED_QCFG_RESP_LED2_STATE_BLINK    0x3UL
5558	#define PORT_LED_QCFG_RESP_LED2_STATE_BLINKALT 0x4UL
5559	#define PORT_LED_QCFG_RESP_LED2_STATE_LAST    PORT_LED_QCFG_RESP_LED2_STATE_BLINKALT
5560	u8	led2_color;
5561	#define PORT_LED_QCFG_RESP_LED2_COLOR_DEFAULT    0x0UL
5562	#define PORT_LED_QCFG_RESP_LED2_COLOR_AMBER      0x1UL
5563	#define PORT_LED_QCFG_RESP_LED2_COLOR_GREEN      0x2UL
5564	#define PORT_LED_QCFG_RESP_LED2_COLOR_GREENAMBER 0x3UL
5565	#define PORT_LED_QCFG_RESP_LED2_COLOR_LAST      PORT_LED_QCFG_RESP_LED2_COLOR_GREENAMBER
5566	u8	unused_2;
5567	__le16	led2_blink_on;
5568	__le16	led2_blink_off;
5569	u8	led2_group_id;
5570	u8	led3_id;
5571	u8	led3_type;
5572	#define PORT_LED_QCFG_RESP_LED3_TYPE_SPEED    0x0UL
5573	#define PORT_LED_QCFG_RESP_LED3_TYPE_ACTIVITY 0x1UL
5574	#define PORT_LED_QCFG_RESP_LED3_TYPE_INVALID  0xffUL
5575	#define PORT_LED_QCFG_RESP_LED3_TYPE_LAST    PORT_LED_QCFG_RESP_LED3_TYPE_INVALID
5576	u8	led3_state;
5577	#define PORT_LED_QCFG_RESP_LED3_STATE_DEFAULT  0x0UL
5578	#define PORT_LED_QCFG_RESP_LED3_STATE_OFF      0x1UL
5579	#define PORT_LED_QCFG_RESP_LED3_STATE_ON       0x2UL
5580	#define PORT_LED_QCFG_RESP_LED3_STATE_BLINK    0x3UL
5581	#define PORT_LED_QCFG_RESP_LED3_STATE_BLINKALT 0x4UL
5582	#define PORT_LED_QCFG_RESP_LED3_STATE_LAST    PORT_LED_QCFG_RESP_LED3_STATE_BLINKALT
5583	u8	led3_color;
5584	#define PORT_LED_QCFG_RESP_LED3_COLOR_DEFAULT    0x0UL
5585	#define PORT_LED_QCFG_RESP_LED3_COLOR_AMBER      0x1UL
5586	#define PORT_LED_QCFG_RESP_LED3_COLOR_GREEN      0x2UL
5587	#define PORT_LED_QCFG_RESP_LED3_COLOR_GREENAMBER 0x3UL
5588	#define PORT_LED_QCFG_RESP_LED3_COLOR_LAST      PORT_LED_QCFG_RESP_LED3_COLOR_GREENAMBER
5589	u8	unused_3;
5590	__le16	led3_blink_on;
5591	__le16	led3_blink_off;
5592	u8	led3_group_id;
5593	u8	unused_4[6];
5594	u8	valid;
5595};
5596
5597/* hwrm_port_led_qcaps_input (size:192b/24B) */
5598struct hwrm_port_led_qcaps_input {
5599	__le16	req_type;
5600	__le16	cmpl_ring;
5601	__le16	seq_id;
5602	__le16	target_id;
5603	__le64	resp_addr;
5604	__le16	port_id;
5605	u8	unused_0[6];
5606};
5607
5608/* hwrm_port_led_qcaps_output (size:384b/48B) */
5609struct hwrm_port_led_qcaps_output {
5610	__le16	error_code;
5611	__le16	req_type;
5612	__le16	seq_id;
5613	__le16	resp_len;
5614	u8	num_leds;
5615	u8	unused[3];
5616	u8	led0_id;
5617	u8	led0_type;
5618	#define PORT_LED_QCAPS_RESP_LED0_TYPE_SPEED    0x0UL
5619	#define PORT_LED_QCAPS_RESP_LED0_TYPE_ACTIVITY 0x1UL
5620	#define PORT_LED_QCAPS_RESP_LED0_TYPE_INVALID  0xffUL
5621	#define PORT_LED_QCAPS_RESP_LED0_TYPE_LAST    PORT_LED_QCAPS_RESP_LED0_TYPE_INVALID
5622	u8	led0_group_id;
5623	u8	unused_0;
5624	__le16	led0_state_caps;
5625	#define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_ENABLED                 0x1UL
5626	#define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_OFF_SUPPORTED           0x2UL
5627	#define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_ON_SUPPORTED            0x4UL
5628	#define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_BLINK_SUPPORTED         0x8UL
5629	#define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_BLINK_ALT_SUPPORTED     0x10UL
5630	__le16	led0_color_caps;
5631	#define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_RSVD                0x1UL
5632	#define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_AMBER_SUPPORTED     0x2UL
5633	#define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_GREEN_SUPPORTED     0x4UL
5634	u8	led1_id;
5635	u8	led1_type;
5636	#define PORT_LED_QCAPS_RESP_LED1_TYPE_SPEED    0x0UL
5637	#define PORT_LED_QCAPS_RESP_LED1_TYPE_ACTIVITY 0x1UL
5638	#define PORT_LED_QCAPS_RESP_LED1_TYPE_INVALID  0xffUL
5639	#define PORT_LED_QCAPS_RESP_LED1_TYPE_LAST    PORT_LED_QCAPS_RESP_LED1_TYPE_INVALID
5640	u8	led1_group_id;
5641	u8	unused_1;
5642	__le16	led1_state_caps;
5643	#define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_ENABLED                 0x1UL
5644	#define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_OFF_SUPPORTED           0x2UL
5645	#define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_ON_SUPPORTED            0x4UL
5646	#define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_BLINK_SUPPORTED         0x8UL
5647	#define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_BLINK_ALT_SUPPORTED     0x10UL
5648	__le16	led1_color_caps;
5649	#define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_RSVD                0x1UL
5650	#define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_AMBER_SUPPORTED     0x2UL
5651	#define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_GREEN_SUPPORTED     0x4UL
5652	u8	led2_id;
5653	u8	led2_type;
5654	#define PORT_LED_QCAPS_RESP_LED2_TYPE_SPEED    0x0UL
5655	#define PORT_LED_QCAPS_RESP_LED2_TYPE_ACTIVITY 0x1UL
5656	#define PORT_LED_QCAPS_RESP_LED2_TYPE_INVALID  0xffUL
5657	#define PORT_LED_QCAPS_RESP_LED2_TYPE_LAST    PORT_LED_QCAPS_RESP_LED2_TYPE_INVALID
5658	u8	led2_group_id;
5659	u8	unused_2;
5660	__le16	led2_state_caps;
5661	#define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_ENABLED                 0x1UL
5662	#define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_OFF_SUPPORTED           0x2UL
5663	#define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_ON_SUPPORTED            0x4UL
5664	#define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_BLINK_SUPPORTED         0x8UL
5665	#define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_BLINK_ALT_SUPPORTED     0x10UL
5666	__le16	led2_color_caps;
5667	#define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_RSVD                0x1UL
5668	#define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_AMBER_SUPPORTED     0x2UL
5669	#define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_GREEN_SUPPORTED     0x4UL
5670	u8	led3_id;
5671	u8	led3_type;
5672	#define PORT_LED_QCAPS_RESP_LED3_TYPE_SPEED    0x0UL
5673	#define PORT_LED_QCAPS_RESP_LED3_TYPE_ACTIVITY 0x1UL
5674	#define PORT_LED_QCAPS_RESP_LED3_TYPE_INVALID  0xffUL
5675	#define PORT_LED_QCAPS_RESP_LED3_TYPE_LAST    PORT_LED_QCAPS_RESP_LED3_TYPE_INVALID
5676	u8	led3_group_id;
5677	u8	unused_3;
5678	__le16	led3_state_caps;
5679	#define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_ENABLED                 0x1UL
5680	#define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_OFF_SUPPORTED           0x2UL
5681	#define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_ON_SUPPORTED            0x4UL
5682	#define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_BLINK_SUPPORTED         0x8UL
5683	#define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_BLINK_ALT_SUPPORTED     0x10UL
5684	__le16	led3_color_caps;
5685	#define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_RSVD                0x1UL
5686	#define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_AMBER_SUPPORTED     0x2UL
5687	#define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_GREEN_SUPPORTED     0x4UL
5688	u8	unused_4[3];
5689	u8	valid;
5690};
5691
5692/* hwrm_port_mac_qcaps_input (size:192b/24B) */
5693struct hwrm_port_mac_qcaps_input {
5694	__le16	req_type;
5695	__le16	cmpl_ring;
5696	__le16	seq_id;
5697	__le16	target_id;
5698	__le64	resp_addr;
5699	__le16	port_id;
5700	u8	unused_0[6];
5701};
5702
5703/* hwrm_port_mac_qcaps_output (size:128b/16B) */
5704struct hwrm_port_mac_qcaps_output {
5705	__le16	error_code;
5706	__le16	req_type;
5707	__le16	seq_id;
5708	__le16	resp_len;
5709	u8	flags;
5710	#define PORT_MAC_QCAPS_RESP_FLAGS_LOCAL_LPBK_NOT_SUPPORTED     0x1UL
5711	#define PORT_MAC_QCAPS_RESP_FLAGS_REMOTE_LPBK_SUPPORTED        0x2UL
5712	u8	unused_0[6];
5713	u8	valid;
5714};
5715
5716/* hwrm_queue_qportcfg_input (size:192b/24B) */
5717struct hwrm_queue_qportcfg_input {
5718	__le16	req_type;
5719	__le16	cmpl_ring;
5720	__le16	seq_id;
5721	__le16	target_id;
5722	__le64	resp_addr;
5723	__le32	flags;
5724	#define QUEUE_QPORTCFG_REQ_FLAGS_PATH     0x1UL
5725	#define QUEUE_QPORTCFG_REQ_FLAGS_PATH_TX    0x0UL
5726	#define QUEUE_QPORTCFG_REQ_FLAGS_PATH_RX    0x1UL
5727	#define QUEUE_QPORTCFG_REQ_FLAGS_PATH_LAST QUEUE_QPORTCFG_REQ_FLAGS_PATH_RX
5728	__le16	port_id;
5729	u8	drv_qmap_cap;
5730	#define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_DISABLED 0x0UL
5731	#define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_ENABLED  0x1UL
5732	#define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_LAST    QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_ENABLED
5733	u8	unused_0;
5734};
5735
5736/* hwrm_queue_qportcfg_output (size:1344b/168B) */
5737struct hwrm_queue_qportcfg_output {
5738	__le16	error_code;
5739	__le16	req_type;
5740	__le16	seq_id;
5741	__le16	resp_len;
5742	u8	max_configurable_queues;
5743	u8	max_configurable_lossless_queues;
5744	u8	queue_cfg_allowed;
5745	u8	queue_cfg_info;
5746	#define QUEUE_QPORTCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG             0x1UL
5747	#define QUEUE_QPORTCFG_RESP_QUEUE_CFG_INFO_USE_PROFILE_TYPE     0x2UL
5748	u8	queue_pfcenable_cfg_allowed;
5749	u8	queue_pri2cos_cfg_allowed;
5750	u8	queue_cos2bw_cfg_allowed;
5751	u8	queue_id0;
5752	u8	queue_id0_service_profile;
5753	#define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY          0x0UL
5754	#define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS       0x1UL
5755	#define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
5756	#define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
5757	#define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
5758	#define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_UNKNOWN        0xffUL
5759	#define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_UNKNOWN
5760	u8	queue_id1;
5761	u8	queue_id1_service_profile;
5762	#define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSY          0x0UL
5763	#define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS       0x1UL
5764	#define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
5765	#define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
5766	#define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
5767	#define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_UNKNOWN        0xffUL
5768	#define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_UNKNOWN
5769	u8	queue_id2;
5770	u8	queue_id2_service_profile;
5771	#define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSY          0x0UL
5772	#define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS       0x1UL
5773	#define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
5774	#define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
5775	#define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
5776	#define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_UNKNOWN        0xffUL
5777	#define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_UNKNOWN
5778	u8	queue_id3;
5779	u8	queue_id3_service_profile;
5780	#define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSY          0x0UL
5781	#define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS       0x1UL
5782	#define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
5783	#define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
5784	#define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
5785	#define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_UNKNOWN        0xffUL
5786	#define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_UNKNOWN
5787	u8	queue_id4;
5788	u8	queue_id4_service_profile;
5789	#define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSY          0x0UL
5790	#define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS       0x1UL
5791	#define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
5792	#define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
5793	#define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
5794	#define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_UNKNOWN        0xffUL
5795	#define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_UNKNOWN
5796	u8	queue_id5;
5797	u8	queue_id5_service_profile;
5798	#define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSY          0x0UL
5799	#define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS       0x1UL
5800	#define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
5801	#define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
5802	#define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
5803	#define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_UNKNOWN        0xffUL
5804	#define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_UNKNOWN
5805	u8	queue_id6;
5806	u8	queue_id6_service_profile;
5807	#define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSY          0x0UL
5808	#define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS       0x1UL
5809	#define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
5810	#define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
5811	#define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
5812	#define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_UNKNOWN        0xffUL
5813	#define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_UNKNOWN
5814	u8	queue_id7;
5815	u8	queue_id7_service_profile;
5816	#define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSY          0x0UL
5817	#define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS       0x1UL
5818	#define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS_ROCE  0x1UL
5819	#define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
5820	#define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS_NIC   0x3UL
5821	#define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_UNKNOWN        0xffUL
5822	#define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LAST          QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_UNKNOWN
5823	u8	queue_id0_service_profile_type;
5824	#define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_TYPE_ROCE     0x1UL
5825	#define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_TYPE_NIC      0x2UL
5826	#define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_TYPE_CNP      0x4UL
5827	char	qid0_name[16];
5828	char	qid1_name[16];
5829	char	qid2_name[16];
5830	char	qid3_name[16];
5831	char	qid4_name[16];
5832	char	qid5_name[16];
5833	char	qid6_name[16];
5834	char	qid7_name[16];
5835	u8	queue_id1_service_profile_type;
5836	#define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_TYPE_ROCE     0x1UL
5837	#define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_TYPE_NIC      0x2UL
5838	#define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_TYPE_CNP      0x4UL
5839	u8	queue_id2_service_profile_type;
5840	#define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_TYPE_ROCE     0x1UL
5841	#define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_TYPE_NIC      0x2UL
5842	#define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_TYPE_CNP      0x4UL
5843	u8	queue_id3_service_profile_type;
5844	#define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_TYPE_ROCE     0x1UL
5845	#define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_TYPE_NIC      0x2UL
5846	#define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_TYPE_CNP      0x4UL
5847	u8	queue_id4_service_profile_type;
5848	#define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_TYPE_ROCE     0x1UL
5849	#define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_TYPE_NIC      0x2UL
5850	#define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_TYPE_CNP      0x4UL
5851	u8	queue_id5_service_profile_type;
5852	#define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_TYPE_ROCE     0x1UL
5853	#define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_TYPE_NIC      0x2UL
5854	#define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_TYPE_CNP      0x4UL
5855	u8	queue_id6_service_profile_type;
5856	#define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_TYPE_ROCE     0x1UL
5857	#define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_TYPE_NIC      0x2UL
5858	#define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_TYPE_CNP      0x4UL
5859	u8	queue_id7_service_profile_type;
5860	#define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_TYPE_ROCE     0x1UL
5861	#define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_TYPE_NIC      0x2UL
5862	#define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_TYPE_CNP      0x4UL
5863	u8	valid;
5864};
5865
5866/* hwrm_queue_qcfg_input (size:192b/24B) */
5867struct hwrm_queue_qcfg_input {
5868	__le16	req_type;
5869	__le16	cmpl_ring;
5870	__le16	seq_id;
5871	__le16	target_id;
5872	__le64	resp_addr;
5873	__le32	flags;
5874	#define QUEUE_QCFG_REQ_FLAGS_PATH     0x1UL
5875	#define QUEUE_QCFG_REQ_FLAGS_PATH_TX    0x0UL
5876	#define QUEUE_QCFG_REQ_FLAGS_PATH_RX    0x1UL
5877	#define QUEUE_QCFG_REQ_FLAGS_PATH_LAST QUEUE_QCFG_REQ_FLAGS_PATH_RX
5878	__le32	queue_id;
5879};
5880
5881/* hwrm_queue_qcfg_output (size:128b/16B) */
5882struct hwrm_queue_qcfg_output {
5883	__le16	error_code;
5884	__le16	req_type;
5885	__le16	seq_id;
5886	__le16	resp_len;
5887	__le32	queue_len;
5888	u8	service_profile;
5889	#define QUEUE_QCFG_RESP_SERVICE_PROFILE_LOSSY    0x0UL
5890	#define QUEUE_QCFG_RESP_SERVICE_PROFILE_LOSSLESS 0x1UL
5891	#define QUEUE_QCFG_RESP_SERVICE_PROFILE_UNKNOWN  0xffUL
5892	#define QUEUE_QCFG_RESP_SERVICE_PROFILE_LAST    QUEUE_QCFG_RESP_SERVICE_PROFILE_UNKNOWN
5893	u8	queue_cfg_info;
5894	#define QUEUE_QCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG     0x1UL
5895	u8	unused_0;
5896	u8	valid;
5897};
5898
5899/* hwrm_queue_cfg_input (size:320b/40B) */
5900struct hwrm_queue_cfg_input {
5901	__le16	req_type;
5902	__le16	cmpl_ring;
5903	__le16	seq_id;
5904	__le16	target_id;
5905	__le64	resp_addr;
5906	__le32	flags;
5907	#define QUEUE_CFG_REQ_FLAGS_PATH_MASK 0x3UL
5908	#define QUEUE_CFG_REQ_FLAGS_PATH_SFT  0
5909	#define QUEUE_CFG_REQ_FLAGS_PATH_TX     0x0UL
5910	#define QUEUE_CFG_REQ_FLAGS_PATH_RX     0x1UL
5911	#define QUEUE_CFG_REQ_FLAGS_PATH_BIDIR  0x2UL
5912	#define QUEUE_CFG_REQ_FLAGS_PATH_LAST  QUEUE_CFG_REQ_FLAGS_PATH_BIDIR
5913	__le32	enables;
5914	#define QUEUE_CFG_REQ_ENABLES_DFLT_LEN            0x1UL
5915	#define QUEUE_CFG_REQ_ENABLES_SERVICE_PROFILE     0x2UL
5916	__le32	queue_id;
5917	__le32	dflt_len;
5918	u8	service_profile;
5919	#define QUEUE_CFG_REQ_SERVICE_PROFILE_LOSSY    0x0UL
5920	#define QUEUE_CFG_REQ_SERVICE_PROFILE_LOSSLESS 0x1UL
5921	#define QUEUE_CFG_REQ_SERVICE_PROFILE_UNKNOWN  0xffUL
5922	#define QUEUE_CFG_REQ_SERVICE_PROFILE_LAST    QUEUE_CFG_REQ_SERVICE_PROFILE_UNKNOWN
5923	u8	unused_0[7];
5924};
5925
5926/* hwrm_queue_cfg_output (size:128b/16B) */
5927struct hwrm_queue_cfg_output {
5928	__le16	error_code;
5929	__le16	req_type;
5930	__le16	seq_id;
5931	__le16	resp_len;
5932	u8	unused_0[7];
5933	u8	valid;
5934};
5935
5936/* hwrm_queue_pfcenable_qcfg_input (size:192b/24B) */
5937struct hwrm_queue_pfcenable_qcfg_input {
5938	__le16	req_type;
5939	__le16	cmpl_ring;
5940	__le16	seq_id;
5941	__le16	target_id;
5942	__le64	resp_addr;
5943	__le16	port_id;
5944	u8	unused_0[6];
5945};
5946
5947/* hwrm_queue_pfcenable_qcfg_output (size:128b/16B) */
5948struct hwrm_queue_pfcenable_qcfg_output {
5949	__le16	error_code;
5950	__le16	req_type;
5951	__le16	seq_id;
5952	__le16	resp_len;
5953	__le32	flags;
5954	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI0_PFC_ENABLED              0x1UL
5955	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI1_PFC_ENABLED              0x2UL
5956	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI2_PFC_ENABLED              0x4UL
5957	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI3_PFC_ENABLED              0x8UL
5958	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI4_PFC_ENABLED              0x10UL
5959	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI5_PFC_ENABLED              0x20UL
5960	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI6_PFC_ENABLED              0x40UL
5961	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI7_PFC_ENABLED              0x80UL
5962	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI0_PFC_WATCHDOG_ENABLED     0x100UL
5963	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI1_PFC_WATCHDOG_ENABLED     0x200UL
5964	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI2_PFC_WATCHDOG_ENABLED     0x400UL
5965	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI3_PFC_WATCHDOG_ENABLED     0x800UL
5966	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI4_PFC_WATCHDOG_ENABLED     0x1000UL
5967	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI5_PFC_WATCHDOG_ENABLED     0x2000UL
5968	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI6_PFC_WATCHDOG_ENABLED     0x4000UL
5969	#define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI7_PFC_WATCHDOG_ENABLED     0x8000UL
5970	u8	unused_0[3];
5971	u8	valid;
5972};
5973
5974/* hwrm_queue_pfcenable_cfg_input (size:192b/24B) */
5975struct hwrm_queue_pfcenable_cfg_input {
5976	__le16	req_type;
5977	__le16	cmpl_ring;
5978	__le16	seq_id;
5979	__le16	target_id;
5980	__le64	resp_addr;
5981	__le32	flags;
5982	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI0_PFC_ENABLED              0x1UL
5983	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI1_PFC_ENABLED              0x2UL
5984	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI2_PFC_ENABLED              0x4UL
5985	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI3_PFC_ENABLED              0x8UL
5986	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI4_PFC_ENABLED              0x10UL
5987	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI5_PFC_ENABLED              0x20UL
5988	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI6_PFC_ENABLED              0x40UL
5989	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI7_PFC_ENABLED              0x80UL
5990	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI0_PFC_WATCHDOG_ENABLED     0x100UL
5991	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI1_PFC_WATCHDOG_ENABLED     0x200UL
5992	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI2_PFC_WATCHDOG_ENABLED     0x400UL
5993	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI3_PFC_WATCHDOG_ENABLED     0x800UL
5994	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI4_PFC_WATCHDOG_ENABLED     0x1000UL
5995	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI5_PFC_WATCHDOG_ENABLED     0x2000UL
5996	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI6_PFC_WATCHDOG_ENABLED     0x4000UL
5997	#define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI7_PFC_WATCHDOG_ENABLED     0x8000UL
5998	__le16	port_id;
5999	u8	unused_0[2];
6000};
6001
6002/* hwrm_queue_pfcenable_cfg_output (size:128b/16B) */
6003struct hwrm_queue_pfcenable_cfg_output {
6004	__le16	error_code;
6005	__le16	req_type;
6006	__le16	seq_id;
6007	__le16	resp_len;
6008	u8	unused_0[7];
6009	u8	valid;
6010};
6011
6012/* hwrm_queue_pri2cos_qcfg_input (size:192b/24B) */
6013struct hwrm_queue_pri2cos_qcfg_input {
6014	__le16	req_type;
6015	__le16	cmpl_ring;
6016	__le16	seq_id;
6017	__le16	target_id;
6018	__le64	resp_addr;
6019	__le32	flags;
6020	#define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH      0x1UL
6021	#define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_TX     0x0UL
6022	#define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_RX     0x1UL
6023	#define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_LAST  QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_RX
6024	#define QUEUE_PRI2COS_QCFG_REQ_FLAGS_IVLAN     0x2UL
6025	u8	port_id;
6026	u8	unused_0[3];
6027};
6028
6029/* hwrm_queue_pri2cos_qcfg_output (size:192b/24B) */
6030struct hwrm_queue_pri2cos_qcfg_output {
6031	__le16	error_code;
6032	__le16	req_type;
6033	__le16	seq_id;
6034	__le16	resp_len;
6035	u8	pri0_cos_queue_id;
6036	u8	pri1_cos_queue_id;
6037	u8	pri2_cos_queue_id;
6038	u8	pri3_cos_queue_id;
6039	u8	pri4_cos_queue_id;
6040	u8	pri5_cos_queue_id;
6041	u8	pri6_cos_queue_id;
6042	u8	pri7_cos_queue_id;
6043	u8	queue_cfg_info;
6044	#define QUEUE_PRI2COS_QCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG     0x1UL
6045	u8	unused_0[6];
6046	u8	valid;
6047};
6048
6049/* hwrm_queue_pri2cos_cfg_input (size:320b/40B) */
6050struct hwrm_queue_pri2cos_cfg_input {
6051	__le16	req_type;
6052	__le16	cmpl_ring;
6053	__le16	seq_id;
6054	__le16	target_id;
6055	__le64	resp_addr;
6056	__le32	flags;
6057	#define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_MASK 0x3UL
6058	#define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_SFT  0
6059	#define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_TX     0x0UL
6060	#define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_RX     0x1UL
6061	#define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_BIDIR  0x2UL
6062	#define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_LAST  QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_BIDIR
6063	#define QUEUE_PRI2COS_CFG_REQ_FLAGS_IVLAN     0x4UL
6064	__le32	enables;
6065	#define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI0_COS_QUEUE_ID     0x1UL
6066	#define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI1_COS_QUEUE_ID     0x2UL
6067	#define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI2_COS_QUEUE_ID     0x4UL
6068	#define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI3_COS_QUEUE_ID     0x8UL
6069	#define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI4_COS_QUEUE_ID     0x10UL
6070	#define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI5_COS_QUEUE_ID     0x20UL
6071	#define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI6_COS_QUEUE_ID     0x40UL
6072	#define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI7_COS_QUEUE_ID     0x80UL
6073	u8	port_id;
6074	u8	pri0_cos_queue_id;
6075	u8	pri1_cos_queue_id;
6076	u8	pri2_cos_queue_id;
6077	u8	pri3_cos_queue_id;
6078	u8	pri4_cos_queue_id;
6079	u8	pri5_cos_queue_id;
6080	u8	pri6_cos_queue_id;
6081	u8	pri7_cos_queue_id;
6082	u8	unused_0[7];
6083};
6084
6085/* hwrm_queue_pri2cos_cfg_output (size:128b/16B) */
6086struct hwrm_queue_pri2cos_cfg_output {
6087	__le16	error_code;
6088	__le16	req_type;
6089	__le16	seq_id;
6090	__le16	resp_len;
6091	u8	unused_0[7];
6092	u8	valid;
6093};
6094
6095/* hwrm_queue_cos2bw_qcfg_input (size:192b/24B) */
6096struct hwrm_queue_cos2bw_qcfg_input {
6097	__le16	req_type;
6098	__le16	cmpl_ring;
6099	__le16	seq_id;
6100	__le16	target_id;
6101	__le64	resp_addr;
6102	__le16	port_id;
6103	u8	unused_0[6];
6104};
6105
6106/* hwrm_queue_cos2bw_qcfg_output (size:896b/112B) */
6107struct hwrm_queue_cos2bw_qcfg_output {
6108	__le16	error_code;
6109	__le16	req_type;
6110	__le16	seq_id;
6111	__le16	resp_len;
6112	u8	queue_id0;
6113	u8	unused_0;
6114	__le16	unused_1;
6115	__le32	queue_id0_min_bw;
6116	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_MASK             0xfffffffUL
6117	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_SFT              0
6118	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE                     0x10000000UL
6119	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BITS                  (0x0UL << 28)
6120	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
6121	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BYTES
6122	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
6123	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_SFT         29
6124	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
6125	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
6126	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
6127	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
6128	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
6129	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
6130	#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
6131	__le32	queue_id0_max_bw;
6132	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_MASK             0xfffffffUL
6133	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_SFT              0
6134	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE                     0x10000000UL
6135	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BITS                  (0x0UL << 28)
6136	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
6137	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BYTES
6138	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
6139	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_SFT         29
6140	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
6141	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
6142	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
6143	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
6144	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
6145	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
6146	#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
6147	u8	queue_id0_tsa_assign;
6148	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_SP             0x0UL
6149	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_ETS            0x1UL
6150	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_RESERVED_FIRST 0x2UL
6151	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_RESERVED_LAST  0xffUL
6152	u8	queue_id0_pri_lvl;
6153	u8	queue_id0_bw_weight;
6154	struct {
6155		u8	queue_id;
6156		__le32	queue_id_min_bw;
6157	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_MASK             0xfffffffUL
6158	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_SFT              0
6159	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_SCALE                     0x10000000UL
6160	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_SCALE_BITS                  (0x0UL << 28)
6161	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
6162	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_SCALE_BYTES
6163	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
6164	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_SFT         29
6165	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
6166	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
6167	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
6168	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
6169	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
6170	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
6171	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_INVALID
6172		__le32	queue_id_max_bw;
6173	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_MASK             0xfffffffUL
6174	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_SFT              0
6175	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_SCALE                     0x10000000UL
6176	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_SCALE_BITS                  (0x0UL << 28)
6177	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
6178	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_SCALE_BYTES
6179	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
6180	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_SFT         29
6181	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
6182	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
6183	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
6184	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
6185	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
6186	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
6187	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_INVALID
6188		u8	queue_id_tsa_assign;
6189	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_TSA_ASSIGN_SP             0x0UL
6190	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_TSA_ASSIGN_ETS            0x1UL
6191	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_TSA_ASSIGN_RESERVED_FIRST 0x2UL
6192	#define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID_TSA_ASSIGN_RESERVED_LAST  0xffUL
6193		u8	queue_id_pri_lvl;
6194		u8	queue_id_bw_weight;
6195	} __packed cfg[7];
6196	u8	unused_2[4];
6197	u8	valid;
6198};
6199
6200/* hwrm_queue_cos2bw_cfg_input (size:1024b/128B) */
6201struct hwrm_queue_cos2bw_cfg_input {
6202	__le16	req_type;
6203	__le16	cmpl_ring;
6204	__le16	seq_id;
6205	__le16	target_id;
6206	__le64	resp_addr;
6207	__le32	flags;
6208	__le32	enables;
6209	#define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID0_VALID     0x1UL
6210	#define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID1_VALID     0x2UL
6211	#define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID2_VALID     0x4UL
6212	#define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID3_VALID     0x8UL
6213	#define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID4_VALID     0x10UL
6214	#define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID5_VALID     0x20UL
6215	#define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID6_VALID     0x40UL
6216	#define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID7_VALID     0x80UL
6217	__le16	port_id;
6218	u8	queue_id0;
6219	u8	unused_0;
6220	__le32	queue_id0_min_bw;
6221	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_MASK             0xfffffffUL
6222	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_SFT              0
6223	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE                     0x10000000UL
6224	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BITS                  (0x0UL << 28)
6225	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
6226	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BYTES
6227	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
6228	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_SFT         29
6229	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
6230	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
6231	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
6232	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
6233	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
6234	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
6235	#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
6236	__le32	queue_id0_max_bw;
6237	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_MASK             0xfffffffUL
6238	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_SFT              0
6239	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE                     0x10000000UL
6240	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BITS                  (0x0UL << 28)
6241	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
6242	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BYTES
6243	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
6244	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_SFT         29
6245	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
6246	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
6247	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
6248	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
6249	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
6250	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
6251	#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
6252	u8	queue_id0_tsa_assign;
6253	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_SP             0x0UL
6254	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_ETS            0x1UL
6255	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_RESERVED_FIRST 0x2UL
6256	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_RESERVED_LAST  0xffUL
6257	u8	queue_id0_pri_lvl;
6258	u8	queue_id0_bw_weight;
6259	struct {
6260		u8	queue_id;
6261		__le32	queue_id_min_bw;
6262	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_MASK             0xfffffffUL
6263	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_SFT              0
6264	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_SCALE                     0x10000000UL
6265	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_SCALE_BITS                  (0x0UL << 28)
6266	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_SCALE_BYTES                 (0x1UL << 28)
6267	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_SCALE_BYTES
6268	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
6269	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_SFT         29
6270	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
6271	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
6272	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
6273	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
6274	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
6275	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
6276	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MIN_BW_BW_VALUE_UNIT_INVALID
6277		__le32	queue_id_max_bw;
6278	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_MASK             0xfffffffUL
6279	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_SFT              0
6280	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_SCALE                     0x10000000UL
6281	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_SCALE_BITS                  (0x0UL << 28)
6282	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
6283	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_SCALE_LAST                 QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_SCALE_BYTES
6284	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
6285	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_SFT         29
6286	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
6287	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
6288	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
6289	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
6290	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
6291	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
6292	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_LAST         QUEUE_COS2BW_CFG_REQ_QUEUE_ID_MAX_BW_BW_VALUE_UNIT_INVALID
6293		u8	queue_id_tsa_assign;
6294	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_TSA_ASSIGN_SP             0x0UL
6295	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_TSA_ASSIGN_ETS            0x1UL
6296	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_TSA_ASSIGN_RESERVED_FIRST 0x2UL
6297	#define QUEUE_COS2BW_CFG_REQ_QUEUE_ID_TSA_ASSIGN_RESERVED_LAST  0xffUL
6298		u8	queue_id_pri_lvl;
6299		u8	queue_id_bw_weight;
6300	} __packed cfg[7];
6301	u8	unused_1[5];
6302};
6303
6304/* hwrm_queue_cos2bw_cfg_output (size:128b/16B) */
6305struct hwrm_queue_cos2bw_cfg_output {
6306	__le16	error_code;
6307	__le16	req_type;
6308	__le16	seq_id;
6309	__le16	resp_len;
6310	u8	unused_0[7];
6311	u8	valid;
6312};
6313
6314/* hwrm_queue_dscp_qcaps_input (size:192b/24B) */
6315struct hwrm_queue_dscp_qcaps_input {
6316	__le16	req_type;
6317	__le16	cmpl_ring;
6318	__le16	seq_id;
6319	__le16	target_id;
6320	__le64	resp_addr;
6321	u8	port_id;
6322	u8	unused_0[7];
6323};
6324
6325/* hwrm_queue_dscp_qcaps_output (size:128b/16B) */
6326struct hwrm_queue_dscp_qcaps_output {
6327	__le16	error_code;
6328	__le16	req_type;
6329	__le16	seq_id;
6330	__le16	resp_len;
6331	u8	num_dscp_bits;
6332	u8	unused_0;
6333	__le16	max_entries;
6334	u8	unused_1[3];
6335	u8	valid;
6336};
6337
6338/* hwrm_queue_dscp2pri_qcfg_input (size:256b/32B) */
6339struct hwrm_queue_dscp2pri_qcfg_input {
6340	__le16	req_type;
6341	__le16	cmpl_ring;
6342	__le16	seq_id;
6343	__le16	target_id;
6344	__le64	resp_addr;
6345	__le64	dest_data_addr;
6346	u8	port_id;
6347	u8	unused_0;
6348	__le16	dest_data_buffer_size;
6349	u8	unused_1[4];
6350};
6351
6352/* hwrm_queue_dscp2pri_qcfg_output (size:128b/16B) */
6353struct hwrm_queue_dscp2pri_qcfg_output {
6354	__le16	error_code;
6355	__le16	req_type;
6356	__le16	seq_id;
6357	__le16	resp_len;
6358	__le16	entry_cnt;
6359	u8	default_pri;
6360	u8	unused_0[4];
6361	u8	valid;
6362};
6363
6364/* hwrm_queue_dscp2pri_cfg_input (size:320b/40B) */
6365struct hwrm_queue_dscp2pri_cfg_input {
6366	__le16	req_type;
6367	__le16	cmpl_ring;
6368	__le16	seq_id;
6369	__le16	target_id;
6370	__le64	resp_addr;
6371	__le64	src_data_addr;
6372	__le32	flags;
6373	#define QUEUE_DSCP2PRI_CFG_REQ_FLAGS_USE_HW_DEFAULT_PRI     0x1UL
6374	__le32	enables;
6375	#define QUEUE_DSCP2PRI_CFG_REQ_ENABLES_DEFAULT_PRI     0x1UL
6376	u8	port_id;
6377	u8	default_pri;
6378	__le16	entry_cnt;
6379	u8	unused_0[4];
6380};
6381
6382/* hwrm_queue_dscp2pri_cfg_output (size:128b/16B) */
6383struct hwrm_queue_dscp2pri_cfg_output {
6384	__le16	error_code;
6385	__le16	req_type;
6386	__le16	seq_id;
6387	__le16	resp_len;
6388	u8	unused_0[7];
6389	u8	valid;
6390};
6391
6392/* hwrm_vnic_alloc_input (size:192b/24B) */
6393struct hwrm_vnic_alloc_input {
6394	__le16	req_type;
6395	__le16	cmpl_ring;
6396	__le16	seq_id;
6397	__le16	target_id;
6398	__le64	resp_addr;
6399	__le32	flags;
6400	#define VNIC_ALLOC_REQ_FLAGS_DEFAULT                  0x1UL
6401	#define VNIC_ALLOC_REQ_FLAGS_VIRTIO_NET_FID_VALID     0x2UL
6402	__le16	virtio_net_fid;
6403	u8	unused_0[2];
6404};
6405
6406/* hwrm_vnic_alloc_output (size:128b/16B) */
6407struct hwrm_vnic_alloc_output {
6408	__le16	error_code;
6409	__le16	req_type;
6410	__le16	seq_id;
6411	__le16	resp_len;
6412	__le32	vnic_id;
6413	u8	unused_0[3];
6414	u8	valid;
6415};
6416
6417/* hwrm_vnic_free_input (size:192b/24B) */
6418struct hwrm_vnic_free_input {
6419	__le16	req_type;
6420	__le16	cmpl_ring;
6421	__le16	seq_id;
6422	__le16	target_id;
6423	__le64	resp_addr;
6424	__le32	vnic_id;
6425	u8	unused_0[4];
6426};
6427
6428/* hwrm_vnic_free_output (size:128b/16B) */
6429struct hwrm_vnic_free_output {
6430	__le16	error_code;
6431	__le16	req_type;
6432	__le16	seq_id;
6433	__le16	resp_len;
6434	u8	unused_0[7];
6435	u8	valid;
6436};
6437
6438/* hwrm_vnic_cfg_input (size:384b/48B) */
6439struct hwrm_vnic_cfg_input {
6440	__le16	req_type;
6441	__le16	cmpl_ring;
6442	__le16	seq_id;
6443	__le16	target_id;
6444	__le64	resp_addr;
6445	__le32	flags;
6446	#define VNIC_CFG_REQ_FLAGS_DEFAULT                              0x1UL
6447	#define VNIC_CFG_REQ_FLAGS_VLAN_STRIP_MODE                      0x2UL
6448	#define VNIC_CFG_REQ_FLAGS_BD_STALL_MODE                        0x4UL
6449	#define VNIC_CFG_REQ_FLAGS_ROCE_DUAL_VNIC_MODE                  0x8UL
6450	#define VNIC_CFG_REQ_FLAGS_ROCE_ONLY_VNIC_MODE                  0x10UL
6451	#define VNIC_CFG_REQ_FLAGS_RSS_DFLT_CR_MODE                     0x20UL
6452	#define VNIC_CFG_REQ_FLAGS_ROCE_MIRRORING_CAPABLE_VNIC_MODE     0x40UL
6453	#define VNIC_CFG_REQ_FLAGS_PORTCOS_MAPPING_MODE                 0x80UL
6454	__le32	enables;
6455	#define VNIC_CFG_REQ_ENABLES_DFLT_RING_GRP            0x1UL
6456	#define VNIC_CFG_REQ_ENABLES_RSS_RULE                 0x2UL
6457	#define VNIC_CFG_REQ_ENABLES_COS_RULE                 0x4UL
6458	#define VNIC_CFG_REQ_ENABLES_LB_RULE                  0x8UL
6459	#define VNIC_CFG_REQ_ENABLES_MRU                      0x10UL
6460	#define VNIC_CFG_REQ_ENABLES_DEFAULT_RX_RING_ID       0x20UL
6461	#define VNIC_CFG_REQ_ENABLES_DEFAULT_CMPL_RING_ID     0x40UL
6462	#define VNIC_CFG_REQ_ENABLES_QUEUE_ID                 0x80UL
6463	#define VNIC_CFG_REQ_ENABLES_RX_CSUM_V2_MODE          0x100UL
6464	#define VNIC_CFG_REQ_ENABLES_L2_CQE_MODE              0x200UL
6465	__le16	vnic_id;
6466	__le16	dflt_ring_grp;
6467	__le16	rss_rule;
6468	__le16	cos_rule;
6469	__le16	lb_rule;
6470	__le16	mru;
6471	__le16	default_rx_ring_id;
6472	__le16	default_cmpl_ring_id;
6473	__le16	queue_id;
6474	u8	rx_csum_v2_mode;
6475	#define VNIC_CFG_REQ_RX_CSUM_V2_MODE_DEFAULT 0x0UL
6476	#define VNIC_CFG_REQ_RX_CSUM_V2_MODE_ALL_OK  0x1UL
6477	#define VNIC_CFG_REQ_RX_CSUM_V2_MODE_MAX     0x2UL
6478	#define VNIC_CFG_REQ_RX_CSUM_V2_MODE_LAST   VNIC_CFG_REQ_RX_CSUM_V2_MODE_MAX
6479	u8	l2_cqe_mode;
6480	#define VNIC_CFG_REQ_L2_CQE_MODE_DEFAULT    0x0UL
6481	#define VNIC_CFG_REQ_L2_CQE_MODE_COMPRESSED 0x1UL
6482	#define VNIC_CFG_REQ_L2_CQE_MODE_MIXED      0x2UL
6483	#define VNIC_CFG_REQ_L2_CQE_MODE_LAST      VNIC_CFG_REQ_L2_CQE_MODE_MIXED
6484	u8	unused0[4];
6485};
6486
6487/* hwrm_vnic_cfg_output (size:128b/16B) */
6488struct hwrm_vnic_cfg_output {
6489	__le16	error_code;
6490	__le16	req_type;
6491	__le16	seq_id;
6492	__le16	resp_len;
6493	u8	unused_0[7];
6494	u8	valid;
6495};
6496
6497/* hwrm_vnic_qcaps_input (size:192b/24B) */
6498struct hwrm_vnic_qcaps_input {
6499	__le16	req_type;
6500	__le16	cmpl_ring;
6501	__le16	seq_id;
6502	__le16	target_id;
6503	__le64	resp_addr;
6504	__le32	enables;
6505	u8	unused_0[4];
6506};
6507
6508/* hwrm_vnic_qcaps_output (size:192b/24B) */
6509struct hwrm_vnic_qcaps_output {
6510	__le16	error_code;
6511	__le16	req_type;
6512	__le16	seq_id;
6513	__le16	resp_len;
6514	__le16	mru;
6515	u8	unused_0[2];
6516	__le32	flags;
6517	#define VNIC_QCAPS_RESP_FLAGS_UNUSED                                  0x1UL
6518	#define VNIC_QCAPS_RESP_FLAGS_VLAN_STRIP_CAP                          0x2UL
6519	#define VNIC_QCAPS_RESP_FLAGS_BD_STALL_CAP                            0x4UL
6520	#define VNIC_QCAPS_RESP_FLAGS_ROCE_DUAL_VNIC_CAP                      0x8UL
6521	#define VNIC_QCAPS_RESP_FLAGS_ROCE_ONLY_VNIC_CAP                      0x10UL
6522	#define VNIC_QCAPS_RESP_FLAGS_RSS_DFLT_CR_CAP                         0x20UL
6523	#define VNIC_QCAPS_RESP_FLAGS_ROCE_MIRRORING_CAPABLE_VNIC_CAP         0x40UL
6524	#define VNIC_QCAPS_RESP_FLAGS_OUTERMOST_RSS_CAP                       0x80UL
6525	#define VNIC_QCAPS_RESP_FLAGS_COS_ASSIGNMENT_CAP                      0x100UL
6526	#define VNIC_QCAPS_RESP_FLAGS_RX_CMPL_V2_CAP                          0x200UL
6527	#define VNIC_QCAPS_RESP_FLAGS_VNIC_STATE_CAP                          0x400UL
6528	#define VNIC_QCAPS_RESP_FLAGS_VIRTIO_NET_VNIC_ALLOC_CAP               0x800UL
6529	#define VNIC_QCAPS_RESP_FLAGS_METADATA_FORMAT_CAP                     0x1000UL
6530	#define VNIC_QCAPS_RESP_FLAGS_RSS_STRICT_HASH_TYPE_CAP                0x2000UL
6531	#define VNIC_QCAPS_RESP_FLAGS_RSS_HASH_TYPE_DELTA_CAP                 0x4000UL
6532	#define VNIC_QCAPS_RESP_FLAGS_RING_SELECT_MODE_TOEPLITZ_CAP           0x8000UL
6533	#define VNIC_QCAPS_RESP_FLAGS_RING_SELECT_MODE_XOR_CAP                0x10000UL
6534	#define VNIC_QCAPS_RESP_FLAGS_RING_SELECT_MODE_TOEPLITZ_CHKSM_CAP     0x20000UL
6535	#define VNIC_QCAPS_RESP_FLAGS_RSS_IPV6_FLOW_LABEL_CAP                 0x40000UL
6536	#define VNIC_QCAPS_RESP_FLAGS_RX_CMPL_V3_CAP                          0x80000UL
6537	#define VNIC_QCAPS_RESP_FLAGS_L2_CQE_MODE_CAP                         0x100000UL
6538	#define VNIC_QCAPS_RESP_FLAGS_RSS_IPSEC_AH_SPI_IPV4_CAP               0x200000UL
6539	#define VNIC_QCAPS_RESP_FLAGS_RSS_IPSEC_ESP_SPI_IPV4_CAP              0x400000UL
6540	#define VNIC_QCAPS_RESP_FLAGS_RSS_IPSEC_AH_SPI_IPV6_CAP               0x800000UL
6541	#define VNIC_QCAPS_RESP_FLAGS_RSS_IPSEC_ESP_SPI_IPV6_CAP              0x1000000UL
6542	#define VNIC_QCAPS_RESP_FLAGS_OUTERMOST_RSS_TRUSTED_VF_CAP            0x2000000UL
6543	#define VNIC_QCAPS_RESP_FLAGS_PORTCOS_MAPPING_MODE                    0x4000000UL
6544	#define VNIC_QCAPS_RESP_FLAGS_RSS_PROF_TCAM_MODE_ENABLED              0x8000000UL
6545	#define VNIC_QCAPS_RESP_FLAGS_VNIC_RSS_HASH_MODE_CAP                  0x10000000UL
6546	#define VNIC_QCAPS_RESP_FLAGS_HW_TUNNEL_TPA_CAP                       0x20000000UL
6547	__le16	max_aggs_supported;
6548	u8	unused_1[5];
6549	u8	valid;
6550};
6551
6552/* hwrm_vnic_tpa_cfg_input (size:384b/48B) */
6553struct hwrm_vnic_tpa_cfg_input {
6554	__le16	req_type;
6555	__le16	cmpl_ring;
6556	__le16	seq_id;
6557	__le16	target_id;
6558	__le64	resp_addr;
6559	__le32	flags;
6560	#define VNIC_TPA_CFG_REQ_FLAGS_TPA                       0x1UL
6561	#define VNIC_TPA_CFG_REQ_FLAGS_ENCAP_TPA                 0x2UL
6562	#define VNIC_TPA_CFG_REQ_FLAGS_RSC_WND_UPDATE            0x4UL
6563	#define VNIC_TPA_CFG_REQ_FLAGS_GRO                       0x8UL
6564	#define VNIC_TPA_CFG_REQ_FLAGS_AGG_WITH_ECN              0x10UL
6565	#define VNIC_TPA_CFG_REQ_FLAGS_AGG_WITH_SAME_GRE_SEQ     0x20UL
6566	#define VNIC_TPA_CFG_REQ_FLAGS_GRO_IPID_CHECK            0x40UL
6567	#define VNIC_TPA_CFG_REQ_FLAGS_GRO_TTL_CHECK             0x80UL
6568	#define VNIC_TPA_CFG_REQ_FLAGS_AGG_PACK_AS_GRO           0x100UL
6569	__le32	enables;
6570	#define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGG_SEGS      0x1UL
6571	#define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGGS          0x2UL
6572	#define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGG_TIMER     0x4UL
6573	#define VNIC_TPA_CFG_REQ_ENABLES_MIN_AGG_LEN       0x8UL
6574	#define VNIC_TPA_CFG_REQ_ENABLES_TNL_TPA_EN        0x10UL
6575	__le16	vnic_id;
6576	__le16	max_agg_segs;
6577	#define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_1   0x0UL
6578	#define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_2   0x1UL
6579	#define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_4   0x2UL
6580	#define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_8   0x3UL
6581	#define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_MAX 0x1fUL
6582	#define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_LAST VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_MAX
6583	__le16	max_aggs;
6584	#define VNIC_TPA_CFG_REQ_MAX_AGGS_1   0x0UL
6585	#define VNIC_TPA_CFG_REQ_MAX_AGGS_2   0x1UL
6586	#define VNIC_TPA_CFG_REQ_MAX_AGGS_4   0x2UL
6587	#define VNIC_TPA_CFG_REQ_MAX_AGGS_8   0x3UL
6588	#define VNIC_TPA_CFG_REQ_MAX_AGGS_16  0x4UL
6589	#define VNIC_TPA_CFG_REQ_MAX_AGGS_MAX 0x7UL
6590	#define VNIC_TPA_CFG_REQ_MAX_AGGS_LAST VNIC_TPA_CFG_REQ_MAX_AGGS_MAX
6591	u8	unused_0[2];
6592	__le32	max_agg_timer;
6593	__le32	min_agg_len;
6594	__le32	tnl_tpa_en_bitmap;
6595	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_VXLAN           0x1UL
6596	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_GENEVE          0x2UL
6597	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_NVGRE           0x4UL
6598	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_GRE             0x8UL
6599	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_IPV4            0x10UL
6600	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_IPV6            0x20UL
6601	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_VXLAN_GPE       0x40UL
6602	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_VXLAN_CUST1     0x80UL
6603	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_GRE_CUST1       0x100UL
6604	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_UPAR1           0x200UL
6605	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_UPAR2           0x400UL
6606	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_UPAR3           0x800UL
6607	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_UPAR4           0x1000UL
6608	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_UPAR5           0x2000UL
6609	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_UPAR6           0x4000UL
6610	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_UPAR7           0x8000UL
6611	#define VNIC_TPA_CFG_REQ_TNL_TPA_EN_BITMAP_UPAR8           0x10000UL
6612	u8	unused_1[4];
6613};
6614
6615/* hwrm_vnic_tpa_cfg_output (size:128b/16B) */
6616struct hwrm_vnic_tpa_cfg_output {
6617	__le16	error_code;
6618	__le16	req_type;
6619	__le16	seq_id;
6620	__le16	resp_len;
6621	u8	unused_0[7];
6622	u8	valid;
6623};
6624
6625/* hwrm_vnic_tpa_qcfg_input (size:192b/24B) */
6626struct hwrm_vnic_tpa_qcfg_input {
6627	__le16	req_type;
6628	__le16	cmpl_ring;
6629	__le16	seq_id;
6630	__le16	target_id;
6631	__le64	resp_addr;
6632	__le16	vnic_id;
6633	u8	unused_0[6];
6634};
6635
6636/* hwrm_vnic_tpa_qcfg_output (size:256b/32B) */
6637struct hwrm_vnic_tpa_qcfg_output {
6638	__le16	error_code;
6639	__le16	req_type;
6640	__le16	seq_id;
6641	__le16	resp_len;
6642	__le32	flags;
6643	#define VNIC_TPA_QCFG_RESP_FLAGS_TPA                       0x1UL
6644	#define VNIC_TPA_QCFG_RESP_FLAGS_ENCAP_TPA                 0x2UL
6645	#define VNIC_TPA_QCFG_RESP_FLAGS_RSC_WND_UPDATE            0x4UL
6646	#define VNIC_TPA_QCFG_RESP_FLAGS_GRO                       0x8UL
6647	#define VNIC_TPA_QCFG_RESP_FLAGS_AGG_WITH_ECN              0x10UL
6648	#define VNIC_TPA_QCFG_RESP_FLAGS_AGG_WITH_SAME_GRE_SEQ     0x20UL
6649	#define VNIC_TPA_QCFG_RESP_FLAGS_GRO_IPID_CHECK            0x40UL
6650	#define VNIC_TPA_QCFG_RESP_FLAGS_GRO_TTL_CHECK             0x80UL
6651	__le16	max_agg_segs;
6652	#define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_1   0x0UL
6653	#define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_2   0x1UL
6654	#define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_4   0x2UL
6655	#define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_8   0x3UL
6656	#define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_MAX 0x1fUL
6657	#define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_LAST VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_MAX
6658	__le16	max_aggs;
6659	#define VNIC_TPA_QCFG_RESP_MAX_AGGS_1   0x0UL
6660	#define VNIC_TPA_QCFG_RESP_MAX_AGGS_2   0x1UL
6661	#define VNIC_TPA_QCFG_RESP_MAX_AGGS_4   0x2UL
6662	#define VNIC_TPA_QCFG_RESP_MAX_AGGS_8   0x3UL
6663	#define VNIC_TPA_QCFG_RESP_MAX_AGGS_16  0x4UL
6664	#define VNIC_TPA_QCFG_RESP_MAX_AGGS_MAX 0x7UL
6665	#define VNIC_TPA_QCFG_RESP_MAX_AGGS_LAST VNIC_TPA_QCFG_RESP_MAX_AGGS_MAX
6666	__le32	max_agg_timer;
6667	__le32	min_agg_len;
6668	__le32	tnl_tpa_en_bitmap;
6669	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_VXLAN           0x1UL
6670	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_GENEVE          0x2UL
6671	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_NVGRE           0x4UL
6672	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_GRE             0x8UL
6673	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_IPV4            0x10UL
6674	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_IPV6            0x20UL
6675	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_VXLAN_GPE       0x40UL
6676	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_VXLAN_CUST1     0x80UL
6677	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_GRE_CUST1       0x100UL
6678	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_UPAR1           0x200UL
6679	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_UPAR2           0x400UL
6680	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_UPAR3           0x800UL
6681	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_UPAR4           0x1000UL
6682	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_UPAR5           0x2000UL
6683	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_UPAR6           0x4000UL
6684	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_UPAR7           0x8000UL
6685	#define VNIC_TPA_QCFG_RESP_TNL_TPA_EN_BITMAP_UPAR8           0x10000UL
6686	u8	unused_0[3];
6687	u8	valid;
6688};
6689
6690/* hwrm_vnic_rss_cfg_input (size:384b/48B) */
6691struct hwrm_vnic_rss_cfg_input {
6692	__le16	req_type;
6693	__le16	cmpl_ring;
6694	__le16	seq_id;
6695	__le16	target_id;
6696	__le64	resp_addr;
6697	__le32	hash_type;
6698	#define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV4                0x1UL
6699	#define VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV4            0x2UL
6700	#define VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV4            0x4UL
6701	#define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV6                0x8UL
6702	#define VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV6            0x10UL
6703	#define VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV6            0x20UL
6704	#define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV6_FLOW_LABEL     0x40UL
6705	#define VNIC_RSS_CFG_REQ_HASH_TYPE_AH_SPI_IPV4         0x80UL
6706	#define VNIC_RSS_CFG_REQ_HASH_TYPE_ESP_SPI_IPV4        0x100UL
6707	#define VNIC_RSS_CFG_REQ_HASH_TYPE_AH_SPI_IPV6         0x200UL
6708	#define VNIC_RSS_CFG_REQ_HASH_TYPE_ESP_SPI_IPV6        0x400UL
6709	__le16	vnic_id;
6710	u8	ring_table_pair_index;
6711	u8	hash_mode_flags;
6712	#define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_DEFAULT         0x1UL
6713	#define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_INNERMOST_4     0x2UL
6714	#define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_INNERMOST_2     0x4UL
6715	#define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_OUTERMOST_4     0x8UL
6716	#define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_OUTERMOST_2     0x10UL
6717	__le64	ring_grp_tbl_addr;
6718	__le64	hash_key_tbl_addr;
6719	__le16	rss_ctx_idx;
6720	u8	flags;
6721	#define VNIC_RSS_CFG_REQ_FLAGS_HASH_TYPE_INCLUDE               0x1UL
6722	#define VNIC_RSS_CFG_REQ_FLAGS_HASH_TYPE_EXCLUDE               0x2UL
6723	#define VNIC_RSS_CFG_REQ_FLAGS_IPSEC_HASH_TYPE_CFG_SUPPORT     0x4UL
6724	u8	ring_select_mode;
6725	#define VNIC_RSS_CFG_REQ_RING_SELECT_MODE_TOEPLITZ          0x0UL
6726	#define VNIC_RSS_CFG_REQ_RING_SELECT_MODE_XOR               0x1UL
6727	#define VNIC_RSS_CFG_REQ_RING_SELECT_MODE_TOEPLITZ_CHECKSUM 0x2UL
6728	#define VNIC_RSS_CFG_REQ_RING_SELECT_MODE_LAST             VNIC_RSS_CFG_REQ_RING_SELECT_MODE_TOEPLITZ_CHECKSUM
6729	u8	unused_1[4];
6730};
6731
6732/* hwrm_vnic_rss_cfg_output (size:128b/16B) */
6733struct hwrm_vnic_rss_cfg_output {
6734	__le16	error_code;
6735	__le16	req_type;
6736	__le16	seq_id;
6737	__le16	resp_len;
6738	u8	unused_0[7];
6739	u8	valid;
6740};
6741
6742/* hwrm_vnic_rss_cfg_cmd_err (size:64b/8B) */
6743struct hwrm_vnic_rss_cfg_cmd_err {
6744	u8	code;
6745	#define VNIC_RSS_CFG_CMD_ERR_CODE_UNKNOWN             0x0UL
6746	#define VNIC_RSS_CFG_CMD_ERR_CODE_INTERFACE_NOT_READY 0x1UL
6747	#define VNIC_RSS_CFG_CMD_ERR_CODE_LAST               VNIC_RSS_CFG_CMD_ERR_CODE_INTERFACE_NOT_READY
6748	u8	unused_0[7];
6749};
6750
6751/* hwrm_vnic_rss_qcfg_input (size:192b/24B) */
6752struct hwrm_vnic_rss_qcfg_input {
6753	__le16	req_type;
6754	__le16	cmpl_ring;
6755	__le16	seq_id;
6756	__le16	target_id;
6757	__le64	resp_addr;
6758	__le16	rss_ctx_idx;
6759	__le16	vnic_id;
6760	u8	unused_0[4];
6761};
6762
6763/* hwrm_vnic_rss_qcfg_output (size:512b/64B) */
6764struct hwrm_vnic_rss_qcfg_output {
6765	__le16	error_code;
6766	__le16	req_type;
6767	__le16	seq_id;
6768	__le16	resp_len;
6769	__le32	hash_type;
6770	#define VNIC_RSS_QCFG_RESP_HASH_TYPE_IPV4                0x1UL
6771	#define VNIC_RSS_QCFG_RESP_HASH_TYPE_TCP_IPV4            0x2UL
6772	#define VNIC_RSS_QCFG_RESP_HASH_TYPE_UDP_IPV4            0x4UL
6773	#define VNIC_RSS_QCFG_RESP_HASH_TYPE_IPV6                0x8UL
6774	#define VNIC_RSS_QCFG_RESP_HASH_TYPE_TCP_IPV6            0x10UL
6775	#define VNIC_RSS_QCFG_RESP_HASH_TYPE_UDP_IPV6            0x20UL
6776	#define VNIC_RSS_QCFG_RESP_HASH_TYPE_IPV6_FLOW_LABEL     0x40UL
6777	#define VNIC_RSS_QCFG_RESP_HASH_TYPE_AH_SPI_IPV4         0x80UL
6778	#define VNIC_RSS_QCFG_RESP_HASH_TYPE_ESP_SPI_IPV4        0x100UL
6779	#define VNIC_RSS_QCFG_RESP_HASH_TYPE_AH_SPI_IPV6         0x200UL
6780	#define VNIC_RSS_QCFG_RESP_HASH_TYPE_ESP_SPI_IPV6        0x400UL
6781	u8	unused_0[4];
6782	__le32	hash_key[10];
6783	u8	hash_mode_flags;
6784	#define VNIC_RSS_QCFG_RESP_HASH_MODE_FLAGS_DEFAULT         0x1UL
6785	#define VNIC_RSS_QCFG_RESP_HASH_MODE_FLAGS_INNERMOST_4     0x2UL
6786	#define VNIC_RSS_QCFG_RESP_HASH_MODE_FLAGS_INNERMOST_2     0x4UL
6787	#define VNIC_RSS_QCFG_RESP_HASH_MODE_FLAGS_OUTERMOST_4     0x8UL
6788	#define VNIC_RSS_QCFG_RESP_HASH_MODE_FLAGS_OUTERMOST_2     0x10UL
6789	u8	ring_select_mode;
6790	#define VNIC_RSS_QCFG_RESP_RING_SELECT_MODE_TOEPLITZ          0x0UL
6791	#define VNIC_RSS_QCFG_RESP_RING_SELECT_MODE_XOR               0x1UL
6792	#define VNIC_RSS_QCFG_RESP_RING_SELECT_MODE_TOEPLITZ_CHECKSUM 0x2UL
6793	#define VNIC_RSS_QCFG_RESP_RING_SELECT_MODE_LAST             VNIC_RSS_QCFG_RESP_RING_SELECT_MODE_TOEPLITZ_CHECKSUM
6794	u8	unused_1[5];
6795	u8	valid;
6796};
6797
6798/* hwrm_vnic_plcmodes_cfg_input (size:320b/40B) */
6799struct hwrm_vnic_plcmodes_cfg_input {
6800	__le16	req_type;
6801	__le16	cmpl_ring;
6802	__le16	seq_id;
6803	__le16	target_id;
6804	__le64	resp_addr;
6805	__le32	flags;
6806	#define VNIC_PLCMODES_CFG_REQ_FLAGS_REGULAR_PLACEMENT     0x1UL
6807	#define VNIC_PLCMODES_CFG_REQ_FLAGS_JUMBO_PLACEMENT       0x2UL
6808	#define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV4              0x4UL
6809	#define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV6              0x8UL
6810	#define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_FCOE              0x10UL
6811	#define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_ROCE              0x20UL
6812	#define VNIC_PLCMODES_CFG_REQ_FLAGS_VIRTIO_PLACEMENT      0x40UL
6813	__le32	enables;
6814	#define VNIC_PLCMODES_CFG_REQ_ENABLES_JUMBO_THRESH_VALID      0x1UL
6815	#define VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_OFFSET_VALID        0x2UL
6816	#define VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_THRESHOLD_VALID     0x4UL
6817	#define VNIC_PLCMODES_CFG_REQ_ENABLES_MAX_BDS_VALID           0x8UL
6818	__le32	vnic_id;
6819	__le16	jumbo_thresh;
6820	__le16	hds_offset;
6821	__le16	hds_threshold;
6822	__le16	max_bds;
6823	u8	unused_0[4];
6824};
6825
6826/* hwrm_vnic_plcmodes_cfg_output (size:128b/16B) */
6827struct hwrm_vnic_plcmodes_cfg_output {
6828	__le16	error_code;
6829	__le16	req_type;
6830	__le16	seq_id;
6831	__le16	resp_len;
6832	u8	unused_0[7];
6833	u8	valid;
6834};
6835
6836/* hwrm_vnic_rss_cos_lb_ctx_alloc_input (size:128b/16B) */
6837struct hwrm_vnic_rss_cos_lb_ctx_alloc_input {
6838	__le16	req_type;
6839	__le16	cmpl_ring;
6840	__le16	seq_id;
6841	__le16	target_id;
6842	__le64	resp_addr;
6843};
6844
6845/* hwrm_vnic_rss_cos_lb_ctx_alloc_output (size:128b/16B) */
6846struct hwrm_vnic_rss_cos_lb_ctx_alloc_output {
6847	__le16	error_code;
6848	__le16	req_type;
6849	__le16	seq_id;
6850	__le16	resp_len;
6851	__le16	rss_cos_lb_ctx_id;
6852	u8	unused_0[5];
6853	u8	valid;
6854};
6855
6856/* hwrm_vnic_rss_cos_lb_ctx_free_input (size:192b/24B) */
6857struct hwrm_vnic_rss_cos_lb_ctx_free_input {
6858	__le16	req_type;
6859	__le16	cmpl_ring;
6860	__le16	seq_id;
6861	__le16	target_id;
6862	__le64	resp_addr;
6863	__le16	rss_cos_lb_ctx_id;
6864	u8	unused_0[6];
6865};
6866
6867/* hwrm_vnic_rss_cos_lb_ctx_free_output (size:128b/16B) */
6868struct hwrm_vnic_rss_cos_lb_ctx_free_output {
6869	__le16	error_code;
6870	__le16	req_type;
6871	__le16	seq_id;
6872	__le16	resp_len;
6873	u8	unused_0[7];
6874	u8	valid;
6875};
6876
6877/* hwrm_ring_alloc_input (size:704b/88B) */
6878struct hwrm_ring_alloc_input {
6879	__le16	req_type;
6880	__le16	cmpl_ring;
6881	__le16	seq_id;
6882	__le16	target_id;
6883	__le64	resp_addr;
6884	__le32	enables;
6885	#define RING_ALLOC_REQ_ENABLES_RING_ARB_CFG           0x2UL
6886	#define RING_ALLOC_REQ_ENABLES_STAT_CTX_ID_VALID      0x8UL
6887	#define RING_ALLOC_REQ_ENABLES_MAX_BW_VALID           0x20UL
6888	#define RING_ALLOC_REQ_ENABLES_RX_RING_ID_VALID       0x40UL
6889	#define RING_ALLOC_REQ_ENABLES_NQ_RING_ID_VALID       0x80UL
6890	#define RING_ALLOC_REQ_ENABLES_RX_BUF_SIZE_VALID      0x100UL
6891	#define RING_ALLOC_REQ_ENABLES_SCHQ_ID                0x200UL
6892	#define RING_ALLOC_REQ_ENABLES_MPC_CHNLS_TYPE         0x400UL
6893	#define RING_ALLOC_REQ_ENABLES_STEERING_TAG_VALID     0x800UL
6894	u8	ring_type;
6895	#define RING_ALLOC_REQ_RING_TYPE_L2_CMPL   0x0UL
6896	#define RING_ALLOC_REQ_RING_TYPE_TX        0x1UL
6897	#define RING_ALLOC_REQ_RING_TYPE_RX        0x2UL
6898	#define RING_ALLOC_REQ_RING_TYPE_ROCE_CMPL 0x3UL
6899	#define RING_ALLOC_REQ_RING_TYPE_RX_AGG    0x4UL
6900	#define RING_ALLOC_REQ_RING_TYPE_NQ        0x5UL
6901	#define RING_ALLOC_REQ_RING_TYPE_LAST     RING_ALLOC_REQ_RING_TYPE_NQ
6902	u8	cmpl_coal_cnt;
6903	#define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_OFF 0x0UL
6904	#define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_4   0x1UL
6905	#define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_8   0x2UL
6906	#define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_12  0x3UL
6907	#define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_16  0x4UL
6908	#define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_24  0x5UL
6909	#define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_32  0x6UL
6910	#define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_48  0x7UL
6911	#define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_64  0x8UL
6912	#define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_96  0x9UL
6913	#define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_128 0xaUL
6914	#define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_192 0xbUL
6915	#define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_256 0xcUL
6916	#define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_320 0xdUL
6917	#define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_384 0xeUL
6918	#define RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_MAX 0xfUL
6919	#define RING_ALLOC_REQ_CMPL_COAL_CNT_LAST    RING_ALLOC_REQ_CMPL_COAL_CNT_COAL_MAX
6920	__le16	flags;
6921	#define RING_ALLOC_REQ_FLAGS_RX_SOP_PAD                        0x1UL
6922	#define RING_ALLOC_REQ_FLAGS_DISABLE_CQ_OVERFLOW_DETECTION     0x2UL
6923	#define RING_ALLOC_REQ_FLAGS_NQ_DBR_PACING                     0x4UL
6924	#define RING_ALLOC_REQ_FLAGS_TX_PKT_TS_CMPL_ENABLE             0x8UL
6925	__le64	page_tbl_addr;
6926	__le32	fbo;
6927	u8	page_size;
6928	u8	page_tbl_depth;
6929	__le16	schq_id;
6930	__le32	length;
6931	__le16	logical_id;
6932	__le16	cmpl_ring_id;
6933	__le16	queue_id;
6934	__le16	rx_buf_size;
6935	__le16	rx_ring_id;
6936	__le16	nq_ring_id;
6937	__le16	ring_arb_cfg;
6938	#define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_MASK      0xfUL
6939	#define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_SFT       0
6940	#define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_SP          0x1UL
6941	#define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_WFQ         0x2UL
6942	#define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_LAST       RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_WFQ
6943	#define RING_ALLOC_REQ_RING_ARB_CFG_RSVD_MASK            0xf0UL
6944	#define RING_ALLOC_REQ_RING_ARB_CFG_RSVD_SFT             4
6945	#define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_PARAM_MASK 0xff00UL
6946	#define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_PARAM_SFT 8
6947	__le16	steering_tag;
6948	__le32	reserved3;
6949	__le32	stat_ctx_id;
6950	__le32	reserved4;
6951	__le32	max_bw;
6952	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_MASK             0xfffffffUL
6953	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_SFT              0
6954	#define RING_ALLOC_REQ_MAX_BW_SCALE                     0x10000000UL
6955	#define RING_ALLOC_REQ_MAX_BW_SCALE_BITS                  (0x0UL << 28)
6956	#define RING_ALLOC_REQ_MAX_BW_SCALE_BYTES                 (0x1UL << 28)
6957	#define RING_ALLOC_REQ_MAX_BW_SCALE_LAST                 RING_ALLOC_REQ_MAX_BW_SCALE_BYTES
6958	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_MASK        0xe0000000UL
6959	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_SFT         29
6960	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_MEGA          (0x0UL << 29)
6961	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_KILO          (0x2UL << 29)
6962	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_BASE          (0x4UL << 29)
6963	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_GIGA          (0x6UL << 29)
6964	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_PERCENT1_100  (0x1UL << 29)
6965	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_INVALID       (0x7UL << 29)
6966	#define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_LAST         RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_INVALID
6967	u8	int_mode;
6968	#define RING_ALLOC_REQ_INT_MODE_LEGACY 0x0UL
6969	#define RING_ALLOC_REQ_INT_MODE_RSVD   0x1UL
6970	#define RING_ALLOC_REQ_INT_MODE_MSIX   0x2UL
6971	#define RING_ALLOC_REQ_INT_MODE_POLL   0x3UL
6972	#define RING_ALLOC_REQ_INT_MODE_LAST  RING_ALLOC_REQ_INT_MODE_POLL
6973	u8	mpc_chnls_type;
6974	#define RING_ALLOC_REQ_MPC_CHNLS_TYPE_TCE     0x0UL
6975	#define RING_ALLOC_REQ_MPC_CHNLS_TYPE_RCE     0x1UL
6976	#define RING_ALLOC_REQ_MPC_CHNLS_TYPE_TE_CFA  0x2UL
6977	#define RING_ALLOC_REQ_MPC_CHNLS_TYPE_RE_CFA  0x3UL
6978	#define RING_ALLOC_REQ_MPC_CHNLS_TYPE_PRIMATE 0x4UL
6979	#define RING_ALLOC_REQ_MPC_CHNLS_TYPE_LAST   RING_ALLOC_REQ_MPC_CHNLS_TYPE_PRIMATE
6980	u8	unused_4[2];
6981	__le64	cq_handle;
6982};
6983
6984/* hwrm_ring_alloc_output (size:128b/16B) */
6985struct hwrm_ring_alloc_output {
6986	__le16	error_code;
6987	__le16	req_type;
6988	__le16	seq_id;
6989	__le16	resp_len;
6990	__le16	ring_id;
6991	__le16	logical_ring_id;
6992	u8	push_buffer_index;
6993	#define RING_ALLOC_RESP_PUSH_BUFFER_INDEX_PING_BUFFER 0x0UL
6994	#define RING_ALLOC_RESP_PUSH_BUFFER_INDEX_PONG_BUFFER 0x1UL
6995	#define RING_ALLOC_RESP_PUSH_BUFFER_INDEX_LAST       RING_ALLOC_RESP_PUSH_BUFFER_INDEX_PONG_BUFFER
6996	u8	unused_0[2];
6997	u8	valid;
6998};
6999
7000/* hwrm_ring_free_input (size:256b/32B) */
7001struct hwrm_ring_free_input {
7002	__le16	req_type;
7003	__le16	cmpl_ring;
7004	__le16	seq_id;
7005	__le16	target_id;
7006	__le64	resp_addr;
7007	u8	ring_type;
7008	#define RING_FREE_REQ_RING_TYPE_L2_CMPL   0x0UL
7009	#define RING_FREE_REQ_RING_TYPE_TX        0x1UL
7010	#define RING_FREE_REQ_RING_TYPE_RX        0x2UL
7011	#define RING_FREE_REQ_RING_TYPE_ROCE_CMPL 0x3UL
7012	#define RING_FREE_REQ_RING_TYPE_RX_AGG    0x4UL
7013	#define RING_FREE_REQ_RING_TYPE_NQ        0x5UL
7014	#define RING_FREE_REQ_RING_TYPE_LAST     RING_FREE_REQ_RING_TYPE_NQ
7015	u8	flags;
7016	#define RING_FREE_REQ_FLAGS_VIRTIO_RING_VALID 0x1UL
7017	#define RING_FREE_REQ_FLAGS_LAST             RING_FREE_REQ_FLAGS_VIRTIO_RING_VALID
7018	__le16	ring_id;
7019	__le32	prod_idx;
7020	__le32	opaque;
7021	__le32	unused_1;
7022};
7023
7024/* hwrm_ring_free_output (size:128b/16B) */
7025struct hwrm_ring_free_output {
7026	__le16	error_code;
7027	__le16	req_type;
7028	__le16	seq_id;
7029	__le16	resp_len;
7030	u8	unused_0[7];
7031	u8	valid;
7032};
7033
7034/* hwrm_ring_reset_input (size:192b/24B) */
7035struct hwrm_ring_reset_input {
7036	__le16	req_type;
7037	__le16	cmpl_ring;
7038	__le16	seq_id;
7039	__le16	target_id;
7040	__le64	resp_addr;
7041	u8	ring_type;
7042	#define RING_RESET_REQ_RING_TYPE_L2_CMPL     0x0UL
7043	#define RING_RESET_REQ_RING_TYPE_TX          0x1UL
7044	#define RING_RESET_REQ_RING_TYPE_RX          0x2UL
7045	#define RING_RESET_REQ_RING_TYPE_ROCE_CMPL   0x3UL
7046	#define RING_RESET_REQ_RING_TYPE_RX_RING_GRP 0x6UL
7047	#define RING_RESET_REQ_RING_TYPE_LAST       RING_RESET_REQ_RING_TYPE_RX_RING_GRP
7048	u8	unused_0;
7049	__le16	ring_id;
7050	u8	unused_1[4];
7051};
7052
7053/* hwrm_ring_reset_output (size:128b/16B) */
7054struct hwrm_ring_reset_output {
7055	__le16	error_code;
7056	__le16	req_type;
7057	__le16	seq_id;
7058	__le16	resp_len;
7059	u8	push_buffer_index;
7060	#define RING_RESET_RESP_PUSH_BUFFER_INDEX_PING_BUFFER 0x0UL
7061	#define RING_RESET_RESP_PUSH_BUFFER_INDEX_PONG_BUFFER 0x1UL
7062	#define RING_RESET_RESP_PUSH_BUFFER_INDEX_LAST       RING_RESET_RESP_PUSH_BUFFER_INDEX_PONG_BUFFER
7063	u8	unused_0[3];
7064	u8	consumer_idx[3];
7065	u8	valid;
7066};
7067
7068/* hwrm_ring_aggint_qcaps_input (size:128b/16B) */
7069struct hwrm_ring_aggint_qcaps_input {
7070	__le16	req_type;
7071	__le16	cmpl_ring;
7072	__le16	seq_id;
7073	__le16	target_id;
7074	__le64	resp_addr;
7075};
7076
7077/* hwrm_ring_aggint_qcaps_output (size:384b/48B) */
7078struct hwrm_ring_aggint_qcaps_output {
7079	__le16	error_code;
7080	__le16	req_type;
7081	__le16	seq_id;
7082	__le16	resp_len;
7083	__le32	cmpl_params;
7084	#define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_INT_LAT_TMR_MIN                  0x1UL
7085	#define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_INT_LAT_TMR_MAX                  0x2UL
7086	#define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_TIMER_RESET                      0x4UL
7087	#define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_RING_IDLE                        0x8UL
7088	#define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_DMA_AGGR                0x10UL
7089	#define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_DMA_AGGR_DURING_INT     0x20UL
7090	#define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_CMPL_AGGR_DMA_TMR                0x40UL
7091	#define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_CMPL_AGGR_DMA_TMR_DURING_INT     0x80UL
7092	#define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_AGGR_INT                0x100UL
7093	__le32	nq_params;
7094	#define RING_AGGINT_QCAPS_RESP_NQ_PARAMS_INT_LAT_TMR_MIN     0x1UL
7095	__le16	num_cmpl_dma_aggr_min;
7096	__le16	num_cmpl_dma_aggr_max;
7097	__le16	num_cmpl_dma_aggr_during_int_min;
7098	__le16	num_cmpl_dma_aggr_during_int_max;
7099	__le16	cmpl_aggr_dma_tmr_min;
7100	__le16	cmpl_aggr_dma_tmr_max;
7101	__le16	cmpl_aggr_dma_tmr_during_int_min;
7102	__le16	cmpl_aggr_dma_tmr_during_int_max;
7103	__le16	int_lat_tmr_min_min;
7104	__le16	int_lat_tmr_min_max;
7105	__le16	int_lat_tmr_max_min;
7106	__le16	int_lat_tmr_max_max;
7107	__le16	num_cmpl_aggr_int_min;
7108	__le16	num_cmpl_aggr_int_max;
7109	__le16	timer_units;
7110	u8	unused_0[1];
7111	u8	valid;
7112};
7113
7114/* hwrm_ring_cmpl_ring_qaggint_params_input (size:192b/24B) */
7115struct hwrm_ring_cmpl_ring_qaggint_params_input {
7116	__le16	req_type;
7117	__le16	cmpl_ring;
7118	__le16	seq_id;
7119	__le16	target_id;
7120	__le64	resp_addr;
7121	__le16	ring_id;
7122	__le16	flags;
7123	#define RING_CMPL_RING_QAGGINT_PARAMS_REQ_FLAGS_UNUSED_0_MASK 0x3UL
7124	#define RING_CMPL_RING_QAGGINT_PARAMS_REQ_FLAGS_UNUSED_0_SFT 0
7125	#define RING_CMPL_RING_QAGGINT_PARAMS_REQ_FLAGS_IS_NQ        0x4UL
7126	u8	unused_0[4];
7127};
7128
7129/* hwrm_ring_cmpl_ring_qaggint_params_output (size:256b/32B) */
7130struct hwrm_ring_cmpl_ring_qaggint_params_output {
7131	__le16	error_code;
7132	__le16	req_type;
7133	__le16	seq_id;
7134	__le16	resp_len;
7135	__le16	flags;
7136	#define RING_CMPL_RING_QAGGINT_PARAMS_RESP_FLAGS_TIMER_RESET     0x1UL
7137	#define RING_CMPL_RING_QAGGINT_PARAMS_RESP_FLAGS_RING_IDLE       0x2UL
7138	__le16	num_cmpl_dma_aggr;
7139	__le16	num_cmpl_dma_aggr_during_int;
7140	__le16	cmpl_aggr_dma_tmr;
7141	__le16	cmpl_aggr_dma_tmr_during_int;
7142	__le16	int_lat_tmr_min;
7143	__le16	int_lat_tmr_max;
7144	__le16	num_cmpl_aggr_int;
7145	u8	unused_0[7];
7146	u8	valid;
7147};
7148
7149/* hwrm_ring_cmpl_ring_cfg_aggint_params_input (size:320b/40B) */
7150struct hwrm_ring_cmpl_ring_cfg_aggint_params_input {
7151	__le16	req_type;
7152	__le16	cmpl_ring;
7153	__le16	seq_id;
7154	__le16	target_id;
7155	__le64	resp_addr;
7156	__le16	ring_id;
7157	__le16	flags;
7158	#define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_TIMER_RESET     0x1UL
7159	#define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_RING_IDLE       0x2UL
7160	#define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_IS_NQ           0x4UL
7161	__le16	num_cmpl_dma_aggr;
7162	__le16	num_cmpl_dma_aggr_during_int;
7163	__le16	cmpl_aggr_dma_tmr;
7164	__le16	cmpl_aggr_dma_tmr_during_int;
7165	__le16	int_lat_tmr_min;
7166	__le16	int_lat_tmr_max;
7167	__le16	num_cmpl_aggr_int;
7168	__le16	enables;
7169	#define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_DMA_AGGR                0x1UL
7170	#define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_DMA_AGGR_DURING_INT     0x2UL
7171	#define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_CMPL_AGGR_DMA_TMR                0x4UL
7172	#define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_INT_LAT_TMR_MIN                  0x8UL
7173	#define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_INT_LAT_TMR_MAX                  0x10UL
7174	#define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_AGGR_INT                0x20UL
7175	u8	unused_0[4];
7176};
7177
7178/* hwrm_ring_cmpl_ring_cfg_aggint_params_output (size:128b/16B) */
7179struct hwrm_ring_cmpl_ring_cfg_aggint_params_output {
7180	__le16	error_code;
7181	__le16	req_type;
7182	__le16	seq_id;
7183	__le16	resp_len;
7184	u8	unused_0[7];
7185	u8	valid;
7186};
7187
7188/* hwrm_ring_grp_alloc_input (size:192b/24B) */
7189struct hwrm_ring_grp_alloc_input {
7190	__le16	req_type;
7191	__le16	cmpl_ring;
7192	__le16	seq_id;
7193	__le16	target_id;
7194	__le64	resp_addr;
7195	__le16	cr;
7196	__le16	rr;
7197	__le16	ar;
7198	__le16	sc;
7199};
7200
7201/* hwrm_ring_grp_alloc_output (size:128b/16B) */
7202struct hwrm_ring_grp_alloc_output {
7203	__le16	error_code;
7204	__le16	req_type;
7205	__le16	seq_id;
7206	__le16	resp_len;
7207	__le32	ring_group_id;
7208	u8	unused_0[3];
7209	u8	valid;
7210};
7211
7212/* hwrm_ring_grp_free_input (size:192b/24B) */
7213struct hwrm_ring_grp_free_input {
7214	__le16	req_type;
7215	__le16	cmpl_ring;
7216	__le16	seq_id;
7217	__le16	target_id;
7218	__le64	resp_addr;
7219	__le32	ring_group_id;
7220	u8	unused_0[4];
7221};
7222
7223/* hwrm_ring_grp_free_output (size:128b/16B) */
7224struct hwrm_ring_grp_free_output {
7225	__le16	error_code;
7226	__le16	req_type;
7227	__le16	seq_id;
7228	__le16	resp_len;
7229	u8	unused_0[7];
7230	u8	valid;
7231};
7232
7233#define DEFAULT_FLOW_ID 0xFFFFFFFFUL
7234#define ROCEV1_FLOW_ID 0xFFFFFFFEUL
7235#define ROCEV2_FLOW_ID 0xFFFFFFFDUL
7236#define ROCEV2_CNP_FLOW_ID 0xFFFFFFFCUL
7237
7238/* hwrm_cfa_l2_filter_alloc_input (size:768b/96B) */
7239struct hwrm_cfa_l2_filter_alloc_input {
7240	__le16	req_type;
7241	__le16	cmpl_ring;
7242	__le16	seq_id;
7243	__le16	target_id;
7244	__le64	resp_addr;
7245	__le32	flags;
7246	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH              0x1UL
7247	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_TX             0x0UL
7248	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_RX             0x1UL
7249	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_LAST          CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_RX
7250	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_LOOPBACK          0x2UL
7251	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_DROP              0x4UL
7252	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_OUTERMOST         0x8UL
7253	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_MASK      0x30UL
7254	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_SFT       4
7255	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_NO_ROCE_L2  (0x0UL << 4)
7256	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_L2          (0x1UL << 4)
7257	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_ROCE        (0x2UL << 4)
7258	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_LAST       CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_ROCE
7259	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_XDP_DISABLE       0x40UL
7260	#define CFA_L2_FILTER_ALLOC_REQ_FLAGS_SOURCE_VALID      0x80UL
7261	__le32	enables;
7262	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_ADDR             0x1UL
7263	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_ADDR_MASK        0x2UL
7264	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_OVLAN            0x4UL
7265	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_OVLAN_MASK       0x8UL
7266	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN            0x10UL
7267	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN_MASK       0x20UL
7268	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_ADDR           0x40UL
7269	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_ADDR_MASK      0x80UL
7270	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_OVLAN          0x100UL
7271	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_OVLAN_MASK     0x200UL
7272	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_IVLAN          0x400UL
7273	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_IVLAN_MASK     0x800UL
7274	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_SRC_TYPE            0x1000UL
7275	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_SRC_ID              0x2000UL
7276	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE         0x4000UL
7277	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_DST_ID              0x8000UL
7278	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID      0x10000UL
7279	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_NUM_VLANS           0x20000UL
7280	#define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_NUM_VLANS         0x40000UL
7281	u8	l2_addr[6];
7282	u8	num_vlans;
7283	u8	t_num_vlans;
7284	u8	l2_addr_mask[6];
7285	__le16	l2_ovlan;
7286	__le16	l2_ovlan_mask;
7287	__le16	l2_ivlan;
7288	__le16	l2_ivlan_mask;
7289	u8	unused_1[2];
7290	u8	t_l2_addr[6];
7291	u8	unused_2[2];
7292	u8	t_l2_addr_mask[6];
7293	__le16	t_l2_ovlan;
7294	__le16	t_l2_ovlan_mask;
7295	__le16	t_l2_ivlan;
7296	__le16	t_l2_ivlan_mask;
7297	u8	src_type;
7298	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_NPORT 0x0UL
7299	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_PF    0x1UL
7300	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_VF    0x2UL
7301	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_VNIC  0x3UL
7302	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_KONG  0x4UL
7303	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_APE   0x5UL
7304	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_BONO  0x6UL
7305	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_TANG  0x7UL
7306	#define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_LAST CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_TANG
7307	u8	unused_3;
7308	__le32	src_id;
7309	u8	tunnel_type;
7310	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL    0x0UL
7311	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN        0x1UL
7312	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE        0x2UL
7313	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE        0x3UL
7314	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP         0x4UL
7315	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE       0x5UL
7316	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS         0x6UL
7317	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT          0x7UL
7318	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE        0x8UL
7319	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4     0x9UL
7320	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1     0xaUL
7321	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE     0xbUL
7322	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
7323	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE    0x10UL
7324	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL    0xffUL
7325	#define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST        CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
7326	u8	unused_4;
7327	__le16	dst_id;
7328	__le16	mirror_vnic_id;
7329	u8	pri_hint;
7330	#define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_NO_PREFER    0x0UL
7331	#define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_ABOVE_FILTER 0x1UL
7332	#define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_BELOW_FILTER 0x2UL
7333	#define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MAX          0x3UL
7334	#define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MIN          0x4UL
7335	#define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_LAST        CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MIN
7336	u8	unused_5;
7337	__le32	unused_6;
7338	__le64	l2_filter_id_hint;
7339};
7340
7341/* hwrm_cfa_l2_filter_alloc_output (size:192b/24B) */
7342struct hwrm_cfa_l2_filter_alloc_output {
7343	__le16	error_code;
7344	__le16	req_type;
7345	__le16	seq_id;
7346	__le16	resp_len;
7347	__le64	l2_filter_id;
7348	__le32	flow_id;
7349	#define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL
7350	#define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0
7351	#define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE      0x40000000UL
7352	#define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT    (0x0UL << 30)
7353	#define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT    (0x1UL << 30)
7354	#define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST  CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT
7355	#define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR       0x80000000UL
7356	#define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX      (0x0UL << 31)
7357	#define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX      (0x1UL << 31)
7358	#define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST   CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX
7359	u8	unused_0[3];
7360	u8	valid;
7361};
7362
7363/* hwrm_cfa_l2_filter_free_input (size:192b/24B) */
7364struct hwrm_cfa_l2_filter_free_input {
7365	__le16	req_type;
7366	__le16	cmpl_ring;
7367	__le16	seq_id;
7368	__le16	target_id;
7369	__le64	resp_addr;
7370	__le64	l2_filter_id;
7371};
7372
7373/* hwrm_cfa_l2_filter_free_output (size:128b/16B) */
7374struct hwrm_cfa_l2_filter_free_output {
7375	__le16	error_code;
7376	__le16	req_type;
7377	__le16	seq_id;
7378	__le16	resp_len;
7379	u8	unused_0[7];
7380	u8	valid;
7381};
7382
7383/* hwrm_cfa_l2_filter_cfg_input (size:320b/40B) */
7384struct hwrm_cfa_l2_filter_cfg_input {
7385	__le16	req_type;
7386	__le16	cmpl_ring;
7387	__le16	seq_id;
7388	__le16	target_id;
7389	__le64	resp_addr;
7390	__le32	flags;
7391	#define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH              0x1UL
7392	#define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_TX             0x0UL
7393	#define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_RX             0x1UL
7394	#define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_LAST          CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_RX
7395	#define CFA_L2_FILTER_CFG_REQ_FLAGS_DROP              0x2UL
7396	#define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_MASK      0xcUL
7397	#define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_SFT       2
7398	#define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_NO_ROCE_L2  (0x0UL << 2)
7399	#define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_L2          (0x1UL << 2)
7400	#define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_ROCE        (0x2UL << 2)
7401	#define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_LAST       CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_ROCE
7402	__le32	enables;
7403	#define CFA_L2_FILTER_CFG_REQ_ENABLES_DST_ID                 0x1UL
7404	#define CFA_L2_FILTER_CFG_REQ_ENABLES_NEW_MIRROR_VNIC_ID     0x2UL
7405	__le64	l2_filter_id;
7406	__le32	dst_id;
7407	__le32	new_mirror_vnic_id;
7408};
7409
7410/* hwrm_cfa_l2_filter_cfg_output (size:128b/16B) */
7411struct hwrm_cfa_l2_filter_cfg_output {
7412	__le16	error_code;
7413	__le16	req_type;
7414	__le16	seq_id;
7415	__le16	resp_len;
7416	u8	unused_0[7];
7417	u8	valid;
7418};
7419
7420/* hwrm_cfa_l2_set_rx_mask_input (size:448b/56B) */
7421struct hwrm_cfa_l2_set_rx_mask_input {
7422	__le16	req_type;
7423	__le16	cmpl_ring;
7424	__le16	seq_id;
7425	__le16	target_id;
7426	__le64	resp_addr;
7427	__le32	vnic_id;
7428	__le32	mask;
7429	#define CFA_L2_SET_RX_MASK_REQ_MASK_MCAST               0x2UL
7430	#define CFA_L2_SET_RX_MASK_REQ_MASK_ALL_MCAST           0x4UL
7431	#define CFA_L2_SET_RX_MASK_REQ_MASK_BCAST               0x8UL
7432	#define CFA_L2_SET_RX_MASK_REQ_MASK_PROMISCUOUS         0x10UL
7433	#define CFA_L2_SET_RX_MASK_REQ_MASK_OUTERMOST           0x20UL
7434	#define CFA_L2_SET_RX_MASK_REQ_MASK_VLANONLY            0x40UL
7435	#define CFA_L2_SET_RX_MASK_REQ_MASK_VLAN_NONVLAN        0x80UL
7436	#define CFA_L2_SET_RX_MASK_REQ_MASK_ANYVLAN_NONVLAN     0x100UL
7437	__le64	mc_tbl_addr;
7438	__le32	num_mc_entries;
7439	u8	unused_0[4];
7440	__le64	vlan_tag_tbl_addr;
7441	__le32	num_vlan_tags;
7442	u8	unused_1[4];
7443};
7444
7445/* hwrm_cfa_l2_set_rx_mask_output (size:128b/16B) */
7446struct hwrm_cfa_l2_set_rx_mask_output {
7447	__le16	error_code;
7448	__le16	req_type;
7449	__le16	seq_id;
7450	__le16	resp_len;
7451	u8	unused_0[7];
7452	u8	valid;
7453};
7454
7455/* hwrm_cfa_l2_set_rx_mask_cmd_err (size:64b/8B) */
7456struct hwrm_cfa_l2_set_rx_mask_cmd_err {
7457	u8	code;
7458	#define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_UNKNOWN                    0x0UL
7459	#define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_NTUPLE_FILTER_CONFLICT_ERR 0x1UL
7460	#define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_LAST                      CFA_L2_SET_RX_MASK_CMD_ERR_CODE_NTUPLE_FILTER_CONFLICT_ERR
7461	u8	unused_0[7];
7462};
7463
7464/* hwrm_cfa_tunnel_filter_alloc_input (size:704b/88B) */
7465struct hwrm_cfa_tunnel_filter_alloc_input {
7466	__le16	req_type;
7467	__le16	cmpl_ring;
7468	__le16	seq_id;
7469	__le16	target_id;
7470	__le64	resp_addr;
7471	__le32	flags;
7472	#define CFA_TUNNEL_FILTER_ALLOC_REQ_FLAGS_LOOPBACK     0x1UL
7473	__le32	enables;
7474	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_FILTER_ID       0x1UL
7475	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_ADDR            0x2UL
7476	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN           0x4UL
7477	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L3_ADDR            0x8UL
7478	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L3_ADDR_TYPE       0x10UL
7479	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_T_L3_ADDR_TYPE     0x20UL
7480	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_T_L3_ADDR          0x40UL
7481	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE        0x80UL
7482	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_VNI                0x100UL
7483	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_DST_VNIC_ID        0x200UL
7484	#define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID     0x400UL
7485	__le64	l2_filter_id;
7486	u8	l2_addr[6];
7487	__le16	l2_ivlan;
7488	__le32	l3_addr[4];
7489	__le32	t_l3_addr[4];
7490	u8	l3_addr_type;
7491	u8	t_l3_addr_type;
7492	u8	tunnel_type;
7493	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL    0x0UL
7494	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN        0x1UL
7495	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE        0x2UL
7496	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE        0x3UL
7497	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP         0x4UL
7498	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE       0x5UL
7499	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS         0x6UL
7500	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT          0x7UL
7501	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE        0x8UL
7502	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4     0x9UL
7503	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1     0xaUL
7504	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE     0xbUL
7505	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
7506	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE    0x10UL
7507	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL    0xffUL
7508	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST        CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
7509	u8	tunnel_flags;
7510	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_OAM_CHECKSUM_EXPLHDR     0x1UL
7511	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_CRITICAL_OPT_S1          0x2UL
7512	#define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_EXTHDR_SEQNUM_S0         0x4UL
7513	__le32	vni;
7514	__le32	dst_vnic_id;
7515	__le32	mirror_vnic_id;
7516};
7517
7518/* hwrm_cfa_tunnel_filter_alloc_output (size:192b/24B) */
7519struct hwrm_cfa_tunnel_filter_alloc_output {
7520	__le16	error_code;
7521	__le16	req_type;
7522	__le16	seq_id;
7523	__le16	resp_len;
7524	__le64	tunnel_filter_id;
7525	__le32	flow_id;
7526	#define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL
7527	#define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0
7528	#define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE      0x40000000UL
7529	#define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT    (0x0UL << 30)
7530	#define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT    (0x1UL << 30)
7531	#define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST  CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT
7532	#define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR       0x80000000UL
7533	#define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX      (0x0UL << 31)
7534	#define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX      (0x1UL << 31)
7535	#define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST   CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX
7536	u8	unused_0[3];
7537	u8	valid;
7538};
7539
7540/* hwrm_cfa_tunnel_filter_free_input (size:192b/24B) */
7541struct hwrm_cfa_tunnel_filter_free_input {
7542	__le16	req_type;
7543	__le16	cmpl_ring;
7544	__le16	seq_id;
7545	__le16	target_id;
7546	__le64	resp_addr;
7547	__le64	tunnel_filter_id;
7548};
7549
7550/* hwrm_cfa_tunnel_filter_free_output (size:128b/16B) */
7551struct hwrm_cfa_tunnel_filter_free_output {
7552	__le16	error_code;
7553	__le16	req_type;
7554	__le16	seq_id;
7555	__le16	resp_len;
7556	u8	unused_0[7];
7557	u8	valid;
7558};
7559
7560/* hwrm_vxlan_ipv4_hdr (size:128b/16B) */
7561struct hwrm_vxlan_ipv4_hdr {
7562	u8	ver_hlen;
7563	#define VXLAN_IPV4_HDR_VER_HLEN_HEADER_LENGTH_MASK 0xfUL
7564	#define VXLAN_IPV4_HDR_VER_HLEN_HEADER_LENGTH_SFT 0
7565	#define VXLAN_IPV4_HDR_VER_HLEN_VERSION_MASK      0xf0UL
7566	#define VXLAN_IPV4_HDR_VER_HLEN_VERSION_SFT       4
7567	u8	tos;
7568	__be16	ip_id;
7569	__be16	flags_frag_offset;
7570	u8	ttl;
7571	u8	protocol;
7572	__be32	src_ip_addr;
7573	__be32	dest_ip_addr;
7574};
7575
7576/* hwrm_vxlan_ipv6_hdr (size:320b/40B) */
7577struct hwrm_vxlan_ipv6_hdr {
7578	__be32	ver_tc_flow_label;
7579	#define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_VER_SFT         0x1cUL
7580	#define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_VER_MASK        0xf0000000UL
7581	#define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_TC_SFT          0x14UL
7582	#define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_TC_MASK         0xff00000UL
7583	#define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_SFT  0x0UL
7584	#define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_MASK 0xfffffUL
7585	#define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_LAST           VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_MASK
7586	__be16	payload_len;
7587	u8	next_hdr;
7588	u8	ttl;
7589	__be32	src_ip_addr[4];
7590	__be32	dest_ip_addr[4];
7591};
7592
7593/* hwrm_cfa_encap_data_vxlan (size:640b/80B) */
7594struct hwrm_cfa_encap_data_vxlan {
7595	u8	src_mac_addr[6];
7596	__le16	unused_0;
7597	u8	dst_mac_addr[6];
7598	u8	num_vlan_tags;
7599	u8	unused_1;
7600	__be16	ovlan_tpid;
7601	__be16	ovlan_tci;
7602	__be16	ivlan_tpid;
7603	__be16	ivlan_tci;
7604	__le32	l3[10];
7605	#define CFA_ENCAP_DATA_VXLAN_L3_VER_MASK 0xfUL
7606	#define CFA_ENCAP_DATA_VXLAN_L3_VER_IPV4 0x4UL
7607	#define CFA_ENCAP_DATA_VXLAN_L3_VER_IPV6 0x6UL
7608	#define CFA_ENCAP_DATA_VXLAN_L3_LAST    CFA_ENCAP_DATA_VXLAN_L3_VER_IPV6
7609	__be16	src_port;
7610	__be16	dst_port;
7611	__be32	vni;
7612	u8	hdr_rsvd0[3];
7613	u8	hdr_rsvd1;
7614	u8	hdr_flags;
7615	u8	unused[3];
7616};
7617
7618/* hwrm_cfa_encap_record_alloc_input (size:832b/104B) */
7619struct hwrm_cfa_encap_record_alloc_input {
7620	__le16	req_type;
7621	__le16	cmpl_ring;
7622	__le16	seq_id;
7623	__le16	target_id;
7624	__le64	resp_addr;
7625	__le32	flags;
7626	#define CFA_ENCAP_RECORD_ALLOC_REQ_FLAGS_LOOPBACK     0x1UL
7627	#define CFA_ENCAP_RECORD_ALLOC_REQ_FLAGS_EXTERNAL     0x2UL
7628	u8	encap_type;
7629	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN        0x1UL
7630	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_NVGRE        0x2UL
7631	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_L2GRE        0x3UL
7632	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPIP         0x4UL
7633	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_GENEVE       0x5UL
7634	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_MPLS         0x6UL
7635	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VLAN         0x7UL
7636	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPGRE        0x8UL
7637	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_V4     0x9UL
7638	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPGRE_V1     0xaUL
7639	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_L2_ETYPE     0xbUL
7640	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_GPE_V6 0xcUL
7641	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_GPE    0x10UL
7642	#define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_LAST        CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_GPE
7643	u8	unused_0[3];
7644	__le32	encap_data[20];
7645};
7646
7647/* hwrm_cfa_encap_record_alloc_output (size:128b/16B) */
7648struct hwrm_cfa_encap_record_alloc_output {
7649	__le16	error_code;
7650	__le16	req_type;
7651	__le16	seq_id;
7652	__le16	resp_len;
7653	__le32	encap_record_id;
7654	u8	unused_0[3];
7655	u8	valid;
7656};
7657
7658/* hwrm_cfa_encap_record_free_input (size:192b/24B) */
7659struct hwrm_cfa_encap_record_free_input {
7660	__le16	req_type;
7661	__le16	cmpl_ring;
7662	__le16	seq_id;
7663	__le16	target_id;
7664	__le64	resp_addr;
7665	__le32	encap_record_id;
7666	u8	unused_0[4];
7667};
7668
7669/* hwrm_cfa_encap_record_free_output (size:128b/16B) */
7670struct hwrm_cfa_encap_record_free_output {
7671	__le16	error_code;
7672	__le16	req_type;
7673	__le16	seq_id;
7674	__le16	resp_len;
7675	u8	unused_0[7];
7676	u8	valid;
7677};
7678
7679/* hwrm_cfa_ntuple_filter_alloc_input (size:1024b/128B) */
7680struct hwrm_cfa_ntuple_filter_alloc_input {
7681	__le16	req_type;
7682	__le16	cmpl_ring;
7683	__le16	seq_id;
7684	__le16	target_id;
7685	__le64	resp_addr;
7686	__le32	flags;
7687	#define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_LOOPBACK              0x1UL
7688	#define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DROP                  0x2UL
7689	#define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_METER                 0x4UL
7690	#define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DEST_FID              0x8UL
7691	#define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_ARP_REPLY             0x10UL
7692	#define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DEST_RFS_RING_IDX     0x20UL
7693	#define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_NO_L2_CONTEXT         0x40UL
7694	__le32	enables;
7695	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_L2_FILTER_ID         0x1UL
7696	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_ETHERTYPE            0x2UL
7697	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE          0x4UL
7698	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_MACADDR          0x8UL
7699	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_IPADDR_TYPE          0x10UL
7700	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR           0x20UL
7701	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR_MASK      0x40UL
7702	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR           0x80UL
7703	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR_MASK      0x100UL
7704	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_IP_PROTOCOL          0x200UL
7705	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_PORT             0x400UL
7706	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_PORT_MASK        0x800UL
7707	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_PORT             0x1000UL
7708	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_PORT_MASK        0x2000UL
7709	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_PRI_HINT             0x4000UL
7710	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_NTUPLE_FILTER_ID     0x8000UL
7711	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_ID               0x10000UL
7712	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID       0x20000UL
7713	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_MACADDR          0x40000UL
7714	#define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_RFS_RING_TBL_IDX     0x80000UL
7715	__le64	l2_filter_id;
7716	u8	src_macaddr[6];
7717	__be16	ethertype;
7718	u8	ip_addr_type;
7719	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_UNKNOWN 0x0UL
7720	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV4    0x4UL
7721	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6    0x6UL
7722	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_LAST   CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6
7723	u8	ip_protocol;
7724	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UNKNOWN 0x0UL
7725	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_TCP     0x6UL
7726	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP     0x11UL
7727	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_ICMP    0x1UL
7728	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_ICMPV6  0x3aUL
7729	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_RSVD    0xffUL
7730	#define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_LAST   CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_RSVD
7731	__le16	dst_id;
7732	__le16	rfs_ring_tbl_idx;
7733	u8	tunnel_type;
7734	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL    0x0UL
7735	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN        0x1UL
7736	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE        0x2UL
7737	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE        0x3UL
7738	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP         0x4UL
7739	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE       0x5UL
7740	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS         0x6UL
7741	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT          0x7UL
7742	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE        0x8UL
7743	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4     0x9UL
7744	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1     0xaUL
7745	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE     0xbUL
7746	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
7747	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE    0x10UL
7748	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL    0xffUL
7749	#define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST        CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
7750	u8	pri_hint;
7751	#define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_NO_PREFER 0x0UL
7752	#define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_ABOVE     0x1UL
7753	#define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_BELOW     0x2UL
7754	#define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_HIGHEST   0x3UL
7755	#define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LOWEST    0x4UL
7756	#define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LAST     CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LOWEST
7757	__be32	src_ipaddr[4];
7758	__be32	src_ipaddr_mask[4];
7759	__be32	dst_ipaddr[4];
7760	__be32	dst_ipaddr_mask[4];
7761	__be16	src_port;
7762	__be16	src_port_mask;
7763	__be16	dst_port;
7764	__be16	dst_port_mask;
7765	__le64	ntuple_filter_id_hint;
7766};
7767
7768/* hwrm_cfa_ntuple_filter_alloc_output (size:192b/24B) */
7769struct hwrm_cfa_ntuple_filter_alloc_output {
7770	__le16	error_code;
7771	__le16	req_type;
7772	__le16	seq_id;
7773	__le16	resp_len;
7774	__le64	ntuple_filter_id;
7775	__le32	flow_id;
7776	#define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL
7777	#define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0
7778	#define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE      0x40000000UL
7779	#define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT    (0x0UL << 30)
7780	#define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT    (0x1UL << 30)
7781	#define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST  CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT
7782	#define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR       0x80000000UL
7783	#define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX      (0x0UL << 31)
7784	#define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX      (0x1UL << 31)
7785	#define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST   CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX
7786	u8	unused_0[3];
7787	u8	valid;
7788};
7789
7790/* hwrm_cfa_ntuple_filter_alloc_cmd_err (size:64b/8B) */
7791struct hwrm_cfa_ntuple_filter_alloc_cmd_err {
7792	u8	code;
7793	#define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_UNKNOWN                   0x0UL
7794	#define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_RX_MASK_VLAN_CONFLICT_ERR 0x1UL
7795	#define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_LAST                     CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_RX_MASK_VLAN_CONFLICT_ERR
7796	u8	unused_0[7];
7797};
7798
7799/* hwrm_cfa_ntuple_filter_free_input (size:192b/24B) */
7800struct hwrm_cfa_ntuple_filter_free_input {
7801	__le16	req_type;
7802	__le16	cmpl_ring;
7803	__le16	seq_id;
7804	__le16	target_id;
7805	__le64	resp_addr;
7806	__le64	ntuple_filter_id;
7807};
7808
7809/* hwrm_cfa_ntuple_filter_free_output (size:128b/16B) */
7810struct hwrm_cfa_ntuple_filter_free_output {
7811	__le16	error_code;
7812	__le16	req_type;
7813	__le16	seq_id;
7814	__le16	resp_len;
7815	u8	unused_0[7];
7816	u8	valid;
7817};
7818
7819/* hwrm_cfa_ntuple_filter_cfg_input (size:384b/48B) */
7820struct hwrm_cfa_ntuple_filter_cfg_input {
7821	__le16	req_type;
7822	__le16	cmpl_ring;
7823	__le16	seq_id;
7824	__le16	target_id;
7825	__le64	resp_addr;
7826	__le32	enables;
7827	#define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_DST_ID                0x1UL
7828	#define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_MIRROR_VNIC_ID        0x2UL
7829	#define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_METER_INSTANCE_ID     0x4UL
7830	__le32	flags;
7831	#define CFA_NTUPLE_FILTER_CFG_REQ_FLAGS_DEST_FID              0x1UL
7832	#define CFA_NTUPLE_FILTER_CFG_REQ_FLAGS_DEST_RFS_RING_IDX     0x2UL
7833	#define CFA_NTUPLE_FILTER_CFG_REQ_FLAGS_NO_L2_CONTEXT         0x4UL
7834	__le64	ntuple_filter_id;
7835	__le32	new_dst_id;
7836	__le32	new_mirror_vnic_id;
7837	__le16	new_meter_instance_id;
7838	#define CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_INVALID 0xffffUL
7839	#define CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_LAST   CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_INVALID
7840	u8	unused_1[6];
7841};
7842
7843/* hwrm_cfa_ntuple_filter_cfg_output (size:128b/16B) */
7844struct hwrm_cfa_ntuple_filter_cfg_output {
7845	__le16	error_code;
7846	__le16	req_type;
7847	__le16	seq_id;
7848	__le16	resp_len;
7849	u8	unused_0[7];
7850	u8	valid;
7851};
7852
7853/* hwrm_cfa_decap_filter_alloc_input (size:832b/104B) */
7854struct hwrm_cfa_decap_filter_alloc_input {
7855	__le16	req_type;
7856	__le16	cmpl_ring;
7857	__le16	seq_id;
7858	__le16	target_id;
7859	__le64	resp_addr;
7860	__le32	flags;
7861	#define CFA_DECAP_FILTER_ALLOC_REQ_FLAGS_OVS_TUNNEL     0x1UL
7862	__le32	enables;
7863	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE        0x1UL
7864	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_TUNNEL_ID          0x2UL
7865	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_MACADDR        0x4UL
7866	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_MACADDR        0x8UL
7867	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_OVLAN_VID          0x10UL
7868	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IVLAN_VID          0x20UL
7869	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_T_OVLAN_VID        0x40UL
7870	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_T_IVLAN_VID        0x80UL
7871	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_ETHERTYPE          0x100UL
7872	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR         0x200UL
7873	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR         0x400UL
7874	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IPADDR_TYPE        0x800UL
7875	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IP_PROTOCOL        0x1000UL
7876	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_PORT           0x2000UL
7877	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_PORT           0x4000UL
7878	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_ID             0x8000UL
7879	#define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID     0x10000UL
7880	__be32	tunnel_id;
7881	u8	tunnel_type;
7882	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL    0x0UL
7883	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN        0x1UL
7884	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE        0x2UL
7885	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE        0x3UL
7886	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP         0x4UL
7887	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE       0x5UL
7888	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS         0x6UL
7889	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT          0x7UL
7890	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE        0x8UL
7891	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4     0x9UL
7892	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1     0xaUL
7893	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE     0xbUL
7894	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
7895	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE    0x10UL
7896	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL    0xffUL
7897	#define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST        CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
7898	u8	unused_0;
7899	__le16	unused_1;
7900	u8	src_macaddr[6];
7901	u8	unused_2[2];
7902	u8	dst_macaddr[6];
7903	__be16	ovlan_vid;
7904	__be16	ivlan_vid;
7905	__be16	t_ovlan_vid;
7906	__be16	t_ivlan_vid;
7907	__be16	ethertype;
7908	u8	ip_addr_type;
7909	#define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_UNKNOWN 0x0UL
7910	#define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV4    0x4UL
7911	#define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6    0x6UL
7912	#define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_LAST   CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6
7913	u8	ip_protocol;
7914	#define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UNKNOWN 0x0UL
7915	#define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_TCP     0x6UL
7916	#define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP     0x11UL
7917	#define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_LAST   CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP
7918	__le16	unused_3;
7919	__le32	unused_4;
7920	__be32	src_ipaddr[4];
7921	__be32	dst_ipaddr[4];
7922	__be16	src_port;
7923	__be16	dst_port;
7924	__le16	dst_id;
7925	__le16	l2_ctxt_ref_id;
7926};
7927
7928/* hwrm_cfa_decap_filter_alloc_output (size:128b/16B) */
7929struct hwrm_cfa_decap_filter_alloc_output {
7930	__le16	error_code;
7931	__le16	req_type;
7932	__le16	seq_id;
7933	__le16	resp_len;
7934	__le32	decap_filter_id;
7935	u8	unused_0[3];
7936	u8	valid;
7937};
7938
7939/* hwrm_cfa_decap_filter_free_input (size:192b/24B) */
7940struct hwrm_cfa_decap_filter_free_input {
7941	__le16	req_type;
7942	__le16	cmpl_ring;
7943	__le16	seq_id;
7944	__le16	target_id;
7945	__le64	resp_addr;
7946	__le32	decap_filter_id;
7947	u8	unused_0[4];
7948};
7949
7950/* hwrm_cfa_decap_filter_free_output (size:128b/16B) */
7951struct hwrm_cfa_decap_filter_free_output {
7952	__le16	error_code;
7953	__le16	req_type;
7954	__le16	seq_id;
7955	__le16	resp_len;
7956	u8	unused_0[7];
7957	u8	valid;
7958};
7959
7960/* hwrm_cfa_flow_alloc_input (size:1024b/128B) */
7961struct hwrm_cfa_flow_alloc_input {
7962	__le16	req_type;
7963	__le16	cmpl_ring;
7964	__le16	seq_id;
7965	__le16	target_id;
7966	__le64	resp_addr;
7967	__le16	flags;
7968	#define CFA_FLOW_ALLOC_REQ_FLAGS_TUNNEL                 0x1UL
7969	#define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_MASK          0x6UL
7970	#define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_SFT           1
7971	#define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_NONE            (0x0UL << 1)
7972	#define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_ONE             (0x1UL << 1)
7973	#define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_TWO             (0x2UL << 1)
7974	#define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_LAST           CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_TWO
7975	#define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_MASK          0x38UL
7976	#define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_SFT           3
7977	#define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_L2              (0x0UL << 3)
7978	#define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV4            (0x1UL << 3)
7979	#define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV6            (0x2UL << 3)
7980	#define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_LAST           CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV6
7981	#define CFA_FLOW_ALLOC_REQ_FLAGS_PATH_TX                0x40UL
7982	#define CFA_FLOW_ALLOC_REQ_FLAGS_PATH_RX                0x80UL
7983	#define CFA_FLOW_ALLOC_REQ_FLAGS_MATCH_VXLAN_IP_VNI     0x100UL
7984	#define CFA_FLOW_ALLOC_REQ_FLAGS_VHOST_ID_USE_VLAN      0x200UL
7985	__le16	src_fid;
7986	__le32	tunnel_handle;
7987	__le16	action_flags;
7988	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_FWD                       0x1UL
7989	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_RECYCLE                   0x2UL
7990	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_DROP                      0x4UL
7991	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_METER                     0x8UL
7992	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TUNNEL                    0x10UL
7993	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_SRC                   0x20UL
7994	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_DEST                  0x40UL
7995	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_IPV4_ADDRESS          0x80UL
7996	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_L2_HEADER_REWRITE         0x100UL
7997	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TTL_DECREMENT             0x200UL
7998	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TUNNEL_IP                 0x400UL
7999	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_FLOW_AGING_ENABLED        0x800UL
8000	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_PRI_HINT                  0x1000UL
8001	#define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NO_FLOW_COUNTER_ALLOC     0x2000UL
8002	__le16	dst_fid;
8003	__be16	l2_rewrite_vlan_tpid;
8004	__be16	l2_rewrite_vlan_tci;
8005	__le16	act_meter_id;
8006	__le16	ref_flow_handle;
8007	__be16	ethertype;
8008	__be16	outer_vlan_tci;
8009	__be16	dmac[3];
8010	__be16	inner_vlan_tci;
8011	__be16	smac[3];
8012	u8	ip_dst_mask_len;
8013	u8	ip_src_mask_len;
8014	__be32	ip_dst[4];
8015	__be32	ip_src[4];
8016	__be16	l4_src_port;
8017	__be16	l4_src_port_mask;
8018	__be16	l4_dst_port;
8019	__be16	l4_dst_port_mask;
8020	__be32	nat_ip_address[4];
8021	__be16	l2_rewrite_dmac[3];
8022	__be16	nat_port;
8023	__be16	l2_rewrite_smac[3];
8024	u8	ip_proto;
8025	u8	tunnel_type;
8026	#define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL    0x0UL
8027	#define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN        0x1UL
8028	#define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_NVGRE        0x2UL
8029	#define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_L2GRE        0x3UL
8030	#define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPIP         0x4UL
8031	#define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_GENEVE       0x5UL
8032	#define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_MPLS         0x6UL
8033	#define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_STT          0x7UL
8034	#define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPGRE        0x8UL
8035	#define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4     0x9UL
8036	#define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1     0xaUL
8037	#define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE     0xbUL
8038	#define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
8039	#define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE    0x10UL
8040	#define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL    0xffUL
8041	#define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_LAST        CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
8042};
8043
8044/* hwrm_cfa_flow_alloc_output (size:256b/32B) */
8045struct hwrm_cfa_flow_alloc_output {
8046	__le16	error_code;
8047	__le16	req_type;
8048	__le16	seq_id;
8049	__le16	resp_len;
8050	__le16	flow_handle;
8051	u8	unused_0[2];
8052	__le32	flow_id;
8053	#define CFA_FLOW_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL
8054	#define CFA_FLOW_ALLOC_RESP_FLOW_ID_VALUE_SFT 0
8055	#define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE      0x40000000UL
8056	#define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_INT    (0x0UL << 30)
8057	#define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_EXT    (0x1UL << 30)
8058	#define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_LAST  CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_EXT
8059	#define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR       0x80000000UL
8060	#define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_RX      (0x0UL << 31)
8061	#define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_TX      (0x1UL << 31)
8062	#define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_LAST   CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_TX
8063	__le64	ext_flow_handle;
8064	__le32	flow_counter_id;
8065	u8	unused_1[3];
8066	u8	valid;
8067};
8068
8069/* hwrm_cfa_flow_alloc_cmd_err (size:64b/8B) */
8070struct hwrm_cfa_flow_alloc_cmd_err {
8071	u8	code;
8072	#define CFA_FLOW_ALLOC_CMD_ERR_CODE_UNKNOWN         0x0UL
8073	#define CFA_FLOW_ALLOC_CMD_ERR_CODE_L2_CONTEXT_TCAM 0x1UL
8074	#define CFA_FLOW_ALLOC_CMD_ERR_CODE_ACTION_RECORD   0x2UL
8075	#define CFA_FLOW_ALLOC_CMD_ERR_CODE_FLOW_COUNTER    0x3UL
8076	#define CFA_FLOW_ALLOC_CMD_ERR_CODE_WILD_CARD_TCAM  0x4UL
8077	#define CFA_FLOW_ALLOC_CMD_ERR_CODE_HASH_COLLISION  0x5UL
8078	#define CFA_FLOW_ALLOC_CMD_ERR_CODE_KEY_EXISTS      0x6UL
8079	#define CFA_FLOW_ALLOC_CMD_ERR_CODE_FLOW_CTXT_DB    0x7UL
8080	#define CFA_FLOW_ALLOC_CMD_ERR_CODE_LAST           CFA_FLOW_ALLOC_CMD_ERR_CODE_FLOW_CTXT_DB
8081	u8	unused_0[7];
8082};
8083
8084/* hwrm_cfa_flow_free_input (size:256b/32B) */
8085struct hwrm_cfa_flow_free_input {
8086	__le16	req_type;
8087	__le16	cmpl_ring;
8088	__le16	seq_id;
8089	__le16	target_id;
8090	__le64	resp_addr;
8091	__le16	flow_handle;
8092	__le16	unused_0;
8093	__le32	flow_counter_id;
8094	__le64	ext_flow_handle;
8095};
8096
8097/* hwrm_cfa_flow_free_output (size:256b/32B) */
8098struct hwrm_cfa_flow_free_output {
8099	__le16	error_code;
8100	__le16	req_type;
8101	__le16	seq_id;
8102	__le16	resp_len;
8103	__le64	packet;
8104	__le64	byte;
8105	u8	unused_0[7];
8106	u8	valid;
8107};
8108
8109/* hwrm_cfa_flow_info_input (size:256b/32B) */
8110struct hwrm_cfa_flow_info_input {
8111	__le16	req_type;
8112	__le16	cmpl_ring;
8113	__le16	seq_id;
8114	__le16	target_id;
8115	__le64	resp_addr;
8116	__le16	flow_handle;
8117	#define CFA_FLOW_INFO_REQ_FLOW_HANDLE_MAX_MASK      0xfffUL
8118	#define CFA_FLOW_INFO_REQ_FLOW_HANDLE_CNP_CNT       0x1000UL
8119	#define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV1_CNT    0x2000UL
8120	#define CFA_FLOW_INFO_REQ_FLOW_HANDLE_NIC_TX        0x3000UL
8121	#define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV2_CNT    0x4000UL
8122	#define CFA_FLOW_INFO_REQ_FLOW_HANDLE_DIR_RX        0x8000UL
8123	#define CFA_FLOW_INFO_REQ_FLOW_HANDLE_CNP_CNT_RX    0x9000UL
8124	#define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV1_CNT_RX 0xa000UL
8125	#define CFA_FLOW_INFO_REQ_FLOW_HANDLE_NIC_RX        0xb000UL
8126	#define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV2_CNT_RX 0xc000UL
8127	#define CFA_FLOW_INFO_REQ_FLOW_HANDLE_LAST         CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV2_CNT_RX
8128	u8	unused_0[6];
8129	__le64	ext_flow_handle;
8130};
8131
8132/* hwrm_cfa_flow_info_output (size:5632b/704B) */
8133struct hwrm_cfa_flow_info_output {
8134	__le16	error_code;
8135	__le16	req_type;
8136	__le16	seq_id;
8137	__le16	resp_len;
8138	u8	flags;
8139	#define CFA_FLOW_INFO_RESP_FLAGS_PATH_TX     0x1UL
8140	#define CFA_FLOW_INFO_RESP_FLAGS_PATH_RX     0x2UL
8141	u8	profile;
8142	__le16	src_fid;
8143	__le16	dst_fid;
8144	__le16	l2_ctxt_id;
8145	__le64	em_info;
8146	__le64	tcam_info;
8147	__le64	vfp_tcam_info;
8148	__le16	ar_id;
8149	__le16	flow_handle;
8150	__le32	tunnel_handle;
8151	__le16	flow_timer;
8152	u8	unused_0[6];
8153	__le32	flow_key_data[130];
8154	__le32	flow_action_info[30];
8155	u8	unused_1[7];
8156	u8	valid;
8157};
8158
8159/* hwrm_cfa_flow_stats_input (size:640b/80B) */
8160struct hwrm_cfa_flow_stats_input {
8161	__le16	req_type;
8162	__le16	cmpl_ring;
8163	__le16	seq_id;
8164	__le16	target_id;
8165	__le64	resp_addr;
8166	__le16	num_flows;
8167	__le16	flow_handle_0;
8168	__le16	flow_handle_1;
8169	__le16	flow_handle_2;
8170	__le16	flow_handle_3;
8171	__le16	flow_handle_4;
8172	__le16	flow_handle_5;
8173	__le16	flow_handle_6;
8174	__le16	flow_handle_7;
8175	__le16	flow_handle_8;
8176	__le16	flow_handle_9;
8177	u8	unused_0[2];
8178	__le32	flow_id_0;
8179	__le32	flow_id_1;
8180	__le32	flow_id_2;
8181	__le32	flow_id_3;
8182	__le32	flow_id_4;
8183	__le32	flow_id_5;
8184	__le32	flow_id_6;
8185	__le32	flow_id_7;
8186	__le32	flow_id_8;
8187	__le32	flow_id_9;
8188};
8189
8190/* hwrm_cfa_flow_stats_output (size:1408b/176B) */
8191struct hwrm_cfa_flow_stats_output {
8192	__le16	error_code;
8193	__le16	req_type;
8194	__le16	seq_id;
8195	__le16	resp_len;
8196	__le64	packet_0;
8197	__le64	packet_1;
8198	__le64	packet_2;
8199	__le64	packet_3;
8200	__le64	packet_4;
8201	__le64	packet_5;
8202	__le64	packet_6;
8203	__le64	packet_7;
8204	__le64	packet_8;
8205	__le64	packet_9;
8206	__le64	byte_0;
8207	__le64	byte_1;
8208	__le64	byte_2;
8209	__le64	byte_3;
8210	__le64	byte_4;
8211	__le64	byte_5;
8212	__le64	byte_6;
8213	__le64	byte_7;
8214	__le64	byte_8;
8215	__le64	byte_9;
8216	__le16	flow_hits;
8217	u8	unused_0[5];
8218	u8	valid;
8219};
8220
8221/* hwrm_cfa_vfr_alloc_input (size:448b/56B) */
8222struct hwrm_cfa_vfr_alloc_input {
8223	__le16	req_type;
8224	__le16	cmpl_ring;
8225	__le16	seq_id;
8226	__le16	target_id;
8227	__le64	resp_addr;
8228	__le16	vf_id;
8229	__le16	reserved;
8230	u8	unused_0[4];
8231	char	vfr_name[32];
8232};
8233
8234/* hwrm_cfa_vfr_alloc_output (size:128b/16B) */
8235struct hwrm_cfa_vfr_alloc_output {
8236	__le16	error_code;
8237	__le16	req_type;
8238	__le16	seq_id;
8239	__le16	resp_len;
8240	__le16	rx_cfa_code;
8241	__le16	tx_cfa_action;
8242	u8	unused_0[3];
8243	u8	valid;
8244};
8245
8246/* hwrm_cfa_vfr_free_input (size:448b/56B) */
8247struct hwrm_cfa_vfr_free_input {
8248	__le16	req_type;
8249	__le16	cmpl_ring;
8250	__le16	seq_id;
8251	__le16	target_id;
8252	__le64	resp_addr;
8253	char	vfr_name[32];
8254	__le16	vf_id;
8255	__le16	reserved;
8256	u8	unused_0[4];
8257};
8258
8259/* hwrm_cfa_vfr_free_output (size:128b/16B) */
8260struct hwrm_cfa_vfr_free_output {
8261	__le16	error_code;
8262	__le16	req_type;
8263	__le16	seq_id;
8264	__le16	resp_len;
8265	u8	unused_0[7];
8266	u8	valid;
8267};
8268
8269/* hwrm_cfa_eem_qcaps_input (size:192b/24B) */
8270struct hwrm_cfa_eem_qcaps_input {
8271	__le16	req_type;
8272	__le16	cmpl_ring;
8273	__le16	seq_id;
8274	__le16	target_id;
8275	__le64	resp_addr;
8276	__le32	flags;
8277	#define CFA_EEM_QCAPS_REQ_FLAGS_PATH_TX               0x1UL
8278	#define CFA_EEM_QCAPS_REQ_FLAGS_PATH_RX               0x2UL
8279	#define CFA_EEM_QCAPS_REQ_FLAGS_PREFERRED_OFFLOAD     0x4UL
8280	__le32	unused_0;
8281};
8282
8283/* hwrm_cfa_eem_qcaps_output (size:320b/40B) */
8284struct hwrm_cfa_eem_qcaps_output {
8285	__le16	error_code;
8286	__le16	req_type;
8287	__le16	seq_id;
8288	__le16	resp_len;
8289	__le32	flags;
8290	#define CFA_EEM_QCAPS_RESP_FLAGS_PATH_TX                                         0x1UL
8291	#define CFA_EEM_QCAPS_RESP_FLAGS_PATH_RX                                         0x2UL
8292	#define CFA_EEM_QCAPS_RESP_FLAGS_CENTRALIZED_MEMORY_MODEL_SUPPORTED              0x4UL
8293	#define CFA_EEM_QCAPS_RESP_FLAGS_DETACHED_CENTRALIZED_MEMORY_MODEL_SUPPORTED     0x8UL
8294	__le32	unused_0;
8295	__le32	supported;
8296	#define CFA_EEM_QCAPS_RESP_SUPPORTED_KEY0_TABLE                       0x1UL
8297	#define CFA_EEM_QCAPS_RESP_SUPPORTED_KEY1_TABLE                       0x2UL
8298	#define CFA_EEM_QCAPS_RESP_SUPPORTED_EXTERNAL_RECORD_TABLE            0x4UL
8299	#define CFA_EEM_QCAPS_RESP_SUPPORTED_EXTERNAL_FLOW_COUNTERS_TABLE     0x8UL
8300	#define CFA_EEM_QCAPS_RESP_SUPPORTED_FID_TABLE                        0x10UL
8301	__le32	max_entries_supported;
8302	__le16	key_entry_size;
8303	__le16	record_entry_size;
8304	__le16	efc_entry_size;
8305	__le16	fid_entry_size;
8306	u8	unused_1[7];
8307	u8	valid;
8308};
8309
8310/* hwrm_cfa_eem_cfg_input (size:384b/48B) */
8311struct hwrm_cfa_eem_cfg_input {
8312	__le16	req_type;
8313	__le16	cmpl_ring;
8314	__le16	seq_id;
8315	__le16	target_id;
8316	__le64	resp_addr;
8317	__le32	flags;
8318	#define CFA_EEM_CFG_REQ_FLAGS_PATH_TX               0x1UL
8319	#define CFA_EEM_CFG_REQ_FLAGS_PATH_RX               0x2UL
8320	#define CFA_EEM_CFG_REQ_FLAGS_PREFERRED_OFFLOAD     0x4UL
8321	#define CFA_EEM_CFG_REQ_FLAGS_SECONDARY_PF          0x8UL
8322	__le16	group_id;
8323	__le16	unused_0;
8324	__le32	num_entries;
8325	__le32	unused_1;
8326	__le16	key0_ctx_id;
8327	__le16	key1_ctx_id;
8328	__le16	record_ctx_id;
8329	__le16	efc_ctx_id;
8330	__le16	fid_ctx_id;
8331	__le16	unused_2;
8332	__le32	unused_3;
8333};
8334
8335/* hwrm_cfa_eem_cfg_output (size:128b/16B) */
8336struct hwrm_cfa_eem_cfg_output {
8337	__le16	error_code;
8338	__le16	req_type;
8339	__le16	seq_id;
8340	__le16	resp_len;
8341	u8	unused_0[7];
8342	u8	valid;
8343};
8344
8345/* hwrm_cfa_eem_qcfg_input (size:192b/24B) */
8346struct hwrm_cfa_eem_qcfg_input {
8347	__le16	req_type;
8348	__le16	cmpl_ring;
8349	__le16	seq_id;
8350	__le16	target_id;
8351	__le64	resp_addr;
8352	__le32	flags;
8353	#define CFA_EEM_QCFG_REQ_FLAGS_PATH_TX     0x1UL
8354	#define CFA_EEM_QCFG_REQ_FLAGS_PATH_RX     0x2UL
8355	__le32	unused_0;
8356};
8357
8358/* hwrm_cfa_eem_qcfg_output (size:256b/32B) */
8359struct hwrm_cfa_eem_qcfg_output {
8360	__le16	error_code;
8361	__le16	req_type;
8362	__le16	seq_id;
8363	__le16	resp_len;
8364	__le32	flags;
8365	#define CFA_EEM_QCFG_RESP_FLAGS_PATH_TX               0x1UL
8366	#define CFA_EEM_QCFG_RESP_FLAGS_PATH_RX               0x2UL
8367	#define CFA_EEM_QCFG_RESP_FLAGS_PREFERRED_OFFLOAD     0x4UL
8368	__le32	num_entries;
8369	__le16	key0_ctx_id;
8370	__le16	key1_ctx_id;
8371	__le16	record_ctx_id;
8372	__le16	efc_ctx_id;
8373	__le16	fid_ctx_id;
8374	u8	unused_2[5];
8375	u8	valid;
8376};
8377
8378/* hwrm_cfa_eem_op_input (size:192b/24B) */
8379struct hwrm_cfa_eem_op_input {
8380	__le16	req_type;
8381	__le16	cmpl_ring;
8382	__le16	seq_id;
8383	__le16	target_id;
8384	__le64	resp_addr;
8385	__le32	flags;
8386	#define CFA_EEM_OP_REQ_FLAGS_PATH_TX     0x1UL
8387	#define CFA_EEM_OP_REQ_FLAGS_PATH_RX     0x2UL
8388	__le16	unused_0;
8389	__le16	op;
8390	#define CFA_EEM_OP_REQ_OP_RESERVED    0x0UL
8391	#define CFA_EEM_OP_REQ_OP_EEM_DISABLE 0x1UL
8392	#define CFA_EEM_OP_REQ_OP_EEM_ENABLE  0x2UL
8393	#define CFA_EEM_OP_REQ_OP_EEM_CLEANUP 0x3UL
8394	#define CFA_EEM_OP_REQ_OP_LAST       CFA_EEM_OP_REQ_OP_EEM_CLEANUP
8395};
8396
8397/* hwrm_cfa_eem_op_output (size:128b/16B) */
8398struct hwrm_cfa_eem_op_output {
8399	__le16	error_code;
8400	__le16	req_type;
8401	__le16	seq_id;
8402	__le16	resp_len;
8403	u8	unused_0[7];
8404	u8	valid;
8405};
8406
8407/* hwrm_cfa_adv_flow_mgnt_qcaps_input (size:256b/32B) */
8408struct hwrm_cfa_adv_flow_mgnt_qcaps_input {
8409	__le16	req_type;
8410	__le16	cmpl_ring;
8411	__le16	seq_id;
8412	__le16	target_id;
8413	__le64	resp_addr;
8414	__le32	unused_0[4];
8415};
8416
8417/* hwrm_cfa_adv_flow_mgnt_qcaps_output (size:128b/16B) */
8418struct hwrm_cfa_adv_flow_mgnt_qcaps_output {
8419	__le16	error_code;
8420	__le16	req_type;
8421	__le16	seq_id;
8422	__le16	resp_len;
8423	__le32	flags;
8424	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_HND_16BIT_SUPPORTED                     0x1UL
8425	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_HND_64BIT_SUPPORTED                     0x2UL
8426	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_BATCH_DELETE_SUPPORTED                  0x4UL
8427	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_RESET_ALL_SUPPORTED                     0x8UL
8428	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_DEST_FUNC_SUPPORTED              0x10UL
8429	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_TX_EEM_FLOW_SUPPORTED                        0x20UL
8430	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RX_EEM_FLOW_SUPPORTED                        0x40UL
8431	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_COUNTER_ALLOC_SUPPORTED                 0x80UL
8432	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RFS_RING_TBL_IDX_SUPPORTED                   0x100UL
8433	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_UNTAGGED_VLAN_SUPPORTED                      0x200UL
8434	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_XDP_SUPPORTED                                0x400UL
8435	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_L2_HEADER_SOURCE_FIELDS_SUPPORTED            0x800UL
8436	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_RX_ARP_SUPPORTED                 0x1000UL
8437	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RFS_RING_TBL_IDX_V2_SUPPORTED                0x2000UL
8438	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_RX_ETHERTYPE_IP_SUPPORTED        0x4000UL
8439	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_TRUFLOW_CAPABLE                              0x8000UL
8440	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_L2_FILTER_TRAFFIC_TYPE_L2_ROCE_SUPPORTED     0x10000UL
8441	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_LAG_SUPPORTED                                0x20000UL
8442	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_NO_L2CTX_SUPPORTED               0x40000UL
8443	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NIC_FLOW_STATS_SUPPORTED                     0x80000UL
8444	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_RX_EXT_IP_PROTO_SUPPORTED        0x100000UL
8445	#define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RFS_RING_TBL_IDX_V3_SUPPORTED                0x200000UL
8446	u8	unused_0[3];
8447	u8	valid;
8448};
8449
8450/* hwrm_tunnel_dst_port_query_input (size:192b/24B) */
8451struct hwrm_tunnel_dst_port_query_input {
8452	__le16	req_type;
8453	__le16	cmpl_ring;
8454	__le16	seq_id;
8455	__le16	target_id;
8456	__le64	resp_addr;
8457	u8	tunnel_type;
8458	#define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN        0x1UL
8459	#define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_GENEVE       0x5UL
8460	#define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_V4     0x9UL
8461	#define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_IPGRE_V1     0xaUL
8462	#define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_L2_ETYPE     0xbUL
8463	#define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
8464	#define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_CUSTOM_GRE   0xdUL
8465	#define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_ECPRI        0xeUL
8466	#define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_SRV6         0xfUL
8467	#define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_GPE    0x10UL
8468	#define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_GRE          0x11UL
8469	#define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_LAST        TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_GRE
8470	u8	tunnel_next_proto;
8471	u8	unused_0[6];
8472};
8473
8474/* hwrm_tunnel_dst_port_query_output (size:128b/16B) */
8475struct hwrm_tunnel_dst_port_query_output {
8476	__le16	error_code;
8477	__le16	req_type;
8478	__le16	seq_id;
8479	__le16	resp_len;
8480	__le16	tunnel_dst_port_id;
8481	__be16	tunnel_dst_port_val;
8482	u8	upar_in_use;
8483	#define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR0     0x1UL
8484	#define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR1     0x2UL
8485	#define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR2     0x4UL
8486	#define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR3     0x8UL
8487	#define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR4     0x10UL
8488	#define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR5     0x20UL
8489	#define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR6     0x40UL
8490	#define TUNNEL_DST_PORT_QUERY_RESP_UPAR_IN_USE_UPAR7     0x80UL
8491	u8	status;
8492	#define TUNNEL_DST_PORT_QUERY_RESP_STATUS_CHIP_LEVEL     0x1UL
8493	#define TUNNEL_DST_PORT_QUERY_RESP_STATUS_FUNC_LEVEL     0x2UL
8494	u8	unused_0;
8495	u8	valid;
8496};
8497
8498/* hwrm_tunnel_dst_port_alloc_input (size:192b/24B) */
8499struct hwrm_tunnel_dst_port_alloc_input {
8500	__le16	req_type;
8501	__le16	cmpl_ring;
8502	__le16	seq_id;
8503	__le16	target_id;
8504	__le64	resp_addr;
8505	u8	tunnel_type;
8506	#define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN        0x1UL
8507	#define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_GENEVE       0x5UL
8508	#define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4     0x9UL
8509	#define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1     0xaUL
8510	#define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE     0xbUL
8511	#define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
8512	#define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_CUSTOM_GRE   0xdUL
8513	#define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_ECPRI        0xeUL
8514	#define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_SRV6         0xfUL
8515	#define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE    0x10UL
8516	#define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_GRE          0x11UL
8517	#define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_LAST        TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_GRE
8518	u8	tunnel_next_proto;
8519	__be16	tunnel_dst_port_val;
8520	u8	unused_0[4];
8521};
8522
8523/* hwrm_tunnel_dst_port_alloc_output (size:128b/16B) */
8524struct hwrm_tunnel_dst_port_alloc_output {
8525	__le16	error_code;
8526	__le16	req_type;
8527	__le16	seq_id;
8528	__le16	resp_len;
8529	__le16	tunnel_dst_port_id;
8530	u8	error_info;
8531	#define TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_SUCCESS         0x0UL
8532	#define TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_ERR_ALLOCATED   0x1UL
8533	#define TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_ERR_NO_RESOURCE 0x2UL
8534	#define TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_ERR_ENABLED     0x3UL
8535	#define TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_LAST           TUNNEL_DST_PORT_ALLOC_RESP_ERROR_INFO_ERR_ENABLED
8536	u8	upar_in_use;
8537	#define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR0     0x1UL
8538	#define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR1     0x2UL
8539	#define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR2     0x4UL
8540	#define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR3     0x8UL
8541	#define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR4     0x10UL
8542	#define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR5     0x20UL
8543	#define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR6     0x40UL
8544	#define TUNNEL_DST_PORT_ALLOC_RESP_UPAR_IN_USE_UPAR7     0x80UL
8545	u8	unused_0[3];
8546	u8	valid;
8547};
8548
8549/* hwrm_tunnel_dst_port_free_input (size:192b/24B) */
8550struct hwrm_tunnel_dst_port_free_input {
8551	__le16	req_type;
8552	__le16	cmpl_ring;
8553	__le16	seq_id;
8554	__le16	target_id;
8555	__le64	resp_addr;
8556	u8	tunnel_type;
8557	#define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN        0x1UL
8558	#define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_GENEVE       0x5UL
8559	#define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_V4     0x9UL
8560	#define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_IPGRE_V1     0xaUL
8561	#define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_L2_ETYPE     0xbUL
8562	#define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
8563	#define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_CUSTOM_GRE   0xdUL
8564	#define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_ECPRI        0xeUL
8565	#define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_SRV6         0xfUL
8566	#define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_GPE    0x10UL
8567	#define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_GRE          0x11UL
8568	#define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_LAST        TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_GRE
8569	u8	tunnel_next_proto;
8570	__le16	tunnel_dst_port_id;
8571	u8	unused_0[4];
8572};
8573
8574/* hwrm_tunnel_dst_port_free_output (size:128b/16B) */
8575struct hwrm_tunnel_dst_port_free_output {
8576	__le16	error_code;
8577	__le16	req_type;
8578	__le16	seq_id;
8579	__le16	resp_len;
8580	u8	error_info;
8581	#define TUNNEL_DST_PORT_FREE_RESP_ERROR_INFO_SUCCESS           0x0UL
8582	#define TUNNEL_DST_PORT_FREE_RESP_ERROR_INFO_ERR_NOT_OWNER     0x1UL
8583	#define TUNNEL_DST_PORT_FREE_RESP_ERROR_INFO_ERR_NOT_ALLOCATED 0x2UL
8584	#define TUNNEL_DST_PORT_FREE_RESP_ERROR_INFO_LAST             TUNNEL_DST_PORT_FREE_RESP_ERROR_INFO_ERR_NOT_ALLOCATED
8585	u8	unused_1[6];
8586	u8	valid;
8587};
8588
8589/* ctx_hw_stats (size:1280b/160B) */
8590struct ctx_hw_stats {
8591	__le64	rx_ucast_pkts;
8592	__le64	rx_mcast_pkts;
8593	__le64	rx_bcast_pkts;
8594	__le64	rx_discard_pkts;
8595	__le64	rx_error_pkts;
8596	__le64	rx_ucast_bytes;
8597	__le64	rx_mcast_bytes;
8598	__le64	rx_bcast_bytes;
8599	__le64	tx_ucast_pkts;
8600	__le64	tx_mcast_pkts;
8601	__le64	tx_bcast_pkts;
8602	__le64	tx_error_pkts;
8603	__le64	tx_discard_pkts;
8604	__le64	tx_ucast_bytes;
8605	__le64	tx_mcast_bytes;
8606	__le64	tx_bcast_bytes;
8607	__le64	tpa_pkts;
8608	__le64	tpa_bytes;
8609	__le64	tpa_events;
8610	__le64	tpa_aborts;
8611};
8612
8613/* ctx_hw_stats_ext (size:1408b/176B) */
8614struct ctx_hw_stats_ext {
8615	__le64	rx_ucast_pkts;
8616	__le64	rx_mcast_pkts;
8617	__le64	rx_bcast_pkts;
8618	__le64	rx_discard_pkts;
8619	__le64	rx_error_pkts;
8620	__le64	rx_ucast_bytes;
8621	__le64	rx_mcast_bytes;
8622	__le64	rx_bcast_bytes;
8623	__le64	tx_ucast_pkts;
8624	__le64	tx_mcast_pkts;
8625	__le64	tx_bcast_pkts;
8626	__le64	tx_error_pkts;
8627	__le64	tx_discard_pkts;
8628	__le64	tx_ucast_bytes;
8629	__le64	tx_mcast_bytes;
8630	__le64	tx_bcast_bytes;
8631	__le64	rx_tpa_eligible_pkt;
8632	__le64	rx_tpa_eligible_bytes;
8633	__le64	rx_tpa_pkt;
8634	__le64	rx_tpa_bytes;
8635	__le64	rx_tpa_errors;
8636	__le64	rx_tpa_events;
8637};
8638
8639/* hwrm_stat_ctx_alloc_input (size:320b/40B) */
8640struct hwrm_stat_ctx_alloc_input {
8641	__le16	req_type;
8642	__le16	cmpl_ring;
8643	__le16	seq_id;
8644	__le16	target_id;
8645	__le64	resp_addr;
8646	__le64	stats_dma_addr;
8647	__le32	update_period_ms;
8648	u8	stat_ctx_flags;
8649	#define STAT_CTX_ALLOC_REQ_STAT_CTX_FLAGS_ROCE     0x1UL
8650	u8	unused_0;
8651	__le16	stats_dma_length;
8652	__le16	flags;
8653	#define STAT_CTX_ALLOC_REQ_FLAGS_STEERING_TAG_VALID     0x1UL
8654	__le16	steering_tag;
8655	__le32	unused_1;
8656};
8657
8658/* hwrm_stat_ctx_alloc_output (size:128b/16B) */
8659struct hwrm_stat_ctx_alloc_output {
8660	__le16	error_code;
8661	__le16	req_type;
8662	__le16	seq_id;
8663	__le16	resp_len;
8664	__le32	stat_ctx_id;
8665	u8	unused_0[3];
8666	u8	valid;
8667};
8668
8669/* hwrm_stat_ctx_free_input (size:192b/24B) */
8670struct hwrm_stat_ctx_free_input {
8671	__le16	req_type;
8672	__le16	cmpl_ring;
8673	__le16	seq_id;
8674	__le16	target_id;
8675	__le64	resp_addr;
8676	__le32	stat_ctx_id;
8677	u8	unused_0[4];
8678};
8679
8680/* hwrm_stat_ctx_free_output (size:128b/16B) */
8681struct hwrm_stat_ctx_free_output {
8682	__le16	error_code;
8683	__le16	req_type;
8684	__le16	seq_id;
8685	__le16	resp_len;
8686	__le32	stat_ctx_id;
8687	u8	unused_0[3];
8688	u8	valid;
8689};
8690
8691/* hwrm_stat_ctx_query_input (size:192b/24B) */
8692struct hwrm_stat_ctx_query_input {
8693	__le16	req_type;
8694	__le16	cmpl_ring;
8695	__le16	seq_id;
8696	__le16	target_id;
8697	__le64	resp_addr;
8698	__le32	stat_ctx_id;
8699	u8	flags;
8700	#define STAT_CTX_QUERY_REQ_FLAGS_COUNTER_MASK     0x1UL
8701	u8	unused_0[3];
8702};
8703
8704/* hwrm_stat_ctx_query_output (size:1408b/176B) */
8705struct hwrm_stat_ctx_query_output {
8706	__le16	error_code;
8707	__le16	req_type;
8708	__le16	seq_id;
8709	__le16	resp_len;
8710	__le64	tx_ucast_pkts;
8711	__le64	tx_mcast_pkts;
8712	__le64	tx_bcast_pkts;
8713	__le64	tx_discard_pkts;
8714	__le64	tx_error_pkts;
8715	__le64	tx_ucast_bytes;
8716	__le64	tx_mcast_bytes;
8717	__le64	tx_bcast_bytes;
8718	__le64	rx_ucast_pkts;
8719	__le64	rx_mcast_pkts;
8720	__le64	rx_bcast_pkts;
8721	__le64	rx_discard_pkts;
8722	__le64	rx_error_pkts;
8723	__le64	rx_ucast_bytes;
8724	__le64	rx_mcast_bytes;
8725	__le64	rx_bcast_bytes;
8726	__le64	rx_agg_pkts;
8727	__le64	rx_agg_bytes;
8728	__le64	rx_agg_events;
8729	__le64	rx_agg_aborts;
8730	u8	unused_0[7];
8731	u8	valid;
8732};
8733
8734/* hwrm_stat_ext_ctx_query_input (size:192b/24B) */
8735struct hwrm_stat_ext_ctx_query_input {
8736	__le16	req_type;
8737	__le16	cmpl_ring;
8738	__le16	seq_id;
8739	__le16	target_id;
8740	__le64	resp_addr;
8741	__le32	stat_ctx_id;
8742	u8	flags;
8743	#define STAT_EXT_CTX_QUERY_REQ_FLAGS_COUNTER_MASK     0x1UL
8744	u8	unused_0[3];
8745};
8746
8747/* hwrm_stat_ext_ctx_query_output (size:1536b/192B) */
8748struct hwrm_stat_ext_ctx_query_output {
8749	__le16	error_code;
8750	__le16	req_type;
8751	__le16	seq_id;
8752	__le16	resp_len;
8753	__le64	rx_ucast_pkts;
8754	__le64	rx_mcast_pkts;
8755	__le64	rx_bcast_pkts;
8756	__le64	rx_discard_pkts;
8757	__le64	rx_error_pkts;
8758	__le64	rx_ucast_bytes;
8759	__le64	rx_mcast_bytes;
8760	__le64	rx_bcast_bytes;
8761	__le64	tx_ucast_pkts;
8762	__le64	tx_mcast_pkts;
8763	__le64	tx_bcast_pkts;
8764	__le64	tx_error_pkts;
8765	__le64	tx_discard_pkts;
8766	__le64	tx_ucast_bytes;
8767	__le64	tx_mcast_bytes;
8768	__le64	tx_bcast_bytes;
8769	__le64	rx_tpa_eligible_pkt;
8770	__le64	rx_tpa_eligible_bytes;
8771	__le64	rx_tpa_pkt;
8772	__le64	rx_tpa_bytes;
8773	__le64	rx_tpa_errors;
8774	__le64	rx_tpa_events;
8775	u8	unused_0[7];
8776	u8	valid;
8777};
8778
8779/* hwrm_stat_ctx_clr_stats_input (size:192b/24B) */
8780struct hwrm_stat_ctx_clr_stats_input {
8781	__le16	req_type;
8782	__le16	cmpl_ring;
8783	__le16	seq_id;
8784	__le16	target_id;
8785	__le64	resp_addr;
8786	__le32	stat_ctx_id;
8787	u8	unused_0[4];
8788};
8789
8790/* hwrm_stat_ctx_clr_stats_output (size:128b/16B) */
8791struct hwrm_stat_ctx_clr_stats_output {
8792	__le16	error_code;
8793	__le16	req_type;
8794	__le16	seq_id;
8795	__le16	resp_len;
8796	u8	unused_0[7];
8797	u8	valid;
8798};
8799
8800/* hwrm_pcie_qstats_input (size:256b/32B) */
8801struct hwrm_pcie_qstats_input {
8802	__le16	req_type;
8803	__le16	cmpl_ring;
8804	__le16	seq_id;
8805	__le16	target_id;
8806	__le64	resp_addr;
8807	__le16	pcie_stat_size;
8808	u8	unused_0[6];
8809	__le64	pcie_stat_host_addr;
8810};
8811
8812/* hwrm_pcie_qstats_output (size:128b/16B) */
8813struct hwrm_pcie_qstats_output {
8814	__le16	error_code;
8815	__le16	req_type;
8816	__le16	seq_id;
8817	__le16	resp_len;
8818	__le16	pcie_stat_size;
8819	u8	unused_0[5];
8820	u8	valid;
8821};
8822
8823/* pcie_ctx_hw_stats (size:768b/96B) */
8824struct pcie_ctx_hw_stats {
8825	__le64	pcie_pl_signal_integrity;
8826	__le64	pcie_dl_signal_integrity;
8827	__le64	pcie_tl_signal_integrity;
8828	__le64	pcie_link_integrity;
8829	__le64	pcie_tx_traffic_rate;
8830	__le64	pcie_rx_traffic_rate;
8831	__le64	pcie_tx_dllp_statistics;
8832	__le64	pcie_rx_dllp_statistics;
8833	__le64	pcie_equalization_time;
8834	__le32	pcie_ltssm_histogram[4];
8835	__le64	pcie_recovery_histogram;
8836};
8837
8838/* hwrm_stat_generic_qstats_input (size:256b/32B) */
8839struct hwrm_stat_generic_qstats_input {
8840	__le16	req_type;
8841	__le16	cmpl_ring;
8842	__le16	seq_id;
8843	__le16	target_id;
8844	__le64	resp_addr;
8845	__le16	generic_stat_size;
8846	u8	flags;
8847	#define STAT_GENERIC_QSTATS_REQ_FLAGS_COUNTER_MASK     0x1UL
8848	u8	unused_0[5];
8849	__le64	generic_stat_host_addr;
8850};
8851
8852/* hwrm_stat_generic_qstats_output (size:128b/16B) */
8853struct hwrm_stat_generic_qstats_output {
8854	__le16	error_code;
8855	__le16	req_type;
8856	__le16	seq_id;
8857	__le16	resp_len;
8858	__le16	generic_stat_size;
8859	u8	unused_0[5];
8860	u8	valid;
8861};
8862
8863/* generic_sw_hw_stats (size:1408b/176B) */
8864struct generic_sw_hw_stats {
8865	__le64	pcie_statistics_tx_tlp;
8866	__le64	pcie_statistics_rx_tlp;
8867	__le64	pcie_credit_fc_hdr_posted;
8868	__le64	pcie_credit_fc_hdr_nonposted;
8869	__le64	pcie_credit_fc_hdr_cmpl;
8870	__le64	pcie_credit_fc_data_posted;
8871	__le64	pcie_credit_fc_data_nonposted;
8872	__le64	pcie_credit_fc_data_cmpl;
8873	__le64	pcie_credit_fc_tgt_nonposted;
8874	__le64	pcie_credit_fc_tgt_data_posted;
8875	__le64	pcie_credit_fc_tgt_hdr_posted;
8876	__le64	pcie_credit_fc_cmpl_hdr_posted;
8877	__le64	pcie_credit_fc_cmpl_data_posted;
8878	__le64	pcie_cmpl_longest;
8879	__le64	pcie_cmpl_shortest;
8880	__le64	cache_miss_count_cfcq;
8881	__le64	cache_miss_count_cfcs;
8882	__le64	cache_miss_count_cfcc;
8883	__le64	cache_miss_count_cfcm;
8884	__le64	hw_db_recov_dbs_dropped;
8885	__le64	hw_db_recov_drops_serviced;
8886	__le64	hw_db_recov_dbs_recovered;
8887};
8888
8889/* hwrm_fw_reset_input (size:192b/24B) */
8890struct hwrm_fw_reset_input {
8891	__le16	req_type;
8892	__le16	cmpl_ring;
8893	__le16	seq_id;
8894	__le16	target_id;
8895	__le64	resp_addr;
8896	u8	embedded_proc_type;
8897	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_BOOT                  0x0UL
8898	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_MGMT                  0x1UL
8899	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_NETCTRL               0x2UL
8900	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_ROCE                  0x3UL
8901	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST                  0x4UL
8902	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_AP                    0x5UL
8903	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_CHIP                  0x6UL
8904	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST_RESOURCE_REINIT  0x7UL
8905	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_IMPACTLESS_ACTIVATION 0x8UL
8906	#define FW_RESET_REQ_EMBEDDED_PROC_TYPE_LAST                 FW_RESET_REQ_EMBEDDED_PROC_TYPE_IMPACTLESS_ACTIVATION
8907	u8	selfrst_status;
8908	#define FW_RESET_REQ_SELFRST_STATUS_SELFRSTNONE      0x0UL
8909	#define FW_RESET_REQ_SELFRST_STATUS_SELFRSTASAP      0x1UL
8910	#define FW_RESET_REQ_SELFRST_STATUS_SELFRSTPCIERST   0x2UL
8911	#define FW_RESET_REQ_SELFRST_STATUS_SELFRSTIMMEDIATE 0x3UL
8912	#define FW_RESET_REQ_SELFRST_STATUS_LAST            FW_RESET_REQ_SELFRST_STATUS_SELFRSTIMMEDIATE
8913	u8	host_idx;
8914	u8	flags;
8915	#define FW_RESET_REQ_FLAGS_RESET_GRACEFUL     0x1UL
8916	#define FW_RESET_REQ_FLAGS_FW_ACTIVATION      0x2UL
8917	u8	unused_0[4];
8918};
8919
8920/* hwrm_fw_reset_output (size:128b/16B) */
8921struct hwrm_fw_reset_output {
8922	__le16	error_code;
8923	__le16	req_type;
8924	__le16	seq_id;
8925	__le16	resp_len;
8926	u8	selfrst_status;
8927	#define FW_RESET_RESP_SELFRST_STATUS_SELFRSTNONE      0x0UL
8928	#define FW_RESET_RESP_SELFRST_STATUS_SELFRSTASAP      0x1UL
8929	#define FW_RESET_RESP_SELFRST_STATUS_SELFRSTPCIERST   0x2UL
8930	#define FW_RESET_RESP_SELFRST_STATUS_SELFRSTIMMEDIATE 0x3UL
8931	#define FW_RESET_RESP_SELFRST_STATUS_LAST            FW_RESET_RESP_SELFRST_STATUS_SELFRSTIMMEDIATE
8932	u8	unused_0[6];
8933	u8	valid;
8934};
8935
8936/* hwrm_fw_qstatus_input (size:192b/24B) */
8937struct hwrm_fw_qstatus_input {
8938	__le16	req_type;
8939	__le16	cmpl_ring;
8940	__le16	seq_id;
8941	__le16	target_id;
8942	__le64	resp_addr;
8943	u8	embedded_proc_type;
8944	#define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_BOOT    0x0UL
8945	#define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_MGMT    0x1UL
8946	#define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_NETCTRL 0x2UL
8947	#define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_ROCE    0x3UL
8948	#define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_HOST    0x4UL
8949	#define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_AP      0x5UL
8950	#define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_CHIP    0x6UL
8951	#define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_LAST   FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_CHIP
8952	u8	unused_0[7];
8953};
8954
8955/* hwrm_fw_qstatus_output (size:128b/16B) */
8956struct hwrm_fw_qstatus_output {
8957	__le16	error_code;
8958	__le16	req_type;
8959	__le16	seq_id;
8960	__le16	resp_len;
8961	u8	selfrst_status;
8962	#define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTNONE    0x0UL
8963	#define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTASAP    0x1UL
8964	#define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPCIERST 0x2UL
8965	#define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPOWER   0x3UL
8966	#define FW_QSTATUS_RESP_SELFRST_STATUS_LAST          FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPOWER
8967	u8	nvm_option_action_status;
8968	#define FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_NVMOPT_ACTION_NONE     0x0UL
8969	#define FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_NVMOPT_ACTION_HOTRESET 0x1UL
8970	#define FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_NVMOPT_ACTION_WARMBOOT 0x2UL
8971	#define FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_NVMOPT_ACTION_COLDBOOT 0x3UL
8972	#define FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_LAST                  FW_QSTATUS_RESP_NVM_OPTION_ACTION_STATUS_NVMOPT_ACTION_COLDBOOT
8973	u8	unused_0[5];
8974	u8	valid;
8975};
8976
8977/* hwrm_fw_set_time_input (size:256b/32B) */
8978struct hwrm_fw_set_time_input {
8979	__le16	req_type;
8980	__le16	cmpl_ring;
8981	__le16	seq_id;
8982	__le16	target_id;
8983	__le64	resp_addr;
8984	__le16	year;
8985	#define FW_SET_TIME_REQ_YEAR_UNKNOWN 0x0UL
8986	#define FW_SET_TIME_REQ_YEAR_LAST   FW_SET_TIME_REQ_YEAR_UNKNOWN
8987	u8	month;
8988	u8	day;
8989	u8	hour;
8990	u8	minute;
8991	u8	second;
8992	u8	unused_0;
8993	__le16	millisecond;
8994	__le16	zone;
8995	#define FW_SET_TIME_REQ_ZONE_UTC     0
8996	#define FW_SET_TIME_REQ_ZONE_UNKNOWN 65535
8997	#define FW_SET_TIME_REQ_ZONE_LAST   FW_SET_TIME_REQ_ZONE_UNKNOWN
8998	u8	unused_1[4];
8999};
9000
9001/* hwrm_fw_set_time_output (size:128b/16B) */
9002struct hwrm_fw_set_time_output {
9003	__le16	error_code;
9004	__le16	req_type;
9005	__le16	seq_id;
9006	__le16	resp_len;
9007	u8	unused_0[7];
9008	u8	valid;
9009};
9010
9011/* hwrm_struct_hdr (size:128b/16B) */
9012struct hwrm_struct_hdr {
9013	__le16	struct_id;
9014	#define STRUCT_HDR_STRUCT_ID_LLDP_CFG           0x41bUL
9015	#define STRUCT_HDR_STRUCT_ID_DCBX_ETS           0x41dUL
9016	#define STRUCT_HDR_STRUCT_ID_DCBX_PFC           0x41fUL
9017	#define STRUCT_HDR_STRUCT_ID_DCBX_APP           0x421UL
9018	#define STRUCT_HDR_STRUCT_ID_DCBX_FEATURE_STATE 0x422UL
9019	#define STRUCT_HDR_STRUCT_ID_LLDP_GENERIC       0x424UL
9020	#define STRUCT_HDR_STRUCT_ID_LLDP_DEVICE        0x426UL
9021	#define STRUCT_HDR_STRUCT_ID_POWER_BKUP         0x427UL
9022	#define STRUCT_HDR_STRUCT_ID_AFM_OPAQUE         0x1UL
9023	#define STRUCT_HDR_STRUCT_ID_PORT_DESCRIPTION   0xaUL
9024	#define STRUCT_HDR_STRUCT_ID_RSS_V2             0x64UL
9025	#define STRUCT_HDR_STRUCT_ID_MSIX_PER_VF        0xc8UL
9026	#define STRUCT_HDR_STRUCT_ID_LAST              STRUCT_HDR_STRUCT_ID_MSIX_PER_VF
9027	__le16	len;
9028	u8	version;
9029	u8	count;
9030	__le16	subtype;
9031	__le16	next_offset;
9032	#define STRUCT_HDR_NEXT_OFFSET_LAST 0x0UL
9033	u8	unused_0[6];
9034};
9035
9036/* hwrm_struct_data_dcbx_app (size:64b/8B) */
9037struct hwrm_struct_data_dcbx_app {
9038	__be16	protocol_id;
9039	u8	protocol_selector;
9040	#define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_ETHER_TYPE   0x1UL
9041	#define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_PORT     0x2UL
9042	#define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_UDP_PORT     0x3UL
9043	#define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_UDP_PORT 0x4UL
9044	#define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_LAST        STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_UDP_PORT
9045	u8	priority;
9046	u8	valid;
9047	u8	unused_0[3];
9048};
9049
9050/* hwrm_fw_set_structured_data_input (size:256b/32B) */
9051struct hwrm_fw_set_structured_data_input {
9052	__le16	req_type;
9053	__le16	cmpl_ring;
9054	__le16	seq_id;
9055	__le16	target_id;
9056	__le64	resp_addr;
9057	__le64	src_data_addr;
9058	__le16	data_len;
9059	u8	hdr_cnt;
9060	u8	unused_0[5];
9061};
9062
9063/* hwrm_fw_set_structured_data_output (size:128b/16B) */
9064struct hwrm_fw_set_structured_data_output {
9065	__le16	error_code;
9066	__le16	req_type;
9067	__le16	seq_id;
9068	__le16	resp_len;
9069	u8	unused_0[7];
9070	u8	valid;
9071};
9072
9073/* hwrm_fw_set_structured_data_cmd_err (size:64b/8B) */
9074struct hwrm_fw_set_structured_data_cmd_err {
9075	u8	code;
9076	#define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_UNKNOWN     0x0UL
9077	#define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_HDR_CNT 0x1UL
9078	#define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_FMT     0x2UL
9079	#define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID      0x3UL
9080	#define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_LAST       FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID
9081	u8	unused_0[7];
9082};
9083
9084/* hwrm_fw_get_structured_data_input (size:256b/32B) */
9085struct hwrm_fw_get_structured_data_input {
9086	__le16	req_type;
9087	__le16	cmpl_ring;
9088	__le16	seq_id;
9089	__le16	target_id;
9090	__le64	resp_addr;
9091	__le64	dest_data_addr;
9092	__le16	data_len;
9093	__le16	structure_id;
9094	__le16	subtype;
9095	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_UNUSED                  0x0UL
9096	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_ALL                     0xffffUL
9097	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_ADMIN       0x100UL
9098	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_PEER        0x101UL
9099	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_OPERATIONAL 0x102UL
9100	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_ADMIN          0x200UL
9101	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_PEER           0x201UL
9102	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_OPERATIONAL    0x202UL
9103	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_HOST_OPERATIONAL        0x300UL
9104	#define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_LAST                   FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_HOST_OPERATIONAL
9105	u8	count;
9106	u8	unused_0;
9107};
9108
9109/* hwrm_fw_get_structured_data_output (size:128b/16B) */
9110struct hwrm_fw_get_structured_data_output {
9111	__le16	error_code;
9112	__le16	req_type;
9113	__le16	seq_id;
9114	__le16	resp_len;
9115	u8	hdr_cnt;
9116	u8	unused_0[6];
9117	u8	valid;
9118};
9119
9120/* hwrm_fw_get_structured_data_cmd_err (size:64b/8B) */
9121struct hwrm_fw_get_structured_data_cmd_err {
9122	u8	code;
9123	#define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_UNKNOWN 0x0UL
9124	#define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID  0x3UL
9125	#define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_LAST   FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID
9126	u8	unused_0[7];
9127};
9128
9129/* hwrm_fw_livepatch_query_input (size:192b/24B) */
9130struct hwrm_fw_livepatch_query_input {
9131	__le16	req_type;
9132	__le16	cmpl_ring;
9133	__le16	seq_id;
9134	__le16	target_id;
9135	__le64	resp_addr;
9136	u8	fw_target;
9137	#define FW_LIVEPATCH_QUERY_REQ_FW_TARGET_COMMON_FW 0x1UL
9138	#define FW_LIVEPATCH_QUERY_REQ_FW_TARGET_SECURE_FW 0x2UL
9139	#define FW_LIVEPATCH_QUERY_REQ_FW_TARGET_LAST     FW_LIVEPATCH_QUERY_REQ_FW_TARGET_SECURE_FW
9140	u8	unused_0[7];
9141};
9142
9143/* hwrm_fw_livepatch_query_output (size:640b/80B) */
9144struct hwrm_fw_livepatch_query_output {
9145	__le16	error_code;
9146	__le16	req_type;
9147	__le16	seq_id;
9148	__le16	resp_len;
9149	char	install_ver[32];
9150	char	active_ver[32];
9151	__le16	status_flags;
9152	#define FW_LIVEPATCH_QUERY_RESP_STATUS_FLAGS_INSTALL     0x1UL
9153	#define FW_LIVEPATCH_QUERY_RESP_STATUS_FLAGS_ACTIVE      0x2UL
9154	u8	unused_0[5];
9155	u8	valid;
9156};
9157
9158/* hwrm_fw_livepatch_input (size:256b/32B) */
9159struct hwrm_fw_livepatch_input {
9160	__le16	req_type;
9161	__le16	cmpl_ring;
9162	__le16	seq_id;
9163	__le16	target_id;
9164	__le64	resp_addr;
9165	u8	opcode;
9166	#define FW_LIVEPATCH_REQ_OPCODE_ACTIVATE   0x1UL
9167	#define FW_LIVEPATCH_REQ_OPCODE_DEACTIVATE 0x2UL
9168	#define FW_LIVEPATCH_REQ_OPCODE_LAST      FW_LIVEPATCH_REQ_OPCODE_DEACTIVATE
9169	u8	fw_target;
9170	#define FW_LIVEPATCH_REQ_FW_TARGET_COMMON_FW 0x1UL
9171	#define FW_LIVEPATCH_REQ_FW_TARGET_SECURE_FW 0x2UL
9172	#define FW_LIVEPATCH_REQ_FW_TARGET_LAST     FW_LIVEPATCH_REQ_FW_TARGET_SECURE_FW
9173	u8	loadtype;
9174	#define FW_LIVEPATCH_REQ_LOADTYPE_NVM_INSTALL   0x1UL
9175	#define FW_LIVEPATCH_REQ_LOADTYPE_MEMORY_DIRECT 0x2UL
9176	#define FW_LIVEPATCH_REQ_LOADTYPE_LAST         FW_LIVEPATCH_REQ_LOADTYPE_MEMORY_DIRECT
9177	u8	flags;
9178	__le32	patch_len;
9179	__le64	host_addr;
9180};
9181
9182/* hwrm_fw_livepatch_output (size:128b/16B) */
9183struct hwrm_fw_livepatch_output {
9184	__le16	error_code;
9185	__le16	req_type;
9186	__le16	seq_id;
9187	__le16	resp_len;
9188	u8	unused_0[7];
9189	u8	valid;
9190};
9191
9192/* hwrm_fw_livepatch_cmd_err (size:64b/8B) */
9193struct hwrm_fw_livepatch_cmd_err {
9194	u8	code;
9195	#define FW_LIVEPATCH_CMD_ERR_CODE_UNKNOWN         0x0UL
9196	#define FW_LIVEPATCH_CMD_ERR_CODE_INVALID_OPCODE  0x1UL
9197	#define FW_LIVEPATCH_CMD_ERR_CODE_INVALID_TARGET  0x2UL
9198	#define FW_LIVEPATCH_CMD_ERR_CODE_NOT_SUPPORTED   0x3UL
9199	#define FW_LIVEPATCH_CMD_ERR_CODE_NOT_INSTALLED   0x4UL
9200	#define FW_LIVEPATCH_CMD_ERR_CODE_NOT_PATCHED     0x5UL
9201	#define FW_LIVEPATCH_CMD_ERR_CODE_AUTH_FAIL       0x6UL
9202	#define FW_LIVEPATCH_CMD_ERR_CODE_INVALID_HEADER  0x7UL
9203	#define FW_LIVEPATCH_CMD_ERR_CODE_INVALID_SIZE    0x8UL
9204	#define FW_LIVEPATCH_CMD_ERR_CODE_ALREADY_PATCHED 0x9UL
9205	#define FW_LIVEPATCH_CMD_ERR_CODE_LAST           FW_LIVEPATCH_CMD_ERR_CODE_ALREADY_PATCHED
9206	u8	unused_0[7];
9207};
9208
9209/* hwrm_exec_fwd_resp_input (size:1024b/128B) */
9210struct hwrm_exec_fwd_resp_input {
9211	__le16	req_type;
9212	__le16	cmpl_ring;
9213	__le16	seq_id;
9214	__le16	target_id;
9215	__le64	resp_addr;
9216	__le32	encap_request[26];
9217	__le16	encap_resp_target_id;
9218	u8	unused_0[6];
9219};
9220
9221/* hwrm_exec_fwd_resp_output (size:128b/16B) */
9222struct hwrm_exec_fwd_resp_output {
9223	__le16	error_code;
9224	__le16	req_type;
9225	__le16	seq_id;
9226	__le16	resp_len;
9227	u8	unused_0[7];
9228	u8	valid;
9229};
9230
9231/* hwrm_reject_fwd_resp_input (size:1024b/128B) */
9232struct hwrm_reject_fwd_resp_input {
9233	__le16	req_type;
9234	__le16	cmpl_ring;
9235	__le16	seq_id;
9236	__le16	target_id;
9237	__le64	resp_addr;
9238	__le32	encap_request[26];
9239	__le16	encap_resp_target_id;
9240	u8	unused_0[6];
9241};
9242
9243/* hwrm_reject_fwd_resp_output (size:128b/16B) */
9244struct hwrm_reject_fwd_resp_output {
9245	__le16	error_code;
9246	__le16	req_type;
9247	__le16	seq_id;
9248	__le16	resp_len;
9249	u8	unused_0[7];
9250	u8	valid;
9251};
9252
9253/* hwrm_fwd_resp_input (size:1024b/128B) */
9254struct hwrm_fwd_resp_input {
9255	__le16	req_type;
9256	__le16	cmpl_ring;
9257	__le16	seq_id;
9258	__le16	target_id;
9259	__le64	resp_addr;
9260	__le16	encap_resp_target_id;
9261	__le16	encap_resp_cmpl_ring;
9262	__le16	encap_resp_len;
9263	u8	unused_0;
9264	u8	unused_1;
9265	__le64	encap_resp_addr;
9266	__le32	encap_resp[24];
9267};
9268
9269/* hwrm_fwd_resp_output (size:128b/16B) */
9270struct hwrm_fwd_resp_output {
9271	__le16	error_code;
9272	__le16	req_type;
9273	__le16	seq_id;
9274	__le16	resp_len;
9275	u8	unused_0[7];
9276	u8	valid;
9277};
9278
9279/* hwrm_fwd_async_event_cmpl_input (size:320b/40B) */
9280struct hwrm_fwd_async_event_cmpl_input {
9281	__le16	req_type;
9282	__le16	cmpl_ring;
9283	__le16	seq_id;
9284	__le16	target_id;
9285	__le64	resp_addr;
9286	__le16	encap_async_event_target_id;
9287	u8	unused_0[6];
9288	__le32	encap_async_event_cmpl[4];
9289};
9290
9291/* hwrm_fwd_async_event_cmpl_output (size:128b/16B) */
9292struct hwrm_fwd_async_event_cmpl_output {
9293	__le16	error_code;
9294	__le16	req_type;
9295	__le16	seq_id;
9296	__le16	resp_len;
9297	u8	unused_0[7];
9298	u8	valid;
9299};
9300
9301/* hwrm_temp_monitor_query_input (size:128b/16B) */
9302struct hwrm_temp_monitor_query_input {
9303	__le16	req_type;
9304	__le16	cmpl_ring;
9305	__le16	seq_id;
9306	__le16	target_id;
9307	__le64	resp_addr;
9308};
9309
9310/* hwrm_temp_monitor_query_output (size:192b/24B) */
9311struct hwrm_temp_monitor_query_output {
9312	__le16	error_code;
9313	__le16	req_type;
9314	__le16	seq_id;
9315	__le16	resp_len;
9316	u8	temp;
9317	u8	phy_temp;
9318	u8	om_temp;
9319	u8	flags;
9320	#define TEMP_MONITOR_QUERY_RESP_FLAGS_TEMP_NOT_AVAILABLE             0x1UL
9321	#define TEMP_MONITOR_QUERY_RESP_FLAGS_PHY_TEMP_NOT_AVAILABLE         0x2UL
9322	#define TEMP_MONITOR_QUERY_RESP_FLAGS_OM_NOT_PRESENT                 0x4UL
9323	#define TEMP_MONITOR_QUERY_RESP_FLAGS_OM_TEMP_NOT_AVAILABLE          0x8UL
9324	#define TEMP_MONITOR_QUERY_RESP_FLAGS_EXT_TEMP_FIELDS_AVAILABLE      0x10UL
9325	#define TEMP_MONITOR_QUERY_RESP_FLAGS_THRESHOLD_VALUES_AVAILABLE     0x20UL
9326	u8	temp2;
9327	u8	phy_temp2;
9328	u8	om_temp2;
9329	u8	warn_threshold;
9330	u8	critical_threshold;
9331	u8	fatal_threshold;
9332	u8	shutdown_threshold;
9333	u8	unused_0[4];
9334	u8	valid;
9335};
9336
9337/* hwrm_wol_filter_alloc_input (size:512b/64B) */
9338struct hwrm_wol_filter_alloc_input {
9339	__le16	req_type;
9340	__le16	cmpl_ring;
9341	__le16	seq_id;
9342	__le16	target_id;
9343	__le64	resp_addr;
9344	__le32	flags;
9345	__le32	enables;
9346	#define WOL_FILTER_ALLOC_REQ_ENABLES_MAC_ADDRESS           0x1UL
9347	#define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_OFFSET        0x2UL
9348	#define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_BUF_SIZE      0x4UL
9349	#define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_BUF_ADDR      0x8UL
9350	#define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_MASK_ADDR     0x10UL
9351	#define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_MASK_SIZE     0x20UL
9352	__le16	port_id;
9353	u8	wol_type;
9354	#define WOL_FILTER_ALLOC_REQ_WOL_TYPE_MAGICPKT 0x0UL
9355	#define WOL_FILTER_ALLOC_REQ_WOL_TYPE_BMP      0x1UL
9356	#define WOL_FILTER_ALLOC_REQ_WOL_TYPE_INVALID  0xffUL
9357	#define WOL_FILTER_ALLOC_REQ_WOL_TYPE_LAST    WOL_FILTER_ALLOC_REQ_WOL_TYPE_INVALID
9358	u8	unused_0[5];
9359	u8	mac_address[6];
9360	__le16	pattern_offset;
9361	__le16	pattern_buf_size;
9362	__le16	pattern_mask_size;
9363	u8	unused_1[4];
9364	__le64	pattern_buf_addr;
9365	__le64	pattern_mask_addr;
9366};
9367
9368/* hwrm_wol_filter_alloc_output (size:128b/16B) */
9369struct hwrm_wol_filter_alloc_output {
9370	__le16	error_code;
9371	__le16	req_type;
9372	__le16	seq_id;
9373	__le16	resp_len;
9374	u8	wol_filter_id;
9375	u8	unused_0[6];
9376	u8	valid;
9377};
9378
9379/* hwrm_wol_filter_free_input (size:256b/32B) */
9380struct hwrm_wol_filter_free_input {
9381	__le16	req_type;
9382	__le16	cmpl_ring;
9383	__le16	seq_id;
9384	__le16	target_id;
9385	__le64	resp_addr;
9386	__le32	flags;
9387	#define WOL_FILTER_FREE_REQ_FLAGS_FREE_ALL_WOL_FILTERS     0x1UL
9388	__le32	enables;
9389	#define WOL_FILTER_FREE_REQ_ENABLES_WOL_FILTER_ID     0x1UL
9390	__le16	port_id;
9391	u8	wol_filter_id;
9392	u8	unused_0[5];
9393};
9394
9395/* hwrm_wol_filter_free_output (size:128b/16B) */
9396struct hwrm_wol_filter_free_output {
9397	__le16	error_code;
9398	__le16	req_type;
9399	__le16	seq_id;
9400	__le16	resp_len;
9401	u8	unused_0[7];
9402	u8	valid;
9403};
9404
9405/* hwrm_wol_filter_qcfg_input (size:448b/56B) */
9406struct hwrm_wol_filter_qcfg_input {
9407	__le16	req_type;
9408	__le16	cmpl_ring;
9409	__le16	seq_id;
9410	__le16	target_id;
9411	__le64	resp_addr;
9412	__le16	port_id;
9413	__le16	handle;
9414	u8	unused_0[4];
9415	__le64	pattern_buf_addr;
9416	__le16	pattern_buf_size;
9417	u8	unused_1[6];
9418	__le64	pattern_mask_addr;
9419	__le16	pattern_mask_size;
9420	u8	unused_2[6];
9421};
9422
9423/* hwrm_wol_filter_qcfg_output (size:256b/32B) */
9424struct hwrm_wol_filter_qcfg_output {
9425	__le16	error_code;
9426	__le16	req_type;
9427	__le16	seq_id;
9428	__le16	resp_len;
9429	__le16	next_handle;
9430	u8	wol_filter_id;
9431	u8	wol_type;
9432	#define WOL_FILTER_QCFG_RESP_WOL_TYPE_MAGICPKT 0x0UL
9433	#define WOL_FILTER_QCFG_RESP_WOL_TYPE_BMP      0x1UL
9434	#define WOL_FILTER_QCFG_RESP_WOL_TYPE_INVALID  0xffUL
9435	#define WOL_FILTER_QCFG_RESP_WOL_TYPE_LAST    WOL_FILTER_QCFG_RESP_WOL_TYPE_INVALID
9436	__le32	unused_0;
9437	u8	mac_address[6];
9438	__le16	pattern_offset;
9439	__le16	pattern_size;
9440	__le16	pattern_mask_size;
9441	u8	unused_1[3];
9442	u8	valid;
9443};
9444
9445/* hwrm_wol_reason_qcfg_input (size:320b/40B) */
9446struct hwrm_wol_reason_qcfg_input {
9447	__le16	req_type;
9448	__le16	cmpl_ring;
9449	__le16	seq_id;
9450	__le16	target_id;
9451	__le64	resp_addr;
9452	__le16	port_id;
9453	u8	unused_0[6];
9454	__le64	wol_pkt_buf_addr;
9455	__le16	wol_pkt_buf_size;
9456	u8	unused_1[6];
9457};
9458
9459/* hwrm_wol_reason_qcfg_output (size:128b/16B) */
9460struct hwrm_wol_reason_qcfg_output {
9461	__le16	error_code;
9462	__le16	req_type;
9463	__le16	seq_id;
9464	__le16	resp_len;
9465	u8	wol_filter_id;
9466	u8	wol_reason;
9467	#define WOL_REASON_QCFG_RESP_WOL_REASON_MAGICPKT 0x0UL
9468	#define WOL_REASON_QCFG_RESP_WOL_REASON_BMP      0x1UL
9469	#define WOL_REASON_QCFG_RESP_WOL_REASON_INVALID  0xffUL
9470	#define WOL_REASON_QCFG_RESP_WOL_REASON_LAST    WOL_REASON_QCFG_RESP_WOL_REASON_INVALID
9471	u8	wol_pkt_len;
9472	u8	unused_0[4];
9473	u8	valid;
9474};
9475
9476/* hwrm_dbg_read_direct_input (size:256b/32B) */
9477struct hwrm_dbg_read_direct_input {
9478	__le16	req_type;
9479	__le16	cmpl_ring;
9480	__le16	seq_id;
9481	__le16	target_id;
9482	__le64	resp_addr;
9483	__le64	host_dest_addr;
9484	__le32	read_addr;
9485	__le32	read_len32;
9486};
9487
9488/* hwrm_dbg_read_direct_output (size:128b/16B) */
9489struct hwrm_dbg_read_direct_output {
9490	__le16	error_code;
9491	__le16	req_type;
9492	__le16	seq_id;
9493	__le16	resp_len;
9494	__le32	crc32;
9495	u8	unused_0[3];
9496	u8	valid;
9497};
9498
9499/* hwrm_dbg_qcaps_input (size:192b/24B) */
9500struct hwrm_dbg_qcaps_input {
9501	__le16	req_type;
9502	__le16	cmpl_ring;
9503	__le16	seq_id;
9504	__le16	target_id;
9505	__le64	resp_addr;
9506	__le16	fid;
9507	u8	unused_0[6];
9508};
9509
9510/* hwrm_dbg_qcaps_output (size:192b/24B) */
9511struct hwrm_dbg_qcaps_output {
9512	__le16	error_code;
9513	__le16	req_type;
9514	__le16	seq_id;
9515	__le16	resp_len;
9516	__le16	fid;
9517	u8	unused_0[2];
9518	__le32	coredump_component_disable_caps;
9519	#define DBG_QCAPS_RESP_COREDUMP_COMPONENT_DISABLE_CAPS_NVRAM     0x1UL
9520	__le32	flags;
9521	#define DBG_QCAPS_RESP_FLAGS_CRASHDUMP_NVM          0x1UL
9522	#define DBG_QCAPS_RESP_FLAGS_CRASHDUMP_HOST_DDR     0x2UL
9523	#define DBG_QCAPS_RESP_FLAGS_CRASHDUMP_SOC_DDR      0x4UL
9524	#define DBG_QCAPS_RESP_FLAGS_USEQ                   0x8UL
9525	u8	unused_1[3];
9526	u8	valid;
9527};
9528
9529/* hwrm_dbg_qcfg_input (size:192b/24B) */
9530struct hwrm_dbg_qcfg_input {
9531	__le16	req_type;
9532	__le16	cmpl_ring;
9533	__le16	seq_id;
9534	__le16	target_id;
9535	__le64	resp_addr;
9536	__le16	fid;
9537	__le16	flags;
9538	#define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_MASK         0x3UL
9539	#define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_SFT          0
9540	#define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_DEST_NVM       0x0UL
9541	#define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_DEST_HOST_DDR  0x1UL
9542	#define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_DEST_SOC_DDR   0x2UL
9543	#define DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_LAST          DBG_QCFG_REQ_FLAGS_CRASHDUMP_SIZE_FOR_DEST_DEST_SOC_DDR
9544	__le32	coredump_component_disable_flags;
9545	#define DBG_QCFG_REQ_COREDUMP_COMPONENT_DISABLE_FLAGS_NVRAM     0x1UL
9546};
9547
9548/* hwrm_dbg_qcfg_output (size:256b/32B) */
9549struct hwrm_dbg_qcfg_output {
9550	__le16	error_code;
9551	__le16	req_type;
9552	__le16	seq_id;
9553	__le16	resp_len;
9554	__le16	fid;
9555	u8	unused_0[2];
9556	__le32	coredump_size;
9557	__le32	flags;
9558	#define DBG_QCFG_RESP_FLAGS_UART_LOG               0x1UL
9559	#define DBG_QCFG_RESP_FLAGS_UART_LOG_SECONDARY     0x2UL
9560	#define DBG_QCFG_RESP_FLAGS_FW_TRACE               0x4UL
9561	#define DBG_QCFG_RESP_FLAGS_FW_TRACE_SECONDARY     0x8UL
9562	#define DBG_QCFG_RESP_FLAGS_DEBUG_NOTIFY           0x10UL
9563	#define DBG_QCFG_RESP_FLAGS_JTAG_DEBUG             0x20UL
9564	__le16	async_cmpl_ring;
9565	u8	unused_2[2];
9566	__le32	crashdump_size;
9567	u8	unused_3[3];
9568	u8	valid;
9569};
9570
9571/* hwrm_dbg_crashdump_medium_cfg_input (size:320b/40B) */
9572struct hwrm_dbg_crashdump_medium_cfg_input {
9573	__le16	req_type;
9574	__le16	cmpl_ring;
9575	__le16	seq_id;
9576	__le16	target_id;
9577	__le64	resp_addr;
9578	__le16	output_dest_flags;
9579	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_TYPE_DDR     0x1UL
9580	__le16	pg_size_lvl;
9581	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_MASK      0x3UL
9582	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_SFT       0
9583	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_LVL_0       0x0UL
9584	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_LVL_1       0x1UL
9585	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_LVL_2       0x2UL
9586	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_LAST       DBG_CRASHDUMP_MEDIUM_CFG_REQ_LVL_LVL_2
9587	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_MASK  0x1cUL
9588	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_SFT   2
9589	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_4K   (0x0UL << 2)
9590	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_8K   (0x1UL << 2)
9591	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_64K  (0x2UL << 2)
9592	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_2M   (0x3UL << 2)
9593	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_8M   (0x4UL << 2)
9594	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_1G   (0x5UL << 2)
9595	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_LAST   DBG_CRASHDUMP_MEDIUM_CFG_REQ_PG_SIZE_PG_1G
9596	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_UNUSED11_MASK 0xffe0UL
9597	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_UNUSED11_SFT  5
9598	__le32	size;
9599	__le32	coredump_component_disable_flags;
9600	#define DBG_CRASHDUMP_MEDIUM_CFG_REQ_NVRAM     0x1UL
9601	__le32	unused_0;
9602	__le64	pbl;
9603};
9604
9605/* hwrm_dbg_crashdump_medium_cfg_output (size:128b/16B) */
9606struct hwrm_dbg_crashdump_medium_cfg_output {
9607	__le16	error_code;
9608	__le16	req_type;
9609	__le16	seq_id;
9610	__le16	resp_len;
9611	u8	unused_1[7];
9612	u8	valid;
9613};
9614
9615/* coredump_segment_record (size:128b/16B) */
9616struct coredump_segment_record {
9617	__le16	component_id;
9618	__le16	segment_id;
9619	__le16	max_instances;
9620	u8	version_hi;
9621	u8	version_low;
9622	u8	seg_flags;
9623	u8	compress_flags;
9624	#define SFLAG_COMPRESSED_ZLIB     0x1UL
9625	u8	unused_0[2];
9626	__le32	segment_len;
9627};
9628
9629/* hwrm_dbg_coredump_list_input (size:256b/32B) */
9630struct hwrm_dbg_coredump_list_input {
9631	__le16	req_type;
9632	__le16	cmpl_ring;
9633	__le16	seq_id;
9634	__le16	target_id;
9635	__le64	resp_addr;
9636	__le64	host_dest_addr;
9637	__le32	host_buf_len;
9638	__le16	seq_no;
9639	u8	flags;
9640	#define DBG_COREDUMP_LIST_REQ_FLAGS_CRASHDUMP     0x1UL
9641	u8	unused_0[1];
9642};
9643
9644/* hwrm_dbg_coredump_list_output (size:128b/16B) */
9645struct hwrm_dbg_coredump_list_output {
9646	__le16	error_code;
9647	__le16	req_type;
9648	__le16	seq_id;
9649	__le16	resp_len;
9650	u8	flags;
9651	#define DBG_COREDUMP_LIST_RESP_FLAGS_MORE     0x1UL
9652	u8	unused_0;
9653	__le16	total_segments;
9654	__le16	data_len;
9655	u8	unused_1;
9656	u8	valid;
9657};
9658
9659/* hwrm_dbg_coredump_initiate_input (size:256b/32B) */
9660struct hwrm_dbg_coredump_initiate_input {
9661	__le16	req_type;
9662	__le16	cmpl_ring;
9663	__le16	seq_id;
9664	__le16	target_id;
9665	__le64	resp_addr;
9666	__le16	component_id;
9667	__le16	segment_id;
9668	__le16	instance;
9669	__le16	unused_0;
9670	u8	seg_flags;
9671	u8	unused_1[7];
9672};
9673
9674/* hwrm_dbg_coredump_initiate_output (size:128b/16B) */
9675struct hwrm_dbg_coredump_initiate_output {
9676	__le16	error_code;
9677	__le16	req_type;
9678	__le16	seq_id;
9679	__le16	resp_len;
9680	u8	unused_0[7];
9681	u8	valid;
9682};
9683
9684/* coredump_data_hdr (size:128b/16B) */
9685struct coredump_data_hdr {
9686	__le32	address;
9687	__le32	flags_length;
9688	#define COREDUMP_DATA_HDR_FLAGS_LENGTH_ACTUAL_LEN_MASK     0xffffffUL
9689	#define COREDUMP_DATA_HDR_FLAGS_LENGTH_ACTUAL_LEN_SFT      0
9690	#define COREDUMP_DATA_HDR_FLAGS_LENGTH_INDIRECT_ACCESS     0x1000000UL
9691	__le32	instance;
9692	__le32	next_offset;
9693};
9694
9695/* hwrm_dbg_coredump_retrieve_input (size:448b/56B) */
9696struct hwrm_dbg_coredump_retrieve_input {
9697	__le16	req_type;
9698	__le16	cmpl_ring;
9699	__le16	seq_id;
9700	__le16	target_id;
9701	__le64	resp_addr;
9702	__le64	host_dest_addr;
9703	__le32	host_buf_len;
9704	__le32	unused_0;
9705	__le16	component_id;
9706	__le16	segment_id;
9707	__le16	instance;
9708	__le16	unused_1;
9709	u8	seg_flags;
9710	u8	unused_2;
9711	__le16	unused_3;
9712	__le32	unused_4;
9713	__le32	seq_no;
9714	__le32	unused_5;
9715};
9716
9717/* hwrm_dbg_coredump_retrieve_output (size:128b/16B) */
9718struct hwrm_dbg_coredump_retrieve_output {
9719	__le16	error_code;
9720	__le16	req_type;
9721	__le16	seq_id;
9722	__le16	resp_len;
9723	u8	flags;
9724	#define DBG_COREDUMP_RETRIEVE_RESP_FLAGS_MORE     0x1UL
9725	u8	unused_0;
9726	__le16	data_len;
9727	u8	unused_1[3];
9728	u8	valid;
9729};
9730
9731/* hwrm_dbg_ring_info_get_input (size:192b/24B) */
9732struct hwrm_dbg_ring_info_get_input {
9733	__le16	req_type;
9734	__le16	cmpl_ring;
9735	__le16	seq_id;
9736	__le16	target_id;
9737	__le64	resp_addr;
9738	u8	ring_type;
9739	#define DBG_RING_INFO_GET_REQ_RING_TYPE_L2_CMPL 0x0UL
9740	#define DBG_RING_INFO_GET_REQ_RING_TYPE_TX      0x1UL
9741	#define DBG_RING_INFO_GET_REQ_RING_TYPE_RX      0x2UL
9742	#define DBG_RING_INFO_GET_REQ_RING_TYPE_NQ      0x3UL
9743	#define DBG_RING_INFO_GET_REQ_RING_TYPE_LAST   DBG_RING_INFO_GET_REQ_RING_TYPE_NQ
9744	u8	unused_0[3];
9745	__le32	fw_ring_id;
9746};
9747
9748/* hwrm_dbg_ring_info_get_output (size:192b/24B) */
9749struct hwrm_dbg_ring_info_get_output {
9750	__le16	error_code;
9751	__le16	req_type;
9752	__le16	seq_id;
9753	__le16	resp_len;
9754	__le32	producer_index;
9755	__le32	consumer_index;
9756	__le32	cag_vector_ctrl;
9757	__le16	st_tag;
9758	u8	unused_0;
9759	u8	valid;
9760};
9761
9762/* hwrm_nvm_read_input (size:320b/40B) */
9763struct hwrm_nvm_read_input {
9764	__le16	req_type;
9765	__le16	cmpl_ring;
9766	__le16	seq_id;
9767	__le16	target_id;
9768	__le64	resp_addr;
9769	__le64	host_dest_addr;
9770	__le16	dir_idx;
9771	u8	unused_0[2];
9772	__le32	offset;
9773	__le32	len;
9774	u8	unused_1[4];
9775};
9776
9777/* hwrm_nvm_read_output (size:128b/16B) */
9778struct hwrm_nvm_read_output {
9779	__le16	error_code;
9780	__le16	req_type;
9781	__le16	seq_id;
9782	__le16	resp_len;
9783	u8	unused_0[7];
9784	u8	valid;
9785};
9786
9787/* hwrm_nvm_get_dir_entries_input (size:192b/24B) */
9788struct hwrm_nvm_get_dir_entries_input {
9789	__le16	req_type;
9790	__le16	cmpl_ring;
9791	__le16	seq_id;
9792	__le16	target_id;
9793	__le64	resp_addr;
9794	__le64	host_dest_addr;
9795};
9796
9797/* hwrm_nvm_get_dir_entries_output (size:128b/16B) */
9798struct hwrm_nvm_get_dir_entries_output {
9799	__le16	error_code;
9800	__le16	req_type;
9801	__le16	seq_id;
9802	__le16	resp_len;
9803	u8	unused_0[7];
9804	u8	valid;
9805};
9806
9807/* hwrm_nvm_get_dir_info_input (size:128b/16B) */
9808struct hwrm_nvm_get_dir_info_input {
9809	__le16	req_type;
9810	__le16	cmpl_ring;
9811	__le16	seq_id;
9812	__le16	target_id;
9813	__le64	resp_addr;
9814};
9815
9816/* hwrm_nvm_get_dir_info_output (size:192b/24B) */
9817struct hwrm_nvm_get_dir_info_output {
9818	__le16	error_code;
9819	__le16	req_type;
9820	__le16	seq_id;
9821	__le16	resp_len;
9822	__le32	entries;
9823	__le32	entry_length;
9824	u8	unused_0[7];
9825	u8	valid;
9826};
9827
9828/* hwrm_nvm_write_input (size:448b/56B) */
9829struct hwrm_nvm_write_input {
9830	__le16	req_type;
9831	__le16	cmpl_ring;
9832	__le16	seq_id;
9833	__le16	target_id;
9834	__le64	resp_addr;
9835	__le64	host_src_addr;
9836	__le16	dir_type;
9837	__le16	dir_ordinal;
9838	__le16	dir_ext;
9839	__le16	dir_attr;
9840	__le32	dir_data_length;
9841	__le16	option;
9842	__le16	flags;
9843	#define NVM_WRITE_REQ_FLAGS_KEEP_ORIG_ACTIVE_IMG     0x1UL
9844	#define NVM_WRITE_REQ_FLAGS_BATCH_MODE               0x2UL
9845	#define NVM_WRITE_REQ_FLAGS_BATCH_LAST               0x4UL
9846	__le32	dir_item_length;
9847	__le32	offset;
9848	__le32	len;
9849	__le32	unused_0;
9850};
9851
9852/* hwrm_nvm_write_output (size:128b/16B) */
9853struct hwrm_nvm_write_output {
9854	__le16	error_code;
9855	__le16	req_type;
9856	__le16	seq_id;
9857	__le16	resp_len;
9858	__le32	dir_item_length;
9859	__le16	dir_idx;
9860	u8	unused_0;
9861	u8	valid;
9862};
9863
9864/* hwrm_nvm_write_cmd_err (size:64b/8B) */
9865struct hwrm_nvm_write_cmd_err {
9866	u8	code;
9867	#define NVM_WRITE_CMD_ERR_CODE_UNKNOWN  0x0UL
9868	#define NVM_WRITE_CMD_ERR_CODE_FRAG_ERR 0x1UL
9869	#define NVM_WRITE_CMD_ERR_CODE_NO_SPACE 0x2UL
9870	#define NVM_WRITE_CMD_ERR_CODE_LAST    NVM_WRITE_CMD_ERR_CODE_NO_SPACE
9871	u8	unused_0[7];
9872};
9873
9874/* hwrm_nvm_modify_input (size:320b/40B) */
9875struct hwrm_nvm_modify_input {
9876	__le16	req_type;
9877	__le16	cmpl_ring;
9878	__le16	seq_id;
9879	__le16	target_id;
9880	__le64	resp_addr;
9881	__le64	host_src_addr;
9882	__le16	dir_idx;
9883	__le16	flags;
9884	#define NVM_MODIFY_REQ_FLAGS_BATCH_MODE     0x1UL
9885	#define NVM_MODIFY_REQ_FLAGS_BATCH_LAST     0x2UL
9886	__le32	offset;
9887	__le32	len;
9888	u8	unused_1[4];
9889};
9890
9891/* hwrm_nvm_modify_output (size:128b/16B) */
9892struct hwrm_nvm_modify_output {
9893	__le16	error_code;
9894	__le16	req_type;
9895	__le16	seq_id;
9896	__le16	resp_len;
9897	u8	unused_0[7];
9898	u8	valid;
9899};
9900
9901/* hwrm_nvm_find_dir_entry_input (size:256b/32B) */
9902struct hwrm_nvm_find_dir_entry_input {
9903	__le16	req_type;
9904	__le16	cmpl_ring;
9905	__le16	seq_id;
9906	__le16	target_id;
9907	__le64	resp_addr;
9908	__le32	enables;
9909	#define NVM_FIND_DIR_ENTRY_REQ_ENABLES_DIR_IDX_VALID     0x1UL
9910	__le16	dir_idx;
9911	__le16	dir_type;
9912	__le16	dir_ordinal;
9913	__le16	dir_ext;
9914	u8	opt_ordinal;
9915	#define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_MASK 0x3UL
9916	#define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_SFT 0
9917	#define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_EQ    0x0UL
9918	#define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GE    0x1UL
9919	#define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GT    0x2UL
9920	#define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_LAST NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GT
9921	u8	unused_0[3];
9922};
9923
9924/* hwrm_nvm_find_dir_entry_output (size:256b/32B) */
9925struct hwrm_nvm_find_dir_entry_output {
9926	__le16	error_code;
9927	__le16	req_type;
9928	__le16	seq_id;
9929	__le16	resp_len;
9930	__le32	dir_item_length;
9931	__le32	dir_data_length;
9932	__le32	fw_ver;
9933	__le16	dir_ordinal;
9934	__le16	dir_idx;
9935	u8	unused_0[7];
9936	u8	valid;
9937};
9938
9939/* hwrm_nvm_erase_dir_entry_input (size:192b/24B) */
9940struct hwrm_nvm_erase_dir_entry_input {
9941	__le16	req_type;
9942	__le16	cmpl_ring;
9943	__le16	seq_id;
9944	__le16	target_id;
9945	__le64	resp_addr;
9946	__le16	dir_idx;
9947	u8	unused_0[6];
9948};
9949
9950/* hwrm_nvm_erase_dir_entry_output (size:128b/16B) */
9951struct hwrm_nvm_erase_dir_entry_output {
9952	__le16	error_code;
9953	__le16	req_type;
9954	__le16	seq_id;
9955	__le16	resp_len;
9956	u8	unused_0[7];
9957	u8	valid;
9958};
9959
9960/* hwrm_nvm_get_dev_info_input (size:128b/16B) */
9961struct hwrm_nvm_get_dev_info_input {
9962	__le16	req_type;
9963	__le16	cmpl_ring;
9964	__le16	seq_id;
9965	__le16	target_id;
9966	__le64	resp_addr;
9967};
9968
9969/* hwrm_nvm_get_dev_info_output (size:704b/88B) */
9970struct hwrm_nvm_get_dev_info_output {
9971	__le16	error_code;
9972	__le16	req_type;
9973	__le16	seq_id;
9974	__le16	resp_len;
9975	__le16	manufacturer_id;
9976	__le16	device_id;
9977	__le32	sector_size;
9978	__le32	nvram_size;
9979	__le32	reserved_size;
9980	__le32	available_size;
9981	u8	nvm_cfg_ver_maj;
9982	u8	nvm_cfg_ver_min;
9983	u8	nvm_cfg_ver_upd;
9984	u8	flags;
9985	#define NVM_GET_DEV_INFO_RESP_FLAGS_FW_VER_VALID     0x1UL
9986	char	pkg_name[16];
9987	__le16	hwrm_fw_major;
9988	__le16	hwrm_fw_minor;
9989	__le16	hwrm_fw_build;
9990	__le16	hwrm_fw_patch;
9991	__le16	mgmt_fw_major;
9992	__le16	mgmt_fw_minor;
9993	__le16	mgmt_fw_build;
9994	__le16	mgmt_fw_patch;
9995	__le16	roce_fw_major;
9996	__le16	roce_fw_minor;
9997	__le16	roce_fw_build;
9998	__le16	roce_fw_patch;
9999	__le16	netctrl_fw_major;
10000	__le16	netctrl_fw_minor;
10001	__le16	netctrl_fw_build;
10002	__le16	netctrl_fw_patch;
10003	u8	unused_0[7];
10004	u8	valid;
10005};
10006
10007/* hwrm_nvm_mod_dir_entry_input (size:256b/32B) */
10008struct hwrm_nvm_mod_dir_entry_input {
10009	__le16	req_type;
10010	__le16	cmpl_ring;
10011	__le16	seq_id;
10012	__le16	target_id;
10013	__le64	resp_addr;
10014	__le32	enables;
10015	#define NVM_MOD_DIR_ENTRY_REQ_ENABLES_CHECKSUM     0x1UL
10016	__le16	dir_idx;
10017	__le16	dir_ordinal;
10018	__le16	dir_ext;
10019	__le16	dir_attr;
10020	__le32	checksum;
10021};
10022
10023/* hwrm_nvm_mod_dir_entry_output (size:128b/16B) */
10024struct hwrm_nvm_mod_dir_entry_output {
10025	__le16	error_code;
10026	__le16	req_type;
10027	__le16	seq_id;
10028	__le16	resp_len;
10029	u8	unused_0[7];
10030	u8	valid;
10031};
10032
10033/* hwrm_nvm_verify_update_input (size:192b/24B) */
10034struct hwrm_nvm_verify_update_input {
10035	__le16	req_type;
10036	__le16	cmpl_ring;
10037	__le16	seq_id;
10038	__le16	target_id;
10039	__le64	resp_addr;
10040	__le16	dir_type;
10041	__le16	dir_ordinal;
10042	__le16	dir_ext;
10043	u8	unused_0[2];
10044};
10045
10046/* hwrm_nvm_verify_update_output (size:128b/16B) */
10047struct hwrm_nvm_verify_update_output {
10048	__le16	error_code;
10049	__le16	req_type;
10050	__le16	seq_id;
10051	__le16	resp_len;
10052	u8	unused_0[7];
10053	u8	valid;
10054};
10055
10056/* hwrm_nvm_install_update_input (size:192b/24B) */
10057struct hwrm_nvm_install_update_input {
10058	__le16	req_type;
10059	__le16	cmpl_ring;
10060	__le16	seq_id;
10061	__le16	target_id;
10062	__le64	resp_addr;
10063	__le32	install_type;
10064	#define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_NORMAL 0x0UL
10065	#define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_ALL    0xffffffffUL
10066	#define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_LAST  NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_ALL
10067	__le16	flags;
10068	#define NVM_INSTALL_UPDATE_REQ_FLAGS_ERASE_UNUSED_SPACE     0x1UL
10069	#define NVM_INSTALL_UPDATE_REQ_FLAGS_REMOVE_UNUSED_PKG      0x2UL
10070	#define NVM_INSTALL_UPDATE_REQ_FLAGS_ALLOWED_TO_DEFRAG      0x4UL
10071	#define NVM_INSTALL_UPDATE_REQ_FLAGS_VERIFY_ONLY            0x8UL
10072	u8	unused_0[2];
10073};
10074
10075/* hwrm_nvm_install_update_output (size:192b/24B) */
10076struct hwrm_nvm_install_update_output {
10077	__le16	error_code;
10078	__le16	req_type;
10079	__le16	seq_id;
10080	__le16	resp_len;
10081	__le64	installed_items;
10082	u8	result;
10083	#define NVM_INSTALL_UPDATE_RESP_RESULT_SUCCESS                      0x0UL
10084	#define NVM_INSTALL_UPDATE_RESP_RESULT_FAILURE                      0xffUL
10085	#define NVM_INSTALL_UPDATE_RESP_RESULT_MALLOC_FAILURE               0xfdUL
10086	#define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_INDEX_PARAMETER      0xfbUL
10087	#define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_TYPE_PARAMETER       0xf3UL
10088	#define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_PREREQUISITE         0xf2UL
10089	#define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_FILE_HEADER          0xecUL
10090	#define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_SIGNATURE            0xebUL
10091	#define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_PROP_STREAM          0xeaUL
10092	#define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_PROP_LENGTH          0xe9UL
10093	#define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_MANIFEST             0xe8UL
10094	#define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_TRAILER              0xe7UL
10095	#define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_CHECKSUM             0xe6UL
10096	#define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_ITEM_CHECKSUM        0xe5UL
10097	#define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_DATA_LENGTH          0xe4UL
10098	#define NVM_INSTALL_UPDATE_RESP_RESULT_INVALID_DIRECTIVE            0xe1UL
10099	#define NVM_INSTALL_UPDATE_RESP_RESULT_UNSUPPORTED_CHIP_REV         0xceUL
10100	#define NVM_INSTALL_UPDATE_RESP_RESULT_UNSUPPORTED_DEVICE_ID        0xcdUL
10101	#define NVM_INSTALL_UPDATE_RESP_RESULT_UNSUPPORTED_SUBSYS_VENDOR    0xccUL
10102	#define NVM_INSTALL_UPDATE_RESP_RESULT_UNSUPPORTED_SUBSYS_ID        0xcbUL
10103	#define NVM_INSTALL_UPDATE_RESP_RESULT_UNSUPPORTED_PLATFORM         0xc5UL
10104	#define NVM_INSTALL_UPDATE_RESP_RESULT_DUPLICATE_ITEM               0xc4UL
10105	#define NVM_INSTALL_UPDATE_RESP_RESULT_ZERO_LENGTH_ITEM             0xc3UL
10106	#define NVM_INSTALL_UPDATE_RESP_RESULT_INSTALL_CHECKSUM_ERROR       0xb9UL
10107	#define NVM_INSTALL_UPDATE_RESP_RESULT_INSTALL_DATA_ERROR           0xb8UL
10108	#define NVM_INSTALL_UPDATE_RESP_RESULT_INSTALL_AUTHENTICATION_ERROR 0xb7UL
10109	#define NVM_INSTALL_UPDATE_RESP_RESULT_ITEM_NOT_FOUND               0xb0UL
10110	#define NVM_INSTALL_UPDATE_RESP_RESULT_ITEM_LOCKED                  0xa7UL
10111	#define NVM_INSTALL_UPDATE_RESP_RESULT_LAST                        NVM_INSTALL_UPDATE_RESP_RESULT_ITEM_LOCKED
10112	u8	problem_item;
10113	#define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_NONE    0x0UL
10114	#define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_PACKAGE 0xffUL
10115	#define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_LAST   NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_PACKAGE
10116	u8	reset_required;
10117	#define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_NONE  0x0UL
10118	#define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_PCI   0x1UL
10119	#define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_POWER 0x2UL
10120	#define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_LAST NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_POWER
10121	u8	unused_0[4];
10122	u8	valid;
10123};
10124
10125/* hwrm_nvm_install_update_cmd_err (size:64b/8B) */
10126struct hwrm_nvm_install_update_cmd_err {
10127	u8	code;
10128	#define NVM_INSTALL_UPDATE_CMD_ERR_CODE_UNKNOWN            0x0UL
10129	#define NVM_INSTALL_UPDATE_CMD_ERR_CODE_FRAG_ERR           0x1UL
10130	#define NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_SPACE           0x2UL
10131	#define NVM_INSTALL_UPDATE_CMD_ERR_CODE_ANTI_ROLLBACK      0x3UL
10132	#define NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_VOLTREG_SUPPORT 0x4UL
10133	#define NVM_INSTALL_UPDATE_CMD_ERR_CODE_LAST              NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_VOLTREG_SUPPORT
10134	u8	unused_0[7];
10135};
10136
10137/* hwrm_nvm_get_variable_input (size:320b/40B) */
10138struct hwrm_nvm_get_variable_input {
10139	__le16	req_type;
10140	__le16	cmpl_ring;
10141	__le16	seq_id;
10142	__le16	target_id;
10143	__le64	resp_addr;
10144	__le64	dest_data_addr;
10145	__le16	data_len;
10146	__le16	option_num;
10147	#define NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_0    0x0UL
10148	#define NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 0xffffUL
10149	#define NVM_GET_VARIABLE_REQ_OPTION_NUM_LAST     NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF
10150	__le16	dimensions;
10151	__le16	index_0;
10152	__le16	index_1;
10153	__le16	index_2;
10154	__le16	index_3;
10155	u8	flags;
10156	#define NVM_GET_VARIABLE_REQ_FLAGS_FACTORY_DFLT     0x1UL
10157	u8	unused_0;
10158};
10159
10160/* hwrm_nvm_get_variable_output (size:128b/16B) */
10161struct hwrm_nvm_get_variable_output {
10162	__le16	error_code;
10163	__le16	req_type;
10164	__le16	seq_id;
10165	__le16	resp_len;
10166	__le16	data_len;
10167	__le16	option_num;
10168	#define NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_0    0x0UL
10169	#define NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_FFFF 0xffffUL
10170	#define NVM_GET_VARIABLE_RESP_OPTION_NUM_LAST     NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_FFFF
10171	u8	unused_0[3];
10172	u8	valid;
10173};
10174
10175/* hwrm_nvm_get_variable_cmd_err (size:64b/8B) */
10176struct hwrm_nvm_get_variable_cmd_err {
10177	u8	code;
10178	#define NVM_GET_VARIABLE_CMD_ERR_CODE_UNKNOWN       0x0UL
10179	#define NVM_GET_VARIABLE_CMD_ERR_CODE_VAR_NOT_EXIST 0x1UL
10180	#define NVM_GET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR   0x2UL
10181	#define NVM_GET_VARIABLE_CMD_ERR_CODE_LEN_TOO_SHORT 0x3UL
10182	#define NVM_GET_VARIABLE_CMD_ERR_CODE_LAST         NVM_GET_VARIABLE_CMD_ERR_CODE_LEN_TOO_SHORT
10183	u8	unused_0[7];
10184};
10185
10186/* hwrm_nvm_set_variable_input (size:320b/40B) */
10187struct hwrm_nvm_set_variable_input {
10188	__le16	req_type;
10189	__le16	cmpl_ring;
10190	__le16	seq_id;
10191	__le16	target_id;
10192	__le64	resp_addr;
10193	__le64	src_data_addr;
10194	__le16	data_len;
10195	__le16	option_num;
10196	#define NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_0    0x0UL
10197	#define NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 0xffffUL
10198	#define NVM_SET_VARIABLE_REQ_OPTION_NUM_LAST     NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF
10199	__le16	dimensions;
10200	__le16	index_0;
10201	__le16	index_1;
10202	__le16	index_2;
10203	__le16	index_3;
10204	u8	flags;
10205	#define NVM_SET_VARIABLE_REQ_FLAGS_FORCE_FLUSH                0x1UL
10206	#define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_MASK          0xeUL
10207	#define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_SFT           1
10208	#define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_NONE            (0x0UL << 1)
10209	#define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1       (0x1UL << 1)
10210	#define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_AES256          (0x2UL << 1)
10211	#define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1_AUTH  (0x3UL << 1)
10212	#define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_LAST           NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1_AUTH
10213	#define NVM_SET_VARIABLE_REQ_FLAGS_FLAGS_UNUSED_0_MASK        0x70UL
10214	#define NVM_SET_VARIABLE_REQ_FLAGS_FLAGS_UNUSED_0_SFT         4
10215	#define NVM_SET_VARIABLE_REQ_FLAGS_FACTORY_DEFAULT            0x80UL
10216	u8	unused_0;
10217};
10218
10219/* hwrm_nvm_set_variable_output (size:128b/16B) */
10220struct hwrm_nvm_set_variable_output {
10221	__le16	error_code;
10222	__le16	req_type;
10223	__le16	seq_id;
10224	__le16	resp_len;
10225	u8	unused_0[7];
10226	u8	valid;
10227};
10228
10229/* hwrm_nvm_set_variable_cmd_err (size:64b/8B) */
10230struct hwrm_nvm_set_variable_cmd_err {
10231	u8	code;
10232	#define NVM_SET_VARIABLE_CMD_ERR_CODE_UNKNOWN       0x0UL
10233	#define NVM_SET_VARIABLE_CMD_ERR_CODE_VAR_NOT_EXIST 0x1UL
10234	#define NVM_SET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR   0x2UL
10235	#define NVM_SET_VARIABLE_CMD_ERR_CODE_LAST         NVM_SET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR
10236	u8	unused_0[7];
10237};
10238
10239/* hwrm_selftest_qlist_input (size:128b/16B) */
10240struct hwrm_selftest_qlist_input {
10241	__le16	req_type;
10242	__le16	cmpl_ring;
10243	__le16	seq_id;
10244	__le16	target_id;
10245	__le64	resp_addr;
10246};
10247
10248/* hwrm_selftest_qlist_output (size:2240b/280B) */
10249struct hwrm_selftest_qlist_output {
10250	__le16	error_code;
10251	__le16	req_type;
10252	__le16	seq_id;
10253	__le16	resp_len;
10254	u8	num_tests;
10255	u8	available_tests;
10256	#define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_NVM_TEST                 0x1UL
10257	#define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_LINK_TEST                0x2UL
10258	#define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_REGISTER_TEST            0x4UL
10259	#define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_MEMORY_TEST              0x8UL
10260	#define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_PCIE_SERDES_TEST         0x10UL
10261	#define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_ETHERNET_SERDES_TEST     0x20UL
10262	u8	offline_tests;
10263	#define SELFTEST_QLIST_RESP_OFFLINE_TESTS_NVM_TEST                 0x1UL
10264	#define SELFTEST_QLIST_RESP_OFFLINE_TESTS_LINK_TEST                0x2UL
10265	#define SELFTEST_QLIST_RESP_OFFLINE_TESTS_REGISTER_TEST            0x4UL
10266	#define SELFTEST_QLIST_RESP_OFFLINE_TESTS_MEMORY_TEST              0x8UL
10267	#define SELFTEST_QLIST_RESP_OFFLINE_TESTS_PCIE_SERDES_TEST         0x10UL
10268	#define SELFTEST_QLIST_RESP_OFFLINE_TESTS_ETHERNET_SERDES_TEST     0x20UL
10269	u8	unused_0;
10270	__le16	test_timeout;
10271	u8	unused_1[2];
10272	char	test_name[8][32];
10273	u8	eyescope_target_BER_support;
10274	#define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E8_SUPPORTED  0x0UL
10275	#define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E9_SUPPORTED  0x1UL
10276	#define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E10_SUPPORTED 0x2UL
10277	#define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E11_SUPPORTED 0x3UL
10278	#define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E12_SUPPORTED 0x4UL
10279	#define SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_LAST              SELFTEST_QLIST_RESP_EYESCOPE_TARGET_BER_SUPPORT_BER_1E12_SUPPORTED
10280	u8	unused_2[6];
10281	u8	valid;
10282};
10283
10284/* hwrm_selftest_exec_input (size:192b/24B) */
10285struct hwrm_selftest_exec_input {
10286	__le16	req_type;
10287	__le16	cmpl_ring;
10288	__le16	seq_id;
10289	__le16	target_id;
10290	__le64	resp_addr;
10291	u8	flags;
10292	#define SELFTEST_EXEC_REQ_FLAGS_NVM_TEST                 0x1UL
10293	#define SELFTEST_EXEC_REQ_FLAGS_LINK_TEST                0x2UL
10294	#define SELFTEST_EXEC_REQ_FLAGS_REGISTER_TEST            0x4UL
10295	#define SELFTEST_EXEC_REQ_FLAGS_MEMORY_TEST              0x8UL
10296	#define SELFTEST_EXEC_REQ_FLAGS_PCIE_SERDES_TEST         0x10UL
10297	#define SELFTEST_EXEC_REQ_FLAGS_ETHERNET_SERDES_TEST     0x20UL
10298	u8	unused_0[7];
10299};
10300
10301/* hwrm_selftest_exec_output (size:128b/16B) */
10302struct hwrm_selftest_exec_output {
10303	__le16	error_code;
10304	__le16	req_type;
10305	__le16	seq_id;
10306	__le16	resp_len;
10307	u8	requested_tests;
10308	#define SELFTEST_EXEC_RESP_REQUESTED_TESTS_NVM_TEST                 0x1UL
10309	#define SELFTEST_EXEC_RESP_REQUESTED_TESTS_LINK_TEST                0x2UL
10310	#define SELFTEST_EXEC_RESP_REQUESTED_TESTS_REGISTER_TEST            0x4UL
10311	#define SELFTEST_EXEC_RESP_REQUESTED_TESTS_MEMORY_TEST              0x8UL
10312	#define SELFTEST_EXEC_RESP_REQUESTED_TESTS_PCIE_SERDES_TEST         0x10UL
10313	#define SELFTEST_EXEC_RESP_REQUESTED_TESTS_ETHERNET_SERDES_TEST     0x20UL
10314	u8	test_success;
10315	#define SELFTEST_EXEC_RESP_TEST_SUCCESS_NVM_TEST                 0x1UL
10316	#define SELFTEST_EXEC_RESP_TEST_SUCCESS_LINK_TEST                0x2UL
10317	#define SELFTEST_EXEC_RESP_TEST_SUCCESS_REGISTER_TEST            0x4UL
10318	#define SELFTEST_EXEC_RESP_TEST_SUCCESS_MEMORY_TEST              0x8UL
10319	#define SELFTEST_EXEC_RESP_TEST_SUCCESS_PCIE_SERDES_TEST         0x10UL
10320	#define SELFTEST_EXEC_RESP_TEST_SUCCESS_ETHERNET_SERDES_TEST     0x20UL
10321	u8	unused_0[5];
10322	u8	valid;
10323};
10324
10325/* hwrm_selftest_irq_input (size:128b/16B) */
10326struct hwrm_selftest_irq_input {
10327	__le16	req_type;
10328	__le16	cmpl_ring;
10329	__le16	seq_id;
10330	__le16	target_id;
10331	__le64	resp_addr;
10332};
10333
10334/* hwrm_selftest_irq_output (size:128b/16B) */
10335struct hwrm_selftest_irq_output {
10336	__le16	error_code;
10337	__le16	req_type;
10338	__le16	seq_id;
10339	__le16	resp_len;
10340	u8	unused_0[7];
10341	u8	valid;
10342};
10343
10344/* dbc_dbc (size:64b/8B) */
10345struct dbc_dbc {
10346	u32	index;
10347	#define DBC_DBC_INDEX_MASK 0xffffffUL
10348	#define DBC_DBC_INDEX_SFT  0
10349	#define DBC_DBC_EPOCH      0x1000000UL
10350	#define DBC_DBC_TOGGLE_MASK 0x6000000UL
10351	#define DBC_DBC_TOGGLE_SFT 25
10352	u32	type_path_xid;
10353	#define DBC_DBC_XID_MASK          0xfffffUL
10354	#define DBC_DBC_XID_SFT           0
10355	#define DBC_DBC_PATH_MASK         0x3000000UL
10356	#define DBC_DBC_PATH_SFT          24
10357	#define DBC_DBC_PATH_ROCE           (0x0UL << 24)
10358	#define DBC_DBC_PATH_L2             (0x1UL << 24)
10359	#define DBC_DBC_PATH_ENGINE         (0x2UL << 24)
10360	#define DBC_DBC_PATH_LAST          DBC_DBC_PATH_ENGINE
10361	#define DBC_DBC_VALID             0x4000000UL
10362	#define DBC_DBC_DEBUG_TRACE       0x8000000UL
10363	#define DBC_DBC_TYPE_MASK         0xf0000000UL
10364	#define DBC_DBC_TYPE_SFT          28
10365	#define DBC_DBC_TYPE_SQ             (0x0UL << 28)
10366	#define DBC_DBC_TYPE_RQ             (0x1UL << 28)
10367	#define DBC_DBC_TYPE_SRQ            (0x2UL << 28)
10368	#define DBC_DBC_TYPE_SRQ_ARM        (0x3UL << 28)
10369	#define DBC_DBC_TYPE_CQ             (0x4UL << 28)
10370	#define DBC_DBC_TYPE_CQ_ARMSE       (0x5UL << 28)
10371	#define DBC_DBC_TYPE_CQ_ARMALL      (0x6UL << 28)
10372	#define DBC_DBC_TYPE_CQ_ARMENA      (0x7UL << 28)
10373	#define DBC_DBC_TYPE_SRQ_ARMENA     (0x8UL << 28)
10374	#define DBC_DBC_TYPE_CQ_CUTOFF_ACK  (0x9UL << 28)
10375	#define DBC_DBC_TYPE_NQ             (0xaUL << 28)
10376	#define DBC_DBC_TYPE_NQ_ARM         (0xbUL << 28)
10377	#define DBC_DBC_TYPE_NQ_MASK        (0xeUL << 28)
10378	#define DBC_DBC_TYPE_NULL           (0xfUL << 28)
10379	#define DBC_DBC_TYPE_LAST          DBC_DBC_TYPE_NULL
10380};
10381
10382/* db_push_start (size:64b/8B) */
10383struct db_push_start {
10384	u64	db;
10385	#define DB_PUSH_START_DB_INDEX_MASK     0xffffffUL
10386	#define DB_PUSH_START_DB_INDEX_SFT      0
10387	#define DB_PUSH_START_DB_PI_LO_MASK     0xff000000UL
10388	#define DB_PUSH_START_DB_PI_LO_SFT      24
10389	#define DB_PUSH_START_DB_XID_MASK       0xfffff00000000ULL
10390	#define DB_PUSH_START_DB_XID_SFT        32
10391	#define DB_PUSH_START_DB_PI_HI_MASK     0xf0000000000000ULL
10392	#define DB_PUSH_START_DB_PI_HI_SFT      52
10393	#define DB_PUSH_START_DB_TYPE_MASK      0xf000000000000000ULL
10394	#define DB_PUSH_START_DB_TYPE_SFT       60
10395	#define DB_PUSH_START_DB_TYPE_PUSH_START  (0xcULL << 60)
10396	#define DB_PUSH_START_DB_TYPE_PUSH_END    (0xdULL << 60)
10397	#define DB_PUSH_START_DB_TYPE_LAST       DB_PUSH_START_DB_TYPE_PUSH_END
10398};
10399
10400/* db_push_end (size:64b/8B) */
10401struct db_push_end {
10402	u64	db;
10403	#define DB_PUSH_END_DB_INDEX_MASK      0xffffffUL
10404	#define DB_PUSH_END_DB_INDEX_SFT       0
10405	#define DB_PUSH_END_DB_PI_LO_MASK      0xff000000UL
10406	#define DB_PUSH_END_DB_PI_LO_SFT       24
10407	#define DB_PUSH_END_DB_XID_MASK        0xfffff00000000ULL
10408	#define DB_PUSH_END_DB_XID_SFT         32
10409	#define DB_PUSH_END_DB_PI_HI_MASK      0xf0000000000000ULL
10410	#define DB_PUSH_END_DB_PI_HI_SFT       52
10411	#define DB_PUSH_END_DB_PATH_MASK       0x300000000000000ULL
10412	#define DB_PUSH_END_DB_PATH_SFT        56
10413	#define DB_PUSH_END_DB_PATH_ROCE         (0x0ULL << 56)
10414	#define DB_PUSH_END_DB_PATH_L2           (0x1ULL << 56)
10415	#define DB_PUSH_END_DB_PATH_ENGINE       (0x2ULL << 56)
10416	#define DB_PUSH_END_DB_PATH_LAST        DB_PUSH_END_DB_PATH_ENGINE
10417	#define DB_PUSH_END_DB_DEBUG_TRACE     0x800000000000000ULL
10418	#define DB_PUSH_END_DB_TYPE_MASK       0xf000000000000000ULL
10419	#define DB_PUSH_END_DB_TYPE_SFT        60
10420	#define DB_PUSH_END_DB_TYPE_PUSH_START   (0xcULL << 60)
10421	#define DB_PUSH_END_DB_TYPE_PUSH_END     (0xdULL << 60)
10422	#define DB_PUSH_END_DB_TYPE_LAST        DB_PUSH_END_DB_TYPE_PUSH_END
10423};
10424
10425/* db_push_info (size:64b/8B) */
10426struct db_push_info {
10427	u32	push_size_push_index;
10428	#define DB_PUSH_INFO_PUSH_INDEX_MASK 0xffffffUL
10429	#define DB_PUSH_INFO_PUSH_INDEX_SFT 0
10430	#define DB_PUSH_INFO_PUSH_SIZE_MASK 0x1f000000UL
10431	#define DB_PUSH_INFO_PUSH_SIZE_SFT  24
10432	u32	reserved32;
10433};
10434
10435/* fw_status_reg (size:32b/4B) */
10436struct fw_status_reg {
10437	u32	fw_status;
10438	#define FW_STATUS_REG_CODE_MASK              0xffffUL
10439	#define FW_STATUS_REG_CODE_SFT               0
10440	#define FW_STATUS_REG_CODE_READY               0x8000UL
10441	#define FW_STATUS_REG_CODE_LAST               FW_STATUS_REG_CODE_READY
10442	#define FW_STATUS_REG_IMAGE_DEGRADED         0x10000UL
10443	#define FW_STATUS_REG_RECOVERABLE            0x20000UL
10444	#define FW_STATUS_REG_CRASHDUMP_ONGOING      0x40000UL
10445	#define FW_STATUS_REG_CRASHDUMP_COMPLETE     0x80000UL
10446	#define FW_STATUS_REG_SHUTDOWN               0x100000UL
10447	#define FW_STATUS_REG_CRASHED_NO_MASTER      0x200000UL
10448	#define FW_STATUS_REG_RECOVERING             0x400000UL
10449	#define FW_STATUS_REG_MANU_DEBUG_STATUS      0x800000UL
10450};
10451
10452/* hcomm_status (size:64b/8B) */
10453struct hcomm_status {
10454	u32	sig_ver;
10455	#define HCOMM_STATUS_VER_MASK      0xffUL
10456	#define HCOMM_STATUS_VER_SFT       0
10457	#define HCOMM_STATUS_VER_LATEST      0x1UL
10458	#define HCOMM_STATUS_VER_LAST       HCOMM_STATUS_VER_LATEST
10459	#define HCOMM_STATUS_SIGNATURE_MASK 0xffffff00UL
10460	#define HCOMM_STATUS_SIGNATURE_SFT 8
10461	#define HCOMM_STATUS_SIGNATURE_VAL   (0x484353UL << 8)
10462	#define HCOMM_STATUS_SIGNATURE_LAST HCOMM_STATUS_SIGNATURE_VAL
10463	u32	fw_status_loc;
10464	#define HCOMM_STATUS_TRUE_ADDR_SPACE_MASK    0x3UL
10465	#define HCOMM_STATUS_TRUE_ADDR_SPACE_SFT     0
10466	#define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_PCIE_CFG  0x0UL
10467	#define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_GRC       0x1UL
10468	#define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_BAR0      0x2UL
10469	#define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_BAR1      0x3UL
10470	#define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_LAST     HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_BAR1
10471	#define HCOMM_STATUS_TRUE_OFFSET_MASK        0xfffffffcUL
10472	#define HCOMM_STATUS_TRUE_OFFSET_SFT         2
10473};
10474#define HCOMM_STATUS_STRUCT_LOC 0x31001F0UL
10475
10476#endif /* _BNXT_HSI_H_ */
10477