blob: 5decffe565fb5bd0f6823eba52d4a2fc08488eb7 [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 {
Eli Cohend29b7962014-10-02 12:19:43 +030084 MLX5_CMD_OP_QUERY_HCA_CAP = 0x100,
85 MLX5_CMD_OP_QUERY_ADAPTER = 0x101,
86 MLX5_CMD_OP_INIT_HCA = 0x102,
87 MLX5_CMD_OP_TEARDOWN_HCA = 0x103,
88 MLX5_CMD_OP_ENABLE_HCA = 0x104,
89 MLX5_CMD_OP_DISABLE_HCA = 0x105,
90 MLX5_CMD_OP_QUERY_PAGES = 0x107,
91 MLX5_CMD_OP_MANAGE_PAGES = 0x108,
92 MLX5_CMD_OP_SET_HCA_CAP = 0x109,
Saeed Mahameede2816822015-05-28 22:28:40 +030093 MLX5_CMD_OP_QUERY_ISSI = 0x10a,
94 MLX5_CMD_OP_SET_ISSI = 0x10b,
Saeed Mahameed0dbc6fe2016-11-17 13:45:59 +020095 MLX5_CMD_OP_SET_DRIVER_VERSION = 0x10d,
Eli Cohend29b7962014-10-02 12:19:43 +030096 MLX5_CMD_OP_CREATE_MKEY = 0x200,
97 MLX5_CMD_OP_QUERY_MKEY = 0x201,
98 MLX5_CMD_OP_DESTROY_MKEY = 0x202,
99 MLX5_CMD_OP_QUERY_SPECIAL_CONTEXTS = 0x203,
100 MLX5_CMD_OP_PAGE_FAULT_RESUME = 0x204,
Ariel Levkovich24da0012018-04-05 18:53:27 +0300101 MLX5_CMD_OP_ALLOC_MEMIC = 0x205,
102 MLX5_CMD_OP_DEALLOC_MEMIC = 0x206,
Eli Cohend29b7962014-10-02 12:19:43 +0300103 MLX5_CMD_OP_CREATE_EQ = 0x301,
104 MLX5_CMD_OP_DESTROY_EQ = 0x302,
105 MLX5_CMD_OP_QUERY_EQ = 0x303,
106 MLX5_CMD_OP_GEN_EQE = 0x304,
107 MLX5_CMD_OP_CREATE_CQ = 0x400,
108 MLX5_CMD_OP_DESTROY_CQ = 0x401,
109 MLX5_CMD_OP_QUERY_CQ = 0x402,
110 MLX5_CMD_OP_MODIFY_CQ = 0x403,
111 MLX5_CMD_OP_CREATE_QP = 0x500,
112 MLX5_CMD_OP_DESTROY_QP = 0x501,
113 MLX5_CMD_OP_RST2INIT_QP = 0x502,
114 MLX5_CMD_OP_INIT2RTR_QP = 0x503,
115 MLX5_CMD_OP_RTR2RTS_QP = 0x504,
116 MLX5_CMD_OP_RTS2RTS_QP = 0x505,
117 MLX5_CMD_OP_SQERR2RTS_QP = 0x506,
118 MLX5_CMD_OP_2ERR_QP = 0x507,
119 MLX5_CMD_OP_2RST_QP = 0x50a,
120 MLX5_CMD_OP_QUERY_QP = 0x50b,
Saeed Mahameede2816822015-05-28 22:28:40 +0300121 MLX5_CMD_OP_SQD_RTS_QP = 0x50c,
Eli Cohend29b7962014-10-02 12:19:43 +0300122 MLX5_CMD_OP_INIT2INIT_QP = 0x50e,
123 MLX5_CMD_OP_CREATE_PSV = 0x600,
124 MLX5_CMD_OP_DESTROY_PSV = 0x601,
125 MLX5_CMD_OP_CREATE_SRQ = 0x700,
126 MLX5_CMD_OP_DESTROY_SRQ = 0x701,
127 MLX5_CMD_OP_QUERY_SRQ = 0x702,
128 MLX5_CMD_OP_ARM_RQ = 0x703,
Saeed Mahameede2816822015-05-28 22:28:40 +0300129 MLX5_CMD_OP_CREATE_XRC_SRQ = 0x705,
130 MLX5_CMD_OP_DESTROY_XRC_SRQ = 0x706,
131 MLX5_CMD_OP_QUERY_XRC_SRQ = 0x707,
132 MLX5_CMD_OP_ARM_XRC_SRQ = 0x708,
Eli Cohend29b7962014-10-02 12:19:43 +0300133 MLX5_CMD_OP_CREATE_DCT = 0x710,
134 MLX5_CMD_OP_DESTROY_DCT = 0x711,
135 MLX5_CMD_OP_DRAIN_DCT = 0x712,
136 MLX5_CMD_OP_QUERY_DCT = 0x713,
137 MLX5_CMD_OP_ARM_DCT_FOR_KEY_VIOLATION = 0x714,
Saeed Mahameed74862162016-06-09 15:11:34 +0300138 MLX5_CMD_OP_CREATE_XRQ = 0x717,
139 MLX5_CMD_OP_DESTROY_XRQ = 0x718,
140 MLX5_CMD_OP_QUERY_XRQ = 0x719,
141 MLX5_CMD_OP_ARM_XRQ = 0x71a,
Yishai Hadas719598c2018-11-26 08:28:37 +0200142 MLX5_CMD_OP_QUERY_XRQ_DC_PARAMS_ENTRY = 0x725,
143 MLX5_CMD_OP_SET_XRQ_DC_PARAMS_ENTRY = 0x726,
144 MLX5_CMD_OP_QUERY_XRQ_ERROR_PARAMS = 0x727,
Bodong Wangc3a4e9f2019-02-12 22:55:37 -0800145 MLX5_CMD_OP_QUERY_HOST_PARAMS = 0x740,
Eli Cohend29b7962014-10-02 12:19:43 +0300146 MLX5_CMD_OP_QUERY_VPORT_STATE = 0x750,
147 MLX5_CMD_OP_MODIFY_VPORT_STATE = 0x751,
148 MLX5_CMD_OP_QUERY_ESW_VPORT_CONTEXT = 0x752,
149 MLX5_CMD_OP_MODIFY_ESW_VPORT_CONTEXT = 0x753,
150 MLX5_CMD_OP_QUERY_NIC_VPORT_CONTEXT = 0x754,
151 MLX5_CMD_OP_MODIFY_NIC_VPORT_CONTEXT = 0x755,
Saeed Mahameede2816822015-05-28 22:28:40 +0300152 MLX5_CMD_OP_QUERY_ROCE_ADDRESS = 0x760,
Eli Cohend29b7962014-10-02 12:19:43 +0300153 MLX5_CMD_OP_SET_ROCE_ADDRESS = 0x761,
Saeed Mahameede2816822015-05-28 22:28:40 +0300154 MLX5_CMD_OP_QUERY_HCA_VPORT_CONTEXT = 0x762,
155 MLX5_CMD_OP_MODIFY_HCA_VPORT_CONTEXT = 0x763,
156 MLX5_CMD_OP_QUERY_HCA_VPORT_GID = 0x764,
157 MLX5_CMD_OP_QUERY_HCA_VPORT_PKEY = 0x765,
Moshe Shemesh61c5b5c2018-01-07 16:45:27 +0200158 MLX5_CMD_OP_QUERY_VNIC_ENV = 0x76f,
Eli Cohend29b7962014-10-02 12:19:43 +0300159 MLX5_CMD_OP_QUERY_VPORT_COUNTER = 0x770,
160 MLX5_CMD_OP_ALLOC_Q_COUNTER = 0x771,
161 MLX5_CMD_OP_DEALLOC_Q_COUNTER = 0x772,
162 MLX5_CMD_OP_QUERY_Q_COUNTER = 0x773,
Eyal Davidovichfd4572b2018-12-10 13:15:12 -0800163 MLX5_CMD_OP_SET_MONITOR_COUNTER = 0x774,
164 MLX5_CMD_OP_ARM_MONITOR_COUNTER = 0x775,
Eran Ben Elisha37e92a92017-11-13 10:11:27 +0200165 MLX5_CMD_OP_SET_PP_RATE_LIMIT = 0x780,
Saeed Mahameed74862162016-06-09 15:11:34 +0300166 MLX5_CMD_OP_QUERY_RATE_LIMIT = 0x781,
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300167 MLX5_CMD_OP_CREATE_SCHEDULING_ELEMENT = 0x782,
168 MLX5_CMD_OP_DESTROY_SCHEDULING_ELEMENT = 0x783,
169 MLX5_CMD_OP_QUERY_SCHEDULING_ELEMENT = 0x784,
170 MLX5_CMD_OP_MODIFY_SCHEDULING_ELEMENT = 0x785,
171 MLX5_CMD_OP_CREATE_QOS_PARA_VPORT = 0x786,
172 MLX5_CMD_OP_DESTROY_QOS_PARA_VPORT = 0x787,
Eli Cohend29b7962014-10-02 12:19:43 +0300173 MLX5_CMD_OP_ALLOC_PD = 0x800,
174 MLX5_CMD_OP_DEALLOC_PD = 0x801,
175 MLX5_CMD_OP_ALLOC_UAR = 0x802,
176 MLX5_CMD_OP_DEALLOC_UAR = 0x803,
177 MLX5_CMD_OP_CONFIG_INT_MODERATION = 0x804,
178 MLX5_CMD_OP_ACCESS_REG = 0x805,
179 MLX5_CMD_OP_ATTACH_TO_MCG = 0x806,
Saeed Mahameed20bb5662016-07-17 02:01:45 +0300180 MLX5_CMD_OP_DETACH_FROM_MCG = 0x807,
Eli Cohend29b7962014-10-02 12:19:43 +0300181 MLX5_CMD_OP_GET_DROPPED_PACKET_LOG = 0x80a,
182 MLX5_CMD_OP_MAD_IFC = 0x50d,
183 MLX5_CMD_OP_QUERY_MAD_DEMUX = 0x80b,
184 MLX5_CMD_OP_SET_MAD_DEMUX = 0x80c,
185 MLX5_CMD_OP_NOP = 0x80d,
186 MLX5_CMD_OP_ALLOC_XRCD = 0x80e,
187 MLX5_CMD_OP_DEALLOC_XRCD = 0x80f,
Saeed Mahameede2816822015-05-28 22:28:40 +0300188 MLX5_CMD_OP_ALLOC_TRANSPORT_DOMAIN = 0x816,
189 MLX5_CMD_OP_DEALLOC_TRANSPORT_DOMAIN = 0x817,
190 MLX5_CMD_OP_QUERY_CONG_STATUS = 0x822,
191 MLX5_CMD_OP_MODIFY_CONG_STATUS = 0x823,
192 MLX5_CMD_OP_QUERY_CONG_PARAMS = 0x824,
193 MLX5_CMD_OP_MODIFY_CONG_PARAMS = 0x825,
194 MLX5_CMD_OP_QUERY_CONG_STATISTICS = 0x826,
195 MLX5_CMD_OP_ADD_VXLAN_UDP_DPORT = 0x827,
196 MLX5_CMD_OP_DELETE_VXLAN_UDP_DPORT = 0x828,
197 MLX5_CMD_OP_SET_L2_TABLE_ENTRY = 0x829,
198 MLX5_CMD_OP_QUERY_L2_TABLE_ENTRY = 0x82a,
199 MLX5_CMD_OP_DELETE_L2_TABLE_ENTRY = 0x82b,
Tariq Toukan928cfe82016-02-22 18:17:29 +0200200 MLX5_CMD_OP_SET_WOL_ROL = 0x830,
201 MLX5_CMD_OP_QUERY_WOL_ROL = 0x831,
Aviv Heller84df61e2016-05-10 13:47:50 +0300202 MLX5_CMD_OP_CREATE_LAG = 0x840,
203 MLX5_CMD_OP_MODIFY_LAG = 0x841,
204 MLX5_CMD_OP_QUERY_LAG = 0x842,
205 MLX5_CMD_OP_DESTROY_LAG = 0x843,
206 MLX5_CMD_OP_CREATE_VPORT_LAG = 0x844,
207 MLX5_CMD_OP_DESTROY_VPORT_LAG = 0x845,
Eli Cohend29b7962014-10-02 12:19:43 +0300208 MLX5_CMD_OP_CREATE_TIR = 0x900,
209 MLX5_CMD_OP_MODIFY_TIR = 0x901,
210 MLX5_CMD_OP_DESTROY_TIR = 0x902,
211 MLX5_CMD_OP_QUERY_TIR = 0x903,
Eli Cohend29b7962014-10-02 12:19:43 +0300212 MLX5_CMD_OP_CREATE_SQ = 0x904,
213 MLX5_CMD_OP_MODIFY_SQ = 0x905,
214 MLX5_CMD_OP_DESTROY_SQ = 0x906,
215 MLX5_CMD_OP_QUERY_SQ = 0x907,
216 MLX5_CMD_OP_CREATE_RQ = 0x908,
217 MLX5_CMD_OP_MODIFY_RQ = 0x909,
Maor Gottliebc1e0bfc2017-05-30 10:29:11 +0300218 MLX5_CMD_OP_SET_DELAY_DROP_PARAMS = 0x910,
Eli Cohend29b7962014-10-02 12:19:43 +0300219 MLX5_CMD_OP_DESTROY_RQ = 0x90a,
220 MLX5_CMD_OP_QUERY_RQ = 0x90b,
221 MLX5_CMD_OP_CREATE_RMP = 0x90c,
222 MLX5_CMD_OP_MODIFY_RMP = 0x90d,
223 MLX5_CMD_OP_DESTROY_RMP = 0x90e,
224 MLX5_CMD_OP_QUERY_RMP = 0x90f,
Saeed Mahameede2816822015-05-28 22:28:40 +0300225 MLX5_CMD_OP_CREATE_TIS = 0x912,
226 MLX5_CMD_OP_MODIFY_TIS = 0x913,
227 MLX5_CMD_OP_DESTROY_TIS = 0x914,
228 MLX5_CMD_OP_QUERY_TIS = 0x915,
229 MLX5_CMD_OP_CREATE_RQT = 0x916,
230 MLX5_CMD_OP_MODIFY_RQT = 0x917,
231 MLX5_CMD_OP_DESTROY_RQT = 0x918,
232 MLX5_CMD_OP_QUERY_RQT = 0x919,
Maor Gottlieb2cc43b42016-01-11 10:25:59 +0200233 MLX5_CMD_OP_SET_FLOW_TABLE_ROOT = 0x92f,
Saeed Mahameede2816822015-05-28 22:28:40 +0300234 MLX5_CMD_OP_CREATE_FLOW_TABLE = 0x930,
235 MLX5_CMD_OP_DESTROY_FLOW_TABLE = 0x931,
236 MLX5_CMD_OP_QUERY_FLOW_TABLE = 0x932,
237 MLX5_CMD_OP_CREATE_FLOW_GROUP = 0x933,
238 MLX5_CMD_OP_DESTROY_FLOW_GROUP = 0x934,
239 MLX5_CMD_OP_QUERY_FLOW_GROUP = 0x935,
240 MLX5_CMD_OP_SET_FLOW_TABLE_ENTRY = 0x936,
241 MLX5_CMD_OP_QUERY_FLOW_TABLE_ENTRY = 0x937,
Maor Gottlieb34a40e62016-01-11 10:26:00 +0200242 MLX5_CMD_OP_DELETE_FLOW_TABLE_ENTRY = 0x938,
Amir Vadai9dc0b282016-05-13 12:55:39 +0000243 MLX5_CMD_OP_ALLOC_FLOW_COUNTER = 0x939,
244 MLX5_CMD_OP_DEALLOC_FLOW_COUNTER = 0x93a,
245 MLX5_CMD_OP_QUERY_FLOW_COUNTER = 0x93b,
Shahar Klein86d56a12016-06-10 00:07:30 +0300246 MLX5_CMD_OP_MODIFY_FLOW_TABLE = 0x93c,
Mark Bloch60786f02018-08-28 14:18:46 +0300247 MLX5_CMD_OP_ALLOC_PACKET_REFORMAT_CONTEXT = 0x93d,
248 MLX5_CMD_OP_DEALLOC_PACKET_REFORMAT_CONTEXT = 0x93e,
Yishai Hadas719598c2018-11-26 08:28:37 +0200249 MLX5_CMD_OP_QUERY_PACKET_REFORMAT_CONTEXT = 0x93f,
Or Gerlitz2a69cb92017-01-19 19:31:25 +0200250 MLX5_CMD_OP_ALLOC_MODIFY_HEADER_CONTEXT = 0x940,
251 MLX5_CMD_OP_DEALLOC_MODIFY_HEADER_CONTEXT = 0x941,
Yishai Hadase662e142018-06-17 13:00:02 +0300252 MLX5_CMD_OP_QUERY_MODIFY_HEADER_CONTEXT = 0x942,
Ilan Tayari60621182017-03-27 14:52:09 +0300253 MLX5_CMD_OP_FPGA_CREATE_QP = 0x960,
254 MLX5_CMD_OP_FPGA_MODIFY_QP = 0x961,
255 MLX5_CMD_OP_FPGA_QUERY_QP = 0x962,
256 MLX5_CMD_OP_FPGA_DESTROY_QP = 0x963,
257 MLX5_CMD_OP_FPGA_QUERY_QP_COUNTERS = 0x964,
Yishai Hadas38b7ca92018-03-08 14:36:27 +0200258 MLX5_CMD_OP_CREATE_GENERAL_OBJECT = 0xa00,
Yishai Hadase662e142018-06-17 13:00:02 +0300259 MLX5_CMD_OP_MODIFY_GENERAL_OBJECT = 0xa01,
260 MLX5_CMD_OP_QUERY_GENERAL_OBJECT = 0xa02,
Yishai Hadas38b7ca92018-03-08 14:36:27 +0200261 MLX5_CMD_OP_DESTROY_GENERAL_OBJECT = 0xa03,
Yishai Hadas6e3722b2018-12-19 16:28:15 +0200262 MLX5_CMD_OP_CREATE_UCTX = 0xa04,
263 MLX5_CMD_OP_DESTROY_UCTX = 0xa06,
264 MLX5_CMD_OP_CREATE_UMEM = 0xa08,
265 MLX5_CMD_OP_DESTROY_UMEM = 0xa0a,
Shahar Klein86d56a12016-06-10 00:07:30 +0300266 MLX5_CMD_OP_MAX
Saeed Mahameede2816822015-05-28 22:28:40 +0300267};
268
Yishai Hadas719598c2018-11-26 08:28:37 +0200269/* Valid range for general commands that don't work over an object */
270enum {
271 MLX5_CMD_OP_GENERAL_START = 0xb00,
272 MLX5_CMD_OP_GENERAL_END = 0xd00,
273};
274
Saeed Mahameede2816822015-05-28 22:28:40 +0300275struct mlx5_ifc_flow_table_fields_supported_bits {
276 u8 outer_dmac[0x1];
277 u8 outer_smac[0x1];
278 u8 outer_ether_type[0x1];
Ariel Levkovich19cc7522017-04-03 13:11:03 +0300279 u8 outer_ip_version[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300280 u8 outer_first_prio[0x1];
281 u8 outer_first_cfi[0x1];
282 u8 outer_first_vid[0x1];
Or Gerlitza8ade552017-06-07 17:49:56 +0300283 u8 outer_ipv4_ttl[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300284 u8 outer_second_prio[0x1];
285 u8 outer_second_cfi[0x1];
286 u8 outer_second_vid[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200287 u8 reserved_at_b[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300288 u8 outer_sip[0x1];
289 u8 outer_dip[0x1];
290 u8 outer_frag[0x1];
291 u8 outer_ip_protocol[0x1];
292 u8 outer_ip_ecn[0x1];
293 u8 outer_ip_dscp[0x1];
294 u8 outer_udp_sport[0x1];
295 u8 outer_udp_dport[0x1];
296 u8 outer_tcp_sport[0x1];
297 u8 outer_tcp_dport[0x1];
298 u8 outer_tcp_flags[0x1];
299 u8 outer_gre_protocol[0x1];
300 u8 outer_gre_key[0x1];
301 u8 outer_vxlan_vni[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200302 u8 reserved_at_1a[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +0300303 u8 source_eswitch_port[0x1];
304
305 u8 inner_dmac[0x1];
306 u8 inner_smac[0x1];
307 u8 inner_ether_type[0x1];
Ariel Levkovich19cc7522017-04-03 13:11:03 +0300308 u8 inner_ip_version[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300309 u8 inner_first_prio[0x1];
310 u8 inner_first_cfi[0x1];
311 u8 inner_first_vid[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200312 u8 reserved_at_27[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300313 u8 inner_second_prio[0x1];
314 u8 inner_second_cfi[0x1];
315 u8 inner_second_vid[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200316 u8 reserved_at_2b[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300317 u8 inner_sip[0x1];
318 u8 inner_dip[0x1];
319 u8 inner_frag[0x1];
320 u8 inner_ip_protocol[0x1];
321 u8 inner_ip_ecn[0x1];
322 u8 inner_ip_dscp[0x1];
323 u8 inner_udp_sport[0x1];
324 u8 inner_udp_dport[0x1];
325 u8 inner_tcp_sport[0x1];
326 u8 inner_tcp_dport[0x1];
327 u8 inner_tcp_flags[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200328 u8 reserved_at_37[0x9];
Ariel Levkovich71c6e862018-05-13 14:33:34 +0300329
330 u8 reserved_at_40[0x5];
331 u8 outer_first_mpls_over_udp[0x4];
332 u8 outer_first_mpls_over_gre[0x4];
333 u8 inner_first_mpls[0x4];
334 u8 outer_first_mpls[0x4];
335 u8 reserved_at_55[0x2];
Boris Pismenny3346c482017-08-20 15:13:08 +0300336 u8 outer_esp_spi[0x1];
Ariel Levkovich71c6e862018-05-13 14:33:34 +0300337 u8 reserved_at_58[0x2];
Yishai Hadasa550ddf2017-08-17 15:52:33 +0300338 u8 bth_dst_qp[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300339
Yishai Hadasa550ddf2017-08-17 15:52:33 +0300340 u8 reserved_at_5b[0x25];
Saeed Mahameede2816822015-05-28 22:28:40 +0300341};
342
343struct mlx5_ifc_flow_table_prop_layout_bits {
344 u8 ft_support[0x1];
Amir Vadai9dc0b282016-05-13 12:55:39 +0000345 u8 reserved_at_1[0x1];
346 u8 flow_counter[0x1];
Maor Gottlieb26a81452015-12-10 17:12:39 +0200347 u8 flow_modify_en[0x1];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +0200348 u8 modify_root[0x1];
Maor Gottlieb34a40e62016-01-11 10:26:00 +0200349 u8 identified_miss_table_mode[0x1];
350 u8 flow_table_modify[0x1];
Mark Bloch60786f02018-08-28 14:18:46 +0300351 u8 reformat[0x1];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +0300352 u8 decap[0x1];
Or Gerlitz0c068972018-01-28 20:14:20 +0200353 u8 reserved_at_9[0x1];
354 u8 pop_vlan[0x1];
355 u8 push_vlan[0x1];
Jianbo Liu8da6fe22018-07-16 18:35:32 -0700356 u8 reserved_at_c[0x1];
357 u8 pop_vlan_2[0x1];
358 u8 push_vlan_2[0x1];
Mark Blochbea4e1f2018-08-28 14:18:47 +0300359 u8 reformat_and_vlan_action[0x1];
360 u8 reserved_at_10[0x2];
361 u8 reformat_l3_tunnel_to_l2[0x1];
362 u8 reformat_l2_to_l3_tunnel[0x1];
363 u8 reformat_and_modify_action[0x1];
Gal Pressmanc74d90c2018-11-07 20:31:37 +0200364 u8 reserved_at_15[0xb];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200365 u8 reserved_at_20[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +0300366 u8 log_max_ft_size[0x6];
Or Gerlitz2a69cb92017-01-19 19:31:25 +0200367 u8 log_max_modify_header_context[0x8];
368 u8 max_modify_header_actions[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300369 u8 max_ft_level[0x8];
370
Matan Barakb4ff3a32016-02-09 14:57:42 +0200371 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +0300372
Matan Barakb4ff3a32016-02-09 14:57:42 +0200373 u8 reserved_at_60[0x18];
Maor Gottlieb26a81452015-12-10 17:12:39 +0200374 u8 log_max_ft_num[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300375
Matan Barakb4ff3a32016-02-09 14:57:42 +0200376 u8 reserved_at_80[0x18];
Maor Gottlieb26a81452015-12-10 17:12:39 +0200377 u8 log_max_destination[0x8];
378
Raed Salem16f1c5b2017-07-30 11:02:51 +0300379 u8 log_max_flow_counter[0x8];
380 u8 reserved_at_a8[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300381 u8 log_max_flow[0x8];
382
Matan Barakb4ff3a32016-02-09 14:57:42 +0200383 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +0300384
385 struct mlx5_ifc_flow_table_fields_supported_bits ft_field_support;
386
387 struct mlx5_ifc_flow_table_fields_supported_bits ft_field_bitmask_support;
388};
389
390struct mlx5_ifc_odp_per_transport_service_cap_bits {
391 u8 send[0x1];
392 u8 receive[0x1];
393 u8 write[0x1];
394 u8 read[0x1];
Artemy Kovalyov17d2f882017-01-02 11:37:47 +0200395 u8 atomic[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300396 u8 srq_receive[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200397 u8 reserved_at_6[0x1a];
Saeed Mahameede2816822015-05-28 22:28:40 +0300398};
399
400struct mlx5_ifc_fte_match_set_lyr_2_4_bits {
401 u8 smac_47_16[0x20];
402
403 u8 smac_15_0[0x10];
404 u8 ethertype[0x10];
405
406 u8 dmac_47_16[0x20];
407
408 u8 dmac_15_0[0x10];
409 u8 first_prio[0x3];
410 u8 first_cfi[0x1];
411 u8 first_vid[0xc];
412
413 u8 ip_protocol[0x8];
414 u8 ip_dscp[0x6];
415 u8 ip_ecn[0x2];
Mohamad Haj Yahia10543362016-10-09 16:25:43 +0300416 u8 cvlan_tag[0x1];
417 u8 svlan_tag[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300418 u8 frag[0x1];
Ariel Levkovich19cc7522017-04-03 13:11:03 +0300419 u8 ip_version[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +0300420 u8 tcp_flags[0x9];
421
422 u8 tcp_sport[0x10];
423 u8 tcp_dport[0x10];
424
Or Gerlitza8ade552017-06-07 17:49:56 +0300425 u8 reserved_at_c0[0x18];
426 u8 ttl_hoplimit[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300427
428 u8 udp_sport[0x10];
429 u8 udp_dport[0x10];
430
Maor Gottliebb4d1f032016-01-11 10:26:05 +0200431 union mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits src_ipv4_src_ipv6;
Saeed Mahameede2816822015-05-28 22:28:40 +0300432
Maor Gottliebb4d1f032016-01-11 10:26:05 +0200433 union mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits dst_ipv4_dst_ipv6;
Saeed Mahameede2816822015-05-28 22:28:40 +0300434};
435
Oz Shlomo5886a962018-12-10 13:15:13 -0800436struct mlx5_ifc_nvgre_key_bits {
437 u8 hi[0x18];
438 u8 lo[0x8];
439};
440
441union mlx5_ifc_gre_key_bits {
442 struct mlx5_ifc_nvgre_key_bits nvgre;
443 u8 key[0x20];
444};
445
Saeed Mahameede2816822015-05-28 22:28:40 +0300446struct mlx5_ifc_fte_match_set_misc_bits {
Saeed Mahameed74862162016-06-09 15:11:34 +0300447 u8 reserved_at_0[0x8];
448 u8 source_sqn[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +0300449
Shahar Klein3e99df82018-03-18 09:02:06 +0200450 u8 source_eswitch_owner_vhca_id[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300451 u8 source_port[0x10];
452
453 u8 outer_second_prio[0x3];
454 u8 outer_second_cfi[0x1];
455 u8 outer_second_vid[0xc];
456 u8 inner_second_prio[0x3];
457 u8 inner_second_cfi[0x1];
458 u8 inner_second_vid[0xc];
459
Mohamad Haj Yahia10543362016-10-09 16:25:43 +0300460 u8 outer_second_cvlan_tag[0x1];
461 u8 inner_second_cvlan_tag[0x1];
462 u8 outer_second_svlan_tag[0x1];
463 u8 inner_second_svlan_tag[0x1];
464 u8 reserved_at_64[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +0300465 u8 gre_protocol[0x10];
466
Oz Shlomo5886a962018-12-10 13:15:13 -0800467 union mlx5_ifc_gre_key_bits gre_key;
Saeed Mahameede2816822015-05-28 22:28:40 +0300468
469 u8 vxlan_vni[0x18];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200470 u8 reserved_at_b8[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300471
Matan Barakb4ff3a32016-02-09 14:57:42 +0200472 u8 reserved_at_c0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +0300473
Matan Barakb4ff3a32016-02-09 14:57:42 +0200474 u8 reserved_at_e0[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +0300475 u8 outer_ipv6_flow_label[0x14];
476
Matan Barakb4ff3a32016-02-09 14:57:42 +0200477 u8 reserved_at_100[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +0300478 u8 inner_ipv6_flow_label[0x14];
479
Yishai Hadasa550ddf2017-08-17 15:52:33 +0300480 u8 reserved_at_120[0x28];
481 u8 bth_dst_qp[0x18];
Boris Pismenny3346c482017-08-20 15:13:08 +0300482 u8 reserved_at_160[0x20];
483 u8 outer_esp_spi[0x20];
484 u8 reserved_at_1a0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +0300485};
486
Ariel Levkovich71c6e862018-05-13 14:33:34 +0300487struct mlx5_ifc_fte_match_mpls_bits {
488 u8 mpls_label[0x14];
489 u8 mpls_exp[0x3];
490 u8 mpls_s_bos[0x1];
491 u8 mpls_ttl[0x8];
492};
493
494struct mlx5_ifc_fte_match_set_misc2_bits {
495 struct mlx5_ifc_fte_match_mpls_bits outer_first_mpls;
496
497 struct mlx5_ifc_fte_match_mpls_bits inner_first_mpls;
498
499 struct mlx5_ifc_fte_match_mpls_bits outer_first_mpls_over_gre;
500
501 struct mlx5_ifc_fte_match_mpls_bits outer_first_mpls_over_udp;
502
503 u8 reserved_at_80[0x100];
504
505 u8 metadata_reg_a[0x20];
506
507 u8 reserved_at_1a0[0x60];
508};
509
Saeed Mahameede2816822015-05-28 22:28:40 +0300510struct mlx5_ifc_cmd_pas_bits {
511 u8 pa_h[0x20];
512
513 u8 pa_l[0x14];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200514 u8 reserved_at_34[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +0300515};
516
517struct mlx5_ifc_uint64_bits {
518 u8 hi[0x20];
519
520 u8 lo[0x20];
521};
522
523enum {
524 MLX5_ADS_STAT_RATE_NO_LIMIT = 0x0,
525 MLX5_ADS_STAT_RATE_2_5GBPS = 0x7,
526 MLX5_ADS_STAT_RATE_10GBPS = 0x8,
527 MLX5_ADS_STAT_RATE_30GBPS = 0x9,
528 MLX5_ADS_STAT_RATE_5GBPS = 0xa,
529 MLX5_ADS_STAT_RATE_20GBPS = 0xb,
530 MLX5_ADS_STAT_RATE_40GBPS = 0xc,
531 MLX5_ADS_STAT_RATE_60GBPS = 0xd,
532 MLX5_ADS_STAT_RATE_80GBPS = 0xe,
533 MLX5_ADS_STAT_RATE_120GBPS = 0xf,
534};
535
536struct mlx5_ifc_ads_bits {
537 u8 fl[0x1];
538 u8 free_ar[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200539 u8 reserved_at_2[0xe];
Saeed Mahameede2816822015-05-28 22:28:40 +0300540 u8 pkey_index[0x10];
541
Matan Barakb4ff3a32016-02-09 14:57:42 +0200542 u8 reserved_at_20[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300543 u8 grh[0x1];
544 u8 mlid[0x7];
545 u8 rlid[0x10];
546
547 u8 ack_timeout[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200548 u8 reserved_at_45[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +0300549 u8 src_addr_index[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200550 u8 reserved_at_50[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +0300551 u8 stat_rate[0x4];
552 u8 hop_limit[0x8];
553
Matan Barakb4ff3a32016-02-09 14:57:42 +0200554 u8 reserved_at_60[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +0300555 u8 tclass[0x8];
556 u8 flow_label[0x14];
557
558 u8 rgid_rip[16][0x8];
559
Matan Barakb4ff3a32016-02-09 14:57:42 +0200560 u8 reserved_at_100[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +0300561 u8 f_dscp[0x1];
562 u8 f_ecn[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200563 u8 reserved_at_106[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300564 u8 f_eth_prio[0x1];
565 u8 ecn[0x2];
566 u8 dscp[0x6];
567 u8 udp_sport[0x10];
568
569 u8 dei_cfi[0x1];
570 u8 eth_prio[0x3];
571 u8 sl[0x4];
Daniel Jurgens32f69e42018-01-04 17:25:36 +0200572 u8 vhca_port_num[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300573 u8 rmac_47_32[0x10];
574
575 u8 rmac_31_0[0x20];
576};
577
578struct mlx5_ifc_flow_table_nic_cap_bits {
Maor Gottliebb3638e12016-03-07 18:51:46 +0200579 u8 nic_rx_multi_path_tirs[0x1];
Maor Gottliebcea824d2016-05-31 14:09:09 +0300580 u8 nic_rx_multi_path_tirs_fts[0x1];
581 u8 allow_sniffer_and_nic_rx_shared_tir[0x1];
Mark Blochbea4e1f2018-08-28 14:18:47 +0300582 u8 reserved_at_3[0x1d];
583 u8 encap_general_header[0x1];
584 u8 reserved_at_21[0xa];
585 u8 log_max_packet_reformat_context[0x5];
586 u8 reserved_at_30[0x6];
587 u8 max_encap_header_size[0xa];
588 u8 reserved_at_40[0x1c0];
Saeed Mahameede2816822015-05-28 22:28:40 +0300589
590 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive;
591
Matan Barakb4ff3a32016-02-09 14:57:42 +0200592 u8 reserved_at_400[0x200];
Saeed Mahameede2816822015-05-28 22:28:40 +0300593
594 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive_sniffer;
595
596 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_transmit;
597
Matan Barakb4ff3a32016-02-09 14:57:42 +0200598 u8 reserved_at_a00[0x200];
Saeed Mahameede2816822015-05-28 22:28:40 +0300599
600 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_transmit_sniffer;
601
Matan Barakb4ff3a32016-02-09 14:57:42 +0200602 u8 reserved_at_e00[0x7200];
Saeed Mahameede2816822015-05-28 22:28:40 +0300603};
604
Saeed Mahameed495716b2015-12-01 18:03:19 +0200605struct mlx5_ifc_flow_table_eswitch_cap_bits {
Vu Pham663f1462018-10-31 16:03:21 +0200606 u8 reserved_at_0[0x1a];
Paul Blakeyb9aa0ba2018-05-31 11:50:23 +0300607 u8 multi_fdb_encap[0x1];
Vu Pham663f1462018-10-31 16:03:21 +0200608 u8 reserved_at_1b[0x1];
609 u8 fdb_multi_path_to_table[0x1];
610 u8 reserved_at_1d[0x3];
611
612 u8 reserved_at_20[0x1e0];
Saeed Mahameed495716b2015-12-01 18:03:19 +0200613
614 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_esw_fdb;
615
616 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_esw_acl_ingress;
617
618 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_esw_acl_egress;
619
Matan Barakb4ff3a32016-02-09 14:57:42 +0200620 u8 reserved_at_800[0x7800];
Saeed Mahameed495716b2015-12-01 18:03:19 +0200621};
622
Shahar Klein8bb957d2018-12-12 19:11:38 -0800623enum {
624 MLX5_COUNTER_SOURCE_ESWITCH = 0x0,
625 MLX5_COUNTER_FLOW_ESWITCH = 0x1,
626};
627
Saeed Mahameedd6666752015-12-01 18:03:22 +0200628struct mlx5_ifc_e_switch_cap_bits {
629 u8 vport_svlan_strip[0x1];
630 u8 vport_cvlan_strip[0x1];
631 u8 vport_svlan_insert[0x1];
632 u8 vport_cvlan_insert_if_not_exist[0x1];
633 u8 vport_cvlan_insert_overwrite[0x1];
Shahar Klein8bb957d2018-12-12 19:11:38 -0800634 u8 reserved_at_5[0x17];
635 u8 counter_eswitch_affinity[0x1];
Roi Dayana6d04562017-12-05 10:38:58 +0200636 u8 merged_eswitch[0x1];
Noa Osherovich23898c72016-06-10 00:07:37 +0300637 u8 nic_vport_node_guid_modify[0x1];
638 u8 nic_vport_port_guid_modify[0x1];
Saeed Mahameedd6666752015-12-01 18:03:22 +0200639
Hadar Hen Zion7adbde22016-08-03 15:08:33 +0300640 u8 vxlan_encap_decap[0x1];
641 u8 nvgre_encap_decap[0x1];
Eli Britstein1b115492018-12-10 13:15:14 -0800642 u8 reserved_at_22[0x1];
643 u8 log_max_fdb_encap_uplink[0x5];
644 u8 reserved_at_21[0x3];
Mark Bloch60786f02018-08-28 14:18:46 +0300645 u8 log_max_packet_reformat_context[0x5];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +0300646 u8 reserved_2b[0x6];
647 u8 max_encap_header_size[0xa];
648
649 u8 reserved_40[0x7c0];
650
Saeed Mahameedd6666752015-12-01 18:03:22 +0200651};
652
Saeed Mahameed74862162016-06-09 15:11:34 +0300653struct mlx5_ifc_qos_cap_bits {
654 u8 packet_pacing[0x1];
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300655 u8 esw_scheduling[0x1];
Mohamad Haj Yahiac9497c92016-12-15 14:02:53 +0200656 u8 esw_bw_share[0x1];
657 u8 esw_rate_limit[0x1];
Bodong Wang05d3ac92018-03-19 15:10:29 +0200658 u8 reserved_at_4[0x1];
659 u8 packet_pacing_burst_bound[0x1];
660 u8 packet_pacing_typical_size[0x1];
661 u8 reserved_at_7[0x19];
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300662
663 u8 reserved_at_20[0x20];
664
Saeed Mahameed74862162016-06-09 15:11:34 +0300665 u8 packet_pacing_max_rate[0x20];
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300666
Saeed Mahameed74862162016-06-09 15:11:34 +0300667 u8 packet_pacing_min_rate[0x20];
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300668
669 u8 reserved_at_80[0x10];
Saeed Mahameed74862162016-06-09 15:11:34 +0300670 u8 packet_pacing_rate_table_size[0x10];
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300671
672 u8 esw_element_type[0x10];
673 u8 esw_tsar_type[0x10];
674
675 u8 reserved_at_c0[0x10];
676 u8 max_qos_para_vport[0x10];
677
678 u8 max_tsar_bw_share[0x20];
679
680 u8 reserved_at_100[0x700];
Saeed Mahameed74862162016-06-09 15:11:34 +0300681};
682
Inbar Karmy2fcb12d2017-08-17 16:39:47 +0300683struct mlx5_ifc_debug_cap_bits {
684 u8 reserved_at_0[0x20];
685
686 u8 reserved_at_20[0x2];
687 u8 stall_detect[0x1];
688 u8 reserved_at_23[0x1d];
689
690 u8 reserved_at_40[0x7c0];
691};
692
Saeed Mahameede2816822015-05-28 22:28:40 +0300693struct mlx5_ifc_per_protocol_networking_offload_caps_bits {
694 u8 csum_cap[0x1];
695 u8 vlan_cap[0x1];
696 u8 lro_cap[0x1];
697 u8 lro_psh_flag[0x1];
698 u8 lro_time_stamp[0x1];
Saeed Mahameed2b31f7a2016-11-28 18:04:50 +0200699 u8 reserved_at_5[0x2];
700 u8 wqe_vlan_insert[0x1];
Tariq Toukan66189962015-11-12 19:35:26 +0200701 u8 self_lb_en_modifiable[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200702 u8 reserved_at_9[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +0300703 u8 max_lso_cap[0x5];
Leon Romanovskyc226dc22016-10-31 12:15:20 +0200704 u8 multi_pkt_send_wqe[0x2];
Hadar Hen Zioncff92d72016-07-24 16:12:40 +0300705 u8 wqe_inline_mode[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +0300706 u8 rss_ind_tbl_cap[0x4];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +0300707 u8 reg_umr_sq[0x1];
708 u8 scatter_fcs[0x1];
Bodong Wang050da902017-08-17 15:52:35 +0300709 u8 enhanced_multi_pkt_send_wqe[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300710 u8 tunnel_lso_const_out_ip_id[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200711 u8 reserved_at_1c[0x2];
Gal Pressman27299842017-08-13 13:34:42 +0300712 u8 tunnel_stateless_gre[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300713 u8 tunnel_stateless_vxlan[0x1];
714
Ilan Tayari547eede2017-04-18 16:04:28 +0300715 u8 swp[0x1];
716 u8 swp_csum[0x1];
717 u8 swp_lso[0x1];
Gal Pressman22a65aa2017-12-25 18:40:52 +0200718 u8 reserved_at_23[0xd];
719 u8 max_vxlan_udp_ports[0x8];
720 u8 reserved_at_38[0x6];
Maor Gottlieb4d350f12017-10-19 08:25:54 +0300721 u8 max_geneve_opt_len[0x1];
722 u8 tunnel_stateless_geneve_rx[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300723
Matan Barakb4ff3a32016-02-09 14:57:42 +0200724 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300725 u8 lro_min_mss_size[0x10];
726
Matan Barakb4ff3a32016-02-09 14:57:42 +0200727 u8 reserved_at_60[0x120];
Saeed Mahameede2816822015-05-28 22:28:40 +0300728
729 u8 lro_timer_supported_periods[4][0x20];
730
Matan Barakb4ff3a32016-02-09 14:57:42 +0200731 u8 reserved_at_200[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +0300732};
733
734struct mlx5_ifc_roce_cap_bits {
735 u8 roce_apm[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200736 u8 reserved_at_1[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +0300737
Matan Barakb4ff3a32016-02-09 14:57:42 +0200738 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +0300739
Matan Barakb4ff3a32016-02-09 14:57:42 +0200740 u8 reserved_at_80[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +0300741 u8 l3_type[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200742 u8 reserved_at_90[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300743 u8 roce_version[0x8];
744
Matan Barakb4ff3a32016-02-09 14:57:42 +0200745 u8 reserved_at_a0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300746 u8 r_roce_dest_udp_port[0x10];
747
748 u8 r_roce_max_src_udp_port[0x10];
749 u8 r_roce_min_src_udp_port[0x10];
750
Matan Barakb4ff3a32016-02-09 14:57:42 +0200751 u8 reserved_at_e0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300752 u8 roce_address_table_size[0x10];
753
Matan Barakb4ff3a32016-02-09 14:57:42 +0200754 u8 reserved_at_100[0x700];
Saeed Mahameede2816822015-05-28 22:28:40 +0300755};
756
Ariel Levkoviche72bd812018-04-05 18:53:26 +0300757struct mlx5_ifc_device_mem_cap_bits {
758 u8 memic[0x1];
759 u8 reserved_at_1[0x1f];
760
761 u8 reserved_at_20[0xb];
762 u8 log_min_memic_alloc_size[0x5];
763 u8 reserved_at_30[0x8];
764 u8 log_max_memic_addr_alignment[0x8];
765
766 u8 memic_bar_start_addr[0x40];
767
768 u8 memic_bar_size[0x20];
769
770 u8 max_memic_size[0x20];
771
772 u8 reserved_at_c0[0x740];
773};
774
Saeed Mahameede2816822015-05-28 22:28:40 +0300775enum {
776 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_1_BYTE = 0x0,
777 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_2_BYTES = 0x2,
778 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_4_BYTES = 0x4,
779 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_8_BYTES = 0x8,
780 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_16_BYTES = 0x10,
781 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_32_BYTES = 0x20,
782 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_64_BYTES = 0x40,
783 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_128_BYTES = 0x80,
784 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_256_BYTES = 0x100,
785};
786
787enum {
788 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_1_BYTE = 0x1,
789 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_2_BYTES = 0x2,
790 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_4_BYTES = 0x4,
791 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_8_BYTES = 0x8,
792 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_16_BYTES = 0x10,
793 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_32_BYTES = 0x20,
794 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_64_BYTES = 0x40,
795 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_128_BYTES = 0x80,
796 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_256_BYTES = 0x100,
797};
798
799struct mlx5_ifc_atomic_caps_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +0200800 u8 reserved_at_0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +0300801
Or Gerlitzbd108382017-05-28 15:24:17 +0300802 u8 atomic_req_8B_endianness_mode[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200803 u8 reserved_at_42[0x4];
Or Gerlitzbd108382017-05-28 15:24:17 +0300804 u8 supported_atomic_req_8B_endianness_mode_1[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300805
Matan Barakb4ff3a32016-02-09 14:57:42 +0200806 u8 reserved_at_47[0x19];
Saeed Mahameede2816822015-05-28 22:28:40 +0300807
Matan Barakb4ff3a32016-02-09 14:57:42 +0200808 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +0300809
Matan Barakb4ff3a32016-02-09 14:57:42 +0200810 u8 reserved_at_80[0x10];
Eran Ben Elishaf91e6d82015-12-14 16:34:09 +0200811 u8 atomic_operations[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300812
Matan Barakb4ff3a32016-02-09 14:57:42 +0200813 u8 reserved_at_a0[0x10];
Eran Ben Elishaf91e6d82015-12-14 16:34:09 +0200814 u8 atomic_size_qp[0x10];
815
Matan Barakb4ff3a32016-02-09 14:57:42 +0200816 u8 reserved_at_c0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300817 u8 atomic_size_dc[0x10];
818
Matan Barakb4ff3a32016-02-09 14:57:42 +0200819 u8 reserved_at_e0[0x720];
Saeed Mahameede2816822015-05-28 22:28:40 +0300820};
821
822struct mlx5_ifc_odp_cap_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +0200823 u8 reserved_at_0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +0300824
825 u8 sig[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200826 u8 reserved_at_41[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +0300827
Matan Barakb4ff3a32016-02-09 14:57:42 +0200828 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +0300829
830 struct mlx5_ifc_odp_per_transport_service_cap_bits rc_odp_caps;
831
832 struct mlx5_ifc_odp_per_transport_service_cap_bits uc_odp_caps;
833
834 struct mlx5_ifc_odp_per_transport_service_cap_bits ud_odp_caps;
835
Moni Shouadda7a812019-01-22 08:48:49 +0200836 struct mlx5_ifc_odp_per_transport_service_cap_bits xrc_odp_caps;
837
838 u8 reserved_at_100[0x700];
Saeed Mahameede2816822015-05-28 22:28:40 +0300839};
840
Sagi Grimberg3f0393a2016-02-23 10:25:23 +0200841struct mlx5_ifc_calc_op {
842 u8 reserved_at_0[0x10];
843 u8 reserved_at_10[0x9];
844 u8 op_swap_endianness[0x1];
845 u8 op_min[0x1];
846 u8 op_xor[0x1];
847 u8 op_or[0x1];
848 u8 op_and[0x1];
849 u8 op_max[0x1];
850 u8 op_add[0x1];
851};
852
853struct mlx5_ifc_vector_calc_cap_bits {
854 u8 calc_matrix[0x1];
855 u8 reserved_at_1[0x1f];
856 u8 reserved_at_20[0x8];
857 u8 max_vec_count[0x8];
858 u8 reserved_at_30[0xd];
859 u8 max_chunk_size[0x3];
860 struct mlx5_ifc_calc_op calc0;
861 struct mlx5_ifc_calc_op calc1;
862 struct mlx5_ifc_calc_op calc2;
863 struct mlx5_ifc_calc_op calc3;
864
Gal Pressmanc74d90c2018-11-07 20:31:37 +0200865 u8 reserved_at_c0[0x720];
Sagi Grimberg3f0393a2016-02-23 10:25:23 +0200866};
867
Saeed Mahameede2816822015-05-28 22:28:40 +0300868enum {
869 MLX5_WQ_TYPE_LINKED_LIST = 0x0,
870 MLX5_WQ_TYPE_CYCLIC = 0x1,
Saeed Mahameed7d5e1422016-04-11 23:10:22 +0300871 MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ = 0x2,
Noa Osherovichccc870872017-10-17 18:01:13 +0300872 MLX5_WQ_TYPE_CYCLIC_STRIDING_RQ = 0x3,
Saeed Mahameede2816822015-05-28 22:28:40 +0300873};
874
875enum {
876 MLX5_WQ_END_PAD_MODE_NONE = 0x0,
877 MLX5_WQ_END_PAD_MODE_ALIGN = 0x1,
878};
879
880enum {
881 MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_8_GID_ENTRIES = 0x0,
882 MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_16_GID_ENTRIES = 0x1,
883 MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_32_GID_ENTRIES = 0x2,
884 MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_64_GID_ENTRIES = 0x3,
885 MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_128_GID_ENTRIES = 0x4,
886};
887
888enum {
889 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_128_ENTRIES = 0x0,
890 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_256_ENTRIES = 0x1,
891 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_512_ENTRIES = 0x2,
892 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_1K_ENTRIES = 0x3,
893 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_2K_ENTRIES = 0x4,
894 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_4K_ENTRIES = 0x5,
895};
896
897enum {
898 MLX5_CMD_HCA_CAP_PORT_TYPE_IB = 0x0,
899 MLX5_CMD_HCA_CAP_PORT_TYPE_ETHERNET = 0x1,
900};
901
902enum {
903 MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_DISABLED = 0x0,
904 MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_INITIAL_STATE = 0x1,
905 MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_ENABLED = 0x3,
906};
907
908enum {
909 MLX5_CAP_PORT_TYPE_IB = 0x0,
910 MLX5_CAP_PORT_TYPE_ETH = 0x1,
Eli Cohend29b7962014-10-02 12:19:43 +0300911};
912
Max Gurtovoy1410a902017-05-28 10:53:10 +0300913enum {
914 MLX5_CAP_UMR_FENCE_STRONG = 0x0,
915 MLX5_CAP_UMR_FENCE_SMALL = 0x1,
916 MLX5_CAP_UMR_FENCE_NONE = 0x2,
917};
918
Yishai Hadas9d43faa2018-11-26 08:28:32 +0200919enum {
920 MLX5_UCTX_CAP_RAW_TX = 1UL << 0,
921};
922
Eli Cohenb7755162014-10-02 12:19:44 +0300923struct mlx5_ifc_cmd_hca_cap_bits {
Daniel Jurgens32f69e42018-01-04 17:25:36 +0200924 u8 reserved_at_0[0x30];
925 u8 vhca_id[0x10];
926
927 u8 reserved_at_40[0x40];
Eli Cohenb7755162014-10-02 12:19:44 +0300928
929 u8 log_max_srq_sz[0x8];
930 u8 log_max_qp_sz[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200931 u8 reserved_at_90[0xb];
Eli Cohenb7755162014-10-02 12:19:44 +0300932 u8 log_max_qp[0x5];
933
Matan Barakb4ff3a32016-02-09 14:57:42 +0200934 u8 reserved_at_a0[0xb];
Saeed Mahameede2816822015-05-28 22:28:40 +0300935 u8 log_max_srq[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200936 u8 reserved_at_b0[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +0300937
Matan Barakb4ff3a32016-02-09 14:57:42 +0200938 u8 reserved_at_c0[0x8];
Eli Cohenb7755162014-10-02 12:19:44 +0300939 u8 log_max_cq_sz[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200940 u8 reserved_at_d0[0xb];
Eli Cohenb7755162014-10-02 12:19:44 +0300941 u8 log_max_cq[0x5];
942
943 u8 log_max_eq_sz[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200944 u8 reserved_at_e8[0x2];
Eli Cohenb7755162014-10-02 12:19:44 +0300945 u8 log_max_mkey[0x6];
Leon Romanovskyb183ee22018-06-19 08:47:23 +0300946 u8 reserved_at_f0[0x8];
947 u8 dump_fill_mkey[0x1];
Feras Daoudfcd29ad2018-08-09 09:55:21 +0300948 u8 reserved_at_f9[0x2];
949 u8 fast_teardown[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300950 u8 log_max_eq[0x4];
951
952 u8 max_indirection[0x8];
Artemy Kovalyovbcda1ac2017-01-02 11:37:41 +0200953 u8 fixed_buffer_size[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300954 u8 log_max_mrw_sz[0x7];
Majd Dibbiny8812c242017-02-09 14:20:12 +0200955 u8 force_teardown[0x1];
956 u8 reserved_at_111[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300957 u8 log_max_bsf_list_size[0x6];
Artemy Kovalyovbcda1ac2017-01-02 11:37:41 +0200958 u8 umr_extended_translation_offset[0x1];
959 u8 null_mkey[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300960 u8 log_max_klm_list_size[0x6];
961
Matan Barakb4ff3a32016-02-09 14:57:42 +0200962 u8 reserved_at_120[0xa];
Eli Cohenb7755162014-10-02 12:19:44 +0300963 u8 log_max_ra_req_dc[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200964 u8 reserved_at_130[0xa];
Eli Cohenb7755162014-10-02 12:19:44 +0300965 u8 log_max_ra_res_dc[0x6];
966
Matan Barakb4ff3a32016-02-09 14:57:42 +0200967 u8 reserved_at_140[0xa];
Eli Cohenb7755162014-10-02 12:19:44 +0300968 u8 log_max_ra_req_qp[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200969 u8 reserved_at_150[0xa];
Eli Cohenb7755162014-10-02 12:19:44 +0300970 u8 log_max_ra_res_qp[0x6];
971
Daniel Jurgensf32f5bd2015-11-19 17:12:26 +0200972 u8 end_pad[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300973 u8 cc_query_allowed[0x1];
974 u8 cc_modify_allowed[0x1];
Daniel Jurgensf32f5bd2015-11-19 17:12:26 +0200975 u8 start_pad[0x1];
976 u8 cache_line_128byte[0x1];
Huy Nguyenc02762e2017-07-18 16:03:17 -0500977 u8 reserved_at_165[0xa];
978 u8 qcam_reg[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300979 u8 gid_table_size[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +0300980
Saeed Mahameede2816822015-05-28 22:28:40 +0300981 u8 out_of_seq_cnt[0x1];
982 u8 vport_counters[0x1];
Saeed Mahameed74862162016-06-09 15:11:34 +0300983 u8 retransmission_q_counters[0x1];
Inbar Karmy2fcb12d2017-08-17 16:39:47 +0300984 u8 debug[0x1];
Alex Vesker83b502a2016-08-04 17:32:02 +0300985 u8 modify_rq_counter_set_id[0x1];
Maor Gottliebc1e0bfc2017-05-30 10:29:11 +0300986 u8 rq_delay_drop[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300987 u8 max_qp_cnt[0xa];
988 u8 pkey_table_size[0x10];
989
Saeed Mahameede2816822015-05-28 22:28:40 +0300990 u8 vport_group_manager[0x1];
991 u8 vhca_group_manager[0x1];
992 u8 ib_virt[0x1];
993 u8 eth_virt[0x1];
Moshe Shemesh61c5b5c2018-01-07 16:45:27 +0200994 u8 vnic_env_queue_counters[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300995 u8 ets[0x1];
996 u8 nic_flow_table[0x1];
Or Gerlitz0efc8562018-05-31 11:16:18 +0300997 u8 eswitch_manager[0x1];
Ariel Levkoviche72bd812018-04-05 18:53:26 +0300998 u8 device_memory[0x1];
Gal Pressmancfdcbcea2016-12-08 15:52:00 +0200999 u8 mcam_reg[0x1];
1000 u8 pcam_reg[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001001 u8 local_ca_ack_delay[0x5];
Huy Nguyen4ce3bf22016-11-17 13:45:56 +02001002 u8 port_module_event[0x1];
Parav Pandit58dcb602017-06-19 07:19:37 +03001003 u8 enhanced_error_q_counters[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001004 u8 ports_check[0x1];
Max Gurtovoy7b135582017-01-02 11:37:38 +02001005 u8 reserved_at_1b3[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001006 u8 disable_link_up[0x1];
1007 u8 beacon_led[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001008 u8 port_type[0x2];
Eli Cohenb7755162014-10-02 12:19:44 +03001009 u8 num_ports[0x8];
1010
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03001011 u8 reserved_at_1c0[0x1];
1012 u8 pps[0x1];
1013 u8 pps_modify[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001014 u8 log_max_msg[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001015 u8 reserved_at_1c8[0x4];
Saeed Mahameed4f3961e2016-02-22 18:17:25 +02001016 u8 max_tc[0x4];
Ilan Tayari1865ea9a2018-05-30 10:59:49 -07001017 u8 temp_warn_event[0x1];
Saeed Mahameed74862162016-06-09 15:11:34 +03001018 u8 dcbx[0x1];
Maor Gottlieb246ac982017-05-30 10:29:12 +03001019 u8 general_notification_event[0x1];
1020 u8 reserved_at_1d3[0x2];
Ilan Tayarie29341f2017-03-13 20:05:45 +02001021 u8 fpga[0x1];
Tariq Toukan928cfe82016-02-22 18:17:29 +02001022 u8 rol_s[0x1];
1023 u8 rol_g[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001024 u8 reserved_at_1d8[0x1];
Tariq Toukan928cfe82016-02-22 18:17:29 +02001025 u8 wol_s[0x1];
1026 u8 wol_g[0x1];
1027 u8 wol_a[0x1];
1028 u8 wol_b[0x1];
1029 u8 wol_m[0x1];
1030 u8 wol_u[0x1];
1031 u8 wol_p[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001032
1033 u8 stat_rate_support[0x10];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001034 u8 reserved_at_1f0[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03001035 u8 cqe_version[0x4];
Eli Cohenb7755162014-10-02 12:19:44 +03001036
Saeed Mahameede2816822015-05-28 22:28:40 +03001037 u8 compact_address_vector[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001038 u8 striding_rq[0x1];
Erez Shitrit500a3d02017-04-13 06:36:51 +03001039 u8 reserved_at_202[0x1];
1040 u8 ipoib_enhanced_offloads[0x1];
Erez Shitrit1015c2e2016-02-21 16:27:16 +02001041 u8 ipoib_basic_offloads[0x1];
Majd Dibbinyc8d75a92018-03-22 15:34:04 +02001042 u8 reserved_at_205[0x1];
1043 u8 repeated_block_disabled[0x1];
1044 u8 umr_modify_entity_size_disabled[0x1];
1045 u8 umr_modify_atomic_disabled[0x1];
1046 u8 umr_indirect_mkey_disabled[0x1];
Max Gurtovoy1410a902017-05-28 10:53:10 +03001047 u8 umr_fence[0x2];
Yonatan Cohen94a04d12018-10-09 12:05:12 +03001048 u8 dc_req_scat_data_cqe[0x1];
1049 u8 reserved_at_20d[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03001050 u8 drain_sigerr[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001051 u8 cmdif_checksum[0x2];
1052 u8 sigerr_cqe[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001053 u8 reserved_at_213[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001054 u8 wq_signature[0x1];
1055 u8 sctr_data_cqe[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001056 u8 reserved_at_216[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001057 u8 sho[0x1];
1058 u8 tph[0x1];
1059 u8 rf[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001060 u8 dct[0x1];
Saeed Mahameed74862162016-06-09 15:11:34 +03001061 u8 qos[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001062 u8 eth_net_offloads[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001063 u8 roce[0x1];
1064 u8 atomic[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001065 u8 reserved_at_21f[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001066
1067 u8 cq_oi[0x1];
1068 u8 cq_resize[0x1];
1069 u8 cq_moderation[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001070 u8 reserved_at_223[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001071 u8 cq_eq_remap[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001072 u8 pg[0x1];
1073 u8 block_lb_mc[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001074 u8 reserved_at_229[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001075 u8 scqe_break_moderation[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001076 u8 cq_period_start_from_cqe[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001077 u8 cd[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001078 u8 reserved_at_22d[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001079 u8 apm[0x1];
Sagi Grimberg3f0393a2016-02-23 10:25:23 +02001080 u8 vector_calc[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001081 u8 umr_ptr_rlky[0x1];
Matan Barakd2370e02016-02-29 18:05:30 +02001082 u8 imaicl[0x1];
Danit Goldberg3fd3c802018-11-30 13:22:04 +02001083 u8 qp_packet_based[0x1];
1084 u8 reserved_at_233[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001085 u8 qkv[0x1];
1086 u8 pkv[0x1];
Haggai Eranb11a4f92016-02-29 15:45:03 +02001087 u8 set_deth_sqpn[0x1];
1088 u8 reserved_at_239[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001089 u8 xrc[0x1];
1090 u8 ud[0x1];
1091 u8 uc[0x1];
1092 u8 rc[0x1];
1093
Eli Cohena6d51b62017-01-03 23:55:23 +02001094 u8 uar_4k[0x1];
1095 u8 reserved_at_241[0x9];
Eli Cohenb7755162014-10-02 12:19:44 +03001096 u8 uar_sz[0x6];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001097 u8 reserved_at_250[0x8];
Eli Cohenb7755162014-10-02 12:19:44 +03001098 u8 log_pg_sz[0x8];
1099
1100 u8 bf[0x1];
Saeed Mahameed0dbc6fe2016-11-17 13:45:59 +02001101 u8 driver_version[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001102 u8 pad_tx_eth_packet[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001103 u8 reserved_at_263[0x8];
Eli Cohenb7755162014-10-02 12:19:44 +03001104 u8 log_bf_reg_size[0x5];
Aviv Heller84df61e2016-05-10 13:47:50 +03001105
1106 u8 reserved_at_270[0xb];
1107 u8 lag_master[0x1];
1108 u8 num_lag_ports[0x4];
Eli Cohenb7755162014-10-02 12:19:44 +03001109
Tariq Toukane1c9c622016-04-11 23:10:21 +03001110 u8 reserved_at_280[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03001111 u8 max_wqe_sz_sq[0x10];
1112
Tariq Toukane1c9c622016-04-11 23:10:21 +03001113 u8 reserved_at_2a0[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03001114 u8 max_wqe_sz_rq[0x10];
1115
Rabie Louloua8ffcc72017-07-09 13:39:30 +03001116 u8 max_flow_counter_31_16[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03001117 u8 max_wqe_sz_sq_dc[0x10];
1118
Tariq Toukane1c9c622016-04-11 23:10:21 +03001119 u8 reserved_at_2e0[0x7];
Eli Cohenb7755162014-10-02 12:19:44 +03001120 u8 max_qp_mcg[0x19];
1121
Tariq Toukane1c9c622016-04-11 23:10:21 +03001122 u8 reserved_at_300[0x18];
Eli Cohenb7755162014-10-02 12:19:44 +03001123 u8 log_max_mcg[0x8];
1124
Tariq Toukane1c9c622016-04-11 23:10:21 +03001125 u8 reserved_at_320[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001126 u8 log_max_transport_domain[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001127 u8 reserved_at_328[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001128 u8 log_max_pd[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001129 u8 reserved_at_330[0xb];
Eli Cohenb7755162014-10-02 12:19:44 +03001130 u8 log_max_xrcd[0x5];
1131
Moshe Shemesh5c298142017-12-26 16:46:29 +02001132 u8 nic_receive_steering_discard[0x1];
Moshe Shemeshaaabd072018-01-14 00:56:25 +02001133 u8 receive_discard_vport_down[0x1];
1134 u8 transmit_discard_vport_down[0x1];
1135 u8 reserved_at_343[0x5];
Amir Vadaia351a1b02016-07-14 10:32:38 +03001136 u8 log_max_flow_counter_bulk[0x8];
Rabie Louloua8ffcc72017-07-09 13:39:30 +03001137 u8 max_flow_counter_15_0[0x10];
Amir Vadaia351a1b02016-07-14 10:32:38 +03001138
Eli Cohenb7755162014-10-02 12:19:44 +03001139
Tariq Toukane1c9c622016-04-11 23:10:21 +03001140 u8 reserved_at_360[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001141 u8 log_max_rq[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001142 u8 reserved_at_368[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001143 u8 log_max_sq[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001144 u8 reserved_at_370[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001145 u8 log_max_tir[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001146 u8 reserved_at_378[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001147 u8 log_max_tis[0x5];
1148
Saeed Mahameede2816822015-05-28 22:28:40 +03001149 u8 basic_cyclic_rcv_wqe[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001150 u8 reserved_at_381[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03001151 u8 log_max_rmp[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001152 u8 reserved_at_388[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001153 u8 log_max_rqt[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001154 u8 reserved_at_390[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001155 u8 log_max_rqt_size[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001156 u8 reserved_at_398[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001157 u8 log_max_tis_per_sq[0x5];
1158
Tariq Toukan619a8f2a2018-02-07 14:41:25 +02001159 u8 ext_stride_num_range[0x1];
1160 u8 reserved_at_3a1[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03001161 u8 log_max_stride_sz_rq[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001162 u8 reserved_at_3a8[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001163 u8 log_min_stride_sz_rq[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001164 u8 reserved_at_3b0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001165 u8 log_max_stride_sz_sq[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001166 u8 reserved_at_3b8[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001167 u8 log_min_stride_sz_sq[0x5];
Eli Cohenb7755162014-10-02 12:19:44 +03001168
Or Gerlitz40817cd2017-06-25 12:38:45 +03001169 u8 hairpin[0x1];
1170 u8 reserved_at_3c1[0x2];
1171 u8 log_max_hairpin_queues[0x5];
1172 u8 reserved_at_3c8[0x3];
1173 u8 log_max_hairpin_wq_data_sz[0x5];
Or Gerlitz4d533e02018-01-04 12:26:21 +02001174 u8 reserved_at_3d0[0x3];
1175 u8 log_max_hairpin_num_packets[0x5];
1176 u8 reserved_at_3d8[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001177 u8 log_max_wq_sz[0x5];
1178
Saeed Mahameed54f0a412015-12-01 18:03:10 +02001179 u8 nic_vport_change_event[0x1];
Eran Ben Elisha8978cc92018-01-09 11:41:10 +02001180 u8 disable_local_lb_uc[0x1];
1181 u8 disable_local_lb_mc[0x1];
Or Gerlitz40817cd2017-06-25 12:38:45 +03001182 u8 log_min_hairpin_wq_data_sz[0x5];
1183 u8 reserved_at_3e8[0x3];
Saeed Mahameed54f0a412015-12-01 18:03:10 +02001184 u8 log_max_vlan_list[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001185 u8 reserved_at_3f0[0x3];
Saeed Mahameed54f0a412015-12-01 18:03:10 +02001186 u8 log_max_current_mc_list[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001187 u8 reserved_at_3f8[0x3];
Saeed Mahameed54f0a412015-12-01 18:03:10 +02001188 u8 log_max_current_uc_list[0x5];
1189
Yishai Hadas38b7ca92018-03-08 14:36:27 +02001190 u8 general_obj_types[0x40];
1191
Denis Drozdov342ac842018-08-08 16:23:48 -07001192 u8 reserved_at_440[0x20];
1193
Yishai Hadas6e3722b2018-12-19 16:28:15 +02001194 u8 reserved_at_460[0x3];
1195 u8 log_max_uctx[0x5];
1196 u8 reserved_at_468[0x3];
1197 u8 log_max_umem[0x5];
Denis Drozdov342ac842018-08-08 16:23:48 -07001198 u8 max_num_eqs[0x10];
Saeed Mahameed54f0a412015-12-01 18:03:10 +02001199
Tariq Toukane1c9c622016-04-11 23:10:21 +03001200 u8 reserved_at_480[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001201 u8 log_max_l2_table[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001202 u8 reserved_at_488[0x8];
Eli Cohenb7755162014-10-02 12:19:44 +03001203 u8 log_uar_page_sz[0x10];
1204
Tariq Toukane1c9c622016-04-11 23:10:21 +03001205 u8 reserved_at_4a0[0x20];
Linus Torvalds048ccca2016-01-23 18:45:06 -08001206 u8 device_frequency_mhz[0x20];
Eran Ben Elishab0844442015-12-29 14:58:30 +02001207 u8 device_frequency_khz[0x20];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001208
Eli Cohena6d51b62017-01-03 23:55:23 +02001209 u8 reserved_at_500[0x20];
1210 u8 num_of_uars_per_page[0x20];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001211
Ariel Levkoviche818e252018-05-13 14:33:35 +03001212 u8 flex_parser_protocols[0x20];
1213 u8 reserved_at_560[0x20];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001214
Yonatan Cohenab741b22018-05-27 13:42:32 +03001215 u8 reserved_at_580[0x3c];
1216 u8 mini_cqe_resp_stride_index[0x1];
Guy Levi0ff8e792017-10-19 08:25:51 +03001217 u8 cqe_128_always[0x1];
1218 u8 cqe_compression_128[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001219 u8 cqe_compression[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001220
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001221 u8 cqe_compression_timeout[0x10];
1222 u8 cqe_compression_max_num[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03001223
Saeed Mahameed74862162016-06-09 15:11:34 +03001224 u8 reserved_at_5e0[0x10];
1225 u8 tag_matching[0x1];
1226 u8 rndv_offload_rc[0x1];
1227 u8 rndv_offload_dc[0x1];
1228 u8 log_tag_matching_list_sz[0x5];
Max Gurtovoy7b135582017-01-02 11:37:38 +02001229 u8 reserved_at_5f8[0x3];
Saeed Mahameed74862162016-06-09 15:11:34 +03001230 u8 log_max_xrq[0x5];
1231
Daniel Jurgens32f69e42018-01-04 17:25:36 +02001232 u8 affiliate_nic_vport_criteria[0x8];
1233 u8 native_port_num[0x8];
1234 u8 num_vhca_ports[0x8];
1235 u8 reserved_at_618[0x6];
1236 u8 sw_owner_id[0x1];
Yishai Hadas9d43faa2018-11-26 08:28:32 +02001237 u8 reserved_at_61f[0x1];
1238
Eyal Davidovichfd4572b2018-12-10 13:15:12 -08001239 u8 max_num_of_monitor_counters[0x10];
1240 u8 num_ppcnt_monitor_counters[0x10];
1241
1242 u8 reserved_at_640[0x10];
1243 u8 num_q_monitor_counters[0x10];
1244
1245 u8 reserved_at_660[0x40];
Yishai Hadas9d43faa2018-11-26 08:28:32 +02001246
1247 u8 uctx_cap[0x20];
1248
1249 u8 reserved_at_6c0[0x140];
Saeed Mahameede2816822015-05-28 22:28:40 +03001250};
1251
Saeed Mahameed81848732015-12-01 18:03:20 +02001252enum mlx5_flow_destination_type {
1253 MLX5_FLOW_DESTINATION_TYPE_VPORT = 0x0,
1254 MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE = 0x1,
1255 MLX5_FLOW_DESTINATION_TYPE_TIR = 0x2,
Amir Vadaibd5251db2016-05-13 12:55:40 +00001256
Aviad Yehezkel5f418372018-02-18 13:17:17 +02001257 MLX5_FLOW_DESTINATION_TYPE_PORT = 0x99,
Amir Vadaibd5251db2016-05-13 12:55:40 +00001258 MLX5_FLOW_DESTINATION_TYPE_COUNTER = 0x100,
Yishai Hadas664000b2018-06-19 15:23:36 +03001259 MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE_NUM = 0x101,
Saeed Mahameede2816822015-05-28 22:28:40 +03001260};
1261
1262struct mlx5_ifc_dest_format_struct_bits {
1263 u8 destination_type[0x8];
1264 u8 destination_id[0x18];
Eli Britstein1b115492018-12-10 13:15:14 -08001265
Shahar Kleinb17f7fc2018-03-22 12:32:12 +02001266 u8 destination_eswitch_owner_vhca_id_valid[0x1];
Eli Britstein1b115492018-12-10 13:15:14 -08001267 u8 packet_reformat[0x1];
1268 u8 reserved_at_22[0xe];
Shahar Kleinb17f7fc2018-03-22 12:32:12 +02001269 u8 destination_eswitch_owner_vhca_id[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03001270};
1271
Amir Vadai9dc0b282016-05-13 12:55:39 +00001272struct mlx5_ifc_flow_counter_list_bits {
Rabie Louloua8ffcc72017-07-09 13:39:30 +03001273 u8 flow_counter_id[0x20];
Amir Vadai9dc0b282016-05-13 12:55:39 +00001274
1275 u8 reserved_at_20[0x20];
1276};
1277
Eli Britstein1b115492018-12-10 13:15:14 -08001278struct mlx5_ifc_extended_dest_format_bits {
1279 struct mlx5_ifc_dest_format_struct_bits destination_entry;
1280
1281 u8 packet_reformat_id[0x20];
1282
1283 u8 reserved_at_60[0x20];
1284};
1285
Amir Vadai9dc0b282016-05-13 12:55:39 +00001286union mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits {
1287 struct mlx5_ifc_dest_format_struct_bits dest_format_struct;
1288 struct mlx5_ifc_flow_counter_list_bits flow_counter_list;
1289 u8 reserved_at_0[0x40];
1290};
1291
Saeed Mahameede2816822015-05-28 22:28:40 +03001292struct mlx5_ifc_fte_match_param_bits {
1293 struct mlx5_ifc_fte_match_set_lyr_2_4_bits outer_headers;
1294
1295 struct mlx5_ifc_fte_match_set_misc_bits misc_parameters;
1296
1297 struct mlx5_ifc_fte_match_set_lyr_2_4_bits inner_headers;
1298
Ariel Levkovich71c6e862018-05-13 14:33:34 +03001299 struct mlx5_ifc_fte_match_set_misc2_bits misc_parameters_2;
1300
1301 u8 reserved_at_800[0x800];
Saeed Mahameede2816822015-05-28 22:28:40 +03001302};
1303
1304enum {
1305 MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_SRC_IP = 0x0,
1306 MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_DST_IP = 0x1,
1307 MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_L4_SPORT = 0x2,
1308 MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_L4_DPORT = 0x3,
1309 MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_IPSEC_SPI = 0x4,
1310};
1311
1312struct mlx5_ifc_rx_hash_field_select_bits {
1313 u8 l3_prot_type[0x1];
1314 u8 l4_prot_type[0x1];
1315 u8 selected_fields[0x1e];
1316};
1317
1318enum {
1319 MLX5_WQ_WQ_TYPE_WQ_LINKED_LIST = 0x0,
1320 MLX5_WQ_WQ_TYPE_WQ_CYCLIC = 0x1,
1321};
1322
1323enum {
1324 MLX5_WQ_END_PADDING_MODE_END_PAD_NONE = 0x0,
1325 MLX5_WQ_END_PADDING_MODE_END_PAD_ALIGN = 0x1,
1326};
1327
1328struct mlx5_ifc_wq_bits {
1329 u8 wq_type[0x4];
1330 u8 wq_signature[0x1];
1331 u8 end_padding_mode[0x2];
1332 u8 cd_slave[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001333 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03001334
1335 u8 hds_skip_first_sge[0x1];
1336 u8 log2_hds_buf_size[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001337 u8 reserved_at_24[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03001338 u8 page_offset[0x5];
1339 u8 lwm[0x10];
1340
Matan Barakb4ff3a32016-02-09 14:57:42 +02001341 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03001342 u8 pd[0x18];
1343
Matan Barakb4ff3a32016-02-09 14:57:42 +02001344 u8 reserved_at_60[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03001345 u8 uar_page[0x18];
1346
1347 u8 dbr_addr[0x40];
1348
1349 u8 hw_counter[0x20];
1350
1351 u8 sw_counter[0x20];
1352
Matan Barakb4ff3a32016-02-09 14:57:42 +02001353 u8 reserved_at_100[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03001354 u8 log_wq_stride[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001355 u8 reserved_at_110[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001356 u8 log_wq_pg_sz[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001357 u8 reserved_at_118[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001358 u8 log_wq_sz[0x5];
1359
Leon Romanovskybd371972018-09-20 21:35:26 +03001360 u8 dbr_umem_valid[0x1];
1361 u8 wq_umem_valid[0x1];
1362 u8 reserved_at_122[0x1];
Or Gerlitz4d533e02018-01-04 12:26:21 +02001363 u8 log_hairpin_num_packets[0x5];
1364 u8 reserved_at_128[0x3];
Or Gerlitz40817cd2017-06-25 12:38:45 +03001365 u8 log_hairpin_data_sz[0x5];
Or Gerlitz40817cd2017-06-25 12:38:45 +03001366
Tariq Toukan619a8f2a2018-02-07 14:41:25 +02001367 u8 reserved_at_130[0x4];
1368 u8 log_wqe_num_of_strides[0x4];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001369 u8 two_byte_shift_en[0x1];
1370 u8 reserved_at_139[0x4];
1371 u8 log_wqe_stride_size[0x3];
1372
1373 u8 reserved_at_140[0x4c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001374
1375 struct mlx5_ifc_cmd_pas_bits pas[0];
1376};
1377
1378struct mlx5_ifc_rq_num_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001379 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03001380 u8 rq_num[0x18];
1381};
1382
1383struct mlx5_ifc_mac_address_layout_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001384 u8 reserved_at_0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03001385 u8 mac_addr_47_32[0x10];
1386
1387 u8 mac_addr_31_0[0x20];
1388};
1389
Saeed Mahameedc0046cf2015-12-01 18:03:15 +02001390struct mlx5_ifc_vlan_layout_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001391 u8 reserved_at_0[0x14];
Saeed Mahameedc0046cf2015-12-01 18:03:15 +02001392 u8 vlan[0x0c];
1393
Matan Barakb4ff3a32016-02-09 14:57:42 +02001394 u8 reserved_at_20[0x20];
Saeed Mahameedc0046cf2015-12-01 18:03:15 +02001395};
1396
Saeed Mahameede2816822015-05-28 22:28:40 +03001397struct mlx5_ifc_cong_control_r_roce_ecn_np_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001398 u8 reserved_at_0[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001399
1400 u8 min_time_between_cnps[0x20];
1401
Matan Barakb4ff3a32016-02-09 14:57:42 +02001402 u8 reserved_at_c0[0x12];
Saeed Mahameede2816822015-05-28 22:28:40 +03001403 u8 cnp_dscp[0x6];
Parav Pandit4a2da0b2017-05-30 10:05:15 +03001404 u8 reserved_at_d8[0x4];
1405 u8 cnp_prio_mode[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001406 u8 cnp_802p_prio[0x3];
1407
Matan Barakb4ff3a32016-02-09 14:57:42 +02001408 u8 reserved_at_e0[0x720];
Saeed Mahameede2816822015-05-28 22:28:40 +03001409};
1410
1411struct mlx5_ifc_cong_control_r_roce_ecn_rp_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001412 u8 reserved_at_0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03001413
Matan Barakb4ff3a32016-02-09 14:57:42 +02001414 u8 reserved_at_60[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03001415 u8 clamp_tgt_rate[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001416 u8 reserved_at_65[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001417 u8 clamp_tgt_rate_after_time_inc[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001418 u8 reserved_at_69[0x17];
Saeed Mahameede2816822015-05-28 22:28:40 +03001419
Matan Barakb4ff3a32016-02-09 14:57:42 +02001420 u8 reserved_at_80[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03001421
1422 u8 rpg_time_reset[0x20];
1423
1424 u8 rpg_byte_reset[0x20];
1425
1426 u8 rpg_threshold[0x20];
1427
1428 u8 rpg_max_rate[0x20];
1429
1430 u8 rpg_ai_rate[0x20];
1431
1432 u8 rpg_hai_rate[0x20];
1433
1434 u8 rpg_gd[0x20];
1435
1436 u8 rpg_min_dec_fac[0x20];
1437
1438 u8 rpg_min_rate[0x20];
1439
Matan Barakb4ff3a32016-02-09 14:57:42 +02001440 u8 reserved_at_1c0[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001441
1442 u8 rate_to_set_on_first_cnp[0x20];
1443
1444 u8 dce_tcp_g[0x20];
1445
1446 u8 dce_tcp_rtt[0x20];
1447
1448 u8 rate_reduce_monitor_period[0x20];
1449
Matan Barakb4ff3a32016-02-09 14:57:42 +02001450 u8 reserved_at_320[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03001451
1452 u8 initial_alpha_value[0x20];
1453
Matan Barakb4ff3a32016-02-09 14:57:42 +02001454 u8 reserved_at_360[0x4a0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001455};
1456
1457struct mlx5_ifc_cong_control_802_1qau_rp_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001458 u8 reserved_at_0[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03001459
1460 u8 rppp_max_rps[0x20];
1461
1462 u8 rpg_time_reset[0x20];
1463
1464 u8 rpg_byte_reset[0x20];
1465
1466 u8 rpg_threshold[0x20];
1467
1468 u8 rpg_max_rate[0x20];
1469
1470 u8 rpg_ai_rate[0x20];
1471
1472 u8 rpg_hai_rate[0x20];
1473
1474 u8 rpg_gd[0x20];
1475
1476 u8 rpg_min_dec_fac[0x20];
1477
1478 u8 rpg_min_rate[0x20];
1479
Matan Barakb4ff3a32016-02-09 14:57:42 +02001480 u8 reserved_at_1c0[0x640];
Saeed Mahameede2816822015-05-28 22:28:40 +03001481};
1482
1483enum {
1484 MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_LOG_CQ_SIZE = 0x1,
1485 MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_PAGE_OFFSET = 0x2,
1486 MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_LOG_PAGE_SIZE = 0x4,
1487};
1488
1489struct mlx5_ifc_resize_field_select_bits {
1490 u8 resize_field_select[0x20];
1491};
1492
1493enum {
1494 MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_PERIOD = 0x1,
1495 MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_MAX_COUNT = 0x2,
1496 MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_OI = 0x4,
1497 MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_C_EQN = 0x8,
1498};
1499
1500struct mlx5_ifc_modify_field_select_bits {
1501 u8 modify_field_select[0x20];
1502};
1503
1504struct mlx5_ifc_field_select_r_roce_np_bits {
1505 u8 field_select_r_roce_np[0x20];
1506};
1507
1508struct mlx5_ifc_field_select_r_roce_rp_bits {
1509 u8 field_select_r_roce_rp[0x20];
1510};
1511
1512enum {
1513 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPPP_MAX_RPS = 0x4,
1514 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_TIME_RESET = 0x8,
1515 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_BYTE_RESET = 0x10,
1516 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_THRESHOLD = 0x20,
1517 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MAX_RATE = 0x40,
1518 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_AI_RATE = 0x80,
1519 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_HAI_RATE = 0x100,
1520 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_GD = 0x200,
1521 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MIN_DEC_FAC = 0x400,
1522 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MIN_RATE = 0x800,
1523};
1524
1525struct mlx5_ifc_field_select_802_1qau_rp_bits {
1526 u8 field_select_8021qaurp[0x20];
1527};
1528
1529struct mlx5_ifc_phys_layer_cntrs_bits {
1530 u8 time_since_last_clear_high[0x20];
1531
1532 u8 time_since_last_clear_low[0x20];
1533
1534 u8 symbol_errors_high[0x20];
1535
1536 u8 symbol_errors_low[0x20];
1537
1538 u8 sync_headers_errors_high[0x20];
1539
1540 u8 sync_headers_errors_low[0x20];
1541
1542 u8 edpl_bip_errors_lane0_high[0x20];
1543
1544 u8 edpl_bip_errors_lane0_low[0x20];
1545
1546 u8 edpl_bip_errors_lane1_high[0x20];
1547
1548 u8 edpl_bip_errors_lane1_low[0x20];
1549
1550 u8 edpl_bip_errors_lane2_high[0x20];
1551
1552 u8 edpl_bip_errors_lane2_low[0x20];
1553
1554 u8 edpl_bip_errors_lane3_high[0x20];
1555
1556 u8 edpl_bip_errors_lane3_low[0x20];
1557
1558 u8 fc_fec_corrected_blocks_lane0_high[0x20];
1559
1560 u8 fc_fec_corrected_blocks_lane0_low[0x20];
1561
1562 u8 fc_fec_corrected_blocks_lane1_high[0x20];
1563
1564 u8 fc_fec_corrected_blocks_lane1_low[0x20];
1565
1566 u8 fc_fec_corrected_blocks_lane2_high[0x20];
1567
1568 u8 fc_fec_corrected_blocks_lane2_low[0x20];
1569
1570 u8 fc_fec_corrected_blocks_lane3_high[0x20];
1571
1572 u8 fc_fec_corrected_blocks_lane3_low[0x20];
1573
1574 u8 fc_fec_uncorrectable_blocks_lane0_high[0x20];
1575
1576 u8 fc_fec_uncorrectable_blocks_lane0_low[0x20];
1577
1578 u8 fc_fec_uncorrectable_blocks_lane1_high[0x20];
1579
1580 u8 fc_fec_uncorrectable_blocks_lane1_low[0x20];
1581
1582 u8 fc_fec_uncorrectable_blocks_lane2_high[0x20];
1583
1584 u8 fc_fec_uncorrectable_blocks_lane2_low[0x20];
1585
1586 u8 fc_fec_uncorrectable_blocks_lane3_high[0x20];
1587
1588 u8 fc_fec_uncorrectable_blocks_lane3_low[0x20];
1589
1590 u8 rs_fec_corrected_blocks_high[0x20];
1591
1592 u8 rs_fec_corrected_blocks_low[0x20];
1593
1594 u8 rs_fec_uncorrectable_blocks_high[0x20];
1595
1596 u8 rs_fec_uncorrectable_blocks_low[0x20];
1597
1598 u8 rs_fec_no_errors_blocks_high[0x20];
1599
1600 u8 rs_fec_no_errors_blocks_low[0x20];
1601
1602 u8 rs_fec_single_error_blocks_high[0x20];
1603
1604 u8 rs_fec_single_error_blocks_low[0x20];
1605
1606 u8 rs_fec_corrected_symbols_total_high[0x20];
1607
1608 u8 rs_fec_corrected_symbols_total_low[0x20];
1609
1610 u8 rs_fec_corrected_symbols_lane0_high[0x20];
1611
1612 u8 rs_fec_corrected_symbols_lane0_low[0x20];
1613
1614 u8 rs_fec_corrected_symbols_lane1_high[0x20];
1615
1616 u8 rs_fec_corrected_symbols_lane1_low[0x20];
1617
1618 u8 rs_fec_corrected_symbols_lane2_high[0x20];
1619
1620 u8 rs_fec_corrected_symbols_lane2_low[0x20];
1621
1622 u8 rs_fec_corrected_symbols_lane3_high[0x20];
1623
1624 u8 rs_fec_corrected_symbols_lane3_low[0x20];
1625
1626 u8 link_down_events[0x20];
1627
1628 u8 successful_recovery_events[0x20];
1629
Matan Barakb4ff3a32016-02-09 14:57:42 +02001630 u8 reserved_at_640[0x180];
Saeed Mahameede2816822015-05-28 22:28:40 +03001631};
1632
Gal Pressmand8dc0502016-09-27 17:04:51 +03001633struct mlx5_ifc_phys_layer_statistical_cntrs_bits {
1634 u8 time_since_last_clear_high[0x20];
1635
1636 u8 time_since_last_clear_low[0x20];
1637
1638 u8 phy_received_bits_high[0x20];
1639
1640 u8 phy_received_bits_low[0x20];
1641
1642 u8 phy_symbol_errors_high[0x20];
1643
1644 u8 phy_symbol_errors_low[0x20];
1645
1646 u8 phy_corrected_bits_high[0x20];
1647
1648 u8 phy_corrected_bits_low[0x20];
1649
1650 u8 phy_corrected_bits_lane0_high[0x20];
1651
1652 u8 phy_corrected_bits_lane0_low[0x20];
1653
1654 u8 phy_corrected_bits_lane1_high[0x20];
1655
1656 u8 phy_corrected_bits_lane1_low[0x20];
1657
1658 u8 phy_corrected_bits_lane2_high[0x20];
1659
1660 u8 phy_corrected_bits_lane2_low[0x20];
1661
1662 u8 phy_corrected_bits_lane3_high[0x20];
1663
1664 u8 phy_corrected_bits_lane3_low[0x20];
1665
1666 u8 reserved_at_200[0x5c0];
1667};
1668
Meny Yossefi1c64bf62016-02-18 18:15:00 +02001669struct mlx5_ifc_ib_port_cntrs_grp_data_layout_bits {
1670 u8 symbol_error_counter[0x10];
1671
1672 u8 link_error_recovery_counter[0x8];
1673
1674 u8 link_downed_counter[0x8];
1675
1676 u8 port_rcv_errors[0x10];
1677
1678 u8 port_rcv_remote_physical_errors[0x10];
1679
1680 u8 port_rcv_switch_relay_errors[0x10];
1681
1682 u8 port_xmit_discards[0x10];
1683
1684 u8 port_xmit_constraint_errors[0x8];
1685
1686 u8 port_rcv_constraint_errors[0x8];
1687
1688 u8 reserved_at_70[0x8];
1689
1690 u8 link_overrun_errors[0x8];
1691
1692 u8 reserved_at_80[0x10];
1693
1694 u8 vl_15_dropped[0x10];
1695
Tim Wright133bea02017-05-01 17:30:08 +01001696 u8 reserved_at_a0[0x80];
1697
1698 u8 port_xmit_wait[0x20];
Meny Yossefi1c64bf62016-02-18 18:15:00 +02001699};
1700
Saeed Mahameede2816822015-05-28 22:28:40 +03001701struct mlx5_ifc_eth_per_traffic_grp_data_layout_bits {
1702 u8 transmit_queue_high[0x20];
1703
1704 u8 transmit_queue_low[0x20];
1705
Matan Barakb4ff3a32016-02-09 14:57:42 +02001706 u8 reserved_at_40[0x780];
Saeed Mahameede2816822015-05-28 22:28:40 +03001707};
1708
1709struct mlx5_ifc_eth_per_prio_grp_data_layout_bits {
1710 u8 rx_octets_high[0x20];
1711
1712 u8 rx_octets_low[0x20];
1713
Matan Barakb4ff3a32016-02-09 14:57:42 +02001714 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001715
1716 u8 rx_frames_high[0x20];
1717
1718 u8 rx_frames_low[0x20];
1719
1720 u8 tx_octets_high[0x20];
1721
1722 u8 tx_octets_low[0x20];
1723
Matan Barakb4ff3a32016-02-09 14:57:42 +02001724 u8 reserved_at_180[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001725
1726 u8 tx_frames_high[0x20];
1727
1728 u8 tx_frames_low[0x20];
1729
1730 u8 rx_pause_high[0x20];
1731
1732 u8 rx_pause_low[0x20];
1733
1734 u8 rx_pause_duration_high[0x20];
1735
1736 u8 rx_pause_duration_low[0x20];
1737
1738 u8 tx_pause_high[0x20];
1739
1740 u8 tx_pause_low[0x20];
1741
1742 u8 tx_pause_duration_high[0x20];
1743
1744 u8 tx_pause_duration_low[0x20];
1745
1746 u8 rx_pause_transition_high[0x20];
1747
1748 u8 rx_pause_transition_low[0x20];
1749
Inbar Karmy2fcb12d2017-08-17 16:39:47 +03001750 u8 reserved_at_3c0[0x40];
1751
1752 u8 device_stall_minor_watermark_cnt_high[0x20];
1753
1754 u8 device_stall_minor_watermark_cnt_low[0x20];
1755
1756 u8 device_stall_critical_watermark_cnt_high[0x20];
1757
1758 u8 device_stall_critical_watermark_cnt_low[0x20];
1759
1760 u8 reserved_at_480[0x340];
Saeed Mahameede2816822015-05-28 22:28:40 +03001761};
1762
1763struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits {
1764 u8 port_transmit_wait_high[0x20];
1765
1766 u8 port_transmit_wait_low[0x20];
1767
Gal Pressman2dba0792017-06-18 14:56:45 +03001768 u8 reserved_at_40[0x100];
1769
1770 u8 rx_buffer_almost_full_high[0x20];
1771
1772 u8 rx_buffer_almost_full_low[0x20];
1773
1774 u8 rx_buffer_full_high[0x20];
1775
1776 u8 rx_buffer_full_low[0x20];
1777
Talat Batheesh0af51072018-05-17 11:14:18 +03001778 u8 rx_icrc_encapsulated_high[0x20];
1779
1780 u8 rx_icrc_encapsulated_low[0x20];
1781
1782 u8 reserved_at_200[0x5c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001783};
1784
1785struct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits {
1786 u8 dot3stats_alignment_errors_high[0x20];
1787
1788 u8 dot3stats_alignment_errors_low[0x20];
1789
1790 u8 dot3stats_fcs_errors_high[0x20];
1791
1792 u8 dot3stats_fcs_errors_low[0x20];
1793
1794 u8 dot3stats_single_collision_frames_high[0x20];
1795
1796 u8 dot3stats_single_collision_frames_low[0x20];
1797
1798 u8 dot3stats_multiple_collision_frames_high[0x20];
1799
1800 u8 dot3stats_multiple_collision_frames_low[0x20];
1801
1802 u8 dot3stats_sqe_test_errors_high[0x20];
1803
1804 u8 dot3stats_sqe_test_errors_low[0x20];
1805
1806 u8 dot3stats_deferred_transmissions_high[0x20];
1807
1808 u8 dot3stats_deferred_transmissions_low[0x20];
1809
1810 u8 dot3stats_late_collisions_high[0x20];
1811
1812 u8 dot3stats_late_collisions_low[0x20];
1813
1814 u8 dot3stats_excessive_collisions_high[0x20];
1815
1816 u8 dot3stats_excessive_collisions_low[0x20];
1817
1818 u8 dot3stats_internal_mac_transmit_errors_high[0x20];
1819
1820 u8 dot3stats_internal_mac_transmit_errors_low[0x20];
1821
1822 u8 dot3stats_carrier_sense_errors_high[0x20];
1823
1824 u8 dot3stats_carrier_sense_errors_low[0x20];
1825
1826 u8 dot3stats_frame_too_longs_high[0x20];
1827
1828 u8 dot3stats_frame_too_longs_low[0x20];
1829
1830 u8 dot3stats_internal_mac_receive_errors_high[0x20];
1831
1832 u8 dot3stats_internal_mac_receive_errors_low[0x20];
1833
1834 u8 dot3stats_symbol_errors_high[0x20];
1835
1836 u8 dot3stats_symbol_errors_low[0x20];
1837
1838 u8 dot3control_in_unknown_opcodes_high[0x20];
1839
1840 u8 dot3control_in_unknown_opcodes_low[0x20];
1841
1842 u8 dot3in_pause_frames_high[0x20];
1843
1844 u8 dot3in_pause_frames_low[0x20];
1845
1846 u8 dot3out_pause_frames_high[0x20];
1847
1848 u8 dot3out_pause_frames_low[0x20];
1849
Matan Barakb4ff3a32016-02-09 14:57:42 +02001850 u8 reserved_at_400[0x3c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001851};
1852
1853struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits {
1854 u8 ether_stats_drop_events_high[0x20];
1855
1856 u8 ether_stats_drop_events_low[0x20];
1857
1858 u8 ether_stats_octets_high[0x20];
1859
1860 u8 ether_stats_octets_low[0x20];
1861
1862 u8 ether_stats_pkts_high[0x20];
1863
1864 u8 ether_stats_pkts_low[0x20];
1865
1866 u8 ether_stats_broadcast_pkts_high[0x20];
1867
1868 u8 ether_stats_broadcast_pkts_low[0x20];
1869
1870 u8 ether_stats_multicast_pkts_high[0x20];
1871
1872 u8 ether_stats_multicast_pkts_low[0x20];
1873
1874 u8 ether_stats_crc_align_errors_high[0x20];
1875
1876 u8 ether_stats_crc_align_errors_low[0x20];
1877
1878 u8 ether_stats_undersize_pkts_high[0x20];
1879
1880 u8 ether_stats_undersize_pkts_low[0x20];
1881
1882 u8 ether_stats_oversize_pkts_high[0x20];
1883
1884 u8 ether_stats_oversize_pkts_low[0x20];
1885
1886 u8 ether_stats_fragments_high[0x20];
1887
1888 u8 ether_stats_fragments_low[0x20];
1889
1890 u8 ether_stats_jabbers_high[0x20];
1891
1892 u8 ether_stats_jabbers_low[0x20];
1893
1894 u8 ether_stats_collisions_high[0x20];
1895
1896 u8 ether_stats_collisions_low[0x20];
1897
1898 u8 ether_stats_pkts64octets_high[0x20];
1899
1900 u8 ether_stats_pkts64octets_low[0x20];
1901
1902 u8 ether_stats_pkts65to127octets_high[0x20];
1903
1904 u8 ether_stats_pkts65to127octets_low[0x20];
1905
1906 u8 ether_stats_pkts128to255octets_high[0x20];
1907
1908 u8 ether_stats_pkts128to255octets_low[0x20];
1909
1910 u8 ether_stats_pkts256to511octets_high[0x20];
1911
1912 u8 ether_stats_pkts256to511octets_low[0x20];
1913
1914 u8 ether_stats_pkts512to1023octets_high[0x20];
1915
1916 u8 ether_stats_pkts512to1023octets_low[0x20];
1917
1918 u8 ether_stats_pkts1024to1518octets_high[0x20];
1919
1920 u8 ether_stats_pkts1024to1518octets_low[0x20];
1921
1922 u8 ether_stats_pkts1519to2047octets_high[0x20];
1923
1924 u8 ether_stats_pkts1519to2047octets_low[0x20];
1925
1926 u8 ether_stats_pkts2048to4095octets_high[0x20];
1927
1928 u8 ether_stats_pkts2048to4095octets_low[0x20];
1929
1930 u8 ether_stats_pkts4096to8191octets_high[0x20];
1931
1932 u8 ether_stats_pkts4096to8191octets_low[0x20];
1933
1934 u8 ether_stats_pkts8192to10239octets_high[0x20];
1935
1936 u8 ether_stats_pkts8192to10239octets_low[0x20];
1937
Matan Barakb4ff3a32016-02-09 14:57:42 +02001938 u8 reserved_at_540[0x280];
Saeed Mahameede2816822015-05-28 22:28:40 +03001939};
1940
1941struct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits {
1942 u8 if_in_octets_high[0x20];
1943
1944 u8 if_in_octets_low[0x20];
1945
1946 u8 if_in_ucast_pkts_high[0x20];
1947
1948 u8 if_in_ucast_pkts_low[0x20];
1949
1950 u8 if_in_discards_high[0x20];
1951
1952 u8 if_in_discards_low[0x20];
1953
1954 u8 if_in_errors_high[0x20];
1955
1956 u8 if_in_errors_low[0x20];
1957
1958 u8 if_in_unknown_protos_high[0x20];
1959
1960 u8 if_in_unknown_protos_low[0x20];
1961
1962 u8 if_out_octets_high[0x20];
1963
1964 u8 if_out_octets_low[0x20];
1965
1966 u8 if_out_ucast_pkts_high[0x20];
1967
1968 u8 if_out_ucast_pkts_low[0x20];
1969
1970 u8 if_out_discards_high[0x20];
1971
1972 u8 if_out_discards_low[0x20];
1973
1974 u8 if_out_errors_high[0x20];
1975
1976 u8 if_out_errors_low[0x20];
1977
1978 u8 if_in_multicast_pkts_high[0x20];
1979
1980 u8 if_in_multicast_pkts_low[0x20];
1981
1982 u8 if_in_broadcast_pkts_high[0x20];
1983
1984 u8 if_in_broadcast_pkts_low[0x20];
1985
1986 u8 if_out_multicast_pkts_high[0x20];
1987
1988 u8 if_out_multicast_pkts_low[0x20];
1989
1990 u8 if_out_broadcast_pkts_high[0x20];
1991
1992 u8 if_out_broadcast_pkts_low[0x20];
1993
Matan Barakb4ff3a32016-02-09 14:57:42 +02001994 u8 reserved_at_340[0x480];
Saeed Mahameede2816822015-05-28 22:28:40 +03001995};
1996
1997struct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits {
1998 u8 a_frames_transmitted_ok_high[0x20];
1999
2000 u8 a_frames_transmitted_ok_low[0x20];
2001
2002 u8 a_frames_received_ok_high[0x20];
2003
2004 u8 a_frames_received_ok_low[0x20];
2005
2006 u8 a_frame_check_sequence_errors_high[0x20];
2007
2008 u8 a_frame_check_sequence_errors_low[0x20];
2009
2010 u8 a_alignment_errors_high[0x20];
2011
2012 u8 a_alignment_errors_low[0x20];
2013
2014 u8 a_octets_transmitted_ok_high[0x20];
2015
2016 u8 a_octets_transmitted_ok_low[0x20];
2017
2018 u8 a_octets_received_ok_high[0x20];
2019
2020 u8 a_octets_received_ok_low[0x20];
2021
2022 u8 a_multicast_frames_xmitted_ok_high[0x20];
2023
2024 u8 a_multicast_frames_xmitted_ok_low[0x20];
2025
2026 u8 a_broadcast_frames_xmitted_ok_high[0x20];
2027
2028 u8 a_broadcast_frames_xmitted_ok_low[0x20];
2029
2030 u8 a_multicast_frames_received_ok_high[0x20];
2031
2032 u8 a_multicast_frames_received_ok_low[0x20];
2033
2034 u8 a_broadcast_frames_received_ok_high[0x20];
2035
2036 u8 a_broadcast_frames_received_ok_low[0x20];
2037
2038 u8 a_in_range_length_errors_high[0x20];
2039
2040 u8 a_in_range_length_errors_low[0x20];
2041
2042 u8 a_out_of_range_length_field_high[0x20];
2043
2044 u8 a_out_of_range_length_field_low[0x20];
2045
2046 u8 a_frame_too_long_errors_high[0x20];
2047
2048 u8 a_frame_too_long_errors_low[0x20];
2049
2050 u8 a_symbol_error_during_carrier_high[0x20];
2051
2052 u8 a_symbol_error_during_carrier_low[0x20];
2053
2054 u8 a_mac_control_frames_transmitted_high[0x20];
2055
2056 u8 a_mac_control_frames_transmitted_low[0x20];
2057
2058 u8 a_mac_control_frames_received_high[0x20];
2059
2060 u8 a_mac_control_frames_received_low[0x20];
2061
2062 u8 a_unsupported_opcodes_received_high[0x20];
2063
2064 u8 a_unsupported_opcodes_received_low[0x20];
2065
2066 u8 a_pause_mac_ctrl_frames_received_high[0x20];
2067
2068 u8 a_pause_mac_ctrl_frames_received_low[0x20];
2069
2070 u8 a_pause_mac_ctrl_frames_transmitted_high[0x20];
2071
2072 u8 a_pause_mac_ctrl_frames_transmitted_low[0x20];
2073
Matan Barakb4ff3a32016-02-09 14:57:42 +02002074 u8 reserved_at_4c0[0x300];
Saeed Mahameede2816822015-05-28 22:28:40 +03002075};
2076
Gal Pressman8ed1a632016-11-17 13:46:01 +02002077struct mlx5_ifc_pcie_perf_cntrs_grp_data_layout_bits {
2078 u8 life_time_counter_high[0x20];
2079
2080 u8 life_time_counter_low[0x20];
2081
2082 u8 rx_errors[0x20];
2083
2084 u8 tx_errors[0x20];
2085
2086 u8 l0_to_recovery_eieos[0x20];
2087
2088 u8 l0_to_recovery_ts[0x20];
2089
2090 u8 l0_to_recovery_framing[0x20];
2091
2092 u8 l0_to_recovery_retrain[0x20];
2093
2094 u8 crc_error_dllp[0x20];
2095
2096 u8 crc_error_tlp[0x20];
2097
Eran Ben Elishaefae7f72017-05-12 02:47:02 +03002098 u8 tx_overflow_buffer_pkt_high[0x20];
2099
2100 u8 tx_overflow_buffer_pkt_low[0x20];
Gal Pressman5405fa22017-06-15 18:29:23 +03002101
2102 u8 outbound_stalled_reads[0x20];
2103
2104 u8 outbound_stalled_writes[0x20];
2105
2106 u8 outbound_stalled_reads_events[0x20];
2107
2108 u8 outbound_stalled_writes_events[0x20];
2109
2110 u8 reserved_at_200[0x5c0];
Gal Pressman8ed1a632016-11-17 13:46:01 +02002111};
2112
Saeed Mahameede2816822015-05-28 22:28:40 +03002113struct mlx5_ifc_cmd_inter_comp_event_bits {
2114 u8 command_completion_vector[0x20];
2115
Matan Barakb4ff3a32016-02-09 14:57:42 +02002116 u8 reserved_at_20[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002117};
2118
2119struct mlx5_ifc_stall_vl_event_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002120 u8 reserved_at_0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002121 u8 port_num[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002122 u8 reserved_at_19[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002123 u8 vl[0x4];
2124
Matan Barakb4ff3a32016-02-09 14:57:42 +02002125 u8 reserved_at_20[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002126};
2127
2128struct mlx5_ifc_db_bf_congestion_event_bits {
2129 u8 event_subtype[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002130 u8 reserved_at_8[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002131 u8 congestion_level[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002132 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002133
Matan Barakb4ff3a32016-02-09 14:57:42 +02002134 u8 reserved_at_20[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002135};
2136
2137struct mlx5_ifc_gpio_event_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002138 u8 reserved_at_0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03002139
2140 u8 gpio_event_hi[0x20];
2141
2142 u8 gpio_event_lo[0x20];
2143
Matan Barakb4ff3a32016-02-09 14:57:42 +02002144 u8 reserved_at_a0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002145};
2146
2147struct mlx5_ifc_port_state_change_event_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002148 u8 reserved_at_0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002149
2150 u8 port_num[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002151 u8 reserved_at_44[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03002152
Matan Barakb4ff3a32016-02-09 14:57:42 +02002153 u8 reserved_at_60[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03002154};
2155
2156struct mlx5_ifc_dropped_packet_logged_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002157 u8 reserved_at_0[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002158};
2159
2160enum {
2161 MLX5_CQ_ERROR_SYNDROME_CQ_OVERRUN = 0x1,
2162 MLX5_CQ_ERROR_SYNDROME_CQ_ACCESS_VIOLATION_ERROR = 0x2,
2163};
2164
2165struct mlx5_ifc_cq_error_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002166 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002167 u8 cqn[0x18];
2168
Matan Barakb4ff3a32016-02-09 14:57:42 +02002169 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002170
Matan Barakb4ff3a32016-02-09 14:57:42 +02002171 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002172 u8 syndrome[0x8];
2173
Matan Barakb4ff3a32016-02-09 14:57:42 +02002174 u8 reserved_at_60[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03002175};
2176
2177struct mlx5_ifc_rdma_page_fault_event_bits {
2178 u8 bytes_committed[0x20];
2179
2180 u8 r_key[0x20];
2181
Matan Barakb4ff3a32016-02-09 14:57:42 +02002182 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002183 u8 packet_len[0x10];
2184
2185 u8 rdma_op_len[0x20];
2186
2187 u8 rdma_va[0x40];
2188
Matan Barakb4ff3a32016-02-09 14:57:42 +02002189 u8 reserved_at_c0[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03002190 u8 rdma[0x1];
2191 u8 write[0x1];
2192 u8 requestor[0x1];
2193 u8 qp_number[0x18];
2194};
2195
2196struct mlx5_ifc_wqe_associated_page_fault_event_bits {
2197 u8 bytes_committed[0x20];
2198
Matan Barakb4ff3a32016-02-09 14:57:42 +02002199 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002200 u8 wqe_index[0x10];
2201
Matan Barakb4ff3a32016-02-09 14:57:42 +02002202 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002203 u8 len[0x10];
2204
Matan Barakb4ff3a32016-02-09 14:57:42 +02002205 u8 reserved_at_60[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03002206
Matan Barakb4ff3a32016-02-09 14:57:42 +02002207 u8 reserved_at_c0[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03002208 u8 rdma[0x1];
2209 u8 write_read[0x1];
2210 u8 requestor[0x1];
2211 u8 qpn[0x18];
2212};
2213
2214struct mlx5_ifc_qp_events_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002215 u8 reserved_at_0[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002216
2217 u8 type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002218 u8 reserved_at_a8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002219
Matan Barakb4ff3a32016-02-09 14:57:42 +02002220 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002221 u8 qpn_rqn_sqn[0x18];
2222};
2223
2224struct mlx5_ifc_dct_events_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002225 u8 reserved_at_0[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002226
Matan Barakb4ff3a32016-02-09 14:57:42 +02002227 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002228 u8 dct_number[0x18];
2229};
2230
2231struct mlx5_ifc_comp_event_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002232 u8 reserved_at_0[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002233
Matan Barakb4ff3a32016-02-09 14:57:42 +02002234 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002235 u8 cq_number[0x18];
2236};
2237
2238enum {
2239 MLX5_QPC_STATE_RST = 0x0,
2240 MLX5_QPC_STATE_INIT = 0x1,
2241 MLX5_QPC_STATE_RTR = 0x2,
2242 MLX5_QPC_STATE_RTS = 0x3,
2243 MLX5_QPC_STATE_SQER = 0x4,
2244 MLX5_QPC_STATE_ERR = 0x6,
2245 MLX5_QPC_STATE_SQD = 0x7,
2246 MLX5_QPC_STATE_SUSPENDED = 0x9,
2247};
2248
2249enum {
2250 MLX5_QPC_ST_RC = 0x0,
2251 MLX5_QPC_ST_UC = 0x1,
2252 MLX5_QPC_ST_UD = 0x2,
2253 MLX5_QPC_ST_XRC = 0x3,
2254 MLX5_QPC_ST_DCI = 0x5,
2255 MLX5_QPC_ST_QP0 = 0x7,
2256 MLX5_QPC_ST_QP1 = 0x8,
2257 MLX5_QPC_ST_RAW_DATAGRAM = 0x9,
2258 MLX5_QPC_ST_REG_UMR = 0xc,
2259};
2260
2261enum {
2262 MLX5_QPC_PM_STATE_ARMED = 0x0,
2263 MLX5_QPC_PM_STATE_REARM = 0x1,
2264 MLX5_QPC_PM_STATE_RESERVED = 0x2,
2265 MLX5_QPC_PM_STATE_MIGRATED = 0x3,
2266};
2267
2268enum {
Artemy Kovalyov6e446362017-08-15 11:59:02 +03002269 MLX5_QPC_OFFLOAD_TYPE_RNDV = 0x1,
2270};
2271
2272enum {
Saeed Mahameede2816822015-05-28 22:28:40 +03002273 MLX5_QPC_END_PADDING_MODE_SCATTER_AS_IS = 0x0,
2274 MLX5_QPC_END_PADDING_MODE_PAD_TO_CACHE_LINE_ALIGNMENT = 0x1,
2275};
2276
2277enum {
2278 MLX5_QPC_MTU_256_BYTES = 0x1,
2279 MLX5_QPC_MTU_512_BYTES = 0x2,
2280 MLX5_QPC_MTU_1K_BYTES = 0x3,
2281 MLX5_QPC_MTU_2K_BYTES = 0x4,
2282 MLX5_QPC_MTU_4K_BYTES = 0x5,
2283 MLX5_QPC_MTU_RAW_ETHERNET_QP = 0x7,
2284};
2285
2286enum {
2287 MLX5_QPC_ATOMIC_MODE_IB_SPEC = 0x1,
2288 MLX5_QPC_ATOMIC_MODE_ONLY_8B = 0x2,
2289 MLX5_QPC_ATOMIC_MODE_UP_TO_8B = 0x3,
2290 MLX5_QPC_ATOMIC_MODE_UP_TO_16B = 0x4,
2291 MLX5_QPC_ATOMIC_MODE_UP_TO_32B = 0x5,
2292 MLX5_QPC_ATOMIC_MODE_UP_TO_64B = 0x6,
2293 MLX5_QPC_ATOMIC_MODE_UP_TO_128B = 0x7,
2294 MLX5_QPC_ATOMIC_MODE_UP_TO_256B = 0x8,
2295};
2296
2297enum {
2298 MLX5_QPC_CS_REQ_DISABLE = 0x0,
2299 MLX5_QPC_CS_REQ_UP_TO_32B = 0x11,
2300 MLX5_QPC_CS_REQ_UP_TO_64B = 0x22,
2301};
2302
2303enum {
2304 MLX5_QPC_CS_RES_DISABLE = 0x0,
2305 MLX5_QPC_CS_RES_UP_TO_32B = 0x1,
2306 MLX5_QPC_CS_RES_UP_TO_64B = 0x2,
2307};
2308
2309struct mlx5_ifc_qpc_bits {
2310 u8 state[0x4];
Aviv Heller84df61e2016-05-10 13:47:50 +03002311 u8 lag_tx_port_affinity[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002312 u8 st[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002313 u8 reserved_at_10[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002314 u8 pm_state[0x2];
Danit Goldberg3fd3c802018-11-30 13:22:04 +02002315 u8 reserved_at_15[0x1];
2316 u8 req_e2e_credit_mode[0x2];
Artemy Kovalyov6e446362017-08-15 11:59:02 +03002317 u8 offload_type[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002318 u8 end_padding_mode[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002319 u8 reserved_at_1e[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002320
2321 u8 wq_signature[0x1];
2322 u8 block_lb_mc[0x1];
2323 u8 atomic_like_write_en[0x1];
2324 u8 latency_sensitive[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002325 u8 reserved_at_24[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002326 u8 drain_sigerr[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002327 u8 reserved_at_26[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002328 u8 pd[0x18];
2329
2330 u8 mtu[0x3];
2331 u8 log_msg_max[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002332 u8 reserved_at_48[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002333 u8 log_rq_size[0x4];
2334 u8 log_rq_stride[0x3];
2335 u8 no_sq[0x1];
2336 u8 log_sq_size[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002337 u8 reserved_at_55[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03002338 u8 rlky[0x1];
Erez Shitrit1015c2e2016-02-21 16:27:16 +02002339 u8 ulp_stateless_offload_mode[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002340
2341 u8 counter_set_id[0x8];
2342 u8 uar_page[0x18];
2343
Matan Barakb4ff3a32016-02-09 14:57:42 +02002344 u8 reserved_at_80[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002345 u8 user_index[0x18];
2346
Matan Barakb4ff3a32016-02-09 14:57:42 +02002347 u8 reserved_at_a0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002348 u8 log_page_size[0x5];
2349 u8 remote_qpn[0x18];
2350
2351 struct mlx5_ifc_ads_bits primary_address_path;
2352
2353 struct mlx5_ifc_ads_bits secondary_address_path;
2354
2355 u8 log_ack_req_freq[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002356 u8 reserved_at_384[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002357 u8 log_sra_max[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002358 u8 reserved_at_38b[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002359 u8 retry_count[0x3];
2360 u8 rnr_retry[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002361 u8 reserved_at_393[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002362 u8 fre[0x1];
2363 u8 cur_rnr_retry[0x3];
2364 u8 cur_retry_count[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002365 u8 reserved_at_39b[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03002366
Matan Barakb4ff3a32016-02-09 14:57:42 +02002367 u8 reserved_at_3a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002368
Matan Barakb4ff3a32016-02-09 14:57:42 +02002369 u8 reserved_at_3c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002370 u8 next_send_psn[0x18];
2371
Matan Barakb4ff3a32016-02-09 14:57:42 +02002372 u8 reserved_at_3e0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002373 u8 cqn_snd[0x18];
2374
Saeed Mahameed09a7d9e2016-07-19 01:17:59 +03002375 u8 reserved_at_400[0x8];
2376 u8 deth_sqpn[0x18];
2377
2378 u8 reserved_at_420[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002379
Matan Barakb4ff3a32016-02-09 14:57:42 +02002380 u8 reserved_at_440[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002381 u8 last_acked_psn[0x18];
2382
Matan Barakb4ff3a32016-02-09 14:57:42 +02002383 u8 reserved_at_460[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002384 u8 ssn[0x18];
2385
Matan Barakb4ff3a32016-02-09 14:57:42 +02002386 u8 reserved_at_480[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002387 u8 log_rra_max[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002388 u8 reserved_at_48b[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002389 u8 atomic_mode[0x4];
2390 u8 rre[0x1];
2391 u8 rwe[0x1];
2392 u8 rae[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002393 u8 reserved_at_493[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002394 u8 page_offset[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002395 u8 reserved_at_49a[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002396 u8 cd_slave_receive[0x1];
2397 u8 cd_slave_send[0x1];
2398 u8 cd_master[0x1];
2399
Matan Barakb4ff3a32016-02-09 14:57:42 +02002400 u8 reserved_at_4a0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002401 u8 min_rnr_nak[0x5];
2402 u8 next_rcv_psn[0x18];
2403
Matan Barakb4ff3a32016-02-09 14:57:42 +02002404 u8 reserved_at_4c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002405 u8 xrcd[0x18];
2406
Matan Barakb4ff3a32016-02-09 14:57:42 +02002407 u8 reserved_at_4e0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002408 u8 cqn_rcv[0x18];
2409
2410 u8 dbr_addr[0x40];
2411
2412 u8 q_key[0x20];
2413
Matan Barakb4ff3a32016-02-09 14:57:42 +02002414 u8 reserved_at_560[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03002415 u8 rq_type[0x3];
Saeed Mahameed74862162016-06-09 15:11:34 +03002416 u8 srqn_rmpn_xrqn[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002417
Matan Barakb4ff3a32016-02-09 14:57:42 +02002418 u8 reserved_at_580[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002419 u8 rmsn[0x18];
2420
2421 u8 hw_sq_wqebb_counter[0x10];
2422 u8 sw_sq_wqebb_counter[0x10];
2423
2424 u8 hw_rq_counter[0x20];
2425
2426 u8 sw_rq_counter[0x20];
2427
Matan Barakb4ff3a32016-02-09 14:57:42 +02002428 u8 reserved_at_600[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002429
Matan Barakb4ff3a32016-02-09 14:57:42 +02002430 u8 reserved_at_620[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03002431 u8 cgs[0x1];
2432 u8 cs_req[0x8];
2433 u8 cs_res[0x8];
2434
2435 u8 dc_access_key[0x40];
2436
Leon Romanovskybd371972018-09-20 21:35:26 +03002437 u8 reserved_at_680[0x3];
2438 u8 dbr_umem_valid[0x1];
2439
2440 u8 reserved_at_684[0xbc];
Saeed Mahameede2816822015-05-28 22:28:40 +03002441};
2442
2443struct mlx5_ifc_roce_addr_layout_bits {
2444 u8 source_l3_address[16][0x8];
2445
Matan Barakb4ff3a32016-02-09 14:57:42 +02002446 u8 reserved_at_80[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002447 u8 vlan_valid[0x1];
2448 u8 vlan_id[0xc];
2449 u8 source_mac_47_32[0x10];
2450
2451 u8 source_mac_31_0[0x20];
2452
Matan Barakb4ff3a32016-02-09 14:57:42 +02002453 u8 reserved_at_c0[0x14];
Saeed Mahameede2816822015-05-28 22:28:40 +03002454 u8 roce_l3_type[0x4];
2455 u8 roce_version[0x8];
2456
Matan Barakb4ff3a32016-02-09 14:57:42 +02002457 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002458};
2459
2460union mlx5_ifc_hca_cap_union_bits {
2461 struct mlx5_ifc_cmd_hca_cap_bits cmd_hca_cap;
2462 struct mlx5_ifc_odp_cap_bits odp_cap;
2463 struct mlx5_ifc_atomic_caps_bits atomic_caps;
2464 struct mlx5_ifc_roce_cap_bits roce_cap;
2465 struct mlx5_ifc_per_protocol_networking_offload_caps_bits per_protocol_networking_offload_caps;
2466 struct mlx5_ifc_flow_table_nic_cap_bits flow_table_nic_cap;
Saeed Mahameed495716b2015-12-01 18:03:19 +02002467 struct mlx5_ifc_flow_table_eswitch_cap_bits flow_table_eswitch_cap;
Saeed Mahameedd6666752015-12-01 18:03:22 +02002468 struct mlx5_ifc_e_switch_cap_bits e_switch_cap;
Sagi Grimberg3f0393a2016-02-23 10:25:23 +02002469 struct mlx5_ifc_vector_calc_cap_bits vector_calc_cap;
Saeed Mahameed74862162016-06-09 15:11:34 +03002470 struct mlx5_ifc_qos_cap_bits qos_cap;
Ilan Tayarie29341f2017-03-13 20:05:45 +02002471 struct mlx5_ifc_fpga_cap_bits fpga_cap;
Matan Barakb4ff3a32016-02-09 14:57:42 +02002472 u8 reserved_at_0[0x8000];
Saeed Mahameede2816822015-05-28 22:28:40 +03002473};
2474
2475enum {
2476 MLX5_FLOW_CONTEXT_ACTION_ALLOW = 0x1,
2477 MLX5_FLOW_CONTEXT_ACTION_DROP = 0x2,
2478 MLX5_FLOW_CONTEXT_ACTION_FWD_DEST = 0x4,
Amir Vadai9dc0b282016-05-13 12:55:39 +00002479 MLX5_FLOW_CONTEXT_ACTION_COUNT = 0x8,
Mark Bloch60786f02018-08-28 14:18:46 +03002480 MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT = 0x10,
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03002481 MLX5_FLOW_CONTEXT_ACTION_DECAP = 0x20,
Or Gerlitz2a69cb92017-01-19 19:31:25 +02002482 MLX5_FLOW_CONTEXT_ACTION_MOD_HDR = 0x40,
Or Gerlitz0c068972018-01-28 20:14:20 +02002483 MLX5_FLOW_CONTEXT_ACTION_VLAN_POP = 0x80,
2484 MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH = 0x100,
Jianbo Liu8da6fe22018-07-16 18:35:32 -07002485 MLX5_FLOW_CONTEXT_ACTION_VLAN_POP_2 = 0x400,
2486 MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH_2 = 0x800,
Or Gerlitz0c068972018-01-28 20:14:20 +02002487};
2488
2489struct mlx5_ifc_vlan_bits {
2490 u8 ethtype[0x10];
2491 u8 prio[0x3];
2492 u8 cfi[0x1];
2493 u8 vid[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03002494};
2495
2496struct mlx5_ifc_flow_context_bits {
Or Gerlitz0c068972018-01-28 20:14:20 +02002497 struct mlx5_ifc_vlan_bits push_vlan;
Saeed Mahameede2816822015-05-28 22:28:40 +03002498
2499 u8 group_id[0x20];
2500
Matan Barakb4ff3a32016-02-09 14:57:42 +02002501 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002502 u8 flow_tag[0x18];
2503
Matan Barakb4ff3a32016-02-09 14:57:42 +02002504 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002505 u8 action[0x10];
2506
Eli Britstein1b115492018-12-10 13:15:14 -08002507 u8 extended_destination[0x1];
2508 u8 reserved_at_80[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03002509 u8 destination_list_size[0x18];
2510
Amir Vadai9dc0b282016-05-13 12:55:39 +00002511 u8 reserved_at_a0[0x8];
2512 u8 flow_counter_list_size[0x18];
2513
Mark Bloch60786f02018-08-28 14:18:46 +03002514 u8 packet_reformat_id[0x20];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03002515
Or Gerlitz2a69cb92017-01-19 19:31:25 +02002516 u8 modify_header_id[0x20];
2517
Jianbo Liu8da6fe22018-07-16 18:35:32 -07002518 struct mlx5_ifc_vlan_bits push_vlan_2;
2519
2520 u8 reserved_at_120[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002521
2522 struct mlx5_ifc_fte_match_param_bits match_value;
2523
Matan Barakb4ff3a32016-02-09 14:57:42 +02002524 u8 reserved_at_1200[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03002525
Amir Vadai9dc0b282016-05-13 12:55:39 +00002526 union mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits destination[0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002527};
2528
2529enum {
2530 MLX5_XRC_SRQC_STATE_GOOD = 0x0,
2531 MLX5_XRC_SRQC_STATE_ERROR = 0x1,
2532};
2533
2534struct mlx5_ifc_xrc_srqc_bits {
2535 u8 state[0x4];
2536 u8 log_xrc_srq_size[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002537 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002538
2539 u8 wq_signature[0x1];
2540 u8 cont_srq[0x1];
Yishai Hadas99b77fe2018-10-31 12:20:28 +02002541 u8 reserved_at_22[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002542 u8 rlky[0x1];
2543 u8 basic_cyclic_rcv_wqe[0x1];
2544 u8 log_rq_stride[0x3];
2545 u8 xrcd[0x18];
2546
2547 u8 page_offset[0x6];
Yishai Hadas99b77fe2018-10-31 12:20:28 +02002548 u8 reserved_at_46[0x1];
2549 u8 dbr_umem_valid[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002550 u8 cqn[0x18];
2551
Matan Barakb4ff3a32016-02-09 14:57:42 +02002552 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002553
2554 u8 user_index_equal_xrc_srqn[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002555 u8 reserved_at_81[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002556 u8 log_page_size[0x6];
2557 u8 user_index[0x18];
2558
Matan Barakb4ff3a32016-02-09 14:57:42 +02002559 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002560
Matan Barakb4ff3a32016-02-09 14:57:42 +02002561 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002562 u8 pd[0x18];
2563
2564 u8 lwm[0x10];
2565 u8 wqe_cnt[0x10];
2566
Matan Barakb4ff3a32016-02-09 14:57:42 +02002567 u8 reserved_at_100[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002568
2569 u8 db_record_addr_h[0x20];
2570
2571 u8 db_record_addr_l[0x1e];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002572 u8 reserved_at_17e[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002573
Matan Barakb4ff3a32016-02-09 14:57:42 +02002574 u8 reserved_at_180[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03002575};
2576
Moshe Shemesh61c5b5c2018-01-07 16:45:27 +02002577struct mlx5_ifc_vnic_diagnostic_statistics_bits {
2578 u8 counter_error_queues[0x20];
2579
2580 u8 total_error_queues[0x20];
2581
2582 u8 send_queue_priority_update_flow[0x20];
2583
2584 u8 reserved_at_60[0x20];
2585
2586 u8 nic_receive_steering_discard[0x40];
2587
2588 u8 receive_discard_vport_down[0x40];
2589
2590 u8 transmit_discard_vport_down[0x40];
2591
2592 u8 reserved_at_140[0xec0];
2593};
2594
Saeed Mahameede2816822015-05-28 22:28:40 +03002595struct mlx5_ifc_traffic_counter_bits {
2596 u8 packets[0x40];
2597
2598 u8 octets[0x40];
2599};
2600
2601struct mlx5_ifc_tisc_bits {
Aviv Heller84df61e2016-05-10 13:47:50 +03002602 u8 strict_lag_tx_port_affinity[0x1];
2603 u8 reserved_at_1[0x3];
2604 u8 lag_tx_port_affinity[0x04];
2605
2606 u8 reserved_at_8[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002607 u8 prio[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002608 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002609
Matan Barakb4ff3a32016-02-09 14:57:42 +02002610 u8 reserved_at_20[0x100];
Saeed Mahameede2816822015-05-28 22:28:40 +03002611
Matan Barakb4ff3a32016-02-09 14:57:42 +02002612 u8 reserved_at_120[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002613 u8 transport_domain[0x18];
2614
Erez Shitrit500a3d02017-04-13 06:36:51 +03002615 u8 reserved_at_140[0x8];
2616 u8 underlay_qpn[0x18];
2617 u8 reserved_at_160[0x3a0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002618};
2619
2620enum {
2621 MLX5_TIRC_DISP_TYPE_DIRECT = 0x0,
2622 MLX5_TIRC_DISP_TYPE_INDIRECT = 0x1,
2623};
2624
2625enum {
2626 MLX5_TIRC_LRO_ENABLE_MASK_IPV4_LRO = 0x1,
2627 MLX5_TIRC_LRO_ENABLE_MASK_IPV6_LRO = 0x2,
2628};
2629
2630enum {
Saeed Mahameed2be69672015-07-23 23:35:56 +03002631 MLX5_RX_HASH_FN_NONE = 0x0,
2632 MLX5_RX_HASH_FN_INVERTED_XOR8 = 0x1,
2633 MLX5_RX_HASH_FN_TOEPLITZ = 0x2,
Saeed Mahameede2816822015-05-28 22:28:40 +03002634};
2635
2636enum {
Mark Bloch5d773ff2018-09-17 13:30:46 +03002637 MLX5_TIRC_SELF_LB_BLOCK_BLOCK_UNICAST = 0x1,
2638 MLX5_TIRC_SELF_LB_BLOCK_BLOCK_MULTICAST = 0x2,
Saeed Mahameede2816822015-05-28 22:28:40 +03002639};
2640
2641struct mlx5_ifc_tirc_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002642 u8 reserved_at_0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002643
2644 u8 disp_type[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002645 u8 reserved_at_24[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03002646
Matan Barakb4ff3a32016-02-09 14:57:42 +02002647 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002648
Matan Barakb4ff3a32016-02-09 14:57:42 +02002649 u8 reserved_at_80[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002650 u8 lro_timeout_period_usecs[0x10];
2651 u8 lro_enable_mask[0x4];
2652 u8 lro_max_ip_payload_size[0x8];
2653
Matan Barakb4ff3a32016-02-09 14:57:42 +02002654 u8 reserved_at_a0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002655
Matan Barakb4ff3a32016-02-09 14:57:42 +02002656 u8 reserved_at_e0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002657 u8 inline_rqn[0x18];
2658
2659 u8 rx_hash_symmetric[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002660 u8 reserved_at_101[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002661 u8 tunneled_offload_en[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002662 u8 reserved_at_103[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03002663 u8 indirect_table[0x18];
2664
2665 u8 rx_hash_fn[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002666 u8 reserved_at_124[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002667 u8 self_lb_block[0x2];
2668 u8 transport_domain[0x18];
2669
2670 u8 rx_hash_toeplitz_key[10][0x20];
2671
2672 struct mlx5_ifc_rx_hash_field_select_bits rx_hash_field_selector_outer;
2673
2674 struct mlx5_ifc_rx_hash_field_select_bits rx_hash_field_selector_inner;
2675
Matan Barakb4ff3a32016-02-09 14:57:42 +02002676 u8 reserved_at_2c0[0x4c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002677};
2678
2679enum {
2680 MLX5_SRQC_STATE_GOOD = 0x0,
2681 MLX5_SRQC_STATE_ERROR = 0x1,
2682};
2683
2684struct mlx5_ifc_srqc_bits {
2685 u8 state[0x4];
2686 u8 log_srq_size[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002687 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002688
2689 u8 wq_signature[0x1];
2690 u8 cont_srq[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002691 u8 reserved_at_22[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002692 u8 rlky[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002693 u8 reserved_at_24[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002694 u8 log_rq_stride[0x3];
2695 u8 xrcd[0x18];
2696
2697 u8 page_offset[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002698 u8 reserved_at_46[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002699 u8 cqn[0x18];
2700
Matan Barakb4ff3a32016-02-09 14:57:42 +02002701 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002702
Matan Barakb4ff3a32016-02-09 14:57:42 +02002703 u8 reserved_at_80[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002704 u8 log_page_size[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002705 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002706
Matan Barakb4ff3a32016-02-09 14:57:42 +02002707 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002708
Matan Barakb4ff3a32016-02-09 14:57:42 +02002709 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002710 u8 pd[0x18];
2711
2712 u8 lwm[0x10];
2713 u8 wqe_cnt[0x10];
2714
Matan Barakb4ff3a32016-02-09 14:57:42 +02002715 u8 reserved_at_100[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002716
Haggai Abramonvsky01949d02015-06-04 19:30:38 +03002717 u8 dbr_addr[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002718
Matan Barakb4ff3a32016-02-09 14:57:42 +02002719 u8 reserved_at_180[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03002720};
2721
2722enum {
2723 MLX5_SQC_STATE_RST = 0x0,
2724 MLX5_SQC_STATE_RDY = 0x1,
2725 MLX5_SQC_STATE_ERR = 0x3,
2726};
2727
2728struct mlx5_ifc_sqc_bits {
2729 u8 rlky[0x1];
2730 u8 cd_master[0x1];
2731 u8 fre[0x1];
2732 u8 flush_in_error_en[0x1];
Bodong Wang795b6092017-08-17 15:52:34 +03002733 u8 allow_multi_pkt_send_wqe[0x1];
Hadar Hen Zioncff92d72016-07-24 16:12:40 +03002734 u8 min_wqe_inline_mode[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002735 u8 state[0x4];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03002736 u8 reg_umr[0x1];
Ilan Tayari547eede2017-04-18 16:04:28 +03002737 u8 allow_swp[0x1];
Or Gerlitz40817cd2017-06-25 12:38:45 +03002738 u8 hairpin[0x1];
2739 u8 reserved_at_f[0x11];
Saeed Mahameede2816822015-05-28 22:28:40 +03002740
Matan Barakb4ff3a32016-02-09 14:57:42 +02002741 u8 reserved_at_20[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002742 u8 user_index[0x18];
2743
Matan Barakb4ff3a32016-02-09 14:57:42 +02002744 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002745 u8 cqn[0x18];
2746
Or Gerlitz40817cd2017-06-25 12:38:45 +03002747 u8 reserved_at_60[0x8];
2748 u8 hairpin_peer_rq[0x18];
2749
2750 u8 reserved_at_80[0x10];
2751 u8 hairpin_peer_vhca[0x10];
2752
2753 u8 reserved_at_a0[0x50];
Saeed Mahameede2816822015-05-28 22:28:40 +03002754
Saeed Mahameed74862162016-06-09 15:11:34 +03002755 u8 packet_pacing_rate_limit_index[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002756 u8 tis_lst_sz[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002757 u8 reserved_at_110[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002758
Matan Barakb4ff3a32016-02-09 14:57:42 +02002759 u8 reserved_at_120[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002760
Matan Barakb4ff3a32016-02-09 14:57:42 +02002761 u8 reserved_at_160[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002762 u8 tis_num_0[0x18];
2763
2764 struct mlx5_ifc_wq_bits wq;
2765};
2766
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03002767enum {
2768 SCHEDULING_CONTEXT_ELEMENT_TYPE_TSAR = 0x0,
2769 SCHEDULING_CONTEXT_ELEMENT_TYPE_VPORT = 0x1,
2770 SCHEDULING_CONTEXT_ELEMENT_TYPE_VPORT_TC = 0x2,
2771 SCHEDULING_CONTEXT_ELEMENT_TYPE_PARA_VPORT_TC = 0x3,
2772};
2773
2774struct mlx5_ifc_scheduling_context_bits {
2775 u8 element_type[0x8];
2776 u8 reserved_at_8[0x18];
2777
2778 u8 element_attributes[0x20];
2779
2780 u8 parent_element_id[0x20];
2781
2782 u8 reserved_at_60[0x40];
2783
2784 u8 bw_share[0x20];
2785
2786 u8 max_average_bw[0x20];
2787
2788 u8 reserved_at_e0[0x120];
2789};
2790
Saeed Mahameede2816822015-05-28 22:28:40 +03002791struct mlx5_ifc_rqtc_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002792 u8 reserved_at_0[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002793
Matan Barakb4ff3a32016-02-09 14:57:42 +02002794 u8 reserved_at_a0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002795 u8 rqt_max_size[0x10];
2796
Matan Barakb4ff3a32016-02-09 14:57:42 +02002797 u8 reserved_at_c0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002798 u8 rqt_actual_size[0x10];
2799
Matan Barakb4ff3a32016-02-09 14:57:42 +02002800 u8 reserved_at_e0[0x6a0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002801
2802 struct mlx5_ifc_rq_num_bits rq_num[0];
2803};
2804
2805enum {
2806 MLX5_RQC_MEM_RQ_TYPE_MEMORY_RQ_INLINE = 0x0,
2807 MLX5_RQC_MEM_RQ_TYPE_MEMORY_RQ_RMP = 0x1,
2808};
2809
2810enum {
2811 MLX5_RQC_STATE_RST = 0x0,
2812 MLX5_RQC_STATE_RDY = 0x1,
2813 MLX5_RQC_STATE_ERR = 0x3,
2814};
2815
2816struct mlx5_ifc_rqc_bits {
2817 u8 rlky[0x1];
Maor Gottlieb03404e82017-05-30 10:29:13 +03002818 u8 delay_drop_en[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03002819 u8 scatter_fcs[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002820 u8 vsd[0x1];
2821 u8 mem_rq_type[0x4];
2822 u8 state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002823 u8 reserved_at_c[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002824 u8 flush_in_error_en[0x1];
Or Gerlitz40817cd2017-06-25 12:38:45 +03002825 u8 hairpin[0x1];
2826 u8 reserved_at_f[0x11];
Saeed Mahameede2816822015-05-28 22:28:40 +03002827
Matan Barakb4ff3a32016-02-09 14:57:42 +02002828 u8 reserved_at_20[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002829 u8 user_index[0x18];
2830
Matan Barakb4ff3a32016-02-09 14:57:42 +02002831 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002832 u8 cqn[0x18];
2833
2834 u8 counter_set_id[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002835 u8 reserved_at_68[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002836
Matan Barakb4ff3a32016-02-09 14:57:42 +02002837 u8 reserved_at_80[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002838 u8 rmpn[0x18];
2839
Or Gerlitz40817cd2017-06-25 12:38:45 +03002840 u8 reserved_at_a0[0x8];
2841 u8 hairpin_peer_sq[0x18];
2842
2843 u8 reserved_at_c0[0x10];
2844 u8 hairpin_peer_vhca[0x10];
2845
2846 u8 reserved_at_e0[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002847
2848 struct mlx5_ifc_wq_bits wq;
2849};
2850
2851enum {
2852 MLX5_RMPC_STATE_RDY = 0x1,
2853 MLX5_RMPC_STATE_ERR = 0x3,
2854};
2855
2856struct mlx5_ifc_rmpc_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002857 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002858 u8 state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002859 u8 reserved_at_c[0x14];
Saeed Mahameede2816822015-05-28 22:28:40 +03002860
2861 u8 basic_cyclic_rcv_wqe[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002862 u8 reserved_at_21[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03002863
Matan Barakb4ff3a32016-02-09 14:57:42 +02002864 u8 reserved_at_40[0x140];
Saeed Mahameede2816822015-05-28 22:28:40 +03002865
2866 struct mlx5_ifc_wq_bits wq;
2867};
2868
Saeed Mahameede2816822015-05-28 22:28:40 +03002869struct mlx5_ifc_nic_vport_context_bits {
Hadar Hen Zioncff92d72016-07-24 16:12:40 +03002870 u8 reserved_at_0[0x5];
2871 u8 min_wqe_inline_mode[0x3];
Huy Nguyenbded7472017-05-30 09:42:53 +03002872 u8 reserved_at_8[0x15];
2873 u8 disable_mc_local_lb[0x1];
2874 u8 disable_uc_local_lb[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002875 u8 roce_en[0x1];
2876
Saeed Mahameedd82b7312015-12-01 18:03:14 +02002877 u8 arm_change_event[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002878 u8 reserved_at_21[0x1a];
Saeed Mahameedd82b7312015-12-01 18:03:14 +02002879 u8 event_on_mtu[0x1];
2880 u8 event_on_promisc_change[0x1];
2881 u8 event_on_vlan_change[0x1];
2882 u8 event_on_mc_address_change[0x1];
2883 u8 event_on_uc_address_change[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002884
Daniel Jurgens32f69e42018-01-04 17:25:36 +02002885 u8 reserved_at_40[0xc];
2886
2887 u8 affiliation_criteria[0x4];
2888 u8 affiliated_vhca_id[0x10];
2889
2890 u8 reserved_at_60[0xd0];
Saeed Mahameedd82b7312015-12-01 18:03:14 +02002891
2892 u8 mtu[0x10];
2893
Achiad Shochat9efa7522015-12-23 18:47:20 +02002894 u8 system_image_guid[0x40];
2895 u8 port_guid[0x40];
2896 u8 node_guid[0x40];
2897
Matan Barakb4ff3a32016-02-09 14:57:42 +02002898 u8 reserved_at_200[0x140];
Achiad Shochat9efa7522015-12-23 18:47:20 +02002899 u8 qkey_violation_counter[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002900 u8 reserved_at_350[0x430];
Saeed Mahameedd82b7312015-12-01 18:03:14 +02002901
2902 u8 promisc_uc[0x1];
2903 u8 promisc_mc[0x1];
2904 u8 promisc_all[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002905 u8 reserved_at_783[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002906 u8 allowed_list_type[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002907 u8 reserved_at_788[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03002908 u8 allowed_list_size[0xc];
2909
2910 struct mlx5_ifc_mac_address_layout_bits permanent_address;
2911
Matan Barakb4ff3a32016-02-09 14:57:42 +02002912 u8 reserved_at_7e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002913
2914 u8 current_uc_mac_address[0][0x40];
2915};
2916
2917enum {
2918 MLX5_MKC_ACCESS_MODE_PA = 0x0,
2919 MLX5_MKC_ACCESS_MODE_MTT = 0x1,
2920 MLX5_MKC_ACCESS_MODE_KLMS = 0x2,
Artemy Kovalyovbcda1ac2017-01-02 11:37:41 +02002921 MLX5_MKC_ACCESS_MODE_KSM = 0x3,
Ariel Levkovichcdbd0d22018-04-05 18:53:28 +03002922 MLX5_MKC_ACCESS_MODE_MEMIC = 0x5,
Saeed Mahameede2816822015-05-28 22:28:40 +03002923};
2924
2925struct mlx5_ifc_mkc_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002926 u8 reserved_at_0[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002927 u8 free[0x1];
Ariel Levkovichcdbd0d22018-04-05 18:53:28 +03002928 u8 reserved_at_2[0x1];
2929 u8 access_mode_4_2[0x3];
2930 u8 reserved_at_6[0x7];
2931 u8 relaxed_ordering_write[0x1];
2932 u8 reserved_at_e[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002933 u8 small_fence_on_rdma_read_response[0x1];
2934 u8 umr_en[0x1];
2935 u8 a[0x1];
2936 u8 rw[0x1];
2937 u8 rr[0x1];
2938 u8 lw[0x1];
2939 u8 lr[0x1];
Ariel Levkovichcdbd0d22018-04-05 18:53:28 +03002940 u8 access_mode_1_0[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002941 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002942
2943 u8 qpn[0x18];
2944 u8 mkey_7_0[0x8];
2945
Matan Barakb4ff3a32016-02-09 14:57:42 +02002946 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002947
2948 u8 length64[0x1];
2949 u8 bsf_en[0x1];
2950 u8 sync_umr[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002951 u8 reserved_at_63[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002952 u8 expected_sigerr_count[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002953 u8 reserved_at_66[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002954 u8 en_rinval[0x1];
2955 u8 pd[0x18];
2956
2957 u8 start_addr[0x40];
2958
2959 u8 len[0x40];
2960
2961 u8 bsf_octword_size[0x20];
2962
Matan Barakb4ff3a32016-02-09 14:57:42 +02002963 u8 reserved_at_120[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03002964
2965 u8 translations_octword_size[0x20];
2966
Matan Barakb4ff3a32016-02-09 14:57:42 +02002967 u8 reserved_at_1c0[0x1b];
Saeed Mahameede2816822015-05-28 22:28:40 +03002968 u8 log_page_size[0x5];
2969
Matan Barakb4ff3a32016-02-09 14:57:42 +02002970 u8 reserved_at_1e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002971};
2972
2973struct mlx5_ifc_pkey_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002974 u8 reserved_at_0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002975 u8 pkey[0x10];
2976};
2977
2978struct mlx5_ifc_array128_auto_bits {
2979 u8 array128_auto[16][0x8];
2980};
2981
2982struct mlx5_ifc_hca_vport_context_bits {
2983 u8 field_select[0x20];
2984
Matan Barakb4ff3a32016-02-09 14:57:42 +02002985 u8 reserved_at_20[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002986
2987 u8 sm_virt_aware[0x1];
2988 u8 has_smi[0x1];
2989 u8 has_raw[0x1];
2990 u8 grh_required[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002991 u8 reserved_at_104[0xc];
Majd Dibbiny707c4602015-06-04 19:30:41 +03002992 u8 port_physical_state[0x4];
2993 u8 vport_state_policy[0x4];
2994 u8 port_state[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002995 u8 vport_state[0x4];
2996
Matan Barakb4ff3a32016-02-09 14:57:42 +02002997 u8 reserved_at_120[0x20];
Majd Dibbiny707c4602015-06-04 19:30:41 +03002998
2999 u8 system_image_guid[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003000
3001 u8 port_guid[0x40];
3002
3003 u8 node_guid[0x40];
3004
3005 u8 cap_mask1[0x20];
3006
3007 u8 cap_mask1_field_select[0x20];
3008
3009 u8 cap_mask2[0x20];
3010
3011 u8 cap_mask2_field_select[0x20];
3012
Matan Barakb4ff3a32016-02-09 14:57:42 +02003013 u8 reserved_at_280[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003014
3015 u8 lid[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003016 u8 reserved_at_310[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03003017 u8 init_type_reply[0x4];
3018 u8 lmc[0x3];
3019 u8 subnet_timeout[0x5];
3020
3021 u8 sm_lid[0x10];
3022 u8 sm_sl[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003023 u8 reserved_at_334[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03003024
3025 u8 qkey_violation_counter[0x10];
3026 u8 pkey_violation_counter[0x10];
3027
Matan Barakb4ff3a32016-02-09 14:57:42 +02003028 u8 reserved_at_360[0xca0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003029};
3030
Saeed Mahameedd6666752015-12-01 18:03:22 +02003031struct mlx5_ifc_esw_vport_context_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02003032 u8 reserved_at_0[0x3];
Saeed Mahameedd6666752015-12-01 18:03:22 +02003033 u8 vport_svlan_strip[0x1];
3034 u8 vport_cvlan_strip[0x1];
3035 u8 vport_svlan_insert[0x1];
3036 u8 vport_cvlan_insert[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003037 u8 reserved_at_8[0x18];
Saeed Mahameedd6666752015-12-01 18:03:22 +02003038
Matan Barakb4ff3a32016-02-09 14:57:42 +02003039 u8 reserved_at_20[0x20];
Saeed Mahameedd6666752015-12-01 18:03:22 +02003040
3041 u8 svlan_cfi[0x1];
3042 u8 svlan_pcp[0x3];
3043 u8 svlan_id[0xc];
3044 u8 cvlan_cfi[0x1];
3045 u8 cvlan_pcp[0x3];
3046 u8 cvlan_id[0xc];
3047
Matan Barakb4ff3a32016-02-09 14:57:42 +02003048 u8 reserved_at_60[0x7a0];
Saeed Mahameedd6666752015-12-01 18:03:22 +02003049};
3050
Saeed Mahameede2816822015-05-28 22:28:40 +03003051enum {
3052 MLX5_EQC_STATUS_OK = 0x0,
3053 MLX5_EQC_STATUS_EQ_WRITE_FAILURE = 0xa,
3054};
3055
3056enum {
3057 MLX5_EQC_ST_ARMED = 0x9,
3058 MLX5_EQC_ST_FIRED = 0xa,
3059};
3060
3061struct mlx5_ifc_eqc_bits {
3062 u8 status[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003063 u8 reserved_at_4[0x9];
Saeed Mahameede2816822015-05-28 22:28:40 +03003064 u8 ec[0x1];
3065 u8 oi[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003066 u8 reserved_at_f[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03003067 u8 st[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003068 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003069
Matan Barakb4ff3a32016-02-09 14:57:42 +02003070 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003071
Matan Barakb4ff3a32016-02-09 14:57:42 +02003072 u8 reserved_at_40[0x14];
Saeed Mahameede2816822015-05-28 22:28:40 +03003073 u8 page_offset[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003074 u8 reserved_at_5a[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03003075
Matan Barakb4ff3a32016-02-09 14:57:42 +02003076 u8 reserved_at_60[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03003077 u8 log_eq_size[0x5];
3078 u8 uar_page[0x18];
3079
Matan Barakb4ff3a32016-02-09 14:57:42 +02003080 u8 reserved_at_80[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003081
Matan Barakb4ff3a32016-02-09 14:57:42 +02003082 u8 reserved_at_a0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003083 u8 intr[0x8];
3084
Matan Barakb4ff3a32016-02-09 14:57:42 +02003085 u8 reserved_at_c0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03003086 u8 log_page_size[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003087 u8 reserved_at_c8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003088
Matan Barakb4ff3a32016-02-09 14:57:42 +02003089 u8 reserved_at_e0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03003090
Matan Barakb4ff3a32016-02-09 14:57:42 +02003091 u8 reserved_at_140[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003092 u8 consumer_counter[0x18];
3093
Matan Barakb4ff3a32016-02-09 14:57:42 +02003094 u8 reserved_at_160[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003095 u8 producer_counter[0x18];
3096
Matan Barakb4ff3a32016-02-09 14:57:42 +02003097 u8 reserved_at_180[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003098};
3099
3100enum {
3101 MLX5_DCTC_STATE_ACTIVE = 0x0,
3102 MLX5_DCTC_STATE_DRAINING = 0x1,
3103 MLX5_DCTC_STATE_DRAINED = 0x2,
3104};
3105
3106enum {
3107 MLX5_DCTC_CS_RES_DISABLE = 0x0,
3108 MLX5_DCTC_CS_RES_NA = 0x1,
3109 MLX5_DCTC_CS_RES_UP_TO_64B = 0x2,
3110};
3111
3112enum {
3113 MLX5_DCTC_MTU_256_BYTES = 0x1,
3114 MLX5_DCTC_MTU_512_BYTES = 0x2,
3115 MLX5_DCTC_MTU_1K_BYTES = 0x3,
3116 MLX5_DCTC_MTU_2K_BYTES = 0x4,
3117 MLX5_DCTC_MTU_4K_BYTES = 0x5,
3118};
3119
3120struct mlx5_ifc_dctc_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02003121 u8 reserved_at_0[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03003122 u8 state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003123 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003124
Matan Barakb4ff3a32016-02-09 14:57:42 +02003125 u8 reserved_at_20[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003126 u8 user_index[0x18];
3127
Matan Barakb4ff3a32016-02-09 14:57:42 +02003128 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003129 u8 cqn[0x18];
3130
3131 u8 counter_set_id[0x8];
3132 u8 atomic_mode[0x4];
3133 u8 rre[0x1];
3134 u8 rwe[0x1];
3135 u8 rae[0x1];
3136 u8 atomic_like_write_en[0x1];
3137 u8 latency_sensitive[0x1];
3138 u8 rlky[0x1];
3139 u8 free_ar[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003140 u8 reserved_at_73[0xd];
Saeed Mahameede2816822015-05-28 22:28:40 +03003141
Matan Barakb4ff3a32016-02-09 14:57:42 +02003142 u8 reserved_at_80[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003143 u8 cs_res[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003144 u8 reserved_at_90[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03003145 u8 min_rnr_nak[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003146 u8 reserved_at_98[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003147
Matan Barakb4ff3a32016-02-09 14:57:42 +02003148 u8 reserved_at_a0[0x8];
Saeed Mahameed74862162016-06-09 15:11:34 +03003149 u8 srqn_xrqn[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003150
Matan Barakb4ff3a32016-02-09 14:57:42 +02003151 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003152 u8 pd[0x18];
3153
3154 u8 tclass[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003155 u8 reserved_at_e8[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03003156 u8 flow_label[0x14];
3157
3158 u8 dc_access_key[0x40];
3159
Matan Barakb4ff3a32016-02-09 14:57:42 +02003160 u8 reserved_at_140[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03003161 u8 mtu[0x3];
3162 u8 port[0x8];
3163 u8 pkey_index[0x10];
3164
Matan Barakb4ff3a32016-02-09 14:57:42 +02003165 u8 reserved_at_160[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003166 u8 my_addr_index[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003167 u8 reserved_at_170[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003168 u8 hop_limit[0x8];
3169
3170 u8 dc_access_key_violation_count[0x20];
3171
Matan Barakb4ff3a32016-02-09 14:57:42 +02003172 u8 reserved_at_1a0[0x14];
Saeed Mahameede2816822015-05-28 22:28:40 +03003173 u8 dei_cfi[0x1];
3174 u8 eth_prio[0x3];
3175 u8 ecn[0x2];
3176 u8 dscp[0x6];
3177
Matan Barakb4ff3a32016-02-09 14:57:42 +02003178 u8 reserved_at_1c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003179};
3180
3181enum {
3182 MLX5_CQC_STATUS_OK = 0x0,
3183 MLX5_CQC_STATUS_CQ_OVERFLOW = 0x9,
3184 MLX5_CQC_STATUS_CQ_WRITE_FAIL = 0xa,
3185};
3186
3187enum {
3188 MLX5_CQC_CQE_SZ_64_BYTES = 0x0,
3189 MLX5_CQC_CQE_SZ_128_BYTES = 0x1,
3190};
3191
3192enum {
3193 MLX5_CQC_ST_SOLICITED_NOTIFICATION_REQUEST_ARMED = 0x6,
3194 MLX5_CQC_ST_NOTIFICATION_REQUEST_ARMED = 0x9,
3195 MLX5_CQC_ST_FIRED = 0xa,
3196};
3197
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03003198enum {
3199 MLX5_CQ_PERIOD_MODE_START_FROM_EQE = 0x0,
3200 MLX5_CQ_PERIOD_MODE_START_FROM_CQE = 0x1,
Saeed Mahameed74862162016-06-09 15:11:34 +03003201 MLX5_CQ_PERIOD_NUM_MODES
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03003202};
3203
Saeed Mahameede2816822015-05-28 22:28:40 +03003204struct mlx5_ifc_cqc_bits {
3205 u8 status[0x4];
Leon Romanovskybd371972018-09-20 21:35:26 +03003206 u8 reserved_at_4[0x2];
3207 u8 dbr_umem_valid[0x1];
3208 u8 reserved_at_7[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003209 u8 cqe_sz[0x3];
3210 u8 cc[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003211 u8 reserved_at_c[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003212 u8 scqe_break_moderation_en[0x1];
3213 u8 oi[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03003214 u8 cq_period_mode[0x2];
3215 u8 cqe_comp_en[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003216 u8 mini_cqe_res_format[0x2];
3217 u8 st[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003218 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003219
Matan Barakb4ff3a32016-02-09 14:57:42 +02003220 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003221
Matan Barakb4ff3a32016-02-09 14:57:42 +02003222 u8 reserved_at_40[0x14];
Saeed Mahameede2816822015-05-28 22:28:40 +03003223 u8 page_offset[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003224 u8 reserved_at_5a[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03003225
Matan Barakb4ff3a32016-02-09 14:57:42 +02003226 u8 reserved_at_60[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03003227 u8 log_cq_size[0x5];
3228 u8 uar_page[0x18];
3229
Matan Barakb4ff3a32016-02-09 14:57:42 +02003230 u8 reserved_at_80[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03003231 u8 cq_period[0xc];
3232 u8 cq_max_count[0x10];
3233
Matan Barakb4ff3a32016-02-09 14:57:42 +02003234 u8 reserved_at_a0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003235 u8 c_eqn[0x8];
3236
Matan Barakb4ff3a32016-02-09 14:57:42 +02003237 u8 reserved_at_c0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03003238 u8 log_page_size[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003239 u8 reserved_at_c8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003240
Matan Barakb4ff3a32016-02-09 14:57:42 +02003241 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003242
Matan Barakb4ff3a32016-02-09 14:57:42 +02003243 u8 reserved_at_100[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003244 u8 last_notified_index[0x18];
3245
Matan Barakb4ff3a32016-02-09 14:57:42 +02003246 u8 reserved_at_120[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003247 u8 last_solicit_index[0x18];
3248
Matan Barakb4ff3a32016-02-09 14:57:42 +02003249 u8 reserved_at_140[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003250 u8 consumer_counter[0x18];
3251
Matan Barakb4ff3a32016-02-09 14:57:42 +02003252 u8 reserved_at_160[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003253 u8 producer_counter[0x18];
3254
Matan Barakb4ff3a32016-02-09 14:57:42 +02003255 u8 reserved_at_180[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003256
3257 u8 dbr_addr[0x40];
3258};
3259
3260union mlx5_ifc_cong_control_roce_ecn_auto_bits {
3261 struct mlx5_ifc_cong_control_802_1qau_rp_bits cong_control_802_1qau_rp;
3262 struct mlx5_ifc_cong_control_r_roce_ecn_rp_bits cong_control_r_roce_ecn_rp;
3263 struct mlx5_ifc_cong_control_r_roce_ecn_np_bits cong_control_r_roce_ecn_np;
Matan Barakb4ff3a32016-02-09 14:57:42 +02003264 u8 reserved_at_0[0x800];
Saeed Mahameede2816822015-05-28 22:28:40 +03003265};
3266
3267struct mlx5_ifc_query_adapter_param_block_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02003268 u8 reserved_at_0[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003269
Matan Barakb4ff3a32016-02-09 14:57:42 +02003270 u8 reserved_at_c0[0x8];
Majd Dibbiny211e6c82015-06-04 19:30:42 +03003271 u8 ieee_vendor_id[0x18];
3272
Matan Barakb4ff3a32016-02-09 14:57:42 +02003273 u8 reserved_at_e0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003274 u8 vsd_vendor_id[0x10];
3275
3276 u8 vsd[208][0x8];
3277
3278 u8 vsd_contd_psid[16][0x8];
3279};
3280
Saeed Mahameed74862162016-06-09 15:11:34 +03003281enum {
3282 MLX5_XRQC_STATE_GOOD = 0x0,
3283 MLX5_XRQC_STATE_ERROR = 0x1,
3284};
3285
3286enum {
3287 MLX5_XRQC_TOPOLOGY_NO_SPECIAL_TOPOLOGY = 0x0,
3288 MLX5_XRQC_TOPOLOGY_TAG_MATCHING = 0x1,
3289};
3290
3291enum {
3292 MLX5_XRQC_OFFLOAD_RNDV = 0x1,
3293};
3294
3295struct mlx5_ifc_tag_matching_topology_context_bits {
3296 u8 log_matching_list_sz[0x4];
3297 u8 reserved_at_4[0xc];
3298 u8 append_next_index[0x10];
3299
3300 u8 sw_phase_cnt[0x10];
3301 u8 hw_phase_cnt[0x10];
3302
3303 u8 reserved_at_40[0x40];
3304};
3305
3306struct mlx5_ifc_xrqc_bits {
3307 u8 state[0x4];
3308 u8 rlkey[0x1];
3309 u8 reserved_at_5[0xf];
3310 u8 topology[0x4];
3311 u8 reserved_at_18[0x4];
3312 u8 offload[0x4];
3313
3314 u8 reserved_at_20[0x8];
3315 u8 user_index[0x18];
3316
3317 u8 reserved_at_40[0x8];
3318 u8 cqn[0x18];
3319
3320 u8 reserved_at_60[0xa0];
3321
3322 struct mlx5_ifc_tag_matching_topology_context_bits tag_matching_topology_context;
3323
Artemy Kovalyov6e446362017-08-15 11:59:02 +03003324 u8 reserved_at_180[0x280];
Saeed Mahameed74862162016-06-09 15:11:34 +03003325
3326 struct mlx5_ifc_wq_bits wq;
3327};
3328
Saeed Mahameede2816822015-05-28 22:28:40 +03003329union mlx5_ifc_modify_field_select_resize_field_select_auto_bits {
3330 struct mlx5_ifc_modify_field_select_bits modify_field_select;
3331 struct mlx5_ifc_resize_field_select_bits resize_field_select;
Matan Barakb4ff3a32016-02-09 14:57:42 +02003332 u8 reserved_at_0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003333};
3334
3335union mlx5_ifc_field_select_802_1_r_roce_auto_bits {
3336 struct mlx5_ifc_field_select_802_1qau_rp_bits field_select_802_1qau_rp;
3337 struct mlx5_ifc_field_select_r_roce_rp_bits field_select_r_roce_rp;
3338 struct mlx5_ifc_field_select_r_roce_np_bits field_select_r_roce_np;
Matan Barakb4ff3a32016-02-09 14:57:42 +02003339 u8 reserved_at_0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003340};
3341
3342union mlx5_ifc_eth_cntrs_grp_data_layout_auto_bits {
3343 struct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits eth_802_3_cntrs_grp_data_layout;
3344 struct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits eth_2863_cntrs_grp_data_layout;
3345 struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits eth_2819_cntrs_grp_data_layout;
3346 struct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits eth_3635_cntrs_grp_data_layout;
3347 struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits eth_extended_cntrs_grp_data_layout;
3348 struct mlx5_ifc_eth_per_prio_grp_data_layout_bits eth_per_prio_grp_data_layout;
3349 struct mlx5_ifc_eth_per_traffic_grp_data_layout_bits eth_per_traffic_grp_data_layout;
Meny Yossefi1c64bf62016-02-18 18:15:00 +02003350 struct mlx5_ifc_ib_port_cntrs_grp_data_layout_bits ib_port_cntrs_grp_data_layout;
Saeed Mahameede2816822015-05-28 22:28:40 +03003351 struct mlx5_ifc_phys_layer_cntrs_bits phys_layer_cntrs;
Gal Pressmand8dc0502016-09-27 17:04:51 +03003352 struct mlx5_ifc_phys_layer_statistical_cntrs_bits phys_layer_statistical_cntrs;
Matan Barakb4ff3a32016-02-09 14:57:42 +02003353 u8 reserved_at_0[0x7c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003354};
3355
Gal Pressman8ed1a632016-11-17 13:46:01 +02003356union mlx5_ifc_pcie_cntrs_grp_data_layout_auto_bits {
3357 struct mlx5_ifc_pcie_perf_cntrs_grp_data_layout_bits pcie_perf_cntrs_grp_data_layout;
3358 u8 reserved_at_0[0x7c0];
3359};
3360
Saeed Mahameede2816822015-05-28 22:28:40 +03003361union mlx5_ifc_event_auto_bits {
3362 struct mlx5_ifc_comp_event_bits comp_event;
3363 struct mlx5_ifc_dct_events_bits dct_events;
3364 struct mlx5_ifc_qp_events_bits qp_events;
3365 struct mlx5_ifc_wqe_associated_page_fault_event_bits wqe_associated_page_fault_event;
3366 struct mlx5_ifc_rdma_page_fault_event_bits rdma_page_fault_event;
3367 struct mlx5_ifc_cq_error_bits cq_error;
3368 struct mlx5_ifc_dropped_packet_logged_bits dropped_packet_logged;
3369 struct mlx5_ifc_port_state_change_event_bits port_state_change_event;
3370 struct mlx5_ifc_gpio_event_bits gpio_event;
3371 struct mlx5_ifc_db_bf_congestion_event_bits db_bf_congestion_event;
3372 struct mlx5_ifc_stall_vl_event_bits stall_vl_event;
3373 struct mlx5_ifc_cmd_inter_comp_event_bits cmd_inter_comp_event;
Matan Barakb4ff3a32016-02-09 14:57:42 +02003374 u8 reserved_at_0[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003375};
3376
3377struct mlx5_ifc_health_buffer_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02003378 u8 reserved_at_0[0x100];
Saeed Mahameede2816822015-05-28 22:28:40 +03003379
3380 u8 assert_existptr[0x20];
3381
3382 u8 assert_callra[0x20];
3383
Matan Barakb4ff3a32016-02-09 14:57:42 +02003384 u8 reserved_at_140[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003385
3386 u8 fw_version[0x20];
3387
3388 u8 hw_id[0x20];
3389
Matan Barakb4ff3a32016-02-09 14:57:42 +02003390 u8 reserved_at_1c0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003391
3392 u8 irisc_index[0x8];
3393 u8 synd[0x8];
3394 u8 ext_synd[0x10];
3395};
3396
3397struct mlx5_ifc_register_loopback_control_bits {
3398 u8 no_lb[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003399 u8 reserved_at_1[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03003400 u8 port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003401 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003402
Matan Barakb4ff3a32016-02-09 14:57:42 +02003403 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03003404};
3405
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03003406struct mlx5_ifc_vport_tc_element_bits {
3407 u8 traffic_class[0x4];
3408 u8 reserved_at_4[0xc];
3409 u8 vport_number[0x10];
3410};
3411
3412struct mlx5_ifc_vport_element_bits {
3413 u8 reserved_at_0[0x10];
3414 u8 vport_number[0x10];
3415};
3416
3417enum {
3418 TSAR_ELEMENT_TSAR_TYPE_DWRR = 0x0,
3419 TSAR_ELEMENT_TSAR_TYPE_ROUND_ROBIN = 0x1,
3420 TSAR_ELEMENT_TSAR_TYPE_ETS = 0x2,
3421};
3422
3423struct mlx5_ifc_tsar_element_bits {
3424 u8 reserved_at_0[0x8];
3425 u8 tsar_type[0x8];
3426 u8 reserved_at_10[0x10];
3427};
3428
Majd Dibbiny8812c242017-02-09 14:20:12 +02003429enum {
3430 MLX5_TEARDOWN_HCA_OUT_FORCE_STATE_SUCCESS = 0x0,
3431 MLX5_TEARDOWN_HCA_OUT_FORCE_STATE_FAIL = 0x1,
3432};
3433
Saeed Mahameede2816822015-05-28 22:28:40 +03003434struct mlx5_ifc_teardown_hca_out_bits {
3435 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003436 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003437
3438 u8 syndrome[0x20];
3439
Majd Dibbiny8812c242017-02-09 14:20:12 +02003440 u8 reserved_at_40[0x3f];
3441
Feras Daoudfcd29ad2018-08-09 09:55:21 +03003442 u8 state[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003443};
3444
3445enum {
3446 MLX5_TEARDOWN_HCA_IN_PROFILE_GRACEFUL_CLOSE = 0x0,
Majd Dibbiny8812c242017-02-09 14:20:12 +02003447 MLX5_TEARDOWN_HCA_IN_PROFILE_FORCE_CLOSE = 0x1,
Feras Daoudfcd29ad2018-08-09 09:55:21 +03003448 MLX5_TEARDOWN_HCA_IN_PROFILE_PREPARE_FAST_TEARDOWN = 0x2,
Saeed Mahameede2816822015-05-28 22:28:40 +03003449};
3450
3451struct mlx5_ifc_teardown_hca_in_bits {
3452 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003453 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003454
Matan Barakb4ff3a32016-02-09 14:57:42 +02003455 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003456 u8 op_mod[0x10];
3457
Matan Barakb4ff3a32016-02-09 14:57:42 +02003458 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003459 u8 profile[0x10];
3460
Matan Barakb4ff3a32016-02-09 14:57:42 +02003461 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003462};
3463
3464struct mlx5_ifc_sqerr2rts_qp_out_bits {
3465 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003466 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003467
3468 u8 syndrome[0x20];
3469
Matan Barakb4ff3a32016-02-09 14:57:42 +02003470 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003471};
3472
3473struct mlx5_ifc_sqerr2rts_qp_in_bits {
3474 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03003475 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003476
Matan Barakb4ff3a32016-02-09 14:57:42 +02003477 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003478 u8 op_mod[0x10];
3479
Matan Barakb4ff3a32016-02-09 14:57:42 +02003480 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003481 u8 qpn[0x18];
3482
Matan Barakb4ff3a32016-02-09 14:57:42 +02003483 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003484
3485 u8 opt_param_mask[0x20];
3486
Matan Barakb4ff3a32016-02-09 14:57:42 +02003487 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003488
3489 struct mlx5_ifc_qpc_bits qpc;
3490
Matan Barakb4ff3a32016-02-09 14:57:42 +02003491 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003492};
3493
3494struct mlx5_ifc_sqd2rts_qp_out_bits {
3495 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003496 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003497
3498 u8 syndrome[0x20];
3499
Matan Barakb4ff3a32016-02-09 14:57:42 +02003500 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003501};
3502
3503struct mlx5_ifc_sqd2rts_qp_in_bits {
3504 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03003505 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003506
Matan Barakb4ff3a32016-02-09 14:57:42 +02003507 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003508 u8 op_mod[0x10];
3509
Matan Barakb4ff3a32016-02-09 14:57:42 +02003510 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003511 u8 qpn[0x18];
3512
Matan Barakb4ff3a32016-02-09 14:57:42 +02003513 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003514
3515 u8 opt_param_mask[0x20];
3516
Matan Barakb4ff3a32016-02-09 14:57:42 +02003517 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003518
3519 struct mlx5_ifc_qpc_bits qpc;
3520
Matan Barakb4ff3a32016-02-09 14:57:42 +02003521 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003522};
3523
3524struct mlx5_ifc_set_roce_address_out_bits {
3525 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003526 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003527
3528 u8 syndrome[0x20];
3529
Matan Barakb4ff3a32016-02-09 14:57:42 +02003530 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003531};
3532
3533struct mlx5_ifc_set_roce_address_in_bits {
3534 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003535 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003536
Matan Barakb4ff3a32016-02-09 14:57:42 +02003537 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003538 u8 op_mod[0x10];
3539
3540 u8 roce_address_index[0x10];
Daniel Jurgens32f69e42018-01-04 17:25:36 +02003541 u8 reserved_at_50[0xc];
3542 u8 vhca_port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03003543
Matan Barakb4ff3a32016-02-09 14:57:42 +02003544 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003545
3546 struct mlx5_ifc_roce_addr_layout_bits roce_address;
3547};
3548
3549struct mlx5_ifc_set_mad_demux_out_bits {
3550 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003551 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003552
3553 u8 syndrome[0x20];
3554
Matan Barakb4ff3a32016-02-09 14:57:42 +02003555 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003556};
3557
3558enum {
3559 MLX5_SET_MAD_DEMUX_IN_DEMUX_MODE_PASS_ALL = 0x0,
3560 MLX5_SET_MAD_DEMUX_IN_DEMUX_MODE_SELECTIVE = 0x2,
3561};
3562
3563struct mlx5_ifc_set_mad_demux_in_bits {
3564 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003565 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003566
Matan Barakb4ff3a32016-02-09 14:57:42 +02003567 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003568 u8 op_mod[0x10];
3569
Matan Barakb4ff3a32016-02-09 14:57:42 +02003570 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003571
Matan Barakb4ff3a32016-02-09 14:57:42 +02003572 u8 reserved_at_60[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03003573 u8 demux_mode[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003574 u8 reserved_at_68[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003575};
3576
3577struct mlx5_ifc_set_l2_table_entry_out_bits {
3578 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003579 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003580
3581 u8 syndrome[0x20];
3582
Matan Barakb4ff3a32016-02-09 14:57:42 +02003583 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003584};
3585
3586struct mlx5_ifc_set_l2_table_entry_in_bits {
3587 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003588 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003589
Matan Barakb4ff3a32016-02-09 14:57:42 +02003590 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003591 u8 op_mod[0x10];
3592
Matan Barakb4ff3a32016-02-09 14:57:42 +02003593 u8 reserved_at_40[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03003594
Matan Barakb4ff3a32016-02-09 14:57:42 +02003595 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003596 u8 table_index[0x18];
3597
Matan Barakb4ff3a32016-02-09 14:57:42 +02003598 u8 reserved_at_c0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003599
Matan Barakb4ff3a32016-02-09 14:57:42 +02003600 u8 reserved_at_e0[0x13];
Saeed Mahameede2816822015-05-28 22:28:40 +03003601 u8 vlan_valid[0x1];
3602 u8 vlan[0xc];
3603
3604 struct mlx5_ifc_mac_address_layout_bits mac_address;
3605
Matan Barakb4ff3a32016-02-09 14:57:42 +02003606 u8 reserved_at_140[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003607};
3608
3609struct mlx5_ifc_set_issi_out_bits {
3610 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003611 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003612
3613 u8 syndrome[0x20];
3614
Matan Barakb4ff3a32016-02-09 14:57:42 +02003615 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003616};
3617
3618struct mlx5_ifc_set_issi_in_bits {
3619 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003620 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003621
Matan Barakb4ff3a32016-02-09 14:57:42 +02003622 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003623 u8 op_mod[0x10];
3624
Matan Barakb4ff3a32016-02-09 14:57:42 +02003625 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003626 u8 current_issi[0x10];
3627
Matan Barakb4ff3a32016-02-09 14:57:42 +02003628 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003629};
3630
3631struct mlx5_ifc_set_hca_cap_out_bits {
3632 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003633 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003634
3635 u8 syndrome[0x20];
3636
Matan Barakb4ff3a32016-02-09 14:57:42 +02003637 u8 reserved_at_40[0x40];
Eli Cohenb7755162014-10-02 12:19:44 +03003638};
3639
3640struct mlx5_ifc_set_hca_cap_in_bits {
3641 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003642 u8 reserved_at_10[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03003643
Matan Barakb4ff3a32016-02-09 14:57:42 +02003644 u8 reserved_at_20[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03003645 u8 op_mod[0x10];
3646
Matan Barakb4ff3a32016-02-09 14:57:42 +02003647 u8 reserved_at_40[0x40];
Eli Cohenb7755162014-10-02 12:19:44 +03003648
Saeed Mahameede2816822015-05-28 22:28:40 +03003649 union mlx5_ifc_hca_cap_union_bits capability;
3650};
3651
Maor Gottlieb26a81452015-12-10 17:12:39 +02003652enum {
3653 MLX5_SET_FTE_MODIFY_ENABLE_MASK_ACTION = 0x0,
3654 MLX5_SET_FTE_MODIFY_ENABLE_MASK_FLOW_TAG = 0x1,
3655 MLX5_SET_FTE_MODIFY_ENABLE_MASK_DESTINATION_LIST = 0x2,
3656 MLX5_SET_FTE_MODIFY_ENABLE_MASK_FLOW_COUNTERS = 0x3
3657};
3658
Saeed Mahameede2816822015-05-28 22:28:40 +03003659struct mlx5_ifc_set_fte_out_bits {
3660 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003661 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003662
3663 u8 syndrome[0x20];
3664
Matan Barakb4ff3a32016-02-09 14:57:42 +02003665 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003666};
3667
3668struct mlx5_ifc_set_fte_in_bits {
3669 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003670 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003671
Matan Barakb4ff3a32016-02-09 14:57:42 +02003672 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003673 u8 op_mod[0x10];
3674
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03003675 u8 other_vport[0x1];
3676 u8 reserved_at_41[0xf];
3677 u8 vport_number[0x10];
3678
3679 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003680
3681 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003682 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003683
Matan Barakb4ff3a32016-02-09 14:57:42 +02003684 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003685 u8 table_id[0x18];
3686
Matan Barakb4ff3a32016-02-09 14:57:42 +02003687 u8 reserved_at_c0[0x18];
Maor Gottlieb26a81452015-12-10 17:12:39 +02003688 u8 modify_enable_mask[0x8];
3689
Matan Barakb4ff3a32016-02-09 14:57:42 +02003690 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003691
3692 u8 flow_index[0x20];
3693
Matan Barakb4ff3a32016-02-09 14:57:42 +02003694 u8 reserved_at_120[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003695
3696 struct mlx5_ifc_flow_context_bits flow_context;
3697};
3698
3699struct mlx5_ifc_rts2rts_qp_out_bits {
3700 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003701 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003702
3703 u8 syndrome[0x20];
3704
Matan Barakb4ff3a32016-02-09 14:57:42 +02003705 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003706};
3707
3708struct mlx5_ifc_rts2rts_qp_in_bits {
3709 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03003710 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003711
Matan Barakb4ff3a32016-02-09 14:57:42 +02003712 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003713 u8 op_mod[0x10];
3714
Matan Barakb4ff3a32016-02-09 14:57:42 +02003715 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003716 u8 qpn[0x18];
3717
Matan Barakb4ff3a32016-02-09 14:57:42 +02003718 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003719
3720 u8 opt_param_mask[0x20];
3721
Matan Barakb4ff3a32016-02-09 14:57:42 +02003722 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003723
3724 struct mlx5_ifc_qpc_bits qpc;
3725
Matan Barakb4ff3a32016-02-09 14:57:42 +02003726 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003727};
3728
3729struct mlx5_ifc_rtr2rts_qp_out_bits {
3730 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003731 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003732
3733 u8 syndrome[0x20];
3734
Matan Barakb4ff3a32016-02-09 14:57:42 +02003735 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003736};
3737
3738struct mlx5_ifc_rtr2rts_qp_in_bits {
3739 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03003740 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003741
Matan Barakb4ff3a32016-02-09 14:57:42 +02003742 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003743 u8 op_mod[0x10];
3744
Matan Barakb4ff3a32016-02-09 14:57:42 +02003745 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003746 u8 qpn[0x18];
3747
Matan Barakb4ff3a32016-02-09 14:57:42 +02003748 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003749
3750 u8 opt_param_mask[0x20];
3751
Matan Barakb4ff3a32016-02-09 14:57:42 +02003752 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003753
3754 struct mlx5_ifc_qpc_bits qpc;
3755
Matan Barakb4ff3a32016-02-09 14:57:42 +02003756 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003757};
3758
3759struct mlx5_ifc_rst2init_qp_out_bits {
3760 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003761 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003762
3763 u8 syndrome[0x20];
3764
Matan Barakb4ff3a32016-02-09 14:57:42 +02003765 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003766};
3767
3768struct mlx5_ifc_rst2init_qp_in_bits {
3769 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03003770 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003771
Matan Barakb4ff3a32016-02-09 14:57:42 +02003772 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003773 u8 op_mod[0x10];
3774
Matan Barakb4ff3a32016-02-09 14:57:42 +02003775 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003776 u8 qpn[0x18];
3777
Matan Barakb4ff3a32016-02-09 14:57:42 +02003778 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003779
3780 u8 opt_param_mask[0x20];
3781
Matan Barakb4ff3a32016-02-09 14:57:42 +02003782 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003783
3784 struct mlx5_ifc_qpc_bits qpc;
3785
Matan Barakb4ff3a32016-02-09 14:57:42 +02003786 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003787};
3788
Saeed Mahameed74862162016-06-09 15:11:34 +03003789struct mlx5_ifc_query_xrq_out_bits {
3790 u8 status[0x8];
3791 u8 reserved_at_8[0x18];
3792
3793 u8 syndrome[0x20];
3794
3795 u8 reserved_at_40[0x40];
3796
3797 struct mlx5_ifc_xrqc_bits xrq_context;
3798};
3799
3800struct mlx5_ifc_query_xrq_in_bits {
3801 u8 opcode[0x10];
3802 u8 reserved_at_10[0x10];
3803
3804 u8 reserved_at_20[0x10];
3805 u8 op_mod[0x10];
3806
3807 u8 reserved_at_40[0x8];
3808 u8 xrqn[0x18];
3809
3810 u8 reserved_at_60[0x20];
3811};
3812
Saeed Mahameede2816822015-05-28 22:28:40 +03003813struct mlx5_ifc_query_xrc_srq_out_bits {
3814 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003815 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003816
3817 u8 syndrome[0x20];
3818
Matan Barakb4ff3a32016-02-09 14:57:42 +02003819 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003820
3821 struct mlx5_ifc_xrc_srqc_bits xrc_srq_context_entry;
3822
Matan Barakb4ff3a32016-02-09 14:57:42 +02003823 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03003824
3825 u8 pas[0][0x40];
3826};
3827
3828struct mlx5_ifc_query_xrc_srq_in_bits {
3829 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003830 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003831
Matan Barakb4ff3a32016-02-09 14:57:42 +02003832 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003833 u8 op_mod[0x10];
3834
Matan Barakb4ff3a32016-02-09 14:57:42 +02003835 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003836 u8 xrc_srqn[0x18];
3837
Matan Barakb4ff3a32016-02-09 14:57:42 +02003838 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003839};
3840
3841enum {
3842 MLX5_QUERY_VPORT_STATE_OUT_STATE_DOWN = 0x0,
3843 MLX5_QUERY_VPORT_STATE_OUT_STATE_UP = 0x1,
3844};
3845
3846struct mlx5_ifc_query_vport_state_out_bits {
3847 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003848 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003849
3850 u8 syndrome[0x20];
3851
Matan Barakb4ff3a32016-02-09 14:57:42 +02003852 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003853
Matan Barakb4ff3a32016-02-09 14:57:42 +02003854 u8 reserved_at_60[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003855 u8 admin_state[0x4];
3856 u8 state[0x4];
3857};
3858
3859enum {
Eran Ben Elishacc9c82a2018-08-08 16:23:49 -07003860 MLX5_VPORT_STATE_OP_MOD_VNIC_VPORT = 0x0,
3861 MLX5_VPORT_STATE_OP_MOD_ESW_VPORT = 0x1,
Saeed Mahameede2816822015-05-28 22:28:40 +03003862};
3863
Eyal Davidovichfd4572b2018-12-10 13:15:12 -08003864struct mlx5_ifc_arm_monitor_counter_in_bits {
3865 u8 opcode[0x10];
3866 u8 uid[0x10];
3867
3868 u8 reserved_at_20[0x10];
3869 u8 op_mod[0x10];
3870
3871 u8 reserved_at_40[0x20];
3872
3873 u8 reserved_at_60[0x20];
3874};
3875
3876struct mlx5_ifc_arm_monitor_counter_out_bits {
3877 u8 status[0x8];
3878 u8 reserved_at_8[0x18];
3879
3880 u8 syndrome[0x20];
3881
3882 u8 reserved_at_40[0x40];
3883};
3884
3885enum {
3886 MLX5_QUERY_MONITOR_CNT_TYPE_PPCNT = 0x0,
3887 MLX5_QUERY_MONITOR_CNT_TYPE_Q_COUNTER = 0x1,
3888};
3889
3890enum mlx5_monitor_counter_ppcnt {
Saeed Mahameed4c8b8512018-12-12 19:11:36 -08003891 MLX5_QUERY_MONITOR_PPCNT_IN_RANGE_LENGTH_ERRORS = 0x0,
3892 MLX5_QUERY_MONITOR_PPCNT_OUT_OF_RANGE_LENGTH_FIELD = 0x1,
3893 MLX5_QUERY_MONITOR_PPCNT_FRAME_TOO_LONG_ERRORS = 0x2,
3894 MLX5_QUERY_MONITOR_PPCNT_FRAME_CHECK_SEQUENCE_ERRORS = 0x3,
3895 MLX5_QUERY_MONITOR_PPCNT_ALIGNMENT_ERRORS = 0x4,
3896 MLX5_QUERY_MONITOR_PPCNT_IF_OUT_DISCARDS = 0x5,
Eyal Davidovichfd4572b2018-12-10 13:15:12 -08003897};
3898
3899enum {
Saeed Mahameed4c8b8512018-12-12 19:11:36 -08003900 MLX5_QUERY_MONITOR_Q_COUNTER_RX_OUT_OF_BUFFER = 0x4,
Eyal Davidovichfd4572b2018-12-10 13:15:12 -08003901};
3902
3903struct mlx5_ifc_monitor_counter_output_bits {
3904 u8 reserved_at_0[0x4];
3905 u8 type[0x4];
3906 u8 reserved_at_8[0x8];
3907 u8 counter[0x10];
3908
3909 u8 counter_group_id[0x20];
3910};
3911
3912#define MLX5_CMD_SET_MONITOR_NUM_PPCNT_COUNTER_SET1 (6)
3913#define MLX5_CMD_SET_MONITOR_NUM_Q_COUNTERS_SET1 (1)
3914#define MLX5_CMD_SET_MONITOR_NUM_COUNTER (MLX5_CMD_SET_MONITOR_NUM_PPCNT_COUNTER_SET1 +\
3915 MLX5_CMD_SET_MONITOR_NUM_Q_COUNTERS_SET1)
3916
3917struct mlx5_ifc_set_monitor_counter_in_bits {
3918 u8 opcode[0x10];
3919 u8 uid[0x10];
3920
3921 u8 reserved_at_20[0x10];
3922 u8 op_mod[0x10];
3923
3924 u8 reserved_at_40[0x10];
3925 u8 num_of_counters[0x10];
3926
3927 u8 reserved_at_60[0x20];
3928
3929 struct mlx5_ifc_monitor_counter_output_bits monitor_counter[MLX5_CMD_SET_MONITOR_NUM_COUNTER];
3930};
3931
3932struct mlx5_ifc_set_monitor_counter_out_bits {
3933 u8 status[0x8];
3934 u8 reserved_at_8[0x18];
3935
3936 u8 syndrome[0x20];
3937
3938 u8 reserved_at_40[0x40];
3939};
3940
Saeed Mahameede2816822015-05-28 22:28:40 +03003941struct mlx5_ifc_query_vport_state_in_bits {
3942 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003943 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003944
Matan Barakb4ff3a32016-02-09 14:57:42 +02003945 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003946 u8 op_mod[0x10];
3947
3948 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003949 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03003950 u8 vport_number[0x10];
3951
Matan Barakb4ff3a32016-02-09 14:57:42 +02003952 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003953};
3954
Moshe Shemesh61c5b5c2018-01-07 16:45:27 +02003955struct mlx5_ifc_query_vnic_env_out_bits {
3956 u8 status[0x8];
3957 u8 reserved_at_8[0x18];
3958
3959 u8 syndrome[0x20];
3960
3961 u8 reserved_at_40[0x40];
3962
3963 struct mlx5_ifc_vnic_diagnostic_statistics_bits vport_env;
3964};
3965
3966enum {
3967 MLX5_QUERY_VNIC_ENV_IN_OP_MOD_VPORT_DIAG_STATISTICS = 0x0,
3968};
3969
3970struct mlx5_ifc_query_vnic_env_in_bits {
3971 u8 opcode[0x10];
3972 u8 reserved_at_10[0x10];
3973
3974 u8 reserved_at_20[0x10];
3975 u8 op_mod[0x10];
3976
3977 u8 other_vport[0x1];
3978 u8 reserved_at_41[0xf];
3979 u8 vport_number[0x10];
3980
3981 u8 reserved_at_60[0x20];
3982};
3983
Saeed Mahameede2816822015-05-28 22:28:40 +03003984struct mlx5_ifc_query_vport_counter_out_bits {
3985 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003986 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003987
3988 u8 syndrome[0x20];
3989
Matan Barakb4ff3a32016-02-09 14:57:42 +02003990 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003991
3992 struct mlx5_ifc_traffic_counter_bits received_errors;
3993
3994 struct mlx5_ifc_traffic_counter_bits transmit_errors;
3995
3996 struct mlx5_ifc_traffic_counter_bits received_ib_unicast;
3997
3998 struct mlx5_ifc_traffic_counter_bits transmitted_ib_unicast;
3999
4000 struct mlx5_ifc_traffic_counter_bits received_ib_multicast;
4001
4002 struct mlx5_ifc_traffic_counter_bits transmitted_ib_multicast;
4003
4004 struct mlx5_ifc_traffic_counter_bits received_eth_broadcast;
4005
4006 struct mlx5_ifc_traffic_counter_bits transmitted_eth_broadcast;
4007
4008 struct mlx5_ifc_traffic_counter_bits received_eth_unicast;
4009
4010 struct mlx5_ifc_traffic_counter_bits transmitted_eth_unicast;
4011
4012 struct mlx5_ifc_traffic_counter_bits received_eth_multicast;
4013
4014 struct mlx5_ifc_traffic_counter_bits transmitted_eth_multicast;
4015
Matan Barakb4ff3a32016-02-09 14:57:42 +02004016 u8 reserved_at_680[0xa00];
Saeed Mahameede2816822015-05-28 22:28:40 +03004017};
4018
4019enum {
4020 MLX5_QUERY_VPORT_COUNTER_IN_OP_MOD_VPORT_COUNTERS = 0x0,
4021};
4022
4023struct mlx5_ifc_query_vport_counter_in_bits {
4024 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004025 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004026
Matan Barakb4ff3a32016-02-09 14:57:42 +02004027 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004028 u8 op_mod[0x10];
4029
4030 u8 other_vport[0x1];
Meny Yossefib54ba272016-02-18 18:14:59 +02004031 u8 reserved_at_41[0xb];
4032 u8 port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03004033 u8 vport_number[0x10];
4034
Matan Barakb4ff3a32016-02-09 14:57:42 +02004035 u8 reserved_at_60[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03004036
4037 u8 clear[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004038 u8 reserved_at_c1[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03004039
Matan Barakb4ff3a32016-02-09 14:57:42 +02004040 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004041};
4042
4043struct mlx5_ifc_query_tis_out_bits {
4044 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004045 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004046
4047 u8 syndrome[0x20];
4048
Matan Barakb4ff3a32016-02-09 14:57:42 +02004049 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004050
4051 struct mlx5_ifc_tisc_bits tis_context;
4052};
4053
4054struct mlx5_ifc_query_tis_in_bits {
4055 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004056 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004057
Matan Barakb4ff3a32016-02-09 14:57:42 +02004058 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004059 u8 op_mod[0x10];
4060
Matan Barakb4ff3a32016-02-09 14:57:42 +02004061 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004062 u8 tisn[0x18];
4063
Matan Barakb4ff3a32016-02-09 14:57:42 +02004064 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004065};
4066
4067struct mlx5_ifc_query_tir_out_bits {
4068 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004069 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004070
4071 u8 syndrome[0x20];
4072
Matan Barakb4ff3a32016-02-09 14:57:42 +02004073 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004074
4075 struct mlx5_ifc_tirc_bits tir_context;
4076};
4077
4078struct mlx5_ifc_query_tir_in_bits {
4079 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004080 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004081
Matan Barakb4ff3a32016-02-09 14:57:42 +02004082 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004083 u8 op_mod[0x10];
4084
Matan Barakb4ff3a32016-02-09 14:57:42 +02004085 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004086 u8 tirn[0x18];
4087
Matan Barakb4ff3a32016-02-09 14:57:42 +02004088 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004089};
4090
4091struct mlx5_ifc_query_srq_out_bits {
4092 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004093 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004094
4095 u8 syndrome[0x20];
4096
Matan Barakb4ff3a32016-02-09 14:57:42 +02004097 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004098
4099 struct mlx5_ifc_srqc_bits srq_context_entry;
4100
Matan Barakb4ff3a32016-02-09 14:57:42 +02004101 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03004102
4103 u8 pas[0][0x40];
4104};
4105
4106struct mlx5_ifc_query_srq_in_bits {
4107 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004108 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004109
Matan Barakb4ff3a32016-02-09 14:57:42 +02004110 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004111 u8 op_mod[0x10];
4112
Matan Barakb4ff3a32016-02-09 14:57:42 +02004113 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004114 u8 srqn[0x18];
4115
Matan Barakb4ff3a32016-02-09 14:57:42 +02004116 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004117};
4118
4119struct mlx5_ifc_query_sq_out_bits {
4120 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004121 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004122
4123 u8 syndrome[0x20];
4124
Matan Barakb4ff3a32016-02-09 14:57:42 +02004125 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004126
4127 struct mlx5_ifc_sqc_bits sq_context;
4128};
4129
4130struct mlx5_ifc_query_sq_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
Matan Barakb4ff3a32016-02-09 14:57:42 +02004137 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004138 u8 sqn[0x18];
4139
Matan Barakb4ff3a32016-02-09 14:57:42 +02004140 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004141};
4142
4143struct mlx5_ifc_query_special_contexts_out_bits {
4144 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004145 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004146
4147 u8 syndrome[0x20];
4148
Saeed Mahameedec22eb52016-07-16 06:28:36 +03004149 u8 dump_fill_mkey[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004150
4151 u8 resd_lkey[0x20];
Artemy Kovalyovbcda1ac2017-01-02 11:37:41 +02004152
4153 u8 null_mkey[0x20];
4154
4155 u8 reserved_at_a0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03004156};
4157
4158struct mlx5_ifc_query_special_contexts_in_bits {
4159 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004160 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004161
Matan Barakb4ff3a32016-02-09 14:57:42 +02004162 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004163 u8 op_mod[0x10];
4164
Matan Barakb4ff3a32016-02-09 14:57:42 +02004165 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004166};
4167
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03004168struct mlx5_ifc_query_scheduling_element_out_bits {
4169 u8 opcode[0x10];
4170 u8 reserved_at_10[0x10];
4171
4172 u8 reserved_at_20[0x10];
4173 u8 op_mod[0x10];
4174
4175 u8 reserved_at_40[0xc0];
4176
4177 struct mlx5_ifc_scheduling_context_bits scheduling_context;
4178
4179 u8 reserved_at_300[0x100];
4180};
4181
4182enum {
4183 SCHEDULING_HIERARCHY_E_SWITCH = 0x2,
4184};
4185
4186struct mlx5_ifc_query_scheduling_element_in_bits {
4187 u8 opcode[0x10];
4188 u8 reserved_at_10[0x10];
4189
4190 u8 reserved_at_20[0x10];
4191 u8 op_mod[0x10];
4192
4193 u8 scheduling_hierarchy[0x8];
4194 u8 reserved_at_48[0x18];
4195
4196 u8 scheduling_element_id[0x20];
4197
4198 u8 reserved_at_80[0x180];
4199};
4200
Saeed Mahameede2816822015-05-28 22:28:40 +03004201struct mlx5_ifc_query_rqt_out_bits {
4202 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004203 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004204
4205 u8 syndrome[0x20];
4206
Matan Barakb4ff3a32016-02-09 14:57:42 +02004207 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004208
4209 struct mlx5_ifc_rqtc_bits rqt_context;
4210};
4211
4212struct mlx5_ifc_query_rqt_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
Matan Barakb4ff3a32016-02-09 14:57:42 +02004219 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004220 u8 rqtn[0x18];
4221
Matan Barakb4ff3a32016-02-09 14:57:42 +02004222 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004223};
4224
4225struct mlx5_ifc_query_rq_out_bits {
4226 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004227 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004228
4229 u8 syndrome[0x20];
4230
Matan Barakb4ff3a32016-02-09 14:57:42 +02004231 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004232
4233 struct mlx5_ifc_rqc_bits rq_context;
4234};
4235
4236struct mlx5_ifc_query_rq_in_bits {
4237 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004238 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004239
Matan Barakb4ff3a32016-02-09 14:57:42 +02004240 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004241 u8 op_mod[0x10];
4242
Matan Barakb4ff3a32016-02-09 14:57:42 +02004243 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004244 u8 rqn[0x18];
4245
Matan Barakb4ff3a32016-02-09 14:57:42 +02004246 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004247};
4248
4249struct mlx5_ifc_query_roce_address_out_bits {
4250 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004251 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004252
4253 u8 syndrome[0x20];
4254
Matan Barakb4ff3a32016-02-09 14:57:42 +02004255 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004256
4257 struct mlx5_ifc_roce_addr_layout_bits roce_address;
4258};
4259
4260struct mlx5_ifc_query_roce_address_in_bits {
4261 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004262 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004263
Matan Barakb4ff3a32016-02-09 14:57:42 +02004264 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004265 u8 op_mod[0x10];
4266
4267 u8 roce_address_index[0x10];
Daniel Jurgens32f69e42018-01-04 17:25:36 +02004268 u8 reserved_at_50[0xc];
4269 u8 vhca_port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03004270
Matan Barakb4ff3a32016-02-09 14:57:42 +02004271 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004272};
4273
4274struct mlx5_ifc_query_rmp_out_bits {
4275 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004276 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004277
4278 u8 syndrome[0x20];
4279
Matan Barakb4ff3a32016-02-09 14:57:42 +02004280 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004281
4282 struct mlx5_ifc_rmpc_bits rmp_context;
4283};
4284
4285struct mlx5_ifc_query_rmp_in_bits {
4286 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004287 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004288
Matan Barakb4ff3a32016-02-09 14:57:42 +02004289 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004290 u8 op_mod[0x10];
4291
Matan Barakb4ff3a32016-02-09 14:57:42 +02004292 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004293 u8 rmpn[0x18];
4294
Matan Barakb4ff3a32016-02-09 14:57:42 +02004295 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004296};
4297
4298struct mlx5_ifc_query_qp_out_bits {
4299 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004300 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004301
4302 u8 syndrome[0x20];
4303
Matan Barakb4ff3a32016-02-09 14:57:42 +02004304 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004305
4306 u8 opt_param_mask[0x20];
4307
Matan Barakb4ff3a32016-02-09 14:57:42 +02004308 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004309
4310 struct mlx5_ifc_qpc_bits qpc;
4311
Matan Barakb4ff3a32016-02-09 14:57:42 +02004312 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03004313
4314 u8 pas[0][0x40];
4315};
4316
4317struct mlx5_ifc_query_qp_in_bits {
4318 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004319 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004320
Matan Barakb4ff3a32016-02-09 14:57:42 +02004321 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004322 u8 op_mod[0x10];
4323
Matan Barakb4ff3a32016-02-09 14:57:42 +02004324 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004325 u8 qpn[0x18];
4326
Matan Barakb4ff3a32016-02-09 14:57:42 +02004327 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004328};
4329
4330struct mlx5_ifc_query_q_counter_out_bits {
4331 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004332 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004333
4334 u8 syndrome[0x20];
4335
Matan Barakb4ff3a32016-02-09 14:57:42 +02004336 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004337
4338 u8 rx_write_requests[0x20];
4339
Matan Barakb4ff3a32016-02-09 14:57:42 +02004340 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004341
4342 u8 rx_read_requests[0x20];
4343
Matan Barakb4ff3a32016-02-09 14:57:42 +02004344 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004345
4346 u8 rx_atomic_requests[0x20];
4347
Matan Barakb4ff3a32016-02-09 14:57:42 +02004348 u8 reserved_at_120[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004349
4350 u8 rx_dct_connect[0x20];
4351
Matan Barakb4ff3a32016-02-09 14:57:42 +02004352 u8 reserved_at_160[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004353
4354 u8 out_of_buffer[0x20];
4355
Matan Barakb4ff3a32016-02-09 14:57:42 +02004356 u8 reserved_at_1a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004357
4358 u8 out_of_sequence[0x20];
4359
Saeed Mahameed74862162016-06-09 15:11:34 +03004360 u8 reserved_at_1e0[0x20];
4361
4362 u8 duplicate_request[0x20];
4363
4364 u8 reserved_at_220[0x20];
4365
4366 u8 rnr_nak_retry_err[0x20];
4367
4368 u8 reserved_at_260[0x20];
4369
4370 u8 packet_seq_err[0x20];
4371
4372 u8 reserved_at_2a0[0x20];
4373
4374 u8 implied_nak_seq_err[0x20];
4375
4376 u8 reserved_at_2e0[0x20];
4377
4378 u8 local_ack_timeout_err[0x20];
4379
Parav Pandit58dcb602017-06-19 07:19:37 +03004380 u8 reserved_at_320[0xa0];
4381
4382 u8 resp_local_length_error[0x20];
4383
4384 u8 req_local_length_error[0x20];
4385
4386 u8 resp_local_qp_error[0x20];
4387
4388 u8 local_operation_error[0x20];
4389
4390 u8 resp_local_protection[0x20];
4391
4392 u8 req_local_protection[0x20];
4393
4394 u8 resp_cqe_error[0x20];
4395
4396 u8 req_cqe_error[0x20];
4397
4398 u8 req_mw_binding[0x20];
4399
4400 u8 req_bad_response[0x20];
4401
4402 u8 req_remote_invalid_request[0x20];
4403
4404 u8 resp_remote_invalid_request[0x20];
4405
4406 u8 req_remote_access_errors[0x20];
4407
4408 u8 resp_remote_access_errors[0x20];
4409
4410 u8 req_remote_operation_errors[0x20];
4411
4412 u8 req_transport_retries_exceeded[0x20];
4413
4414 u8 cq_overflow[0x20];
4415
4416 u8 resp_cqe_flush_error[0x20];
4417
4418 u8 req_cqe_flush_error[0x20];
4419
4420 u8 reserved_at_620[0x1e0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004421};
4422
4423struct mlx5_ifc_query_q_counter_in_bits {
4424 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004425 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004426
Matan Barakb4ff3a32016-02-09 14:57:42 +02004427 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004428 u8 op_mod[0x10];
4429
Matan Barakb4ff3a32016-02-09 14:57:42 +02004430 u8 reserved_at_40[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03004431
4432 u8 clear[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004433 u8 reserved_at_c1[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03004434
Matan Barakb4ff3a32016-02-09 14:57:42 +02004435 u8 reserved_at_e0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004436 u8 counter_set_id[0x8];
4437};
4438
4439struct mlx5_ifc_query_pages_out_bits {
4440 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004441 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004442
4443 u8 syndrome[0x20];
4444
Bodong Wang591905b2019-02-12 22:55:35 -08004445 u8 embedded_cpu_function[0x1];
4446 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03004447 u8 function_id[0x10];
4448
4449 u8 num_pages[0x20];
4450};
4451
4452enum {
4453 MLX5_QUERY_PAGES_IN_OP_MOD_BOOT_PAGES = 0x1,
4454 MLX5_QUERY_PAGES_IN_OP_MOD_INIT_PAGES = 0x2,
4455 MLX5_QUERY_PAGES_IN_OP_MOD_REGULAR_PAGES = 0x3,
4456};
4457
4458struct mlx5_ifc_query_pages_in_bits {
4459 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004460 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004461
Matan Barakb4ff3a32016-02-09 14:57:42 +02004462 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004463 u8 op_mod[0x10];
4464
Bodong Wang591905b2019-02-12 22:55:35 -08004465 u8 embedded_cpu_function[0x1];
4466 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03004467 u8 function_id[0x10];
4468
Matan Barakb4ff3a32016-02-09 14:57:42 +02004469 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004470};
4471
4472struct mlx5_ifc_query_nic_vport_context_out_bits {
4473 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004474 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004475
4476 u8 syndrome[0x20];
4477
Matan Barakb4ff3a32016-02-09 14:57:42 +02004478 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004479
4480 struct mlx5_ifc_nic_vport_context_bits nic_vport_context;
4481};
4482
4483struct mlx5_ifc_query_nic_vport_context_in_bits {
4484 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004485 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004486
Matan Barakb4ff3a32016-02-09 14:57:42 +02004487 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004488 u8 op_mod[0x10];
4489
4490 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004491 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03004492 u8 vport_number[0x10];
4493
Matan Barakb4ff3a32016-02-09 14:57:42 +02004494 u8 reserved_at_60[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03004495 u8 allowed_list_type[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004496 u8 reserved_at_68[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004497};
4498
4499struct mlx5_ifc_query_mkey_out_bits {
4500 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004501 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004502
4503 u8 syndrome[0x20];
4504
Matan Barakb4ff3a32016-02-09 14:57:42 +02004505 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004506
4507 struct mlx5_ifc_mkc_bits memory_key_mkey_entry;
4508
Matan Barakb4ff3a32016-02-09 14:57:42 +02004509 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03004510
4511 u8 bsf0_klm0_pas_mtt0_1[16][0x8];
4512
4513 u8 bsf1_klm1_pas_mtt2_3[16][0x8];
4514};
4515
4516struct mlx5_ifc_query_mkey_in_bits {
4517 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004518 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004519
Matan Barakb4ff3a32016-02-09 14:57:42 +02004520 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004521 u8 op_mod[0x10];
4522
Matan Barakb4ff3a32016-02-09 14:57:42 +02004523 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004524 u8 mkey_index[0x18];
4525
4526 u8 pg_access[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004527 u8 reserved_at_61[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03004528};
4529
4530struct mlx5_ifc_query_mad_demux_out_bits {
4531 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004532 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004533
4534 u8 syndrome[0x20];
4535
Matan Barakb4ff3a32016-02-09 14:57:42 +02004536 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004537
4538 u8 mad_dumux_parameters_block[0x20];
4539};
4540
4541struct mlx5_ifc_query_mad_demux_in_bits {
4542 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004543 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004544
Matan Barakb4ff3a32016-02-09 14:57:42 +02004545 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004546 u8 op_mod[0x10];
4547
Matan Barakb4ff3a32016-02-09 14:57:42 +02004548 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004549};
4550
4551struct mlx5_ifc_query_l2_table_entry_out_bits {
4552 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004553 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004554
4555 u8 syndrome[0x20];
4556
Matan Barakb4ff3a32016-02-09 14:57:42 +02004557 u8 reserved_at_40[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004558
Matan Barakb4ff3a32016-02-09 14:57:42 +02004559 u8 reserved_at_e0[0x13];
Saeed Mahameede2816822015-05-28 22:28:40 +03004560 u8 vlan_valid[0x1];
4561 u8 vlan[0xc];
4562
4563 struct mlx5_ifc_mac_address_layout_bits mac_address;
4564
Matan Barakb4ff3a32016-02-09 14:57:42 +02004565 u8 reserved_at_140[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004566};
4567
4568struct mlx5_ifc_query_l2_table_entry_in_bits {
4569 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004570 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004571
Matan Barakb4ff3a32016-02-09 14:57:42 +02004572 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004573 u8 op_mod[0x10];
4574
Matan Barakb4ff3a32016-02-09 14:57:42 +02004575 u8 reserved_at_40[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03004576
Matan Barakb4ff3a32016-02-09 14:57:42 +02004577 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004578 u8 table_index[0x18];
4579
Matan Barakb4ff3a32016-02-09 14:57:42 +02004580 u8 reserved_at_c0[0x140];
Saeed Mahameede2816822015-05-28 22:28:40 +03004581};
4582
4583struct mlx5_ifc_query_issi_out_bits {
4584 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004585 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004586
4587 u8 syndrome[0x20];
4588
Matan Barakb4ff3a32016-02-09 14:57:42 +02004589 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004590 u8 current_issi[0x10];
4591
Matan Barakb4ff3a32016-02-09 14:57:42 +02004592 u8 reserved_at_60[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004593
Matan Barakb4ff3a32016-02-09 14:57:42 +02004594 u8 reserved_at_100[76][0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004595 u8 supported_issi_dw0[0x20];
4596};
4597
4598struct mlx5_ifc_query_issi_in_bits {
4599 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004600 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004601
Matan Barakb4ff3a32016-02-09 14:57:42 +02004602 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004603 u8 op_mod[0x10];
4604
Matan Barakb4ff3a32016-02-09 14:57:42 +02004605 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004606};
4607
Saeed Mahameed0dbc6fe2016-11-17 13:45:59 +02004608struct mlx5_ifc_set_driver_version_out_bits {
4609 u8 status[0x8];
4610 u8 reserved_0[0x18];
4611
4612 u8 syndrome[0x20];
4613 u8 reserved_1[0x40];
4614};
4615
4616struct mlx5_ifc_set_driver_version_in_bits {
4617 u8 opcode[0x10];
4618 u8 reserved_0[0x10];
4619
4620 u8 reserved_1[0x10];
4621 u8 op_mod[0x10];
4622
4623 u8 reserved_2[0x40];
4624 u8 driver_version[64][0x8];
4625};
4626
Saeed Mahameede2816822015-05-28 22:28:40 +03004627struct mlx5_ifc_query_hca_vport_pkey_out_bits {
4628 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004629 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004630
4631 u8 syndrome[0x20];
4632
Matan Barakb4ff3a32016-02-09 14:57:42 +02004633 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004634
4635 struct mlx5_ifc_pkey_bits pkey[0];
4636};
4637
4638struct mlx5_ifc_query_hca_vport_pkey_in_bits {
4639 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004640 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004641
Matan Barakb4ff3a32016-02-09 14:57:42 +02004642 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004643 u8 op_mod[0x10];
4644
4645 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004646 u8 reserved_at_41[0xb];
Majd Dibbiny707c4602015-06-04 19:30:41 +03004647 u8 port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03004648 u8 vport_number[0x10];
4649
Matan Barakb4ff3a32016-02-09 14:57:42 +02004650 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004651 u8 pkey_index[0x10];
4652};
4653
Eli Coheneff901d2016-03-11 22:58:42 +02004654enum {
4655 MLX5_HCA_VPORT_SEL_PORT_GUID = 1 << 0,
4656 MLX5_HCA_VPORT_SEL_NODE_GUID = 1 << 1,
4657 MLX5_HCA_VPORT_SEL_STATE_POLICY = 1 << 2,
4658};
4659
Saeed Mahameede2816822015-05-28 22:28:40 +03004660struct mlx5_ifc_query_hca_vport_gid_out_bits {
4661 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004662 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004663
4664 u8 syndrome[0x20];
4665
Matan Barakb4ff3a32016-02-09 14:57:42 +02004666 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004667
4668 u8 gids_num[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004669 u8 reserved_at_70[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004670
4671 struct mlx5_ifc_array128_auto_bits gid[0];
4672};
4673
4674struct mlx5_ifc_query_hca_vport_gid_in_bits {
4675 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004676 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004677
Matan Barakb4ff3a32016-02-09 14:57:42 +02004678 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004679 u8 op_mod[0x10];
4680
4681 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004682 u8 reserved_at_41[0xb];
Majd Dibbiny707c4602015-06-04 19:30:41 +03004683 u8 port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03004684 u8 vport_number[0x10];
4685
Matan Barakb4ff3a32016-02-09 14:57:42 +02004686 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004687 u8 gid_index[0x10];
4688};
4689
4690struct mlx5_ifc_query_hca_vport_context_out_bits {
4691 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004692 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004693
4694 u8 syndrome[0x20];
4695
Matan Barakb4ff3a32016-02-09 14:57:42 +02004696 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004697
4698 struct mlx5_ifc_hca_vport_context_bits hca_vport_context;
4699};
4700
4701struct mlx5_ifc_query_hca_vport_context_in_bits {
4702 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004703 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004704
Matan Barakb4ff3a32016-02-09 14:57:42 +02004705 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004706 u8 op_mod[0x10];
4707
4708 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004709 u8 reserved_at_41[0xb];
Majd Dibbiny707c4602015-06-04 19:30:41 +03004710 u8 port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03004711 u8 vport_number[0x10];
4712
Matan Barakb4ff3a32016-02-09 14:57:42 +02004713 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004714};
4715
4716struct mlx5_ifc_query_hca_cap_out_bits {
4717 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004718 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004719
4720 u8 syndrome[0x20];
4721
Matan Barakb4ff3a32016-02-09 14:57:42 +02004722 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004723
4724 union mlx5_ifc_hca_cap_union_bits capability;
Eli Cohenb7755162014-10-02 12:19:44 +03004725};
4726
4727struct mlx5_ifc_query_hca_cap_in_bits {
4728 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004729 u8 reserved_at_10[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03004730
Matan Barakb4ff3a32016-02-09 14:57:42 +02004731 u8 reserved_at_20[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03004732 u8 op_mod[0x10];
4733
Matan Barakb4ff3a32016-02-09 14:57:42 +02004734 u8 reserved_at_40[0x40];
Eli Cohenb7755162014-10-02 12:19:44 +03004735};
4736
Saeed Mahameede2816822015-05-28 22:28:40 +03004737struct mlx5_ifc_query_flow_table_out_bits {
Eli Cohenb7755162014-10-02 12:19:44 +03004738 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004739 u8 reserved_at_8[0x18];
Eli Cohenb7755162014-10-02 12:19:44 +03004740
4741 u8 syndrome[0x20];
4742
Matan Barakb4ff3a32016-02-09 14:57:42 +02004743 u8 reserved_at_40[0x80];
Eli Cohenb7755162014-10-02 12:19:44 +03004744
Matan Barakb4ff3a32016-02-09 14:57:42 +02004745 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004746 u8 level[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004747 u8 reserved_at_d0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004748 u8 log_size[0x8];
4749
Matan Barakb4ff3a32016-02-09 14:57:42 +02004750 u8 reserved_at_e0[0x120];
Eli Cohenb7755162014-10-02 12:19:44 +03004751};
4752
Saeed Mahameede2816822015-05-28 22:28:40 +03004753struct mlx5_ifc_query_flow_table_in_bits {
4754 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004755 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004756
Matan Barakb4ff3a32016-02-09 14:57:42 +02004757 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004758 u8 op_mod[0x10];
4759
Matan Barakb4ff3a32016-02-09 14:57:42 +02004760 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004761
4762 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004763 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004764
Matan Barakb4ff3a32016-02-09 14:57:42 +02004765 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004766 u8 table_id[0x18];
4767
Matan Barakb4ff3a32016-02-09 14:57:42 +02004768 u8 reserved_at_c0[0x140];
Saeed Mahameede2816822015-05-28 22:28:40 +03004769};
4770
4771struct mlx5_ifc_query_fte_out_bits {
4772 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004773 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004774
4775 u8 syndrome[0x20];
4776
Matan Barakb4ff3a32016-02-09 14:57:42 +02004777 u8 reserved_at_40[0x1c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004778
4779 struct mlx5_ifc_flow_context_bits flow_context;
4780};
4781
4782struct mlx5_ifc_query_fte_in_bits {
4783 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004784 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004785
Matan Barakb4ff3a32016-02-09 14:57:42 +02004786 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004787 u8 op_mod[0x10];
4788
Matan Barakb4ff3a32016-02-09 14:57:42 +02004789 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004790
4791 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004792 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004793
Matan Barakb4ff3a32016-02-09 14:57:42 +02004794 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004795 u8 table_id[0x18];
4796
Matan Barakb4ff3a32016-02-09 14:57:42 +02004797 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004798
4799 u8 flow_index[0x20];
4800
Matan Barakb4ff3a32016-02-09 14:57:42 +02004801 u8 reserved_at_120[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004802};
4803
4804enum {
4805 MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_OUTER_HEADERS = 0x0,
4806 MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS = 0x1,
4807 MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_INNER_HEADERS = 0x2,
Saeed Mahameed4c8b8512018-12-12 19:11:36 -08004808 MLX5_QUERY_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS_2 = 0x3,
Saeed Mahameede2816822015-05-28 22:28:40 +03004809};
4810
4811struct mlx5_ifc_query_flow_group_out_bits {
4812 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004813 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004814
4815 u8 syndrome[0x20];
4816
Matan Barakb4ff3a32016-02-09 14:57:42 +02004817 u8 reserved_at_40[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004818
4819 u8 start_flow_index[0x20];
4820
Matan Barakb4ff3a32016-02-09 14:57:42 +02004821 u8 reserved_at_100[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004822
4823 u8 end_flow_index[0x20];
4824
Matan Barakb4ff3a32016-02-09 14:57:42 +02004825 u8 reserved_at_140[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004826
Matan Barakb4ff3a32016-02-09 14:57:42 +02004827 u8 reserved_at_1e0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004828 u8 match_criteria_enable[0x8];
4829
4830 struct mlx5_ifc_fte_match_param_bits match_criteria;
4831
Matan Barakb4ff3a32016-02-09 14:57:42 +02004832 u8 reserved_at_1200[0xe00];
Saeed Mahameede2816822015-05-28 22:28:40 +03004833};
4834
4835struct mlx5_ifc_query_flow_group_in_bits {
4836 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004837 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004838
Matan Barakb4ff3a32016-02-09 14:57:42 +02004839 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004840 u8 op_mod[0x10];
4841
Matan Barakb4ff3a32016-02-09 14:57:42 +02004842 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004843
4844 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004845 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004846
Matan Barakb4ff3a32016-02-09 14:57:42 +02004847 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004848 u8 table_id[0x18];
4849
4850 u8 group_id[0x20];
4851
Matan Barakb4ff3a32016-02-09 14:57:42 +02004852 u8 reserved_at_e0[0x120];
Saeed Mahameede2816822015-05-28 22:28:40 +03004853};
4854
Amir Vadai9dc0b282016-05-13 12:55:39 +00004855struct mlx5_ifc_query_flow_counter_out_bits {
4856 u8 status[0x8];
4857 u8 reserved_at_8[0x18];
4858
4859 u8 syndrome[0x20];
4860
4861 u8 reserved_at_40[0x40];
4862
4863 struct mlx5_ifc_traffic_counter_bits flow_statistics[0];
4864};
4865
4866struct mlx5_ifc_query_flow_counter_in_bits {
4867 u8 opcode[0x10];
4868 u8 reserved_at_10[0x10];
4869
4870 u8 reserved_at_20[0x10];
4871 u8 op_mod[0x10];
4872
4873 u8 reserved_at_40[0x80];
4874
4875 u8 clear[0x1];
4876 u8 reserved_at_c1[0xf];
4877 u8 num_of_counters[0x10];
4878
Rabie Louloua8ffcc72017-07-09 13:39:30 +03004879 u8 flow_counter_id[0x20];
Amir Vadai9dc0b282016-05-13 12:55:39 +00004880};
4881
Saeed Mahameedd6666752015-12-01 18:03:22 +02004882struct mlx5_ifc_query_esw_vport_context_out_bits {
4883 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004884 u8 reserved_at_8[0x18];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004885
4886 u8 syndrome[0x20];
4887
Matan Barakb4ff3a32016-02-09 14:57:42 +02004888 u8 reserved_at_40[0x40];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004889
4890 struct mlx5_ifc_esw_vport_context_bits esw_vport_context;
4891};
4892
4893struct mlx5_ifc_query_esw_vport_context_in_bits {
4894 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004895 u8 reserved_at_10[0x10];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004896
Matan Barakb4ff3a32016-02-09 14:57:42 +02004897 u8 reserved_at_20[0x10];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004898 u8 op_mod[0x10];
4899
4900 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004901 u8 reserved_at_41[0xf];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004902 u8 vport_number[0x10];
4903
Matan Barakb4ff3a32016-02-09 14:57:42 +02004904 u8 reserved_at_60[0x20];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004905};
4906
4907struct mlx5_ifc_modify_esw_vport_context_out_bits {
4908 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004909 u8 reserved_at_8[0x18];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004910
4911 u8 syndrome[0x20];
4912
Matan Barakb4ff3a32016-02-09 14:57:42 +02004913 u8 reserved_at_40[0x40];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004914};
4915
4916struct mlx5_ifc_esw_vport_context_fields_select_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02004917 u8 reserved_at_0[0x1c];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004918 u8 vport_cvlan_insert[0x1];
4919 u8 vport_svlan_insert[0x1];
4920 u8 vport_cvlan_strip[0x1];
4921 u8 vport_svlan_strip[0x1];
4922};
4923
4924struct mlx5_ifc_modify_esw_vport_context_in_bits {
4925 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004926 u8 reserved_at_10[0x10];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004927
Matan Barakb4ff3a32016-02-09 14:57:42 +02004928 u8 reserved_at_20[0x10];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004929 u8 op_mod[0x10];
4930
4931 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004932 u8 reserved_at_41[0xf];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004933 u8 vport_number[0x10];
4934
4935 struct mlx5_ifc_esw_vport_context_fields_select_bits field_select;
4936
4937 struct mlx5_ifc_esw_vport_context_bits esw_vport_context;
4938};
4939
Saeed Mahameede2816822015-05-28 22:28:40 +03004940struct mlx5_ifc_query_eq_out_bits {
Eli Cohenb7755162014-10-02 12:19:44 +03004941 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004942 u8 reserved_at_8[0x18];
Eli Cohenb7755162014-10-02 12:19:44 +03004943
4944 u8 syndrome[0x20];
4945
Matan Barakb4ff3a32016-02-09 14:57:42 +02004946 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004947
4948 struct mlx5_ifc_eqc_bits eq_context_entry;
4949
Matan Barakb4ff3a32016-02-09 14:57:42 +02004950 u8 reserved_at_280[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004951
4952 u8 event_bitmask[0x40];
4953
Matan Barakb4ff3a32016-02-09 14:57:42 +02004954 u8 reserved_at_300[0x580];
Saeed Mahameede2816822015-05-28 22:28:40 +03004955
4956 u8 pas[0][0x40];
4957};
4958
4959struct mlx5_ifc_query_eq_in_bits {
4960 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004961 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004962
Matan Barakb4ff3a32016-02-09 14:57:42 +02004963 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004964 u8 op_mod[0x10];
4965
Matan Barakb4ff3a32016-02-09 14:57:42 +02004966 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004967 u8 eq_number[0x8];
4968
Matan Barakb4ff3a32016-02-09 14:57:42 +02004969 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004970};
4971
Mark Bloch60786f02018-08-28 14:18:46 +03004972struct mlx5_ifc_packet_reformat_context_in_bits {
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03004973 u8 reserved_at_0[0x5];
Mark Bloch60786f02018-08-28 14:18:46 +03004974 u8 reformat_type[0x3];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03004975 u8 reserved_at_8[0xe];
Mark Bloch60786f02018-08-28 14:18:46 +03004976 u8 reformat_data_size[0xa];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03004977
4978 u8 reserved_at_20[0x10];
Mark Bloch60786f02018-08-28 14:18:46 +03004979 u8 reformat_data[2][0x8];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03004980
Mark Bloch60786f02018-08-28 14:18:46 +03004981 u8 more_reformat_data[0][0x8];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03004982};
4983
Mark Bloch60786f02018-08-28 14:18:46 +03004984struct mlx5_ifc_query_packet_reformat_context_out_bits {
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03004985 u8 status[0x8];
4986 u8 reserved_at_8[0x18];
4987
4988 u8 syndrome[0x20];
4989
4990 u8 reserved_at_40[0xa0];
4991
Mark Bloch60786f02018-08-28 14:18:46 +03004992 struct mlx5_ifc_packet_reformat_context_in_bits packet_reformat_context[0];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03004993};
4994
Mark Bloch60786f02018-08-28 14:18:46 +03004995struct mlx5_ifc_query_packet_reformat_context_in_bits {
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03004996 u8 opcode[0x10];
4997 u8 reserved_at_10[0x10];
4998
4999 u8 reserved_at_20[0x10];
5000 u8 op_mod[0x10];
5001
Mark Bloch60786f02018-08-28 14:18:46 +03005002 u8 packet_reformat_id[0x20];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005003
5004 u8 reserved_at_60[0xa0];
5005};
5006
Mark Bloch60786f02018-08-28 14:18:46 +03005007struct mlx5_ifc_alloc_packet_reformat_context_out_bits {
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005008 u8 status[0x8];
5009 u8 reserved_at_8[0x18];
5010
5011 u8 syndrome[0x20];
5012
Mark Bloch60786f02018-08-28 14:18:46 +03005013 u8 packet_reformat_id[0x20];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005014
5015 u8 reserved_at_60[0x20];
5016};
5017
Mark Bloche0e7a382018-08-28 14:18:45 +03005018enum {
Mark Bloch60786f02018-08-28 14:18:46 +03005019 MLX5_REFORMAT_TYPE_L2_TO_VXLAN = 0x0,
5020 MLX5_REFORMAT_TYPE_L2_TO_NVGRE = 0x1,
Mark Blochbea4e1f2018-08-28 14:18:47 +03005021 MLX5_REFORMAT_TYPE_L2_TO_L2_TUNNEL = 0x2,
5022 MLX5_REFORMAT_TYPE_L3_TUNNEL_TO_L2 = 0x3,
5023 MLX5_REFORMAT_TYPE_L2_TO_L3_TUNNEL = 0x4,
Mark Bloche0e7a382018-08-28 14:18:45 +03005024};
5025
Mark Bloch60786f02018-08-28 14:18:46 +03005026struct mlx5_ifc_alloc_packet_reformat_context_in_bits {
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005027 u8 opcode[0x10];
5028 u8 reserved_at_10[0x10];
5029
5030 u8 reserved_at_20[0x10];
5031 u8 op_mod[0x10];
5032
5033 u8 reserved_at_40[0xa0];
5034
Mark Bloch60786f02018-08-28 14:18:46 +03005035 struct mlx5_ifc_packet_reformat_context_in_bits packet_reformat_context;
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005036};
5037
Mark Bloch60786f02018-08-28 14:18:46 +03005038struct mlx5_ifc_dealloc_packet_reformat_context_out_bits {
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005039 u8 status[0x8];
5040 u8 reserved_at_8[0x18];
5041
5042 u8 syndrome[0x20];
5043
5044 u8 reserved_at_40[0x40];
5045};
5046
Mark Bloch60786f02018-08-28 14:18:46 +03005047struct mlx5_ifc_dealloc_packet_reformat_context_in_bits {
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005048 u8 opcode[0x10];
5049 u8 reserved_at_10[0x10];
5050
5051 u8 reserved_20[0x10];
5052 u8 op_mod[0x10];
5053
Mark Bloch60786f02018-08-28 14:18:46 +03005054 u8 packet_reformat_id[0x20];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03005055
5056 u8 reserved_60[0x20];
5057};
5058
Or Gerlitz2a69cb92017-01-19 19:31:25 +02005059struct mlx5_ifc_set_action_in_bits {
5060 u8 action_type[0x4];
5061 u8 field[0xc];
5062 u8 reserved_at_10[0x3];
5063 u8 offset[0x5];
5064 u8 reserved_at_18[0x3];
5065 u8 length[0x5];
5066
5067 u8 data[0x20];
5068};
5069
5070struct mlx5_ifc_add_action_in_bits {
5071 u8 action_type[0x4];
5072 u8 field[0xc];
5073 u8 reserved_at_10[0x10];
5074
5075 u8 data[0x20];
5076};
5077
5078union mlx5_ifc_set_action_in_add_action_in_auto_bits {
5079 struct mlx5_ifc_set_action_in_bits set_action_in;
5080 struct mlx5_ifc_add_action_in_bits add_action_in;
5081 u8 reserved_at_0[0x40];
5082};
5083
5084enum {
5085 MLX5_ACTION_TYPE_SET = 0x1,
5086 MLX5_ACTION_TYPE_ADD = 0x2,
5087};
5088
5089enum {
5090 MLX5_ACTION_IN_FIELD_OUT_SMAC_47_16 = 0x1,
5091 MLX5_ACTION_IN_FIELD_OUT_SMAC_15_0 = 0x2,
5092 MLX5_ACTION_IN_FIELD_OUT_ETHERTYPE = 0x3,
5093 MLX5_ACTION_IN_FIELD_OUT_DMAC_47_16 = 0x4,
5094 MLX5_ACTION_IN_FIELD_OUT_DMAC_15_0 = 0x5,
5095 MLX5_ACTION_IN_FIELD_OUT_IP_DSCP = 0x6,
5096 MLX5_ACTION_IN_FIELD_OUT_TCP_FLAGS = 0x7,
5097 MLX5_ACTION_IN_FIELD_OUT_TCP_SPORT = 0x8,
5098 MLX5_ACTION_IN_FIELD_OUT_TCP_DPORT = 0x9,
5099 MLX5_ACTION_IN_FIELD_OUT_IP_TTL = 0xa,
5100 MLX5_ACTION_IN_FIELD_OUT_UDP_SPORT = 0xb,
5101 MLX5_ACTION_IN_FIELD_OUT_UDP_DPORT = 0xc,
5102 MLX5_ACTION_IN_FIELD_OUT_SIPV6_127_96 = 0xd,
5103 MLX5_ACTION_IN_FIELD_OUT_SIPV6_95_64 = 0xe,
5104 MLX5_ACTION_IN_FIELD_OUT_SIPV6_63_32 = 0xf,
5105 MLX5_ACTION_IN_FIELD_OUT_SIPV6_31_0 = 0x10,
5106 MLX5_ACTION_IN_FIELD_OUT_DIPV6_127_96 = 0x11,
5107 MLX5_ACTION_IN_FIELD_OUT_DIPV6_95_64 = 0x12,
5108 MLX5_ACTION_IN_FIELD_OUT_DIPV6_63_32 = 0x13,
5109 MLX5_ACTION_IN_FIELD_OUT_DIPV6_31_0 = 0x14,
5110 MLX5_ACTION_IN_FIELD_OUT_SIPV4 = 0x15,
5111 MLX5_ACTION_IN_FIELD_OUT_DIPV4 = 0x16,
Or Gerlitz0c0316f2017-06-13 11:09:57 +03005112 MLX5_ACTION_IN_FIELD_OUT_IPV6_HOPLIMIT = 0x47,
Or Gerlitz2a69cb92017-01-19 19:31:25 +02005113};
5114
5115struct mlx5_ifc_alloc_modify_header_context_out_bits {
5116 u8 status[0x8];
5117 u8 reserved_at_8[0x18];
5118
5119 u8 syndrome[0x20];
5120
5121 u8 modify_header_id[0x20];
5122
5123 u8 reserved_at_60[0x20];
5124};
5125
5126struct mlx5_ifc_alloc_modify_header_context_in_bits {
5127 u8 opcode[0x10];
5128 u8 reserved_at_10[0x10];
5129
5130 u8 reserved_at_20[0x10];
5131 u8 op_mod[0x10];
5132
5133 u8 reserved_at_40[0x20];
5134
5135 u8 table_type[0x8];
5136 u8 reserved_at_68[0x10];
5137 u8 num_of_actions[0x8];
5138
5139 union mlx5_ifc_set_action_in_add_action_in_auto_bits actions[0];
5140};
5141
5142struct mlx5_ifc_dealloc_modify_header_context_out_bits {
5143 u8 status[0x8];
5144 u8 reserved_at_8[0x18];
5145
5146 u8 syndrome[0x20];
5147
5148 u8 reserved_at_40[0x40];
5149};
5150
5151struct mlx5_ifc_dealloc_modify_header_context_in_bits {
5152 u8 opcode[0x10];
5153 u8 reserved_at_10[0x10];
5154
5155 u8 reserved_at_20[0x10];
5156 u8 op_mod[0x10];
5157
5158 u8 modify_header_id[0x20];
5159
5160 u8 reserved_at_60[0x20];
5161};
5162
Saeed Mahameede2816822015-05-28 22:28:40 +03005163struct mlx5_ifc_query_dct_out_bits {
5164 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005165 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005166
5167 u8 syndrome[0x20];
5168
Matan Barakb4ff3a32016-02-09 14:57:42 +02005169 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005170
5171 struct mlx5_ifc_dctc_bits dct_context_entry;
5172
Matan Barakb4ff3a32016-02-09 14:57:42 +02005173 u8 reserved_at_280[0x180];
Saeed Mahameede2816822015-05-28 22:28:40 +03005174};
5175
5176struct mlx5_ifc_query_dct_in_bits {
5177 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005178 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005179
Matan Barakb4ff3a32016-02-09 14:57:42 +02005180 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005181 u8 op_mod[0x10];
5182
Matan Barakb4ff3a32016-02-09 14:57:42 +02005183 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005184 u8 dctn[0x18];
5185
Matan Barakb4ff3a32016-02-09 14:57:42 +02005186 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005187};
5188
5189struct mlx5_ifc_query_cq_out_bits {
5190 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005191 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005192
5193 u8 syndrome[0x20];
5194
Matan Barakb4ff3a32016-02-09 14:57:42 +02005195 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005196
5197 struct mlx5_ifc_cqc_bits cq_context;
5198
Matan Barakb4ff3a32016-02-09 14:57:42 +02005199 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03005200
5201 u8 pas[0][0x40];
5202};
5203
5204struct mlx5_ifc_query_cq_in_bits {
5205 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005206 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005207
Matan Barakb4ff3a32016-02-09 14:57:42 +02005208 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005209 u8 op_mod[0x10];
5210
Matan Barakb4ff3a32016-02-09 14:57:42 +02005211 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005212 u8 cqn[0x18];
5213
Matan Barakb4ff3a32016-02-09 14:57:42 +02005214 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005215};
5216
5217struct mlx5_ifc_query_cong_status_out_bits {
5218 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005219 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005220
5221 u8 syndrome[0x20];
5222
Matan Barakb4ff3a32016-02-09 14:57:42 +02005223 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005224
5225 u8 enable[0x1];
5226 u8 tag_enable[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005227 u8 reserved_at_62[0x1e];
Saeed Mahameede2816822015-05-28 22:28:40 +03005228};
5229
5230struct mlx5_ifc_query_cong_status_in_bits {
5231 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005232 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005233
Matan Barakb4ff3a32016-02-09 14:57:42 +02005234 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005235 u8 op_mod[0x10];
5236
Matan Barakb4ff3a32016-02-09 14:57:42 +02005237 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005238 u8 priority[0x4];
5239 u8 cong_protocol[0x4];
5240
Matan Barakb4ff3a32016-02-09 14:57:42 +02005241 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005242};
5243
5244struct mlx5_ifc_query_cong_statistics_out_bits {
5245 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005246 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005247
5248 u8 syndrome[0x20];
5249
Matan Barakb4ff3a32016-02-09 14:57:42 +02005250 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005251
Parav Pandite1f24a72017-04-16 07:29:29 +03005252 u8 rp_cur_flows[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005253
5254 u8 sum_flows[0x20];
5255
Parav Pandite1f24a72017-04-16 07:29:29 +03005256 u8 rp_cnp_ignored_high[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005257
Parav Pandite1f24a72017-04-16 07:29:29 +03005258 u8 rp_cnp_ignored_low[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005259
Parav Pandite1f24a72017-04-16 07:29:29 +03005260 u8 rp_cnp_handled_high[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005261
Parav Pandite1f24a72017-04-16 07:29:29 +03005262 u8 rp_cnp_handled_low[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005263
Matan Barakb4ff3a32016-02-09 14:57:42 +02005264 u8 reserved_at_140[0x100];
Saeed Mahameede2816822015-05-28 22:28:40 +03005265
5266 u8 time_stamp_high[0x20];
5267
5268 u8 time_stamp_low[0x20];
5269
5270 u8 accumulators_period[0x20];
5271
Parav Pandite1f24a72017-04-16 07:29:29 +03005272 u8 np_ecn_marked_roce_packets_high[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005273
Parav Pandite1f24a72017-04-16 07:29:29 +03005274 u8 np_ecn_marked_roce_packets_low[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005275
Parav Pandite1f24a72017-04-16 07:29:29 +03005276 u8 np_cnp_sent_high[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005277
Parav Pandite1f24a72017-04-16 07:29:29 +03005278 u8 np_cnp_sent_low[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005279
Matan Barakb4ff3a32016-02-09 14:57:42 +02005280 u8 reserved_at_320[0x560];
Saeed Mahameede2816822015-05-28 22:28:40 +03005281};
5282
5283struct mlx5_ifc_query_cong_statistics_in_bits {
5284 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005285 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005286
Matan Barakb4ff3a32016-02-09 14:57:42 +02005287 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005288 u8 op_mod[0x10];
5289
5290 u8 clear[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005291 u8 reserved_at_41[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03005292
Matan Barakb4ff3a32016-02-09 14:57:42 +02005293 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005294};
5295
5296struct mlx5_ifc_query_cong_params_out_bits {
5297 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005298 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005299
5300 u8 syndrome[0x20];
5301
Matan Barakb4ff3a32016-02-09 14:57:42 +02005302 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005303
5304 union mlx5_ifc_cong_control_roce_ecn_auto_bits congestion_parameters;
5305};
5306
5307struct mlx5_ifc_query_cong_params_in_bits {
5308 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005309 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005310
Matan Barakb4ff3a32016-02-09 14:57:42 +02005311 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005312 u8 op_mod[0x10];
5313
Matan Barakb4ff3a32016-02-09 14:57:42 +02005314 u8 reserved_at_40[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03005315 u8 cong_protocol[0x4];
5316
Matan Barakb4ff3a32016-02-09 14:57:42 +02005317 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005318};
5319
5320struct mlx5_ifc_query_adapter_out_bits {
5321 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005322 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005323
5324 u8 syndrome[0x20];
5325
Matan Barakb4ff3a32016-02-09 14:57:42 +02005326 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005327
5328 struct mlx5_ifc_query_adapter_param_block_bits query_adapter_struct;
5329};
5330
5331struct mlx5_ifc_query_adapter_in_bits {
5332 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005333 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005334
Matan Barakb4ff3a32016-02-09 14:57:42 +02005335 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005336 u8 op_mod[0x10];
5337
Matan Barakb4ff3a32016-02-09 14:57:42 +02005338 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005339};
5340
5341struct mlx5_ifc_qp_2rst_out_bits {
5342 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005343 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005344
5345 u8 syndrome[0x20];
5346
Matan Barakb4ff3a32016-02-09 14:57:42 +02005347 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005348};
5349
5350struct mlx5_ifc_qp_2rst_in_bits {
5351 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03005352 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005353
Matan Barakb4ff3a32016-02-09 14:57:42 +02005354 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005355 u8 op_mod[0x10];
5356
Matan Barakb4ff3a32016-02-09 14:57:42 +02005357 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005358 u8 qpn[0x18];
5359
Matan Barakb4ff3a32016-02-09 14:57:42 +02005360 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005361};
5362
5363struct mlx5_ifc_qp_2err_out_bits {
5364 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005365 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005366
5367 u8 syndrome[0x20];
5368
Matan Barakb4ff3a32016-02-09 14:57:42 +02005369 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005370};
5371
5372struct mlx5_ifc_qp_2err_in_bits {
5373 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03005374 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005375
Matan Barakb4ff3a32016-02-09 14:57:42 +02005376 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005377 u8 op_mod[0x10];
5378
Matan Barakb4ff3a32016-02-09 14:57:42 +02005379 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005380 u8 qpn[0x18];
5381
Matan Barakb4ff3a32016-02-09 14:57:42 +02005382 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005383};
5384
5385struct mlx5_ifc_page_fault_resume_out_bits {
5386 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005387 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005388
5389 u8 syndrome[0x20];
5390
Matan Barakb4ff3a32016-02-09 14:57:42 +02005391 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005392};
5393
5394struct mlx5_ifc_page_fault_resume_in_bits {
5395 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005396 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005397
Matan Barakb4ff3a32016-02-09 14:57:42 +02005398 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005399 u8 op_mod[0x10];
5400
5401 u8 error[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005402 u8 reserved_at_41[0x4];
Artemy Kovalyov223cdc72017-01-02 11:37:45 +02005403 u8 page_fault_type[0x3];
5404 u8 wq_number[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005405
Artemy Kovalyov223cdc72017-01-02 11:37:45 +02005406 u8 reserved_at_60[0x8];
5407 u8 token[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005408};
5409
5410struct mlx5_ifc_nop_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[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005417};
5418
5419struct mlx5_ifc_nop_in_bits {
5420 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005421 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005422
Matan Barakb4ff3a32016-02-09 14:57:42 +02005423 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005424 u8 op_mod[0x10];
5425
Matan Barakb4ff3a32016-02-09 14:57:42 +02005426 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005427};
5428
5429struct mlx5_ifc_modify_vport_state_out_bits {
5430 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005431 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005432
5433 u8 syndrome[0x20];
5434
Matan Barakb4ff3a32016-02-09 14:57:42 +02005435 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005436};
5437
5438struct mlx5_ifc_modify_vport_state_in_bits {
5439 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005440 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005441
Matan Barakb4ff3a32016-02-09 14:57:42 +02005442 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005443 u8 op_mod[0x10];
5444
5445 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005446 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03005447 u8 vport_number[0x10];
5448
Matan Barakb4ff3a32016-02-09 14:57:42 +02005449 u8 reserved_at_60[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005450 u8 admin_state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005451 u8 reserved_at_7c[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03005452};
5453
5454struct mlx5_ifc_modify_tis_out_bits {
5455 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005456 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005457
5458 u8 syndrome[0x20];
5459
Matan Barakb4ff3a32016-02-09 14:57:42 +02005460 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005461};
5462
majd@mellanox.com75850d02016-01-14 19:13:06 +02005463struct mlx5_ifc_modify_tis_bitmask_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02005464 u8 reserved_at_0[0x20];
majd@mellanox.com75850d02016-01-14 19:13:06 +02005465
Aviv Heller84df61e2016-05-10 13:47:50 +03005466 u8 reserved_at_20[0x1d];
5467 u8 lag_tx_port_affinity[0x1];
5468 u8 strict_lag_tx_port_affinity[0x1];
majd@mellanox.com75850d02016-01-14 19:13:06 +02005469 u8 prio[0x1];
5470};
5471
Saeed Mahameede2816822015-05-28 22:28:40 +03005472struct mlx5_ifc_modify_tis_in_bits {
5473 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03005474 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005475
Matan Barakb4ff3a32016-02-09 14:57:42 +02005476 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005477 u8 op_mod[0x10];
5478
Matan Barakb4ff3a32016-02-09 14:57:42 +02005479 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005480 u8 tisn[0x18];
5481
Matan Barakb4ff3a32016-02-09 14:57:42 +02005482 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005483
majd@mellanox.com75850d02016-01-14 19:13:06 +02005484 struct mlx5_ifc_modify_tis_bitmask_bits bitmask;
Saeed Mahameede2816822015-05-28 22:28:40 +03005485
Matan Barakb4ff3a32016-02-09 14:57:42 +02005486 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005487
5488 struct mlx5_ifc_tisc_bits ctx;
5489};
5490
Achiad Shochatd9eea402015-08-04 14:05:42 +03005491struct mlx5_ifc_modify_tir_bitmask_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02005492 u8 reserved_at_0[0x20];
Achiad Shochatd9eea402015-08-04 14:05:42 +03005493
Matan Barakb4ff3a32016-02-09 14:57:42 +02005494 u8 reserved_at_20[0x1b];
Tariq Toukan66189962015-11-12 19:35:26 +02005495 u8 self_lb_en[0x1];
Tariq Toukanbdfc0282016-02-29 21:17:12 +02005496 u8 reserved_at_3c[0x1];
5497 u8 hash[0x1];
5498 u8 reserved_at_3e[0x1];
Achiad Shochatd9eea402015-08-04 14:05:42 +03005499 u8 lro[0x1];
5500};
5501
Saeed Mahameede2816822015-05-28 22:28:40 +03005502struct mlx5_ifc_modify_tir_out_bits {
5503 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005504 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005505
5506 u8 syndrome[0x20];
5507
Matan Barakb4ff3a32016-02-09 14:57:42 +02005508 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005509};
5510
5511struct mlx5_ifc_modify_tir_in_bits {
5512 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03005513 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005514
Matan Barakb4ff3a32016-02-09 14:57:42 +02005515 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005516 u8 op_mod[0x10];
5517
Matan Barakb4ff3a32016-02-09 14:57:42 +02005518 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005519 u8 tirn[0x18];
5520
Matan Barakb4ff3a32016-02-09 14:57:42 +02005521 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005522
Achiad Shochatd9eea402015-08-04 14:05:42 +03005523 struct mlx5_ifc_modify_tir_bitmask_bits bitmask;
Saeed Mahameede2816822015-05-28 22:28:40 +03005524
Matan Barakb4ff3a32016-02-09 14:57:42 +02005525 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005526
5527 struct mlx5_ifc_tirc_bits ctx;
5528};
5529
5530struct mlx5_ifc_modify_sq_out_bits {
5531 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005532 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005533
5534 u8 syndrome[0x20];
5535
Matan Barakb4ff3a32016-02-09 14:57:42 +02005536 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005537};
5538
5539struct mlx5_ifc_modify_sq_in_bits {
5540 u8 opcode[0x10];
Yishai Hadas430ae0d52018-09-20 21:35:23 +03005541 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005542
Matan Barakb4ff3a32016-02-09 14:57:42 +02005543 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005544 u8 op_mod[0x10];
5545
5546 u8 sq_state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005547 u8 reserved_at_44[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03005548 u8 sqn[0x18];
5549
Matan Barakb4ff3a32016-02-09 14:57:42 +02005550 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005551
5552 u8 modify_bitmask[0x40];
5553
Matan Barakb4ff3a32016-02-09 14:57:42 +02005554 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005555
5556 struct mlx5_ifc_sqc_bits ctx;
5557};
5558
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03005559struct mlx5_ifc_modify_scheduling_element_out_bits {
5560 u8 status[0x8];
5561 u8 reserved_at_8[0x18];
5562
5563 u8 syndrome[0x20];
5564
5565 u8 reserved_at_40[0x1c0];
5566};
5567
5568enum {
5569 MODIFY_SCHEDULING_ELEMENT_IN_MODIFY_BITMASK_BW_SHARE = 0x1,
5570 MODIFY_SCHEDULING_ELEMENT_IN_MODIFY_BITMASK_MAX_AVERAGE_BW = 0x2,
5571};
5572
5573struct mlx5_ifc_modify_scheduling_element_in_bits {
5574 u8 opcode[0x10];
5575 u8 reserved_at_10[0x10];
5576
5577 u8 reserved_at_20[0x10];
5578 u8 op_mod[0x10];
5579
5580 u8 scheduling_hierarchy[0x8];
5581 u8 reserved_at_48[0x18];
5582
5583 u8 scheduling_element_id[0x20];
5584
5585 u8 reserved_at_80[0x20];
5586
5587 u8 modify_bitmask[0x20];
5588
5589 u8 reserved_at_c0[0x40];
5590
5591 struct mlx5_ifc_scheduling_context_bits scheduling_context;
5592
5593 u8 reserved_at_300[0x100];
5594};
5595
Saeed Mahameede2816822015-05-28 22:28:40 +03005596struct mlx5_ifc_modify_rqt_out_bits {
5597 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005598 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005599
5600 u8 syndrome[0x20];
5601
Matan Barakb4ff3a32016-02-09 14:57:42 +02005602 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005603};
5604
Achiad Shochat5c503682015-08-04 14:05:43 +03005605struct mlx5_ifc_rqt_bitmask_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02005606 u8 reserved_at_0[0x20];
Achiad Shochat5c503682015-08-04 14:05:43 +03005607
Matan Barakb4ff3a32016-02-09 14:57:42 +02005608 u8 reserved_at_20[0x1f];
Achiad Shochat5c503682015-08-04 14:05:43 +03005609 u8 rqn_list[0x1];
5610};
5611
Saeed Mahameede2816822015-05-28 22:28:40 +03005612struct mlx5_ifc_modify_rqt_in_bits {
5613 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03005614 u8 uid[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[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005620 u8 rqtn[0x18];
5621
Matan Barakb4ff3a32016-02-09 14:57:42 +02005622 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005623
Achiad Shochat5c503682015-08-04 14:05:43 +03005624 struct mlx5_ifc_rqt_bitmask_bits bitmask;
Saeed Mahameede2816822015-05-28 22:28:40 +03005625
Matan Barakb4ff3a32016-02-09 14:57:42 +02005626 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005627
5628 struct mlx5_ifc_rqtc_bits ctx;
5629};
5630
5631struct mlx5_ifc_modify_rq_out_bits {
5632 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005633 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005634
5635 u8 syndrome[0x20];
5636
Matan Barakb4ff3a32016-02-09 14:57:42 +02005637 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005638};
5639
Alex Vesker83b502a2016-08-04 17:32:02 +03005640enum {
5641 MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_VSD = 1ULL << 1,
Guy Ergas102722f2017-02-20 16:18:17 +02005642 MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_SCATTER_FCS = 1ULL << 2,
Majd Dibbiny23a69642017-01-18 15:25:10 +02005643 MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_RQ_COUNTER_SET_ID = 1ULL << 3,
Alex Vesker83b502a2016-08-04 17:32:02 +03005644};
5645
Saeed Mahameede2816822015-05-28 22:28:40 +03005646struct mlx5_ifc_modify_rq_in_bits {
5647 u8 opcode[0x10];
Yishai Hadasd269b3a2018-09-20 21:35:22 +03005648 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005649
Matan Barakb4ff3a32016-02-09 14:57:42 +02005650 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005651 u8 op_mod[0x10];
5652
5653 u8 rq_state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005654 u8 reserved_at_44[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03005655 u8 rqn[0x18];
5656
Matan Barakb4ff3a32016-02-09 14:57:42 +02005657 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005658
5659 u8 modify_bitmask[0x40];
5660
Matan Barakb4ff3a32016-02-09 14:57:42 +02005661 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005662
5663 struct mlx5_ifc_rqc_bits ctx;
5664};
5665
5666struct mlx5_ifc_modify_rmp_out_bits {
5667 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005668 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005669
5670 u8 syndrome[0x20];
5671
Matan Barakb4ff3a32016-02-09 14:57:42 +02005672 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005673};
5674
Haggai Abramonvsky01949d02015-06-04 19:30:38 +03005675struct mlx5_ifc_rmp_bitmask_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02005676 u8 reserved_at_0[0x20];
Haggai Abramonvsky01949d02015-06-04 19:30:38 +03005677
Matan Barakb4ff3a32016-02-09 14:57:42 +02005678 u8 reserved_at_20[0x1f];
Haggai Abramonvsky01949d02015-06-04 19:30:38 +03005679 u8 lwm[0x1];
5680};
5681
Saeed Mahameede2816822015-05-28 22:28:40 +03005682struct mlx5_ifc_modify_rmp_in_bits {
5683 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03005684 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005685
Matan Barakb4ff3a32016-02-09 14:57:42 +02005686 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005687 u8 op_mod[0x10];
5688
5689 u8 rmp_state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005690 u8 reserved_at_44[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03005691 u8 rmpn[0x18];
5692
Matan Barakb4ff3a32016-02-09 14:57:42 +02005693 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005694
Haggai Abramonvsky01949d02015-06-04 19:30:38 +03005695 struct mlx5_ifc_rmp_bitmask_bits bitmask;
Saeed Mahameede2816822015-05-28 22:28:40 +03005696
Matan Barakb4ff3a32016-02-09 14:57:42 +02005697 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005698
5699 struct mlx5_ifc_rmpc_bits ctx;
5700};
5701
5702struct mlx5_ifc_modify_nic_vport_context_out_bits {
5703 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005704 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005705
5706 u8 syndrome[0x20];
5707
Matan Barakb4ff3a32016-02-09 14:57:42 +02005708 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005709};
5710
5711struct mlx5_ifc_modify_nic_vport_field_select_bits {
Daniel Jurgens32f69e42018-01-04 17:25:36 +02005712 u8 reserved_at_0[0x12];
5713 u8 affiliation[0x1];
Gal Pressmanc74d90c2018-11-07 20:31:37 +02005714 u8 reserved_at_13[0x1];
Huy Nguyenbded7472017-05-30 09:42:53 +03005715 u8 disable_uc_local_lb[0x1];
5716 u8 disable_mc_local_lb[0x1];
Noa Osherovich23898c72016-06-10 00:07:37 +03005717 u8 node_guid[0x1];
5718 u8 port_guid[0x1];
Hadar Hen Zion9def7122016-08-03 17:27:30 +03005719 u8 min_inline[0x1];
Saeed Mahameedd82b7312015-12-01 18:03:14 +02005720 u8 mtu[0x1];
5721 u8 change_event[0x1];
5722 u8 promisc[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03005723 u8 permanent_address[0x1];
5724 u8 addresses_list[0x1];
5725 u8 roce_en[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005726 u8 reserved_at_1f[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03005727};
5728
5729struct mlx5_ifc_modify_nic_vport_context_in_bits {
5730 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005731 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005732
Matan Barakb4ff3a32016-02-09 14:57:42 +02005733 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005734 u8 op_mod[0x10];
5735
5736 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005737 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03005738 u8 vport_number[0x10];
5739
5740 struct mlx5_ifc_modify_nic_vport_field_select_bits field_select;
5741
Matan Barakb4ff3a32016-02-09 14:57:42 +02005742 u8 reserved_at_80[0x780];
Saeed Mahameede2816822015-05-28 22:28:40 +03005743
5744 struct mlx5_ifc_nic_vport_context_bits nic_vport_context;
5745};
5746
5747struct mlx5_ifc_modify_hca_vport_context_out_bits {
5748 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005749 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005750
5751 u8 syndrome[0x20];
5752
Matan Barakb4ff3a32016-02-09 14:57:42 +02005753 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005754};
5755
5756struct mlx5_ifc_modify_hca_vport_context_in_bits {
5757 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005758 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005759
Matan Barakb4ff3a32016-02-09 14:57:42 +02005760 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005761 u8 op_mod[0x10];
5762
5763 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005764 u8 reserved_at_41[0xb];
Majd Dibbiny707c4602015-06-04 19:30:41 +03005765 u8 port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03005766 u8 vport_number[0x10];
5767
Matan Barakb4ff3a32016-02-09 14:57:42 +02005768 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005769
5770 struct mlx5_ifc_hca_vport_context_bits hca_vport_context;
5771};
5772
5773struct mlx5_ifc_modify_cq_out_bits {
5774 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005775 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005776
5777 u8 syndrome[0x20];
5778
Matan Barakb4ff3a32016-02-09 14:57:42 +02005779 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005780};
5781
5782enum {
5783 MLX5_MODIFY_CQ_IN_OP_MOD_MODIFY_CQ = 0x0,
5784 MLX5_MODIFY_CQ_IN_OP_MOD_RESIZE_CQ = 0x1,
5785};
5786
5787struct mlx5_ifc_modify_cq_in_bits {
5788 u8 opcode[0x10];
Yishai Hadas9ba481e2eb2018-09-20 21:35:20 +03005789 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005790
Matan Barakb4ff3a32016-02-09 14:57:42 +02005791 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005792 u8 op_mod[0x10];
5793
Matan Barakb4ff3a32016-02-09 14:57:42 +02005794 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005795 u8 cqn[0x18];
5796
5797 union mlx5_ifc_modify_field_select_resize_field_select_auto_bits modify_field_select_resize_field_select;
5798
5799 struct mlx5_ifc_cqc_bits cq_context;
5800
Leon Romanovskybd371972018-09-20 21:35:26 +03005801 u8 reserved_at_280[0x40];
5802
5803 u8 cq_umem_valid[0x1];
5804 u8 reserved_at_2c1[0x5bf];
Saeed Mahameede2816822015-05-28 22:28:40 +03005805
5806 u8 pas[0][0x40];
5807};
5808
5809struct mlx5_ifc_modify_cong_status_out_bits {
5810 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005811 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005812
5813 u8 syndrome[0x20];
5814
Matan Barakb4ff3a32016-02-09 14:57:42 +02005815 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005816};
5817
5818struct mlx5_ifc_modify_cong_status_in_bits {
5819 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005820 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005821
Matan Barakb4ff3a32016-02-09 14:57:42 +02005822 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005823 u8 op_mod[0x10];
5824
Matan Barakb4ff3a32016-02-09 14:57:42 +02005825 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005826 u8 priority[0x4];
5827 u8 cong_protocol[0x4];
5828
5829 u8 enable[0x1];
5830 u8 tag_enable[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005831 u8 reserved_at_62[0x1e];
Saeed Mahameede2816822015-05-28 22:28:40 +03005832};
5833
5834struct mlx5_ifc_modify_cong_params_out_bits {
5835 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005836 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005837
5838 u8 syndrome[0x20];
5839
Matan Barakb4ff3a32016-02-09 14:57:42 +02005840 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005841};
5842
5843struct mlx5_ifc_modify_cong_params_in_bits {
5844 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005845 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005846
Matan Barakb4ff3a32016-02-09 14:57:42 +02005847 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005848 u8 op_mod[0x10];
5849
Matan Barakb4ff3a32016-02-09 14:57:42 +02005850 u8 reserved_at_40[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03005851 u8 cong_protocol[0x4];
5852
5853 union mlx5_ifc_field_select_802_1_r_roce_auto_bits field_select;
5854
Matan Barakb4ff3a32016-02-09 14:57:42 +02005855 u8 reserved_at_80[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03005856
5857 union mlx5_ifc_cong_control_roce_ecn_auto_bits congestion_parameters;
5858};
5859
5860struct mlx5_ifc_manage_pages_out_bits {
5861 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005862 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005863
5864 u8 syndrome[0x20];
5865
5866 u8 output_num_entries[0x20];
5867
Matan Barakb4ff3a32016-02-09 14:57:42 +02005868 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005869
5870 u8 pas[0][0x40];
5871};
5872
5873enum {
5874 MLX5_MANAGE_PAGES_IN_OP_MOD_ALLOCATION_FAIL = 0x0,
5875 MLX5_MANAGE_PAGES_IN_OP_MOD_ALLOCATION_SUCCESS = 0x1,
5876 MLX5_MANAGE_PAGES_IN_OP_MOD_HCA_RETURN_PAGES = 0x2,
5877};
5878
5879struct mlx5_ifc_manage_pages_in_bits {
5880 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005881 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005882
Matan Barakb4ff3a32016-02-09 14:57:42 +02005883 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005884 u8 op_mod[0x10];
5885
Bodong Wang591905b2019-02-12 22:55:35 -08005886 u8 embedded_cpu_function[0x1];
5887 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03005888 u8 function_id[0x10];
5889
5890 u8 input_num_entries[0x20];
5891
5892 u8 pas[0][0x40];
5893};
5894
5895struct mlx5_ifc_mad_ifc_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 u8 response_mad_packet[256][0x8];
5904};
5905
5906struct mlx5_ifc_mad_ifc_in_bits {
5907 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005908 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005909
Matan Barakb4ff3a32016-02-09 14:57:42 +02005910 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005911 u8 op_mod[0x10];
5912
5913 u8 remote_lid[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005914 u8 reserved_at_50[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005915 u8 port[0x8];
5916
Matan Barakb4ff3a32016-02-09 14:57:42 +02005917 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005918
5919 u8 mad[256][0x8];
5920};
5921
5922struct mlx5_ifc_init_hca_out_bits {
5923 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005924 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005925
5926 u8 syndrome[0x20];
5927
Matan Barakb4ff3a32016-02-09 14:57:42 +02005928 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005929};
5930
5931struct mlx5_ifc_init_hca_in_bits {
5932 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005933 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005934
Matan Barakb4ff3a32016-02-09 14:57:42 +02005935 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005936 u8 op_mod[0x10];
5937
Matan Barakb4ff3a32016-02-09 14:57:42 +02005938 u8 reserved_at_40[0x40];
Daniel Jurgens8737f812018-01-04 17:25:32 +02005939 u8 sw_owner_id[4][0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005940};
5941
5942struct mlx5_ifc_init2rtr_qp_out_bits {
5943 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005944 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005945
5946 u8 syndrome[0x20];
5947
Matan Barakb4ff3a32016-02-09 14:57:42 +02005948 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005949};
5950
5951struct mlx5_ifc_init2rtr_qp_in_bits {
5952 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03005953 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005954
Matan Barakb4ff3a32016-02-09 14:57:42 +02005955 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005956 u8 op_mod[0x10];
5957
Matan Barakb4ff3a32016-02-09 14:57:42 +02005958 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005959 u8 qpn[0x18];
5960
Matan Barakb4ff3a32016-02-09 14:57:42 +02005961 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005962
5963 u8 opt_param_mask[0x20];
5964
Matan Barakb4ff3a32016-02-09 14:57:42 +02005965 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005966
5967 struct mlx5_ifc_qpc_bits qpc;
5968
Matan Barakb4ff3a32016-02-09 14:57:42 +02005969 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03005970};
5971
5972struct mlx5_ifc_init2init_qp_out_bits {
5973 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005974 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005975
5976 u8 syndrome[0x20];
5977
Matan Barakb4ff3a32016-02-09 14:57:42 +02005978 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005979};
5980
5981struct mlx5_ifc_init2init_qp_in_bits {
5982 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03005983 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005984
Matan Barakb4ff3a32016-02-09 14:57:42 +02005985 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005986 u8 op_mod[0x10];
5987
Matan Barakb4ff3a32016-02-09 14:57:42 +02005988 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005989 u8 qpn[0x18];
5990
Matan Barakb4ff3a32016-02-09 14:57:42 +02005991 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005992
5993 u8 opt_param_mask[0x20];
5994
Matan Barakb4ff3a32016-02-09 14:57:42 +02005995 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005996
5997 struct mlx5_ifc_qpc_bits qpc;
5998
Matan Barakb4ff3a32016-02-09 14:57:42 +02005999 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03006000};
6001
6002struct mlx5_ifc_get_dropped_packet_log_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 u8 packet_headers_log[128][0x8];
6011
6012 u8 packet_syndrome[64][0x8];
6013};
6014
6015struct mlx5_ifc_get_dropped_packet_log_in_bits {
6016 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006017 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006018
Matan Barakb4ff3a32016-02-09 14:57:42 +02006019 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006020 u8 op_mod[0x10];
6021
Matan Barakb4ff3a32016-02-09 14:57:42 +02006022 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006023};
6024
6025struct mlx5_ifc_gen_eqe_in_bits {
6026 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006027 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006028
Matan Barakb4ff3a32016-02-09 14:57:42 +02006029 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006030 u8 op_mod[0x10];
6031
Matan Barakb4ff3a32016-02-09 14:57:42 +02006032 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006033 u8 eq_number[0x8];
6034
Matan Barakb4ff3a32016-02-09 14:57:42 +02006035 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006036
6037 u8 eqe[64][0x8];
6038};
6039
6040struct mlx5_ifc_gen_eq_out_bits {
6041 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006042 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006043
6044 u8 syndrome[0x20];
6045
Matan Barakb4ff3a32016-02-09 14:57:42 +02006046 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006047};
6048
6049struct mlx5_ifc_enable_hca_out_bits {
6050 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006051 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006052
6053 u8 syndrome[0x20];
6054
Matan Barakb4ff3a32016-02-09 14:57:42 +02006055 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006056};
6057
6058struct mlx5_ifc_enable_hca_in_bits {
6059 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006060 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006061
Matan Barakb4ff3a32016-02-09 14:57:42 +02006062 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006063 u8 op_mod[0x10];
6064
Bodong Wang22e939a2019-02-12 22:55:36 -08006065 u8 embedded_cpu_function[0x1];
6066 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03006067 u8 function_id[0x10];
6068
Matan Barakb4ff3a32016-02-09 14:57:42 +02006069 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006070};
6071
6072struct mlx5_ifc_drain_dct_out_bits {
6073 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006074 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006075
6076 u8 syndrome[0x20];
6077
Matan Barakb4ff3a32016-02-09 14:57:42 +02006078 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006079};
6080
6081struct mlx5_ifc_drain_dct_in_bits {
6082 u8 opcode[0x10];
Yishai Hadas774ea6e2018-09-20 21:35:25 +03006083 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006084
Matan Barakb4ff3a32016-02-09 14:57:42 +02006085 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006086 u8 op_mod[0x10];
6087
Matan Barakb4ff3a32016-02-09 14:57:42 +02006088 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006089 u8 dctn[0x18];
6090
Matan Barakb4ff3a32016-02-09 14:57:42 +02006091 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006092};
6093
6094struct mlx5_ifc_disable_hca_out_bits {
6095 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006096 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006097
6098 u8 syndrome[0x20];
6099
Matan Barakb4ff3a32016-02-09 14:57:42 +02006100 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006101};
6102
6103struct mlx5_ifc_disable_hca_in_bits {
6104 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006105 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006106
Matan Barakb4ff3a32016-02-09 14:57:42 +02006107 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006108 u8 op_mod[0x10];
6109
Bodong Wang22e939a2019-02-12 22:55:36 -08006110 u8 embedded_cpu_function[0x1];
6111 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03006112 u8 function_id[0x10];
6113
Matan Barakb4ff3a32016-02-09 14:57:42 +02006114 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006115};
6116
6117struct mlx5_ifc_detach_from_mcg_out_bits {
6118 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006119 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006120
6121 u8 syndrome[0x20];
6122
Matan Barakb4ff3a32016-02-09 14:57:42 +02006123 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006124};
6125
6126struct mlx5_ifc_detach_from_mcg_in_bits {
6127 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03006128 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006129
Matan Barakb4ff3a32016-02-09 14:57:42 +02006130 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006131 u8 op_mod[0x10];
6132
Matan Barakb4ff3a32016-02-09 14:57:42 +02006133 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006134 u8 qpn[0x18];
6135
Matan Barakb4ff3a32016-02-09 14:57:42 +02006136 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006137
6138 u8 multicast_gid[16][0x8];
6139};
6140
Saeed Mahameed74862162016-06-09 15:11:34 +03006141struct mlx5_ifc_destroy_xrq_out_bits {
6142 u8 status[0x8];
6143 u8 reserved_at_8[0x18];
6144
6145 u8 syndrome[0x20];
6146
6147 u8 reserved_at_40[0x40];
6148};
6149
6150struct mlx5_ifc_destroy_xrq_in_bits {
6151 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03006152 u8 uid[0x10];
Saeed Mahameed74862162016-06-09 15:11:34 +03006153
6154 u8 reserved_at_20[0x10];
6155 u8 op_mod[0x10];
6156
6157 u8 reserved_at_40[0x8];
6158 u8 xrqn[0x18];
6159
6160 u8 reserved_at_60[0x20];
6161};
6162
Saeed Mahameede2816822015-05-28 22:28:40 +03006163struct mlx5_ifc_destroy_xrc_srq_out_bits {
6164 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006165 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006166
6167 u8 syndrome[0x20];
6168
Matan Barakb4ff3a32016-02-09 14:57:42 +02006169 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006170};
6171
6172struct mlx5_ifc_destroy_xrc_srq_in_bits {
6173 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03006174 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006175
Matan Barakb4ff3a32016-02-09 14:57:42 +02006176 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006177 u8 op_mod[0x10];
6178
Matan Barakb4ff3a32016-02-09 14:57:42 +02006179 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006180 u8 xrc_srqn[0x18];
6181
Matan Barakb4ff3a32016-02-09 14:57:42 +02006182 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006183};
6184
6185struct mlx5_ifc_destroy_tis_out_bits {
6186 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006187 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006188
6189 u8 syndrome[0x20];
6190
Matan Barakb4ff3a32016-02-09 14:57:42 +02006191 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006192};
6193
6194struct mlx5_ifc_destroy_tis_in_bits {
6195 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03006196 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006197
Matan Barakb4ff3a32016-02-09 14:57:42 +02006198 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006199 u8 op_mod[0x10];
6200
Matan Barakb4ff3a32016-02-09 14:57:42 +02006201 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006202 u8 tisn[0x18];
6203
Matan Barakb4ff3a32016-02-09 14:57:42 +02006204 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006205};
6206
6207struct mlx5_ifc_destroy_tir_out_bits {
6208 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006209 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006210
6211 u8 syndrome[0x20];
6212
Matan Barakb4ff3a32016-02-09 14:57:42 +02006213 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006214};
6215
6216struct mlx5_ifc_destroy_tir_in_bits {
6217 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03006218 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006219
Matan Barakb4ff3a32016-02-09 14:57:42 +02006220 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006221 u8 op_mod[0x10];
6222
Matan Barakb4ff3a32016-02-09 14:57:42 +02006223 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006224 u8 tirn[0x18];
6225
Matan Barakb4ff3a32016-02-09 14:57:42 +02006226 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006227};
6228
6229struct mlx5_ifc_destroy_srq_out_bits {
6230 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006231 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006232
6233 u8 syndrome[0x20];
6234
Matan Barakb4ff3a32016-02-09 14:57:42 +02006235 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006236};
6237
6238struct mlx5_ifc_destroy_srq_in_bits {
6239 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03006240 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006241
Matan Barakb4ff3a32016-02-09 14:57:42 +02006242 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006243 u8 op_mod[0x10];
6244
Matan Barakb4ff3a32016-02-09 14:57:42 +02006245 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006246 u8 srqn[0x18];
6247
Matan Barakb4ff3a32016-02-09 14:57:42 +02006248 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006249};
6250
6251struct mlx5_ifc_destroy_sq_out_bits {
6252 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006253 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006254
6255 u8 syndrome[0x20];
6256
Matan Barakb4ff3a32016-02-09 14:57:42 +02006257 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006258};
6259
6260struct mlx5_ifc_destroy_sq_in_bits {
6261 u8 opcode[0x10];
Yishai Hadas430ae0d52018-09-20 21:35:23 +03006262 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006263
Matan Barakb4ff3a32016-02-09 14:57:42 +02006264 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006265 u8 op_mod[0x10];
6266
Matan Barakb4ff3a32016-02-09 14:57:42 +02006267 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006268 u8 sqn[0x18];
6269
Matan Barakb4ff3a32016-02-09 14:57:42 +02006270 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006271};
6272
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03006273struct mlx5_ifc_destroy_scheduling_element_out_bits {
6274 u8 status[0x8];
6275 u8 reserved_at_8[0x18];
6276
6277 u8 syndrome[0x20];
6278
6279 u8 reserved_at_40[0x1c0];
6280};
6281
6282struct mlx5_ifc_destroy_scheduling_element_in_bits {
6283 u8 opcode[0x10];
6284 u8 reserved_at_10[0x10];
6285
6286 u8 reserved_at_20[0x10];
6287 u8 op_mod[0x10];
6288
6289 u8 scheduling_hierarchy[0x8];
6290 u8 reserved_at_48[0x18];
6291
6292 u8 scheduling_element_id[0x20];
6293
6294 u8 reserved_at_80[0x180];
6295};
6296
Saeed Mahameede2816822015-05-28 22:28:40 +03006297struct mlx5_ifc_destroy_rqt_out_bits {
6298 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006299 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006300
6301 u8 syndrome[0x20];
6302
Matan Barakb4ff3a32016-02-09 14:57:42 +02006303 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006304};
6305
6306struct mlx5_ifc_destroy_rqt_in_bits {
6307 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03006308 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006309
Matan Barakb4ff3a32016-02-09 14:57:42 +02006310 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006311 u8 op_mod[0x10];
6312
Matan Barakb4ff3a32016-02-09 14:57:42 +02006313 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006314 u8 rqtn[0x18];
6315
Matan Barakb4ff3a32016-02-09 14:57:42 +02006316 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006317};
6318
6319struct mlx5_ifc_destroy_rq_out_bits {
6320 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006321 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006322
6323 u8 syndrome[0x20];
6324
Matan Barakb4ff3a32016-02-09 14:57:42 +02006325 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006326};
6327
6328struct mlx5_ifc_destroy_rq_in_bits {
6329 u8 opcode[0x10];
Yishai Hadasd269b3a2018-09-20 21:35:22 +03006330 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006331
Matan Barakb4ff3a32016-02-09 14:57:42 +02006332 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006333 u8 op_mod[0x10];
6334
Matan Barakb4ff3a32016-02-09 14:57:42 +02006335 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006336 u8 rqn[0x18];
6337
Matan Barakb4ff3a32016-02-09 14:57:42 +02006338 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006339};
6340
Maor Gottliebc1e0bfc2017-05-30 10:29:11 +03006341struct mlx5_ifc_set_delay_drop_params_in_bits {
6342 u8 opcode[0x10];
6343 u8 reserved_at_10[0x10];
6344
6345 u8 reserved_at_20[0x10];
6346 u8 op_mod[0x10];
6347
6348 u8 reserved_at_40[0x20];
6349
6350 u8 reserved_at_60[0x10];
6351 u8 delay_drop_timeout[0x10];
6352};
6353
6354struct mlx5_ifc_set_delay_drop_params_out_bits {
6355 u8 status[0x8];
6356 u8 reserved_at_8[0x18];
6357
6358 u8 syndrome[0x20];
6359
6360 u8 reserved_at_40[0x40];
6361};
6362
Saeed Mahameede2816822015-05-28 22:28:40 +03006363struct mlx5_ifc_destroy_rmp_out_bits {
6364 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006365 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006366
6367 u8 syndrome[0x20];
6368
Matan Barakb4ff3a32016-02-09 14:57:42 +02006369 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006370};
6371
6372struct mlx5_ifc_destroy_rmp_in_bits {
6373 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03006374 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006375
Matan Barakb4ff3a32016-02-09 14:57:42 +02006376 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006377 u8 op_mod[0x10];
6378
Matan Barakb4ff3a32016-02-09 14:57:42 +02006379 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006380 u8 rmpn[0x18];
6381
Matan Barakb4ff3a32016-02-09 14:57:42 +02006382 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006383};
6384
6385struct mlx5_ifc_destroy_qp_out_bits {
6386 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006387 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006388
6389 u8 syndrome[0x20];
6390
Matan Barakb4ff3a32016-02-09 14:57:42 +02006391 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006392};
6393
6394struct mlx5_ifc_destroy_qp_in_bits {
6395 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03006396 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006397
Matan Barakb4ff3a32016-02-09 14:57:42 +02006398 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006399 u8 op_mod[0x10];
6400
Matan Barakb4ff3a32016-02-09 14:57:42 +02006401 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006402 u8 qpn[0x18];
6403
Matan Barakb4ff3a32016-02-09 14:57:42 +02006404 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006405};
6406
6407struct mlx5_ifc_destroy_psv_out_bits {
6408 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006409 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006410
6411 u8 syndrome[0x20];
6412
Matan Barakb4ff3a32016-02-09 14:57:42 +02006413 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006414};
6415
6416struct mlx5_ifc_destroy_psv_in_bits {
6417 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006418 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006419
Matan Barakb4ff3a32016-02-09 14:57:42 +02006420 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006421 u8 op_mod[0x10];
6422
Matan Barakb4ff3a32016-02-09 14:57:42 +02006423 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006424 u8 psvn[0x18];
6425
Matan Barakb4ff3a32016-02-09 14:57:42 +02006426 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006427};
6428
6429struct mlx5_ifc_destroy_mkey_out_bits {
6430 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006431 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006432
6433 u8 syndrome[0x20];
6434
Matan Barakb4ff3a32016-02-09 14:57:42 +02006435 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006436};
6437
6438struct mlx5_ifc_destroy_mkey_in_bits {
6439 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006440 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006441
Matan Barakb4ff3a32016-02-09 14:57:42 +02006442 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006443 u8 op_mod[0x10];
6444
Matan Barakb4ff3a32016-02-09 14:57:42 +02006445 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006446 u8 mkey_index[0x18];
6447
Matan Barakb4ff3a32016-02-09 14:57:42 +02006448 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006449};
6450
6451struct mlx5_ifc_destroy_flow_table_out_bits {
6452 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006453 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006454
6455 u8 syndrome[0x20];
6456
Matan Barakb4ff3a32016-02-09 14:57:42 +02006457 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006458};
6459
6460struct mlx5_ifc_destroy_flow_table_in_bits {
6461 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006462 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006463
Matan Barakb4ff3a32016-02-09 14:57:42 +02006464 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006465 u8 op_mod[0x10];
6466
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03006467 u8 other_vport[0x1];
6468 u8 reserved_at_41[0xf];
6469 u8 vport_number[0x10];
6470
6471 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006472
6473 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006474 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006475
Matan Barakb4ff3a32016-02-09 14:57:42 +02006476 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006477 u8 table_id[0x18];
6478
Matan Barakb4ff3a32016-02-09 14:57:42 +02006479 u8 reserved_at_c0[0x140];
Saeed Mahameede2816822015-05-28 22:28:40 +03006480};
6481
6482struct mlx5_ifc_destroy_flow_group_out_bits {
6483 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006484 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006485
6486 u8 syndrome[0x20];
6487
Matan Barakb4ff3a32016-02-09 14:57:42 +02006488 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006489};
6490
6491struct mlx5_ifc_destroy_flow_group_in_bits {
6492 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006493 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006494
Matan Barakb4ff3a32016-02-09 14:57:42 +02006495 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006496 u8 op_mod[0x10];
6497
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03006498 u8 other_vport[0x1];
6499 u8 reserved_at_41[0xf];
6500 u8 vport_number[0x10];
6501
6502 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006503
6504 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006505 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006506
Matan Barakb4ff3a32016-02-09 14:57:42 +02006507 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006508 u8 table_id[0x18];
6509
6510 u8 group_id[0x20];
6511
Matan Barakb4ff3a32016-02-09 14:57:42 +02006512 u8 reserved_at_e0[0x120];
Saeed Mahameede2816822015-05-28 22:28:40 +03006513};
6514
6515struct mlx5_ifc_destroy_eq_out_bits {
6516 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006517 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006518
6519 u8 syndrome[0x20];
6520
Matan Barakb4ff3a32016-02-09 14:57:42 +02006521 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006522};
6523
6524struct mlx5_ifc_destroy_eq_in_bits {
6525 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006526 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006527
Matan Barakb4ff3a32016-02-09 14:57:42 +02006528 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006529 u8 op_mod[0x10];
6530
Matan Barakb4ff3a32016-02-09 14:57:42 +02006531 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006532 u8 eq_number[0x8];
6533
Matan Barakb4ff3a32016-02-09 14:57:42 +02006534 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006535};
6536
6537struct mlx5_ifc_destroy_dct_out_bits {
6538 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006539 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006540
6541 u8 syndrome[0x20];
6542
Matan Barakb4ff3a32016-02-09 14:57:42 +02006543 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006544};
6545
6546struct mlx5_ifc_destroy_dct_in_bits {
6547 u8 opcode[0x10];
Yishai Hadas774ea6e2018-09-20 21:35:25 +03006548 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006549
Matan Barakb4ff3a32016-02-09 14:57:42 +02006550 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006551 u8 op_mod[0x10];
6552
Matan Barakb4ff3a32016-02-09 14:57:42 +02006553 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006554 u8 dctn[0x18];
6555
Matan Barakb4ff3a32016-02-09 14:57:42 +02006556 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006557};
6558
6559struct mlx5_ifc_destroy_cq_out_bits {
6560 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006561 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006562
6563 u8 syndrome[0x20];
6564
Matan Barakb4ff3a32016-02-09 14:57:42 +02006565 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006566};
6567
6568struct mlx5_ifc_destroy_cq_in_bits {
6569 u8 opcode[0x10];
Yishai Hadas9ba481e2eb2018-09-20 21:35:20 +03006570 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006571
Matan Barakb4ff3a32016-02-09 14:57:42 +02006572 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006573 u8 op_mod[0x10];
6574
Matan Barakb4ff3a32016-02-09 14:57:42 +02006575 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006576 u8 cqn[0x18];
6577
Matan Barakb4ff3a32016-02-09 14:57:42 +02006578 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006579};
6580
6581struct mlx5_ifc_delete_vxlan_udp_dport_out_bits {
6582 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006583 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006584
6585 u8 syndrome[0x20];
6586
Matan Barakb4ff3a32016-02-09 14:57:42 +02006587 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006588};
6589
6590struct mlx5_ifc_delete_vxlan_udp_dport_in_bits {
6591 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006592 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006593
Matan Barakb4ff3a32016-02-09 14:57:42 +02006594 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006595 u8 op_mod[0x10];
6596
Matan Barakb4ff3a32016-02-09 14:57:42 +02006597 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006598
Matan Barakb4ff3a32016-02-09 14:57:42 +02006599 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006600 u8 vxlan_udp_port[0x10];
6601};
6602
6603struct mlx5_ifc_delete_l2_table_entry_out_bits {
6604 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006605 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006606
6607 u8 syndrome[0x20];
6608
Matan Barakb4ff3a32016-02-09 14:57:42 +02006609 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006610};
6611
6612struct mlx5_ifc_delete_l2_table_entry_in_bits {
6613 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006614 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006615
Matan Barakb4ff3a32016-02-09 14:57:42 +02006616 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006617 u8 op_mod[0x10];
6618
Matan Barakb4ff3a32016-02-09 14:57:42 +02006619 u8 reserved_at_40[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03006620
Matan Barakb4ff3a32016-02-09 14:57:42 +02006621 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006622 u8 table_index[0x18];
6623
Matan Barakb4ff3a32016-02-09 14:57:42 +02006624 u8 reserved_at_c0[0x140];
Saeed Mahameede2816822015-05-28 22:28:40 +03006625};
6626
6627struct mlx5_ifc_delete_fte_out_bits {
6628 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006629 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006630
6631 u8 syndrome[0x20];
6632
Matan Barakb4ff3a32016-02-09 14:57:42 +02006633 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006634};
6635
6636struct mlx5_ifc_delete_fte_in_bits {
6637 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006638 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006639
Matan Barakb4ff3a32016-02-09 14:57:42 +02006640 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006641 u8 op_mod[0x10];
6642
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03006643 u8 other_vport[0x1];
6644 u8 reserved_at_41[0xf];
6645 u8 vport_number[0x10];
6646
6647 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006648
6649 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006650 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006651
Matan Barakb4ff3a32016-02-09 14:57:42 +02006652 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006653 u8 table_id[0x18];
6654
Matan Barakb4ff3a32016-02-09 14:57:42 +02006655 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006656
6657 u8 flow_index[0x20];
6658
Matan Barakb4ff3a32016-02-09 14:57:42 +02006659 u8 reserved_at_120[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03006660};
6661
6662struct mlx5_ifc_dealloc_xrcd_out_bits {
6663 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006664 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006665
6666 u8 syndrome[0x20];
6667
Matan Barakb4ff3a32016-02-09 14:57:42 +02006668 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006669};
6670
6671struct mlx5_ifc_dealloc_xrcd_in_bits {
6672 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03006673 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006674
Matan Barakb4ff3a32016-02-09 14:57:42 +02006675 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006676 u8 op_mod[0x10];
6677
Matan Barakb4ff3a32016-02-09 14:57:42 +02006678 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006679 u8 xrcd[0x18];
6680
Matan Barakb4ff3a32016-02-09 14:57:42 +02006681 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006682};
6683
6684struct mlx5_ifc_dealloc_uar_out_bits {
6685 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006686 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006687
6688 u8 syndrome[0x20];
6689
Matan Barakb4ff3a32016-02-09 14:57:42 +02006690 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006691};
6692
6693struct mlx5_ifc_dealloc_uar_in_bits {
6694 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006695 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006696
Matan Barakb4ff3a32016-02-09 14:57:42 +02006697 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006698 u8 op_mod[0x10];
6699
Matan Barakb4ff3a32016-02-09 14:57:42 +02006700 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006701 u8 uar[0x18];
6702
Matan Barakb4ff3a32016-02-09 14:57:42 +02006703 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006704};
6705
6706struct mlx5_ifc_dealloc_transport_domain_out_bits {
6707 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006708 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006709
6710 u8 syndrome[0x20];
6711
Matan Barakb4ff3a32016-02-09 14:57:42 +02006712 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006713};
6714
6715struct mlx5_ifc_dealloc_transport_domain_in_bits {
6716 u8 opcode[0x10];
Yishai Hadas71bef2f2018-12-19 16:28:10 +02006717 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006718
Matan Barakb4ff3a32016-02-09 14:57:42 +02006719 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006720 u8 op_mod[0x10];
6721
Matan Barakb4ff3a32016-02-09 14:57:42 +02006722 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006723 u8 transport_domain[0x18];
6724
Matan Barakb4ff3a32016-02-09 14:57:42 +02006725 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006726};
6727
6728struct mlx5_ifc_dealloc_q_counter_out_bits {
6729 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006730 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006731
6732 u8 syndrome[0x20];
6733
Matan Barakb4ff3a32016-02-09 14:57:42 +02006734 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006735};
6736
6737struct mlx5_ifc_dealloc_q_counter_in_bits {
6738 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006739 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006740
Matan Barakb4ff3a32016-02-09 14:57:42 +02006741 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006742 u8 op_mod[0x10];
6743
Matan Barakb4ff3a32016-02-09 14:57:42 +02006744 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006745 u8 counter_set_id[0x8];
6746
Matan Barakb4ff3a32016-02-09 14:57:42 +02006747 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006748};
6749
6750struct mlx5_ifc_dealloc_pd_out_bits {
6751 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006752 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006753
6754 u8 syndrome[0x20];
6755
Matan Barakb4ff3a32016-02-09 14:57:42 +02006756 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006757};
6758
6759struct mlx5_ifc_dealloc_pd_in_bits {
6760 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03006761 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006762
Matan Barakb4ff3a32016-02-09 14:57:42 +02006763 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006764 u8 op_mod[0x10];
6765
Matan Barakb4ff3a32016-02-09 14:57:42 +02006766 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006767 u8 pd[0x18];
6768
Matan Barakb4ff3a32016-02-09 14:57:42 +02006769 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006770};
6771
Amir Vadai9dc0b282016-05-13 12:55:39 +00006772struct mlx5_ifc_dealloc_flow_counter_out_bits {
6773 u8 status[0x8];
6774 u8 reserved_at_8[0x18];
6775
6776 u8 syndrome[0x20];
6777
6778 u8 reserved_at_40[0x40];
6779};
6780
6781struct mlx5_ifc_dealloc_flow_counter_in_bits {
6782 u8 opcode[0x10];
6783 u8 reserved_at_10[0x10];
6784
6785 u8 reserved_at_20[0x10];
6786 u8 op_mod[0x10];
6787
Rabie Louloua8ffcc72017-07-09 13:39:30 +03006788 u8 flow_counter_id[0x20];
Amir Vadai9dc0b282016-05-13 12:55:39 +00006789
6790 u8 reserved_at_60[0x20];
6791};
6792
Saeed Mahameed74862162016-06-09 15:11:34 +03006793struct mlx5_ifc_create_xrq_out_bits {
6794 u8 status[0x8];
6795 u8 reserved_at_8[0x18];
6796
6797 u8 syndrome[0x20];
6798
6799 u8 reserved_at_40[0x8];
6800 u8 xrqn[0x18];
6801
6802 u8 reserved_at_60[0x20];
6803};
6804
6805struct mlx5_ifc_create_xrq_in_bits {
6806 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03006807 u8 uid[0x10];
Saeed Mahameed74862162016-06-09 15:11:34 +03006808
6809 u8 reserved_at_20[0x10];
6810 u8 op_mod[0x10];
6811
6812 u8 reserved_at_40[0x40];
6813
6814 struct mlx5_ifc_xrqc_bits xrq_context;
6815};
6816
Saeed Mahameede2816822015-05-28 22:28:40 +03006817struct mlx5_ifc_create_xrc_srq_out_bits {
6818 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006819 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006820
6821 u8 syndrome[0x20];
6822
Matan Barakb4ff3a32016-02-09 14:57:42 +02006823 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006824 u8 xrc_srqn[0x18];
6825
Matan Barakb4ff3a32016-02-09 14:57:42 +02006826 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006827};
6828
6829struct mlx5_ifc_create_xrc_srq_in_bits {
6830 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03006831 u8 uid[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
Matan Barakb4ff3a32016-02-09 14:57:42 +02006836 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006837
6838 struct mlx5_ifc_xrc_srqc_bits xrc_srq_context_entry;
6839
Yishai Hadas99b77fe2018-10-31 12:20:28 +02006840 u8 reserved_at_280[0x60];
6841
Leon Romanovskybd371972018-09-20 21:35:26 +03006842 u8 xrc_srq_umem_valid[0x1];
Yishai Hadas99b77fe2018-10-31 12:20:28 +02006843 u8 reserved_at_2e1[0x1f];
6844
6845 u8 reserved_at_300[0x580];
Saeed Mahameede2816822015-05-28 22:28:40 +03006846
6847 u8 pas[0][0x40];
6848};
6849
6850struct mlx5_ifc_create_tis_out_bits {
6851 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006852 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006853
6854 u8 syndrome[0x20];
6855
Matan Barakb4ff3a32016-02-09 14:57:42 +02006856 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006857 u8 tisn[0x18];
6858
Matan Barakb4ff3a32016-02-09 14:57:42 +02006859 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006860};
6861
6862struct mlx5_ifc_create_tis_in_bits {
6863 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03006864 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006865
Matan Barakb4ff3a32016-02-09 14:57:42 +02006866 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006867 u8 op_mod[0x10];
6868
Matan Barakb4ff3a32016-02-09 14:57:42 +02006869 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03006870
6871 struct mlx5_ifc_tisc_bits ctx;
6872};
6873
6874struct mlx5_ifc_create_tir_out_bits {
6875 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006876 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006877
6878 u8 syndrome[0x20];
6879
Matan Barakb4ff3a32016-02-09 14:57:42 +02006880 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006881 u8 tirn[0x18];
6882
Matan Barakb4ff3a32016-02-09 14:57:42 +02006883 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006884};
6885
6886struct mlx5_ifc_create_tir_in_bits {
6887 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03006888 u8 uid[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[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03006894
6895 struct mlx5_ifc_tirc_bits ctx;
6896};
6897
6898struct mlx5_ifc_create_srq_out_bits {
6899 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006900 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006901
6902 u8 syndrome[0x20];
6903
Matan Barakb4ff3a32016-02-09 14:57:42 +02006904 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006905 u8 srqn[0x18];
6906
Matan Barakb4ff3a32016-02-09 14:57:42 +02006907 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006908};
6909
6910struct mlx5_ifc_create_srq_in_bits {
6911 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03006912 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006913
Matan Barakb4ff3a32016-02-09 14:57:42 +02006914 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006915 u8 op_mod[0x10];
6916
Matan Barakb4ff3a32016-02-09 14:57:42 +02006917 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006918
6919 struct mlx5_ifc_srqc_bits srq_context_entry;
6920
Matan Barakb4ff3a32016-02-09 14:57:42 +02006921 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03006922
6923 u8 pas[0][0x40];
6924};
6925
6926struct mlx5_ifc_create_sq_out_bits {
6927 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006928 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006929
6930 u8 syndrome[0x20];
6931
Matan Barakb4ff3a32016-02-09 14:57:42 +02006932 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006933 u8 sqn[0x18];
6934
Matan Barakb4ff3a32016-02-09 14:57:42 +02006935 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006936};
6937
6938struct mlx5_ifc_create_sq_in_bits {
6939 u8 opcode[0x10];
Yishai Hadas430ae0d52018-09-20 21:35:23 +03006940 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006941
Matan Barakb4ff3a32016-02-09 14:57:42 +02006942 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006943 u8 op_mod[0x10];
6944
Matan Barakb4ff3a32016-02-09 14:57:42 +02006945 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03006946
6947 struct mlx5_ifc_sqc_bits ctx;
6948};
6949
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03006950struct mlx5_ifc_create_scheduling_element_out_bits {
6951 u8 status[0x8];
6952 u8 reserved_at_8[0x18];
6953
6954 u8 syndrome[0x20];
6955
6956 u8 reserved_at_40[0x40];
6957
6958 u8 scheduling_element_id[0x20];
6959
6960 u8 reserved_at_a0[0x160];
6961};
6962
6963struct mlx5_ifc_create_scheduling_element_in_bits {
6964 u8 opcode[0x10];
6965 u8 reserved_at_10[0x10];
6966
6967 u8 reserved_at_20[0x10];
6968 u8 op_mod[0x10];
6969
6970 u8 scheduling_hierarchy[0x8];
6971 u8 reserved_at_48[0x18];
6972
6973 u8 reserved_at_60[0xa0];
6974
6975 struct mlx5_ifc_scheduling_context_bits scheduling_context;
6976
6977 u8 reserved_at_300[0x100];
6978};
6979
Saeed Mahameede2816822015-05-28 22:28:40 +03006980struct mlx5_ifc_create_rqt_out_bits {
6981 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006982 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006983
6984 u8 syndrome[0x20];
6985
Matan Barakb4ff3a32016-02-09 14:57:42 +02006986 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006987 u8 rqtn[0x18];
6988
Matan Barakb4ff3a32016-02-09 14:57:42 +02006989 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006990};
6991
6992struct mlx5_ifc_create_rqt_in_bits {
6993 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03006994 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006995
Matan Barakb4ff3a32016-02-09 14:57:42 +02006996 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006997 u8 op_mod[0x10];
6998
Matan Barakb4ff3a32016-02-09 14:57:42 +02006999 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03007000
7001 struct mlx5_ifc_rqtc_bits rqt_context;
7002};
7003
7004struct mlx5_ifc_create_rq_out_bits {
7005 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007006 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007007
7008 u8 syndrome[0x20];
7009
Matan Barakb4ff3a32016-02-09 14:57:42 +02007010 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007011 u8 rqn[0x18];
7012
Matan Barakb4ff3a32016-02-09 14:57:42 +02007013 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007014};
7015
7016struct mlx5_ifc_create_rq_in_bits {
7017 u8 opcode[0x10];
Yishai Hadasd269b3a2018-09-20 21:35:22 +03007018 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007019
Matan Barakb4ff3a32016-02-09 14:57:42 +02007020 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007021 u8 op_mod[0x10];
7022
Matan Barakb4ff3a32016-02-09 14:57:42 +02007023 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03007024
7025 struct mlx5_ifc_rqc_bits ctx;
7026};
7027
7028struct mlx5_ifc_create_rmp_out_bits {
7029 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007030 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007031
7032 u8 syndrome[0x20];
7033
Matan Barakb4ff3a32016-02-09 14:57:42 +02007034 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007035 u8 rmpn[0x18];
7036
Matan Barakb4ff3a32016-02-09 14:57:42 +02007037 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007038};
7039
7040struct mlx5_ifc_create_rmp_in_bits {
7041 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03007042 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007043
Matan Barakb4ff3a32016-02-09 14:57:42 +02007044 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007045 u8 op_mod[0x10];
7046
Matan Barakb4ff3a32016-02-09 14:57:42 +02007047 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03007048
7049 struct mlx5_ifc_rmpc_bits ctx;
7050};
7051
7052struct mlx5_ifc_create_qp_out_bits {
7053 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007054 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007055
7056 u8 syndrome[0x20];
7057
Matan Barakb4ff3a32016-02-09 14:57:42 +02007058 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007059 u8 qpn[0x18];
7060
Matan Barakb4ff3a32016-02-09 14:57:42 +02007061 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007062};
7063
7064struct mlx5_ifc_create_qp_in_bits {
7065 u8 opcode[0x10];
Yishai Hadas4ac63ec2018-09-20 21:35:21 +03007066 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007067
Matan Barakb4ff3a32016-02-09 14:57:42 +02007068 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007069 u8 op_mod[0x10];
7070
Matan Barakb4ff3a32016-02-09 14:57:42 +02007071 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007072
7073 u8 opt_param_mask[0x20];
7074
Matan Barakb4ff3a32016-02-09 14:57:42 +02007075 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007076
7077 struct mlx5_ifc_qpc_bits qpc;
7078
Leon Romanovskybd371972018-09-20 21:35:26 +03007079 u8 reserved_at_800[0x60];
7080
7081 u8 wq_umem_valid[0x1];
7082 u8 reserved_at_861[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03007083
7084 u8 pas[0][0x40];
7085};
7086
7087struct mlx5_ifc_create_psv_out_bits {
7088 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007089 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007090
7091 u8 syndrome[0x20];
7092
Matan Barakb4ff3a32016-02-09 14:57:42 +02007093 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007094
Matan Barakb4ff3a32016-02-09 14:57:42 +02007095 u8 reserved_at_80[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007096 u8 psv0_index[0x18];
7097
Matan Barakb4ff3a32016-02-09 14:57:42 +02007098 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007099 u8 psv1_index[0x18];
7100
Matan Barakb4ff3a32016-02-09 14:57:42 +02007101 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007102 u8 psv2_index[0x18];
7103
Matan Barakb4ff3a32016-02-09 14:57:42 +02007104 u8 reserved_at_e0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007105 u8 psv3_index[0x18];
7106};
7107
7108struct mlx5_ifc_create_psv_in_bits {
7109 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007110 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007111
Matan Barakb4ff3a32016-02-09 14:57:42 +02007112 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007113 u8 op_mod[0x10];
7114
7115 u8 num_psv[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007116 u8 reserved_at_44[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007117 u8 pd[0x18];
7118
Matan Barakb4ff3a32016-02-09 14:57:42 +02007119 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007120};
7121
7122struct mlx5_ifc_create_mkey_out_bits {
7123 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007124 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007125
7126 u8 syndrome[0x20];
7127
Matan Barakb4ff3a32016-02-09 14:57:42 +02007128 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007129 u8 mkey_index[0x18];
7130
Matan Barakb4ff3a32016-02-09 14:57:42 +02007131 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007132};
7133
7134struct mlx5_ifc_create_mkey_in_bits {
7135 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007136 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007137
Matan Barakb4ff3a32016-02-09 14:57:42 +02007138 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007139 u8 op_mod[0x10];
7140
Matan Barakb4ff3a32016-02-09 14:57:42 +02007141 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007142
7143 u8 pg_access[0x1];
Leon Romanovskybd371972018-09-20 21:35:26 +03007144 u8 mkey_umem_valid[0x1];
7145 u8 reserved_at_62[0x1e];
Saeed Mahameede2816822015-05-28 22:28:40 +03007146
7147 struct mlx5_ifc_mkc_bits memory_key_mkey_entry;
7148
Matan Barakb4ff3a32016-02-09 14:57:42 +02007149 u8 reserved_at_280[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03007150
7151 u8 translations_octword_actual_size[0x20];
7152
Matan Barakb4ff3a32016-02-09 14:57:42 +02007153 u8 reserved_at_320[0x560];
Saeed Mahameede2816822015-05-28 22:28:40 +03007154
7155 u8 klm_pas_mtt[0][0x20];
7156};
7157
7158struct mlx5_ifc_create_flow_table_out_bits {
7159 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007160 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007161
7162 u8 syndrome[0x20];
7163
Matan Barakb4ff3a32016-02-09 14:57:42 +02007164 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007165 u8 table_id[0x18];
7166
Matan Barakb4ff3a32016-02-09 14:57:42 +02007167 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007168};
7169
Maor Gottlieb0c90e9c2017-03-12 11:35:23 +02007170struct mlx5_ifc_flow_table_context_bits {
Mark Bloch60786f02018-08-28 14:18:46 +03007171 u8 reformat_en[0x1];
Maor Gottlieb0c90e9c2017-03-12 11:35:23 +02007172 u8 decap_en[0x1];
7173 u8 reserved_at_2[0x2];
7174 u8 table_miss_action[0x4];
7175 u8 level[0x8];
7176 u8 reserved_at_10[0x8];
7177 u8 log_size[0x8];
7178
7179 u8 reserved_at_20[0x8];
7180 u8 table_miss_id[0x18];
7181
7182 u8 reserved_at_40[0x8];
7183 u8 lag_master_next_table_id[0x18];
7184
7185 u8 reserved_at_60[0xe0];
7186};
7187
Saeed Mahameede2816822015-05-28 22:28:40 +03007188struct mlx5_ifc_create_flow_table_in_bits {
7189 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007190 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007191
Matan Barakb4ff3a32016-02-09 14:57:42 +02007192 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007193 u8 op_mod[0x10];
7194
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03007195 u8 other_vport[0x1];
7196 u8 reserved_at_41[0xf];
7197 u8 vport_number[0x10];
7198
7199 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007200
7201 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007202 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007203
Matan Barakb4ff3a32016-02-09 14:57:42 +02007204 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007205
Maor Gottlieb0c90e9c2017-03-12 11:35:23 +02007206 struct mlx5_ifc_flow_table_context_bits flow_table_context;
Saeed Mahameede2816822015-05-28 22:28:40 +03007207};
7208
7209struct mlx5_ifc_create_flow_group_out_bits {
7210 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007211 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007212
7213 u8 syndrome[0x20];
7214
Matan Barakb4ff3a32016-02-09 14:57:42 +02007215 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007216 u8 group_id[0x18];
7217
Matan Barakb4ff3a32016-02-09 14:57:42 +02007218 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007219};
7220
7221enum {
Ariel Levkovich71c6e862018-05-13 14:33:34 +03007222 MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_OUTER_HEADERS = 0x0,
7223 MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS = 0x1,
7224 MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_INNER_HEADERS = 0x2,
7225 MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS_2 = 0x3,
Saeed Mahameede2816822015-05-28 22:28:40 +03007226};
7227
7228struct mlx5_ifc_create_flow_group_in_bits {
7229 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007230 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007231
Matan Barakb4ff3a32016-02-09 14:57:42 +02007232 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007233 u8 op_mod[0x10];
7234
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03007235 u8 other_vport[0x1];
7236 u8 reserved_at_41[0xf];
7237 u8 vport_number[0x10];
7238
7239 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007240
7241 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007242 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007243
Matan Barakb4ff3a32016-02-09 14:57:42 +02007244 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007245 u8 table_id[0x18];
7246
Shahar Klein3e99df82018-03-18 09:02:06 +02007247 u8 source_eswitch_owner_vhca_id_valid[0x1];
7248
7249 u8 reserved_at_c1[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03007250
7251 u8 start_flow_index[0x20];
7252
Matan Barakb4ff3a32016-02-09 14:57:42 +02007253 u8 reserved_at_100[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007254
7255 u8 end_flow_index[0x20];
7256
Matan Barakb4ff3a32016-02-09 14:57:42 +02007257 u8 reserved_at_140[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03007258
Matan Barakb4ff3a32016-02-09 14:57:42 +02007259 u8 reserved_at_1e0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007260 u8 match_criteria_enable[0x8];
7261
7262 struct mlx5_ifc_fte_match_param_bits match_criteria;
7263
Matan Barakb4ff3a32016-02-09 14:57:42 +02007264 u8 reserved_at_1200[0xe00];
Saeed Mahameede2816822015-05-28 22:28:40 +03007265};
7266
7267struct mlx5_ifc_create_eq_out_bits {
7268 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007269 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007270
7271 u8 syndrome[0x20];
7272
Matan Barakb4ff3a32016-02-09 14:57:42 +02007273 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007274 u8 eq_number[0x8];
7275
Matan Barakb4ff3a32016-02-09 14:57:42 +02007276 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007277};
7278
7279struct mlx5_ifc_create_eq_in_bits {
7280 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007281 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007282
Matan Barakb4ff3a32016-02-09 14:57:42 +02007283 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007284 u8 op_mod[0x10];
7285
Matan Barakb4ff3a32016-02-09 14:57:42 +02007286 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007287
7288 struct mlx5_ifc_eqc_bits eq_context_entry;
7289
Matan Barakb4ff3a32016-02-09 14:57:42 +02007290 u8 reserved_at_280[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007291
7292 u8 event_bitmask[0x40];
7293
Matan Barakb4ff3a32016-02-09 14:57:42 +02007294 u8 reserved_at_300[0x580];
Saeed Mahameede2816822015-05-28 22:28:40 +03007295
7296 u8 pas[0][0x40];
7297};
7298
7299struct mlx5_ifc_create_dct_out_bits {
7300 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007301 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007302
7303 u8 syndrome[0x20];
7304
Matan Barakb4ff3a32016-02-09 14:57:42 +02007305 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007306 u8 dctn[0x18];
7307
Matan Barakb4ff3a32016-02-09 14:57:42 +02007308 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007309};
7310
7311struct mlx5_ifc_create_dct_in_bits {
7312 u8 opcode[0x10];
Yishai Hadas774ea6e2018-09-20 21:35:25 +03007313 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007314
Matan Barakb4ff3a32016-02-09 14:57:42 +02007315 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007316 u8 op_mod[0x10];
7317
Matan Barakb4ff3a32016-02-09 14:57:42 +02007318 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007319
7320 struct mlx5_ifc_dctc_bits dct_context_entry;
7321
Matan Barakb4ff3a32016-02-09 14:57:42 +02007322 u8 reserved_at_280[0x180];
Saeed Mahameede2816822015-05-28 22:28:40 +03007323};
7324
7325struct mlx5_ifc_create_cq_out_bits {
7326 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007327 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007328
7329 u8 syndrome[0x20];
7330
Matan Barakb4ff3a32016-02-09 14:57:42 +02007331 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007332 u8 cqn[0x18];
7333
Matan Barakb4ff3a32016-02-09 14:57:42 +02007334 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007335};
7336
7337struct mlx5_ifc_create_cq_in_bits {
7338 u8 opcode[0x10];
Yishai Hadas9ba481e2eb2018-09-20 21:35:20 +03007339 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007340
Matan Barakb4ff3a32016-02-09 14:57:42 +02007341 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007342 u8 op_mod[0x10];
7343
Matan Barakb4ff3a32016-02-09 14:57:42 +02007344 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007345
7346 struct mlx5_ifc_cqc_bits cq_context;
7347
Leon Romanovskybd371972018-09-20 21:35:26 +03007348 u8 reserved_at_280[0x60];
7349
7350 u8 cq_umem_valid[0x1];
7351 u8 reserved_at_2e1[0x59f];
Saeed Mahameede2816822015-05-28 22:28:40 +03007352
7353 u8 pas[0][0x40];
7354};
7355
7356struct mlx5_ifc_config_int_moderation_out_bits {
7357 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007358 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007359
7360 u8 syndrome[0x20];
7361
Matan Barakb4ff3a32016-02-09 14:57:42 +02007362 u8 reserved_at_40[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007363 u8 min_delay[0xc];
7364 u8 int_vector[0x10];
7365
Matan Barakb4ff3a32016-02-09 14:57:42 +02007366 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007367};
7368
7369enum {
7370 MLX5_CONFIG_INT_MODERATION_IN_OP_MOD_WRITE = 0x0,
7371 MLX5_CONFIG_INT_MODERATION_IN_OP_MOD_READ = 0x1,
7372};
7373
7374struct mlx5_ifc_config_int_moderation_in_bits {
7375 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007376 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007377
Matan Barakb4ff3a32016-02-09 14:57:42 +02007378 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007379 u8 op_mod[0x10];
7380
Matan Barakb4ff3a32016-02-09 14:57:42 +02007381 u8 reserved_at_40[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007382 u8 min_delay[0xc];
7383 u8 int_vector[0x10];
7384
Matan Barakb4ff3a32016-02-09 14:57:42 +02007385 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007386};
7387
7388struct mlx5_ifc_attach_to_mcg_out_bits {
7389 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007390 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007391
7392 u8 syndrome[0x20];
7393
Matan Barakb4ff3a32016-02-09 14:57:42 +02007394 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007395};
7396
7397struct mlx5_ifc_attach_to_mcg_in_bits {
7398 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03007399 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007400
Matan Barakb4ff3a32016-02-09 14:57:42 +02007401 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007402 u8 op_mod[0x10];
7403
Matan Barakb4ff3a32016-02-09 14:57:42 +02007404 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007405 u8 qpn[0x18];
7406
Matan Barakb4ff3a32016-02-09 14:57:42 +02007407 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007408
7409 u8 multicast_gid[16][0x8];
7410};
7411
Saeed Mahameed74862162016-06-09 15:11:34 +03007412struct mlx5_ifc_arm_xrq_out_bits {
7413 u8 status[0x8];
7414 u8 reserved_at_8[0x18];
7415
7416 u8 syndrome[0x20];
7417
7418 u8 reserved_at_40[0x40];
7419};
7420
7421struct mlx5_ifc_arm_xrq_in_bits {
7422 u8 opcode[0x10];
7423 u8 reserved_at_10[0x10];
7424
7425 u8 reserved_at_20[0x10];
7426 u8 op_mod[0x10];
7427
7428 u8 reserved_at_40[0x8];
7429 u8 xrqn[0x18];
7430
7431 u8 reserved_at_60[0x10];
7432 u8 lwm[0x10];
7433};
7434
Saeed Mahameede2816822015-05-28 22:28:40 +03007435struct mlx5_ifc_arm_xrc_srq_out_bits {
7436 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007437 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007438
7439 u8 syndrome[0x20];
7440
Matan Barakb4ff3a32016-02-09 14:57:42 +02007441 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007442};
7443
7444enum {
7445 MLX5_ARM_XRC_SRQ_IN_OP_MOD_XRC_SRQ = 0x1,
7446};
7447
7448struct mlx5_ifc_arm_xrc_srq_in_bits {
7449 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03007450 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007451
Matan Barakb4ff3a32016-02-09 14:57:42 +02007452 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007453 u8 op_mod[0x10];
7454
Matan Barakb4ff3a32016-02-09 14:57:42 +02007455 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007456 u8 xrc_srqn[0x18];
7457
Matan Barakb4ff3a32016-02-09 14:57:42 +02007458 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007459 u8 lwm[0x10];
7460};
7461
7462struct mlx5_ifc_arm_rq_out_bits {
7463 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007464 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007465
7466 u8 syndrome[0x20];
7467
Matan Barakb4ff3a32016-02-09 14:57:42 +02007468 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007469};
7470
7471enum {
Saeed Mahameed74862162016-06-09 15:11:34 +03007472 MLX5_ARM_RQ_IN_OP_MOD_SRQ = 0x1,
7473 MLX5_ARM_RQ_IN_OP_MOD_XRQ = 0x2,
Saeed Mahameede2816822015-05-28 22:28:40 +03007474};
7475
7476struct mlx5_ifc_arm_rq_in_bits {
7477 u8 opcode[0x10];
Yishai Hadasa0d8c052018-09-20 21:35:24 +03007478 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007479
Matan Barakb4ff3a32016-02-09 14:57:42 +02007480 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007481 u8 op_mod[0x10];
7482
Matan Barakb4ff3a32016-02-09 14:57:42 +02007483 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007484 u8 srq_number[0x18];
7485
Matan Barakb4ff3a32016-02-09 14:57:42 +02007486 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007487 u8 lwm[0x10];
7488};
7489
7490struct mlx5_ifc_arm_dct_out_bits {
7491 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007492 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007493
7494 u8 syndrome[0x20];
7495
Matan Barakb4ff3a32016-02-09 14:57:42 +02007496 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007497};
7498
7499struct mlx5_ifc_arm_dct_in_bits {
7500 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007501 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007502
Matan Barakb4ff3a32016-02-09 14:57:42 +02007503 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007504 u8 op_mod[0x10];
7505
Matan Barakb4ff3a32016-02-09 14:57:42 +02007506 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007507 u8 dct_number[0x18];
7508
Matan Barakb4ff3a32016-02-09 14:57:42 +02007509 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007510};
7511
7512struct mlx5_ifc_alloc_xrcd_out_bits {
7513 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007514 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007515
7516 u8 syndrome[0x20];
7517
Matan Barakb4ff3a32016-02-09 14:57:42 +02007518 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007519 u8 xrcd[0x18];
7520
Matan Barakb4ff3a32016-02-09 14:57:42 +02007521 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007522};
7523
7524struct mlx5_ifc_alloc_xrcd_in_bits {
7525 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03007526 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007527
Matan Barakb4ff3a32016-02-09 14:57:42 +02007528 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007529 u8 op_mod[0x10];
7530
Matan Barakb4ff3a32016-02-09 14:57:42 +02007531 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007532};
7533
7534struct mlx5_ifc_alloc_uar_out_bits {
7535 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007536 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007537
7538 u8 syndrome[0x20];
7539
Matan Barakb4ff3a32016-02-09 14:57:42 +02007540 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007541 u8 uar[0x18];
7542
Matan Barakb4ff3a32016-02-09 14:57:42 +02007543 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007544};
7545
7546struct mlx5_ifc_alloc_uar_in_bits {
7547 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007548 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007549
Matan Barakb4ff3a32016-02-09 14:57:42 +02007550 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007551 u8 op_mod[0x10];
7552
Matan Barakb4ff3a32016-02-09 14:57:42 +02007553 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007554};
7555
7556struct mlx5_ifc_alloc_transport_domain_out_bits {
7557 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007558 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007559
7560 u8 syndrome[0x20];
7561
Matan Barakb4ff3a32016-02-09 14:57:42 +02007562 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007563 u8 transport_domain[0x18];
7564
Matan Barakb4ff3a32016-02-09 14:57:42 +02007565 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007566};
7567
7568struct mlx5_ifc_alloc_transport_domain_in_bits {
7569 u8 opcode[0x10];
Yishai Hadas71bef2f2018-12-19 16:28:10 +02007570 u8 uid[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[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007576};
7577
7578struct mlx5_ifc_alloc_q_counter_out_bits {
7579 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007580 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007581
7582 u8 syndrome[0x20];
7583
Matan Barakb4ff3a32016-02-09 14:57:42 +02007584 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007585 u8 counter_set_id[0x8];
7586
Matan Barakb4ff3a32016-02-09 14:57:42 +02007587 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007588};
7589
7590struct mlx5_ifc_alloc_q_counter_in_bits {
7591 u8 opcode[0x10];
Leon Romanovsky2acc7952018-12-06 14:40:11 +02007592 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007593
Matan Barakb4ff3a32016-02-09 14:57:42 +02007594 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007595 u8 op_mod[0x10];
7596
Matan Barakb4ff3a32016-02-09 14:57:42 +02007597 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007598};
7599
7600struct mlx5_ifc_alloc_pd_out_bits {
7601 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007602 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007603
7604 u8 syndrome[0x20];
7605
Matan Barakb4ff3a32016-02-09 14:57:42 +02007606 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007607 u8 pd[0x18];
7608
Matan Barakb4ff3a32016-02-09 14:57:42 +02007609 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007610};
7611
7612struct mlx5_ifc_alloc_pd_in_bits {
7613 u8 opcode[0x10];
Leon Romanovskybd371972018-09-20 21:35:26 +03007614 u8 uid[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007615
Matan Barakb4ff3a32016-02-09 14:57:42 +02007616 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007617 u8 op_mod[0x10];
7618
Matan Barakb4ff3a32016-02-09 14:57:42 +02007619 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007620};
7621
Amir Vadai9dc0b282016-05-13 12:55:39 +00007622struct mlx5_ifc_alloc_flow_counter_out_bits {
7623 u8 status[0x8];
7624 u8 reserved_at_8[0x18];
7625
7626 u8 syndrome[0x20];
7627
Rabie Louloua8ffcc72017-07-09 13:39:30 +03007628 u8 flow_counter_id[0x20];
Amir Vadai9dc0b282016-05-13 12:55:39 +00007629
7630 u8 reserved_at_60[0x20];
7631};
7632
7633struct mlx5_ifc_alloc_flow_counter_in_bits {
7634 u8 opcode[0x10];
7635 u8 reserved_at_10[0x10];
7636
7637 u8 reserved_at_20[0x10];
7638 u8 op_mod[0x10];
7639
7640 u8 reserved_at_40[0x40];
7641};
7642
Saeed Mahameede2816822015-05-28 22:28:40 +03007643struct mlx5_ifc_add_vxlan_udp_dport_out_bits {
7644 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007645 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007646
7647 u8 syndrome[0x20];
7648
Matan Barakb4ff3a32016-02-09 14:57:42 +02007649 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007650};
7651
7652struct mlx5_ifc_add_vxlan_udp_dport_in_bits {
7653 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007654 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007655
Matan Barakb4ff3a32016-02-09 14:57:42 +02007656 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007657 u8 op_mod[0x10];
7658
Matan Barakb4ff3a32016-02-09 14:57:42 +02007659 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007660
Matan Barakb4ff3a32016-02-09 14:57:42 +02007661 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007662 u8 vxlan_udp_port[0x10];
7663};
7664
Eran Ben Elisha37e92a92017-11-13 10:11:27 +02007665struct mlx5_ifc_set_pp_rate_limit_out_bits {
Saeed Mahameed74862162016-06-09 15:11:34 +03007666 u8 status[0x8];
7667 u8 reserved_at_8[0x18];
7668
7669 u8 syndrome[0x20];
7670
7671 u8 reserved_at_40[0x40];
7672};
7673
Eran Ben Elisha37e92a92017-11-13 10:11:27 +02007674struct mlx5_ifc_set_pp_rate_limit_in_bits {
Saeed Mahameed74862162016-06-09 15:11:34 +03007675 u8 opcode[0x10];
7676 u8 reserved_at_10[0x10];
7677
7678 u8 reserved_at_20[0x10];
7679 u8 op_mod[0x10];
7680
7681 u8 reserved_at_40[0x10];
7682 u8 rate_limit_index[0x10];
7683
7684 u8 reserved_at_60[0x20];
7685
7686 u8 rate_limit[0x20];
Eran Ben Elisha37e92a92017-11-13 10:11:27 +02007687
Bodong Wang05d3ac92018-03-19 15:10:29 +02007688 u8 burst_upper_bound[0x20];
7689
7690 u8 reserved_at_c0[0x10];
7691 u8 typical_packet_size[0x10];
7692
7693 u8 reserved_at_e0[0x120];
Saeed Mahameed74862162016-06-09 15:11:34 +03007694};
7695
Saeed Mahameede2816822015-05-28 22:28:40 +03007696struct mlx5_ifc_access_register_out_bits {
7697 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007698 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007699
7700 u8 syndrome[0x20];
7701
Matan Barakb4ff3a32016-02-09 14:57:42 +02007702 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007703
7704 u8 register_data[0][0x20];
7705};
7706
7707enum {
7708 MLX5_ACCESS_REGISTER_IN_OP_MOD_WRITE = 0x0,
7709 MLX5_ACCESS_REGISTER_IN_OP_MOD_READ = 0x1,
7710};
7711
7712struct mlx5_ifc_access_register_in_bits {
7713 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007714 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007715
Matan Barakb4ff3a32016-02-09 14:57:42 +02007716 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007717 u8 op_mod[0x10];
7718
Matan Barakb4ff3a32016-02-09 14:57:42 +02007719 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007720 u8 register_id[0x10];
7721
7722 u8 argument[0x20];
7723
7724 u8 register_data[0][0x20];
7725};
7726
7727struct mlx5_ifc_sltp_reg_bits {
7728 u8 status[0x4];
7729 u8 version[0x4];
7730 u8 local_port[0x8];
7731 u8 pnat[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007732 u8 reserved_at_12[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03007733 u8 lane[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007734 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007735
Matan Barakb4ff3a32016-02-09 14:57:42 +02007736 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007737
Matan Barakb4ff3a32016-02-09 14:57:42 +02007738 u8 reserved_at_40[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03007739 u8 polarity[0x1];
7740 u8 ob_tap0[0x8];
7741 u8 ob_tap1[0x8];
7742 u8 ob_tap2[0x8];
7743
Matan Barakb4ff3a32016-02-09 14:57:42 +02007744 u8 reserved_at_60[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03007745 u8 ob_preemp_mode[0x4];
7746 u8 ob_reg[0x8];
7747 u8 ob_bias[0x8];
7748
Matan Barakb4ff3a32016-02-09 14:57:42 +02007749 u8 reserved_at_80[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007750};
7751
7752struct mlx5_ifc_slrg_reg_bits {
7753 u8 status[0x4];
7754 u8 version[0x4];
7755 u8 local_port[0x8];
7756 u8 pnat[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007757 u8 reserved_at_12[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03007758 u8 lane[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007759 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007760
7761 u8 time_to_link_up[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007762 u8 reserved_at_30[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03007763 u8 grade_lane_speed[0x4];
7764
7765 u8 grade_version[0x8];
7766 u8 grade[0x18];
7767
Matan Barakb4ff3a32016-02-09 14:57:42 +02007768 u8 reserved_at_60[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007769 u8 height_grade_type[0x4];
7770 u8 height_grade[0x18];
7771
7772 u8 height_dz[0x10];
7773 u8 height_dv[0x10];
7774
Matan Barakb4ff3a32016-02-09 14:57:42 +02007775 u8 reserved_at_a0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007776 u8 height_sigma[0x10];
7777
Matan Barakb4ff3a32016-02-09 14:57:42 +02007778 u8 reserved_at_c0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007779
Matan Barakb4ff3a32016-02-09 14:57:42 +02007780 u8 reserved_at_e0[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007781 u8 phase_grade_type[0x4];
7782 u8 phase_grade[0x18];
7783
Matan Barakb4ff3a32016-02-09 14:57:42 +02007784 u8 reserved_at_100[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007785 u8 phase_eo_pos[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007786 u8 reserved_at_110[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007787 u8 phase_eo_neg[0x8];
7788
7789 u8 ffe_set_tested[0x10];
7790 u8 test_errors_per_lane[0x10];
7791};
7792
7793struct mlx5_ifc_pvlc_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007794 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007795 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007796 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007797
Matan Barakb4ff3a32016-02-09 14:57:42 +02007798 u8 reserved_at_20[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007799 u8 vl_hw_cap[0x4];
7800
Matan Barakb4ff3a32016-02-09 14:57:42 +02007801 u8 reserved_at_40[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007802 u8 vl_admin[0x4];
7803
Matan Barakb4ff3a32016-02-09 14:57:42 +02007804 u8 reserved_at_60[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007805 u8 vl_operational[0x4];
7806};
7807
7808struct mlx5_ifc_pude_reg_bits {
7809 u8 swid[0x8];
7810 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007811 u8 reserved_at_10[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007812 u8 admin_status[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007813 u8 reserved_at_18[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007814 u8 oper_status[0x4];
7815
Matan Barakb4ff3a32016-02-09 14:57:42 +02007816 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03007817};
7818
7819struct mlx5_ifc_ptys_reg_bits {
Bodong Wange7e31ca2016-09-07 19:07:58 +03007820 u8 reserved_at_0[0x1];
Saeed Mahameed74862162016-06-09 15:11:34 +03007821 u8 an_disable_admin[0x1];
Bodong Wange7e31ca2016-09-07 19:07:58 +03007822 u8 an_disable_cap[0x1];
7823 u8 reserved_at_3[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03007824 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007825 u8 reserved_at_10[0xd];
Saeed Mahameede2816822015-05-28 22:28:40 +03007826 u8 proto_mask[0x3];
7827
Saeed Mahameed74862162016-06-09 15:11:34 +03007828 u8 an_status[0x4];
Aya Levina0a89982019-02-12 22:55:44 -08007829 u8 reserved_at_24[0x1c];
7830
7831 u8 ext_eth_proto_capability[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007832
7833 u8 eth_proto_capability[0x20];
7834
7835 u8 ib_link_width_capability[0x10];
7836 u8 ib_proto_capability[0x10];
7837
Aya Levina0a89982019-02-12 22:55:44 -08007838 u8 ext_eth_proto_admin[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007839
7840 u8 eth_proto_admin[0x20];
7841
7842 u8 ib_link_width_admin[0x10];
7843 u8 ib_proto_admin[0x10];
7844
Aya Levina0a89982019-02-12 22:55:44 -08007845 u8 ext_eth_proto_oper[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007846
7847 u8 eth_proto_oper[0x20];
7848
7849 u8 ib_link_width_oper[0x10];
7850 u8 ib_proto_oper[0x10];
7851
Eran Ben Elisha5b4793f2017-02-13 14:00:59 +02007852 u8 reserved_at_160[0x1c];
7853 u8 connector_type[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007854
7855 u8 eth_proto_lp_advertise[0x20];
7856
Matan Barakb4ff3a32016-02-09 14:57:42 +02007857 u8 reserved_at_1a0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03007858};
7859
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03007860struct mlx5_ifc_mlcr_reg_bits {
7861 u8 reserved_at_0[0x8];
7862 u8 local_port[0x8];
7863 u8 reserved_at_10[0x20];
7864
7865 u8 beacon_duration[0x10];
7866 u8 reserved_at_40[0x10];
7867
7868 u8 beacon_remain[0x10];
7869};
7870
Saeed Mahameede2816822015-05-28 22:28:40 +03007871struct mlx5_ifc_ptas_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007872 u8 reserved_at_0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007873
7874 u8 algorithm_options[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007875 u8 reserved_at_30[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007876 u8 repetitions_mode[0x4];
7877 u8 num_of_repetitions[0x8];
7878
7879 u8 grade_version[0x8];
7880 u8 height_grade_type[0x4];
7881 u8 phase_grade_type[0x4];
7882 u8 height_grade_weight[0x8];
7883 u8 phase_grade_weight[0x8];
7884
7885 u8 gisim_measure_bits[0x10];
7886 u8 adaptive_tap_measure_bits[0x10];
7887
7888 u8 ber_bath_high_error_threshold[0x10];
7889 u8 ber_bath_mid_error_threshold[0x10];
7890
7891 u8 ber_bath_low_error_threshold[0x10];
7892 u8 one_ratio_high_threshold[0x10];
7893
7894 u8 one_ratio_high_mid_threshold[0x10];
7895 u8 one_ratio_low_mid_threshold[0x10];
7896
7897 u8 one_ratio_low_threshold[0x10];
7898 u8 ndeo_error_threshold[0x10];
7899
7900 u8 mixer_offset_step_size[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007901 u8 reserved_at_110[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007902 u8 mix90_phase_for_voltage_bath[0x8];
7903
7904 u8 mixer_offset_start[0x10];
7905 u8 mixer_offset_end[0x10];
7906
Matan Barakb4ff3a32016-02-09 14:57:42 +02007907 u8 reserved_at_140[0x15];
Saeed Mahameede2816822015-05-28 22:28:40 +03007908 u8 ber_test_time[0xb];
7909};
7910
7911struct mlx5_ifc_pspa_reg_bits {
7912 u8 swid[0x8];
7913 u8 local_port[0x8];
7914 u8 sub_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007915 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007916
Matan Barakb4ff3a32016-02-09 14:57:42 +02007917 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007918};
7919
7920struct mlx5_ifc_pqdr_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007921 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007922 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007923 u8 reserved_at_10[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03007924 u8 prio[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007925 u8 reserved_at_18[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03007926 u8 mode[0x2];
7927
Matan Barakb4ff3a32016-02-09 14:57:42 +02007928 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007929
Matan Barakb4ff3a32016-02-09 14:57:42 +02007930 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007931 u8 min_threshold[0x10];
7932
Matan Barakb4ff3a32016-02-09 14:57:42 +02007933 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007934 u8 max_threshold[0x10];
7935
Matan Barakb4ff3a32016-02-09 14:57:42 +02007936 u8 reserved_at_80[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007937 u8 mark_probability_denominator[0x10];
7938
Matan Barakb4ff3a32016-02-09 14:57:42 +02007939 u8 reserved_at_a0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03007940};
7941
7942struct mlx5_ifc_ppsc_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007943 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007944 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007945 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007946
Matan Barakb4ff3a32016-02-09 14:57:42 +02007947 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03007948
Matan Barakb4ff3a32016-02-09 14:57:42 +02007949 u8 reserved_at_80[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007950 u8 wrps_admin[0x4];
7951
Matan Barakb4ff3a32016-02-09 14:57:42 +02007952 u8 reserved_at_a0[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007953 u8 wrps_status[0x4];
7954
Matan Barakb4ff3a32016-02-09 14:57:42 +02007955 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007956 u8 up_threshold[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007957 u8 reserved_at_d0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007958 u8 down_threshold[0x8];
7959
Matan Barakb4ff3a32016-02-09 14:57:42 +02007960 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007961
Matan Barakb4ff3a32016-02-09 14:57:42 +02007962 u8 reserved_at_100[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007963 u8 srps_admin[0x4];
7964
Matan Barakb4ff3a32016-02-09 14:57:42 +02007965 u8 reserved_at_120[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007966 u8 srps_status[0x4];
7967
Matan Barakb4ff3a32016-02-09 14:57:42 +02007968 u8 reserved_at_140[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007969};
7970
7971struct mlx5_ifc_pplr_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007972 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007973 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007974 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007975
Matan Barakb4ff3a32016-02-09 14:57:42 +02007976 u8 reserved_at_20[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007977 u8 lb_cap[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007978 u8 reserved_at_30[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007979 u8 lb_en[0x8];
7980};
7981
7982struct mlx5_ifc_pplm_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007983 u8 reserved_at_0[0x8];
Shay Agroskin4b5b9c72018-10-09 14:16:43 +03007984 u8 local_port[0x8];
7985 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007986
Shay Agroskin4b5b9c72018-10-09 14:16:43 +03007987 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007988
Shay Agroskin4b5b9c72018-10-09 14:16:43 +03007989 u8 port_profile_mode[0x8];
7990 u8 static_port_profile[0x8];
7991 u8 active_port_profile[0x8];
7992 u8 reserved_at_58[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007993
Shay Agroskin4b5b9c72018-10-09 14:16:43 +03007994 u8 retransmission_active[0x8];
7995 u8 fec_mode_active[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007996
Shay Agroskin4b5b9c72018-10-09 14:16:43 +03007997 u8 rs_fec_correction_bypass_cap[0x4];
7998 u8 reserved_at_84[0x8];
7999 u8 fec_override_cap_56g[0x4];
8000 u8 fec_override_cap_100g[0x4];
8001 u8 fec_override_cap_50g[0x4];
8002 u8 fec_override_cap_25g[0x4];
8003 u8 fec_override_cap_10g_40g[0x4];
8004
8005 u8 rs_fec_correction_bypass_admin[0x4];
8006 u8 reserved_at_a4[0x8];
8007 u8 fec_override_admin_56g[0x4];
8008 u8 fec_override_admin_100g[0x4];
8009 u8 fec_override_admin_50g[0x4];
8010 u8 fec_override_admin_25g[0x4];
8011 u8 fec_override_admin_10g_40g[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008012};
8013
8014struct mlx5_ifc_ppcnt_reg_bits {
8015 u8 swid[0x8];
8016 u8 local_port[0x8];
8017 u8 pnat[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008018 u8 reserved_at_12[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008019 u8 grp[0x6];
8020
8021 u8 clr[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008022 u8 reserved_at_21[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03008023 u8 prio_tc[0x3];
8024
8025 union mlx5_ifc_eth_cntrs_grp_data_layout_auto_bits counter_set;
8026};
8027
Gal Pressman8ed1a632016-11-17 13:46:01 +02008028struct mlx5_ifc_mpcnt_reg_bits {
8029 u8 reserved_at_0[0x8];
8030 u8 pcie_index[0x8];
8031 u8 reserved_at_10[0xa];
8032 u8 grp[0x6];
8033
8034 u8 clr[0x1];
8035 u8 reserved_at_21[0x1f];
8036
8037 union mlx5_ifc_pcie_cntrs_grp_data_layout_auto_bits counter_set;
8038};
8039
Saeed Mahameede2816822015-05-28 22:28:40 +03008040struct mlx5_ifc_ppad_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008041 u8 reserved_at_0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03008042 u8 single_mac[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008043 u8 reserved_at_4[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008044 u8 local_port[0x8];
8045 u8 mac_47_32[0x10];
8046
8047 u8 mac_31_0[0x20];
8048
Matan Barakb4ff3a32016-02-09 14:57:42 +02008049 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03008050};
8051
8052struct mlx5_ifc_pmtu_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008053 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008054 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008055 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008056
8057 u8 max_mtu[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008058 u8 reserved_at_30[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008059
8060 u8 admin_mtu[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008061 u8 reserved_at_50[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008062
8063 u8 oper_mtu[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008064 u8 reserved_at_70[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008065};
8066
8067struct mlx5_ifc_pmpr_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008068 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008069 u8 module[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008070 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008071
Matan Barakb4ff3a32016-02-09 14:57:42 +02008072 u8 reserved_at_20[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008073 u8 attenuation_5g[0x8];
8074
Matan Barakb4ff3a32016-02-09 14:57:42 +02008075 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008076 u8 attenuation_7g[0x8];
8077
Matan Barakb4ff3a32016-02-09 14:57:42 +02008078 u8 reserved_at_60[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008079 u8 attenuation_12g[0x8];
8080};
8081
8082struct mlx5_ifc_pmpe_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008083 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008084 u8 module[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008085 u8 reserved_at_10[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03008086 u8 module_status[0x4];
8087
Matan Barakb4ff3a32016-02-09 14:57:42 +02008088 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03008089};
8090
8091struct mlx5_ifc_pmpc_reg_bits {
8092 u8 module_state_updated[32][0x8];
8093};
8094
8095struct mlx5_ifc_pmlpn_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008096 u8 reserved_at_0[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008097 u8 mlpn_status[0x4];
8098 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008099 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008100
8101 u8 e[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008102 u8 reserved_at_21[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03008103};
8104
8105struct mlx5_ifc_pmlp_reg_bits {
8106 u8 rxtx[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008107 u8 reserved_at_1[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03008108 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008109 u8 reserved_at_10[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008110 u8 width[0x8];
8111
8112 u8 lane0_module_mapping[0x20];
8113
8114 u8 lane1_module_mapping[0x20];
8115
8116 u8 lane2_module_mapping[0x20];
8117
8118 u8 lane3_module_mapping[0x20];
8119
Matan Barakb4ff3a32016-02-09 14:57:42 +02008120 u8 reserved_at_a0[0x160];
Saeed Mahameede2816822015-05-28 22:28:40 +03008121};
8122
8123struct mlx5_ifc_pmaos_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008124 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008125 u8 module[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008126 u8 reserved_at_10[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008127 u8 admin_status[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008128 u8 reserved_at_18[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008129 u8 oper_status[0x4];
8130
8131 u8 ase[0x1];
8132 u8 ee[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008133 u8 reserved_at_22[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03008134 u8 e[0x2];
8135
Matan Barakb4ff3a32016-02-09 14:57:42 +02008136 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03008137};
8138
8139struct mlx5_ifc_plpc_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008140 u8 reserved_at_0[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008141 u8 profile_id[0xc];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008142 u8 reserved_at_10[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008143 u8 proto_mask[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008144 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008145
Matan Barakb4ff3a32016-02-09 14:57:42 +02008146 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008147 u8 lane_speed[0x10];
8148
Matan Barakb4ff3a32016-02-09 14:57:42 +02008149 u8 reserved_at_40[0x17];
Saeed Mahameede2816822015-05-28 22:28:40 +03008150 u8 lpbf[0x1];
8151 u8 fec_mode_policy[0x8];
8152
8153 u8 retransmission_capability[0x8];
8154 u8 fec_mode_capability[0x18];
8155
8156 u8 retransmission_support_admin[0x8];
8157 u8 fec_mode_support_admin[0x18];
8158
8159 u8 retransmission_request_admin[0x8];
8160 u8 fec_mode_request_admin[0x18];
8161
Matan Barakb4ff3a32016-02-09 14:57:42 +02008162 u8 reserved_at_c0[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03008163};
8164
8165struct mlx5_ifc_plib_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008166 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008167 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008168 u8 reserved_at_10[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008169 u8 ib_port[0x8];
8170
Matan Barakb4ff3a32016-02-09 14:57:42 +02008171 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03008172};
8173
8174struct mlx5_ifc_plbf_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008175 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008176 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008177 u8 reserved_at_10[0xd];
Saeed Mahameede2816822015-05-28 22:28:40 +03008178 u8 lbf_mode[0x3];
8179
Matan Barakb4ff3a32016-02-09 14:57:42 +02008180 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03008181};
8182
8183struct mlx5_ifc_pipg_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008184 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008185 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008186 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008187
8188 u8 dic[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008189 u8 reserved_at_21[0x19];
Saeed Mahameede2816822015-05-28 22:28:40 +03008190 u8 ipg[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008191 u8 reserved_at_3e[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03008192};
8193
8194struct mlx5_ifc_pifr_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008195 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008196 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008197 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008198
Matan Barakb4ff3a32016-02-09 14:57:42 +02008199 u8 reserved_at_20[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03008200
8201 u8 port_filter[8][0x20];
8202
8203 u8 port_filter_update_en[8][0x20];
8204};
8205
8206struct mlx5_ifc_pfcc_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008207 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008208 u8 local_port[0x8];
Inbar Karmy2afa6092017-11-20 18:06:20 +02008209 u8 reserved_at_10[0xb];
8210 u8 ppan_mask_n[0x1];
8211 u8 minor_stall_mask[0x1];
8212 u8 critical_stall_mask[0x1];
8213 u8 reserved_at_1e[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03008214
8215 u8 ppan[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008216 u8 reserved_at_24[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008217 u8 prio_mask_tx[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008218 u8 reserved_at_30[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008219 u8 prio_mask_rx[0x8];
8220
8221 u8 pptx[0x1];
8222 u8 aptx[0x1];
Inbar Karmy2afa6092017-11-20 18:06:20 +02008223 u8 pptx_mask_n[0x1];
8224 u8 reserved_at_43[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03008225 u8 pfctx[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008226 u8 reserved_at_50[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008227
8228 u8 pprx[0x1];
8229 u8 aprx[0x1];
Inbar Karmy2afa6092017-11-20 18:06:20 +02008230 u8 pprx_mask_n[0x1];
8231 u8 reserved_at_63[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03008232 u8 pfcrx[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008233 u8 reserved_at_70[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008234
Inbar Karmy2afa6092017-11-20 18:06:20 +02008235 u8 device_stall_minor_watermark[0x10];
8236 u8 device_stall_critical_watermark[0x10];
8237
8238 u8 reserved_at_a0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03008239};
8240
8241struct mlx5_ifc_pelc_reg_bits {
8242 u8 op[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008243 u8 reserved_at_4[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008244 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008245 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008246
8247 u8 op_admin[0x8];
8248 u8 op_capability[0x8];
8249 u8 op_request[0x8];
8250 u8 op_active[0x8];
8251
8252 u8 admin[0x40];
8253
8254 u8 capability[0x40];
8255
8256 u8 request[0x40];
8257
8258 u8 active[0x40];
8259
Matan Barakb4ff3a32016-02-09 14:57:42 +02008260 u8 reserved_at_140[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03008261};
8262
8263struct mlx5_ifc_peir_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008264 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008265 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008266 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008267
Matan Barakb4ff3a32016-02-09 14:57:42 +02008268 u8 reserved_at_20[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03008269 u8 error_count[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008270 u8 reserved_at_30[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008271
Matan Barakb4ff3a32016-02-09 14:57:42 +02008272 u8 reserved_at_40[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03008273 u8 lane[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008274 u8 reserved_at_50[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008275 u8 error_type[0x8];
8276};
8277
Eran Ben Elisha5e022dd2018-07-16 18:35:31 -07008278struct mlx5_ifc_mpegc_reg_bits {
8279 u8 reserved_at_0[0x30];
8280 u8 field_select[0x10];
8281
8282 u8 tx_overflow_sense[0x1];
8283 u8 mark_cqe[0x1];
8284 u8 mark_cnp[0x1];
8285 u8 reserved_at_43[0x1b];
8286 u8 tx_lossy_overflow_oper[0x2];
8287
8288 u8 reserved_at_60[0x100];
8289};
8290
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008291struct mlx5_ifc_pcam_enhanced_features_bits {
Talat Batheesh0af51072018-05-17 11:14:18 +03008292 u8 reserved_at_0[0x6d];
8293 u8 rx_icrc_encapsulated_counter[0x1];
Aya Levina0a89982019-02-12 22:55:44 -08008294 u8 reserved_at_6e[0x4];
8295 u8 ptys_extended_ethernet[0x1];
8296 u8 reserved_at_73[0x3];
Inbar Karmy2fcb12d2017-08-17 16:39:47 +03008297 u8 pfcc_mask[0x1];
Shay Agroskin67daf112018-09-30 09:58:08 +03008298 u8 reserved_at_77[0x3];
8299 u8 per_lane_error_counters[0x1];
Gal Pressman2dba0792017-06-18 14:56:45 +03008300 u8 rx_buffer_fullness_counters[0x1];
Eran Ben Elisha5b4793f2017-02-13 14:00:59 +02008301 u8 ptys_connector_type[0x1];
8302 u8 reserved_at_7d[0x1];
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008303 u8 ppcnt_discard_group[0x1];
8304 u8 ppcnt_statistical_group[0x1];
8305};
8306
Huy Nguyendf5f1362018-02-28 14:16:47 -06008307struct mlx5_ifc_pcam_regs_5000_to_507f_bits {
8308 u8 port_access_reg_cap_mask_127_to_96[0x20];
8309 u8 port_access_reg_cap_mask_95_to_64[0x20];
Shay Agroskin4b5b9c72018-10-09 14:16:43 +03008310
8311 u8 port_access_reg_cap_mask_63_to_36[0x1c];
8312 u8 pplm[0x1];
8313 u8 port_access_reg_cap_mask_34_to_32[0x3];
Huy Nguyendf5f1362018-02-28 14:16:47 -06008314
8315 u8 port_access_reg_cap_mask_31_to_13[0x13];
8316 u8 pbmc[0x1];
8317 u8 pptb[0x1];
Eyal Davidovich75370eb2018-10-07 15:18:37 +03008318 u8 port_access_reg_cap_mask_10_to_09[0x2];
8319 u8 ppcnt[0x1];
8320 u8 port_access_reg_cap_mask_07_to_00[0x8];
Huy Nguyendf5f1362018-02-28 14:16:47 -06008321};
8322
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008323struct mlx5_ifc_pcam_reg_bits {
8324 u8 reserved_at_0[0x8];
8325 u8 feature_group[0x8];
8326 u8 reserved_at_10[0x8];
8327 u8 access_reg_group[0x8];
8328
8329 u8 reserved_at_20[0x20];
8330
8331 union {
Huy Nguyendf5f1362018-02-28 14:16:47 -06008332 struct mlx5_ifc_pcam_regs_5000_to_507f_bits regs_5000_to_507f;
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008333 u8 reserved_at_0[0x80];
8334 } port_access_reg_cap_mask;
8335
8336 u8 reserved_at_c0[0x80];
8337
8338 union {
8339 struct mlx5_ifc_pcam_enhanced_features_bits enhanced_features;
8340 u8 reserved_at_0[0x80];
8341 } feature_cap_mask;
8342
8343 u8 reserved_at_1c0[0xc0];
8344};
8345
8346struct mlx5_ifc_mcam_enhanced_features_bits {
Eran Ben Elisha5e022dd2018-07-16 18:35:31 -07008347 u8 reserved_at_0[0x74];
8348 u8 mark_tx_action_cnp[0x1];
8349 u8 mark_tx_action_cqe[0x1];
8350 u8 dynamic_tx_overflow[0x1];
8351 u8 reserved_at_77[0x4];
Gal Pressman5405fa22017-06-15 18:29:23 +03008352 u8 pcie_outbound_stalled[0x1];
Eran Ben Elishaefae7f72017-05-12 02:47:02 +03008353 u8 tx_overflow_buffer_pkt[0x1];
Eugenia Emantayevfa367682017-05-25 16:09:34 +03008354 u8 mtpps_enh_out_per_adj[0x1];
8355 u8 mtpps_fs[0x1];
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008356 u8 pcie_performance_group[0x1];
8357};
8358
Or Gerlitz0ab87742017-06-11 15:25:38 +03008359struct mlx5_ifc_mcam_access_reg_bits {
8360 u8 reserved_at_0[0x1c];
8361 u8 mcda[0x1];
8362 u8 mcc[0x1];
8363 u8 mcqi[0x1];
8364 u8 reserved_at_1f[0x1];
8365
Eran Ben Elisha5e022dd2018-07-16 18:35:31 -07008366 u8 regs_95_to_87[0x9];
8367 u8 mpegc[0x1];
8368 u8 regs_85_to_68[0x12];
Feras Daoudeff8ea82018-07-16 18:35:30 -07008369 u8 tracer_registers[0x4];
8370
Or Gerlitz0ab87742017-06-11 15:25:38 +03008371 u8 regs_63_to_32[0x20];
8372 u8 regs_31_to_0[0x20];
8373};
8374
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008375struct mlx5_ifc_mcam_reg_bits {
8376 u8 reserved_at_0[0x8];
8377 u8 feature_group[0x8];
8378 u8 reserved_at_10[0x8];
8379 u8 access_reg_group[0x8];
8380
8381 u8 reserved_at_20[0x20];
8382
8383 union {
Or Gerlitz0ab87742017-06-11 15:25:38 +03008384 struct mlx5_ifc_mcam_access_reg_bits access_regs;
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008385 u8 reserved_at_0[0x80];
8386 } mng_access_reg_cap_mask;
8387
8388 u8 reserved_at_c0[0x80];
8389
8390 union {
8391 struct mlx5_ifc_mcam_enhanced_features_bits enhanced_features;
8392 u8 reserved_at_0[0x80];
8393 } mng_feature_cap_mask;
8394
8395 u8 reserved_at_1c0[0x80];
8396};
8397
Huy Nguyenc02762e2017-07-18 16:03:17 -05008398struct mlx5_ifc_qcam_access_reg_cap_mask {
8399 u8 qcam_access_reg_cap_mask_127_to_20[0x6C];
8400 u8 qpdpm[0x1];
8401 u8 qcam_access_reg_cap_mask_18_to_4[0x0F];
8402 u8 qdpm[0x1];
8403 u8 qpts[0x1];
8404 u8 qcap[0x1];
8405 u8 qcam_access_reg_cap_mask_0[0x1];
8406};
8407
8408struct mlx5_ifc_qcam_qos_feature_cap_mask {
8409 u8 qcam_qos_feature_cap_mask_127_to_1[0x7F];
8410 u8 qpts_trust_both[0x1];
8411};
8412
8413struct mlx5_ifc_qcam_reg_bits {
8414 u8 reserved_at_0[0x8];
8415 u8 feature_group[0x8];
8416 u8 reserved_at_10[0x8];
8417 u8 access_reg_group[0x8];
8418 u8 reserved_at_20[0x20];
8419
8420 union {
8421 struct mlx5_ifc_qcam_access_reg_cap_mask reg_cap;
8422 u8 reserved_at_0[0x80];
8423 } qos_access_reg_cap_mask;
8424
8425 u8 reserved_at_c0[0x80];
8426
8427 union {
8428 struct mlx5_ifc_qcam_qos_feature_cap_mask feature_cap;
8429 u8 reserved_at_0[0x80];
8430 } qos_feature_cap_mask;
8431
8432 u8 reserved_at_1c0[0x80];
8433};
8434
Saeed Mahameede2816822015-05-28 22:28:40 +03008435struct mlx5_ifc_pcap_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
8440 u8 port_capability_mask[4][0x20];
8441};
8442
8443struct mlx5_ifc_paos_reg_bits {
8444 u8 swid[0x8];
8445 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008446 u8 reserved_at_10[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008447 u8 admin_status[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008448 u8 reserved_at_18[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008449 u8 oper_status[0x4];
8450
8451 u8 ase[0x1];
8452 u8 ee[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008453 u8 reserved_at_22[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03008454 u8 e[0x2];
8455
Matan Barakb4ff3a32016-02-09 14:57:42 +02008456 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03008457};
8458
8459struct mlx5_ifc_pamp_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008460 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008461 u8 opamp_group[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008462 u8 reserved_at_10[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03008463 u8 opamp_group_type[0x4];
8464
8465 u8 start_index[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008466 u8 reserved_at_30[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008467 u8 num_of_indices[0xc];
8468
8469 u8 index_data[18][0x10];
8470};
8471
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03008472struct mlx5_ifc_pcmr_reg_bits {
8473 u8 reserved_at_0[0x8];
8474 u8 local_port[0x8];
8475 u8 reserved_at_10[0x2e];
8476 u8 fcs_cap[0x1];
8477 u8 reserved_at_3f[0x1f];
8478 u8 fcs_chk[0x1];
8479 u8 reserved_at_5f[0x1];
8480};
8481
Saeed Mahameede2816822015-05-28 22:28:40 +03008482struct mlx5_ifc_lane_2_module_mapping_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008483 u8 reserved_at_0[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03008484 u8 rx_lane[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008485 u8 reserved_at_8[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03008486 u8 tx_lane[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008487 u8 reserved_at_10[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008488 u8 module[0x8];
8489};
8490
8491struct mlx5_ifc_bufferx_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008492 u8 reserved_at_0[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03008493 u8 lossy[0x1];
8494 u8 epsb[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008495 u8 reserved_at_8[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03008496 u8 size[0xc];
8497
8498 u8 xoff_threshold[0x10];
8499 u8 xon_threshold[0x10];
8500};
8501
8502struct mlx5_ifc_set_node_in_bits {
8503 u8 node_description[64][0x8];
8504};
8505
8506struct mlx5_ifc_register_power_settings_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008507 u8 reserved_at_0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008508 u8 power_settings_level[0x8];
8509
Matan Barakb4ff3a32016-02-09 14:57:42 +02008510 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03008511};
8512
8513struct mlx5_ifc_register_host_endianness_bits {
8514 u8 he[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008515 u8 reserved_at_1[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03008516
Matan Barakb4ff3a32016-02-09 14:57:42 +02008517 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03008518};
8519
8520struct mlx5_ifc_umr_pointer_desc_argument_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008521 u8 reserved_at_0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03008522
8523 u8 mkey[0x20];
8524
8525 u8 addressh_63_32[0x20];
8526
8527 u8 addressl_31_0[0x20];
8528};
8529
8530struct mlx5_ifc_ud_adrs_vector_bits {
8531 u8 dc_key[0x40];
8532
8533 u8 ext[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008534 u8 reserved_at_41[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03008535 u8 destination_qp_dct[0x18];
8536
8537 u8 static_rate[0x4];
8538 u8 sl_eth_prio[0x4];
8539 u8 fl[0x1];
8540 u8 mlid[0x7];
8541 u8 rlid_udp_sport[0x10];
8542
Matan Barakb4ff3a32016-02-09 14:57:42 +02008543 u8 reserved_at_80[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03008544
8545 u8 rmac_47_16[0x20];
8546
8547 u8 rmac_15_0[0x10];
8548 u8 tclass[0x8];
8549 u8 hop_limit[0x8];
8550
Matan Barakb4ff3a32016-02-09 14:57:42 +02008551 u8 reserved_at_e0[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03008552 u8 grh[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008553 u8 reserved_at_e2[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03008554 u8 src_addr_index[0x8];
8555 u8 flow_label[0x14];
8556
8557 u8 rgid_rip[16][0x8];
8558};
8559
8560struct mlx5_ifc_pages_req_event_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008561 u8 reserved_at_0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008562 u8 function_id[0x10];
8563
8564 u8 num_pages[0x20];
8565
Matan Barakb4ff3a32016-02-09 14:57:42 +02008566 u8 reserved_at_40[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03008567};
8568
8569struct mlx5_ifc_eqe_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008570 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008571 u8 event_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008572 u8 reserved_at_10[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008573 u8 event_sub_type[0x8];
8574
Matan Barakb4ff3a32016-02-09 14:57:42 +02008575 u8 reserved_at_20[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03008576
8577 union mlx5_ifc_event_auto_bits event_data;
8578
Matan Barakb4ff3a32016-02-09 14:57:42 +02008579 u8 reserved_at_1e0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008580 u8 signature[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008581 u8 reserved_at_1f8[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03008582 u8 owner[0x1];
8583};
8584
8585enum {
8586 MLX5_CMD_QUEUE_ENTRY_TYPE_PCIE_CMD_IF_TRANSPORT = 0x7,
8587};
8588
8589struct mlx5_ifc_cmd_queue_entry_bits {
8590 u8 type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008591 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008592
8593 u8 input_length[0x20];
8594
8595 u8 input_mailbox_pointer_63_32[0x20];
8596
8597 u8 input_mailbox_pointer_31_9[0x17];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008598 u8 reserved_at_77[0x9];
Saeed Mahameede2816822015-05-28 22:28:40 +03008599
8600 u8 command_input_inline_data[16][0x8];
8601
8602 u8 command_output_inline_data[16][0x8];
8603
8604 u8 output_mailbox_pointer_63_32[0x20];
8605
8606 u8 output_mailbox_pointer_31_9[0x17];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008607 u8 reserved_at_1b7[0x9];
Saeed Mahameede2816822015-05-28 22:28:40 +03008608
8609 u8 output_length[0x20];
8610
8611 u8 token[0x8];
8612 u8 signature[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008613 u8 reserved_at_1f0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008614 u8 status[0x7];
8615 u8 ownership[0x1];
8616};
8617
8618struct mlx5_ifc_cmd_out_bits {
8619 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008620 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008621
8622 u8 syndrome[0x20];
8623
8624 u8 command_output[0x20];
8625};
8626
8627struct mlx5_ifc_cmd_in_bits {
8628 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008629 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008630
Matan Barakb4ff3a32016-02-09 14:57:42 +02008631 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008632 u8 op_mod[0x10];
8633
8634 u8 command[0][0x20];
8635};
8636
8637struct mlx5_ifc_cmd_if_box_bits {
8638 u8 mailbox_data[512][0x8];
8639
Matan Barakb4ff3a32016-02-09 14:57:42 +02008640 u8 reserved_at_1000[0x180];
Saeed Mahameede2816822015-05-28 22:28:40 +03008641
8642 u8 next_pointer_63_32[0x20];
8643
8644 u8 next_pointer_31_10[0x16];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008645 u8 reserved_at_11b6[0xa];
Saeed Mahameede2816822015-05-28 22:28:40 +03008646
8647 u8 block_number[0x20];
8648
Matan Barakb4ff3a32016-02-09 14:57:42 +02008649 u8 reserved_at_11e0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008650 u8 token[0x8];
8651 u8 ctrl_signature[0x8];
8652 u8 signature[0x8];
8653};
8654
8655struct mlx5_ifc_mtt_bits {
8656 u8 ptag_63_32[0x20];
8657
8658 u8 ptag_31_8[0x18];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008659 u8 reserved_at_38[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03008660 u8 wr_en[0x1];
8661 u8 rd_en[0x1];
8662};
8663
Tariq Toukan928cfe82016-02-22 18:17:29 +02008664struct mlx5_ifc_query_wol_rol_out_bits {
8665 u8 status[0x8];
8666 u8 reserved_at_8[0x18];
8667
8668 u8 syndrome[0x20];
8669
8670 u8 reserved_at_40[0x10];
8671 u8 rol_mode[0x8];
8672 u8 wol_mode[0x8];
8673
8674 u8 reserved_at_60[0x20];
8675};
8676
8677struct mlx5_ifc_query_wol_rol_in_bits {
8678 u8 opcode[0x10];
8679 u8 reserved_at_10[0x10];
8680
8681 u8 reserved_at_20[0x10];
8682 u8 op_mod[0x10];
8683
8684 u8 reserved_at_40[0x40];
8685};
8686
8687struct mlx5_ifc_set_wol_rol_out_bits {
8688 u8 status[0x8];
8689 u8 reserved_at_8[0x18];
8690
8691 u8 syndrome[0x20];
8692
8693 u8 reserved_at_40[0x40];
8694};
8695
8696struct mlx5_ifc_set_wol_rol_in_bits {
8697 u8 opcode[0x10];
8698 u8 reserved_at_10[0x10];
8699
8700 u8 reserved_at_20[0x10];
8701 u8 op_mod[0x10];
8702
8703 u8 rol_mode_valid[0x1];
8704 u8 wol_mode_valid[0x1];
8705 u8 reserved_at_42[0xe];
8706 u8 rol_mode[0x8];
8707 u8 wol_mode[0x8];
8708
8709 u8 reserved_at_60[0x20];
8710};
8711
Saeed Mahameede2816822015-05-28 22:28:40 +03008712enum {
8713 MLX5_INITIAL_SEG_NIC_INTERFACE_FULL_DRIVER = 0x0,
8714 MLX5_INITIAL_SEG_NIC_INTERFACE_DISABLED = 0x1,
8715 MLX5_INITIAL_SEG_NIC_INTERFACE_NO_DRAM_NIC = 0x2,
8716};
8717
8718enum {
8719 MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_FULL_DRIVER = 0x0,
8720 MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_DISABLED = 0x1,
8721 MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_NO_DRAM_NIC = 0x2,
8722};
8723
8724enum {
8725 MLX5_INITIAL_SEG_HEALTH_SYNDROME_FW_INTERNAL_ERR = 0x1,
8726 MLX5_INITIAL_SEG_HEALTH_SYNDROME_DEAD_IRISC = 0x7,
8727 MLX5_INITIAL_SEG_HEALTH_SYNDROME_HW_FATAL_ERR = 0x8,
8728 MLX5_INITIAL_SEG_HEALTH_SYNDROME_FW_CRC_ERR = 0x9,
8729 MLX5_INITIAL_SEG_HEALTH_SYNDROME_ICM_FETCH_PCI_ERR = 0xa,
8730 MLX5_INITIAL_SEG_HEALTH_SYNDROME_ICM_PAGE_ERR = 0xb,
8731 MLX5_INITIAL_SEG_HEALTH_SYNDROME_ASYNCHRONOUS_EQ_BUF_OVERRUN = 0xc,
8732 MLX5_INITIAL_SEG_HEALTH_SYNDROME_EQ_IN_ERR = 0xd,
8733 MLX5_INITIAL_SEG_HEALTH_SYNDROME_EQ_INV = 0xe,
8734 MLX5_INITIAL_SEG_HEALTH_SYNDROME_FFSER_ERR = 0xf,
8735 MLX5_INITIAL_SEG_HEALTH_SYNDROME_HIGH_TEMP_ERR = 0x10,
8736};
8737
8738struct mlx5_ifc_initial_seg_bits {
8739 u8 fw_rev_minor[0x10];
8740 u8 fw_rev_major[0x10];
8741
8742 u8 cmd_interface_rev[0x10];
8743 u8 fw_rev_subminor[0x10];
8744
Matan Barakb4ff3a32016-02-09 14:57:42 +02008745 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03008746
8747 u8 cmdq_phy_addr_63_32[0x20];
8748
8749 u8 cmdq_phy_addr_31_12[0x14];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008750 u8 reserved_at_b4[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03008751 u8 nic_interface[0x2];
8752 u8 log_cmdq_size[0x4];
8753 u8 log_cmdq_stride[0x4];
8754
8755 u8 command_doorbell_vector[0x20];
8756
Matan Barakb4ff3a32016-02-09 14:57:42 +02008757 u8 reserved_at_e0[0xf00];
Saeed Mahameede2816822015-05-28 22:28:40 +03008758
8759 u8 initializing[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008760 u8 reserved_at_fe1[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008761 u8 nic_interface_supported[0x3];
Bodong Wang591905b2019-02-12 22:55:35 -08008762 u8 embedded_cpu[0x1];
8763 u8 reserved_at_fe9[0x17];
Saeed Mahameede2816822015-05-28 22:28:40 +03008764
8765 struct mlx5_ifc_health_buffer_bits health_buffer;
8766
8767 u8 no_dram_nic_offset[0x20];
8768
Matan Barakb4ff3a32016-02-09 14:57:42 +02008769 u8 reserved_at_1220[0x6e40];
Saeed Mahameede2816822015-05-28 22:28:40 +03008770
Matan Barakb4ff3a32016-02-09 14:57:42 +02008771 u8 reserved_at_8060[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03008772 u8 clear_int[0x1];
8773
8774 u8 health_syndrome[0x8];
8775 u8 health_counter[0x18];
8776
Matan Barakb4ff3a32016-02-09 14:57:42 +02008777 u8 reserved_at_80a0[0x17fc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03008778};
8779
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03008780struct mlx5_ifc_mtpps_reg_bits {
8781 u8 reserved_at_0[0xc];
8782 u8 cap_number_of_pps_pins[0x4];
8783 u8 reserved_at_10[0x4];
8784 u8 cap_max_num_of_pps_in_pins[0x4];
8785 u8 reserved_at_18[0x4];
8786 u8 cap_max_num_of_pps_out_pins[0x4];
8787
8788 u8 reserved_at_20[0x24];
8789 u8 cap_pin_3_mode[0x4];
8790 u8 reserved_at_48[0x4];
8791 u8 cap_pin_2_mode[0x4];
8792 u8 reserved_at_50[0x4];
8793 u8 cap_pin_1_mode[0x4];
8794 u8 reserved_at_58[0x4];
8795 u8 cap_pin_0_mode[0x4];
8796
8797 u8 reserved_at_60[0x4];
8798 u8 cap_pin_7_mode[0x4];
8799 u8 reserved_at_68[0x4];
8800 u8 cap_pin_6_mode[0x4];
8801 u8 reserved_at_70[0x4];
8802 u8 cap_pin_5_mode[0x4];
8803 u8 reserved_at_78[0x4];
8804 u8 cap_pin_4_mode[0x4];
8805
Eugenia Emantayevfa367682017-05-25 16:09:34 +03008806 u8 field_select[0x20];
8807 u8 reserved_at_a0[0x60];
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03008808
8809 u8 enable[0x1];
8810 u8 reserved_at_101[0xb];
8811 u8 pattern[0x4];
8812 u8 reserved_at_110[0x4];
8813 u8 pin_mode[0x4];
8814 u8 pin[0x8];
8815
8816 u8 reserved_at_120[0x20];
8817
8818 u8 time_stamp[0x40];
8819
8820 u8 out_pulse_duration[0x10];
8821 u8 out_periodic_adjustment[0x10];
Eugenia Emantayevfa367682017-05-25 16:09:34 +03008822 u8 enhanced_out_periodic_adjustment[0x20];
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03008823
Eugenia Emantayevfa367682017-05-25 16:09:34 +03008824 u8 reserved_at_1c0[0x20];
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03008825};
8826
8827struct mlx5_ifc_mtppse_reg_bits {
8828 u8 reserved_at_0[0x18];
8829 u8 pin[0x8];
8830 u8 event_arm[0x1];
8831 u8 reserved_at_21[0x1b];
8832 u8 event_generation_mode[0x4];
8833 u8 reserved_at_40[0x40];
8834};
8835
Or Gerlitz47176282017-04-18 13:35:39 +03008836struct mlx5_ifc_mcqi_cap_bits {
8837 u8 supported_info_bitmask[0x20];
8838
8839 u8 component_size[0x20];
8840
8841 u8 max_component_size[0x20];
8842
8843 u8 log_mcda_word_size[0x4];
8844 u8 reserved_at_64[0xc];
8845 u8 mcda_max_write_size[0x10];
8846
8847 u8 rd_en[0x1];
8848 u8 reserved_at_81[0x1];
8849 u8 match_chip_id[0x1];
8850 u8 match_psid[0x1];
8851 u8 check_user_timestamp[0x1];
8852 u8 match_base_guid_mac[0x1];
8853 u8 reserved_at_86[0x1a];
8854};
8855
8856struct mlx5_ifc_mcqi_reg_bits {
8857 u8 read_pending_component[0x1];
8858 u8 reserved_at_1[0xf];
8859 u8 component_index[0x10];
8860
8861 u8 reserved_at_20[0x20];
8862
8863 u8 reserved_at_40[0x1b];
8864 u8 info_type[0x5];
8865
8866 u8 info_size[0x20];
8867
8868 u8 offset[0x20];
8869
8870 u8 reserved_at_a0[0x10];
8871 u8 data_size[0x10];
8872
8873 u8 data[0][0x20];
8874};
8875
8876struct mlx5_ifc_mcc_reg_bits {
8877 u8 reserved_at_0[0x4];
8878 u8 time_elapsed_since_last_cmd[0xc];
8879 u8 reserved_at_10[0x8];
8880 u8 instruction[0x8];
8881
8882 u8 reserved_at_20[0x10];
8883 u8 component_index[0x10];
8884
8885 u8 reserved_at_40[0x8];
8886 u8 update_handle[0x18];
8887
8888 u8 handle_owner_type[0x4];
8889 u8 handle_owner_host_id[0x4];
8890 u8 reserved_at_68[0x1];
8891 u8 control_progress[0x7];
8892 u8 error_code[0x8];
8893 u8 reserved_at_78[0x4];
8894 u8 control_state[0x4];
8895
8896 u8 component_size[0x20];
8897
8898 u8 reserved_at_a0[0x60];
8899};
8900
8901struct mlx5_ifc_mcda_reg_bits {
8902 u8 reserved_at_0[0x8];
8903 u8 update_handle[0x18];
8904
8905 u8 offset[0x20];
8906
8907 u8 reserved_at_40[0x10];
8908 u8 size[0x10];
8909
8910 u8 reserved_at_60[0x20];
8911
8912 u8 data[0][0x20];
8913};
8914
Saeed Mahameede2816822015-05-28 22:28:40 +03008915union mlx5_ifc_ports_control_registers_document_bits {
8916 struct mlx5_ifc_bufferx_reg_bits bufferx_reg;
8917 struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits eth_2819_cntrs_grp_data_layout;
8918 struct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits eth_2863_cntrs_grp_data_layout;
8919 struct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits eth_3635_cntrs_grp_data_layout;
8920 struct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits eth_802_3_cntrs_grp_data_layout;
8921 struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits eth_extended_cntrs_grp_data_layout;
8922 struct mlx5_ifc_eth_per_prio_grp_data_layout_bits eth_per_prio_grp_data_layout;
8923 struct mlx5_ifc_eth_per_traffic_grp_data_layout_bits eth_per_traffic_grp_data_layout;
8924 struct mlx5_ifc_lane_2_module_mapping_bits lane_2_module_mapping;
8925 struct mlx5_ifc_pamp_reg_bits pamp_reg;
8926 struct mlx5_ifc_paos_reg_bits paos_reg;
8927 struct mlx5_ifc_pcap_reg_bits pcap_reg;
8928 struct mlx5_ifc_peir_reg_bits peir_reg;
8929 struct mlx5_ifc_pelc_reg_bits pelc_reg;
8930 struct mlx5_ifc_pfcc_reg_bits pfcc_reg;
Meny Yossefi1c64bf62016-02-18 18:15:00 +02008931 struct mlx5_ifc_ib_port_cntrs_grp_data_layout_bits ib_port_cntrs_grp_data_layout;
Saeed Mahameede2816822015-05-28 22:28:40 +03008932 struct mlx5_ifc_phys_layer_cntrs_bits phys_layer_cntrs;
8933 struct mlx5_ifc_pifr_reg_bits pifr_reg;
8934 struct mlx5_ifc_pipg_reg_bits pipg_reg;
8935 struct mlx5_ifc_plbf_reg_bits plbf_reg;
8936 struct mlx5_ifc_plib_reg_bits plib_reg;
8937 struct mlx5_ifc_plpc_reg_bits plpc_reg;
8938 struct mlx5_ifc_pmaos_reg_bits pmaos_reg;
8939 struct mlx5_ifc_pmlp_reg_bits pmlp_reg;
8940 struct mlx5_ifc_pmlpn_reg_bits pmlpn_reg;
8941 struct mlx5_ifc_pmpc_reg_bits pmpc_reg;
8942 struct mlx5_ifc_pmpe_reg_bits pmpe_reg;
8943 struct mlx5_ifc_pmpr_reg_bits pmpr_reg;
8944 struct mlx5_ifc_pmtu_reg_bits pmtu_reg;
8945 struct mlx5_ifc_ppad_reg_bits ppad_reg;
8946 struct mlx5_ifc_ppcnt_reg_bits ppcnt_reg;
Gal Pressman8ed1a632016-11-17 13:46:01 +02008947 struct mlx5_ifc_mpcnt_reg_bits mpcnt_reg;
Saeed Mahameede2816822015-05-28 22:28:40 +03008948 struct mlx5_ifc_pplm_reg_bits pplm_reg;
8949 struct mlx5_ifc_pplr_reg_bits pplr_reg;
8950 struct mlx5_ifc_ppsc_reg_bits ppsc_reg;
8951 struct mlx5_ifc_pqdr_reg_bits pqdr_reg;
8952 struct mlx5_ifc_pspa_reg_bits pspa_reg;
8953 struct mlx5_ifc_ptas_reg_bits ptas_reg;
8954 struct mlx5_ifc_ptys_reg_bits ptys_reg;
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03008955 struct mlx5_ifc_mlcr_reg_bits mlcr_reg;
Saeed Mahameede2816822015-05-28 22:28:40 +03008956 struct mlx5_ifc_pude_reg_bits pude_reg;
8957 struct mlx5_ifc_pvlc_reg_bits pvlc_reg;
8958 struct mlx5_ifc_slrg_reg_bits slrg_reg;
8959 struct mlx5_ifc_sltp_reg_bits sltp_reg;
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03008960 struct mlx5_ifc_mtpps_reg_bits mtpps_reg;
8961 struct mlx5_ifc_mtppse_reg_bits mtppse_reg;
Ilan Tayaria9956d32017-04-18 13:10:41 +03008962 struct mlx5_ifc_fpga_access_reg_bits fpga_access_reg;
Ilan Tayarie29341f2017-03-13 20:05:45 +02008963 struct mlx5_ifc_fpga_ctrl_bits fpga_ctrl_bits;
8964 struct mlx5_ifc_fpga_cap_bits fpga_cap_bits;
Or Gerlitz47176282017-04-18 13:35:39 +03008965 struct mlx5_ifc_mcqi_reg_bits mcqi_reg;
8966 struct mlx5_ifc_mcc_reg_bits mcc_reg;
8967 struct mlx5_ifc_mcda_reg_bits mcda_reg;
Matan Barakb4ff3a32016-02-09 14:57:42 +02008968 u8 reserved_at_0[0x60e0];
Saeed Mahameede2816822015-05-28 22:28:40 +03008969};
8970
8971union mlx5_ifc_debug_enhancements_document_bits {
8972 struct mlx5_ifc_health_buffer_bits health_buffer;
Matan Barakb4ff3a32016-02-09 14:57:42 +02008973 u8 reserved_at_0[0x200];
Saeed Mahameede2816822015-05-28 22:28:40 +03008974};
8975
8976union mlx5_ifc_uplink_pci_interface_document_bits {
8977 struct mlx5_ifc_initial_seg_bits initial_seg;
Matan Barakb4ff3a32016-02-09 14:57:42 +02008978 u8 reserved_at_0[0x20060];
Eli Cohenb7755162014-10-02 12:19:44 +03008979};
8980
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02008981struct mlx5_ifc_set_flow_table_root_out_bits {
8982 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008983 u8 reserved_at_8[0x18];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02008984
8985 u8 syndrome[0x20];
8986
Matan Barakb4ff3a32016-02-09 14:57:42 +02008987 u8 reserved_at_40[0x40];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02008988};
8989
8990struct mlx5_ifc_set_flow_table_root_in_bits {
8991 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008992 u8 reserved_at_10[0x10];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02008993
Matan Barakb4ff3a32016-02-09 14:57:42 +02008994 u8 reserved_at_20[0x10];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02008995 u8 op_mod[0x10];
8996
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03008997 u8 other_vport[0x1];
8998 u8 reserved_at_41[0xf];
8999 u8 vport_number[0x10];
9000
9001 u8 reserved_at_60[0x20];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02009002
9003 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02009004 u8 reserved_at_88[0x18];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02009005
Matan Barakb4ff3a32016-02-09 14:57:42 +02009006 u8 reserved_at_a0[0x8];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02009007 u8 table_id[0x18];
9008
Erez Shitrit500a3d02017-04-13 06:36:51 +03009009 u8 reserved_at_c0[0x8];
9010 u8 underlay_qpn[0x18];
9011 u8 reserved_at_e0[0x120];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02009012};
9013
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009014enum {
Aviv Heller84df61e2016-05-10 13:47:50 +03009015 MLX5_MODIFY_FLOW_TABLE_MISS_TABLE_ID = (1UL << 0),
9016 MLX5_MODIFY_FLOW_TABLE_LAG_NEXT_TABLE_ID = (1UL << 15),
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009017};
9018
9019struct mlx5_ifc_modify_flow_table_out_bits {
9020 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02009021 u8 reserved_at_8[0x18];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009022
9023 u8 syndrome[0x20];
9024
Matan Barakb4ff3a32016-02-09 14:57:42 +02009025 u8 reserved_at_40[0x40];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009026};
9027
9028struct mlx5_ifc_modify_flow_table_in_bits {
9029 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02009030 u8 reserved_at_10[0x10];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009031
Matan Barakb4ff3a32016-02-09 14:57:42 +02009032 u8 reserved_at_20[0x10];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009033 u8 op_mod[0x10];
9034
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03009035 u8 other_vport[0x1];
9036 u8 reserved_at_41[0xf];
9037 u8 vport_number[0x10];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009038
Matan Barakb4ff3a32016-02-09 14:57:42 +02009039 u8 reserved_at_60[0x10];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009040 u8 modify_field_select[0x10];
9041
9042 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02009043 u8 reserved_at_88[0x18];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009044
Matan Barakb4ff3a32016-02-09 14:57:42 +02009045 u8 reserved_at_a0[0x8];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009046 u8 table_id[0x18];
9047
Maor Gottlieb0c90e9c2017-03-12 11:35:23 +02009048 struct mlx5_ifc_flow_table_context_bits flow_table_context;
Maor Gottlieb34a40e62016-01-11 10:26:00 +02009049};
9050
Saeed Mahameed4f3961e2016-02-22 18:17:25 +02009051struct mlx5_ifc_ets_tcn_config_reg_bits {
9052 u8 g[0x1];
9053 u8 b[0x1];
9054 u8 r[0x1];
9055 u8 reserved_at_3[0x9];
9056 u8 group[0x4];
9057 u8 reserved_at_10[0x9];
9058 u8 bw_allocation[0x7];
9059
9060 u8 reserved_at_20[0xc];
9061 u8 max_bw_units[0x4];
9062 u8 reserved_at_30[0x8];
9063 u8 max_bw_value[0x8];
9064};
9065
9066struct mlx5_ifc_ets_global_config_reg_bits {
9067 u8 reserved_at_0[0x2];
9068 u8 r[0x1];
9069 u8 reserved_at_3[0x1d];
9070
9071 u8 reserved_at_20[0xc];
9072 u8 max_bw_units[0x4];
9073 u8 reserved_at_30[0x8];
9074 u8 max_bw_value[0x8];
9075};
9076
9077struct mlx5_ifc_qetc_reg_bits {
9078 u8 reserved_at_0[0x8];
9079 u8 port_number[0x8];
9080 u8 reserved_at_10[0x30];
9081
9082 struct mlx5_ifc_ets_tcn_config_reg_bits tc_configuration[0x8];
9083 struct mlx5_ifc_ets_global_config_reg_bits global_configuration;
9084};
9085
Huy Nguyen415a64a2017-07-18 16:08:46 -05009086struct mlx5_ifc_qpdpm_dscp_reg_bits {
9087 u8 e[0x1];
9088 u8 reserved_at_01[0x0b];
9089 u8 prio[0x04];
9090};
9091
9092struct mlx5_ifc_qpdpm_reg_bits {
9093 u8 reserved_at_0[0x8];
9094 u8 local_port[0x8];
9095 u8 reserved_at_10[0x10];
9096 struct mlx5_ifc_qpdpm_dscp_reg_bits dscp[64];
9097};
9098
9099struct mlx5_ifc_qpts_reg_bits {
9100 u8 reserved_at_0[0x8];
9101 u8 local_port[0x8];
9102 u8 reserved_at_10[0x2d];
9103 u8 trust_state[0x3];
9104};
9105
Huy Nguyen50b4a3c2018-03-02 15:47:01 -06009106struct mlx5_ifc_pptb_reg_bits {
9107 u8 reserved_at_0[0x2];
9108 u8 mm[0x2];
9109 u8 reserved_at_4[0x4];
9110 u8 local_port[0x8];
9111 u8 reserved_at_10[0x6];
9112 u8 cm[0x1];
9113 u8 um[0x1];
9114 u8 pm[0x8];
9115
9116 u8 prio_x_buff[0x20];
9117
9118 u8 pm_msb[0x8];
9119 u8 reserved_at_48[0x10];
9120 u8 ctrl_buff[0x4];
9121 u8 untagged_buff[0x4];
9122};
9123
9124struct mlx5_ifc_pbmc_reg_bits {
9125 u8 reserved_at_0[0x8];
9126 u8 local_port[0x8];
9127 u8 reserved_at_10[0x10];
9128
9129 u8 xoff_timer_value[0x10];
9130 u8 xoff_refresh[0x10];
9131
9132 u8 reserved_at_40[0x9];
9133 u8 fullness_threshold[0x7];
9134 u8 port_buffer_size[0x10];
9135
9136 struct mlx5_ifc_bufferx_reg_bits buffer[10];
9137
9138 u8 reserved_at_2e0[0x40];
9139};
9140
Saeed Mahameed4f3961e2016-02-22 18:17:25 +02009141struct mlx5_ifc_qtct_reg_bits {
9142 u8 reserved_at_0[0x8];
9143 u8 port_number[0x8];
9144 u8 reserved_at_10[0xd];
9145 u8 prio[0x3];
9146
9147 u8 reserved_at_20[0x1d];
9148 u8 tclass[0x3];
9149};
9150
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03009151struct mlx5_ifc_mcia_reg_bits {
9152 u8 l[0x1];
9153 u8 reserved_at_1[0x7];
9154 u8 module[0x8];
9155 u8 reserved_at_10[0x8];
9156 u8 status[0x8];
9157
9158 u8 i2c_device_address[0x8];
9159 u8 page_number[0x8];
9160 u8 device_address[0x10];
9161
9162 u8 reserved_at_40[0x10];
9163 u8 size[0x10];
9164
9165 u8 reserved_at_60[0x20];
9166
9167 u8 dword_0[0x20];
9168 u8 dword_1[0x20];
9169 u8 dword_2[0x20];
9170 u8 dword_3[0x20];
9171 u8 dword_4[0x20];
9172 u8 dword_5[0x20];
9173 u8 dword_6[0x20];
9174 u8 dword_7[0x20];
9175 u8 dword_8[0x20];
9176 u8 dword_9[0x20];
9177 u8 dword_10[0x20];
9178 u8 dword_11[0x20];
9179};
9180
Saeed Mahameed74862162016-06-09 15:11:34 +03009181struct mlx5_ifc_dcbx_param_bits {
9182 u8 dcbx_cee_cap[0x1];
9183 u8 dcbx_ieee_cap[0x1];
9184 u8 dcbx_standby_cap[0x1];
Gal Pressmanc74d90c2018-11-07 20:31:37 +02009185 u8 reserved_at_3[0x5];
Saeed Mahameed74862162016-06-09 15:11:34 +03009186 u8 port_number[0x8];
9187 u8 reserved_at_10[0xa];
9188 u8 max_application_table_size[6];
9189 u8 reserved_at_20[0x15];
9190 u8 version_oper[0x3];
9191 u8 reserved_at_38[5];
9192 u8 version_admin[0x3];
9193 u8 willing_admin[0x1];
9194 u8 reserved_at_41[0x3];
9195 u8 pfc_cap_oper[0x4];
9196 u8 reserved_at_48[0x4];
9197 u8 pfc_cap_admin[0x4];
9198 u8 reserved_at_50[0x4];
9199 u8 num_of_tc_oper[0x4];
9200 u8 reserved_at_58[0x4];
9201 u8 num_of_tc_admin[0x4];
9202 u8 remote_willing[0x1];
9203 u8 reserved_at_61[3];
9204 u8 remote_pfc_cap[4];
9205 u8 reserved_at_68[0x14];
9206 u8 remote_num_of_tc[0x4];
9207 u8 reserved_at_80[0x18];
9208 u8 error[0x8];
9209 u8 reserved_at_a0[0x160];
9210};
Aviv Heller84df61e2016-05-10 13:47:50 +03009211
9212struct mlx5_ifc_lagc_bits {
9213 u8 reserved_at_0[0x1d];
9214 u8 lag_state[0x3];
9215
9216 u8 reserved_at_20[0x14];
9217 u8 tx_remap_affinity_2[0x4];
9218 u8 reserved_at_38[0x4];
9219 u8 tx_remap_affinity_1[0x4];
9220};
9221
9222struct mlx5_ifc_create_lag_out_bits {
9223 u8 status[0x8];
9224 u8 reserved_at_8[0x18];
9225
9226 u8 syndrome[0x20];
9227
9228 u8 reserved_at_40[0x40];
9229};
9230
9231struct mlx5_ifc_create_lag_in_bits {
9232 u8 opcode[0x10];
9233 u8 reserved_at_10[0x10];
9234
9235 u8 reserved_at_20[0x10];
9236 u8 op_mod[0x10];
9237
9238 struct mlx5_ifc_lagc_bits ctx;
9239};
9240
9241struct mlx5_ifc_modify_lag_out_bits {
9242 u8 status[0x8];
9243 u8 reserved_at_8[0x18];
9244
9245 u8 syndrome[0x20];
9246
9247 u8 reserved_at_40[0x40];
9248};
9249
9250struct mlx5_ifc_modify_lag_in_bits {
9251 u8 opcode[0x10];
9252 u8 reserved_at_10[0x10];
9253
9254 u8 reserved_at_20[0x10];
9255 u8 op_mod[0x10];
9256
9257 u8 reserved_at_40[0x20];
9258 u8 field_select[0x20];
9259
9260 struct mlx5_ifc_lagc_bits ctx;
9261};
9262
9263struct mlx5_ifc_query_lag_out_bits {
9264 u8 status[0x8];
9265 u8 reserved_at_8[0x18];
9266
9267 u8 syndrome[0x20];
9268
9269 u8 reserved_at_40[0x40];
9270
9271 struct mlx5_ifc_lagc_bits ctx;
9272};
9273
9274struct mlx5_ifc_query_lag_in_bits {
9275 u8 opcode[0x10];
9276 u8 reserved_at_10[0x10];
9277
9278 u8 reserved_at_20[0x10];
9279 u8 op_mod[0x10];
9280
9281 u8 reserved_at_40[0x40];
9282};
9283
9284struct mlx5_ifc_destroy_lag_out_bits {
9285 u8 status[0x8];
9286 u8 reserved_at_8[0x18];
9287
9288 u8 syndrome[0x20];
9289
9290 u8 reserved_at_40[0x40];
9291};
9292
9293struct mlx5_ifc_destroy_lag_in_bits {
9294 u8 opcode[0x10];
9295 u8 reserved_at_10[0x10];
9296
9297 u8 reserved_at_20[0x10];
9298 u8 op_mod[0x10];
9299
9300 u8 reserved_at_40[0x40];
9301};
9302
9303struct mlx5_ifc_create_vport_lag_out_bits {
9304 u8 status[0x8];
9305 u8 reserved_at_8[0x18];
9306
9307 u8 syndrome[0x20];
9308
9309 u8 reserved_at_40[0x40];
9310};
9311
9312struct mlx5_ifc_create_vport_lag_in_bits {
9313 u8 opcode[0x10];
9314 u8 reserved_at_10[0x10];
9315
9316 u8 reserved_at_20[0x10];
9317 u8 op_mod[0x10];
9318
9319 u8 reserved_at_40[0x40];
9320};
9321
9322struct mlx5_ifc_destroy_vport_lag_out_bits {
9323 u8 status[0x8];
9324 u8 reserved_at_8[0x18];
9325
9326 u8 syndrome[0x20];
9327
9328 u8 reserved_at_40[0x40];
9329};
9330
9331struct mlx5_ifc_destroy_vport_lag_in_bits {
9332 u8 opcode[0x10];
9333 u8 reserved_at_10[0x10];
9334
9335 u8 reserved_at_20[0x10];
9336 u8 op_mod[0x10];
9337
9338 u8 reserved_at_40[0x40];
9339};
9340
Ariel Levkovich24da0012018-04-05 18:53:27 +03009341struct mlx5_ifc_alloc_memic_in_bits {
9342 u8 opcode[0x10];
9343 u8 reserved_at_10[0x10];
9344
9345 u8 reserved_at_20[0x10];
9346 u8 op_mod[0x10];
9347
9348 u8 reserved_at_30[0x20];
9349
9350 u8 reserved_at_40[0x18];
9351 u8 log_memic_addr_alignment[0x8];
9352
9353 u8 range_start_addr[0x40];
9354
9355 u8 range_size[0x20];
9356
9357 u8 memic_size[0x20];
9358};
9359
9360struct mlx5_ifc_alloc_memic_out_bits {
9361 u8 status[0x8];
9362 u8 reserved_at_8[0x18];
9363
9364 u8 syndrome[0x20];
9365
9366 u8 memic_start_addr[0x40];
9367};
9368
9369struct mlx5_ifc_dealloc_memic_in_bits {
9370 u8 opcode[0x10];
9371 u8 reserved_at_10[0x10];
9372
9373 u8 reserved_at_20[0x10];
9374 u8 op_mod[0x10];
9375
9376 u8 reserved_at_40[0x40];
9377
9378 u8 memic_start_addr[0x40];
9379
9380 u8 memic_size[0x20];
9381
9382 u8 reserved_at_e0[0x20];
9383};
9384
9385struct mlx5_ifc_dealloc_memic_out_bits {
9386 u8 status[0x8];
9387 u8 reserved_at_8[0x18];
9388
9389 u8 syndrome[0x20];
9390
9391 u8 reserved_at_40[0x40];
9392};
9393
Yishai Hadas38b7ca92018-03-08 14:36:27 +02009394struct mlx5_ifc_general_obj_in_cmd_hdr_bits {
9395 u8 opcode[0x10];
9396 u8 uid[0x10];
9397
9398 u8 reserved_at_20[0x10];
9399 u8 obj_type[0x10];
9400
9401 u8 obj_id[0x20];
9402
9403 u8 reserved_at_60[0x20];
9404};
9405
9406struct mlx5_ifc_general_obj_out_cmd_hdr_bits {
9407 u8 status[0x8];
9408 u8 reserved_at_8[0x18];
9409
9410 u8 syndrome[0x20];
9411
9412 u8 obj_id[0x20];
9413
9414 u8 reserved_at_60[0x20];
9415};
9416
9417struct mlx5_ifc_umem_bits {
Yishai Hadas6e3722b2018-12-19 16:28:15 +02009418 u8 reserved_at_0[0x80];
Yishai Hadas38b7ca92018-03-08 14:36:27 +02009419
Yishai Hadas6e3722b2018-12-19 16:28:15 +02009420 u8 reserved_at_80[0x1b];
Yishai Hadas38b7ca92018-03-08 14:36:27 +02009421 u8 log_page_size[0x5];
9422
9423 u8 page_offset[0x20];
9424
9425 u8 num_of_mtt[0x40];
9426
9427 struct mlx5_ifc_mtt_bits mtt[0];
9428};
9429
9430struct mlx5_ifc_uctx_bits {
Yishai Hadas9d43faa2018-11-26 08:28:32 +02009431 u8 cap[0x20];
9432
Yishai Hadas6e3722b2018-12-19 16:28:15 +02009433 u8 reserved_at_20[0x160];
Yishai Hadas38b7ca92018-03-08 14:36:27 +02009434};
9435
9436struct mlx5_ifc_create_umem_in_bits {
Yishai Hadas6e3722b2018-12-19 16:28:15 +02009437 u8 opcode[0x10];
9438 u8 uid[0x10];
9439
9440 u8 reserved_at_20[0x10];
9441 u8 op_mod[0x10];
9442
9443 u8 reserved_at_40[0x40];
9444
9445 struct mlx5_ifc_umem_bits umem;
Yishai Hadas38b7ca92018-03-08 14:36:27 +02009446};
9447
9448struct mlx5_ifc_create_uctx_in_bits {
Yishai Hadas6e3722b2018-12-19 16:28:15 +02009449 u8 opcode[0x10];
9450 u8 reserved_at_10[0x10];
9451
9452 u8 reserved_at_20[0x10];
9453 u8 op_mod[0x10];
9454
9455 u8 reserved_at_40[0x40];
9456
9457 struct mlx5_ifc_uctx_bits uctx;
9458};
9459
9460struct mlx5_ifc_destroy_uctx_in_bits {
9461 u8 opcode[0x10];
9462 u8 reserved_at_10[0x10];
9463
9464 u8 reserved_at_20[0x10];
9465 u8 op_mod[0x10];
9466
9467 u8 reserved_at_40[0x10];
9468 u8 uid[0x10];
9469
9470 u8 reserved_at_60[0x20];
Yishai Hadas38b7ca92018-03-08 14:36:27 +02009471};
9472
Feras Daoudeff8ea82018-07-16 18:35:30 -07009473struct mlx5_ifc_mtrc_string_db_param_bits {
9474 u8 string_db_base_address[0x20];
9475
9476 u8 reserved_at_20[0x8];
9477 u8 string_db_size[0x18];
9478};
9479
9480struct mlx5_ifc_mtrc_cap_bits {
9481 u8 trace_owner[0x1];
9482 u8 trace_to_memory[0x1];
9483 u8 reserved_at_2[0x4];
9484 u8 trc_ver[0x2];
9485 u8 reserved_at_8[0x14];
9486 u8 num_string_db[0x4];
9487
9488 u8 first_string_trace[0x8];
9489 u8 num_string_trace[0x8];
9490 u8 reserved_at_30[0x28];
9491
9492 u8 log_max_trace_buffer_size[0x8];
9493
9494 u8 reserved_at_60[0x20];
9495
9496 struct mlx5_ifc_mtrc_string_db_param_bits string_db_param[8];
9497
9498 u8 reserved_at_280[0x180];
9499};
9500
9501struct mlx5_ifc_mtrc_conf_bits {
9502 u8 reserved_at_0[0x1c];
9503 u8 trace_mode[0x4];
9504 u8 reserved_at_20[0x18];
9505 u8 log_trace_buffer_size[0x8];
9506 u8 trace_mkey[0x20];
9507 u8 reserved_at_60[0x3a0];
9508};
9509
9510struct mlx5_ifc_mtrc_stdb_bits {
9511 u8 string_db_index[0x4];
9512 u8 reserved_at_4[0x4];
9513 u8 read_size[0x18];
9514 u8 start_offset[0x20];
9515 u8 string_db_data[0];
9516};
9517
9518struct mlx5_ifc_mtrc_ctrl_bits {
9519 u8 trace_status[0x2];
9520 u8 reserved_at_2[0x2];
9521 u8 arm_event[0x1];
9522 u8 reserved_at_5[0xb];
9523 u8 modify_field_select[0x10];
9524 u8 reserved_at_20[0x2b];
9525 u8 current_timestamp52_32[0x15];
9526 u8 current_timestamp31_0[0x20];
9527 u8 reserved_at_80[0x180];
9528};
9529
Bodong Wangc3a4e9f2019-02-12 22:55:37 -08009530struct mlx5_ifc_host_params_context_bits {
9531 u8 host_number[0x8];
9532 u8 reserved_at_8[0x8];
9533 u8 host_num_of_vfs[0x10];
9534
9535 u8 reserved_at_20[0x10];
9536 u8 host_pci_bus[0x10];
9537
9538 u8 reserved_at_40[0x10];
9539 u8 host_pci_device[0x10];
9540
9541 u8 reserved_at_60[0x10];
9542 u8 host_pci_function[0x10];
9543
9544 u8 reserved_at_80[0x180];
9545};
9546
9547struct mlx5_ifc_query_host_params_in_bits {
9548 u8 opcode[0x10];
9549 u8 reserved_at_10[0x10];
9550
9551 u8 reserved_at_20[0x10];
9552 u8 op_mod[0x10];
9553
9554 u8 reserved_at_40[0x40];
9555};
9556
9557struct mlx5_ifc_query_host_params_out_bits {
9558 u8 status[0x8];
9559 u8 reserved_at_8[0x18];
9560
9561 u8 syndrome[0x20];
9562
9563 u8 reserved_at_40[0x40];
9564
9565 struct mlx5_ifc_host_params_context_bits host_params_context;
9566
9567 u8 reserved_at_280[0x180];
9568};
9569
Eli Cohend29b7962014-10-02 12:19:43 +03009570#endif /* MLX5_IFC_H */