mlx5_ifc.h revision 329204
1290650Shselasky/*-
2321992Shselasky * Copyright (c) 2013-2017, 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: stable/11/sys/dev/mlx5/mlx5_ifc.h 329204 2018-02-13 14:57:34Z hselasky $
26321992Shselasky */
27290650Shselasky
28290650Shselasky#ifndef MLX5_IFC_H
29290650Shselasky#define MLX5_IFC_H
30290650Shselasky
31290650Shselaskyenum {
32290650Shselasky	MLX5_EVENT_TYPE_COMP                                       = 0x0,
33290650Shselasky	MLX5_EVENT_TYPE_PATH_MIG                                   = 0x1,
34290650Shselasky	MLX5_EVENT_TYPE_COMM_EST                                   = 0x2,
35290650Shselasky	MLX5_EVENT_TYPE_SQ_DRAINED                                 = 0x3,
36290650Shselasky	MLX5_EVENT_TYPE_SRQ_LAST_WQE                               = 0x13,
37290650Shselasky	MLX5_EVENT_TYPE_SRQ_RQ_LIMIT                               = 0x14,
38290650Shselasky	MLX5_EVENT_TYPE_DCT_DRAINED                                = 0x1c,
39290650Shselasky	MLX5_EVENT_TYPE_DCT_KEY_VIOLATION                          = 0x1d,
40290650Shselasky	MLX5_EVENT_TYPE_CQ_ERROR                                   = 0x4,
41290650Shselasky	MLX5_EVENT_TYPE_WQ_CATAS_ERROR                             = 0x5,
42290650Shselasky	MLX5_EVENT_TYPE_PATH_MIG_FAILED                            = 0x7,
43290650Shselasky	MLX5_EVENT_TYPE_PAGE_FAULT                                 = 0xc,
44290650Shselasky	MLX5_EVENT_TYPE_WQ_INVAL_REQ_ERROR                         = 0x10,
45290650Shselasky	MLX5_EVENT_TYPE_WQ_ACCESS_ERROR                            = 0x11,
46290650Shselasky	MLX5_EVENT_TYPE_SRQ_CATAS_ERROR                            = 0x12,
47290650Shselasky	MLX5_EVENT_TYPE_INTERNAL_ERROR                             = 0x8,
48290650Shselasky	MLX5_EVENT_TYPE_PORT_CHANGE                                = 0x9,
49290650Shselasky	MLX5_EVENT_TYPE_GPIO_EVENT                                 = 0x15,
50290650Shselasky	MLX5_EVENT_TYPE_CODING_PORT_MODULE_EVENT                   = 0x16,
51306233Shselasky	MLX5_EVENT_TYPE_CODING_TEMP_WARNING_EVENT                  = 0x17,
52290650Shselasky	MLX5_EVENT_TYPE_REMOTE_CONFIG                              = 0x19,
53306233Shselasky	MLX5_EVENT_TYPE_CODING_DCBX_CHANGE_EVENT                   = 0x1e,
54321992Shselasky	MLX5_EVENT_TYPE_CODING_PPS_EVENT                           = 0x25,
55321992Shselasky	MLX5_EVENT_TYPE_CODING_GENERAL_NOTIFICATION_EVENT          = 0x22,
56290650Shselasky	MLX5_EVENT_TYPE_DB_BF_CONGESTION                           = 0x1a,
57290650Shselasky	MLX5_EVENT_TYPE_STALL_EVENT                                = 0x1b,
58290650Shselasky	MLX5_EVENT_TYPE_DROPPED_PACKET_LOGGED_EVENT                = 0x1f,
59290650Shselasky	MLX5_EVENT_TYPE_CMD                                        = 0xa,
60290650Shselasky	MLX5_EVENT_TYPE_PAGE_REQUEST                               = 0xb,
61290650Shselasky	MLX5_EVENT_TYPE_NIC_VPORT_CHANGE                           = 0xd
62290650Shselasky};
63290650Shselasky
64290650Shselaskyenum {
65306233Shselasky	MLX5_MODIFY_TIR_BITMASK_LRO                                = 0x0,
66306233Shselasky	MLX5_MODIFY_TIR_BITMASK_INDIRECT_TABLE                     = 0x1,
67306233Shselasky	MLX5_MODIFY_TIR_BITMASK_HASH                               = 0x2,
68306233Shselasky	MLX5_MODIFY_TIR_BITMASK_TUNNELED_OFFLOAD_EN                = 0x3,
69306233Shselasky	MLX5_MODIFY_TIR_BITMASK_SELF_LB_EN                         = 0x4
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,
89321992Shselasky	MLX5_CMD_OP_QUERY_OTHER_HCA_CAP           = 0x10e,
90321992Shselasky	MLX5_CMD_OP_MODIFY_OTHER_HCA_CAP          = 0x10f,
91290650Shselasky	MLX5_CMD_OP_CREATE_MKEY                   = 0x200,
92290650Shselasky	MLX5_CMD_OP_QUERY_MKEY                    = 0x201,
93290650Shselasky	MLX5_CMD_OP_DESTROY_MKEY                  = 0x202,
94290650Shselasky	MLX5_CMD_OP_QUERY_SPECIAL_CONTEXTS        = 0x203,
95290650Shselasky	MLX5_CMD_OP_PAGE_FAULT_RESUME             = 0x204,
96290650Shselasky	MLX5_CMD_OP_CREATE_EQ                     = 0x301,
97290650Shselasky	MLX5_CMD_OP_DESTROY_EQ                    = 0x302,
98290650Shselasky	MLX5_CMD_OP_QUERY_EQ                      = 0x303,
99290650Shselasky	MLX5_CMD_OP_GEN_EQE                       = 0x304,
100290650Shselasky	MLX5_CMD_OP_CREATE_CQ                     = 0x400,
101290650Shselasky	MLX5_CMD_OP_DESTROY_CQ                    = 0x401,
102290650Shselasky	MLX5_CMD_OP_QUERY_CQ                      = 0x402,
103290650Shselasky	MLX5_CMD_OP_MODIFY_CQ                     = 0x403,
104290650Shselasky	MLX5_CMD_OP_CREATE_QP                     = 0x500,
105290650Shselasky	MLX5_CMD_OP_DESTROY_QP                    = 0x501,
106290650Shselasky	MLX5_CMD_OP_RST2INIT_QP                   = 0x502,
107290650Shselasky	MLX5_CMD_OP_INIT2RTR_QP                   = 0x503,
108290650Shselasky	MLX5_CMD_OP_RTR2RTS_QP                    = 0x504,
109290650Shselasky	MLX5_CMD_OP_RTS2RTS_QP                    = 0x505,
110290650Shselasky	MLX5_CMD_OP_SQERR2RTS_QP                  = 0x506,
111290650Shselasky	MLX5_CMD_OP_2ERR_QP                       = 0x507,
112290650Shselasky	MLX5_CMD_OP_2RST_QP                       = 0x50a,
113290650Shselasky	MLX5_CMD_OP_QUERY_QP                      = 0x50b,
114290650Shselasky	MLX5_CMD_OP_SQD_RTS_QP                    = 0x50c,
115290650Shselasky	MLX5_CMD_OP_INIT2INIT_QP                  = 0x50e,
116290650Shselasky	MLX5_CMD_OP_CREATE_PSV                    = 0x600,
117290650Shselasky	MLX5_CMD_OP_DESTROY_PSV                   = 0x601,
118290650Shselasky	MLX5_CMD_OP_CREATE_SRQ                    = 0x700,
119290650Shselasky	MLX5_CMD_OP_DESTROY_SRQ                   = 0x701,
120290650Shselasky	MLX5_CMD_OP_QUERY_SRQ                     = 0x702,
121290650Shselasky	MLX5_CMD_OP_ARM_RQ                        = 0x703,
122290650Shselasky	MLX5_CMD_OP_CREATE_XRC_SRQ                = 0x705,
123290650Shselasky	MLX5_CMD_OP_DESTROY_XRC_SRQ               = 0x706,
124290650Shselasky	MLX5_CMD_OP_QUERY_XRC_SRQ                 = 0x707,
125290650Shselasky	MLX5_CMD_OP_ARM_XRC_SRQ                   = 0x708,
126290650Shselasky	MLX5_CMD_OP_CREATE_DCT                    = 0x710,
127290650Shselasky	MLX5_CMD_OP_DESTROY_DCT                   = 0x711,
128290650Shselasky	MLX5_CMD_OP_DRAIN_DCT                     = 0x712,
129290650Shselasky	MLX5_CMD_OP_QUERY_DCT                     = 0x713,
130290650Shselasky	MLX5_CMD_OP_ARM_DCT_FOR_KEY_VIOLATION     = 0x714,
131290650Shselasky	MLX5_CMD_OP_SET_DC_CNAK_TRACE             = 0x715,
132290650Shselasky	MLX5_CMD_OP_QUERY_DC_CNAK_TRACE           = 0x716,
133290650Shselasky	MLX5_CMD_OP_QUERY_VPORT_STATE             = 0x750,
134290650Shselasky	MLX5_CMD_OP_MODIFY_VPORT_STATE            = 0x751,
135290650Shselasky	MLX5_CMD_OP_QUERY_ESW_VPORT_CONTEXT       = 0x752,
136290650Shselasky	MLX5_CMD_OP_MODIFY_ESW_VPORT_CONTEXT      = 0x753,
137290650Shselasky	MLX5_CMD_OP_QUERY_NIC_VPORT_CONTEXT       = 0x754,
138290650Shselasky	MLX5_CMD_OP_MODIFY_NIC_VPORT_CONTEXT      = 0x755,
139290650Shselasky	MLX5_CMD_OP_QUERY_ROCE_ADDRESS            = 0x760,
140290650Shselasky	MLX5_CMD_OP_SET_ROCE_ADDRESS              = 0x761,
141290650Shselasky	MLX5_CMD_OP_QUERY_HCA_VPORT_CONTEXT       = 0x762,
142290650Shselasky	MLX5_CMD_OP_MODIFY_HCA_VPORT_CONTEXT      = 0x763,
143290650Shselasky	MLX5_CMD_OP_QUERY_HCA_VPORT_GID           = 0x764,
144290650Shselasky	MLX5_CMD_OP_QUERY_HCA_VPORT_PKEY          = 0x765,
145290650Shselasky	MLX5_CMD_OP_QUERY_VPORT_COUNTER           = 0x770,
146290650Shselasky	MLX5_CMD_OP_ALLOC_Q_COUNTER               = 0x771,
147290650Shselasky	MLX5_CMD_OP_DEALLOC_Q_COUNTER             = 0x772,
148290650Shselasky	MLX5_CMD_OP_QUERY_Q_COUNTER               = 0x773,
149306233Shselasky	MLX5_CMD_OP_SET_RATE_LIMIT                = 0x780,
150306233Shselasky	MLX5_CMD_OP_QUERY_RATE_LIMIT              = 0x781,
151308678Shselasky	MLX5_CMD_OP_CREATE_SCHEDULING_ELEMENT     = 0x782,
152308678Shselasky	MLX5_CMD_OP_DESTROY_SCHEDULING_ELEMENT    = 0x783,
153308678Shselasky	MLX5_CMD_OP_QUERY_SCHEDULING_ELEMENT      = 0x784,
154308678Shselasky	MLX5_CMD_OP_MODIFY_SCHEDULING_ELEMENT     = 0x785,
155308678Shselasky	MLX5_CMD_OP_CREATE_QOS_PARA_VPORT         = 0x786,
156308678Shselasky	MLX5_CMD_OP_DESTROY_QOS_PARA_VPORT        = 0x787,
157290650Shselasky	MLX5_CMD_OP_ALLOC_PD                      = 0x800,
158290650Shselasky	MLX5_CMD_OP_DEALLOC_PD                    = 0x801,
159290650Shselasky	MLX5_CMD_OP_ALLOC_UAR                     = 0x802,
160290650Shselasky	MLX5_CMD_OP_DEALLOC_UAR                   = 0x803,
161290650Shselasky	MLX5_CMD_OP_CONFIG_INT_MODERATION         = 0x804,
162290650Shselasky	MLX5_CMD_OP_ACCESS_REG                    = 0x805,
163290650Shselasky	MLX5_CMD_OP_ATTACH_TO_MCG                 = 0x806,
164290650Shselasky	MLX5_CMD_OP_DETACH_FROM_MCG               = 0x807,
165290650Shselasky	MLX5_CMD_OP_GET_DROPPED_PACKET_LOG        = 0x80a,
166290650Shselasky	MLX5_CMD_OP_MAD_IFC                       = 0x50d,
167290650Shselasky	MLX5_CMD_OP_QUERY_MAD_DEMUX               = 0x80b,
168290650Shselasky	MLX5_CMD_OP_SET_MAD_DEMUX                 = 0x80c,
169290650Shselasky	MLX5_CMD_OP_NOP                           = 0x80d,
170290650Shselasky	MLX5_CMD_OP_ALLOC_XRCD                    = 0x80e,
171290650Shselasky	MLX5_CMD_OP_DEALLOC_XRCD                  = 0x80f,
172290650Shselasky	MLX5_CMD_OP_SET_BURST_SIZE                = 0x812,
173290650Shselasky	MLX5_CMD_OP_QUERY_BURST_SIZE              = 0x813,
174290650Shselasky	MLX5_CMD_OP_ACTIVATE_TRACER               = 0x814,
175290650Shselasky	MLX5_CMD_OP_DEACTIVATE_TRACER             = 0x815,
176290650Shselasky	MLX5_CMD_OP_ALLOC_TRANSPORT_DOMAIN        = 0x816,
177290650Shselasky	MLX5_CMD_OP_DEALLOC_TRANSPORT_DOMAIN      = 0x817,
178306233Shselasky	MLX5_CMD_OP_SET_DIAGNOSTICS               = 0x820,
179306233Shselasky	MLX5_CMD_OP_QUERY_DIAGNOSTICS             = 0x821,
180290650Shselasky	MLX5_CMD_OP_QUERY_CONG_STATUS             = 0x822,
181290650Shselasky	MLX5_CMD_OP_MODIFY_CONG_STATUS            = 0x823,
182290650Shselasky	MLX5_CMD_OP_QUERY_CONG_PARAMS             = 0x824,
183290650Shselasky	MLX5_CMD_OP_MODIFY_CONG_PARAMS            = 0x825,
184290650Shselasky	MLX5_CMD_OP_QUERY_CONG_STATISTICS         = 0x826,
185290650Shselasky	MLX5_CMD_OP_ADD_VXLAN_UDP_DPORT           = 0x827,
186290650Shselasky	MLX5_CMD_OP_DELETE_VXLAN_UDP_DPORT        = 0x828,
187290650Shselasky	MLX5_CMD_OP_SET_L2_TABLE_ENTRY            = 0x829,
188290650Shselasky	MLX5_CMD_OP_QUERY_L2_TABLE_ENTRY          = 0x82a,
189290650Shselasky	MLX5_CMD_OP_DELETE_L2_TABLE_ENTRY         = 0x82b,
190290650Shselasky	MLX5_CMD_OP_SET_WOL_ROL                   = 0x830,
191290650Shselasky	MLX5_CMD_OP_QUERY_WOL_ROL                 = 0x831,
192321992Shselasky	MLX5_CMD_OP_CREATE_LAG                    = 0x840,
193321992Shselasky	MLX5_CMD_OP_MODIFY_LAG                    = 0x841,
194321992Shselasky	MLX5_CMD_OP_QUERY_LAG                     = 0x842,
195321992Shselasky	MLX5_CMD_OP_DESTROY_LAG                   = 0x843,
196321992Shselasky	MLX5_CMD_OP_CREATE_VPORT_LAG              = 0x844,
197321992Shselasky	MLX5_CMD_OP_DESTROY_VPORT_LAG             = 0x845,
198290650Shselasky	MLX5_CMD_OP_CREATE_TIR                    = 0x900,
199290650Shselasky	MLX5_CMD_OP_MODIFY_TIR                    = 0x901,
200290650Shselasky	MLX5_CMD_OP_DESTROY_TIR                   = 0x902,
201290650Shselasky	MLX5_CMD_OP_QUERY_TIR                     = 0x903,
202290650Shselasky	MLX5_CMD_OP_CREATE_SQ                     = 0x904,
203290650Shselasky	MLX5_CMD_OP_MODIFY_SQ                     = 0x905,
204290650Shselasky	MLX5_CMD_OP_DESTROY_SQ                    = 0x906,
205290650Shselasky	MLX5_CMD_OP_QUERY_SQ                      = 0x907,
206290650Shselasky	MLX5_CMD_OP_CREATE_RQ                     = 0x908,
207290650Shselasky	MLX5_CMD_OP_MODIFY_RQ                     = 0x909,
208290650Shselasky	MLX5_CMD_OP_DESTROY_RQ                    = 0x90a,
209290650Shselasky	MLX5_CMD_OP_QUERY_RQ                      = 0x90b,
210290650Shselasky	MLX5_CMD_OP_CREATE_RMP                    = 0x90c,
211290650Shselasky	MLX5_CMD_OP_MODIFY_RMP                    = 0x90d,
212290650Shselasky	MLX5_CMD_OP_DESTROY_RMP                   = 0x90e,
213290650Shselasky	MLX5_CMD_OP_QUERY_RMP                     = 0x90f,
214321992Shselasky	MLX5_CMD_OP_SET_DELAY_DROP_PARAMS         = 0x910,
215321992Shselasky	MLX5_CMD_OP_QUERY_DELAY_DROP_PARAMS       = 0x911,
216290650Shselasky	MLX5_CMD_OP_CREATE_TIS                    = 0x912,
217290650Shselasky	MLX5_CMD_OP_MODIFY_TIS                    = 0x913,
218290650Shselasky	MLX5_CMD_OP_DESTROY_TIS                   = 0x914,
219290650Shselasky	MLX5_CMD_OP_QUERY_TIS                     = 0x915,
220290650Shselasky	MLX5_CMD_OP_CREATE_RQT                    = 0x916,
221290650Shselasky	MLX5_CMD_OP_MODIFY_RQT                    = 0x917,
222290650Shselasky	MLX5_CMD_OP_DESTROY_RQT                   = 0x918,
223290650Shselasky	MLX5_CMD_OP_QUERY_RQT                     = 0x919,
224290650Shselasky	MLX5_CMD_OP_SET_FLOW_TABLE_ROOT           = 0x92f,
225290650Shselasky	MLX5_CMD_OP_CREATE_FLOW_TABLE             = 0x930,
226290650Shselasky	MLX5_CMD_OP_DESTROY_FLOW_TABLE            = 0x931,
227290650Shselasky	MLX5_CMD_OP_QUERY_FLOW_TABLE              = 0x932,
228290650Shselasky	MLX5_CMD_OP_CREATE_FLOW_GROUP             = 0x933,
229290650Shselasky	MLX5_CMD_OP_DESTROY_FLOW_GROUP            = 0x934,
230290650Shselasky	MLX5_CMD_OP_QUERY_FLOW_GROUP              = 0x935,
231290650Shselasky	MLX5_CMD_OP_SET_FLOW_TABLE_ENTRY          = 0x936,
232290650Shselasky	MLX5_CMD_OP_QUERY_FLOW_TABLE_ENTRY        = 0x937,
233290650Shselasky	MLX5_CMD_OP_DELETE_FLOW_TABLE_ENTRY       = 0x938,
234290650Shselasky	MLX5_CMD_OP_ALLOC_FLOW_COUNTER            = 0x939,
235290650Shselasky	MLX5_CMD_OP_DEALLOC_FLOW_COUNTER          = 0x93a,
236321992Shselasky	MLX5_CMD_OP_QUERY_FLOW_COUNTER            = 0x93b,
237321992Shselasky	MLX5_CMD_OP_MODIFY_FLOW_TABLE             = 0x93c,
238321992Shselasky	MLX5_CMD_OP_ALLOC_ENCAP_HEADER            = 0x93d,
239321992Shselasky	MLX5_CMD_OP_DEALLOC_ENCAP_HEADER          = 0x93e,
240290650Shselasky};
241290650Shselasky
242290650Shselaskyenum {
243290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OPCODE_QUERY_FW_INFO     = 0x8007,
244290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_QUERY_CAPABILITY         = 0x8400,
245290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_ACCESS_REGISTER          = 0x9001,
246290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_QUERY_VIRTUAL_MAC        = 0x9003,
247290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_SET_VIRTUAL_MAC          = 0x9004,
248290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_QUERY_WOL_ROL            = 0x9005,
249290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_SET_WOL_ROL              = 0x9006,
250290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OCBB_INIT                = 0x9007,
251290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OCBB_QUERY_HEADER_STATUS = 0x9008,
252290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OCBB_QUERY_ETOC_STATUS   = 0x9009,
253290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OCBB_SET_EVENT           = 0x900a,
254290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OPCODE_INIT_OCSD         = 0xf004
255290650Shselasky};
256290650Shselasky
257290650Shselaskystruct mlx5_ifc_flow_table_fields_supported_bits {
258290650Shselasky	u8         outer_dmac[0x1];
259290650Shselasky	u8         outer_smac[0x1];
260290650Shselasky	u8         outer_ether_type[0x1];
261290650Shselasky	u8         reserved_0[0x1];
262290650Shselasky	u8         outer_first_prio[0x1];
263290650Shselasky	u8         outer_first_cfi[0x1];
264290650Shselasky	u8         outer_first_vid[0x1];
265290650Shselasky	u8         reserved_1[0x1];
266290650Shselasky	u8         outer_second_prio[0x1];
267290650Shselasky	u8         outer_second_cfi[0x1];
268290650Shselasky	u8         outer_second_vid[0x1];
269290650Shselasky	u8         outer_ipv6_flow_label[0x1];
270290650Shselasky	u8         outer_sip[0x1];
271290650Shselasky	u8         outer_dip[0x1];
272290650Shselasky	u8         outer_frag[0x1];
273290650Shselasky	u8         outer_ip_protocol[0x1];
274290650Shselasky	u8         outer_ip_ecn[0x1];
275290650Shselasky	u8         outer_ip_dscp[0x1];
276290650Shselasky	u8         outer_udp_sport[0x1];
277290650Shselasky	u8         outer_udp_dport[0x1];
278290650Shselasky	u8         outer_tcp_sport[0x1];
279290650Shselasky	u8         outer_tcp_dport[0x1];
280290650Shselasky	u8         outer_tcp_flags[0x1];
281290650Shselasky	u8         outer_gre_protocol[0x1];
282290650Shselasky	u8         outer_gre_key[0x1];
283290650Shselasky	u8         outer_vxlan_vni[0x1];
284321992Shselasky	u8         outer_geneve_vni[0x1];
285321992Shselasky	u8         outer_geneve_oam[0x1];
286321992Shselasky	u8         outer_geneve_protocol_type[0x1];
287321992Shselasky	u8         outer_geneve_opt_len[0x1];
288321992Shselasky	u8         reserved_2[0x1];
289290650Shselasky	u8         source_eswitch_port[0x1];
290290650Shselasky
291290650Shselasky	u8         inner_dmac[0x1];
292290650Shselasky	u8         inner_smac[0x1];
293290650Shselasky	u8         inner_ether_type[0x1];
294290650Shselasky	u8         reserved_3[0x1];
295290650Shselasky	u8         inner_first_prio[0x1];
296290650Shselasky	u8         inner_first_cfi[0x1];
297290650Shselasky	u8         inner_first_vid[0x1];
298290650Shselasky	u8         reserved_4[0x1];
299290650Shselasky	u8         inner_second_prio[0x1];
300290650Shselasky	u8         inner_second_cfi[0x1];
301290650Shselasky	u8         inner_second_vid[0x1];
302290650Shselasky	u8         inner_ipv6_flow_label[0x1];
303290650Shselasky	u8         inner_sip[0x1];
304290650Shselasky	u8         inner_dip[0x1];
305290650Shselasky	u8         inner_frag[0x1];
306290650Shselasky	u8         inner_ip_protocol[0x1];
307290650Shselasky	u8         inner_ip_ecn[0x1];
308290650Shselasky	u8         inner_ip_dscp[0x1];
309290650Shselasky	u8         inner_udp_sport[0x1];
310290650Shselasky	u8         inner_udp_dport[0x1];
311290650Shselasky	u8         inner_tcp_sport[0x1];
312290650Shselasky	u8         inner_tcp_dport[0x1];
313290650Shselasky	u8         inner_tcp_flags[0x1];
314290650Shselasky	u8         reserved_5[0x9];
315290650Shselasky
316321992Shselasky	u8         reserved_6[0x1a];
317321992Shselasky	u8         bth_dst_qp[0x1];
318321992Shselasky	u8         reserved_7[0x4];
319290650Shselasky	u8         source_sqn[0x1];
320290650Shselasky
321321992Shselasky	u8         reserved_8[0x20];
322290650Shselasky};
323290650Shselasky
324308678Shselaskystruct mlx5_ifc_eth_discard_cntrs_grp_bits {
325308678Shselasky	u8         ingress_general_high[0x20];
326308678Shselasky
327308678Shselasky	u8         ingress_general_low[0x20];
328308678Shselasky
329308678Shselasky	u8         ingress_policy_engine_high[0x20];
330308678Shselasky
331308678Shselasky	u8         ingress_policy_engine_low[0x20];
332308678Shselasky
333308678Shselasky	u8         ingress_vlan_membership_high[0x20];
334308678Shselasky
335308678Shselasky	u8         ingress_vlan_membership_low[0x20];
336308678Shselasky
337308678Shselasky	u8         ingress_tag_frame_type_high[0x20];
338308678Shselasky
339308678Shselasky	u8         ingress_tag_frame_type_low[0x20];
340308678Shselasky
341308678Shselasky	u8         egress_vlan_membership_high[0x20];
342308678Shselasky
343308678Shselasky	u8         egress_vlan_membership_low[0x20];
344308678Shselasky
345308678Shselasky	u8         loopback_filter_high[0x20];
346308678Shselasky
347308678Shselasky	u8         loopback_filter_low[0x20];
348308678Shselasky
349308678Shselasky	u8         egress_general_high[0x20];
350308678Shselasky
351308678Shselasky	u8         egress_general_low[0x20];
352308678Shselasky
353308678Shselasky	u8         reserved_at_1c0[0x40];
354308678Shselasky
355308678Shselasky	u8         egress_hoq_high[0x20];
356308678Shselasky
357308678Shselasky	u8         egress_hoq_low[0x20];
358308678Shselasky
359308678Shselasky	u8         port_isolation_high[0x20];
360308678Shselasky
361308678Shselasky	u8         port_isolation_low[0x20];
362308678Shselasky
363308678Shselasky	u8         egress_policy_engine_high[0x20];
364308678Shselasky
365308678Shselasky	u8         egress_policy_engine_low[0x20];
366308678Shselasky
367308678Shselasky	u8         ingress_tx_link_down_high[0x20];
368308678Shselasky
369308678Shselasky	u8         ingress_tx_link_down_low[0x20];
370308678Shselasky
371308678Shselasky	u8         egress_stp_filter_high[0x20];
372308678Shselasky
373308678Shselasky	u8         egress_stp_filter_low[0x20];
374308678Shselasky
375321992Shselasky	u8         egress_hoq_stall_high[0x20];
376321992Shselasky
377321992Shselasky	u8         egress_hoq_stall_low[0x20];
378321992Shselasky
379321992Shselasky	u8         reserved_at_340[0x440];
380308678Shselasky};
381290650Shselaskystruct mlx5_ifc_flow_table_prop_layout_bits {
382290650Shselasky	u8         ft_support[0x1];
383290650Shselasky	u8         flow_tag[0x1];
384290650Shselasky	u8         flow_counter[0x1];
385290650Shselasky	u8         flow_modify_en[0x1];
386290650Shselasky	u8         modify_root[0x1];
387329200Shselasky	u8         identified_miss_table[0x1];
388329200Shselasky	u8         flow_table_modify[0x1];
389329200Shselasky	u8         encap[0x1];
390329200Shselasky	u8         decap[0x1];
391329200Shselasky	u8         reset_root_to_default[0x1];
392329200Shselasky	u8         reserved_at_a[0x16];
393290650Shselasky
394329200Shselasky	u8         reserved_at_20[0x2];
395290650Shselasky	u8         log_max_ft_size[0x6];
396329200Shselasky	u8         reserved_at_28[0x10];
397290650Shselasky	u8         max_ft_level[0x8];
398290650Shselasky
399329200Shselasky	u8         reserved_at_40[0x20];
400290650Shselasky
401329200Shselasky	u8         reserved_at_60[0x18];
402290650Shselasky	u8         log_max_ft_num[0x8];
403290650Shselasky
404329200Shselasky	u8         reserved_at_80[0x10];
405290650Shselasky	u8         log_max_flow_counter[0x8];
406290650Shselasky	u8         log_max_destination[0x8];
407290650Shselasky
408329200Shselasky	u8         reserved_at_a0[0x18];
409290650Shselasky	u8         log_max_flow[0x8];
410290650Shselasky
411329200Shselasky	u8         reserved_at_c0[0x40];
412290650Shselasky
413290650Shselasky	struct mlx5_ifc_flow_table_fields_supported_bits ft_field_support;
414290650Shselasky
415290650Shselasky	struct mlx5_ifc_flow_table_fields_supported_bits ft_field_bitmask_support;
416290650Shselasky};
417290650Shselasky
418290650Shselaskystruct mlx5_ifc_odp_per_transport_service_cap_bits {
419290650Shselasky	u8         send[0x1];
420290650Shselasky	u8         receive[0x1];
421290650Shselasky	u8         write[0x1];
422290650Shselasky	u8         read[0x1];
423290650Shselasky	u8         atomic[0x1];
424290650Shselasky	u8         srq_receive[0x1];
425290650Shselasky	u8         reserved_0[0x1a];
426290650Shselasky};
427290650Shselasky
428290650Shselaskystruct mlx5_ifc_flow_counter_list_bits {
429290650Shselasky	u8         reserved_0[0x10];
430290650Shselasky	u8         flow_counter_id[0x10];
431290650Shselasky
432290650Shselasky	u8         reserved_1[0x20];
433290650Shselasky};
434290650Shselasky
435290650Shselaskyenum {
436290650Shselasky	MLX5_FLOW_CONTEXT_DEST_TYPE_VPORT                    = 0x0,
437290650Shselasky	MLX5_FLOW_CONTEXT_DEST_TYPE_FLOW_TABLE               = 0x1,
438290650Shselasky	MLX5_FLOW_CONTEXT_DEST_TYPE_TIR                      = 0x2,
439321992Shselasky	MLX5_FLOW_CONTEXT_DEST_TYPE_QP                       = 0x3,
440290650Shselasky};
441290650Shselasky
442290650Shselaskystruct mlx5_ifc_dest_format_struct_bits {
443290650Shselasky	u8         destination_type[0x8];
444290650Shselasky	u8         destination_id[0x18];
445290650Shselasky
446290650Shselasky	u8         reserved_0[0x20];
447290650Shselasky};
448290650Shselasky
449329200Shselaskystruct mlx5_ifc_ipv4_layout_bits {
450329200Shselasky	u8         reserved_at_0[0x60];
451329200Shselasky
452329200Shselasky	u8         ipv4[0x20];
453329200Shselasky};
454329200Shselasky
455329200Shselaskystruct mlx5_ifc_ipv6_layout_bits {
456329200Shselasky	u8         ipv6[16][0x8];
457329200Shselasky};
458329200Shselasky
459329200Shselaskyunion mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits {
460329200Shselasky	struct mlx5_ifc_ipv6_layout_bits ipv6_layout;
461329200Shselasky	struct mlx5_ifc_ipv4_layout_bits ipv4_layout;
462329200Shselasky	u8         reserved_at_0[0x80];
463329200Shselasky};
464329200Shselasky
465290650Shselaskystruct mlx5_ifc_fte_match_set_lyr_2_4_bits {
466290650Shselasky	u8         smac_47_16[0x20];
467290650Shselasky
468290650Shselasky	u8         smac_15_0[0x10];
469290650Shselasky	u8         ethertype[0x10];
470290650Shselasky
471290650Shselasky	u8         dmac_47_16[0x20];
472290650Shselasky
473290650Shselasky	u8         dmac_15_0[0x10];
474290650Shselasky	u8         first_prio[0x3];
475290650Shselasky	u8         first_cfi[0x1];
476290650Shselasky	u8         first_vid[0xc];
477290650Shselasky
478290650Shselasky	u8         ip_protocol[0x8];
479290650Shselasky	u8         ip_dscp[0x6];
480290650Shselasky	u8         ip_ecn[0x2];
481306233Shselasky	u8         cvlan_tag[0x1];
482306233Shselasky	u8         svlan_tag[0x1];
483290650Shselasky	u8         frag[0x1];
484290650Shselasky	u8         reserved_1[0x4];
485290650Shselasky	u8         tcp_flags[0x9];
486290650Shselasky
487290650Shselasky	u8         tcp_sport[0x10];
488290650Shselasky	u8         tcp_dport[0x10];
489290650Shselasky
490290650Shselasky	u8         reserved_2[0x20];
491290650Shselasky
492290650Shselasky	u8         udp_sport[0x10];
493290650Shselasky	u8         udp_dport[0x10];
494290650Shselasky
495329200Shselasky	union mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits src_ipv4_src_ipv6;
496290650Shselasky
497329200Shselasky	union mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits dst_ipv4_dst_ipv6;
498290650Shselasky};
499290650Shselasky
500290650Shselaskystruct mlx5_ifc_fte_match_set_misc_bits {
501290650Shselasky	u8         reserved_0[0x8];
502290650Shselasky	u8         source_sqn[0x18];
503290650Shselasky
504290650Shselasky	u8         reserved_1[0x10];
505290650Shselasky	u8         source_port[0x10];
506290650Shselasky
507290650Shselasky	u8         outer_second_prio[0x3];
508290650Shselasky	u8         outer_second_cfi[0x1];
509290650Shselasky	u8         outer_second_vid[0xc];
510290650Shselasky	u8         inner_second_prio[0x3];
511290650Shselasky	u8         inner_second_cfi[0x1];
512290650Shselasky	u8         inner_second_vid[0xc];
513290650Shselasky
514290650Shselasky	u8         outer_second_vlan_tag[0x1];
515290650Shselasky	u8         inner_second_vlan_tag[0x1];
516290650Shselasky	u8         reserved_2[0xe];
517290650Shselasky	u8         gre_protocol[0x10];
518290650Shselasky
519290650Shselasky	u8         gre_key_h[0x18];
520290650Shselasky	u8         gre_key_l[0x8];
521290650Shselasky
522290650Shselasky	u8         vxlan_vni[0x18];
523290650Shselasky	u8         reserved_3[0x8];
524290650Shselasky
525308678Shselasky	u8         geneve_vni[0x18];
526308678Shselasky	u8         reserved4[0x7];
527308678Shselasky	u8         geneve_oam[0x1];
528290650Shselasky
529290650Shselasky	u8         reserved_5[0xc];
530290650Shselasky	u8         outer_ipv6_flow_label[0x14];
531290650Shselasky
532290650Shselasky	u8         reserved_6[0xc];
533290650Shselasky	u8         inner_ipv6_flow_label[0x14];
534290650Shselasky
535321992Shselasky	u8         reserved_7[0xa];
536321992Shselasky	u8         geneve_opt_len[0x6];
537308678Shselasky	u8         geneve_protocol_type[0x10];
538321992Shselasky
539321992Shselasky	u8         reserved_8[0x8];
540321992Shselasky	u8         bth_dst_qp[0x18];
541321992Shselasky
542321992Shselasky	u8         reserved_9[0xa0];
543290650Shselasky};
544290650Shselasky
545290650Shselaskystruct mlx5_ifc_cmd_pas_bits {
546290650Shselasky	u8         pa_h[0x20];
547290650Shselasky
548290650Shselasky	u8         pa_l[0x14];
549290650Shselasky	u8         reserved_0[0xc];
550290650Shselasky};
551290650Shselasky
552290650Shselaskystruct mlx5_ifc_uint64_bits {
553290650Shselasky	u8         hi[0x20];
554290650Shselasky
555290650Shselasky	u8         lo[0x20];
556290650Shselasky};
557290650Shselasky
558306233Shselaskystruct mlx5_ifc_application_prio_entry_bits {
559306233Shselasky	u8         reserved_0[0x8];
560306233Shselasky	u8         priority[0x3];
561306233Shselasky	u8         reserved_1[0x2];
562306233Shselasky	u8         sel[0x3];
563306233Shselasky	u8         protocol_id[0x10];
564306233Shselasky};
565306233Shselasky
566290650Shselaskystruct mlx5_ifc_nodnic_ring_doorbell_bits {
567290650Shselasky	u8         reserved_0[0x8];
568290650Shselasky	u8         ring_pi[0x10];
569290650Shselasky	u8         reserved_1[0x8];
570290650Shselasky};
571290650Shselasky
572290650Shselaskyenum {
573290650Shselasky	MLX5_ADS_STAT_RATE_NO_LIMIT  = 0x0,
574290650Shselasky	MLX5_ADS_STAT_RATE_2_5GBPS   = 0x7,
575290650Shselasky	MLX5_ADS_STAT_RATE_10GBPS    = 0x8,
576290650Shselasky	MLX5_ADS_STAT_RATE_30GBPS    = 0x9,
577290650Shselasky	MLX5_ADS_STAT_RATE_5GBPS     = 0xa,
578290650Shselasky	MLX5_ADS_STAT_RATE_20GBPS    = 0xb,
579290650Shselasky	MLX5_ADS_STAT_RATE_40GBPS    = 0xc,
580290650Shselasky	MLX5_ADS_STAT_RATE_60GBPS    = 0xd,
581290650Shselasky	MLX5_ADS_STAT_RATE_80GBPS    = 0xe,
582290650Shselasky	MLX5_ADS_STAT_RATE_120GBPS   = 0xf,
583290650Shselasky};
584290650Shselasky
585290650Shselaskystruct mlx5_ifc_ads_bits {
586290650Shselasky	u8         fl[0x1];
587290650Shselasky	u8         free_ar[0x1];
588290650Shselasky	u8         reserved_0[0xe];
589290650Shselasky	u8         pkey_index[0x10];
590290650Shselasky
591290650Shselasky	u8         reserved_1[0x8];
592290650Shselasky	u8         grh[0x1];
593290650Shselasky	u8         mlid[0x7];
594290650Shselasky	u8         rlid[0x10];
595290650Shselasky
596290650Shselasky	u8         ack_timeout[0x5];
597290650Shselasky	u8         reserved_2[0x3];
598290650Shselasky	u8         src_addr_index[0x8];
599290650Shselasky	u8         log_rtm[0x4];
600290650Shselasky	u8         stat_rate[0x4];
601290650Shselasky	u8         hop_limit[0x8];
602290650Shselasky
603290650Shselasky	u8         reserved_3[0x4];
604290650Shselasky	u8         tclass[0x8];
605290650Shselasky	u8         flow_label[0x14];
606290650Shselasky
607290650Shselasky	u8         rgid_rip[16][0x8];
608290650Shselasky
609290650Shselasky	u8         reserved_4[0x4];
610290650Shselasky	u8         f_dscp[0x1];
611290650Shselasky	u8         f_ecn[0x1];
612290650Shselasky	u8         reserved_5[0x1];
613290650Shselasky	u8         f_eth_prio[0x1];
614290650Shselasky	u8         ecn[0x2];
615290650Shselasky	u8         dscp[0x6];
616290650Shselasky	u8         udp_sport[0x10];
617290650Shselasky
618290650Shselasky	u8         dei_cfi[0x1];
619290650Shselasky	u8         eth_prio[0x3];
620290650Shselasky	u8         sl[0x4];
621290650Shselasky	u8         port[0x8];
622290650Shselasky	u8         rmac_47_32[0x10];
623290650Shselasky
624290650Shselasky	u8         rmac_31_0[0x20];
625290650Shselasky};
626290650Shselasky
627306233Shselaskystruct mlx5_ifc_diagnostic_counter_cap_bits {
628306233Shselasky	u8         sync[0x1];
629306233Shselasky	u8         reserved_0[0xf];
630306233Shselasky	u8         counter_id[0x10];
631306233Shselasky};
632306233Shselasky
633306233Shselaskystruct mlx5_ifc_debug_cap_bits {
634306233Shselasky	u8         reserved_0[0x18];
635306233Shselasky	u8         log_max_samples[0x8];
636306233Shselasky
637306233Shselasky	u8         single[0x1];
638306233Shselasky	u8         repetitive[0x1];
639306233Shselasky	u8         health_mon_rx_activity[0x1];
640306233Shselasky	u8         reserved_1[0x15];
641306233Shselasky	u8         log_min_sample_period[0x8];
642306233Shselasky
643306233Shselasky	u8         reserved_2[0x1c0];
644306233Shselasky
645306233Shselasky	struct mlx5_ifc_diagnostic_counter_cap_bits diagnostic_counter[0x1f0];
646306233Shselasky};
647306233Shselasky
648308678Shselaskystruct mlx5_ifc_qos_cap_bits {
649308678Shselasky	u8         packet_pacing[0x1];
650308678Shselasky	u8         esw_scheduling[0x1];
651308678Shselasky	u8         esw_bw_share[0x1];
652308678Shselasky	u8         esw_rate_limit[0x1];
653308678Shselasky	u8         hll[0x1];
654308678Shselasky	u8         packet_pacing_burst_bound[0x1];
655308678Shselasky	u8         reserved_at_6[0x1a];
656308678Shselasky
657308678Shselasky	u8         reserved_at_20[0x20];
658308678Shselasky
659308678Shselasky	u8         packet_pacing_max_rate[0x20];
660308678Shselasky
661308678Shselasky	u8         packet_pacing_min_rate[0x20];
662308678Shselasky
663308678Shselasky	u8         reserved_at_80[0x10];
664308678Shselasky	u8         packet_pacing_rate_table_size[0x10];
665308678Shselasky
666308678Shselasky	u8         esw_element_type[0x10];
667308678Shselasky	u8         esw_tsar_type[0x10];
668308678Shselasky
669308678Shselasky	u8         reserved_at_c0[0x10];
670308678Shselasky	u8         max_qos_para_vport[0x10];
671308678Shselasky
672308678Shselasky	u8         max_tsar_bw_share[0x20];
673308678Shselasky
674308678Shselasky	u8         reserved_at_100[0x700];
675308678Shselasky};
676308678Shselasky
677306233Shselaskystruct mlx5_ifc_snapshot_cap_bits {
678306233Shselasky	u8         reserved_0[0x1d];
679306233Shselasky	u8         suspend_qp_uc[0x1];
680306233Shselasky	u8         suspend_qp_ud[0x1];
681306233Shselasky	u8         suspend_qp_rc[0x1];
682306233Shselasky
683306233Shselasky	u8         reserved_1[0x1c];
684306233Shselasky	u8         restore_pd[0x1];
685306233Shselasky	u8         restore_uar[0x1];
686306233Shselasky	u8         restore_mkey[0x1];
687306233Shselasky	u8         restore_qp[0x1];
688306233Shselasky
689306233Shselasky	u8         reserved_2[0x1e];
690306233Shselasky	u8         named_mkey[0x1];
691306233Shselasky	u8         named_qp[0x1];
692306233Shselasky
693306233Shselasky	u8         reserved_3[0x7a0];
694306233Shselasky};
695306233Shselasky
696290650Shselaskystruct mlx5_ifc_e_switch_cap_bits {
697290650Shselasky	u8         vport_svlan_strip[0x1];
698290650Shselasky	u8         vport_cvlan_strip[0x1];
699290650Shselasky	u8         vport_svlan_insert[0x1];
700290650Shselasky	u8         vport_cvlan_insert_if_not_exist[0x1];
701290650Shselasky	u8         vport_cvlan_insert_overwrite[0x1];
702290650Shselasky
703306233Shselasky	u8         reserved_0[0x19];
704306233Shselasky
705306233Shselasky	u8         nic_vport_node_guid_modify[0x1];
706306233Shselasky	u8         nic_vport_port_guid_modify[0x1];
707306233Shselasky
708290650Shselasky	u8         reserved_1[0x7e0];
709290650Shselasky};
710290650Shselasky
711290650Shselaskystruct mlx5_ifc_flow_table_eswitch_cap_bits {
712290650Shselasky	u8         reserved_0[0x200];
713290650Shselasky
714290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_esw_fdb;
715290650Shselasky
716290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_esw_acl_ingress;
717290650Shselasky
718290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_esw_acl_egress;
719290650Shselasky
720290650Shselasky	u8         reserved_1[0x7800];
721290650Shselasky};
722290650Shselasky
723290650Shselaskystruct mlx5_ifc_flow_table_nic_cap_bits {
724329200Shselasky	u8         nic_rx_multi_path_tirs[0x1];
725329200Shselasky	u8         nic_rx_multi_path_tirs_fts[0x1];
726329200Shselasky	u8         allow_sniffer_and_nic_rx_shared_tir[0x1];
727329200Shselasky	u8         reserved_at_3[0x1fd];
728290650Shselasky
729290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive;
730290650Shselasky
731290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive_rdma;
732290650Shselasky
733290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive_sniffer;
734290650Shselasky
735290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_transmit;
736290650Shselasky
737290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_transmit_rdma;
738290650Shselasky
739290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_transmit_sniffer;
740290650Shselasky
741290650Shselasky	u8         reserved_1[0x7200];
742290650Shselasky};
743290650Shselasky
744290650Shselaskystruct mlx5_ifc_per_protocol_networking_offload_caps_bits {
745290650Shselasky	u8         csum_cap[0x1];
746290650Shselasky	u8         vlan_cap[0x1];
747290650Shselasky	u8         lro_cap[0x1];
748290650Shselasky	u8         lro_psh_flag[0x1];
749290650Shselasky	u8         lro_time_stamp[0x1];
750290650Shselasky	u8         lro_max_msg_sz_mode[0x2];
751321992Shselasky	u8         wqe_vlan_insert[0x1];
752321992Shselasky	u8         self_lb_en_modifiable[0x1];
753290650Shselasky	u8         self_lb_mc[0x1];
754290650Shselasky	u8         self_lb_uc[0x1];
755290650Shselasky	u8         max_lso_cap[0x5];
756290650Shselasky	u8         multi_pkt_send_wqe[0x2];
757290650Shselasky	u8         wqe_inline_mode[0x2];
758290650Shselasky	u8         rss_ind_tbl_cap[0x4];
759329204Shselasky	u8         scatter_fcs[0x1];
760329204Shselasky	u8         reserved_1[0x2];
761290650Shselasky	u8         tunnel_lso_const_out_ip_id[0x1];
762290650Shselasky	u8         tunnel_lro_gre[0x1];
763290650Shselasky	u8         tunnel_lro_vxlan[0x1];
764290650Shselasky	u8         tunnel_statless_gre[0x1];
765290650Shselasky	u8         tunnel_stateless_vxlan[0x1];
766290650Shselasky
767308678Shselasky	u8         swp[0x1];
768308678Shselasky	u8         swp_csum[0x1];
769308678Shselasky	u8         swp_lso[0x1];
770321992Shselasky	u8         reserved_2[0x1b];
771321992Shselasky	u8         max_geneve_opt_len[0x1];
772308678Shselasky	u8         tunnel_stateless_geneve_rx[0x1];
773290650Shselasky
774290650Shselasky	u8         reserved_3[0x10];
775290650Shselasky	u8         lro_min_mss_size[0x10];
776290650Shselasky
777290650Shselasky	u8         reserved_4[0x120];
778290650Shselasky
779290650Shselasky	u8         lro_timer_supported_periods[4][0x20];
780290650Shselasky
781290650Shselasky	u8         reserved_5[0x600];
782290650Shselasky};
783290650Shselasky
784290650Shselaskyenum {
785290650Shselasky	MLX5_ROCE_CAP_L3_TYPE_GRH   = 0x1,
786290650Shselasky	MLX5_ROCE_CAP_L3_TYPE_IPV4  = 0x2,
787290650Shselasky	MLX5_ROCE_CAP_L3_TYPE_IPV6  = 0x4,
788290650Shselasky};
789290650Shselasky
790290650Shselaskystruct mlx5_ifc_roce_cap_bits {
791290650Shselasky	u8         roce_apm[0x1];
792306233Shselasky	u8         rts2rts_primary_eth_prio[0x1];
793306233Shselasky	u8         roce_rx_allow_untagged[0x1];
794306233Shselasky	u8         rts2rts_src_addr_index_for_vlan_valid_vlan_id[0x1];
795290650Shselasky
796306233Shselasky	u8         reserved_0[0x1c];
797306233Shselasky
798290650Shselasky	u8         reserved_1[0x60];
799290650Shselasky
800290650Shselasky	u8         reserved_2[0xc];
801290650Shselasky	u8         l3_type[0x4];
802290650Shselasky	u8         reserved_3[0x8];
803290650Shselasky	u8         roce_version[0x8];
804290650Shselasky
805290650Shselasky	u8         reserved_4[0x10];
806290650Shselasky	u8         r_roce_dest_udp_port[0x10];
807290650Shselasky
808290650Shselasky	u8         r_roce_max_src_udp_port[0x10];
809290650Shselasky	u8         r_roce_min_src_udp_port[0x10];
810290650Shselasky
811290650Shselasky	u8         reserved_5[0x10];
812290650Shselasky	u8         roce_address_table_size[0x10];
813290650Shselasky
814290650Shselasky	u8         reserved_6[0x700];
815290650Shselasky};
816290650Shselasky
817290650Shselaskyenum {
818290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_1_BYTE     = 0x1,
819290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_2_BYTES    = 0x2,
820290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_4_BYTES    = 0x4,
821290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_8_BYTES    = 0x8,
822290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_16_BYTES   = 0x10,
823290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_32_BYTES   = 0x20,
824290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_64_BYTES   = 0x40,
825290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_128_BYTES  = 0x80,
826290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_256_BYTES  = 0x100,
827290650Shselasky};
828290650Shselasky
829290650Shselaskyenum {
830290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_1_BYTE     = 0x1,
831290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_2_BYTES    = 0x2,
832290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_4_BYTES    = 0x4,
833290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_8_BYTES    = 0x8,
834290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_16_BYTES   = 0x10,
835290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_32_BYTES   = 0x20,
836290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_64_BYTES   = 0x40,
837290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_128_BYTES  = 0x80,
838290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_256_BYTES  = 0x100,
839290650Shselasky};
840290650Shselasky
841290650Shselaskystruct mlx5_ifc_atomic_caps_bits {
842290650Shselasky	u8         reserved_0[0x40];
843290650Shselasky
844306233Shselasky	u8         atomic_req_8B_endianess_mode[0x2];
845306233Shselasky	u8         reserved_1[0x4];
846306233Shselasky	u8         supported_atomic_req_8B_endianess_mode_1[0x1];
847290650Shselasky
848306233Shselasky	u8         reserved_2[0x19];
849290650Shselasky
850306233Shselasky	u8         reserved_3[0x20];
851306233Shselasky
852306233Shselasky	u8         reserved_4[0x10];
853290650Shselasky	u8         atomic_operations[0x10];
854290650Shselasky
855306233Shselasky	u8         reserved_5[0x10];
856290650Shselasky	u8         atomic_size_qp[0x10];
857290650Shselasky
858306233Shselasky	u8         reserved_6[0x10];
859290650Shselasky	u8         atomic_size_dc[0x10];
860290650Shselasky
861306233Shselasky	u8         reserved_7[0x720];
862290650Shselasky};
863290650Shselasky
864290650Shselaskystruct mlx5_ifc_odp_cap_bits {
865290650Shselasky	u8         reserved_0[0x40];
866290650Shselasky
867290650Shselasky	u8         sig[0x1];
868290650Shselasky	u8         reserved_1[0x1f];
869290650Shselasky
870290650Shselasky	u8         reserved_2[0x20];
871290650Shselasky
872290650Shselasky	struct mlx5_ifc_odp_per_transport_service_cap_bits rc_odp_caps;
873290650Shselasky
874290650Shselasky	struct mlx5_ifc_odp_per_transport_service_cap_bits uc_odp_caps;
875290650Shselasky
876290650Shselasky	struct mlx5_ifc_odp_per_transport_service_cap_bits ud_odp_caps;
877290650Shselasky
878290650Shselasky	struct mlx5_ifc_odp_per_transport_service_cap_bits xrc_odp_caps;
879290650Shselasky
880290650Shselasky	struct mlx5_ifc_odp_per_transport_service_cap_bits dc_odp_caps;
881290650Shselasky
882290650Shselasky	u8         reserved_3[0x6e0];
883290650Shselasky};
884290650Shselasky
885290650Shselaskyenum {
886290650Shselasky	MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_8_GID_ENTRIES    = 0x0,
887290650Shselasky	MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_16_GID_ENTRIES   = 0x1,
888290650Shselasky	MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_32_GID_ENTRIES   = 0x2,
889290650Shselasky	MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_64_GID_ENTRIES   = 0x3,
890290650Shselasky	MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_128_GID_ENTRIES  = 0x4,
891290650Shselasky};
892290650Shselasky
893290650Shselaskyenum {
894290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_128_ENTRIES  = 0x0,
895290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_256_ENTRIES  = 0x1,
896290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_512_ENTRIES  = 0x2,
897290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_1K_ENTRIES   = 0x3,
898290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_2K_ENTRIES   = 0x4,
899290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_4K_ENTRIES   = 0x5,
900290650Shselasky};
901290650Shselasky
902290650Shselaskyenum {
903290650Shselasky	MLX5_CMD_HCA_CAP_PORT_TYPE_IB        = 0x0,
904290650Shselasky	MLX5_CMD_HCA_CAP_PORT_TYPE_ETHERNET  = 0x1,
905290650Shselasky};
906290650Shselasky
907290650Shselaskyenum {
908290650Shselasky	MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_DISABLED       = 0x0,
909290650Shselasky	MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_INITIAL_STATE  = 0x1,
910290650Shselasky	MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_ENABLED        = 0x3,
911290650Shselasky};
912290650Shselasky
913290650Shselaskystruct mlx5_ifc_cmd_hca_cap_bits {
914290650Shselasky	u8         reserved_0[0x80];
915290650Shselasky
916290650Shselasky	u8         log_max_srq_sz[0x8];
917290650Shselasky	u8         log_max_qp_sz[0x8];
918290650Shselasky	u8         reserved_1[0xb];
919290650Shselasky	u8         log_max_qp[0x5];
920290650Shselasky
921290650Shselasky	u8         reserved_2[0xb];
922290650Shselasky	u8         log_max_srq[0x5];
923290650Shselasky	u8         reserved_3[0x10];
924290650Shselasky
925290650Shselasky	u8         reserved_4[0x8];
926290650Shselasky	u8         log_max_cq_sz[0x8];
927290650Shselasky	u8         reserved_5[0xb];
928290650Shselasky	u8         log_max_cq[0x5];
929290650Shselasky
930290650Shselasky	u8         log_max_eq_sz[0x8];
931290650Shselasky	u8         reserved_6[0x2];
932290650Shselasky	u8         log_max_mkey[0x6];
933290650Shselasky	u8         reserved_7[0xc];
934290650Shselasky	u8         log_max_eq[0x4];
935290650Shselasky
936290650Shselasky	u8         max_indirection[0x8];
937290650Shselasky	u8         reserved_8[0x1];
938290650Shselasky	u8         log_max_mrw_sz[0x7];
939290650Shselasky	u8         reserved_9[0x2];
940290650Shselasky	u8         log_max_bsf_list_size[0x6];
941290650Shselasky	u8         reserved_10[0x2];
942290650Shselasky	u8         log_max_klm_list_size[0x6];
943290650Shselasky
944290650Shselasky	u8         reserved_11[0xa];
945290650Shselasky	u8         log_max_ra_req_dc[0x6];
946290650Shselasky	u8         reserved_12[0xa];
947290650Shselasky	u8         log_max_ra_res_dc[0x6];
948290650Shselasky
949290650Shselasky	u8         reserved_13[0xa];
950290650Shselasky	u8         log_max_ra_req_qp[0x6];
951290650Shselasky	u8         reserved_14[0xa];
952290650Shselasky	u8         log_max_ra_res_qp[0x6];
953290650Shselasky
954290650Shselasky	u8         pad_cap[0x1];
955290650Shselasky	u8         cc_query_allowed[0x1];
956290650Shselasky	u8         cc_modify_allowed[0x1];
957306233Shselasky	u8         start_pad[0x1];
958306233Shselasky	u8         cache_line_128byte[0x1];
959306233Shselasky	u8         reserved_15[0xb];
960290650Shselasky	u8         gid_table_size[0x10];
961290650Shselasky
962290650Shselasky	u8         out_of_seq_cnt[0x1];
963290650Shselasky	u8         vport_counters[0x1];
964306233Shselasky	u8         retransmission_q_counters[0x1];
965306233Shselasky	u8         debug[0x1];
966321992Shselasky	u8         modify_rq_counters_set_id[0x1];
967321992Shselasky	u8         rq_delay_drop[0x1];
968290650Shselasky	u8         max_qp_cnt[0xa];
969290650Shselasky	u8         pkey_table_size[0x10];
970290650Shselasky
971290650Shselasky	u8         vport_group_manager[0x1];
972290650Shselasky	u8         vhca_group_manager[0x1];
973290650Shselasky	u8         ib_virt[0x1];
974290650Shselasky	u8         eth_virt[0x1];
975290650Shselasky	u8         reserved_17[0x1];
976290650Shselasky	u8         ets[0x1];
977290650Shselasky	u8         nic_flow_table[0x1];
978290650Shselasky	u8         eswitch_flow_table[0x1];
979290650Shselasky	u8         reserved_18[0x3];
980290650Shselasky	u8         local_ca_ack_delay[0x5];
981290650Shselasky	u8         port_module_event[0x1];
982290650Shselasky	u8         reserved_19[0x5];
983290650Shselasky	u8         port_type[0x2];
984290650Shselasky	u8         num_ports[0x8];
985290650Shselasky
986290650Shselasky	u8         snapshot[0x1];
987290650Shselasky	u8         reserved_20[0x2];
988290650Shselasky	u8         log_max_msg[0x5];
989290650Shselasky	u8         reserved_21[0x4];
990290650Shselasky	u8         max_tc[0x4];
991306233Shselasky	u8         temp_warn_event[0x1];
992306233Shselasky	u8         dcbx[0x1];
993306233Shselasky	u8         reserved_22[0x4];
994290650Shselasky	u8         rol_s[0x1];
995290650Shselasky	u8         rol_g[0x1];
996290650Shselasky	u8         reserved_23[0x1];
997290650Shselasky	u8         wol_s[0x1];
998290650Shselasky	u8         wol_g[0x1];
999290650Shselasky	u8         wol_a[0x1];
1000290650Shselasky	u8         wol_b[0x1];
1001290650Shselasky	u8         wol_m[0x1];
1002290650Shselasky	u8         wol_u[0x1];
1003290650Shselasky	u8         wol_p[0x1];
1004290650Shselasky
1005290650Shselasky	u8         stat_rate_support[0x10];
1006290650Shselasky	u8         reserved_24[0xc];
1007290650Shselasky	u8         cqe_version[0x4];
1008290650Shselasky
1009290650Shselasky	u8         compact_address_vector[0x1];
1010290650Shselasky	u8         striding_rq[0x1];
1011306233Shselasky	u8         reserved_25[0x1];
1012306233Shselasky	u8         ipoib_enhanced_offloads[0x1];
1013306233Shselasky	u8         ipoib_ipoib_offloads[0x1];
1014306233Shselasky	u8         reserved_26[0x8];
1015306233Shselasky	u8         dc_connect_qp[0x1];
1016290650Shselasky	u8         dc_cnak_trace[0x1];
1017290650Shselasky	u8         drain_sigerr[0x1];
1018290650Shselasky	u8         cmdif_checksum[0x2];
1019290650Shselasky	u8         sigerr_cqe[0x1];
1020306233Shselasky	u8         reserved_27[0x1];
1021290650Shselasky	u8         wq_signature[0x1];
1022290650Shselasky	u8         sctr_data_cqe[0x1];
1023306233Shselasky	u8         reserved_28[0x1];
1024290650Shselasky	u8         sho[0x1];
1025290650Shselasky	u8         tph[0x1];
1026290650Shselasky	u8         rf[0x1];
1027290650Shselasky	u8         dct[0x1];
1028306233Shselasky	u8         qos[0x1];
1029290650Shselasky	u8         eth_net_offloads[0x1];
1030290650Shselasky	u8         roce[0x1];
1031290650Shselasky	u8         atomic[0x1];
1032306233Shselasky	u8         reserved_30[0x1];
1033290650Shselasky
1034290650Shselasky	u8         cq_oi[0x1];
1035290650Shselasky	u8         cq_resize[0x1];
1036290650Shselasky	u8         cq_moderation[0x1];
1037321992Shselasky	u8         cq_period_mode_modify[0x1];
1038321992Shselasky	u8         cq_invalidate[0x1];
1039321992Shselasky	u8         reserved_at_225[0x1];
1040290650Shselasky	u8         cq_eq_remap[0x1];
1041290650Shselasky	u8         pg[0x1];
1042290650Shselasky	u8         block_lb_mc[0x1];
1043290650Shselasky	u8         exponential_backoff[0x1];
1044290650Shselasky	u8         scqe_break_moderation[0x1];
1045290650Shselasky	u8         cq_period_start_from_cqe[0x1];
1046290650Shselasky	u8         cd[0x1];
1047290650Shselasky	u8         atm[0x1];
1048290650Shselasky	u8         apm[0x1];
1049329204Shselasky	u8	   imaicl[0x1];
1050329204Shselasky	u8         reserved_32[0x6];
1051290650Shselasky	u8         qkv[0x1];
1052290650Shselasky	u8         pkv[0x1];
1053329204Shselasky	u8	   set_deth_sqpn[0x1];
1054329204Shselasky	u8         reserved_33[0x3];
1055290650Shselasky	u8         xrc[0x1];
1056290650Shselasky	u8         ud[0x1];
1057290650Shselasky	u8         uc[0x1];
1058290650Shselasky	u8         rc[0x1];
1059290650Shselasky
1060306233Shselasky	u8         reserved_34[0xa];
1061290650Shselasky	u8         uar_sz[0x6];
1062306233Shselasky	u8         reserved_35[0x8];
1063290650Shselasky	u8         log_pg_sz[0x8];
1064290650Shselasky
1065290650Shselasky	u8         bf[0x1];
1066290650Shselasky	u8         driver_version[0x1];
1067290650Shselasky	u8         pad_tx_eth_packet[0x1];
1068306233Shselasky	u8         reserved_36[0x8];
1069290650Shselasky	u8         log_bf_reg_size[0x5];
1070306233Shselasky	u8         reserved_37[0x10];
1071290650Shselasky
1072306233Shselasky	u8         num_of_diagnostic_counters[0x10];
1073290650Shselasky	u8         max_wqe_sz_sq[0x10];
1074290650Shselasky
1075290650Shselasky	u8         reserved_38[0x10];
1076290650Shselasky	u8         max_wqe_sz_rq[0x10];
1077290650Shselasky
1078290650Shselasky	u8         reserved_39[0x10];
1079290650Shselasky	u8         max_wqe_sz_sq_dc[0x10];
1080290650Shselasky
1081290650Shselasky	u8         reserved_40[0x7];
1082290650Shselasky	u8         max_qp_mcg[0x19];
1083290650Shselasky
1084290650Shselasky	u8         reserved_41[0x18];
1085290650Shselasky	u8         log_max_mcg[0x8];
1086290650Shselasky
1087290650Shselasky	u8         reserved_42[0x3];
1088290650Shselasky	u8         log_max_transport_domain[0x5];
1089290650Shselasky	u8         reserved_43[0x3];
1090290650Shselasky	u8         log_max_pd[0x5];
1091290650Shselasky	u8         reserved_44[0xb];
1092290650Shselasky	u8         log_max_xrcd[0x5];
1093290650Shselasky
1094290650Shselasky	u8         reserved_45[0x10];
1095290650Shselasky	u8         max_flow_counter[0x10];
1096290650Shselasky
1097290650Shselasky	u8         reserved_46[0x3];
1098290650Shselasky	u8         log_max_rq[0x5];
1099290650Shselasky	u8         reserved_47[0x3];
1100290650Shselasky	u8         log_max_sq[0x5];
1101290650Shselasky	u8         reserved_48[0x3];
1102290650Shselasky	u8         log_max_tir[0x5];
1103290650Shselasky	u8         reserved_49[0x3];
1104290650Shselasky	u8         log_max_tis[0x5];
1105290650Shselasky
1106290650Shselasky	u8         basic_cyclic_rcv_wqe[0x1];
1107290650Shselasky	u8         reserved_50[0x2];
1108290650Shselasky	u8         log_max_rmp[0x5];
1109290650Shselasky	u8         reserved_51[0x3];
1110290650Shselasky	u8         log_max_rqt[0x5];
1111290650Shselasky	u8         reserved_52[0x3];
1112290650Shselasky	u8         log_max_rqt_size[0x5];
1113290650Shselasky	u8         reserved_53[0x3];
1114290650Shselasky	u8         log_max_tis_per_sq[0x5];
1115290650Shselasky
1116290650Shselasky	u8         reserved_54[0x3];
1117290650Shselasky	u8         log_max_stride_sz_rq[0x5];
1118290650Shselasky	u8         reserved_55[0x3];
1119290650Shselasky	u8         log_min_stride_sz_rq[0x5];
1120290650Shselasky	u8         reserved_56[0x3];
1121290650Shselasky	u8         log_max_stride_sz_sq[0x5];
1122290650Shselasky	u8         reserved_57[0x3];
1123290650Shselasky	u8         log_min_stride_sz_sq[0x5];
1124290650Shselasky
1125290650Shselasky	u8         reserved_58[0x1b];
1126290650Shselasky	u8         log_max_wq_sz[0x5];
1127290650Shselasky
1128290650Shselasky	u8         nic_vport_change_event[0x1];
1129321992Shselasky	u8         disable_local_lb[0x1];
1130321992Shselasky	u8         reserved_59[0x9];
1131290650Shselasky	u8         log_max_vlan_list[0x5];
1132290650Shselasky	u8         reserved_60[0x3];
1133290650Shselasky	u8         log_max_current_mc_list[0x5];
1134290650Shselasky	u8         reserved_61[0x3];
1135290650Shselasky	u8         log_max_current_uc_list[0x5];
1136290650Shselasky
1137290650Shselasky	u8         reserved_62[0x80];
1138290650Shselasky
1139290650Shselasky	u8         reserved_63[0x3];
1140290650Shselasky	u8         log_max_l2_table[0x5];
1141290650Shselasky	u8         reserved_64[0x8];
1142290650Shselasky	u8         log_uar_page_sz[0x10];
1143290650Shselasky
1144290650Shselasky	u8         reserved_65[0x20];
1145290650Shselasky
1146306233Shselasky	u8         device_frequency_mhz[0x20];
1147290650Shselasky
1148306233Shselasky	u8         device_frequency_khz[0x20];
1149290650Shselasky
1150306233Shselasky	u8         reserved_66[0x80];
1151306233Shselasky
1152290650Shselasky	u8         log_max_atomic_size_qp[0x8];
1153290650Shselasky	u8         reserved_67[0x10];
1154290650Shselasky	u8         log_max_atomic_size_dc[0x8];
1155290650Shselasky
1156290650Shselasky	u8         reserved_68[0x1f];
1157290650Shselasky	u8         cqe_compression[0x1];
1158290650Shselasky
1159290650Shselasky	u8         cqe_compression_timeout[0x10];
1160290650Shselasky	u8         cqe_compression_max_num[0x10];
1161290650Shselasky
1162290650Shselasky	u8         reserved_69[0x220];
1163290650Shselasky};
1164290650Shselasky
1165306233Shselaskyenum mlx5_flow_destination_type {
1166306233Shselasky	MLX5_FLOW_DESTINATION_TYPE_VPORT	= 0x0,
1167306233Shselasky	MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE	= 0x1,
1168306233Shselasky	MLX5_FLOW_DESTINATION_TYPE_TIR		= 0x2,
1169306233Shselasky};
1170306233Shselasky
1171290650Shselaskyunion mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits {
1172290650Shselasky	struct mlx5_ifc_dest_format_struct_bits dest_format_struct;
1173290650Shselasky	struct mlx5_ifc_flow_counter_list_bits flow_counter_list;
1174290650Shselasky	u8         reserved_0[0x40];
1175290650Shselasky};
1176290650Shselasky
1177290650Shselaskystruct mlx5_ifc_fte_match_param_bits {
1178290650Shselasky	struct mlx5_ifc_fte_match_set_lyr_2_4_bits outer_headers;
1179290650Shselasky
1180290650Shselasky	struct mlx5_ifc_fte_match_set_misc_bits misc_parameters;
1181290650Shselasky
1182290650Shselasky	struct mlx5_ifc_fte_match_set_lyr_2_4_bits inner_headers;
1183290650Shselasky
1184290650Shselasky	u8         reserved_0[0xa00];
1185290650Shselasky};
1186290650Shselasky
1187290650Shselaskyenum {
1188290650Shselasky	MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_SRC_IP     = 0x0,
1189290650Shselasky	MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_DST_IP     = 0x1,
1190290650Shselasky	MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_L4_SPORT   = 0x2,
1191290650Shselasky	MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_L4_DPORT   = 0x3,
1192290650Shselasky	MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_IPSEC_SPI  = 0x4,
1193290650Shselasky};
1194290650Shselasky
1195290650Shselaskystruct mlx5_ifc_rx_hash_field_select_bits {
1196290650Shselasky	u8         l3_prot_type[0x1];
1197290650Shselasky	u8         l4_prot_type[0x1];
1198290650Shselasky	u8         selected_fields[0x1e];
1199290650Shselasky};
1200290650Shselasky
1201290650Shselaskyenum {
1202290650Shselasky	MLX5_WQ_TYPE_LINKED_LIST                 = 0x0,
1203290650Shselasky	MLX5_WQ_TYPE_CYCLIC                      = 0x1,
1204290650Shselasky	MLX5_WQ_TYPE_STRQ_LINKED_LIST            = 0x2,
1205290650Shselasky	MLX5_WQ_TYPE_STRQ_CYCLIC                 = 0x3,
1206290650Shselasky};
1207290650Shselasky
1208306233Shselaskyenum rq_type {
1209306233Shselasky	RQ_TYPE_NONE,
1210306233Shselasky	RQ_TYPE_STRIDE,
1211306233Shselasky};
1212306233Shselasky
1213290650Shselaskyenum {
1214290650Shselasky	MLX5_WQ_END_PAD_MODE_NONE               = 0x0,
1215290650Shselasky	MLX5_WQ_END_PAD_MODE_ALIGN              = 0x1,
1216290650Shselasky};
1217290650Shselasky
1218290650Shselaskystruct mlx5_ifc_wq_bits {
1219290650Shselasky	u8         wq_type[0x4];
1220290650Shselasky	u8         wq_signature[0x1];
1221290650Shselasky	u8         end_padding_mode[0x2];
1222290650Shselasky	u8         cd_slave[0x1];
1223290650Shselasky	u8         reserved_0[0x18];
1224290650Shselasky
1225290650Shselasky	u8         hds_skip_first_sge[0x1];
1226290650Shselasky	u8         log2_hds_buf_size[0x3];
1227290650Shselasky	u8         reserved_1[0x7];
1228290650Shselasky	u8         page_offset[0x5];
1229290650Shselasky	u8         lwm[0x10];
1230290650Shselasky
1231290650Shselasky	u8         reserved_2[0x8];
1232290650Shselasky	u8         pd[0x18];
1233290650Shselasky
1234290650Shselasky	u8         reserved_3[0x8];
1235290650Shselasky	u8         uar_page[0x18];
1236290650Shselasky
1237290650Shselasky	u8         dbr_addr[0x40];
1238290650Shselasky
1239290650Shselasky	u8         hw_counter[0x20];
1240290650Shselasky
1241290650Shselasky	u8         sw_counter[0x20];
1242290650Shselasky
1243290650Shselasky	u8         reserved_4[0xc];
1244290650Shselasky	u8         log_wq_stride[0x4];
1245290650Shselasky	u8         reserved_5[0x3];
1246290650Shselasky	u8         log_wq_pg_sz[0x5];
1247290650Shselasky	u8         reserved_6[0x3];
1248290650Shselasky	u8         log_wq_sz[0x5];
1249290650Shselasky
1250290650Shselasky	u8         reserved_7[0x15];
1251290650Shselasky	u8         single_wqe_log_num_of_strides[0x3];
1252290650Shselasky	u8         two_byte_shift_en[0x1];
1253290650Shselasky	u8         reserved_8[0x4];
1254290650Shselasky	u8         single_stride_log_num_of_bytes[0x3];
1255290650Shselasky
1256290650Shselasky	u8         reserved_9[0x4c0];
1257290650Shselasky
1258290650Shselasky	struct mlx5_ifc_cmd_pas_bits pas[0];
1259290650Shselasky};
1260290650Shselasky
1261290650Shselaskystruct mlx5_ifc_rq_num_bits {
1262290650Shselasky	u8         reserved_0[0x8];
1263290650Shselasky	u8         rq_num[0x18];
1264290650Shselasky};
1265290650Shselasky
1266290650Shselaskystruct mlx5_ifc_mac_address_layout_bits {
1267290650Shselasky	u8         reserved_0[0x10];
1268290650Shselasky	u8         mac_addr_47_32[0x10];
1269290650Shselasky
1270290650Shselasky	u8         mac_addr_31_0[0x20];
1271290650Shselasky};
1272290650Shselasky
1273290650Shselaskystruct mlx5_ifc_cong_control_r_roce_ecn_np_bits {
1274290650Shselasky	u8         reserved_0[0xa0];
1275290650Shselasky
1276290650Shselasky	u8         min_time_between_cnps[0x20];
1277290650Shselasky
1278290650Shselasky	u8         reserved_1[0x12];
1279290650Shselasky	u8         cnp_dscp[0x6];
1280290650Shselasky	u8         reserved_2[0x4];
1281290650Shselasky	u8         cnp_prio_mode[0x1];
1282290650Shselasky	u8         cnp_802p_prio[0x3];
1283290650Shselasky
1284290650Shselasky	u8         reserved_3[0x720];
1285290650Shselasky};
1286290650Shselasky
1287290650Shselaskystruct mlx5_ifc_cong_control_r_roce_ecn_rp_bits {
1288290650Shselasky	u8         reserved_0[0x60];
1289290650Shselasky
1290290650Shselasky	u8         reserved_1[0x4];
1291290650Shselasky	u8         clamp_tgt_rate[0x1];
1292290650Shselasky	u8         reserved_2[0x3];
1293290650Shselasky	u8         clamp_tgt_rate_after_time_inc[0x1];
1294290650Shselasky	u8         reserved_3[0x17];
1295290650Shselasky
1296290650Shselasky	u8         reserved_4[0x20];
1297290650Shselasky
1298290650Shselasky	u8         rpg_time_reset[0x20];
1299290650Shselasky
1300290650Shselasky	u8         rpg_byte_reset[0x20];
1301290650Shselasky
1302290650Shselasky	u8         rpg_threshold[0x20];
1303290650Shselasky
1304290650Shselasky	u8         rpg_max_rate[0x20];
1305290650Shselasky
1306290650Shselasky	u8         rpg_ai_rate[0x20];
1307290650Shselasky
1308290650Shselasky	u8         rpg_hai_rate[0x20];
1309290650Shselasky
1310290650Shselasky	u8         rpg_gd[0x20];
1311290650Shselasky
1312290650Shselasky	u8         rpg_min_dec_fac[0x20];
1313290650Shselasky
1314290650Shselasky	u8         rpg_min_rate[0x20];
1315290650Shselasky
1316290650Shselasky	u8         reserved_5[0xe0];
1317290650Shselasky
1318290650Shselasky	u8         rate_to_set_on_first_cnp[0x20];
1319290650Shselasky
1320290650Shselasky	u8         dce_tcp_g[0x20];
1321290650Shselasky
1322290650Shselasky	u8         dce_tcp_rtt[0x20];
1323290650Shselasky
1324290650Shselasky	u8         rate_reduce_monitor_period[0x20];
1325290650Shselasky
1326290650Shselasky	u8         reserved_6[0x20];
1327290650Shselasky
1328290650Shselasky	u8         initial_alpha_value[0x20];
1329290650Shselasky
1330290650Shselasky	u8         reserved_7[0x4a0];
1331290650Shselasky};
1332290650Shselasky
1333290650Shselaskystruct mlx5_ifc_cong_control_802_1qau_rp_bits {
1334290650Shselasky	u8         reserved_0[0x80];
1335290650Shselasky
1336290650Shselasky	u8         rppp_max_rps[0x20];
1337290650Shselasky
1338290650Shselasky	u8         rpg_time_reset[0x20];
1339290650Shselasky
1340290650Shselasky	u8         rpg_byte_reset[0x20];
1341290650Shselasky
1342290650Shselasky	u8         rpg_threshold[0x20];
1343290650Shselasky
1344290650Shselasky	u8         rpg_max_rate[0x20];
1345290650Shselasky
1346290650Shselasky	u8         rpg_ai_rate[0x20];
1347290650Shselasky
1348290650Shselasky	u8         rpg_hai_rate[0x20];
1349290650Shselasky
1350290650Shselasky	u8         rpg_gd[0x20];
1351290650Shselasky
1352290650Shselasky	u8         rpg_min_dec_fac[0x20];
1353290650Shselasky
1354290650Shselasky	u8         rpg_min_rate[0x20];
1355290650Shselasky
1356290650Shselasky	u8         reserved_1[0x640];
1357290650Shselasky};
1358290650Shselasky
1359290650Shselaskyenum {
1360290650Shselasky	MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_LOG_CQ_SIZE    = 0x1,
1361290650Shselasky	MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_PAGE_OFFSET    = 0x2,
1362290650Shselasky	MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_LOG_PAGE_SIZE  = 0x4,
1363290650Shselasky};
1364290650Shselasky
1365290650Shselaskystruct mlx5_ifc_resize_field_select_bits {
1366290650Shselasky	u8         resize_field_select[0x20];
1367290650Shselasky};
1368290650Shselasky
1369290650Shselaskyenum {
1370290650Shselasky	MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_PERIOD     = 0x1,
1371290650Shselasky	MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_MAX_COUNT  = 0x2,
1372290650Shselasky	MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_OI            = 0x4,
1373290650Shselasky	MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_C_EQN         = 0x8,
1374321992Shselasky	MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_PERIOD_MODE  = 0x10,
1375321992Shselasky	MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_STATUS          = 0x20,
1376290650Shselasky};
1377290650Shselasky
1378290650Shselaskystruct mlx5_ifc_modify_field_select_bits {
1379290650Shselasky	u8         modify_field_select[0x20];
1380290650Shselasky};
1381290650Shselasky
1382290650Shselaskystruct mlx5_ifc_field_select_r_roce_np_bits {
1383290650Shselasky	u8         field_select_r_roce_np[0x20];
1384290650Shselasky};
1385290650Shselasky
1386290650Shselaskyenum {
1387290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_CLAMP_TGT_RATE                 = 0x2,
1388290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_CLAMP_TGT_RATE_AFTER_TIME_INC  = 0x4,
1389290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_TIME_RESET                 = 0x8,
1390290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_BYTE_RESET                 = 0x10,
1391290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_THRESHOLD                  = 0x20,
1392290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_MAX_RATE                   = 0x40,
1393290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_AI_RATE                    = 0x80,
1394290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_HAI_RATE                   = 0x100,
1395290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_MIN_DEC_FAC                = 0x200,
1396290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_MIN_RATE                   = 0x400,
1397290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RATE_TO_SET_ON_FIRST_CNP       = 0x800,
1398290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_DCE_TCP_G                      = 0x1000,
1399290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_DCE_TCP_RTT                    = 0x2000,
1400290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RATE_REDUCE_MONITOR_PERIOD     = 0x4000,
1401290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_INITIAL_ALPHA_VALUE            = 0x8000,
1402290650Shselasky};
1403290650Shselasky
1404290650Shselaskystruct mlx5_ifc_field_select_r_roce_rp_bits {
1405290650Shselasky	u8         field_select_r_roce_rp[0x20];
1406290650Shselasky};
1407290650Shselasky
1408290650Shselaskyenum {
1409290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPPP_MAX_RPS     = 0x4,
1410290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_TIME_RESET   = 0x8,
1411290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_BYTE_RESET   = 0x10,
1412290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_THRESHOLD    = 0x20,
1413290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MAX_RATE     = 0x40,
1414290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_AI_RATE      = 0x80,
1415290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_HAI_RATE     = 0x100,
1416290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_GD           = 0x200,
1417290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MIN_DEC_FAC  = 0x400,
1418290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MIN_RATE     = 0x800,
1419290650Shselasky};
1420290650Shselasky
1421290650Shselaskystruct mlx5_ifc_field_select_802_1qau_rp_bits {
1422290650Shselasky	u8         field_select_8021qaurp[0x20];
1423290650Shselasky};
1424290650Shselasky
1425306233Shselaskystruct mlx5_ifc_pptb_reg_bits {
1426306233Shselasky	u8         reserved_0[0x2];
1427306233Shselasky	u8         mm[0x2];
1428306233Shselasky	u8         reserved_1[0x4];
1429306233Shselasky	u8         local_port[0x8];
1430306233Shselasky	u8         reserved_2[0x6];
1431306233Shselasky	u8         cm[0x1];
1432306233Shselasky	u8         um[0x1];
1433306233Shselasky	u8         pm[0x8];
1434306233Shselasky
1435306233Shselasky	u8         prio7buff[0x4];
1436306233Shselasky	u8         prio6buff[0x4];
1437306233Shselasky	u8         prio5buff[0x4];
1438306233Shselasky	u8         prio4buff[0x4];
1439306233Shselasky	u8         prio3buff[0x4];
1440306233Shselasky	u8         prio2buff[0x4];
1441306233Shselasky	u8         prio1buff[0x4];
1442306233Shselasky	u8         prio0buff[0x4];
1443306233Shselasky
1444306233Shselasky	u8         pm_msb[0x8];
1445306233Shselasky	u8         reserved_3[0x10];
1446306233Shselasky	u8         ctrl_buff[0x4];
1447306233Shselasky	u8         untagged_buff[0x4];
1448306233Shselasky};
1449306233Shselasky
1450306233Shselaskystruct mlx5_ifc_dcbx_app_reg_bits {
1451306233Shselasky	u8         reserved_0[0x8];
1452306233Shselasky	u8         port_number[0x8];
1453306233Shselasky	u8         reserved_1[0x10];
1454306233Shselasky
1455306233Shselasky	u8         reserved_2[0x1a];
1456306233Shselasky	u8         num_app_prio[0x6];
1457306233Shselasky
1458306233Shselasky	u8         reserved_3[0x40];
1459306233Shselasky
1460306233Shselasky	struct mlx5_ifc_application_prio_entry_bits app_prio[0];
1461306233Shselasky};
1462306233Shselasky
1463306233Shselaskystruct mlx5_ifc_dcbx_param_reg_bits {
1464306233Shselasky	u8         dcbx_cee_cap[0x1];
1465306233Shselasky	u8         dcbx_ieee_cap[0x1];
1466306233Shselasky	u8         dcbx_standby_cap[0x1];
1467306233Shselasky	u8         reserved_0[0x5];
1468306233Shselasky	u8         port_number[0x8];
1469306233Shselasky	u8         reserved_1[0xa];
1470306233Shselasky	u8         max_application_table_size[0x6];
1471306233Shselasky
1472306233Shselasky	u8         reserved_2[0x15];
1473306233Shselasky	u8         version_oper[0x3];
1474306233Shselasky	u8         reserved_3[0x5];
1475306233Shselasky	u8         version_admin[0x3];
1476306233Shselasky
1477306233Shselasky	u8         willing_admin[0x1];
1478306233Shselasky	u8         reserved_4[0x3];
1479306233Shselasky	u8         pfc_cap_oper[0x4];
1480306233Shselasky	u8         reserved_5[0x4];
1481306233Shselasky	u8         pfc_cap_admin[0x4];
1482306233Shselasky	u8         reserved_6[0x4];
1483306233Shselasky	u8         num_of_tc_oper[0x4];
1484306233Shselasky	u8         reserved_7[0x4];
1485306233Shselasky	u8         num_of_tc_admin[0x4];
1486306233Shselasky
1487306233Shselasky	u8         remote_willing[0x1];
1488306233Shselasky	u8         reserved_8[0x3];
1489306233Shselasky	u8         remote_pfc_cap[0x4];
1490306233Shselasky	u8         reserved_9[0x14];
1491306233Shselasky	u8         remote_num_of_tc[0x4];
1492306233Shselasky
1493306233Shselasky	u8         reserved_10[0x18];
1494306233Shselasky	u8         error[0x8];
1495306233Shselasky
1496306233Shselasky	u8         reserved_11[0x160];
1497306233Shselasky};
1498306233Shselasky
1499308678Shselaskystruct mlx5_ifc_qhll_bits {
1500308678Shselasky	u8         reserved_at_0[0x8];
1501308678Shselasky	u8         local_port[0x8];
1502308678Shselasky	u8         reserved_at_10[0x10];
1503308678Shselasky
1504308678Shselasky	u8         reserved_at_20[0x1b];
1505308678Shselasky	u8         hll_time[0x5];
1506308678Shselasky
1507308678Shselasky	u8         stall_en[0x1];
1508308678Shselasky	u8         reserved_at_41[0x1c];
1509308678Shselasky	u8         stall_cnt[0x3];
1510308678Shselasky};
1511308678Shselasky
1512306233Shselaskystruct mlx5_ifc_qetcr_reg_bits {
1513306233Shselasky	u8         operation_type[0x2];
1514306233Shselasky	u8         cap_local_admin[0x1];
1515306233Shselasky	u8         cap_remote_admin[0x1];
1516306233Shselasky	u8         reserved_0[0x4];
1517306233Shselasky	u8         port_number[0x8];
1518306233Shselasky	u8         reserved_1[0x10];
1519306233Shselasky
1520306233Shselasky	u8         reserved_2[0x20];
1521306233Shselasky
1522306233Shselasky	u8         tc[8][0x40];
1523306233Shselasky
1524306233Shselasky	u8         global_configuration[0x40];
1525306233Shselasky};
1526306233Shselasky
1527290650Shselaskystruct mlx5_ifc_nodnic_ring_config_reg_bits {
1528290650Shselasky	u8         queue_address_63_32[0x20];
1529290650Shselasky
1530290650Shselasky	u8         queue_address_31_12[0x14];
1531290650Shselasky	u8         reserved_0[0x6];
1532290650Shselasky	u8         log_size[0x6];
1533290650Shselasky
1534290650Shselasky	struct mlx5_ifc_nodnic_ring_doorbell_bits doorbell;
1535290650Shselasky
1536290650Shselasky	u8         reserved_1[0x8];
1537290650Shselasky	u8         queue_number[0x18];
1538290650Shselasky
1539290650Shselasky	u8         q_key[0x20];
1540290650Shselasky
1541290650Shselasky	u8         reserved_2[0x10];
1542290650Shselasky	u8         pkey_index[0x10];
1543290650Shselasky
1544290650Shselasky	u8         reserved_3[0x40];
1545290650Shselasky};
1546290650Shselasky
1547290650Shselaskystruct mlx5_ifc_nodnic_cq_arming_word_bits {
1548290650Shselasky	u8         reserved_0[0x8];
1549290650Shselasky	u8         cq_ci[0x10];
1550290650Shselasky	u8         reserved_1[0x8];
1551290650Shselasky};
1552290650Shselasky
1553290650Shselaskyenum {
1554290650Shselasky	MLX5_NODNIC_EVENT_WORD_LINK_TYPE_INFINIBAND  = 0x0,
1555290650Shselasky	MLX5_NODNIC_EVENT_WORD_LINK_TYPE_ETHERNET    = 0x1,
1556290650Shselasky};
1557290650Shselasky
1558290650Shselaskyenum {
1559290650Shselasky	MLX5_NODNIC_EVENT_WORD_PORT_STATE_DOWN        = 0x0,
1560290650Shselasky	MLX5_NODNIC_EVENT_WORD_PORT_STATE_INITIALIZE  = 0x1,
1561290650Shselasky	MLX5_NODNIC_EVENT_WORD_PORT_STATE_ARMED       = 0x2,
1562290650Shselasky	MLX5_NODNIC_EVENT_WORD_PORT_STATE_ACTIVE      = 0x3,
1563290650Shselasky};
1564290650Shselasky
1565290650Shselaskystruct mlx5_ifc_nodnic_event_word_bits {
1566290650Shselasky	u8         driver_reset_needed[0x1];
1567290650Shselasky	u8         port_management_change_event[0x1];
1568290650Shselasky	u8         reserved_0[0x19];
1569290650Shselasky	u8         link_type[0x1];
1570290650Shselasky	u8         port_state[0x4];
1571290650Shselasky};
1572290650Shselasky
1573290650Shselaskystruct mlx5_ifc_nic_vport_change_event_bits {
1574290650Shselasky	u8         reserved_0[0x10];
1575290650Shselasky	u8         vport_num[0x10];
1576290650Shselasky
1577290650Shselasky	u8         reserved_1[0xc0];
1578290650Shselasky};
1579290650Shselasky
1580290650Shselaskystruct mlx5_ifc_pages_req_event_bits {
1581290650Shselasky	u8         reserved_0[0x10];
1582290650Shselasky	u8         function_id[0x10];
1583290650Shselasky
1584290650Shselasky	u8         num_pages[0x20];
1585290650Shselasky
1586290650Shselasky	u8         reserved_1[0xa0];
1587290650Shselasky};
1588290650Shselasky
1589290650Shselaskystruct mlx5_ifc_cmd_inter_comp_event_bits {
1590290650Shselasky	u8         command_completion_vector[0x20];
1591290650Shselasky
1592290650Shselasky	u8         reserved_0[0xc0];
1593290650Shselasky};
1594290650Shselasky
1595290650Shselaskystruct mlx5_ifc_stall_vl_event_bits {
1596290650Shselasky	u8         reserved_0[0x18];
1597290650Shselasky	u8         port_num[0x1];
1598290650Shselasky	u8         reserved_1[0x3];
1599290650Shselasky	u8         vl[0x4];
1600290650Shselasky
1601290650Shselasky	u8         reserved_2[0xa0];
1602290650Shselasky};
1603290650Shselasky
1604290650Shselaskystruct mlx5_ifc_db_bf_congestion_event_bits {
1605290650Shselasky	u8         event_subtype[0x8];
1606290650Shselasky	u8         reserved_0[0x8];
1607290650Shselasky	u8         congestion_level[0x8];
1608290650Shselasky	u8         reserved_1[0x8];
1609290650Shselasky
1610290650Shselasky	u8         reserved_2[0xa0];
1611290650Shselasky};
1612290650Shselasky
1613290650Shselaskystruct mlx5_ifc_gpio_event_bits {
1614290650Shselasky	u8         reserved_0[0x60];
1615290650Shselasky
1616290650Shselasky	u8         gpio_event_hi[0x20];
1617290650Shselasky
1618290650Shselasky	u8         gpio_event_lo[0x20];
1619290650Shselasky
1620290650Shselasky	u8         reserved_1[0x40];
1621290650Shselasky};
1622290650Shselasky
1623290650Shselaskystruct mlx5_ifc_port_state_change_event_bits {
1624290650Shselasky	u8         reserved_0[0x40];
1625290650Shselasky
1626290650Shselasky	u8         port_num[0x4];
1627290650Shselasky	u8         reserved_1[0x1c];
1628290650Shselasky
1629290650Shselasky	u8         reserved_2[0x80];
1630290650Shselasky};
1631290650Shselasky
1632290650Shselaskystruct mlx5_ifc_dropped_packet_logged_bits {
1633290650Shselasky	u8         reserved_0[0xe0];
1634290650Shselasky};
1635290650Shselasky
1636290650Shselaskyenum {
1637290650Shselasky	MLX5_CQ_ERROR_SYNDROME_CQ_OVERRUN                 = 0x1,
1638290650Shselasky	MLX5_CQ_ERROR_SYNDROME_CQ_ACCESS_VIOLATION_ERROR  = 0x2,
1639290650Shselasky};
1640290650Shselasky
1641290650Shselaskystruct mlx5_ifc_cq_error_bits {
1642290650Shselasky	u8         reserved_0[0x8];
1643290650Shselasky	u8         cqn[0x18];
1644290650Shselasky
1645290650Shselasky	u8         reserved_1[0x20];
1646290650Shselasky
1647290650Shselasky	u8         reserved_2[0x18];
1648290650Shselasky	u8         syndrome[0x8];
1649290650Shselasky
1650290650Shselasky	u8         reserved_3[0x80];
1651290650Shselasky};
1652290650Shselasky
1653290650Shselaskystruct mlx5_ifc_rdma_page_fault_event_bits {
1654290650Shselasky	u8         bytes_commited[0x20];
1655290650Shselasky
1656290650Shselasky	u8         r_key[0x20];
1657290650Shselasky
1658290650Shselasky	u8         reserved_0[0x10];
1659290650Shselasky	u8         packet_len[0x10];
1660290650Shselasky
1661290650Shselasky	u8         rdma_op_len[0x20];
1662290650Shselasky
1663290650Shselasky	u8         rdma_va[0x40];
1664290650Shselasky
1665290650Shselasky	u8         reserved_1[0x5];
1666290650Shselasky	u8         rdma[0x1];
1667290650Shselasky	u8         write[0x1];
1668290650Shselasky	u8         requestor[0x1];
1669290650Shselasky	u8         qp_number[0x18];
1670290650Shselasky};
1671290650Shselasky
1672290650Shselaskystruct mlx5_ifc_wqe_associated_page_fault_event_bits {
1673290650Shselasky	u8         bytes_committed[0x20];
1674290650Shselasky
1675290650Shselasky	u8         reserved_0[0x10];
1676290650Shselasky	u8         wqe_index[0x10];
1677290650Shselasky
1678290650Shselasky	u8         reserved_1[0x10];
1679290650Shselasky	u8         len[0x10];
1680290650Shselasky
1681290650Shselasky	u8         reserved_2[0x60];
1682290650Shselasky
1683290650Shselasky	u8         reserved_3[0x5];
1684290650Shselasky	u8         rdma[0x1];
1685290650Shselasky	u8         write_read[0x1];
1686290650Shselasky	u8         requestor[0x1];
1687290650Shselasky	u8         qpn[0x18];
1688290650Shselasky};
1689290650Shselasky
1690290650Shselaskyenum {
1691290650Shselasky	MLX5_QP_EVENTS_TYPE_QP  = 0x0,
1692290650Shselasky	MLX5_QP_EVENTS_TYPE_RQ  = 0x1,
1693290650Shselasky	MLX5_QP_EVENTS_TYPE_SQ  = 0x2,
1694290650Shselasky};
1695290650Shselasky
1696290650Shselaskystruct mlx5_ifc_qp_events_bits {
1697290650Shselasky	u8         reserved_0[0xa0];
1698290650Shselasky
1699290650Shselasky	u8         type[0x8];
1700290650Shselasky	u8         reserved_1[0x18];
1701290650Shselasky
1702290650Shselasky	u8         reserved_2[0x8];
1703290650Shselasky	u8         qpn_rqn_sqn[0x18];
1704290650Shselasky};
1705290650Shselasky
1706290650Shselaskystruct mlx5_ifc_dct_events_bits {
1707290650Shselasky	u8         reserved_0[0xc0];
1708290650Shselasky
1709290650Shselasky	u8         reserved_1[0x8];
1710290650Shselasky	u8         dct_number[0x18];
1711290650Shselasky};
1712290650Shselasky
1713290650Shselaskystruct mlx5_ifc_comp_event_bits {
1714290650Shselasky	u8         reserved_0[0xc0];
1715290650Shselasky
1716290650Shselasky	u8         reserved_1[0x8];
1717290650Shselasky	u8         cq_number[0x18];
1718290650Shselasky};
1719290650Shselasky
1720290650Shselaskystruct mlx5_ifc_fw_version_bits {
1721290650Shselasky	u8         major[0x10];
1722290650Shselasky	u8         reserved_0[0x10];
1723290650Shselasky
1724290650Shselasky	u8         minor[0x10];
1725290650Shselasky	u8         subminor[0x10];
1726290650Shselasky
1727290650Shselasky	u8         second[0x8];
1728290650Shselasky	u8         minute[0x8];
1729290650Shselasky	u8         hour[0x8];
1730290650Shselasky	u8         reserved_1[0x8];
1731290650Shselasky
1732290650Shselasky	u8         year[0x10];
1733290650Shselasky	u8         month[0x8];
1734290650Shselasky	u8         day[0x8];
1735290650Shselasky};
1736290650Shselasky
1737290650Shselaskyenum {
1738290650Shselasky	MLX5_QPC_STATE_RST        = 0x0,
1739290650Shselasky	MLX5_QPC_STATE_INIT       = 0x1,
1740290650Shselasky	MLX5_QPC_STATE_RTR        = 0x2,
1741290650Shselasky	MLX5_QPC_STATE_RTS        = 0x3,
1742290650Shselasky	MLX5_QPC_STATE_SQER       = 0x4,
1743290650Shselasky	MLX5_QPC_STATE_SQD        = 0x5,
1744290650Shselasky	MLX5_QPC_STATE_ERR        = 0x6,
1745290650Shselasky	MLX5_QPC_STATE_SUSPENDED  = 0x9,
1746290650Shselasky};
1747290650Shselasky
1748290650Shselaskyenum {
1749290650Shselasky	MLX5_QPC_ST_RC            = 0x0,
1750290650Shselasky	MLX5_QPC_ST_UC            = 0x1,
1751290650Shselasky	MLX5_QPC_ST_UD            = 0x2,
1752290650Shselasky	MLX5_QPC_ST_XRC           = 0x3,
1753290650Shselasky	MLX5_QPC_ST_DCI           = 0x5,
1754290650Shselasky	MLX5_QPC_ST_QP0           = 0x7,
1755290650Shselasky	MLX5_QPC_ST_QP1           = 0x8,
1756290650Shselasky	MLX5_QPC_ST_RAW_DATAGRAM  = 0x9,
1757290650Shselasky	MLX5_QPC_ST_REG_UMR       = 0xc,
1758290650Shselasky};
1759290650Shselasky
1760290650Shselaskyenum {
1761290650Shselasky	MLX5_QP_PM_ARMED            = 0x0,
1762290650Shselasky	MLX5_QP_PM_REARM            = 0x1,
1763290650Shselasky	MLX5_QPC_PM_STATE_RESERVED  = 0x2,
1764290650Shselasky	MLX5_QP_PM_MIGRATED         = 0x3,
1765290650Shselasky};
1766290650Shselasky
1767290650Shselaskyenum {
1768290650Shselasky	MLX5_QPC_END_PADDING_MODE_SCATTER_AS_IS                = 0x0,
1769290650Shselasky	MLX5_QPC_END_PADDING_MODE_PAD_TO_CACHE_LINE_ALIGNMENT  = 0x1,
1770290650Shselasky};
1771290650Shselasky
1772290650Shselaskyenum {
1773290650Shselasky	MLX5_QPC_MTU_256_BYTES        = 0x1,
1774290650Shselasky	MLX5_QPC_MTU_512_BYTES        = 0x2,
1775290650Shselasky	MLX5_QPC_MTU_1K_BYTES         = 0x3,
1776290650Shselasky	MLX5_QPC_MTU_2K_BYTES         = 0x4,
1777290650Shselasky	MLX5_QPC_MTU_4K_BYTES         = 0x5,
1778290650Shselasky	MLX5_QPC_MTU_RAW_ETHERNET_QP  = 0x7,
1779290650Shselasky};
1780290650Shselasky
1781290650Shselaskyenum {
1782290650Shselasky	MLX5_QPC_ATOMIC_MODE_IB_SPEC     = 0x1,
1783290650Shselasky	MLX5_QPC_ATOMIC_MODE_ONLY_8B     = 0x2,
1784290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_8B    = 0x3,
1785290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_16B   = 0x4,
1786290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_32B   = 0x5,
1787290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_64B   = 0x6,
1788290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_128B  = 0x7,
1789290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_256B  = 0x8,
1790290650Shselasky};
1791290650Shselasky
1792290650Shselaskyenum {
1793290650Shselasky	MLX5_QPC_CS_REQ_DISABLE    = 0x0,
1794290650Shselasky	MLX5_QPC_CS_REQ_UP_TO_32B  = 0x11,
1795290650Shselasky	MLX5_QPC_CS_REQ_UP_TO_64B  = 0x22,
1796290650Shselasky};
1797290650Shselasky
1798290650Shselaskyenum {
1799290650Shselasky	MLX5_QPC_CS_RES_DISABLE    = 0x0,
1800290650Shselasky	MLX5_QPC_CS_RES_UP_TO_32B  = 0x1,
1801290650Shselasky	MLX5_QPC_CS_RES_UP_TO_64B  = 0x2,
1802290650Shselasky};
1803290650Shselasky
1804290650Shselaskystruct mlx5_ifc_qpc_bits {
1805290650Shselasky	u8         state[0x4];
1806329204Shselasky	u8         lag_tx_port_affinity[0x4];
1807290650Shselasky	u8         st[0x8];
1808290650Shselasky	u8         reserved_1[0x3];
1809290650Shselasky	u8         pm_state[0x2];
1810290650Shselasky	u8         reserved_2[0x7];
1811290650Shselasky	u8         end_padding_mode[0x2];
1812290650Shselasky	u8         reserved_3[0x2];
1813290650Shselasky
1814290650Shselasky	u8         wq_signature[0x1];
1815290650Shselasky	u8         block_lb_mc[0x1];
1816290650Shselasky	u8         atomic_like_write_en[0x1];
1817290650Shselasky	u8         latency_sensitive[0x1];
1818290650Shselasky	u8         reserved_4[0x1];
1819290650Shselasky	u8         drain_sigerr[0x1];
1820290650Shselasky	u8         reserved_5[0x2];
1821290650Shselasky	u8         pd[0x18];
1822290650Shselasky
1823290650Shselasky	u8         mtu[0x3];
1824290650Shselasky	u8         log_msg_max[0x5];
1825290650Shselasky	u8         reserved_6[0x1];
1826290650Shselasky	u8         log_rq_size[0x4];
1827290650Shselasky	u8         log_rq_stride[0x3];
1828290650Shselasky	u8         no_sq[0x1];
1829290650Shselasky	u8         log_sq_size[0x4];
1830290650Shselasky	u8         reserved_7[0x6];
1831290650Shselasky	u8         rlky[0x1];
1832306233Shselasky	u8         ulp_stateless_offload_mode[0x4];
1833290650Shselasky
1834290650Shselasky	u8         counter_set_id[0x8];
1835290650Shselasky	u8         uar_page[0x18];
1836290650Shselasky
1837306233Shselasky	u8         reserved_8[0x8];
1838290650Shselasky	u8         user_index[0x18];
1839290650Shselasky
1840306233Shselasky	u8         reserved_9[0x3];
1841290650Shselasky	u8         log_page_size[0x5];
1842290650Shselasky	u8         remote_qpn[0x18];
1843290650Shselasky
1844290650Shselasky	struct mlx5_ifc_ads_bits primary_address_path;
1845290650Shselasky
1846290650Shselasky	struct mlx5_ifc_ads_bits secondary_address_path;
1847290650Shselasky
1848290650Shselasky	u8         log_ack_req_freq[0x4];
1849306233Shselasky	u8         reserved_10[0x4];
1850290650Shselasky	u8         log_sra_max[0x3];
1851306233Shselasky	u8         reserved_11[0x2];
1852290650Shselasky	u8         retry_count[0x3];
1853290650Shselasky	u8         rnr_retry[0x3];
1854306233Shselasky	u8         reserved_12[0x1];
1855290650Shselasky	u8         fre[0x1];
1856290650Shselasky	u8         cur_rnr_retry[0x3];
1857290650Shselasky	u8         cur_retry_count[0x3];
1858306233Shselasky	u8         reserved_13[0x5];
1859290650Shselasky
1860306233Shselasky	u8         reserved_14[0x20];
1861290650Shselasky
1862306233Shselasky	u8         reserved_15[0x8];
1863290650Shselasky	u8         next_send_psn[0x18];
1864290650Shselasky
1865306233Shselasky	u8         reserved_16[0x8];
1866290650Shselasky	u8         cqn_snd[0x18];
1867290650Shselasky
1868329204Shselasky	u8         reserved_at_400[0x8];
1869290650Shselasky
1870329204Shselasky	u8         deth_sqpn[0x18];
1871329204Shselasky	u8         reserved_17[0x20];
1872329204Shselasky
1873306233Shselasky	u8         reserved_18[0x8];
1874290650Shselasky	u8         last_acked_psn[0x18];
1875290650Shselasky
1876306233Shselasky	u8         reserved_19[0x8];
1877290650Shselasky	u8         ssn[0x18];
1878290650Shselasky
1879306233Shselasky	u8         reserved_20[0x8];
1880290650Shselasky	u8         log_rra_max[0x3];
1881306233Shselasky	u8         reserved_21[0x1];
1882290650Shselasky	u8         atomic_mode[0x4];
1883290650Shselasky	u8         rre[0x1];
1884290650Shselasky	u8         rwe[0x1];
1885290650Shselasky	u8         rae[0x1];
1886306233Shselasky	u8         reserved_22[0x1];
1887290650Shselasky	u8         page_offset[0x6];
1888306233Shselasky	u8         reserved_23[0x3];
1889290650Shselasky	u8         cd_slave_receive[0x1];
1890290650Shselasky	u8         cd_slave_send[0x1];
1891290650Shselasky	u8         cd_master[0x1];
1892290650Shselasky
1893306233Shselasky	u8         reserved_24[0x3];
1894290650Shselasky	u8         min_rnr_nak[0x5];
1895290650Shselasky	u8         next_rcv_psn[0x18];
1896290650Shselasky
1897306233Shselasky	u8         reserved_25[0x8];
1898290650Shselasky	u8         xrcd[0x18];
1899290650Shselasky
1900306233Shselasky	u8         reserved_26[0x8];
1901290650Shselasky	u8         cqn_rcv[0x18];
1902290650Shselasky
1903290650Shselasky	u8         dbr_addr[0x40];
1904290650Shselasky
1905290650Shselasky	u8         q_key[0x20];
1906290650Shselasky
1907306233Shselasky	u8         reserved_27[0x5];
1908290650Shselasky	u8         rq_type[0x3];
1909290650Shselasky	u8         srqn_rmpn[0x18];
1910290650Shselasky
1911306233Shselasky	u8         reserved_28[0x8];
1912290650Shselasky	u8         rmsn[0x18];
1913290650Shselasky
1914290650Shselasky	u8         hw_sq_wqebb_counter[0x10];
1915290650Shselasky	u8         sw_sq_wqebb_counter[0x10];
1916290650Shselasky
1917290650Shselasky	u8         hw_rq_counter[0x20];
1918290650Shselasky
1919290650Shselasky	u8         sw_rq_counter[0x20];
1920290650Shselasky
1921306233Shselasky	u8         reserved_29[0x20];
1922290650Shselasky
1923306233Shselasky	u8         reserved_30[0xf];
1924290650Shselasky	u8         cgs[0x1];
1925290650Shselasky	u8         cs_req[0x8];
1926290650Shselasky	u8         cs_res[0x8];
1927290650Shselasky
1928290650Shselasky	u8         dc_access_key[0x40];
1929290650Shselasky
1930290650Shselasky	u8         rdma_active[0x1];
1931290650Shselasky	u8         comm_est[0x1];
1932290650Shselasky	u8         suspended[0x1];
1933306233Shselasky	u8         reserved_31[0x5];
1934290650Shselasky	u8         send_msg_psn[0x18];
1935290650Shselasky
1936306233Shselasky	u8         reserved_32[0x8];
1937290650Shselasky	u8         rcv_msg_psn[0x18];
1938290650Shselasky
1939290650Shselasky	u8         rdma_va[0x40];
1940290650Shselasky
1941290650Shselasky	u8         rdma_key[0x20];
1942290650Shselasky
1943306233Shselasky	u8         reserved_33[0x20];
1944290650Shselasky};
1945290650Shselasky
1946290650Shselaskystruct mlx5_ifc_roce_addr_layout_bits {
1947290650Shselasky	u8         source_l3_address[16][0x8];
1948290650Shselasky
1949290650Shselasky	u8         reserved_0[0x3];
1950290650Shselasky	u8         vlan_valid[0x1];
1951290650Shselasky	u8         vlan_id[0xc];
1952290650Shselasky	u8         source_mac_47_32[0x10];
1953290650Shselasky
1954290650Shselasky	u8         source_mac_31_0[0x20];
1955290650Shselasky
1956290650Shselasky	u8         reserved_1[0x14];
1957290650Shselasky	u8         roce_l3_type[0x4];
1958290650Shselasky	u8         roce_version[0x8];
1959290650Shselasky
1960290650Shselasky	u8         reserved_2[0x20];
1961290650Shselasky};
1962290650Shselasky
1963290650Shselaskystruct mlx5_ifc_rdbc_bits {
1964290650Shselasky	u8         reserved_0[0x1c];
1965290650Shselasky	u8         type[0x4];
1966290650Shselasky
1967290650Shselasky	u8         reserved_1[0x20];
1968290650Shselasky
1969290650Shselasky	u8         reserved_2[0x8];
1970290650Shselasky	u8         psn[0x18];
1971290650Shselasky
1972290650Shselasky	u8         rkey[0x20];
1973290650Shselasky
1974290650Shselasky	u8         address[0x40];
1975290650Shselasky
1976290650Shselasky	u8         byte_count[0x20];
1977290650Shselasky
1978290650Shselasky	u8         reserved_3[0x20];
1979290650Shselasky
1980290650Shselasky	u8         atomic_resp[32][0x8];
1981290650Shselasky};
1982290650Shselasky
1983290650Shselaskyenum {
1984290650Shselasky	MLX5_FLOW_CONTEXT_ACTION_ALLOW     = 0x1,
1985290650Shselasky	MLX5_FLOW_CONTEXT_ACTION_DROP      = 0x2,
1986290650Shselasky	MLX5_FLOW_CONTEXT_ACTION_FWD_DEST  = 0x4,
1987290650Shselasky	MLX5_FLOW_CONTEXT_ACTION_COUNT     = 0x8,
1988290650Shselasky};
1989290650Shselasky
1990290650Shselaskystruct mlx5_ifc_flow_context_bits {
1991290650Shselasky	u8         reserved_0[0x20];
1992290650Shselasky
1993290650Shselasky	u8         group_id[0x20];
1994290650Shselasky
1995290650Shselasky	u8         reserved_1[0x8];
1996290650Shselasky	u8         flow_tag[0x18];
1997290650Shselasky
1998290650Shselasky	u8         reserved_2[0x10];
1999290650Shselasky	u8         action[0x10];
2000290650Shselasky
2001290650Shselasky	u8         reserved_3[0x8];
2002290650Shselasky	u8         destination_list_size[0x18];
2003290650Shselasky
2004290650Shselasky	u8         reserved_4[0x8];
2005290650Shselasky	u8         flow_counter_list_size[0x18];
2006290650Shselasky
2007290650Shselasky	u8         reserved_5[0x140];
2008290650Shselasky
2009290650Shselasky	struct mlx5_ifc_fte_match_param_bits match_value;
2010290650Shselasky
2011290650Shselasky	u8         reserved_6[0x600];
2012290650Shselasky
2013290650Shselasky	union mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits destination[0];
2014290650Shselasky};
2015290650Shselasky
2016290650Shselaskyenum {
2017290650Shselasky	MLX5_XRC_SRQC_STATE_GOOD   = 0x0,
2018290650Shselasky	MLX5_XRC_SRQC_STATE_ERROR  = 0x1,
2019290650Shselasky};
2020290650Shselasky
2021290650Shselaskystruct mlx5_ifc_xrc_srqc_bits {
2022290650Shselasky	u8         state[0x4];
2023290650Shselasky	u8         log_xrc_srq_size[0x4];
2024290650Shselasky	u8         reserved_0[0x18];
2025290650Shselasky
2026290650Shselasky	u8         wq_signature[0x1];
2027290650Shselasky	u8         cont_srq[0x1];
2028290650Shselasky	u8         reserved_1[0x1];
2029290650Shselasky	u8         rlky[0x1];
2030290650Shselasky	u8         basic_cyclic_rcv_wqe[0x1];
2031290650Shselasky	u8         log_rq_stride[0x3];
2032290650Shselasky	u8         xrcd[0x18];
2033290650Shselasky
2034290650Shselasky	u8         page_offset[0x6];
2035290650Shselasky	u8         reserved_2[0x2];
2036290650Shselasky	u8         cqn[0x18];
2037290650Shselasky
2038290650Shselasky	u8         reserved_3[0x20];
2039290650Shselasky
2040290650Shselasky	u8         reserved_4[0x2];
2041290650Shselasky	u8         log_page_size[0x6];
2042290650Shselasky	u8         user_index[0x18];
2043290650Shselasky
2044290650Shselasky	u8         reserved_5[0x20];
2045290650Shselasky
2046290650Shselasky	u8         reserved_6[0x8];
2047290650Shselasky	u8         pd[0x18];
2048290650Shselasky
2049290650Shselasky	u8         lwm[0x10];
2050290650Shselasky	u8         wqe_cnt[0x10];
2051290650Shselasky
2052290650Shselasky	u8         reserved_7[0x40];
2053290650Shselasky
2054290650Shselasky	u8         db_record_addr_h[0x20];
2055290650Shselasky
2056290650Shselasky	u8         db_record_addr_l[0x1e];
2057290650Shselasky	u8         reserved_8[0x2];
2058290650Shselasky
2059290650Shselasky	u8         reserved_9[0x80];
2060290650Shselasky};
2061290650Shselasky
2062290650Shselaskystruct mlx5_ifc_traffic_counter_bits {
2063290650Shselasky	u8         packets[0x40];
2064290650Shselasky
2065290650Shselasky	u8         octets[0x40];
2066290650Shselasky};
2067290650Shselasky
2068290650Shselaskystruct mlx5_ifc_tisc_bits {
2069329204Shselasky	u8         strict_lag_tx_port_affinity[0x1];
2070329204Shselasky	u8         reserved_at_1[0x3];
2071329204Shselasky	u8         lag_tx_port_affinity[0x04];
2072329204Shselasky
2073329204Shselasky	u8         reserved_at_8[0x4];
2074290650Shselasky	u8         prio[0x4];
2075290650Shselasky	u8         reserved_1[0x10];
2076290650Shselasky
2077290650Shselasky	u8         reserved_2[0x100];
2078290650Shselasky
2079290650Shselasky	u8         reserved_3[0x8];
2080290650Shselasky	u8         transport_domain[0x18];
2081290650Shselasky
2082306233Shselasky	u8         reserved_4[0x8];
2083306233Shselasky	u8         underlay_qpn[0x18];
2084306233Shselasky
2085306233Shselasky	u8         reserved_5[0x3a0];
2086290650Shselasky};
2087290650Shselasky
2088290650Shselaskyenum {
2089290650Shselasky	MLX5_TIRC_DISP_TYPE_DIRECT    = 0x0,
2090290650Shselasky	MLX5_TIRC_DISP_TYPE_INDIRECT  = 0x1,
2091290650Shselasky};
2092290650Shselasky
2093290650Shselaskyenum {
2094290650Shselasky	MLX5_TIRC_LRO_ENABLE_MASK_IPV4_LRO  = 0x1,
2095290650Shselasky	MLX5_TIRC_LRO_ENABLE_MASK_IPV6_LRO  = 0x2,
2096290650Shselasky};
2097290650Shselasky
2098290650Shselaskyenum {
2099290650Shselasky	MLX5_TIRC_RX_HASH_FN_HASH_NONE           = 0x0,
2100290650Shselasky	MLX5_TIRC_RX_HASH_FN_HASH_INVERTED_XOR8  = 0x1,
2101290650Shselasky	MLX5_TIRC_RX_HASH_FN_HASH_TOEPLITZ       = 0x2,
2102290650Shselasky};
2103290650Shselasky
2104290650Shselaskyenum {
2105290650Shselasky	MLX5_TIRC_SELF_LB_EN_ENABLE_UNICAST    = 0x1,
2106290650Shselasky	MLX5_TIRC_SELF_LB_EN_ENABLE_MULTICAST  = 0x2,
2107290650Shselasky};
2108290650Shselasky
2109290650Shselaskystruct mlx5_ifc_tirc_bits {
2110290650Shselasky	u8         reserved_0[0x20];
2111290650Shselasky
2112290650Shselasky	u8         disp_type[0x4];
2113290650Shselasky	u8         reserved_1[0x1c];
2114290650Shselasky
2115290650Shselasky	u8         reserved_2[0x40];
2116290650Shselasky
2117290650Shselasky	u8         reserved_3[0x4];
2118290650Shselasky	u8         lro_timeout_period_usecs[0x10];
2119290650Shselasky	u8         lro_enable_mask[0x4];
2120290650Shselasky	u8         lro_max_msg_sz[0x8];
2121290650Shselasky
2122290650Shselasky	u8         reserved_4[0x40];
2123290650Shselasky
2124290650Shselasky	u8         reserved_5[0x8];
2125290650Shselasky	u8         inline_rqn[0x18];
2126290650Shselasky
2127290650Shselasky	u8         rx_hash_symmetric[0x1];
2128290650Shselasky	u8         reserved_6[0x1];
2129290650Shselasky	u8         tunneled_offload_en[0x1];
2130290650Shselasky	u8         reserved_7[0x5];
2131290650Shselasky	u8         indirect_table[0x18];
2132290650Shselasky
2133290650Shselasky	u8         rx_hash_fn[0x4];
2134290650Shselasky	u8         reserved_8[0x2];
2135290650Shselasky	u8         self_lb_en[0x2];
2136290650Shselasky	u8         transport_domain[0x18];
2137290650Shselasky
2138290650Shselasky	u8         rx_hash_toeplitz_key[10][0x20];
2139290650Shselasky
2140290650Shselasky	struct mlx5_ifc_rx_hash_field_select_bits rx_hash_field_selector_outer;
2141290650Shselasky
2142290650Shselasky	struct mlx5_ifc_rx_hash_field_select_bits rx_hash_field_selector_inner;
2143290650Shselasky
2144290650Shselasky	u8         reserved_9[0x4c0];
2145290650Shselasky};
2146290650Shselasky
2147290650Shselaskyenum {
2148290650Shselasky	MLX5_SRQC_STATE_GOOD   = 0x0,
2149290650Shselasky	MLX5_SRQC_STATE_ERROR  = 0x1,
2150290650Shselasky};
2151290650Shselasky
2152290650Shselaskystruct mlx5_ifc_srqc_bits {
2153290650Shselasky	u8         state[0x4];
2154290650Shselasky	u8         log_srq_size[0x4];
2155290650Shselasky	u8         reserved_0[0x18];
2156290650Shselasky
2157290650Shselasky	u8         wq_signature[0x1];
2158290650Shselasky	u8         cont_srq[0x1];
2159290650Shselasky	u8         reserved_1[0x1];
2160290650Shselasky	u8         rlky[0x1];
2161290650Shselasky	u8         reserved_2[0x1];
2162290650Shselasky	u8         log_rq_stride[0x3];
2163290650Shselasky	u8         xrcd[0x18];
2164290650Shselasky
2165290650Shselasky	u8         page_offset[0x6];
2166290650Shselasky	u8         reserved_3[0x2];
2167290650Shselasky	u8         cqn[0x18];
2168290650Shselasky
2169290650Shselasky	u8         reserved_4[0x20];
2170290650Shselasky
2171290650Shselasky	u8         reserved_5[0x2];
2172290650Shselasky	u8         log_page_size[0x6];
2173290650Shselasky	u8         reserved_6[0x18];
2174290650Shselasky
2175290650Shselasky	u8         reserved_7[0x20];
2176290650Shselasky
2177290650Shselasky	u8         reserved_8[0x8];
2178290650Shselasky	u8         pd[0x18];
2179290650Shselasky
2180290650Shselasky	u8         lwm[0x10];
2181290650Shselasky	u8         wqe_cnt[0x10];
2182290650Shselasky
2183290650Shselasky	u8         reserved_9[0x40];
2184290650Shselasky
2185290650Shselasky	u8         db_record_addr_h[0x20];
2186290650Shselasky
2187290650Shselasky	u8         db_record_addr_l[0x1e];
2188290650Shselasky	u8         reserved_10[0x2];
2189290650Shselasky
2190290650Shselasky	u8         reserved_11[0x80];
2191290650Shselasky};
2192290650Shselasky
2193290650Shselaskyenum {
2194290650Shselasky	MLX5_SQC_STATE_RST  = 0x0,
2195290650Shselasky	MLX5_SQC_STATE_RDY  = 0x1,
2196290650Shselasky	MLX5_SQC_STATE_ERR  = 0x3,
2197290650Shselasky};
2198290650Shselasky
2199290650Shselaskystruct mlx5_ifc_sqc_bits {
2200308678Shselasky	u8         rlkey[0x1];
2201290650Shselasky	u8         cd_master[0x1];
2202290650Shselasky	u8         fre[0x1];
2203290650Shselasky	u8         flush_in_error_en[0x1];
2204290650Shselasky	u8         allow_multi_pkt_send_wqe[0x1];
2205290650Shselasky	u8         min_wqe_inline_mode[0x3];
2206290650Shselasky	u8         state[0x4];
2207308678Shselasky	u8         reg_umr[0x1];
2208308678Shselasky	u8         allow_swp[0x1];
2209308678Shselasky	u8         reserved_0[0x12];
2210290650Shselasky
2211290650Shselasky	u8         reserved_1[0x8];
2212290650Shselasky	u8         user_index[0x18];
2213290650Shselasky
2214290650Shselasky	u8         reserved_2[0x8];
2215290650Shselasky	u8         cqn[0x18];
2216290650Shselasky
2217308678Shselasky	u8         reserved_3[0x80];
2218308678Shselasky
2219308678Shselasky	u8         qos_para_vport_number[0x10];
2220306233Shselasky	u8         packet_pacing_rate_limit_index[0x10];
2221290650Shselasky
2222290650Shselasky	u8         tis_lst_sz[0x10];
2223290650Shselasky	u8         reserved_4[0x10];
2224290650Shselasky
2225290650Shselasky	u8         reserved_5[0x40];
2226290650Shselasky
2227290650Shselasky	u8         reserved_6[0x8];
2228290650Shselasky	u8         tis_num_0[0x18];
2229290650Shselasky
2230290650Shselasky	struct mlx5_ifc_wq_bits wq;
2231290650Shselasky};
2232290650Shselasky
2233308678Shselaskyenum {
2234308678Shselasky	MLX5_TSAR_TYPE_DWRR = 0,
2235308678Shselasky	MLX5_TSAR_TYPE_ROUND_ROUBIN = 1,
2236308678Shselasky	MLX5_TSAR_TYPE_ETS = 2
2237308678Shselasky};
2238308678Shselasky
2239308678Shselaskystruct mlx5_ifc_tsar_element_attributes_bits {
2240308678Shselasky	u8         reserved_0[0x8];
2241308678Shselasky	u8         tsar_type[0x8];
2242308678Shselasky	u8	   reserved_1[0x10];
2243308678Shselasky};
2244308678Shselasky
2245308678Shselaskystruct mlx5_ifc_vport_element_attributes_bits {
2246308678Shselasky	u8         reserved_0[0x10];
2247308678Shselasky	u8         vport_number[0x10];
2248308678Shselasky};
2249308678Shselasky
2250308678Shselaskystruct mlx5_ifc_vport_tc_element_attributes_bits {
2251308678Shselasky	u8         traffic_class[0x10];
2252308678Shselasky	u8         vport_number[0x10];
2253308678Shselasky};
2254308678Shselasky
2255308678Shselaskystruct mlx5_ifc_para_vport_tc_element_attributes_bits {
2256308678Shselasky	u8         reserved_0[0x0C];
2257308678Shselasky	u8         traffic_class[0x04];
2258308678Shselasky	u8         qos_para_vport_number[0x10];
2259308678Shselasky};
2260308678Shselasky
2261308678Shselaskyenum {
2262308678Shselasky	MLX5_SCHEDULING_CONTEXT_ELEMENT_TYPE_TSAR           = 0x0,
2263308678Shselasky	MLX5_SCHEDULING_CONTEXT_ELEMENT_TYPE_VPORT          = 0x1,
2264308678Shselasky	MLX5_SCHEDULING_CONTEXT_ELEMENT_TYPE_VPORT_TC       = 0x2,
2265308678Shselasky	MLX5_SCHEDULING_CONTEXT_ELEMENT_TYPE_PARA_VPORT_TC  = 0x3,
2266308678Shselasky};
2267308678Shselasky
2268308678Shselaskystruct mlx5_ifc_scheduling_context_bits {
2269308678Shselasky	u8         element_type[0x8];
2270308678Shselasky	u8         reserved_at_8[0x18];
2271308678Shselasky
2272308678Shselasky	u8         element_attributes[0x20];
2273308678Shselasky
2274308678Shselasky	u8         parent_element_id[0x20];
2275308678Shselasky
2276308678Shselasky	u8         reserved_at_60[0x40];
2277308678Shselasky
2278308678Shselasky	u8         bw_share[0x20];
2279308678Shselasky
2280308678Shselasky	u8         max_average_bw[0x20];
2281308678Shselasky
2282308678Shselasky	u8         reserved_at_e0[0x120];
2283308678Shselasky};
2284308678Shselasky
2285290650Shselaskystruct mlx5_ifc_rqtc_bits {
2286290650Shselasky	u8         reserved_0[0xa0];
2287290650Shselasky
2288290650Shselasky	u8         reserved_1[0x10];
2289290650Shselasky	u8         rqt_max_size[0x10];
2290290650Shselasky
2291290650Shselasky	u8         reserved_2[0x10];
2292290650Shselasky	u8         rqt_actual_size[0x10];
2293290650Shselasky
2294290650Shselasky	u8         reserved_3[0x6a0];
2295290650Shselasky
2296290650Shselasky	struct mlx5_ifc_rq_num_bits rq_num[0];
2297290650Shselasky};
2298290650Shselasky
2299290650Shselaskyenum {
2300290650Shselasky	MLX5_RQC_RQ_TYPE_MEMORY_RQ_INLINE      = 0x0,
2301290650Shselasky	MLX5_RQC_RQ_TYPE_MEMORY_RQ_RMP         = 0x1,
2302290650Shselasky};
2303290650Shselasky
2304290650Shselaskyenum {
2305290650Shselasky	MLX5_RQC_STATE_RST  = 0x0,
2306290650Shselasky	MLX5_RQC_STATE_RDY  = 0x1,
2307290650Shselasky	MLX5_RQC_STATE_ERR  = 0x3,
2308290650Shselasky};
2309290650Shselasky
2310321992Shselaskyenum {
2311321992Shselasky	MLX5_RQC_DROPLESS_MODE_DISABLE        = 0x0,
2312321992Shselasky	MLX5_RQC_DROPLESS_MODE_ENABLE         = 0x1,
2313321992Shselasky};
2314321992Shselasky
2315290650Shselaskystruct mlx5_ifc_rqc_bits {
2316321992Shselasky	u8         rlkey[0x1];
2317321992Shselasky	u8         delay_drop_en[0x1];
2318321992Shselasky	u8         scatter_fcs[0x1];
2319290650Shselasky	u8         vlan_strip_disable[0x1];
2320290650Shselasky	u8         mem_rq_type[0x4];
2321290650Shselasky	u8         state[0x4];
2322290650Shselasky	u8         reserved_1[0x1];
2323290650Shselasky	u8         flush_in_error_en[0x1];
2324290650Shselasky	u8         reserved_2[0x12];
2325290650Shselasky
2326290650Shselasky	u8         reserved_3[0x8];
2327290650Shselasky	u8         user_index[0x18];
2328290650Shselasky
2329290650Shselasky	u8         reserved_4[0x8];
2330290650Shselasky	u8         cqn[0x18];
2331290650Shselasky
2332290650Shselasky	u8         counter_set_id[0x8];
2333290650Shselasky	u8         reserved_5[0x18];
2334290650Shselasky
2335290650Shselasky	u8         reserved_6[0x8];
2336290650Shselasky	u8         rmpn[0x18];
2337290650Shselasky
2338290650Shselasky	u8         reserved_7[0xe0];
2339290650Shselasky
2340290650Shselasky	struct mlx5_ifc_wq_bits wq;
2341290650Shselasky};
2342290650Shselasky
2343290650Shselaskyenum {
2344290650Shselasky	MLX5_RMPC_STATE_RDY  = 0x1,
2345290650Shselasky	MLX5_RMPC_STATE_ERR  = 0x3,
2346290650Shselasky};
2347290650Shselasky
2348290650Shselaskystruct mlx5_ifc_rmpc_bits {
2349290650Shselasky	u8         reserved_0[0x8];
2350290650Shselasky	u8         state[0x4];
2351290650Shselasky	u8         reserved_1[0x14];
2352290650Shselasky
2353290650Shselasky	u8         basic_cyclic_rcv_wqe[0x1];
2354290650Shselasky	u8         reserved_2[0x1f];
2355290650Shselasky
2356290650Shselasky	u8         reserved_3[0x140];
2357290650Shselasky
2358290650Shselasky	struct mlx5_ifc_wq_bits wq;
2359290650Shselasky};
2360290650Shselasky
2361290650Shselaskyenum {
2362290650Shselasky	MLX5_NIC_VPORT_CONTEXT_ALLOWED_LIST_TYPE_CURRENT_UC_MAC_ADDRESS  = 0x0,
2363290650Shselasky	MLX5_NIC_VPORT_CONTEXT_ALLOWED_LIST_TYPE_CURRENT_MC_MAC_ADDRESS  = 0x1,
2364290650Shselasky	MLX5_NIC_VPORT_CONTEXT_ALLOWED_LIST_TYPE_VLAN_LIST               = 0x2,
2365290650Shselasky};
2366290650Shselasky
2367290650Shselaskystruct mlx5_ifc_nic_vport_context_bits {
2368290650Shselasky	u8         reserved_0[0x5];
2369290650Shselasky	u8         min_wqe_inline_mode[0x3];
2370321992Shselasky	u8         reserved_1[0x15];
2371321992Shselasky	u8         disable_mc_local_lb[0x1];
2372321992Shselasky	u8         disable_uc_local_lb[0x1];
2373290650Shselasky	u8         roce_en[0x1];
2374290650Shselasky
2375290650Shselasky	u8         arm_change_event[0x1];
2376290650Shselasky	u8         reserved_2[0x1a];
2377290650Shselasky	u8         event_on_mtu[0x1];
2378290650Shselasky	u8         event_on_promisc_change[0x1];
2379290650Shselasky	u8         event_on_vlan_change[0x1];
2380290650Shselasky	u8         event_on_mc_address_change[0x1];
2381290650Shselasky	u8         event_on_uc_address_change[0x1];
2382290650Shselasky
2383290650Shselasky	u8         reserved_3[0xe0];
2384290650Shselasky
2385290650Shselasky	u8         reserved_4[0x10];
2386290650Shselasky	u8         mtu[0x10];
2387290650Shselasky
2388290650Shselasky	u8         system_image_guid[0x40];
2389290650Shselasky
2390290650Shselasky	u8         port_guid[0x40];
2391290650Shselasky
2392290650Shselasky	u8         node_guid[0x40];
2393290650Shselasky
2394290650Shselasky	u8         reserved_5[0x140];
2395290650Shselasky
2396290650Shselasky	u8         qkey_violation_counter[0x10];
2397290650Shselasky	u8         reserved_6[0x10];
2398290650Shselasky
2399290650Shselasky	u8         reserved_7[0x420];
2400290650Shselasky
2401290650Shselasky	u8         promisc_uc[0x1];
2402290650Shselasky	u8         promisc_mc[0x1];
2403290650Shselasky	u8         promisc_all[0x1];
2404290650Shselasky	u8         reserved_8[0x2];
2405290650Shselasky	u8         allowed_list_type[0x3];
2406290650Shselasky	u8         reserved_9[0xc];
2407290650Shselasky	u8         allowed_list_size[0xc];
2408290650Shselasky
2409290650Shselasky	struct mlx5_ifc_mac_address_layout_bits permanent_address;
2410290650Shselasky
2411290650Shselasky	u8         reserved_10[0x20];
2412290650Shselasky
2413290650Shselasky	u8         current_uc_mac_address[0][0x40];
2414290650Shselasky};
2415290650Shselasky
2416290650Shselaskyenum {
2417290650Shselasky	MLX5_ACCESS_MODE_PA        = 0x0,
2418290650Shselasky	MLX5_ACCESS_MODE_MTT       = 0x1,
2419290650Shselasky	MLX5_ACCESS_MODE_KLM       = 0x2,
2420290650Shselasky};
2421290650Shselasky
2422290650Shselaskystruct mlx5_ifc_mkc_bits {
2423290650Shselasky	u8         reserved_0[0x1];
2424290650Shselasky	u8         free[0x1];
2425290650Shselasky	u8         reserved_1[0xd];
2426290650Shselasky	u8         small_fence_on_rdma_read_response[0x1];
2427290650Shselasky	u8         umr_en[0x1];
2428290650Shselasky	u8         a[0x1];
2429290650Shselasky	u8         rw[0x1];
2430290650Shselasky	u8         rr[0x1];
2431290650Shselasky	u8         lw[0x1];
2432290650Shselasky	u8         lr[0x1];
2433290650Shselasky	u8         access_mode[0x2];
2434290650Shselasky	u8         reserved_2[0x8];
2435290650Shselasky
2436290650Shselasky	u8         qpn[0x18];
2437290650Shselasky	u8         mkey_7_0[0x8];
2438290650Shselasky
2439290650Shselasky	u8         reserved_3[0x20];
2440290650Shselasky
2441290650Shselasky	u8         length64[0x1];
2442290650Shselasky	u8         bsf_en[0x1];
2443290650Shselasky	u8         sync_umr[0x1];
2444290650Shselasky	u8         reserved_4[0x2];
2445290650Shselasky	u8         expected_sigerr_count[0x1];
2446290650Shselasky	u8         reserved_5[0x1];
2447290650Shselasky	u8         en_rinval[0x1];
2448290650Shselasky	u8         pd[0x18];
2449290650Shselasky
2450290650Shselasky	u8         start_addr[0x40];
2451290650Shselasky
2452290650Shselasky	u8         len[0x40];
2453290650Shselasky
2454290650Shselasky	u8         bsf_octword_size[0x20];
2455290650Shselasky
2456290650Shselasky	u8         reserved_6[0x80];
2457290650Shselasky
2458290650Shselasky	u8         translations_octword_size[0x20];
2459290650Shselasky
2460290650Shselasky	u8         reserved_7[0x1b];
2461290650Shselasky	u8         log_page_size[0x5];
2462290650Shselasky
2463290650Shselasky	u8         reserved_8[0x20];
2464290650Shselasky};
2465290650Shselasky
2466290650Shselaskystruct mlx5_ifc_pkey_bits {
2467290650Shselasky	u8         reserved_0[0x10];
2468290650Shselasky	u8         pkey[0x10];
2469290650Shselasky};
2470290650Shselasky
2471290650Shselaskystruct mlx5_ifc_array128_auto_bits {
2472290650Shselasky	u8         array128_auto[16][0x8];
2473290650Shselasky};
2474290650Shselasky
2475290650Shselaskyenum {
2476290650Shselasky	MLX5_HCA_VPORT_CONTEXT_FIELD_SELECT_PORT_GUID           = 0x0,
2477290650Shselasky	MLX5_HCA_VPORT_CONTEXT_FIELD_SELECT_NODE_GUID           = 0x1,
2478290650Shselasky	MLX5_HCA_VPORT_CONTEXT_FIELD_SELECT_VPORT_STATE_POLICY  = 0x2,
2479290650Shselasky};
2480290650Shselasky
2481290650Shselaskyenum {
2482290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_SLEEP                      = 0x1,
2483290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_POLLING                    = 0x2,
2484290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_DISABLED                   = 0x3,
2485290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_PORTCONFIGURATIONTRAINING  = 0x4,
2486290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_LINKUP                     = 0x5,
2487290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_LINKERRORRECOVERY          = 0x6,
2488290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_PHYTEST                    = 0x7,
2489290650Shselasky};
2490290650Shselasky
2491290650Shselaskyenum {
2492290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_POLICY_DOWN    = 0x0,
2493290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_POLICY_UP      = 0x1,
2494290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_POLICY_FOLLOW  = 0x2,
2495290650Shselasky};
2496290650Shselasky
2497290650Shselaskyenum {
2498290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_STATE_DOWN    = 0x1,
2499290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_STATE_INIT    = 0x2,
2500290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_STATE_ARM     = 0x3,
2501290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_STATE_ACTIVE  = 0x4,
2502290650Shselasky};
2503290650Shselasky
2504290650Shselaskyenum {
2505290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_DOWN    = 0x1,
2506290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_INIT    = 0x2,
2507290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_ARM     = 0x3,
2508290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_ACTIVE  = 0x4,
2509290650Shselasky};
2510290650Shselasky
2511290650Shselaskystruct mlx5_ifc_hca_vport_context_bits {
2512290650Shselasky	u8         field_select[0x20];
2513290650Shselasky
2514290650Shselasky	u8         reserved_0[0xe0];
2515290650Shselasky
2516290650Shselasky	u8         sm_virt_aware[0x1];
2517290650Shselasky	u8         has_smi[0x1];
2518290650Shselasky	u8         has_raw[0x1];
2519290650Shselasky	u8         grh_required[0x1];
2520306233Shselasky	u8         reserved_1[0x1];
2521306233Shselasky	u8         min_wqe_inline_mode[0x3];
2522306233Shselasky	u8         reserved_2[0x8];
2523290650Shselasky	u8         port_physical_state[0x4];
2524290650Shselasky	u8         vport_state_policy[0x4];
2525290650Shselasky	u8         port_state[0x4];
2526290650Shselasky	u8         vport_state[0x4];
2527290650Shselasky
2528306233Shselasky	u8         reserved_3[0x20];
2529290650Shselasky
2530290650Shselasky	u8         system_image_guid[0x40];
2531290650Shselasky
2532290650Shselasky	u8         port_guid[0x40];
2533290650Shselasky
2534290650Shselasky	u8         node_guid[0x40];
2535290650Shselasky
2536290650Shselasky	u8         cap_mask1[0x20];
2537290650Shselasky
2538290650Shselasky	u8         cap_mask1_field_select[0x20];
2539290650Shselasky
2540290650Shselasky	u8         cap_mask2[0x20];
2541290650Shselasky
2542290650Shselasky	u8         cap_mask2_field_select[0x20];
2543290650Shselasky
2544306233Shselasky	u8         reserved_4[0x80];
2545290650Shselasky
2546290650Shselasky	u8         lid[0x10];
2547306233Shselasky	u8         reserved_5[0x4];
2548290650Shselasky	u8         init_type_reply[0x4];
2549290650Shselasky	u8         lmc[0x3];
2550290650Shselasky	u8         subnet_timeout[0x5];
2551290650Shselasky
2552290650Shselasky	u8         sm_lid[0x10];
2553290650Shselasky	u8         sm_sl[0x4];
2554306233Shselasky	u8         reserved_6[0xc];
2555290650Shselasky
2556290650Shselasky	u8         qkey_violation_counter[0x10];
2557290650Shselasky	u8         pkey_violation_counter[0x10];
2558290650Shselasky
2559306233Shselasky	u8         reserved_7[0xca0];
2560290650Shselasky};
2561290650Shselasky
2562290650Shselaskyunion mlx5_ifc_hca_cap_union_bits {
2563290650Shselasky	struct mlx5_ifc_cmd_hca_cap_bits cmd_hca_cap;
2564290650Shselasky	struct mlx5_ifc_odp_cap_bits odp_cap;
2565290650Shselasky	struct mlx5_ifc_atomic_caps_bits atomic_caps;
2566290650Shselasky	struct mlx5_ifc_roce_cap_bits roce_cap;
2567290650Shselasky	struct mlx5_ifc_per_protocol_networking_offload_caps_bits per_protocol_networking_offload_caps;
2568290650Shselasky	struct mlx5_ifc_flow_table_nic_cap_bits flow_table_nic_cap;
2569290650Shselasky	struct mlx5_ifc_flow_table_eswitch_cap_bits flow_table_eswitch_cap;
2570290650Shselasky	struct mlx5_ifc_e_switch_cap_bits e_switch_cap;
2571306233Shselasky	struct mlx5_ifc_snapshot_cap_bits snapshot_cap;
2572306233Shselasky	struct mlx5_ifc_debug_cap_bits diagnostic_counters_cap;
2573306233Shselasky	struct mlx5_ifc_qos_cap_bits qos_cap;
2574290650Shselasky	u8         reserved_0[0x8000];
2575290650Shselasky};
2576290650Shselasky
2577329200Shselaskyenum {
2578329200Shselasky	MLX5_FLOW_TABLE_CONTEXT_TABLE_MISS_ACTION_DEFAULT = 0x0,
2579329200Shselasky	MLX5_FLOW_TABLE_CONTEXT_TABLE_MISS_ACTION_IDENTIFIED = 0x1,
2580329200Shselasky};
2581329200Shselasky
2582329200Shselaskystruct mlx5_ifc_flow_table_context_bits {
2583329200Shselasky	u8         encap_en[0x1];
2584329200Shselasky	u8         decap_en[0x1];
2585329200Shselasky	u8         reserved_at_2[0x2];
2586329200Shselasky	u8         table_miss_action[0x4];
2587329200Shselasky	u8         level[0x8];
2588329200Shselasky	u8         reserved_at_10[0x8];
2589329200Shselasky	u8         log_size[0x8];
2590329200Shselasky
2591329200Shselasky	u8         reserved_at_20[0x8];
2592329200Shselasky	u8         table_miss_id[0x18];
2593329200Shselasky
2594329200Shselasky	u8         reserved_at_40[0x8];
2595329200Shselasky	u8         lag_master_next_table_id[0x18];
2596329200Shselasky
2597329200Shselasky	u8         reserved_at_60[0xe0];
2598329200Shselasky};
2599329200Shselasky
2600290650Shselaskystruct mlx5_ifc_esw_vport_context_bits {
2601290650Shselasky	u8         reserved_0[0x3];
2602290650Shselasky	u8         vport_svlan_strip[0x1];
2603290650Shselasky	u8         vport_cvlan_strip[0x1];
2604290650Shselasky	u8         vport_svlan_insert[0x1];
2605290650Shselasky	u8         vport_cvlan_insert[0x2];
2606290650Shselasky	u8         reserved_1[0x18];
2607290650Shselasky
2608290650Shselasky	u8         reserved_2[0x20];
2609290650Shselasky
2610290650Shselasky	u8         svlan_cfi[0x1];
2611290650Shselasky	u8         svlan_pcp[0x3];
2612290650Shselasky	u8         svlan_id[0xc];
2613290650Shselasky	u8         cvlan_cfi[0x1];
2614290650Shselasky	u8         cvlan_pcp[0x3];
2615290650Shselasky	u8         cvlan_id[0xc];
2616290650Shselasky
2617290650Shselasky	u8         reserved_3[0x7a0];
2618290650Shselasky};
2619290650Shselasky
2620290650Shselaskyenum {
2621290650Shselasky	MLX5_EQC_STATUS_OK                = 0x0,
2622290650Shselasky	MLX5_EQC_STATUS_EQ_WRITE_FAILURE  = 0xa,
2623290650Shselasky};
2624290650Shselasky
2625290650Shselaskyenum {
2626290650Shselasky	MLX5_EQ_STATE_ARMED = 0x9,
2627290650Shselasky	MLX5_EQ_STATE_FIRED = 0xa,
2628290650Shselasky};
2629290650Shselasky
2630290650Shselaskystruct mlx5_ifc_eqc_bits {
2631290650Shselasky	u8         status[0x4];
2632290650Shselasky	u8         reserved_0[0x9];
2633290650Shselasky	u8         ec[0x1];
2634290650Shselasky	u8         oi[0x1];
2635290650Shselasky	u8         reserved_1[0x5];
2636290650Shselasky	u8         st[0x4];
2637290650Shselasky	u8         reserved_2[0x8];
2638290650Shselasky
2639290650Shselasky	u8         reserved_3[0x20];
2640290650Shselasky
2641290650Shselasky	u8         reserved_4[0x14];
2642290650Shselasky	u8         page_offset[0x6];
2643290650Shselasky	u8         reserved_5[0x6];
2644290650Shselasky
2645290650Shselasky	u8         reserved_6[0x3];
2646290650Shselasky	u8         log_eq_size[0x5];
2647290650Shselasky	u8         uar_page[0x18];
2648290650Shselasky
2649290650Shselasky	u8         reserved_7[0x20];
2650290650Shselasky
2651290650Shselasky	u8         reserved_8[0x18];
2652290650Shselasky	u8         intr[0x8];
2653290650Shselasky
2654290650Shselasky	u8         reserved_9[0x3];
2655290650Shselasky	u8         log_page_size[0x5];
2656290650Shselasky	u8         reserved_10[0x18];
2657290650Shselasky
2658290650Shselasky	u8         reserved_11[0x60];
2659290650Shselasky
2660290650Shselasky	u8         reserved_12[0x8];
2661290650Shselasky	u8         consumer_counter[0x18];
2662290650Shselasky
2663290650Shselasky	u8         reserved_13[0x8];
2664290650Shselasky	u8         producer_counter[0x18];
2665290650Shselasky
2666290650Shselasky	u8         reserved_14[0x80];
2667290650Shselasky};
2668290650Shselasky
2669290650Shselaskyenum {
2670290650Shselasky	MLX5_DCTC_STATE_ACTIVE    = 0x0,
2671290650Shselasky	MLX5_DCTC_STATE_DRAINING  = 0x1,
2672290650Shselasky	MLX5_DCTC_STATE_DRAINED   = 0x2,
2673290650Shselasky};
2674290650Shselasky
2675290650Shselaskyenum {
2676290650Shselasky	MLX5_DCTC_CS_RES_DISABLE    = 0x0,
2677290650Shselasky	MLX5_DCTC_CS_RES_NA         = 0x1,
2678290650Shselasky	MLX5_DCTC_CS_RES_UP_TO_64B  = 0x2,
2679290650Shselasky};
2680290650Shselasky
2681290650Shselaskyenum {
2682290650Shselasky	MLX5_DCTC_MTU_256_BYTES  = 0x1,
2683290650Shselasky	MLX5_DCTC_MTU_512_BYTES  = 0x2,
2684290650Shselasky	MLX5_DCTC_MTU_1K_BYTES   = 0x3,
2685290650Shselasky	MLX5_DCTC_MTU_2K_BYTES   = 0x4,
2686290650Shselasky	MLX5_DCTC_MTU_4K_BYTES   = 0x5,
2687290650Shselasky};
2688290650Shselasky
2689290650Shselaskystruct mlx5_ifc_dctc_bits {
2690290650Shselasky	u8         reserved_0[0x4];
2691290650Shselasky	u8         state[0x4];
2692290650Shselasky	u8         reserved_1[0x18];
2693290650Shselasky
2694290650Shselasky	u8         reserved_2[0x8];
2695290650Shselasky	u8         user_index[0x18];
2696290650Shselasky
2697290650Shselasky	u8         reserved_3[0x8];
2698290650Shselasky	u8         cqn[0x18];
2699290650Shselasky
2700290650Shselasky	u8         counter_set_id[0x8];
2701290650Shselasky	u8         atomic_mode[0x4];
2702290650Shselasky	u8         rre[0x1];
2703290650Shselasky	u8         rwe[0x1];
2704290650Shselasky	u8         rae[0x1];
2705290650Shselasky	u8         atomic_like_write_en[0x1];
2706290650Shselasky	u8         latency_sensitive[0x1];
2707290650Shselasky	u8         rlky[0x1];
2708290650Shselasky	u8         reserved_4[0xe];
2709290650Shselasky
2710290650Shselasky	u8         reserved_5[0x8];
2711290650Shselasky	u8         cs_res[0x8];
2712290650Shselasky	u8         reserved_6[0x3];
2713290650Shselasky	u8         min_rnr_nak[0x5];
2714290650Shselasky	u8         reserved_7[0x8];
2715290650Shselasky
2716290650Shselasky	u8         reserved_8[0x8];
2717290650Shselasky	u8         srqn[0x18];
2718290650Shselasky
2719290650Shselasky	u8         reserved_9[0x8];
2720290650Shselasky	u8         pd[0x18];
2721290650Shselasky
2722290650Shselasky	u8         tclass[0x8];
2723290650Shselasky	u8         reserved_10[0x4];
2724290650Shselasky	u8         flow_label[0x14];
2725290650Shselasky
2726290650Shselasky	u8         dc_access_key[0x40];
2727290650Shselasky
2728290650Shselasky	u8         reserved_11[0x5];
2729290650Shselasky	u8         mtu[0x3];
2730290650Shselasky	u8         port[0x8];
2731290650Shselasky	u8         pkey_index[0x10];
2732290650Shselasky
2733290650Shselasky	u8         reserved_12[0x8];
2734290650Shselasky	u8         my_addr_index[0x8];
2735290650Shselasky	u8         reserved_13[0x8];
2736290650Shselasky	u8         hop_limit[0x8];
2737290650Shselasky
2738290650Shselasky	u8         dc_access_key_violation_count[0x20];
2739290650Shselasky
2740290650Shselasky	u8         reserved_14[0x14];
2741290650Shselasky	u8         dei_cfi[0x1];
2742290650Shselasky	u8         eth_prio[0x3];
2743290650Shselasky	u8         ecn[0x2];
2744290650Shselasky	u8         dscp[0x6];
2745290650Shselasky
2746290650Shselasky	u8         reserved_15[0x40];
2747290650Shselasky};
2748290650Shselasky
2749290650Shselaskyenum {
2750290650Shselasky	MLX5_CQC_STATUS_OK             = 0x0,
2751290650Shselasky	MLX5_CQC_STATUS_CQ_OVERFLOW    = 0x9,
2752290650Shselasky	MLX5_CQC_STATUS_CQ_WRITE_FAIL  = 0xa,
2753290650Shselasky};
2754290650Shselasky
2755290650Shselaskyenum {
2756290650Shselasky	CQE_SIZE_64                = 0x0,
2757290650Shselasky	CQE_SIZE_128               = 0x1,
2758290650Shselasky};
2759290650Shselasky
2760290650Shselaskyenum {
2761290650Shselasky	MLX5_CQ_PERIOD_MODE_START_FROM_EQE  = 0x0,
2762290650Shselasky	MLX5_CQ_PERIOD_MODE_START_FROM_CQE  = 0x1,
2763290650Shselasky};
2764290650Shselasky
2765290650Shselaskyenum {
2766290650Shselasky	MLX5_CQ_STATE_SOLICITED_ARMED                     = 0x6,
2767290650Shselasky	MLX5_CQ_STATE_ARMED                               = 0x9,
2768290650Shselasky	MLX5_CQ_STATE_FIRED                               = 0xa,
2769290650Shselasky};
2770290650Shselasky
2771290650Shselaskystruct mlx5_ifc_cqc_bits {
2772290650Shselasky	u8         status[0x4];
2773290650Shselasky	u8         reserved_0[0x4];
2774290650Shselasky	u8         cqe_sz[0x3];
2775290650Shselasky	u8         cc[0x1];
2776290650Shselasky	u8         reserved_1[0x1];
2777290650Shselasky	u8         scqe_break_moderation_en[0x1];
2778290650Shselasky	u8         oi[0x1];
2779290650Shselasky	u8         cq_period_mode[0x2];
2780290650Shselasky	u8         cqe_compression_en[0x1];
2781290650Shselasky	u8         mini_cqe_res_format[0x2];
2782290650Shselasky	u8         st[0x4];
2783290650Shselasky	u8         reserved_2[0x8];
2784290650Shselasky
2785290650Shselasky	u8         reserved_3[0x20];
2786290650Shselasky
2787290650Shselasky	u8         reserved_4[0x14];
2788290650Shselasky	u8         page_offset[0x6];
2789290650Shselasky	u8         reserved_5[0x6];
2790290650Shselasky
2791290650Shselasky	u8         reserved_6[0x3];
2792290650Shselasky	u8         log_cq_size[0x5];
2793290650Shselasky	u8         uar_page[0x18];
2794290650Shselasky
2795290650Shselasky	u8         reserved_7[0x4];
2796290650Shselasky	u8         cq_period[0xc];
2797290650Shselasky	u8         cq_max_count[0x10];
2798290650Shselasky
2799290650Shselasky	u8         reserved_8[0x18];
2800290650Shselasky	u8         c_eqn[0x8];
2801290650Shselasky
2802290650Shselasky	u8         reserved_9[0x3];
2803290650Shselasky	u8         log_page_size[0x5];
2804290650Shselasky	u8         reserved_10[0x18];
2805290650Shselasky
2806290650Shselasky	u8         reserved_11[0x20];
2807290650Shselasky
2808290650Shselasky	u8         reserved_12[0x8];
2809290650Shselasky	u8         last_notified_index[0x18];
2810290650Shselasky
2811290650Shselasky	u8         reserved_13[0x8];
2812290650Shselasky	u8         last_solicit_index[0x18];
2813290650Shselasky
2814290650Shselasky	u8         reserved_14[0x8];
2815290650Shselasky	u8         consumer_counter[0x18];
2816290650Shselasky
2817290650Shselasky	u8         reserved_15[0x8];
2818290650Shselasky	u8         producer_counter[0x18];
2819290650Shselasky
2820290650Shselasky	u8         reserved_16[0x40];
2821290650Shselasky
2822290650Shselasky	u8         dbr_addr[0x40];
2823290650Shselasky};
2824290650Shselasky
2825290650Shselaskyunion mlx5_ifc_cong_control_roce_ecn_auto_bits {
2826290650Shselasky	struct mlx5_ifc_cong_control_802_1qau_rp_bits cong_control_802_1qau_rp;
2827290650Shselasky	struct mlx5_ifc_cong_control_r_roce_ecn_rp_bits cong_control_r_roce_ecn_rp;
2828290650Shselasky	struct mlx5_ifc_cong_control_r_roce_ecn_np_bits cong_control_r_roce_ecn_np;
2829290650Shselasky	u8         reserved_0[0x800];
2830290650Shselasky};
2831290650Shselasky
2832290650Shselaskystruct mlx5_ifc_query_adapter_param_block_bits {
2833290650Shselasky	u8         reserved_0[0xc0];
2834290650Shselasky
2835290650Shselasky	u8         reserved_1[0x8];
2836290650Shselasky	u8         ieee_vendor_id[0x18];
2837290650Shselasky
2838290650Shselasky	u8         reserved_2[0x10];
2839290650Shselasky	u8         vsd_vendor_id[0x10];
2840290650Shselasky
2841290650Shselasky	u8         vsd[208][0x8];
2842290650Shselasky
2843290650Shselasky	u8         vsd_contd_psid[16][0x8];
2844290650Shselasky};
2845290650Shselasky
2846290650Shselaskyunion mlx5_ifc_modify_field_select_resize_field_select_auto_bits {
2847290650Shselasky	struct mlx5_ifc_modify_field_select_bits modify_field_select;
2848290650Shselasky	struct mlx5_ifc_resize_field_select_bits resize_field_select;
2849290650Shselasky	u8         reserved_0[0x20];
2850290650Shselasky};
2851290650Shselasky
2852290650Shselaskyunion mlx5_ifc_field_select_802_1_r_roce_auto_bits {
2853290650Shselasky	struct mlx5_ifc_field_select_802_1qau_rp_bits field_select_802_1qau_rp;
2854290650Shselasky	struct mlx5_ifc_field_select_r_roce_rp_bits field_select_r_roce_rp;
2855290650Shselasky	struct mlx5_ifc_field_select_r_roce_np_bits field_select_r_roce_np;
2856290650Shselasky	u8         reserved_0[0x20];
2857290650Shselasky};
2858290650Shselasky
2859290650Shselaskystruct mlx5_ifc_bufferx_reg_bits {
2860290650Shselasky	u8         reserved_0[0x6];
2861290650Shselasky	u8         lossy[0x1];
2862290650Shselasky	u8         epsb[0x1];
2863290650Shselasky	u8         reserved_1[0xc];
2864290650Shselasky	u8         size[0xc];
2865290650Shselasky
2866290650Shselasky	u8         xoff_threshold[0x10];
2867290650Shselasky	u8         xon_threshold[0x10];
2868290650Shselasky};
2869290650Shselasky
2870290650Shselaskystruct mlx5_ifc_config_item_bits {
2871290650Shselasky	u8         valid[0x2];
2872290650Shselasky	u8         reserved_0[0x2];
2873290650Shselasky	u8         header_type[0x2];
2874290650Shselasky	u8         reserved_1[0x2];
2875290650Shselasky	u8         default_location[0x1];
2876290650Shselasky	u8         reserved_2[0x7];
2877290650Shselasky	u8         version[0x4];
2878290650Shselasky	u8         reserved_3[0x3];
2879290650Shselasky	u8         length[0x9];
2880290650Shselasky
2881290650Shselasky	u8         type[0x20];
2882290650Shselasky
2883290650Shselasky	u8         reserved_4[0x10];
2884290650Shselasky	u8         crc16[0x10];
2885290650Shselasky};
2886290650Shselasky
2887290650Shselaskystruct mlx5_ifc_nodnic_port_config_reg_bits {
2888290650Shselasky	struct mlx5_ifc_nodnic_event_word_bits event;
2889290650Shselasky
2890290650Shselasky	u8         network_en[0x1];
2891290650Shselasky	u8         dma_en[0x1];
2892290650Shselasky	u8         promisc_en[0x1];
2893290650Shselasky	u8         promisc_multicast_en[0x1];
2894290650Shselasky	u8         reserved_0[0x17];
2895290650Shselasky	u8         receive_filter_en[0x5];
2896290650Shselasky
2897290650Shselasky	u8         reserved_1[0x10];
2898290650Shselasky	u8         mac_47_32[0x10];
2899290650Shselasky
2900290650Shselasky	u8         mac_31_0[0x20];
2901290650Shselasky
2902290650Shselasky	u8         receive_filters_mgid_mac[64][0x8];
2903290650Shselasky
2904290650Shselasky	u8         gid[16][0x8];
2905290650Shselasky
2906290650Shselasky	u8         reserved_2[0x10];
2907290650Shselasky	u8         lid[0x10];
2908290650Shselasky
2909290650Shselasky	u8         reserved_3[0xc];
2910290650Shselasky	u8         sm_sl[0x4];
2911290650Shselasky	u8         sm_lid[0x10];
2912290650Shselasky
2913290650Shselasky	u8         completion_address_63_32[0x20];
2914290650Shselasky
2915290650Shselasky	u8         completion_address_31_12[0x14];
2916290650Shselasky	u8         reserved_4[0x6];
2917290650Shselasky	u8         log_cq_size[0x6];
2918290650Shselasky
2919290650Shselasky	u8         working_buffer_address_63_32[0x20];
2920290650Shselasky
2921290650Shselasky	u8         working_buffer_address_31_12[0x14];
2922290650Shselasky	u8         reserved_5[0xc];
2923290650Shselasky
2924290650Shselasky	struct mlx5_ifc_nodnic_cq_arming_word_bits arm_cq;
2925290650Shselasky
2926290650Shselasky	u8         pkey_index[0x10];
2927290650Shselasky	u8         pkey[0x10];
2928290650Shselasky
2929290650Shselasky	struct mlx5_ifc_nodnic_ring_config_reg_bits send_ring0;
2930290650Shselasky
2931290650Shselasky	struct mlx5_ifc_nodnic_ring_config_reg_bits send_ring1;
2932290650Shselasky
2933290650Shselasky	struct mlx5_ifc_nodnic_ring_config_reg_bits receive_ring0;
2934290650Shselasky
2935290650Shselasky	struct mlx5_ifc_nodnic_ring_config_reg_bits receive_ring1;
2936290650Shselasky
2937290650Shselasky	u8         reserved_6[0x400];
2938290650Shselasky};
2939290650Shselasky
2940290650Shselaskyunion mlx5_ifc_event_auto_bits {
2941290650Shselasky	struct mlx5_ifc_comp_event_bits comp_event;
2942290650Shselasky	struct mlx5_ifc_dct_events_bits dct_events;
2943290650Shselasky	struct mlx5_ifc_qp_events_bits qp_events;
2944290650Shselasky	struct mlx5_ifc_wqe_associated_page_fault_event_bits wqe_associated_page_fault_event;
2945290650Shselasky	struct mlx5_ifc_rdma_page_fault_event_bits rdma_page_fault_event;
2946290650Shselasky	struct mlx5_ifc_cq_error_bits cq_error;
2947290650Shselasky	struct mlx5_ifc_dropped_packet_logged_bits dropped_packet_logged;
2948290650Shselasky	struct mlx5_ifc_port_state_change_event_bits port_state_change_event;
2949290650Shselasky	struct mlx5_ifc_gpio_event_bits gpio_event;
2950290650Shselasky	struct mlx5_ifc_db_bf_congestion_event_bits db_bf_congestion_event;
2951290650Shselasky	struct mlx5_ifc_stall_vl_event_bits stall_vl_event;
2952290650Shselasky	struct mlx5_ifc_cmd_inter_comp_event_bits cmd_inter_comp_event;
2953290650Shselasky	struct mlx5_ifc_pages_req_event_bits pages_req_event;
2954290650Shselasky	struct mlx5_ifc_nic_vport_change_event_bits nic_vport_change_event;
2955290650Shselasky	u8         reserved_0[0xe0];
2956290650Shselasky};
2957290650Shselasky
2958290650Shselaskystruct mlx5_ifc_health_buffer_bits {
2959290650Shselasky	u8         reserved_0[0x100];
2960290650Shselasky
2961290650Shselasky	u8         assert_existptr[0x20];
2962290650Shselasky
2963290650Shselasky	u8         assert_callra[0x20];
2964290650Shselasky
2965290650Shselasky	u8         reserved_1[0x40];
2966290650Shselasky
2967290650Shselasky	u8         fw_version[0x20];
2968290650Shselasky
2969290650Shselasky	u8         hw_id[0x20];
2970290650Shselasky
2971290650Shselasky	u8         reserved_2[0x20];
2972290650Shselasky
2973290650Shselasky	u8         irisc_index[0x8];
2974290650Shselasky	u8         synd[0x8];
2975290650Shselasky	u8         ext_synd[0x10];
2976290650Shselasky};
2977290650Shselasky
2978290650Shselaskystruct mlx5_ifc_register_loopback_control_bits {
2979290650Shselasky	u8         no_lb[0x1];
2980290650Shselasky	u8         reserved_0[0x7];
2981290650Shselasky	u8         port[0x8];
2982290650Shselasky	u8         reserved_1[0x10];
2983290650Shselasky
2984290650Shselasky	u8         reserved_2[0x60];
2985290650Shselasky};
2986290650Shselasky
2987306233Shselaskystruct mlx5_ifc_lrh_bits {
2988306233Shselasky	u8	vl[4];
2989306233Shselasky	u8	lver[4];
2990306233Shselasky	u8	sl[4];
2991306233Shselasky	u8	reserved2[2];
2992306233Shselasky	u8	lnh[2];
2993306233Shselasky	u8	dlid[16];
2994306233Shselasky	u8	reserved5[5];
2995306233Shselasky	u8	pkt_len[11];
2996306233Shselasky	u8	slid[16];
2997306233Shselasky};
2998306233Shselasky
2999290650Shselaskystruct mlx5_ifc_icmd_set_wol_rol_out_bits {
3000290650Shselasky	u8         reserved_0[0x40];
3001290650Shselasky
3002290650Shselasky	u8         reserved_1[0x10];
3003290650Shselasky	u8         rol_mode[0x8];
3004290650Shselasky	u8         wol_mode[0x8];
3005290650Shselasky};
3006290650Shselasky
3007290650Shselaskystruct mlx5_ifc_icmd_set_wol_rol_in_bits {
3008290650Shselasky	u8         reserved_0[0x40];
3009290650Shselasky
3010290650Shselasky	u8         rol_mode_valid[0x1];
3011290650Shselasky	u8         wol_mode_valid[0x1];
3012290650Shselasky	u8         reserved_1[0xe];
3013290650Shselasky	u8         rol_mode[0x8];
3014290650Shselasky	u8         wol_mode[0x8];
3015290650Shselasky
3016290650Shselasky	u8         reserved_2[0x7a0];
3017290650Shselasky};
3018290650Shselasky
3019290650Shselaskystruct mlx5_ifc_icmd_set_virtual_mac_in_bits {
3020290650Shselasky	u8         virtual_mac_en[0x1];
3021290650Shselasky	u8         mac_aux_v[0x1];
3022290650Shselasky	u8         reserved_0[0x1e];
3023290650Shselasky
3024290650Shselasky	u8         reserved_1[0x40];
3025290650Shselasky
3026290650Shselasky	struct mlx5_ifc_mac_address_layout_bits virtual_mac;
3027290650Shselasky
3028290650Shselasky	u8         reserved_2[0x760];
3029290650Shselasky};
3030290650Shselasky
3031290650Shselaskystruct mlx5_ifc_icmd_query_virtual_mac_out_bits {
3032290650Shselasky	u8         virtual_mac_en[0x1];
3033290650Shselasky	u8         mac_aux_v[0x1];
3034290650Shselasky	u8         reserved_0[0x1e];
3035290650Shselasky
3036290650Shselasky	struct mlx5_ifc_mac_address_layout_bits permanent_mac;
3037290650Shselasky
3038290650Shselasky	struct mlx5_ifc_mac_address_layout_bits virtual_mac;
3039290650Shselasky
3040290650Shselasky	u8         reserved_1[0x760];
3041290650Shselasky};
3042290650Shselasky
3043290650Shselaskystruct mlx5_ifc_icmd_query_fw_info_out_bits {
3044290650Shselasky	struct mlx5_ifc_fw_version_bits fw_version;
3045290650Shselasky
3046290650Shselasky	u8         reserved_0[0x10];
3047290650Shselasky	u8         hash_signature[0x10];
3048290650Shselasky
3049290650Shselasky	u8         psid[16][0x8];
3050290650Shselasky
3051290650Shselasky	u8         reserved_1[0x6e0];
3052290650Shselasky};
3053290650Shselasky
3054290650Shselaskystruct mlx5_ifc_icmd_query_cap_in_bits {
3055290650Shselasky	u8         reserved_0[0x10];
3056290650Shselasky	u8         capability_group[0x10];
3057290650Shselasky};
3058290650Shselasky
3059290650Shselaskystruct mlx5_ifc_icmd_query_cap_general_bits {
3060290650Shselasky	u8         nv_access[0x1];
3061290650Shselasky	u8         fw_info_psid[0x1];
3062290650Shselasky	u8         reserved_0[0x1e];
3063290650Shselasky
3064290650Shselasky	u8         reserved_1[0x16];
3065290650Shselasky	u8         rol_s[0x1];
3066290650Shselasky	u8         rol_g[0x1];
3067290650Shselasky	u8         reserved_2[0x1];
3068290650Shselasky	u8         wol_s[0x1];
3069290650Shselasky	u8         wol_g[0x1];
3070290650Shselasky	u8         wol_a[0x1];
3071290650Shselasky	u8         wol_b[0x1];
3072290650Shselasky	u8         wol_m[0x1];
3073290650Shselasky	u8         wol_u[0x1];
3074290650Shselasky	u8         wol_p[0x1];
3075290650Shselasky};
3076290650Shselasky
3077290650Shselaskystruct mlx5_ifc_icmd_ocbb_query_header_stats_out_bits {
3078290650Shselasky	u8         status[0x8];
3079290650Shselasky	u8         reserved_0[0x18];
3080290650Shselasky
3081290650Shselasky	u8         reserved_1[0x7e0];
3082290650Shselasky};
3083290650Shselasky
3084290650Shselaskystruct mlx5_ifc_icmd_ocbb_query_etoc_stats_out_bits {
3085290650Shselasky	u8         status[0x8];
3086290650Shselasky	u8         reserved_0[0x18];
3087290650Shselasky
3088290650Shselasky	u8         reserved_1[0x7e0];
3089290650Shselasky};
3090290650Shselasky
3091290650Shselaskystruct mlx5_ifc_icmd_ocbb_init_in_bits {
3092290650Shselasky	u8         address_hi[0x20];
3093290650Shselasky
3094290650Shselasky	u8         address_lo[0x20];
3095290650Shselasky
3096290650Shselasky	u8         reserved_0[0x7c0];
3097290650Shselasky};
3098290650Shselasky
3099290650Shselaskystruct mlx5_ifc_icmd_init_ocsd_in_bits {
3100290650Shselasky	u8         reserved_0[0x20];
3101290650Shselasky
3102290650Shselasky	u8         address_hi[0x20];
3103290650Shselasky
3104290650Shselasky	u8         address_lo[0x20];
3105290650Shselasky
3106290650Shselasky	u8         reserved_1[0x7a0];
3107290650Shselasky};
3108290650Shselasky
3109290650Shselaskystruct mlx5_ifc_icmd_access_reg_out_bits {
3110290650Shselasky	u8         reserved_0[0x11];
3111290650Shselasky	u8         status[0x7];
3112290650Shselasky	u8         reserved_1[0x8];
3113290650Shselasky
3114290650Shselasky	u8         register_id[0x10];
3115290650Shselasky	u8         reserved_2[0x10];
3116290650Shselasky
3117290650Shselasky	u8         reserved_3[0x40];
3118290650Shselasky
3119290650Shselasky	u8         reserved_4[0x5];
3120290650Shselasky	u8         len[0xb];
3121290650Shselasky	u8         reserved_5[0x10];
3122290650Shselasky
3123290650Shselasky	u8         register_data[0][0x20];
3124290650Shselasky};
3125290650Shselasky
3126290650Shselaskyenum {
3127290650Shselasky	MLX5_ICMD_ACCESS_REG_IN_METHOD_QUERY  = 0x1,
3128290650Shselasky	MLX5_ICMD_ACCESS_REG_IN_METHOD_WRITE  = 0x2,
3129290650Shselasky};
3130290650Shselasky
3131290650Shselaskystruct mlx5_ifc_icmd_access_reg_in_bits {
3132290650Shselasky	u8         constant_1[0x5];
3133290650Shselasky	u8         constant_2[0xb];
3134290650Shselasky	u8         reserved_0[0x10];
3135290650Shselasky
3136290650Shselasky	u8         register_id[0x10];
3137290650Shselasky	u8         reserved_1[0x1];
3138290650Shselasky	u8         method[0x7];
3139290650Shselasky	u8         constant_3[0x8];
3140290650Shselasky
3141290650Shselasky	u8         reserved_2[0x40];
3142290650Shselasky
3143290650Shselasky	u8         constant_4[0x5];
3144290650Shselasky	u8         len[0xb];
3145290650Shselasky	u8         reserved_3[0x10];
3146290650Shselasky
3147290650Shselasky	u8         register_data[0][0x20];
3148290650Shselasky};
3149290650Shselasky
3150290650Shselaskystruct mlx5_ifc_teardown_hca_out_bits {
3151290650Shselasky	u8         status[0x8];
3152290650Shselasky	u8         reserved_0[0x18];
3153290650Shselasky
3154290650Shselasky	u8         syndrome[0x20];
3155290650Shselasky
3156290650Shselasky	u8         reserved_1[0x40];
3157290650Shselasky};
3158290650Shselasky
3159290650Shselaskyenum {
3160290650Shselasky	MLX5_TEARDOWN_HCA_IN_PROFILE_GRACEFUL_CLOSE  = 0x0,
3161290650Shselasky	MLX5_TEARDOWN_HCA_IN_PROFILE_PANIC_CLOSE     = 0x1,
3162290650Shselasky};
3163290650Shselasky
3164290650Shselaskystruct mlx5_ifc_teardown_hca_in_bits {
3165290650Shselasky	u8         opcode[0x10];
3166290650Shselasky	u8         reserved_0[0x10];
3167290650Shselasky
3168290650Shselasky	u8         reserved_1[0x10];
3169290650Shselasky	u8         op_mod[0x10];
3170290650Shselasky
3171290650Shselasky	u8         reserved_2[0x10];
3172290650Shselasky	u8         profile[0x10];
3173290650Shselasky
3174290650Shselasky	u8         reserved_3[0x20];
3175290650Shselasky};
3176290650Shselasky
3177321992Shselaskystruct mlx5_ifc_set_delay_drop_params_out_bits {
3178321992Shselasky	u8         status[0x8];
3179321992Shselasky	u8         reserved_at_8[0x18];
3180321992Shselasky
3181321992Shselasky	u8         syndrome[0x20];
3182321992Shselasky
3183321992Shselasky	u8         reserved_at_40[0x40];
3184321992Shselasky};
3185321992Shselasky
3186321992Shselaskystruct mlx5_ifc_set_delay_drop_params_in_bits {
3187321992Shselasky	u8         opcode[0x10];
3188321992Shselasky	u8         reserved_at_10[0x10];
3189321992Shselasky
3190321992Shselasky	u8         reserved_at_20[0x10];
3191321992Shselasky	u8         op_mod[0x10];
3192321992Shselasky
3193321992Shselasky	u8         reserved_at_40[0x20];
3194321992Shselasky
3195321992Shselasky	u8         reserved_at_60[0x10];
3196321992Shselasky	u8         delay_drop_timeout[0x10];
3197321992Shselasky};
3198321992Shselasky
3199321992Shselaskystruct mlx5_ifc_query_delay_drop_params_out_bits {
3200321992Shselasky	u8         status[0x8];
3201321992Shselasky	u8         reserved_at_8[0x18];
3202321992Shselasky
3203321992Shselasky	u8         syndrome[0x20];
3204321992Shselasky
3205321992Shselasky	u8         reserved_at_40[0x20];
3206321992Shselasky
3207321992Shselasky	u8         reserved_at_60[0x10];
3208321992Shselasky	u8         delay_drop_timeout[0x10];
3209321992Shselasky};
3210321992Shselasky
3211321992Shselaskystruct mlx5_ifc_query_delay_drop_params_in_bits {
3212321992Shselasky	u8         opcode[0x10];
3213321992Shselasky	u8         reserved_at_10[0x10];
3214321992Shselasky
3215321992Shselasky	u8         reserved_at_20[0x10];
3216321992Shselasky	u8         op_mod[0x10];
3217321992Shselasky
3218321992Shselasky	u8         reserved_at_40[0x40];
3219321992Shselasky};
3220321992Shselasky
3221290650Shselaskystruct mlx5_ifc_suspend_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_suspend_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_sqerr2rts_qp_out_bits {
3244290650Shselasky	u8         status[0x8];
3245290650Shselasky	u8         reserved_0[0x18];
3246290650Shselasky
3247290650Shselasky	u8         syndrome[0x20];
3248290650Shselasky
3249290650Shselasky	u8         reserved_1[0x40];
3250290650Shselasky};
3251290650Shselasky
3252290650Shselaskystruct mlx5_ifc_sqerr2rts_qp_in_bits {
3253290650Shselasky	u8         opcode[0x10];
3254290650Shselasky	u8         reserved_0[0x10];
3255290650Shselasky
3256290650Shselasky	u8         reserved_1[0x10];
3257290650Shselasky	u8         op_mod[0x10];
3258290650Shselasky
3259290650Shselasky	u8         reserved_2[0x8];
3260290650Shselasky	u8         qpn[0x18];
3261290650Shselasky
3262290650Shselasky	u8         reserved_3[0x20];
3263290650Shselasky
3264290650Shselasky	u8         opt_param_mask[0x20];
3265290650Shselasky
3266290650Shselasky	u8         reserved_4[0x20];
3267290650Shselasky
3268290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
3269290650Shselasky
3270290650Shselasky	u8         reserved_5[0x80];
3271290650Shselasky};
3272290650Shselasky
3273290650Shselaskystruct mlx5_ifc_sqd2rts_qp_out_bits {
3274290650Shselasky	u8         status[0x8];
3275290650Shselasky	u8         reserved_0[0x18];
3276290650Shselasky
3277290650Shselasky	u8         syndrome[0x20];
3278290650Shselasky
3279290650Shselasky	u8         reserved_1[0x40];
3280290650Shselasky};
3281290650Shselasky
3282290650Shselaskystruct mlx5_ifc_sqd2rts_qp_in_bits {
3283290650Shselasky	u8         opcode[0x10];
3284290650Shselasky	u8         reserved_0[0x10];
3285290650Shselasky
3286290650Shselasky	u8         reserved_1[0x10];
3287290650Shselasky	u8         op_mod[0x10];
3288290650Shselasky
3289290650Shselasky	u8         reserved_2[0x8];
3290290650Shselasky	u8         qpn[0x18];
3291290650Shselasky
3292290650Shselasky	u8         reserved_3[0x20];
3293290650Shselasky
3294290650Shselasky	u8         opt_param_mask[0x20];
3295290650Shselasky
3296290650Shselasky	u8         reserved_4[0x20];
3297290650Shselasky
3298290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
3299290650Shselasky
3300290650Shselasky	u8         reserved_5[0x80];
3301290650Shselasky};
3302290650Shselasky
3303290650Shselaskystruct mlx5_ifc_set_wol_rol_out_bits {
3304290650Shselasky	u8         status[0x8];
3305290650Shselasky	u8         reserved_0[0x18];
3306290650Shselasky
3307290650Shselasky	u8         syndrome[0x20];
3308290650Shselasky
3309290650Shselasky	u8         reserved_1[0x40];
3310290650Shselasky};
3311290650Shselasky
3312290650Shselaskystruct mlx5_ifc_set_wol_rol_in_bits {
3313290650Shselasky	u8         opcode[0x10];
3314290650Shselasky	u8         reserved_0[0x10];
3315290650Shselasky
3316290650Shselasky	u8         reserved_1[0x10];
3317290650Shselasky	u8         op_mod[0x10];
3318290650Shselasky
3319290650Shselasky	u8         rol_mode_valid[0x1];
3320290650Shselasky	u8         wol_mode_valid[0x1];
3321290650Shselasky	u8         reserved_2[0xe];
3322290650Shselasky	u8         rol_mode[0x8];
3323290650Shselasky	u8         wol_mode[0x8];
3324290650Shselasky
3325290650Shselasky	u8         reserved_3[0x20];
3326290650Shselasky};
3327290650Shselasky
3328290650Shselaskystruct mlx5_ifc_set_roce_address_out_bits {
3329290650Shselasky	u8         status[0x8];
3330290650Shselasky	u8         reserved_0[0x18];
3331290650Shselasky
3332290650Shselasky	u8         syndrome[0x20];
3333290650Shselasky
3334290650Shselasky	u8         reserved_1[0x40];
3335290650Shselasky};
3336290650Shselasky
3337290650Shselaskystruct mlx5_ifc_set_roce_address_in_bits {
3338290650Shselasky	u8         opcode[0x10];
3339290650Shselasky	u8         reserved_0[0x10];
3340290650Shselasky
3341290650Shselasky	u8         reserved_1[0x10];
3342290650Shselasky	u8         op_mod[0x10];
3343290650Shselasky
3344290650Shselasky	u8         roce_address_index[0x10];
3345290650Shselasky	u8         reserved_2[0x10];
3346290650Shselasky
3347290650Shselasky	u8         reserved_3[0x20];
3348290650Shselasky
3349290650Shselasky	struct mlx5_ifc_roce_addr_layout_bits roce_address;
3350290650Shselasky};
3351290650Shselasky
3352290650Shselaskystruct mlx5_ifc_set_rdb_out_bits {
3353290650Shselasky	u8         status[0x8];
3354290650Shselasky	u8         reserved_0[0x18];
3355290650Shselasky
3356290650Shselasky	u8         syndrome[0x20];
3357290650Shselasky
3358290650Shselasky	u8         reserved_1[0x40];
3359290650Shselasky};
3360290650Shselasky
3361290650Shselaskystruct mlx5_ifc_set_rdb_in_bits {
3362290650Shselasky	u8         opcode[0x10];
3363290650Shselasky	u8         reserved_0[0x10];
3364290650Shselasky
3365290650Shselasky	u8         reserved_1[0x10];
3366290650Shselasky	u8         op_mod[0x10];
3367290650Shselasky
3368290650Shselasky	u8         reserved_2[0x8];
3369290650Shselasky	u8         qpn[0x18];
3370290650Shselasky
3371290650Shselasky	u8         reserved_3[0x18];
3372290650Shselasky	u8         rdb_list_size[0x8];
3373290650Shselasky
3374290650Shselasky	struct mlx5_ifc_rdbc_bits rdb_context[0];
3375290650Shselasky};
3376290650Shselasky
3377290650Shselaskystruct mlx5_ifc_set_mad_demux_out_bits {
3378290650Shselasky	u8         status[0x8];
3379290650Shselasky	u8         reserved_0[0x18];
3380290650Shselasky
3381290650Shselasky	u8         syndrome[0x20];
3382290650Shselasky
3383290650Shselasky	u8         reserved_1[0x40];
3384290650Shselasky};
3385290650Shselasky
3386290650Shselaskyenum {
3387290650Shselasky	MLX5_SET_MAD_DEMUX_IN_DEMUX_MODE_PASS_ALL   = 0x0,
3388290650Shselasky	MLX5_SET_MAD_DEMUX_IN_DEMUX_MODE_SELECTIVE  = 0x2,
3389290650Shselasky};
3390290650Shselasky
3391290650Shselaskystruct mlx5_ifc_set_mad_demux_in_bits {
3392290650Shselasky	u8         opcode[0x10];
3393290650Shselasky	u8         reserved_0[0x10];
3394290650Shselasky
3395290650Shselasky	u8         reserved_1[0x10];
3396290650Shselasky	u8         op_mod[0x10];
3397290650Shselasky
3398290650Shselasky	u8         reserved_2[0x20];
3399290650Shselasky
3400290650Shselasky	u8         reserved_3[0x6];
3401290650Shselasky	u8         demux_mode[0x2];
3402290650Shselasky	u8         reserved_4[0x18];
3403290650Shselasky};
3404290650Shselasky
3405290650Shselaskystruct mlx5_ifc_set_l2_table_entry_out_bits {
3406290650Shselasky	u8         status[0x8];
3407290650Shselasky	u8         reserved_0[0x18];
3408290650Shselasky
3409290650Shselasky	u8         syndrome[0x20];
3410290650Shselasky
3411290650Shselasky	u8         reserved_1[0x40];
3412290650Shselasky};
3413290650Shselasky
3414290650Shselaskystruct mlx5_ifc_set_l2_table_entry_in_bits {
3415290650Shselasky	u8         opcode[0x10];
3416290650Shselasky	u8         reserved_0[0x10];
3417290650Shselasky
3418290650Shselasky	u8         reserved_1[0x10];
3419290650Shselasky	u8         op_mod[0x10];
3420290650Shselasky
3421290650Shselasky	u8         reserved_2[0x60];
3422290650Shselasky
3423290650Shselasky	u8         reserved_3[0x8];
3424290650Shselasky	u8         table_index[0x18];
3425290650Shselasky
3426290650Shselasky	u8         reserved_4[0x20];
3427290650Shselasky
3428290650Shselasky	u8         reserved_5[0x13];
3429290650Shselasky	u8         vlan_valid[0x1];
3430290650Shselasky	u8         vlan[0xc];
3431290650Shselasky
3432290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_address;
3433290650Shselasky
3434290650Shselasky	u8         reserved_6[0xc0];
3435290650Shselasky};
3436290650Shselasky
3437290650Shselaskystruct mlx5_ifc_set_issi_out_bits {
3438290650Shselasky	u8         status[0x8];
3439290650Shselasky	u8         reserved_0[0x18];
3440290650Shselasky
3441290650Shselasky	u8         syndrome[0x20];
3442290650Shselasky
3443290650Shselasky	u8         reserved_1[0x40];
3444290650Shselasky};
3445290650Shselasky
3446290650Shselaskystruct mlx5_ifc_set_issi_in_bits {
3447290650Shselasky	u8         opcode[0x10];
3448290650Shselasky	u8         reserved_0[0x10];
3449290650Shselasky
3450290650Shselasky	u8         reserved_1[0x10];
3451290650Shselasky	u8         op_mod[0x10];
3452290650Shselasky
3453290650Shselasky	u8         reserved_2[0x10];
3454290650Shselasky	u8         current_issi[0x10];
3455290650Shselasky
3456290650Shselasky	u8         reserved_3[0x20];
3457290650Shselasky};
3458290650Shselasky
3459290650Shselaskystruct mlx5_ifc_set_hca_cap_out_bits {
3460290650Shselasky	u8         status[0x8];
3461290650Shselasky	u8         reserved_0[0x18];
3462290650Shselasky
3463290650Shselasky	u8         syndrome[0x20];
3464290650Shselasky
3465290650Shselasky	u8         reserved_1[0x40];
3466290650Shselasky};
3467290650Shselasky
3468290650Shselaskystruct mlx5_ifc_set_hca_cap_in_bits {
3469290650Shselasky	u8         opcode[0x10];
3470290650Shselasky	u8         reserved_0[0x10];
3471290650Shselasky
3472290650Shselasky	u8         reserved_1[0x10];
3473290650Shselasky	u8         op_mod[0x10];
3474290650Shselasky
3475290650Shselasky	u8         reserved_2[0x40];
3476290650Shselasky
3477290650Shselasky	union mlx5_ifc_hca_cap_union_bits capability;
3478290650Shselasky};
3479290650Shselasky
3480306233Shselaskyenum {
3481306233Shselasky	MLX5_SET_FTE_MODIFY_ENABLE_MASK_ACTION			= 0x0,
3482306233Shselasky	MLX5_SET_FTE_MODIFY_ENABLE_MASK_FLOW_TAG		= 0x1,
3483306233Shselasky	MLX5_SET_FTE_MODIFY_ENABLE_MASK_DESTINATION_LIST	= 0x2,
3484306233Shselasky	MLX5_SET_FTE_MODIFY_ENABLE_MASK_FLOW_COUNTERS		= 0x3
3485306233Shselasky};
3486306233Shselasky
3487290650Shselaskystruct mlx5_ifc_set_flow_table_root_out_bits {
3488290650Shselasky	u8         status[0x8];
3489290650Shselasky	u8         reserved_0[0x18];
3490290650Shselasky
3491290650Shselasky	u8         syndrome[0x20];
3492290650Shselasky
3493290650Shselasky	u8         reserved_1[0x40];
3494290650Shselasky};
3495290650Shselasky
3496290650Shselaskystruct mlx5_ifc_set_flow_table_root_in_bits {
3497290650Shselasky	u8         opcode[0x10];
3498290650Shselasky	u8         reserved_0[0x10];
3499290650Shselasky
3500290650Shselasky	u8         reserved_1[0x10];
3501290650Shselasky	u8         op_mod[0x10];
3502290650Shselasky
3503290650Shselasky	u8         other_vport[0x1];
3504290650Shselasky	u8         reserved_2[0xf];
3505290650Shselasky	u8         vport_number[0x10];
3506290650Shselasky
3507290650Shselasky	u8         reserved_3[0x20];
3508290650Shselasky
3509290650Shselasky	u8         table_type[0x8];
3510290650Shselasky	u8         reserved_4[0x18];
3511290650Shselasky
3512290650Shselasky	u8         reserved_5[0x8];
3513290650Shselasky	u8         table_id[0x18];
3514290650Shselasky
3515306233Shselasky	u8         reserved_6[0x8];
3516306233Shselasky	u8         underlay_qpn[0x18];
3517306233Shselasky
3518306233Shselasky	u8         reserved_7[0x120];
3519290650Shselasky};
3520290650Shselasky
3521290650Shselaskystruct mlx5_ifc_set_fte_out_bits {
3522290650Shselasky	u8         status[0x8];
3523290650Shselasky	u8         reserved_0[0x18];
3524290650Shselasky
3525290650Shselasky	u8         syndrome[0x20];
3526290650Shselasky
3527290650Shselasky	u8         reserved_1[0x40];
3528290650Shselasky};
3529290650Shselasky
3530290650Shselaskystruct mlx5_ifc_set_fte_in_bits {
3531290650Shselasky	u8         opcode[0x10];
3532290650Shselasky	u8         reserved_0[0x10];
3533290650Shselasky
3534290650Shselasky	u8         reserved_1[0x10];
3535290650Shselasky	u8         op_mod[0x10];
3536290650Shselasky
3537290650Shselasky	u8         other_vport[0x1];
3538290650Shselasky	u8         reserved_2[0xf];
3539290650Shselasky	u8         vport_number[0x10];
3540290650Shselasky
3541290650Shselasky	u8         reserved_3[0x20];
3542290650Shselasky
3543290650Shselasky	u8         table_type[0x8];
3544290650Shselasky	u8         reserved_4[0x18];
3545290650Shselasky
3546290650Shselasky	u8         reserved_5[0x8];
3547290650Shselasky	u8         table_id[0x18];
3548290650Shselasky
3549290650Shselasky	u8         reserved_6[0x18];
3550290650Shselasky	u8         modify_enable_mask[0x8];
3551290650Shselasky
3552290650Shselasky	u8         reserved_7[0x20];
3553290650Shselasky
3554290650Shselasky	u8         flow_index[0x20];
3555290650Shselasky
3556290650Shselasky	u8         reserved_8[0xe0];
3557290650Shselasky
3558290650Shselasky	struct mlx5_ifc_flow_context_bits flow_context;
3559290650Shselasky};
3560290650Shselasky
3561290650Shselaskystruct mlx5_ifc_set_driver_version_out_bits {
3562290650Shselasky	u8         status[0x8];
3563290650Shselasky	u8         reserved_0[0x18];
3564290650Shselasky
3565290650Shselasky	u8         syndrome[0x20];
3566290650Shselasky
3567290650Shselasky	u8         reserved_1[0x40];
3568290650Shselasky};
3569290650Shselasky
3570290650Shselaskystruct mlx5_ifc_set_driver_version_in_bits {
3571290650Shselasky	u8         opcode[0x10];
3572290650Shselasky	u8         reserved_0[0x10];
3573290650Shselasky
3574290650Shselasky	u8         reserved_1[0x10];
3575290650Shselasky	u8         op_mod[0x10];
3576290650Shselasky
3577290650Shselasky	u8         reserved_2[0x40];
3578290650Shselasky
3579290650Shselasky	u8         driver_version[64][0x8];
3580290650Shselasky};
3581290650Shselasky
3582290650Shselaskystruct mlx5_ifc_set_dc_cnak_trace_out_bits {
3583290650Shselasky	u8         status[0x8];
3584290650Shselasky	u8         reserved_0[0x18];
3585290650Shselasky
3586290650Shselasky	u8         syndrome[0x20];
3587290650Shselasky
3588290650Shselasky	u8         reserved_1[0x40];
3589290650Shselasky};
3590290650Shselasky
3591290650Shselaskystruct mlx5_ifc_set_dc_cnak_trace_in_bits {
3592290650Shselasky	u8         opcode[0x10];
3593290650Shselasky	u8         reserved_0[0x10];
3594290650Shselasky
3595290650Shselasky	u8         reserved_1[0x10];
3596290650Shselasky	u8         op_mod[0x10];
3597290650Shselasky
3598290650Shselasky	u8         enable[0x1];
3599290650Shselasky	u8         reserved_2[0x1f];
3600290650Shselasky
3601290650Shselasky	u8         reserved_3[0x160];
3602290650Shselasky
3603290650Shselasky	struct mlx5_ifc_cmd_pas_bits pas;
3604290650Shselasky};
3605290650Shselasky
3606290650Shselaskystruct mlx5_ifc_set_burst_size_out_bits {
3607290650Shselasky	u8         status[0x8];
3608290650Shselasky	u8         reserved_0[0x18];
3609290650Shselasky
3610290650Shselasky	u8         syndrome[0x20];
3611290650Shselasky
3612290650Shselasky	u8         reserved_1[0x40];
3613290650Shselasky};
3614290650Shselasky
3615290650Shselaskystruct mlx5_ifc_set_burst_size_in_bits {
3616290650Shselasky	u8         opcode[0x10];
3617290650Shselasky	u8         reserved_0[0x10];
3618290650Shselasky
3619290650Shselasky	u8         reserved_1[0x10];
3620290650Shselasky	u8         op_mod[0x10];
3621290650Shselasky
3622290650Shselasky	u8         reserved_2[0x20];
3623290650Shselasky
3624290650Shselasky	u8         reserved_3[0x9];
3625290650Shselasky	u8         device_burst_size[0x17];
3626290650Shselasky};
3627290650Shselasky
3628290650Shselaskystruct mlx5_ifc_rts2rts_qp_out_bits {
3629290650Shselasky	u8         status[0x8];
3630290650Shselasky	u8         reserved_0[0x18];
3631290650Shselasky
3632290650Shselasky	u8         syndrome[0x20];
3633290650Shselasky
3634290650Shselasky	u8         reserved_1[0x40];
3635290650Shselasky};
3636290650Shselasky
3637290650Shselaskystruct mlx5_ifc_rts2rts_qp_in_bits {
3638290650Shselasky	u8         opcode[0x10];
3639290650Shselasky	u8         reserved_0[0x10];
3640290650Shselasky
3641290650Shselasky	u8         reserved_1[0x10];
3642290650Shselasky	u8         op_mod[0x10];
3643290650Shselasky
3644290650Shselasky	u8         reserved_2[0x8];
3645290650Shselasky	u8         qpn[0x18];
3646290650Shselasky
3647290650Shselasky	u8         reserved_3[0x20];
3648290650Shselasky
3649290650Shselasky	u8         opt_param_mask[0x20];
3650290650Shselasky
3651290650Shselasky	u8         reserved_4[0x20];
3652290650Shselasky
3653290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
3654290650Shselasky
3655290650Shselasky	u8         reserved_5[0x80];
3656290650Shselasky};
3657290650Shselasky
3658290650Shselaskystruct mlx5_ifc_rtr2rts_qp_out_bits {
3659290650Shselasky	u8         status[0x8];
3660290650Shselasky	u8         reserved_0[0x18];
3661290650Shselasky
3662290650Shselasky	u8         syndrome[0x20];
3663290650Shselasky
3664290650Shselasky	u8         reserved_1[0x40];
3665290650Shselasky};
3666290650Shselasky
3667290650Shselaskystruct mlx5_ifc_rtr2rts_qp_in_bits {
3668290650Shselasky	u8         opcode[0x10];
3669290650Shselasky	u8         reserved_0[0x10];
3670290650Shselasky
3671290650Shselasky	u8         reserved_1[0x10];
3672290650Shselasky	u8         op_mod[0x10];
3673290650Shselasky
3674290650Shselasky	u8         reserved_2[0x8];
3675290650Shselasky	u8         qpn[0x18];
3676290650Shselasky
3677290650Shselasky	u8         reserved_3[0x20];
3678290650Shselasky
3679290650Shselasky	u8         opt_param_mask[0x20];
3680290650Shselasky
3681290650Shselasky	u8         reserved_4[0x20];
3682290650Shselasky
3683290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
3684290650Shselasky
3685290650Shselasky	u8         reserved_5[0x80];
3686290650Shselasky};
3687290650Shselasky
3688290650Shselaskystruct mlx5_ifc_rst2init_qp_out_bits {
3689290650Shselasky	u8         status[0x8];
3690290650Shselasky	u8         reserved_0[0x18];
3691290650Shselasky
3692290650Shselasky	u8         syndrome[0x20];
3693290650Shselasky
3694290650Shselasky	u8         reserved_1[0x40];
3695290650Shselasky};
3696290650Shselasky
3697290650Shselaskystruct mlx5_ifc_rst2init_qp_in_bits {
3698290650Shselasky	u8         opcode[0x10];
3699290650Shselasky	u8         reserved_0[0x10];
3700290650Shselasky
3701290650Shselasky	u8         reserved_1[0x10];
3702290650Shselasky	u8         op_mod[0x10];
3703290650Shselasky
3704290650Shselasky	u8         reserved_2[0x8];
3705290650Shselasky	u8         qpn[0x18];
3706290650Shselasky
3707290650Shselasky	u8         reserved_3[0x20];
3708290650Shselasky
3709290650Shselasky	u8         opt_param_mask[0x20];
3710290650Shselasky
3711290650Shselasky	u8         reserved_4[0x20];
3712290650Shselasky
3713290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
3714290650Shselasky
3715290650Shselasky	u8         reserved_5[0x80];
3716290650Shselasky};
3717290650Shselasky
3718290650Shselaskystruct mlx5_ifc_resume_qp_out_bits {
3719290650Shselasky	u8         status[0x8];
3720290650Shselasky	u8         reserved_0[0x18];
3721290650Shselasky
3722290650Shselasky	u8         syndrome[0x20];
3723290650Shselasky
3724290650Shselasky	u8         reserved_1[0x40];
3725290650Shselasky};
3726290650Shselasky
3727290650Shselaskystruct mlx5_ifc_resume_qp_in_bits {
3728290650Shselasky	u8         opcode[0x10];
3729290650Shselasky	u8         reserved_0[0x10];
3730290650Shselasky
3731290650Shselasky	u8         reserved_1[0x10];
3732290650Shselasky	u8         op_mod[0x10];
3733290650Shselasky
3734290650Shselasky	u8         reserved_2[0x8];
3735290650Shselasky	u8         qpn[0x18];
3736290650Shselasky
3737290650Shselasky	u8         reserved_3[0x20];
3738290650Shselasky};
3739290650Shselasky
3740290650Shselaskystruct mlx5_ifc_query_xrc_srq_out_bits {
3741290650Shselasky	u8         status[0x8];
3742290650Shselasky	u8         reserved_0[0x18];
3743290650Shselasky
3744290650Shselasky	u8         syndrome[0x20];
3745290650Shselasky
3746290650Shselasky	u8         reserved_1[0x40];
3747290650Shselasky
3748290650Shselasky	struct mlx5_ifc_xrc_srqc_bits xrc_srq_context_entry;
3749290650Shselasky
3750290650Shselasky	u8         reserved_2[0x600];
3751290650Shselasky
3752290650Shselasky	u8         pas[0][0x40];
3753290650Shselasky};
3754290650Shselasky
3755290650Shselaskystruct mlx5_ifc_query_xrc_srq_in_bits {
3756290650Shselasky	u8         opcode[0x10];
3757290650Shselasky	u8         reserved_0[0x10];
3758290650Shselasky
3759290650Shselasky	u8         reserved_1[0x10];
3760290650Shselasky	u8         op_mod[0x10];
3761290650Shselasky
3762290650Shselasky	u8         reserved_2[0x8];
3763290650Shselasky	u8         xrc_srqn[0x18];
3764290650Shselasky
3765290650Shselasky	u8         reserved_3[0x20];
3766290650Shselasky};
3767290650Shselasky
3768290650Shselaskystruct mlx5_ifc_query_wol_rol_out_bits {
3769290650Shselasky	u8         status[0x8];
3770290650Shselasky	u8         reserved_0[0x18];
3771290650Shselasky
3772290650Shselasky	u8         syndrome[0x20];
3773290650Shselasky
3774290650Shselasky	u8         reserved_1[0x10];
3775290650Shselasky	u8         rol_mode[0x8];
3776290650Shselasky	u8         wol_mode[0x8];
3777290650Shselasky
3778290650Shselasky	u8         reserved_2[0x20];
3779290650Shselasky};
3780290650Shselasky
3781290650Shselaskystruct mlx5_ifc_query_wol_rol_in_bits {
3782290650Shselasky	u8         opcode[0x10];
3783290650Shselasky	u8         reserved_0[0x10];
3784290650Shselasky
3785290650Shselasky	u8         reserved_1[0x10];
3786290650Shselasky	u8         op_mod[0x10];
3787290650Shselasky
3788290650Shselasky	u8         reserved_2[0x40];
3789290650Shselasky};
3790290650Shselasky
3791290650Shselaskyenum {
3792290650Shselasky	MLX5_QUERY_VPORT_STATE_OUT_STATE_DOWN  = 0x0,
3793290650Shselasky	MLX5_QUERY_VPORT_STATE_OUT_STATE_UP    = 0x1,
3794290650Shselasky};
3795290650Shselasky
3796290650Shselaskystruct mlx5_ifc_query_vport_state_out_bits {
3797290650Shselasky	u8         status[0x8];
3798290650Shselasky	u8         reserved_0[0x18];
3799290650Shselasky
3800290650Shselasky	u8         syndrome[0x20];
3801290650Shselasky
3802290650Shselasky	u8         reserved_1[0x20];
3803290650Shselasky
3804290650Shselasky	u8         reserved_2[0x18];
3805290650Shselasky	u8         admin_state[0x4];
3806290650Shselasky	u8         state[0x4];
3807290650Shselasky};
3808290650Shselasky
3809290650Shselaskyenum {
3810290650Shselasky	MLX5_QUERY_VPORT_STATE_IN_OP_MOD_VNIC_VPORT  = 0x0,
3811290650Shselasky	MLX5_QUERY_VPORT_STATE_IN_OP_MOD_ESW_VPORT   = 0x1,
3812290650Shselasky	MLX5_QUERY_VPORT_STATE_IN_OP_MOD_UPLINK      = 0x2,
3813290650Shselasky};
3814290650Shselasky
3815290650Shselaskystruct mlx5_ifc_query_vport_state_in_bits {
3816290650Shselasky	u8         opcode[0x10];
3817290650Shselasky	u8         reserved_0[0x10];
3818290650Shselasky
3819290650Shselasky	u8         reserved_1[0x10];
3820290650Shselasky	u8         op_mod[0x10];
3821290650Shselasky
3822290650Shselasky	u8         other_vport[0x1];
3823290650Shselasky	u8         reserved_2[0xf];
3824290650Shselasky	u8         vport_number[0x10];
3825290650Shselasky
3826290650Shselasky	u8         reserved_3[0x20];
3827290650Shselasky};
3828290650Shselasky
3829290650Shselaskystruct mlx5_ifc_query_vport_counter_out_bits {
3830290650Shselasky	u8         status[0x8];
3831290650Shselasky	u8         reserved_0[0x18];
3832290650Shselasky
3833290650Shselasky	u8         syndrome[0x20];
3834290650Shselasky
3835290650Shselasky	u8         reserved_1[0x40];
3836290650Shselasky
3837290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_errors;
3838290650Shselasky
3839290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmit_errors;
3840290650Shselasky
3841290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_ib_unicast;
3842290650Shselasky
3843290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmitted_ib_unicast;
3844290650Shselasky
3845290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_ib_multicast;
3846290650Shselasky
3847290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmitted_ib_multicast;
3848290650Shselasky
3849290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_eth_broadcast;
3850290650Shselasky
3851290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmitted_eth_broadcast;
3852290650Shselasky
3853290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_eth_unicast;
3854290650Shselasky
3855290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmitted_eth_unicast;
3856290650Shselasky
3857290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_eth_multicast;
3858290650Shselasky
3859290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmitted_eth_multicast;
3860290650Shselasky
3861290650Shselasky	u8         reserved_2[0xa00];
3862290650Shselasky};
3863290650Shselasky
3864290650Shselaskyenum {
3865290650Shselasky	MLX5_QUERY_VPORT_COUNTER_IN_OP_MOD_VPORT_COUNTERS  = 0x0,
3866290650Shselasky};
3867290650Shselasky
3868290650Shselaskystruct mlx5_ifc_query_vport_counter_in_bits {
3869290650Shselasky	u8         opcode[0x10];
3870290650Shselasky	u8         reserved_0[0x10];
3871290650Shselasky
3872290650Shselasky	u8         reserved_1[0x10];
3873290650Shselasky	u8         op_mod[0x10];
3874290650Shselasky
3875290650Shselasky	u8         other_vport[0x1];
3876290650Shselasky	u8         reserved_2[0xb];
3877290650Shselasky	u8         port_num[0x4];
3878290650Shselasky	u8         vport_number[0x10];
3879290650Shselasky
3880290650Shselasky	u8         reserved_3[0x60];
3881290650Shselasky
3882290650Shselasky	u8         clear[0x1];
3883290650Shselasky	u8         reserved_4[0x1f];
3884290650Shselasky
3885290650Shselasky	u8         reserved_5[0x20];
3886290650Shselasky};
3887290650Shselasky
3888290650Shselaskystruct mlx5_ifc_query_tis_out_bits {
3889290650Shselasky	u8         status[0x8];
3890290650Shselasky	u8         reserved_0[0x18];
3891290650Shselasky
3892290650Shselasky	u8         syndrome[0x20];
3893290650Shselasky
3894290650Shselasky	u8         reserved_1[0x40];
3895290650Shselasky
3896290650Shselasky	struct mlx5_ifc_tisc_bits tis_context;
3897290650Shselasky};
3898290650Shselasky
3899290650Shselaskystruct mlx5_ifc_query_tis_in_bits {
3900290650Shselasky	u8         opcode[0x10];
3901290650Shselasky	u8         reserved_0[0x10];
3902290650Shselasky
3903290650Shselasky	u8         reserved_1[0x10];
3904290650Shselasky	u8         op_mod[0x10];
3905290650Shselasky
3906290650Shselasky	u8         reserved_2[0x8];
3907290650Shselasky	u8         tisn[0x18];
3908290650Shselasky
3909290650Shselasky	u8         reserved_3[0x20];
3910290650Shselasky};
3911290650Shselasky
3912290650Shselaskystruct mlx5_ifc_query_tir_out_bits {
3913290650Shselasky	u8         status[0x8];
3914290650Shselasky	u8         reserved_0[0x18];
3915290650Shselasky
3916290650Shselasky	u8         syndrome[0x20];
3917290650Shselasky
3918290650Shselasky	u8         reserved_1[0xc0];
3919290650Shselasky
3920290650Shselasky	struct mlx5_ifc_tirc_bits tir_context;
3921290650Shselasky};
3922290650Shselasky
3923290650Shselaskystruct mlx5_ifc_query_tir_in_bits {
3924290650Shselasky	u8         opcode[0x10];
3925290650Shselasky	u8         reserved_0[0x10];
3926290650Shselasky
3927290650Shselasky	u8         reserved_1[0x10];
3928290650Shselasky	u8         op_mod[0x10];
3929290650Shselasky
3930290650Shselasky	u8         reserved_2[0x8];
3931290650Shselasky	u8         tirn[0x18];
3932290650Shselasky
3933290650Shselasky	u8         reserved_3[0x20];
3934290650Shselasky};
3935290650Shselasky
3936290650Shselaskystruct mlx5_ifc_query_srq_out_bits {
3937290650Shselasky	u8         status[0x8];
3938290650Shselasky	u8         reserved_0[0x18];
3939290650Shselasky
3940290650Shselasky	u8         syndrome[0x20];
3941290650Shselasky
3942290650Shselasky	u8         reserved_1[0x40];
3943290650Shselasky
3944290650Shselasky	struct mlx5_ifc_srqc_bits srq_context_entry;
3945290650Shselasky
3946290650Shselasky	u8         reserved_2[0x600];
3947290650Shselasky
3948290650Shselasky	u8         pas[0][0x40];
3949290650Shselasky};
3950290650Shselasky
3951290650Shselaskystruct mlx5_ifc_query_srq_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         reserved_2[0x8];
3959290650Shselasky	u8         srqn[0x18];
3960290650Shselasky
3961290650Shselasky	u8         reserved_3[0x20];
3962290650Shselasky};
3963290650Shselasky
3964290650Shselaskystruct mlx5_ifc_query_sq_out_bits {
3965290650Shselasky	u8         status[0x8];
3966290650Shselasky	u8         reserved_0[0x18];
3967290650Shselasky
3968290650Shselasky	u8         syndrome[0x20];
3969290650Shselasky
3970290650Shselasky	u8         reserved_1[0xc0];
3971290650Shselasky
3972290650Shselasky	struct mlx5_ifc_sqc_bits sq_context;
3973290650Shselasky};
3974290650Shselasky
3975290650Shselaskystruct mlx5_ifc_query_sq_in_bits {
3976290650Shselasky	u8         opcode[0x10];
3977290650Shselasky	u8         reserved_0[0x10];
3978290650Shselasky
3979290650Shselasky	u8         reserved_1[0x10];
3980290650Shselasky	u8         op_mod[0x10];
3981290650Shselasky
3982290650Shselasky	u8         reserved_2[0x8];
3983290650Shselasky	u8         sqn[0x18];
3984290650Shselasky
3985290650Shselasky	u8         reserved_3[0x20];
3986290650Shselasky};
3987290650Shselasky
3988290650Shselaskystruct mlx5_ifc_query_special_contexts_out_bits {
3989290650Shselasky	u8         status[0x8];
3990290650Shselasky	u8         reserved_0[0x18];
3991290650Shselasky
3992290650Shselasky	u8         syndrome[0x20];
3993290650Shselasky
3994290650Shselasky	u8         reserved_1[0x20];
3995290650Shselasky
3996290650Shselasky	u8         resd_lkey[0x20];
3997290650Shselasky};
3998290650Shselasky
3999290650Shselaskystruct mlx5_ifc_query_special_contexts_in_bits {
4000290650Shselasky	u8         opcode[0x10];
4001290650Shselasky	u8         reserved_0[0x10];
4002290650Shselasky
4003290650Shselasky	u8         reserved_1[0x10];
4004290650Shselasky	u8         op_mod[0x10];
4005290650Shselasky
4006290650Shselasky	u8         reserved_2[0x40];
4007290650Shselasky};
4008290650Shselasky
4009308678Shselaskystruct mlx5_ifc_query_scheduling_element_out_bits {
4010308678Shselasky	u8         status[0x8];
4011308678Shselasky	u8         reserved_at_8[0x18];
4012308678Shselasky
4013308678Shselasky	u8         syndrome[0x20];
4014308678Shselasky
4015308678Shselasky	u8         reserved_at_40[0xc0];
4016308678Shselasky
4017308678Shselasky	struct mlx5_ifc_scheduling_context_bits scheduling_context;
4018308678Shselasky
4019308678Shselasky	u8         reserved_at_300[0x100];
4020308678Shselasky};
4021308678Shselasky
4022308678Shselaskyenum {
4023308678Shselasky	MLX5_SCHEDULING_ELEMENT_IN_HIERARCHY_E_SWITCH = 0x2,
4024308678Shselasky};
4025308678Shselasky
4026308678Shselaskystruct mlx5_ifc_query_scheduling_element_in_bits {
4027308678Shselasky	u8         opcode[0x10];
4028308678Shselasky	u8         reserved_at_10[0x10];
4029308678Shselasky
4030308678Shselasky	u8         reserved_at_20[0x10];
4031308678Shselasky	u8         op_mod[0x10];
4032308678Shselasky
4033308678Shselasky	u8         scheduling_hierarchy[0x8];
4034308678Shselasky	u8         reserved_at_48[0x18];
4035308678Shselasky
4036308678Shselasky	u8         scheduling_element_id[0x20];
4037308678Shselasky
4038308678Shselasky	u8         reserved_at_80[0x180];
4039308678Shselasky};
4040308678Shselasky
4041290650Shselaskystruct mlx5_ifc_query_rqt_out_bits {
4042290650Shselasky	u8         status[0x8];
4043290650Shselasky	u8         reserved_0[0x18];
4044290650Shselasky
4045290650Shselasky	u8         syndrome[0x20];
4046290650Shselasky
4047290650Shselasky	u8         reserved_1[0xc0];
4048290650Shselasky
4049290650Shselasky	struct mlx5_ifc_rqtc_bits rqt_context;
4050290650Shselasky};
4051290650Shselasky
4052290650Shselaskystruct mlx5_ifc_query_rqt_in_bits {
4053290650Shselasky	u8         opcode[0x10];
4054290650Shselasky	u8         reserved_0[0x10];
4055290650Shselasky
4056290650Shselasky	u8         reserved_1[0x10];
4057290650Shselasky	u8         op_mod[0x10];
4058290650Shselasky
4059290650Shselasky	u8         reserved_2[0x8];
4060290650Shselasky	u8         rqtn[0x18];
4061290650Shselasky
4062290650Shselasky	u8         reserved_3[0x20];
4063290650Shselasky};
4064290650Shselasky
4065290650Shselaskystruct mlx5_ifc_query_rq_out_bits {
4066290650Shselasky	u8         status[0x8];
4067290650Shselasky	u8         reserved_0[0x18];
4068290650Shselasky
4069290650Shselasky	u8         syndrome[0x20];
4070290650Shselasky
4071290650Shselasky	u8         reserved_1[0xc0];
4072290650Shselasky
4073290650Shselasky	struct mlx5_ifc_rqc_bits rq_context;
4074290650Shselasky};
4075290650Shselasky
4076290650Shselaskystruct mlx5_ifc_query_rq_in_bits {
4077290650Shselasky	u8         opcode[0x10];
4078290650Shselasky	u8         reserved_0[0x10];
4079290650Shselasky
4080290650Shselasky	u8         reserved_1[0x10];
4081290650Shselasky	u8         op_mod[0x10];
4082290650Shselasky
4083290650Shselasky	u8         reserved_2[0x8];
4084290650Shselasky	u8         rqn[0x18];
4085290650Shselasky
4086290650Shselasky	u8         reserved_3[0x20];
4087290650Shselasky};
4088290650Shselasky
4089290650Shselaskystruct mlx5_ifc_query_roce_address_out_bits {
4090290650Shselasky	u8         status[0x8];
4091290650Shselasky	u8         reserved_0[0x18];
4092290650Shselasky
4093290650Shselasky	u8         syndrome[0x20];
4094290650Shselasky
4095290650Shselasky	u8         reserved_1[0x40];
4096290650Shselasky
4097290650Shselasky	struct mlx5_ifc_roce_addr_layout_bits roce_address;
4098290650Shselasky};
4099290650Shselasky
4100290650Shselaskystruct mlx5_ifc_query_roce_address_in_bits {
4101290650Shselasky	u8         opcode[0x10];
4102290650Shselasky	u8         reserved_0[0x10];
4103290650Shselasky
4104290650Shselasky	u8         reserved_1[0x10];
4105290650Shselasky	u8         op_mod[0x10];
4106290650Shselasky
4107290650Shselasky	u8         roce_address_index[0x10];
4108290650Shselasky	u8         reserved_2[0x10];
4109290650Shselasky
4110290650Shselasky	u8         reserved_3[0x20];
4111290650Shselasky};
4112290650Shselasky
4113290650Shselaskystruct mlx5_ifc_query_rmp_out_bits {
4114290650Shselasky	u8         status[0x8];
4115290650Shselasky	u8         reserved_0[0x18];
4116290650Shselasky
4117290650Shselasky	u8         syndrome[0x20];
4118290650Shselasky
4119290650Shselasky	u8         reserved_1[0xc0];
4120290650Shselasky
4121290650Shselasky	struct mlx5_ifc_rmpc_bits rmp_context;
4122290650Shselasky};
4123290650Shselasky
4124290650Shselaskystruct mlx5_ifc_query_rmp_in_bits {
4125290650Shselasky	u8         opcode[0x10];
4126290650Shselasky	u8         reserved_0[0x10];
4127290650Shselasky
4128290650Shselasky	u8         reserved_1[0x10];
4129290650Shselasky	u8         op_mod[0x10];
4130290650Shselasky
4131290650Shselasky	u8         reserved_2[0x8];
4132290650Shselasky	u8         rmpn[0x18];
4133290650Shselasky
4134290650Shselasky	u8         reserved_3[0x20];
4135290650Shselasky};
4136290650Shselasky
4137290650Shselaskystruct mlx5_ifc_query_rdb_out_bits {
4138290650Shselasky	u8         status[0x8];
4139290650Shselasky	u8         reserved_0[0x18];
4140290650Shselasky
4141290650Shselasky	u8         syndrome[0x20];
4142290650Shselasky
4143290650Shselasky	u8         reserved_1[0x20];
4144290650Shselasky
4145290650Shselasky	u8         reserved_2[0x18];
4146290650Shselasky	u8         rdb_list_size[0x8];
4147290650Shselasky
4148290650Shselasky	struct mlx5_ifc_rdbc_bits rdb_context[0];
4149290650Shselasky};
4150290650Shselasky
4151290650Shselaskystruct mlx5_ifc_query_rdb_in_bits {
4152290650Shselasky	u8         opcode[0x10];
4153290650Shselasky	u8         reserved_0[0x10];
4154290650Shselasky
4155290650Shselasky	u8         reserved_1[0x10];
4156290650Shselasky	u8         op_mod[0x10];
4157290650Shselasky
4158290650Shselasky	u8         reserved_2[0x8];
4159290650Shselasky	u8         qpn[0x18];
4160290650Shselasky
4161290650Shselasky	u8         reserved_3[0x20];
4162290650Shselasky};
4163290650Shselasky
4164290650Shselaskystruct mlx5_ifc_query_qp_out_bits {
4165290650Shselasky	u8         status[0x8];
4166290650Shselasky	u8         reserved_0[0x18];
4167290650Shselasky
4168290650Shselasky	u8         syndrome[0x20];
4169290650Shselasky
4170290650Shselasky	u8         reserved_1[0x40];
4171290650Shselasky
4172290650Shselasky	u8         opt_param_mask[0x20];
4173290650Shselasky
4174290650Shselasky	u8         reserved_2[0x20];
4175290650Shselasky
4176290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
4177290650Shselasky
4178290650Shselasky	u8         reserved_3[0x80];
4179290650Shselasky
4180290650Shselasky	u8         pas[0][0x40];
4181290650Shselasky};
4182290650Shselasky
4183290650Shselaskystruct mlx5_ifc_query_qp_in_bits {
4184290650Shselasky	u8         opcode[0x10];
4185290650Shselasky	u8         reserved_0[0x10];
4186290650Shselasky
4187290650Shselasky	u8         reserved_1[0x10];
4188290650Shselasky	u8         op_mod[0x10];
4189290650Shselasky
4190290650Shselasky	u8         reserved_2[0x8];
4191290650Shselasky	u8         qpn[0x18];
4192290650Shselasky
4193290650Shselasky	u8         reserved_3[0x20];
4194290650Shselasky};
4195290650Shselasky
4196290650Shselaskystruct mlx5_ifc_query_q_counter_out_bits {
4197290650Shselasky	u8         status[0x8];
4198290650Shselasky	u8         reserved_0[0x18];
4199290650Shselasky
4200290650Shselasky	u8         syndrome[0x20];
4201290650Shselasky
4202290650Shselasky	u8         reserved_1[0x40];
4203290650Shselasky
4204290650Shselasky	u8         rx_write_requests[0x20];
4205290650Shselasky
4206290650Shselasky	u8         reserved_2[0x20];
4207290650Shselasky
4208290650Shselasky	u8         rx_read_requests[0x20];
4209290650Shselasky
4210290650Shselasky	u8         reserved_3[0x20];
4211290650Shselasky
4212290650Shselasky	u8         rx_atomic_requests[0x20];
4213290650Shselasky
4214290650Shselasky	u8         reserved_4[0x20];
4215290650Shselasky
4216290650Shselasky	u8         rx_dct_connect[0x20];
4217290650Shselasky
4218290650Shselasky	u8         reserved_5[0x20];
4219290650Shselasky
4220290650Shselasky	u8         out_of_buffer[0x20];
4221290650Shselasky
4222321992Shselasky	u8         reserved_7[0x20];
4223290650Shselasky
4224290650Shselasky	u8         out_of_sequence[0x20];
4225290650Shselasky
4226321992Shselasky	u8         reserved_8[0x20];
4227306233Shselasky
4228321992Shselasky	u8         duplicate_request[0x20];
4229306233Shselasky
4230321992Shselasky	u8         reserved_9[0x20];
4231306233Shselasky
4232321992Shselasky	u8         rnr_nak_retry_err[0x20];
4233306233Shselasky
4234321992Shselasky	u8         reserved_10[0x20];
4235306233Shselasky
4236321992Shselasky	u8         packet_seq_err[0x20];
4237306233Shselasky
4238321992Shselasky	u8         reserved_11[0x20];
4239306233Shselasky
4240321992Shselasky	u8         implied_nak_seq_err[0x20];
4241306233Shselasky
4242321992Shselasky	u8         reserved_12[0x20];
4243306233Shselasky
4244321992Shselasky	u8         local_ack_timeout_err[0x20];
4245306233Shselasky
4246321992Shselasky	u8         reserved_13[0x20];
4247321992Shselasky
4248321992Shselasky	u8         resp_rnr_nak[0x20];
4249321992Shselasky
4250321992Shselasky	u8         reserved_14[0x20];
4251321992Shselasky
4252321992Shselasky	u8         req_rnr_retries_exceeded[0x20];
4253321992Shselasky
4254321992Shselasky	u8         reserved_15[0x460];
4255290650Shselasky};
4256290650Shselasky
4257290650Shselaskystruct mlx5_ifc_query_q_counter_in_bits {
4258290650Shselasky	u8         opcode[0x10];
4259290650Shselasky	u8         reserved_0[0x10];
4260290650Shselasky
4261290650Shselasky	u8         reserved_1[0x10];
4262290650Shselasky	u8         op_mod[0x10];
4263290650Shselasky
4264290650Shselasky	u8         reserved_2[0x80];
4265290650Shselasky
4266290650Shselasky	u8         clear[0x1];
4267290650Shselasky	u8         reserved_3[0x1f];
4268290650Shselasky
4269290650Shselasky	u8         reserved_4[0x18];
4270290650Shselasky	u8         counter_set_id[0x8];
4271290650Shselasky};
4272290650Shselasky
4273290650Shselaskystruct mlx5_ifc_query_pages_out_bits {
4274290650Shselasky	u8         status[0x8];
4275290650Shselasky	u8         reserved_0[0x18];
4276290650Shselasky
4277290650Shselasky	u8         syndrome[0x20];
4278290650Shselasky
4279290650Shselasky	u8         reserved_1[0x10];
4280290650Shselasky	u8         function_id[0x10];
4281290650Shselasky
4282290650Shselasky	u8         num_pages[0x20];
4283290650Shselasky};
4284290650Shselasky
4285290650Shselaskyenum {
4286290650Shselasky	MLX5_BOOT_PAGES                           = 0x1,
4287290650Shselasky	MLX5_INIT_PAGES                           = 0x2,
4288290650Shselasky	MLX5_POST_INIT_PAGES                      = 0x3,
4289290650Shselasky};
4290290650Shselasky
4291290650Shselaskystruct mlx5_ifc_query_pages_in_bits {
4292290650Shselasky	u8         opcode[0x10];
4293290650Shselasky	u8         reserved_0[0x10];
4294290650Shselasky
4295290650Shselasky	u8         reserved_1[0x10];
4296290650Shselasky	u8         op_mod[0x10];
4297290650Shselasky
4298290650Shselasky	u8         reserved_2[0x10];
4299290650Shselasky	u8         function_id[0x10];
4300290650Shselasky
4301290650Shselasky	u8         reserved_3[0x20];
4302290650Shselasky};
4303290650Shselasky
4304290650Shselaskystruct mlx5_ifc_query_nic_vport_context_out_bits {
4305290650Shselasky	u8         status[0x8];
4306290650Shselasky	u8         reserved_0[0x18];
4307290650Shselasky
4308290650Shselasky	u8         syndrome[0x20];
4309290650Shselasky
4310290650Shselasky	u8         reserved_1[0x40];
4311290650Shselasky
4312290650Shselasky	struct mlx5_ifc_nic_vport_context_bits nic_vport_context;
4313290650Shselasky};
4314290650Shselasky
4315290650Shselaskystruct mlx5_ifc_query_nic_vport_context_in_bits {
4316290650Shselasky	u8         opcode[0x10];
4317290650Shselasky	u8         reserved_0[0x10];
4318290650Shselasky
4319290650Shselasky	u8         reserved_1[0x10];
4320290650Shselasky	u8         op_mod[0x10];
4321290650Shselasky
4322290650Shselasky	u8         other_vport[0x1];
4323290650Shselasky	u8         reserved_2[0xf];
4324290650Shselasky	u8         vport_number[0x10];
4325290650Shselasky
4326290650Shselasky	u8         reserved_3[0x5];
4327290650Shselasky	u8         allowed_list_type[0x3];
4328290650Shselasky	u8         reserved_4[0x18];
4329290650Shselasky};
4330290650Shselasky
4331290650Shselaskystruct mlx5_ifc_query_mkey_out_bits {
4332290650Shselasky	u8         status[0x8];
4333290650Shselasky	u8         reserved_0[0x18];
4334290650Shselasky
4335290650Shselasky	u8         syndrome[0x20];
4336290650Shselasky
4337290650Shselasky	u8         reserved_1[0x40];
4338290650Shselasky
4339290650Shselasky	struct mlx5_ifc_mkc_bits memory_key_mkey_entry;
4340290650Shselasky
4341290650Shselasky	u8         reserved_2[0x600];
4342290650Shselasky
4343290650Shselasky	u8         bsf0_klm0_pas_mtt0_1[16][0x8];
4344290650Shselasky
4345290650Shselasky	u8         bsf1_klm1_pas_mtt2_3[16][0x8];
4346290650Shselasky};
4347290650Shselasky
4348290650Shselaskystruct mlx5_ifc_query_mkey_in_bits {
4349290650Shselasky	u8         opcode[0x10];
4350290650Shselasky	u8         reserved_0[0x10];
4351290650Shselasky
4352290650Shselasky	u8         reserved_1[0x10];
4353290650Shselasky	u8         op_mod[0x10];
4354290650Shselasky
4355290650Shselasky	u8         reserved_2[0x8];
4356290650Shselasky	u8         mkey_index[0x18];
4357290650Shselasky
4358290650Shselasky	u8         pg_access[0x1];
4359290650Shselasky	u8         reserved_3[0x1f];
4360290650Shselasky};
4361290650Shselasky
4362290650Shselaskystruct mlx5_ifc_query_mad_demux_out_bits {
4363290650Shselasky	u8         status[0x8];
4364290650Shselasky	u8         reserved_0[0x18];
4365290650Shselasky
4366290650Shselasky	u8         syndrome[0x20];
4367290650Shselasky
4368290650Shselasky	u8         reserved_1[0x40];
4369290650Shselasky
4370290650Shselasky	u8         mad_dumux_parameters_block[0x20];
4371290650Shselasky};
4372290650Shselasky
4373290650Shselaskystruct mlx5_ifc_query_mad_demux_in_bits {
4374290650Shselasky	u8         opcode[0x10];
4375290650Shselasky	u8         reserved_0[0x10];
4376290650Shselasky
4377290650Shselasky	u8         reserved_1[0x10];
4378290650Shselasky	u8         op_mod[0x10];
4379290650Shselasky
4380290650Shselasky	u8         reserved_2[0x40];
4381290650Shselasky};
4382290650Shselasky
4383290650Shselaskystruct mlx5_ifc_query_l2_table_entry_out_bits {
4384290650Shselasky	u8         status[0x8];
4385290650Shselasky	u8         reserved_0[0x18];
4386290650Shselasky
4387290650Shselasky	u8         syndrome[0x20];
4388290650Shselasky
4389290650Shselasky	u8         reserved_1[0xa0];
4390290650Shselasky
4391290650Shselasky	u8         reserved_2[0x13];
4392290650Shselasky	u8         vlan_valid[0x1];
4393290650Shselasky	u8         vlan[0xc];
4394290650Shselasky
4395290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_address;
4396290650Shselasky
4397290650Shselasky	u8         reserved_3[0xc0];
4398290650Shselasky};
4399290650Shselasky
4400290650Shselaskystruct mlx5_ifc_query_l2_table_entry_in_bits {
4401290650Shselasky	u8         opcode[0x10];
4402290650Shselasky	u8         reserved_0[0x10];
4403290650Shselasky
4404290650Shselasky	u8         reserved_1[0x10];
4405290650Shselasky	u8         op_mod[0x10];
4406290650Shselasky
4407290650Shselasky	u8         reserved_2[0x60];
4408290650Shselasky
4409290650Shselasky	u8         reserved_3[0x8];
4410290650Shselasky	u8         table_index[0x18];
4411290650Shselasky
4412290650Shselasky	u8         reserved_4[0x140];
4413290650Shselasky};
4414290650Shselasky
4415290650Shselaskystruct mlx5_ifc_query_issi_out_bits {
4416290650Shselasky	u8         status[0x8];
4417290650Shselasky	u8         reserved_0[0x18];
4418290650Shselasky
4419290650Shselasky	u8         syndrome[0x20];
4420290650Shselasky
4421290650Shselasky	u8         reserved_1[0x10];
4422290650Shselasky	u8         current_issi[0x10];
4423290650Shselasky
4424290650Shselasky	u8         reserved_2[0xa0];
4425290650Shselasky
4426290650Shselasky	u8         supported_issi_reserved[76][0x8];
4427290650Shselasky	u8         supported_issi_dw0[0x20];
4428290650Shselasky};
4429290650Shselasky
4430290650Shselaskystruct mlx5_ifc_query_issi_in_bits {
4431290650Shselasky	u8         opcode[0x10];
4432290650Shselasky	u8         reserved_0[0x10];
4433290650Shselasky
4434290650Shselasky	u8         reserved_1[0x10];
4435290650Shselasky	u8         op_mod[0x10];
4436290650Shselasky
4437290650Shselasky	u8         reserved_2[0x40];
4438290650Shselasky};
4439290650Shselasky
4440290650Shselaskystruct mlx5_ifc_query_hca_vport_pkey_out_bits {
4441290650Shselasky	u8         status[0x8];
4442290650Shselasky	u8         reserved_0[0x18];
4443290650Shselasky
4444290650Shselasky	u8         syndrome[0x20];
4445290650Shselasky
4446290650Shselasky	u8         reserved_1[0x40];
4447290650Shselasky
4448290650Shselasky	struct mlx5_ifc_pkey_bits pkey[0];
4449290650Shselasky};
4450290650Shselasky
4451290650Shselaskystruct mlx5_ifc_query_hca_vport_pkey_in_bits {
4452290650Shselasky	u8         opcode[0x10];
4453290650Shselasky	u8         reserved_0[0x10];
4454290650Shselasky
4455290650Shselasky	u8         reserved_1[0x10];
4456290650Shselasky	u8         op_mod[0x10];
4457290650Shselasky
4458290650Shselasky	u8         other_vport[0x1];
4459290650Shselasky	u8         reserved_2[0xb];
4460290650Shselasky	u8         port_num[0x4];
4461290650Shselasky	u8         vport_number[0x10];
4462290650Shselasky
4463290650Shselasky	u8         reserved_3[0x10];
4464290650Shselasky	u8         pkey_index[0x10];
4465290650Shselasky};
4466290650Shselasky
4467290650Shselaskystruct mlx5_ifc_query_hca_vport_gid_out_bits {
4468290650Shselasky	u8         status[0x8];
4469290650Shselasky	u8         reserved_0[0x18];
4470290650Shselasky
4471290650Shselasky	u8         syndrome[0x20];
4472290650Shselasky
4473290650Shselasky	u8         reserved_1[0x20];
4474290650Shselasky
4475290650Shselasky	u8         gids_num[0x10];
4476290650Shselasky	u8         reserved_2[0x10];
4477290650Shselasky
4478290650Shselasky	struct mlx5_ifc_array128_auto_bits gid[0];
4479290650Shselasky};
4480290650Shselasky
4481290650Shselaskystruct mlx5_ifc_query_hca_vport_gid_in_bits {
4482290650Shselasky	u8         opcode[0x10];
4483290650Shselasky	u8         reserved_0[0x10];
4484290650Shselasky
4485290650Shselasky	u8         reserved_1[0x10];
4486290650Shselasky	u8         op_mod[0x10];
4487290650Shselasky
4488290650Shselasky	u8         other_vport[0x1];
4489290650Shselasky	u8         reserved_2[0xb];
4490290650Shselasky	u8         port_num[0x4];
4491290650Shselasky	u8         vport_number[0x10];
4492290650Shselasky
4493290650Shselasky	u8         reserved_3[0x10];
4494290650Shselasky	u8         gid_index[0x10];
4495290650Shselasky};
4496290650Shselasky
4497290650Shselaskystruct mlx5_ifc_query_hca_vport_context_out_bits {
4498290650Shselasky	u8         status[0x8];
4499290650Shselasky	u8         reserved_0[0x18];
4500290650Shselasky
4501290650Shselasky	u8         syndrome[0x20];
4502290650Shselasky
4503290650Shselasky	u8         reserved_1[0x40];
4504290650Shselasky
4505290650Shselasky	struct mlx5_ifc_hca_vport_context_bits hca_vport_context;
4506290650Shselasky};
4507290650Shselasky
4508290650Shselaskystruct mlx5_ifc_query_hca_vport_context_in_bits {
4509290650Shselasky	u8         opcode[0x10];
4510290650Shselasky	u8         reserved_0[0x10];
4511290650Shselasky
4512290650Shselasky	u8         reserved_1[0x10];
4513290650Shselasky	u8         op_mod[0x10];
4514290650Shselasky
4515290650Shselasky	u8         other_vport[0x1];
4516290650Shselasky	u8         reserved_2[0xb];
4517290650Shselasky	u8         port_num[0x4];
4518290650Shselasky	u8         vport_number[0x10];
4519290650Shselasky
4520290650Shselasky	u8         reserved_3[0x20];
4521290650Shselasky};
4522290650Shselasky
4523290650Shselaskystruct mlx5_ifc_query_hca_cap_out_bits {
4524290650Shselasky	u8         status[0x8];
4525290650Shselasky	u8         reserved_0[0x18];
4526290650Shselasky
4527290650Shselasky	u8         syndrome[0x20];
4528290650Shselasky
4529290650Shselasky	u8         reserved_1[0x40];
4530290650Shselasky
4531290650Shselasky	union mlx5_ifc_hca_cap_union_bits capability;
4532290650Shselasky};
4533290650Shselasky
4534290650Shselaskystruct mlx5_ifc_query_hca_cap_in_bits {
4535290650Shselasky	u8         opcode[0x10];
4536290650Shselasky	u8         reserved_0[0x10];
4537290650Shselasky
4538290650Shselasky	u8         reserved_1[0x10];
4539290650Shselasky	u8         op_mod[0x10];
4540290650Shselasky
4541290650Shselasky	u8         reserved_2[0x40];
4542290650Shselasky};
4543290650Shselasky
4544290650Shselaskystruct mlx5_ifc_query_flow_table_out_bits {
4545290650Shselasky	u8         status[0x8];
4546329200Shselasky	u8         reserved_at_8[0x18];
4547290650Shselasky
4548290650Shselasky	u8         syndrome[0x20];
4549290650Shselasky
4550329200Shselasky	u8         reserved_at_40[0x80];
4551290650Shselasky
4552329200Shselasky	struct mlx5_ifc_flow_table_context_bits flow_table_context;
4553290650Shselasky};
4554290650Shselasky
4555290650Shselaskystruct mlx5_ifc_query_flow_table_in_bits {
4556290650Shselasky	u8         opcode[0x10];
4557290650Shselasky	u8         reserved_0[0x10];
4558290650Shselasky
4559290650Shselasky	u8         reserved_1[0x10];
4560290650Shselasky	u8         op_mod[0x10];
4561290650Shselasky
4562290650Shselasky	u8         other_vport[0x1];
4563290650Shselasky	u8         reserved_2[0xf];
4564290650Shselasky	u8         vport_number[0x10];
4565290650Shselasky
4566290650Shselasky	u8         reserved_3[0x20];
4567290650Shselasky
4568290650Shselasky	u8         table_type[0x8];
4569290650Shselasky	u8         reserved_4[0x18];
4570290650Shselasky
4571290650Shselasky	u8         reserved_5[0x8];
4572290650Shselasky	u8         table_id[0x18];
4573290650Shselasky
4574290650Shselasky	u8         reserved_6[0x140];
4575290650Shselasky};
4576290650Shselasky
4577290650Shselaskystruct mlx5_ifc_query_fte_out_bits {
4578290650Shselasky	u8         status[0x8];
4579290650Shselasky	u8         reserved_0[0x18];
4580290650Shselasky
4581290650Shselasky	u8         syndrome[0x20];
4582290650Shselasky
4583290650Shselasky	u8         reserved_1[0x1c0];
4584290650Shselasky
4585290650Shselasky	struct mlx5_ifc_flow_context_bits flow_context;
4586290650Shselasky};
4587290650Shselasky
4588290650Shselaskystruct mlx5_ifc_query_fte_in_bits {
4589290650Shselasky	u8         opcode[0x10];
4590290650Shselasky	u8         reserved_0[0x10];
4591290650Shselasky
4592290650Shselasky	u8         reserved_1[0x10];
4593290650Shselasky	u8         op_mod[0x10];
4594290650Shselasky
4595290650Shselasky	u8         other_vport[0x1];
4596290650Shselasky	u8         reserved_2[0xf];
4597290650Shselasky	u8         vport_number[0x10];
4598290650Shselasky
4599290650Shselasky	u8         reserved_3[0x20];
4600290650Shselasky
4601290650Shselasky	u8         table_type[0x8];
4602290650Shselasky	u8         reserved_4[0x18];
4603290650Shselasky
4604290650Shselasky	u8         reserved_5[0x8];
4605290650Shselasky	u8         table_id[0x18];
4606290650Shselasky
4607290650Shselasky	u8         reserved_6[0x40];
4608290650Shselasky
4609290650Shselasky	u8         flow_index[0x20];
4610290650Shselasky
4611290650Shselasky	u8         reserved_7[0xe0];
4612290650Shselasky};
4613290650Shselasky
4614290650Shselaskyenum {
4615290650Shselasky	MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_OUTER_HEADERS    = 0x0,
4616290650Shselasky	MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS  = 0x1,
4617290650Shselasky	MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_INNER_HEADERS    = 0x2,
4618290650Shselasky};
4619290650Shselasky
4620290650Shselaskystruct mlx5_ifc_query_flow_group_out_bits {
4621290650Shselasky	u8         status[0x8];
4622290650Shselasky	u8         reserved_0[0x18];
4623290650Shselasky
4624290650Shselasky	u8         syndrome[0x20];
4625290650Shselasky
4626290650Shselasky	u8         reserved_1[0xa0];
4627290650Shselasky
4628290650Shselasky	u8         start_flow_index[0x20];
4629290650Shselasky
4630290650Shselasky	u8         reserved_2[0x20];
4631290650Shselasky
4632290650Shselasky	u8         end_flow_index[0x20];
4633290650Shselasky
4634290650Shselasky	u8         reserved_3[0xa0];
4635290650Shselasky
4636290650Shselasky	u8         reserved_4[0x18];
4637290650Shselasky	u8         match_criteria_enable[0x8];
4638290650Shselasky
4639290650Shselasky	struct mlx5_ifc_fte_match_param_bits match_criteria;
4640290650Shselasky
4641290650Shselasky	u8         reserved_5[0xe00];
4642290650Shselasky};
4643290650Shselasky
4644290650Shselaskystruct mlx5_ifc_query_flow_group_in_bits {
4645290650Shselasky	u8         opcode[0x10];
4646290650Shselasky	u8         reserved_0[0x10];
4647290650Shselasky
4648290650Shselasky	u8         reserved_1[0x10];
4649290650Shselasky	u8         op_mod[0x10];
4650290650Shselasky
4651290650Shselasky	u8         other_vport[0x1];
4652290650Shselasky	u8         reserved_2[0xf];
4653290650Shselasky	u8         vport_number[0x10];
4654290650Shselasky
4655290650Shselasky	u8         reserved_3[0x20];
4656290650Shselasky
4657290650Shselasky	u8         table_type[0x8];
4658290650Shselasky	u8         reserved_4[0x18];
4659290650Shselasky
4660290650Shselasky	u8         reserved_5[0x8];
4661290650Shselasky	u8         table_id[0x18];
4662290650Shselasky
4663290650Shselasky	u8         group_id[0x20];
4664290650Shselasky
4665290650Shselasky	u8         reserved_6[0x120];
4666290650Shselasky};
4667290650Shselasky
4668290650Shselaskystruct mlx5_ifc_query_flow_counter_out_bits {
4669290650Shselasky	u8         status[0x8];
4670329204Shselasky	u8         reserved_at_8[0x18];
4671290650Shselasky
4672290650Shselasky	u8         syndrome[0x20];
4673290650Shselasky
4674329204Shselasky	u8         reserved_at_40[0x40];
4675290650Shselasky
4676329204Shselasky	struct mlx5_ifc_traffic_counter_bits flow_statistics[0];
4677290650Shselasky};
4678290650Shselasky
4679290650Shselaskystruct mlx5_ifc_query_flow_counter_in_bits {
4680290650Shselasky	u8         opcode[0x10];
4681329204Shselasky	u8         reserved_at_10[0x10];
4682290650Shselasky
4683329204Shselasky	u8         reserved_at_20[0x10];
4684290650Shselasky	u8         op_mod[0x10];
4685290650Shselasky
4686329204Shselasky	u8         reserved_at_40[0x80];
4687290650Shselasky
4688290650Shselasky	u8         clear[0x1];
4689329204Shselasky	u8         reserved_at_c1[0xf];
4690329204Shselasky	u8         num_of_counters[0x10];
4691290650Shselasky
4692329204Shselasky	u8         reserved_at_e0[0x10];
4693290650Shselasky	u8         flow_counter_id[0x10];
4694290650Shselasky};
4695290650Shselasky
4696290650Shselaskystruct mlx5_ifc_query_esw_vport_context_out_bits {
4697290650Shselasky	u8         status[0x8];
4698290650Shselasky	u8         reserved_0[0x18];
4699290650Shselasky
4700290650Shselasky	u8         syndrome[0x20];
4701290650Shselasky
4702290650Shselasky	u8         reserved_1[0x40];
4703290650Shselasky
4704290650Shselasky	struct mlx5_ifc_esw_vport_context_bits esw_vport_context;
4705290650Shselasky};
4706290650Shselasky
4707290650Shselaskystruct mlx5_ifc_query_esw_vport_context_in_bits {
4708290650Shselasky	u8         opcode[0x10];
4709290650Shselasky	u8         reserved_0[0x10];
4710290650Shselasky
4711290650Shselasky	u8         reserved_1[0x10];
4712290650Shselasky	u8         op_mod[0x10];
4713290650Shselasky
4714290650Shselasky	u8         other_vport[0x1];
4715290650Shselasky	u8         reserved_2[0xf];
4716290650Shselasky	u8         vport_number[0x10];
4717290650Shselasky
4718290650Shselasky	u8         reserved_3[0x20];
4719290650Shselasky};
4720290650Shselasky
4721290650Shselaskystruct mlx5_ifc_query_eq_out_bits {
4722290650Shselasky	u8         status[0x8];
4723290650Shselasky	u8         reserved_0[0x18];
4724290650Shselasky
4725290650Shselasky	u8         syndrome[0x20];
4726290650Shselasky
4727290650Shselasky	u8         reserved_1[0x40];
4728290650Shselasky
4729290650Shselasky	struct mlx5_ifc_eqc_bits eq_context_entry;
4730290650Shselasky
4731290650Shselasky	u8         reserved_2[0x40];
4732290650Shselasky
4733290650Shselasky	u8         event_bitmask[0x40];
4734290650Shselasky
4735290650Shselasky	u8         reserved_3[0x580];
4736290650Shselasky
4737290650Shselasky	u8         pas[0][0x40];
4738290650Shselasky};
4739290650Shselasky
4740290650Shselaskystruct mlx5_ifc_query_eq_in_bits {
4741290650Shselasky	u8         opcode[0x10];
4742290650Shselasky	u8         reserved_0[0x10];
4743290650Shselasky
4744290650Shselasky	u8         reserved_1[0x10];
4745290650Shselasky	u8         op_mod[0x10];
4746290650Shselasky
4747290650Shselasky	u8         reserved_2[0x18];
4748290650Shselasky	u8         eq_number[0x8];
4749290650Shselasky
4750290650Shselasky	u8         reserved_3[0x20];
4751290650Shselasky};
4752290650Shselasky
4753290650Shselaskystruct mlx5_ifc_query_dct_out_bits {
4754290650Shselasky	u8         status[0x8];
4755290650Shselasky	u8         reserved_0[0x18];
4756290650Shselasky
4757290650Shselasky	u8         syndrome[0x20];
4758290650Shselasky
4759290650Shselasky	u8         reserved_1[0x40];
4760290650Shselasky
4761290650Shselasky	struct mlx5_ifc_dctc_bits dct_context_entry;
4762290650Shselasky
4763290650Shselasky	u8         reserved_2[0x180];
4764290650Shselasky};
4765290650Shselasky
4766290650Shselaskystruct mlx5_ifc_query_dct_in_bits {
4767290650Shselasky	u8         opcode[0x10];
4768290650Shselasky	u8         reserved_0[0x10];
4769290650Shselasky
4770290650Shselasky	u8         reserved_1[0x10];
4771290650Shselasky	u8         op_mod[0x10];
4772290650Shselasky
4773290650Shselasky	u8         reserved_2[0x8];
4774290650Shselasky	u8         dctn[0x18];
4775290650Shselasky
4776290650Shselasky	u8         reserved_3[0x20];
4777290650Shselasky};
4778290650Shselasky
4779290650Shselaskystruct mlx5_ifc_query_dc_cnak_trace_out_bits {
4780290650Shselasky	u8         status[0x8];
4781290650Shselasky	u8         reserved_0[0x18];
4782290650Shselasky
4783290650Shselasky	u8         syndrome[0x20];
4784290650Shselasky
4785290650Shselasky	u8         enable[0x1];
4786290650Shselasky	u8         reserved_1[0x1f];
4787290650Shselasky
4788290650Shselasky	u8         reserved_2[0x160];
4789290650Shselasky
4790290650Shselasky	struct mlx5_ifc_cmd_pas_bits pas;
4791290650Shselasky};
4792290650Shselasky
4793290650Shselaskystruct mlx5_ifc_query_dc_cnak_trace_in_bits {
4794290650Shselasky	u8         opcode[0x10];
4795290650Shselasky	u8         reserved_0[0x10];
4796290650Shselasky
4797290650Shselasky	u8         reserved_1[0x10];
4798290650Shselasky	u8         op_mod[0x10];
4799290650Shselasky
4800290650Shselasky	u8         reserved_2[0x40];
4801290650Shselasky};
4802290650Shselasky
4803290650Shselaskystruct mlx5_ifc_query_cq_out_bits {
4804290650Shselasky	u8         status[0x8];
4805290650Shselasky	u8         reserved_0[0x18];
4806290650Shselasky
4807290650Shselasky	u8         syndrome[0x20];
4808290650Shselasky
4809290650Shselasky	u8         reserved_1[0x40];
4810290650Shselasky
4811290650Shselasky	struct mlx5_ifc_cqc_bits cq_context;
4812290650Shselasky
4813290650Shselasky	u8         reserved_2[0x600];
4814290650Shselasky
4815290650Shselasky	u8         pas[0][0x40];
4816290650Shselasky};
4817290650Shselasky
4818290650Shselaskystruct mlx5_ifc_query_cq_in_bits {
4819290650Shselasky	u8         opcode[0x10];
4820290650Shselasky	u8         reserved_0[0x10];
4821290650Shselasky
4822290650Shselasky	u8         reserved_1[0x10];
4823290650Shselasky	u8         op_mod[0x10];
4824290650Shselasky
4825290650Shselasky	u8         reserved_2[0x8];
4826290650Shselasky	u8         cqn[0x18];
4827290650Shselasky
4828290650Shselasky	u8         reserved_3[0x20];
4829290650Shselasky};
4830290650Shselasky
4831290650Shselaskystruct mlx5_ifc_query_cong_status_out_bits {
4832290650Shselasky	u8         status[0x8];
4833290650Shselasky	u8         reserved_0[0x18];
4834290650Shselasky
4835290650Shselasky	u8         syndrome[0x20];
4836290650Shselasky
4837290650Shselasky	u8         reserved_1[0x20];
4838290650Shselasky
4839290650Shselasky	u8         enable[0x1];
4840290650Shselasky	u8         tag_enable[0x1];
4841290650Shselasky	u8         reserved_2[0x1e];
4842290650Shselasky};
4843290650Shselasky
4844290650Shselaskystruct mlx5_ifc_query_cong_status_in_bits {
4845290650Shselasky	u8         opcode[0x10];
4846290650Shselasky	u8         reserved_0[0x10];
4847290650Shselasky
4848290650Shselasky	u8         reserved_1[0x10];
4849290650Shselasky	u8         op_mod[0x10];
4850290650Shselasky
4851290650Shselasky	u8         reserved_2[0x18];
4852290650Shselasky	u8         priority[0x4];
4853290650Shselasky	u8         cong_protocol[0x4];
4854290650Shselasky
4855290650Shselasky	u8         reserved_3[0x20];
4856290650Shselasky};
4857290650Shselasky
4858290650Shselaskystruct mlx5_ifc_query_cong_statistics_out_bits {
4859290650Shselasky	u8         status[0x8];
4860290650Shselasky	u8         reserved_0[0x18];
4861290650Shselasky
4862290650Shselasky	u8         syndrome[0x20];
4863290650Shselasky
4864290650Shselasky	u8         reserved_1[0x40];
4865290650Shselasky
4866290650Shselasky	u8         cur_flows[0x20];
4867290650Shselasky
4868290650Shselasky	u8         sum_flows[0x20];
4869290650Shselasky
4870290650Shselasky	u8         cnp_ignored_high[0x20];
4871290650Shselasky
4872290650Shselasky	u8         cnp_ignored_low[0x20];
4873290650Shselasky
4874290650Shselasky	u8         cnp_handled_high[0x20];
4875290650Shselasky
4876290650Shselasky	u8         cnp_handled_low[0x20];
4877290650Shselasky
4878290650Shselasky	u8         reserved_2[0x100];
4879290650Shselasky
4880290650Shselasky	u8         time_stamp_high[0x20];
4881290650Shselasky
4882290650Shselasky	u8         time_stamp_low[0x20];
4883290650Shselasky
4884290650Shselasky	u8         accumulators_period[0x20];
4885290650Shselasky
4886290650Shselasky	u8         ecn_marked_roce_packets_high[0x20];
4887290650Shselasky
4888290650Shselasky	u8         ecn_marked_roce_packets_low[0x20];
4889290650Shselasky
4890290650Shselasky	u8         cnps_sent_high[0x20];
4891290650Shselasky
4892290650Shselasky	u8         cnps_sent_low[0x20];
4893290650Shselasky
4894290650Shselasky	u8         reserved_3[0x560];
4895290650Shselasky};
4896290650Shselasky
4897290650Shselaskystruct mlx5_ifc_query_cong_statistics_in_bits {
4898290650Shselasky	u8         opcode[0x10];
4899290650Shselasky	u8         reserved_0[0x10];
4900290650Shselasky
4901290650Shselasky	u8         reserved_1[0x10];
4902290650Shselasky	u8         op_mod[0x10];
4903290650Shselasky
4904290650Shselasky	u8         clear[0x1];
4905290650Shselasky	u8         reserved_2[0x1f];
4906290650Shselasky
4907290650Shselasky	u8         reserved_3[0x20];
4908290650Shselasky};
4909290650Shselasky
4910290650Shselaskystruct mlx5_ifc_query_cong_params_out_bits {
4911290650Shselasky	u8         status[0x8];
4912290650Shselasky	u8         reserved_0[0x18];
4913290650Shselasky
4914290650Shselasky	u8         syndrome[0x20];
4915290650Shselasky
4916290650Shselasky	u8         reserved_1[0x40];
4917290650Shselasky
4918290650Shselasky	union mlx5_ifc_cong_control_roce_ecn_auto_bits congestion_parameters;
4919290650Shselasky};
4920290650Shselasky
4921290650Shselaskystruct mlx5_ifc_query_cong_params_in_bits {
4922290650Shselasky	u8         opcode[0x10];
4923290650Shselasky	u8         reserved_0[0x10];
4924290650Shselasky
4925290650Shselasky	u8         reserved_1[0x10];
4926290650Shselasky	u8         op_mod[0x10];
4927290650Shselasky
4928290650Shselasky	u8         reserved_2[0x1c];
4929290650Shselasky	u8         cong_protocol[0x4];
4930290650Shselasky
4931290650Shselasky	u8         reserved_3[0x20];
4932290650Shselasky};
4933290650Shselasky
4934290650Shselaskystruct mlx5_ifc_query_burst_size_out_bits {
4935290650Shselasky	u8         status[0x8];
4936290650Shselasky	u8         reserved_0[0x18];
4937290650Shselasky
4938290650Shselasky	u8         syndrome[0x20];
4939290650Shselasky
4940290650Shselasky	u8         reserved_1[0x20];
4941290650Shselasky
4942290650Shselasky	u8         reserved_2[0x9];
4943290650Shselasky	u8         device_burst_size[0x17];
4944290650Shselasky};
4945290650Shselasky
4946290650Shselaskystruct mlx5_ifc_query_burst_size_in_bits {
4947290650Shselasky	u8         opcode[0x10];
4948290650Shselasky	u8         reserved_0[0x10];
4949290650Shselasky
4950290650Shselasky	u8         reserved_1[0x10];
4951290650Shselasky	u8         op_mod[0x10];
4952290650Shselasky
4953290650Shselasky	u8         reserved_2[0x40];
4954290650Shselasky};
4955290650Shselasky
4956290650Shselaskystruct mlx5_ifc_query_adapter_out_bits {
4957290650Shselasky	u8         status[0x8];
4958290650Shselasky	u8         reserved_0[0x18];
4959290650Shselasky
4960290650Shselasky	u8         syndrome[0x20];
4961290650Shselasky
4962290650Shselasky	u8         reserved_1[0x40];
4963290650Shselasky
4964290650Shselasky	struct mlx5_ifc_query_adapter_param_block_bits query_adapter_struct;
4965290650Shselasky};
4966290650Shselasky
4967290650Shselaskystruct mlx5_ifc_query_adapter_in_bits {
4968290650Shselasky	u8         opcode[0x10];
4969290650Shselasky	u8         reserved_0[0x10];
4970290650Shselasky
4971290650Shselasky	u8         reserved_1[0x10];
4972290650Shselasky	u8         op_mod[0x10];
4973290650Shselasky
4974290650Shselasky	u8         reserved_2[0x40];
4975290650Shselasky};
4976290650Shselasky
4977290650Shselaskystruct mlx5_ifc_qp_2rst_out_bits {
4978290650Shselasky	u8         status[0x8];
4979290650Shselasky	u8         reserved_0[0x18];
4980290650Shselasky
4981290650Shselasky	u8         syndrome[0x20];
4982290650Shselasky
4983290650Shselasky	u8         reserved_1[0x40];
4984290650Shselasky};
4985290650Shselasky
4986290650Shselaskystruct mlx5_ifc_qp_2rst_in_bits {
4987290650Shselasky	u8         opcode[0x10];
4988290650Shselasky	u8         reserved_0[0x10];
4989290650Shselasky
4990290650Shselasky	u8         reserved_1[0x10];
4991290650Shselasky	u8         op_mod[0x10];
4992290650Shselasky
4993290650Shselasky	u8         reserved_2[0x8];
4994290650Shselasky	u8         qpn[0x18];
4995290650Shselasky
4996290650Shselasky	u8         reserved_3[0x20];
4997290650Shselasky};
4998290650Shselasky
4999290650Shselaskystruct mlx5_ifc_qp_2err_out_bits {
5000290650Shselasky	u8         status[0x8];
5001290650Shselasky	u8         reserved_0[0x18];
5002290650Shselasky
5003290650Shselasky	u8         syndrome[0x20];
5004290650Shselasky
5005290650Shselasky	u8         reserved_1[0x40];
5006290650Shselasky};
5007290650Shselasky
5008290650Shselaskystruct mlx5_ifc_qp_2err_in_bits {
5009290650Shselasky	u8         opcode[0x10];
5010290650Shselasky	u8         reserved_0[0x10];
5011290650Shselasky
5012290650Shselasky	u8         reserved_1[0x10];
5013290650Shselasky	u8         op_mod[0x10];
5014290650Shselasky
5015290650Shselasky	u8         reserved_2[0x8];
5016290650Shselasky	u8         qpn[0x18];
5017290650Shselasky
5018290650Shselasky	u8         reserved_3[0x20];
5019290650Shselasky};
5020290650Shselasky
5021308678Shselaskystruct mlx5_ifc_para_vport_element_bits {
5022308678Shselasky	u8         reserved_at_0[0xc];
5023308678Shselasky	u8         traffic_class[0x4];
5024308678Shselasky	u8         qos_para_vport_number[0x10];
5025308678Shselasky};
5026308678Shselasky
5027290650Shselaskystruct mlx5_ifc_page_fault_resume_out_bits {
5028290650Shselasky	u8         status[0x8];
5029290650Shselasky	u8         reserved_0[0x18];
5030290650Shselasky
5031290650Shselasky	u8         syndrome[0x20];
5032290650Shselasky
5033290650Shselasky	u8         reserved_1[0x40];
5034290650Shselasky};
5035290650Shselasky
5036290650Shselaskystruct mlx5_ifc_page_fault_resume_in_bits {
5037290650Shselasky	u8         opcode[0x10];
5038290650Shselasky	u8         reserved_0[0x10];
5039290650Shselasky
5040290650Shselasky	u8         reserved_1[0x10];
5041290650Shselasky	u8         op_mod[0x10];
5042290650Shselasky
5043290650Shselasky	u8         error[0x1];
5044290650Shselasky	u8         reserved_2[0x4];
5045290650Shselasky	u8         rdma[0x1];
5046290650Shselasky	u8         read_write[0x1];
5047290650Shselasky	u8         req_res[0x1];
5048290650Shselasky	u8         qpn[0x18];
5049290650Shselasky
5050290650Shselasky	u8         reserved_3[0x20];
5051290650Shselasky};
5052290650Shselasky
5053290650Shselaskystruct mlx5_ifc_nop_out_bits {
5054290650Shselasky	u8         status[0x8];
5055290650Shselasky	u8         reserved_0[0x18];
5056290650Shselasky
5057290650Shselasky	u8         syndrome[0x20];
5058290650Shselasky
5059290650Shselasky	u8         reserved_1[0x40];
5060290650Shselasky};
5061290650Shselasky
5062290650Shselaskystruct mlx5_ifc_nop_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_modify_vport_state_out_bits {
5073290650Shselasky	u8         status[0x8];
5074290650Shselasky	u8         reserved_0[0x18];
5075290650Shselasky
5076290650Shselasky	u8         syndrome[0x20];
5077290650Shselasky
5078290650Shselasky	u8         reserved_1[0x40];
5079290650Shselasky};
5080290650Shselasky
5081290650Shselaskyenum {
5082290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_OP_MOD_NIC_VPORT  = 0x0,
5083290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_OP_MOD_ESW_VPORT  = 0x1,
5084290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_OP_MOD_UPLINK     = 0x2,
5085290650Shselasky};
5086290650Shselasky
5087290650Shselaskyenum {
5088290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_ADMIN_STATE_DOWN    = 0x0,
5089290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_ADMIN_STATE_UP      = 0x1,
5090290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_ADMIN_STATE_FOLLOW  = 0x2,
5091290650Shselasky};
5092290650Shselasky
5093290650Shselaskystruct mlx5_ifc_modify_vport_state_in_bits {
5094290650Shselasky	u8         opcode[0x10];
5095290650Shselasky	u8         reserved_0[0x10];
5096290650Shselasky
5097290650Shselasky	u8         reserved_1[0x10];
5098290650Shselasky	u8         op_mod[0x10];
5099290650Shselasky
5100290650Shselasky	u8         other_vport[0x1];
5101290650Shselasky	u8         reserved_2[0xf];
5102290650Shselasky	u8         vport_number[0x10];
5103290650Shselasky
5104290650Shselasky	u8         reserved_3[0x18];
5105290650Shselasky	u8         admin_state[0x4];
5106290650Shselasky	u8         reserved_4[0x4];
5107290650Shselasky};
5108290650Shselasky
5109290650Shselaskystruct mlx5_ifc_modify_tis_out_bits {
5110290650Shselasky	u8         status[0x8];
5111290650Shselasky	u8         reserved_0[0x18];
5112290650Shselasky
5113290650Shselasky	u8         syndrome[0x20];
5114290650Shselasky
5115290650Shselasky	u8         reserved_1[0x40];
5116290650Shselasky};
5117290650Shselasky
5118329204Shselaskystruct mlx5_ifc_modify_tis_bitmask_bits {
5119329204Shselasky	u8         reserved_at_0[0x20];
5120329204Shselasky
5121329204Shselasky	u8         reserved_at_20[0x1d];
5122329204Shselasky	u8         lag_tx_port_affinity[0x1];
5123329204Shselasky	u8         strict_lag_tx_port_affinity[0x1];
5124329204Shselasky	u8         prio[0x1];
5125329204Shselasky};
5126329204Shselasky
5127290650Shselaskystruct mlx5_ifc_modify_tis_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         tisn[0x18];
5136290650Shselasky
5137290650Shselasky	u8         reserved_3[0x20];
5138290650Shselasky
5139329204Shselasky	struct mlx5_ifc_modify_tis_bitmask_bits bitmask;
5140290650Shselasky
5141290650Shselasky	u8         reserved_4[0x40];
5142290650Shselasky
5143290650Shselasky	struct mlx5_ifc_tisc_bits ctx;
5144290650Shselasky};
5145290650Shselasky
5146290650Shselaskystruct mlx5_ifc_modify_tir_out_bits {
5147290650Shselasky	u8         status[0x8];
5148290650Shselasky	u8         reserved_0[0x18];
5149290650Shselasky
5150290650Shselasky	u8         syndrome[0x20];
5151290650Shselasky
5152290650Shselasky	u8         reserved_1[0x40];
5153290650Shselasky};
5154290650Shselasky
5155308678Shselaskyenum
5156308678Shselasky{
5157308678Shselasky	MLX5_MODIFY_SQ_BITMASK_PACKET_PACING_RATE_LIMIT_INDEX = 0x1 << 0,
5158308678Shselasky	MLX5_MODIFY_SQ_BITMASK_QOS_PARA_VPORT_NUMBER =		0x1 << 1
5159308678Shselasky};
5160308678Shselasky
5161290650Shselaskystruct mlx5_ifc_modify_tir_in_bits {
5162290650Shselasky	u8         opcode[0x10];
5163290650Shselasky	u8         reserved_0[0x10];
5164290650Shselasky
5165290650Shselasky	u8         reserved_1[0x10];
5166290650Shselasky	u8         op_mod[0x10];
5167290650Shselasky
5168290650Shselasky	u8         reserved_2[0x8];
5169290650Shselasky	u8         tirn[0x18];
5170290650Shselasky
5171290650Shselasky	u8         reserved_3[0x20];
5172290650Shselasky
5173290650Shselasky	u8         modify_bitmask[0x40];
5174290650Shselasky
5175290650Shselasky	u8         reserved_4[0x40];
5176290650Shselasky
5177290650Shselasky	struct mlx5_ifc_tirc_bits tir_context;
5178290650Shselasky};
5179290650Shselasky
5180290650Shselaskystruct mlx5_ifc_modify_sq_out_bits {
5181290650Shselasky	u8         status[0x8];
5182290650Shselasky	u8         reserved_0[0x18];
5183290650Shselasky
5184290650Shselasky	u8         syndrome[0x20];
5185290650Shselasky
5186290650Shselasky	u8         reserved_1[0x40];
5187290650Shselasky};
5188290650Shselasky
5189290650Shselaskystruct mlx5_ifc_modify_sq_in_bits {
5190290650Shselasky	u8         opcode[0x10];
5191290650Shselasky	u8         reserved_0[0x10];
5192290650Shselasky
5193290650Shselasky	u8         reserved_1[0x10];
5194290650Shselasky	u8         op_mod[0x10];
5195290650Shselasky
5196290650Shselasky	u8         sq_state[0x4];
5197290650Shselasky	u8         reserved_2[0x4];
5198290650Shselasky	u8         sqn[0x18];
5199290650Shselasky
5200290650Shselasky	u8         reserved_3[0x20];
5201290650Shselasky
5202290650Shselasky	u8         modify_bitmask[0x40];
5203290650Shselasky
5204290650Shselasky	u8         reserved_4[0x40];
5205290650Shselasky
5206290650Shselasky	struct mlx5_ifc_sqc_bits ctx;
5207290650Shselasky};
5208290650Shselasky
5209308678Shselaskystruct mlx5_ifc_modify_scheduling_element_out_bits {
5210308678Shselasky	u8         status[0x8];
5211308678Shselasky	u8         reserved_at_8[0x18];
5212308678Shselasky
5213308678Shselasky	u8         syndrome[0x20];
5214308678Shselasky
5215308678Shselasky	u8         reserved_at_40[0x1c0];
5216308678Shselasky};
5217308678Shselasky
5218308678Shselaskyenum {
5219308678Shselasky	MLX5_MODIFY_SCHEDULING_ELEMENT_IN_SCHEDULING_HIERARCHY_E_SWITCH  = 0x2,
5220308678Shselasky};
5221308678Shselasky
5222308678Shselaskyenum {
5223308678Shselasky	MLX5_MODIFY_SCHEDULING_ELEMENT_BITMASK_BW_SHARE        = 0x1,
5224308678Shselasky	MLX5_MODIFY_SCHEDULING_ELEMENT_BITMASK_MAX_AVERAGE_BW  = 0x2,
5225308678Shselasky};
5226308678Shselasky
5227308678Shselaskystruct mlx5_ifc_modify_scheduling_element_in_bits {
5228308678Shselasky	u8         opcode[0x10];
5229308678Shselasky	u8         reserved_at_10[0x10];
5230308678Shselasky
5231308678Shselasky	u8         reserved_at_20[0x10];
5232308678Shselasky	u8         op_mod[0x10];
5233308678Shselasky
5234308678Shselasky	u8         scheduling_hierarchy[0x8];
5235308678Shselasky	u8         reserved_at_48[0x18];
5236308678Shselasky
5237308678Shselasky	u8         scheduling_element_id[0x20];
5238308678Shselasky
5239308678Shselasky	u8         reserved_at_80[0x20];
5240308678Shselasky
5241308678Shselasky	u8         modify_bitmask[0x20];
5242308678Shselasky
5243308678Shselasky	u8         reserved_at_c0[0x40];
5244308678Shselasky
5245308678Shselasky	struct mlx5_ifc_scheduling_context_bits scheduling_context;
5246308678Shselasky
5247308678Shselasky	u8         reserved_at_300[0x100];
5248308678Shselasky};
5249308678Shselasky
5250290650Shselaskystruct mlx5_ifc_modify_rqt_out_bits {
5251290650Shselasky	u8         status[0x8];
5252290650Shselasky	u8         reserved_0[0x18];
5253290650Shselasky
5254290650Shselasky	u8         syndrome[0x20];
5255290650Shselasky
5256290650Shselasky	u8         reserved_1[0x40];
5257290650Shselasky};
5258290650Shselasky
5259290650Shselaskystruct mlx5_ifc_modify_rqt_in_bits {
5260290650Shselasky	u8         opcode[0x10];
5261290650Shselasky	u8         reserved_0[0x10];
5262290650Shselasky
5263290650Shselasky	u8         reserved_1[0x10];
5264290650Shselasky	u8         op_mod[0x10];
5265290650Shselasky
5266290650Shselasky	u8         reserved_2[0x8];
5267290650Shselasky	u8         rqtn[0x18];
5268290650Shselasky
5269290650Shselasky	u8         reserved_3[0x20];
5270290650Shselasky
5271290650Shselasky	u8         modify_bitmask[0x40];
5272290650Shselasky
5273290650Shselasky	u8         reserved_4[0x40];
5274290650Shselasky
5275290650Shselasky	struct mlx5_ifc_rqtc_bits ctx;
5276290650Shselasky};
5277290650Shselasky
5278290650Shselaskystruct mlx5_ifc_modify_rq_out_bits {
5279290650Shselasky	u8         status[0x8];
5280290650Shselasky	u8         reserved_0[0x18];
5281290650Shselasky
5282290650Shselasky	u8         syndrome[0x20];
5283290650Shselasky
5284290650Shselasky	u8         reserved_1[0x40];
5285290650Shselasky};
5286290650Shselasky
5287329204Shselaskyenum {
5288329204Shselasky	MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_VSD = 1ULL << 1,
5289329204Shselasky	MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_MODIFY_RQ_COUNTER_SET_ID = 1ULL << 3,
5290306233Shselasky};
5291306233Shselasky
5292290650Shselaskystruct mlx5_ifc_modify_rq_in_bits {
5293290650Shselasky	u8         opcode[0x10];
5294290650Shselasky	u8         reserved_0[0x10];
5295290650Shselasky
5296290650Shselasky	u8         reserved_1[0x10];
5297290650Shselasky	u8         op_mod[0x10];
5298290650Shselasky
5299290650Shselasky	u8         rq_state[0x4];
5300290650Shselasky	u8         reserved_2[0x4];
5301290650Shselasky	u8         rqn[0x18];
5302290650Shselasky
5303290650Shselasky	u8         reserved_3[0x20];
5304290650Shselasky
5305329204Shselasky	u8         modify_bitmask[0x40];
5306290650Shselasky
5307290650Shselasky	u8         reserved_4[0x40];
5308290650Shselasky
5309290650Shselasky	struct mlx5_ifc_rqc_bits ctx;
5310290650Shselasky};
5311290650Shselasky
5312290650Shselaskystruct mlx5_ifc_modify_rmp_out_bits {
5313290650Shselasky	u8         status[0x8];
5314290650Shselasky	u8         reserved_0[0x18];
5315290650Shselasky
5316290650Shselasky	u8         syndrome[0x20];
5317290650Shselasky
5318290650Shselasky	u8         reserved_1[0x40];
5319290650Shselasky};
5320290650Shselasky
5321290650Shselaskystruct mlx5_ifc_rmp_bitmask_bits {
5322290650Shselasky	u8	   reserved[0x20];
5323290650Shselasky
5324290650Shselasky	u8         reserved1[0x1f];
5325290650Shselasky	u8         lwm[0x1];
5326290650Shselasky};
5327290650Shselasky
5328290650Shselaskystruct mlx5_ifc_modify_rmp_in_bits {
5329290650Shselasky	u8         opcode[0x10];
5330290650Shselasky	u8         reserved_0[0x10];
5331290650Shselasky
5332290650Shselasky	u8         reserved_1[0x10];
5333290650Shselasky	u8         op_mod[0x10];
5334290650Shselasky
5335290650Shselasky	u8         rmp_state[0x4];
5336290650Shselasky	u8         reserved_2[0x4];
5337290650Shselasky	u8         rmpn[0x18];
5338290650Shselasky
5339290650Shselasky	u8         reserved_3[0x20];
5340290650Shselasky
5341290650Shselasky	struct mlx5_ifc_rmp_bitmask_bits bitmask;
5342290650Shselasky
5343290650Shselasky	u8         reserved_4[0x40];
5344290650Shselasky
5345290650Shselasky	struct mlx5_ifc_rmpc_bits ctx;
5346290650Shselasky};
5347290650Shselasky
5348290650Shselaskystruct mlx5_ifc_modify_nic_vport_context_out_bits {
5349290650Shselasky	u8         status[0x8];
5350290650Shselasky	u8         reserved_0[0x18];
5351290650Shselasky
5352290650Shselasky	u8         syndrome[0x20];
5353290650Shselasky
5354290650Shselasky	u8         reserved_1[0x40];
5355290650Shselasky};
5356290650Shselasky
5357290650Shselaskystruct mlx5_ifc_modify_nic_vport_field_select_bits {
5358321992Shselasky	u8         reserved_0[0x14];
5359321992Shselasky	u8         disable_uc_local_lb[0x1];
5360321992Shselasky	u8         disable_mc_local_lb[0x1];
5361306233Shselasky	u8         node_guid[0x1];
5362306233Shselasky	u8         port_guid[0x1];
5363290650Shselasky	u8         min_wqe_inline_mode[0x1];
5364290650Shselasky	u8         mtu[0x1];
5365290650Shselasky	u8         change_event[0x1];
5366290650Shselasky	u8         promisc[0x1];
5367290650Shselasky	u8         permanent_address[0x1];
5368290650Shselasky	u8         addresses_list[0x1];
5369290650Shselasky	u8         roce_en[0x1];
5370290650Shselasky	u8         reserved_1[0x1];
5371290650Shselasky};
5372290650Shselasky
5373290650Shselaskystruct mlx5_ifc_modify_nic_vport_context_in_bits {
5374290650Shselasky	u8         opcode[0x10];
5375290650Shselasky	u8         reserved_0[0x10];
5376290650Shselasky
5377290650Shselasky	u8         reserved_1[0x10];
5378290650Shselasky	u8         op_mod[0x10];
5379290650Shselasky
5380290650Shselasky	u8         other_vport[0x1];
5381290650Shselasky	u8         reserved_2[0xf];
5382290650Shselasky	u8         vport_number[0x10];
5383290650Shselasky
5384290650Shselasky	struct mlx5_ifc_modify_nic_vport_field_select_bits field_select;
5385290650Shselasky
5386290650Shselasky	u8         reserved_3[0x780];
5387290650Shselasky
5388290650Shselasky	struct mlx5_ifc_nic_vport_context_bits nic_vport_context;
5389290650Shselasky};
5390290650Shselasky
5391290650Shselaskystruct mlx5_ifc_modify_hca_vport_context_out_bits {
5392290650Shselasky	u8         status[0x8];
5393290650Shselasky	u8         reserved_0[0x18];
5394290650Shselasky
5395290650Shselasky	u8         syndrome[0x20];
5396290650Shselasky
5397290650Shselasky	u8         reserved_1[0x40];
5398290650Shselasky};
5399290650Shselasky
5400306233Shselaskystruct mlx5_ifc_grh_bits {
5401306233Shselasky	u8	ip_version[4];
5402306233Shselasky	u8	traffic_class[8];
5403306233Shselasky	u8	flow_label[20];
5404306233Shselasky	u8	payload_length[16];
5405306233Shselasky	u8	next_header[8];
5406306233Shselasky	u8	hop_limit[8];
5407306233Shselasky	u8	sgid[128];
5408306233Shselasky	u8	dgid[128];
5409306233Shselasky};
5410306233Shselasky
5411306233Shselaskystruct mlx5_ifc_bth_bits {
5412306233Shselasky	u8	opcode[8];
5413306233Shselasky	u8	se[1];
5414306233Shselasky	u8	migreq[1];
5415306233Shselasky	u8	pad_count[2];
5416306233Shselasky	u8	tver[4];
5417306233Shselasky	u8	p_key[16];
5418306233Shselasky	u8	reserved8[8];
5419306233Shselasky	u8	dest_qp[24];
5420306233Shselasky	u8	ack_req[1];
5421306233Shselasky	u8	reserved7[7];
5422306233Shselasky	u8	psn[24];
5423306233Shselasky};
5424306233Shselasky
5425306233Shselaskystruct mlx5_ifc_aeth_bits {
5426306233Shselasky	u8	syndrome[8];
5427306233Shselasky	u8	msn[24];
5428306233Shselasky};
5429306233Shselasky
5430306233Shselaskystruct mlx5_ifc_dceth_bits {
5431306233Shselasky	u8	reserved0[8];
5432306233Shselasky	u8	session_id[24];
5433306233Shselasky	u8	reserved1[8];
5434306233Shselasky	u8	dci_dct[24];
5435306233Shselasky};
5436306233Shselasky
5437290650Shselaskystruct mlx5_ifc_modify_hca_vport_context_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[0xb];
5446290650Shselasky	u8         port_num[0x4];
5447290650Shselasky	u8         vport_number[0x10];
5448290650Shselasky
5449290650Shselasky	u8         reserved_3[0x20];
5450290650Shselasky
5451290650Shselasky	struct mlx5_ifc_hca_vport_context_bits hca_vport_context;
5452290650Shselasky};
5453290650Shselasky
5454329200Shselaskystruct mlx5_ifc_modify_flow_table_out_bits {
5455329200Shselasky	u8         status[0x8];
5456329200Shselasky	u8         reserved_at_8[0x18];
5457329200Shselasky
5458329200Shselasky	u8         syndrome[0x20];
5459329200Shselasky
5460329200Shselasky	u8         reserved_at_40[0x40];
5461329200Shselasky};
5462329200Shselasky
5463329200Shselaskyenum {
5464329200Shselasky	MLX5_MODIFY_FLOW_TABLE_SELECT_MISS_ACTION_AND_ID = 0x1,
5465329200Shselasky	MLX5_MODIFY_FLOW_TABLE_SELECT_LAG_MASTER_NEXT_TABLE_ID = 0x8000,
5466329200Shselasky};
5467329200Shselasky
5468329200Shselaskystruct mlx5_ifc_modify_flow_table_in_bits {
5469329200Shselasky	u8         opcode[0x10];
5470329200Shselasky	u8         reserved_at_10[0x10];
5471329200Shselasky
5472329200Shselasky	u8         reserved_at_20[0x10];
5473329200Shselasky	u8         op_mod[0x10];
5474329200Shselasky
5475329200Shselasky	u8         other_vport[0x1];
5476329200Shselasky	u8         reserved_at_41[0xf];
5477329200Shselasky	u8         vport_number[0x10];
5478329200Shselasky
5479329200Shselasky	u8         reserved_at_60[0x10];
5480329200Shselasky	u8         modify_field_select[0x10];
5481329200Shselasky
5482329200Shselasky	u8         table_type[0x8];
5483329200Shselasky	u8         reserved_at_88[0x18];
5484329200Shselasky
5485329200Shselasky	u8         reserved_at_a0[0x8];
5486329200Shselasky	u8         table_id[0x18];
5487329200Shselasky
5488329200Shselasky	struct mlx5_ifc_flow_table_context_bits flow_table_context;
5489329200Shselasky};
5490329200Shselasky
5491290650Shselaskystruct mlx5_ifc_modify_esw_vport_context_out_bits {
5492290650Shselasky	u8         status[0x8];
5493290650Shselasky	u8         reserved_0[0x18];
5494290650Shselasky
5495290650Shselasky	u8         syndrome[0x20];
5496290650Shselasky
5497290650Shselasky	u8         reserved_1[0x40];
5498290650Shselasky};
5499290650Shselasky
5500306233Shselaskystruct mlx5_ifc_esw_vport_context_fields_select_bits {
5501306233Shselasky	u8         reserved[0x1c];
5502306233Shselasky	u8         vport_cvlan_insert[0x1];
5503306233Shselasky	u8         vport_svlan_insert[0x1];
5504306233Shselasky	u8         vport_cvlan_strip[0x1];
5505306233Shselasky	u8         vport_svlan_strip[0x1];
5506306233Shselasky};
5507306233Shselasky
5508290650Shselaskystruct mlx5_ifc_modify_esw_vport_context_in_bits {
5509290650Shselasky	u8         opcode[0x10];
5510290650Shselasky	u8         reserved_0[0x10];
5511290650Shselasky
5512290650Shselasky	u8         reserved_1[0x10];
5513290650Shselasky	u8         op_mod[0x10];
5514290650Shselasky
5515290650Shselasky	u8         other_vport[0x1];
5516290650Shselasky	u8         reserved_2[0xf];
5517290650Shselasky	u8         vport_number[0x10];
5518290650Shselasky
5519306233Shselasky	struct mlx5_ifc_esw_vport_context_fields_select_bits field_select;
5520290650Shselasky
5521290650Shselasky	struct mlx5_ifc_esw_vport_context_bits esw_vport_context;
5522290650Shselasky};
5523290650Shselasky
5524290650Shselaskystruct mlx5_ifc_modify_cq_out_bits {
5525290650Shselasky	u8         status[0x8];
5526290650Shselasky	u8         reserved_0[0x18];
5527290650Shselasky
5528290650Shselasky	u8         syndrome[0x20];
5529290650Shselasky
5530290650Shselasky	u8         reserved_1[0x40];
5531290650Shselasky};
5532290650Shselasky
5533290650Shselaskyenum {
5534290650Shselasky	MLX5_MODIFY_CQ_IN_OP_MOD_MODIFY_CQ  = 0x0,
5535290650Shselasky	MLX5_MODIFY_CQ_IN_OP_MOD_RESIZE_CQ  = 0x1,
5536290650Shselasky};
5537290650Shselasky
5538290650Shselaskystruct mlx5_ifc_modify_cq_in_bits {
5539290650Shselasky	u8         opcode[0x10];
5540290650Shselasky	u8         reserved_0[0x10];
5541290650Shselasky
5542290650Shselasky	u8         reserved_1[0x10];
5543290650Shselasky	u8         op_mod[0x10];
5544290650Shselasky
5545290650Shselasky	u8         reserved_2[0x8];
5546290650Shselasky	u8         cqn[0x18];
5547290650Shselasky
5548290650Shselasky	union mlx5_ifc_modify_field_select_resize_field_select_auto_bits modify_field_select_resize_field_select;
5549290650Shselasky
5550290650Shselasky	struct mlx5_ifc_cqc_bits cq_context;
5551290650Shselasky
5552290650Shselasky	u8         reserved_3[0x600];
5553290650Shselasky
5554290650Shselasky	u8         pas[0][0x40];
5555290650Shselasky};
5556290650Shselasky
5557290650Shselaskystruct mlx5_ifc_modify_cong_status_out_bits {
5558290650Shselasky	u8         status[0x8];
5559290650Shselasky	u8         reserved_0[0x18];
5560290650Shselasky
5561290650Shselasky	u8         syndrome[0x20];
5562290650Shselasky
5563290650Shselasky	u8         reserved_1[0x40];
5564290650Shselasky};
5565290650Shselasky
5566290650Shselaskystruct mlx5_ifc_modify_cong_status_in_bits {
5567290650Shselasky	u8         opcode[0x10];
5568290650Shselasky	u8         reserved_0[0x10];
5569290650Shselasky
5570290650Shselasky	u8         reserved_1[0x10];
5571290650Shselasky	u8         op_mod[0x10];
5572290650Shselasky
5573290650Shselasky	u8         reserved_2[0x18];
5574290650Shselasky	u8         priority[0x4];
5575290650Shselasky	u8         cong_protocol[0x4];
5576290650Shselasky
5577290650Shselasky	u8         enable[0x1];
5578290650Shselasky	u8         tag_enable[0x1];
5579290650Shselasky	u8         reserved_3[0x1e];
5580290650Shselasky};
5581290650Shselasky
5582290650Shselaskystruct mlx5_ifc_modify_cong_params_out_bits {
5583290650Shselasky	u8         status[0x8];
5584290650Shselasky	u8         reserved_0[0x18];
5585290650Shselasky
5586290650Shselasky	u8         syndrome[0x20];
5587290650Shselasky
5588290650Shselasky	u8         reserved_1[0x40];
5589290650Shselasky};
5590290650Shselasky
5591290650Shselaskystruct mlx5_ifc_modify_cong_params_in_bits {
5592290650Shselasky	u8         opcode[0x10];
5593290650Shselasky	u8         reserved_0[0x10];
5594290650Shselasky
5595290650Shselasky	u8         reserved_1[0x10];
5596290650Shselasky	u8         op_mod[0x10];
5597290650Shselasky
5598290650Shselasky	u8         reserved_2[0x1c];
5599290650Shselasky	u8         cong_protocol[0x4];
5600290650Shselasky
5601290650Shselasky	union mlx5_ifc_field_select_802_1_r_roce_auto_bits field_select;
5602290650Shselasky
5603290650Shselasky	u8         reserved_3[0x80];
5604290650Shselasky
5605290650Shselasky	union mlx5_ifc_cong_control_roce_ecn_auto_bits congestion_parameters;
5606290650Shselasky};
5607290650Shselasky
5608290650Shselaskystruct mlx5_ifc_manage_pages_out_bits {
5609290650Shselasky	u8         status[0x8];
5610290650Shselasky	u8         reserved_0[0x18];
5611290650Shselasky
5612290650Shselasky	u8         syndrome[0x20];
5613290650Shselasky
5614290650Shselasky	u8         output_num_entries[0x20];
5615290650Shselasky
5616290650Shselasky	u8         reserved_1[0x20];
5617290650Shselasky
5618290650Shselasky	u8         pas[0][0x40];
5619290650Shselasky};
5620290650Shselasky
5621290650Shselaskyenum {
5622290650Shselasky	MLX5_PAGES_CANT_GIVE                            = 0x0,
5623290650Shselasky	MLX5_PAGES_GIVE                                 = 0x1,
5624290650Shselasky	MLX5_PAGES_TAKE                                 = 0x2,
5625290650Shselasky};
5626290650Shselasky
5627290650Shselaskystruct mlx5_ifc_manage_pages_in_bits {
5628290650Shselasky	u8         opcode[0x10];
5629290650Shselasky	u8         reserved_0[0x10];
5630290650Shselasky
5631290650Shselasky	u8         reserved_1[0x10];
5632290650Shselasky	u8         op_mod[0x10];
5633290650Shselasky
5634290650Shselasky	u8         reserved_2[0x10];
5635290650Shselasky	u8         function_id[0x10];
5636290650Shselasky
5637290650Shselasky	u8         input_num_entries[0x20];
5638290650Shselasky
5639290650Shselasky	u8         pas[0][0x40];
5640290650Shselasky};
5641290650Shselasky
5642290650Shselaskystruct mlx5_ifc_mad_ifc_out_bits {
5643290650Shselasky	u8         status[0x8];
5644290650Shselasky	u8         reserved_0[0x18];
5645290650Shselasky
5646290650Shselasky	u8         syndrome[0x20];
5647290650Shselasky
5648290650Shselasky	u8         reserved_1[0x40];
5649290650Shselasky
5650290650Shselasky	u8         response_mad_packet[256][0x8];
5651290650Shselasky};
5652290650Shselasky
5653290650Shselaskystruct mlx5_ifc_mad_ifc_in_bits {
5654290650Shselasky	u8         opcode[0x10];
5655290650Shselasky	u8         reserved_0[0x10];
5656290650Shselasky
5657290650Shselasky	u8         reserved_1[0x10];
5658290650Shselasky	u8         op_mod[0x10];
5659290650Shselasky
5660290650Shselasky	u8         remote_lid[0x10];
5661290650Shselasky	u8         reserved_2[0x8];
5662290650Shselasky	u8         port[0x8];
5663290650Shselasky
5664290650Shselasky	u8         reserved_3[0x20];
5665290650Shselasky
5666290650Shselasky	u8         mad[256][0x8];
5667290650Shselasky};
5668290650Shselasky
5669290650Shselaskystruct mlx5_ifc_init_hca_out_bits {
5670290650Shselasky	u8         status[0x8];
5671290650Shselasky	u8         reserved_0[0x18];
5672290650Shselasky
5673290650Shselasky	u8         syndrome[0x20];
5674290650Shselasky
5675290650Shselasky	u8         reserved_1[0x40];
5676290650Shselasky};
5677290650Shselasky
5678290650Shselaskyenum {
5679290650Shselasky	MLX5_INIT_HCA_IN_OP_MOD_INIT      = 0x0,
5680290650Shselasky	MLX5_INIT_HCA_IN_OP_MOD_PRE_INIT  = 0x1,
5681290650Shselasky};
5682290650Shselasky
5683290650Shselaskystruct mlx5_ifc_init_hca_in_bits {
5684290650Shselasky	u8         opcode[0x10];
5685290650Shselasky	u8         reserved_0[0x10];
5686290650Shselasky
5687290650Shselasky	u8         reserved_1[0x10];
5688290650Shselasky	u8         op_mod[0x10];
5689290650Shselasky
5690290650Shselasky	u8         reserved_2[0x40];
5691290650Shselasky};
5692290650Shselasky
5693290650Shselaskystruct mlx5_ifc_init2rtr_qp_out_bits {
5694290650Shselasky	u8         status[0x8];
5695290650Shselasky	u8         reserved_0[0x18];
5696290650Shselasky
5697290650Shselasky	u8         syndrome[0x20];
5698290650Shselasky
5699290650Shselasky	u8         reserved_1[0x40];
5700290650Shselasky};
5701290650Shselasky
5702290650Shselaskystruct mlx5_ifc_init2rtr_qp_in_bits {
5703290650Shselasky	u8         opcode[0x10];
5704290650Shselasky	u8         reserved_0[0x10];
5705290650Shselasky
5706290650Shselasky	u8         reserved_1[0x10];
5707290650Shselasky	u8         op_mod[0x10];
5708290650Shselasky
5709290650Shselasky	u8         reserved_2[0x8];
5710290650Shselasky	u8         qpn[0x18];
5711290650Shselasky
5712290650Shselasky	u8         reserved_3[0x20];
5713290650Shselasky
5714290650Shselasky	u8         opt_param_mask[0x20];
5715290650Shselasky
5716290650Shselasky	u8         reserved_4[0x20];
5717290650Shselasky
5718290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
5719290650Shselasky
5720290650Shselasky	u8         reserved_5[0x80];
5721290650Shselasky};
5722290650Shselasky
5723290650Shselaskystruct mlx5_ifc_init2init_qp_out_bits {
5724290650Shselasky	u8         status[0x8];
5725290650Shselasky	u8         reserved_0[0x18];
5726290650Shselasky
5727290650Shselasky	u8         syndrome[0x20];
5728290650Shselasky
5729290650Shselasky	u8         reserved_1[0x40];
5730290650Shselasky};
5731290650Shselasky
5732290650Shselaskystruct mlx5_ifc_init2init_qp_in_bits {
5733290650Shselasky	u8         opcode[0x10];
5734290650Shselasky	u8         reserved_0[0x10];
5735290650Shselasky
5736290650Shselasky	u8         reserved_1[0x10];
5737290650Shselasky	u8         op_mod[0x10];
5738290650Shselasky
5739290650Shselasky	u8         reserved_2[0x8];
5740290650Shselasky	u8         qpn[0x18];
5741290650Shselasky
5742290650Shselasky	u8         reserved_3[0x20];
5743290650Shselasky
5744290650Shselasky	u8         opt_param_mask[0x20];
5745290650Shselasky
5746290650Shselasky	u8         reserved_4[0x20];
5747290650Shselasky
5748290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
5749290650Shselasky
5750290650Shselasky	u8         reserved_5[0x80];
5751290650Shselasky};
5752290650Shselasky
5753290650Shselaskystruct mlx5_ifc_get_dropped_packet_log_out_bits {
5754290650Shselasky	u8         status[0x8];
5755290650Shselasky	u8         reserved_0[0x18];
5756290650Shselasky
5757290650Shselasky	u8         syndrome[0x20];
5758290650Shselasky
5759290650Shselasky	u8         reserved_1[0x40];
5760290650Shselasky
5761290650Shselasky	u8         packet_headers_log[128][0x8];
5762290650Shselasky
5763290650Shselasky	u8         packet_syndrome[64][0x8];
5764290650Shselasky};
5765290650Shselasky
5766290650Shselaskystruct mlx5_ifc_get_dropped_packet_log_in_bits {
5767290650Shselasky	u8         opcode[0x10];
5768290650Shselasky	u8         reserved_0[0x10];
5769290650Shselasky
5770290650Shselasky	u8         reserved_1[0x10];
5771290650Shselasky	u8         op_mod[0x10];
5772290650Shselasky
5773290650Shselasky	u8         reserved_2[0x40];
5774290650Shselasky};
5775290650Shselasky
5776290650Shselaskystruct mlx5_ifc_gen_eqe_in_bits {
5777290650Shselasky	u8         opcode[0x10];
5778290650Shselasky	u8         reserved_0[0x10];
5779290650Shselasky
5780290650Shselasky	u8         reserved_1[0x10];
5781290650Shselasky	u8         op_mod[0x10];
5782290650Shselasky
5783290650Shselasky	u8         reserved_2[0x18];
5784290650Shselasky	u8         eq_number[0x8];
5785290650Shselasky
5786290650Shselasky	u8         reserved_3[0x20];
5787290650Shselasky
5788290650Shselasky	u8         eqe[64][0x8];
5789290650Shselasky};
5790290650Shselasky
5791290650Shselaskystruct mlx5_ifc_gen_eq_out_bits {
5792290650Shselasky	u8         status[0x8];
5793290650Shselasky	u8         reserved_0[0x18];
5794290650Shselasky
5795290650Shselasky	u8         syndrome[0x20];
5796290650Shselasky
5797290650Shselasky	u8         reserved_1[0x40];
5798290650Shselasky};
5799290650Shselasky
5800290650Shselaskystruct mlx5_ifc_enable_hca_out_bits {
5801290650Shselasky	u8         status[0x8];
5802290650Shselasky	u8         reserved_0[0x18];
5803290650Shselasky
5804290650Shselasky	u8         syndrome[0x20];
5805290650Shselasky
5806290650Shselasky	u8         reserved_1[0x20];
5807290650Shselasky};
5808290650Shselasky
5809290650Shselaskystruct mlx5_ifc_enable_hca_in_bits {
5810290650Shselasky	u8         opcode[0x10];
5811290650Shselasky	u8         reserved_0[0x10];
5812290650Shselasky
5813290650Shselasky	u8         reserved_1[0x10];
5814290650Shselasky	u8         op_mod[0x10];
5815290650Shselasky
5816290650Shselasky	u8         reserved_2[0x10];
5817290650Shselasky	u8         function_id[0x10];
5818290650Shselasky
5819290650Shselasky	u8         reserved_3[0x20];
5820290650Shselasky};
5821290650Shselasky
5822290650Shselaskystruct mlx5_ifc_drain_dct_out_bits {
5823290650Shselasky	u8         status[0x8];
5824290650Shselasky	u8         reserved_0[0x18];
5825290650Shselasky
5826290650Shselasky	u8         syndrome[0x20];
5827290650Shselasky
5828290650Shselasky	u8         reserved_1[0x40];
5829290650Shselasky};
5830290650Shselasky
5831290650Shselaskystruct mlx5_ifc_drain_dct_in_bits {
5832290650Shselasky	u8         opcode[0x10];
5833290650Shselasky	u8         reserved_0[0x10];
5834290650Shselasky
5835290650Shselasky	u8         reserved_1[0x10];
5836290650Shselasky	u8         op_mod[0x10];
5837290650Shselasky
5838290650Shselasky	u8         reserved_2[0x8];
5839290650Shselasky	u8         dctn[0x18];
5840290650Shselasky
5841290650Shselasky	u8         reserved_3[0x20];
5842290650Shselasky};
5843290650Shselasky
5844290650Shselaskystruct mlx5_ifc_disable_hca_out_bits {
5845290650Shselasky	u8         status[0x8];
5846290650Shselasky	u8         reserved_0[0x18];
5847290650Shselasky
5848290650Shselasky	u8         syndrome[0x20];
5849290650Shselasky
5850290650Shselasky	u8         reserved_1[0x20];
5851290650Shselasky};
5852290650Shselasky
5853290650Shselaskystruct mlx5_ifc_disable_hca_in_bits {
5854290650Shselasky	u8         opcode[0x10];
5855290650Shselasky	u8         reserved_0[0x10];
5856290650Shselasky
5857290650Shselasky	u8         reserved_1[0x10];
5858290650Shselasky	u8         op_mod[0x10];
5859290650Shselasky
5860290650Shselasky	u8         reserved_2[0x10];
5861290650Shselasky	u8         function_id[0x10];
5862290650Shselasky
5863290650Shselasky	u8         reserved_3[0x20];
5864290650Shselasky};
5865290650Shselasky
5866290650Shselaskystruct mlx5_ifc_detach_from_mcg_out_bits {
5867290650Shselasky	u8         status[0x8];
5868290650Shselasky	u8         reserved_0[0x18];
5869290650Shselasky
5870290650Shselasky	u8         syndrome[0x20];
5871290650Shselasky
5872290650Shselasky	u8         reserved_1[0x40];
5873290650Shselasky};
5874290650Shselasky
5875290650Shselaskystruct mlx5_ifc_detach_from_mcg_in_bits {
5876290650Shselasky	u8         opcode[0x10];
5877290650Shselasky	u8         reserved_0[0x10];
5878290650Shselasky
5879290650Shselasky	u8         reserved_1[0x10];
5880290650Shselasky	u8         op_mod[0x10];
5881290650Shselasky
5882290650Shselasky	u8         reserved_2[0x8];
5883290650Shselasky	u8         qpn[0x18];
5884290650Shselasky
5885290650Shselasky	u8         reserved_3[0x20];
5886290650Shselasky
5887290650Shselasky	u8         multicast_gid[16][0x8];
5888290650Shselasky};
5889290650Shselasky
5890290650Shselaskystruct mlx5_ifc_destroy_xrc_srq_out_bits {
5891290650Shselasky	u8         status[0x8];
5892290650Shselasky	u8         reserved_0[0x18];
5893290650Shselasky
5894290650Shselasky	u8         syndrome[0x20];
5895290650Shselasky
5896290650Shselasky	u8         reserved_1[0x40];
5897290650Shselasky};
5898290650Shselasky
5899290650Shselaskystruct mlx5_ifc_destroy_xrc_srq_in_bits {
5900290650Shselasky	u8         opcode[0x10];
5901290650Shselasky	u8         reserved_0[0x10];
5902290650Shselasky
5903290650Shselasky	u8         reserved_1[0x10];
5904290650Shselasky	u8         op_mod[0x10];
5905290650Shselasky
5906290650Shselasky	u8         reserved_2[0x8];
5907290650Shselasky	u8         xrc_srqn[0x18];
5908290650Shselasky
5909290650Shselasky	u8         reserved_3[0x20];
5910290650Shselasky};
5911290650Shselasky
5912290650Shselaskystruct mlx5_ifc_destroy_tis_out_bits {
5913290650Shselasky	u8         status[0x8];
5914290650Shselasky	u8         reserved_0[0x18];
5915290650Shselasky
5916290650Shselasky	u8         syndrome[0x20];
5917290650Shselasky
5918290650Shselasky	u8         reserved_1[0x40];
5919290650Shselasky};
5920290650Shselasky
5921290650Shselaskystruct mlx5_ifc_destroy_tis_in_bits {
5922290650Shselasky	u8         opcode[0x10];
5923290650Shselasky	u8         reserved_0[0x10];
5924290650Shselasky
5925290650Shselasky	u8         reserved_1[0x10];
5926290650Shselasky	u8         op_mod[0x10];
5927290650Shselasky
5928290650Shselasky	u8         reserved_2[0x8];
5929290650Shselasky	u8         tisn[0x18];
5930290650Shselasky
5931290650Shselasky	u8         reserved_3[0x20];
5932290650Shselasky};
5933290650Shselasky
5934290650Shselaskystruct mlx5_ifc_destroy_tir_out_bits {
5935290650Shselasky	u8         status[0x8];
5936290650Shselasky	u8         reserved_0[0x18];
5937290650Shselasky
5938290650Shselasky	u8         syndrome[0x20];
5939290650Shselasky
5940290650Shselasky	u8         reserved_1[0x40];
5941290650Shselasky};
5942290650Shselasky
5943290650Shselaskystruct mlx5_ifc_destroy_tir_in_bits {
5944290650Shselasky	u8         opcode[0x10];
5945290650Shselasky	u8         reserved_0[0x10];
5946290650Shselasky
5947290650Shselasky	u8         reserved_1[0x10];
5948290650Shselasky	u8         op_mod[0x10];
5949290650Shselasky
5950290650Shselasky	u8         reserved_2[0x8];
5951290650Shselasky	u8         tirn[0x18];
5952290650Shselasky
5953290650Shselasky	u8         reserved_3[0x20];
5954290650Shselasky};
5955290650Shselasky
5956290650Shselaskystruct mlx5_ifc_destroy_srq_out_bits {
5957290650Shselasky	u8         status[0x8];
5958290650Shselasky	u8         reserved_0[0x18];
5959290650Shselasky
5960290650Shselasky	u8         syndrome[0x20];
5961290650Shselasky
5962290650Shselasky	u8         reserved_1[0x40];
5963290650Shselasky};
5964290650Shselasky
5965290650Shselaskystruct mlx5_ifc_destroy_srq_in_bits {
5966290650Shselasky	u8         opcode[0x10];
5967290650Shselasky	u8         reserved_0[0x10];
5968290650Shselasky
5969290650Shselasky	u8         reserved_1[0x10];
5970290650Shselasky	u8         op_mod[0x10];
5971290650Shselasky
5972290650Shselasky	u8         reserved_2[0x8];
5973290650Shselasky	u8         srqn[0x18];
5974290650Shselasky
5975290650Shselasky	u8         reserved_3[0x20];
5976290650Shselasky};
5977290650Shselasky
5978290650Shselaskystruct mlx5_ifc_destroy_sq_out_bits {
5979290650Shselasky	u8         status[0x8];
5980290650Shselasky	u8         reserved_0[0x18];
5981290650Shselasky
5982290650Shselasky	u8         syndrome[0x20];
5983290650Shselasky
5984290650Shselasky	u8         reserved_1[0x40];
5985290650Shselasky};
5986290650Shselasky
5987290650Shselaskystruct mlx5_ifc_destroy_sq_in_bits {
5988290650Shselasky	u8         opcode[0x10];
5989290650Shselasky	u8         reserved_0[0x10];
5990290650Shselasky
5991290650Shselasky	u8         reserved_1[0x10];
5992290650Shselasky	u8         op_mod[0x10];
5993290650Shselasky
5994290650Shselasky	u8         reserved_2[0x8];
5995290650Shselasky	u8         sqn[0x18];
5996290650Shselasky
5997290650Shselasky	u8         reserved_3[0x20];
5998290650Shselasky};
5999290650Shselasky
6000308678Shselaskystruct mlx5_ifc_destroy_scheduling_element_out_bits {
6001308678Shselasky	u8         status[0x8];
6002308678Shselasky	u8         reserved_at_8[0x18];
6003308678Shselasky
6004308678Shselasky	u8         syndrome[0x20];
6005308678Shselasky
6006308678Shselasky	u8         reserved_at_40[0x1c0];
6007308678Shselasky};
6008308678Shselasky
6009308678Shselaskyenum {
6010308678Shselasky	MLX5_DESTROY_SCHEDULING_ELEMENT_IN_SCHEDULING_HIERARCHY_E_SWITCH  = 0x2,
6011308678Shselasky};
6012308678Shselasky
6013308678Shselaskystruct mlx5_ifc_destroy_scheduling_element_in_bits {
6014308678Shselasky	u8         opcode[0x10];
6015308678Shselasky	u8         reserved_at_10[0x10];
6016308678Shselasky
6017308678Shselasky	u8         reserved_at_20[0x10];
6018308678Shselasky	u8         op_mod[0x10];
6019308678Shselasky
6020308678Shselasky	u8         scheduling_hierarchy[0x8];
6021308678Shselasky	u8         reserved_at_48[0x18];
6022308678Shselasky
6023308678Shselasky	u8         scheduling_element_id[0x20];
6024308678Shselasky
6025308678Shselasky	u8         reserved_at_80[0x180];
6026308678Shselasky};
6027308678Shselasky
6028290650Shselaskystruct mlx5_ifc_destroy_rqt_out_bits {
6029290650Shselasky	u8         status[0x8];
6030290650Shselasky	u8         reserved_0[0x18];
6031290650Shselasky
6032290650Shselasky	u8         syndrome[0x20];
6033290650Shselasky
6034290650Shselasky	u8         reserved_1[0x40];
6035290650Shselasky};
6036290650Shselasky
6037290650Shselaskystruct mlx5_ifc_destroy_rqt_in_bits {
6038290650Shselasky	u8         opcode[0x10];
6039290650Shselasky	u8         reserved_0[0x10];
6040290650Shselasky
6041290650Shselasky	u8         reserved_1[0x10];
6042290650Shselasky	u8         op_mod[0x10];
6043290650Shselasky
6044290650Shselasky	u8         reserved_2[0x8];
6045290650Shselasky	u8         rqtn[0x18];
6046290650Shselasky
6047290650Shselasky	u8         reserved_3[0x20];
6048290650Shselasky};
6049290650Shselasky
6050290650Shselaskystruct mlx5_ifc_destroy_rq_out_bits {
6051290650Shselasky	u8         status[0x8];
6052290650Shselasky	u8         reserved_0[0x18];
6053290650Shselasky
6054290650Shselasky	u8         syndrome[0x20];
6055290650Shselasky
6056290650Shselasky	u8         reserved_1[0x40];
6057290650Shselasky};
6058290650Shselasky
6059290650Shselaskystruct mlx5_ifc_destroy_rq_in_bits {
6060290650Shselasky	u8         opcode[0x10];
6061290650Shselasky	u8         reserved_0[0x10];
6062290650Shselasky
6063290650Shselasky	u8         reserved_1[0x10];
6064290650Shselasky	u8         op_mod[0x10];
6065290650Shselasky
6066290650Shselasky	u8         reserved_2[0x8];
6067290650Shselasky	u8         rqn[0x18];
6068290650Shselasky
6069290650Shselasky	u8         reserved_3[0x20];
6070290650Shselasky};
6071290650Shselasky
6072290650Shselaskystruct mlx5_ifc_destroy_rmp_out_bits {
6073290650Shselasky	u8         status[0x8];
6074290650Shselasky	u8         reserved_0[0x18];
6075290650Shselasky
6076290650Shselasky	u8         syndrome[0x20];
6077290650Shselasky
6078290650Shselasky	u8         reserved_1[0x40];
6079290650Shselasky};
6080290650Shselasky
6081290650Shselaskystruct mlx5_ifc_destroy_rmp_in_bits {
6082290650Shselasky	u8         opcode[0x10];
6083290650Shselasky	u8         reserved_0[0x10];
6084290650Shselasky
6085290650Shselasky	u8         reserved_1[0x10];
6086290650Shselasky	u8         op_mod[0x10];
6087290650Shselasky
6088290650Shselasky	u8         reserved_2[0x8];
6089290650Shselasky	u8         rmpn[0x18];
6090290650Shselasky
6091290650Shselasky	u8         reserved_3[0x20];
6092290650Shselasky};
6093290650Shselasky
6094290650Shselaskystruct mlx5_ifc_destroy_qp_out_bits {
6095290650Shselasky	u8         status[0x8];
6096290650Shselasky	u8         reserved_0[0x18];
6097290650Shselasky
6098290650Shselasky	u8         syndrome[0x20];
6099290650Shselasky
6100290650Shselasky	u8         reserved_1[0x40];
6101290650Shselasky};
6102290650Shselasky
6103290650Shselaskystruct mlx5_ifc_destroy_qp_in_bits {
6104290650Shselasky	u8         opcode[0x10];
6105290650Shselasky	u8         reserved_0[0x10];
6106290650Shselasky
6107290650Shselasky	u8         reserved_1[0x10];
6108290650Shselasky	u8         op_mod[0x10];
6109290650Shselasky
6110290650Shselasky	u8         reserved_2[0x8];
6111290650Shselasky	u8         qpn[0x18];
6112290650Shselasky
6113290650Shselasky	u8         reserved_3[0x20];
6114290650Shselasky};
6115290650Shselasky
6116308678Shselaskystruct mlx5_ifc_destroy_qos_para_vport_out_bits {
6117308678Shselasky	u8         status[0x8];
6118308678Shselasky	u8         reserved_at_8[0x18];
6119308678Shselasky
6120308678Shselasky	u8         syndrome[0x20];
6121308678Shselasky
6122308678Shselasky	u8         reserved_at_40[0x1c0];
6123308678Shselasky};
6124308678Shselasky
6125308678Shselaskystruct mlx5_ifc_destroy_qos_para_vport_in_bits {
6126308678Shselasky	u8         opcode[0x10];
6127308678Shselasky	u8         reserved_at_10[0x10];
6128308678Shselasky
6129308678Shselasky	u8         reserved_at_20[0x10];
6130308678Shselasky	u8         op_mod[0x10];
6131308678Shselasky
6132308678Shselasky	u8         reserved_at_40[0x20];
6133308678Shselasky
6134308678Shselasky	u8         reserved_at_60[0x10];
6135308678Shselasky	u8         qos_para_vport_number[0x10];
6136308678Shselasky
6137308678Shselasky	u8         reserved_at_80[0x180];
6138308678Shselasky};
6139308678Shselasky
6140290650Shselaskystruct mlx5_ifc_destroy_psv_out_bits {
6141290650Shselasky	u8         status[0x8];
6142290650Shselasky	u8         reserved_0[0x18];
6143290650Shselasky
6144290650Shselasky	u8         syndrome[0x20];
6145290650Shselasky
6146290650Shselasky	u8         reserved_1[0x40];
6147290650Shselasky};
6148290650Shselasky
6149290650Shselaskystruct mlx5_ifc_destroy_psv_in_bits {
6150290650Shselasky	u8         opcode[0x10];
6151290650Shselasky	u8         reserved_0[0x10];
6152290650Shselasky
6153290650Shselasky	u8         reserved_1[0x10];
6154290650Shselasky	u8         op_mod[0x10];
6155290650Shselasky
6156290650Shselasky	u8         reserved_2[0x8];
6157290650Shselasky	u8         psvn[0x18];
6158290650Shselasky
6159290650Shselasky	u8         reserved_3[0x20];
6160290650Shselasky};
6161290650Shselasky
6162290650Shselaskystruct mlx5_ifc_destroy_mkey_out_bits {
6163290650Shselasky	u8         status[0x8];
6164290650Shselasky	u8         reserved_0[0x18];
6165290650Shselasky
6166290650Shselasky	u8         syndrome[0x20];
6167290650Shselasky
6168290650Shselasky	u8         reserved_1[0x40];
6169290650Shselasky};
6170290650Shselasky
6171290650Shselaskystruct mlx5_ifc_destroy_mkey_in_bits {
6172290650Shselasky	u8         opcode[0x10];
6173290650Shselasky	u8         reserved_0[0x10];
6174290650Shselasky
6175290650Shselasky	u8         reserved_1[0x10];
6176290650Shselasky	u8         op_mod[0x10];
6177290650Shselasky
6178290650Shselasky	u8         reserved_2[0x8];
6179290650Shselasky	u8         mkey_index[0x18];
6180290650Shselasky
6181290650Shselasky	u8         reserved_3[0x20];
6182290650Shselasky};
6183290650Shselasky
6184290650Shselaskystruct mlx5_ifc_destroy_flow_table_out_bits {
6185290650Shselasky	u8         status[0x8];
6186290650Shselasky	u8         reserved_0[0x18];
6187290650Shselasky
6188290650Shselasky	u8         syndrome[0x20];
6189290650Shselasky
6190290650Shselasky	u8         reserved_1[0x40];
6191290650Shselasky};
6192290650Shselasky
6193290650Shselaskystruct mlx5_ifc_destroy_flow_table_in_bits {
6194290650Shselasky	u8         opcode[0x10];
6195290650Shselasky	u8         reserved_0[0x10];
6196290650Shselasky
6197290650Shselasky	u8         reserved_1[0x10];
6198290650Shselasky	u8         op_mod[0x10];
6199290650Shselasky
6200290650Shselasky	u8         other_vport[0x1];
6201290650Shselasky	u8         reserved_2[0xf];
6202290650Shselasky	u8         vport_number[0x10];
6203290650Shselasky
6204290650Shselasky	u8         reserved_3[0x20];
6205290650Shselasky
6206290650Shselasky	u8         table_type[0x8];
6207290650Shselasky	u8         reserved_4[0x18];
6208290650Shselasky
6209290650Shselasky	u8         reserved_5[0x8];
6210290650Shselasky	u8         table_id[0x18];
6211290650Shselasky
6212290650Shselasky	u8         reserved_6[0x140];
6213290650Shselasky};
6214290650Shselasky
6215290650Shselaskystruct mlx5_ifc_destroy_flow_group_out_bits {
6216290650Shselasky	u8         status[0x8];
6217290650Shselasky	u8         reserved_0[0x18];
6218290650Shselasky
6219290650Shselasky	u8         syndrome[0x20];
6220290650Shselasky
6221290650Shselasky	u8         reserved_1[0x40];
6222290650Shselasky};
6223290650Shselasky
6224290650Shselaskystruct mlx5_ifc_destroy_flow_group_in_bits {
6225290650Shselasky	u8         opcode[0x10];
6226290650Shselasky	u8         reserved_0[0x10];
6227290650Shselasky
6228290650Shselasky	u8         reserved_1[0x10];
6229290650Shselasky	u8         op_mod[0x10];
6230290650Shselasky
6231290650Shselasky	u8         other_vport[0x1];
6232290650Shselasky	u8         reserved_2[0xf];
6233290650Shselasky	u8         vport_number[0x10];
6234290650Shselasky
6235290650Shselasky	u8         reserved_3[0x20];
6236290650Shselasky
6237290650Shselasky	u8         table_type[0x8];
6238290650Shselasky	u8         reserved_4[0x18];
6239290650Shselasky
6240290650Shselasky	u8         reserved_5[0x8];
6241290650Shselasky	u8         table_id[0x18];
6242290650Shselasky
6243290650Shselasky	u8         group_id[0x20];
6244290650Shselasky
6245290650Shselasky	u8         reserved_6[0x120];
6246290650Shselasky};
6247290650Shselasky
6248290650Shselaskystruct mlx5_ifc_destroy_eq_out_bits {
6249290650Shselasky	u8         status[0x8];
6250290650Shselasky	u8         reserved_0[0x18];
6251290650Shselasky
6252290650Shselasky	u8         syndrome[0x20];
6253290650Shselasky
6254290650Shselasky	u8         reserved_1[0x40];
6255290650Shselasky};
6256290650Shselasky
6257290650Shselaskystruct mlx5_ifc_destroy_eq_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[0x18];
6265290650Shselasky	u8         eq_number[0x8];
6266290650Shselasky
6267290650Shselasky	u8         reserved_3[0x20];
6268290650Shselasky};
6269290650Shselasky
6270290650Shselaskystruct mlx5_ifc_destroy_dct_out_bits {
6271290650Shselasky	u8         status[0x8];
6272290650Shselasky	u8         reserved_0[0x18];
6273290650Shselasky
6274290650Shselasky	u8         syndrome[0x20];
6275290650Shselasky
6276290650Shselasky	u8         reserved_1[0x40];
6277290650Shselasky};
6278290650Shselasky
6279290650Shselaskystruct mlx5_ifc_destroy_dct_in_bits {
6280290650Shselasky	u8         opcode[0x10];
6281290650Shselasky	u8         reserved_0[0x10];
6282290650Shselasky
6283290650Shselasky	u8         reserved_1[0x10];
6284290650Shselasky	u8         op_mod[0x10];
6285290650Shselasky
6286290650Shselasky	u8         reserved_2[0x8];
6287290650Shselasky	u8         dctn[0x18];
6288290650Shselasky
6289290650Shselasky	u8         reserved_3[0x20];
6290290650Shselasky};
6291290650Shselasky
6292290650Shselaskystruct mlx5_ifc_destroy_cq_out_bits {
6293290650Shselasky	u8         status[0x8];
6294290650Shselasky	u8         reserved_0[0x18];
6295290650Shselasky
6296290650Shselasky	u8         syndrome[0x20];
6297290650Shselasky
6298290650Shselasky	u8         reserved_1[0x40];
6299290650Shselasky};
6300290650Shselasky
6301290650Shselaskystruct mlx5_ifc_destroy_cq_in_bits {
6302290650Shselasky	u8         opcode[0x10];
6303290650Shselasky	u8         reserved_0[0x10];
6304290650Shselasky
6305290650Shselasky	u8         reserved_1[0x10];
6306290650Shselasky	u8         op_mod[0x10];
6307290650Shselasky
6308290650Shselasky	u8         reserved_2[0x8];
6309290650Shselasky	u8         cqn[0x18];
6310290650Shselasky
6311290650Shselasky	u8         reserved_3[0x20];
6312290650Shselasky};
6313290650Shselasky
6314290650Shselaskystruct mlx5_ifc_delete_vxlan_udp_dport_out_bits {
6315290650Shselasky	u8         status[0x8];
6316290650Shselasky	u8         reserved_0[0x18];
6317290650Shselasky
6318290650Shselasky	u8         syndrome[0x20];
6319290650Shselasky
6320290650Shselasky	u8         reserved_1[0x40];
6321290650Shselasky};
6322290650Shselasky
6323290650Shselaskystruct mlx5_ifc_delete_vxlan_udp_dport_in_bits {
6324290650Shselasky	u8         opcode[0x10];
6325290650Shselasky	u8         reserved_0[0x10];
6326290650Shselasky
6327290650Shselasky	u8         reserved_1[0x10];
6328290650Shselasky	u8         op_mod[0x10];
6329290650Shselasky
6330290650Shselasky	u8         reserved_2[0x20];
6331290650Shselasky
6332290650Shselasky	u8         reserved_3[0x10];
6333290650Shselasky	u8         vxlan_udp_port[0x10];
6334290650Shselasky};
6335290650Shselasky
6336290650Shselaskystruct mlx5_ifc_delete_l2_table_entry_out_bits {
6337290650Shselasky	u8         status[0x8];
6338290650Shselasky	u8         reserved_0[0x18];
6339290650Shselasky
6340290650Shselasky	u8         syndrome[0x20];
6341290650Shselasky
6342290650Shselasky	u8         reserved_1[0x40];
6343290650Shselasky};
6344290650Shselasky
6345290650Shselaskystruct mlx5_ifc_delete_l2_table_entry_in_bits {
6346290650Shselasky	u8         opcode[0x10];
6347290650Shselasky	u8         reserved_0[0x10];
6348290650Shselasky
6349290650Shselasky	u8         reserved_1[0x10];
6350290650Shselasky	u8         op_mod[0x10];
6351290650Shselasky
6352290650Shselasky	u8         reserved_2[0x60];
6353290650Shselasky
6354290650Shselasky	u8         reserved_3[0x8];
6355290650Shselasky	u8         table_index[0x18];
6356290650Shselasky
6357290650Shselasky	u8         reserved_4[0x140];
6358290650Shselasky};
6359290650Shselasky
6360290650Shselaskystruct mlx5_ifc_delete_fte_out_bits {
6361290650Shselasky	u8         status[0x8];
6362290650Shselasky	u8         reserved_0[0x18];
6363290650Shselasky
6364290650Shselasky	u8         syndrome[0x20];
6365290650Shselasky
6366290650Shselasky	u8         reserved_1[0x40];
6367290650Shselasky};
6368290650Shselasky
6369290650Shselaskystruct mlx5_ifc_delete_fte_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         other_vport[0x1];
6377290650Shselasky	u8         reserved_2[0xf];
6378290650Shselasky	u8         vport_number[0x10];
6379290650Shselasky
6380290650Shselasky	u8         reserved_3[0x20];
6381290650Shselasky
6382290650Shselasky	u8         table_type[0x8];
6383290650Shselasky	u8         reserved_4[0x18];
6384290650Shselasky
6385290650Shselasky	u8         reserved_5[0x8];
6386290650Shselasky	u8         table_id[0x18];
6387290650Shselasky
6388290650Shselasky	u8         reserved_6[0x40];
6389290650Shselasky
6390290650Shselasky	u8         flow_index[0x20];
6391290650Shselasky
6392290650Shselasky	u8         reserved_7[0xe0];
6393290650Shselasky};
6394290650Shselasky
6395290650Shselaskystruct mlx5_ifc_dealloc_xrcd_out_bits {
6396290650Shselasky	u8         status[0x8];
6397290650Shselasky	u8         reserved_0[0x18];
6398290650Shselasky
6399290650Shselasky	u8         syndrome[0x20];
6400290650Shselasky
6401290650Shselasky	u8         reserved_1[0x40];
6402290650Shselasky};
6403290650Shselasky
6404290650Shselaskystruct mlx5_ifc_dealloc_xrcd_in_bits {
6405290650Shselasky	u8         opcode[0x10];
6406290650Shselasky	u8         reserved_0[0x10];
6407290650Shselasky
6408290650Shselasky	u8         reserved_1[0x10];
6409290650Shselasky	u8         op_mod[0x10];
6410290650Shselasky
6411290650Shselasky	u8         reserved_2[0x8];
6412290650Shselasky	u8         xrcd[0x18];
6413290650Shselasky
6414290650Shselasky	u8         reserved_3[0x20];
6415290650Shselasky};
6416290650Shselasky
6417290650Shselaskystruct mlx5_ifc_dealloc_uar_out_bits {
6418290650Shselasky	u8         status[0x8];
6419290650Shselasky	u8         reserved_0[0x18];
6420290650Shselasky
6421290650Shselasky	u8         syndrome[0x20];
6422290650Shselasky
6423290650Shselasky	u8         reserved_1[0x40];
6424290650Shselasky};
6425290650Shselasky
6426290650Shselaskystruct mlx5_ifc_dealloc_uar_in_bits {
6427290650Shselasky	u8         opcode[0x10];
6428290650Shselasky	u8         reserved_0[0x10];
6429290650Shselasky
6430290650Shselasky	u8         reserved_1[0x10];
6431290650Shselasky	u8         op_mod[0x10];
6432290650Shselasky
6433290650Shselasky	u8         reserved_2[0x8];
6434290650Shselasky	u8         uar[0x18];
6435290650Shselasky
6436290650Shselasky	u8         reserved_3[0x20];
6437290650Shselasky};
6438290650Shselasky
6439290650Shselaskystruct mlx5_ifc_dealloc_transport_domain_out_bits {
6440290650Shselasky	u8         status[0x8];
6441290650Shselasky	u8         reserved_0[0x18];
6442290650Shselasky
6443290650Shselasky	u8         syndrome[0x20];
6444290650Shselasky
6445290650Shselasky	u8         reserved_1[0x40];
6446290650Shselasky};
6447290650Shselasky
6448290650Shselaskystruct mlx5_ifc_dealloc_transport_domain_in_bits {
6449290650Shselasky	u8         opcode[0x10];
6450290650Shselasky	u8         reserved_0[0x10];
6451290650Shselasky
6452290650Shselasky	u8         reserved_1[0x10];
6453290650Shselasky	u8         op_mod[0x10];
6454290650Shselasky
6455290650Shselasky	u8         reserved_2[0x8];
6456290650Shselasky	u8         transport_domain[0x18];
6457290650Shselasky
6458290650Shselasky	u8         reserved_3[0x20];
6459290650Shselasky};
6460290650Shselasky
6461290650Shselaskystruct mlx5_ifc_dealloc_q_counter_out_bits {
6462290650Shselasky	u8         status[0x8];
6463290650Shselasky	u8         reserved_0[0x18];
6464290650Shselasky
6465290650Shselasky	u8         syndrome[0x20];
6466290650Shselasky
6467290650Shselasky	u8         reserved_1[0x40];
6468290650Shselasky};
6469290650Shselasky
6470306233Shselaskystruct mlx5_ifc_counter_id_bits {
6471306233Shselasky	u8         reserved[0x10];
6472306233Shselasky	u8         counter_id[0x10];
6473306233Shselasky};
6474306233Shselasky
6475308678Shselaskystruct mlx5_ifc_diagnostic_params_context_bits {
6476306233Shselasky	u8         num_of_counters[0x10];
6477306233Shselasky	u8         reserved_2[0x8];
6478306233Shselasky	u8         log_num_of_samples[0x8];
6479306233Shselasky
6480306233Shselasky	u8         single[0x1];
6481306233Shselasky	u8         repetitive[0x1];
6482306233Shselasky	u8         sync[0x1];
6483306233Shselasky	u8         clear[0x1];
6484306233Shselasky	u8         on_demand[0x1];
6485306233Shselasky	u8         enable[0x1];
6486306233Shselasky	u8         reserved_3[0x12];
6487306233Shselasky	u8         log_sample_period[0x8];
6488306233Shselasky
6489306233Shselasky	u8         reserved_4[0x80];
6490306233Shselasky
6491306233Shselasky	struct mlx5_ifc_counter_id_bits counter_id[0];
6492306233Shselasky};
6493306233Shselasky
6494308678Shselaskystruct mlx5_ifc_set_diagnostic_params_in_bits {
6495308678Shselasky	u8         opcode[0x10];
6496308678Shselasky	u8         reserved_0[0x10];
6497308678Shselasky
6498308678Shselasky	u8         reserved_1[0x10];
6499308678Shselasky	u8         op_mod[0x10];
6500308678Shselasky
6501308678Shselasky	struct mlx5_ifc_diagnostic_params_context_bits diagnostic_params_ctx;
6502308678Shselasky};
6503308678Shselasky
6504308678Shselaskystruct mlx5_ifc_set_diagnostic_params_out_bits {
6505306233Shselasky	u8         status[0x8];
6506306233Shselasky	u8         reserved_0[0x18];
6507306233Shselasky
6508306233Shselasky	u8         syndrome[0x20];
6509306233Shselasky
6510306233Shselasky	u8         reserved_1[0x40];
6511306233Shselasky};
6512306233Shselasky
6513308678Shselaskystruct mlx5_ifc_query_diagnostic_counters_in_bits {
6514306233Shselasky	u8         opcode[0x10];
6515306233Shselasky	u8         reserved_0[0x10];
6516306233Shselasky
6517306233Shselasky	u8         reserved_1[0x10];
6518306233Shselasky	u8         op_mod[0x10];
6519306233Shselasky
6520306233Shselasky	u8         num_of_samples[0x10];
6521306233Shselasky	u8         sample_index[0x10];
6522306233Shselasky
6523306233Shselasky	u8         reserved_2[0x20];
6524306233Shselasky};
6525306233Shselasky
6526306233Shselaskystruct mlx5_ifc_diagnostic_counter_bits {
6527306233Shselasky	u8         counter_id[0x10];
6528306233Shselasky	u8         sample_id[0x10];
6529306233Shselasky
6530306233Shselasky	u8         time_stamp_31_0[0x20];
6531306233Shselasky
6532306233Shselasky	u8         counter_value_h[0x20];
6533306233Shselasky
6534306233Shselasky	u8         counter_value_l[0x20];
6535306233Shselasky};
6536306233Shselasky
6537308678Shselaskystruct mlx5_ifc_query_diagnostic_counters_out_bits {
6538306233Shselasky	u8         status[0x8];
6539306233Shselasky	u8         reserved_0[0x18];
6540306233Shselasky
6541306233Shselasky	u8         syndrome[0x20];
6542306233Shselasky
6543306233Shselasky	u8         reserved_1[0x40];
6544306233Shselasky
6545306233Shselasky	struct mlx5_ifc_diagnostic_counter_bits diag_counter[0];
6546306233Shselasky};
6547306233Shselasky
6548290650Shselaskystruct mlx5_ifc_dealloc_q_counter_in_bits {
6549290650Shselasky	u8         opcode[0x10];
6550290650Shselasky	u8         reserved_0[0x10];
6551290650Shselasky
6552290650Shselasky	u8         reserved_1[0x10];
6553290650Shselasky	u8         op_mod[0x10];
6554290650Shselasky
6555290650Shselasky	u8         reserved_2[0x18];
6556290650Shselasky	u8         counter_set_id[0x8];
6557290650Shselasky
6558290650Shselasky	u8         reserved_3[0x20];
6559290650Shselasky};
6560290650Shselasky
6561290650Shselaskystruct mlx5_ifc_dealloc_pd_out_bits {
6562290650Shselasky	u8         status[0x8];
6563290650Shselasky	u8         reserved_0[0x18];
6564290650Shselasky
6565290650Shselasky	u8         syndrome[0x20];
6566290650Shselasky
6567290650Shselasky	u8         reserved_1[0x40];
6568290650Shselasky};
6569290650Shselasky
6570290650Shselaskystruct mlx5_ifc_dealloc_pd_in_bits {
6571290650Shselasky	u8         opcode[0x10];
6572290650Shselasky	u8         reserved_0[0x10];
6573290650Shselasky
6574290650Shselasky	u8         reserved_1[0x10];
6575290650Shselasky	u8         op_mod[0x10];
6576290650Shselasky
6577290650Shselasky	u8         reserved_2[0x8];
6578290650Shselasky	u8         pd[0x18];
6579290650Shselasky
6580290650Shselasky	u8         reserved_3[0x20];
6581290650Shselasky};
6582290650Shselasky
6583290650Shselaskystruct mlx5_ifc_dealloc_flow_counter_out_bits {
6584290650Shselasky	u8         status[0x8];
6585290650Shselasky	u8         reserved_0[0x18];
6586290650Shselasky
6587290650Shselasky	u8         syndrome[0x20];
6588290650Shselasky
6589290650Shselasky	u8         reserved_1[0x40];
6590290650Shselasky};
6591290650Shselasky
6592290650Shselaskystruct mlx5_ifc_dealloc_flow_counter_in_bits {
6593290650Shselasky	u8         opcode[0x10];
6594290650Shselasky	u8         reserved_0[0x10];
6595290650Shselasky
6596290650Shselasky	u8         reserved_1[0x10];
6597290650Shselasky	u8         op_mod[0x10];
6598290650Shselasky
6599290650Shselasky	u8         reserved_2[0x10];
6600290650Shselasky	u8         flow_counter_id[0x10];
6601290650Shselasky
6602290650Shselasky	u8         reserved_3[0x20];
6603290650Shselasky};
6604290650Shselasky
6605290650Shselaskystruct mlx5_ifc_deactivate_tracer_out_bits {
6606290650Shselasky	u8         status[0x8];
6607290650Shselasky	u8         reserved_0[0x18];
6608290650Shselasky
6609290650Shselasky	u8         syndrome[0x20];
6610290650Shselasky
6611290650Shselasky	u8         reserved_1[0x40];
6612290650Shselasky};
6613290650Shselasky
6614290650Shselaskystruct mlx5_ifc_deactivate_tracer_in_bits {
6615290650Shselasky	u8         opcode[0x10];
6616290650Shselasky	u8         reserved_0[0x10];
6617290650Shselasky
6618290650Shselasky	u8         reserved_1[0x10];
6619290650Shselasky	u8         op_mod[0x10];
6620290650Shselasky
6621290650Shselasky	u8         mkey[0x20];
6622290650Shselasky
6623290650Shselasky	u8         reserved_2[0x20];
6624290650Shselasky};
6625290650Shselasky
6626290650Shselaskystruct mlx5_ifc_create_xrc_srq_out_bits {
6627290650Shselasky	u8         status[0x8];
6628290650Shselasky	u8         reserved_0[0x18];
6629290650Shselasky
6630290650Shselasky	u8         syndrome[0x20];
6631290650Shselasky
6632290650Shselasky	u8         reserved_1[0x8];
6633290650Shselasky	u8         xrc_srqn[0x18];
6634290650Shselasky
6635290650Shselasky	u8         reserved_2[0x20];
6636290650Shselasky};
6637290650Shselasky
6638290650Shselaskystruct mlx5_ifc_create_xrc_srq_in_bits {
6639290650Shselasky	u8         opcode[0x10];
6640290650Shselasky	u8         reserved_0[0x10];
6641290650Shselasky
6642290650Shselasky	u8         reserved_1[0x10];
6643290650Shselasky	u8         op_mod[0x10];
6644290650Shselasky
6645290650Shselasky	u8         reserved_2[0x40];
6646290650Shselasky
6647290650Shselasky	struct mlx5_ifc_xrc_srqc_bits xrc_srq_context_entry;
6648290650Shselasky
6649290650Shselasky	u8         reserved_3[0x600];
6650290650Shselasky
6651290650Shselasky	u8         pas[0][0x40];
6652290650Shselasky};
6653290650Shselasky
6654290650Shselaskystruct mlx5_ifc_create_tis_out_bits {
6655290650Shselasky	u8         status[0x8];
6656290650Shselasky	u8         reserved_0[0x18];
6657290650Shselasky
6658290650Shselasky	u8         syndrome[0x20];
6659290650Shselasky
6660290650Shselasky	u8         reserved_1[0x8];
6661290650Shselasky	u8         tisn[0x18];
6662290650Shselasky
6663290650Shselasky	u8         reserved_2[0x20];
6664290650Shselasky};
6665290650Shselasky
6666290650Shselaskystruct mlx5_ifc_create_tis_in_bits {
6667290650Shselasky	u8         opcode[0x10];
6668290650Shselasky	u8         reserved_0[0x10];
6669290650Shselasky
6670290650Shselasky	u8         reserved_1[0x10];
6671290650Shselasky	u8         op_mod[0x10];
6672290650Shselasky
6673290650Shselasky	u8         reserved_2[0xc0];
6674290650Shselasky
6675290650Shselasky	struct mlx5_ifc_tisc_bits ctx;
6676290650Shselasky};
6677290650Shselasky
6678290650Shselaskystruct mlx5_ifc_create_tir_out_bits {
6679290650Shselasky	u8         status[0x8];
6680290650Shselasky	u8         reserved_0[0x18];
6681290650Shselasky
6682290650Shselasky	u8         syndrome[0x20];
6683290650Shselasky
6684290650Shselasky	u8         reserved_1[0x8];
6685290650Shselasky	u8         tirn[0x18];
6686290650Shselasky
6687290650Shselasky	u8         reserved_2[0x20];
6688290650Shselasky};
6689290650Shselasky
6690290650Shselaskystruct mlx5_ifc_create_tir_in_bits {
6691290650Shselasky	u8         opcode[0x10];
6692290650Shselasky	u8         reserved_0[0x10];
6693290650Shselasky
6694290650Shselasky	u8         reserved_1[0x10];
6695290650Shselasky	u8         op_mod[0x10];
6696290650Shselasky
6697290650Shselasky	u8         reserved_2[0xc0];
6698290650Shselasky
6699290650Shselasky	struct mlx5_ifc_tirc_bits tir_context;
6700290650Shselasky};
6701290650Shselasky
6702290650Shselaskystruct mlx5_ifc_create_srq_out_bits {
6703290650Shselasky	u8         status[0x8];
6704290650Shselasky	u8         reserved_0[0x18];
6705290650Shselasky
6706290650Shselasky	u8         syndrome[0x20];
6707290650Shselasky
6708290650Shselasky	u8         reserved_1[0x8];
6709290650Shselasky	u8         srqn[0x18];
6710290650Shselasky
6711290650Shselasky	u8         reserved_2[0x20];
6712290650Shselasky};
6713290650Shselasky
6714290650Shselaskystruct mlx5_ifc_create_srq_in_bits {
6715290650Shselasky	u8         opcode[0x10];
6716290650Shselasky	u8         reserved_0[0x10];
6717290650Shselasky
6718290650Shselasky	u8         reserved_1[0x10];
6719290650Shselasky	u8         op_mod[0x10];
6720290650Shselasky
6721290650Shselasky	u8         reserved_2[0x40];
6722290650Shselasky
6723290650Shselasky	struct mlx5_ifc_srqc_bits srq_context_entry;
6724290650Shselasky
6725290650Shselasky	u8         reserved_3[0x600];
6726290650Shselasky
6727290650Shselasky	u8         pas[0][0x40];
6728290650Shselasky};
6729290650Shselasky
6730290650Shselaskystruct mlx5_ifc_create_sq_out_bits {
6731290650Shselasky	u8         status[0x8];
6732290650Shselasky	u8         reserved_0[0x18];
6733290650Shselasky
6734290650Shselasky	u8         syndrome[0x20];
6735290650Shselasky
6736290650Shselasky	u8         reserved_1[0x8];
6737290650Shselasky	u8         sqn[0x18];
6738290650Shselasky
6739290650Shselasky	u8         reserved_2[0x20];
6740290650Shselasky};
6741290650Shselasky
6742290650Shselaskystruct mlx5_ifc_create_sq_in_bits {
6743290650Shselasky	u8         opcode[0x10];
6744290650Shselasky	u8         reserved_0[0x10];
6745290650Shselasky
6746290650Shselasky	u8         reserved_1[0x10];
6747290650Shselasky	u8         op_mod[0x10];
6748290650Shselasky
6749290650Shselasky	u8         reserved_2[0xc0];
6750290650Shselasky
6751290650Shselasky	struct mlx5_ifc_sqc_bits ctx;
6752290650Shselasky};
6753290650Shselasky
6754308678Shselaskystruct mlx5_ifc_create_scheduling_element_out_bits {
6755308678Shselasky	u8         status[0x8];
6756308678Shselasky	u8         reserved_at_8[0x18];
6757308678Shselasky
6758308678Shselasky	u8         syndrome[0x20];
6759308678Shselasky
6760308678Shselasky	u8         reserved_at_40[0x40];
6761308678Shselasky
6762308678Shselasky	u8         scheduling_element_id[0x20];
6763308678Shselasky
6764308678Shselasky	u8         reserved_at_a0[0x160];
6765308678Shselasky};
6766308678Shselasky
6767308678Shselaskyenum {
6768308678Shselasky	MLX5_CREATE_SCHEDULING_ELEMENT_IN_SCHEDULING_HIERARCHY_E_SWITCH  = 0x2,
6769308678Shselasky};
6770308678Shselasky
6771308678Shselaskystruct mlx5_ifc_create_scheduling_element_in_bits {
6772308678Shselasky	u8         opcode[0x10];
6773308678Shselasky	u8         reserved_at_10[0x10];
6774308678Shselasky
6775308678Shselasky	u8         reserved_at_20[0x10];
6776308678Shselasky	u8         op_mod[0x10];
6777308678Shselasky
6778308678Shselasky	u8         scheduling_hierarchy[0x8];
6779308678Shselasky	u8         reserved_at_48[0x18];
6780308678Shselasky
6781308678Shselasky	u8         reserved_at_60[0xa0];
6782308678Shselasky
6783308678Shselasky	struct mlx5_ifc_scheduling_context_bits scheduling_context;
6784308678Shselasky
6785308678Shselasky	u8         reserved_at_300[0x100];
6786308678Shselasky};
6787308678Shselasky
6788290650Shselaskystruct mlx5_ifc_create_rqt_out_bits {
6789290650Shselasky	u8         status[0x8];
6790290650Shselasky	u8         reserved_0[0x18];
6791290650Shselasky
6792290650Shselasky	u8         syndrome[0x20];
6793290650Shselasky
6794290650Shselasky	u8         reserved_1[0x8];
6795290650Shselasky	u8         rqtn[0x18];
6796290650Shselasky
6797290650Shselasky	u8         reserved_2[0x20];
6798290650Shselasky};
6799290650Shselasky
6800290650Shselaskystruct mlx5_ifc_create_rqt_in_bits {
6801290650Shselasky	u8         opcode[0x10];
6802290650Shselasky	u8         reserved_0[0x10];
6803290650Shselasky
6804290650Shselasky	u8         reserved_1[0x10];
6805290650Shselasky	u8         op_mod[0x10];
6806290650Shselasky
6807290650Shselasky	u8         reserved_2[0xc0];
6808290650Shselasky
6809290650Shselasky	struct mlx5_ifc_rqtc_bits rqt_context;
6810290650Shselasky};
6811290650Shselasky
6812290650Shselaskystruct mlx5_ifc_create_rq_out_bits {
6813290650Shselasky	u8         status[0x8];
6814290650Shselasky	u8         reserved_0[0x18];
6815290650Shselasky
6816290650Shselasky	u8         syndrome[0x20];
6817290650Shselasky
6818290650Shselasky	u8         reserved_1[0x8];
6819290650Shselasky	u8         rqn[0x18];
6820290650Shselasky
6821290650Shselasky	u8         reserved_2[0x20];
6822290650Shselasky};
6823290650Shselasky
6824290650Shselaskystruct mlx5_ifc_create_rq_in_bits {
6825290650Shselasky	u8         opcode[0x10];
6826290650Shselasky	u8         reserved_0[0x10];
6827290650Shselasky
6828290650Shselasky	u8         reserved_1[0x10];
6829290650Shselasky	u8         op_mod[0x10];
6830290650Shselasky
6831290650Shselasky	u8         reserved_2[0xc0];
6832290650Shselasky
6833290650Shselasky	struct mlx5_ifc_rqc_bits ctx;
6834290650Shselasky};
6835290650Shselasky
6836290650Shselaskystruct mlx5_ifc_create_rmp_out_bits {
6837290650Shselasky	u8         status[0x8];
6838290650Shselasky	u8         reserved_0[0x18];
6839290650Shselasky
6840290650Shselasky	u8         syndrome[0x20];
6841290650Shselasky
6842290650Shselasky	u8         reserved_1[0x8];
6843290650Shselasky	u8         rmpn[0x18];
6844290650Shselasky
6845290650Shselasky	u8         reserved_2[0x20];
6846290650Shselasky};
6847290650Shselasky
6848290650Shselaskystruct mlx5_ifc_create_rmp_in_bits {
6849290650Shselasky	u8         opcode[0x10];
6850290650Shselasky	u8         reserved_0[0x10];
6851290650Shselasky
6852290650Shselasky	u8         reserved_1[0x10];
6853290650Shselasky	u8         op_mod[0x10];
6854290650Shselasky
6855290650Shselasky	u8         reserved_2[0xc0];
6856290650Shselasky
6857290650Shselasky	struct mlx5_ifc_rmpc_bits ctx;
6858290650Shselasky};
6859290650Shselasky
6860290650Shselaskystruct mlx5_ifc_create_qp_out_bits {
6861290650Shselasky	u8         status[0x8];
6862290650Shselasky	u8         reserved_0[0x18];
6863290650Shselasky
6864290650Shselasky	u8         syndrome[0x20];
6865290650Shselasky
6866290650Shselasky	u8         reserved_1[0x8];
6867290650Shselasky	u8         qpn[0x18];
6868290650Shselasky
6869290650Shselasky	u8         reserved_2[0x20];
6870290650Shselasky};
6871290650Shselasky
6872290650Shselaskystruct mlx5_ifc_create_qp_in_bits {
6873290650Shselasky	u8         opcode[0x10];
6874290650Shselasky	u8         reserved_0[0x10];
6875290650Shselasky
6876290650Shselasky	u8         reserved_1[0x10];
6877290650Shselasky	u8         op_mod[0x10];
6878290650Shselasky
6879306233Shselasky	u8         reserved_2[0x8];
6880306233Shselasky	u8         input_qpn[0x18];
6881290650Shselasky
6882306233Shselasky	u8         reserved_3[0x20];
6883306233Shselasky
6884290650Shselasky	u8         opt_param_mask[0x20];
6885290650Shselasky
6886306233Shselasky	u8         reserved_4[0x20];
6887290650Shselasky
6888290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
6889290650Shselasky
6890306233Shselasky	u8         reserved_5[0x80];
6891290650Shselasky
6892290650Shselasky	u8         pas[0][0x40];
6893290650Shselasky};
6894290650Shselasky
6895308678Shselaskystruct mlx5_ifc_create_qos_para_vport_out_bits {
6896308678Shselasky	u8         status[0x8];
6897308678Shselasky	u8         reserved_at_8[0x18];
6898308678Shselasky
6899308678Shselasky	u8         syndrome[0x20];
6900308678Shselasky
6901308678Shselasky	u8         reserved_at_40[0x20];
6902308678Shselasky
6903308678Shselasky	u8         reserved_at_60[0x10];
6904308678Shselasky	u8         qos_para_vport_number[0x10];
6905308678Shselasky
6906308678Shselasky	u8         reserved_at_80[0x180];
6907308678Shselasky};
6908308678Shselasky
6909308678Shselaskystruct mlx5_ifc_create_qos_para_vport_in_bits {
6910308678Shselasky	u8         opcode[0x10];
6911308678Shselasky	u8         reserved_at_10[0x10];
6912308678Shselasky
6913308678Shselasky	u8         reserved_at_20[0x10];
6914308678Shselasky	u8         op_mod[0x10];
6915308678Shselasky
6916308678Shselasky	u8         reserved_at_40[0x1c0];
6917308678Shselasky};
6918308678Shselasky
6919290650Shselaskystruct mlx5_ifc_create_psv_out_bits {
6920290650Shselasky	u8         status[0x8];
6921290650Shselasky	u8         reserved_0[0x18];
6922290650Shselasky
6923290650Shselasky	u8         syndrome[0x20];
6924290650Shselasky
6925290650Shselasky	u8         reserved_1[0x40];
6926290650Shselasky
6927290650Shselasky	u8         reserved_2[0x8];
6928290650Shselasky	u8         psv0_index[0x18];
6929290650Shselasky
6930290650Shselasky	u8         reserved_3[0x8];
6931290650Shselasky	u8         psv1_index[0x18];
6932290650Shselasky
6933290650Shselasky	u8         reserved_4[0x8];
6934290650Shselasky	u8         psv2_index[0x18];
6935290650Shselasky
6936290650Shselasky	u8         reserved_5[0x8];
6937290650Shselasky	u8         psv3_index[0x18];
6938290650Shselasky};
6939290650Shselasky
6940290650Shselaskystruct mlx5_ifc_create_psv_in_bits {
6941290650Shselasky	u8         opcode[0x10];
6942290650Shselasky	u8         reserved_0[0x10];
6943290650Shselasky
6944290650Shselasky	u8         reserved_1[0x10];
6945290650Shselasky	u8         op_mod[0x10];
6946290650Shselasky
6947290650Shselasky	u8         num_psv[0x4];
6948290650Shselasky	u8         reserved_2[0x4];
6949290650Shselasky	u8         pd[0x18];
6950290650Shselasky
6951290650Shselasky	u8         reserved_3[0x20];
6952290650Shselasky};
6953290650Shselasky
6954290650Shselaskystruct mlx5_ifc_create_mkey_out_bits {
6955290650Shselasky	u8         status[0x8];
6956290650Shselasky	u8         reserved_0[0x18];
6957290650Shselasky
6958290650Shselasky	u8         syndrome[0x20];
6959290650Shselasky
6960290650Shselasky	u8         reserved_1[0x8];
6961290650Shselasky	u8         mkey_index[0x18];
6962290650Shselasky
6963290650Shselasky	u8         reserved_2[0x20];
6964290650Shselasky};
6965290650Shselasky
6966290650Shselaskystruct mlx5_ifc_create_mkey_in_bits {
6967290650Shselasky	u8         opcode[0x10];
6968290650Shselasky	u8         reserved_0[0x10];
6969290650Shselasky
6970290650Shselasky	u8         reserved_1[0x10];
6971290650Shselasky	u8         op_mod[0x10];
6972290650Shselasky
6973290650Shselasky	u8         reserved_2[0x20];
6974290650Shselasky
6975290650Shselasky	u8         pg_access[0x1];
6976290650Shselasky	u8         reserved_3[0x1f];
6977290650Shselasky
6978290650Shselasky	struct mlx5_ifc_mkc_bits memory_key_mkey_entry;
6979290650Shselasky
6980290650Shselasky	u8         reserved_4[0x80];
6981290650Shselasky
6982290650Shselasky	u8         translations_octword_actual_size[0x20];
6983290650Shselasky
6984290650Shselasky	u8         reserved_5[0x560];
6985290650Shselasky
6986290650Shselasky	u8         klm_pas_mtt[0][0x20];
6987290650Shselasky};
6988290650Shselasky
6989290650Shselaskystruct mlx5_ifc_create_flow_table_out_bits {
6990290650Shselasky	u8         status[0x8];
6991290650Shselasky	u8         reserved_0[0x18];
6992290650Shselasky
6993290650Shselasky	u8         syndrome[0x20];
6994290650Shselasky
6995290650Shselasky	u8         reserved_1[0x8];
6996290650Shselasky	u8         table_id[0x18];
6997290650Shselasky
6998290650Shselasky	u8         reserved_2[0x20];
6999290650Shselasky};
7000290650Shselasky
7001290650Shselaskystruct mlx5_ifc_create_flow_table_in_bits {
7002290650Shselasky	u8         opcode[0x10];
7003329200Shselasky	u8         reserved_at_10[0x10];
7004290650Shselasky
7005329200Shselasky	u8         reserved_at_20[0x10];
7006290650Shselasky	u8         op_mod[0x10];
7007290650Shselasky
7008290650Shselasky	u8         other_vport[0x1];
7009329200Shselasky	u8         reserved_at_41[0xf];
7010290650Shselasky	u8         vport_number[0x10];
7011290650Shselasky
7012329200Shselasky	u8         reserved_at_60[0x20];
7013290650Shselasky
7014290650Shselasky	u8         table_type[0x8];
7015329200Shselasky	u8         reserved_at_88[0x18];
7016290650Shselasky
7017329200Shselasky	u8         reserved_at_a0[0x20];
7018290650Shselasky
7019329200Shselasky	struct mlx5_ifc_flow_table_context_bits flow_table_context;
7020290650Shselasky};
7021290650Shselasky
7022290650Shselaskystruct mlx5_ifc_create_flow_group_out_bits {
7023290650Shselasky	u8         status[0x8];
7024290650Shselasky	u8         reserved_0[0x18];
7025290650Shselasky
7026290650Shselasky	u8         syndrome[0x20];
7027290650Shselasky
7028290650Shselasky	u8         reserved_1[0x8];
7029290650Shselasky	u8         group_id[0x18];
7030290650Shselasky
7031290650Shselasky	u8         reserved_2[0x20];
7032290650Shselasky};
7033290650Shselasky
7034290650Shselaskyenum {
7035290650Shselasky	MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_OUTER_HEADERS    = 0x0,
7036290650Shselasky	MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS  = 0x1,
7037290650Shselasky	MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_INNER_HEADERS    = 0x2,
7038290650Shselasky};
7039290650Shselasky
7040290650Shselaskystruct mlx5_ifc_create_flow_group_in_bits {
7041290650Shselasky	u8         opcode[0x10];
7042290650Shselasky	u8         reserved_0[0x10];
7043290650Shselasky
7044290650Shselasky	u8         reserved_1[0x10];
7045290650Shselasky	u8         op_mod[0x10];
7046290650Shselasky
7047290650Shselasky	u8         other_vport[0x1];
7048290650Shselasky	u8         reserved_2[0xf];
7049290650Shselasky	u8         vport_number[0x10];
7050290650Shselasky
7051290650Shselasky	u8         reserved_3[0x20];
7052290650Shselasky
7053290650Shselasky	u8         table_type[0x8];
7054290650Shselasky	u8         reserved_4[0x18];
7055290650Shselasky
7056290650Shselasky	u8         reserved_5[0x8];
7057290650Shselasky	u8         table_id[0x18];
7058290650Shselasky
7059290650Shselasky	u8         reserved_6[0x20];
7060290650Shselasky
7061290650Shselasky	u8         start_flow_index[0x20];
7062290650Shselasky
7063290650Shselasky	u8         reserved_7[0x20];
7064290650Shselasky
7065290650Shselasky	u8         end_flow_index[0x20];
7066290650Shselasky
7067290650Shselasky	u8         reserved_8[0xa0];
7068290650Shselasky
7069290650Shselasky	u8         reserved_9[0x18];
7070290650Shselasky	u8         match_criteria_enable[0x8];
7071290650Shselasky
7072290650Shselasky	struct mlx5_ifc_fte_match_param_bits match_criteria;
7073290650Shselasky
7074290650Shselasky	u8         reserved_10[0xe00];
7075290650Shselasky};
7076290650Shselasky
7077290650Shselaskystruct mlx5_ifc_create_eq_out_bits {
7078290650Shselasky	u8         status[0x8];
7079290650Shselasky	u8         reserved_0[0x18];
7080290650Shselasky
7081290650Shselasky	u8         syndrome[0x20];
7082290650Shselasky
7083290650Shselasky	u8         reserved_1[0x18];
7084290650Shselasky	u8         eq_number[0x8];
7085290650Shselasky
7086290650Shselasky	u8         reserved_2[0x20];
7087290650Shselasky};
7088290650Shselasky
7089290650Shselaskystruct mlx5_ifc_create_eq_in_bits {
7090290650Shselasky	u8         opcode[0x10];
7091290650Shselasky	u8         reserved_0[0x10];
7092290650Shselasky
7093290650Shselasky	u8         reserved_1[0x10];
7094290650Shselasky	u8         op_mod[0x10];
7095290650Shselasky
7096290650Shselasky	u8         reserved_2[0x40];
7097290650Shselasky
7098290650Shselasky	struct mlx5_ifc_eqc_bits eq_context_entry;
7099290650Shselasky
7100290650Shselasky	u8         reserved_3[0x40];
7101290650Shselasky
7102290650Shselasky	u8         event_bitmask[0x40];
7103290650Shselasky
7104290650Shselasky	u8         reserved_4[0x580];
7105290650Shselasky
7106290650Shselasky	u8         pas[0][0x40];
7107290650Shselasky};
7108290650Shselasky
7109290650Shselaskystruct mlx5_ifc_create_dct_out_bits {
7110290650Shselasky	u8         status[0x8];
7111290650Shselasky	u8         reserved_0[0x18];
7112290650Shselasky
7113290650Shselasky	u8         syndrome[0x20];
7114290650Shselasky
7115290650Shselasky	u8         reserved_1[0x8];
7116290650Shselasky	u8         dctn[0x18];
7117290650Shselasky
7118290650Shselasky	u8         reserved_2[0x20];
7119290650Shselasky};
7120290650Shselasky
7121290650Shselaskystruct mlx5_ifc_create_dct_in_bits {
7122290650Shselasky	u8         opcode[0x10];
7123290650Shselasky	u8         reserved_0[0x10];
7124290650Shselasky
7125290650Shselasky	u8         reserved_1[0x10];
7126290650Shselasky	u8         op_mod[0x10];
7127290650Shselasky
7128290650Shselasky	u8         reserved_2[0x40];
7129290650Shselasky
7130290650Shselasky	struct mlx5_ifc_dctc_bits dct_context_entry;
7131290650Shselasky
7132290650Shselasky	u8         reserved_3[0x180];
7133290650Shselasky};
7134290650Shselasky
7135290650Shselaskystruct mlx5_ifc_create_cq_out_bits {
7136290650Shselasky	u8         status[0x8];
7137290650Shselasky	u8         reserved_0[0x18];
7138290650Shselasky
7139290650Shselasky	u8         syndrome[0x20];
7140290650Shselasky
7141290650Shselasky	u8         reserved_1[0x8];
7142290650Shselasky	u8         cqn[0x18];
7143290650Shselasky
7144290650Shselasky	u8         reserved_2[0x20];
7145290650Shselasky};
7146290650Shselasky
7147290650Shselaskystruct mlx5_ifc_create_cq_in_bits {
7148290650Shselasky	u8         opcode[0x10];
7149290650Shselasky	u8         reserved_0[0x10];
7150290650Shselasky
7151290650Shselasky	u8         reserved_1[0x10];
7152290650Shselasky	u8         op_mod[0x10];
7153290650Shselasky
7154290650Shselasky	u8         reserved_2[0x40];
7155290650Shselasky
7156290650Shselasky	struct mlx5_ifc_cqc_bits cq_context;
7157290650Shselasky
7158290650Shselasky	u8         reserved_3[0x600];
7159290650Shselasky
7160290650Shselasky	u8         pas[0][0x40];
7161290650Shselasky};
7162290650Shselasky
7163290650Shselaskystruct mlx5_ifc_config_int_moderation_out_bits {
7164290650Shselasky	u8         status[0x8];
7165290650Shselasky	u8         reserved_0[0x18];
7166290650Shselasky
7167290650Shselasky	u8         syndrome[0x20];
7168290650Shselasky
7169290650Shselasky	u8         reserved_1[0x4];
7170290650Shselasky	u8         min_delay[0xc];
7171290650Shselasky	u8         int_vector[0x10];
7172290650Shselasky
7173290650Shselasky	u8         reserved_2[0x20];
7174290650Shselasky};
7175290650Shselasky
7176290650Shselaskyenum {
7177290650Shselasky	MLX5_CONFIG_INT_MODERATION_IN_OP_MOD_WRITE  = 0x0,
7178290650Shselasky	MLX5_CONFIG_INT_MODERATION_IN_OP_MOD_READ   = 0x1,
7179290650Shselasky};
7180290650Shselasky
7181290650Shselaskystruct mlx5_ifc_config_int_moderation_in_bits {
7182290650Shselasky	u8         opcode[0x10];
7183290650Shselasky	u8         reserved_0[0x10];
7184290650Shselasky
7185290650Shselasky	u8         reserved_1[0x10];
7186290650Shselasky	u8         op_mod[0x10];
7187290650Shselasky
7188290650Shselasky	u8         reserved_2[0x4];
7189290650Shselasky	u8         min_delay[0xc];
7190290650Shselasky	u8         int_vector[0x10];
7191290650Shselasky
7192290650Shselasky	u8         reserved_3[0x20];
7193290650Shselasky};
7194290650Shselasky
7195290650Shselaskystruct mlx5_ifc_attach_to_mcg_out_bits {
7196290650Shselasky	u8         status[0x8];
7197290650Shselasky	u8         reserved_0[0x18];
7198290650Shselasky
7199290650Shselasky	u8         syndrome[0x20];
7200290650Shselasky
7201290650Shselasky	u8         reserved_1[0x40];
7202290650Shselasky};
7203290650Shselasky
7204290650Shselaskystruct mlx5_ifc_attach_to_mcg_in_bits {
7205290650Shselasky	u8         opcode[0x10];
7206290650Shselasky	u8         reserved_0[0x10];
7207290650Shselasky
7208290650Shselasky	u8         reserved_1[0x10];
7209290650Shselasky	u8         op_mod[0x10];
7210290650Shselasky
7211290650Shselasky	u8         reserved_2[0x8];
7212290650Shselasky	u8         qpn[0x18];
7213290650Shselasky
7214290650Shselasky	u8         reserved_3[0x20];
7215290650Shselasky
7216290650Shselasky	u8         multicast_gid[16][0x8];
7217290650Shselasky};
7218290650Shselasky
7219290650Shselaskystruct mlx5_ifc_arm_xrc_srq_out_bits {
7220290650Shselasky	u8         status[0x8];
7221290650Shselasky	u8         reserved_0[0x18];
7222290650Shselasky
7223290650Shselasky	u8         syndrome[0x20];
7224290650Shselasky
7225290650Shselasky	u8         reserved_1[0x40];
7226290650Shselasky};
7227290650Shselasky
7228290650Shselaskyenum {
7229290650Shselasky	MLX5_ARM_XRC_SRQ_IN_OP_MOD_XRC_SRQ  = 0x1,
7230290650Shselasky};
7231290650Shselasky
7232290650Shselaskystruct mlx5_ifc_arm_xrc_srq_in_bits {
7233290650Shselasky	u8         opcode[0x10];
7234290650Shselasky	u8         reserved_0[0x10];
7235290650Shselasky
7236290650Shselasky	u8         reserved_1[0x10];
7237290650Shselasky	u8         op_mod[0x10];
7238290650Shselasky
7239290650Shselasky	u8         reserved_2[0x8];
7240290650Shselasky	u8         xrc_srqn[0x18];
7241290650Shselasky
7242290650Shselasky	u8         reserved_3[0x10];
7243290650Shselasky	u8         lwm[0x10];
7244290650Shselasky};
7245290650Shselasky
7246290650Shselaskystruct mlx5_ifc_arm_rq_out_bits {
7247290650Shselasky	u8         status[0x8];
7248290650Shselasky	u8         reserved_0[0x18];
7249290650Shselasky
7250290650Shselasky	u8         syndrome[0x20];
7251290650Shselasky
7252290650Shselasky	u8         reserved_1[0x40];
7253290650Shselasky};
7254290650Shselasky
7255290650Shselaskyenum {
7256290650Shselasky	MLX5_ARM_RQ_IN_OP_MOD_SRQ  = 0x1,
7257290650Shselasky};
7258290650Shselasky
7259290650Shselaskystruct mlx5_ifc_arm_rq_in_bits {
7260290650Shselasky	u8         opcode[0x10];
7261290650Shselasky	u8         reserved_0[0x10];
7262290650Shselasky
7263290650Shselasky	u8         reserved_1[0x10];
7264290650Shselasky	u8         op_mod[0x10];
7265290650Shselasky
7266290650Shselasky	u8         reserved_2[0x8];
7267290650Shselasky	u8         srq_number[0x18];
7268290650Shselasky
7269290650Shselasky	u8         reserved_3[0x10];
7270290650Shselasky	u8         lwm[0x10];
7271290650Shselasky};
7272290650Shselasky
7273290650Shselaskystruct mlx5_ifc_arm_dct_out_bits {
7274290650Shselasky	u8         status[0x8];
7275290650Shselasky	u8         reserved_0[0x18];
7276290650Shselasky
7277290650Shselasky	u8         syndrome[0x20];
7278290650Shselasky
7279290650Shselasky	u8         reserved_1[0x40];
7280290650Shselasky};
7281290650Shselasky
7282290650Shselaskystruct mlx5_ifc_arm_dct_in_bits {
7283290650Shselasky	u8         opcode[0x10];
7284290650Shselasky	u8         reserved_0[0x10];
7285290650Shselasky
7286290650Shselasky	u8         reserved_1[0x10];
7287290650Shselasky	u8         op_mod[0x10];
7288290650Shselasky
7289290650Shselasky	u8         reserved_2[0x8];
7290290650Shselasky	u8         dctn[0x18];
7291290650Shselasky
7292290650Shselasky	u8         reserved_3[0x20];
7293290650Shselasky};
7294290650Shselasky
7295290650Shselaskystruct mlx5_ifc_alloc_xrcd_out_bits {
7296290650Shselasky	u8         status[0x8];
7297290650Shselasky	u8         reserved_0[0x18];
7298290650Shselasky
7299290650Shselasky	u8         syndrome[0x20];
7300290650Shselasky
7301290650Shselasky	u8         reserved_1[0x8];
7302290650Shselasky	u8         xrcd[0x18];
7303290650Shselasky
7304290650Shselasky	u8         reserved_2[0x20];
7305290650Shselasky};
7306290650Shselasky
7307290650Shselaskystruct mlx5_ifc_alloc_xrcd_in_bits {
7308290650Shselasky	u8         opcode[0x10];
7309290650Shselasky	u8         reserved_0[0x10];
7310290650Shselasky
7311290650Shselasky	u8         reserved_1[0x10];
7312290650Shselasky	u8         op_mod[0x10];
7313290650Shselasky
7314290650Shselasky	u8         reserved_2[0x40];
7315290650Shselasky};
7316290650Shselasky
7317290650Shselaskystruct mlx5_ifc_alloc_uar_out_bits {
7318290650Shselasky	u8         status[0x8];
7319290650Shselasky	u8         reserved_0[0x18];
7320290650Shselasky
7321290650Shselasky	u8         syndrome[0x20];
7322290650Shselasky
7323290650Shselasky	u8         reserved_1[0x8];
7324290650Shselasky	u8         uar[0x18];
7325290650Shselasky
7326290650Shselasky	u8         reserved_2[0x20];
7327290650Shselasky};
7328290650Shselasky
7329290650Shselaskystruct mlx5_ifc_alloc_uar_in_bits {
7330290650Shselasky	u8         opcode[0x10];
7331290650Shselasky	u8         reserved_0[0x10];
7332290650Shselasky
7333290650Shselasky	u8         reserved_1[0x10];
7334290650Shselasky	u8         op_mod[0x10];
7335290650Shselasky
7336290650Shselasky	u8         reserved_2[0x40];
7337290650Shselasky};
7338290650Shselasky
7339290650Shselaskystruct mlx5_ifc_alloc_transport_domain_out_bits {
7340290650Shselasky	u8         status[0x8];
7341290650Shselasky	u8         reserved_0[0x18];
7342290650Shselasky
7343290650Shselasky	u8         syndrome[0x20];
7344290650Shselasky
7345290650Shselasky	u8         reserved_1[0x8];
7346290650Shselasky	u8         transport_domain[0x18];
7347290650Shselasky
7348290650Shselasky	u8         reserved_2[0x20];
7349290650Shselasky};
7350290650Shselasky
7351290650Shselaskystruct mlx5_ifc_alloc_transport_domain_in_bits {
7352290650Shselasky	u8         opcode[0x10];
7353290650Shselasky	u8         reserved_0[0x10];
7354290650Shselasky
7355290650Shselasky	u8         reserved_1[0x10];
7356290650Shselasky	u8         op_mod[0x10];
7357290650Shselasky
7358290650Shselasky	u8         reserved_2[0x40];
7359290650Shselasky};
7360290650Shselasky
7361290650Shselaskystruct mlx5_ifc_alloc_q_counter_out_bits {
7362290650Shselasky	u8         status[0x8];
7363290650Shselasky	u8         reserved_0[0x18];
7364290650Shselasky
7365290650Shselasky	u8         syndrome[0x20];
7366290650Shselasky
7367290650Shselasky	u8         reserved_1[0x18];
7368290650Shselasky	u8         counter_set_id[0x8];
7369290650Shselasky
7370290650Shselasky	u8         reserved_2[0x20];
7371290650Shselasky};
7372290650Shselasky
7373290650Shselaskystruct mlx5_ifc_alloc_q_counter_in_bits {
7374290650Shselasky	u8         opcode[0x10];
7375290650Shselasky	u8         reserved_0[0x10];
7376290650Shselasky
7377290650Shselasky	u8         reserved_1[0x10];
7378290650Shselasky	u8         op_mod[0x10];
7379290650Shselasky
7380290650Shselasky	u8         reserved_2[0x40];
7381290650Shselasky};
7382290650Shselasky
7383290650Shselaskystruct mlx5_ifc_alloc_pd_out_bits {
7384290650Shselasky	u8         status[0x8];
7385290650Shselasky	u8         reserved_0[0x18];
7386290650Shselasky
7387290650Shselasky	u8         syndrome[0x20];
7388290650Shselasky
7389290650Shselasky	u8         reserved_1[0x8];
7390290650Shselasky	u8         pd[0x18];
7391290650Shselasky
7392290650Shselasky	u8         reserved_2[0x20];
7393290650Shselasky};
7394290650Shselasky
7395290650Shselaskystruct mlx5_ifc_alloc_pd_in_bits {
7396290650Shselasky	u8         opcode[0x10];
7397290650Shselasky	u8         reserved_0[0x10];
7398290650Shselasky
7399290650Shselasky	u8         reserved_1[0x10];
7400290650Shselasky	u8         op_mod[0x10];
7401290650Shselasky
7402290650Shselasky	u8         reserved_2[0x40];
7403290650Shselasky};
7404290650Shselasky
7405290650Shselaskystruct mlx5_ifc_alloc_flow_counter_out_bits {
7406290650Shselasky	u8         status[0x8];
7407290650Shselasky	u8         reserved_0[0x18];
7408290650Shselasky
7409290650Shselasky	u8         syndrome[0x20];
7410290650Shselasky
7411290650Shselasky	u8         reserved_1[0x10];
7412290650Shselasky	u8         flow_counter_id[0x10];
7413290650Shselasky
7414290650Shselasky	u8         reserved_2[0x20];
7415290650Shselasky};
7416290650Shselasky
7417290650Shselaskystruct mlx5_ifc_alloc_flow_counter_in_bits {
7418290650Shselasky	u8         opcode[0x10];
7419290650Shselasky	u8         reserved_0[0x10];
7420290650Shselasky
7421290650Shselasky	u8         reserved_1[0x10];
7422290650Shselasky	u8         op_mod[0x10];
7423290650Shselasky
7424290650Shselasky	u8         reserved_2[0x40];
7425290650Shselasky};
7426290650Shselasky
7427290650Shselaskystruct mlx5_ifc_add_vxlan_udp_dport_out_bits {
7428290650Shselasky	u8         status[0x8];
7429290650Shselasky	u8         reserved_0[0x18];
7430290650Shselasky
7431290650Shselasky	u8         syndrome[0x20];
7432290650Shselasky
7433290650Shselasky	u8         reserved_1[0x40];
7434290650Shselasky};
7435290650Shselasky
7436290650Shselaskystruct mlx5_ifc_add_vxlan_udp_dport_in_bits {
7437290650Shselasky	u8         opcode[0x10];
7438290650Shselasky	u8         reserved_0[0x10];
7439290650Shselasky
7440290650Shselasky	u8         reserved_1[0x10];
7441290650Shselasky	u8         op_mod[0x10];
7442290650Shselasky
7443290650Shselasky	u8         reserved_2[0x20];
7444290650Shselasky
7445290650Shselasky	u8         reserved_3[0x10];
7446290650Shselasky	u8         vxlan_udp_port[0x10];
7447290650Shselasky};
7448290650Shselasky
7449290650Shselaskystruct mlx5_ifc_activate_tracer_out_bits {
7450290650Shselasky	u8         status[0x8];
7451290650Shselasky	u8         reserved_0[0x18];
7452290650Shselasky
7453290650Shselasky	u8         syndrome[0x20];
7454290650Shselasky
7455290650Shselasky	u8         reserved_1[0x40];
7456290650Shselasky};
7457290650Shselasky
7458290650Shselaskystruct mlx5_ifc_activate_tracer_in_bits {
7459290650Shselasky	u8         opcode[0x10];
7460290650Shselasky	u8         reserved_0[0x10];
7461290650Shselasky
7462290650Shselasky	u8         reserved_1[0x10];
7463290650Shselasky	u8         op_mod[0x10];
7464290650Shselasky
7465290650Shselasky	u8         mkey[0x20];
7466290650Shselasky
7467290650Shselasky	u8         reserved_2[0x20];
7468290650Shselasky};
7469290650Shselasky
7470306233Shselaskystruct mlx5_ifc_set_rate_limit_out_bits {
7471306233Shselasky	u8         status[0x8];
7472306233Shselasky	u8         reserved_at_8[0x18];
7473306233Shselasky
7474306233Shselasky	u8         syndrome[0x20];
7475306233Shselasky
7476306233Shselasky	u8         reserved_at_40[0x40];
7477306233Shselasky};
7478306233Shselasky
7479306233Shselaskystruct mlx5_ifc_set_rate_limit_in_bits {
7480306233Shselasky	u8         opcode[0x10];
7481306233Shselasky	u8         reserved_at_10[0x10];
7482306233Shselasky
7483306233Shselasky	u8         reserved_at_20[0x10];
7484306233Shselasky	u8         op_mod[0x10];
7485306233Shselasky
7486306233Shselasky	u8         reserved_at_40[0x10];
7487306233Shselasky	u8         rate_limit_index[0x10];
7488306233Shselasky
7489306233Shselasky	u8         reserved_at_60[0x20];
7490306233Shselasky
7491306233Shselasky	u8         rate_limit[0x20];
7492308678Shselasky	u8         burst_upper_bound[0x20];
7493306233Shselasky};
7494306233Shselasky
7495290650Shselaskystruct mlx5_ifc_access_register_out_bits {
7496290650Shselasky	u8         status[0x8];
7497290650Shselasky	u8         reserved_0[0x18];
7498290650Shselasky
7499290650Shselasky	u8         syndrome[0x20];
7500290650Shselasky
7501290650Shselasky	u8         reserved_1[0x40];
7502290650Shselasky
7503290650Shselasky	u8         register_data[0][0x20];
7504290650Shselasky};
7505290650Shselasky
7506290650Shselaskyenum {
7507290650Shselasky	MLX5_ACCESS_REGISTER_IN_OP_MOD_WRITE  = 0x0,
7508290650Shselasky	MLX5_ACCESS_REGISTER_IN_OP_MOD_READ   = 0x1,
7509290650Shselasky};
7510290650Shselasky
7511290650Shselaskystruct mlx5_ifc_access_register_in_bits {
7512290650Shselasky	u8         opcode[0x10];
7513290650Shselasky	u8         reserved_0[0x10];
7514290650Shselasky
7515290650Shselasky	u8         reserved_1[0x10];
7516290650Shselasky	u8         op_mod[0x10];
7517290650Shselasky
7518290650Shselasky	u8         reserved_2[0x10];
7519290650Shselasky	u8         register_id[0x10];
7520290650Shselasky
7521290650Shselasky	u8         argument[0x20];
7522290650Shselasky
7523290650Shselasky	u8         register_data[0][0x20];
7524290650Shselasky};
7525290650Shselasky
7526290650Shselaskystruct mlx5_ifc_sltp_reg_bits {
7527290650Shselasky	u8         status[0x4];
7528290650Shselasky	u8         version[0x4];
7529290650Shselasky	u8         local_port[0x8];
7530290650Shselasky	u8         pnat[0x2];
7531290650Shselasky	u8         reserved_0[0x2];
7532290650Shselasky	u8         lane[0x4];
7533290650Shselasky	u8         reserved_1[0x8];
7534290650Shselasky
7535290650Shselasky	u8         reserved_2[0x20];
7536290650Shselasky
7537290650Shselasky	u8         reserved_3[0x7];
7538290650Shselasky	u8         polarity[0x1];
7539290650Shselasky	u8         ob_tap0[0x8];
7540290650Shselasky	u8         ob_tap1[0x8];
7541290650Shselasky	u8         ob_tap2[0x8];
7542290650Shselasky
7543290650Shselasky	u8         reserved_4[0xc];
7544290650Shselasky	u8         ob_preemp_mode[0x4];
7545290650Shselasky	u8         ob_reg[0x8];
7546290650Shselasky	u8         ob_bias[0x8];
7547290650Shselasky
7548290650Shselasky	u8         reserved_5[0x20];
7549290650Shselasky};
7550290650Shselasky
7551290650Shselaskystruct mlx5_ifc_slrp_reg_bits {
7552290650Shselasky	u8         status[0x4];
7553290650Shselasky	u8         version[0x4];
7554290650Shselasky	u8         local_port[0x8];
7555290650Shselasky	u8         pnat[0x2];
7556290650Shselasky	u8         reserved_0[0x2];
7557290650Shselasky	u8         lane[0x4];
7558290650Shselasky	u8         reserved_1[0x8];
7559290650Shselasky
7560290650Shselasky	u8         ib_sel[0x2];
7561290650Shselasky	u8         reserved_2[0x11];
7562290650Shselasky	u8         dp_sel[0x1];
7563290650Shselasky	u8         dp90sel[0x4];
7564290650Shselasky	u8         mix90phase[0x8];
7565290650Shselasky
7566290650Shselasky	u8         ffe_tap0[0x8];
7567290650Shselasky	u8         ffe_tap1[0x8];
7568290650Shselasky	u8         ffe_tap2[0x8];
7569290650Shselasky	u8         ffe_tap3[0x8];
7570290650Shselasky
7571290650Shselasky	u8         ffe_tap4[0x8];
7572290650Shselasky	u8         ffe_tap5[0x8];
7573290650Shselasky	u8         ffe_tap6[0x8];
7574290650Shselasky	u8         ffe_tap7[0x8];
7575290650Shselasky
7576290650Shselasky	u8         ffe_tap8[0x8];
7577290650Shselasky	u8         mixerbias_tap_amp[0x8];
7578290650Shselasky	u8         reserved_3[0x7];
7579290650Shselasky	u8         ffe_tap_en[0x9];
7580290650Shselasky
7581290650Shselasky	u8         ffe_tap_offset0[0x8];
7582290650Shselasky	u8         ffe_tap_offset1[0x8];
7583290650Shselasky	u8         slicer_offset0[0x10];
7584290650Shselasky
7585290650Shselasky	u8         mixer_offset0[0x10];
7586290650Shselasky	u8         mixer_offset1[0x10];
7587290650Shselasky
7588290650Shselasky	u8         mixerbgn_inp[0x8];
7589290650Shselasky	u8         mixerbgn_inn[0x8];
7590290650Shselasky	u8         mixerbgn_refp[0x8];
7591290650Shselasky	u8         mixerbgn_refn[0x8];
7592290650Shselasky
7593290650Shselasky	u8         sel_slicer_lctrl_h[0x1];
7594290650Shselasky	u8         sel_slicer_lctrl_l[0x1];
7595290650Shselasky	u8         reserved_4[0x1];
7596290650Shselasky	u8         ref_mixer_vreg[0x5];
7597290650Shselasky	u8         slicer_gctrl[0x8];
7598290650Shselasky	u8         lctrl_input[0x8];
7599290650Shselasky	u8         mixer_offset_cm1[0x8];
7600290650Shselasky
7601290650Shselasky	u8         common_mode[0x6];
7602290650Shselasky	u8         reserved_5[0x1];
7603290650Shselasky	u8         mixer_offset_cm0[0x9];
7604290650Shselasky	u8         reserved_6[0x7];
7605290650Shselasky	u8         slicer_offset_cm[0x9];
7606290650Shselasky};
7607290650Shselasky
7608290650Shselaskystruct mlx5_ifc_slrg_reg_bits {
7609290650Shselasky	u8         status[0x4];
7610290650Shselasky	u8         version[0x4];
7611290650Shselasky	u8         local_port[0x8];
7612290650Shselasky	u8         pnat[0x2];
7613290650Shselasky	u8         reserved_0[0x2];
7614290650Shselasky	u8         lane[0x4];
7615290650Shselasky	u8         reserved_1[0x8];
7616290650Shselasky
7617290650Shselasky	u8         time_to_link_up[0x10];
7618290650Shselasky	u8         reserved_2[0xc];
7619290650Shselasky	u8         grade_lane_speed[0x4];
7620290650Shselasky
7621290650Shselasky	u8         grade_version[0x8];
7622290650Shselasky	u8         grade[0x18];
7623290650Shselasky
7624290650Shselasky	u8         reserved_3[0x4];
7625290650Shselasky	u8         height_grade_type[0x4];
7626290650Shselasky	u8         height_grade[0x18];
7627290650Shselasky
7628290650Shselasky	u8         height_dz[0x10];
7629290650Shselasky	u8         height_dv[0x10];
7630290650Shselasky
7631290650Shselasky	u8         reserved_4[0x10];
7632290650Shselasky	u8         height_sigma[0x10];
7633290650Shselasky
7634290650Shselasky	u8         reserved_5[0x20];
7635290650Shselasky
7636290650Shselasky	u8         reserved_6[0x4];
7637290650Shselasky	u8         phase_grade_type[0x4];
7638290650Shselasky	u8         phase_grade[0x18];
7639290650Shselasky
7640290650Shselasky	u8         reserved_7[0x8];
7641290650Shselasky	u8         phase_eo_pos[0x8];
7642290650Shselasky	u8         reserved_8[0x8];
7643290650Shselasky	u8         phase_eo_neg[0x8];
7644290650Shselasky
7645290650Shselasky	u8         ffe_set_tested[0x10];
7646290650Shselasky	u8         test_errors_per_lane[0x10];
7647290650Shselasky};
7648290650Shselasky
7649290650Shselaskystruct mlx5_ifc_pvlc_reg_bits {
7650290650Shselasky	u8         reserved_0[0x8];
7651290650Shselasky	u8         local_port[0x8];
7652290650Shselasky	u8         reserved_1[0x10];
7653290650Shselasky
7654290650Shselasky	u8         reserved_2[0x1c];
7655290650Shselasky	u8         vl_hw_cap[0x4];
7656290650Shselasky
7657290650Shselasky	u8         reserved_3[0x1c];
7658290650Shselasky	u8         vl_admin[0x4];
7659290650Shselasky
7660290650Shselasky	u8         reserved_4[0x1c];
7661290650Shselasky	u8         vl_operational[0x4];
7662290650Shselasky};
7663290650Shselasky
7664290650Shselaskystruct mlx5_ifc_pude_reg_bits {
7665290650Shselasky	u8         swid[0x8];
7666290650Shselasky	u8         local_port[0x8];
7667290650Shselasky	u8         reserved_0[0x4];
7668290650Shselasky	u8         admin_status[0x4];
7669290650Shselasky	u8         reserved_1[0x4];
7670290650Shselasky	u8         oper_status[0x4];
7671290650Shselasky
7672290650Shselasky	u8         reserved_2[0x60];
7673290650Shselasky};
7674290650Shselasky
7675290650Shselaskyenum {
7676290650Shselasky	MLX5_PTYS_REG_PROTO_MASK_INFINIBAND  = 0x1,
7677290650Shselasky	MLX5_PTYS_REG_PROTO_MASK_ETHERNET    = 0x4,
7678290650Shselasky};
7679290650Shselasky
7680290650Shselaskystruct mlx5_ifc_ptys_reg_bits {
7681306233Shselasky	u8         reserved_0[0x1];
7682306233Shselasky	u8         an_disable_admin[0x1];
7683306233Shselasky	u8         an_disable_cap[0x1];
7684306233Shselasky	u8         reserved_1[0x4];
7685306233Shselasky	u8         force_tx_aba_param[0x1];
7686290650Shselasky	u8         local_port[0x8];
7687306233Shselasky	u8         reserved_2[0xd];
7688290650Shselasky	u8         proto_mask[0x3];
7689290650Shselasky
7690306233Shselasky	u8         an_status[0x4];
7691306233Shselasky	u8         reserved_3[0xc];
7692306233Shselasky	u8         data_rate_oper[0x10];
7693290650Shselasky
7694306233Shselasky	u8         fc_proto_capability[0x20];
7695306233Shselasky
7696290650Shselasky	u8         eth_proto_capability[0x20];
7697290650Shselasky
7698290650Shselasky	u8         ib_link_width_capability[0x10];
7699290650Shselasky	u8         ib_proto_capability[0x10];
7700290650Shselasky
7701306233Shselasky	u8         fc_proto_admin[0x20];
7702290650Shselasky
7703290650Shselasky	u8         eth_proto_admin[0x20];
7704290650Shselasky
7705290650Shselasky	u8         ib_link_width_admin[0x10];
7706290650Shselasky	u8         ib_proto_admin[0x10];
7707290650Shselasky
7708306233Shselasky	u8         fc_proto_oper[0x20];
7709290650Shselasky
7710290650Shselasky	u8         eth_proto_oper[0x20];
7711290650Shselasky
7712290650Shselasky	u8         ib_link_width_oper[0x10];
7713290650Shselasky	u8         ib_proto_oper[0x10];
7714290650Shselasky
7715306233Shselasky	u8         reserved_4[0x20];
7716290650Shselasky
7717290650Shselasky	u8         eth_proto_lp_advertise[0x20];
7718290650Shselasky
7719306233Shselasky	u8         reserved_5[0x60];
7720290650Shselasky};
7721290650Shselasky
7722290650Shselaskystruct mlx5_ifc_ptas_reg_bits {
7723290650Shselasky	u8         reserved_0[0x20];
7724290650Shselasky
7725290650Shselasky	u8         algorithm_options[0x10];
7726290650Shselasky	u8         reserved_1[0x4];
7727290650Shselasky	u8         repetitions_mode[0x4];
7728290650Shselasky	u8         num_of_repetitions[0x8];
7729290650Shselasky
7730290650Shselasky	u8         grade_version[0x8];
7731290650Shselasky	u8         height_grade_type[0x4];
7732290650Shselasky	u8         phase_grade_type[0x4];
7733290650Shselasky	u8         height_grade_weight[0x8];
7734290650Shselasky	u8         phase_grade_weight[0x8];
7735290650Shselasky
7736290650Shselasky	u8         gisim_measure_bits[0x10];
7737290650Shselasky	u8         adaptive_tap_measure_bits[0x10];
7738290650Shselasky
7739290650Shselasky	u8         ber_bath_high_error_threshold[0x10];
7740290650Shselasky	u8         ber_bath_mid_error_threshold[0x10];
7741290650Shselasky
7742290650Shselasky	u8         ber_bath_low_error_threshold[0x10];
7743290650Shselasky	u8         one_ratio_high_threshold[0x10];
7744290650Shselasky
7745290650Shselasky	u8         one_ratio_high_mid_threshold[0x10];
7746290650Shselasky	u8         one_ratio_low_mid_threshold[0x10];
7747290650Shselasky
7748290650Shselasky	u8         one_ratio_low_threshold[0x10];
7749290650Shselasky	u8         ndeo_error_threshold[0x10];
7750290650Shselasky
7751290650Shselasky	u8         mixer_offset_step_size[0x10];
7752290650Shselasky	u8         reserved_2[0x8];
7753290650Shselasky	u8         mix90_phase_for_voltage_bath[0x8];
7754290650Shselasky
7755290650Shselasky	u8         mixer_offset_start[0x10];
7756290650Shselasky	u8         mixer_offset_end[0x10];
7757290650Shselasky
7758290650Shselasky	u8         reserved_3[0x15];
7759290650Shselasky	u8         ber_test_time[0xb];
7760290650Shselasky};
7761290650Shselasky
7762290650Shselaskystruct mlx5_ifc_pspa_reg_bits {
7763290650Shselasky	u8         swid[0x8];
7764290650Shselasky	u8         local_port[0x8];
7765290650Shselasky	u8         sub_port[0x8];
7766290650Shselasky	u8         reserved_0[0x8];
7767290650Shselasky
7768290650Shselasky	u8         reserved_1[0x20];
7769290650Shselasky};
7770290650Shselasky
7771290650Shselaskystruct mlx5_ifc_ppsc_reg_bits {
7772290650Shselasky	u8         reserved_0[0x8];
7773290650Shselasky	u8         local_port[0x8];
7774290650Shselasky	u8         reserved_1[0x10];
7775290650Shselasky
7776290650Shselasky	u8         reserved_2[0x60];
7777290650Shselasky
7778290650Shselasky	u8         reserved_3[0x1c];
7779290650Shselasky	u8         wrps_admin[0x4];
7780290650Shselasky
7781290650Shselasky	u8         reserved_4[0x1c];
7782290650Shselasky	u8         wrps_status[0x4];
7783290650Shselasky
7784290650Shselasky	u8         up_th_vld[0x1];
7785290650Shselasky	u8         down_th_vld[0x1];
7786290650Shselasky	u8         reserved_5[0x6];
7787290650Shselasky	u8         up_threshold[0x8];
7788290650Shselasky	u8         reserved_6[0x8];
7789290650Shselasky	u8         down_threshold[0x8];
7790290650Shselasky
7791290650Shselasky	u8         reserved_7[0x20];
7792290650Shselasky
7793290650Shselasky	u8         reserved_8[0x1c];
7794290650Shselasky	u8         srps_admin[0x4];
7795290650Shselasky
7796290650Shselasky	u8         reserved_9[0x60];
7797290650Shselasky};
7798290650Shselasky
7799290650Shselaskystruct mlx5_ifc_pplr_reg_bits {
7800290650Shselasky	u8         reserved_0[0x8];
7801290650Shselasky	u8         local_port[0x8];
7802290650Shselasky	u8         reserved_1[0x10];
7803290650Shselasky
7804290650Shselasky	u8         reserved_2[0x8];
7805290650Shselasky	u8         lb_cap[0x8];
7806290650Shselasky	u8         reserved_3[0x8];
7807290650Shselasky	u8         lb_en[0x8];
7808290650Shselasky};
7809290650Shselasky
7810290650Shselaskystruct mlx5_ifc_pplm_reg_bits {
7811290650Shselasky	u8         reserved_0[0x8];
7812290650Shselasky	u8         local_port[0x8];
7813290650Shselasky	u8         reserved_1[0x10];
7814290650Shselasky
7815290650Shselasky	u8         reserved_2[0x20];
7816290650Shselasky
7817290650Shselasky	u8         port_profile_mode[0x8];
7818290650Shselasky	u8         static_port_profile[0x8];
7819290650Shselasky	u8         active_port_profile[0x8];
7820290650Shselasky	u8         reserved_3[0x8];
7821290650Shselasky
7822290650Shselasky	u8         retransmission_active[0x8];
7823290650Shselasky	u8         fec_mode_active[0x18];
7824290650Shselasky
7825290650Shselasky	u8         reserved_4[0x10];
7826290650Shselasky	u8         v_100g_fec_override_cap[0x4];
7827290650Shselasky	u8         v_50g_fec_override_cap[0x4];
7828290650Shselasky	u8         v_25g_fec_override_cap[0x4];
7829290650Shselasky	u8         v_10g_40g_fec_override_cap[0x4];
7830290650Shselasky
7831290650Shselasky	u8         reserved_5[0x10];
7832290650Shselasky	u8         v_100g_fec_override_admin[0x4];
7833290650Shselasky	u8         v_50g_fec_override_admin[0x4];
7834290650Shselasky	u8         v_25g_fec_override_admin[0x4];
7835290650Shselasky	u8         v_10g_40g_fec_override_admin[0x4];
7836290650Shselasky};
7837290650Shselasky
7838290650Shselaskystruct mlx5_ifc_ppll_reg_bits {
7839290650Shselasky	u8         num_pll_groups[0x8];
7840290650Shselasky	u8         pll_group[0x8];
7841290650Shselasky	u8         reserved_0[0x4];
7842290650Shselasky	u8         num_plls[0x4];
7843290650Shselasky	u8         reserved_1[0x8];
7844290650Shselasky
7845290650Shselasky	u8         reserved_2[0x1f];
7846290650Shselasky	u8         ae[0x1];
7847290650Shselasky
7848290650Shselasky	u8         pll_status[4][0x40];
7849290650Shselasky};
7850290650Shselasky
7851290650Shselaskystruct mlx5_ifc_ppad_reg_bits {
7852290650Shselasky	u8         reserved_0[0x3];
7853290650Shselasky	u8         single_mac[0x1];
7854290650Shselasky	u8         reserved_1[0x4];
7855290650Shselasky	u8         local_port[0x8];
7856290650Shselasky	u8         mac_47_32[0x10];
7857290650Shselasky
7858290650Shselasky	u8         mac_31_0[0x20];
7859290650Shselasky
7860290650Shselasky	u8         reserved_2[0x40];
7861290650Shselasky};
7862290650Shselasky
7863290650Shselaskystruct mlx5_ifc_pmtu_reg_bits {
7864290650Shselasky	u8         reserved_0[0x8];
7865290650Shselasky	u8         local_port[0x8];
7866290650Shselasky	u8         reserved_1[0x10];
7867290650Shselasky
7868290650Shselasky	u8         max_mtu[0x10];
7869290650Shselasky	u8         reserved_2[0x10];
7870290650Shselasky
7871290650Shselasky	u8         admin_mtu[0x10];
7872290650Shselasky	u8         reserved_3[0x10];
7873290650Shselasky
7874290650Shselasky	u8         oper_mtu[0x10];
7875290650Shselasky	u8         reserved_4[0x10];
7876290650Shselasky};
7877290650Shselasky
7878290650Shselaskystruct mlx5_ifc_pmpr_reg_bits {
7879290650Shselasky	u8         reserved_0[0x8];
7880290650Shselasky	u8         module[0x8];
7881290650Shselasky	u8         reserved_1[0x10];
7882290650Shselasky
7883290650Shselasky	u8         reserved_2[0x18];
7884290650Shselasky	u8         attenuation_5g[0x8];
7885290650Shselasky
7886290650Shselasky	u8         reserved_3[0x18];
7887290650Shselasky	u8         attenuation_7g[0x8];
7888290650Shselasky
7889290650Shselasky	u8         reserved_4[0x18];
7890290650Shselasky	u8         attenuation_12g[0x8];
7891290650Shselasky};
7892290650Shselasky
7893290650Shselaskystruct mlx5_ifc_pmpe_reg_bits {
7894290650Shselasky	u8         reserved_0[0x8];
7895290650Shselasky	u8         module[0x8];
7896290650Shselasky	u8         reserved_1[0xc];
7897290650Shselasky	u8         module_status[0x4];
7898290650Shselasky
7899290650Shselasky	u8         reserved_2[0x14];
7900290650Shselasky	u8         error_type[0x4];
7901290650Shselasky	u8         reserved_3[0x8];
7902290650Shselasky
7903290650Shselasky	u8         reserved_4[0x40];
7904290650Shselasky};
7905290650Shselasky
7906290650Shselaskystruct mlx5_ifc_pmpc_reg_bits {
7907290650Shselasky	u8         module_state_updated[32][0x8];
7908290650Shselasky};
7909290650Shselasky
7910290650Shselaskystruct mlx5_ifc_pmlpn_reg_bits {
7911290650Shselasky	u8         reserved_0[0x4];
7912290650Shselasky	u8         mlpn_status[0x4];
7913290650Shselasky	u8         local_port[0x8];
7914290650Shselasky	u8         reserved_1[0x10];
7915290650Shselasky
7916290650Shselasky	u8         e[0x1];
7917290650Shselasky	u8         reserved_2[0x1f];
7918290650Shselasky};
7919290650Shselasky
7920290650Shselaskystruct mlx5_ifc_pmlp_reg_bits {
7921290650Shselasky	u8         rxtx[0x1];
7922290650Shselasky	u8         reserved_0[0x7];
7923290650Shselasky	u8         local_port[0x8];
7924290650Shselasky	u8         reserved_1[0x8];
7925290650Shselasky	u8         width[0x8];
7926290650Shselasky
7927290650Shselasky	u8         lane0_module_mapping[0x20];
7928290650Shselasky
7929290650Shselasky	u8         lane1_module_mapping[0x20];
7930290650Shselasky
7931290650Shselasky	u8         lane2_module_mapping[0x20];
7932290650Shselasky
7933290650Shselasky	u8         lane3_module_mapping[0x20];
7934290650Shselasky
7935290650Shselasky	u8         reserved_2[0x160];
7936290650Shselasky};
7937290650Shselasky
7938290650Shselaskystruct mlx5_ifc_pmaos_reg_bits {
7939290650Shselasky	u8         reserved_0[0x8];
7940290650Shselasky	u8         module[0x8];
7941290650Shselasky	u8         reserved_1[0x4];
7942290650Shselasky	u8         admin_status[0x4];
7943290650Shselasky	u8         reserved_2[0x4];
7944290650Shselasky	u8         oper_status[0x4];
7945290650Shselasky
7946290650Shselasky	u8         ase[0x1];
7947290650Shselasky	u8         ee[0x1];
7948290650Shselasky	u8         reserved_3[0x12];
7949290650Shselasky	u8         error_type[0x4];
7950290650Shselasky	u8         reserved_4[0x6];
7951290650Shselasky	u8         e[0x2];
7952290650Shselasky
7953290650Shselasky	u8         reserved_5[0x40];
7954290650Shselasky};
7955290650Shselasky
7956290650Shselaskystruct mlx5_ifc_plpc_reg_bits {
7957290650Shselasky	u8         reserved_0[0x4];
7958290650Shselasky	u8         profile_id[0xc];
7959290650Shselasky	u8         reserved_1[0x4];
7960290650Shselasky	u8         proto_mask[0x4];
7961290650Shselasky	u8         reserved_2[0x8];
7962290650Shselasky
7963290650Shselasky	u8         reserved_3[0x10];
7964290650Shselasky	u8         lane_speed[0x10];
7965290650Shselasky
7966290650Shselasky	u8         reserved_4[0x17];
7967290650Shselasky	u8         lpbf[0x1];
7968290650Shselasky	u8         fec_mode_policy[0x8];
7969290650Shselasky
7970290650Shselasky	u8         retransmission_capability[0x8];
7971290650Shselasky	u8         fec_mode_capability[0x18];
7972290650Shselasky
7973290650Shselasky	u8         retransmission_support_admin[0x8];
7974290650Shselasky	u8         fec_mode_support_admin[0x18];
7975290650Shselasky
7976290650Shselasky	u8         retransmission_request_admin[0x8];
7977290650Shselasky	u8         fec_mode_request_admin[0x18];
7978290650Shselasky
7979290650Shselasky	u8         reserved_5[0x80];
7980290650Shselasky};
7981290650Shselasky
7982290650Shselaskystruct mlx5_ifc_pll_status_data_bits {
7983290650Shselasky	u8         reserved_0[0x1];
7984290650Shselasky	u8         lock_cal[0x1];
7985290650Shselasky	u8         lock_status[0x2];
7986290650Shselasky	u8         reserved_1[0x2];
7987290650Shselasky	u8         algo_f_ctrl[0xa];
7988290650Shselasky	u8         analog_algo_num_var[0x6];
7989290650Shselasky	u8         f_ctrl_measure[0xa];
7990290650Shselasky
7991290650Shselasky	u8         reserved_2[0x2];
7992290650Shselasky	u8         analog_var[0x6];
7993290650Shselasky	u8         reserved_3[0x2];
7994290650Shselasky	u8         high_var[0x6];
7995290650Shselasky	u8         reserved_4[0x2];
7996290650Shselasky	u8         low_var[0x6];
7997290650Shselasky	u8         reserved_5[0x2];
7998290650Shselasky	u8         mid_val[0x6];
7999290650Shselasky};
8000290650Shselasky
8001290650Shselaskystruct mlx5_ifc_plib_reg_bits {
8002290650Shselasky	u8         reserved_0[0x8];
8003290650Shselasky	u8         local_port[0x8];
8004290650Shselasky	u8         reserved_1[0x8];
8005290650Shselasky	u8         ib_port[0x8];
8006290650Shselasky
8007290650Shselasky	u8         reserved_2[0x60];
8008290650Shselasky};
8009290650Shselasky
8010290650Shselaskystruct mlx5_ifc_plbf_reg_bits {
8011290650Shselasky	u8         reserved_0[0x8];
8012290650Shselasky	u8         local_port[0x8];
8013290650Shselasky	u8         reserved_1[0xd];
8014290650Shselasky	u8         lbf_mode[0x3];
8015290650Shselasky
8016290650Shselasky	u8         reserved_2[0x20];
8017290650Shselasky};
8018290650Shselasky
8019290650Shselaskystruct mlx5_ifc_pipg_reg_bits {
8020290650Shselasky	u8         reserved_0[0x8];
8021290650Shselasky	u8         local_port[0x8];
8022290650Shselasky	u8         reserved_1[0x10];
8023290650Shselasky
8024290650Shselasky	u8         dic[0x1];
8025290650Shselasky	u8         reserved_2[0x19];
8026290650Shselasky	u8         ipg[0x4];
8027290650Shselasky	u8         reserved_3[0x2];
8028290650Shselasky};
8029290650Shselasky
8030290650Shselaskystruct mlx5_ifc_pifr_reg_bits {
8031290650Shselasky	u8         reserved_0[0x8];
8032290650Shselasky	u8         local_port[0x8];
8033290650Shselasky	u8         reserved_1[0x10];
8034290650Shselasky
8035290650Shselasky	u8         reserved_2[0xe0];
8036290650Shselasky
8037290650Shselasky	u8         port_filter[8][0x20];
8038290650Shselasky
8039290650Shselasky	u8         port_filter_update_en[8][0x20];
8040290650Shselasky};
8041290650Shselasky
8042290650Shselaskystruct mlx5_ifc_phys_layer_cntrs_bits {
8043290650Shselasky	u8         time_since_last_clear_high[0x20];
8044290650Shselasky
8045290650Shselasky	u8         time_since_last_clear_low[0x20];
8046290650Shselasky
8047290650Shselasky	u8         symbol_errors_high[0x20];
8048290650Shselasky
8049290650Shselasky	u8         symbol_errors_low[0x20];
8050290650Shselasky
8051290650Shselasky	u8         sync_headers_errors_high[0x20];
8052290650Shselasky
8053290650Shselasky	u8         sync_headers_errors_low[0x20];
8054290650Shselasky
8055290650Shselasky	u8         edpl_bip_errors_lane0_high[0x20];
8056290650Shselasky
8057290650Shselasky	u8         edpl_bip_errors_lane0_low[0x20];
8058290650Shselasky
8059290650Shselasky	u8         edpl_bip_errors_lane1_high[0x20];
8060290650Shselasky
8061290650Shselasky	u8         edpl_bip_errors_lane1_low[0x20];
8062290650Shselasky
8063290650Shselasky	u8         edpl_bip_errors_lane2_high[0x20];
8064290650Shselasky
8065290650Shselasky	u8         edpl_bip_errors_lane2_low[0x20];
8066290650Shselasky
8067290650Shselasky	u8         edpl_bip_errors_lane3_high[0x20];
8068290650Shselasky
8069290650Shselasky	u8         edpl_bip_errors_lane3_low[0x20];
8070290650Shselasky
8071290650Shselasky	u8         fc_fec_corrected_blocks_lane0_high[0x20];
8072290650Shselasky
8073290650Shselasky	u8         fc_fec_corrected_blocks_lane0_low[0x20];
8074290650Shselasky
8075290650Shselasky	u8         fc_fec_corrected_blocks_lane1_high[0x20];
8076290650Shselasky
8077290650Shselasky	u8         fc_fec_corrected_blocks_lane1_low[0x20];
8078290650Shselasky
8079290650Shselasky	u8         fc_fec_corrected_blocks_lane2_high[0x20];
8080290650Shselasky
8081290650Shselasky	u8         fc_fec_corrected_blocks_lane2_low[0x20];
8082290650Shselasky
8083290650Shselasky	u8         fc_fec_corrected_blocks_lane3_high[0x20];
8084290650Shselasky
8085290650Shselasky	u8         fc_fec_corrected_blocks_lane3_low[0x20];
8086290650Shselasky
8087290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane0_high[0x20];
8088290650Shselasky
8089290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane0_low[0x20];
8090290650Shselasky
8091290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane1_high[0x20];
8092290650Shselasky
8093290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane1_low[0x20];
8094290650Shselasky
8095290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane2_high[0x20];
8096290650Shselasky
8097290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane2_low[0x20];
8098290650Shselasky
8099290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane3_high[0x20];
8100290650Shselasky
8101290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane3_low[0x20];
8102290650Shselasky
8103290650Shselasky	u8         rs_fec_corrected_blocks_high[0x20];
8104290650Shselasky
8105290650Shselasky	u8         rs_fec_corrected_blocks_low[0x20];
8106290650Shselasky
8107290650Shselasky	u8         rs_fec_uncorrectable_blocks_high[0x20];
8108290650Shselasky
8109290650Shselasky	u8         rs_fec_uncorrectable_blocks_low[0x20];
8110290650Shselasky
8111290650Shselasky	u8         rs_fec_no_errors_blocks_high[0x20];
8112290650Shselasky
8113290650Shselasky	u8         rs_fec_no_errors_blocks_low[0x20];
8114290650Shselasky
8115290650Shselasky	u8         rs_fec_single_error_blocks_high[0x20];
8116290650Shselasky
8117290650Shselasky	u8         rs_fec_single_error_blocks_low[0x20];
8118290650Shselasky
8119290650Shselasky	u8         rs_fec_corrected_symbols_total_high[0x20];
8120290650Shselasky
8121290650Shselasky	u8         rs_fec_corrected_symbols_total_low[0x20];
8122290650Shselasky
8123290650Shselasky	u8         rs_fec_corrected_symbols_lane0_high[0x20];
8124290650Shselasky
8125290650Shselasky	u8         rs_fec_corrected_symbols_lane0_low[0x20];
8126290650Shselasky
8127290650Shselasky	u8         rs_fec_corrected_symbols_lane1_high[0x20];
8128290650Shselasky
8129290650Shselasky	u8         rs_fec_corrected_symbols_lane1_low[0x20];
8130290650Shselasky
8131290650Shselasky	u8         rs_fec_corrected_symbols_lane2_high[0x20];
8132290650Shselasky
8133290650Shselasky	u8         rs_fec_corrected_symbols_lane2_low[0x20];
8134290650Shselasky
8135290650Shselasky	u8         rs_fec_corrected_symbols_lane3_high[0x20];
8136290650Shselasky
8137290650Shselasky	u8         rs_fec_corrected_symbols_lane3_low[0x20];
8138290650Shselasky
8139290650Shselasky	u8         link_down_events[0x20];
8140290650Shselasky
8141290650Shselasky	u8         successful_recovery_events[0x20];
8142290650Shselasky
8143290650Shselasky	u8         reserved_0[0x180];
8144290650Shselasky};
8145290650Shselasky
8146329204Shselaskystruct mlx5_ifc_ib_port_cntrs_grp_data_layout_bits {
8147329204Shselasky	u8	   symbol_error_counter[0x10];
8148329204Shselasky
8149329204Shselasky	u8         link_error_recovery_counter[0x8];
8150329204Shselasky
8151329204Shselasky	u8         link_downed_counter[0x8];
8152329204Shselasky
8153329204Shselasky	u8         port_rcv_errors[0x10];
8154329204Shselasky
8155329204Shselasky	u8         port_rcv_remote_physical_errors[0x10];
8156329204Shselasky
8157329204Shselasky	u8         port_rcv_switch_relay_errors[0x10];
8158329204Shselasky
8159329204Shselasky	u8         port_xmit_discards[0x10];
8160329204Shselasky
8161329204Shselasky	u8         port_xmit_constraint_errors[0x8];
8162329204Shselasky
8163329204Shselasky	u8         port_rcv_constraint_errors[0x8];
8164329204Shselasky
8165329204Shselasky	u8         reserved_at_70[0x8];
8166329204Shselasky
8167329204Shselasky	u8         link_overrun_errors[0x8];
8168329204Shselasky
8169329204Shselasky	u8	   reserved_at_80[0x10];
8170329204Shselasky
8171329204Shselasky	u8         vl_15_dropped[0x10];
8172329204Shselasky
8173329204Shselasky	u8	   reserved_at_a0[0xa0];
8174329204Shselasky};
8175329204Shselasky
8176321992Shselaskystruct mlx5_ifc_phys_layer_statistical_cntrs_bits {
8177321992Shselasky	u8         time_since_last_clear_high[0x20];
8178321992Shselasky
8179321992Shselasky	u8         time_since_last_clear_low[0x20];
8180321992Shselasky
8181321992Shselasky	u8         phy_received_bits_high[0x20];
8182321992Shselasky
8183321992Shselasky	u8         phy_received_bits_low[0x20];
8184321992Shselasky
8185321992Shselasky	u8         phy_symbol_errors_high[0x20];
8186321992Shselasky
8187321992Shselasky	u8         phy_symbol_errors_low[0x20];
8188321992Shselasky
8189321992Shselasky	u8         phy_corrected_bits_high[0x20];
8190321992Shselasky
8191321992Shselasky	u8         phy_corrected_bits_low[0x20];
8192321992Shselasky
8193321992Shselasky	u8         phy_corrected_bits_lane0_high[0x20];
8194321992Shselasky
8195321992Shselasky	u8         phy_corrected_bits_lane0_low[0x20];
8196321992Shselasky
8197321992Shselasky	u8         phy_corrected_bits_lane1_high[0x20];
8198321992Shselasky
8199321992Shselasky	u8         phy_corrected_bits_lane1_low[0x20];
8200321992Shselasky
8201321992Shselasky	u8         phy_corrected_bits_lane2_high[0x20];
8202321992Shselasky
8203321992Shselasky	u8         phy_corrected_bits_lane2_low[0x20];
8204321992Shselasky
8205321992Shselasky	u8         phy_corrected_bits_lane3_high[0x20];
8206321992Shselasky
8207321992Shselasky	u8         phy_corrected_bits_lane3_low[0x20];
8208321992Shselasky
8209321992Shselasky	u8         reserved_at_200[0x5c0];
8210321992Shselasky};
8211321992Shselasky
8212308678Shselaskystruct mlx5_ifc_infiniband_port_cntrs_bits {
8213308678Shselasky	u8         symbol_error_counter[0x10];
8214308678Shselasky	u8         link_error_recovery_counter[0x8];
8215308678Shselasky	u8         link_downed_counter[0x8];
8216308678Shselasky
8217308678Shselasky	u8         port_rcv_errors[0x10];
8218308678Shselasky	u8         port_rcv_remote_physical_errors[0x10];
8219308678Shselasky
8220308678Shselasky	u8         port_rcv_switch_relay_errors[0x10];
8221308678Shselasky	u8         port_xmit_discards[0x10];
8222308678Shselasky
8223308678Shselasky	u8         port_xmit_constraint_errors[0x8];
8224308678Shselasky	u8         port_rcv_constraint_errors[0x8];
8225308678Shselasky	u8         reserved_0[0x8];
8226308678Shselasky	u8         local_link_integrity_errors[0x4];
8227308678Shselasky	u8         excessive_buffer_overrun_errors[0x4];
8228308678Shselasky
8229308678Shselasky	u8         reserved_1[0x10];
8230308678Shselasky	u8         vl_15_dropped[0x10];
8231308678Shselasky
8232308678Shselasky	u8         port_xmit_data[0x20];
8233308678Shselasky
8234308678Shselasky	u8         port_rcv_data[0x20];
8235308678Shselasky
8236308678Shselasky	u8         port_xmit_pkts[0x20];
8237308678Shselasky
8238308678Shselasky	u8         port_rcv_pkts[0x20];
8239308678Shselasky
8240308678Shselasky	u8         port_xmit_wait[0x20];
8241308678Shselasky
8242308678Shselasky	u8         reserved_2[0x680];
8243308678Shselasky};
8244308678Shselasky
8245290650Shselaskystruct mlx5_ifc_phrr_reg_bits {
8246290650Shselasky	u8         clr[0x1];
8247290650Shselasky	u8         reserved_0[0x7];
8248290650Shselasky	u8         local_port[0x8];
8249290650Shselasky	u8         reserved_1[0x10];
8250290650Shselasky
8251290650Shselasky	u8         hist_group[0x8];
8252290650Shselasky	u8         reserved_2[0x10];
8253290650Shselasky	u8         hist_id[0x8];
8254290650Shselasky
8255290650Shselasky	u8         reserved_3[0x40];
8256290650Shselasky
8257290650Shselasky	u8         time_since_last_clear_high[0x20];
8258290650Shselasky
8259290650Shselasky	u8         time_since_last_clear_low[0x20];
8260290650Shselasky
8261290650Shselasky	u8         bin[10][0x20];
8262290650Shselasky};
8263290650Shselasky
8264290650Shselaskystruct mlx5_ifc_phbr_for_prio_reg_bits {
8265290650Shselasky	u8         reserved_0[0x18];
8266290650Shselasky	u8         prio[0x8];
8267290650Shselasky};
8268290650Shselasky
8269290650Shselaskystruct mlx5_ifc_phbr_for_port_tclass_reg_bits {
8270290650Shselasky	u8         reserved_0[0x18];
8271290650Shselasky	u8         tclass[0x8];
8272290650Shselasky};
8273290650Shselasky
8274290650Shselaskystruct mlx5_ifc_phbr_binding_reg_bits {
8275290650Shselasky	u8         opcode[0x4];
8276290650Shselasky	u8         reserved_0[0x4];
8277290650Shselasky	u8         local_port[0x8];
8278290650Shselasky	u8         pnat[0x2];
8279290650Shselasky	u8         reserved_1[0xe];
8280290650Shselasky
8281290650Shselasky	u8         hist_group[0x8];
8282290650Shselasky	u8         reserved_2[0x10];
8283290650Shselasky	u8         hist_id[0x8];
8284290650Shselasky
8285290650Shselasky	u8         reserved_3[0x10];
8286290650Shselasky	u8         hist_type[0x10];
8287290650Shselasky
8288290650Shselasky	u8         hist_parameters[0x20];
8289290650Shselasky
8290290650Shselasky	u8         hist_min_value[0x20];
8291290650Shselasky
8292290650Shselasky	u8         hist_max_value[0x20];
8293290650Shselasky
8294290650Shselasky	u8         sample_time[0x20];
8295290650Shselasky};
8296290650Shselasky
8297290650Shselaskyenum {
8298290650Shselasky	MLX5_PFCC_REG_PPAN_DISABLED  = 0x0,
8299290650Shselasky	MLX5_PFCC_REG_PPAN_ENABLED   = 0x1,
8300290650Shselasky};
8301290650Shselasky
8302290650Shselaskystruct mlx5_ifc_pfcc_reg_bits {
8303306233Shselasky	u8         dcbx_operation_type[0x2];
8304306233Shselasky	u8         cap_local_admin[0x1];
8305306233Shselasky	u8         cap_remote_admin[0x1];
8306306233Shselasky	u8         reserved_0[0x4];
8307290650Shselasky	u8         local_port[0x8];
8308290650Shselasky	u8         pnat[0x2];
8309290650Shselasky	u8         reserved_1[0xc];
8310290650Shselasky	u8         shl_cap[0x1];
8311290650Shselasky	u8         shl_opr[0x1];
8312290650Shselasky
8313290650Shselasky	u8         ppan[0x4];
8314290650Shselasky	u8         reserved_2[0x4];
8315290650Shselasky	u8         prio_mask_tx[0x8];
8316290650Shselasky	u8         reserved_3[0x8];
8317290650Shselasky	u8         prio_mask_rx[0x8];
8318290650Shselasky
8319290650Shselasky	u8         pptx[0x1];
8320290650Shselasky	u8         aptx[0x1];
8321290650Shselasky	u8         reserved_4[0x6];
8322290650Shselasky	u8         pfctx[0x8];
8323306233Shselasky	u8         reserved_5[0x8];
8324306233Shselasky	u8         cbftx[0x8];
8325290650Shselasky
8326290650Shselasky	u8         pprx[0x1];
8327290650Shselasky	u8         aprx[0x1];
8328290650Shselasky	u8         reserved_6[0x6];
8329290650Shselasky	u8         pfcrx[0x8];
8330306233Shselasky	u8         reserved_7[0x8];
8331306233Shselasky	u8         cbfrx[0x8];
8332290650Shselasky
8333308678Shselasky	u8         device_stall_minor_watermark[0x10];
8334308678Shselasky	u8         device_stall_critical_watermark[0x10];
8335308678Shselasky
8336308678Shselasky	u8         reserved_8[0x60];
8337290650Shselasky};
8338290650Shselasky
8339290650Shselaskystruct mlx5_ifc_pelc_reg_bits {
8340290650Shselasky	u8         op[0x4];
8341290650Shselasky	u8         reserved_0[0x4];
8342290650Shselasky	u8         local_port[0x8];
8343290650Shselasky	u8         reserved_1[0x10];
8344290650Shselasky
8345290650Shselasky	u8         op_admin[0x8];
8346290650Shselasky	u8         op_capability[0x8];
8347290650Shselasky	u8         op_request[0x8];
8348290650Shselasky	u8         op_active[0x8];
8349290650Shselasky
8350290650Shselasky	u8         admin[0x40];
8351290650Shselasky
8352290650Shselasky	u8         capability[0x40];
8353290650Shselasky
8354290650Shselasky	u8         request[0x40];
8355290650Shselasky
8356290650Shselasky	u8         active[0x40];
8357290650Shselasky
8358290650Shselasky	u8         reserved_2[0x80];
8359290650Shselasky};
8360290650Shselasky
8361290650Shselaskystruct mlx5_ifc_peir_reg_bits {
8362290650Shselasky	u8         reserved_0[0x8];
8363290650Shselasky	u8         local_port[0x8];
8364290650Shselasky	u8         reserved_1[0x10];
8365290650Shselasky
8366290650Shselasky	u8         reserved_2[0xc];
8367290650Shselasky	u8         error_count[0x4];
8368290650Shselasky	u8         reserved_3[0x10];
8369290650Shselasky
8370290650Shselasky	u8         reserved_4[0xc];
8371290650Shselasky	u8         lane[0x4];
8372290650Shselasky	u8         reserved_5[0x8];
8373290650Shselasky	u8         error_type[0x8];
8374290650Shselasky};
8375290650Shselasky
8376290650Shselaskystruct mlx5_ifc_pcap_reg_bits {
8377290650Shselasky	u8         reserved_0[0x8];
8378290650Shselasky	u8         local_port[0x8];
8379290650Shselasky	u8         reserved_1[0x10];
8380290650Shselasky
8381290650Shselasky	u8         port_capability_mask[4][0x20];
8382290650Shselasky};
8383290650Shselasky
8384290650Shselaskystruct mlx5_ifc_pbmc_reg_bits {
8385290650Shselasky	u8         reserved_0[0x8];
8386290650Shselasky	u8         local_port[0x8];
8387290650Shselasky	u8         reserved_1[0x10];
8388290650Shselasky
8389290650Shselasky	u8         xoff_timer_value[0x10];
8390290650Shselasky	u8         xoff_refresh[0x10];
8391290650Shselasky
8392290650Shselasky	u8         reserved_2[0x10];
8393290650Shselasky	u8         port_buffer_size[0x10];
8394290650Shselasky
8395290650Shselasky	struct mlx5_ifc_bufferx_reg_bits buffer[10];
8396290650Shselasky
8397290650Shselasky	u8         reserved_3[0x40];
8398290650Shselasky
8399290650Shselasky	u8         port_shared_buffer[0x40];
8400290650Shselasky};
8401290650Shselasky
8402290650Shselaskystruct mlx5_ifc_paos_reg_bits {
8403290650Shselasky	u8         swid[0x8];
8404290650Shselasky	u8         local_port[0x8];
8405290650Shselasky	u8         reserved_0[0x4];
8406290650Shselasky	u8         admin_status[0x4];
8407290650Shselasky	u8         reserved_1[0x4];
8408290650Shselasky	u8         oper_status[0x4];
8409290650Shselasky
8410290650Shselasky	u8         ase[0x1];
8411290650Shselasky	u8         ee[0x1];
8412290650Shselasky	u8         reserved_2[0x1c];
8413290650Shselasky	u8         e[0x2];
8414290650Shselasky
8415290650Shselasky	u8         reserved_3[0x40];
8416290650Shselasky};
8417290650Shselasky
8418290650Shselaskystruct mlx5_ifc_pamp_reg_bits {
8419290650Shselasky	u8         reserved_0[0x8];
8420290650Shselasky	u8         opamp_group[0x8];
8421290650Shselasky	u8         reserved_1[0xc];
8422290650Shselasky	u8         opamp_group_type[0x4];
8423290650Shselasky
8424290650Shselasky	u8         start_index[0x10];
8425290650Shselasky	u8         reserved_2[0x4];
8426290650Shselasky	u8         num_of_indices[0xc];
8427290650Shselasky
8428290650Shselasky	u8         index_data[18][0x10];
8429290650Shselasky};
8430290650Shselasky
8431290650Shselaskystruct mlx5_ifc_link_level_retrans_cntr_grp_date_bits {
8432290650Shselasky	u8         llr_rx_cells_high[0x20];
8433290650Shselasky
8434290650Shselasky	u8         llr_rx_cells_low[0x20];
8435290650Shselasky
8436290650Shselasky	u8         llr_rx_error_high[0x20];
8437290650Shselasky
8438290650Shselasky	u8         llr_rx_error_low[0x20];
8439290650Shselasky
8440290650Shselasky	u8         llr_rx_crc_error_high[0x20];
8441290650Shselasky
8442290650Shselasky	u8         llr_rx_crc_error_low[0x20];
8443290650Shselasky
8444290650Shselasky	u8         llr_tx_cells_high[0x20];
8445290650Shselasky
8446290650Shselasky	u8         llr_tx_cells_low[0x20];
8447290650Shselasky
8448290650Shselasky	u8         llr_tx_ret_cells_high[0x20];
8449290650Shselasky
8450290650Shselasky	u8         llr_tx_ret_cells_low[0x20];
8451290650Shselasky
8452290650Shselasky	u8         llr_tx_ret_events_high[0x20];
8453290650Shselasky
8454290650Shselasky	u8         llr_tx_ret_events_low[0x20];
8455290650Shselasky
8456290650Shselasky	u8         reserved_0[0x640];
8457290650Shselasky};
8458290650Shselasky
8459290650Shselaskystruct mlx5_ifc_lane_2_module_mapping_bits {
8460290650Shselasky	u8         reserved_0[0x6];
8461290650Shselasky	u8         rx_lane[0x2];
8462290650Shselasky	u8         reserved_1[0x6];
8463290650Shselasky	u8         tx_lane[0x2];
8464290650Shselasky	u8         reserved_2[0x8];
8465290650Shselasky	u8         module[0x8];
8466290650Shselasky};
8467290650Shselasky
8468290650Shselaskystruct mlx5_ifc_eth_per_traffic_class_layout_bits {
8469290650Shselasky	u8         transmit_queue_high[0x20];
8470290650Shselasky
8471290650Shselasky	u8         transmit_queue_low[0x20];
8472290650Shselasky
8473290650Shselasky	u8         reserved_0[0x780];
8474290650Shselasky};
8475290650Shselasky
8476290650Shselaskystruct mlx5_ifc_eth_per_traffic_class_cong_layout_bits {
8477290650Shselasky	u8         no_buffer_discard_uc_high[0x20];
8478290650Shselasky
8479290650Shselasky	u8         no_buffer_discard_uc_low[0x20];
8480290650Shselasky
8481290650Shselasky	u8         wred_discard_high[0x20];
8482290650Shselasky
8483290650Shselasky	u8         wred_discard_low[0x20];
8484290650Shselasky
8485290650Shselasky	u8         reserved_0[0x740];
8486290650Shselasky};
8487290650Shselasky
8488290650Shselaskystruct mlx5_ifc_eth_per_prio_grp_data_layout_bits {
8489290650Shselasky	u8         rx_octets_high[0x20];
8490290650Shselasky
8491290650Shselasky	u8         rx_octets_low[0x20];
8492290650Shselasky
8493290650Shselasky	u8         reserved_0[0xc0];
8494290650Shselasky
8495290650Shselasky	u8         rx_frames_high[0x20];
8496290650Shselasky
8497290650Shselasky	u8         rx_frames_low[0x20];
8498290650Shselasky
8499290650Shselasky	u8         tx_octets_high[0x20];
8500290650Shselasky
8501290650Shselasky	u8         tx_octets_low[0x20];
8502290650Shselasky
8503290650Shselasky	u8         reserved_1[0xc0];
8504290650Shselasky
8505290650Shselasky	u8         tx_frames_high[0x20];
8506290650Shselasky
8507290650Shselasky	u8         tx_frames_low[0x20];
8508290650Shselasky
8509290650Shselasky	u8         rx_pause_high[0x20];
8510290650Shselasky
8511290650Shselasky	u8         rx_pause_low[0x20];
8512290650Shselasky
8513290650Shselasky	u8         rx_pause_duration_high[0x20];
8514290650Shselasky
8515290650Shselasky	u8         rx_pause_duration_low[0x20];
8516290650Shselasky
8517290650Shselasky	u8         tx_pause_high[0x20];
8518290650Shselasky
8519290650Shselasky	u8         tx_pause_low[0x20];
8520290650Shselasky
8521290650Shselasky	u8         tx_pause_duration_high[0x20];
8522290650Shselasky
8523290650Shselasky	u8         tx_pause_duration_low[0x20];
8524290650Shselasky
8525290650Shselasky	u8         rx_pause_transition_high[0x20];
8526290650Shselasky
8527290650Shselasky	u8         rx_pause_transition_low[0x20];
8528290650Shselasky
8529308678Shselasky	u8         rx_discards_high[0x20];
8530308678Shselasky
8531308678Shselasky	u8         rx_discards_low[0x20];
8532308678Shselasky
8533308678Shselasky	u8         device_stall_minor_watermark_cnt_high[0x20];
8534308678Shselasky
8535308678Shselasky	u8         device_stall_minor_watermark_cnt_low[0x20];
8536308678Shselasky
8537308678Shselasky	u8         device_stall_critical_watermark_cnt_high[0x20];
8538308678Shselasky
8539308678Shselasky	u8         device_stall_critical_watermark_cnt_low[0x20];
8540308678Shselasky
8541308678Shselasky	u8         reserved_2[0x340];
8542290650Shselasky};
8543290650Shselasky
8544290650Shselaskystruct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits {
8545290650Shselasky	u8         port_transmit_wait_high[0x20];
8546290650Shselasky
8547290650Shselasky	u8         port_transmit_wait_low[0x20];
8548290650Shselasky
8549290650Shselasky	u8         ecn_marked_high[0x20];
8550290650Shselasky
8551290650Shselasky	u8         ecn_marked_low[0x20];
8552290650Shselasky
8553290650Shselasky	u8         no_buffer_discard_mc_high[0x20];
8554290650Shselasky
8555290650Shselasky	u8         no_buffer_discard_mc_low[0x20];
8556290650Shselasky
8557290650Shselasky	u8         reserved_0[0x700];
8558290650Shselasky};
8559290650Shselasky
8560290650Shselaskystruct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits {
8561290650Shselasky	u8         a_frames_transmitted_ok_high[0x20];
8562290650Shselasky
8563290650Shselasky	u8         a_frames_transmitted_ok_low[0x20];
8564290650Shselasky
8565290650Shselasky	u8         a_frames_received_ok_high[0x20];
8566290650Shselasky
8567290650Shselasky	u8         a_frames_received_ok_low[0x20];
8568290650Shselasky
8569290650Shselasky	u8         a_frame_check_sequence_errors_high[0x20];
8570290650Shselasky
8571290650Shselasky	u8         a_frame_check_sequence_errors_low[0x20];
8572290650Shselasky
8573290650Shselasky	u8         a_alignment_errors_high[0x20];
8574290650Shselasky
8575290650Shselasky	u8         a_alignment_errors_low[0x20];
8576290650Shselasky
8577290650Shselasky	u8         a_octets_transmitted_ok_high[0x20];
8578290650Shselasky
8579290650Shselasky	u8         a_octets_transmitted_ok_low[0x20];
8580290650Shselasky
8581290650Shselasky	u8         a_octets_received_ok_high[0x20];
8582290650Shselasky
8583290650Shselasky	u8         a_octets_received_ok_low[0x20];
8584290650Shselasky
8585290650Shselasky	u8         a_multicast_frames_xmitted_ok_high[0x20];
8586290650Shselasky
8587290650Shselasky	u8         a_multicast_frames_xmitted_ok_low[0x20];
8588290650Shselasky
8589290650Shselasky	u8         a_broadcast_frames_xmitted_ok_high[0x20];
8590290650Shselasky
8591290650Shselasky	u8         a_broadcast_frames_xmitted_ok_low[0x20];
8592290650Shselasky
8593290650Shselasky	u8         a_multicast_frames_received_ok_high[0x20];
8594290650Shselasky
8595290650Shselasky	u8         a_multicast_frames_received_ok_low[0x20];
8596290650Shselasky
8597290650Shselasky	u8         a_broadcast_frames_recieved_ok_high[0x20];
8598290650Shselasky
8599290650Shselasky	u8         a_broadcast_frames_recieved_ok_low[0x20];
8600290650Shselasky
8601290650Shselasky	u8         a_in_range_length_errors_high[0x20];
8602290650Shselasky
8603290650Shselasky	u8         a_in_range_length_errors_low[0x20];
8604290650Shselasky
8605290650Shselasky	u8         a_out_of_range_length_field_high[0x20];
8606290650Shselasky
8607290650Shselasky	u8         a_out_of_range_length_field_low[0x20];
8608290650Shselasky
8609290650Shselasky	u8         a_frame_too_long_errors_high[0x20];
8610290650Shselasky
8611290650Shselasky	u8         a_frame_too_long_errors_low[0x20];
8612290650Shselasky
8613290650Shselasky	u8         a_symbol_error_during_carrier_high[0x20];
8614290650Shselasky
8615290650Shselasky	u8         a_symbol_error_during_carrier_low[0x20];
8616290650Shselasky
8617290650Shselasky	u8         a_mac_control_frames_transmitted_high[0x20];
8618290650Shselasky
8619290650Shselasky	u8         a_mac_control_frames_transmitted_low[0x20];
8620290650Shselasky
8621290650Shselasky	u8         a_mac_control_frames_received_high[0x20];
8622290650Shselasky
8623290650Shselasky	u8         a_mac_control_frames_received_low[0x20];
8624290650Shselasky
8625290650Shselasky	u8         a_unsupported_opcodes_received_high[0x20];
8626290650Shselasky
8627290650Shselasky	u8         a_unsupported_opcodes_received_low[0x20];
8628290650Shselasky
8629290650Shselasky	u8         a_pause_mac_ctrl_frames_received_high[0x20];
8630290650Shselasky
8631290650Shselasky	u8         a_pause_mac_ctrl_frames_received_low[0x20];
8632290650Shselasky
8633290650Shselasky	u8         a_pause_mac_ctrl_frames_transmitted_high[0x20];
8634290650Shselasky
8635290650Shselasky	u8         a_pause_mac_ctrl_frames_transmitted_low[0x20];
8636290650Shselasky
8637290650Shselasky	u8         reserved_0[0x300];
8638290650Shselasky};
8639290650Shselasky
8640290650Shselaskystruct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits {
8641290650Shselasky	u8         dot3stats_alignment_errors_high[0x20];
8642290650Shselasky
8643290650Shselasky	u8         dot3stats_alignment_errors_low[0x20];
8644290650Shselasky
8645290650Shselasky	u8         dot3stats_fcs_errors_high[0x20];
8646290650Shselasky
8647290650Shselasky	u8         dot3stats_fcs_errors_low[0x20];
8648290650Shselasky
8649290650Shselasky	u8         dot3stats_single_collision_frames_high[0x20];
8650290650Shselasky
8651290650Shselasky	u8         dot3stats_single_collision_frames_low[0x20];
8652290650Shselasky
8653290650Shselasky	u8         dot3stats_multiple_collision_frames_high[0x20];
8654290650Shselasky
8655290650Shselasky	u8         dot3stats_multiple_collision_frames_low[0x20];
8656290650Shselasky
8657290650Shselasky	u8         dot3stats_sqe_test_errors_high[0x20];
8658290650Shselasky
8659290650Shselasky	u8         dot3stats_sqe_test_errors_low[0x20];
8660290650Shselasky
8661290650Shselasky	u8         dot3stats_deferred_transmissions_high[0x20];
8662290650Shselasky
8663290650Shselasky	u8         dot3stats_deferred_transmissions_low[0x20];
8664290650Shselasky
8665290650Shselasky	u8         dot3stats_late_collisions_high[0x20];
8666290650Shselasky
8667290650Shselasky	u8         dot3stats_late_collisions_low[0x20];
8668290650Shselasky
8669290650Shselasky	u8         dot3stats_excessive_collisions_high[0x20];
8670290650Shselasky
8671290650Shselasky	u8         dot3stats_excessive_collisions_low[0x20];
8672290650Shselasky
8673290650Shselasky	u8         dot3stats_internal_mac_transmit_errors_high[0x20];
8674290650Shselasky
8675290650Shselasky	u8         dot3stats_internal_mac_transmit_errors_low[0x20];
8676290650Shselasky
8677290650Shselasky	u8         dot3stats_carrier_sense_errors_high[0x20];
8678290650Shselasky
8679290650Shselasky	u8         dot3stats_carrier_sense_errors_low[0x20];
8680290650Shselasky
8681290650Shselasky	u8         dot3stats_frame_too_longs_high[0x20];
8682290650Shselasky
8683290650Shselasky	u8         dot3stats_frame_too_longs_low[0x20];
8684290650Shselasky
8685290650Shselasky	u8         dot3stats_internal_mac_receive_errors_high[0x20];
8686290650Shselasky
8687290650Shselasky	u8         dot3stats_internal_mac_receive_errors_low[0x20];
8688290650Shselasky
8689290650Shselasky	u8         dot3stats_symbol_errors_high[0x20];
8690290650Shselasky
8691290650Shselasky	u8         dot3stats_symbol_errors_low[0x20];
8692290650Shselasky
8693290650Shselasky	u8         dot3control_in_unknown_opcodes_high[0x20];
8694290650Shselasky
8695290650Shselasky	u8         dot3control_in_unknown_opcodes_low[0x20];
8696290650Shselasky
8697290650Shselasky	u8         dot3in_pause_frames_high[0x20];
8698290650Shselasky
8699290650Shselasky	u8         dot3in_pause_frames_low[0x20];
8700290650Shselasky
8701290650Shselasky	u8         dot3out_pause_frames_high[0x20];
8702290650Shselasky
8703290650Shselasky	u8         dot3out_pause_frames_low[0x20];
8704290650Shselasky
8705290650Shselasky	u8         reserved_0[0x3c0];
8706290650Shselasky};
8707290650Shselasky
8708290650Shselaskystruct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits {
8709290650Shselasky	u8         if_in_octets_high[0x20];
8710290650Shselasky
8711290650Shselasky	u8         if_in_octets_low[0x20];
8712290650Shselasky
8713290650Shselasky	u8         if_in_ucast_pkts_high[0x20];
8714290650Shselasky
8715290650Shselasky	u8         if_in_ucast_pkts_low[0x20];
8716290650Shselasky
8717290650Shselasky	u8         if_in_discards_high[0x20];
8718290650Shselasky
8719290650Shselasky	u8         if_in_discards_low[0x20];
8720290650Shselasky
8721290650Shselasky	u8         if_in_errors_high[0x20];
8722290650Shselasky
8723290650Shselasky	u8         if_in_errors_low[0x20];
8724290650Shselasky
8725290650Shselasky	u8         if_in_unknown_protos_high[0x20];
8726290650Shselasky
8727290650Shselasky	u8         if_in_unknown_protos_low[0x20];
8728290650Shselasky
8729290650Shselasky	u8         if_out_octets_high[0x20];
8730290650Shselasky
8731290650Shselasky	u8         if_out_octets_low[0x20];
8732290650Shselasky
8733290650Shselasky	u8         if_out_ucast_pkts_high[0x20];
8734290650Shselasky
8735290650Shselasky	u8         if_out_ucast_pkts_low[0x20];
8736290650Shselasky
8737290650Shselasky	u8         if_out_discards_high[0x20];
8738290650Shselasky
8739290650Shselasky	u8         if_out_discards_low[0x20];
8740290650Shselasky
8741290650Shselasky	u8         if_out_errors_high[0x20];
8742290650Shselasky
8743290650Shselasky	u8         if_out_errors_low[0x20];
8744290650Shselasky
8745290650Shselasky	u8         if_in_multicast_pkts_high[0x20];
8746290650Shselasky
8747290650Shselasky	u8         if_in_multicast_pkts_low[0x20];
8748290650Shselasky
8749290650Shselasky	u8         if_in_broadcast_pkts_high[0x20];
8750290650Shselasky
8751290650Shselasky	u8         if_in_broadcast_pkts_low[0x20];
8752290650Shselasky
8753290650Shselasky	u8         if_out_multicast_pkts_high[0x20];
8754290650Shselasky
8755290650Shselasky	u8         if_out_multicast_pkts_low[0x20];
8756290650Shselasky
8757290650Shselasky	u8         if_out_broadcast_pkts_high[0x20];
8758290650Shselasky
8759290650Shselasky	u8         if_out_broadcast_pkts_low[0x20];
8760290650Shselasky
8761290650Shselasky	u8         reserved_0[0x480];
8762290650Shselasky};
8763290650Shselasky
8764290650Shselaskystruct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits {
8765290650Shselasky	u8         ether_stats_drop_events_high[0x20];
8766290650Shselasky
8767290650Shselasky	u8         ether_stats_drop_events_low[0x20];
8768290650Shselasky
8769290650Shselasky	u8         ether_stats_octets_high[0x20];
8770290650Shselasky
8771290650Shselasky	u8         ether_stats_octets_low[0x20];
8772290650Shselasky
8773290650Shselasky	u8         ether_stats_pkts_high[0x20];
8774290650Shselasky
8775290650Shselasky	u8         ether_stats_pkts_low[0x20];
8776290650Shselasky
8777290650Shselasky	u8         ether_stats_broadcast_pkts_high[0x20];
8778290650Shselasky
8779290650Shselasky	u8         ether_stats_broadcast_pkts_low[0x20];
8780290650Shselasky
8781290650Shselasky	u8         ether_stats_multicast_pkts_high[0x20];
8782290650Shselasky
8783290650Shselasky	u8         ether_stats_multicast_pkts_low[0x20];
8784290650Shselasky
8785290650Shselasky	u8         ether_stats_crc_align_errors_high[0x20];
8786290650Shselasky
8787290650Shselasky	u8         ether_stats_crc_align_errors_low[0x20];
8788290650Shselasky
8789290650Shselasky	u8         ether_stats_undersize_pkts_high[0x20];
8790290650Shselasky
8791290650Shselasky	u8         ether_stats_undersize_pkts_low[0x20];
8792290650Shselasky
8793290650Shselasky	u8         ether_stats_oversize_pkts_high[0x20];
8794290650Shselasky
8795290650Shselasky	u8         ether_stats_oversize_pkts_low[0x20];
8796290650Shselasky
8797290650Shselasky	u8         ether_stats_fragments_high[0x20];
8798290650Shselasky
8799290650Shselasky	u8         ether_stats_fragments_low[0x20];
8800290650Shselasky
8801290650Shselasky	u8         ether_stats_jabbers_high[0x20];
8802290650Shselasky
8803290650Shselasky	u8         ether_stats_jabbers_low[0x20];
8804290650Shselasky
8805290650Shselasky	u8         ether_stats_collisions_high[0x20];
8806290650Shselasky
8807290650Shselasky	u8         ether_stats_collisions_low[0x20];
8808290650Shselasky
8809290650Shselasky	u8         ether_stats_pkts64octets_high[0x20];
8810290650Shselasky
8811290650Shselasky	u8         ether_stats_pkts64octets_low[0x20];
8812290650Shselasky
8813290650Shselasky	u8         ether_stats_pkts65to127octets_high[0x20];
8814290650Shselasky
8815290650Shselasky	u8         ether_stats_pkts65to127octets_low[0x20];
8816290650Shselasky
8817290650Shselasky	u8         ether_stats_pkts128to255octets_high[0x20];
8818290650Shselasky
8819290650Shselasky	u8         ether_stats_pkts128to255octets_low[0x20];
8820290650Shselasky
8821290650Shselasky	u8         ether_stats_pkts256to511octets_high[0x20];
8822290650Shselasky
8823290650Shselasky	u8         ether_stats_pkts256to511octets_low[0x20];
8824290650Shselasky
8825290650Shselasky	u8         ether_stats_pkts512to1023octets_high[0x20];
8826290650Shselasky
8827290650Shselasky	u8         ether_stats_pkts512to1023octets_low[0x20];
8828290650Shselasky
8829290650Shselasky	u8         ether_stats_pkts1024to1518octets_high[0x20];
8830290650Shselasky
8831290650Shselasky	u8         ether_stats_pkts1024to1518octets_low[0x20];
8832290650Shselasky
8833290650Shselasky	u8         ether_stats_pkts1519to2047octets_high[0x20];
8834290650Shselasky
8835290650Shselasky	u8         ether_stats_pkts1519to2047octets_low[0x20];
8836290650Shselasky
8837290650Shselasky	u8         ether_stats_pkts2048to4095octets_high[0x20];
8838290650Shselasky
8839290650Shselasky	u8         ether_stats_pkts2048to4095octets_low[0x20];
8840290650Shselasky
8841290650Shselasky	u8         ether_stats_pkts4096to8191octets_high[0x20];
8842290650Shselasky
8843290650Shselasky	u8         ether_stats_pkts4096to8191octets_low[0x20];
8844290650Shselasky
8845290650Shselasky	u8         ether_stats_pkts8192to10239octets_high[0x20];
8846290650Shselasky
8847290650Shselasky	u8         ether_stats_pkts8192to10239octets_low[0x20];
8848290650Shselasky
8849290650Shselasky	u8         reserved_0[0x280];
8850290650Shselasky};
8851290650Shselasky
8852290650Shselaskystruct mlx5_ifc_ib_portcntrs_attribute_grp_data_bits {
8853290650Shselasky	u8         symbol_error_counter[0x10];
8854290650Shselasky	u8         link_error_recovery_counter[0x8];
8855290650Shselasky	u8         link_downed_counter[0x8];
8856290650Shselasky
8857290650Shselasky	u8         port_rcv_errors[0x10];
8858290650Shselasky	u8         port_rcv_remote_physical_errors[0x10];
8859290650Shselasky
8860290650Shselasky	u8         port_rcv_switch_relay_errors[0x10];
8861290650Shselasky	u8         port_xmit_discards[0x10];
8862290650Shselasky
8863290650Shselasky	u8         port_xmit_constraint_errors[0x8];
8864290650Shselasky	u8         port_rcv_constraint_errors[0x8];
8865290650Shselasky	u8         reserved_0[0x8];
8866290650Shselasky	u8         local_link_integrity_errors[0x4];
8867290650Shselasky	u8         excessive_buffer_overrun_errors[0x4];
8868290650Shselasky
8869290650Shselasky	u8         reserved_1[0x10];
8870290650Shselasky	u8         vl_15_dropped[0x10];
8871290650Shselasky
8872290650Shselasky	u8         port_xmit_data[0x20];
8873290650Shselasky
8874290650Shselasky	u8         port_rcv_data[0x20];
8875290650Shselasky
8876290650Shselasky	u8         port_xmit_pkts[0x20];
8877290650Shselasky
8878290650Shselasky	u8         port_rcv_pkts[0x20];
8879290650Shselasky
8880290650Shselasky	u8         port_xmit_wait[0x20];
8881290650Shselasky
8882290650Shselasky	u8         reserved_2[0x680];
8883290650Shselasky};
8884290650Shselasky
8885290650Shselaskystruct mlx5_ifc_trc_tlb_reg_bits {
8886290650Shselasky	u8         reserved_0[0x80];
8887290650Shselasky
8888290650Shselasky	u8         tlb_addr[0][0x40];
8889290650Shselasky};
8890290650Shselasky
8891290650Shselaskystruct mlx5_ifc_trc_read_fifo_reg_bits {
8892290650Shselasky	u8         reserved_0[0x10];
8893290650Shselasky	u8         requested_event_num[0x10];
8894290650Shselasky
8895290650Shselasky	u8         reserved_1[0x20];
8896290650Shselasky
8897290650Shselasky	u8         reserved_2[0x10];
8898290650Shselasky	u8         acual_event_num[0x10];
8899290650Shselasky
8900290650Shselasky	u8         reserved_3[0x20];
8901290650Shselasky
8902290650Shselasky	u8         event[0][0x40];
8903290650Shselasky};
8904290650Shselasky
8905290650Shselaskystruct mlx5_ifc_trc_lock_reg_bits {
8906290650Shselasky	u8         reserved_0[0x1f];
8907290650Shselasky	u8         lock[0x1];
8908290650Shselasky
8909290650Shselasky	u8         reserved_1[0x60];
8910290650Shselasky};
8911290650Shselasky
8912290650Shselaskystruct mlx5_ifc_trc_filter_reg_bits {
8913290650Shselasky	u8         status[0x1];
8914290650Shselasky	u8         reserved_0[0xf];
8915290650Shselasky	u8         filter_index[0x10];
8916290650Shselasky
8917290650Shselasky	u8         reserved_1[0x20];
8918290650Shselasky
8919290650Shselasky	u8         filter_val[0x20];
8920290650Shselasky
8921290650Shselasky	u8         reserved_2[0x1a0];
8922290650Shselasky};
8923290650Shselasky
8924290650Shselaskystruct mlx5_ifc_trc_event_reg_bits {
8925290650Shselasky	u8         status[0x1];
8926290650Shselasky	u8         reserved_0[0xf];
8927290650Shselasky	u8         event_index[0x10];
8928290650Shselasky
8929290650Shselasky	u8         reserved_1[0x20];
8930290650Shselasky
8931290650Shselasky	u8         event_id[0x20];
8932290650Shselasky
8933290650Shselasky	u8         event_selector_val[0x10];
8934290650Shselasky	u8         event_selector_size[0x10];
8935290650Shselasky
8936290650Shselasky	u8         reserved_2[0x180];
8937290650Shselasky};
8938290650Shselasky
8939290650Shselaskystruct mlx5_ifc_trc_conf_reg_bits {
8940290650Shselasky	u8         limit_en[0x1];
8941290650Shselasky	u8         reserved_0[0x3];
8942290650Shselasky	u8         dump_mode[0x4];
8943290650Shselasky	u8         reserved_1[0x15];
8944290650Shselasky	u8         state[0x3];
8945290650Shselasky
8946290650Shselasky	u8         reserved_2[0x20];
8947290650Shselasky
8948290650Shselasky	u8         limit_event_index[0x20];
8949290650Shselasky
8950290650Shselasky	u8         mkey[0x20];
8951290650Shselasky
8952290650Shselasky	u8         fifo_ready_ev_num[0x20];
8953290650Shselasky
8954290650Shselasky	u8         reserved_3[0x160];
8955290650Shselasky};
8956290650Shselasky
8957290650Shselaskystruct mlx5_ifc_trc_cap_reg_bits {
8958290650Shselasky	u8         reserved_0[0x18];
8959290650Shselasky	u8         dump_mode[0x8];
8960290650Shselasky
8961290650Shselasky	u8         reserved_1[0x20];
8962290650Shselasky
8963290650Shselasky	u8         num_of_events[0x10];
8964290650Shselasky	u8         num_of_filters[0x10];
8965290650Shselasky
8966290650Shselasky	u8         fifo_size[0x20];
8967290650Shselasky
8968290650Shselasky	u8         tlb_size[0x10];
8969290650Shselasky	u8         event_size[0x10];
8970290650Shselasky
8971290650Shselasky	u8         reserved_2[0x160];
8972290650Shselasky};
8973290650Shselasky
8974290650Shselaskystruct mlx5_ifc_set_node_in_bits {
8975290650Shselasky	u8         node_description[64][0x8];
8976290650Shselasky};
8977290650Shselasky
8978290650Shselaskystruct mlx5_ifc_register_power_settings_bits {
8979290650Shselasky	u8         reserved_0[0x18];
8980290650Shselasky	u8         power_settings_level[0x8];
8981290650Shselasky
8982290650Shselasky	u8         reserved_1[0x60];
8983290650Shselasky};
8984290650Shselasky
8985290650Shselaskystruct mlx5_ifc_register_host_endianess_bits {
8986290650Shselasky	u8         he[0x1];
8987290650Shselasky	u8         reserved_0[0x1f];
8988290650Shselasky
8989290650Shselasky	u8         reserved_1[0x60];
8990290650Shselasky};
8991290650Shselasky
8992290650Shselaskystruct mlx5_ifc_register_diag_buffer_ctrl_bits {
8993290650Shselasky	u8         physical_address[0x40];
8994290650Shselasky};
8995290650Shselasky
8996290650Shselaskystruct mlx5_ifc_qtct_reg_bits {
8997306233Shselasky	u8         operation_type[0x2];
8998306233Shselasky	u8         cap_local_admin[0x1];
8999306233Shselasky	u8         cap_remote_admin[0x1];
9000306233Shselasky	u8         reserved_0[0x4];
9001290650Shselasky	u8         port_number[0x8];
9002290650Shselasky	u8         reserved_1[0xd];
9003290650Shselasky	u8         prio[0x3];
9004290650Shselasky
9005290650Shselasky	u8         reserved_2[0x1d];
9006290650Shselasky	u8         tclass[0x3];
9007290650Shselasky};
9008290650Shselasky
9009290650Shselaskystruct mlx5_ifc_qpdp_reg_bits {
9010290650Shselasky	u8         reserved_0[0x8];
9011290650Shselasky	u8         port_number[0x8];
9012290650Shselasky	u8         reserved_1[0x10];
9013290650Shselasky
9014290650Shselasky	u8         reserved_2[0x1d];
9015290650Shselasky	u8         pprio[0x3];
9016290650Shselasky};
9017290650Shselasky
9018290650Shselaskystruct mlx5_ifc_port_info_ro_fields_param_bits {
9019290650Shselasky	u8         reserved_0[0x8];
9020290650Shselasky	u8         port[0x8];
9021290650Shselasky	u8         max_gid[0x10];
9022290650Shselasky
9023290650Shselasky	u8         reserved_1[0x20];
9024290650Shselasky
9025290650Shselasky	u8         port_guid[0x40];
9026290650Shselasky};
9027290650Shselasky
9028290650Shselaskystruct mlx5_ifc_nvqc_reg_bits {
9029290650Shselasky	u8         type[0x20];
9030290650Shselasky
9031290650Shselasky	u8         reserved_0[0x18];
9032290650Shselasky	u8         version[0x4];
9033290650Shselasky	u8         reserved_1[0x2];
9034290650Shselasky	u8         support_wr[0x1];
9035290650Shselasky	u8         support_rd[0x1];
9036290650Shselasky};
9037290650Shselasky
9038290650Shselaskystruct mlx5_ifc_nvia_reg_bits {
9039290650Shselasky	u8         reserved_0[0x1d];
9040290650Shselasky	u8         target[0x3];
9041290650Shselasky
9042290650Shselasky	u8         reserved_1[0x20];
9043290650Shselasky};
9044290650Shselasky
9045290650Shselaskystruct mlx5_ifc_nvdi_reg_bits {
9046290650Shselasky	struct mlx5_ifc_config_item_bits configuration_item_header;
9047290650Shselasky};
9048290650Shselasky
9049290650Shselaskystruct mlx5_ifc_nvda_reg_bits {
9050290650Shselasky	struct mlx5_ifc_config_item_bits configuration_item_header;
9051290650Shselasky
9052290650Shselasky	u8         configuration_item_data[0x20];
9053290650Shselasky};
9054290650Shselasky
9055290650Shselaskystruct mlx5_ifc_node_info_ro_fields_param_bits {
9056290650Shselasky	u8         system_image_guid[0x40];
9057290650Shselasky
9058290650Shselasky	u8         reserved_0[0x40];
9059290650Shselasky
9060290650Shselasky	u8         node_guid[0x40];
9061290650Shselasky
9062290650Shselasky	u8         reserved_1[0x10];
9063290650Shselasky	u8         max_pkey[0x10];
9064290650Shselasky
9065290650Shselasky	u8         reserved_2[0x20];
9066290650Shselasky};
9067290650Shselasky
9068290650Shselaskystruct mlx5_ifc_ets_tcn_config_reg_bits {
9069290650Shselasky	u8         g[0x1];
9070290650Shselasky	u8         b[0x1];
9071290650Shselasky	u8         r[0x1];
9072290650Shselasky	u8         reserved_0[0x9];
9073290650Shselasky	u8         group[0x4];
9074290650Shselasky	u8         reserved_1[0x9];
9075290650Shselasky	u8         bw_allocation[0x7];
9076290650Shselasky
9077290650Shselasky	u8         reserved_2[0xc];
9078290650Shselasky	u8         max_bw_units[0x4];
9079290650Shselasky	u8         reserved_3[0x8];
9080290650Shselasky	u8         max_bw_value[0x8];
9081290650Shselasky};
9082290650Shselasky
9083290650Shselaskystruct mlx5_ifc_ets_global_config_reg_bits {
9084290650Shselasky	u8         reserved_0[0x2];
9085290650Shselasky	u8         r[0x1];
9086290650Shselasky	u8         reserved_1[0x1d];
9087290650Shselasky
9088290650Shselasky	u8         reserved_2[0xc];
9089290650Shselasky	u8         max_bw_units[0x4];
9090290650Shselasky	u8         reserved_3[0x8];
9091290650Shselasky	u8         max_bw_value[0x8];
9092290650Shselasky};
9093290650Shselasky
9094290650Shselaskystruct mlx5_ifc_nodnic_mac_filters_bits {
9095290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_filter0;
9096290650Shselasky
9097290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_filter1;
9098290650Shselasky
9099290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_filter2;
9100290650Shselasky
9101290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_filter3;
9102290650Shselasky
9103290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_filter4;
9104290650Shselasky
9105290650Shselasky	u8         reserved_0[0xc0];
9106290650Shselasky};
9107290650Shselasky
9108290650Shselaskystruct mlx5_ifc_nodnic_gid_filters_bits {
9109290650Shselasky	u8         mgid_filter0[16][0x8];
9110290650Shselasky
9111290650Shselasky	u8         mgid_filter1[16][0x8];
9112290650Shselasky
9113290650Shselasky	u8         mgid_filter2[16][0x8];
9114290650Shselasky
9115290650Shselasky	u8         mgid_filter3[16][0x8];
9116290650Shselasky};
9117290650Shselasky
9118290650Shselaskyenum {
9119290650Shselasky	MLX5_NODNIC_CONFIG_REG_NUM_PORTS_SINGLE_PORT  = 0x0,
9120290650Shselasky	MLX5_NODNIC_CONFIG_REG_NUM_PORTS_DUAL_PORT    = 0x1,
9121290650Shselasky};
9122290650Shselasky
9123290650Shselaskyenum {
9124290650Shselasky	MLX5_NODNIC_CONFIG_REG_CQE_FORMAT_LEGACY_CQE  = 0x0,
9125290650Shselasky	MLX5_NODNIC_CONFIG_REG_CQE_FORMAT_NEW_CQE     = 0x1,
9126290650Shselasky};
9127290650Shselasky
9128290650Shselaskystruct mlx5_ifc_nodnic_config_reg_bits {
9129290650Shselasky	u8         no_dram_nic_revision[0x8];
9130290650Shselasky	u8         hardware_format[0x8];
9131290650Shselasky	u8         support_receive_filter[0x1];
9132290650Shselasky	u8         support_promisc_filter[0x1];
9133290650Shselasky	u8         support_promisc_multicast_filter[0x1];
9134290650Shselasky	u8         reserved_0[0x2];
9135290650Shselasky	u8         log_working_buffer_size[0x3];
9136290650Shselasky	u8         log_pkey_table_size[0x4];
9137290650Shselasky	u8         reserved_1[0x3];
9138290650Shselasky	u8         num_ports[0x1];
9139290650Shselasky
9140290650Shselasky	u8         reserved_2[0x2];
9141290650Shselasky	u8         log_max_ring_size[0x6];
9142290650Shselasky	u8         reserved_3[0x18];
9143290650Shselasky
9144290650Shselasky	u8         lkey[0x20];
9145290650Shselasky
9146290650Shselasky	u8         cqe_format[0x4];
9147290650Shselasky	u8         reserved_4[0x1c];
9148290650Shselasky
9149290650Shselasky	u8         node_guid[0x40];
9150290650Shselasky
9151290650Shselasky	u8         reserved_5[0x740];
9152290650Shselasky
9153290650Shselasky	struct mlx5_ifc_nodnic_port_config_reg_bits port1_settings;
9154290650Shselasky
9155290650Shselasky	struct mlx5_ifc_nodnic_port_config_reg_bits port2_settings;
9156290650Shselasky};
9157290650Shselasky
9158290650Shselaskystruct mlx5_ifc_vlan_layout_bits {
9159290650Shselasky	u8         reserved_0[0x14];
9160290650Shselasky	u8         vlan[0xc];
9161290650Shselasky
9162290650Shselasky	u8         reserved_1[0x20];
9163290650Shselasky};
9164290650Shselasky
9165290650Shselaskystruct mlx5_ifc_umr_pointer_desc_argument_bits {
9166290650Shselasky	u8         reserved_0[0x20];
9167290650Shselasky
9168290650Shselasky	u8         mkey[0x20];
9169290650Shselasky
9170290650Shselasky	u8         addressh_63_32[0x20];
9171290650Shselasky
9172290650Shselasky	u8         addressl_31_0[0x20];
9173290650Shselasky};
9174290650Shselasky
9175290650Shselaskystruct mlx5_ifc_ud_adrs_vector_bits {
9176290650Shselasky	u8         dc_key[0x40];
9177290650Shselasky
9178290650Shselasky	u8         ext[0x1];
9179290650Shselasky	u8         reserved_0[0x7];
9180290650Shselasky	u8         destination_qp_dct[0x18];
9181290650Shselasky
9182290650Shselasky	u8         static_rate[0x4];
9183290650Shselasky	u8         sl_eth_prio[0x4];
9184290650Shselasky	u8         fl[0x1];
9185290650Shselasky	u8         mlid[0x7];
9186290650Shselasky	u8         rlid_udp_sport[0x10];
9187290650Shselasky
9188290650Shselasky	u8         reserved_1[0x20];
9189290650Shselasky
9190290650Shselasky	u8         rmac_47_16[0x20];
9191290650Shselasky
9192290650Shselasky	u8         rmac_15_0[0x10];
9193290650Shselasky	u8         tclass[0x8];
9194290650Shselasky	u8         hop_limit[0x8];
9195290650Shselasky
9196290650Shselasky	u8         reserved_2[0x1];
9197290650Shselasky	u8         grh[0x1];
9198290650Shselasky	u8         reserved_3[0x2];
9199290650Shselasky	u8         src_addr_index[0x8];
9200290650Shselasky	u8         flow_label[0x14];
9201290650Shselasky
9202290650Shselasky	u8         rgid_rip[16][0x8];
9203290650Shselasky};
9204290650Shselasky
9205290650Shselaskystruct mlx5_ifc_port_module_event_bits {
9206290650Shselasky	u8         reserved_0[0x8];
9207290650Shselasky	u8         module[0x8];
9208290650Shselasky	u8         reserved_1[0xc];
9209290650Shselasky	u8         module_status[0x4];
9210290650Shselasky
9211290650Shselasky	u8         reserved_2[0x14];
9212290650Shselasky	u8         error_type[0x4];
9213290650Shselasky	u8         reserved_3[0x8];
9214290650Shselasky
9215290650Shselasky	u8         reserved_4[0xa0];
9216290650Shselasky};
9217290650Shselasky
9218290650Shselaskystruct mlx5_ifc_icmd_control_bits {
9219290650Shselasky	u8         opcode[0x10];
9220290650Shselasky	u8         status[0x8];
9221290650Shselasky	u8         reserved_0[0x7];
9222290650Shselasky	u8         busy[0x1];
9223290650Shselasky};
9224290650Shselasky
9225290650Shselaskystruct mlx5_ifc_eqe_bits {
9226290650Shselasky	u8         reserved_0[0x8];
9227290650Shselasky	u8         event_type[0x8];
9228290650Shselasky	u8         reserved_1[0x8];
9229290650Shselasky	u8         event_sub_type[0x8];
9230290650Shselasky
9231290650Shselasky	u8         reserved_2[0xe0];
9232290650Shselasky
9233290650Shselasky	union mlx5_ifc_event_auto_bits event_data;
9234290650Shselasky
9235290650Shselasky	u8         reserved_3[0x10];
9236290650Shselasky	u8         signature[0x8];
9237290650Shselasky	u8         reserved_4[0x7];
9238290650Shselasky	u8         owner[0x1];
9239290650Shselasky};
9240290650Shselasky
9241290650Shselaskyenum {
9242290650Shselasky	MLX5_CMD_QUEUE_ENTRY_TYPE_PCIE_CMD_IF_TRANSPORT  = 0x7,
9243290650Shselasky};
9244290650Shselasky
9245290650Shselaskystruct mlx5_ifc_cmd_queue_entry_bits {
9246290650Shselasky	u8         type[0x8];
9247290650Shselasky	u8         reserved_0[0x18];
9248290650Shselasky
9249290650Shselasky	u8         input_length[0x20];
9250290650Shselasky
9251290650Shselasky	u8         input_mailbox_pointer_63_32[0x20];
9252290650Shselasky
9253290650Shselasky	u8         input_mailbox_pointer_31_9[0x17];
9254290650Shselasky	u8         reserved_1[0x9];
9255290650Shselasky
9256290650Shselasky	u8         command_input_inline_data[16][0x8];
9257290650Shselasky
9258290650Shselasky	u8         command_output_inline_data[16][0x8];
9259290650Shselasky
9260290650Shselasky	u8         output_mailbox_pointer_63_32[0x20];
9261290650Shselasky
9262290650Shselasky	u8         output_mailbox_pointer_31_9[0x17];
9263290650Shselasky	u8         reserved_2[0x9];
9264290650Shselasky
9265290650Shselasky	u8         output_length[0x20];
9266290650Shselasky
9267290650Shselasky	u8         token[0x8];
9268290650Shselasky	u8         signature[0x8];
9269290650Shselasky	u8         reserved_3[0x8];
9270290650Shselasky	u8         status[0x7];
9271290650Shselasky	u8         ownership[0x1];
9272290650Shselasky};
9273290650Shselasky
9274290650Shselaskystruct mlx5_ifc_cmd_out_bits {
9275290650Shselasky	u8         status[0x8];
9276290650Shselasky	u8         reserved_0[0x18];
9277290650Shselasky
9278290650Shselasky	u8         syndrome[0x20];
9279290650Shselasky
9280290650Shselasky	u8         command_output[0x20];
9281290650Shselasky};
9282290650Shselasky
9283290650Shselaskystruct mlx5_ifc_cmd_in_bits {
9284290650Shselasky	u8         opcode[0x10];
9285290650Shselasky	u8         reserved_0[0x10];
9286290650Shselasky
9287290650Shselasky	u8         reserved_1[0x10];
9288290650Shselasky	u8         op_mod[0x10];
9289290650Shselasky
9290290650Shselasky	u8         command[0][0x20];
9291290650Shselasky};
9292290650Shselasky
9293290650Shselaskystruct mlx5_ifc_cmd_if_box_bits {
9294290650Shselasky	u8         mailbox_data[512][0x8];
9295290650Shselasky
9296290650Shselasky	u8         reserved_0[0x180];
9297290650Shselasky
9298290650Shselasky	u8         next_pointer_63_32[0x20];
9299290650Shselasky
9300290650Shselasky	u8         next_pointer_31_10[0x16];
9301290650Shselasky	u8         reserved_1[0xa];
9302290650Shselasky
9303290650Shselasky	u8         block_number[0x20];
9304290650Shselasky
9305290650Shselasky	u8         reserved_2[0x8];
9306290650Shselasky	u8         token[0x8];
9307290650Shselasky	u8         ctrl_signature[0x8];
9308290650Shselasky	u8         signature[0x8];
9309290650Shselasky};
9310290650Shselasky
9311290650Shselaskystruct mlx5_ifc_mtt_bits {
9312290650Shselasky	u8         ptag_63_32[0x20];
9313290650Shselasky
9314290650Shselasky	u8         ptag_31_8[0x18];
9315290650Shselasky	u8         reserved_0[0x6];
9316290650Shselasky	u8         wr_en[0x1];
9317290650Shselasky	u8         rd_en[0x1];
9318290650Shselasky};
9319290650Shselasky
9320290650Shselaskystruct mlx5_ifc_vendor_specific_cap_bits {
9321290650Shselasky	u8         type[0x8];
9322290650Shselasky	u8         length[0x8];
9323290650Shselasky	u8         next_pointer[0x8];
9324290650Shselasky	u8         capability_id[0x8];
9325290650Shselasky
9326290650Shselasky	u8         status[0x3];
9327290650Shselasky	u8         reserved_0[0xd];
9328290650Shselasky	u8         space[0x10];
9329290650Shselasky
9330290650Shselasky	u8         counter[0x20];
9331290650Shselasky
9332290650Shselasky	u8         semaphore[0x20];
9333290650Shselasky
9334290650Shselasky	u8         flag[0x1];
9335290650Shselasky	u8         reserved_1[0x1];
9336290650Shselasky	u8         address[0x1e];
9337290650Shselasky
9338290650Shselasky	u8         data[0x20];
9339290650Shselasky};
9340290650Shselasky
9341290650Shselaskyenum {
9342290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_FULL_DRIVER  = 0x0,
9343290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_DISABLED     = 0x1,
9344290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_NO_DRAM_NIC  = 0x2,
9345290650Shselasky};
9346290650Shselasky
9347290650Shselaskyenum {
9348290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_FULL_DRIVER  = 0x0,
9349290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_DISABLED     = 0x1,
9350290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_NO_DRAM_NIC  = 0x2,
9351290650Shselasky};
9352290650Shselasky
9353290650Shselaskyenum {
9354290650Shselasky	MLX5_HEALTH_SYNDR_FW_ERR                                      = 0x1,
9355290650Shselasky	MLX5_HEALTH_SYNDR_IRISC_ERR                                   = 0x7,
9356290650Shselasky	MLX5_HEALTH_SYNDR_HW_UNRECOVERABLE_ERR                        = 0x8,
9357290650Shselasky	MLX5_HEALTH_SYNDR_CRC_ERR                                     = 0x9,
9358290650Shselasky	MLX5_HEALTH_SYNDR_FETCH_PCI_ERR                               = 0xa,
9359290650Shselasky	MLX5_HEALTH_SYNDR_HW_FTL_ERR                                  = 0xb,
9360290650Shselasky	MLX5_HEALTH_SYNDR_ASYNC_EQ_OVERRUN_ERR                        = 0xc,
9361290650Shselasky	MLX5_HEALTH_SYNDR_EQ_ERR                                      = 0xd,
9362290650Shselasky	MLX5_HEALTH_SYNDR_EQ_INV                                      = 0xe,
9363290650Shselasky	MLX5_HEALTH_SYNDR_FFSER_ERR                                   = 0xf,
9364290650Shselasky	MLX5_HEALTH_SYNDR_HIGH_TEMP                                   = 0x10,
9365290650Shselasky};
9366290650Shselasky
9367290650Shselaskystruct mlx5_ifc_initial_seg_bits {
9368290650Shselasky	u8         fw_rev_minor[0x10];
9369290650Shselasky	u8         fw_rev_major[0x10];
9370290650Shselasky
9371290650Shselasky	u8         cmd_interface_rev[0x10];
9372290650Shselasky	u8         fw_rev_subminor[0x10];
9373290650Shselasky
9374290650Shselasky	u8         reserved_0[0x40];
9375290650Shselasky
9376290650Shselasky	u8         cmdq_phy_addr_63_32[0x20];
9377290650Shselasky
9378290650Shselasky	u8         cmdq_phy_addr_31_12[0x14];
9379290650Shselasky	u8         reserved_1[0x2];
9380290650Shselasky	u8         nic_interface[0x2];
9381290650Shselasky	u8         log_cmdq_size[0x4];
9382290650Shselasky	u8         log_cmdq_stride[0x4];
9383290650Shselasky
9384290650Shselasky	u8         command_doorbell_vector[0x20];
9385290650Shselasky
9386290650Shselasky	u8         reserved_2[0xf00];
9387290650Shselasky
9388290650Shselasky	u8         initializing[0x1];
9389290650Shselasky	u8         reserved_3[0x4];
9390290650Shselasky	u8         nic_interface_supported[0x3];
9391290650Shselasky	u8         reserved_4[0x18];
9392290650Shselasky
9393290650Shselasky	struct mlx5_ifc_health_buffer_bits health_buffer;
9394290650Shselasky
9395290650Shselasky	u8         no_dram_nic_offset[0x20];
9396290650Shselasky
9397290650Shselasky	u8         reserved_5[0x6de0];
9398290650Shselasky
9399290650Shselasky	u8         internal_timer_h[0x20];
9400290650Shselasky
9401290650Shselasky	u8         internal_timer_l[0x20];
9402290650Shselasky
9403290650Shselasky	u8         reserved_6[0x20];
9404290650Shselasky
9405290650Shselasky	u8         reserved_7[0x1f];
9406290650Shselasky	u8         clear_int[0x1];
9407290650Shselasky
9408290650Shselasky	u8         health_syndrome[0x8];
9409290650Shselasky	u8         health_counter[0x18];
9410290650Shselasky
9411290650Shselasky	u8         reserved_8[0x17fc0];
9412290650Shselasky};
9413290650Shselasky
9414290650Shselaskyunion mlx5_ifc_icmd_interface_document_bits {
9415290650Shselasky	struct mlx5_ifc_fw_version_bits fw_version;
9416290650Shselasky	struct mlx5_ifc_icmd_access_reg_in_bits icmd_access_reg_in;
9417290650Shselasky	struct mlx5_ifc_icmd_access_reg_out_bits icmd_access_reg_out;
9418290650Shselasky	struct mlx5_ifc_icmd_init_ocsd_in_bits icmd_init_ocsd_in;
9419290650Shselasky	struct mlx5_ifc_icmd_ocbb_init_in_bits icmd_ocbb_init_in;
9420290650Shselasky	struct mlx5_ifc_icmd_ocbb_query_etoc_stats_out_bits icmd_ocbb_query_etoc_stats_out;
9421290650Shselasky	struct mlx5_ifc_icmd_ocbb_query_header_stats_out_bits icmd_ocbb_query_header_stats_out;
9422290650Shselasky	struct mlx5_ifc_icmd_query_cap_general_bits icmd_query_cap_general;
9423290650Shselasky	struct mlx5_ifc_icmd_query_cap_in_bits icmd_query_cap_in;
9424290650Shselasky	struct mlx5_ifc_icmd_query_fw_info_out_bits icmd_query_fw_info_out;
9425290650Shselasky	struct mlx5_ifc_icmd_query_virtual_mac_out_bits icmd_query_virtual_mac_out;
9426290650Shselasky	struct mlx5_ifc_icmd_set_virtual_mac_in_bits icmd_set_virtual_mac_in;
9427290650Shselasky	struct mlx5_ifc_icmd_set_wol_rol_in_bits icmd_set_wol_rol_in;
9428290650Shselasky	struct mlx5_ifc_icmd_set_wol_rol_out_bits icmd_set_wol_rol_out;
9429290650Shselasky	u8         reserved_0[0x42c0];
9430290650Shselasky};
9431290650Shselasky
9432290650Shselaskyunion mlx5_ifc_eth_cntrs_grp_data_layout_auto_bits {
9433290650Shselasky	struct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits eth_802_3_cntrs_grp_data_layout;
9434290650Shselasky	struct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits eth_2863_cntrs_grp_data_layout;
9435290650Shselasky	struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits eth_2819_cntrs_grp_data_layout;
9436290650Shselasky	struct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits eth_3635_cntrs_grp_data_layout;
9437290650Shselasky	struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits eth_extended_cntrs_grp_data_layout;
9438308678Shselasky	struct mlx5_ifc_eth_discard_cntrs_grp_bits eth_discard_cntrs_grp;
9439290650Shselasky	struct mlx5_ifc_eth_per_prio_grp_data_layout_bits eth_per_prio_grp_data_layout;
9440290650Shselasky	struct mlx5_ifc_phys_layer_cntrs_bits phys_layer_cntrs;
9441321992Shselasky	struct mlx5_ifc_phys_layer_statistical_cntrs_bits phys_layer_statistical_cntrs;
9442308678Shselasky	struct mlx5_ifc_infiniband_port_cntrs_bits infiniband_port_cntrs;
9443290650Shselasky	u8         reserved_0[0x7c0];
9444290650Shselasky};
9445290650Shselasky
9446290650Shselaskystruct mlx5_ifc_ppcnt_reg_bits {
9447290650Shselasky	u8         swid[0x8];
9448290650Shselasky	u8         local_port[0x8];
9449290650Shselasky	u8         pnat[0x2];
9450290650Shselasky	u8         reserved_0[0x8];
9451290650Shselasky	u8         grp[0x6];
9452290650Shselasky
9453290650Shselasky	u8         clr[0x1];
9454290650Shselasky	u8         reserved_1[0x1c];
9455290650Shselasky	u8         prio_tc[0x3];
9456290650Shselasky
9457290650Shselasky	union mlx5_ifc_eth_cntrs_grp_data_layout_auto_bits counter_set;
9458290650Shselasky};
9459290650Shselasky
9460306233Shselaskystruct mlx5_ifc_pcie_performance_counters_data_layout_bits {
9461306233Shselasky	u8         life_time_counter_high[0x20];
9462306233Shselasky
9463306233Shselasky	u8         life_time_counter_low[0x20];
9464306233Shselasky
9465306233Shselasky	u8         rx_errors[0x20];
9466306233Shselasky
9467306233Shselasky	u8         tx_errors[0x20];
9468306233Shselasky
9469306233Shselasky	u8         l0_to_recovery_eieos[0x20];
9470306233Shselasky
9471306233Shselasky	u8         l0_to_recovery_ts[0x20];
9472306233Shselasky
9473306233Shselasky	u8         l0_to_recovery_framing[0x20];
9474306233Shselasky
9475306233Shselasky	u8         l0_to_recovery_retrain[0x20];
9476306233Shselasky
9477306233Shselasky	u8         crc_error_dllp[0x20];
9478306233Shselasky
9479306233Shselasky	u8         crc_error_tlp[0x20];
9480306233Shselasky
9481306233Shselasky	u8         reserved_0[0x680];
9482306233Shselasky};
9483306233Shselasky
9484306233Shselaskystruct mlx5_ifc_pcie_timers_and_states_data_layout_bits {
9485306233Shselasky	u8         life_time_counter_high[0x20];
9486306233Shselasky
9487306233Shselasky	u8         life_time_counter_low[0x20];
9488306233Shselasky
9489306233Shselasky	u8         time_to_boot_image_start[0x20];
9490306233Shselasky
9491306233Shselasky	u8         time_to_link_image[0x20];
9492306233Shselasky
9493306233Shselasky	u8         calibration_time[0x20];
9494306233Shselasky
9495306233Shselasky	u8         time_to_first_perst[0x20];
9496306233Shselasky
9497306233Shselasky	u8         time_to_detect_state[0x20];
9498306233Shselasky
9499306233Shselasky	u8         time_to_l0[0x20];
9500306233Shselasky
9501306233Shselasky	u8         time_to_crs_en[0x20];
9502306233Shselasky
9503306233Shselasky	u8         time_to_plastic_image_start[0x20];
9504306233Shselasky
9505306233Shselasky	u8         time_to_iron_image_start[0x20];
9506306233Shselasky
9507306233Shselasky	u8         perst_handler[0x20];
9508306233Shselasky
9509306233Shselasky	u8         times_in_l1[0x20];
9510306233Shselasky
9511306233Shselasky	u8         times_in_l23[0x20];
9512306233Shselasky
9513306233Shselasky	u8         dl_down[0x20];
9514306233Shselasky
9515306233Shselasky	u8         config_cycle1usec[0x20];
9516306233Shselasky
9517306233Shselasky	u8         config_cycle2to7usec[0x20];
9518306233Shselasky
9519306233Shselasky	u8         config_cycle8to15usec[0x20];
9520306233Shselasky
9521306233Shselasky	u8         config_cycle16to63usec[0x20];
9522306233Shselasky
9523306233Shselasky	u8         config_cycle64usec[0x20];
9524306233Shselasky
9525306233Shselasky	u8         correctable_err_msg_sent[0x20];
9526306233Shselasky
9527306233Shselasky	u8         non_fatal_err_msg_sent[0x20];
9528306233Shselasky
9529306233Shselasky	u8         fatal_err_msg_sent[0x20];
9530306233Shselasky
9531306233Shselasky	u8         reserved_0[0x4e0];
9532306233Shselasky};
9533306233Shselasky
9534306233Shselaskystruct mlx5_ifc_pcie_lanes_counters_data_layout_bits {
9535306233Shselasky	u8         life_time_counter_high[0x20];
9536306233Shselasky
9537306233Shselasky	u8         life_time_counter_low[0x20];
9538306233Shselasky
9539306233Shselasky	u8         error_counter_lane0[0x20];
9540306233Shselasky
9541306233Shselasky	u8         error_counter_lane1[0x20];
9542306233Shselasky
9543306233Shselasky	u8         error_counter_lane2[0x20];
9544306233Shselasky
9545306233Shselasky	u8         error_counter_lane3[0x20];
9546306233Shselasky
9547306233Shselasky	u8         error_counter_lane4[0x20];
9548306233Shselasky
9549306233Shselasky	u8         error_counter_lane5[0x20];
9550306233Shselasky
9551306233Shselasky	u8         error_counter_lane6[0x20];
9552306233Shselasky
9553306233Shselasky	u8         error_counter_lane7[0x20];
9554306233Shselasky
9555306233Shselasky	u8         error_counter_lane8[0x20];
9556306233Shselasky
9557306233Shselasky	u8         error_counter_lane9[0x20];
9558306233Shselasky
9559306233Shselasky	u8         error_counter_lane10[0x20];
9560306233Shselasky
9561306233Shselasky	u8         error_counter_lane11[0x20];
9562306233Shselasky
9563306233Shselasky	u8         error_counter_lane12[0x20];
9564306233Shselasky
9565306233Shselasky	u8         error_counter_lane13[0x20];
9566306233Shselasky
9567306233Shselasky	u8         error_counter_lane14[0x20];
9568306233Shselasky
9569306233Shselasky	u8         error_counter_lane15[0x20];
9570306233Shselasky
9571306233Shselasky	u8         reserved_0[0x580];
9572306233Shselasky};
9573306233Shselasky
9574306233Shselaskyunion mlx5_ifc_mpcnt_cntrs_grp_data_layout_bits {
9575306233Shselasky	struct mlx5_ifc_pcie_performance_counters_data_layout_bits pcie_performance_counters_data_layout;
9576306233Shselasky	struct mlx5_ifc_pcie_timers_and_states_data_layout_bits pcie_timers_and_states_data_layout;
9577306233Shselasky	struct mlx5_ifc_pcie_lanes_counters_data_layout_bits pcie_lanes_counters_data_layout;
9578306233Shselasky	u8         reserved_0[0xf8];
9579306233Shselasky};
9580306233Shselasky
9581306233Shselaskystruct mlx5_ifc_mpcnt_reg_bits {
9582306233Shselasky	u8         reserved_0[0x8];
9583306233Shselasky	u8         pcie_index[0x8];
9584306233Shselasky	u8         reserved_1[0xa];
9585306233Shselasky	u8         grp[0x6];
9586306233Shselasky
9587306233Shselasky	u8         clr[0x1];
9588306233Shselasky	u8         reserved_2[0x1f];
9589306233Shselasky
9590306233Shselasky	union mlx5_ifc_mpcnt_cntrs_grp_data_layout_bits counter_set;
9591306233Shselasky};
9592306233Shselasky
9593290650Shselaskyunion mlx5_ifc_ports_control_registers_document_bits {
9594290650Shselasky	struct mlx5_ifc_ib_portcntrs_attribute_grp_data_bits ib_portcntrs_attribute_grp_data;
9595290650Shselasky	struct mlx5_ifc_bufferx_reg_bits bufferx_reg;
9596290650Shselasky	struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits eth_2819_cntrs_grp_data_layout;
9597290650Shselasky	struct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits eth_2863_cntrs_grp_data_layout;
9598290650Shselasky	struct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits eth_3635_cntrs_grp_data_layout;
9599290650Shselasky	struct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits eth_802_3_cntrs_grp_data_layout;
9600308678Shselasky	struct mlx5_ifc_eth_discard_cntrs_grp_bits eth_discard_cntrs_grp;
9601290650Shselasky	struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits eth_extended_cntrs_grp_data_layout;
9602290650Shselasky	struct mlx5_ifc_eth_per_prio_grp_data_layout_bits eth_per_prio_grp_data_layout;
9603290650Shselasky	struct mlx5_ifc_eth_per_traffic_class_cong_layout_bits eth_per_traffic_class_cong_layout;
9604290650Shselasky	struct mlx5_ifc_eth_per_traffic_class_layout_bits eth_per_traffic_class_layout;
9605290650Shselasky	struct mlx5_ifc_lane_2_module_mapping_bits lane_2_module_mapping;
9606290650Shselasky	struct mlx5_ifc_link_level_retrans_cntr_grp_date_bits link_level_retrans_cntr_grp_date;
9607290650Shselasky	struct mlx5_ifc_pamp_reg_bits pamp_reg;
9608290650Shselasky	struct mlx5_ifc_paos_reg_bits paos_reg;
9609290650Shselasky	struct mlx5_ifc_pbmc_reg_bits pbmc_reg;
9610290650Shselasky	struct mlx5_ifc_pcap_reg_bits pcap_reg;
9611290650Shselasky	struct mlx5_ifc_peir_reg_bits peir_reg;
9612290650Shselasky	struct mlx5_ifc_pelc_reg_bits pelc_reg;
9613290650Shselasky	struct mlx5_ifc_pfcc_reg_bits pfcc_reg;
9614290650Shselasky	struct mlx5_ifc_phbr_binding_reg_bits phbr_binding_reg;
9615290650Shselasky	struct mlx5_ifc_phbr_for_port_tclass_reg_bits phbr_for_port_tclass_reg;
9616290650Shselasky	struct mlx5_ifc_phbr_for_prio_reg_bits phbr_for_prio_reg;
9617290650Shselasky	struct mlx5_ifc_phrr_reg_bits phrr_reg;
9618290650Shselasky	struct mlx5_ifc_phys_layer_cntrs_bits phys_layer_cntrs;
9619290650Shselasky	struct mlx5_ifc_pifr_reg_bits pifr_reg;
9620290650Shselasky	struct mlx5_ifc_pipg_reg_bits pipg_reg;
9621290650Shselasky	struct mlx5_ifc_plbf_reg_bits plbf_reg;
9622290650Shselasky	struct mlx5_ifc_plib_reg_bits plib_reg;
9623290650Shselasky	struct mlx5_ifc_pll_status_data_bits pll_status_data;
9624290650Shselasky	struct mlx5_ifc_plpc_reg_bits plpc_reg;
9625290650Shselasky	struct mlx5_ifc_pmaos_reg_bits pmaos_reg;
9626290650Shselasky	struct mlx5_ifc_pmlp_reg_bits pmlp_reg;
9627290650Shselasky	struct mlx5_ifc_pmlpn_reg_bits pmlpn_reg;
9628290650Shselasky	struct mlx5_ifc_pmpc_reg_bits pmpc_reg;
9629290650Shselasky	struct mlx5_ifc_pmpe_reg_bits pmpe_reg;
9630290650Shselasky	struct mlx5_ifc_pmpr_reg_bits pmpr_reg;
9631290650Shselasky	struct mlx5_ifc_pmtu_reg_bits pmtu_reg;
9632290650Shselasky	struct mlx5_ifc_ppad_reg_bits ppad_reg;
9633290650Shselasky	struct mlx5_ifc_ppcnt_reg_bits ppcnt_reg;
9634290650Shselasky	struct mlx5_ifc_ppll_reg_bits ppll_reg;
9635290650Shselasky	struct mlx5_ifc_pplm_reg_bits pplm_reg;
9636290650Shselasky	struct mlx5_ifc_pplr_reg_bits pplr_reg;
9637290650Shselasky	struct mlx5_ifc_ppsc_reg_bits ppsc_reg;
9638290650Shselasky	struct mlx5_ifc_pspa_reg_bits pspa_reg;
9639290650Shselasky	struct mlx5_ifc_ptas_reg_bits ptas_reg;
9640290650Shselasky	struct mlx5_ifc_ptys_reg_bits ptys_reg;
9641290650Shselasky	struct mlx5_ifc_pude_reg_bits pude_reg;
9642290650Shselasky	struct mlx5_ifc_pvlc_reg_bits pvlc_reg;
9643290650Shselasky	struct mlx5_ifc_slrg_reg_bits slrg_reg;
9644290650Shselasky	struct mlx5_ifc_slrp_reg_bits slrp_reg;
9645290650Shselasky	struct mlx5_ifc_sltp_reg_bits sltp_reg;
9646290650Shselasky	u8         reserved_0[0x7880];
9647290650Shselasky};
9648290650Shselasky
9649290650Shselaskyunion mlx5_ifc_debug_enhancements_document_bits {
9650290650Shselasky	struct mlx5_ifc_health_buffer_bits health_buffer;
9651290650Shselasky	u8         reserved_0[0x200];
9652290650Shselasky};
9653290650Shselasky
9654290650Shselaskyunion mlx5_ifc_no_dram_nic_document_bits {
9655290650Shselasky	struct mlx5_ifc_nodnic_config_reg_bits nodnic_config_reg;
9656290650Shselasky	struct mlx5_ifc_nodnic_cq_arming_word_bits nodnic_cq_arming_word;
9657290650Shselasky	struct mlx5_ifc_nodnic_event_word_bits nodnic_event_word;
9658290650Shselasky	struct mlx5_ifc_nodnic_gid_filters_bits nodnic_gid_filters;
9659290650Shselasky	struct mlx5_ifc_nodnic_mac_filters_bits nodnic_mac_filters;
9660290650Shselasky	struct mlx5_ifc_nodnic_port_config_reg_bits nodnic_port_config_reg;
9661290650Shselasky	struct mlx5_ifc_nodnic_ring_config_reg_bits nodnic_ring_config_reg;
9662290650Shselasky	struct mlx5_ifc_nodnic_ring_doorbell_bits nodnic_ring_doorbell;
9663290650Shselasky	u8         reserved_0[0x3160];
9664290650Shselasky};
9665290650Shselasky
9666290650Shselaskyunion mlx5_ifc_uplink_pci_interface_document_bits {
9667290650Shselasky	struct mlx5_ifc_initial_seg_bits initial_seg;
9668290650Shselasky	struct mlx5_ifc_vendor_specific_cap_bits vendor_specific_cap;
9669290650Shselasky	u8         reserved_0[0x20120];
9670290650Shselasky};
9671290650Shselasky
9672290650Shselasky
9673290650Shselasky#endif /* MLX5_IFC_H */
9674