mlx5_ifc.h revision 353210
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 353210 2019-10-07 09:07:33Z hselasky $
26321992Shselasky */
27290650Shselasky
28290650Shselasky#ifndef MLX5_IFC_H
29290650Shselasky#define MLX5_IFC_H
30290650Shselasky
31341958Shselasky#include <dev/mlx5/mlx5_fpga/mlx5_ifc_fpga.h>
32341958Shselasky
33290650Shselaskyenum {
34290650Shselasky	MLX5_EVENT_TYPE_COMP                                       = 0x0,
35290650Shselasky	MLX5_EVENT_TYPE_PATH_MIG                                   = 0x1,
36290650Shselasky	MLX5_EVENT_TYPE_COMM_EST                                   = 0x2,
37290650Shselasky	MLX5_EVENT_TYPE_SQ_DRAINED                                 = 0x3,
38290650Shselasky	MLX5_EVENT_TYPE_SRQ_LAST_WQE                               = 0x13,
39290650Shselasky	MLX5_EVENT_TYPE_SRQ_RQ_LIMIT                               = 0x14,
40290650Shselasky	MLX5_EVENT_TYPE_DCT_DRAINED                                = 0x1c,
41290650Shselasky	MLX5_EVENT_TYPE_DCT_KEY_VIOLATION                          = 0x1d,
42290650Shselasky	MLX5_EVENT_TYPE_CQ_ERROR                                   = 0x4,
43290650Shselasky	MLX5_EVENT_TYPE_WQ_CATAS_ERROR                             = 0x5,
44290650Shselasky	MLX5_EVENT_TYPE_PATH_MIG_FAILED                            = 0x7,
45290650Shselasky	MLX5_EVENT_TYPE_PAGE_FAULT                                 = 0xc,
46290650Shselasky	MLX5_EVENT_TYPE_WQ_INVAL_REQ_ERROR                         = 0x10,
47290650Shselasky	MLX5_EVENT_TYPE_WQ_ACCESS_ERROR                            = 0x11,
48290650Shselasky	MLX5_EVENT_TYPE_SRQ_CATAS_ERROR                            = 0x12,
49290650Shselasky	MLX5_EVENT_TYPE_INTERNAL_ERROR                             = 0x8,
50290650Shselasky	MLX5_EVENT_TYPE_PORT_CHANGE                                = 0x9,
51290650Shselasky	MLX5_EVENT_TYPE_GPIO_EVENT                                 = 0x15,
52290650Shselasky	MLX5_EVENT_TYPE_CODING_PORT_MODULE_EVENT                   = 0x16,
53347800Shselasky	MLX5_EVENT_TYPE_TEMP_WARN_EVENT                            = 0x17,
54290650Shselasky	MLX5_EVENT_TYPE_REMOTE_CONFIG                              = 0x19,
55306233Shselasky	MLX5_EVENT_TYPE_CODING_DCBX_CHANGE_EVENT                   = 0x1e,
56321992Shselasky	MLX5_EVENT_TYPE_CODING_PPS_EVENT                           = 0x25,
57321992Shselasky	MLX5_EVENT_TYPE_CODING_GENERAL_NOTIFICATION_EVENT          = 0x22,
58290650Shselasky	MLX5_EVENT_TYPE_DB_BF_CONGESTION                           = 0x1a,
59290650Shselasky	MLX5_EVENT_TYPE_STALL_EVENT                                = 0x1b,
60290650Shselasky	MLX5_EVENT_TYPE_DROPPED_PACKET_LOGGED_EVENT                = 0x1f,
61290650Shselasky	MLX5_EVENT_TYPE_CMD                                        = 0xa,
62290650Shselasky	MLX5_EVENT_TYPE_PAGE_REQUEST                               = 0xb,
63341958Shselasky	MLX5_EVENT_TYPE_NIC_VPORT_CHANGE                           = 0xd,
64341958Shselasky	MLX5_EVENT_TYPE_FPGA_ERROR                                 = 0x20,
65341958Shselasky	MLX5_EVENT_TYPE_FPGA_QP_ERROR                              = 0x21,
66290650Shselasky};
67290650Shselasky
68290650Shselaskyenum {
69306233Shselasky	MLX5_MODIFY_TIR_BITMASK_LRO                                = 0x0,
70306233Shselasky	MLX5_MODIFY_TIR_BITMASK_INDIRECT_TABLE                     = 0x1,
71306233Shselasky	MLX5_MODIFY_TIR_BITMASK_HASH                               = 0x2,
72306233Shselasky	MLX5_MODIFY_TIR_BITMASK_TUNNELED_OFFLOAD_EN                = 0x3,
73306233Shselasky	MLX5_MODIFY_TIR_BITMASK_SELF_LB_EN                         = 0x4
74290650Shselasky};
75290650Shselasky
76290650Shselaskyenum {
77290650Shselasky	MLX5_MODIFY_RQT_BITMASK_RQN_LIST          = 0x1,
78290650Shselasky};
79290650Shselasky
80290650Shselaskyenum {
81329209Shselasky	MLX5_SET_HCA_CAP_OP_MOD_GENERAL_DEVICE        = 0x0,
82329209Shselasky	MLX5_SET_HCA_CAP_OP_MOD_ATOMIC                = 0x3,
83329209Shselasky};
84329209Shselasky
85329209Shselaskyenum {
86290650Shselasky	MLX5_CMD_OP_QUERY_HCA_CAP                 = 0x100,
87290650Shselasky	MLX5_CMD_OP_QUERY_ADAPTER                 = 0x101,
88290650Shselasky	MLX5_CMD_OP_INIT_HCA                      = 0x102,
89290650Shselasky	MLX5_CMD_OP_TEARDOWN_HCA                  = 0x103,
90290650Shselasky	MLX5_CMD_OP_ENABLE_HCA                    = 0x104,
91290650Shselasky	MLX5_CMD_OP_DISABLE_HCA                   = 0x105,
92290650Shselasky	MLX5_CMD_OP_QUERY_PAGES                   = 0x107,
93290650Shselasky	MLX5_CMD_OP_MANAGE_PAGES                  = 0x108,
94290650Shselasky	MLX5_CMD_OP_SET_HCA_CAP                   = 0x109,
95290650Shselasky	MLX5_CMD_OP_QUERY_ISSI                    = 0x10a,
96290650Shselasky	MLX5_CMD_OP_SET_ISSI                      = 0x10b,
97290650Shselasky	MLX5_CMD_OP_SET_DRIVER_VERSION            = 0x10d,
98321992Shselasky	MLX5_CMD_OP_QUERY_OTHER_HCA_CAP           = 0x10e,
99321992Shselasky	MLX5_CMD_OP_MODIFY_OTHER_HCA_CAP          = 0x10f,
100290650Shselasky	MLX5_CMD_OP_CREATE_MKEY                   = 0x200,
101290650Shselasky	MLX5_CMD_OP_QUERY_MKEY                    = 0x201,
102290650Shselasky	MLX5_CMD_OP_DESTROY_MKEY                  = 0x202,
103290650Shselasky	MLX5_CMD_OP_QUERY_SPECIAL_CONTEXTS        = 0x203,
104290650Shselasky	MLX5_CMD_OP_PAGE_FAULT_RESUME             = 0x204,
105290650Shselasky	MLX5_CMD_OP_CREATE_EQ                     = 0x301,
106290650Shselasky	MLX5_CMD_OP_DESTROY_EQ                    = 0x302,
107290650Shselasky	MLX5_CMD_OP_QUERY_EQ                      = 0x303,
108290650Shselasky	MLX5_CMD_OP_GEN_EQE                       = 0x304,
109290650Shselasky	MLX5_CMD_OP_CREATE_CQ                     = 0x400,
110290650Shselasky	MLX5_CMD_OP_DESTROY_CQ                    = 0x401,
111290650Shselasky	MLX5_CMD_OP_QUERY_CQ                      = 0x402,
112290650Shselasky	MLX5_CMD_OP_MODIFY_CQ                     = 0x403,
113290650Shselasky	MLX5_CMD_OP_CREATE_QP                     = 0x500,
114290650Shselasky	MLX5_CMD_OP_DESTROY_QP                    = 0x501,
115290650Shselasky	MLX5_CMD_OP_RST2INIT_QP                   = 0x502,
116290650Shselasky	MLX5_CMD_OP_INIT2RTR_QP                   = 0x503,
117290650Shselasky	MLX5_CMD_OP_RTR2RTS_QP                    = 0x504,
118290650Shselasky	MLX5_CMD_OP_RTS2RTS_QP                    = 0x505,
119290650Shselasky	MLX5_CMD_OP_SQERR2RTS_QP                  = 0x506,
120290650Shselasky	MLX5_CMD_OP_2ERR_QP                       = 0x507,
121290650Shselasky	MLX5_CMD_OP_2RST_QP                       = 0x50a,
122290650Shselasky	MLX5_CMD_OP_QUERY_QP                      = 0x50b,
123290650Shselasky	MLX5_CMD_OP_SQD_RTS_QP                    = 0x50c,
124290650Shselasky	MLX5_CMD_OP_INIT2INIT_QP                  = 0x50e,
125290650Shselasky	MLX5_CMD_OP_CREATE_PSV                    = 0x600,
126290650Shselasky	MLX5_CMD_OP_DESTROY_PSV                   = 0x601,
127290650Shselasky	MLX5_CMD_OP_CREATE_SRQ                    = 0x700,
128290650Shselasky	MLX5_CMD_OP_DESTROY_SRQ                   = 0x701,
129290650Shselasky	MLX5_CMD_OP_QUERY_SRQ                     = 0x702,
130290650Shselasky	MLX5_CMD_OP_ARM_RQ                        = 0x703,
131290650Shselasky	MLX5_CMD_OP_CREATE_XRC_SRQ                = 0x705,
132290650Shselasky	MLX5_CMD_OP_DESTROY_XRC_SRQ               = 0x706,
133290650Shselasky	MLX5_CMD_OP_QUERY_XRC_SRQ                 = 0x707,
134290650Shselasky	MLX5_CMD_OP_ARM_XRC_SRQ                   = 0x708,
135290650Shselasky	MLX5_CMD_OP_CREATE_DCT                    = 0x710,
136290650Shselasky	MLX5_CMD_OP_DESTROY_DCT                   = 0x711,
137290650Shselasky	MLX5_CMD_OP_DRAIN_DCT                     = 0x712,
138290650Shselasky	MLX5_CMD_OP_QUERY_DCT                     = 0x713,
139290650Shselasky	MLX5_CMD_OP_ARM_DCT_FOR_KEY_VIOLATION     = 0x714,
140290650Shselasky	MLX5_CMD_OP_SET_DC_CNAK_TRACE             = 0x715,
141290650Shselasky	MLX5_CMD_OP_QUERY_DC_CNAK_TRACE           = 0x716,
142290650Shselasky	MLX5_CMD_OP_QUERY_VPORT_STATE             = 0x750,
143290650Shselasky	MLX5_CMD_OP_MODIFY_VPORT_STATE            = 0x751,
144290650Shselasky	MLX5_CMD_OP_QUERY_ESW_VPORT_CONTEXT       = 0x752,
145290650Shselasky	MLX5_CMD_OP_MODIFY_ESW_VPORT_CONTEXT      = 0x753,
146290650Shselasky	MLX5_CMD_OP_QUERY_NIC_VPORT_CONTEXT       = 0x754,
147290650Shselasky	MLX5_CMD_OP_MODIFY_NIC_VPORT_CONTEXT      = 0x755,
148290650Shselasky	MLX5_CMD_OP_QUERY_ROCE_ADDRESS            = 0x760,
149290650Shselasky	MLX5_CMD_OP_SET_ROCE_ADDRESS              = 0x761,
150290650Shselasky	MLX5_CMD_OP_QUERY_HCA_VPORT_CONTEXT       = 0x762,
151290650Shselasky	MLX5_CMD_OP_MODIFY_HCA_VPORT_CONTEXT      = 0x763,
152290650Shselasky	MLX5_CMD_OP_QUERY_HCA_VPORT_GID           = 0x764,
153290650Shselasky	MLX5_CMD_OP_QUERY_HCA_VPORT_PKEY          = 0x765,
154347850Shselasky	MLX5_CMD_OP_QUERY_VNIC_ENV                = 0x76f,
155290650Shselasky	MLX5_CMD_OP_QUERY_VPORT_COUNTER           = 0x770,
156290650Shselasky	MLX5_CMD_OP_ALLOC_Q_COUNTER               = 0x771,
157290650Shselasky	MLX5_CMD_OP_DEALLOC_Q_COUNTER             = 0x772,
158290650Shselasky	MLX5_CMD_OP_QUERY_Q_COUNTER               = 0x773,
159306233Shselasky	MLX5_CMD_OP_SET_RATE_LIMIT                = 0x780,
160306233Shselasky	MLX5_CMD_OP_QUERY_RATE_LIMIT              = 0x781,
161308678Shselasky	MLX5_CMD_OP_CREATE_SCHEDULING_ELEMENT     = 0x782,
162308678Shselasky	MLX5_CMD_OP_DESTROY_SCHEDULING_ELEMENT    = 0x783,
163308678Shselasky	MLX5_CMD_OP_QUERY_SCHEDULING_ELEMENT      = 0x784,
164308678Shselasky	MLX5_CMD_OP_MODIFY_SCHEDULING_ELEMENT     = 0x785,
165308678Shselasky	MLX5_CMD_OP_CREATE_QOS_PARA_VPORT         = 0x786,
166308678Shselasky	MLX5_CMD_OP_DESTROY_QOS_PARA_VPORT        = 0x787,
167290650Shselasky	MLX5_CMD_OP_ALLOC_PD                      = 0x800,
168290650Shselasky	MLX5_CMD_OP_DEALLOC_PD                    = 0x801,
169290650Shselasky	MLX5_CMD_OP_ALLOC_UAR                     = 0x802,
170290650Shselasky	MLX5_CMD_OP_DEALLOC_UAR                   = 0x803,
171290650Shselasky	MLX5_CMD_OP_CONFIG_INT_MODERATION         = 0x804,
172290650Shselasky	MLX5_CMD_OP_ACCESS_REG                    = 0x805,
173290650Shselasky	MLX5_CMD_OP_ATTACH_TO_MCG                 = 0x806,
174290650Shselasky	MLX5_CMD_OP_DETACH_FROM_MCG               = 0x807,
175290650Shselasky	MLX5_CMD_OP_GET_DROPPED_PACKET_LOG        = 0x80a,
176290650Shselasky	MLX5_CMD_OP_MAD_IFC                       = 0x50d,
177290650Shselasky	MLX5_CMD_OP_QUERY_MAD_DEMUX               = 0x80b,
178290650Shselasky	MLX5_CMD_OP_SET_MAD_DEMUX                 = 0x80c,
179290650Shselasky	MLX5_CMD_OP_NOP                           = 0x80d,
180290650Shselasky	MLX5_CMD_OP_ALLOC_XRCD                    = 0x80e,
181290650Shselasky	MLX5_CMD_OP_DEALLOC_XRCD                  = 0x80f,
182290650Shselasky	MLX5_CMD_OP_SET_BURST_SIZE                = 0x812,
183290650Shselasky	MLX5_CMD_OP_QUERY_BURST_SIZE              = 0x813,
184290650Shselasky	MLX5_CMD_OP_ACTIVATE_TRACER               = 0x814,
185290650Shselasky	MLX5_CMD_OP_DEACTIVATE_TRACER             = 0x815,
186290650Shselasky	MLX5_CMD_OP_ALLOC_TRANSPORT_DOMAIN        = 0x816,
187290650Shselasky	MLX5_CMD_OP_DEALLOC_TRANSPORT_DOMAIN      = 0x817,
188306233Shselasky	MLX5_CMD_OP_SET_DIAGNOSTICS               = 0x820,
189306233Shselasky	MLX5_CMD_OP_QUERY_DIAGNOSTICS             = 0x821,
190290650Shselasky	MLX5_CMD_OP_QUERY_CONG_STATUS             = 0x822,
191290650Shselasky	MLX5_CMD_OP_MODIFY_CONG_STATUS            = 0x823,
192290650Shselasky	MLX5_CMD_OP_QUERY_CONG_PARAMS             = 0x824,
193290650Shselasky	MLX5_CMD_OP_MODIFY_CONG_PARAMS            = 0x825,
194290650Shselasky	MLX5_CMD_OP_QUERY_CONG_STATISTICS         = 0x826,
195290650Shselasky	MLX5_CMD_OP_ADD_VXLAN_UDP_DPORT           = 0x827,
196290650Shselasky	MLX5_CMD_OP_DELETE_VXLAN_UDP_DPORT        = 0x828,
197290650Shselasky	MLX5_CMD_OP_SET_L2_TABLE_ENTRY            = 0x829,
198290650Shselasky	MLX5_CMD_OP_QUERY_L2_TABLE_ENTRY          = 0x82a,
199290650Shselasky	MLX5_CMD_OP_DELETE_L2_TABLE_ENTRY         = 0x82b,
200290650Shselasky	MLX5_CMD_OP_SET_WOL_ROL                   = 0x830,
201290650Shselasky	MLX5_CMD_OP_QUERY_WOL_ROL                 = 0x831,
202321992Shselasky	MLX5_CMD_OP_CREATE_LAG                    = 0x840,
203321992Shselasky	MLX5_CMD_OP_MODIFY_LAG                    = 0x841,
204321992Shselasky	MLX5_CMD_OP_QUERY_LAG                     = 0x842,
205321992Shselasky	MLX5_CMD_OP_DESTROY_LAG                   = 0x843,
206321992Shselasky	MLX5_CMD_OP_CREATE_VPORT_LAG              = 0x844,
207321992Shselasky	MLX5_CMD_OP_DESTROY_VPORT_LAG             = 0x845,
208290650Shselasky	MLX5_CMD_OP_CREATE_TIR                    = 0x900,
209290650Shselasky	MLX5_CMD_OP_MODIFY_TIR                    = 0x901,
210290650Shselasky	MLX5_CMD_OP_DESTROY_TIR                   = 0x902,
211290650Shselasky	MLX5_CMD_OP_QUERY_TIR                     = 0x903,
212290650Shselasky	MLX5_CMD_OP_CREATE_SQ                     = 0x904,
213290650Shselasky	MLX5_CMD_OP_MODIFY_SQ                     = 0x905,
214290650Shselasky	MLX5_CMD_OP_DESTROY_SQ                    = 0x906,
215290650Shselasky	MLX5_CMD_OP_QUERY_SQ                      = 0x907,
216290650Shselasky	MLX5_CMD_OP_CREATE_RQ                     = 0x908,
217290650Shselasky	MLX5_CMD_OP_MODIFY_RQ                     = 0x909,
218290650Shselasky	MLX5_CMD_OP_DESTROY_RQ                    = 0x90a,
219290650Shselasky	MLX5_CMD_OP_QUERY_RQ                      = 0x90b,
220290650Shselasky	MLX5_CMD_OP_CREATE_RMP                    = 0x90c,
221290650Shselasky	MLX5_CMD_OP_MODIFY_RMP                    = 0x90d,
222290650Shselasky	MLX5_CMD_OP_DESTROY_RMP                   = 0x90e,
223290650Shselasky	MLX5_CMD_OP_QUERY_RMP                     = 0x90f,
224321992Shselasky	MLX5_CMD_OP_SET_DELAY_DROP_PARAMS         = 0x910,
225321992Shselasky	MLX5_CMD_OP_QUERY_DELAY_DROP_PARAMS       = 0x911,
226290650Shselasky	MLX5_CMD_OP_CREATE_TIS                    = 0x912,
227290650Shselasky	MLX5_CMD_OP_MODIFY_TIS                    = 0x913,
228290650Shselasky	MLX5_CMD_OP_DESTROY_TIS                   = 0x914,
229290650Shselasky	MLX5_CMD_OP_QUERY_TIS                     = 0x915,
230290650Shselasky	MLX5_CMD_OP_CREATE_RQT                    = 0x916,
231290650Shselasky	MLX5_CMD_OP_MODIFY_RQT                    = 0x917,
232290650Shselasky	MLX5_CMD_OP_DESTROY_RQT                   = 0x918,
233290650Shselasky	MLX5_CMD_OP_QUERY_RQT                     = 0x919,
234290650Shselasky	MLX5_CMD_OP_SET_FLOW_TABLE_ROOT           = 0x92f,
235290650Shselasky	MLX5_CMD_OP_CREATE_FLOW_TABLE             = 0x930,
236290650Shselasky	MLX5_CMD_OP_DESTROY_FLOW_TABLE            = 0x931,
237290650Shselasky	MLX5_CMD_OP_QUERY_FLOW_TABLE              = 0x932,
238290650Shselasky	MLX5_CMD_OP_CREATE_FLOW_GROUP             = 0x933,
239290650Shselasky	MLX5_CMD_OP_DESTROY_FLOW_GROUP            = 0x934,
240290650Shselasky	MLX5_CMD_OP_QUERY_FLOW_GROUP              = 0x935,
241290650Shselasky	MLX5_CMD_OP_SET_FLOW_TABLE_ENTRY          = 0x936,
242290650Shselasky	MLX5_CMD_OP_QUERY_FLOW_TABLE_ENTRY        = 0x937,
243290650Shselasky	MLX5_CMD_OP_DELETE_FLOW_TABLE_ENTRY       = 0x938,
244290650Shselasky	MLX5_CMD_OP_ALLOC_FLOW_COUNTER            = 0x939,
245290650Shselasky	MLX5_CMD_OP_DEALLOC_FLOW_COUNTER          = 0x93a,
246321992Shselasky	MLX5_CMD_OP_QUERY_FLOW_COUNTER            = 0x93b,
247321992Shselasky	MLX5_CMD_OP_MODIFY_FLOW_TABLE             = 0x93c,
248321992Shselasky	MLX5_CMD_OP_ALLOC_ENCAP_HEADER            = 0x93d,
249321992Shselasky	MLX5_CMD_OP_DEALLOC_ENCAP_HEADER          = 0x93e,
250341958Shselasky	MLX5_CMD_OP_FPGA_CREATE_QP                = 0x960,
251341958Shselasky	MLX5_CMD_OP_FPGA_MODIFY_QP                = 0x961,
252341958Shselasky	MLX5_CMD_OP_FPGA_QUERY_QP                 = 0x962,
253341958Shselasky	MLX5_CMD_OP_FPGA_DESTROY_QP               = 0x963,
254341958Shselasky	MLX5_CMD_OP_FPGA_QUERY_QP_COUNTERS        = 0x964,
255290650Shselasky};
256290650Shselasky
257290650Shselaskyenum {
258290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OPCODE_QUERY_FW_INFO     = 0x8007,
259290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_QUERY_CAPABILITY         = 0x8400,
260290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_ACCESS_REGISTER          = 0x9001,
261290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_QUERY_VIRTUAL_MAC        = 0x9003,
262290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_SET_VIRTUAL_MAC          = 0x9004,
263290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_QUERY_WOL_ROL            = 0x9005,
264290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_SET_WOL_ROL              = 0x9006,
265290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OCBB_INIT                = 0x9007,
266290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OCBB_QUERY_HEADER_STATUS = 0x9008,
267290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OCBB_QUERY_ETOC_STATUS   = 0x9009,
268290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OCBB_SET_EVENT           = 0x900a,
269290650Shselasky	MLX5_ICMD_CMDS_OPCODE_ICMD_OPCODE_INIT_OCSD         = 0xf004
270290650Shselasky};
271290650Shselasky
272290650Shselaskystruct mlx5_ifc_flow_table_fields_supported_bits {
273290650Shselasky	u8         outer_dmac[0x1];
274290650Shselasky	u8         outer_smac[0x1];
275290650Shselasky	u8         outer_ether_type[0x1];
276290650Shselasky	u8         reserved_0[0x1];
277290650Shselasky	u8         outer_first_prio[0x1];
278290650Shselasky	u8         outer_first_cfi[0x1];
279290650Shselasky	u8         outer_first_vid[0x1];
280290650Shselasky	u8         reserved_1[0x1];
281290650Shselasky	u8         outer_second_prio[0x1];
282290650Shselasky	u8         outer_second_cfi[0x1];
283290650Shselasky	u8         outer_second_vid[0x1];
284290650Shselasky	u8         outer_ipv6_flow_label[0x1];
285290650Shselasky	u8         outer_sip[0x1];
286290650Shselasky	u8         outer_dip[0x1];
287290650Shselasky	u8         outer_frag[0x1];
288290650Shselasky	u8         outer_ip_protocol[0x1];
289290650Shselasky	u8         outer_ip_ecn[0x1];
290290650Shselasky	u8         outer_ip_dscp[0x1];
291290650Shselasky	u8         outer_udp_sport[0x1];
292290650Shselasky	u8         outer_udp_dport[0x1];
293290650Shselasky	u8         outer_tcp_sport[0x1];
294290650Shselasky	u8         outer_tcp_dport[0x1];
295290650Shselasky	u8         outer_tcp_flags[0x1];
296290650Shselasky	u8         outer_gre_protocol[0x1];
297290650Shselasky	u8         outer_gre_key[0x1];
298290650Shselasky	u8         outer_vxlan_vni[0x1];
299321992Shselasky	u8         outer_geneve_vni[0x1];
300321992Shselasky	u8         outer_geneve_oam[0x1];
301321992Shselasky	u8         outer_geneve_protocol_type[0x1];
302321992Shselasky	u8         outer_geneve_opt_len[0x1];
303321992Shselasky	u8         reserved_2[0x1];
304290650Shselasky	u8         source_eswitch_port[0x1];
305290650Shselasky
306290650Shselasky	u8         inner_dmac[0x1];
307290650Shselasky	u8         inner_smac[0x1];
308290650Shselasky	u8         inner_ether_type[0x1];
309290650Shselasky	u8         reserved_3[0x1];
310290650Shselasky	u8         inner_first_prio[0x1];
311290650Shselasky	u8         inner_first_cfi[0x1];
312290650Shselasky	u8         inner_first_vid[0x1];
313290650Shselasky	u8         reserved_4[0x1];
314290650Shselasky	u8         inner_second_prio[0x1];
315290650Shselasky	u8         inner_second_cfi[0x1];
316290650Shselasky	u8         inner_second_vid[0x1];
317290650Shselasky	u8         inner_ipv6_flow_label[0x1];
318290650Shselasky	u8         inner_sip[0x1];
319290650Shselasky	u8         inner_dip[0x1];
320290650Shselasky	u8         inner_frag[0x1];
321290650Shselasky	u8         inner_ip_protocol[0x1];
322290650Shselasky	u8         inner_ip_ecn[0x1];
323290650Shselasky	u8         inner_ip_dscp[0x1];
324290650Shselasky	u8         inner_udp_sport[0x1];
325290650Shselasky	u8         inner_udp_dport[0x1];
326290650Shselasky	u8         inner_tcp_sport[0x1];
327290650Shselasky	u8         inner_tcp_dport[0x1];
328290650Shselasky	u8         inner_tcp_flags[0x1];
329290650Shselasky	u8         reserved_5[0x9];
330290650Shselasky
331321992Shselasky	u8         reserved_6[0x1a];
332321992Shselasky	u8         bth_dst_qp[0x1];
333321992Shselasky	u8         reserved_7[0x4];
334290650Shselasky	u8         source_sqn[0x1];
335290650Shselasky
336321992Shselasky	u8         reserved_8[0x20];
337290650Shselasky};
338290650Shselasky
339308678Shselaskystruct mlx5_ifc_eth_discard_cntrs_grp_bits {
340308678Shselasky	u8         ingress_general_high[0x20];
341308678Shselasky
342308678Shselasky	u8         ingress_general_low[0x20];
343308678Shselasky
344308678Shselasky	u8         ingress_policy_engine_high[0x20];
345308678Shselasky
346308678Shselasky	u8         ingress_policy_engine_low[0x20];
347308678Shselasky
348308678Shselasky	u8         ingress_vlan_membership_high[0x20];
349308678Shselasky
350308678Shselasky	u8         ingress_vlan_membership_low[0x20];
351308678Shselasky
352308678Shselasky	u8         ingress_tag_frame_type_high[0x20];
353308678Shselasky
354308678Shselasky	u8         ingress_tag_frame_type_low[0x20];
355308678Shselasky
356308678Shselasky	u8         egress_vlan_membership_high[0x20];
357308678Shselasky
358308678Shselasky	u8         egress_vlan_membership_low[0x20];
359308678Shselasky
360308678Shselasky	u8         loopback_filter_high[0x20];
361308678Shselasky
362308678Shselasky	u8         loopback_filter_low[0x20];
363308678Shselasky
364308678Shselasky	u8         egress_general_high[0x20];
365308678Shselasky
366308678Shselasky	u8         egress_general_low[0x20];
367308678Shselasky
368308678Shselasky	u8         reserved_at_1c0[0x40];
369308678Shselasky
370308678Shselasky	u8         egress_hoq_high[0x20];
371308678Shselasky
372308678Shselasky	u8         egress_hoq_low[0x20];
373308678Shselasky
374308678Shselasky	u8         port_isolation_high[0x20];
375308678Shselasky
376308678Shselasky	u8         port_isolation_low[0x20];
377308678Shselasky
378308678Shselasky	u8         egress_policy_engine_high[0x20];
379308678Shselasky
380308678Shselasky	u8         egress_policy_engine_low[0x20];
381308678Shselasky
382308678Shselasky	u8         ingress_tx_link_down_high[0x20];
383308678Shselasky
384308678Shselasky	u8         ingress_tx_link_down_low[0x20];
385308678Shselasky
386308678Shselasky	u8         egress_stp_filter_high[0x20];
387308678Shselasky
388308678Shselasky	u8         egress_stp_filter_low[0x20];
389308678Shselasky
390321992Shselasky	u8         egress_hoq_stall_high[0x20];
391321992Shselasky
392321992Shselasky	u8         egress_hoq_stall_low[0x20];
393321992Shselasky
394321992Shselasky	u8         reserved_at_340[0x440];
395308678Shselasky};
396290650Shselaskystruct mlx5_ifc_flow_table_prop_layout_bits {
397290650Shselasky	u8         ft_support[0x1];
398290650Shselasky	u8         flow_tag[0x1];
399290650Shselasky	u8         flow_counter[0x1];
400290650Shselasky	u8         flow_modify_en[0x1];
401290650Shselasky	u8         modify_root[0x1];
402329200Shselasky	u8         identified_miss_table[0x1];
403329200Shselasky	u8         flow_table_modify[0x1];
404329200Shselasky	u8         encap[0x1];
405329200Shselasky	u8         decap[0x1];
406329200Shselasky	u8         reset_root_to_default[0x1];
407329200Shselasky	u8         reserved_at_a[0x16];
408290650Shselasky
409329200Shselasky	u8         reserved_at_20[0x2];
410290650Shselasky	u8         log_max_ft_size[0x6];
411329200Shselasky	u8         reserved_at_28[0x10];
412290650Shselasky	u8         max_ft_level[0x8];
413290650Shselasky
414329200Shselasky	u8         reserved_at_40[0x20];
415290650Shselasky
416329200Shselasky	u8         reserved_at_60[0x18];
417290650Shselasky	u8         log_max_ft_num[0x8];
418290650Shselasky
419329200Shselasky	u8         reserved_at_80[0x10];
420290650Shselasky	u8         log_max_flow_counter[0x8];
421290650Shselasky	u8         log_max_destination[0x8];
422290650Shselasky
423329200Shselasky	u8         reserved_at_a0[0x18];
424290650Shselasky	u8         log_max_flow[0x8];
425290650Shselasky
426329200Shselasky	u8         reserved_at_c0[0x40];
427290650Shselasky
428290650Shselasky	struct mlx5_ifc_flow_table_fields_supported_bits ft_field_support;
429290650Shselasky
430290650Shselasky	struct mlx5_ifc_flow_table_fields_supported_bits ft_field_bitmask_support;
431290650Shselasky};
432290650Shselasky
433290650Shselaskystruct mlx5_ifc_odp_per_transport_service_cap_bits {
434290650Shselasky	u8         send[0x1];
435290650Shselasky	u8         receive[0x1];
436290650Shselasky	u8         write[0x1];
437290650Shselasky	u8         read[0x1];
438290650Shselasky	u8         atomic[0x1];
439290650Shselasky	u8         srq_receive[0x1];
440290650Shselasky	u8         reserved_0[0x1a];
441290650Shselasky};
442290650Shselasky
443290650Shselaskystruct mlx5_ifc_flow_counter_list_bits {
444290650Shselasky	u8         reserved_0[0x10];
445290650Shselasky	u8         flow_counter_id[0x10];
446290650Shselasky
447290650Shselasky	u8         reserved_1[0x20];
448290650Shselasky};
449290650Shselasky
450290650Shselaskyenum {
451290650Shselasky	MLX5_FLOW_CONTEXT_DEST_TYPE_VPORT                    = 0x0,
452290650Shselasky	MLX5_FLOW_CONTEXT_DEST_TYPE_FLOW_TABLE               = 0x1,
453290650Shselasky	MLX5_FLOW_CONTEXT_DEST_TYPE_TIR                      = 0x2,
454321992Shselasky	MLX5_FLOW_CONTEXT_DEST_TYPE_QP                       = 0x3,
455290650Shselasky};
456290650Shselasky
457290650Shselaskystruct mlx5_ifc_dest_format_struct_bits {
458290650Shselasky	u8         destination_type[0x8];
459290650Shselasky	u8         destination_id[0x18];
460290650Shselasky
461290650Shselasky	u8         reserved_0[0x20];
462290650Shselasky};
463290650Shselasky
464329200Shselaskystruct mlx5_ifc_ipv4_layout_bits {
465329200Shselasky	u8         reserved_at_0[0x60];
466329200Shselasky
467329200Shselasky	u8         ipv4[0x20];
468329200Shselasky};
469329200Shselasky
470329200Shselaskystruct mlx5_ifc_ipv6_layout_bits {
471329200Shselasky	u8         ipv6[16][0x8];
472329200Shselasky};
473329200Shselasky
474329200Shselaskyunion mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits {
475329200Shselasky	struct mlx5_ifc_ipv6_layout_bits ipv6_layout;
476329200Shselasky	struct mlx5_ifc_ipv4_layout_bits ipv4_layout;
477329200Shselasky	u8         reserved_at_0[0x80];
478329200Shselasky};
479329200Shselasky
480290650Shselaskystruct mlx5_ifc_fte_match_set_lyr_2_4_bits {
481290650Shselasky	u8         smac_47_16[0x20];
482290650Shselasky
483290650Shselasky	u8         smac_15_0[0x10];
484290650Shselasky	u8         ethertype[0x10];
485290650Shselasky
486290650Shselasky	u8         dmac_47_16[0x20];
487290650Shselasky
488290650Shselasky	u8         dmac_15_0[0x10];
489290650Shselasky	u8         first_prio[0x3];
490290650Shselasky	u8         first_cfi[0x1];
491290650Shselasky	u8         first_vid[0xc];
492290650Shselasky
493290650Shselasky	u8         ip_protocol[0x8];
494290650Shselasky	u8         ip_dscp[0x6];
495290650Shselasky	u8         ip_ecn[0x2];
496306233Shselasky	u8         cvlan_tag[0x1];
497306233Shselasky	u8         svlan_tag[0x1];
498290650Shselasky	u8         frag[0x1];
499290650Shselasky	u8         reserved_1[0x4];
500290650Shselasky	u8         tcp_flags[0x9];
501290650Shselasky
502290650Shselasky	u8         tcp_sport[0x10];
503290650Shselasky	u8         tcp_dport[0x10];
504290650Shselasky
505290650Shselasky	u8         reserved_2[0x20];
506290650Shselasky
507290650Shselasky	u8         udp_sport[0x10];
508290650Shselasky	u8         udp_dport[0x10];
509290650Shselasky
510329200Shselasky	union mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits src_ipv4_src_ipv6;
511290650Shselasky
512329200Shselasky	union mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits dst_ipv4_dst_ipv6;
513290650Shselasky};
514290650Shselasky
515290650Shselaskystruct mlx5_ifc_fte_match_set_misc_bits {
516290650Shselasky	u8         reserved_0[0x8];
517290650Shselasky	u8         source_sqn[0x18];
518290650Shselasky
519290650Shselasky	u8         reserved_1[0x10];
520290650Shselasky	u8         source_port[0x10];
521290650Shselasky
522290650Shselasky	u8         outer_second_prio[0x3];
523290650Shselasky	u8         outer_second_cfi[0x1];
524290650Shselasky	u8         outer_second_vid[0xc];
525290650Shselasky	u8         inner_second_prio[0x3];
526290650Shselasky	u8         inner_second_cfi[0x1];
527290650Shselasky	u8         inner_second_vid[0xc];
528290650Shselasky
529290650Shselasky	u8         outer_second_vlan_tag[0x1];
530290650Shselasky	u8         inner_second_vlan_tag[0x1];
531290650Shselasky	u8         reserved_2[0xe];
532290650Shselasky	u8         gre_protocol[0x10];
533290650Shselasky
534290650Shselasky	u8         gre_key_h[0x18];
535290650Shselasky	u8         gre_key_l[0x8];
536290650Shselasky
537290650Shselasky	u8         vxlan_vni[0x18];
538290650Shselasky	u8         reserved_3[0x8];
539290650Shselasky
540308678Shselasky	u8         geneve_vni[0x18];
541308678Shselasky	u8         reserved4[0x7];
542308678Shselasky	u8         geneve_oam[0x1];
543290650Shselasky
544290650Shselasky	u8         reserved_5[0xc];
545290650Shselasky	u8         outer_ipv6_flow_label[0x14];
546290650Shselasky
547290650Shselasky	u8         reserved_6[0xc];
548290650Shselasky	u8         inner_ipv6_flow_label[0x14];
549290650Shselasky
550321992Shselasky	u8         reserved_7[0xa];
551321992Shselasky	u8         geneve_opt_len[0x6];
552308678Shselasky	u8         geneve_protocol_type[0x10];
553321992Shselasky
554321992Shselasky	u8         reserved_8[0x8];
555321992Shselasky	u8         bth_dst_qp[0x18];
556321992Shselasky
557321992Shselasky	u8         reserved_9[0xa0];
558290650Shselasky};
559290650Shselasky
560290650Shselaskystruct mlx5_ifc_cmd_pas_bits {
561290650Shselasky	u8         pa_h[0x20];
562290650Shselasky
563290650Shselasky	u8         pa_l[0x14];
564290650Shselasky	u8         reserved_0[0xc];
565290650Shselasky};
566290650Shselasky
567290650Shselaskystruct mlx5_ifc_uint64_bits {
568290650Shselasky	u8         hi[0x20];
569290650Shselasky
570290650Shselasky	u8         lo[0x20];
571290650Shselasky};
572290650Shselasky
573306233Shselaskystruct mlx5_ifc_application_prio_entry_bits {
574306233Shselasky	u8         reserved_0[0x8];
575306233Shselasky	u8         priority[0x3];
576306233Shselasky	u8         reserved_1[0x2];
577306233Shselasky	u8         sel[0x3];
578306233Shselasky	u8         protocol_id[0x10];
579306233Shselasky};
580306233Shselasky
581290650Shselaskystruct mlx5_ifc_nodnic_ring_doorbell_bits {
582290650Shselasky	u8         reserved_0[0x8];
583290650Shselasky	u8         ring_pi[0x10];
584290650Shselasky	u8         reserved_1[0x8];
585290650Shselasky};
586290650Shselasky
587290650Shselaskyenum {
588290650Shselasky	MLX5_ADS_STAT_RATE_NO_LIMIT  = 0x0,
589290650Shselasky	MLX5_ADS_STAT_RATE_2_5GBPS   = 0x7,
590290650Shselasky	MLX5_ADS_STAT_RATE_10GBPS    = 0x8,
591290650Shselasky	MLX5_ADS_STAT_RATE_30GBPS    = 0x9,
592290650Shselasky	MLX5_ADS_STAT_RATE_5GBPS     = 0xa,
593290650Shselasky	MLX5_ADS_STAT_RATE_20GBPS    = 0xb,
594290650Shselasky	MLX5_ADS_STAT_RATE_40GBPS    = 0xc,
595290650Shselasky	MLX5_ADS_STAT_RATE_60GBPS    = 0xd,
596290650Shselasky	MLX5_ADS_STAT_RATE_80GBPS    = 0xe,
597290650Shselasky	MLX5_ADS_STAT_RATE_120GBPS   = 0xf,
598290650Shselasky};
599290650Shselasky
600290650Shselaskystruct mlx5_ifc_ads_bits {
601290650Shselasky	u8         fl[0x1];
602290650Shselasky	u8         free_ar[0x1];
603290650Shselasky	u8         reserved_0[0xe];
604290650Shselasky	u8         pkey_index[0x10];
605290650Shselasky
606290650Shselasky	u8         reserved_1[0x8];
607290650Shselasky	u8         grh[0x1];
608290650Shselasky	u8         mlid[0x7];
609290650Shselasky	u8         rlid[0x10];
610290650Shselasky
611290650Shselasky	u8         ack_timeout[0x5];
612290650Shselasky	u8         reserved_2[0x3];
613290650Shselasky	u8         src_addr_index[0x8];
614290650Shselasky	u8         log_rtm[0x4];
615290650Shselasky	u8         stat_rate[0x4];
616290650Shselasky	u8         hop_limit[0x8];
617290650Shselasky
618290650Shselasky	u8         reserved_3[0x4];
619290650Shselasky	u8         tclass[0x8];
620290650Shselasky	u8         flow_label[0x14];
621290650Shselasky
622290650Shselasky	u8         rgid_rip[16][0x8];
623290650Shselasky
624290650Shselasky	u8         reserved_4[0x4];
625290650Shselasky	u8         f_dscp[0x1];
626290650Shselasky	u8         f_ecn[0x1];
627290650Shselasky	u8         reserved_5[0x1];
628290650Shselasky	u8         f_eth_prio[0x1];
629290650Shselasky	u8         ecn[0x2];
630290650Shselasky	u8         dscp[0x6];
631290650Shselasky	u8         udp_sport[0x10];
632290650Shselasky
633290650Shselasky	u8         dei_cfi[0x1];
634290650Shselasky	u8         eth_prio[0x3];
635290650Shselasky	u8         sl[0x4];
636290650Shselasky	u8         port[0x8];
637290650Shselasky	u8         rmac_47_32[0x10];
638290650Shselasky
639290650Shselasky	u8         rmac_31_0[0x20];
640290650Shselasky};
641290650Shselasky
642306233Shselaskystruct mlx5_ifc_diagnostic_counter_cap_bits {
643306233Shselasky	u8         sync[0x1];
644306233Shselasky	u8         reserved_0[0xf];
645306233Shselasky	u8         counter_id[0x10];
646306233Shselasky};
647306233Shselasky
648306233Shselaskystruct mlx5_ifc_debug_cap_bits {
649306233Shselasky	u8         reserved_0[0x18];
650306233Shselasky	u8         log_max_samples[0x8];
651306233Shselasky
652306233Shselasky	u8         single[0x1];
653306233Shselasky	u8         repetitive[0x1];
654306233Shselasky	u8         health_mon_rx_activity[0x1];
655306233Shselasky	u8         reserved_1[0x15];
656306233Shselasky	u8         log_min_sample_period[0x8];
657306233Shselasky
658306233Shselasky	u8         reserved_2[0x1c0];
659306233Shselasky
660306233Shselasky	struct mlx5_ifc_diagnostic_counter_cap_bits diagnostic_counter[0x1f0];
661306233Shselasky};
662306233Shselasky
663308678Shselaskystruct mlx5_ifc_qos_cap_bits {
664308678Shselasky	u8         packet_pacing[0x1];
665308678Shselasky	u8         esw_scheduling[0x1];
666308678Shselasky	u8         esw_bw_share[0x1];
667308678Shselasky	u8         esw_rate_limit[0x1];
668308678Shselasky	u8         hll[0x1];
669308678Shselasky	u8         packet_pacing_burst_bound[0x1];
670308678Shselasky	u8         reserved_at_6[0x1a];
671308678Shselasky
672308678Shselasky	u8         reserved_at_20[0x20];
673308678Shselasky
674308678Shselasky	u8         packet_pacing_max_rate[0x20];
675308678Shselasky
676308678Shselasky	u8         packet_pacing_min_rate[0x20];
677308678Shselasky
678308678Shselasky	u8         reserved_at_80[0x10];
679308678Shselasky	u8         packet_pacing_rate_table_size[0x10];
680308678Shselasky
681308678Shselasky	u8         esw_element_type[0x10];
682308678Shselasky	u8         esw_tsar_type[0x10];
683308678Shselasky
684308678Shselasky	u8         reserved_at_c0[0x10];
685308678Shselasky	u8         max_qos_para_vport[0x10];
686308678Shselasky
687308678Shselasky	u8         max_tsar_bw_share[0x20];
688308678Shselasky
689308678Shselasky	u8         reserved_at_100[0x700];
690308678Shselasky};
691308678Shselasky
692306233Shselaskystruct mlx5_ifc_snapshot_cap_bits {
693306233Shselasky	u8         reserved_0[0x1d];
694306233Shselasky	u8         suspend_qp_uc[0x1];
695306233Shselasky	u8         suspend_qp_ud[0x1];
696306233Shselasky	u8         suspend_qp_rc[0x1];
697306233Shselasky
698306233Shselasky	u8         reserved_1[0x1c];
699306233Shselasky	u8         restore_pd[0x1];
700306233Shselasky	u8         restore_uar[0x1];
701306233Shselasky	u8         restore_mkey[0x1];
702306233Shselasky	u8         restore_qp[0x1];
703306233Shselasky
704306233Shselasky	u8         reserved_2[0x1e];
705306233Shselasky	u8         named_mkey[0x1];
706306233Shselasky	u8         named_qp[0x1];
707306233Shselasky
708306233Shselasky	u8         reserved_3[0x7a0];
709306233Shselasky};
710306233Shselasky
711290650Shselaskystruct mlx5_ifc_e_switch_cap_bits {
712290650Shselasky	u8         vport_svlan_strip[0x1];
713290650Shselasky	u8         vport_cvlan_strip[0x1];
714290650Shselasky	u8         vport_svlan_insert[0x1];
715290650Shselasky	u8         vport_cvlan_insert_if_not_exist[0x1];
716290650Shselasky	u8         vport_cvlan_insert_overwrite[0x1];
717290650Shselasky
718306233Shselasky	u8         reserved_0[0x19];
719306233Shselasky
720306233Shselasky	u8         nic_vport_node_guid_modify[0x1];
721306233Shselasky	u8         nic_vport_port_guid_modify[0x1];
722306233Shselasky
723290650Shselasky	u8         reserved_1[0x7e0];
724290650Shselasky};
725290650Shselasky
726290650Shselaskystruct mlx5_ifc_flow_table_eswitch_cap_bits {
727290650Shselasky	u8         reserved_0[0x200];
728290650Shselasky
729290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_esw_fdb;
730290650Shselasky
731290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_esw_acl_ingress;
732290650Shselasky
733290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_esw_acl_egress;
734290650Shselasky
735290650Shselasky	u8         reserved_1[0x7800];
736290650Shselasky};
737290650Shselasky
738290650Shselaskystruct mlx5_ifc_flow_table_nic_cap_bits {
739329200Shselasky	u8         nic_rx_multi_path_tirs[0x1];
740329200Shselasky	u8         nic_rx_multi_path_tirs_fts[0x1];
741329200Shselasky	u8         allow_sniffer_and_nic_rx_shared_tir[0x1];
742329200Shselasky	u8         reserved_at_3[0x1fd];
743290650Shselasky
744290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive;
745290650Shselasky
746290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive_rdma;
747290650Shselasky
748290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive_sniffer;
749290650Shselasky
750290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_transmit;
751290650Shselasky
752290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_transmit_rdma;
753290650Shselasky
754290650Shselasky	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_transmit_sniffer;
755290650Shselasky
756290650Shselasky	u8         reserved_1[0x7200];
757290650Shselasky};
758290650Shselasky
759341975Shselaskyenum {
760341975Shselasky	MLX5_ACCESS_REG_SUMMARY_CTRL_ID_PDDR                   = 0x5031,
761341975Shselasky};
762341975Shselasky
763341975Shselaskystruct mlx5_ifc_pddr_module_info_bits {
764341975Shselasky	u8         cable_technology[0x8];
765341975Shselasky	u8         cable_breakout[0x8];
766341975Shselasky	u8         ext_ethernet_compliance_code[0x8];
767341975Shselasky	u8         ethernet_compliance_code[0x8];
768341975Shselasky
769341975Shselasky	u8         cable_type[0x4];
770341975Shselasky	u8         cable_vendor[0x4];
771341975Shselasky	u8         cable_length[0x8];
772341975Shselasky	u8         cable_identifier[0x8];
773341975Shselasky	u8         cable_power_class[0x8];
774341975Shselasky
775341975Shselasky	u8         reserved_at_40[0x8];
776341975Shselasky	u8         cable_rx_amp[0x8];
777341975Shselasky	u8         cable_rx_emphasis[0x8];
778341975Shselasky	u8         cable_tx_equalization[0x8];
779341975Shselasky
780341975Shselasky	u8         reserved_at_60[0x8];
781341975Shselasky	u8         cable_attenuation_12g[0x8];
782341975Shselasky	u8         cable_attenuation_7g[0x8];
783341975Shselasky	u8         cable_attenuation_5g[0x8];
784341975Shselasky
785341975Shselasky	u8         reserved_at_80[0x8];
786341975Shselasky	u8         rx_cdr_cap[0x4];
787341975Shselasky	u8         tx_cdr_cap[0x4];
788341975Shselasky	u8         reserved_at_90[0x4];
789341975Shselasky	u8         rx_cdr_state[0x4];
790341975Shselasky	u8         reserved_at_98[0x4];
791341975Shselasky	u8         tx_cdr_state[0x4];
792341975Shselasky
793341975Shselasky	u8         vendor_name[16][0x8];
794341975Shselasky
795341975Shselasky	u8         vendor_pn[16][0x8];
796341975Shselasky
797341975Shselasky	u8         vendor_rev[0x20];
798341975Shselasky
799341975Shselasky	u8         fw_version[0x20];
800341975Shselasky
801341975Shselasky	u8         vendor_sn[16][0x8];
802341975Shselasky
803341975Shselasky	u8         temperature[0x10];
804341975Shselasky	u8         voltage[0x10];
805341975Shselasky
806341975Shselasky	u8         rx_power_lane0[0x10];
807341975Shselasky	u8         rx_power_lane1[0x10];
808341975Shselasky
809341975Shselasky	u8         rx_power_lane2[0x10];
810341975Shselasky	u8         rx_power_lane3[0x10];
811341975Shselasky
812341975Shselasky	u8         reserved_at_2c0[0x40];
813341975Shselasky
814341975Shselasky	u8         tx_power_lane0[0x10];
815341975Shselasky	u8         tx_power_lane1[0x10];
816341975Shselasky
817341975Shselasky	u8         tx_power_lane2[0x10];
818341975Shselasky	u8         tx_power_lane3[0x10];
819341975Shselasky
820341975Shselasky	u8         reserved_at_340[0x40];
821341975Shselasky
822341975Shselasky	u8         tx_bias_lane0[0x10];
823341975Shselasky	u8         tx_bias_lane1[0x10];
824341975Shselasky
825341975Shselasky	u8         tx_bias_lane2[0x10];
826341975Shselasky	u8         tx_bias_lane3[0x10];
827341975Shselasky
828341975Shselasky	u8         reserved_at_3c0[0x40];
829341975Shselasky
830341975Shselasky	u8         temperature_high_th[0x10];
831341975Shselasky	u8         temperature_low_th[0x10];
832341975Shselasky
833341975Shselasky	u8         voltage_high_th[0x10];
834341975Shselasky	u8         voltage_low_th[0x10];
835341975Shselasky
836341975Shselasky	u8         rx_power_high_th[0x10];
837341975Shselasky	u8         rx_power_low_th[0x10];
838341975Shselasky
839341975Shselasky	u8         tx_power_high_th[0x10];
840341975Shselasky	u8         tx_power_low_th[0x10];
841341975Shselasky
842341975Shselasky	u8         tx_bias_high_th[0x10];
843341975Shselasky	u8         tx_bias_low_th[0x10];
844341975Shselasky
845341975Shselasky	u8         reserved_at_4a0[0x10];
846341975Shselasky	u8         wavelength[0x10];
847341975Shselasky
848341975Shselasky	u8         reserved_at_4c0[0x300];
849341975Shselasky};
850341975Shselasky
851341975Shselaskyunion mlx5_ifc_pddr_operation_info_page_pddr_phy_info_page_pddr_troubleshooting_page_pddr_module_info_auto_bits {
852341975Shselasky	struct mlx5_ifc_pddr_module_info_bits pddr_module_info;
853341975Shselasky	u8         reserved_at_0[0x7c0];
854341975Shselasky};
855341975Shselasky
856341975Shselaskystruct mlx5_ifc_pddr_reg_bits {
857341975Shselasky	u8         reserved_at_0[0x8];
858341975Shselasky	u8         local_port[0x8];
859341975Shselasky	u8         pnat[0x2];
860341975Shselasky	u8         reserved_at_12[0xe];
861341975Shselasky
862341975Shselasky	u8         reserved_at_20[0x18];
863341975Shselasky	u8         page_select[0x8];
864341975Shselasky
865341975Shselasky	union mlx5_ifc_pddr_operation_info_page_pddr_phy_info_page_pddr_troubleshooting_page_pddr_module_info_auto_bits page_data;
866341975Shselasky};
867341975Shselasky
868290650Shselaskystruct mlx5_ifc_per_protocol_networking_offload_caps_bits {
869290650Shselasky	u8         csum_cap[0x1];
870290650Shselasky	u8         vlan_cap[0x1];
871290650Shselasky	u8         lro_cap[0x1];
872290650Shselasky	u8         lro_psh_flag[0x1];
873290650Shselasky	u8         lro_time_stamp[0x1];
874290650Shselasky	u8         lro_max_msg_sz_mode[0x2];
875321992Shselasky	u8         wqe_vlan_insert[0x1];
876321992Shselasky	u8         self_lb_en_modifiable[0x1];
877290650Shselasky	u8         self_lb_mc[0x1];
878290650Shselasky	u8         self_lb_uc[0x1];
879290650Shselasky	u8         max_lso_cap[0x5];
880290650Shselasky	u8         multi_pkt_send_wqe[0x2];
881290650Shselasky	u8         wqe_inline_mode[0x2];
882290650Shselasky	u8         rss_ind_tbl_cap[0x4];
883329204Shselasky	u8         scatter_fcs[0x1];
884329204Shselasky	u8         reserved_1[0x2];
885290650Shselasky	u8         tunnel_lso_const_out_ip_id[0x1];
886290650Shselasky	u8         tunnel_lro_gre[0x1];
887290650Shselasky	u8         tunnel_lro_vxlan[0x1];
888290650Shselasky	u8         tunnel_statless_gre[0x1];
889290650Shselasky	u8         tunnel_stateless_vxlan[0x1];
890290650Shselasky
891308678Shselasky	u8         swp[0x1];
892308678Shselasky	u8         swp_csum[0x1];
893308678Shselasky	u8         swp_lso[0x1];
894321992Shselasky	u8         reserved_2[0x1b];
895321992Shselasky	u8         max_geneve_opt_len[0x1];
896308678Shselasky	u8         tunnel_stateless_geneve_rx[0x1];
897290650Shselasky
898290650Shselasky	u8         reserved_3[0x10];
899290650Shselasky	u8         lro_min_mss_size[0x10];
900290650Shselasky
901290650Shselasky	u8         reserved_4[0x120];
902290650Shselasky
903290650Shselasky	u8         lro_timer_supported_periods[4][0x20];
904290650Shselasky
905290650Shselasky	u8         reserved_5[0x600];
906290650Shselasky};
907290650Shselasky
908290650Shselaskyenum {
909290650Shselasky	MLX5_ROCE_CAP_L3_TYPE_GRH   = 0x1,
910290650Shselasky	MLX5_ROCE_CAP_L3_TYPE_IPV4  = 0x2,
911290650Shselasky	MLX5_ROCE_CAP_L3_TYPE_IPV6  = 0x4,
912290650Shselasky};
913290650Shselasky
914290650Shselaskystruct mlx5_ifc_roce_cap_bits {
915290650Shselasky	u8         roce_apm[0x1];
916306233Shselasky	u8         rts2rts_primary_eth_prio[0x1];
917306233Shselasky	u8         roce_rx_allow_untagged[0x1];
918306233Shselasky	u8         rts2rts_src_addr_index_for_vlan_valid_vlan_id[0x1];
919290650Shselasky
920306233Shselasky	u8         reserved_0[0x1c];
921306233Shselasky
922290650Shselasky	u8         reserved_1[0x60];
923290650Shselasky
924290650Shselasky	u8         reserved_2[0xc];
925290650Shselasky	u8         l3_type[0x4];
926290650Shselasky	u8         reserved_3[0x8];
927290650Shselasky	u8         roce_version[0x8];
928290650Shselasky
929290650Shselasky	u8         reserved_4[0x10];
930290650Shselasky	u8         r_roce_dest_udp_port[0x10];
931290650Shselasky
932290650Shselasky	u8         r_roce_max_src_udp_port[0x10];
933290650Shselasky	u8         r_roce_min_src_udp_port[0x10];
934290650Shselasky
935290650Shselasky	u8         reserved_5[0x10];
936290650Shselasky	u8         roce_address_table_size[0x10];
937290650Shselasky
938290650Shselasky	u8         reserved_6[0x700];
939290650Shselasky};
940290650Shselasky
941290650Shselaskyenum {
942290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_1_BYTE     = 0x1,
943290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_2_BYTES    = 0x2,
944290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_4_BYTES    = 0x4,
945290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_8_BYTES    = 0x8,
946290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_16_BYTES   = 0x10,
947290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_32_BYTES   = 0x20,
948290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_64_BYTES   = 0x40,
949290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_128_BYTES  = 0x80,
950290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_256_BYTES  = 0x100,
951290650Shselasky};
952290650Shselasky
953290650Shselaskyenum {
954290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_1_BYTE     = 0x1,
955290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_2_BYTES    = 0x2,
956290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_4_BYTES    = 0x4,
957290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_8_BYTES    = 0x8,
958290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_16_BYTES   = 0x10,
959290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_32_BYTES   = 0x20,
960290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_64_BYTES   = 0x40,
961290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_128_BYTES  = 0x80,
962290650Shselasky	MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_256_BYTES  = 0x100,
963290650Shselasky};
964290650Shselasky
965290650Shselaskystruct mlx5_ifc_atomic_caps_bits {
966290650Shselasky	u8         reserved_0[0x40];
967290650Shselasky
968306233Shselasky	u8         atomic_req_8B_endianess_mode[0x2];
969306233Shselasky	u8         reserved_1[0x4];
970306233Shselasky	u8         supported_atomic_req_8B_endianess_mode_1[0x1];
971290650Shselasky
972306233Shselasky	u8         reserved_2[0x19];
973290650Shselasky
974306233Shselasky	u8         reserved_3[0x20];
975306233Shselasky
976306233Shselasky	u8         reserved_4[0x10];
977290650Shselasky	u8         atomic_operations[0x10];
978290650Shselasky
979306233Shselasky	u8         reserved_5[0x10];
980290650Shselasky	u8         atomic_size_qp[0x10];
981290650Shselasky
982306233Shselasky	u8         reserved_6[0x10];
983290650Shselasky	u8         atomic_size_dc[0x10];
984290650Shselasky
985306233Shselasky	u8         reserved_7[0x720];
986290650Shselasky};
987290650Shselasky
988290650Shselaskystruct mlx5_ifc_odp_cap_bits {
989290650Shselasky	u8         reserved_0[0x40];
990290650Shselasky
991290650Shselasky	u8         sig[0x1];
992290650Shselasky	u8         reserved_1[0x1f];
993290650Shselasky
994290650Shselasky	u8         reserved_2[0x20];
995290650Shselasky
996290650Shselasky	struct mlx5_ifc_odp_per_transport_service_cap_bits rc_odp_caps;
997290650Shselasky
998290650Shselasky	struct mlx5_ifc_odp_per_transport_service_cap_bits uc_odp_caps;
999290650Shselasky
1000290650Shselasky	struct mlx5_ifc_odp_per_transport_service_cap_bits ud_odp_caps;
1001290650Shselasky
1002290650Shselasky	struct mlx5_ifc_odp_per_transport_service_cap_bits xrc_odp_caps;
1003290650Shselasky
1004290650Shselasky	struct mlx5_ifc_odp_per_transport_service_cap_bits dc_odp_caps;
1005290650Shselasky
1006290650Shselasky	u8         reserved_3[0x6e0];
1007290650Shselasky};
1008290650Shselasky
1009290650Shselaskyenum {
1010290650Shselasky	MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_8_GID_ENTRIES    = 0x0,
1011290650Shselasky	MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_16_GID_ENTRIES   = 0x1,
1012290650Shselasky	MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_32_GID_ENTRIES   = 0x2,
1013290650Shselasky	MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_64_GID_ENTRIES   = 0x3,
1014290650Shselasky	MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_128_GID_ENTRIES  = 0x4,
1015290650Shselasky};
1016290650Shselasky
1017290650Shselaskyenum {
1018290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_128_ENTRIES  = 0x0,
1019290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_256_ENTRIES  = 0x1,
1020290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_512_ENTRIES  = 0x2,
1021290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_1K_ENTRIES   = 0x3,
1022290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_2K_ENTRIES   = 0x4,
1023290650Shselasky	MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_4K_ENTRIES   = 0x5,
1024290650Shselasky};
1025290650Shselasky
1026290650Shselaskyenum {
1027290650Shselasky	MLX5_CMD_HCA_CAP_PORT_TYPE_IB        = 0x0,
1028290650Shselasky	MLX5_CMD_HCA_CAP_PORT_TYPE_ETHERNET  = 0x1,
1029290650Shselasky};
1030290650Shselasky
1031290650Shselaskyenum {
1032290650Shselasky	MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_DISABLED       = 0x0,
1033290650Shselasky	MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_INITIAL_STATE  = 0x1,
1034290650Shselasky	MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_ENABLED        = 0x3,
1035290650Shselasky};
1036290650Shselasky
1037290650Shselaskystruct mlx5_ifc_cmd_hca_cap_bits {
1038290650Shselasky	u8         reserved_0[0x80];
1039290650Shselasky
1040290650Shselasky	u8         log_max_srq_sz[0x8];
1041290650Shselasky	u8         log_max_qp_sz[0x8];
1042290650Shselasky	u8         reserved_1[0xb];
1043290650Shselasky	u8         log_max_qp[0x5];
1044290650Shselasky
1045290650Shselasky	u8         reserved_2[0xb];
1046290650Shselasky	u8         log_max_srq[0x5];
1047290650Shselasky	u8         reserved_3[0x10];
1048290650Shselasky
1049290650Shselasky	u8         reserved_4[0x8];
1050290650Shselasky	u8         log_max_cq_sz[0x8];
1051290650Shselasky	u8         reserved_5[0xb];
1052290650Shselasky	u8         log_max_cq[0x5];
1053290650Shselasky
1054290650Shselasky	u8         log_max_eq_sz[0x8];
1055341940Shselasky	u8         relaxed_ordering_write[1];
1056341940Shselasky	u8         reserved_6[0x1];
1057290650Shselasky	u8         log_max_mkey[0x6];
1058347818Shselasky	u8         reserved_7[0xb];
1059347818Shselasky	u8         fast_teardown[0x1];
1060290650Shselasky	u8         log_max_eq[0x4];
1061290650Shselasky
1062290650Shselasky	u8         max_indirection[0x8];
1063290650Shselasky	u8         reserved_8[0x1];
1064290650Shselasky	u8         log_max_mrw_sz[0x7];
1065331810Shselasky	u8	   force_teardown[0x1];
1066331810Shselasky	u8         reserved_9[0x1];
1067290650Shselasky	u8         log_max_bsf_list_size[0x6];
1068290650Shselasky	u8         reserved_10[0x2];
1069290650Shselasky	u8         log_max_klm_list_size[0x6];
1070290650Shselasky
1071290650Shselasky	u8         reserved_11[0xa];
1072290650Shselasky	u8         log_max_ra_req_dc[0x6];
1073290650Shselasky	u8         reserved_12[0xa];
1074290650Shselasky	u8         log_max_ra_res_dc[0x6];
1075290650Shselasky
1076290650Shselasky	u8         reserved_13[0xa];
1077290650Shselasky	u8         log_max_ra_req_qp[0x6];
1078290650Shselasky	u8         reserved_14[0xa];
1079290650Shselasky	u8         log_max_ra_res_qp[0x6];
1080290650Shselasky
1081290650Shselasky	u8         pad_cap[0x1];
1082290650Shselasky	u8         cc_query_allowed[0x1];
1083290650Shselasky	u8         cc_modify_allowed[0x1];
1084306233Shselasky	u8         start_pad[0x1];
1085306233Shselasky	u8         cache_line_128byte[0x1];
1086337098Shselasky	u8         reserved_at_165[0xa];
1087337098Shselasky	u8         qcam_reg[0x1];
1088290650Shselasky	u8         gid_table_size[0x10];
1089290650Shselasky
1090290650Shselasky	u8         out_of_seq_cnt[0x1];
1091290650Shselasky	u8         vport_counters[0x1];
1092306233Shselasky	u8         retransmission_q_counters[0x1];
1093306233Shselasky	u8         debug[0x1];
1094321992Shselasky	u8         modify_rq_counters_set_id[0x1];
1095321992Shselasky	u8         rq_delay_drop[0x1];
1096290650Shselasky	u8         max_qp_cnt[0xa];
1097290650Shselasky	u8         pkey_table_size[0x10];
1098290650Shselasky
1099290650Shselasky	u8         vport_group_manager[0x1];
1100290650Shselasky	u8         vhca_group_manager[0x1];
1101290650Shselasky	u8         ib_virt[0x1];
1102290650Shselasky	u8         eth_virt[0x1];
1103290650Shselasky	u8         reserved_17[0x1];
1104290650Shselasky	u8         ets[0x1];
1105290650Shselasky	u8         nic_flow_table[0x1];
1106290650Shselasky	u8         eswitch_flow_table[0x1];
1107347820Shselasky	u8         reserved_18[0x1];
1108347820Shselasky	u8         mcam_reg[0x1];
1109347820Shselasky	u8         pcam_reg[0x1];
1110290650Shselasky	u8         local_ca_ack_delay[0x5];
1111290650Shselasky	u8         port_module_event[0x1];
1112290650Shselasky	u8         reserved_19[0x5];
1113290650Shselasky	u8         port_type[0x2];
1114290650Shselasky	u8         num_ports[0x8];
1115290650Shselasky
1116290650Shselasky	u8         snapshot[0x1];
1117290650Shselasky	u8         reserved_20[0x2];
1118290650Shselasky	u8         log_max_msg[0x5];
1119290650Shselasky	u8         reserved_21[0x4];
1120290650Shselasky	u8         max_tc[0x4];
1121306233Shselasky	u8         temp_warn_event[0x1];
1122306233Shselasky	u8         dcbx[0x1];
1123341958Shselasky	u8         general_notification_event[0x1];
1124341958Shselasky	u8         reserved_at_1d3[0x2];
1125341958Shselasky	u8         fpga[0x1];
1126290650Shselasky	u8         rol_s[0x1];
1127290650Shselasky	u8         rol_g[0x1];
1128290650Shselasky	u8         reserved_23[0x1];
1129290650Shselasky	u8         wol_s[0x1];
1130290650Shselasky	u8         wol_g[0x1];
1131290650Shselasky	u8         wol_a[0x1];
1132290650Shselasky	u8         wol_b[0x1];
1133290650Shselasky	u8         wol_m[0x1];
1134290650Shselasky	u8         wol_u[0x1];
1135290650Shselasky	u8         wol_p[0x1];
1136290650Shselasky
1137290650Shselasky	u8         stat_rate_support[0x10];
1138290650Shselasky	u8         reserved_24[0xc];
1139290650Shselasky	u8         cqe_version[0x4];
1140290650Shselasky
1141290650Shselasky	u8         compact_address_vector[0x1];
1142290650Shselasky	u8         striding_rq[0x1];
1143306233Shselasky	u8         reserved_25[0x1];
1144306233Shselasky	u8         ipoib_enhanced_offloads[0x1];
1145306233Shselasky	u8         ipoib_ipoib_offloads[0x1];
1146306233Shselasky	u8         reserved_26[0x8];
1147306233Shselasky	u8         dc_connect_qp[0x1];
1148290650Shselasky	u8         dc_cnak_trace[0x1];
1149290650Shselasky	u8         drain_sigerr[0x1];
1150290650Shselasky	u8         cmdif_checksum[0x2];
1151290650Shselasky	u8         sigerr_cqe[0x1];
1152306233Shselasky	u8         reserved_27[0x1];
1153290650Shselasky	u8         wq_signature[0x1];
1154290650Shselasky	u8         sctr_data_cqe[0x1];
1155306233Shselasky	u8         reserved_28[0x1];
1156290650Shselasky	u8         sho[0x1];
1157290650Shselasky	u8         tph[0x1];
1158290650Shselasky	u8         rf[0x1];
1159290650Shselasky	u8         dct[0x1];
1160306233Shselasky	u8         qos[0x1];
1161290650Shselasky	u8         eth_net_offloads[0x1];
1162290650Shselasky	u8         roce[0x1];
1163290650Shselasky	u8         atomic[0x1];
1164306233Shselasky	u8         reserved_30[0x1];
1165290650Shselasky
1166290650Shselasky	u8         cq_oi[0x1];
1167290650Shselasky	u8         cq_resize[0x1];
1168290650Shselasky	u8         cq_moderation[0x1];
1169321992Shselasky	u8         cq_period_mode_modify[0x1];
1170321992Shselasky	u8         cq_invalidate[0x1];
1171321992Shselasky	u8         reserved_at_225[0x1];
1172290650Shselasky	u8         cq_eq_remap[0x1];
1173290650Shselasky	u8         pg[0x1];
1174290650Shselasky	u8         block_lb_mc[0x1];
1175290650Shselasky	u8         exponential_backoff[0x1];
1176290650Shselasky	u8         scqe_break_moderation[0x1];
1177290650Shselasky	u8         cq_period_start_from_cqe[0x1];
1178290650Shselasky	u8         cd[0x1];
1179290650Shselasky	u8         atm[0x1];
1180290650Shselasky	u8         apm[0x1];
1181329204Shselasky	u8	   imaicl[0x1];
1182329204Shselasky	u8         reserved_32[0x6];
1183290650Shselasky	u8         qkv[0x1];
1184290650Shselasky	u8         pkv[0x1];
1185329204Shselasky	u8	   set_deth_sqpn[0x1];
1186329204Shselasky	u8         reserved_33[0x3];
1187290650Shselasky	u8         xrc[0x1];
1188290650Shselasky	u8         ud[0x1];
1189290650Shselasky	u8         uc[0x1];
1190290650Shselasky	u8         rc[0x1];
1191290650Shselasky
1192306233Shselasky	u8         reserved_34[0xa];
1193290650Shselasky	u8         uar_sz[0x6];
1194306233Shselasky	u8         reserved_35[0x8];
1195290650Shselasky	u8         log_pg_sz[0x8];
1196290650Shselasky
1197290650Shselasky	u8         bf[0x1];
1198290650Shselasky	u8         driver_version[0x1];
1199290650Shselasky	u8         pad_tx_eth_packet[0x1];
1200306233Shselasky	u8         reserved_36[0x8];
1201290650Shselasky	u8         log_bf_reg_size[0x5];
1202306233Shselasky	u8         reserved_37[0x10];
1203290650Shselasky
1204306233Shselasky	u8         num_of_diagnostic_counters[0x10];
1205290650Shselasky	u8         max_wqe_sz_sq[0x10];
1206290650Shselasky
1207290650Shselasky	u8         reserved_38[0x10];
1208290650Shselasky	u8         max_wqe_sz_rq[0x10];
1209290650Shselasky
1210290650Shselasky	u8         reserved_39[0x10];
1211290650Shselasky	u8         max_wqe_sz_sq_dc[0x10];
1212290650Shselasky
1213290650Shselasky	u8         reserved_40[0x7];
1214290650Shselasky	u8         max_qp_mcg[0x19];
1215290650Shselasky
1216290650Shselasky	u8         reserved_41[0x18];
1217290650Shselasky	u8         log_max_mcg[0x8];
1218290650Shselasky
1219290650Shselasky	u8         reserved_42[0x3];
1220290650Shselasky	u8         log_max_transport_domain[0x5];
1221290650Shselasky	u8         reserved_43[0x3];
1222290650Shselasky	u8         log_max_pd[0x5];
1223290650Shselasky	u8         reserved_44[0xb];
1224290650Shselasky	u8         log_max_xrcd[0x5];
1225290650Shselasky
1226347850Shselasky	u8         nic_receive_steering_discard[0x1];
1227347850Shselasky	u8	   reserved_45[0x7];
1228347850Shselasky	u8         log_max_flow_counter_bulk[0x8];
1229290650Shselasky	u8         max_flow_counter[0x10];
1230290650Shselasky
1231290650Shselasky	u8         reserved_46[0x3];
1232290650Shselasky	u8         log_max_rq[0x5];
1233290650Shselasky	u8         reserved_47[0x3];
1234290650Shselasky	u8         log_max_sq[0x5];
1235290650Shselasky	u8         reserved_48[0x3];
1236290650Shselasky	u8         log_max_tir[0x5];
1237290650Shselasky	u8         reserved_49[0x3];
1238290650Shselasky	u8         log_max_tis[0x5];
1239290650Shselasky
1240290650Shselasky	u8         basic_cyclic_rcv_wqe[0x1];
1241290650Shselasky	u8         reserved_50[0x2];
1242290650Shselasky	u8         log_max_rmp[0x5];
1243290650Shselasky	u8         reserved_51[0x3];
1244290650Shselasky	u8         log_max_rqt[0x5];
1245290650Shselasky	u8         reserved_52[0x3];
1246290650Shselasky	u8         log_max_rqt_size[0x5];
1247290650Shselasky	u8         reserved_53[0x3];
1248290650Shselasky	u8         log_max_tis_per_sq[0x5];
1249290650Shselasky
1250290650Shselasky	u8         reserved_54[0x3];
1251290650Shselasky	u8         log_max_stride_sz_rq[0x5];
1252290650Shselasky	u8         reserved_55[0x3];
1253290650Shselasky	u8         log_min_stride_sz_rq[0x5];
1254290650Shselasky	u8         reserved_56[0x3];
1255290650Shselasky	u8         log_max_stride_sz_sq[0x5];
1256290650Shselasky	u8         reserved_57[0x3];
1257290650Shselasky	u8         log_min_stride_sz_sq[0x5];
1258290650Shselasky
1259290650Shselasky	u8         reserved_58[0x1b];
1260290650Shselasky	u8         log_max_wq_sz[0x5];
1261290650Shselasky
1262290650Shselasky	u8         nic_vport_change_event[0x1];
1263321992Shselasky	u8         disable_local_lb[0x1];
1264321992Shselasky	u8         reserved_59[0x9];
1265290650Shselasky	u8         log_max_vlan_list[0x5];
1266290650Shselasky	u8         reserved_60[0x3];
1267290650Shselasky	u8         log_max_current_mc_list[0x5];
1268290650Shselasky	u8         reserved_61[0x3];
1269290650Shselasky	u8         log_max_current_uc_list[0x5];
1270290650Shselasky
1271290650Shselasky	u8         reserved_62[0x80];
1272290650Shselasky
1273290650Shselasky	u8         reserved_63[0x3];
1274290650Shselasky	u8         log_max_l2_table[0x5];
1275290650Shselasky	u8         reserved_64[0x8];
1276290650Shselasky	u8         log_uar_page_sz[0x10];
1277290650Shselasky
1278290650Shselasky	u8         reserved_65[0x20];
1279290650Shselasky
1280306233Shselasky	u8         device_frequency_mhz[0x20];
1281290650Shselasky
1282306233Shselasky	u8         device_frequency_khz[0x20];
1283290650Shselasky
1284306233Shselasky	u8         reserved_66[0x80];
1285306233Shselasky
1286290650Shselasky	u8         log_max_atomic_size_qp[0x8];
1287290650Shselasky	u8         reserved_67[0x10];
1288290650Shselasky	u8         log_max_atomic_size_dc[0x8];
1289290650Shselasky
1290290650Shselasky	u8         reserved_68[0x1f];
1291290650Shselasky	u8         cqe_compression[0x1];
1292290650Shselasky
1293290650Shselasky	u8         cqe_compression_timeout[0x10];
1294290650Shselasky	u8         cqe_compression_max_num[0x10];
1295290650Shselasky
1296290650Shselasky	u8         reserved_69[0x220];
1297290650Shselasky};
1298290650Shselasky
1299306233Shselaskyenum mlx5_flow_destination_type {
1300306233Shselasky	MLX5_FLOW_DESTINATION_TYPE_VPORT	= 0x0,
1301306233Shselasky	MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE	= 0x1,
1302306233Shselasky	MLX5_FLOW_DESTINATION_TYPE_TIR		= 0x2,
1303306233Shselasky};
1304306233Shselasky
1305290650Shselaskyunion mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits {
1306290650Shselasky	struct mlx5_ifc_dest_format_struct_bits dest_format_struct;
1307290650Shselasky	struct mlx5_ifc_flow_counter_list_bits flow_counter_list;
1308290650Shselasky	u8         reserved_0[0x40];
1309290650Shselasky};
1310290650Shselasky
1311290650Shselaskystruct mlx5_ifc_fte_match_param_bits {
1312290650Shselasky	struct mlx5_ifc_fte_match_set_lyr_2_4_bits outer_headers;
1313290650Shselasky
1314290650Shselasky	struct mlx5_ifc_fte_match_set_misc_bits misc_parameters;
1315290650Shselasky
1316290650Shselasky	struct mlx5_ifc_fte_match_set_lyr_2_4_bits inner_headers;
1317290650Shselasky
1318290650Shselasky	u8         reserved_0[0xa00];
1319290650Shselasky};
1320290650Shselasky
1321290650Shselaskyenum {
1322290650Shselasky	MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_SRC_IP     = 0x0,
1323290650Shselasky	MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_DST_IP     = 0x1,
1324290650Shselasky	MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_L4_SPORT   = 0x2,
1325290650Shselasky	MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_L4_DPORT   = 0x3,
1326290650Shselasky	MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_IPSEC_SPI  = 0x4,
1327290650Shselasky};
1328290650Shselasky
1329290650Shselaskystruct mlx5_ifc_rx_hash_field_select_bits {
1330290650Shselasky	u8         l3_prot_type[0x1];
1331290650Shselasky	u8         l4_prot_type[0x1];
1332290650Shselasky	u8         selected_fields[0x1e];
1333290650Shselasky};
1334290650Shselasky
1335290650Shselaskyenum {
1336290650Shselasky	MLX5_WQ_TYPE_LINKED_LIST                 = 0x0,
1337290650Shselasky	MLX5_WQ_TYPE_CYCLIC                      = 0x1,
1338290650Shselasky	MLX5_WQ_TYPE_STRQ_LINKED_LIST            = 0x2,
1339290650Shselasky	MLX5_WQ_TYPE_STRQ_CYCLIC                 = 0x3,
1340290650Shselasky};
1341290650Shselasky
1342306233Shselaskyenum rq_type {
1343306233Shselasky	RQ_TYPE_NONE,
1344306233Shselasky	RQ_TYPE_STRIDE,
1345306233Shselasky};
1346306233Shselasky
1347290650Shselaskyenum {
1348290650Shselasky	MLX5_WQ_END_PAD_MODE_NONE               = 0x0,
1349290650Shselasky	MLX5_WQ_END_PAD_MODE_ALIGN              = 0x1,
1350290650Shselasky};
1351290650Shselasky
1352290650Shselaskystruct mlx5_ifc_wq_bits {
1353290650Shselasky	u8         wq_type[0x4];
1354290650Shselasky	u8         wq_signature[0x1];
1355290650Shselasky	u8         end_padding_mode[0x2];
1356290650Shselasky	u8         cd_slave[0x1];
1357290650Shselasky	u8         reserved_0[0x18];
1358290650Shselasky
1359290650Shselasky	u8         hds_skip_first_sge[0x1];
1360290650Shselasky	u8         log2_hds_buf_size[0x3];
1361290650Shselasky	u8         reserved_1[0x7];
1362290650Shselasky	u8         page_offset[0x5];
1363290650Shselasky	u8         lwm[0x10];
1364290650Shselasky
1365290650Shselasky	u8         reserved_2[0x8];
1366290650Shselasky	u8         pd[0x18];
1367290650Shselasky
1368290650Shselasky	u8         reserved_3[0x8];
1369290650Shselasky	u8         uar_page[0x18];
1370290650Shselasky
1371290650Shselasky	u8         dbr_addr[0x40];
1372290650Shselasky
1373290650Shselasky	u8         hw_counter[0x20];
1374290650Shselasky
1375290650Shselasky	u8         sw_counter[0x20];
1376290650Shselasky
1377290650Shselasky	u8         reserved_4[0xc];
1378290650Shselasky	u8         log_wq_stride[0x4];
1379290650Shselasky	u8         reserved_5[0x3];
1380290650Shselasky	u8         log_wq_pg_sz[0x5];
1381290650Shselasky	u8         reserved_6[0x3];
1382290650Shselasky	u8         log_wq_sz[0x5];
1383290650Shselasky
1384290650Shselasky	u8         reserved_7[0x15];
1385290650Shselasky	u8         single_wqe_log_num_of_strides[0x3];
1386290650Shselasky	u8         two_byte_shift_en[0x1];
1387290650Shselasky	u8         reserved_8[0x4];
1388290650Shselasky	u8         single_stride_log_num_of_bytes[0x3];
1389290650Shselasky
1390290650Shselasky	u8         reserved_9[0x4c0];
1391290650Shselasky
1392290650Shselasky	struct mlx5_ifc_cmd_pas_bits pas[0];
1393290650Shselasky};
1394290650Shselasky
1395290650Shselaskystruct mlx5_ifc_rq_num_bits {
1396290650Shselasky	u8         reserved_0[0x8];
1397290650Shselasky	u8         rq_num[0x18];
1398290650Shselasky};
1399290650Shselasky
1400290650Shselaskystruct mlx5_ifc_mac_address_layout_bits {
1401290650Shselasky	u8         reserved_0[0x10];
1402290650Shselasky	u8         mac_addr_47_32[0x10];
1403290650Shselasky
1404290650Shselasky	u8         mac_addr_31_0[0x20];
1405290650Shselasky};
1406290650Shselasky
1407290650Shselaskystruct mlx5_ifc_cong_control_r_roce_ecn_np_bits {
1408290650Shselasky	u8         reserved_0[0xa0];
1409290650Shselasky
1410290650Shselasky	u8         min_time_between_cnps[0x20];
1411290650Shselasky
1412290650Shselasky	u8         reserved_1[0x12];
1413290650Shselasky	u8         cnp_dscp[0x6];
1414290650Shselasky	u8         reserved_2[0x4];
1415290650Shselasky	u8         cnp_prio_mode[0x1];
1416290650Shselasky	u8         cnp_802p_prio[0x3];
1417290650Shselasky
1418290650Shselasky	u8         reserved_3[0x720];
1419290650Shselasky};
1420290650Shselasky
1421290650Shselaskystruct mlx5_ifc_cong_control_r_roce_ecn_rp_bits {
1422290650Shselasky	u8         reserved_0[0x60];
1423290650Shselasky
1424290650Shselasky	u8         reserved_1[0x4];
1425290650Shselasky	u8         clamp_tgt_rate[0x1];
1426290650Shselasky	u8         reserved_2[0x3];
1427290650Shselasky	u8         clamp_tgt_rate_after_time_inc[0x1];
1428290650Shselasky	u8         reserved_3[0x17];
1429290650Shselasky
1430290650Shselasky	u8         reserved_4[0x20];
1431290650Shselasky
1432290650Shselasky	u8         rpg_time_reset[0x20];
1433290650Shselasky
1434290650Shselasky	u8         rpg_byte_reset[0x20];
1435290650Shselasky
1436290650Shselasky	u8         rpg_threshold[0x20];
1437290650Shselasky
1438290650Shselasky	u8         rpg_max_rate[0x20];
1439290650Shselasky
1440290650Shselasky	u8         rpg_ai_rate[0x20];
1441290650Shselasky
1442290650Shselasky	u8         rpg_hai_rate[0x20];
1443290650Shselasky
1444290650Shselasky	u8         rpg_gd[0x20];
1445290650Shselasky
1446290650Shselasky	u8         rpg_min_dec_fac[0x20];
1447290650Shselasky
1448290650Shselasky	u8         rpg_min_rate[0x20];
1449290650Shselasky
1450290650Shselasky	u8         reserved_5[0xe0];
1451290650Shselasky
1452290650Shselasky	u8         rate_to_set_on_first_cnp[0x20];
1453290650Shselasky
1454290650Shselasky	u8         dce_tcp_g[0x20];
1455290650Shselasky
1456290650Shselasky	u8         dce_tcp_rtt[0x20];
1457290650Shselasky
1458290650Shselasky	u8         rate_reduce_monitor_period[0x20];
1459290650Shselasky
1460290650Shselasky	u8         reserved_6[0x20];
1461290650Shselasky
1462290650Shselasky	u8         initial_alpha_value[0x20];
1463290650Shselasky
1464290650Shselasky	u8         reserved_7[0x4a0];
1465290650Shselasky};
1466290650Shselasky
1467290650Shselaskystruct mlx5_ifc_cong_control_802_1qau_rp_bits {
1468290650Shselasky	u8         reserved_0[0x80];
1469290650Shselasky
1470290650Shselasky	u8         rppp_max_rps[0x20];
1471290650Shselasky
1472290650Shselasky	u8         rpg_time_reset[0x20];
1473290650Shselasky
1474290650Shselasky	u8         rpg_byte_reset[0x20];
1475290650Shselasky
1476290650Shselasky	u8         rpg_threshold[0x20];
1477290650Shselasky
1478290650Shselasky	u8         rpg_max_rate[0x20];
1479290650Shselasky
1480290650Shselasky	u8         rpg_ai_rate[0x20];
1481290650Shselasky
1482290650Shselasky	u8         rpg_hai_rate[0x20];
1483290650Shselasky
1484290650Shselasky	u8         rpg_gd[0x20];
1485290650Shselasky
1486290650Shselasky	u8         rpg_min_dec_fac[0x20];
1487290650Shselasky
1488290650Shselasky	u8         rpg_min_rate[0x20];
1489290650Shselasky
1490290650Shselasky	u8         reserved_1[0x640];
1491290650Shselasky};
1492290650Shselasky
1493290650Shselaskyenum {
1494290650Shselasky	MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_LOG_CQ_SIZE    = 0x1,
1495290650Shselasky	MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_PAGE_OFFSET    = 0x2,
1496290650Shselasky	MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_LOG_PAGE_SIZE  = 0x4,
1497290650Shselasky};
1498290650Shselasky
1499290650Shselaskystruct mlx5_ifc_resize_field_select_bits {
1500290650Shselasky	u8         resize_field_select[0x20];
1501290650Shselasky};
1502290650Shselasky
1503290650Shselaskyenum {
1504290650Shselasky	MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_PERIOD     = 0x1,
1505290650Shselasky	MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_MAX_COUNT  = 0x2,
1506290650Shselasky	MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_OI            = 0x4,
1507290650Shselasky	MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_C_EQN         = 0x8,
1508321992Shselasky	MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_PERIOD_MODE  = 0x10,
1509321992Shselasky	MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_STATUS          = 0x20,
1510290650Shselasky};
1511290650Shselasky
1512290650Shselaskystruct mlx5_ifc_modify_field_select_bits {
1513290650Shselasky	u8         modify_field_select[0x20];
1514290650Shselasky};
1515290650Shselasky
1516290650Shselaskystruct mlx5_ifc_field_select_r_roce_np_bits {
1517290650Shselasky	u8         field_select_r_roce_np[0x20];
1518290650Shselasky};
1519290650Shselasky
1520290650Shselaskyenum {
1521290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_CLAMP_TGT_RATE                 = 0x2,
1522290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_CLAMP_TGT_RATE_AFTER_TIME_INC  = 0x4,
1523290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_TIME_RESET                 = 0x8,
1524290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_BYTE_RESET                 = 0x10,
1525290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_THRESHOLD                  = 0x20,
1526290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_MAX_RATE                   = 0x40,
1527290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_AI_RATE                    = 0x80,
1528290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_HAI_RATE                   = 0x100,
1529290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_MIN_DEC_FAC                = 0x200,
1530290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RPG_MIN_RATE                   = 0x400,
1531290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RATE_TO_SET_ON_FIRST_CNP       = 0x800,
1532290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_DCE_TCP_G                      = 0x1000,
1533290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_DCE_TCP_RTT                    = 0x2000,
1534290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_RATE_REDUCE_MONITOR_PERIOD     = 0x4000,
1535290650Shselasky	MLX5_FIELD_SELECT_R_ROCE_RP_FIELD_SELECT_R_ROCE_RP_INITIAL_ALPHA_VALUE            = 0x8000,
1536290650Shselasky};
1537290650Shselasky
1538290650Shselaskystruct mlx5_ifc_field_select_r_roce_rp_bits {
1539290650Shselasky	u8         field_select_r_roce_rp[0x20];
1540290650Shselasky};
1541290650Shselasky
1542290650Shselaskyenum {
1543290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPPP_MAX_RPS     = 0x4,
1544290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_TIME_RESET   = 0x8,
1545290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_BYTE_RESET   = 0x10,
1546290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_THRESHOLD    = 0x20,
1547290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MAX_RATE     = 0x40,
1548290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_AI_RATE      = 0x80,
1549290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_HAI_RATE     = 0x100,
1550290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_GD           = 0x200,
1551290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MIN_DEC_FAC  = 0x400,
1552290650Shselasky	MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MIN_RATE     = 0x800,
1553290650Shselasky};
1554290650Shselasky
1555290650Shselaskystruct mlx5_ifc_field_select_802_1qau_rp_bits {
1556290650Shselasky	u8         field_select_8021qaurp[0x20];
1557290650Shselasky};
1558290650Shselasky
1559306233Shselaskystruct mlx5_ifc_pptb_reg_bits {
1560306233Shselasky	u8         reserved_0[0x2];
1561306233Shselasky	u8         mm[0x2];
1562306233Shselasky	u8         reserved_1[0x4];
1563306233Shselasky	u8         local_port[0x8];
1564306233Shselasky	u8         reserved_2[0x6];
1565306233Shselasky	u8         cm[0x1];
1566306233Shselasky	u8         um[0x1];
1567306233Shselasky	u8         pm[0x8];
1568306233Shselasky
1569306233Shselasky	u8         prio7buff[0x4];
1570306233Shselasky	u8         prio6buff[0x4];
1571306233Shselasky	u8         prio5buff[0x4];
1572306233Shselasky	u8         prio4buff[0x4];
1573306233Shselasky	u8         prio3buff[0x4];
1574306233Shselasky	u8         prio2buff[0x4];
1575306233Shselasky	u8         prio1buff[0x4];
1576306233Shselasky	u8         prio0buff[0x4];
1577306233Shselasky
1578306233Shselasky	u8         pm_msb[0x8];
1579306233Shselasky	u8         reserved_3[0x10];
1580306233Shselasky	u8         ctrl_buff[0x4];
1581306233Shselasky	u8         untagged_buff[0x4];
1582306233Shselasky};
1583306233Shselasky
1584306233Shselaskystruct mlx5_ifc_dcbx_app_reg_bits {
1585306233Shselasky	u8         reserved_0[0x8];
1586306233Shselasky	u8         port_number[0x8];
1587306233Shselasky	u8         reserved_1[0x10];
1588306233Shselasky
1589306233Shselasky	u8         reserved_2[0x1a];
1590306233Shselasky	u8         num_app_prio[0x6];
1591306233Shselasky
1592306233Shselasky	u8         reserved_3[0x40];
1593306233Shselasky
1594306233Shselasky	struct mlx5_ifc_application_prio_entry_bits app_prio[0];
1595306233Shselasky};
1596306233Shselasky
1597306233Shselaskystruct mlx5_ifc_dcbx_param_reg_bits {
1598306233Shselasky	u8         dcbx_cee_cap[0x1];
1599306233Shselasky	u8         dcbx_ieee_cap[0x1];
1600306233Shselasky	u8         dcbx_standby_cap[0x1];
1601306233Shselasky	u8         reserved_0[0x5];
1602306233Shselasky	u8         port_number[0x8];
1603306233Shselasky	u8         reserved_1[0xa];
1604306233Shselasky	u8         max_application_table_size[0x6];
1605306233Shselasky
1606306233Shselasky	u8         reserved_2[0x15];
1607306233Shselasky	u8         version_oper[0x3];
1608306233Shselasky	u8         reserved_3[0x5];
1609306233Shselasky	u8         version_admin[0x3];
1610306233Shselasky
1611306233Shselasky	u8         willing_admin[0x1];
1612306233Shselasky	u8         reserved_4[0x3];
1613306233Shselasky	u8         pfc_cap_oper[0x4];
1614306233Shselasky	u8         reserved_5[0x4];
1615306233Shselasky	u8         pfc_cap_admin[0x4];
1616306233Shselasky	u8         reserved_6[0x4];
1617306233Shselasky	u8         num_of_tc_oper[0x4];
1618306233Shselasky	u8         reserved_7[0x4];
1619306233Shselasky	u8         num_of_tc_admin[0x4];
1620306233Shselasky
1621306233Shselasky	u8         remote_willing[0x1];
1622306233Shselasky	u8         reserved_8[0x3];
1623306233Shselasky	u8         remote_pfc_cap[0x4];
1624306233Shselasky	u8         reserved_9[0x14];
1625306233Shselasky	u8         remote_num_of_tc[0x4];
1626306233Shselasky
1627306233Shselasky	u8         reserved_10[0x18];
1628306233Shselasky	u8         error[0x8];
1629306233Shselasky
1630306233Shselasky	u8         reserved_11[0x160];
1631306233Shselasky};
1632306233Shselasky
1633308678Shselaskystruct mlx5_ifc_qhll_bits {
1634308678Shselasky	u8         reserved_at_0[0x8];
1635308678Shselasky	u8         local_port[0x8];
1636308678Shselasky	u8         reserved_at_10[0x10];
1637308678Shselasky
1638308678Shselasky	u8         reserved_at_20[0x1b];
1639308678Shselasky	u8         hll_time[0x5];
1640308678Shselasky
1641308678Shselasky	u8         stall_en[0x1];
1642308678Shselasky	u8         reserved_at_41[0x1c];
1643308678Shselasky	u8         stall_cnt[0x3];
1644308678Shselasky};
1645308678Shselasky
1646306233Shselaskystruct mlx5_ifc_qetcr_reg_bits {
1647306233Shselasky	u8         operation_type[0x2];
1648306233Shselasky	u8         cap_local_admin[0x1];
1649306233Shselasky	u8         cap_remote_admin[0x1];
1650306233Shselasky	u8         reserved_0[0x4];
1651306233Shselasky	u8         port_number[0x8];
1652306233Shselasky	u8         reserved_1[0x10];
1653306233Shselasky
1654306233Shselasky	u8         reserved_2[0x20];
1655306233Shselasky
1656306233Shselasky	u8         tc[8][0x40];
1657306233Shselasky
1658306233Shselasky	u8         global_configuration[0x40];
1659306233Shselasky};
1660306233Shselasky
1661290650Shselaskystruct mlx5_ifc_nodnic_ring_config_reg_bits {
1662290650Shselasky	u8         queue_address_63_32[0x20];
1663290650Shselasky
1664290650Shselasky	u8         queue_address_31_12[0x14];
1665290650Shselasky	u8         reserved_0[0x6];
1666290650Shselasky	u8         log_size[0x6];
1667290650Shselasky
1668290650Shselasky	struct mlx5_ifc_nodnic_ring_doorbell_bits doorbell;
1669290650Shselasky
1670290650Shselasky	u8         reserved_1[0x8];
1671290650Shselasky	u8         queue_number[0x18];
1672290650Shselasky
1673290650Shselasky	u8         q_key[0x20];
1674290650Shselasky
1675290650Shselasky	u8         reserved_2[0x10];
1676290650Shselasky	u8         pkey_index[0x10];
1677290650Shselasky
1678290650Shselasky	u8         reserved_3[0x40];
1679290650Shselasky};
1680290650Shselasky
1681290650Shselaskystruct mlx5_ifc_nodnic_cq_arming_word_bits {
1682290650Shselasky	u8         reserved_0[0x8];
1683290650Shselasky	u8         cq_ci[0x10];
1684290650Shselasky	u8         reserved_1[0x8];
1685290650Shselasky};
1686290650Shselasky
1687290650Shselaskyenum {
1688290650Shselasky	MLX5_NODNIC_EVENT_WORD_LINK_TYPE_INFINIBAND  = 0x0,
1689290650Shselasky	MLX5_NODNIC_EVENT_WORD_LINK_TYPE_ETHERNET    = 0x1,
1690290650Shselasky};
1691290650Shselasky
1692290650Shselaskyenum {
1693290650Shselasky	MLX5_NODNIC_EVENT_WORD_PORT_STATE_DOWN        = 0x0,
1694290650Shselasky	MLX5_NODNIC_EVENT_WORD_PORT_STATE_INITIALIZE  = 0x1,
1695290650Shselasky	MLX5_NODNIC_EVENT_WORD_PORT_STATE_ARMED       = 0x2,
1696290650Shselasky	MLX5_NODNIC_EVENT_WORD_PORT_STATE_ACTIVE      = 0x3,
1697290650Shselasky};
1698290650Shselasky
1699290650Shselaskystruct mlx5_ifc_nodnic_event_word_bits {
1700290650Shselasky	u8         driver_reset_needed[0x1];
1701290650Shselasky	u8         port_management_change_event[0x1];
1702290650Shselasky	u8         reserved_0[0x19];
1703290650Shselasky	u8         link_type[0x1];
1704290650Shselasky	u8         port_state[0x4];
1705290650Shselasky};
1706290650Shselasky
1707290650Shselaskystruct mlx5_ifc_nic_vport_change_event_bits {
1708290650Shselasky	u8         reserved_0[0x10];
1709290650Shselasky	u8         vport_num[0x10];
1710290650Shselasky
1711290650Shselasky	u8         reserved_1[0xc0];
1712290650Shselasky};
1713290650Shselasky
1714290650Shselaskystruct mlx5_ifc_pages_req_event_bits {
1715290650Shselasky	u8         reserved_0[0x10];
1716290650Shselasky	u8         function_id[0x10];
1717290650Shselasky
1718290650Shselasky	u8         num_pages[0x20];
1719290650Shselasky
1720290650Shselasky	u8         reserved_1[0xa0];
1721290650Shselasky};
1722290650Shselasky
1723290650Shselaskystruct mlx5_ifc_cmd_inter_comp_event_bits {
1724290650Shselasky	u8         command_completion_vector[0x20];
1725290650Shselasky
1726290650Shselasky	u8         reserved_0[0xc0];
1727290650Shselasky};
1728290650Shselasky
1729290650Shselaskystruct mlx5_ifc_stall_vl_event_bits {
1730290650Shselasky	u8         reserved_0[0x18];
1731290650Shselasky	u8         port_num[0x1];
1732290650Shselasky	u8         reserved_1[0x3];
1733290650Shselasky	u8         vl[0x4];
1734290650Shselasky
1735290650Shselasky	u8         reserved_2[0xa0];
1736290650Shselasky};
1737290650Shselasky
1738290650Shselaskystruct mlx5_ifc_db_bf_congestion_event_bits {
1739290650Shselasky	u8         event_subtype[0x8];
1740290650Shselasky	u8         reserved_0[0x8];
1741290650Shselasky	u8         congestion_level[0x8];
1742290650Shselasky	u8         reserved_1[0x8];
1743290650Shselasky
1744290650Shselasky	u8         reserved_2[0xa0];
1745290650Shselasky};
1746290650Shselasky
1747290650Shselaskystruct mlx5_ifc_gpio_event_bits {
1748290650Shselasky	u8         reserved_0[0x60];
1749290650Shselasky
1750290650Shselasky	u8         gpio_event_hi[0x20];
1751290650Shselasky
1752290650Shselasky	u8         gpio_event_lo[0x20];
1753290650Shselasky
1754290650Shselasky	u8         reserved_1[0x40];
1755290650Shselasky};
1756290650Shselasky
1757290650Shselaskystruct mlx5_ifc_port_state_change_event_bits {
1758290650Shselasky	u8         reserved_0[0x40];
1759290650Shselasky
1760290650Shselasky	u8         port_num[0x4];
1761290650Shselasky	u8         reserved_1[0x1c];
1762290650Shselasky
1763290650Shselasky	u8         reserved_2[0x80];
1764290650Shselasky};
1765290650Shselasky
1766290650Shselaskystruct mlx5_ifc_dropped_packet_logged_bits {
1767290650Shselasky	u8         reserved_0[0xe0];
1768290650Shselasky};
1769290650Shselasky
1770290650Shselaskyenum {
1771290650Shselasky	MLX5_CQ_ERROR_SYNDROME_CQ_OVERRUN                 = 0x1,
1772290650Shselasky	MLX5_CQ_ERROR_SYNDROME_CQ_ACCESS_VIOLATION_ERROR  = 0x2,
1773290650Shselasky};
1774290650Shselasky
1775290650Shselaskystruct mlx5_ifc_cq_error_bits {
1776290650Shselasky	u8         reserved_0[0x8];
1777290650Shselasky	u8         cqn[0x18];
1778290650Shselasky
1779290650Shselasky	u8         reserved_1[0x20];
1780290650Shselasky
1781290650Shselasky	u8         reserved_2[0x18];
1782290650Shselasky	u8         syndrome[0x8];
1783290650Shselasky
1784290650Shselasky	u8         reserved_3[0x80];
1785290650Shselasky};
1786290650Shselasky
1787290650Shselaskystruct mlx5_ifc_rdma_page_fault_event_bits {
1788290650Shselasky	u8         bytes_commited[0x20];
1789290650Shselasky
1790290650Shselasky	u8         r_key[0x20];
1791290650Shselasky
1792290650Shselasky	u8         reserved_0[0x10];
1793290650Shselasky	u8         packet_len[0x10];
1794290650Shselasky
1795290650Shselasky	u8         rdma_op_len[0x20];
1796290650Shselasky
1797290650Shselasky	u8         rdma_va[0x40];
1798290650Shselasky
1799290650Shselasky	u8         reserved_1[0x5];
1800290650Shselasky	u8         rdma[0x1];
1801290650Shselasky	u8         write[0x1];
1802290650Shselasky	u8         requestor[0x1];
1803290650Shselasky	u8         qp_number[0x18];
1804290650Shselasky};
1805290650Shselasky
1806290650Shselaskystruct mlx5_ifc_wqe_associated_page_fault_event_bits {
1807290650Shselasky	u8         bytes_committed[0x20];
1808290650Shselasky
1809290650Shselasky	u8         reserved_0[0x10];
1810290650Shselasky	u8         wqe_index[0x10];
1811290650Shselasky
1812290650Shselasky	u8         reserved_1[0x10];
1813290650Shselasky	u8         len[0x10];
1814290650Shselasky
1815290650Shselasky	u8         reserved_2[0x60];
1816290650Shselasky
1817290650Shselasky	u8         reserved_3[0x5];
1818290650Shselasky	u8         rdma[0x1];
1819290650Shselasky	u8         write_read[0x1];
1820290650Shselasky	u8         requestor[0x1];
1821290650Shselasky	u8         qpn[0x18];
1822290650Shselasky};
1823290650Shselasky
1824290650Shselaskyenum {
1825290650Shselasky	MLX5_QP_EVENTS_TYPE_QP  = 0x0,
1826290650Shselasky	MLX5_QP_EVENTS_TYPE_RQ  = 0x1,
1827290650Shselasky	MLX5_QP_EVENTS_TYPE_SQ  = 0x2,
1828290650Shselasky};
1829290650Shselasky
1830290650Shselaskystruct mlx5_ifc_qp_events_bits {
1831290650Shselasky	u8         reserved_0[0xa0];
1832290650Shselasky
1833290650Shselasky	u8         type[0x8];
1834290650Shselasky	u8         reserved_1[0x18];
1835290650Shselasky
1836290650Shselasky	u8         reserved_2[0x8];
1837290650Shselasky	u8         qpn_rqn_sqn[0x18];
1838290650Shselasky};
1839290650Shselasky
1840290650Shselaskystruct mlx5_ifc_dct_events_bits {
1841290650Shselasky	u8         reserved_0[0xc0];
1842290650Shselasky
1843290650Shselasky	u8         reserved_1[0x8];
1844290650Shselasky	u8         dct_number[0x18];
1845290650Shselasky};
1846290650Shselasky
1847290650Shselaskystruct mlx5_ifc_comp_event_bits {
1848290650Shselasky	u8         reserved_0[0xc0];
1849290650Shselasky
1850290650Shselasky	u8         reserved_1[0x8];
1851290650Shselasky	u8         cq_number[0x18];
1852290650Shselasky};
1853290650Shselasky
1854290650Shselaskystruct mlx5_ifc_fw_version_bits {
1855290650Shselasky	u8         major[0x10];
1856290650Shselasky	u8         reserved_0[0x10];
1857290650Shselasky
1858290650Shselasky	u8         minor[0x10];
1859290650Shselasky	u8         subminor[0x10];
1860290650Shselasky
1861290650Shselasky	u8         second[0x8];
1862290650Shselasky	u8         minute[0x8];
1863290650Shselasky	u8         hour[0x8];
1864290650Shselasky	u8         reserved_1[0x8];
1865290650Shselasky
1866290650Shselasky	u8         year[0x10];
1867290650Shselasky	u8         month[0x8];
1868290650Shselasky	u8         day[0x8];
1869290650Shselasky};
1870290650Shselasky
1871290650Shselaskyenum {
1872290650Shselasky	MLX5_QPC_STATE_RST        = 0x0,
1873290650Shselasky	MLX5_QPC_STATE_INIT       = 0x1,
1874290650Shselasky	MLX5_QPC_STATE_RTR        = 0x2,
1875290650Shselasky	MLX5_QPC_STATE_RTS        = 0x3,
1876290650Shselasky	MLX5_QPC_STATE_SQER       = 0x4,
1877290650Shselasky	MLX5_QPC_STATE_SQD        = 0x5,
1878290650Shselasky	MLX5_QPC_STATE_ERR        = 0x6,
1879290650Shselasky	MLX5_QPC_STATE_SUSPENDED  = 0x9,
1880290650Shselasky};
1881290650Shselasky
1882290650Shselaskyenum {
1883290650Shselasky	MLX5_QPC_ST_RC            = 0x0,
1884290650Shselasky	MLX5_QPC_ST_UC            = 0x1,
1885290650Shselasky	MLX5_QPC_ST_UD            = 0x2,
1886290650Shselasky	MLX5_QPC_ST_XRC           = 0x3,
1887290650Shselasky	MLX5_QPC_ST_DCI           = 0x5,
1888290650Shselasky	MLX5_QPC_ST_QP0           = 0x7,
1889290650Shselasky	MLX5_QPC_ST_QP1           = 0x8,
1890290650Shselasky	MLX5_QPC_ST_RAW_DATAGRAM  = 0x9,
1891290650Shselasky	MLX5_QPC_ST_REG_UMR       = 0xc,
1892290650Shselasky};
1893290650Shselasky
1894290650Shselaskyenum {
1895290650Shselasky	MLX5_QP_PM_ARMED            = 0x0,
1896290650Shselasky	MLX5_QP_PM_REARM            = 0x1,
1897290650Shselasky	MLX5_QPC_PM_STATE_RESERVED  = 0x2,
1898290650Shselasky	MLX5_QP_PM_MIGRATED         = 0x3,
1899290650Shselasky};
1900290650Shselasky
1901290650Shselaskyenum {
1902290650Shselasky	MLX5_QPC_END_PADDING_MODE_SCATTER_AS_IS                = 0x0,
1903290650Shselasky	MLX5_QPC_END_PADDING_MODE_PAD_TO_CACHE_LINE_ALIGNMENT  = 0x1,
1904290650Shselasky};
1905290650Shselasky
1906290650Shselaskyenum {
1907290650Shselasky	MLX5_QPC_MTU_256_BYTES        = 0x1,
1908290650Shselasky	MLX5_QPC_MTU_512_BYTES        = 0x2,
1909290650Shselasky	MLX5_QPC_MTU_1K_BYTES         = 0x3,
1910290650Shselasky	MLX5_QPC_MTU_2K_BYTES         = 0x4,
1911290650Shselasky	MLX5_QPC_MTU_4K_BYTES         = 0x5,
1912290650Shselasky	MLX5_QPC_MTU_RAW_ETHERNET_QP  = 0x7,
1913290650Shselasky};
1914290650Shselasky
1915290650Shselaskyenum {
1916290650Shselasky	MLX5_QPC_ATOMIC_MODE_IB_SPEC     = 0x1,
1917290650Shselasky	MLX5_QPC_ATOMIC_MODE_ONLY_8B     = 0x2,
1918290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_8B    = 0x3,
1919290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_16B   = 0x4,
1920290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_32B   = 0x5,
1921290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_64B   = 0x6,
1922290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_128B  = 0x7,
1923290650Shselasky	MLX5_QPC_ATOMIC_MODE_UP_TO_256B  = 0x8,
1924290650Shselasky};
1925290650Shselasky
1926290650Shselaskyenum {
1927290650Shselasky	MLX5_QPC_CS_REQ_DISABLE    = 0x0,
1928290650Shselasky	MLX5_QPC_CS_REQ_UP_TO_32B  = 0x11,
1929290650Shselasky	MLX5_QPC_CS_REQ_UP_TO_64B  = 0x22,
1930290650Shselasky};
1931290650Shselasky
1932290650Shselaskyenum {
1933290650Shselasky	MLX5_QPC_CS_RES_DISABLE    = 0x0,
1934290650Shselasky	MLX5_QPC_CS_RES_UP_TO_32B  = 0x1,
1935290650Shselasky	MLX5_QPC_CS_RES_UP_TO_64B  = 0x2,
1936290650Shselasky};
1937290650Shselasky
1938290650Shselaskystruct mlx5_ifc_qpc_bits {
1939290650Shselasky	u8         state[0x4];
1940329204Shselasky	u8         lag_tx_port_affinity[0x4];
1941290650Shselasky	u8         st[0x8];
1942290650Shselasky	u8         reserved_1[0x3];
1943290650Shselasky	u8         pm_state[0x2];
1944290650Shselasky	u8         reserved_2[0x7];
1945290650Shselasky	u8         end_padding_mode[0x2];
1946290650Shselasky	u8         reserved_3[0x2];
1947290650Shselasky
1948290650Shselasky	u8         wq_signature[0x1];
1949290650Shselasky	u8         block_lb_mc[0x1];
1950290650Shselasky	u8         atomic_like_write_en[0x1];
1951290650Shselasky	u8         latency_sensitive[0x1];
1952290650Shselasky	u8         reserved_4[0x1];
1953290650Shselasky	u8         drain_sigerr[0x1];
1954290650Shselasky	u8         reserved_5[0x2];
1955290650Shselasky	u8         pd[0x18];
1956290650Shselasky
1957290650Shselasky	u8         mtu[0x3];
1958290650Shselasky	u8         log_msg_max[0x5];
1959290650Shselasky	u8         reserved_6[0x1];
1960290650Shselasky	u8         log_rq_size[0x4];
1961290650Shselasky	u8         log_rq_stride[0x3];
1962290650Shselasky	u8         no_sq[0x1];
1963290650Shselasky	u8         log_sq_size[0x4];
1964290650Shselasky	u8         reserved_7[0x6];
1965290650Shselasky	u8         rlky[0x1];
1966306233Shselasky	u8         ulp_stateless_offload_mode[0x4];
1967290650Shselasky
1968290650Shselasky	u8         counter_set_id[0x8];
1969290650Shselasky	u8         uar_page[0x18];
1970290650Shselasky
1971306233Shselasky	u8         reserved_8[0x8];
1972290650Shselasky	u8         user_index[0x18];
1973290650Shselasky
1974306233Shselasky	u8         reserved_9[0x3];
1975290650Shselasky	u8         log_page_size[0x5];
1976290650Shselasky	u8         remote_qpn[0x18];
1977290650Shselasky
1978290650Shselasky	struct mlx5_ifc_ads_bits primary_address_path;
1979290650Shselasky
1980290650Shselasky	struct mlx5_ifc_ads_bits secondary_address_path;
1981290650Shselasky
1982290650Shselasky	u8         log_ack_req_freq[0x4];
1983306233Shselasky	u8         reserved_10[0x4];
1984290650Shselasky	u8         log_sra_max[0x3];
1985306233Shselasky	u8         reserved_11[0x2];
1986290650Shselasky	u8         retry_count[0x3];
1987290650Shselasky	u8         rnr_retry[0x3];
1988306233Shselasky	u8         reserved_12[0x1];
1989290650Shselasky	u8         fre[0x1];
1990290650Shselasky	u8         cur_rnr_retry[0x3];
1991290650Shselasky	u8         cur_retry_count[0x3];
1992306233Shselasky	u8         reserved_13[0x5];
1993290650Shselasky
1994306233Shselasky	u8         reserved_14[0x20];
1995290650Shselasky
1996306233Shselasky	u8         reserved_15[0x8];
1997290650Shselasky	u8         next_send_psn[0x18];
1998290650Shselasky
1999306233Shselasky	u8         reserved_16[0x8];
2000290650Shselasky	u8         cqn_snd[0x18];
2001290650Shselasky
2002329204Shselasky	u8         reserved_at_400[0x8];
2003290650Shselasky
2004329204Shselasky	u8         deth_sqpn[0x18];
2005329204Shselasky	u8         reserved_17[0x20];
2006329204Shselasky
2007306233Shselasky	u8         reserved_18[0x8];
2008290650Shselasky	u8         last_acked_psn[0x18];
2009290650Shselasky
2010306233Shselasky	u8         reserved_19[0x8];
2011290650Shselasky	u8         ssn[0x18];
2012290650Shselasky
2013306233Shselasky	u8         reserved_20[0x8];
2014290650Shselasky	u8         log_rra_max[0x3];
2015306233Shselasky	u8         reserved_21[0x1];
2016290650Shselasky	u8         atomic_mode[0x4];
2017290650Shselasky	u8         rre[0x1];
2018290650Shselasky	u8         rwe[0x1];
2019290650Shselasky	u8         rae[0x1];
2020306233Shselasky	u8         reserved_22[0x1];
2021290650Shselasky	u8         page_offset[0x6];
2022306233Shselasky	u8         reserved_23[0x3];
2023290650Shselasky	u8         cd_slave_receive[0x1];
2024290650Shselasky	u8         cd_slave_send[0x1];
2025290650Shselasky	u8         cd_master[0x1];
2026290650Shselasky
2027306233Shselasky	u8         reserved_24[0x3];
2028290650Shselasky	u8         min_rnr_nak[0x5];
2029290650Shselasky	u8         next_rcv_psn[0x18];
2030290650Shselasky
2031306233Shselasky	u8         reserved_25[0x8];
2032290650Shselasky	u8         xrcd[0x18];
2033290650Shselasky
2034306233Shselasky	u8         reserved_26[0x8];
2035290650Shselasky	u8         cqn_rcv[0x18];
2036290650Shselasky
2037290650Shselasky	u8         dbr_addr[0x40];
2038290650Shselasky
2039290650Shselasky	u8         q_key[0x20];
2040290650Shselasky
2041306233Shselasky	u8         reserved_27[0x5];
2042290650Shselasky	u8         rq_type[0x3];
2043290650Shselasky	u8         srqn_rmpn[0x18];
2044290650Shselasky
2045306233Shselasky	u8         reserved_28[0x8];
2046290650Shselasky	u8         rmsn[0x18];
2047290650Shselasky
2048290650Shselasky	u8         hw_sq_wqebb_counter[0x10];
2049290650Shselasky	u8         sw_sq_wqebb_counter[0x10];
2050290650Shselasky
2051290650Shselasky	u8         hw_rq_counter[0x20];
2052290650Shselasky
2053290650Shselasky	u8         sw_rq_counter[0x20];
2054290650Shselasky
2055306233Shselasky	u8         reserved_29[0x20];
2056290650Shselasky
2057306233Shselasky	u8         reserved_30[0xf];
2058290650Shselasky	u8         cgs[0x1];
2059290650Shselasky	u8         cs_req[0x8];
2060290650Shselasky	u8         cs_res[0x8];
2061290650Shselasky
2062290650Shselasky	u8         dc_access_key[0x40];
2063290650Shselasky
2064290650Shselasky	u8         rdma_active[0x1];
2065290650Shselasky	u8         comm_est[0x1];
2066290650Shselasky	u8         suspended[0x1];
2067306233Shselasky	u8         reserved_31[0x5];
2068290650Shselasky	u8         send_msg_psn[0x18];
2069290650Shselasky
2070306233Shselasky	u8         reserved_32[0x8];
2071290650Shselasky	u8         rcv_msg_psn[0x18];
2072290650Shselasky
2073290650Shselasky	u8         rdma_va[0x40];
2074290650Shselasky
2075290650Shselasky	u8         rdma_key[0x20];
2076290650Shselasky
2077306233Shselasky	u8         reserved_33[0x20];
2078290650Shselasky};
2079290650Shselasky
2080290650Shselaskystruct mlx5_ifc_roce_addr_layout_bits {
2081290650Shselasky	u8         source_l3_address[16][0x8];
2082290650Shselasky
2083290650Shselasky	u8         reserved_0[0x3];
2084290650Shselasky	u8         vlan_valid[0x1];
2085290650Shselasky	u8         vlan_id[0xc];
2086290650Shselasky	u8         source_mac_47_32[0x10];
2087290650Shselasky
2088290650Shselasky	u8         source_mac_31_0[0x20];
2089290650Shselasky
2090290650Shselasky	u8         reserved_1[0x14];
2091290650Shselasky	u8         roce_l3_type[0x4];
2092290650Shselasky	u8         roce_version[0x8];
2093290650Shselasky
2094290650Shselasky	u8         reserved_2[0x20];
2095290650Shselasky};
2096290650Shselasky
2097290650Shselaskystruct mlx5_ifc_rdbc_bits {
2098290650Shselasky	u8         reserved_0[0x1c];
2099290650Shselasky	u8         type[0x4];
2100290650Shselasky
2101290650Shselasky	u8         reserved_1[0x20];
2102290650Shselasky
2103290650Shselasky	u8         reserved_2[0x8];
2104290650Shselasky	u8         psn[0x18];
2105290650Shselasky
2106290650Shselasky	u8         rkey[0x20];
2107290650Shselasky
2108290650Shselasky	u8         address[0x40];
2109290650Shselasky
2110290650Shselasky	u8         byte_count[0x20];
2111290650Shselasky
2112290650Shselasky	u8         reserved_3[0x20];
2113290650Shselasky
2114290650Shselasky	u8         atomic_resp[32][0x8];
2115290650Shselasky};
2116290650Shselasky
2117290650Shselaskyenum {
2118290650Shselasky	MLX5_FLOW_CONTEXT_ACTION_ALLOW     = 0x1,
2119290650Shselasky	MLX5_FLOW_CONTEXT_ACTION_DROP      = 0x2,
2120290650Shselasky	MLX5_FLOW_CONTEXT_ACTION_FWD_DEST  = 0x4,
2121290650Shselasky	MLX5_FLOW_CONTEXT_ACTION_COUNT     = 0x8,
2122290650Shselasky};
2123290650Shselasky
2124290650Shselaskystruct mlx5_ifc_flow_context_bits {
2125290650Shselasky	u8         reserved_0[0x20];
2126290650Shselasky
2127290650Shselasky	u8         group_id[0x20];
2128290650Shselasky
2129290650Shselasky	u8         reserved_1[0x8];
2130290650Shselasky	u8         flow_tag[0x18];
2131290650Shselasky
2132290650Shselasky	u8         reserved_2[0x10];
2133290650Shselasky	u8         action[0x10];
2134290650Shselasky
2135290650Shselasky	u8         reserved_3[0x8];
2136290650Shselasky	u8         destination_list_size[0x18];
2137290650Shselasky
2138290650Shselasky	u8         reserved_4[0x8];
2139290650Shselasky	u8         flow_counter_list_size[0x18];
2140290650Shselasky
2141290650Shselasky	u8         reserved_5[0x140];
2142290650Shselasky
2143290650Shselasky	struct mlx5_ifc_fte_match_param_bits match_value;
2144290650Shselasky
2145290650Shselasky	u8         reserved_6[0x600];
2146290650Shselasky
2147290650Shselasky	union mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits destination[0];
2148290650Shselasky};
2149290650Shselasky
2150290650Shselaskyenum {
2151290650Shselasky	MLX5_XRC_SRQC_STATE_GOOD   = 0x0,
2152290650Shselasky	MLX5_XRC_SRQC_STATE_ERROR  = 0x1,
2153290650Shselasky};
2154290650Shselasky
2155290650Shselaskystruct mlx5_ifc_xrc_srqc_bits {
2156290650Shselasky	u8         state[0x4];
2157290650Shselasky	u8         log_xrc_srq_size[0x4];
2158290650Shselasky	u8         reserved_0[0x18];
2159290650Shselasky
2160290650Shselasky	u8         wq_signature[0x1];
2161290650Shselasky	u8         cont_srq[0x1];
2162290650Shselasky	u8         reserved_1[0x1];
2163290650Shselasky	u8         rlky[0x1];
2164290650Shselasky	u8         basic_cyclic_rcv_wqe[0x1];
2165290650Shselasky	u8         log_rq_stride[0x3];
2166290650Shselasky	u8         xrcd[0x18];
2167290650Shselasky
2168290650Shselasky	u8         page_offset[0x6];
2169290650Shselasky	u8         reserved_2[0x2];
2170290650Shselasky	u8         cqn[0x18];
2171290650Shselasky
2172290650Shselasky	u8         reserved_3[0x20];
2173290650Shselasky
2174290650Shselasky	u8         reserved_4[0x2];
2175290650Shselasky	u8         log_page_size[0x6];
2176290650Shselasky	u8         user_index[0x18];
2177290650Shselasky
2178290650Shselasky	u8         reserved_5[0x20];
2179290650Shselasky
2180290650Shselasky	u8         reserved_6[0x8];
2181290650Shselasky	u8         pd[0x18];
2182290650Shselasky
2183290650Shselasky	u8         lwm[0x10];
2184290650Shselasky	u8         wqe_cnt[0x10];
2185290650Shselasky
2186290650Shselasky	u8         reserved_7[0x40];
2187290650Shselasky
2188290650Shselasky	u8         db_record_addr_h[0x20];
2189290650Shselasky
2190290650Shselasky	u8         db_record_addr_l[0x1e];
2191290650Shselasky	u8         reserved_8[0x2];
2192290650Shselasky
2193290650Shselasky	u8         reserved_9[0x80];
2194290650Shselasky};
2195290650Shselasky
2196347850Shselaskystruct mlx5_ifc_vnic_diagnostic_statistics_bits {
2197347850Shselasky	u8         counter_error_queues[0x20];
2198347850Shselasky
2199347850Shselasky	u8         total_error_queues[0x20];
2200347850Shselasky
2201347850Shselasky	u8         send_queue_priority_update_flow[0x20];
2202347850Shselasky
2203347850Shselasky	u8         reserved_at_60[0x20];
2204347850Shselasky
2205347850Shselasky	u8         nic_receive_steering_discard[0x40];
2206347850Shselasky
2207347850Shselasky	u8         receive_discard_vport_down[0x40];
2208347850Shselasky
2209347850Shselasky	u8         transmit_discard_vport_down[0x40];
2210347850Shselasky
2211347850Shselasky	u8         reserved_at_140[0xec0];
2212347850Shselasky};
2213347850Shselasky
2214290650Shselaskystruct mlx5_ifc_traffic_counter_bits {
2215290650Shselasky	u8         packets[0x40];
2216290650Shselasky
2217290650Shselasky	u8         octets[0x40];
2218290650Shselasky};
2219290650Shselasky
2220290650Shselaskystruct mlx5_ifc_tisc_bits {
2221329204Shselasky	u8         strict_lag_tx_port_affinity[0x1];
2222329204Shselasky	u8         reserved_at_1[0x3];
2223329204Shselasky	u8         lag_tx_port_affinity[0x04];
2224329204Shselasky
2225329204Shselasky	u8         reserved_at_8[0x4];
2226290650Shselasky	u8         prio[0x4];
2227290650Shselasky	u8         reserved_1[0x10];
2228290650Shselasky
2229290650Shselasky	u8         reserved_2[0x100];
2230290650Shselasky
2231290650Shselasky	u8         reserved_3[0x8];
2232290650Shselasky	u8         transport_domain[0x18];
2233290650Shselasky
2234306233Shselasky	u8         reserved_4[0x8];
2235306233Shselasky	u8         underlay_qpn[0x18];
2236306233Shselasky
2237306233Shselasky	u8         reserved_5[0x3a0];
2238290650Shselasky};
2239290650Shselasky
2240290650Shselaskyenum {
2241290650Shselasky	MLX5_TIRC_DISP_TYPE_DIRECT    = 0x0,
2242290650Shselasky	MLX5_TIRC_DISP_TYPE_INDIRECT  = 0x1,
2243290650Shselasky};
2244290650Shselasky
2245290650Shselaskyenum {
2246290650Shselasky	MLX5_TIRC_LRO_ENABLE_MASK_IPV4_LRO  = 0x1,
2247290650Shselasky	MLX5_TIRC_LRO_ENABLE_MASK_IPV6_LRO  = 0x2,
2248290650Shselasky};
2249290650Shselasky
2250290650Shselaskyenum {
2251290650Shselasky	MLX5_TIRC_RX_HASH_FN_HASH_NONE           = 0x0,
2252290650Shselasky	MLX5_TIRC_RX_HASH_FN_HASH_INVERTED_XOR8  = 0x1,
2253290650Shselasky	MLX5_TIRC_RX_HASH_FN_HASH_TOEPLITZ       = 0x2,
2254290650Shselasky};
2255290650Shselasky
2256290650Shselaskyenum {
2257290650Shselasky	MLX5_TIRC_SELF_LB_EN_ENABLE_UNICAST    = 0x1,
2258290650Shselasky	MLX5_TIRC_SELF_LB_EN_ENABLE_MULTICAST  = 0x2,
2259290650Shselasky};
2260290650Shselasky
2261290650Shselaskystruct mlx5_ifc_tirc_bits {
2262290650Shselasky	u8         reserved_0[0x20];
2263290650Shselasky
2264290650Shselasky	u8         disp_type[0x4];
2265290650Shselasky	u8         reserved_1[0x1c];
2266290650Shselasky
2267290650Shselasky	u8         reserved_2[0x40];
2268290650Shselasky
2269290650Shselasky	u8         reserved_3[0x4];
2270290650Shselasky	u8         lro_timeout_period_usecs[0x10];
2271290650Shselasky	u8         lro_enable_mask[0x4];
2272290650Shselasky	u8         lro_max_msg_sz[0x8];
2273290650Shselasky
2274290650Shselasky	u8         reserved_4[0x40];
2275290650Shselasky
2276290650Shselasky	u8         reserved_5[0x8];
2277290650Shselasky	u8         inline_rqn[0x18];
2278290650Shselasky
2279290650Shselasky	u8         rx_hash_symmetric[0x1];
2280290650Shselasky	u8         reserved_6[0x1];
2281290650Shselasky	u8         tunneled_offload_en[0x1];
2282290650Shselasky	u8         reserved_7[0x5];
2283290650Shselasky	u8         indirect_table[0x18];
2284290650Shselasky
2285290650Shselasky	u8         rx_hash_fn[0x4];
2286290650Shselasky	u8         reserved_8[0x2];
2287290650Shselasky	u8         self_lb_en[0x2];
2288290650Shselasky	u8         transport_domain[0x18];
2289290650Shselasky
2290290650Shselasky	u8         rx_hash_toeplitz_key[10][0x20];
2291290650Shselasky
2292290650Shselasky	struct mlx5_ifc_rx_hash_field_select_bits rx_hash_field_selector_outer;
2293290650Shselasky
2294290650Shselasky	struct mlx5_ifc_rx_hash_field_select_bits rx_hash_field_selector_inner;
2295290650Shselasky
2296290650Shselasky	u8         reserved_9[0x4c0];
2297290650Shselasky};
2298290650Shselasky
2299290650Shselaskyenum {
2300290650Shselasky	MLX5_SRQC_STATE_GOOD   = 0x0,
2301290650Shselasky	MLX5_SRQC_STATE_ERROR  = 0x1,
2302290650Shselasky};
2303290650Shselasky
2304290650Shselaskystruct mlx5_ifc_srqc_bits {
2305290650Shselasky	u8         state[0x4];
2306290650Shselasky	u8         log_srq_size[0x4];
2307290650Shselasky	u8         reserved_0[0x18];
2308290650Shselasky
2309290650Shselasky	u8         wq_signature[0x1];
2310290650Shselasky	u8         cont_srq[0x1];
2311290650Shselasky	u8         reserved_1[0x1];
2312290650Shselasky	u8         rlky[0x1];
2313290650Shselasky	u8         reserved_2[0x1];
2314290650Shselasky	u8         log_rq_stride[0x3];
2315290650Shselasky	u8         xrcd[0x18];
2316290650Shselasky
2317290650Shselasky	u8         page_offset[0x6];
2318290650Shselasky	u8         reserved_3[0x2];
2319290650Shselasky	u8         cqn[0x18];
2320290650Shselasky
2321290650Shselasky	u8         reserved_4[0x20];
2322290650Shselasky
2323290650Shselasky	u8         reserved_5[0x2];
2324290650Shselasky	u8         log_page_size[0x6];
2325290650Shselasky	u8         reserved_6[0x18];
2326290650Shselasky
2327290650Shselasky	u8         reserved_7[0x20];
2328290650Shselasky
2329290650Shselasky	u8         reserved_8[0x8];
2330290650Shselasky	u8         pd[0x18];
2331290650Shselasky
2332290650Shselasky	u8         lwm[0x10];
2333290650Shselasky	u8         wqe_cnt[0x10];
2334290650Shselasky
2335290650Shselasky	u8         reserved_9[0x40];
2336290650Shselasky
2337331807Shselasky	u8	   dbr_addr[0x40];
2338290650Shselasky
2339331807Shselasky	u8	   reserved_10[0x80];
2340290650Shselasky};
2341290650Shselasky
2342290650Shselaskyenum {
2343290650Shselasky	MLX5_SQC_STATE_RST  = 0x0,
2344290650Shselasky	MLX5_SQC_STATE_RDY  = 0x1,
2345290650Shselasky	MLX5_SQC_STATE_ERR  = 0x3,
2346290650Shselasky};
2347290650Shselasky
2348290650Shselaskystruct mlx5_ifc_sqc_bits {
2349308678Shselasky	u8         rlkey[0x1];
2350290650Shselasky	u8         cd_master[0x1];
2351290650Shselasky	u8         fre[0x1];
2352290650Shselasky	u8         flush_in_error_en[0x1];
2353290650Shselasky	u8         allow_multi_pkt_send_wqe[0x1];
2354290650Shselasky	u8         min_wqe_inline_mode[0x3];
2355290650Shselasky	u8         state[0x4];
2356308678Shselasky	u8         reg_umr[0x1];
2357308678Shselasky	u8         allow_swp[0x1];
2358308678Shselasky	u8         reserved_0[0x12];
2359290650Shselasky
2360290650Shselasky	u8         reserved_1[0x8];
2361290650Shselasky	u8         user_index[0x18];
2362290650Shselasky
2363290650Shselasky	u8         reserved_2[0x8];
2364290650Shselasky	u8         cqn[0x18];
2365290650Shselasky
2366308678Shselasky	u8         reserved_3[0x80];
2367308678Shselasky
2368308678Shselasky	u8         qos_para_vport_number[0x10];
2369306233Shselasky	u8         packet_pacing_rate_limit_index[0x10];
2370290650Shselasky
2371290650Shselasky	u8         tis_lst_sz[0x10];
2372290650Shselasky	u8         reserved_4[0x10];
2373290650Shselasky
2374290650Shselasky	u8         reserved_5[0x40];
2375290650Shselasky
2376290650Shselasky	u8         reserved_6[0x8];
2377290650Shselasky	u8         tis_num_0[0x18];
2378290650Shselasky
2379290650Shselasky	struct mlx5_ifc_wq_bits wq;
2380290650Shselasky};
2381290650Shselasky
2382308678Shselaskyenum {
2383308678Shselasky	MLX5_TSAR_TYPE_DWRR = 0,
2384308678Shselasky	MLX5_TSAR_TYPE_ROUND_ROUBIN = 1,
2385308678Shselasky	MLX5_TSAR_TYPE_ETS = 2
2386308678Shselasky};
2387308678Shselasky
2388308678Shselaskystruct mlx5_ifc_tsar_element_attributes_bits {
2389308678Shselasky	u8         reserved_0[0x8];
2390308678Shselasky	u8         tsar_type[0x8];
2391308678Shselasky	u8	   reserved_1[0x10];
2392308678Shselasky};
2393308678Shselasky
2394308678Shselaskystruct mlx5_ifc_vport_element_attributes_bits {
2395308678Shselasky	u8         reserved_0[0x10];
2396308678Shselasky	u8         vport_number[0x10];
2397308678Shselasky};
2398308678Shselasky
2399308678Shselaskystruct mlx5_ifc_vport_tc_element_attributes_bits {
2400308678Shselasky	u8         traffic_class[0x10];
2401308678Shselasky	u8         vport_number[0x10];
2402308678Shselasky};
2403308678Shselasky
2404308678Shselaskystruct mlx5_ifc_para_vport_tc_element_attributes_bits {
2405308678Shselasky	u8         reserved_0[0x0C];
2406308678Shselasky	u8         traffic_class[0x04];
2407308678Shselasky	u8         qos_para_vport_number[0x10];
2408308678Shselasky};
2409308678Shselasky
2410308678Shselaskyenum {
2411308678Shselasky	MLX5_SCHEDULING_CONTEXT_ELEMENT_TYPE_TSAR           = 0x0,
2412308678Shselasky	MLX5_SCHEDULING_CONTEXT_ELEMENT_TYPE_VPORT          = 0x1,
2413308678Shselasky	MLX5_SCHEDULING_CONTEXT_ELEMENT_TYPE_VPORT_TC       = 0x2,
2414308678Shselasky	MLX5_SCHEDULING_CONTEXT_ELEMENT_TYPE_PARA_VPORT_TC  = 0x3,
2415308678Shselasky};
2416308678Shselasky
2417308678Shselaskystruct mlx5_ifc_scheduling_context_bits {
2418308678Shselasky	u8         element_type[0x8];
2419308678Shselasky	u8         reserved_at_8[0x18];
2420308678Shselasky
2421308678Shselasky	u8         element_attributes[0x20];
2422308678Shselasky
2423308678Shselasky	u8         parent_element_id[0x20];
2424308678Shselasky
2425308678Shselasky	u8         reserved_at_60[0x40];
2426308678Shselasky
2427308678Shselasky	u8         bw_share[0x20];
2428308678Shselasky
2429308678Shselasky	u8         max_average_bw[0x20];
2430308678Shselasky
2431308678Shselasky	u8         reserved_at_e0[0x120];
2432308678Shselasky};
2433308678Shselasky
2434290650Shselaskystruct mlx5_ifc_rqtc_bits {
2435290650Shselasky	u8         reserved_0[0xa0];
2436290650Shselasky
2437290650Shselasky	u8         reserved_1[0x10];
2438290650Shselasky	u8         rqt_max_size[0x10];
2439290650Shselasky
2440290650Shselasky	u8         reserved_2[0x10];
2441290650Shselasky	u8         rqt_actual_size[0x10];
2442290650Shselasky
2443290650Shselasky	u8         reserved_3[0x6a0];
2444290650Shselasky
2445290650Shselasky	struct mlx5_ifc_rq_num_bits rq_num[0];
2446290650Shselasky};
2447290650Shselasky
2448290650Shselaskyenum {
2449290650Shselasky	MLX5_RQC_RQ_TYPE_MEMORY_RQ_INLINE      = 0x0,
2450290650Shselasky	MLX5_RQC_RQ_TYPE_MEMORY_RQ_RMP         = 0x1,
2451290650Shselasky};
2452290650Shselasky
2453290650Shselaskyenum {
2454290650Shselasky	MLX5_RQC_STATE_RST  = 0x0,
2455290650Shselasky	MLX5_RQC_STATE_RDY  = 0x1,
2456290650Shselasky	MLX5_RQC_STATE_ERR  = 0x3,
2457290650Shselasky};
2458290650Shselasky
2459321992Shselaskyenum {
2460321992Shselasky	MLX5_RQC_DROPLESS_MODE_DISABLE        = 0x0,
2461321992Shselasky	MLX5_RQC_DROPLESS_MODE_ENABLE         = 0x1,
2462321992Shselasky};
2463321992Shselasky
2464290650Shselaskystruct mlx5_ifc_rqc_bits {
2465321992Shselasky	u8         rlkey[0x1];
2466321992Shselasky	u8         delay_drop_en[0x1];
2467321992Shselasky	u8         scatter_fcs[0x1];
2468290650Shselasky	u8         vlan_strip_disable[0x1];
2469290650Shselasky	u8         mem_rq_type[0x4];
2470290650Shselasky	u8         state[0x4];
2471290650Shselasky	u8         reserved_1[0x1];
2472290650Shselasky	u8         flush_in_error_en[0x1];
2473290650Shselasky	u8         reserved_2[0x12];
2474290650Shselasky
2475290650Shselasky	u8         reserved_3[0x8];
2476290650Shselasky	u8         user_index[0x18];
2477290650Shselasky
2478290650Shselasky	u8         reserved_4[0x8];
2479290650Shselasky	u8         cqn[0x18];
2480290650Shselasky
2481290650Shselasky	u8         counter_set_id[0x8];
2482290650Shselasky	u8         reserved_5[0x18];
2483290650Shselasky
2484290650Shselasky	u8         reserved_6[0x8];
2485290650Shselasky	u8         rmpn[0x18];
2486290650Shselasky
2487290650Shselasky	u8         reserved_7[0xe0];
2488290650Shselasky
2489290650Shselasky	struct mlx5_ifc_wq_bits wq;
2490290650Shselasky};
2491290650Shselasky
2492290650Shselaskyenum {
2493290650Shselasky	MLX5_RMPC_STATE_RDY  = 0x1,
2494290650Shselasky	MLX5_RMPC_STATE_ERR  = 0x3,
2495290650Shselasky};
2496290650Shselasky
2497290650Shselaskystruct mlx5_ifc_rmpc_bits {
2498290650Shselasky	u8         reserved_0[0x8];
2499290650Shselasky	u8         state[0x4];
2500290650Shselasky	u8         reserved_1[0x14];
2501290650Shselasky
2502290650Shselasky	u8         basic_cyclic_rcv_wqe[0x1];
2503290650Shselasky	u8         reserved_2[0x1f];
2504290650Shselasky
2505290650Shselasky	u8         reserved_3[0x140];
2506290650Shselasky
2507290650Shselasky	struct mlx5_ifc_wq_bits wq;
2508290650Shselasky};
2509290650Shselasky
2510290650Shselaskyenum {
2511290650Shselasky	MLX5_NIC_VPORT_CONTEXT_ALLOWED_LIST_TYPE_CURRENT_UC_MAC_ADDRESS  = 0x0,
2512290650Shselasky	MLX5_NIC_VPORT_CONTEXT_ALLOWED_LIST_TYPE_CURRENT_MC_MAC_ADDRESS  = 0x1,
2513290650Shselasky	MLX5_NIC_VPORT_CONTEXT_ALLOWED_LIST_TYPE_VLAN_LIST               = 0x2,
2514290650Shselasky};
2515290650Shselasky
2516290650Shselaskystruct mlx5_ifc_nic_vport_context_bits {
2517290650Shselasky	u8         reserved_0[0x5];
2518290650Shselasky	u8         min_wqe_inline_mode[0x3];
2519321992Shselasky	u8         reserved_1[0x15];
2520321992Shselasky	u8         disable_mc_local_lb[0x1];
2521321992Shselasky	u8         disable_uc_local_lb[0x1];
2522290650Shselasky	u8         roce_en[0x1];
2523290650Shselasky
2524290650Shselasky	u8         arm_change_event[0x1];
2525290650Shselasky	u8         reserved_2[0x1a];
2526290650Shselasky	u8         event_on_mtu[0x1];
2527290650Shselasky	u8         event_on_promisc_change[0x1];
2528290650Shselasky	u8         event_on_vlan_change[0x1];
2529290650Shselasky	u8         event_on_mc_address_change[0x1];
2530290650Shselasky	u8         event_on_uc_address_change[0x1];
2531290650Shselasky
2532290650Shselasky	u8         reserved_3[0xe0];
2533290650Shselasky
2534290650Shselasky	u8         reserved_4[0x10];
2535290650Shselasky	u8         mtu[0x10];
2536290650Shselasky
2537290650Shselasky	u8         system_image_guid[0x40];
2538290650Shselasky
2539290650Shselasky	u8         port_guid[0x40];
2540290650Shselasky
2541290650Shselasky	u8         node_guid[0x40];
2542290650Shselasky
2543290650Shselasky	u8         reserved_5[0x140];
2544290650Shselasky
2545290650Shselasky	u8         qkey_violation_counter[0x10];
2546290650Shselasky	u8         reserved_6[0x10];
2547290650Shselasky
2548290650Shselasky	u8         reserved_7[0x420];
2549290650Shselasky
2550290650Shselasky	u8         promisc_uc[0x1];
2551290650Shselasky	u8         promisc_mc[0x1];
2552290650Shselasky	u8         promisc_all[0x1];
2553290650Shselasky	u8         reserved_8[0x2];
2554290650Shselasky	u8         allowed_list_type[0x3];
2555290650Shselasky	u8         reserved_9[0xc];
2556290650Shselasky	u8         allowed_list_size[0xc];
2557290650Shselasky
2558290650Shselasky	struct mlx5_ifc_mac_address_layout_bits permanent_address;
2559290650Shselasky
2560290650Shselasky	u8         reserved_10[0x20];
2561290650Shselasky
2562290650Shselasky	u8         current_uc_mac_address[0][0x40];
2563290650Shselasky};
2564290650Shselasky
2565290650Shselaskyenum {
2566290650Shselasky	MLX5_ACCESS_MODE_PA        = 0x0,
2567290650Shselasky	MLX5_ACCESS_MODE_MTT       = 0x1,
2568290650Shselasky	MLX5_ACCESS_MODE_KLM       = 0x2,
2569290650Shselasky};
2570290650Shselasky
2571290650Shselaskystruct mlx5_ifc_mkc_bits {
2572341940Shselasky	u8         reserved_at_0[0x1];
2573290650Shselasky	u8         free[0x1];
2574341940Shselasky	u8         reserved_at_2[0x1];
2575341940Shselasky	u8         access_mode_4_2[0x3];
2576341940Shselasky	u8         reserved_at_6[0x7];
2577341940Shselasky	u8         relaxed_ordering_write[0x1];
2578341940Shselasky	u8         reserved_at_e[0x1];
2579290650Shselasky	u8         small_fence_on_rdma_read_response[0x1];
2580290650Shselasky	u8         umr_en[0x1];
2581290650Shselasky	u8         a[0x1];
2582290650Shselasky	u8         rw[0x1];
2583290650Shselasky	u8         rr[0x1];
2584290650Shselasky	u8         lw[0x1];
2585290650Shselasky	u8         lr[0x1];
2586290650Shselasky	u8         access_mode[0x2];
2587290650Shselasky	u8         reserved_2[0x8];
2588290650Shselasky
2589290650Shselasky	u8         qpn[0x18];
2590290650Shselasky	u8         mkey_7_0[0x8];
2591290650Shselasky
2592290650Shselasky	u8         reserved_3[0x20];
2593290650Shselasky
2594290650Shselasky	u8         length64[0x1];
2595290650Shselasky	u8         bsf_en[0x1];
2596290650Shselasky	u8         sync_umr[0x1];
2597290650Shselasky	u8         reserved_4[0x2];
2598290650Shselasky	u8         expected_sigerr_count[0x1];
2599290650Shselasky	u8         reserved_5[0x1];
2600290650Shselasky	u8         en_rinval[0x1];
2601290650Shselasky	u8         pd[0x18];
2602290650Shselasky
2603290650Shselasky	u8         start_addr[0x40];
2604290650Shselasky
2605290650Shselasky	u8         len[0x40];
2606290650Shselasky
2607290650Shselasky	u8         bsf_octword_size[0x20];
2608290650Shselasky
2609290650Shselasky	u8         reserved_6[0x80];
2610290650Shselasky
2611290650Shselasky	u8         translations_octword_size[0x20];
2612290650Shselasky
2613290650Shselasky	u8         reserved_7[0x1b];
2614290650Shselasky	u8         log_page_size[0x5];
2615290650Shselasky
2616290650Shselasky	u8         reserved_8[0x20];
2617290650Shselasky};
2618290650Shselasky
2619290650Shselaskystruct mlx5_ifc_pkey_bits {
2620290650Shselasky	u8         reserved_0[0x10];
2621290650Shselasky	u8         pkey[0x10];
2622290650Shselasky};
2623290650Shselasky
2624290650Shselaskystruct mlx5_ifc_array128_auto_bits {
2625290650Shselasky	u8         array128_auto[16][0x8];
2626290650Shselasky};
2627290650Shselasky
2628290650Shselaskyenum {
2629290650Shselasky	MLX5_HCA_VPORT_CONTEXT_FIELD_SELECT_PORT_GUID           = 0x0,
2630290650Shselasky	MLX5_HCA_VPORT_CONTEXT_FIELD_SELECT_NODE_GUID           = 0x1,
2631290650Shselasky	MLX5_HCA_VPORT_CONTEXT_FIELD_SELECT_VPORT_STATE_POLICY  = 0x2,
2632290650Shselasky};
2633290650Shselasky
2634290650Shselaskyenum {
2635290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_SLEEP                      = 0x1,
2636290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_POLLING                    = 0x2,
2637290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_DISABLED                   = 0x3,
2638290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_PORTCONFIGURATIONTRAINING  = 0x4,
2639290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_LINKUP                     = 0x5,
2640290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_LINKERRORRECOVERY          = 0x6,
2641290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_PHYSICAL_STATE_PHYTEST                    = 0x7,
2642290650Shselasky};
2643290650Shselasky
2644290650Shselaskyenum {
2645290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_POLICY_DOWN    = 0x0,
2646290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_POLICY_UP      = 0x1,
2647290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_POLICY_FOLLOW  = 0x2,
2648290650Shselasky};
2649290650Shselasky
2650290650Shselaskyenum {
2651290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_STATE_DOWN    = 0x1,
2652290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_STATE_INIT    = 0x2,
2653290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_STATE_ARM     = 0x3,
2654290650Shselasky	MLX5_HCA_VPORT_CONTEXT_PORT_STATE_ACTIVE  = 0x4,
2655290650Shselasky};
2656290650Shselasky
2657290650Shselaskyenum {
2658290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_DOWN    = 0x1,
2659290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_INIT    = 0x2,
2660290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_ARM     = 0x3,
2661290650Shselasky	MLX5_HCA_VPORT_CONTEXT_VPORT_STATE_ACTIVE  = 0x4,
2662290650Shselasky};
2663290650Shselasky
2664290650Shselaskystruct mlx5_ifc_hca_vport_context_bits {
2665290650Shselasky	u8         field_select[0x20];
2666290650Shselasky
2667290650Shselasky	u8         reserved_0[0xe0];
2668290650Shselasky
2669290650Shselasky	u8         sm_virt_aware[0x1];
2670290650Shselasky	u8         has_smi[0x1];
2671290650Shselasky	u8         has_raw[0x1];
2672290650Shselasky	u8         grh_required[0x1];
2673306233Shselasky	u8         reserved_1[0x1];
2674306233Shselasky	u8         min_wqe_inline_mode[0x3];
2675306233Shselasky	u8         reserved_2[0x8];
2676290650Shselasky	u8         port_physical_state[0x4];
2677290650Shselasky	u8         vport_state_policy[0x4];
2678290650Shselasky	u8         port_state[0x4];
2679290650Shselasky	u8         vport_state[0x4];
2680290650Shselasky
2681306233Shselasky	u8         reserved_3[0x20];
2682290650Shselasky
2683290650Shselasky	u8         system_image_guid[0x40];
2684290650Shselasky
2685290650Shselasky	u8         port_guid[0x40];
2686290650Shselasky
2687290650Shselasky	u8         node_guid[0x40];
2688290650Shselasky
2689290650Shselasky	u8         cap_mask1[0x20];
2690290650Shselasky
2691290650Shselasky	u8         cap_mask1_field_select[0x20];
2692290650Shselasky
2693290650Shselasky	u8         cap_mask2[0x20];
2694290650Shselasky
2695290650Shselasky	u8         cap_mask2_field_select[0x20];
2696290650Shselasky
2697306233Shselasky	u8         reserved_4[0x80];
2698290650Shselasky
2699290650Shselasky	u8         lid[0x10];
2700306233Shselasky	u8         reserved_5[0x4];
2701290650Shselasky	u8         init_type_reply[0x4];
2702290650Shselasky	u8         lmc[0x3];
2703290650Shselasky	u8         subnet_timeout[0x5];
2704290650Shselasky
2705290650Shselasky	u8         sm_lid[0x10];
2706290650Shselasky	u8         sm_sl[0x4];
2707306233Shselasky	u8         reserved_6[0xc];
2708290650Shselasky
2709290650Shselasky	u8         qkey_violation_counter[0x10];
2710290650Shselasky	u8         pkey_violation_counter[0x10];
2711290650Shselasky
2712306233Shselasky	u8         reserved_7[0xca0];
2713290650Shselasky};
2714290650Shselasky
2715290650Shselaskyunion mlx5_ifc_hca_cap_union_bits {
2716290650Shselasky	struct mlx5_ifc_cmd_hca_cap_bits cmd_hca_cap;
2717290650Shselasky	struct mlx5_ifc_odp_cap_bits odp_cap;
2718290650Shselasky	struct mlx5_ifc_atomic_caps_bits atomic_caps;
2719290650Shselasky	struct mlx5_ifc_roce_cap_bits roce_cap;
2720290650Shselasky	struct mlx5_ifc_per_protocol_networking_offload_caps_bits per_protocol_networking_offload_caps;
2721290650Shselasky	struct mlx5_ifc_flow_table_nic_cap_bits flow_table_nic_cap;
2722290650Shselasky	struct mlx5_ifc_flow_table_eswitch_cap_bits flow_table_eswitch_cap;
2723290650Shselasky	struct mlx5_ifc_e_switch_cap_bits e_switch_cap;
2724306233Shselasky	struct mlx5_ifc_snapshot_cap_bits snapshot_cap;
2725306233Shselasky	struct mlx5_ifc_debug_cap_bits diagnostic_counters_cap;
2726306233Shselasky	struct mlx5_ifc_qos_cap_bits qos_cap;
2727290650Shselasky	u8         reserved_0[0x8000];
2728290650Shselasky};
2729290650Shselasky
2730329200Shselaskyenum {
2731329200Shselasky	MLX5_FLOW_TABLE_CONTEXT_TABLE_MISS_ACTION_DEFAULT = 0x0,
2732329200Shselasky	MLX5_FLOW_TABLE_CONTEXT_TABLE_MISS_ACTION_IDENTIFIED = 0x1,
2733329200Shselasky};
2734329200Shselasky
2735329200Shselaskystruct mlx5_ifc_flow_table_context_bits {
2736329200Shselasky	u8         encap_en[0x1];
2737329200Shselasky	u8         decap_en[0x1];
2738329200Shselasky	u8         reserved_at_2[0x2];
2739329200Shselasky	u8         table_miss_action[0x4];
2740329200Shselasky	u8         level[0x8];
2741329200Shselasky	u8         reserved_at_10[0x8];
2742329200Shselasky	u8         log_size[0x8];
2743329200Shselasky
2744329200Shselasky	u8         reserved_at_20[0x8];
2745329200Shselasky	u8         table_miss_id[0x18];
2746329200Shselasky
2747329200Shselasky	u8         reserved_at_40[0x8];
2748329200Shselasky	u8         lag_master_next_table_id[0x18];
2749329200Shselasky
2750329200Shselasky	u8         reserved_at_60[0xe0];
2751329200Shselasky};
2752329200Shselasky
2753290650Shselaskystruct mlx5_ifc_esw_vport_context_bits {
2754290650Shselasky	u8         reserved_0[0x3];
2755290650Shselasky	u8         vport_svlan_strip[0x1];
2756290650Shselasky	u8         vport_cvlan_strip[0x1];
2757290650Shselasky	u8         vport_svlan_insert[0x1];
2758290650Shselasky	u8         vport_cvlan_insert[0x2];
2759290650Shselasky	u8         reserved_1[0x18];
2760290650Shselasky
2761290650Shselasky	u8         reserved_2[0x20];
2762290650Shselasky
2763290650Shselasky	u8         svlan_cfi[0x1];
2764290650Shselasky	u8         svlan_pcp[0x3];
2765290650Shselasky	u8         svlan_id[0xc];
2766290650Shselasky	u8         cvlan_cfi[0x1];
2767290650Shselasky	u8         cvlan_pcp[0x3];
2768290650Shselasky	u8         cvlan_id[0xc];
2769290650Shselasky
2770290650Shselasky	u8         reserved_3[0x7a0];
2771290650Shselasky};
2772290650Shselasky
2773290650Shselaskyenum {
2774290650Shselasky	MLX5_EQC_STATUS_OK                = 0x0,
2775290650Shselasky	MLX5_EQC_STATUS_EQ_WRITE_FAILURE  = 0xa,
2776290650Shselasky};
2777290650Shselasky
2778290650Shselaskyenum {
2779290650Shselasky	MLX5_EQ_STATE_ARMED = 0x9,
2780290650Shselasky	MLX5_EQ_STATE_FIRED = 0xa,
2781290650Shselasky};
2782290650Shselasky
2783290650Shselaskystruct mlx5_ifc_eqc_bits {
2784290650Shselasky	u8         status[0x4];
2785290650Shselasky	u8         reserved_0[0x9];
2786290650Shselasky	u8         ec[0x1];
2787290650Shselasky	u8         oi[0x1];
2788290650Shselasky	u8         reserved_1[0x5];
2789290650Shselasky	u8         st[0x4];
2790290650Shselasky	u8         reserved_2[0x8];
2791290650Shselasky
2792290650Shselasky	u8         reserved_3[0x20];
2793290650Shselasky
2794290650Shselasky	u8         reserved_4[0x14];
2795290650Shselasky	u8         page_offset[0x6];
2796290650Shselasky	u8         reserved_5[0x6];
2797290650Shselasky
2798290650Shselasky	u8         reserved_6[0x3];
2799290650Shselasky	u8         log_eq_size[0x5];
2800290650Shselasky	u8         uar_page[0x18];
2801290650Shselasky
2802290650Shselasky	u8         reserved_7[0x20];
2803290650Shselasky
2804290650Shselasky	u8         reserved_8[0x18];
2805290650Shselasky	u8         intr[0x8];
2806290650Shselasky
2807290650Shselasky	u8         reserved_9[0x3];
2808290650Shselasky	u8         log_page_size[0x5];
2809290650Shselasky	u8         reserved_10[0x18];
2810290650Shselasky
2811290650Shselasky	u8         reserved_11[0x60];
2812290650Shselasky
2813290650Shselasky	u8         reserved_12[0x8];
2814290650Shselasky	u8         consumer_counter[0x18];
2815290650Shselasky
2816290650Shselasky	u8         reserved_13[0x8];
2817290650Shselasky	u8         producer_counter[0x18];
2818290650Shselasky
2819290650Shselasky	u8         reserved_14[0x80];
2820290650Shselasky};
2821290650Shselasky
2822290650Shselaskyenum {
2823290650Shselasky	MLX5_DCTC_STATE_ACTIVE    = 0x0,
2824290650Shselasky	MLX5_DCTC_STATE_DRAINING  = 0x1,
2825290650Shselasky	MLX5_DCTC_STATE_DRAINED   = 0x2,
2826290650Shselasky};
2827290650Shselasky
2828290650Shselaskyenum {
2829290650Shselasky	MLX5_DCTC_CS_RES_DISABLE    = 0x0,
2830290650Shselasky	MLX5_DCTC_CS_RES_NA         = 0x1,
2831290650Shselasky	MLX5_DCTC_CS_RES_UP_TO_64B  = 0x2,
2832290650Shselasky};
2833290650Shselasky
2834290650Shselaskyenum {
2835290650Shselasky	MLX5_DCTC_MTU_256_BYTES  = 0x1,
2836290650Shselasky	MLX5_DCTC_MTU_512_BYTES  = 0x2,
2837290650Shselasky	MLX5_DCTC_MTU_1K_BYTES   = 0x3,
2838290650Shselasky	MLX5_DCTC_MTU_2K_BYTES   = 0x4,
2839290650Shselasky	MLX5_DCTC_MTU_4K_BYTES   = 0x5,
2840290650Shselasky};
2841290650Shselasky
2842290650Shselaskystruct mlx5_ifc_dctc_bits {
2843290650Shselasky	u8         reserved_0[0x4];
2844290650Shselasky	u8         state[0x4];
2845290650Shselasky	u8         reserved_1[0x18];
2846290650Shselasky
2847290650Shselasky	u8         reserved_2[0x8];
2848290650Shselasky	u8         user_index[0x18];
2849290650Shselasky
2850290650Shselasky	u8         reserved_3[0x8];
2851290650Shselasky	u8         cqn[0x18];
2852290650Shselasky
2853290650Shselasky	u8         counter_set_id[0x8];
2854290650Shselasky	u8         atomic_mode[0x4];
2855290650Shselasky	u8         rre[0x1];
2856290650Shselasky	u8         rwe[0x1];
2857290650Shselasky	u8         rae[0x1];
2858290650Shselasky	u8         atomic_like_write_en[0x1];
2859290650Shselasky	u8         latency_sensitive[0x1];
2860290650Shselasky	u8         rlky[0x1];
2861290650Shselasky	u8         reserved_4[0xe];
2862290650Shselasky
2863290650Shselasky	u8         reserved_5[0x8];
2864290650Shselasky	u8         cs_res[0x8];
2865290650Shselasky	u8         reserved_6[0x3];
2866290650Shselasky	u8         min_rnr_nak[0x5];
2867290650Shselasky	u8         reserved_7[0x8];
2868290650Shselasky
2869290650Shselasky	u8         reserved_8[0x8];
2870290650Shselasky	u8         srqn[0x18];
2871290650Shselasky
2872290650Shselasky	u8         reserved_9[0x8];
2873290650Shselasky	u8         pd[0x18];
2874290650Shselasky
2875290650Shselasky	u8         tclass[0x8];
2876290650Shselasky	u8         reserved_10[0x4];
2877290650Shselasky	u8         flow_label[0x14];
2878290650Shselasky
2879290650Shselasky	u8         dc_access_key[0x40];
2880290650Shselasky
2881290650Shselasky	u8         reserved_11[0x5];
2882290650Shselasky	u8         mtu[0x3];
2883290650Shselasky	u8         port[0x8];
2884290650Shselasky	u8         pkey_index[0x10];
2885290650Shselasky
2886290650Shselasky	u8         reserved_12[0x8];
2887290650Shselasky	u8         my_addr_index[0x8];
2888290650Shselasky	u8         reserved_13[0x8];
2889290650Shselasky	u8         hop_limit[0x8];
2890290650Shselasky
2891290650Shselasky	u8         dc_access_key_violation_count[0x20];
2892290650Shselasky
2893290650Shselasky	u8         reserved_14[0x14];
2894290650Shselasky	u8         dei_cfi[0x1];
2895290650Shselasky	u8         eth_prio[0x3];
2896290650Shselasky	u8         ecn[0x2];
2897290650Shselasky	u8         dscp[0x6];
2898290650Shselasky
2899290650Shselasky	u8         reserved_15[0x40];
2900290650Shselasky};
2901290650Shselasky
2902290650Shselaskyenum {
2903290650Shselasky	MLX5_CQC_STATUS_OK             = 0x0,
2904290650Shselasky	MLX5_CQC_STATUS_CQ_OVERFLOW    = 0x9,
2905290650Shselasky	MLX5_CQC_STATUS_CQ_WRITE_FAIL  = 0xa,
2906290650Shselasky};
2907290650Shselasky
2908290650Shselaskyenum {
2909290650Shselasky	CQE_SIZE_64                = 0x0,
2910290650Shselasky	CQE_SIZE_128               = 0x1,
2911290650Shselasky};
2912290650Shselasky
2913290650Shselaskyenum {
2914290650Shselasky	MLX5_CQ_PERIOD_MODE_START_FROM_EQE  = 0x0,
2915290650Shselasky	MLX5_CQ_PERIOD_MODE_START_FROM_CQE  = 0x1,
2916290650Shselasky};
2917290650Shselasky
2918290650Shselaskyenum {
2919290650Shselasky	MLX5_CQ_STATE_SOLICITED_ARMED                     = 0x6,
2920290650Shselasky	MLX5_CQ_STATE_ARMED                               = 0x9,
2921290650Shselasky	MLX5_CQ_STATE_FIRED                               = 0xa,
2922290650Shselasky};
2923290650Shselasky
2924290650Shselaskystruct mlx5_ifc_cqc_bits {
2925290650Shselasky	u8         status[0x4];
2926290650Shselasky	u8         reserved_0[0x4];
2927290650Shselasky	u8         cqe_sz[0x3];
2928290650Shselasky	u8         cc[0x1];
2929290650Shselasky	u8         reserved_1[0x1];
2930290650Shselasky	u8         scqe_break_moderation_en[0x1];
2931290650Shselasky	u8         oi[0x1];
2932290650Shselasky	u8         cq_period_mode[0x2];
2933290650Shselasky	u8         cqe_compression_en[0x1];
2934290650Shselasky	u8         mini_cqe_res_format[0x2];
2935290650Shselasky	u8         st[0x4];
2936290650Shselasky	u8         reserved_2[0x8];
2937290650Shselasky
2938290650Shselasky	u8         reserved_3[0x20];
2939290650Shselasky
2940290650Shselasky	u8         reserved_4[0x14];
2941290650Shselasky	u8         page_offset[0x6];
2942290650Shselasky	u8         reserved_5[0x6];
2943290650Shselasky
2944290650Shselasky	u8         reserved_6[0x3];
2945290650Shselasky	u8         log_cq_size[0x5];
2946290650Shselasky	u8         uar_page[0x18];
2947290650Shselasky
2948290650Shselasky	u8         reserved_7[0x4];
2949290650Shselasky	u8         cq_period[0xc];
2950290650Shselasky	u8         cq_max_count[0x10];
2951290650Shselasky
2952290650Shselasky	u8         reserved_8[0x18];
2953290650Shselasky	u8         c_eqn[0x8];
2954290650Shselasky
2955290650Shselasky	u8         reserved_9[0x3];
2956290650Shselasky	u8         log_page_size[0x5];
2957290650Shselasky	u8         reserved_10[0x18];
2958290650Shselasky
2959290650Shselasky	u8         reserved_11[0x20];
2960290650Shselasky
2961290650Shselasky	u8         reserved_12[0x8];
2962290650Shselasky	u8         last_notified_index[0x18];
2963290650Shselasky
2964290650Shselasky	u8         reserved_13[0x8];
2965290650Shselasky	u8         last_solicit_index[0x18];
2966290650Shselasky
2967290650Shselasky	u8         reserved_14[0x8];
2968290650Shselasky	u8         consumer_counter[0x18];
2969290650Shselasky
2970290650Shselasky	u8         reserved_15[0x8];
2971290650Shselasky	u8         producer_counter[0x18];
2972290650Shselasky
2973290650Shselasky	u8         reserved_16[0x40];
2974290650Shselasky
2975290650Shselasky	u8         dbr_addr[0x40];
2976290650Shselasky};
2977290650Shselasky
2978290650Shselaskyunion mlx5_ifc_cong_control_roce_ecn_auto_bits {
2979290650Shselasky	struct mlx5_ifc_cong_control_802_1qau_rp_bits cong_control_802_1qau_rp;
2980290650Shselasky	struct mlx5_ifc_cong_control_r_roce_ecn_rp_bits cong_control_r_roce_ecn_rp;
2981290650Shselasky	struct mlx5_ifc_cong_control_r_roce_ecn_np_bits cong_control_r_roce_ecn_np;
2982290650Shselasky	u8         reserved_0[0x800];
2983290650Shselasky};
2984290650Shselasky
2985290650Shselaskystruct mlx5_ifc_query_adapter_param_block_bits {
2986290650Shselasky	u8         reserved_0[0xc0];
2987290650Shselasky
2988290650Shselasky	u8         reserved_1[0x8];
2989290650Shselasky	u8         ieee_vendor_id[0x18];
2990290650Shselasky
2991290650Shselasky	u8         reserved_2[0x10];
2992290650Shselasky	u8         vsd_vendor_id[0x10];
2993290650Shselasky
2994290650Shselasky	u8         vsd[208][0x8];
2995290650Shselasky
2996290650Shselasky	u8         vsd_contd_psid[16][0x8];
2997290650Shselasky};
2998290650Shselasky
2999290650Shselaskyunion mlx5_ifc_modify_field_select_resize_field_select_auto_bits {
3000290650Shselasky	struct mlx5_ifc_modify_field_select_bits modify_field_select;
3001290650Shselasky	struct mlx5_ifc_resize_field_select_bits resize_field_select;
3002290650Shselasky	u8         reserved_0[0x20];
3003290650Shselasky};
3004290650Shselasky
3005290650Shselaskyunion mlx5_ifc_field_select_802_1_r_roce_auto_bits {
3006290650Shselasky	struct mlx5_ifc_field_select_802_1qau_rp_bits field_select_802_1qau_rp;
3007290650Shselasky	struct mlx5_ifc_field_select_r_roce_rp_bits field_select_r_roce_rp;
3008290650Shselasky	struct mlx5_ifc_field_select_r_roce_np_bits field_select_r_roce_np;
3009290650Shselasky	u8         reserved_0[0x20];
3010290650Shselasky};
3011290650Shselasky
3012290650Shselaskystruct mlx5_ifc_bufferx_reg_bits {
3013290650Shselasky	u8         reserved_0[0x6];
3014290650Shselasky	u8         lossy[0x1];
3015290650Shselasky	u8         epsb[0x1];
3016290650Shselasky	u8         reserved_1[0xc];
3017290650Shselasky	u8         size[0xc];
3018290650Shselasky
3019290650Shselasky	u8         xoff_threshold[0x10];
3020290650Shselasky	u8         xon_threshold[0x10];
3021290650Shselasky};
3022290650Shselasky
3023290650Shselaskystruct mlx5_ifc_config_item_bits {
3024290650Shselasky	u8         valid[0x2];
3025290650Shselasky	u8         reserved_0[0x2];
3026290650Shselasky	u8         header_type[0x2];
3027290650Shselasky	u8         reserved_1[0x2];
3028290650Shselasky	u8         default_location[0x1];
3029290650Shselasky	u8         reserved_2[0x7];
3030290650Shselasky	u8         version[0x4];
3031290650Shselasky	u8         reserved_3[0x3];
3032290650Shselasky	u8         length[0x9];
3033290650Shselasky
3034290650Shselasky	u8         type[0x20];
3035290650Shselasky
3036290650Shselasky	u8         reserved_4[0x10];
3037290650Shselasky	u8         crc16[0x10];
3038290650Shselasky};
3039290650Shselasky
3040290650Shselaskystruct mlx5_ifc_nodnic_port_config_reg_bits {
3041290650Shselasky	struct mlx5_ifc_nodnic_event_word_bits event;
3042290650Shselasky
3043290650Shselasky	u8         network_en[0x1];
3044290650Shselasky	u8         dma_en[0x1];
3045290650Shselasky	u8         promisc_en[0x1];
3046290650Shselasky	u8         promisc_multicast_en[0x1];
3047290650Shselasky	u8         reserved_0[0x17];
3048290650Shselasky	u8         receive_filter_en[0x5];
3049290650Shselasky
3050290650Shselasky	u8         reserved_1[0x10];
3051290650Shselasky	u8         mac_47_32[0x10];
3052290650Shselasky
3053290650Shselasky	u8         mac_31_0[0x20];
3054290650Shselasky
3055290650Shselasky	u8         receive_filters_mgid_mac[64][0x8];
3056290650Shselasky
3057290650Shselasky	u8         gid[16][0x8];
3058290650Shselasky
3059290650Shselasky	u8         reserved_2[0x10];
3060290650Shselasky	u8         lid[0x10];
3061290650Shselasky
3062290650Shselasky	u8         reserved_3[0xc];
3063290650Shselasky	u8         sm_sl[0x4];
3064290650Shselasky	u8         sm_lid[0x10];
3065290650Shselasky
3066290650Shselasky	u8         completion_address_63_32[0x20];
3067290650Shselasky
3068290650Shselasky	u8         completion_address_31_12[0x14];
3069290650Shselasky	u8         reserved_4[0x6];
3070290650Shselasky	u8         log_cq_size[0x6];
3071290650Shselasky
3072290650Shselasky	u8         working_buffer_address_63_32[0x20];
3073290650Shselasky
3074290650Shselasky	u8         working_buffer_address_31_12[0x14];
3075290650Shselasky	u8         reserved_5[0xc];
3076290650Shselasky
3077290650Shselasky	struct mlx5_ifc_nodnic_cq_arming_word_bits arm_cq;
3078290650Shselasky
3079290650Shselasky	u8         pkey_index[0x10];
3080290650Shselasky	u8         pkey[0x10];
3081290650Shselasky
3082290650Shselasky	struct mlx5_ifc_nodnic_ring_config_reg_bits send_ring0;
3083290650Shselasky
3084290650Shselasky	struct mlx5_ifc_nodnic_ring_config_reg_bits send_ring1;
3085290650Shselasky
3086290650Shselasky	struct mlx5_ifc_nodnic_ring_config_reg_bits receive_ring0;
3087290650Shselasky
3088290650Shselasky	struct mlx5_ifc_nodnic_ring_config_reg_bits receive_ring1;
3089290650Shselasky
3090290650Shselasky	u8         reserved_6[0x400];
3091290650Shselasky};
3092290650Shselasky
3093290650Shselaskyunion mlx5_ifc_event_auto_bits {
3094290650Shselasky	struct mlx5_ifc_comp_event_bits comp_event;
3095290650Shselasky	struct mlx5_ifc_dct_events_bits dct_events;
3096290650Shselasky	struct mlx5_ifc_qp_events_bits qp_events;
3097290650Shselasky	struct mlx5_ifc_wqe_associated_page_fault_event_bits wqe_associated_page_fault_event;
3098290650Shselasky	struct mlx5_ifc_rdma_page_fault_event_bits rdma_page_fault_event;
3099290650Shselasky	struct mlx5_ifc_cq_error_bits cq_error;
3100290650Shselasky	struct mlx5_ifc_dropped_packet_logged_bits dropped_packet_logged;
3101290650Shselasky	struct mlx5_ifc_port_state_change_event_bits port_state_change_event;
3102290650Shselasky	struct mlx5_ifc_gpio_event_bits gpio_event;
3103290650Shselasky	struct mlx5_ifc_db_bf_congestion_event_bits db_bf_congestion_event;
3104290650Shselasky	struct mlx5_ifc_stall_vl_event_bits stall_vl_event;
3105290650Shselasky	struct mlx5_ifc_cmd_inter_comp_event_bits cmd_inter_comp_event;
3106290650Shselasky	struct mlx5_ifc_pages_req_event_bits pages_req_event;
3107290650Shselasky	struct mlx5_ifc_nic_vport_change_event_bits nic_vport_change_event;
3108290650Shselasky	u8         reserved_0[0xe0];
3109290650Shselasky};
3110290650Shselasky
3111290650Shselaskystruct mlx5_ifc_health_buffer_bits {
3112290650Shselasky	u8         reserved_0[0x100];
3113290650Shselasky
3114290650Shselasky	u8         assert_existptr[0x20];
3115290650Shselasky
3116290650Shselasky	u8         assert_callra[0x20];
3117290650Shselasky
3118290650Shselasky	u8         reserved_1[0x40];
3119290650Shselasky
3120290650Shselasky	u8         fw_version[0x20];
3121290650Shselasky
3122290650Shselasky	u8         hw_id[0x20];
3123290650Shselasky
3124290650Shselasky	u8         reserved_2[0x20];
3125290650Shselasky
3126290650Shselasky	u8         irisc_index[0x8];
3127290650Shselasky	u8         synd[0x8];
3128290650Shselasky	u8         ext_synd[0x10];
3129290650Shselasky};
3130290650Shselasky
3131290650Shselaskystruct mlx5_ifc_register_loopback_control_bits {
3132290650Shselasky	u8         no_lb[0x1];
3133290650Shselasky	u8         reserved_0[0x7];
3134290650Shselasky	u8         port[0x8];
3135290650Shselasky	u8         reserved_1[0x10];
3136290650Shselasky
3137290650Shselasky	u8         reserved_2[0x60];
3138290650Shselasky};
3139290650Shselasky
3140306233Shselaskystruct mlx5_ifc_lrh_bits {
3141306233Shselasky	u8	vl[4];
3142306233Shselasky	u8	lver[4];
3143306233Shselasky	u8	sl[4];
3144306233Shselasky	u8	reserved2[2];
3145306233Shselasky	u8	lnh[2];
3146306233Shselasky	u8	dlid[16];
3147306233Shselasky	u8	reserved5[5];
3148306233Shselasky	u8	pkt_len[11];
3149306233Shselasky	u8	slid[16];
3150306233Shselasky};
3151306233Shselasky
3152290650Shselaskystruct mlx5_ifc_icmd_set_wol_rol_out_bits {
3153290650Shselasky	u8         reserved_0[0x40];
3154290650Shselasky
3155290650Shselasky	u8         reserved_1[0x10];
3156290650Shselasky	u8         rol_mode[0x8];
3157290650Shselasky	u8         wol_mode[0x8];
3158290650Shselasky};
3159290650Shselasky
3160290650Shselaskystruct mlx5_ifc_icmd_set_wol_rol_in_bits {
3161290650Shselasky	u8         reserved_0[0x40];
3162290650Shselasky
3163290650Shselasky	u8         rol_mode_valid[0x1];
3164290650Shselasky	u8         wol_mode_valid[0x1];
3165290650Shselasky	u8         reserved_1[0xe];
3166290650Shselasky	u8         rol_mode[0x8];
3167290650Shselasky	u8         wol_mode[0x8];
3168290650Shselasky
3169290650Shselasky	u8         reserved_2[0x7a0];
3170290650Shselasky};
3171290650Shselasky
3172290650Shselaskystruct mlx5_ifc_icmd_set_virtual_mac_in_bits {
3173290650Shselasky	u8         virtual_mac_en[0x1];
3174290650Shselasky	u8         mac_aux_v[0x1];
3175290650Shselasky	u8         reserved_0[0x1e];
3176290650Shselasky
3177290650Shselasky	u8         reserved_1[0x40];
3178290650Shselasky
3179290650Shselasky	struct mlx5_ifc_mac_address_layout_bits virtual_mac;
3180290650Shselasky
3181290650Shselasky	u8         reserved_2[0x760];
3182290650Shselasky};
3183290650Shselasky
3184290650Shselaskystruct mlx5_ifc_icmd_query_virtual_mac_out_bits {
3185290650Shselasky	u8         virtual_mac_en[0x1];
3186290650Shselasky	u8         mac_aux_v[0x1];
3187290650Shselasky	u8         reserved_0[0x1e];
3188290650Shselasky
3189290650Shselasky	struct mlx5_ifc_mac_address_layout_bits permanent_mac;
3190290650Shselasky
3191290650Shselasky	struct mlx5_ifc_mac_address_layout_bits virtual_mac;
3192290650Shselasky
3193290650Shselasky	u8         reserved_1[0x760];
3194290650Shselasky};
3195290650Shselasky
3196290650Shselaskystruct mlx5_ifc_icmd_query_fw_info_out_bits {
3197290650Shselasky	struct mlx5_ifc_fw_version_bits fw_version;
3198290650Shselasky
3199290650Shselasky	u8         reserved_0[0x10];
3200290650Shselasky	u8         hash_signature[0x10];
3201290650Shselasky
3202290650Shselasky	u8         psid[16][0x8];
3203290650Shselasky
3204290650Shselasky	u8         reserved_1[0x6e0];
3205290650Shselasky};
3206290650Shselasky
3207290650Shselaskystruct mlx5_ifc_icmd_query_cap_in_bits {
3208290650Shselasky	u8         reserved_0[0x10];
3209290650Shselasky	u8         capability_group[0x10];
3210290650Shselasky};
3211290650Shselasky
3212290650Shselaskystruct mlx5_ifc_icmd_query_cap_general_bits {
3213290650Shselasky	u8         nv_access[0x1];
3214290650Shselasky	u8         fw_info_psid[0x1];
3215290650Shselasky	u8         reserved_0[0x1e];
3216290650Shselasky
3217290650Shselasky	u8         reserved_1[0x16];
3218290650Shselasky	u8         rol_s[0x1];
3219290650Shselasky	u8         rol_g[0x1];
3220290650Shselasky	u8         reserved_2[0x1];
3221290650Shselasky	u8         wol_s[0x1];
3222290650Shselasky	u8         wol_g[0x1];
3223290650Shselasky	u8         wol_a[0x1];
3224290650Shselasky	u8         wol_b[0x1];
3225290650Shselasky	u8         wol_m[0x1];
3226290650Shselasky	u8         wol_u[0x1];
3227290650Shselasky	u8         wol_p[0x1];
3228290650Shselasky};
3229290650Shselasky
3230290650Shselaskystruct mlx5_ifc_icmd_ocbb_query_header_stats_out_bits {
3231290650Shselasky	u8         status[0x8];
3232290650Shselasky	u8         reserved_0[0x18];
3233290650Shselasky
3234290650Shselasky	u8         reserved_1[0x7e0];
3235290650Shselasky};
3236290650Shselasky
3237290650Shselaskystruct mlx5_ifc_icmd_ocbb_query_etoc_stats_out_bits {
3238290650Shselasky	u8         status[0x8];
3239290650Shselasky	u8         reserved_0[0x18];
3240290650Shselasky
3241290650Shselasky	u8         reserved_1[0x7e0];
3242290650Shselasky};
3243290650Shselasky
3244290650Shselaskystruct mlx5_ifc_icmd_ocbb_init_in_bits {
3245290650Shselasky	u8         address_hi[0x20];
3246290650Shselasky
3247290650Shselasky	u8         address_lo[0x20];
3248290650Shselasky
3249290650Shselasky	u8         reserved_0[0x7c0];
3250290650Shselasky};
3251290650Shselasky
3252290650Shselaskystruct mlx5_ifc_icmd_init_ocsd_in_bits {
3253290650Shselasky	u8         reserved_0[0x20];
3254290650Shselasky
3255290650Shselasky	u8         address_hi[0x20];
3256290650Shselasky
3257290650Shselasky	u8         address_lo[0x20];
3258290650Shselasky
3259290650Shselasky	u8         reserved_1[0x7a0];
3260290650Shselasky};
3261290650Shselasky
3262290650Shselaskystruct mlx5_ifc_icmd_access_reg_out_bits {
3263290650Shselasky	u8         reserved_0[0x11];
3264290650Shselasky	u8         status[0x7];
3265290650Shselasky	u8         reserved_1[0x8];
3266290650Shselasky
3267290650Shselasky	u8         register_id[0x10];
3268290650Shselasky	u8         reserved_2[0x10];
3269290650Shselasky
3270290650Shselasky	u8         reserved_3[0x40];
3271290650Shselasky
3272290650Shselasky	u8         reserved_4[0x5];
3273290650Shselasky	u8         len[0xb];
3274290650Shselasky	u8         reserved_5[0x10];
3275290650Shselasky
3276290650Shselasky	u8         register_data[0][0x20];
3277290650Shselasky};
3278290650Shselasky
3279290650Shselaskyenum {
3280290650Shselasky	MLX5_ICMD_ACCESS_REG_IN_METHOD_QUERY  = 0x1,
3281290650Shselasky	MLX5_ICMD_ACCESS_REG_IN_METHOD_WRITE  = 0x2,
3282290650Shselasky};
3283290650Shselasky
3284290650Shselaskystruct mlx5_ifc_icmd_access_reg_in_bits {
3285290650Shselasky	u8         constant_1[0x5];
3286290650Shselasky	u8         constant_2[0xb];
3287290650Shselasky	u8         reserved_0[0x10];
3288290650Shselasky
3289290650Shselasky	u8         register_id[0x10];
3290290650Shselasky	u8         reserved_1[0x1];
3291290650Shselasky	u8         method[0x7];
3292290650Shselasky	u8         constant_3[0x8];
3293290650Shselasky
3294290650Shselasky	u8         reserved_2[0x40];
3295290650Shselasky
3296290650Shselasky	u8         constant_4[0x5];
3297290650Shselasky	u8         len[0xb];
3298290650Shselasky	u8         reserved_3[0x10];
3299290650Shselasky
3300290650Shselasky	u8         register_data[0][0x20];
3301290650Shselasky};
3302290650Shselasky
3303331810Shselaskyenum {
3304331810Shselasky	MLX5_TEARDOWN_HCA_OUT_FORCE_STATE_SUCCESS = 0x0,
3305331810Shselasky	MLX5_TEARDOWN_HCA_OUT_FORCE_STATE_FAIL = 0x1,
3306331810Shselasky};
3307331810Shselasky
3308290650Shselaskystruct mlx5_ifc_teardown_hca_out_bits {
3309290650Shselasky	u8         status[0x8];
3310290650Shselasky	u8         reserved_0[0x18];
3311290650Shselasky
3312290650Shselasky	u8         syndrome[0x20];
3313290650Shselasky
3314331810Shselasky	u8         reserved_1[0x3f];
3315331810Shselasky
3316347818Shselasky	u8	   state[0x1];
3317290650Shselasky};
3318290650Shselasky
3319290650Shselaskyenum {
3320290650Shselasky	MLX5_TEARDOWN_HCA_IN_PROFILE_GRACEFUL_CLOSE  = 0x0,
3321331810Shselasky	MLX5_TEARDOWN_HCA_IN_PROFILE_FORCE_CLOSE     = 0x1,
3322347818Shselasky	MLX5_TEARDOWN_HCA_IN_PROFILE_PREPARE_FAST_TEARDOWN = 0x2,
3323290650Shselasky};
3324290650Shselasky
3325290650Shselaskystruct mlx5_ifc_teardown_hca_in_bits {
3326290650Shselasky	u8         opcode[0x10];
3327290650Shselasky	u8         reserved_0[0x10];
3328290650Shselasky
3329290650Shselasky	u8         reserved_1[0x10];
3330290650Shselasky	u8         op_mod[0x10];
3331290650Shselasky
3332290650Shselasky	u8         reserved_2[0x10];
3333290650Shselasky	u8         profile[0x10];
3334290650Shselasky
3335290650Shselasky	u8         reserved_3[0x20];
3336290650Shselasky};
3337290650Shselasky
3338321992Shselaskystruct mlx5_ifc_set_delay_drop_params_out_bits {
3339321992Shselasky	u8         status[0x8];
3340321992Shselasky	u8         reserved_at_8[0x18];
3341321992Shselasky
3342321992Shselasky	u8         syndrome[0x20];
3343321992Shselasky
3344321992Shselasky	u8         reserved_at_40[0x40];
3345321992Shselasky};
3346321992Shselasky
3347321992Shselaskystruct mlx5_ifc_set_delay_drop_params_in_bits {
3348321992Shselasky	u8         opcode[0x10];
3349321992Shselasky	u8         reserved_at_10[0x10];
3350321992Shselasky
3351321992Shselasky	u8         reserved_at_20[0x10];
3352321992Shselasky	u8         op_mod[0x10];
3353321992Shselasky
3354321992Shselasky	u8         reserved_at_40[0x20];
3355321992Shselasky
3356321992Shselasky	u8         reserved_at_60[0x10];
3357321992Shselasky	u8         delay_drop_timeout[0x10];
3358321992Shselasky};
3359321992Shselasky
3360321992Shselaskystruct mlx5_ifc_query_delay_drop_params_out_bits {
3361321992Shselasky	u8         status[0x8];
3362321992Shselasky	u8         reserved_at_8[0x18];
3363321992Shselasky
3364321992Shselasky	u8         syndrome[0x20];
3365321992Shselasky
3366321992Shselasky	u8         reserved_at_40[0x20];
3367321992Shselasky
3368321992Shselasky	u8         reserved_at_60[0x10];
3369321992Shselasky	u8         delay_drop_timeout[0x10];
3370321992Shselasky};
3371321992Shselasky
3372321992Shselaskystruct mlx5_ifc_query_delay_drop_params_in_bits {
3373321992Shselasky	u8         opcode[0x10];
3374321992Shselasky	u8         reserved_at_10[0x10];
3375321992Shselasky
3376321992Shselasky	u8         reserved_at_20[0x10];
3377321992Shselasky	u8         op_mod[0x10];
3378321992Shselasky
3379321992Shselasky	u8         reserved_at_40[0x40];
3380321992Shselasky};
3381321992Shselasky
3382290650Shselaskystruct mlx5_ifc_suspend_qp_out_bits {
3383290650Shselasky	u8         status[0x8];
3384290650Shselasky	u8         reserved_0[0x18];
3385290650Shselasky
3386290650Shselasky	u8         syndrome[0x20];
3387290650Shselasky
3388290650Shselasky	u8         reserved_1[0x40];
3389290650Shselasky};
3390290650Shselasky
3391290650Shselaskystruct mlx5_ifc_suspend_qp_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[0x8];
3399290650Shselasky	u8         qpn[0x18];
3400290650Shselasky
3401290650Shselasky	u8         reserved_3[0x20];
3402290650Shselasky};
3403290650Shselasky
3404290650Shselaskystruct mlx5_ifc_sqerr2rts_qp_out_bits {
3405290650Shselasky	u8         status[0x8];
3406290650Shselasky	u8         reserved_0[0x18];
3407290650Shselasky
3408290650Shselasky	u8         syndrome[0x20];
3409290650Shselasky
3410290650Shselasky	u8         reserved_1[0x40];
3411290650Shselasky};
3412290650Shselasky
3413290650Shselaskystruct mlx5_ifc_sqerr2rts_qp_in_bits {
3414290650Shselasky	u8         opcode[0x10];
3415290650Shselasky	u8         reserved_0[0x10];
3416290650Shselasky
3417290650Shselasky	u8         reserved_1[0x10];
3418290650Shselasky	u8         op_mod[0x10];
3419290650Shselasky
3420290650Shselasky	u8         reserved_2[0x8];
3421290650Shselasky	u8         qpn[0x18];
3422290650Shselasky
3423290650Shselasky	u8         reserved_3[0x20];
3424290650Shselasky
3425290650Shselasky	u8         opt_param_mask[0x20];
3426290650Shselasky
3427290650Shselasky	u8         reserved_4[0x20];
3428290650Shselasky
3429290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
3430290650Shselasky
3431290650Shselasky	u8         reserved_5[0x80];
3432290650Shselasky};
3433290650Shselasky
3434290650Shselaskystruct mlx5_ifc_sqd2rts_qp_out_bits {
3435290650Shselasky	u8         status[0x8];
3436290650Shselasky	u8         reserved_0[0x18];
3437290650Shselasky
3438290650Shselasky	u8         syndrome[0x20];
3439290650Shselasky
3440290650Shselasky	u8         reserved_1[0x40];
3441290650Shselasky};
3442290650Shselasky
3443290650Shselaskystruct mlx5_ifc_sqd2rts_qp_in_bits {
3444290650Shselasky	u8         opcode[0x10];
3445290650Shselasky	u8         reserved_0[0x10];
3446290650Shselasky
3447290650Shselasky	u8         reserved_1[0x10];
3448290650Shselasky	u8         op_mod[0x10];
3449290650Shselasky
3450290650Shselasky	u8         reserved_2[0x8];
3451290650Shselasky	u8         qpn[0x18];
3452290650Shselasky
3453290650Shselasky	u8         reserved_3[0x20];
3454290650Shselasky
3455290650Shselasky	u8         opt_param_mask[0x20];
3456290650Shselasky
3457290650Shselasky	u8         reserved_4[0x20];
3458290650Shselasky
3459290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
3460290650Shselasky
3461290650Shselasky	u8         reserved_5[0x80];
3462290650Shselasky};
3463290650Shselasky
3464290650Shselaskystruct mlx5_ifc_set_wol_rol_out_bits {
3465290650Shselasky	u8         status[0x8];
3466290650Shselasky	u8         reserved_0[0x18];
3467290650Shselasky
3468290650Shselasky	u8         syndrome[0x20];
3469290650Shselasky
3470290650Shselasky	u8         reserved_1[0x40];
3471290650Shselasky};
3472290650Shselasky
3473290650Shselaskystruct mlx5_ifc_set_wol_rol_in_bits {
3474290650Shselasky	u8         opcode[0x10];
3475290650Shselasky	u8         reserved_0[0x10];
3476290650Shselasky
3477290650Shselasky	u8         reserved_1[0x10];
3478290650Shselasky	u8         op_mod[0x10];
3479290650Shselasky
3480290650Shselasky	u8         rol_mode_valid[0x1];
3481290650Shselasky	u8         wol_mode_valid[0x1];
3482290650Shselasky	u8         reserved_2[0xe];
3483290650Shselasky	u8         rol_mode[0x8];
3484290650Shselasky	u8         wol_mode[0x8];
3485290650Shselasky
3486290650Shselasky	u8         reserved_3[0x20];
3487290650Shselasky};
3488290650Shselasky
3489290650Shselaskystruct mlx5_ifc_set_roce_address_out_bits {
3490290650Shselasky	u8         status[0x8];
3491290650Shselasky	u8         reserved_0[0x18];
3492290650Shselasky
3493290650Shselasky	u8         syndrome[0x20];
3494290650Shselasky
3495290650Shselasky	u8         reserved_1[0x40];
3496290650Shselasky};
3497290650Shselasky
3498290650Shselaskystruct mlx5_ifc_set_roce_address_in_bits {
3499290650Shselasky	u8         opcode[0x10];
3500290650Shselasky	u8         reserved_0[0x10];
3501290650Shselasky
3502290650Shselasky	u8         reserved_1[0x10];
3503290650Shselasky	u8         op_mod[0x10];
3504290650Shselasky
3505290650Shselasky	u8         roce_address_index[0x10];
3506290650Shselasky	u8         reserved_2[0x10];
3507290650Shselasky
3508290650Shselasky	u8         reserved_3[0x20];
3509290650Shselasky
3510290650Shselasky	struct mlx5_ifc_roce_addr_layout_bits roce_address;
3511290650Shselasky};
3512290650Shselasky
3513290650Shselaskystruct mlx5_ifc_set_rdb_out_bits {
3514290650Shselasky	u8         status[0x8];
3515290650Shselasky	u8         reserved_0[0x18];
3516290650Shselasky
3517290650Shselasky	u8         syndrome[0x20];
3518290650Shselasky
3519290650Shselasky	u8         reserved_1[0x40];
3520290650Shselasky};
3521290650Shselasky
3522290650Shselaskystruct mlx5_ifc_set_rdb_in_bits {
3523290650Shselasky	u8         opcode[0x10];
3524290650Shselasky	u8         reserved_0[0x10];
3525290650Shselasky
3526290650Shselasky	u8         reserved_1[0x10];
3527290650Shselasky	u8         op_mod[0x10];
3528290650Shselasky
3529290650Shselasky	u8         reserved_2[0x8];
3530290650Shselasky	u8         qpn[0x18];
3531290650Shselasky
3532290650Shselasky	u8         reserved_3[0x18];
3533290650Shselasky	u8         rdb_list_size[0x8];
3534290650Shselasky
3535290650Shselasky	struct mlx5_ifc_rdbc_bits rdb_context[0];
3536290650Shselasky};
3537290650Shselasky
3538290650Shselaskystruct mlx5_ifc_set_mad_demux_out_bits {
3539290650Shselasky	u8         status[0x8];
3540290650Shselasky	u8         reserved_0[0x18];
3541290650Shselasky
3542290650Shselasky	u8         syndrome[0x20];
3543290650Shselasky
3544290650Shselasky	u8         reserved_1[0x40];
3545290650Shselasky};
3546290650Shselasky
3547290650Shselaskyenum {
3548290650Shselasky	MLX5_SET_MAD_DEMUX_IN_DEMUX_MODE_PASS_ALL   = 0x0,
3549290650Shselasky	MLX5_SET_MAD_DEMUX_IN_DEMUX_MODE_SELECTIVE  = 0x2,
3550290650Shselasky};
3551290650Shselasky
3552290650Shselaskystruct mlx5_ifc_set_mad_demux_in_bits {
3553290650Shselasky	u8         opcode[0x10];
3554290650Shselasky	u8         reserved_0[0x10];
3555290650Shselasky
3556290650Shselasky	u8         reserved_1[0x10];
3557290650Shselasky	u8         op_mod[0x10];
3558290650Shselasky
3559290650Shselasky	u8         reserved_2[0x20];
3560290650Shselasky
3561290650Shselasky	u8         reserved_3[0x6];
3562290650Shselasky	u8         demux_mode[0x2];
3563290650Shselasky	u8         reserved_4[0x18];
3564290650Shselasky};
3565290650Shselasky
3566290650Shselaskystruct mlx5_ifc_set_l2_table_entry_out_bits {
3567290650Shselasky	u8         status[0x8];
3568290650Shselasky	u8         reserved_0[0x18];
3569290650Shselasky
3570290650Shselasky	u8         syndrome[0x20];
3571290650Shselasky
3572290650Shselasky	u8         reserved_1[0x40];
3573290650Shselasky};
3574290650Shselasky
3575290650Shselaskystruct mlx5_ifc_set_l2_table_entry_in_bits {
3576290650Shselasky	u8         opcode[0x10];
3577290650Shselasky	u8         reserved_0[0x10];
3578290650Shselasky
3579290650Shselasky	u8         reserved_1[0x10];
3580290650Shselasky	u8         op_mod[0x10];
3581290650Shselasky
3582290650Shselasky	u8         reserved_2[0x60];
3583290650Shselasky
3584290650Shselasky	u8         reserved_3[0x8];
3585290650Shselasky	u8         table_index[0x18];
3586290650Shselasky
3587290650Shselasky	u8         reserved_4[0x20];
3588290650Shselasky
3589290650Shselasky	u8         reserved_5[0x13];
3590290650Shselasky	u8         vlan_valid[0x1];
3591290650Shselasky	u8         vlan[0xc];
3592290650Shselasky
3593290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_address;
3594290650Shselasky
3595290650Shselasky	u8         reserved_6[0xc0];
3596290650Shselasky};
3597290650Shselasky
3598290650Shselaskystruct mlx5_ifc_set_issi_out_bits {
3599290650Shselasky	u8         status[0x8];
3600290650Shselasky	u8         reserved_0[0x18];
3601290650Shselasky
3602290650Shselasky	u8         syndrome[0x20];
3603290650Shselasky
3604290650Shselasky	u8         reserved_1[0x40];
3605290650Shselasky};
3606290650Shselasky
3607290650Shselaskystruct mlx5_ifc_set_issi_in_bits {
3608290650Shselasky	u8         opcode[0x10];
3609290650Shselasky	u8         reserved_0[0x10];
3610290650Shselasky
3611290650Shselasky	u8         reserved_1[0x10];
3612290650Shselasky	u8         op_mod[0x10];
3613290650Shselasky
3614290650Shselasky	u8         reserved_2[0x10];
3615290650Shselasky	u8         current_issi[0x10];
3616290650Shselasky
3617290650Shselasky	u8         reserved_3[0x20];
3618290650Shselasky};
3619290650Shselasky
3620290650Shselaskystruct mlx5_ifc_set_hca_cap_out_bits {
3621290650Shselasky	u8         status[0x8];
3622290650Shselasky	u8         reserved_0[0x18];
3623290650Shselasky
3624290650Shselasky	u8         syndrome[0x20];
3625290650Shselasky
3626290650Shselasky	u8         reserved_1[0x40];
3627290650Shselasky};
3628290650Shselasky
3629290650Shselaskystruct mlx5_ifc_set_hca_cap_in_bits {
3630290650Shselasky	u8         opcode[0x10];
3631290650Shselasky	u8         reserved_0[0x10];
3632290650Shselasky
3633290650Shselasky	u8         reserved_1[0x10];
3634290650Shselasky	u8         op_mod[0x10];
3635290650Shselasky
3636290650Shselasky	u8         reserved_2[0x40];
3637290650Shselasky
3638290650Shselasky	union mlx5_ifc_hca_cap_union_bits capability;
3639290650Shselasky};
3640290650Shselasky
3641306233Shselaskyenum {
3642306233Shselasky	MLX5_SET_FTE_MODIFY_ENABLE_MASK_ACTION			= 0x0,
3643306233Shselasky	MLX5_SET_FTE_MODIFY_ENABLE_MASK_FLOW_TAG		= 0x1,
3644306233Shselasky	MLX5_SET_FTE_MODIFY_ENABLE_MASK_DESTINATION_LIST	= 0x2,
3645306233Shselasky	MLX5_SET_FTE_MODIFY_ENABLE_MASK_FLOW_COUNTERS		= 0x3
3646306233Shselasky};
3647306233Shselasky
3648290650Shselaskystruct mlx5_ifc_set_flow_table_root_out_bits {
3649290650Shselasky	u8         status[0x8];
3650290650Shselasky	u8         reserved_0[0x18];
3651290650Shselasky
3652290650Shselasky	u8         syndrome[0x20];
3653290650Shselasky
3654290650Shselasky	u8         reserved_1[0x40];
3655290650Shselasky};
3656290650Shselasky
3657290650Shselaskystruct mlx5_ifc_set_flow_table_root_in_bits {
3658290650Shselasky	u8         opcode[0x10];
3659290650Shselasky	u8         reserved_0[0x10];
3660290650Shselasky
3661290650Shselasky	u8         reserved_1[0x10];
3662290650Shselasky	u8         op_mod[0x10];
3663290650Shselasky
3664290650Shselasky	u8         other_vport[0x1];
3665290650Shselasky	u8         reserved_2[0xf];
3666290650Shselasky	u8         vport_number[0x10];
3667290650Shselasky
3668290650Shselasky	u8         reserved_3[0x20];
3669290650Shselasky
3670290650Shselasky	u8         table_type[0x8];
3671290650Shselasky	u8         reserved_4[0x18];
3672290650Shselasky
3673290650Shselasky	u8         reserved_5[0x8];
3674290650Shselasky	u8         table_id[0x18];
3675290650Shselasky
3676306233Shselasky	u8         reserved_6[0x8];
3677306233Shselasky	u8         underlay_qpn[0x18];
3678306233Shselasky
3679306233Shselasky	u8         reserved_7[0x120];
3680290650Shselasky};
3681290650Shselasky
3682290650Shselaskystruct mlx5_ifc_set_fte_out_bits {
3683290650Shselasky	u8         status[0x8];
3684290650Shselasky	u8         reserved_0[0x18];
3685290650Shselasky
3686290650Shselasky	u8         syndrome[0x20];
3687290650Shselasky
3688290650Shselasky	u8         reserved_1[0x40];
3689290650Shselasky};
3690290650Shselasky
3691290650Shselaskystruct mlx5_ifc_set_fte_in_bits {
3692290650Shselasky	u8         opcode[0x10];
3693290650Shselasky	u8         reserved_0[0x10];
3694290650Shselasky
3695290650Shselasky	u8         reserved_1[0x10];
3696290650Shselasky	u8         op_mod[0x10];
3697290650Shselasky
3698290650Shselasky	u8         other_vport[0x1];
3699290650Shselasky	u8         reserved_2[0xf];
3700290650Shselasky	u8         vport_number[0x10];
3701290650Shselasky
3702290650Shselasky	u8         reserved_3[0x20];
3703290650Shselasky
3704290650Shselasky	u8         table_type[0x8];
3705290650Shselasky	u8         reserved_4[0x18];
3706290650Shselasky
3707290650Shselasky	u8         reserved_5[0x8];
3708290650Shselasky	u8         table_id[0x18];
3709290650Shselasky
3710290650Shselasky	u8         reserved_6[0x18];
3711290650Shselasky	u8         modify_enable_mask[0x8];
3712290650Shselasky
3713290650Shselasky	u8         reserved_7[0x20];
3714290650Shselasky
3715290650Shselasky	u8         flow_index[0x20];
3716290650Shselasky
3717290650Shselasky	u8         reserved_8[0xe0];
3718290650Shselasky
3719290650Shselasky	struct mlx5_ifc_flow_context_bits flow_context;
3720290650Shselasky};
3721290650Shselasky
3722290650Shselaskystruct mlx5_ifc_set_driver_version_out_bits {
3723290650Shselasky	u8         status[0x8];
3724290650Shselasky	u8         reserved_0[0x18];
3725290650Shselasky
3726290650Shselasky	u8         syndrome[0x20];
3727290650Shselasky
3728290650Shselasky	u8         reserved_1[0x40];
3729290650Shselasky};
3730290650Shselasky
3731290650Shselaskystruct mlx5_ifc_set_driver_version_in_bits {
3732290650Shselasky	u8         opcode[0x10];
3733290650Shselasky	u8         reserved_0[0x10];
3734290650Shselasky
3735290650Shselasky	u8         reserved_1[0x10];
3736290650Shselasky	u8         op_mod[0x10];
3737290650Shselasky
3738290650Shselasky	u8         reserved_2[0x40];
3739290650Shselasky
3740290650Shselasky	u8         driver_version[64][0x8];
3741290650Shselasky};
3742290650Shselasky
3743290650Shselaskystruct mlx5_ifc_set_dc_cnak_trace_out_bits {
3744290650Shselasky	u8         status[0x8];
3745290650Shselasky	u8         reserved_0[0x18];
3746290650Shselasky
3747290650Shselasky	u8         syndrome[0x20];
3748290650Shselasky
3749290650Shselasky	u8         reserved_1[0x40];
3750290650Shselasky};
3751290650Shselasky
3752290650Shselaskystruct mlx5_ifc_set_dc_cnak_trace_in_bits {
3753290650Shselasky	u8         opcode[0x10];
3754290650Shselasky	u8         reserved_0[0x10];
3755290650Shselasky
3756290650Shselasky	u8         reserved_1[0x10];
3757290650Shselasky	u8         op_mod[0x10];
3758290650Shselasky
3759290650Shselasky	u8         enable[0x1];
3760290650Shselasky	u8         reserved_2[0x1f];
3761290650Shselasky
3762290650Shselasky	u8         reserved_3[0x160];
3763290650Shselasky
3764290650Shselasky	struct mlx5_ifc_cmd_pas_bits pas;
3765290650Shselasky};
3766290650Shselasky
3767290650Shselaskystruct mlx5_ifc_set_burst_size_out_bits {
3768290650Shselasky	u8         status[0x8];
3769290650Shselasky	u8         reserved_0[0x18];
3770290650Shselasky
3771290650Shselasky	u8         syndrome[0x20];
3772290650Shselasky
3773290650Shselasky	u8         reserved_1[0x40];
3774290650Shselasky};
3775290650Shselasky
3776290650Shselaskystruct mlx5_ifc_set_burst_size_in_bits {
3777290650Shselasky	u8         opcode[0x10];
3778290650Shselasky	u8         reserved_0[0x10];
3779290650Shselasky
3780290650Shselasky	u8         reserved_1[0x10];
3781290650Shselasky	u8         op_mod[0x10];
3782290650Shselasky
3783290650Shselasky	u8         reserved_2[0x20];
3784290650Shselasky
3785290650Shselasky	u8         reserved_3[0x9];
3786290650Shselasky	u8         device_burst_size[0x17];
3787290650Shselasky};
3788290650Shselasky
3789290650Shselaskystruct mlx5_ifc_rts2rts_qp_out_bits {
3790290650Shselasky	u8         status[0x8];
3791290650Shselasky	u8         reserved_0[0x18];
3792290650Shselasky
3793290650Shselasky	u8         syndrome[0x20];
3794290650Shselasky
3795290650Shselasky	u8         reserved_1[0x40];
3796290650Shselasky};
3797290650Shselasky
3798290650Shselaskystruct mlx5_ifc_rts2rts_qp_in_bits {
3799290650Shselasky	u8         opcode[0x10];
3800290650Shselasky	u8         reserved_0[0x10];
3801290650Shselasky
3802290650Shselasky	u8         reserved_1[0x10];
3803290650Shselasky	u8         op_mod[0x10];
3804290650Shselasky
3805290650Shselasky	u8         reserved_2[0x8];
3806290650Shselasky	u8         qpn[0x18];
3807290650Shselasky
3808290650Shselasky	u8         reserved_3[0x20];
3809290650Shselasky
3810290650Shselasky	u8         opt_param_mask[0x20];
3811290650Shselasky
3812290650Shselasky	u8         reserved_4[0x20];
3813290650Shselasky
3814290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
3815290650Shselasky
3816290650Shselasky	u8         reserved_5[0x80];
3817290650Shselasky};
3818290650Shselasky
3819290650Shselaskystruct mlx5_ifc_rtr2rts_qp_out_bits {
3820290650Shselasky	u8         status[0x8];
3821290650Shselasky	u8         reserved_0[0x18];
3822290650Shselasky
3823290650Shselasky	u8         syndrome[0x20];
3824290650Shselasky
3825290650Shselasky	u8         reserved_1[0x40];
3826290650Shselasky};
3827290650Shselasky
3828290650Shselaskystruct mlx5_ifc_rtr2rts_qp_in_bits {
3829290650Shselasky	u8         opcode[0x10];
3830290650Shselasky	u8         reserved_0[0x10];
3831290650Shselasky
3832290650Shselasky	u8         reserved_1[0x10];
3833290650Shselasky	u8         op_mod[0x10];
3834290650Shselasky
3835290650Shselasky	u8         reserved_2[0x8];
3836290650Shselasky	u8         qpn[0x18];
3837290650Shselasky
3838290650Shselasky	u8         reserved_3[0x20];
3839290650Shselasky
3840290650Shselasky	u8         opt_param_mask[0x20];
3841290650Shselasky
3842290650Shselasky	u8         reserved_4[0x20];
3843290650Shselasky
3844290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
3845290650Shselasky
3846290650Shselasky	u8         reserved_5[0x80];
3847290650Shselasky};
3848290650Shselasky
3849290650Shselaskystruct mlx5_ifc_rst2init_qp_out_bits {
3850290650Shselasky	u8         status[0x8];
3851290650Shselasky	u8         reserved_0[0x18];
3852290650Shselasky
3853290650Shselasky	u8         syndrome[0x20];
3854290650Shselasky
3855290650Shselasky	u8         reserved_1[0x40];
3856290650Shselasky};
3857290650Shselasky
3858290650Shselaskystruct mlx5_ifc_rst2init_qp_in_bits {
3859290650Shselasky	u8         opcode[0x10];
3860290650Shselasky	u8         reserved_0[0x10];
3861290650Shselasky
3862290650Shselasky	u8         reserved_1[0x10];
3863290650Shselasky	u8         op_mod[0x10];
3864290650Shselasky
3865290650Shselasky	u8         reserved_2[0x8];
3866290650Shselasky	u8         qpn[0x18];
3867290650Shselasky
3868290650Shselasky	u8         reserved_3[0x20];
3869290650Shselasky
3870290650Shselasky	u8         opt_param_mask[0x20];
3871290650Shselasky
3872290650Shselasky	u8         reserved_4[0x20];
3873290650Shselasky
3874290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
3875290650Shselasky
3876290650Shselasky	u8         reserved_5[0x80];
3877290650Shselasky};
3878290650Shselasky
3879290650Shselaskystruct mlx5_ifc_resume_qp_out_bits {
3880290650Shselasky	u8         status[0x8];
3881290650Shselasky	u8         reserved_0[0x18];
3882290650Shselasky
3883290650Shselasky	u8         syndrome[0x20];
3884290650Shselasky
3885290650Shselasky	u8         reserved_1[0x40];
3886290650Shselasky};
3887290650Shselasky
3888290650Shselaskystruct mlx5_ifc_resume_qp_in_bits {
3889290650Shselasky	u8         opcode[0x10];
3890290650Shselasky	u8         reserved_0[0x10];
3891290650Shselasky
3892290650Shselasky	u8         reserved_1[0x10];
3893290650Shselasky	u8         op_mod[0x10];
3894290650Shselasky
3895290650Shselasky	u8         reserved_2[0x8];
3896290650Shselasky	u8         qpn[0x18];
3897290650Shselasky
3898290650Shselasky	u8         reserved_3[0x20];
3899290650Shselasky};
3900290650Shselasky
3901290650Shselaskystruct mlx5_ifc_query_xrc_srq_out_bits {
3902290650Shselasky	u8         status[0x8];
3903290650Shselasky	u8         reserved_0[0x18];
3904290650Shselasky
3905290650Shselasky	u8         syndrome[0x20];
3906290650Shselasky
3907290650Shselasky	u8         reserved_1[0x40];
3908290650Shselasky
3909290650Shselasky	struct mlx5_ifc_xrc_srqc_bits xrc_srq_context_entry;
3910290650Shselasky
3911290650Shselasky	u8         reserved_2[0x600];
3912290650Shselasky
3913290650Shselasky	u8         pas[0][0x40];
3914290650Shselasky};
3915290650Shselasky
3916290650Shselaskystruct mlx5_ifc_query_xrc_srq_in_bits {
3917290650Shselasky	u8         opcode[0x10];
3918290650Shselasky	u8         reserved_0[0x10];
3919290650Shselasky
3920290650Shselasky	u8         reserved_1[0x10];
3921290650Shselasky	u8         op_mod[0x10];
3922290650Shselasky
3923290650Shselasky	u8         reserved_2[0x8];
3924290650Shselasky	u8         xrc_srqn[0x18];
3925290650Shselasky
3926290650Shselasky	u8         reserved_3[0x20];
3927290650Shselasky};
3928290650Shselasky
3929290650Shselaskystruct mlx5_ifc_query_wol_rol_out_bits {
3930290650Shselasky	u8         status[0x8];
3931290650Shselasky	u8         reserved_0[0x18];
3932290650Shselasky
3933290650Shselasky	u8         syndrome[0x20];
3934290650Shselasky
3935290650Shselasky	u8         reserved_1[0x10];
3936290650Shselasky	u8         rol_mode[0x8];
3937290650Shselasky	u8         wol_mode[0x8];
3938290650Shselasky
3939290650Shselasky	u8         reserved_2[0x20];
3940290650Shselasky};
3941290650Shselasky
3942290650Shselaskystruct mlx5_ifc_query_wol_rol_in_bits {
3943290650Shselasky	u8         opcode[0x10];
3944290650Shselasky	u8         reserved_0[0x10];
3945290650Shselasky
3946290650Shselasky	u8         reserved_1[0x10];
3947290650Shselasky	u8         op_mod[0x10];
3948290650Shselasky
3949290650Shselasky	u8         reserved_2[0x40];
3950290650Shselasky};
3951290650Shselasky
3952290650Shselaskyenum {
3953290650Shselasky	MLX5_QUERY_VPORT_STATE_OUT_STATE_DOWN  = 0x0,
3954290650Shselasky	MLX5_QUERY_VPORT_STATE_OUT_STATE_UP    = 0x1,
3955290650Shselasky};
3956290650Shselasky
3957290650Shselaskystruct mlx5_ifc_query_vport_state_out_bits {
3958290650Shselasky	u8         status[0x8];
3959290650Shselasky	u8         reserved_0[0x18];
3960290650Shselasky
3961290650Shselasky	u8         syndrome[0x20];
3962290650Shselasky
3963290650Shselasky	u8         reserved_1[0x20];
3964290650Shselasky
3965290650Shselasky	u8         reserved_2[0x18];
3966290650Shselasky	u8         admin_state[0x4];
3967290650Shselasky	u8         state[0x4];
3968290650Shselasky};
3969290650Shselasky
3970290650Shselaskyenum {
3971290650Shselasky	MLX5_QUERY_VPORT_STATE_IN_OP_MOD_VNIC_VPORT  = 0x0,
3972290650Shselasky	MLX5_QUERY_VPORT_STATE_IN_OP_MOD_ESW_VPORT   = 0x1,
3973290650Shselasky	MLX5_QUERY_VPORT_STATE_IN_OP_MOD_UPLINK      = 0x2,
3974290650Shselasky};
3975290650Shselasky
3976290650Shselaskystruct mlx5_ifc_query_vport_state_in_bits {
3977290650Shselasky	u8         opcode[0x10];
3978290650Shselasky	u8         reserved_0[0x10];
3979290650Shselasky
3980290650Shselasky	u8         reserved_1[0x10];
3981290650Shselasky	u8         op_mod[0x10];
3982290650Shselasky
3983290650Shselasky	u8         other_vport[0x1];
3984290650Shselasky	u8         reserved_2[0xf];
3985290650Shselasky	u8         vport_number[0x10];
3986290650Shselasky
3987290650Shselasky	u8         reserved_3[0x20];
3988290650Shselasky};
3989290650Shselasky
3990347850Shselaskystruct mlx5_ifc_query_vnic_env_out_bits {
3991347850Shselasky	u8         status[0x8];
3992347850Shselasky	u8         reserved_at_8[0x18];
3993347850Shselasky
3994347850Shselasky	u8         syndrome[0x20];
3995347850Shselasky
3996347850Shselasky	u8         reserved_at_40[0x40];
3997347850Shselasky
3998347850Shselasky	struct mlx5_ifc_vnic_diagnostic_statistics_bits vport_env;
3999347850Shselasky};
4000347850Shselasky
4001347850Shselaskyenum {
4002347850Shselasky	MLX5_QUERY_VNIC_ENV_IN_OP_MOD_VPORT_DIAG_STATISTICS  = 0x0,
4003347850Shselasky};
4004347850Shselasky
4005347850Shselaskystruct mlx5_ifc_query_vnic_env_in_bits {
4006347850Shselasky	u8         opcode[0x10];
4007347850Shselasky	u8         reserved_at_10[0x10];
4008347850Shselasky
4009347850Shselasky	u8         reserved_at_20[0x10];
4010347850Shselasky	u8         op_mod[0x10];
4011347850Shselasky
4012347850Shselasky	u8         other_vport[0x1];
4013347850Shselasky	u8         reserved_at_41[0xf];
4014347850Shselasky	u8         vport_number[0x10];
4015347850Shselasky
4016347850Shselasky	u8         reserved_at_60[0x20];
4017347850Shselasky};
4018347850Shselasky
4019290650Shselaskystruct mlx5_ifc_query_vport_counter_out_bits {
4020290650Shselasky	u8         status[0x8];
4021290650Shselasky	u8         reserved_0[0x18];
4022290650Shselasky
4023290650Shselasky	u8         syndrome[0x20];
4024290650Shselasky
4025290650Shselasky	u8         reserved_1[0x40];
4026290650Shselasky
4027290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_errors;
4028290650Shselasky
4029290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmit_errors;
4030290650Shselasky
4031290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_ib_unicast;
4032290650Shselasky
4033290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmitted_ib_unicast;
4034290650Shselasky
4035290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_ib_multicast;
4036290650Shselasky
4037290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmitted_ib_multicast;
4038290650Shselasky
4039290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_eth_broadcast;
4040290650Shselasky
4041290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmitted_eth_broadcast;
4042290650Shselasky
4043290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_eth_unicast;
4044290650Shselasky
4045290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmitted_eth_unicast;
4046290650Shselasky
4047290650Shselasky	struct mlx5_ifc_traffic_counter_bits received_eth_multicast;
4048290650Shselasky
4049290650Shselasky	struct mlx5_ifc_traffic_counter_bits transmitted_eth_multicast;
4050290650Shselasky
4051290650Shselasky	u8         reserved_2[0xa00];
4052290650Shselasky};
4053290650Shselasky
4054290650Shselaskyenum {
4055290650Shselasky	MLX5_QUERY_VPORT_COUNTER_IN_OP_MOD_VPORT_COUNTERS  = 0x0,
4056290650Shselasky};
4057290650Shselasky
4058290650Shselaskystruct mlx5_ifc_query_vport_counter_in_bits {
4059290650Shselasky	u8         opcode[0x10];
4060290650Shselasky	u8         reserved_0[0x10];
4061290650Shselasky
4062290650Shselasky	u8         reserved_1[0x10];
4063290650Shselasky	u8         op_mod[0x10];
4064290650Shselasky
4065290650Shselasky	u8         other_vport[0x1];
4066290650Shselasky	u8         reserved_2[0xb];
4067290650Shselasky	u8         port_num[0x4];
4068290650Shselasky	u8         vport_number[0x10];
4069290650Shselasky
4070290650Shselasky	u8         reserved_3[0x60];
4071290650Shselasky
4072290650Shselasky	u8         clear[0x1];
4073290650Shselasky	u8         reserved_4[0x1f];
4074290650Shselasky
4075290650Shselasky	u8         reserved_5[0x20];
4076290650Shselasky};
4077290650Shselasky
4078290650Shselaskystruct mlx5_ifc_query_tis_out_bits {
4079290650Shselasky	u8         status[0x8];
4080290650Shselasky	u8         reserved_0[0x18];
4081290650Shselasky
4082290650Shselasky	u8         syndrome[0x20];
4083290650Shselasky
4084290650Shselasky	u8         reserved_1[0x40];
4085290650Shselasky
4086290650Shselasky	struct mlx5_ifc_tisc_bits tis_context;
4087290650Shselasky};
4088290650Shselasky
4089290650Shselaskystruct mlx5_ifc_query_tis_in_bits {
4090290650Shselasky	u8         opcode[0x10];
4091290650Shselasky	u8         reserved_0[0x10];
4092290650Shselasky
4093290650Shselasky	u8         reserved_1[0x10];
4094290650Shselasky	u8         op_mod[0x10];
4095290650Shselasky
4096290650Shselasky	u8         reserved_2[0x8];
4097290650Shselasky	u8         tisn[0x18];
4098290650Shselasky
4099290650Shselasky	u8         reserved_3[0x20];
4100290650Shselasky};
4101290650Shselasky
4102290650Shselaskystruct mlx5_ifc_query_tir_out_bits {
4103290650Shselasky	u8         status[0x8];
4104290650Shselasky	u8         reserved_0[0x18];
4105290650Shselasky
4106290650Shselasky	u8         syndrome[0x20];
4107290650Shselasky
4108290650Shselasky	u8         reserved_1[0xc0];
4109290650Shselasky
4110290650Shselasky	struct mlx5_ifc_tirc_bits tir_context;
4111290650Shselasky};
4112290650Shselasky
4113290650Shselaskystruct mlx5_ifc_query_tir_in_bits {
4114290650Shselasky	u8         opcode[0x10];
4115290650Shselasky	u8         reserved_0[0x10];
4116290650Shselasky
4117290650Shselasky	u8         reserved_1[0x10];
4118290650Shselasky	u8         op_mod[0x10];
4119290650Shselasky
4120290650Shselasky	u8         reserved_2[0x8];
4121290650Shselasky	u8         tirn[0x18];
4122290650Shselasky
4123290650Shselasky	u8         reserved_3[0x20];
4124290650Shselasky};
4125290650Shselasky
4126290650Shselaskystruct mlx5_ifc_query_srq_out_bits {
4127290650Shselasky	u8         status[0x8];
4128290650Shselasky	u8         reserved_0[0x18];
4129290650Shselasky
4130290650Shselasky	u8         syndrome[0x20];
4131290650Shselasky
4132290650Shselasky	u8         reserved_1[0x40];
4133290650Shselasky
4134290650Shselasky	struct mlx5_ifc_srqc_bits srq_context_entry;
4135290650Shselasky
4136290650Shselasky	u8         reserved_2[0x600];
4137290650Shselasky
4138290650Shselasky	u8         pas[0][0x40];
4139290650Shselasky};
4140290650Shselasky
4141290650Shselaskystruct mlx5_ifc_query_srq_in_bits {
4142290650Shselasky	u8         opcode[0x10];
4143290650Shselasky	u8         reserved_0[0x10];
4144290650Shselasky
4145290650Shselasky	u8         reserved_1[0x10];
4146290650Shselasky	u8         op_mod[0x10];
4147290650Shselasky
4148290650Shselasky	u8         reserved_2[0x8];
4149290650Shselasky	u8         srqn[0x18];
4150290650Shselasky
4151290650Shselasky	u8         reserved_3[0x20];
4152290650Shselasky};
4153290650Shselasky
4154290650Shselaskystruct mlx5_ifc_query_sq_out_bits {
4155290650Shselasky	u8         status[0x8];
4156290650Shselasky	u8         reserved_0[0x18];
4157290650Shselasky
4158290650Shselasky	u8         syndrome[0x20];
4159290650Shselasky
4160290650Shselasky	u8         reserved_1[0xc0];
4161290650Shselasky
4162290650Shselasky	struct mlx5_ifc_sqc_bits sq_context;
4163290650Shselasky};
4164290650Shselasky
4165290650Shselaskystruct mlx5_ifc_query_sq_in_bits {
4166290650Shselasky	u8         opcode[0x10];
4167290650Shselasky	u8         reserved_0[0x10];
4168290650Shselasky
4169290650Shselasky	u8         reserved_1[0x10];
4170290650Shselasky	u8         op_mod[0x10];
4171290650Shselasky
4172290650Shselasky	u8         reserved_2[0x8];
4173290650Shselasky	u8         sqn[0x18];
4174290650Shselasky
4175290650Shselasky	u8         reserved_3[0x20];
4176290650Shselasky};
4177290650Shselasky
4178290650Shselaskystruct mlx5_ifc_query_special_contexts_out_bits {
4179290650Shselasky	u8         status[0x8];
4180290650Shselasky	u8         reserved_0[0x18];
4181290650Shselasky
4182290650Shselasky	u8         syndrome[0x20];
4183290650Shselasky
4184331807Shselasky	u8	   dump_fill_mkey[0x20];
4185290650Shselasky
4186290650Shselasky	u8         resd_lkey[0x20];
4187290650Shselasky};
4188290650Shselasky
4189290650Shselaskystruct mlx5_ifc_query_special_contexts_in_bits {
4190290650Shselasky	u8         opcode[0x10];
4191290650Shselasky	u8         reserved_0[0x10];
4192290650Shselasky
4193290650Shselasky	u8         reserved_1[0x10];
4194290650Shselasky	u8         op_mod[0x10];
4195290650Shselasky
4196290650Shselasky	u8         reserved_2[0x40];
4197290650Shselasky};
4198290650Shselasky
4199308678Shselaskystruct mlx5_ifc_query_scheduling_element_out_bits {
4200308678Shselasky	u8         status[0x8];
4201308678Shselasky	u8         reserved_at_8[0x18];
4202308678Shselasky
4203308678Shselasky	u8         syndrome[0x20];
4204308678Shselasky
4205308678Shselasky	u8         reserved_at_40[0xc0];
4206308678Shselasky
4207308678Shselasky	struct mlx5_ifc_scheduling_context_bits scheduling_context;
4208308678Shselasky
4209308678Shselasky	u8         reserved_at_300[0x100];
4210308678Shselasky};
4211308678Shselasky
4212308678Shselaskyenum {
4213308678Shselasky	MLX5_SCHEDULING_ELEMENT_IN_HIERARCHY_E_SWITCH = 0x2,
4214308678Shselasky};
4215308678Shselasky
4216308678Shselaskystruct mlx5_ifc_query_scheduling_element_in_bits {
4217308678Shselasky	u8         opcode[0x10];
4218308678Shselasky	u8         reserved_at_10[0x10];
4219308678Shselasky
4220308678Shselasky	u8         reserved_at_20[0x10];
4221308678Shselasky	u8         op_mod[0x10];
4222308678Shselasky
4223308678Shselasky	u8         scheduling_hierarchy[0x8];
4224308678Shselasky	u8         reserved_at_48[0x18];
4225308678Shselasky
4226308678Shselasky	u8         scheduling_element_id[0x20];
4227308678Shselasky
4228308678Shselasky	u8         reserved_at_80[0x180];
4229308678Shselasky};
4230308678Shselasky
4231290650Shselaskystruct mlx5_ifc_query_rqt_out_bits {
4232290650Shselasky	u8         status[0x8];
4233290650Shselasky	u8         reserved_0[0x18];
4234290650Shselasky
4235290650Shselasky	u8         syndrome[0x20];
4236290650Shselasky
4237290650Shselasky	u8         reserved_1[0xc0];
4238290650Shselasky
4239290650Shselasky	struct mlx5_ifc_rqtc_bits rqt_context;
4240290650Shselasky};
4241290650Shselasky
4242290650Shselaskystruct mlx5_ifc_query_rqt_in_bits {
4243290650Shselasky	u8         opcode[0x10];
4244290650Shselasky	u8         reserved_0[0x10];
4245290650Shselasky
4246290650Shselasky	u8         reserved_1[0x10];
4247290650Shselasky	u8         op_mod[0x10];
4248290650Shselasky
4249290650Shselasky	u8         reserved_2[0x8];
4250290650Shselasky	u8         rqtn[0x18];
4251290650Shselasky
4252290650Shselasky	u8         reserved_3[0x20];
4253290650Shselasky};
4254290650Shselasky
4255290650Shselaskystruct mlx5_ifc_query_rq_out_bits {
4256290650Shselasky	u8         status[0x8];
4257290650Shselasky	u8         reserved_0[0x18];
4258290650Shselasky
4259290650Shselasky	u8         syndrome[0x20];
4260290650Shselasky
4261290650Shselasky	u8         reserved_1[0xc0];
4262290650Shselasky
4263290650Shselasky	struct mlx5_ifc_rqc_bits rq_context;
4264290650Shselasky};
4265290650Shselasky
4266290650Shselaskystruct mlx5_ifc_query_rq_in_bits {
4267290650Shselasky	u8         opcode[0x10];
4268290650Shselasky	u8         reserved_0[0x10];
4269290650Shselasky
4270290650Shselasky	u8         reserved_1[0x10];
4271290650Shselasky	u8         op_mod[0x10];
4272290650Shselasky
4273290650Shselasky	u8         reserved_2[0x8];
4274290650Shselasky	u8         rqn[0x18];
4275290650Shselasky
4276290650Shselasky	u8         reserved_3[0x20];
4277290650Shselasky};
4278290650Shselasky
4279290650Shselaskystruct mlx5_ifc_query_roce_address_out_bits {
4280290650Shselasky	u8         status[0x8];
4281290650Shselasky	u8         reserved_0[0x18];
4282290650Shselasky
4283290650Shselasky	u8         syndrome[0x20];
4284290650Shselasky
4285290650Shselasky	u8         reserved_1[0x40];
4286290650Shselasky
4287290650Shselasky	struct mlx5_ifc_roce_addr_layout_bits roce_address;
4288290650Shselasky};
4289290650Shselasky
4290290650Shselaskystruct mlx5_ifc_query_roce_address_in_bits {
4291290650Shselasky	u8         opcode[0x10];
4292290650Shselasky	u8         reserved_0[0x10];
4293290650Shselasky
4294290650Shselasky	u8         reserved_1[0x10];
4295290650Shselasky	u8         op_mod[0x10];
4296290650Shselasky
4297290650Shselasky	u8         roce_address_index[0x10];
4298290650Shselasky	u8         reserved_2[0x10];
4299290650Shselasky
4300290650Shselasky	u8         reserved_3[0x20];
4301290650Shselasky};
4302290650Shselasky
4303290650Shselaskystruct mlx5_ifc_query_rmp_out_bits {
4304290650Shselasky	u8         status[0x8];
4305290650Shselasky	u8         reserved_0[0x18];
4306290650Shselasky
4307290650Shselasky	u8         syndrome[0x20];
4308290650Shselasky
4309290650Shselasky	u8         reserved_1[0xc0];
4310290650Shselasky
4311290650Shselasky	struct mlx5_ifc_rmpc_bits rmp_context;
4312290650Shselasky};
4313290650Shselasky
4314290650Shselaskystruct mlx5_ifc_query_rmp_in_bits {
4315290650Shselasky	u8         opcode[0x10];
4316290650Shselasky	u8         reserved_0[0x10];
4317290650Shselasky
4318290650Shselasky	u8         reserved_1[0x10];
4319290650Shselasky	u8         op_mod[0x10];
4320290650Shselasky
4321290650Shselasky	u8         reserved_2[0x8];
4322290650Shselasky	u8         rmpn[0x18];
4323290650Shselasky
4324290650Shselasky	u8         reserved_3[0x20];
4325290650Shselasky};
4326290650Shselasky
4327290650Shselaskystruct mlx5_ifc_query_rdb_out_bits {
4328290650Shselasky	u8         status[0x8];
4329290650Shselasky	u8         reserved_0[0x18];
4330290650Shselasky
4331290650Shselasky	u8         syndrome[0x20];
4332290650Shselasky
4333290650Shselasky	u8         reserved_1[0x20];
4334290650Shselasky
4335290650Shselasky	u8         reserved_2[0x18];
4336290650Shselasky	u8         rdb_list_size[0x8];
4337290650Shselasky
4338290650Shselasky	struct mlx5_ifc_rdbc_bits rdb_context[0];
4339290650Shselasky};
4340290650Shselasky
4341290650Shselaskystruct mlx5_ifc_query_rdb_in_bits {
4342290650Shselasky	u8         opcode[0x10];
4343290650Shselasky	u8         reserved_0[0x10];
4344290650Shselasky
4345290650Shselasky	u8         reserved_1[0x10];
4346290650Shselasky	u8         op_mod[0x10];
4347290650Shselasky
4348290650Shselasky	u8         reserved_2[0x8];
4349290650Shselasky	u8         qpn[0x18];
4350290650Shselasky
4351290650Shselasky	u8         reserved_3[0x20];
4352290650Shselasky};
4353290650Shselasky
4354290650Shselaskystruct mlx5_ifc_query_qp_out_bits {
4355290650Shselasky	u8         status[0x8];
4356290650Shselasky	u8         reserved_0[0x18];
4357290650Shselasky
4358290650Shselasky	u8         syndrome[0x20];
4359290650Shselasky
4360290650Shselasky	u8         reserved_1[0x40];
4361290650Shselasky
4362290650Shselasky	u8         opt_param_mask[0x20];
4363290650Shselasky
4364290650Shselasky	u8         reserved_2[0x20];
4365290650Shselasky
4366290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
4367290650Shselasky
4368290650Shselasky	u8         reserved_3[0x80];
4369290650Shselasky
4370290650Shselasky	u8         pas[0][0x40];
4371290650Shselasky};
4372290650Shselasky
4373290650Shselaskystruct mlx5_ifc_query_qp_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[0x8];
4381290650Shselasky	u8         qpn[0x18];
4382290650Shselasky
4383290650Shselasky	u8         reserved_3[0x20];
4384290650Shselasky};
4385290650Shselasky
4386290650Shselaskystruct mlx5_ifc_query_q_counter_out_bits {
4387290650Shselasky	u8         status[0x8];
4388290650Shselasky	u8         reserved_0[0x18];
4389290650Shselasky
4390290650Shselasky	u8         syndrome[0x20];
4391290650Shselasky
4392290650Shselasky	u8         reserved_1[0x40];
4393290650Shselasky
4394290650Shselasky	u8         rx_write_requests[0x20];
4395290650Shselasky
4396290650Shselasky	u8         reserved_2[0x20];
4397290650Shselasky
4398290650Shselasky	u8         rx_read_requests[0x20];
4399290650Shselasky
4400290650Shselasky	u8         reserved_3[0x20];
4401290650Shselasky
4402290650Shselasky	u8         rx_atomic_requests[0x20];
4403290650Shselasky
4404290650Shselasky	u8         reserved_4[0x20];
4405290650Shselasky
4406290650Shselasky	u8         rx_dct_connect[0x20];
4407290650Shselasky
4408290650Shselasky	u8         reserved_5[0x20];
4409290650Shselasky
4410290650Shselasky	u8         out_of_buffer[0x20];
4411290650Shselasky
4412321992Shselasky	u8         reserved_7[0x20];
4413290650Shselasky
4414290650Shselasky	u8         out_of_sequence[0x20];
4415290650Shselasky
4416321992Shselasky	u8         reserved_8[0x20];
4417306233Shselasky
4418321992Shselasky	u8         duplicate_request[0x20];
4419306233Shselasky
4420321992Shselasky	u8         reserved_9[0x20];
4421306233Shselasky
4422321992Shselasky	u8         rnr_nak_retry_err[0x20];
4423306233Shselasky
4424321992Shselasky	u8         reserved_10[0x20];
4425306233Shselasky
4426321992Shselasky	u8         packet_seq_err[0x20];
4427306233Shselasky
4428321992Shselasky	u8         reserved_11[0x20];
4429306233Shselasky
4430321992Shselasky	u8         implied_nak_seq_err[0x20];
4431306233Shselasky
4432321992Shselasky	u8         reserved_12[0x20];
4433306233Shselasky
4434321992Shselasky	u8         local_ack_timeout_err[0x20];
4435306233Shselasky
4436321992Shselasky	u8         reserved_13[0x20];
4437321992Shselasky
4438321992Shselasky	u8         resp_rnr_nak[0x20];
4439321992Shselasky
4440321992Shselasky	u8         reserved_14[0x20];
4441321992Shselasky
4442321992Shselasky	u8         req_rnr_retries_exceeded[0x20];
4443321992Shselasky
4444321992Shselasky	u8         reserved_15[0x460];
4445290650Shselasky};
4446290650Shselasky
4447290650Shselaskystruct mlx5_ifc_query_q_counter_in_bits {
4448290650Shselasky	u8         opcode[0x10];
4449290650Shselasky	u8         reserved_0[0x10];
4450290650Shselasky
4451290650Shselasky	u8         reserved_1[0x10];
4452290650Shselasky	u8         op_mod[0x10];
4453290650Shselasky
4454290650Shselasky	u8         reserved_2[0x80];
4455290650Shselasky
4456290650Shselasky	u8         clear[0x1];
4457290650Shselasky	u8         reserved_3[0x1f];
4458290650Shselasky
4459290650Shselasky	u8         reserved_4[0x18];
4460290650Shselasky	u8         counter_set_id[0x8];
4461290650Shselasky};
4462290650Shselasky
4463290650Shselaskystruct mlx5_ifc_query_pages_out_bits {
4464290650Shselasky	u8         status[0x8];
4465290650Shselasky	u8         reserved_0[0x18];
4466290650Shselasky
4467290650Shselasky	u8         syndrome[0x20];
4468290650Shselasky
4469290650Shselasky	u8         reserved_1[0x10];
4470290650Shselasky	u8         function_id[0x10];
4471290650Shselasky
4472290650Shselasky	u8         num_pages[0x20];
4473290650Shselasky};
4474290650Shselasky
4475290650Shselaskyenum {
4476331807Shselasky	MLX5_QUERY_PAGES_IN_OP_MOD_BOOT_PAGES	  = 0x1,
4477331807Shselasky	MLX5_QUERY_PAGES_IN_OP_MOD_INIT_PAGES	  = 0x2,
4478331807Shselasky	MLX5_QUERY_PAGES_IN_OP_MOD_REGULAR_PAGES  = 0x3,
4479290650Shselasky};
4480290650Shselasky
4481290650Shselaskystruct mlx5_ifc_query_pages_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         reserved_2[0x10];
4489290650Shselasky	u8         function_id[0x10];
4490290650Shselasky
4491290650Shselasky	u8         reserved_3[0x20];
4492290650Shselasky};
4493290650Shselasky
4494290650Shselaskystruct mlx5_ifc_query_nic_vport_context_out_bits {
4495290650Shselasky	u8         status[0x8];
4496290650Shselasky	u8         reserved_0[0x18];
4497290650Shselasky
4498290650Shselasky	u8         syndrome[0x20];
4499290650Shselasky
4500290650Shselasky	u8         reserved_1[0x40];
4501290650Shselasky
4502290650Shselasky	struct mlx5_ifc_nic_vport_context_bits nic_vport_context;
4503290650Shselasky};
4504290650Shselasky
4505290650Shselaskystruct mlx5_ifc_query_nic_vport_context_in_bits {
4506290650Shselasky	u8         opcode[0x10];
4507290650Shselasky	u8         reserved_0[0x10];
4508290650Shselasky
4509290650Shselasky	u8         reserved_1[0x10];
4510290650Shselasky	u8         op_mod[0x10];
4511290650Shselasky
4512290650Shselasky	u8         other_vport[0x1];
4513290650Shselasky	u8         reserved_2[0xf];
4514290650Shselasky	u8         vport_number[0x10];
4515290650Shselasky
4516290650Shselasky	u8         reserved_3[0x5];
4517290650Shselasky	u8         allowed_list_type[0x3];
4518290650Shselasky	u8         reserved_4[0x18];
4519290650Shselasky};
4520290650Shselasky
4521290650Shselaskystruct mlx5_ifc_query_mkey_out_bits {
4522290650Shselasky	u8         status[0x8];
4523290650Shselasky	u8         reserved_0[0x18];
4524290650Shselasky
4525290650Shselasky	u8         syndrome[0x20];
4526290650Shselasky
4527290650Shselasky	u8         reserved_1[0x40];
4528290650Shselasky
4529290650Shselasky	struct mlx5_ifc_mkc_bits memory_key_mkey_entry;
4530290650Shselasky
4531290650Shselasky	u8         reserved_2[0x600];
4532290650Shselasky
4533290650Shselasky	u8         bsf0_klm0_pas_mtt0_1[16][0x8];
4534290650Shselasky
4535290650Shselasky	u8         bsf1_klm1_pas_mtt2_3[16][0x8];
4536290650Shselasky};
4537290650Shselasky
4538290650Shselaskystruct mlx5_ifc_query_mkey_in_bits {
4539290650Shselasky	u8         opcode[0x10];
4540290650Shselasky	u8         reserved_0[0x10];
4541290650Shselasky
4542290650Shselasky	u8         reserved_1[0x10];
4543290650Shselasky	u8         op_mod[0x10];
4544290650Shselasky
4545290650Shselasky	u8         reserved_2[0x8];
4546290650Shselasky	u8         mkey_index[0x18];
4547290650Shselasky
4548290650Shselasky	u8         pg_access[0x1];
4549290650Shselasky	u8         reserved_3[0x1f];
4550290650Shselasky};
4551290650Shselasky
4552290650Shselaskystruct mlx5_ifc_query_mad_demux_out_bits {
4553290650Shselasky	u8         status[0x8];
4554290650Shselasky	u8         reserved_0[0x18];
4555290650Shselasky
4556290650Shselasky	u8         syndrome[0x20];
4557290650Shselasky
4558290650Shselasky	u8         reserved_1[0x40];
4559290650Shselasky
4560290650Shselasky	u8         mad_dumux_parameters_block[0x20];
4561290650Shselasky};
4562290650Shselasky
4563290650Shselaskystruct mlx5_ifc_query_mad_demux_in_bits {
4564290650Shselasky	u8         opcode[0x10];
4565290650Shselasky	u8         reserved_0[0x10];
4566290650Shselasky
4567290650Shselasky	u8         reserved_1[0x10];
4568290650Shselasky	u8         op_mod[0x10];
4569290650Shselasky
4570290650Shselasky	u8         reserved_2[0x40];
4571290650Shselasky};
4572290650Shselasky
4573290650Shselaskystruct mlx5_ifc_query_l2_table_entry_out_bits {
4574290650Shselasky	u8         status[0x8];
4575290650Shselasky	u8         reserved_0[0x18];
4576290650Shselasky
4577290650Shselasky	u8         syndrome[0x20];
4578290650Shselasky
4579290650Shselasky	u8         reserved_1[0xa0];
4580290650Shselasky
4581290650Shselasky	u8         reserved_2[0x13];
4582290650Shselasky	u8         vlan_valid[0x1];
4583290650Shselasky	u8         vlan[0xc];
4584290650Shselasky
4585290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_address;
4586290650Shselasky
4587290650Shselasky	u8         reserved_3[0xc0];
4588290650Shselasky};
4589290650Shselasky
4590290650Shselaskystruct mlx5_ifc_query_l2_table_entry_in_bits {
4591290650Shselasky	u8         opcode[0x10];
4592290650Shselasky	u8         reserved_0[0x10];
4593290650Shselasky
4594290650Shselasky	u8         reserved_1[0x10];
4595290650Shselasky	u8         op_mod[0x10];
4596290650Shselasky
4597290650Shselasky	u8         reserved_2[0x60];
4598290650Shselasky
4599290650Shselasky	u8         reserved_3[0x8];
4600290650Shselasky	u8         table_index[0x18];
4601290650Shselasky
4602290650Shselasky	u8         reserved_4[0x140];
4603290650Shselasky};
4604290650Shselasky
4605290650Shselaskystruct mlx5_ifc_query_issi_out_bits {
4606290650Shselasky	u8         status[0x8];
4607290650Shselasky	u8         reserved_0[0x18];
4608290650Shselasky
4609290650Shselasky	u8         syndrome[0x20];
4610290650Shselasky
4611290650Shselasky	u8         reserved_1[0x10];
4612290650Shselasky	u8         current_issi[0x10];
4613290650Shselasky
4614290650Shselasky	u8         reserved_2[0xa0];
4615290650Shselasky
4616290650Shselasky	u8         supported_issi_reserved[76][0x8];
4617290650Shselasky	u8         supported_issi_dw0[0x20];
4618290650Shselasky};
4619290650Shselasky
4620290650Shselaskystruct mlx5_ifc_query_issi_in_bits {
4621290650Shselasky	u8         opcode[0x10];
4622290650Shselasky	u8         reserved_0[0x10];
4623290650Shselasky
4624290650Shselasky	u8         reserved_1[0x10];
4625290650Shselasky	u8         op_mod[0x10];
4626290650Shselasky
4627290650Shselasky	u8         reserved_2[0x40];
4628290650Shselasky};
4629290650Shselasky
4630290650Shselaskystruct mlx5_ifc_query_hca_vport_pkey_out_bits {
4631290650Shselasky	u8         status[0x8];
4632290650Shselasky	u8         reserved_0[0x18];
4633290650Shselasky
4634290650Shselasky	u8         syndrome[0x20];
4635290650Shselasky
4636290650Shselasky	u8         reserved_1[0x40];
4637290650Shselasky
4638290650Shselasky	struct mlx5_ifc_pkey_bits pkey[0];
4639290650Shselasky};
4640290650Shselasky
4641290650Shselaskystruct mlx5_ifc_query_hca_vport_pkey_in_bits {
4642290650Shselasky	u8         opcode[0x10];
4643290650Shselasky	u8         reserved_0[0x10];
4644290650Shselasky
4645290650Shselasky	u8         reserved_1[0x10];
4646290650Shselasky	u8         op_mod[0x10];
4647290650Shselasky
4648290650Shselasky	u8         other_vport[0x1];
4649290650Shselasky	u8         reserved_2[0xb];
4650290650Shselasky	u8         port_num[0x4];
4651290650Shselasky	u8         vport_number[0x10];
4652290650Shselasky
4653290650Shselasky	u8         reserved_3[0x10];
4654290650Shselasky	u8         pkey_index[0x10];
4655290650Shselasky};
4656290650Shselasky
4657290650Shselaskystruct mlx5_ifc_query_hca_vport_gid_out_bits {
4658290650Shselasky	u8         status[0x8];
4659290650Shselasky	u8         reserved_0[0x18];
4660290650Shselasky
4661290650Shselasky	u8         syndrome[0x20];
4662290650Shselasky
4663290650Shselasky	u8         reserved_1[0x20];
4664290650Shselasky
4665290650Shselasky	u8         gids_num[0x10];
4666290650Shselasky	u8         reserved_2[0x10];
4667290650Shselasky
4668290650Shselasky	struct mlx5_ifc_array128_auto_bits gid[0];
4669290650Shselasky};
4670290650Shselasky
4671290650Shselaskystruct mlx5_ifc_query_hca_vport_gid_in_bits {
4672290650Shselasky	u8         opcode[0x10];
4673290650Shselasky	u8         reserved_0[0x10];
4674290650Shselasky
4675290650Shselasky	u8         reserved_1[0x10];
4676290650Shselasky	u8         op_mod[0x10];
4677290650Shselasky
4678290650Shselasky	u8         other_vport[0x1];
4679290650Shselasky	u8         reserved_2[0xb];
4680290650Shselasky	u8         port_num[0x4];
4681290650Shselasky	u8         vport_number[0x10];
4682290650Shselasky
4683290650Shselasky	u8         reserved_3[0x10];
4684290650Shselasky	u8         gid_index[0x10];
4685290650Shselasky};
4686290650Shselasky
4687290650Shselaskystruct mlx5_ifc_query_hca_vport_context_out_bits {
4688290650Shselasky	u8         status[0x8];
4689290650Shselasky	u8         reserved_0[0x18];
4690290650Shselasky
4691290650Shselasky	u8         syndrome[0x20];
4692290650Shselasky
4693290650Shselasky	u8         reserved_1[0x40];
4694290650Shselasky
4695290650Shselasky	struct mlx5_ifc_hca_vport_context_bits hca_vport_context;
4696290650Shselasky};
4697290650Shselasky
4698290650Shselaskystruct mlx5_ifc_query_hca_vport_context_in_bits {
4699290650Shselasky	u8         opcode[0x10];
4700290650Shselasky	u8         reserved_0[0x10];
4701290650Shselasky
4702290650Shselasky	u8         reserved_1[0x10];
4703290650Shselasky	u8         op_mod[0x10];
4704290650Shselasky
4705290650Shselasky	u8         other_vport[0x1];
4706290650Shselasky	u8         reserved_2[0xb];
4707290650Shselasky	u8         port_num[0x4];
4708290650Shselasky	u8         vport_number[0x10];
4709290650Shselasky
4710290650Shselasky	u8         reserved_3[0x20];
4711290650Shselasky};
4712290650Shselasky
4713290650Shselaskystruct mlx5_ifc_query_hca_cap_out_bits {
4714290650Shselasky	u8         status[0x8];
4715290650Shselasky	u8         reserved_0[0x18];
4716290650Shselasky
4717290650Shselasky	u8         syndrome[0x20];
4718290650Shselasky
4719290650Shselasky	u8         reserved_1[0x40];
4720290650Shselasky
4721290650Shselasky	union mlx5_ifc_hca_cap_union_bits capability;
4722290650Shselasky};
4723290650Shselasky
4724290650Shselaskystruct mlx5_ifc_query_hca_cap_in_bits {
4725290650Shselasky	u8         opcode[0x10];
4726290650Shselasky	u8         reserved_0[0x10];
4727290650Shselasky
4728290650Shselasky	u8         reserved_1[0x10];
4729290650Shselasky	u8         op_mod[0x10];
4730290650Shselasky
4731290650Shselasky	u8         reserved_2[0x40];
4732290650Shselasky};
4733290650Shselasky
4734290650Shselaskystruct mlx5_ifc_query_flow_table_out_bits {
4735290650Shselasky	u8         status[0x8];
4736329200Shselasky	u8         reserved_at_8[0x18];
4737290650Shselasky
4738290650Shselasky	u8         syndrome[0x20];
4739290650Shselasky
4740329200Shselasky	u8         reserved_at_40[0x80];
4741290650Shselasky
4742329200Shselasky	struct mlx5_ifc_flow_table_context_bits flow_table_context;
4743290650Shselasky};
4744290650Shselasky
4745290650Shselaskystruct mlx5_ifc_query_flow_table_in_bits {
4746290650Shselasky	u8         opcode[0x10];
4747290650Shselasky	u8         reserved_0[0x10];
4748290650Shselasky
4749290650Shselasky	u8         reserved_1[0x10];
4750290650Shselasky	u8         op_mod[0x10];
4751290650Shselasky
4752290650Shselasky	u8         other_vport[0x1];
4753290650Shselasky	u8         reserved_2[0xf];
4754290650Shselasky	u8         vport_number[0x10];
4755290650Shselasky
4756290650Shselasky	u8         reserved_3[0x20];
4757290650Shselasky
4758290650Shselasky	u8         table_type[0x8];
4759290650Shselasky	u8         reserved_4[0x18];
4760290650Shselasky
4761290650Shselasky	u8         reserved_5[0x8];
4762290650Shselasky	u8         table_id[0x18];
4763290650Shselasky
4764290650Shselasky	u8         reserved_6[0x140];
4765290650Shselasky};
4766290650Shselasky
4767290650Shselaskystruct mlx5_ifc_query_fte_out_bits {
4768290650Shselasky	u8         status[0x8];
4769290650Shselasky	u8         reserved_0[0x18];
4770290650Shselasky
4771290650Shselasky	u8         syndrome[0x20];
4772290650Shselasky
4773290650Shselasky	u8         reserved_1[0x1c0];
4774290650Shselasky
4775290650Shselasky	struct mlx5_ifc_flow_context_bits flow_context;
4776290650Shselasky};
4777290650Shselasky
4778290650Shselaskystruct mlx5_ifc_query_fte_in_bits {
4779290650Shselasky	u8         opcode[0x10];
4780290650Shselasky	u8         reserved_0[0x10];
4781290650Shselasky
4782290650Shselasky	u8         reserved_1[0x10];
4783290650Shselasky	u8         op_mod[0x10];
4784290650Shselasky
4785290650Shselasky	u8         other_vport[0x1];
4786290650Shselasky	u8         reserved_2[0xf];
4787290650Shselasky	u8         vport_number[0x10];
4788290650Shselasky
4789290650Shselasky	u8         reserved_3[0x20];
4790290650Shselasky
4791290650Shselasky	u8         table_type[0x8];
4792290650Shselasky	u8         reserved_4[0x18];
4793290650Shselasky
4794290650Shselasky	u8         reserved_5[0x8];
4795290650Shselasky	u8         table_id[0x18];
4796290650Shselasky
4797290650Shselasky	u8         reserved_6[0x40];
4798290650Shselasky
4799290650Shselasky	u8         flow_index[0x20];
4800290650Shselasky
4801290650Shselasky	u8         reserved_7[0xe0];
4802290650Shselasky};
4803290650Shselasky
4804290650Shselaskyenum {
4805290650Shselasky	MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_OUTER_HEADERS    = 0x0,
4806290650Shselasky	MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS  = 0x1,
4807290650Shselasky	MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_INNER_HEADERS    = 0x2,
4808290650Shselasky};
4809290650Shselasky
4810290650Shselaskystruct mlx5_ifc_query_flow_group_out_bits {
4811290650Shselasky	u8         status[0x8];
4812290650Shselasky	u8         reserved_0[0x18];
4813290650Shselasky
4814290650Shselasky	u8         syndrome[0x20];
4815290650Shselasky
4816290650Shselasky	u8         reserved_1[0xa0];
4817290650Shselasky
4818290650Shselasky	u8         start_flow_index[0x20];
4819290650Shselasky
4820290650Shselasky	u8         reserved_2[0x20];
4821290650Shselasky
4822290650Shselasky	u8         end_flow_index[0x20];
4823290650Shselasky
4824290650Shselasky	u8         reserved_3[0xa0];
4825290650Shselasky
4826290650Shselasky	u8         reserved_4[0x18];
4827290650Shselasky	u8         match_criteria_enable[0x8];
4828290650Shselasky
4829290650Shselasky	struct mlx5_ifc_fte_match_param_bits match_criteria;
4830290650Shselasky
4831290650Shselasky	u8         reserved_5[0xe00];
4832290650Shselasky};
4833290650Shselasky
4834290650Shselaskystruct mlx5_ifc_query_flow_group_in_bits {
4835290650Shselasky	u8         opcode[0x10];
4836290650Shselasky	u8         reserved_0[0x10];
4837290650Shselasky
4838290650Shselasky	u8         reserved_1[0x10];
4839290650Shselasky	u8         op_mod[0x10];
4840290650Shselasky
4841290650Shselasky	u8         other_vport[0x1];
4842290650Shselasky	u8         reserved_2[0xf];
4843290650Shselasky	u8         vport_number[0x10];
4844290650Shselasky
4845290650Shselasky	u8         reserved_3[0x20];
4846290650Shselasky
4847290650Shselasky	u8         table_type[0x8];
4848290650Shselasky	u8         reserved_4[0x18];
4849290650Shselasky
4850290650Shselasky	u8         reserved_5[0x8];
4851290650Shselasky	u8         table_id[0x18];
4852290650Shselasky
4853290650Shselasky	u8         group_id[0x20];
4854290650Shselasky
4855290650Shselasky	u8         reserved_6[0x120];
4856290650Shselasky};
4857290650Shselasky
4858290650Shselaskystruct mlx5_ifc_query_flow_counter_out_bits {
4859290650Shselasky	u8         status[0x8];
4860329204Shselasky	u8         reserved_at_8[0x18];
4861290650Shselasky
4862290650Shselasky	u8         syndrome[0x20];
4863290650Shselasky
4864329204Shselasky	u8         reserved_at_40[0x40];
4865290650Shselasky
4866329204Shselasky	struct mlx5_ifc_traffic_counter_bits flow_statistics[0];
4867290650Shselasky};
4868290650Shselasky
4869290650Shselaskystruct mlx5_ifc_query_flow_counter_in_bits {
4870290650Shselasky	u8         opcode[0x10];
4871329204Shselasky	u8         reserved_at_10[0x10];
4872290650Shselasky
4873329204Shselasky	u8         reserved_at_20[0x10];
4874290650Shselasky	u8         op_mod[0x10];
4875290650Shselasky
4876329204Shselasky	u8         reserved_at_40[0x80];
4877290650Shselasky
4878290650Shselasky	u8         clear[0x1];
4879329204Shselasky	u8         reserved_at_c1[0xf];
4880329204Shselasky	u8         num_of_counters[0x10];
4881290650Shselasky
4882329204Shselasky	u8         reserved_at_e0[0x10];
4883290650Shselasky	u8         flow_counter_id[0x10];
4884290650Shselasky};
4885290650Shselasky
4886290650Shselaskystruct mlx5_ifc_query_esw_vport_context_out_bits {
4887290650Shselasky	u8         status[0x8];
4888290650Shselasky	u8         reserved_0[0x18];
4889290650Shselasky
4890290650Shselasky	u8         syndrome[0x20];
4891290650Shselasky
4892290650Shselasky	u8         reserved_1[0x40];
4893290650Shselasky
4894290650Shselasky	struct mlx5_ifc_esw_vport_context_bits esw_vport_context;
4895290650Shselasky};
4896290650Shselasky
4897290650Shselaskystruct mlx5_ifc_query_esw_vport_context_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         other_vport[0x1];
4905290650Shselasky	u8         reserved_2[0xf];
4906290650Shselasky	u8         vport_number[0x10];
4907290650Shselasky
4908290650Shselasky	u8         reserved_3[0x20];
4909290650Shselasky};
4910290650Shselasky
4911290650Shselaskystruct mlx5_ifc_query_eq_out_bits {
4912290650Shselasky	u8         status[0x8];
4913290650Shselasky	u8         reserved_0[0x18];
4914290650Shselasky
4915290650Shselasky	u8         syndrome[0x20];
4916290650Shselasky
4917290650Shselasky	u8         reserved_1[0x40];
4918290650Shselasky
4919290650Shselasky	struct mlx5_ifc_eqc_bits eq_context_entry;
4920290650Shselasky
4921290650Shselasky	u8         reserved_2[0x40];
4922290650Shselasky
4923290650Shselasky	u8         event_bitmask[0x40];
4924290650Shselasky
4925290650Shselasky	u8         reserved_3[0x580];
4926290650Shselasky
4927290650Shselasky	u8         pas[0][0x40];
4928290650Shselasky};
4929290650Shselasky
4930290650Shselaskystruct mlx5_ifc_query_eq_in_bits {
4931290650Shselasky	u8         opcode[0x10];
4932290650Shselasky	u8         reserved_0[0x10];
4933290650Shselasky
4934290650Shselasky	u8         reserved_1[0x10];
4935290650Shselasky	u8         op_mod[0x10];
4936290650Shselasky
4937290650Shselasky	u8         reserved_2[0x18];
4938290650Shselasky	u8         eq_number[0x8];
4939290650Shselasky
4940290650Shselasky	u8         reserved_3[0x20];
4941290650Shselasky};
4942290650Shselasky
4943290650Shselaskystruct mlx5_ifc_query_dct_out_bits {
4944290650Shselasky	u8         status[0x8];
4945290650Shselasky	u8         reserved_0[0x18];
4946290650Shselasky
4947290650Shselasky	u8         syndrome[0x20];
4948290650Shselasky
4949290650Shselasky	u8         reserved_1[0x40];
4950290650Shselasky
4951290650Shselasky	struct mlx5_ifc_dctc_bits dct_context_entry;
4952290650Shselasky
4953290650Shselasky	u8         reserved_2[0x180];
4954290650Shselasky};
4955290650Shselasky
4956290650Shselaskystruct mlx5_ifc_query_dct_in_bits {
4957290650Shselasky	u8         opcode[0x10];
4958290650Shselasky	u8         reserved_0[0x10];
4959290650Shselasky
4960290650Shselasky	u8         reserved_1[0x10];
4961290650Shselasky	u8         op_mod[0x10];
4962290650Shselasky
4963290650Shselasky	u8         reserved_2[0x8];
4964290650Shselasky	u8         dctn[0x18];
4965290650Shselasky
4966290650Shselasky	u8         reserved_3[0x20];
4967290650Shselasky};
4968290650Shselasky
4969290650Shselaskystruct mlx5_ifc_query_dc_cnak_trace_out_bits {
4970290650Shselasky	u8         status[0x8];
4971290650Shselasky	u8         reserved_0[0x18];
4972290650Shselasky
4973290650Shselasky	u8         syndrome[0x20];
4974290650Shselasky
4975290650Shselasky	u8         enable[0x1];
4976290650Shselasky	u8         reserved_1[0x1f];
4977290650Shselasky
4978290650Shselasky	u8         reserved_2[0x160];
4979290650Shselasky
4980290650Shselasky	struct mlx5_ifc_cmd_pas_bits pas;
4981290650Shselasky};
4982290650Shselasky
4983290650Shselaskystruct mlx5_ifc_query_dc_cnak_trace_in_bits {
4984290650Shselasky	u8         opcode[0x10];
4985290650Shselasky	u8         reserved_0[0x10];
4986290650Shselasky
4987290650Shselasky	u8         reserved_1[0x10];
4988290650Shselasky	u8         op_mod[0x10];
4989290650Shselasky
4990290650Shselasky	u8         reserved_2[0x40];
4991290650Shselasky};
4992290650Shselasky
4993290650Shselaskystruct mlx5_ifc_query_cq_out_bits {
4994290650Shselasky	u8         status[0x8];
4995290650Shselasky	u8         reserved_0[0x18];
4996290650Shselasky
4997290650Shselasky	u8         syndrome[0x20];
4998290650Shselasky
4999290650Shselasky	u8         reserved_1[0x40];
5000290650Shselasky
5001290650Shselasky	struct mlx5_ifc_cqc_bits cq_context;
5002290650Shselasky
5003290650Shselasky	u8         reserved_2[0x600];
5004290650Shselasky
5005290650Shselasky	u8         pas[0][0x40];
5006290650Shselasky};
5007290650Shselasky
5008290650Shselaskystruct mlx5_ifc_query_cq_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         cqn[0x18];
5017290650Shselasky
5018290650Shselasky	u8         reserved_3[0x20];
5019290650Shselasky};
5020290650Shselasky
5021290650Shselaskystruct mlx5_ifc_query_cong_status_out_bits {
5022290650Shselasky	u8         status[0x8];
5023290650Shselasky	u8         reserved_0[0x18];
5024290650Shselasky
5025290650Shselasky	u8         syndrome[0x20];
5026290650Shselasky
5027290650Shselasky	u8         reserved_1[0x20];
5028290650Shselasky
5029290650Shselasky	u8         enable[0x1];
5030290650Shselasky	u8         tag_enable[0x1];
5031290650Shselasky	u8         reserved_2[0x1e];
5032290650Shselasky};
5033290650Shselasky
5034290650Shselaskystruct mlx5_ifc_query_cong_status_in_bits {
5035290650Shselasky	u8         opcode[0x10];
5036290650Shselasky	u8         reserved_0[0x10];
5037290650Shselasky
5038290650Shselasky	u8         reserved_1[0x10];
5039290650Shselasky	u8         op_mod[0x10];
5040290650Shselasky
5041290650Shselasky	u8         reserved_2[0x18];
5042290650Shselasky	u8         priority[0x4];
5043290650Shselasky	u8         cong_protocol[0x4];
5044290650Shselasky
5045290650Shselasky	u8         reserved_3[0x20];
5046290650Shselasky};
5047290650Shselasky
5048290650Shselaskystruct mlx5_ifc_query_cong_statistics_out_bits {
5049290650Shselasky	u8         status[0x8];
5050290650Shselasky	u8         reserved_0[0x18];
5051290650Shselasky
5052290650Shselasky	u8         syndrome[0x20];
5053290650Shselasky
5054290650Shselasky	u8         reserved_1[0x40];
5055290650Shselasky
5056331808Shselasky	u8         rp_cur_flows[0x20];
5057290650Shselasky
5058290650Shselasky	u8         sum_flows[0x20];
5059290650Shselasky
5060331808Shselasky	u8         rp_cnp_ignored_high[0x20];
5061290650Shselasky
5062331808Shselasky	u8         rp_cnp_ignored_low[0x20];
5063290650Shselasky
5064331808Shselasky	u8         rp_cnp_handled_high[0x20];
5065290650Shselasky
5066331808Shselasky	u8         rp_cnp_handled_low[0x20];
5067290650Shselasky
5068290650Shselasky	u8         reserved_2[0x100];
5069290650Shselasky
5070290650Shselasky	u8         time_stamp_high[0x20];
5071290650Shselasky
5072290650Shselasky	u8         time_stamp_low[0x20];
5073290650Shselasky
5074290650Shselasky	u8         accumulators_period[0x20];
5075290650Shselasky
5076331808Shselasky	u8         np_ecn_marked_roce_packets_high[0x20];
5077290650Shselasky
5078331808Shselasky	u8         np_ecn_marked_roce_packets_low[0x20];
5079290650Shselasky
5080331808Shselasky	u8         np_cnp_sent_high[0x20];
5081290650Shselasky
5082331808Shselasky	u8         np_cnp_sent_low[0x20];
5083290650Shselasky
5084290650Shselasky	u8         reserved_3[0x560];
5085290650Shselasky};
5086290650Shselasky
5087290650Shselaskystruct mlx5_ifc_query_cong_statistics_in_bits {
5088290650Shselasky	u8         opcode[0x10];
5089290650Shselasky	u8         reserved_0[0x10];
5090290650Shselasky
5091290650Shselasky	u8         reserved_1[0x10];
5092290650Shselasky	u8         op_mod[0x10];
5093290650Shselasky
5094290650Shselasky	u8         clear[0x1];
5095290650Shselasky	u8         reserved_2[0x1f];
5096290650Shselasky
5097290650Shselasky	u8         reserved_3[0x20];
5098290650Shselasky};
5099290650Shselasky
5100290650Shselaskystruct mlx5_ifc_query_cong_params_out_bits {
5101290650Shselasky	u8         status[0x8];
5102290650Shselasky	u8         reserved_0[0x18];
5103290650Shselasky
5104290650Shselasky	u8         syndrome[0x20];
5105290650Shselasky
5106290650Shselasky	u8         reserved_1[0x40];
5107290650Shselasky
5108290650Shselasky	union mlx5_ifc_cong_control_roce_ecn_auto_bits congestion_parameters;
5109290650Shselasky};
5110290650Shselasky
5111290650Shselaskystruct mlx5_ifc_query_cong_params_in_bits {
5112290650Shselasky	u8         opcode[0x10];
5113290650Shselasky	u8         reserved_0[0x10];
5114290650Shselasky
5115290650Shselasky	u8         reserved_1[0x10];
5116290650Shselasky	u8         op_mod[0x10];
5117290650Shselasky
5118290650Shselasky	u8         reserved_2[0x1c];
5119290650Shselasky	u8         cong_protocol[0x4];
5120290650Shselasky
5121290650Shselasky	u8         reserved_3[0x20];
5122290650Shselasky};
5123290650Shselasky
5124290650Shselaskystruct mlx5_ifc_query_burst_size_out_bits {
5125290650Shselasky	u8         status[0x8];
5126290650Shselasky	u8         reserved_0[0x18];
5127290650Shselasky
5128290650Shselasky	u8         syndrome[0x20];
5129290650Shselasky
5130290650Shselasky	u8         reserved_1[0x20];
5131290650Shselasky
5132290650Shselasky	u8         reserved_2[0x9];
5133290650Shselasky	u8         device_burst_size[0x17];
5134290650Shselasky};
5135290650Shselasky
5136290650Shselaskystruct mlx5_ifc_query_burst_size_in_bits {
5137290650Shselasky	u8         opcode[0x10];
5138290650Shselasky	u8         reserved_0[0x10];
5139290650Shselasky
5140290650Shselasky	u8         reserved_1[0x10];
5141290650Shselasky	u8         op_mod[0x10];
5142290650Shselasky
5143290650Shselasky	u8         reserved_2[0x40];
5144290650Shselasky};
5145290650Shselasky
5146290650Shselaskystruct mlx5_ifc_query_adapter_out_bits {
5147290650Shselasky	u8         status[0x8];
5148290650Shselasky	u8         reserved_0[0x18];
5149290650Shselasky
5150290650Shselasky	u8         syndrome[0x20];
5151290650Shselasky
5152290650Shselasky	u8         reserved_1[0x40];
5153290650Shselasky
5154290650Shselasky	struct mlx5_ifc_query_adapter_param_block_bits query_adapter_struct;
5155290650Shselasky};
5156290650Shselasky
5157290650Shselaskystruct mlx5_ifc_query_adapter_in_bits {
5158290650Shselasky	u8         opcode[0x10];
5159290650Shselasky	u8         reserved_0[0x10];
5160290650Shselasky
5161290650Shselasky	u8         reserved_1[0x10];
5162290650Shselasky	u8         op_mod[0x10];
5163290650Shselasky
5164290650Shselasky	u8         reserved_2[0x40];
5165290650Shselasky};
5166290650Shselasky
5167290650Shselaskystruct mlx5_ifc_qp_2rst_out_bits {
5168290650Shselasky	u8         status[0x8];
5169290650Shselasky	u8         reserved_0[0x18];
5170290650Shselasky
5171290650Shselasky	u8         syndrome[0x20];
5172290650Shselasky
5173290650Shselasky	u8         reserved_1[0x40];
5174290650Shselasky};
5175290650Shselasky
5176290650Shselaskystruct mlx5_ifc_qp_2rst_in_bits {
5177290650Shselasky	u8         opcode[0x10];
5178290650Shselasky	u8         reserved_0[0x10];
5179290650Shselasky
5180290650Shselasky	u8         reserved_1[0x10];
5181290650Shselasky	u8         op_mod[0x10];
5182290650Shselasky
5183290650Shselasky	u8         reserved_2[0x8];
5184290650Shselasky	u8         qpn[0x18];
5185290650Shselasky
5186290650Shselasky	u8         reserved_3[0x20];
5187290650Shselasky};
5188290650Shselasky
5189290650Shselaskystruct mlx5_ifc_qp_2err_out_bits {
5190290650Shselasky	u8         status[0x8];
5191290650Shselasky	u8         reserved_0[0x18];
5192290650Shselasky
5193290650Shselasky	u8         syndrome[0x20];
5194290650Shselasky
5195290650Shselasky	u8         reserved_1[0x40];
5196290650Shselasky};
5197290650Shselasky
5198290650Shselaskystruct mlx5_ifc_qp_2err_in_bits {
5199290650Shselasky	u8         opcode[0x10];
5200290650Shselasky	u8         reserved_0[0x10];
5201290650Shselasky
5202290650Shselasky	u8         reserved_1[0x10];
5203290650Shselasky	u8         op_mod[0x10];
5204290650Shselasky
5205290650Shselasky	u8         reserved_2[0x8];
5206290650Shselasky	u8         qpn[0x18];
5207290650Shselasky
5208290650Shselasky	u8         reserved_3[0x20];
5209290650Shselasky};
5210290650Shselasky
5211308678Shselaskystruct mlx5_ifc_para_vport_element_bits {
5212308678Shselasky	u8         reserved_at_0[0xc];
5213308678Shselasky	u8         traffic_class[0x4];
5214308678Shselasky	u8         qos_para_vport_number[0x10];
5215308678Shselasky};
5216308678Shselasky
5217290650Shselaskystruct mlx5_ifc_page_fault_resume_out_bits {
5218290650Shselasky	u8         status[0x8];
5219290650Shselasky	u8         reserved_0[0x18];
5220290650Shselasky
5221290650Shselasky	u8         syndrome[0x20];
5222290650Shselasky
5223290650Shselasky	u8         reserved_1[0x40];
5224290650Shselasky};
5225290650Shselasky
5226290650Shselaskystruct mlx5_ifc_page_fault_resume_in_bits {
5227290650Shselasky	u8         opcode[0x10];
5228290650Shselasky	u8         reserved_0[0x10];
5229290650Shselasky
5230290650Shselasky	u8         reserved_1[0x10];
5231290650Shselasky	u8         op_mod[0x10];
5232290650Shselasky
5233290650Shselasky	u8         error[0x1];
5234290650Shselasky	u8         reserved_2[0x4];
5235290650Shselasky	u8         rdma[0x1];
5236290650Shselasky	u8         read_write[0x1];
5237290650Shselasky	u8         req_res[0x1];
5238290650Shselasky	u8         qpn[0x18];
5239290650Shselasky
5240290650Shselasky	u8         reserved_3[0x20];
5241290650Shselasky};
5242290650Shselasky
5243290650Shselaskystruct mlx5_ifc_nop_out_bits {
5244290650Shselasky	u8         status[0x8];
5245290650Shselasky	u8         reserved_0[0x18];
5246290650Shselasky
5247290650Shselasky	u8         syndrome[0x20];
5248290650Shselasky
5249290650Shselasky	u8         reserved_1[0x40];
5250290650Shselasky};
5251290650Shselasky
5252290650Shselaskystruct mlx5_ifc_nop_in_bits {
5253290650Shselasky	u8         opcode[0x10];
5254290650Shselasky	u8         reserved_0[0x10];
5255290650Shselasky
5256290650Shselasky	u8         reserved_1[0x10];
5257290650Shselasky	u8         op_mod[0x10];
5258290650Shselasky
5259290650Shselasky	u8         reserved_2[0x40];
5260290650Shselasky};
5261290650Shselasky
5262290650Shselaskystruct mlx5_ifc_modify_vport_state_out_bits {
5263290650Shselasky	u8         status[0x8];
5264290650Shselasky	u8         reserved_0[0x18];
5265290650Shselasky
5266290650Shselasky	u8         syndrome[0x20];
5267290650Shselasky
5268290650Shselasky	u8         reserved_1[0x40];
5269290650Shselasky};
5270290650Shselasky
5271290650Shselaskyenum {
5272290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_OP_MOD_NIC_VPORT  = 0x0,
5273290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_OP_MOD_ESW_VPORT  = 0x1,
5274290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_OP_MOD_UPLINK     = 0x2,
5275290650Shselasky};
5276290650Shselasky
5277290650Shselaskyenum {
5278290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_ADMIN_STATE_DOWN    = 0x0,
5279290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_ADMIN_STATE_UP      = 0x1,
5280290650Shselasky	MLX5_MODIFY_VPORT_STATE_IN_ADMIN_STATE_FOLLOW  = 0x2,
5281290650Shselasky};
5282290650Shselasky
5283290650Shselaskystruct mlx5_ifc_modify_vport_state_in_bits {
5284290650Shselasky	u8         opcode[0x10];
5285290650Shselasky	u8         reserved_0[0x10];
5286290650Shselasky
5287290650Shselasky	u8         reserved_1[0x10];
5288290650Shselasky	u8         op_mod[0x10];
5289290650Shselasky
5290290650Shselasky	u8         other_vport[0x1];
5291290650Shselasky	u8         reserved_2[0xf];
5292290650Shselasky	u8         vport_number[0x10];
5293290650Shselasky
5294290650Shselasky	u8         reserved_3[0x18];
5295290650Shselasky	u8         admin_state[0x4];
5296290650Shselasky	u8         reserved_4[0x4];
5297290650Shselasky};
5298290650Shselasky
5299290650Shselaskystruct mlx5_ifc_modify_tis_out_bits {
5300290650Shselasky	u8         status[0x8];
5301290650Shselasky	u8         reserved_0[0x18];
5302290650Shselasky
5303290650Shselasky	u8         syndrome[0x20];
5304290650Shselasky
5305290650Shselasky	u8         reserved_1[0x40];
5306290650Shselasky};
5307290650Shselasky
5308329204Shselaskystruct mlx5_ifc_modify_tis_bitmask_bits {
5309329204Shselasky	u8         reserved_at_0[0x20];
5310329204Shselasky
5311329204Shselasky	u8         reserved_at_20[0x1d];
5312329204Shselasky	u8         lag_tx_port_affinity[0x1];
5313329204Shselasky	u8         strict_lag_tx_port_affinity[0x1];
5314329204Shselasky	u8         prio[0x1];
5315329204Shselasky};
5316329204Shselasky
5317290650Shselaskystruct mlx5_ifc_modify_tis_in_bits {
5318290650Shselasky	u8         opcode[0x10];
5319290650Shselasky	u8         reserved_0[0x10];
5320290650Shselasky
5321290650Shselasky	u8         reserved_1[0x10];
5322290650Shselasky	u8         op_mod[0x10];
5323290650Shselasky
5324290650Shselasky	u8         reserved_2[0x8];
5325290650Shselasky	u8         tisn[0x18];
5326290650Shselasky
5327290650Shselasky	u8         reserved_3[0x20];
5328290650Shselasky
5329329204Shselasky	struct mlx5_ifc_modify_tis_bitmask_bits bitmask;
5330290650Shselasky
5331290650Shselasky	u8         reserved_4[0x40];
5332290650Shselasky
5333290650Shselasky	struct mlx5_ifc_tisc_bits ctx;
5334290650Shselasky};
5335290650Shselasky
5336290650Shselaskystruct mlx5_ifc_modify_tir_out_bits {
5337290650Shselasky	u8         status[0x8];
5338290650Shselasky	u8         reserved_0[0x18];
5339290650Shselasky
5340290650Shselasky	u8         syndrome[0x20];
5341290650Shselasky
5342290650Shselasky	u8         reserved_1[0x40];
5343290650Shselasky};
5344290650Shselasky
5345308678Shselaskyenum
5346308678Shselasky{
5347308678Shselasky	MLX5_MODIFY_SQ_BITMASK_PACKET_PACING_RATE_LIMIT_INDEX = 0x1 << 0,
5348308678Shselasky	MLX5_MODIFY_SQ_BITMASK_QOS_PARA_VPORT_NUMBER =		0x1 << 1
5349308678Shselasky};
5350308678Shselasky
5351290650Shselaskystruct mlx5_ifc_modify_tir_in_bits {
5352290650Shselasky	u8         opcode[0x10];
5353290650Shselasky	u8         reserved_0[0x10];
5354290650Shselasky
5355290650Shselasky	u8         reserved_1[0x10];
5356290650Shselasky	u8         op_mod[0x10];
5357290650Shselasky
5358290650Shselasky	u8         reserved_2[0x8];
5359290650Shselasky	u8         tirn[0x18];
5360290650Shselasky
5361290650Shselasky	u8         reserved_3[0x20];
5362290650Shselasky
5363290650Shselasky	u8         modify_bitmask[0x40];
5364290650Shselasky
5365290650Shselasky	u8         reserved_4[0x40];
5366290650Shselasky
5367290650Shselasky	struct mlx5_ifc_tirc_bits tir_context;
5368290650Shselasky};
5369290650Shselasky
5370290650Shselaskystruct mlx5_ifc_modify_sq_out_bits {
5371290650Shselasky	u8         status[0x8];
5372290650Shselasky	u8         reserved_0[0x18];
5373290650Shselasky
5374290650Shselasky	u8         syndrome[0x20];
5375290650Shselasky
5376290650Shselasky	u8         reserved_1[0x40];
5377290650Shselasky};
5378290650Shselasky
5379290650Shselaskystruct mlx5_ifc_modify_sq_in_bits {
5380290650Shselasky	u8         opcode[0x10];
5381290650Shselasky	u8         reserved_0[0x10];
5382290650Shselasky
5383290650Shselasky	u8         reserved_1[0x10];
5384290650Shselasky	u8         op_mod[0x10];
5385290650Shselasky
5386290650Shselasky	u8         sq_state[0x4];
5387290650Shselasky	u8         reserved_2[0x4];
5388290650Shselasky	u8         sqn[0x18];
5389290650Shselasky
5390290650Shselasky	u8         reserved_3[0x20];
5391290650Shselasky
5392290650Shselasky	u8         modify_bitmask[0x40];
5393290650Shselasky
5394290650Shselasky	u8         reserved_4[0x40];
5395290650Shselasky
5396290650Shselasky	struct mlx5_ifc_sqc_bits ctx;
5397290650Shselasky};
5398290650Shselasky
5399308678Shselaskystruct mlx5_ifc_modify_scheduling_element_out_bits {
5400308678Shselasky	u8         status[0x8];
5401308678Shselasky	u8         reserved_at_8[0x18];
5402308678Shselasky
5403308678Shselasky	u8         syndrome[0x20];
5404308678Shselasky
5405308678Shselasky	u8         reserved_at_40[0x1c0];
5406308678Shselasky};
5407308678Shselasky
5408308678Shselaskyenum {
5409308678Shselasky	MLX5_MODIFY_SCHEDULING_ELEMENT_IN_SCHEDULING_HIERARCHY_E_SWITCH  = 0x2,
5410308678Shselasky};
5411308678Shselasky
5412308678Shselaskyenum {
5413308678Shselasky	MLX5_MODIFY_SCHEDULING_ELEMENT_BITMASK_BW_SHARE        = 0x1,
5414308678Shselasky	MLX5_MODIFY_SCHEDULING_ELEMENT_BITMASK_MAX_AVERAGE_BW  = 0x2,
5415308678Shselasky};
5416308678Shselasky
5417308678Shselaskystruct mlx5_ifc_modify_scheduling_element_in_bits {
5418308678Shselasky	u8         opcode[0x10];
5419308678Shselasky	u8         reserved_at_10[0x10];
5420308678Shselasky
5421308678Shselasky	u8         reserved_at_20[0x10];
5422308678Shselasky	u8         op_mod[0x10];
5423308678Shselasky
5424308678Shselasky	u8         scheduling_hierarchy[0x8];
5425308678Shselasky	u8         reserved_at_48[0x18];
5426308678Shselasky
5427308678Shselasky	u8         scheduling_element_id[0x20];
5428308678Shselasky
5429308678Shselasky	u8         reserved_at_80[0x20];
5430308678Shselasky
5431308678Shselasky	u8         modify_bitmask[0x20];
5432308678Shselasky
5433308678Shselasky	u8         reserved_at_c0[0x40];
5434308678Shselasky
5435308678Shselasky	struct mlx5_ifc_scheduling_context_bits scheduling_context;
5436308678Shselasky
5437308678Shselasky	u8         reserved_at_300[0x100];
5438308678Shselasky};
5439308678Shselasky
5440290650Shselaskystruct mlx5_ifc_modify_rqt_out_bits {
5441290650Shselasky	u8         status[0x8];
5442290650Shselasky	u8         reserved_0[0x18];
5443290650Shselasky
5444290650Shselasky	u8         syndrome[0x20];
5445290650Shselasky
5446290650Shselasky	u8         reserved_1[0x40];
5447290650Shselasky};
5448290650Shselasky
5449290650Shselaskystruct mlx5_ifc_modify_rqt_in_bits {
5450290650Shselasky	u8         opcode[0x10];
5451290650Shselasky	u8         reserved_0[0x10];
5452290650Shselasky
5453290650Shselasky	u8         reserved_1[0x10];
5454290650Shselasky	u8         op_mod[0x10];
5455290650Shselasky
5456290650Shselasky	u8         reserved_2[0x8];
5457290650Shselasky	u8         rqtn[0x18];
5458290650Shselasky
5459290650Shselasky	u8         reserved_3[0x20];
5460290650Shselasky
5461290650Shselasky	u8         modify_bitmask[0x40];
5462290650Shselasky
5463290650Shselasky	u8         reserved_4[0x40];
5464290650Shselasky
5465290650Shselasky	struct mlx5_ifc_rqtc_bits ctx;
5466290650Shselasky};
5467290650Shselasky
5468290650Shselaskystruct mlx5_ifc_modify_rq_out_bits {
5469290650Shselasky	u8         status[0x8];
5470290650Shselasky	u8         reserved_0[0x18];
5471290650Shselasky
5472290650Shselasky	u8         syndrome[0x20];
5473290650Shselasky
5474290650Shselasky	u8         reserved_1[0x40];
5475290650Shselasky};
5476290650Shselasky
5477329204Shselaskyenum {
5478329204Shselasky	MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_VSD = 1ULL << 1,
5479329204Shselasky	MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_MODIFY_RQ_COUNTER_SET_ID = 1ULL << 3,
5480306233Shselasky};
5481306233Shselasky
5482290650Shselaskystruct mlx5_ifc_modify_rq_in_bits {
5483290650Shselasky	u8         opcode[0x10];
5484290650Shselasky	u8         reserved_0[0x10];
5485290650Shselasky
5486290650Shselasky	u8         reserved_1[0x10];
5487290650Shselasky	u8         op_mod[0x10];
5488290650Shselasky
5489290650Shselasky	u8         rq_state[0x4];
5490290650Shselasky	u8         reserved_2[0x4];
5491290650Shselasky	u8         rqn[0x18];
5492290650Shselasky
5493290650Shselasky	u8         reserved_3[0x20];
5494290650Shselasky
5495329204Shselasky	u8         modify_bitmask[0x40];
5496290650Shselasky
5497290650Shselasky	u8         reserved_4[0x40];
5498290650Shselasky
5499290650Shselasky	struct mlx5_ifc_rqc_bits ctx;
5500290650Shselasky};
5501290650Shselasky
5502290650Shselaskystruct mlx5_ifc_modify_rmp_out_bits {
5503290650Shselasky	u8         status[0x8];
5504290650Shselasky	u8         reserved_0[0x18];
5505290650Shselasky
5506290650Shselasky	u8         syndrome[0x20];
5507290650Shselasky
5508290650Shselasky	u8         reserved_1[0x40];
5509290650Shselasky};
5510290650Shselasky
5511290650Shselaskystruct mlx5_ifc_rmp_bitmask_bits {
5512290650Shselasky	u8	   reserved[0x20];
5513290650Shselasky
5514290650Shselasky	u8         reserved1[0x1f];
5515290650Shselasky	u8         lwm[0x1];
5516290650Shselasky};
5517290650Shselasky
5518290650Shselaskystruct mlx5_ifc_modify_rmp_in_bits {
5519290650Shselasky	u8         opcode[0x10];
5520290650Shselasky	u8         reserved_0[0x10];
5521290650Shselasky
5522290650Shselasky	u8         reserved_1[0x10];
5523290650Shselasky	u8         op_mod[0x10];
5524290650Shselasky
5525290650Shselasky	u8         rmp_state[0x4];
5526290650Shselasky	u8         reserved_2[0x4];
5527290650Shselasky	u8         rmpn[0x18];
5528290650Shselasky
5529290650Shselasky	u8         reserved_3[0x20];
5530290650Shselasky
5531290650Shselasky	struct mlx5_ifc_rmp_bitmask_bits bitmask;
5532290650Shselasky
5533290650Shselasky	u8         reserved_4[0x40];
5534290650Shselasky
5535290650Shselasky	struct mlx5_ifc_rmpc_bits ctx;
5536290650Shselasky};
5537290650Shselasky
5538290650Shselaskystruct mlx5_ifc_modify_nic_vport_context_out_bits {
5539290650Shselasky	u8         status[0x8];
5540290650Shselasky	u8         reserved_0[0x18];
5541290650Shselasky
5542290650Shselasky	u8         syndrome[0x20];
5543290650Shselasky
5544290650Shselasky	u8         reserved_1[0x40];
5545290650Shselasky};
5546290650Shselasky
5547290650Shselaskystruct mlx5_ifc_modify_nic_vport_field_select_bits {
5548321992Shselasky	u8         reserved_0[0x14];
5549321992Shselasky	u8         disable_uc_local_lb[0x1];
5550321992Shselasky	u8         disable_mc_local_lb[0x1];
5551306233Shselasky	u8         node_guid[0x1];
5552306233Shselasky	u8         port_guid[0x1];
5553290650Shselasky	u8         min_wqe_inline_mode[0x1];
5554290650Shselasky	u8         mtu[0x1];
5555290650Shselasky	u8         change_event[0x1];
5556290650Shselasky	u8         promisc[0x1];
5557290650Shselasky	u8         permanent_address[0x1];
5558290650Shselasky	u8         addresses_list[0x1];
5559290650Shselasky	u8         roce_en[0x1];
5560290650Shselasky	u8         reserved_1[0x1];
5561290650Shselasky};
5562290650Shselasky
5563290650Shselaskystruct mlx5_ifc_modify_nic_vport_context_in_bits {
5564290650Shselasky	u8         opcode[0x10];
5565290650Shselasky	u8         reserved_0[0x10];
5566290650Shselasky
5567290650Shselasky	u8         reserved_1[0x10];
5568290650Shselasky	u8         op_mod[0x10];
5569290650Shselasky
5570290650Shselasky	u8         other_vport[0x1];
5571290650Shselasky	u8         reserved_2[0xf];
5572290650Shselasky	u8         vport_number[0x10];
5573290650Shselasky
5574290650Shselasky	struct mlx5_ifc_modify_nic_vport_field_select_bits field_select;
5575290650Shselasky
5576290650Shselasky	u8         reserved_3[0x780];
5577290650Shselasky
5578290650Shselasky	struct mlx5_ifc_nic_vport_context_bits nic_vport_context;
5579290650Shselasky};
5580290650Shselasky
5581290650Shselaskystruct mlx5_ifc_modify_hca_vport_context_out_bits {
5582290650Shselasky	u8         status[0x8];
5583290650Shselasky	u8         reserved_0[0x18];
5584290650Shselasky
5585290650Shselasky	u8         syndrome[0x20];
5586290650Shselasky
5587290650Shselasky	u8         reserved_1[0x40];
5588290650Shselasky};
5589290650Shselasky
5590306233Shselaskystruct mlx5_ifc_grh_bits {
5591306233Shselasky	u8	ip_version[4];
5592306233Shselasky	u8	traffic_class[8];
5593306233Shselasky	u8	flow_label[20];
5594306233Shselasky	u8	payload_length[16];
5595306233Shselasky	u8	next_header[8];
5596306233Shselasky	u8	hop_limit[8];
5597306233Shselasky	u8	sgid[128];
5598306233Shselasky	u8	dgid[128];
5599306233Shselasky};
5600306233Shselasky
5601306233Shselaskystruct mlx5_ifc_bth_bits {
5602306233Shselasky	u8	opcode[8];
5603306233Shselasky	u8	se[1];
5604306233Shselasky	u8	migreq[1];
5605306233Shselasky	u8	pad_count[2];
5606306233Shselasky	u8	tver[4];
5607306233Shselasky	u8	p_key[16];
5608306233Shselasky	u8	reserved8[8];
5609306233Shselasky	u8	dest_qp[24];
5610306233Shselasky	u8	ack_req[1];
5611306233Shselasky	u8	reserved7[7];
5612306233Shselasky	u8	psn[24];
5613306233Shselasky};
5614306233Shselasky
5615306233Shselaskystruct mlx5_ifc_aeth_bits {
5616306233Shselasky	u8	syndrome[8];
5617306233Shselasky	u8	msn[24];
5618306233Shselasky};
5619306233Shselasky
5620306233Shselaskystruct mlx5_ifc_dceth_bits {
5621306233Shselasky	u8	reserved0[8];
5622306233Shselasky	u8	session_id[24];
5623306233Shselasky	u8	reserved1[8];
5624306233Shselasky	u8	dci_dct[24];
5625306233Shselasky};
5626306233Shselasky
5627290650Shselaskystruct mlx5_ifc_modify_hca_vport_context_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         other_vport[0x1];
5635290650Shselasky	u8         reserved_2[0xb];
5636290650Shselasky	u8         port_num[0x4];
5637290650Shselasky	u8         vport_number[0x10];
5638290650Shselasky
5639290650Shselasky	u8         reserved_3[0x20];
5640290650Shselasky
5641290650Shselasky	struct mlx5_ifc_hca_vport_context_bits hca_vport_context;
5642290650Shselasky};
5643290650Shselasky
5644329200Shselaskystruct mlx5_ifc_modify_flow_table_out_bits {
5645329200Shselasky	u8         status[0x8];
5646329200Shselasky	u8         reserved_at_8[0x18];
5647329200Shselasky
5648329200Shselasky	u8         syndrome[0x20];
5649329200Shselasky
5650329200Shselasky	u8         reserved_at_40[0x40];
5651329200Shselasky};
5652329200Shselasky
5653329200Shselaskyenum {
5654329200Shselasky	MLX5_MODIFY_FLOW_TABLE_SELECT_MISS_ACTION_AND_ID = 0x1,
5655329200Shselasky	MLX5_MODIFY_FLOW_TABLE_SELECT_LAG_MASTER_NEXT_TABLE_ID = 0x8000,
5656329200Shselasky};
5657329200Shselasky
5658329200Shselaskystruct mlx5_ifc_modify_flow_table_in_bits {
5659329200Shselasky	u8         opcode[0x10];
5660329200Shselasky	u8         reserved_at_10[0x10];
5661329200Shselasky
5662329200Shselasky	u8         reserved_at_20[0x10];
5663329200Shselasky	u8         op_mod[0x10];
5664329200Shselasky
5665329200Shselasky	u8         other_vport[0x1];
5666329200Shselasky	u8         reserved_at_41[0xf];
5667329200Shselasky	u8         vport_number[0x10];
5668329200Shselasky
5669329200Shselasky	u8         reserved_at_60[0x10];
5670329200Shselasky	u8         modify_field_select[0x10];
5671329200Shselasky
5672329200Shselasky	u8         table_type[0x8];
5673329200Shselasky	u8         reserved_at_88[0x18];
5674329200Shselasky
5675329200Shselasky	u8         reserved_at_a0[0x8];
5676329200Shselasky	u8         table_id[0x18];
5677329200Shselasky
5678329200Shselasky	struct mlx5_ifc_flow_table_context_bits flow_table_context;
5679329200Shselasky};
5680329200Shselasky
5681290650Shselaskystruct mlx5_ifc_modify_esw_vport_context_out_bits {
5682290650Shselasky	u8         status[0x8];
5683290650Shselasky	u8         reserved_0[0x18];
5684290650Shselasky
5685290650Shselasky	u8         syndrome[0x20];
5686290650Shselasky
5687290650Shselasky	u8         reserved_1[0x40];
5688290650Shselasky};
5689290650Shselasky
5690306233Shselaskystruct mlx5_ifc_esw_vport_context_fields_select_bits {
5691306233Shselasky	u8         reserved[0x1c];
5692306233Shselasky	u8         vport_cvlan_insert[0x1];
5693306233Shselasky	u8         vport_svlan_insert[0x1];
5694306233Shselasky	u8         vport_cvlan_strip[0x1];
5695306233Shselasky	u8         vport_svlan_strip[0x1];
5696306233Shselasky};
5697306233Shselasky
5698290650Shselaskystruct mlx5_ifc_modify_esw_vport_context_in_bits {
5699290650Shselasky	u8         opcode[0x10];
5700290650Shselasky	u8         reserved_0[0x10];
5701290650Shselasky
5702290650Shselasky	u8         reserved_1[0x10];
5703290650Shselasky	u8         op_mod[0x10];
5704290650Shselasky
5705290650Shselasky	u8         other_vport[0x1];
5706290650Shselasky	u8         reserved_2[0xf];
5707290650Shselasky	u8         vport_number[0x10];
5708290650Shselasky
5709306233Shselasky	struct mlx5_ifc_esw_vport_context_fields_select_bits field_select;
5710290650Shselasky
5711290650Shselasky	struct mlx5_ifc_esw_vport_context_bits esw_vport_context;
5712290650Shselasky};
5713290650Shselasky
5714290650Shselaskystruct mlx5_ifc_modify_cq_out_bits {
5715290650Shselasky	u8         status[0x8];
5716290650Shselasky	u8         reserved_0[0x18];
5717290650Shselasky
5718290650Shselasky	u8         syndrome[0x20];
5719290650Shselasky
5720290650Shselasky	u8         reserved_1[0x40];
5721290650Shselasky};
5722290650Shselasky
5723290650Shselaskyenum {
5724290650Shselasky	MLX5_MODIFY_CQ_IN_OP_MOD_MODIFY_CQ  = 0x0,
5725290650Shselasky	MLX5_MODIFY_CQ_IN_OP_MOD_RESIZE_CQ  = 0x1,
5726290650Shselasky};
5727290650Shselasky
5728290650Shselaskystruct mlx5_ifc_modify_cq_in_bits {
5729290650Shselasky	u8         opcode[0x10];
5730290650Shselasky	u8         reserved_0[0x10];
5731290650Shselasky
5732290650Shselasky	u8         reserved_1[0x10];
5733290650Shselasky	u8         op_mod[0x10];
5734290650Shselasky
5735290650Shselasky	u8         reserved_2[0x8];
5736290650Shselasky	u8         cqn[0x18];
5737290650Shselasky
5738290650Shselasky	union mlx5_ifc_modify_field_select_resize_field_select_auto_bits modify_field_select_resize_field_select;
5739290650Shselasky
5740290650Shselasky	struct mlx5_ifc_cqc_bits cq_context;
5741290650Shselasky
5742290650Shselasky	u8         reserved_3[0x600];
5743290650Shselasky
5744290650Shselasky	u8         pas[0][0x40];
5745290650Shselasky};
5746290650Shselasky
5747290650Shselaskystruct mlx5_ifc_modify_cong_status_out_bits {
5748290650Shselasky	u8         status[0x8];
5749290650Shselasky	u8         reserved_0[0x18];
5750290650Shselasky
5751290650Shselasky	u8         syndrome[0x20];
5752290650Shselasky
5753290650Shselasky	u8         reserved_1[0x40];
5754290650Shselasky};
5755290650Shselasky
5756290650Shselaskystruct mlx5_ifc_modify_cong_status_in_bits {
5757290650Shselasky	u8         opcode[0x10];
5758290650Shselasky	u8         reserved_0[0x10];
5759290650Shselasky
5760290650Shselasky	u8         reserved_1[0x10];
5761290650Shselasky	u8         op_mod[0x10];
5762290650Shselasky
5763290650Shselasky	u8         reserved_2[0x18];
5764290650Shselasky	u8         priority[0x4];
5765290650Shselasky	u8         cong_protocol[0x4];
5766290650Shselasky
5767290650Shselasky	u8         enable[0x1];
5768290650Shselasky	u8         tag_enable[0x1];
5769290650Shselasky	u8         reserved_3[0x1e];
5770290650Shselasky};
5771290650Shselasky
5772290650Shselaskystruct mlx5_ifc_modify_cong_params_out_bits {
5773290650Shselasky	u8         status[0x8];
5774290650Shselasky	u8         reserved_0[0x18];
5775290650Shselasky
5776290650Shselasky	u8         syndrome[0x20];
5777290650Shselasky
5778290650Shselasky	u8         reserved_1[0x40];
5779290650Shselasky};
5780290650Shselasky
5781290650Shselaskystruct mlx5_ifc_modify_cong_params_in_bits {
5782290650Shselasky	u8         opcode[0x10];
5783290650Shselasky	u8         reserved_0[0x10];
5784290650Shselasky
5785290650Shselasky	u8         reserved_1[0x10];
5786290650Shselasky	u8         op_mod[0x10];
5787290650Shselasky
5788290650Shselasky	u8         reserved_2[0x1c];
5789290650Shselasky	u8         cong_protocol[0x4];
5790290650Shselasky
5791290650Shselasky	union mlx5_ifc_field_select_802_1_r_roce_auto_bits field_select;
5792290650Shselasky
5793290650Shselasky	u8         reserved_3[0x80];
5794290650Shselasky
5795290650Shselasky	union mlx5_ifc_cong_control_roce_ecn_auto_bits congestion_parameters;
5796290650Shselasky};
5797290650Shselasky
5798290650Shselaskystruct mlx5_ifc_manage_pages_out_bits {
5799290650Shselasky	u8         status[0x8];
5800290650Shselasky	u8         reserved_0[0x18];
5801290650Shselasky
5802290650Shselasky	u8         syndrome[0x20];
5803290650Shselasky
5804290650Shselasky	u8         output_num_entries[0x20];
5805290650Shselasky
5806290650Shselasky	u8         reserved_1[0x20];
5807290650Shselasky
5808290650Shselasky	u8         pas[0][0x40];
5809290650Shselasky};
5810290650Shselasky
5811290650Shselaskyenum {
5812290650Shselasky	MLX5_PAGES_CANT_GIVE                            = 0x0,
5813290650Shselasky	MLX5_PAGES_GIVE                                 = 0x1,
5814290650Shselasky	MLX5_PAGES_TAKE                                 = 0x2,
5815290650Shselasky};
5816290650Shselasky
5817290650Shselaskystruct mlx5_ifc_manage_pages_in_bits {
5818290650Shselasky	u8         opcode[0x10];
5819290650Shselasky	u8         reserved_0[0x10];
5820290650Shselasky
5821290650Shselasky	u8         reserved_1[0x10];
5822290650Shselasky	u8         op_mod[0x10];
5823290650Shselasky
5824290650Shselasky	u8         reserved_2[0x10];
5825290650Shselasky	u8         function_id[0x10];
5826290650Shselasky
5827290650Shselasky	u8         input_num_entries[0x20];
5828290650Shselasky
5829290650Shselasky	u8         pas[0][0x40];
5830290650Shselasky};
5831290650Shselasky
5832290650Shselaskystruct mlx5_ifc_mad_ifc_out_bits {
5833290650Shselasky	u8         status[0x8];
5834290650Shselasky	u8         reserved_0[0x18];
5835290650Shselasky
5836290650Shselasky	u8         syndrome[0x20];
5837290650Shselasky
5838290650Shselasky	u8         reserved_1[0x40];
5839290650Shselasky
5840290650Shselasky	u8         response_mad_packet[256][0x8];
5841290650Shselasky};
5842290650Shselasky
5843290650Shselaskystruct mlx5_ifc_mad_ifc_in_bits {
5844290650Shselasky	u8         opcode[0x10];
5845290650Shselasky	u8         reserved_0[0x10];
5846290650Shselasky
5847290650Shselasky	u8         reserved_1[0x10];
5848290650Shselasky	u8         op_mod[0x10];
5849290650Shselasky
5850290650Shselasky	u8         remote_lid[0x10];
5851290650Shselasky	u8         reserved_2[0x8];
5852290650Shselasky	u8         port[0x8];
5853290650Shselasky
5854290650Shselasky	u8         reserved_3[0x20];
5855290650Shselasky
5856290650Shselasky	u8         mad[256][0x8];
5857290650Shselasky};
5858290650Shselasky
5859290650Shselaskystruct mlx5_ifc_init_hca_out_bits {
5860290650Shselasky	u8         status[0x8];
5861290650Shselasky	u8         reserved_0[0x18];
5862290650Shselasky
5863290650Shselasky	u8         syndrome[0x20];
5864290650Shselasky
5865290650Shselasky	u8         reserved_1[0x40];
5866290650Shselasky};
5867290650Shselasky
5868290650Shselaskyenum {
5869290650Shselasky	MLX5_INIT_HCA_IN_OP_MOD_INIT      = 0x0,
5870290650Shselasky	MLX5_INIT_HCA_IN_OP_MOD_PRE_INIT  = 0x1,
5871290650Shselasky};
5872290650Shselasky
5873290650Shselaskystruct mlx5_ifc_init_hca_in_bits {
5874290650Shselasky	u8         opcode[0x10];
5875290650Shselasky	u8         reserved_0[0x10];
5876290650Shselasky
5877290650Shselasky	u8         reserved_1[0x10];
5878290650Shselasky	u8         op_mod[0x10];
5879290650Shselasky
5880290650Shselasky	u8         reserved_2[0x40];
5881290650Shselasky};
5882290650Shselasky
5883290650Shselaskystruct mlx5_ifc_init2rtr_qp_out_bits {
5884290650Shselasky	u8         status[0x8];
5885290650Shselasky	u8         reserved_0[0x18];
5886290650Shselasky
5887290650Shselasky	u8         syndrome[0x20];
5888290650Shselasky
5889290650Shselasky	u8         reserved_1[0x40];
5890290650Shselasky};
5891290650Shselasky
5892290650Shselaskystruct mlx5_ifc_init2rtr_qp_in_bits {
5893290650Shselasky	u8         opcode[0x10];
5894290650Shselasky	u8         reserved_0[0x10];
5895290650Shselasky
5896290650Shselasky	u8         reserved_1[0x10];
5897290650Shselasky	u8         op_mod[0x10];
5898290650Shselasky
5899290650Shselasky	u8         reserved_2[0x8];
5900290650Shselasky	u8         qpn[0x18];
5901290650Shselasky
5902290650Shselasky	u8         reserved_3[0x20];
5903290650Shselasky
5904290650Shselasky	u8         opt_param_mask[0x20];
5905290650Shselasky
5906290650Shselasky	u8         reserved_4[0x20];
5907290650Shselasky
5908290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
5909290650Shselasky
5910290650Shselasky	u8         reserved_5[0x80];
5911290650Shselasky};
5912290650Shselasky
5913290650Shselaskystruct mlx5_ifc_init2init_qp_out_bits {
5914290650Shselasky	u8         status[0x8];
5915290650Shselasky	u8         reserved_0[0x18];
5916290650Shselasky
5917290650Shselasky	u8         syndrome[0x20];
5918290650Shselasky
5919290650Shselasky	u8         reserved_1[0x40];
5920290650Shselasky};
5921290650Shselasky
5922290650Shselaskystruct mlx5_ifc_init2init_qp_in_bits {
5923290650Shselasky	u8         opcode[0x10];
5924290650Shselasky	u8         reserved_0[0x10];
5925290650Shselasky
5926290650Shselasky	u8         reserved_1[0x10];
5927290650Shselasky	u8         op_mod[0x10];
5928290650Shselasky
5929290650Shselasky	u8         reserved_2[0x8];
5930290650Shselasky	u8         qpn[0x18];
5931290650Shselasky
5932290650Shselasky	u8         reserved_3[0x20];
5933290650Shselasky
5934290650Shselasky	u8         opt_param_mask[0x20];
5935290650Shselasky
5936290650Shselasky	u8         reserved_4[0x20];
5937290650Shselasky
5938290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
5939290650Shselasky
5940290650Shselasky	u8         reserved_5[0x80];
5941290650Shselasky};
5942290650Shselasky
5943290650Shselaskystruct mlx5_ifc_get_dropped_packet_log_out_bits {
5944290650Shselasky	u8         status[0x8];
5945290650Shselasky	u8         reserved_0[0x18];
5946290650Shselasky
5947290650Shselasky	u8         syndrome[0x20];
5948290650Shselasky
5949290650Shselasky	u8         reserved_1[0x40];
5950290650Shselasky
5951290650Shselasky	u8         packet_headers_log[128][0x8];
5952290650Shselasky
5953290650Shselasky	u8         packet_syndrome[64][0x8];
5954290650Shselasky};
5955290650Shselasky
5956290650Shselaskystruct mlx5_ifc_get_dropped_packet_log_in_bits {
5957290650Shselasky	u8         opcode[0x10];
5958290650Shselasky	u8         reserved_0[0x10];
5959290650Shselasky
5960290650Shselasky	u8         reserved_1[0x10];
5961290650Shselasky	u8         op_mod[0x10];
5962290650Shselasky
5963290650Shselasky	u8         reserved_2[0x40];
5964290650Shselasky};
5965290650Shselasky
5966290650Shselaskystruct mlx5_ifc_gen_eqe_in_bits {
5967290650Shselasky	u8         opcode[0x10];
5968290650Shselasky	u8         reserved_0[0x10];
5969290650Shselasky
5970290650Shselasky	u8         reserved_1[0x10];
5971290650Shselasky	u8         op_mod[0x10];
5972290650Shselasky
5973290650Shselasky	u8         reserved_2[0x18];
5974290650Shselasky	u8         eq_number[0x8];
5975290650Shselasky
5976290650Shselasky	u8         reserved_3[0x20];
5977290650Shselasky
5978290650Shselasky	u8         eqe[64][0x8];
5979290650Shselasky};
5980290650Shselasky
5981290650Shselaskystruct mlx5_ifc_gen_eq_out_bits {
5982290650Shselasky	u8         status[0x8];
5983290650Shselasky	u8         reserved_0[0x18];
5984290650Shselasky
5985290650Shselasky	u8         syndrome[0x20];
5986290650Shselasky
5987290650Shselasky	u8         reserved_1[0x40];
5988290650Shselasky};
5989290650Shselasky
5990290650Shselaskystruct mlx5_ifc_enable_hca_out_bits {
5991290650Shselasky	u8         status[0x8];
5992290650Shselasky	u8         reserved_0[0x18];
5993290650Shselasky
5994290650Shselasky	u8         syndrome[0x20];
5995290650Shselasky
5996290650Shselasky	u8         reserved_1[0x20];
5997290650Shselasky};
5998290650Shselasky
5999290650Shselaskystruct mlx5_ifc_enable_hca_in_bits {
6000290650Shselasky	u8         opcode[0x10];
6001290650Shselasky	u8         reserved_0[0x10];
6002290650Shselasky
6003290650Shselasky	u8         reserved_1[0x10];
6004290650Shselasky	u8         op_mod[0x10];
6005290650Shselasky
6006290650Shselasky	u8         reserved_2[0x10];
6007290650Shselasky	u8         function_id[0x10];
6008290650Shselasky
6009290650Shselasky	u8         reserved_3[0x20];
6010290650Shselasky};
6011290650Shselasky
6012290650Shselaskystruct mlx5_ifc_drain_dct_out_bits {
6013290650Shselasky	u8         status[0x8];
6014290650Shselasky	u8         reserved_0[0x18];
6015290650Shselasky
6016290650Shselasky	u8         syndrome[0x20];
6017290650Shselasky
6018290650Shselasky	u8         reserved_1[0x40];
6019290650Shselasky};
6020290650Shselasky
6021290650Shselaskystruct mlx5_ifc_drain_dct_in_bits {
6022290650Shselasky	u8         opcode[0x10];
6023290650Shselasky	u8         reserved_0[0x10];
6024290650Shselasky
6025290650Shselasky	u8         reserved_1[0x10];
6026290650Shselasky	u8         op_mod[0x10];
6027290650Shselasky
6028290650Shselasky	u8         reserved_2[0x8];
6029290650Shselasky	u8         dctn[0x18];
6030290650Shselasky
6031290650Shselasky	u8         reserved_3[0x20];
6032290650Shselasky};
6033290650Shselasky
6034290650Shselaskystruct mlx5_ifc_disable_hca_out_bits {
6035290650Shselasky	u8         status[0x8];
6036290650Shselasky	u8         reserved_0[0x18];
6037290650Shselasky
6038290650Shselasky	u8         syndrome[0x20];
6039290650Shselasky
6040290650Shselasky	u8         reserved_1[0x20];
6041290650Shselasky};
6042290650Shselasky
6043290650Shselaskystruct mlx5_ifc_disable_hca_in_bits {
6044290650Shselasky	u8         opcode[0x10];
6045290650Shselasky	u8         reserved_0[0x10];
6046290650Shselasky
6047290650Shselasky	u8         reserved_1[0x10];
6048290650Shselasky	u8         op_mod[0x10];
6049290650Shselasky
6050290650Shselasky	u8         reserved_2[0x10];
6051290650Shselasky	u8         function_id[0x10];
6052290650Shselasky
6053290650Shselasky	u8         reserved_3[0x20];
6054290650Shselasky};
6055290650Shselasky
6056290650Shselaskystruct mlx5_ifc_detach_from_mcg_out_bits {
6057290650Shselasky	u8         status[0x8];
6058290650Shselasky	u8         reserved_0[0x18];
6059290650Shselasky
6060290650Shselasky	u8         syndrome[0x20];
6061290650Shselasky
6062290650Shselasky	u8         reserved_1[0x40];
6063290650Shselasky};
6064290650Shselasky
6065290650Shselaskystruct mlx5_ifc_detach_from_mcg_in_bits {
6066290650Shselasky	u8         opcode[0x10];
6067290650Shselasky	u8         reserved_0[0x10];
6068290650Shselasky
6069290650Shselasky	u8         reserved_1[0x10];
6070290650Shselasky	u8         op_mod[0x10];
6071290650Shselasky
6072290650Shselasky	u8         reserved_2[0x8];
6073290650Shselasky	u8         qpn[0x18];
6074290650Shselasky
6075290650Shselasky	u8         reserved_3[0x20];
6076290650Shselasky
6077290650Shselasky	u8         multicast_gid[16][0x8];
6078290650Shselasky};
6079290650Shselasky
6080290650Shselaskystruct mlx5_ifc_destroy_xrc_srq_out_bits {
6081290650Shselasky	u8         status[0x8];
6082290650Shselasky	u8         reserved_0[0x18];
6083290650Shselasky
6084290650Shselasky	u8         syndrome[0x20];
6085290650Shselasky
6086290650Shselasky	u8         reserved_1[0x40];
6087290650Shselasky};
6088290650Shselasky
6089290650Shselaskystruct mlx5_ifc_destroy_xrc_srq_in_bits {
6090290650Shselasky	u8         opcode[0x10];
6091290650Shselasky	u8         reserved_0[0x10];
6092290650Shselasky
6093290650Shselasky	u8         reserved_1[0x10];
6094290650Shselasky	u8         op_mod[0x10];
6095290650Shselasky
6096290650Shselasky	u8         reserved_2[0x8];
6097290650Shselasky	u8         xrc_srqn[0x18];
6098290650Shselasky
6099290650Shselasky	u8         reserved_3[0x20];
6100290650Shselasky};
6101290650Shselasky
6102290650Shselaskystruct mlx5_ifc_destroy_tis_out_bits {
6103290650Shselasky	u8         status[0x8];
6104290650Shselasky	u8         reserved_0[0x18];
6105290650Shselasky
6106290650Shselasky	u8         syndrome[0x20];
6107290650Shselasky
6108290650Shselasky	u8         reserved_1[0x40];
6109290650Shselasky};
6110290650Shselasky
6111290650Shselaskystruct mlx5_ifc_destroy_tis_in_bits {
6112290650Shselasky	u8         opcode[0x10];
6113290650Shselasky	u8         reserved_0[0x10];
6114290650Shselasky
6115290650Shselasky	u8         reserved_1[0x10];
6116290650Shselasky	u8         op_mod[0x10];
6117290650Shselasky
6118290650Shselasky	u8         reserved_2[0x8];
6119290650Shselasky	u8         tisn[0x18];
6120290650Shselasky
6121290650Shselasky	u8         reserved_3[0x20];
6122290650Shselasky};
6123290650Shselasky
6124290650Shselaskystruct mlx5_ifc_destroy_tir_out_bits {
6125290650Shselasky	u8         status[0x8];
6126290650Shselasky	u8         reserved_0[0x18];
6127290650Shselasky
6128290650Shselasky	u8         syndrome[0x20];
6129290650Shselasky
6130290650Shselasky	u8         reserved_1[0x40];
6131290650Shselasky};
6132290650Shselasky
6133290650Shselaskystruct mlx5_ifc_destroy_tir_in_bits {
6134290650Shselasky	u8         opcode[0x10];
6135290650Shselasky	u8         reserved_0[0x10];
6136290650Shselasky
6137290650Shselasky	u8         reserved_1[0x10];
6138290650Shselasky	u8         op_mod[0x10];
6139290650Shselasky
6140290650Shselasky	u8         reserved_2[0x8];
6141290650Shselasky	u8         tirn[0x18];
6142290650Shselasky
6143290650Shselasky	u8         reserved_3[0x20];
6144290650Shselasky};
6145290650Shselasky
6146290650Shselaskystruct mlx5_ifc_destroy_srq_out_bits {
6147290650Shselasky	u8         status[0x8];
6148290650Shselasky	u8         reserved_0[0x18];
6149290650Shselasky
6150290650Shselasky	u8         syndrome[0x20];
6151290650Shselasky
6152290650Shselasky	u8         reserved_1[0x40];
6153290650Shselasky};
6154290650Shselasky
6155290650Shselaskystruct mlx5_ifc_destroy_srq_in_bits {
6156290650Shselasky	u8         opcode[0x10];
6157290650Shselasky	u8         reserved_0[0x10];
6158290650Shselasky
6159290650Shselasky	u8         reserved_1[0x10];
6160290650Shselasky	u8         op_mod[0x10];
6161290650Shselasky
6162290650Shselasky	u8         reserved_2[0x8];
6163290650Shselasky	u8         srqn[0x18];
6164290650Shselasky
6165290650Shselasky	u8         reserved_3[0x20];
6166290650Shselasky};
6167290650Shselasky
6168290650Shselaskystruct mlx5_ifc_destroy_sq_out_bits {
6169290650Shselasky	u8         status[0x8];
6170290650Shselasky	u8         reserved_0[0x18];
6171290650Shselasky
6172290650Shselasky	u8         syndrome[0x20];
6173290650Shselasky
6174290650Shselasky	u8         reserved_1[0x40];
6175290650Shselasky};
6176290650Shselasky
6177290650Shselaskystruct mlx5_ifc_destroy_sq_in_bits {
6178290650Shselasky	u8         opcode[0x10];
6179290650Shselasky	u8         reserved_0[0x10];
6180290650Shselasky
6181290650Shselasky	u8         reserved_1[0x10];
6182290650Shselasky	u8         op_mod[0x10];
6183290650Shselasky
6184290650Shselasky	u8         reserved_2[0x8];
6185290650Shselasky	u8         sqn[0x18];
6186290650Shselasky
6187290650Shselasky	u8         reserved_3[0x20];
6188290650Shselasky};
6189290650Shselasky
6190308678Shselaskystruct mlx5_ifc_destroy_scheduling_element_out_bits {
6191308678Shselasky	u8         status[0x8];
6192308678Shselasky	u8         reserved_at_8[0x18];
6193308678Shselasky
6194308678Shselasky	u8         syndrome[0x20];
6195308678Shselasky
6196308678Shselasky	u8         reserved_at_40[0x1c0];
6197308678Shselasky};
6198308678Shselasky
6199308678Shselaskyenum {
6200308678Shselasky	MLX5_DESTROY_SCHEDULING_ELEMENT_IN_SCHEDULING_HIERARCHY_E_SWITCH  = 0x2,
6201308678Shselasky};
6202308678Shselasky
6203308678Shselaskystruct mlx5_ifc_destroy_scheduling_element_in_bits {
6204308678Shselasky	u8         opcode[0x10];
6205308678Shselasky	u8         reserved_at_10[0x10];
6206308678Shselasky
6207308678Shselasky	u8         reserved_at_20[0x10];
6208308678Shselasky	u8         op_mod[0x10];
6209308678Shselasky
6210308678Shselasky	u8         scheduling_hierarchy[0x8];
6211308678Shselasky	u8         reserved_at_48[0x18];
6212308678Shselasky
6213308678Shselasky	u8         scheduling_element_id[0x20];
6214308678Shselasky
6215308678Shselasky	u8         reserved_at_80[0x180];
6216308678Shselasky};
6217308678Shselasky
6218290650Shselaskystruct mlx5_ifc_destroy_rqt_out_bits {
6219290650Shselasky	u8         status[0x8];
6220290650Shselasky	u8         reserved_0[0x18];
6221290650Shselasky
6222290650Shselasky	u8         syndrome[0x20];
6223290650Shselasky
6224290650Shselasky	u8         reserved_1[0x40];
6225290650Shselasky};
6226290650Shselasky
6227290650Shselaskystruct mlx5_ifc_destroy_rqt_in_bits {
6228290650Shselasky	u8         opcode[0x10];
6229290650Shselasky	u8         reserved_0[0x10];
6230290650Shselasky
6231290650Shselasky	u8         reserved_1[0x10];
6232290650Shselasky	u8         op_mod[0x10];
6233290650Shselasky
6234290650Shselasky	u8         reserved_2[0x8];
6235290650Shselasky	u8         rqtn[0x18];
6236290650Shselasky
6237290650Shselasky	u8         reserved_3[0x20];
6238290650Shselasky};
6239290650Shselasky
6240290650Shselaskystruct mlx5_ifc_destroy_rq_out_bits {
6241290650Shselasky	u8         status[0x8];
6242290650Shselasky	u8         reserved_0[0x18];
6243290650Shselasky
6244290650Shselasky	u8         syndrome[0x20];
6245290650Shselasky
6246290650Shselasky	u8         reserved_1[0x40];
6247290650Shselasky};
6248290650Shselasky
6249290650Shselaskystruct mlx5_ifc_destroy_rq_in_bits {
6250290650Shselasky	u8         opcode[0x10];
6251290650Shselasky	u8         reserved_0[0x10];
6252290650Shselasky
6253290650Shselasky	u8         reserved_1[0x10];
6254290650Shselasky	u8         op_mod[0x10];
6255290650Shselasky
6256290650Shselasky	u8         reserved_2[0x8];
6257290650Shselasky	u8         rqn[0x18];
6258290650Shselasky
6259290650Shselasky	u8         reserved_3[0x20];
6260290650Shselasky};
6261290650Shselasky
6262290650Shselaskystruct mlx5_ifc_destroy_rmp_out_bits {
6263290650Shselasky	u8         status[0x8];
6264290650Shselasky	u8         reserved_0[0x18];
6265290650Shselasky
6266290650Shselasky	u8         syndrome[0x20];
6267290650Shselasky
6268290650Shselasky	u8         reserved_1[0x40];
6269290650Shselasky};
6270290650Shselasky
6271290650Shselaskystruct mlx5_ifc_destroy_rmp_in_bits {
6272290650Shselasky	u8         opcode[0x10];
6273290650Shselasky	u8         reserved_0[0x10];
6274290650Shselasky
6275290650Shselasky	u8         reserved_1[0x10];
6276290650Shselasky	u8         op_mod[0x10];
6277290650Shselasky
6278290650Shselasky	u8         reserved_2[0x8];
6279290650Shselasky	u8         rmpn[0x18];
6280290650Shselasky
6281290650Shselasky	u8         reserved_3[0x20];
6282290650Shselasky};
6283290650Shselasky
6284290650Shselaskystruct mlx5_ifc_destroy_qp_out_bits {
6285290650Shselasky	u8         status[0x8];
6286290650Shselasky	u8         reserved_0[0x18];
6287290650Shselasky
6288290650Shselasky	u8         syndrome[0x20];
6289290650Shselasky
6290290650Shselasky	u8         reserved_1[0x40];
6291290650Shselasky};
6292290650Shselasky
6293290650Shselaskystruct mlx5_ifc_destroy_qp_in_bits {
6294290650Shselasky	u8         opcode[0x10];
6295290650Shselasky	u8         reserved_0[0x10];
6296290650Shselasky
6297290650Shselasky	u8         reserved_1[0x10];
6298290650Shselasky	u8         op_mod[0x10];
6299290650Shselasky
6300290650Shselasky	u8         reserved_2[0x8];
6301290650Shselasky	u8         qpn[0x18];
6302290650Shselasky
6303290650Shselasky	u8         reserved_3[0x20];
6304290650Shselasky};
6305290650Shselasky
6306308678Shselaskystruct mlx5_ifc_destroy_qos_para_vport_out_bits {
6307308678Shselasky	u8         status[0x8];
6308308678Shselasky	u8         reserved_at_8[0x18];
6309308678Shselasky
6310308678Shselasky	u8         syndrome[0x20];
6311308678Shselasky
6312308678Shselasky	u8         reserved_at_40[0x1c0];
6313308678Shselasky};
6314308678Shselasky
6315308678Shselaskystruct mlx5_ifc_destroy_qos_para_vport_in_bits {
6316308678Shselasky	u8         opcode[0x10];
6317308678Shselasky	u8         reserved_at_10[0x10];
6318308678Shselasky
6319308678Shselasky	u8         reserved_at_20[0x10];
6320308678Shselasky	u8         op_mod[0x10];
6321308678Shselasky
6322308678Shselasky	u8         reserved_at_40[0x20];
6323308678Shselasky
6324308678Shselasky	u8         reserved_at_60[0x10];
6325308678Shselasky	u8         qos_para_vport_number[0x10];
6326308678Shselasky
6327308678Shselasky	u8         reserved_at_80[0x180];
6328308678Shselasky};
6329308678Shselasky
6330290650Shselaskystruct mlx5_ifc_destroy_psv_out_bits {
6331290650Shselasky	u8         status[0x8];
6332290650Shselasky	u8         reserved_0[0x18];
6333290650Shselasky
6334290650Shselasky	u8         syndrome[0x20];
6335290650Shselasky
6336290650Shselasky	u8         reserved_1[0x40];
6337290650Shselasky};
6338290650Shselasky
6339290650Shselaskystruct mlx5_ifc_destroy_psv_in_bits {
6340290650Shselasky	u8         opcode[0x10];
6341290650Shselasky	u8         reserved_0[0x10];
6342290650Shselasky
6343290650Shselasky	u8         reserved_1[0x10];
6344290650Shselasky	u8         op_mod[0x10];
6345290650Shselasky
6346290650Shselasky	u8         reserved_2[0x8];
6347290650Shselasky	u8         psvn[0x18];
6348290650Shselasky
6349290650Shselasky	u8         reserved_3[0x20];
6350290650Shselasky};
6351290650Shselasky
6352290650Shselaskystruct mlx5_ifc_destroy_mkey_out_bits {
6353290650Shselasky	u8         status[0x8];
6354290650Shselasky	u8         reserved_0[0x18];
6355290650Shselasky
6356290650Shselasky	u8         syndrome[0x20];
6357290650Shselasky
6358290650Shselasky	u8         reserved_1[0x40];
6359290650Shselasky};
6360290650Shselasky
6361290650Shselaskystruct mlx5_ifc_destroy_mkey_in_bits {
6362290650Shselasky	u8         opcode[0x10];
6363290650Shselasky	u8         reserved_0[0x10];
6364290650Shselasky
6365290650Shselasky	u8         reserved_1[0x10];
6366290650Shselasky	u8         op_mod[0x10];
6367290650Shselasky
6368290650Shselasky	u8         reserved_2[0x8];
6369290650Shselasky	u8         mkey_index[0x18];
6370290650Shselasky
6371290650Shselasky	u8         reserved_3[0x20];
6372290650Shselasky};
6373290650Shselasky
6374290650Shselaskystruct mlx5_ifc_destroy_flow_table_out_bits {
6375290650Shselasky	u8         status[0x8];
6376290650Shselasky	u8         reserved_0[0x18];
6377290650Shselasky
6378290650Shselasky	u8         syndrome[0x20];
6379290650Shselasky
6380290650Shselasky	u8         reserved_1[0x40];
6381290650Shselasky};
6382290650Shselasky
6383290650Shselaskystruct mlx5_ifc_destroy_flow_table_in_bits {
6384290650Shselasky	u8         opcode[0x10];
6385290650Shselasky	u8         reserved_0[0x10];
6386290650Shselasky
6387290650Shselasky	u8         reserved_1[0x10];
6388290650Shselasky	u8         op_mod[0x10];
6389290650Shselasky
6390290650Shselasky	u8         other_vport[0x1];
6391290650Shselasky	u8         reserved_2[0xf];
6392290650Shselasky	u8         vport_number[0x10];
6393290650Shselasky
6394290650Shselasky	u8         reserved_3[0x20];
6395290650Shselasky
6396290650Shselasky	u8         table_type[0x8];
6397290650Shselasky	u8         reserved_4[0x18];
6398290650Shselasky
6399290650Shselasky	u8         reserved_5[0x8];
6400290650Shselasky	u8         table_id[0x18];
6401290650Shselasky
6402290650Shselasky	u8         reserved_6[0x140];
6403290650Shselasky};
6404290650Shselasky
6405290650Shselaskystruct mlx5_ifc_destroy_flow_group_out_bits {
6406290650Shselasky	u8         status[0x8];
6407290650Shselasky	u8         reserved_0[0x18];
6408290650Shselasky
6409290650Shselasky	u8         syndrome[0x20];
6410290650Shselasky
6411290650Shselasky	u8         reserved_1[0x40];
6412290650Shselasky};
6413290650Shselasky
6414290650Shselaskystruct mlx5_ifc_destroy_flow_group_in_bits {
6415290650Shselasky	u8         opcode[0x10];
6416290650Shselasky	u8         reserved_0[0x10];
6417290650Shselasky
6418290650Shselasky	u8         reserved_1[0x10];
6419290650Shselasky	u8         op_mod[0x10];
6420290650Shselasky
6421290650Shselasky	u8         other_vport[0x1];
6422290650Shselasky	u8         reserved_2[0xf];
6423290650Shselasky	u8         vport_number[0x10];
6424290650Shselasky
6425290650Shselasky	u8         reserved_3[0x20];
6426290650Shselasky
6427290650Shselasky	u8         table_type[0x8];
6428290650Shselasky	u8         reserved_4[0x18];
6429290650Shselasky
6430290650Shselasky	u8         reserved_5[0x8];
6431290650Shselasky	u8         table_id[0x18];
6432290650Shselasky
6433290650Shselasky	u8         group_id[0x20];
6434290650Shselasky
6435290650Shselasky	u8         reserved_6[0x120];
6436290650Shselasky};
6437290650Shselasky
6438290650Shselaskystruct mlx5_ifc_destroy_eq_out_bits {
6439290650Shselasky	u8         status[0x8];
6440290650Shselasky	u8         reserved_0[0x18];
6441290650Shselasky
6442290650Shselasky	u8         syndrome[0x20];
6443290650Shselasky
6444290650Shselasky	u8         reserved_1[0x40];
6445290650Shselasky};
6446290650Shselasky
6447290650Shselaskystruct mlx5_ifc_destroy_eq_in_bits {
6448290650Shselasky	u8         opcode[0x10];
6449290650Shselasky	u8         reserved_0[0x10];
6450290650Shselasky
6451290650Shselasky	u8         reserved_1[0x10];
6452290650Shselasky	u8         op_mod[0x10];
6453290650Shselasky
6454290650Shselasky	u8         reserved_2[0x18];
6455290650Shselasky	u8         eq_number[0x8];
6456290650Shselasky
6457290650Shselasky	u8         reserved_3[0x20];
6458290650Shselasky};
6459290650Shselasky
6460290650Shselaskystruct mlx5_ifc_destroy_dct_out_bits {
6461290650Shselasky	u8         status[0x8];
6462290650Shselasky	u8         reserved_0[0x18];
6463290650Shselasky
6464290650Shselasky	u8         syndrome[0x20];
6465290650Shselasky
6466290650Shselasky	u8         reserved_1[0x40];
6467290650Shselasky};
6468290650Shselasky
6469290650Shselaskystruct mlx5_ifc_destroy_dct_in_bits {
6470290650Shselasky	u8         opcode[0x10];
6471290650Shselasky	u8         reserved_0[0x10];
6472290650Shselasky
6473290650Shselasky	u8         reserved_1[0x10];
6474290650Shselasky	u8         op_mod[0x10];
6475290650Shselasky
6476290650Shselasky	u8         reserved_2[0x8];
6477290650Shselasky	u8         dctn[0x18];
6478290650Shselasky
6479290650Shselasky	u8         reserved_3[0x20];
6480290650Shselasky};
6481290650Shselasky
6482290650Shselaskystruct mlx5_ifc_destroy_cq_out_bits {
6483290650Shselasky	u8         status[0x8];
6484290650Shselasky	u8         reserved_0[0x18];
6485290650Shselasky
6486290650Shselasky	u8         syndrome[0x20];
6487290650Shselasky
6488290650Shselasky	u8         reserved_1[0x40];
6489290650Shselasky};
6490290650Shselasky
6491290650Shselaskystruct mlx5_ifc_destroy_cq_in_bits {
6492290650Shselasky	u8         opcode[0x10];
6493290650Shselasky	u8         reserved_0[0x10];
6494290650Shselasky
6495290650Shselasky	u8         reserved_1[0x10];
6496290650Shselasky	u8         op_mod[0x10];
6497290650Shselasky
6498290650Shselasky	u8         reserved_2[0x8];
6499290650Shselasky	u8         cqn[0x18];
6500290650Shselasky
6501290650Shselasky	u8         reserved_3[0x20];
6502290650Shselasky};
6503290650Shselasky
6504290650Shselaskystruct mlx5_ifc_delete_vxlan_udp_dport_out_bits {
6505290650Shselasky	u8         status[0x8];
6506290650Shselasky	u8         reserved_0[0x18];
6507290650Shselasky
6508290650Shselasky	u8         syndrome[0x20];
6509290650Shselasky
6510290650Shselasky	u8         reserved_1[0x40];
6511290650Shselasky};
6512290650Shselasky
6513290650Shselaskystruct mlx5_ifc_delete_vxlan_udp_dport_in_bits {
6514290650Shselasky	u8         opcode[0x10];
6515290650Shselasky	u8         reserved_0[0x10];
6516290650Shselasky
6517290650Shselasky	u8         reserved_1[0x10];
6518290650Shselasky	u8         op_mod[0x10];
6519290650Shselasky
6520290650Shselasky	u8         reserved_2[0x20];
6521290650Shselasky
6522290650Shselasky	u8         reserved_3[0x10];
6523290650Shselasky	u8         vxlan_udp_port[0x10];
6524290650Shselasky};
6525290650Shselasky
6526290650Shselaskystruct mlx5_ifc_delete_l2_table_entry_out_bits {
6527290650Shselasky	u8         status[0x8];
6528290650Shselasky	u8         reserved_0[0x18];
6529290650Shselasky
6530290650Shselasky	u8         syndrome[0x20];
6531290650Shselasky
6532290650Shselasky	u8         reserved_1[0x40];
6533290650Shselasky};
6534290650Shselasky
6535290650Shselaskystruct mlx5_ifc_delete_l2_table_entry_in_bits {
6536290650Shselasky	u8         opcode[0x10];
6537290650Shselasky	u8         reserved_0[0x10];
6538290650Shselasky
6539290650Shselasky	u8         reserved_1[0x10];
6540290650Shselasky	u8         op_mod[0x10];
6541290650Shselasky
6542290650Shselasky	u8         reserved_2[0x60];
6543290650Shselasky
6544290650Shselasky	u8         reserved_3[0x8];
6545290650Shselasky	u8         table_index[0x18];
6546290650Shselasky
6547290650Shselasky	u8         reserved_4[0x140];
6548290650Shselasky};
6549290650Shselasky
6550290650Shselaskystruct mlx5_ifc_delete_fte_out_bits {
6551290650Shselasky	u8         status[0x8];
6552290650Shselasky	u8         reserved_0[0x18];
6553290650Shselasky
6554290650Shselasky	u8         syndrome[0x20];
6555290650Shselasky
6556290650Shselasky	u8         reserved_1[0x40];
6557290650Shselasky};
6558290650Shselasky
6559290650Shselaskystruct mlx5_ifc_delete_fte_in_bits {
6560290650Shselasky	u8         opcode[0x10];
6561290650Shselasky	u8         reserved_0[0x10];
6562290650Shselasky
6563290650Shselasky	u8         reserved_1[0x10];
6564290650Shselasky	u8         op_mod[0x10];
6565290650Shselasky
6566290650Shselasky	u8         other_vport[0x1];
6567290650Shselasky	u8         reserved_2[0xf];
6568290650Shselasky	u8         vport_number[0x10];
6569290650Shselasky
6570290650Shselasky	u8         reserved_3[0x20];
6571290650Shselasky
6572290650Shselasky	u8         table_type[0x8];
6573290650Shselasky	u8         reserved_4[0x18];
6574290650Shselasky
6575290650Shselasky	u8         reserved_5[0x8];
6576290650Shselasky	u8         table_id[0x18];
6577290650Shselasky
6578290650Shselasky	u8         reserved_6[0x40];
6579290650Shselasky
6580290650Shselasky	u8         flow_index[0x20];
6581290650Shselasky
6582290650Shselasky	u8         reserved_7[0xe0];
6583290650Shselasky};
6584290650Shselasky
6585290650Shselaskystruct mlx5_ifc_dealloc_xrcd_out_bits {
6586290650Shselasky	u8         status[0x8];
6587290650Shselasky	u8         reserved_0[0x18];
6588290650Shselasky
6589290650Shselasky	u8         syndrome[0x20];
6590290650Shselasky
6591290650Shselasky	u8         reserved_1[0x40];
6592290650Shselasky};
6593290650Shselasky
6594290650Shselaskystruct mlx5_ifc_dealloc_xrcd_in_bits {
6595290650Shselasky	u8         opcode[0x10];
6596290650Shselasky	u8         reserved_0[0x10];
6597290650Shselasky
6598290650Shselasky	u8         reserved_1[0x10];
6599290650Shselasky	u8         op_mod[0x10];
6600290650Shselasky
6601290650Shselasky	u8         reserved_2[0x8];
6602290650Shselasky	u8         xrcd[0x18];
6603290650Shselasky
6604290650Shselasky	u8         reserved_3[0x20];
6605290650Shselasky};
6606290650Shselasky
6607290650Shselaskystruct mlx5_ifc_dealloc_uar_out_bits {
6608290650Shselasky	u8         status[0x8];
6609290650Shselasky	u8         reserved_0[0x18];
6610290650Shselasky
6611290650Shselasky	u8         syndrome[0x20];
6612290650Shselasky
6613290650Shselasky	u8         reserved_1[0x40];
6614290650Shselasky};
6615290650Shselasky
6616290650Shselaskystruct mlx5_ifc_dealloc_uar_in_bits {
6617290650Shselasky	u8         opcode[0x10];
6618290650Shselasky	u8         reserved_0[0x10];
6619290650Shselasky
6620290650Shselasky	u8         reserved_1[0x10];
6621290650Shselasky	u8         op_mod[0x10];
6622290650Shselasky
6623290650Shselasky	u8         reserved_2[0x8];
6624290650Shselasky	u8         uar[0x18];
6625290650Shselasky
6626290650Shselasky	u8         reserved_3[0x20];
6627290650Shselasky};
6628290650Shselasky
6629290650Shselaskystruct mlx5_ifc_dealloc_transport_domain_out_bits {
6630290650Shselasky	u8         status[0x8];
6631290650Shselasky	u8         reserved_0[0x18];
6632290650Shselasky
6633290650Shselasky	u8         syndrome[0x20];
6634290650Shselasky
6635290650Shselasky	u8         reserved_1[0x40];
6636290650Shselasky};
6637290650Shselasky
6638290650Shselaskystruct mlx5_ifc_dealloc_transport_domain_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[0x8];
6646290650Shselasky	u8         transport_domain[0x18];
6647290650Shselasky
6648290650Shselasky	u8         reserved_3[0x20];
6649290650Shselasky};
6650290650Shselasky
6651290650Shselaskystruct mlx5_ifc_dealloc_q_counter_out_bits {
6652290650Shselasky	u8         status[0x8];
6653290650Shselasky	u8         reserved_0[0x18];
6654290650Shselasky
6655290650Shselasky	u8         syndrome[0x20];
6656290650Shselasky
6657290650Shselasky	u8         reserved_1[0x40];
6658290650Shselasky};
6659290650Shselasky
6660306233Shselaskystruct mlx5_ifc_counter_id_bits {
6661306233Shselasky	u8         reserved[0x10];
6662306233Shselasky	u8         counter_id[0x10];
6663306233Shselasky};
6664306233Shselasky
6665308678Shselaskystruct mlx5_ifc_diagnostic_params_context_bits {
6666306233Shselasky	u8         num_of_counters[0x10];
6667306233Shselasky	u8         reserved_2[0x8];
6668306233Shselasky	u8         log_num_of_samples[0x8];
6669306233Shselasky
6670306233Shselasky	u8         single[0x1];
6671306233Shselasky	u8         repetitive[0x1];
6672306233Shselasky	u8         sync[0x1];
6673306233Shselasky	u8         clear[0x1];
6674306233Shselasky	u8         on_demand[0x1];
6675306233Shselasky	u8         enable[0x1];
6676306233Shselasky	u8         reserved_3[0x12];
6677306233Shselasky	u8         log_sample_period[0x8];
6678306233Shselasky
6679306233Shselasky	u8         reserved_4[0x80];
6680306233Shselasky
6681306233Shselasky	struct mlx5_ifc_counter_id_bits counter_id[0];
6682306233Shselasky};
6683306233Shselasky
6684308678Shselaskystruct mlx5_ifc_set_diagnostic_params_in_bits {
6685308678Shselasky	u8         opcode[0x10];
6686308678Shselasky	u8         reserved_0[0x10];
6687308678Shselasky
6688308678Shselasky	u8         reserved_1[0x10];
6689308678Shselasky	u8         op_mod[0x10];
6690308678Shselasky
6691308678Shselasky	struct mlx5_ifc_diagnostic_params_context_bits diagnostic_params_ctx;
6692308678Shselasky};
6693308678Shselasky
6694308678Shselaskystruct mlx5_ifc_set_diagnostic_params_out_bits {
6695306233Shselasky	u8         status[0x8];
6696306233Shselasky	u8         reserved_0[0x18];
6697306233Shselasky
6698306233Shselasky	u8         syndrome[0x20];
6699306233Shselasky
6700306233Shselasky	u8         reserved_1[0x40];
6701306233Shselasky};
6702306233Shselasky
6703308678Shselaskystruct mlx5_ifc_query_diagnostic_counters_in_bits {
6704306233Shselasky	u8         opcode[0x10];
6705306233Shselasky	u8         reserved_0[0x10];
6706306233Shselasky
6707306233Shselasky	u8         reserved_1[0x10];
6708306233Shselasky	u8         op_mod[0x10];
6709306233Shselasky
6710306233Shselasky	u8         num_of_samples[0x10];
6711306233Shselasky	u8         sample_index[0x10];
6712306233Shselasky
6713306233Shselasky	u8         reserved_2[0x20];
6714306233Shselasky};
6715306233Shselasky
6716306233Shselaskystruct mlx5_ifc_diagnostic_counter_bits {
6717306233Shselasky	u8         counter_id[0x10];
6718306233Shselasky	u8         sample_id[0x10];
6719306233Shselasky
6720306233Shselasky	u8         time_stamp_31_0[0x20];
6721306233Shselasky
6722306233Shselasky	u8         counter_value_h[0x20];
6723306233Shselasky
6724306233Shselasky	u8         counter_value_l[0x20];
6725306233Shselasky};
6726306233Shselasky
6727308678Shselaskystruct mlx5_ifc_query_diagnostic_counters_out_bits {
6728306233Shselasky	u8         status[0x8];
6729306233Shselasky	u8         reserved_0[0x18];
6730306233Shselasky
6731306233Shselasky	u8         syndrome[0x20];
6732306233Shselasky
6733306233Shselasky	u8         reserved_1[0x40];
6734306233Shselasky
6735306233Shselasky	struct mlx5_ifc_diagnostic_counter_bits diag_counter[0];
6736306233Shselasky};
6737306233Shselasky
6738290650Shselaskystruct mlx5_ifc_dealloc_q_counter_in_bits {
6739290650Shselasky	u8         opcode[0x10];
6740290650Shselasky	u8         reserved_0[0x10];
6741290650Shselasky
6742290650Shselasky	u8         reserved_1[0x10];
6743290650Shselasky	u8         op_mod[0x10];
6744290650Shselasky
6745290650Shselasky	u8         reserved_2[0x18];
6746290650Shselasky	u8         counter_set_id[0x8];
6747290650Shselasky
6748290650Shselasky	u8         reserved_3[0x20];
6749290650Shselasky};
6750290650Shselasky
6751290650Shselaskystruct mlx5_ifc_dealloc_pd_out_bits {
6752290650Shselasky	u8         status[0x8];
6753290650Shselasky	u8         reserved_0[0x18];
6754290650Shselasky
6755290650Shselasky	u8         syndrome[0x20];
6756290650Shselasky
6757290650Shselasky	u8         reserved_1[0x40];
6758290650Shselasky};
6759290650Shselasky
6760290650Shselaskystruct mlx5_ifc_dealloc_pd_in_bits {
6761290650Shselasky	u8         opcode[0x10];
6762290650Shselasky	u8         reserved_0[0x10];
6763290650Shselasky
6764290650Shselasky	u8         reserved_1[0x10];
6765290650Shselasky	u8         op_mod[0x10];
6766290650Shselasky
6767290650Shselasky	u8         reserved_2[0x8];
6768290650Shselasky	u8         pd[0x18];
6769290650Shselasky
6770290650Shselasky	u8         reserved_3[0x20];
6771290650Shselasky};
6772290650Shselasky
6773290650Shselaskystruct mlx5_ifc_dealloc_flow_counter_out_bits {
6774290650Shselasky	u8         status[0x8];
6775290650Shselasky	u8         reserved_0[0x18];
6776290650Shselasky
6777290650Shselasky	u8         syndrome[0x20];
6778290650Shselasky
6779290650Shselasky	u8         reserved_1[0x40];
6780290650Shselasky};
6781290650Shselasky
6782290650Shselaskystruct mlx5_ifc_dealloc_flow_counter_in_bits {
6783290650Shselasky	u8         opcode[0x10];
6784290650Shselasky	u8         reserved_0[0x10];
6785290650Shselasky
6786290650Shselasky	u8         reserved_1[0x10];
6787290650Shselasky	u8         op_mod[0x10];
6788290650Shselasky
6789290650Shselasky	u8         reserved_2[0x10];
6790290650Shselasky	u8         flow_counter_id[0x10];
6791290650Shselasky
6792290650Shselasky	u8         reserved_3[0x20];
6793290650Shselasky};
6794290650Shselasky
6795290650Shselaskystruct mlx5_ifc_deactivate_tracer_out_bits {
6796290650Shselasky	u8         status[0x8];
6797290650Shselasky	u8         reserved_0[0x18];
6798290650Shselasky
6799290650Shselasky	u8         syndrome[0x20];
6800290650Shselasky
6801290650Shselasky	u8         reserved_1[0x40];
6802290650Shselasky};
6803290650Shselasky
6804290650Shselaskystruct mlx5_ifc_deactivate_tracer_in_bits {
6805290650Shselasky	u8         opcode[0x10];
6806290650Shselasky	u8         reserved_0[0x10];
6807290650Shselasky
6808290650Shselasky	u8         reserved_1[0x10];
6809290650Shselasky	u8         op_mod[0x10];
6810290650Shselasky
6811290650Shselasky	u8         mkey[0x20];
6812290650Shselasky
6813290650Shselasky	u8         reserved_2[0x20];
6814290650Shselasky};
6815290650Shselasky
6816290650Shselaskystruct mlx5_ifc_create_xrc_srq_out_bits {
6817290650Shselasky	u8         status[0x8];
6818290650Shselasky	u8         reserved_0[0x18];
6819290650Shselasky
6820290650Shselasky	u8         syndrome[0x20];
6821290650Shselasky
6822290650Shselasky	u8         reserved_1[0x8];
6823290650Shselasky	u8         xrc_srqn[0x18];
6824290650Shselasky
6825290650Shselasky	u8         reserved_2[0x20];
6826290650Shselasky};
6827290650Shselasky
6828290650Shselaskystruct mlx5_ifc_create_xrc_srq_in_bits {
6829290650Shselasky	u8         opcode[0x10];
6830290650Shselasky	u8         reserved_0[0x10];
6831290650Shselasky
6832290650Shselasky	u8         reserved_1[0x10];
6833290650Shselasky	u8         op_mod[0x10];
6834290650Shselasky
6835290650Shselasky	u8         reserved_2[0x40];
6836290650Shselasky
6837290650Shselasky	struct mlx5_ifc_xrc_srqc_bits xrc_srq_context_entry;
6838290650Shselasky
6839290650Shselasky	u8         reserved_3[0x600];
6840290650Shselasky
6841290650Shselasky	u8         pas[0][0x40];
6842290650Shselasky};
6843290650Shselasky
6844290650Shselaskystruct mlx5_ifc_create_tis_out_bits {
6845290650Shselasky	u8         status[0x8];
6846290650Shselasky	u8         reserved_0[0x18];
6847290650Shselasky
6848290650Shselasky	u8         syndrome[0x20];
6849290650Shselasky
6850290650Shselasky	u8         reserved_1[0x8];
6851290650Shselasky	u8         tisn[0x18];
6852290650Shselasky
6853290650Shselasky	u8         reserved_2[0x20];
6854290650Shselasky};
6855290650Shselasky
6856290650Shselaskystruct mlx5_ifc_create_tis_in_bits {
6857290650Shselasky	u8         opcode[0x10];
6858290650Shselasky	u8         reserved_0[0x10];
6859290650Shselasky
6860290650Shselasky	u8         reserved_1[0x10];
6861290650Shselasky	u8         op_mod[0x10];
6862290650Shselasky
6863290650Shselasky	u8         reserved_2[0xc0];
6864290650Shselasky
6865290650Shselasky	struct mlx5_ifc_tisc_bits ctx;
6866290650Shselasky};
6867290650Shselasky
6868290650Shselaskystruct mlx5_ifc_create_tir_out_bits {
6869290650Shselasky	u8         status[0x8];
6870290650Shselasky	u8         reserved_0[0x18];
6871290650Shselasky
6872290650Shselasky	u8         syndrome[0x20];
6873290650Shselasky
6874290650Shselasky	u8         reserved_1[0x8];
6875290650Shselasky	u8         tirn[0x18];
6876290650Shselasky
6877290650Shselasky	u8         reserved_2[0x20];
6878290650Shselasky};
6879290650Shselasky
6880290650Shselaskystruct mlx5_ifc_create_tir_in_bits {
6881290650Shselasky	u8         opcode[0x10];
6882290650Shselasky	u8         reserved_0[0x10];
6883290650Shselasky
6884290650Shselasky	u8         reserved_1[0x10];
6885290650Shselasky	u8         op_mod[0x10];
6886290650Shselasky
6887290650Shselasky	u8         reserved_2[0xc0];
6888290650Shselasky
6889290650Shselasky	struct mlx5_ifc_tirc_bits tir_context;
6890290650Shselasky};
6891290650Shselasky
6892290650Shselaskystruct mlx5_ifc_create_srq_out_bits {
6893290650Shselasky	u8         status[0x8];
6894290650Shselasky	u8         reserved_0[0x18];
6895290650Shselasky
6896290650Shselasky	u8         syndrome[0x20];
6897290650Shselasky
6898290650Shselasky	u8         reserved_1[0x8];
6899290650Shselasky	u8         srqn[0x18];
6900290650Shselasky
6901290650Shselasky	u8         reserved_2[0x20];
6902290650Shselasky};
6903290650Shselasky
6904290650Shselaskystruct mlx5_ifc_create_srq_in_bits {
6905290650Shselasky	u8         opcode[0x10];
6906290650Shselasky	u8         reserved_0[0x10];
6907290650Shselasky
6908290650Shselasky	u8         reserved_1[0x10];
6909290650Shselasky	u8         op_mod[0x10];
6910290650Shselasky
6911290650Shselasky	u8         reserved_2[0x40];
6912290650Shselasky
6913290650Shselasky	struct mlx5_ifc_srqc_bits srq_context_entry;
6914290650Shselasky
6915290650Shselasky	u8         reserved_3[0x600];
6916290650Shselasky
6917290650Shselasky	u8         pas[0][0x40];
6918290650Shselasky};
6919290650Shselasky
6920290650Shselaskystruct mlx5_ifc_create_sq_out_bits {
6921290650Shselasky	u8         status[0x8];
6922290650Shselasky	u8         reserved_0[0x18];
6923290650Shselasky
6924290650Shselasky	u8         syndrome[0x20];
6925290650Shselasky
6926290650Shselasky	u8         reserved_1[0x8];
6927290650Shselasky	u8         sqn[0x18];
6928290650Shselasky
6929290650Shselasky	u8         reserved_2[0x20];
6930290650Shselasky};
6931290650Shselasky
6932290650Shselaskystruct mlx5_ifc_create_sq_in_bits {
6933290650Shselasky	u8         opcode[0x10];
6934290650Shselasky	u8         reserved_0[0x10];
6935290650Shselasky
6936290650Shselasky	u8         reserved_1[0x10];
6937290650Shselasky	u8         op_mod[0x10];
6938290650Shselasky
6939290650Shselasky	u8         reserved_2[0xc0];
6940290650Shselasky
6941290650Shselasky	struct mlx5_ifc_sqc_bits ctx;
6942290650Shselasky};
6943290650Shselasky
6944308678Shselaskystruct mlx5_ifc_create_scheduling_element_out_bits {
6945308678Shselasky	u8         status[0x8];
6946308678Shselasky	u8         reserved_at_8[0x18];
6947308678Shselasky
6948308678Shselasky	u8         syndrome[0x20];
6949308678Shselasky
6950308678Shselasky	u8         reserved_at_40[0x40];
6951308678Shselasky
6952308678Shselasky	u8         scheduling_element_id[0x20];
6953308678Shselasky
6954308678Shselasky	u8         reserved_at_a0[0x160];
6955308678Shselasky};
6956308678Shselasky
6957308678Shselaskyenum {
6958308678Shselasky	MLX5_CREATE_SCHEDULING_ELEMENT_IN_SCHEDULING_HIERARCHY_E_SWITCH  = 0x2,
6959308678Shselasky};
6960308678Shselasky
6961308678Shselaskystruct mlx5_ifc_create_scheduling_element_in_bits {
6962308678Shselasky	u8         opcode[0x10];
6963308678Shselasky	u8         reserved_at_10[0x10];
6964308678Shselasky
6965308678Shselasky	u8         reserved_at_20[0x10];
6966308678Shselasky	u8         op_mod[0x10];
6967308678Shselasky
6968308678Shselasky	u8         scheduling_hierarchy[0x8];
6969308678Shselasky	u8         reserved_at_48[0x18];
6970308678Shselasky
6971308678Shselasky	u8         reserved_at_60[0xa0];
6972308678Shselasky
6973308678Shselasky	struct mlx5_ifc_scheduling_context_bits scheduling_context;
6974308678Shselasky
6975308678Shselasky	u8         reserved_at_300[0x100];
6976308678Shselasky};
6977308678Shselasky
6978290650Shselaskystruct mlx5_ifc_create_rqt_out_bits {
6979290650Shselasky	u8         status[0x8];
6980290650Shselasky	u8         reserved_0[0x18];
6981290650Shselasky
6982290650Shselasky	u8         syndrome[0x20];
6983290650Shselasky
6984290650Shselasky	u8         reserved_1[0x8];
6985290650Shselasky	u8         rqtn[0x18];
6986290650Shselasky
6987290650Shselasky	u8         reserved_2[0x20];
6988290650Shselasky};
6989290650Shselasky
6990290650Shselaskystruct mlx5_ifc_create_rqt_in_bits {
6991290650Shselasky	u8         opcode[0x10];
6992290650Shselasky	u8         reserved_0[0x10];
6993290650Shselasky
6994290650Shselasky	u8         reserved_1[0x10];
6995290650Shselasky	u8         op_mod[0x10];
6996290650Shselasky
6997290650Shselasky	u8         reserved_2[0xc0];
6998290650Shselasky
6999290650Shselasky	struct mlx5_ifc_rqtc_bits rqt_context;
7000290650Shselasky};
7001290650Shselasky
7002290650Shselaskystruct mlx5_ifc_create_rq_out_bits {
7003290650Shselasky	u8         status[0x8];
7004290650Shselasky	u8         reserved_0[0x18];
7005290650Shselasky
7006290650Shselasky	u8         syndrome[0x20];
7007290650Shselasky
7008290650Shselasky	u8         reserved_1[0x8];
7009290650Shselasky	u8         rqn[0x18];
7010290650Shselasky
7011290650Shselasky	u8         reserved_2[0x20];
7012290650Shselasky};
7013290650Shselasky
7014290650Shselaskystruct mlx5_ifc_create_rq_in_bits {
7015290650Shselasky	u8         opcode[0x10];
7016290650Shselasky	u8         reserved_0[0x10];
7017290650Shselasky
7018290650Shselasky	u8         reserved_1[0x10];
7019290650Shselasky	u8         op_mod[0x10];
7020290650Shselasky
7021290650Shselasky	u8         reserved_2[0xc0];
7022290650Shselasky
7023290650Shselasky	struct mlx5_ifc_rqc_bits ctx;
7024290650Shselasky};
7025290650Shselasky
7026290650Shselaskystruct mlx5_ifc_create_rmp_out_bits {
7027290650Shselasky	u8         status[0x8];
7028290650Shselasky	u8         reserved_0[0x18];
7029290650Shselasky
7030290650Shselasky	u8         syndrome[0x20];
7031290650Shselasky
7032290650Shselasky	u8         reserved_1[0x8];
7033290650Shselasky	u8         rmpn[0x18];
7034290650Shselasky
7035290650Shselasky	u8         reserved_2[0x20];
7036290650Shselasky};
7037290650Shselasky
7038290650Shselaskystruct mlx5_ifc_create_rmp_in_bits {
7039290650Shselasky	u8         opcode[0x10];
7040290650Shselasky	u8         reserved_0[0x10];
7041290650Shselasky
7042290650Shselasky	u8         reserved_1[0x10];
7043290650Shselasky	u8         op_mod[0x10];
7044290650Shselasky
7045290650Shselasky	u8         reserved_2[0xc0];
7046290650Shselasky
7047290650Shselasky	struct mlx5_ifc_rmpc_bits ctx;
7048290650Shselasky};
7049290650Shselasky
7050290650Shselaskystruct mlx5_ifc_create_qp_out_bits {
7051290650Shselasky	u8         status[0x8];
7052290650Shselasky	u8         reserved_0[0x18];
7053290650Shselasky
7054290650Shselasky	u8         syndrome[0x20];
7055290650Shselasky
7056290650Shselasky	u8         reserved_1[0x8];
7057290650Shselasky	u8         qpn[0x18];
7058290650Shselasky
7059290650Shselasky	u8         reserved_2[0x20];
7060290650Shselasky};
7061290650Shselasky
7062290650Shselaskystruct mlx5_ifc_create_qp_in_bits {
7063290650Shselasky	u8         opcode[0x10];
7064290650Shselasky	u8         reserved_0[0x10];
7065290650Shselasky
7066290650Shselasky	u8         reserved_1[0x10];
7067290650Shselasky	u8         op_mod[0x10];
7068290650Shselasky
7069306233Shselasky	u8         reserved_2[0x8];
7070306233Shselasky	u8         input_qpn[0x18];
7071290650Shselasky
7072306233Shselasky	u8         reserved_3[0x20];
7073306233Shselasky
7074290650Shselasky	u8         opt_param_mask[0x20];
7075290650Shselasky
7076306233Shselasky	u8         reserved_4[0x20];
7077290650Shselasky
7078290650Shselasky	struct mlx5_ifc_qpc_bits qpc;
7079290650Shselasky
7080306233Shselasky	u8         reserved_5[0x80];
7081290650Shselasky
7082290650Shselasky	u8         pas[0][0x40];
7083290650Shselasky};
7084290650Shselasky
7085308678Shselaskystruct mlx5_ifc_create_qos_para_vport_out_bits {
7086308678Shselasky	u8         status[0x8];
7087308678Shselasky	u8         reserved_at_8[0x18];
7088308678Shselasky
7089308678Shselasky	u8         syndrome[0x20];
7090308678Shselasky
7091308678Shselasky	u8         reserved_at_40[0x20];
7092308678Shselasky
7093308678Shselasky	u8         reserved_at_60[0x10];
7094308678Shselasky	u8         qos_para_vport_number[0x10];
7095308678Shselasky
7096308678Shselasky	u8         reserved_at_80[0x180];
7097308678Shselasky};
7098308678Shselasky
7099308678Shselaskystruct mlx5_ifc_create_qos_para_vport_in_bits {
7100308678Shselasky	u8         opcode[0x10];
7101308678Shselasky	u8         reserved_at_10[0x10];
7102308678Shselasky
7103308678Shselasky	u8         reserved_at_20[0x10];
7104308678Shselasky	u8         op_mod[0x10];
7105308678Shselasky
7106308678Shselasky	u8         reserved_at_40[0x1c0];
7107308678Shselasky};
7108308678Shselasky
7109290650Shselaskystruct mlx5_ifc_create_psv_out_bits {
7110290650Shselasky	u8         status[0x8];
7111290650Shselasky	u8         reserved_0[0x18];
7112290650Shselasky
7113290650Shselasky	u8         syndrome[0x20];
7114290650Shselasky
7115290650Shselasky	u8         reserved_1[0x40];
7116290650Shselasky
7117290650Shselasky	u8         reserved_2[0x8];
7118290650Shselasky	u8         psv0_index[0x18];
7119290650Shselasky
7120290650Shselasky	u8         reserved_3[0x8];
7121290650Shselasky	u8         psv1_index[0x18];
7122290650Shselasky
7123290650Shselasky	u8         reserved_4[0x8];
7124290650Shselasky	u8         psv2_index[0x18];
7125290650Shselasky
7126290650Shselasky	u8         reserved_5[0x8];
7127290650Shselasky	u8         psv3_index[0x18];
7128290650Shselasky};
7129290650Shselasky
7130290650Shselaskystruct mlx5_ifc_create_psv_in_bits {
7131290650Shselasky	u8         opcode[0x10];
7132290650Shselasky	u8         reserved_0[0x10];
7133290650Shselasky
7134290650Shselasky	u8         reserved_1[0x10];
7135290650Shselasky	u8         op_mod[0x10];
7136290650Shselasky
7137290650Shselasky	u8         num_psv[0x4];
7138290650Shselasky	u8         reserved_2[0x4];
7139290650Shselasky	u8         pd[0x18];
7140290650Shselasky
7141290650Shselasky	u8         reserved_3[0x20];
7142290650Shselasky};
7143290650Shselasky
7144290650Shselaskystruct mlx5_ifc_create_mkey_out_bits {
7145290650Shselasky	u8         status[0x8];
7146290650Shselasky	u8         reserved_0[0x18];
7147290650Shselasky
7148290650Shselasky	u8         syndrome[0x20];
7149290650Shselasky
7150290650Shselasky	u8         reserved_1[0x8];
7151290650Shselasky	u8         mkey_index[0x18];
7152290650Shselasky
7153290650Shselasky	u8         reserved_2[0x20];
7154290650Shselasky};
7155290650Shselasky
7156290650Shselaskystruct mlx5_ifc_create_mkey_in_bits {
7157290650Shselasky	u8         opcode[0x10];
7158290650Shselasky	u8         reserved_0[0x10];
7159290650Shselasky
7160290650Shselasky	u8         reserved_1[0x10];
7161290650Shselasky	u8         op_mod[0x10];
7162290650Shselasky
7163290650Shselasky	u8         reserved_2[0x20];
7164290650Shselasky
7165290650Shselasky	u8         pg_access[0x1];
7166290650Shselasky	u8         reserved_3[0x1f];
7167290650Shselasky
7168290650Shselasky	struct mlx5_ifc_mkc_bits memory_key_mkey_entry;
7169290650Shselasky
7170290650Shselasky	u8         reserved_4[0x80];
7171290650Shselasky
7172290650Shselasky	u8         translations_octword_actual_size[0x20];
7173290650Shselasky
7174290650Shselasky	u8         reserved_5[0x560];
7175290650Shselasky
7176290650Shselasky	u8         klm_pas_mtt[0][0x20];
7177290650Shselasky};
7178290650Shselasky
7179290650Shselaskystruct mlx5_ifc_create_flow_table_out_bits {
7180290650Shselasky	u8         status[0x8];
7181290650Shselasky	u8         reserved_0[0x18];
7182290650Shselasky
7183290650Shselasky	u8         syndrome[0x20];
7184290650Shselasky
7185290650Shselasky	u8         reserved_1[0x8];
7186290650Shselasky	u8         table_id[0x18];
7187290650Shselasky
7188290650Shselasky	u8         reserved_2[0x20];
7189290650Shselasky};
7190290650Shselasky
7191290650Shselaskystruct mlx5_ifc_create_flow_table_in_bits {
7192290650Shselasky	u8         opcode[0x10];
7193329200Shselasky	u8         reserved_at_10[0x10];
7194290650Shselasky
7195329200Shselasky	u8         reserved_at_20[0x10];
7196290650Shselasky	u8         op_mod[0x10];
7197290650Shselasky
7198290650Shselasky	u8         other_vport[0x1];
7199329200Shselasky	u8         reserved_at_41[0xf];
7200290650Shselasky	u8         vport_number[0x10];
7201290650Shselasky
7202329200Shselasky	u8         reserved_at_60[0x20];
7203290650Shselasky
7204290650Shselasky	u8         table_type[0x8];
7205329200Shselasky	u8         reserved_at_88[0x18];
7206290650Shselasky
7207329200Shselasky	u8         reserved_at_a0[0x20];
7208290650Shselasky
7209329200Shselasky	struct mlx5_ifc_flow_table_context_bits flow_table_context;
7210290650Shselasky};
7211290650Shselasky
7212290650Shselaskystruct mlx5_ifc_create_flow_group_out_bits {
7213290650Shselasky	u8         status[0x8];
7214290650Shselasky	u8         reserved_0[0x18];
7215290650Shselasky
7216290650Shselasky	u8         syndrome[0x20];
7217290650Shselasky
7218290650Shselasky	u8         reserved_1[0x8];
7219290650Shselasky	u8         group_id[0x18];
7220290650Shselasky
7221290650Shselasky	u8         reserved_2[0x20];
7222290650Shselasky};
7223290650Shselasky
7224290650Shselaskyenum {
7225290650Shselasky	MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_OUTER_HEADERS    = 0x0,
7226290650Shselasky	MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS  = 0x1,
7227290650Shselasky	MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_INNER_HEADERS    = 0x2,
7228290650Shselasky};
7229290650Shselasky
7230290650Shselaskystruct mlx5_ifc_create_flow_group_in_bits {
7231290650Shselasky	u8         opcode[0x10];
7232290650Shselasky	u8         reserved_0[0x10];
7233290650Shselasky
7234290650Shselasky	u8         reserved_1[0x10];
7235290650Shselasky	u8         op_mod[0x10];
7236290650Shselasky
7237290650Shselasky	u8         other_vport[0x1];
7238290650Shselasky	u8         reserved_2[0xf];
7239290650Shselasky	u8         vport_number[0x10];
7240290650Shselasky
7241290650Shselasky	u8         reserved_3[0x20];
7242290650Shselasky
7243290650Shselasky	u8         table_type[0x8];
7244290650Shselasky	u8         reserved_4[0x18];
7245290650Shselasky
7246290650Shselasky	u8         reserved_5[0x8];
7247290650Shselasky	u8         table_id[0x18];
7248290650Shselasky
7249290650Shselasky	u8         reserved_6[0x20];
7250290650Shselasky
7251290650Shselasky	u8         start_flow_index[0x20];
7252290650Shselasky
7253290650Shselasky	u8         reserved_7[0x20];
7254290650Shselasky
7255290650Shselasky	u8         end_flow_index[0x20];
7256290650Shselasky
7257290650Shselasky	u8         reserved_8[0xa0];
7258290650Shselasky
7259290650Shselasky	u8         reserved_9[0x18];
7260290650Shselasky	u8         match_criteria_enable[0x8];
7261290650Shselasky
7262290650Shselasky	struct mlx5_ifc_fte_match_param_bits match_criteria;
7263290650Shselasky
7264290650Shselasky	u8         reserved_10[0xe00];
7265290650Shselasky};
7266290650Shselasky
7267290650Shselaskystruct mlx5_ifc_create_eq_out_bits {
7268290650Shselasky	u8         status[0x8];
7269290650Shselasky	u8         reserved_0[0x18];
7270290650Shselasky
7271290650Shselasky	u8         syndrome[0x20];
7272290650Shselasky
7273290650Shselasky	u8         reserved_1[0x18];
7274290650Shselasky	u8         eq_number[0x8];
7275290650Shselasky
7276290650Shselasky	u8         reserved_2[0x20];
7277290650Shselasky};
7278290650Shselasky
7279290650Shselaskystruct mlx5_ifc_create_eq_in_bits {
7280290650Shselasky	u8         opcode[0x10];
7281290650Shselasky	u8         reserved_0[0x10];
7282290650Shselasky
7283290650Shselasky	u8         reserved_1[0x10];
7284290650Shselasky	u8         op_mod[0x10];
7285290650Shselasky
7286290650Shselasky	u8         reserved_2[0x40];
7287290650Shselasky
7288290650Shselasky	struct mlx5_ifc_eqc_bits eq_context_entry;
7289290650Shselasky
7290290650Shselasky	u8         reserved_3[0x40];
7291290650Shselasky
7292290650Shselasky	u8         event_bitmask[0x40];
7293290650Shselasky
7294290650Shselasky	u8         reserved_4[0x580];
7295290650Shselasky
7296290650Shselasky	u8         pas[0][0x40];
7297290650Shselasky};
7298290650Shselasky
7299290650Shselaskystruct mlx5_ifc_create_dct_out_bits {
7300290650Shselasky	u8         status[0x8];
7301290650Shselasky	u8         reserved_0[0x18];
7302290650Shselasky
7303290650Shselasky	u8         syndrome[0x20];
7304290650Shselasky
7305290650Shselasky	u8         reserved_1[0x8];
7306290650Shselasky	u8         dctn[0x18];
7307290650Shselasky
7308290650Shselasky	u8         reserved_2[0x20];
7309290650Shselasky};
7310290650Shselasky
7311290650Shselaskystruct mlx5_ifc_create_dct_in_bits {
7312290650Shselasky	u8         opcode[0x10];
7313290650Shselasky	u8         reserved_0[0x10];
7314290650Shselasky
7315290650Shselasky	u8         reserved_1[0x10];
7316290650Shselasky	u8         op_mod[0x10];
7317290650Shselasky
7318290650Shselasky	u8         reserved_2[0x40];
7319290650Shselasky
7320290650Shselasky	struct mlx5_ifc_dctc_bits dct_context_entry;
7321290650Shselasky
7322290650Shselasky	u8         reserved_3[0x180];
7323290650Shselasky};
7324290650Shselasky
7325290650Shselaskystruct mlx5_ifc_create_cq_out_bits {
7326290650Shselasky	u8         status[0x8];
7327290650Shselasky	u8         reserved_0[0x18];
7328290650Shselasky
7329290650Shselasky	u8         syndrome[0x20];
7330290650Shselasky
7331290650Shselasky	u8         reserved_1[0x8];
7332290650Shselasky	u8         cqn[0x18];
7333290650Shselasky
7334290650Shselasky	u8         reserved_2[0x20];
7335290650Shselasky};
7336290650Shselasky
7337290650Shselaskystruct mlx5_ifc_create_cq_in_bits {
7338290650Shselasky	u8         opcode[0x10];
7339290650Shselasky	u8         reserved_0[0x10];
7340290650Shselasky
7341290650Shselasky	u8         reserved_1[0x10];
7342290650Shselasky	u8         op_mod[0x10];
7343290650Shselasky
7344290650Shselasky	u8         reserved_2[0x40];
7345290650Shselasky
7346290650Shselasky	struct mlx5_ifc_cqc_bits cq_context;
7347290650Shselasky
7348290650Shselasky	u8         reserved_3[0x600];
7349290650Shselasky
7350290650Shselasky	u8         pas[0][0x40];
7351290650Shselasky};
7352290650Shselasky
7353290650Shselaskystruct mlx5_ifc_config_int_moderation_out_bits {
7354290650Shselasky	u8         status[0x8];
7355290650Shselasky	u8         reserved_0[0x18];
7356290650Shselasky
7357290650Shselasky	u8         syndrome[0x20];
7358290650Shselasky
7359290650Shselasky	u8         reserved_1[0x4];
7360290650Shselasky	u8         min_delay[0xc];
7361290650Shselasky	u8         int_vector[0x10];
7362290650Shselasky
7363290650Shselasky	u8         reserved_2[0x20];
7364290650Shselasky};
7365290650Shselasky
7366290650Shselaskyenum {
7367290650Shselasky	MLX5_CONFIG_INT_MODERATION_IN_OP_MOD_WRITE  = 0x0,
7368290650Shselasky	MLX5_CONFIG_INT_MODERATION_IN_OP_MOD_READ   = 0x1,
7369290650Shselasky};
7370290650Shselasky
7371290650Shselaskystruct mlx5_ifc_config_int_moderation_in_bits {
7372290650Shselasky	u8         opcode[0x10];
7373290650Shselasky	u8         reserved_0[0x10];
7374290650Shselasky
7375290650Shselasky	u8         reserved_1[0x10];
7376290650Shselasky	u8         op_mod[0x10];
7377290650Shselasky
7378290650Shselasky	u8         reserved_2[0x4];
7379290650Shselasky	u8         min_delay[0xc];
7380290650Shselasky	u8         int_vector[0x10];
7381290650Shselasky
7382290650Shselasky	u8         reserved_3[0x20];
7383290650Shselasky};
7384290650Shselasky
7385290650Shselaskystruct mlx5_ifc_attach_to_mcg_out_bits {
7386290650Shselasky	u8         status[0x8];
7387290650Shselasky	u8         reserved_0[0x18];
7388290650Shselasky
7389290650Shselasky	u8         syndrome[0x20];
7390290650Shselasky
7391290650Shselasky	u8         reserved_1[0x40];
7392290650Shselasky};
7393290650Shselasky
7394290650Shselaskystruct mlx5_ifc_attach_to_mcg_in_bits {
7395290650Shselasky	u8         opcode[0x10];
7396290650Shselasky	u8         reserved_0[0x10];
7397290650Shselasky
7398290650Shselasky	u8         reserved_1[0x10];
7399290650Shselasky	u8         op_mod[0x10];
7400290650Shselasky
7401290650Shselasky	u8         reserved_2[0x8];
7402290650Shselasky	u8         qpn[0x18];
7403290650Shselasky
7404290650Shselasky	u8         reserved_3[0x20];
7405290650Shselasky
7406290650Shselasky	u8         multicast_gid[16][0x8];
7407290650Shselasky};
7408290650Shselasky
7409290650Shselaskystruct mlx5_ifc_arm_xrc_srq_out_bits {
7410290650Shselasky	u8         status[0x8];
7411290650Shselasky	u8         reserved_0[0x18];
7412290650Shselasky
7413290650Shselasky	u8         syndrome[0x20];
7414290650Shselasky
7415290650Shselasky	u8         reserved_1[0x40];
7416290650Shselasky};
7417290650Shselasky
7418290650Shselaskyenum {
7419290650Shselasky	MLX5_ARM_XRC_SRQ_IN_OP_MOD_XRC_SRQ  = 0x1,
7420290650Shselasky};
7421290650Shselasky
7422290650Shselaskystruct mlx5_ifc_arm_xrc_srq_in_bits {
7423290650Shselasky	u8         opcode[0x10];
7424290650Shselasky	u8         reserved_0[0x10];
7425290650Shselasky
7426290650Shselasky	u8         reserved_1[0x10];
7427290650Shselasky	u8         op_mod[0x10];
7428290650Shselasky
7429290650Shselasky	u8         reserved_2[0x8];
7430290650Shselasky	u8         xrc_srqn[0x18];
7431290650Shselasky
7432290650Shselasky	u8         reserved_3[0x10];
7433290650Shselasky	u8         lwm[0x10];
7434290650Shselasky};
7435290650Shselasky
7436290650Shselaskystruct mlx5_ifc_arm_rq_out_bits {
7437290650Shselasky	u8         status[0x8];
7438290650Shselasky	u8         reserved_0[0x18];
7439290650Shselasky
7440290650Shselasky	u8         syndrome[0x20];
7441290650Shselasky
7442290650Shselasky	u8         reserved_1[0x40];
7443290650Shselasky};
7444290650Shselasky
7445290650Shselaskyenum {
7446290650Shselasky	MLX5_ARM_RQ_IN_OP_MOD_SRQ  = 0x1,
7447290650Shselasky};
7448290650Shselasky
7449290650Shselaskystruct mlx5_ifc_arm_rq_in_bits {
7450290650Shselasky	u8         opcode[0x10];
7451290650Shselasky	u8         reserved_0[0x10];
7452290650Shselasky
7453290650Shselasky	u8         reserved_1[0x10];
7454290650Shselasky	u8         op_mod[0x10];
7455290650Shselasky
7456290650Shselasky	u8         reserved_2[0x8];
7457290650Shselasky	u8         srq_number[0x18];
7458290650Shselasky
7459290650Shselasky	u8         reserved_3[0x10];
7460290650Shselasky	u8         lwm[0x10];
7461290650Shselasky};
7462290650Shselasky
7463290650Shselaskystruct mlx5_ifc_arm_dct_out_bits {
7464290650Shselasky	u8         status[0x8];
7465290650Shselasky	u8         reserved_0[0x18];
7466290650Shselasky
7467290650Shselasky	u8         syndrome[0x20];
7468290650Shselasky
7469290650Shselasky	u8         reserved_1[0x40];
7470290650Shselasky};
7471290650Shselasky
7472290650Shselaskystruct mlx5_ifc_arm_dct_in_bits {
7473290650Shselasky	u8         opcode[0x10];
7474290650Shselasky	u8         reserved_0[0x10];
7475290650Shselasky
7476290650Shselasky	u8         reserved_1[0x10];
7477290650Shselasky	u8         op_mod[0x10];
7478290650Shselasky
7479290650Shselasky	u8         reserved_2[0x8];
7480290650Shselasky	u8         dctn[0x18];
7481290650Shselasky
7482290650Shselasky	u8         reserved_3[0x20];
7483290650Shselasky};
7484290650Shselasky
7485290650Shselaskystruct mlx5_ifc_alloc_xrcd_out_bits {
7486290650Shselasky	u8         status[0x8];
7487290650Shselasky	u8         reserved_0[0x18];
7488290650Shselasky
7489290650Shselasky	u8         syndrome[0x20];
7490290650Shselasky
7491290650Shselasky	u8         reserved_1[0x8];
7492290650Shselasky	u8         xrcd[0x18];
7493290650Shselasky
7494290650Shselasky	u8         reserved_2[0x20];
7495290650Shselasky};
7496290650Shselasky
7497290650Shselaskystruct mlx5_ifc_alloc_xrcd_in_bits {
7498290650Shselasky	u8         opcode[0x10];
7499290650Shselasky	u8         reserved_0[0x10];
7500290650Shselasky
7501290650Shselasky	u8         reserved_1[0x10];
7502290650Shselasky	u8         op_mod[0x10];
7503290650Shselasky
7504290650Shselasky	u8         reserved_2[0x40];
7505290650Shselasky};
7506290650Shselasky
7507290650Shselaskystruct mlx5_ifc_alloc_uar_out_bits {
7508290650Shselasky	u8         status[0x8];
7509290650Shselasky	u8         reserved_0[0x18];
7510290650Shselasky
7511290650Shselasky	u8         syndrome[0x20];
7512290650Shselasky
7513290650Shselasky	u8         reserved_1[0x8];
7514290650Shselasky	u8         uar[0x18];
7515290650Shselasky
7516290650Shselasky	u8         reserved_2[0x20];
7517290650Shselasky};
7518290650Shselasky
7519290650Shselaskystruct mlx5_ifc_alloc_uar_in_bits {
7520290650Shselasky	u8         opcode[0x10];
7521290650Shselasky	u8         reserved_0[0x10];
7522290650Shselasky
7523290650Shselasky	u8         reserved_1[0x10];
7524290650Shselasky	u8         op_mod[0x10];
7525290650Shselasky
7526290650Shselasky	u8         reserved_2[0x40];
7527290650Shselasky};
7528290650Shselasky
7529290650Shselaskystruct mlx5_ifc_alloc_transport_domain_out_bits {
7530290650Shselasky	u8         status[0x8];
7531290650Shselasky	u8         reserved_0[0x18];
7532290650Shselasky
7533290650Shselasky	u8         syndrome[0x20];
7534290650Shselasky
7535290650Shselasky	u8         reserved_1[0x8];
7536290650Shselasky	u8         transport_domain[0x18];
7537290650Shselasky
7538290650Shselasky	u8         reserved_2[0x20];
7539290650Shselasky};
7540290650Shselasky
7541290650Shselaskystruct mlx5_ifc_alloc_transport_domain_in_bits {
7542290650Shselasky	u8         opcode[0x10];
7543290650Shselasky	u8         reserved_0[0x10];
7544290650Shselasky
7545290650Shselasky	u8         reserved_1[0x10];
7546290650Shselasky	u8         op_mod[0x10];
7547290650Shselasky
7548290650Shselasky	u8         reserved_2[0x40];
7549290650Shselasky};
7550290650Shselasky
7551290650Shselaskystruct mlx5_ifc_alloc_q_counter_out_bits {
7552290650Shselasky	u8         status[0x8];
7553290650Shselasky	u8         reserved_0[0x18];
7554290650Shselasky
7555290650Shselasky	u8         syndrome[0x20];
7556290650Shselasky
7557290650Shselasky	u8         reserved_1[0x18];
7558290650Shselasky	u8         counter_set_id[0x8];
7559290650Shselasky
7560290650Shselasky	u8         reserved_2[0x20];
7561290650Shselasky};
7562290650Shselasky
7563290650Shselaskystruct mlx5_ifc_alloc_q_counter_in_bits {
7564290650Shselasky	u8         opcode[0x10];
7565290650Shselasky	u8         reserved_0[0x10];
7566290650Shselasky
7567290650Shselasky	u8         reserved_1[0x10];
7568290650Shselasky	u8         op_mod[0x10];
7569290650Shselasky
7570290650Shselasky	u8         reserved_2[0x40];
7571290650Shselasky};
7572290650Shselasky
7573290650Shselaskystruct mlx5_ifc_alloc_pd_out_bits {
7574290650Shselasky	u8         status[0x8];
7575290650Shselasky	u8         reserved_0[0x18];
7576290650Shselasky
7577290650Shselasky	u8         syndrome[0x20];
7578290650Shselasky
7579290650Shselasky	u8         reserved_1[0x8];
7580290650Shselasky	u8         pd[0x18];
7581290650Shselasky
7582290650Shselasky	u8         reserved_2[0x20];
7583290650Shselasky};
7584290650Shselasky
7585290650Shselaskystruct mlx5_ifc_alloc_pd_in_bits {
7586290650Shselasky	u8         opcode[0x10];
7587290650Shselasky	u8         reserved_0[0x10];
7588290650Shselasky
7589290650Shselasky	u8         reserved_1[0x10];
7590290650Shselasky	u8         op_mod[0x10];
7591290650Shselasky
7592290650Shselasky	u8         reserved_2[0x40];
7593290650Shselasky};
7594290650Shselasky
7595290650Shselaskystruct mlx5_ifc_alloc_flow_counter_out_bits {
7596290650Shselasky	u8         status[0x8];
7597290650Shselasky	u8         reserved_0[0x18];
7598290650Shselasky
7599290650Shselasky	u8         syndrome[0x20];
7600290650Shselasky
7601290650Shselasky	u8         reserved_1[0x10];
7602290650Shselasky	u8         flow_counter_id[0x10];
7603290650Shselasky
7604290650Shselasky	u8         reserved_2[0x20];
7605290650Shselasky};
7606290650Shselasky
7607290650Shselaskystruct mlx5_ifc_alloc_flow_counter_in_bits {
7608290650Shselasky	u8         opcode[0x10];
7609290650Shselasky	u8         reserved_0[0x10];
7610290650Shselasky
7611290650Shselasky	u8         reserved_1[0x10];
7612290650Shselasky	u8         op_mod[0x10];
7613290650Shselasky
7614290650Shselasky	u8         reserved_2[0x40];
7615290650Shselasky};
7616290650Shselasky
7617290650Shselaskystruct mlx5_ifc_add_vxlan_udp_dport_out_bits {
7618290650Shselasky	u8         status[0x8];
7619290650Shselasky	u8         reserved_0[0x18];
7620290650Shselasky
7621290650Shselasky	u8         syndrome[0x20];
7622290650Shselasky
7623290650Shselasky	u8         reserved_1[0x40];
7624290650Shselasky};
7625290650Shselasky
7626290650Shselaskystruct mlx5_ifc_add_vxlan_udp_dport_in_bits {
7627290650Shselasky	u8         opcode[0x10];
7628290650Shselasky	u8         reserved_0[0x10];
7629290650Shselasky
7630290650Shselasky	u8         reserved_1[0x10];
7631290650Shselasky	u8         op_mod[0x10];
7632290650Shselasky
7633290650Shselasky	u8         reserved_2[0x20];
7634290650Shselasky
7635290650Shselasky	u8         reserved_3[0x10];
7636290650Shselasky	u8         vxlan_udp_port[0x10];
7637290650Shselasky};
7638290650Shselasky
7639290650Shselaskystruct mlx5_ifc_activate_tracer_out_bits {
7640290650Shselasky	u8         status[0x8];
7641290650Shselasky	u8         reserved_0[0x18];
7642290650Shselasky
7643290650Shselasky	u8         syndrome[0x20];
7644290650Shselasky
7645290650Shselasky	u8         reserved_1[0x40];
7646290650Shselasky};
7647290650Shselasky
7648290650Shselaskystruct mlx5_ifc_activate_tracer_in_bits {
7649290650Shselasky	u8         opcode[0x10];
7650290650Shselasky	u8         reserved_0[0x10];
7651290650Shselasky
7652290650Shselasky	u8         reserved_1[0x10];
7653290650Shselasky	u8         op_mod[0x10];
7654290650Shselasky
7655290650Shselasky	u8         mkey[0x20];
7656290650Shselasky
7657290650Shselasky	u8         reserved_2[0x20];
7658290650Shselasky};
7659290650Shselasky
7660306233Shselaskystruct mlx5_ifc_set_rate_limit_out_bits {
7661306233Shselasky	u8         status[0x8];
7662306233Shselasky	u8         reserved_at_8[0x18];
7663306233Shselasky
7664306233Shselasky	u8         syndrome[0x20];
7665306233Shselasky
7666306233Shselasky	u8         reserved_at_40[0x40];
7667306233Shselasky};
7668306233Shselasky
7669306233Shselaskystruct mlx5_ifc_set_rate_limit_in_bits {
7670306233Shselasky	u8         opcode[0x10];
7671306233Shselasky	u8         reserved_at_10[0x10];
7672306233Shselasky
7673306233Shselasky	u8         reserved_at_20[0x10];
7674306233Shselasky	u8         op_mod[0x10];
7675306233Shselasky
7676306233Shselasky	u8         reserved_at_40[0x10];
7677306233Shselasky	u8         rate_limit_index[0x10];
7678306233Shselasky
7679306233Shselasky	u8         reserved_at_60[0x20];
7680306233Shselasky
7681306233Shselasky	u8         rate_limit[0x20];
7682308678Shselasky	u8         burst_upper_bound[0x20];
7683306233Shselasky};
7684306233Shselasky
7685290650Shselaskystruct mlx5_ifc_access_register_out_bits {
7686290650Shselasky	u8         status[0x8];
7687290650Shselasky	u8         reserved_0[0x18];
7688290650Shselasky
7689290650Shselasky	u8         syndrome[0x20];
7690290650Shselasky
7691290650Shselasky	u8         reserved_1[0x40];
7692290650Shselasky
7693290650Shselasky	u8         register_data[0][0x20];
7694290650Shselasky};
7695290650Shselasky
7696290650Shselaskyenum {
7697290650Shselasky	MLX5_ACCESS_REGISTER_IN_OP_MOD_WRITE  = 0x0,
7698290650Shselasky	MLX5_ACCESS_REGISTER_IN_OP_MOD_READ   = 0x1,
7699290650Shselasky};
7700290650Shselasky
7701290650Shselaskystruct mlx5_ifc_access_register_in_bits {
7702290650Shselasky	u8         opcode[0x10];
7703290650Shselasky	u8         reserved_0[0x10];
7704290650Shselasky
7705290650Shselasky	u8         reserved_1[0x10];
7706290650Shselasky	u8         op_mod[0x10];
7707290650Shselasky
7708290650Shselasky	u8         reserved_2[0x10];
7709290650Shselasky	u8         register_id[0x10];
7710290650Shselasky
7711290650Shselasky	u8         argument[0x20];
7712290650Shselasky
7713290650Shselasky	u8         register_data[0][0x20];
7714290650Shselasky};
7715290650Shselasky
7716290650Shselaskystruct mlx5_ifc_sltp_reg_bits {
7717290650Shselasky	u8         status[0x4];
7718290650Shselasky	u8         version[0x4];
7719290650Shselasky	u8         local_port[0x8];
7720290650Shselasky	u8         pnat[0x2];
7721290650Shselasky	u8         reserved_0[0x2];
7722290650Shselasky	u8         lane[0x4];
7723290650Shselasky	u8         reserved_1[0x8];
7724290650Shselasky
7725290650Shselasky	u8         reserved_2[0x20];
7726290650Shselasky
7727290650Shselasky	u8         reserved_3[0x7];
7728290650Shselasky	u8         polarity[0x1];
7729290650Shselasky	u8         ob_tap0[0x8];
7730290650Shselasky	u8         ob_tap1[0x8];
7731290650Shselasky	u8         ob_tap2[0x8];
7732290650Shselasky
7733290650Shselasky	u8         reserved_4[0xc];
7734290650Shselasky	u8         ob_preemp_mode[0x4];
7735290650Shselasky	u8         ob_reg[0x8];
7736290650Shselasky	u8         ob_bias[0x8];
7737290650Shselasky
7738290650Shselasky	u8         reserved_5[0x20];
7739290650Shselasky};
7740290650Shselasky
7741290650Shselaskystruct mlx5_ifc_slrp_reg_bits {
7742290650Shselasky	u8         status[0x4];
7743290650Shselasky	u8         version[0x4];
7744290650Shselasky	u8         local_port[0x8];
7745290650Shselasky	u8         pnat[0x2];
7746290650Shselasky	u8         reserved_0[0x2];
7747290650Shselasky	u8         lane[0x4];
7748290650Shselasky	u8         reserved_1[0x8];
7749290650Shselasky
7750290650Shselasky	u8         ib_sel[0x2];
7751290650Shselasky	u8         reserved_2[0x11];
7752290650Shselasky	u8         dp_sel[0x1];
7753290650Shselasky	u8         dp90sel[0x4];
7754290650Shselasky	u8         mix90phase[0x8];
7755290650Shselasky
7756290650Shselasky	u8         ffe_tap0[0x8];
7757290650Shselasky	u8         ffe_tap1[0x8];
7758290650Shselasky	u8         ffe_tap2[0x8];
7759290650Shselasky	u8         ffe_tap3[0x8];
7760290650Shselasky
7761290650Shselasky	u8         ffe_tap4[0x8];
7762290650Shselasky	u8         ffe_tap5[0x8];
7763290650Shselasky	u8         ffe_tap6[0x8];
7764290650Shselasky	u8         ffe_tap7[0x8];
7765290650Shselasky
7766290650Shselasky	u8         ffe_tap8[0x8];
7767290650Shselasky	u8         mixerbias_tap_amp[0x8];
7768290650Shselasky	u8         reserved_3[0x7];
7769290650Shselasky	u8         ffe_tap_en[0x9];
7770290650Shselasky
7771290650Shselasky	u8         ffe_tap_offset0[0x8];
7772290650Shselasky	u8         ffe_tap_offset1[0x8];
7773290650Shselasky	u8         slicer_offset0[0x10];
7774290650Shselasky
7775290650Shselasky	u8         mixer_offset0[0x10];
7776290650Shselasky	u8         mixer_offset1[0x10];
7777290650Shselasky
7778290650Shselasky	u8         mixerbgn_inp[0x8];
7779290650Shselasky	u8         mixerbgn_inn[0x8];
7780290650Shselasky	u8         mixerbgn_refp[0x8];
7781290650Shselasky	u8         mixerbgn_refn[0x8];
7782290650Shselasky
7783290650Shselasky	u8         sel_slicer_lctrl_h[0x1];
7784290650Shselasky	u8         sel_slicer_lctrl_l[0x1];
7785290650Shselasky	u8         reserved_4[0x1];
7786290650Shselasky	u8         ref_mixer_vreg[0x5];
7787290650Shselasky	u8         slicer_gctrl[0x8];
7788290650Shselasky	u8         lctrl_input[0x8];
7789290650Shselasky	u8         mixer_offset_cm1[0x8];
7790290650Shselasky
7791290650Shselasky	u8         common_mode[0x6];
7792290650Shselasky	u8         reserved_5[0x1];
7793290650Shselasky	u8         mixer_offset_cm0[0x9];
7794290650Shselasky	u8         reserved_6[0x7];
7795290650Shselasky	u8         slicer_offset_cm[0x9];
7796290650Shselasky};
7797290650Shselasky
7798290650Shselaskystruct mlx5_ifc_slrg_reg_bits {
7799290650Shselasky	u8         status[0x4];
7800290650Shselasky	u8         version[0x4];
7801290650Shselasky	u8         local_port[0x8];
7802290650Shselasky	u8         pnat[0x2];
7803290650Shselasky	u8         reserved_0[0x2];
7804290650Shselasky	u8         lane[0x4];
7805290650Shselasky	u8         reserved_1[0x8];
7806290650Shselasky
7807290650Shselasky	u8         time_to_link_up[0x10];
7808290650Shselasky	u8         reserved_2[0xc];
7809290650Shselasky	u8         grade_lane_speed[0x4];
7810290650Shselasky
7811290650Shselasky	u8         grade_version[0x8];
7812290650Shselasky	u8         grade[0x18];
7813290650Shselasky
7814290650Shselasky	u8         reserved_3[0x4];
7815290650Shselasky	u8         height_grade_type[0x4];
7816290650Shselasky	u8         height_grade[0x18];
7817290650Shselasky
7818290650Shselasky	u8         height_dz[0x10];
7819290650Shselasky	u8         height_dv[0x10];
7820290650Shselasky
7821290650Shselasky	u8         reserved_4[0x10];
7822290650Shselasky	u8         height_sigma[0x10];
7823290650Shselasky
7824290650Shselasky	u8         reserved_5[0x20];
7825290650Shselasky
7826290650Shselasky	u8         reserved_6[0x4];
7827290650Shselasky	u8         phase_grade_type[0x4];
7828290650Shselasky	u8         phase_grade[0x18];
7829290650Shselasky
7830290650Shselasky	u8         reserved_7[0x8];
7831290650Shselasky	u8         phase_eo_pos[0x8];
7832290650Shselasky	u8         reserved_8[0x8];
7833290650Shselasky	u8         phase_eo_neg[0x8];
7834290650Shselasky
7835290650Shselasky	u8         ffe_set_tested[0x10];
7836290650Shselasky	u8         test_errors_per_lane[0x10];
7837290650Shselasky};
7838290650Shselasky
7839290650Shselaskystruct mlx5_ifc_pvlc_reg_bits {
7840290650Shselasky	u8         reserved_0[0x8];
7841290650Shselasky	u8         local_port[0x8];
7842290650Shselasky	u8         reserved_1[0x10];
7843290650Shselasky
7844290650Shselasky	u8         reserved_2[0x1c];
7845290650Shselasky	u8         vl_hw_cap[0x4];
7846290650Shselasky
7847290650Shselasky	u8         reserved_3[0x1c];
7848290650Shselasky	u8         vl_admin[0x4];
7849290650Shselasky
7850290650Shselasky	u8         reserved_4[0x1c];
7851290650Shselasky	u8         vl_operational[0x4];
7852290650Shselasky};
7853290650Shselasky
7854290650Shselaskystruct mlx5_ifc_pude_reg_bits {
7855290650Shselasky	u8         swid[0x8];
7856290650Shselasky	u8         local_port[0x8];
7857290650Shselasky	u8         reserved_0[0x4];
7858290650Shselasky	u8         admin_status[0x4];
7859290650Shselasky	u8         reserved_1[0x4];
7860290650Shselasky	u8         oper_status[0x4];
7861290650Shselasky
7862290650Shselasky	u8         reserved_2[0x60];
7863290650Shselasky};
7864290650Shselasky
7865290650Shselaskyenum {
7866290650Shselasky	MLX5_PTYS_REG_PROTO_MASK_INFINIBAND  = 0x1,
7867290650Shselasky	MLX5_PTYS_REG_PROTO_MASK_ETHERNET    = 0x4,
7868290650Shselasky};
7869290650Shselasky
7870290650Shselaskystruct mlx5_ifc_ptys_reg_bits {
7871306233Shselasky	u8         reserved_0[0x1];
7872306233Shselasky	u8         an_disable_admin[0x1];
7873306233Shselasky	u8         an_disable_cap[0x1];
7874306233Shselasky	u8         reserved_1[0x4];
7875306233Shselasky	u8         force_tx_aba_param[0x1];
7876290650Shselasky	u8         local_port[0x8];
7877306233Shselasky	u8         reserved_2[0xd];
7878290650Shselasky	u8         proto_mask[0x3];
7879290650Shselasky
7880306233Shselasky	u8         an_status[0x4];
7881306233Shselasky	u8         reserved_3[0xc];
7882306233Shselasky	u8         data_rate_oper[0x10];
7883290650Shselasky
7884347855Shselasky	u8         ext_eth_proto_capability[0x20];
7885306233Shselasky
7886290650Shselasky	u8         eth_proto_capability[0x20];
7887290650Shselasky
7888290650Shselasky	u8         ib_link_width_capability[0x10];
7889290650Shselasky	u8         ib_proto_capability[0x10];
7890290650Shselasky
7891347855Shselasky	u8         ext_eth_proto_admin[0x20];
7892290650Shselasky
7893290650Shselasky	u8         eth_proto_admin[0x20];
7894290650Shselasky
7895290650Shselasky	u8         ib_link_width_admin[0x10];
7896290650Shselasky	u8         ib_proto_admin[0x10];
7897290650Shselasky
7898347855Shselasky	u8         ext_eth_proto_oper[0x20];
7899290650Shselasky
7900290650Shselasky	u8         eth_proto_oper[0x20];
7901290650Shselasky
7902290650Shselasky	u8         ib_link_width_oper[0x10];
7903290650Shselasky	u8         ib_proto_oper[0x10];
7904290650Shselasky
7905347855Shselasky	u8         reserved_4[0x1c];
7906347855Shselasky	u8         connector_type[0x4];
7907290650Shselasky
7908290650Shselasky	u8         eth_proto_lp_advertise[0x20];
7909290650Shselasky
7910306233Shselasky	u8         reserved_5[0x60];
7911290650Shselasky};
7912290650Shselasky
7913290650Shselaskystruct mlx5_ifc_ptas_reg_bits {
7914290650Shselasky	u8         reserved_0[0x20];
7915290650Shselasky
7916290650Shselasky	u8         algorithm_options[0x10];
7917290650Shselasky	u8         reserved_1[0x4];
7918290650Shselasky	u8         repetitions_mode[0x4];
7919290650Shselasky	u8         num_of_repetitions[0x8];
7920290650Shselasky
7921290650Shselasky	u8         grade_version[0x8];
7922290650Shselasky	u8         height_grade_type[0x4];
7923290650Shselasky	u8         phase_grade_type[0x4];
7924290650Shselasky	u8         height_grade_weight[0x8];
7925290650Shselasky	u8         phase_grade_weight[0x8];
7926290650Shselasky
7927290650Shselasky	u8         gisim_measure_bits[0x10];
7928290650Shselasky	u8         adaptive_tap_measure_bits[0x10];
7929290650Shselasky
7930290650Shselasky	u8         ber_bath_high_error_threshold[0x10];
7931290650Shselasky	u8         ber_bath_mid_error_threshold[0x10];
7932290650Shselasky
7933290650Shselasky	u8         ber_bath_low_error_threshold[0x10];
7934290650Shselasky	u8         one_ratio_high_threshold[0x10];
7935290650Shselasky
7936290650Shselasky	u8         one_ratio_high_mid_threshold[0x10];
7937290650Shselasky	u8         one_ratio_low_mid_threshold[0x10];
7938290650Shselasky
7939290650Shselasky	u8         one_ratio_low_threshold[0x10];
7940290650Shselasky	u8         ndeo_error_threshold[0x10];
7941290650Shselasky
7942290650Shselasky	u8         mixer_offset_step_size[0x10];
7943290650Shselasky	u8         reserved_2[0x8];
7944290650Shselasky	u8         mix90_phase_for_voltage_bath[0x8];
7945290650Shselasky
7946290650Shselasky	u8         mixer_offset_start[0x10];
7947290650Shselasky	u8         mixer_offset_end[0x10];
7948290650Shselasky
7949290650Shselasky	u8         reserved_3[0x15];
7950290650Shselasky	u8         ber_test_time[0xb];
7951290650Shselasky};
7952290650Shselasky
7953290650Shselaskystruct mlx5_ifc_pspa_reg_bits {
7954290650Shselasky	u8         swid[0x8];
7955290650Shselasky	u8         local_port[0x8];
7956290650Shselasky	u8         sub_port[0x8];
7957290650Shselasky	u8         reserved_0[0x8];
7958290650Shselasky
7959290650Shselasky	u8         reserved_1[0x20];
7960290650Shselasky};
7961290650Shselasky
7962290650Shselaskystruct mlx5_ifc_ppsc_reg_bits {
7963290650Shselasky	u8         reserved_0[0x8];
7964290650Shselasky	u8         local_port[0x8];
7965290650Shselasky	u8         reserved_1[0x10];
7966290650Shselasky
7967290650Shselasky	u8         reserved_2[0x60];
7968290650Shselasky
7969290650Shselasky	u8         reserved_3[0x1c];
7970290650Shselasky	u8         wrps_admin[0x4];
7971290650Shselasky
7972290650Shselasky	u8         reserved_4[0x1c];
7973290650Shselasky	u8         wrps_status[0x4];
7974290650Shselasky
7975290650Shselasky	u8         up_th_vld[0x1];
7976290650Shselasky	u8         down_th_vld[0x1];
7977290650Shselasky	u8         reserved_5[0x6];
7978290650Shselasky	u8         up_threshold[0x8];
7979290650Shselasky	u8         reserved_6[0x8];
7980290650Shselasky	u8         down_threshold[0x8];
7981290650Shselasky
7982290650Shselasky	u8         reserved_7[0x20];
7983290650Shselasky
7984290650Shselasky	u8         reserved_8[0x1c];
7985290650Shselasky	u8         srps_admin[0x4];
7986290650Shselasky
7987290650Shselasky	u8         reserved_9[0x60];
7988290650Shselasky};
7989290650Shselasky
7990290650Shselaskystruct mlx5_ifc_pplr_reg_bits {
7991290650Shselasky	u8         reserved_0[0x8];
7992290650Shselasky	u8         local_port[0x8];
7993290650Shselasky	u8         reserved_1[0x10];
7994290650Shselasky
7995290650Shselasky	u8         reserved_2[0x8];
7996290650Shselasky	u8         lb_cap[0x8];
7997290650Shselasky	u8         reserved_3[0x8];
7998290650Shselasky	u8         lb_en[0x8];
7999290650Shselasky};
8000290650Shselasky
8001290650Shselaskystruct mlx5_ifc_pplm_reg_bits {
8002290650Shselasky	u8         reserved_0[0x8];
8003290650Shselasky	u8         local_port[0x8];
8004290650Shselasky	u8         reserved_1[0x10];
8005290650Shselasky
8006290650Shselasky	u8         reserved_2[0x20];
8007290650Shselasky
8008290650Shselasky	u8         port_profile_mode[0x8];
8009290650Shselasky	u8         static_port_profile[0x8];
8010290650Shselasky	u8         active_port_profile[0x8];
8011290650Shselasky	u8         reserved_3[0x8];
8012290650Shselasky
8013290650Shselasky	u8         retransmission_active[0x8];
8014290650Shselasky	u8         fec_mode_active[0x18];
8015290650Shselasky
8016290650Shselasky	u8         reserved_4[0x10];
8017290650Shselasky	u8         v_100g_fec_override_cap[0x4];
8018290650Shselasky	u8         v_50g_fec_override_cap[0x4];
8019290650Shselasky	u8         v_25g_fec_override_cap[0x4];
8020290650Shselasky	u8         v_10g_40g_fec_override_cap[0x4];
8021290650Shselasky
8022290650Shselasky	u8         reserved_5[0x10];
8023290650Shselasky	u8         v_100g_fec_override_admin[0x4];
8024290650Shselasky	u8         v_50g_fec_override_admin[0x4];
8025290650Shselasky	u8         v_25g_fec_override_admin[0x4];
8026290650Shselasky	u8         v_10g_40g_fec_override_admin[0x4];
8027290650Shselasky};
8028290650Shselasky
8029290650Shselaskystruct mlx5_ifc_ppll_reg_bits {
8030290650Shselasky	u8         num_pll_groups[0x8];
8031290650Shselasky	u8         pll_group[0x8];
8032290650Shselasky	u8         reserved_0[0x4];
8033290650Shselasky	u8         num_plls[0x4];
8034290650Shselasky	u8         reserved_1[0x8];
8035290650Shselasky
8036290650Shselasky	u8         reserved_2[0x1f];
8037290650Shselasky	u8         ae[0x1];
8038290650Shselasky
8039290650Shselasky	u8         pll_status[4][0x40];
8040290650Shselasky};
8041290650Shselasky
8042290650Shselaskystruct mlx5_ifc_ppad_reg_bits {
8043290650Shselasky	u8         reserved_0[0x3];
8044290650Shselasky	u8         single_mac[0x1];
8045290650Shselasky	u8         reserved_1[0x4];
8046290650Shselasky	u8         local_port[0x8];
8047290650Shselasky	u8         mac_47_32[0x10];
8048290650Shselasky
8049290650Shselasky	u8         mac_31_0[0x20];
8050290650Shselasky
8051290650Shselasky	u8         reserved_2[0x40];
8052290650Shselasky};
8053290650Shselasky
8054290650Shselaskystruct mlx5_ifc_pmtu_reg_bits {
8055290650Shselasky	u8         reserved_0[0x8];
8056290650Shselasky	u8         local_port[0x8];
8057290650Shselasky	u8         reserved_1[0x10];
8058290650Shselasky
8059290650Shselasky	u8         max_mtu[0x10];
8060290650Shselasky	u8         reserved_2[0x10];
8061290650Shselasky
8062290650Shselasky	u8         admin_mtu[0x10];
8063290650Shselasky	u8         reserved_3[0x10];
8064290650Shselasky
8065290650Shselasky	u8         oper_mtu[0x10];
8066290650Shselasky	u8         reserved_4[0x10];
8067290650Shselasky};
8068290650Shselasky
8069290650Shselaskystruct mlx5_ifc_pmpr_reg_bits {
8070290650Shselasky	u8         reserved_0[0x8];
8071290650Shselasky	u8         module[0x8];
8072290650Shselasky	u8         reserved_1[0x10];
8073290650Shselasky
8074290650Shselasky	u8         reserved_2[0x18];
8075290650Shselasky	u8         attenuation_5g[0x8];
8076290650Shselasky
8077290650Shselasky	u8         reserved_3[0x18];
8078290650Shselasky	u8         attenuation_7g[0x8];
8079290650Shselasky
8080290650Shselasky	u8         reserved_4[0x18];
8081290650Shselasky	u8         attenuation_12g[0x8];
8082290650Shselasky};
8083290650Shselasky
8084290650Shselaskystruct mlx5_ifc_pmpe_reg_bits {
8085290650Shselasky	u8         reserved_0[0x8];
8086290650Shselasky	u8         module[0x8];
8087290650Shselasky	u8         reserved_1[0xc];
8088290650Shselasky	u8         module_status[0x4];
8089290650Shselasky
8090290650Shselasky	u8         reserved_2[0x14];
8091290650Shselasky	u8         error_type[0x4];
8092290650Shselasky	u8         reserved_3[0x8];
8093290650Shselasky
8094290650Shselasky	u8         reserved_4[0x40];
8095290650Shselasky};
8096290650Shselasky
8097290650Shselaskystruct mlx5_ifc_pmpc_reg_bits {
8098290650Shselasky	u8         module_state_updated[32][0x8];
8099290650Shselasky};
8100290650Shselasky
8101290650Shselaskystruct mlx5_ifc_pmlpn_reg_bits {
8102290650Shselasky	u8         reserved_0[0x4];
8103290650Shselasky	u8         mlpn_status[0x4];
8104290650Shselasky	u8         local_port[0x8];
8105290650Shselasky	u8         reserved_1[0x10];
8106290650Shselasky
8107290650Shselasky	u8         e[0x1];
8108290650Shselasky	u8         reserved_2[0x1f];
8109290650Shselasky};
8110290650Shselasky
8111290650Shselaskystruct mlx5_ifc_pmlp_reg_bits {
8112290650Shselasky	u8         rxtx[0x1];
8113290650Shselasky	u8         reserved_0[0x7];
8114290650Shselasky	u8         local_port[0x8];
8115290650Shselasky	u8         reserved_1[0x8];
8116290650Shselasky	u8         width[0x8];
8117290650Shselasky
8118290650Shselasky	u8         lane0_module_mapping[0x20];
8119290650Shselasky
8120290650Shselasky	u8         lane1_module_mapping[0x20];
8121290650Shselasky
8122290650Shselasky	u8         lane2_module_mapping[0x20];
8123290650Shselasky
8124290650Shselasky	u8         lane3_module_mapping[0x20];
8125290650Shselasky
8126290650Shselasky	u8         reserved_2[0x160];
8127290650Shselasky};
8128290650Shselasky
8129290650Shselaskystruct mlx5_ifc_pmaos_reg_bits {
8130290650Shselasky	u8         reserved_0[0x8];
8131290650Shselasky	u8         module[0x8];
8132290650Shselasky	u8         reserved_1[0x4];
8133290650Shselasky	u8         admin_status[0x4];
8134290650Shselasky	u8         reserved_2[0x4];
8135290650Shselasky	u8         oper_status[0x4];
8136290650Shselasky
8137290650Shselasky	u8         ase[0x1];
8138290650Shselasky	u8         ee[0x1];
8139290650Shselasky	u8         reserved_3[0x12];
8140290650Shselasky	u8         error_type[0x4];
8141290650Shselasky	u8         reserved_4[0x6];
8142290650Shselasky	u8         e[0x2];
8143290650Shselasky
8144290650Shselasky	u8         reserved_5[0x40];
8145290650Shselasky};
8146290650Shselasky
8147290650Shselaskystruct mlx5_ifc_plpc_reg_bits {
8148290650Shselasky	u8         reserved_0[0x4];
8149290650Shselasky	u8         profile_id[0xc];
8150290650Shselasky	u8         reserved_1[0x4];
8151290650Shselasky	u8         proto_mask[0x4];
8152290650Shselasky	u8         reserved_2[0x8];
8153290650Shselasky
8154290650Shselasky	u8         reserved_3[0x10];
8155290650Shselasky	u8         lane_speed[0x10];
8156290650Shselasky
8157290650Shselasky	u8         reserved_4[0x17];
8158290650Shselasky	u8         lpbf[0x1];
8159290650Shselasky	u8         fec_mode_policy[0x8];
8160290650Shselasky
8161290650Shselasky	u8         retransmission_capability[0x8];
8162290650Shselasky	u8         fec_mode_capability[0x18];
8163290650Shselasky
8164290650Shselasky	u8         retransmission_support_admin[0x8];
8165290650Shselasky	u8         fec_mode_support_admin[0x18];
8166290650Shselasky
8167290650Shselasky	u8         retransmission_request_admin[0x8];
8168290650Shselasky	u8         fec_mode_request_admin[0x18];
8169290650Shselasky
8170290650Shselasky	u8         reserved_5[0x80];
8171290650Shselasky};
8172290650Shselasky
8173290650Shselaskystruct mlx5_ifc_pll_status_data_bits {
8174290650Shselasky	u8         reserved_0[0x1];
8175290650Shselasky	u8         lock_cal[0x1];
8176290650Shselasky	u8         lock_status[0x2];
8177290650Shselasky	u8         reserved_1[0x2];
8178290650Shselasky	u8         algo_f_ctrl[0xa];
8179290650Shselasky	u8         analog_algo_num_var[0x6];
8180290650Shselasky	u8         f_ctrl_measure[0xa];
8181290650Shselasky
8182290650Shselasky	u8         reserved_2[0x2];
8183290650Shselasky	u8         analog_var[0x6];
8184290650Shselasky	u8         reserved_3[0x2];
8185290650Shselasky	u8         high_var[0x6];
8186290650Shselasky	u8         reserved_4[0x2];
8187290650Shselasky	u8         low_var[0x6];
8188290650Shselasky	u8         reserved_5[0x2];
8189290650Shselasky	u8         mid_val[0x6];
8190290650Shselasky};
8191290650Shselasky
8192290650Shselaskystruct mlx5_ifc_plib_reg_bits {
8193290650Shselasky	u8         reserved_0[0x8];
8194290650Shselasky	u8         local_port[0x8];
8195290650Shselasky	u8         reserved_1[0x8];
8196290650Shselasky	u8         ib_port[0x8];
8197290650Shselasky
8198290650Shselasky	u8         reserved_2[0x60];
8199290650Shselasky};
8200290650Shselasky
8201290650Shselaskystruct mlx5_ifc_plbf_reg_bits {
8202290650Shselasky	u8         reserved_0[0x8];
8203290650Shselasky	u8         local_port[0x8];
8204290650Shselasky	u8         reserved_1[0xd];
8205290650Shselasky	u8         lbf_mode[0x3];
8206290650Shselasky
8207290650Shselasky	u8         reserved_2[0x20];
8208290650Shselasky};
8209290650Shselasky
8210290650Shselaskystruct mlx5_ifc_pipg_reg_bits {
8211290650Shselasky	u8         reserved_0[0x8];
8212290650Shselasky	u8         local_port[0x8];
8213290650Shselasky	u8         reserved_1[0x10];
8214290650Shselasky
8215290650Shselasky	u8         dic[0x1];
8216290650Shselasky	u8         reserved_2[0x19];
8217290650Shselasky	u8         ipg[0x4];
8218290650Shselasky	u8         reserved_3[0x2];
8219290650Shselasky};
8220290650Shselasky
8221290650Shselaskystruct mlx5_ifc_pifr_reg_bits {
8222290650Shselasky	u8         reserved_0[0x8];
8223290650Shselasky	u8         local_port[0x8];
8224290650Shselasky	u8         reserved_1[0x10];
8225290650Shselasky
8226290650Shselasky	u8         reserved_2[0xe0];
8227290650Shselasky
8228290650Shselasky	u8         port_filter[8][0x20];
8229290650Shselasky
8230290650Shselasky	u8         port_filter_update_en[8][0x20];
8231290650Shselasky};
8232290650Shselasky
8233290650Shselaskystruct mlx5_ifc_phys_layer_cntrs_bits {
8234290650Shselasky	u8         time_since_last_clear_high[0x20];
8235290650Shselasky
8236290650Shselasky	u8         time_since_last_clear_low[0x20];
8237290650Shselasky
8238290650Shselasky	u8         symbol_errors_high[0x20];
8239290650Shselasky
8240290650Shselasky	u8         symbol_errors_low[0x20];
8241290650Shselasky
8242290650Shselasky	u8         sync_headers_errors_high[0x20];
8243290650Shselasky
8244290650Shselasky	u8         sync_headers_errors_low[0x20];
8245290650Shselasky
8246290650Shselasky	u8         edpl_bip_errors_lane0_high[0x20];
8247290650Shselasky
8248290650Shselasky	u8         edpl_bip_errors_lane0_low[0x20];
8249290650Shselasky
8250290650Shselasky	u8         edpl_bip_errors_lane1_high[0x20];
8251290650Shselasky
8252290650Shselasky	u8         edpl_bip_errors_lane1_low[0x20];
8253290650Shselasky
8254290650Shselasky	u8         edpl_bip_errors_lane2_high[0x20];
8255290650Shselasky
8256290650Shselasky	u8         edpl_bip_errors_lane2_low[0x20];
8257290650Shselasky
8258290650Shselasky	u8         edpl_bip_errors_lane3_high[0x20];
8259290650Shselasky
8260290650Shselasky	u8         edpl_bip_errors_lane3_low[0x20];
8261290650Shselasky
8262290650Shselasky	u8         fc_fec_corrected_blocks_lane0_high[0x20];
8263290650Shselasky
8264290650Shselasky	u8         fc_fec_corrected_blocks_lane0_low[0x20];
8265290650Shselasky
8266290650Shselasky	u8         fc_fec_corrected_blocks_lane1_high[0x20];
8267290650Shselasky
8268290650Shselasky	u8         fc_fec_corrected_blocks_lane1_low[0x20];
8269290650Shselasky
8270290650Shselasky	u8         fc_fec_corrected_blocks_lane2_high[0x20];
8271290650Shselasky
8272290650Shselasky	u8         fc_fec_corrected_blocks_lane2_low[0x20];
8273290650Shselasky
8274290650Shselasky	u8         fc_fec_corrected_blocks_lane3_high[0x20];
8275290650Shselasky
8276290650Shselasky	u8         fc_fec_corrected_blocks_lane3_low[0x20];
8277290650Shselasky
8278290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane0_high[0x20];
8279290650Shselasky
8280290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane0_low[0x20];
8281290650Shselasky
8282290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane1_high[0x20];
8283290650Shselasky
8284290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane1_low[0x20];
8285290650Shselasky
8286290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane2_high[0x20];
8287290650Shselasky
8288290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane2_low[0x20];
8289290650Shselasky
8290290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane3_high[0x20];
8291290650Shselasky
8292290650Shselasky	u8         fc_fec_uncorrectable_blocks_lane3_low[0x20];
8293290650Shselasky
8294290650Shselasky	u8         rs_fec_corrected_blocks_high[0x20];
8295290650Shselasky
8296290650Shselasky	u8         rs_fec_corrected_blocks_low[0x20];
8297290650Shselasky
8298290650Shselasky	u8         rs_fec_uncorrectable_blocks_high[0x20];
8299290650Shselasky
8300290650Shselasky	u8         rs_fec_uncorrectable_blocks_low[0x20];
8301290650Shselasky
8302290650Shselasky	u8         rs_fec_no_errors_blocks_high[0x20];
8303290650Shselasky
8304290650Shselasky	u8         rs_fec_no_errors_blocks_low[0x20];
8305290650Shselasky
8306290650Shselasky	u8         rs_fec_single_error_blocks_high[0x20];
8307290650Shselasky
8308290650Shselasky	u8         rs_fec_single_error_blocks_low[0x20];
8309290650Shselasky
8310290650Shselasky	u8         rs_fec_corrected_symbols_total_high[0x20];
8311290650Shselasky
8312290650Shselasky	u8         rs_fec_corrected_symbols_total_low[0x20];
8313290650Shselasky
8314290650Shselasky	u8         rs_fec_corrected_symbols_lane0_high[0x20];
8315290650Shselasky
8316290650Shselasky	u8         rs_fec_corrected_symbols_lane0_low[0x20];
8317290650Shselasky
8318290650Shselasky	u8         rs_fec_corrected_symbols_lane1_high[0x20];
8319290650Shselasky
8320290650Shselasky	u8         rs_fec_corrected_symbols_lane1_low[0x20];
8321290650Shselasky
8322290650Shselasky	u8         rs_fec_corrected_symbols_lane2_high[0x20];
8323290650Shselasky
8324290650Shselasky	u8         rs_fec_corrected_symbols_lane2_low[0x20];
8325290650Shselasky
8326290650Shselasky	u8         rs_fec_corrected_symbols_lane3_high[0x20];
8327290650Shselasky
8328290650Shselasky	u8         rs_fec_corrected_symbols_lane3_low[0x20];
8329290650Shselasky
8330290650Shselasky	u8         link_down_events[0x20];
8331290650Shselasky
8332290650Shselasky	u8         successful_recovery_events[0x20];
8333290650Shselasky
8334290650Shselasky	u8         reserved_0[0x180];
8335290650Shselasky};
8336290650Shselasky
8337329204Shselaskystruct mlx5_ifc_ib_port_cntrs_grp_data_layout_bits {
8338329204Shselasky	u8	   symbol_error_counter[0x10];
8339329204Shselasky
8340329204Shselasky	u8         link_error_recovery_counter[0x8];
8341329204Shselasky
8342329204Shselasky	u8         link_downed_counter[0x8];
8343329204Shselasky
8344329204Shselasky	u8         port_rcv_errors[0x10];
8345329204Shselasky
8346329204Shselasky	u8         port_rcv_remote_physical_errors[0x10];
8347329204Shselasky
8348329204Shselasky	u8         port_rcv_switch_relay_errors[0x10];
8349329204Shselasky
8350329204Shselasky	u8         port_xmit_discards[0x10];
8351329204Shselasky
8352329204Shselasky	u8         port_xmit_constraint_errors[0x8];
8353329204Shselasky
8354329204Shselasky	u8         port_rcv_constraint_errors[0x8];
8355329204Shselasky
8356329204Shselasky	u8         reserved_at_70[0x8];
8357329204Shselasky
8358329204Shselasky	u8         link_overrun_errors[0x8];
8359329204Shselasky
8360329204Shselasky	u8	   reserved_at_80[0x10];
8361329204Shselasky
8362329204Shselasky	u8         vl_15_dropped[0x10];
8363329204Shselasky
8364329204Shselasky	u8	   reserved_at_a0[0xa0];
8365329204Shselasky};
8366329204Shselasky
8367321992Shselaskystruct mlx5_ifc_phys_layer_statistical_cntrs_bits {
8368321992Shselasky	u8         time_since_last_clear_high[0x20];
8369321992Shselasky
8370321992Shselasky	u8         time_since_last_clear_low[0x20];
8371321992Shselasky
8372321992Shselasky	u8         phy_received_bits_high[0x20];
8373321992Shselasky
8374321992Shselasky	u8         phy_received_bits_low[0x20];
8375321992Shselasky
8376321992Shselasky	u8         phy_symbol_errors_high[0x20];
8377321992Shselasky
8378321992Shselasky	u8         phy_symbol_errors_low[0x20];
8379321992Shselasky
8380321992Shselasky	u8         phy_corrected_bits_high[0x20];
8381321992Shselasky
8382321992Shselasky	u8         phy_corrected_bits_low[0x20];
8383321992Shselasky
8384321992Shselasky	u8         phy_corrected_bits_lane0_high[0x20];
8385321992Shselasky
8386321992Shselasky	u8         phy_corrected_bits_lane0_low[0x20];
8387321992Shselasky
8388321992Shselasky	u8         phy_corrected_bits_lane1_high[0x20];
8389321992Shselasky
8390321992Shselasky	u8         phy_corrected_bits_lane1_low[0x20];
8391321992Shselasky
8392321992Shselasky	u8         phy_corrected_bits_lane2_high[0x20];
8393321992Shselasky
8394321992Shselasky	u8         phy_corrected_bits_lane2_low[0x20];
8395321992Shselasky
8396321992Shselasky	u8         phy_corrected_bits_lane3_high[0x20];
8397321992Shselasky
8398321992Shselasky	u8         phy_corrected_bits_lane3_low[0x20];
8399321992Shselasky
8400321992Shselasky	u8         reserved_at_200[0x5c0];
8401321992Shselasky};
8402321992Shselasky
8403308678Shselaskystruct mlx5_ifc_infiniband_port_cntrs_bits {
8404308678Shselasky	u8         symbol_error_counter[0x10];
8405308678Shselasky	u8         link_error_recovery_counter[0x8];
8406308678Shselasky	u8         link_downed_counter[0x8];
8407308678Shselasky
8408308678Shselasky	u8         port_rcv_errors[0x10];
8409308678Shselasky	u8         port_rcv_remote_physical_errors[0x10];
8410308678Shselasky
8411308678Shselasky	u8         port_rcv_switch_relay_errors[0x10];
8412308678Shselasky	u8         port_xmit_discards[0x10];
8413308678Shselasky
8414308678Shselasky	u8         port_xmit_constraint_errors[0x8];
8415308678Shselasky	u8         port_rcv_constraint_errors[0x8];
8416308678Shselasky	u8         reserved_0[0x8];
8417308678Shselasky	u8         local_link_integrity_errors[0x4];
8418308678Shselasky	u8         excessive_buffer_overrun_errors[0x4];
8419308678Shselasky
8420308678Shselasky	u8         reserved_1[0x10];
8421308678Shselasky	u8         vl_15_dropped[0x10];
8422308678Shselasky
8423308678Shselasky	u8         port_xmit_data[0x20];
8424308678Shselasky
8425308678Shselasky	u8         port_rcv_data[0x20];
8426308678Shselasky
8427308678Shselasky	u8         port_xmit_pkts[0x20];
8428308678Shselasky
8429308678Shselasky	u8         port_rcv_pkts[0x20];
8430308678Shselasky
8431308678Shselasky	u8         port_xmit_wait[0x20];
8432308678Shselasky
8433308678Shselasky	u8         reserved_2[0x680];
8434308678Shselasky};
8435308678Shselasky
8436290650Shselaskystruct mlx5_ifc_phrr_reg_bits {
8437290650Shselasky	u8         clr[0x1];
8438290650Shselasky	u8         reserved_0[0x7];
8439290650Shselasky	u8         local_port[0x8];
8440290650Shselasky	u8         reserved_1[0x10];
8441290650Shselasky
8442290650Shselasky	u8         hist_group[0x8];
8443290650Shselasky	u8         reserved_2[0x10];
8444290650Shselasky	u8         hist_id[0x8];
8445290650Shselasky
8446290650Shselasky	u8         reserved_3[0x40];
8447290650Shselasky
8448290650Shselasky	u8         time_since_last_clear_high[0x20];
8449290650Shselasky
8450290650Shselasky	u8         time_since_last_clear_low[0x20];
8451290650Shselasky
8452290650Shselasky	u8         bin[10][0x20];
8453290650Shselasky};
8454290650Shselasky
8455290650Shselaskystruct mlx5_ifc_phbr_for_prio_reg_bits {
8456290650Shselasky	u8         reserved_0[0x18];
8457290650Shselasky	u8         prio[0x8];
8458290650Shselasky};
8459290650Shselasky
8460290650Shselaskystruct mlx5_ifc_phbr_for_port_tclass_reg_bits {
8461290650Shselasky	u8         reserved_0[0x18];
8462290650Shselasky	u8         tclass[0x8];
8463290650Shselasky};
8464290650Shselasky
8465290650Shselaskystruct mlx5_ifc_phbr_binding_reg_bits {
8466290650Shselasky	u8         opcode[0x4];
8467290650Shselasky	u8         reserved_0[0x4];
8468290650Shselasky	u8         local_port[0x8];
8469290650Shselasky	u8         pnat[0x2];
8470290650Shselasky	u8         reserved_1[0xe];
8471290650Shselasky
8472290650Shselasky	u8         hist_group[0x8];
8473290650Shselasky	u8         reserved_2[0x10];
8474290650Shselasky	u8         hist_id[0x8];
8475290650Shselasky
8476290650Shselasky	u8         reserved_3[0x10];
8477290650Shselasky	u8         hist_type[0x10];
8478290650Shselasky
8479290650Shselasky	u8         hist_parameters[0x20];
8480290650Shselasky
8481290650Shselasky	u8         hist_min_value[0x20];
8482290650Shselasky
8483290650Shselasky	u8         hist_max_value[0x20];
8484290650Shselasky
8485290650Shselasky	u8         sample_time[0x20];
8486290650Shselasky};
8487290650Shselasky
8488290650Shselaskyenum {
8489290650Shselasky	MLX5_PFCC_REG_PPAN_DISABLED  = 0x0,
8490290650Shselasky	MLX5_PFCC_REG_PPAN_ENABLED   = 0x1,
8491290650Shselasky};
8492290650Shselasky
8493290650Shselaskystruct mlx5_ifc_pfcc_reg_bits {
8494306233Shselasky	u8         dcbx_operation_type[0x2];
8495306233Shselasky	u8         cap_local_admin[0x1];
8496306233Shselasky	u8         cap_remote_admin[0x1];
8497306233Shselasky	u8         reserved_0[0x4];
8498290650Shselasky	u8         local_port[0x8];
8499290650Shselasky	u8         pnat[0x2];
8500290650Shselasky	u8         reserved_1[0xc];
8501290650Shselasky	u8         shl_cap[0x1];
8502290650Shselasky	u8         shl_opr[0x1];
8503290650Shselasky
8504290650Shselasky	u8         ppan[0x4];
8505290650Shselasky	u8         reserved_2[0x4];
8506290650Shselasky	u8         prio_mask_tx[0x8];
8507290650Shselasky	u8         reserved_3[0x8];
8508290650Shselasky	u8         prio_mask_rx[0x8];
8509290650Shselasky
8510290650Shselasky	u8         pptx[0x1];
8511290650Shselasky	u8         aptx[0x1];
8512290650Shselasky	u8         reserved_4[0x6];
8513290650Shselasky	u8         pfctx[0x8];
8514306233Shselasky	u8         reserved_5[0x8];
8515306233Shselasky	u8         cbftx[0x8];
8516290650Shselasky
8517290650Shselasky	u8         pprx[0x1];
8518290650Shselasky	u8         aprx[0x1];
8519290650Shselasky	u8         reserved_6[0x6];
8520290650Shselasky	u8         pfcrx[0x8];
8521306233Shselasky	u8         reserved_7[0x8];
8522306233Shselasky	u8         cbfrx[0x8];
8523290650Shselasky
8524308678Shselasky	u8         device_stall_minor_watermark[0x10];
8525308678Shselasky	u8         device_stall_critical_watermark[0x10];
8526308678Shselasky
8527308678Shselasky	u8         reserved_8[0x60];
8528290650Shselasky};
8529290650Shselasky
8530290650Shselaskystruct mlx5_ifc_pelc_reg_bits {
8531290650Shselasky	u8         op[0x4];
8532290650Shselasky	u8         reserved_0[0x4];
8533290650Shselasky	u8         local_port[0x8];
8534290650Shselasky	u8         reserved_1[0x10];
8535290650Shselasky
8536290650Shselasky	u8         op_admin[0x8];
8537290650Shselasky	u8         op_capability[0x8];
8538290650Shselasky	u8         op_request[0x8];
8539290650Shselasky	u8         op_active[0x8];
8540290650Shselasky
8541290650Shselasky	u8         admin[0x40];
8542290650Shselasky
8543290650Shselasky	u8         capability[0x40];
8544290650Shselasky
8545290650Shselasky	u8         request[0x40];
8546290650Shselasky
8547290650Shselasky	u8         active[0x40];
8548290650Shselasky
8549290650Shselasky	u8         reserved_2[0x80];
8550290650Shselasky};
8551290650Shselasky
8552290650Shselaskystruct mlx5_ifc_peir_reg_bits {
8553290650Shselasky	u8         reserved_0[0x8];
8554290650Shselasky	u8         local_port[0x8];
8555290650Shselasky	u8         reserved_1[0x10];
8556290650Shselasky
8557290650Shselasky	u8         reserved_2[0xc];
8558290650Shselasky	u8         error_count[0x4];
8559290650Shselasky	u8         reserved_3[0x10];
8560290650Shselasky
8561290650Shselasky	u8         reserved_4[0xc];
8562290650Shselasky	u8         lane[0x4];
8563290650Shselasky	u8         reserved_5[0x8];
8564290650Shselasky	u8         error_type[0x8];
8565290650Shselasky};
8566290650Shselasky
8567337098Shselaskystruct mlx5_ifc_qcam_access_reg_cap_mask {
8568337098Shselasky	u8         qcam_access_reg_cap_mask_127_to_20[0x6C];
8569337098Shselasky	u8         qpdpm[0x1];
8570337098Shselasky	u8         qcam_access_reg_cap_mask_18_to_4[0x0F];
8571337098Shselasky	u8         qdpm[0x1];
8572337098Shselasky	u8         qpts[0x1];
8573337098Shselasky	u8         qcap[0x1];
8574337098Shselasky	u8         qcam_access_reg_cap_mask_0[0x1];
8575337098Shselasky};
8576337098Shselasky
8577337098Shselaskystruct mlx5_ifc_qcam_qos_feature_cap_mask {
8578337098Shselasky	u8         qcam_qos_feature_cap_mask_127_to_1[0x7F];
8579337098Shselasky	u8         qpts_trust_both[0x1];
8580337098Shselasky};
8581337098Shselasky
8582337098Shselaskystruct mlx5_ifc_qcam_reg_bits {
8583337098Shselasky	u8         reserved_at_0[0x8];
8584337098Shselasky	u8         feature_group[0x8];
8585337098Shselasky	u8         reserved_at_10[0x8];
8586337098Shselasky	u8         access_reg_group[0x8];
8587337098Shselasky	u8         reserved_at_20[0x20];
8588337098Shselasky
8589337098Shselasky	union {
8590337098Shselasky		struct mlx5_ifc_qcam_access_reg_cap_mask reg_cap;
8591337098Shselasky		u8  reserved_at_0[0x80];
8592337098Shselasky	} qos_access_reg_cap_mask;
8593337098Shselasky
8594337098Shselasky	u8         reserved_at_c0[0x80];
8595337098Shselasky
8596337098Shselasky	union {
8597337098Shselasky		struct mlx5_ifc_qcam_qos_feature_cap_mask feature_cap;
8598337098Shselasky		u8  reserved_at_0[0x80];
8599337098Shselasky	} qos_feature_cap_mask;
8600337098Shselasky
8601337098Shselasky	u8         reserved_at_1c0[0x80];
8602337098Shselasky};
8603337098Shselasky
8604347820Shselaskystruct mlx5_ifc_pcam_enhanced_features_bits {
8605347855Shselasky	u8         reserved_at_0[0x6d];
8606347855Shselasky	u8         rx_icrc_encapsulated_counter[0x1];
8607347855Shselasky	u8	   reserved_at_6e[0x4];
8608347855Shselasky	u8         ptys_extended_ethernet[0x1];
8609347855Shselasky	u8	   reserved_at_73[0x3];
8610347855Shselasky	u8         pfcc_mask[0x1];
8611347855Shselasky	u8         reserved_at_77[0x3];
8612347855Shselasky	u8         per_lane_error_counters[0x1];
8613347855Shselasky	u8         rx_buffer_fullness_counters[0x1];
8614347855Shselasky	u8         ptys_connector_type[0x1];
8615347855Shselasky	u8         reserved_at_7d[0x1];
8616347820Shselasky	u8         ppcnt_discard_group[0x1];
8617347820Shselasky	u8         ppcnt_statistical_group[0x1];
8618347820Shselasky};
8619347820Shselasky
8620347820Shselaskystruct mlx5_ifc_pcam_reg_bits {
8621347820Shselasky	u8         reserved_at_0[0x8];
8622347820Shselasky	u8         feature_group[0x8];
8623347820Shselasky	u8         reserved_at_10[0x8];
8624347820Shselasky	u8         access_reg_group[0x8];
8625347820Shselasky
8626347820Shselasky	u8         reserved_at_20[0x20];
8627347820Shselasky
8628347820Shselasky	union {
8629347820Shselasky		u8         reserved_at_0[0x80];
8630347820Shselasky	} port_access_reg_cap_mask;
8631347820Shselasky
8632347820Shselasky	u8         reserved_at_c0[0x80];
8633347820Shselasky
8634347820Shselasky	union {
8635347820Shselasky		struct mlx5_ifc_pcam_enhanced_features_bits enhanced_features;
8636347820Shselasky		u8         reserved_at_0[0x80];
8637347820Shselasky	} feature_cap_mask;
8638347820Shselasky
8639347820Shselasky	u8         reserved_at_1c0[0xc0];
8640347820Shselasky};
8641347820Shselasky
8642347820Shselaskystruct mlx5_ifc_mcam_enhanced_features_bits {
8643347862Shselasky	u8         reserved_at_0[0x6e];
8644347862Shselasky	u8         pcie_status_and_power[0x1];
8645347862Shselasky	u8         reserved_at_111[0x10];
8646347820Shselasky	u8         pcie_performance_group[0x1];
8647347820Shselasky};
8648347820Shselasky
8649347825Shselaskystruct mlx5_ifc_mcam_access_reg_bits {
8650347825Shselasky	u8         reserved_at_0[0x1c];
8651347825Shselasky	u8         mcda[0x1];
8652347825Shselasky	u8         mcc[0x1];
8653347825Shselasky	u8         mcqi[0x1];
8654347825Shselasky	u8         reserved_at_1f[0x1];
8655347825Shselasky
8656347825Shselasky	u8         regs_95_to_64[0x20];
8657347825Shselasky	u8         regs_63_to_32[0x20];
8658347825Shselasky	u8         regs_31_to_0[0x20];
8659347825Shselasky};
8660347825Shselasky
8661347820Shselaskystruct mlx5_ifc_mcam_reg_bits {
8662347820Shselasky	u8         reserved_at_0[0x8];
8663347820Shselasky	u8         feature_group[0x8];
8664347820Shselasky	u8         reserved_at_10[0x8];
8665347820Shselasky	u8         access_reg_group[0x8];
8666347820Shselasky
8667347820Shselasky	u8         reserved_at_20[0x20];
8668347820Shselasky
8669347820Shselasky	union {
8670347825Shselasky		struct mlx5_ifc_mcam_access_reg_bits access_regs;
8671347820Shselasky		u8         reserved_at_0[0x80];
8672347820Shselasky	} mng_access_reg_cap_mask;
8673347820Shselasky
8674347820Shselasky	u8         reserved_at_c0[0x80];
8675347820Shselasky
8676347820Shselasky	union {
8677347820Shselasky		struct mlx5_ifc_mcam_enhanced_features_bits enhanced_features;
8678347820Shselasky		u8         reserved_at_0[0x80];
8679347820Shselasky	} mng_feature_cap_mask;
8680347820Shselasky
8681347820Shselasky	u8         reserved_at_1c0[0x80];
8682347820Shselasky};
8683347820Shselasky
8684290650Shselaskystruct mlx5_ifc_pcap_reg_bits {
8685290650Shselasky	u8         reserved_0[0x8];
8686290650Shselasky	u8         local_port[0x8];
8687290650Shselasky	u8         reserved_1[0x10];
8688290650Shselasky
8689290650Shselasky	u8         port_capability_mask[4][0x20];
8690290650Shselasky};
8691290650Shselasky
8692290650Shselaskystruct mlx5_ifc_pbmc_reg_bits {
8693290650Shselasky	u8         reserved_0[0x8];
8694290650Shselasky	u8         local_port[0x8];
8695290650Shselasky	u8         reserved_1[0x10];
8696290650Shselasky
8697290650Shselasky	u8         xoff_timer_value[0x10];
8698290650Shselasky	u8         xoff_refresh[0x10];
8699290650Shselasky
8700290650Shselasky	u8         reserved_2[0x10];
8701290650Shselasky	u8         port_buffer_size[0x10];
8702290650Shselasky
8703290650Shselasky	struct mlx5_ifc_bufferx_reg_bits buffer[10];
8704290650Shselasky
8705290650Shselasky	u8         reserved_3[0x40];
8706290650Shselasky
8707290650Shselasky	u8         port_shared_buffer[0x40];
8708290650Shselasky};
8709290650Shselasky
8710290650Shselaskystruct mlx5_ifc_paos_reg_bits {
8711290650Shselasky	u8         swid[0x8];
8712290650Shselasky	u8         local_port[0x8];
8713290650Shselasky	u8         reserved_0[0x4];
8714290650Shselasky	u8         admin_status[0x4];
8715290650Shselasky	u8         reserved_1[0x4];
8716290650Shselasky	u8         oper_status[0x4];
8717290650Shselasky
8718290650Shselasky	u8         ase[0x1];
8719290650Shselasky	u8         ee[0x1];
8720290650Shselasky	u8         reserved_2[0x1c];
8721290650Shselasky	u8         e[0x2];
8722290650Shselasky
8723290650Shselasky	u8         reserved_3[0x40];
8724290650Shselasky};
8725290650Shselasky
8726290650Shselaskystruct mlx5_ifc_pamp_reg_bits {
8727290650Shselasky	u8         reserved_0[0x8];
8728290650Shselasky	u8         opamp_group[0x8];
8729290650Shselasky	u8         reserved_1[0xc];
8730290650Shselasky	u8         opamp_group_type[0x4];
8731290650Shselasky
8732290650Shselasky	u8         start_index[0x10];
8733290650Shselasky	u8         reserved_2[0x4];
8734290650Shselasky	u8         num_of_indices[0xc];
8735290650Shselasky
8736290650Shselasky	u8         index_data[18][0x10];
8737290650Shselasky};
8738290650Shselasky
8739290650Shselaskystruct mlx5_ifc_link_level_retrans_cntr_grp_date_bits {
8740290650Shselasky	u8         llr_rx_cells_high[0x20];
8741290650Shselasky
8742290650Shselasky	u8         llr_rx_cells_low[0x20];
8743290650Shselasky
8744290650Shselasky	u8         llr_rx_error_high[0x20];
8745290650Shselasky
8746290650Shselasky	u8         llr_rx_error_low[0x20];
8747290650Shselasky
8748290650Shselasky	u8         llr_rx_crc_error_high[0x20];
8749290650Shselasky
8750290650Shselasky	u8         llr_rx_crc_error_low[0x20];
8751290650Shselasky
8752290650Shselasky	u8         llr_tx_cells_high[0x20];
8753290650Shselasky
8754290650Shselasky	u8         llr_tx_cells_low[0x20];
8755290650Shselasky
8756290650Shselasky	u8         llr_tx_ret_cells_high[0x20];
8757290650Shselasky
8758290650Shselasky	u8         llr_tx_ret_cells_low[0x20];
8759290650Shselasky
8760290650Shselasky	u8         llr_tx_ret_events_high[0x20];
8761290650Shselasky
8762290650Shselasky	u8         llr_tx_ret_events_low[0x20];
8763290650Shselasky
8764290650Shselasky	u8         reserved_0[0x640];
8765290650Shselasky};
8766290650Shselasky
8767341964Shselaskystruct mlx5_ifc_mtmp_reg_bits {
8768341964Shselasky	u8         i[0x1];
8769341964Shselasky	u8         reserved_at_1[0x18];
8770341964Shselasky	u8         sensor_index[0x7];
8771341964Shselasky
8772341964Shselasky	u8         reserved_at_20[0x10];
8773341964Shselasky	u8         temperature[0x10];
8774341964Shselasky
8775341964Shselasky	u8         mte[0x1];
8776341964Shselasky	u8         mtr[0x1];
8777341964Shselasky	u8         reserved_at_42[0x0e];
8778341964Shselasky	u8         max_temperature[0x10];
8779341964Shselasky
8780341964Shselasky	u8         tee[0x2];
8781341964Shselasky	u8         reserved_at_62[0x0e];
8782341964Shselasky	u8         temperature_threshold_hi[0x10];
8783341964Shselasky
8784341964Shselasky	u8         reserved_at_80[0x10];
8785341964Shselasky	u8         temperature_threshold_lo[0x10];
8786341964Shselasky
8787341964Shselasky	u8         reserved_at_100[0x20];
8788341964Shselasky
8789341964Shselasky	u8         sensor_name[0x40];
8790341964Shselasky};
8791341964Shselasky
8792290650Shselaskystruct mlx5_ifc_lane_2_module_mapping_bits {
8793290650Shselasky	u8         reserved_0[0x6];
8794290650Shselasky	u8         rx_lane[0x2];
8795290650Shselasky	u8         reserved_1[0x6];
8796290650Shselasky	u8         tx_lane[0x2];
8797290650Shselasky	u8         reserved_2[0x8];
8798290650Shselasky	u8         module[0x8];
8799290650Shselasky};
8800290650Shselasky
8801290650Shselaskystruct mlx5_ifc_eth_per_traffic_class_layout_bits {
8802290650Shselasky	u8         transmit_queue_high[0x20];
8803290650Shselasky
8804290650Shselasky	u8         transmit_queue_low[0x20];
8805290650Shselasky
8806290650Shselasky	u8         reserved_0[0x780];
8807290650Shselasky};
8808290650Shselasky
8809290650Shselaskystruct mlx5_ifc_eth_per_traffic_class_cong_layout_bits {
8810290650Shselasky	u8         no_buffer_discard_uc_high[0x20];
8811290650Shselasky
8812290650Shselasky	u8         no_buffer_discard_uc_low[0x20];
8813290650Shselasky
8814290650Shselasky	u8         wred_discard_high[0x20];
8815290650Shselasky
8816290650Shselasky	u8         wred_discard_low[0x20];
8817290650Shselasky
8818290650Shselasky	u8         reserved_0[0x740];
8819290650Shselasky};
8820290650Shselasky
8821290650Shselaskystruct mlx5_ifc_eth_per_prio_grp_data_layout_bits {
8822290650Shselasky	u8         rx_octets_high[0x20];
8823290650Shselasky
8824290650Shselasky	u8         rx_octets_low[0x20];
8825290650Shselasky
8826290650Shselasky	u8         reserved_0[0xc0];
8827290650Shselasky
8828290650Shselasky	u8         rx_frames_high[0x20];
8829290650Shselasky
8830290650Shselasky	u8         rx_frames_low[0x20];
8831290650Shselasky
8832290650Shselasky	u8         tx_octets_high[0x20];
8833290650Shselasky
8834290650Shselasky	u8         tx_octets_low[0x20];
8835290650Shselasky
8836290650Shselasky	u8         reserved_1[0xc0];
8837290650Shselasky
8838290650Shselasky	u8         tx_frames_high[0x20];
8839290650Shselasky
8840290650Shselasky	u8         tx_frames_low[0x20];
8841290650Shselasky
8842290650Shselasky	u8         rx_pause_high[0x20];
8843290650Shselasky
8844290650Shselasky	u8         rx_pause_low[0x20];
8845290650Shselasky
8846290650Shselasky	u8         rx_pause_duration_high[0x20];
8847290650Shselasky
8848290650Shselasky	u8         rx_pause_duration_low[0x20];
8849290650Shselasky
8850290650Shselasky	u8         tx_pause_high[0x20];
8851290650Shselasky
8852290650Shselasky	u8         tx_pause_low[0x20];
8853290650Shselasky
8854290650Shselasky	u8         tx_pause_duration_high[0x20];
8855290650Shselasky
8856290650Shselasky	u8         tx_pause_duration_low[0x20];
8857290650Shselasky
8858290650Shselasky	u8         rx_pause_transition_high[0x20];
8859290650Shselasky
8860290650Shselasky	u8         rx_pause_transition_low[0x20];
8861290650Shselasky
8862308678Shselasky	u8         rx_discards_high[0x20];
8863308678Shselasky
8864308678Shselasky	u8         rx_discards_low[0x20];
8865308678Shselasky
8866308678Shselasky	u8         device_stall_minor_watermark_cnt_high[0x20];
8867308678Shselasky
8868308678Shselasky	u8         device_stall_minor_watermark_cnt_low[0x20];
8869308678Shselasky
8870308678Shselasky	u8         device_stall_critical_watermark_cnt_high[0x20];
8871308678Shselasky
8872308678Shselasky	u8         device_stall_critical_watermark_cnt_low[0x20];
8873308678Shselasky
8874308678Shselasky	u8         reserved_2[0x340];
8875290650Shselasky};
8876290650Shselasky
8877290650Shselaskystruct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits {
8878290650Shselasky	u8         port_transmit_wait_high[0x20];
8879290650Shselasky
8880290650Shselasky	u8         port_transmit_wait_low[0x20];
8881290650Shselasky
8882290650Shselasky	u8         ecn_marked_high[0x20];
8883290650Shselasky
8884290650Shselasky	u8         ecn_marked_low[0x20];
8885290650Shselasky
8886290650Shselasky	u8         no_buffer_discard_mc_high[0x20];
8887290650Shselasky
8888290650Shselasky	u8         no_buffer_discard_mc_low[0x20];
8889290650Shselasky
8890347804Shselasky	u8         rx_ebp_high[0x20];
8891347804Shselasky
8892347804Shselasky	u8         rx_ebp_low[0x20];
8893347804Shselasky
8894347804Shselasky	u8         tx_ebp_high[0x20];
8895347804Shselasky
8896347804Shselasky	u8         tx_ebp_low[0x20];
8897347804Shselasky
8898347804Shselasky        u8         rx_buffer_almost_full_high[0x20];
8899347804Shselasky
8900347804Shselasky        u8         rx_buffer_almost_full_low[0x20];
8901347804Shselasky
8902347804Shselasky        u8         rx_buffer_full_high[0x20];
8903347804Shselasky
8904347804Shselasky        u8         rx_buffer_full_low[0x20];
8905347804Shselasky
8906347804Shselasky        u8         rx_icrc_encapsulated_high[0x20];
8907347804Shselasky
8908347804Shselasky        u8         rx_icrc_encapsulated_low[0x20];
8909347804Shselasky
8910347804Shselasky	u8         reserved_0[0x80];
8911347804Shselasky
8912347804Shselasky        u8         tx_stats_pkts64octets_high[0x20];
8913347804Shselasky
8914347804Shselasky        u8         tx_stats_pkts64octets_low[0x20];
8915347804Shselasky
8916347804Shselasky        u8         tx_stats_pkts65to127octets_high[0x20];
8917347804Shselasky
8918347804Shselasky        u8         tx_stats_pkts65to127octets_low[0x20];
8919347804Shselasky
8920347804Shselasky        u8         tx_stats_pkts128to255octets_high[0x20];
8921347804Shselasky
8922347804Shselasky        u8         tx_stats_pkts128to255octets_low[0x20];
8923347804Shselasky
8924347804Shselasky        u8         tx_stats_pkts256to511octets_high[0x20];
8925347804Shselasky
8926347804Shselasky        u8         tx_stats_pkts256to511octets_low[0x20];
8927347804Shselasky
8928347804Shselasky        u8         tx_stats_pkts512to1023octets_high[0x20];
8929347804Shselasky
8930347804Shselasky        u8         tx_stats_pkts512to1023octets_low[0x20];
8931347804Shselasky
8932347804Shselasky        u8         tx_stats_pkts1024to1518octets_high[0x20];
8933347804Shselasky
8934347804Shselasky        u8         tx_stats_pkts1024to1518octets_low[0x20];
8935347804Shselasky
8936347804Shselasky        u8         tx_stats_pkts1519to2047octets_high[0x20];
8937347804Shselasky
8938347804Shselasky        u8         tx_stats_pkts1519to2047octets_low[0x20];
8939347804Shselasky
8940347804Shselasky        u8         tx_stats_pkts2048to4095octets_high[0x20];
8941347804Shselasky
8942347804Shselasky        u8         tx_stats_pkts2048to4095octets_low[0x20];
8943347804Shselasky
8944347804Shselasky        u8         tx_stats_pkts4096to8191octets_high[0x20];
8945347804Shselasky
8946347804Shselasky        u8         tx_stats_pkts4096to8191octets_low[0x20];
8947347804Shselasky
8948347804Shselasky        u8         tx_stats_pkts8192to10239octets_high[0x20];
8949347804Shselasky
8950347804Shselasky        u8         tx_stats_pkts8192to10239octets_low[0x20];
8951347804Shselasky
8952347804Shselasky	u8         reserved_1[0x2C0];
8953290650Shselasky};
8954290650Shselasky
8955290650Shselaskystruct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits {
8956290650Shselasky	u8         a_frames_transmitted_ok_high[0x20];
8957290650Shselasky
8958290650Shselasky	u8         a_frames_transmitted_ok_low[0x20];
8959290650Shselasky
8960290650Shselasky	u8         a_frames_received_ok_high[0x20];
8961290650Shselasky
8962290650Shselasky	u8         a_frames_received_ok_low[0x20];
8963290650Shselasky
8964290650Shselasky	u8         a_frame_check_sequence_errors_high[0x20];
8965290650Shselasky
8966290650Shselasky	u8         a_frame_check_sequence_errors_low[0x20];
8967290650Shselasky
8968290650Shselasky	u8         a_alignment_errors_high[0x20];
8969290650Shselasky
8970290650Shselasky	u8         a_alignment_errors_low[0x20];
8971290650Shselasky
8972290650Shselasky	u8         a_octets_transmitted_ok_high[0x20];
8973290650Shselasky
8974290650Shselasky	u8         a_octets_transmitted_ok_low[0x20];
8975290650Shselasky
8976290650Shselasky	u8         a_octets_received_ok_high[0x20];
8977290650Shselasky
8978290650Shselasky	u8         a_octets_received_ok_low[0x20];
8979290650Shselasky
8980290650Shselasky	u8         a_multicast_frames_xmitted_ok_high[0x20];
8981290650Shselasky
8982290650Shselasky	u8         a_multicast_frames_xmitted_ok_low[0x20];
8983290650Shselasky
8984290650Shselasky	u8         a_broadcast_frames_xmitted_ok_high[0x20];
8985290650Shselasky
8986290650Shselasky	u8         a_broadcast_frames_xmitted_ok_low[0x20];
8987290650Shselasky
8988290650Shselasky	u8         a_multicast_frames_received_ok_high[0x20];
8989290650Shselasky
8990290650Shselasky	u8         a_multicast_frames_received_ok_low[0x20];
8991290650Shselasky
8992290650Shselasky	u8         a_broadcast_frames_recieved_ok_high[0x20];
8993290650Shselasky
8994290650Shselasky	u8         a_broadcast_frames_recieved_ok_low[0x20];
8995290650Shselasky
8996290650Shselasky	u8         a_in_range_length_errors_high[0x20];
8997290650Shselasky
8998290650Shselasky	u8         a_in_range_length_errors_low[0x20];
8999290650Shselasky
9000290650Shselasky	u8         a_out_of_range_length_field_high[0x20];
9001290650Shselasky
9002290650Shselasky	u8         a_out_of_range_length_field_low[0x20];
9003290650Shselasky
9004290650Shselasky	u8         a_frame_too_long_errors_high[0x20];
9005290650Shselasky
9006290650Shselasky	u8         a_frame_too_long_errors_low[0x20];
9007290650Shselasky
9008290650Shselasky	u8         a_symbol_error_during_carrier_high[0x20];
9009290650Shselasky
9010290650Shselasky	u8         a_symbol_error_during_carrier_low[0x20];
9011290650Shselasky
9012290650Shselasky	u8         a_mac_control_frames_transmitted_high[0x20];
9013290650Shselasky
9014290650Shselasky	u8         a_mac_control_frames_transmitted_low[0x20];
9015290650Shselasky
9016290650Shselasky	u8         a_mac_control_frames_received_high[0x20];
9017290650Shselasky
9018290650Shselasky	u8         a_mac_control_frames_received_low[0x20];
9019290650Shselasky
9020290650Shselasky	u8         a_unsupported_opcodes_received_high[0x20];
9021290650Shselasky
9022290650Shselasky	u8         a_unsupported_opcodes_received_low[0x20];
9023290650Shselasky
9024290650Shselasky	u8         a_pause_mac_ctrl_frames_received_high[0x20];
9025290650Shselasky
9026290650Shselasky	u8         a_pause_mac_ctrl_frames_received_low[0x20];
9027290650Shselasky
9028290650Shselasky	u8         a_pause_mac_ctrl_frames_transmitted_high[0x20];
9029290650Shselasky
9030290650Shselasky	u8         a_pause_mac_ctrl_frames_transmitted_low[0x20];
9031290650Shselasky
9032290650Shselasky	u8         reserved_0[0x300];
9033290650Shselasky};
9034290650Shselasky
9035290650Shselaskystruct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits {
9036290650Shselasky	u8         dot3stats_alignment_errors_high[0x20];
9037290650Shselasky
9038290650Shselasky	u8         dot3stats_alignment_errors_low[0x20];
9039290650Shselasky
9040290650Shselasky	u8         dot3stats_fcs_errors_high[0x20];
9041290650Shselasky
9042290650Shselasky	u8         dot3stats_fcs_errors_low[0x20];
9043290650Shselasky
9044290650Shselasky	u8         dot3stats_single_collision_frames_high[0x20];
9045290650Shselasky
9046290650Shselasky	u8         dot3stats_single_collision_frames_low[0x20];
9047290650Shselasky
9048290650Shselasky	u8         dot3stats_multiple_collision_frames_high[0x20];
9049290650Shselasky
9050290650Shselasky	u8         dot3stats_multiple_collision_frames_low[0x20];
9051290650Shselasky
9052290650Shselasky	u8         dot3stats_sqe_test_errors_high[0x20];
9053290650Shselasky
9054290650Shselasky	u8         dot3stats_sqe_test_errors_low[0x20];
9055290650Shselasky
9056290650Shselasky	u8         dot3stats_deferred_transmissions_high[0x20];
9057290650Shselasky
9058290650Shselasky	u8         dot3stats_deferred_transmissions_low[0x20];
9059290650Shselasky
9060290650Shselasky	u8         dot3stats_late_collisions_high[0x20];
9061290650Shselasky
9062290650Shselasky	u8         dot3stats_late_collisions_low[0x20];
9063290650Shselasky
9064290650Shselasky	u8         dot3stats_excessive_collisions_high[0x20];
9065290650Shselasky
9066290650Shselasky	u8         dot3stats_excessive_collisions_low[0x20];
9067290650Shselasky
9068290650Shselasky	u8         dot3stats_internal_mac_transmit_errors_high[0x20];
9069290650Shselasky
9070290650Shselasky	u8         dot3stats_internal_mac_transmit_errors_low[0x20];
9071290650Shselasky
9072290650Shselasky	u8         dot3stats_carrier_sense_errors_high[0x20];
9073290650Shselasky
9074290650Shselasky	u8         dot3stats_carrier_sense_errors_low[0x20];
9075290650Shselasky
9076290650Shselasky	u8         dot3stats_frame_too_longs_high[0x20];
9077290650Shselasky
9078290650Shselasky	u8         dot3stats_frame_too_longs_low[0x20];
9079290650Shselasky
9080290650Shselasky	u8         dot3stats_internal_mac_receive_errors_high[0x20];
9081290650Shselasky
9082290650Shselasky	u8         dot3stats_internal_mac_receive_errors_low[0x20];
9083290650Shselasky
9084290650Shselasky	u8         dot3stats_symbol_errors_high[0x20];
9085290650Shselasky
9086290650Shselasky	u8         dot3stats_symbol_errors_low[0x20];
9087290650Shselasky
9088290650Shselasky	u8         dot3control_in_unknown_opcodes_high[0x20];
9089290650Shselasky
9090290650Shselasky	u8         dot3control_in_unknown_opcodes_low[0x20];
9091290650Shselasky
9092290650Shselasky	u8         dot3in_pause_frames_high[0x20];
9093290650Shselasky
9094290650Shselasky	u8         dot3in_pause_frames_low[0x20];
9095290650Shselasky
9096290650Shselasky	u8         dot3out_pause_frames_high[0x20];
9097290650Shselasky
9098290650Shselasky	u8         dot3out_pause_frames_low[0x20];
9099290650Shselasky
9100290650Shselasky	u8         reserved_0[0x3c0];
9101290650Shselasky};
9102290650Shselasky
9103290650Shselaskystruct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits {
9104290650Shselasky	u8         if_in_octets_high[0x20];
9105290650Shselasky
9106290650Shselasky	u8         if_in_octets_low[0x20];
9107290650Shselasky
9108290650Shselasky	u8         if_in_ucast_pkts_high[0x20];
9109290650Shselasky
9110290650Shselasky	u8         if_in_ucast_pkts_low[0x20];
9111290650Shselasky
9112290650Shselasky	u8         if_in_discards_high[0x20];
9113290650Shselasky
9114290650Shselasky	u8         if_in_discards_low[0x20];
9115290650Shselasky
9116290650Shselasky	u8         if_in_errors_high[0x20];
9117290650Shselasky
9118290650Shselasky	u8         if_in_errors_low[0x20];
9119290650Shselasky
9120290650Shselasky	u8         if_in_unknown_protos_high[0x20];
9121290650Shselasky
9122290650Shselasky	u8         if_in_unknown_protos_low[0x20];
9123290650Shselasky
9124290650Shselasky	u8         if_out_octets_high[0x20];
9125290650Shselasky
9126290650Shselasky	u8         if_out_octets_low[0x20];
9127290650Shselasky
9128290650Shselasky	u8         if_out_ucast_pkts_high[0x20];
9129290650Shselasky
9130290650Shselasky	u8         if_out_ucast_pkts_low[0x20];
9131290650Shselasky
9132290650Shselasky	u8         if_out_discards_high[0x20];
9133290650Shselasky
9134290650Shselasky	u8         if_out_discards_low[0x20];
9135290650Shselasky
9136290650Shselasky	u8         if_out_errors_high[0x20];
9137290650Shselasky
9138290650Shselasky	u8         if_out_errors_low[0x20];
9139290650Shselasky
9140290650Shselasky	u8         if_in_multicast_pkts_high[0x20];
9141290650Shselasky
9142290650Shselasky	u8         if_in_multicast_pkts_low[0x20];
9143290650Shselasky
9144290650Shselasky	u8         if_in_broadcast_pkts_high[0x20];
9145290650Shselasky
9146290650Shselasky	u8         if_in_broadcast_pkts_low[0x20];
9147290650Shselasky
9148290650Shselasky	u8         if_out_multicast_pkts_high[0x20];
9149290650Shselasky
9150290650Shselasky	u8         if_out_multicast_pkts_low[0x20];
9151290650Shselasky
9152290650Shselasky	u8         if_out_broadcast_pkts_high[0x20];
9153290650Shselasky
9154290650Shselasky	u8         if_out_broadcast_pkts_low[0x20];
9155290650Shselasky
9156290650Shselasky	u8         reserved_0[0x480];
9157290650Shselasky};
9158290650Shselasky
9159290650Shselaskystruct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits {
9160290650Shselasky	u8         ether_stats_drop_events_high[0x20];
9161290650Shselasky
9162290650Shselasky	u8         ether_stats_drop_events_low[0x20];
9163290650Shselasky
9164290650Shselasky	u8         ether_stats_octets_high[0x20];
9165290650Shselasky
9166290650Shselasky	u8         ether_stats_octets_low[0x20];
9167290650Shselasky
9168290650Shselasky	u8         ether_stats_pkts_high[0x20];
9169290650Shselasky
9170290650Shselasky	u8         ether_stats_pkts_low[0x20];
9171290650Shselasky
9172290650Shselasky	u8         ether_stats_broadcast_pkts_high[0x20];
9173290650Shselasky
9174290650Shselasky	u8         ether_stats_broadcast_pkts_low[0x20];
9175290650Shselasky
9176290650Shselasky	u8         ether_stats_multicast_pkts_high[0x20];
9177290650Shselasky
9178290650Shselasky	u8         ether_stats_multicast_pkts_low[0x20];
9179290650Shselasky
9180290650Shselasky	u8         ether_stats_crc_align_errors_high[0x20];
9181290650Shselasky
9182290650Shselasky	u8         ether_stats_crc_align_errors_low[0x20];
9183290650Shselasky
9184290650Shselasky	u8         ether_stats_undersize_pkts_high[0x20];
9185290650Shselasky
9186290650Shselasky	u8         ether_stats_undersize_pkts_low[0x20];
9187290650Shselasky
9188290650Shselasky	u8         ether_stats_oversize_pkts_high[0x20];
9189290650Shselasky
9190290650Shselasky	u8         ether_stats_oversize_pkts_low[0x20];
9191290650Shselasky
9192290650Shselasky	u8         ether_stats_fragments_high[0x20];
9193290650Shselasky
9194290650Shselasky	u8         ether_stats_fragments_low[0x20];
9195290650Shselasky
9196290650Shselasky	u8         ether_stats_jabbers_high[0x20];
9197290650Shselasky
9198290650Shselasky	u8         ether_stats_jabbers_low[0x20];
9199290650Shselasky
9200290650Shselasky	u8         ether_stats_collisions_high[0x20];
9201290650Shselasky
9202290650Shselasky	u8         ether_stats_collisions_low[0x20];
9203290650Shselasky
9204290650Shselasky	u8         ether_stats_pkts64octets_high[0x20];
9205290650Shselasky
9206290650Shselasky	u8         ether_stats_pkts64octets_low[0x20];
9207290650Shselasky
9208290650Shselasky	u8         ether_stats_pkts65to127octets_high[0x20];
9209290650Shselasky
9210290650Shselasky	u8         ether_stats_pkts65to127octets_low[0x20];
9211290650Shselasky
9212290650Shselasky	u8         ether_stats_pkts128to255octets_high[0x20];
9213290650Shselasky
9214290650Shselasky	u8         ether_stats_pkts128to255octets_low[0x20];
9215290650Shselasky
9216290650Shselasky	u8         ether_stats_pkts256to511octets_high[0x20];
9217290650Shselasky
9218290650Shselasky	u8         ether_stats_pkts256to511octets_low[0x20];
9219290650Shselasky
9220290650Shselasky	u8         ether_stats_pkts512to1023octets_high[0x20];
9221290650Shselasky
9222290650Shselasky	u8         ether_stats_pkts512to1023octets_low[0x20];
9223290650Shselasky
9224290650Shselasky	u8         ether_stats_pkts1024to1518octets_high[0x20];
9225290650Shselasky
9226290650Shselasky	u8         ether_stats_pkts1024to1518octets_low[0x20];
9227290650Shselasky
9228290650Shselasky	u8         ether_stats_pkts1519to2047octets_high[0x20];
9229290650Shselasky
9230290650Shselasky	u8         ether_stats_pkts1519to2047octets_low[0x20];
9231290650Shselasky
9232290650Shselasky	u8         ether_stats_pkts2048to4095octets_high[0x20];
9233290650Shselasky
9234290650Shselasky	u8         ether_stats_pkts2048to4095octets_low[0x20];
9235290650Shselasky
9236290650Shselasky	u8         ether_stats_pkts4096to8191octets_high[0x20];
9237290650Shselasky
9238290650Shselasky	u8         ether_stats_pkts4096to8191octets_low[0x20];
9239290650Shselasky
9240290650Shselasky	u8         ether_stats_pkts8192to10239octets_high[0x20];
9241290650Shselasky
9242290650Shselasky	u8         ether_stats_pkts8192to10239octets_low[0x20];
9243290650Shselasky
9244290650Shselasky	u8         reserved_0[0x280];
9245290650Shselasky};
9246290650Shselasky
9247290650Shselaskystruct mlx5_ifc_ib_portcntrs_attribute_grp_data_bits {
9248290650Shselasky	u8         symbol_error_counter[0x10];
9249290650Shselasky	u8         link_error_recovery_counter[0x8];
9250290650Shselasky	u8         link_downed_counter[0x8];
9251290650Shselasky
9252290650Shselasky	u8         port_rcv_errors[0x10];
9253290650Shselasky	u8         port_rcv_remote_physical_errors[0x10];
9254290650Shselasky
9255290650Shselasky	u8         port_rcv_switch_relay_errors[0x10];
9256290650Shselasky	u8         port_xmit_discards[0x10];
9257290650Shselasky
9258290650Shselasky	u8         port_xmit_constraint_errors[0x8];
9259290650Shselasky	u8         port_rcv_constraint_errors[0x8];
9260290650Shselasky	u8         reserved_0[0x8];
9261290650Shselasky	u8         local_link_integrity_errors[0x4];
9262290650Shselasky	u8         excessive_buffer_overrun_errors[0x4];
9263290650Shselasky
9264290650Shselasky	u8         reserved_1[0x10];
9265290650Shselasky	u8         vl_15_dropped[0x10];
9266290650Shselasky
9267290650Shselasky	u8         port_xmit_data[0x20];
9268290650Shselasky
9269290650Shselasky	u8         port_rcv_data[0x20];
9270290650Shselasky
9271290650Shselasky	u8         port_xmit_pkts[0x20];
9272290650Shselasky
9273290650Shselasky	u8         port_rcv_pkts[0x20];
9274290650Shselasky
9275290650Shselasky	u8         port_xmit_wait[0x20];
9276290650Shselasky
9277290650Shselasky	u8         reserved_2[0x680];
9278290650Shselasky};
9279290650Shselasky
9280290650Shselaskystruct mlx5_ifc_trc_tlb_reg_bits {
9281290650Shselasky	u8         reserved_0[0x80];
9282290650Shselasky
9283290650Shselasky	u8         tlb_addr[0][0x40];
9284290650Shselasky};
9285290650Shselasky
9286290650Shselaskystruct mlx5_ifc_trc_read_fifo_reg_bits {
9287290650Shselasky	u8         reserved_0[0x10];
9288290650Shselasky	u8         requested_event_num[0x10];
9289290650Shselasky
9290290650Shselasky	u8         reserved_1[0x20];
9291290650Shselasky
9292290650Shselasky	u8         reserved_2[0x10];
9293290650Shselasky	u8         acual_event_num[0x10];
9294290650Shselasky
9295290650Shselasky	u8         reserved_3[0x20];
9296290650Shselasky
9297290650Shselasky	u8         event[0][0x40];
9298290650Shselasky};
9299290650Shselasky
9300290650Shselaskystruct mlx5_ifc_trc_lock_reg_bits {
9301290650Shselasky	u8         reserved_0[0x1f];
9302290650Shselasky	u8         lock[0x1];
9303290650Shselasky
9304290650Shselasky	u8         reserved_1[0x60];
9305290650Shselasky};
9306290650Shselasky
9307290650Shselaskystruct mlx5_ifc_trc_filter_reg_bits {
9308290650Shselasky	u8         status[0x1];
9309290650Shselasky	u8         reserved_0[0xf];
9310290650Shselasky	u8         filter_index[0x10];
9311290650Shselasky
9312290650Shselasky	u8         reserved_1[0x20];
9313290650Shselasky
9314290650Shselasky	u8         filter_val[0x20];
9315290650Shselasky
9316290650Shselasky	u8         reserved_2[0x1a0];
9317290650Shselasky};
9318290650Shselasky
9319290650Shselaskystruct mlx5_ifc_trc_event_reg_bits {
9320290650Shselasky	u8         status[0x1];
9321290650Shselasky	u8         reserved_0[0xf];
9322290650Shselasky	u8         event_index[0x10];
9323290650Shselasky
9324290650Shselasky	u8         reserved_1[0x20];
9325290650Shselasky
9326290650Shselasky	u8         event_id[0x20];
9327290650Shselasky
9328290650Shselasky	u8         event_selector_val[0x10];
9329290650Shselasky	u8         event_selector_size[0x10];
9330290650Shselasky
9331290650Shselasky	u8         reserved_2[0x180];
9332290650Shselasky};
9333290650Shselasky
9334290650Shselaskystruct mlx5_ifc_trc_conf_reg_bits {
9335290650Shselasky	u8         limit_en[0x1];
9336290650Shselasky	u8         reserved_0[0x3];
9337290650Shselasky	u8         dump_mode[0x4];
9338290650Shselasky	u8         reserved_1[0x15];
9339290650Shselasky	u8         state[0x3];
9340290650Shselasky
9341290650Shselasky	u8         reserved_2[0x20];
9342290650Shselasky
9343290650Shselasky	u8         limit_event_index[0x20];
9344290650Shselasky
9345290650Shselasky	u8         mkey[0x20];
9346290650Shselasky
9347290650Shselasky	u8         fifo_ready_ev_num[0x20];
9348290650Shselasky
9349290650Shselasky	u8         reserved_3[0x160];
9350290650Shselasky};
9351290650Shselasky
9352290650Shselaskystruct mlx5_ifc_trc_cap_reg_bits {
9353290650Shselasky	u8         reserved_0[0x18];
9354290650Shselasky	u8         dump_mode[0x8];
9355290650Shselasky
9356290650Shselasky	u8         reserved_1[0x20];
9357290650Shselasky
9358290650Shselasky	u8         num_of_events[0x10];
9359290650Shselasky	u8         num_of_filters[0x10];
9360290650Shselasky
9361290650Shselasky	u8         fifo_size[0x20];
9362290650Shselasky
9363290650Shselasky	u8         tlb_size[0x10];
9364290650Shselasky	u8         event_size[0x10];
9365290650Shselasky
9366290650Shselasky	u8         reserved_2[0x160];
9367290650Shselasky};
9368290650Shselasky
9369290650Shselaskystruct mlx5_ifc_set_node_in_bits {
9370290650Shselasky	u8         node_description[64][0x8];
9371290650Shselasky};
9372290650Shselasky
9373290650Shselaskystruct mlx5_ifc_register_power_settings_bits {
9374290650Shselasky	u8         reserved_0[0x18];
9375290650Shselasky	u8         power_settings_level[0x8];
9376290650Shselasky
9377290650Shselasky	u8         reserved_1[0x60];
9378290650Shselasky};
9379290650Shselasky
9380290650Shselaskystruct mlx5_ifc_register_host_endianess_bits {
9381290650Shselasky	u8         he[0x1];
9382290650Shselasky	u8         reserved_0[0x1f];
9383290650Shselasky
9384290650Shselasky	u8         reserved_1[0x60];
9385290650Shselasky};
9386290650Shselasky
9387290650Shselaskystruct mlx5_ifc_register_diag_buffer_ctrl_bits {
9388290650Shselasky	u8         physical_address[0x40];
9389290650Shselasky};
9390290650Shselasky
9391290650Shselaskystruct mlx5_ifc_qtct_reg_bits {
9392306233Shselasky	u8         operation_type[0x2];
9393306233Shselasky	u8         cap_local_admin[0x1];
9394306233Shselasky	u8         cap_remote_admin[0x1];
9395306233Shselasky	u8         reserved_0[0x4];
9396290650Shselasky	u8         port_number[0x8];
9397290650Shselasky	u8         reserved_1[0xd];
9398290650Shselasky	u8         prio[0x3];
9399290650Shselasky
9400290650Shselasky	u8         reserved_2[0x1d];
9401290650Shselasky	u8         tclass[0x3];
9402290650Shselasky};
9403290650Shselasky
9404290650Shselaskystruct mlx5_ifc_qpdp_reg_bits {
9405290650Shselasky	u8         reserved_0[0x8];
9406290650Shselasky	u8         port_number[0x8];
9407290650Shselasky	u8         reserved_1[0x10];
9408290650Shselasky
9409290650Shselasky	u8         reserved_2[0x1d];
9410290650Shselasky	u8         pprio[0x3];
9411290650Shselasky};
9412290650Shselasky
9413290650Shselaskystruct mlx5_ifc_port_info_ro_fields_param_bits {
9414290650Shselasky	u8         reserved_0[0x8];
9415290650Shselasky	u8         port[0x8];
9416290650Shselasky	u8         max_gid[0x10];
9417290650Shselasky
9418290650Shselasky	u8         reserved_1[0x20];
9419290650Shselasky
9420290650Shselasky	u8         port_guid[0x40];
9421290650Shselasky};
9422290650Shselasky
9423290650Shselaskystruct mlx5_ifc_nvqc_reg_bits {
9424290650Shselasky	u8         type[0x20];
9425290650Shselasky
9426290650Shselasky	u8         reserved_0[0x18];
9427290650Shselasky	u8         version[0x4];
9428290650Shselasky	u8         reserved_1[0x2];
9429290650Shselasky	u8         support_wr[0x1];
9430290650Shselasky	u8         support_rd[0x1];
9431290650Shselasky};
9432290650Shselasky
9433290650Shselaskystruct mlx5_ifc_nvia_reg_bits {
9434290650Shselasky	u8         reserved_0[0x1d];
9435290650Shselasky	u8         target[0x3];
9436290650Shselasky
9437290650Shselasky	u8         reserved_1[0x20];
9438290650Shselasky};
9439290650Shselasky
9440290650Shselaskystruct mlx5_ifc_nvdi_reg_bits {
9441290650Shselasky	struct mlx5_ifc_config_item_bits configuration_item_header;
9442290650Shselasky};
9443290650Shselasky
9444290650Shselaskystruct mlx5_ifc_nvda_reg_bits {
9445290650Shselasky	struct mlx5_ifc_config_item_bits configuration_item_header;
9446290650Shselasky
9447290650Shselasky	u8         configuration_item_data[0x20];
9448290650Shselasky};
9449290650Shselasky
9450290650Shselaskystruct mlx5_ifc_node_info_ro_fields_param_bits {
9451290650Shselasky	u8         system_image_guid[0x40];
9452290650Shselasky
9453290650Shselasky	u8         reserved_0[0x40];
9454290650Shselasky
9455290650Shselasky	u8         node_guid[0x40];
9456290650Shselasky
9457290650Shselasky	u8         reserved_1[0x10];
9458290650Shselasky	u8         max_pkey[0x10];
9459290650Shselasky
9460290650Shselasky	u8         reserved_2[0x20];
9461290650Shselasky};
9462290650Shselasky
9463290650Shselaskystruct mlx5_ifc_ets_tcn_config_reg_bits {
9464290650Shselasky	u8         g[0x1];
9465290650Shselasky	u8         b[0x1];
9466290650Shselasky	u8         r[0x1];
9467290650Shselasky	u8         reserved_0[0x9];
9468290650Shselasky	u8         group[0x4];
9469290650Shselasky	u8         reserved_1[0x9];
9470290650Shselasky	u8         bw_allocation[0x7];
9471290650Shselasky
9472290650Shselasky	u8         reserved_2[0xc];
9473290650Shselasky	u8         max_bw_units[0x4];
9474290650Shselasky	u8         reserved_3[0x8];
9475290650Shselasky	u8         max_bw_value[0x8];
9476290650Shselasky};
9477290650Shselasky
9478290650Shselaskystruct mlx5_ifc_ets_global_config_reg_bits {
9479290650Shselasky	u8         reserved_0[0x2];
9480290650Shselasky	u8         r[0x1];
9481290650Shselasky	u8         reserved_1[0x1d];
9482290650Shselasky
9483290650Shselasky	u8         reserved_2[0xc];
9484290650Shselasky	u8         max_bw_units[0x4];
9485290650Shselasky	u8         reserved_3[0x8];
9486290650Shselasky	u8         max_bw_value[0x8];
9487290650Shselasky};
9488290650Shselasky
9489331577Shselaskystruct mlx5_ifc_qetc_reg_bits {
9490331577Shselasky	u8                                         reserved_at_0[0x8];
9491331577Shselasky	u8                                         port_number[0x8];
9492331577Shselasky	u8                                         reserved_at_10[0x30];
9493331577Shselasky
9494331577Shselasky	struct mlx5_ifc_ets_tcn_config_reg_bits    tc_configuration[0x8];
9495331577Shselasky	struct mlx5_ifc_ets_global_config_reg_bits global_configuration;
9496331577Shselasky};
9497331577Shselasky
9498290650Shselaskystruct mlx5_ifc_nodnic_mac_filters_bits {
9499290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_filter0;
9500290650Shselasky
9501290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_filter1;
9502290650Shselasky
9503290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_filter2;
9504290650Shselasky
9505290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_filter3;
9506290650Shselasky
9507290650Shselasky	struct mlx5_ifc_mac_address_layout_bits mac_filter4;
9508290650Shselasky
9509290650Shselasky	u8         reserved_0[0xc0];
9510290650Shselasky};
9511290650Shselasky
9512290650Shselaskystruct mlx5_ifc_nodnic_gid_filters_bits {
9513290650Shselasky	u8         mgid_filter0[16][0x8];
9514290650Shselasky
9515290650Shselasky	u8         mgid_filter1[16][0x8];
9516290650Shselasky
9517290650Shselasky	u8         mgid_filter2[16][0x8];
9518290650Shselasky
9519290650Shselasky	u8         mgid_filter3[16][0x8];
9520290650Shselasky};
9521290650Shselasky
9522290650Shselaskyenum {
9523290650Shselasky	MLX5_NODNIC_CONFIG_REG_NUM_PORTS_SINGLE_PORT  = 0x0,
9524290650Shselasky	MLX5_NODNIC_CONFIG_REG_NUM_PORTS_DUAL_PORT    = 0x1,
9525290650Shselasky};
9526290650Shselasky
9527290650Shselaskyenum {
9528290650Shselasky	MLX5_NODNIC_CONFIG_REG_CQE_FORMAT_LEGACY_CQE  = 0x0,
9529290650Shselasky	MLX5_NODNIC_CONFIG_REG_CQE_FORMAT_NEW_CQE     = 0x1,
9530290650Shselasky};
9531290650Shselasky
9532290650Shselaskystruct mlx5_ifc_nodnic_config_reg_bits {
9533290650Shselasky	u8         no_dram_nic_revision[0x8];
9534290650Shselasky	u8         hardware_format[0x8];
9535290650Shselasky	u8         support_receive_filter[0x1];
9536290650Shselasky	u8         support_promisc_filter[0x1];
9537290650Shselasky	u8         support_promisc_multicast_filter[0x1];
9538290650Shselasky	u8         reserved_0[0x2];
9539290650Shselasky	u8         log_working_buffer_size[0x3];
9540290650Shselasky	u8         log_pkey_table_size[0x4];
9541290650Shselasky	u8         reserved_1[0x3];
9542290650Shselasky	u8         num_ports[0x1];
9543290650Shselasky
9544290650Shselasky	u8         reserved_2[0x2];
9545290650Shselasky	u8         log_max_ring_size[0x6];
9546290650Shselasky	u8         reserved_3[0x18];
9547290650Shselasky
9548290650Shselasky	u8         lkey[0x20];
9549290650Shselasky
9550290650Shselasky	u8         cqe_format[0x4];
9551290650Shselasky	u8         reserved_4[0x1c];
9552290650Shselasky
9553290650Shselasky	u8         node_guid[0x40];
9554290650Shselasky
9555290650Shselasky	u8         reserved_5[0x740];
9556290650Shselasky
9557290650Shselasky	struct mlx5_ifc_nodnic_port_config_reg_bits port1_settings;
9558290650Shselasky
9559290650Shselasky	struct mlx5_ifc_nodnic_port_config_reg_bits port2_settings;
9560290650Shselasky};
9561290650Shselasky
9562290650Shselaskystruct mlx5_ifc_vlan_layout_bits {
9563290650Shselasky	u8         reserved_0[0x14];
9564290650Shselasky	u8         vlan[0xc];
9565290650Shselasky
9566290650Shselasky	u8         reserved_1[0x20];
9567290650Shselasky};
9568290650Shselasky
9569290650Shselaskystruct mlx5_ifc_umr_pointer_desc_argument_bits {
9570290650Shselasky	u8         reserved_0[0x20];
9571290650Shselasky
9572290650Shselasky	u8         mkey[0x20];
9573290650Shselasky
9574290650Shselasky	u8         addressh_63_32[0x20];
9575290650Shselasky
9576290650Shselasky	u8         addressl_31_0[0x20];
9577290650Shselasky};
9578290650Shselasky
9579290650Shselaskystruct mlx5_ifc_ud_adrs_vector_bits {
9580290650Shselasky	u8         dc_key[0x40];
9581290650Shselasky
9582290650Shselasky	u8         ext[0x1];
9583290650Shselasky	u8         reserved_0[0x7];
9584290650Shselasky	u8         destination_qp_dct[0x18];
9585290650Shselasky
9586290650Shselasky	u8         static_rate[0x4];
9587290650Shselasky	u8         sl_eth_prio[0x4];
9588290650Shselasky	u8         fl[0x1];
9589290650Shselasky	u8         mlid[0x7];
9590290650Shselasky	u8         rlid_udp_sport[0x10];
9591290650Shselasky
9592290650Shselasky	u8         reserved_1[0x20];
9593290650Shselasky
9594290650Shselasky	u8         rmac_47_16[0x20];
9595290650Shselasky
9596290650Shselasky	u8         rmac_15_0[0x10];
9597290650Shselasky	u8         tclass[0x8];
9598290650Shselasky	u8         hop_limit[0x8];
9599290650Shselasky
9600290650Shselasky	u8         reserved_2[0x1];
9601290650Shselasky	u8         grh[0x1];
9602290650Shselasky	u8         reserved_3[0x2];
9603290650Shselasky	u8         src_addr_index[0x8];
9604290650Shselasky	u8         flow_label[0x14];
9605290650Shselasky
9606290650Shselasky	u8         rgid_rip[16][0x8];
9607290650Shselasky};
9608290650Shselasky
9609290650Shselaskystruct mlx5_ifc_port_module_event_bits {
9610290650Shselasky	u8         reserved_0[0x8];
9611290650Shselasky	u8         module[0x8];
9612290650Shselasky	u8         reserved_1[0xc];
9613290650Shselasky	u8         module_status[0x4];
9614290650Shselasky
9615290650Shselasky	u8         reserved_2[0x14];
9616290650Shselasky	u8         error_type[0x4];
9617290650Shselasky	u8         reserved_3[0x8];
9618290650Shselasky
9619290650Shselasky	u8         reserved_4[0xa0];
9620290650Shselasky};
9621290650Shselasky
9622290650Shselaskystruct mlx5_ifc_icmd_control_bits {
9623290650Shselasky	u8         opcode[0x10];
9624290650Shselasky	u8         status[0x8];
9625290650Shselasky	u8         reserved_0[0x7];
9626290650Shselasky	u8         busy[0x1];
9627290650Shselasky};
9628290650Shselasky
9629290650Shselaskystruct mlx5_ifc_eqe_bits {
9630290650Shselasky	u8         reserved_0[0x8];
9631290650Shselasky	u8         event_type[0x8];
9632290650Shselasky	u8         reserved_1[0x8];
9633290650Shselasky	u8         event_sub_type[0x8];
9634290650Shselasky
9635290650Shselasky	u8         reserved_2[0xe0];
9636290650Shselasky
9637290650Shselasky	union mlx5_ifc_event_auto_bits event_data;
9638290650Shselasky
9639290650Shselasky	u8         reserved_3[0x10];
9640290650Shselasky	u8         signature[0x8];
9641290650Shselasky	u8         reserved_4[0x7];
9642290650Shselasky	u8         owner[0x1];
9643290650Shselasky};
9644290650Shselasky
9645290650Shselaskyenum {
9646290650Shselasky	MLX5_CMD_QUEUE_ENTRY_TYPE_PCIE_CMD_IF_TRANSPORT  = 0x7,
9647290650Shselasky};
9648290650Shselasky
9649290650Shselaskystruct mlx5_ifc_cmd_queue_entry_bits {
9650290650Shselasky	u8         type[0x8];
9651290650Shselasky	u8         reserved_0[0x18];
9652290650Shselasky
9653290650Shselasky	u8         input_length[0x20];
9654290650Shselasky
9655290650Shselasky	u8         input_mailbox_pointer_63_32[0x20];
9656290650Shselasky
9657290650Shselasky	u8         input_mailbox_pointer_31_9[0x17];
9658290650Shselasky	u8         reserved_1[0x9];
9659290650Shselasky
9660290650Shselasky	u8         command_input_inline_data[16][0x8];
9661290650Shselasky
9662290650Shselasky	u8         command_output_inline_data[16][0x8];
9663290650Shselasky
9664290650Shselasky	u8         output_mailbox_pointer_63_32[0x20];
9665290650Shselasky
9666290650Shselasky	u8         output_mailbox_pointer_31_9[0x17];
9667290650Shselasky	u8         reserved_2[0x9];
9668290650Shselasky
9669290650Shselasky	u8         output_length[0x20];
9670290650Shselasky
9671290650Shselasky	u8         token[0x8];
9672290650Shselasky	u8         signature[0x8];
9673290650Shselasky	u8         reserved_3[0x8];
9674290650Shselasky	u8         status[0x7];
9675290650Shselasky	u8         ownership[0x1];
9676290650Shselasky};
9677290650Shselasky
9678290650Shselaskystruct mlx5_ifc_cmd_out_bits {
9679290650Shselasky	u8         status[0x8];
9680290650Shselasky	u8         reserved_0[0x18];
9681290650Shselasky
9682290650Shselasky	u8         syndrome[0x20];
9683290650Shselasky
9684290650Shselasky	u8         command_output[0x20];
9685290650Shselasky};
9686290650Shselasky
9687290650Shselaskystruct mlx5_ifc_cmd_in_bits {
9688290650Shselasky	u8         opcode[0x10];
9689290650Shselasky	u8         reserved_0[0x10];
9690290650Shselasky
9691290650Shselasky	u8         reserved_1[0x10];
9692290650Shselasky	u8         op_mod[0x10];
9693290650Shselasky
9694290650Shselasky	u8         command[0][0x20];
9695290650Shselasky};
9696290650Shselasky
9697290650Shselaskystruct mlx5_ifc_cmd_if_box_bits {
9698290650Shselasky	u8         mailbox_data[512][0x8];
9699290650Shselasky
9700290650Shselasky	u8         reserved_0[0x180];
9701290650Shselasky
9702290650Shselasky	u8         next_pointer_63_32[0x20];
9703290650Shselasky
9704290650Shselasky	u8         next_pointer_31_10[0x16];
9705290650Shselasky	u8         reserved_1[0xa];
9706290650Shselasky
9707290650Shselasky	u8         block_number[0x20];
9708290650Shselasky
9709290650Shselasky	u8         reserved_2[0x8];
9710290650Shselasky	u8         token[0x8];
9711290650Shselasky	u8         ctrl_signature[0x8];
9712290650Shselasky	u8         signature[0x8];
9713290650Shselasky};
9714290650Shselasky
9715290650Shselaskystruct mlx5_ifc_mtt_bits {
9716290650Shselasky	u8         ptag_63_32[0x20];
9717290650Shselasky
9718290650Shselasky	u8         ptag_31_8[0x18];
9719290650Shselasky	u8         reserved_0[0x6];
9720290650Shselasky	u8         wr_en[0x1];
9721290650Shselasky	u8         rd_en[0x1];
9722290650Shselasky};
9723290650Shselasky
9724331585Shselasky/* Vendor Specific Capabilities, VSC */
9725331585Shselaskyenum {
9726331585Shselasky	MLX5_VSC_DOMAIN_ICMD			= 0x1,
9727331585Shselasky	MLX5_VSC_DOMAIN_PROTECTED_CRSPACE	= 0x6,
9728331585Shselasky	MLX5_VSC_DOMAIN_SEMAPHORES		= 0xA,
9729331585Shselasky};
9730331585Shselasky
9731290650Shselaskystruct mlx5_ifc_vendor_specific_cap_bits {
9732290650Shselasky	u8         type[0x8];
9733290650Shselasky	u8         length[0x8];
9734290650Shselasky	u8         next_pointer[0x8];
9735290650Shselasky	u8         capability_id[0x8];
9736290650Shselasky
9737290650Shselasky	u8         status[0x3];
9738290650Shselasky	u8         reserved_0[0xd];
9739290650Shselasky	u8         space[0x10];
9740290650Shselasky
9741290650Shselasky	u8         counter[0x20];
9742290650Shselasky
9743290650Shselasky	u8         semaphore[0x20];
9744290650Shselasky
9745290650Shselasky	u8         flag[0x1];
9746290650Shselasky	u8         reserved_1[0x1];
9747290650Shselasky	u8         address[0x1e];
9748290650Shselasky
9749290650Shselasky	u8         data[0x20];
9750290650Shselasky};
9751290650Shselasky
9752353210Shselaskystruct mlx5_ifc_vsc_space_bits {
9753353210Shselasky	u8 status[0x3];
9754353210Shselasky	u8 reserved0[0xd];
9755353210Shselasky	u8 space[0x10];
9756353210Shselasky};
9757353210Shselasky
9758353210Shselaskystruct mlx5_ifc_vsc_addr_bits {
9759353210Shselasky	u8 flag[0x1];
9760353210Shselasky	u8 reserved0[0x1];
9761353210Shselasky	u8 address[0x1e];
9762353210Shselasky};
9763353210Shselasky
9764290650Shselaskyenum {
9765290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_FULL_DRIVER  = 0x0,
9766290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_DISABLED     = 0x1,
9767290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_NO_DRAM_NIC  = 0x2,
9768290650Shselasky};
9769290650Shselasky
9770290650Shselaskyenum {
9771290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_FULL_DRIVER  = 0x0,
9772290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_DISABLED     = 0x1,
9773290650Shselasky	MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_NO_DRAM_NIC  = 0x2,
9774290650Shselasky};
9775290650Shselasky
9776290650Shselaskyenum {
9777290650Shselasky	MLX5_HEALTH_SYNDR_FW_ERR                                      = 0x1,
9778290650Shselasky	MLX5_HEALTH_SYNDR_IRISC_ERR                                   = 0x7,
9779290650Shselasky	MLX5_HEALTH_SYNDR_HW_UNRECOVERABLE_ERR                        = 0x8,
9780290650Shselasky	MLX5_HEALTH_SYNDR_CRC_ERR                                     = 0x9,
9781290650Shselasky	MLX5_HEALTH_SYNDR_FETCH_PCI_ERR                               = 0xa,
9782290650Shselasky	MLX5_HEALTH_SYNDR_HW_FTL_ERR                                  = 0xb,
9783290650Shselasky	MLX5_HEALTH_SYNDR_ASYNC_EQ_OVERRUN_ERR                        = 0xc,
9784290650Shselasky	MLX5_HEALTH_SYNDR_EQ_ERR                                      = 0xd,
9785290650Shselasky	MLX5_HEALTH_SYNDR_EQ_INV                                      = 0xe,
9786290650Shselasky	MLX5_HEALTH_SYNDR_FFSER_ERR                                   = 0xf,
9787290650Shselasky	MLX5_HEALTH_SYNDR_HIGH_TEMP                                   = 0x10,
9788290650Shselasky};
9789290650Shselasky
9790290650Shselaskystruct mlx5_ifc_initial_seg_bits {
9791290650Shselasky	u8         fw_rev_minor[0x10];
9792290650Shselasky	u8         fw_rev_major[0x10];
9793290650Shselasky
9794290650Shselasky	u8         cmd_interface_rev[0x10];
9795290650Shselasky	u8         fw_rev_subminor[0x10];
9796290650Shselasky
9797290650Shselasky	u8         reserved_0[0x40];
9798290650Shselasky
9799290650Shselasky	u8         cmdq_phy_addr_63_32[0x20];
9800290650Shselasky
9801290650Shselasky	u8         cmdq_phy_addr_31_12[0x14];
9802290650Shselasky	u8         reserved_1[0x2];
9803290650Shselasky	u8         nic_interface[0x2];
9804290650Shselasky	u8         log_cmdq_size[0x4];
9805290650Shselasky	u8         log_cmdq_stride[0x4];
9806290650Shselasky
9807290650Shselasky	u8         command_doorbell_vector[0x20];
9808290650Shselasky
9809290650Shselasky	u8         reserved_2[0xf00];
9810290650Shselasky
9811290650Shselasky	u8         initializing[0x1];
9812290650Shselasky	u8         reserved_3[0x4];
9813290650Shselasky	u8         nic_interface_supported[0x3];
9814290650Shselasky	u8         reserved_4[0x18];
9815290650Shselasky
9816290650Shselasky	struct mlx5_ifc_health_buffer_bits health_buffer;
9817290650Shselasky
9818290650Shselasky	u8         no_dram_nic_offset[0x20];
9819290650Shselasky
9820290650Shselasky	u8         reserved_5[0x6de0];
9821290650Shselasky
9822290650Shselasky	u8         internal_timer_h[0x20];
9823290650Shselasky
9824290650Shselasky	u8         internal_timer_l[0x20];
9825290650Shselasky
9826290650Shselasky	u8         reserved_6[0x20];
9827290650Shselasky
9828290650Shselasky	u8         reserved_7[0x1f];
9829290650Shselasky	u8         clear_int[0x1];
9830290650Shselasky
9831290650Shselasky	u8         health_syndrome[0x8];
9832290650Shselasky	u8         health_counter[0x18];
9833290650Shselasky
9834290650Shselasky	u8         reserved_8[0x17fc0];
9835290650Shselasky};
9836290650Shselasky
9837290650Shselaskyunion mlx5_ifc_icmd_interface_document_bits {
9838290650Shselasky	struct mlx5_ifc_fw_version_bits fw_version;
9839290650Shselasky	struct mlx5_ifc_icmd_access_reg_in_bits icmd_access_reg_in;
9840290650Shselasky	struct mlx5_ifc_icmd_access_reg_out_bits icmd_access_reg_out;
9841290650Shselasky	struct mlx5_ifc_icmd_init_ocsd_in_bits icmd_init_ocsd_in;
9842290650Shselasky	struct mlx5_ifc_icmd_ocbb_init_in_bits icmd_ocbb_init_in;
9843290650Shselasky	struct mlx5_ifc_icmd_ocbb_query_etoc_stats_out_bits icmd_ocbb_query_etoc_stats_out;
9844290650Shselasky	struct mlx5_ifc_icmd_ocbb_query_header_stats_out_bits icmd_ocbb_query_header_stats_out;
9845290650Shselasky	struct mlx5_ifc_icmd_query_cap_general_bits icmd_query_cap_general;
9846290650Shselasky	struct mlx5_ifc_icmd_query_cap_in_bits icmd_query_cap_in;
9847290650Shselasky	struct mlx5_ifc_icmd_query_fw_info_out_bits icmd_query_fw_info_out;
9848290650Shselasky	struct mlx5_ifc_icmd_query_virtual_mac_out_bits icmd_query_virtual_mac_out;
9849290650Shselasky	struct mlx5_ifc_icmd_set_virtual_mac_in_bits icmd_set_virtual_mac_in;
9850290650Shselasky	struct mlx5_ifc_icmd_set_wol_rol_in_bits icmd_set_wol_rol_in;
9851290650Shselasky	struct mlx5_ifc_icmd_set_wol_rol_out_bits icmd_set_wol_rol_out;
9852290650Shselasky	u8         reserved_0[0x42c0];
9853290650Shselasky};
9854290650Shselasky
9855290650Shselaskyunion mlx5_ifc_eth_cntrs_grp_data_layout_auto_bits {
9856290650Shselasky	struct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits eth_802_3_cntrs_grp_data_layout;
9857290650Shselasky	struct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits eth_2863_cntrs_grp_data_layout;
9858290650Shselasky	struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits eth_2819_cntrs_grp_data_layout;
9859290650Shselasky	struct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits eth_3635_cntrs_grp_data_layout;
9860290650Shselasky	struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits eth_extended_cntrs_grp_data_layout;
9861308678Shselasky	struct mlx5_ifc_eth_discard_cntrs_grp_bits eth_discard_cntrs_grp;
9862290650Shselasky	struct mlx5_ifc_eth_per_prio_grp_data_layout_bits eth_per_prio_grp_data_layout;
9863290650Shselasky	struct mlx5_ifc_phys_layer_cntrs_bits phys_layer_cntrs;
9864321992Shselasky	struct mlx5_ifc_phys_layer_statistical_cntrs_bits phys_layer_statistical_cntrs;
9865308678Shselasky	struct mlx5_ifc_infiniband_port_cntrs_bits infiniband_port_cntrs;
9866290650Shselasky	u8         reserved_0[0x7c0];
9867290650Shselasky};
9868290650Shselasky
9869290650Shselaskystruct mlx5_ifc_ppcnt_reg_bits {
9870290650Shselasky	u8         swid[0x8];
9871290650Shselasky	u8         local_port[0x8];
9872290650Shselasky	u8         pnat[0x2];
9873290650Shselasky	u8         reserved_0[0x8];
9874290650Shselasky	u8         grp[0x6];
9875290650Shselasky
9876290650Shselasky	u8         clr[0x1];
9877290650Shselasky	u8         reserved_1[0x1c];
9878290650Shselasky	u8         prio_tc[0x3];
9879290650Shselasky
9880290650Shselasky	union mlx5_ifc_eth_cntrs_grp_data_layout_auto_bits counter_set;
9881290650Shselasky};
9882290650Shselasky
9883347863Shselaskystruct mlx5_ifc_pcie_lanes_counters_bits {
9884306233Shselasky	u8         life_time_counter_high[0x20];
9885306233Shselasky
9886306233Shselasky	u8         life_time_counter_low[0x20];
9887306233Shselasky
9888347863Shselasky	u8         error_counter_lane0[0x20];
9889347863Shselasky
9890347863Shselasky	u8         error_counter_lane1[0x20];
9891347863Shselasky
9892347863Shselasky	u8         error_counter_lane2[0x20];
9893347863Shselasky
9894347863Shselasky	u8         error_counter_lane3[0x20];
9895347863Shselasky
9896347863Shselasky	u8         error_counter_lane4[0x20];
9897347863Shselasky
9898347863Shselasky	u8         error_counter_lane5[0x20];
9899347863Shselasky
9900347863Shselasky	u8         error_counter_lane6[0x20];
9901347863Shselasky
9902347863Shselasky	u8         error_counter_lane7[0x20];
9903347863Shselasky
9904347863Shselasky	u8         error_counter_lane8[0x20];
9905347863Shselasky
9906347863Shselasky	u8         error_counter_lane9[0x20];
9907347863Shselasky
9908347863Shselasky	u8         error_counter_lane10[0x20];
9909347863Shselasky
9910347863Shselasky	u8         error_counter_lane11[0x20];
9911347863Shselasky
9912347863Shselasky	u8         error_counter_lane12[0x20];
9913347863Shselasky
9914347863Shselasky	u8         error_counter_lane13[0x20];
9915347863Shselasky
9916347863Shselasky	u8         error_counter_lane14[0x20];
9917347863Shselasky
9918347863Shselasky	u8         error_counter_lane15[0x20];
9919347863Shselasky
9920347863Shselasky	u8         reserved_at_240[0x580];
9921347863Shselasky};
9922347863Shselasky
9923347863Shselaskystruct mlx5_ifc_pcie_lanes_counters_ext_bits {
9924347863Shselasky	u8         reserved_at_0[0x40];
9925347863Shselasky
9926347863Shselasky	u8         error_counter_lane0[0x20];
9927347863Shselasky
9928347863Shselasky	u8         error_counter_lane1[0x20];
9929347863Shselasky
9930347863Shselasky	u8         error_counter_lane2[0x20];
9931347863Shselasky
9932347863Shselasky	u8         error_counter_lane3[0x20];
9933347863Shselasky
9934347863Shselasky	u8         error_counter_lane4[0x20];
9935347863Shselasky
9936347863Shselasky	u8         error_counter_lane5[0x20];
9937347863Shselasky
9938347863Shselasky	u8         error_counter_lane6[0x20];
9939347863Shselasky
9940347863Shselasky	u8         error_counter_lane7[0x20];
9941347863Shselasky
9942347863Shselasky	u8         error_counter_lane8[0x20];
9943347863Shselasky
9944347863Shselasky	u8         error_counter_lane9[0x20];
9945347863Shselasky
9946347863Shselasky	u8         error_counter_lane10[0x20];
9947347863Shselasky
9948347863Shselasky	u8         error_counter_lane11[0x20];
9949347863Shselasky
9950347863Shselasky	u8         error_counter_lane12[0x20];
9951347863Shselasky
9952347863Shselasky	u8         error_counter_lane13[0x20];
9953347863Shselasky
9954347863Shselasky	u8         error_counter_lane14[0x20];
9955347863Shselasky
9956347863Shselasky	u8         error_counter_lane15[0x20];
9957347863Shselasky
9958347863Shselasky	u8         reserved_at_240[0x580];
9959347863Shselasky};
9960347863Shselasky
9961347863Shselaskystruct mlx5_ifc_pcie_perf_counters_bits {
9962347863Shselasky	u8         life_time_counter_high[0x20];
9963347863Shselasky
9964347863Shselasky	u8         life_time_counter_low[0x20];
9965347863Shselasky
9966306233Shselasky	u8         rx_errors[0x20];
9967306233Shselasky
9968306233Shselasky	u8         tx_errors[0x20];
9969306233Shselasky
9970306233Shselasky	u8         l0_to_recovery_eieos[0x20];
9971306233Shselasky
9972306233Shselasky	u8         l0_to_recovery_ts[0x20];
9973306233Shselasky
9974306233Shselasky	u8         l0_to_recovery_framing[0x20];
9975306233Shselasky
9976306233Shselasky	u8         l0_to_recovery_retrain[0x20];
9977306233Shselasky
9978306233Shselasky	u8         crc_error_dllp[0x20];
9979306233Shselasky
9980306233Shselasky	u8         crc_error_tlp[0x20];
9981306233Shselasky
9982347863Shselasky	u8         tx_overflow_buffer_pkt[0x40];
9983347863Shselasky
9984347863Shselasky	u8         outbound_stalled_reads[0x20];
9985347863Shselasky
9986347863Shselasky	u8         outbound_stalled_writes[0x20];
9987347863Shselasky
9988347863Shselasky	u8         outbound_stalled_reads_events[0x20];
9989347863Shselasky
9990347863Shselasky	u8         outbound_stalled_writes_events[0x20];
9991347863Shselasky
9992347863Shselasky	u8         tx_overflow_buffer_marked_pkt[0x40];
9993347863Shselasky
9994347863Shselasky	u8         reserved_at_240[0x580];
9995306233Shselasky};
9996306233Shselasky
9997347863Shselaskystruct mlx5_ifc_pcie_perf_counters_ext_bits {
9998347863Shselasky	u8         reserved_at_0[0x40];
9999347863Shselasky
10000347863Shselasky	u8         rx_errors[0x20];
10001347863Shselasky
10002347863Shselasky	u8         tx_errors[0x20];
10003347863Shselasky
10004347863Shselasky	u8         reserved_at_80[0xc0];
10005347863Shselasky
10006347863Shselasky	u8         tx_overflow_buffer_pkt[0x40];
10007347863Shselasky
10008347863Shselasky	u8         outbound_stalled_reads[0x20];
10009347863Shselasky
10010347863Shselasky	u8         outbound_stalled_writes[0x20];
10011347863Shselasky
10012347863Shselasky	u8         outbound_stalled_reads_events[0x20];
10013347863Shselasky
10014347863Shselasky	u8         outbound_stalled_writes_events[0x20];
10015347863Shselasky
10016347863Shselasky	u8         tx_overflow_buffer_marked_pkt[0x40];
10017347863Shselasky
10018347863Shselasky	u8         reserved_at_240[0x580];
10019347863Shselasky};
10020347863Shselasky
10021347863Shselaskystruct mlx5_ifc_pcie_timers_states_bits {
10022306233Shselasky	u8         life_time_counter_high[0x20];
10023306233Shselasky
10024306233Shselasky	u8         life_time_counter_low[0x20];
10025306233Shselasky
10026306233Shselasky	u8         time_to_boot_image_start[0x20];
10027306233Shselasky
10028306233Shselasky	u8         time_to_link_image[0x20];
10029306233Shselasky
10030306233Shselasky	u8         calibration_time[0x20];
10031306233Shselasky
10032306233Shselasky	u8         time_to_first_perst[0x20];
10033306233Shselasky
10034306233Shselasky	u8         time_to_detect_state[0x20];
10035306233Shselasky
10036306233Shselasky	u8         time_to_l0[0x20];
10037306233Shselasky
10038306233Shselasky	u8         time_to_crs_en[0x20];
10039306233Shselasky
10040306233Shselasky	u8         time_to_plastic_image_start[0x20];
10041306233Shselasky
10042306233Shselasky	u8         time_to_iron_image_start[0x20];
10043306233Shselasky
10044306233Shselasky	u8         perst_handler[0x20];
10045306233Shselasky
10046306233Shselasky	u8         times_in_l1[0x20];
10047306233Shselasky
10048306233Shselasky	u8         times_in_l23[0x20];
10049306233Shselasky
10050306233Shselasky	u8         dl_down[0x20];
10051306233Shselasky
10052306233Shselasky	u8         config_cycle1usec[0x20];
10053306233Shselasky
10054306233Shselasky	u8         config_cycle2to7usec[0x20];
10055306233Shselasky
10056306233Shselasky	u8         config_cycle8to15usec[0x20];
10057306233Shselasky
10058306233Shselasky	u8         config_cycle16to63usec[0x20];
10059306233Shselasky
10060306233Shselasky	u8         config_cycle64usec[0x20];
10061306233Shselasky
10062306233Shselasky	u8         correctable_err_msg_sent[0x20];
10063306233Shselasky
10064306233Shselasky	u8         non_fatal_err_msg_sent[0x20];
10065306233Shselasky
10066306233Shselasky	u8         fatal_err_msg_sent[0x20];
10067306233Shselasky
10068347863Shselasky	u8         reserved_at_2e0[0x4e0];
10069306233Shselasky};
10070306233Shselasky
10071347863Shselaskystruct mlx5_ifc_pcie_timers_states_ext_bits {
10072347863Shselasky	u8         reserved_at_0[0x40];
10073306233Shselasky
10074347863Shselasky	u8         time_to_boot_image_start[0x20];
10075306233Shselasky
10076347863Shselasky	u8         time_to_link_image[0x20];
10077306233Shselasky
10078347863Shselasky	u8         calibration_time[0x20];
10079306233Shselasky
10080347863Shselasky	u8         time_to_first_perst[0x20];
10081306233Shselasky
10082347863Shselasky	u8         time_to_detect_state[0x20];
10083306233Shselasky
10084347863Shselasky	u8         time_to_l0[0x20];
10085306233Shselasky
10086347863Shselasky	u8         time_to_crs_en[0x20];
10087306233Shselasky
10088347863Shselasky	u8         time_to_plastic_image_start[0x20];
10089306233Shselasky
10090347863Shselasky	u8         time_to_iron_image_start[0x20];
10091306233Shselasky
10092347863Shselasky	u8         perst_handler[0x20];
10093306233Shselasky
10094347863Shselasky	u8         times_in_l1[0x20];
10095306233Shselasky
10096347863Shselasky	u8         times_in_l23[0x20];
10097306233Shselasky
10098347863Shselasky	u8         dl_down[0x20];
10099306233Shselasky
10100347863Shselasky	u8         config_cycle1usec[0x20];
10101306233Shselasky
10102347863Shselasky	u8         config_cycle2to7usec[0x20];
10103306233Shselasky
10104347863Shselasky	u8         config_cycle8to15usec[0x20];
10105306233Shselasky
10106347863Shselasky	u8         config_cycle16to63usec[0x20];
10107306233Shselasky
10108347863Shselasky	u8         config_cycle64usec[0x20];
10109347863Shselasky
10110347863Shselasky	u8         correctable_err_msg_sent[0x20];
10111347863Shselasky
10112347863Shselasky	u8         non_fatal_err_msg_sent[0x20];
10113347863Shselasky
10114347863Shselasky	u8         fatal_err_msg_sent[0x20];
10115347863Shselasky
10116347863Shselasky	u8         reserved_at_2e0[0x4e0];
10117306233Shselasky};
10118306233Shselasky
10119347863Shselaskyunion mlx5_ifc_mpcnt_reg_counter_set_auto_bits {
10120347863Shselasky	struct mlx5_ifc_pcie_perf_counters_bits pcie_perf_counters;
10121347863Shselasky	struct mlx5_ifc_pcie_lanes_counters_bits pcie_lanes_counters;
10122347863Shselasky	struct mlx5_ifc_pcie_timers_states_bits pcie_timers_states;
10123347863Shselasky	u8         reserved_at_0[0x7c0];
10124306233Shselasky};
10125306233Shselasky
10126347863Shselaskyunion mlx5_ifc_mpcnt_reg_counter_set_auto_ext_bits {
10127347863Shselasky	struct mlx5_ifc_pcie_perf_counters_ext_bits pcie_perf_counters_ext;
10128347863Shselasky	struct mlx5_ifc_pcie_lanes_counters_ext_bits pcie_lanes_counters_ext;
10129347863Shselasky	struct mlx5_ifc_pcie_timers_states_ext_bits pcie_timers_states_ext;
10130347863Shselasky	u8         reserved_at_0[0x7c0];
10131347863Shselasky};
10132347863Shselasky
10133306233Shselaskystruct mlx5_ifc_mpcnt_reg_bits {
10134347863Shselasky	u8         reserved_at_0[0x2];
10135347863Shselasky	u8         depth[0x6];
10136306233Shselasky	u8         pcie_index[0x8];
10137347863Shselasky	u8         node[0x8];
10138347863Shselasky	u8         reserved_at_18[0x2];
10139306233Shselasky	u8         grp[0x6];
10140306233Shselasky
10141306233Shselasky	u8         clr[0x1];
10142347863Shselasky	u8         reserved_at_21[0x1f];
10143306233Shselasky
10144347863Shselasky	union mlx5_ifc_mpcnt_reg_counter_set_auto_bits counter_set;
10145306233Shselasky};
10146306233Shselasky
10147347863Shselaskystruct mlx5_ifc_mpcnt_reg_ext_bits {
10148347863Shselasky	u8         reserved_at_0[0x2];
10149347863Shselasky	u8         depth[0x6];
10150347863Shselasky	u8         pcie_index[0x8];
10151347863Shselasky	u8         node[0x8];
10152347863Shselasky	u8         reserved_at_18[0x2];
10153347863Shselasky	u8         grp[0x6];
10154347863Shselasky
10155347863Shselasky	u8         clr[0x1];
10156347863Shselasky	u8         reserved_at_21[0x1f];
10157347863Shselasky
10158347863Shselasky	union mlx5_ifc_mpcnt_reg_counter_set_auto_ext_bits counter_set;
10159347863Shselasky};
10160347863Shselasky
10161347862Shselaskyenum {
10162347862Shselasky	MLX5_ACCESS_REG_SUMMARY_CTRL_ID_MPEIN = 0x9050,
10163347862Shselasky	MLX5_MPEIN_PWR_STATUS_INVALID = 0,
10164347862Shselasky	MLX5_MPEIN_PWR_STATUS_SUFFICIENT = 1,
10165347862Shselasky	MLX5_MPEIN_PWR_STATUS_INSUFFICIENT = 2,
10166347862Shselasky};
10167347862Shselasky
10168347862Shselaskystruct mlx5_ifc_mpein_reg_bits {
10169347862Shselasky	u8         reserved_at_0[0x2];
10170347862Shselasky	u8         depth[0x6];
10171347862Shselasky	u8         pcie_index[0x8];
10172347862Shselasky	u8         node[0x8];
10173347862Shselasky	u8         reserved_at_18[0x8];
10174347862Shselasky
10175347862Shselasky	u8         capability_mask[0x20];
10176347862Shselasky
10177347862Shselasky	u8         reserved_at_40[0x8];
10178347862Shselasky	u8         link_width_enabled[0x8];
10179347862Shselasky	u8         link_speed_enabled[0x10];
10180347862Shselasky
10181347862Shselasky	u8         lane0_physical_position[0x8];
10182347862Shselasky	u8         link_width_active[0x8];
10183347862Shselasky	u8         link_speed_active[0x10];
10184347862Shselasky
10185347862Shselasky	u8         num_of_pfs[0x10];
10186347862Shselasky	u8         num_of_vfs[0x10];
10187347862Shselasky
10188347862Shselasky	u8         bdf0[0x10];
10189347862Shselasky	u8         reserved_at_b0[0x10];
10190347862Shselasky
10191347862Shselasky	u8         max_read_request_size[0x4];
10192347862Shselasky	u8         max_payload_size[0x4];
10193347862Shselasky	u8         reserved_at_c8[0x5];
10194347862Shselasky	u8         pwr_status[0x3];
10195347862Shselasky	u8         port_type[0x4];
10196347862Shselasky	u8         reserved_at_d4[0xb];
10197347862Shselasky	u8         lane_reversal[0x1];
10198347862Shselasky
10199347862Shselasky	u8         reserved_at_e0[0x14];
10200347862Shselasky	u8         pci_power[0xc];
10201347862Shselasky
10202347862Shselasky	u8         reserved_at_100[0x20];
10203347862Shselasky
10204347862Shselasky	u8         device_status[0x10];
10205347862Shselasky	u8         port_state[0x8];
10206347862Shselasky	u8         reserved_at_138[0x8];
10207347862Shselasky
10208347862Shselasky	u8         reserved_at_140[0x10];
10209347862Shselasky	u8         receiver_detect_result[0x10];
10210347862Shselasky
10211347862Shselasky	u8         reserved_at_160[0x20];
10212347862Shselasky};
10213347862Shselasky
10214347862Shselaskystruct mlx5_ifc_mpein_reg_ext_bits {
10215347862Shselasky	u8         reserved_at_0[0x2];
10216347862Shselasky	u8         depth[0x6];
10217347862Shselasky	u8         pcie_index[0x8];
10218347862Shselasky	u8         node[0x8];
10219347862Shselasky	u8         reserved_at_18[0x8];
10220347862Shselasky
10221347862Shselasky	u8         reserved_at_20[0x20];
10222347862Shselasky
10223347862Shselasky	u8         reserved_at_40[0x8];
10224347862Shselasky	u8         link_width_enabled[0x8];
10225347862Shselasky	u8         link_speed_enabled[0x10];
10226347862Shselasky
10227347862Shselasky	u8         lane0_physical_position[0x8];
10228347862Shselasky	u8         link_width_active[0x8];
10229347862Shselasky	u8         link_speed_active[0x10];
10230347862Shselasky
10231347862Shselasky	u8         num_of_pfs[0x10];
10232347862Shselasky	u8         num_of_vfs[0x10];
10233347862Shselasky
10234347862Shselasky	u8         bdf0[0x10];
10235347862Shselasky	u8         reserved_at_b0[0x10];
10236347862Shselasky
10237347862Shselasky	u8         max_read_request_size[0x4];
10238347862Shselasky	u8         max_payload_size[0x4];
10239347862Shselasky	u8         reserved_at_c8[0x5];
10240347862Shselasky	u8         pwr_status[0x3];
10241347862Shselasky	u8         port_type[0x4];
10242347862Shselasky	u8         reserved_at_d4[0xb];
10243347862Shselasky	u8         lane_reversal[0x1];
10244347862Shselasky};
10245347862Shselasky
10246347824Shselaskystruct mlx5_ifc_mcqi_cap_bits {
10247347824Shselasky	u8         supported_info_bitmask[0x20];
10248347824Shselasky
10249347824Shselasky	u8         component_size[0x20];
10250347824Shselasky
10251347824Shselasky	u8         max_component_size[0x20];
10252347824Shselasky
10253347824Shselasky	u8         log_mcda_word_size[0x4];
10254347824Shselasky	u8         reserved_at_64[0xc];
10255347824Shselasky	u8         mcda_max_write_size[0x10];
10256347824Shselasky
10257347824Shselasky	u8         rd_en[0x1];
10258347824Shselasky	u8         reserved_at_81[0x1];
10259347824Shselasky	u8         match_chip_id[0x1];
10260347824Shselasky	u8         match_psid[0x1];
10261347824Shselasky	u8         check_user_timestamp[0x1];
10262347824Shselasky	u8         match_base_guid_mac[0x1];
10263347824Shselasky	u8         reserved_at_86[0x1a];
10264347824Shselasky};
10265347824Shselasky
10266347824Shselaskystruct mlx5_ifc_mcqi_reg_bits {
10267347824Shselasky	u8         read_pending_component[0x1];
10268347824Shselasky	u8         reserved_at_1[0xf];
10269347824Shselasky	u8         component_index[0x10];
10270347824Shselasky
10271347824Shselasky	u8         reserved_at_20[0x20];
10272347824Shselasky
10273347824Shselasky	u8         reserved_at_40[0x1b];
10274347824Shselasky	u8         info_type[0x5];
10275347824Shselasky
10276347824Shselasky	u8         info_size[0x20];
10277347824Shselasky
10278347824Shselasky	u8         offset[0x20];
10279347824Shselasky
10280347824Shselasky	u8         reserved_at_a0[0x10];
10281347824Shselasky	u8         data_size[0x10];
10282347824Shselasky
10283347824Shselasky	u8         data[0][0x20];
10284347824Shselasky};
10285347824Shselasky
10286347824Shselaskystruct mlx5_ifc_mcc_reg_bits {
10287347824Shselasky	u8         reserved_at_0[0x4];
10288347824Shselasky	u8         time_elapsed_since_last_cmd[0xc];
10289347824Shselasky	u8         reserved_at_10[0x8];
10290347824Shselasky	u8         instruction[0x8];
10291347824Shselasky
10292347824Shselasky	u8         reserved_at_20[0x10];
10293347824Shselasky	u8         component_index[0x10];
10294347824Shselasky
10295347824Shselasky	u8         reserved_at_40[0x8];
10296347824Shselasky	u8         update_handle[0x18];
10297347824Shselasky
10298347824Shselasky	u8         handle_owner_type[0x4];
10299347824Shselasky	u8         handle_owner_host_id[0x4];
10300347824Shselasky	u8         reserved_at_68[0x1];
10301347824Shselasky	u8         control_progress[0x7];
10302347824Shselasky	u8         error_code[0x8];
10303347824Shselasky	u8         reserved_at_78[0x4];
10304347824Shselasky	u8         control_state[0x4];
10305347824Shselasky
10306347824Shselasky	u8         component_size[0x20];
10307347824Shselasky
10308347824Shselasky	u8         reserved_at_a0[0x60];
10309347824Shselasky};
10310347824Shselasky
10311347824Shselaskystruct mlx5_ifc_mcda_reg_bits {
10312347824Shselasky	u8         reserved_at_0[0x8];
10313347824Shselasky	u8         update_handle[0x18];
10314347824Shselasky
10315347824Shselasky	u8         offset[0x20];
10316347824Shselasky
10317347824Shselasky	u8         reserved_at_40[0x10];
10318347824Shselasky	u8         size[0x10];
10319347824Shselasky
10320347824Shselasky	u8         reserved_at_60[0x20];
10321347824Shselasky
10322347824Shselasky	u8         data[0][0x20];
10323347824Shselasky};
10324347824Shselasky
10325290650Shselaskyunion mlx5_ifc_ports_control_registers_document_bits {
10326290650Shselasky	struct mlx5_ifc_ib_portcntrs_attribute_grp_data_bits ib_portcntrs_attribute_grp_data;
10327290650Shselasky	struct mlx5_ifc_bufferx_reg_bits bufferx_reg;
10328290650Shselasky	struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits eth_2819_cntrs_grp_data_layout;
10329290650Shselasky	struct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits eth_2863_cntrs_grp_data_layout;
10330290650Shselasky	struct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits eth_3635_cntrs_grp_data_layout;
10331290650Shselasky	struct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits eth_802_3_cntrs_grp_data_layout;
10332308678Shselasky	struct mlx5_ifc_eth_discard_cntrs_grp_bits eth_discard_cntrs_grp;
10333290650Shselasky	struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits eth_extended_cntrs_grp_data_layout;
10334290650Shselasky	struct mlx5_ifc_eth_per_prio_grp_data_layout_bits eth_per_prio_grp_data_layout;
10335290650Shselasky	struct mlx5_ifc_eth_per_traffic_class_cong_layout_bits eth_per_traffic_class_cong_layout;
10336290650Shselasky	struct mlx5_ifc_eth_per_traffic_class_layout_bits eth_per_traffic_class_layout;
10337290650Shselasky	struct mlx5_ifc_lane_2_module_mapping_bits lane_2_module_mapping;
10338290650Shselasky	struct mlx5_ifc_link_level_retrans_cntr_grp_date_bits link_level_retrans_cntr_grp_date;
10339290650Shselasky	struct mlx5_ifc_pamp_reg_bits pamp_reg;
10340290650Shselasky	struct mlx5_ifc_paos_reg_bits paos_reg;
10341290650Shselasky	struct mlx5_ifc_pbmc_reg_bits pbmc_reg;
10342290650Shselasky	struct mlx5_ifc_pcap_reg_bits pcap_reg;
10343290650Shselasky	struct mlx5_ifc_peir_reg_bits peir_reg;
10344290650Shselasky	struct mlx5_ifc_pelc_reg_bits pelc_reg;
10345290650Shselasky	struct mlx5_ifc_pfcc_reg_bits pfcc_reg;
10346290650Shselasky	struct mlx5_ifc_phbr_binding_reg_bits phbr_binding_reg;
10347290650Shselasky	struct mlx5_ifc_phbr_for_port_tclass_reg_bits phbr_for_port_tclass_reg;
10348290650Shselasky	struct mlx5_ifc_phbr_for_prio_reg_bits phbr_for_prio_reg;
10349290650Shselasky	struct mlx5_ifc_phrr_reg_bits phrr_reg;
10350290650Shselasky	struct mlx5_ifc_phys_layer_cntrs_bits phys_layer_cntrs;
10351290650Shselasky	struct mlx5_ifc_pifr_reg_bits pifr_reg;
10352290650Shselasky	struct mlx5_ifc_pipg_reg_bits pipg_reg;
10353290650Shselasky	struct mlx5_ifc_plbf_reg_bits plbf_reg;
10354290650Shselasky	struct mlx5_ifc_plib_reg_bits plib_reg;
10355290650Shselasky	struct mlx5_ifc_pll_status_data_bits pll_status_data;
10356290650Shselasky	struct mlx5_ifc_plpc_reg_bits plpc_reg;
10357290650Shselasky	struct mlx5_ifc_pmaos_reg_bits pmaos_reg;
10358290650Shselasky	struct mlx5_ifc_pmlp_reg_bits pmlp_reg;
10359290650Shselasky	struct mlx5_ifc_pmlpn_reg_bits pmlpn_reg;
10360290650Shselasky	struct mlx5_ifc_pmpc_reg_bits pmpc_reg;
10361290650Shselasky	struct mlx5_ifc_pmpe_reg_bits pmpe_reg;
10362290650Shselasky	struct mlx5_ifc_pmpr_reg_bits pmpr_reg;
10363290650Shselasky	struct mlx5_ifc_pmtu_reg_bits pmtu_reg;
10364290650Shselasky	struct mlx5_ifc_ppad_reg_bits ppad_reg;
10365290650Shselasky	struct mlx5_ifc_ppcnt_reg_bits ppcnt_reg;
10366290650Shselasky	struct mlx5_ifc_ppll_reg_bits ppll_reg;
10367290650Shselasky	struct mlx5_ifc_pplm_reg_bits pplm_reg;
10368290650Shselasky	struct mlx5_ifc_pplr_reg_bits pplr_reg;
10369290650Shselasky	struct mlx5_ifc_ppsc_reg_bits ppsc_reg;
10370290650Shselasky	struct mlx5_ifc_pspa_reg_bits pspa_reg;
10371290650Shselasky	struct mlx5_ifc_ptas_reg_bits ptas_reg;
10372290650Shselasky	struct mlx5_ifc_ptys_reg_bits ptys_reg;
10373290650Shselasky	struct mlx5_ifc_pude_reg_bits pude_reg;
10374290650Shselasky	struct mlx5_ifc_pvlc_reg_bits pvlc_reg;
10375290650Shselasky	struct mlx5_ifc_slrg_reg_bits slrg_reg;
10376290650Shselasky	struct mlx5_ifc_slrp_reg_bits slrp_reg;
10377290650Shselasky	struct mlx5_ifc_sltp_reg_bits sltp_reg;
10378290650Shselasky	u8         reserved_0[0x7880];
10379290650Shselasky};
10380290650Shselasky
10381290650Shselaskyunion mlx5_ifc_debug_enhancements_document_bits {
10382290650Shselasky	struct mlx5_ifc_health_buffer_bits health_buffer;
10383290650Shselasky	u8         reserved_0[0x200];
10384290650Shselasky};
10385290650Shselasky
10386290650Shselaskyunion mlx5_ifc_no_dram_nic_document_bits {
10387290650Shselasky	struct mlx5_ifc_nodnic_config_reg_bits nodnic_config_reg;
10388290650Shselasky	struct mlx5_ifc_nodnic_cq_arming_word_bits nodnic_cq_arming_word;
10389290650Shselasky	struct mlx5_ifc_nodnic_event_word_bits nodnic_event_word;
10390290650Shselasky	struct mlx5_ifc_nodnic_gid_filters_bits nodnic_gid_filters;
10391290650Shselasky	struct mlx5_ifc_nodnic_mac_filters_bits nodnic_mac_filters;
10392290650Shselasky	struct mlx5_ifc_nodnic_port_config_reg_bits nodnic_port_config_reg;
10393290650Shselasky	struct mlx5_ifc_nodnic_ring_config_reg_bits nodnic_ring_config_reg;
10394290650Shselasky	struct mlx5_ifc_nodnic_ring_doorbell_bits nodnic_ring_doorbell;
10395290650Shselasky	u8         reserved_0[0x3160];
10396290650Shselasky};
10397290650Shselasky
10398290650Shselaskyunion mlx5_ifc_uplink_pci_interface_document_bits {
10399290650Shselasky	struct mlx5_ifc_initial_seg_bits initial_seg;
10400290650Shselasky	struct mlx5_ifc_vendor_specific_cap_bits vendor_specific_cap;
10401290650Shselasky	u8         reserved_0[0x20120];
10402290650Shselasky};
10403290650Shselasky
10404337098Shselaskystruct mlx5_ifc_qpdpm_dscp_reg_bits {
10405337098Shselasky	u8         e[0x1];
10406337098Shselasky	u8         reserved_at_01[0x0b];
10407337098Shselasky	u8         prio[0x04];
10408337098Shselasky};
10409290650Shselasky
10410337098Shselaskystruct mlx5_ifc_qpdpm_reg_bits {
10411337098Shselasky	u8                                     reserved_at_0[0x8];
10412337098Shselasky	u8                                     local_port[0x8];
10413337098Shselasky	u8                                     reserved_at_10[0x10];
10414337098Shselasky	struct mlx5_ifc_qpdpm_dscp_reg_bits    dscp[64];
10415337098Shselasky};
10416337098Shselasky
10417337098Shselaskystruct mlx5_ifc_qpts_reg_bits {
10418337098Shselasky	u8         reserved_at_0[0x8];
10419337098Shselasky	u8         local_port[0x8];
10420337098Shselasky	u8         reserved_at_10[0x2d];
10421337098Shselasky	u8         trust_state[0x3];
10422337098Shselasky};
10423337098Shselasky
10424347868Shselaskystruct mlx5_ifc_mfrl_reg_bits {
10425347868Shselasky	u8         reserved_at_0[0x38];
10426347868Shselasky	u8         reset_level[0x8];
10427347868Shselasky};
10428347868Shselasky
10429290650Shselasky#endif /* MLX5_IFC_H */
10430