mlx5_ifc.h revision 290650
1290650Shselasky/*-
2290650Shselasky * Copyright (c) 2013-2015, Mellanox Technologies, Ltd.  All rights reserved.
3290650Shselasky *
4290650Shselasky * Redistribution and use in source and binary forms, with or without
5290650Shselasky * modification, are permitted provided that the following conditions
6290650Shselasky * are met:
7290650Shselasky * 1. Redistributions of source code must retain the above copyright
8290650Shselasky *    notice, this list of conditions and the following disclaimer.
9290650Shselasky * 2. Redistributions in binary form must reproduce the above copyright
10290650Shselasky *    notice, this list of conditions and the following disclaimer in the
11290650Shselasky *    documentation and/or other materials provided with the distribution.
12290650Shselasky *
13290650Shselasky * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS `AS IS' AND
14290650Shselasky * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15290650Shselasky * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16290650Shselasky * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
17290650Shselasky * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18290650Shselasky * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19290650Shselasky * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20290650Shselasky * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21290650Shselasky * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22290650Shselasky * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23290650Shselasky * SUCH DAMAGE.
24290650Shselasky *
25290650Shselasky * $FreeBSD: head/sys/dev/mlx5/mlx5_ifc.h 290650 2015-11-10 12:20:22Z hselasky $
26290650Shselasky
27290650Shselasky   Autogenerated file.
28290650Shselasky   Date: 2015-04-13 14:59
29290650Shselasky   Source Document Name: Mellanox <Doc Name>
30290650Shselasky   Source Document Version: 0.28
31290650Shselasky   Generated by adb_to_c.py (EAT.ME Version: 1.0.70)
32290650Shselasky*/
33290650Shselasky#ifndef MLX5_IFC_H
34290650Shselasky#define MLX5_IFC_H
35290650Shselasky
36290650Shselaskyenum {
37290650Shselasky	MLX5_EVENT_TYPE_COMP                                       = 0x0,
38290650Shselasky	MLX5_EVENT_TYPE_PATH_MIG                                   = 0x1,
39290650Shselasky	MLX5_EVENT_TYPE_COMM_EST                                   = 0x2,
40290650Shselasky	MLX5_EVENT_TYPE_SQ_DRAINED                                 = 0x3,
41290650Shselasky	MLX5_EVENT_TYPE_SRQ_LAST_WQE                               = 0x13,
42290650Shselasky	MLX5_EVENT_TYPE_SRQ_RQ_LIMIT                               = 0x14,
43290650Shselasky	MLX5_EVENT_TYPE_DCT_DRAINED                                = 0x1c,
44290650Shselasky	MLX5_EVENT_TYPE_DCT_KEY_VIOLATION                          = 0x1d,
45290650Shselasky	MLX5_EVENT_TYPE_CQ_ERROR                                   = 0x4,
46290650Shselasky	MLX5_EVENT_TYPE_WQ_CATAS_ERROR                             = 0x5,
47290650Shselasky	MLX5_EVENT_TYPE_PATH_MIG_FAILED                            = 0x7,
48290650Shselasky	MLX5_EVENT_TYPE_PAGE_FAULT                                 = 0xc,
49290650Shselasky	MLX5_EVENT_TYPE_WQ_INVAL_REQ_ERROR                         = 0x10,
50290650Shselasky	MLX5_EVENT_TYPE_WQ_ACCESS_ERROR                            = 0x11,
51290650Shselasky	MLX5_EVENT_TYPE_SRQ_CATAS_ERROR                            = 0x12,
52290650Shselasky	MLX5_EVENT_TYPE_INTERNAL_ERROR                             = 0x8,
53290650Shselasky	MLX5_EVENT_TYPE_PORT_CHANGE                                = 0x9,
54290650Shselasky	MLX5_EVENT_TYPE_GPIO_EVENT                                 = 0x15,
55290650Shselasky	MLX5_EVENT_TYPE_CODING_PORT_MODULE_EVENT                   = 0x16,
56290650Shselasky	MLX5_EVENT_TYPE_REMOTE_CONFIG                              = 0x19,
57290650Shselasky	MLX5_EVENT_TYPE_DB_BF_CONGESTION                           = 0x1a,
58290650Shselasky	MLX5_EVENT_TYPE_STALL_EVENT                                = 0x1b,
59290650Shselasky	MLX5_EVENT_TYPE_DROPPED_PACKET_LOGGED_EVENT                = 0x1f,
60290650Shselasky	MLX5_EVENT_TYPE_CMD                                        = 0xa,
61290650Shselasky	MLX5_EVENT_TYPE_PAGE_REQUEST                               = 0xb,
62290650Shselasky	MLX5_EVENT_TYPE_NIC_VPORT_CHANGE                           = 0xd
63290650Shselasky};
64290650Shselasky
65290650Shselaskyenum {
66290650Shselasky	MLX5_MODIFY_TIR_BITMASK_LRO                                                                                                         = 0x0,
67290650Shselasky	MLX5_MODIFY_TIR_BITMASK_INDIRECT_TABLE                                                                                              = 0x1,
68290650Shselasky	MLX5_MODIFY_TIR_BITMASK_HASH                                                                                                        = 0x2,
69290650Shselasky	MLX5_MODIFY_TIR_BITMASK_TUNNELED_OFFLOAD_EN                                                                                         = 0x3
70290650Shselasky};
71290650Shselasky
72290650Shselaskyenum {
73290650Shselasky	MLX5_MODIFY_RQT_BITMASK_RQN_LIST          = 0x1,
74290650Shselasky};
75290650Shselasky
76290650Shselaskyenum {
77290650Shselasky	MLX5_CMD_OP_QUERY_HCA_CAP                 = 0x100,
78290650Shselasky	MLX5_CMD_OP_QUERY_ADAPTER                 = 0x101,
79290650Shselasky	MLX5_CMD_OP_INIT_HCA                      = 0x102,
80290650Shselasky	MLX5_CMD_OP_TEARDOWN_HCA                  = 0x103,
81290650Shselasky	MLX5_CMD_OP_ENABLE_HCA                    = 0x104,
82290650Shselasky	MLX5_CMD_OP_DISABLE_HCA                   = 0x105,
83290650Shselasky	MLX5_CMD_OP_QUERY_PAGES                   = 0x107,
84290650Shselasky	MLX5_CMD_OP_MANAGE_PAGES                  = 0x108,
85290650Shselasky	MLX5_CMD_OP_SET_HCA_CAP                   = 0x109,
86290650Shselasky	MLX5_CMD_OP_QUERY_ISSI                    = 0x10a,
87290650Shselasky	MLX5_CMD_OP_SET_ISSI                      = 0x10b,
88290650Shselasky	MLX5_CMD_OP_SET_DRIVER_VERSION            = 0x10d,
89290650Shselasky	MLX5_CMD_OP_CREATE_MKEY                   = 0x200,
90290650Shselasky	MLX5_CMD_OP_QUERY_MKEY                    = 0x201,
91290650Shselasky	MLX5_CMD_OP_DESTROY_MKEY                  = 0x202,
92290650Shselasky	MLX5_CMD_OP_QUERY_SPECIAL_CONTEXTS        = 0x203,
93290650Shselasky	MLX5_CMD_OP_PAGE_FAULT_RESUME             = 0x204,
94290650Shselasky	MLX5_CMD_OP_CREATE_EQ                     = 0x301,
95290650Shselasky	MLX5_CMD_OP_DESTROY_EQ                    = 0x302,
96290650Shselasky	MLX5_CMD_OP_QUERY_EQ                      = 0x303,
97290650Shselasky	MLX5_CMD_OP_GEN_EQE                       = 0x304,
98290650Shselasky	MLX5_CMD_OP_CREATE_CQ                     = 0x400,
99290650Shselasky	MLX5_CMD_OP_DESTROY_CQ                    = 0x401,
100290650Shselasky	MLX5_CMD_OP_QUERY_CQ                      = 0x402,
101290650Shselasky	MLX5_CMD_OP_MODIFY_CQ                     = 0x403,
102290650Shselasky	MLX5_CMD_OP_CREATE_QP                     = 0x500,
103290650Shselasky	MLX5_CMD_OP_DESTROY_QP                    = 0x501,
104290650Shselasky	MLX5_CMD_OP_RST2INIT_QP                   = 0x502,
105290650Shselasky	MLX5_CMD_OP_INIT2RTR_QP                   = 0x503,
106290650Shselasky	MLX5_CMD_OP_RTR2RTS_QP                    = 0x504,
107290650Shselasky	MLX5_CMD_OP_RTS2RTS_QP                    = 0x505,
108290650Shselasky	MLX5_CMD_OP_SQERR2RTS_QP                  = 0x506,
109290650Shselasky	MLX5_CMD_OP_2ERR_QP                       = 0x507,
110290650Shselasky	MLX5_CMD_OP_2RST_QP                       = 0x50a,
111290650Shselasky	MLX5_CMD_OP_QUERY_QP                      = 0x50b,
112290650Shselasky	MLX5_CMD_OP_SQD_RTS_QP                    = 0x50c,
113290650Shselasky	MLX5_CMD_OP_INIT2INIT_QP                  = 0x50e,
114290650Shselasky	MLX5_CMD_OP_CREATE_PSV                    = 0x600,
115290650Shselasky	MLX5_CMD_OP_DESTROY_PSV                   = 0x601,
116290650Shselasky	MLX5_CMD_OP_CREATE_SRQ                    = 0x700,
117290650Shselasky	MLX5_CMD_OP_DESTROY_SRQ                   = 0x701,
118290650Shselasky	MLX5_CMD_OP_QUERY_SRQ                     = 0x702,
119290650Shselasky	MLX5_CMD_OP_ARM_RQ                        = 0x703,
120290650Shselasky	MLX5_CMD_OP_CREATE_XRC_SRQ                = 0x705,
121290650Shselasky	MLX5_CMD_OP_DESTROY_XRC_SRQ               = 0x706,
122290650Shselasky	MLX5_CMD_OP_QUERY_XRC_SRQ                 = 0x707,
123290650Shselasky	MLX5_CMD_OP_ARM_XRC_SRQ                   = 0x708,
124290650Shselasky	MLX5_CMD_OP_CREATE_DCT                    = 0x710,
125290650Shselasky	MLX5_CMD_OP_DESTROY_DCT                   = 0x711,
126290650Shselasky	MLX5_CMD_OP_DRAIN_DCT                     = 0x712,
127290650Shselasky	MLX5_CMD_OP_QUERY_DCT                     = 0x713,
128290650Shselasky	MLX5_CMD_OP_ARM_DCT_FOR_KEY_VIOLATION     = 0x714,
129290650Shselasky	MLX5_CMD_OP_SET_DC_CNAK_TRACE             = 0x715,
130290650Shselasky	MLX5_CMD_OP_QUERY_DC_CNAK_TRACE           = 0x716,
131290650Shselasky	MLX5_CMD_OP_QUERY_VPORT_STATE             = 0x750,
132290650Shselasky	MLX5_CMD_OP_MODIFY_VPORT_STATE            = 0x751,
133290650Shselasky	MLX5_CMD_OP_QUERY_ESW_VPORT_CONTEXT       = 0x752,
134290650Shselasky	MLX5_CMD_OP_MODIFY_ESW_VPORT_CONTEXT      = 0x753,
135290650Shselasky	MLX5_CMD_OP_QUERY_NIC_VPORT_CONTEXT       = 0x754,
136290650Shselasky	MLX5_CMD_OP_MODIFY_NIC_VPORT_CONTEXT      = 0x755,
137290650Shselasky	MLX5_CMD_OP_QUERY_ROCE_ADDRESS            = 0x760,
138290650Shselasky	MLX5_CMD_OP_SET_ROCE_ADDRESS              = 0x761,
139290650Shselasky	MLX5_CMD_OP_QUERY_HCA_VPORT_CONTEXT       = 0x762,
140290650Shselasky	MLX5_CMD_OP_MODIFY_HCA_VPORT_CONTEXT      = 0x763,
141290650Shselasky	MLX5_CMD_OP_QUERY_HCA_VPORT_GID           = 0x764,
142290650Shselasky	MLX5_CMD_OP_QUERY_HCA_VPORT_PKEY          = 0x765,
143290650Shselasky	MLX5_CMD_OP_QUERY_VPORT_COUNTER           = 0x770,
144290650Shselasky	MLX5_CMD_OP_ALLOC_Q_COUNTER               = 0x771,
145290650Shselasky	MLX5_CMD_OP_DEALLOC_Q_COUNTER             = 0x772,
146290650Shselasky	MLX5_CMD_OP_QUERY_Q_COUNTER               = 0x773,
147290650Shselasky	MLX5_CMD_OP_ALLOC_PD                      = 0x800,
148290650Shselasky	MLX5_CMD_OP_DEALLOC_PD                    = 0x801,
149290650Shselasky	MLX5_CMD_OP_ALLOC_UAR                     = 0x802,
150290650Shselasky	MLX5_CMD_OP_DEALLOC_UAR                   = 0x803,
151290650Shselasky	MLX5_CMD_OP_CONFIG_INT_MODERATION         = 0x804,
152290650Shselasky	MLX5_CMD_OP_ACCESS_REG                    = 0x805,
153290650Shselasky	MLX5_CMD_OP_ATTACH_TO_MCG                 = 0x806,
154290650Shselasky	MLX5_CMD_OP_DETACH_FROM_MCG               = 0x807,
155290650Shselasky	MLX5_CMD_OP_GET_DROPPED_PACKET_LOG        = 0x80a,
156290650Shselasky	MLX5_CMD_OP_MAD_IFC                       = 0x50d,
157290650Shselasky	MLX5_CMD_OP_QUERY_MAD_DEMUX               = 0x80b,
158290650Shselasky	MLX5_CMD_OP_SET_MAD_DEMUX                 = 0x80c,
159290650Shselasky	MLX5_CMD_OP_NOP                           = 0x80d,
160290650Shselasky	MLX5_CMD_OP_ALLOC_XRCD                    = 0x80e,
161290650Shselasky	MLX5_CMD_OP_DEALLOC_XRCD                  = 0x80f,
162290650Shselasky	MLX5_CMD_OP_SET_BURST_SIZE                = 0x812,
163290650Shselasky	MLX5_CMD_OP_QUERY_BURST_SIZE              = 0x813,
164290650Shselasky	MLX5_CMD_OP_ACTIVATE_TRACER               = 0x814,
165290650Shselasky	MLX5_CMD_OP_DEACTIVATE_TRACER             = 0x815,
166290650Shselasky	MLX5_CMD_OP_ALLOC_TRANSPORT_DOMAIN        = 0x816,
167290650Shselasky	MLX5_CMD_OP_DEALLOC_TRANSPORT_DOMAIN      = 0x817,
168290650Shselasky	MLX5_CMD_OP_QUERY_CONG_STATUS             = 0x822,
169290650Shselasky	MLX5_CMD_OP_MODIFY_CONG_STATUS            = 0x823,
170290650Shselasky	MLX5_CMD_OP_QUERY_CONG_PARAMS             = 0x824,
171290650Shselasky	MLX5_CMD_OP_MODIFY_CONG_PARAMS            = 0x825,
172290650Shselasky	MLX5_CMD_OP_QUERY_CONG_STATISTICS         = 0x826,
173290650Shselasky	MLX5_CMD_OP_ADD_VXLAN_UDP_DPORT           = 0x827,
174290650Shselasky	MLX5_CMD_OP_DELETE_VXLAN_UDP_DPORT        = 0x828,
175290650Shselasky	MLX5_CMD_OP_SET_L2_TABLE_ENTRY            = 0x829,
176290650Shselasky	MLX5_CMD_OP_QUERY_L2_TABLE_ENTRY          = 0x82a,
177290650Shselasky	MLX5_CMD_OP_DELETE_L2_TABLE_ENTRY         = 0x82b,
178290650Shselasky	MLX5_CMD_OP_SET_WOL_ROL                   = 0x830,
179290650Shselasky	MLX5_CMD_OP_QUERY_WOL_ROL                 = 0x831,
180290650Shselasky	MLX5_CMD_OP_CREATE_TIR                    = 0x900,
181290650Shselasky	MLX5_CMD_OP_MODIFY_TIR                    = 0x901,
182290650Shselasky	MLX5_CMD_OP_DESTROY_TIR                   = 0x902,
183290650Shselasky	MLX5_CMD_OP_QUERY_TIR                     = 0x903,
184290650Shselasky	MLX5_CMD_OP_CREATE_SQ                     = 0x904,
185290650Shselasky	MLX5_CMD_OP_MODIFY_SQ                     = 0x905,
186290650Shselasky	MLX5_CMD_OP_DESTROY_SQ                    = 0x906,
187290650Shselasky	MLX5_CMD_OP_QUERY_SQ                      = 0x907,
188290650Shselasky	MLX5_CMD_OP_CREATE_RQ                     = 0x908,
189290650Shselasky	MLX5_CMD_OP_MODIFY_RQ                     = 0x909,
190290650Shselasky	MLX5_CMD_OP_DESTROY_RQ                    = 0x90a,
191290650Shselasky	MLX5_CMD_OP_QUERY_RQ                      = 0x90b,
192290650Shselasky	MLX5_CMD_OP_CREATE_RMP                    = 0x90c,
193290650Shselasky	MLX5_CMD_OP_MODIFY_RMP                    = 0x90d,
194290650Shselasky	MLX5_CMD_OP_DESTROY_RMP                   = 0x90e,
195290650Shselasky	MLX5_CMD_OP_QUERY_RMP                     = 0x90f,
196290650Shselasky	MLX5_CMD_OP_CREATE_TIS                    = 0x912,
197290650Shselasky	MLX5_CMD_OP_MODIFY_TIS                    = 0x913,
198290650Shselasky	MLX5_CMD_OP_DESTROY_TIS                   = 0x914,
199290650Shselasky	MLX5_CMD_OP_QUERY_TIS                     = 0x915,
200290650Shselasky	MLX5_CMD_OP_CREATE_RQT                    = 0x916,
201290650Shselasky	MLX5_CMD_OP_MODIFY_RQT                    = 0x917,
202290650Shselasky	MLX5_CMD_OP_DESTROY_RQT                   = 0x918,
203290650Shselasky	MLX5_CMD_OP_QUERY_RQT                     = 0x919,
204290650Shselasky	MLX5_CMD_OP_SET_FLOW_TABLE_ROOT           = 0x92f,
205290650Shselasky	MLX5_CMD_OP_CREATE_FLOW_TABLE             = 0x930,
206290650Shselasky	MLX5_CMD_OP_DESTROY_FLOW_TABLE            = 0x931,
207290650Shselasky	MLX5_CMD_OP_QUERY_FLOW_TABLE              = 0x932,
208290650Shselasky	MLX5_CMD_OP_CREATE_FLOW_GROUP             = 0x933,
209290650Shselasky	MLX5_CMD_OP_DESTROY_FLOW_GROUP            = 0x934,
210290650Shselasky	MLX5_CMD_OP_QUERY_FLOW_GROUP              = 0x935,
211290650Shselasky	MLX5_CMD_OP_SET_FLOW_TABLE_ENTRY          = 0x936,
212290650Shselasky	MLX5_CMD_OP_QUERY_FLOW_TABLE_ENTRY        = 0x937,
213290650Shselasky	MLX5_CMD_OP_DELETE_FLOW_TABLE_ENTRY       = 0x938,
214290650Shselasky	MLX5_CMD_OP_ALLOC_FLOW_COUNTER            = 0x939,
215290650Shselasky	MLX5_CMD_OP_DEALLOC_FLOW_COUNTER          = 0x93a,
216290650Shselasky	MLX5_CMD_OP_QUERY_FLOW_COUNTER            = 0x93b
217290650Shselasky};
218290650Shselasky
219290650Shselaskyenum {
220290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OPCODE_QUERY_FW_INFO     = 0x8007,
221290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_QUERY_CAPABILITY         = 0x8400,
222290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_ACCESS_REGISTER          = 0x9001,
223290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_QUERY_VIRTUAL_MAC        = 0x9003,
224290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_SET_VIRTUAL_MAC          = 0x9004,
225290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_QUERY_WOL_ROL            = 0x9005,
226290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_SET_WOL_ROL              = 0x9006,
227290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OCBB_INIT                = 0x9007,
228290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OCBB_QUERY_HEADER_STATUS = 0x9008,
229290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OCBB_QUERY_ETOC_STATUS   = 0x9009,
230290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OCBB_SET_EVENT           = 0x900a,
231290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OPCODE_INIT_OCSD         = 0xf004
232290650Shselasky};
233290650Shselasky
234290650Shselaskystruct mlx5_ifc_flow_table_fields_supported_bits {
235290650Shselasky	u8         outer_dmac[0x1];
236290650Shselasky	u8         outer_smac[0x1];
237290650Shselasky	u8         outer_ether_type[0x1];
238290650Shselasky	u8         reserved_0[0x1];
239290650Shselasky	u8         outer_first_prio[0x1];
240290650Shselasky	u8         outer_first_cfi[0x1];
241290650Shselasky	u8         outer_first_vid[0x1];
242290650Shselasky	u8         reserved_1[0x1];
243290650Shselasky	u8         outer_second_prio[0x1];
244290650Shselasky	u8         outer_second_cfi[0x1];
245290650Shselasky	u8         outer_second_vid[0x1];
246290650Shselasky	u8         outer_ipv6_flow_label[0x1];
247290650Shselasky	u8         outer_sip[0x1];
248290650Shselasky	u8         outer_dip[0x1];
249290650Shselasky	u8         outer_frag[0x1];
250290650Shselasky	u8         outer_ip_protocol[0x1];
251290650Shselasky	u8         outer_ip_ecn[0x1];
252290650Shselasky	u8         outer_ip_dscp[0x1];
253290650Shselasky	u8         outer_udp_sport[0x1];
254290650Shselasky	u8         outer_udp_dport[0x1];
255290650Shselasky	u8         outer_tcp_sport[0x1];
256290650Shselasky	u8         outer_tcp_dport[0x1];
257290650Shselasky	u8         outer_tcp_flags[0x1];
258290650Shselasky	u8         outer_gre_protocol[0x1];
259290650Shselasky	u8         outer_gre_key[0x1];
260290650Shselasky	u8         outer_vxlan_vni[0x1];
261290650Shselasky	u8         reserved_2[0x5];
262290650Shselasky	u8         source_eswitch_port[0x1];
263290650Shselasky
264290650Shselasky	u8         inner_dmac[0x1];
265290650Shselasky	u8         inner_smac[0x1];
266290650Shselasky	u8         inner_ether_type[0x1];
267290650Shselasky	u8         reserved_3[0x1];
268290650Shselasky	u8         inner_first_prio[0x1];
269290650Shselasky	u8         inner_first_cfi[0x1];
270290650Shselasky	u8         inner_first_vid[0x1];
271290650Shselasky	u8         reserved_4[0x1];
272290650Shselasky	u8         inner_second_prio[0x1];
273290650Shselasky	u8         inner_second_cfi[0x1];
274290650Shselasky	u8         inner_second_vid[0x1];
275290650Shselasky	u8         inner_ipv6_flow_label[0x1];
276290650Shselasky	u8         inner_sip[0x1];
277290650Shselasky	u8         inner_dip[0x1];
278290650Shselasky	u8         inner_frag[0x1];
279290650Shselasky	u8         inner_ip_protocol[0x1];
280290650Shselasky	u8         inner_ip_ecn[0x1];
281290650Shselasky	u8         inner_ip_dscp[0x1];
282290650Shselasky	u8         inner_udp_sport[0x1];
283290650Shselasky	u8         inner_udp_dport[0x1];
284290650Shselasky	u8         inner_tcp_sport[0x1];
285290650Shselasky	u8         inner_tcp_dport[0x1];
286290650Shselasky	u8         inner_tcp_flags[0x1];
287290650Shselasky	u8         reserved_5[0x9];
288290650Shselasky
289290650Shselasky	u8         reserved_6[0x1f];
290290650Shselasky	u8         source_sqn[0x1];
291290650Shselasky
292290650Shselasky	u8         reserved_7[0x20];
293290650Shselasky};
294290650Shselasky
295290650Shselaskystruct mlx5_ifc_flow_table_prop_layout_bits {
296290650Shselasky	u8         ft_support[0x1];
297290650Shselasky	u8         flow_tag[0x1];
298290650Shselasky	u8         flow_counter[0x1];
299290650Shselasky	u8         flow_modify_en[0x1];
300290650Shselasky	u8         modify_root[0x1];
301290650Shselasky	u8         reserved_0[0x1b];
302290650Shselasky
303290650Shselasky	u8         reserved_1[0x2];
304290650Shselasky	u8         log_max_ft_size[0x6];
305290650Shselasky	u8         reserved_2[0x10];
306290650Shselasky	u8         max_ft_level[0x8];
307290650Shselasky
308290650Shselasky	u8         reserved_3[0x20];
309290650Shselasky
310290650Shselasky	u8         reserved_4[0x18];
311290650Shselasky	u8         log_max_ft_num[0x8];
312290650Shselasky
313290650Shselasky	u8         reserved_5[0x10];
314290650Shselasky	u8         log_max_flow_counter[0x8];
315290650Shselasky	u8         log_max_destination[0x8];
316290650Shselasky
317290650Shselasky	u8         reserved_6[0x18];
318290650Shselasky	u8         log_max_flow[0x8];
319290650Shselasky
320290650Shselasky	u8         reserved_7[0x40];
321290650Shselasky
322290650Shselasky	struct mlx5_ifc_flow_table_fields_supported_bits ft_field_support;
323290650Shselasky
324290650Shselasky	struct mlx5_ifc_flow_table_fields_supported_bits ft_field_bitmask_support;
325290650Shselasky};
326290650Shselasky
327290650Shselaskystruct mlx5_ifc_odp_per_transport_service_cap_bits {
328290650Shselasky	u8         send[0x1];
329290650Shselasky	u8         receive[0x1];
330290650Shselasky	u8         write[0x1];
331290650Shselasky	u8         read[0x1];
332290650Shselasky	u8         atomic[0x1];
333290650Shselasky	u8         srq_receive[0x1];
334290650Shselasky	u8         reserved_0[0x1a];
335290650Shselasky};
336290650Shselasky
337290650Shselaskystruct mlx5_ifc_flow_counter_list_bits {
338290650Shselasky	u8         reserved_0[0x10];
339290650Shselasky	u8         flow_counter_id[0x10];
340290650Shselasky
341290650Shselasky	u8         reserved_1[0x20];
342290650Shselasky};
343290650Shselasky
344290650Shselaskyenum {
345290650Shselasky	MLX5_FLOW_CONTEXT_DEST_TYPE_VPORT                    = 0x0,
346290650Shselasky	MLX5_FLOW_CONTEXT_DEST_TYPE_FLOW_TABLE               = 0x1,
347290650Shselasky	MLX5_FLOW_CONTEXT_DEST_TYPE_TIR                      = 0x2,
348290650Shselasky};
349290650Shselasky
350290650Shselaskystruct mlx5_ifc_dest_format_struct_bits {
351290650Shselasky	u8         destination_type[0x8];
352290650Shselasky	u8         destination_id[0x18];
353290650Shselasky
354290650Shselasky	u8         reserved_0[0x20];
355290650Shselasky};
356290650Shselasky
357290650Shselaskystruct mlx5_ifc_fte_match_set_lyr_2_4_bits {
358290650Shselasky	u8         smac_47_16[0x20];
359290650Shselasky
360290650Shselasky	u8         smac_15_0[0x10];
361290650Shselasky	u8         ethertype[0x10];
362290650Shselasky
363290650Shselasky	u8         dmac_47_16[0x20];
364290650Shselasky
365290650Shselasky	u8         dmac_15_0[0x10];
366290650Shselasky	u8         first_prio[0x3];
367290650Shselasky	u8         first_cfi[0x1];
368290650Shselasky	u8         first_vid[0xc];
369290650Shselasky
370290650Shselasky	u8         ip_protocol[0x8];
371290650Shselasky	u8         ip_dscp[0x6];
372290650Shselasky	u8         ip_ecn[0x2];
373290650Shselasky	u8         vlan_tag[0x1];
374290650Shselasky	u8         reserved_0[0x1];
375290650Shselasky	u8         frag[0x1];
376290650Shselasky	u8         reserved_1[0x4];
377290650Shselasky	u8         tcp_flags[0x9];
378290650Shselasky
379290650Shselasky	u8         tcp_sport[0x10];
380290650Shselasky	u8         tcp_dport[0x10];
381290650Shselasky
382290650Shselasky	u8         reserved_2[0x20];
383290650Shselasky
384290650Shselasky	u8         udp_sport[0x10];
385290650Shselasky	u8         udp_dport[0x10];
386290650Shselasky
387290650Shselasky	u8         src_ip[4][0x20];
388290650Shselasky
389290650Shselasky	u8         dst_ip[4][0x20];
390290650Shselasky};
391290650Shselasky
392290650Shselaskystruct mlx5_ifc_fte_match_set_misc_bits {
393290650Shselasky	u8         reserved_0[0x8];
394290650Shselasky	u8         source_sqn[0x18];
395290650Shselasky
396290650Shselasky	u8         reserved_1[0x10];
397290650Shselasky	u8         source_port[0x10];
398290650Shselasky
399290650Shselasky	u8         outer_second_prio[0x3];
400290650Shselasky	u8         outer_second_cfi[0x1];
401290650Shselasky	u8         outer_second_vid[0xc];
402290650Shselasky	u8         inner_second_prio[0x3];
403290650Shselasky	u8         inner_second_cfi[0x1];
404290650Shselasky	u8         inner_second_vid[0xc];
405290650Shselasky
406290650Shselasky	u8         outer_second_vlan_tag[0x1];
407290650Shselasky	u8         inner_second_vlan_tag[0x1];
408290650Shselasky	u8         reserved_2[0xe];
409290650Shselasky	u8         gre_protocol[0x10];
410290650Shselasky
411290650Shselasky	u8         gre_key_h[0x18];
412290650Shselasky	u8         gre_key_l[0x8];
413290650Shselasky
414290650Shselasky	u8         vxlan_vni[0x18];
415290650Shselasky	u8         reserved_3[0x8];
416290650Shselasky
417290650Shselasky	u8         reserved_4[0x20];
418290650Shselasky
419290650Shselasky	u8         reserved_5[0xc];
420290650Shselasky	u8         outer_ipv6_flow_label[0x14];
421290650Shselasky
422290650Shselasky	u8         reserved_6[0xc];
423290650Shselasky	u8         inner_ipv6_flow_label[0x14];
424290650Shselasky
425290650Shselasky	u8         reserved_7[0xe0];
426290650Shselasky};
427290650Shselasky
428290650Shselaskystruct mlx5_ifc_cmd_pas_bits {
429290650Shselasky	u8         pa_h[0x20];
430290650Shselasky
431290650Shselasky	u8         pa_l[0x14];
432290650Shselasky	u8         reserved_0[0xc];
433290650Shselasky};
434290650Shselasky
435290650Shselaskystruct mlx5_ifc_uint64_bits {
436290650Shselasky	u8         hi[0x20];
437290650Shselasky
438290650Shselasky	u8         lo[0x20];
439290650Shselasky};
440290650Shselasky
441290650Shselaskystruct mlx5_ifc_nodnic_ring_doorbell_bits {
442290650Shselasky	u8         reserved_0[0x8];
443290650Shselasky	u8         ring_pi[0x10];
444290650Shselasky	u8         reserved_1[0x8];
445290650Shselasky};
446290650Shselasky
447290650Shselaskyenum {
448290650Shselasky	MLX5_ADS_STAT_RATE_NO_LIMIT  = 0x0,
449290650Shselasky	MLX5_ADS_STAT_RATE_2_5GBPS   = 0x7,
450290650Shselasky	MLX5_ADS_STAT_RATE_10GBPS    = 0x8,
451290650Shselasky	MLX5_ADS_STAT_RATE_30GBPS    = 0x9,
452290650Shselasky	MLX5_ADS_STAT_RATE_5GBPS     = 0xa,
453290650Shselasky	MLX5_ADS_STAT_RATE_20GBPS    = 0xb,
454290650Shselasky	MLX5_ADS_STAT_RATE_40GBPS    = 0xc,
455290650Shselasky	MLX5_ADS_STAT_RATE_60GBPS    = 0xd,
456290650Shselasky	MLX5_ADS_STAT_RATE_80GBPS    = 0xe,
457290650Shselasky	MLX5_ADS_STAT_RATE_120GBPS   = 0xf,
458290650Shselasky};
459290650Shselasky
460290650Shselaskystruct mlx5_ifc_ads_bits {
461290650Shselasky	u8         fl[0x1];
462290650Shselasky	u8         free_ar[0x1];
463290650Shselasky	u8         reserved_0[0xe];
464290650Shselasky	u8         pkey_index[0x10];
465290650Shselasky
466290650Shselasky	u8         reserved_1[0x8];
467290650Shselasky	u8         grh[0x1];
468290650Shselasky	u8         mlid[0x7];
469290650Shselasky	u8         rlid[0x10];
470290650Shselasky
471290650Shselasky	u8         ack_timeout[0x5];
472290650Shselasky	u8         reserved_2[0x3];
473290650Shselasky	u8         src_addr_index[0x8];
474290650Shselasky	u8         log_rtm[0x4];
475290650Shselasky	u8         stat_rate[0x4];
476290650Shselasky	u8         hop_limit[0x8];
477290650Shselasky
478290650Shselasky	u8         reserved_3[0x4];
479290650Shselasky	u8         tclass[0x8];
480290650Shselasky	u8         flow_label[0x14];
481290650Shselasky
482290650Shselasky	u8         rgid_rip[16][0x8];
483290650Shselasky
484290650Shselasky	u8         reserved_4[0x4];
485290650Shselasky	u8         f_dscp[0x1];
486290650Shselasky	u8         f_ecn[0x1];
487290650Shselasky	u8         reserved_5[0x1];
488290650Shselasky	u8         f_eth_prio[0x1];
489290650Shselasky	u8         ecn[0x2];
490290650Shselasky	u8         dscp[0x6];
491290650Shselasky	u8         udp_sport[0x10];
492290650Shselasky
493290650Shselasky	u8         dei_cfi[0x1];
494290650Shselasky	u8         eth_prio[0x3];
495290650Shselasky	u8         sl[0x4];
496290650Shselasky	u8         port[0x8];
497290650Shselasky	u8         rmac_47_32[0x10];
498290650Shselasky
499290650Shselasky	u8         rmac_31_0[0x20];
500290650Shselasky};
501290650Shselasky
502290650Shselaskystruct mlx5_ifc_e_switch_cap_bits {
503290650Shselasky	u8         vport_svlan_strip[0x1];
504290650Shselasky	u8         vport_cvlan_strip[0x1];
505290650Shselasky	u8         vport_svlan_insert[0x1];
506290650Shselasky	u8         vport_cvlan_insert_if_not_exist[0x1];
507290650Shselasky	u8         vport_cvlan_insert_overwrite[0x1];
508290650Shselasky	u8         reserved_0[0x1b];
509290650Shselasky
510290650Shselasky	u8         reserved_1[0x7e0];
511290650Shselasky};
512290650Shselasky
513290650Shselaskystruct mlx5_ifc_flow_table_eswitch_cap_bits {
514290650Shselasky	u8         reserved_0[0x200];
515290650Shselasky
516290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_esw_fdb;
517290650Shselasky
518290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_esw_acl_ingress;
519290650Shselasky
520290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_esw_acl_egress;
521290650Shselasky
522290650Shselasky	u8         reserved_1[0x7800];
523290650Shselasky};
524290650Shselasky
525290650Shselaskystruct mlx5_ifc_flow_table_nic_cap_bits {
526290650Shselasky	u8         reserved_0[0x200];
527290650Shselasky
528290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive;
529290650Shselasky
530290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive_rdma;
531290650Shselasky
532290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive_sniffer;
533290650Shselasky
534290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_transmit;
535290650Shselasky
536290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_transmit_rdma;
537290650Shselasky
538290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_transmit_sniffer;
539290650Shselasky
540290650Shselasky	u8         reserved_1[0x7200];
541290650Shselasky};
542290650Shselasky
543290650Shselaskystruct mlx5_ifc_per_protocol_networking_offload_caps_bits {
544290650Shselasky	u8         csum_cap[0x1];
545290650Shselasky	u8         vlan_cap[0x1];
546290650Shselasky	u8         lro_cap[0x1];
547290650Shselasky	u8         lro_psh_flag[0x1];
548290650Shselasky	u8         lro_time_stamp[0x1];
549290650Shselasky	u8         lro_max_msg_sz_mode[0x2];
550290650Shselasky	u8         reserved_0[0x2];
551290650Shselasky	u8         self_lb_mc[0x1];
552290650Shselasky	u8         self_lb_uc[0x1];
553290650Shselasky	u8         max_lso_cap[0x5];
554290650Shselasky	u8         multi_pkt_send_wqe[0x2];
555290650Shselasky	u8         wqe_inline_mode[0x2];
556290650Shselasky	u8         rss_ind_tbl_cap[0x4];
557290650Shselasky	u8         reserved_1[0x3];
558290650Shselasky	u8         tunnel_lso_const_out_ip_id[0x1];
559290650Shselasky	u8         tunnel_lro_gre[0x1];
560290650Shselasky	u8         tunnel_lro_vxlan[0x1];
561290650Shselasky	u8         tunnel_statless_gre[0x1];
562290650Shselasky	u8         tunnel_stateless_vxlan[0x1];
563290650Shselasky
564290650Shselasky	u8         reserved_2[0x20];
565290650Shselasky
566290650Shselasky	u8         reserved_3[0x10];
567290650Shselasky	u8         lro_min_mss_size[0x10];
568290650Shselasky
569290650Shselasky	u8         reserved_4[0x120];
570290650Shselasky
571290650Shselasky	u8         lro_timer_supported_periods[4][0x20];
572290650Shselasky
573290650Shselasky	u8         reserved_5[0x600];
574290650Shselasky};
575290650Shselasky
576290650Shselaskyenum {
577290650Shselasky	MLX5_ROCE_CAP_L3_TYPE_GRH   = 0x1,
578290650Shselasky	MLX5_ROCE_CAP_L3_TYPE_IPV4  = 0x2,
579290650Shselasky	MLX5_ROCE_CAP_L3_TYPE_IPV6  = 0x4,
580290650Shselasky};
581290650Shselasky
582290650Shselaskystruct mlx5_ifc_roce_cap_bits {
583290650Shselasky	u8         roce_apm[0x1];
584290650Shselasky	u8         eth_prio_primary_in_rts2rts[0x1];
585290650Shselasky	u8         reserved_0[0x1e];
586290650Shselasky
587290650Shselasky	u8         reserved_1[0x60];
588290650Shselasky
589290650Shselasky	u8         reserved_2[0xc];
590290650Shselasky	u8         l3_type[0x4];
591290650Shselasky	u8         reserved_3[0x8];
592290650Shselasky	u8         roce_version[0x8];
593290650Shselasky
594290650Shselasky	u8         reserved_4[0x10];
595290650Shselasky	u8         r_roce_dest_udp_port[0x10];
596290650Shselasky
597290650Shselasky	u8         r_roce_max_src_udp_port[0x10];
598290650Shselasky	u8         r_roce_min_src_udp_port[0x10];
599290650Shselasky
600290650Shselasky	u8         reserved_5[0x10];
601290650Shselasky	u8         roce_address_table_size[0x10];
602290650Shselasky
603290650Shselasky	u8         reserved_6[0x700];
604290650Shselasky};
605290650Shselasky
606290650Shselaskyenum {
607290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_1_BYTE     = 0x1,
608290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_2_BYTES    = 0x2,
609290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_4_BYTES    = 0x4,
610290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_8_BYTES    = 0x8,
611290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_16_BYTES   = 0x10,
612290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_32_BYTES   = 0x20,
613290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_64_BYTES   = 0x40,
614290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_128_BYTES  = 0x80,
615290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_256_BYTES  = 0x100,
616290650Shselasky};
617290650Shselasky
618290650Shselaskyenum {
619290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_1_BYTE     = 0x1,
620290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_2_BYTES    = 0x2,
621290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_4_BYTES    = 0x4,
622290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_8_BYTES    = 0x8,
623290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_16_BYTES   = 0x10,
624290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_32_BYTES   = 0x20,
625290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_64_BYTES   = 0x40,
626290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_128_BYTES  = 0x80,
627290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_256_BYTES  = 0x100,
628290650Shselasky};
629290650Shselasky
630290650Shselaskystruct mlx5_ifc_atomic_caps_bits {
631290650Shselasky	u8         reserved_0[0x40];
632290650Shselasky
633290650Shselasky	u8         atomic_req_endianess[0x1];
634290650Shselasky	u8         reserved_1[0x1f];
635290650Shselasky
636290650Shselasky	u8         reserved_2[0x20];
637290650Shselasky
638290650Shselasky	u8         reserved_3[0x10];
639290650Shselasky	u8         atomic_operations[0x10];
640290650Shselasky
641290650Shselasky	u8         reserved_4[0x10];
642290650Shselasky	u8         atomic_size_qp[0x10];
643290650Shselasky
644290650Shselasky	u8         reserved_5[0x10];
645290650Shselasky	u8         atomic_size_dc[0x10];
646290650Shselasky
647290650Shselasky	u8         reserved_6[0x720];
648290650Shselasky};
649290650Shselasky
650290650Shselaskystruct mlx5_ifc_odp_cap_bits {
651290650Shselasky	u8         reserved_0[0x40];
652290650Shselasky
653290650Shselasky	u8         sig[0x1];
654290650Shselasky	u8         reserved_1[0x1f];
655290650Shselasky
656290650Shselasky	u8         reserved_2[0x20];
657290650Shselasky
658290650Shselasky	struct mlx5_ifc_odp_per_transport_service_cap_bits rc_odp_caps;
659290650Shselasky
660290650Shselasky	struct mlx5_ifc_odp_per_transport_service_cap_bits uc_odp_caps;
661290650Shselasky
662290650Shselasky	struct mlx5_ifc_odp_per_transport_service_cap_bits ud_odp_caps;
663290650Shselasky
664290650Shselasky	struct mlx5_ifc_odp_per_transport_service_cap_bits xrc_odp_caps;
665290650Shselasky
666290650Shselasky	struct mlx5_ifc_odp_per_transport_service_cap_bits dc_odp_caps;
667290650Shselasky
668290650Shselasky	u8         reserved_3[0x6e0];
669290650Shselasky};
670290650Shselasky
671290650Shselaskyenum {
672290650Shselasky	MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_8_GID_ENTRIES    = 0x0,
673290650Shselasky	MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_16_GID_ENTRIES   = 0x1,
674290650Shselasky	MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_32_GID_ENTRIES   = 0x2,
675290650Shselasky	MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_64_GID_ENTRIES   = 0x3,
676290650Shselasky	MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_128_GID_ENTRIES  = 0x4,
677290650Shselasky};
678290650Shselasky
679290650Shselaskyenum {
680290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_128_ENTRIES  = 0x0,
681290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_256_ENTRIES  = 0x1,
682290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_512_ENTRIES  = 0x2,
683290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_1K_ENTRIES   = 0x3,
684290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_2K_ENTRIES   = 0x4,
685290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_4K_ENTRIES   = 0x5,
686290650Shselasky};
687290650Shselasky
688290650Shselaskyenum {
689290650Shselasky	MLX5_CMD_HCA_CAP_PORT_TYPE_IB        = 0x0,
690290650Shselasky	MLX5_CMD_HCA_CAP_PORT_TYPE_ETHERNET  = 0x1,
691290650Shselasky};
692290650Shselasky
693290650Shselaskyenum {
694290650Shselasky	MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_DISABLED       = 0x0,
695290650Shselasky	MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_INITIAL_STATE  = 0x1,
696290650Shselasky	MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_ENABLED        = 0x3,
697290650Shselasky};
698290650Shselasky
699290650Shselaskystruct mlx5_ifc_cmd_hca_cap_bits {
700290650Shselasky	u8         reserved_0[0x80];
701290650Shselasky
702290650Shselasky	u8         log_max_srq_sz[0x8];
703290650Shselasky	u8         log_max_qp_sz[0x8];
704290650Shselasky	u8         reserved_1[0xb];
705290650Shselasky	u8         log_max_qp[0x5];
706290650Shselasky
707290650Shselasky	u8         reserved_2[0xb];
708290650Shselasky	u8         log_max_srq[0x5];
709290650Shselasky	u8         reserved_3[0x10];
710290650Shselasky
711290650Shselasky	u8         reserved_4[0x8];
712290650Shselasky	u8         log_max_cq_sz[0x8];
713290650Shselasky	u8         reserved_5[0xb];
714290650Shselasky	u8         log_max_cq[0x5];
715290650Shselasky
716290650Shselasky	u8         log_max_eq_sz[0x8];
717290650Shselasky	u8         reserved_6[0x2];
718290650Shselasky	u8         log_max_mkey[0x6];
719290650Shselasky	u8         reserved_7[0xc];
720290650Shselasky	u8         log_max_eq[0x4];
721290650Shselasky
722290650Shselasky	u8         max_indirection[0x8];
723290650Shselasky	u8         reserved_8[0x1];
724290650Shselasky	u8         log_max_mrw_sz[0x7];
725290650Shselasky	u8         reserved_9[0x2];
726290650Shselasky	u8         log_max_bsf_list_size[0x6];
727290650Shselasky	u8         reserved_10[0x2];
728290650Shselasky	u8         log_max_klm_list_size[0x6];
729290650Shselasky
730290650Shselasky	u8         reserved_11[0xa];
731290650Shselasky	u8         log_max_ra_req_dc[0x6];
732290650Shselasky	u8         reserved_12[0xa];
733290650Shselasky	u8         log_max_ra_res_dc[0x6];
734290650Shselasky
735290650Shselasky	u8         reserved_13[0xa];
736290650Shselasky	u8         log_max_ra_req_qp[0x6];
737290650Shselasky	u8         reserved_14[0xa];
738290650Shselasky	u8         log_max_ra_res_qp[0x6];
739290650Shselasky
740290650Shselasky	u8         pad_cap[0x1];
741290650Shselasky	u8         cc_query_allowed[0x1];
742290650Shselasky	u8         cc_modify_allowed[0x1];
743290650Shselasky	u8         reserved_15[0xd];
744290650Shselasky	u8         gid_table_size[0x10];
745290650Shselasky
746290650Shselasky	u8         out_of_seq_cnt[0x1];
747290650Shselasky	u8         vport_counters[0x1];
748290650Shselasky	u8         reserved_16[0x4];
749290650Shselasky	u8         max_qp_cnt[0xa];
750290650Shselasky	u8         pkey_table_size[0x10];
751290650Shselasky
752290650Shselasky	u8         vport_group_manager[0x1];
753290650Shselasky	u8         vhca_group_manager[0x1];
754290650Shselasky	u8         ib_virt[0x1];
755290650Shselasky	u8         eth_virt[0x1];
756290650Shselasky	u8         reserved_17[0x1];
757290650Shselasky	u8         ets[0x1];
758290650Shselasky	u8         nic_flow_table[0x1];
759290650Shselasky	u8         eswitch_flow_table[0x1];
760290650Shselasky	u8         reserved_18[0x3];
761290650Shselasky	u8         local_ca_ack_delay[0x5];
762290650Shselasky	u8         port_module_event[0x1];
763290650Shselasky	u8         reserved_19[0x5];
764290650Shselasky	u8         port_type[0x2];
765290650Shselasky	u8         num_ports[0x8];
766290650Shselasky
767290650Shselasky	u8         snapshot[0x1];
768290650Shselasky	u8         reserved_20[0x2];
769290650Shselasky	u8         log_max_msg[0x5];
770290650Shselasky	u8         reserved_21[0x4];
771290650Shselasky	u8         max_tc[0x4];
772290650Shselasky	u8         reserved_22[0x6];
773290650Shselasky	u8         rol_s[0x1];
774290650Shselasky	u8         rol_g[0x1];
775290650Shselasky	u8         reserved_23[0x1];
776290650Shselasky	u8         wol_s[0x1];
777290650Shselasky	u8         wol_g[0x1];
778290650Shselasky	u8         wol_a[0x1];
779290650Shselasky	u8         wol_b[0x1];
780290650Shselasky	u8         wol_m[0x1];
781290650Shselasky	u8         wol_u[0x1];
782290650Shselasky	u8         wol_p[0x1];
783290650Shselasky
784290650Shselasky	u8         stat_rate_support[0x10];
785290650Shselasky	u8         reserved_24[0xc];
786290650Shselasky	u8         cqe_version[0x4];
787290650Shselasky
788290650Shselasky	u8         compact_address_vector[0x1];
789290650Shselasky	u8         striding_rq[0x1];
790290650Shselasky	u8         reserved_25[0xc];
791290650Shselasky	u8         dc_cnak_trace[0x1];
792290650Shselasky	u8         drain_sigerr[0x1];
793290650Shselasky	u8         cmdif_checksum[0x2];
794290650Shselasky	u8         sigerr_cqe[0x1];
795290650Shselasky	u8         reserved_26[0x1];
796290650Shselasky	u8         wq_signature[0x1];
797290650Shselasky	u8         sctr_data_cqe[0x1];
798290650Shselasky	u8         reserved_27[0x1];
799290650Shselasky	u8         sho[0x1];
800290650Shselasky	u8         tph[0x1];
801290650Shselasky	u8         rf[0x1];
802290650Shselasky	u8         dct[0x1];
803290650Shselasky	u8         reserved_28[0x1];
804290650Shselasky	u8         eth_net_offloads[0x1];
805290650Shselasky	u8         roce[0x1];
806290650Shselasky	u8         atomic[0x1];
807290650Shselasky	u8         reserved_29[0x1];
808290650Shselasky
809290650Shselasky	u8         cq_oi[0x1];
810290650Shselasky	u8         cq_resize[0x1];
811290650Shselasky	u8         cq_moderation[0x1];
812290650Shselasky	u8         reserved_30[0x3];
813290650Shselasky	u8         cq_eq_remap[0x1];
814290650Shselasky	u8         pg[0x1];
815290650Shselasky	u8         block_lb_mc[0x1];
816290650Shselasky	u8         exponential_backoff[0x1];
817290650Shselasky	u8         scqe_break_moderation[0x1];
818290650Shselasky	u8         cq_period_start_from_cqe[0x1];
819290650Shselasky	u8         cd[0x1];
820290650Shselasky	u8         atm[0x1];
821290650Shselasky	u8         apm[0x1];
822290650Shselasky	u8         reserved_31[0x7];
823290650Shselasky	u8         qkv[0x1];
824290650Shselasky	u8         pkv[0x1];
825290650Shselasky	u8         reserved_32[0x4];
826290650Shselasky	u8         xrc[0x1];
827290650Shselasky	u8         ud[0x1];
828290650Shselasky	u8         uc[0x1];
829290650Shselasky	u8         rc[0x1];
830290650Shselasky
831290650Shselasky	u8         reserved_33[0xa];
832290650Shselasky	u8         uar_sz[0x6];
833290650Shselasky	u8         reserved_34[0x8];
834290650Shselasky	u8         log_pg_sz[0x8];
835290650Shselasky
836290650Shselasky	u8         bf[0x1];
837290650Shselasky	u8         driver_version[0x1];
838290650Shselasky	u8         pad_tx_eth_packet[0x1];
839290650Shselasky	u8         reserved_35[0x8];
840290650Shselasky	u8         log_bf_reg_size[0x5];
841290650Shselasky	u8         reserved_36[0x10];
842290650Shselasky
843290650Shselasky	u8         reserved_37[0x10];
844290650Shselasky	u8         max_wqe_sz_sq[0x10];
845290650Shselasky
846290650Shselasky	u8         reserved_38[0x10];
847290650Shselasky	u8         max_wqe_sz_rq[0x10];
848290650Shselasky
849290650Shselasky	u8         reserved_39[0x10];
850290650Shselasky	u8         max_wqe_sz_sq_dc[0x10];
851290650Shselasky
852290650Shselasky	u8         reserved_40[0x7];
853290650Shselasky	u8         max_qp_mcg[0x19];
854290650Shselasky
855290650Shselasky	u8         reserved_41[0x18];
856290650Shselasky	u8         log_max_mcg[0x8];
857290650Shselasky
858290650Shselasky	u8         reserved_42[0x3];
859290650Shselasky	u8         log_max_transport_domain[0x5];
860290650Shselasky	u8         reserved_43[0x3];
861290650Shselasky	u8         log_max_pd[0x5];
862290650Shselasky	u8         reserved_44[0xb];
863290650Shselasky	u8         log_max_xrcd[0x5];
864290650Shselasky
865290650Shselasky	u8         reserved_45[0x10];
866290650Shselasky	u8         max_flow_counter[0x10];
867290650Shselasky
868290650Shselasky	u8         reserved_46[0x3];
869290650Shselasky	u8         log_max_rq[0x5];
870290650Shselasky	u8         reserved_47[0x3];
871290650Shselasky	u8         log_max_sq[0x5];
872290650Shselasky	u8         reserved_48[0x3];
873290650Shselasky	u8         log_max_tir[0x5];
874290650Shselasky	u8         reserved_49[0x3];
875290650Shselasky	u8         log_max_tis[0x5];
876290650Shselasky
877290650Shselasky	u8         basic_cyclic_rcv_wqe[0x1];
878290650Shselasky	u8         reserved_50[0x2];
879290650Shselasky	u8         log_max_rmp[0x5];
880290650Shselasky	u8         reserved_51[0x3];
881290650Shselasky	u8         log_max_rqt[0x5];
882290650Shselasky	u8         reserved_52[0x3];
883290650Shselasky	u8         log_max_rqt_size[0x5];
884290650Shselasky	u8         reserved_53[0x3];
885290650Shselasky	u8         log_max_tis_per_sq[0x5];
886290650Shselasky
887290650Shselasky	u8         reserved_54[0x3];
888290650Shselasky	u8         log_max_stride_sz_rq[0x5];
889290650Shselasky	u8         reserved_55[0x3];
890290650Shselasky	u8         log_min_stride_sz_rq[0x5];
891290650Shselasky	u8         reserved_56[0x3];
892290650Shselasky	u8         log_max_stride_sz_sq[0x5];
893290650Shselasky	u8         reserved_57[0x3];
894290650Shselasky	u8         log_min_stride_sz_sq[0x5];
895290650Shselasky
896290650Shselasky	u8         reserved_58[0x1b];
897290650Shselasky	u8         log_max_wq_sz[0x5];
898290650Shselasky
899290650Shselasky	u8         nic_vport_change_event[0x1];
900290650Shselasky	u8         reserved_59[0xa];
901290650Shselasky	u8         log_max_vlan_list[0x5];
902290650Shselasky	u8         reserved_60[0x3];
903290650Shselasky	u8         log_max_current_mc_list[0x5];
904290650Shselasky	u8         reserved_61[0x3];
905290650Shselasky	u8         log_max_current_uc_list[0x5];
906290650Shselasky
907290650Shselasky	u8         reserved_62[0x80];
908290650Shselasky
909290650Shselasky	u8         reserved_63[0x3];
910290650Shselasky	u8         log_max_l2_table[0x5];
911290650Shselasky	u8         reserved_64[0x8];
912290650Shselasky	u8         log_uar_page_sz[0x10];
913290650Shselasky
914290650Shselasky	u8         reserved_65[0x20];
915290650Shselasky
916290650Shselasky	u8         device_frequency[0x20];
917290650Shselasky
918290650Shselasky	u8         reserved_66[0xa0];
919290650Shselasky
920290650Shselasky	u8         log_max_atomic_size_qp[0x8];
921290650Shselasky	u8         reserved_67[0x10];
922290650Shselasky	u8         log_max_atomic_size_dc[0x8];
923290650Shselasky
924290650Shselasky	u8         reserved_68[0x1f];
925290650Shselasky	u8         cqe_compression[0x1];
926290650Shselasky
927290650Shselasky	u8         cqe_compression_timeout[0x10];
928290650Shselasky	u8         cqe_compression_max_num[0x10];
929290650Shselasky
930290650Shselasky	u8         reserved_69[0x220];
931290650Shselasky};
932290650Shselasky
933290650Shselaskyunion mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits {
934290650Shselasky	struct mlx5_ifc_dest_format_struct_bits dest_format_struct;
935290650Shselasky	struct mlx5_ifc_flow_counter_list_bits flow_counter_list;
936290650Shselasky	u8         reserved_0[0x40];
937290650Shselasky};
938290650Shselasky
939290650Shselaskystruct mlx5_ifc_fte_match_param_bits {
940290650Shselasky	struct mlx5_ifc_fte_match_set_lyr_2_4_bits outer_headers;
941290650Shselasky
942290650Shselasky	struct mlx5_ifc_fte_match_set_misc_bits misc_parameters;
943290650Shselasky
944290650Shselasky	struct mlx5_ifc_fte_match_set_lyr_2_4_bits inner_headers;
945290650Shselasky
946290650Shselasky	u8         reserved_0[0xa00];
947290650Shselasky};
948290650Shselasky
949290650Shselaskyenum {
950290650Shselasky	MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_SRC_IP     = 0x0,
951290650Shselasky	MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_DST_IP     = 0x1,
952290650Shselasky	MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_L4_SPORT   = 0x2,
953290650Shselasky	MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_L4_DPORT   = 0x3,
954290650Shselasky	MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_IPSEC_SPI  = 0x4,
955290650Shselasky};
956290650Shselasky
957290650Shselaskystruct mlx5_ifc_rx_hash_field_select_bits {
958290650Shselasky	u8         l3_prot_type[0x1];
959290650Shselasky	u8         l4_prot_type[0x1];
960290650Shselasky	u8         selected_fields[0x1e];
961290650Shselasky};
962290650Shselasky
963290650Shselaskyenum {
964290650Shselasky	MLX5_WQ_TYPE_LINKED_LIST                 = 0x0,
965290650Shselasky	MLX5_WQ_TYPE_CYCLIC                      = 0x1,
966290650Shselasky	MLX5_WQ_TYPE_STRQ_LINKED_LIST            = 0x2,
967290650Shselasky	MLX5_WQ_TYPE_STRQ_CYCLIC                 = 0x3,
968290650Shselasky};
969290650Shselasky
970290650Shselaskyenum {
971290650Shselasky	MLX5_WQ_END_PAD_MODE_NONE               = 0x0,
972290650Shselasky	MLX5_WQ_END_PAD_MODE_ALIGN              = 0x1,
973290650Shselasky};
974290650Shselasky
975290650Shselaskystruct mlx5_ifc_wq_bits {
976290650Shselasky	u8         wq_type[0x4];
977290650Shselasky	u8         wq_signature[0x1];
978290650Shselasky	u8         end_padding_mode[0x2];
979290650Shselasky	u8         cd_slave[0x1];
980290650Shselasky	u8         reserved_0[0x18];
981290650Shselasky
982290650Shselasky	u8         hds_skip_first_sge[0x1];
983290650Shselasky	u8         log2_hds_buf_size[0x3];
984290650Shselasky	u8         reserved_1[0x7];
985290650Shselasky	u8         page_offset[0x5];
986290650Shselasky	u8         lwm[0x10];
987290650Shselasky
988290650Shselasky	u8         reserved_2[0x8];
989290650Shselasky	u8         pd[0x18];
990290650Shselasky
991290650Shselasky	u8         reserved_3[0x8];
992290650Shselasky	u8         uar_page[0x18];
993290650Shselasky
994290650Shselasky	u8         dbr_addr[0x40];
995290650Shselasky
996290650Shselasky	u8         hw_counter[0x20];
997290650Shselasky
998290650Shselasky	u8         sw_counter[0x20];
999290650Shselasky
1000290650Shselasky	u8         reserved_4[0xc];
1001290650Shselasky	u8         log_wq_stride[0x4];
1002290650Shselasky	u8         reserved_5[0x3];
1003290650Shselasky	u8         log_wq_pg_sz[0x5];
1004290650Shselasky	u8         reserved_6[0x3];
1005290650Shselasky	u8         log_wq_sz[0x5];
1006290650Shselasky
1007290650Shselasky	u8         reserved_7[0x15];
1008290650Shselasky	u8         single_wqe_log_num_of_strides[0x3];
1009290650Shselasky	u8         two_byte_shift_en[0x1];
1010290650Shselasky	u8         reserved_8[0x4];
1011290650Shselasky	u8         single_stride_log_num_of_bytes[0x3];
1012290650Shselasky
1013290650Shselasky	u8         reserved_9[0x4c0];
1014290650Shselasky
1015290650Shselasky	struct mlx5_ifc_cmd_pas_bits pas[0];
1016290650Shselasky};
1017290650Shselasky
1018290650Shselaskystruct mlx5_ifc_rq_num_bits {
1019290650Shselasky	u8         reserved_0[0x8];
1020290650Shselasky	u8         rq_num[0x18];
1021290650Shselasky};
1022290650Shselasky
1023290650Shselaskystruct mlx5_ifc_mac_address_layout_bits {
1024290650Shselasky	u8         reserved_0[0x10];
1025290650Shselasky	u8         mac_addr_47_32[0x10];
1026290650Shselasky
1027290650Shselasky	u8         mac_addr_31_0[0x20];
1028290650Shselasky};
1029290650Shselasky
1030290650Shselaskystruct mlx5_ifc_cong_control_r_roce_ecn_np_bits {
1031290650Shselasky	u8         reserved_0[0xa0];
1032290650Shselasky
1033290650Shselasky	u8         min_time_between_cnps[0x20];
1034290650Shselasky
1035290650Shselasky	u8         reserved_1[0x12];
1036290650Shselasky	u8         cnp_dscp[0x6];
1037290650Shselasky	u8         reserved_2[0x4];
1038290650Shselasky	u8         cnp_prio_mode[0x1];
1039290650Shselasky	u8         cnp_802p_prio[0x3];
1040290650Shselasky
1041290650Shselasky	u8         reserved_3[0x720];
1042290650Shselasky};
1043290650Shselasky
1044290650Shselaskystruct mlx5_ifc_cong_control_r_roce_ecn_rp_bits {
1045290650Shselasky	u8         reserved_0[0x60];
1046290650Shselasky
1047290650Shselasky	u8         reserved_1[0x4];
1048290650Shselasky	u8         clamp_tgt_rate[0x1];
1049290650Shselasky	u8         reserved_2[0x3];
1050290650Shselasky	u8         clamp_tgt_rate_after_time_inc[0x1];
1051290650Shselasky	u8         reserved_3[0x17];
1052290650Shselasky
1053290650Shselasky	u8         reserved_4[0x20];
1054290650Shselasky
1055290650Shselasky	u8         rpg_time_reset[0x20];
1056290650Shselasky
1057290650Shselasky	u8         rpg_byte_reset[0x20];
1058290650Shselasky
1059290650Shselasky	u8         rpg_threshold[0x20];
1060290650Shselasky
1061290650Shselasky	u8         rpg_max_rate[0x20];
1062290650Shselasky
1063290650Shselasky	u8         rpg_ai_rate[0x20];
1064290650Shselasky
1065290650Shselasky	u8         rpg_hai_rate[0x20];
1066290650Shselasky
1067290650Shselasky	u8         rpg_gd[0x20];
1068290650Shselasky
1069290650Shselasky	u8         rpg_min_dec_fac[0x20];
1070290650Shselasky
1071290650Shselasky	u8         rpg_min_rate[0x20];
1072290650Shselasky
1073290650Shselasky	u8         reserved_5[0xe0];
1074290650Shselasky
1075290650Shselasky	u8         rate_to_set_on_first_cnp[0x20];
1076290650Shselasky
1077290650Shselasky	u8         dce_tcp_g[0x20];
1078290650Shselasky
1079290650Shselasky	u8         dce_tcp_rtt[0x20];
1080290650Shselasky
1081290650Shselasky	u8         rate_reduce_monitor_period[0x20];
1082290650Shselasky
1083290650Shselasky	u8         reserved_6[0x20];
1084290650Shselasky
1085290650Shselasky	u8         initial_alpha_value[0x20];
1086290650Shselasky
1087290650Shselasky	u8         reserved_7[0x4a0];
1088290650Shselasky};
1089290650Shselasky
1090290650Shselaskystruct mlx5_ifc_cong_control_802_1qau_rp_bits {
1091290650Shselasky	u8         reserved_0[0x80];
1092290650Shselasky
1093290650Shselasky	u8         rppp_max_rps[0x20];
1094290650Shselasky
1095290650Shselasky	u8         rpg_time_reset[0x20];
1096290650Shselasky
1097290650Shselasky	u8         rpg_byte_reset[0x20];
1098290650Shselasky
1099290650Shselasky	u8         rpg_threshold[0x20];
1100290650Shselasky
1101290650Shselasky	u8         rpg_max_rate[0x20];
1102290650Shselasky
1103290650Shselasky	u8         rpg_ai_rate[0x20];
1104290650Shselasky
1105290650Shselasky	u8         rpg_hai_rate[0x20];
1106290650Shselasky
1107290650Shselasky	u8         rpg_gd[0x20];
1108290650Shselasky
1109290650Shselasky	u8         rpg_min_dec_fac[0x20];
1110290650Shselasky
1111290650Shselasky	u8         rpg_min_rate[0x20];
1112290650Shselasky
1113290650Shselasky	u8         reserved_1[0x640];
1114290650Shselasky};
1115290650Shselasky
1116290650Shselaskyenum {
1117290650Shselasky	MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_LOG_CQ_SIZE    = 0x1,
1118290650Shselasky	MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_PAGE_OFFSET    = 0x2,
1119290650Shselasky	MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_LOG_PAGE_SIZE  = 0x4,
1120290650Shselasky};
1121290650Shselasky
1122290650Shselaskystruct mlx5_ifc_resize_field_select_bits {
1123290650Shselasky	u8         resize_field_select[0x20];
1124290650Shselasky};
1125290650Shselasky
1126290650Shselaskyenum {
1127290650Shselasky	MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_PERIOD     = 0x1,
1128290650Shselasky	MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_MAX_COUNT  = 0x2,
1129290650Shselasky	MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_OI            = 0x4,
1130290650Shselasky	MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_C_EQN         = 0x8,
1131290650Shselasky};
1132290650Shselasky
1133290650Shselaskystruct mlx5_ifc_modify_field_select_bits {
1134290650Shselasky	u8         modify_field_select[0x20];
1135290650Shselasky};
1136290650Shselasky
1137290650Shselaskystruct mlx5_ifc_field_select_r_roce_np_bits {
1138290650Shselasky	u8         field_select_r_roce_np[0x20];
1139290650Shselasky};
1140290650Shselasky
1141290650Shselaskyenum {
1142290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_CLAMP_TGT_RATE                 = 0x2,
1143290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_CLAMP_TGT_RATE_AFTER_TIME_INC  = 0x4,
1144290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_TIME_RESET                 = 0x8,
1145290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_BYTE_RESET                 = 0x10,
1146290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_THRESHOLD                  = 0x20,
1147290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_MAX_RATE                   = 0x40,
1148290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_AI_RATE                    = 0x80,
1149290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_HAI_RATE                   = 0x100,
1150290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_MIN_DEC_FAC                = 0x200,
1151290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_MIN_RATE                   = 0x400,
1152290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RATE_TO_SET_ON_FIRST_CNP       = 0x800,
1153290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_DCE_TCP_G                      = 0x1000,
1154290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_DCE_TCP_RTT                    = 0x2000,
1155290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RATE_REDUCE_MONITOR_PERIOD     = 0x4000,
1156290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_INITIAL_ALPHA_VALUE            = 0x8000,
1157290650Shselasky};
1158290650Shselasky
1159290650Shselaskystruct mlx5_ifc_field_select_r_roce_rp_bits {
1160290650Shselasky	u8         field_select_r_roce_rp[0x20];
1161290650Shselasky};
1162290650Shselasky
1163290650Shselaskyenum {
1164290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPPP_MAX_RPS     = 0x4,
1165290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_TIME_RESET   = 0x8,
1166290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_BYTE_RESET   = 0x10,
1167290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_THRESHOLD    = 0x20,
1168290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MAX_RATE     = 0x40,
1169290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_AI_RATE      = 0x80,
1170290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_HAI_RATE     = 0x100,
1171290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_GD           = 0x200,
1172290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MIN_DEC_FAC  = 0x400,
1173290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MIN_RATE     = 0x800,
1174290650Shselasky};
1175290650Shselasky
1176290650Shselaskystruct mlx5_ifc_field_select_802_1qau_rp_bits {
1177290650Shselasky	u8         field_select_8021qaurp[0x20];
1178290650Shselasky};
1179290650Shselasky
1180290650Shselaskystruct mlx5_ifc_nodnic_ring_config_reg_bits {
1181290650Shselasky	u8         queue_address_63_32[0x20];
1182290650Shselasky
1183290650Shselasky	u8         queue_address_31_12[0x14];
1184290650Shselasky	u8         reserved_0[0x6];
1185290650Shselasky	u8         log_size[0x6];
1186290650Shselasky
1187290650Shselasky	struct mlx5_ifc_nodnic_ring_doorbell_bits doorbell;
1188290650Shselasky
1189290650Shselasky	u8         reserved_1[0x8];
1190290650Shselasky	u8         queue_number[0x18];
1191290650Shselasky
1192290650Shselasky	u8         q_key[0x20];
1193290650Shselasky
1194290650Shselasky	u8         reserved_2[0x10];
1195290650Shselasky	u8         pkey_index[0x10];
1196290650Shselasky
1197290650Shselasky	u8         reserved_3[0x40];
1198290650Shselasky};
1199290650Shselasky
1200290650Shselaskystruct mlx5_ifc_nodnic_cq_arming_word_bits {
1201290650Shselasky	u8         reserved_0[0x8];
1202290650Shselasky	u8         cq_ci[0x10];
1203290650Shselasky	u8         reserved_1[0x8];
1204290650Shselasky};
1205290650Shselasky
1206290650Shselaskyenum {
1207290650Shselasky	MLX5_NODNIC_EVENT_WORD_LINK_TYPE_INFINIBAND  = 0x0,
1208290650Shselasky	MLX5_NODNIC_EVENT_WORD_LINK_TYPE_ETHERNET    = 0x1,
1209290650Shselasky};
1210290650Shselasky
1211290650Shselaskyenum {
1212290650Shselasky	MLX5_NODNIC_EVENT_WORD_PORT_STATE_DOWN        = 0x0,
1213290650Shselasky	MLX5_NODNIC_EVENT_WORD_PORT_STATE_INITIALIZE  = 0x1,
1214290650Shselasky	MLX5_NODNIC_EVENT_WORD_PORT_STATE_ARMED       = 0x2,
1215290650Shselasky	MLX5_NODNIC_EVENT_WORD_PORT_STATE_ACTIVE      = 0x3,
1216290650Shselasky};
1217290650Shselasky
1218290650Shselaskystruct mlx5_ifc_nodnic_event_word_bits {
1219290650Shselasky	u8         driver_reset_needed[0x1];
1220290650Shselasky	u8         port_management_change_event[0x1];
1221290650Shselasky	u8         reserved_0[0x19];
1222290650Shselasky	u8         link_type[0x1];
1223290650Shselasky	u8         port_state[0x4];
1224290650Shselasky};
1225290650Shselasky
1226290650Shselaskystruct mlx5_ifc_nic_vport_change_event_bits {
1227290650Shselasky	u8         reserved_0[0x10];
1228290650Shselasky	u8         vport_num[0x10];
1229290650Shselasky
1230290650Shselasky	u8         reserved_1[0xc0];
1231290650Shselasky};
1232290650Shselasky
1233290650Shselaskystruct mlx5_ifc_pages_req_event_bits {
1234290650Shselasky	u8         reserved_0[0x10];
1235290650Shselasky	u8         function_id[0x10];
1236290650Shselasky
1237290650Shselasky	u8         num_pages[0x20];
1238290650Shselasky
1239290650Shselasky	u8         reserved_1[0xa0];
1240290650Shselasky};
1241290650Shselasky
1242290650Shselaskystruct mlx5_ifc_cmd_inter_comp_event_bits {
1243290650Shselasky	u8         command_completion_vector[0x20];
1244290650Shselasky
1245290650Shselasky	u8         reserved_0[0xc0];
1246290650Shselasky};
1247290650Shselasky
1248290650Shselaskystruct mlx5_ifc_stall_vl_event_bits {
1249290650Shselasky	u8         reserved_0[0x18];
1250290650Shselasky	u8         port_num[0x1];
1251290650Shselasky	u8         reserved_1[0x3];
1252290650Shselasky	u8         vl[0x4];
1253290650Shselasky
1254290650Shselasky	u8         reserved_2[0xa0];
1255290650Shselasky};
1256290650Shselasky
1257290650Shselaskystruct mlx5_ifc_db_bf_congestion_event_bits {
1258290650Shselasky	u8         event_subtype[0x8];
1259290650Shselasky	u8         reserved_0[0x8];
1260290650Shselasky	u8         congestion_level[0x8];
1261290650Shselasky	u8         reserved_1[0x8];
1262290650Shselasky
1263290650Shselasky	u8         reserved_2[0xa0];
1264290650Shselasky};
1265290650Shselasky
1266290650Shselaskystruct mlx5_ifc_gpio_event_bits {
1267290650Shselasky	u8         reserved_0[0x60];
1268290650Shselasky
1269290650Shselasky	u8         gpio_event_hi[0x20];
1270290650Shselasky
1271290650Shselasky	u8         gpio_event_lo[0x20];
1272290650Shselasky
1273290650Shselasky	u8         reserved_1[0x40];
1274290650Shselasky};
1275290650Shselasky
1276290650Shselaskystruct mlx5_ifc_port_state_change_event_bits {
1277290650Shselasky	u8         reserved_0[0x40];
1278290650Shselasky
1279290650Shselasky	u8         port_num[0x4];
1280290650Shselasky	u8         reserved_1[0x1c];
1281290650Shselasky
1282290650Shselasky	u8         reserved_2[0x80];
1283290650Shselasky};
1284290650Shselasky
1285290650Shselaskystruct mlx5_ifc_dropped_packet_logged_bits {
1286290650Shselasky	u8         reserved_0[0xe0];
1287290650Shselasky};
1288290650Shselasky
1289290650Shselaskyenum {
1290290650Shselasky	MLX5_CQ_ERROR_SYNDROME_CQ_OVERRUN                 = 0x1,
1291290650Shselasky	MLX5_CQ_ERROR_SYNDROME_CQ_ACCESS_VIOLATION_ERROR  = 0x2,
1292290650Shselasky};
1293290650Shselasky
1294290650Shselaskystruct mlx5_ifc_cq_error_bits {
1295290650Shselasky	u8         reserved_0[0x8];
1296290650Shselasky	u8         cqn[0x18];
1297290650Shselasky
1298290650Shselasky	u8         reserved_1[0x20];
1299290650Shselasky
1300290650Shselasky	u8         reserved_2[0x18];
1301290650Shselasky	u8         syndrome[0x8];
1302290650Shselasky
1303290650Shselasky	u8         reserved_3[0x80];
1304290650Shselasky};
1305290650Shselasky
1306290650Shselaskystruct mlx5_ifc_rdma_page_fault_event_bits {
1307290650Shselasky	u8         bytes_commited[0x20];
1308290650Shselasky
1309290650Shselasky	u8         r_key[0x20];
1310290650Shselasky
1311290650Shselasky	u8         reserved_0[0x10];
1312290650Shselasky	u8         packet_len[0x10];
1313290650Shselasky
1314290650Shselasky	u8         rdma_op_len[0x20];
1315290650Shselasky
1316290650Shselasky	u8         rdma_va[0x40];
1317290650Shselasky
1318290650Shselasky	u8         reserved_1[0x5];
1319290650Shselasky	u8         rdma[0x1];
1320290650Shselasky	u8         write[0x1];
1321290650Shselasky	u8         requestor[0x1];
1322290650Shselasky	u8         qp_number[0x18];
1323290650Shselasky};
1324290650Shselasky
1325290650Shselaskystruct mlx5_ifc_wqe_associated_page_fault_event_bits {
1326290650Shselasky	u8         bytes_committed[0x20];
1327290650Shselasky
1328290650Shselasky	u8         reserved_0[0x10];
1329290650Shselasky	u8         wqe_index[0x10];
1330290650Shselasky
1331290650Shselasky	u8         reserved_1[0x10];
1332290650Shselasky	u8         len[0x10];
1333290650Shselasky
1334290650Shselasky	u8         reserved_2[0x60];
1335290650Shselasky
1336290650Shselasky	u8         reserved_3[0x5];
1337290650Shselasky	u8         rdma[0x1];
1338290650Shselasky	u8         write_read[0x1];
1339290650Shselasky	u8         requestor[0x1];
1340290650Shselasky	u8         qpn[0x18];
1341290650Shselasky};
1342290650Shselasky
1343290650Shselaskyenum {
1344290650Shselasky	MLX5_QP_EVENTS_TYPE_QP  = 0x0,
1345290650Shselasky	MLX5_QP_EVENTS_TYPE_RQ  = 0x1,
1346290650Shselasky	MLX5_QP_EVENTS_TYPE_SQ  = 0x2,
1347290650Shselasky};
1348290650Shselasky
1349290650Shselaskystruct mlx5_ifc_qp_events_bits {
1350290650Shselasky	u8         reserved_0[0xa0];
1351290650Shselasky
1352290650Shselasky	u8         type[0x8];
1353290650Shselasky	u8         reserved_1[0x18];
1354290650Shselasky
1355290650Shselasky	u8         reserved_2[0x8];
1356290650Shselasky	u8         qpn_rqn_sqn[0x18];
1357290650Shselasky};
1358290650Shselasky
1359290650Shselaskystruct mlx5_ifc_dct_events_bits {
1360290650Shselasky	u8         reserved_0[0xc0];
1361290650Shselasky
1362290650Shselasky	u8         reserved_1[0x8];
1363290650Shselasky	u8         dct_number[0x18];
1364290650Shselasky};
1365290650Shselasky
1366290650Shselaskystruct mlx5_ifc_comp_event_bits {
1367290650Shselasky	u8         reserved_0[0xc0];
1368290650Shselasky
1369290650Shselasky	u8         reserved_1[0x8];
1370290650Shselasky	u8         cq_number[0x18];
1371290650Shselasky};
1372290650Shselasky
1373290650Shselaskystruct mlx5_ifc_fw_version_bits {
1374290650Shselasky	u8         major[0x10];
1375290650Shselasky	u8         reserved_0[0x10];
1376290650Shselasky
1377290650Shselasky	u8         minor[0x10];
1378290650Shselasky	u8         subminor[0x10];
1379290650Shselasky
1380290650Shselasky	u8         second[0x8];
1381290650Shselasky	u8         minute[0x8];
1382290650Shselasky	u8         hour[0x8];
1383290650Shselasky	u8         reserved_1[0x8];
1384290650Shselasky
1385290650Shselasky	u8         year[0x10];
1386290650Shselasky	u8         month[0x8];
1387290650Shselasky	u8         day[0x8];
1388290650Shselasky};
1389290650Shselasky
1390290650Shselaskyenum {
1391290650Shselasky	MLX5_QPC_STATE_RST        = 0x0,
1392290650Shselasky	MLX5_QPC_STATE_INIT       = 0x1,
1393290650Shselasky	MLX5_QPC_STATE_RTR        = 0x2,
1394290650Shselasky	MLX5_QPC_STATE_RTS        = 0x3,
1395290650Shselasky	MLX5_QPC_STATE_SQER       = 0x4,
1396290650Shselasky	MLX5_QPC_STATE_SQD        = 0x5,
1397290650Shselasky	MLX5_QPC_STATE_ERR        = 0x6,
1398290650Shselasky	MLX5_QPC_STATE_SUSPENDED  = 0x9,
1399290650Shselasky};
1400290650Shselasky
1401290650Shselaskyenum {
1402290650Shselasky	MLX5_QPC_ST_RC            = 0x0,
1403290650Shselasky	MLX5_QPC_ST_UC            = 0x1,
1404290650Shselasky	MLX5_QPC_ST_UD            = 0x2,
1405290650Shselasky	MLX5_QPC_ST_XRC           = 0x3,
1406290650Shselasky	MLX5_QPC_ST_DCI           = 0x5,
1407290650Shselasky	MLX5_QPC_ST_QP0           = 0x7,
1408290650Shselasky	MLX5_QPC_ST_QP1           = 0x8,
1409290650Shselasky	MLX5_QPC_ST_RAW_DATAGRAM  = 0x9,
1410290650Shselasky	MLX5_QPC_ST_REG_UMR       = 0xc,
1411290650Shselasky};
1412290650Shselasky
1413290650Shselaskyenum {
1414290650Shselasky	MLX5_QP_PM_ARMED            = 0x0,
1415290650Shselasky	MLX5_QP_PM_REARM            = 0x1,
1416290650Shselasky	MLX5_QPC_PM_STATE_RESERVED  = 0x2,
1417290650Shselasky	MLX5_QP_PM_MIGRATED         = 0x3,
1418290650Shselasky};
1419290650Shselasky
1420290650Shselaskyenum {
1421290650Shselasky	MLX5_QPC_END_PADDING_MODE_SCATTER_AS_IS                = 0x0,
1422290650Shselasky	MLX5_QPC_END_PADDING_MODE_PAD_TO_CACHE_LINE_ALIGNMENT  = 0x1,
1423290650Shselasky};
1424290650Shselasky
1425290650Shselaskyenum {
1426290650Shselasky	MLX5_QPC_MTU_256_BYTES        = 0x1,
1427290650Shselasky	MLX5_QPC_MTU_512_BYTES        = 0x2,
1428290650Shselasky	MLX5_QPC_MTU_1K_BYTES         = 0x3,
1429290650Shselasky	MLX5_QPC_MTU_2K_BYTES         = 0x4,
1430290650Shselasky	MLX5_QPC_MTU_4K_BYTES         = 0x5,
1431290650Shselasky	MLX5_QPC_MTU_RAW_ETHERNET_QP  = 0x7,
1432290650Shselasky};
1433290650Shselasky
1434290650Shselaskyenum {
1435290650Shselasky	MLX5_QPC_ATOMIC_MODE_IB_SPEC     = 0x1,
1436290650Shselasky	MLX5_QPC_ATOMIC_MODE_ONLY_8B     = 0x2,
1437290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_8B    = 0x3,
1438290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_16B   = 0x4,
1439290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_32B   = 0x5,
1440290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_64B   = 0x6,
1441290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_128B  = 0x7,
1442290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_256B  = 0x8,
1443290650Shselasky};
1444290650Shselasky
1445290650Shselaskyenum {
1446290650Shselasky	MLX5_QPC_CS_REQ_DISABLE    = 0x0,
1447290650Shselasky	MLX5_QPC_CS_REQ_UP_TO_32B  = 0x11,
1448290650Shselasky	MLX5_QPC_CS_REQ_UP_TO_64B  = 0x22,
1449290650Shselasky};
1450290650Shselasky
1451290650Shselaskyenum {
1452290650Shselasky	MLX5_QPC_CS_RES_DISABLE    = 0x0,
1453290650Shselasky	MLX5_QPC_CS_RES_UP_TO_32B  = 0x1,
1454290650Shselasky	MLX5_QPC_CS_RES_UP_TO_64B  = 0x2,
1455290650Shselasky};
1456290650Shselasky
1457290650Shselaskystruct mlx5_ifc_qpc_bits {
1458290650Shselasky	u8         state[0x4];
1459290650Shselasky	u8         reserved_0[0x4];
1460290650Shselasky	u8         st[0x8];
1461290650Shselasky	u8         reserved_1[0x3];
1462290650Shselasky	u8         pm_state[0x2];
1463290650Shselasky	u8         reserved_2[0x7];
1464290650Shselasky	u8         end_padding_mode[0x2];
1465290650Shselasky	u8         reserved_3[0x2];
1466290650Shselasky
1467290650Shselasky	u8         wq_signature[0x1];
1468290650Shselasky	u8         block_lb_mc[0x1];
1469290650Shselasky	u8         atomic_like_write_en[0x1];
1470290650Shselasky	u8         latency_sensitive[0x1];
1471290650Shselasky	u8         reserved_4[0x1];
1472290650Shselasky	u8         drain_sigerr[0x1];
1473290650Shselasky	u8         reserved_5[0x2];
1474290650Shselasky	u8         pd[0x18];
1475290650Shselasky
1476290650Shselasky	u8         mtu[0x3];
1477290650Shselasky	u8         log_msg_max[0x5];
1478290650Shselasky	u8         reserved_6[0x1];
1479290650Shselasky	u8         log_rq_size[0x4];
1480290650Shselasky	u8         log_rq_stride[0x3];
1481290650Shselasky	u8         no_sq[0x1];
1482290650Shselasky	u8         log_sq_size[0x4];
1483290650Shselasky	u8         reserved_7[0x6];
1484290650Shselasky	u8         rlky[0x1];
1485290650Shselasky	u8         reserved_8[0x4];
1486290650Shselasky
1487290650Shselasky	u8         counter_set_id[0x8];
1488290650Shselasky	u8         uar_page[0x18];
1489290650Shselasky
1490290650Shselasky	u8         reserved_9[0x8];
1491290650Shselasky	u8         user_index[0x18];
1492290650Shselasky
1493290650Shselasky	u8         reserved_10[0x3];
1494290650Shselasky	u8         log_page_size[0x5];
1495290650Shselasky	u8         remote_qpn[0x18];
1496290650Shselasky
1497290650Shselasky	struct mlx5_ifc_ads_bits primary_address_path;
1498290650Shselasky
1499290650Shselasky	struct mlx5_ifc_ads_bits secondary_address_path;
1500290650Shselasky
1501290650Shselasky	u8         log_ack_req_freq[0x4];
1502290650Shselasky	u8         reserved_11[0x4];
1503290650Shselasky	u8         log_sra_max[0x3];
1504290650Shselasky	u8         reserved_12[0x2];
1505290650Shselasky	u8         retry_count[0x3];
1506290650Shselasky	u8         rnr_retry[0x3];
1507290650Shselasky	u8         reserved_13[0x1];
1508290650Shselasky	u8         fre[0x1];
1509290650Shselasky	u8         cur_rnr_retry[0x3];
1510290650Shselasky	u8         cur_retry_count[0x3];
1511290650Shselasky	u8         reserved_14[0x5];
1512290650Shselasky
1513290650Shselasky	u8         reserved_15[0x20];
1514290650Shselasky
1515290650Shselasky	u8         reserved_16[0x8];
1516290650Shselasky	u8         next_send_psn[0x18];
1517290650Shselasky
1518290650Shselasky	u8         reserved_17[0x8];
1519290650Shselasky	u8         cqn_snd[0x18];
1520290650Shselasky
1521290650Shselasky	u8         reserved_18[0x40];
1522290650Shselasky
1523290650Shselasky	u8         reserved_19[0x8];
1524290650Shselasky	u8         last_acked_psn[0x18];
1525290650Shselasky
1526290650Shselasky	u8         reserved_20[0x8];
1527290650Shselasky	u8         ssn[0x18];
1528290650Shselasky
1529290650Shselasky	u8         reserved_21[0x8];
1530290650Shselasky	u8         log_rra_max[0x3];
1531290650Shselasky	u8         reserved_22[0x1];
1532290650Shselasky	u8         atomic_mode[0x4];
1533290650Shselasky	u8         rre[0x1];
1534290650Shselasky	u8         rwe[0x1];
1535290650Shselasky	u8         rae[0x1];
1536290650Shselasky	u8         reserved_23[0x1];
1537290650Shselasky	u8         page_offset[0x6];
1538290650Shselasky	u8         reserved_24[0x3];
1539290650Shselasky	u8         cd_slave_receive[0x1];
1540290650Shselasky	u8         cd_slave_send[0x1];
1541290650Shselasky	u8         cd_master[0x1];
1542290650Shselasky
1543290650Shselasky	u8         reserved_25[0x3];
1544290650Shselasky	u8         min_rnr_nak[0x5];
1545290650Shselasky	u8         next_rcv_psn[0x18];
1546290650Shselasky
1547290650Shselasky	u8         reserved_26[0x8];
1548290650Shselasky	u8         xrcd[0x18];
1549290650Shselasky
1550290650Shselasky	u8         reserved_27[0x8];
1551290650Shselasky	u8         cqn_rcv[0x18];
1552290650Shselasky
1553290650Shselasky	u8         dbr_addr[0x40];
1554290650Shselasky
1555290650Shselasky	u8         q_key[0x20];
1556290650Shselasky
1557290650Shselasky	u8         reserved_28[0x5];
1558290650Shselasky	u8         rq_type[0x3];
1559290650Shselasky	u8         srqn_rmpn[0x18];
1560290650Shselasky
1561290650Shselasky	u8         reserved_29[0x8];
1562290650Shselasky	u8         rmsn[0x18];
1563290650Shselasky
1564290650Shselasky	u8         hw_sq_wqebb_counter[0x10];
1565290650Shselasky	u8         sw_sq_wqebb_counter[0x10];
1566290650Shselasky
1567290650Shselasky	u8         hw_rq_counter[0x20];
1568290650Shselasky
1569290650Shselasky	u8         sw_rq_counter[0x20];
1570290650Shselasky
1571290650Shselasky	u8         reserved_30[0x20];
1572290650Shselasky
1573290650Shselasky	u8         reserved_31[0xf];
1574290650Shselasky	u8         cgs[0x1];
1575290650Shselasky	u8         cs_req[0x8];
1576290650Shselasky	u8         cs_res[0x8];
1577290650Shselasky
1578290650Shselasky	u8         dc_access_key[0x40];
1579290650Shselasky
1580290650Shselasky	u8         rdma_active[0x1];
1581290650Shselasky	u8         comm_est[0x1];
1582290650Shselasky	u8         suspended[0x1];
1583290650Shselasky	u8         reserved_32[0x5];
1584290650Shselasky	u8         send_msg_psn[0x18];
1585290650Shselasky
1586290650Shselasky	u8         reserved_33[0x8];
1587290650Shselasky	u8         rcv_msg_psn[0x18];
1588290650Shselasky
1589290650Shselasky	u8         rdma_va[0x40];
1590290650Shselasky
1591290650Shselasky	u8         rdma_key[0x20];
1592290650Shselasky
1593290650Shselasky	u8         reserved_34[0x20];
1594290650Shselasky};
1595290650Shselasky
1596290650Shselaskystruct mlx5_ifc_roce_addr_layout_bits {
1597290650Shselasky	u8         source_l3_address[16][0x8];
1598290650Shselasky
1599290650Shselasky	u8         reserved_0[0x3];
1600290650Shselasky	u8         vlan_valid[0x1];
1601290650Shselasky	u8         vlan_id[0xc];
1602290650Shselasky	u8         source_mac_47_32[0x10];
1603290650Shselasky
1604290650Shselasky	u8         source_mac_31_0[0x20];
1605290650Shselasky
1606290650Shselasky	u8         reserved_1[0x14];
1607290650Shselasky	u8         roce_l3_type[0x4];
1608290650Shselasky	u8         roce_version[0x8];
1609290650Shselasky
1610290650Shselasky	u8         reserved_2[0x20];
1611290650Shselasky};
1612290650Shselasky
1613290650Shselaskystruct mlx5_ifc_rdbc_bits {
1614290650Shselasky	u8         reserved_0[0x1c];
1615290650Shselasky	u8         type[0x4];
1616290650Shselasky
1617290650Shselasky	u8         reserved_1[0x20];
1618290650Shselasky
1619290650Shselasky	u8         reserved_2[0x8];
1620290650Shselasky	u8         psn[0x18];
1621290650Shselasky
1622290650Shselasky	u8         rkey[0x20];
1623290650Shselasky
1624290650Shselasky	u8         address[0x40];
1625290650Shselasky
1626290650Shselasky	u8         byte_count[0x20];
1627290650Shselasky
1628290650Shselasky	u8         reserved_3[0x20];
1629290650Shselasky
1630290650Shselasky	u8         atomic_resp[32][0x8];
1631290650Shselasky};
1632290650Shselasky
1633290650Shselaskyenum {
1634290650Shselasky	MLX5_FLOW_CONTEXT_ACTION_ALLOW     = 0x1,
1635290650Shselasky	MLX5_FLOW_CONTEXT_ACTION_DROP      = 0x2,
1636290650Shselasky	MLX5_FLOW_CONTEXT_ACTION_FWD_DEST  = 0x4,
1637290650Shselasky	MLX5_FLOW_CONTEXT_ACTION_COUNT     = 0x8,
1638290650Shselasky};
1639290650Shselasky
1640290650Shselaskystruct mlx5_ifc_flow_context_bits {
1641290650Shselasky	u8         reserved_0[0x20];
1642290650Shselasky
1643290650Shselasky	u8         group_id[0x20];
1644290650Shselasky
1645290650Shselasky	u8         reserved_1[0x8];
1646290650Shselasky	u8         flow_tag[0x18];
1647290650Shselasky
1648290650Shselasky	u8         reserved_2[0x10];
1649290650Shselasky	u8         action[0x10];
1650290650Shselasky
1651290650Shselasky	u8         reserved_3[0x8];
1652290650Shselasky	u8         destination_list_size[0x18];
1653290650Shselasky
1654290650Shselasky	u8         reserved_4[0x8];
1655290650Shselasky	u8         flow_counter_list_size[0x18];
1656290650Shselasky
1657290650Shselasky	u8         reserved_5[0x140];
1658290650Shselasky
1659290650Shselasky	struct mlx5_ifc_fte_match_param_bits match_value;
1660290650Shselasky
1661290650Shselasky	u8         reserved_6[0x600];
1662290650Shselasky
1663290650Shselasky	union mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits destination[0];
1664290650Shselasky};
1665290650Shselasky
1666290650Shselaskyenum {
1667290650Shselasky	MLX5_XRC_SRQC_STATE_GOOD   = 0x0,
1668290650Shselasky	MLX5_XRC_SRQC_STATE_ERROR  = 0x1,
1669290650Shselasky};
1670290650Shselasky
1671290650Shselaskystruct mlx5_ifc_xrc_srqc_bits {
1672290650Shselasky	u8         state[0x4];
1673290650Shselasky	u8         log_xrc_srq_size[0x4];
1674290650Shselasky	u8         reserved_0[0x18];
1675290650Shselasky
1676290650Shselasky	u8         wq_signature[0x1];
1677290650Shselasky	u8         cont_srq[0x1];
1678290650Shselasky	u8         reserved_1[0x1];
1679290650Shselasky	u8         rlky[0x1];
1680290650Shselasky	u8         basic_cyclic_rcv_wqe[0x1];
1681290650Shselasky	u8         log_rq_stride[0x3];
1682290650Shselasky	u8         xrcd[0x18];
1683290650Shselasky
1684290650Shselasky	u8         page_offset[0x6];
1685290650Shselasky	u8         reserved_2[0x2];
1686290650Shselasky	u8         cqn[0x18];
1687290650Shselasky
1688290650Shselasky	u8         reserved_3[0x20];
1689290650Shselasky
1690290650Shselasky	u8         reserved_4[0x2];
1691290650Shselasky	u8         log_page_size[0x6];
1692290650Shselasky	u8         user_index[0x18];
1693290650Shselasky
1694290650Shselasky	u8         reserved_5[0x20];
1695290650Shselasky
1696290650Shselasky	u8         reserved_6[0x8];
1697290650Shselasky	u8         pd[0x18];
1698290650Shselasky
1699290650Shselasky	u8         lwm[0x10];
1700290650Shselasky	u8         wqe_cnt[0x10];
1701290650Shselasky
1702290650Shselasky	u8         reserved_7[0x40];
1703290650Shselasky
1704290650Shselasky	u8         db_record_addr_h[0x20];
1705290650Shselasky
1706290650Shselasky	u8         db_record_addr_l[0x1e];
1707290650Shselasky	u8         reserved_8[0x2];
1708290650Shselasky
1709290650Shselasky	u8         reserved_9[0x80];
1710290650Shselasky};
1711290650Shselasky
1712290650Shselaskystruct mlx5_ifc_traffic_counter_bits {
1713290650Shselasky	u8         packets[0x40];
1714290650Shselasky
1715290650Shselasky	u8         octets[0x40];
1716290650Shselasky};
1717290650Shselasky
1718290650Shselaskystruct mlx5_ifc_tisc_bits {
1719290650Shselasky	u8         reserved_0[0xc];
1720290650Shselasky	u8         prio[0x4];
1721290650Shselasky	u8         reserved_1[0x10];
1722290650Shselasky
1723290650Shselasky	u8         reserved_2[0x100];
1724290650Shselasky
1725290650Shselasky	u8         reserved_3[0x8];
1726290650Shselasky	u8         transport_domain[0x18];
1727290650Shselasky
1728290650Shselasky	u8         reserved_4[0x3c0];
1729290650Shselasky};
1730290650Shselasky
1731290650Shselaskyenum {
1732290650Shselasky	MLX5_TIRC_DISP_TYPE_DIRECT    = 0x0,
1733290650Shselasky	MLX5_TIRC_DISP_TYPE_INDIRECT  = 0x1,
1734290650Shselasky};
1735290650Shselasky
1736290650Shselaskyenum {
1737290650Shselasky	MLX5_TIRC_LRO_ENABLE_MASK_IPV4_LRO  = 0x1,
1738290650Shselasky	MLX5_TIRC_LRO_ENABLE_MASK_IPV6_LRO  = 0x2,
1739290650Shselasky};
1740290650Shselasky
1741290650Shselaskyenum {
1742290650Shselasky	MLX5_TIRC_RX_HASH_FN_HASH_NONE           = 0x0,
1743290650Shselasky	MLX5_TIRC_RX_HASH_FN_HASH_INVERTED_XOR8  = 0x1,
1744290650Shselasky	MLX5_TIRC_RX_HASH_FN_HASH_TOEPLITZ       = 0x2,
1745290650Shselasky};
1746290650Shselasky
1747290650Shselaskyenum {
1748290650Shselasky	MLX5_TIRC_SELF_LB_EN_ENABLE_UNICAST    = 0x1,
1749290650Shselasky	MLX5_TIRC_SELF_LB_EN_ENABLE_MULTICAST  = 0x2,
1750290650Shselasky};
1751290650Shselasky
1752290650Shselaskystruct mlx5_ifc_tirc_bits {
1753290650Shselasky	u8         reserved_0[0x20];
1754290650Shselasky
1755290650Shselasky	u8         disp_type[0x4];
1756290650Shselasky	u8         reserved_1[0x1c];
1757290650Shselasky
1758290650Shselasky	u8         reserved_2[0x40];
1759290650Shselasky
1760290650Shselasky	u8         reserved_3[0x4];
1761290650Shselasky	u8         lro_timeout_period_usecs[0x10];
1762290650Shselasky	u8         lro_enable_mask[0x4];
1763290650Shselasky	u8         lro_max_msg_sz[0x8];
1764290650Shselasky
1765290650Shselasky	u8         reserved_4[0x40];
1766290650Shselasky
1767290650Shselasky	u8         reserved_5[0x8];
1768290650Shselasky	u8         inline_rqn[0x18];
1769290650Shselasky
1770290650Shselasky	u8         rx_hash_symmetric[0x1];
1771290650Shselasky	u8         reserved_6[0x1];
1772290650Shselasky	u8         tunneled_offload_en[0x1];
1773290650Shselasky	u8         reserved_7[0x5];
1774290650Shselasky	u8         indirect_table[0x18];
1775290650Shselasky
1776290650Shselasky	u8         rx_hash_fn[0x4];
1777290650Shselasky	u8         reserved_8[0x2];
1778290650Shselasky	u8         self_lb_en[0x2];
1779290650Shselasky	u8         transport_domain[0x18];
1780290650Shselasky
1781290650Shselasky	u8         rx_hash_toeplitz_key[10][0x20];
1782290650Shselasky
1783290650Shselasky	struct mlx5_ifc_rx_hash_field_select_bits rx_hash_field_selector_outer;
1784290650Shselasky
1785290650Shselasky	struct mlx5_ifc_rx_hash_field_select_bits rx_hash_field_selector_inner;
1786290650Shselasky
1787290650Shselasky	u8         reserved_9[0x4c0];
1788290650Shselasky};
1789290650Shselasky
1790290650Shselaskyenum {
1791290650Shselasky	MLX5_SRQC_STATE_GOOD   = 0x0,
1792290650Shselasky	MLX5_SRQC_STATE_ERROR  = 0x1,
1793290650Shselasky};
1794290650Shselasky
1795290650Shselaskystruct mlx5_ifc_srqc_bits {
1796290650Shselasky	u8         state[0x4];
1797290650Shselasky	u8         log_srq_size[0x4];
1798290650Shselasky	u8         reserved_0[0x18];
1799290650Shselasky
1800290650Shselasky	u8         wq_signature[0x1];
1801290650Shselasky	u8         cont_srq[0x1];
1802290650Shselasky	u8         reserved_1[0x1];
1803290650Shselasky	u8         rlky[0x1];
1804290650Shselasky	u8         reserved_2[0x1];
1805290650Shselasky	u8         log_rq_stride[0x3];
1806290650Shselasky	u8         xrcd[0x18];
1807290650Shselasky
1808290650Shselasky	u8         page_offset[0x6];
1809290650Shselasky	u8         reserved_3[0x2];
1810290650Shselasky	u8         cqn[0x18];
1811290650Shselasky
1812290650Shselasky	u8         reserved_4[0x20];
1813290650Shselasky
1814290650Shselasky	u8         reserved_5[0x2];
1815290650Shselasky	u8         log_page_size[0x6];
1816290650Shselasky	u8         reserved_6[0x18];
1817290650Shselasky
1818290650Shselasky	u8         reserved_7[0x20];
1819290650Shselasky
1820290650Shselasky	u8         reserved_8[0x8];
1821290650Shselasky	u8         pd[0x18];
1822290650Shselasky
1823290650Shselasky	u8         lwm[0x10];
1824290650Shselasky	u8         wqe_cnt[0x10];
1825290650Shselasky
1826290650Shselasky	u8         reserved_9[0x40];
1827290650Shselasky
1828290650Shselasky	u8         db_record_addr_h[0x20];
1829290650Shselasky
1830290650Shselasky	u8         db_record_addr_l[0x1e];
1831290650Shselasky	u8         reserved_10[0x2];
1832290650Shselasky
1833290650Shselasky	u8         reserved_11[0x80];
1834290650Shselasky};
1835290650Shselasky
1836290650Shselaskyenum {
1837290650Shselasky	MLX5_SQC_STATE_RST  = 0x0,
1838290650Shselasky	MLX5_SQC_STATE_RDY  = 0x1,
1839290650Shselasky	MLX5_SQC_STATE_ERR  = 0x3,
1840290650Shselasky};
1841290650Shselasky
1842290650Shselaskystruct mlx5_ifc_sqc_bits {
1843290650Shselasky	u8         rlky[0x1];
1844290650Shselasky	u8         cd_master[0x1];
1845290650Shselasky	u8         fre[0x1];
1846290650Shselasky	u8         flush_in_error_en[0x1];
1847290650Shselasky	u8         allow_multi_pkt_send_wqe[0x1];
1848290650Shselasky	u8         min_wqe_inline_mode[0x3];
1849290650Shselasky	u8         state[0x4];
1850290650Shselasky	u8         reserved_0[0x14];
1851290650Shselasky
1852290650Shselasky	u8         reserved_1[0x8];
1853290650Shselasky	u8         user_index[0x18];
1854290650Shselasky
1855290650Shselasky	u8         reserved_2[0x8];
1856290650Shselasky	u8         cqn[0x18];
1857290650Shselasky
1858290650Shselasky	u8         reserved_3[0xa0];
1859290650Shselasky
1860290650Shselasky	u8         tis_lst_sz[0x10];
1861290650Shselasky	u8         reserved_4[0x10];
1862290650Shselasky
1863290650Shselasky	u8         reserved_5[0x40];
1864290650Shselasky
1865290650Shselasky	u8         reserved_6[0x8];
1866290650Shselasky	u8         tis_num_0[0x18];
1867290650Shselasky
1868290650Shselasky	struct mlx5_ifc_wq_bits wq;
1869290650Shselasky};
1870290650Shselasky
1871290650Shselaskystruct mlx5_ifc_rqtc_bits {
1872290650Shselasky	u8         reserved_0[0xa0];
1873290650Shselasky
1874290650Shselasky	u8         reserved_1[0x10];
1875290650Shselasky	u8         rqt_max_size[0x10];
1876290650Shselasky
1877290650Shselasky	u8         reserved_2[0x10];
1878290650Shselasky	u8         rqt_actual_size[0x10];
1879290650Shselasky
1880290650Shselasky	u8         reserved_3[0x6a0];
1881290650Shselasky
1882290650Shselasky	struct mlx5_ifc_rq_num_bits rq_num[0];
1883290650Shselasky};
1884290650Shselasky
1885290650Shselaskyenum {
1886290650Shselasky	MLX5_RQC_RQ_TYPE_MEMORY_RQ_INLINE      = 0x0,
1887290650Shselasky	MLX5_RQC_RQ_TYPE_MEMORY_RQ_RMP         = 0x1,
1888290650Shselasky};
1889290650Shselasky
1890290650Shselaskyenum {
1891290650Shselasky	MLX5_RQC_STATE_RST  = 0x0,
1892290650Shselasky	MLX5_RQC_STATE_RDY  = 0x1,
1893290650Shselasky	MLX5_RQC_STATE_ERR  = 0x3,
1894290650Shselasky};
1895290650Shselasky
1896290650Shselaskystruct mlx5_ifc_rqc_bits {
1897290650Shselasky	u8         rlky[0x1];
1898290650Shselasky	u8         reserved_0[0x2];
1899290650Shselasky	u8         vlan_strip_disable[0x1];
1900290650Shselasky	u8         mem_rq_type[0x4];
1901290650Shselasky	u8         state[0x4];
1902290650Shselasky	u8         reserved_1[0x1];
1903290650Shselasky	u8         flush_in_error_en[0x1];
1904290650Shselasky	u8         reserved_2[0x12];
1905290650Shselasky
1906290650Shselasky	u8         reserved_3[0x8];
1907290650Shselasky	u8         user_index[0x18];
1908290650Shselasky
1909290650Shselasky	u8         reserved_4[0x8];
1910290650Shselasky	u8         cqn[0x18];
1911290650Shselasky
1912290650Shselasky	u8         counter_set_id[0x8];
1913290650Shselasky	u8         reserved_5[0x18];
1914290650Shselasky
1915290650Shselasky	u8         reserved_6[0x8];
1916290650Shselasky	u8         rmpn[0x18];
1917290650Shselasky
1918290650Shselasky	u8         reserved_7[0xe0];
1919290650Shselasky
1920290650Shselasky	struct mlx5_ifc_wq_bits wq;
1921290650Shselasky};
1922290650Shselasky
1923290650Shselaskyenum {
1924290650Shselasky	MLX5_RMPC_STATE_RDY  = 0x1,
1925290650Shselasky	MLX5_RMPC_STATE_ERR  = 0x3,
1926290650Shselasky};
1927290650Shselasky
1928290650Shselaskystruct mlx5_ifc_rmpc_bits {
1929290650Shselasky	u8         reserved_0[0x8];
1930290650Shselasky	u8         state[0x4];
1931290650Shselasky	u8         reserved_1[0x14];
1932290650Shselasky
1933290650Shselasky	u8         basic_cyclic_rcv_wqe[0x1];
1934290650Shselasky	u8         reserved_2[0x1f];
1935290650Shselasky
1936290650Shselasky	u8         reserved_3[0x140];
1937290650Shselasky
1938290650Shselasky	struct mlx5_ifc_wq_bits wq;
1939290650Shselasky};
1940290650Shselasky
1941290650Shselaskyenum {
1942290650Shselasky	MLX5_NIC_VPORT_CONTEXT_ALLOWED_LIST_TYPE_CURRENT_UC_MAC_ADDRESS  = 0x0,
1943290650Shselasky	MLX5_NIC_VPORT_CONTEXT_ALLOWED_LIST_TYPE_CURRENT_MC_MAC_ADDRESS  = 0x1,
1944290650Shselasky	MLX5_NIC_VPORT_CONTEXT_ALLOWED_LIST_TYPE_VLAN_LIST               = 0x2,
1945290650Shselasky};
1946290650Shselasky
1947290650Shselaskystruct mlx5_ifc_nic_vport_context_bits {
1948290650Shselasky	u8         reserved_0[0x5];
1949290650Shselasky	u8         min_wqe_inline_mode[0x3];
1950290650Shselasky	u8         reserved_1[0x17];
1951290650Shselasky	u8         roce_en[0x1];
1952290650Shselasky
1953290650Shselasky	u8         arm_change_event[0x1];
1954290650Shselasky	u8         reserved_2[0x1a];
1955290650Shselasky	u8         event_on_mtu[0x1];
1956290650Shselasky	u8         event_on_promisc_change[0x1];
1957290650Shselasky	u8         event_on_vlan_change[0x1];
1958290650Shselasky	u8         event_on_mc_address_change[0x1];
1959290650Shselasky	u8         event_on_uc_address_change[0x1];
1960290650Shselasky
1961290650Shselasky	u8         reserved_3[0xe0];
1962290650Shselasky
1963290650Shselasky	u8         reserved_4[0x10];
1964290650Shselasky	u8         mtu[0x10];
1965290650Shselasky
1966290650Shselasky	u8         system_image_guid[0x40];
1967290650Shselasky
1968290650Shselasky	u8         port_guid[0x40];
1969290650Shselasky
1970290650Shselasky	u8         node_guid[0x40];
1971290650Shselasky
1972290650Shselasky	u8         reserved_5[0x140];
1973290650Shselasky
1974290650Shselasky	u8         qkey_violation_counter[0x10];
1975290650Shselasky	u8         reserved_6[0x10];
1976290650Shselasky
1977290650Shselasky	u8         reserved_7[0x420];
1978290650Shselasky
1979290650Shselasky	u8         promisc_uc[0x1];
1980290650Shselasky	u8         promisc_mc[0x1];
1981290650Shselasky	u8         promisc_all[0x1];
1982290650Shselasky	u8         reserved_8[0x2];
1983290650Shselasky	u8         allowed_list_type[0x3];
1984290650Shselasky	u8         reserved_9[0xc];
1985290650Shselasky	u8         allowed_list_size[0xc];
1986290650Shselasky
1987290650Shselasky	struct mlx5_ifc_mac_address_layout_bits permanent_address;
1988290650Shselasky
1989290650Shselasky	u8         reserved_10[0x20];
1990290650Shselasky
1991290650Shselasky	u8         current_uc_mac_address[0][0x40];
1992290650Shselasky};
1993290650Shselasky
1994290650Shselaskyenum {
1995290650Shselasky	MLX5_ACCESS_MODE_PA        = 0x0,
1996290650Shselasky	MLX5_ACCESS_MODE_MTT       = 0x1,
1997290650Shselasky	MLX5_ACCESS_MODE_KLM       = 0x2,
1998290650Shselasky};
1999290650Shselasky
2000290650Shselaskystruct mlx5_ifc_mkc_bits {
2001290650Shselasky	u8         reserved_0[0x1];
2002290650Shselasky	u8         free[0x1];
2003290650Shselasky	u8         reserved_1[0xd];
2004290650Shselasky	u8         small_fence_on_rdma_read_response[0x1];
2005290650Shselasky	u8         umr_en[0x1];
2006290650Shselasky	u8         a[0x1];
2007290650Shselasky	u8         rw[0x1];
2008290650Shselasky	u8         rr[0x1];
2009290650Shselasky	u8         lw[0x1];
2010290650Shselasky	u8         lr[0x1];
2011290650Shselasky	u8         access_mode[0x2];
2012290650Shselasky	u8         reserved_2[0x8];
2013290650Shselasky
2014290650Shselasky	u8         qpn[0x18];
2015290650Shselasky	u8         mkey_7_0[0x8];
2016290650Shselasky
2017290650Shselasky	u8         reserved_3[0x20];
2018290650Shselasky
2019290650Shselasky	u8         length64[0x1];
2020290650Shselasky	u8         bsf_en[0x1];
2021290650Shselasky	u8         sync_umr[0x1];
2022290650Shselasky	u8         reserved_4[0x2];
2023290650Shselasky	u8         expected_sigerr_count[0x1];
2024290650Shselasky	u8         reserved_5[0x1];
2025290650Shselasky	u8         en_rinval[0x1];
2026290650Shselasky	u8         pd[0x18];
2027290650Shselasky
2028290650Shselasky	u8         start_addr[0x40];
2029290650Shselasky
2030290650Shselasky	u8         len[0x40];
2031290650Shselasky
2032290650Shselasky	u8         bsf_octword_size[0x20];
2033290650Shselasky
2034290650Shselasky	u8         reserved_6[0x80];
2035290650Shselasky
2036290650Shselasky	u8         translations_octword_size[0x20];
2037290650Shselasky
2038290650Shselasky	u8         reserved_7[0x1b];
2039290650Shselasky	u8         log_page_size[0x5];
2040290650Shselasky
2041290650Shselasky	u8         reserved_8[0x20];
2042290650Shselasky};
2043290650Shselasky
2044290650Shselaskystruct mlx5_ifc_pkey_bits {
2045290650Shselasky	u8         reserved_0[0x10];
2046290650Shselasky	u8         pkey[0x10];
2047290650Shselasky};
2048290650Shselasky
2049290650Shselaskystruct mlx5_ifc_array128_auto_bits {
2050290650Shselasky	u8         array128_auto[16][0x8];
2051290650Shselasky};
2052290650Shselasky
2053290650Shselaskyenum {
2054290650Shselasky	MLX5_HCA_VPORT_CONTEXT_FIELD_SELECT_PORT_GUID           = 0x0,
2055290650Shselasky	MLX5_HCA_VPORT_CONTEXT_FIELD_SELECT_NODE_GUID           = 0x1,
2056290650Shselasky	MLX5_HCA_VPORT_CONTEXT_FIELD_SELECT_VPORT_STATE_POLICY  = 0x2,
2057290650Shselasky};
2058290650Shselasky
2059290650Shselaskyenum {
2060290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_SLEEP                      = 0x1,
2061290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_POLLING                    = 0x2,
2062290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_DISABLED                   = 0x3,
2063290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_PORTCONFIGURATIONTRAINING  = 0x4,
2064290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_LINKUP                     = 0x5,
2065290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_LINKERRORRECOVERY          = 0x6,
2066290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_PHYTEST                    = 0x7,
2067290650Shselasky};
2068290650Shselasky
2069290650Shselaskyenum {
2070290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_POLICY_DOWN    = 0x0,
2071290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_POLICY_UP      = 0x1,
2072290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_POLICY_FOLLOW  = 0x2,
2073290650Shselasky};
2074290650Shselasky
2075290650Shselaskyenum {
2076290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_STATE_DOWN    = 0x1,
2077290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_STATE_INIT    = 0x2,
2078290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_STATE_ARM     = 0x3,
2079290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_STATE_ACTIVE  = 0x4,
2080290650Shselasky};
2081290650Shselasky
2082290650Shselaskyenum {
2083290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_DOWN    = 0x1,
2084290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_INIT    = 0x2,
2085290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_ARM     = 0x3,
2086290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_ACTIVE  = 0x4,
2087290650Shselasky};
2088290650Shselasky
2089290650Shselaskystruct mlx5_ifc_hca_vport_context_bits {
2090290650Shselasky	u8         field_select[0x20];
2091290650Shselasky
2092290650Shselasky	u8         reserved_0[0xe0];
2093290650Shselasky
2094290650Shselasky	u8         sm_virt_aware[0x1];
2095290650Shselasky	u8         has_smi[0x1];
2096290650Shselasky	u8         has_raw[0x1];
2097290650Shselasky	u8         grh_required[0x1];
2098290650Shselasky	u8         reserved_1[0xc];
2099290650Shselasky	u8         port_physical_state[0x4];
2100290650Shselasky	u8         vport_state_policy[0x4];
2101290650Shselasky	u8         port_state[0x4];
2102290650Shselasky	u8         vport_state[0x4];
2103290650Shselasky
2104290650Shselasky	u8         reserved_2[0x20];
2105290650Shselasky
2106290650Shselasky	u8         system_image_guid[0x40];
2107290650Shselasky
2108290650Shselasky	u8         port_guid[0x40];
2109290650Shselasky
2110290650Shselasky	u8         node_guid[0x40];
2111290650Shselasky
2112290650Shselasky	u8         cap_mask1[0x20];
2113290650Shselasky
2114290650Shselasky	u8         cap_mask1_field_select[0x20];
2115290650Shselasky
2116290650Shselasky	u8         cap_mask2[0x20];
2117290650Shselasky
2118290650Shselasky	u8         cap_mask2_field_select[0x20];
2119290650Shselasky
2120290650Shselasky	u8         reserved_3[0x80];
2121290650Shselasky
2122290650Shselasky	u8         lid[0x10];
2123290650Shselasky	u8         reserved_4[0x4];
2124290650Shselasky	u8         init_type_reply[0x4];
2125290650Shselasky	u8         lmc[0x3];
2126290650Shselasky	u8         subnet_timeout[0x5];
2127290650Shselasky
2128290650Shselasky	u8         sm_lid[0x10];
2129290650Shselasky	u8         sm_sl[0x4];
2130290650Shselasky	u8         reserved_5[0xc];
2131290650Shselasky
2132290650Shselasky	u8         qkey_violation_counter[0x10];
2133290650Shselasky	u8         pkey_violation_counter[0x10];
2134290650Shselasky
2135290650Shselasky	u8         reserved_6[0xca0];
2136290650Shselasky};
2137290650Shselasky
2138290650Shselaskyunion mlx5_ifc_hca_cap_union_bits {
2139290650Shselasky	struct mlx5_ifc_cmd_hca_cap_bits cmd_hca_cap;
2140290650Shselasky	struct mlx5_ifc_odp_cap_bits odp_cap;
2141290650Shselasky	struct mlx5_ifc_atomic_caps_bits atomic_caps;
2142290650Shselasky	struct mlx5_ifc_roce_cap_bits roce_cap;
2143290650Shselasky	struct mlx5_ifc_per_protocol_networking_offload_caps_bits per_protocol_networking_offload_caps;
2144290650Shselasky	struct mlx5_ifc_flow_table_nic_cap_bits flow_table_nic_cap;
2145290650Shselasky	struct mlx5_ifc_flow_table_eswitch_cap_bits flow_table_eswitch_cap;
2146290650Shselasky	struct mlx5_ifc_e_switch_cap_bits e_switch_cap;
2147290650Shselasky	u8         reserved_0[0x8000];
2148290650Shselasky};
2149290650Shselasky
2150290650Shselaskystruct mlx5_ifc_esw_vport_context_bits {
2151290650Shselasky	u8         reserved_0[0x3];
2152290650Shselasky	u8         vport_svlan_strip[0x1];
2153290650Shselasky	u8         vport_cvlan_strip[0x1];
2154290650Shselasky	u8         vport_svlan_insert[0x1];
2155290650Shselasky	u8         vport_cvlan_insert[0x2];
2156290650Shselasky	u8         reserved_1[0x18];
2157290650Shselasky
2158290650Shselasky	u8         reserved_2[0x20];
2159290650Shselasky
2160290650Shselasky	u8         svlan_cfi[0x1];
2161290650Shselasky	u8         svlan_pcp[0x3];
2162290650Shselasky	u8         svlan_id[0xc];
2163290650Shselasky	u8         cvlan_cfi[0x1];
2164290650Shselasky	u8         cvlan_pcp[0x3];
2165290650Shselasky	u8         cvlan_id[0xc];
2166290650Shselasky
2167290650Shselasky	u8         reserved_3[0x7a0];
2168290650Shselasky};
2169290650Shselasky
2170290650Shselaskyenum {
2171290650Shselasky	MLX5_EQC_STATUS_OK                = 0x0,
2172290650Shselasky	MLX5_EQC_STATUS_EQ_WRITE_FAILURE  = 0xa,
2173290650Shselasky};
2174290650Shselasky
2175290650Shselaskyenum {
2176290650Shselasky	MLX5_EQ_STATE_ARMED = 0x9,
2177290650Shselasky	MLX5_EQ_STATE_FIRED = 0xa,
2178290650Shselasky};
2179290650Shselasky
2180290650Shselaskystruct mlx5_ifc_eqc_bits {
2181290650Shselasky	u8         status[0x4];
2182290650Shselasky	u8         reserved_0[0x9];
2183290650Shselasky	u8         ec[0x1];
2184290650Shselasky	u8         oi[0x1];
2185290650Shselasky	u8         reserved_1[0x5];
2186290650Shselasky	u8         st[0x4];
2187290650Shselasky	u8         reserved_2[0x8];
2188290650Shselasky
2189290650Shselasky	u8         reserved_3[0x20];
2190290650Shselasky
2191290650Shselasky	u8         reserved_4[0x14];
2192290650Shselasky	u8         page_offset[0x6];
2193290650Shselasky	u8         reserved_5[0x6];
2194290650Shselasky
2195290650Shselasky	u8         reserved_6[0x3];
2196290650Shselasky	u8         log_eq_size[0x5];
2197290650Shselasky	u8         uar_page[0x18];
2198290650Shselasky
2199290650Shselasky	u8         reserved_7[0x20];
2200290650Shselasky
2201290650Shselasky	u8         reserved_8[0x18];
2202290650Shselasky	u8         intr[0x8];
2203290650Shselasky
2204290650Shselasky	u8         reserved_9[0x3];
2205290650Shselasky	u8         log_page_size[0x5];
2206290650Shselasky	u8         reserved_10[0x18];
2207290650Shselasky
2208290650Shselasky	u8         reserved_11[0x60];
2209290650Shselasky
2210290650Shselasky	u8         reserved_12[0x8];
2211290650Shselasky	u8         consumer_counter[0x18];
2212290650Shselasky
2213290650Shselasky	u8         reserved_13[0x8];
2214290650Shselasky	u8         producer_counter[0x18];
2215290650Shselasky
2216290650Shselasky	u8         reserved_14[0x80];
2217290650Shselasky};
2218290650Shselasky
2219290650Shselaskyenum {
2220290650Shselasky	MLX5_DCTC_STATE_ACTIVE    = 0x0,
2221290650Shselasky	MLX5_DCTC_STATE_DRAINING  = 0x1,
2222290650Shselasky	MLX5_DCTC_STATE_DRAINED   = 0x2,
2223290650Shselasky};
2224290650Shselasky
2225290650Shselaskyenum {
2226290650Shselasky	MLX5_DCTC_CS_RES_DISABLE    = 0x0,
2227290650Shselasky	MLX5_DCTC_CS_RES_NA         = 0x1,
2228290650Shselasky	MLX5_DCTC_CS_RES_UP_TO_64B  = 0x2,
2229290650Shselasky};
2230290650Shselasky
2231290650Shselaskyenum {
2232290650Shselasky	MLX5_DCTC_MTU_256_BYTES  = 0x1,
2233290650Shselasky	MLX5_DCTC_MTU_512_BYTES  = 0x2,
2234290650Shselasky	MLX5_DCTC_MTU_1K_BYTES   = 0x3,
2235290650Shselasky	MLX5_DCTC_MTU_2K_BYTES   = 0x4,
2236290650Shselasky	MLX5_DCTC_MTU_4K_BYTES   = 0x5,
2237290650Shselasky};
2238290650Shselasky
2239290650Shselaskystruct mlx5_ifc_dctc_bits {
2240290650Shselasky	u8         reserved_0[0x4];
2241290650Shselasky	u8         state[0x4];
2242290650Shselasky	u8         reserved_1[0x18];
2243290650Shselasky
2244290650Shselasky	u8         reserved_2[0x8];
2245290650Shselasky	u8         user_index[0x18];
2246290650Shselasky
2247290650Shselasky	u8         reserved_3[0x8];
2248290650Shselasky	u8         cqn[0x18];
2249290650Shselasky
2250290650Shselasky	u8         counter_set_id[0x8];
2251290650Shselasky	u8         atomic_mode[0x4];
2252290650Shselasky	u8         rre[0x1];
2253290650Shselasky	u8         rwe[0x1];
2254290650Shselasky	u8         rae[0x1];
2255290650Shselasky	u8         atomic_like_write_en[0x1];
2256290650Shselasky	u8         latency_sensitive[0x1];
2257290650Shselasky	u8         rlky[0x1];
2258290650Shselasky	u8         reserved_4[0xe];
2259290650Shselasky
2260290650Shselasky	u8         reserved_5[0x8];
2261290650Shselasky	u8         cs_res[0x8];
2262290650Shselasky	u8         reserved_6[0x3];
2263290650Shselasky	u8         min_rnr_nak[0x5];
2264290650Shselasky	u8         reserved_7[0x8];
2265290650Shselasky
2266290650Shselasky	u8         reserved_8[0x8];
2267290650Shselasky	u8         srqn[0x18];
2268290650Shselasky
2269290650Shselasky	u8         reserved_9[0x8];
2270290650Shselasky	u8         pd[0x18];
2271290650Shselasky
2272290650Shselasky	u8         tclass[0x8];
2273290650Shselasky	u8         reserved_10[0x4];
2274290650Shselasky	u8         flow_label[0x14];
2275290650Shselasky
2276290650Shselasky	u8         dc_access_key[0x40];
2277290650Shselasky
2278290650Shselasky	u8         reserved_11[0x5];
2279290650Shselasky	u8         mtu[0x3];
2280290650Shselasky	u8         port[0x8];
2281290650Shselasky	u8         pkey_index[0x10];
2282290650Shselasky
2283290650Shselasky	u8         reserved_12[0x8];
2284290650Shselasky	u8         my_addr_index[0x8];
2285290650Shselasky	u8         reserved_13[0x8];
2286290650Shselasky	u8         hop_limit[0x8];
2287290650Shselasky
2288290650Shselasky	u8         dc_access_key_violation_count[0x20];
2289290650Shselasky
2290290650Shselasky	u8         reserved_14[0x14];
2291290650Shselasky	u8         dei_cfi[0x1];
2292290650Shselasky	u8         eth_prio[0x3];
2293290650Shselasky	u8         ecn[0x2];
2294290650Shselasky	u8         dscp[0x6];
2295290650Shselasky
2296290650Shselasky	u8         reserved_15[0x40];
2297290650Shselasky};
2298290650Shselasky
2299290650Shselaskyenum {
2300290650Shselasky	MLX5_CQC_STATUS_OK             = 0x0,
2301290650Shselasky	MLX5_CQC_STATUS_CQ_OVERFLOW    = 0x9,
2302290650Shselasky	MLX5_CQC_STATUS_CQ_WRITE_FAIL  = 0xa,
2303290650Shselasky};
2304290650Shselasky
2305290650Shselaskyenum {
2306290650Shselasky	CQE_SIZE_64                = 0x0,
2307290650Shselasky	CQE_SIZE_128               = 0x1,
2308290650Shselasky};
2309290650Shselasky
2310290650Shselaskyenum {
2311290650Shselasky	MLX5_CQ_PERIOD_MODE_START_FROM_EQE  = 0x0,
2312290650Shselasky	MLX5_CQ_PERIOD_MODE_START_FROM_CQE  = 0x1,
2313290650Shselasky};
2314290650Shselasky
2315290650Shselaskyenum {
2316290650Shselasky	MLX5_CQ_STATE_SOLICITED_ARMED                     = 0x6,
2317290650Shselasky	MLX5_CQ_STATE_ARMED                               = 0x9,
2318290650Shselasky	MLX5_CQ_STATE_FIRED                               = 0xa,
2319290650Shselasky};
2320290650Shselasky
2321290650Shselaskystruct mlx5_ifc_cqc_bits {
2322290650Shselasky	u8         status[0x4];
2323290650Shselasky	u8         reserved_0[0x4];
2324290650Shselasky	u8         cqe_sz[0x3];
2325290650Shselasky	u8         cc[0x1];
2326290650Shselasky	u8         reserved_1[0x1];
2327290650Shselasky	u8         scqe_break_moderation_en[0x1];
2328290650Shselasky	u8         oi[0x1];
2329290650Shselasky	u8         cq_period_mode[0x2];
2330290650Shselasky	u8         cqe_compression_en[0x1];
2331290650Shselasky	u8         mini_cqe_res_format[0x2];
2332290650Shselasky	u8         st[0x4];
2333290650Shselasky	u8         reserved_2[0x8];
2334290650Shselasky
2335290650Shselasky	u8         reserved_3[0x20];
2336290650Shselasky
2337290650Shselasky	u8         reserved_4[0x14];
2338290650Shselasky	u8         page_offset[0x6];
2339290650Shselasky	u8         reserved_5[0x6];
2340290650Shselasky
2341290650Shselasky	u8         reserved_6[0x3];
2342290650Shselasky	u8         log_cq_size[0x5];
2343290650Shselasky	u8         uar_page[0x18];
2344290650Shselasky
2345290650Shselasky	u8         reserved_7[0x4];
2346290650Shselasky	u8         cq_period[0xc];
2347290650Shselasky	u8         cq_max_count[0x10];
2348290650Shselasky
2349290650Shselasky	u8         reserved_8[0x18];
2350290650Shselasky	u8         c_eqn[0x8];
2351290650Shselasky
2352290650Shselasky	u8         reserved_9[0x3];
2353290650Shselasky	u8         log_page_size[0x5];
2354290650Shselasky	u8         reserved_10[0x18];
2355290650Shselasky
2356290650Shselasky	u8         reserved_11[0x20];
2357290650Shselasky
2358290650Shselasky	u8         reserved_12[0x8];
2359290650Shselasky	u8         last_notified_index[0x18];
2360290650Shselasky
2361290650Shselasky	u8         reserved_13[0x8];
2362290650Shselasky	u8         last_solicit_index[0x18];
2363290650Shselasky
2364290650Shselasky	u8         reserved_14[0x8];
2365290650Shselasky	u8         consumer_counter[0x18];
2366290650Shselasky
2367290650Shselasky	u8         reserved_15[0x8];
2368290650Shselasky	u8         producer_counter[0x18];
2369290650Shselasky
2370290650Shselasky	u8         reserved_16[0x40];
2371290650Shselasky
2372290650Shselasky	u8         dbr_addr[0x40];
2373290650Shselasky};
2374290650Shselasky
2375290650Shselaskyunion mlx5_ifc_cong_control_roce_ecn_auto_bits {
2376290650Shselasky	struct mlx5_ifc_cong_control_802_1qau_rp_bits cong_control_802_1qau_rp;
2377290650Shselasky	struct mlx5_ifc_cong_control_r_roce_ecn_rp_bits cong_control_r_roce_ecn_rp;
2378290650Shselasky	struct mlx5_ifc_cong_control_r_roce_ecn_np_bits cong_control_r_roce_ecn_np;
2379290650Shselasky	u8         reserved_0[0x800];
2380290650Shselasky};
2381290650Shselasky
2382290650Shselaskystruct mlx5_ifc_query_adapter_param_block_bits {
2383290650Shselasky	u8         reserved_0[0xc0];
2384290650Shselasky
2385290650Shselasky	u8         reserved_1[0x8];
2386290650Shselasky	u8         ieee_vendor_id[0x18];
2387290650Shselasky
2388290650Shselasky	u8         reserved_2[0x10];
2389290650Shselasky	u8         vsd_vendor_id[0x10];
2390290650Shselasky
2391290650Shselasky	u8         vsd[208][0x8];
2392290650Shselasky
2393290650Shselasky	u8         vsd_contd_psid[16][0x8];
2394290650Shselasky};
2395290650Shselasky
2396290650Shselaskyunion mlx5_ifc_modify_field_select_resize_field_select_auto_bits {
2397290650Shselasky	struct mlx5_ifc_modify_field_select_bits modify_field_select;
2398290650Shselasky	struct mlx5_ifc_resize_field_select_bits resize_field_select;
2399290650Shselasky	u8         reserved_0[0x20];
2400290650Shselasky};
2401290650Shselasky
2402290650Shselaskyunion mlx5_ifc_field_select_802_1_r_roce_auto_bits {
2403290650Shselasky	struct mlx5_ifc_field_select_802_1qau_rp_bits field_select_802_1qau_rp;
2404290650Shselasky	struct mlx5_ifc_field_select_r_roce_rp_bits field_select_r_roce_rp;
2405290650Shselasky	struct mlx5_ifc_field_select_r_roce_np_bits field_select_r_roce_np;
2406290650Shselasky	u8         reserved_0[0x20];
2407290650Shselasky};
2408290650Shselasky
2409290650Shselaskystruct mlx5_ifc_bufferx_reg_bits {
2410290650Shselasky	u8         reserved_0[0x6];
2411290650Shselasky	u8         lossy[0x1];
2412290650Shselasky	u8         epsb[0x1];
2413290650Shselasky	u8         reserved_1[0xc];
2414290650Shselasky	u8         size[0xc];
2415290650Shselasky
2416290650Shselasky	u8         xoff_threshold[0x10];
2417290650Shselasky	u8         xon_threshold[0x10];
2418290650Shselasky};
2419290650Shselasky
2420290650Shselaskystruct mlx5_ifc_config_item_bits {
2421290650Shselasky	u8         valid[0x2];
2422290650Shselasky	u8         reserved_0[0x2];
2423290650Shselasky	u8         header_type[0x2];
2424290650Shselasky	u8         reserved_1[0x2];
2425290650Shselasky	u8         default_location[0x1];
2426290650Shselasky	u8         reserved_2[0x7];
2427290650Shselasky	u8         version[0x4];
2428290650Shselasky	u8         reserved_3[0x3];
2429290650Shselasky	u8         length[0x9];
2430290650Shselasky
2431290650Shselasky	u8         type[0x20];
2432290650Shselasky
2433290650Shselasky	u8         reserved_4[0x10];
2434290650Shselasky	u8         crc16[0x10];
2435290650Shselasky};
2436290650Shselasky
2437290650Shselaskystruct mlx5_ifc_nodnic_port_config_reg_bits {
2438290650Shselasky	struct mlx5_ifc_nodnic_event_word_bits event;
2439290650Shselasky
2440290650Shselasky	u8         network_en[0x1];
2441290650Shselasky	u8         dma_en[0x1];
2442290650Shselasky	u8         promisc_en[0x1];
2443290650Shselasky	u8         promisc_multicast_en[0x1];
2444290650Shselasky	u8         reserved_0[0x17];
2445290650Shselasky	u8         receive_filter_en[0x5];
2446290650Shselasky
2447290650Shselasky	u8         reserved_1[0x10];
2448290650Shselasky	u8         mac_47_32[0x10];
2449290650Shselasky
2450290650Shselasky	u8         mac_31_0[0x20];
2451290650Shselasky
2452290650Shselasky	u8         receive_filters_mgid_mac[64][0x8];
2453290650Shselasky
2454290650Shselasky	u8         gid[16][0x8];
2455290650Shselasky
2456290650Shselasky	u8         reserved_2[0x10];
2457290650Shselasky	u8         lid[0x10];
2458290650Shselasky
2459290650Shselasky	u8         reserved_3[0xc];
2460290650Shselasky	u8         sm_sl[0x4];
2461290650Shselasky	u8         sm_lid[0x10];
2462290650Shselasky
2463290650Shselasky	u8         completion_address_63_32[0x20];
2464290650Shselasky
2465290650Shselasky	u8         completion_address_31_12[0x14];
2466290650Shselasky	u8         reserved_4[0x6];
2467290650Shselasky	u8         log_cq_size[0x6];
2468290650Shselasky
2469290650Shselasky	u8         working_buffer_address_63_32[0x20];
2470290650Shselasky
2471290650Shselasky	u8         working_buffer_address_31_12[0x14];
2472290650Shselasky	u8         reserved_5[0xc];
2473290650Shselasky
2474290650Shselasky	struct mlx5_ifc_nodnic_cq_arming_word_bits arm_cq;
2475290650Shselasky
2476290650Shselasky	u8         pkey_index[0x10];
2477290650Shselasky	u8         pkey[0x10];
2478290650Shselasky
2479290650Shselasky	struct mlx5_ifc_nodnic_ring_config_reg_bits send_ring0;
2480290650Shselasky
2481290650Shselasky	struct mlx5_ifc_nodnic_ring_config_reg_bits send_ring1;
2482290650Shselasky
2483290650Shselasky	struct mlx5_ifc_nodnic_ring_config_reg_bits receive_ring0;
2484290650Shselasky
2485290650Shselasky	struct mlx5_ifc_nodnic_ring_config_reg_bits receive_ring1;
2486290650Shselasky
2487290650Shselasky	u8         reserved_6[0x400];
2488290650Shselasky};
2489290650Shselasky
2490290650Shselaskyunion mlx5_ifc_event_auto_bits {
2491290650Shselasky	struct mlx5_ifc_comp_event_bits comp_event;
2492290650Shselasky	struct mlx5_ifc_dct_events_bits dct_events;
2493290650Shselasky	struct mlx5_ifc_qp_events_bits qp_events;
2494290650Shselasky	struct mlx5_ifc_wqe_associated_page_fault_event_bits wqe_associated_page_fault_event;
2495290650Shselasky	struct mlx5_ifc_rdma_page_fault_event_bits rdma_page_fault_event;
2496290650Shselasky	struct mlx5_ifc_cq_error_bits cq_error;
2497290650Shselasky	struct mlx5_ifc_dropped_packet_logged_bits dropped_packet_logged;
2498290650Shselasky	struct mlx5_ifc_port_state_change_event_bits port_state_change_event;
2499290650Shselasky	struct mlx5_ifc_gpio_event_bits gpio_event;
2500290650Shselasky	struct mlx5_ifc_db_bf_congestion_event_bits db_bf_congestion_event;
2501290650Shselasky	struct mlx5_ifc_stall_vl_event_bits stall_vl_event;
2502290650Shselasky	struct mlx5_ifc_cmd_inter_comp_event_bits cmd_inter_comp_event;
2503290650Shselasky	struct mlx5_ifc_pages_req_event_bits pages_req_event;
2504290650Shselasky	struct mlx5_ifc_nic_vport_change_event_bits nic_vport_change_event;
2505290650Shselasky	u8         reserved_0[0xe0];
2506290650Shselasky};
2507290650Shselasky
2508290650Shselaskystruct mlx5_ifc_health_buffer_bits {
2509290650Shselasky	u8         reserved_0[0x100];
2510290650Shselasky
2511290650Shselasky	u8         assert_existptr[0x20];
2512290650Shselasky
2513290650Shselasky	u8         assert_callra[0x20];
2514290650Shselasky
2515290650Shselasky	u8         reserved_1[0x40];
2516290650Shselasky
2517290650Shselasky	u8         fw_version[0x20];
2518290650Shselasky
2519290650Shselasky	u8         hw_id[0x20];
2520290650Shselasky
2521290650Shselasky	u8         reserved_2[0x20];
2522290650Shselasky
2523290650Shselasky	u8         irisc_index[0x8];
2524290650Shselasky	u8         synd[0x8];
2525290650Shselasky	u8         ext_synd[0x10];
2526290650Shselasky};
2527290650Shselasky
2528290650Shselaskystruct mlx5_ifc_register_loopback_control_bits {
2529290650Shselasky	u8         no_lb[0x1];
2530290650Shselasky	u8         reserved_0[0x7];
2531290650Shselasky	u8         port[0x8];
2532290650Shselasky	u8         reserved_1[0x10];
2533290650Shselasky
2534290650Shselasky	u8         reserved_2[0x60];
2535290650Shselasky};
2536290650Shselasky
2537290650Shselaskystruct mlx5_ifc_icmd_set_wol_rol_out_bits {
2538290650Shselasky	u8         reserved_0[0x40];
2539290650Shselasky
2540290650Shselasky	u8         reserved_1[0x10];
2541290650Shselasky	u8         rol_mode[0x8];
2542290650Shselasky	u8         wol_mode[0x8];
2543290650Shselasky};
2544290650Shselasky
2545290650Shselaskystruct mlx5_ifc_icmd_set_wol_rol_in_bits {
2546290650Shselasky	u8         reserved_0[0x40];
2547290650Shselasky
2548290650Shselasky	u8         rol_mode_valid[0x1];
2549290650Shselasky	u8         wol_mode_valid[0x1];
2550290650Shselasky	u8         reserved_1[0xe];
2551290650Shselasky	u8         rol_mode[0x8];
2552290650Shselasky	u8         wol_mode[0x8];
2553290650Shselasky
2554290650Shselasky	u8         reserved_2[0x7a0];
2555290650Shselasky};
2556290650Shselasky
2557290650Shselaskystruct mlx5_ifc_icmd_set_virtual_mac_in_bits {
2558290650Shselasky	u8         virtual_mac_en[0x1];
2559290650Shselasky	u8         mac_aux_v[0x1];
2560290650Shselasky	u8         reserved_0[0x1e];
2561290650Shselasky
2562290650Shselasky	u8         reserved_1[0x40];
2563290650Shselasky
2564290650Shselasky	struct mlx5_ifc_mac_address_layout_bits virtual_mac;
2565290650Shselasky
2566290650Shselasky	u8         reserved_2[0x760];
2567290650Shselasky};
2568290650Shselasky
2569290650Shselaskystruct mlx5_ifc_icmd_query_virtual_mac_out_bits {
2570290650Shselasky	u8         virtual_mac_en[0x1];
2571290650Shselasky	u8         mac_aux_v[0x1];
2572290650Shselasky	u8         reserved_0[0x1e];
2573290650Shselasky
2574290650Shselasky	struct mlx5_ifc_mac_address_layout_bits permanent_mac;
2575290650Shselasky
2576290650Shselasky	struct mlx5_ifc_mac_address_layout_bits virtual_mac;
2577290650Shselasky
2578290650Shselasky	u8         reserved_1[0x760];
2579290650Shselasky};
2580290650Shselasky
2581290650Shselaskystruct mlx5_ifc_icmd_query_fw_info_out_bits {
2582290650Shselasky	struct mlx5_ifc_fw_version_bits fw_version;
2583290650Shselasky
2584290650Shselasky	u8         reserved_0[0x10];
2585290650Shselasky	u8         hash_signature[0x10];
2586290650Shselasky
2587290650Shselasky	u8         psid[16][0x8];
2588290650Shselasky
2589290650Shselasky	u8         reserved_1[0x6e0];
2590290650Shselasky};
2591290650Shselasky
2592290650Shselaskystruct mlx5_ifc_icmd_query_cap_in_bits {
2593290650Shselasky	u8         reserved_0[0x10];
2594290650Shselasky	u8         capability_group[0x10];
2595290650Shselasky};
2596290650Shselasky
2597290650Shselaskystruct mlx5_ifc_icmd_query_cap_general_bits {
2598290650Shselasky	u8         nv_access[0x1];
2599290650Shselasky	u8         fw_info_psid[0x1];
2600290650Shselasky	u8         reserved_0[0x1e];
2601290650Shselasky
2602290650Shselasky	u8         reserved_1[0x16];
2603290650Shselasky	u8         rol_s[0x1];
2604290650Shselasky	u8         rol_g[0x1];
2605290650Shselasky	u8         reserved_2[0x1];
2606290650Shselasky	u8         wol_s[0x1];
2607290650Shselasky	u8         wol_g[0x1];
2608290650Shselasky	u8         wol_a[0x1];
2609290650Shselasky	u8         wol_b[0x1];
2610290650Shselasky	u8         wol_m[0x1];
2611290650Shselasky	u8         wol_u[0x1];
2612290650Shselasky	u8         wol_p[0x1];
2613290650Shselasky};
2614290650Shselasky
2615290650Shselaskystruct mlx5_ifc_icmd_ocbb_query_header_stats_out_bits {
2616290650Shselasky	u8         status[0x8];
2617290650Shselasky	u8         reserved_0[0x18];
2618290650Shselasky
2619290650Shselasky	u8         reserved_1[0x7e0];
2620290650Shselasky};
2621290650Shselasky
2622290650Shselaskystruct mlx5_ifc_icmd_ocbb_query_etoc_stats_out_bits {
2623290650Shselasky	u8         status[0x8];
2624290650Shselasky	u8         reserved_0[0x18];
2625290650Shselasky
2626290650Shselasky	u8         reserved_1[0x7e0];
2627290650Shselasky};
2628290650Shselasky
2629290650Shselaskystruct mlx5_ifc_icmd_ocbb_init_in_bits {
2630290650Shselasky	u8         address_hi[0x20];
2631290650Shselasky
2632290650Shselasky	u8         address_lo[0x20];
2633290650Shselasky
2634290650Shselasky	u8         reserved_0[0x7c0];
2635290650Shselasky};
2636290650Shselasky
2637290650Shselaskystruct mlx5_ifc_icmd_init_ocsd_in_bits {
2638290650Shselasky	u8         reserved_0[0x20];
2639290650Shselasky
2640290650Shselasky	u8         address_hi[0x20];
2641290650Shselasky
2642290650Shselasky	u8         address_lo[0x20];
2643290650Shselasky
2644290650Shselasky	u8         reserved_1[0x7a0];
2645290650Shselasky};
2646290650Shselasky
2647290650Shselaskystruct mlx5_ifc_icmd_access_reg_out_bits {
2648290650Shselasky	u8         reserved_0[0x11];
2649290650Shselasky	u8         status[0x7];
2650290650Shselasky	u8         reserved_1[0x8];
2651290650Shselasky
2652290650Shselasky	u8         register_id[0x10];
2653290650Shselasky	u8         reserved_2[0x10];
2654290650Shselasky
2655290650Shselasky	u8         reserved_3[0x40];
2656290650Shselasky
2657290650Shselasky	u8         reserved_4[0x5];
2658290650Shselasky	u8         len[0xb];
2659290650Shselasky	u8         reserved_5[0x10];
2660290650Shselasky
2661290650Shselasky	u8         register_data[0][0x20];
2662290650Shselasky};
2663290650Shselasky
2664290650Shselaskyenum {
2665290650Shselasky	MLX5_ICMD_ACCESS_REG_IN_METHOD_QUERY  = 0x1,
2666290650Shselasky	MLX5_ICMD_ACCESS_REG_IN_METHOD_WRITE  = 0x2,
2667290650Shselasky};
2668290650Shselasky
2669290650Shselaskystruct mlx5_ifc_icmd_access_reg_in_bits {
2670290650Shselasky	u8         constant_1[0x5];
2671290650Shselasky	u8         constant_2[0xb];
2672290650Shselasky	u8         reserved_0[0x10];
2673290650Shselasky
2674290650Shselasky	u8         register_id[0x10];
2675290650Shselasky	u8         reserved_1[0x1];
2676290650Shselasky	u8         method[0x7];
2677290650Shselasky	u8         constant_3[0x8];
2678290650Shselasky
2679290650Shselasky	u8         reserved_2[0x40];
2680290650Shselasky
2681290650Shselasky	u8         constant_4[0x5];
2682290650Shselasky	u8         len[0xb];
2683290650Shselasky	u8         reserved_3[0x10];
2684290650Shselasky
2685290650Shselasky	u8         register_data[0][0x20];
2686290650Shselasky};
2687290650Shselasky
2688290650Shselaskystruct mlx5_ifc_teardown_hca_out_bits {
2689290650Shselasky	u8         status[0x8];
2690290650Shselasky	u8         reserved_0[0x18];
2691290650Shselasky
2692290650Shselasky	u8         syndrome[0x20];
2693290650Shselasky
2694290650Shselasky	u8         reserved_1[0x40];
2695290650Shselasky};
2696290650Shselasky
2697290650Shselaskyenum {
2698290650Shselasky	MLX5_TEARDOWN_HCA_IN_PROFILE_GRACEFUL_CLOSE  = 0x0,
2699290650Shselasky	MLX5_TEARDOWN_HCA_IN_PROFILE_PANIC_CLOSE     = 0x1,
2700290650Shselasky};
2701290650Shselasky
2702290650Shselaskystruct mlx5_ifc_teardown_hca_in_bits {
2703290650Shselasky	u8         opcode[0x10];
2704290650Shselasky	u8         reserved_0[0x10];
2705290650Shselasky
2706290650Shselasky	u8         reserved_1[0x10];
2707290650Shselasky	u8         op_mod[0x10];
2708290650Shselasky
2709290650Shselasky	u8         reserved_2[0x10];
2710290650Shselasky	u8         profile[0x10];
2711290650Shselasky
2712290650Shselasky	u8         reserved_3[0x20];
2713290650Shselasky};
2714290650Shselasky
2715290650Shselaskystruct mlx5_ifc_suspend_qp_out_bits {
2716290650Shselasky	u8         status[0x8];
2717290650Shselasky	u8         reserved_0[0x18];
2718290650Shselasky
2719290650Shselasky	u8         syndrome[0x20];
2720290650Shselasky
2721290650Shselasky	u8         reserved_1[0x40];
2722290650Shselasky};
2723290650Shselasky
2724290650Shselaskystruct mlx5_ifc_suspend_qp_in_bits {
2725290650Shselasky	u8         opcode[0x10];
2726290650Shselasky	u8         reserved_0[0x10];
2727290650Shselasky
2728290650Shselasky	u8         reserved_1[0x10];
2729290650Shselasky	u8         op_mod[0x10];
2730290650Shselasky
2731290650Shselasky	u8         reserved_2[0x8];
2732290650Shselasky	u8         qpn[0x18];
2733290650Shselasky
2734290650Shselasky	u8         reserved_3[0x20];
2735290650Shselasky};
2736290650Shselasky
2737290650Shselaskystruct mlx5_ifc_sqerr2rts_qp_out_bits {
2738290650Shselasky	u8         status[0x8];
2739290650Shselasky	u8         reserved_0[0x18];
2740290650Shselasky
2741290650Shselasky	u8         syndrome[0x20];
2742290650Shselasky
2743290650Shselasky	u8         reserved_1[0x40];
2744290650Shselasky};
2745290650Shselasky
2746290650Shselaskystruct mlx5_ifc_sqerr2rts_qp_in_bits {
2747290650Shselasky	u8         opcode[0x10];
2748290650Shselasky	u8         reserved_0[0x10];
2749290650Shselasky
2750290650Shselasky	u8         reserved_1[0x10];
2751290650Shselasky	u8         op_mod[0x10];
2752290650Shselasky
2753290650Shselasky	u8         reserved_2[0x8];
2754290650Shselasky	u8         qpn[0x18];
2755290650Shselasky
2756290650Shselasky	u8         reserved_3[0x20];
2757290650Shselasky
2758290650Shselasky	u8         opt_param_mask[0x20];
2759290650Shselasky
2760290650Shselasky	u8         reserved_4[0x20];
2761290650Shselasky
2762290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
2763290650Shselasky
2764290650Shselasky	u8         reserved_5[0x80];
2765290650Shselasky};
2766290650Shselasky
2767290650Shselaskystruct mlx5_ifc_sqd2rts_qp_out_bits {
2768290650Shselasky	u8         status[0x8];
2769290650Shselasky	u8         reserved_0[0x18];
2770290650Shselasky
2771290650Shselasky	u8         syndrome[0x20];
2772290650Shselasky
2773290650Shselasky	u8         reserved_1[0x40];
2774290650Shselasky};
2775290650Shselasky
2776290650Shselaskystruct mlx5_ifc_sqd2rts_qp_in_bits {
2777290650Shselasky	u8         opcode[0x10];
2778290650Shselasky	u8         reserved_0[0x10];
2779290650Shselasky
2780290650Shselasky	u8         reserved_1[0x10];
2781290650Shselasky	u8         op_mod[0x10];
2782290650Shselasky
2783290650Shselasky	u8         reserved_2[0x8];
2784290650Shselasky	u8         qpn[0x18];
2785290650Shselasky
2786290650Shselasky	u8         reserved_3[0x20];
2787290650Shselasky
2788290650Shselasky	u8         opt_param_mask[0x20];
2789290650Shselasky
2790290650Shselasky	u8         reserved_4[0x20];
2791290650Shselasky
2792290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
2793290650Shselasky
2794290650Shselasky	u8         reserved_5[0x80];
2795290650Shselasky};
2796290650Shselasky
2797290650Shselaskystruct mlx5_ifc_snapshot_cap_bits {
2798290650Shselasky	u8         reserved_0[0x1d];
2799290650Shselasky	u8         suspend_qp_uc[0x1];
2800290650Shselasky	u8         suspend_qp_ud[0x1];
2801290650Shselasky	u8         suspend_qp_rc[0x1];
2802290650Shselasky
2803290650Shselasky	u8         reserved_1[0x1c];
2804290650Shselasky	u8         restore_pd[0x1];
2805290650Shselasky	u8         restore_uar[0x1];
2806290650Shselasky	u8         restore_mkey[0x1];
2807290650Shselasky	u8         restore_qp[0x1];
2808290650Shselasky
2809290650Shselasky	u8         reserved_2[0x1e];
2810290650Shselasky	u8         named_mkey[0x1];
2811290650Shselasky	u8         named_qp[0x1];
2812290650Shselasky
2813290650Shselasky	u8         reserved_3[0x7a0];
2814290650Shselasky};
2815290650Shselasky
2816290650Shselaskystruct mlx5_ifc_set_wol_rol_out_bits {
2817290650Shselasky	u8         status[0x8];
2818290650Shselasky	u8         reserved_0[0x18];
2819290650Shselasky
2820290650Shselasky	u8         syndrome[0x20];
2821290650Shselasky
2822290650Shselasky	u8         reserved_1[0x40];
2823290650Shselasky};
2824290650Shselasky
2825290650Shselaskystruct mlx5_ifc_set_wol_rol_in_bits {
2826290650Shselasky	u8         opcode[0x10];
2827290650Shselasky	u8         reserved_0[0x10];
2828290650Shselasky
2829290650Shselasky	u8         reserved_1[0x10];
2830290650Shselasky	u8         op_mod[0x10];
2831290650Shselasky
2832290650Shselasky	u8         rol_mode_valid[0x1];
2833290650Shselasky	u8         wol_mode_valid[0x1];
2834290650Shselasky	u8         reserved_2[0xe];
2835290650Shselasky	u8         rol_mode[0x8];
2836290650Shselasky	u8         wol_mode[0x8];
2837290650Shselasky
2838290650Shselasky	u8         reserved_3[0x20];
2839290650Shselasky};
2840290650Shselasky
2841290650Shselaskystruct mlx5_ifc_set_roce_address_out_bits {
2842290650Shselasky	u8         status[0x8];
2843290650Shselasky	u8         reserved_0[0x18];
2844290650Shselasky
2845290650Shselasky	u8         syndrome[0x20];
2846290650Shselasky
2847290650Shselasky	u8         reserved_1[0x40];
2848290650Shselasky};
2849290650Shselasky
2850290650Shselaskystruct mlx5_ifc_set_roce_address_in_bits {
2851290650Shselasky	u8         opcode[0x10];
2852290650Shselasky	u8         reserved_0[0x10];
2853290650Shselasky
2854290650Shselasky	u8         reserved_1[0x10];
2855290650Shselasky	u8         op_mod[0x10];
2856290650Shselasky
2857290650Shselasky	u8         roce_address_index[0x10];
2858290650Shselasky	u8         reserved_2[0x10];
2859290650Shselasky
2860290650Shselasky	u8         reserved_3[0x20];
2861290650Shselasky
2862290650Shselasky	struct mlx5_ifc_roce_addr_layout_bits roce_address;
2863290650Shselasky};
2864290650Shselasky
2865290650Shselaskystruct mlx5_ifc_set_rdb_out_bits {
2866290650Shselasky	u8         status[0x8];
2867290650Shselasky	u8         reserved_0[0x18];
2868290650Shselasky
2869290650Shselasky	u8         syndrome[0x20];
2870290650Shselasky
2871290650Shselasky	u8         reserved_1[0x40];
2872290650Shselasky};
2873290650Shselasky
2874290650Shselaskystruct mlx5_ifc_set_rdb_in_bits {
2875290650Shselasky	u8         opcode[0x10];
2876290650Shselasky	u8         reserved_0[0x10];
2877290650Shselasky
2878290650Shselasky	u8         reserved_1[0x10];
2879290650Shselasky	u8         op_mod[0x10];
2880290650Shselasky
2881290650Shselasky	u8         reserved_2[0x8];
2882290650Shselasky	u8         qpn[0x18];
2883290650Shselasky
2884290650Shselasky	u8         reserved_3[0x18];
2885290650Shselasky	u8         rdb_list_size[0x8];
2886290650Shselasky
2887290650Shselasky	struct mlx5_ifc_rdbc_bits rdb_context[0];
2888290650Shselasky};
2889290650Shselasky
2890290650Shselaskystruct mlx5_ifc_set_mad_demux_out_bits {
2891290650Shselasky	u8         status[0x8];
2892290650Shselasky	u8         reserved_0[0x18];
2893290650Shselasky
2894290650Shselasky	u8         syndrome[0x20];
2895290650Shselasky
2896290650Shselasky	u8         reserved_1[0x40];
2897290650Shselasky};
2898290650Shselasky
2899290650Shselaskyenum {
2900290650Shselasky	MLX5_SET_MAD_DEMUX_IN_DEMUX_MODE_PASS_ALL   = 0x0,
2901290650Shselasky	MLX5_SET_MAD_DEMUX_IN_DEMUX_MODE_SELECTIVE  = 0x2,
2902290650Shselasky};
2903290650Shselasky
2904290650Shselaskystruct mlx5_ifc_set_mad_demux_in_bits {
2905290650Shselasky	u8         opcode[0x10];
2906290650Shselasky	u8         reserved_0[0x10];
2907290650Shselasky
2908290650Shselasky	u8         reserved_1[0x10];
2909290650Shselasky	u8         op_mod[0x10];
2910290650Shselasky
2911290650Shselasky	u8         reserved_2[0x20];
2912290650Shselasky
2913290650Shselasky	u8         reserved_3[0x6];
2914290650Shselasky	u8         demux_mode[0x2];
2915290650Shselasky	u8         reserved_4[0x18];
2916290650Shselasky};
2917290650Shselasky
2918290650Shselaskystruct mlx5_ifc_set_l2_table_entry_out_bits {
2919290650Shselasky	u8         status[0x8];
2920290650Shselasky	u8         reserved_0[0x18];
2921290650Shselasky
2922290650Shselasky	u8         syndrome[0x20];
2923290650Shselasky
2924290650Shselasky	u8         reserved_1[0x40];
2925290650Shselasky};
2926290650Shselasky
2927290650Shselaskystruct mlx5_ifc_set_l2_table_entry_in_bits {
2928290650Shselasky	u8         opcode[0x10];
2929290650Shselasky	u8         reserved_0[0x10];
2930290650Shselasky
2931290650Shselasky	u8         reserved_1[0x10];
2932290650Shselasky	u8         op_mod[0x10];
2933290650Shselasky
2934290650Shselasky	u8         reserved_2[0x60];
2935290650Shselasky
2936290650Shselasky	u8         reserved_3[0x8];
2937290650Shselasky	u8         table_index[0x18];
2938290650Shselasky
2939290650Shselasky	u8         reserved_4[0x20];
2940290650Shselasky
2941290650Shselasky	u8         reserved_5[0x13];
2942290650Shselasky	u8         vlan_valid[0x1];
2943290650Shselasky	u8         vlan[0xc];
2944290650Shselasky
2945290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_address;
2946290650Shselasky
2947290650Shselasky	u8         reserved_6[0xc0];
2948290650Shselasky};
2949290650Shselasky
2950290650Shselaskystruct mlx5_ifc_set_issi_out_bits {
2951290650Shselasky	u8         status[0x8];
2952290650Shselasky	u8         reserved_0[0x18];
2953290650Shselasky
2954290650Shselasky	u8         syndrome[0x20];
2955290650Shselasky
2956290650Shselasky	u8         reserved_1[0x40];
2957290650Shselasky};
2958290650Shselasky
2959290650Shselaskystruct mlx5_ifc_set_issi_in_bits {
2960290650Shselasky	u8         opcode[0x10];
2961290650Shselasky	u8         reserved_0[0x10];
2962290650Shselasky
2963290650Shselasky	u8         reserved_1[0x10];
2964290650Shselasky	u8         op_mod[0x10];
2965290650Shselasky
2966290650Shselasky	u8         reserved_2[0x10];
2967290650Shselasky	u8         current_issi[0x10];
2968290650Shselasky
2969290650Shselasky	u8         reserved_3[0x20];
2970290650Shselasky};
2971290650Shselasky
2972290650Shselaskystruct mlx5_ifc_set_hca_cap_out_bits {
2973290650Shselasky	u8         status[0x8];
2974290650Shselasky	u8         reserved_0[0x18];
2975290650Shselasky
2976290650Shselasky	u8         syndrome[0x20];
2977290650Shselasky
2978290650Shselasky	u8         reserved_1[0x40];
2979290650Shselasky};
2980290650Shselasky
2981290650Shselaskystruct mlx5_ifc_set_hca_cap_in_bits {
2982290650Shselasky	u8         opcode[0x10];
2983290650Shselasky	u8         reserved_0[0x10];
2984290650Shselasky
2985290650Shselasky	u8         reserved_1[0x10];
2986290650Shselasky	u8         op_mod[0x10];
2987290650Shselasky
2988290650Shselasky	u8         reserved_2[0x40];
2989290650Shselasky
2990290650Shselasky	union mlx5_ifc_hca_cap_union_bits capability;
2991290650Shselasky};
2992290650Shselasky
2993290650Shselaskystruct mlx5_ifc_set_flow_table_root_out_bits {
2994290650Shselasky	u8         status[0x8];
2995290650Shselasky	u8         reserved_0[0x18];
2996290650Shselasky
2997290650Shselasky	u8         syndrome[0x20];
2998290650Shselasky
2999290650Shselasky	u8         reserved_1[0x40];
3000290650Shselasky};
3001290650Shselasky
3002290650Shselaskystruct mlx5_ifc_set_flow_table_root_in_bits {
3003290650Shselasky	u8         opcode[0x10];
3004290650Shselasky	u8         reserved_0[0x10];
3005290650Shselasky
3006290650Shselasky	u8         reserved_1[0x10];
3007290650Shselasky	u8         op_mod[0x10];
3008290650Shselasky
3009290650Shselasky	u8         other_vport[0x1];
3010290650Shselasky	u8         reserved_2[0xf];
3011290650Shselasky	u8         vport_number[0x10];
3012290650Shselasky
3013290650Shselasky	u8         reserved_3[0x20];
3014290650Shselasky
3015290650Shselasky	u8         table_type[0x8];
3016290650Shselasky	u8         reserved_4[0x18];
3017290650Shselasky
3018290650Shselasky	u8         reserved_5[0x8];
3019290650Shselasky	u8         table_id[0x18];
3020290650Shselasky
3021290650Shselasky	u8         reserved_6[0x140];
3022290650Shselasky};
3023290650Shselasky
3024290650Shselaskystruct mlx5_ifc_set_fte_out_bits {
3025290650Shselasky	u8         status[0x8];
3026290650Shselasky	u8         reserved_0[0x18];
3027290650Shselasky
3028290650Shselasky	u8         syndrome[0x20];
3029290650Shselasky
3030290650Shselasky	u8         reserved_1[0x40];
3031290650Shselasky};
3032290650Shselasky
3033290650Shselaskystruct mlx5_ifc_set_fte_in_bits {
3034290650Shselasky	u8         opcode[0x10];
3035290650Shselasky	u8         reserved_0[0x10];
3036290650Shselasky
3037290650Shselasky	u8         reserved_1[0x10];
3038290650Shselasky	u8         op_mod[0x10];
3039290650Shselasky
3040290650Shselasky	u8         other_vport[0x1];
3041290650Shselasky	u8         reserved_2[0xf];
3042290650Shselasky	u8         vport_number[0x10];
3043290650Shselasky
3044290650Shselasky	u8         reserved_3[0x20];
3045290650Shselasky
3046290650Shselasky	u8         table_type[0x8];
3047290650Shselasky	u8         reserved_4[0x18];
3048290650Shselasky
3049290650Shselasky	u8         reserved_5[0x8];
3050290650Shselasky	u8         table_id[0x18];
3051290650Shselasky
3052290650Shselasky	u8         reserved_6[0x18];
3053290650Shselasky	u8         modify_enable_mask[0x8];
3054290650Shselasky
3055290650Shselasky	u8         reserved_7[0x20];
3056290650Shselasky
3057290650Shselasky	u8         flow_index[0x20];
3058290650Shselasky
3059290650Shselasky	u8         reserved_8[0xe0];
3060290650Shselasky
3061290650Shselasky	struct mlx5_ifc_flow_context_bits flow_context;
3062290650Shselasky};
3063290650Shselasky
3064290650Shselaskystruct mlx5_ifc_set_driver_version_out_bits {
3065290650Shselasky	u8         status[0x8];
3066290650Shselasky	u8         reserved_0[0x18];
3067290650Shselasky
3068290650Shselasky	u8         syndrome[0x20];
3069290650Shselasky
3070290650Shselasky	u8         reserved_1[0x40];
3071290650Shselasky};
3072290650Shselasky
3073290650Shselaskystruct mlx5_ifc_set_driver_version_in_bits {
3074290650Shselasky	u8         opcode[0x10];
3075290650Shselasky	u8         reserved_0[0x10];
3076290650Shselasky
3077290650Shselasky	u8         reserved_1[0x10];
3078290650Shselasky	u8         op_mod[0x10];
3079290650Shselasky
3080290650Shselasky	u8         reserved_2[0x40];
3081290650Shselasky
3082290650Shselasky	u8         driver_version[64][0x8];
3083290650Shselasky};
3084290650Shselasky
3085290650Shselaskystruct mlx5_ifc_set_dc_cnak_trace_out_bits {
3086290650Shselasky	u8         status[0x8];
3087290650Shselasky	u8         reserved_0[0x18];
3088290650Shselasky
3089290650Shselasky	u8         syndrome[0x20];
3090290650Shselasky
3091290650Shselasky	u8         reserved_1[0x40];
3092290650Shselasky};
3093290650Shselasky
3094290650Shselaskystruct mlx5_ifc_set_dc_cnak_trace_in_bits {
3095290650Shselasky	u8         opcode[0x10];
3096290650Shselasky	u8         reserved_0[0x10];
3097290650Shselasky
3098290650Shselasky	u8         reserved_1[0x10];
3099290650Shselasky	u8         op_mod[0x10];
3100290650Shselasky
3101290650Shselasky	u8         enable[0x1];
3102290650Shselasky	u8         reserved_2[0x1f];
3103290650Shselasky
3104290650Shselasky	u8         reserved_3[0x160];
3105290650Shselasky
3106290650Shselasky	struct mlx5_ifc_cmd_pas_bits pas;
3107290650Shselasky};
3108290650Shselasky
3109290650Shselaskystruct mlx5_ifc_set_burst_size_out_bits {
3110290650Shselasky	u8         status[0x8];
3111290650Shselasky	u8         reserved_0[0x18];
3112290650Shselasky
3113290650Shselasky	u8         syndrome[0x20];
3114290650Shselasky
3115290650Shselasky	u8         reserved_1[0x40];
3116290650Shselasky};
3117290650Shselasky
3118290650Shselaskystruct mlx5_ifc_set_burst_size_in_bits {
3119290650Shselasky	u8         opcode[0x10];
3120290650Shselasky	u8         reserved_0[0x10];
3121290650Shselasky
3122290650Shselasky	u8         reserved_1[0x10];
3123290650Shselasky	u8         op_mod[0x10];
3124290650Shselasky
3125290650Shselasky	u8         reserved_2[0x20];
3126290650Shselasky
3127290650Shselasky	u8         reserved_3[0x9];
3128290650Shselasky	u8         device_burst_size[0x17];
3129290650Shselasky};
3130290650Shselasky
3131290650Shselaskystruct mlx5_ifc_rts2rts_qp_out_bits {
3132290650Shselasky	u8         status[0x8];
3133290650Shselasky	u8         reserved_0[0x18];
3134290650Shselasky
3135290650Shselasky	u8         syndrome[0x20];
3136290650Shselasky
3137290650Shselasky	u8         reserved_1[0x40];
3138290650Shselasky};
3139290650Shselasky
3140290650Shselaskystruct mlx5_ifc_rts2rts_qp_in_bits {
3141290650Shselasky	u8         opcode[0x10];
3142290650Shselasky	u8         reserved_0[0x10];
3143290650Shselasky
3144290650Shselasky	u8         reserved_1[0x10];
3145290650Shselasky	u8         op_mod[0x10];
3146290650Shselasky
3147290650Shselasky	u8         reserved_2[0x8];
3148290650Shselasky	u8         qpn[0x18];
3149290650Shselasky
3150290650Shselasky	u8         reserved_3[0x20];
3151290650Shselasky
3152290650Shselasky	u8         opt_param_mask[0x20];
3153290650Shselasky
3154290650Shselasky	u8         reserved_4[0x20];
3155290650Shselasky
3156290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
3157290650Shselasky
3158290650Shselasky	u8         reserved_5[0x80];
3159290650Shselasky};
3160290650Shselasky
3161290650Shselaskystruct mlx5_ifc_rtr2rts_qp_out_bits {
3162290650Shselasky	u8         status[0x8];
3163290650Shselasky	u8         reserved_0[0x18];
3164290650Shselasky
3165290650Shselasky	u8         syndrome[0x20];
3166290650Shselasky
3167290650Shselasky	u8         reserved_1[0x40];
3168290650Shselasky};
3169290650Shselasky
3170290650Shselaskystruct mlx5_ifc_rtr2rts_qp_in_bits {
3171290650Shselasky	u8         opcode[0x10];
3172290650Shselasky	u8         reserved_0[0x10];
3173290650Shselasky
3174290650Shselasky	u8         reserved_1[0x10];
3175290650Shselasky	u8         op_mod[0x10];
3176290650Shselasky
3177290650Shselasky	u8         reserved_2[0x8];
3178290650Shselasky	u8         qpn[0x18];
3179290650Shselasky
3180290650Shselasky	u8         reserved_3[0x20];
3181290650Shselasky
3182290650Shselasky	u8         opt_param_mask[0x20];
3183290650Shselasky
3184290650Shselasky	u8         reserved_4[0x20];
3185290650Shselasky
3186290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
3187290650Shselasky
3188290650Shselasky	u8         reserved_5[0x80];
3189290650Shselasky};
3190290650Shselasky
3191290650Shselaskystruct mlx5_ifc_rst2init_qp_out_bits {
3192290650Shselasky	u8         status[0x8];
3193290650Shselasky	u8         reserved_0[0x18];
3194290650Shselasky
3195290650Shselasky	u8         syndrome[0x20];
3196290650Shselasky
3197290650Shselasky	u8         reserved_1[0x40];
3198290650Shselasky};
3199290650Shselasky
3200290650Shselaskystruct mlx5_ifc_rst2init_qp_in_bits {
3201290650Shselasky	u8         opcode[0x10];
3202290650Shselasky	u8         reserved_0[0x10];
3203290650Shselasky
3204290650Shselasky	u8         reserved_1[0x10];
3205290650Shselasky	u8         op_mod[0x10];
3206290650Shselasky
3207290650Shselasky	u8         reserved_2[0x8];
3208290650Shselasky	u8         qpn[0x18];
3209290650Shselasky
3210290650Shselasky	u8         reserved_3[0x20];
3211290650Shselasky
3212290650Shselasky	u8         opt_param_mask[0x20];
3213290650Shselasky
3214290650Shselasky	u8         reserved_4[0x20];
3215290650Shselasky
3216290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
3217290650Shselasky
3218290650Shselasky	u8         reserved_5[0x80];
3219290650Shselasky};
3220290650Shselasky
3221290650Shselaskystruct mlx5_ifc_resume_qp_out_bits {
3222290650Shselasky	u8         status[0x8];
3223290650Shselasky	u8         reserved_0[0x18];
3224290650Shselasky
3225290650Shselasky	u8         syndrome[0x20];
3226290650Shselasky
3227290650Shselasky	u8         reserved_1[0x40];
3228290650Shselasky};
3229290650Shselasky
3230290650Shselaskystruct mlx5_ifc_resume_qp_in_bits {
3231290650Shselasky	u8         opcode[0x10];
3232290650Shselasky	u8         reserved_0[0x10];
3233290650Shselasky
3234290650Shselasky	u8         reserved_1[0x10];
3235290650Shselasky	u8         op_mod[0x10];
3236290650Shselasky
3237290650Shselasky	u8         reserved_2[0x8];
3238290650Shselasky	u8         qpn[0x18];
3239290650Shselasky
3240290650Shselasky	u8         reserved_3[0x20];
3241290650Shselasky};
3242290650Shselasky
3243290650Shselaskystruct mlx5_ifc_query_xrc_srq_out_bits {
3244290650Shselasky	u8         status[0x8];
3245290650Shselasky	u8         reserved_0[0x18];
3246290650Shselasky
3247290650Shselasky	u8         syndrome[0x20];
3248290650Shselasky
3249290650Shselasky	u8         reserved_1[0x40];
3250290650Shselasky
3251290650Shselasky	struct mlx5_ifc_xrc_srqc_bits xrc_srq_context_entry;
3252290650Shselasky
3253290650Shselasky	u8         reserved_2[0x600];
3254290650Shselasky
3255290650Shselasky	u8         pas[0][0x40];
3256290650Shselasky};
3257290650Shselasky
3258290650Shselaskystruct mlx5_ifc_query_xrc_srq_in_bits {
3259290650Shselasky	u8         opcode[0x10];
3260290650Shselasky	u8         reserved_0[0x10];
3261290650Shselasky
3262290650Shselasky	u8         reserved_1[0x10];
3263290650Shselasky	u8         op_mod[0x10];
3264290650Shselasky
3265290650Shselasky	u8         reserved_2[0x8];
3266290650Shselasky	u8         xrc_srqn[0x18];
3267290650Shselasky
3268290650Shselasky	u8         reserved_3[0x20];
3269290650Shselasky};
3270290650Shselasky
3271290650Shselaskystruct mlx5_ifc_query_wol_rol_out_bits {
3272290650Shselasky	u8         status[0x8];
3273290650Shselasky	u8         reserved_0[0x18];
3274290650Shselasky
3275290650Shselasky	u8         syndrome[0x20];
3276290650Shselasky
3277290650Shselasky	u8         reserved_1[0x10];
3278290650Shselasky	u8         rol_mode[0x8];
3279290650Shselasky	u8         wol_mode[0x8];
3280290650Shselasky
3281290650Shselasky	u8         reserved_2[0x20];
3282290650Shselasky};
3283290650Shselasky
3284290650Shselaskystruct mlx5_ifc_query_wol_rol_in_bits {
3285290650Shselasky	u8         opcode[0x10];
3286290650Shselasky	u8         reserved_0[0x10];
3287290650Shselasky
3288290650Shselasky	u8         reserved_1[0x10];
3289290650Shselasky	u8         op_mod[0x10];
3290290650Shselasky
3291290650Shselasky	u8         reserved_2[0x40];
3292290650Shselasky};
3293290650Shselasky
3294290650Shselaskyenum {
3295290650Shselasky	MLX5_QUERY_VPORT_STATE_OUT_STATE_DOWN  = 0x0,
3296290650Shselasky	MLX5_QUERY_VPORT_STATE_OUT_STATE_UP    = 0x1,
3297290650Shselasky};
3298290650Shselasky
3299290650Shselaskystruct mlx5_ifc_query_vport_state_out_bits {
3300290650Shselasky	u8         status[0x8];
3301290650Shselasky	u8         reserved_0[0x18];
3302290650Shselasky
3303290650Shselasky	u8         syndrome[0x20];
3304290650Shselasky
3305290650Shselasky	u8         reserved_1[0x20];
3306290650Shselasky
3307290650Shselasky	u8         reserved_2[0x18];
3308290650Shselasky	u8         admin_state[0x4];
3309290650Shselasky	u8         state[0x4];
3310290650Shselasky};
3311290650Shselasky
3312290650Shselaskyenum {
3313290650Shselasky	MLX5_QUERY_VPORT_STATE_IN_OP_MOD_VNIC_VPORT  = 0x0,
3314290650Shselasky	MLX5_QUERY_VPORT_STATE_IN_OP_MOD_ESW_VPORT   = 0x1,
3315290650Shselasky	MLX5_QUERY_VPORT_STATE_IN_OP_MOD_UPLINK      = 0x2,
3316290650Shselasky};
3317290650Shselasky
3318290650Shselaskystruct mlx5_ifc_query_vport_state_in_bits {
3319290650Shselasky	u8         opcode[0x10];
3320290650Shselasky	u8         reserved_0[0x10];
3321290650Shselasky
3322290650Shselasky	u8         reserved_1[0x10];
3323290650Shselasky	u8         op_mod[0x10];
3324290650Shselasky
3325290650Shselasky	u8         other_vport[0x1];
3326290650Shselasky	u8         reserved_2[0xf];
3327290650Shselasky	u8         vport_number[0x10];
3328290650Shselasky
3329290650Shselasky	u8         reserved_3[0x20];
3330290650Shselasky};
3331290650Shselasky
3332290650Shselaskystruct mlx5_ifc_query_vport_counter_out_bits {
3333290650Shselasky	u8         status[0x8];
3334290650Shselasky	u8         reserved_0[0x18];
3335290650Shselasky
3336290650Shselasky	u8         syndrome[0x20];
3337290650Shselasky
3338290650Shselasky	u8         reserved_1[0x40];
3339290650Shselasky
3340290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_errors;
3341290650Shselasky
3342290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmit_errors;
3343290650Shselasky
3344290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_ib_unicast;
3345290650Shselasky
3346290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmitted_ib_unicast;
3347290650Shselasky
3348290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_ib_multicast;
3349290650Shselasky
3350290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmitted_ib_multicast;
3351290650Shselasky
3352290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_eth_broadcast;
3353290650Shselasky
3354290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmitted_eth_broadcast;
3355290650Shselasky
3356290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_eth_unicast;
3357290650Shselasky
3358290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmitted_eth_unicast;
3359290650Shselasky
3360290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_eth_multicast;
3361290650Shselasky
3362290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmitted_eth_multicast;
3363290650Shselasky
3364290650Shselasky	u8         reserved_2[0xa00];
3365290650Shselasky};
3366290650Shselasky
3367290650Shselaskyenum {
3368290650Shselasky	MLX5_QUERY_VPORT_COUNTER_IN_OP_MOD_VPORT_COUNTERS  = 0x0,
3369290650Shselasky};
3370290650Shselasky
3371290650Shselaskystruct mlx5_ifc_query_vport_counter_in_bits {
3372290650Shselasky	u8         opcode[0x10];
3373290650Shselasky	u8         reserved_0[0x10];
3374290650Shselasky
3375290650Shselasky	u8         reserved_1[0x10];
3376290650Shselasky	u8         op_mod[0x10];
3377290650Shselasky
3378290650Shselasky	u8         other_vport[0x1];
3379290650Shselasky	u8         reserved_2[0xb];
3380290650Shselasky	u8         port_num[0x4];
3381290650Shselasky	u8         vport_number[0x10];
3382290650Shselasky
3383290650Shselasky	u8         reserved_3[0x60];
3384290650Shselasky
3385290650Shselasky	u8         clear[0x1];
3386290650Shselasky	u8         reserved_4[0x1f];
3387290650Shselasky
3388290650Shselasky	u8         reserved_5[0x20];
3389290650Shselasky};
3390290650Shselasky
3391290650Shselaskystruct mlx5_ifc_query_tis_out_bits {
3392290650Shselasky	u8         status[0x8];
3393290650Shselasky	u8         reserved_0[0x18];
3394290650Shselasky
3395290650Shselasky	u8         syndrome[0x20];
3396290650Shselasky
3397290650Shselasky	u8         reserved_1[0x40];
3398290650Shselasky
3399290650Shselasky	struct mlx5_ifc_tisc_bits tis_context;
3400290650Shselasky};
3401290650Shselasky
3402290650Shselaskystruct mlx5_ifc_query_tis_in_bits {
3403290650Shselasky	u8         opcode[0x10];
3404290650Shselasky	u8         reserved_0[0x10];
3405290650Shselasky
3406290650Shselasky	u8         reserved_1[0x10];
3407290650Shselasky	u8         op_mod[0x10];
3408290650Shselasky
3409290650Shselasky	u8         reserved_2[0x8];
3410290650Shselasky	u8         tisn[0x18];
3411290650Shselasky
3412290650Shselasky	u8         reserved_3[0x20];
3413290650Shselasky};
3414290650Shselasky
3415290650Shselaskystruct mlx5_ifc_query_tir_out_bits {
3416290650Shselasky	u8         status[0x8];
3417290650Shselasky	u8         reserved_0[0x18];
3418290650Shselasky
3419290650Shselasky	u8         syndrome[0x20];
3420290650Shselasky
3421290650Shselasky	u8         reserved_1[0xc0];
3422290650Shselasky
3423290650Shselasky	struct mlx5_ifc_tirc_bits tir_context;
3424290650Shselasky};
3425290650Shselasky
3426290650Shselaskystruct mlx5_ifc_query_tir_in_bits {
3427290650Shselasky	u8         opcode[0x10];
3428290650Shselasky	u8         reserved_0[0x10];
3429290650Shselasky
3430290650Shselasky	u8         reserved_1[0x10];
3431290650Shselasky	u8         op_mod[0x10];
3432290650Shselasky
3433290650Shselasky	u8         reserved_2[0x8];
3434290650Shselasky	u8         tirn[0x18];
3435290650Shselasky
3436290650Shselasky	u8         reserved_3[0x20];
3437290650Shselasky};
3438290650Shselasky
3439290650Shselaskystruct mlx5_ifc_query_srq_out_bits {
3440290650Shselasky	u8         status[0x8];
3441290650Shselasky	u8         reserved_0[0x18];
3442290650Shselasky
3443290650Shselasky	u8         syndrome[0x20];
3444290650Shselasky
3445290650Shselasky	u8         reserved_1[0x40];
3446290650Shselasky
3447290650Shselasky	struct mlx5_ifc_srqc_bits srq_context_entry;
3448290650Shselasky
3449290650Shselasky	u8         reserved_2[0x600];
3450290650Shselasky
3451290650Shselasky	u8         pas[0][0x40];
3452290650Shselasky};
3453290650Shselasky
3454290650Shselaskystruct mlx5_ifc_query_srq_in_bits {
3455290650Shselasky	u8         opcode[0x10];
3456290650Shselasky	u8         reserved_0[0x10];
3457290650Shselasky
3458290650Shselasky	u8         reserved_1[0x10];
3459290650Shselasky	u8         op_mod[0x10];
3460290650Shselasky
3461290650Shselasky	u8         reserved_2[0x8];
3462290650Shselasky	u8         srqn[0x18];
3463290650Shselasky
3464290650Shselasky	u8         reserved_3[0x20];
3465290650Shselasky};
3466290650Shselasky
3467290650Shselaskystruct mlx5_ifc_query_sq_out_bits {
3468290650Shselasky	u8         status[0x8];
3469290650Shselasky	u8         reserved_0[0x18];
3470290650Shselasky
3471290650Shselasky	u8         syndrome[0x20];
3472290650Shselasky
3473290650Shselasky	u8         reserved_1[0xc0];
3474290650Shselasky
3475290650Shselasky	struct mlx5_ifc_sqc_bits sq_context;
3476290650Shselasky};
3477290650Shselasky
3478290650Shselaskystruct mlx5_ifc_query_sq_in_bits {
3479290650Shselasky	u8         opcode[0x10];
3480290650Shselasky	u8         reserved_0[0x10];
3481290650Shselasky
3482290650Shselasky	u8         reserved_1[0x10];
3483290650Shselasky	u8         op_mod[0x10];
3484290650Shselasky
3485290650Shselasky	u8         reserved_2[0x8];
3486290650Shselasky	u8         sqn[0x18];
3487290650Shselasky
3488290650Shselasky	u8         reserved_3[0x20];
3489290650Shselasky};
3490290650Shselasky
3491290650Shselaskystruct mlx5_ifc_query_special_contexts_out_bits {
3492290650Shselasky	u8         status[0x8];
3493290650Shselasky	u8         reserved_0[0x18];
3494290650Shselasky
3495290650Shselasky	u8         syndrome[0x20];
3496290650Shselasky
3497290650Shselasky	u8         reserved_1[0x20];
3498290650Shselasky
3499290650Shselasky	u8         resd_lkey[0x20];
3500290650Shselasky};
3501290650Shselasky
3502290650Shselaskystruct mlx5_ifc_query_special_contexts_in_bits {
3503290650Shselasky	u8         opcode[0x10];
3504290650Shselasky	u8         reserved_0[0x10];
3505290650Shselasky
3506290650Shselasky	u8         reserved_1[0x10];
3507290650Shselasky	u8         op_mod[0x10];
3508290650Shselasky
3509290650Shselasky	u8         reserved_2[0x40];
3510290650Shselasky};
3511290650Shselasky
3512290650Shselaskystruct mlx5_ifc_query_rqt_out_bits {
3513290650Shselasky	u8         status[0x8];
3514290650Shselasky	u8         reserved_0[0x18];
3515290650Shselasky
3516290650Shselasky	u8         syndrome[0x20];
3517290650Shselasky
3518290650Shselasky	u8         reserved_1[0xc0];
3519290650Shselasky
3520290650Shselasky	struct mlx5_ifc_rqtc_bits rqt_context;
3521290650Shselasky};
3522290650Shselasky
3523290650Shselaskystruct mlx5_ifc_query_rqt_in_bits {
3524290650Shselasky	u8         opcode[0x10];
3525290650Shselasky	u8         reserved_0[0x10];
3526290650Shselasky
3527290650Shselasky	u8         reserved_1[0x10];
3528290650Shselasky	u8         op_mod[0x10];
3529290650Shselasky
3530290650Shselasky	u8         reserved_2[0x8];
3531290650Shselasky	u8         rqtn[0x18];
3532290650Shselasky
3533290650Shselasky	u8         reserved_3[0x20];
3534290650Shselasky};
3535290650Shselasky
3536290650Shselaskystruct mlx5_ifc_query_rq_out_bits {
3537290650Shselasky	u8         status[0x8];
3538290650Shselasky	u8         reserved_0[0x18];
3539290650Shselasky
3540290650Shselasky	u8         syndrome[0x20];
3541290650Shselasky
3542290650Shselasky	u8         reserved_1[0xc0];
3543290650Shselasky
3544290650Shselasky	struct mlx5_ifc_rqc_bits rq_context;
3545290650Shselasky};
3546290650Shselasky
3547290650Shselaskystruct mlx5_ifc_query_rq_in_bits {
3548290650Shselasky	u8         opcode[0x10];
3549290650Shselasky	u8         reserved_0[0x10];
3550290650Shselasky
3551290650Shselasky	u8         reserved_1[0x10];
3552290650Shselasky	u8         op_mod[0x10];
3553290650Shselasky
3554290650Shselasky	u8         reserved_2[0x8];
3555290650Shselasky	u8         rqn[0x18];
3556290650Shselasky
3557290650Shselasky	u8         reserved_3[0x20];
3558290650Shselasky};
3559290650Shselasky
3560290650Shselaskystruct mlx5_ifc_query_roce_address_out_bits {
3561290650Shselasky	u8         status[0x8];
3562290650Shselasky	u8         reserved_0[0x18];
3563290650Shselasky
3564290650Shselasky	u8         syndrome[0x20];
3565290650Shselasky
3566290650Shselasky	u8         reserved_1[0x40];
3567290650Shselasky
3568290650Shselasky	struct mlx5_ifc_roce_addr_layout_bits roce_address;
3569290650Shselasky};
3570290650Shselasky
3571290650Shselaskystruct mlx5_ifc_query_roce_address_in_bits {
3572290650Shselasky	u8         opcode[0x10];
3573290650Shselasky	u8         reserved_0[0x10];
3574290650Shselasky
3575290650Shselasky	u8         reserved_1[0x10];
3576290650Shselasky	u8         op_mod[0x10];
3577290650Shselasky
3578290650Shselasky	u8         roce_address_index[0x10];
3579290650Shselasky	u8         reserved_2[0x10];
3580290650Shselasky
3581290650Shselasky	u8         reserved_3[0x20];
3582290650Shselasky};
3583290650Shselasky
3584290650Shselaskystruct mlx5_ifc_query_rmp_out_bits {
3585290650Shselasky	u8         status[0x8];
3586290650Shselasky	u8         reserved_0[0x18];
3587290650Shselasky
3588290650Shselasky	u8         syndrome[0x20];
3589290650Shselasky
3590290650Shselasky	u8         reserved_1[0xc0];
3591290650Shselasky
3592290650Shselasky	struct mlx5_ifc_rmpc_bits rmp_context;
3593290650Shselasky};
3594290650Shselasky
3595290650Shselaskystruct mlx5_ifc_query_rmp_in_bits {
3596290650Shselasky	u8         opcode[0x10];
3597290650Shselasky	u8         reserved_0[0x10];
3598290650Shselasky
3599290650Shselasky	u8         reserved_1[0x10];
3600290650Shselasky	u8         op_mod[0x10];
3601290650Shselasky
3602290650Shselasky	u8         reserved_2[0x8];
3603290650Shselasky	u8         rmpn[0x18];
3604290650Shselasky
3605290650Shselasky	u8         reserved_3[0x20];
3606290650Shselasky};
3607290650Shselasky
3608290650Shselaskystruct mlx5_ifc_query_rdb_out_bits {
3609290650Shselasky	u8         status[0x8];
3610290650Shselasky	u8         reserved_0[0x18];
3611290650Shselasky
3612290650Shselasky	u8         syndrome[0x20];
3613290650Shselasky
3614290650Shselasky	u8         reserved_1[0x20];
3615290650Shselasky
3616290650Shselasky	u8         reserved_2[0x18];
3617290650Shselasky	u8         rdb_list_size[0x8];
3618290650Shselasky
3619290650Shselasky	struct mlx5_ifc_rdbc_bits rdb_context[0];
3620290650Shselasky};
3621290650Shselasky
3622290650Shselaskystruct mlx5_ifc_query_rdb_in_bits {
3623290650Shselasky	u8         opcode[0x10];
3624290650Shselasky	u8         reserved_0[0x10];
3625290650Shselasky
3626290650Shselasky	u8         reserved_1[0x10];
3627290650Shselasky	u8         op_mod[0x10];
3628290650Shselasky
3629290650Shselasky	u8         reserved_2[0x8];
3630290650Shselasky	u8         qpn[0x18];
3631290650Shselasky
3632290650Shselasky	u8         reserved_3[0x20];
3633290650Shselasky};
3634290650Shselasky
3635290650Shselaskystruct mlx5_ifc_query_qp_out_bits {
3636290650Shselasky	u8         status[0x8];
3637290650Shselasky	u8         reserved_0[0x18];
3638290650Shselasky
3639290650Shselasky	u8         syndrome[0x20];
3640290650Shselasky
3641290650Shselasky	u8         reserved_1[0x40];
3642290650Shselasky
3643290650Shselasky	u8         opt_param_mask[0x20];
3644290650Shselasky
3645290650Shselasky	u8         reserved_2[0x20];
3646290650Shselasky
3647290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
3648290650Shselasky
3649290650Shselasky	u8         reserved_3[0x80];
3650290650Shselasky
3651290650Shselasky	u8         pas[0][0x40];
3652290650Shselasky};
3653290650Shselasky
3654290650Shselaskystruct mlx5_ifc_query_qp_in_bits {
3655290650Shselasky	u8         opcode[0x10];
3656290650Shselasky	u8         reserved_0[0x10];
3657290650Shselasky
3658290650Shselasky	u8         reserved_1[0x10];
3659290650Shselasky	u8         op_mod[0x10];
3660290650Shselasky
3661290650Shselasky	u8         reserved_2[0x8];
3662290650Shselasky	u8         qpn[0x18];
3663290650Shselasky
3664290650Shselasky	u8         reserved_3[0x20];
3665290650Shselasky};
3666290650Shselasky
3667290650Shselaskystruct mlx5_ifc_query_q_counter_out_bits {
3668290650Shselasky	u8         status[0x8];
3669290650Shselasky	u8         reserved_0[0x18];
3670290650Shselasky
3671290650Shselasky	u8         syndrome[0x20];
3672290650Shselasky
3673290650Shselasky	u8         reserved_1[0x40];
3674290650Shselasky
3675290650Shselasky	u8         rx_write_requests[0x20];
3676290650Shselasky
3677290650Shselasky	u8         reserved_2[0x20];
3678290650Shselasky
3679290650Shselasky	u8         rx_read_requests[0x20];
3680290650Shselasky
3681290650Shselasky	u8         reserved_3[0x20];
3682290650Shselasky
3683290650Shselasky	u8         rx_atomic_requests[0x20];
3684290650Shselasky
3685290650Shselasky	u8         reserved_4[0x20];
3686290650Shselasky
3687290650Shselasky	u8         rx_dct_connect[0x20];
3688290650Shselasky
3689290650Shselasky	u8         reserved_5[0x20];
3690290650Shselasky
3691290650Shselasky	u8         out_of_buffer[0x20];
3692290650Shselasky
3693290650Shselasky	u8         reserved_6[0x20];
3694290650Shselasky
3695290650Shselasky	u8         out_of_sequence[0x20];
3696290650Shselasky
3697290650Shselasky	u8         reserved_7[0x620];
3698290650Shselasky};
3699290650Shselasky
3700290650Shselaskystruct mlx5_ifc_query_q_counter_in_bits {
3701290650Shselasky	u8         opcode[0x10];
3702290650Shselasky	u8         reserved_0[0x10];
3703290650Shselasky
3704290650Shselasky	u8         reserved_1[0x10];
3705290650Shselasky	u8         op_mod[0x10];
3706290650Shselasky
3707290650Shselasky	u8         reserved_2[0x80];
3708290650Shselasky
3709290650Shselasky	u8         clear[0x1];
3710290650Shselasky	u8         reserved_3[0x1f];
3711290650Shselasky
3712290650Shselasky	u8         reserved_4[0x18];
3713290650Shselasky	u8         counter_set_id[0x8];
3714290650Shselasky};
3715290650Shselasky
3716290650Shselaskystruct mlx5_ifc_query_pages_out_bits {
3717290650Shselasky	u8         status[0x8];
3718290650Shselasky	u8         reserved_0[0x18];
3719290650Shselasky
3720290650Shselasky	u8         syndrome[0x20];
3721290650Shselasky
3722290650Shselasky	u8         reserved_1[0x10];
3723290650Shselasky	u8         function_id[0x10];
3724290650Shselasky
3725290650Shselasky	u8         num_pages[0x20];
3726290650Shselasky};
3727290650Shselasky
3728290650Shselaskyenum {
3729290650Shselasky	MLX5_BOOT_PAGES                           = 0x1,
3730290650Shselasky	MLX5_INIT_PAGES                           = 0x2,
3731290650Shselasky	MLX5_POST_INIT_PAGES                      = 0x3,
3732290650Shselasky};
3733290650Shselasky
3734290650Shselaskystruct mlx5_ifc_query_pages_in_bits {
3735290650Shselasky	u8         opcode[0x10];
3736290650Shselasky	u8         reserved_0[0x10];
3737290650Shselasky
3738290650Shselasky	u8         reserved_1[0x10];
3739290650Shselasky	u8         op_mod[0x10];
3740290650Shselasky
3741290650Shselasky	u8         reserved_2[0x10];
3742290650Shselasky	u8         function_id[0x10];
3743290650Shselasky
3744290650Shselasky	u8         reserved_3[0x20];
3745290650Shselasky};
3746290650Shselasky
3747290650Shselaskystruct mlx5_ifc_query_nic_vport_context_out_bits {
3748290650Shselasky	u8         status[0x8];
3749290650Shselasky	u8         reserved_0[0x18];
3750290650Shselasky
3751290650Shselasky	u8         syndrome[0x20];
3752290650Shselasky
3753290650Shselasky	u8         reserved_1[0x40];
3754290650Shselasky
3755290650Shselasky	struct mlx5_ifc_nic_vport_context_bits nic_vport_context;
3756290650Shselasky};
3757290650Shselasky
3758290650Shselaskystruct mlx5_ifc_query_nic_vport_context_in_bits {
3759290650Shselasky	u8         opcode[0x10];
3760290650Shselasky	u8         reserved_0[0x10];
3761290650Shselasky
3762290650Shselasky	u8         reserved_1[0x10];
3763290650Shselasky	u8         op_mod[0x10];
3764290650Shselasky
3765290650Shselasky	u8         other_vport[0x1];
3766290650Shselasky	u8         reserved_2[0xf];
3767290650Shselasky	u8         vport_number[0x10];
3768290650Shselasky
3769290650Shselasky	u8         reserved_3[0x5];
3770290650Shselasky	u8         allowed_list_type[0x3];
3771290650Shselasky	u8         reserved_4[0x18];
3772290650Shselasky};
3773290650Shselasky
3774290650Shselaskystruct mlx5_ifc_query_mkey_out_bits {
3775290650Shselasky	u8         status[0x8];
3776290650Shselasky	u8         reserved_0[0x18];
3777290650Shselasky
3778290650Shselasky	u8         syndrome[0x20];
3779290650Shselasky
3780290650Shselasky	u8         reserved_1[0x40];
3781290650Shselasky
3782290650Shselasky	struct mlx5_ifc_mkc_bits memory_key_mkey_entry;
3783290650Shselasky
3784290650Shselasky	u8         reserved_2[0x600];
3785290650Shselasky
3786290650Shselasky	u8         bsf0_klm0_pas_mtt0_1[16][0x8];
3787290650Shselasky
3788290650Shselasky	u8         bsf1_klm1_pas_mtt2_3[16][0x8];
3789290650Shselasky};
3790290650Shselasky
3791290650Shselaskystruct mlx5_ifc_query_mkey_in_bits {
3792290650Shselasky	u8         opcode[0x10];
3793290650Shselasky	u8         reserved_0[0x10];
3794290650Shselasky
3795290650Shselasky	u8         reserved_1[0x10];
3796290650Shselasky	u8         op_mod[0x10];
3797290650Shselasky
3798290650Shselasky	u8         reserved_2[0x8];
3799290650Shselasky	u8         mkey_index[0x18];
3800290650Shselasky
3801290650Shselasky	u8         pg_access[0x1];
3802290650Shselasky	u8         reserved_3[0x1f];
3803290650Shselasky};
3804290650Shselasky
3805290650Shselaskystruct mlx5_ifc_query_mad_demux_out_bits {
3806290650Shselasky	u8         status[0x8];
3807290650Shselasky	u8         reserved_0[0x18];
3808290650Shselasky
3809290650Shselasky	u8         syndrome[0x20];
3810290650Shselasky
3811290650Shselasky	u8         reserved_1[0x40];
3812290650Shselasky
3813290650Shselasky	u8         mad_dumux_parameters_block[0x20];
3814290650Shselasky};
3815290650Shselasky
3816290650Shselaskystruct mlx5_ifc_query_mad_demux_in_bits {
3817290650Shselasky	u8         opcode[0x10];
3818290650Shselasky	u8         reserved_0[0x10];
3819290650Shselasky
3820290650Shselasky	u8         reserved_1[0x10];
3821290650Shselasky	u8         op_mod[0x10];
3822290650Shselasky
3823290650Shselasky	u8         reserved_2[0x40];
3824290650Shselasky};
3825290650Shselasky
3826290650Shselaskystruct mlx5_ifc_query_l2_table_entry_out_bits {
3827290650Shselasky	u8         status[0x8];
3828290650Shselasky	u8         reserved_0[0x18];
3829290650Shselasky
3830290650Shselasky	u8         syndrome[0x20];
3831290650Shselasky
3832290650Shselasky	u8         reserved_1[0xa0];
3833290650Shselasky
3834290650Shselasky	u8         reserved_2[0x13];
3835290650Shselasky	u8         vlan_valid[0x1];
3836290650Shselasky	u8         vlan[0xc];
3837290650Shselasky
3838290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_address;
3839290650Shselasky
3840290650Shselasky	u8         reserved_3[0xc0];
3841290650Shselasky};
3842290650Shselasky
3843290650Shselaskystruct mlx5_ifc_query_l2_table_entry_in_bits {
3844290650Shselasky	u8         opcode[0x10];
3845290650Shselasky	u8         reserved_0[0x10];
3846290650Shselasky
3847290650Shselasky	u8         reserved_1[0x10];
3848290650Shselasky	u8         op_mod[0x10];
3849290650Shselasky
3850290650Shselasky	u8         reserved_2[0x60];
3851290650Shselasky
3852290650Shselasky	u8         reserved_3[0x8];
3853290650Shselasky	u8         table_index[0x18];
3854290650Shselasky
3855290650Shselasky	u8         reserved_4[0x140];
3856290650Shselasky};
3857290650Shselasky
3858290650Shselaskystruct mlx5_ifc_query_issi_out_bits {
3859290650Shselasky	u8         status[0x8];
3860290650Shselasky	u8         reserved_0[0x18];
3861290650Shselasky
3862290650Shselasky	u8         syndrome[0x20];
3863290650Shselasky
3864290650Shselasky	u8         reserved_1[0x10];
3865290650Shselasky	u8         current_issi[0x10];
3866290650Shselasky
3867290650Shselasky	u8         reserved_2[0xa0];
3868290650Shselasky
3869290650Shselasky	u8         supported_issi_reserved[76][0x8];
3870290650Shselasky	u8         supported_issi_dw0[0x20];
3871290650Shselasky};
3872290650Shselasky
3873290650Shselaskystruct mlx5_ifc_query_issi_in_bits {
3874290650Shselasky	u8         opcode[0x10];
3875290650Shselasky	u8         reserved_0[0x10];
3876290650Shselasky
3877290650Shselasky	u8         reserved_1[0x10];
3878290650Shselasky	u8         op_mod[0x10];
3879290650Shselasky
3880290650Shselasky	u8         reserved_2[0x40];
3881290650Shselasky};
3882290650Shselasky
3883290650Shselaskystruct mlx5_ifc_query_hca_vport_pkey_out_bits {
3884290650Shselasky	u8         status[0x8];
3885290650Shselasky	u8         reserved_0[0x18];
3886290650Shselasky
3887290650Shselasky	u8         syndrome[0x20];
3888290650Shselasky
3889290650Shselasky	u8         reserved_1[0x40];
3890290650Shselasky
3891290650Shselasky	struct mlx5_ifc_pkey_bits pkey[0];
3892290650Shselasky};
3893290650Shselasky
3894290650Shselaskystruct mlx5_ifc_query_hca_vport_pkey_in_bits {
3895290650Shselasky	u8         opcode[0x10];
3896290650Shselasky	u8         reserved_0[0x10];
3897290650Shselasky
3898290650Shselasky	u8         reserved_1[0x10];
3899290650Shselasky	u8         op_mod[0x10];
3900290650Shselasky
3901290650Shselasky	u8         other_vport[0x1];
3902290650Shselasky	u8         reserved_2[0xb];
3903290650Shselasky	u8         port_num[0x4];
3904290650Shselasky	u8         vport_number[0x10];
3905290650Shselasky
3906290650Shselasky	u8         reserved_3[0x10];
3907290650Shselasky	u8         pkey_index[0x10];
3908290650Shselasky};
3909290650Shselasky
3910290650Shselaskystruct mlx5_ifc_query_hca_vport_gid_out_bits {
3911290650Shselasky	u8         status[0x8];
3912290650Shselasky	u8         reserved_0[0x18];
3913290650Shselasky
3914290650Shselasky	u8         syndrome[0x20];
3915290650Shselasky
3916290650Shselasky	u8         reserved_1[0x20];
3917290650Shselasky
3918290650Shselasky	u8         gids_num[0x10];
3919290650Shselasky	u8         reserved_2[0x10];
3920290650Shselasky
3921290650Shselasky	struct mlx5_ifc_array128_auto_bits gid[0];
3922290650Shselasky};
3923290650Shselasky
3924290650Shselaskystruct mlx5_ifc_query_hca_vport_gid_in_bits {
3925290650Shselasky	u8         opcode[0x10];
3926290650Shselasky	u8         reserved_0[0x10];
3927290650Shselasky
3928290650Shselasky	u8         reserved_1[0x10];
3929290650Shselasky	u8         op_mod[0x10];
3930290650Shselasky
3931290650Shselasky	u8         other_vport[0x1];
3932290650Shselasky	u8         reserved_2[0xb];
3933290650Shselasky	u8         port_num[0x4];
3934290650Shselasky	u8         vport_number[0x10];
3935290650Shselasky
3936290650Shselasky	u8         reserved_3[0x10];
3937290650Shselasky	u8         gid_index[0x10];
3938290650Shselasky};
3939290650Shselasky
3940290650Shselaskystruct mlx5_ifc_query_hca_vport_context_out_bits {
3941290650Shselasky	u8         status[0x8];
3942290650Shselasky	u8         reserved_0[0x18];
3943290650Shselasky
3944290650Shselasky	u8         syndrome[0x20];
3945290650Shselasky
3946290650Shselasky	u8         reserved_1[0x40];
3947290650Shselasky
3948290650Shselasky	struct mlx5_ifc_hca_vport_context_bits hca_vport_context;
3949290650Shselasky};
3950290650Shselasky
3951290650Shselaskystruct mlx5_ifc_query_hca_vport_context_in_bits {
3952290650Shselasky	u8         opcode[0x10];
3953290650Shselasky	u8         reserved_0[0x10];
3954290650Shselasky
3955290650Shselasky	u8         reserved_1[0x10];
3956290650Shselasky	u8         op_mod[0x10];
3957290650Shselasky
3958290650Shselasky	u8         other_vport[0x1];
3959290650Shselasky	u8         reserved_2[0xb];
3960290650Shselasky	u8         port_num[0x4];
3961290650Shselasky	u8         vport_number[0x10];
3962290650Shselasky
3963290650Shselasky	u8         reserved_3[0x20];
3964290650Shselasky};
3965290650Shselasky
3966290650Shselaskystruct mlx5_ifc_query_hca_cap_out_bits {
3967290650Shselasky	u8         status[0x8];
3968290650Shselasky	u8         reserved_0[0x18];
3969290650Shselasky
3970290650Shselasky	u8         syndrome[0x20];
3971290650Shselasky
3972290650Shselasky	u8         reserved_1[0x40];
3973290650Shselasky
3974290650Shselasky	union mlx5_ifc_hca_cap_union_bits capability;
3975290650Shselasky};
3976290650Shselasky
3977290650Shselaskystruct mlx5_ifc_query_hca_cap_in_bits {
3978290650Shselasky	u8         opcode[0x10];
3979290650Shselasky	u8         reserved_0[0x10];
3980290650Shselasky
3981290650Shselasky	u8         reserved_1[0x10];
3982290650Shselasky	u8         op_mod[0x10];
3983290650Shselasky
3984290650Shselasky	u8         reserved_2[0x40];
3985290650Shselasky};
3986290650Shselasky
3987290650Shselaskystruct mlx5_ifc_query_flow_table_out_bits {
3988290650Shselasky	u8         status[0x8];
3989290650Shselasky	u8         reserved_0[0x18];
3990290650Shselasky
3991290650Shselasky	u8         syndrome[0x20];
3992290650Shselasky
3993290650Shselasky	u8         reserved_1[0x80];
3994290650Shselasky
3995290650Shselasky	u8         reserved_2[0x8];
3996290650Shselasky	u8         level[0x8];
3997290650Shselasky	u8         reserved_3[0x8];
3998290650Shselasky	u8         log_size[0x8];
3999290650Shselasky
4000290650Shselasky	u8         reserved_4[0x120];
4001290650Shselasky};
4002290650Shselasky
4003290650Shselaskystruct mlx5_ifc_query_flow_table_in_bits {
4004290650Shselasky	u8         opcode[0x10];
4005290650Shselasky	u8         reserved_0[0x10];
4006290650Shselasky
4007290650Shselasky	u8         reserved_1[0x10];
4008290650Shselasky	u8         op_mod[0x10];
4009290650Shselasky
4010290650Shselasky	u8         other_vport[0x1];
4011290650Shselasky	u8         reserved_2[0xf];
4012290650Shselasky	u8         vport_number[0x10];
4013290650Shselasky
4014290650Shselasky	u8         reserved_3[0x20];
4015290650Shselasky
4016290650Shselasky	u8         table_type[0x8];
4017290650Shselasky	u8         reserved_4[0x18];
4018290650Shselasky
4019290650Shselasky	u8         reserved_5[0x8];
4020290650Shselasky	u8         table_id[0x18];
4021290650Shselasky
4022290650Shselasky	u8         reserved_6[0x140];
4023290650Shselasky};
4024290650Shselasky
4025290650Shselaskystruct mlx5_ifc_query_fte_out_bits {
4026290650Shselasky	u8         status[0x8];
4027290650Shselasky	u8         reserved_0[0x18];
4028290650Shselasky
4029290650Shselasky	u8         syndrome[0x20];
4030290650Shselasky
4031290650Shselasky	u8         reserved_1[0x1c0];
4032290650Shselasky
4033290650Shselasky	struct mlx5_ifc_flow_context_bits flow_context;
4034290650Shselasky};
4035290650Shselasky
4036290650Shselaskystruct mlx5_ifc_query_fte_in_bits {
4037290650Shselasky	u8         opcode[0x10];
4038290650Shselasky	u8         reserved_0[0x10];
4039290650Shselasky
4040290650Shselasky	u8         reserved_1[0x10];
4041290650Shselasky	u8         op_mod[0x10];
4042290650Shselasky
4043290650Shselasky	u8         other_vport[0x1];
4044290650Shselasky	u8         reserved_2[0xf];
4045290650Shselasky	u8         vport_number[0x10];
4046290650Shselasky
4047290650Shselasky	u8         reserved_3[0x20];
4048290650Shselasky
4049290650Shselasky	u8         table_type[0x8];
4050290650Shselasky	u8         reserved_4[0x18];
4051290650Shselasky
4052290650Shselasky	u8         reserved_5[0x8];
4053290650Shselasky	u8         table_id[0x18];
4054290650Shselasky
4055290650Shselasky	u8         reserved_6[0x40];
4056290650Shselasky
4057290650Shselasky	u8         flow_index[0x20];
4058290650Shselasky
4059290650Shselasky	u8         reserved_7[0xe0];
4060290650Shselasky};
4061290650Shselasky
4062290650Shselaskyenum {
4063290650Shselasky	MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_OUTER_HEADERS    = 0x0,
4064290650Shselasky	MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS  = 0x1,
4065290650Shselasky	MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_INNER_HEADERS    = 0x2,
4066290650Shselasky};
4067290650Shselasky
4068290650Shselaskystruct mlx5_ifc_query_flow_group_out_bits {
4069290650Shselasky	u8         status[0x8];
4070290650Shselasky	u8         reserved_0[0x18];
4071290650Shselasky
4072290650Shselasky	u8         syndrome[0x20];
4073290650Shselasky
4074290650Shselasky	u8         reserved_1[0xa0];
4075290650Shselasky
4076290650Shselasky	u8         start_flow_index[0x20];
4077290650Shselasky
4078290650Shselasky	u8         reserved_2[0x20];
4079290650Shselasky
4080290650Shselasky	u8         end_flow_index[0x20];
4081290650Shselasky
4082290650Shselasky	u8         reserved_3[0xa0];
4083290650Shselasky
4084290650Shselasky	u8         reserved_4[0x18];
4085290650Shselasky	u8         match_criteria_enable[0x8];
4086290650Shselasky
4087290650Shselasky	struct mlx5_ifc_fte_match_param_bits match_criteria;
4088290650Shselasky
4089290650Shselasky	u8         reserved_5[0xe00];
4090290650Shselasky};
4091290650Shselasky
4092290650Shselaskystruct mlx5_ifc_query_flow_group_in_bits {
4093290650Shselasky	u8         opcode[0x10];
4094290650Shselasky	u8         reserved_0[0x10];
4095290650Shselasky
4096290650Shselasky	u8         reserved_1[0x10];
4097290650Shselasky	u8         op_mod[0x10];
4098290650Shselasky
4099290650Shselasky	u8         other_vport[0x1];
4100290650Shselasky	u8         reserved_2[0xf];
4101290650Shselasky	u8         vport_number[0x10];
4102290650Shselasky
4103290650Shselasky	u8         reserved_3[0x20];
4104290650Shselasky
4105290650Shselasky	u8         table_type[0x8];
4106290650Shselasky	u8         reserved_4[0x18];
4107290650Shselasky
4108290650Shselasky	u8         reserved_5[0x8];
4109290650Shselasky	u8         table_id[0x18];
4110290650Shselasky
4111290650Shselasky	u8         group_id[0x20];
4112290650Shselasky
4113290650Shselasky	u8         reserved_6[0x120];
4114290650Shselasky};
4115290650Shselasky
4116290650Shselaskystruct mlx5_ifc_query_flow_counter_out_bits {
4117290650Shselasky	u8         status[0x8];
4118290650Shselasky	u8         reserved_0[0x18];
4119290650Shselasky
4120290650Shselasky	u8         syndrome[0x20];
4121290650Shselasky
4122290650Shselasky	u8         reserved_1[0x40];
4123290650Shselasky
4124290650Shselasky	struct mlx5_ifc_traffic_counter_bits flow_statistics;
4125290650Shselasky
4126290650Shselasky	u8         reserved_2[0x700];
4127290650Shselasky};
4128290650Shselasky
4129290650Shselaskystruct mlx5_ifc_query_flow_counter_in_bits {
4130290650Shselasky	u8         opcode[0x10];
4131290650Shselasky	u8         reserved_0[0x10];
4132290650Shselasky
4133290650Shselasky	u8         reserved_1[0x10];
4134290650Shselasky	u8         op_mod[0x10];
4135290650Shselasky
4136290650Shselasky	u8         reserved_2[0x80];
4137290650Shselasky
4138290650Shselasky	u8         clear[0x1];
4139290650Shselasky	u8         reserved_3[0x1f];
4140290650Shselasky
4141290650Shselasky	u8         reserved_4[0x10];
4142290650Shselasky	u8         flow_counter_id[0x10];
4143290650Shselasky};
4144290650Shselasky
4145290650Shselaskystruct mlx5_ifc_query_esw_vport_context_out_bits {
4146290650Shselasky	u8         status[0x8];
4147290650Shselasky	u8         reserved_0[0x18];
4148290650Shselasky
4149290650Shselasky	u8         syndrome[0x20];
4150290650Shselasky
4151290650Shselasky	u8         reserved_1[0x40];
4152290650Shselasky
4153290650Shselasky	struct mlx5_ifc_esw_vport_context_bits esw_vport_context;
4154290650Shselasky};
4155290650Shselasky
4156290650Shselaskystruct mlx5_ifc_query_esw_vport_context_in_bits {
4157290650Shselasky	u8         opcode[0x10];
4158290650Shselasky	u8         reserved_0[0x10];
4159290650Shselasky
4160290650Shselasky	u8         reserved_1[0x10];
4161290650Shselasky	u8         op_mod[0x10];
4162290650Shselasky
4163290650Shselasky	u8         other_vport[0x1];
4164290650Shselasky	u8         reserved_2[0xf];
4165290650Shselasky	u8         vport_number[0x10];
4166290650Shselasky
4167290650Shselasky	u8         reserved_3[0x20];
4168290650Shselasky};
4169290650Shselasky
4170290650Shselaskystruct mlx5_ifc_query_eq_out_bits {
4171290650Shselasky	u8         status[0x8];
4172290650Shselasky	u8         reserved_0[0x18];
4173290650Shselasky
4174290650Shselasky	u8         syndrome[0x20];
4175290650Shselasky
4176290650Shselasky	u8         reserved_1[0x40];
4177290650Shselasky
4178290650Shselasky	struct mlx5_ifc_eqc_bits eq_context_entry;
4179290650Shselasky
4180290650Shselasky	u8         reserved_2[0x40];
4181290650Shselasky
4182290650Shselasky	u8         event_bitmask[0x40];
4183290650Shselasky
4184290650Shselasky	u8         reserved_3[0x580];
4185290650Shselasky
4186290650Shselasky	u8         pas[0][0x40];
4187290650Shselasky};
4188290650Shselasky
4189290650Shselaskystruct mlx5_ifc_query_eq_in_bits {
4190290650Shselasky	u8         opcode[0x10];
4191290650Shselasky	u8         reserved_0[0x10];
4192290650Shselasky
4193290650Shselasky	u8         reserved_1[0x10];
4194290650Shselasky	u8         op_mod[0x10];
4195290650Shselasky
4196290650Shselasky	u8         reserved_2[0x18];
4197290650Shselasky	u8         eq_number[0x8];
4198290650Shselasky
4199290650Shselasky	u8         reserved_3[0x20];
4200290650Shselasky};
4201290650Shselasky
4202290650Shselaskystruct mlx5_ifc_query_dct_out_bits {
4203290650Shselasky	u8         status[0x8];
4204290650Shselasky	u8         reserved_0[0x18];
4205290650Shselasky
4206290650Shselasky	u8         syndrome[0x20];
4207290650Shselasky
4208290650Shselasky	u8         reserved_1[0x40];
4209290650Shselasky
4210290650Shselasky	struct mlx5_ifc_dctc_bits dct_context_entry;
4211290650Shselasky
4212290650Shselasky	u8         reserved_2[0x180];
4213290650Shselasky};
4214290650Shselasky
4215290650Shselaskystruct mlx5_ifc_query_dct_in_bits {
4216290650Shselasky	u8         opcode[0x10];
4217290650Shselasky	u8         reserved_0[0x10];
4218290650Shselasky
4219290650Shselasky	u8         reserved_1[0x10];
4220290650Shselasky	u8         op_mod[0x10];
4221290650Shselasky
4222290650Shselasky	u8         reserved_2[0x8];
4223290650Shselasky	u8         dctn[0x18];
4224290650Shselasky
4225290650Shselasky	u8         reserved_3[0x20];
4226290650Shselasky};
4227290650Shselasky
4228290650Shselaskystruct mlx5_ifc_query_dc_cnak_trace_out_bits {
4229290650Shselasky	u8         status[0x8];
4230290650Shselasky	u8         reserved_0[0x18];
4231290650Shselasky
4232290650Shselasky	u8         syndrome[0x20];
4233290650Shselasky
4234290650Shselasky	u8         enable[0x1];
4235290650Shselasky	u8         reserved_1[0x1f];
4236290650Shselasky
4237290650Shselasky	u8         reserved_2[0x160];
4238290650Shselasky
4239290650Shselasky	struct mlx5_ifc_cmd_pas_bits pas;
4240290650Shselasky};
4241290650Shselasky
4242290650Shselaskystruct mlx5_ifc_query_dc_cnak_trace_in_bits {
4243290650Shselasky	u8         opcode[0x10];
4244290650Shselasky	u8         reserved_0[0x10];
4245290650Shselasky
4246290650Shselasky	u8         reserved_1[0x10];
4247290650Shselasky	u8         op_mod[0x10];
4248290650Shselasky
4249290650Shselasky	u8         reserved_2[0x40];
4250290650Shselasky};
4251290650Shselasky
4252290650Shselaskystruct mlx5_ifc_query_cq_out_bits {
4253290650Shselasky	u8         status[0x8];
4254290650Shselasky	u8         reserved_0[0x18];
4255290650Shselasky
4256290650Shselasky	u8         syndrome[0x20];
4257290650Shselasky
4258290650Shselasky	u8         reserved_1[0x40];
4259290650Shselasky
4260290650Shselasky	struct mlx5_ifc_cqc_bits cq_context;
4261290650Shselasky
4262290650Shselasky	u8         reserved_2[0x600];
4263290650Shselasky
4264290650Shselasky	u8         pas[0][0x40];
4265290650Shselasky};
4266290650Shselasky
4267290650Shselaskystruct mlx5_ifc_query_cq_in_bits {
4268290650Shselasky	u8         opcode[0x10];
4269290650Shselasky	u8         reserved_0[0x10];
4270290650Shselasky
4271290650Shselasky	u8         reserved_1[0x10];
4272290650Shselasky	u8         op_mod[0x10];
4273290650Shselasky
4274290650Shselasky	u8         reserved_2[0x8];
4275290650Shselasky	u8         cqn[0x18];
4276290650Shselasky
4277290650Shselasky	u8         reserved_3[0x20];
4278290650Shselasky};
4279290650Shselasky
4280290650Shselaskystruct mlx5_ifc_query_cong_status_out_bits {
4281290650Shselasky	u8         status[0x8];
4282290650Shselasky	u8         reserved_0[0x18];
4283290650Shselasky
4284290650Shselasky	u8         syndrome[0x20];
4285290650Shselasky
4286290650Shselasky	u8         reserved_1[0x20];
4287290650Shselasky
4288290650Shselasky	u8         enable[0x1];
4289290650Shselasky	u8         tag_enable[0x1];
4290290650Shselasky	u8         reserved_2[0x1e];
4291290650Shselasky};
4292290650Shselasky
4293290650Shselaskystruct mlx5_ifc_query_cong_status_in_bits {
4294290650Shselasky	u8         opcode[0x10];
4295290650Shselasky	u8         reserved_0[0x10];
4296290650Shselasky
4297290650Shselasky	u8         reserved_1[0x10];
4298290650Shselasky	u8         op_mod[0x10];
4299290650Shselasky
4300290650Shselasky	u8         reserved_2[0x18];
4301290650Shselasky	u8         priority[0x4];
4302290650Shselasky	u8         cong_protocol[0x4];
4303290650Shselasky
4304290650Shselasky	u8         reserved_3[0x20];
4305290650Shselasky};
4306290650Shselasky
4307290650Shselaskystruct mlx5_ifc_query_cong_statistics_out_bits {
4308290650Shselasky	u8         status[0x8];
4309290650Shselasky	u8         reserved_0[0x18];
4310290650Shselasky
4311290650Shselasky	u8         syndrome[0x20];
4312290650Shselasky
4313290650Shselasky	u8         reserved_1[0x40];
4314290650Shselasky
4315290650Shselasky	u8         cur_flows[0x20];
4316290650Shselasky
4317290650Shselasky	u8         sum_flows[0x20];
4318290650Shselasky
4319290650Shselasky	u8         cnp_ignored_high[0x20];
4320290650Shselasky
4321290650Shselasky	u8         cnp_ignored_low[0x20];
4322290650Shselasky
4323290650Shselasky	u8         cnp_handled_high[0x20];
4324290650Shselasky
4325290650Shselasky	u8         cnp_handled_low[0x20];
4326290650Shselasky
4327290650Shselasky	u8         reserved_2[0x100];
4328290650Shselasky
4329290650Shselasky	u8         time_stamp_high[0x20];
4330290650Shselasky
4331290650Shselasky	u8         time_stamp_low[0x20];
4332290650Shselasky
4333290650Shselasky	u8         accumulators_period[0x20];
4334290650Shselasky
4335290650Shselasky	u8         ecn_marked_roce_packets_high[0x20];
4336290650Shselasky
4337290650Shselasky	u8         ecn_marked_roce_packets_low[0x20];
4338290650Shselasky
4339290650Shselasky	u8         cnps_sent_high[0x20];
4340290650Shselasky
4341290650Shselasky	u8         cnps_sent_low[0x20];
4342290650Shselasky
4343290650Shselasky	u8         reserved_3[0x560];
4344290650Shselasky};
4345290650Shselasky
4346290650Shselaskystruct mlx5_ifc_query_cong_statistics_in_bits {
4347290650Shselasky	u8         opcode[0x10];
4348290650Shselasky	u8         reserved_0[0x10];
4349290650Shselasky
4350290650Shselasky	u8         reserved_1[0x10];
4351290650Shselasky	u8         op_mod[0x10];
4352290650Shselasky
4353290650Shselasky	u8         clear[0x1];
4354290650Shselasky	u8         reserved_2[0x1f];
4355290650Shselasky
4356290650Shselasky	u8         reserved_3[0x20];
4357290650Shselasky};
4358290650Shselasky
4359290650Shselaskystruct mlx5_ifc_query_cong_params_out_bits {
4360290650Shselasky	u8         status[0x8];
4361290650Shselasky	u8         reserved_0[0x18];
4362290650Shselasky
4363290650Shselasky	u8         syndrome[0x20];
4364290650Shselasky
4365290650Shselasky	u8         reserved_1[0x40];
4366290650Shselasky
4367290650Shselasky	union mlx5_ifc_cong_control_roce_ecn_auto_bits congestion_parameters;
4368290650Shselasky};
4369290650Shselasky
4370290650Shselaskystruct mlx5_ifc_query_cong_params_in_bits {
4371290650Shselasky	u8         opcode[0x10];
4372290650Shselasky	u8         reserved_0[0x10];
4373290650Shselasky
4374290650Shselasky	u8         reserved_1[0x10];
4375290650Shselasky	u8         op_mod[0x10];
4376290650Shselasky
4377290650Shselasky	u8         reserved_2[0x1c];
4378290650Shselasky	u8         cong_protocol[0x4];
4379290650Shselasky
4380290650Shselasky	u8         reserved_3[0x20];
4381290650Shselasky};
4382290650Shselasky
4383290650Shselaskystruct mlx5_ifc_query_burst_size_out_bits {
4384290650Shselasky	u8         status[0x8];
4385290650Shselasky	u8         reserved_0[0x18];
4386290650Shselasky
4387290650Shselasky	u8         syndrome[0x20];
4388290650Shselasky
4389290650Shselasky	u8         reserved_1[0x20];
4390290650Shselasky
4391290650Shselasky	u8         reserved_2[0x9];
4392290650Shselasky	u8         device_burst_size[0x17];
4393290650Shselasky};
4394290650Shselasky
4395290650Shselaskystruct mlx5_ifc_query_burst_size_in_bits {
4396290650Shselasky	u8         opcode[0x10];
4397290650Shselasky	u8         reserved_0[0x10];
4398290650Shselasky
4399290650Shselasky	u8         reserved_1[0x10];
4400290650Shselasky	u8         op_mod[0x10];
4401290650Shselasky
4402290650Shselasky	u8         reserved_2[0x40];
4403290650Shselasky};
4404290650Shselasky
4405290650Shselaskystruct mlx5_ifc_query_adapter_out_bits {
4406290650Shselasky	u8         status[0x8];
4407290650Shselasky	u8         reserved_0[0x18];
4408290650Shselasky
4409290650Shselasky	u8         syndrome[0x20];
4410290650Shselasky
4411290650Shselasky	u8         reserved_1[0x40];
4412290650Shselasky
4413290650Shselasky	struct mlx5_ifc_query_adapter_param_block_bits query_adapter_struct;
4414290650Shselasky};
4415290650Shselasky
4416290650Shselaskystruct mlx5_ifc_query_adapter_in_bits {
4417290650Shselasky	u8         opcode[0x10];
4418290650Shselasky	u8         reserved_0[0x10];
4419290650Shselasky
4420290650Shselasky	u8         reserved_1[0x10];
4421290650Shselasky	u8         op_mod[0x10];
4422290650Shselasky
4423290650Shselasky	u8         reserved_2[0x40];
4424290650Shselasky};
4425290650Shselasky
4426290650Shselaskystruct mlx5_ifc_qp_2rst_out_bits {
4427290650Shselasky	u8         status[0x8];
4428290650Shselasky	u8         reserved_0[0x18];
4429290650Shselasky
4430290650Shselasky	u8         syndrome[0x20];
4431290650Shselasky
4432290650Shselasky	u8         reserved_1[0x40];
4433290650Shselasky};
4434290650Shselasky
4435290650Shselaskystruct mlx5_ifc_qp_2rst_in_bits {
4436290650Shselasky	u8         opcode[0x10];
4437290650Shselasky	u8         reserved_0[0x10];
4438290650Shselasky
4439290650Shselasky	u8         reserved_1[0x10];
4440290650Shselasky	u8         op_mod[0x10];
4441290650Shselasky
4442290650Shselasky	u8         reserved_2[0x8];
4443290650Shselasky	u8         qpn[0x18];
4444290650Shselasky
4445290650Shselasky	u8         reserved_3[0x20];
4446290650Shselasky};
4447290650Shselasky
4448290650Shselaskystruct mlx5_ifc_qp_2err_out_bits {
4449290650Shselasky	u8         status[0x8];
4450290650Shselasky	u8         reserved_0[0x18];
4451290650Shselasky
4452290650Shselasky	u8         syndrome[0x20];
4453290650Shselasky
4454290650Shselasky	u8         reserved_1[0x40];
4455290650Shselasky};
4456290650Shselasky
4457290650Shselaskystruct mlx5_ifc_qp_2err_in_bits {
4458290650Shselasky	u8         opcode[0x10];
4459290650Shselasky	u8         reserved_0[0x10];
4460290650Shselasky
4461290650Shselasky	u8         reserved_1[0x10];
4462290650Shselasky	u8         op_mod[0x10];
4463290650Shselasky
4464290650Shselasky	u8         reserved_2[0x8];
4465290650Shselasky	u8         qpn[0x18];
4466290650Shselasky
4467290650Shselasky	u8         reserved_3[0x20];
4468290650Shselasky};
4469290650Shselasky
4470290650Shselaskystruct mlx5_ifc_page_fault_resume_out_bits {
4471290650Shselasky	u8         status[0x8];
4472290650Shselasky	u8         reserved_0[0x18];
4473290650Shselasky
4474290650Shselasky	u8         syndrome[0x20];
4475290650Shselasky
4476290650Shselasky	u8         reserved_1[0x40];
4477290650Shselasky};
4478290650Shselasky
4479290650Shselaskystruct mlx5_ifc_page_fault_resume_in_bits {
4480290650Shselasky	u8         opcode[0x10];
4481290650Shselasky	u8         reserved_0[0x10];
4482290650Shselasky
4483290650Shselasky	u8         reserved_1[0x10];
4484290650Shselasky	u8         op_mod[0x10];
4485290650Shselasky
4486290650Shselasky	u8         error[0x1];
4487290650Shselasky	u8         reserved_2[0x4];
4488290650Shselasky	u8         rdma[0x1];
4489290650Shselasky	u8         read_write[0x1];
4490290650Shselasky	u8         req_res[0x1];
4491290650Shselasky	u8         qpn[0x18];
4492290650Shselasky
4493290650Shselasky	u8         reserved_3[0x20];
4494290650Shselasky};
4495290650Shselasky
4496290650Shselaskystruct mlx5_ifc_nop_out_bits {
4497290650Shselasky	u8         status[0x8];
4498290650Shselasky	u8         reserved_0[0x18];
4499290650Shselasky
4500290650Shselasky	u8         syndrome[0x20];
4501290650Shselasky
4502290650Shselasky	u8         reserved_1[0x40];
4503290650Shselasky};
4504290650Shselasky
4505290650Shselaskystruct mlx5_ifc_nop_in_bits {
4506290650Shselasky	u8         opcode[0x10];
4507290650Shselasky	u8         reserved_0[0x10];
4508290650Shselasky
4509290650Shselasky	u8         reserved_1[0x10];
4510290650Shselasky	u8         op_mod[0x10];
4511290650Shselasky
4512290650Shselasky	u8         reserved_2[0x40];
4513290650Shselasky};
4514290650Shselasky
4515290650Shselaskystruct mlx5_ifc_modify_vport_state_out_bits {
4516290650Shselasky	u8         status[0x8];
4517290650Shselasky	u8         reserved_0[0x18];
4518290650Shselasky
4519290650Shselasky	u8         syndrome[0x20];
4520290650Shselasky
4521290650Shselasky	u8         reserved_1[0x40];
4522290650Shselasky};
4523290650Shselasky
4524290650Shselaskyenum {
4525290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_OP_MOD_NIC_VPORT  = 0x0,
4526290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_OP_MOD_ESW_VPORT  = 0x1,
4527290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_OP_MOD_UPLINK     = 0x2,
4528290650Shselasky};
4529290650Shselasky
4530290650Shselaskyenum {
4531290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_ADMIN_STATE_DOWN    = 0x0,
4532290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_ADMIN_STATE_UP      = 0x1,
4533290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_ADMIN_STATE_FOLLOW  = 0x2,
4534290650Shselasky};
4535290650Shselasky
4536290650Shselaskystruct mlx5_ifc_modify_vport_state_in_bits {
4537290650Shselasky	u8         opcode[0x10];
4538290650Shselasky	u8         reserved_0[0x10];
4539290650Shselasky
4540290650Shselasky	u8         reserved_1[0x10];
4541290650Shselasky	u8         op_mod[0x10];
4542290650Shselasky
4543290650Shselasky	u8         other_vport[0x1];
4544290650Shselasky	u8         reserved_2[0xf];
4545290650Shselasky	u8         vport_number[0x10];
4546290650Shselasky
4547290650Shselasky	u8         reserved_3[0x18];
4548290650Shselasky	u8         admin_state[0x4];
4549290650Shselasky	u8         reserved_4[0x4];
4550290650Shselasky};
4551290650Shselasky
4552290650Shselaskystruct mlx5_ifc_modify_tis_out_bits {
4553290650Shselasky	u8         status[0x8];
4554290650Shselasky	u8         reserved_0[0x18];
4555290650Shselasky
4556290650Shselasky	u8         syndrome[0x20];
4557290650Shselasky
4558290650Shselasky	u8         reserved_1[0x40];
4559290650Shselasky};
4560290650Shselasky
4561290650Shselaskystruct mlx5_ifc_modify_tis_in_bits {
4562290650Shselasky	u8         opcode[0x10];
4563290650Shselasky	u8         reserved_0[0x10];
4564290650Shselasky
4565290650Shselasky	u8         reserved_1[0x10];
4566290650Shselasky	u8         op_mod[0x10];
4567290650Shselasky
4568290650Shselasky	u8         reserved_2[0x8];
4569290650Shselasky	u8         tisn[0x18];
4570290650Shselasky
4571290650Shselasky	u8         reserved_3[0x20];
4572290650Shselasky
4573290650Shselasky	u8         modify_bitmask[0x40];
4574290650Shselasky
4575290650Shselasky	u8         reserved_4[0x40];
4576290650Shselasky
4577290650Shselasky	struct mlx5_ifc_tisc_bits ctx;
4578290650Shselasky};
4579290650Shselasky
4580290650Shselaskystruct mlx5_ifc_modify_tir_out_bits {
4581290650Shselasky	u8         status[0x8];
4582290650Shselasky	u8         reserved_0[0x18];
4583290650Shselasky
4584290650Shselasky	u8         syndrome[0x20];
4585290650Shselasky
4586290650Shselasky	u8         reserved_1[0x40];
4587290650Shselasky};
4588290650Shselasky
4589290650Shselaskystruct mlx5_ifc_modify_tir_in_bits {
4590290650Shselasky	u8         opcode[0x10];
4591290650Shselasky	u8         reserved_0[0x10];
4592290650Shselasky
4593290650Shselasky	u8         reserved_1[0x10];
4594290650Shselasky	u8         op_mod[0x10];
4595290650Shselasky
4596290650Shselasky	u8         reserved_2[0x8];
4597290650Shselasky	u8         tirn[0x18];
4598290650Shselasky
4599290650Shselasky	u8         reserved_3[0x20];
4600290650Shselasky
4601290650Shselasky	u8         modify_bitmask[0x40];
4602290650Shselasky
4603290650Shselasky	u8         reserved_4[0x40];
4604290650Shselasky
4605290650Shselasky	struct mlx5_ifc_tirc_bits tir_context;
4606290650Shselasky};
4607290650Shselasky
4608290650Shselaskystruct mlx5_ifc_modify_sq_out_bits {
4609290650Shselasky	u8         status[0x8];
4610290650Shselasky	u8         reserved_0[0x18];
4611290650Shselasky
4612290650Shselasky	u8         syndrome[0x20];
4613290650Shselasky
4614290650Shselasky	u8         reserved_1[0x40];
4615290650Shselasky};
4616290650Shselasky
4617290650Shselaskystruct mlx5_ifc_modify_sq_in_bits {
4618290650Shselasky	u8         opcode[0x10];
4619290650Shselasky	u8         reserved_0[0x10];
4620290650Shselasky
4621290650Shselasky	u8         reserved_1[0x10];
4622290650Shselasky	u8         op_mod[0x10];
4623290650Shselasky
4624290650Shselasky	u8         sq_state[0x4];
4625290650Shselasky	u8         reserved_2[0x4];
4626290650Shselasky	u8         sqn[0x18];
4627290650Shselasky
4628290650Shselasky	u8         reserved_3[0x20];
4629290650Shselasky
4630290650Shselasky	u8         modify_bitmask[0x40];
4631290650Shselasky
4632290650Shselasky	u8         reserved_4[0x40];
4633290650Shselasky
4634290650Shselasky	struct mlx5_ifc_sqc_bits ctx;
4635290650Shselasky};
4636290650Shselasky
4637290650Shselaskystruct mlx5_ifc_modify_rqt_out_bits {
4638290650Shselasky	u8         status[0x8];
4639290650Shselasky	u8         reserved_0[0x18];
4640290650Shselasky
4641290650Shselasky	u8         syndrome[0x20];
4642290650Shselasky
4643290650Shselasky	u8         reserved_1[0x40];
4644290650Shselasky};
4645290650Shselasky
4646290650Shselaskystruct mlx5_ifc_modify_rqt_in_bits {
4647290650Shselasky	u8         opcode[0x10];
4648290650Shselasky	u8         reserved_0[0x10];
4649290650Shselasky
4650290650Shselasky	u8         reserved_1[0x10];
4651290650Shselasky	u8         op_mod[0x10];
4652290650Shselasky
4653290650Shselasky	u8         reserved_2[0x8];
4654290650Shselasky	u8         rqtn[0x18];
4655290650Shselasky
4656290650Shselasky	u8         reserved_3[0x20];
4657290650Shselasky
4658290650Shselasky	u8         modify_bitmask[0x40];
4659290650Shselasky
4660290650Shselasky	u8         reserved_4[0x40];
4661290650Shselasky
4662290650Shselasky	struct mlx5_ifc_rqtc_bits ctx;
4663290650Shselasky};
4664290650Shselasky
4665290650Shselaskystruct mlx5_ifc_modify_rq_out_bits {
4666290650Shselasky	u8         status[0x8];
4667290650Shselasky	u8         reserved_0[0x18];
4668290650Shselasky
4669290650Shselasky	u8         syndrome[0x20];
4670290650Shselasky
4671290650Shselasky	u8         reserved_1[0x40];
4672290650Shselasky};
4673290650Shselasky
4674290650Shselaskystruct mlx5_ifc_modify_rq_in_bits {
4675290650Shselasky	u8         opcode[0x10];
4676290650Shselasky	u8         reserved_0[0x10];
4677290650Shselasky
4678290650Shselasky	u8         reserved_1[0x10];
4679290650Shselasky	u8         op_mod[0x10];
4680290650Shselasky
4681290650Shselasky	u8         rq_state[0x4];
4682290650Shselasky	u8         reserved_2[0x4];
4683290650Shselasky	u8         rqn[0x18];
4684290650Shselasky
4685290650Shselasky	u8         reserved_3[0x20];
4686290650Shselasky
4687290650Shselasky	u8         modify_bitmask[0x40];
4688290650Shselasky
4689290650Shselasky	u8         reserved_4[0x40];
4690290650Shselasky
4691290650Shselasky	struct mlx5_ifc_rqc_bits ctx;
4692290650Shselasky};
4693290650Shselasky
4694290650Shselaskystruct mlx5_ifc_modify_rmp_out_bits {
4695290650Shselasky	u8         status[0x8];
4696290650Shselasky	u8         reserved_0[0x18];
4697290650Shselasky
4698290650Shselasky	u8         syndrome[0x20];
4699290650Shselasky
4700290650Shselasky	u8         reserved_1[0x40];
4701290650Shselasky};
4702290650Shselasky
4703290650Shselaskystruct mlx5_ifc_rmp_bitmask_bits {
4704290650Shselasky	u8	   reserved[0x20];
4705290650Shselasky
4706290650Shselasky	u8         reserved1[0x1f];
4707290650Shselasky	u8         lwm[0x1];
4708290650Shselasky};
4709290650Shselasky
4710290650Shselaskystruct mlx5_ifc_modify_rmp_in_bits {
4711290650Shselasky	u8         opcode[0x10];
4712290650Shselasky	u8         reserved_0[0x10];
4713290650Shselasky
4714290650Shselasky	u8         reserved_1[0x10];
4715290650Shselasky	u8         op_mod[0x10];
4716290650Shselasky
4717290650Shselasky	u8         rmp_state[0x4];
4718290650Shselasky	u8         reserved_2[0x4];
4719290650Shselasky	u8         rmpn[0x18];
4720290650Shselasky
4721290650Shselasky	u8         reserved_3[0x20];
4722290650Shselasky
4723290650Shselasky	struct mlx5_ifc_rmp_bitmask_bits bitmask;
4724290650Shselasky
4725290650Shselasky	u8         reserved_4[0x40];
4726290650Shselasky
4727290650Shselasky	struct mlx5_ifc_rmpc_bits ctx;
4728290650Shselasky};
4729290650Shselasky
4730290650Shselaskystruct mlx5_ifc_modify_nic_vport_context_out_bits {
4731290650Shselasky	u8         status[0x8];
4732290650Shselasky	u8         reserved_0[0x18];
4733290650Shselasky
4734290650Shselasky	u8         syndrome[0x20];
4735290650Shselasky
4736290650Shselasky	u8         reserved_1[0x40];
4737290650Shselasky};
4738290650Shselasky
4739290650Shselaskystruct mlx5_ifc_modify_nic_vport_field_select_bits {
4740290650Shselasky	u8         reserved_0[0x18];
4741290650Shselasky	u8         min_wqe_inline_mode[0x1];
4742290650Shselasky	u8         mtu[0x1];
4743290650Shselasky	u8         change_event[0x1];
4744290650Shselasky	u8         promisc[0x1];
4745290650Shselasky	u8         permanent_address[0x1];
4746290650Shselasky	u8         addresses_list[0x1];
4747290650Shselasky	u8         roce_en[0x1];
4748290650Shselasky	u8         reserved_1[0x1];
4749290650Shselasky};
4750290650Shselasky
4751290650Shselaskystruct mlx5_ifc_modify_nic_vport_context_in_bits {
4752290650Shselasky	u8         opcode[0x10];
4753290650Shselasky	u8         reserved_0[0x10];
4754290650Shselasky
4755290650Shselasky	u8         reserved_1[0x10];
4756290650Shselasky	u8         op_mod[0x10];
4757290650Shselasky
4758290650Shselasky	u8         other_vport[0x1];
4759290650Shselasky	u8         reserved_2[0xf];
4760290650Shselasky	u8         vport_number[0x10];
4761290650Shselasky
4762290650Shselasky	struct mlx5_ifc_modify_nic_vport_field_select_bits field_select;
4763290650Shselasky
4764290650Shselasky	u8         reserved_3[0x780];
4765290650Shselasky
4766290650Shselasky	struct mlx5_ifc_nic_vport_context_bits nic_vport_context;
4767290650Shselasky};
4768290650Shselasky
4769290650Shselaskystruct mlx5_ifc_modify_hca_vport_context_out_bits {
4770290650Shselasky	u8         status[0x8];
4771290650Shselasky	u8         reserved_0[0x18];
4772290650Shselasky
4773290650Shselasky	u8         syndrome[0x20];
4774290650Shselasky
4775290650Shselasky	u8         reserved_1[0x40];
4776290650Shselasky};
4777290650Shselasky
4778290650Shselaskystruct mlx5_ifc_modify_hca_vport_context_in_bits {
4779290650Shselasky	u8         opcode[0x10];
4780290650Shselasky	u8         reserved_0[0x10];
4781290650Shselasky
4782290650Shselasky	u8         reserved_1[0x10];
4783290650Shselasky	u8         op_mod[0x10];
4784290650Shselasky
4785290650Shselasky	u8         other_vport[0x1];
4786290650Shselasky	u8         reserved_2[0xb];
4787290650Shselasky	u8         port_num[0x4];
4788290650Shselasky	u8         vport_number[0x10];
4789290650Shselasky
4790290650Shselasky	u8         reserved_3[0x20];
4791290650Shselasky
4792290650Shselasky	struct mlx5_ifc_hca_vport_context_bits hca_vport_context;
4793290650Shselasky};
4794290650Shselasky
4795290650Shselaskystruct mlx5_ifc_modify_esw_vport_context_out_bits {
4796290650Shselasky	u8         status[0x8];
4797290650Shselasky	u8         reserved_0[0x18];
4798290650Shselasky
4799290650Shselasky	u8         syndrome[0x20];
4800290650Shselasky
4801290650Shselasky	u8         reserved_1[0x40];
4802290650Shselasky};
4803290650Shselasky
4804290650Shselaskystruct mlx5_ifc_modify_esw_vport_context_in_bits {
4805290650Shselasky	u8         opcode[0x10];
4806290650Shselasky	u8         reserved_0[0x10];
4807290650Shselasky
4808290650Shselasky	u8         reserved_1[0x10];
4809290650Shselasky	u8         op_mod[0x10];
4810290650Shselasky
4811290650Shselasky	u8         other_vport[0x1];
4812290650Shselasky	u8         reserved_2[0xf];
4813290650Shselasky	u8         vport_number[0x10];
4814290650Shselasky
4815290650Shselasky	u8         field_select[0x20];
4816290650Shselasky
4817290650Shselasky	struct mlx5_ifc_esw_vport_context_bits esw_vport_context;
4818290650Shselasky};
4819290650Shselasky
4820290650Shselaskystruct mlx5_ifc_modify_cq_out_bits {
4821290650Shselasky	u8         status[0x8];
4822290650Shselasky	u8         reserved_0[0x18];
4823290650Shselasky
4824290650Shselasky	u8         syndrome[0x20];
4825290650Shselasky
4826290650Shselasky	u8         reserved_1[0x40];
4827290650Shselasky};
4828290650Shselasky
4829290650Shselaskyenum {
4830290650Shselasky	MLX5_MODIFY_CQ_IN_OP_MOD_MODIFY_CQ  = 0x0,
4831290650Shselasky	MLX5_MODIFY_CQ_IN_OP_MOD_RESIZE_CQ  = 0x1,
4832290650Shselasky};
4833290650Shselasky
4834290650Shselaskystruct mlx5_ifc_modify_cq_in_bits {
4835290650Shselasky	u8         opcode[0x10];
4836290650Shselasky	u8         reserved_0[0x10];
4837290650Shselasky
4838290650Shselasky	u8         reserved_1[0x10];
4839290650Shselasky	u8         op_mod[0x10];
4840290650Shselasky
4841290650Shselasky	u8         reserved_2[0x8];
4842290650Shselasky	u8         cqn[0x18];
4843290650Shselasky
4844290650Shselasky	union mlx5_ifc_modify_field_select_resize_field_select_auto_bits modify_field_select_resize_field_select;
4845290650Shselasky
4846290650Shselasky	struct mlx5_ifc_cqc_bits cq_context;
4847290650Shselasky
4848290650Shselasky	u8         reserved_3[0x600];
4849290650Shselasky
4850290650Shselasky	u8         pas[0][0x40];
4851290650Shselasky};
4852290650Shselasky
4853290650Shselaskystruct mlx5_ifc_modify_cong_status_out_bits {
4854290650Shselasky	u8         status[0x8];
4855290650Shselasky	u8         reserved_0[0x18];
4856290650Shselasky
4857290650Shselasky	u8         syndrome[0x20];
4858290650Shselasky
4859290650Shselasky	u8         reserved_1[0x40];
4860290650Shselasky};
4861290650Shselasky
4862290650Shselaskystruct mlx5_ifc_modify_cong_status_in_bits {
4863290650Shselasky	u8         opcode[0x10];
4864290650Shselasky	u8         reserved_0[0x10];
4865290650Shselasky
4866290650Shselasky	u8         reserved_1[0x10];
4867290650Shselasky	u8         op_mod[0x10];
4868290650Shselasky
4869290650Shselasky	u8         reserved_2[0x18];
4870290650Shselasky	u8         priority[0x4];
4871290650Shselasky	u8         cong_protocol[0x4];
4872290650Shselasky
4873290650Shselasky	u8         enable[0x1];
4874290650Shselasky	u8         tag_enable[0x1];
4875290650Shselasky	u8         reserved_3[0x1e];
4876290650Shselasky};
4877290650Shselasky
4878290650Shselaskystruct mlx5_ifc_modify_cong_params_out_bits {
4879290650Shselasky	u8         status[0x8];
4880290650Shselasky	u8         reserved_0[0x18];
4881290650Shselasky
4882290650Shselasky	u8         syndrome[0x20];
4883290650Shselasky
4884290650Shselasky	u8         reserved_1[0x40];
4885290650Shselasky};
4886290650Shselasky
4887290650Shselaskystruct mlx5_ifc_modify_cong_params_in_bits {
4888290650Shselasky	u8         opcode[0x10];
4889290650Shselasky	u8         reserved_0[0x10];
4890290650Shselasky
4891290650Shselasky	u8         reserved_1[0x10];
4892290650Shselasky	u8         op_mod[0x10];
4893290650Shselasky
4894290650Shselasky	u8         reserved_2[0x1c];
4895290650Shselasky	u8         cong_protocol[0x4];
4896290650Shselasky
4897290650Shselasky	union mlx5_ifc_field_select_802_1_r_roce_auto_bits field_select;
4898290650Shselasky
4899290650Shselasky	u8         reserved_3[0x80];
4900290650Shselasky
4901290650Shselasky	union mlx5_ifc_cong_control_roce_ecn_auto_bits congestion_parameters;
4902290650Shselasky};
4903290650Shselasky
4904290650Shselaskystruct mlx5_ifc_manage_pages_out_bits {
4905290650Shselasky	u8         status[0x8];
4906290650Shselasky	u8         reserved_0[0x18];
4907290650Shselasky
4908290650Shselasky	u8         syndrome[0x20];
4909290650Shselasky
4910290650Shselasky	u8         output_num_entries[0x20];
4911290650Shselasky
4912290650Shselasky	u8         reserved_1[0x20];
4913290650Shselasky
4914290650Shselasky	u8         pas[0][0x40];
4915290650Shselasky};
4916290650Shselasky
4917290650Shselaskyenum {
4918290650Shselasky	MLX5_PAGES_CANT_GIVE                            = 0x0,
4919290650Shselasky	MLX5_PAGES_GIVE                                 = 0x1,
4920290650Shselasky	MLX5_PAGES_TAKE                                 = 0x2,
4921290650Shselasky};
4922290650Shselasky
4923290650Shselaskystruct mlx5_ifc_manage_pages_in_bits {
4924290650Shselasky	u8         opcode[0x10];
4925290650Shselasky	u8         reserved_0[0x10];
4926290650Shselasky
4927290650Shselasky	u8         reserved_1[0x10];
4928290650Shselasky	u8         op_mod[0x10];
4929290650Shselasky
4930290650Shselasky	u8         reserved_2[0x10];
4931290650Shselasky	u8         function_id[0x10];
4932290650Shselasky
4933290650Shselasky	u8         input_num_entries[0x20];
4934290650Shselasky
4935290650Shselasky	u8         pas[0][0x40];
4936290650Shselasky};
4937290650Shselasky
4938290650Shselaskystruct mlx5_ifc_mad_ifc_out_bits {
4939290650Shselasky	u8         status[0x8];
4940290650Shselasky	u8         reserved_0[0x18];
4941290650Shselasky
4942290650Shselasky	u8         syndrome[0x20];
4943290650Shselasky
4944290650Shselasky	u8         reserved_1[0x40];
4945290650Shselasky
4946290650Shselasky	u8         response_mad_packet[256][0x8];
4947290650Shselasky};
4948290650Shselasky
4949290650Shselaskystruct mlx5_ifc_mad_ifc_in_bits {
4950290650Shselasky	u8         opcode[0x10];
4951290650Shselasky	u8         reserved_0[0x10];
4952290650Shselasky
4953290650Shselasky	u8         reserved_1[0x10];
4954290650Shselasky	u8         op_mod[0x10];
4955290650Shselasky
4956290650Shselasky	u8         remote_lid[0x10];
4957290650Shselasky	u8         reserved_2[0x8];
4958290650Shselasky	u8         port[0x8];
4959290650Shselasky
4960290650Shselasky	u8         reserved_3[0x20];
4961290650Shselasky
4962290650Shselasky	u8         mad[256][0x8];
4963290650Shselasky};
4964290650Shselasky
4965290650Shselaskystruct mlx5_ifc_init_hca_out_bits {
4966290650Shselasky	u8         status[0x8];
4967290650Shselasky	u8         reserved_0[0x18];
4968290650Shselasky
4969290650Shselasky	u8         syndrome[0x20];
4970290650Shselasky
4971290650Shselasky	u8         reserved_1[0x40];
4972290650Shselasky};
4973290650Shselasky
4974290650Shselaskyenum {
4975290650Shselasky	MLX5_INIT_HCA_IN_OP_MOD_INIT      = 0x0,
4976290650Shselasky	MLX5_INIT_HCA_IN_OP_MOD_PRE_INIT  = 0x1,
4977290650Shselasky};
4978290650Shselasky
4979290650Shselaskystruct mlx5_ifc_init_hca_in_bits {
4980290650Shselasky	u8         opcode[0x10];
4981290650Shselasky	u8         reserved_0[0x10];
4982290650Shselasky
4983290650Shselasky	u8         reserved_1[0x10];
4984290650Shselasky	u8         op_mod[0x10];
4985290650Shselasky
4986290650Shselasky	u8         reserved_2[0x40];
4987290650Shselasky};
4988290650Shselasky
4989290650Shselaskystruct mlx5_ifc_init2rtr_qp_out_bits {
4990290650Shselasky	u8         status[0x8];
4991290650Shselasky	u8         reserved_0[0x18];
4992290650Shselasky
4993290650Shselasky	u8         syndrome[0x20];
4994290650Shselasky
4995290650Shselasky	u8         reserved_1[0x40];
4996290650Shselasky};
4997290650Shselasky
4998290650Shselaskystruct mlx5_ifc_init2rtr_qp_in_bits {
4999290650Shselasky	u8         opcode[0x10];
5000290650Shselasky	u8         reserved_0[0x10];
5001290650Shselasky
5002290650Shselasky	u8         reserved_1[0x10];
5003290650Shselasky	u8         op_mod[0x10];
5004290650Shselasky
5005290650Shselasky	u8         reserved_2[0x8];
5006290650Shselasky	u8         qpn[0x18];
5007290650Shselasky
5008290650Shselasky	u8         reserved_3[0x20];
5009290650Shselasky
5010290650Shselasky	u8         opt_param_mask[0x20];
5011290650Shselasky
5012290650Shselasky	u8         reserved_4[0x20];
5013290650Shselasky
5014290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
5015290650Shselasky
5016290650Shselasky	u8         reserved_5[0x80];
5017290650Shselasky};
5018290650Shselasky
5019290650Shselaskystruct mlx5_ifc_init2init_qp_out_bits {
5020290650Shselasky	u8         status[0x8];
5021290650Shselasky	u8         reserved_0[0x18];
5022290650Shselasky
5023290650Shselasky	u8         syndrome[0x20];
5024290650Shselasky
5025290650Shselasky	u8         reserved_1[0x40];
5026290650Shselasky};
5027290650Shselasky
5028290650Shselaskystruct mlx5_ifc_init2init_qp_in_bits {
5029290650Shselasky	u8         opcode[0x10];
5030290650Shselasky	u8         reserved_0[0x10];
5031290650Shselasky
5032290650Shselasky	u8         reserved_1[0x10];
5033290650Shselasky	u8         op_mod[0x10];
5034290650Shselasky
5035290650Shselasky	u8         reserved_2[0x8];
5036290650Shselasky	u8         qpn[0x18];
5037290650Shselasky
5038290650Shselasky	u8         reserved_3[0x20];
5039290650Shselasky
5040290650Shselasky	u8         opt_param_mask[0x20];
5041290650Shselasky
5042290650Shselasky	u8         reserved_4[0x20];
5043290650Shselasky
5044290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
5045290650Shselasky
5046290650Shselasky	u8         reserved_5[0x80];
5047290650Shselasky};
5048290650Shselasky
5049290650Shselaskystruct mlx5_ifc_get_dropped_packet_log_out_bits {
5050290650Shselasky	u8         status[0x8];
5051290650Shselasky	u8         reserved_0[0x18];
5052290650Shselasky
5053290650Shselasky	u8         syndrome[0x20];
5054290650Shselasky
5055290650Shselasky	u8         reserved_1[0x40];
5056290650Shselasky
5057290650Shselasky	u8         packet_headers_log[128][0x8];
5058290650Shselasky
5059290650Shselasky	u8         packet_syndrome[64][0x8];
5060290650Shselasky};
5061290650Shselasky
5062290650Shselaskystruct mlx5_ifc_get_dropped_packet_log_in_bits {
5063290650Shselasky	u8         opcode[0x10];
5064290650Shselasky	u8         reserved_0[0x10];
5065290650Shselasky
5066290650Shselasky	u8         reserved_1[0x10];
5067290650Shselasky	u8         op_mod[0x10];
5068290650Shselasky
5069290650Shselasky	u8         reserved_2[0x40];
5070290650Shselasky};
5071290650Shselasky
5072290650Shselaskystruct mlx5_ifc_gen_eqe_in_bits {
5073290650Shselasky	u8         opcode[0x10];
5074290650Shselasky	u8         reserved_0[0x10];
5075290650Shselasky
5076290650Shselasky	u8         reserved_1[0x10];
5077290650Shselasky	u8         op_mod[0x10];
5078290650Shselasky
5079290650Shselasky	u8         reserved_2[0x18];
5080290650Shselasky	u8         eq_number[0x8];
5081290650Shselasky
5082290650Shselasky	u8         reserved_3[0x20];
5083290650Shselasky
5084290650Shselasky	u8         eqe[64][0x8];
5085290650Shselasky};
5086290650Shselasky
5087290650Shselaskystruct mlx5_ifc_gen_eq_out_bits {
5088290650Shselasky	u8         status[0x8];
5089290650Shselasky	u8         reserved_0[0x18];
5090290650Shselasky
5091290650Shselasky	u8         syndrome[0x20];
5092290650Shselasky
5093290650Shselasky	u8         reserved_1[0x40];
5094290650Shselasky};
5095290650Shselasky
5096290650Shselaskystruct mlx5_ifc_enable_hca_out_bits {
5097290650Shselasky	u8         status[0x8];
5098290650Shselasky	u8         reserved_0[0x18];
5099290650Shselasky
5100290650Shselasky	u8         syndrome[0x20];
5101290650Shselasky
5102290650Shselasky	u8         reserved_1[0x20];
5103290650Shselasky};
5104290650Shselasky
5105290650Shselaskystruct mlx5_ifc_enable_hca_in_bits {
5106290650Shselasky	u8         opcode[0x10];
5107290650Shselasky	u8         reserved_0[0x10];
5108290650Shselasky
5109290650Shselasky	u8         reserved_1[0x10];
5110290650Shselasky	u8         op_mod[0x10];
5111290650Shselasky
5112290650Shselasky	u8         reserved_2[0x10];
5113290650Shselasky	u8         function_id[0x10];
5114290650Shselasky
5115290650Shselasky	u8         reserved_3[0x20];
5116290650Shselasky};
5117290650Shselasky
5118290650Shselaskystruct mlx5_ifc_drain_dct_out_bits {
5119290650Shselasky	u8         status[0x8];
5120290650Shselasky	u8         reserved_0[0x18];
5121290650Shselasky
5122290650Shselasky	u8         syndrome[0x20];
5123290650Shselasky
5124290650Shselasky	u8         reserved_1[0x40];
5125290650Shselasky};
5126290650Shselasky
5127290650Shselaskystruct mlx5_ifc_drain_dct_in_bits {
5128290650Shselasky	u8         opcode[0x10];
5129290650Shselasky	u8         reserved_0[0x10];
5130290650Shselasky
5131290650Shselasky	u8         reserved_1[0x10];
5132290650Shselasky	u8         op_mod[0x10];
5133290650Shselasky
5134290650Shselasky	u8         reserved_2[0x8];
5135290650Shselasky	u8         dctn[0x18];
5136290650Shselasky
5137290650Shselasky	u8         reserved_3[0x20];
5138290650Shselasky};
5139290650Shselasky
5140290650Shselaskystruct mlx5_ifc_disable_hca_out_bits {
5141290650Shselasky	u8         status[0x8];
5142290650Shselasky	u8         reserved_0[0x18];
5143290650Shselasky
5144290650Shselasky	u8         syndrome[0x20];
5145290650Shselasky
5146290650Shselasky	u8         reserved_1[0x20];
5147290650Shselasky};
5148290650Shselasky
5149290650Shselaskystruct mlx5_ifc_disable_hca_in_bits {
5150290650Shselasky	u8         opcode[0x10];
5151290650Shselasky	u8         reserved_0[0x10];
5152290650Shselasky
5153290650Shselasky	u8         reserved_1[0x10];
5154290650Shselasky	u8         op_mod[0x10];
5155290650Shselasky
5156290650Shselasky	u8         reserved_2[0x10];
5157290650Shselasky	u8         function_id[0x10];
5158290650Shselasky
5159290650Shselasky	u8         reserved_3[0x20];
5160290650Shselasky};
5161290650Shselasky
5162290650Shselaskystruct mlx5_ifc_detach_from_mcg_out_bits {
5163290650Shselasky	u8         status[0x8];
5164290650Shselasky	u8         reserved_0[0x18];
5165290650Shselasky
5166290650Shselasky	u8         syndrome[0x20];
5167290650Shselasky
5168290650Shselasky	u8         reserved_1[0x40];
5169290650Shselasky};
5170290650Shselasky
5171290650Shselaskystruct mlx5_ifc_detach_from_mcg_in_bits {
5172290650Shselasky	u8         opcode[0x10];
5173290650Shselasky	u8         reserved_0[0x10];
5174290650Shselasky
5175290650Shselasky	u8         reserved_1[0x10];
5176290650Shselasky	u8         op_mod[0x10];
5177290650Shselasky
5178290650Shselasky	u8         reserved_2[0x8];
5179290650Shselasky	u8         qpn[0x18];
5180290650Shselasky
5181290650Shselasky	u8         reserved_3[0x20];
5182290650Shselasky
5183290650Shselasky	u8         multicast_gid[16][0x8];
5184290650Shselasky};
5185290650Shselasky
5186290650Shselaskystruct mlx5_ifc_destroy_xrc_srq_out_bits {
5187290650Shselasky	u8         status[0x8];
5188290650Shselasky	u8         reserved_0[0x18];
5189290650Shselasky
5190290650Shselasky	u8         syndrome[0x20];
5191290650Shselasky
5192290650Shselasky	u8         reserved_1[0x40];
5193290650Shselasky};
5194290650Shselasky
5195290650Shselaskystruct mlx5_ifc_destroy_xrc_srq_in_bits {
5196290650Shselasky	u8         opcode[0x10];
5197290650Shselasky	u8         reserved_0[0x10];
5198290650Shselasky
5199290650Shselasky	u8         reserved_1[0x10];
5200290650Shselasky	u8         op_mod[0x10];
5201290650Shselasky
5202290650Shselasky	u8         reserved_2[0x8];
5203290650Shselasky	u8         xrc_srqn[0x18];
5204290650Shselasky
5205290650Shselasky	u8         reserved_3[0x20];
5206290650Shselasky};
5207290650Shselasky
5208290650Shselaskystruct mlx5_ifc_destroy_tis_out_bits {
5209290650Shselasky	u8         status[0x8];
5210290650Shselasky	u8         reserved_0[0x18];
5211290650Shselasky
5212290650Shselasky	u8         syndrome[0x20];
5213290650Shselasky
5214290650Shselasky	u8         reserved_1[0x40];
5215290650Shselasky};
5216290650Shselasky
5217290650Shselaskystruct mlx5_ifc_destroy_tis_in_bits {
5218290650Shselasky	u8         opcode[0x10];
5219290650Shselasky	u8         reserved_0[0x10];
5220290650Shselasky
5221290650Shselasky	u8         reserved_1[0x10];
5222290650Shselasky	u8         op_mod[0x10];
5223290650Shselasky
5224290650Shselasky	u8         reserved_2[0x8];
5225290650Shselasky	u8         tisn[0x18];
5226290650Shselasky
5227290650Shselasky	u8         reserved_3[0x20];
5228290650Shselasky};
5229290650Shselasky
5230290650Shselaskystruct mlx5_ifc_destroy_tir_out_bits {
5231290650Shselasky	u8         status[0x8];
5232290650Shselasky	u8         reserved_0[0x18];
5233290650Shselasky
5234290650Shselasky	u8         syndrome[0x20];
5235290650Shselasky
5236290650Shselasky	u8         reserved_1[0x40];
5237290650Shselasky};
5238290650Shselasky
5239290650Shselaskystruct mlx5_ifc_destroy_tir_in_bits {
5240290650Shselasky	u8         opcode[0x10];
5241290650Shselasky	u8         reserved_0[0x10];
5242290650Shselasky
5243290650Shselasky	u8         reserved_1[0x10];
5244290650Shselasky	u8         op_mod[0x10];
5245290650Shselasky
5246290650Shselasky	u8         reserved_2[0x8];
5247290650Shselasky	u8         tirn[0x18];
5248290650Shselasky
5249290650Shselasky	u8         reserved_3[0x20];
5250290650Shselasky};
5251290650Shselasky
5252290650Shselaskystruct mlx5_ifc_destroy_srq_out_bits {
5253290650Shselasky	u8         status[0x8];
5254290650Shselasky	u8         reserved_0[0x18];
5255290650Shselasky
5256290650Shselasky	u8         syndrome[0x20];
5257290650Shselasky
5258290650Shselasky	u8         reserved_1[0x40];
5259290650Shselasky};
5260290650Shselasky
5261290650Shselaskystruct mlx5_ifc_destroy_srq_in_bits {
5262290650Shselasky	u8         opcode[0x10];
5263290650Shselasky	u8         reserved_0[0x10];
5264290650Shselasky
5265290650Shselasky	u8         reserved_1[0x10];
5266290650Shselasky	u8         op_mod[0x10];
5267290650Shselasky
5268290650Shselasky	u8         reserved_2[0x8];
5269290650Shselasky	u8         srqn[0x18];
5270290650Shselasky
5271290650Shselasky	u8         reserved_3[0x20];
5272290650Shselasky};
5273290650Shselasky
5274290650Shselaskystruct mlx5_ifc_destroy_sq_out_bits {
5275290650Shselasky	u8         status[0x8];
5276290650Shselasky	u8         reserved_0[0x18];
5277290650Shselasky
5278290650Shselasky	u8         syndrome[0x20];
5279290650Shselasky
5280290650Shselasky	u8         reserved_1[0x40];
5281290650Shselasky};
5282290650Shselasky
5283290650Shselaskystruct mlx5_ifc_destroy_sq_in_bits {
5284290650Shselasky	u8         opcode[0x10];
5285290650Shselasky	u8         reserved_0[0x10];
5286290650Shselasky
5287290650Shselasky	u8         reserved_1[0x10];
5288290650Shselasky	u8         op_mod[0x10];
5289290650Shselasky
5290290650Shselasky	u8         reserved_2[0x8];
5291290650Shselasky	u8         sqn[0x18];
5292290650Shselasky
5293290650Shselasky	u8         reserved_3[0x20];
5294290650Shselasky};
5295290650Shselasky
5296290650Shselaskystruct mlx5_ifc_destroy_rqt_out_bits {
5297290650Shselasky	u8         status[0x8];
5298290650Shselasky	u8         reserved_0[0x18];
5299290650Shselasky
5300290650Shselasky	u8         syndrome[0x20];
5301290650Shselasky
5302290650Shselasky	u8         reserved_1[0x40];
5303290650Shselasky};
5304290650Shselasky
5305290650Shselaskystruct mlx5_ifc_destroy_rqt_in_bits {
5306290650Shselasky	u8         opcode[0x10];
5307290650Shselasky	u8         reserved_0[0x10];
5308290650Shselasky
5309290650Shselasky	u8         reserved_1[0x10];
5310290650Shselasky	u8         op_mod[0x10];
5311290650Shselasky
5312290650Shselasky	u8         reserved_2[0x8];
5313290650Shselasky	u8         rqtn[0x18];
5314290650Shselasky
5315290650Shselasky	u8         reserved_3[0x20];
5316290650Shselasky};
5317290650Shselasky
5318290650Shselaskystruct mlx5_ifc_destroy_rq_out_bits {
5319290650Shselasky	u8         status[0x8];
5320290650Shselasky	u8         reserved_0[0x18];
5321290650Shselasky
5322290650Shselasky	u8         syndrome[0x20];
5323290650Shselasky
5324290650Shselasky	u8         reserved_1[0x40];
5325290650Shselasky};
5326290650Shselasky
5327290650Shselaskystruct mlx5_ifc_destroy_rq_in_bits {
5328290650Shselasky	u8         opcode[0x10];
5329290650Shselasky	u8         reserved_0[0x10];
5330290650Shselasky
5331290650Shselasky	u8         reserved_1[0x10];
5332290650Shselasky	u8         op_mod[0x10];
5333290650Shselasky
5334290650Shselasky	u8         reserved_2[0x8];
5335290650Shselasky	u8         rqn[0x18];
5336290650Shselasky
5337290650Shselasky	u8         reserved_3[0x20];
5338290650Shselasky};
5339290650Shselasky
5340290650Shselaskystruct mlx5_ifc_destroy_rmp_out_bits {
5341290650Shselasky	u8         status[0x8];
5342290650Shselasky	u8         reserved_0[0x18];
5343290650Shselasky
5344290650Shselasky	u8         syndrome[0x20];
5345290650Shselasky
5346290650Shselasky	u8         reserved_1[0x40];
5347290650Shselasky};
5348290650Shselasky
5349290650Shselaskystruct mlx5_ifc_destroy_rmp_in_bits {
5350290650Shselasky	u8         opcode[0x10];
5351290650Shselasky	u8         reserved_0[0x10];
5352290650Shselasky
5353290650Shselasky	u8         reserved_1[0x10];
5354290650Shselasky	u8         op_mod[0x10];
5355290650Shselasky
5356290650Shselasky	u8         reserved_2[0x8];
5357290650Shselasky	u8         rmpn[0x18];
5358290650Shselasky
5359290650Shselasky	u8         reserved_3[0x20];
5360290650Shselasky};
5361290650Shselasky
5362290650Shselaskystruct mlx5_ifc_destroy_qp_out_bits {
5363290650Shselasky	u8         status[0x8];
5364290650Shselasky	u8         reserved_0[0x18];
5365290650Shselasky
5366290650Shselasky	u8         syndrome[0x20];
5367290650Shselasky
5368290650Shselasky	u8         reserved_1[0x40];
5369290650Shselasky};
5370290650Shselasky
5371290650Shselaskystruct mlx5_ifc_destroy_qp_in_bits {
5372290650Shselasky	u8         opcode[0x10];
5373290650Shselasky	u8         reserved_0[0x10];
5374290650Shselasky
5375290650Shselasky	u8         reserved_1[0x10];
5376290650Shselasky	u8         op_mod[0x10];
5377290650Shselasky
5378290650Shselasky	u8         reserved_2[0x8];
5379290650Shselasky	u8         qpn[0x18];
5380290650Shselasky
5381290650Shselasky	u8         reserved_3[0x20];
5382290650Shselasky};
5383290650Shselasky
5384290650Shselaskystruct mlx5_ifc_destroy_psv_out_bits {
5385290650Shselasky	u8         status[0x8];
5386290650Shselasky	u8         reserved_0[0x18];
5387290650Shselasky
5388290650Shselasky	u8         syndrome[0x20];
5389290650Shselasky
5390290650Shselasky	u8         reserved_1[0x40];
5391290650Shselasky};
5392290650Shselasky
5393290650Shselaskystruct mlx5_ifc_destroy_psv_in_bits {
5394290650Shselasky	u8         opcode[0x10];
5395290650Shselasky	u8         reserved_0[0x10];
5396290650Shselasky
5397290650Shselasky	u8         reserved_1[0x10];
5398290650Shselasky	u8         op_mod[0x10];
5399290650Shselasky
5400290650Shselasky	u8         reserved_2[0x8];
5401290650Shselasky	u8         psvn[0x18];
5402290650Shselasky
5403290650Shselasky	u8         reserved_3[0x20];
5404290650Shselasky};
5405290650Shselasky
5406290650Shselaskystruct mlx5_ifc_destroy_mkey_out_bits {
5407290650Shselasky	u8         status[0x8];
5408290650Shselasky	u8         reserved_0[0x18];
5409290650Shselasky
5410290650Shselasky	u8         syndrome[0x20];
5411290650Shselasky
5412290650Shselasky	u8         reserved_1[0x40];
5413290650Shselasky};
5414290650Shselasky
5415290650Shselaskystruct mlx5_ifc_destroy_mkey_in_bits {
5416290650Shselasky	u8         opcode[0x10];
5417290650Shselasky	u8         reserved_0[0x10];
5418290650Shselasky
5419290650Shselasky	u8         reserved_1[0x10];
5420290650Shselasky	u8         op_mod[0x10];
5421290650Shselasky
5422290650Shselasky	u8         reserved_2[0x8];
5423290650Shselasky	u8         mkey_index[0x18];
5424290650Shselasky
5425290650Shselasky	u8         reserved_3[0x20];
5426290650Shselasky};
5427290650Shselasky
5428290650Shselaskystruct mlx5_ifc_destroy_flow_table_out_bits {
5429290650Shselasky	u8         status[0x8];
5430290650Shselasky	u8         reserved_0[0x18];
5431290650Shselasky
5432290650Shselasky	u8         syndrome[0x20];
5433290650Shselasky
5434290650Shselasky	u8         reserved_1[0x40];
5435290650Shselasky};
5436290650Shselasky
5437290650Shselaskystruct mlx5_ifc_destroy_flow_table_in_bits {
5438290650Shselasky	u8         opcode[0x10];
5439290650Shselasky	u8         reserved_0[0x10];
5440290650Shselasky
5441290650Shselasky	u8         reserved_1[0x10];
5442290650Shselasky	u8         op_mod[0x10];
5443290650Shselasky
5444290650Shselasky	u8         other_vport[0x1];
5445290650Shselasky	u8         reserved_2[0xf];
5446290650Shselasky	u8         vport_number[0x10];
5447290650Shselasky
5448290650Shselasky	u8         reserved_3[0x20];
5449290650Shselasky
5450290650Shselasky	u8         table_type[0x8];
5451290650Shselasky	u8         reserved_4[0x18];
5452290650Shselasky
5453290650Shselasky	u8         reserved_5[0x8];
5454290650Shselasky	u8         table_id[0x18];
5455290650Shselasky
5456290650Shselasky	u8         reserved_6[0x140];
5457290650Shselasky};
5458290650Shselasky
5459290650Shselaskystruct mlx5_ifc_destroy_flow_group_out_bits {
5460290650Shselasky	u8         status[0x8];
5461290650Shselasky	u8         reserved_0[0x18];
5462290650Shselasky
5463290650Shselasky	u8         syndrome[0x20];
5464290650Shselasky
5465290650Shselasky	u8         reserved_1[0x40];
5466290650Shselasky};
5467290650Shselasky
5468290650Shselaskystruct mlx5_ifc_destroy_flow_group_in_bits {
5469290650Shselasky	u8         opcode[0x10];
5470290650Shselasky	u8         reserved_0[0x10];
5471290650Shselasky
5472290650Shselasky	u8         reserved_1[0x10];
5473290650Shselasky	u8         op_mod[0x10];
5474290650Shselasky
5475290650Shselasky	u8         other_vport[0x1];
5476290650Shselasky	u8         reserved_2[0xf];
5477290650Shselasky	u8         vport_number[0x10];
5478290650Shselasky
5479290650Shselasky	u8         reserved_3[0x20];
5480290650Shselasky
5481290650Shselasky	u8         table_type[0x8];
5482290650Shselasky	u8         reserved_4[0x18];
5483290650Shselasky
5484290650Shselasky	u8         reserved_5[0x8];
5485290650Shselasky	u8         table_id[0x18];
5486290650Shselasky
5487290650Shselasky	u8         group_id[0x20];
5488290650Shselasky
5489290650Shselasky	u8         reserved_6[0x120];
5490290650Shselasky};
5491290650Shselasky
5492290650Shselaskystruct mlx5_ifc_destroy_eq_out_bits {
5493290650Shselasky	u8         status[0x8];
5494290650Shselasky	u8         reserved_0[0x18];
5495290650Shselasky
5496290650Shselasky	u8         syndrome[0x20];
5497290650Shselasky
5498290650Shselasky	u8         reserved_1[0x40];
5499290650Shselasky};
5500290650Shselasky
5501290650Shselaskystruct mlx5_ifc_destroy_eq_in_bits {
5502290650Shselasky	u8         opcode[0x10];
5503290650Shselasky	u8         reserved_0[0x10];
5504290650Shselasky
5505290650Shselasky	u8         reserved_1[0x10];
5506290650Shselasky	u8         op_mod[0x10];
5507290650Shselasky
5508290650Shselasky	u8         reserved_2[0x18];
5509290650Shselasky	u8         eq_number[0x8];
5510290650Shselasky
5511290650Shselasky	u8         reserved_3[0x20];
5512290650Shselasky};
5513290650Shselasky
5514290650Shselaskystruct mlx5_ifc_destroy_dct_out_bits {
5515290650Shselasky	u8         status[0x8];
5516290650Shselasky	u8         reserved_0[0x18];
5517290650Shselasky
5518290650Shselasky	u8         syndrome[0x20];
5519290650Shselasky
5520290650Shselasky	u8         reserved_1[0x40];
5521290650Shselasky};
5522290650Shselasky
5523290650Shselaskystruct mlx5_ifc_destroy_dct_in_bits {
5524290650Shselasky	u8         opcode[0x10];
5525290650Shselasky	u8         reserved_0[0x10];
5526290650Shselasky
5527290650Shselasky	u8         reserved_1[0x10];
5528290650Shselasky	u8         op_mod[0x10];
5529290650Shselasky
5530290650Shselasky	u8         reserved_2[0x8];
5531290650Shselasky	u8         dctn[0x18];
5532290650Shselasky
5533290650Shselasky	u8         reserved_3[0x20];
5534290650Shselasky};
5535290650Shselasky
5536290650Shselaskystruct mlx5_ifc_destroy_cq_out_bits {
5537290650Shselasky	u8         status[0x8];
5538290650Shselasky	u8         reserved_0[0x18];
5539290650Shselasky
5540290650Shselasky	u8         syndrome[0x20];
5541290650Shselasky
5542290650Shselasky	u8         reserved_1[0x40];
5543290650Shselasky};
5544290650Shselasky
5545290650Shselaskystruct mlx5_ifc_destroy_cq_in_bits {
5546290650Shselasky	u8         opcode[0x10];
5547290650Shselasky	u8         reserved_0[0x10];
5548290650Shselasky
5549290650Shselasky	u8         reserved_1[0x10];
5550290650Shselasky	u8         op_mod[0x10];
5551290650Shselasky
5552290650Shselasky	u8         reserved_2[0x8];
5553290650Shselasky	u8         cqn[0x18];
5554290650Shselasky
5555290650Shselasky	u8         reserved_3[0x20];
5556290650Shselasky};
5557290650Shselasky
5558290650Shselaskystruct mlx5_ifc_delete_vxlan_udp_dport_out_bits {
5559290650Shselasky	u8         status[0x8];
5560290650Shselasky	u8         reserved_0[0x18];
5561290650Shselasky
5562290650Shselasky	u8         syndrome[0x20];
5563290650Shselasky
5564290650Shselasky	u8         reserved_1[0x40];
5565290650Shselasky};
5566290650Shselasky
5567290650Shselaskystruct mlx5_ifc_delete_vxlan_udp_dport_in_bits {
5568290650Shselasky	u8         opcode[0x10];
5569290650Shselasky	u8         reserved_0[0x10];
5570290650Shselasky
5571290650Shselasky	u8         reserved_1[0x10];
5572290650Shselasky	u8         op_mod[0x10];
5573290650Shselasky
5574290650Shselasky	u8         reserved_2[0x20];
5575290650Shselasky
5576290650Shselasky	u8         reserved_3[0x10];
5577290650Shselasky	u8         vxlan_udp_port[0x10];
5578290650Shselasky};
5579290650Shselasky
5580290650Shselaskystruct mlx5_ifc_delete_l2_table_entry_out_bits {
5581290650Shselasky	u8         status[0x8];
5582290650Shselasky	u8         reserved_0[0x18];
5583290650Shselasky
5584290650Shselasky	u8         syndrome[0x20];
5585290650Shselasky
5586290650Shselasky	u8         reserved_1[0x40];
5587290650Shselasky};
5588290650Shselasky
5589290650Shselaskystruct mlx5_ifc_delete_l2_table_entry_in_bits {
5590290650Shselasky	u8         opcode[0x10];
5591290650Shselasky	u8         reserved_0[0x10];
5592290650Shselasky
5593290650Shselasky	u8         reserved_1[0x10];
5594290650Shselasky	u8         op_mod[0x10];
5595290650Shselasky
5596290650Shselasky	u8         reserved_2[0x60];
5597290650Shselasky
5598290650Shselasky	u8         reserved_3[0x8];
5599290650Shselasky	u8         table_index[0x18];
5600290650Shselasky
5601290650Shselasky	u8         reserved_4[0x140];
5602290650Shselasky};
5603290650Shselasky
5604290650Shselaskystruct mlx5_ifc_delete_fte_out_bits {
5605290650Shselasky	u8         status[0x8];
5606290650Shselasky	u8         reserved_0[0x18];
5607290650Shselasky
5608290650Shselasky	u8         syndrome[0x20];
5609290650Shselasky
5610290650Shselasky	u8         reserved_1[0x40];
5611290650Shselasky};
5612290650Shselasky
5613290650Shselaskystruct mlx5_ifc_delete_fte_in_bits {
5614290650Shselasky	u8         opcode[0x10];
5615290650Shselasky	u8         reserved_0[0x10];
5616290650Shselasky
5617290650Shselasky	u8         reserved_1[0x10];
5618290650Shselasky	u8         op_mod[0x10];
5619290650Shselasky
5620290650Shselasky	u8         other_vport[0x1];
5621290650Shselasky	u8         reserved_2[0xf];
5622290650Shselasky	u8         vport_number[0x10];
5623290650Shselasky
5624290650Shselasky	u8         reserved_3[0x20];
5625290650Shselasky
5626290650Shselasky	u8         table_type[0x8];
5627290650Shselasky	u8         reserved_4[0x18];
5628290650Shselasky
5629290650Shselasky	u8         reserved_5[0x8];
5630290650Shselasky	u8         table_id[0x18];
5631290650Shselasky
5632290650Shselasky	u8         reserved_6[0x40];
5633290650Shselasky
5634290650Shselasky	u8         flow_index[0x20];
5635290650Shselasky
5636290650Shselasky	u8         reserved_7[0xe0];
5637290650Shselasky};
5638290650Shselasky
5639290650Shselaskystruct mlx5_ifc_dealloc_xrcd_out_bits {
5640290650Shselasky	u8         status[0x8];
5641290650Shselasky	u8         reserved_0[0x18];
5642290650Shselasky
5643290650Shselasky	u8         syndrome[0x20];
5644290650Shselasky
5645290650Shselasky	u8         reserved_1[0x40];
5646290650Shselasky};
5647290650Shselasky
5648290650Shselaskystruct mlx5_ifc_dealloc_xrcd_in_bits {
5649290650Shselasky	u8         opcode[0x10];
5650290650Shselasky	u8         reserved_0[0x10];
5651290650Shselasky
5652290650Shselasky	u8         reserved_1[0x10];
5653290650Shselasky	u8         op_mod[0x10];
5654290650Shselasky
5655290650Shselasky	u8         reserved_2[0x8];
5656290650Shselasky	u8         xrcd[0x18];
5657290650Shselasky
5658290650Shselasky	u8         reserved_3[0x20];
5659290650Shselasky};
5660290650Shselasky
5661290650Shselaskystruct mlx5_ifc_dealloc_uar_out_bits {
5662290650Shselasky	u8         status[0x8];
5663290650Shselasky	u8         reserved_0[0x18];
5664290650Shselasky
5665290650Shselasky	u8         syndrome[0x20];
5666290650Shselasky
5667290650Shselasky	u8         reserved_1[0x40];
5668290650Shselasky};
5669290650Shselasky
5670290650Shselaskystruct mlx5_ifc_dealloc_uar_in_bits {
5671290650Shselasky	u8         opcode[0x10];
5672290650Shselasky	u8         reserved_0[0x10];
5673290650Shselasky
5674290650Shselasky	u8         reserved_1[0x10];
5675290650Shselasky	u8         op_mod[0x10];
5676290650Shselasky
5677290650Shselasky	u8         reserved_2[0x8];
5678290650Shselasky	u8         uar[0x18];
5679290650Shselasky
5680290650Shselasky	u8         reserved_3[0x20];
5681290650Shselasky};
5682290650Shselasky
5683290650Shselaskystruct mlx5_ifc_dealloc_transport_domain_out_bits {
5684290650Shselasky	u8         status[0x8];
5685290650Shselasky	u8         reserved_0[0x18];
5686290650Shselasky
5687290650Shselasky	u8         syndrome[0x20];
5688290650Shselasky
5689290650Shselasky	u8         reserved_1[0x40];
5690290650Shselasky};
5691290650Shselasky
5692290650Shselaskystruct mlx5_ifc_dealloc_transport_domain_in_bits {
5693290650Shselasky	u8         opcode[0x10];
5694290650Shselasky	u8         reserved_0[0x10];
5695290650Shselasky
5696290650Shselasky	u8         reserved_1[0x10];
5697290650Shselasky	u8         op_mod[0x10];
5698290650Shselasky
5699290650Shselasky	u8         reserved_2[0x8];
5700290650Shselasky	u8         transport_domain[0x18];
5701290650Shselasky
5702290650Shselasky	u8         reserved_3[0x20];
5703290650Shselasky};
5704290650Shselasky
5705290650Shselaskystruct mlx5_ifc_dealloc_q_counter_out_bits {
5706290650Shselasky	u8         status[0x8];
5707290650Shselasky	u8         reserved_0[0x18];
5708290650Shselasky
5709290650Shselasky	u8         syndrome[0x20];
5710290650Shselasky
5711290650Shselasky	u8         reserved_1[0x40];
5712290650Shselasky};
5713290650Shselasky
5714290650Shselaskystruct mlx5_ifc_dealloc_q_counter_in_bits {
5715290650Shselasky	u8         opcode[0x10];
5716290650Shselasky	u8         reserved_0[0x10];
5717290650Shselasky
5718290650Shselasky	u8         reserved_1[0x10];
5719290650Shselasky	u8         op_mod[0x10];
5720290650Shselasky
5721290650Shselasky	u8         reserved_2[0x18];
5722290650Shselasky	u8         counter_set_id[0x8];
5723290650Shselasky
5724290650Shselasky	u8         reserved_3[0x20];
5725290650Shselasky};
5726290650Shselasky
5727290650Shselaskystruct mlx5_ifc_dealloc_pd_out_bits {
5728290650Shselasky	u8         status[0x8];
5729290650Shselasky	u8         reserved_0[0x18];
5730290650Shselasky
5731290650Shselasky	u8         syndrome[0x20];
5732290650Shselasky
5733290650Shselasky	u8         reserved_1[0x40];
5734290650Shselasky};
5735290650Shselasky
5736290650Shselaskystruct mlx5_ifc_dealloc_pd_in_bits {
5737290650Shselasky	u8         opcode[0x10];
5738290650Shselasky	u8         reserved_0[0x10];
5739290650Shselasky
5740290650Shselasky	u8         reserved_1[0x10];
5741290650Shselasky	u8         op_mod[0x10];
5742290650Shselasky
5743290650Shselasky	u8         reserved_2[0x8];
5744290650Shselasky	u8         pd[0x18];
5745290650Shselasky
5746290650Shselasky	u8         reserved_3[0x20];
5747290650Shselasky};
5748290650Shselasky
5749290650Shselaskystruct mlx5_ifc_dealloc_flow_counter_out_bits {
5750290650Shselasky	u8         status[0x8];
5751290650Shselasky	u8         reserved_0[0x18];
5752290650Shselasky
5753290650Shselasky	u8         syndrome[0x20];
5754290650Shselasky
5755290650Shselasky	u8         reserved_1[0x40];
5756290650Shselasky};
5757290650Shselasky
5758290650Shselaskystruct mlx5_ifc_dealloc_flow_counter_in_bits {
5759290650Shselasky	u8         opcode[0x10];
5760290650Shselasky	u8         reserved_0[0x10];
5761290650Shselasky
5762290650Shselasky	u8         reserved_1[0x10];
5763290650Shselasky	u8         op_mod[0x10];
5764290650Shselasky
5765290650Shselasky	u8         reserved_2[0x10];
5766290650Shselasky	u8         flow_counter_id[0x10];
5767290650Shselasky
5768290650Shselasky	u8         reserved_3[0x20];
5769290650Shselasky};
5770290650Shselasky
5771290650Shselaskystruct mlx5_ifc_deactivate_tracer_out_bits {
5772290650Shselasky	u8         status[0x8];
5773290650Shselasky	u8         reserved_0[0x18];
5774290650Shselasky
5775290650Shselasky	u8         syndrome[0x20];
5776290650Shselasky
5777290650Shselasky	u8         reserved_1[0x40];
5778290650Shselasky};
5779290650Shselasky
5780290650Shselaskystruct mlx5_ifc_deactivate_tracer_in_bits {
5781290650Shselasky	u8         opcode[0x10];
5782290650Shselasky	u8         reserved_0[0x10];
5783290650Shselasky
5784290650Shselasky	u8         reserved_1[0x10];
5785290650Shselasky	u8         op_mod[0x10];
5786290650Shselasky
5787290650Shselasky	u8         mkey[0x20];
5788290650Shselasky
5789290650Shselasky	u8         reserved_2[0x20];
5790290650Shselasky};
5791290650Shselasky
5792290650Shselaskystruct mlx5_ifc_create_xrc_srq_out_bits {
5793290650Shselasky	u8         status[0x8];
5794290650Shselasky	u8         reserved_0[0x18];
5795290650Shselasky
5796290650Shselasky	u8         syndrome[0x20];
5797290650Shselasky
5798290650Shselasky	u8         reserved_1[0x8];
5799290650Shselasky	u8         xrc_srqn[0x18];
5800290650Shselasky
5801290650Shselasky	u8         reserved_2[0x20];
5802290650Shselasky};
5803290650Shselasky
5804290650Shselaskystruct mlx5_ifc_create_xrc_srq_in_bits {
5805290650Shselasky	u8         opcode[0x10];
5806290650Shselasky	u8         reserved_0[0x10];
5807290650Shselasky
5808290650Shselasky	u8         reserved_1[0x10];
5809290650Shselasky	u8         op_mod[0x10];
5810290650Shselasky
5811290650Shselasky	u8         reserved_2[0x40];
5812290650Shselasky
5813290650Shselasky	struct mlx5_ifc_xrc_srqc_bits xrc_srq_context_entry;
5814290650Shselasky
5815290650Shselasky	u8         reserved_3[0x600];
5816290650Shselasky
5817290650Shselasky	u8         pas[0][0x40];
5818290650Shselasky};
5819290650Shselasky
5820290650Shselaskystruct mlx5_ifc_create_tis_out_bits {
5821290650Shselasky	u8         status[0x8];
5822290650Shselasky	u8         reserved_0[0x18];
5823290650Shselasky
5824290650Shselasky	u8         syndrome[0x20];
5825290650Shselasky
5826290650Shselasky	u8         reserved_1[0x8];
5827290650Shselasky	u8         tisn[0x18];
5828290650Shselasky
5829290650Shselasky	u8         reserved_2[0x20];
5830290650Shselasky};
5831290650Shselasky
5832290650Shselaskystruct mlx5_ifc_create_tis_in_bits {
5833290650Shselasky	u8         opcode[0x10];
5834290650Shselasky	u8         reserved_0[0x10];
5835290650Shselasky
5836290650Shselasky	u8         reserved_1[0x10];
5837290650Shselasky	u8         op_mod[0x10];
5838290650Shselasky
5839290650Shselasky	u8         reserved_2[0xc0];
5840290650Shselasky
5841290650Shselasky	struct mlx5_ifc_tisc_bits ctx;
5842290650Shselasky};
5843290650Shselasky
5844290650Shselaskystruct mlx5_ifc_create_tir_out_bits {
5845290650Shselasky	u8         status[0x8];
5846290650Shselasky	u8         reserved_0[0x18];
5847290650Shselasky
5848290650Shselasky	u8         syndrome[0x20];
5849290650Shselasky
5850290650Shselasky	u8         reserved_1[0x8];
5851290650Shselasky	u8         tirn[0x18];
5852290650Shselasky
5853290650Shselasky	u8         reserved_2[0x20];
5854290650Shselasky};
5855290650Shselasky
5856290650Shselaskystruct mlx5_ifc_create_tir_in_bits {
5857290650Shselasky	u8         opcode[0x10];
5858290650Shselasky	u8         reserved_0[0x10];
5859290650Shselasky
5860290650Shselasky	u8         reserved_1[0x10];
5861290650Shselasky	u8         op_mod[0x10];
5862290650Shselasky
5863290650Shselasky	u8         reserved_2[0xc0];
5864290650Shselasky
5865290650Shselasky	struct mlx5_ifc_tirc_bits tir_context;
5866290650Shselasky};
5867290650Shselasky
5868290650Shselaskystruct mlx5_ifc_create_srq_out_bits {
5869290650Shselasky	u8         status[0x8];
5870290650Shselasky	u8         reserved_0[0x18];
5871290650Shselasky
5872290650Shselasky	u8         syndrome[0x20];
5873290650Shselasky
5874290650Shselasky	u8         reserved_1[0x8];
5875290650Shselasky	u8         srqn[0x18];
5876290650Shselasky
5877290650Shselasky	u8         reserved_2[0x20];
5878290650Shselasky};
5879290650Shselasky
5880290650Shselaskystruct mlx5_ifc_create_srq_in_bits {
5881290650Shselasky	u8         opcode[0x10];
5882290650Shselasky	u8         reserved_0[0x10];
5883290650Shselasky
5884290650Shselasky	u8         reserved_1[0x10];
5885290650Shselasky	u8         op_mod[0x10];
5886290650Shselasky
5887290650Shselasky	u8         reserved_2[0x40];
5888290650Shselasky
5889290650Shselasky	struct mlx5_ifc_srqc_bits srq_context_entry;
5890290650Shselasky
5891290650Shselasky	u8         reserved_3[0x600];
5892290650Shselasky
5893290650Shselasky	u8         pas[0][0x40];
5894290650Shselasky};
5895290650Shselasky
5896290650Shselaskystruct mlx5_ifc_create_sq_out_bits {
5897290650Shselasky	u8         status[0x8];
5898290650Shselasky	u8         reserved_0[0x18];
5899290650Shselasky
5900290650Shselasky	u8         syndrome[0x20];
5901290650Shselasky
5902290650Shselasky	u8         reserved_1[0x8];
5903290650Shselasky	u8         sqn[0x18];
5904290650Shselasky
5905290650Shselasky	u8         reserved_2[0x20];
5906290650Shselasky};
5907290650Shselasky
5908290650Shselaskystruct mlx5_ifc_create_sq_in_bits {
5909290650Shselasky	u8         opcode[0x10];
5910290650Shselasky	u8         reserved_0[0x10];
5911290650Shselasky
5912290650Shselasky	u8         reserved_1[0x10];
5913290650Shselasky	u8         op_mod[0x10];
5914290650Shselasky
5915290650Shselasky	u8         reserved_2[0xc0];
5916290650Shselasky
5917290650Shselasky	struct mlx5_ifc_sqc_bits ctx;
5918290650Shselasky};
5919290650Shselasky
5920290650Shselaskystruct mlx5_ifc_create_rqt_out_bits {
5921290650Shselasky	u8         status[0x8];
5922290650Shselasky	u8         reserved_0[0x18];
5923290650Shselasky
5924290650Shselasky	u8         syndrome[0x20];
5925290650Shselasky
5926290650Shselasky	u8         reserved_1[0x8];
5927290650Shselasky	u8         rqtn[0x18];
5928290650Shselasky
5929290650Shselasky	u8         reserved_2[0x20];
5930290650Shselasky};
5931290650Shselasky
5932290650Shselaskystruct mlx5_ifc_create_rqt_in_bits {
5933290650Shselasky	u8         opcode[0x10];
5934290650Shselasky	u8         reserved_0[0x10];
5935290650Shselasky
5936290650Shselasky	u8         reserved_1[0x10];
5937290650Shselasky	u8         op_mod[0x10];
5938290650Shselasky
5939290650Shselasky	u8         reserved_2[0xc0];
5940290650Shselasky
5941290650Shselasky	struct mlx5_ifc_rqtc_bits rqt_context;
5942290650Shselasky};
5943290650Shselasky
5944290650Shselaskystruct mlx5_ifc_create_rq_out_bits {
5945290650Shselasky	u8         status[0x8];
5946290650Shselasky	u8         reserved_0[0x18];
5947290650Shselasky
5948290650Shselasky	u8         syndrome[0x20];
5949290650Shselasky
5950290650Shselasky	u8         reserved_1[0x8];
5951290650Shselasky	u8         rqn[0x18];
5952290650Shselasky
5953290650Shselasky	u8         reserved_2[0x20];
5954290650Shselasky};
5955290650Shselasky
5956290650Shselaskystruct mlx5_ifc_create_rq_in_bits {
5957290650Shselasky	u8         opcode[0x10];
5958290650Shselasky	u8         reserved_0[0x10];
5959290650Shselasky
5960290650Shselasky	u8         reserved_1[0x10];
5961290650Shselasky	u8         op_mod[0x10];
5962290650Shselasky
5963290650Shselasky	u8         reserved_2[0xc0];
5964290650Shselasky
5965290650Shselasky	struct mlx5_ifc_rqc_bits ctx;
5966290650Shselasky};
5967290650Shselasky
5968290650Shselaskystruct mlx5_ifc_create_rmp_out_bits {
5969290650Shselasky	u8         status[0x8];
5970290650Shselasky	u8         reserved_0[0x18];
5971290650Shselasky
5972290650Shselasky	u8         syndrome[0x20];
5973290650Shselasky
5974290650Shselasky	u8         reserved_1[0x8];
5975290650Shselasky	u8         rmpn[0x18];
5976290650Shselasky
5977290650Shselasky	u8         reserved_2[0x20];
5978290650Shselasky};
5979290650Shselasky
5980290650Shselaskystruct mlx5_ifc_create_rmp_in_bits {
5981290650Shselasky	u8         opcode[0x10];
5982290650Shselasky	u8         reserved_0[0x10];
5983290650Shselasky
5984290650Shselasky	u8         reserved_1[0x10];
5985290650Shselasky	u8         op_mod[0x10];
5986290650Shselasky
5987290650Shselasky	u8         reserved_2[0xc0];
5988290650Shselasky
5989290650Shselasky	struct mlx5_ifc_rmpc_bits ctx;
5990290650Shselasky};
5991290650Shselasky
5992290650Shselaskystruct mlx5_ifc_create_qp_out_bits {
5993290650Shselasky	u8         status[0x8];
5994290650Shselasky	u8         reserved_0[0x18];
5995290650Shselasky
5996290650Shselasky	u8         syndrome[0x20];
5997290650Shselasky
5998290650Shselasky	u8         reserved_1[0x8];
5999290650Shselasky	u8         qpn[0x18];
6000290650Shselasky
6001290650Shselasky	u8         reserved_2[0x20];
6002290650Shselasky};
6003290650Shselasky
6004290650Shselaskystruct mlx5_ifc_create_qp_in_bits {
6005290650Shselasky	u8         opcode[0x10];
6006290650Shselasky	u8         reserved_0[0x10];
6007290650Shselasky
6008290650Shselasky	u8         reserved_1[0x10];
6009290650Shselasky	u8         op_mod[0x10];
6010290650Shselasky
6011290650Shselasky	u8         reserved_2[0x40];
6012290650Shselasky
6013290650Shselasky	u8         opt_param_mask[0x20];
6014290650Shselasky
6015290650Shselasky	u8         reserved_3[0x20];
6016290650Shselasky
6017290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
6018290650Shselasky
6019290650Shselasky	u8         reserved_4[0x80];
6020290650Shselasky
6021290650Shselasky	u8         pas[0][0x40];
6022290650Shselasky};
6023290650Shselasky
6024290650Shselaskystruct mlx5_ifc_create_psv_out_bits {
6025290650Shselasky	u8         status[0x8];
6026290650Shselasky	u8         reserved_0[0x18];
6027290650Shselasky
6028290650Shselasky	u8         syndrome[0x20];
6029290650Shselasky
6030290650Shselasky	u8         reserved_1[0x40];
6031290650Shselasky
6032290650Shselasky	u8         reserved_2[0x8];
6033290650Shselasky	u8         psv0_index[0x18];
6034290650Shselasky
6035290650Shselasky	u8         reserved_3[0x8];
6036290650Shselasky	u8         psv1_index[0x18];
6037290650Shselasky
6038290650Shselasky	u8         reserved_4[0x8];
6039290650Shselasky	u8         psv2_index[0x18];
6040290650Shselasky
6041290650Shselasky	u8         reserved_5[0x8];
6042290650Shselasky	u8         psv3_index[0x18];
6043290650Shselasky};
6044290650Shselasky
6045290650Shselaskystruct mlx5_ifc_create_psv_in_bits {
6046290650Shselasky	u8         opcode[0x10];
6047290650Shselasky	u8         reserved_0[0x10];
6048290650Shselasky
6049290650Shselasky	u8         reserved_1[0x10];
6050290650Shselasky	u8         op_mod[0x10];
6051290650Shselasky
6052290650Shselasky	u8         num_psv[0x4];
6053290650Shselasky	u8         reserved_2[0x4];
6054290650Shselasky	u8         pd[0x18];
6055290650Shselasky
6056290650Shselasky	u8         reserved_3[0x20];
6057290650Shselasky};
6058290650Shselasky
6059290650Shselaskystruct mlx5_ifc_create_mkey_out_bits {
6060290650Shselasky	u8         status[0x8];
6061290650Shselasky	u8         reserved_0[0x18];
6062290650Shselasky
6063290650Shselasky	u8         syndrome[0x20];
6064290650Shselasky
6065290650Shselasky	u8         reserved_1[0x8];
6066290650Shselasky	u8         mkey_index[0x18];
6067290650Shselasky
6068290650Shselasky	u8         reserved_2[0x20];
6069290650Shselasky};
6070290650Shselasky
6071290650Shselaskystruct mlx5_ifc_create_mkey_in_bits {
6072290650Shselasky	u8         opcode[0x10];
6073290650Shselasky	u8         reserved_0[0x10];
6074290650Shselasky
6075290650Shselasky	u8         reserved_1[0x10];
6076290650Shselasky	u8         op_mod[0x10];
6077290650Shselasky
6078290650Shselasky	u8         reserved_2[0x20];
6079290650Shselasky
6080290650Shselasky	u8         pg_access[0x1];
6081290650Shselasky	u8         reserved_3[0x1f];
6082290650Shselasky
6083290650Shselasky	struct mlx5_ifc_mkc_bits memory_key_mkey_entry;
6084290650Shselasky
6085290650Shselasky	u8         reserved_4[0x80];
6086290650Shselasky
6087290650Shselasky	u8         translations_octword_actual_size[0x20];
6088290650Shselasky
6089290650Shselasky	u8         reserved_5[0x560];
6090290650Shselasky
6091290650Shselasky	u8         klm_pas_mtt[0][0x20];
6092290650Shselasky};
6093290650Shselasky
6094290650Shselaskystruct mlx5_ifc_create_flow_table_out_bits {
6095290650Shselasky	u8         status[0x8];
6096290650Shselasky	u8         reserved_0[0x18];
6097290650Shselasky
6098290650Shselasky	u8         syndrome[0x20];
6099290650Shselasky
6100290650Shselasky	u8         reserved_1[0x8];
6101290650Shselasky	u8         table_id[0x18];
6102290650Shselasky
6103290650Shselasky	u8         reserved_2[0x20];
6104290650Shselasky};
6105290650Shselasky
6106290650Shselaskystruct mlx5_ifc_create_flow_table_in_bits {
6107290650Shselasky	u8         opcode[0x10];
6108290650Shselasky	u8         reserved_0[0x10];
6109290650Shselasky
6110290650Shselasky	u8         reserved_1[0x10];
6111290650Shselasky	u8         op_mod[0x10];
6112290650Shselasky
6113290650Shselasky	u8         other_vport[0x1];
6114290650Shselasky	u8         reserved_2[0xf];
6115290650Shselasky	u8         vport_number[0x10];
6116290650Shselasky
6117290650Shselasky	u8         reserved_3[0x20];
6118290650Shselasky
6119290650Shselasky	u8         table_type[0x8];
6120290650Shselasky	u8         reserved_4[0x18];
6121290650Shselasky
6122290650Shselasky	u8         reserved_5[0x20];
6123290650Shselasky
6124290650Shselasky	u8         reserved_6[0x8];
6125290650Shselasky	u8         level[0x8];
6126290650Shselasky	u8         reserved_7[0x8];
6127290650Shselasky	u8         log_size[0x8];
6128290650Shselasky
6129290650Shselasky	u8         reserved_8[0x120];
6130290650Shselasky};
6131290650Shselasky
6132290650Shselaskystruct mlx5_ifc_create_flow_group_out_bits {
6133290650Shselasky	u8         status[0x8];
6134290650Shselasky	u8         reserved_0[0x18];
6135290650Shselasky
6136290650Shselasky	u8         syndrome[0x20];
6137290650Shselasky
6138290650Shselasky	u8         reserved_1[0x8];
6139290650Shselasky	u8         group_id[0x18];
6140290650Shselasky
6141290650Shselasky	u8         reserved_2[0x20];
6142290650Shselasky};
6143290650Shselasky
6144290650Shselaskyenum {
6145290650Shselasky	MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_OUTER_HEADERS    = 0x0,
6146290650Shselasky	MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS  = 0x1,
6147290650Shselasky	MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_INNER_HEADERS    = 0x2,
6148290650Shselasky};
6149290650Shselasky
6150290650Shselaskystruct mlx5_ifc_create_flow_group_in_bits {
6151290650Shselasky	u8         opcode[0x10];
6152290650Shselasky	u8         reserved_0[0x10];
6153290650Shselasky
6154290650Shselasky	u8         reserved_1[0x10];
6155290650Shselasky	u8         op_mod[0x10];
6156290650Shselasky
6157290650Shselasky	u8         other_vport[0x1];
6158290650Shselasky	u8         reserved_2[0xf];
6159290650Shselasky	u8         vport_number[0x10];
6160290650Shselasky
6161290650Shselasky	u8         reserved_3[0x20];
6162290650Shselasky
6163290650Shselasky	u8         table_type[0x8];
6164290650Shselasky	u8         reserved_4[0x18];
6165290650Shselasky
6166290650Shselasky	u8         reserved_5[0x8];
6167290650Shselasky	u8         table_id[0x18];
6168290650Shselasky
6169290650Shselasky	u8         reserved_6[0x20];
6170290650Shselasky
6171290650Shselasky	u8         start_flow_index[0x20];
6172290650Shselasky
6173290650Shselasky	u8         reserved_7[0x20];
6174290650Shselasky
6175290650Shselasky	u8         end_flow_index[0x20];
6176290650Shselasky
6177290650Shselasky	u8         reserved_8[0xa0];
6178290650Shselasky
6179290650Shselasky	u8         reserved_9[0x18];
6180290650Shselasky	u8         match_criteria_enable[0x8];
6181290650Shselasky
6182290650Shselasky	struct mlx5_ifc_fte_match_param_bits match_criteria;
6183290650Shselasky
6184290650Shselasky	u8         reserved_10[0xe00];
6185290650Shselasky};
6186290650Shselasky
6187290650Shselaskystruct mlx5_ifc_create_eq_out_bits {
6188290650Shselasky	u8         status[0x8];
6189290650Shselasky	u8         reserved_0[0x18];
6190290650Shselasky
6191290650Shselasky	u8         syndrome[0x20];
6192290650Shselasky
6193290650Shselasky	u8         reserved_1[0x18];
6194290650Shselasky	u8         eq_number[0x8];
6195290650Shselasky
6196290650Shselasky	u8         reserved_2[0x20];
6197290650Shselasky};
6198290650Shselasky
6199290650Shselaskystruct mlx5_ifc_create_eq_in_bits {
6200290650Shselasky	u8         opcode[0x10];
6201290650Shselasky	u8         reserved_0[0x10];
6202290650Shselasky
6203290650Shselasky	u8         reserved_1[0x10];
6204290650Shselasky	u8         op_mod[0x10];
6205290650Shselasky
6206290650Shselasky	u8         reserved_2[0x40];
6207290650Shselasky
6208290650Shselasky	struct mlx5_ifc_eqc_bits eq_context_entry;
6209290650Shselasky
6210290650Shselasky	u8         reserved_3[0x40];
6211290650Shselasky
6212290650Shselasky	u8         event_bitmask[0x40];
6213290650Shselasky
6214290650Shselasky	u8         reserved_4[0x580];
6215290650Shselasky
6216290650Shselasky	u8         pas[0][0x40];
6217290650Shselasky};
6218290650Shselasky
6219290650Shselaskystruct mlx5_ifc_create_dct_out_bits {
6220290650Shselasky	u8         status[0x8];
6221290650Shselasky	u8         reserved_0[0x18];
6222290650Shselasky
6223290650Shselasky	u8         syndrome[0x20];
6224290650Shselasky
6225290650Shselasky	u8         reserved_1[0x8];
6226290650Shselasky	u8         dctn[0x18];
6227290650Shselasky
6228290650Shselasky	u8         reserved_2[0x20];
6229290650Shselasky};
6230290650Shselasky
6231290650Shselaskystruct mlx5_ifc_create_dct_in_bits {
6232290650Shselasky	u8         opcode[0x10];
6233290650Shselasky	u8         reserved_0[0x10];
6234290650Shselasky
6235290650Shselasky	u8         reserved_1[0x10];
6236290650Shselasky	u8         op_mod[0x10];
6237290650Shselasky
6238290650Shselasky	u8         reserved_2[0x40];
6239290650Shselasky
6240290650Shselasky	struct mlx5_ifc_dctc_bits dct_context_entry;
6241290650Shselasky
6242290650Shselasky	u8         reserved_3[0x180];
6243290650Shselasky};
6244290650Shselasky
6245290650Shselaskystruct mlx5_ifc_create_cq_out_bits {
6246290650Shselasky	u8         status[0x8];
6247290650Shselasky	u8         reserved_0[0x18];
6248290650Shselasky
6249290650Shselasky	u8         syndrome[0x20];
6250290650Shselasky
6251290650Shselasky	u8         reserved_1[0x8];
6252290650Shselasky	u8         cqn[0x18];
6253290650Shselasky
6254290650Shselasky	u8         reserved_2[0x20];
6255290650Shselasky};
6256290650Shselasky
6257290650Shselaskystruct mlx5_ifc_create_cq_in_bits {
6258290650Shselasky	u8         opcode[0x10];
6259290650Shselasky	u8         reserved_0[0x10];
6260290650Shselasky
6261290650Shselasky	u8         reserved_1[0x10];
6262290650Shselasky	u8         op_mod[0x10];
6263290650Shselasky
6264290650Shselasky	u8         reserved_2[0x40];
6265290650Shselasky
6266290650Shselasky	struct mlx5_ifc_cqc_bits cq_context;
6267290650Shselasky
6268290650Shselasky	u8         reserved_3[0x600];
6269290650Shselasky
6270290650Shselasky	u8         pas[0][0x40];
6271290650Shselasky};
6272290650Shselasky
6273290650Shselaskystruct mlx5_ifc_config_int_moderation_out_bits {
6274290650Shselasky	u8         status[0x8];
6275290650Shselasky	u8         reserved_0[0x18];
6276290650Shselasky
6277290650Shselasky	u8         syndrome[0x20];
6278290650Shselasky
6279290650Shselasky	u8         reserved_1[0x4];
6280290650Shselasky	u8         min_delay[0xc];
6281290650Shselasky	u8         int_vector[0x10];
6282290650Shselasky
6283290650Shselasky	u8         reserved_2[0x20];
6284290650Shselasky};
6285290650Shselasky
6286290650Shselaskyenum {
6287290650Shselasky	MLX5_CONFIG_INT_MODERATION_IN_OP_MOD_WRITE  = 0x0,
6288290650Shselasky	MLX5_CONFIG_INT_MODERATION_IN_OP_MOD_READ   = 0x1,
6289290650Shselasky};
6290290650Shselasky
6291290650Shselaskystruct mlx5_ifc_config_int_moderation_in_bits {
6292290650Shselasky	u8         opcode[0x10];
6293290650Shselasky	u8         reserved_0[0x10];
6294290650Shselasky
6295290650Shselasky	u8         reserved_1[0x10];
6296290650Shselasky	u8         op_mod[0x10];
6297290650Shselasky
6298290650Shselasky	u8         reserved_2[0x4];
6299290650Shselasky	u8         min_delay[0xc];
6300290650Shselasky	u8         int_vector[0x10];
6301290650Shselasky
6302290650Shselasky	u8         reserved_3[0x20];
6303290650Shselasky};
6304290650Shselasky
6305290650Shselaskystruct mlx5_ifc_attach_to_mcg_out_bits {
6306290650Shselasky	u8         status[0x8];
6307290650Shselasky	u8         reserved_0[0x18];
6308290650Shselasky
6309290650Shselasky	u8         syndrome[0x20];
6310290650Shselasky
6311290650Shselasky	u8         reserved_1[0x40];
6312290650Shselasky};
6313290650Shselasky
6314290650Shselaskystruct mlx5_ifc_attach_to_mcg_in_bits {
6315290650Shselasky	u8         opcode[0x10];
6316290650Shselasky	u8         reserved_0[0x10];
6317290650Shselasky
6318290650Shselasky	u8         reserved_1[0x10];
6319290650Shselasky	u8         op_mod[0x10];
6320290650Shselasky
6321290650Shselasky	u8         reserved_2[0x8];
6322290650Shselasky	u8         qpn[0x18];
6323290650Shselasky
6324290650Shselasky	u8         reserved_3[0x20];
6325290650Shselasky
6326290650Shselasky	u8         multicast_gid[16][0x8];
6327290650Shselasky};
6328290650Shselasky
6329290650Shselaskystruct mlx5_ifc_arm_xrc_srq_out_bits {
6330290650Shselasky	u8         status[0x8];
6331290650Shselasky	u8         reserved_0[0x18];
6332290650Shselasky
6333290650Shselasky	u8         syndrome[0x20];
6334290650Shselasky
6335290650Shselasky	u8         reserved_1[0x40];
6336290650Shselasky};
6337290650Shselasky
6338290650Shselaskyenum {
6339290650Shselasky	MLX5_ARM_XRC_SRQ_IN_OP_MOD_XRC_SRQ  = 0x1,
6340290650Shselasky};
6341290650Shselasky
6342290650Shselaskystruct mlx5_ifc_arm_xrc_srq_in_bits {
6343290650Shselasky	u8         opcode[0x10];
6344290650Shselasky	u8         reserved_0[0x10];
6345290650Shselasky
6346290650Shselasky	u8         reserved_1[0x10];
6347290650Shselasky	u8         op_mod[0x10];
6348290650Shselasky
6349290650Shselasky	u8         reserved_2[0x8];
6350290650Shselasky	u8         xrc_srqn[0x18];
6351290650Shselasky
6352290650Shselasky	u8         reserved_3[0x10];
6353290650Shselasky	u8         lwm[0x10];
6354290650Shselasky};
6355290650Shselasky
6356290650Shselaskystruct mlx5_ifc_arm_rq_out_bits {
6357290650Shselasky	u8         status[0x8];
6358290650Shselasky	u8         reserved_0[0x18];
6359290650Shselasky
6360290650Shselasky	u8         syndrome[0x20];
6361290650Shselasky
6362290650Shselasky	u8         reserved_1[0x40];
6363290650Shselasky};
6364290650Shselasky
6365290650Shselaskyenum {
6366290650Shselasky	MLX5_ARM_RQ_IN_OP_MOD_SRQ  = 0x1,
6367290650Shselasky};
6368290650Shselasky
6369290650Shselaskystruct mlx5_ifc_arm_rq_in_bits {
6370290650Shselasky	u8         opcode[0x10];
6371290650Shselasky	u8         reserved_0[0x10];
6372290650Shselasky
6373290650Shselasky	u8         reserved_1[0x10];
6374290650Shselasky	u8         op_mod[0x10];
6375290650Shselasky
6376290650Shselasky	u8         reserved_2[0x8];
6377290650Shselasky	u8         srq_number[0x18];
6378290650Shselasky
6379290650Shselasky	u8         reserved_3[0x10];
6380290650Shselasky	u8         lwm[0x10];
6381290650Shselasky};
6382290650Shselasky
6383290650Shselaskystruct mlx5_ifc_arm_dct_out_bits {
6384290650Shselasky	u8         status[0x8];
6385290650Shselasky	u8         reserved_0[0x18];
6386290650Shselasky
6387290650Shselasky	u8         syndrome[0x20];
6388290650Shselasky
6389290650Shselasky	u8         reserved_1[0x40];
6390290650Shselasky};
6391290650Shselasky
6392290650Shselaskystruct mlx5_ifc_arm_dct_in_bits {
6393290650Shselasky	u8         opcode[0x10];
6394290650Shselasky	u8         reserved_0[0x10];
6395290650Shselasky
6396290650Shselasky	u8         reserved_1[0x10];
6397290650Shselasky	u8         op_mod[0x10];
6398290650Shselasky
6399290650Shselasky	u8         reserved_2[0x8];
6400290650Shselasky	u8         dctn[0x18];
6401290650Shselasky
6402290650Shselasky	u8         reserved_3[0x20];
6403290650Shselasky};
6404290650Shselasky
6405290650Shselaskystruct mlx5_ifc_alloc_xrcd_out_bits {
6406290650Shselasky	u8         status[0x8];
6407290650Shselasky	u8         reserved_0[0x18];
6408290650Shselasky
6409290650Shselasky	u8         syndrome[0x20];
6410290650Shselasky
6411290650Shselasky	u8         reserved_1[0x8];
6412290650Shselasky	u8         xrcd[0x18];
6413290650Shselasky
6414290650Shselasky	u8         reserved_2[0x20];
6415290650Shselasky};
6416290650Shselasky
6417290650Shselaskystruct mlx5_ifc_alloc_xrcd_in_bits {
6418290650Shselasky	u8         opcode[0x10];
6419290650Shselasky	u8         reserved_0[0x10];
6420290650Shselasky
6421290650Shselasky	u8         reserved_1[0x10];
6422290650Shselasky	u8         op_mod[0x10];
6423290650Shselasky
6424290650Shselasky	u8         reserved_2[0x40];
6425290650Shselasky};
6426290650Shselasky
6427290650Shselaskystruct mlx5_ifc_alloc_uar_out_bits {
6428290650Shselasky	u8         status[0x8];
6429290650Shselasky	u8         reserved_0[0x18];
6430290650Shselasky
6431290650Shselasky	u8         syndrome[0x20];
6432290650Shselasky
6433290650Shselasky	u8         reserved_1[0x8];
6434290650Shselasky	u8         uar[0x18];
6435290650Shselasky
6436290650Shselasky	u8         reserved_2[0x20];
6437290650Shselasky};
6438290650Shselasky
6439290650Shselaskystruct mlx5_ifc_alloc_uar_in_bits {
6440290650Shselasky	u8         opcode[0x10];
6441290650Shselasky	u8         reserved_0[0x10];
6442290650Shselasky
6443290650Shselasky	u8         reserved_1[0x10];
6444290650Shselasky	u8         op_mod[0x10];
6445290650Shselasky
6446290650Shselasky	u8         reserved_2[0x40];
6447290650Shselasky};
6448290650Shselasky
6449290650Shselaskystruct mlx5_ifc_alloc_transport_domain_out_bits {
6450290650Shselasky	u8         status[0x8];
6451290650Shselasky	u8         reserved_0[0x18];
6452290650Shselasky
6453290650Shselasky	u8         syndrome[0x20];
6454290650Shselasky
6455290650Shselasky	u8         reserved_1[0x8];
6456290650Shselasky	u8         transport_domain[0x18];
6457290650Shselasky
6458290650Shselasky	u8         reserved_2[0x20];
6459290650Shselasky};
6460290650Shselasky
6461290650Shselaskystruct mlx5_ifc_alloc_transport_domain_in_bits {
6462290650Shselasky	u8         opcode[0x10];
6463290650Shselasky	u8         reserved_0[0x10];
6464290650Shselasky
6465290650Shselasky	u8         reserved_1[0x10];
6466290650Shselasky	u8         op_mod[0x10];
6467290650Shselasky
6468290650Shselasky	u8         reserved_2[0x40];
6469290650Shselasky};
6470290650Shselasky
6471290650Shselaskystruct mlx5_ifc_alloc_q_counter_out_bits {
6472290650Shselasky	u8         status[0x8];
6473290650Shselasky	u8         reserved_0[0x18];
6474290650Shselasky
6475290650Shselasky	u8         syndrome[0x20];
6476290650Shselasky
6477290650Shselasky	u8         reserved_1[0x18];
6478290650Shselasky	u8         counter_set_id[0x8];
6479290650Shselasky
6480290650Shselasky	u8         reserved_2[0x20];
6481290650Shselasky};
6482290650Shselasky
6483290650Shselaskystruct mlx5_ifc_alloc_q_counter_in_bits {
6484290650Shselasky	u8         opcode[0x10];
6485290650Shselasky	u8         reserved_0[0x10];
6486290650Shselasky
6487290650Shselasky	u8         reserved_1[0x10];
6488290650Shselasky	u8         op_mod[0x10];
6489290650Shselasky
6490290650Shselasky	u8         reserved_2[0x40];
6491290650Shselasky};
6492290650Shselasky
6493290650Shselaskystruct mlx5_ifc_alloc_pd_out_bits {
6494290650Shselasky	u8         status[0x8];
6495290650Shselasky	u8         reserved_0[0x18];
6496290650Shselasky
6497290650Shselasky	u8         syndrome[0x20];
6498290650Shselasky
6499290650Shselasky	u8         reserved_1[0x8];
6500290650Shselasky	u8         pd[0x18];
6501290650Shselasky
6502290650Shselasky	u8         reserved_2[0x20];
6503290650Shselasky};
6504290650Shselasky
6505290650Shselaskystruct mlx5_ifc_alloc_pd_in_bits {
6506290650Shselasky	u8         opcode[0x10];
6507290650Shselasky	u8         reserved_0[0x10];
6508290650Shselasky
6509290650Shselasky	u8         reserved_1[0x10];
6510290650Shselasky	u8         op_mod[0x10];
6511290650Shselasky
6512290650Shselasky	u8         reserved_2[0x40];
6513290650Shselasky};
6514290650Shselasky
6515290650Shselaskystruct mlx5_ifc_alloc_flow_counter_out_bits {
6516290650Shselasky	u8         status[0x8];
6517290650Shselasky	u8         reserved_0[0x18];
6518290650Shselasky
6519290650Shselasky	u8         syndrome[0x20];
6520290650Shselasky
6521290650Shselasky	u8         reserved_1[0x10];
6522290650Shselasky	u8         flow_counter_id[0x10];
6523290650Shselasky
6524290650Shselasky	u8         reserved_2[0x20];
6525290650Shselasky};
6526290650Shselasky
6527290650Shselaskystruct mlx5_ifc_alloc_flow_counter_in_bits {
6528290650Shselasky	u8         opcode[0x10];
6529290650Shselasky	u8         reserved_0[0x10];
6530290650Shselasky
6531290650Shselasky	u8         reserved_1[0x10];
6532290650Shselasky	u8         op_mod[0x10];
6533290650Shselasky
6534290650Shselasky	u8         reserved_2[0x40];
6535290650Shselasky};
6536290650Shselasky
6537290650Shselaskystruct mlx5_ifc_add_vxlan_udp_dport_out_bits {
6538290650Shselasky	u8         status[0x8];
6539290650Shselasky	u8         reserved_0[0x18];
6540290650Shselasky
6541290650Shselasky	u8         syndrome[0x20];
6542290650Shselasky
6543290650Shselasky	u8         reserved_1[0x40];
6544290650Shselasky};
6545290650Shselasky
6546290650Shselaskystruct mlx5_ifc_add_vxlan_udp_dport_in_bits {
6547290650Shselasky	u8         opcode[0x10];
6548290650Shselasky	u8         reserved_0[0x10];
6549290650Shselasky
6550290650Shselasky	u8         reserved_1[0x10];
6551290650Shselasky	u8         op_mod[0x10];
6552290650Shselasky
6553290650Shselasky	u8         reserved_2[0x20];
6554290650Shselasky
6555290650Shselasky	u8         reserved_3[0x10];
6556290650Shselasky	u8         vxlan_udp_port[0x10];
6557290650Shselasky};
6558290650Shselasky
6559290650Shselaskystruct mlx5_ifc_activate_tracer_out_bits {
6560290650Shselasky	u8         status[0x8];
6561290650Shselasky	u8         reserved_0[0x18];
6562290650Shselasky
6563290650Shselasky	u8         syndrome[0x20];
6564290650Shselasky
6565290650Shselasky	u8         reserved_1[0x40];
6566290650Shselasky};
6567290650Shselasky
6568290650Shselaskystruct mlx5_ifc_activate_tracer_in_bits {
6569290650Shselasky	u8         opcode[0x10];
6570290650Shselasky	u8         reserved_0[0x10];
6571290650Shselasky
6572290650Shselasky	u8         reserved_1[0x10];
6573290650Shselasky	u8         op_mod[0x10];
6574290650Shselasky
6575290650Shselasky	u8         mkey[0x20];
6576290650Shselasky
6577290650Shselasky	u8         reserved_2[0x20];
6578290650Shselasky};
6579290650Shselasky
6580290650Shselaskystruct mlx5_ifc_access_register_out_bits {
6581290650Shselasky	u8         status[0x8];
6582290650Shselasky	u8         reserved_0[0x18];
6583290650Shselasky
6584290650Shselasky	u8         syndrome[0x20];
6585290650Shselasky
6586290650Shselasky	u8         reserved_1[0x40];
6587290650Shselasky
6588290650Shselasky	u8         register_data[0][0x20];
6589290650Shselasky};
6590290650Shselasky
6591290650Shselaskyenum {
6592290650Shselasky	MLX5_ACCESS_REGISTER_IN_OP_MOD_WRITE  = 0x0,
6593290650Shselasky	MLX5_ACCESS_REGISTER_IN_OP_MOD_READ   = 0x1,
6594290650Shselasky};
6595290650Shselasky
6596290650Shselaskystruct mlx5_ifc_access_register_in_bits {
6597290650Shselasky	u8         opcode[0x10];
6598290650Shselasky	u8         reserved_0[0x10];
6599290650Shselasky
6600290650Shselasky	u8         reserved_1[0x10];
6601290650Shselasky	u8         op_mod[0x10];
6602290650Shselasky
6603290650Shselasky	u8         reserved_2[0x10];
6604290650Shselasky	u8         register_id[0x10];
6605290650Shselasky
6606290650Shselasky	u8         argument[0x20];
6607290650Shselasky
6608290650Shselasky	u8         register_data[0][0x20];
6609290650Shselasky};
6610290650Shselasky
6611290650Shselaskystruct mlx5_ifc_sltp_reg_bits {
6612290650Shselasky	u8         status[0x4];
6613290650Shselasky	u8         version[0x4];
6614290650Shselasky	u8         local_port[0x8];
6615290650Shselasky	u8         pnat[0x2];
6616290650Shselasky	u8         reserved_0[0x2];
6617290650Shselasky	u8         lane[0x4];
6618290650Shselasky	u8         reserved_1[0x8];
6619290650Shselasky
6620290650Shselasky	u8         reserved_2[0x20];
6621290650Shselasky
6622290650Shselasky	u8         reserved_3[0x7];
6623290650Shselasky	u8         polarity[0x1];
6624290650Shselasky	u8         ob_tap0[0x8];
6625290650Shselasky	u8         ob_tap1[0x8];
6626290650Shselasky	u8         ob_tap2[0x8];
6627290650Shselasky
6628290650Shselasky	u8         reserved_4[0xc];
6629290650Shselasky	u8         ob_preemp_mode[0x4];
6630290650Shselasky	u8         ob_reg[0x8];
6631290650Shselasky	u8         ob_bias[0x8];
6632290650Shselasky
6633290650Shselasky	u8         reserved_5[0x20];
6634290650Shselasky};
6635290650Shselasky
6636290650Shselaskystruct mlx5_ifc_slrp_reg_bits {
6637290650Shselasky	u8         status[0x4];
6638290650Shselasky	u8         version[0x4];
6639290650Shselasky	u8         local_port[0x8];
6640290650Shselasky	u8         pnat[0x2];
6641290650Shselasky	u8         reserved_0[0x2];
6642290650Shselasky	u8         lane[0x4];
6643290650Shselasky	u8         reserved_1[0x8];
6644290650Shselasky
6645290650Shselasky	u8         ib_sel[0x2];
6646290650Shselasky	u8         reserved_2[0x11];
6647290650Shselasky	u8         dp_sel[0x1];
6648290650Shselasky	u8         dp90sel[0x4];
6649290650Shselasky	u8         mix90phase[0x8];
6650290650Shselasky
6651290650Shselasky	u8         ffe_tap0[0x8];
6652290650Shselasky	u8         ffe_tap1[0x8];
6653290650Shselasky	u8         ffe_tap2[0x8];
6654290650Shselasky	u8         ffe_tap3[0x8];
6655290650Shselasky
6656290650Shselasky	u8         ffe_tap4[0x8];
6657290650Shselasky	u8         ffe_tap5[0x8];
6658290650Shselasky	u8         ffe_tap6[0x8];
6659290650Shselasky	u8         ffe_tap7[0x8];
6660290650Shselasky
6661290650Shselasky	u8         ffe_tap8[0x8];
6662290650Shselasky	u8         mixerbias_tap_amp[0x8];
6663290650Shselasky	u8         reserved_3[0x7];
6664290650Shselasky	u8         ffe_tap_en[0x9];
6665290650Shselasky
6666290650Shselasky	u8         ffe_tap_offset0[0x8];
6667290650Shselasky	u8         ffe_tap_offset1[0x8];
6668290650Shselasky	u8         slicer_offset0[0x10];
6669290650Shselasky
6670290650Shselasky	u8         mixer_offset0[0x10];
6671290650Shselasky	u8         mixer_offset1[0x10];
6672290650Shselasky
6673290650Shselasky	u8         mixerbgn_inp[0x8];
6674290650Shselasky	u8         mixerbgn_inn[0x8];
6675290650Shselasky	u8         mixerbgn_refp[0x8];
6676290650Shselasky	u8         mixerbgn_refn[0x8];
6677290650Shselasky
6678290650Shselasky	u8         sel_slicer_lctrl_h[0x1];
6679290650Shselasky	u8         sel_slicer_lctrl_l[0x1];
6680290650Shselasky	u8         reserved_4[0x1];
6681290650Shselasky	u8         ref_mixer_vreg[0x5];
6682290650Shselasky	u8         slicer_gctrl[0x8];
6683290650Shselasky	u8         lctrl_input[0x8];
6684290650Shselasky	u8         mixer_offset_cm1[0x8];
6685290650Shselasky
6686290650Shselasky	u8         common_mode[0x6];
6687290650Shselasky	u8         reserved_5[0x1];
6688290650Shselasky	u8         mixer_offset_cm0[0x9];
6689290650Shselasky	u8         reserved_6[0x7];
6690290650Shselasky	u8         slicer_offset_cm[0x9];
6691290650Shselasky};
6692290650Shselasky
6693290650Shselaskystruct mlx5_ifc_slrg_reg_bits {
6694290650Shselasky	u8         status[0x4];
6695290650Shselasky	u8         version[0x4];
6696290650Shselasky	u8         local_port[0x8];
6697290650Shselasky	u8         pnat[0x2];
6698290650Shselasky	u8         reserved_0[0x2];
6699290650Shselasky	u8         lane[0x4];
6700290650Shselasky	u8         reserved_1[0x8];
6701290650Shselasky
6702290650Shselasky	u8         time_to_link_up[0x10];
6703290650Shselasky	u8         reserved_2[0xc];
6704290650Shselasky	u8         grade_lane_speed[0x4];
6705290650Shselasky
6706290650Shselasky	u8         grade_version[0x8];
6707290650Shselasky	u8         grade[0x18];
6708290650Shselasky
6709290650Shselasky	u8         reserved_3[0x4];
6710290650Shselasky	u8         height_grade_type[0x4];
6711290650Shselasky	u8         height_grade[0x18];
6712290650Shselasky
6713290650Shselasky	u8         height_dz[0x10];
6714290650Shselasky	u8         height_dv[0x10];
6715290650Shselasky
6716290650Shselasky	u8         reserved_4[0x10];
6717290650Shselasky	u8         height_sigma[0x10];
6718290650Shselasky
6719290650Shselasky	u8         reserved_5[0x20];
6720290650Shselasky
6721290650Shselasky	u8         reserved_6[0x4];
6722290650Shselasky	u8         phase_grade_type[0x4];
6723290650Shselasky	u8         phase_grade[0x18];
6724290650Shselasky
6725290650Shselasky	u8         reserved_7[0x8];
6726290650Shselasky	u8         phase_eo_pos[0x8];
6727290650Shselasky	u8         reserved_8[0x8];
6728290650Shselasky	u8         phase_eo_neg[0x8];
6729290650Shselasky
6730290650Shselasky	u8         ffe_set_tested[0x10];
6731290650Shselasky	u8         test_errors_per_lane[0x10];
6732290650Shselasky};
6733290650Shselasky
6734290650Shselaskystruct mlx5_ifc_pvlc_reg_bits {
6735290650Shselasky	u8         reserved_0[0x8];
6736290650Shselasky	u8         local_port[0x8];
6737290650Shselasky	u8         reserved_1[0x10];
6738290650Shselasky
6739290650Shselasky	u8         reserved_2[0x1c];
6740290650Shselasky	u8         vl_hw_cap[0x4];
6741290650Shselasky
6742290650Shselasky	u8         reserved_3[0x1c];
6743290650Shselasky	u8         vl_admin[0x4];
6744290650Shselasky
6745290650Shselasky	u8         reserved_4[0x1c];
6746290650Shselasky	u8         vl_operational[0x4];
6747290650Shselasky};
6748290650Shselasky
6749290650Shselaskystruct mlx5_ifc_pude_reg_bits {
6750290650Shselasky	u8         swid[0x8];
6751290650Shselasky	u8         local_port[0x8];
6752290650Shselasky	u8         reserved_0[0x4];
6753290650Shselasky	u8         admin_status[0x4];
6754290650Shselasky	u8         reserved_1[0x4];
6755290650Shselasky	u8         oper_status[0x4];
6756290650Shselasky
6757290650Shselasky	u8         reserved_2[0x60];
6758290650Shselasky};
6759290650Shselasky
6760290650Shselaskyenum {
6761290650Shselasky	MLX5_PTYS_REG_PROTO_MASK_INFINIBAND  = 0x1,
6762290650Shselasky	MLX5_PTYS_REG_PROTO_MASK_ETHERNET    = 0x4,
6763290650Shselasky};
6764290650Shselasky
6765290650Shselaskystruct mlx5_ifc_ptys_reg_bits {
6766290650Shselasky	u8         reserved_0[0x8];
6767290650Shselasky	u8         local_port[0x8];
6768290650Shselasky	u8         reserved_1[0xd];
6769290650Shselasky	u8         proto_mask[0x3];
6770290650Shselasky
6771290650Shselasky	u8         reserved_2[0x40];
6772290650Shselasky
6773290650Shselasky	u8         eth_proto_capability[0x20];
6774290650Shselasky
6775290650Shselasky	u8         ib_link_width_capability[0x10];
6776290650Shselasky	u8         ib_proto_capability[0x10];
6777290650Shselasky
6778290650Shselasky	u8         reserved_3[0x20];
6779290650Shselasky
6780290650Shselasky	u8         eth_proto_admin[0x20];
6781290650Shselasky
6782290650Shselasky	u8         ib_link_width_admin[0x10];
6783290650Shselasky	u8         ib_proto_admin[0x10];
6784290650Shselasky
6785290650Shselasky	u8         reserved_4[0x20];
6786290650Shselasky
6787290650Shselasky	u8         eth_proto_oper[0x20];
6788290650Shselasky
6789290650Shselasky	u8         ib_link_width_oper[0x10];
6790290650Shselasky	u8         ib_proto_oper[0x10];
6791290650Shselasky
6792290650Shselasky	u8         reserved_5[0x20];
6793290650Shselasky
6794290650Shselasky	u8         eth_proto_lp_advertise[0x20];
6795290650Shselasky
6796290650Shselasky	u8         reserved_6[0x60];
6797290650Shselasky};
6798290650Shselasky
6799290650Shselaskystruct mlx5_ifc_ptas_reg_bits {
6800290650Shselasky	u8         reserved_0[0x20];
6801290650Shselasky
6802290650Shselasky	u8         algorithm_options[0x10];
6803290650Shselasky	u8         reserved_1[0x4];
6804290650Shselasky	u8         repetitions_mode[0x4];
6805290650Shselasky	u8         num_of_repetitions[0x8];
6806290650Shselasky
6807290650Shselasky	u8         grade_version[0x8];
6808290650Shselasky	u8         height_grade_type[0x4];
6809290650Shselasky	u8         phase_grade_type[0x4];
6810290650Shselasky	u8         height_grade_weight[0x8];
6811290650Shselasky	u8         phase_grade_weight[0x8];
6812290650Shselasky
6813290650Shselasky	u8         gisim_measure_bits[0x10];
6814290650Shselasky	u8         adaptive_tap_measure_bits[0x10];
6815290650Shselasky
6816290650Shselasky	u8         ber_bath_high_error_threshold[0x10];
6817290650Shselasky	u8         ber_bath_mid_error_threshold[0x10];
6818290650Shselasky
6819290650Shselasky	u8         ber_bath_low_error_threshold[0x10];
6820290650Shselasky	u8         one_ratio_high_threshold[0x10];
6821290650Shselasky
6822290650Shselasky	u8         one_ratio_high_mid_threshold[0x10];
6823290650Shselasky	u8         one_ratio_low_mid_threshold[0x10];
6824290650Shselasky
6825290650Shselasky	u8         one_ratio_low_threshold[0x10];
6826290650Shselasky	u8         ndeo_error_threshold[0x10];
6827290650Shselasky
6828290650Shselasky	u8         mixer_offset_step_size[0x10];
6829290650Shselasky	u8         reserved_2[0x8];
6830290650Shselasky	u8         mix90_phase_for_voltage_bath[0x8];
6831290650Shselasky
6832290650Shselasky	u8         mixer_offset_start[0x10];
6833290650Shselasky	u8         mixer_offset_end[0x10];
6834290650Shselasky
6835290650Shselasky	u8         reserved_3[0x15];
6836290650Shselasky	u8         ber_test_time[0xb];
6837290650Shselasky};
6838290650Shselasky
6839290650Shselaskystruct mlx5_ifc_pspa_reg_bits {
6840290650Shselasky	u8         swid[0x8];
6841290650Shselasky	u8         local_port[0x8];
6842290650Shselasky	u8         sub_port[0x8];
6843290650Shselasky	u8         reserved_0[0x8];
6844290650Shselasky
6845290650Shselasky	u8         reserved_1[0x20];
6846290650Shselasky};
6847290650Shselasky
6848290650Shselaskystruct mlx5_ifc_ppsc_reg_bits {
6849290650Shselasky	u8         reserved_0[0x8];
6850290650Shselasky	u8         local_port[0x8];
6851290650Shselasky	u8         reserved_1[0x10];
6852290650Shselasky
6853290650Shselasky	u8         reserved_2[0x60];
6854290650Shselasky
6855290650Shselasky	u8         reserved_3[0x1c];
6856290650Shselasky	u8         wrps_admin[0x4];
6857290650Shselasky
6858290650Shselasky	u8         reserved_4[0x1c];
6859290650Shselasky	u8         wrps_status[0x4];
6860290650Shselasky
6861290650Shselasky	u8         up_th_vld[0x1];
6862290650Shselasky	u8         down_th_vld[0x1];
6863290650Shselasky	u8         reserved_5[0x6];
6864290650Shselasky	u8         up_threshold[0x8];
6865290650Shselasky	u8         reserved_6[0x8];
6866290650Shselasky	u8         down_threshold[0x8];
6867290650Shselasky
6868290650Shselasky	u8         reserved_7[0x20];
6869290650Shselasky
6870290650Shselasky	u8         reserved_8[0x1c];
6871290650Shselasky	u8         srps_admin[0x4];
6872290650Shselasky
6873290650Shselasky	u8         reserved_9[0x60];
6874290650Shselasky};
6875290650Shselasky
6876290650Shselaskystruct mlx5_ifc_pplr_reg_bits {
6877290650Shselasky	u8         reserved_0[0x8];
6878290650Shselasky	u8         local_port[0x8];
6879290650Shselasky	u8         reserved_1[0x10];
6880290650Shselasky
6881290650Shselasky	u8         reserved_2[0x8];
6882290650Shselasky	u8         lb_cap[0x8];
6883290650Shselasky	u8         reserved_3[0x8];
6884290650Shselasky	u8         lb_en[0x8];
6885290650Shselasky};
6886290650Shselasky
6887290650Shselaskystruct mlx5_ifc_pplm_reg_bits {
6888290650Shselasky	u8         reserved_0[0x8];
6889290650Shselasky	u8         local_port[0x8];
6890290650Shselasky	u8         reserved_1[0x10];
6891290650Shselasky
6892290650Shselasky	u8         reserved_2[0x20];
6893290650Shselasky
6894290650Shselasky	u8         port_profile_mode[0x8];
6895290650Shselasky	u8         static_port_profile[0x8];
6896290650Shselasky	u8         active_port_profile[0x8];
6897290650Shselasky	u8         reserved_3[0x8];
6898290650Shselasky
6899290650Shselasky	u8         retransmission_active[0x8];
6900290650Shselasky	u8         fec_mode_active[0x18];
6901290650Shselasky
6902290650Shselasky	u8         reserved_4[0x10];
6903290650Shselasky	u8         v_100g_fec_override_cap[0x4];
6904290650Shselasky	u8         v_50g_fec_override_cap[0x4];
6905290650Shselasky	u8         v_25g_fec_override_cap[0x4];
6906290650Shselasky	u8         v_10g_40g_fec_override_cap[0x4];
6907290650Shselasky
6908290650Shselasky	u8         reserved_5[0x10];
6909290650Shselasky	u8         v_100g_fec_override_admin[0x4];
6910290650Shselasky	u8         v_50g_fec_override_admin[0x4];
6911290650Shselasky	u8         v_25g_fec_override_admin[0x4];
6912290650Shselasky	u8         v_10g_40g_fec_override_admin[0x4];
6913290650Shselasky};
6914290650Shselasky
6915290650Shselaskystruct mlx5_ifc_ppll_reg_bits {
6916290650Shselasky	u8         num_pll_groups[0x8];
6917290650Shselasky	u8         pll_group[0x8];
6918290650Shselasky	u8         reserved_0[0x4];
6919290650Shselasky	u8         num_plls[0x4];
6920290650Shselasky	u8         reserved_1[0x8];
6921290650Shselasky
6922290650Shselasky	u8         reserved_2[0x1f];
6923290650Shselasky	u8         ae[0x1];
6924290650Shselasky
6925290650Shselasky	u8         pll_status[4][0x40];
6926290650Shselasky};
6927290650Shselasky
6928290650Shselaskystruct mlx5_ifc_ppad_reg_bits {
6929290650Shselasky	u8         reserved_0[0x3];
6930290650Shselasky	u8         single_mac[0x1];
6931290650Shselasky	u8         reserved_1[0x4];
6932290650Shselasky	u8         local_port[0x8];
6933290650Shselasky	u8         mac_47_32[0x10];
6934290650Shselasky
6935290650Shselasky	u8         mac_31_0[0x20];
6936290650Shselasky
6937290650Shselasky	u8         reserved_2[0x40];
6938290650Shselasky};
6939290650Shselasky
6940290650Shselaskystruct mlx5_ifc_pmtu_reg_bits {
6941290650Shselasky	u8         reserved_0[0x8];
6942290650Shselasky	u8         local_port[0x8];
6943290650Shselasky	u8         reserved_1[0x10];
6944290650Shselasky
6945290650Shselasky	u8         max_mtu[0x10];
6946290650Shselasky	u8         reserved_2[0x10];
6947290650Shselasky
6948290650Shselasky	u8         admin_mtu[0x10];
6949290650Shselasky	u8         reserved_3[0x10];
6950290650Shselasky
6951290650Shselasky	u8         oper_mtu[0x10];
6952290650Shselasky	u8         reserved_4[0x10];
6953290650Shselasky};
6954290650Shselasky
6955290650Shselaskystruct mlx5_ifc_pmpr_reg_bits {
6956290650Shselasky	u8         reserved_0[0x8];
6957290650Shselasky	u8         module[0x8];
6958290650Shselasky	u8         reserved_1[0x10];
6959290650Shselasky
6960290650Shselasky	u8         reserved_2[0x18];
6961290650Shselasky	u8         attenuation_5g[0x8];
6962290650Shselasky
6963290650Shselasky	u8         reserved_3[0x18];
6964290650Shselasky	u8         attenuation_7g[0x8];
6965290650Shselasky
6966290650Shselasky	u8         reserved_4[0x18];
6967290650Shselasky	u8         attenuation_12g[0x8];
6968290650Shselasky};
6969290650Shselasky
6970290650Shselaskystruct mlx5_ifc_pmpe_reg_bits {
6971290650Shselasky	u8         reserved_0[0x8];
6972290650Shselasky	u8         module[0x8];
6973290650Shselasky	u8         reserved_1[0xc];
6974290650Shselasky	u8         module_status[0x4];
6975290650Shselasky
6976290650Shselasky	u8         reserved_2[0x14];
6977290650Shselasky	u8         error_type[0x4];
6978290650Shselasky	u8         reserved_3[0x8];
6979290650Shselasky
6980290650Shselasky	u8         reserved_4[0x40];
6981290650Shselasky};
6982290650Shselasky
6983290650Shselaskystruct mlx5_ifc_pmpc_reg_bits {
6984290650Shselasky	u8         module_state_updated[32][0x8];
6985290650Shselasky};
6986290650Shselasky
6987290650Shselaskystruct mlx5_ifc_pmlpn_reg_bits {
6988290650Shselasky	u8         reserved_0[0x4];
6989290650Shselasky	u8         mlpn_status[0x4];
6990290650Shselasky	u8         local_port[0x8];
6991290650Shselasky	u8         reserved_1[0x10];
6992290650Shselasky
6993290650Shselasky	u8         e[0x1];
6994290650Shselasky	u8         reserved_2[0x1f];
6995290650Shselasky};
6996290650Shselasky
6997290650Shselaskystruct mlx5_ifc_pmlp_reg_bits {
6998290650Shselasky	u8         rxtx[0x1];
6999290650Shselasky	u8         reserved_0[0x7];
7000290650Shselasky	u8         local_port[0x8];
7001290650Shselasky	u8         reserved_1[0x8];
7002290650Shselasky	u8         width[0x8];
7003290650Shselasky
7004290650Shselasky	u8         lane0_module_mapping[0x20];
7005290650Shselasky
7006290650Shselasky	u8         lane1_module_mapping[0x20];
7007290650Shselasky
7008290650Shselasky	u8         lane2_module_mapping[0x20];
7009290650Shselasky
7010290650Shselasky	u8         lane3_module_mapping[0x20];
7011290650Shselasky
7012290650Shselasky	u8         reserved_2[0x160];
7013290650Shselasky};
7014290650Shselasky
7015290650Shselaskystruct mlx5_ifc_pmaos_reg_bits {
7016290650Shselasky	u8         reserved_0[0x8];
7017290650Shselasky	u8         module[0x8];
7018290650Shselasky	u8         reserved_1[0x4];
7019290650Shselasky	u8         admin_status[0x4];
7020290650Shselasky	u8         reserved_2[0x4];
7021290650Shselasky	u8         oper_status[0x4];
7022290650Shselasky
7023290650Shselasky	u8         ase[0x1];
7024290650Shselasky	u8         ee[0x1];
7025290650Shselasky	u8         reserved_3[0x12];
7026290650Shselasky	u8         error_type[0x4];
7027290650Shselasky	u8         reserved_4[0x6];
7028290650Shselasky	u8         e[0x2];
7029290650Shselasky
7030290650Shselasky	u8         reserved_5[0x40];
7031290650Shselasky};
7032290650Shselasky
7033290650Shselaskystruct mlx5_ifc_plpc_reg_bits {
7034290650Shselasky	u8         reserved_0[0x4];
7035290650Shselasky	u8         profile_id[0xc];
7036290650Shselasky	u8         reserved_1[0x4];
7037290650Shselasky	u8         proto_mask[0x4];
7038290650Shselasky	u8         reserved_2[0x8];
7039290650Shselasky
7040290650Shselasky	u8         reserved_3[0x10];
7041290650Shselasky	u8         lane_speed[0x10];
7042290650Shselasky
7043290650Shselasky	u8         reserved_4[0x17];
7044290650Shselasky	u8         lpbf[0x1];
7045290650Shselasky	u8         fec_mode_policy[0x8];
7046290650Shselasky
7047290650Shselasky	u8         retransmission_capability[0x8];
7048290650Shselasky	u8         fec_mode_capability[0x18];
7049290650Shselasky
7050290650Shselasky	u8         retransmission_support_admin[0x8];
7051290650Shselasky	u8         fec_mode_support_admin[0x18];
7052290650Shselasky
7053290650Shselasky	u8         retransmission_request_admin[0x8];
7054290650Shselasky	u8         fec_mode_request_admin[0x18];
7055290650Shselasky
7056290650Shselasky	u8         reserved_5[0x80];
7057290650Shselasky};
7058290650Shselasky
7059290650Shselaskystruct mlx5_ifc_pll_status_data_bits {
7060290650Shselasky	u8         reserved_0[0x1];
7061290650Shselasky	u8         lock_cal[0x1];
7062290650Shselasky	u8         lock_status[0x2];
7063290650Shselasky	u8         reserved_1[0x2];
7064290650Shselasky	u8         algo_f_ctrl[0xa];
7065290650Shselasky	u8         analog_algo_num_var[0x6];
7066290650Shselasky	u8         f_ctrl_measure[0xa];
7067290650Shselasky
7068290650Shselasky	u8         reserved_2[0x2];
7069290650Shselasky	u8         analog_var[0x6];
7070290650Shselasky	u8         reserved_3[0x2];
7071290650Shselasky	u8         high_var[0x6];
7072290650Shselasky	u8         reserved_4[0x2];
7073290650Shselasky	u8         low_var[0x6];
7074290650Shselasky	u8         reserved_5[0x2];
7075290650Shselasky	u8         mid_val[0x6];
7076290650Shselasky};
7077290650Shselasky
7078290650Shselaskystruct mlx5_ifc_plib_reg_bits {
7079290650Shselasky	u8         reserved_0[0x8];
7080290650Shselasky	u8         local_port[0x8];
7081290650Shselasky	u8         reserved_1[0x8];
7082290650Shselasky	u8         ib_port[0x8];
7083290650Shselasky
7084290650Shselasky	u8         reserved_2[0x60];
7085290650Shselasky};
7086290650Shselasky
7087290650Shselaskystruct mlx5_ifc_plbf_reg_bits {
7088290650Shselasky	u8         reserved_0[0x8];
7089290650Shselasky	u8         local_port[0x8];
7090290650Shselasky	u8         reserved_1[0xd];
7091290650Shselasky	u8         lbf_mode[0x3];
7092290650Shselasky
7093290650Shselasky	u8         reserved_2[0x20];
7094290650Shselasky};
7095290650Shselasky
7096290650Shselaskystruct mlx5_ifc_pipg_reg_bits {
7097290650Shselasky	u8         reserved_0[0x8];
7098290650Shselasky	u8         local_port[0x8];
7099290650Shselasky	u8         reserved_1[0x10];
7100290650Shselasky
7101290650Shselasky	u8         dic[0x1];
7102290650Shselasky	u8         reserved_2[0x19];
7103290650Shselasky	u8         ipg[0x4];
7104290650Shselasky	u8         reserved_3[0x2];
7105290650Shselasky};
7106290650Shselasky
7107290650Shselaskystruct mlx5_ifc_pifr_reg_bits {
7108290650Shselasky	u8         reserved_0[0x8];
7109290650Shselasky	u8         local_port[0x8];
7110290650Shselasky	u8         reserved_1[0x10];
7111290650Shselasky
7112290650Shselasky	u8         reserved_2[0xe0];
7113290650Shselasky
7114290650Shselasky	u8         port_filter[8][0x20];
7115290650Shselasky
7116290650Shselasky	u8         port_filter_update_en[8][0x20];
7117290650Shselasky};
7118290650Shselasky
7119290650Shselaskystruct mlx5_ifc_phys_layer_cntrs_bits {
7120290650Shselasky	u8         time_since_last_clear_high[0x20];
7121290650Shselasky
7122290650Shselasky	u8         time_since_last_clear_low[0x20];
7123290650Shselasky
7124290650Shselasky	u8         symbol_errors_high[0x20];
7125290650Shselasky
7126290650Shselasky	u8         symbol_errors_low[0x20];
7127290650Shselasky
7128290650Shselasky	u8         sync_headers_errors_high[0x20];
7129290650Shselasky
7130290650Shselasky	u8         sync_headers_errors_low[0x20];
7131290650Shselasky
7132290650Shselasky	u8         edpl_bip_errors_lane0_high[0x20];
7133290650Shselasky
7134290650Shselasky	u8         edpl_bip_errors_lane0_low[0x20];
7135290650Shselasky
7136290650Shselasky	u8         edpl_bip_errors_lane1_high[0x20];
7137290650Shselasky
7138290650Shselasky	u8         edpl_bip_errors_lane1_low[0x20];
7139290650Shselasky
7140290650Shselasky	u8         edpl_bip_errors_lane2_high[0x20];
7141290650Shselasky
7142290650Shselasky	u8         edpl_bip_errors_lane2_low[0x20];
7143290650Shselasky
7144290650Shselasky	u8         edpl_bip_errors_lane3_high[0x20];
7145290650Shselasky
7146290650Shselasky	u8         edpl_bip_errors_lane3_low[0x20];
7147290650Shselasky
7148290650Shselasky	u8         fc_fec_corrected_blocks_lane0_high[0x20];
7149290650Shselasky
7150290650Shselasky	u8         fc_fec_corrected_blocks_lane0_low[0x20];
7151290650Shselasky
7152290650Shselasky	u8         fc_fec_corrected_blocks_lane1_high[0x20];
7153290650Shselasky
7154290650Shselasky	u8         fc_fec_corrected_blocks_lane1_low[0x20];
7155290650Shselasky
7156290650Shselasky	u8         fc_fec_corrected_blocks_lane2_high[0x20];
7157290650Shselasky
7158290650Shselasky	u8         fc_fec_corrected_blocks_lane2_low[0x20];
7159290650Shselasky
7160290650Shselasky	u8         fc_fec_corrected_blocks_lane3_high[0x20];
7161290650Shselasky
7162290650Shselasky	u8         fc_fec_corrected_blocks_lane3_low[0x20];
7163290650Shselasky
7164290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane0_high[0x20];
7165290650Shselasky
7166290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane0_low[0x20];
7167290650Shselasky
7168290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane1_high[0x20];
7169290650Shselasky
7170290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane1_low[0x20];
7171290650Shselasky
7172290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane2_high[0x20];
7173290650Shselasky
7174290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane2_low[0x20];
7175290650Shselasky
7176290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane3_high[0x20];
7177290650Shselasky
7178290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane3_low[0x20];
7179290650Shselasky
7180290650Shselasky	u8         rs_fec_corrected_blocks_high[0x20];
7181290650Shselasky
7182290650Shselasky	u8         rs_fec_corrected_blocks_low[0x20];
7183290650Shselasky
7184290650Shselasky	u8         rs_fec_uncorrectable_blocks_high[0x20];
7185290650Shselasky
7186290650Shselasky	u8         rs_fec_uncorrectable_blocks_low[0x20];
7187290650Shselasky
7188290650Shselasky	u8         rs_fec_no_errors_blocks_high[0x20];
7189290650Shselasky
7190290650Shselasky	u8         rs_fec_no_errors_blocks_low[0x20];
7191290650Shselasky
7192290650Shselasky	u8         rs_fec_single_error_blocks_high[0x20];
7193290650Shselasky
7194290650Shselasky	u8         rs_fec_single_error_blocks_low[0x20];
7195290650Shselasky
7196290650Shselasky	u8         rs_fec_corrected_symbols_total_high[0x20];
7197290650Shselasky
7198290650Shselasky	u8         rs_fec_corrected_symbols_total_low[0x20];
7199290650Shselasky
7200290650Shselasky	u8         rs_fec_corrected_symbols_lane0_high[0x20];
7201290650Shselasky
7202290650Shselasky	u8         rs_fec_corrected_symbols_lane0_low[0x20];
7203290650Shselasky
7204290650Shselasky	u8         rs_fec_corrected_symbols_lane1_high[0x20];
7205290650Shselasky
7206290650Shselasky	u8         rs_fec_corrected_symbols_lane1_low[0x20];
7207290650Shselasky
7208290650Shselasky	u8         rs_fec_corrected_symbols_lane2_high[0x20];
7209290650Shselasky
7210290650Shselasky	u8         rs_fec_corrected_symbols_lane2_low[0x20];
7211290650Shselasky
7212290650Shselasky	u8         rs_fec_corrected_symbols_lane3_high[0x20];
7213290650Shselasky
7214290650Shselasky	u8         rs_fec_corrected_symbols_lane3_low[0x20];
7215290650Shselasky
7216290650Shselasky	u8         link_down_events[0x20];
7217290650Shselasky
7218290650Shselasky	u8         successful_recovery_events[0x20];
7219290650Shselasky
7220290650Shselasky	u8         reserved_0[0x180];
7221290650Shselasky};
7222290650Shselasky
7223290650Shselaskystruct mlx5_ifc_phrr_reg_bits {
7224290650Shselasky	u8         clr[0x1];
7225290650Shselasky	u8         reserved_0[0x7];
7226290650Shselasky	u8         local_port[0x8];
7227290650Shselasky	u8         reserved_1[0x10];
7228290650Shselasky
7229290650Shselasky	u8         hist_group[0x8];
7230290650Shselasky	u8         reserved_2[0x10];
7231290650Shselasky	u8         hist_id[0x8];
7232290650Shselasky
7233290650Shselasky	u8         reserved_3[0x40];
7234290650Shselasky
7235290650Shselasky	u8         time_since_last_clear_high[0x20];
7236290650Shselasky
7237290650Shselasky	u8         time_since_last_clear_low[0x20];
7238290650Shselasky
7239290650Shselasky	u8         bin[10][0x20];
7240290650Shselasky};
7241290650Shselasky
7242290650Shselaskystruct mlx5_ifc_phbr_for_prio_reg_bits {
7243290650Shselasky	u8         reserved_0[0x18];
7244290650Shselasky	u8         prio[0x8];
7245290650Shselasky};
7246290650Shselasky
7247290650Shselaskystruct mlx5_ifc_phbr_for_port_tclass_reg_bits {
7248290650Shselasky	u8         reserved_0[0x18];
7249290650Shselasky	u8         tclass[0x8];
7250290650Shselasky};
7251290650Shselasky
7252290650Shselaskystruct mlx5_ifc_phbr_binding_reg_bits {
7253290650Shselasky	u8         opcode[0x4];
7254290650Shselasky	u8         reserved_0[0x4];
7255290650Shselasky	u8         local_port[0x8];
7256290650Shselasky	u8         pnat[0x2];
7257290650Shselasky	u8         reserved_1[0xe];
7258290650Shselasky
7259290650Shselasky	u8         hist_group[0x8];
7260290650Shselasky	u8         reserved_2[0x10];
7261290650Shselasky	u8         hist_id[0x8];
7262290650Shselasky
7263290650Shselasky	u8         reserved_3[0x10];
7264290650Shselasky	u8         hist_type[0x10];
7265290650Shselasky
7266290650Shselasky	u8         hist_parameters[0x20];
7267290650Shselasky
7268290650Shselasky	u8         hist_min_value[0x20];
7269290650Shselasky
7270290650Shselasky	u8         hist_max_value[0x20];
7271290650Shselasky
7272290650Shselasky	u8         sample_time[0x20];
7273290650Shselasky};
7274290650Shselasky
7275290650Shselaskyenum {
7276290650Shselasky	MLX5_PFCC_REG_PPAN_DISABLED  = 0x0,
7277290650Shselasky	MLX5_PFCC_REG_PPAN_ENABLED   = 0x1,
7278290650Shselasky};
7279290650Shselasky
7280290650Shselaskystruct mlx5_ifc_pfcc_reg_bits {
7281290650Shselasky	u8         reserved_0[0x8];
7282290650Shselasky	u8         local_port[0x8];
7283290650Shselasky	u8         pnat[0x2];
7284290650Shselasky	u8         reserved_1[0xc];
7285290650Shselasky	u8         shl_cap[0x1];
7286290650Shselasky	u8         shl_opr[0x1];
7287290650Shselasky
7288290650Shselasky	u8         ppan[0x4];
7289290650Shselasky	u8         reserved_2[0x4];
7290290650Shselasky	u8         prio_mask_tx[0x8];
7291290650Shselasky	u8         reserved_3[0x8];
7292290650Shselasky	u8         prio_mask_rx[0x8];
7293290650Shselasky
7294290650Shselasky	u8         pptx[0x1];
7295290650Shselasky	u8         aptx[0x1];
7296290650Shselasky	u8         reserved_4[0x6];
7297290650Shselasky	u8         pfctx[0x8];
7298290650Shselasky	u8         reserved_5[0x10];
7299290650Shselasky
7300290650Shselasky	u8         pprx[0x1];
7301290650Shselasky	u8         aprx[0x1];
7302290650Shselasky	u8         reserved_6[0x6];
7303290650Shselasky	u8         pfcrx[0x8];
7304290650Shselasky	u8         reserved_7[0x10];
7305290650Shselasky
7306290650Shselasky	u8         reserved_8[0x80];
7307290650Shselasky};
7308290650Shselasky
7309290650Shselaskystruct mlx5_ifc_pelc_reg_bits {
7310290650Shselasky	u8         op[0x4];
7311290650Shselasky	u8         reserved_0[0x4];
7312290650Shselasky	u8         local_port[0x8];
7313290650Shselasky	u8         reserved_1[0x10];
7314290650Shselasky
7315290650Shselasky	u8         op_admin[0x8];
7316290650Shselasky	u8         op_capability[0x8];
7317290650Shselasky	u8         op_request[0x8];
7318290650Shselasky	u8         op_active[0x8];
7319290650Shselasky
7320290650Shselasky	u8         admin[0x40];
7321290650Shselasky
7322290650Shselasky	u8         capability[0x40];
7323290650Shselasky
7324290650Shselasky	u8         request[0x40];
7325290650Shselasky
7326290650Shselasky	u8         active[0x40];
7327290650Shselasky
7328290650Shselasky	u8         reserved_2[0x80];
7329290650Shselasky};
7330290650Shselasky
7331290650Shselaskystruct mlx5_ifc_peir_reg_bits {
7332290650Shselasky	u8         reserved_0[0x8];
7333290650Shselasky	u8         local_port[0x8];
7334290650Shselasky	u8         reserved_1[0x10];
7335290650Shselasky
7336290650Shselasky	u8         reserved_2[0xc];
7337290650Shselasky	u8         error_count[0x4];
7338290650Shselasky	u8         reserved_3[0x10];
7339290650Shselasky
7340290650Shselasky	u8         reserved_4[0xc];
7341290650Shselasky	u8         lane[0x4];
7342290650Shselasky	u8         reserved_5[0x8];
7343290650Shselasky	u8         error_type[0x8];
7344290650Shselasky};
7345290650Shselasky
7346290650Shselaskystruct mlx5_ifc_pcap_reg_bits {
7347290650Shselasky	u8         reserved_0[0x8];
7348290650Shselasky	u8         local_port[0x8];
7349290650Shselasky	u8         reserved_1[0x10];
7350290650Shselasky
7351290650Shselasky	u8         port_capability_mask[4][0x20];
7352290650Shselasky};
7353290650Shselasky
7354290650Shselaskystruct mlx5_ifc_pbmc_reg_bits {
7355290650Shselasky	u8         reserved_0[0x8];
7356290650Shselasky	u8         local_port[0x8];
7357290650Shselasky	u8         reserved_1[0x10];
7358290650Shselasky
7359290650Shselasky	u8         xoff_timer_value[0x10];
7360290650Shselasky	u8         xoff_refresh[0x10];
7361290650Shselasky
7362290650Shselasky	u8         reserved_2[0x10];
7363290650Shselasky	u8         port_buffer_size[0x10];
7364290650Shselasky
7365290650Shselasky	struct mlx5_ifc_bufferx_reg_bits buffer[10];
7366290650Shselasky
7367290650Shselasky	u8         reserved_3[0x40];
7368290650Shselasky
7369290650Shselasky	u8         port_shared_buffer[0x40];
7370290650Shselasky};
7371290650Shselasky
7372290650Shselaskystruct mlx5_ifc_paos_reg_bits {
7373290650Shselasky	u8         swid[0x8];
7374290650Shselasky	u8         local_port[0x8];
7375290650Shselasky	u8         reserved_0[0x4];
7376290650Shselasky	u8         admin_status[0x4];
7377290650Shselasky	u8         reserved_1[0x4];
7378290650Shselasky	u8         oper_status[0x4];
7379290650Shselasky
7380290650Shselasky	u8         ase[0x1];
7381290650Shselasky	u8         ee[0x1];
7382290650Shselasky	u8         reserved_2[0x1c];
7383290650Shselasky	u8         e[0x2];
7384290650Shselasky
7385290650Shselasky	u8         reserved_3[0x40];
7386290650Shselasky};
7387290650Shselasky
7388290650Shselaskystruct mlx5_ifc_pamp_reg_bits {
7389290650Shselasky	u8         reserved_0[0x8];
7390290650Shselasky	u8         opamp_group[0x8];
7391290650Shselasky	u8         reserved_1[0xc];
7392290650Shselasky	u8         opamp_group_type[0x4];
7393290650Shselasky
7394290650Shselasky	u8         start_index[0x10];
7395290650Shselasky	u8         reserved_2[0x4];
7396290650Shselasky	u8         num_of_indices[0xc];
7397290650Shselasky
7398290650Shselasky	u8         index_data[18][0x10];
7399290650Shselasky};
7400290650Shselasky
7401290650Shselaskystruct mlx5_ifc_link_level_retrans_cntr_grp_date_bits {
7402290650Shselasky	u8         llr_rx_cells_high[0x20];
7403290650Shselasky
7404290650Shselasky	u8         llr_rx_cells_low[0x20];
7405290650Shselasky
7406290650Shselasky	u8         llr_rx_error_high[0x20];
7407290650Shselasky
7408290650Shselasky	u8         llr_rx_error_low[0x20];
7409290650Shselasky
7410290650Shselasky	u8         llr_rx_crc_error_high[0x20];
7411290650Shselasky
7412290650Shselasky	u8         llr_rx_crc_error_low[0x20];
7413290650Shselasky
7414290650Shselasky	u8         llr_tx_cells_high[0x20];
7415290650Shselasky
7416290650Shselasky	u8         llr_tx_cells_low[0x20];
7417290650Shselasky
7418290650Shselasky	u8         llr_tx_ret_cells_high[0x20];
7419290650Shselasky
7420290650Shselasky	u8         llr_tx_ret_cells_low[0x20];
7421290650Shselasky
7422290650Shselasky	u8         llr_tx_ret_events_high[0x20];
7423290650Shselasky
7424290650Shselasky	u8         llr_tx_ret_events_low[0x20];
7425290650Shselasky
7426290650Shselasky	u8         reserved_0[0x640];
7427290650Shselasky};
7428290650Shselasky
7429290650Shselaskystruct mlx5_ifc_lane_2_module_mapping_bits {
7430290650Shselasky	u8         reserved_0[0x6];
7431290650Shselasky	u8         rx_lane[0x2];
7432290650Shselasky	u8         reserved_1[0x6];
7433290650Shselasky	u8         tx_lane[0x2];
7434290650Shselasky	u8         reserved_2[0x8];
7435290650Shselasky	u8         module[0x8];
7436290650Shselasky};
7437290650Shselasky
7438290650Shselaskystruct mlx5_ifc_eth_per_traffic_class_layout_bits {
7439290650Shselasky	u8         transmit_queue_high[0x20];
7440290650Shselasky
7441290650Shselasky	u8         transmit_queue_low[0x20];
7442290650Shselasky
7443290650Shselasky	u8         reserved_0[0x780];
7444290650Shselasky};
7445290650Shselasky
7446290650Shselaskystruct mlx5_ifc_eth_per_traffic_class_cong_layout_bits {
7447290650Shselasky	u8         no_buffer_discard_uc_high[0x20];
7448290650Shselasky
7449290650Shselasky	u8         no_buffer_discard_uc_low[0x20];
7450290650Shselasky
7451290650Shselasky	u8         wred_discard_high[0x20];
7452290650Shselasky
7453290650Shselasky	u8         wred_discard_low[0x20];
7454290650Shselasky
7455290650Shselasky	u8         reserved_0[0x740];
7456290650Shselasky};
7457290650Shselasky
7458290650Shselaskystruct mlx5_ifc_eth_per_prio_grp_data_layout_bits {
7459290650Shselasky	u8         rx_octets_high[0x20];
7460290650Shselasky
7461290650Shselasky	u8         rx_octets_low[0x20];
7462290650Shselasky
7463290650Shselasky	u8         reserved_0[0xc0];
7464290650Shselasky
7465290650Shselasky	u8         rx_frames_high[0x20];
7466290650Shselasky
7467290650Shselasky	u8         rx_frames_low[0x20];
7468290650Shselasky
7469290650Shselasky	u8         tx_octets_high[0x20];
7470290650Shselasky
7471290650Shselasky	u8         tx_octets_low[0x20];
7472290650Shselasky
7473290650Shselasky	u8         reserved_1[0xc0];
7474290650Shselasky
7475290650Shselasky	u8         tx_frames_high[0x20];
7476290650Shselasky
7477290650Shselasky	u8         tx_frames_low[0x20];
7478290650Shselasky
7479290650Shselasky	u8         rx_pause_high[0x20];
7480290650Shselasky
7481290650Shselasky	u8         rx_pause_low[0x20];
7482290650Shselasky
7483290650Shselasky	u8         rx_pause_duration_high[0x20];
7484290650Shselasky
7485290650Shselasky	u8         rx_pause_duration_low[0x20];
7486290650Shselasky
7487290650Shselasky	u8         tx_pause_high[0x20];
7488290650Shselasky
7489290650Shselasky	u8         tx_pause_low[0x20];
7490290650Shselasky
7491290650Shselasky	u8         tx_pause_duration_high[0x20];
7492290650Shselasky
7493290650Shselasky	u8         tx_pause_duration_low[0x20];
7494290650Shselasky
7495290650Shselasky	u8         rx_pause_transition_high[0x20];
7496290650Shselasky
7497290650Shselasky	u8         rx_pause_transition_low[0x20];
7498290650Shselasky
7499290650Shselasky	u8         reserved_2[0x400];
7500290650Shselasky};
7501290650Shselasky
7502290650Shselaskystruct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits {
7503290650Shselasky	u8         port_transmit_wait_high[0x20];
7504290650Shselasky
7505290650Shselasky	u8         port_transmit_wait_low[0x20];
7506290650Shselasky
7507290650Shselasky	u8         ecn_marked_high[0x20];
7508290650Shselasky
7509290650Shselasky	u8         ecn_marked_low[0x20];
7510290650Shselasky
7511290650Shselasky	u8         no_buffer_discard_mc_high[0x20];
7512290650Shselasky
7513290650Shselasky	u8         no_buffer_discard_mc_low[0x20];
7514290650Shselasky
7515290650Shselasky	u8         reserved_0[0x700];
7516290650Shselasky};
7517290650Shselasky
7518290650Shselaskystruct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits {
7519290650Shselasky	u8         a_frames_transmitted_ok_high[0x20];
7520290650Shselasky
7521290650Shselasky	u8         a_frames_transmitted_ok_low[0x20];
7522290650Shselasky
7523290650Shselasky	u8         a_frames_received_ok_high[0x20];
7524290650Shselasky
7525290650Shselasky	u8         a_frames_received_ok_low[0x20];
7526290650Shselasky
7527290650Shselasky	u8         a_frame_check_sequence_errors_high[0x20];
7528290650Shselasky
7529290650Shselasky	u8         a_frame_check_sequence_errors_low[0x20];
7530290650Shselasky
7531290650Shselasky	u8         a_alignment_errors_high[0x20];
7532290650Shselasky
7533290650Shselasky	u8         a_alignment_errors_low[0x20];
7534290650Shselasky
7535290650Shselasky	u8         a_octets_transmitted_ok_high[0x20];
7536290650Shselasky
7537290650Shselasky	u8         a_octets_transmitted_ok_low[0x20];
7538290650Shselasky
7539290650Shselasky	u8         a_octets_received_ok_high[0x20];
7540290650Shselasky
7541290650Shselasky	u8         a_octets_received_ok_low[0x20];
7542290650Shselasky
7543290650Shselasky	u8         a_multicast_frames_xmitted_ok_high[0x20];
7544290650Shselasky
7545290650Shselasky	u8         a_multicast_frames_xmitted_ok_low[0x20];
7546290650Shselasky
7547290650Shselasky	u8         a_broadcast_frames_xmitted_ok_high[0x20];
7548290650Shselasky
7549290650Shselasky	u8         a_broadcast_frames_xmitted_ok_low[0x20];
7550290650Shselasky
7551290650Shselasky	u8         a_multicast_frames_received_ok_high[0x20];
7552290650Shselasky
7553290650Shselasky	u8         a_multicast_frames_received_ok_low[0x20];
7554290650Shselasky
7555290650Shselasky	u8         a_broadcast_frames_recieved_ok_high[0x20];
7556290650Shselasky
7557290650Shselasky	u8         a_broadcast_frames_recieved_ok_low[0x20];
7558290650Shselasky
7559290650Shselasky	u8         a_in_range_length_errors_high[0x20];
7560290650Shselasky
7561290650Shselasky	u8         a_in_range_length_errors_low[0x20];
7562290650Shselasky
7563290650Shselasky	u8         a_out_of_range_length_field_high[0x20];
7564290650Shselasky
7565290650Shselasky	u8         a_out_of_range_length_field_low[0x20];
7566290650Shselasky
7567290650Shselasky	u8         a_frame_too_long_errors_high[0x20];
7568290650Shselasky
7569290650Shselasky	u8         a_frame_too_long_errors_low[0x20];
7570290650Shselasky
7571290650Shselasky	u8         a_symbol_error_during_carrier_high[0x20];
7572290650Shselasky
7573290650Shselasky	u8         a_symbol_error_during_carrier_low[0x20];
7574290650Shselasky
7575290650Shselasky	u8         a_mac_control_frames_transmitted_high[0x20];
7576290650Shselasky
7577290650Shselasky	u8         a_mac_control_frames_transmitted_low[0x20];
7578290650Shselasky
7579290650Shselasky	u8         a_mac_control_frames_received_high[0x20];
7580290650Shselasky
7581290650Shselasky	u8         a_mac_control_frames_received_low[0x20];
7582290650Shselasky
7583290650Shselasky	u8         a_unsupported_opcodes_received_high[0x20];
7584290650Shselasky
7585290650Shselasky	u8         a_unsupported_opcodes_received_low[0x20];
7586290650Shselasky
7587290650Shselasky	u8         a_pause_mac_ctrl_frames_received_high[0x20];
7588290650Shselasky
7589290650Shselasky	u8         a_pause_mac_ctrl_frames_received_low[0x20];
7590290650Shselasky
7591290650Shselasky	u8         a_pause_mac_ctrl_frames_transmitted_high[0x20];
7592290650Shselasky
7593290650Shselasky	u8         a_pause_mac_ctrl_frames_transmitted_low[0x20];
7594290650Shselasky
7595290650Shselasky	u8         reserved_0[0x300];
7596290650Shselasky};
7597290650Shselasky
7598290650Shselaskystruct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits {
7599290650Shselasky	u8         dot3stats_alignment_errors_high[0x20];
7600290650Shselasky
7601290650Shselasky	u8         dot3stats_alignment_errors_low[0x20];
7602290650Shselasky
7603290650Shselasky	u8         dot3stats_fcs_errors_high[0x20];
7604290650Shselasky
7605290650Shselasky	u8         dot3stats_fcs_errors_low[0x20];
7606290650Shselasky
7607290650Shselasky	u8         dot3stats_single_collision_frames_high[0x20];
7608290650Shselasky
7609290650Shselasky	u8         dot3stats_single_collision_frames_low[0x20];
7610290650Shselasky
7611290650Shselasky	u8         dot3stats_multiple_collision_frames_high[0x20];
7612290650Shselasky
7613290650Shselasky	u8         dot3stats_multiple_collision_frames_low[0x20];
7614290650Shselasky
7615290650Shselasky	u8         dot3stats_sqe_test_errors_high[0x20];
7616290650Shselasky
7617290650Shselasky	u8         dot3stats_sqe_test_errors_low[0x20];
7618290650Shselasky
7619290650Shselasky	u8         dot3stats_deferred_transmissions_high[0x20];
7620290650Shselasky
7621290650Shselasky	u8         dot3stats_deferred_transmissions_low[0x20];
7622290650Shselasky
7623290650Shselasky	u8         dot3stats_late_collisions_high[0x20];
7624290650Shselasky
7625290650Shselasky	u8         dot3stats_late_collisions_low[0x20];
7626290650Shselasky
7627290650Shselasky	u8         dot3stats_excessive_collisions_high[0x20];
7628290650Shselasky
7629290650Shselasky	u8         dot3stats_excessive_collisions_low[0x20];
7630290650Shselasky
7631290650Shselasky	u8         dot3stats_internal_mac_transmit_errors_high[0x20];
7632290650Shselasky
7633290650Shselasky	u8         dot3stats_internal_mac_transmit_errors_low[0x20];
7634290650Shselasky
7635290650Shselasky	u8         dot3stats_carrier_sense_errors_high[0x20];
7636290650Shselasky
7637290650Shselasky	u8         dot3stats_carrier_sense_errors_low[0x20];
7638290650Shselasky
7639290650Shselasky	u8         dot3stats_frame_too_longs_high[0x20];
7640290650Shselasky
7641290650Shselasky	u8         dot3stats_frame_too_longs_low[0x20];
7642290650Shselasky
7643290650Shselasky	u8         dot3stats_internal_mac_receive_errors_high[0x20];
7644290650Shselasky
7645290650Shselasky	u8         dot3stats_internal_mac_receive_errors_low[0x20];
7646290650Shselasky
7647290650Shselasky	u8         dot3stats_symbol_errors_high[0x20];
7648290650Shselasky
7649290650Shselasky	u8         dot3stats_symbol_errors_low[0x20];
7650290650Shselasky
7651290650Shselasky	u8         dot3control_in_unknown_opcodes_high[0x20];
7652290650Shselasky
7653290650Shselasky	u8         dot3control_in_unknown_opcodes_low[0x20];
7654290650Shselasky
7655290650Shselasky	u8         dot3in_pause_frames_high[0x20];
7656290650Shselasky
7657290650Shselasky	u8         dot3in_pause_frames_low[0x20];
7658290650Shselasky
7659290650Shselasky	u8         dot3out_pause_frames_high[0x20];
7660290650Shselasky
7661290650Shselasky	u8         dot3out_pause_frames_low[0x20];
7662290650Shselasky
7663290650Shselasky	u8         reserved_0[0x3c0];
7664290650Shselasky};
7665290650Shselasky
7666290650Shselaskystruct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits {
7667290650Shselasky	u8         if_in_octets_high[0x20];
7668290650Shselasky
7669290650Shselasky	u8         if_in_octets_low[0x20];
7670290650Shselasky
7671290650Shselasky	u8         if_in_ucast_pkts_high[0x20];
7672290650Shselasky
7673290650Shselasky	u8         if_in_ucast_pkts_low[0x20];
7674290650Shselasky
7675290650Shselasky	u8         if_in_discards_high[0x20];
7676290650Shselasky
7677290650Shselasky	u8         if_in_discards_low[0x20];
7678290650Shselasky
7679290650Shselasky	u8         if_in_errors_high[0x20];
7680290650Shselasky
7681290650Shselasky	u8         if_in_errors_low[0x20];
7682290650Shselasky
7683290650Shselasky	u8         if_in_unknown_protos_high[0x20];
7684290650Shselasky
7685290650Shselasky	u8         if_in_unknown_protos_low[0x20];
7686290650Shselasky
7687290650Shselasky	u8         if_out_octets_high[0x20];
7688290650Shselasky
7689290650Shselasky	u8         if_out_octets_low[0x20];
7690290650Shselasky
7691290650Shselasky	u8         if_out_ucast_pkts_high[0x20];
7692290650Shselasky
7693290650Shselasky	u8         if_out_ucast_pkts_low[0x20];
7694290650Shselasky
7695290650Shselasky	u8         if_out_discards_high[0x20];
7696290650Shselasky
7697290650Shselasky	u8         if_out_discards_low[0x20];
7698290650Shselasky
7699290650Shselasky	u8         if_out_errors_high[0x20];
7700290650Shselasky
7701290650Shselasky	u8         if_out_errors_low[0x20];
7702290650Shselasky
7703290650Shselasky	u8         if_in_multicast_pkts_high[0x20];
7704290650Shselasky
7705290650Shselasky	u8         if_in_multicast_pkts_low[0x20];
7706290650Shselasky
7707290650Shselasky	u8         if_in_broadcast_pkts_high[0x20];
7708290650Shselasky
7709290650Shselasky	u8         if_in_broadcast_pkts_low[0x20];
7710290650Shselasky
7711290650Shselasky	u8         if_out_multicast_pkts_high[0x20];
7712290650Shselasky
7713290650Shselasky	u8         if_out_multicast_pkts_low[0x20];
7714290650Shselasky
7715290650Shselasky	u8         if_out_broadcast_pkts_high[0x20];
7716290650Shselasky
7717290650Shselasky	u8         if_out_broadcast_pkts_low[0x20];
7718290650Shselasky
7719290650Shselasky	u8         reserved_0[0x480];
7720290650Shselasky};
7721290650Shselasky
7722290650Shselaskystruct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits {
7723290650Shselasky	u8         ether_stats_drop_events_high[0x20];
7724290650Shselasky
7725290650Shselasky	u8         ether_stats_drop_events_low[0x20];
7726290650Shselasky
7727290650Shselasky	u8         ether_stats_octets_high[0x20];
7728290650Shselasky
7729290650Shselasky	u8         ether_stats_octets_low[0x20];
7730290650Shselasky
7731290650Shselasky	u8         ether_stats_pkts_high[0x20];
7732290650Shselasky
7733290650Shselasky	u8         ether_stats_pkts_low[0x20];
7734290650Shselasky
7735290650Shselasky	u8         ether_stats_broadcast_pkts_high[0x20];
7736290650Shselasky
7737290650Shselasky	u8         ether_stats_broadcast_pkts_low[0x20];
7738290650Shselasky
7739290650Shselasky	u8         ether_stats_multicast_pkts_high[0x20];
7740290650Shselasky
7741290650Shselasky	u8         ether_stats_multicast_pkts_low[0x20];
7742290650Shselasky
7743290650Shselasky	u8         ether_stats_crc_align_errors_high[0x20];
7744290650Shselasky
7745290650Shselasky	u8         ether_stats_crc_align_errors_low[0x20];
7746290650Shselasky
7747290650Shselasky	u8         ether_stats_undersize_pkts_high[0x20];
7748290650Shselasky
7749290650Shselasky	u8         ether_stats_undersize_pkts_low[0x20];
7750290650Shselasky
7751290650Shselasky	u8         ether_stats_oversize_pkts_high[0x20];
7752290650Shselasky
7753290650Shselasky	u8         ether_stats_oversize_pkts_low[0x20];
7754290650Shselasky
7755290650Shselasky	u8         ether_stats_fragments_high[0x20];
7756290650Shselasky
7757290650Shselasky	u8         ether_stats_fragments_low[0x20];
7758290650Shselasky
7759290650Shselasky	u8         ether_stats_jabbers_high[0x20];
7760290650Shselasky
7761290650Shselasky	u8         ether_stats_jabbers_low[0x20];
7762290650Shselasky
7763290650Shselasky	u8         ether_stats_collisions_high[0x20];
7764290650Shselasky
7765290650Shselasky	u8         ether_stats_collisions_low[0x20];
7766290650Shselasky
7767290650Shselasky	u8         ether_stats_pkts64octets_high[0x20];
7768290650Shselasky
7769290650Shselasky	u8         ether_stats_pkts64octets_low[0x20];
7770290650Shselasky
7771290650Shselasky	u8         ether_stats_pkts65to127octets_high[0x20];
7772290650Shselasky
7773290650Shselasky	u8         ether_stats_pkts65to127octets_low[0x20];
7774290650Shselasky
7775290650Shselasky	u8         ether_stats_pkts128to255octets_high[0x20];
7776290650Shselasky
7777290650Shselasky	u8         ether_stats_pkts128to255octets_low[0x20];
7778290650Shselasky
7779290650Shselasky	u8         ether_stats_pkts256to511octets_high[0x20];
7780290650Shselasky
7781290650Shselasky	u8         ether_stats_pkts256to511octets_low[0x20];
7782290650Shselasky
7783290650Shselasky	u8         ether_stats_pkts512to1023octets_high[0x20];
7784290650Shselasky
7785290650Shselasky	u8         ether_stats_pkts512to1023octets_low[0x20];
7786290650Shselasky
7787290650Shselasky	u8         ether_stats_pkts1024to1518octets_high[0x20];
7788290650Shselasky
7789290650Shselasky	u8         ether_stats_pkts1024to1518octets_low[0x20];
7790290650Shselasky
7791290650Shselasky	u8         ether_stats_pkts1519to2047octets_high[0x20];
7792290650Shselasky
7793290650Shselasky	u8         ether_stats_pkts1519to2047octets_low[0x20];
7794290650Shselasky
7795290650Shselasky	u8         ether_stats_pkts2048to4095octets_high[0x20];
7796290650Shselasky
7797290650Shselasky	u8         ether_stats_pkts2048to4095octets_low[0x20];
7798290650Shselasky
7799290650Shselasky	u8         ether_stats_pkts4096to8191octets_high[0x20];
7800290650Shselasky
7801290650Shselasky	u8         ether_stats_pkts4096to8191octets_low[0x20];
7802290650Shselasky
7803290650Shselasky	u8         ether_stats_pkts8192to10239octets_high[0x20];
7804290650Shselasky
7805290650Shselasky	u8         ether_stats_pkts8192to10239octets_low[0x20];
7806290650Shselasky
7807290650Shselasky	u8         reserved_0[0x280];
7808290650Shselasky};
7809290650Shselasky
7810290650Shselaskystruct mlx5_ifc_ib_portcntrs_attribute_grp_data_bits {
7811290650Shselasky	u8         symbol_error_counter[0x10];
7812290650Shselasky	u8         link_error_recovery_counter[0x8];
7813290650Shselasky	u8         link_downed_counter[0x8];
7814290650Shselasky
7815290650Shselasky	u8         port_rcv_errors[0x10];
7816290650Shselasky	u8         port_rcv_remote_physical_errors[0x10];
7817290650Shselasky
7818290650Shselasky	u8         port_rcv_switch_relay_errors[0x10];
7819290650Shselasky	u8         port_xmit_discards[0x10];
7820290650Shselasky
7821290650Shselasky	u8         port_xmit_constraint_errors[0x8];
7822290650Shselasky	u8         port_rcv_constraint_errors[0x8];
7823290650Shselasky	u8         reserved_0[0x8];
7824290650Shselasky	u8         local_link_integrity_errors[0x4];
7825290650Shselasky	u8         excessive_buffer_overrun_errors[0x4];
7826290650Shselasky
7827290650Shselasky	u8         reserved_1[0x10];
7828290650Shselasky	u8         vl_15_dropped[0x10];
7829290650Shselasky
7830290650Shselasky	u8         port_xmit_data[0x20];
7831290650Shselasky
7832290650Shselasky	u8         port_rcv_data[0x20];
7833290650Shselasky
7834290650Shselasky	u8         port_xmit_pkts[0x20];
7835290650Shselasky
7836290650Shselasky	u8         port_rcv_pkts[0x20];
7837290650Shselasky
7838290650Shselasky	u8         port_xmit_wait[0x20];
7839290650Shselasky
7840290650Shselasky	u8         reserved_2[0x680];
7841290650Shselasky};
7842290650Shselasky
7843290650Shselaskystruct mlx5_ifc_trc_tlb_reg_bits {
7844290650Shselasky	u8         reserved_0[0x80];
7845290650Shselasky
7846290650Shselasky	u8         tlb_addr[0][0x40];
7847290650Shselasky};
7848290650Shselasky
7849290650Shselaskystruct mlx5_ifc_trc_read_fifo_reg_bits {
7850290650Shselasky	u8         reserved_0[0x10];
7851290650Shselasky	u8         requested_event_num[0x10];
7852290650Shselasky
7853290650Shselasky	u8         reserved_1[0x20];
7854290650Shselasky
7855290650Shselasky	u8         reserved_2[0x10];
7856290650Shselasky	u8         acual_event_num[0x10];
7857290650Shselasky
7858290650Shselasky	u8         reserved_3[0x20];
7859290650Shselasky
7860290650Shselasky	u8         event[0][0x40];
7861290650Shselasky};
7862290650Shselasky
7863290650Shselaskystruct mlx5_ifc_trc_lock_reg_bits {
7864290650Shselasky	u8         reserved_0[0x1f];
7865290650Shselasky	u8         lock[0x1];
7866290650Shselasky
7867290650Shselasky	u8         reserved_1[0x60];
7868290650Shselasky};
7869290650Shselasky
7870290650Shselaskystruct mlx5_ifc_trc_filter_reg_bits {
7871290650Shselasky	u8         status[0x1];
7872290650Shselasky	u8         reserved_0[0xf];
7873290650Shselasky	u8         filter_index[0x10];
7874290650Shselasky
7875290650Shselasky	u8         reserved_1[0x20];
7876290650Shselasky
7877290650Shselasky	u8         filter_val[0x20];
7878290650Shselasky
7879290650Shselasky	u8         reserved_2[0x1a0];
7880290650Shselasky};
7881290650Shselasky
7882290650Shselaskystruct mlx5_ifc_trc_event_reg_bits {
7883290650Shselasky	u8         status[0x1];
7884290650Shselasky	u8         reserved_0[0xf];
7885290650Shselasky	u8         event_index[0x10];
7886290650Shselasky
7887290650Shselasky	u8         reserved_1[0x20];
7888290650Shselasky
7889290650Shselasky	u8         event_id[0x20];
7890290650Shselasky
7891290650Shselasky	u8         event_selector_val[0x10];
7892290650Shselasky	u8         event_selector_size[0x10];
7893290650Shselasky
7894290650Shselasky	u8         reserved_2[0x180];
7895290650Shselasky};
7896290650Shselasky
7897290650Shselaskystruct mlx5_ifc_trc_conf_reg_bits {
7898290650Shselasky	u8         limit_en[0x1];
7899290650Shselasky	u8         reserved_0[0x3];
7900290650Shselasky	u8         dump_mode[0x4];
7901290650Shselasky	u8         reserved_1[0x15];
7902290650Shselasky	u8         state[0x3];
7903290650Shselasky
7904290650Shselasky	u8         reserved_2[0x20];
7905290650Shselasky
7906290650Shselasky	u8         limit_event_index[0x20];
7907290650Shselasky
7908290650Shselasky	u8         mkey[0x20];
7909290650Shselasky
7910290650Shselasky	u8         fifo_ready_ev_num[0x20];
7911290650Shselasky
7912290650Shselasky	u8         reserved_3[0x160];
7913290650Shselasky};
7914290650Shselasky
7915290650Shselaskystruct mlx5_ifc_trc_cap_reg_bits {
7916290650Shselasky	u8         reserved_0[0x18];
7917290650Shselasky	u8         dump_mode[0x8];
7918290650Shselasky
7919290650Shselasky	u8         reserved_1[0x20];
7920290650Shselasky
7921290650Shselasky	u8         num_of_events[0x10];
7922290650Shselasky	u8         num_of_filters[0x10];
7923290650Shselasky
7924290650Shselasky	u8         fifo_size[0x20];
7925290650Shselasky
7926290650Shselasky	u8         tlb_size[0x10];
7927290650Shselasky	u8         event_size[0x10];
7928290650Shselasky
7929290650Shselasky	u8         reserved_2[0x160];
7930290650Shselasky};
7931290650Shselasky
7932290650Shselaskystruct mlx5_ifc_set_node_in_bits {
7933290650Shselasky	u8         node_description[64][0x8];
7934290650Shselasky};
7935290650Shselasky
7936290650Shselaskystruct mlx5_ifc_register_power_settings_bits {
7937290650Shselasky	u8         reserved_0[0x18];
7938290650Shselasky	u8         power_settings_level[0x8];
7939290650Shselasky
7940290650Shselasky	u8         reserved_1[0x60];
7941290650Shselasky};
7942290650Shselasky
7943290650Shselaskystruct mlx5_ifc_register_host_endianess_bits {
7944290650Shselasky	u8         he[0x1];
7945290650Shselasky	u8         reserved_0[0x1f];
7946290650Shselasky
7947290650Shselasky	u8         reserved_1[0x60];
7948290650Shselasky};
7949290650Shselasky
7950290650Shselaskystruct mlx5_ifc_register_diag_buffer_ctrl_bits {
7951290650Shselasky	u8         physical_address[0x40];
7952290650Shselasky};
7953290650Shselasky
7954290650Shselaskystruct mlx5_ifc_qtct_reg_bits {
7955290650Shselasky	u8         reserved_0[0x8];
7956290650Shselasky	u8         port_number[0x8];
7957290650Shselasky	u8         reserved_1[0xd];
7958290650Shselasky	u8         prio[0x3];
7959290650Shselasky
7960290650Shselasky	u8         reserved_2[0x1d];
7961290650Shselasky	u8         tclass[0x3];
7962290650Shselasky};
7963290650Shselasky
7964290650Shselaskystruct mlx5_ifc_qpdp_reg_bits {
7965290650Shselasky	u8         reserved_0[0x8];
7966290650Shselasky	u8         port_number[0x8];
7967290650Shselasky	u8         reserved_1[0x10];
7968290650Shselasky
7969290650Shselasky	u8         reserved_2[0x1d];
7970290650Shselasky	u8         pprio[0x3];
7971290650Shselasky};
7972290650Shselasky
7973290650Shselaskystruct mlx5_ifc_port_info_ro_fields_param_bits {
7974290650Shselasky	u8         reserved_0[0x8];
7975290650Shselasky	u8         port[0x8];
7976290650Shselasky	u8         max_gid[0x10];
7977290650Shselasky
7978290650Shselasky	u8         reserved_1[0x20];
7979290650Shselasky
7980290650Shselasky	u8         port_guid[0x40];
7981290650Shselasky};
7982290650Shselasky
7983290650Shselaskystruct mlx5_ifc_nvqc_reg_bits {
7984290650Shselasky	u8         type[0x20];
7985290650Shselasky
7986290650Shselasky	u8         reserved_0[0x18];
7987290650Shselasky	u8         version[0x4];
7988290650Shselasky	u8         reserved_1[0x2];
7989290650Shselasky	u8         support_wr[0x1];
7990290650Shselasky	u8         support_rd[0x1];
7991290650Shselasky};
7992290650Shselasky
7993290650Shselaskystruct mlx5_ifc_nvia_reg_bits {
7994290650Shselasky	u8         reserved_0[0x1d];
7995290650Shselasky	u8         target[0x3];
7996290650Shselasky
7997290650Shselasky	u8         reserved_1[0x20];
7998290650Shselasky};
7999290650Shselasky
8000290650Shselaskystruct mlx5_ifc_nvdi_reg_bits {
8001290650Shselasky	struct mlx5_ifc_config_item_bits configuration_item_header;
8002290650Shselasky};
8003290650Shselasky
8004290650Shselaskystruct mlx5_ifc_nvda_reg_bits {
8005290650Shselasky	struct mlx5_ifc_config_item_bits configuration_item_header;
8006290650Shselasky
8007290650Shselasky	u8         configuration_item_data[0x20];
8008290650Shselasky};
8009290650Shselasky
8010290650Shselaskystruct mlx5_ifc_node_info_ro_fields_param_bits {
8011290650Shselasky	u8         system_image_guid[0x40];
8012290650Shselasky
8013290650Shselasky	u8         reserved_0[0x40];
8014290650Shselasky
8015290650Shselasky	u8         node_guid[0x40];
8016290650Shselasky
8017290650Shselasky	u8         reserved_1[0x10];
8018290650Shselasky	u8         max_pkey[0x10];
8019290650Shselasky
8020290650Shselasky	u8         reserved_2[0x20];
8021290650Shselasky};
8022290650Shselasky
8023290650Shselaskystruct mlx5_ifc_ets_tcn_config_reg_bits {
8024290650Shselasky	u8         g[0x1];
8025290650Shselasky	u8         b[0x1];
8026290650Shselasky	u8         r[0x1];
8027290650Shselasky	u8         reserved_0[0x9];
8028290650Shselasky	u8         group[0x4];
8029290650Shselasky	u8         reserved_1[0x9];
8030290650Shselasky	u8         bw_allocation[0x7];
8031290650Shselasky
8032290650Shselasky	u8         reserved_2[0xc];
8033290650Shselasky	u8         max_bw_units[0x4];
8034290650Shselasky	u8         reserved_3[0x8];
8035290650Shselasky	u8         max_bw_value[0x8];
8036290650Shselasky};
8037290650Shselasky
8038290650Shselaskystruct mlx5_ifc_ets_global_config_reg_bits {
8039290650Shselasky	u8         reserved_0[0x2];
8040290650Shselasky	u8         r[0x1];
8041290650Shselasky	u8         reserved_1[0x1d];
8042290650Shselasky
8043290650Shselasky	u8         reserved_2[0xc];
8044290650Shselasky	u8         max_bw_units[0x4];
8045290650Shselasky	u8         reserved_3[0x8];
8046290650Shselasky	u8         max_bw_value[0x8];
8047290650Shselasky};
8048290650Shselasky
8049290650Shselaskystruct mlx5_ifc_nodnic_mac_filters_bits {
8050290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_filter0;
8051290650Shselasky
8052290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_filter1;
8053290650Shselasky
8054290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_filter2;
8055290650Shselasky
8056290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_filter3;
8057290650Shselasky
8058290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_filter4;
8059290650Shselasky
8060290650Shselasky	u8         reserved_0[0xc0];
8061290650Shselasky};
8062290650Shselasky
8063290650Shselaskystruct mlx5_ifc_nodnic_gid_filters_bits {
8064290650Shselasky	u8         mgid_filter0[16][0x8];
8065290650Shselasky
8066290650Shselasky	u8         mgid_filter1[16][0x8];
8067290650Shselasky
8068290650Shselasky	u8         mgid_filter2[16][0x8];
8069290650Shselasky
8070290650Shselasky	u8         mgid_filter3[16][0x8];
8071290650Shselasky};
8072290650Shselasky
8073290650Shselaskyenum {
8074290650Shselasky	MLX5_NODNIC_CONFIG_REG_NUM_PORTS_SINGLE_PORT  = 0x0,
8075290650Shselasky	MLX5_NODNIC_CONFIG_REG_NUM_PORTS_DUAL_PORT    = 0x1,
8076290650Shselasky};
8077290650Shselasky
8078290650Shselaskyenum {
8079290650Shselasky	MLX5_NODNIC_CONFIG_REG_CQE_FORMAT_LEGACY_CQE  = 0x0,
8080290650Shselasky	MLX5_NODNIC_CONFIG_REG_CQE_FORMAT_NEW_CQE     = 0x1,
8081290650Shselasky};
8082290650Shselasky
8083290650Shselaskystruct mlx5_ifc_nodnic_config_reg_bits {
8084290650Shselasky	u8         no_dram_nic_revision[0x8];
8085290650Shselasky	u8         hardware_format[0x8];
8086290650Shselasky	u8         support_receive_filter[0x1];
8087290650Shselasky	u8         support_promisc_filter[0x1];
8088290650Shselasky	u8         support_promisc_multicast_filter[0x1];
8089290650Shselasky	u8         reserved_0[0x2];
8090290650Shselasky	u8         log_working_buffer_size[0x3];
8091290650Shselasky	u8         log_pkey_table_size[0x4];
8092290650Shselasky	u8         reserved_1[0x3];
8093290650Shselasky	u8         num_ports[0x1];
8094290650Shselasky
8095290650Shselasky	u8         reserved_2[0x2];
8096290650Shselasky	u8         log_max_ring_size[0x6];
8097290650Shselasky	u8         reserved_3[0x18];
8098290650Shselasky
8099290650Shselasky	u8         lkey[0x20];
8100290650Shselasky
8101290650Shselasky	u8         cqe_format[0x4];
8102290650Shselasky	u8         reserved_4[0x1c];
8103290650Shselasky
8104290650Shselasky	u8         node_guid[0x40];
8105290650Shselasky
8106290650Shselasky	u8         reserved_5[0x740];
8107290650Shselasky
8108290650Shselasky	struct mlx5_ifc_nodnic_port_config_reg_bits port1_settings;
8109290650Shselasky
8110290650Shselasky	struct mlx5_ifc_nodnic_port_config_reg_bits port2_settings;
8111290650Shselasky};
8112290650Shselasky
8113290650Shselaskystruct mlx5_ifc_vlan_layout_bits {
8114290650Shselasky	u8         reserved_0[0x14];
8115290650Shselasky	u8         vlan[0xc];
8116290650Shselasky
8117290650Shselasky	u8         reserved_1[0x20];
8118290650Shselasky};
8119290650Shselasky
8120290650Shselaskystruct mlx5_ifc_umr_pointer_desc_argument_bits {
8121290650Shselasky	u8         reserved_0[0x20];
8122290650Shselasky
8123290650Shselasky	u8         mkey[0x20];
8124290650Shselasky
8125290650Shselasky	u8         addressh_63_32[0x20];
8126290650Shselasky
8127290650Shselasky	u8         addressl_31_0[0x20];
8128290650Shselasky};
8129290650Shselasky
8130290650Shselaskystruct mlx5_ifc_ud_adrs_vector_bits {
8131290650Shselasky	u8         dc_key[0x40];
8132290650Shselasky
8133290650Shselasky	u8         ext[0x1];
8134290650Shselasky	u8         reserved_0[0x7];
8135290650Shselasky	u8         destination_qp_dct[0x18];
8136290650Shselasky
8137290650Shselasky	u8         static_rate[0x4];
8138290650Shselasky	u8         sl_eth_prio[0x4];
8139290650Shselasky	u8         fl[0x1];
8140290650Shselasky	u8         mlid[0x7];
8141290650Shselasky	u8         rlid_udp_sport[0x10];
8142290650Shselasky
8143290650Shselasky	u8         reserved_1[0x20];
8144290650Shselasky
8145290650Shselasky	u8         rmac_47_16[0x20];
8146290650Shselasky
8147290650Shselasky	u8         rmac_15_0[0x10];
8148290650Shselasky	u8         tclass[0x8];
8149290650Shselasky	u8         hop_limit[0x8];
8150290650Shselasky
8151290650Shselasky	u8         reserved_2[0x1];
8152290650Shselasky	u8         grh[0x1];
8153290650Shselasky	u8         reserved_3[0x2];
8154290650Shselasky	u8         src_addr_index[0x8];
8155290650Shselasky	u8         flow_label[0x14];
8156290650Shselasky
8157290650Shselasky	u8         rgid_rip[16][0x8];
8158290650Shselasky};
8159290650Shselasky
8160290650Shselaskystruct mlx5_ifc_port_module_event_bits {
8161290650Shselasky	u8         reserved_0[0x8];
8162290650Shselasky	u8         module[0x8];
8163290650Shselasky	u8         reserved_1[0xc];
8164290650Shselasky	u8         module_status[0x4];
8165290650Shselasky
8166290650Shselasky	u8         reserved_2[0x14];
8167290650Shselasky	u8         error_type[0x4];
8168290650Shselasky	u8         reserved_3[0x8];
8169290650Shselasky
8170290650Shselasky	u8         reserved_4[0xa0];
8171290650Shselasky};
8172290650Shselasky
8173290650Shselaskystruct mlx5_ifc_icmd_control_bits {
8174290650Shselasky	u8         opcode[0x10];
8175290650Shselasky	u8         status[0x8];
8176290650Shselasky	u8         reserved_0[0x7];
8177290650Shselasky	u8         busy[0x1];
8178290650Shselasky};
8179290650Shselasky
8180290650Shselaskystruct mlx5_ifc_eqe_bits {
8181290650Shselasky	u8         reserved_0[0x8];
8182290650Shselasky	u8         event_type[0x8];
8183290650Shselasky	u8         reserved_1[0x8];
8184290650Shselasky	u8         event_sub_type[0x8];
8185290650Shselasky
8186290650Shselasky	u8         reserved_2[0xe0];
8187290650Shselasky
8188290650Shselasky	union mlx5_ifc_event_auto_bits event_data;
8189290650Shselasky
8190290650Shselasky	u8         reserved_3[0x10];
8191290650Shselasky	u8         signature[0x8];
8192290650Shselasky	u8         reserved_4[0x7];
8193290650Shselasky	u8         owner[0x1];
8194290650Shselasky};
8195290650Shselasky
8196290650Shselaskyenum {
8197290650Shselasky	MLX5_CMD_QUEUE_ENTRY_TYPE_PCIE_CMD_IF_TRANSPORT  = 0x7,
8198290650Shselasky};
8199290650Shselasky
8200290650Shselaskystruct mlx5_ifc_cmd_queue_entry_bits {
8201290650Shselasky	u8         type[0x8];
8202290650Shselasky	u8         reserved_0[0x18];
8203290650Shselasky
8204290650Shselasky	u8         input_length[0x20];
8205290650Shselasky
8206290650Shselasky	u8         input_mailbox_pointer_63_32[0x20];
8207290650Shselasky
8208290650Shselasky	u8         input_mailbox_pointer_31_9[0x17];
8209290650Shselasky	u8         reserved_1[0x9];
8210290650Shselasky
8211290650Shselasky	u8         command_input_inline_data[16][0x8];
8212290650Shselasky
8213290650Shselasky	u8         command_output_inline_data[16][0x8];
8214290650Shselasky
8215290650Shselasky	u8         output_mailbox_pointer_63_32[0x20];
8216290650Shselasky
8217290650Shselasky	u8         output_mailbox_pointer_31_9[0x17];
8218290650Shselasky	u8         reserved_2[0x9];
8219290650Shselasky
8220290650Shselasky	u8         output_length[0x20];
8221290650Shselasky
8222290650Shselasky	u8         token[0x8];
8223290650Shselasky	u8         signature[0x8];
8224290650Shselasky	u8         reserved_3[0x8];
8225290650Shselasky	u8         status[0x7];
8226290650Shselasky	u8         ownership[0x1];
8227290650Shselasky};
8228290650Shselasky
8229290650Shselaskystruct mlx5_ifc_cmd_out_bits {
8230290650Shselasky	u8         status[0x8];
8231290650Shselasky	u8         reserved_0[0x18];
8232290650Shselasky
8233290650Shselasky	u8         syndrome[0x20];
8234290650Shselasky
8235290650Shselasky	u8         command_output[0x20];
8236290650Shselasky};
8237290650Shselasky
8238290650Shselaskystruct mlx5_ifc_cmd_in_bits {
8239290650Shselasky	u8         opcode[0x10];
8240290650Shselasky	u8         reserved_0[0x10];
8241290650Shselasky
8242290650Shselasky	u8         reserved_1[0x10];
8243290650Shselasky	u8         op_mod[0x10];
8244290650Shselasky
8245290650Shselasky	u8         command[0][0x20];
8246290650Shselasky};
8247290650Shselasky
8248290650Shselaskystruct mlx5_ifc_cmd_if_box_bits {
8249290650Shselasky	u8         mailbox_data[512][0x8];
8250290650Shselasky
8251290650Shselasky	u8         reserved_0[0x180];
8252290650Shselasky
8253290650Shselasky	u8         next_pointer_63_32[0x20];
8254290650Shselasky
8255290650Shselasky	u8         next_pointer_31_10[0x16];
8256290650Shselasky	u8         reserved_1[0xa];
8257290650Shselasky
8258290650Shselasky	u8         block_number[0x20];
8259290650Shselasky
8260290650Shselasky	u8         reserved_2[0x8];
8261290650Shselasky	u8         token[0x8];
8262290650Shselasky	u8         ctrl_signature[0x8];
8263290650Shselasky	u8         signature[0x8];
8264290650Shselasky};
8265290650Shselasky
8266290650Shselaskystruct mlx5_ifc_mtt_bits {
8267290650Shselasky	u8         ptag_63_32[0x20];
8268290650Shselasky
8269290650Shselasky	u8         ptag_31_8[0x18];
8270290650Shselasky	u8         reserved_0[0x6];
8271290650Shselasky	u8         wr_en[0x1];
8272290650Shselasky	u8         rd_en[0x1];
8273290650Shselasky};
8274290650Shselasky
8275290650Shselaskystruct mlx5_ifc_vendor_specific_cap_bits {
8276290650Shselasky	u8         type[0x8];
8277290650Shselasky	u8         length[0x8];
8278290650Shselasky	u8         next_pointer[0x8];
8279290650Shselasky	u8         capability_id[0x8];
8280290650Shselasky
8281290650Shselasky	u8         status[0x3];
8282290650Shselasky	u8         reserved_0[0xd];
8283290650Shselasky	u8         space[0x10];
8284290650Shselasky
8285290650Shselasky	u8         counter[0x20];
8286290650Shselasky
8287290650Shselasky	u8         semaphore[0x20];
8288290650Shselasky
8289290650Shselasky	u8         flag[0x1];
8290290650Shselasky	u8         reserved_1[0x1];
8291290650Shselasky	u8         address[0x1e];
8292290650Shselasky
8293290650Shselasky	u8         data[0x20];
8294290650Shselasky};
8295290650Shselasky
8296290650Shselaskyenum {
8297290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_FULL_DRIVER  = 0x0,
8298290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_DISABLED     = 0x1,
8299290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_NO_DRAM_NIC  = 0x2,
8300290650Shselasky};
8301290650Shselasky
8302290650Shselaskyenum {
8303290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_FULL_DRIVER  = 0x0,
8304290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_DISABLED     = 0x1,
8305290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_NO_DRAM_NIC  = 0x2,
8306290650Shselasky};
8307290650Shselasky
8308290650Shselaskyenum {
8309290650Shselasky	MLX5_HEALTH_SYNDR_FW_ERR                                      = 0x1,
8310290650Shselasky	MLX5_HEALTH_SYNDR_IRISC_ERR                                   = 0x7,
8311290650Shselasky	MLX5_HEALTH_SYNDR_HW_UNRECOVERABLE_ERR                        = 0x8,
8312290650Shselasky	MLX5_HEALTH_SYNDR_CRC_ERR                                     = 0x9,
8313290650Shselasky	MLX5_HEALTH_SYNDR_FETCH_PCI_ERR                               = 0xa,
8314290650Shselasky	MLX5_HEALTH_SYNDR_HW_FTL_ERR                                  = 0xb,
8315290650Shselasky	MLX5_HEALTH_SYNDR_ASYNC_EQ_OVERRUN_ERR                        = 0xc,
8316290650Shselasky	MLX5_HEALTH_SYNDR_EQ_ERR                                      = 0xd,
8317290650Shselasky	MLX5_HEALTH_SYNDR_EQ_INV                                      = 0xe,
8318290650Shselasky	MLX5_HEALTH_SYNDR_FFSER_ERR                                   = 0xf,
8319290650Shselasky	MLX5_HEALTH_SYNDR_HIGH_TEMP                                   = 0x10,
8320290650Shselasky};
8321290650Shselasky
8322290650Shselaskystruct mlx5_ifc_initial_seg_bits {
8323290650Shselasky	u8         fw_rev_minor[0x10];
8324290650Shselasky	u8         fw_rev_major[0x10];
8325290650Shselasky
8326290650Shselasky	u8         cmd_interface_rev[0x10];
8327290650Shselasky	u8         fw_rev_subminor[0x10];
8328290650Shselasky
8329290650Shselasky	u8         reserved_0[0x40];
8330290650Shselasky
8331290650Shselasky	u8         cmdq_phy_addr_63_32[0x20];
8332290650Shselasky
8333290650Shselasky	u8         cmdq_phy_addr_31_12[0x14];
8334290650Shselasky	u8         reserved_1[0x2];
8335290650Shselasky	u8         nic_interface[0x2];
8336290650Shselasky	u8         log_cmdq_size[0x4];
8337290650Shselasky	u8         log_cmdq_stride[0x4];
8338290650Shselasky
8339290650Shselasky	u8         command_doorbell_vector[0x20];
8340290650Shselasky
8341290650Shselasky	u8         reserved_2[0xf00];
8342290650Shselasky
8343290650Shselasky	u8         initializing[0x1];
8344290650Shselasky	u8         reserved_3[0x4];
8345290650Shselasky	u8         nic_interface_supported[0x3];
8346290650Shselasky	u8         reserved_4[0x18];
8347290650Shselasky
8348290650Shselasky	struct mlx5_ifc_health_buffer_bits health_buffer;
8349290650Shselasky
8350290650Shselasky	u8         no_dram_nic_offset[0x20];
8351290650Shselasky
8352290650Shselasky	u8         reserved_5[0x6de0];
8353290650Shselasky
8354290650Shselasky	u8         internal_timer_h[0x20];
8355290650Shselasky
8356290650Shselasky	u8         internal_timer_l[0x20];
8357290650Shselasky
8358290650Shselasky	u8         reserved_6[0x20];
8359290650Shselasky
8360290650Shselasky	u8         reserved_7[0x1f];
8361290650Shselasky	u8         clear_int[0x1];
8362290650Shselasky
8363290650Shselasky	u8         health_syndrome[0x8];
8364290650Shselasky	u8         health_counter[0x18];
8365290650Shselasky
8366290650Shselasky	u8         reserved_8[0x17fc0];
8367290650Shselasky};
8368290650Shselasky
8369290650Shselaskyunion mlx5_ifc_icmd_interface_document_bits {
8370290650Shselasky	struct mlx5_ifc_fw_version_bits fw_version;
8371290650Shselasky	struct mlx5_ifc_icmd_access_reg_in_bits icmd_access_reg_in;
8372290650Shselasky	struct mlx5_ifc_icmd_access_reg_out_bits icmd_access_reg_out;
8373290650Shselasky	struct mlx5_ifc_icmd_init_ocsd_in_bits icmd_init_ocsd_in;
8374290650Shselasky	struct mlx5_ifc_icmd_ocbb_init_in_bits icmd_ocbb_init_in;
8375290650Shselasky	struct mlx5_ifc_icmd_ocbb_query_etoc_stats_out_bits icmd_ocbb_query_etoc_stats_out;
8376290650Shselasky	struct mlx5_ifc_icmd_ocbb_query_header_stats_out_bits icmd_ocbb_query_header_stats_out;
8377290650Shselasky	struct mlx5_ifc_icmd_query_cap_general_bits icmd_query_cap_general;
8378290650Shselasky	struct mlx5_ifc_icmd_query_cap_in_bits icmd_query_cap_in;
8379290650Shselasky	struct mlx5_ifc_icmd_query_fw_info_out_bits icmd_query_fw_info_out;
8380290650Shselasky	struct mlx5_ifc_icmd_query_virtual_mac_out_bits icmd_query_virtual_mac_out;
8381290650Shselasky	struct mlx5_ifc_icmd_set_virtual_mac_in_bits icmd_set_virtual_mac_in;
8382290650Shselasky	struct mlx5_ifc_icmd_set_wol_rol_in_bits icmd_set_wol_rol_in;
8383290650Shselasky	struct mlx5_ifc_icmd_set_wol_rol_out_bits icmd_set_wol_rol_out;
8384290650Shselasky	u8         reserved_0[0x42c0];
8385290650Shselasky};
8386290650Shselasky
8387290650Shselaskyunion mlx5_ifc_eth_cntrs_grp_data_layout_auto_bits {
8388290650Shselasky	struct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits eth_802_3_cntrs_grp_data_layout;
8389290650Shselasky	struct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits eth_2863_cntrs_grp_data_layout;
8390290650Shselasky	struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits eth_2819_cntrs_grp_data_layout;
8391290650Shselasky	struct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits eth_3635_cntrs_grp_data_layout;
8392290650Shselasky	struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits eth_extended_cntrs_grp_data_layout;
8393290650Shselasky	struct mlx5_ifc_eth_per_prio_grp_data_layout_bits eth_per_prio_grp_data_layout;
8394290650Shselasky	struct mlx5_ifc_phys_layer_cntrs_bits phys_layer_cntrs;
8395290650Shselasky	u8         reserved_0[0x7c0];
8396290650Shselasky};
8397290650Shselasky
8398290650Shselaskystruct mlx5_ifc_ppcnt_reg_bits {
8399290650Shselasky	u8         swid[0x8];
8400290650Shselasky	u8         local_port[0x8];
8401290650Shselasky	u8         pnat[0x2];
8402290650Shselasky	u8         reserved_0[0x8];
8403290650Shselasky	u8         grp[0x6];
8404290650Shselasky
8405290650Shselasky	u8         clr[0x1];
8406290650Shselasky	u8         reserved_1[0x1c];
8407290650Shselasky	u8         prio_tc[0x3];
8408290650Shselasky
8409290650Shselasky	union mlx5_ifc_eth_cntrs_grp_data_layout_auto_bits counter_set;
8410290650Shselasky};
8411290650Shselasky
8412290650Shselaskyunion mlx5_ifc_ports_control_registers_document_bits {
8413290650Shselasky	struct mlx5_ifc_ib_portcntrs_attribute_grp_data_bits ib_portcntrs_attribute_grp_data;
8414290650Shselasky	struct mlx5_ifc_bufferx_reg_bits bufferx_reg;
8415290650Shselasky	struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits eth_2819_cntrs_grp_data_layout;
8416290650Shselasky	struct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits eth_2863_cntrs_grp_data_layout;
8417290650Shselasky	struct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits eth_3635_cntrs_grp_data_layout;
8418290650Shselasky	struct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits eth_802_3_cntrs_grp_data_layout;
8419290650Shselasky	struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits eth_extended_cntrs_grp_data_layout;
8420290650Shselasky	struct mlx5_ifc_eth_per_prio_grp_data_layout_bits eth_per_prio_grp_data_layout;
8421290650Shselasky	struct mlx5_ifc_eth_per_traffic_class_cong_layout_bits eth_per_traffic_class_cong_layout;
8422290650Shselasky	struct mlx5_ifc_eth_per_traffic_class_layout_bits eth_per_traffic_class_layout;
8423290650Shselasky	struct mlx5_ifc_lane_2_module_mapping_bits lane_2_module_mapping;
8424290650Shselasky	struct mlx5_ifc_link_level_retrans_cntr_grp_date_bits link_level_retrans_cntr_grp_date;
8425290650Shselasky	struct mlx5_ifc_pamp_reg_bits pamp_reg;
8426290650Shselasky	struct mlx5_ifc_paos_reg_bits paos_reg;
8427290650Shselasky	struct mlx5_ifc_pbmc_reg_bits pbmc_reg;
8428290650Shselasky	struct mlx5_ifc_pcap_reg_bits pcap_reg;
8429290650Shselasky	struct mlx5_ifc_peir_reg_bits peir_reg;
8430290650Shselasky	struct mlx5_ifc_pelc_reg_bits pelc_reg;
8431290650Shselasky	struct mlx5_ifc_pfcc_reg_bits pfcc_reg;
8432290650Shselasky	struct mlx5_ifc_phbr_binding_reg_bits phbr_binding_reg;
8433290650Shselasky	struct mlx5_ifc_phbr_for_port_tclass_reg_bits phbr_for_port_tclass_reg;
8434290650Shselasky	struct mlx5_ifc_phbr_for_prio_reg_bits phbr_for_prio_reg;
8435290650Shselasky	struct mlx5_ifc_phrr_reg_bits phrr_reg;
8436290650Shselasky	struct mlx5_ifc_phys_layer_cntrs_bits phys_layer_cntrs;
8437290650Shselasky	struct mlx5_ifc_pifr_reg_bits pifr_reg;
8438290650Shselasky	struct mlx5_ifc_pipg_reg_bits pipg_reg;
8439290650Shselasky	struct mlx5_ifc_plbf_reg_bits plbf_reg;
8440290650Shselasky	struct mlx5_ifc_plib_reg_bits plib_reg;
8441290650Shselasky	struct mlx5_ifc_pll_status_data_bits pll_status_data;
8442290650Shselasky	struct mlx5_ifc_plpc_reg_bits plpc_reg;
8443290650Shselasky	struct mlx5_ifc_pmaos_reg_bits pmaos_reg;
8444290650Shselasky	struct mlx5_ifc_pmlp_reg_bits pmlp_reg;
8445290650Shselasky	struct mlx5_ifc_pmlpn_reg_bits pmlpn_reg;
8446290650Shselasky	struct mlx5_ifc_pmpc_reg_bits pmpc_reg;
8447290650Shselasky	struct mlx5_ifc_pmpe_reg_bits pmpe_reg;
8448290650Shselasky	struct mlx5_ifc_pmpr_reg_bits pmpr_reg;
8449290650Shselasky	struct mlx5_ifc_pmtu_reg_bits pmtu_reg;
8450290650Shselasky	struct mlx5_ifc_ppad_reg_bits ppad_reg;
8451290650Shselasky	struct mlx5_ifc_ppcnt_reg_bits ppcnt_reg;
8452290650Shselasky	struct mlx5_ifc_ppll_reg_bits ppll_reg;
8453290650Shselasky	struct mlx5_ifc_pplm_reg_bits pplm_reg;
8454290650Shselasky	struct mlx5_ifc_pplr_reg_bits pplr_reg;
8455290650Shselasky	struct mlx5_ifc_ppsc_reg_bits ppsc_reg;
8456290650Shselasky	struct mlx5_ifc_pspa_reg_bits pspa_reg;
8457290650Shselasky	struct mlx5_ifc_ptas_reg_bits ptas_reg;
8458290650Shselasky	struct mlx5_ifc_ptys_reg_bits ptys_reg;
8459290650Shselasky	struct mlx5_ifc_pude_reg_bits pude_reg;
8460290650Shselasky	struct mlx5_ifc_pvlc_reg_bits pvlc_reg;
8461290650Shselasky	struct mlx5_ifc_slrg_reg_bits slrg_reg;
8462290650Shselasky	struct mlx5_ifc_slrp_reg_bits slrp_reg;
8463290650Shselasky	struct mlx5_ifc_sltp_reg_bits sltp_reg;
8464290650Shselasky	u8         reserved_0[0x7880];
8465290650Shselasky};
8466290650Shselasky
8467290650Shselaskyunion mlx5_ifc_debug_enhancements_document_bits {
8468290650Shselasky	struct mlx5_ifc_health_buffer_bits health_buffer;
8469290650Shselasky	u8         reserved_0[0x200];
8470290650Shselasky};
8471290650Shselasky
8472290650Shselaskyunion mlx5_ifc_no_dram_nic_document_bits {
8473290650Shselasky	struct mlx5_ifc_nodnic_config_reg_bits nodnic_config_reg;
8474290650Shselasky	struct mlx5_ifc_nodnic_cq_arming_word_bits nodnic_cq_arming_word;
8475290650Shselasky	struct mlx5_ifc_nodnic_event_word_bits nodnic_event_word;
8476290650Shselasky	struct mlx5_ifc_nodnic_gid_filters_bits nodnic_gid_filters;
8477290650Shselasky	struct mlx5_ifc_nodnic_mac_filters_bits nodnic_mac_filters;
8478290650Shselasky	struct mlx5_ifc_nodnic_port_config_reg_bits nodnic_port_config_reg;
8479290650Shselasky	struct mlx5_ifc_nodnic_ring_config_reg_bits nodnic_ring_config_reg;
8480290650Shselasky	struct mlx5_ifc_nodnic_ring_doorbell_bits nodnic_ring_doorbell;
8481290650Shselasky	u8         reserved_0[0x3160];
8482290650Shselasky};
8483290650Shselasky
8484290650Shselaskyunion mlx5_ifc_uplink_pci_interface_document_bits {
8485290650Shselasky	struct mlx5_ifc_initial_seg_bits initial_seg;
8486290650Shselasky	struct mlx5_ifc_vendor_specific_cap_bits vendor_specific_cap;
8487290650Shselasky	u8         reserved_0[0x20120];
8488290650Shselasky};
8489290650Shselasky
8490290650Shselasky
8491290650Shselasky#endif /* MLX5_IFC_H */
8492