blob: 9265c84ad353146e159ef4111abc06b93623a601 [file] [log] [blame]
Eli Cohend29b7962014-10-02 12:19:43 +03001/*
Saeed Mahameede2816822015-05-28 22:28:40 +03002 * Copyright (c) 2013-2015, Mellanox Technologies, Ltd. All rights reserved.
Eli Cohend29b7962014-10-02 12:19:43 +03003 *
4 * This software is available to you under a choice of one of two
5 * licenses. You may choose to be licensed under the terms of the GNU
6 * General Public License (GPL) Version 2, available from the file
7 * COPYING in the main directory of this source tree, or the
8 * OpenIB.org BSD license below:
9 *
10 * Redistribution and use in source and binary forms, with or
11 * without modification, are permitted provided that the following
12 * conditions are met:
13 *
14 * - Redistributions of source code must retain the above
15 * copyright notice, this list of conditions and the following
16 * disclaimer.
17 *
18 * - Redistributions in binary form must reproduce the above
19 * copyright notice, this list of conditions and the following
20 * disclaimer in the documentation and/or other materials
21 * provided with the distribution.
22 *
23 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
27 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
28 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
29 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30 * SOFTWARE.
Saeed Mahameede2816822015-05-28 22:28:40 +030031*/
Eli Cohend29b7962014-10-02 12:19:43 +030032#ifndef MLX5_IFC_H
33#define MLX5_IFC_H
34
Ilan Tayarie29341f2017-03-13 20:05:45 +020035#include "mlx5_ifc_fpga.h"
36
Eli Cohend29b7962014-10-02 12:19:43 +030037enum {
Saeed Mahameede2816822015-05-28 22:28:40 +030038 MLX5_EVENT_TYPE_CODING_COMPLETION_EVENTS = 0x0,
39 MLX5_EVENT_TYPE_CODING_PATH_MIGRATED_SUCCEEDED = 0x1,
40 MLX5_EVENT_TYPE_CODING_COMMUNICATION_ESTABLISHED = 0x2,
41 MLX5_EVENT_TYPE_CODING_SEND_QUEUE_DRAINED = 0x3,
42 MLX5_EVENT_TYPE_CODING_LAST_WQE_REACHED = 0x13,
43 MLX5_EVENT_TYPE_CODING_SRQ_LIMIT = 0x14,
44 MLX5_EVENT_TYPE_CODING_DCT_ALL_CONNECTIONS_CLOSED = 0x1c,
45 MLX5_EVENT_TYPE_CODING_DCT_ACCESS_KEY_VIOLATION = 0x1d,
46 MLX5_EVENT_TYPE_CODING_CQ_ERROR = 0x4,
47 MLX5_EVENT_TYPE_CODING_LOCAL_WQ_CATASTROPHIC_ERROR = 0x5,
48 MLX5_EVENT_TYPE_CODING_PATH_MIGRATION_FAILED = 0x7,
49 MLX5_EVENT_TYPE_CODING_PAGE_FAULT_EVENT = 0xc,
50 MLX5_EVENT_TYPE_CODING_INVALID_REQUEST_LOCAL_WQ_ERROR = 0x10,
51 MLX5_EVENT_TYPE_CODING_LOCAL_ACCESS_VIOLATION_WQ_ERROR = 0x11,
52 MLX5_EVENT_TYPE_CODING_LOCAL_SRQ_CATASTROPHIC_ERROR = 0x12,
53 MLX5_EVENT_TYPE_CODING_INTERNAL_ERROR = 0x8,
54 MLX5_EVENT_TYPE_CODING_PORT_STATE_CHANGE = 0x9,
55 MLX5_EVENT_TYPE_CODING_GPIO_EVENT = 0x15,
56 MLX5_EVENT_TYPE_CODING_REMOTE_CONFIGURATION_PROTOCOL_EVENT = 0x19,
57 MLX5_EVENT_TYPE_CODING_DOORBELL_BLUEFLAME_CONGESTION_EVENT = 0x1a,
58 MLX5_EVENT_TYPE_CODING_STALL_VL_EVENT = 0x1b,
59 MLX5_EVENT_TYPE_CODING_DROPPED_PACKET_LOGGED_EVENT = 0x1f,
60 MLX5_EVENT_TYPE_CODING_COMMAND_INTERFACE_COMPLETION = 0xa,
Ilan Tayarie29341f2017-03-13 20:05:45 +020061 MLX5_EVENT_TYPE_CODING_PAGE_REQUEST = 0xb,
62 MLX5_EVENT_TYPE_CODING_FPGA_ERROR = 0x20,
Ilan Tayari1f0cf892018-05-30 10:59:50 -070063 MLX5_EVENT_TYPE_CODING_FPGA_QP_ERROR = 0x21
Saeed Mahameede2816822015-05-28 22:28:40 +030064};
65
66enum {
67 MLX5_MODIFY_TIR_BITMASK_LRO = 0x0,
68 MLX5_MODIFY_TIR_BITMASK_INDIRECT_TABLE = 0x1,
69 MLX5_MODIFY_TIR_BITMASK_HASH = 0x2,
70 MLX5_MODIFY_TIR_BITMASK_TUNNELED_OFFLOAD_EN = 0x3
71};
72
73enum {
Eran Ben Elishaf91e6d82015-12-14 16:34:09 +020074 MLX5_SET_HCA_CAP_OP_MOD_GENERAL_DEVICE = 0x0,
Moni Shoua46861e32019-01-22 08:48:51 +020075 MLX5_SET_HCA_CAP_OP_MOD_ODP = 0x2,
Eran Ben Elishaf91e6d82015-12-14 16:34:09 +020076 MLX5_SET_HCA_CAP_OP_MOD_ATOMIC = 0x3,
77};
78
79enum {
Leon Romanovsky2acc7952018-12-06 14:40:11 +020080 MLX5_SHARED_RESOURCE_UID = 0xffff,
Yishai Hadas38b7ca92018-03-08 14:36:27 +020081};
82
83enum {
Ariel Levkovich9fba2b92019-03-31 19:44:43 +030084 MLX5_OBJ_TYPE_SW_ICM = 0x0008,
85};
86
87enum {
88 MLX5_GENERAL_OBJ_TYPES_CAP_SW_ICM = (1ULL << MLX5_OBJ_TYPE_SW_ICM),
Yevgeny Kliteynikb169e642019-04-29 18:14:20 +000089 MLX5_GENERAL_OBJ_TYPES_CAP_GENEVE_TLV_OPT = (1ULL << 11),
90};
91
92enum {
93 MLX5_OBJ_TYPE_GENEVE_TLV_OPT = 0x000b,
Yishai Hadase4075c42019-06-30 19:23:28 +030094 MLX5_OBJ_TYPE_MKEY = 0xff01,
95 MLX5_OBJ_TYPE_QP = 0xff02,
96 MLX5_OBJ_TYPE_PSV = 0xff03,
97 MLX5_OBJ_TYPE_RMP = 0xff04,
98 MLX5_OBJ_TYPE_XRC_SRQ = 0xff05,
99 MLX5_OBJ_TYPE_RQ = 0xff06,
100 MLX5_OBJ_TYPE_SQ = 0xff07,
101 MLX5_OBJ_TYPE_TIR = 0xff08,
102 MLX5_OBJ_TYPE_TIS = 0xff09,
103 MLX5_OBJ_TYPE_DCT = 0xff0a,
104 MLX5_OBJ_TYPE_XRQ = 0xff0b,
105 MLX5_OBJ_TYPE_RQT = 0xff0e,
106 MLX5_OBJ_TYPE_FLOW_COUNTER = 0xff0f,
107 MLX5_OBJ_TYPE_CQ = 0xff10,
Ariel Levkovich9fba2b92019-03-31 19:44:43 +0300108};
109
110enum {
Eli Cohend29b7962014-10-02 12:19:43 +0300111 MLX5_CMD_OP_QUERY_HCA_CAP = 0x100,
112 MLX5_CMD_OP_QUERY_ADAPTER = 0x101,
113 MLX5_CMD_OP_INIT_HCA = 0x102,
114 MLX5_CMD_OP_TEARDOWN_HCA = 0x103,
115 MLX5_CMD_OP_ENABLE_HCA = 0x104,
116 MLX5_CMD_OP_DISABLE_HCA = 0x105,
117 MLX5_CMD_OP_QUERY_PAGES = 0x107,
118 MLX5_CMD_OP_MANAGE_PAGES = 0x108,
119 MLX5_CMD_OP_SET_HCA_CAP = 0x109,
Saeed Mahameede2816822015-05-28 22:28:40 +0300120 MLX5_CMD_OP_QUERY_ISSI = 0x10a,
121 MLX5_CMD_OP_SET_ISSI = 0x10b,
Saeed Mahameed0dbc6fe2016-11-17 13:45:59 +0200122 MLX5_CMD_OP_SET_DRIVER_VERSION = 0x10d,
Parav Pandit1759d322019-06-28 22:35:48 +0000123 MLX5_CMD_OP_QUERY_SF_PARTITION = 0x111,
124 MLX5_CMD_OP_ALLOC_SF = 0x113,
125 MLX5_CMD_OP_DEALLOC_SF = 0x114,
Eli Cohend29b7962014-10-02 12:19:43 +0300126 MLX5_CMD_OP_CREATE_MKEY = 0x200,
127 MLX5_CMD_OP_QUERY_MKEY = 0x201,
128 MLX5_CMD_OP_DESTROY_MKEY = 0x202,
129 MLX5_CMD_OP_QUERY_SPECIAL_CONTEXTS = 0x203,
130 MLX5_CMD_OP_PAGE_FAULT_RESUME = 0x204,
Ariel Levkovich24da0012018-04-05 18:53:27 +0300131 MLX5_CMD_OP_ALLOC_MEMIC = 0x205,
132 MLX5_CMD_OP_DEALLOC_MEMIC = 0x206,
Eli Cohend29b7962014-10-02 12:19:43 +0300133 MLX5_CMD_OP_CREATE_EQ = 0x301,
134 MLX5_CMD_OP_DESTROY_EQ = 0x302,
135 MLX5_CMD_OP_QUERY_EQ = 0x303,
136 MLX5_CMD_OP_GEN_EQE = 0x304,
137 MLX5_CMD_OP_CREATE_CQ = 0x400,
138 MLX5_CMD_OP_DESTROY_CQ = 0x401,
139 MLX5_CMD_OP_QUERY_CQ = 0x402,
140 MLX5_CMD_OP_MODIFY_CQ = 0x403,
141 MLX5_CMD_OP_CREATE_QP = 0x500,
142 MLX5_CMD_OP_DESTROY_QP = 0x501,
143 MLX5_CMD_OP_RST2INIT_QP = 0x502,
144 MLX5_CMD_OP_INIT2RTR_QP = 0x503,
145 MLX5_CMD_OP_RTR2RTS_QP = 0x504,
146 MLX5_CMD_OP_RTS2RTS_QP = 0x505,
147 MLX5_CMD_OP_SQERR2RTS_QP = 0x506,
148 MLX5_CMD_OP_2ERR_QP = 0x507,
149 MLX5_CMD_OP_2RST_QP = 0x50a,
150 MLX5_CMD_OP_QUERY_QP = 0x50b,
Saeed Mahameede2816822015-05-28 22:28:40 +0300151 MLX5_CMD_OP_SQD_RTS_QP = 0x50c,
Eli Cohend29b7962014-10-02 12:19:43 +0300152 MLX5_CMD_OP_INIT2INIT_QP = 0x50e,
153 MLX5_CMD_OP_CREATE_PSV = 0x600,
154 MLX5_CMD_OP_DESTROY_PSV = 0x601,
155 MLX5_CMD_OP_CREATE_SRQ = 0x700,
156 MLX5_CMD_OP_DESTROY_SRQ = 0x701,
157 MLX5_CMD_OP_QUERY_SRQ = 0x702,
158 MLX5_CMD_OP_ARM_RQ = 0x703,
Saeed Mahameede2816822015-05-28 22:28:40 +0300159 MLX5_CMD_OP_CREATE_XRC_SRQ = 0x705,
160 MLX5_CMD_OP_DESTROY_XRC_SRQ = 0x706,
161 MLX5_CMD_OP_QUERY_XRC_SRQ = 0x707,
162 MLX5_CMD_OP_ARM_XRC_SRQ = 0x708,
Eli Cohend29b7962014-10-02 12:19:43 +0300163 MLX5_CMD_OP_CREATE_DCT = 0x710,
164 MLX5_CMD_OP_DESTROY_DCT = 0x711,
165 MLX5_CMD_OP_DRAIN_DCT = 0x712,
166 MLX5_CMD_OP_QUERY_DCT = 0x713,
167 MLX5_CMD_OP_ARM_DCT_FOR_KEY_VIOLATION = 0x714,
Saeed Mahameed74862162016-06-09 15:11:34 +0300168 MLX5_CMD_OP_CREATE_XRQ = 0x717,
169 MLX5_CMD_OP_DESTROY_XRQ = 0x718,
170 MLX5_CMD_OP_QUERY_XRQ = 0x719,
171 MLX5_CMD_OP_ARM_XRQ = 0x71a,
Yishai Hadas719598c2018-11-26 08:28:37 +0200172 MLX5_CMD_OP_QUERY_XRQ_DC_PARAMS_ENTRY = 0x725,
173 MLX5_CMD_OP_SET_XRQ_DC_PARAMS_ENTRY = 0x726,
174 MLX5_CMD_OP_QUERY_XRQ_ERROR_PARAMS = 0x727,
Vu Phamcd56f922019-05-29 22:50:34 +0000175 MLX5_CMD_OP_QUERY_ESW_FUNCTIONS = 0x740,
Eli Cohend29b7962014-10-02 12:19:43 +0300176 MLX5_CMD_OP_QUERY_VPORT_STATE = 0x750,
177 MLX5_CMD_OP_MODIFY_VPORT_STATE = 0x751,
178 MLX5_CMD_OP_QUERY_ESW_VPORT_CONTEXT = 0x752,
179 MLX5_CMD_OP_MODIFY_ESW_VPORT_CONTEXT = 0x753,
180 MLX5_CMD_OP_QUERY_NIC_VPORT_CONTEXT = 0x754,
181 MLX5_CMD_OP_MODIFY_NIC_VPORT_CONTEXT = 0x755,
Saeed Mahameede2816822015-05-28 22:28:40 +0300182 MLX5_CMD_OP_QUERY_ROCE_ADDRESS = 0x760,
Eli Cohend29b7962014-10-02 12:19:43 +0300183 MLX5_CMD_OP_SET_ROCE_ADDRESS = 0x761,
Saeed Mahameede2816822015-05-28 22:28:40 +0300184 MLX5_CMD_OP_QUERY_HCA_VPORT_CONTEXT = 0x762,
185 MLX5_CMD_OP_MODIFY_HCA_VPORT_CONTEXT = 0x763,
186 MLX5_CMD_OP_QUERY_HCA_VPORT_GID = 0x764,
187 MLX5_CMD_OP_QUERY_HCA_VPORT_PKEY = 0x765,
Moshe Shemesh61c5b5c2018-01-07 16:45:27 +0200188 MLX5_CMD_OP_QUERY_VNIC_ENV = 0x76f,
Eli Cohend29b7962014-10-02 12:19:43 +0300189 MLX5_CMD_OP_QUERY_VPORT_COUNTER = 0x770,
190 MLX5_CMD_OP_ALLOC_Q_COUNTER = 0x771,
191 MLX5_CMD_OP_DEALLOC_Q_COUNTER = 0x772,
192 MLX5_CMD_OP_QUERY_Q_COUNTER = 0x773,
Eyal Davidovichfd4572b2018-12-10 13:15:12 -0800193 MLX5_CMD_OP_SET_MONITOR_COUNTER = 0x774,
194 MLX5_CMD_OP_ARM_MONITOR_COUNTER = 0x775,
Eran Ben Elisha37e92a92017-11-13 10:11:27 +0200195 MLX5_CMD_OP_SET_PP_RATE_LIMIT = 0x780,
Saeed Mahameed74862162016-06-09 15:11:34 +0300196 MLX5_CMD_OP_QUERY_RATE_LIMIT = 0x781,
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300197 MLX5_CMD_OP_CREATE_SCHEDULING_ELEMENT = 0x782,
198 MLX5_CMD_OP_DESTROY_SCHEDULING_ELEMENT = 0x783,
199 MLX5_CMD_OP_QUERY_SCHEDULING_ELEMENT = 0x784,
200 MLX5_CMD_OP_MODIFY_SCHEDULING_ELEMENT = 0x785,
201 MLX5_CMD_OP_CREATE_QOS_PARA_VPORT = 0x786,
202 MLX5_CMD_OP_DESTROY_QOS_PARA_VPORT = 0x787,
Eli Cohend29b7962014-10-02 12:19:43 +0300203 MLX5_CMD_OP_ALLOC_PD = 0x800,
204 MLX5_CMD_OP_DEALLOC_PD = 0x801,
205 MLX5_CMD_OP_ALLOC_UAR = 0x802,
206 MLX5_CMD_OP_DEALLOC_UAR = 0x803,
207 MLX5_CMD_OP_CONFIG_INT_MODERATION = 0x804,
208 MLX5_CMD_OP_ACCESS_REG = 0x805,
209 MLX5_CMD_OP_ATTACH_TO_MCG = 0x806,
Saeed Mahameed20bb5662016-07-17 02:01:45 +0300210 MLX5_CMD_OP_DETACH_FROM_MCG = 0x807,
Eli Cohend29b7962014-10-02 12:19:43 +0300211 MLX5_CMD_OP_GET_DROPPED_PACKET_LOG = 0x80a,
212 MLX5_CMD_OP_MAD_IFC = 0x50d,
213 MLX5_CMD_OP_QUERY_MAD_DEMUX = 0x80b,
214 MLX5_CMD_OP_SET_MAD_DEMUX = 0x80c,
215 MLX5_CMD_OP_NOP = 0x80d,
216 MLX5_CMD_OP_ALLOC_XRCD = 0x80e,
217 MLX5_CMD_OP_DEALLOC_XRCD = 0x80f,
Saeed Mahameede2816822015-05-28 22:28:40 +0300218 MLX5_CMD_OP_ALLOC_TRANSPORT_DOMAIN = 0x816,
219 MLX5_CMD_OP_DEALLOC_TRANSPORT_DOMAIN = 0x817,
220 MLX5_CMD_OP_QUERY_CONG_STATUS = 0x822,
221 MLX5_CMD_OP_MODIFY_CONG_STATUS = 0x823,
222 MLX5_CMD_OP_QUERY_CONG_PARAMS = 0x824,
223 MLX5_CMD_OP_MODIFY_CONG_PARAMS = 0x825,
224 MLX5_CMD_OP_QUERY_CONG_STATISTICS = 0x826,
225 MLX5_CMD_OP_ADD_VXLAN_UDP_DPORT = 0x827,
226 MLX5_CMD_OP_DELETE_VXLAN_UDP_DPORT = 0x828,
227 MLX5_CMD_OP_SET_L2_TABLE_ENTRY = 0x829,
228 MLX5_CMD_OP_QUERY_L2_TABLE_ENTRY = 0x82a,
229 MLX5_CMD_OP_DELETE_L2_TABLE_ENTRY = 0x82b,
Tariq Toukan928cfe82016-02-22 18:17:29 +0200230 MLX5_CMD_OP_SET_WOL_ROL = 0x830,
231 MLX5_CMD_OP_QUERY_WOL_ROL = 0x831,
Aviv Heller84df61e2016-05-10 13:47:50 +0300232 MLX5_CMD_OP_CREATE_LAG = 0x840,
233 MLX5_CMD_OP_MODIFY_LAG = 0x841,
234 MLX5_CMD_OP_QUERY_LAG = 0x842,
235 MLX5_CMD_OP_DESTROY_LAG = 0x843,
236 MLX5_CMD_OP_CREATE_VPORT_LAG = 0x844,
237 MLX5_CMD_OP_DESTROY_VPORT_LAG = 0x845,
Eli Cohend29b7962014-10-02 12:19:43 +0300238 MLX5_CMD_OP_CREATE_TIR = 0x900,
239 MLX5_CMD_OP_MODIFY_TIR = 0x901,
240 MLX5_CMD_OP_DESTROY_TIR = 0x902,
241 MLX5_CMD_OP_QUERY_TIR = 0x903,
Eli Cohend29b7962014-10-02 12:19:43 +0300242 MLX5_CMD_OP_CREATE_SQ = 0x904,
243 MLX5_CMD_OP_MODIFY_SQ = 0x905,
244 MLX5_CMD_OP_DESTROY_SQ = 0x906,
245 MLX5_CMD_OP_QUERY_SQ = 0x907,
246 MLX5_CMD_OP_CREATE_RQ = 0x908,
247 MLX5_CMD_OP_MODIFY_RQ = 0x909,
Maor Gottliebc1e0bfc2017-05-30 10:29:11 +0300248 MLX5_CMD_OP_SET_DELAY_DROP_PARAMS = 0x910,
Eli Cohend29b7962014-10-02 12:19:43 +0300249 MLX5_CMD_OP_DESTROY_RQ = 0x90a,
250 MLX5_CMD_OP_QUERY_RQ = 0x90b,
251 MLX5_CMD_OP_CREATE_RMP = 0x90c,
252 MLX5_CMD_OP_MODIFY_RMP = 0x90d,
253 MLX5_CMD_OP_DESTROY_RMP = 0x90e,
254 MLX5_CMD_OP_QUERY_RMP = 0x90f,
Saeed Mahameede2816822015-05-28 22:28:40 +0300255 MLX5_CMD_OP_CREATE_TIS = 0x912,
256 MLX5_CMD_OP_MODIFY_TIS = 0x913,
257 MLX5_CMD_OP_DESTROY_TIS = 0x914,
258 MLX5_CMD_OP_QUERY_TIS = 0x915,
259 MLX5_CMD_OP_CREATE_RQT = 0x916,
260 MLX5_CMD_OP_MODIFY_RQT = 0x917,
261 MLX5_CMD_OP_DESTROY_RQT = 0x918,
262 MLX5_CMD_OP_QUERY_RQT = 0x919,
Maor Gottlieb2cc43b42016-01-11 10:25:59 +0200263 MLX5_CMD_OP_SET_FLOW_TABLE_ROOT = 0x92f,
Saeed Mahameede2816822015-05-28 22:28:40 +0300264 MLX5_CMD_OP_CREATE_FLOW_TABLE = 0x930,
265 MLX5_CMD_OP_DESTROY_FLOW_TABLE = 0x931,
266 MLX5_CMD_OP_QUERY_FLOW_TABLE = 0x932,
267 MLX5_CMD_OP_CREATE_FLOW_GROUP = 0x933,
268 MLX5_CMD_OP_DESTROY_FLOW_GROUP = 0x934,
269 MLX5_CMD_OP_QUERY_FLOW_GROUP = 0x935,
270 MLX5_CMD_OP_SET_FLOW_TABLE_ENTRY = 0x936,
271 MLX5_CMD_OP_QUERY_FLOW_TABLE_ENTRY = 0x937,
Maor Gottlieb34a40e62016-01-11 10:26:00 +0200272 MLX5_CMD_OP_DELETE_FLOW_TABLE_ENTRY = 0x938,
Amir Vadai9dc0b282016-05-13 12:55:39 +0000273 MLX5_CMD_OP_ALLOC_FLOW_COUNTER = 0x939,
274 MLX5_CMD_OP_DEALLOC_FLOW_COUNTER = 0x93a,
275 MLX5_CMD_OP_QUERY_FLOW_COUNTER = 0x93b,
Shahar Klein86d56a12016-06-10 00:07:30 +0300276 MLX5_CMD_OP_MODIFY_FLOW_TABLE = 0x93c,
Mark Bloch60786f02018-08-28 14:18:46 +0300277 MLX5_CMD_OP_ALLOC_PACKET_REFORMAT_CONTEXT = 0x93d,
278 MLX5_CMD_OP_DEALLOC_PACKET_REFORMAT_CONTEXT = 0x93e,
Yishai Hadas719598c2018-11-26 08:28:37 +0200279 MLX5_CMD_OP_QUERY_PACKET_REFORMAT_CONTEXT = 0x93f,
Or Gerlitz2a69cb92017-01-19 19:31:25 +0200280 MLX5_CMD_OP_ALLOC_MODIFY_HEADER_CONTEXT = 0x940,
281 MLX5_CMD_OP_DEALLOC_MODIFY_HEADER_CONTEXT = 0x941,
Yishai Hadase662e142018-06-17 13:00:02 +0300282 MLX5_CMD_OP_QUERY_MODIFY_HEADER_CONTEXT = 0x942,
Ilan Tayari60621182017-03-27 14:52:09 +0300283 MLX5_CMD_OP_FPGA_CREATE_QP = 0x960,
284 MLX5_CMD_OP_FPGA_MODIFY_QP = 0x961,
285 MLX5_CMD_OP_FPGA_QUERY_QP = 0x962,
286 MLX5_CMD_OP_FPGA_DESTROY_QP = 0x963,
287 MLX5_CMD_OP_FPGA_QUERY_QP_COUNTERS = 0x964,
Yishai Hadas38b7ca92018-03-08 14:36:27 +0200288 MLX5_CMD_OP_CREATE_GENERAL_OBJECT = 0xa00,
Yishai Hadase662e142018-06-17 13:00:02 +0300289 MLX5_CMD_OP_MODIFY_GENERAL_OBJECT = 0xa01,
290 MLX5_CMD_OP_QUERY_GENERAL_OBJECT = 0xa02,
Yishai Hadas38b7ca92018-03-08 14:36:27 +0200291 MLX5_CMD_OP_DESTROY_GENERAL_OBJECT = 0xa03,
Yishai Hadas6e3722b2018-12-19 16:28:15 +0200292 MLX5_CMD_OP_CREATE_UCTX = 0xa04,
293 MLX5_CMD_OP_DESTROY_UCTX = 0xa06,
294 MLX5_CMD_OP_CREATE_UMEM = 0xa08,
295 MLX5_CMD_OP_DESTROY_UMEM = 0xa0a,
Shahar Klein86d56a12016-06-10 00:07:30 +0300296 MLX5_CMD_OP_MAX
Saeed Mahameede2816822015-05-28 22:28:40 +0300297};
298
Yishai Hadas719598c2018-11-26 08:28:37 +0200299/* Valid range for general commands that don't work over an object */
300enum {
301 MLX5_CMD_OP_GENERAL_START = 0xb00,
302 MLX5_CMD_OP_GENERAL_END = 0xd00,
303};
304
Saeed Mahameede2816822015-05-28 22:28:40 +0300305struct mlx5_ifc_flow_table_fields_supported_bits {
306 u8 outer_dmac[0x1];
307 u8 outer_smac[0x1];
308 u8 outer_ether_type[0x1];
Ariel Levkovich19cc7522017-04-03 13:11:03 +0300309 u8 outer_ip_version[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300310 u8 outer_first_prio[0x1];
311 u8 outer_first_cfi[0x1];
312 u8 outer_first_vid[0x1];
Or Gerlitza8ade552017-06-07 17:49:56 +0300313 u8 outer_ipv4_ttl[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300314 u8 outer_second_prio[0x1];
315 u8 outer_second_cfi[0x1];
316 u8 outer_second_vid[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200317 u8 reserved_at_b[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300318 u8 outer_sip[0x1];
319 u8 outer_dip[0x1];
320 u8 outer_frag[0x1];
321 u8 outer_ip_protocol[0x1];
322 u8 outer_ip_ecn[0x1];
323 u8 outer_ip_dscp[0x1];
324 u8 outer_udp_sport[0x1];
325 u8 outer_udp_dport[0x1];
326 u8 outer_tcp_sport[0x1];
327 u8 outer_tcp_dport[0x1];
328 u8 outer_tcp_flags[0x1];
329 u8 outer_gre_protocol[0x1];
330 u8 outer_gre_key[0x1];
331 u8 outer_vxlan_vni[0x1];
Yevgeny Kliteynik75d90e72019-04-29 18:14:18 +0000332 u8 outer_geneve_vni[0x1];
333 u8 outer_geneve_oam[0x1];
334 u8 outer_geneve_protocol_type[0x1];
335 u8 outer_geneve_opt_len[0x1];
336 u8 reserved_at_1e[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300337 u8 source_eswitch_port[0x1];
338
339 u8 inner_dmac[0x1];
340 u8 inner_smac[0x1];
341 u8 inner_ether_type[0x1];
Ariel Levkovich19cc7522017-04-03 13:11:03 +0300342 u8 inner_ip_version[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300343 u8 inner_first_prio[0x1];
344 u8 inner_first_cfi[0x1];
345 u8 inner_first_vid[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200346 u8 reserved_at_27[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300347 u8 inner_second_prio[0x1];
348 u8 inner_second_cfi[0x1];
349 u8 inner_second_vid[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200350 u8 reserved_at_2b[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300351 u8 inner_sip[0x1];
352 u8 inner_dip[0x1];
353 u8 inner_frag[0x1];
354 u8 inner_ip_protocol[0x1];
355 u8 inner_ip_ecn[0x1];
356 u8 inner_ip_dscp[0x1];
357 u8 inner_udp_sport[0x1];
358 u8 inner_udp_dport[0x1];
359 u8 inner_tcp_sport[0x1];
360 u8 inner_tcp_dport[0x1];
361 u8 inner_tcp_flags[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200362 u8 reserved_at_37[0x9];
Ariel Levkovich71c6e862018-05-13 14:33:34 +0300363
Yevgeny Kliteynikb169e642019-04-29 18:14:20 +0000364 u8 geneve_tlv_option_0_data[0x1];
365 u8 reserved_at_41[0x4];
Ariel Levkovich71c6e862018-05-13 14:33:34 +0300366 u8 outer_first_mpls_over_udp[0x4];
367 u8 outer_first_mpls_over_gre[0x4];
368 u8 inner_first_mpls[0x4];
369 u8 outer_first_mpls[0x4];
370 u8 reserved_at_55[0x2];
Boris Pismenny3346c482017-08-20 15:13:08 +0300371 u8 outer_esp_spi[0x1];
Ariel Levkovich71c6e862018-05-13 14:33:34 +0300372 u8 reserved_at_58[0x2];
Yishai Hadasa550ddf2017-08-17 15:52:33 +0300373 u8 bth_dst_qp[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300374
Yishai Hadasa550ddf2017-08-17 15:52:33 +0300375 u8 reserved_at_5b[0x25];
Saeed Mahameede2816822015-05-28 22:28:40 +0300376};
377
378struct mlx5_ifc_flow_table_prop_layout_bits {
379 u8 ft_support[0x1];
Amir Vadai9dc0b282016-05-13 12:55:39 +0000380 u8 reserved_at_1[0x1];
381 u8 flow_counter[0x1];
Maor Gottlieb26a81452015-12-10 17:12:39 +0200382 u8 flow_modify_en[0x1];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +0200383 u8 modify_root[0x1];
Maor Gottlieb34a40e62016-01-11 10:26:00 +0200384 u8 identified_miss_table_mode[0x1];
385 u8 flow_table_modify[0x1];
Mark Bloch60786f02018-08-28 14:18:46 +0300386 u8 reformat[0x1];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +0300387 u8 decap[0x1];
Or Gerlitz0c068972018-01-28 20:14:20 +0200388 u8 reserved_at_9[0x1];
389 u8 pop_vlan[0x1];
390 u8 push_vlan[0x1];
Jianbo Liu8da6fe22018-07-16 18:35:32 -0700391 u8 reserved_at_c[0x1];
392 u8 pop_vlan_2[0x1];
393 u8 push_vlan_2[0x1];
Mark Blochbea4e1f2018-08-28 14:18:47 +0300394 u8 reformat_and_vlan_action[0x1];
Ariel Levkovich9fba2b92019-03-31 19:44:43 +0300395 u8 reserved_at_10[0x1];
396 u8 sw_owner[0x1];
Mark Blochbea4e1f2018-08-28 14:18:47 +0300397 u8 reformat_l3_tunnel_to_l2[0x1];
398 u8 reformat_l2_to_l3_tunnel[0x1];
399 u8 reformat_and_modify_action[0x1];
Maor Gottliebf6f7d6b2019-04-29 18:14:14 +0000400 u8 reserved_at_15[0x2];
401 u8 table_miss_action_domain[0x1];
Eli Britsteinc6d4e452019-05-29 22:50:29 +0000402 u8 termination_table[0x1];
403 u8 reserved_at_19[0x7];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200404 u8 reserved_at_20[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +0300405 u8 log_max_ft_size[0x6];
Or Gerlitz2a69cb92017-01-19 19:31:25 +0200406 u8 log_max_modify_header_context[0x8];
407 u8 max_modify_header_actions[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300408 u8 max_ft_level[0x8];
409
Matan Barakb4ff3a32016-02-09 14:57:42 +0200410 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +0300411
Matan Barakb4ff3a32016-02-09 14:57:42 +0200412 u8 reserved_at_60[0x18];
Maor Gottlieb26a81452015-12-10 17:12:39 +0200413 u8 log_max_ft_num[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300414
Matan Barakb4ff3a32016-02-09 14:57:42 +0200415 u8 reserved_at_80[0x18];
Maor Gottlieb26a81452015-12-10 17:12:39 +0200416 u8 log_max_destination[0x8];
417
Raed Salem16f1c5b2017-07-30 11:02:51 +0300418 u8 log_max_flow_counter[0x8];
419 u8 reserved_at_a8[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300420 u8 log_max_flow[0x8];
421
Matan Barakb4ff3a32016-02-09 14:57:42 +0200422 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +0300423
424 struct mlx5_ifc_flow_table_fields_supported_bits ft_field_support;
425
426 struct mlx5_ifc_flow_table_fields_supported_bits ft_field_bitmask_support;
427};
428
429struct mlx5_ifc_odp_per_transport_service_cap_bits {
430 u8 send[0x1];
431 u8 receive[0x1];
432 u8 write[0x1];
433 u8 read[0x1];
Artemy Kovalyov17d2f882017-01-02 11:37:47 +0200434 u8 atomic[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300435 u8 srq_receive[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200436 u8 reserved_at_6[0x1a];
Saeed Mahameede2816822015-05-28 22:28:40 +0300437};
438
439struct mlx5_ifc_fte_match_set_lyr_2_4_bits {
440 u8 smac_47_16[0x20];
441
442 u8 smac_15_0[0x10];
443 u8 ethertype[0x10];
444
445 u8 dmac_47_16[0x20];
446
447 u8 dmac_15_0[0x10];
448 u8 first_prio[0x3];
449 u8 first_cfi[0x1];
450 u8 first_vid[0xc];
451
452 u8 ip_protocol[0x8];
453 u8 ip_dscp[0x6];
454 u8 ip_ecn[0x2];
Mohamad Haj Yahia10543362016-10-09 16:25:43 +0300455 u8 cvlan_tag[0x1];
456 u8 svlan_tag[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300457 u8 frag[0x1];
Ariel Levkovich19cc7522017-04-03 13:11:03 +0300458 u8 ip_version[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +0300459 u8 tcp_flags[0x9];
460
461 u8 tcp_sport[0x10];
462 u8 tcp_dport[0x10];
463
Or Gerlitza8ade552017-06-07 17:49:56 +0300464 u8 reserved_at_c0[0x18];
465 u8 ttl_hoplimit[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300466
467 u8 udp_sport[0x10];
468 u8 udp_dport[0x10];
469
Maor Gottliebb4d1f032016-01-11 10:26:05 +0200470 union mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits src_ipv4_src_ipv6;
Saeed Mahameede2816822015-05-28 22:28:40 +0300471
Maor Gottliebb4d1f032016-01-11 10:26:05 +0200472 union mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits dst_ipv4_dst_ipv6;
Saeed Mahameede2816822015-05-28 22:28:40 +0300473};
474
Oz Shlomo5886a962018-12-10 13:15:13 -0800475struct mlx5_ifc_nvgre_key_bits {
476 u8 hi[0x18];
477 u8 lo[0x8];
478};
479
480union mlx5_ifc_gre_key_bits {
481 struct mlx5_ifc_nvgre_key_bits nvgre;
482 u8 key[0x20];
483};
484
Saeed Mahameede2816822015-05-28 22:28:40 +0300485struct mlx5_ifc_fte_match_set_misc_bits {
Saeed Mahameed74862162016-06-09 15:11:34 +0300486 u8 reserved_at_0[0x8];
487 u8 source_sqn[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +0300488
Shahar Klein3e99df82018-03-18 09:02:06 +0200489 u8 source_eswitch_owner_vhca_id[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300490 u8 source_port[0x10];
491
492 u8 outer_second_prio[0x3];
493 u8 outer_second_cfi[0x1];
494 u8 outer_second_vid[0xc];
495 u8 inner_second_prio[0x3];
496 u8 inner_second_cfi[0x1];
497 u8 inner_second_vid[0xc];
498
Mohamad Haj Yahia10543362016-10-09 16:25:43 +0300499 u8 outer_second_cvlan_tag[0x1];
500 u8 inner_second_cvlan_tag[0x1];
501 u8 outer_second_svlan_tag[0x1];
502 u8 inner_second_svlan_tag[0x1];
503 u8 reserved_at_64[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +0300504 u8 gre_protocol[0x10];
505
Oz Shlomo5886a962018-12-10 13:15:13 -0800506 union mlx5_ifc_gre_key_bits gre_key;
Saeed Mahameede2816822015-05-28 22:28:40 +0300507
508 u8 vxlan_vni[0x18];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200509 u8 reserved_at_b8[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300510
Yevgeny Kliteynik75d90e72019-04-29 18:14:18 +0000511 u8 geneve_vni[0x18];
512 u8 reserved_at_d8[0x7];
513 u8 geneve_oam[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300514
Matan Barakb4ff3a32016-02-09 14:57:42 +0200515 u8 reserved_at_e0[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +0300516 u8 outer_ipv6_flow_label[0x14];
517
Matan Barakb4ff3a32016-02-09 14:57:42 +0200518 u8 reserved_at_100[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +0300519 u8 inner_ipv6_flow_label[0x14];
520
Yevgeny Kliteynik75d90e72019-04-29 18:14:18 +0000521 u8 reserved_at_120[0xa];
522 u8 geneve_opt_len[0x6];
523 u8 geneve_protocol_type[0x10];
524
525 u8 reserved_at_140[0x8];
Yishai Hadasa550ddf2017-08-17 15:52:33 +0300526 u8 bth_dst_qp[0x18];
Boris Pismenny3346c482017-08-20 15:13:08 +0300527 u8 reserved_at_160[0x20];
528 u8 outer_esp_spi[0x20];
529 u8 reserved_at_1a0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +0300530};
531
Ariel Levkovich71c6e862018-05-13 14:33:34 +0300532struct mlx5_ifc_fte_match_mpls_bits {
533 u8 mpls_label[0x14];
534 u8 mpls_exp[0x3];
535 u8 mpls_s_bos[0x1];
536 u8 mpls_ttl[0x8];
537};
538
539struct mlx5_ifc_fte_match_set_misc2_bits {
540 struct mlx5_ifc_fte_match_mpls_bits outer_first_mpls;
541
542 struct mlx5_ifc_fte_match_mpls_bits inner_first_mpls;
543
544 struct mlx5_ifc_fte_match_mpls_bits outer_first_mpls_over_gre;
545
546 struct mlx5_ifc_fte_match_mpls_bits outer_first_mpls_over_udp;
547
Jianbo Liu65c0f2c2019-06-25 17:47:50 +0000548 u8 metadata_reg_c_7[0x20];
549
550 u8 metadata_reg_c_6[0x20];
551
552 u8 metadata_reg_c_5[0x20];
553
554 u8 metadata_reg_c_4[0x20];
555
556 u8 metadata_reg_c_3[0x20];
557
558 u8 metadata_reg_c_2[0x20];
559
560 u8 metadata_reg_c_1[0x20];
561
562 u8 metadata_reg_c_0[0x20];
Ariel Levkovich71c6e862018-05-13 14:33:34 +0300563
564 u8 metadata_reg_a[0x20];
565
566 u8 reserved_at_1a0[0x60];
567};
568
Yevgeny Kliteynikb169e642019-04-29 18:14:20 +0000569struct mlx5_ifc_fte_match_set_misc3_bits {
570 u8 reserved_at_0[0x120];
571 u8 geneve_tlv_option_0_data[0x20];
572 u8 reserved_at_140[0xc0];
573};
574
Saeed Mahameede2816822015-05-28 22:28:40 +0300575struct mlx5_ifc_cmd_pas_bits {
576 u8 pa_h[0x20];
577
578 u8 pa_l[0x14];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200579 u8 reserved_at_34[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +0300580};
581
582struct mlx5_ifc_uint64_bits {
583 u8 hi[0x20];
584
585 u8 lo[0x20];
586};
587
588enum {
589 MLX5_ADS_STAT_RATE_NO_LIMIT = 0x0,
590 MLX5_ADS_STAT_RATE_2_5GBPS = 0x7,
591 MLX5_ADS_STAT_RATE_10GBPS = 0x8,
592 MLX5_ADS_STAT_RATE_30GBPS = 0x9,
593 MLX5_ADS_STAT_RATE_5GBPS = 0xa,
594 MLX5_ADS_STAT_RATE_20GBPS = 0xb,
595 MLX5_ADS_STAT_RATE_40GBPS = 0xc,
596 MLX5_ADS_STAT_RATE_60GBPS = 0xd,
597 MLX5_ADS_STAT_RATE_80GBPS = 0xe,
598 MLX5_ADS_STAT_RATE_120GBPS = 0xf,
599};
600
601struct mlx5_ifc_ads_bits {
602 u8 fl[0x1];
603 u8 free_ar[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200604 u8 reserved_at_2[0xe];
Saeed Mahameede2816822015-05-28 22:28:40 +0300605 u8 pkey_index[0x10];
606
Matan Barakb4ff3a32016-02-09 14:57:42 +0200607 u8 reserved_at_20[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300608 u8 grh[0x1];
609 u8 mlid[0x7];
610 u8 rlid[0x10];
611
612 u8 ack_timeout[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200613 u8 reserved_at_45[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +0300614 u8 src_addr_index[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200615 u8 reserved_at_50[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +0300616 u8 stat_rate[0x4];
617 u8 hop_limit[0x8];
618
Matan Barakb4ff3a32016-02-09 14:57:42 +0200619 u8 reserved_at_60[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +0300620 u8 tclass[0x8];
621 u8 flow_label[0x14];
622
623 u8 rgid_rip[16][0x8];
624
Matan Barakb4ff3a32016-02-09 14:57:42 +0200625 u8 reserved_at_100[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +0300626 u8 f_dscp[0x1];
627 u8 f_ecn[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200628 u8 reserved_at_106[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300629 u8 f_eth_prio[0x1];
630 u8 ecn[0x2];
631 u8 dscp[0x6];
632 u8 udp_sport[0x10];
633
634 u8 dei_cfi[0x1];
635 u8 eth_prio[0x3];
636 u8 sl[0x4];
Daniel Jurgens32f69e42018-01-04 17:25:36 +0200637 u8 vhca_port_num[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300638 u8 rmac_47_32[0x10];
639
640 u8 rmac_31_0[0x20];
641};
642
643struct mlx5_ifc_flow_table_nic_cap_bits {
Maor Gottliebb3638e12016-03-07 18:51:46 +0200644 u8 nic_rx_multi_path_tirs[0x1];
Maor Gottliebcea824d2016-05-31 14:09:09 +0300645 u8 nic_rx_multi_path_tirs_fts[0x1];
646 u8 allow_sniffer_and_nic_rx_shared_tir[0x1];
Mark Blochbea4e1f2018-08-28 14:18:47 +0300647 u8 reserved_at_3[0x1d];
648 u8 encap_general_header[0x1];
649 u8 reserved_at_21[0xa];
650 u8 log_max_packet_reformat_context[0x5];
651 u8 reserved_at_30[0x6];
652 u8 max_encap_header_size[0xa];
653 u8 reserved_at_40[0x1c0];
Saeed Mahameede2816822015-05-28 22:28:40 +0300654
655 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive;
656
Maor Gottliebd83eb502019-04-29 18:14:12 +0000657 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive_rdma;
Saeed Mahameede2816822015-05-28 22:28:40 +0300658
659 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive_sniffer;
660
661 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_transmit;
662
Matan Barakb4ff3a32016-02-09 14:57:42 +0200663 u8 reserved_at_a00[0x200];
Saeed Mahameede2816822015-05-28 22:28:40 +0300664
665 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_transmit_sniffer;
666
Matan Barakb4ff3a32016-02-09 14:57:42 +0200667 u8 reserved_at_e00[0x7200];
Saeed Mahameede2816822015-05-28 22:28:40 +0300668};
669
Jianbo Liu65c0f2c2019-06-25 17:47:50 +0000670enum {
671 MLX5_FDB_TO_VPORT_REG_C_0 = 0x01,
672 MLX5_FDB_TO_VPORT_REG_C_1 = 0x02,
673 MLX5_FDB_TO_VPORT_REG_C_2 = 0x04,
674 MLX5_FDB_TO_VPORT_REG_C_3 = 0x08,
675 MLX5_FDB_TO_VPORT_REG_C_4 = 0x10,
676 MLX5_FDB_TO_VPORT_REG_C_5 = 0x20,
677 MLX5_FDB_TO_VPORT_REG_C_6 = 0x40,
678 MLX5_FDB_TO_VPORT_REG_C_7 = 0x80,
679};
680
Saeed Mahameed495716b2015-12-01 18:03:19 +0200681struct mlx5_ifc_flow_table_eswitch_cap_bits {
Jianbo Liu65c0f2c2019-06-25 17:47:50 +0000682 u8 fdb_to_vport_reg_c_id[0x8];
683 u8 reserved_at_8[0xf];
684 u8 flow_source[0x1];
685 u8 reserved_at_18[0x2];
Paul Blakeyb9aa0ba2018-05-31 11:50:23 +0300686 u8 multi_fdb_encap[0x1];
Vu Pham663f1462018-10-31 16:03:21 +0200687 u8 reserved_at_1b[0x1];
688 u8 fdb_multi_path_to_table[0x1];
689 u8 reserved_at_1d[0x3];
690
691 u8 reserved_at_20[0x1e0];
Saeed Mahameed495716b2015-12-01 18:03:19 +0200692
693 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_esw_fdb;
694
695 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_esw_acl_ingress;
696
697 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_esw_acl_egress;
698
Matan Barakb4ff3a32016-02-09 14:57:42 +0200699 u8 reserved_at_800[0x7800];
Saeed Mahameed495716b2015-12-01 18:03:19 +0200700};
701
Shahar Klein8bb957d2018-12-12 19:11:38 -0800702enum {
703 MLX5_COUNTER_SOURCE_ESWITCH = 0x0,
704 MLX5_COUNTER_FLOW_ESWITCH = 0x1,
705};
706
Saeed Mahameedd6666752015-12-01 18:03:22 +0200707struct mlx5_ifc_e_switch_cap_bits {
708 u8 vport_svlan_strip[0x1];
709 u8 vport_cvlan_strip[0x1];
710 u8 vport_svlan_insert[0x1];
711 u8 vport_cvlan_insert_if_not_exist[0x1];
712 u8 vport_cvlan_insert_overwrite[0x1];
Jianbo Liu65c0f2c2019-06-25 17:47:50 +0000713 u8 reserved_at_5[0x3];
714 u8 esw_uplink_ingress_acl[0x1];
715 u8 reserved_at_9[0x10];
Vu Pham6706a3b2019-05-29 22:50:37 +0000716 u8 esw_functions_changed[0x1];
717 u8 reserved_at_1a[0x1];
Bodong Wang81cd2292018-12-10 11:59:33 -0600718 u8 ecpf_vport_exists[0x1];
Shahar Klein8bb957d2018-12-12 19:11:38 -0800719 u8 counter_eswitch_affinity[0x1];
Roi Dayana6d04562017-12-05 10:38:58 +0200720 u8 merged_eswitch[0x1];
Noa Osherovich23898c72016-06-10 00:07:37 +0300721 u8 nic_vport_node_guid_modify[0x1];
722 u8 nic_vport_port_guid_modify[0x1];
Saeed Mahameedd6666752015-12-01 18:03:22 +0200723
Hadar Hen Zion7adbde22016-08-03 15:08:33 +0300724 u8 vxlan_encap_decap[0x1];
725 u8 nvgre_encap_decap[0x1];
Eli Britstein1b115492018-12-10 13:15:14 -0800726 u8 reserved_at_22[0x1];
727 u8 log_max_fdb_encap_uplink[0x5];
728 u8 reserved_at_21[0x3];
Mark Bloch60786f02018-08-28 14:18:46 +0300729 u8 log_max_packet_reformat_context[0x5];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +0300730 u8 reserved_2b[0x6];
731 u8 max_encap_header_size[0xa];
732
Parav Pandit1759d322019-06-28 22:35:48 +0000733 u8 reserved_at_40[0xb];
734 u8 log_max_esw_sf[0x5];
735 u8 esw_sf_base_id[0x10];
736
737 u8 reserved_at_60[0x7a0];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +0300738
Saeed Mahameedd6666752015-12-01 18:03:22 +0200739};
740
Saeed Mahameed74862162016-06-09 15:11:34 +0300741struct mlx5_ifc_qos_cap_bits {
742 u8 packet_pacing[0x1];
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300743 u8 esw_scheduling[0x1];
Mohamad Haj Yahiac9497c92016-12-15 14:02:53 +0200744 u8 esw_bw_share[0x1];
745 u8 esw_rate_limit[0x1];
Bodong Wang05d3ac92018-03-19 15:10:29 +0200746 u8 reserved_at_4[0x1];
747 u8 packet_pacing_burst_bound[0x1];
748 u8 packet_pacing_typical_size[0x1];
749 u8 reserved_at_7[0x19];
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300750
751 u8 reserved_at_20[0x20];
752
Saeed Mahameed74862162016-06-09 15:11:34 +0300753 u8 packet_pacing_max_rate[0x20];
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300754
Saeed Mahameed74862162016-06-09 15:11:34 +0300755 u8 packet_pacing_min_rate[0x20];
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300756
757 u8 reserved_at_80[0x10];
Saeed Mahameed74862162016-06-09 15:11:34 +0300758 u8 packet_pacing_rate_table_size[0x10];
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300759
760 u8 esw_element_type[0x10];
761 u8 esw_tsar_type[0x10];
762
763 u8 reserved_at_c0[0x10];
764 u8 max_qos_para_vport[0x10];
765
766 u8 max_tsar_bw_share[0x20];
767
768 u8 reserved_at_100[0x700];
Saeed Mahameed74862162016-06-09 15:11:34 +0300769};
770
Inbar Karmy2fcb12d2017-08-17 16:39:47 +0300771struct mlx5_ifc_debug_cap_bits {
Moshe Shemesh0b9055a2019-05-29 22:50:24 +0000772 u8 core_dump_general[0x1];
773 u8 core_dump_qp[0x1];
774 u8 reserved_at_2[0x1e];
Inbar Karmy2fcb12d2017-08-17 16:39:47 +0300775
776 u8 reserved_at_20[0x2];
777 u8 stall_detect[0x1];
778 u8 reserved_at_23[0x1d];
779
780 u8 reserved_at_40[0x7c0];
781};
782
Saeed Mahameede2816822015-05-28 22:28:40 +0300783struct mlx5_ifc_per_protocol_networking_offload_caps_bits {
784 u8 csum_cap[0x1];
785 u8 vlan_cap[0x1];
786 u8 lro_cap[0x1];
787 u8 lro_psh_flag[0x1];
788 u8 lro_time_stamp[0x1];
Saeed Mahameed2b31f7a2016-11-28 18:04:50 +0200789 u8 reserved_at_5[0x2];
790 u8 wqe_vlan_insert[0x1];
Tariq Toukan66189962015-11-12 19:35:26 +0200791 u8 self_lb_en_modifiable[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200792 u8 reserved_at_9[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +0300793 u8 max_lso_cap[0x5];
Leon Romanovskyc226dc22016-10-31 12:15:20 +0200794 u8 multi_pkt_send_wqe[0x2];
Hadar Hen Zioncff92d72016-07-24 16:12:40 +0300795 u8 wqe_inline_mode[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +0300796 u8 rss_ind_tbl_cap[0x4];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +0300797 u8 reg_umr_sq[0x1];
798 u8 scatter_fcs[0x1];
Bodong Wang050da902017-08-17 15:52:35 +0300799 u8 enhanced_multi_pkt_send_wqe[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300800 u8 tunnel_lso_const_out_ip_id[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200801 u8 reserved_at_1c[0x2];
Gal Pressman27299842017-08-13 13:34:42 +0300802 u8 tunnel_stateless_gre[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300803 u8 tunnel_stateless_vxlan[0x1];
804
Ilan Tayari547eede2017-04-18 16:04:28 +0300805 u8 swp[0x1];
806 u8 swp_csum[0x1];
807 u8 swp_lso[0x1];
Saeed Mahameeddb849fa2019-05-03 13:14:59 -0700808 u8 cqe_checksum_full[0x1];
809 u8 reserved_at_24[0xc];
Gal Pressman22a65aa2017-12-25 18:40:52 +0200810 u8 max_vxlan_udp_ports[0x8];
811 u8 reserved_at_38[0x6];
Maor Gottlieb4d350f12017-10-19 08:25:54 +0300812 u8 max_geneve_opt_len[0x1];
813 u8 tunnel_stateless_geneve_rx[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300814
Matan Barakb4ff3a32016-02-09 14:57:42 +0200815 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300816 u8 lro_min_mss_size[0x10];
817
Matan Barakb4ff3a32016-02-09 14:57:42 +0200818 u8 reserved_at_60[0x120];
Saeed Mahameede2816822015-05-28 22:28:40 +0300819
820 u8 lro_timer_supported_periods[4][0x20];
821
Matan Barakb4ff3a32016-02-09 14:57:42 +0200822 u8 reserved_at_200[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +0300823};
824
825struct mlx5_ifc_roce_cap_bits {
826 u8 roce_apm[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200827 u8 reserved_at_1[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +0300828
Matan Barakb4ff3a32016-02-09 14:57:42 +0200829 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +0300830
Matan Barakb4ff3a32016-02-09 14:57:42 +0200831 u8 reserved_at_80[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +0300832 u8 l3_type[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200833 u8 reserved_at_90[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300834 u8 roce_version[0x8];
835
Matan Barakb4ff3a32016-02-09 14:57:42 +0200836 u8 reserved_at_a0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300837 u8 r_roce_dest_udp_port[0x10];
838
839 u8 r_roce_max_src_udp_port[0x10];
840 u8 r_roce_min_src_udp_port[0x10];
841
Matan Barakb4ff3a32016-02-09 14:57:42 +0200842 u8 reserved_at_e0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300843 u8 roce_address_table_size[0x10];
844
Matan Barakb4ff3a32016-02-09 14:57:42 +0200845 u8 reserved_at_100[0x700];
Saeed Mahameede2816822015-05-28 22:28:40 +0300846};
847
Ariel Levkoviche72bd812018-04-05 18:53:26 +0300848struct mlx5_ifc_device_mem_cap_bits {
849 u8 memic[0x1];
850 u8 reserved_at_1[0x1f];
851
852 u8 reserved_at_20[0xb];
853 u8 log_min_memic_alloc_size[0x5];
854 u8 reserved_at_30[0x8];
855 u8 log_max_memic_addr_alignment[0x8];
856
857 u8 memic_bar_start_addr[0x40];
858
859 u8 memic_bar_size[0x20];
860
861 u8 max_memic_size[0x20];
862
Ariel Levkovich9fba2b92019-03-31 19:44:43 +0300863 u8 steering_sw_icm_start_address[0x40];
864
865 u8 reserved_at_100[0x8];
866 u8 log_header_modify_sw_icm_size[0x8];
867 u8 reserved_at_110[0x2];
868 u8 log_sw_icm_alloc_granularity[0x6];
869 u8 log_steering_sw_icm_size[0x8];
870
871 u8 reserved_at_120[0x20];
872
873 u8 header_modify_sw_icm_start_address[0x40];
874
875 u8 reserved_at_180[0x680];
Ariel Levkoviche72bd812018-04-05 18:53:26 +0300876};
877
Yishai Hadasb9a7ba52019-06-30 19:23:23 +0300878struct mlx5_ifc_device_event_cap_bits {
879 u8 user_affiliated_events[4][0x40];
880
881 u8 user_unaffiliated_events[4][0x40];
882};
883
Saeed Mahameede2816822015-05-28 22:28:40 +0300884enum {
885 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_1_BYTE = 0x0,
886 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_2_BYTES = 0x2,
887 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_4_BYTES = 0x4,
888 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_8_BYTES = 0x8,
889 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_16_BYTES = 0x10,
890 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_32_BYTES = 0x20,
891 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_64_BYTES = 0x40,
892 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_128_BYTES = 0x80,
893 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_256_BYTES = 0x100,
894};
895
896enum {
897 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_1_BYTE = 0x1,
898 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_2_BYTES = 0x2,
899 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_4_BYTES = 0x4,
900 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_8_BYTES = 0x8,
901 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_16_BYTES = 0x10,
902 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_32_BYTES = 0x20,
903 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_64_BYTES = 0x40,
904 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_128_BYTES = 0x80,
905 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_256_BYTES = 0x100,
906};
907
908struct mlx5_ifc_atomic_caps_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +0200909 u8 reserved_at_0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +0300910
Or Gerlitzbd108382017-05-28 15:24:17 +0300911 u8 atomic_req_8B_endianness_mode[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200912 u8 reserved_at_42[0x4];
Or Gerlitzbd108382017-05-28 15:24:17 +0300913 u8 supported_atomic_req_8B_endianness_mode_1[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300914
Matan Barakb4ff3a32016-02-09 14:57:42 +0200915 u8 reserved_at_47[0x19];
Saeed Mahameede2816822015-05-28 22:28:40 +0300916
Matan Barakb4ff3a32016-02-09 14:57:42 +0200917 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +0300918
Matan Barakb4ff3a32016-02-09 14:57:42 +0200919 u8 reserved_at_80[0x10];
Eran Ben Elishaf91e6d82015-12-14 16:34:09 +0200920 u8 atomic_operations[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300921
Matan Barakb4ff3a32016-02-09 14:57:42 +0200922 u8 reserved_at_a0[0x10];
Eran Ben Elishaf91e6d82015-12-14 16:34:09 +0200923 u8 atomic_size_qp[0x10];
924
Matan Barakb4ff3a32016-02-09 14:57:42 +0200925 u8 reserved_at_c0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300926 u8 atomic_size_dc[0x10];
927
Matan Barakb4ff3a32016-02-09 14:57:42 +0200928 u8 reserved_at_e0[0x720];
Saeed Mahameede2816822015-05-28 22:28:40 +0300929};
930
931struct mlx5_ifc_odp_cap_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +0200932 u8 reserved_at_0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +0300933
934 u8 sig[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200935 u8 reserved_at_41[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +0300936
Matan Barakb4ff3a32016-02-09 14:57:42 +0200937 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +0300938
939 struct mlx5_ifc_odp_per_transport_service_cap_bits rc_odp_caps;
940
941 struct mlx5_ifc_odp_per_transport_service_cap_bits uc_odp_caps;
942
943 struct mlx5_ifc_odp_per_transport_service_cap_bits ud_odp_caps;
944
Moni Shouadda7a812019-01-22 08:48:49 +0200945 struct mlx5_ifc_odp_per_transport_service_cap_bits xrc_odp_caps;
946
947 u8 reserved_at_100[0x700];
Saeed Mahameede2816822015-05-28 22:28:40 +0300948};
949
Sagi Grimberg3f0393a2016-02-23 10:25:23 +0200950struct mlx5_ifc_calc_op {
951 u8 reserved_at_0[0x10];
952 u8 reserved_at_10[0x9];
953 u8 op_swap_endianness[0x1];
954 u8 op_min[0x1];
955 u8 op_xor[0x1];
956 u8 op_or[0x1];
957 u8 op_and[0x1];
958 u8 op_max[0x1];
959 u8 op_add[0x1];
960};
961
962struct mlx5_ifc_vector_calc_cap_bits {
963 u8 calc_matrix[0x1];
964 u8 reserved_at_1[0x1f];
965 u8 reserved_at_20[0x8];
966 u8 max_vec_count[0x8];
967 u8 reserved_at_30[0xd];
968 u8 max_chunk_size[0x3];
969 struct mlx5_ifc_calc_op calc0;
970 struct mlx5_ifc_calc_op calc1;
971 struct mlx5_ifc_calc_op calc2;
972 struct mlx5_ifc_calc_op calc3;
973
Gal Pressmanc74d90c2018-11-07 20:31:37 +0200974 u8 reserved_at_c0[0x720];
Sagi Grimberg3f0393a2016-02-23 10:25:23 +0200975};
976
Eran Ben Elishaa12ff352019-04-03 13:05:50 +0300977struct mlx5_ifc_tls_cap_bits {
978 u8 tls_1_2_aes_gcm_128[0x1];
979 u8 tls_1_3_aes_gcm_128[0x1];
980 u8 tls_1_2_aes_gcm_256[0x1];
981 u8 tls_1_3_aes_gcm_256[0x1];
982 u8 reserved_at_4[0x1c];
983
984 u8 reserved_at_20[0x7e0];
985};
986
Saeed Mahameede2816822015-05-28 22:28:40 +0300987enum {
988 MLX5_WQ_TYPE_LINKED_LIST = 0x0,
989 MLX5_WQ_TYPE_CYCLIC = 0x1,
Saeed Mahameed7d5e1422016-04-11 23:10:22 +0300990 MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ = 0x2,
Noa Osherovichccc870872017-10-17 18:01:13 +0300991 MLX5_WQ_TYPE_CYCLIC_STRIDING_RQ = 0x3,
Saeed Mahameede2816822015-05-28 22:28:40 +0300992};
993
994enum {
995 MLX5_WQ_END_PAD_MODE_NONE = 0x0,
996 MLX5_WQ_END_PAD_MODE_ALIGN = 0x1,
997};
998
999enum {
1000 MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_8_GID_ENTRIES = 0x0,
1001 MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_16_GID_ENTRIES = 0x1,
1002 MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_32_GID_ENTRIES = 0x2,
1003 MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_64_GID_ENTRIES = 0x3,
1004 MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_128_GID_ENTRIES = 0x4,
1005};
1006
1007enum {
1008 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_128_ENTRIES = 0x0,
1009 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_256_ENTRIES = 0x1,
1010 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_512_ENTRIES = 0x2,
1011 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_1K_ENTRIES = 0x3,
1012 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_2K_ENTRIES = 0x4,
1013 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_4K_ENTRIES = 0x5,
1014};
1015
1016enum {
1017 MLX5_CMD_HCA_CAP_PORT_TYPE_IB = 0x0,
1018 MLX5_CMD_HCA_CAP_PORT_TYPE_ETHERNET = 0x1,
1019};
1020
1021enum {
1022 MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_DISABLED = 0x0,
1023 MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_INITIAL_STATE = 0x1,
1024 MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_ENABLED = 0x3,
1025};
1026
1027enum {
1028 MLX5_CAP_PORT_TYPE_IB = 0x0,
1029 MLX5_CAP_PORT_TYPE_ETH = 0x1,
Eli Cohend29b7962014-10-02 12:19:43 +03001030};
1031
Max Gurtovoy1410a902017-05-28 10:53:10 +03001032enum {
1033 MLX5_CAP_UMR_FENCE_STRONG = 0x0,
1034 MLX5_CAP_UMR_FENCE_SMALL = 0x1,
1035 MLX5_CAP_UMR_FENCE_NONE = 0x2,
1036};
1037
Yishai Hadas9d43faa2018-11-26 08:28:32 +02001038enum {
1039 MLX5_UCTX_CAP_RAW_TX = 1UL << 0,
Ariel Levkovich9fba2b92019-03-31 19:44:43 +03001040 MLX5_UCTX_CAP_INTERNAL_DEV_RES = 1UL << 1,
Yishai Hadas9d43faa2018-11-26 08:28:32 +02001041};
1042
Gavi Teitz8536a6b2019-07-29 21:12:54 +00001043#define MLX5_FC_BULK_SIZE_FACTOR 128
1044
1045enum mlx5_fc_bulk_alloc_bitmask {
1046 MLX5_FC_BULK_128 = (1 << 0),
1047 MLX5_FC_BULK_256 = (1 << 1),
1048 MLX5_FC_BULK_512 = (1 << 2),
1049 MLX5_FC_BULK_1024 = (1 << 3),
1050 MLX5_FC_BULK_2048 = (1 << 4),
1051 MLX5_FC_BULK_4096 = (1 << 5),
1052 MLX5_FC_BULK_8192 = (1 << 6),
1053 MLX5_FC_BULK_16384 = (1 << 7),
1054};
1055
1056#define MLX5_FC_BULK_NUM_FCS(fc_enum) (MLX5_FC_BULK_SIZE_FACTOR * (fc_enum))
1057
Eli Cohenb7755162014-10-02 12:19:44 +03001058struct mlx5_ifc_cmd_hca_cap_bits {
Daniel Jurgens32f69e42018-01-04 17:25:36 +02001059 u8 reserved_at_0[0x30];
1060 u8 vhca_id[0x10];
1061
1062 u8 reserved_at_40[0x40];
Eli Cohenb7755162014-10-02 12:19:44 +03001063
1064 u8 log_max_srq_sz[0x8];
1065 u8 log_max_qp_sz[0x8];
Yishai Hadasb9a7ba52019-06-30 19:23:23 +03001066 u8 event_cap[0x1];
1067 u8 reserved_at_91[0x7];
Eli Britstein316793f2019-04-29 18:14:01 +00001068 u8 prio_tag_required[0x1];
1069 u8 reserved_at_99[0x2];
Eli Cohenb7755162014-10-02 12:19:44 +03001070 u8 log_max_qp[0x5];
1071
Matan Barakb4ff3a32016-02-09 14:57:42 +02001072 u8 reserved_at_a0[0xb];
Saeed Mahameede2816822015-05-28 22:28:40 +03001073 u8 log_max_srq[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001074 u8 reserved_at_b0[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03001075
Matan Barakb4ff3a32016-02-09 14:57:42 +02001076 u8 reserved_at_c0[0x8];
Eli Cohenb7755162014-10-02 12:19:44 +03001077 u8 log_max_cq_sz[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001078 u8 reserved_at_d0[0xb];
Eli Cohenb7755162014-10-02 12:19:44 +03001079 u8 log_max_cq[0x5];
1080
1081 u8 log_max_eq_sz[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001082 u8 reserved_at_e8[0x2];
Eli Cohenb7755162014-10-02 12:19:44 +03001083 u8 log_max_mkey[0x6];
Leon Romanovskyb183ee22018-06-19 08:47:23 +03001084 u8 reserved_at_f0[0x8];
1085 u8 dump_fill_mkey[0x1];
Feras Daoudfcd29ad2018-08-09 09:55:21 +03001086 u8 reserved_at_f9[0x2];
1087 u8 fast_teardown[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001088 u8 log_max_eq[0x4];
1089
1090 u8 max_indirection[0x8];
Artemy Kovalyovbcda1ac2017-01-02 11:37:41 +02001091 u8 fixed_buffer_size[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001092 u8 log_max_mrw_sz[0x7];
Majd Dibbiny8812c242017-02-09 14:20:12 +02001093 u8 force_teardown[0x1];
1094 u8 reserved_at_111[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001095 u8 log_max_bsf_list_size[0x6];
Artemy Kovalyovbcda1ac2017-01-02 11:37:41 +02001096 u8 umr_extended_translation_offset[0x1];
1097 u8 null_mkey[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001098 u8 log_max_klm_list_size[0x6];
1099
Matan Barakb4ff3a32016-02-09 14:57:42 +02001100 u8 reserved_at_120[0xa];
Eli Cohenb7755162014-10-02 12:19:44 +03001101 u8 log_max_ra_req_dc[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001102 u8 reserved_at_130[0xa];
Eli Cohenb7755162014-10-02 12:19:44 +03001103 u8 log_max_ra_res_dc[0x6];
1104
Matan Barakb4ff3a32016-02-09 14:57:42 +02001105 u8 reserved_at_140[0xa];
Eli Cohenb7755162014-10-02 12:19:44 +03001106 u8 log_max_ra_req_qp[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001107 u8 reserved_at_150[0xa];
Eli Cohenb7755162014-10-02 12:19:44 +03001108 u8 log_max_ra_res_qp[0x6];
1109
Daniel Jurgensf32f5bd2015-11-19 17:12:26 +02001110 u8 end_pad[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001111 u8 cc_query_allowed[0x1];
1112 u8 cc_modify_allowed[0x1];
Daniel Jurgensf32f5bd2015-11-19 17:12:26 +02001113 u8 start_pad[0x1];
1114 u8 cache_line_128byte[0x1];
Mark Zhangf8efee02019-07-02 13:02:30 +03001115 u8 reserved_at_165[0x4];
1116 u8 rts2rts_qp_counters_set_id[0x1];
1117 u8 reserved_at_16a[0x5];
Huy Nguyenc02762e2017-07-18 16:03:17 -05001118 u8 qcam_reg[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001119 u8 gid_table_size[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03001120
Saeed Mahameede2816822015-05-28 22:28:40 +03001121 u8 out_of_seq_cnt[0x1];
1122 u8 vport_counters[0x1];
Saeed Mahameed74862162016-06-09 15:11:34 +03001123 u8 retransmission_q_counters[0x1];
Inbar Karmy2fcb12d2017-08-17 16:39:47 +03001124 u8 debug[0x1];
Alex Vesker83b502a2016-08-04 17:32:02 +03001125 u8 modify_rq_counter_set_id[0x1];
Maor Gottliebc1e0bfc2017-05-30 10:29:11 +03001126 u8 rq_delay_drop[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001127 u8 max_qp_cnt[0xa];
1128 u8 pkey_table_size[0x10];
1129
Saeed Mahameede2816822015-05-28 22:28:40 +03001130 u8 vport_group_manager[0x1];
1131 u8 vhca_group_manager[0x1];
1132 u8 ib_virt[0x1];
1133 u8 eth_virt[0x1];
Moshe Shemesh61c5b5c2018-01-07 16:45:27 +02001134 u8 vnic_env_queue_counters[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001135 u8 ets[0x1];
1136 u8 nic_flow_table[0x1];
Or Gerlitz0efc8562018-05-31 11:16:18 +03001137 u8 eswitch_manager[0x1];
Ariel Levkoviche72bd812018-04-05 18:53:26 +03001138 u8 device_memory[0x1];
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02001139 u8 mcam_reg[0x1];
1140 u8 pcam_reg[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001141 u8 local_ca_ack_delay[0x5];
Huy Nguyen4ce3bf22016-11-17 13:45:56 +02001142 u8 port_module_event[0x1];
Parav Pandit58dcb602017-06-19 07:19:37 +03001143 u8 enhanced_error_q_counters[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001144 u8 ports_check[0x1];
Max Gurtovoy7b135582017-01-02 11:37:38 +02001145 u8 reserved_at_1b3[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001146 u8 disable_link_up[0x1];
1147 u8 beacon_led[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001148 u8 port_type[0x2];
Eli Cohenb7755162014-10-02 12:19:44 +03001149 u8 num_ports[0x8];
1150
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03001151 u8 reserved_at_1c0[0x1];
1152 u8 pps[0x1];
1153 u8 pps_modify[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001154 u8 log_max_msg[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001155 u8 reserved_at_1c8[0x4];
Saeed Mahameed4f3961e2016-02-22 18:17:25 +02001156 u8 max_tc[0x4];
Ilan Tayari1865ea9a2018-05-30 10:59:49 -07001157 u8 temp_warn_event[0x1];
Saeed Mahameed74862162016-06-09 15:11:34 +03001158 u8 dcbx[0x1];
Maor Gottlieb246ac982017-05-30 10:29:12 +03001159 u8 general_notification_event[0x1];
1160 u8 reserved_at_1d3[0x2];
Ilan Tayarie29341f2017-03-13 20:05:45 +02001161 u8 fpga[0x1];
Tariq Toukan928cfe82016-02-22 18:17:29 +02001162 u8 rol_s[0x1];
1163 u8 rol_g[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001164 u8 reserved_at_1d8[0x1];
Tariq Toukan928cfe82016-02-22 18:17:29 +02001165 u8 wol_s[0x1];
1166 u8 wol_g[0x1];
1167 u8 wol_a[0x1];
1168 u8 wol_b[0x1];
1169 u8 wol_m[0x1];
1170 u8 wol_u[0x1];
1171 u8 wol_p[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001172
1173 u8 stat_rate_support[0x10];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001174 u8 reserved_at_1f0[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03001175 u8 cqe_version[0x4];
Eli Cohenb7755162014-10-02 12:19:44 +03001176
Saeed Mahameede2816822015-05-28 22:28:40 +03001177 u8 compact_address_vector[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001178 u8 striding_rq[0x1];
Erez Shitrit500a3d02017-04-13 06:36:51 +03001179 u8 reserved_at_202[0x1];
1180 u8 ipoib_enhanced_offloads[0x1];
Erez Shitrit1015c2e2016-02-21 16:27:16 +02001181 u8 ipoib_basic_offloads[0x1];
Majd Dibbinyc8d75a92018-03-22 15:34:04 +02001182 u8 reserved_at_205[0x1];
1183 u8 repeated_block_disabled[0x1];
1184 u8 umr_modify_entity_size_disabled[0x1];
1185 u8 umr_modify_atomic_disabled[0x1];
1186 u8 umr_indirect_mkey_disabled[0x1];
Max Gurtovoy1410a902017-05-28 10:53:10 +03001187 u8 umr_fence[0x2];
Yonatan Cohen94a04d12018-10-09 12:05:12 +03001188 u8 dc_req_scat_data_cqe[0x1];
1189 u8 reserved_at_20d[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03001190 u8 drain_sigerr[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001191 u8 cmdif_checksum[0x2];
1192 u8 sigerr_cqe[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001193 u8 reserved_at_213[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001194 u8 wq_signature[0x1];
1195 u8 sctr_data_cqe[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001196 u8 reserved_at_216[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001197 u8 sho[0x1];
1198 u8 tph[0x1];
1199 u8 rf[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001200 u8 dct[0x1];
Saeed Mahameed74862162016-06-09 15:11:34 +03001201 u8 qos[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001202 u8 eth_net_offloads[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001203 u8 roce[0x1];
1204 u8 atomic[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001205 u8 reserved_at_21f[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001206
1207 u8 cq_oi[0x1];
1208 u8 cq_resize[0x1];
1209 u8 cq_moderation[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001210 u8 reserved_at_223[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001211 u8 cq_eq_remap[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001212 u8 pg[0x1];
1213 u8 block_lb_mc[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001214 u8 reserved_at_229[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001215 u8 scqe_break_moderation[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001216 u8 cq_period_start_from_cqe[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001217 u8 cd[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001218 u8 reserved_at_22d[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001219 u8 apm[0x1];
Sagi Grimberg3f0393a2016-02-23 10:25:23 +02001220 u8 vector_calc[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001221 u8 umr_ptr_rlky[0x1];
Matan Barakd2370e02016-02-29 18:05:30 +02001222 u8 imaicl[0x1];
Danit Goldberg3fd3c802018-11-30 13:22:04 +02001223 u8 qp_packet_based[0x1];
1224 u8 reserved_at_233[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001225 u8 qkv[0x1];
1226 u8 pkv[0x1];
Haggai Eranb11a4f92016-02-29 15:45:03 +02001227 u8 set_deth_sqpn[0x1];
1228 u8 reserved_at_239[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001229 u8 xrc[0x1];
1230 u8 ud[0x1];
1231 u8 uc[0x1];
1232 u8 rc[0x1];
1233
Eli Cohena6d51b62017-01-03 23:55:23 +02001234 u8 uar_4k[0x1];
1235 u8 reserved_at_241[0x9];
Eli Cohenb7755162014-10-02 12:19:44 +03001236 u8 uar_sz[0x6];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001237 u8 reserved_at_250[0x8];
Eli Cohenb7755162014-10-02 12:19:44 +03001238 u8 log_pg_sz[0x8];
1239
1240 u8 bf[0x1];
Saeed Mahameed0dbc6fe2016-11-17 13:45:59 +02001241 u8 driver_version[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001242 u8 pad_tx_eth_packet[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001243 u8 reserved_at_263[0x8];
Eli Cohenb7755162014-10-02 12:19:44 +03001244 u8 log_bf_reg_size[0x5];
Aviv Heller84df61e2016-05-10 13:47:50 +03001245
1246 u8 reserved_at_270[0xb];
1247 u8 lag_master[0x1];
1248 u8 num_lag_ports[0x4];
Eli Cohenb7755162014-10-02 12:19:44 +03001249
Tariq Toukane1c9c622016-04-11 23:10:21 +03001250 u8 reserved_at_280[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03001251 u8 max_wqe_sz_sq[0x10];
1252
Tariq Toukane1c9c622016-04-11 23:10:21 +03001253 u8 reserved_at_2a0[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03001254 u8 max_wqe_sz_rq[0x10];
1255
Rabie Louloua8ffcc72017-07-09 13:39:30 +03001256 u8 max_flow_counter_31_16[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03001257 u8 max_wqe_sz_sq_dc[0x10];
1258
Tariq Toukane1c9c622016-04-11 23:10:21 +03001259 u8 reserved_at_2e0[0x7];
Eli Cohenb7755162014-10-02 12:19:44 +03001260 u8 max_qp_mcg[0x19];
1261
Gavi Teitz8536a6b2019-07-29 21:12:54 +00001262 u8 reserved_at_300[0x10];
1263 u8 flow_counter_bulk_alloc[0x8];
Eli Cohenb7755162014-10-02 12:19:44 +03001264 u8 log_max_mcg[0x8];
1265
Tariq Toukane1c9c622016-04-11 23:10:21 +03001266 u8 reserved_at_320[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001267 u8 log_max_transport_domain[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001268 u8 reserved_at_328[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001269 u8 log_max_pd[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001270 u8 reserved_at_330[0xb];
Eli Cohenb7755162014-10-02 12:19:44 +03001271 u8 log_max_xrcd[0x5];
1272
Moshe Shemesh5c298142017-12-26 16:46:29 +02001273 u8 nic_receive_steering_discard[0x1];
Moshe Shemeshaaabd072018-01-14 00:56:25 +02001274 u8 receive_discard_vport_down[0x1];
1275 u8 transmit_discard_vport_down[0x1];
1276 u8 reserved_at_343[0x5];
Amir Vadaia351a1b02016-07-14 10:32:38 +03001277 u8 log_max_flow_counter_bulk[0x8];
Rabie Louloua8ffcc72017-07-09 13:39:30 +03001278 u8 max_flow_counter_15_0[0x10];
Amir Vadaia351a1b02016-07-14 10:32:38 +03001279
Eli Cohenb7755162014-10-02 12:19:44 +03001280
Tariq Toukane1c9c622016-04-11 23:10:21 +03001281 u8 reserved_at_360[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001282 u8 log_max_rq[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001283 u8 reserved_at_368[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001284 u8 log_max_sq[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001285 u8 reserved_at_370[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001286 u8 log_max_tir[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001287 u8 reserved_at_378[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001288 u8 log_max_tis[0x5];
1289
Saeed Mahameede2816822015-05-28 22:28:40 +03001290 u8 basic_cyclic_rcv_wqe[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001291 u8 reserved_at_381[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03001292 u8 log_max_rmp[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001293 u8 reserved_at_388[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001294 u8 log_max_rqt[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001295 u8 reserved_at_390[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001296 u8 log_max_rqt_size[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001297 u8 reserved_at_398[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001298 u8 log_max_tis_per_sq[0x5];
1299
Tariq Toukan619a8f2a2018-02-07 14:41:25 +02001300 u8 ext_stride_num_range[0x1];
1301 u8 reserved_at_3a1[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03001302 u8 log_max_stride_sz_rq[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001303 u8 reserved_at_3a8[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001304 u8 log_min_stride_sz_rq[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001305 u8 reserved_at_3b0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001306 u8 log_max_stride_sz_sq[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001307 u8 reserved_at_3b8[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001308 u8 log_min_stride_sz_sq[0x5];
Eli Cohenb7755162014-10-02 12:19:44 +03001309
Or Gerlitz40817cd2017-06-25 12:38:45 +03001310 u8 hairpin[0x1];
1311 u8 reserved_at_3c1[0x2];
1312 u8 log_max_hairpin_queues[0x5];
1313 u8 reserved_at_3c8[0x3];
1314 u8 log_max_hairpin_wq_data_sz[0x5];
Or Gerlitz4d533e02018-01-04 12:26:21 +02001315 u8 reserved_at_3d0[0x3];
1316 u8 log_max_hairpin_num_packets[0x5];
1317 u8 reserved_at_3d8[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001318 u8 log_max_wq_sz[0x5];
1319
Saeed Mahameed54f0a412015-12-01 18:03:10 +02001320 u8 nic_vport_change_event[0x1];
Eran Ben Elisha8978cc92018-01-09 11:41:10 +02001321 u8 disable_local_lb_uc[0x1];
1322 u8 disable_local_lb_mc[0x1];
Or Gerlitz40817cd2017-06-25 12:38:45 +03001323 u8 log_min_hairpin_wq_data_sz[0x5];
1324 u8 reserved_at_3e8[0x3];
Saeed Mahameed54f0a412015-12-01 18:03:10 +02001325 u8 log_max_vlan_list[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001326 u8 reserved_at_3f0[0x3];
Saeed Mahameed54f0a412015-12-01 18:03:10 +02001327 u8 log_max_current_mc_list[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001328 u8 reserved_at_3f8[0x3];
Saeed Mahameed54f0a412015-12-01 18:03:10 +02001329 u8 log_max_current_uc_list[0x5];
1330
Yishai Hadas38b7ca92018-03-08 14:36:27 +02001331 u8 general_obj_types[0x40];
1332
Denis Drozdov342ac842018-08-08 16:23:48 -07001333 u8 reserved_at_440[0x20];
1334
Eran Ben Elishaa12ff352019-04-03 13:05:50 +03001335 u8 tls[0x1];
1336 u8 reserved_at_461[0x2];
Yishai Hadas6e3722b2018-12-19 16:28:15 +02001337 u8 log_max_uctx[0x5];
1338 u8 reserved_at_468[0x3];
1339 u8 log_max_umem[0x5];
Denis Drozdov342ac842018-08-08 16:23:48 -07001340 u8 max_num_eqs[0x10];
Saeed Mahameed54f0a412015-12-01 18:03:10 +02001341
Tariq Toukane1c9c622016-04-11 23:10:21 +03001342 u8 reserved_at_480[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001343 u8 log_max_l2_table[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001344 u8 reserved_at_488[0x8];
Eli Cohenb7755162014-10-02 12:19:44 +03001345 u8 log_uar_page_sz[0x10];
1346
Tariq Toukane1c9c622016-04-11 23:10:21 +03001347 u8 reserved_at_4a0[0x20];
Linus Torvalds048ccca2016-01-23 18:45:06 -08001348 u8 device_frequency_mhz[0x20];
Eran Ben Elishab0844442015-12-29 14:58:30 +02001349 u8 device_frequency_khz[0x20];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001350
Eli Cohena6d51b62017-01-03 23:55:23 +02001351 u8 reserved_at_500[0x20];
1352 u8 num_of_uars_per_page[0x20];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001353
Ariel Levkoviche818e252018-05-13 14:33:35 +03001354 u8 flex_parser_protocols[0x20];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001355
Yevgeny Kliteynikb169e642019-04-29 18:14:20 +00001356 u8 max_geneve_tlv_options[0x8];
1357 u8 reserved_at_568[0x3];
1358 u8 max_geneve_tlv_option_data_len[0x5];
1359 u8 reserved_at_570[0x10];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001360
Eran Ben Elishaa12ff352019-04-03 13:05:50 +03001361 u8 reserved_at_580[0x33];
1362 u8 log_max_dek[0x5];
1363 u8 reserved_at_5b8[0x4];
Yonatan Cohenab741b22018-05-27 13:42:32 +03001364 u8 mini_cqe_resp_stride_index[0x1];
Guy Levi0ff8e792017-10-19 08:25:51 +03001365 u8 cqe_128_always[0x1];
1366 u8 cqe_compression_128[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001367 u8 cqe_compression[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001368
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001369 u8 cqe_compression_timeout[0x10];
1370 u8 cqe_compression_max_num[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03001371
Saeed Mahameed74862162016-06-09 15:11:34 +03001372 u8 reserved_at_5e0[0x10];
1373 u8 tag_matching[0x1];
1374 u8 rndv_offload_rc[0x1];
1375 u8 rndv_offload_dc[0x1];
1376 u8 log_tag_matching_list_sz[0x5];
Max Gurtovoy7b135582017-01-02 11:37:38 +02001377 u8 reserved_at_5f8[0x3];
Saeed Mahameed74862162016-06-09 15:11:34 +03001378 u8 log_max_xrq[0x5];
1379
Daniel Jurgens32f69e42018-01-04 17:25:36 +02001380 u8 affiliate_nic_vport_criteria[0x8];
1381 u8 native_port_num[0x8];
1382 u8 num_vhca_ports[0x8];
1383 u8 reserved_at_618[0x6];
1384 u8 sw_owner_id[0x1];
Yishai Hadas9d43faa2018-11-26 08:28:32 +02001385 u8 reserved_at_61f[0x1];
1386
Eyal Davidovichfd4572b2018-12-10 13:15:12 -08001387 u8 max_num_of_monitor_counters[0x10];
1388 u8 num_ppcnt_monitor_counters[0x10];
1389
1390 u8 reserved_at_640[0x10];
1391 u8 num_q_monitor_counters[0x10];
1392
Parav Pandit1759d322019-06-28 22:35:48 +00001393 u8 reserved_at_660[0x20];
1394
1395 u8 sf[0x1];
1396 u8 sf_set_partition[0x1];
1397 u8 reserved_at_682[0x1];
1398 u8 log_max_sf[0x5];
1399 u8 reserved_at_688[0x8];
1400 u8 log_min_sf_size[0x8];
1401 u8 max_num_sf_partitions[0x8];
Yishai Hadas9d43faa2018-11-26 08:28:32 +02001402
1403 u8 uctx_cap[0x20];
1404
Yevgeny Kliteynikb169e642019-04-29 18:14:20 +00001405 u8 reserved_at_6c0[0x4];
1406 u8 flex_parser_id_geneve_tlv_option_0[0x4];
Parav Pandit1759d322019-06-28 22:35:48 +00001407 u8 reserved_at_6c8[0x28];
1408 u8 sf_base_id[0x10];
1409
Max Gurtovoy1dd73822019-07-01 21:14:01 +03001410 u8 reserved_at_700[0x80];
1411 u8 vhca_tunnel_commands[0x40];
1412 u8 reserved_at_7c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03001413};
1414
Saeed Mahameed81848732015-12-01 18:03:20 +02001415enum mlx5_flow_destination_type {
1416 MLX5_FLOW_DESTINATION_TYPE_VPORT = 0x0,
1417 MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE = 0x1,
1418 MLX5_FLOW_DESTINATION_TYPE_TIR = 0x2,
Amir Vadaibd5251db2016-05-13 12:55:40 +00001419
Aviad Yehezkel5f418372018-02-18 13:17:17 +02001420 MLX5_FLOW_DESTINATION_TYPE_PORT = 0x99,
Amir Vadaibd5251db2016-05-13 12:55:40 +00001421 MLX5_FLOW_DESTINATION_TYPE_COUNTER = 0x100,
Yishai Hadas664000b2018-06-19 15:23:36 +03001422 MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE_NUM = 0x101,
Saeed Mahameede2816822015-05-28 22:28:40 +03001423};
1424
Maor Gottliebf6f7d6b2019-04-29 18:14:14 +00001425enum mlx5_flow_table_miss_action {
1426 MLX5_FLOW_TABLE_MISS_ACTION_DEF,
1427 MLX5_FLOW_TABLE_MISS_ACTION_FWD,
1428 MLX5_FLOW_TABLE_MISS_ACTION_SWITCH_DOMAIN,
1429};
1430
Saeed Mahameede2816822015-05-28 22:28:40 +03001431struct mlx5_ifc_dest_format_struct_bits {
1432 u8 destination_type[0x8];
1433 u8 destination_id[0x18];
Eli Britstein1b115492018-12-10 13:15:14 -08001434
Shahar Kleinb17f7fc2018-03-22 12:32:12 +02001435 u8 destination_eswitch_owner_vhca_id_valid[0x1];
Eli Britstein1b115492018-12-10 13:15:14 -08001436 u8 packet_reformat[0x1];
1437 u8 reserved_at_22[0xe];
Shahar Kleinb17f7fc2018-03-22 12:32:12 +02001438 u8 destination_eswitch_owner_vhca_id[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03001439};
1440
Amir Vadai9dc0b282016-05-13 12:55:39 +00001441struct mlx5_ifc_flow_counter_list_bits {
Rabie Louloua8ffcc72017-07-09 13:39:30 +03001442 u8 flow_counter_id[0x20];
Amir Vadai9dc0b282016-05-13 12:55:39 +00001443
1444 u8 reserved_at_20[0x20];
1445};
1446
Eli Britstein1b115492018-12-10 13:15:14 -08001447struct mlx5_ifc_extended_dest_format_bits {
1448 struct mlx5_ifc_dest_format_struct_bits destination_entry;
1449
1450 u8 packet_reformat_id[0x20];
1451
1452 u8 reserved_at_60[0x20];
1453};
1454
Amir Vadai9dc0b282016-05-13 12:55:39 +00001455union mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits {
1456 struct mlx5_ifc_dest_format_struct_bits dest_format_struct;
1457 struct mlx5_ifc_flow_counter_list_bits flow_counter_list;
1458 u8 reserved_at_0[0x40];
1459};
1460
Saeed Mahameede2816822015-05-28 22:28:40 +03001461struct mlx5_ifc_fte_match_param_bits {
1462 struct mlx5_ifc_fte_match_set_lyr_2_4_bits outer_headers;
1463
1464 struct mlx5_ifc_fte_match_set_misc_bits misc_parameters;
1465
1466 struct mlx5_ifc_fte_match_set_lyr_2_4_bits inner_headers;
1467
Ariel Levkovich71c6e862018-05-13 14:33:34 +03001468 struct mlx5_ifc_fte_match_set_misc2_bits misc_parameters_2;
1469
Yevgeny Kliteynikb169e642019-04-29 18:14:20 +00001470 struct mlx5_ifc_fte_match_set_misc3_bits misc_parameters_3;
1471
1472 u8 reserved_at_a00[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03001473};
1474
1475enum {
1476 MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_SRC_IP = 0x0,
1477 MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_DST_IP = 0x1,
1478 MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_L4_SPORT = 0x2,
1479 MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_L4_DPORT = 0x3,
1480 MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_IPSEC_SPI = 0x4,
1481};
1482
1483struct mlx5_ifc_rx_hash_field_select_bits {
1484 u8 l3_prot_type[0x1];
1485 u8 l4_prot_type[0x1];
1486 u8 selected_fields[0x1e];
1487};
1488
1489enum {
1490 MLX5_WQ_WQ_TYPE_WQ_LINKED_LIST = 0x0,
1491 MLX5_WQ_WQ_TYPE_WQ_CYCLIC = 0x1,
1492};
1493
1494enum {
1495 MLX5_WQ_END_PADDING_MODE_END_PAD_NONE = 0x0,
1496 MLX5_WQ_END_PADDING_MODE_END_PAD_ALIGN = 0x1,
1497};
1498
1499struct mlx5_ifc_wq_bits {
1500 u8 wq_type[0x4];
1501 u8 wq_signature[0x1];
1502 u8 end_padding_mode[0x2];
1503 u8 cd_slave[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001504 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03001505
1506 u8 hds_skip_first_sge[0x1];
1507 u8 log2_hds_buf_size[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001508 u8 reserved_at_24[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03001509 u8 page_offset[0x5];
1510 u8 lwm[0x10];
1511
Matan Barakb4ff3a32016-02-09 14:57:42 +02001512 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03001513 u8 pd[0x18];
1514
Matan Barakb4ff3a32016-02-09 14:57:42 +02001515 u8 reserved_at_60[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03001516 u8 uar_page[0x18];
1517
1518 u8 dbr_addr[0x40];
1519
1520 u8 hw_counter[0x20];
1521
1522 u8 sw_counter[0x20];
1523
Matan Barakb4ff3a32016-02-09 14:57:42 +02001524 u8 reserved_at_100[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03001525 u8 log_wq_stride[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001526 u8 reserved_at_110[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001527 u8 log_wq_pg_sz[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001528 u8 reserved_at_118[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001529 u8 log_wq_sz[0x5];
1530
Leon Romanovskybd371972018-09-20 21:35:26 +03001531 u8 dbr_umem_valid[0x1];
1532 u8 wq_umem_valid[0x1];
1533 u8 reserved_at_122[0x1];
Or Gerlitz4d533e02018-01-04 12:26:21 +02001534 u8 log_hairpin_num_packets[0x5];
1535 u8 reserved_at_128[0x3];
Or Gerlitz40817cd2017-06-25 12:38:45 +03001536 u8 log_hairpin_data_sz[0x5];
Or Gerlitz40817cd2017-06-25 12:38:45 +03001537
Tariq Toukan619a8f2a2018-02-07 14:41:25 +02001538 u8 reserved_at_130[0x4];
1539 u8 log_wqe_num_of_strides[0x4];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001540 u8 two_byte_shift_en[0x1];
1541 u8 reserved_at_139[0x4];
1542 u8 log_wqe_stride_size[0x3];
1543
1544 u8 reserved_at_140[0x4c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001545
1546 struct mlx5_ifc_cmd_pas_bits pas[0];
1547};
1548
1549struct mlx5_ifc_rq_num_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001550 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03001551 u8 rq_num[0x18];
1552};
1553
1554struct mlx5_ifc_mac_address_layout_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001555 u8 reserved_at_0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03001556 u8 mac_addr_47_32[0x10];
1557
1558 u8 mac_addr_31_0[0x20];
1559};
1560
Saeed Mahameedc0046cf2015-12-01 18:03:15 +02001561struct mlx5_ifc_vlan_layout_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001562 u8 reserved_at_0[0x14];
Saeed Mahameedc0046cf2015-12-01 18:03:15 +02001563 u8 vlan[0x0c];
1564
Matan Barakb4ff3a32016-02-09 14:57:42 +02001565 u8 reserved_at_20[0x20];
Saeed Mahameedc0046cf2015-12-01 18:03:15 +02001566};
1567
Saeed Mahameede2816822015-05-28 22:28:40 +03001568struct mlx5_ifc_cong_control_r_roce_ecn_np_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001569 u8 reserved_at_0[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001570
1571 u8 min_time_between_cnps[0x20];
1572
Matan Barakb4ff3a32016-02-09 14:57:42 +02001573 u8 reserved_at_c0[0x12];
Saeed Mahameede2816822015-05-28 22:28:40 +03001574 u8 cnp_dscp[0x6];
Parav Pandit4a2da0b2017-05-30 10:05:15 +03001575 u8 reserved_at_d8[0x4];
1576 u8 cnp_prio_mode[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001577 u8 cnp_802p_prio[0x3];
1578
Matan Barakb4ff3a32016-02-09 14:57:42 +02001579 u8 reserved_at_e0[0x720];
Saeed Mahameede2816822015-05-28 22:28:40 +03001580};
1581
1582struct mlx5_ifc_cong_control_r_roce_ecn_rp_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001583 u8 reserved_at_0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03001584
Matan Barakb4ff3a32016-02-09 14:57:42 +02001585 u8 reserved_at_60[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03001586 u8 clamp_tgt_rate[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001587 u8 reserved_at_65[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001588 u8 clamp_tgt_rate_after_time_inc[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001589 u8 reserved_at_69[0x17];
Saeed Mahameede2816822015-05-28 22:28:40 +03001590
Matan Barakb4ff3a32016-02-09 14:57:42 +02001591 u8 reserved_at_80[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03001592
1593 u8 rpg_time_reset[0x20];
1594
1595 u8 rpg_byte_reset[0x20];
1596
1597 u8 rpg_threshold[0x20];
1598
1599 u8 rpg_max_rate[0x20];
1600
1601 u8 rpg_ai_rate[0x20];
1602
1603 u8 rpg_hai_rate[0x20];
1604
1605 u8 rpg_gd[0x20];
1606
1607 u8 rpg_min_dec_fac[0x20];
1608
1609 u8 rpg_min_rate[0x20];
1610
Matan Barakb4ff3a32016-02-09 14:57:42 +02001611 u8 reserved_at_1c0[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001612
1613 u8 rate_to_set_on_first_cnp[0x20];
1614
1615 u8 dce_tcp_g[0x20];
1616
1617 u8 dce_tcp_rtt[0x20];
1618
1619 u8 rate_reduce_monitor_period[0x20];
1620
Matan Barakb4ff3a32016-02-09 14:57:42 +02001621 u8 reserved_at_320[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03001622
1623 u8 initial_alpha_value[0x20];
1624
Matan Barakb4ff3a32016-02-09 14:57:42 +02001625 u8 reserved_at_360[0x4a0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001626};
1627
1628struct mlx5_ifc_cong_control_802_1qau_rp_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001629 u8 reserved_at_0[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03001630
1631 u8 rppp_max_rps[0x20];
1632
1633 u8 rpg_time_reset[0x20];
1634
1635 u8 rpg_byte_reset[0x20];
1636
1637 u8 rpg_threshold[0x20];
1638
1639 u8 rpg_max_rate[0x20];
1640
1641 u8 rpg_ai_rate[0x20];
1642
1643 u8 rpg_hai_rate[0x20];
1644
1645 u8 rpg_gd[0x20];
1646
1647 u8 rpg_min_dec_fac[0x20];
1648
1649 u8 rpg_min_rate[0x20];
1650
Matan Barakb4ff3a32016-02-09 14:57:42 +02001651 u8 reserved_at_1c0[0x640];
Saeed Mahameede2816822015-05-28 22:28:40 +03001652};
1653
1654enum {
1655 MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_LOG_CQ_SIZE = 0x1,
1656 MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_PAGE_OFFSET = 0x2,
1657 MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_LOG_PAGE_SIZE = 0x4,
1658};
1659
1660struct mlx5_ifc_resize_field_select_bits {
1661 u8 resize_field_select[0x20];
1662};
1663
1664enum {
1665 MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_PERIOD = 0x1,
1666 MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_MAX_COUNT = 0x2,
1667 MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_OI = 0x4,
1668 MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_C_EQN = 0x8,
1669};
1670
1671struct mlx5_ifc_modify_field_select_bits {
1672 u8 modify_field_select[0x20];
1673};
1674
1675struct mlx5_ifc_field_select_r_roce_np_bits {
1676 u8 field_select_r_roce_np[0x20];
1677};
1678
1679struct mlx5_ifc_field_select_r_roce_rp_bits {
1680 u8 field_select_r_roce_rp[0x20];
1681};
1682
1683enum {
1684 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPPP_MAX_RPS = 0x4,
1685 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_TIME_RESET = 0x8,
1686 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_BYTE_RESET = 0x10,
1687 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_THRESHOLD = 0x20,
1688 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MAX_RATE = 0x40,
1689 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_AI_RATE = 0x80,
1690 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_HAI_RATE = 0x100,
1691 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_GD = 0x200,
1692 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MIN_DEC_FAC = 0x400,
1693 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MIN_RATE = 0x800,
1694};
1695
1696struct mlx5_ifc_field_select_802_1qau_rp_bits {
1697 u8 field_select_8021qaurp[0x20];
1698};
1699
1700struct mlx5_ifc_phys_layer_cntrs_bits {
1701 u8 time_since_last_clear_high[0x20];
1702
1703 u8 time_since_last_clear_low[0x20];
1704
1705 u8 symbol_errors_high[0x20];
1706
1707 u8 symbol_errors_low[0x20];
1708
1709 u8 sync_headers_errors_high[0x20];
1710
1711 u8 sync_headers_errors_low[0x20];
1712
1713 u8 edpl_bip_errors_lane0_high[0x20];
1714
1715 u8 edpl_bip_errors_lane0_low[0x20];
1716
1717 u8 edpl_bip_errors_lane1_high[0x20];
1718
1719 u8 edpl_bip_errors_lane1_low[0x20];
1720
1721 u8 edpl_bip_errors_lane2_high[0x20];
1722
1723 u8 edpl_bip_errors_lane2_low[0x20];
1724
1725 u8 edpl_bip_errors_lane3_high[0x20];
1726
1727 u8 edpl_bip_errors_lane3_low[0x20];
1728
1729 u8 fc_fec_corrected_blocks_lane0_high[0x20];
1730
1731 u8 fc_fec_corrected_blocks_lane0_low[0x20];
1732
1733 u8 fc_fec_corrected_blocks_lane1_high[0x20];
1734
1735 u8 fc_fec_corrected_blocks_lane1_low[0x20];
1736
1737 u8 fc_fec_corrected_blocks_lane2_high[0x20];
1738
1739 u8 fc_fec_corrected_blocks_lane2_low[0x20];
1740
1741 u8 fc_fec_corrected_blocks_lane3_high[0x20];
1742
1743 u8 fc_fec_corrected_blocks_lane3_low[0x20];
1744
1745 u8 fc_fec_uncorrectable_blocks_lane0_high[0x20];
1746
1747 u8 fc_fec_uncorrectable_blocks_lane0_low[0x20];
1748
1749 u8 fc_fec_uncorrectable_blocks_lane1_high[0x20];
1750
1751 u8 fc_fec_uncorrectable_blocks_lane1_low[0x20];
1752
1753 u8 fc_fec_uncorrectable_blocks_lane2_high[0x20];
1754
1755 u8 fc_fec_uncorrectable_blocks_lane2_low[0x20];
1756
1757 u8 fc_fec_uncorrectable_blocks_lane3_high[0x20];
1758
1759 u8 fc_fec_uncorrectable_blocks_lane3_low[0x20];
1760
1761 u8 rs_fec_corrected_blocks_high[0x20];
1762
1763 u8 rs_fec_corrected_blocks_low[0x20];
1764
1765 u8 rs_fec_uncorrectable_blocks_high[0x20];
1766
1767 u8 rs_fec_uncorrectable_blocks_low[0x20];
1768
1769 u8 rs_fec_no_errors_blocks_high[0x20];
1770
1771 u8 rs_fec_no_errors_blocks_low[0x20];
1772
1773 u8 rs_fec_single_error_blocks_high[0x20];
1774
1775 u8 rs_fec_single_error_blocks_low[0x20];
1776
1777 u8 rs_fec_corrected_symbols_total_high[0x20];
1778
1779 u8 rs_fec_corrected_symbols_total_low[0x20];
1780
1781 u8 rs_fec_corrected_symbols_lane0_high[0x20];
1782
1783 u8 rs_fec_corrected_symbols_lane0_low[0x20];
1784
1785 u8 rs_fec_corrected_symbols_lane1_high[0x20];
1786
1787 u8 rs_fec_corrected_symbols_lane1_low[0x20];
1788
1789 u8 rs_fec_corrected_symbols_lane2_high[0x20];
1790
1791 u8 rs_fec_corrected_symbols_lane2_low[0x20];
1792
1793 u8 rs_fec_corrected_symbols_lane3_high[0x20];
1794
1795 u8 rs_fec_corrected_symbols_lane3_low[0x20];
1796
1797 u8 link_down_events[0x20];
1798
1799 u8 successful_recovery_events[0x20];
1800
Matan Barakb4ff3a32016-02-09 14:57:42 +02001801 u8 reserved_at_640[0x180];
Saeed Mahameede2816822015-05-28 22:28:40 +03001802};
1803
Gal Pressmand8dc0502016-09-27 17:04:51 +03001804struct mlx5_ifc_phys_layer_statistical_cntrs_bits {
1805 u8 time_since_last_clear_high[0x20];
1806
1807 u8 time_since_last_clear_low[0x20];
1808
1809 u8 phy_received_bits_high[0x20];
1810
1811 u8 phy_received_bits_low[0x20];
1812
1813 u8 phy_symbol_errors_high[0x20];
1814
1815 u8 phy_symbol_errors_low[0x20];
1816
1817 u8 phy_corrected_bits_high[0x20];
1818
1819 u8 phy_corrected_bits_low[0x20];
1820
1821 u8 phy_corrected_bits_lane0_high[0x20];
1822
1823 u8 phy_corrected_bits_lane0_low[0x20];
1824
1825 u8 phy_corrected_bits_lane1_high[0x20];
1826
1827 u8 phy_corrected_bits_lane1_low[0x20];
1828
1829 u8 phy_corrected_bits_lane2_high[0x20];
1830
1831 u8 phy_corrected_bits_lane2_low[0x20];
1832
1833 u8 phy_corrected_bits_lane3_high[0x20];
1834
1835 u8 phy_corrected_bits_lane3_low[0x20];
1836
1837 u8 reserved_at_200[0x5c0];
1838};
1839
Meny Yossefi1c64bf62016-02-18 18:15:00 +02001840struct mlx5_ifc_ib_port_cntrs_grp_data_layout_bits {
1841 u8 symbol_error_counter[0x10];
1842
1843 u8 link_error_recovery_counter[0x8];
1844
1845 u8 link_downed_counter[0x8];
1846
1847 u8 port_rcv_errors[0x10];
1848
1849 u8 port_rcv_remote_physical_errors[0x10];
1850
1851 u8 port_rcv_switch_relay_errors[0x10];
1852
1853 u8 port_xmit_discards[0x10];
1854
1855 u8 port_xmit_constraint_errors[0x8];
1856
1857 u8 port_rcv_constraint_errors[0x8];
1858
1859 u8 reserved_at_70[0x8];
1860
1861 u8 link_overrun_errors[0x8];
1862
1863 u8 reserved_at_80[0x10];
1864
1865 u8 vl_15_dropped[0x10];
1866
Tim Wright133bea02017-05-01 17:30:08 +01001867 u8 reserved_at_a0[0x80];
1868
1869 u8 port_xmit_wait[0x20];
Meny Yossefi1c64bf62016-02-18 18:15:00 +02001870};
1871
Saeed Mahameede2816822015-05-28 22:28:40 +03001872struct mlx5_ifc_eth_per_traffic_grp_data_layout_bits {
1873 u8 transmit_queue_high[0x20];
1874
1875 u8 transmit_queue_low[0x20];
1876
Matan Barakb4ff3a32016-02-09 14:57:42 +02001877 u8 reserved_at_40[0x780];
Saeed Mahameede2816822015-05-28 22:28:40 +03001878};
1879
1880struct mlx5_ifc_eth_per_prio_grp_data_layout_bits {
1881 u8 rx_octets_high[0x20];
1882
1883 u8 rx_octets_low[0x20];
1884
Matan Barakb4ff3a32016-02-09 14:57:42 +02001885 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001886
1887 u8 rx_frames_high[0x20];
1888
1889 u8 rx_frames_low[0x20];
1890
1891 u8 tx_octets_high[0x20];
1892
1893 u8 tx_octets_low[0x20];
1894
Matan Barakb4ff3a32016-02-09 14:57:42 +02001895 u8 reserved_at_180[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001896
1897 u8 tx_frames_high[0x20];
1898
1899 u8 tx_frames_low[0x20];
1900
1901 u8 rx_pause_high[0x20];
1902
1903 u8 rx_pause_low[0x20];
1904
1905 u8 rx_pause_duration_high[0x20];
1906
1907 u8 rx_pause_duration_low[0x20];
1908
1909 u8 tx_pause_high[0x20];
1910
1911 u8 tx_pause_low[0x20];
1912
1913 u8 tx_pause_duration_high[0x20];
1914
1915 u8 tx_pause_duration_low[0x20];
1916
1917 u8 rx_pause_transition_high[0x20];
1918
1919 u8 rx_pause_transition_low[0x20];
1920
Inbar Karmy2fcb12d2017-08-17 16:39:47 +03001921 u8 reserved_at_3c0[0x40];
1922
1923 u8 device_stall_minor_watermark_cnt_high[0x20];
1924
1925 u8 device_stall_minor_watermark_cnt_low[0x20];
1926
1927 u8 device_stall_critical_watermark_cnt_high[0x20];
1928
1929 u8 device_stall_critical_watermark_cnt_low[0x20];
1930
1931 u8 reserved_at_480[0x340];
Saeed Mahameede2816822015-05-28 22:28:40 +03001932};
1933
1934struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits {
1935 u8 port_transmit_wait_high[0x20];
1936
1937 u8 port_transmit_wait_low[0x20];
1938
Gal Pressman2dba0792017-06-18 14:56:45 +03001939 u8 reserved_at_40[0x100];
1940
1941 u8 rx_buffer_almost_full_high[0x20];
1942
1943 u8 rx_buffer_almost_full_low[0x20];
1944
1945 u8 rx_buffer_full_high[0x20];
1946
1947 u8 rx_buffer_full_low[0x20];
1948
Talat Batheesh0af51072018-05-17 11:14:18 +03001949 u8 rx_icrc_encapsulated_high[0x20];
1950
1951 u8 rx_icrc_encapsulated_low[0x20];
1952
1953 u8 reserved_at_200[0x5c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001954};
1955
1956struct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits {
1957 u8 dot3stats_alignment_errors_high[0x20];
1958
1959 u8 dot3stats_alignment_errors_low[0x20];
1960
1961 u8 dot3stats_fcs_errors_high[0x20];
1962
1963 u8 dot3stats_fcs_errors_low[0x20];
1964
1965 u8 dot3stats_single_collision_frames_high[0x20];
1966
1967 u8 dot3stats_single_collision_frames_low[0x20];
1968
1969 u8 dot3stats_multiple_collision_frames_high[0x20];
1970
1971 u8 dot3stats_multiple_collision_frames_low[0x20];
1972
1973 u8 dot3stats_sqe_test_errors_high[0x20];
1974
1975 u8 dot3stats_sqe_test_errors_low[0x20];
1976
1977 u8 dot3stats_deferred_transmissions_high[0x20];
1978
1979 u8 dot3stats_deferred_transmissions_low[0x20];
1980
1981 u8 dot3stats_late_collisions_high[0x20];
1982
1983 u8 dot3stats_late_collisions_low[0x20];
1984
1985 u8 dot3stats_excessive_collisions_high[0x20];
1986
1987 u8 dot3stats_excessive_collisions_low[0x20];
1988
1989 u8 dot3stats_internal_mac_transmit_errors_high[0x20];
1990
1991 u8 dot3stats_internal_mac_transmit_errors_low[0x20];
1992
1993 u8 dot3stats_carrier_sense_errors_high[0x20];
1994
1995 u8 dot3stats_carrier_sense_errors_low[0x20];
1996
1997 u8 dot3stats_frame_too_longs_high[0x20];
1998
1999 u8 dot3stats_frame_too_longs_low[0x20];
2000
2001 u8 dot3stats_internal_mac_receive_errors_high[0x20];
2002
2003 u8 dot3stats_internal_mac_receive_errors_low[0x20];
2004
2005 u8 dot3stats_symbol_errors_high[0x20];
2006
2007 u8 dot3stats_symbol_errors_low[0x20];
2008
2009 u8 dot3control_in_unknown_opcodes_high[0x20];
2010
2011 u8 dot3control_in_unknown_opcodes_low[0x20];
2012
2013 u8 dot3in_pause_frames_high[0x20];
2014
2015 u8 dot3in_pause_frames_low[0x20];
2016
2017 u8 dot3out_pause_frames_high[0x20];
2018
2019 u8 dot3out_pause_frames_low[0x20];
2020
Matan Barakb4ff3a32016-02-09 14:57:42 +02002021 u8 reserved_at_400[0x3c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002022};
2023
2024struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits {
2025 u8 ether_stats_drop_events_high[0x20];
2026
2027 u8 ether_stats_drop_events_low[0x20];
2028
2029 u8 ether_stats_octets_high[0x20];
2030
2031 u8 ether_stats_octets_low[0x20];
2032
2033 u8 ether_stats_pkts_high[0x20];
2034
2035 u8 ether_stats_pkts_low[0x20];
2036
2037 u8 ether_stats_broadcast_pkts_high[0x20];
2038
2039 u8 ether_stats_broadcast_pkts_low[0x20];
2040
2041 u8 ether_stats_multicast_pkts_high[0x20];
2042
2043 u8 ether_stats_multicast_pkts_low[0x20];
2044
2045 u8 ether_stats_crc_align_errors_high[0x20];
2046
2047 u8 ether_stats_crc_align_errors_low[0x20];
2048
2049 u8 ether_stats_undersize_pkts_high[0x20];
2050
2051 u8 ether_stats_undersize_pkts_low[0x20];
2052
2053 u8 ether_stats_oversize_pkts_high[0x20];
2054
2055 u8 ether_stats_oversize_pkts_low[0x20];
2056
2057 u8 ether_stats_fragments_high[0x20];
2058
2059 u8 ether_stats_fragments_low[0x20];
2060
2061 u8 ether_stats_jabbers_high[0x20];
2062
2063 u8 ether_stats_jabbers_low[0x20];
2064
2065 u8 ether_stats_collisions_high[0x20];
2066
2067 u8 ether_stats_collisions_low[0x20];
2068
2069 u8 ether_stats_pkts64octets_high[0x20];
2070
2071 u8 ether_stats_pkts64octets_low[0x20];
2072
2073 u8 ether_stats_pkts65to127octets_high[0x20];
2074
2075 u8 ether_stats_pkts65to127octets_low[0x20];
2076
2077 u8 ether_stats_pkts128to255octets_high[0x20];
2078
2079 u8 ether_stats_pkts128to255octets_low[0x20];
2080
2081 u8 ether_stats_pkts256to511octets_high[0x20];
2082
2083 u8 ether_stats_pkts256to511octets_low[0x20];
2084
2085 u8 ether_stats_pkts512to1023octets_high[0x20];
2086
2087 u8 ether_stats_pkts512to1023octets_low[0x20];
2088
2089 u8 ether_stats_pkts1024to1518octets_high[0x20];
2090
2091 u8 ether_stats_pkts1024to1518octets_low[0x20];
2092
2093 u8 ether_stats_pkts1519to2047octets_high[0x20];
2094
2095 u8 ether_stats_pkts1519to2047octets_low[0x20];
2096
2097 u8 ether_stats_pkts2048to4095octets_high[0x20];
2098
2099 u8 ether_stats_pkts2048to4095octets_low[0x20];
2100
2101 u8 ether_stats_pkts4096to8191octets_high[0x20];
2102
2103 u8 ether_stats_pkts4096to8191octets_low[0x20];
2104
2105 u8 ether_stats_pkts8192to10239octets_high[0x20];
2106
2107 u8 ether_stats_pkts8192to10239octets_low[0x20];
2108
Matan Barakb4ff3a32016-02-09 14:57:42 +02002109 u8 reserved_at_540[0x280];
Saeed Mahameede2816822015-05-28 22:28:40 +03002110};
2111
2112struct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits {
2113 u8 if_in_octets_high[0x20];
2114
2115 u8 if_in_octets_low[0x20];
2116
2117 u8 if_in_ucast_pkts_high[0x20];
2118
2119 u8 if_in_ucast_pkts_low[0x20];
2120
2121 u8 if_in_discards_high[0x20];
2122
2123 u8 if_in_discards_low[0x20];
2124
2125 u8 if_in_errors_high[0x20];
2126
2127 u8 if_in_errors_low[0x20];
2128
2129 u8 if_in_unknown_protos_high[0x20];
2130
2131 u8 if_in_unknown_protos_low[0x20];
2132
2133 u8 if_out_octets_high[0x20];
2134
2135 u8 if_out_octets_low[0x20];
2136
2137 u8 if_out_ucast_pkts_high[0x20];
2138
2139 u8 if_out_ucast_pkts_low[0x20];
2140
2141 u8 if_out_discards_high[0x20];
2142
2143 u8 if_out_discards_low[0x20];
2144
2145 u8 if_out_errors_high[0x20];
2146
2147 u8 if_out_errors_low[0x20];
2148
2149 u8 if_in_multicast_pkts_high[0x20];
2150
2151 u8 if_in_multicast_pkts_low[0x20];
2152
2153 u8 if_in_broadcast_pkts_high[0x20];
2154
2155 u8 if_in_broadcast_pkts_low[0x20];
2156
2157 u8 if_out_multicast_pkts_high[0x20];
2158
2159 u8 if_out_multicast_pkts_low[0x20];
2160
2161 u8 if_out_broadcast_pkts_high[0x20];
2162
2163 u8 if_out_broadcast_pkts_low[0x20];
2164
Matan Barakb4ff3a32016-02-09 14:57:42 +02002165 u8 reserved_at_340[0x480];
Saeed Mahameede2816822015-05-28 22:28:40 +03002166};
2167
2168struct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits {
2169 u8 a_frames_transmitted_ok_high[0x20];
2170
2171 u8 a_frames_transmitted_ok_low[0x20];
2172
2173 u8 a_frames_received_ok_high[0x20];
2174
2175 u8 a_frames_received_ok_low[0x20];
2176
2177 u8 a_frame_check_sequence_errors_high[0x20];
2178
2179 u8 a_frame_check_sequence_errors_low[0x20];
2180
2181 u8 a_alignment_errors_high[0x20];
2182
2183 u8 a_alignment_errors_low[0x20];
2184
2185 u8 a_octets_transmitted_ok_high[0x20];
2186
2187 u8 a_octets_transmitted_ok_low[0x20];
2188
2189 u8 a_octets_received_ok_high[0x20];
2190
2191 u8 a_octets_received_ok_low[0x20];
2192
2193 u8 a_multicast_frames_xmitted_ok_high[0x20];
2194
2195 u8 a_multicast_frames_xmitted_ok_low[0x20];
2196
2197 u8 a_broadcast_frames_xmitted_ok_high[0x20];
2198
2199 u8 a_broadcast_frames_xmitted_ok_low[0x20];
2200
2201 u8 a_multicast_frames_received_ok_high[0x20];
2202
2203 u8 a_multicast_frames_received_ok_low[0x20];
2204
2205 u8 a_broadcast_frames_received_ok_high[0x20];
2206
2207 u8 a_broadcast_frames_received_ok_low[0x20];
2208
2209 u8 a_in_range_length_errors_high[0x20];
2210
2211 u8 a_in_range_length_errors_low[0x20];
2212
2213 u8 a_out_of_range_length_field_high[0x20];
2214
2215 u8 a_out_of_range_length_field_low[0x20];
2216
2217 u8 a_frame_too_long_errors_high[0x20];
2218
2219 u8 a_frame_too_long_errors_low[0x20];
2220
2221 u8 a_symbol_error_during_carrier_high[0x20];
2222
2223 u8 a_symbol_error_during_carrier_low[0x20];
2224
2225 u8 a_mac_control_frames_transmitted_high[0x20];
2226
2227 u8 a_mac_control_frames_transmitted_low[0x20];
2228
2229 u8 a_mac_control_frames_received_high[0x20];
2230
2231 u8 a_mac_control_frames_received_low[0x20];
2232
2233 u8 a_unsupported_opcodes_received_high[0x20];
2234
2235 u8 a_unsupported_opcodes_received_low[0x20];
2236
2237 u8 a_pause_mac_ctrl_frames_received_high[0x20];
2238
2239 u8 a_pause_mac_ctrl_frames_received_low[0x20];
2240
2241 u8 a_pause_mac_ctrl_frames_transmitted_high[0x20];
2242
2243 u8 a_pause_mac_ctrl_frames_transmitted_low[0x20];
2244
Matan Barakb4ff3a32016-02-09 14:57:42 +02002245 u8 reserved_at_4c0[0x300];
Saeed Mahameede2816822015-05-28 22:28:40 +03002246};
2247
Gal Pressman8ed1a632016-11-17 13:46:01 +02002248struct mlx5_ifc_pcie_perf_cntrs_grp_data_layout_bits {
2249 u8 life_time_counter_high[0x20];
2250
2251 u8 life_time_counter_low[0x20];
2252
2253 u8 rx_errors[0x20];
2254
2255 u8 tx_errors[0x20];
2256
2257 u8 l0_to_recovery_eieos[0x20];
2258
2259 u8 l0_to_recovery_ts[0x20];
2260
2261 u8 l0_to_recovery_framing[0x20];
2262
2263 u8 l0_to_recovery_retrain[0x20];
2264
2265 u8 crc_error_dllp[0x20];
2266
2267 u8 crc_error_tlp[0x20];
2268
Eran Ben Elishaefae7f72017-05-12 02:47:02 +03002269 u8 tx_overflow_buffer_pkt_high[0x20];
2270
2271 u8 tx_overflow_buffer_pkt_low[0x20];
Gal Pressman5405fa22017-06-15 18:29:23 +03002272
2273 u8 outbound_stalled_reads[0x20];
2274
2275 u8 outbound_stalled_writes[0x20];
2276
2277 u8 outbound_stalled_reads_events[0x20];
2278
2279 u8 outbound_stalled_writes_events[0x20];
2280
2281 u8 reserved_at_200[0x5c0];
Gal Pressman8ed1a632016-11-17 13:46:01 +02002282};
2283
Saeed Mahameede2816822015-05-28 22:28:40 +03002284struct mlx5_ifc_cmd_inter_comp_event_bits {
2285 u8 command_completion_vector[0x20];
2286
Matan Barakb4ff3a32016-02-09 14:57:42 +02002287 u8 reserved_at_20[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002288};
2289
2290struct mlx5_ifc_stall_vl_event_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002291 u8 reserved_at_0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002292 u8 port_num[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002293 u8 reserved_at_19[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002294 u8 vl[0x4];
2295
Matan Barakb4ff3a32016-02-09 14:57:42 +02002296 u8 reserved_at_20[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002297};
2298
2299struct mlx5_ifc_db_bf_congestion_event_bits {
2300 u8 event_subtype[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002301 u8 reserved_at_8[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002302 u8 congestion_level[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002303 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002304
Matan Barakb4ff3a32016-02-09 14:57:42 +02002305 u8 reserved_at_20[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002306};
2307
2308struct mlx5_ifc_gpio_event_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002309 u8 reserved_at_0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03002310
2311 u8 gpio_event_hi[0x20];
2312
2313 u8 gpio_event_lo[0x20];
2314
Matan Barakb4ff3a32016-02-09 14:57:42 +02002315 u8 reserved_at_a0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002316};
2317
2318struct mlx5_ifc_port_state_change_event_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002319 u8 reserved_at_0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002320
2321 u8 port_num[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002322 u8 reserved_at_44[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03002323
Matan Barakb4ff3a32016-02-09 14:57:42 +02002324 u8 reserved_at_60[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03002325};
2326
2327struct mlx5_ifc_dropped_packet_logged_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002328 u8 reserved_at_0[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002329};
2330
2331enum {
2332 MLX5_CQ_ERROR_SYNDROME_CQ_OVERRUN = 0x1,
2333 MLX5_CQ_ERROR_SYNDROME_CQ_ACCESS_VIOLATION_ERROR = 0x2,
2334};
2335
2336struct mlx5_ifc_cq_error_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002337 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002338 u8 cqn[0x18];
2339
Matan Barakb4ff3a32016-02-09 14:57:42 +02002340 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002341
Matan Barakb4ff3a32016-02-09 14:57:42 +02002342 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002343 u8 syndrome[0x8];
2344
Matan Barakb4ff3a32016-02-09 14:57:42 +02002345 u8 reserved_at_60[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03002346};
2347
2348struct mlx5_ifc_rdma_page_fault_event_bits {
2349 u8 bytes_committed[0x20];
2350
2351 u8 r_key[0x20];
2352
Matan Barakb4ff3a32016-02-09 14:57:42 +02002353 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002354 u8 packet_len[0x10];
2355
2356 u8 rdma_op_len[0x20];
2357
2358 u8 rdma_va[0x40];
2359
Matan Barakb4ff3a32016-02-09 14:57:42 +02002360 u8 reserved_at_c0[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03002361 u8 rdma[0x1];
2362 u8 write[0x1];
2363 u8 requestor[0x1];
2364 u8 qp_number[0x18];
2365};
2366
2367struct mlx5_ifc_wqe_associated_page_fault_event_bits {
2368 u8 bytes_committed[0x20];
2369
Matan Barakb4ff3a32016-02-09 14:57:42 +02002370 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002371 u8 wqe_index[0x10];
2372
Matan Barakb4ff3a32016-02-09 14:57:42 +02002373 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002374 u8 len[0x10];
2375
Matan Barakb4ff3a32016-02-09 14:57:42 +02002376 u8 reserved_at_60[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03002377
Matan Barakb4ff3a32016-02-09 14:57:42 +02002378 u8 reserved_at_c0[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03002379 u8 rdma[0x1];
2380 u8 write_read[0x1];
2381 u8 requestor[0x1];
2382 u8 qpn[0x18];
2383};
2384
2385struct mlx5_ifc_qp_events_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002386 u8 reserved_at_0[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002387
2388 u8 type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002389 u8 reserved_at_a8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002390
Matan Barakb4ff3a32016-02-09 14:57:42 +02002391 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002392 u8 qpn_rqn_sqn[0x18];
2393};
2394
2395struct mlx5_ifc_dct_events_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002396 u8 reserved_at_0[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002397
Matan Barakb4ff3a32016-02-09 14:57:42 +02002398 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002399 u8 dct_number[0x18];
2400};
2401
2402struct mlx5_ifc_comp_event_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002403 u8 reserved_at_0[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002404
Matan Barakb4ff3a32016-02-09 14:57:42 +02002405 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002406 u8 cq_number[0x18];
2407};
2408
2409enum {
2410 MLX5_QPC_STATE_RST = 0x0,
2411 MLX5_QPC_STATE_INIT = 0x1,
2412 MLX5_QPC_STATE_RTR = 0x2,
2413 MLX5_QPC_STATE_RTS = 0x3,
2414 MLX5_QPC_STATE_SQER = 0x4,
2415 MLX5_QPC_STATE_ERR = 0x6,
2416 MLX5_QPC_STATE_SQD = 0x7,
2417 MLX5_QPC_STATE_SUSPENDED = 0x9,
2418};
2419
2420enum {
2421 MLX5_QPC_ST_RC = 0x0,
2422 MLX5_QPC_ST_UC = 0x1,
2423 MLX5_QPC_ST_UD = 0x2,
2424 MLX5_QPC_ST_XRC = 0x3,
2425 MLX5_QPC_ST_DCI = 0x5,
2426 MLX5_QPC_ST_QP0 = 0x7,
2427 MLX5_QPC_ST_QP1 = 0x8,
2428 MLX5_QPC_ST_RAW_DATAGRAM = 0x9,
2429 MLX5_QPC_ST_REG_UMR = 0xc,
2430};
2431
2432enum {
2433 MLX5_QPC_PM_STATE_ARMED = 0x0,
2434 MLX5_QPC_PM_STATE_REARM = 0x1,
2435 MLX5_QPC_PM_STATE_RESERVED = 0x2,
2436 MLX5_QPC_PM_STATE_MIGRATED = 0x3,
2437};
2438
2439enum {
Artemy Kovalyov6e446362017-08-15 11:59:02 +03002440 MLX5_QPC_OFFLOAD_TYPE_RNDV = 0x1,
2441};
2442
2443enum {
Saeed Mahameede2816822015-05-28 22:28:40 +03002444 MLX5_QPC_END_PADDING_MODE_SCATTER_AS_IS = 0x0,
2445 MLX5_QPC_END_PADDING_MODE_PAD_TO_CACHE_LINE_ALIGNMENT = 0x1,
2446};
2447
2448enum {
2449 MLX5_QPC_MTU_256_BYTES = 0x1,
2450 MLX5_QPC_MTU_512_BYTES = 0x2,
2451 MLX5_QPC_MTU_1K_BYTES = 0x3,
2452 MLX5_QPC_MTU_2K_BYTES = 0x4,
2453 MLX5_QPC_MTU_4K_BYTES = 0x5,
2454 MLX5_QPC_MTU_RAW_ETHERNET_QP = 0x7,
2455};
2456
2457enum {
2458 MLX5_QPC_ATOMIC_MODE_IB_SPEC = 0x1,
2459 MLX5_QPC_ATOMIC_MODE_ONLY_8B = 0x2,
2460 MLX5_QPC_ATOMIC_MODE_UP_TO_8B = 0x3,
2461 MLX5_QPC_ATOMIC_MODE_UP_TO_16B = 0x4,
2462 MLX5_QPC_ATOMIC_MODE_UP_TO_32B = 0x5,
2463 MLX5_QPC_ATOMIC_MODE_UP_TO_64B = 0x6,
2464 MLX5_QPC_ATOMIC_MODE_UP_TO_128B = 0x7,
2465 MLX5_QPC_ATOMIC_MODE_UP_TO_256B = 0x8,
2466};
2467
2468enum {
2469 MLX5_QPC_CS_REQ_DISABLE = 0x0,
2470 MLX5_QPC_CS_REQ_UP_TO_32B = 0x11,
2471 MLX5_QPC_CS_REQ_UP_TO_64B = 0x22,
2472};
2473
2474enum {
2475 MLX5_QPC_CS_RES_DISABLE = 0x0,
2476 MLX5_QPC_CS_RES_UP_TO_32B = 0x1,
2477 MLX5_QPC_CS_RES_UP_TO_64B = 0x2,
2478};
2479
2480struct mlx5_ifc_qpc_bits {
2481 u8 state[0x4];
Aviv Heller84df61e2016-05-10 13:47:50 +03002482 u8 lag_tx_port_affinity[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002483 u8 st[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002484 u8 reserved_at_10[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002485 u8 pm_state[0x2];
Danit Goldberg3fd3c802018-11-30 13:22:04 +02002486 u8 reserved_at_15[0x1];
2487 u8 req_e2e_credit_mode[0x2];
Artemy Kovalyov6e446362017-08-15 11:59:02 +03002488 u8 offload_type[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002489 u8 end_padding_mode[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002490 u8 reserved_at_1e[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002491
2492 u8 wq_signature[0x1];
2493 u8 block_lb_mc[0x1];
2494 u8 atomic_like_write_en[0x1];
2495 u8 latency_sensitive[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002496 u8 reserved_at_24[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002497 u8 drain_sigerr[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002498 u8 reserved_at_26[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002499 u8 pd[0x18];
2500
2501 u8 mtu[0x3];
2502 u8 log_msg_max[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002503 u8 reserved_at_48[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002504 u8 log_rq_size[0x4];
2505 u8 log_rq_stride[0x3];
2506 u8 no_sq[0x1];
2507 u8 log_sq_size[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002508 u8 reserved_at_55[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03002509 u8 rlky[0x1];
Erez Shitrit1015c2e2016-02-21 16:27:16 +02002510 u8 ulp_stateless_offload_mode[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002511
2512 u8 counter_set_id[0x8];
2513 u8 uar_page[0x18];
2514
Matan Barakb4ff3a32016-02-09 14:57:42 +02002515 u8 reserved_at_80[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002516 u8 user_index[0x18];
2517
Matan Barakb4ff3a32016-02-09 14:57:42 +02002518 u8 reserved_at_a0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002519 u8 log_page_size[0x5];
2520 u8 remote_qpn[0x18];
2521
2522 struct mlx5_ifc_ads_bits primary_address_path;
2523
2524 struct mlx5_ifc_ads_bits secondary_address_path;
2525
2526 u8 log_ack_req_freq[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002527 u8 reserved_at_384[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002528 u8 log_sra_max[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002529 u8 reserved_at_38b[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002530 u8 retry_count[0x3];
2531 u8 rnr_retry[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002532 u8 reserved_at_393[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002533 u8 fre[0x1];
2534 u8 cur_rnr_retry[0x3];
2535 u8 cur_retry_count[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002536 u8 reserved_at_39b[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03002537
Matan Barakb4ff3a32016-02-09 14:57:42 +02002538 u8 reserved_at_3a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002539
Matan Barakb4ff3a32016-02-09 14:57:42 +02002540 u8 reserved_at_3c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002541 u8 next_send_psn[0x18];
2542
Matan Barakb4ff3a32016-02-09 14:57:42 +02002543 u8 reserved_at_3e0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002544 u8 cqn_snd[0x18];
2545
Saeed Mahameed09a7d9e2016-07-19 01:17:59 +03002546 u8 reserved_at_400[0x8];
2547 u8 deth_sqpn[0x18];
2548
2549 u8 reserved_at_420[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002550
Matan Barakb4ff3a32016-02-09 14:57:42 +02002551 u8 reserved_at_440[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002552 u8 last_acked_psn[0x18];
2553
Matan Barakb4ff3a32016-02-09 14:57:42 +02002554 u8 reserved_at_460[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002555 u8 ssn[0x18];
2556
Matan Barakb4ff3a32016-02-09 14:57:42 +02002557 u8 reserved_at_480[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002558 u8 log_rra_max[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002559 u8 reserved_at_48b[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002560 u8 atomic_mode[0x4];
2561 u8 rre[0x1];
2562 u8 rwe[0x1];
2563 u8 rae[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002564 u8 reserved_at_493[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002565 u8 page_offset[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002566 u8 reserved_at_49a[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002567 u8 cd_slave_receive[0x1];
2568 u8 cd_slave_send[0x1];
2569 u8 cd_master[0x1];
2570
Matan Barakb4ff3a32016-02-09 14:57:42 +02002571 u8 reserved_at_4a0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002572 u8 min_rnr_nak[0x5];
2573 u8 next_rcv_psn[0x18];
2574
Matan Barakb4ff3a32016-02-09 14:57:42 +02002575 u8 reserved_at_4c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002576 u8 xrcd[0x18];
2577
Matan Barakb4ff3a32016-02-09 14:57:42 +02002578 u8 reserved_at_4e0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002579 u8 cqn_rcv[0x18];
2580
2581 u8 dbr_addr[0x40];
2582
2583 u8 q_key[0x20];
2584
Matan Barakb4ff3a32016-02-09 14:57:42 +02002585 u8 reserved_at_560[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03002586 u8 rq_type[0x3];
Saeed Mahameed74862162016-06-09 15:11:34 +03002587 u8 srqn_rmpn_xrqn[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002588
Matan Barakb4ff3a32016-02-09 14:57:42 +02002589 u8 reserved_at_580[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002590 u8 rmsn[0x18];
2591
2592 u8 hw_sq_wqebb_counter[0x10];
2593 u8 sw_sq_wqebb_counter[0x10];
2594
2595 u8 hw_rq_counter[0x20];
2596
2597 u8 sw_rq_counter[0x20];
2598
Matan Barakb4ff3a32016-02-09 14:57:42 +02002599 u8 reserved_at_600[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002600
Matan Barakb4ff3a32016-02-09 14:57:42 +02002601 u8 reserved_at_620[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03002602 u8 cgs[0x1];
2603 u8 cs_req[0x8];
2604 u8 cs_res[0x8];
2605
2606 u8 dc_access_key[0x40];
2607
Leon Romanovskybd371972018-09-20 21:35:26 +03002608 u8 reserved_at_680[0x3];
2609 u8 dbr_umem_valid[0x1];
2610
2611 u8 reserved_at_684[0xbc];
Saeed Mahameede2816822015-05-28 22:28:40 +03002612};
2613
2614struct mlx5_ifc_roce_addr_layout_bits {
2615 u8 source_l3_address[16][0x8];
2616
Matan Barakb4ff3a32016-02-09 14:57:42 +02002617 u8 reserved_at_80[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002618 u8 vlan_valid[0x1];
2619 u8 vlan_id[0xc];
2620 u8 source_mac_47_32[0x10];
2621
2622 u8 source_mac_31_0[0x20];
2623
Matan Barakb4ff3a32016-02-09 14:57:42 +02002624 u8 reserved_at_c0[0x14];
Saeed Mahameede2816822015-05-28 22:28:40 +03002625 u8 roce_l3_type[0x4];
2626 u8 roce_version[0x8];
2627
Matan Barakb4ff3a32016-02-09 14:57:42 +02002628 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002629};
2630
2631union mlx5_ifc_hca_cap_union_bits {
2632 struct mlx5_ifc_cmd_hca_cap_bits cmd_hca_cap;
2633 struct mlx5_ifc_odp_cap_bits odp_cap;
2634 struct mlx5_ifc_atomic_caps_bits atomic_caps;
2635 struct mlx5_ifc_roce_cap_bits roce_cap;
2636 struct mlx5_ifc_per_protocol_networking_offload_caps_bits per_protocol_networking_offload_caps;
2637 struct mlx5_ifc_flow_table_nic_cap_bits flow_table_nic_cap;
Saeed Mahameed495716b2015-12-01 18:03:19 +02002638 struct mlx5_ifc_flow_table_eswitch_cap_bits flow_table_eswitch_cap;
Saeed Mahameedd6666752015-12-01 18:03:22 +02002639 struct mlx5_ifc_e_switch_cap_bits e_switch_cap;
Sagi Grimberg3f0393a2016-02-23 10:25:23 +02002640 struct mlx5_ifc_vector_calc_cap_bits vector_calc_cap;
Saeed Mahameed74862162016-06-09 15:11:34 +03002641 struct mlx5_ifc_qos_cap_bits qos_cap;
Moshe Shemesh0b9055a2019-05-29 22:50:24 +00002642 struct mlx5_ifc_debug_cap_bits debug_cap;
Ilan Tayarie29341f2017-03-13 20:05:45 +02002643 struct mlx5_ifc_fpga_cap_bits fpga_cap;
Eran Ben Elishaa12ff352019-04-03 13:05:50 +03002644 struct mlx5_ifc_tls_cap_bits tls_cap;
Matan Barakb4ff3a32016-02-09 14:57:42 +02002645 u8 reserved_at_0[0x8000];
Saeed Mahameede2816822015-05-28 22:28:40 +03002646};
2647
2648enum {
2649 MLX5_FLOW_CONTEXT_ACTION_ALLOW = 0x1,
2650 MLX5_FLOW_CONTEXT_ACTION_DROP = 0x2,
2651 MLX5_FLOW_CONTEXT_ACTION_FWD_DEST = 0x4,
Amir Vadai9dc0b282016-05-13 12:55:39 +00002652 MLX5_FLOW_CONTEXT_ACTION_COUNT = 0x8,
Mark Bloch60786f02018-08-28 14:18:46 +03002653 MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT = 0x10,
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03002654 MLX5_FLOW_CONTEXT_ACTION_DECAP = 0x20,
Or Gerlitz2a69cb92017-01-19 19:31:25 +02002655 MLX5_FLOW_CONTEXT_ACTION_MOD_HDR = 0x40,
Or Gerlitz0c068972018-01-28 20:14:20 +02002656 MLX5_FLOW_CONTEXT_ACTION_VLAN_POP = 0x80,
2657 MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH = 0x100,
Jianbo Liu8da6fe22018-07-16 18:35:32 -07002658 MLX5_FLOW_CONTEXT_ACTION_VLAN_POP_2 = 0x400,
2659 MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH_2 = 0x800,
Or Gerlitz0c068972018-01-28 20:14:20 +02002660};
2661
Jianbo Liu65c0f2c2019-06-25 17:47:50 +00002662enum {
2663 MLX5_FLOW_CONTEXT_FLOW_SOURCE_ANY_VPORT = 0x0,
2664 MLX5_FLOW_CONTEXT_FLOW_SOURCE_UPLINK = 0x1,
2665 MLX5_FLOW_CONTEXT_FLOW_SOURCE_LOCAL_VPORT = 0x2,
2666};
2667
Or Gerlitz0c068972018-01-28 20:14:20 +02002668struct mlx5_ifc_vlan_bits {
2669 u8 ethtype[0x10];
2670 u8 prio[0x3];
2671 u8 cfi[0x1];
2672 u8 vid[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03002673};
2674
2675struct mlx5_ifc_flow_context_bits {
Or Gerlitz0c068972018-01-28 20:14:20 +02002676 struct mlx5_ifc_vlan_bits push_vlan;
Saeed Mahameede2816822015-05-28 22:28:40 +03002677
2678 u8 group_id[0x20];
2679
Matan Barakb4ff3a32016-02-09 14:57:42 +02002680 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002681 u8 flow_tag[0x18];
2682
Matan Barakb4ff3a32016-02-09 14:57:42 +02002683 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002684 u8 action[0x10];
2685
Eli Britstein1b115492018-12-10 13:15:14 -08002686 u8 extended_destination[0x1];
Jianbo Liu65c0f2c2019-06-25 17:47:50 +00002687 u8 reserved_at_81[0x1];
2688 u8 flow_source[0x2];
2689 u8 reserved_at_84[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002690 u8 destination_list_size[0x18];
2691
Amir Vadai9dc0b282016-05-13 12:55:39 +00002692 u8 reserved_at_a0[0x8];
2693 u8 flow_counter_list_size[0x18];
2694
Mark Bloch60786f02018-08-28 14:18:46 +03002695 u8 packet_reformat_id[0x20];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03002696
Or Gerlitz2a69cb92017-01-19 19:31:25 +02002697 u8 modify_header_id[0x20];
2698
Jianbo Liu8da6fe22018-07-16 18:35:32 -07002699 struct mlx5_ifc_vlan_bits push_vlan_2;
2700
2701 u8 reserved_at_120[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002702
2703 struct mlx5_ifc_fte_match_param_bits match_value;
2704
Matan Barakb4ff3a32016-02-09 14:57:42 +02002705 u8 reserved_at_1200[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03002706
Amir Vadai9dc0b282016-05-13 12:55:39 +00002707 union mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits destination[0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002708};
2709
2710enum {
2711 MLX5_XRC_SRQC_STATE_GOOD = 0x0,
2712 MLX5_XRC_SRQC_STATE_ERROR = 0x1,
2713};
2714
2715struct mlx5_ifc_xrc_srqc_bits {
2716 u8 state[0x4];
2717 u8 log_xrc_srq_size[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002718 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002719
2720 u8 wq_signature[0x1];
2721 u8 cont_srq[0x1];
Yishai Hadas99b77fe2018-10-31 12:20:28 +02002722 u8 reserved_at_22[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002723 u8 rlky[0x1];
2724 u8 basic_cyclic_rcv_wqe[0x1];
2725 u8 log_rq_stride[0x3];
2726 u8 xrcd[0x18];
2727
2728 u8 page_offset[0x6];
Yishai Hadas99b77fe2018-10-31 12:20:28 +02002729 u8 reserved_at_46[0x1];
2730 u8 dbr_umem_valid[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002731 u8 cqn[0x18];
2732
Matan Barakb4ff3a32016-02-09 14:57:42 +02002733 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002734
2735 u8 user_index_equal_xrc_srqn[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002736 u8 reserved_at_81[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002737 u8 log_page_size[0x6];
2738 u8 user_index[0x18];
2739
Matan Barakb4ff3a32016-02-09 14:57:42 +02002740 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002741
Matan Barakb4ff3a32016-02-09 14:57:42 +02002742 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002743 u8 pd[0x18];
2744
2745 u8 lwm[0x10];
2746 u8 wqe_cnt[0x10];
2747
Matan Barakb4ff3a32016-02-09 14:57:42 +02002748 u8 reserved_at_100[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002749
2750 u8 db_record_addr_h[0x20];
2751
2752 u8 db_record_addr_l[0x1e];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002753 u8 reserved_at_17e[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002754
Matan Barakb4ff3a32016-02-09 14:57:42 +02002755 u8 reserved_at_180[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03002756};
2757
Moshe Shemesh61c5b5c2018-01-07 16:45:27 +02002758struct mlx5_ifc_vnic_diagnostic_statistics_bits {
2759 u8 counter_error_queues[0x20];
2760
2761 u8 total_error_queues[0x20];
2762
2763 u8 send_queue_priority_update_flow[0x20];
2764
2765 u8 reserved_at_60[0x20];
2766
2767 u8 nic_receive_steering_discard[0x40];
2768
2769 u8 receive_discard_vport_down[0x40];
2770
2771 u8 transmit_discard_vport_down[0x40];
2772
2773 u8 reserved_at_140[0xec0];
2774};
2775
Saeed Mahameede2816822015-05-28 22:28:40 +03002776struct mlx5_ifc_traffic_counter_bits {
2777 u8 packets[0x40];
2778
2779 u8 octets[0x40];
2780};
2781
2782struct mlx5_ifc_tisc_bits {
Aviv Heller84df61e2016-05-10 13:47:50 +03002783 u8 strict_lag_tx_port_affinity[0x1];
Eran Ben Elishaa12ff352019-04-03 13:05:50 +03002784 u8 tls_en[0x1];
Saeed Mahameed7761f9e2019-07-29 21:12:56 +00002785 u8 reserved_at_2[0x2];
Aviv Heller84df61e2016-05-10 13:47:50 +03002786 u8 lag_tx_port_affinity[0x04];
2787
2788 u8 reserved_at_8[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002789 u8 prio[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002790 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002791
Matan Barakb4ff3a32016-02-09 14:57:42 +02002792 u8 reserved_at_20[0x100];
Saeed Mahameede2816822015-05-28 22:28:40 +03002793
Matan Barakb4ff3a32016-02-09 14:57:42 +02002794 u8 reserved_at_120[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002795 u8 transport_domain[0x18];
2796
Erez Shitrit500a3d02017-04-13 06:36:51 +03002797 u8 reserved_at_140[0x8];
2798 u8 underlay_qpn[0x18];
Eran Ben Elishaa12ff352019-04-03 13:05:50 +03002799
2800 u8 reserved_at_160[0x8];
2801 u8 pd[0x18];
2802
2803 u8 reserved_at_180[0x380];
Saeed Mahameede2816822015-05-28 22:28:40 +03002804};
2805
2806enum {
2807 MLX5_TIRC_DISP_TYPE_DIRECT = 0x0,
2808 MLX5_TIRC_DISP_TYPE_INDIRECT = 0x1,
2809};
2810
2811enum {
2812 MLX5_TIRC_LRO_ENABLE_MASK_IPV4_LRO = 0x1,
2813 MLX5_TIRC_LRO_ENABLE_MASK_IPV6_LRO = 0x2,
2814};
2815
2816enum {
Saeed Mahameed2be69672015-07-23 23:35:56 +03002817 MLX5_RX_HASH_FN_NONE = 0x0,
2818 MLX5_RX_HASH_FN_INVERTED_XOR8 = 0x1,
2819 MLX5_RX_HASH_FN_TOEPLITZ = 0x2,
Saeed Mahameede2816822015-05-28 22:28:40 +03002820};
2821
2822enum {
Mark Bloch5d773ff2018-09-17 13:30:46 +03002823 MLX5_TIRC_SELF_LB_BLOCK_BLOCK_UNICAST = 0x1,
2824 MLX5_TIRC_SELF_LB_BLOCK_BLOCK_MULTICAST = 0x2,
Saeed Mahameede2816822015-05-28 22:28:40 +03002825};
2826
2827struct mlx5_ifc_tirc_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002828 u8 reserved_at_0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002829
2830 u8 disp_type[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002831 u8 reserved_at_24[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03002832
Matan Barakb4ff3a32016-02-09 14:57:42 +02002833 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002834
Matan Barakb4ff3a32016-02-09 14:57:42 +02002835 u8 reserved_at_80[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002836 u8 lro_timeout_period_usecs[0x10];
2837 u8 lro_enable_mask[0x4];
2838 u8 lro_max_ip_payload_size[0x8];
2839
Matan Barakb4ff3a32016-02-09 14:57:42 +02002840 u8 reserved_at_a0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002841
Matan Barakb4ff3a32016-02-09 14:57:42 +02002842 u8 reserved_at_e0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002843 u8 inline_rqn[0x18];
2844
2845 u8 rx_hash_symmetric[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002846 u8 reserved_at_101[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002847 u8 tunneled_offload_en[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002848 u8 reserved_at_103[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03002849 u8 indirect_table[0x18];
2850
2851 u8 rx_hash_fn[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002852 u8 reserved_at_124[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002853 u8 self_lb_block[0x2];
2854 u8 transport_domain[0x18];
2855
2856 u8 rx_hash_toeplitz_key[10][0x20];
2857
2858 struct mlx5_ifc_rx_hash_field_select_bits rx_hash_field_selector_outer;
2859
2860 struct mlx5_ifc_rx_hash_field_select_bits rx_hash_field_selector_inner;
2861
Matan Barakb4ff3a32016-02-09 14:57:42 +02002862 u8 reserved_at_2c0[0x4c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002863};
2864
2865enum {
2866 MLX5_SRQC_STATE_GOOD = 0x0,
2867 MLX5_SRQC_STATE_ERROR = 0x1,
2868};
2869
2870struct mlx5_ifc_srqc_bits {
2871 u8 state[0x4];
2872 u8 log_srq_size[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002873 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002874
2875 u8 wq_signature[0x1];
2876 u8 cont_srq[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002877 u8 reserved_at_22[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002878 u8 rlky[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002879 u8 reserved_at_24[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002880 u8 log_rq_stride[0x3];
2881 u8 xrcd[0x18];
2882
2883 u8 page_offset[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002884 u8 reserved_at_46[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002885 u8 cqn[0x18];
2886
Matan Barakb4ff3a32016-02-09 14:57:42 +02002887 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002888
Matan Barakb4ff3a32016-02-09 14:57:42 +02002889 u8 reserved_at_80[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002890 u8 log_page_size[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002891 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002892
Matan Barakb4ff3a32016-02-09 14:57:42 +02002893 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002894
Matan Barakb4ff3a32016-02-09 14:57:42 +02002895 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002896 u8 pd[0x18];
2897
2898 u8 lwm[0x10];
2899 u8 wqe_cnt[0x10];
2900
Matan Barakb4ff3a32016-02-09 14:57:42 +02002901 u8 reserved_at_100[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002902
Haggai Abramonvsky01949d02015-06-04 19:30:38 +03002903 u8 dbr_addr[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002904
Matan Barakb4ff3a32016-02-09 14:57:42 +02002905 u8 reserved_at_180[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03002906};
2907
2908enum {
2909 MLX5_SQC_STATE_RST = 0x0,
2910 MLX5_SQC_STATE_RDY = 0x1,
2911 MLX5_SQC_STATE_ERR = 0x3,
2912};
2913
2914struct mlx5_ifc_sqc_bits {
2915 u8 rlky[0x1];
2916 u8 cd_master[0x1];
2917 u8 fre[0x1];
2918 u8 flush_in_error_en[0x1];
Bodong Wang795b6092017-08-17 15:52:34 +03002919 u8 allow_multi_pkt_send_wqe[0x1];
Hadar Hen Zioncff92d72016-07-24 16:12:40 +03002920 u8 min_wqe_inline_mode[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002921 u8 state[0x4];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03002922 u8 reg_umr[0x1];
Ilan Tayari547eede2017-04-18 16:04:28 +03002923 u8 allow_swp[0x1];
Or Gerlitz40817cd2017-06-25 12:38:45 +03002924 u8 hairpin[0x1];
2925 u8 reserved_at_f[0x11];
Saeed Mahameede2816822015-05-28 22:28:40 +03002926
Matan Barakb4ff3a32016-02-09 14:57:42 +02002927 u8 reserved_at_20[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002928 u8 user_index[0x18];
2929
Matan Barakb4ff3a32016-02-09 14:57:42 +02002930 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002931 u8 cqn[0x18];
2932
Or Gerlitz40817cd2017-06-25 12:38:45 +03002933 u8 reserved_at_60[0x8];
2934 u8 hairpin_peer_rq[0x18];
2935
2936 u8 reserved_at_80[0x10];
2937 u8 hairpin_peer_vhca[0x10];
2938
2939 u8 reserved_at_a0[0x50];
Saeed Mahameede2816822015-05-28 22:28:40 +03002940
Saeed Mahameed74862162016-06-09 15:11:34 +03002941 u8 packet_pacing_rate_limit_index[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002942 u8 tis_lst_sz[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002943 u8 reserved_at_110[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002944
Matan Barakb4ff3a32016-02-09 14:57:42 +02002945 u8 reserved_at_120[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002946
Matan Barakb4ff3a32016-02-09 14:57:42 +02002947 u8 reserved_at_160[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002948 u8 tis_num_0[0x18];
2949
2950 struct mlx5_ifc_wq_bits wq;
2951};
2952
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03002953enum {
2954 SCHEDULING_CONTEXT_ELEMENT_TYPE_TSAR = 0x0,
2955 SCHEDULING_CONTEXT_ELEMENT_TYPE_VPORT = 0x1,
2956 SCHEDULING_CONTEXT_ELEMENT_TYPE_VPORT_TC = 0x2,
2957 SCHEDULING_CONTEXT_ELEMENT_TYPE_PARA_VPORT_TC = 0x3,
2958};
2959
2960struct mlx5_ifc_scheduling_context_bits {
2961 u8 element_type[0x8];
2962 u8 reserved_at_8[0x18];
2963
2964 u8 element_attributes[0x20];
2965
2966 u8 parent_element_id[0x20];
2967
2968 u8 reserved_at_60[0x40];
2969
2970 u8 bw_share[0x20];
2971
2972 u8 max_average_bw[0x20];
2973
2974 u8 reserved_at_e0[0x120];
2975};
2976
Saeed Mahameede2816822015-05-28 22:28:40 +03002977struct mlx5_ifc_rqtc_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002978 u8 reserved_at_0[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002979
Matan Barakb4ff3a32016-02-09 14:57:42 +02002980 u8 reserved_at_a0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002981 u8 rqt_max_size[0x10];
2982
Matan Barakb4ff3a32016-02-09 14:57:42 +02002983 u8 reserved_at_c0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002984 u8 rqt_actual_size[0x10];
2985
Matan Barakb4ff3a32016-02-09 14:57:42 +02002986 u8 reserved_at_e0[0x6a0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002987
2988 struct mlx5_ifc_rq_num_bits rq_num[0];
2989};
2990
2991enum {
2992 MLX5_RQC_MEM_RQ_TYPE_MEMORY_RQ_INLINE = 0x0,
2993 MLX5_RQC_MEM_RQ_TYPE_MEMORY_RQ_RMP = 0x1,
2994};
2995
2996enum {
2997 MLX5_RQC_STATE_RST = 0x0,
2998 MLX5_RQC_STATE_RDY = 0x1,
2999 MLX5_RQC_STATE_ERR = 0x3,
3000};
3001
3002struct mlx5_ifc_rqc_bits {
3003 u8 rlky[0x1];
Maor Gottlieb03404e82017-05-30 10:29:13 +03003004 u8 delay_drop_en[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03003005 u8 scatter_fcs[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003006 u8 vsd[0x1];
3007 u8 mem_rq_type[0x4];
3008 u8 state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003009 u8 reserved_at_c[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003010 u8 flush_in_error_en[0x1];
Or Gerlitz40817cd2017-06-25 12:38:45 +03003011 u8 hairpin[0x1];
3012 u8 reserved_at_f[0x11];
Saeed Mahameede2816822015-05-28 22:28:40 +03003013
Matan Barakb4ff3a32016-02-09 14:57:42 +02003014 u8 reserved_at_20[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003015 u8 user_index[0x18];
3016
Matan Barakb4ff3a32016-02-09 14:57:42 +02003017 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003018 u8 cqn[0x18];
3019
3020 u8 counter_set_id[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003021 u8 reserved_at_68[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003022
Matan Barakb4ff3a32016-02-09 14:57:42 +02003023 u8 reserved_at_80[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003024 u8 rmpn[0x18];
3025
Or Gerlitz40817cd2017-06-25 12:38:45 +03003026 u8 reserved_at_a0[0x8];
3027 u8 hairpin_peer_sq[0x18];
3028
3029 u8 reserved_at_c0[0x10];
3030 u8 hairpin_peer_vhca[0x10];
3031
3032 u8 reserved_at_e0[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003033
3034 struct mlx5_ifc_wq_bits wq;
3035};
3036
3037enum {
3038 MLX5_RMPC_STATE_RDY = 0x1,
3039 MLX5_RMPC_STATE_ERR = 0x3,
3040};
3041
3042struct mlx5_ifc_rmpc_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02003043 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003044 u8 state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003045 u8 reserved_at_c[0x14];
Saeed Mahameede2816822015-05-28 22:28:40 +03003046
3047 u8 basic_cyclic_rcv_wqe[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003048 u8 reserved_at_21[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03003049
Matan Barakb4ff3a32016-02-09 14:57:42 +02003050 u8 reserved_at_40[0x140];
Saeed Mahameede2816822015-05-28 22:28:40 +03003051
3052 struct mlx5_ifc_wq_bits wq;
3053};
3054
Saeed Mahameede2816822015-05-28 22:28:40 +03003055struct mlx5_ifc_nic_vport_context_bits {
Hadar Hen Zioncff92d72016-07-24 16:12:40 +03003056 u8 reserved_at_0[0x5];
3057 u8 min_wqe_inline_mode[0x3];
Huy Nguyenbded7472017-05-30 09:42:53 +03003058 u8 reserved_at_8[0x15];
3059 u8 disable_mc_local_lb[0x1];
3060 u8 disable_uc_local_lb[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003061 u8 roce_en[0x1];
3062
Saeed Mahameedd82b7312015-12-01 18:03:14 +02003063 u8 arm_change_event[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003064 u8 reserved_at_21[0x1a];
Saeed Mahameedd82b7312015-12-01 18:03:14 +02003065 u8 event_on_mtu[0x1];
3066 u8 event_on_promisc_change[0x1];
3067 u8 event_on_vlan_change[0x1];
3068 u8 event_on_mc_address_change[0x1];
3069 u8 event_on_uc_address_change[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003070
Daniel Jurgens32f69e42018-01-04 17:25:36 +02003071 u8 reserved_at_40[0xc];
3072
3073 u8 affiliation_criteria[0x4];
3074 u8 affiliated_vhca_id[0x10];
3075
3076 u8 reserved_at_60[0xd0];
Saeed Mahameedd82b7312015-12-01 18:03:14 +02003077
3078 u8 mtu[0x10];
3079
Achiad Shochat9efa7522015-12-23 18:47:20 +02003080 u8 system_image_guid[0x40];
3081 u8 port_guid[0x40];
3082 u8 node_guid[0x40];
3083
Matan Barakb4ff3a32016-02-09 14:57:42 +02003084 u8 reserved_at_200[0x140];
Achiad Shochat9efa7522015-12-23 18:47:20 +02003085 u8 qkey_violation_counter[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003086 u8 reserved_at_350[0x430];
Saeed Mahameedd82b7312015-12-01 18:03:14 +02003087
3088 u8 promisc_uc[0x1];
3089 u8 promisc_mc[0x1];
3090 u8 promisc_all[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003091 u8 reserved_at_783[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03003092 u8 allowed_list_type[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003093 u8 reserved_at_788[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03003094 u8 allowed_list_size[0xc];
3095
3096 struct mlx5_ifc_mac_address_layout_bits permanent_address;
3097
Matan Barakb4ff3a32016-02-09 14:57:42 +02003098 u8 reserved_at_7e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003099
3100 u8 current_uc_mac_address[0][0x40];
3101};
3102
3103enum {
3104 MLX5_MKC_ACCESS_MODE_PA = 0x0,
3105 MLX5_MKC_ACCESS_MODE_MTT = 0x1,
3106 MLX5_MKC_ACCESS_MODE_KLMS = 0x2,
Artemy Kovalyovbcda1ac2017-01-02 11:37:41 +02003107 MLX5_MKC_ACCESS_MODE_KSM = 0x3,
Ariel Levkovich9fba2b92019-03-31 19:44:43 +03003108 MLX5_MKC_ACCESS_MODE_SW_ICM = 0x4,
Ariel Levkovichcdbd0d22018-04-05 18:53:28 +03003109 MLX5_MKC_ACCESS_MODE_MEMIC = 0x5,
Saeed Mahameede2816822015-05-28 22:28:40 +03003110};
3111
3112struct mlx5_ifc_mkc_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02003113 u8 reserved_at_0[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003114 u8 free[0x1];
Ariel Levkovichcdbd0d22018-04-05 18:53:28 +03003115 u8 reserved_at_2[0x1];
3116 u8 access_mode_4_2[0x3];
3117 u8 reserved_at_6[0x7];
3118 u8 relaxed_ordering_write[0x1];
3119 u8 reserved_at_e[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003120 u8 small_fence_on_rdma_read_response[0x1];
3121 u8 umr_en[0x1];
3122 u8 a[0x1];
3123 u8 rw[0x1];
3124 u8 rr[0x1];
3125 u8 lw[0x1];
3126 u8 lr[0x1];
Ariel Levkovichcdbd0d22018-04-05 18:53:28 +03003127 u8 access_mode_1_0[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003128 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003129
3130 u8 qpn[0x18];
3131 u8 mkey_7_0[0x8];
3132
Matan Barakb4ff3a32016-02-09 14:57:42 +02003133 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003134
3135 u8 length64[0x1];
3136 u8 bsf_en[0x1];
3137 u8 sync_umr[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003138 u8 reserved_at_63[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03003139 u8 expected_sigerr_count[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003140 u8 reserved_at_66[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003141 u8 en_rinval[0x1];
3142 u8 pd[0x18];
3143
3144 u8 start_addr[0x40];
3145
3146 u8 len[0x40];
3147
3148 u8 bsf_octword_size[0x20];
3149
Matan Barakb4ff3a32016-02-09 14:57:42 +02003150 u8 reserved_at_120[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003151
3152 u8 translations_octword_size[0x20];
3153
Matan Barakb4ff3a32016-02-09 14:57:42 +02003154 u8 reserved_at_1c0[0x1b];
Saeed Mahameede2816822015-05-28 22:28:40 +03003155 u8 log_page_size[0x5];
3156
Matan Barakb4ff3a32016-02-09 14:57:42 +02003157 u8 reserved_at_1e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003158};
3159
3160struct mlx5_ifc_pkey_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02003161 u8 reserved_at_0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003162 u8 pkey[0x10];
3163};
3164
3165struct mlx5_ifc_array128_auto_bits {
3166 u8 array128_auto[16][0x8];
3167};
3168
3169struct mlx5_ifc_hca_vport_context_bits {
3170 u8 field_select[0x20];
3171
Matan Barakb4ff3a32016-02-09 14:57:42 +02003172 u8 reserved_at_20[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003173
3174 u8 sm_virt_aware[0x1];
3175 u8 has_smi[0x1];
3176 u8 has_raw[0x1];
3177 u8 grh_required[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003178 u8 reserved_at_104[0xc];
Majd Dibbiny707c4602015-06-04 19:30:41 +03003179 u8 port_physical_state[0x4];
3180 u8 vport_state_policy[0x4];
3181 u8 port_state[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03003182 u8 vport_state[0x4];
3183
Matan Barakb4ff3a32016-02-09 14:57:42 +02003184 u8 reserved_at_120[0x20];
Majd Dibbiny707c4602015-06-04 19:30:41 +03003185
3186 u8 system_image_guid[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003187
3188 u8 port_guid[0x40];
3189
3190 u8 node_guid[0x40];
3191
3192 u8 cap_mask1[0x20];
3193
3194 u8 cap_mask1_field_select[0x20];
3195
3196 u8 cap_mask2[0x20];
3197
3198 u8 cap_mask2_field_select[0x20];
3199
Matan Barakb4ff3a32016-02-09 14:57:42 +02003200 u8 reserved_at_280[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003201
3202 u8 lid[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003203 u8 reserved_at_310[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03003204 u8 init_type_reply[0x4];
3205 u8 lmc[0x3];
3206 u8 subnet_timeout[0x5];
3207
3208 u8 sm_lid[0x10];
3209 u8 sm_sl[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003210 u8 reserved_at_334[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03003211
3212 u8 qkey_violation_counter[0x10];
3213 u8 pkey_violation_counter[0x10];
3214
Matan Barakb4ff3a32016-02-09 14:57:42 +02003215 u8 reserved_at_360[0xca0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003216};
3217
Saeed Mahameedd6666752015-12-01 18:03:22 +02003218struct mlx5_ifc_esw_vport_context_bits {
Jianbo Liu65c0f2c2019-06-25 17:47:50 +00003219 u8 fdb_to_vport_reg_c[0x1];
3220 u8 reserved_at_1[0x2];
Saeed Mahameedd6666752015-12-01 18:03:22 +02003221 u8 vport_svlan_strip[0x1];
3222 u8 vport_cvlan_strip[0x1];
3223 u8 vport_svlan_insert[0x1];
3224 u8 vport_cvlan_insert[0x2];
Jianbo Liu65c0f2c2019-06-25 17:47:50 +00003225 u8 fdb_to_vport_reg_c_id[0x8];
3226 u8 reserved_at_10[0x10];
Saeed Mahameedd6666752015-12-01 18:03:22 +02003227
Matan Barakb4ff3a32016-02-09 14:57:42 +02003228 u8 reserved_at_20[0x20];
Saeed Mahameedd6666752015-12-01 18:03:22 +02003229
3230 u8 svlan_cfi[0x1];
3231 u8 svlan_pcp[0x3];
3232 u8 svlan_id[0xc];
3233 u8 cvlan_cfi[0x1];
3234 u8 cvlan_pcp[0x3];
3235 u8 cvlan_id[0xc];
3236
Matan Barakb4ff3a32016-02-09 14:57:42 +02003237 u8 reserved_at_60[0x7a0];
Saeed Mahameedd6666752015-12-01 18:03:22 +02003238};
3239
Saeed Mahameede2816822015-05-28 22:28:40 +03003240enum {
3241 MLX5_EQC_STATUS_OK = 0x0,
3242 MLX5_EQC_STATUS_EQ_WRITE_FAILURE = 0xa,
3243};
3244
3245enum {
3246 MLX5_EQC_ST_ARMED = 0x9,
3247 MLX5_EQC_ST_FIRED = 0xa,
3248};
3249
3250struct mlx5_ifc_eqc_bits {
3251 u8 status[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003252 u8 reserved_at_4[0x9];
Saeed Mahameede2816822015-05-28 22:28:40 +03003253 u8 ec[0x1];
3254 u8 oi[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003255 u8 reserved_at_f[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03003256 u8 st[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003257 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003258
Matan Barakb4ff3a32016-02-09 14:57:42 +02003259 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003260
Matan Barakb4ff3a32016-02-09 14:57:42 +02003261 u8 reserved_at_40[0x14];
Saeed Mahameede2816822015-05-28 22:28:40 +03003262 u8 page_offset[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003263 u8 reserved_at_5a[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03003264
Matan Barakb4ff3a32016-02-09 14:57:42 +02003265 u8 reserved_at_60[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03003266 u8 log_eq_size[0x5];
3267 u8 uar_page[0x18];
3268
Matan Barakb4ff3a32016-02-09 14:57:42 +02003269 u8 reserved_at_80[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003270
Matan Barakb4ff3a32016-02-09 14:57:42 +02003271 u8 reserved_at_a0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003272 u8 intr[0x8];
3273
Matan Barakb4ff3a32016-02-09 14:57:42 +02003274 u8 reserved_at_c0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03003275 u8 log_page_size[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003276 u8 reserved_at_c8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003277
Matan Barakb4ff3a32016-02-09 14:57:42 +02003278 u8 reserved_at_e0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03003279
Matan Barakb4ff3a32016-02-09 14:57:42 +02003280 u8 reserved_at_140[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003281 u8 consumer_counter[0x18];
3282
Matan Barakb4ff3a32016-02-09 14:57:42 +02003283 u8 reserved_at_160[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003284 u8 producer_counter[0x18];
3285
Matan Barakb4ff3a32016-02-09 14:57:42 +02003286 u8 reserved_at_180[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003287};
3288
3289enum {
3290 MLX5_DCTC_STATE_ACTIVE = 0x0,
3291 MLX5_DCTC_STATE_DRAINING = 0x1,
3292 MLX5_DCTC_STATE_DRAINED = 0x2,
3293};
3294
3295enum {
3296 MLX5_DCTC_CS_RES_DISABLE = 0x0,
3297 MLX5_DCTC_CS_RES_NA = 0x1,
3298 MLX5_DCTC_CS_RES_UP_TO_64B = 0x2,
3299};
3300
3301enum {
3302 MLX5_DCTC_MTU_256_BYTES = 0x1,
3303 MLX5_DCTC_MTU_512_BYTES = 0x2,
3304 MLX5_DCTC_MTU_1K_BYTES = 0x3,
3305 MLX5_DCTC_MTU_2K_BYTES = 0x4,
3306 MLX5_DCTC_MTU_4K_BYTES = 0x5,
3307};
3308
3309struct mlx5_ifc_dctc_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02003310 u8 reserved_at_0[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03003311 u8 state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003312 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003313
Matan Barakb4ff3a32016-02-09 14:57:42 +02003314 u8 reserved_at_20[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003315 u8 user_index[0x18];
3316
Matan Barakb4ff3a32016-02-09 14:57:42 +02003317 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003318 u8 cqn[0x18];
3319
3320 u8 counter_set_id[0x8];
3321 u8 atomic_mode[0x4];
3322 u8 rre[0x1];
3323 u8 rwe[0x1];
3324 u8 rae[0x1];
3325 u8 atomic_like_write_en[0x1];
3326 u8 latency_sensitive[0x1];
3327 u8 rlky[0x1];
3328 u8 free_ar[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003329 u8 reserved_at_73[0xd];
Saeed Mahameede2816822015-05-28 22:28:40 +03003330
Matan Barakb4ff3a32016-02-09 14:57:42 +02003331 u8 reserved_at_80[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003332 u8 cs_res[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003333 u8 reserved_at_90[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03003334 u8 min_rnr_nak[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003335 u8 reserved_at_98[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003336
Matan Barakb4ff3a32016-02-09 14:57:42 +02003337 u8 reserved_at_a0[0x8];
Saeed Mahameed74862162016-06-09 15:11:34 +03003338 u8 srqn_xrqn[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003339
Matan Barakb4ff3a32016-02-09 14:57:42 +02003340 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003341 u8 pd[0x18];
3342
3343 u8 tclass[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003344 u8 reserved_at_e8[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03003345 u8 flow_label[0x14];
3346
3347 u8 dc_access_key[0x40];
3348
Matan Barakb4ff3a32016-02-09 14:57:42 +02003349 u8 reserved_at_140[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03003350 u8 mtu[0x3];
3351 u8 port[0x8];
3352 u8 pkey_index[0x10];
3353
Matan Barakb4ff3a32016-02-09 14:57:42 +02003354 u8 reserved_at_160[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003355 u8 my_addr_index[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003356 u8 reserved_at_170[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003357 u8 hop_limit[0x8];
3358
3359 u8 dc_access_key_violation_count[0x20];
3360
Matan Barakb4ff3a32016-02-09 14:57:42 +02003361 u8 reserved_at_1a0[0x14];
Saeed Mahameede2816822015-05-28 22:28:40 +03003362 u8 dei_cfi[0x1];
3363 u8 eth_prio[0x3];
3364 u8 ecn[0x2];
3365 u8 dscp[0x6];
3366
Matan Barakb4ff3a32016-02-09 14:57:42 +02003367 u8 reserved_at_1c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003368};
3369
3370enum {
3371 MLX5_CQC_STATUS_OK = 0x0,
3372 MLX5_CQC_STATUS_CQ_OVERFLOW = 0x9,
3373 MLX5_CQC_STATUS_CQ_WRITE_FAIL = 0xa,
3374};
3375
3376enum {
3377 MLX5_CQC_CQE_SZ_64_BYTES = 0x0,
3378 MLX5_CQC_CQE_SZ_128_BYTES = 0x1,
3379};
3380
3381enum {
3382 MLX5_CQC_ST_SOLICITED_NOTIFICATION_REQUEST_ARMED = 0x6,
3383 MLX5_CQC_ST_NOTIFICATION_REQUEST_ARMED = 0x9,
3384 MLX5_CQC_ST_FIRED = 0xa,
3385};
3386
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03003387enum {
3388 MLX5_CQ_PERIOD_MODE_START_FROM_EQE = 0x0,
3389 MLX5_CQ_PERIOD_MODE_START_FROM_CQE = 0x1,
Saeed Mahameed74862162016-06-09 15:11:34 +03003390 MLX5_CQ_PERIOD_NUM_MODES
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03003391};
3392
Saeed Mahameede2816822015-05-28 22:28:40 +03003393struct mlx5_ifc_cqc_bits {
3394 u8 status[0x4];
Leon Romanovskybd371972018-09-20 21:35:26 +03003395 u8 reserved_at_4[0x2];
3396 u8 dbr_umem_valid[0x1];
3397 u8 reserved_at_7[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003398 u8 cqe_sz[0x3];
3399 u8 cc[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003400 u8 reserved_at_c[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003401 u8 scqe_break_moderation_en[0x1];
3402 u8 oi[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03003403 u8 cq_period_mode[0x2];
3404 u8 cqe_comp_en[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003405 u8 mini_cqe_res_format[0x2];
3406 u8 st[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003407 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003408
Matan Barakb4ff3a32016-02-09 14:57:42 +02003409 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003410
Matan Barakb4ff3a32016-02-09 14:57:42 +02003411 u8 reserved_at_40[0x14];
Saeed Mahameede2816822015-05-28 22:28:40 +03003412 u8 page_offset[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003413 u8 reserved_at_5a[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03003414
Matan Barakb4ff3a32016-02-09 14:57:42 +02003415 u8 reserved_at_60[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03003416 u8 log_cq_size[0x5];
3417 u8 uar_page[0x18];
3418
Matan Barakb4ff3a32016-02-09 14:57:42 +02003419 u8 reserved_at_80[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03003420 u8 cq_period[0xc];
3421 u8 cq_max_count[0x10];
3422
Matan Barakb4ff3a32016-02-09 14:57:42 +02003423 u8 reserved_at_a0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003424 u8 c_eqn[0x8];
3425
Matan Barakb4ff3a32016-02-09 14:57:42 +02003426 u8 reserved_at_c0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03003427 u8 log_page_size[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003428 u8 reserved_at_c8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003429
Matan Barakb4ff3a32016-02-09 14:57:42 +02003430 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003431
Matan Barakb4ff3a32016-02-09 14:57:42 +02003432 u8 reserved_at_100[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003433 u8 last_notified_index[0x18];
3434
Matan Barakb4ff3a32016-02-09 14:57:42 +02003435 u8 reserved_at_120[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003436 u8 last_solicit_index[0x18];
3437
Matan Barakb4ff3a32016-02-09 14:57:42 +02003438 u8 reserved_at_140[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003439 u8 consumer_counter[0x18];
3440
Matan Barakb4ff3a32016-02-09 14:57:42 +02003441 u8 reserved_at_160[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003442 u8 producer_counter[0x18];
3443
Matan Barakb4ff3a32016-02-09 14:57:42 +02003444 u8 reserved_at_180[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003445
3446 u8 dbr_addr[0x40];
3447};
3448
3449union mlx5_ifc_cong_control_roce_ecn_auto_bits {
3450 struct mlx5_ifc_cong_control_802_1qau_rp_bits cong_control_802_1qau_rp;
3451 struct mlx5_ifc_cong_control_r_roce_ecn_rp_bits cong_control_r_roce_ecn_rp;
3452 struct mlx5_ifc_cong_control_r_roce_ecn_np_bits cong_control_r_roce_ecn_np;
Matan Barakb4ff3a32016-02-09 14:57:42 +02003453 u8 reserved_at_0[0x800];
Saeed Mahameede2816822015-05-28 22:28:40 +03003454};
3455
3456struct mlx5_ifc_query_adapter_param_block_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02003457 u8 reserved_at_0[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003458
Matan Barakb4ff3a32016-02-09 14:57:42 +02003459 u8 reserved_at_c0[0x8];
Majd Dibbiny211e6c82015-06-04 19:30:42 +03003460 u8 ieee_vendor_id[0x18];
3461
Matan Barakb4ff3a32016-02-09 14:57:42 +02003462 u8 reserved_at_e0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003463 u8 vsd_vendor_id[0x10];
3464
3465 u8 vsd[208][0x8];
3466
3467 u8 vsd_contd_psid[16][0x8];
3468};
3469
Saeed Mahameed74862162016-06-09 15:11:34 +03003470enum {
3471 MLX5_XRQC_STATE_GOOD = 0x0,
3472 MLX5_XRQC_STATE_ERROR = 0x1,
3473};
3474
3475enum {
3476 MLX5_XRQC_TOPOLOGY_NO_SPECIAL_TOPOLOGY = 0x0,
3477 MLX5_XRQC_TOPOLOGY_TAG_MATCHING = 0x1,
3478};
3479
3480enum {
3481 MLX5_XRQC_OFFLOAD_RNDV = 0x1,
3482};
3483
3484struct mlx5_ifc_tag_matching_topology_context_bits {
3485 u8 log_matching_list_sz[0x4];
3486 u8 reserved_at_4[0xc];
3487 u8 append_next_index[0x10];
3488
3489 u8 sw_phase_cnt[0x10];
3490 u8 hw_phase_cnt[0x10];
3491
3492 u8 reserved_at_40[0x40];
3493};
3494
3495struct mlx5_ifc_xrqc_bits {
3496 u8 state[0x4];
3497 u8 rlkey[0x1];
3498 u8 reserved_at_5[0xf];
3499 u8 topology[0x4];
3500 u8 reserved_at_18[0x4];
3501 u8 offload[0x4];
3502
3503 u8 reserved_at_20[0x8];
3504 u8 user_index[0x18];
3505
3506 u8 reserved_at_40[0x8];
3507 u8 cqn[0x18];
3508
3509 u8 reserved_at_60[0xa0];
3510
3511 struct mlx5_ifc_tag_matching_topology_context_bits tag_matching_topology_context;
3512
Artemy Kovalyov6e446362017-08-15 11:59:02 +03003513 u8 reserved_at_180[0x280];
Saeed Mahameed74862162016-06-09 15:11:34 +03003514
3515 struct mlx5_ifc_wq_bits wq;
3516};
3517
Saeed Mahameede2816822015-05-28 22:28:40 +03003518union mlx5_ifc_modify_field_select_resize_field_select_auto_bits {
3519 struct mlx5_ifc_modify_field_select_bits modify_field_select;
3520 struct mlx5_ifc_resize_field_select_bits resize_field_select;
Matan Barakb4ff3a32016-02-09 14:57:42 +02003521 u8 reserved_at_0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003522};
3523
3524union mlx5_ifc_field_select_802_1_r_roce_auto_bits {
3525 struct mlx5_ifc_field_select_802_1qau_rp_bits field_select_802_1qau_rp;
3526 struct mlx5_ifc_field_select_r_roce_rp_bits field_select_r_roce_rp;
3527 struct mlx5_ifc_field_select_r_roce_np_bits field_select_r_roce_np;
Matan Barakb4ff3a32016-02-09 14:57:42 +02003528 u8 reserved_at_0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003529};
3530
3531union mlx5_ifc_eth_cntrs_grp_data_layout_auto_bits {
3532 struct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits eth_802_3_cntrs_grp_data_layout;
3533 struct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits eth_2863_cntrs_grp_data_layout;
3534 struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits eth_2819_cntrs_grp_data_layout;
3535 struct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits eth_3635_cntrs_grp_data_layout;
3536 struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits eth_extended_cntrs_grp_data_layout;
3537 struct mlx5_ifc_eth_per_prio_grp_data_layout_bits eth_per_prio_grp_data_layout;
3538 struct mlx5_ifc_eth_per_traffic_grp_data_layout_bits eth_per_traffic_grp_data_layout;
Meny Yossefi1c64bf62016-02-18 18:15:00 +02003539 struct mlx5_ifc_ib_port_cntrs_grp_data_layout_bits ib_port_cntrs_grp_data_layout;
Saeed Mahameede2816822015-05-28 22:28:40 +03003540 struct mlx5_ifc_phys_layer_cntrs_bits phys_layer_cntrs;
Gal Pressmand8dc0502016-09-27 17:04:51 +03003541 struct mlx5_ifc_phys_layer_statistical_cntrs_bits phys_layer_statistical_cntrs;
Matan Barakb4ff3a32016-02-09 14:57:42 +02003542 u8 reserved_at_0[0x7c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003543};
3544
Gal Pressman8ed1a632016-11-17 13:46:01 +02003545union mlx5_ifc_pcie_cntrs_grp_data_layout_auto_bits {
3546 struct mlx5_ifc_pcie_perf_cntrs_grp_data_layout_bits pcie_perf_cntrs_grp_data_layout;
3547 u8 reserved_at_0[0x7c0];
3548};
3549
Saeed Mahameede2816822015-05-28 22:28:40 +03003550union mlx5_ifc_event_auto_bits {
3551 struct mlx5_ifc_comp_event_bits comp_event;
3552 struct mlx5_ifc_dct_events_bits dct_events;
3553 struct mlx5_ifc_qp_events_bits qp_events;
3554 struct mlx5_ifc_wqe_associated_page_fault_event_bits wqe_associated_page_fault_event;
3555 struct mlx5_ifc_rdma_page_fault_event_bits rdma_page_fault_event;
3556 struct mlx5_ifc_cq_error_bits cq_error;
3557 struct mlx5_ifc_dropped_packet_logged_bits dropped_packet_logged;
3558 struct mlx5_ifc_port_state_change_event_bits port_state_change_event;
3559 struct mlx5_ifc_gpio_event_bits gpio_event;
3560 struct mlx5_ifc_db_bf_congestion_event_bits db_bf_congestion_event;
3561 struct mlx5_ifc_stall_vl_event_bits stall_vl_event;
3562 struct mlx5_ifc_cmd_inter_comp_event_bits cmd_inter_comp_event;
Matan Barakb4ff3a32016-02-09 14:57:42 +02003563 u8 reserved_at_0[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003564};
3565
3566struct mlx5_ifc_health_buffer_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02003567 u8 reserved_at_0[0x100];
Saeed Mahameede2816822015-05-28 22:28:40 +03003568
3569 u8 assert_existptr[0x20];
3570
3571 u8 assert_callra[0x20];
3572
Matan Barakb4ff3a32016-02-09 14:57:42 +02003573 u8 reserved_at_140[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003574
3575 u8 fw_version[0x20];
3576
3577 u8 hw_id[0x20];
3578
Matan Barakb4ff3a32016-02-09 14:57:42 +02003579 u8 reserved_at_1c0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003580
3581 u8 irisc_index[0x8];
3582 u8 synd[0x8];
3583 u8 ext_synd[0x10];
3584};
3585
3586struct mlx5_ifc_register_loopback_control_bits {
3587 u8 no_lb[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003588 u8 reserved_at_1[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03003589 u8 port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003590 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003591
Matan Barakb4ff3a32016-02-09 14:57:42 +02003592 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03003593};
3594
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03003595struct mlx5_ifc_vport_tc_element_bits {
3596 u8 traffic_class[0x4];
3597 u8 reserved_at_4[0xc];
3598 u8 vport_number[0x10];
3599};
3600
3601struct mlx5_ifc_vport_element_bits {
3602 u8 reserved_at_0[0x10];
3603 u8 vport_number[0x10];
3604};
3605
3606enum {
3607 TSAR_ELEMENT_TSAR_TYPE_DWRR = 0x0,
3608 TSAR_ELEMENT_TSAR_TYPE_ROUND_ROBIN = 0x1,
3609 TSAR_ELEMENT_TSAR_TYPE_ETS = 0x2,
3610};
3611
3612struct mlx5_ifc_tsar_element_bits {
3613 u8 reserved_at_0[0x8];
3614 u8 tsar_type[0x8];
3615 u8 reserved_at_10[0x10];
3616};
3617
Majd Dibbiny8812c242017-02-09 14:20:12 +02003618enum {
3619 MLX5_TEARDOWN_HCA_OUT_FORCE_STATE_SUCCESS = 0x0,
3620 MLX5_TEARDOWN_HCA_OUT_FORCE_STATE_FAIL = 0x1,
3621};
3622
Saeed Mahameede2816822015-05-28 22:28:40 +03003623struct mlx5_ifc_teardown_hca_out_bits {
3624 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003625 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003626
3627 u8 syndrome[0x20];
3628
Majd Dibbiny8812c242017-02-09 14:20:12 +02003629 u8 reserved_at_40[0x3f];
3630
Feras Daoudfcd29ad2018-08-09 09:55:21 +03003631 u8 state[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003632};
3633
3634enum {
3635 MLX5_TEARDOWN_HCA_IN_PROFILE_GRACEFUL_CLOSE = 0x0,
Majd Dibbiny8812c242017-02-09 14:20:12 +02003636 MLX5_TEARDOWN_HCA_IN_PROFILE_FORCE_CLOSE = 0x1,
Feras Daoudfcd29ad2018-08-09 09:55:21 +03003637 MLX5_TEARDOWN_HCA_IN_PROFILE_PREPARE_FAST_TEARDOWN = 0x2,
Saeed Mahameede2816822015-05-28 22:28:40 +03003638};
3639
3640struct mlx5_ifc_teardown_hca_in_bits {
3641 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003642 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003643
Matan Barakb4ff3a32016-02-09 14:57:42 +02003644 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003645 u8 op_mod[0x10];
3646
Matan Barakb4ff3a32016-02-09 14:57:42 +02003647 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003648 u8 profile[0x10];
3649
Matan Barakb4ff3a32016-02-09 14:57:42 +02003650 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003651};
3652
3653struct mlx5_ifc_sqerr2rts_qp_out_bits {
3654 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003655 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003656
3657 u8 syndrome[0x20];
3658
Matan Barakb4ff3a32016-02-09 14:57:42 +02003659 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003660};
3661
3662struct mlx5_ifc_sqerr2rts_qp_in_bits {
3663 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03003664 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003665
Matan Barakb4ff3a32016-02-09 14:57:42 +02003666 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003667 u8 op_mod[0x10];
3668
Matan Barakb4ff3a32016-02-09 14:57:42 +02003669 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003670 u8 qpn[0x18];
3671
Matan Barakb4ff3a32016-02-09 14:57:42 +02003672 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003673
3674 u8 opt_param_mask[0x20];
3675
Matan Barakb4ff3a32016-02-09 14:57:42 +02003676 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003677
3678 struct mlx5_ifc_qpc_bits qpc;
3679
Matan Barakb4ff3a32016-02-09 14:57:42 +02003680 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003681};
3682
3683struct mlx5_ifc_sqd2rts_qp_out_bits {
3684 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003685 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003686
3687 u8 syndrome[0x20];
3688
Matan Barakb4ff3a32016-02-09 14:57:42 +02003689 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003690};
3691
3692struct mlx5_ifc_sqd2rts_qp_in_bits {
3693 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03003694 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003695
Matan Barakb4ff3a32016-02-09 14:57:42 +02003696 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003697 u8 op_mod[0x10];
3698
Matan Barakb4ff3a32016-02-09 14:57:42 +02003699 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003700 u8 qpn[0x18];
3701
Matan Barakb4ff3a32016-02-09 14:57:42 +02003702 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003703
3704 u8 opt_param_mask[0x20];
3705
Matan Barakb4ff3a32016-02-09 14:57:42 +02003706 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003707
3708 struct mlx5_ifc_qpc_bits qpc;
3709
Matan Barakb4ff3a32016-02-09 14:57:42 +02003710 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003711};
3712
3713struct mlx5_ifc_set_roce_address_out_bits {
3714 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003715 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003716
3717 u8 syndrome[0x20];
3718
Matan Barakb4ff3a32016-02-09 14:57:42 +02003719 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003720};
3721
3722struct mlx5_ifc_set_roce_address_in_bits {
3723 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003724 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003725
Matan Barakb4ff3a32016-02-09 14:57:42 +02003726 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003727 u8 op_mod[0x10];
3728
3729 u8 roce_address_index[0x10];
Daniel Jurgens32f69e42018-01-04 17:25:36 +02003730 u8 reserved_at_50[0xc];
3731 u8 vhca_port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03003732
Matan Barakb4ff3a32016-02-09 14:57:42 +02003733 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003734
3735 struct mlx5_ifc_roce_addr_layout_bits roce_address;
3736};
3737
3738struct mlx5_ifc_set_mad_demux_out_bits {
3739 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003740 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003741
3742 u8 syndrome[0x20];
3743
Matan Barakb4ff3a32016-02-09 14:57:42 +02003744 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003745};
3746
3747enum {
3748 MLX5_SET_MAD_DEMUX_IN_DEMUX_MODE_PASS_ALL = 0x0,
3749 MLX5_SET_MAD_DEMUX_IN_DEMUX_MODE_SELECTIVE = 0x2,
3750};
3751
3752struct mlx5_ifc_set_mad_demux_in_bits {
3753 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003754 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003755
Matan Barakb4ff3a32016-02-09 14:57:42 +02003756 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003757 u8 op_mod[0x10];
3758
Matan Barakb4ff3a32016-02-09 14:57:42 +02003759 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003760
Matan Barakb4ff3a32016-02-09 14:57:42 +02003761 u8 reserved_at_60[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03003762 u8 demux_mode[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003763 u8 reserved_at_68[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003764};
3765
3766struct mlx5_ifc_set_l2_table_entry_out_bits {
3767 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003768 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003769
3770 u8 syndrome[0x20];
3771
Matan Barakb4ff3a32016-02-09 14:57:42 +02003772 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003773};
3774
3775struct mlx5_ifc_set_l2_table_entry_in_bits {
3776 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003777 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003778
Matan Barakb4ff3a32016-02-09 14:57:42 +02003779 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003780 u8 op_mod[0x10];
3781
Matan Barakb4ff3a32016-02-09 14:57:42 +02003782 u8 reserved_at_40[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03003783
Matan Barakb4ff3a32016-02-09 14:57:42 +02003784 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003785 u8 table_index[0x18];
3786
Matan Barakb4ff3a32016-02-09 14:57:42 +02003787 u8 reserved_at_c0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003788
Matan Barakb4ff3a32016-02-09 14:57:42 +02003789 u8 reserved_at_e0[0x13];
Saeed Mahameede2816822015-05-28 22:28:40 +03003790 u8 vlan_valid[0x1];
3791 u8 vlan[0xc];
3792
3793 struct mlx5_ifc_mac_address_layout_bits mac_address;
3794
Matan Barakb4ff3a32016-02-09 14:57:42 +02003795 u8 reserved_at_140[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003796};
3797
3798struct mlx5_ifc_set_issi_out_bits {
3799 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003800 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003801
3802 u8 syndrome[0x20];
3803
Matan Barakb4ff3a32016-02-09 14:57:42 +02003804 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003805};
3806
3807struct mlx5_ifc_set_issi_in_bits {
3808 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003809 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003810
Matan Barakb4ff3a32016-02-09 14:57:42 +02003811 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003812 u8 op_mod[0x10];
3813
Matan Barakb4ff3a32016-02-09 14:57:42 +02003814 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003815 u8 current_issi[0x10];
3816
Matan Barakb4ff3a32016-02-09 14:57:42 +02003817 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003818};
3819
3820struct mlx5_ifc_set_hca_cap_out_bits {
3821 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003822 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003823
3824 u8 syndrome[0x20];
3825
Matan Barakb4ff3a32016-02-09 14:57:42 +02003826 u8 reserved_at_40[0x40];
Eli Cohenb7755162014-10-02 12:19:44 +03003827};
3828
3829struct mlx5_ifc_set_hca_cap_in_bits {
3830 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003831 u8 reserved_at_10[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03003832
Matan Barakb4ff3a32016-02-09 14:57:42 +02003833 u8 reserved_at_20[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03003834 u8 op_mod[0x10];
3835
Matan Barakb4ff3a32016-02-09 14:57:42 +02003836 u8 reserved_at_40[0x40];
Eli Cohenb7755162014-10-02 12:19:44 +03003837
Saeed Mahameede2816822015-05-28 22:28:40 +03003838 union mlx5_ifc_hca_cap_union_bits capability;
3839};
3840
Maor Gottlieb26a81452015-12-10 17:12:39 +02003841enum {
3842 MLX5_SET_FTE_MODIFY_ENABLE_MASK_ACTION = 0x0,
3843 MLX5_SET_FTE_MODIFY_ENABLE_MASK_FLOW_TAG = 0x1,
3844 MLX5_SET_FTE_MODIFY_ENABLE_MASK_DESTINATION_LIST = 0x2,
3845 MLX5_SET_FTE_MODIFY_ENABLE_MASK_FLOW_COUNTERS = 0x3
3846};
3847
Saeed Mahameede2816822015-05-28 22:28:40 +03003848struct mlx5_ifc_set_fte_out_bits {
3849 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003850 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003851
3852 u8 syndrome[0x20];
3853
Matan Barakb4ff3a32016-02-09 14:57:42 +02003854 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003855};
3856
3857struct mlx5_ifc_set_fte_in_bits {
3858 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003859 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003860
Matan Barakb4ff3a32016-02-09 14:57:42 +02003861 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003862 u8 op_mod[0x10];
3863
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03003864 u8 other_vport[0x1];
3865 u8 reserved_at_41[0xf];
3866 u8 vport_number[0x10];
3867
3868 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003869
3870 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003871 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003872
Matan Barakb4ff3a32016-02-09 14:57:42 +02003873 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003874 u8 table_id[0x18];
3875
Matan Barakb4ff3a32016-02-09 14:57:42 +02003876 u8 reserved_at_c0[0x18];
Maor Gottlieb26a81452015-12-10 17:12:39 +02003877 u8 modify_enable_mask[0x8];
3878
Matan Barakb4ff3a32016-02-09 14:57:42 +02003879 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003880
3881 u8 flow_index[0x20];
3882
Matan Barakb4ff3a32016-02-09 14:57:42 +02003883 u8 reserved_at_120[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003884
3885 struct mlx5_ifc_flow_context_bits flow_context;
3886};
3887
3888struct mlx5_ifc_rts2rts_qp_out_bits {
3889 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003890 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003891
3892 u8 syndrome[0x20];
3893
Matan Barakb4ff3a32016-02-09 14:57:42 +02003894 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003895};
3896
3897struct mlx5_ifc_rts2rts_qp_in_bits {
3898 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03003899 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003900
Matan Barakb4ff3a32016-02-09 14:57:42 +02003901 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003902 u8 op_mod[0x10];
3903
Matan Barakb4ff3a32016-02-09 14:57:42 +02003904 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003905 u8 qpn[0x18];
3906
Matan Barakb4ff3a32016-02-09 14:57:42 +02003907 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003908
3909 u8 opt_param_mask[0x20];
3910
Matan Barakb4ff3a32016-02-09 14:57:42 +02003911 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003912
3913 struct mlx5_ifc_qpc_bits qpc;
3914
Matan Barakb4ff3a32016-02-09 14:57:42 +02003915 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003916};
3917
3918struct mlx5_ifc_rtr2rts_qp_out_bits {
3919 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003920 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003921
3922 u8 syndrome[0x20];
3923
Matan Barakb4ff3a32016-02-09 14:57:42 +02003924 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003925};
3926
3927struct mlx5_ifc_rtr2rts_qp_in_bits {
3928 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03003929 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003930
Matan Barakb4ff3a32016-02-09 14:57:42 +02003931 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003932 u8 op_mod[0x10];
3933
Matan Barakb4ff3a32016-02-09 14:57:42 +02003934 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003935 u8 qpn[0x18];
3936
Matan Barakb4ff3a32016-02-09 14:57:42 +02003937 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003938
3939 u8 opt_param_mask[0x20];
3940
Matan Barakb4ff3a32016-02-09 14:57:42 +02003941 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003942
3943 struct mlx5_ifc_qpc_bits qpc;
3944
Matan Barakb4ff3a32016-02-09 14:57:42 +02003945 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003946};
3947
3948struct mlx5_ifc_rst2init_qp_out_bits {
3949 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003950 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003951
3952 u8 syndrome[0x20];
3953
Matan Barakb4ff3a32016-02-09 14:57:42 +02003954 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003955};
3956
3957struct mlx5_ifc_rst2init_qp_in_bits {
3958 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03003959 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003960
Matan Barakb4ff3a32016-02-09 14:57:42 +02003961 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003962 u8 op_mod[0x10];
3963
Matan Barakb4ff3a32016-02-09 14:57:42 +02003964 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003965 u8 qpn[0x18];
3966
Matan Barakb4ff3a32016-02-09 14:57:42 +02003967 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003968
3969 u8 opt_param_mask[0x20];
3970
Matan Barakb4ff3a32016-02-09 14:57:42 +02003971 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003972
3973 struct mlx5_ifc_qpc_bits qpc;
3974
Matan Barakb4ff3a32016-02-09 14:57:42 +02003975 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003976};
3977
Saeed Mahameed74862162016-06-09 15:11:34 +03003978struct mlx5_ifc_query_xrq_out_bits {
3979 u8 status[0x8];
3980 u8 reserved_at_8[0x18];
3981
3982 u8 syndrome[0x20];
3983
3984 u8 reserved_at_40[0x40];
3985
3986 struct mlx5_ifc_xrqc_bits xrq_context;
3987};
3988
3989struct mlx5_ifc_query_xrq_in_bits {
3990 u8 opcode[0x10];
3991 u8 reserved_at_10[0x10];
3992
3993 u8 reserved_at_20[0x10];
3994 u8 op_mod[0x10];
3995
3996 u8 reserved_at_40[0x8];
3997 u8 xrqn[0x18];
3998
3999 u8 reserved_at_60[0x20];
4000};
4001
Saeed Mahameede2816822015-05-28 22:28:40 +03004002struct mlx5_ifc_query_xrc_srq_out_bits {
4003 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004004 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004005
4006 u8 syndrome[0x20];
4007
Matan Barakb4ff3a32016-02-09 14:57:42 +02004008 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004009
4010 struct mlx5_ifc_xrc_srqc_bits xrc_srq_context_entry;
4011
Matan Barakb4ff3a32016-02-09 14:57:42 +02004012 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03004013
4014 u8 pas[0][0x40];
4015};
4016
4017struct mlx5_ifc_query_xrc_srq_in_bits {
4018 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004019 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004020
Matan Barakb4ff3a32016-02-09 14:57:42 +02004021 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004022 u8 op_mod[0x10];
4023
Matan Barakb4ff3a32016-02-09 14:57:42 +02004024 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004025 u8 xrc_srqn[0x18];
4026
Matan Barakb4ff3a32016-02-09 14:57:42 +02004027 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004028};
4029
4030enum {
4031 MLX5_QUERY_VPORT_STATE_OUT_STATE_DOWN = 0x0,
4032 MLX5_QUERY_VPORT_STATE_OUT_STATE_UP = 0x1,
4033};
4034
4035struct mlx5_ifc_query_vport_state_out_bits {
4036 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004037 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004038
4039 u8 syndrome[0x20];
4040
Matan Barakb4ff3a32016-02-09 14:57:42 +02004041 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004042
Matan Barakb4ff3a32016-02-09 14:57:42 +02004043 u8 reserved_at_60[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004044 u8 admin_state[0x4];
4045 u8 state[0x4];
4046};
4047
4048enum {
Eran Ben Elishacc9c82a2018-08-08 16:23:49 -07004049 MLX5_VPORT_STATE_OP_MOD_VNIC_VPORT = 0x0,
4050 MLX5_VPORT_STATE_OP_MOD_ESW_VPORT = 0x1,
Saeed Mahameede2816822015-05-28 22:28:40 +03004051};
4052
Eyal Davidovichfd4572b2018-12-10 13:15:12 -08004053struct mlx5_ifc_arm_monitor_counter_in_bits {
4054 u8 opcode[0x10];
4055 u8 uid[0x10];
4056
4057 u8 reserved_at_20[0x10];
4058 u8 op_mod[0x10];
4059
4060 u8 reserved_at_40[0x20];
4061
4062 u8 reserved_at_60[0x20];
4063};
4064
4065struct mlx5_ifc_arm_monitor_counter_out_bits {
4066 u8 status[0x8];
4067 u8 reserved_at_8[0x18];
4068
4069 u8 syndrome[0x20];
4070
4071 u8 reserved_at_40[0x40];
4072};
4073
4074enum {
4075 MLX5_QUERY_MONITOR_CNT_TYPE_PPCNT = 0x0,
4076 MLX5_QUERY_MONITOR_CNT_TYPE_Q_COUNTER = 0x1,
4077};
4078
4079enum mlx5_monitor_counter_ppcnt {
Saeed Mahameed4c8b8512018-12-12 19:11:36 -08004080 MLX5_QUERY_MONITOR_PPCNT_IN_RANGE_LENGTH_ERRORS = 0x0,
4081 MLX5_QUERY_MONITOR_PPCNT_OUT_OF_RANGE_LENGTH_FIELD = 0x1,
4082 MLX5_QUERY_MONITOR_PPCNT_FRAME_TOO_LONG_ERRORS = 0x2,
4083 MLX5_QUERY_MONITOR_PPCNT_FRAME_CHECK_SEQUENCE_ERRORS = 0x3,
4084 MLX5_QUERY_MONITOR_PPCNT_ALIGNMENT_ERRORS = 0x4,
4085 MLX5_QUERY_MONITOR_PPCNT_IF_OUT_DISCARDS = 0x5,
Eyal Davidovichfd4572b2018-12-10 13:15:12 -08004086};
4087
4088enum {
Saeed Mahameed4c8b8512018-12-12 19:11:36 -08004089 MLX5_QUERY_MONITOR_Q_COUNTER_RX_OUT_OF_BUFFER = 0x4,
Eyal Davidovichfd4572b2018-12-10 13:15:12 -08004090};
4091
4092struct mlx5_ifc_monitor_counter_output_bits {
4093 u8 reserved_at_0[0x4];
4094 u8 type[0x4];
4095 u8 reserved_at_8[0x8];
4096 u8 counter[0x10];
4097
4098 u8 counter_group_id[0x20];
4099};
4100
4101#define MLX5_CMD_SET_MONITOR_NUM_PPCNT_COUNTER_SET1 (6)
4102#define MLX5_CMD_SET_MONITOR_NUM_Q_COUNTERS_SET1 (1)
4103#define MLX5_CMD_SET_MONITOR_NUM_COUNTER (MLX5_CMD_SET_MONITOR_NUM_PPCNT_COUNTER_SET1 +\
4104 MLX5_CMD_SET_MONITOR_NUM_Q_COUNTERS_SET1)
4105
4106struct mlx5_ifc_set_monitor_counter_in_bits {
4107 u8 opcode[0x10];
4108 u8 uid[0x10];
4109
4110 u8 reserved_at_20[0x10];
4111 u8 op_mod[0x10];
4112
4113 u8 reserved_at_40[0x10];
4114 u8 num_of_counters[0x10];
4115
4116 u8 reserved_at_60[0x20];
4117
4118 struct mlx5_ifc_monitor_counter_output_bits monitor_counter[MLX5_CMD_SET_MONITOR_NUM_COUNTER];
4119};
4120
4121struct mlx5_ifc_set_monitor_counter_out_bits {
4122 u8 status[0x8];
4123 u8 reserved_at_8[0x18];
4124
4125 u8 syndrome[0x20];
4126
4127 u8 reserved_at_40[0x40];
4128};
4129
Saeed Mahameede2816822015-05-28 22:28:40 +03004130struct mlx5_ifc_query_vport_state_in_bits {
4131 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004132 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004133
Matan Barakb4ff3a32016-02-09 14:57:42 +02004134 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004135 u8 op_mod[0x10];
4136
4137 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004138 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03004139 u8 vport_number[0x10];
4140
Matan Barakb4ff3a32016-02-09 14:57:42 +02004141 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004142};
4143
Moshe Shemesh61c5b5c2018-01-07 16:45:27 +02004144struct mlx5_ifc_query_vnic_env_out_bits {
4145 u8 status[0x8];
4146 u8 reserved_at_8[0x18];
4147
4148 u8 syndrome[0x20];
4149
4150 u8 reserved_at_40[0x40];
4151
4152 struct mlx5_ifc_vnic_diagnostic_statistics_bits vport_env;
4153};
4154
4155enum {
4156 MLX5_QUERY_VNIC_ENV_IN_OP_MOD_VPORT_DIAG_STATISTICS = 0x0,
4157};
4158
4159struct mlx5_ifc_query_vnic_env_in_bits {
4160 u8 opcode[0x10];
4161 u8 reserved_at_10[0x10];
4162
4163 u8 reserved_at_20[0x10];
4164 u8 op_mod[0x10];
4165
4166 u8 other_vport[0x1];
4167 u8 reserved_at_41[0xf];
4168 u8 vport_number[0x10];
4169
4170 u8 reserved_at_60[0x20];
4171};
4172
Saeed Mahameede2816822015-05-28 22:28:40 +03004173struct mlx5_ifc_query_vport_counter_out_bits {
4174 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004175 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004176
4177 u8 syndrome[0x20];
4178
Matan Barakb4ff3a32016-02-09 14:57:42 +02004179 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004180
4181 struct mlx5_ifc_traffic_counter_bits received_errors;
4182
4183 struct mlx5_ifc_traffic_counter_bits transmit_errors;
4184
4185 struct mlx5_ifc_traffic_counter_bits received_ib_unicast;
4186
4187 struct mlx5_ifc_traffic_counter_bits transmitted_ib_unicast;
4188
4189 struct mlx5_ifc_traffic_counter_bits received_ib_multicast;
4190
4191 struct mlx5_ifc_traffic_counter_bits transmitted_ib_multicast;
4192
4193 struct mlx5_ifc_traffic_counter_bits received_eth_broadcast;
4194
4195 struct mlx5_ifc_traffic_counter_bits transmitted_eth_broadcast;
4196
4197 struct mlx5_ifc_traffic_counter_bits received_eth_unicast;
4198
4199 struct mlx5_ifc_traffic_counter_bits transmitted_eth_unicast;
4200
4201 struct mlx5_ifc_traffic_counter_bits received_eth_multicast;
4202
4203 struct mlx5_ifc_traffic_counter_bits transmitted_eth_multicast;
4204
Matan Barakb4ff3a32016-02-09 14:57:42 +02004205 u8 reserved_at_680[0xa00];
Saeed Mahameede2816822015-05-28 22:28:40 +03004206};
4207
4208enum {
4209 MLX5_QUERY_VPORT_COUNTER_IN_OP_MOD_VPORT_COUNTERS = 0x0,
4210};
4211
4212struct mlx5_ifc_query_vport_counter_in_bits {
4213 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004214 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004215
Matan Barakb4ff3a32016-02-09 14:57:42 +02004216 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004217 u8 op_mod[0x10];
4218
4219 u8 other_vport[0x1];
Meny Yossefib54ba272016-02-18 18:14:59 +02004220 u8 reserved_at_41[0xb];
4221 u8 port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03004222 u8 vport_number[0x10];
4223
Matan Barakb4ff3a32016-02-09 14:57:42 +02004224 u8 reserved_at_60[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03004225
4226 u8 clear[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004227 u8 reserved_at_c1[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03004228
Matan Barakb4ff3a32016-02-09 14:57:42 +02004229 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004230};
4231
4232struct mlx5_ifc_query_tis_out_bits {
4233 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004234 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004235
4236 u8 syndrome[0x20];
4237
Matan Barakb4ff3a32016-02-09 14:57:42 +02004238 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004239
4240 struct mlx5_ifc_tisc_bits tis_context;
4241};
4242
4243struct mlx5_ifc_query_tis_in_bits {
4244 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004245 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004246
Matan Barakb4ff3a32016-02-09 14:57:42 +02004247 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004248 u8 op_mod[0x10];
4249
Matan Barakb4ff3a32016-02-09 14:57:42 +02004250 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004251 u8 tisn[0x18];
4252
Matan Barakb4ff3a32016-02-09 14:57:42 +02004253 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004254};
4255
4256struct mlx5_ifc_query_tir_out_bits {
4257 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004258 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004259
4260 u8 syndrome[0x20];
4261
Matan Barakb4ff3a32016-02-09 14:57:42 +02004262 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004263
4264 struct mlx5_ifc_tirc_bits tir_context;
4265};
4266
4267struct mlx5_ifc_query_tir_in_bits {
4268 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004269 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004270
Matan Barakb4ff3a32016-02-09 14:57:42 +02004271 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004272 u8 op_mod[0x10];
4273
Matan Barakb4ff3a32016-02-09 14:57:42 +02004274 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004275 u8 tirn[0x18];
4276
Matan Barakb4ff3a32016-02-09 14:57:42 +02004277 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004278};
4279
4280struct mlx5_ifc_query_srq_out_bits {
4281 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004282 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004283
4284 u8 syndrome[0x20];
4285
Matan Barakb4ff3a32016-02-09 14:57:42 +02004286 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004287
4288 struct mlx5_ifc_srqc_bits srq_context_entry;
4289
Matan Barakb4ff3a32016-02-09 14:57:42 +02004290 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03004291
4292 u8 pas[0][0x40];
4293};
4294
4295struct mlx5_ifc_query_srq_in_bits {
4296 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004297 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004298
Matan Barakb4ff3a32016-02-09 14:57:42 +02004299 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004300 u8 op_mod[0x10];
4301
Matan Barakb4ff3a32016-02-09 14:57:42 +02004302 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004303 u8 srqn[0x18];
4304
Matan Barakb4ff3a32016-02-09 14:57:42 +02004305 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004306};
4307
4308struct mlx5_ifc_query_sq_out_bits {
4309 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004310 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004311
4312 u8 syndrome[0x20];
4313
Matan Barakb4ff3a32016-02-09 14:57:42 +02004314 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004315
4316 struct mlx5_ifc_sqc_bits sq_context;
4317};
4318
4319struct mlx5_ifc_query_sq_in_bits {
4320 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004321 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004322
Matan Barakb4ff3a32016-02-09 14:57:42 +02004323 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004324 u8 op_mod[0x10];
4325
Matan Barakb4ff3a32016-02-09 14:57:42 +02004326 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004327 u8 sqn[0x18];
4328
Matan Barakb4ff3a32016-02-09 14:57:42 +02004329 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004330};
4331
4332struct mlx5_ifc_query_special_contexts_out_bits {
4333 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004334 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004335
4336 u8 syndrome[0x20];
4337
Saeed Mahameedec22eb52016-07-16 06:28:36 +03004338 u8 dump_fill_mkey[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004339
4340 u8 resd_lkey[0x20];
Artemy Kovalyovbcda1ac2017-01-02 11:37:41 +02004341
4342 u8 null_mkey[0x20];
4343
4344 u8 reserved_at_a0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03004345};
4346
4347struct mlx5_ifc_query_special_contexts_in_bits {
4348 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004349 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004350
Matan Barakb4ff3a32016-02-09 14:57:42 +02004351 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004352 u8 op_mod[0x10];
4353
Matan Barakb4ff3a32016-02-09 14:57:42 +02004354 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004355};
4356
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03004357struct mlx5_ifc_query_scheduling_element_out_bits {
4358 u8 opcode[0x10];
4359 u8 reserved_at_10[0x10];
4360
4361 u8 reserved_at_20[0x10];
4362 u8 op_mod[0x10];
4363
4364 u8 reserved_at_40[0xc0];
4365
4366 struct mlx5_ifc_scheduling_context_bits scheduling_context;
4367
4368 u8 reserved_at_300[0x100];
4369};
4370
4371enum {
4372 SCHEDULING_HIERARCHY_E_SWITCH = 0x2,
4373};
4374
4375struct mlx5_ifc_query_scheduling_element_in_bits {
4376 u8 opcode[0x10];
4377 u8 reserved_at_10[0x10];
4378
4379 u8 reserved_at_20[0x10];
4380 u8 op_mod[0x10];
4381
4382 u8 scheduling_hierarchy[0x8];
4383 u8 reserved_at_48[0x18];
4384
4385 u8 scheduling_element_id[0x20];
4386
4387 u8 reserved_at_80[0x180];
4388};
4389
Saeed Mahameede2816822015-05-28 22:28:40 +03004390struct mlx5_ifc_query_rqt_out_bits {
4391 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004392 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004393
4394 u8 syndrome[0x20];
4395
Matan Barakb4ff3a32016-02-09 14:57:42 +02004396 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004397
4398 struct mlx5_ifc_rqtc_bits rqt_context;
4399};
4400
4401struct mlx5_ifc_query_rqt_in_bits {
4402 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004403 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004404
Matan Barakb4ff3a32016-02-09 14:57:42 +02004405 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004406 u8 op_mod[0x10];
4407
Matan Barakb4ff3a32016-02-09 14:57:42 +02004408 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004409 u8 rqtn[0x18];
4410
Matan Barakb4ff3a32016-02-09 14:57:42 +02004411 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004412};
4413
4414struct mlx5_ifc_query_rq_out_bits {
4415 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004416 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004417
4418 u8 syndrome[0x20];
4419
Matan Barakb4ff3a32016-02-09 14:57:42 +02004420 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004421
4422 struct mlx5_ifc_rqc_bits rq_context;
4423};
4424
4425struct mlx5_ifc_query_rq_in_bits {
4426 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004427 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004428
Matan Barakb4ff3a32016-02-09 14:57:42 +02004429 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004430 u8 op_mod[0x10];
4431
Matan Barakb4ff3a32016-02-09 14:57:42 +02004432 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004433 u8 rqn[0x18];
4434
Matan Barakb4ff3a32016-02-09 14:57:42 +02004435 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004436};
4437
4438struct mlx5_ifc_query_roce_address_out_bits {
4439 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004440 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004441
4442 u8 syndrome[0x20];
4443
Matan Barakb4ff3a32016-02-09 14:57:42 +02004444 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004445
4446 struct mlx5_ifc_roce_addr_layout_bits roce_address;
4447};
4448
4449struct mlx5_ifc_query_roce_address_in_bits {
4450 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004451 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004452
Matan Barakb4ff3a32016-02-09 14:57:42 +02004453 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004454 u8 op_mod[0x10];
4455
4456 u8 roce_address_index[0x10];
Daniel Jurgens32f69e42018-01-04 17:25:36 +02004457 u8 reserved_at_50[0xc];
4458 u8 vhca_port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03004459
Matan Barakb4ff3a32016-02-09 14:57:42 +02004460 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004461};
4462
4463struct mlx5_ifc_query_rmp_out_bits {
4464 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004465 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004466
4467 u8 syndrome[0x20];
4468
Matan Barakb4ff3a32016-02-09 14:57:42 +02004469 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004470
4471 struct mlx5_ifc_rmpc_bits rmp_context;
4472};
4473
4474struct mlx5_ifc_query_rmp_in_bits {
4475 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004476 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004477
Matan Barakb4ff3a32016-02-09 14:57:42 +02004478 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004479 u8 op_mod[0x10];
4480
Matan Barakb4ff3a32016-02-09 14:57:42 +02004481 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004482 u8 rmpn[0x18];
4483
Matan Barakb4ff3a32016-02-09 14:57:42 +02004484 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004485};
4486
4487struct mlx5_ifc_query_qp_out_bits {
4488 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004489 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004490
4491 u8 syndrome[0x20];
4492
Matan Barakb4ff3a32016-02-09 14:57:42 +02004493 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004494
4495 u8 opt_param_mask[0x20];
4496
Matan Barakb4ff3a32016-02-09 14:57:42 +02004497 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004498
4499 struct mlx5_ifc_qpc_bits qpc;
4500
Matan Barakb4ff3a32016-02-09 14:57:42 +02004501 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03004502
4503 u8 pas[0][0x40];
4504};
4505
4506struct mlx5_ifc_query_qp_in_bits {
4507 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004508 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004509
Matan Barakb4ff3a32016-02-09 14:57:42 +02004510 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004511 u8 op_mod[0x10];
4512
Matan Barakb4ff3a32016-02-09 14:57:42 +02004513 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004514 u8 qpn[0x18];
4515
Matan Barakb4ff3a32016-02-09 14:57:42 +02004516 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004517};
4518
4519struct mlx5_ifc_query_q_counter_out_bits {
4520 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004521 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004522
4523 u8 syndrome[0x20];
4524
Matan Barakb4ff3a32016-02-09 14:57:42 +02004525 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004526
4527 u8 rx_write_requests[0x20];
4528
Matan Barakb4ff3a32016-02-09 14:57:42 +02004529 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004530
4531 u8 rx_read_requests[0x20];
4532
Matan Barakb4ff3a32016-02-09 14:57:42 +02004533 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004534
4535 u8 rx_atomic_requests[0x20];
4536
Matan Barakb4ff3a32016-02-09 14:57:42 +02004537 u8 reserved_at_120[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004538
4539 u8 rx_dct_connect[0x20];
4540
Matan Barakb4ff3a32016-02-09 14:57:42 +02004541 u8 reserved_at_160[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004542
4543 u8 out_of_buffer[0x20];
4544
Matan Barakb4ff3a32016-02-09 14:57:42 +02004545 u8 reserved_at_1a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004546
4547 u8 out_of_sequence[0x20];
4548
Saeed Mahameed74862162016-06-09 15:11:34 +03004549 u8 reserved_at_1e0[0x20];
4550
4551 u8 duplicate_request[0x20];
4552
4553 u8 reserved_at_220[0x20];
4554
4555 u8 rnr_nak_retry_err[0x20];
4556
4557 u8 reserved_at_260[0x20];
4558
4559 u8 packet_seq_err[0x20];
4560
4561 u8 reserved_at_2a0[0x20];
4562
4563 u8 implied_nak_seq_err[0x20];
4564
4565 u8 reserved_at_2e0[0x20];
4566
4567 u8 local_ack_timeout_err[0x20];
4568
Parav Pandit58dcb602017-06-19 07:19:37 +03004569 u8 reserved_at_320[0xa0];
4570
4571 u8 resp_local_length_error[0x20];
4572
4573 u8 req_local_length_error[0x20];
4574
4575 u8 resp_local_qp_error[0x20];
4576
4577 u8 local_operation_error[0x20];
4578
4579 u8 resp_local_protection[0x20];
4580
4581 u8 req_local_protection[0x20];
4582
4583 u8 resp_cqe_error[0x20];
4584
4585 u8 req_cqe_error[0x20];
4586
4587 u8 req_mw_binding[0x20];
4588
4589 u8 req_bad_response[0x20];
4590
4591 u8 req_remote_invalid_request[0x20];
4592
4593 u8 resp_remote_invalid_request[0x20];
4594
4595 u8 req_remote_access_errors[0x20];
4596
4597 u8 resp_remote_access_errors[0x20];
4598
4599 u8 req_remote_operation_errors[0x20];
4600
4601 u8 req_transport_retries_exceeded[0x20];
4602
4603 u8 cq_overflow[0x20];
4604
4605 u8 resp_cqe_flush_error[0x20];
4606
4607 u8 req_cqe_flush_error[0x20];
4608
4609 u8 reserved_at_620[0x1e0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004610};
4611
4612struct mlx5_ifc_query_q_counter_in_bits {
4613 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004614 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004615
Matan Barakb4ff3a32016-02-09 14:57:42 +02004616 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004617 u8 op_mod[0x10];
4618
Matan Barakb4ff3a32016-02-09 14:57:42 +02004619 u8 reserved_at_40[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03004620
4621 u8 clear[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004622 u8 reserved_at_c1[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03004623
Matan Barakb4ff3a32016-02-09 14:57:42 +02004624 u8 reserved_at_e0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004625 u8 counter_set_id[0x8];
4626};
4627
4628struct mlx5_ifc_query_pages_out_bits {
4629 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004630 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004631
4632 u8 syndrome[0x20];
4633
Bodong Wang591905b2019-02-12 22:55:35 -08004634 u8 embedded_cpu_function[0x1];
4635 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03004636 u8 function_id[0x10];
4637
4638 u8 num_pages[0x20];
4639};
4640
4641enum {
4642 MLX5_QUERY_PAGES_IN_OP_MOD_BOOT_PAGES = 0x1,
4643 MLX5_QUERY_PAGES_IN_OP_MOD_INIT_PAGES = 0x2,
4644 MLX5_QUERY_PAGES_IN_OP_MOD_REGULAR_PAGES = 0x3,
4645};
4646
4647struct mlx5_ifc_query_pages_in_bits {
4648 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004649 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004650
Matan Barakb4ff3a32016-02-09 14:57:42 +02004651 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004652 u8 op_mod[0x10];
4653
Bodong Wang591905b2019-02-12 22:55:35 -08004654 u8 embedded_cpu_function[0x1];
4655 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03004656 u8 function_id[0x10];
4657
Matan Barakb4ff3a32016-02-09 14:57:42 +02004658 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004659};
4660
4661struct mlx5_ifc_query_nic_vport_context_out_bits {
4662 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004663 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004664
4665 u8 syndrome[0x20];
4666
Matan Barakb4ff3a32016-02-09 14:57:42 +02004667 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004668
4669 struct mlx5_ifc_nic_vport_context_bits nic_vport_context;
4670};
4671
4672struct mlx5_ifc_query_nic_vport_context_in_bits {
4673 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004674 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004675
Matan Barakb4ff3a32016-02-09 14:57:42 +02004676 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004677 u8 op_mod[0x10];
4678
4679 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004680 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03004681 u8 vport_number[0x10];
4682
Matan Barakb4ff3a32016-02-09 14:57:42 +02004683 u8 reserved_at_60[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03004684 u8 allowed_list_type[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004685 u8 reserved_at_68[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004686};
4687
4688struct mlx5_ifc_query_mkey_out_bits {
4689 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004690 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004691
4692 u8 syndrome[0x20];
4693
Matan Barakb4ff3a32016-02-09 14:57:42 +02004694 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004695
4696 struct mlx5_ifc_mkc_bits memory_key_mkey_entry;
4697
Matan Barakb4ff3a32016-02-09 14:57:42 +02004698 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03004699
4700 u8 bsf0_klm0_pas_mtt0_1[16][0x8];
4701
4702 u8 bsf1_klm1_pas_mtt2_3[16][0x8];
4703};
4704
4705struct mlx5_ifc_query_mkey_in_bits {
4706 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004707 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004708
Matan Barakb4ff3a32016-02-09 14:57:42 +02004709 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004710 u8 op_mod[0x10];
4711
Matan Barakb4ff3a32016-02-09 14:57:42 +02004712 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004713 u8 mkey_index[0x18];
4714
4715 u8 pg_access[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004716 u8 reserved_at_61[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03004717};
4718
4719struct mlx5_ifc_query_mad_demux_out_bits {
4720 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004721 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004722
4723 u8 syndrome[0x20];
4724
Matan Barakb4ff3a32016-02-09 14:57:42 +02004725 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004726
4727 u8 mad_dumux_parameters_block[0x20];
4728};
4729
4730struct mlx5_ifc_query_mad_demux_in_bits {
4731 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004732 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004733
Matan Barakb4ff3a32016-02-09 14:57:42 +02004734 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004735 u8 op_mod[0x10];
4736
Matan Barakb4ff3a32016-02-09 14:57:42 +02004737 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004738};
4739
4740struct mlx5_ifc_query_l2_table_entry_out_bits {
4741 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004742 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004743
4744 u8 syndrome[0x20];
4745
Matan Barakb4ff3a32016-02-09 14:57:42 +02004746 u8 reserved_at_40[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004747
Matan Barakb4ff3a32016-02-09 14:57:42 +02004748 u8 reserved_at_e0[0x13];
Saeed Mahameede2816822015-05-28 22:28:40 +03004749 u8 vlan_valid[0x1];
4750 u8 vlan[0xc];
4751
4752 struct mlx5_ifc_mac_address_layout_bits mac_address;
4753
Matan Barakb4ff3a32016-02-09 14:57:42 +02004754 u8 reserved_at_140[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004755};
4756
4757struct mlx5_ifc_query_l2_table_entry_in_bits {
4758 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004759 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004760
Matan Barakb4ff3a32016-02-09 14:57:42 +02004761 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004762 u8 op_mod[0x10];
4763
Matan Barakb4ff3a32016-02-09 14:57:42 +02004764 u8 reserved_at_40[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03004765
Matan Barakb4ff3a32016-02-09 14:57:42 +02004766 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004767 u8 table_index[0x18];
4768
Matan Barakb4ff3a32016-02-09 14:57:42 +02004769 u8 reserved_at_c0[0x140];
Saeed Mahameede2816822015-05-28 22:28:40 +03004770};
4771
4772struct mlx5_ifc_query_issi_out_bits {
4773 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004774 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004775
4776 u8 syndrome[0x20];
4777
Matan Barakb4ff3a32016-02-09 14:57:42 +02004778 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004779 u8 current_issi[0x10];
4780
Matan Barakb4ff3a32016-02-09 14:57:42 +02004781 u8 reserved_at_60[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004782
Matan Barakb4ff3a32016-02-09 14:57:42 +02004783 u8 reserved_at_100[76][0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004784 u8 supported_issi_dw0[0x20];
4785};
4786
4787struct mlx5_ifc_query_issi_in_bits {
4788 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004789 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004790
Matan Barakb4ff3a32016-02-09 14:57:42 +02004791 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004792 u8 op_mod[0x10];
4793
Matan Barakb4ff3a32016-02-09 14:57:42 +02004794 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004795};
4796
Saeed Mahameed0dbc6fe2016-11-17 13:45:59 +02004797struct mlx5_ifc_set_driver_version_out_bits {
4798 u8 status[0x8];
4799 u8 reserved_0[0x18];
4800
4801 u8 syndrome[0x20];
4802 u8 reserved_1[0x40];
4803};
4804
4805struct mlx5_ifc_set_driver_version_in_bits {
4806 u8 opcode[0x10];
4807 u8 reserved_0[0x10];
4808
4809 u8 reserved_1[0x10];
4810 u8 op_mod[0x10];
4811
4812 u8 reserved_2[0x40];
4813 u8 driver_version[64][0x8];
4814};
4815
Saeed Mahameede2816822015-05-28 22:28:40 +03004816struct mlx5_ifc_query_hca_vport_pkey_out_bits {
4817 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004818 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004819
4820 u8 syndrome[0x20];
4821
Matan Barakb4ff3a32016-02-09 14:57:42 +02004822 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004823
4824 struct mlx5_ifc_pkey_bits pkey[0];
4825};
4826
4827struct mlx5_ifc_query_hca_vport_pkey_in_bits {
4828 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004829 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004830
Matan Barakb4ff3a32016-02-09 14:57:42 +02004831 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004832 u8 op_mod[0x10];
4833
4834 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004835 u8 reserved_at_41[0xb];
Majd Dibbiny707c4602015-06-04 19:30:41 +03004836 u8 port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03004837 u8 vport_number[0x10];
4838
Matan Barakb4ff3a32016-02-09 14:57:42 +02004839 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004840 u8 pkey_index[0x10];
4841};
4842
Eli Coheneff901d2016-03-11 22:58:42 +02004843enum {
4844 MLX5_HCA_VPORT_SEL_PORT_GUID = 1 << 0,
4845 MLX5_HCA_VPORT_SEL_NODE_GUID = 1 << 1,
4846 MLX5_HCA_VPORT_SEL_STATE_POLICY = 1 << 2,
4847};
4848
Saeed Mahameede2816822015-05-28 22:28:40 +03004849struct mlx5_ifc_query_hca_vport_gid_out_bits {
4850 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004851 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004852
4853 u8 syndrome[0x20];
4854
Matan Barakb4ff3a32016-02-09 14:57:42 +02004855 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004856
4857 u8 gids_num[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004858 u8 reserved_at_70[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004859
4860 struct mlx5_ifc_array128_auto_bits gid[0];
4861};
4862
4863struct mlx5_ifc_query_hca_vport_gid_in_bits {
4864 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004865 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004866
Matan Barakb4ff3a32016-02-09 14:57:42 +02004867 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004868 u8 op_mod[0x10];
4869
4870 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004871 u8 reserved_at_41[0xb];
Majd Dibbiny707c4602015-06-04 19:30:41 +03004872 u8 port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03004873 u8 vport_number[0x10];
4874
Matan Barakb4ff3a32016-02-09 14:57:42 +02004875 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004876 u8 gid_index[0x10];
4877};
4878
4879struct mlx5_ifc_query_hca_vport_context_out_bits {
4880 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004881 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004882
4883 u8 syndrome[0x20];
4884
Matan Barakb4ff3a32016-02-09 14:57:42 +02004885 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004886
4887 struct mlx5_ifc_hca_vport_context_bits hca_vport_context;
4888};
4889
4890struct mlx5_ifc_query_hca_vport_context_in_bits {
4891 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004892 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004893
Matan Barakb4ff3a32016-02-09 14:57:42 +02004894 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004895 u8 op_mod[0x10];
4896
4897 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004898 u8 reserved_at_41[0xb];
Majd Dibbiny707c4602015-06-04 19:30:41 +03004899 u8 port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03004900 u8 vport_number[0x10];
4901
Matan Barakb4ff3a32016-02-09 14:57:42 +02004902 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004903};
4904
4905struct mlx5_ifc_query_hca_cap_out_bits {
4906 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004907 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004908
4909 u8 syndrome[0x20];
4910
Matan Barakb4ff3a32016-02-09 14:57:42 +02004911 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004912
4913 union mlx5_ifc_hca_cap_union_bits capability;
Eli Cohenb7755162014-10-02 12:19:44 +03004914};
4915
4916struct mlx5_ifc_query_hca_cap_in_bits {
4917 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004918 u8 reserved_at_10[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03004919
Matan Barakb4ff3a32016-02-09 14:57:42 +02004920 u8 reserved_at_20[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03004921 u8 op_mod[0x10];
4922
Matan Barakb4ff3a32016-02-09 14:57:42 +02004923 u8 reserved_at_40[0x40];
Eli Cohenb7755162014-10-02 12:19:44 +03004924};
4925
Saeed Mahameede2816822015-05-28 22:28:40 +03004926struct mlx5_ifc_query_flow_table_out_bits {
Eli Cohenb7755162014-10-02 12:19:44 +03004927 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004928 u8 reserved_at_8[0x18];
Eli Cohenb7755162014-10-02 12:19:44 +03004929
4930 u8 syndrome[0x20];
4931
Matan Barakb4ff3a32016-02-09 14:57:42 +02004932 u8 reserved_at_40[0x80];
Eli Cohenb7755162014-10-02 12:19:44 +03004933
Matan Barakb4ff3a32016-02-09 14:57:42 +02004934 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004935 u8 level[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004936 u8 reserved_at_d0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004937 u8 log_size[0x8];
4938
Matan Barakb4ff3a32016-02-09 14:57:42 +02004939 u8 reserved_at_e0[0x120];
Eli Cohenb7755162014-10-02 12:19:44 +03004940};
4941
Saeed Mahameede2816822015-05-28 22:28:40 +03004942struct mlx5_ifc_query_flow_table_in_bits {
4943 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004944 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004945
Matan Barakb4ff3a32016-02-09 14:57:42 +02004946 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004947 u8 op_mod[0x10];
4948
Matan Barakb4ff3a32016-02-09 14:57:42 +02004949 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004950
4951 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004952 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004953
Matan Barakb4ff3a32016-02-09 14:57:42 +02004954 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004955 u8 table_id[0x18];
4956
Matan Barakb4ff3a32016-02-09 14:57:42 +02004957 u8 reserved_at_c0[0x140];
Saeed Mahameede2816822015-05-28 22:28:40 +03004958};
4959
4960struct mlx5_ifc_query_fte_out_bits {
4961 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004962 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004963
4964 u8 syndrome[0x20];
4965
Matan Barakb4ff3a32016-02-09 14:57:42 +02004966 u8 reserved_at_40[0x1c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004967
4968 struct mlx5_ifc_flow_context_bits flow_context;
4969};
4970
4971struct mlx5_ifc_query_fte_in_bits {
4972 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004973 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004974
Matan Barakb4ff3a32016-02-09 14:57:42 +02004975 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004976 u8 op_mod[0x10];
4977
Matan Barakb4ff3a32016-02-09 14:57:42 +02004978 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004979
4980 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004981 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004982
Matan Barakb4ff3a32016-02-09 14:57:42 +02004983 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004984 u8 table_id[0x18];
4985
Matan Barakb4ff3a32016-02-09 14:57:42 +02004986 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004987
4988 u8 flow_index[0x20];
4989
Matan Barakb4ff3a32016-02-09 14:57:42 +02004990 u8 reserved_at_120[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004991};
4992
4993enum {
4994 MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_OUTER_HEADERS = 0x0,
4995 MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS = 0x1,
4996 MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_INNER_HEADERS = 0x2,
Saeed Mahameed4c8b8512018-12-12 19:11:36 -08004997 MLX5_QUERY_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS_2 = 0x3,
Yevgeny Kliteynikb169e642019-04-29 18:14:20 +00004998 MLX5_QUERY_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS_3 = 0x4,
Saeed Mahameede2816822015-05-28 22:28:40 +03004999};
5000
5001struct mlx5_ifc_query_flow_group_out_bits {
5002 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005003 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005004
5005 u8 syndrome[0x20];
5006
Matan Barakb4ff3a32016-02-09 14:57:42 +02005007 u8 reserved_at_40[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03005008
5009 u8 start_flow_index[0x20];
5010
Matan Barakb4ff3a32016-02-09 14:57:42 +02005011 u8 reserved_at_100[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005012
5013 u8 end_flow_index[0x20];
5014
Matan Barakb4ff3a32016-02-09 14:57:42 +02005015 u8 reserved_at_140[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03005016
Matan Barakb4ff3a32016-02-09 14:57:42 +02005017 u8 reserved_at_1e0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005018 u8 match_criteria_enable[0x8];
5019
5020 struct mlx5_ifc_fte_match_param_bits match_criteria;
5021
Matan Barakb4ff3a32016-02-09 14:57:42 +02005022 u8 reserved_at_1200[0xe00];
Saeed Mahameede2816822015-05-28 22:28:40 +03005023};
5024
5025struct mlx5_ifc_query_flow_group_in_bits {
5026 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005027 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005028
Matan Barakb4ff3a32016-02-09 14:57:42 +02005029 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005030 u8 op_mod[0x10];
5031
Matan Barakb4ff3a32016-02-09 14:57:42 +02005032 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005033
5034 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005035 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005036
Matan Barakb4ff3a32016-02-09 14:57:42 +02005037 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005038 u8 table_id[0x18];
5039
5040 u8 group_id[0x20];
5041
Matan Barakb4ff3a32016-02-09 14:57:42 +02005042 u8 reserved_at_e0[0x120];
Saeed Mahameede2816822015-05-28 22:28:40 +03005043};
5044
Amir Vadai9dc0b282016-05-13 12:55:39 +00005045struct mlx5_ifc_query_flow_counter_out_bits {
5046 u8 status[0x8];
5047 u8 reserved_at_8[0x18];
5048
5049 u8 syndrome[0x20];
5050
5051 u8 reserved_at_40[0x40];
5052
5053 struct mlx5_ifc_traffic_counter_bits flow_statistics[0];
5054};
5055
5056struct mlx5_ifc_query_flow_counter_in_bits {
5057 u8 opcode[0x10];
5058 u8 reserved_at_10[0x10];
5059
5060 u8 reserved_at_20[0x10];
5061 u8 op_mod[0x10];
5062
5063 u8 reserved_at_40[0x80];
5064
5065 u8 clear[0x1];
5066 u8 reserved_at_c1[0xf];
5067 u8 num_of_counters[0x10];
5068
Rabie Louloua8ffcc72017-07-09 13:39:30 +03005069 u8 flow_counter_id[0x20];
Amir Vadai9dc0b282016-05-13 12:55:39 +00005070};
5071
Saeed Mahameedd6666752015-12-01 18:03:22 +02005072struct mlx5_ifc_query_esw_vport_context_out_bits {
5073 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005074 u8 reserved_at_8[0x18];
Saeed Mahameedd6666752015-12-01 18:03:22 +02005075
5076 u8 syndrome[0x20];
5077
Matan Barakb4ff3a32016-02-09 14:57:42 +02005078 u8 reserved_at_40[0x40];
Saeed Mahameedd6666752015-12-01 18:03:22 +02005079
5080 struct mlx5_ifc_esw_vport_context_bits esw_vport_context;
5081};
5082
5083struct mlx5_ifc_query_esw_vport_context_in_bits {
5084 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005085 u8 reserved_at_10[0x10];
Saeed Mahameedd6666752015-12-01 18:03:22 +02005086
Matan Barakb4ff3a32016-02-09 14:57:42 +02005087 u8 reserved_at_20[0x10];
Saeed Mahameedd6666752015-12-01 18:03:22 +02005088 u8 op_mod[0x10];
5089
5090 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005091 u8 reserved_at_41[0xf];
Saeed Mahameedd6666752015-12-01 18:03:22 +02005092 u8 vport_number[0x10];
5093
Matan Barakb4ff3a32016-02-09 14:57:42 +02005094 u8 reserved_at_60[0x20];
Saeed Mahameedd6666752015-12-01 18:03:22 +02005095};
5096
5097struct mlx5_ifc_modify_esw_vport_context_out_bits {
5098 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005099 u8 reserved_at_8[0x18];
Saeed Mahameedd6666752015-12-01 18:03:22 +02005100
5101 u8 syndrome[0x20];
5102
Matan Barakb4ff3a32016-02-09 14:57:42 +02005103 u8 reserved_at_40[0x40];
Saeed Mahameedd6666752015-12-01 18:03:22 +02005104};
5105
5106struct mlx5_ifc_esw_vport_context_fields_select_bits {
Jianbo Liu65c0f2c2019-06-25 17:47:50 +00005107 u8 reserved_at_0[0x1b];
5108 u8 fdb_to_vport_reg_c_id[0x1];
Saeed Mahameedd6666752015-12-01 18:03:22 +02005109 u8 vport_cvlan_insert[0x1];
5110 u8 vport_svlan_insert[0x1];
5111 u8 vport_cvlan_strip[0x1];
5112 u8 vport_svlan_strip[0x1];
5113};
5114
5115struct mlx5_ifc_modify_esw_vport_context_in_bits {
5116 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005117 u8 reserved_at_10[0x10];
Saeed Mahameedd6666752015-12-01 18:03:22 +02005118
Matan Barakb4ff3a32016-02-09 14:57:42 +02005119 u8 reserved_at_20[0x10];
Saeed Mahameedd6666752015-12-01 18:03:22 +02005120 u8 op_mod[0x10];
5121
5122 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005123 u8 reserved_at_41[0xf];
Saeed Mahameedd6666752015-12-01 18:03:22 +02005124 u8 vport_number[0x10];
5125
5126 struct mlx5_ifc_esw_vport_context_fields_select_bits field_select;
5127
5128 struct mlx5_ifc_esw_vport_context_bits esw_vport_context;
5129};
5130
Saeed Mahameede2816822015-05-28 22:28:40 +03005131struct mlx5_ifc_query_eq_out_bits {
Eli Cohenb7755162014-10-02 12:19:44 +03005132 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005133 u8 reserved_at_8[0x18];
Eli Cohenb7755162014-10-02 12:19:44 +03005134
5135 u8 syndrome[0x20];
5136
Matan Barakb4ff3a32016-02-09 14:57:42 +02005137 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005138
5139 struct mlx5_ifc_eqc_bits eq_context_entry;
5140
Matan Barakb4ff3a32016-02-09 14:57:42 +02005141 u8 reserved_at_280[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005142
5143 u8 event_bitmask[0x40];
5144
Matan Barakb4ff3a32016-02-09 14:57:42 +02005145 u8 reserved_at_300[0x580];
Saeed Mahameede2816822015-05-28 22:28:40 +03005146
5147 u8 pas[0][0x40];
5148};
5149
5150struct mlx5_ifc_query_eq_in_bits {
5151 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005152 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005153
Matan Barakb4ff3a32016-02-09 14:57:42 +02005154 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005155 u8 op_mod[0x10];
5156
Matan Barakb4ff3a32016-02-09 14:57:42 +02005157 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005158 u8 eq_number[0x8];
5159
Matan Barakb4ff3a32016-02-09 14:57:42 +02005160 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005161};
5162
Mark Bloch60786f02018-08-28 14:18:46 +03005163struct mlx5_ifc_packet_reformat_context_in_bits {
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005164 u8 reserved_at_0[0x5];
Mark Bloch60786f02018-08-28 14:18:46 +03005165 u8 reformat_type[0x3];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005166 u8 reserved_at_8[0xe];
Mark Bloch60786f02018-08-28 14:18:46 +03005167 u8 reformat_data_size[0xa];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005168
5169 u8 reserved_at_20[0x10];
Mark Bloch60786f02018-08-28 14:18:46 +03005170 u8 reformat_data[2][0x8];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005171
Mark Bloch60786f02018-08-28 14:18:46 +03005172 u8 more_reformat_data[0][0x8];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005173};
5174
Mark Bloch60786f02018-08-28 14:18:46 +03005175struct mlx5_ifc_query_packet_reformat_context_out_bits {
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005176 u8 status[0x8];
5177 u8 reserved_at_8[0x18];
5178
5179 u8 syndrome[0x20];
5180
5181 u8 reserved_at_40[0xa0];
5182
Mark Bloch60786f02018-08-28 14:18:46 +03005183 struct mlx5_ifc_packet_reformat_context_in_bits packet_reformat_context[0];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005184};
5185
Mark Bloch60786f02018-08-28 14:18:46 +03005186struct mlx5_ifc_query_packet_reformat_context_in_bits {
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005187 u8 opcode[0x10];
5188 u8 reserved_at_10[0x10];
5189
5190 u8 reserved_at_20[0x10];
5191 u8 op_mod[0x10];
5192
Mark Bloch60786f02018-08-28 14:18:46 +03005193 u8 packet_reformat_id[0x20];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005194
5195 u8 reserved_at_60[0xa0];
5196};
5197
Mark Bloch60786f02018-08-28 14:18:46 +03005198struct mlx5_ifc_alloc_packet_reformat_context_out_bits {
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005199 u8 status[0x8];
5200 u8 reserved_at_8[0x18];
5201
5202 u8 syndrome[0x20];
5203
Mark Bloch60786f02018-08-28 14:18:46 +03005204 u8 packet_reformat_id[0x20];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005205
5206 u8 reserved_at_60[0x20];
5207};
5208
Mark Bloche0e7a382018-08-28 14:18:45 +03005209enum {
Mark Bloch60786f02018-08-28 14:18:46 +03005210 MLX5_REFORMAT_TYPE_L2_TO_VXLAN = 0x0,
5211 MLX5_REFORMAT_TYPE_L2_TO_NVGRE = 0x1,
Mark Blochbea4e1f2018-08-28 14:18:47 +03005212 MLX5_REFORMAT_TYPE_L2_TO_L2_TUNNEL = 0x2,
5213 MLX5_REFORMAT_TYPE_L3_TUNNEL_TO_L2 = 0x3,
5214 MLX5_REFORMAT_TYPE_L2_TO_L3_TUNNEL = 0x4,
Mark Bloche0e7a382018-08-28 14:18:45 +03005215};
5216
Mark Bloch60786f02018-08-28 14:18:46 +03005217struct mlx5_ifc_alloc_packet_reformat_context_in_bits {
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005218 u8 opcode[0x10];
5219 u8 reserved_at_10[0x10];
5220
5221 u8 reserved_at_20[0x10];
5222 u8 op_mod[0x10];
5223
5224 u8 reserved_at_40[0xa0];
5225
Mark Bloch60786f02018-08-28 14:18:46 +03005226 struct mlx5_ifc_packet_reformat_context_in_bits packet_reformat_context;
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005227};
5228
Mark Bloch60786f02018-08-28 14:18:46 +03005229struct mlx5_ifc_dealloc_packet_reformat_context_out_bits {
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005230 u8 status[0x8];
5231 u8 reserved_at_8[0x18];
5232
5233 u8 syndrome[0x20];
5234
5235 u8 reserved_at_40[0x40];
5236};
5237
Mark Bloch60786f02018-08-28 14:18:46 +03005238struct mlx5_ifc_dealloc_packet_reformat_context_in_bits {
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005239 u8 opcode[0x10];
5240 u8 reserved_at_10[0x10];
5241
5242 u8 reserved_20[0x10];
5243 u8 op_mod[0x10];
5244
Mark Bloch60786f02018-08-28 14:18:46 +03005245 u8 packet_reformat_id[0x20];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005246
5247 u8 reserved_60[0x20];
5248};
5249
Or Gerlitz2a69cb92017-01-19 19:31:25 +02005250struct mlx5_ifc_set_action_in_bits {
5251 u8 action_type[0x4];
5252 u8 field[0xc];
5253 u8 reserved_at_10[0x3];
5254 u8 offset[0x5];
5255 u8 reserved_at_18[0x3];
5256 u8 length[0x5];
5257
5258 u8 data[0x20];
5259};
5260
5261struct mlx5_ifc_add_action_in_bits {
5262 u8 action_type[0x4];
5263 u8 field[0xc];
5264 u8 reserved_at_10[0x10];
5265
5266 u8 data[0x20];
5267};
5268
5269union mlx5_ifc_set_action_in_add_action_in_auto_bits {
5270 struct mlx5_ifc_set_action_in_bits set_action_in;
5271 struct mlx5_ifc_add_action_in_bits add_action_in;
5272 u8 reserved_at_0[0x40];
5273};
5274
5275enum {
5276 MLX5_ACTION_TYPE_SET = 0x1,
5277 MLX5_ACTION_TYPE_ADD = 0x2,
5278};
5279
5280enum {
5281 MLX5_ACTION_IN_FIELD_OUT_SMAC_47_16 = 0x1,
5282 MLX5_ACTION_IN_FIELD_OUT_SMAC_15_0 = 0x2,
5283 MLX5_ACTION_IN_FIELD_OUT_ETHERTYPE = 0x3,
5284 MLX5_ACTION_IN_FIELD_OUT_DMAC_47_16 = 0x4,
5285 MLX5_ACTION_IN_FIELD_OUT_DMAC_15_0 = 0x5,
5286 MLX5_ACTION_IN_FIELD_OUT_IP_DSCP = 0x6,
5287 MLX5_ACTION_IN_FIELD_OUT_TCP_FLAGS = 0x7,
5288 MLX5_ACTION_IN_FIELD_OUT_TCP_SPORT = 0x8,
5289 MLX5_ACTION_IN_FIELD_OUT_TCP_DPORT = 0x9,
5290 MLX5_ACTION_IN_FIELD_OUT_IP_TTL = 0xa,
5291 MLX5_ACTION_IN_FIELD_OUT_UDP_SPORT = 0xb,
5292 MLX5_ACTION_IN_FIELD_OUT_UDP_DPORT = 0xc,
5293 MLX5_ACTION_IN_FIELD_OUT_SIPV6_127_96 = 0xd,
5294 MLX5_ACTION_IN_FIELD_OUT_SIPV6_95_64 = 0xe,
5295 MLX5_ACTION_IN_FIELD_OUT_SIPV6_63_32 = 0xf,
5296 MLX5_ACTION_IN_FIELD_OUT_SIPV6_31_0 = 0x10,
5297 MLX5_ACTION_IN_FIELD_OUT_DIPV6_127_96 = 0x11,
5298 MLX5_ACTION_IN_FIELD_OUT_DIPV6_95_64 = 0x12,
5299 MLX5_ACTION_IN_FIELD_OUT_DIPV6_63_32 = 0x13,
5300 MLX5_ACTION_IN_FIELD_OUT_DIPV6_31_0 = 0x14,
5301 MLX5_ACTION_IN_FIELD_OUT_SIPV4 = 0x15,
5302 MLX5_ACTION_IN_FIELD_OUT_DIPV4 = 0x16,
Eli Britstein0eb69bb2019-03-21 15:51:40 -07005303 MLX5_ACTION_IN_FIELD_OUT_FIRST_VID = 0x17,
Or Gerlitz0c0316f2017-06-13 11:09:57 +03005304 MLX5_ACTION_IN_FIELD_OUT_IPV6_HOPLIMIT = 0x47,
Jianbo Liu65c0f2c2019-06-25 17:47:50 +00005305 MLX5_ACTION_IN_FIELD_METADATA_REG_C_0 = 0x51,
Or Gerlitz2a69cb92017-01-19 19:31:25 +02005306};
5307
5308struct mlx5_ifc_alloc_modify_header_context_out_bits {
5309 u8 status[0x8];
5310 u8 reserved_at_8[0x18];
5311
5312 u8 syndrome[0x20];
5313
5314 u8 modify_header_id[0x20];
5315
5316 u8 reserved_at_60[0x20];
5317};
5318
5319struct mlx5_ifc_alloc_modify_header_context_in_bits {
5320 u8 opcode[0x10];
5321 u8 reserved_at_10[0x10];
5322
5323 u8 reserved_at_20[0x10];
5324 u8 op_mod[0x10];
5325
5326 u8 reserved_at_40[0x20];
5327
5328 u8 table_type[0x8];
5329 u8 reserved_at_68[0x10];
5330 u8 num_of_actions[0x8];
5331
5332 union mlx5_ifc_set_action_in_add_action_in_auto_bits actions[0];
5333};
5334
5335struct mlx5_ifc_dealloc_modify_header_context_out_bits {
5336 u8 status[0x8];
5337 u8 reserved_at_8[0x18];
5338
5339 u8 syndrome[0x20];
5340
5341 u8 reserved_at_40[0x40];
5342};
5343
5344struct mlx5_ifc_dealloc_modify_header_context_in_bits {
5345 u8 opcode[0x10];
5346 u8 reserved_at_10[0x10];
5347
5348 u8 reserved_at_20[0x10];
5349 u8 op_mod[0x10];
5350
5351 u8 modify_header_id[0x20];
5352
5353 u8 reserved_at_60[0x20];
5354};
5355
Saeed Mahameede2816822015-05-28 22:28:40 +03005356struct mlx5_ifc_query_dct_out_bits {
5357 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005358 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005359
5360 u8 syndrome[0x20];
5361
Matan Barakb4ff3a32016-02-09 14:57:42 +02005362 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005363
5364 struct mlx5_ifc_dctc_bits dct_context_entry;
5365
Matan Barakb4ff3a32016-02-09 14:57:42 +02005366 u8 reserved_at_280[0x180];
Saeed Mahameede2816822015-05-28 22:28:40 +03005367};
5368
5369struct mlx5_ifc_query_dct_in_bits {
5370 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005371 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005372
Matan Barakb4ff3a32016-02-09 14:57:42 +02005373 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005374 u8 op_mod[0x10];
5375
Matan Barakb4ff3a32016-02-09 14:57:42 +02005376 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005377 u8 dctn[0x18];
5378
Matan Barakb4ff3a32016-02-09 14:57:42 +02005379 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005380};
5381
5382struct mlx5_ifc_query_cq_out_bits {
5383 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005384 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005385
5386 u8 syndrome[0x20];
5387
Matan Barakb4ff3a32016-02-09 14:57:42 +02005388 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005389
5390 struct mlx5_ifc_cqc_bits cq_context;
5391
Matan Barakb4ff3a32016-02-09 14:57:42 +02005392 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03005393
5394 u8 pas[0][0x40];
5395};
5396
5397struct mlx5_ifc_query_cq_in_bits {
5398 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005399 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005400
Matan Barakb4ff3a32016-02-09 14:57:42 +02005401 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005402 u8 op_mod[0x10];
5403
Matan Barakb4ff3a32016-02-09 14:57:42 +02005404 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005405 u8 cqn[0x18];
5406
Matan Barakb4ff3a32016-02-09 14:57:42 +02005407 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005408};
5409
5410struct mlx5_ifc_query_cong_status_out_bits {
5411 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005412 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005413
5414 u8 syndrome[0x20];
5415
Matan Barakb4ff3a32016-02-09 14:57:42 +02005416 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005417
5418 u8 enable[0x1];
5419 u8 tag_enable[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005420 u8 reserved_at_62[0x1e];
Saeed Mahameede2816822015-05-28 22:28:40 +03005421};
5422
5423struct mlx5_ifc_query_cong_status_in_bits {
5424 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005425 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005426
Matan Barakb4ff3a32016-02-09 14:57:42 +02005427 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005428 u8 op_mod[0x10];
5429
Matan Barakb4ff3a32016-02-09 14:57:42 +02005430 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005431 u8 priority[0x4];
5432 u8 cong_protocol[0x4];
5433
Matan Barakb4ff3a32016-02-09 14:57:42 +02005434 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005435};
5436
5437struct mlx5_ifc_query_cong_statistics_out_bits {
5438 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005439 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005440
5441 u8 syndrome[0x20];
5442
Matan Barakb4ff3a32016-02-09 14:57:42 +02005443 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005444
Parav Pandite1f24a72017-04-16 07:29:29 +03005445 u8 rp_cur_flows[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005446
5447 u8 sum_flows[0x20];
5448
Parav Pandite1f24a72017-04-16 07:29:29 +03005449 u8 rp_cnp_ignored_high[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005450
Parav Pandite1f24a72017-04-16 07:29:29 +03005451 u8 rp_cnp_ignored_low[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005452
Parav Pandite1f24a72017-04-16 07:29:29 +03005453 u8 rp_cnp_handled_high[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005454
Parav Pandite1f24a72017-04-16 07:29:29 +03005455 u8 rp_cnp_handled_low[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005456
Matan Barakb4ff3a32016-02-09 14:57:42 +02005457 u8 reserved_at_140[0x100];
Saeed Mahameede2816822015-05-28 22:28:40 +03005458
5459 u8 time_stamp_high[0x20];
5460
5461 u8 time_stamp_low[0x20];
5462
5463 u8 accumulators_period[0x20];
5464
Parav Pandite1f24a72017-04-16 07:29:29 +03005465 u8 np_ecn_marked_roce_packets_high[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005466
Parav Pandite1f24a72017-04-16 07:29:29 +03005467 u8 np_ecn_marked_roce_packets_low[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005468
Parav Pandite1f24a72017-04-16 07:29:29 +03005469 u8 np_cnp_sent_high[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005470
Parav Pandite1f24a72017-04-16 07:29:29 +03005471 u8 np_cnp_sent_low[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005472
Matan Barakb4ff3a32016-02-09 14:57:42 +02005473 u8 reserved_at_320[0x560];
Saeed Mahameede2816822015-05-28 22:28:40 +03005474};
5475
5476struct mlx5_ifc_query_cong_statistics_in_bits {
5477 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005478 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005479
Matan Barakb4ff3a32016-02-09 14:57:42 +02005480 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005481 u8 op_mod[0x10];
5482
5483 u8 clear[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005484 u8 reserved_at_41[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03005485
Matan Barakb4ff3a32016-02-09 14:57:42 +02005486 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005487};
5488
5489struct mlx5_ifc_query_cong_params_out_bits {
5490 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005491 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005492
5493 u8 syndrome[0x20];
5494
Matan Barakb4ff3a32016-02-09 14:57:42 +02005495 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005496
5497 union mlx5_ifc_cong_control_roce_ecn_auto_bits congestion_parameters;
5498};
5499
5500struct mlx5_ifc_query_cong_params_in_bits {
5501 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005502 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005503
Matan Barakb4ff3a32016-02-09 14:57:42 +02005504 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005505 u8 op_mod[0x10];
5506
Matan Barakb4ff3a32016-02-09 14:57:42 +02005507 u8 reserved_at_40[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03005508 u8 cong_protocol[0x4];
5509
Matan Barakb4ff3a32016-02-09 14:57:42 +02005510 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005511};
5512
5513struct mlx5_ifc_query_adapter_out_bits {
5514 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005515 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005516
5517 u8 syndrome[0x20];
5518
Matan Barakb4ff3a32016-02-09 14:57:42 +02005519 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005520
5521 struct mlx5_ifc_query_adapter_param_block_bits query_adapter_struct;
5522};
5523
5524struct mlx5_ifc_query_adapter_in_bits {
5525 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005526 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005527
Matan Barakb4ff3a32016-02-09 14:57:42 +02005528 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005529 u8 op_mod[0x10];
5530
Matan Barakb4ff3a32016-02-09 14:57:42 +02005531 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005532};
5533
5534struct mlx5_ifc_qp_2rst_out_bits {
5535 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005536 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005537
5538 u8 syndrome[0x20];
5539
Matan Barakb4ff3a32016-02-09 14:57:42 +02005540 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005541};
5542
5543struct mlx5_ifc_qp_2rst_in_bits {
5544 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03005545 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005546
Matan Barakb4ff3a32016-02-09 14:57:42 +02005547 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005548 u8 op_mod[0x10];
5549
Matan Barakb4ff3a32016-02-09 14:57:42 +02005550 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005551 u8 qpn[0x18];
5552
Matan Barakb4ff3a32016-02-09 14:57:42 +02005553 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005554};
5555
5556struct mlx5_ifc_qp_2err_out_bits {
5557 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005558 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005559
5560 u8 syndrome[0x20];
5561
Matan Barakb4ff3a32016-02-09 14:57:42 +02005562 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005563};
5564
5565struct mlx5_ifc_qp_2err_in_bits {
5566 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03005567 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005568
Matan Barakb4ff3a32016-02-09 14:57:42 +02005569 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005570 u8 op_mod[0x10];
5571
Matan Barakb4ff3a32016-02-09 14:57:42 +02005572 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005573 u8 qpn[0x18];
5574
Matan Barakb4ff3a32016-02-09 14:57:42 +02005575 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005576};
5577
5578struct mlx5_ifc_page_fault_resume_out_bits {
5579 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005580 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005581
5582 u8 syndrome[0x20];
5583
Matan Barakb4ff3a32016-02-09 14:57:42 +02005584 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005585};
5586
5587struct mlx5_ifc_page_fault_resume_in_bits {
5588 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005589 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005590
Matan Barakb4ff3a32016-02-09 14:57:42 +02005591 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005592 u8 op_mod[0x10];
5593
5594 u8 error[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005595 u8 reserved_at_41[0x4];
Artemy Kovalyov223cdc72017-01-02 11:37:45 +02005596 u8 page_fault_type[0x3];
5597 u8 wq_number[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005598
Artemy Kovalyov223cdc72017-01-02 11:37:45 +02005599 u8 reserved_at_60[0x8];
5600 u8 token[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005601};
5602
5603struct mlx5_ifc_nop_out_bits {
5604 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005605 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005606
5607 u8 syndrome[0x20];
5608
Matan Barakb4ff3a32016-02-09 14:57:42 +02005609 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005610};
5611
5612struct mlx5_ifc_nop_in_bits {
5613 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005614 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005615
Matan Barakb4ff3a32016-02-09 14:57:42 +02005616 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005617 u8 op_mod[0x10];
5618
Matan Barakb4ff3a32016-02-09 14:57:42 +02005619 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005620};
5621
5622struct mlx5_ifc_modify_vport_state_out_bits {
5623 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005624 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005625
5626 u8 syndrome[0x20];
5627
Matan Barakb4ff3a32016-02-09 14:57:42 +02005628 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005629};
5630
5631struct mlx5_ifc_modify_vport_state_in_bits {
5632 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005633 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005634
Matan Barakb4ff3a32016-02-09 14:57:42 +02005635 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005636 u8 op_mod[0x10];
5637
5638 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005639 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03005640 u8 vport_number[0x10];
5641
Matan Barakb4ff3a32016-02-09 14:57:42 +02005642 u8 reserved_at_60[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005643 u8 admin_state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005644 u8 reserved_at_7c[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03005645};
5646
5647struct mlx5_ifc_modify_tis_out_bits {
5648 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005649 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005650
5651 u8 syndrome[0x20];
5652
Matan Barakb4ff3a32016-02-09 14:57:42 +02005653 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005654};
5655
majd@mellanox.com75850d02016-01-14 19:13:06 +02005656struct mlx5_ifc_modify_tis_bitmask_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02005657 u8 reserved_at_0[0x20];
majd@mellanox.com75850d02016-01-14 19:13:06 +02005658
Aviv Heller84df61e2016-05-10 13:47:50 +03005659 u8 reserved_at_20[0x1d];
5660 u8 lag_tx_port_affinity[0x1];
5661 u8 strict_lag_tx_port_affinity[0x1];
majd@mellanox.com75850d02016-01-14 19:13:06 +02005662 u8 prio[0x1];
5663};
5664
Saeed Mahameede2816822015-05-28 22:28:40 +03005665struct mlx5_ifc_modify_tis_in_bits {
5666 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03005667 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005668
Matan Barakb4ff3a32016-02-09 14:57:42 +02005669 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005670 u8 op_mod[0x10];
5671
Matan Barakb4ff3a32016-02-09 14:57:42 +02005672 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005673 u8 tisn[0x18];
5674
Matan Barakb4ff3a32016-02-09 14:57:42 +02005675 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005676
majd@mellanox.com75850d02016-01-14 19:13:06 +02005677 struct mlx5_ifc_modify_tis_bitmask_bits bitmask;
Saeed Mahameede2816822015-05-28 22:28:40 +03005678
Matan Barakb4ff3a32016-02-09 14:57:42 +02005679 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005680
5681 struct mlx5_ifc_tisc_bits ctx;
5682};
5683
Achiad Shochatd9eea402015-08-04 14:05:42 +03005684struct mlx5_ifc_modify_tir_bitmask_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02005685 u8 reserved_at_0[0x20];
Achiad Shochatd9eea402015-08-04 14:05:42 +03005686
Matan Barakb4ff3a32016-02-09 14:57:42 +02005687 u8 reserved_at_20[0x1b];
Tariq Toukan66189962015-11-12 19:35:26 +02005688 u8 self_lb_en[0x1];
Tariq Toukanbdfc0282016-02-29 21:17:12 +02005689 u8 reserved_at_3c[0x1];
5690 u8 hash[0x1];
5691 u8 reserved_at_3e[0x1];
Achiad Shochatd9eea402015-08-04 14:05:42 +03005692 u8 lro[0x1];
5693};
5694
Saeed Mahameede2816822015-05-28 22:28:40 +03005695struct mlx5_ifc_modify_tir_out_bits {
5696 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005697 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005698
5699 u8 syndrome[0x20];
5700
Matan Barakb4ff3a32016-02-09 14:57:42 +02005701 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005702};
5703
5704struct mlx5_ifc_modify_tir_in_bits {
5705 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03005706 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005707
Matan Barakb4ff3a32016-02-09 14:57:42 +02005708 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005709 u8 op_mod[0x10];
5710
Matan Barakb4ff3a32016-02-09 14:57:42 +02005711 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005712 u8 tirn[0x18];
5713
Matan Barakb4ff3a32016-02-09 14:57:42 +02005714 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005715
Achiad Shochatd9eea402015-08-04 14:05:42 +03005716 struct mlx5_ifc_modify_tir_bitmask_bits bitmask;
Saeed Mahameede2816822015-05-28 22:28:40 +03005717
Matan Barakb4ff3a32016-02-09 14:57:42 +02005718 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005719
5720 struct mlx5_ifc_tirc_bits ctx;
5721};
5722
5723struct mlx5_ifc_modify_sq_out_bits {
5724 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005725 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005726
5727 u8 syndrome[0x20];
5728
Matan Barakb4ff3a32016-02-09 14:57:42 +02005729 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005730};
5731
5732struct mlx5_ifc_modify_sq_in_bits {
5733 u8 opcode[0x10];
Yishai Hadas430ae0d52018-09-20 21:35:23 +03005734 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005735
Matan Barakb4ff3a32016-02-09 14:57:42 +02005736 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005737 u8 op_mod[0x10];
5738
5739 u8 sq_state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005740 u8 reserved_at_44[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03005741 u8 sqn[0x18];
5742
Matan Barakb4ff3a32016-02-09 14:57:42 +02005743 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005744
5745 u8 modify_bitmask[0x40];
5746
Matan Barakb4ff3a32016-02-09 14:57:42 +02005747 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005748
5749 struct mlx5_ifc_sqc_bits ctx;
5750};
5751
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03005752struct mlx5_ifc_modify_scheduling_element_out_bits {
5753 u8 status[0x8];
5754 u8 reserved_at_8[0x18];
5755
5756 u8 syndrome[0x20];
5757
5758 u8 reserved_at_40[0x1c0];
5759};
5760
5761enum {
5762 MODIFY_SCHEDULING_ELEMENT_IN_MODIFY_BITMASK_BW_SHARE = 0x1,
5763 MODIFY_SCHEDULING_ELEMENT_IN_MODIFY_BITMASK_MAX_AVERAGE_BW = 0x2,
5764};
5765
5766struct mlx5_ifc_modify_scheduling_element_in_bits {
5767 u8 opcode[0x10];
5768 u8 reserved_at_10[0x10];
5769
5770 u8 reserved_at_20[0x10];
5771 u8 op_mod[0x10];
5772
5773 u8 scheduling_hierarchy[0x8];
5774 u8 reserved_at_48[0x18];
5775
5776 u8 scheduling_element_id[0x20];
5777
5778 u8 reserved_at_80[0x20];
5779
5780 u8 modify_bitmask[0x20];
5781
5782 u8 reserved_at_c0[0x40];
5783
5784 struct mlx5_ifc_scheduling_context_bits scheduling_context;
5785
5786 u8 reserved_at_300[0x100];
5787};
5788
Saeed Mahameede2816822015-05-28 22:28:40 +03005789struct mlx5_ifc_modify_rqt_out_bits {
5790 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005791 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005792
5793 u8 syndrome[0x20];
5794
Matan Barakb4ff3a32016-02-09 14:57:42 +02005795 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005796};
5797
Achiad Shochat5c503682015-08-04 14:05:43 +03005798struct mlx5_ifc_rqt_bitmask_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02005799 u8 reserved_at_0[0x20];
Achiad Shochat5c503682015-08-04 14:05:43 +03005800
Matan Barakb4ff3a32016-02-09 14:57:42 +02005801 u8 reserved_at_20[0x1f];
Achiad Shochat5c503682015-08-04 14:05:43 +03005802 u8 rqn_list[0x1];
5803};
5804
Saeed Mahameede2816822015-05-28 22:28:40 +03005805struct mlx5_ifc_modify_rqt_in_bits {
5806 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03005807 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005808
Matan Barakb4ff3a32016-02-09 14:57:42 +02005809 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005810 u8 op_mod[0x10];
5811
Matan Barakb4ff3a32016-02-09 14:57:42 +02005812 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005813 u8 rqtn[0x18];
5814
Matan Barakb4ff3a32016-02-09 14:57:42 +02005815 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005816
Achiad Shochat5c503682015-08-04 14:05:43 +03005817 struct mlx5_ifc_rqt_bitmask_bits bitmask;
Saeed Mahameede2816822015-05-28 22:28:40 +03005818
Matan Barakb4ff3a32016-02-09 14:57:42 +02005819 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005820
5821 struct mlx5_ifc_rqtc_bits ctx;
5822};
5823
5824struct mlx5_ifc_modify_rq_out_bits {
5825 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005826 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005827
5828 u8 syndrome[0x20];
5829
Matan Barakb4ff3a32016-02-09 14:57:42 +02005830 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005831};
5832
Alex Vesker83b502a2016-08-04 17:32:02 +03005833enum {
5834 MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_VSD = 1ULL << 1,
Guy Ergas102722f2017-02-20 16:18:17 +02005835 MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_SCATTER_FCS = 1ULL << 2,
Majd Dibbiny23a69642017-01-18 15:25:10 +02005836 MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_RQ_COUNTER_SET_ID = 1ULL << 3,
Alex Vesker83b502a2016-08-04 17:32:02 +03005837};
5838
Saeed Mahameede2816822015-05-28 22:28:40 +03005839struct mlx5_ifc_modify_rq_in_bits {
5840 u8 opcode[0x10];
Yishai Hadasd269b3a2018-09-20 21:35:22 +03005841 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005842
Matan Barakb4ff3a32016-02-09 14:57:42 +02005843 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005844 u8 op_mod[0x10];
5845
5846 u8 rq_state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005847 u8 reserved_at_44[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03005848 u8 rqn[0x18];
5849
Matan Barakb4ff3a32016-02-09 14:57:42 +02005850 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005851
5852 u8 modify_bitmask[0x40];
5853
Matan Barakb4ff3a32016-02-09 14:57:42 +02005854 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005855
5856 struct mlx5_ifc_rqc_bits ctx;
5857};
5858
5859struct mlx5_ifc_modify_rmp_out_bits {
5860 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005861 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005862
5863 u8 syndrome[0x20];
5864
Matan Barakb4ff3a32016-02-09 14:57:42 +02005865 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005866};
5867
Haggai Abramonvsky01949d02015-06-04 19:30:38 +03005868struct mlx5_ifc_rmp_bitmask_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02005869 u8 reserved_at_0[0x20];
Haggai Abramonvsky01949d02015-06-04 19:30:38 +03005870
Matan Barakb4ff3a32016-02-09 14:57:42 +02005871 u8 reserved_at_20[0x1f];
Haggai Abramonvsky01949d02015-06-04 19:30:38 +03005872 u8 lwm[0x1];
5873};
5874
Saeed Mahameede2816822015-05-28 22:28:40 +03005875struct mlx5_ifc_modify_rmp_in_bits {
5876 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03005877 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005878
Matan Barakb4ff3a32016-02-09 14:57:42 +02005879 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005880 u8 op_mod[0x10];
5881
5882 u8 rmp_state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005883 u8 reserved_at_44[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03005884 u8 rmpn[0x18];
5885
Matan Barakb4ff3a32016-02-09 14:57:42 +02005886 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005887
Haggai Abramonvsky01949d02015-06-04 19:30:38 +03005888 struct mlx5_ifc_rmp_bitmask_bits bitmask;
Saeed Mahameede2816822015-05-28 22:28:40 +03005889
Matan Barakb4ff3a32016-02-09 14:57:42 +02005890 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005891
5892 struct mlx5_ifc_rmpc_bits ctx;
5893};
5894
5895struct mlx5_ifc_modify_nic_vport_context_out_bits {
5896 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005897 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005898
5899 u8 syndrome[0x20];
5900
Matan Barakb4ff3a32016-02-09 14:57:42 +02005901 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005902};
5903
5904struct mlx5_ifc_modify_nic_vport_field_select_bits {
Daniel Jurgens32f69e42018-01-04 17:25:36 +02005905 u8 reserved_at_0[0x12];
5906 u8 affiliation[0x1];
Gal Pressmanc74d90c2018-11-07 20:31:37 +02005907 u8 reserved_at_13[0x1];
Huy Nguyenbded7472017-05-30 09:42:53 +03005908 u8 disable_uc_local_lb[0x1];
5909 u8 disable_mc_local_lb[0x1];
Noa Osherovich23898c72016-06-10 00:07:37 +03005910 u8 node_guid[0x1];
5911 u8 port_guid[0x1];
Hadar Hen Zion9def7122016-08-03 17:27:30 +03005912 u8 min_inline[0x1];
Saeed Mahameedd82b7312015-12-01 18:03:14 +02005913 u8 mtu[0x1];
5914 u8 change_event[0x1];
5915 u8 promisc[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03005916 u8 permanent_address[0x1];
5917 u8 addresses_list[0x1];
5918 u8 roce_en[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005919 u8 reserved_at_1f[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03005920};
5921
5922struct mlx5_ifc_modify_nic_vport_context_in_bits {
5923 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005924 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005925
Matan Barakb4ff3a32016-02-09 14:57:42 +02005926 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005927 u8 op_mod[0x10];
5928
5929 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005930 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03005931 u8 vport_number[0x10];
5932
5933 struct mlx5_ifc_modify_nic_vport_field_select_bits field_select;
5934
Matan Barakb4ff3a32016-02-09 14:57:42 +02005935 u8 reserved_at_80[0x780];
Saeed Mahameede2816822015-05-28 22:28:40 +03005936
5937 struct mlx5_ifc_nic_vport_context_bits nic_vport_context;
5938};
5939
5940struct mlx5_ifc_modify_hca_vport_context_out_bits {
5941 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005942 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005943
5944 u8 syndrome[0x20];
5945
Matan Barakb4ff3a32016-02-09 14:57:42 +02005946 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005947};
5948
5949struct mlx5_ifc_modify_hca_vport_context_in_bits {
5950 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005951 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005952
Matan Barakb4ff3a32016-02-09 14:57:42 +02005953 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005954 u8 op_mod[0x10];
5955
5956 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005957 u8 reserved_at_41[0xb];
Majd Dibbiny707c4602015-06-04 19:30:41 +03005958 u8 port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03005959 u8 vport_number[0x10];
5960
Matan Barakb4ff3a32016-02-09 14:57:42 +02005961 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005962
5963 struct mlx5_ifc_hca_vport_context_bits hca_vport_context;
5964};
5965
5966struct mlx5_ifc_modify_cq_out_bits {
5967 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005968 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005969
5970 u8 syndrome[0x20];
5971
Matan Barakb4ff3a32016-02-09 14:57:42 +02005972 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005973};
5974
5975enum {
5976 MLX5_MODIFY_CQ_IN_OP_MOD_MODIFY_CQ = 0x0,
5977 MLX5_MODIFY_CQ_IN_OP_MOD_RESIZE_CQ = 0x1,
5978};
5979
5980struct mlx5_ifc_modify_cq_in_bits {
5981 u8 opcode[0x10];
Yishai Hadas9ba481e2eb2018-09-20 21:35:20 +03005982 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005983
Matan Barakb4ff3a32016-02-09 14:57:42 +02005984 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005985 u8 op_mod[0x10];
5986
Matan Barakb4ff3a32016-02-09 14:57:42 +02005987 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005988 u8 cqn[0x18];
5989
5990 union mlx5_ifc_modify_field_select_resize_field_select_auto_bits modify_field_select_resize_field_select;
5991
5992 struct mlx5_ifc_cqc_bits cq_context;
5993
Leon Romanovskybd371972018-09-20 21:35:26 +03005994 u8 reserved_at_280[0x40];
5995
5996 u8 cq_umem_valid[0x1];
5997 u8 reserved_at_2c1[0x5bf];
Saeed Mahameede2816822015-05-28 22:28:40 +03005998
5999 u8 pas[0][0x40];
6000};
6001
6002struct mlx5_ifc_modify_cong_status_out_bits {
6003 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006004 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006005
6006 u8 syndrome[0x20];
6007
Matan Barakb4ff3a32016-02-09 14:57:42 +02006008 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006009};
6010
6011struct mlx5_ifc_modify_cong_status_in_bits {
6012 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006013 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006014
Matan Barakb4ff3a32016-02-09 14:57:42 +02006015 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006016 u8 op_mod[0x10];
6017
Matan Barakb4ff3a32016-02-09 14:57:42 +02006018 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006019 u8 priority[0x4];
6020 u8 cong_protocol[0x4];
6021
6022 u8 enable[0x1];
6023 u8 tag_enable[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006024 u8 reserved_at_62[0x1e];
Saeed Mahameede2816822015-05-28 22:28:40 +03006025};
6026
6027struct mlx5_ifc_modify_cong_params_out_bits {
6028 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006029 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006030
6031 u8 syndrome[0x20];
6032
Matan Barakb4ff3a32016-02-09 14:57:42 +02006033 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006034};
6035
6036struct mlx5_ifc_modify_cong_params_in_bits {
6037 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006038 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006039
Matan Barakb4ff3a32016-02-09 14:57:42 +02006040 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006041 u8 op_mod[0x10];
6042
Matan Barakb4ff3a32016-02-09 14:57:42 +02006043 u8 reserved_at_40[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03006044 u8 cong_protocol[0x4];
6045
6046 union mlx5_ifc_field_select_802_1_r_roce_auto_bits field_select;
6047
Matan Barakb4ff3a32016-02-09 14:57:42 +02006048 u8 reserved_at_80[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03006049
6050 union mlx5_ifc_cong_control_roce_ecn_auto_bits congestion_parameters;
6051};
6052
6053struct mlx5_ifc_manage_pages_out_bits {
6054 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006055 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006056
6057 u8 syndrome[0x20];
6058
6059 u8 output_num_entries[0x20];
6060
Matan Barakb4ff3a32016-02-09 14:57:42 +02006061 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006062
6063 u8 pas[0][0x40];
6064};
6065
6066enum {
6067 MLX5_MANAGE_PAGES_IN_OP_MOD_ALLOCATION_FAIL = 0x0,
6068 MLX5_MANAGE_PAGES_IN_OP_MOD_ALLOCATION_SUCCESS = 0x1,
6069 MLX5_MANAGE_PAGES_IN_OP_MOD_HCA_RETURN_PAGES = 0x2,
6070};
6071
6072struct mlx5_ifc_manage_pages_in_bits {
6073 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006074 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006075
Matan Barakb4ff3a32016-02-09 14:57:42 +02006076 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006077 u8 op_mod[0x10];
6078
Bodong Wang591905b2019-02-12 22:55:35 -08006079 u8 embedded_cpu_function[0x1];
6080 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03006081 u8 function_id[0x10];
6082
6083 u8 input_num_entries[0x20];
6084
6085 u8 pas[0][0x40];
6086};
6087
6088struct mlx5_ifc_mad_ifc_out_bits {
6089 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006090 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006091
6092 u8 syndrome[0x20];
6093
Matan Barakb4ff3a32016-02-09 14:57:42 +02006094 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006095
6096 u8 response_mad_packet[256][0x8];
6097};
6098
6099struct mlx5_ifc_mad_ifc_in_bits {
6100 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006101 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006102
Matan Barakb4ff3a32016-02-09 14:57:42 +02006103 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006104 u8 op_mod[0x10];
6105
6106 u8 remote_lid[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006107 u8 reserved_at_50[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006108 u8 port[0x8];
6109
Matan Barakb4ff3a32016-02-09 14:57:42 +02006110 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006111
6112 u8 mad[256][0x8];
6113};
6114
6115struct mlx5_ifc_init_hca_out_bits {
6116 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006117 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006118
6119 u8 syndrome[0x20];
6120
Matan Barakb4ff3a32016-02-09 14:57:42 +02006121 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006122};
6123
6124struct mlx5_ifc_init_hca_in_bits {
6125 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006126 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006127
Matan Barakb4ff3a32016-02-09 14:57:42 +02006128 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006129 u8 op_mod[0x10];
6130
Matan Barakb4ff3a32016-02-09 14:57:42 +02006131 u8 reserved_at_40[0x40];
Daniel Jurgens8737f812018-01-04 17:25:32 +02006132 u8 sw_owner_id[4][0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006133};
6134
6135struct mlx5_ifc_init2rtr_qp_out_bits {
6136 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006137 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006138
6139 u8 syndrome[0x20];
6140
Matan Barakb4ff3a32016-02-09 14:57:42 +02006141 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006142};
6143
6144struct mlx5_ifc_init2rtr_qp_in_bits {
6145 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03006146 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006147
Matan Barakb4ff3a32016-02-09 14:57:42 +02006148 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006149 u8 op_mod[0x10];
6150
Matan Barakb4ff3a32016-02-09 14:57:42 +02006151 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006152 u8 qpn[0x18];
6153
Matan Barakb4ff3a32016-02-09 14:57:42 +02006154 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006155
6156 u8 opt_param_mask[0x20];
6157
Matan Barakb4ff3a32016-02-09 14:57:42 +02006158 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006159
6160 struct mlx5_ifc_qpc_bits qpc;
6161
Matan Barakb4ff3a32016-02-09 14:57:42 +02006162 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03006163};
6164
6165struct mlx5_ifc_init2init_qp_out_bits {
6166 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006167 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006168
6169 u8 syndrome[0x20];
6170
Matan Barakb4ff3a32016-02-09 14:57:42 +02006171 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006172};
6173
6174struct mlx5_ifc_init2init_qp_in_bits {
6175 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03006176 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006177
Matan Barakb4ff3a32016-02-09 14:57:42 +02006178 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006179 u8 op_mod[0x10];
6180
Matan Barakb4ff3a32016-02-09 14:57:42 +02006181 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006182 u8 qpn[0x18];
6183
Matan Barakb4ff3a32016-02-09 14:57:42 +02006184 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006185
6186 u8 opt_param_mask[0x20];
6187
Matan Barakb4ff3a32016-02-09 14:57:42 +02006188 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006189
6190 struct mlx5_ifc_qpc_bits qpc;
6191
Matan Barakb4ff3a32016-02-09 14:57:42 +02006192 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03006193};
6194
6195struct mlx5_ifc_get_dropped_packet_log_out_bits {
6196 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006197 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006198
6199 u8 syndrome[0x20];
6200
Matan Barakb4ff3a32016-02-09 14:57:42 +02006201 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006202
6203 u8 packet_headers_log[128][0x8];
6204
6205 u8 packet_syndrome[64][0x8];
6206};
6207
6208struct mlx5_ifc_get_dropped_packet_log_in_bits {
6209 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006210 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006211
Matan Barakb4ff3a32016-02-09 14:57:42 +02006212 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006213 u8 op_mod[0x10];
6214
Matan Barakb4ff3a32016-02-09 14:57:42 +02006215 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006216};
6217
6218struct mlx5_ifc_gen_eqe_in_bits {
6219 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006220 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006221
Matan Barakb4ff3a32016-02-09 14:57:42 +02006222 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006223 u8 op_mod[0x10];
6224
Matan Barakb4ff3a32016-02-09 14:57:42 +02006225 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006226 u8 eq_number[0x8];
6227
Matan Barakb4ff3a32016-02-09 14:57:42 +02006228 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006229
6230 u8 eqe[64][0x8];
6231};
6232
6233struct mlx5_ifc_gen_eq_out_bits {
6234 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006235 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006236
6237 u8 syndrome[0x20];
6238
Matan Barakb4ff3a32016-02-09 14:57:42 +02006239 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006240};
6241
6242struct mlx5_ifc_enable_hca_out_bits {
6243 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006244 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006245
6246 u8 syndrome[0x20];
6247
Matan Barakb4ff3a32016-02-09 14:57:42 +02006248 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006249};
6250
6251struct mlx5_ifc_enable_hca_in_bits {
6252 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006253 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006254
Matan Barakb4ff3a32016-02-09 14:57:42 +02006255 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006256 u8 op_mod[0x10];
6257
Bodong Wang22e939a2019-02-12 22:55:36 -08006258 u8 embedded_cpu_function[0x1];
6259 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03006260 u8 function_id[0x10];
6261
Matan Barakb4ff3a32016-02-09 14:57:42 +02006262 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006263};
6264
6265struct mlx5_ifc_drain_dct_out_bits {
6266 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006267 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006268
6269 u8 syndrome[0x20];
6270
Matan Barakb4ff3a32016-02-09 14:57:42 +02006271 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006272};
6273
6274struct mlx5_ifc_drain_dct_in_bits {
6275 u8 opcode[0x10];
Yishai Hadas774ea6e2018-09-20 21:35:25 +03006276 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006277
Matan Barakb4ff3a32016-02-09 14:57:42 +02006278 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006279 u8 op_mod[0x10];
6280
Matan Barakb4ff3a32016-02-09 14:57:42 +02006281 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006282 u8 dctn[0x18];
6283
Matan Barakb4ff3a32016-02-09 14:57:42 +02006284 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006285};
6286
6287struct mlx5_ifc_disable_hca_out_bits {
6288 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006289 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006290
6291 u8 syndrome[0x20];
6292
Matan Barakb4ff3a32016-02-09 14:57:42 +02006293 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006294};
6295
6296struct mlx5_ifc_disable_hca_in_bits {
6297 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006298 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006299
Matan Barakb4ff3a32016-02-09 14:57:42 +02006300 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006301 u8 op_mod[0x10];
6302
Bodong Wang22e939a2019-02-12 22:55:36 -08006303 u8 embedded_cpu_function[0x1];
6304 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03006305 u8 function_id[0x10];
6306
Matan Barakb4ff3a32016-02-09 14:57:42 +02006307 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006308};
6309
6310struct mlx5_ifc_detach_from_mcg_out_bits {
6311 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006312 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006313
6314 u8 syndrome[0x20];
6315
Matan Barakb4ff3a32016-02-09 14:57:42 +02006316 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006317};
6318
6319struct mlx5_ifc_detach_from_mcg_in_bits {
6320 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03006321 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006322
Matan Barakb4ff3a32016-02-09 14:57:42 +02006323 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006324 u8 op_mod[0x10];
6325
Matan Barakb4ff3a32016-02-09 14:57:42 +02006326 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006327 u8 qpn[0x18];
6328
Matan Barakb4ff3a32016-02-09 14:57:42 +02006329 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006330
6331 u8 multicast_gid[16][0x8];
6332};
6333
Saeed Mahameed74862162016-06-09 15:11:34 +03006334struct mlx5_ifc_destroy_xrq_out_bits {
6335 u8 status[0x8];
6336 u8 reserved_at_8[0x18];
6337
6338 u8 syndrome[0x20];
6339
6340 u8 reserved_at_40[0x40];
6341};
6342
6343struct mlx5_ifc_destroy_xrq_in_bits {
6344 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03006345 u8 uid[0x10];
Saeed Mahameed74862162016-06-09 15:11:34 +03006346
6347 u8 reserved_at_20[0x10];
6348 u8 op_mod[0x10];
6349
6350 u8 reserved_at_40[0x8];
6351 u8 xrqn[0x18];
6352
6353 u8 reserved_at_60[0x20];
6354};
6355
Saeed Mahameede2816822015-05-28 22:28:40 +03006356struct mlx5_ifc_destroy_xrc_srq_out_bits {
6357 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006358 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006359
6360 u8 syndrome[0x20];
6361
Matan Barakb4ff3a32016-02-09 14:57:42 +02006362 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006363};
6364
6365struct mlx5_ifc_destroy_xrc_srq_in_bits {
6366 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03006367 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006368
Matan Barakb4ff3a32016-02-09 14:57:42 +02006369 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006370 u8 op_mod[0x10];
6371
Matan Barakb4ff3a32016-02-09 14:57:42 +02006372 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006373 u8 xrc_srqn[0x18];
6374
Matan Barakb4ff3a32016-02-09 14:57:42 +02006375 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006376};
6377
6378struct mlx5_ifc_destroy_tis_out_bits {
6379 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006380 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006381
6382 u8 syndrome[0x20];
6383
Matan Barakb4ff3a32016-02-09 14:57:42 +02006384 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006385};
6386
6387struct mlx5_ifc_destroy_tis_in_bits {
6388 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03006389 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006390
Matan Barakb4ff3a32016-02-09 14:57:42 +02006391 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006392 u8 op_mod[0x10];
6393
Matan Barakb4ff3a32016-02-09 14:57:42 +02006394 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006395 u8 tisn[0x18];
6396
Matan Barakb4ff3a32016-02-09 14:57:42 +02006397 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006398};
6399
6400struct mlx5_ifc_destroy_tir_out_bits {
6401 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006402 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006403
6404 u8 syndrome[0x20];
6405
Matan Barakb4ff3a32016-02-09 14:57:42 +02006406 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006407};
6408
6409struct mlx5_ifc_destroy_tir_in_bits {
6410 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03006411 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006412
Matan Barakb4ff3a32016-02-09 14:57:42 +02006413 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006414 u8 op_mod[0x10];
6415
Matan Barakb4ff3a32016-02-09 14:57:42 +02006416 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006417 u8 tirn[0x18];
6418
Matan Barakb4ff3a32016-02-09 14:57:42 +02006419 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006420};
6421
6422struct mlx5_ifc_destroy_srq_out_bits {
6423 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006424 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006425
6426 u8 syndrome[0x20];
6427
Matan Barakb4ff3a32016-02-09 14:57:42 +02006428 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006429};
6430
6431struct mlx5_ifc_destroy_srq_in_bits {
6432 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03006433 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006434
Matan Barakb4ff3a32016-02-09 14:57:42 +02006435 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006436 u8 op_mod[0x10];
6437
Matan Barakb4ff3a32016-02-09 14:57:42 +02006438 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006439 u8 srqn[0x18];
6440
Matan Barakb4ff3a32016-02-09 14:57:42 +02006441 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006442};
6443
6444struct mlx5_ifc_destroy_sq_out_bits {
6445 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006446 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006447
6448 u8 syndrome[0x20];
6449
Matan Barakb4ff3a32016-02-09 14:57:42 +02006450 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006451};
6452
6453struct mlx5_ifc_destroy_sq_in_bits {
6454 u8 opcode[0x10];
Yishai Hadas430ae0d52018-09-20 21:35:23 +03006455 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006456
Matan Barakb4ff3a32016-02-09 14:57:42 +02006457 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006458 u8 op_mod[0x10];
6459
Matan Barakb4ff3a32016-02-09 14:57:42 +02006460 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006461 u8 sqn[0x18];
6462
Matan Barakb4ff3a32016-02-09 14:57:42 +02006463 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006464};
6465
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03006466struct mlx5_ifc_destroy_scheduling_element_out_bits {
6467 u8 status[0x8];
6468 u8 reserved_at_8[0x18];
6469
6470 u8 syndrome[0x20];
6471
6472 u8 reserved_at_40[0x1c0];
6473};
6474
6475struct mlx5_ifc_destroy_scheduling_element_in_bits {
6476 u8 opcode[0x10];
6477 u8 reserved_at_10[0x10];
6478
6479 u8 reserved_at_20[0x10];
6480 u8 op_mod[0x10];
6481
6482 u8 scheduling_hierarchy[0x8];
6483 u8 reserved_at_48[0x18];
6484
6485 u8 scheduling_element_id[0x20];
6486
6487 u8 reserved_at_80[0x180];
6488};
6489
Saeed Mahameede2816822015-05-28 22:28:40 +03006490struct mlx5_ifc_destroy_rqt_out_bits {
6491 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006492 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006493
6494 u8 syndrome[0x20];
6495
Matan Barakb4ff3a32016-02-09 14:57:42 +02006496 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006497};
6498
6499struct mlx5_ifc_destroy_rqt_in_bits {
6500 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03006501 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006502
Matan Barakb4ff3a32016-02-09 14:57:42 +02006503 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006504 u8 op_mod[0x10];
6505
Matan Barakb4ff3a32016-02-09 14:57:42 +02006506 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006507 u8 rqtn[0x18];
6508
Matan Barakb4ff3a32016-02-09 14:57:42 +02006509 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006510};
6511
6512struct mlx5_ifc_destroy_rq_out_bits {
6513 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006514 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006515
6516 u8 syndrome[0x20];
6517
Matan Barakb4ff3a32016-02-09 14:57:42 +02006518 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006519};
6520
6521struct mlx5_ifc_destroy_rq_in_bits {
6522 u8 opcode[0x10];
Yishai Hadasd269b3a2018-09-20 21:35:22 +03006523 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006524
Matan Barakb4ff3a32016-02-09 14:57:42 +02006525 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006526 u8 op_mod[0x10];
6527
Matan Barakb4ff3a32016-02-09 14:57:42 +02006528 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006529 u8 rqn[0x18];
6530
Matan Barakb4ff3a32016-02-09 14:57:42 +02006531 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006532};
6533
Maor Gottliebc1e0bfc2017-05-30 10:29:11 +03006534struct mlx5_ifc_set_delay_drop_params_in_bits {
6535 u8 opcode[0x10];
6536 u8 reserved_at_10[0x10];
6537
6538 u8 reserved_at_20[0x10];
6539 u8 op_mod[0x10];
6540
6541 u8 reserved_at_40[0x20];
6542
6543 u8 reserved_at_60[0x10];
6544 u8 delay_drop_timeout[0x10];
6545};
6546
6547struct mlx5_ifc_set_delay_drop_params_out_bits {
6548 u8 status[0x8];
6549 u8 reserved_at_8[0x18];
6550
6551 u8 syndrome[0x20];
6552
6553 u8 reserved_at_40[0x40];
6554};
6555
Saeed Mahameede2816822015-05-28 22:28:40 +03006556struct mlx5_ifc_destroy_rmp_out_bits {
6557 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006558 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006559
6560 u8 syndrome[0x20];
6561
Matan Barakb4ff3a32016-02-09 14:57:42 +02006562 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006563};
6564
6565struct mlx5_ifc_destroy_rmp_in_bits {
6566 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03006567 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006568
Matan Barakb4ff3a32016-02-09 14:57:42 +02006569 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006570 u8 op_mod[0x10];
6571
Matan Barakb4ff3a32016-02-09 14:57:42 +02006572 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006573 u8 rmpn[0x18];
6574
Matan Barakb4ff3a32016-02-09 14:57:42 +02006575 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006576};
6577
6578struct mlx5_ifc_destroy_qp_out_bits {
6579 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006580 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006581
6582 u8 syndrome[0x20];
6583
Matan Barakb4ff3a32016-02-09 14:57:42 +02006584 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006585};
6586
6587struct mlx5_ifc_destroy_qp_in_bits {
6588 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03006589 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006590
Matan Barakb4ff3a32016-02-09 14:57:42 +02006591 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006592 u8 op_mod[0x10];
6593
Matan Barakb4ff3a32016-02-09 14:57:42 +02006594 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006595 u8 qpn[0x18];
6596
Matan Barakb4ff3a32016-02-09 14:57:42 +02006597 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006598};
6599
6600struct mlx5_ifc_destroy_psv_out_bits {
6601 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006602 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006603
6604 u8 syndrome[0x20];
6605
Matan Barakb4ff3a32016-02-09 14:57:42 +02006606 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006607};
6608
6609struct mlx5_ifc_destroy_psv_in_bits {
6610 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006611 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006612
Matan Barakb4ff3a32016-02-09 14:57:42 +02006613 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006614 u8 op_mod[0x10];
6615
Matan Barakb4ff3a32016-02-09 14:57:42 +02006616 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006617 u8 psvn[0x18];
6618
Matan Barakb4ff3a32016-02-09 14:57:42 +02006619 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006620};
6621
6622struct mlx5_ifc_destroy_mkey_out_bits {
6623 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006624 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006625
6626 u8 syndrome[0x20];
6627
Matan Barakb4ff3a32016-02-09 14:57:42 +02006628 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006629};
6630
6631struct mlx5_ifc_destroy_mkey_in_bits {
6632 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006633 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006634
Matan Barakb4ff3a32016-02-09 14:57:42 +02006635 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006636 u8 op_mod[0x10];
6637
Matan Barakb4ff3a32016-02-09 14:57:42 +02006638 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006639 u8 mkey_index[0x18];
6640
Matan Barakb4ff3a32016-02-09 14:57:42 +02006641 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006642};
6643
6644struct mlx5_ifc_destroy_flow_table_out_bits {
6645 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006646 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006647
6648 u8 syndrome[0x20];
6649
Matan Barakb4ff3a32016-02-09 14:57:42 +02006650 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006651};
6652
6653struct mlx5_ifc_destroy_flow_table_in_bits {
6654 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006655 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006656
Matan Barakb4ff3a32016-02-09 14:57:42 +02006657 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006658 u8 op_mod[0x10];
6659
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03006660 u8 other_vport[0x1];
6661 u8 reserved_at_41[0xf];
6662 u8 vport_number[0x10];
6663
6664 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006665
6666 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006667 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006668
Matan Barakb4ff3a32016-02-09 14:57:42 +02006669 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006670 u8 table_id[0x18];
6671
Matan Barakb4ff3a32016-02-09 14:57:42 +02006672 u8 reserved_at_c0[0x140];
Saeed Mahameede2816822015-05-28 22:28:40 +03006673};
6674
6675struct mlx5_ifc_destroy_flow_group_out_bits {
6676 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006677 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006678
6679 u8 syndrome[0x20];
6680
Matan Barakb4ff3a32016-02-09 14:57:42 +02006681 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006682};
6683
6684struct mlx5_ifc_destroy_flow_group_in_bits {
6685 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006686 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006687
Matan Barakb4ff3a32016-02-09 14:57:42 +02006688 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006689 u8 op_mod[0x10];
6690
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03006691 u8 other_vport[0x1];
6692 u8 reserved_at_41[0xf];
6693 u8 vport_number[0x10];
6694
6695 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006696
6697 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006698 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006699
Matan Barakb4ff3a32016-02-09 14:57:42 +02006700 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006701 u8 table_id[0x18];
6702
6703 u8 group_id[0x20];
6704
Matan Barakb4ff3a32016-02-09 14:57:42 +02006705 u8 reserved_at_e0[0x120];
Saeed Mahameede2816822015-05-28 22:28:40 +03006706};
6707
6708struct mlx5_ifc_destroy_eq_out_bits {
6709 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006710 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006711
6712 u8 syndrome[0x20];
6713
Matan Barakb4ff3a32016-02-09 14:57:42 +02006714 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006715};
6716
6717struct mlx5_ifc_destroy_eq_in_bits {
6718 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006719 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006720
Matan Barakb4ff3a32016-02-09 14:57:42 +02006721 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006722 u8 op_mod[0x10];
6723
Matan Barakb4ff3a32016-02-09 14:57:42 +02006724 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006725 u8 eq_number[0x8];
6726
Matan Barakb4ff3a32016-02-09 14:57:42 +02006727 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006728};
6729
6730struct mlx5_ifc_destroy_dct_out_bits {
6731 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006732 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006733
6734 u8 syndrome[0x20];
6735
Matan Barakb4ff3a32016-02-09 14:57:42 +02006736 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006737};
6738
6739struct mlx5_ifc_destroy_dct_in_bits {
6740 u8 opcode[0x10];
Yishai Hadas774ea6e2018-09-20 21:35:25 +03006741 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006742
Matan Barakb4ff3a32016-02-09 14:57:42 +02006743 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006744 u8 op_mod[0x10];
6745
Matan Barakb4ff3a32016-02-09 14:57:42 +02006746 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006747 u8 dctn[0x18];
6748
Matan Barakb4ff3a32016-02-09 14:57:42 +02006749 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006750};
6751
6752struct mlx5_ifc_destroy_cq_out_bits {
6753 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006754 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006755
6756 u8 syndrome[0x20];
6757
Matan Barakb4ff3a32016-02-09 14:57:42 +02006758 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006759};
6760
6761struct mlx5_ifc_destroy_cq_in_bits {
6762 u8 opcode[0x10];
Yishai Hadas9ba481e2eb2018-09-20 21:35:20 +03006763 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006764
Matan Barakb4ff3a32016-02-09 14:57:42 +02006765 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006766 u8 op_mod[0x10];
6767
Matan Barakb4ff3a32016-02-09 14:57:42 +02006768 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006769 u8 cqn[0x18];
6770
Matan Barakb4ff3a32016-02-09 14:57:42 +02006771 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006772};
6773
6774struct mlx5_ifc_delete_vxlan_udp_dport_out_bits {
6775 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006776 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006777
6778 u8 syndrome[0x20];
6779
Matan Barakb4ff3a32016-02-09 14:57:42 +02006780 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006781};
6782
6783struct mlx5_ifc_delete_vxlan_udp_dport_in_bits {
6784 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006785 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006786
Matan Barakb4ff3a32016-02-09 14:57:42 +02006787 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006788 u8 op_mod[0x10];
6789
Matan Barakb4ff3a32016-02-09 14:57:42 +02006790 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006791
Matan Barakb4ff3a32016-02-09 14:57:42 +02006792 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006793 u8 vxlan_udp_port[0x10];
6794};
6795
6796struct mlx5_ifc_delete_l2_table_entry_out_bits {
6797 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006798 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006799
6800 u8 syndrome[0x20];
6801
Matan Barakb4ff3a32016-02-09 14:57:42 +02006802 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006803};
6804
6805struct mlx5_ifc_delete_l2_table_entry_in_bits {
6806 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006807 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006808
Matan Barakb4ff3a32016-02-09 14:57:42 +02006809 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006810 u8 op_mod[0x10];
6811
Matan Barakb4ff3a32016-02-09 14:57:42 +02006812 u8 reserved_at_40[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03006813
Matan Barakb4ff3a32016-02-09 14:57:42 +02006814 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006815 u8 table_index[0x18];
6816
Matan Barakb4ff3a32016-02-09 14:57:42 +02006817 u8 reserved_at_c0[0x140];
Saeed Mahameede2816822015-05-28 22:28:40 +03006818};
6819
6820struct mlx5_ifc_delete_fte_out_bits {
6821 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006822 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006823
6824 u8 syndrome[0x20];
6825
Matan Barakb4ff3a32016-02-09 14:57:42 +02006826 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006827};
6828
6829struct mlx5_ifc_delete_fte_in_bits {
6830 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006831 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006832
Matan Barakb4ff3a32016-02-09 14:57:42 +02006833 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006834 u8 op_mod[0x10];
6835
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03006836 u8 other_vport[0x1];
6837 u8 reserved_at_41[0xf];
6838 u8 vport_number[0x10];
6839
6840 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006841
6842 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006843 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006844
Matan Barakb4ff3a32016-02-09 14:57:42 +02006845 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006846 u8 table_id[0x18];
6847
Matan Barakb4ff3a32016-02-09 14:57:42 +02006848 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006849
6850 u8 flow_index[0x20];
6851
Matan Barakb4ff3a32016-02-09 14:57:42 +02006852 u8 reserved_at_120[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03006853};
6854
6855struct mlx5_ifc_dealloc_xrcd_out_bits {
6856 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006857 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006858
6859 u8 syndrome[0x20];
6860
Matan Barakb4ff3a32016-02-09 14:57:42 +02006861 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006862};
6863
6864struct mlx5_ifc_dealloc_xrcd_in_bits {
6865 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03006866 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006867
Matan Barakb4ff3a32016-02-09 14:57:42 +02006868 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006869 u8 op_mod[0x10];
6870
Matan Barakb4ff3a32016-02-09 14:57:42 +02006871 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006872 u8 xrcd[0x18];
6873
Matan Barakb4ff3a32016-02-09 14:57:42 +02006874 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006875};
6876
6877struct mlx5_ifc_dealloc_uar_out_bits {
6878 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006879 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006880
6881 u8 syndrome[0x20];
6882
Matan Barakb4ff3a32016-02-09 14:57:42 +02006883 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006884};
6885
6886struct mlx5_ifc_dealloc_uar_in_bits {
6887 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006888 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006889
Matan Barakb4ff3a32016-02-09 14:57:42 +02006890 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006891 u8 op_mod[0x10];
6892
Matan Barakb4ff3a32016-02-09 14:57:42 +02006893 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006894 u8 uar[0x18];
6895
Matan Barakb4ff3a32016-02-09 14:57:42 +02006896 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006897};
6898
6899struct mlx5_ifc_dealloc_transport_domain_out_bits {
6900 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006901 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006902
6903 u8 syndrome[0x20];
6904
Matan Barakb4ff3a32016-02-09 14:57:42 +02006905 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006906};
6907
6908struct mlx5_ifc_dealloc_transport_domain_in_bits {
6909 u8 opcode[0x10];
Yishai Hadas71bef2f2018-12-19 16:28:10 +02006910 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006911
Matan Barakb4ff3a32016-02-09 14:57:42 +02006912 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006913 u8 op_mod[0x10];
6914
Matan Barakb4ff3a32016-02-09 14:57:42 +02006915 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006916 u8 transport_domain[0x18];
6917
Matan Barakb4ff3a32016-02-09 14:57:42 +02006918 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006919};
6920
6921struct mlx5_ifc_dealloc_q_counter_out_bits {
6922 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006923 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006924
6925 u8 syndrome[0x20];
6926
Matan Barakb4ff3a32016-02-09 14:57:42 +02006927 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006928};
6929
6930struct mlx5_ifc_dealloc_q_counter_in_bits {
6931 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006932 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006933
Matan Barakb4ff3a32016-02-09 14:57:42 +02006934 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006935 u8 op_mod[0x10];
6936
Matan Barakb4ff3a32016-02-09 14:57:42 +02006937 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006938 u8 counter_set_id[0x8];
6939
Matan Barakb4ff3a32016-02-09 14:57:42 +02006940 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006941};
6942
6943struct mlx5_ifc_dealloc_pd_out_bits {
6944 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006945 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006946
6947 u8 syndrome[0x20];
6948
Matan Barakb4ff3a32016-02-09 14:57:42 +02006949 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006950};
6951
6952struct mlx5_ifc_dealloc_pd_in_bits {
6953 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03006954 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006955
Matan Barakb4ff3a32016-02-09 14:57:42 +02006956 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006957 u8 op_mod[0x10];
6958
Matan Barakb4ff3a32016-02-09 14:57:42 +02006959 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006960 u8 pd[0x18];
6961
Matan Barakb4ff3a32016-02-09 14:57:42 +02006962 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006963};
6964
Amir Vadai9dc0b282016-05-13 12:55:39 +00006965struct mlx5_ifc_dealloc_flow_counter_out_bits {
6966 u8 status[0x8];
6967 u8 reserved_at_8[0x18];
6968
6969 u8 syndrome[0x20];
6970
6971 u8 reserved_at_40[0x40];
6972};
6973
6974struct mlx5_ifc_dealloc_flow_counter_in_bits {
6975 u8 opcode[0x10];
6976 u8 reserved_at_10[0x10];
6977
6978 u8 reserved_at_20[0x10];
6979 u8 op_mod[0x10];
6980
Rabie Louloua8ffcc72017-07-09 13:39:30 +03006981 u8 flow_counter_id[0x20];
Amir Vadai9dc0b282016-05-13 12:55:39 +00006982
6983 u8 reserved_at_60[0x20];
6984};
6985
Saeed Mahameed74862162016-06-09 15:11:34 +03006986struct mlx5_ifc_create_xrq_out_bits {
6987 u8 status[0x8];
6988 u8 reserved_at_8[0x18];
6989
6990 u8 syndrome[0x20];
6991
6992 u8 reserved_at_40[0x8];
6993 u8 xrqn[0x18];
6994
6995 u8 reserved_at_60[0x20];
6996};
6997
6998struct mlx5_ifc_create_xrq_in_bits {
6999 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03007000 u8 uid[0x10];
Saeed Mahameed74862162016-06-09 15:11:34 +03007001
7002 u8 reserved_at_20[0x10];
7003 u8 op_mod[0x10];
7004
7005 u8 reserved_at_40[0x40];
7006
7007 struct mlx5_ifc_xrqc_bits xrq_context;
7008};
7009
Saeed Mahameede2816822015-05-28 22:28:40 +03007010struct mlx5_ifc_create_xrc_srq_out_bits {
7011 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007012 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007013
7014 u8 syndrome[0x20];
7015
Matan Barakb4ff3a32016-02-09 14:57:42 +02007016 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007017 u8 xrc_srqn[0x18];
7018
Matan Barakb4ff3a32016-02-09 14:57:42 +02007019 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007020};
7021
7022struct mlx5_ifc_create_xrc_srq_in_bits {
7023 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03007024 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007025
Matan Barakb4ff3a32016-02-09 14:57:42 +02007026 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007027 u8 op_mod[0x10];
7028
Matan Barakb4ff3a32016-02-09 14:57:42 +02007029 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007030
7031 struct mlx5_ifc_xrc_srqc_bits xrc_srq_context_entry;
7032
Yishai Hadas99b77fe2018-10-31 12:20:28 +02007033 u8 reserved_at_280[0x60];
7034
Leon Romanovskybd371972018-09-20 21:35:26 +03007035 u8 xrc_srq_umem_valid[0x1];
Yishai Hadas99b77fe2018-10-31 12:20:28 +02007036 u8 reserved_at_2e1[0x1f];
7037
7038 u8 reserved_at_300[0x580];
Saeed Mahameede2816822015-05-28 22:28:40 +03007039
7040 u8 pas[0][0x40];
7041};
7042
7043struct mlx5_ifc_create_tis_out_bits {
7044 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007045 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007046
7047 u8 syndrome[0x20];
7048
Matan Barakb4ff3a32016-02-09 14:57:42 +02007049 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007050 u8 tisn[0x18];
7051
Matan Barakb4ff3a32016-02-09 14:57:42 +02007052 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007053};
7054
7055struct mlx5_ifc_create_tis_in_bits {
7056 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03007057 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007058
Matan Barakb4ff3a32016-02-09 14:57:42 +02007059 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007060 u8 op_mod[0x10];
7061
Matan Barakb4ff3a32016-02-09 14:57:42 +02007062 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03007063
7064 struct mlx5_ifc_tisc_bits ctx;
7065};
7066
7067struct mlx5_ifc_create_tir_out_bits {
7068 u8 status[0x8];
Ariel Levkovich3e070472019-03-31 19:44:48 +03007069 u8 icm_address_63_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007070
7071 u8 syndrome[0x20];
7072
Ariel Levkovich3e070472019-03-31 19:44:48 +03007073 u8 icm_address_39_32[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007074 u8 tirn[0x18];
7075
Ariel Levkovich3e070472019-03-31 19:44:48 +03007076 u8 icm_address_31_0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007077};
7078
7079struct mlx5_ifc_create_tir_in_bits {
7080 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03007081 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007082
Matan Barakb4ff3a32016-02-09 14:57:42 +02007083 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007084 u8 op_mod[0x10];
7085
Matan Barakb4ff3a32016-02-09 14:57:42 +02007086 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03007087
7088 struct mlx5_ifc_tirc_bits ctx;
7089};
7090
7091struct mlx5_ifc_create_srq_out_bits {
7092 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007093 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007094
7095 u8 syndrome[0x20];
7096
Matan Barakb4ff3a32016-02-09 14:57:42 +02007097 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007098 u8 srqn[0x18];
7099
Matan Barakb4ff3a32016-02-09 14:57:42 +02007100 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007101};
7102
7103struct mlx5_ifc_create_srq_in_bits {
7104 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03007105 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007106
Matan Barakb4ff3a32016-02-09 14:57:42 +02007107 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007108 u8 op_mod[0x10];
7109
Matan Barakb4ff3a32016-02-09 14:57:42 +02007110 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007111
7112 struct mlx5_ifc_srqc_bits srq_context_entry;
7113
Matan Barakb4ff3a32016-02-09 14:57:42 +02007114 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03007115
7116 u8 pas[0][0x40];
7117};
7118
7119struct mlx5_ifc_create_sq_out_bits {
7120 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007121 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007122
7123 u8 syndrome[0x20];
7124
Matan Barakb4ff3a32016-02-09 14:57:42 +02007125 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007126 u8 sqn[0x18];
7127
Matan Barakb4ff3a32016-02-09 14:57:42 +02007128 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007129};
7130
7131struct mlx5_ifc_create_sq_in_bits {
7132 u8 opcode[0x10];
Yishai Hadas430ae0d52018-09-20 21:35:23 +03007133 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007134
Matan Barakb4ff3a32016-02-09 14:57:42 +02007135 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007136 u8 op_mod[0x10];
7137
Matan Barakb4ff3a32016-02-09 14:57:42 +02007138 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03007139
7140 struct mlx5_ifc_sqc_bits ctx;
7141};
7142
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03007143struct mlx5_ifc_create_scheduling_element_out_bits {
7144 u8 status[0x8];
7145 u8 reserved_at_8[0x18];
7146
7147 u8 syndrome[0x20];
7148
7149 u8 reserved_at_40[0x40];
7150
7151 u8 scheduling_element_id[0x20];
7152
7153 u8 reserved_at_a0[0x160];
7154};
7155
7156struct mlx5_ifc_create_scheduling_element_in_bits {
7157 u8 opcode[0x10];
7158 u8 reserved_at_10[0x10];
7159
7160 u8 reserved_at_20[0x10];
7161 u8 op_mod[0x10];
7162
7163 u8 scheduling_hierarchy[0x8];
7164 u8 reserved_at_48[0x18];
7165
7166 u8 reserved_at_60[0xa0];
7167
7168 struct mlx5_ifc_scheduling_context_bits scheduling_context;
7169
7170 u8 reserved_at_300[0x100];
7171};
7172
Saeed Mahameede2816822015-05-28 22:28:40 +03007173struct mlx5_ifc_create_rqt_out_bits {
7174 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007175 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007176
7177 u8 syndrome[0x20];
7178
Matan Barakb4ff3a32016-02-09 14:57:42 +02007179 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007180 u8 rqtn[0x18];
7181
Matan Barakb4ff3a32016-02-09 14:57:42 +02007182 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007183};
7184
7185struct mlx5_ifc_create_rqt_in_bits {
7186 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03007187 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007188
Matan Barakb4ff3a32016-02-09 14:57:42 +02007189 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007190 u8 op_mod[0x10];
7191
Matan Barakb4ff3a32016-02-09 14:57:42 +02007192 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03007193
7194 struct mlx5_ifc_rqtc_bits rqt_context;
7195};
7196
7197struct mlx5_ifc_create_rq_out_bits {
7198 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007199 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007200
7201 u8 syndrome[0x20];
7202
Matan Barakb4ff3a32016-02-09 14:57:42 +02007203 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007204 u8 rqn[0x18];
7205
Matan Barakb4ff3a32016-02-09 14:57:42 +02007206 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007207};
7208
7209struct mlx5_ifc_create_rq_in_bits {
7210 u8 opcode[0x10];
Yishai Hadasd269b3a2018-09-20 21:35:22 +03007211 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007212
Matan Barakb4ff3a32016-02-09 14:57:42 +02007213 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007214 u8 op_mod[0x10];
7215
Matan Barakb4ff3a32016-02-09 14:57:42 +02007216 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03007217
7218 struct mlx5_ifc_rqc_bits ctx;
7219};
7220
7221struct mlx5_ifc_create_rmp_out_bits {
7222 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007223 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007224
7225 u8 syndrome[0x20];
7226
Matan Barakb4ff3a32016-02-09 14:57:42 +02007227 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007228 u8 rmpn[0x18];
7229
Matan Barakb4ff3a32016-02-09 14:57:42 +02007230 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007231};
7232
7233struct mlx5_ifc_create_rmp_in_bits {
7234 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03007235 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007236
Matan Barakb4ff3a32016-02-09 14:57:42 +02007237 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007238 u8 op_mod[0x10];
7239
Matan Barakb4ff3a32016-02-09 14:57:42 +02007240 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03007241
7242 struct mlx5_ifc_rmpc_bits ctx;
7243};
7244
7245struct mlx5_ifc_create_qp_out_bits {
7246 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007247 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007248
7249 u8 syndrome[0x20];
7250
Matan Barakb4ff3a32016-02-09 14:57:42 +02007251 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007252 u8 qpn[0x18];
7253
Matan Barakb4ff3a32016-02-09 14:57:42 +02007254 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007255};
7256
7257struct mlx5_ifc_create_qp_in_bits {
7258 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03007259 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007260
Matan Barakb4ff3a32016-02-09 14:57:42 +02007261 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007262 u8 op_mod[0x10];
7263
Matan Barakb4ff3a32016-02-09 14:57:42 +02007264 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007265
7266 u8 opt_param_mask[0x20];
7267
Matan Barakb4ff3a32016-02-09 14:57:42 +02007268 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007269
7270 struct mlx5_ifc_qpc_bits qpc;
7271
Leon Romanovskybd371972018-09-20 21:35:26 +03007272 u8 reserved_at_800[0x60];
7273
7274 u8 wq_umem_valid[0x1];
7275 u8 reserved_at_861[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03007276
7277 u8 pas[0][0x40];
7278};
7279
7280struct mlx5_ifc_create_psv_out_bits {
7281 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007282 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007283
7284 u8 syndrome[0x20];
7285
Matan Barakb4ff3a32016-02-09 14:57:42 +02007286 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007287
Matan Barakb4ff3a32016-02-09 14:57:42 +02007288 u8 reserved_at_80[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007289 u8 psv0_index[0x18];
7290
Matan Barakb4ff3a32016-02-09 14:57:42 +02007291 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007292 u8 psv1_index[0x18];
7293
Matan Barakb4ff3a32016-02-09 14:57:42 +02007294 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007295 u8 psv2_index[0x18];
7296
Matan Barakb4ff3a32016-02-09 14:57:42 +02007297 u8 reserved_at_e0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007298 u8 psv3_index[0x18];
7299};
7300
7301struct mlx5_ifc_create_psv_in_bits {
7302 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007303 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007304
Matan Barakb4ff3a32016-02-09 14:57:42 +02007305 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007306 u8 op_mod[0x10];
7307
7308 u8 num_psv[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007309 u8 reserved_at_44[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007310 u8 pd[0x18];
7311
Matan Barakb4ff3a32016-02-09 14:57:42 +02007312 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007313};
7314
7315struct mlx5_ifc_create_mkey_out_bits {
7316 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007317 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007318
7319 u8 syndrome[0x20];
7320
Matan Barakb4ff3a32016-02-09 14:57:42 +02007321 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007322 u8 mkey_index[0x18];
7323
Matan Barakb4ff3a32016-02-09 14:57:42 +02007324 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007325};
7326
7327struct mlx5_ifc_create_mkey_in_bits {
7328 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007329 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007330
Matan Barakb4ff3a32016-02-09 14:57:42 +02007331 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007332 u8 op_mod[0x10];
7333
Matan Barakb4ff3a32016-02-09 14:57:42 +02007334 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007335
7336 u8 pg_access[0x1];
Leon Romanovskybd371972018-09-20 21:35:26 +03007337 u8 mkey_umem_valid[0x1];
7338 u8 reserved_at_62[0x1e];
Saeed Mahameede2816822015-05-28 22:28:40 +03007339
7340 struct mlx5_ifc_mkc_bits memory_key_mkey_entry;
7341
Matan Barakb4ff3a32016-02-09 14:57:42 +02007342 u8 reserved_at_280[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03007343
7344 u8 translations_octword_actual_size[0x20];
7345
Matan Barakb4ff3a32016-02-09 14:57:42 +02007346 u8 reserved_at_320[0x560];
Saeed Mahameede2816822015-05-28 22:28:40 +03007347
7348 u8 klm_pas_mtt[0][0x20];
7349};
7350
7351struct mlx5_ifc_create_flow_table_out_bits {
7352 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007353 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007354
7355 u8 syndrome[0x20];
7356
Matan Barakb4ff3a32016-02-09 14:57:42 +02007357 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007358 u8 table_id[0x18];
7359
Matan Barakb4ff3a32016-02-09 14:57:42 +02007360 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007361};
7362
Maor Gottlieb0c90e9c2017-03-12 11:35:23 +02007363struct mlx5_ifc_flow_table_context_bits {
Mark Bloch60786f02018-08-28 14:18:46 +03007364 u8 reformat_en[0x1];
Maor Gottlieb0c90e9c2017-03-12 11:35:23 +02007365 u8 decap_en[0x1];
Eli Britsteinc6d4e452019-05-29 22:50:29 +00007366 u8 reserved_at_2[0x1];
7367 u8 termination_table[0x1];
Maor Gottlieb0c90e9c2017-03-12 11:35:23 +02007368 u8 table_miss_action[0x4];
7369 u8 level[0x8];
7370 u8 reserved_at_10[0x8];
7371 u8 log_size[0x8];
7372
7373 u8 reserved_at_20[0x8];
7374 u8 table_miss_id[0x18];
7375
7376 u8 reserved_at_40[0x8];
7377 u8 lag_master_next_table_id[0x18];
7378
7379 u8 reserved_at_60[0xe0];
7380};
7381
Saeed Mahameede2816822015-05-28 22:28:40 +03007382struct mlx5_ifc_create_flow_table_in_bits {
7383 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007384 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007385
Matan Barakb4ff3a32016-02-09 14:57:42 +02007386 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007387 u8 op_mod[0x10];
7388
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03007389 u8 other_vport[0x1];
7390 u8 reserved_at_41[0xf];
7391 u8 vport_number[0x10];
7392
7393 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007394
7395 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007396 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007397
Matan Barakb4ff3a32016-02-09 14:57:42 +02007398 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007399
Maor Gottlieb0c90e9c2017-03-12 11:35:23 +02007400 struct mlx5_ifc_flow_table_context_bits flow_table_context;
Saeed Mahameede2816822015-05-28 22:28:40 +03007401};
7402
7403struct mlx5_ifc_create_flow_group_out_bits {
7404 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007405 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007406
7407 u8 syndrome[0x20];
7408
Matan Barakb4ff3a32016-02-09 14:57:42 +02007409 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007410 u8 group_id[0x18];
7411
Matan Barakb4ff3a32016-02-09 14:57:42 +02007412 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007413};
7414
7415enum {
Ariel Levkovich71c6e862018-05-13 14:33:34 +03007416 MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_OUTER_HEADERS = 0x0,
7417 MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS = 0x1,
7418 MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_INNER_HEADERS = 0x2,
7419 MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS_2 = 0x3,
Saeed Mahameede2816822015-05-28 22:28:40 +03007420};
7421
7422struct mlx5_ifc_create_flow_group_in_bits {
7423 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007424 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007425
Matan Barakb4ff3a32016-02-09 14:57:42 +02007426 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007427 u8 op_mod[0x10];
7428
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03007429 u8 other_vport[0x1];
7430 u8 reserved_at_41[0xf];
7431 u8 vport_number[0x10];
7432
7433 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007434
7435 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007436 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007437
Matan Barakb4ff3a32016-02-09 14:57:42 +02007438 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007439 u8 table_id[0x18];
7440
Shahar Klein3e99df82018-03-18 09:02:06 +02007441 u8 source_eswitch_owner_vhca_id_valid[0x1];
7442
7443 u8 reserved_at_c1[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03007444
7445 u8 start_flow_index[0x20];
7446
Matan Barakb4ff3a32016-02-09 14:57:42 +02007447 u8 reserved_at_100[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007448
7449 u8 end_flow_index[0x20];
7450
Matan Barakb4ff3a32016-02-09 14:57:42 +02007451 u8 reserved_at_140[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03007452
Matan Barakb4ff3a32016-02-09 14:57:42 +02007453 u8 reserved_at_1e0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007454 u8 match_criteria_enable[0x8];
7455
7456 struct mlx5_ifc_fte_match_param_bits match_criteria;
7457
Matan Barakb4ff3a32016-02-09 14:57:42 +02007458 u8 reserved_at_1200[0xe00];
Saeed Mahameede2816822015-05-28 22:28:40 +03007459};
7460
7461struct mlx5_ifc_create_eq_out_bits {
7462 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007463 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007464
7465 u8 syndrome[0x20];
7466
Matan Barakb4ff3a32016-02-09 14:57:42 +02007467 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007468 u8 eq_number[0x8];
7469
Matan Barakb4ff3a32016-02-09 14:57:42 +02007470 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007471};
7472
7473struct mlx5_ifc_create_eq_in_bits {
7474 u8 opcode[0x10];
Yishai Hadasc191f932019-05-14 14:44:12 +03007475 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007476
Matan Barakb4ff3a32016-02-09 14:57:42 +02007477 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007478 u8 op_mod[0x10];
7479
Matan Barakb4ff3a32016-02-09 14:57:42 +02007480 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007481
7482 struct mlx5_ifc_eqc_bits eq_context_entry;
7483
Matan Barakb4ff3a32016-02-09 14:57:42 +02007484 u8 reserved_at_280[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007485
Yishai Hadasb9a7ba52019-06-30 19:23:23 +03007486 u8 event_bitmask[4][0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007487
Yishai Hadasb9a7ba52019-06-30 19:23:23 +03007488 u8 reserved_at_3c0[0x4c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03007489
7490 u8 pas[0][0x40];
7491};
7492
7493struct mlx5_ifc_create_dct_out_bits {
7494 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007495 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007496
7497 u8 syndrome[0x20];
7498
Matan Barakb4ff3a32016-02-09 14:57:42 +02007499 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007500 u8 dctn[0x18];
7501
Matan Barakb4ff3a32016-02-09 14:57:42 +02007502 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007503};
7504
7505struct mlx5_ifc_create_dct_in_bits {
7506 u8 opcode[0x10];
Yishai Hadas774ea6e2018-09-20 21:35:25 +03007507 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007508
Matan Barakb4ff3a32016-02-09 14:57:42 +02007509 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007510 u8 op_mod[0x10];
7511
Matan Barakb4ff3a32016-02-09 14:57:42 +02007512 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007513
7514 struct mlx5_ifc_dctc_bits dct_context_entry;
7515
Matan Barakb4ff3a32016-02-09 14:57:42 +02007516 u8 reserved_at_280[0x180];
Saeed Mahameede2816822015-05-28 22:28:40 +03007517};
7518
7519struct mlx5_ifc_create_cq_out_bits {
7520 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007521 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007522
7523 u8 syndrome[0x20];
7524
Matan Barakb4ff3a32016-02-09 14:57:42 +02007525 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007526 u8 cqn[0x18];
7527
Matan Barakb4ff3a32016-02-09 14:57:42 +02007528 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007529};
7530
7531struct mlx5_ifc_create_cq_in_bits {
7532 u8 opcode[0x10];
Yishai Hadas9ba481e2eb2018-09-20 21:35:20 +03007533 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007534
Matan Barakb4ff3a32016-02-09 14:57:42 +02007535 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007536 u8 op_mod[0x10];
7537
Matan Barakb4ff3a32016-02-09 14:57:42 +02007538 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007539
7540 struct mlx5_ifc_cqc_bits cq_context;
7541
Leon Romanovskybd371972018-09-20 21:35:26 +03007542 u8 reserved_at_280[0x60];
7543
7544 u8 cq_umem_valid[0x1];
7545 u8 reserved_at_2e1[0x59f];
Saeed Mahameede2816822015-05-28 22:28:40 +03007546
7547 u8 pas[0][0x40];
7548};
7549
7550struct mlx5_ifc_config_int_moderation_out_bits {
7551 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007552 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007553
7554 u8 syndrome[0x20];
7555
Matan Barakb4ff3a32016-02-09 14:57:42 +02007556 u8 reserved_at_40[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007557 u8 min_delay[0xc];
7558 u8 int_vector[0x10];
7559
Matan Barakb4ff3a32016-02-09 14:57:42 +02007560 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007561};
7562
7563enum {
7564 MLX5_CONFIG_INT_MODERATION_IN_OP_MOD_WRITE = 0x0,
7565 MLX5_CONFIG_INT_MODERATION_IN_OP_MOD_READ = 0x1,
7566};
7567
7568struct mlx5_ifc_config_int_moderation_in_bits {
7569 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007570 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007571
Matan Barakb4ff3a32016-02-09 14:57:42 +02007572 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007573 u8 op_mod[0x10];
7574
Matan Barakb4ff3a32016-02-09 14:57:42 +02007575 u8 reserved_at_40[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007576 u8 min_delay[0xc];
7577 u8 int_vector[0x10];
7578
Matan Barakb4ff3a32016-02-09 14:57:42 +02007579 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007580};
7581
7582struct mlx5_ifc_attach_to_mcg_out_bits {
7583 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007584 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007585
7586 u8 syndrome[0x20];
7587
Matan Barakb4ff3a32016-02-09 14:57:42 +02007588 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007589};
7590
7591struct mlx5_ifc_attach_to_mcg_in_bits {
7592 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03007593 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007594
Matan Barakb4ff3a32016-02-09 14:57:42 +02007595 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007596 u8 op_mod[0x10];
7597
Matan Barakb4ff3a32016-02-09 14:57:42 +02007598 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007599 u8 qpn[0x18];
7600
Matan Barakb4ff3a32016-02-09 14:57:42 +02007601 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007602
7603 u8 multicast_gid[16][0x8];
7604};
7605
Saeed Mahameed74862162016-06-09 15:11:34 +03007606struct mlx5_ifc_arm_xrq_out_bits {
7607 u8 status[0x8];
7608 u8 reserved_at_8[0x18];
7609
7610 u8 syndrome[0x20];
7611
7612 u8 reserved_at_40[0x40];
7613};
7614
7615struct mlx5_ifc_arm_xrq_in_bits {
7616 u8 opcode[0x10];
7617 u8 reserved_at_10[0x10];
7618
7619 u8 reserved_at_20[0x10];
7620 u8 op_mod[0x10];
7621
7622 u8 reserved_at_40[0x8];
7623 u8 xrqn[0x18];
7624
7625 u8 reserved_at_60[0x10];
7626 u8 lwm[0x10];
7627};
7628
Saeed Mahameede2816822015-05-28 22:28:40 +03007629struct mlx5_ifc_arm_xrc_srq_out_bits {
7630 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007631 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007632
7633 u8 syndrome[0x20];
7634
Matan Barakb4ff3a32016-02-09 14:57:42 +02007635 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007636};
7637
7638enum {
7639 MLX5_ARM_XRC_SRQ_IN_OP_MOD_XRC_SRQ = 0x1,
7640};
7641
7642struct mlx5_ifc_arm_xrc_srq_in_bits {
7643 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03007644 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007645
Matan Barakb4ff3a32016-02-09 14:57:42 +02007646 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007647 u8 op_mod[0x10];
7648
Matan Barakb4ff3a32016-02-09 14:57:42 +02007649 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007650 u8 xrc_srqn[0x18];
7651
Matan Barakb4ff3a32016-02-09 14:57:42 +02007652 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007653 u8 lwm[0x10];
7654};
7655
7656struct mlx5_ifc_arm_rq_out_bits {
7657 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007658 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007659
7660 u8 syndrome[0x20];
7661
Matan Barakb4ff3a32016-02-09 14:57:42 +02007662 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007663};
7664
7665enum {
Saeed Mahameed74862162016-06-09 15:11:34 +03007666 MLX5_ARM_RQ_IN_OP_MOD_SRQ = 0x1,
7667 MLX5_ARM_RQ_IN_OP_MOD_XRQ = 0x2,
Saeed Mahameede2816822015-05-28 22:28:40 +03007668};
7669
7670struct mlx5_ifc_arm_rq_in_bits {
7671 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03007672 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007673
Matan Barakb4ff3a32016-02-09 14:57:42 +02007674 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007675 u8 op_mod[0x10];
7676
Matan Barakb4ff3a32016-02-09 14:57:42 +02007677 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007678 u8 srq_number[0x18];
7679
Matan Barakb4ff3a32016-02-09 14:57:42 +02007680 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007681 u8 lwm[0x10];
7682};
7683
7684struct mlx5_ifc_arm_dct_out_bits {
7685 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007686 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007687
7688 u8 syndrome[0x20];
7689
Matan Barakb4ff3a32016-02-09 14:57:42 +02007690 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007691};
7692
7693struct mlx5_ifc_arm_dct_in_bits {
7694 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007695 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007696
Matan Barakb4ff3a32016-02-09 14:57:42 +02007697 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007698 u8 op_mod[0x10];
7699
Matan Barakb4ff3a32016-02-09 14:57:42 +02007700 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007701 u8 dct_number[0x18];
7702
Matan Barakb4ff3a32016-02-09 14:57:42 +02007703 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007704};
7705
7706struct mlx5_ifc_alloc_xrcd_out_bits {
7707 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007708 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007709
7710 u8 syndrome[0x20];
7711
Matan Barakb4ff3a32016-02-09 14:57:42 +02007712 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007713 u8 xrcd[0x18];
7714
Matan Barakb4ff3a32016-02-09 14:57:42 +02007715 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007716};
7717
7718struct mlx5_ifc_alloc_xrcd_in_bits {
7719 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03007720 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007721
Matan Barakb4ff3a32016-02-09 14:57:42 +02007722 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007723 u8 op_mod[0x10];
7724
Matan Barakb4ff3a32016-02-09 14:57:42 +02007725 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007726};
7727
7728struct mlx5_ifc_alloc_uar_out_bits {
7729 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007730 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007731
7732 u8 syndrome[0x20];
7733
Matan Barakb4ff3a32016-02-09 14:57:42 +02007734 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007735 u8 uar[0x18];
7736
Matan Barakb4ff3a32016-02-09 14:57:42 +02007737 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007738};
7739
7740struct mlx5_ifc_alloc_uar_in_bits {
7741 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007742 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007743
Matan Barakb4ff3a32016-02-09 14:57:42 +02007744 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007745 u8 op_mod[0x10];
7746
Matan Barakb4ff3a32016-02-09 14:57:42 +02007747 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007748};
7749
7750struct mlx5_ifc_alloc_transport_domain_out_bits {
7751 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007752 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007753
7754 u8 syndrome[0x20];
7755
Matan Barakb4ff3a32016-02-09 14:57:42 +02007756 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007757 u8 transport_domain[0x18];
7758
Matan Barakb4ff3a32016-02-09 14:57:42 +02007759 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007760};
7761
7762struct mlx5_ifc_alloc_transport_domain_in_bits {
7763 u8 opcode[0x10];
Yishai Hadas71bef2f2018-12-19 16:28:10 +02007764 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007765
Matan Barakb4ff3a32016-02-09 14:57:42 +02007766 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007767 u8 op_mod[0x10];
7768
Matan Barakb4ff3a32016-02-09 14:57:42 +02007769 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007770};
7771
7772struct mlx5_ifc_alloc_q_counter_out_bits {
7773 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007774 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007775
7776 u8 syndrome[0x20];
7777
Matan Barakb4ff3a32016-02-09 14:57:42 +02007778 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007779 u8 counter_set_id[0x8];
7780
Matan Barakb4ff3a32016-02-09 14:57:42 +02007781 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007782};
7783
7784struct mlx5_ifc_alloc_q_counter_in_bits {
7785 u8 opcode[0x10];
Leon Romanovsky2acc7952018-12-06 14:40:11 +02007786 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007787
Matan Barakb4ff3a32016-02-09 14:57:42 +02007788 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007789 u8 op_mod[0x10];
7790
Matan Barakb4ff3a32016-02-09 14:57:42 +02007791 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007792};
7793
7794struct mlx5_ifc_alloc_pd_out_bits {
7795 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007796 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007797
7798 u8 syndrome[0x20];
7799
Matan Barakb4ff3a32016-02-09 14:57:42 +02007800 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007801 u8 pd[0x18];
7802
Matan Barakb4ff3a32016-02-09 14:57:42 +02007803 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007804};
7805
7806struct mlx5_ifc_alloc_pd_in_bits {
7807 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03007808 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007809
Matan Barakb4ff3a32016-02-09 14:57:42 +02007810 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007811 u8 op_mod[0x10];
7812
Matan Barakb4ff3a32016-02-09 14:57:42 +02007813 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007814};
7815
Amir Vadai9dc0b282016-05-13 12:55:39 +00007816struct mlx5_ifc_alloc_flow_counter_out_bits {
7817 u8 status[0x8];
7818 u8 reserved_at_8[0x18];
7819
7820 u8 syndrome[0x20];
7821
Rabie Louloua8ffcc72017-07-09 13:39:30 +03007822 u8 flow_counter_id[0x20];
Amir Vadai9dc0b282016-05-13 12:55:39 +00007823
7824 u8 reserved_at_60[0x20];
7825};
7826
7827struct mlx5_ifc_alloc_flow_counter_in_bits {
7828 u8 opcode[0x10];
7829 u8 reserved_at_10[0x10];
7830
7831 u8 reserved_at_20[0x10];
7832 u8 op_mod[0x10];
7833
Gavi Teitz8536a6b2019-07-29 21:12:54 +00007834 u8 reserved_at_40[0x38];
7835 u8 flow_counter_bulk[0x8];
Amir Vadai9dc0b282016-05-13 12:55:39 +00007836};
7837
Saeed Mahameede2816822015-05-28 22:28:40 +03007838struct mlx5_ifc_add_vxlan_udp_dport_out_bits {
7839 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007840 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007841
7842 u8 syndrome[0x20];
7843
Matan Barakb4ff3a32016-02-09 14:57:42 +02007844 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007845};
7846
7847struct mlx5_ifc_add_vxlan_udp_dport_in_bits {
7848 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007849 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007850
Matan Barakb4ff3a32016-02-09 14:57:42 +02007851 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007852 u8 op_mod[0x10];
7853
Matan Barakb4ff3a32016-02-09 14:57:42 +02007854 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007855
Matan Barakb4ff3a32016-02-09 14:57:42 +02007856 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007857 u8 vxlan_udp_port[0x10];
7858};
7859
Eran Ben Elisha37e92a92017-11-13 10:11:27 +02007860struct mlx5_ifc_set_pp_rate_limit_out_bits {
Saeed Mahameed74862162016-06-09 15:11:34 +03007861 u8 status[0x8];
7862 u8 reserved_at_8[0x18];
7863
7864 u8 syndrome[0x20];
7865
7866 u8 reserved_at_40[0x40];
7867};
7868
Eran Ben Elisha37e92a92017-11-13 10:11:27 +02007869struct mlx5_ifc_set_pp_rate_limit_in_bits {
Saeed Mahameed74862162016-06-09 15:11:34 +03007870 u8 opcode[0x10];
7871 u8 reserved_at_10[0x10];
7872
7873 u8 reserved_at_20[0x10];
7874 u8 op_mod[0x10];
7875
7876 u8 reserved_at_40[0x10];
7877 u8 rate_limit_index[0x10];
7878
7879 u8 reserved_at_60[0x20];
7880
7881 u8 rate_limit[0x20];
Eran Ben Elisha37e92a92017-11-13 10:11:27 +02007882
Bodong Wang05d3ac92018-03-19 15:10:29 +02007883 u8 burst_upper_bound[0x20];
7884
7885 u8 reserved_at_c0[0x10];
7886 u8 typical_packet_size[0x10];
7887
7888 u8 reserved_at_e0[0x120];
Saeed Mahameed74862162016-06-09 15:11:34 +03007889};
7890
Saeed Mahameede2816822015-05-28 22:28:40 +03007891struct mlx5_ifc_access_register_out_bits {
7892 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007893 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007894
7895 u8 syndrome[0x20];
7896
Matan Barakb4ff3a32016-02-09 14:57:42 +02007897 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007898
7899 u8 register_data[0][0x20];
7900};
7901
7902enum {
7903 MLX5_ACCESS_REGISTER_IN_OP_MOD_WRITE = 0x0,
7904 MLX5_ACCESS_REGISTER_IN_OP_MOD_READ = 0x1,
7905};
7906
7907struct mlx5_ifc_access_register_in_bits {
7908 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007909 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007910
Matan Barakb4ff3a32016-02-09 14:57:42 +02007911 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007912 u8 op_mod[0x10];
7913
Matan Barakb4ff3a32016-02-09 14:57:42 +02007914 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007915 u8 register_id[0x10];
7916
7917 u8 argument[0x20];
7918
7919 u8 register_data[0][0x20];
7920};
7921
7922struct mlx5_ifc_sltp_reg_bits {
7923 u8 status[0x4];
7924 u8 version[0x4];
7925 u8 local_port[0x8];
7926 u8 pnat[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007927 u8 reserved_at_12[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03007928 u8 lane[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007929 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007930
Matan Barakb4ff3a32016-02-09 14:57:42 +02007931 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007932
Matan Barakb4ff3a32016-02-09 14:57:42 +02007933 u8 reserved_at_40[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03007934 u8 polarity[0x1];
7935 u8 ob_tap0[0x8];
7936 u8 ob_tap1[0x8];
7937 u8 ob_tap2[0x8];
7938
Matan Barakb4ff3a32016-02-09 14:57:42 +02007939 u8 reserved_at_60[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03007940 u8 ob_preemp_mode[0x4];
7941 u8 ob_reg[0x8];
7942 u8 ob_bias[0x8];
7943
Matan Barakb4ff3a32016-02-09 14:57:42 +02007944 u8 reserved_at_80[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007945};
7946
7947struct mlx5_ifc_slrg_reg_bits {
7948 u8 status[0x4];
7949 u8 version[0x4];
7950 u8 local_port[0x8];
7951 u8 pnat[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007952 u8 reserved_at_12[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03007953 u8 lane[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007954 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007955
7956 u8 time_to_link_up[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007957 u8 reserved_at_30[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03007958 u8 grade_lane_speed[0x4];
7959
7960 u8 grade_version[0x8];
7961 u8 grade[0x18];
7962
Matan Barakb4ff3a32016-02-09 14:57:42 +02007963 u8 reserved_at_60[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007964 u8 height_grade_type[0x4];
7965 u8 height_grade[0x18];
7966
7967 u8 height_dz[0x10];
7968 u8 height_dv[0x10];
7969
Matan Barakb4ff3a32016-02-09 14:57:42 +02007970 u8 reserved_at_a0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007971 u8 height_sigma[0x10];
7972
Matan Barakb4ff3a32016-02-09 14:57:42 +02007973 u8 reserved_at_c0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007974
Matan Barakb4ff3a32016-02-09 14:57:42 +02007975 u8 reserved_at_e0[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007976 u8 phase_grade_type[0x4];
7977 u8 phase_grade[0x18];
7978
Matan Barakb4ff3a32016-02-09 14:57:42 +02007979 u8 reserved_at_100[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007980 u8 phase_eo_pos[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007981 u8 reserved_at_110[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007982 u8 phase_eo_neg[0x8];
7983
7984 u8 ffe_set_tested[0x10];
7985 u8 test_errors_per_lane[0x10];
7986};
7987
7988struct mlx5_ifc_pvlc_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007989 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007990 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007991 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007992
Matan Barakb4ff3a32016-02-09 14:57:42 +02007993 u8 reserved_at_20[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007994 u8 vl_hw_cap[0x4];
7995
Matan Barakb4ff3a32016-02-09 14:57:42 +02007996 u8 reserved_at_40[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007997 u8 vl_admin[0x4];
7998
Matan Barakb4ff3a32016-02-09 14:57:42 +02007999 u8 reserved_at_60[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03008000 u8 vl_operational[0x4];
8001};
8002
8003struct mlx5_ifc_pude_reg_bits {
8004 u8 swid[0x8];
8005 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008006 u8 reserved_at_10[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008007 u8 admin_status[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008008 u8 reserved_at_18[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008009 u8 oper_status[0x4];
8010
Matan Barakb4ff3a32016-02-09 14:57:42 +02008011 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03008012};
8013
8014struct mlx5_ifc_ptys_reg_bits {
Bodong Wange7e31ca2016-09-07 19:07:58 +03008015 u8 reserved_at_0[0x1];
Saeed Mahameed74862162016-06-09 15:11:34 +03008016 u8 an_disable_admin[0x1];
Bodong Wange7e31ca2016-09-07 19:07:58 +03008017 u8 an_disable_cap[0x1];
8018 u8 reserved_at_3[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03008019 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008020 u8 reserved_at_10[0xd];
Saeed Mahameede2816822015-05-28 22:28:40 +03008021 u8 proto_mask[0x3];
8022
Saeed Mahameed74862162016-06-09 15:11:34 +03008023 u8 an_status[0x4];
Aya Levina0a89982019-02-12 22:55:44 -08008024 u8 reserved_at_24[0x1c];
8025
8026 u8 ext_eth_proto_capability[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03008027
8028 u8 eth_proto_capability[0x20];
8029
8030 u8 ib_link_width_capability[0x10];
8031 u8 ib_proto_capability[0x10];
8032
Aya Levina0a89982019-02-12 22:55:44 -08008033 u8 ext_eth_proto_admin[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03008034
8035 u8 eth_proto_admin[0x20];
8036
8037 u8 ib_link_width_admin[0x10];
8038 u8 ib_proto_admin[0x10];
8039
Aya Levina0a89982019-02-12 22:55:44 -08008040 u8 ext_eth_proto_oper[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03008041
8042 u8 eth_proto_oper[0x20];
8043
8044 u8 ib_link_width_oper[0x10];
8045 u8 ib_proto_oper[0x10];
8046
Eran Ben Elisha5b4793f2017-02-13 14:00:59 +02008047 u8 reserved_at_160[0x1c];
8048 u8 connector_type[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008049
8050 u8 eth_proto_lp_advertise[0x20];
8051
Matan Barakb4ff3a32016-02-09 14:57:42 +02008052 u8 reserved_at_1a0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03008053};
8054
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03008055struct mlx5_ifc_mlcr_reg_bits {
8056 u8 reserved_at_0[0x8];
8057 u8 local_port[0x8];
8058 u8 reserved_at_10[0x20];
8059
8060 u8 beacon_duration[0x10];
8061 u8 reserved_at_40[0x10];
8062
8063 u8 beacon_remain[0x10];
8064};
8065
Saeed Mahameede2816822015-05-28 22:28:40 +03008066struct mlx5_ifc_ptas_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008067 u8 reserved_at_0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03008068
8069 u8 algorithm_options[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008070 u8 reserved_at_30[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008071 u8 repetitions_mode[0x4];
8072 u8 num_of_repetitions[0x8];
8073
8074 u8 grade_version[0x8];
8075 u8 height_grade_type[0x4];
8076 u8 phase_grade_type[0x4];
8077 u8 height_grade_weight[0x8];
8078 u8 phase_grade_weight[0x8];
8079
8080 u8 gisim_measure_bits[0x10];
8081 u8 adaptive_tap_measure_bits[0x10];
8082
8083 u8 ber_bath_high_error_threshold[0x10];
8084 u8 ber_bath_mid_error_threshold[0x10];
8085
8086 u8 ber_bath_low_error_threshold[0x10];
8087 u8 one_ratio_high_threshold[0x10];
8088
8089 u8 one_ratio_high_mid_threshold[0x10];
8090 u8 one_ratio_low_mid_threshold[0x10];
8091
8092 u8 one_ratio_low_threshold[0x10];
8093 u8 ndeo_error_threshold[0x10];
8094
8095 u8 mixer_offset_step_size[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008096 u8 reserved_at_110[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008097 u8 mix90_phase_for_voltage_bath[0x8];
8098
8099 u8 mixer_offset_start[0x10];
8100 u8 mixer_offset_end[0x10];
8101
Matan Barakb4ff3a32016-02-09 14:57:42 +02008102 u8 reserved_at_140[0x15];
Saeed Mahameede2816822015-05-28 22:28:40 +03008103 u8 ber_test_time[0xb];
8104};
8105
8106struct mlx5_ifc_pspa_reg_bits {
8107 u8 swid[0x8];
8108 u8 local_port[0x8];
8109 u8 sub_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008110 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008111
Matan Barakb4ff3a32016-02-09 14:57:42 +02008112 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03008113};
8114
8115struct mlx5_ifc_pqdr_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008116 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008117 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008118 u8 reserved_at_10[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03008119 u8 prio[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008120 u8 reserved_at_18[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03008121 u8 mode[0x2];
8122
Matan Barakb4ff3a32016-02-09 14:57:42 +02008123 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03008124
Matan Barakb4ff3a32016-02-09 14:57:42 +02008125 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008126 u8 min_threshold[0x10];
8127
Matan Barakb4ff3a32016-02-09 14:57:42 +02008128 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008129 u8 max_threshold[0x10];
8130
Matan Barakb4ff3a32016-02-09 14:57:42 +02008131 u8 reserved_at_80[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008132 u8 mark_probability_denominator[0x10];
8133
Matan Barakb4ff3a32016-02-09 14:57:42 +02008134 u8 reserved_at_a0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03008135};
8136
8137struct mlx5_ifc_ppsc_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008138 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008139 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008140 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008141
Matan Barakb4ff3a32016-02-09 14:57:42 +02008142 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03008143
Matan Barakb4ff3a32016-02-09 14:57:42 +02008144 u8 reserved_at_80[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03008145 u8 wrps_admin[0x4];
8146
Matan Barakb4ff3a32016-02-09 14:57:42 +02008147 u8 reserved_at_a0[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03008148 u8 wrps_status[0x4];
8149
Matan Barakb4ff3a32016-02-09 14:57:42 +02008150 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008151 u8 up_threshold[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008152 u8 reserved_at_d0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008153 u8 down_threshold[0x8];
8154
Matan Barakb4ff3a32016-02-09 14:57:42 +02008155 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03008156
Matan Barakb4ff3a32016-02-09 14:57:42 +02008157 u8 reserved_at_100[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03008158 u8 srps_admin[0x4];
8159
Matan Barakb4ff3a32016-02-09 14:57:42 +02008160 u8 reserved_at_120[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03008161 u8 srps_status[0x4];
8162
Matan Barakb4ff3a32016-02-09 14:57:42 +02008163 u8 reserved_at_140[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03008164};
8165
8166struct mlx5_ifc_pplr_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008167 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008168 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008169 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008170
Matan Barakb4ff3a32016-02-09 14:57:42 +02008171 u8 reserved_at_20[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008172 u8 lb_cap[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008173 u8 reserved_at_30[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008174 u8 lb_en[0x8];
8175};
8176
8177struct mlx5_ifc_pplm_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008178 u8 reserved_at_0[0x8];
Shay Agroskin4b5b9c72018-10-09 14:16:43 +03008179 u8 local_port[0x8];
8180 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008181
Shay Agroskin4b5b9c72018-10-09 14:16:43 +03008182 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03008183
Shay Agroskin4b5b9c72018-10-09 14:16:43 +03008184 u8 port_profile_mode[0x8];
8185 u8 static_port_profile[0x8];
8186 u8 active_port_profile[0x8];
8187 u8 reserved_at_58[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008188
Shay Agroskin4b5b9c72018-10-09 14:16:43 +03008189 u8 retransmission_active[0x8];
8190 u8 fec_mode_active[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008191
Shay Agroskin4b5b9c72018-10-09 14:16:43 +03008192 u8 rs_fec_correction_bypass_cap[0x4];
8193 u8 reserved_at_84[0x8];
8194 u8 fec_override_cap_56g[0x4];
8195 u8 fec_override_cap_100g[0x4];
8196 u8 fec_override_cap_50g[0x4];
8197 u8 fec_override_cap_25g[0x4];
8198 u8 fec_override_cap_10g_40g[0x4];
8199
8200 u8 rs_fec_correction_bypass_admin[0x4];
8201 u8 reserved_at_a4[0x8];
8202 u8 fec_override_admin_56g[0x4];
8203 u8 fec_override_admin_100g[0x4];
8204 u8 fec_override_admin_50g[0x4];
8205 u8 fec_override_admin_25g[0x4];
8206 u8 fec_override_admin_10g_40g[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008207};
8208
8209struct mlx5_ifc_ppcnt_reg_bits {
8210 u8 swid[0x8];
8211 u8 local_port[0x8];
8212 u8 pnat[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008213 u8 reserved_at_12[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008214 u8 grp[0x6];
8215
8216 u8 clr[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008217 u8 reserved_at_21[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03008218 u8 prio_tc[0x3];
8219
8220 union mlx5_ifc_eth_cntrs_grp_data_layout_auto_bits counter_set;
8221};
8222
Aya Levin40390492019-03-29 15:38:03 -07008223struct mlx5_ifc_mpein_reg_bits {
8224 u8 reserved_at_0[0x2];
8225 u8 depth[0x6];
8226 u8 pcie_index[0x8];
8227 u8 node[0x8];
8228 u8 reserved_at_18[0x8];
8229
8230 u8 capability_mask[0x20];
8231
8232 u8 reserved_at_40[0x8];
8233 u8 link_width_enabled[0x8];
8234 u8 link_speed_enabled[0x10];
8235
8236 u8 lane0_physical_position[0x8];
8237 u8 link_width_active[0x8];
8238 u8 link_speed_active[0x10];
8239
8240 u8 num_of_pfs[0x10];
8241 u8 num_of_vfs[0x10];
8242
8243 u8 bdf0[0x10];
8244 u8 reserved_at_b0[0x10];
8245
8246 u8 max_read_request_size[0x4];
8247 u8 max_payload_size[0x4];
8248 u8 reserved_at_c8[0x5];
8249 u8 pwr_status[0x3];
8250 u8 port_type[0x4];
8251 u8 reserved_at_d4[0xb];
8252 u8 lane_reversal[0x1];
8253
8254 u8 reserved_at_e0[0x14];
8255 u8 pci_power[0xc];
8256
8257 u8 reserved_at_100[0x20];
8258
8259 u8 device_status[0x10];
8260 u8 port_state[0x8];
8261 u8 reserved_at_138[0x8];
8262
8263 u8 reserved_at_140[0x10];
8264 u8 receiver_detect_result[0x10];
8265
8266 u8 reserved_at_160[0x20];
8267};
8268
Gal Pressman8ed1a632016-11-17 13:46:01 +02008269struct mlx5_ifc_mpcnt_reg_bits {
8270 u8 reserved_at_0[0x8];
8271 u8 pcie_index[0x8];
8272 u8 reserved_at_10[0xa];
8273 u8 grp[0x6];
8274
8275 u8 clr[0x1];
8276 u8 reserved_at_21[0x1f];
8277
8278 union mlx5_ifc_pcie_cntrs_grp_data_layout_auto_bits counter_set;
8279};
8280
Saeed Mahameede2816822015-05-28 22:28:40 +03008281struct mlx5_ifc_ppad_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008282 u8 reserved_at_0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03008283 u8 single_mac[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008284 u8 reserved_at_4[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008285 u8 local_port[0x8];
8286 u8 mac_47_32[0x10];
8287
8288 u8 mac_31_0[0x20];
8289
Matan Barakb4ff3a32016-02-09 14:57:42 +02008290 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03008291};
8292
8293struct mlx5_ifc_pmtu_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008294 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008295 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008296 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008297
8298 u8 max_mtu[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008299 u8 reserved_at_30[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008300
8301 u8 admin_mtu[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008302 u8 reserved_at_50[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008303
8304 u8 oper_mtu[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008305 u8 reserved_at_70[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008306};
8307
8308struct mlx5_ifc_pmpr_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008309 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008310 u8 module[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008311 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008312
Matan Barakb4ff3a32016-02-09 14:57:42 +02008313 u8 reserved_at_20[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008314 u8 attenuation_5g[0x8];
8315
Matan Barakb4ff3a32016-02-09 14:57:42 +02008316 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008317 u8 attenuation_7g[0x8];
8318
Matan Barakb4ff3a32016-02-09 14:57:42 +02008319 u8 reserved_at_60[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008320 u8 attenuation_12g[0x8];
8321};
8322
8323struct mlx5_ifc_pmpe_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008324 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008325 u8 module[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008326 u8 reserved_at_10[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03008327 u8 module_status[0x4];
8328
Matan Barakb4ff3a32016-02-09 14:57:42 +02008329 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03008330};
8331
8332struct mlx5_ifc_pmpc_reg_bits {
8333 u8 module_state_updated[32][0x8];
8334};
8335
8336struct mlx5_ifc_pmlpn_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008337 u8 reserved_at_0[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008338 u8 mlpn_status[0x4];
8339 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008340 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008341
8342 u8 e[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008343 u8 reserved_at_21[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03008344};
8345
8346struct mlx5_ifc_pmlp_reg_bits {
8347 u8 rxtx[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008348 u8 reserved_at_1[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03008349 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008350 u8 reserved_at_10[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008351 u8 width[0x8];
8352
8353 u8 lane0_module_mapping[0x20];
8354
8355 u8 lane1_module_mapping[0x20];
8356
8357 u8 lane2_module_mapping[0x20];
8358
8359 u8 lane3_module_mapping[0x20];
8360
Matan Barakb4ff3a32016-02-09 14:57:42 +02008361 u8 reserved_at_a0[0x160];
Saeed Mahameede2816822015-05-28 22:28:40 +03008362};
8363
8364struct mlx5_ifc_pmaos_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008365 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008366 u8 module[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008367 u8 reserved_at_10[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008368 u8 admin_status[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008369 u8 reserved_at_18[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008370 u8 oper_status[0x4];
8371
8372 u8 ase[0x1];
8373 u8 ee[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008374 u8 reserved_at_22[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03008375 u8 e[0x2];
8376
Matan Barakb4ff3a32016-02-09 14:57:42 +02008377 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03008378};
8379
8380struct mlx5_ifc_plpc_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008381 u8 reserved_at_0[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008382 u8 profile_id[0xc];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008383 u8 reserved_at_10[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008384 u8 proto_mask[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008385 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008386
Matan Barakb4ff3a32016-02-09 14:57:42 +02008387 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008388 u8 lane_speed[0x10];
8389
Matan Barakb4ff3a32016-02-09 14:57:42 +02008390 u8 reserved_at_40[0x17];
Saeed Mahameede2816822015-05-28 22:28:40 +03008391 u8 lpbf[0x1];
8392 u8 fec_mode_policy[0x8];
8393
8394 u8 retransmission_capability[0x8];
8395 u8 fec_mode_capability[0x18];
8396
8397 u8 retransmission_support_admin[0x8];
8398 u8 fec_mode_support_admin[0x18];
8399
8400 u8 retransmission_request_admin[0x8];
8401 u8 fec_mode_request_admin[0x18];
8402
Matan Barakb4ff3a32016-02-09 14:57:42 +02008403 u8 reserved_at_c0[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03008404};
8405
8406struct mlx5_ifc_plib_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008407 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008408 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008409 u8 reserved_at_10[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008410 u8 ib_port[0x8];
8411
Matan Barakb4ff3a32016-02-09 14:57:42 +02008412 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03008413};
8414
8415struct mlx5_ifc_plbf_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008416 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008417 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008418 u8 reserved_at_10[0xd];
Saeed Mahameede2816822015-05-28 22:28:40 +03008419 u8 lbf_mode[0x3];
8420
Matan Barakb4ff3a32016-02-09 14:57:42 +02008421 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03008422};
8423
8424struct mlx5_ifc_pipg_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008425 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008426 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008427 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008428
8429 u8 dic[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008430 u8 reserved_at_21[0x19];
Saeed Mahameede2816822015-05-28 22:28:40 +03008431 u8 ipg[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008432 u8 reserved_at_3e[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03008433};
8434
8435struct mlx5_ifc_pifr_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008436 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008437 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008438 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008439
Matan Barakb4ff3a32016-02-09 14:57:42 +02008440 u8 reserved_at_20[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03008441
8442 u8 port_filter[8][0x20];
8443
8444 u8 port_filter_update_en[8][0x20];
8445};
8446
8447struct mlx5_ifc_pfcc_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008448 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008449 u8 local_port[0x8];
Inbar Karmy2afa6092017-11-20 18:06:20 +02008450 u8 reserved_at_10[0xb];
8451 u8 ppan_mask_n[0x1];
8452 u8 minor_stall_mask[0x1];
8453 u8 critical_stall_mask[0x1];
8454 u8 reserved_at_1e[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03008455
8456 u8 ppan[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008457 u8 reserved_at_24[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008458 u8 prio_mask_tx[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008459 u8 reserved_at_30[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008460 u8 prio_mask_rx[0x8];
8461
8462 u8 pptx[0x1];
8463 u8 aptx[0x1];
Inbar Karmy2afa6092017-11-20 18:06:20 +02008464 u8 pptx_mask_n[0x1];
8465 u8 reserved_at_43[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03008466 u8 pfctx[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008467 u8 reserved_at_50[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008468
8469 u8 pprx[0x1];
8470 u8 aprx[0x1];
Inbar Karmy2afa6092017-11-20 18:06:20 +02008471 u8 pprx_mask_n[0x1];
8472 u8 reserved_at_63[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03008473 u8 pfcrx[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008474 u8 reserved_at_70[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008475
Inbar Karmy2afa6092017-11-20 18:06:20 +02008476 u8 device_stall_minor_watermark[0x10];
8477 u8 device_stall_critical_watermark[0x10];
8478
8479 u8 reserved_at_a0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03008480};
8481
8482struct mlx5_ifc_pelc_reg_bits {
8483 u8 op[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008484 u8 reserved_at_4[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008485 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008486 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008487
8488 u8 op_admin[0x8];
8489 u8 op_capability[0x8];
8490 u8 op_request[0x8];
8491 u8 op_active[0x8];
8492
8493 u8 admin[0x40];
8494
8495 u8 capability[0x40];
8496
8497 u8 request[0x40];
8498
8499 u8 active[0x40];
8500
Matan Barakb4ff3a32016-02-09 14:57:42 +02008501 u8 reserved_at_140[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03008502};
8503
8504struct mlx5_ifc_peir_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008505 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008506 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008507 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008508
Matan Barakb4ff3a32016-02-09 14:57:42 +02008509 u8 reserved_at_20[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03008510 u8 error_count[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008511 u8 reserved_at_30[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008512
Matan Barakb4ff3a32016-02-09 14:57:42 +02008513 u8 reserved_at_40[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03008514 u8 lane[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008515 u8 reserved_at_50[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008516 u8 error_type[0x8];
8517};
8518
Eran Ben Elisha5e022dd2018-07-16 18:35:31 -07008519struct mlx5_ifc_mpegc_reg_bits {
8520 u8 reserved_at_0[0x30];
8521 u8 field_select[0x10];
8522
8523 u8 tx_overflow_sense[0x1];
8524 u8 mark_cqe[0x1];
8525 u8 mark_cnp[0x1];
8526 u8 reserved_at_43[0x1b];
8527 u8 tx_lossy_overflow_oper[0x2];
8528
8529 u8 reserved_at_60[0x100];
8530};
8531
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008532struct mlx5_ifc_pcam_enhanced_features_bits {
Talat Batheesh0af51072018-05-17 11:14:18 +03008533 u8 reserved_at_0[0x6d];
8534 u8 rx_icrc_encapsulated_counter[0x1];
Aya Levina0a89982019-02-12 22:55:44 -08008535 u8 reserved_at_6e[0x4];
8536 u8 ptys_extended_ethernet[0x1];
8537 u8 reserved_at_73[0x3];
Inbar Karmy2fcb12d2017-08-17 16:39:47 +03008538 u8 pfcc_mask[0x1];
Shay Agroskin67daf112018-09-30 09:58:08 +03008539 u8 reserved_at_77[0x3];
8540 u8 per_lane_error_counters[0x1];
Gal Pressman2dba0792017-06-18 14:56:45 +03008541 u8 rx_buffer_fullness_counters[0x1];
Eran Ben Elisha5b4793f2017-02-13 14:00:59 +02008542 u8 ptys_connector_type[0x1];
8543 u8 reserved_at_7d[0x1];
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008544 u8 ppcnt_discard_group[0x1];
8545 u8 ppcnt_statistical_group[0x1];
8546};
8547
Huy Nguyendf5f1362018-02-28 14:16:47 -06008548struct mlx5_ifc_pcam_regs_5000_to_507f_bits {
8549 u8 port_access_reg_cap_mask_127_to_96[0x20];
8550 u8 port_access_reg_cap_mask_95_to_64[0x20];
Shay Agroskin4b5b9c72018-10-09 14:16:43 +03008551
8552 u8 port_access_reg_cap_mask_63_to_36[0x1c];
8553 u8 pplm[0x1];
8554 u8 port_access_reg_cap_mask_34_to_32[0x3];
Huy Nguyendf5f1362018-02-28 14:16:47 -06008555
8556 u8 port_access_reg_cap_mask_31_to_13[0x13];
8557 u8 pbmc[0x1];
8558 u8 pptb[0x1];
Eyal Davidovich75370eb2018-10-07 15:18:37 +03008559 u8 port_access_reg_cap_mask_10_to_09[0x2];
8560 u8 ppcnt[0x1];
8561 u8 port_access_reg_cap_mask_07_to_00[0x8];
Huy Nguyendf5f1362018-02-28 14:16:47 -06008562};
8563
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008564struct mlx5_ifc_pcam_reg_bits {
8565 u8 reserved_at_0[0x8];
8566 u8 feature_group[0x8];
8567 u8 reserved_at_10[0x8];
8568 u8 access_reg_group[0x8];
8569
8570 u8 reserved_at_20[0x20];
8571
8572 union {
Huy Nguyendf5f1362018-02-28 14:16:47 -06008573 struct mlx5_ifc_pcam_regs_5000_to_507f_bits regs_5000_to_507f;
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008574 u8 reserved_at_0[0x80];
8575 } port_access_reg_cap_mask;
8576
8577 u8 reserved_at_c0[0x80];
8578
8579 union {
8580 struct mlx5_ifc_pcam_enhanced_features_bits enhanced_features;
8581 u8 reserved_at_0[0x80];
8582 } feature_cap_mask;
8583
8584 u8 reserved_at_1c0[0xc0];
8585};
8586
8587struct mlx5_ifc_mcam_enhanced_features_bits {
Aya Levin40390492019-03-29 15:38:03 -07008588 u8 reserved_at_0[0x6e];
8589 u8 pci_status_and_power[0x1];
8590 u8 reserved_at_6f[0x5];
Eran Ben Elisha5e022dd2018-07-16 18:35:31 -07008591 u8 mark_tx_action_cnp[0x1];
8592 u8 mark_tx_action_cqe[0x1];
8593 u8 dynamic_tx_overflow[0x1];
8594 u8 reserved_at_77[0x4];
Gal Pressman5405fa22017-06-15 18:29:23 +03008595 u8 pcie_outbound_stalled[0x1];
Eran Ben Elishaefae7f72017-05-12 02:47:02 +03008596 u8 tx_overflow_buffer_pkt[0x1];
Eugenia Emantayevfa367682017-05-25 16:09:34 +03008597 u8 mtpps_enh_out_per_adj[0x1];
8598 u8 mtpps_fs[0x1];
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008599 u8 pcie_performance_group[0x1];
8600};
8601
Or Gerlitz0ab87742017-06-11 15:25:38 +03008602struct mlx5_ifc_mcam_access_reg_bits {
8603 u8 reserved_at_0[0x1c];
8604 u8 mcda[0x1];
8605 u8 mcc[0x1];
8606 u8 mcqi[0x1];
Shay Agroskina82e0b52019-06-28 22:35:50 +00008607 u8 mcqs[0x1];
Or Gerlitz0ab87742017-06-11 15:25:38 +03008608
Eran Ben Elisha5e022dd2018-07-16 18:35:31 -07008609 u8 regs_95_to_87[0x9];
8610 u8 mpegc[0x1];
8611 u8 regs_85_to_68[0x12];
Feras Daoudeff8ea82018-07-16 18:35:30 -07008612 u8 tracer_registers[0x4];
8613
Or Gerlitz0ab87742017-06-11 15:25:38 +03008614 u8 regs_63_to_32[0x20];
8615 u8 regs_31_to_0[0x20];
8616};
8617
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008618struct mlx5_ifc_mcam_reg_bits {
8619 u8 reserved_at_0[0x8];
8620 u8 feature_group[0x8];
8621 u8 reserved_at_10[0x8];
8622 u8 access_reg_group[0x8];
8623
8624 u8 reserved_at_20[0x20];
8625
8626 union {
Or Gerlitz0ab87742017-06-11 15:25:38 +03008627 struct mlx5_ifc_mcam_access_reg_bits access_regs;
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008628 u8 reserved_at_0[0x80];
8629 } mng_access_reg_cap_mask;
8630
8631 u8 reserved_at_c0[0x80];
8632
8633 union {
8634 struct mlx5_ifc_mcam_enhanced_features_bits enhanced_features;
8635 u8 reserved_at_0[0x80];
8636 } mng_feature_cap_mask;
8637
8638 u8 reserved_at_1c0[0x80];
8639};
8640
Huy Nguyenc02762e2017-07-18 16:03:17 -05008641struct mlx5_ifc_qcam_access_reg_cap_mask {
8642 u8 qcam_access_reg_cap_mask_127_to_20[0x6C];
8643 u8 qpdpm[0x1];
8644 u8 qcam_access_reg_cap_mask_18_to_4[0x0F];
8645 u8 qdpm[0x1];
8646 u8 qpts[0x1];
8647 u8 qcap[0x1];
8648 u8 qcam_access_reg_cap_mask_0[0x1];
8649};
8650
8651struct mlx5_ifc_qcam_qos_feature_cap_mask {
8652 u8 qcam_qos_feature_cap_mask_127_to_1[0x7F];
8653 u8 qpts_trust_both[0x1];
8654};
8655
8656struct mlx5_ifc_qcam_reg_bits {
8657 u8 reserved_at_0[0x8];
8658 u8 feature_group[0x8];
8659 u8 reserved_at_10[0x8];
8660 u8 access_reg_group[0x8];
8661 u8 reserved_at_20[0x20];
8662
8663 union {
8664 struct mlx5_ifc_qcam_access_reg_cap_mask reg_cap;
8665 u8 reserved_at_0[0x80];
8666 } qos_access_reg_cap_mask;
8667
8668 u8 reserved_at_c0[0x80];
8669
8670 union {
8671 struct mlx5_ifc_qcam_qos_feature_cap_mask feature_cap;
8672 u8 reserved_at_0[0x80];
8673 } qos_feature_cap_mask;
8674
8675 u8 reserved_at_1c0[0x80];
8676};
8677
Moshe Shemesh0b9055a2019-05-29 22:50:24 +00008678struct mlx5_ifc_core_dump_reg_bits {
8679 u8 reserved_at_0[0x18];
8680 u8 core_dump_type[0x8];
8681
8682 u8 reserved_at_20[0x30];
8683 u8 vhca_id[0x10];
8684
8685 u8 reserved_at_60[0x8];
8686 u8 qpn[0x18];
8687 u8 reserved_at_80[0x180];
8688};
8689
Saeed Mahameede2816822015-05-28 22:28:40 +03008690struct mlx5_ifc_pcap_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008691 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008692 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008693 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008694
8695 u8 port_capability_mask[4][0x20];
8696};
8697
8698struct mlx5_ifc_paos_reg_bits {
8699 u8 swid[0x8];
8700 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008701 u8 reserved_at_10[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008702 u8 admin_status[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008703 u8 reserved_at_18[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008704 u8 oper_status[0x4];
8705
8706 u8 ase[0x1];
8707 u8 ee[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008708 u8 reserved_at_22[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03008709 u8 e[0x2];
8710
Matan Barakb4ff3a32016-02-09 14:57:42 +02008711 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03008712};
8713
8714struct mlx5_ifc_pamp_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008715 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008716 u8 opamp_group[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008717 u8 reserved_at_10[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03008718 u8 opamp_group_type[0x4];
8719
8720 u8 start_index[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008721 u8 reserved_at_30[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008722 u8 num_of_indices[0xc];
8723
8724 u8 index_data[18][0x10];
8725};
8726
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03008727struct mlx5_ifc_pcmr_reg_bits {
8728 u8 reserved_at_0[0x8];
8729 u8 local_port[0x8];
Eli Britstein0dcaafc2019-01-20 22:33:19 +02008730 u8 reserved_at_10[0x10];
8731 u8 entropy_force_cap[0x1];
8732 u8 entropy_calc_cap[0x1];
8733 u8 entropy_gre_calc_cap[0x1];
8734 u8 reserved_at_23[0x1b];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03008735 u8 fcs_cap[0x1];
Eli Britstein0dcaafc2019-01-20 22:33:19 +02008736 u8 reserved_at_3f[0x1];
8737 u8 entropy_force[0x1];
8738 u8 entropy_calc[0x1];
8739 u8 entropy_gre_calc[0x1];
8740 u8 reserved_at_43[0x1b];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03008741 u8 fcs_chk[0x1];
8742 u8 reserved_at_5f[0x1];
8743};
8744
Saeed Mahameede2816822015-05-28 22:28:40 +03008745struct mlx5_ifc_lane_2_module_mapping_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008746 u8 reserved_at_0[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03008747 u8 rx_lane[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008748 u8 reserved_at_8[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03008749 u8 tx_lane[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008750 u8 reserved_at_10[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008751 u8 module[0x8];
8752};
8753
8754struct mlx5_ifc_bufferx_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008755 u8 reserved_at_0[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03008756 u8 lossy[0x1];
8757 u8 epsb[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008758 u8 reserved_at_8[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03008759 u8 size[0xc];
8760
8761 u8 xoff_threshold[0x10];
8762 u8 xon_threshold[0x10];
8763};
8764
8765struct mlx5_ifc_set_node_in_bits {
8766 u8 node_description[64][0x8];
8767};
8768
8769struct mlx5_ifc_register_power_settings_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008770 u8 reserved_at_0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008771 u8 power_settings_level[0x8];
8772
Matan Barakb4ff3a32016-02-09 14:57:42 +02008773 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03008774};
8775
8776struct mlx5_ifc_register_host_endianness_bits {
8777 u8 he[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008778 u8 reserved_at_1[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03008779
Matan Barakb4ff3a32016-02-09 14:57:42 +02008780 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03008781};
8782
8783struct mlx5_ifc_umr_pointer_desc_argument_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008784 u8 reserved_at_0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03008785
8786 u8 mkey[0x20];
8787
8788 u8 addressh_63_32[0x20];
8789
8790 u8 addressl_31_0[0x20];
8791};
8792
8793struct mlx5_ifc_ud_adrs_vector_bits {
8794 u8 dc_key[0x40];
8795
8796 u8 ext[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008797 u8 reserved_at_41[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03008798 u8 destination_qp_dct[0x18];
8799
8800 u8 static_rate[0x4];
8801 u8 sl_eth_prio[0x4];
8802 u8 fl[0x1];
8803 u8 mlid[0x7];
8804 u8 rlid_udp_sport[0x10];
8805
Matan Barakb4ff3a32016-02-09 14:57:42 +02008806 u8 reserved_at_80[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03008807
8808 u8 rmac_47_16[0x20];
8809
8810 u8 rmac_15_0[0x10];
8811 u8 tclass[0x8];
8812 u8 hop_limit[0x8];
8813
Matan Barakb4ff3a32016-02-09 14:57:42 +02008814 u8 reserved_at_e0[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03008815 u8 grh[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008816 u8 reserved_at_e2[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03008817 u8 src_addr_index[0x8];
8818 u8 flow_label[0x14];
8819
8820 u8 rgid_rip[16][0x8];
8821};
8822
8823struct mlx5_ifc_pages_req_event_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008824 u8 reserved_at_0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008825 u8 function_id[0x10];
8826
8827 u8 num_pages[0x20];
8828
Matan Barakb4ff3a32016-02-09 14:57:42 +02008829 u8 reserved_at_40[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03008830};
8831
8832struct mlx5_ifc_eqe_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008833 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008834 u8 event_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008835 u8 reserved_at_10[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008836 u8 event_sub_type[0x8];
8837
Matan Barakb4ff3a32016-02-09 14:57:42 +02008838 u8 reserved_at_20[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03008839
8840 union mlx5_ifc_event_auto_bits event_data;
8841
Matan Barakb4ff3a32016-02-09 14:57:42 +02008842 u8 reserved_at_1e0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008843 u8 signature[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008844 u8 reserved_at_1f8[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03008845 u8 owner[0x1];
8846};
8847
8848enum {
8849 MLX5_CMD_QUEUE_ENTRY_TYPE_PCIE_CMD_IF_TRANSPORT = 0x7,
8850};
8851
8852struct mlx5_ifc_cmd_queue_entry_bits {
8853 u8 type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008854 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008855
8856 u8 input_length[0x20];
8857
8858 u8 input_mailbox_pointer_63_32[0x20];
8859
8860 u8 input_mailbox_pointer_31_9[0x17];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008861 u8 reserved_at_77[0x9];
Saeed Mahameede2816822015-05-28 22:28:40 +03008862
8863 u8 command_input_inline_data[16][0x8];
8864
8865 u8 command_output_inline_data[16][0x8];
8866
8867 u8 output_mailbox_pointer_63_32[0x20];
8868
8869 u8 output_mailbox_pointer_31_9[0x17];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008870 u8 reserved_at_1b7[0x9];
Saeed Mahameede2816822015-05-28 22:28:40 +03008871
8872 u8 output_length[0x20];
8873
8874 u8 token[0x8];
8875 u8 signature[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008876 u8 reserved_at_1f0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008877 u8 status[0x7];
8878 u8 ownership[0x1];
8879};
8880
8881struct mlx5_ifc_cmd_out_bits {
8882 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008883 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008884
8885 u8 syndrome[0x20];
8886
8887 u8 command_output[0x20];
8888};
8889
8890struct mlx5_ifc_cmd_in_bits {
8891 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008892 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008893
Matan Barakb4ff3a32016-02-09 14:57:42 +02008894 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008895 u8 op_mod[0x10];
8896
8897 u8 command[0][0x20];
8898};
8899
8900struct mlx5_ifc_cmd_if_box_bits {
8901 u8 mailbox_data[512][0x8];
8902
Matan Barakb4ff3a32016-02-09 14:57:42 +02008903 u8 reserved_at_1000[0x180];
Saeed Mahameede2816822015-05-28 22:28:40 +03008904
8905 u8 next_pointer_63_32[0x20];
8906
8907 u8 next_pointer_31_10[0x16];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008908 u8 reserved_at_11b6[0xa];
Saeed Mahameede2816822015-05-28 22:28:40 +03008909
8910 u8 block_number[0x20];
8911
Matan Barakb4ff3a32016-02-09 14:57:42 +02008912 u8 reserved_at_11e0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008913 u8 token[0x8];
8914 u8 ctrl_signature[0x8];
8915 u8 signature[0x8];
8916};
8917
8918struct mlx5_ifc_mtt_bits {
8919 u8 ptag_63_32[0x20];
8920
8921 u8 ptag_31_8[0x18];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008922 u8 reserved_at_38[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03008923 u8 wr_en[0x1];
8924 u8 rd_en[0x1];
8925};
8926
Tariq Toukan928cfe82016-02-22 18:17:29 +02008927struct mlx5_ifc_query_wol_rol_out_bits {
8928 u8 status[0x8];
8929 u8 reserved_at_8[0x18];
8930
8931 u8 syndrome[0x20];
8932
8933 u8 reserved_at_40[0x10];
8934 u8 rol_mode[0x8];
8935 u8 wol_mode[0x8];
8936
8937 u8 reserved_at_60[0x20];
8938};
8939
8940struct mlx5_ifc_query_wol_rol_in_bits {
8941 u8 opcode[0x10];
8942 u8 reserved_at_10[0x10];
8943
8944 u8 reserved_at_20[0x10];
8945 u8 op_mod[0x10];
8946
8947 u8 reserved_at_40[0x40];
8948};
8949
8950struct mlx5_ifc_set_wol_rol_out_bits {
8951 u8 status[0x8];
8952 u8 reserved_at_8[0x18];
8953
8954 u8 syndrome[0x20];
8955
8956 u8 reserved_at_40[0x40];
8957};
8958
8959struct mlx5_ifc_set_wol_rol_in_bits {
8960 u8 opcode[0x10];
8961 u8 reserved_at_10[0x10];
8962
8963 u8 reserved_at_20[0x10];
8964 u8 op_mod[0x10];
8965
8966 u8 rol_mode_valid[0x1];
8967 u8 wol_mode_valid[0x1];
8968 u8 reserved_at_42[0xe];
8969 u8 rol_mode[0x8];
8970 u8 wol_mode[0x8];
8971
8972 u8 reserved_at_60[0x20];
8973};
8974
Saeed Mahameede2816822015-05-28 22:28:40 +03008975enum {
8976 MLX5_INITIAL_SEG_NIC_INTERFACE_FULL_DRIVER = 0x0,
8977 MLX5_INITIAL_SEG_NIC_INTERFACE_DISABLED = 0x1,
8978 MLX5_INITIAL_SEG_NIC_INTERFACE_NO_DRAM_NIC = 0x2,
8979};
8980
8981enum {
8982 MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_FULL_DRIVER = 0x0,
8983 MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_DISABLED = 0x1,
8984 MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_NO_DRAM_NIC = 0x2,
8985};
8986
8987enum {
8988 MLX5_INITIAL_SEG_HEALTH_SYNDROME_FW_INTERNAL_ERR = 0x1,
8989 MLX5_INITIAL_SEG_HEALTH_SYNDROME_DEAD_IRISC = 0x7,
8990 MLX5_INITIAL_SEG_HEALTH_SYNDROME_HW_FATAL_ERR = 0x8,
8991 MLX5_INITIAL_SEG_HEALTH_SYNDROME_FW_CRC_ERR = 0x9,
8992 MLX5_INITIAL_SEG_HEALTH_SYNDROME_ICM_FETCH_PCI_ERR = 0xa,
8993 MLX5_INITIAL_SEG_HEALTH_SYNDROME_ICM_PAGE_ERR = 0xb,
8994 MLX5_INITIAL_SEG_HEALTH_SYNDROME_ASYNCHRONOUS_EQ_BUF_OVERRUN = 0xc,
8995 MLX5_INITIAL_SEG_HEALTH_SYNDROME_EQ_IN_ERR = 0xd,
8996 MLX5_INITIAL_SEG_HEALTH_SYNDROME_EQ_INV = 0xe,
8997 MLX5_INITIAL_SEG_HEALTH_SYNDROME_FFSER_ERR = 0xf,
8998 MLX5_INITIAL_SEG_HEALTH_SYNDROME_HIGH_TEMP_ERR = 0x10,
8999};
9000
9001struct mlx5_ifc_initial_seg_bits {
9002 u8 fw_rev_minor[0x10];
9003 u8 fw_rev_major[0x10];
9004
9005 u8 cmd_interface_rev[0x10];
9006 u8 fw_rev_subminor[0x10];
9007
Matan Barakb4ff3a32016-02-09 14:57:42 +02009008 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03009009
9010 u8 cmdq_phy_addr_63_32[0x20];
9011
9012 u8 cmdq_phy_addr_31_12[0x14];
Matan Barakb4ff3a32016-02-09 14:57:42 +02009013 u8 reserved_at_b4[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03009014 u8 nic_interface[0x2];
9015 u8 log_cmdq_size[0x4];
9016 u8 log_cmdq_stride[0x4];
9017
9018 u8 command_doorbell_vector[0x20];
9019
Matan Barakb4ff3a32016-02-09 14:57:42 +02009020 u8 reserved_at_e0[0xf00];
Saeed Mahameede2816822015-05-28 22:28:40 +03009021
9022 u8 initializing[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02009023 u8 reserved_at_fe1[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03009024 u8 nic_interface_supported[0x3];
Bodong Wang591905b2019-02-12 22:55:35 -08009025 u8 embedded_cpu[0x1];
9026 u8 reserved_at_fe9[0x17];
Saeed Mahameede2816822015-05-28 22:28:40 +03009027
9028 struct mlx5_ifc_health_buffer_bits health_buffer;
9029
9030 u8 no_dram_nic_offset[0x20];
9031
Matan Barakb4ff3a32016-02-09 14:57:42 +02009032 u8 reserved_at_1220[0x6e40];
Saeed Mahameede2816822015-05-28 22:28:40 +03009033
Matan Barakb4ff3a32016-02-09 14:57:42 +02009034 u8 reserved_at_8060[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03009035 u8 clear_int[0x1];
9036
9037 u8 health_syndrome[0x8];
9038 u8 health_counter[0x18];
9039
Matan Barakb4ff3a32016-02-09 14:57:42 +02009040 u8 reserved_at_80a0[0x17fc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03009041};
9042
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03009043struct mlx5_ifc_mtpps_reg_bits {
9044 u8 reserved_at_0[0xc];
9045 u8 cap_number_of_pps_pins[0x4];
9046 u8 reserved_at_10[0x4];
9047 u8 cap_max_num_of_pps_in_pins[0x4];
9048 u8 reserved_at_18[0x4];
9049 u8 cap_max_num_of_pps_out_pins[0x4];
9050
9051 u8 reserved_at_20[0x24];
9052 u8 cap_pin_3_mode[0x4];
9053 u8 reserved_at_48[0x4];
9054 u8 cap_pin_2_mode[0x4];
9055 u8 reserved_at_50[0x4];
9056 u8 cap_pin_1_mode[0x4];
9057 u8 reserved_at_58[0x4];
9058 u8 cap_pin_0_mode[0x4];
9059
9060 u8 reserved_at_60[0x4];
9061 u8 cap_pin_7_mode[0x4];
9062 u8 reserved_at_68[0x4];
9063 u8 cap_pin_6_mode[0x4];
9064 u8 reserved_at_70[0x4];
9065 u8 cap_pin_5_mode[0x4];
9066 u8 reserved_at_78[0x4];
9067 u8 cap_pin_4_mode[0x4];
9068
Eugenia Emantayevfa367682017-05-25 16:09:34 +03009069 u8 field_select[0x20];
9070 u8 reserved_at_a0[0x60];
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03009071
9072 u8 enable[0x1];
9073 u8 reserved_at_101[0xb];
9074 u8 pattern[0x4];
9075 u8 reserved_at_110[0x4];
9076 u8 pin_mode[0x4];
9077 u8 pin[0x8];
9078
9079 u8 reserved_at_120[0x20];
9080
9081 u8 time_stamp[0x40];
9082
9083 u8 out_pulse_duration[0x10];
9084 u8 out_periodic_adjustment[0x10];
Eugenia Emantayevfa367682017-05-25 16:09:34 +03009085 u8 enhanced_out_periodic_adjustment[0x20];
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03009086
Eugenia Emantayevfa367682017-05-25 16:09:34 +03009087 u8 reserved_at_1c0[0x20];
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03009088};
9089
9090struct mlx5_ifc_mtppse_reg_bits {
9091 u8 reserved_at_0[0x18];
9092 u8 pin[0x8];
9093 u8 event_arm[0x1];
9094 u8 reserved_at_21[0x1b];
9095 u8 event_generation_mode[0x4];
9096 u8 reserved_at_40[0x40];
9097};
9098
Shay Agroskina82e0b52019-06-28 22:35:50 +00009099struct mlx5_ifc_mcqs_reg_bits {
9100 u8 last_index_flag[0x1];
9101 u8 reserved_at_1[0x7];
9102 u8 fw_device[0x8];
9103 u8 component_index[0x10];
9104
9105 u8 reserved_at_20[0x10];
9106 u8 identifier[0x10];
9107
9108 u8 reserved_at_40[0x17];
9109 u8 component_status[0x5];
9110 u8 component_update_state[0x4];
9111
9112 u8 last_update_state_changer_type[0x4];
9113 u8 last_update_state_changer_host_id[0x4];
9114 u8 reserved_at_68[0x18];
9115};
9116
Or Gerlitz47176282017-04-18 13:35:39 +03009117struct mlx5_ifc_mcqi_cap_bits {
9118 u8 supported_info_bitmask[0x20];
9119
9120 u8 component_size[0x20];
9121
9122 u8 max_component_size[0x20];
9123
9124 u8 log_mcda_word_size[0x4];
9125 u8 reserved_at_64[0xc];
9126 u8 mcda_max_write_size[0x10];
9127
9128 u8 rd_en[0x1];
9129 u8 reserved_at_81[0x1];
9130 u8 match_chip_id[0x1];
9131 u8 match_psid[0x1];
9132 u8 check_user_timestamp[0x1];
9133 u8 match_base_guid_mac[0x1];
9134 u8 reserved_at_86[0x1a];
9135};
9136
Shay Agroskina82e0b52019-06-28 22:35:50 +00009137struct mlx5_ifc_mcqi_version_bits {
9138 u8 reserved_at_0[0x2];
9139 u8 build_time_valid[0x1];
9140 u8 user_defined_time_valid[0x1];
9141 u8 reserved_at_4[0x14];
9142 u8 version_string_length[0x8];
9143
9144 u8 version[0x20];
9145
9146 u8 build_time[0x40];
9147
9148 u8 user_defined_time[0x40];
9149
9150 u8 build_tool_version[0x20];
9151
9152 u8 reserved_at_e0[0x20];
9153
9154 u8 version_string[92][0x8];
9155};
9156
9157struct mlx5_ifc_mcqi_activation_method_bits {
9158 u8 pending_server_ac_power_cycle[0x1];
9159 u8 pending_server_dc_power_cycle[0x1];
9160 u8 pending_server_reboot[0x1];
9161 u8 pending_fw_reset[0x1];
9162 u8 auto_activate[0x1];
9163 u8 all_hosts_sync[0x1];
9164 u8 device_hw_reset[0x1];
9165 u8 reserved_at_7[0x19];
9166};
9167
9168union mlx5_ifc_mcqi_reg_data_bits {
9169 struct mlx5_ifc_mcqi_cap_bits mcqi_caps;
9170 struct mlx5_ifc_mcqi_version_bits mcqi_version;
9171 struct mlx5_ifc_mcqi_activation_method_bits mcqi_activation_mathod;
9172};
9173
Or Gerlitz47176282017-04-18 13:35:39 +03009174struct mlx5_ifc_mcqi_reg_bits {
9175 u8 read_pending_component[0x1];
9176 u8 reserved_at_1[0xf];
9177 u8 component_index[0x10];
9178
9179 u8 reserved_at_20[0x20];
9180
9181 u8 reserved_at_40[0x1b];
9182 u8 info_type[0x5];
9183
9184 u8 info_size[0x20];
9185
9186 u8 offset[0x20];
9187
9188 u8 reserved_at_a0[0x10];
9189 u8 data_size[0x10];
9190
Shay Agroskina82e0b52019-06-28 22:35:50 +00009191 union mlx5_ifc_mcqi_reg_data_bits data[0];
Or Gerlitz47176282017-04-18 13:35:39 +03009192};
9193
9194struct mlx5_ifc_mcc_reg_bits {
9195 u8 reserved_at_0[0x4];
9196 u8 time_elapsed_since_last_cmd[0xc];
9197 u8 reserved_at_10[0x8];
9198 u8 instruction[0x8];
9199
9200 u8 reserved_at_20[0x10];
9201 u8 component_index[0x10];
9202
9203 u8 reserved_at_40[0x8];
9204 u8 update_handle[0x18];
9205
9206 u8 handle_owner_type[0x4];
9207 u8 handle_owner_host_id[0x4];
9208 u8 reserved_at_68[0x1];
9209 u8 control_progress[0x7];
9210 u8 error_code[0x8];
9211 u8 reserved_at_78[0x4];
9212 u8 control_state[0x4];
9213
9214 u8 component_size[0x20];
9215
9216 u8 reserved_at_a0[0x60];
9217};
9218
9219struct mlx5_ifc_mcda_reg_bits {
9220 u8 reserved_at_0[0x8];
9221 u8 update_handle[0x18];
9222
9223 u8 offset[0x20];
9224
9225 u8 reserved_at_40[0x10];
9226 u8 size[0x10];
9227
9228 u8 reserved_at_60[0x20];
9229
9230 u8 data[0][0x20];
9231};
9232
Saeed Mahameede2816822015-05-28 22:28:40 +03009233union mlx5_ifc_ports_control_registers_document_bits {
9234 struct mlx5_ifc_bufferx_reg_bits bufferx_reg;
9235 struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits eth_2819_cntrs_grp_data_layout;
9236 struct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits eth_2863_cntrs_grp_data_layout;
9237 struct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits eth_3635_cntrs_grp_data_layout;
9238 struct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits eth_802_3_cntrs_grp_data_layout;
9239 struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits eth_extended_cntrs_grp_data_layout;
9240 struct mlx5_ifc_eth_per_prio_grp_data_layout_bits eth_per_prio_grp_data_layout;
9241 struct mlx5_ifc_eth_per_traffic_grp_data_layout_bits eth_per_traffic_grp_data_layout;
9242 struct mlx5_ifc_lane_2_module_mapping_bits lane_2_module_mapping;
9243 struct mlx5_ifc_pamp_reg_bits pamp_reg;
9244 struct mlx5_ifc_paos_reg_bits paos_reg;
9245 struct mlx5_ifc_pcap_reg_bits pcap_reg;
9246 struct mlx5_ifc_peir_reg_bits peir_reg;
9247 struct mlx5_ifc_pelc_reg_bits pelc_reg;
9248 struct mlx5_ifc_pfcc_reg_bits pfcc_reg;
Meny Yossefi1c64bf62016-02-18 18:15:00 +02009249 struct mlx5_ifc_ib_port_cntrs_grp_data_layout_bits ib_port_cntrs_grp_data_layout;
Saeed Mahameede2816822015-05-28 22:28:40 +03009250 struct mlx5_ifc_phys_layer_cntrs_bits phys_layer_cntrs;
9251 struct mlx5_ifc_pifr_reg_bits pifr_reg;
9252 struct mlx5_ifc_pipg_reg_bits pipg_reg;
9253 struct mlx5_ifc_plbf_reg_bits plbf_reg;
9254 struct mlx5_ifc_plib_reg_bits plib_reg;
9255 struct mlx5_ifc_plpc_reg_bits plpc_reg;
9256 struct mlx5_ifc_pmaos_reg_bits pmaos_reg;
9257 struct mlx5_ifc_pmlp_reg_bits pmlp_reg;
9258 struct mlx5_ifc_pmlpn_reg_bits pmlpn_reg;
9259 struct mlx5_ifc_pmpc_reg_bits pmpc_reg;
9260 struct mlx5_ifc_pmpe_reg_bits pmpe_reg;
9261 struct mlx5_ifc_pmpr_reg_bits pmpr_reg;
9262 struct mlx5_ifc_pmtu_reg_bits pmtu_reg;
9263 struct mlx5_ifc_ppad_reg_bits ppad_reg;
9264 struct mlx5_ifc_ppcnt_reg_bits ppcnt_reg;
Aya Levin40390492019-03-29 15:38:03 -07009265 struct mlx5_ifc_mpein_reg_bits mpein_reg;
Gal Pressman8ed1a632016-11-17 13:46:01 +02009266 struct mlx5_ifc_mpcnt_reg_bits mpcnt_reg;
Saeed Mahameede2816822015-05-28 22:28:40 +03009267 struct mlx5_ifc_pplm_reg_bits pplm_reg;
9268 struct mlx5_ifc_pplr_reg_bits pplr_reg;
9269 struct mlx5_ifc_ppsc_reg_bits ppsc_reg;
9270 struct mlx5_ifc_pqdr_reg_bits pqdr_reg;
9271 struct mlx5_ifc_pspa_reg_bits pspa_reg;
9272 struct mlx5_ifc_ptas_reg_bits ptas_reg;
9273 struct mlx5_ifc_ptys_reg_bits ptys_reg;
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03009274 struct mlx5_ifc_mlcr_reg_bits mlcr_reg;
Saeed Mahameede2816822015-05-28 22:28:40 +03009275 struct mlx5_ifc_pude_reg_bits pude_reg;
9276 struct mlx5_ifc_pvlc_reg_bits pvlc_reg;
9277 struct mlx5_ifc_slrg_reg_bits slrg_reg;
9278 struct mlx5_ifc_sltp_reg_bits sltp_reg;
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03009279 struct mlx5_ifc_mtpps_reg_bits mtpps_reg;
9280 struct mlx5_ifc_mtppse_reg_bits mtppse_reg;
Ilan Tayaria9956d32017-04-18 13:10:41 +03009281 struct mlx5_ifc_fpga_access_reg_bits fpga_access_reg;
Ilan Tayarie29341f2017-03-13 20:05:45 +02009282 struct mlx5_ifc_fpga_ctrl_bits fpga_ctrl_bits;
9283 struct mlx5_ifc_fpga_cap_bits fpga_cap_bits;
Or Gerlitz47176282017-04-18 13:35:39 +03009284 struct mlx5_ifc_mcqi_reg_bits mcqi_reg;
9285 struct mlx5_ifc_mcc_reg_bits mcc_reg;
9286 struct mlx5_ifc_mcda_reg_bits mcda_reg;
Matan Barakb4ff3a32016-02-09 14:57:42 +02009287 u8 reserved_at_0[0x60e0];
Saeed Mahameede2816822015-05-28 22:28:40 +03009288};
9289
9290union mlx5_ifc_debug_enhancements_document_bits {
9291 struct mlx5_ifc_health_buffer_bits health_buffer;
Matan Barakb4ff3a32016-02-09 14:57:42 +02009292 u8 reserved_at_0[0x200];
Saeed Mahameede2816822015-05-28 22:28:40 +03009293};
9294
9295union mlx5_ifc_uplink_pci_interface_document_bits {
9296 struct mlx5_ifc_initial_seg_bits initial_seg;
Matan Barakb4ff3a32016-02-09 14:57:42 +02009297 u8 reserved_at_0[0x20060];
Eli Cohenb7755162014-10-02 12:19:44 +03009298};
9299
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02009300struct mlx5_ifc_set_flow_table_root_out_bits {
9301 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02009302 u8 reserved_at_8[0x18];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02009303
9304 u8 syndrome[0x20];
9305
Matan Barakb4ff3a32016-02-09 14:57:42 +02009306 u8 reserved_at_40[0x40];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02009307};
9308
9309struct mlx5_ifc_set_flow_table_root_in_bits {
9310 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02009311 u8 reserved_at_10[0x10];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02009312
Matan Barakb4ff3a32016-02-09 14:57:42 +02009313 u8 reserved_at_20[0x10];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02009314 u8 op_mod[0x10];
9315
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03009316 u8 other_vport[0x1];
9317 u8 reserved_at_41[0xf];
9318 u8 vport_number[0x10];
9319
9320 u8 reserved_at_60[0x20];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02009321
9322 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02009323 u8 reserved_at_88[0x18];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02009324
Matan Barakb4ff3a32016-02-09 14:57:42 +02009325 u8 reserved_at_a0[0x8];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02009326 u8 table_id[0x18];
9327
Erez Shitrit500a3d02017-04-13 06:36:51 +03009328 u8 reserved_at_c0[0x8];
9329 u8 underlay_qpn[0x18];
9330 u8 reserved_at_e0[0x120];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02009331};
9332
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009333enum {
Aviv Heller84df61e2016-05-10 13:47:50 +03009334 MLX5_MODIFY_FLOW_TABLE_MISS_TABLE_ID = (1UL << 0),
9335 MLX5_MODIFY_FLOW_TABLE_LAG_NEXT_TABLE_ID = (1UL << 15),
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009336};
9337
9338struct mlx5_ifc_modify_flow_table_out_bits {
9339 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02009340 u8 reserved_at_8[0x18];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009341
9342 u8 syndrome[0x20];
9343
Matan Barakb4ff3a32016-02-09 14:57:42 +02009344 u8 reserved_at_40[0x40];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009345};
9346
9347struct mlx5_ifc_modify_flow_table_in_bits {
9348 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02009349 u8 reserved_at_10[0x10];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009350
Matan Barakb4ff3a32016-02-09 14:57:42 +02009351 u8 reserved_at_20[0x10];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009352 u8 op_mod[0x10];
9353
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03009354 u8 other_vport[0x1];
9355 u8 reserved_at_41[0xf];
9356 u8 vport_number[0x10];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009357
Matan Barakb4ff3a32016-02-09 14:57:42 +02009358 u8 reserved_at_60[0x10];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009359 u8 modify_field_select[0x10];
9360
9361 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02009362 u8 reserved_at_88[0x18];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009363
Matan Barakb4ff3a32016-02-09 14:57:42 +02009364 u8 reserved_at_a0[0x8];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009365 u8 table_id[0x18];
9366
Maor Gottlieb0c90e9c2017-03-12 11:35:23 +02009367 struct mlx5_ifc_flow_table_context_bits flow_table_context;
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009368};
9369
Saeed Mahameed4f3961e2016-02-22 18:17:25 +02009370struct mlx5_ifc_ets_tcn_config_reg_bits {
9371 u8 g[0x1];
9372 u8 b[0x1];
9373 u8 r[0x1];
9374 u8 reserved_at_3[0x9];
9375 u8 group[0x4];
9376 u8 reserved_at_10[0x9];
9377 u8 bw_allocation[0x7];
9378
9379 u8 reserved_at_20[0xc];
9380 u8 max_bw_units[0x4];
9381 u8 reserved_at_30[0x8];
9382 u8 max_bw_value[0x8];
9383};
9384
9385struct mlx5_ifc_ets_global_config_reg_bits {
9386 u8 reserved_at_0[0x2];
9387 u8 r[0x1];
9388 u8 reserved_at_3[0x1d];
9389
9390 u8 reserved_at_20[0xc];
9391 u8 max_bw_units[0x4];
9392 u8 reserved_at_30[0x8];
9393 u8 max_bw_value[0x8];
9394};
9395
9396struct mlx5_ifc_qetc_reg_bits {
9397 u8 reserved_at_0[0x8];
9398 u8 port_number[0x8];
9399 u8 reserved_at_10[0x30];
9400
9401 struct mlx5_ifc_ets_tcn_config_reg_bits tc_configuration[0x8];
9402 struct mlx5_ifc_ets_global_config_reg_bits global_configuration;
9403};
9404
Huy Nguyen415a64a2017-07-18 16:08:46 -05009405struct mlx5_ifc_qpdpm_dscp_reg_bits {
9406 u8 e[0x1];
9407 u8 reserved_at_01[0x0b];
9408 u8 prio[0x04];
9409};
9410
9411struct mlx5_ifc_qpdpm_reg_bits {
9412 u8 reserved_at_0[0x8];
9413 u8 local_port[0x8];
9414 u8 reserved_at_10[0x10];
9415 struct mlx5_ifc_qpdpm_dscp_reg_bits dscp[64];
9416};
9417
9418struct mlx5_ifc_qpts_reg_bits {
9419 u8 reserved_at_0[0x8];
9420 u8 local_port[0x8];
9421 u8 reserved_at_10[0x2d];
9422 u8 trust_state[0x3];
9423};
9424
Huy Nguyen50b4a3c2018-03-02 15:47:01 -06009425struct mlx5_ifc_pptb_reg_bits {
9426 u8 reserved_at_0[0x2];
9427 u8 mm[0x2];
9428 u8 reserved_at_4[0x4];
9429 u8 local_port[0x8];
9430 u8 reserved_at_10[0x6];
9431 u8 cm[0x1];
9432 u8 um[0x1];
9433 u8 pm[0x8];
9434
9435 u8 prio_x_buff[0x20];
9436
9437 u8 pm_msb[0x8];
9438 u8 reserved_at_48[0x10];
9439 u8 ctrl_buff[0x4];
9440 u8 untagged_buff[0x4];
9441};
9442
9443struct mlx5_ifc_pbmc_reg_bits {
9444 u8 reserved_at_0[0x8];
9445 u8 local_port[0x8];
9446 u8 reserved_at_10[0x10];
9447
9448 u8 xoff_timer_value[0x10];
9449 u8 xoff_refresh[0x10];
9450
9451 u8 reserved_at_40[0x9];
9452 u8 fullness_threshold[0x7];
9453 u8 port_buffer_size[0x10];
9454
9455 struct mlx5_ifc_bufferx_reg_bits buffer[10];
9456
9457 u8 reserved_at_2e0[0x40];
9458};
9459
Saeed Mahameed4f3961e2016-02-22 18:17:25 +02009460struct mlx5_ifc_qtct_reg_bits {
9461 u8 reserved_at_0[0x8];
9462 u8 port_number[0x8];
9463 u8 reserved_at_10[0xd];
9464 u8 prio[0x3];
9465
9466 u8 reserved_at_20[0x1d];
9467 u8 tclass[0x3];
9468};
9469
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03009470struct mlx5_ifc_mcia_reg_bits {
9471 u8 l[0x1];
9472 u8 reserved_at_1[0x7];
9473 u8 module[0x8];
9474 u8 reserved_at_10[0x8];
9475 u8 status[0x8];
9476
9477 u8 i2c_device_address[0x8];
9478 u8 page_number[0x8];
9479 u8 device_address[0x10];
9480
9481 u8 reserved_at_40[0x10];
9482 u8 size[0x10];
9483
9484 u8 reserved_at_60[0x20];
9485
9486 u8 dword_0[0x20];
9487 u8 dword_1[0x20];
9488 u8 dword_2[0x20];
9489 u8 dword_3[0x20];
9490 u8 dword_4[0x20];
9491 u8 dword_5[0x20];
9492 u8 dword_6[0x20];
9493 u8 dword_7[0x20];
9494 u8 dword_8[0x20];
9495 u8 dword_9[0x20];
9496 u8 dword_10[0x20];
9497 u8 dword_11[0x20];
9498};
9499
Saeed Mahameed74862162016-06-09 15:11:34 +03009500struct mlx5_ifc_dcbx_param_bits {
9501 u8 dcbx_cee_cap[0x1];
9502 u8 dcbx_ieee_cap[0x1];
9503 u8 dcbx_standby_cap[0x1];
Gal Pressmanc74d90c2018-11-07 20:31:37 +02009504 u8 reserved_at_3[0x5];
Saeed Mahameed74862162016-06-09 15:11:34 +03009505 u8 port_number[0x8];
9506 u8 reserved_at_10[0xa];
9507 u8 max_application_table_size[6];
9508 u8 reserved_at_20[0x15];
9509 u8 version_oper[0x3];
9510 u8 reserved_at_38[5];
9511 u8 version_admin[0x3];
9512 u8 willing_admin[0x1];
9513 u8 reserved_at_41[0x3];
9514 u8 pfc_cap_oper[0x4];
9515 u8 reserved_at_48[0x4];
9516 u8 pfc_cap_admin[0x4];
9517 u8 reserved_at_50[0x4];
9518 u8 num_of_tc_oper[0x4];
9519 u8 reserved_at_58[0x4];
9520 u8 num_of_tc_admin[0x4];
9521 u8 remote_willing[0x1];
9522 u8 reserved_at_61[3];
9523 u8 remote_pfc_cap[4];
9524 u8 reserved_at_68[0x14];
9525 u8 remote_num_of_tc[0x4];
9526 u8 reserved_at_80[0x18];
9527 u8 error[0x8];
9528 u8 reserved_at_a0[0x160];
9529};
Aviv Heller84df61e2016-05-10 13:47:50 +03009530
9531struct mlx5_ifc_lagc_bits {
9532 u8 reserved_at_0[0x1d];
9533 u8 lag_state[0x3];
9534
9535 u8 reserved_at_20[0x14];
9536 u8 tx_remap_affinity_2[0x4];
9537 u8 reserved_at_38[0x4];
9538 u8 tx_remap_affinity_1[0x4];
9539};
9540
9541struct mlx5_ifc_create_lag_out_bits {
9542 u8 status[0x8];
9543 u8 reserved_at_8[0x18];
9544
9545 u8 syndrome[0x20];
9546
9547 u8 reserved_at_40[0x40];
9548};
9549
9550struct mlx5_ifc_create_lag_in_bits {
9551 u8 opcode[0x10];
9552 u8 reserved_at_10[0x10];
9553
9554 u8 reserved_at_20[0x10];
9555 u8 op_mod[0x10];
9556
9557 struct mlx5_ifc_lagc_bits ctx;
9558};
9559
9560struct mlx5_ifc_modify_lag_out_bits {
9561 u8 status[0x8];
9562 u8 reserved_at_8[0x18];
9563
9564 u8 syndrome[0x20];
9565
9566 u8 reserved_at_40[0x40];
9567};
9568
9569struct mlx5_ifc_modify_lag_in_bits {
9570 u8 opcode[0x10];
9571 u8 reserved_at_10[0x10];
9572
9573 u8 reserved_at_20[0x10];
9574 u8 op_mod[0x10];
9575
9576 u8 reserved_at_40[0x20];
9577 u8 field_select[0x20];
9578
9579 struct mlx5_ifc_lagc_bits ctx;
9580};
9581
9582struct mlx5_ifc_query_lag_out_bits {
9583 u8 status[0x8];
9584 u8 reserved_at_8[0x18];
9585
9586 u8 syndrome[0x20];
9587
9588 u8 reserved_at_40[0x40];
9589
9590 struct mlx5_ifc_lagc_bits ctx;
9591};
9592
9593struct mlx5_ifc_query_lag_in_bits {
9594 u8 opcode[0x10];
9595 u8 reserved_at_10[0x10];
9596
9597 u8 reserved_at_20[0x10];
9598 u8 op_mod[0x10];
9599
9600 u8 reserved_at_40[0x40];
9601};
9602
9603struct mlx5_ifc_destroy_lag_out_bits {
9604 u8 status[0x8];
9605 u8 reserved_at_8[0x18];
9606
9607 u8 syndrome[0x20];
9608
9609 u8 reserved_at_40[0x40];
9610};
9611
9612struct mlx5_ifc_destroy_lag_in_bits {
9613 u8 opcode[0x10];
9614 u8 reserved_at_10[0x10];
9615
9616 u8 reserved_at_20[0x10];
9617 u8 op_mod[0x10];
9618
9619 u8 reserved_at_40[0x40];
9620};
9621
9622struct mlx5_ifc_create_vport_lag_out_bits {
9623 u8 status[0x8];
9624 u8 reserved_at_8[0x18];
9625
9626 u8 syndrome[0x20];
9627
9628 u8 reserved_at_40[0x40];
9629};
9630
9631struct mlx5_ifc_create_vport_lag_in_bits {
9632 u8 opcode[0x10];
9633 u8 reserved_at_10[0x10];
9634
9635 u8 reserved_at_20[0x10];
9636 u8 op_mod[0x10];
9637
9638 u8 reserved_at_40[0x40];
9639};
9640
9641struct mlx5_ifc_destroy_vport_lag_out_bits {
9642 u8 status[0x8];
9643 u8 reserved_at_8[0x18];
9644
9645 u8 syndrome[0x20];
9646
9647 u8 reserved_at_40[0x40];
9648};
9649
9650struct mlx5_ifc_destroy_vport_lag_in_bits {
9651 u8 opcode[0x10];
9652 u8 reserved_at_10[0x10];
9653
9654 u8 reserved_at_20[0x10];
9655 u8 op_mod[0x10];
9656
9657 u8 reserved_at_40[0x40];
9658};
9659
Ariel Levkovich24da0012018-04-05 18:53:27 +03009660struct mlx5_ifc_alloc_memic_in_bits {
9661 u8 opcode[0x10];
9662 u8 reserved_at_10[0x10];
9663
9664 u8 reserved_at_20[0x10];
9665 u8 op_mod[0x10];
9666
9667 u8 reserved_at_30[0x20];
9668
9669 u8 reserved_at_40[0x18];
9670 u8 log_memic_addr_alignment[0x8];
9671
9672 u8 range_start_addr[0x40];
9673
9674 u8 range_size[0x20];
9675
9676 u8 memic_size[0x20];
9677};
9678
9679struct mlx5_ifc_alloc_memic_out_bits {
9680 u8 status[0x8];
9681 u8 reserved_at_8[0x18];
9682
9683 u8 syndrome[0x20];
9684
9685 u8 memic_start_addr[0x40];
9686};
9687
9688struct mlx5_ifc_dealloc_memic_in_bits {
9689 u8 opcode[0x10];
9690 u8 reserved_at_10[0x10];
9691
9692 u8 reserved_at_20[0x10];
9693 u8 op_mod[0x10];
9694
9695 u8 reserved_at_40[0x40];
9696
9697 u8 memic_start_addr[0x40];
9698
9699 u8 memic_size[0x20];
9700
9701 u8 reserved_at_e0[0x20];
9702};
9703
9704struct mlx5_ifc_dealloc_memic_out_bits {
9705 u8 status[0x8];
9706 u8 reserved_at_8[0x18];
9707
9708 u8 syndrome[0x20];
9709
9710 u8 reserved_at_40[0x40];
9711};
9712
Yishai Hadas38b7ca92018-03-08 14:36:27 +02009713struct mlx5_ifc_general_obj_in_cmd_hdr_bits {
9714 u8 opcode[0x10];
9715 u8 uid[0x10];
9716
Max Gurtovoy1dd73822019-07-01 21:14:01 +03009717 u8 vhca_tunnel_id[0x10];
Yishai Hadas38b7ca92018-03-08 14:36:27 +02009718 u8 obj_type[0x10];
9719
9720 u8 obj_id[0x20];
9721
9722 u8 reserved_at_60[0x20];
9723};
9724
9725struct mlx5_ifc_general_obj_out_cmd_hdr_bits {
9726 u8 status[0x8];
9727 u8 reserved_at_8[0x18];
9728
9729 u8 syndrome[0x20];
9730
9731 u8 obj_id[0x20];
9732
9733 u8 reserved_at_60[0x20];
9734};
9735
9736struct mlx5_ifc_umem_bits {
Yishai Hadas6e3722b2018-12-19 16:28:15 +02009737 u8 reserved_at_0[0x80];
Yishai Hadas38b7ca92018-03-08 14:36:27 +02009738
Yishai Hadas6e3722b2018-12-19 16:28:15 +02009739 u8 reserved_at_80[0x1b];
Yishai Hadas38b7ca92018-03-08 14:36:27 +02009740 u8 log_page_size[0x5];
9741
9742 u8 page_offset[0x20];
9743
9744 u8 num_of_mtt[0x40];
9745
9746 struct mlx5_ifc_mtt_bits mtt[0];
9747};
9748
9749struct mlx5_ifc_uctx_bits {
Yishai Hadas9d43faa2018-11-26 08:28:32 +02009750 u8 cap[0x20];
9751
Yishai Hadas6e3722b2018-12-19 16:28:15 +02009752 u8 reserved_at_20[0x160];
Yishai Hadas38b7ca92018-03-08 14:36:27 +02009753};
9754
Ariel Levkovich9fba2b92019-03-31 19:44:43 +03009755struct mlx5_ifc_sw_icm_bits {
9756 u8 modify_field_select[0x40];
9757
9758 u8 reserved_at_40[0x18];
9759 u8 log_sw_icm_size[0x8];
9760
9761 u8 reserved_at_60[0x20];
9762
9763 u8 sw_icm_start_addr[0x40];
9764
9765 u8 reserved_at_c0[0x140];
Saeed Mahameed91a40a42019-05-01 03:21:05 +00009766};
Yevgeny Kliteynikb169e642019-04-29 18:14:20 +00009767
9768struct mlx5_ifc_geneve_tlv_option_bits {
9769 u8 modify_field_select[0x40];
9770
9771 u8 reserved_at_40[0x18];
9772 u8 geneve_option_fte_index[0x8];
9773
9774 u8 option_class[0x10];
9775 u8 option_type[0x8];
9776 u8 reserved_at_78[0x3];
9777 u8 option_data_length[0x5];
9778
9779 u8 reserved_at_80[0x180];
Ariel Levkovich9fba2b92019-03-31 19:44:43 +03009780};
9781
Yishai Hadas38b7ca92018-03-08 14:36:27 +02009782struct mlx5_ifc_create_umem_in_bits {
Yishai Hadas6e3722b2018-12-19 16:28:15 +02009783 u8 opcode[0x10];
9784 u8 uid[0x10];
9785
9786 u8 reserved_at_20[0x10];
9787 u8 op_mod[0x10];
9788
9789 u8 reserved_at_40[0x40];
9790
9791 struct mlx5_ifc_umem_bits umem;
Yishai Hadas38b7ca92018-03-08 14:36:27 +02009792};
9793
9794struct mlx5_ifc_create_uctx_in_bits {
Yishai Hadas6e3722b2018-12-19 16:28:15 +02009795 u8 opcode[0x10];
9796 u8 reserved_at_10[0x10];
9797
9798 u8 reserved_at_20[0x10];
9799 u8 op_mod[0x10];
9800
9801 u8 reserved_at_40[0x40];
9802
9803 struct mlx5_ifc_uctx_bits uctx;
9804};
9805
9806struct mlx5_ifc_destroy_uctx_in_bits {
9807 u8 opcode[0x10];
9808 u8 reserved_at_10[0x10];
9809
9810 u8 reserved_at_20[0x10];
9811 u8 op_mod[0x10];
9812
9813 u8 reserved_at_40[0x10];
9814 u8 uid[0x10];
9815
9816 u8 reserved_at_60[0x20];
Yishai Hadas38b7ca92018-03-08 14:36:27 +02009817};
9818
Ariel Levkovich9fba2b92019-03-31 19:44:43 +03009819struct mlx5_ifc_create_sw_icm_in_bits {
9820 struct mlx5_ifc_general_obj_in_cmd_hdr_bits hdr;
9821 struct mlx5_ifc_sw_icm_bits sw_icm;
9822};
9823
Yevgeny Kliteynikb169e642019-04-29 18:14:20 +00009824struct mlx5_ifc_create_geneve_tlv_option_in_bits {
9825 struct mlx5_ifc_general_obj_in_cmd_hdr_bits hdr;
9826 struct mlx5_ifc_geneve_tlv_option_bits geneve_tlv_opt;
9827};
9828
Feras Daoudeff8ea82018-07-16 18:35:30 -07009829struct mlx5_ifc_mtrc_string_db_param_bits {
9830 u8 string_db_base_address[0x20];
9831
9832 u8 reserved_at_20[0x8];
9833 u8 string_db_size[0x18];
9834};
9835
9836struct mlx5_ifc_mtrc_cap_bits {
9837 u8 trace_owner[0x1];
9838 u8 trace_to_memory[0x1];
9839 u8 reserved_at_2[0x4];
9840 u8 trc_ver[0x2];
9841 u8 reserved_at_8[0x14];
9842 u8 num_string_db[0x4];
9843
9844 u8 first_string_trace[0x8];
9845 u8 num_string_trace[0x8];
9846 u8 reserved_at_30[0x28];
9847
9848 u8 log_max_trace_buffer_size[0x8];
9849
9850 u8 reserved_at_60[0x20];
9851
9852 struct mlx5_ifc_mtrc_string_db_param_bits string_db_param[8];
9853
9854 u8 reserved_at_280[0x180];
9855};
9856
9857struct mlx5_ifc_mtrc_conf_bits {
9858 u8 reserved_at_0[0x1c];
9859 u8 trace_mode[0x4];
9860 u8 reserved_at_20[0x18];
9861 u8 log_trace_buffer_size[0x8];
9862 u8 trace_mkey[0x20];
9863 u8 reserved_at_60[0x3a0];
9864};
9865
9866struct mlx5_ifc_mtrc_stdb_bits {
9867 u8 string_db_index[0x4];
9868 u8 reserved_at_4[0x4];
9869 u8 read_size[0x18];
9870 u8 start_offset[0x20];
9871 u8 string_db_data[0];
9872};
9873
9874struct mlx5_ifc_mtrc_ctrl_bits {
9875 u8 trace_status[0x2];
9876 u8 reserved_at_2[0x2];
9877 u8 arm_event[0x1];
9878 u8 reserved_at_5[0xb];
9879 u8 modify_field_select[0x10];
9880 u8 reserved_at_20[0x2b];
9881 u8 current_timestamp52_32[0x15];
9882 u8 current_timestamp31_0[0x20];
9883 u8 reserved_at_80[0x180];
9884};
9885
Bodong Wangc3a4e9f2019-02-12 22:55:37 -08009886struct mlx5_ifc_host_params_context_bits {
9887 u8 host_number[0x8];
Bodong Wang5ccf2772019-06-28 22:36:04 +00009888 u8 reserved_at_8[0x7];
9889 u8 host_pf_disabled[0x1];
Bodong Wangc3a4e9f2019-02-12 22:55:37 -08009890 u8 host_num_of_vfs[0x10];
9891
Bodong Wang86eec502019-06-10 23:38:19 +00009892 u8 host_total_vfs[0x10];
Bodong Wangc3a4e9f2019-02-12 22:55:37 -08009893 u8 host_pci_bus[0x10];
9894
9895 u8 reserved_at_40[0x10];
9896 u8 host_pci_device[0x10];
9897
9898 u8 reserved_at_60[0x10];
9899 u8 host_pci_function[0x10];
9900
9901 u8 reserved_at_80[0x180];
9902};
9903
Vu Phamcd56f922019-05-29 22:50:34 +00009904struct mlx5_ifc_query_esw_functions_in_bits {
Bodong Wangc3a4e9f2019-02-12 22:55:37 -08009905 u8 opcode[0x10];
9906 u8 reserved_at_10[0x10];
9907
9908 u8 reserved_at_20[0x10];
9909 u8 op_mod[0x10];
9910
9911 u8 reserved_at_40[0x40];
9912};
9913
Vu Phamcd56f922019-05-29 22:50:34 +00009914struct mlx5_ifc_query_esw_functions_out_bits {
Bodong Wangc3a4e9f2019-02-12 22:55:37 -08009915 u8 status[0x8];
9916 u8 reserved_at_8[0x18];
9917
9918 u8 syndrome[0x20];
9919
9920 u8 reserved_at_40[0x40];
9921
9922 struct mlx5_ifc_host_params_context_bits host_params_context;
9923
9924 u8 reserved_at_280[0x180];
Parav Pandit1759d322019-06-28 22:35:48 +00009925 u8 host_sf_enable[0][0x40];
9926};
9927
9928struct mlx5_ifc_sf_partition_bits {
9929 u8 reserved_at_0[0x10];
9930 u8 log_num_sf[0x8];
9931 u8 log_sf_bar_size[0x8];
9932};
9933
9934struct mlx5_ifc_query_sf_partitions_out_bits {
9935 u8 status[0x8];
9936 u8 reserved_at_8[0x18];
9937
9938 u8 syndrome[0x20];
9939
9940 u8 reserved_at_40[0x18];
9941 u8 num_sf_partitions[0x8];
9942
9943 u8 reserved_at_60[0x20];
9944
9945 struct mlx5_ifc_sf_partition_bits sf_partition[0];
9946};
9947
9948struct mlx5_ifc_query_sf_partitions_in_bits {
9949 u8 opcode[0x10];
9950 u8 reserved_at_10[0x10];
9951
9952 u8 reserved_at_20[0x10];
9953 u8 op_mod[0x10];
9954
9955 u8 reserved_at_40[0x40];
9956};
9957
9958struct mlx5_ifc_dealloc_sf_out_bits {
9959 u8 status[0x8];
9960 u8 reserved_at_8[0x18];
9961
9962 u8 syndrome[0x20];
9963
9964 u8 reserved_at_40[0x40];
9965};
9966
9967struct mlx5_ifc_dealloc_sf_in_bits {
9968 u8 opcode[0x10];
9969 u8 reserved_at_10[0x10];
9970
9971 u8 reserved_at_20[0x10];
9972 u8 op_mod[0x10];
9973
9974 u8 reserved_at_40[0x10];
9975 u8 function_id[0x10];
9976
9977 u8 reserved_at_60[0x20];
9978};
9979
9980struct mlx5_ifc_alloc_sf_out_bits {
9981 u8 status[0x8];
9982 u8 reserved_at_8[0x18];
9983
9984 u8 syndrome[0x20];
9985
9986 u8 reserved_at_40[0x40];
9987};
9988
9989struct mlx5_ifc_alloc_sf_in_bits {
9990 u8 opcode[0x10];
9991 u8 reserved_at_10[0x10];
9992
9993 u8 reserved_at_20[0x10];
9994 u8 op_mod[0x10];
9995
9996 u8 reserved_at_40[0x10];
9997 u8 function_id[0x10];
9998
9999 u8 reserved_at_60[0x20];
Bodong Wangc3a4e9f2019-02-12 22:55:37 -080010000};
10001
Yishai Hadase4075c42019-06-30 19:23:28 +030010002struct mlx5_ifc_affiliated_event_header_bits {
10003 u8 reserved_at_0[0x10];
10004 u8 obj_type[0x10];
10005
10006 u8 obj_id[0x20];
10007};
10008
Eran Ben Elishaa12ff352019-04-03 13:05:50 +030010009enum {
10010 MLX5_HCA_CAP_GENERAL_OBJECT_TYPES_ENCRYPTION_KEY = BIT(0xc),
10011};
10012
10013enum {
10014 MLX5_GENERAL_OBJECT_TYPES_ENCRYPTION_KEY = 0xc,
10015};
10016
10017struct mlx5_ifc_encryption_key_obj_bits {
10018 u8 modify_field_select[0x40];
10019
10020 u8 reserved_at_40[0x14];
10021 u8 key_size[0x4];
10022 u8 reserved_at_58[0x4];
10023 u8 key_type[0x4];
10024
10025 u8 reserved_at_60[0x8];
10026 u8 pd[0x18];
10027
10028 u8 reserved_at_80[0x180];
10029 u8 key[8][0x20];
10030
10031 u8 reserved_at_300[0x500];
10032};
10033
10034struct mlx5_ifc_create_encryption_key_in_bits {
10035 struct mlx5_ifc_general_obj_in_cmd_hdr_bits general_obj_in_cmd_hdr;
10036 struct mlx5_ifc_encryption_key_obj_bits encryption_key_object;
10037};
10038
10039enum {
10040 MLX5_GENERAL_OBJECT_TYPE_ENCRYPTION_KEY_KEY_SIZE_128 = 0x0,
10041 MLX5_GENERAL_OBJECT_TYPE_ENCRYPTION_KEY_KEY_SIZE_256 = 0x1,
10042};
10043
10044enum {
10045 MLX5_GENERAL_OBJECT_TYPE_ENCRYPTION_KEY_TYPE_DEK = 0x1,
10046};
10047
10048struct mlx5_ifc_tls_static_params_bits {
10049 u8 const_2[0x2];
10050 u8 tls_version[0x4];
10051 u8 const_1[0x2];
10052 u8 reserved_at_8[0x14];
10053 u8 encryption_standard[0x4];
10054
10055 u8 reserved_at_20[0x20];
10056
10057 u8 initial_record_number[0x40];
10058
10059 u8 resync_tcp_sn[0x20];
10060
10061 u8 gcm_iv[0x20];
10062
10063 u8 implicit_iv[0x40];
10064
10065 u8 reserved_at_100[0x8];
10066 u8 dek_index[0x18];
10067
10068 u8 reserved_at_120[0xe0];
10069};
10070
10071struct mlx5_ifc_tls_progress_params_bits {
10072 u8 valid[0x1];
10073 u8 reserved_at_1[0x7];
10074 u8 pd[0x18];
10075
10076 u8 next_record_tcp_sn[0x20];
10077
10078 u8 hw_resync_tcp_sn[0x20];
10079
10080 u8 record_tracker_state[0x2];
10081 u8 auth_state[0x2];
10082 u8 reserved_at_64[0x4];
10083 u8 hw_offset_record_number[0x18];
10084};
10085
Eli Cohend29b7962014-10-02 12:19:43 +030010086#endif /* MLX5_IFC_H */