blob: 1aad455538f40836635d352a06c20955d6ec5ef7 [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,
Saeed Mahameede2816822015-05-28 22:28:40 +030063};
64
65enum {
66 MLX5_MODIFY_TIR_BITMASK_LRO = 0x0,
67 MLX5_MODIFY_TIR_BITMASK_INDIRECT_TABLE = 0x1,
68 MLX5_MODIFY_TIR_BITMASK_HASH = 0x2,
69 MLX5_MODIFY_TIR_BITMASK_TUNNELED_OFFLOAD_EN = 0x3
70};
71
72enum {
Eran Ben Elishaf91e6d82015-12-14 16:34:09 +020073 MLX5_SET_HCA_CAP_OP_MOD_GENERAL_DEVICE = 0x0,
74 MLX5_SET_HCA_CAP_OP_MOD_ATOMIC = 0x3,
75};
76
77enum {
Eli Cohend29b7962014-10-02 12:19:43 +030078 MLX5_CMD_OP_QUERY_HCA_CAP = 0x100,
79 MLX5_CMD_OP_QUERY_ADAPTER = 0x101,
80 MLX5_CMD_OP_INIT_HCA = 0x102,
81 MLX5_CMD_OP_TEARDOWN_HCA = 0x103,
82 MLX5_CMD_OP_ENABLE_HCA = 0x104,
83 MLX5_CMD_OP_DISABLE_HCA = 0x105,
84 MLX5_CMD_OP_QUERY_PAGES = 0x107,
85 MLX5_CMD_OP_MANAGE_PAGES = 0x108,
86 MLX5_CMD_OP_SET_HCA_CAP = 0x109,
Saeed Mahameede2816822015-05-28 22:28:40 +030087 MLX5_CMD_OP_QUERY_ISSI = 0x10a,
88 MLX5_CMD_OP_SET_ISSI = 0x10b,
Saeed Mahameed0dbc6fe2016-11-17 13:45:59 +020089 MLX5_CMD_OP_SET_DRIVER_VERSION = 0x10d,
Eli Cohend29b7962014-10-02 12:19:43 +030090 MLX5_CMD_OP_CREATE_MKEY = 0x200,
91 MLX5_CMD_OP_QUERY_MKEY = 0x201,
92 MLX5_CMD_OP_DESTROY_MKEY = 0x202,
93 MLX5_CMD_OP_QUERY_SPECIAL_CONTEXTS = 0x203,
94 MLX5_CMD_OP_PAGE_FAULT_RESUME = 0x204,
Ariel Levkovich24da0012018-04-05 18:53:27 +030095 MLX5_CMD_OP_ALLOC_MEMIC = 0x205,
96 MLX5_CMD_OP_DEALLOC_MEMIC = 0x206,
Eli Cohend29b7962014-10-02 12:19:43 +030097 MLX5_CMD_OP_CREATE_EQ = 0x301,
98 MLX5_CMD_OP_DESTROY_EQ = 0x302,
99 MLX5_CMD_OP_QUERY_EQ = 0x303,
100 MLX5_CMD_OP_GEN_EQE = 0x304,
101 MLX5_CMD_OP_CREATE_CQ = 0x400,
102 MLX5_CMD_OP_DESTROY_CQ = 0x401,
103 MLX5_CMD_OP_QUERY_CQ = 0x402,
104 MLX5_CMD_OP_MODIFY_CQ = 0x403,
105 MLX5_CMD_OP_CREATE_QP = 0x500,
106 MLX5_CMD_OP_DESTROY_QP = 0x501,
107 MLX5_CMD_OP_RST2INIT_QP = 0x502,
108 MLX5_CMD_OP_INIT2RTR_QP = 0x503,
109 MLX5_CMD_OP_RTR2RTS_QP = 0x504,
110 MLX5_CMD_OP_RTS2RTS_QP = 0x505,
111 MLX5_CMD_OP_SQERR2RTS_QP = 0x506,
112 MLX5_CMD_OP_2ERR_QP = 0x507,
113 MLX5_CMD_OP_2RST_QP = 0x50a,
114 MLX5_CMD_OP_QUERY_QP = 0x50b,
Saeed Mahameede2816822015-05-28 22:28:40 +0300115 MLX5_CMD_OP_SQD_RTS_QP = 0x50c,
Eli Cohend29b7962014-10-02 12:19:43 +0300116 MLX5_CMD_OP_INIT2INIT_QP = 0x50e,
117 MLX5_CMD_OP_CREATE_PSV = 0x600,
118 MLX5_CMD_OP_DESTROY_PSV = 0x601,
119 MLX5_CMD_OP_CREATE_SRQ = 0x700,
120 MLX5_CMD_OP_DESTROY_SRQ = 0x701,
121 MLX5_CMD_OP_QUERY_SRQ = 0x702,
122 MLX5_CMD_OP_ARM_RQ = 0x703,
Saeed Mahameede2816822015-05-28 22:28:40 +0300123 MLX5_CMD_OP_CREATE_XRC_SRQ = 0x705,
124 MLX5_CMD_OP_DESTROY_XRC_SRQ = 0x706,
125 MLX5_CMD_OP_QUERY_XRC_SRQ = 0x707,
126 MLX5_CMD_OP_ARM_XRC_SRQ = 0x708,
Eli Cohend29b7962014-10-02 12:19:43 +0300127 MLX5_CMD_OP_CREATE_DCT = 0x710,
128 MLX5_CMD_OP_DESTROY_DCT = 0x711,
129 MLX5_CMD_OP_DRAIN_DCT = 0x712,
130 MLX5_CMD_OP_QUERY_DCT = 0x713,
131 MLX5_CMD_OP_ARM_DCT_FOR_KEY_VIOLATION = 0x714,
Saeed Mahameed74862162016-06-09 15:11:34 +0300132 MLX5_CMD_OP_CREATE_XRQ = 0x717,
133 MLX5_CMD_OP_DESTROY_XRQ = 0x718,
134 MLX5_CMD_OP_QUERY_XRQ = 0x719,
135 MLX5_CMD_OP_ARM_XRQ = 0x71a,
Eli Cohend29b7962014-10-02 12:19:43 +0300136 MLX5_CMD_OP_QUERY_VPORT_STATE = 0x750,
137 MLX5_CMD_OP_MODIFY_VPORT_STATE = 0x751,
138 MLX5_CMD_OP_QUERY_ESW_VPORT_CONTEXT = 0x752,
139 MLX5_CMD_OP_MODIFY_ESW_VPORT_CONTEXT = 0x753,
140 MLX5_CMD_OP_QUERY_NIC_VPORT_CONTEXT = 0x754,
141 MLX5_CMD_OP_MODIFY_NIC_VPORT_CONTEXT = 0x755,
Saeed Mahameede2816822015-05-28 22:28:40 +0300142 MLX5_CMD_OP_QUERY_ROCE_ADDRESS = 0x760,
Eli Cohend29b7962014-10-02 12:19:43 +0300143 MLX5_CMD_OP_SET_ROCE_ADDRESS = 0x761,
Saeed Mahameede2816822015-05-28 22:28:40 +0300144 MLX5_CMD_OP_QUERY_HCA_VPORT_CONTEXT = 0x762,
145 MLX5_CMD_OP_MODIFY_HCA_VPORT_CONTEXT = 0x763,
146 MLX5_CMD_OP_QUERY_HCA_VPORT_GID = 0x764,
147 MLX5_CMD_OP_QUERY_HCA_VPORT_PKEY = 0x765,
Moshe Shemesh61c5b5c2018-01-07 16:45:27 +0200148 MLX5_CMD_OP_QUERY_VNIC_ENV = 0x76f,
Eli Cohend29b7962014-10-02 12:19:43 +0300149 MLX5_CMD_OP_QUERY_VPORT_COUNTER = 0x770,
150 MLX5_CMD_OP_ALLOC_Q_COUNTER = 0x771,
151 MLX5_CMD_OP_DEALLOC_Q_COUNTER = 0x772,
152 MLX5_CMD_OP_QUERY_Q_COUNTER = 0x773,
Eran Ben Elisha37e92a92017-11-13 10:11:27 +0200153 MLX5_CMD_OP_SET_PP_RATE_LIMIT = 0x780,
Saeed Mahameed74862162016-06-09 15:11:34 +0300154 MLX5_CMD_OP_QUERY_RATE_LIMIT = 0x781,
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300155 MLX5_CMD_OP_CREATE_SCHEDULING_ELEMENT = 0x782,
156 MLX5_CMD_OP_DESTROY_SCHEDULING_ELEMENT = 0x783,
157 MLX5_CMD_OP_QUERY_SCHEDULING_ELEMENT = 0x784,
158 MLX5_CMD_OP_MODIFY_SCHEDULING_ELEMENT = 0x785,
159 MLX5_CMD_OP_CREATE_QOS_PARA_VPORT = 0x786,
160 MLX5_CMD_OP_DESTROY_QOS_PARA_VPORT = 0x787,
Eli Cohend29b7962014-10-02 12:19:43 +0300161 MLX5_CMD_OP_ALLOC_PD = 0x800,
162 MLX5_CMD_OP_DEALLOC_PD = 0x801,
163 MLX5_CMD_OP_ALLOC_UAR = 0x802,
164 MLX5_CMD_OP_DEALLOC_UAR = 0x803,
165 MLX5_CMD_OP_CONFIG_INT_MODERATION = 0x804,
166 MLX5_CMD_OP_ACCESS_REG = 0x805,
167 MLX5_CMD_OP_ATTACH_TO_MCG = 0x806,
Saeed Mahameed20bb5662016-07-17 02:01:45 +0300168 MLX5_CMD_OP_DETACH_FROM_MCG = 0x807,
Eli Cohend29b7962014-10-02 12:19:43 +0300169 MLX5_CMD_OP_GET_DROPPED_PACKET_LOG = 0x80a,
170 MLX5_CMD_OP_MAD_IFC = 0x50d,
171 MLX5_CMD_OP_QUERY_MAD_DEMUX = 0x80b,
172 MLX5_CMD_OP_SET_MAD_DEMUX = 0x80c,
173 MLX5_CMD_OP_NOP = 0x80d,
174 MLX5_CMD_OP_ALLOC_XRCD = 0x80e,
175 MLX5_CMD_OP_DEALLOC_XRCD = 0x80f,
Saeed Mahameede2816822015-05-28 22:28:40 +0300176 MLX5_CMD_OP_ALLOC_TRANSPORT_DOMAIN = 0x816,
177 MLX5_CMD_OP_DEALLOC_TRANSPORT_DOMAIN = 0x817,
178 MLX5_CMD_OP_QUERY_CONG_STATUS = 0x822,
179 MLX5_CMD_OP_MODIFY_CONG_STATUS = 0x823,
180 MLX5_CMD_OP_QUERY_CONG_PARAMS = 0x824,
181 MLX5_CMD_OP_MODIFY_CONG_PARAMS = 0x825,
182 MLX5_CMD_OP_QUERY_CONG_STATISTICS = 0x826,
183 MLX5_CMD_OP_ADD_VXLAN_UDP_DPORT = 0x827,
184 MLX5_CMD_OP_DELETE_VXLAN_UDP_DPORT = 0x828,
185 MLX5_CMD_OP_SET_L2_TABLE_ENTRY = 0x829,
186 MLX5_CMD_OP_QUERY_L2_TABLE_ENTRY = 0x82a,
187 MLX5_CMD_OP_DELETE_L2_TABLE_ENTRY = 0x82b,
Tariq Toukan928cfe82016-02-22 18:17:29 +0200188 MLX5_CMD_OP_SET_WOL_ROL = 0x830,
189 MLX5_CMD_OP_QUERY_WOL_ROL = 0x831,
Aviv Heller84df61e2016-05-10 13:47:50 +0300190 MLX5_CMD_OP_CREATE_LAG = 0x840,
191 MLX5_CMD_OP_MODIFY_LAG = 0x841,
192 MLX5_CMD_OP_QUERY_LAG = 0x842,
193 MLX5_CMD_OP_DESTROY_LAG = 0x843,
194 MLX5_CMD_OP_CREATE_VPORT_LAG = 0x844,
195 MLX5_CMD_OP_DESTROY_VPORT_LAG = 0x845,
Eli Cohend29b7962014-10-02 12:19:43 +0300196 MLX5_CMD_OP_CREATE_TIR = 0x900,
197 MLX5_CMD_OP_MODIFY_TIR = 0x901,
198 MLX5_CMD_OP_DESTROY_TIR = 0x902,
199 MLX5_CMD_OP_QUERY_TIR = 0x903,
Eli Cohend29b7962014-10-02 12:19:43 +0300200 MLX5_CMD_OP_CREATE_SQ = 0x904,
201 MLX5_CMD_OP_MODIFY_SQ = 0x905,
202 MLX5_CMD_OP_DESTROY_SQ = 0x906,
203 MLX5_CMD_OP_QUERY_SQ = 0x907,
204 MLX5_CMD_OP_CREATE_RQ = 0x908,
205 MLX5_CMD_OP_MODIFY_RQ = 0x909,
Maor Gottliebc1e0bfc2017-05-30 10:29:11 +0300206 MLX5_CMD_OP_SET_DELAY_DROP_PARAMS = 0x910,
Eli Cohend29b7962014-10-02 12:19:43 +0300207 MLX5_CMD_OP_DESTROY_RQ = 0x90a,
208 MLX5_CMD_OP_QUERY_RQ = 0x90b,
209 MLX5_CMD_OP_CREATE_RMP = 0x90c,
210 MLX5_CMD_OP_MODIFY_RMP = 0x90d,
211 MLX5_CMD_OP_DESTROY_RMP = 0x90e,
212 MLX5_CMD_OP_QUERY_RMP = 0x90f,
Saeed Mahameede2816822015-05-28 22:28:40 +0300213 MLX5_CMD_OP_CREATE_TIS = 0x912,
214 MLX5_CMD_OP_MODIFY_TIS = 0x913,
215 MLX5_CMD_OP_DESTROY_TIS = 0x914,
216 MLX5_CMD_OP_QUERY_TIS = 0x915,
217 MLX5_CMD_OP_CREATE_RQT = 0x916,
218 MLX5_CMD_OP_MODIFY_RQT = 0x917,
219 MLX5_CMD_OP_DESTROY_RQT = 0x918,
220 MLX5_CMD_OP_QUERY_RQT = 0x919,
Maor Gottlieb2cc43b42016-01-11 10:25:59 +0200221 MLX5_CMD_OP_SET_FLOW_TABLE_ROOT = 0x92f,
Saeed Mahameede2816822015-05-28 22:28:40 +0300222 MLX5_CMD_OP_CREATE_FLOW_TABLE = 0x930,
223 MLX5_CMD_OP_DESTROY_FLOW_TABLE = 0x931,
224 MLX5_CMD_OP_QUERY_FLOW_TABLE = 0x932,
225 MLX5_CMD_OP_CREATE_FLOW_GROUP = 0x933,
226 MLX5_CMD_OP_DESTROY_FLOW_GROUP = 0x934,
227 MLX5_CMD_OP_QUERY_FLOW_GROUP = 0x935,
228 MLX5_CMD_OP_SET_FLOW_TABLE_ENTRY = 0x936,
229 MLX5_CMD_OP_QUERY_FLOW_TABLE_ENTRY = 0x937,
Maor Gottlieb34a40e62016-01-11 10:26:00 +0200230 MLX5_CMD_OP_DELETE_FLOW_TABLE_ENTRY = 0x938,
Amir Vadai9dc0b282016-05-13 12:55:39 +0000231 MLX5_CMD_OP_ALLOC_FLOW_COUNTER = 0x939,
232 MLX5_CMD_OP_DEALLOC_FLOW_COUNTER = 0x93a,
233 MLX5_CMD_OP_QUERY_FLOW_COUNTER = 0x93b,
Shahar Klein86d56a12016-06-10 00:07:30 +0300234 MLX5_CMD_OP_MODIFY_FLOW_TABLE = 0x93c,
Hadar Hen Zion7adbde22016-08-03 15:08:33 +0300235 MLX5_CMD_OP_ALLOC_ENCAP_HEADER = 0x93d,
236 MLX5_CMD_OP_DEALLOC_ENCAP_HEADER = 0x93e,
Or Gerlitz2a69cb92017-01-19 19:31:25 +0200237 MLX5_CMD_OP_ALLOC_MODIFY_HEADER_CONTEXT = 0x940,
238 MLX5_CMD_OP_DEALLOC_MODIFY_HEADER_CONTEXT = 0x941,
Ilan Tayari60621182017-03-27 14:52:09 +0300239 MLX5_CMD_OP_FPGA_CREATE_QP = 0x960,
240 MLX5_CMD_OP_FPGA_MODIFY_QP = 0x961,
241 MLX5_CMD_OP_FPGA_QUERY_QP = 0x962,
242 MLX5_CMD_OP_FPGA_DESTROY_QP = 0x963,
243 MLX5_CMD_OP_FPGA_QUERY_QP_COUNTERS = 0x964,
Shahar Klein86d56a12016-06-10 00:07:30 +0300244 MLX5_CMD_OP_MAX
Saeed Mahameede2816822015-05-28 22:28:40 +0300245};
246
247struct mlx5_ifc_flow_table_fields_supported_bits {
248 u8 outer_dmac[0x1];
249 u8 outer_smac[0x1];
250 u8 outer_ether_type[0x1];
Ariel Levkovich19cc7522017-04-03 13:11:03 +0300251 u8 outer_ip_version[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300252 u8 outer_first_prio[0x1];
253 u8 outer_first_cfi[0x1];
254 u8 outer_first_vid[0x1];
Or Gerlitza8ade552017-06-07 17:49:56 +0300255 u8 outer_ipv4_ttl[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300256 u8 outer_second_prio[0x1];
257 u8 outer_second_cfi[0x1];
258 u8 outer_second_vid[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200259 u8 reserved_at_b[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300260 u8 outer_sip[0x1];
261 u8 outer_dip[0x1];
262 u8 outer_frag[0x1];
263 u8 outer_ip_protocol[0x1];
264 u8 outer_ip_ecn[0x1];
265 u8 outer_ip_dscp[0x1];
266 u8 outer_udp_sport[0x1];
267 u8 outer_udp_dport[0x1];
268 u8 outer_tcp_sport[0x1];
269 u8 outer_tcp_dport[0x1];
270 u8 outer_tcp_flags[0x1];
271 u8 outer_gre_protocol[0x1];
272 u8 outer_gre_key[0x1];
273 u8 outer_vxlan_vni[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200274 u8 reserved_at_1a[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +0300275 u8 source_eswitch_port[0x1];
276
277 u8 inner_dmac[0x1];
278 u8 inner_smac[0x1];
279 u8 inner_ether_type[0x1];
Ariel Levkovich19cc7522017-04-03 13:11:03 +0300280 u8 inner_ip_version[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300281 u8 inner_first_prio[0x1];
282 u8 inner_first_cfi[0x1];
283 u8 inner_first_vid[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200284 u8 reserved_at_27[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300285 u8 inner_second_prio[0x1];
286 u8 inner_second_cfi[0x1];
287 u8 inner_second_vid[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200288 u8 reserved_at_2b[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300289 u8 inner_sip[0x1];
290 u8 inner_dip[0x1];
291 u8 inner_frag[0x1];
292 u8 inner_ip_protocol[0x1];
293 u8 inner_ip_ecn[0x1];
294 u8 inner_ip_dscp[0x1];
295 u8 inner_udp_sport[0x1];
296 u8 inner_udp_dport[0x1];
297 u8 inner_tcp_sport[0x1];
298 u8 inner_tcp_dport[0x1];
299 u8 inner_tcp_flags[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200300 u8 reserved_at_37[0x9];
Boris Pismenny3346c482017-08-20 15:13:08 +0300301 u8 reserved_at_40[0x17];
302 u8 outer_esp_spi[0x1];
303 u8 reserved_at_58[0x2];
Yishai Hadasa550ddf2017-08-17 15:52:33 +0300304 u8 bth_dst_qp[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300305
Yishai Hadasa550ddf2017-08-17 15:52:33 +0300306 u8 reserved_at_5b[0x25];
Saeed Mahameede2816822015-05-28 22:28:40 +0300307};
308
309struct mlx5_ifc_flow_table_prop_layout_bits {
310 u8 ft_support[0x1];
Amir Vadai9dc0b282016-05-13 12:55:39 +0000311 u8 reserved_at_1[0x1];
312 u8 flow_counter[0x1];
Maor Gottlieb26a81452015-12-10 17:12:39 +0200313 u8 flow_modify_en[0x1];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +0200314 u8 modify_root[0x1];
Maor Gottlieb34a40e62016-01-11 10:26:00 +0200315 u8 identified_miss_table_mode[0x1];
316 u8 flow_table_modify[0x1];
Hadar Hen Zion7adbde22016-08-03 15:08:33 +0300317 u8 encap[0x1];
318 u8 decap[0x1];
Or Gerlitz0c068972018-01-28 20:14:20 +0200319 u8 reserved_at_9[0x1];
320 u8 pop_vlan[0x1];
321 u8 push_vlan[0x1];
322 u8 reserved_at_c[0x14];
Saeed Mahameede2816822015-05-28 22:28:40 +0300323
Matan Barakb4ff3a32016-02-09 14:57:42 +0200324 u8 reserved_at_20[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +0300325 u8 log_max_ft_size[0x6];
Or Gerlitz2a69cb92017-01-19 19:31:25 +0200326 u8 log_max_modify_header_context[0x8];
327 u8 max_modify_header_actions[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300328 u8 max_ft_level[0x8];
329
Matan Barakb4ff3a32016-02-09 14:57:42 +0200330 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +0300331
Matan Barakb4ff3a32016-02-09 14:57:42 +0200332 u8 reserved_at_60[0x18];
Maor Gottlieb26a81452015-12-10 17:12:39 +0200333 u8 log_max_ft_num[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300334
Matan Barakb4ff3a32016-02-09 14:57:42 +0200335 u8 reserved_at_80[0x18];
Maor Gottlieb26a81452015-12-10 17:12:39 +0200336 u8 log_max_destination[0x8];
337
Raed Salem16f1c5b2017-07-30 11:02:51 +0300338 u8 log_max_flow_counter[0x8];
339 u8 reserved_at_a8[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300340 u8 log_max_flow[0x8];
341
Matan Barakb4ff3a32016-02-09 14:57:42 +0200342 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +0300343
344 struct mlx5_ifc_flow_table_fields_supported_bits ft_field_support;
345
346 struct mlx5_ifc_flow_table_fields_supported_bits ft_field_bitmask_support;
347};
348
349struct mlx5_ifc_odp_per_transport_service_cap_bits {
350 u8 send[0x1];
351 u8 receive[0x1];
352 u8 write[0x1];
353 u8 read[0x1];
Artemy Kovalyov17d2f882017-01-02 11:37:47 +0200354 u8 atomic[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300355 u8 srq_receive[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200356 u8 reserved_at_6[0x1a];
Saeed Mahameede2816822015-05-28 22:28:40 +0300357};
358
Maor Gottliebb4d1f032016-01-11 10:26:05 +0200359struct mlx5_ifc_ipv4_layout_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +0200360 u8 reserved_at_0[0x60];
Maor Gottliebb4d1f032016-01-11 10:26:05 +0200361
362 u8 ipv4[0x20];
363};
364
365struct mlx5_ifc_ipv6_layout_bits {
366 u8 ipv6[16][0x8];
367};
368
369union mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits {
370 struct mlx5_ifc_ipv6_layout_bits ipv6_layout;
371 struct mlx5_ifc_ipv4_layout_bits ipv4_layout;
Matan Barakb4ff3a32016-02-09 14:57:42 +0200372 u8 reserved_at_0[0x80];
Maor Gottliebb4d1f032016-01-11 10:26:05 +0200373};
374
Saeed Mahameede2816822015-05-28 22:28:40 +0300375struct mlx5_ifc_fte_match_set_lyr_2_4_bits {
376 u8 smac_47_16[0x20];
377
378 u8 smac_15_0[0x10];
379 u8 ethertype[0x10];
380
381 u8 dmac_47_16[0x20];
382
383 u8 dmac_15_0[0x10];
384 u8 first_prio[0x3];
385 u8 first_cfi[0x1];
386 u8 first_vid[0xc];
387
388 u8 ip_protocol[0x8];
389 u8 ip_dscp[0x6];
390 u8 ip_ecn[0x2];
Mohamad Haj Yahia10543362016-10-09 16:25:43 +0300391 u8 cvlan_tag[0x1];
392 u8 svlan_tag[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300393 u8 frag[0x1];
Ariel Levkovich19cc7522017-04-03 13:11:03 +0300394 u8 ip_version[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +0300395 u8 tcp_flags[0x9];
396
397 u8 tcp_sport[0x10];
398 u8 tcp_dport[0x10];
399
Or Gerlitza8ade552017-06-07 17:49:56 +0300400 u8 reserved_at_c0[0x18];
401 u8 ttl_hoplimit[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300402
403 u8 udp_sport[0x10];
404 u8 udp_dport[0x10];
405
Maor Gottliebb4d1f032016-01-11 10:26:05 +0200406 union mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits src_ipv4_src_ipv6;
Saeed Mahameede2816822015-05-28 22:28:40 +0300407
Maor Gottliebb4d1f032016-01-11 10:26:05 +0200408 union mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits dst_ipv4_dst_ipv6;
Saeed Mahameede2816822015-05-28 22:28:40 +0300409};
410
411struct mlx5_ifc_fte_match_set_misc_bits {
Saeed Mahameed74862162016-06-09 15:11:34 +0300412 u8 reserved_at_0[0x8];
413 u8 source_sqn[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +0300414
Matan Barakb4ff3a32016-02-09 14:57:42 +0200415 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300416 u8 source_port[0x10];
417
418 u8 outer_second_prio[0x3];
419 u8 outer_second_cfi[0x1];
420 u8 outer_second_vid[0xc];
421 u8 inner_second_prio[0x3];
422 u8 inner_second_cfi[0x1];
423 u8 inner_second_vid[0xc];
424
Mohamad Haj Yahia10543362016-10-09 16:25:43 +0300425 u8 outer_second_cvlan_tag[0x1];
426 u8 inner_second_cvlan_tag[0x1];
427 u8 outer_second_svlan_tag[0x1];
428 u8 inner_second_svlan_tag[0x1];
429 u8 reserved_at_64[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +0300430 u8 gre_protocol[0x10];
431
432 u8 gre_key_h[0x18];
433 u8 gre_key_l[0x8];
434
435 u8 vxlan_vni[0x18];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200436 u8 reserved_at_b8[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300437
Matan Barakb4ff3a32016-02-09 14:57:42 +0200438 u8 reserved_at_c0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +0300439
Matan Barakb4ff3a32016-02-09 14:57:42 +0200440 u8 reserved_at_e0[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +0300441 u8 outer_ipv6_flow_label[0x14];
442
Matan Barakb4ff3a32016-02-09 14:57:42 +0200443 u8 reserved_at_100[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +0300444 u8 inner_ipv6_flow_label[0x14];
445
Yishai Hadasa550ddf2017-08-17 15:52:33 +0300446 u8 reserved_at_120[0x28];
447 u8 bth_dst_qp[0x18];
Boris Pismenny3346c482017-08-20 15:13:08 +0300448 u8 reserved_at_160[0x20];
449 u8 outer_esp_spi[0x20];
450 u8 reserved_at_1a0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +0300451};
452
453struct mlx5_ifc_cmd_pas_bits {
454 u8 pa_h[0x20];
455
456 u8 pa_l[0x14];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200457 u8 reserved_at_34[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +0300458};
459
460struct mlx5_ifc_uint64_bits {
461 u8 hi[0x20];
462
463 u8 lo[0x20];
464};
465
466enum {
467 MLX5_ADS_STAT_RATE_NO_LIMIT = 0x0,
468 MLX5_ADS_STAT_RATE_2_5GBPS = 0x7,
469 MLX5_ADS_STAT_RATE_10GBPS = 0x8,
470 MLX5_ADS_STAT_RATE_30GBPS = 0x9,
471 MLX5_ADS_STAT_RATE_5GBPS = 0xa,
472 MLX5_ADS_STAT_RATE_20GBPS = 0xb,
473 MLX5_ADS_STAT_RATE_40GBPS = 0xc,
474 MLX5_ADS_STAT_RATE_60GBPS = 0xd,
475 MLX5_ADS_STAT_RATE_80GBPS = 0xe,
476 MLX5_ADS_STAT_RATE_120GBPS = 0xf,
477};
478
479struct mlx5_ifc_ads_bits {
480 u8 fl[0x1];
481 u8 free_ar[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200482 u8 reserved_at_2[0xe];
Saeed Mahameede2816822015-05-28 22:28:40 +0300483 u8 pkey_index[0x10];
484
Matan Barakb4ff3a32016-02-09 14:57:42 +0200485 u8 reserved_at_20[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300486 u8 grh[0x1];
487 u8 mlid[0x7];
488 u8 rlid[0x10];
489
490 u8 ack_timeout[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200491 u8 reserved_at_45[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +0300492 u8 src_addr_index[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200493 u8 reserved_at_50[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +0300494 u8 stat_rate[0x4];
495 u8 hop_limit[0x8];
496
Matan Barakb4ff3a32016-02-09 14:57:42 +0200497 u8 reserved_at_60[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +0300498 u8 tclass[0x8];
499 u8 flow_label[0x14];
500
501 u8 rgid_rip[16][0x8];
502
Matan Barakb4ff3a32016-02-09 14:57:42 +0200503 u8 reserved_at_100[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +0300504 u8 f_dscp[0x1];
505 u8 f_ecn[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200506 u8 reserved_at_106[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300507 u8 f_eth_prio[0x1];
508 u8 ecn[0x2];
509 u8 dscp[0x6];
510 u8 udp_sport[0x10];
511
512 u8 dei_cfi[0x1];
513 u8 eth_prio[0x3];
514 u8 sl[0x4];
Daniel Jurgens32f69e42018-01-04 17:25:36 +0200515 u8 vhca_port_num[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300516 u8 rmac_47_32[0x10];
517
518 u8 rmac_31_0[0x20];
519};
520
521struct mlx5_ifc_flow_table_nic_cap_bits {
Maor Gottliebb3638e12016-03-07 18:51:46 +0200522 u8 nic_rx_multi_path_tirs[0x1];
Maor Gottliebcea824d2016-05-31 14:09:09 +0300523 u8 nic_rx_multi_path_tirs_fts[0x1];
524 u8 allow_sniffer_and_nic_rx_shared_tir[0x1];
525 u8 reserved_at_3[0x1fd];
Saeed Mahameede2816822015-05-28 22:28:40 +0300526
527 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive;
528
Matan Barakb4ff3a32016-02-09 14:57:42 +0200529 u8 reserved_at_400[0x200];
Saeed Mahameede2816822015-05-28 22:28:40 +0300530
531 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive_sniffer;
532
533 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_transmit;
534
Matan Barakb4ff3a32016-02-09 14:57:42 +0200535 u8 reserved_at_a00[0x200];
Saeed Mahameede2816822015-05-28 22:28:40 +0300536
537 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_transmit_sniffer;
538
Matan Barakb4ff3a32016-02-09 14:57:42 +0200539 u8 reserved_at_e00[0x7200];
Saeed Mahameede2816822015-05-28 22:28:40 +0300540};
541
Saeed Mahameed495716b2015-12-01 18:03:19 +0200542struct mlx5_ifc_flow_table_eswitch_cap_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +0200543 u8 reserved_at_0[0x200];
Saeed Mahameed495716b2015-12-01 18:03:19 +0200544
545 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_esw_fdb;
546
547 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_esw_acl_ingress;
548
549 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_esw_acl_egress;
550
Matan Barakb4ff3a32016-02-09 14:57:42 +0200551 u8 reserved_at_800[0x7800];
Saeed Mahameed495716b2015-12-01 18:03:19 +0200552};
553
Saeed Mahameedd6666752015-12-01 18:03:22 +0200554struct mlx5_ifc_e_switch_cap_bits {
555 u8 vport_svlan_strip[0x1];
556 u8 vport_cvlan_strip[0x1];
557 u8 vport_svlan_insert[0x1];
558 u8 vport_cvlan_insert_if_not_exist[0x1];
559 u8 vport_cvlan_insert_overwrite[0x1];
Noa Osherovich23898c72016-06-10 00:07:37 +0300560 u8 reserved_at_5[0x19];
561 u8 nic_vport_node_guid_modify[0x1];
562 u8 nic_vport_port_guid_modify[0x1];
Saeed Mahameedd6666752015-12-01 18:03:22 +0200563
Hadar Hen Zion7adbde22016-08-03 15:08:33 +0300564 u8 vxlan_encap_decap[0x1];
565 u8 nvgre_encap_decap[0x1];
566 u8 reserved_at_22[0x9];
567 u8 log_max_encap_headers[0x5];
568 u8 reserved_2b[0x6];
569 u8 max_encap_header_size[0xa];
570
571 u8 reserved_40[0x7c0];
572
Saeed Mahameedd6666752015-12-01 18:03:22 +0200573};
574
Saeed Mahameed74862162016-06-09 15:11:34 +0300575struct mlx5_ifc_qos_cap_bits {
576 u8 packet_pacing[0x1];
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300577 u8 esw_scheduling[0x1];
Mohamad Haj Yahiac9497c92016-12-15 14:02:53 +0200578 u8 esw_bw_share[0x1];
579 u8 esw_rate_limit[0x1];
Bodong Wang05d3ac92018-03-19 15:10:29 +0200580 u8 reserved_at_4[0x1];
581 u8 packet_pacing_burst_bound[0x1];
582 u8 packet_pacing_typical_size[0x1];
583 u8 reserved_at_7[0x19];
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300584
585 u8 reserved_at_20[0x20];
586
Saeed Mahameed74862162016-06-09 15:11:34 +0300587 u8 packet_pacing_max_rate[0x20];
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300588
Saeed Mahameed74862162016-06-09 15:11:34 +0300589 u8 packet_pacing_min_rate[0x20];
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300590
591 u8 reserved_at_80[0x10];
Saeed Mahameed74862162016-06-09 15:11:34 +0300592 u8 packet_pacing_rate_table_size[0x10];
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +0300593
594 u8 esw_element_type[0x10];
595 u8 esw_tsar_type[0x10];
596
597 u8 reserved_at_c0[0x10];
598 u8 max_qos_para_vport[0x10];
599
600 u8 max_tsar_bw_share[0x20];
601
602 u8 reserved_at_100[0x700];
Saeed Mahameed74862162016-06-09 15:11:34 +0300603};
604
Inbar Karmy2fcb12d2017-08-17 16:39:47 +0300605struct mlx5_ifc_debug_cap_bits {
606 u8 reserved_at_0[0x20];
607
608 u8 reserved_at_20[0x2];
609 u8 stall_detect[0x1];
610 u8 reserved_at_23[0x1d];
611
612 u8 reserved_at_40[0x7c0];
613};
614
Saeed Mahameede2816822015-05-28 22:28:40 +0300615struct mlx5_ifc_per_protocol_networking_offload_caps_bits {
616 u8 csum_cap[0x1];
617 u8 vlan_cap[0x1];
618 u8 lro_cap[0x1];
619 u8 lro_psh_flag[0x1];
620 u8 lro_time_stamp[0x1];
Saeed Mahameed2b31f7a2016-11-28 18:04:50 +0200621 u8 reserved_at_5[0x2];
622 u8 wqe_vlan_insert[0x1];
Tariq Toukan66189962015-11-12 19:35:26 +0200623 u8 self_lb_en_modifiable[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200624 u8 reserved_at_9[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +0300625 u8 max_lso_cap[0x5];
Leon Romanovskyc226dc22016-10-31 12:15:20 +0200626 u8 multi_pkt_send_wqe[0x2];
Hadar Hen Zioncff92d72016-07-24 16:12:40 +0300627 u8 wqe_inline_mode[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +0300628 u8 rss_ind_tbl_cap[0x4];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +0300629 u8 reg_umr_sq[0x1];
630 u8 scatter_fcs[0x1];
Bodong Wang050da902017-08-17 15:52:35 +0300631 u8 enhanced_multi_pkt_send_wqe[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300632 u8 tunnel_lso_const_out_ip_id[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200633 u8 reserved_at_1c[0x2];
Gal Pressman27299842017-08-13 13:34:42 +0300634 u8 tunnel_stateless_gre[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300635 u8 tunnel_stateless_vxlan[0x1];
636
Ilan Tayari547eede2017-04-18 16:04:28 +0300637 u8 swp[0x1];
638 u8 swp_csum[0x1];
639 u8 swp_lso[0x1];
Maor Gottlieb4d350f12017-10-19 08:25:54 +0300640 u8 reserved_at_23[0x1b];
641 u8 max_geneve_opt_len[0x1];
642 u8 tunnel_stateless_geneve_rx[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300643
Matan Barakb4ff3a32016-02-09 14:57:42 +0200644 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300645 u8 lro_min_mss_size[0x10];
646
Matan Barakb4ff3a32016-02-09 14:57:42 +0200647 u8 reserved_at_60[0x120];
Saeed Mahameede2816822015-05-28 22:28:40 +0300648
649 u8 lro_timer_supported_periods[4][0x20];
650
Matan Barakb4ff3a32016-02-09 14:57:42 +0200651 u8 reserved_at_200[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +0300652};
653
654struct mlx5_ifc_roce_cap_bits {
655 u8 roce_apm[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200656 u8 reserved_at_1[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +0300657
Matan Barakb4ff3a32016-02-09 14:57:42 +0200658 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +0300659
Matan Barakb4ff3a32016-02-09 14:57:42 +0200660 u8 reserved_at_80[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +0300661 u8 l3_type[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200662 u8 reserved_at_90[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +0300663 u8 roce_version[0x8];
664
Matan Barakb4ff3a32016-02-09 14:57:42 +0200665 u8 reserved_at_a0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300666 u8 r_roce_dest_udp_port[0x10];
667
668 u8 r_roce_max_src_udp_port[0x10];
669 u8 r_roce_min_src_udp_port[0x10];
670
Matan Barakb4ff3a32016-02-09 14:57:42 +0200671 u8 reserved_at_e0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300672 u8 roce_address_table_size[0x10];
673
Matan Barakb4ff3a32016-02-09 14:57:42 +0200674 u8 reserved_at_100[0x700];
Saeed Mahameede2816822015-05-28 22:28:40 +0300675};
676
Ariel Levkoviche72bd812018-04-05 18:53:26 +0300677struct mlx5_ifc_device_mem_cap_bits {
678 u8 memic[0x1];
679 u8 reserved_at_1[0x1f];
680
681 u8 reserved_at_20[0xb];
682 u8 log_min_memic_alloc_size[0x5];
683 u8 reserved_at_30[0x8];
684 u8 log_max_memic_addr_alignment[0x8];
685
686 u8 memic_bar_start_addr[0x40];
687
688 u8 memic_bar_size[0x20];
689
690 u8 max_memic_size[0x20];
691
692 u8 reserved_at_c0[0x740];
693};
694
Saeed Mahameede2816822015-05-28 22:28:40 +0300695enum {
696 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_1_BYTE = 0x0,
697 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_2_BYTES = 0x2,
698 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_4_BYTES = 0x4,
699 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_8_BYTES = 0x8,
700 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_16_BYTES = 0x10,
701 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_32_BYTES = 0x20,
702 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_64_BYTES = 0x40,
703 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_128_BYTES = 0x80,
704 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_256_BYTES = 0x100,
705};
706
707enum {
708 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_1_BYTE = 0x1,
709 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_2_BYTES = 0x2,
710 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_4_BYTES = 0x4,
711 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_8_BYTES = 0x8,
712 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_16_BYTES = 0x10,
713 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_32_BYTES = 0x20,
714 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_64_BYTES = 0x40,
715 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_128_BYTES = 0x80,
716 MLX5_ATOMIC_CAPS_ATOMIC_SIZE_DC_256_BYTES = 0x100,
717};
718
719struct mlx5_ifc_atomic_caps_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +0200720 u8 reserved_at_0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +0300721
Or Gerlitzbd108382017-05-28 15:24:17 +0300722 u8 atomic_req_8B_endianness_mode[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200723 u8 reserved_at_42[0x4];
Or Gerlitzbd108382017-05-28 15:24:17 +0300724 u8 supported_atomic_req_8B_endianness_mode_1[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300725
Matan Barakb4ff3a32016-02-09 14:57:42 +0200726 u8 reserved_at_47[0x19];
Saeed Mahameede2816822015-05-28 22:28:40 +0300727
Matan Barakb4ff3a32016-02-09 14:57:42 +0200728 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +0300729
Matan Barakb4ff3a32016-02-09 14:57:42 +0200730 u8 reserved_at_80[0x10];
Eran Ben Elishaf91e6d82015-12-14 16:34:09 +0200731 u8 atomic_operations[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300732
Matan Barakb4ff3a32016-02-09 14:57:42 +0200733 u8 reserved_at_a0[0x10];
Eran Ben Elishaf91e6d82015-12-14 16:34:09 +0200734 u8 atomic_size_qp[0x10];
735
Matan Barakb4ff3a32016-02-09 14:57:42 +0200736 u8 reserved_at_c0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +0300737 u8 atomic_size_dc[0x10];
738
Matan Barakb4ff3a32016-02-09 14:57:42 +0200739 u8 reserved_at_e0[0x720];
Saeed Mahameede2816822015-05-28 22:28:40 +0300740};
741
742struct mlx5_ifc_odp_cap_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +0200743 u8 reserved_at_0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +0300744
745 u8 sig[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200746 u8 reserved_at_41[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +0300747
Matan Barakb4ff3a32016-02-09 14:57:42 +0200748 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +0300749
750 struct mlx5_ifc_odp_per_transport_service_cap_bits rc_odp_caps;
751
752 struct mlx5_ifc_odp_per_transport_service_cap_bits uc_odp_caps;
753
754 struct mlx5_ifc_odp_per_transport_service_cap_bits ud_odp_caps;
755
Matan Barakb4ff3a32016-02-09 14:57:42 +0200756 u8 reserved_at_e0[0x720];
Saeed Mahameede2816822015-05-28 22:28:40 +0300757};
758
Sagi Grimberg3f0393a2016-02-23 10:25:23 +0200759struct mlx5_ifc_calc_op {
760 u8 reserved_at_0[0x10];
761 u8 reserved_at_10[0x9];
762 u8 op_swap_endianness[0x1];
763 u8 op_min[0x1];
764 u8 op_xor[0x1];
765 u8 op_or[0x1];
766 u8 op_and[0x1];
767 u8 op_max[0x1];
768 u8 op_add[0x1];
769};
770
771struct mlx5_ifc_vector_calc_cap_bits {
772 u8 calc_matrix[0x1];
773 u8 reserved_at_1[0x1f];
774 u8 reserved_at_20[0x8];
775 u8 max_vec_count[0x8];
776 u8 reserved_at_30[0xd];
777 u8 max_chunk_size[0x3];
778 struct mlx5_ifc_calc_op calc0;
779 struct mlx5_ifc_calc_op calc1;
780 struct mlx5_ifc_calc_op calc2;
781 struct mlx5_ifc_calc_op calc3;
782
783 u8 reserved_at_e0[0x720];
784};
785
Saeed Mahameede2816822015-05-28 22:28:40 +0300786enum {
787 MLX5_WQ_TYPE_LINKED_LIST = 0x0,
788 MLX5_WQ_TYPE_CYCLIC = 0x1,
Saeed Mahameed7d5e1422016-04-11 23:10:22 +0300789 MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ = 0x2,
Noa Osherovichccc87082017-10-17 18:01:13 +0300790 MLX5_WQ_TYPE_CYCLIC_STRIDING_RQ = 0x3,
Saeed Mahameede2816822015-05-28 22:28:40 +0300791};
792
793enum {
794 MLX5_WQ_END_PAD_MODE_NONE = 0x0,
795 MLX5_WQ_END_PAD_MODE_ALIGN = 0x1,
796};
797
798enum {
799 MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_8_GID_ENTRIES = 0x0,
800 MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_16_GID_ENTRIES = 0x1,
801 MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_32_GID_ENTRIES = 0x2,
802 MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_64_GID_ENTRIES = 0x3,
803 MLX5_CMD_HCA_CAP_GID_TABLE_SIZE_128_GID_ENTRIES = 0x4,
804};
805
806enum {
807 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_128_ENTRIES = 0x0,
808 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_256_ENTRIES = 0x1,
809 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_512_ENTRIES = 0x2,
810 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_1K_ENTRIES = 0x3,
811 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_2K_ENTRIES = 0x4,
812 MLX5_CMD_HCA_CAP_PKEY_TABLE_SIZE_4K_ENTRIES = 0x5,
813};
814
815enum {
816 MLX5_CMD_HCA_CAP_PORT_TYPE_IB = 0x0,
817 MLX5_CMD_HCA_CAP_PORT_TYPE_ETHERNET = 0x1,
818};
819
820enum {
821 MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_DISABLED = 0x0,
822 MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_INITIAL_STATE = 0x1,
823 MLX5_CMD_HCA_CAP_CMDIF_CHECKSUM_ENABLED = 0x3,
824};
825
826enum {
827 MLX5_CAP_PORT_TYPE_IB = 0x0,
828 MLX5_CAP_PORT_TYPE_ETH = 0x1,
Eli Cohend29b7962014-10-02 12:19:43 +0300829};
830
Max Gurtovoy1410a902017-05-28 10:53:10 +0300831enum {
832 MLX5_CAP_UMR_FENCE_STRONG = 0x0,
833 MLX5_CAP_UMR_FENCE_SMALL = 0x1,
834 MLX5_CAP_UMR_FENCE_NONE = 0x2,
835};
836
Eli Cohenb7755162014-10-02 12:19:44 +0300837struct mlx5_ifc_cmd_hca_cap_bits {
Daniel Jurgens32f69e42018-01-04 17:25:36 +0200838 u8 reserved_at_0[0x30];
839 u8 vhca_id[0x10];
840
841 u8 reserved_at_40[0x40];
Eli Cohenb7755162014-10-02 12:19:44 +0300842
843 u8 log_max_srq_sz[0x8];
844 u8 log_max_qp_sz[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200845 u8 reserved_at_90[0xb];
Eli Cohenb7755162014-10-02 12:19:44 +0300846 u8 log_max_qp[0x5];
847
Matan Barakb4ff3a32016-02-09 14:57:42 +0200848 u8 reserved_at_a0[0xb];
Saeed Mahameede2816822015-05-28 22:28:40 +0300849 u8 log_max_srq[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200850 u8 reserved_at_b0[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +0300851
Matan Barakb4ff3a32016-02-09 14:57:42 +0200852 u8 reserved_at_c0[0x8];
Eli Cohenb7755162014-10-02 12:19:44 +0300853 u8 log_max_cq_sz[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200854 u8 reserved_at_d0[0xb];
Eli Cohenb7755162014-10-02 12:19:44 +0300855 u8 log_max_cq[0x5];
856
857 u8 log_max_eq_sz[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200858 u8 reserved_at_e8[0x2];
Eli Cohenb7755162014-10-02 12:19:44 +0300859 u8 log_max_mkey[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200860 u8 reserved_at_f0[0xc];
Eli Cohenb7755162014-10-02 12:19:44 +0300861 u8 log_max_eq[0x4];
862
863 u8 max_indirection[0x8];
Artemy Kovalyovbcda1ac2017-01-02 11:37:41 +0200864 u8 fixed_buffer_size[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300865 u8 log_max_mrw_sz[0x7];
Majd Dibbiny8812c242017-02-09 14:20:12 +0200866 u8 force_teardown[0x1];
867 u8 reserved_at_111[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300868 u8 log_max_bsf_list_size[0x6];
Artemy Kovalyovbcda1ac2017-01-02 11:37:41 +0200869 u8 umr_extended_translation_offset[0x1];
870 u8 null_mkey[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300871 u8 log_max_klm_list_size[0x6];
872
Matan Barakb4ff3a32016-02-09 14:57:42 +0200873 u8 reserved_at_120[0xa];
Eli Cohenb7755162014-10-02 12:19:44 +0300874 u8 log_max_ra_req_dc[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200875 u8 reserved_at_130[0xa];
Eli Cohenb7755162014-10-02 12:19:44 +0300876 u8 log_max_ra_res_dc[0x6];
877
Matan Barakb4ff3a32016-02-09 14:57:42 +0200878 u8 reserved_at_140[0xa];
Eli Cohenb7755162014-10-02 12:19:44 +0300879 u8 log_max_ra_req_qp[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +0200880 u8 reserved_at_150[0xa];
Eli Cohenb7755162014-10-02 12:19:44 +0300881 u8 log_max_ra_res_qp[0x6];
882
Daniel Jurgensf32f5bd2015-11-19 17:12:26 +0200883 u8 end_pad[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300884 u8 cc_query_allowed[0x1];
885 u8 cc_modify_allowed[0x1];
Daniel Jurgensf32f5bd2015-11-19 17:12:26 +0200886 u8 start_pad[0x1];
887 u8 cache_line_128byte[0x1];
Huy Nguyenc02762e2017-07-18 16:03:17 -0500888 u8 reserved_at_165[0xa];
889 u8 qcam_reg[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300890 u8 gid_table_size[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +0300891
Saeed Mahameede2816822015-05-28 22:28:40 +0300892 u8 out_of_seq_cnt[0x1];
893 u8 vport_counters[0x1];
Saeed Mahameed74862162016-06-09 15:11:34 +0300894 u8 retransmission_q_counters[0x1];
Inbar Karmy2fcb12d2017-08-17 16:39:47 +0300895 u8 debug[0x1];
Alex Vesker83b502a2016-08-04 17:32:02 +0300896 u8 modify_rq_counter_set_id[0x1];
Maor Gottliebc1e0bfc2017-05-30 10:29:11 +0300897 u8 rq_delay_drop[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300898 u8 max_qp_cnt[0xa];
899 u8 pkey_table_size[0x10];
900
Saeed Mahameede2816822015-05-28 22:28:40 +0300901 u8 vport_group_manager[0x1];
902 u8 vhca_group_manager[0x1];
903 u8 ib_virt[0x1];
904 u8 eth_virt[0x1];
Moshe Shemesh61c5b5c2018-01-07 16:45:27 +0200905 u8 vnic_env_queue_counters[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300906 u8 ets[0x1];
907 u8 nic_flow_table[0x1];
Saeed Mahameed54f0a412015-12-01 18:03:10 +0200908 u8 eswitch_flow_table[0x1];
Ariel Levkoviche72bd812018-04-05 18:53:26 +0300909 u8 device_memory[0x1];
Gal Pressmancfdcbcea2016-12-08 15:52:00 +0200910 u8 mcam_reg[0x1];
911 u8 pcam_reg[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300912 u8 local_ca_ack_delay[0x5];
Huy Nguyen4ce3bf22016-11-17 13:45:56 +0200913 u8 port_module_event[0x1];
Parav Pandit58dcb602017-06-19 07:19:37 +0300914 u8 enhanced_error_q_counters[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +0300915 u8 ports_check[0x1];
Max Gurtovoy7b135582017-01-02 11:37:38 +0200916 u8 reserved_at_1b3[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +0300917 u8 disable_link_up[0x1];
918 u8 beacon_led[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300919 u8 port_type[0x2];
Eli Cohenb7755162014-10-02 12:19:44 +0300920 u8 num_ports[0x8];
921
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +0300922 u8 reserved_at_1c0[0x1];
923 u8 pps[0x1];
924 u8 pps_modify[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300925 u8 log_max_msg[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +0300926 u8 reserved_at_1c8[0x4];
Saeed Mahameed4f3961e2016-02-22 18:17:25 +0200927 u8 max_tc[0x4];
Saeed Mahameed74862162016-06-09 15:11:34 +0300928 u8 reserved_at_1d0[0x1];
929 u8 dcbx[0x1];
Maor Gottlieb246ac982017-05-30 10:29:12 +0300930 u8 general_notification_event[0x1];
931 u8 reserved_at_1d3[0x2];
Ilan Tayarie29341f2017-03-13 20:05:45 +0200932 u8 fpga[0x1];
Tariq Toukan928cfe82016-02-22 18:17:29 +0200933 u8 rol_s[0x1];
934 u8 rol_g[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +0300935 u8 reserved_at_1d8[0x1];
Tariq Toukan928cfe82016-02-22 18:17:29 +0200936 u8 wol_s[0x1];
937 u8 wol_g[0x1];
938 u8 wol_a[0x1];
939 u8 wol_b[0x1];
940 u8 wol_m[0x1];
941 u8 wol_u[0x1];
942 u8 wol_p[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300943
944 u8 stat_rate_support[0x10];
Tariq Toukane1c9c622016-04-11 23:10:21 +0300945 u8 reserved_at_1f0[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +0300946 u8 cqe_version[0x4];
Eli Cohenb7755162014-10-02 12:19:44 +0300947
Saeed Mahameede2816822015-05-28 22:28:40 +0300948 u8 compact_address_vector[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +0300949 u8 striding_rq[0x1];
Erez Shitrit500a3d02017-04-13 06:36:51 +0300950 u8 reserved_at_202[0x1];
951 u8 ipoib_enhanced_offloads[0x1];
Erez Shitrit1015c2e2016-02-21 16:27:16 +0200952 u8 ipoib_basic_offloads[0x1];
Majd Dibbinyc8d75a92018-03-22 15:34:04 +0200953 u8 reserved_at_205[0x1];
954 u8 repeated_block_disabled[0x1];
955 u8 umr_modify_entity_size_disabled[0x1];
956 u8 umr_modify_atomic_disabled[0x1];
957 u8 umr_indirect_mkey_disabled[0x1];
Max Gurtovoy1410a902017-05-28 10:53:10 +0300958 u8 umr_fence[0x2];
959 u8 reserved_at_20c[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +0300960 u8 drain_sigerr[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300961 u8 cmdif_checksum[0x2];
962 u8 sigerr_cqe[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +0300963 u8 reserved_at_213[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300964 u8 wq_signature[0x1];
965 u8 sctr_data_cqe[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +0300966 u8 reserved_at_216[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300967 u8 sho[0x1];
968 u8 tph[0x1];
969 u8 rf[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300970 u8 dct[0x1];
Saeed Mahameed74862162016-06-09 15:11:34 +0300971 u8 qos[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300972 u8 eth_net_offloads[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300973 u8 roce[0x1];
974 u8 atomic[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +0300975 u8 reserved_at_21f[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300976
977 u8 cq_oi[0x1];
978 u8 cq_resize[0x1];
979 u8 cq_moderation[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +0300980 u8 reserved_at_223[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +0300981 u8 cq_eq_remap[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300982 u8 pg[0x1];
983 u8 block_lb_mc[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +0300984 u8 reserved_at_229[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +0300985 u8 scqe_break_moderation[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +0300986 u8 cq_period_start_from_cqe[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300987 u8 cd[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +0300988 u8 reserved_at_22d[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +0300989 u8 apm[0x1];
Sagi Grimberg3f0393a2016-02-23 10:25:23 +0200990 u8 vector_calc[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +0300991 u8 umr_ptr_rlky[0x1];
Matan Barakd2370e02016-02-29 18:05:30 +0200992 u8 imaicl[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +0300993 u8 reserved_at_232[0x4];
Eli Cohenb7755162014-10-02 12:19:44 +0300994 u8 qkv[0x1];
995 u8 pkv[0x1];
Haggai Eranb11a4f92016-02-29 15:45:03 +0200996 u8 set_deth_sqpn[0x1];
997 u8 reserved_at_239[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +0300998 u8 xrc[0x1];
999 u8 ud[0x1];
1000 u8 uc[0x1];
1001 u8 rc[0x1];
1002
Eli Cohena6d51b62017-01-03 23:55:23 +02001003 u8 uar_4k[0x1];
1004 u8 reserved_at_241[0x9];
Eli Cohenb7755162014-10-02 12:19:44 +03001005 u8 uar_sz[0x6];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001006 u8 reserved_at_250[0x8];
Eli Cohenb7755162014-10-02 12:19:44 +03001007 u8 log_pg_sz[0x8];
1008
1009 u8 bf[0x1];
Saeed Mahameed0dbc6fe2016-11-17 13:45:59 +02001010 u8 driver_version[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001011 u8 pad_tx_eth_packet[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001012 u8 reserved_at_263[0x8];
Eli Cohenb7755162014-10-02 12:19:44 +03001013 u8 log_bf_reg_size[0x5];
Aviv Heller84df61e2016-05-10 13:47:50 +03001014
1015 u8 reserved_at_270[0xb];
1016 u8 lag_master[0x1];
1017 u8 num_lag_ports[0x4];
Eli Cohenb7755162014-10-02 12:19:44 +03001018
Tariq Toukane1c9c622016-04-11 23:10:21 +03001019 u8 reserved_at_280[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03001020 u8 max_wqe_sz_sq[0x10];
1021
Tariq Toukane1c9c622016-04-11 23:10:21 +03001022 u8 reserved_at_2a0[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03001023 u8 max_wqe_sz_rq[0x10];
1024
Rabie Louloua8ffcc72017-07-09 13:39:30 +03001025 u8 max_flow_counter_31_16[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03001026 u8 max_wqe_sz_sq_dc[0x10];
1027
Tariq Toukane1c9c622016-04-11 23:10:21 +03001028 u8 reserved_at_2e0[0x7];
Eli Cohenb7755162014-10-02 12:19:44 +03001029 u8 max_qp_mcg[0x19];
1030
Tariq Toukane1c9c622016-04-11 23:10:21 +03001031 u8 reserved_at_300[0x18];
Eli Cohenb7755162014-10-02 12:19:44 +03001032 u8 log_max_mcg[0x8];
1033
Tariq Toukane1c9c622016-04-11 23:10:21 +03001034 u8 reserved_at_320[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001035 u8 log_max_transport_domain[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001036 u8 reserved_at_328[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001037 u8 log_max_pd[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001038 u8 reserved_at_330[0xb];
Eli Cohenb7755162014-10-02 12:19:44 +03001039 u8 log_max_xrcd[0x5];
1040
Moshe Shemesh5c298142017-12-26 16:46:29 +02001041 u8 nic_receive_steering_discard[0x1];
Moshe Shemeshaaabd072018-01-14 00:56:25 +02001042 u8 receive_discard_vport_down[0x1];
1043 u8 transmit_discard_vport_down[0x1];
1044 u8 reserved_at_343[0x5];
Amir Vadaia351a1b02016-07-14 10:32:38 +03001045 u8 log_max_flow_counter_bulk[0x8];
Rabie Louloua8ffcc72017-07-09 13:39:30 +03001046 u8 max_flow_counter_15_0[0x10];
Amir Vadaia351a1b02016-07-14 10:32:38 +03001047
Eli Cohenb7755162014-10-02 12:19:44 +03001048
Tariq Toukane1c9c622016-04-11 23:10:21 +03001049 u8 reserved_at_360[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001050 u8 log_max_rq[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001051 u8 reserved_at_368[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001052 u8 log_max_sq[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001053 u8 reserved_at_370[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001054 u8 log_max_tir[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001055 u8 reserved_at_378[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001056 u8 log_max_tis[0x5];
1057
Saeed Mahameede2816822015-05-28 22:28:40 +03001058 u8 basic_cyclic_rcv_wqe[0x1];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001059 u8 reserved_at_381[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03001060 u8 log_max_rmp[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001061 u8 reserved_at_388[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001062 u8 log_max_rqt[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001063 u8 reserved_at_390[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001064 u8 log_max_rqt_size[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001065 u8 reserved_at_398[0x3];
Eli Cohenb7755162014-10-02 12:19:44 +03001066 u8 log_max_tis_per_sq[0x5];
1067
Tariq Toukan619a8f2a2018-02-07 14:41:25 +02001068 u8 ext_stride_num_range[0x1];
1069 u8 reserved_at_3a1[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03001070 u8 log_max_stride_sz_rq[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001071 u8 reserved_at_3a8[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001072 u8 log_min_stride_sz_rq[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001073 u8 reserved_at_3b0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001074 u8 log_max_stride_sz_sq[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001075 u8 reserved_at_3b8[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001076 u8 log_min_stride_sz_sq[0x5];
Eli Cohenb7755162014-10-02 12:19:44 +03001077
Or Gerlitz40817cd2017-06-25 12:38:45 +03001078 u8 hairpin[0x1];
1079 u8 reserved_at_3c1[0x2];
1080 u8 log_max_hairpin_queues[0x5];
1081 u8 reserved_at_3c8[0x3];
1082 u8 log_max_hairpin_wq_data_sz[0x5];
Or Gerlitz4d533e02018-01-04 12:26:21 +02001083 u8 reserved_at_3d0[0x3];
1084 u8 log_max_hairpin_num_packets[0x5];
1085 u8 reserved_at_3d8[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001086 u8 log_max_wq_sz[0x5];
1087
Saeed Mahameed54f0a412015-12-01 18:03:10 +02001088 u8 nic_vport_change_event[0x1];
Eran Ben Elisha8978cc92018-01-09 11:41:10 +02001089 u8 disable_local_lb_uc[0x1];
1090 u8 disable_local_lb_mc[0x1];
Or Gerlitz40817cd2017-06-25 12:38:45 +03001091 u8 log_min_hairpin_wq_data_sz[0x5];
1092 u8 reserved_at_3e8[0x3];
Saeed Mahameed54f0a412015-12-01 18:03:10 +02001093 u8 log_max_vlan_list[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001094 u8 reserved_at_3f0[0x3];
Saeed Mahameed54f0a412015-12-01 18:03:10 +02001095 u8 log_max_current_mc_list[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001096 u8 reserved_at_3f8[0x3];
Saeed Mahameed54f0a412015-12-01 18:03:10 +02001097 u8 log_max_current_uc_list[0x5];
1098
Tariq Toukane1c9c622016-04-11 23:10:21 +03001099 u8 reserved_at_400[0x80];
Saeed Mahameed54f0a412015-12-01 18:03:10 +02001100
Tariq Toukane1c9c622016-04-11 23:10:21 +03001101 u8 reserved_at_480[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001102 u8 log_max_l2_table[0x5];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001103 u8 reserved_at_488[0x8];
Eli Cohenb7755162014-10-02 12:19:44 +03001104 u8 log_uar_page_sz[0x10];
1105
Tariq Toukane1c9c622016-04-11 23:10:21 +03001106 u8 reserved_at_4a0[0x20];
Linus Torvalds048ccca2016-01-23 18:45:06 -08001107 u8 device_frequency_mhz[0x20];
Eran Ben Elishab0844442015-12-29 14:58:30 +02001108 u8 device_frequency_khz[0x20];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001109
Eli Cohena6d51b62017-01-03 23:55:23 +02001110 u8 reserved_at_500[0x20];
1111 u8 num_of_uars_per_page[0x20];
1112 u8 reserved_at_540[0x40];
Tariq Toukane1c9c622016-04-11 23:10:21 +03001113
Guy Levi0ff8e792017-10-19 08:25:51 +03001114 u8 reserved_at_580[0x3d];
1115 u8 cqe_128_always[0x1];
1116 u8 cqe_compression_128[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001117 u8 cqe_compression[0x1];
Eli Cohenb7755162014-10-02 12:19:44 +03001118
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001119 u8 cqe_compression_timeout[0x10];
1120 u8 cqe_compression_max_num[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03001121
Saeed Mahameed74862162016-06-09 15:11:34 +03001122 u8 reserved_at_5e0[0x10];
1123 u8 tag_matching[0x1];
1124 u8 rndv_offload_rc[0x1];
1125 u8 rndv_offload_dc[0x1];
1126 u8 log_tag_matching_list_sz[0x5];
Max Gurtovoy7b135582017-01-02 11:37:38 +02001127 u8 reserved_at_5f8[0x3];
Saeed Mahameed74862162016-06-09 15:11:34 +03001128 u8 log_max_xrq[0x5];
1129
Daniel Jurgens32f69e42018-01-04 17:25:36 +02001130 u8 affiliate_nic_vport_criteria[0x8];
1131 u8 native_port_num[0x8];
1132 u8 num_vhca_ports[0x8];
1133 u8 reserved_at_618[0x6];
1134 u8 sw_owner_id[0x1];
Daniel Jurgens8737f812018-01-04 17:25:32 +02001135 u8 reserved_at_61f[0x1e1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001136};
1137
Saeed Mahameed81848732015-12-01 18:03:20 +02001138enum mlx5_flow_destination_type {
1139 MLX5_FLOW_DESTINATION_TYPE_VPORT = 0x0,
1140 MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE = 0x1,
1141 MLX5_FLOW_DESTINATION_TYPE_TIR = 0x2,
Amir Vadaibd5251db2016-05-13 12:55:40 +00001142
Aviad Yehezkel5f418372018-02-18 13:17:17 +02001143 MLX5_FLOW_DESTINATION_TYPE_PORT = 0x99,
Amir Vadaibd5251db2016-05-13 12:55:40 +00001144 MLX5_FLOW_DESTINATION_TYPE_COUNTER = 0x100,
Saeed Mahameede2816822015-05-28 22:28:40 +03001145};
1146
1147struct mlx5_ifc_dest_format_struct_bits {
1148 u8 destination_type[0x8];
1149 u8 destination_id[0x18];
1150
Matan Barakb4ff3a32016-02-09 14:57:42 +02001151 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03001152};
1153
Amir Vadai9dc0b282016-05-13 12:55:39 +00001154struct mlx5_ifc_flow_counter_list_bits {
Rabie Louloua8ffcc72017-07-09 13:39:30 +03001155 u8 flow_counter_id[0x20];
Amir Vadai9dc0b282016-05-13 12:55:39 +00001156
1157 u8 reserved_at_20[0x20];
1158};
1159
1160union mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits {
1161 struct mlx5_ifc_dest_format_struct_bits dest_format_struct;
1162 struct mlx5_ifc_flow_counter_list_bits flow_counter_list;
1163 u8 reserved_at_0[0x40];
1164};
1165
Saeed Mahameede2816822015-05-28 22:28:40 +03001166struct mlx5_ifc_fte_match_param_bits {
1167 struct mlx5_ifc_fte_match_set_lyr_2_4_bits outer_headers;
1168
1169 struct mlx5_ifc_fte_match_set_misc_bits misc_parameters;
1170
1171 struct mlx5_ifc_fte_match_set_lyr_2_4_bits inner_headers;
1172
Matan Barakb4ff3a32016-02-09 14:57:42 +02001173 u8 reserved_at_600[0xa00];
Saeed Mahameede2816822015-05-28 22:28:40 +03001174};
1175
1176enum {
1177 MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_SRC_IP = 0x0,
1178 MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_DST_IP = 0x1,
1179 MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_L4_SPORT = 0x2,
1180 MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_L4_DPORT = 0x3,
1181 MLX5_RX_HASH_FIELD_SELECT_SELECTED_FIELDS_IPSEC_SPI = 0x4,
1182};
1183
1184struct mlx5_ifc_rx_hash_field_select_bits {
1185 u8 l3_prot_type[0x1];
1186 u8 l4_prot_type[0x1];
1187 u8 selected_fields[0x1e];
1188};
1189
1190enum {
1191 MLX5_WQ_WQ_TYPE_WQ_LINKED_LIST = 0x0,
1192 MLX5_WQ_WQ_TYPE_WQ_CYCLIC = 0x1,
1193};
1194
1195enum {
1196 MLX5_WQ_END_PADDING_MODE_END_PAD_NONE = 0x0,
1197 MLX5_WQ_END_PADDING_MODE_END_PAD_ALIGN = 0x1,
1198};
1199
1200struct mlx5_ifc_wq_bits {
1201 u8 wq_type[0x4];
1202 u8 wq_signature[0x1];
1203 u8 end_padding_mode[0x2];
1204 u8 cd_slave[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001205 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03001206
1207 u8 hds_skip_first_sge[0x1];
1208 u8 log2_hds_buf_size[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001209 u8 reserved_at_24[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03001210 u8 page_offset[0x5];
1211 u8 lwm[0x10];
1212
Matan Barakb4ff3a32016-02-09 14:57:42 +02001213 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03001214 u8 pd[0x18];
1215
Matan Barakb4ff3a32016-02-09 14:57:42 +02001216 u8 reserved_at_60[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03001217 u8 uar_page[0x18];
1218
1219 u8 dbr_addr[0x40];
1220
1221 u8 hw_counter[0x20];
1222
1223 u8 sw_counter[0x20];
1224
Matan Barakb4ff3a32016-02-09 14:57:42 +02001225 u8 reserved_at_100[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03001226 u8 log_wq_stride[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001227 u8 reserved_at_110[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001228 u8 log_wq_pg_sz[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001229 u8 reserved_at_118[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001230 u8 log_wq_sz[0x5];
1231
Or Gerlitz4d533e02018-01-04 12:26:21 +02001232 u8 reserved_at_120[0x3];
1233 u8 log_hairpin_num_packets[0x5];
1234 u8 reserved_at_128[0x3];
Or Gerlitz40817cd2017-06-25 12:38:45 +03001235 u8 log_hairpin_data_sz[0x5];
Or Gerlitz40817cd2017-06-25 12:38:45 +03001236
Tariq Toukan619a8f2a2018-02-07 14:41:25 +02001237 u8 reserved_at_130[0x4];
1238 u8 log_wqe_num_of_strides[0x4];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03001239 u8 two_byte_shift_en[0x1];
1240 u8 reserved_at_139[0x4];
1241 u8 log_wqe_stride_size[0x3];
1242
1243 u8 reserved_at_140[0x4c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001244
1245 struct mlx5_ifc_cmd_pas_bits pas[0];
1246};
1247
1248struct mlx5_ifc_rq_num_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001249 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03001250 u8 rq_num[0x18];
1251};
1252
1253struct mlx5_ifc_mac_address_layout_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001254 u8 reserved_at_0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03001255 u8 mac_addr_47_32[0x10];
1256
1257 u8 mac_addr_31_0[0x20];
1258};
1259
Saeed Mahameedc0046cf2015-12-01 18:03:15 +02001260struct mlx5_ifc_vlan_layout_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001261 u8 reserved_at_0[0x14];
Saeed Mahameedc0046cf2015-12-01 18:03:15 +02001262 u8 vlan[0x0c];
1263
Matan Barakb4ff3a32016-02-09 14:57:42 +02001264 u8 reserved_at_20[0x20];
Saeed Mahameedc0046cf2015-12-01 18:03:15 +02001265};
1266
Saeed Mahameede2816822015-05-28 22:28:40 +03001267struct mlx5_ifc_cong_control_r_roce_ecn_np_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001268 u8 reserved_at_0[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001269
1270 u8 min_time_between_cnps[0x20];
1271
Matan Barakb4ff3a32016-02-09 14:57:42 +02001272 u8 reserved_at_c0[0x12];
Saeed Mahameede2816822015-05-28 22:28:40 +03001273 u8 cnp_dscp[0x6];
Parav Pandit4a2da0b2017-05-30 10:05:15 +03001274 u8 reserved_at_d8[0x4];
1275 u8 cnp_prio_mode[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03001276 u8 cnp_802p_prio[0x3];
1277
Matan Barakb4ff3a32016-02-09 14:57:42 +02001278 u8 reserved_at_e0[0x720];
Saeed Mahameede2816822015-05-28 22:28:40 +03001279};
1280
1281struct mlx5_ifc_cong_control_r_roce_ecn_rp_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001282 u8 reserved_at_0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03001283
Matan Barakb4ff3a32016-02-09 14:57:42 +02001284 u8 reserved_at_60[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03001285 u8 clamp_tgt_rate[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001286 u8 reserved_at_65[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001287 u8 clamp_tgt_rate_after_time_inc[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001288 u8 reserved_at_69[0x17];
Saeed Mahameede2816822015-05-28 22:28:40 +03001289
Matan Barakb4ff3a32016-02-09 14:57:42 +02001290 u8 reserved_at_80[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03001291
1292 u8 rpg_time_reset[0x20];
1293
1294 u8 rpg_byte_reset[0x20];
1295
1296 u8 rpg_threshold[0x20];
1297
1298 u8 rpg_max_rate[0x20];
1299
1300 u8 rpg_ai_rate[0x20];
1301
1302 u8 rpg_hai_rate[0x20];
1303
1304 u8 rpg_gd[0x20];
1305
1306 u8 rpg_min_dec_fac[0x20];
1307
1308 u8 rpg_min_rate[0x20];
1309
Matan Barakb4ff3a32016-02-09 14:57:42 +02001310 u8 reserved_at_1c0[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001311
1312 u8 rate_to_set_on_first_cnp[0x20];
1313
1314 u8 dce_tcp_g[0x20];
1315
1316 u8 dce_tcp_rtt[0x20];
1317
1318 u8 rate_reduce_monitor_period[0x20];
1319
Matan Barakb4ff3a32016-02-09 14:57:42 +02001320 u8 reserved_at_320[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03001321
1322 u8 initial_alpha_value[0x20];
1323
Matan Barakb4ff3a32016-02-09 14:57:42 +02001324 u8 reserved_at_360[0x4a0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001325};
1326
1327struct mlx5_ifc_cong_control_802_1qau_rp_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001328 u8 reserved_at_0[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03001329
1330 u8 rppp_max_rps[0x20];
1331
1332 u8 rpg_time_reset[0x20];
1333
1334 u8 rpg_byte_reset[0x20];
1335
1336 u8 rpg_threshold[0x20];
1337
1338 u8 rpg_max_rate[0x20];
1339
1340 u8 rpg_ai_rate[0x20];
1341
1342 u8 rpg_hai_rate[0x20];
1343
1344 u8 rpg_gd[0x20];
1345
1346 u8 rpg_min_dec_fac[0x20];
1347
1348 u8 rpg_min_rate[0x20];
1349
Matan Barakb4ff3a32016-02-09 14:57:42 +02001350 u8 reserved_at_1c0[0x640];
Saeed Mahameede2816822015-05-28 22:28:40 +03001351};
1352
1353enum {
1354 MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_LOG_CQ_SIZE = 0x1,
1355 MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_PAGE_OFFSET = 0x2,
1356 MLX5_RESIZE_FIELD_SELECT_RESIZE_FIELD_SELECT_LOG_PAGE_SIZE = 0x4,
1357};
1358
1359struct mlx5_ifc_resize_field_select_bits {
1360 u8 resize_field_select[0x20];
1361};
1362
1363enum {
1364 MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_PERIOD = 0x1,
1365 MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_MAX_COUNT = 0x2,
1366 MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_OI = 0x4,
1367 MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_C_EQN = 0x8,
1368};
1369
1370struct mlx5_ifc_modify_field_select_bits {
1371 u8 modify_field_select[0x20];
1372};
1373
1374struct mlx5_ifc_field_select_r_roce_np_bits {
1375 u8 field_select_r_roce_np[0x20];
1376};
1377
1378struct mlx5_ifc_field_select_r_roce_rp_bits {
1379 u8 field_select_r_roce_rp[0x20];
1380};
1381
1382enum {
1383 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPPP_MAX_RPS = 0x4,
1384 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_TIME_RESET = 0x8,
1385 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_BYTE_RESET = 0x10,
1386 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_THRESHOLD = 0x20,
1387 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MAX_RATE = 0x40,
1388 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_AI_RATE = 0x80,
1389 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_HAI_RATE = 0x100,
1390 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_GD = 0x200,
1391 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MIN_DEC_FAC = 0x400,
1392 MLX5_FIELD_SELECT_802_1QAU_RP_FIELD_SELECT_8021QAURP_RPG_MIN_RATE = 0x800,
1393};
1394
1395struct mlx5_ifc_field_select_802_1qau_rp_bits {
1396 u8 field_select_8021qaurp[0x20];
1397};
1398
1399struct mlx5_ifc_phys_layer_cntrs_bits {
1400 u8 time_since_last_clear_high[0x20];
1401
1402 u8 time_since_last_clear_low[0x20];
1403
1404 u8 symbol_errors_high[0x20];
1405
1406 u8 symbol_errors_low[0x20];
1407
1408 u8 sync_headers_errors_high[0x20];
1409
1410 u8 sync_headers_errors_low[0x20];
1411
1412 u8 edpl_bip_errors_lane0_high[0x20];
1413
1414 u8 edpl_bip_errors_lane0_low[0x20];
1415
1416 u8 edpl_bip_errors_lane1_high[0x20];
1417
1418 u8 edpl_bip_errors_lane1_low[0x20];
1419
1420 u8 edpl_bip_errors_lane2_high[0x20];
1421
1422 u8 edpl_bip_errors_lane2_low[0x20];
1423
1424 u8 edpl_bip_errors_lane3_high[0x20];
1425
1426 u8 edpl_bip_errors_lane3_low[0x20];
1427
1428 u8 fc_fec_corrected_blocks_lane0_high[0x20];
1429
1430 u8 fc_fec_corrected_blocks_lane0_low[0x20];
1431
1432 u8 fc_fec_corrected_blocks_lane1_high[0x20];
1433
1434 u8 fc_fec_corrected_blocks_lane1_low[0x20];
1435
1436 u8 fc_fec_corrected_blocks_lane2_high[0x20];
1437
1438 u8 fc_fec_corrected_blocks_lane2_low[0x20];
1439
1440 u8 fc_fec_corrected_blocks_lane3_high[0x20];
1441
1442 u8 fc_fec_corrected_blocks_lane3_low[0x20];
1443
1444 u8 fc_fec_uncorrectable_blocks_lane0_high[0x20];
1445
1446 u8 fc_fec_uncorrectable_blocks_lane0_low[0x20];
1447
1448 u8 fc_fec_uncorrectable_blocks_lane1_high[0x20];
1449
1450 u8 fc_fec_uncorrectable_blocks_lane1_low[0x20];
1451
1452 u8 fc_fec_uncorrectable_blocks_lane2_high[0x20];
1453
1454 u8 fc_fec_uncorrectable_blocks_lane2_low[0x20];
1455
1456 u8 fc_fec_uncorrectable_blocks_lane3_high[0x20];
1457
1458 u8 fc_fec_uncorrectable_blocks_lane3_low[0x20];
1459
1460 u8 rs_fec_corrected_blocks_high[0x20];
1461
1462 u8 rs_fec_corrected_blocks_low[0x20];
1463
1464 u8 rs_fec_uncorrectable_blocks_high[0x20];
1465
1466 u8 rs_fec_uncorrectable_blocks_low[0x20];
1467
1468 u8 rs_fec_no_errors_blocks_high[0x20];
1469
1470 u8 rs_fec_no_errors_blocks_low[0x20];
1471
1472 u8 rs_fec_single_error_blocks_high[0x20];
1473
1474 u8 rs_fec_single_error_blocks_low[0x20];
1475
1476 u8 rs_fec_corrected_symbols_total_high[0x20];
1477
1478 u8 rs_fec_corrected_symbols_total_low[0x20];
1479
1480 u8 rs_fec_corrected_symbols_lane0_high[0x20];
1481
1482 u8 rs_fec_corrected_symbols_lane0_low[0x20];
1483
1484 u8 rs_fec_corrected_symbols_lane1_high[0x20];
1485
1486 u8 rs_fec_corrected_symbols_lane1_low[0x20];
1487
1488 u8 rs_fec_corrected_symbols_lane2_high[0x20];
1489
1490 u8 rs_fec_corrected_symbols_lane2_low[0x20];
1491
1492 u8 rs_fec_corrected_symbols_lane3_high[0x20];
1493
1494 u8 rs_fec_corrected_symbols_lane3_low[0x20];
1495
1496 u8 link_down_events[0x20];
1497
1498 u8 successful_recovery_events[0x20];
1499
Matan Barakb4ff3a32016-02-09 14:57:42 +02001500 u8 reserved_at_640[0x180];
Saeed Mahameede2816822015-05-28 22:28:40 +03001501};
1502
Gal Pressmand8dc0502016-09-27 17:04:51 +03001503struct mlx5_ifc_phys_layer_statistical_cntrs_bits {
1504 u8 time_since_last_clear_high[0x20];
1505
1506 u8 time_since_last_clear_low[0x20];
1507
1508 u8 phy_received_bits_high[0x20];
1509
1510 u8 phy_received_bits_low[0x20];
1511
1512 u8 phy_symbol_errors_high[0x20];
1513
1514 u8 phy_symbol_errors_low[0x20];
1515
1516 u8 phy_corrected_bits_high[0x20];
1517
1518 u8 phy_corrected_bits_low[0x20];
1519
1520 u8 phy_corrected_bits_lane0_high[0x20];
1521
1522 u8 phy_corrected_bits_lane0_low[0x20];
1523
1524 u8 phy_corrected_bits_lane1_high[0x20];
1525
1526 u8 phy_corrected_bits_lane1_low[0x20];
1527
1528 u8 phy_corrected_bits_lane2_high[0x20];
1529
1530 u8 phy_corrected_bits_lane2_low[0x20];
1531
1532 u8 phy_corrected_bits_lane3_high[0x20];
1533
1534 u8 phy_corrected_bits_lane3_low[0x20];
1535
1536 u8 reserved_at_200[0x5c0];
1537};
1538
Meny Yossefi1c64bf62016-02-18 18:15:00 +02001539struct mlx5_ifc_ib_port_cntrs_grp_data_layout_bits {
1540 u8 symbol_error_counter[0x10];
1541
1542 u8 link_error_recovery_counter[0x8];
1543
1544 u8 link_downed_counter[0x8];
1545
1546 u8 port_rcv_errors[0x10];
1547
1548 u8 port_rcv_remote_physical_errors[0x10];
1549
1550 u8 port_rcv_switch_relay_errors[0x10];
1551
1552 u8 port_xmit_discards[0x10];
1553
1554 u8 port_xmit_constraint_errors[0x8];
1555
1556 u8 port_rcv_constraint_errors[0x8];
1557
1558 u8 reserved_at_70[0x8];
1559
1560 u8 link_overrun_errors[0x8];
1561
1562 u8 reserved_at_80[0x10];
1563
1564 u8 vl_15_dropped[0x10];
1565
Tim Wright133bea02017-05-01 17:30:08 +01001566 u8 reserved_at_a0[0x80];
1567
1568 u8 port_xmit_wait[0x20];
Meny Yossefi1c64bf62016-02-18 18:15:00 +02001569};
1570
Saeed Mahameede2816822015-05-28 22:28:40 +03001571struct mlx5_ifc_eth_per_traffic_grp_data_layout_bits {
1572 u8 transmit_queue_high[0x20];
1573
1574 u8 transmit_queue_low[0x20];
1575
Matan Barakb4ff3a32016-02-09 14:57:42 +02001576 u8 reserved_at_40[0x780];
Saeed Mahameede2816822015-05-28 22:28:40 +03001577};
1578
1579struct mlx5_ifc_eth_per_prio_grp_data_layout_bits {
1580 u8 rx_octets_high[0x20];
1581
1582 u8 rx_octets_low[0x20];
1583
Matan Barakb4ff3a32016-02-09 14:57:42 +02001584 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001585
1586 u8 rx_frames_high[0x20];
1587
1588 u8 rx_frames_low[0x20];
1589
1590 u8 tx_octets_high[0x20];
1591
1592 u8 tx_octets_low[0x20];
1593
Matan Barakb4ff3a32016-02-09 14:57:42 +02001594 u8 reserved_at_180[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001595
1596 u8 tx_frames_high[0x20];
1597
1598 u8 tx_frames_low[0x20];
1599
1600 u8 rx_pause_high[0x20];
1601
1602 u8 rx_pause_low[0x20];
1603
1604 u8 rx_pause_duration_high[0x20];
1605
1606 u8 rx_pause_duration_low[0x20];
1607
1608 u8 tx_pause_high[0x20];
1609
1610 u8 tx_pause_low[0x20];
1611
1612 u8 tx_pause_duration_high[0x20];
1613
1614 u8 tx_pause_duration_low[0x20];
1615
1616 u8 rx_pause_transition_high[0x20];
1617
1618 u8 rx_pause_transition_low[0x20];
1619
Inbar Karmy2fcb12d2017-08-17 16:39:47 +03001620 u8 reserved_at_3c0[0x40];
1621
1622 u8 device_stall_minor_watermark_cnt_high[0x20];
1623
1624 u8 device_stall_minor_watermark_cnt_low[0x20];
1625
1626 u8 device_stall_critical_watermark_cnt_high[0x20];
1627
1628 u8 device_stall_critical_watermark_cnt_low[0x20];
1629
1630 u8 reserved_at_480[0x340];
Saeed Mahameede2816822015-05-28 22:28:40 +03001631};
1632
1633struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits {
1634 u8 port_transmit_wait_high[0x20];
1635
1636 u8 port_transmit_wait_low[0x20];
1637
Gal Pressman2dba0792017-06-18 14:56:45 +03001638 u8 reserved_at_40[0x100];
1639
1640 u8 rx_buffer_almost_full_high[0x20];
1641
1642 u8 rx_buffer_almost_full_low[0x20];
1643
1644 u8 rx_buffer_full_high[0x20];
1645
1646 u8 rx_buffer_full_low[0x20];
1647
1648 u8 reserved_at_1c0[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03001649};
1650
1651struct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits {
1652 u8 dot3stats_alignment_errors_high[0x20];
1653
1654 u8 dot3stats_alignment_errors_low[0x20];
1655
1656 u8 dot3stats_fcs_errors_high[0x20];
1657
1658 u8 dot3stats_fcs_errors_low[0x20];
1659
1660 u8 dot3stats_single_collision_frames_high[0x20];
1661
1662 u8 dot3stats_single_collision_frames_low[0x20];
1663
1664 u8 dot3stats_multiple_collision_frames_high[0x20];
1665
1666 u8 dot3stats_multiple_collision_frames_low[0x20];
1667
1668 u8 dot3stats_sqe_test_errors_high[0x20];
1669
1670 u8 dot3stats_sqe_test_errors_low[0x20];
1671
1672 u8 dot3stats_deferred_transmissions_high[0x20];
1673
1674 u8 dot3stats_deferred_transmissions_low[0x20];
1675
1676 u8 dot3stats_late_collisions_high[0x20];
1677
1678 u8 dot3stats_late_collisions_low[0x20];
1679
1680 u8 dot3stats_excessive_collisions_high[0x20];
1681
1682 u8 dot3stats_excessive_collisions_low[0x20];
1683
1684 u8 dot3stats_internal_mac_transmit_errors_high[0x20];
1685
1686 u8 dot3stats_internal_mac_transmit_errors_low[0x20];
1687
1688 u8 dot3stats_carrier_sense_errors_high[0x20];
1689
1690 u8 dot3stats_carrier_sense_errors_low[0x20];
1691
1692 u8 dot3stats_frame_too_longs_high[0x20];
1693
1694 u8 dot3stats_frame_too_longs_low[0x20];
1695
1696 u8 dot3stats_internal_mac_receive_errors_high[0x20];
1697
1698 u8 dot3stats_internal_mac_receive_errors_low[0x20];
1699
1700 u8 dot3stats_symbol_errors_high[0x20];
1701
1702 u8 dot3stats_symbol_errors_low[0x20];
1703
1704 u8 dot3control_in_unknown_opcodes_high[0x20];
1705
1706 u8 dot3control_in_unknown_opcodes_low[0x20];
1707
1708 u8 dot3in_pause_frames_high[0x20];
1709
1710 u8 dot3in_pause_frames_low[0x20];
1711
1712 u8 dot3out_pause_frames_high[0x20];
1713
1714 u8 dot3out_pause_frames_low[0x20];
1715
Matan Barakb4ff3a32016-02-09 14:57:42 +02001716 u8 reserved_at_400[0x3c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001717};
1718
1719struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits {
1720 u8 ether_stats_drop_events_high[0x20];
1721
1722 u8 ether_stats_drop_events_low[0x20];
1723
1724 u8 ether_stats_octets_high[0x20];
1725
1726 u8 ether_stats_octets_low[0x20];
1727
1728 u8 ether_stats_pkts_high[0x20];
1729
1730 u8 ether_stats_pkts_low[0x20];
1731
1732 u8 ether_stats_broadcast_pkts_high[0x20];
1733
1734 u8 ether_stats_broadcast_pkts_low[0x20];
1735
1736 u8 ether_stats_multicast_pkts_high[0x20];
1737
1738 u8 ether_stats_multicast_pkts_low[0x20];
1739
1740 u8 ether_stats_crc_align_errors_high[0x20];
1741
1742 u8 ether_stats_crc_align_errors_low[0x20];
1743
1744 u8 ether_stats_undersize_pkts_high[0x20];
1745
1746 u8 ether_stats_undersize_pkts_low[0x20];
1747
1748 u8 ether_stats_oversize_pkts_high[0x20];
1749
1750 u8 ether_stats_oversize_pkts_low[0x20];
1751
1752 u8 ether_stats_fragments_high[0x20];
1753
1754 u8 ether_stats_fragments_low[0x20];
1755
1756 u8 ether_stats_jabbers_high[0x20];
1757
1758 u8 ether_stats_jabbers_low[0x20];
1759
1760 u8 ether_stats_collisions_high[0x20];
1761
1762 u8 ether_stats_collisions_low[0x20];
1763
1764 u8 ether_stats_pkts64octets_high[0x20];
1765
1766 u8 ether_stats_pkts64octets_low[0x20];
1767
1768 u8 ether_stats_pkts65to127octets_high[0x20];
1769
1770 u8 ether_stats_pkts65to127octets_low[0x20];
1771
1772 u8 ether_stats_pkts128to255octets_high[0x20];
1773
1774 u8 ether_stats_pkts128to255octets_low[0x20];
1775
1776 u8 ether_stats_pkts256to511octets_high[0x20];
1777
1778 u8 ether_stats_pkts256to511octets_low[0x20];
1779
1780 u8 ether_stats_pkts512to1023octets_high[0x20];
1781
1782 u8 ether_stats_pkts512to1023octets_low[0x20];
1783
1784 u8 ether_stats_pkts1024to1518octets_high[0x20];
1785
1786 u8 ether_stats_pkts1024to1518octets_low[0x20];
1787
1788 u8 ether_stats_pkts1519to2047octets_high[0x20];
1789
1790 u8 ether_stats_pkts1519to2047octets_low[0x20];
1791
1792 u8 ether_stats_pkts2048to4095octets_high[0x20];
1793
1794 u8 ether_stats_pkts2048to4095octets_low[0x20];
1795
1796 u8 ether_stats_pkts4096to8191octets_high[0x20];
1797
1798 u8 ether_stats_pkts4096to8191octets_low[0x20];
1799
1800 u8 ether_stats_pkts8192to10239octets_high[0x20];
1801
1802 u8 ether_stats_pkts8192to10239octets_low[0x20];
1803
Matan Barakb4ff3a32016-02-09 14:57:42 +02001804 u8 reserved_at_540[0x280];
Saeed Mahameede2816822015-05-28 22:28:40 +03001805};
1806
1807struct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits {
1808 u8 if_in_octets_high[0x20];
1809
1810 u8 if_in_octets_low[0x20];
1811
1812 u8 if_in_ucast_pkts_high[0x20];
1813
1814 u8 if_in_ucast_pkts_low[0x20];
1815
1816 u8 if_in_discards_high[0x20];
1817
1818 u8 if_in_discards_low[0x20];
1819
1820 u8 if_in_errors_high[0x20];
1821
1822 u8 if_in_errors_low[0x20];
1823
1824 u8 if_in_unknown_protos_high[0x20];
1825
1826 u8 if_in_unknown_protos_low[0x20];
1827
1828 u8 if_out_octets_high[0x20];
1829
1830 u8 if_out_octets_low[0x20];
1831
1832 u8 if_out_ucast_pkts_high[0x20];
1833
1834 u8 if_out_ucast_pkts_low[0x20];
1835
1836 u8 if_out_discards_high[0x20];
1837
1838 u8 if_out_discards_low[0x20];
1839
1840 u8 if_out_errors_high[0x20];
1841
1842 u8 if_out_errors_low[0x20];
1843
1844 u8 if_in_multicast_pkts_high[0x20];
1845
1846 u8 if_in_multicast_pkts_low[0x20];
1847
1848 u8 if_in_broadcast_pkts_high[0x20];
1849
1850 u8 if_in_broadcast_pkts_low[0x20];
1851
1852 u8 if_out_multicast_pkts_high[0x20];
1853
1854 u8 if_out_multicast_pkts_low[0x20];
1855
1856 u8 if_out_broadcast_pkts_high[0x20];
1857
1858 u8 if_out_broadcast_pkts_low[0x20];
1859
Matan Barakb4ff3a32016-02-09 14:57:42 +02001860 u8 reserved_at_340[0x480];
Saeed Mahameede2816822015-05-28 22:28:40 +03001861};
1862
1863struct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits {
1864 u8 a_frames_transmitted_ok_high[0x20];
1865
1866 u8 a_frames_transmitted_ok_low[0x20];
1867
1868 u8 a_frames_received_ok_high[0x20];
1869
1870 u8 a_frames_received_ok_low[0x20];
1871
1872 u8 a_frame_check_sequence_errors_high[0x20];
1873
1874 u8 a_frame_check_sequence_errors_low[0x20];
1875
1876 u8 a_alignment_errors_high[0x20];
1877
1878 u8 a_alignment_errors_low[0x20];
1879
1880 u8 a_octets_transmitted_ok_high[0x20];
1881
1882 u8 a_octets_transmitted_ok_low[0x20];
1883
1884 u8 a_octets_received_ok_high[0x20];
1885
1886 u8 a_octets_received_ok_low[0x20];
1887
1888 u8 a_multicast_frames_xmitted_ok_high[0x20];
1889
1890 u8 a_multicast_frames_xmitted_ok_low[0x20];
1891
1892 u8 a_broadcast_frames_xmitted_ok_high[0x20];
1893
1894 u8 a_broadcast_frames_xmitted_ok_low[0x20];
1895
1896 u8 a_multicast_frames_received_ok_high[0x20];
1897
1898 u8 a_multicast_frames_received_ok_low[0x20];
1899
1900 u8 a_broadcast_frames_received_ok_high[0x20];
1901
1902 u8 a_broadcast_frames_received_ok_low[0x20];
1903
1904 u8 a_in_range_length_errors_high[0x20];
1905
1906 u8 a_in_range_length_errors_low[0x20];
1907
1908 u8 a_out_of_range_length_field_high[0x20];
1909
1910 u8 a_out_of_range_length_field_low[0x20];
1911
1912 u8 a_frame_too_long_errors_high[0x20];
1913
1914 u8 a_frame_too_long_errors_low[0x20];
1915
1916 u8 a_symbol_error_during_carrier_high[0x20];
1917
1918 u8 a_symbol_error_during_carrier_low[0x20];
1919
1920 u8 a_mac_control_frames_transmitted_high[0x20];
1921
1922 u8 a_mac_control_frames_transmitted_low[0x20];
1923
1924 u8 a_mac_control_frames_received_high[0x20];
1925
1926 u8 a_mac_control_frames_received_low[0x20];
1927
1928 u8 a_unsupported_opcodes_received_high[0x20];
1929
1930 u8 a_unsupported_opcodes_received_low[0x20];
1931
1932 u8 a_pause_mac_ctrl_frames_received_high[0x20];
1933
1934 u8 a_pause_mac_ctrl_frames_received_low[0x20];
1935
1936 u8 a_pause_mac_ctrl_frames_transmitted_high[0x20];
1937
1938 u8 a_pause_mac_ctrl_frames_transmitted_low[0x20];
1939
Matan Barakb4ff3a32016-02-09 14:57:42 +02001940 u8 reserved_at_4c0[0x300];
Saeed Mahameede2816822015-05-28 22:28:40 +03001941};
1942
Gal Pressman8ed1a632016-11-17 13:46:01 +02001943struct mlx5_ifc_pcie_perf_cntrs_grp_data_layout_bits {
1944 u8 life_time_counter_high[0x20];
1945
1946 u8 life_time_counter_low[0x20];
1947
1948 u8 rx_errors[0x20];
1949
1950 u8 tx_errors[0x20];
1951
1952 u8 l0_to_recovery_eieos[0x20];
1953
1954 u8 l0_to_recovery_ts[0x20];
1955
1956 u8 l0_to_recovery_framing[0x20];
1957
1958 u8 l0_to_recovery_retrain[0x20];
1959
1960 u8 crc_error_dllp[0x20];
1961
1962 u8 crc_error_tlp[0x20];
1963
Eran Ben Elishaefae7f72017-05-12 02:47:02 +03001964 u8 tx_overflow_buffer_pkt_high[0x20];
1965
1966 u8 tx_overflow_buffer_pkt_low[0x20];
Gal Pressman5405fa22017-06-15 18:29:23 +03001967
1968 u8 outbound_stalled_reads[0x20];
1969
1970 u8 outbound_stalled_writes[0x20];
1971
1972 u8 outbound_stalled_reads_events[0x20];
1973
1974 u8 outbound_stalled_writes_events[0x20];
1975
1976 u8 reserved_at_200[0x5c0];
Gal Pressman8ed1a632016-11-17 13:46:01 +02001977};
1978
Saeed Mahameede2816822015-05-28 22:28:40 +03001979struct mlx5_ifc_cmd_inter_comp_event_bits {
1980 u8 command_completion_vector[0x20];
1981
Matan Barakb4ff3a32016-02-09 14:57:42 +02001982 u8 reserved_at_20[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001983};
1984
1985struct mlx5_ifc_stall_vl_event_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02001986 u8 reserved_at_0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03001987 u8 port_num[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001988 u8 reserved_at_19[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03001989 u8 vl[0x4];
1990
Matan Barakb4ff3a32016-02-09 14:57:42 +02001991 u8 reserved_at_20[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03001992};
1993
1994struct mlx5_ifc_db_bf_congestion_event_bits {
1995 u8 event_subtype[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001996 u8 reserved_at_8[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03001997 u8 congestion_level[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02001998 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03001999
Matan Barakb4ff3a32016-02-09 14:57:42 +02002000 u8 reserved_at_20[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002001};
2002
2003struct mlx5_ifc_gpio_event_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002004 u8 reserved_at_0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03002005
2006 u8 gpio_event_hi[0x20];
2007
2008 u8 gpio_event_lo[0x20];
2009
Matan Barakb4ff3a32016-02-09 14:57:42 +02002010 u8 reserved_at_a0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002011};
2012
2013struct mlx5_ifc_port_state_change_event_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002014 u8 reserved_at_0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002015
2016 u8 port_num[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002017 u8 reserved_at_44[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03002018
Matan Barakb4ff3a32016-02-09 14:57:42 +02002019 u8 reserved_at_60[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03002020};
2021
2022struct mlx5_ifc_dropped_packet_logged_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002023 u8 reserved_at_0[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002024};
2025
2026enum {
2027 MLX5_CQ_ERROR_SYNDROME_CQ_OVERRUN = 0x1,
2028 MLX5_CQ_ERROR_SYNDROME_CQ_ACCESS_VIOLATION_ERROR = 0x2,
2029};
2030
2031struct mlx5_ifc_cq_error_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002032 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002033 u8 cqn[0x18];
2034
Matan Barakb4ff3a32016-02-09 14:57:42 +02002035 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002036
Matan Barakb4ff3a32016-02-09 14:57:42 +02002037 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002038 u8 syndrome[0x8];
2039
Matan Barakb4ff3a32016-02-09 14:57:42 +02002040 u8 reserved_at_60[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03002041};
2042
2043struct mlx5_ifc_rdma_page_fault_event_bits {
2044 u8 bytes_committed[0x20];
2045
2046 u8 r_key[0x20];
2047
Matan Barakb4ff3a32016-02-09 14:57:42 +02002048 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002049 u8 packet_len[0x10];
2050
2051 u8 rdma_op_len[0x20];
2052
2053 u8 rdma_va[0x40];
2054
Matan Barakb4ff3a32016-02-09 14:57:42 +02002055 u8 reserved_at_c0[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03002056 u8 rdma[0x1];
2057 u8 write[0x1];
2058 u8 requestor[0x1];
2059 u8 qp_number[0x18];
2060};
2061
2062struct mlx5_ifc_wqe_associated_page_fault_event_bits {
2063 u8 bytes_committed[0x20];
2064
Matan Barakb4ff3a32016-02-09 14:57:42 +02002065 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002066 u8 wqe_index[0x10];
2067
Matan Barakb4ff3a32016-02-09 14:57:42 +02002068 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002069 u8 len[0x10];
2070
Matan Barakb4ff3a32016-02-09 14:57:42 +02002071 u8 reserved_at_60[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03002072
Matan Barakb4ff3a32016-02-09 14:57:42 +02002073 u8 reserved_at_c0[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03002074 u8 rdma[0x1];
2075 u8 write_read[0x1];
2076 u8 requestor[0x1];
2077 u8 qpn[0x18];
2078};
2079
2080struct mlx5_ifc_qp_events_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002081 u8 reserved_at_0[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002082
2083 u8 type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002084 u8 reserved_at_a8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002085
Matan Barakb4ff3a32016-02-09 14:57:42 +02002086 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002087 u8 qpn_rqn_sqn[0x18];
2088};
2089
2090struct mlx5_ifc_dct_events_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002091 u8 reserved_at_0[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002092
Matan Barakb4ff3a32016-02-09 14:57:42 +02002093 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002094 u8 dct_number[0x18];
2095};
2096
2097struct mlx5_ifc_comp_event_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002098 u8 reserved_at_0[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002099
Matan Barakb4ff3a32016-02-09 14:57:42 +02002100 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002101 u8 cq_number[0x18];
2102};
2103
2104enum {
2105 MLX5_QPC_STATE_RST = 0x0,
2106 MLX5_QPC_STATE_INIT = 0x1,
2107 MLX5_QPC_STATE_RTR = 0x2,
2108 MLX5_QPC_STATE_RTS = 0x3,
2109 MLX5_QPC_STATE_SQER = 0x4,
2110 MLX5_QPC_STATE_ERR = 0x6,
2111 MLX5_QPC_STATE_SQD = 0x7,
2112 MLX5_QPC_STATE_SUSPENDED = 0x9,
2113};
2114
2115enum {
2116 MLX5_QPC_ST_RC = 0x0,
2117 MLX5_QPC_ST_UC = 0x1,
2118 MLX5_QPC_ST_UD = 0x2,
2119 MLX5_QPC_ST_XRC = 0x3,
2120 MLX5_QPC_ST_DCI = 0x5,
2121 MLX5_QPC_ST_QP0 = 0x7,
2122 MLX5_QPC_ST_QP1 = 0x8,
2123 MLX5_QPC_ST_RAW_DATAGRAM = 0x9,
2124 MLX5_QPC_ST_REG_UMR = 0xc,
2125};
2126
2127enum {
2128 MLX5_QPC_PM_STATE_ARMED = 0x0,
2129 MLX5_QPC_PM_STATE_REARM = 0x1,
2130 MLX5_QPC_PM_STATE_RESERVED = 0x2,
2131 MLX5_QPC_PM_STATE_MIGRATED = 0x3,
2132};
2133
2134enum {
Artemy Kovalyov6e446362017-08-15 11:59:02 +03002135 MLX5_QPC_OFFLOAD_TYPE_RNDV = 0x1,
2136};
2137
2138enum {
Saeed Mahameede2816822015-05-28 22:28:40 +03002139 MLX5_QPC_END_PADDING_MODE_SCATTER_AS_IS = 0x0,
2140 MLX5_QPC_END_PADDING_MODE_PAD_TO_CACHE_LINE_ALIGNMENT = 0x1,
2141};
2142
2143enum {
2144 MLX5_QPC_MTU_256_BYTES = 0x1,
2145 MLX5_QPC_MTU_512_BYTES = 0x2,
2146 MLX5_QPC_MTU_1K_BYTES = 0x3,
2147 MLX5_QPC_MTU_2K_BYTES = 0x4,
2148 MLX5_QPC_MTU_4K_BYTES = 0x5,
2149 MLX5_QPC_MTU_RAW_ETHERNET_QP = 0x7,
2150};
2151
2152enum {
2153 MLX5_QPC_ATOMIC_MODE_IB_SPEC = 0x1,
2154 MLX5_QPC_ATOMIC_MODE_ONLY_8B = 0x2,
2155 MLX5_QPC_ATOMIC_MODE_UP_TO_8B = 0x3,
2156 MLX5_QPC_ATOMIC_MODE_UP_TO_16B = 0x4,
2157 MLX5_QPC_ATOMIC_MODE_UP_TO_32B = 0x5,
2158 MLX5_QPC_ATOMIC_MODE_UP_TO_64B = 0x6,
2159 MLX5_QPC_ATOMIC_MODE_UP_TO_128B = 0x7,
2160 MLX5_QPC_ATOMIC_MODE_UP_TO_256B = 0x8,
2161};
2162
2163enum {
2164 MLX5_QPC_CS_REQ_DISABLE = 0x0,
2165 MLX5_QPC_CS_REQ_UP_TO_32B = 0x11,
2166 MLX5_QPC_CS_REQ_UP_TO_64B = 0x22,
2167};
2168
2169enum {
2170 MLX5_QPC_CS_RES_DISABLE = 0x0,
2171 MLX5_QPC_CS_RES_UP_TO_32B = 0x1,
2172 MLX5_QPC_CS_RES_UP_TO_64B = 0x2,
2173};
2174
2175struct mlx5_ifc_qpc_bits {
2176 u8 state[0x4];
Aviv Heller84df61e2016-05-10 13:47:50 +03002177 u8 lag_tx_port_affinity[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002178 u8 st[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002179 u8 reserved_at_10[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002180 u8 pm_state[0x2];
Artemy Kovalyov6e446362017-08-15 11:59:02 +03002181 u8 reserved_at_15[0x3];
2182 u8 offload_type[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002183 u8 end_padding_mode[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002184 u8 reserved_at_1e[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002185
2186 u8 wq_signature[0x1];
2187 u8 block_lb_mc[0x1];
2188 u8 atomic_like_write_en[0x1];
2189 u8 latency_sensitive[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002190 u8 reserved_at_24[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002191 u8 drain_sigerr[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002192 u8 reserved_at_26[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002193 u8 pd[0x18];
2194
2195 u8 mtu[0x3];
2196 u8 log_msg_max[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002197 u8 reserved_at_48[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002198 u8 log_rq_size[0x4];
2199 u8 log_rq_stride[0x3];
2200 u8 no_sq[0x1];
2201 u8 log_sq_size[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002202 u8 reserved_at_55[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03002203 u8 rlky[0x1];
Erez Shitrit1015c2e2016-02-21 16:27:16 +02002204 u8 ulp_stateless_offload_mode[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002205
2206 u8 counter_set_id[0x8];
2207 u8 uar_page[0x18];
2208
Matan Barakb4ff3a32016-02-09 14:57:42 +02002209 u8 reserved_at_80[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002210 u8 user_index[0x18];
2211
Matan Barakb4ff3a32016-02-09 14:57:42 +02002212 u8 reserved_at_a0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002213 u8 log_page_size[0x5];
2214 u8 remote_qpn[0x18];
2215
2216 struct mlx5_ifc_ads_bits primary_address_path;
2217
2218 struct mlx5_ifc_ads_bits secondary_address_path;
2219
2220 u8 log_ack_req_freq[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002221 u8 reserved_at_384[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002222 u8 log_sra_max[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002223 u8 reserved_at_38b[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002224 u8 retry_count[0x3];
2225 u8 rnr_retry[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002226 u8 reserved_at_393[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002227 u8 fre[0x1];
2228 u8 cur_rnr_retry[0x3];
2229 u8 cur_retry_count[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002230 u8 reserved_at_39b[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03002231
Matan Barakb4ff3a32016-02-09 14:57:42 +02002232 u8 reserved_at_3a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002233
Matan Barakb4ff3a32016-02-09 14:57:42 +02002234 u8 reserved_at_3c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002235 u8 next_send_psn[0x18];
2236
Matan Barakb4ff3a32016-02-09 14:57:42 +02002237 u8 reserved_at_3e0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002238 u8 cqn_snd[0x18];
2239
Saeed Mahameed09a7d9e2016-07-19 01:17:59 +03002240 u8 reserved_at_400[0x8];
2241 u8 deth_sqpn[0x18];
2242
2243 u8 reserved_at_420[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002244
Matan Barakb4ff3a32016-02-09 14:57:42 +02002245 u8 reserved_at_440[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002246 u8 last_acked_psn[0x18];
2247
Matan Barakb4ff3a32016-02-09 14:57:42 +02002248 u8 reserved_at_460[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002249 u8 ssn[0x18];
2250
Matan Barakb4ff3a32016-02-09 14:57:42 +02002251 u8 reserved_at_480[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002252 u8 log_rra_max[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002253 u8 reserved_at_48b[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002254 u8 atomic_mode[0x4];
2255 u8 rre[0x1];
2256 u8 rwe[0x1];
2257 u8 rae[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002258 u8 reserved_at_493[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002259 u8 page_offset[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002260 u8 reserved_at_49a[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002261 u8 cd_slave_receive[0x1];
2262 u8 cd_slave_send[0x1];
2263 u8 cd_master[0x1];
2264
Matan Barakb4ff3a32016-02-09 14:57:42 +02002265 u8 reserved_at_4a0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002266 u8 min_rnr_nak[0x5];
2267 u8 next_rcv_psn[0x18];
2268
Matan Barakb4ff3a32016-02-09 14:57:42 +02002269 u8 reserved_at_4c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002270 u8 xrcd[0x18];
2271
Matan Barakb4ff3a32016-02-09 14:57:42 +02002272 u8 reserved_at_4e0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002273 u8 cqn_rcv[0x18];
2274
2275 u8 dbr_addr[0x40];
2276
2277 u8 q_key[0x20];
2278
Matan Barakb4ff3a32016-02-09 14:57:42 +02002279 u8 reserved_at_560[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03002280 u8 rq_type[0x3];
Saeed Mahameed74862162016-06-09 15:11:34 +03002281 u8 srqn_rmpn_xrqn[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002282
Matan Barakb4ff3a32016-02-09 14:57:42 +02002283 u8 reserved_at_580[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002284 u8 rmsn[0x18];
2285
2286 u8 hw_sq_wqebb_counter[0x10];
2287 u8 sw_sq_wqebb_counter[0x10];
2288
2289 u8 hw_rq_counter[0x20];
2290
2291 u8 sw_rq_counter[0x20];
2292
Matan Barakb4ff3a32016-02-09 14:57:42 +02002293 u8 reserved_at_600[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002294
Matan Barakb4ff3a32016-02-09 14:57:42 +02002295 u8 reserved_at_620[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03002296 u8 cgs[0x1];
2297 u8 cs_req[0x8];
2298 u8 cs_res[0x8];
2299
2300 u8 dc_access_key[0x40];
2301
Matan Barakb4ff3a32016-02-09 14:57:42 +02002302 u8 reserved_at_680[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002303};
2304
2305struct mlx5_ifc_roce_addr_layout_bits {
2306 u8 source_l3_address[16][0x8];
2307
Matan Barakb4ff3a32016-02-09 14:57:42 +02002308 u8 reserved_at_80[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002309 u8 vlan_valid[0x1];
2310 u8 vlan_id[0xc];
2311 u8 source_mac_47_32[0x10];
2312
2313 u8 source_mac_31_0[0x20];
2314
Matan Barakb4ff3a32016-02-09 14:57:42 +02002315 u8 reserved_at_c0[0x14];
Saeed Mahameede2816822015-05-28 22:28:40 +03002316 u8 roce_l3_type[0x4];
2317 u8 roce_version[0x8];
2318
Matan Barakb4ff3a32016-02-09 14:57:42 +02002319 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002320};
2321
2322union mlx5_ifc_hca_cap_union_bits {
2323 struct mlx5_ifc_cmd_hca_cap_bits cmd_hca_cap;
2324 struct mlx5_ifc_odp_cap_bits odp_cap;
2325 struct mlx5_ifc_atomic_caps_bits atomic_caps;
2326 struct mlx5_ifc_roce_cap_bits roce_cap;
2327 struct mlx5_ifc_per_protocol_networking_offload_caps_bits per_protocol_networking_offload_caps;
2328 struct mlx5_ifc_flow_table_nic_cap_bits flow_table_nic_cap;
Saeed Mahameed495716b2015-12-01 18:03:19 +02002329 struct mlx5_ifc_flow_table_eswitch_cap_bits flow_table_eswitch_cap;
Saeed Mahameedd6666752015-12-01 18:03:22 +02002330 struct mlx5_ifc_e_switch_cap_bits e_switch_cap;
Sagi Grimberg3f0393a2016-02-23 10:25:23 +02002331 struct mlx5_ifc_vector_calc_cap_bits vector_calc_cap;
Saeed Mahameed74862162016-06-09 15:11:34 +03002332 struct mlx5_ifc_qos_cap_bits qos_cap;
Ilan Tayarie29341f2017-03-13 20:05:45 +02002333 struct mlx5_ifc_fpga_cap_bits fpga_cap;
Matan Barakb4ff3a32016-02-09 14:57:42 +02002334 u8 reserved_at_0[0x8000];
Saeed Mahameede2816822015-05-28 22:28:40 +03002335};
2336
2337enum {
2338 MLX5_FLOW_CONTEXT_ACTION_ALLOW = 0x1,
2339 MLX5_FLOW_CONTEXT_ACTION_DROP = 0x2,
2340 MLX5_FLOW_CONTEXT_ACTION_FWD_DEST = 0x4,
Amir Vadai9dc0b282016-05-13 12:55:39 +00002341 MLX5_FLOW_CONTEXT_ACTION_COUNT = 0x8,
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03002342 MLX5_FLOW_CONTEXT_ACTION_ENCAP = 0x10,
2343 MLX5_FLOW_CONTEXT_ACTION_DECAP = 0x20,
Or Gerlitz2a69cb92017-01-19 19:31:25 +02002344 MLX5_FLOW_CONTEXT_ACTION_MOD_HDR = 0x40,
Or Gerlitz0c068972018-01-28 20:14:20 +02002345 MLX5_FLOW_CONTEXT_ACTION_VLAN_POP = 0x80,
2346 MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH = 0x100,
2347};
2348
2349struct mlx5_ifc_vlan_bits {
2350 u8 ethtype[0x10];
2351 u8 prio[0x3];
2352 u8 cfi[0x1];
2353 u8 vid[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03002354};
2355
2356struct mlx5_ifc_flow_context_bits {
Or Gerlitz0c068972018-01-28 20:14:20 +02002357 struct mlx5_ifc_vlan_bits push_vlan;
Saeed Mahameede2816822015-05-28 22:28:40 +03002358
2359 u8 group_id[0x20];
2360
Matan Barakb4ff3a32016-02-09 14:57:42 +02002361 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002362 u8 flow_tag[0x18];
2363
Matan Barakb4ff3a32016-02-09 14:57:42 +02002364 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002365 u8 action[0x10];
2366
Matan Barakb4ff3a32016-02-09 14:57:42 +02002367 u8 reserved_at_80[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002368 u8 destination_list_size[0x18];
2369
Amir Vadai9dc0b282016-05-13 12:55:39 +00002370 u8 reserved_at_a0[0x8];
2371 u8 flow_counter_list_size[0x18];
2372
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03002373 u8 encap_id[0x20];
2374
Or Gerlitz2a69cb92017-01-19 19:31:25 +02002375 u8 modify_header_id[0x20];
2376
2377 u8 reserved_at_100[0x100];
Saeed Mahameede2816822015-05-28 22:28:40 +03002378
2379 struct mlx5_ifc_fte_match_param_bits match_value;
2380
Matan Barakb4ff3a32016-02-09 14:57:42 +02002381 u8 reserved_at_1200[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03002382
Amir Vadai9dc0b282016-05-13 12:55:39 +00002383 union mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits destination[0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002384};
2385
2386enum {
2387 MLX5_XRC_SRQC_STATE_GOOD = 0x0,
2388 MLX5_XRC_SRQC_STATE_ERROR = 0x1,
2389};
2390
2391struct mlx5_ifc_xrc_srqc_bits {
2392 u8 state[0x4];
2393 u8 log_xrc_srq_size[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002394 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002395
2396 u8 wq_signature[0x1];
2397 u8 cont_srq[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002398 u8 reserved_at_22[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002399 u8 rlky[0x1];
2400 u8 basic_cyclic_rcv_wqe[0x1];
2401 u8 log_rq_stride[0x3];
2402 u8 xrcd[0x18];
2403
2404 u8 page_offset[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002405 u8 reserved_at_46[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002406 u8 cqn[0x18];
2407
Matan Barakb4ff3a32016-02-09 14:57:42 +02002408 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002409
2410 u8 user_index_equal_xrc_srqn[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002411 u8 reserved_at_81[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002412 u8 log_page_size[0x6];
2413 u8 user_index[0x18];
2414
Matan Barakb4ff3a32016-02-09 14:57:42 +02002415 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002416
Matan Barakb4ff3a32016-02-09 14:57:42 +02002417 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002418 u8 pd[0x18];
2419
2420 u8 lwm[0x10];
2421 u8 wqe_cnt[0x10];
2422
Matan Barakb4ff3a32016-02-09 14:57:42 +02002423 u8 reserved_at_100[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002424
2425 u8 db_record_addr_h[0x20];
2426
2427 u8 db_record_addr_l[0x1e];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002428 u8 reserved_at_17e[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002429
Matan Barakb4ff3a32016-02-09 14:57:42 +02002430 u8 reserved_at_180[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03002431};
2432
Moshe Shemesh61c5b5c2018-01-07 16:45:27 +02002433struct mlx5_ifc_vnic_diagnostic_statistics_bits {
2434 u8 counter_error_queues[0x20];
2435
2436 u8 total_error_queues[0x20];
2437
2438 u8 send_queue_priority_update_flow[0x20];
2439
2440 u8 reserved_at_60[0x20];
2441
2442 u8 nic_receive_steering_discard[0x40];
2443
2444 u8 receive_discard_vport_down[0x40];
2445
2446 u8 transmit_discard_vport_down[0x40];
2447
2448 u8 reserved_at_140[0xec0];
2449};
2450
Saeed Mahameede2816822015-05-28 22:28:40 +03002451struct mlx5_ifc_traffic_counter_bits {
2452 u8 packets[0x40];
2453
2454 u8 octets[0x40];
2455};
2456
2457struct mlx5_ifc_tisc_bits {
Aviv Heller84df61e2016-05-10 13:47:50 +03002458 u8 strict_lag_tx_port_affinity[0x1];
2459 u8 reserved_at_1[0x3];
2460 u8 lag_tx_port_affinity[0x04];
2461
2462 u8 reserved_at_8[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002463 u8 prio[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002464 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002465
Matan Barakb4ff3a32016-02-09 14:57:42 +02002466 u8 reserved_at_20[0x100];
Saeed Mahameede2816822015-05-28 22:28:40 +03002467
Matan Barakb4ff3a32016-02-09 14:57:42 +02002468 u8 reserved_at_120[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002469 u8 transport_domain[0x18];
2470
Erez Shitrit500a3d02017-04-13 06:36:51 +03002471 u8 reserved_at_140[0x8];
2472 u8 underlay_qpn[0x18];
2473 u8 reserved_at_160[0x3a0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002474};
2475
2476enum {
2477 MLX5_TIRC_DISP_TYPE_DIRECT = 0x0,
2478 MLX5_TIRC_DISP_TYPE_INDIRECT = 0x1,
2479};
2480
2481enum {
2482 MLX5_TIRC_LRO_ENABLE_MASK_IPV4_LRO = 0x1,
2483 MLX5_TIRC_LRO_ENABLE_MASK_IPV6_LRO = 0x2,
2484};
2485
2486enum {
Saeed Mahameed2be69672015-07-23 23:35:56 +03002487 MLX5_RX_HASH_FN_NONE = 0x0,
2488 MLX5_RX_HASH_FN_INVERTED_XOR8 = 0x1,
2489 MLX5_RX_HASH_FN_TOEPLITZ = 0x2,
Saeed Mahameede2816822015-05-28 22:28:40 +03002490};
2491
2492enum {
2493 MLX5_TIRC_SELF_LB_BLOCK_BLOCK_UNICAST_ = 0x1,
2494 MLX5_TIRC_SELF_LB_BLOCK_BLOCK_MULTICAST_ = 0x2,
2495};
2496
2497struct mlx5_ifc_tirc_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002498 u8 reserved_at_0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002499
2500 u8 disp_type[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002501 u8 reserved_at_24[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03002502
Matan Barakb4ff3a32016-02-09 14:57:42 +02002503 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002504
Matan Barakb4ff3a32016-02-09 14:57:42 +02002505 u8 reserved_at_80[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002506 u8 lro_timeout_period_usecs[0x10];
2507 u8 lro_enable_mask[0x4];
2508 u8 lro_max_ip_payload_size[0x8];
2509
Matan Barakb4ff3a32016-02-09 14:57:42 +02002510 u8 reserved_at_a0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002511
Matan Barakb4ff3a32016-02-09 14:57:42 +02002512 u8 reserved_at_e0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002513 u8 inline_rqn[0x18];
2514
2515 u8 rx_hash_symmetric[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002516 u8 reserved_at_101[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002517 u8 tunneled_offload_en[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002518 u8 reserved_at_103[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03002519 u8 indirect_table[0x18];
2520
2521 u8 rx_hash_fn[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002522 u8 reserved_at_124[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002523 u8 self_lb_block[0x2];
2524 u8 transport_domain[0x18];
2525
2526 u8 rx_hash_toeplitz_key[10][0x20];
2527
2528 struct mlx5_ifc_rx_hash_field_select_bits rx_hash_field_selector_outer;
2529
2530 struct mlx5_ifc_rx_hash_field_select_bits rx_hash_field_selector_inner;
2531
Matan Barakb4ff3a32016-02-09 14:57:42 +02002532 u8 reserved_at_2c0[0x4c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002533};
2534
2535enum {
2536 MLX5_SRQC_STATE_GOOD = 0x0,
2537 MLX5_SRQC_STATE_ERROR = 0x1,
2538};
2539
2540struct mlx5_ifc_srqc_bits {
2541 u8 state[0x4];
2542 u8 log_srq_size[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002543 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002544
2545 u8 wq_signature[0x1];
2546 u8 cont_srq[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002547 u8 reserved_at_22[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002548 u8 rlky[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002549 u8 reserved_at_24[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002550 u8 log_rq_stride[0x3];
2551 u8 xrcd[0x18];
2552
2553 u8 page_offset[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002554 u8 reserved_at_46[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002555 u8 cqn[0x18];
2556
Matan Barakb4ff3a32016-02-09 14:57:42 +02002557 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002558
Matan Barakb4ff3a32016-02-09 14:57:42 +02002559 u8 reserved_at_80[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002560 u8 log_page_size[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002561 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002562
Matan Barakb4ff3a32016-02-09 14:57:42 +02002563 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002564
Matan Barakb4ff3a32016-02-09 14:57:42 +02002565 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002566 u8 pd[0x18];
2567
2568 u8 lwm[0x10];
2569 u8 wqe_cnt[0x10];
2570
Matan Barakb4ff3a32016-02-09 14:57:42 +02002571 u8 reserved_at_100[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002572
Haggai Abramonvsky01949d02015-06-04 19:30:38 +03002573 u8 dbr_addr[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002574
Matan Barakb4ff3a32016-02-09 14:57:42 +02002575 u8 reserved_at_180[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03002576};
2577
2578enum {
2579 MLX5_SQC_STATE_RST = 0x0,
2580 MLX5_SQC_STATE_RDY = 0x1,
2581 MLX5_SQC_STATE_ERR = 0x3,
2582};
2583
2584struct mlx5_ifc_sqc_bits {
2585 u8 rlky[0x1];
2586 u8 cd_master[0x1];
2587 u8 fre[0x1];
2588 u8 flush_in_error_en[0x1];
Bodong Wang795b6092017-08-17 15:52:34 +03002589 u8 allow_multi_pkt_send_wqe[0x1];
Hadar Hen Zioncff92d72016-07-24 16:12:40 +03002590 u8 min_wqe_inline_mode[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002591 u8 state[0x4];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03002592 u8 reg_umr[0x1];
Ilan Tayari547eede2017-04-18 16:04:28 +03002593 u8 allow_swp[0x1];
Or Gerlitz40817cd2017-06-25 12:38:45 +03002594 u8 hairpin[0x1];
2595 u8 reserved_at_f[0x11];
Saeed Mahameede2816822015-05-28 22:28:40 +03002596
Matan Barakb4ff3a32016-02-09 14:57:42 +02002597 u8 reserved_at_20[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002598 u8 user_index[0x18];
2599
Matan Barakb4ff3a32016-02-09 14:57:42 +02002600 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002601 u8 cqn[0x18];
2602
Or Gerlitz40817cd2017-06-25 12:38:45 +03002603 u8 reserved_at_60[0x8];
2604 u8 hairpin_peer_rq[0x18];
2605
2606 u8 reserved_at_80[0x10];
2607 u8 hairpin_peer_vhca[0x10];
2608
2609 u8 reserved_at_a0[0x50];
Saeed Mahameede2816822015-05-28 22:28:40 +03002610
Saeed Mahameed74862162016-06-09 15:11:34 +03002611 u8 packet_pacing_rate_limit_index[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002612 u8 tis_lst_sz[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002613 u8 reserved_at_110[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002614
Matan Barakb4ff3a32016-02-09 14:57:42 +02002615 u8 reserved_at_120[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002616
Matan Barakb4ff3a32016-02-09 14:57:42 +02002617 u8 reserved_at_160[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002618 u8 tis_num_0[0x18];
2619
2620 struct mlx5_ifc_wq_bits wq;
2621};
2622
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03002623enum {
2624 SCHEDULING_CONTEXT_ELEMENT_TYPE_TSAR = 0x0,
2625 SCHEDULING_CONTEXT_ELEMENT_TYPE_VPORT = 0x1,
2626 SCHEDULING_CONTEXT_ELEMENT_TYPE_VPORT_TC = 0x2,
2627 SCHEDULING_CONTEXT_ELEMENT_TYPE_PARA_VPORT_TC = 0x3,
2628};
2629
2630struct mlx5_ifc_scheduling_context_bits {
2631 u8 element_type[0x8];
2632 u8 reserved_at_8[0x18];
2633
2634 u8 element_attributes[0x20];
2635
2636 u8 parent_element_id[0x20];
2637
2638 u8 reserved_at_60[0x40];
2639
2640 u8 bw_share[0x20];
2641
2642 u8 max_average_bw[0x20];
2643
2644 u8 reserved_at_e0[0x120];
2645};
2646
Saeed Mahameede2816822015-05-28 22:28:40 +03002647struct mlx5_ifc_rqtc_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002648 u8 reserved_at_0[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002649
Matan Barakb4ff3a32016-02-09 14:57:42 +02002650 u8 reserved_at_a0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002651 u8 rqt_max_size[0x10];
2652
Matan Barakb4ff3a32016-02-09 14:57:42 +02002653 u8 reserved_at_c0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002654 u8 rqt_actual_size[0x10];
2655
Matan Barakb4ff3a32016-02-09 14:57:42 +02002656 u8 reserved_at_e0[0x6a0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002657
2658 struct mlx5_ifc_rq_num_bits rq_num[0];
2659};
2660
2661enum {
2662 MLX5_RQC_MEM_RQ_TYPE_MEMORY_RQ_INLINE = 0x0,
2663 MLX5_RQC_MEM_RQ_TYPE_MEMORY_RQ_RMP = 0x1,
2664};
2665
2666enum {
2667 MLX5_RQC_STATE_RST = 0x0,
2668 MLX5_RQC_STATE_RDY = 0x1,
2669 MLX5_RQC_STATE_ERR = 0x3,
2670};
2671
2672struct mlx5_ifc_rqc_bits {
2673 u8 rlky[0x1];
Maor Gottlieb03404e82017-05-30 10:29:13 +03002674 u8 delay_drop_en[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03002675 u8 scatter_fcs[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002676 u8 vsd[0x1];
2677 u8 mem_rq_type[0x4];
2678 u8 state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002679 u8 reserved_at_c[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002680 u8 flush_in_error_en[0x1];
Or Gerlitz40817cd2017-06-25 12:38:45 +03002681 u8 hairpin[0x1];
2682 u8 reserved_at_f[0x11];
Saeed Mahameede2816822015-05-28 22:28:40 +03002683
Matan Barakb4ff3a32016-02-09 14:57:42 +02002684 u8 reserved_at_20[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002685 u8 user_index[0x18];
2686
Matan Barakb4ff3a32016-02-09 14:57:42 +02002687 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002688 u8 cqn[0x18];
2689
2690 u8 counter_set_id[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002691 u8 reserved_at_68[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002692
Matan Barakb4ff3a32016-02-09 14:57:42 +02002693 u8 reserved_at_80[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002694 u8 rmpn[0x18];
2695
Or Gerlitz40817cd2017-06-25 12:38:45 +03002696 u8 reserved_at_a0[0x8];
2697 u8 hairpin_peer_sq[0x18];
2698
2699 u8 reserved_at_c0[0x10];
2700 u8 hairpin_peer_vhca[0x10];
2701
2702 u8 reserved_at_e0[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002703
2704 struct mlx5_ifc_wq_bits wq;
2705};
2706
2707enum {
2708 MLX5_RMPC_STATE_RDY = 0x1,
2709 MLX5_RMPC_STATE_ERR = 0x3,
2710};
2711
2712struct mlx5_ifc_rmpc_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002713 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002714 u8 state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002715 u8 reserved_at_c[0x14];
Saeed Mahameede2816822015-05-28 22:28:40 +03002716
2717 u8 basic_cyclic_rcv_wqe[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002718 u8 reserved_at_21[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03002719
Matan Barakb4ff3a32016-02-09 14:57:42 +02002720 u8 reserved_at_40[0x140];
Saeed Mahameede2816822015-05-28 22:28:40 +03002721
2722 struct mlx5_ifc_wq_bits wq;
2723};
2724
Saeed Mahameede2816822015-05-28 22:28:40 +03002725struct mlx5_ifc_nic_vport_context_bits {
Hadar Hen Zioncff92d72016-07-24 16:12:40 +03002726 u8 reserved_at_0[0x5];
2727 u8 min_wqe_inline_mode[0x3];
Huy Nguyenbded7472017-05-30 09:42:53 +03002728 u8 reserved_at_8[0x15];
2729 u8 disable_mc_local_lb[0x1];
2730 u8 disable_uc_local_lb[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002731 u8 roce_en[0x1];
2732
Saeed Mahameedd82b7312015-12-01 18:03:14 +02002733 u8 arm_change_event[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002734 u8 reserved_at_21[0x1a];
Saeed Mahameedd82b7312015-12-01 18:03:14 +02002735 u8 event_on_mtu[0x1];
2736 u8 event_on_promisc_change[0x1];
2737 u8 event_on_vlan_change[0x1];
2738 u8 event_on_mc_address_change[0x1];
2739 u8 event_on_uc_address_change[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002740
Daniel Jurgens32f69e42018-01-04 17:25:36 +02002741 u8 reserved_at_40[0xc];
2742
2743 u8 affiliation_criteria[0x4];
2744 u8 affiliated_vhca_id[0x10];
2745
2746 u8 reserved_at_60[0xd0];
Saeed Mahameedd82b7312015-12-01 18:03:14 +02002747
2748 u8 mtu[0x10];
2749
Achiad Shochat9efa7522015-12-23 18:47:20 +02002750 u8 system_image_guid[0x40];
2751 u8 port_guid[0x40];
2752 u8 node_guid[0x40];
2753
Matan Barakb4ff3a32016-02-09 14:57:42 +02002754 u8 reserved_at_200[0x140];
Achiad Shochat9efa7522015-12-23 18:47:20 +02002755 u8 qkey_violation_counter[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002756 u8 reserved_at_350[0x430];
Saeed Mahameedd82b7312015-12-01 18:03:14 +02002757
2758 u8 promisc_uc[0x1];
2759 u8 promisc_mc[0x1];
2760 u8 promisc_all[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002761 u8 reserved_at_783[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002762 u8 allowed_list_type[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002763 u8 reserved_at_788[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03002764 u8 allowed_list_size[0xc];
2765
2766 struct mlx5_ifc_mac_address_layout_bits permanent_address;
2767
Matan Barakb4ff3a32016-02-09 14:57:42 +02002768 u8 reserved_at_7e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002769
2770 u8 current_uc_mac_address[0][0x40];
2771};
2772
2773enum {
2774 MLX5_MKC_ACCESS_MODE_PA = 0x0,
2775 MLX5_MKC_ACCESS_MODE_MTT = 0x1,
2776 MLX5_MKC_ACCESS_MODE_KLMS = 0x2,
Artemy Kovalyovbcda1ac2017-01-02 11:37:41 +02002777 MLX5_MKC_ACCESS_MODE_KSM = 0x3,
Ariel Levkovichcdbd0d22018-04-05 18:53:28 +03002778 MLX5_MKC_ACCESS_MODE_MEMIC = 0x5,
Saeed Mahameede2816822015-05-28 22:28:40 +03002779};
2780
2781struct mlx5_ifc_mkc_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002782 u8 reserved_at_0[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002783 u8 free[0x1];
Ariel Levkovichcdbd0d22018-04-05 18:53:28 +03002784 u8 reserved_at_2[0x1];
2785 u8 access_mode_4_2[0x3];
2786 u8 reserved_at_6[0x7];
2787 u8 relaxed_ordering_write[0x1];
2788 u8 reserved_at_e[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002789 u8 small_fence_on_rdma_read_response[0x1];
2790 u8 umr_en[0x1];
2791 u8 a[0x1];
2792 u8 rw[0x1];
2793 u8 rr[0x1];
2794 u8 lw[0x1];
2795 u8 lr[0x1];
Ariel Levkovichcdbd0d22018-04-05 18:53:28 +03002796 u8 access_mode_1_0[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002797 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002798
2799 u8 qpn[0x18];
2800 u8 mkey_7_0[0x8];
2801
Matan Barakb4ff3a32016-02-09 14:57:42 +02002802 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002803
2804 u8 length64[0x1];
2805 u8 bsf_en[0x1];
2806 u8 sync_umr[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002807 u8 reserved_at_63[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03002808 u8 expected_sigerr_count[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002809 u8 reserved_at_66[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03002810 u8 en_rinval[0x1];
2811 u8 pd[0x18];
2812
2813 u8 start_addr[0x40];
2814
2815 u8 len[0x40];
2816
2817 u8 bsf_octword_size[0x20];
2818
Matan Barakb4ff3a32016-02-09 14:57:42 +02002819 u8 reserved_at_120[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03002820
2821 u8 translations_octword_size[0x20];
2822
Matan Barakb4ff3a32016-02-09 14:57:42 +02002823 u8 reserved_at_1c0[0x1b];
Saeed Mahameede2816822015-05-28 22:28:40 +03002824 u8 log_page_size[0x5];
2825
Matan Barakb4ff3a32016-02-09 14:57:42 +02002826 u8 reserved_at_1e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002827};
2828
2829struct mlx5_ifc_pkey_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002830 u8 reserved_at_0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03002831 u8 pkey[0x10];
2832};
2833
2834struct mlx5_ifc_array128_auto_bits {
2835 u8 array128_auto[16][0x8];
2836};
2837
2838struct mlx5_ifc_hca_vport_context_bits {
2839 u8 field_select[0x20];
2840
Matan Barakb4ff3a32016-02-09 14:57:42 +02002841 u8 reserved_at_20[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002842
2843 u8 sm_virt_aware[0x1];
2844 u8 has_smi[0x1];
2845 u8 has_raw[0x1];
2846 u8 grh_required[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002847 u8 reserved_at_104[0xc];
Majd Dibbiny707c4602015-06-04 19:30:41 +03002848 u8 port_physical_state[0x4];
2849 u8 vport_state_policy[0x4];
2850 u8 port_state[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002851 u8 vport_state[0x4];
2852
Matan Barakb4ff3a32016-02-09 14:57:42 +02002853 u8 reserved_at_120[0x20];
Majd Dibbiny707c4602015-06-04 19:30:41 +03002854
2855 u8 system_image_guid[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03002856
2857 u8 port_guid[0x40];
2858
2859 u8 node_guid[0x40];
2860
2861 u8 cap_mask1[0x20];
2862
2863 u8 cap_mask1_field_select[0x20];
2864
2865 u8 cap_mask2[0x20];
2866
2867 u8 cap_mask2_field_select[0x20];
2868
Matan Barakb4ff3a32016-02-09 14:57:42 +02002869 u8 reserved_at_280[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03002870
2871 u8 lid[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002872 u8 reserved_at_310[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002873 u8 init_type_reply[0x4];
2874 u8 lmc[0x3];
2875 u8 subnet_timeout[0x5];
2876
2877 u8 sm_lid[0x10];
2878 u8 sm_sl[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002879 u8 reserved_at_334[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03002880
2881 u8 qkey_violation_counter[0x10];
2882 u8 pkey_violation_counter[0x10];
2883
Matan Barakb4ff3a32016-02-09 14:57:42 +02002884 u8 reserved_at_360[0xca0];
Saeed Mahameede2816822015-05-28 22:28:40 +03002885};
2886
Saeed Mahameedd6666752015-12-01 18:03:22 +02002887struct mlx5_ifc_esw_vport_context_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002888 u8 reserved_at_0[0x3];
Saeed Mahameedd6666752015-12-01 18:03:22 +02002889 u8 vport_svlan_strip[0x1];
2890 u8 vport_cvlan_strip[0x1];
2891 u8 vport_svlan_insert[0x1];
2892 u8 vport_cvlan_insert[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002893 u8 reserved_at_8[0x18];
Saeed Mahameedd6666752015-12-01 18:03:22 +02002894
Matan Barakb4ff3a32016-02-09 14:57:42 +02002895 u8 reserved_at_20[0x20];
Saeed Mahameedd6666752015-12-01 18:03:22 +02002896
2897 u8 svlan_cfi[0x1];
2898 u8 svlan_pcp[0x3];
2899 u8 svlan_id[0xc];
2900 u8 cvlan_cfi[0x1];
2901 u8 cvlan_pcp[0x3];
2902 u8 cvlan_id[0xc];
2903
Matan Barakb4ff3a32016-02-09 14:57:42 +02002904 u8 reserved_at_60[0x7a0];
Saeed Mahameedd6666752015-12-01 18:03:22 +02002905};
2906
Saeed Mahameede2816822015-05-28 22:28:40 +03002907enum {
2908 MLX5_EQC_STATUS_OK = 0x0,
2909 MLX5_EQC_STATUS_EQ_WRITE_FAILURE = 0xa,
2910};
2911
2912enum {
2913 MLX5_EQC_ST_ARMED = 0x9,
2914 MLX5_EQC_ST_FIRED = 0xa,
2915};
2916
2917struct mlx5_ifc_eqc_bits {
2918 u8 status[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002919 u8 reserved_at_4[0x9];
Saeed Mahameede2816822015-05-28 22:28:40 +03002920 u8 ec[0x1];
2921 u8 oi[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002922 u8 reserved_at_f[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03002923 u8 st[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002924 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002925
Matan Barakb4ff3a32016-02-09 14:57:42 +02002926 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002927
Matan Barakb4ff3a32016-02-09 14:57:42 +02002928 u8 reserved_at_40[0x14];
Saeed Mahameede2816822015-05-28 22:28:40 +03002929 u8 page_offset[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002930 u8 reserved_at_5a[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03002931
Matan Barakb4ff3a32016-02-09 14:57:42 +02002932 u8 reserved_at_60[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002933 u8 log_eq_size[0x5];
2934 u8 uar_page[0x18];
2935
Matan Barakb4ff3a32016-02-09 14:57:42 +02002936 u8 reserved_at_80[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03002937
Matan Barakb4ff3a32016-02-09 14:57:42 +02002938 u8 reserved_at_a0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002939 u8 intr[0x8];
2940
Matan Barakb4ff3a32016-02-09 14:57:42 +02002941 u8 reserved_at_c0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03002942 u8 log_page_size[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002943 u8 reserved_at_c8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002944
Matan Barakb4ff3a32016-02-09 14:57:42 +02002945 u8 reserved_at_e0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03002946
Matan Barakb4ff3a32016-02-09 14:57:42 +02002947 u8 reserved_at_140[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002948 u8 consumer_counter[0x18];
2949
Matan Barakb4ff3a32016-02-09 14:57:42 +02002950 u8 reserved_at_160[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002951 u8 producer_counter[0x18];
2952
Matan Barakb4ff3a32016-02-09 14:57:42 +02002953 u8 reserved_at_180[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03002954};
2955
2956enum {
2957 MLX5_DCTC_STATE_ACTIVE = 0x0,
2958 MLX5_DCTC_STATE_DRAINING = 0x1,
2959 MLX5_DCTC_STATE_DRAINED = 0x2,
2960};
2961
2962enum {
2963 MLX5_DCTC_CS_RES_DISABLE = 0x0,
2964 MLX5_DCTC_CS_RES_NA = 0x1,
2965 MLX5_DCTC_CS_RES_UP_TO_64B = 0x2,
2966};
2967
2968enum {
2969 MLX5_DCTC_MTU_256_BYTES = 0x1,
2970 MLX5_DCTC_MTU_512_BYTES = 0x2,
2971 MLX5_DCTC_MTU_1K_BYTES = 0x3,
2972 MLX5_DCTC_MTU_2K_BYTES = 0x4,
2973 MLX5_DCTC_MTU_4K_BYTES = 0x5,
2974};
2975
2976struct mlx5_ifc_dctc_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02002977 u8 reserved_at_0[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03002978 u8 state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002979 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03002980
Matan Barakb4ff3a32016-02-09 14:57:42 +02002981 u8 reserved_at_20[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002982 u8 user_index[0x18];
2983
Matan Barakb4ff3a32016-02-09 14:57:42 +02002984 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002985 u8 cqn[0x18];
2986
2987 u8 counter_set_id[0x8];
2988 u8 atomic_mode[0x4];
2989 u8 rre[0x1];
2990 u8 rwe[0x1];
2991 u8 rae[0x1];
2992 u8 atomic_like_write_en[0x1];
2993 u8 latency_sensitive[0x1];
2994 u8 rlky[0x1];
2995 u8 free_ar[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02002996 u8 reserved_at_73[0xd];
Saeed Mahameede2816822015-05-28 22:28:40 +03002997
Matan Barakb4ff3a32016-02-09 14:57:42 +02002998 u8 reserved_at_80[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03002999 u8 cs_res[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003000 u8 reserved_at_90[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03003001 u8 min_rnr_nak[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003002 u8 reserved_at_98[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003003
Matan Barakb4ff3a32016-02-09 14:57:42 +02003004 u8 reserved_at_a0[0x8];
Saeed Mahameed74862162016-06-09 15:11:34 +03003005 u8 srqn_xrqn[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003006
Matan Barakb4ff3a32016-02-09 14:57:42 +02003007 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003008 u8 pd[0x18];
3009
3010 u8 tclass[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003011 u8 reserved_at_e8[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03003012 u8 flow_label[0x14];
3013
3014 u8 dc_access_key[0x40];
3015
Matan Barakb4ff3a32016-02-09 14:57:42 +02003016 u8 reserved_at_140[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03003017 u8 mtu[0x3];
3018 u8 port[0x8];
3019 u8 pkey_index[0x10];
3020
Matan Barakb4ff3a32016-02-09 14:57:42 +02003021 u8 reserved_at_160[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003022 u8 my_addr_index[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003023 u8 reserved_at_170[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003024 u8 hop_limit[0x8];
3025
3026 u8 dc_access_key_violation_count[0x20];
3027
Matan Barakb4ff3a32016-02-09 14:57:42 +02003028 u8 reserved_at_1a0[0x14];
Saeed Mahameede2816822015-05-28 22:28:40 +03003029 u8 dei_cfi[0x1];
3030 u8 eth_prio[0x3];
3031 u8 ecn[0x2];
3032 u8 dscp[0x6];
3033
Matan Barakb4ff3a32016-02-09 14:57:42 +02003034 u8 reserved_at_1c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003035};
3036
3037enum {
3038 MLX5_CQC_STATUS_OK = 0x0,
3039 MLX5_CQC_STATUS_CQ_OVERFLOW = 0x9,
3040 MLX5_CQC_STATUS_CQ_WRITE_FAIL = 0xa,
3041};
3042
3043enum {
3044 MLX5_CQC_CQE_SZ_64_BYTES = 0x0,
3045 MLX5_CQC_CQE_SZ_128_BYTES = 0x1,
3046};
3047
3048enum {
3049 MLX5_CQC_ST_SOLICITED_NOTIFICATION_REQUEST_ARMED = 0x6,
3050 MLX5_CQC_ST_NOTIFICATION_REQUEST_ARMED = 0x9,
3051 MLX5_CQC_ST_FIRED = 0xa,
3052};
3053
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03003054enum {
3055 MLX5_CQ_PERIOD_MODE_START_FROM_EQE = 0x0,
3056 MLX5_CQ_PERIOD_MODE_START_FROM_CQE = 0x1,
Saeed Mahameed74862162016-06-09 15:11:34 +03003057 MLX5_CQ_PERIOD_NUM_MODES
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03003058};
3059
Saeed Mahameede2816822015-05-28 22:28:40 +03003060struct mlx5_ifc_cqc_bits {
3061 u8 status[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003062 u8 reserved_at_4[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03003063 u8 cqe_sz[0x3];
3064 u8 cc[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003065 u8 reserved_at_c[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003066 u8 scqe_break_moderation_en[0x1];
3067 u8 oi[0x1];
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03003068 u8 cq_period_mode[0x2];
3069 u8 cqe_comp_en[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003070 u8 mini_cqe_res_format[0x2];
3071 u8 st[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003072 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003073
Matan Barakb4ff3a32016-02-09 14:57:42 +02003074 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003075
Matan Barakb4ff3a32016-02-09 14:57:42 +02003076 u8 reserved_at_40[0x14];
Saeed Mahameede2816822015-05-28 22:28:40 +03003077 u8 page_offset[0x6];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003078 u8 reserved_at_5a[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03003079
Matan Barakb4ff3a32016-02-09 14:57:42 +02003080 u8 reserved_at_60[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03003081 u8 log_cq_size[0x5];
3082 u8 uar_page[0x18];
3083
Matan Barakb4ff3a32016-02-09 14:57:42 +02003084 u8 reserved_at_80[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03003085 u8 cq_period[0xc];
3086 u8 cq_max_count[0x10];
3087
Matan Barakb4ff3a32016-02-09 14:57:42 +02003088 u8 reserved_at_a0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003089 u8 c_eqn[0x8];
3090
Matan Barakb4ff3a32016-02-09 14:57:42 +02003091 u8 reserved_at_c0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03003092 u8 log_page_size[0x5];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003093 u8 reserved_at_c8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003094
Matan Barakb4ff3a32016-02-09 14:57:42 +02003095 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003096
Matan Barakb4ff3a32016-02-09 14:57:42 +02003097 u8 reserved_at_100[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003098 u8 last_notified_index[0x18];
3099
Matan Barakb4ff3a32016-02-09 14:57:42 +02003100 u8 reserved_at_120[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003101 u8 last_solicit_index[0x18];
3102
Matan Barakb4ff3a32016-02-09 14:57:42 +02003103 u8 reserved_at_140[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003104 u8 consumer_counter[0x18];
3105
Matan Barakb4ff3a32016-02-09 14:57:42 +02003106 u8 reserved_at_160[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003107 u8 producer_counter[0x18];
3108
Matan Barakb4ff3a32016-02-09 14:57:42 +02003109 u8 reserved_at_180[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003110
3111 u8 dbr_addr[0x40];
3112};
3113
3114union mlx5_ifc_cong_control_roce_ecn_auto_bits {
3115 struct mlx5_ifc_cong_control_802_1qau_rp_bits cong_control_802_1qau_rp;
3116 struct mlx5_ifc_cong_control_r_roce_ecn_rp_bits cong_control_r_roce_ecn_rp;
3117 struct mlx5_ifc_cong_control_r_roce_ecn_np_bits cong_control_r_roce_ecn_np;
Matan Barakb4ff3a32016-02-09 14:57:42 +02003118 u8 reserved_at_0[0x800];
Saeed Mahameede2816822015-05-28 22:28:40 +03003119};
3120
3121struct mlx5_ifc_query_adapter_param_block_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02003122 u8 reserved_at_0[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003123
Matan Barakb4ff3a32016-02-09 14:57:42 +02003124 u8 reserved_at_c0[0x8];
Majd Dibbiny211e6c82015-06-04 19:30:42 +03003125 u8 ieee_vendor_id[0x18];
3126
Matan Barakb4ff3a32016-02-09 14:57:42 +02003127 u8 reserved_at_e0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003128 u8 vsd_vendor_id[0x10];
3129
3130 u8 vsd[208][0x8];
3131
3132 u8 vsd_contd_psid[16][0x8];
3133};
3134
Saeed Mahameed74862162016-06-09 15:11:34 +03003135enum {
3136 MLX5_XRQC_STATE_GOOD = 0x0,
3137 MLX5_XRQC_STATE_ERROR = 0x1,
3138};
3139
3140enum {
3141 MLX5_XRQC_TOPOLOGY_NO_SPECIAL_TOPOLOGY = 0x0,
3142 MLX5_XRQC_TOPOLOGY_TAG_MATCHING = 0x1,
3143};
3144
3145enum {
3146 MLX5_XRQC_OFFLOAD_RNDV = 0x1,
3147};
3148
3149struct mlx5_ifc_tag_matching_topology_context_bits {
3150 u8 log_matching_list_sz[0x4];
3151 u8 reserved_at_4[0xc];
3152 u8 append_next_index[0x10];
3153
3154 u8 sw_phase_cnt[0x10];
3155 u8 hw_phase_cnt[0x10];
3156
3157 u8 reserved_at_40[0x40];
3158};
3159
3160struct mlx5_ifc_xrqc_bits {
3161 u8 state[0x4];
3162 u8 rlkey[0x1];
3163 u8 reserved_at_5[0xf];
3164 u8 topology[0x4];
3165 u8 reserved_at_18[0x4];
3166 u8 offload[0x4];
3167
3168 u8 reserved_at_20[0x8];
3169 u8 user_index[0x18];
3170
3171 u8 reserved_at_40[0x8];
3172 u8 cqn[0x18];
3173
3174 u8 reserved_at_60[0xa0];
3175
3176 struct mlx5_ifc_tag_matching_topology_context_bits tag_matching_topology_context;
3177
Artemy Kovalyov6e446362017-08-15 11:59:02 +03003178 u8 reserved_at_180[0x280];
Saeed Mahameed74862162016-06-09 15:11:34 +03003179
3180 struct mlx5_ifc_wq_bits wq;
3181};
3182
Saeed Mahameede2816822015-05-28 22:28:40 +03003183union mlx5_ifc_modify_field_select_resize_field_select_auto_bits {
3184 struct mlx5_ifc_modify_field_select_bits modify_field_select;
3185 struct mlx5_ifc_resize_field_select_bits resize_field_select;
Matan Barakb4ff3a32016-02-09 14:57:42 +02003186 u8 reserved_at_0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003187};
3188
3189union mlx5_ifc_field_select_802_1_r_roce_auto_bits {
3190 struct mlx5_ifc_field_select_802_1qau_rp_bits field_select_802_1qau_rp;
3191 struct mlx5_ifc_field_select_r_roce_rp_bits field_select_r_roce_rp;
3192 struct mlx5_ifc_field_select_r_roce_np_bits field_select_r_roce_np;
Matan Barakb4ff3a32016-02-09 14:57:42 +02003193 u8 reserved_at_0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003194};
3195
3196union mlx5_ifc_eth_cntrs_grp_data_layout_auto_bits {
3197 struct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits eth_802_3_cntrs_grp_data_layout;
3198 struct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits eth_2863_cntrs_grp_data_layout;
3199 struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits eth_2819_cntrs_grp_data_layout;
3200 struct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits eth_3635_cntrs_grp_data_layout;
3201 struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits eth_extended_cntrs_grp_data_layout;
3202 struct mlx5_ifc_eth_per_prio_grp_data_layout_bits eth_per_prio_grp_data_layout;
3203 struct mlx5_ifc_eth_per_traffic_grp_data_layout_bits eth_per_traffic_grp_data_layout;
Meny Yossefi1c64bf62016-02-18 18:15:00 +02003204 struct mlx5_ifc_ib_port_cntrs_grp_data_layout_bits ib_port_cntrs_grp_data_layout;
Saeed Mahameede2816822015-05-28 22:28:40 +03003205 struct mlx5_ifc_phys_layer_cntrs_bits phys_layer_cntrs;
Gal Pressmand8dc0502016-09-27 17:04:51 +03003206 struct mlx5_ifc_phys_layer_statistical_cntrs_bits phys_layer_statistical_cntrs;
Matan Barakb4ff3a32016-02-09 14:57:42 +02003207 u8 reserved_at_0[0x7c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003208};
3209
Gal Pressman8ed1a632016-11-17 13:46:01 +02003210union mlx5_ifc_pcie_cntrs_grp_data_layout_auto_bits {
3211 struct mlx5_ifc_pcie_perf_cntrs_grp_data_layout_bits pcie_perf_cntrs_grp_data_layout;
3212 u8 reserved_at_0[0x7c0];
3213};
3214
Saeed Mahameede2816822015-05-28 22:28:40 +03003215union mlx5_ifc_event_auto_bits {
3216 struct mlx5_ifc_comp_event_bits comp_event;
3217 struct mlx5_ifc_dct_events_bits dct_events;
3218 struct mlx5_ifc_qp_events_bits qp_events;
3219 struct mlx5_ifc_wqe_associated_page_fault_event_bits wqe_associated_page_fault_event;
3220 struct mlx5_ifc_rdma_page_fault_event_bits rdma_page_fault_event;
3221 struct mlx5_ifc_cq_error_bits cq_error;
3222 struct mlx5_ifc_dropped_packet_logged_bits dropped_packet_logged;
3223 struct mlx5_ifc_port_state_change_event_bits port_state_change_event;
3224 struct mlx5_ifc_gpio_event_bits gpio_event;
3225 struct mlx5_ifc_db_bf_congestion_event_bits db_bf_congestion_event;
3226 struct mlx5_ifc_stall_vl_event_bits stall_vl_event;
3227 struct mlx5_ifc_cmd_inter_comp_event_bits cmd_inter_comp_event;
Matan Barakb4ff3a32016-02-09 14:57:42 +02003228 u8 reserved_at_0[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003229};
3230
3231struct mlx5_ifc_health_buffer_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02003232 u8 reserved_at_0[0x100];
Saeed Mahameede2816822015-05-28 22:28:40 +03003233
3234 u8 assert_existptr[0x20];
3235
3236 u8 assert_callra[0x20];
3237
Matan Barakb4ff3a32016-02-09 14:57:42 +02003238 u8 reserved_at_140[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003239
3240 u8 fw_version[0x20];
3241
3242 u8 hw_id[0x20];
3243
Matan Barakb4ff3a32016-02-09 14:57:42 +02003244 u8 reserved_at_1c0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003245
3246 u8 irisc_index[0x8];
3247 u8 synd[0x8];
3248 u8 ext_synd[0x10];
3249};
3250
3251struct mlx5_ifc_register_loopback_control_bits {
3252 u8 no_lb[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003253 u8 reserved_at_1[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03003254 u8 port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003255 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003256
Matan Barakb4ff3a32016-02-09 14:57:42 +02003257 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03003258};
3259
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03003260struct mlx5_ifc_vport_tc_element_bits {
3261 u8 traffic_class[0x4];
3262 u8 reserved_at_4[0xc];
3263 u8 vport_number[0x10];
3264};
3265
3266struct mlx5_ifc_vport_element_bits {
3267 u8 reserved_at_0[0x10];
3268 u8 vport_number[0x10];
3269};
3270
3271enum {
3272 TSAR_ELEMENT_TSAR_TYPE_DWRR = 0x0,
3273 TSAR_ELEMENT_TSAR_TYPE_ROUND_ROBIN = 0x1,
3274 TSAR_ELEMENT_TSAR_TYPE_ETS = 0x2,
3275};
3276
3277struct mlx5_ifc_tsar_element_bits {
3278 u8 reserved_at_0[0x8];
3279 u8 tsar_type[0x8];
3280 u8 reserved_at_10[0x10];
3281};
3282
Majd Dibbiny8812c242017-02-09 14:20:12 +02003283enum {
3284 MLX5_TEARDOWN_HCA_OUT_FORCE_STATE_SUCCESS = 0x0,
3285 MLX5_TEARDOWN_HCA_OUT_FORCE_STATE_FAIL = 0x1,
3286};
3287
Saeed Mahameede2816822015-05-28 22:28:40 +03003288struct mlx5_ifc_teardown_hca_out_bits {
3289 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003290 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003291
3292 u8 syndrome[0x20];
3293
Majd Dibbiny8812c242017-02-09 14:20:12 +02003294 u8 reserved_at_40[0x3f];
3295
3296 u8 force_state[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03003297};
3298
3299enum {
3300 MLX5_TEARDOWN_HCA_IN_PROFILE_GRACEFUL_CLOSE = 0x0,
Majd Dibbiny8812c242017-02-09 14:20:12 +02003301 MLX5_TEARDOWN_HCA_IN_PROFILE_FORCE_CLOSE = 0x1,
Saeed Mahameede2816822015-05-28 22:28:40 +03003302};
3303
3304struct mlx5_ifc_teardown_hca_in_bits {
3305 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003306 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003307
Matan Barakb4ff3a32016-02-09 14:57:42 +02003308 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003309 u8 op_mod[0x10];
3310
Matan Barakb4ff3a32016-02-09 14:57:42 +02003311 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003312 u8 profile[0x10];
3313
Matan Barakb4ff3a32016-02-09 14:57:42 +02003314 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003315};
3316
3317struct mlx5_ifc_sqerr2rts_qp_out_bits {
3318 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003319 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003320
3321 u8 syndrome[0x20];
3322
Matan Barakb4ff3a32016-02-09 14:57:42 +02003323 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003324};
3325
3326struct mlx5_ifc_sqerr2rts_qp_in_bits {
3327 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003328 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003329
Matan Barakb4ff3a32016-02-09 14:57:42 +02003330 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003331 u8 op_mod[0x10];
3332
Matan Barakb4ff3a32016-02-09 14:57:42 +02003333 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003334 u8 qpn[0x18];
3335
Matan Barakb4ff3a32016-02-09 14:57:42 +02003336 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003337
3338 u8 opt_param_mask[0x20];
3339
Matan Barakb4ff3a32016-02-09 14:57:42 +02003340 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003341
3342 struct mlx5_ifc_qpc_bits qpc;
3343
Matan Barakb4ff3a32016-02-09 14:57:42 +02003344 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003345};
3346
3347struct mlx5_ifc_sqd2rts_qp_out_bits {
3348 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003349 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003350
3351 u8 syndrome[0x20];
3352
Matan Barakb4ff3a32016-02-09 14:57:42 +02003353 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003354};
3355
3356struct mlx5_ifc_sqd2rts_qp_in_bits {
3357 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003358 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003359
Matan Barakb4ff3a32016-02-09 14:57:42 +02003360 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003361 u8 op_mod[0x10];
3362
Matan Barakb4ff3a32016-02-09 14:57:42 +02003363 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003364 u8 qpn[0x18];
3365
Matan Barakb4ff3a32016-02-09 14:57:42 +02003366 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003367
3368 u8 opt_param_mask[0x20];
3369
Matan Barakb4ff3a32016-02-09 14:57:42 +02003370 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003371
3372 struct mlx5_ifc_qpc_bits qpc;
3373
Matan Barakb4ff3a32016-02-09 14:57:42 +02003374 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003375};
3376
3377struct mlx5_ifc_set_roce_address_out_bits {
3378 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003379 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003380
3381 u8 syndrome[0x20];
3382
Matan Barakb4ff3a32016-02-09 14:57:42 +02003383 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003384};
3385
3386struct mlx5_ifc_set_roce_address_in_bits {
3387 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003388 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003389
Matan Barakb4ff3a32016-02-09 14:57:42 +02003390 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003391 u8 op_mod[0x10];
3392
3393 u8 roce_address_index[0x10];
Daniel Jurgens32f69e42018-01-04 17:25:36 +02003394 u8 reserved_at_50[0xc];
3395 u8 vhca_port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03003396
Matan Barakb4ff3a32016-02-09 14:57:42 +02003397 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003398
3399 struct mlx5_ifc_roce_addr_layout_bits roce_address;
3400};
3401
3402struct mlx5_ifc_set_mad_demux_out_bits {
3403 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003404 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003405
3406 u8 syndrome[0x20];
3407
Matan Barakb4ff3a32016-02-09 14:57:42 +02003408 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003409};
3410
3411enum {
3412 MLX5_SET_MAD_DEMUX_IN_DEMUX_MODE_PASS_ALL = 0x0,
3413 MLX5_SET_MAD_DEMUX_IN_DEMUX_MODE_SELECTIVE = 0x2,
3414};
3415
3416struct mlx5_ifc_set_mad_demux_in_bits {
3417 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003418 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003419
Matan Barakb4ff3a32016-02-09 14:57:42 +02003420 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003421 u8 op_mod[0x10];
3422
Matan Barakb4ff3a32016-02-09 14:57:42 +02003423 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003424
Matan Barakb4ff3a32016-02-09 14:57:42 +02003425 u8 reserved_at_60[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03003426 u8 demux_mode[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003427 u8 reserved_at_68[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003428};
3429
3430struct mlx5_ifc_set_l2_table_entry_out_bits {
3431 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003432 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003433
3434 u8 syndrome[0x20];
3435
Matan Barakb4ff3a32016-02-09 14:57:42 +02003436 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003437};
3438
3439struct mlx5_ifc_set_l2_table_entry_in_bits {
3440 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003441 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003442
Matan Barakb4ff3a32016-02-09 14:57:42 +02003443 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003444 u8 op_mod[0x10];
3445
Matan Barakb4ff3a32016-02-09 14:57:42 +02003446 u8 reserved_at_40[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03003447
Matan Barakb4ff3a32016-02-09 14:57:42 +02003448 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003449 u8 table_index[0x18];
3450
Matan Barakb4ff3a32016-02-09 14:57:42 +02003451 u8 reserved_at_c0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003452
Matan Barakb4ff3a32016-02-09 14:57:42 +02003453 u8 reserved_at_e0[0x13];
Saeed Mahameede2816822015-05-28 22:28:40 +03003454 u8 vlan_valid[0x1];
3455 u8 vlan[0xc];
3456
3457 struct mlx5_ifc_mac_address_layout_bits mac_address;
3458
Matan Barakb4ff3a32016-02-09 14:57:42 +02003459 u8 reserved_at_140[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003460};
3461
3462struct mlx5_ifc_set_issi_out_bits {
3463 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003464 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003465
3466 u8 syndrome[0x20];
3467
Matan Barakb4ff3a32016-02-09 14:57:42 +02003468 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003469};
3470
3471struct mlx5_ifc_set_issi_in_bits {
3472 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003473 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003474
Matan Barakb4ff3a32016-02-09 14:57:42 +02003475 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003476 u8 op_mod[0x10];
3477
Matan Barakb4ff3a32016-02-09 14:57:42 +02003478 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003479 u8 current_issi[0x10];
3480
Matan Barakb4ff3a32016-02-09 14:57:42 +02003481 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003482};
3483
3484struct mlx5_ifc_set_hca_cap_out_bits {
3485 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003486 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003487
3488 u8 syndrome[0x20];
3489
Matan Barakb4ff3a32016-02-09 14:57:42 +02003490 u8 reserved_at_40[0x40];
Eli Cohenb7755162014-10-02 12:19:44 +03003491};
3492
3493struct mlx5_ifc_set_hca_cap_in_bits {
3494 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003495 u8 reserved_at_10[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03003496
Matan Barakb4ff3a32016-02-09 14:57:42 +02003497 u8 reserved_at_20[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03003498 u8 op_mod[0x10];
3499
Matan Barakb4ff3a32016-02-09 14:57:42 +02003500 u8 reserved_at_40[0x40];
Eli Cohenb7755162014-10-02 12:19:44 +03003501
Saeed Mahameede2816822015-05-28 22:28:40 +03003502 union mlx5_ifc_hca_cap_union_bits capability;
3503};
3504
Maor Gottlieb26a81452015-12-10 17:12:39 +02003505enum {
3506 MLX5_SET_FTE_MODIFY_ENABLE_MASK_ACTION = 0x0,
3507 MLX5_SET_FTE_MODIFY_ENABLE_MASK_FLOW_TAG = 0x1,
3508 MLX5_SET_FTE_MODIFY_ENABLE_MASK_DESTINATION_LIST = 0x2,
3509 MLX5_SET_FTE_MODIFY_ENABLE_MASK_FLOW_COUNTERS = 0x3
3510};
3511
Saeed Mahameede2816822015-05-28 22:28:40 +03003512struct mlx5_ifc_set_fte_out_bits {
3513 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003514 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003515
3516 u8 syndrome[0x20];
3517
Matan Barakb4ff3a32016-02-09 14:57:42 +02003518 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003519};
3520
3521struct mlx5_ifc_set_fte_in_bits {
3522 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003523 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003524
Matan Barakb4ff3a32016-02-09 14:57:42 +02003525 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003526 u8 op_mod[0x10];
3527
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03003528 u8 other_vport[0x1];
3529 u8 reserved_at_41[0xf];
3530 u8 vport_number[0x10];
3531
3532 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003533
3534 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003535 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003536
Matan Barakb4ff3a32016-02-09 14:57:42 +02003537 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003538 u8 table_id[0x18];
3539
Matan Barakb4ff3a32016-02-09 14:57:42 +02003540 u8 reserved_at_c0[0x18];
Maor Gottlieb26a81452015-12-10 17:12:39 +02003541 u8 modify_enable_mask[0x8];
3542
Matan Barakb4ff3a32016-02-09 14:57:42 +02003543 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003544
3545 u8 flow_index[0x20];
3546
Matan Barakb4ff3a32016-02-09 14:57:42 +02003547 u8 reserved_at_120[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003548
3549 struct mlx5_ifc_flow_context_bits flow_context;
3550};
3551
3552struct mlx5_ifc_rts2rts_qp_out_bits {
3553 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003554 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003555
3556 u8 syndrome[0x20];
3557
Matan Barakb4ff3a32016-02-09 14:57:42 +02003558 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003559};
3560
3561struct mlx5_ifc_rts2rts_qp_in_bits {
3562 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003563 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003564
Matan Barakb4ff3a32016-02-09 14:57:42 +02003565 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003566 u8 op_mod[0x10];
3567
Matan Barakb4ff3a32016-02-09 14:57:42 +02003568 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003569 u8 qpn[0x18];
3570
Matan Barakb4ff3a32016-02-09 14:57:42 +02003571 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003572
3573 u8 opt_param_mask[0x20];
3574
Matan Barakb4ff3a32016-02-09 14:57:42 +02003575 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003576
3577 struct mlx5_ifc_qpc_bits qpc;
3578
Matan Barakb4ff3a32016-02-09 14:57:42 +02003579 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003580};
3581
3582struct mlx5_ifc_rtr2rts_qp_out_bits {
3583 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003584 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003585
3586 u8 syndrome[0x20];
3587
Matan Barakb4ff3a32016-02-09 14:57:42 +02003588 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003589};
3590
3591struct mlx5_ifc_rtr2rts_qp_in_bits {
3592 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003593 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003594
Matan Barakb4ff3a32016-02-09 14:57:42 +02003595 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003596 u8 op_mod[0x10];
3597
Matan Barakb4ff3a32016-02-09 14:57:42 +02003598 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003599 u8 qpn[0x18];
3600
Matan Barakb4ff3a32016-02-09 14:57:42 +02003601 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003602
3603 u8 opt_param_mask[0x20];
3604
Matan Barakb4ff3a32016-02-09 14:57:42 +02003605 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003606
3607 struct mlx5_ifc_qpc_bits qpc;
3608
Matan Barakb4ff3a32016-02-09 14:57:42 +02003609 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003610};
3611
3612struct mlx5_ifc_rst2init_qp_out_bits {
3613 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003614 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003615
3616 u8 syndrome[0x20];
3617
Matan Barakb4ff3a32016-02-09 14:57:42 +02003618 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003619};
3620
3621struct mlx5_ifc_rst2init_qp_in_bits {
3622 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003623 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003624
Matan Barakb4ff3a32016-02-09 14:57:42 +02003625 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003626 u8 op_mod[0x10];
3627
Matan Barakb4ff3a32016-02-09 14:57:42 +02003628 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003629 u8 qpn[0x18];
3630
Matan Barakb4ff3a32016-02-09 14:57:42 +02003631 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003632
3633 u8 opt_param_mask[0x20];
3634
Matan Barakb4ff3a32016-02-09 14:57:42 +02003635 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003636
3637 struct mlx5_ifc_qpc_bits qpc;
3638
Matan Barakb4ff3a32016-02-09 14:57:42 +02003639 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03003640};
3641
Saeed Mahameed74862162016-06-09 15:11:34 +03003642struct mlx5_ifc_query_xrq_out_bits {
3643 u8 status[0x8];
3644 u8 reserved_at_8[0x18];
3645
3646 u8 syndrome[0x20];
3647
3648 u8 reserved_at_40[0x40];
3649
3650 struct mlx5_ifc_xrqc_bits xrq_context;
3651};
3652
3653struct mlx5_ifc_query_xrq_in_bits {
3654 u8 opcode[0x10];
3655 u8 reserved_at_10[0x10];
3656
3657 u8 reserved_at_20[0x10];
3658 u8 op_mod[0x10];
3659
3660 u8 reserved_at_40[0x8];
3661 u8 xrqn[0x18];
3662
3663 u8 reserved_at_60[0x20];
3664};
3665
Saeed Mahameede2816822015-05-28 22:28:40 +03003666struct mlx5_ifc_query_xrc_srq_out_bits {
3667 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003668 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003669
3670 u8 syndrome[0x20];
3671
Matan Barakb4ff3a32016-02-09 14:57:42 +02003672 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003673
3674 struct mlx5_ifc_xrc_srqc_bits xrc_srq_context_entry;
3675
Matan Barakb4ff3a32016-02-09 14:57:42 +02003676 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03003677
3678 u8 pas[0][0x40];
3679};
3680
3681struct mlx5_ifc_query_xrc_srq_in_bits {
3682 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003683 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003684
Matan Barakb4ff3a32016-02-09 14:57:42 +02003685 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003686 u8 op_mod[0x10];
3687
Matan Barakb4ff3a32016-02-09 14:57:42 +02003688 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003689 u8 xrc_srqn[0x18];
3690
Matan Barakb4ff3a32016-02-09 14:57:42 +02003691 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003692};
3693
3694enum {
3695 MLX5_QUERY_VPORT_STATE_OUT_STATE_DOWN = 0x0,
3696 MLX5_QUERY_VPORT_STATE_OUT_STATE_UP = 0x1,
3697};
3698
3699struct mlx5_ifc_query_vport_state_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[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003706
Matan Barakb4ff3a32016-02-09 14:57:42 +02003707 u8 reserved_at_60[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003708 u8 admin_state[0x4];
3709 u8 state[0x4];
3710};
3711
3712enum {
3713 MLX5_QUERY_VPORT_STATE_IN_OP_MOD_VNIC_VPORT = 0x0,
Saeed Mahameede7546512015-12-01 18:03:13 +02003714 MLX5_QUERY_VPORT_STATE_IN_OP_MOD_ESW_VPORT = 0x1,
Saeed Mahameede2816822015-05-28 22:28:40 +03003715};
3716
3717struct mlx5_ifc_query_vport_state_in_bits {
3718 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003719 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003720
Matan Barakb4ff3a32016-02-09 14:57:42 +02003721 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003722 u8 op_mod[0x10];
3723
3724 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003725 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03003726 u8 vport_number[0x10];
3727
Matan Barakb4ff3a32016-02-09 14:57:42 +02003728 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003729};
3730
Moshe Shemesh61c5b5c2018-01-07 16:45:27 +02003731struct mlx5_ifc_query_vnic_env_out_bits {
3732 u8 status[0x8];
3733 u8 reserved_at_8[0x18];
3734
3735 u8 syndrome[0x20];
3736
3737 u8 reserved_at_40[0x40];
3738
3739 struct mlx5_ifc_vnic_diagnostic_statistics_bits vport_env;
3740};
3741
3742enum {
3743 MLX5_QUERY_VNIC_ENV_IN_OP_MOD_VPORT_DIAG_STATISTICS = 0x0,
3744};
3745
3746struct mlx5_ifc_query_vnic_env_in_bits {
3747 u8 opcode[0x10];
3748 u8 reserved_at_10[0x10];
3749
3750 u8 reserved_at_20[0x10];
3751 u8 op_mod[0x10];
3752
3753 u8 other_vport[0x1];
3754 u8 reserved_at_41[0xf];
3755 u8 vport_number[0x10];
3756
3757 u8 reserved_at_60[0x20];
3758};
3759
Saeed Mahameede2816822015-05-28 22:28:40 +03003760struct mlx5_ifc_query_vport_counter_out_bits {
3761 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003762 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003763
3764 u8 syndrome[0x20];
3765
Matan Barakb4ff3a32016-02-09 14:57:42 +02003766 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003767
3768 struct mlx5_ifc_traffic_counter_bits received_errors;
3769
3770 struct mlx5_ifc_traffic_counter_bits transmit_errors;
3771
3772 struct mlx5_ifc_traffic_counter_bits received_ib_unicast;
3773
3774 struct mlx5_ifc_traffic_counter_bits transmitted_ib_unicast;
3775
3776 struct mlx5_ifc_traffic_counter_bits received_ib_multicast;
3777
3778 struct mlx5_ifc_traffic_counter_bits transmitted_ib_multicast;
3779
3780 struct mlx5_ifc_traffic_counter_bits received_eth_broadcast;
3781
3782 struct mlx5_ifc_traffic_counter_bits transmitted_eth_broadcast;
3783
3784 struct mlx5_ifc_traffic_counter_bits received_eth_unicast;
3785
3786 struct mlx5_ifc_traffic_counter_bits transmitted_eth_unicast;
3787
3788 struct mlx5_ifc_traffic_counter_bits received_eth_multicast;
3789
3790 struct mlx5_ifc_traffic_counter_bits transmitted_eth_multicast;
3791
Matan Barakb4ff3a32016-02-09 14:57:42 +02003792 u8 reserved_at_680[0xa00];
Saeed Mahameede2816822015-05-28 22:28:40 +03003793};
3794
3795enum {
3796 MLX5_QUERY_VPORT_COUNTER_IN_OP_MOD_VPORT_COUNTERS = 0x0,
3797};
3798
3799struct mlx5_ifc_query_vport_counter_in_bits {
3800 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003801 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003802
Matan Barakb4ff3a32016-02-09 14:57:42 +02003803 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003804 u8 op_mod[0x10];
3805
3806 u8 other_vport[0x1];
Meny Yossefib54ba272016-02-18 18:14:59 +02003807 u8 reserved_at_41[0xb];
3808 u8 port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03003809 u8 vport_number[0x10];
3810
Matan Barakb4ff3a32016-02-09 14:57:42 +02003811 u8 reserved_at_60[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03003812
3813 u8 clear[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003814 u8 reserved_at_c1[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03003815
Matan Barakb4ff3a32016-02-09 14:57:42 +02003816 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003817};
3818
3819struct mlx5_ifc_query_tis_out_bits {
3820 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003821 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003822
3823 u8 syndrome[0x20];
3824
Matan Barakb4ff3a32016-02-09 14:57:42 +02003825 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003826
3827 struct mlx5_ifc_tisc_bits tis_context;
3828};
3829
3830struct mlx5_ifc_query_tis_in_bits {
3831 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003832 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003833
Matan Barakb4ff3a32016-02-09 14:57:42 +02003834 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003835 u8 op_mod[0x10];
3836
Matan Barakb4ff3a32016-02-09 14:57:42 +02003837 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003838 u8 tisn[0x18];
3839
Matan Barakb4ff3a32016-02-09 14:57:42 +02003840 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003841};
3842
3843struct mlx5_ifc_query_tir_out_bits {
3844 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003845 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003846
3847 u8 syndrome[0x20];
3848
Matan Barakb4ff3a32016-02-09 14:57:42 +02003849 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003850
3851 struct mlx5_ifc_tirc_bits tir_context;
3852};
3853
3854struct mlx5_ifc_query_tir_in_bits {
3855 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003856 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003857
Matan Barakb4ff3a32016-02-09 14:57:42 +02003858 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003859 u8 op_mod[0x10];
3860
Matan Barakb4ff3a32016-02-09 14:57:42 +02003861 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003862 u8 tirn[0x18];
3863
Matan Barakb4ff3a32016-02-09 14:57:42 +02003864 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003865};
3866
3867struct mlx5_ifc_query_srq_out_bits {
3868 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003869 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003870
3871 u8 syndrome[0x20];
3872
Matan Barakb4ff3a32016-02-09 14:57:42 +02003873 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003874
3875 struct mlx5_ifc_srqc_bits srq_context_entry;
3876
Matan Barakb4ff3a32016-02-09 14:57:42 +02003877 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03003878
3879 u8 pas[0][0x40];
3880};
3881
3882struct mlx5_ifc_query_srq_in_bits {
3883 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003884 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003885
Matan Barakb4ff3a32016-02-09 14:57:42 +02003886 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003887 u8 op_mod[0x10];
3888
Matan Barakb4ff3a32016-02-09 14:57:42 +02003889 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003890 u8 srqn[0x18];
3891
Matan Barakb4ff3a32016-02-09 14:57:42 +02003892 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003893};
3894
3895struct mlx5_ifc_query_sq_out_bits {
3896 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003897 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003898
3899 u8 syndrome[0x20];
3900
Matan Barakb4ff3a32016-02-09 14:57:42 +02003901 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003902
3903 struct mlx5_ifc_sqc_bits sq_context;
3904};
3905
3906struct mlx5_ifc_query_sq_in_bits {
3907 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003908 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003909
Matan Barakb4ff3a32016-02-09 14:57:42 +02003910 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003911 u8 op_mod[0x10];
3912
Matan Barakb4ff3a32016-02-09 14:57:42 +02003913 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003914 u8 sqn[0x18];
3915
Matan Barakb4ff3a32016-02-09 14:57:42 +02003916 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003917};
3918
3919struct mlx5_ifc_query_special_contexts_out_bits {
3920 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003921 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003922
3923 u8 syndrome[0x20];
3924
Saeed Mahameedec22eb52016-07-16 06:28:36 +03003925 u8 dump_fill_mkey[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003926
3927 u8 resd_lkey[0x20];
Artemy Kovalyovbcda1ac2017-01-02 11:37:41 +02003928
3929 u8 null_mkey[0x20];
3930
3931 u8 reserved_at_a0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03003932};
3933
3934struct mlx5_ifc_query_special_contexts_in_bits {
3935 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003936 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003937
Matan Barakb4ff3a32016-02-09 14:57:42 +02003938 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003939 u8 op_mod[0x10];
3940
Matan Barakb4ff3a32016-02-09 14:57:42 +02003941 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03003942};
3943
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03003944struct mlx5_ifc_query_scheduling_element_out_bits {
3945 u8 opcode[0x10];
3946 u8 reserved_at_10[0x10];
3947
3948 u8 reserved_at_20[0x10];
3949 u8 op_mod[0x10];
3950
3951 u8 reserved_at_40[0xc0];
3952
3953 struct mlx5_ifc_scheduling_context_bits scheduling_context;
3954
3955 u8 reserved_at_300[0x100];
3956};
3957
3958enum {
3959 SCHEDULING_HIERARCHY_E_SWITCH = 0x2,
3960};
3961
3962struct mlx5_ifc_query_scheduling_element_in_bits {
3963 u8 opcode[0x10];
3964 u8 reserved_at_10[0x10];
3965
3966 u8 reserved_at_20[0x10];
3967 u8 op_mod[0x10];
3968
3969 u8 scheduling_hierarchy[0x8];
3970 u8 reserved_at_48[0x18];
3971
3972 u8 scheduling_element_id[0x20];
3973
3974 u8 reserved_at_80[0x180];
3975};
3976
Saeed Mahameede2816822015-05-28 22:28:40 +03003977struct mlx5_ifc_query_rqt_out_bits {
3978 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003979 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03003980
3981 u8 syndrome[0x20];
3982
Matan Barakb4ff3a32016-02-09 14:57:42 +02003983 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03003984
3985 struct mlx5_ifc_rqtc_bits rqt_context;
3986};
3987
3988struct mlx5_ifc_query_rqt_in_bits {
3989 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02003990 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003991
Matan Barakb4ff3a32016-02-09 14:57:42 +02003992 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03003993 u8 op_mod[0x10];
3994
Matan Barakb4ff3a32016-02-09 14:57:42 +02003995 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03003996 u8 rqtn[0x18];
3997
Matan Barakb4ff3a32016-02-09 14:57:42 +02003998 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03003999};
4000
4001struct mlx5_ifc_query_rq_out_bits {
4002 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004003 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004004
4005 u8 syndrome[0x20];
4006
Matan Barakb4ff3a32016-02-09 14:57:42 +02004007 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004008
4009 struct mlx5_ifc_rqc_bits rq_context;
4010};
4011
4012struct mlx5_ifc_query_rq_in_bits {
4013 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004014 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004015
Matan Barakb4ff3a32016-02-09 14:57:42 +02004016 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004017 u8 op_mod[0x10];
4018
Matan Barakb4ff3a32016-02-09 14:57:42 +02004019 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004020 u8 rqn[0x18];
4021
Matan Barakb4ff3a32016-02-09 14:57:42 +02004022 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004023};
4024
4025struct mlx5_ifc_query_roce_address_out_bits {
4026 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004027 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004028
4029 u8 syndrome[0x20];
4030
Matan Barakb4ff3a32016-02-09 14:57:42 +02004031 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004032
4033 struct mlx5_ifc_roce_addr_layout_bits roce_address;
4034};
4035
4036struct mlx5_ifc_query_roce_address_in_bits {
4037 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004038 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004039
Matan Barakb4ff3a32016-02-09 14:57:42 +02004040 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004041 u8 op_mod[0x10];
4042
4043 u8 roce_address_index[0x10];
Daniel Jurgens32f69e42018-01-04 17:25:36 +02004044 u8 reserved_at_50[0xc];
4045 u8 vhca_port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03004046
Matan Barakb4ff3a32016-02-09 14:57:42 +02004047 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004048};
4049
4050struct mlx5_ifc_query_rmp_out_bits {
4051 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004052 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004053
4054 u8 syndrome[0x20];
4055
Matan Barakb4ff3a32016-02-09 14:57:42 +02004056 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004057
4058 struct mlx5_ifc_rmpc_bits rmp_context;
4059};
4060
4061struct mlx5_ifc_query_rmp_in_bits {
4062 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004063 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004064
Matan Barakb4ff3a32016-02-09 14:57:42 +02004065 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004066 u8 op_mod[0x10];
4067
Matan Barakb4ff3a32016-02-09 14:57:42 +02004068 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004069 u8 rmpn[0x18];
4070
Matan Barakb4ff3a32016-02-09 14:57:42 +02004071 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004072};
4073
4074struct mlx5_ifc_query_qp_out_bits {
4075 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004076 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004077
4078 u8 syndrome[0x20];
4079
Matan Barakb4ff3a32016-02-09 14:57:42 +02004080 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004081
4082 u8 opt_param_mask[0x20];
4083
Matan Barakb4ff3a32016-02-09 14:57:42 +02004084 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004085
4086 struct mlx5_ifc_qpc_bits qpc;
4087
Matan Barakb4ff3a32016-02-09 14:57:42 +02004088 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03004089
4090 u8 pas[0][0x40];
4091};
4092
4093struct mlx5_ifc_query_qp_in_bits {
4094 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004095 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004096
Matan Barakb4ff3a32016-02-09 14:57:42 +02004097 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004098 u8 op_mod[0x10];
4099
Matan Barakb4ff3a32016-02-09 14:57:42 +02004100 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004101 u8 qpn[0x18];
4102
Matan Barakb4ff3a32016-02-09 14:57:42 +02004103 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004104};
4105
4106struct mlx5_ifc_query_q_counter_out_bits {
4107 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004108 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004109
4110 u8 syndrome[0x20];
4111
Matan Barakb4ff3a32016-02-09 14:57:42 +02004112 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004113
4114 u8 rx_write_requests[0x20];
4115
Matan Barakb4ff3a32016-02-09 14:57:42 +02004116 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004117
4118 u8 rx_read_requests[0x20];
4119
Matan Barakb4ff3a32016-02-09 14:57:42 +02004120 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004121
4122 u8 rx_atomic_requests[0x20];
4123
Matan Barakb4ff3a32016-02-09 14:57:42 +02004124 u8 reserved_at_120[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004125
4126 u8 rx_dct_connect[0x20];
4127
Matan Barakb4ff3a32016-02-09 14:57:42 +02004128 u8 reserved_at_160[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004129
4130 u8 out_of_buffer[0x20];
4131
Matan Barakb4ff3a32016-02-09 14:57:42 +02004132 u8 reserved_at_1a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004133
4134 u8 out_of_sequence[0x20];
4135
Saeed Mahameed74862162016-06-09 15:11:34 +03004136 u8 reserved_at_1e0[0x20];
4137
4138 u8 duplicate_request[0x20];
4139
4140 u8 reserved_at_220[0x20];
4141
4142 u8 rnr_nak_retry_err[0x20];
4143
4144 u8 reserved_at_260[0x20];
4145
4146 u8 packet_seq_err[0x20];
4147
4148 u8 reserved_at_2a0[0x20];
4149
4150 u8 implied_nak_seq_err[0x20];
4151
4152 u8 reserved_at_2e0[0x20];
4153
4154 u8 local_ack_timeout_err[0x20];
4155
Parav Pandit58dcb602017-06-19 07:19:37 +03004156 u8 reserved_at_320[0xa0];
4157
4158 u8 resp_local_length_error[0x20];
4159
4160 u8 req_local_length_error[0x20];
4161
4162 u8 resp_local_qp_error[0x20];
4163
4164 u8 local_operation_error[0x20];
4165
4166 u8 resp_local_protection[0x20];
4167
4168 u8 req_local_protection[0x20];
4169
4170 u8 resp_cqe_error[0x20];
4171
4172 u8 req_cqe_error[0x20];
4173
4174 u8 req_mw_binding[0x20];
4175
4176 u8 req_bad_response[0x20];
4177
4178 u8 req_remote_invalid_request[0x20];
4179
4180 u8 resp_remote_invalid_request[0x20];
4181
4182 u8 req_remote_access_errors[0x20];
4183
4184 u8 resp_remote_access_errors[0x20];
4185
4186 u8 req_remote_operation_errors[0x20];
4187
4188 u8 req_transport_retries_exceeded[0x20];
4189
4190 u8 cq_overflow[0x20];
4191
4192 u8 resp_cqe_flush_error[0x20];
4193
4194 u8 req_cqe_flush_error[0x20];
4195
4196 u8 reserved_at_620[0x1e0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004197};
4198
4199struct mlx5_ifc_query_q_counter_in_bits {
4200 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004201 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004202
Matan Barakb4ff3a32016-02-09 14:57:42 +02004203 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004204 u8 op_mod[0x10];
4205
Matan Barakb4ff3a32016-02-09 14:57:42 +02004206 u8 reserved_at_40[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03004207
4208 u8 clear[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004209 u8 reserved_at_c1[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03004210
Matan Barakb4ff3a32016-02-09 14:57:42 +02004211 u8 reserved_at_e0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004212 u8 counter_set_id[0x8];
4213};
4214
4215struct mlx5_ifc_query_pages_out_bits {
4216 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004217 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004218
4219 u8 syndrome[0x20];
4220
Matan Barakb4ff3a32016-02-09 14:57:42 +02004221 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004222 u8 function_id[0x10];
4223
4224 u8 num_pages[0x20];
4225};
4226
4227enum {
4228 MLX5_QUERY_PAGES_IN_OP_MOD_BOOT_PAGES = 0x1,
4229 MLX5_QUERY_PAGES_IN_OP_MOD_INIT_PAGES = 0x2,
4230 MLX5_QUERY_PAGES_IN_OP_MOD_REGULAR_PAGES = 0x3,
4231};
4232
4233struct mlx5_ifc_query_pages_in_bits {
4234 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004235 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004236
Matan Barakb4ff3a32016-02-09 14:57:42 +02004237 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004238 u8 op_mod[0x10];
4239
Matan Barakb4ff3a32016-02-09 14:57:42 +02004240 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004241 u8 function_id[0x10];
4242
Matan Barakb4ff3a32016-02-09 14:57:42 +02004243 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004244};
4245
4246struct mlx5_ifc_query_nic_vport_context_out_bits {
4247 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004248 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004249
4250 u8 syndrome[0x20];
4251
Matan Barakb4ff3a32016-02-09 14:57:42 +02004252 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004253
4254 struct mlx5_ifc_nic_vport_context_bits nic_vport_context;
4255};
4256
4257struct mlx5_ifc_query_nic_vport_context_in_bits {
4258 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004259 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004260
Matan Barakb4ff3a32016-02-09 14:57:42 +02004261 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004262 u8 op_mod[0x10];
4263
4264 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004265 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03004266 u8 vport_number[0x10];
4267
Matan Barakb4ff3a32016-02-09 14:57:42 +02004268 u8 reserved_at_60[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03004269 u8 allowed_list_type[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004270 u8 reserved_at_68[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004271};
4272
4273struct mlx5_ifc_query_mkey_out_bits {
4274 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004275 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004276
4277 u8 syndrome[0x20];
4278
Matan Barakb4ff3a32016-02-09 14:57:42 +02004279 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004280
4281 struct mlx5_ifc_mkc_bits memory_key_mkey_entry;
4282
Matan Barakb4ff3a32016-02-09 14:57:42 +02004283 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03004284
4285 u8 bsf0_klm0_pas_mtt0_1[16][0x8];
4286
4287 u8 bsf1_klm1_pas_mtt2_3[16][0x8];
4288};
4289
4290struct mlx5_ifc_query_mkey_in_bits {
4291 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004292 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004293
Matan Barakb4ff3a32016-02-09 14:57:42 +02004294 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004295 u8 op_mod[0x10];
4296
Matan Barakb4ff3a32016-02-09 14:57:42 +02004297 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004298 u8 mkey_index[0x18];
4299
4300 u8 pg_access[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004301 u8 reserved_at_61[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03004302};
4303
4304struct mlx5_ifc_query_mad_demux_out_bits {
4305 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004306 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004307
4308 u8 syndrome[0x20];
4309
Matan Barakb4ff3a32016-02-09 14:57:42 +02004310 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004311
4312 u8 mad_dumux_parameters_block[0x20];
4313};
4314
4315struct mlx5_ifc_query_mad_demux_in_bits {
4316 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004317 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004318
Matan Barakb4ff3a32016-02-09 14:57:42 +02004319 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004320 u8 op_mod[0x10];
4321
Matan Barakb4ff3a32016-02-09 14:57:42 +02004322 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004323};
4324
4325struct mlx5_ifc_query_l2_table_entry_out_bits {
4326 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004327 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004328
4329 u8 syndrome[0x20];
4330
Matan Barakb4ff3a32016-02-09 14:57:42 +02004331 u8 reserved_at_40[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004332
Matan Barakb4ff3a32016-02-09 14:57:42 +02004333 u8 reserved_at_e0[0x13];
Saeed Mahameede2816822015-05-28 22:28:40 +03004334 u8 vlan_valid[0x1];
4335 u8 vlan[0xc];
4336
4337 struct mlx5_ifc_mac_address_layout_bits mac_address;
4338
Matan Barakb4ff3a32016-02-09 14:57:42 +02004339 u8 reserved_at_140[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004340};
4341
4342struct mlx5_ifc_query_l2_table_entry_in_bits {
4343 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004344 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004345
Matan Barakb4ff3a32016-02-09 14:57:42 +02004346 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004347 u8 op_mod[0x10];
4348
Matan Barakb4ff3a32016-02-09 14:57:42 +02004349 u8 reserved_at_40[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03004350
Matan Barakb4ff3a32016-02-09 14:57:42 +02004351 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004352 u8 table_index[0x18];
4353
Matan Barakb4ff3a32016-02-09 14:57:42 +02004354 u8 reserved_at_c0[0x140];
Saeed Mahameede2816822015-05-28 22:28:40 +03004355};
4356
4357struct mlx5_ifc_query_issi_out_bits {
4358 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004359 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004360
4361 u8 syndrome[0x20];
4362
Matan Barakb4ff3a32016-02-09 14:57:42 +02004363 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004364 u8 current_issi[0x10];
4365
Matan Barakb4ff3a32016-02-09 14:57:42 +02004366 u8 reserved_at_60[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004367
Matan Barakb4ff3a32016-02-09 14:57:42 +02004368 u8 reserved_at_100[76][0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004369 u8 supported_issi_dw0[0x20];
4370};
4371
4372struct mlx5_ifc_query_issi_in_bits {
4373 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004374 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004375
Matan Barakb4ff3a32016-02-09 14:57:42 +02004376 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004377 u8 op_mod[0x10];
4378
Matan Barakb4ff3a32016-02-09 14:57:42 +02004379 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004380};
4381
Saeed Mahameed0dbc6fe2016-11-17 13:45:59 +02004382struct mlx5_ifc_set_driver_version_out_bits {
4383 u8 status[0x8];
4384 u8 reserved_0[0x18];
4385
4386 u8 syndrome[0x20];
4387 u8 reserved_1[0x40];
4388};
4389
4390struct mlx5_ifc_set_driver_version_in_bits {
4391 u8 opcode[0x10];
4392 u8 reserved_0[0x10];
4393
4394 u8 reserved_1[0x10];
4395 u8 op_mod[0x10];
4396
4397 u8 reserved_2[0x40];
4398 u8 driver_version[64][0x8];
4399};
4400
Saeed Mahameede2816822015-05-28 22:28:40 +03004401struct mlx5_ifc_query_hca_vport_pkey_out_bits {
4402 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004403 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004404
4405 u8 syndrome[0x20];
4406
Matan Barakb4ff3a32016-02-09 14:57:42 +02004407 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004408
4409 struct mlx5_ifc_pkey_bits pkey[0];
4410};
4411
4412struct mlx5_ifc_query_hca_vport_pkey_in_bits {
4413 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004414 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004415
Matan Barakb4ff3a32016-02-09 14:57:42 +02004416 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004417 u8 op_mod[0x10];
4418
4419 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004420 u8 reserved_at_41[0xb];
Majd Dibbiny707c4602015-06-04 19:30:41 +03004421 u8 port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03004422 u8 vport_number[0x10];
4423
Matan Barakb4ff3a32016-02-09 14:57:42 +02004424 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004425 u8 pkey_index[0x10];
4426};
4427
Eli Coheneff901d2016-03-11 22:58:42 +02004428enum {
4429 MLX5_HCA_VPORT_SEL_PORT_GUID = 1 << 0,
4430 MLX5_HCA_VPORT_SEL_NODE_GUID = 1 << 1,
4431 MLX5_HCA_VPORT_SEL_STATE_POLICY = 1 << 2,
4432};
4433
Saeed Mahameede2816822015-05-28 22:28:40 +03004434struct mlx5_ifc_query_hca_vport_gid_out_bits {
4435 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004436 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004437
4438 u8 syndrome[0x20];
4439
Matan Barakb4ff3a32016-02-09 14:57:42 +02004440 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004441
4442 u8 gids_num[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004443 u8 reserved_at_70[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004444
4445 struct mlx5_ifc_array128_auto_bits gid[0];
4446};
4447
4448struct mlx5_ifc_query_hca_vport_gid_in_bits {
4449 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004450 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004451
Matan Barakb4ff3a32016-02-09 14:57:42 +02004452 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004453 u8 op_mod[0x10];
4454
4455 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004456 u8 reserved_at_41[0xb];
Majd Dibbiny707c4602015-06-04 19:30:41 +03004457 u8 port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03004458 u8 vport_number[0x10];
4459
Matan Barakb4ff3a32016-02-09 14:57:42 +02004460 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004461 u8 gid_index[0x10];
4462};
4463
4464struct mlx5_ifc_query_hca_vport_context_out_bits {
4465 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004466 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004467
4468 u8 syndrome[0x20];
4469
Matan Barakb4ff3a32016-02-09 14:57:42 +02004470 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004471
4472 struct mlx5_ifc_hca_vport_context_bits hca_vport_context;
4473};
4474
4475struct mlx5_ifc_query_hca_vport_context_in_bits {
4476 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004477 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004478
Matan Barakb4ff3a32016-02-09 14:57:42 +02004479 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004480 u8 op_mod[0x10];
4481
4482 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004483 u8 reserved_at_41[0xb];
Majd Dibbiny707c4602015-06-04 19:30:41 +03004484 u8 port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03004485 u8 vport_number[0x10];
4486
Matan Barakb4ff3a32016-02-09 14:57:42 +02004487 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004488};
4489
4490struct mlx5_ifc_query_hca_cap_out_bits {
4491 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004492 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004493
4494 u8 syndrome[0x20];
4495
Matan Barakb4ff3a32016-02-09 14:57:42 +02004496 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004497
4498 union mlx5_ifc_hca_cap_union_bits capability;
Eli Cohenb7755162014-10-02 12:19:44 +03004499};
4500
4501struct mlx5_ifc_query_hca_cap_in_bits {
4502 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004503 u8 reserved_at_10[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03004504
Matan Barakb4ff3a32016-02-09 14:57:42 +02004505 u8 reserved_at_20[0x10];
Eli Cohenb7755162014-10-02 12:19:44 +03004506 u8 op_mod[0x10];
4507
Matan Barakb4ff3a32016-02-09 14:57:42 +02004508 u8 reserved_at_40[0x40];
Eli Cohenb7755162014-10-02 12:19:44 +03004509};
4510
Saeed Mahameede2816822015-05-28 22:28:40 +03004511struct mlx5_ifc_query_flow_table_out_bits {
Eli Cohenb7755162014-10-02 12:19:44 +03004512 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004513 u8 reserved_at_8[0x18];
Eli Cohenb7755162014-10-02 12:19:44 +03004514
4515 u8 syndrome[0x20];
4516
Matan Barakb4ff3a32016-02-09 14:57:42 +02004517 u8 reserved_at_40[0x80];
Eli Cohenb7755162014-10-02 12:19:44 +03004518
Matan Barakb4ff3a32016-02-09 14:57:42 +02004519 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004520 u8 level[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004521 u8 reserved_at_d0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004522 u8 log_size[0x8];
4523
Matan Barakb4ff3a32016-02-09 14:57:42 +02004524 u8 reserved_at_e0[0x120];
Eli Cohenb7755162014-10-02 12:19:44 +03004525};
4526
Saeed Mahameede2816822015-05-28 22:28:40 +03004527struct mlx5_ifc_query_flow_table_in_bits {
4528 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004529 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004530
Matan Barakb4ff3a32016-02-09 14:57:42 +02004531 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004532 u8 op_mod[0x10];
4533
Matan Barakb4ff3a32016-02-09 14:57:42 +02004534 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004535
4536 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004537 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004538
Matan Barakb4ff3a32016-02-09 14:57:42 +02004539 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004540 u8 table_id[0x18];
4541
Matan Barakb4ff3a32016-02-09 14:57:42 +02004542 u8 reserved_at_c0[0x140];
Saeed Mahameede2816822015-05-28 22:28:40 +03004543};
4544
4545struct mlx5_ifc_query_fte_out_bits {
4546 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004547 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004548
4549 u8 syndrome[0x20];
4550
Matan Barakb4ff3a32016-02-09 14:57:42 +02004551 u8 reserved_at_40[0x1c0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004552
4553 struct mlx5_ifc_flow_context_bits flow_context;
4554};
4555
4556struct mlx5_ifc_query_fte_in_bits {
4557 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004558 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004559
Matan Barakb4ff3a32016-02-09 14:57:42 +02004560 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004561 u8 op_mod[0x10];
4562
Matan Barakb4ff3a32016-02-09 14:57:42 +02004563 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004564
4565 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004566 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004567
Matan Barakb4ff3a32016-02-09 14:57:42 +02004568 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004569 u8 table_id[0x18];
4570
Matan Barakb4ff3a32016-02-09 14:57:42 +02004571 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004572
4573 u8 flow_index[0x20];
4574
Matan Barakb4ff3a32016-02-09 14:57:42 +02004575 u8 reserved_at_120[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004576};
4577
4578enum {
4579 MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_OUTER_HEADERS = 0x0,
4580 MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS = 0x1,
4581 MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_INNER_HEADERS = 0x2,
4582};
4583
4584struct mlx5_ifc_query_flow_group_out_bits {
4585 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004586 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004587
4588 u8 syndrome[0x20];
4589
Matan Barakb4ff3a32016-02-09 14:57:42 +02004590 u8 reserved_at_40[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004591
4592 u8 start_flow_index[0x20];
4593
Matan Barakb4ff3a32016-02-09 14:57:42 +02004594 u8 reserved_at_100[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004595
4596 u8 end_flow_index[0x20];
4597
Matan Barakb4ff3a32016-02-09 14:57:42 +02004598 u8 reserved_at_140[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03004599
Matan Barakb4ff3a32016-02-09 14:57:42 +02004600 u8 reserved_at_1e0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004601 u8 match_criteria_enable[0x8];
4602
4603 struct mlx5_ifc_fte_match_param_bits match_criteria;
4604
Matan Barakb4ff3a32016-02-09 14:57:42 +02004605 u8 reserved_at_1200[0xe00];
Saeed Mahameede2816822015-05-28 22:28:40 +03004606};
4607
4608struct mlx5_ifc_query_flow_group_in_bits {
4609 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004610 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004611
Matan Barakb4ff3a32016-02-09 14:57:42 +02004612 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004613 u8 op_mod[0x10];
4614
Matan Barakb4ff3a32016-02-09 14:57:42 +02004615 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004616
4617 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004618 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004619
Matan Barakb4ff3a32016-02-09 14:57:42 +02004620 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004621 u8 table_id[0x18];
4622
4623 u8 group_id[0x20];
4624
Matan Barakb4ff3a32016-02-09 14:57:42 +02004625 u8 reserved_at_e0[0x120];
Saeed Mahameede2816822015-05-28 22:28:40 +03004626};
4627
Amir Vadai9dc0b282016-05-13 12:55:39 +00004628struct mlx5_ifc_query_flow_counter_out_bits {
4629 u8 status[0x8];
4630 u8 reserved_at_8[0x18];
4631
4632 u8 syndrome[0x20];
4633
4634 u8 reserved_at_40[0x40];
4635
4636 struct mlx5_ifc_traffic_counter_bits flow_statistics[0];
4637};
4638
4639struct mlx5_ifc_query_flow_counter_in_bits {
4640 u8 opcode[0x10];
4641 u8 reserved_at_10[0x10];
4642
4643 u8 reserved_at_20[0x10];
4644 u8 op_mod[0x10];
4645
4646 u8 reserved_at_40[0x80];
4647
4648 u8 clear[0x1];
4649 u8 reserved_at_c1[0xf];
4650 u8 num_of_counters[0x10];
4651
Rabie Louloua8ffcc72017-07-09 13:39:30 +03004652 u8 flow_counter_id[0x20];
Amir Vadai9dc0b282016-05-13 12:55:39 +00004653};
4654
Saeed Mahameedd6666752015-12-01 18:03:22 +02004655struct mlx5_ifc_query_esw_vport_context_out_bits {
4656 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004657 u8 reserved_at_8[0x18];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004658
4659 u8 syndrome[0x20];
4660
Matan Barakb4ff3a32016-02-09 14:57:42 +02004661 u8 reserved_at_40[0x40];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004662
4663 struct mlx5_ifc_esw_vport_context_bits esw_vport_context;
4664};
4665
4666struct mlx5_ifc_query_esw_vport_context_in_bits {
4667 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004668 u8 reserved_at_10[0x10];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004669
Matan Barakb4ff3a32016-02-09 14:57:42 +02004670 u8 reserved_at_20[0x10];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004671 u8 op_mod[0x10];
4672
4673 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004674 u8 reserved_at_41[0xf];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004675 u8 vport_number[0x10];
4676
Matan Barakb4ff3a32016-02-09 14:57:42 +02004677 u8 reserved_at_60[0x20];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004678};
4679
4680struct mlx5_ifc_modify_esw_vport_context_out_bits {
4681 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004682 u8 reserved_at_8[0x18];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004683
4684 u8 syndrome[0x20];
4685
Matan Barakb4ff3a32016-02-09 14:57:42 +02004686 u8 reserved_at_40[0x40];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004687};
4688
4689struct mlx5_ifc_esw_vport_context_fields_select_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02004690 u8 reserved_at_0[0x1c];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004691 u8 vport_cvlan_insert[0x1];
4692 u8 vport_svlan_insert[0x1];
4693 u8 vport_cvlan_strip[0x1];
4694 u8 vport_svlan_strip[0x1];
4695};
4696
4697struct mlx5_ifc_modify_esw_vport_context_in_bits {
4698 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004699 u8 reserved_at_10[0x10];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004700
Matan Barakb4ff3a32016-02-09 14:57:42 +02004701 u8 reserved_at_20[0x10];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004702 u8 op_mod[0x10];
4703
4704 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004705 u8 reserved_at_41[0xf];
Saeed Mahameedd6666752015-12-01 18:03:22 +02004706 u8 vport_number[0x10];
4707
4708 struct mlx5_ifc_esw_vport_context_fields_select_bits field_select;
4709
4710 struct mlx5_ifc_esw_vport_context_bits esw_vport_context;
4711};
4712
Saeed Mahameede2816822015-05-28 22:28:40 +03004713struct mlx5_ifc_query_eq_out_bits {
Eli Cohenb7755162014-10-02 12:19:44 +03004714 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004715 u8 reserved_at_8[0x18];
Eli Cohenb7755162014-10-02 12:19:44 +03004716
4717 u8 syndrome[0x20];
4718
Matan Barakb4ff3a32016-02-09 14:57:42 +02004719 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004720
4721 struct mlx5_ifc_eqc_bits eq_context_entry;
4722
Matan Barakb4ff3a32016-02-09 14:57:42 +02004723 u8 reserved_at_280[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004724
4725 u8 event_bitmask[0x40];
4726
Matan Barakb4ff3a32016-02-09 14:57:42 +02004727 u8 reserved_at_300[0x580];
Saeed Mahameede2816822015-05-28 22:28:40 +03004728
4729 u8 pas[0][0x40];
4730};
4731
4732struct mlx5_ifc_query_eq_in_bits {
4733 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004734 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004735
Matan Barakb4ff3a32016-02-09 14:57:42 +02004736 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004737 u8 op_mod[0x10];
4738
Matan Barakb4ff3a32016-02-09 14:57:42 +02004739 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004740 u8 eq_number[0x8];
4741
Matan Barakb4ff3a32016-02-09 14:57:42 +02004742 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004743};
4744
Hadar Hen Zion7adbde22016-08-03 15:08:33 +03004745struct mlx5_ifc_encap_header_in_bits {
4746 u8 reserved_at_0[0x5];
4747 u8 header_type[0x3];
4748 u8 reserved_at_8[0xe];
4749 u8 encap_header_size[0xa];
4750
4751 u8 reserved_at_20[0x10];
4752 u8 encap_header[2][0x8];
4753
4754 u8 more_encap_header[0][0x8];
4755};
4756
4757struct mlx5_ifc_query_encap_header_out_bits {
4758 u8 status[0x8];
4759 u8 reserved_at_8[0x18];
4760
4761 u8 syndrome[0x20];
4762
4763 u8 reserved_at_40[0xa0];
4764
4765 struct mlx5_ifc_encap_header_in_bits encap_header[0];
4766};
4767
4768struct mlx5_ifc_query_encap_header_in_bits {
4769 u8 opcode[0x10];
4770 u8 reserved_at_10[0x10];
4771
4772 u8 reserved_at_20[0x10];
4773 u8 op_mod[0x10];
4774
4775 u8 encap_id[0x20];
4776
4777 u8 reserved_at_60[0xa0];
4778};
4779
4780struct mlx5_ifc_alloc_encap_header_out_bits {
4781 u8 status[0x8];
4782 u8 reserved_at_8[0x18];
4783
4784 u8 syndrome[0x20];
4785
4786 u8 encap_id[0x20];
4787
4788 u8 reserved_at_60[0x20];
4789};
4790
4791struct mlx5_ifc_alloc_encap_header_in_bits {
4792 u8 opcode[0x10];
4793 u8 reserved_at_10[0x10];
4794
4795 u8 reserved_at_20[0x10];
4796 u8 op_mod[0x10];
4797
4798 u8 reserved_at_40[0xa0];
4799
4800 struct mlx5_ifc_encap_header_in_bits encap_header;
4801};
4802
4803struct mlx5_ifc_dealloc_encap_header_out_bits {
4804 u8 status[0x8];
4805 u8 reserved_at_8[0x18];
4806
4807 u8 syndrome[0x20];
4808
4809 u8 reserved_at_40[0x40];
4810};
4811
4812struct mlx5_ifc_dealloc_encap_header_in_bits {
4813 u8 opcode[0x10];
4814 u8 reserved_at_10[0x10];
4815
4816 u8 reserved_20[0x10];
4817 u8 op_mod[0x10];
4818
4819 u8 encap_id[0x20];
4820
4821 u8 reserved_60[0x20];
4822};
4823
Or Gerlitz2a69cb92017-01-19 19:31:25 +02004824struct mlx5_ifc_set_action_in_bits {
4825 u8 action_type[0x4];
4826 u8 field[0xc];
4827 u8 reserved_at_10[0x3];
4828 u8 offset[0x5];
4829 u8 reserved_at_18[0x3];
4830 u8 length[0x5];
4831
4832 u8 data[0x20];
4833};
4834
4835struct mlx5_ifc_add_action_in_bits {
4836 u8 action_type[0x4];
4837 u8 field[0xc];
4838 u8 reserved_at_10[0x10];
4839
4840 u8 data[0x20];
4841};
4842
4843union mlx5_ifc_set_action_in_add_action_in_auto_bits {
4844 struct mlx5_ifc_set_action_in_bits set_action_in;
4845 struct mlx5_ifc_add_action_in_bits add_action_in;
4846 u8 reserved_at_0[0x40];
4847};
4848
4849enum {
4850 MLX5_ACTION_TYPE_SET = 0x1,
4851 MLX5_ACTION_TYPE_ADD = 0x2,
4852};
4853
4854enum {
4855 MLX5_ACTION_IN_FIELD_OUT_SMAC_47_16 = 0x1,
4856 MLX5_ACTION_IN_FIELD_OUT_SMAC_15_0 = 0x2,
4857 MLX5_ACTION_IN_FIELD_OUT_ETHERTYPE = 0x3,
4858 MLX5_ACTION_IN_FIELD_OUT_DMAC_47_16 = 0x4,
4859 MLX5_ACTION_IN_FIELD_OUT_DMAC_15_0 = 0x5,
4860 MLX5_ACTION_IN_FIELD_OUT_IP_DSCP = 0x6,
4861 MLX5_ACTION_IN_FIELD_OUT_TCP_FLAGS = 0x7,
4862 MLX5_ACTION_IN_FIELD_OUT_TCP_SPORT = 0x8,
4863 MLX5_ACTION_IN_FIELD_OUT_TCP_DPORT = 0x9,
4864 MLX5_ACTION_IN_FIELD_OUT_IP_TTL = 0xa,
4865 MLX5_ACTION_IN_FIELD_OUT_UDP_SPORT = 0xb,
4866 MLX5_ACTION_IN_FIELD_OUT_UDP_DPORT = 0xc,
4867 MLX5_ACTION_IN_FIELD_OUT_SIPV6_127_96 = 0xd,
4868 MLX5_ACTION_IN_FIELD_OUT_SIPV6_95_64 = 0xe,
4869 MLX5_ACTION_IN_FIELD_OUT_SIPV6_63_32 = 0xf,
4870 MLX5_ACTION_IN_FIELD_OUT_SIPV6_31_0 = 0x10,
4871 MLX5_ACTION_IN_FIELD_OUT_DIPV6_127_96 = 0x11,
4872 MLX5_ACTION_IN_FIELD_OUT_DIPV6_95_64 = 0x12,
4873 MLX5_ACTION_IN_FIELD_OUT_DIPV6_63_32 = 0x13,
4874 MLX5_ACTION_IN_FIELD_OUT_DIPV6_31_0 = 0x14,
4875 MLX5_ACTION_IN_FIELD_OUT_SIPV4 = 0x15,
4876 MLX5_ACTION_IN_FIELD_OUT_DIPV4 = 0x16,
Or Gerlitz0c0316f2017-06-13 11:09:57 +03004877 MLX5_ACTION_IN_FIELD_OUT_IPV6_HOPLIMIT = 0x47,
Or Gerlitz2a69cb92017-01-19 19:31:25 +02004878};
4879
4880struct mlx5_ifc_alloc_modify_header_context_out_bits {
4881 u8 status[0x8];
4882 u8 reserved_at_8[0x18];
4883
4884 u8 syndrome[0x20];
4885
4886 u8 modify_header_id[0x20];
4887
4888 u8 reserved_at_60[0x20];
4889};
4890
4891struct mlx5_ifc_alloc_modify_header_context_in_bits {
4892 u8 opcode[0x10];
4893 u8 reserved_at_10[0x10];
4894
4895 u8 reserved_at_20[0x10];
4896 u8 op_mod[0x10];
4897
4898 u8 reserved_at_40[0x20];
4899
4900 u8 table_type[0x8];
4901 u8 reserved_at_68[0x10];
4902 u8 num_of_actions[0x8];
4903
4904 union mlx5_ifc_set_action_in_add_action_in_auto_bits actions[0];
4905};
4906
4907struct mlx5_ifc_dealloc_modify_header_context_out_bits {
4908 u8 status[0x8];
4909 u8 reserved_at_8[0x18];
4910
4911 u8 syndrome[0x20];
4912
4913 u8 reserved_at_40[0x40];
4914};
4915
4916struct mlx5_ifc_dealloc_modify_header_context_in_bits {
4917 u8 opcode[0x10];
4918 u8 reserved_at_10[0x10];
4919
4920 u8 reserved_at_20[0x10];
4921 u8 op_mod[0x10];
4922
4923 u8 modify_header_id[0x20];
4924
4925 u8 reserved_at_60[0x20];
4926};
4927
Saeed Mahameede2816822015-05-28 22:28:40 +03004928struct mlx5_ifc_query_dct_out_bits {
4929 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004930 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004931
4932 u8 syndrome[0x20];
4933
Matan Barakb4ff3a32016-02-09 14:57:42 +02004934 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004935
4936 struct mlx5_ifc_dctc_bits dct_context_entry;
4937
Matan Barakb4ff3a32016-02-09 14:57:42 +02004938 u8 reserved_at_280[0x180];
Saeed Mahameede2816822015-05-28 22:28:40 +03004939};
4940
4941struct mlx5_ifc_query_dct_in_bits {
4942 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004943 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004944
Matan Barakb4ff3a32016-02-09 14:57:42 +02004945 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004946 u8 op_mod[0x10];
4947
Matan Barakb4ff3a32016-02-09 14:57:42 +02004948 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004949 u8 dctn[0x18];
4950
Matan Barakb4ff3a32016-02-09 14:57:42 +02004951 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004952};
4953
4954struct mlx5_ifc_query_cq_out_bits {
4955 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004956 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004957
4958 u8 syndrome[0x20];
4959
Matan Barakb4ff3a32016-02-09 14:57:42 +02004960 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03004961
4962 struct mlx5_ifc_cqc_bits cq_context;
4963
Matan Barakb4ff3a32016-02-09 14:57:42 +02004964 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03004965
4966 u8 pas[0][0x40];
4967};
4968
4969struct mlx5_ifc_query_cq_in_bits {
4970 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004971 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004972
Matan Barakb4ff3a32016-02-09 14:57:42 +02004973 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004974 u8 op_mod[0x10];
4975
Matan Barakb4ff3a32016-02-09 14:57:42 +02004976 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03004977 u8 cqn[0x18];
4978
Matan Barakb4ff3a32016-02-09 14:57:42 +02004979 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004980};
4981
4982struct mlx5_ifc_query_cong_status_out_bits {
4983 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004984 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03004985
4986 u8 syndrome[0x20];
4987
Matan Barakb4ff3a32016-02-09 14:57:42 +02004988 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03004989
4990 u8 enable[0x1];
4991 u8 tag_enable[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004992 u8 reserved_at_62[0x1e];
Saeed Mahameede2816822015-05-28 22:28:40 +03004993};
4994
4995struct mlx5_ifc_query_cong_status_in_bits {
4996 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02004997 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03004998
Matan Barakb4ff3a32016-02-09 14:57:42 +02004999 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005000 u8 op_mod[0x10];
5001
Matan Barakb4ff3a32016-02-09 14:57:42 +02005002 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005003 u8 priority[0x4];
5004 u8 cong_protocol[0x4];
5005
Matan Barakb4ff3a32016-02-09 14:57:42 +02005006 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005007};
5008
5009struct mlx5_ifc_query_cong_statistics_out_bits {
5010 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005011 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005012
5013 u8 syndrome[0x20];
5014
Matan Barakb4ff3a32016-02-09 14:57:42 +02005015 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005016
Parav Pandite1f24a72017-04-16 07:29:29 +03005017 u8 rp_cur_flows[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005018
5019 u8 sum_flows[0x20];
5020
Parav Pandite1f24a72017-04-16 07:29:29 +03005021 u8 rp_cnp_ignored_high[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005022
Parav Pandite1f24a72017-04-16 07:29:29 +03005023 u8 rp_cnp_ignored_low[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005024
Parav Pandite1f24a72017-04-16 07:29:29 +03005025 u8 rp_cnp_handled_high[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005026
Parav Pandite1f24a72017-04-16 07:29:29 +03005027 u8 rp_cnp_handled_low[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005028
Matan Barakb4ff3a32016-02-09 14:57:42 +02005029 u8 reserved_at_140[0x100];
Saeed Mahameede2816822015-05-28 22:28:40 +03005030
5031 u8 time_stamp_high[0x20];
5032
5033 u8 time_stamp_low[0x20];
5034
5035 u8 accumulators_period[0x20];
5036
Parav Pandite1f24a72017-04-16 07:29:29 +03005037 u8 np_ecn_marked_roce_packets_high[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005038
Parav Pandite1f24a72017-04-16 07:29:29 +03005039 u8 np_ecn_marked_roce_packets_low[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005040
Parav Pandite1f24a72017-04-16 07:29:29 +03005041 u8 np_cnp_sent_high[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005042
Parav Pandite1f24a72017-04-16 07:29:29 +03005043 u8 np_cnp_sent_low[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005044
Matan Barakb4ff3a32016-02-09 14:57:42 +02005045 u8 reserved_at_320[0x560];
Saeed Mahameede2816822015-05-28 22:28:40 +03005046};
5047
5048struct mlx5_ifc_query_cong_statistics_in_bits {
5049 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005050 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005051
Matan Barakb4ff3a32016-02-09 14:57:42 +02005052 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005053 u8 op_mod[0x10];
5054
5055 u8 clear[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005056 u8 reserved_at_41[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03005057
Matan Barakb4ff3a32016-02-09 14:57:42 +02005058 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005059};
5060
5061struct mlx5_ifc_query_cong_params_out_bits {
5062 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005063 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005064
5065 u8 syndrome[0x20];
5066
Matan Barakb4ff3a32016-02-09 14:57:42 +02005067 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005068
5069 union mlx5_ifc_cong_control_roce_ecn_auto_bits congestion_parameters;
5070};
5071
5072struct mlx5_ifc_query_cong_params_in_bits {
5073 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005074 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005075
Matan Barakb4ff3a32016-02-09 14:57:42 +02005076 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005077 u8 op_mod[0x10];
5078
Matan Barakb4ff3a32016-02-09 14:57:42 +02005079 u8 reserved_at_40[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03005080 u8 cong_protocol[0x4];
5081
Matan Barakb4ff3a32016-02-09 14:57:42 +02005082 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005083};
5084
5085struct mlx5_ifc_query_adapter_out_bits {
5086 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005087 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005088
5089 u8 syndrome[0x20];
5090
Matan Barakb4ff3a32016-02-09 14:57:42 +02005091 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005092
5093 struct mlx5_ifc_query_adapter_param_block_bits query_adapter_struct;
5094};
5095
5096struct mlx5_ifc_query_adapter_in_bits {
5097 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005098 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005099
Matan Barakb4ff3a32016-02-09 14:57:42 +02005100 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005101 u8 op_mod[0x10];
5102
Matan Barakb4ff3a32016-02-09 14:57:42 +02005103 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005104};
5105
5106struct mlx5_ifc_qp_2rst_out_bits {
5107 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005108 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005109
5110 u8 syndrome[0x20];
5111
Matan Barakb4ff3a32016-02-09 14:57:42 +02005112 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005113};
5114
5115struct mlx5_ifc_qp_2rst_in_bits {
5116 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005117 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005118
Matan Barakb4ff3a32016-02-09 14:57:42 +02005119 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005120 u8 op_mod[0x10];
5121
Matan Barakb4ff3a32016-02-09 14:57:42 +02005122 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005123 u8 qpn[0x18];
5124
Matan Barakb4ff3a32016-02-09 14:57:42 +02005125 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005126};
5127
5128struct mlx5_ifc_qp_2err_out_bits {
5129 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005130 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005131
5132 u8 syndrome[0x20];
5133
Matan Barakb4ff3a32016-02-09 14:57:42 +02005134 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005135};
5136
5137struct mlx5_ifc_qp_2err_in_bits {
5138 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005139 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005140
Matan Barakb4ff3a32016-02-09 14:57:42 +02005141 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005142 u8 op_mod[0x10];
5143
Matan Barakb4ff3a32016-02-09 14:57:42 +02005144 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005145 u8 qpn[0x18];
5146
Matan Barakb4ff3a32016-02-09 14:57:42 +02005147 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005148};
5149
5150struct mlx5_ifc_page_fault_resume_out_bits {
5151 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005152 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005153
5154 u8 syndrome[0x20];
5155
Matan Barakb4ff3a32016-02-09 14:57:42 +02005156 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005157};
5158
5159struct mlx5_ifc_page_fault_resume_in_bits {
5160 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005161 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005162
Matan Barakb4ff3a32016-02-09 14:57:42 +02005163 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005164 u8 op_mod[0x10];
5165
5166 u8 error[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005167 u8 reserved_at_41[0x4];
Artemy Kovalyov223cdc72017-01-02 11:37:45 +02005168 u8 page_fault_type[0x3];
5169 u8 wq_number[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005170
Artemy Kovalyov223cdc72017-01-02 11:37:45 +02005171 u8 reserved_at_60[0x8];
5172 u8 token[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005173};
5174
5175struct mlx5_ifc_nop_out_bits {
5176 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005177 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005178
5179 u8 syndrome[0x20];
5180
Matan Barakb4ff3a32016-02-09 14:57:42 +02005181 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005182};
5183
5184struct mlx5_ifc_nop_in_bits {
5185 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005186 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005187
Matan Barakb4ff3a32016-02-09 14:57:42 +02005188 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005189 u8 op_mod[0x10];
5190
Matan Barakb4ff3a32016-02-09 14:57:42 +02005191 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005192};
5193
5194struct mlx5_ifc_modify_vport_state_out_bits {
5195 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005196 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005197
5198 u8 syndrome[0x20];
5199
Matan Barakb4ff3a32016-02-09 14:57:42 +02005200 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005201};
5202
5203struct mlx5_ifc_modify_vport_state_in_bits {
5204 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005205 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005206
Matan Barakb4ff3a32016-02-09 14:57:42 +02005207 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005208 u8 op_mod[0x10];
5209
5210 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005211 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03005212 u8 vport_number[0x10];
5213
Matan Barakb4ff3a32016-02-09 14:57:42 +02005214 u8 reserved_at_60[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005215 u8 admin_state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005216 u8 reserved_at_7c[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03005217};
5218
5219struct mlx5_ifc_modify_tis_out_bits {
5220 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005221 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005222
5223 u8 syndrome[0x20];
5224
Matan Barakb4ff3a32016-02-09 14:57:42 +02005225 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005226};
5227
majd@mellanox.com75850d02016-01-14 19:13:06 +02005228struct mlx5_ifc_modify_tis_bitmask_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02005229 u8 reserved_at_0[0x20];
majd@mellanox.com75850d02016-01-14 19:13:06 +02005230
Aviv Heller84df61e2016-05-10 13:47:50 +03005231 u8 reserved_at_20[0x1d];
5232 u8 lag_tx_port_affinity[0x1];
5233 u8 strict_lag_tx_port_affinity[0x1];
majd@mellanox.com75850d02016-01-14 19:13:06 +02005234 u8 prio[0x1];
5235};
5236
Saeed Mahameede2816822015-05-28 22:28:40 +03005237struct mlx5_ifc_modify_tis_in_bits {
5238 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005239 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005240
Matan Barakb4ff3a32016-02-09 14:57:42 +02005241 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005242 u8 op_mod[0x10];
5243
Matan Barakb4ff3a32016-02-09 14:57:42 +02005244 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005245 u8 tisn[0x18];
5246
Matan Barakb4ff3a32016-02-09 14:57:42 +02005247 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005248
majd@mellanox.com75850d02016-01-14 19:13:06 +02005249 struct mlx5_ifc_modify_tis_bitmask_bits bitmask;
Saeed Mahameede2816822015-05-28 22:28:40 +03005250
Matan Barakb4ff3a32016-02-09 14:57:42 +02005251 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005252
5253 struct mlx5_ifc_tisc_bits ctx;
5254};
5255
Achiad Shochatd9eea402015-08-04 14:05:42 +03005256struct mlx5_ifc_modify_tir_bitmask_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02005257 u8 reserved_at_0[0x20];
Achiad Shochatd9eea402015-08-04 14:05:42 +03005258
Matan Barakb4ff3a32016-02-09 14:57:42 +02005259 u8 reserved_at_20[0x1b];
Tariq Toukan66189962015-11-12 19:35:26 +02005260 u8 self_lb_en[0x1];
Tariq Toukanbdfc0282016-02-29 21:17:12 +02005261 u8 reserved_at_3c[0x1];
5262 u8 hash[0x1];
5263 u8 reserved_at_3e[0x1];
Achiad Shochatd9eea402015-08-04 14:05:42 +03005264 u8 lro[0x1];
5265};
5266
Saeed Mahameede2816822015-05-28 22:28:40 +03005267struct mlx5_ifc_modify_tir_out_bits {
5268 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005269 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005270
5271 u8 syndrome[0x20];
5272
Matan Barakb4ff3a32016-02-09 14:57:42 +02005273 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005274};
5275
5276struct mlx5_ifc_modify_tir_in_bits {
5277 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005278 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005279
Matan Barakb4ff3a32016-02-09 14:57:42 +02005280 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005281 u8 op_mod[0x10];
5282
Matan Barakb4ff3a32016-02-09 14:57:42 +02005283 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005284 u8 tirn[0x18];
5285
Matan Barakb4ff3a32016-02-09 14:57:42 +02005286 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005287
Achiad Shochatd9eea402015-08-04 14:05:42 +03005288 struct mlx5_ifc_modify_tir_bitmask_bits bitmask;
Saeed Mahameede2816822015-05-28 22:28:40 +03005289
Matan Barakb4ff3a32016-02-09 14:57:42 +02005290 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005291
5292 struct mlx5_ifc_tirc_bits ctx;
5293};
5294
5295struct mlx5_ifc_modify_sq_out_bits {
5296 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005297 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005298
5299 u8 syndrome[0x20];
5300
Matan Barakb4ff3a32016-02-09 14:57:42 +02005301 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005302};
5303
5304struct mlx5_ifc_modify_sq_in_bits {
5305 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005306 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005307
Matan Barakb4ff3a32016-02-09 14:57:42 +02005308 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005309 u8 op_mod[0x10];
5310
5311 u8 sq_state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005312 u8 reserved_at_44[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03005313 u8 sqn[0x18];
5314
Matan Barakb4ff3a32016-02-09 14:57:42 +02005315 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005316
5317 u8 modify_bitmask[0x40];
5318
Matan Barakb4ff3a32016-02-09 14:57:42 +02005319 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005320
5321 struct mlx5_ifc_sqc_bits ctx;
5322};
5323
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03005324struct mlx5_ifc_modify_scheduling_element_out_bits {
5325 u8 status[0x8];
5326 u8 reserved_at_8[0x18];
5327
5328 u8 syndrome[0x20];
5329
5330 u8 reserved_at_40[0x1c0];
5331};
5332
5333enum {
5334 MODIFY_SCHEDULING_ELEMENT_IN_MODIFY_BITMASK_BW_SHARE = 0x1,
5335 MODIFY_SCHEDULING_ELEMENT_IN_MODIFY_BITMASK_MAX_AVERAGE_BW = 0x2,
5336};
5337
5338struct mlx5_ifc_modify_scheduling_element_in_bits {
5339 u8 opcode[0x10];
5340 u8 reserved_at_10[0x10];
5341
5342 u8 reserved_at_20[0x10];
5343 u8 op_mod[0x10];
5344
5345 u8 scheduling_hierarchy[0x8];
5346 u8 reserved_at_48[0x18];
5347
5348 u8 scheduling_element_id[0x20];
5349
5350 u8 reserved_at_80[0x20];
5351
5352 u8 modify_bitmask[0x20];
5353
5354 u8 reserved_at_c0[0x40];
5355
5356 struct mlx5_ifc_scheduling_context_bits scheduling_context;
5357
5358 u8 reserved_at_300[0x100];
5359};
5360
Saeed Mahameede2816822015-05-28 22:28:40 +03005361struct mlx5_ifc_modify_rqt_out_bits {
5362 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005363 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005364
5365 u8 syndrome[0x20];
5366
Matan Barakb4ff3a32016-02-09 14:57:42 +02005367 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005368};
5369
Achiad Shochat5c503682015-08-04 14:05:43 +03005370struct mlx5_ifc_rqt_bitmask_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02005371 u8 reserved_at_0[0x20];
Achiad Shochat5c503682015-08-04 14:05:43 +03005372
Matan Barakb4ff3a32016-02-09 14:57:42 +02005373 u8 reserved_at_20[0x1f];
Achiad Shochat5c503682015-08-04 14:05:43 +03005374 u8 rqn_list[0x1];
5375};
5376
Saeed Mahameede2816822015-05-28 22:28:40 +03005377struct mlx5_ifc_modify_rqt_in_bits {
5378 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005379 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005380
Matan Barakb4ff3a32016-02-09 14:57:42 +02005381 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005382 u8 op_mod[0x10];
5383
Matan Barakb4ff3a32016-02-09 14:57:42 +02005384 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005385 u8 rqtn[0x18];
5386
Matan Barakb4ff3a32016-02-09 14:57:42 +02005387 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005388
Achiad Shochat5c503682015-08-04 14:05:43 +03005389 struct mlx5_ifc_rqt_bitmask_bits bitmask;
Saeed Mahameede2816822015-05-28 22:28:40 +03005390
Matan Barakb4ff3a32016-02-09 14:57:42 +02005391 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005392
5393 struct mlx5_ifc_rqtc_bits ctx;
5394};
5395
5396struct mlx5_ifc_modify_rq_out_bits {
5397 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005398 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005399
5400 u8 syndrome[0x20];
5401
Matan Barakb4ff3a32016-02-09 14:57:42 +02005402 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005403};
5404
Alex Vesker83b502a2016-08-04 17:32:02 +03005405enum {
5406 MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_VSD = 1ULL << 1,
Guy Ergas102722f2017-02-20 16:18:17 +02005407 MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_SCATTER_FCS = 1ULL << 2,
Majd Dibbiny23a69642017-01-18 15:25:10 +02005408 MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_RQ_COUNTER_SET_ID = 1ULL << 3,
Alex Vesker83b502a2016-08-04 17:32:02 +03005409};
5410
Saeed Mahameede2816822015-05-28 22:28:40 +03005411struct mlx5_ifc_modify_rq_in_bits {
5412 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005413 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005414
Matan Barakb4ff3a32016-02-09 14:57:42 +02005415 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005416 u8 op_mod[0x10];
5417
5418 u8 rq_state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005419 u8 reserved_at_44[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03005420 u8 rqn[0x18];
5421
Matan Barakb4ff3a32016-02-09 14:57:42 +02005422 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005423
5424 u8 modify_bitmask[0x40];
5425
Matan Barakb4ff3a32016-02-09 14:57:42 +02005426 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005427
5428 struct mlx5_ifc_rqc_bits ctx;
5429};
5430
5431struct mlx5_ifc_modify_rmp_out_bits {
5432 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005433 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005434
5435 u8 syndrome[0x20];
5436
Matan Barakb4ff3a32016-02-09 14:57:42 +02005437 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005438};
5439
Haggai Abramonvsky01949d02015-06-04 19:30:38 +03005440struct mlx5_ifc_rmp_bitmask_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02005441 u8 reserved_at_0[0x20];
Haggai Abramonvsky01949d02015-06-04 19:30:38 +03005442
Matan Barakb4ff3a32016-02-09 14:57:42 +02005443 u8 reserved_at_20[0x1f];
Haggai Abramonvsky01949d02015-06-04 19:30:38 +03005444 u8 lwm[0x1];
5445};
5446
Saeed Mahameede2816822015-05-28 22:28:40 +03005447struct mlx5_ifc_modify_rmp_in_bits {
5448 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005449 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005450
Matan Barakb4ff3a32016-02-09 14:57:42 +02005451 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005452 u8 op_mod[0x10];
5453
5454 u8 rmp_state[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005455 u8 reserved_at_44[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03005456 u8 rmpn[0x18];
5457
Matan Barakb4ff3a32016-02-09 14:57:42 +02005458 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005459
Haggai Abramonvsky01949d02015-06-04 19:30:38 +03005460 struct mlx5_ifc_rmp_bitmask_bits bitmask;
Saeed Mahameede2816822015-05-28 22:28:40 +03005461
Matan Barakb4ff3a32016-02-09 14:57:42 +02005462 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005463
5464 struct mlx5_ifc_rmpc_bits ctx;
5465};
5466
5467struct mlx5_ifc_modify_nic_vport_context_out_bits {
5468 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005469 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005470
5471 u8 syndrome[0x20];
5472
Matan Barakb4ff3a32016-02-09 14:57:42 +02005473 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005474};
5475
5476struct mlx5_ifc_modify_nic_vport_field_select_bits {
Daniel Jurgens32f69e42018-01-04 17:25:36 +02005477 u8 reserved_at_0[0x12];
5478 u8 affiliation[0x1];
5479 u8 reserved_at_e[0x1];
Huy Nguyenbded7472017-05-30 09:42:53 +03005480 u8 disable_uc_local_lb[0x1];
5481 u8 disable_mc_local_lb[0x1];
Noa Osherovich23898c72016-06-10 00:07:37 +03005482 u8 node_guid[0x1];
5483 u8 port_guid[0x1];
Hadar Hen Zion9def7122016-08-03 17:27:30 +03005484 u8 min_inline[0x1];
Saeed Mahameedd82b7312015-12-01 18:03:14 +02005485 u8 mtu[0x1];
5486 u8 change_event[0x1];
5487 u8 promisc[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03005488 u8 permanent_address[0x1];
5489 u8 addresses_list[0x1];
5490 u8 roce_en[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005491 u8 reserved_at_1f[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03005492};
5493
5494struct mlx5_ifc_modify_nic_vport_context_in_bits {
5495 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005496 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005497
Matan Barakb4ff3a32016-02-09 14:57:42 +02005498 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005499 u8 op_mod[0x10];
5500
5501 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005502 u8 reserved_at_41[0xf];
Saeed Mahameede2816822015-05-28 22:28:40 +03005503 u8 vport_number[0x10];
5504
5505 struct mlx5_ifc_modify_nic_vport_field_select_bits field_select;
5506
Matan Barakb4ff3a32016-02-09 14:57:42 +02005507 u8 reserved_at_80[0x780];
Saeed Mahameede2816822015-05-28 22:28:40 +03005508
5509 struct mlx5_ifc_nic_vport_context_bits nic_vport_context;
5510};
5511
5512struct mlx5_ifc_modify_hca_vport_context_out_bits {
5513 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005514 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005515
5516 u8 syndrome[0x20];
5517
Matan Barakb4ff3a32016-02-09 14:57:42 +02005518 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005519};
5520
5521struct mlx5_ifc_modify_hca_vport_context_in_bits {
5522 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005523 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005524
Matan Barakb4ff3a32016-02-09 14:57:42 +02005525 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005526 u8 op_mod[0x10];
5527
5528 u8 other_vport[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005529 u8 reserved_at_41[0xb];
Majd Dibbiny707c4602015-06-04 19:30:41 +03005530 u8 port_num[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03005531 u8 vport_number[0x10];
5532
Matan Barakb4ff3a32016-02-09 14:57:42 +02005533 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005534
5535 struct mlx5_ifc_hca_vport_context_bits hca_vport_context;
5536};
5537
5538struct mlx5_ifc_modify_cq_out_bits {
5539 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005540 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005541
5542 u8 syndrome[0x20];
5543
Matan Barakb4ff3a32016-02-09 14:57:42 +02005544 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005545};
5546
5547enum {
5548 MLX5_MODIFY_CQ_IN_OP_MOD_MODIFY_CQ = 0x0,
5549 MLX5_MODIFY_CQ_IN_OP_MOD_RESIZE_CQ = 0x1,
5550};
5551
5552struct mlx5_ifc_modify_cq_in_bits {
5553 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005554 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005555
Matan Barakb4ff3a32016-02-09 14:57:42 +02005556 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005557 u8 op_mod[0x10];
5558
Matan Barakb4ff3a32016-02-09 14:57:42 +02005559 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005560 u8 cqn[0x18];
5561
5562 union mlx5_ifc_modify_field_select_resize_field_select_auto_bits modify_field_select_resize_field_select;
5563
5564 struct mlx5_ifc_cqc_bits cq_context;
5565
Matan Barakb4ff3a32016-02-09 14:57:42 +02005566 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03005567
5568 u8 pas[0][0x40];
5569};
5570
5571struct mlx5_ifc_modify_cong_status_out_bits {
5572 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005573 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005574
5575 u8 syndrome[0x20];
5576
Matan Barakb4ff3a32016-02-09 14:57:42 +02005577 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005578};
5579
5580struct mlx5_ifc_modify_cong_status_in_bits {
5581 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005582 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005583
Matan Barakb4ff3a32016-02-09 14:57:42 +02005584 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005585 u8 op_mod[0x10];
5586
Matan Barakb4ff3a32016-02-09 14:57:42 +02005587 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005588 u8 priority[0x4];
5589 u8 cong_protocol[0x4];
5590
5591 u8 enable[0x1];
5592 u8 tag_enable[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005593 u8 reserved_at_62[0x1e];
Saeed Mahameede2816822015-05-28 22:28:40 +03005594};
5595
5596struct mlx5_ifc_modify_cong_params_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
5605struct mlx5_ifc_modify_cong_params_in_bits {
5606 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005607 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005608
Matan Barakb4ff3a32016-02-09 14:57:42 +02005609 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005610 u8 op_mod[0x10];
5611
Matan Barakb4ff3a32016-02-09 14:57:42 +02005612 u8 reserved_at_40[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03005613 u8 cong_protocol[0x4];
5614
5615 union mlx5_ifc_field_select_802_1_r_roce_auto_bits field_select;
5616
Matan Barakb4ff3a32016-02-09 14:57:42 +02005617 u8 reserved_at_80[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03005618
5619 union mlx5_ifc_cong_control_roce_ecn_auto_bits congestion_parameters;
5620};
5621
5622struct mlx5_ifc_manage_pages_out_bits {
5623 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005624 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005625
5626 u8 syndrome[0x20];
5627
5628 u8 output_num_entries[0x20];
5629
Matan Barakb4ff3a32016-02-09 14:57:42 +02005630 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005631
5632 u8 pas[0][0x40];
5633};
5634
5635enum {
5636 MLX5_MANAGE_PAGES_IN_OP_MOD_ALLOCATION_FAIL = 0x0,
5637 MLX5_MANAGE_PAGES_IN_OP_MOD_ALLOCATION_SUCCESS = 0x1,
5638 MLX5_MANAGE_PAGES_IN_OP_MOD_HCA_RETURN_PAGES = 0x2,
5639};
5640
5641struct mlx5_ifc_manage_pages_in_bits {
5642 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005643 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005644
Matan Barakb4ff3a32016-02-09 14:57:42 +02005645 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005646 u8 op_mod[0x10];
5647
Matan Barakb4ff3a32016-02-09 14:57:42 +02005648 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005649 u8 function_id[0x10];
5650
5651 u8 input_num_entries[0x20];
5652
5653 u8 pas[0][0x40];
5654};
5655
5656struct mlx5_ifc_mad_ifc_out_bits {
5657 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005658 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005659
5660 u8 syndrome[0x20];
5661
Matan Barakb4ff3a32016-02-09 14:57:42 +02005662 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005663
5664 u8 response_mad_packet[256][0x8];
5665};
5666
5667struct mlx5_ifc_mad_ifc_in_bits {
5668 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005669 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005670
Matan Barakb4ff3a32016-02-09 14:57:42 +02005671 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005672 u8 op_mod[0x10];
5673
5674 u8 remote_lid[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005675 u8 reserved_at_50[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005676 u8 port[0x8];
5677
Matan Barakb4ff3a32016-02-09 14:57:42 +02005678 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005679
5680 u8 mad[256][0x8];
5681};
5682
5683struct mlx5_ifc_init_hca_out_bits {
5684 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005685 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005686
5687 u8 syndrome[0x20];
5688
Matan Barakb4ff3a32016-02-09 14:57:42 +02005689 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005690};
5691
5692struct mlx5_ifc_init_hca_in_bits {
5693 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005694 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005695
Matan Barakb4ff3a32016-02-09 14:57:42 +02005696 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005697 u8 op_mod[0x10];
5698
Matan Barakb4ff3a32016-02-09 14:57:42 +02005699 u8 reserved_at_40[0x40];
Daniel Jurgens8737f812018-01-04 17:25:32 +02005700 u8 sw_owner_id[4][0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005701};
5702
5703struct mlx5_ifc_init2rtr_qp_out_bits {
5704 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005705 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005706
5707 u8 syndrome[0x20];
5708
Matan Barakb4ff3a32016-02-09 14:57:42 +02005709 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005710};
5711
5712struct mlx5_ifc_init2rtr_qp_in_bits {
5713 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005714 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005715
Matan Barakb4ff3a32016-02-09 14:57:42 +02005716 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005717 u8 op_mod[0x10];
5718
Matan Barakb4ff3a32016-02-09 14:57:42 +02005719 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005720 u8 qpn[0x18];
5721
Matan Barakb4ff3a32016-02-09 14:57:42 +02005722 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005723
5724 u8 opt_param_mask[0x20];
5725
Matan Barakb4ff3a32016-02-09 14:57:42 +02005726 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005727
5728 struct mlx5_ifc_qpc_bits qpc;
5729
Matan Barakb4ff3a32016-02-09 14:57:42 +02005730 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03005731};
5732
5733struct mlx5_ifc_init2init_qp_out_bits {
5734 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005735 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005736
5737 u8 syndrome[0x20];
5738
Matan Barakb4ff3a32016-02-09 14:57:42 +02005739 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005740};
5741
5742struct mlx5_ifc_init2init_qp_in_bits {
5743 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005744 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005745
Matan Barakb4ff3a32016-02-09 14:57:42 +02005746 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005747 u8 op_mod[0x10];
5748
Matan Barakb4ff3a32016-02-09 14:57:42 +02005749 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005750 u8 qpn[0x18];
5751
Matan Barakb4ff3a32016-02-09 14:57:42 +02005752 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005753
5754 u8 opt_param_mask[0x20];
5755
Matan Barakb4ff3a32016-02-09 14:57:42 +02005756 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005757
5758 struct mlx5_ifc_qpc_bits qpc;
5759
Matan Barakb4ff3a32016-02-09 14:57:42 +02005760 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03005761};
5762
5763struct mlx5_ifc_get_dropped_packet_log_out_bits {
5764 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005765 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005766
5767 u8 syndrome[0x20];
5768
Matan Barakb4ff3a32016-02-09 14:57:42 +02005769 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005770
5771 u8 packet_headers_log[128][0x8];
5772
5773 u8 packet_syndrome[64][0x8];
5774};
5775
5776struct mlx5_ifc_get_dropped_packet_log_in_bits {
5777 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005778 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005779
Matan Barakb4ff3a32016-02-09 14:57:42 +02005780 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005781 u8 op_mod[0x10];
5782
Matan Barakb4ff3a32016-02-09 14:57:42 +02005783 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005784};
5785
5786struct mlx5_ifc_gen_eqe_in_bits {
5787 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005788 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005789
Matan Barakb4ff3a32016-02-09 14:57:42 +02005790 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005791 u8 op_mod[0x10];
5792
Matan Barakb4ff3a32016-02-09 14:57:42 +02005793 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005794 u8 eq_number[0x8];
5795
Matan Barakb4ff3a32016-02-09 14:57:42 +02005796 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005797
5798 u8 eqe[64][0x8];
5799};
5800
5801struct mlx5_ifc_gen_eq_out_bits {
5802 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005803 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005804
5805 u8 syndrome[0x20];
5806
Matan Barakb4ff3a32016-02-09 14:57:42 +02005807 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005808};
5809
5810struct mlx5_ifc_enable_hca_out_bits {
5811 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005812 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005813
5814 u8 syndrome[0x20];
5815
Matan Barakb4ff3a32016-02-09 14:57:42 +02005816 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005817};
5818
5819struct mlx5_ifc_enable_hca_in_bits {
5820 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005821 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005822
Matan Barakb4ff3a32016-02-09 14:57:42 +02005823 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005824 u8 op_mod[0x10];
5825
Matan Barakb4ff3a32016-02-09 14:57:42 +02005826 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005827 u8 function_id[0x10];
5828
Matan Barakb4ff3a32016-02-09 14:57:42 +02005829 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005830};
5831
5832struct mlx5_ifc_drain_dct_out_bits {
5833 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005834 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005835
5836 u8 syndrome[0x20];
5837
Matan Barakb4ff3a32016-02-09 14:57:42 +02005838 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005839};
5840
5841struct mlx5_ifc_drain_dct_in_bits {
5842 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005843 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005844
Matan Barakb4ff3a32016-02-09 14:57:42 +02005845 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005846 u8 op_mod[0x10];
5847
Matan Barakb4ff3a32016-02-09 14:57:42 +02005848 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005849 u8 dctn[0x18];
5850
Matan Barakb4ff3a32016-02-09 14:57:42 +02005851 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005852};
5853
5854struct mlx5_ifc_disable_hca_out_bits {
5855 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005856 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005857
5858 u8 syndrome[0x20];
5859
Matan Barakb4ff3a32016-02-09 14:57:42 +02005860 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005861};
5862
5863struct mlx5_ifc_disable_hca_in_bits {
5864 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005865 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005866
Matan Barakb4ff3a32016-02-09 14:57:42 +02005867 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005868 u8 op_mod[0x10];
5869
Matan Barakb4ff3a32016-02-09 14:57:42 +02005870 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005871 u8 function_id[0x10];
5872
Matan Barakb4ff3a32016-02-09 14:57:42 +02005873 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005874};
5875
5876struct mlx5_ifc_detach_from_mcg_out_bits {
5877 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005878 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005879
5880 u8 syndrome[0x20];
5881
Matan Barakb4ff3a32016-02-09 14:57:42 +02005882 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005883};
5884
5885struct mlx5_ifc_detach_from_mcg_in_bits {
5886 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005887 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005888
Matan Barakb4ff3a32016-02-09 14:57:42 +02005889 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005890 u8 op_mod[0x10];
5891
Matan Barakb4ff3a32016-02-09 14:57:42 +02005892 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005893 u8 qpn[0x18];
5894
Matan Barakb4ff3a32016-02-09 14:57:42 +02005895 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005896
5897 u8 multicast_gid[16][0x8];
5898};
5899
Saeed Mahameed74862162016-06-09 15:11:34 +03005900struct mlx5_ifc_destroy_xrq_out_bits {
5901 u8 status[0x8];
5902 u8 reserved_at_8[0x18];
5903
5904 u8 syndrome[0x20];
5905
5906 u8 reserved_at_40[0x40];
5907};
5908
5909struct mlx5_ifc_destroy_xrq_in_bits {
5910 u8 opcode[0x10];
5911 u8 reserved_at_10[0x10];
5912
5913 u8 reserved_at_20[0x10];
5914 u8 op_mod[0x10];
5915
5916 u8 reserved_at_40[0x8];
5917 u8 xrqn[0x18];
5918
5919 u8 reserved_at_60[0x20];
5920};
5921
Saeed Mahameede2816822015-05-28 22:28:40 +03005922struct mlx5_ifc_destroy_xrc_srq_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_destroy_xrc_srq_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[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005939 u8 xrc_srqn[0x18];
5940
Matan Barakb4ff3a32016-02-09 14:57:42 +02005941 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005942};
5943
5944struct mlx5_ifc_destroy_tis_out_bits {
5945 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005946 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005947
5948 u8 syndrome[0x20];
5949
Matan Barakb4ff3a32016-02-09 14:57:42 +02005950 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005951};
5952
5953struct mlx5_ifc_destroy_tis_in_bits {
5954 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005955 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005956
Matan Barakb4ff3a32016-02-09 14:57:42 +02005957 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005958 u8 op_mod[0x10];
5959
Matan Barakb4ff3a32016-02-09 14:57:42 +02005960 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005961 u8 tisn[0x18];
5962
Matan Barakb4ff3a32016-02-09 14:57:42 +02005963 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005964};
5965
5966struct mlx5_ifc_destroy_tir_out_bits {
5967 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005968 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005969
5970 u8 syndrome[0x20];
5971
Matan Barakb4ff3a32016-02-09 14:57:42 +02005972 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005973};
5974
5975struct mlx5_ifc_destroy_tir_in_bits {
5976 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005977 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005978
Matan Barakb4ff3a32016-02-09 14:57:42 +02005979 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03005980 u8 op_mod[0x10];
5981
Matan Barakb4ff3a32016-02-09 14:57:42 +02005982 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03005983 u8 tirn[0x18];
5984
Matan Barakb4ff3a32016-02-09 14:57:42 +02005985 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03005986};
5987
5988struct mlx5_ifc_destroy_srq_out_bits {
5989 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005990 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03005991
5992 u8 syndrome[0x20];
5993
Matan Barakb4ff3a32016-02-09 14:57:42 +02005994 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03005995};
5996
5997struct mlx5_ifc_destroy_srq_in_bits {
5998 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02005999 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006000
Matan Barakb4ff3a32016-02-09 14:57:42 +02006001 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006002 u8 op_mod[0x10];
6003
Matan Barakb4ff3a32016-02-09 14:57:42 +02006004 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006005 u8 srqn[0x18];
6006
Matan Barakb4ff3a32016-02-09 14:57:42 +02006007 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006008};
6009
6010struct mlx5_ifc_destroy_sq_out_bits {
6011 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006012 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006013
6014 u8 syndrome[0x20];
6015
Matan Barakb4ff3a32016-02-09 14:57:42 +02006016 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006017};
6018
6019struct mlx5_ifc_destroy_sq_in_bits {
6020 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006021 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006022
Matan Barakb4ff3a32016-02-09 14:57:42 +02006023 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006024 u8 op_mod[0x10];
6025
Matan Barakb4ff3a32016-02-09 14:57:42 +02006026 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006027 u8 sqn[0x18];
6028
Matan Barakb4ff3a32016-02-09 14:57:42 +02006029 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006030};
6031
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03006032struct mlx5_ifc_destroy_scheduling_element_out_bits {
6033 u8 status[0x8];
6034 u8 reserved_at_8[0x18];
6035
6036 u8 syndrome[0x20];
6037
6038 u8 reserved_at_40[0x1c0];
6039};
6040
6041struct mlx5_ifc_destroy_scheduling_element_in_bits {
6042 u8 opcode[0x10];
6043 u8 reserved_at_10[0x10];
6044
6045 u8 reserved_at_20[0x10];
6046 u8 op_mod[0x10];
6047
6048 u8 scheduling_hierarchy[0x8];
6049 u8 reserved_at_48[0x18];
6050
6051 u8 scheduling_element_id[0x20];
6052
6053 u8 reserved_at_80[0x180];
6054};
6055
Saeed Mahameede2816822015-05-28 22:28:40 +03006056struct mlx5_ifc_destroy_rqt_out_bits {
6057 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006058 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006059
6060 u8 syndrome[0x20];
6061
Matan Barakb4ff3a32016-02-09 14:57:42 +02006062 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006063};
6064
6065struct mlx5_ifc_destroy_rqt_in_bits {
6066 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006067 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006068
Matan Barakb4ff3a32016-02-09 14:57:42 +02006069 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006070 u8 op_mod[0x10];
6071
Matan Barakb4ff3a32016-02-09 14:57:42 +02006072 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006073 u8 rqtn[0x18];
6074
Matan Barakb4ff3a32016-02-09 14:57:42 +02006075 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006076};
6077
6078struct mlx5_ifc_destroy_rq_out_bits {
6079 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006080 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006081
6082 u8 syndrome[0x20];
6083
Matan Barakb4ff3a32016-02-09 14:57:42 +02006084 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006085};
6086
6087struct mlx5_ifc_destroy_rq_in_bits {
6088 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006089 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006090
Matan Barakb4ff3a32016-02-09 14:57:42 +02006091 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006092 u8 op_mod[0x10];
6093
Matan Barakb4ff3a32016-02-09 14:57:42 +02006094 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006095 u8 rqn[0x18];
6096
Matan Barakb4ff3a32016-02-09 14:57:42 +02006097 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006098};
6099
Maor Gottliebc1e0bfc2017-05-30 10:29:11 +03006100struct mlx5_ifc_set_delay_drop_params_in_bits {
6101 u8 opcode[0x10];
6102 u8 reserved_at_10[0x10];
6103
6104 u8 reserved_at_20[0x10];
6105 u8 op_mod[0x10];
6106
6107 u8 reserved_at_40[0x20];
6108
6109 u8 reserved_at_60[0x10];
6110 u8 delay_drop_timeout[0x10];
6111};
6112
6113struct mlx5_ifc_set_delay_drop_params_out_bits {
6114 u8 status[0x8];
6115 u8 reserved_at_8[0x18];
6116
6117 u8 syndrome[0x20];
6118
6119 u8 reserved_at_40[0x40];
6120};
6121
Saeed Mahameede2816822015-05-28 22:28:40 +03006122struct mlx5_ifc_destroy_rmp_out_bits {
6123 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006124 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006125
6126 u8 syndrome[0x20];
6127
Matan Barakb4ff3a32016-02-09 14:57:42 +02006128 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006129};
6130
6131struct mlx5_ifc_destroy_rmp_in_bits {
6132 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006133 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006134
Matan Barakb4ff3a32016-02-09 14:57:42 +02006135 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006136 u8 op_mod[0x10];
6137
Matan Barakb4ff3a32016-02-09 14:57:42 +02006138 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006139 u8 rmpn[0x18];
6140
Matan Barakb4ff3a32016-02-09 14:57:42 +02006141 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006142};
6143
6144struct mlx5_ifc_destroy_qp_out_bits {
6145 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006146 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006147
6148 u8 syndrome[0x20];
6149
Matan Barakb4ff3a32016-02-09 14:57:42 +02006150 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006151};
6152
6153struct mlx5_ifc_destroy_qp_in_bits {
6154 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006155 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006156
Matan Barakb4ff3a32016-02-09 14:57:42 +02006157 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006158 u8 op_mod[0x10];
6159
Matan Barakb4ff3a32016-02-09 14:57:42 +02006160 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006161 u8 qpn[0x18];
6162
Matan Barakb4ff3a32016-02-09 14:57:42 +02006163 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006164};
6165
6166struct mlx5_ifc_destroy_psv_out_bits {
6167 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006168 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006169
6170 u8 syndrome[0x20];
6171
Matan Barakb4ff3a32016-02-09 14:57:42 +02006172 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006173};
6174
6175struct mlx5_ifc_destroy_psv_in_bits {
6176 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006177 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006178
Matan Barakb4ff3a32016-02-09 14:57:42 +02006179 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006180 u8 op_mod[0x10];
6181
Matan Barakb4ff3a32016-02-09 14:57:42 +02006182 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006183 u8 psvn[0x18];
6184
Matan Barakb4ff3a32016-02-09 14:57:42 +02006185 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006186};
6187
6188struct mlx5_ifc_destroy_mkey_out_bits {
6189 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006190 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006191
6192 u8 syndrome[0x20];
6193
Matan Barakb4ff3a32016-02-09 14:57:42 +02006194 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006195};
6196
6197struct mlx5_ifc_destroy_mkey_in_bits {
6198 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006199 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006200
Matan Barakb4ff3a32016-02-09 14:57:42 +02006201 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006202 u8 op_mod[0x10];
6203
Matan Barakb4ff3a32016-02-09 14:57:42 +02006204 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006205 u8 mkey_index[0x18];
6206
Matan Barakb4ff3a32016-02-09 14:57:42 +02006207 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006208};
6209
6210struct mlx5_ifc_destroy_flow_table_out_bits {
6211 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006212 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006213
6214 u8 syndrome[0x20];
6215
Matan Barakb4ff3a32016-02-09 14:57:42 +02006216 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006217};
6218
6219struct mlx5_ifc_destroy_flow_table_in_bits {
6220 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006221 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006222
Matan Barakb4ff3a32016-02-09 14:57:42 +02006223 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006224 u8 op_mod[0x10];
6225
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03006226 u8 other_vport[0x1];
6227 u8 reserved_at_41[0xf];
6228 u8 vport_number[0x10];
6229
6230 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006231
6232 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006233 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006234
Matan Barakb4ff3a32016-02-09 14:57:42 +02006235 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006236 u8 table_id[0x18];
6237
Matan Barakb4ff3a32016-02-09 14:57:42 +02006238 u8 reserved_at_c0[0x140];
Saeed Mahameede2816822015-05-28 22:28:40 +03006239};
6240
6241struct mlx5_ifc_destroy_flow_group_out_bits {
6242 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006243 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006244
6245 u8 syndrome[0x20];
6246
Matan Barakb4ff3a32016-02-09 14:57:42 +02006247 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006248};
6249
6250struct mlx5_ifc_destroy_flow_group_in_bits {
6251 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006252 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006253
Matan Barakb4ff3a32016-02-09 14:57:42 +02006254 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006255 u8 op_mod[0x10];
6256
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03006257 u8 other_vport[0x1];
6258 u8 reserved_at_41[0xf];
6259 u8 vport_number[0x10];
6260
6261 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006262
6263 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006264 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006265
Matan Barakb4ff3a32016-02-09 14:57:42 +02006266 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006267 u8 table_id[0x18];
6268
6269 u8 group_id[0x20];
6270
Matan Barakb4ff3a32016-02-09 14:57:42 +02006271 u8 reserved_at_e0[0x120];
Saeed Mahameede2816822015-05-28 22:28:40 +03006272};
6273
6274struct mlx5_ifc_destroy_eq_out_bits {
6275 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006276 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006277
6278 u8 syndrome[0x20];
6279
Matan Barakb4ff3a32016-02-09 14:57:42 +02006280 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006281};
6282
6283struct mlx5_ifc_destroy_eq_in_bits {
6284 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006285 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006286
Matan Barakb4ff3a32016-02-09 14:57:42 +02006287 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006288 u8 op_mod[0x10];
6289
Matan Barakb4ff3a32016-02-09 14:57:42 +02006290 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006291 u8 eq_number[0x8];
6292
Matan Barakb4ff3a32016-02-09 14:57:42 +02006293 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006294};
6295
6296struct mlx5_ifc_destroy_dct_out_bits {
6297 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006298 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006299
6300 u8 syndrome[0x20];
6301
Matan Barakb4ff3a32016-02-09 14:57:42 +02006302 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006303};
6304
6305struct mlx5_ifc_destroy_dct_in_bits {
6306 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006307 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006308
Matan Barakb4ff3a32016-02-09 14:57:42 +02006309 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006310 u8 op_mod[0x10];
6311
Matan Barakb4ff3a32016-02-09 14:57:42 +02006312 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006313 u8 dctn[0x18];
6314
Matan Barakb4ff3a32016-02-09 14:57:42 +02006315 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006316};
6317
6318struct mlx5_ifc_destroy_cq_out_bits {
6319 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006320 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006321
6322 u8 syndrome[0x20];
6323
Matan Barakb4ff3a32016-02-09 14:57:42 +02006324 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006325};
6326
6327struct mlx5_ifc_destroy_cq_in_bits {
6328 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006329 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006330
Matan Barakb4ff3a32016-02-09 14:57:42 +02006331 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006332 u8 op_mod[0x10];
6333
Matan Barakb4ff3a32016-02-09 14:57:42 +02006334 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006335 u8 cqn[0x18];
6336
Matan Barakb4ff3a32016-02-09 14:57:42 +02006337 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006338};
6339
6340struct mlx5_ifc_delete_vxlan_udp_dport_out_bits {
6341 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006342 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006343
6344 u8 syndrome[0x20];
6345
Matan Barakb4ff3a32016-02-09 14:57:42 +02006346 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006347};
6348
6349struct mlx5_ifc_delete_vxlan_udp_dport_in_bits {
6350 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006351 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006352
Matan Barakb4ff3a32016-02-09 14:57:42 +02006353 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006354 u8 op_mod[0x10];
6355
Matan Barakb4ff3a32016-02-09 14:57:42 +02006356 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006357
Matan Barakb4ff3a32016-02-09 14:57:42 +02006358 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006359 u8 vxlan_udp_port[0x10];
6360};
6361
6362struct mlx5_ifc_delete_l2_table_entry_out_bits {
6363 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006364 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006365
6366 u8 syndrome[0x20];
6367
Matan Barakb4ff3a32016-02-09 14:57:42 +02006368 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006369};
6370
6371struct mlx5_ifc_delete_l2_table_entry_in_bits {
6372 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006373 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006374
Matan Barakb4ff3a32016-02-09 14:57:42 +02006375 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006376 u8 op_mod[0x10];
6377
Matan Barakb4ff3a32016-02-09 14:57:42 +02006378 u8 reserved_at_40[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03006379
Matan Barakb4ff3a32016-02-09 14:57:42 +02006380 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006381 u8 table_index[0x18];
6382
Matan Barakb4ff3a32016-02-09 14:57:42 +02006383 u8 reserved_at_c0[0x140];
Saeed Mahameede2816822015-05-28 22:28:40 +03006384};
6385
6386struct mlx5_ifc_delete_fte_out_bits {
6387 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006388 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006389
6390 u8 syndrome[0x20];
6391
Matan Barakb4ff3a32016-02-09 14:57:42 +02006392 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006393};
6394
6395struct mlx5_ifc_delete_fte_in_bits {
6396 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006397 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006398
Matan Barakb4ff3a32016-02-09 14:57:42 +02006399 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006400 u8 op_mod[0x10];
6401
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03006402 u8 other_vport[0x1];
6403 u8 reserved_at_41[0xf];
6404 u8 vport_number[0x10];
6405
6406 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006407
6408 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006409 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006410
Matan Barakb4ff3a32016-02-09 14:57:42 +02006411 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006412 u8 table_id[0x18];
6413
Matan Barakb4ff3a32016-02-09 14:57:42 +02006414 u8 reserved_at_c0[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006415
6416 u8 flow_index[0x20];
6417
Matan Barakb4ff3a32016-02-09 14:57:42 +02006418 u8 reserved_at_120[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03006419};
6420
6421struct mlx5_ifc_dealloc_xrcd_out_bits {
6422 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006423 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006424
6425 u8 syndrome[0x20];
6426
Matan Barakb4ff3a32016-02-09 14:57:42 +02006427 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006428};
6429
6430struct mlx5_ifc_dealloc_xrcd_in_bits {
6431 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006432 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006433
Matan Barakb4ff3a32016-02-09 14:57:42 +02006434 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006435 u8 op_mod[0x10];
6436
Matan Barakb4ff3a32016-02-09 14:57:42 +02006437 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006438 u8 xrcd[0x18];
6439
Matan Barakb4ff3a32016-02-09 14:57:42 +02006440 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006441};
6442
6443struct mlx5_ifc_dealloc_uar_out_bits {
6444 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006445 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006446
6447 u8 syndrome[0x20];
6448
Matan Barakb4ff3a32016-02-09 14:57:42 +02006449 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006450};
6451
6452struct mlx5_ifc_dealloc_uar_in_bits {
6453 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006454 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006455
Matan Barakb4ff3a32016-02-09 14:57:42 +02006456 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006457 u8 op_mod[0x10];
6458
Matan Barakb4ff3a32016-02-09 14:57:42 +02006459 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006460 u8 uar[0x18];
6461
Matan Barakb4ff3a32016-02-09 14:57:42 +02006462 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006463};
6464
6465struct mlx5_ifc_dealloc_transport_domain_out_bits {
6466 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006467 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006468
6469 u8 syndrome[0x20];
6470
Matan Barakb4ff3a32016-02-09 14:57:42 +02006471 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006472};
6473
6474struct mlx5_ifc_dealloc_transport_domain_in_bits {
6475 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006476 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006477
Matan Barakb4ff3a32016-02-09 14:57:42 +02006478 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006479 u8 op_mod[0x10];
6480
Matan Barakb4ff3a32016-02-09 14:57:42 +02006481 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006482 u8 transport_domain[0x18];
6483
Matan Barakb4ff3a32016-02-09 14:57:42 +02006484 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006485};
6486
6487struct mlx5_ifc_dealloc_q_counter_out_bits {
6488 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006489 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006490
6491 u8 syndrome[0x20];
6492
Matan Barakb4ff3a32016-02-09 14:57:42 +02006493 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006494};
6495
6496struct mlx5_ifc_dealloc_q_counter_in_bits {
6497 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006498 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006499
Matan Barakb4ff3a32016-02-09 14:57:42 +02006500 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006501 u8 op_mod[0x10];
6502
Matan Barakb4ff3a32016-02-09 14:57:42 +02006503 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006504 u8 counter_set_id[0x8];
6505
Matan Barakb4ff3a32016-02-09 14:57:42 +02006506 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006507};
6508
6509struct mlx5_ifc_dealloc_pd_out_bits {
6510 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006511 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006512
6513 u8 syndrome[0x20];
6514
Matan Barakb4ff3a32016-02-09 14:57:42 +02006515 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006516};
6517
6518struct mlx5_ifc_dealloc_pd_in_bits {
6519 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006520 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006521
Matan Barakb4ff3a32016-02-09 14:57:42 +02006522 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006523 u8 op_mod[0x10];
6524
Matan Barakb4ff3a32016-02-09 14:57:42 +02006525 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006526 u8 pd[0x18];
6527
Matan Barakb4ff3a32016-02-09 14:57:42 +02006528 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006529};
6530
Amir Vadai9dc0b282016-05-13 12:55:39 +00006531struct mlx5_ifc_dealloc_flow_counter_out_bits {
6532 u8 status[0x8];
6533 u8 reserved_at_8[0x18];
6534
6535 u8 syndrome[0x20];
6536
6537 u8 reserved_at_40[0x40];
6538};
6539
6540struct mlx5_ifc_dealloc_flow_counter_in_bits {
6541 u8 opcode[0x10];
6542 u8 reserved_at_10[0x10];
6543
6544 u8 reserved_at_20[0x10];
6545 u8 op_mod[0x10];
6546
Rabie Louloua8ffcc72017-07-09 13:39:30 +03006547 u8 flow_counter_id[0x20];
Amir Vadai9dc0b282016-05-13 12:55:39 +00006548
6549 u8 reserved_at_60[0x20];
6550};
6551
Saeed Mahameed74862162016-06-09 15:11:34 +03006552struct mlx5_ifc_create_xrq_out_bits {
6553 u8 status[0x8];
6554 u8 reserved_at_8[0x18];
6555
6556 u8 syndrome[0x20];
6557
6558 u8 reserved_at_40[0x8];
6559 u8 xrqn[0x18];
6560
6561 u8 reserved_at_60[0x20];
6562};
6563
6564struct mlx5_ifc_create_xrq_in_bits {
6565 u8 opcode[0x10];
6566 u8 reserved_at_10[0x10];
6567
6568 u8 reserved_at_20[0x10];
6569 u8 op_mod[0x10];
6570
6571 u8 reserved_at_40[0x40];
6572
6573 struct mlx5_ifc_xrqc_bits xrq_context;
6574};
6575
Saeed Mahameede2816822015-05-28 22:28:40 +03006576struct mlx5_ifc_create_xrc_srq_out_bits {
6577 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006578 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006579
6580 u8 syndrome[0x20];
6581
Matan Barakb4ff3a32016-02-09 14:57:42 +02006582 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006583 u8 xrc_srqn[0x18];
6584
Matan Barakb4ff3a32016-02-09 14:57:42 +02006585 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006586};
6587
6588struct mlx5_ifc_create_xrc_srq_in_bits {
6589 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006590 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006591
Matan Barakb4ff3a32016-02-09 14:57:42 +02006592 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006593 u8 op_mod[0x10];
6594
Matan Barakb4ff3a32016-02-09 14:57:42 +02006595 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006596
6597 struct mlx5_ifc_xrc_srqc_bits xrc_srq_context_entry;
6598
Matan Barakb4ff3a32016-02-09 14:57:42 +02006599 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03006600
6601 u8 pas[0][0x40];
6602};
6603
6604struct mlx5_ifc_create_tis_out_bits {
6605 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006606 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006607
6608 u8 syndrome[0x20];
6609
Matan Barakb4ff3a32016-02-09 14:57:42 +02006610 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006611 u8 tisn[0x18];
6612
Matan Barakb4ff3a32016-02-09 14:57:42 +02006613 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006614};
6615
6616struct mlx5_ifc_create_tis_in_bits {
6617 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006618 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006619
Matan Barakb4ff3a32016-02-09 14:57:42 +02006620 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006621 u8 op_mod[0x10];
6622
Matan Barakb4ff3a32016-02-09 14:57:42 +02006623 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03006624
6625 struct mlx5_ifc_tisc_bits ctx;
6626};
6627
6628struct mlx5_ifc_create_tir_out_bits {
6629 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006630 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006631
6632 u8 syndrome[0x20];
6633
Matan Barakb4ff3a32016-02-09 14:57:42 +02006634 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006635 u8 tirn[0x18];
6636
Matan Barakb4ff3a32016-02-09 14:57:42 +02006637 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006638};
6639
6640struct mlx5_ifc_create_tir_in_bits {
6641 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006642 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006643
Matan Barakb4ff3a32016-02-09 14:57:42 +02006644 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006645 u8 op_mod[0x10];
6646
Matan Barakb4ff3a32016-02-09 14:57:42 +02006647 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03006648
6649 struct mlx5_ifc_tirc_bits ctx;
6650};
6651
6652struct mlx5_ifc_create_srq_out_bits {
6653 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006654 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006655
6656 u8 syndrome[0x20];
6657
Matan Barakb4ff3a32016-02-09 14:57:42 +02006658 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006659 u8 srqn[0x18];
6660
Matan Barakb4ff3a32016-02-09 14:57:42 +02006661 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006662};
6663
6664struct mlx5_ifc_create_srq_in_bits {
6665 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006666 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006667
Matan Barakb4ff3a32016-02-09 14:57:42 +02006668 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006669 u8 op_mod[0x10];
6670
Matan Barakb4ff3a32016-02-09 14:57:42 +02006671 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006672
6673 struct mlx5_ifc_srqc_bits srq_context_entry;
6674
Matan Barakb4ff3a32016-02-09 14:57:42 +02006675 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03006676
6677 u8 pas[0][0x40];
6678};
6679
6680struct mlx5_ifc_create_sq_out_bits {
6681 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006682 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006683
6684 u8 syndrome[0x20];
6685
Matan Barakb4ff3a32016-02-09 14:57:42 +02006686 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006687 u8 sqn[0x18];
6688
Matan Barakb4ff3a32016-02-09 14:57:42 +02006689 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006690};
6691
6692struct mlx5_ifc_create_sq_in_bits {
6693 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006694 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006695
Matan Barakb4ff3a32016-02-09 14:57:42 +02006696 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006697 u8 op_mod[0x10];
6698
Matan Barakb4ff3a32016-02-09 14:57:42 +02006699 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03006700
6701 struct mlx5_ifc_sqc_bits ctx;
6702};
6703
Mohamad Haj Yahia813f8542016-08-11 11:21:39 +03006704struct mlx5_ifc_create_scheduling_element_out_bits {
6705 u8 status[0x8];
6706 u8 reserved_at_8[0x18];
6707
6708 u8 syndrome[0x20];
6709
6710 u8 reserved_at_40[0x40];
6711
6712 u8 scheduling_element_id[0x20];
6713
6714 u8 reserved_at_a0[0x160];
6715};
6716
6717struct mlx5_ifc_create_scheduling_element_in_bits {
6718 u8 opcode[0x10];
6719 u8 reserved_at_10[0x10];
6720
6721 u8 reserved_at_20[0x10];
6722 u8 op_mod[0x10];
6723
6724 u8 scheduling_hierarchy[0x8];
6725 u8 reserved_at_48[0x18];
6726
6727 u8 reserved_at_60[0xa0];
6728
6729 struct mlx5_ifc_scheduling_context_bits scheduling_context;
6730
6731 u8 reserved_at_300[0x100];
6732};
6733
Saeed Mahameede2816822015-05-28 22:28:40 +03006734struct mlx5_ifc_create_rqt_out_bits {
6735 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006736 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006737
6738 u8 syndrome[0x20];
6739
Matan Barakb4ff3a32016-02-09 14:57:42 +02006740 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006741 u8 rqtn[0x18];
6742
Matan Barakb4ff3a32016-02-09 14:57:42 +02006743 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006744};
6745
6746struct mlx5_ifc_create_rqt_in_bits {
6747 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006748 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006749
Matan Barakb4ff3a32016-02-09 14:57:42 +02006750 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006751 u8 op_mod[0x10];
6752
Matan Barakb4ff3a32016-02-09 14:57:42 +02006753 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03006754
6755 struct mlx5_ifc_rqtc_bits rqt_context;
6756};
6757
6758struct mlx5_ifc_create_rq_out_bits {
6759 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006760 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006761
6762 u8 syndrome[0x20];
6763
Matan Barakb4ff3a32016-02-09 14:57:42 +02006764 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006765 u8 rqn[0x18];
6766
Matan Barakb4ff3a32016-02-09 14:57:42 +02006767 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006768};
6769
6770struct mlx5_ifc_create_rq_in_bits {
6771 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006772 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006773
Matan Barakb4ff3a32016-02-09 14:57:42 +02006774 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006775 u8 op_mod[0x10];
6776
Matan Barakb4ff3a32016-02-09 14:57:42 +02006777 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03006778
6779 struct mlx5_ifc_rqc_bits ctx;
6780};
6781
6782struct mlx5_ifc_create_rmp_out_bits {
6783 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006784 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006785
6786 u8 syndrome[0x20];
6787
Matan Barakb4ff3a32016-02-09 14:57:42 +02006788 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006789 u8 rmpn[0x18];
6790
Matan Barakb4ff3a32016-02-09 14:57:42 +02006791 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006792};
6793
6794struct mlx5_ifc_create_rmp_in_bits {
6795 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006796 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006797
Matan Barakb4ff3a32016-02-09 14:57:42 +02006798 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006799 u8 op_mod[0x10];
6800
Matan Barakb4ff3a32016-02-09 14:57:42 +02006801 u8 reserved_at_40[0xc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03006802
6803 struct mlx5_ifc_rmpc_bits ctx;
6804};
6805
6806struct mlx5_ifc_create_qp_out_bits {
6807 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006808 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006809
6810 u8 syndrome[0x20];
6811
Matan Barakb4ff3a32016-02-09 14:57:42 +02006812 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006813 u8 qpn[0x18];
6814
Matan Barakb4ff3a32016-02-09 14:57:42 +02006815 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006816};
6817
6818struct mlx5_ifc_create_qp_in_bits {
6819 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006820 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006821
Matan Barakb4ff3a32016-02-09 14:57:42 +02006822 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006823 u8 op_mod[0x10];
6824
Matan Barakb4ff3a32016-02-09 14:57:42 +02006825 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006826
6827 u8 opt_param_mask[0x20];
6828
Matan Barakb4ff3a32016-02-09 14:57:42 +02006829 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006830
6831 struct mlx5_ifc_qpc_bits qpc;
6832
Matan Barakb4ff3a32016-02-09 14:57:42 +02006833 u8 reserved_at_800[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03006834
6835 u8 pas[0][0x40];
6836};
6837
6838struct mlx5_ifc_create_psv_out_bits {
6839 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006840 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006841
6842 u8 syndrome[0x20];
6843
Matan Barakb4ff3a32016-02-09 14:57:42 +02006844 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03006845
Matan Barakb4ff3a32016-02-09 14:57:42 +02006846 u8 reserved_at_80[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006847 u8 psv0_index[0x18];
6848
Matan Barakb4ff3a32016-02-09 14:57:42 +02006849 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006850 u8 psv1_index[0x18];
6851
Matan Barakb4ff3a32016-02-09 14:57:42 +02006852 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006853 u8 psv2_index[0x18];
6854
Matan Barakb4ff3a32016-02-09 14:57:42 +02006855 u8 reserved_at_e0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006856 u8 psv3_index[0x18];
6857};
6858
6859struct mlx5_ifc_create_psv_in_bits {
6860 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006861 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006862
Matan Barakb4ff3a32016-02-09 14:57:42 +02006863 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006864 u8 op_mod[0x10];
6865
6866 u8 num_psv[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006867 u8 reserved_at_44[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03006868 u8 pd[0x18];
6869
Matan Barakb4ff3a32016-02-09 14:57:42 +02006870 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006871};
6872
6873struct mlx5_ifc_create_mkey_out_bits {
6874 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006875 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006876
6877 u8 syndrome[0x20];
6878
Matan Barakb4ff3a32016-02-09 14:57:42 +02006879 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006880 u8 mkey_index[0x18];
6881
Matan Barakb4ff3a32016-02-09 14:57:42 +02006882 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006883};
6884
6885struct mlx5_ifc_create_mkey_in_bits {
6886 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006887 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006888
Matan Barakb4ff3a32016-02-09 14:57:42 +02006889 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006890 u8 op_mod[0x10];
6891
Matan Barakb4ff3a32016-02-09 14:57:42 +02006892 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006893
6894 u8 pg_access[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006895 u8 reserved_at_61[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03006896
6897 struct mlx5_ifc_mkc_bits memory_key_mkey_entry;
6898
Matan Barakb4ff3a32016-02-09 14:57:42 +02006899 u8 reserved_at_280[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03006900
6901 u8 translations_octword_actual_size[0x20];
6902
Matan Barakb4ff3a32016-02-09 14:57:42 +02006903 u8 reserved_at_320[0x560];
Saeed Mahameede2816822015-05-28 22:28:40 +03006904
6905 u8 klm_pas_mtt[0][0x20];
6906};
6907
6908struct mlx5_ifc_create_flow_table_out_bits {
6909 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006910 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006911
6912 u8 syndrome[0x20];
6913
Matan Barakb4ff3a32016-02-09 14:57:42 +02006914 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006915 u8 table_id[0x18];
6916
Matan Barakb4ff3a32016-02-09 14:57:42 +02006917 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006918};
6919
Maor Gottlieb0c90e9c2017-03-12 11:35:23 +02006920struct mlx5_ifc_flow_table_context_bits {
6921 u8 encap_en[0x1];
6922 u8 decap_en[0x1];
6923 u8 reserved_at_2[0x2];
6924 u8 table_miss_action[0x4];
6925 u8 level[0x8];
6926 u8 reserved_at_10[0x8];
6927 u8 log_size[0x8];
6928
6929 u8 reserved_at_20[0x8];
6930 u8 table_miss_id[0x18];
6931
6932 u8 reserved_at_40[0x8];
6933 u8 lag_master_next_table_id[0x18];
6934
6935 u8 reserved_at_60[0xe0];
6936};
6937
Saeed Mahameede2816822015-05-28 22:28:40 +03006938struct mlx5_ifc_create_flow_table_in_bits {
6939 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006940 u8 reserved_at_10[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
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03006945 u8 other_vport[0x1];
6946 u8 reserved_at_41[0xf];
6947 u8 vport_number[0x10];
6948
6949 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006950
6951 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006952 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006953
Matan Barakb4ff3a32016-02-09 14:57:42 +02006954 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006955
Maor Gottlieb0c90e9c2017-03-12 11:35:23 +02006956 struct mlx5_ifc_flow_table_context_bits flow_table_context;
Saeed Mahameede2816822015-05-28 22:28:40 +03006957};
6958
6959struct mlx5_ifc_create_flow_group_out_bits {
6960 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006961 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006962
6963 u8 syndrome[0x20];
6964
Matan Barakb4ff3a32016-02-09 14:57:42 +02006965 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006966 u8 group_id[0x18];
6967
Matan Barakb4ff3a32016-02-09 14:57:42 +02006968 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006969};
6970
6971enum {
6972 MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_OUTER_HEADERS = 0x0,
6973 MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS = 0x1,
6974 MLX5_CREATE_FLOW_GROUP_IN_MATCH_CRITERIA_ENABLE_INNER_HEADERS = 0x2,
6975};
6976
6977struct mlx5_ifc_create_flow_group_in_bits {
6978 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006979 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006980
Matan Barakb4ff3a32016-02-09 14:57:42 +02006981 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03006982 u8 op_mod[0x10];
6983
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03006984 u8 other_vport[0x1];
6985 u8 reserved_at_41[0xf];
6986 u8 vport_number[0x10];
6987
6988 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006989
6990 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02006991 u8 reserved_at_88[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03006992
Matan Barakb4ff3a32016-02-09 14:57:42 +02006993 u8 reserved_at_a0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03006994 u8 table_id[0x18];
6995
Matan Barakb4ff3a32016-02-09 14:57:42 +02006996 u8 reserved_at_c0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03006997
6998 u8 start_flow_index[0x20];
6999
Matan Barakb4ff3a32016-02-09 14:57:42 +02007000 u8 reserved_at_100[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007001
7002 u8 end_flow_index[0x20];
7003
Matan Barakb4ff3a32016-02-09 14:57:42 +02007004 u8 reserved_at_140[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03007005
Matan Barakb4ff3a32016-02-09 14:57:42 +02007006 u8 reserved_at_1e0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007007 u8 match_criteria_enable[0x8];
7008
7009 struct mlx5_ifc_fte_match_param_bits match_criteria;
7010
Matan Barakb4ff3a32016-02-09 14:57:42 +02007011 u8 reserved_at_1200[0xe00];
Saeed Mahameede2816822015-05-28 22:28:40 +03007012};
7013
7014struct mlx5_ifc_create_eq_out_bits {
7015 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007016 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007017
7018 u8 syndrome[0x20];
7019
Matan Barakb4ff3a32016-02-09 14:57:42 +02007020 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007021 u8 eq_number[0x8];
7022
Matan Barakb4ff3a32016-02-09 14:57:42 +02007023 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007024};
7025
7026struct mlx5_ifc_create_eq_in_bits {
7027 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007028 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007029
Matan Barakb4ff3a32016-02-09 14:57:42 +02007030 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007031 u8 op_mod[0x10];
7032
Matan Barakb4ff3a32016-02-09 14:57:42 +02007033 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007034
7035 struct mlx5_ifc_eqc_bits eq_context_entry;
7036
Matan Barakb4ff3a32016-02-09 14:57:42 +02007037 u8 reserved_at_280[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007038
7039 u8 event_bitmask[0x40];
7040
Matan Barakb4ff3a32016-02-09 14:57:42 +02007041 u8 reserved_at_300[0x580];
Saeed Mahameede2816822015-05-28 22:28:40 +03007042
7043 u8 pas[0][0x40];
7044};
7045
7046struct mlx5_ifc_create_dct_out_bits {
7047 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007048 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007049
7050 u8 syndrome[0x20];
7051
Matan Barakb4ff3a32016-02-09 14:57:42 +02007052 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007053 u8 dctn[0x18];
7054
Matan Barakb4ff3a32016-02-09 14:57:42 +02007055 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007056};
7057
7058struct mlx5_ifc_create_dct_in_bits {
7059 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007060 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007061
Matan Barakb4ff3a32016-02-09 14:57:42 +02007062 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007063 u8 op_mod[0x10];
7064
Matan Barakb4ff3a32016-02-09 14:57:42 +02007065 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007066
7067 struct mlx5_ifc_dctc_bits dct_context_entry;
7068
Matan Barakb4ff3a32016-02-09 14:57:42 +02007069 u8 reserved_at_280[0x180];
Saeed Mahameede2816822015-05-28 22:28:40 +03007070};
7071
7072struct mlx5_ifc_create_cq_out_bits {
7073 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007074 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007075
7076 u8 syndrome[0x20];
7077
Matan Barakb4ff3a32016-02-09 14:57:42 +02007078 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007079 u8 cqn[0x18];
7080
Matan Barakb4ff3a32016-02-09 14:57:42 +02007081 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007082};
7083
7084struct mlx5_ifc_create_cq_in_bits {
7085 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007086 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007087
Matan Barakb4ff3a32016-02-09 14:57:42 +02007088 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007089 u8 op_mod[0x10];
7090
Matan Barakb4ff3a32016-02-09 14:57:42 +02007091 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007092
7093 struct mlx5_ifc_cqc_bits cq_context;
7094
Matan Barakb4ff3a32016-02-09 14:57:42 +02007095 u8 reserved_at_280[0x600];
Saeed Mahameede2816822015-05-28 22:28:40 +03007096
7097 u8 pas[0][0x40];
7098};
7099
7100struct mlx5_ifc_config_int_moderation_out_bits {
7101 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007102 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007103
7104 u8 syndrome[0x20];
7105
Matan Barakb4ff3a32016-02-09 14:57:42 +02007106 u8 reserved_at_40[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007107 u8 min_delay[0xc];
7108 u8 int_vector[0x10];
7109
Matan Barakb4ff3a32016-02-09 14:57:42 +02007110 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007111};
7112
7113enum {
7114 MLX5_CONFIG_INT_MODERATION_IN_OP_MOD_WRITE = 0x0,
7115 MLX5_CONFIG_INT_MODERATION_IN_OP_MOD_READ = 0x1,
7116};
7117
7118struct mlx5_ifc_config_int_moderation_in_bits {
7119 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007120 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007121
Matan Barakb4ff3a32016-02-09 14:57:42 +02007122 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007123 u8 op_mod[0x10];
7124
Matan Barakb4ff3a32016-02-09 14:57:42 +02007125 u8 reserved_at_40[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007126 u8 min_delay[0xc];
7127 u8 int_vector[0x10];
7128
Matan Barakb4ff3a32016-02-09 14:57:42 +02007129 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007130};
7131
7132struct mlx5_ifc_attach_to_mcg_out_bits {
7133 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007134 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007135
7136 u8 syndrome[0x20];
7137
Matan Barakb4ff3a32016-02-09 14:57:42 +02007138 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007139};
7140
7141struct mlx5_ifc_attach_to_mcg_in_bits {
7142 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007143 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007144
Matan Barakb4ff3a32016-02-09 14:57:42 +02007145 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007146 u8 op_mod[0x10];
7147
Matan Barakb4ff3a32016-02-09 14:57:42 +02007148 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007149 u8 qpn[0x18];
7150
Matan Barakb4ff3a32016-02-09 14:57:42 +02007151 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007152
7153 u8 multicast_gid[16][0x8];
7154};
7155
Saeed Mahameed74862162016-06-09 15:11:34 +03007156struct mlx5_ifc_arm_xrq_out_bits {
7157 u8 status[0x8];
7158 u8 reserved_at_8[0x18];
7159
7160 u8 syndrome[0x20];
7161
7162 u8 reserved_at_40[0x40];
7163};
7164
7165struct mlx5_ifc_arm_xrq_in_bits {
7166 u8 opcode[0x10];
7167 u8 reserved_at_10[0x10];
7168
7169 u8 reserved_at_20[0x10];
7170 u8 op_mod[0x10];
7171
7172 u8 reserved_at_40[0x8];
7173 u8 xrqn[0x18];
7174
7175 u8 reserved_at_60[0x10];
7176 u8 lwm[0x10];
7177};
7178
Saeed Mahameede2816822015-05-28 22:28:40 +03007179struct mlx5_ifc_arm_xrc_srq_out_bits {
7180 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007181 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007182
7183 u8 syndrome[0x20];
7184
Matan Barakb4ff3a32016-02-09 14:57:42 +02007185 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007186};
7187
7188enum {
7189 MLX5_ARM_XRC_SRQ_IN_OP_MOD_XRC_SRQ = 0x1,
7190};
7191
7192struct mlx5_ifc_arm_xrc_srq_in_bits {
7193 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007194 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007195
Matan Barakb4ff3a32016-02-09 14:57:42 +02007196 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007197 u8 op_mod[0x10];
7198
Matan Barakb4ff3a32016-02-09 14:57:42 +02007199 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007200 u8 xrc_srqn[0x18];
7201
Matan Barakb4ff3a32016-02-09 14:57:42 +02007202 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007203 u8 lwm[0x10];
7204};
7205
7206struct mlx5_ifc_arm_rq_out_bits {
7207 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007208 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007209
7210 u8 syndrome[0x20];
7211
Matan Barakb4ff3a32016-02-09 14:57:42 +02007212 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007213};
7214
7215enum {
Saeed Mahameed74862162016-06-09 15:11:34 +03007216 MLX5_ARM_RQ_IN_OP_MOD_SRQ = 0x1,
7217 MLX5_ARM_RQ_IN_OP_MOD_XRQ = 0x2,
Saeed Mahameede2816822015-05-28 22:28:40 +03007218};
7219
7220struct mlx5_ifc_arm_rq_in_bits {
7221 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007222 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007223
Matan Barakb4ff3a32016-02-09 14:57:42 +02007224 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007225 u8 op_mod[0x10];
7226
Matan Barakb4ff3a32016-02-09 14:57:42 +02007227 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007228 u8 srq_number[0x18];
7229
Matan Barakb4ff3a32016-02-09 14:57:42 +02007230 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007231 u8 lwm[0x10];
7232};
7233
7234struct mlx5_ifc_arm_dct_out_bits {
7235 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007236 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007237
7238 u8 syndrome[0x20];
7239
Matan Barakb4ff3a32016-02-09 14:57:42 +02007240 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007241};
7242
7243struct mlx5_ifc_arm_dct_in_bits {
7244 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007245 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007246
Matan Barakb4ff3a32016-02-09 14:57:42 +02007247 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007248 u8 op_mod[0x10];
7249
Matan Barakb4ff3a32016-02-09 14:57:42 +02007250 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007251 u8 dct_number[0x18];
7252
Matan Barakb4ff3a32016-02-09 14:57:42 +02007253 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007254};
7255
7256struct mlx5_ifc_alloc_xrcd_out_bits {
7257 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007258 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007259
7260 u8 syndrome[0x20];
7261
Matan Barakb4ff3a32016-02-09 14:57:42 +02007262 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007263 u8 xrcd[0x18];
7264
Matan Barakb4ff3a32016-02-09 14:57:42 +02007265 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007266};
7267
7268struct mlx5_ifc_alloc_xrcd_in_bits {
7269 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007270 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007271
Matan Barakb4ff3a32016-02-09 14:57:42 +02007272 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007273 u8 op_mod[0x10];
7274
Matan Barakb4ff3a32016-02-09 14:57:42 +02007275 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007276};
7277
7278struct mlx5_ifc_alloc_uar_out_bits {
7279 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007280 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007281
7282 u8 syndrome[0x20];
7283
Matan Barakb4ff3a32016-02-09 14:57:42 +02007284 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007285 u8 uar[0x18];
7286
Matan Barakb4ff3a32016-02-09 14:57:42 +02007287 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007288};
7289
7290struct mlx5_ifc_alloc_uar_in_bits {
7291 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007292 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007293
Matan Barakb4ff3a32016-02-09 14:57:42 +02007294 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007295 u8 op_mod[0x10];
7296
Matan Barakb4ff3a32016-02-09 14:57:42 +02007297 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007298};
7299
7300struct mlx5_ifc_alloc_transport_domain_out_bits {
7301 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007302 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007303
7304 u8 syndrome[0x20];
7305
Matan Barakb4ff3a32016-02-09 14:57:42 +02007306 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007307 u8 transport_domain[0x18];
7308
Matan Barakb4ff3a32016-02-09 14:57:42 +02007309 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007310};
7311
7312struct mlx5_ifc_alloc_transport_domain_in_bits {
7313 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007314 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007315
Matan Barakb4ff3a32016-02-09 14:57:42 +02007316 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007317 u8 op_mod[0x10];
7318
Matan Barakb4ff3a32016-02-09 14:57:42 +02007319 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007320};
7321
7322struct mlx5_ifc_alloc_q_counter_out_bits {
7323 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007324 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007325
7326 u8 syndrome[0x20];
7327
Matan Barakb4ff3a32016-02-09 14:57:42 +02007328 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007329 u8 counter_set_id[0x8];
7330
Matan Barakb4ff3a32016-02-09 14:57:42 +02007331 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007332};
7333
7334struct mlx5_ifc_alloc_q_counter_in_bits {
7335 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007336 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007337
Matan Barakb4ff3a32016-02-09 14:57:42 +02007338 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007339 u8 op_mod[0x10];
7340
Matan Barakb4ff3a32016-02-09 14:57:42 +02007341 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007342};
7343
7344struct mlx5_ifc_alloc_pd_out_bits {
7345 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007346 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007347
7348 u8 syndrome[0x20];
7349
Matan Barakb4ff3a32016-02-09 14:57:42 +02007350 u8 reserved_at_40[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007351 u8 pd[0x18];
7352
Matan Barakb4ff3a32016-02-09 14:57:42 +02007353 u8 reserved_at_60[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007354};
7355
7356struct mlx5_ifc_alloc_pd_in_bits {
7357 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007358 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007359
Matan Barakb4ff3a32016-02-09 14:57:42 +02007360 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007361 u8 op_mod[0x10];
7362
Matan Barakb4ff3a32016-02-09 14:57:42 +02007363 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007364};
7365
Amir Vadai9dc0b282016-05-13 12:55:39 +00007366struct mlx5_ifc_alloc_flow_counter_out_bits {
7367 u8 status[0x8];
7368 u8 reserved_at_8[0x18];
7369
7370 u8 syndrome[0x20];
7371
Rabie Louloua8ffcc72017-07-09 13:39:30 +03007372 u8 flow_counter_id[0x20];
Amir Vadai9dc0b282016-05-13 12:55:39 +00007373
7374 u8 reserved_at_60[0x20];
7375};
7376
7377struct mlx5_ifc_alloc_flow_counter_in_bits {
7378 u8 opcode[0x10];
7379 u8 reserved_at_10[0x10];
7380
7381 u8 reserved_at_20[0x10];
7382 u8 op_mod[0x10];
7383
7384 u8 reserved_at_40[0x40];
7385};
7386
Saeed Mahameede2816822015-05-28 22:28:40 +03007387struct mlx5_ifc_add_vxlan_udp_dport_out_bits {
7388 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007389 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007390
7391 u8 syndrome[0x20];
7392
Matan Barakb4ff3a32016-02-09 14:57:42 +02007393 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007394};
7395
7396struct mlx5_ifc_add_vxlan_udp_dport_in_bits {
7397 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007398 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007399
Matan Barakb4ff3a32016-02-09 14:57:42 +02007400 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007401 u8 op_mod[0x10];
7402
Matan Barakb4ff3a32016-02-09 14:57:42 +02007403 u8 reserved_at_40[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007404
Matan Barakb4ff3a32016-02-09 14:57:42 +02007405 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007406 u8 vxlan_udp_port[0x10];
7407};
7408
Eran Ben Elisha37e92a92017-11-13 10:11:27 +02007409struct mlx5_ifc_set_pp_rate_limit_out_bits {
Saeed Mahameed74862162016-06-09 15:11:34 +03007410 u8 status[0x8];
7411 u8 reserved_at_8[0x18];
7412
7413 u8 syndrome[0x20];
7414
7415 u8 reserved_at_40[0x40];
7416};
7417
Eran Ben Elisha37e92a92017-11-13 10:11:27 +02007418struct mlx5_ifc_set_pp_rate_limit_in_bits {
Saeed Mahameed74862162016-06-09 15:11:34 +03007419 u8 opcode[0x10];
7420 u8 reserved_at_10[0x10];
7421
7422 u8 reserved_at_20[0x10];
7423 u8 op_mod[0x10];
7424
7425 u8 reserved_at_40[0x10];
7426 u8 rate_limit_index[0x10];
7427
7428 u8 reserved_at_60[0x20];
7429
7430 u8 rate_limit[0x20];
Eran Ben Elisha37e92a92017-11-13 10:11:27 +02007431
Bodong Wang05d3ac92018-03-19 15:10:29 +02007432 u8 burst_upper_bound[0x20];
7433
7434 u8 reserved_at_c0[0x10];
7435 u8 typical_packet_size[0x10];
7436
7437 u8 reserved_at_e0[0x120];
Saeed Mahameed74862162016-06-09 15:11:34 +03007438};
7439
Saeed Mahameede2816822015-05-28 22:28:40 +03007440struct mlx5_ifc_access_register_out_bits {
7441 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007442 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007443
7444 u8 syndrome[0x20];
7445
Matan Barakb4ff3a32016-02-09 14:57:42 +02007446 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007447
7448 u8 register_data[0][0x20];
7449};
7450
7451enum {
7452 MLX5_ACCESS_REGISTER_IN_OP_MOD_WRITE = 0x0,
7453 MLX5_ACCESS_REGISTER_IN_OP_MOD_READ = 0x1,
7454};
7455
7456struct mlx5_ifc_access_register_in_bits {
7457 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007458 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007459
Matan Barakb4ff3a32016-02-09 14:57:42 +02007460 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007461 u8 op_mod[0x10];
7462
Matan Barakb4ff3a32016-02-09 14:57:42 +02007463 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007464 u8 register_id[0x10];
7465
7466 u8 argument[0x20];
7467
7468 u8 register_data[0][0x20];
7469};
7470
7471struct mlx5_ifc_sltp_reg_bits {
7472 u8 status[0x4];
7473 u8 version[0x4];
7474 u8 local_port[0x8];
7475 u8 pnat[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007476 u8 reserved_at_12[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03007477 u8 lane[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007478 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007479
Matan Barakb4ff3a32016-02-09 14:57:42 +02007480 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007481
Matan Barakb4ff3a32016-02-09 14:57:42 +02007482 u8 reserved_at_40[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03007483 u8 polarity[0x1];
7484 u8 ob_tap0[0x8];
7485 u8 ob_tap1[0x8];
7486 u8 ob_tap2[0x8];
7487
Matan Barakb4ff3a32016-02-09 14:57:42 +02007488 u8 reserved_at_60[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03007489 u8 ob_preemp_mode[0x4];
7490 u8 ob_reg[0x8];
7491 u8 ob_bias[0x8];
7492
Matan Barakb4ff3a32016-02-09 14:57:42 +02007493 u8 reserved_at_80[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007494};
7495
7496struct mlx5_ifc_slrg_reg_bits {
7497 u8 status[0x4];
7498 u8 version[0x4];
7499 u8 local_port[0x8];
7500 u8 pnat[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007501 u8 reserved_at_12[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03007502 u8 lane[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007503 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007504
7505 u8 time_to_link_up[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007506 u8 reserved_at_30[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03007507 u8 grade_lane_speed[0x4];
7508
7509 u8 grade_version[0x8];
7510 u8 grade[0x18];
7511
Matan Barakb4ff3a32016-02-09 14:57:42 +02007512 u8 reserved_at_60[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007513 u8 height_grade_type[0x4];
7514 u8 height_grade[0x18];
7515
7516 u8 height_dz[0x10];
7517 u8 height_dv[0x10];
7518
Matan Barakb4ff3a32016-02-09 14:57:42 +02007519 u8 reserved_at_a0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007520 u8 height_sigma[0x10];
7521
Matan Barakb4ff3a32016-02-09 14:57:42 +02007522 u8 reserved_at_c0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007523
Matan Barakb4ff3a32016-02-09 14:57:42 +02007524 u8 reserved_at_e0[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007525 u8 phase_grade_type[0x4];
7526 u8 phase_grade[0x18];
7527
Matan Barakb4ff3a32016-02-09 14:57:42 +02007528 u8 reserved_at_100[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007529 u8 phase_eo_pos[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007530 u8 reserved_at_110[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007531 u8 phase_eo_neg[0x8];
7532
7533 u8 ffe_set_tested[0x10];
7534 u8 test_errors_per_lane[0x10];
7535};
7536
7537struct mlx5_ifc_pvlc_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007538 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007539 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007540 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007541
Matan Barakb4ff3a32016-02-09 14:57:42 +02007542 u8 reserved_at_20[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007543 u8 vl_hw_cap[0x4];
7544
Matan Barakb4ff3a32016-02-09 14:57:42 +02007545 u8 reserved_at_40[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007546 u8 vl_admin[0x4];
7547
Matan Barakb4ff3a32016-02-09 14:57:42 +02007548 u8 reserved_at_60[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007549 u8 vl_operational[0x4];
7550};
7551
7552struct mlx5_ifc_pude_reg_bits {
7553 u8 swid[0x8];
7554 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007555 u8 reserved_at_10[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007556 u8 admin_status[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007557 u8 reserved_at_18[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007558 u8 oper_status[0x4];
7559
Matan Barakb4ff3a32016-02-09 14:57:42 +02007560 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03007561};
7562
7563struct mlx5_ifc_ptys_reg_bits {
Bodong Wange7e31ca2016-09-07 19:07:58 +03007564 u8 reserved_at_0[0x1];
Saeed Mahameed74862162016-06-09 15:11:34 +03007565 u8 an_disable_admin[0x1];
Bodong Wange7e31ca2016-09-07 19:07:58 +03007566 u8 an_disable_cap[0x1];
7567 u8 reserved_at_3[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03007568 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007569 u8 reserved_at_10[0xd];
Saeed Mahameede2816822015-05-28 22:28:40 +03007570 u8 proto_mask[0x3];
7571
Saeed Mahameed74862162016-06-09 15:11:34 +03007572 u8 an_status[0x4];
7573 u8 reserved_at_24[0x3c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007574
7575 u8 eth_proto_capability[0x20];
7576
7577 u8 ib_link_width_capability[0x10];
7578 u8 ib_proto_capability[0x10];
7579
Matan Barakb4ff3a32016-02-09 14:57:42 +02007580 u8 reserved_at_a0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007581
7582 u8 eth_proto_admin[0x20];
7583
7584 u8 ib_link_width_admin[0x10];
7585 u8 ib_proto_admin[0x10];
7586
Matan Barakb4ff3a32016-02-09 14:57:42 +02007587 u8 reserved_at_100[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007588
7589 u8 eth_proto_oper[0x20];
7590
7591 u8 ib_link_width_oper[0x10];
7592 u8 ib_proto_oper[0x10];
7593
Eran Ben Elisha5b4793f2017-02-13 14:00:59 +02007594 u8 reserved_at_160[0x1c];
7595 u8 connector_type[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007596
7597 u8 eth_proto_lp_advertise[0x20];
7598
Matan Barakb4ff3a32016-02-09 14:57:42 +02007599 u8 reserved_at_1a0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03007600};
7601
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03007602struct mlx5_ifc_mlcr_reg_bits {
7603 u8 reserved_at_0[0x8];
7604 u8 local_port[0x8];
7605 u8 reserved_at_10[0x20];
7606
7607 u8 beacon_duration[0x10];
7608 u8 reserved_at_40[0x10];
7609
7610 u8 beacon_remain[0x10];
7611};
7612
Saeed Mahameede2816822015-05-28 22:28:40 +03007613struct mlx5_ifc_ptas_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007614 u8 reserved_at_0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007615
7616 u8 algorithm_options[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007617 u8 reserved_at_30[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007618 u8 repetitions_mode[0x4];
7619 u8 num_of_repetitions[0x8];
7620
7621 u8 grade_version[0x8];
7622 u8 height_grade_type[0x4];
7623 u8 phase_grade_type[0x4];
7624 u8 height_grade_weight[0x8];
7625 u8 phase_grade_weight[0x8];
7626
7627 u8 gisim_measure_bits[0x10];
7628 u8 adaptive_tap_measure_bits[0x10];
7629
7630 u8 ber_bath_high_error_threshold[0x10];
7631 u8 ber_bath_mid_error_threshold[0x10];
7632
7633 u8 ber_bath_low_error_threshold[0x10];
7634 u8 one_ratio_high_threshold[0x10];
7635
7636 u8 one_ratio_high_mid_threshold[0x10];
7637 u8 one_ratio_low_mid_threshold[0x10];
7638
7639 u8 one_ratio_low_threshold[0x10];
7640 u8 ndeo_error_threshold[0x10];
7641
7642 u8 mixer_offset_step_size[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007643 u8 reserved_at_110[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007644 u8 mix90_phase_for_voltage_bath[0x8];
7645
7646 u8 mixer_offset_start[0x10];
7647 u8 mixer_offset_end[0x10];
7648
Matan Barakb4ff3a32016-02-09 14:57:42 +02007649 u8 reserved_at_140[0x15];
Saeed Mahameede2816822015-05-28 22:28:40 +03007650 u8 ber_test_time[0xb];
7651};
7652
7653struct mlx5_ifc_pspa_reg_bits {
7654 u8 swid[0x8];
7655 u8 local_port[0x8];
7656 u8 sub_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007657 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007658
Matan Barakb4ff3a32016-02-09 14:57:42 +02007659 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007660};
7661
7662struct mlx5_ifc_pqdr_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007663 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007664 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007665 u8 reserved_at_10[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03007666 u8 prio[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007667 u8 reserved_at_18[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03007668 u8 mode[0x2];
7669
Matan Barakb4ff3a32016-02-09 14:57:42 +02007670 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007671
Matan Barakb4ff3a32016-02-09 14:57:42 +02007672 u8 reserved_at_40[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007673 u8 min_threshold[0x10];
7674
Matan Barakb4ff3a32016-02-09 14:57:42 +02007675 u8 reserved_at_60[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007676 u8 max_threshold[0x10];
7677
Matan Barakb4ff3a32016-02-09 14:57:42 +02007678 u8 reserved_at_80[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007679 u8 mark_probability_denominator[0x10];
7680
Matan Barakb4ff3a32016-02-09 14:57:42 +02007681 u8 reserved_at_a0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03007682};
7683
7684struct mlx5_ifc_ppsc_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007685 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007686 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007687 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007688
Matan Barakb4ff3a32016-02-09 14:57:42 +02007689 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03007690
Matan Barakb4ff3a32016-02-09 14:57:42 +02007691 u8 reserved_at_80[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007692 u8 wrps_admin[0x4];
7693
Matan Barakb4ff3a32016-02-09 14:57:42 +02007694 u8 reserved_at_a0[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007695 u8 wrps_status[0x4];
7696
Matan Barakb4ff3a32016-02-09 14:57:42 +02007697 u8 reserved_at_c0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007698 u8 up_threshold[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007699 u8 reserved_at_d0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007700 u8 down_threshold[0x8];
7701
Matan Barakb4ff3a32016-02-09 14:57:42 +02007702 u8 reserved_at_e0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007703
Matan Barakb4ff3a32016-02-09 14:57:42 +02007704 u8 reserved_at_100[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007705 u8 srps_admin[0x4];
7706
Matan Barakb4ff3a32016-02-09 14:57:42 +02007707 u8 reserved_at_120[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007708 u8 srps_status[0x4];
7709
Matan Barakb4ff3a32016-02-09 14:57:42 +02007710 u8 reserved_at_140[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007711};
7712
7713struct mlx5_ifc_pplr_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007714 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007715 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007716 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007717
Matan Barakb4ff3a32016-02-09 14:57:42 +02007718 u8 reserved_at_20[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007719 u8 lb_cap[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007720 u8 reserved_at_30[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007721 u8 lb_en[0x8];
7722};
7723
7724struct mlx5_ifc_pplm_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007725 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007726 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007727 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007728
Matan Barakb4ff3a32016-02-09 14:57:42 +02007729 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007730
7731 u8 port_profile_mode[0x8];
7732 u8 static_port_profile[0x8];
7733 u8 active_port_profile[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007734 u8 reserved_at_58[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007735
7736 u8 retransmission_active[0x8];
7737 u8 fec_mode_active[0x18];
7738
Matan Barakb4ff3a32016-02-09 14:57:42 +02007739 u8 reserved_at_80[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007740};
7741
7742struct mlx5_ifc_ppcnt_reg_bits {
7743 u8 swid[0x8];
7744 u8 local_port[0x8];
7745 u8 pnat[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007746 u8 reserved_at_12[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007747 u8 grp[0x6];
7748
7749 u8 clr[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007750 u8 reserved_at_21[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007751 u8 prio_tc[0x3];
7752
7753 union mlx5_ifc_eth_cntrs_grp_data_layout_auto_bits counter_set;
7754};
7755
Gal Pressman8ed1a632016-11-17 13:46:01 +02007756struct mlx5_ifc_mpcnt_reg_bits {
7757 u8 reserved_at_0[0x8];
7758 u8 pcie_index[0x8];
7759 u8 reserved_at_10[0xa];
7760 u8 grp[0x6];
7761
7762 u8 clr[0x1];
7763 u8 reserved_at_21[0x1f];
7764
7765 union mlx5_ifc_pcie_cntrs_grp_data_layout_auto_bits counter_set;
7766};
7767
Saeed Mahameede2816822015-05-28 22:28:40 +03007768struct mlx5_ifc_ppad_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007769 u8 reserved_at_0[0x3];
Saeed Mahameede2816822015-05-28 22:28:40 +03007770 u8 single_mac[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007771 u8 reserved_at_4[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007772 u8 local_port[0x8];
7773 u8 mac_47_32[0x10];
7774
7775 u8 mac_31_0[0x20];
7776
Matan Barakb4ff3a32016-02-09 14:57:42 +02007777 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007778};
7779
7780struct mlx5_ifc_pmtu_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007781 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007782 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007783 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007784
7785 u8 max_mtu[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007786 u8 reserved_at_30[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007787
7788 u8 admin_mtu[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007789 u8 reserved_at_50[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007790
7791 u8 oper_mtu[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007792 u8 reserved_at_70[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007793};
7794
7795struct mlx5_ifc_pmpr_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007796 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007797 u8 module[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007798 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007799
Matan Barakb4ff3a32016-02-09 14:57:42 +02007800 u8 reserved_at_20[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007801 u8 attenuation_5g[0x8];
7802
Matan Barakb4ff3a32016-02-09 14:57:42 +02007803 u8 reserved_at_40[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007804 u8 attenuation_7g[0x8];
7805
Matan Barakb4ff3a32016-02-09 14:57:42 +02007806 u8 reserved_at_60[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03007807 u8 attenuation_12g[0x8];
7808};
7809
7810struct mlx5_ifc_pmpe_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007811 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007812 u8 module[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007813 u8 reserved_at_10[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03007814 u8 module_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_pmpc_reg_bits {
7820 u8 module_state_updated[32][0x8];
7821};
7822
7823struct mlx5_ifc_pmlpn_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007824 u8 reserved_at_0[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007825 u8 mlpn_status[0x4];
7826 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007827 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007828
7829 u8 e[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007830 u8 reserved_at_21[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03007831};
7832
7833struct mlx5_ifc_pmlp_reg_bits {
7834 u8 rxtx[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007835 u8 reserved_at_1[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03007836 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007837 u8 reserved_at_10[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007838 u8 width[0x8];
7839
7840 u8 lane0_module_mapping[0x20];
7841
7842 u8 lane1_module_mapping[0x20];
7843
7844 u8 lane2_module_mapping[0x20];
7845
7846 u8 lane3_module_mapping[0x20];
7847
Matan Barakb4ff3a32016-02-09 14:57:42 +02007848 u8 reserved_at_a0[0x160];
Saeed Mahameede2816822015-05-28 22:28:40 +03007849};
7850
7851struct mlx5_ifc_pmaos_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007852 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007853 u8 module[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007854 u8 reserved_at_10[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007855 u8 admin_status[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007856 u8 reserved_at_18[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007857 u8 oper_status[0x4];
7858
7859 u8 ase[0x1];
7860 u8 ee[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007861 u8 reserved_at_22[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03007862 u8 e[0x2];
7863
Matan Barakb4ff3a32016-02-09 14:57:42 +02007864 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03007865};
7866
7867struct mlx5_ifc_plpc_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007868 u8 reserved_at_0[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007869 u8 profile_id[0xc];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007870 u8 reserved_at_10[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007871 u8 proto_mask[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007872 u8 reserved_at_18[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007873
Matan Barakb4ff3a32016-02-09 14:57:42 +02007874 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007875 u8 lane_speed[0x10];
7876
Matan Barakb4ff3a32016-02-09 14:57:42 +02007877 u8 reserved_at_40[0x17];
Saeed Mahameede2816822015-05-28 22:28:40 +03007878 u8 lpbf[0x1];
7879 u8 fec_mode_policy[0x8];
7880
7881 u8 retransmission_capability[0x8];
7882 u8 fec_mode_capability[0x18];
7883
7884 u8 retransmission_support_admin[0x8];
7885 u8 fec_mode_support_admin[0x18];
7886
7887 u8 retransmission_request_admin[0x8];
7888 u8 fec_mode_request_admin[0x18];
7889
Matan Barakb4ff3a32016-02-09 14:57:42 +02007890 u8 reserved_at_c0[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03007891};
7892
7893struct mlx5_ifc_plib_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007894 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007895 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007896 u8 reserved_at_10[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007897 u8 ib_port[0x8];
7898
Matan Barakb4ff3a32016-02-09 14:57:42 +02007899 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03007900};
7901
7902struct mlx5_ifc_plbf_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007903 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007904 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007905 u8 reserved_at_10[0xd];
Saeed Mahameede2816822015-05-28 22:28:40 +03007906 u8 lbf_mode[0x3];
7907
Matan Barakb4ff3a32016-02-09 14:57:42 +02007908 u8 reserved_at_20[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03007909};
7910
7911struct mlx5_ifc_pipg_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007912 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007913 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007914 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007915
7916 u8 dic[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007917 u8 reserved_at_21[0x19];
Saeed Mahameede2816822015-05-28 22:28:40 +03007918 u8 ipg[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007919 u8 reserved_at_3e[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03007920};
7921
7922struct mlx5_ifc_pifr_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007923 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007924 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007925 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007926
Matan Barakb4ff3a32016-02-09 14:57:42 +02007927 u8 reserved_at_20[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03007928
7929 u8 port_filter[8][0x20];
7930
7931 u8 port_filter_update_en[8][0x20];
7932};
7933
7934struct mlx5_ifc_pfcc_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007935 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007936 u8 local_port[0x8];
Inbar Karmy2afa6092017-11-20 18:06:20 +02007937 u8 reserved_at_10[0xb];
7938 u8 ppan_mask_n[0x1];
7939 u8 minor_stall_mask[0x1];
7940 u8 critical_stall_mask[0x1];
7941 u8 reserved_at_1e[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03007942
7943 u8 ppan[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007944 u8 reserved_at_24[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007945 u8 prio_mask_tx[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007946 u8 reserved_at_30[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007947 u8 prio_mask_rx[0x8];
7948
7949 u8 pptx[0x1];
7950 u8 aptx[0x1];
Inbar Karmy2afa6092017-11-20 18:06:20 +02007951 u8 pptx_mask_n[0x1];
7952 u8 reserved_at_43[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03007953 u8 pfctx[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007954 u8 reserved_at_50[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007955
7956 u8 pprx[0x1];
7957 u8 aprx[0x1];
Inbar Karmy2afa6092017-11-20 18:06:20 +02007958 u8 pprx_mask_n[0x1];
7959 u8 reserved_at_63[0x5];
Saeed Mahameede2816822015-05-28 22:28:40 +03007960 u8 pfcrx[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007961 u8 reserved_at_70[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007962
Inbar Karmy2afa6092017-11-20 18:06:20 +02007963 u8 device_stall_minor_watermark[0x10];
7964 u8 device_stall_critical_watermark[0x10];
7965
7966 u8 reserved_at_a0[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03007967};
7968
7969struct mlx5_ifc_pelc_reg_bits {
7970 u8 op[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007971 u8 reserved_at_4[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03007972 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007973 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007974
7975 u8 op_admin[0x8];
7976 u8 op_capability[0x8];
7977 u8 op_request[0x8];
7978 u8 op_active[0x8];
7979
7980 u8 admin[0x40];
7981
7982 u8 capability[0x40];
7983
7984 u8 request[0x40];
7985
7986 u8 active[0x40];
7987
Matan Barakb4ff3a32016-02-09 14:57:42 +02007988 u8 reserved_at_140[0x80];
Saeed Mahameede2816822015-05-28 22:28:40 +03007989};
7990
7991struct mlx5_ifc_peir_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02007992 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03007993 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007994 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007995
Matan Barakb4ff3a32016-02-09 14:57:42 +02007996 u8 reserved_at_20[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03007997 u8 error_count[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02007998 u8 reserved_at_30[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03007999
Matan Barakb4ff3a32016-02-09 14:57:42 +02008000 u8 reserved_at_40[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03008001 u8 lane[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008002 u8 reserved_at_50[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008003 u8 error_type[0x8];
8004};
8005
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008006struct mlx5_ifc_pcam_enhanced_features_bits {
Inbar Karmy2fcb12d2017-08-17 16:39:47 +03008007 u8 reserved_at_0[0x76];
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008008
Inbar Karmy2fcb12d2017-08-17 16:39:47 +03008009 u8 pfcc_mask[0x1];
8010 u8 reserved_at_77[0x4];
Gal Pressman2dba0792017-06-18 14:56:45 +03008011 u8 rx_buffer_fullness_counters[0x1];
Eran Ben Elisha5b4793f2017-02-13 14:00:59 +02008012 u8 ptys_connector_type[0x1];
8013 u8 reserved_at_7d[0x1];
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008014 u8 ppcnt_discard_group[0x1];
8015 u8 ppcnt_statistical_group[0x1];
8016};
8017
8018struct mlx5_ifc_pcam_reg_bits {
8019 u8 reserved_at_0[0x8];
8020 u8 feature_group[0x8];
8021 u8 reserved_at_10[0x8];
8022 u8 access_reg_group[0x8];
8023
8024 u8 reserved_at_20[0x20];
8025
8026 union {
8027 u8 reserved_at_0[0x80];
8028 } port_access_reg_cap_mask;
8029
8030 u8 reserved_at_c0[0x80];
8031
8032 union {
8033 struct mlx5_ifc_pcam_enhanced_features_bits enhanced_features;
8034 u8 reserved_at_0[0x80];
8035 } feature_cap_mask;
8036
8037 u8 reserved_at_1c0[0xc0];
8038};
8039
8040struct mlx5_ifc_mcam_enhanced_features_bits {
Gal Pressman5405fa22017-06-15 18:29:23 +03008041 u8 reserved_at_0[0x7b];
8042 u8 pcie_outbound_stalled[0x1];
Eran Ben Elishaefae7f72017-05-12 02:47:02 +03008043 u8 tx_overflow_buffer_pkt[0x1];
Eugenia Emantayevfa367682017-05-25 16:09:34 +03008044 u8 mtpps_enh_out_per_adj[0x1];
8045 u8 mtpps_fs[0x1];
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008046 u8 pcie_performance_group[0x1];
8047};
8048
Or Gerlitz0ab87742017-06-11 15:25:38 +03008049struct mlx5_ifc_mcam_access_reg_bits {
8050 u8 reserved_at_0[0x1c];
8051 u8 mcda[0x1];
8052 u8 mcc[0x1];
8053 u8 mcqi[0x1];
8054 u8 reserved_at_1f[0x1];
8055
8056 u8 regs_95_to_64[0x20];
8057 u8 regs_63_to_32[0x20];
8058 u8 regs_31_to_0[0x20];
8059};
8060
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008061struct mlx5_ifc_mcam_reg_bits {
8062 u8 reserved_at_0[0x8];
8063 u8 feature_group[0x8];
8064 u8 reserved_at_10[0x8];
8065 u8 access_reg_group[0x8];
8066
8067 u8 reserved_at_20[0x20];
8068
8069 union {
Or Gerlitz0ab87742017-06-11 15:25:38 +03008070 struct mlx5_ifc_mcam_access_reg_bits access_regs;
Gal Pressmancfdcbcea2016-12-08 15:52:00 +02008071 u8 reserved_at_0[0x80];
8072 } mng_access_reg_cap_mask;
8073
8074 u8 reserved_at_c0[0x80];
8075
8076 union {
8077 struct mlx5_ifc_mcam_enhanced_features_bits enhanced_features;
8078 u8 reserved_at_0[0x80];
8079 } mng_feature_cap_mask;
8080
8081 u8 reserved_at_1c0[0x80];
8082};
8083
Huy Nguyenc02762e2017-07-18 16:03:17 -05008084struct mlx5_ifc_qcam_access_reg_cap_mask {
8085 u8 qcam_access_reg_cap_mask_127_to_20[0x6C];
8086 u8 qpdpm[0x1];
8087 u8 qcam_access_reg_cap_mask_18_to_4[0x0F];
8088 u8 qdpm[0x1];
8089 u8 qpts[0x1];
8090 u8 qcap[0x1];
8091 u8 qcam_access_reg_cap_mask_0[0x1];
8092};
8093
8094struct mlx5_ifc_qcam_qos_feature_cap_mask {
8095 u8 qcam_qos_feature_cap_mask_127_to_1[0x7F];
8096 u8 qpts_trust_both[0x1];
8097};
8098
8099struct mlx5_ifc_qcam_reg_bits {
8100 u8 reserved_at_0[0x8];
8101 u8 feature_group[0x8];
8102 u8 reserved_at_10[0x8];
8103 u8 access_reg_group[0x8];
8104 u8 reserved_at_20[0x20];
8105
8106 union {
8107 struct mlx5_ifc_qcam_access_reg_cap_mask reg_cap;
8108 u8 reserved_at_0[0x80];
8109 } qos_access_reg_cap_mask;
8110
8111 u8 reserved_at_c0[0x80];
8112
8113 union {
8114 struct mlx5_ifc_qcam_qos_feature_cap_mask feature_cap;
8115 u8 reserved_at_0[0x80];
8116 } qos_feature_cap_mask;
8117
8118 u8 reserved_at_1c0[0x80];
8119};
8120
Saeed Mahameede2816822015-05-28 22:28:40 +03008121struct mlx5_ifc_pcap_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008122 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008123 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008124 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008125
8126 u8 port_capability_mask[4][0x20];
8127};
8128
8129struct mlx5_ifc_paos_reg_bits {
8130 u8 swid[0x8];
8131 u8 local_port[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008132 u8 reserved_at_10[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008133 u8 admin_status[0x4];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008134 u8 reserved_at_18[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008135 u8 oper_status[0x4];
8136
8137 u8 ase[0x1];
8138 u8 ee[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008139 u8 reserved_at_22[0x1c];
Saeed Mahameede2816822015-05-28 22:28:40 +03008140 u8 e[0x2];
8141
Matan Barakb4ff3a32016-02-09 14:57:42 +02008142 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03008143};
8144
8145struct mlx5_ifc_pamp_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008146 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008147 u8 opamp_group[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008148 u8 reserved_at_10[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03008149 u8 opamp_group_type[0x4];
8150
8151 u8 start_index[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008152 u8 reserved_at_30[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008153 u8 num_of_indices[0xc];
8154
8155 u8 index_data[18][0x10];
8156};
8157
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03008158struct mlx5_ifc_pcmr_reg_bits {
8159 u8 reserved_at_0[0x8];
8160 u8 local_port[0x8];
8161 u8 reserved_at_10[0x2e];
8162 u8 fcs_cap[0x1];
8163 u8 reserved_at_3f[0x1f];
8164 u8 fcs_chk[0x1];
8165 u8 reserved_at_5f[0x1];
8166};
8167
Saeed Mahameede2816822015-05-28 22:28:40 +03008168struct mlx5_ifc_lane_2_module_mapping_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008169 u8 reserved_at_0[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03008170 u8 rx_lane[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008171 u8 reserved_at_8[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03008172 u8 tx_lane[0x2];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008173 u8 reserved_at_10[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008174 u8 module[0x8];
8175};
8176
8177struct mlx5_ifc_bufferx_reg_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008178 u8 reserved_at_0[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03008179 u8 lossy[0x1];
8180 u8 epsb[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008181 u8 reserved_at_8[0xc];
Saeed Mahameede2816822015-05-28 22:28:40 +03008182 u8 size[0xc];
8183
8184 u8 xoff_threshold[0x10];
8185 u8 xon_threshold[0x10];
8186};
8187
8188struct mlx5_ifc_set_node_in_bits {
8189 u8 node_description[64][0x8];
8190};
8191
8192struct mlx5_ifc_register_power_settings_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008193 u8 reserved_at_0[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008194 u8 power_settings_level[0x8];
8195
Matan Barakb4ff3a32016-02-09 14:57:42 +02008196 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03008197};
8198
8199struct mlx5_ifc_register_host_endianness_bits {
8200 u8 he[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008201 u8 reserved_at_1[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03008202
Matan Barakb4ff3a32016-02-09 14:57:42 +02008203 u8 reserved_at_20[0x60];
Saeed Mahameede2816822015-05-28 22:28:40 +03008204};
8205
8206struct mlx5_ifc_umr_pointer_desc_argument_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008207 u8 reserved_at_0[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03008208
8209 u8 mkey[0x20];
8210
8211 u8 addressh_63_32[0x20];
8212
8213 u8 addressl_31_0[0x20];
8214};
8215
8216struct mlx5_ifc_ud_adrs_vector_bits {
8217 u8 dc_key[0x40];
8218
8219 u8 ext[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008220 u8 reserved_at_41[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03008221 u8 destination_qp_dct[0x18];
8222
8223 u8 static_rate[0x4];
8224 u8 sl_eth_prio[0x4];
8225 u8 fl[0x1];
8226 u8 mlid[0x7];
8227 u8 rlid_udp_sport[0x10];
8228
Matan Barakb4ff3a32016-02-09 14:57:42 +02008229 u8 reserved_at_80[0x20];
Saeed Mahameede2816822015-05-28 22:28:40 +03008230
8231 u8 rmac_47_16[0x20];
8232
8233 u8 rmac_15_0[0x10];
8234 u8 tclass[0x8];
8235 u8 hop_limit[0x8];
8236
Matan Barakb4ff3a32016-02-09 14:57:42 +02008237 u8 reserved_at_e0[0x1];
Saeed Mahameede2816822015-05-28 22:28:40 +03008238 u8 grh[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008239 u8 reserved_at_e2[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03008240 u8 src_addr_index[0x8];
8241 u8 flow_label[0x14];
8242
8243 u8 rgid_rip[16][0x8];
8244};
8245
8246struct mlx5_ifc_pages_req_event_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008247 u8 reserved_at_0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008248 u8 function_id[0x10];
8249
8250 u8 num_pages[0x20];
8251
Matan Barakb4ff3a32016-02-09 14:57:42 +02008252 u8 reserved_at_40[0xa0];
Saeed Mahameede2816822015-05-28 22:28:40 +03008253};
8254
8255struct mlx5_ifc_eqe_bits {
Matan Barakb4ff3a32016-02-09 14:57:42 +02008256 u8 reserved_at_0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008257 u8 event_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008258 u8 reserved_at_10[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008259 u8 event_sub_type[0x8];
8260
Matan Barakb4ff3a32016-02-09 14:57:42 +02008261 u8 reserved_at_20[0xe0];
Saeed Mahameede2816822015-05-28 22:28:40 +03008262
8263 union mlx5_ifc_event_auto_bits event_data;
8264
Matan Barakb4ff3a32016-02-09 14:57:42 +02008265 u8 reserved_at_1e0[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008266 u8 signature[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008267 u8 reserved_at_1f8[0x7];
Saeed Mahameede2816822015-05-28 22:28:40 +03008268 u8 owner[0x1];
8269};
8270
8271enum {
8272 MLX5_CMD_QUEUE_ENTRY_TYPE_PCIE_CMD_IF_TRANSPORT = 0x7,
8273};
8274
8275struct mlx5_ifc_cmd_queue_entry_bits {
8276 u8 type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008277 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008278
8279 u8 input_length[0x20];
8280
8281 u8 input_mailbox_pointer_63_32[0x20];
8282
8283 u8 input_mailbox_pointer_31_9[0x17];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008284 u8 reserved_at_77[0x9];
Saeed Mahameede2816822015-05-28 22:28:40 +03008285
8286 u8 command_input_inline_data[16][0x8];
8287
8288 u8 command_output_inline_data[16][0x8];
8289
8290 u8 output_mailbox_pointer_63_32[0x20];
8291
8292 u8 output_mailbox_pointer_31_9[0x17];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008293 u8 reserved_at_1b7[0x9];
Saeed Mahameede2816822015-05-28 22:28:40 +03008294
8295 u8 output_length[0x20];
8296
8297 u8 token[0x8];
8298 u8 signature[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008299 u8 reserved_at_1f0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008300 u8 status[0x7];
8301 u8 ownership[0x1];
8302};
8303
8304struct mlx5_ifc_cmd_out_bits {
8305 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008306 u8 reserved_at_8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008307
8308 u8 syndrome[0x20];
8309
8310 u8 command_output[0x20];
8311};
8312
8313struct mlx5_ifc_cmd_in_bits {
8314 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008315 u8 reserved_at_10[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008316
Matan Barakb4ff3a32016-02-09 14:57:42 +02008317 u8 reserved_at_20[0x10];
Saeed Mahameede2816822015-05-28 22:28:40 +03008318 u8 op_mod[0x10];
8319
8320 u8 command[0][0x20];
8321};
8322
8323struct mlx5_ifc_cmd_if_box_bits {
8324 u8 mailbox_data[512][0x8];
8325
Matan Barakb4ff3a32016-02-09 14:57:42 +02008326 u8 reserved_at_1000[0x180];
Saeed Mahameede2816822015-05-28 22:28:40 +03008327
8328 u8 next_pointer_63_32[0x20];
8329
8330 u8 next_pointer_31_10[0x16];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008331 u8 reserved_at_11b6[0xa];
Saeed Mahameede2816822015-05-28 22:28:40 +03008332
8333 u8 block_number[0x20];
8334
Matan Barakb4ff3a32016-02-09 14:57:42 +02008335 u8 reserved_at_11e0[0x8];
Saeed Mahameede2816822015-05-28 22:28:40 +03008336 u8 token[0x8];
8337 u8 ctrl_signature[0x8];
8338 u8 signature[0x8];
8339};
8340
8341struct mlx5_ifc_mtt_bits {
8342 u8 ptag_63_32[0x20];
8343
8344 u8 ptag_31_8[0x18];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008345 u8 reserved_at_38[0x6];
Saeed Mahameede2816822015-05-28 22:28:40 +03008346 u8 wr_en[0x1];
8347 u8 rd_en[0x1];
8348};
8349
Tariq Toukan928cfe82016-02-22 18:17:29 +02008350struct mlx5_ifc_query_wol_rol_out_bits {
8351 u8 status[0x8];
8352 u8 reserved_at_8[0x18];
8353
8354 u8 syndrome[0x20];
8355
8356 u8 reserved_at_40[0x10];
8357 u8 rol_mode[0x8];
8358 u8 wol_mode[0x8];
8359
8360 u8 reserved_at_60[0x20];
8361};
8362
8363struct mlx5_ifc_query_wol_rol_in_bits {
8364 u8 opcode[0x10];
8365 u8 reserved_at_10[0x10];
8366
8367 u8 reserved_at_20[0x10];
8368 u8 op_mod[0x10];
8369
8370 u8 reserved_at_40[0x40];
8371};
8372
8373struct mlx5_ifc_set_wol_rol_out_bits {
8374 u8 status[0x8];
8375 u8 reserved_at_8[0x18];
8376
8377 u8 syndrome[0x20];
8378
8379 u8 reserved_at_40[0x40];
8380};
8381
8382struct mlx5_ifc_set_wol_rol_in_bits {
8383 u8 opcode[0x10];
8384 u8 reserved_at_10[0x10];
8385
8386 u8 reserved_at_20[0x10];
8387 u8 op_mod[0x10];
8388
8389 u8 rol_mode_valid[0x1];
8390 u8 wol_mode_valid[0x1];
8391 u8 reserved_at_42[0xe];
8392 u8 rol_mode[0x8];
8393 u8 wol_mode[0x8];
8394
8395 u8 reserved_at_60[0x20];
8396};
8397
Saeed Mahameede2816822015-05-28 22:28:40 +03008398enum {
8399 MLX5_INITIAL_SEG_NIC_INTERFACE_FULL_DRIVER = 0x0,
8400 MLX5_INITIAL_SEG_NIC_INTERFACE_DISABLED = 0x1,
8401 MLX5_INITIAL_SEG_NIC_INTERFACE_NO_DRAM_NIC = 0x2,
8402};
8403
8404enum {
8405 MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_FULL_DRIVER = 0x0,
8406 MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_DISABLED = 0x1,
8407 MLX5_INITIAL_SEG_NIC_INTERFACE_SUPPORTED_NO_DRAM_NIC = 0x2,
8408};
8409
8410enum {
8411 MLX5_INITIAL_SEG_HEALTH_SYNDROME_FW_INTERNAL_ERR = 0x1,
8412 MLX5_INITIAL_SEG_HEALTH_SYNDROME_DEAD_IRISC = 0x7,
8413 MLX5_INITIAL_SEG_HEALTH_SYNDROME_HW_FATAL_ERR = 0x8,
8414 MLX5_INITIAL_SEG_HEALTH_SYNDROME_FW_CRC_ERR = 0x9,
8415 MLX5_INITIAL_SEG_HEALTH_SYNDROME_ICM_FETCH_PCI_ERR = 0xa,
8416 MLX5_INITIAL_SEG_HEALTH_SYNDROME_ICM_PAGE_ERR = 0xb,
8417 MLX5_INITIAL_SEG_HEALTH_SYNDROME_ASYNCHRONOUS_EQ_BUF_OVERRUN = 0xc,
8418 MLX5_INITIAL_SEG_HEALTH_SYNDROME_EQ_IN_ERR = 0xd,
8419 MLX5_INITIAL_SEG_HEALTH_SYNDROME_EQ_INV = 0xe,
8420 MLX5_INITIAL_SEG_HEALTH_SYNDROME_FFSER_ERR = 0xf,
8421 MLX5_INITIAL_SEG_HEALTH_SYNDROME_HIGH_TEMP_ERR = 0x10,
8422};
8423
8424struct mlx5_ifc_initial_seg_bits {
8425 u8 fw_rev_minor[0x10];
8426 u8 fw_rev_major[0x10];
8427
8428 u8 cmd_interface_rev[0x10];
8429 u8 fw_rev_subminor[0x10];
8430
Matan Barakb4ff3a32016-02-09 14:57:42 +02008431 u8 reserved_at_40[0x40];
Saeed Mahameede2816822015-05-28 22:28:40 +03008432
8433 u8 cmdq_phy_addr_63_32[0x20];
8434
8435 u8 cmdq_phy_addr_31_12[0x14];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008436 u8 reserved_at_b4[0x2];
Saeed Mahameede2816822015-05-28 22:28:40 +03008437 u8 nic_interface[0x2];
8438 u8 log_cmdq_size[0x4];
8439 u8 log_cmdq_stride[0x4];
8440
8441 u8 command_doorbell_vector[0x20];
8442
Matan Barakb4ff3a32016-02-09 14:57:42 +02008443 u8 reserved_at_e0[0xf00];
Saeed Mahameede2816822015-05-28 22:28:40 +03008444
8445 u8 initializing[0x1];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008446 u8 reserved_at_fe1[0x4];
Saeed Mahameede2816822015-05-28 22:28:40 +03008447 u8 nic_interface_supported[0x3];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008448 u8 reserved_at_fe8[0x18];
Saeed Mahameede2816822015-05-28 22:28:40 +03008449
8450 struct mlx5_ifc_health_buffer_bits health_buffer;
8451
8452 u8 no_dram_nic_offset[0x20];
8453
Matan Barakb4ff3a32016-02-09 14:57:42 +02008454 u8 reserved_at_1220[0x6e40];
Saeed Mahameede2816822015-05-28 22:28:40 +03008455
Matan Barakb4ff3a32016-02-09 14:57:42 +02008456 u8 reserved_at_8060[0x1f];
Saeed Mahameede2816822015-05-28 22:28:40 +03008457 u8 clear_int[0x1];
8458
8459 u8 health_syndrome[0x8];
8460 u8 health_counter[0x18];
8461
Matan Barakb4ff3a32016-02-09 14:57:42 +02008462 u8 reserved_at_80a0[0x17fc0];
Saeed Mahameede2816822015-05-28 22:28:40 +03008463};
8464
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03008465struct mlx5_ifc_mtpps_reg_bits {
8466 u8 reserved_at_0[0xc];
8467 u8 cap_number_of_pps_pins[0x4];
8468 u8 reserved_at_10[0x4];
8469 u8 cap_max_num_of_pps_in_pins[0x4];
8470 u8 reserved_at_18[0x4];
8471 u8 cap_max_num_of_pps_out_pins[0x4];
8472
8473 u8 reserved_at_20[0x24];
8474 u8 cap_pin_3_mode[0x4];
8475 u8 reserved_at_48[0x4];
8476 u8 cap_pin_2_mode[0x4];
8477 u8 reserved_at_50[0x4];
8478 u8 cap_pin_1_mode[0x4];
8479 u8 reserved_at_58[0x4];
8480 u8 cap_pin_0_mode[0x4];
8481
8482 u8 reserved_at_60[0x4];
8483 u8 cap_pin_7_mode[0x4];
8484 u8 reserved_at_68[0x4];
8485 u8 cap_pin_6_mode[0x4];
8486 u8 reserved_at_70[0x4];
8487 u8 cap_pin_5_mode[0x4];
8488 u8 reserved_at_78[0x4];
8489 u8 cap_pin_4_mode[0x4];
8490
Eugenia Emantayevfa367682017-05-25 16:09:34 +03008491 u8 field_select[0x20];
8492 u8 reserved_at_a0[0x60];
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03008493
8494 u8 enable[0x1];
8495 u8 reserved_at_101[0xb];
8496 u8 pattern[0x4];
8497 u8 reserved_at_110[0x4];
8498 u8 pin_mode[0x4];
8499 u8 pin[0x8];
8500
8501 u8 reserved_at_120[0x20];
8502
8503 u8 time_stamp[0x40];
8504
8505 u8 out_pulse_duration[0x10];
8506 u8 out_periodic_adjustment[0x10];
Eugenia Emantayevfa367682017-05-25 16:09:34 +03008507 u8 enhanced_out_periodic_adjustment[0x20];
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03008508
Eugenia Emantayevfa367682017-05-25 16:09:34 +03008509 u8 reserved_at_1c0[0x20];
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03008510};
8511
8512struct mlx5_ifc_mtppse_reg_bits {
8513 u8 reserved_at_0[0x18];
8514 u8 pin[0x8];
8515 u8 event_arm[0x1];
8516 u8 reserved_at_21[0x1b];
8517 u8 event_generation_mode[0x4];
8518 u8 reserved_at_40[0x40];
8519};
8520
Or Gerlitz47176282017-04-18 13:35:39 +03008521struct mlx5_ifc_mcqi_cap_bits {
8522 u8 supported_info_bitmask[0x20];
8523
8524 u8 component_size[0x20];
8525
8526 u8 max_component_size[0x20];
8527
8528 u8 log_mcda_word_size[0x4];
8529 u8 reserved_at_64[0xc];
8530 u8 mcda_max_write_size[0x10];
8531
8532 u8 rd_en[0x1];
8533 u8 reserved_at_81[0x1];
8534 u8 match_chip_id[0x1];
8535 u8 match_psid[0x1];
8536 u8 check_user_timestamp[0x1];
8537 u8 match_base_guid_mac[0x1];
8538 u8 reserved_at_86[0x1a];
8539};
8540
8541struct mlx5_ifc_mcqi_reg_bits {
8542 u8 read_pending_component[0x1];
8543 u8 reserved_at_1[0xf];
8544 u8 component_index[0x10];
8545
8546 u8 reserved_at_20[0x20];
8547
8548 u8 reserved_at_40[0x1b];
8549 u8 info_type[0x5];
8550
8551 u8 info_size[0x20];
8552
8553 u8 offset[0x20];
8554
8555 u8 reserved_at_a0[0x10];
8556 u8 data_size[0x10];
8557
8558 u8 data[0][0x20];
8559};
8560
8561struct mlx5_ifc_mcc_reg_bits {
8562 u8 reserved_at_0[0x4];
8563 u8 time_elapsed_since_last_cmd[0xc];
8564 u8 reserved_at_10[0x8];
8565 u8 instruction[0x8];
8566
8567 u8 reserved_at_20[0x10];
8568 u8 component_index[0x10];
8569
8570 u8 reserved_at_40[0x8];
8571 u8 update_handle[0x18];
8572
8573 u8 handle_owner_type[0x4];
8574 u8 handle_owner_host_id[0x4];
8575 u8 reserved_at_68[0x1];
8576 u8 control_progress[0x7];
8577 u8 error_code[0x8];
8578 u8 reserved_at_78[0x4];
8579 u8 control_state[0x4];
8580
8581 u8 component_size[0x20];
8582
8583 u8 reserved_at_a0[0x60];
8584};
8585
8586struct mlx5_ifc_mcda_reg_bits {
8587 u8 reserved_at_0[0x8];
8588 u8 update_handle[0x18];
8589
8590 u8 offset[0x20];
8591
8592 u8 reserved_at_40[0x10];
8593 u8 size[0x10];
8594
8595 u8 reserved_at_60[0x20];
8596
8597 u8 data[0][0x20];
8598};
8599
Saeed Mahameede2816822015-05-28 22:28:40 +03008600union mlx5_ifc_ports_control_registers_document_bits {
8601 struct mlx5_ifc_bufferx_reg_bits bufferx_reg;
8602 struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits eth_2819_cntrs_grp_data_layout;
8603 struct mlx5_ifc_eth_2863_cntrs_grp_data_layout_bits eth_2863_cntrs_grp_data_layout;
8604 struct mlx5_ifc_eth_3635_cntrs_grp_data_layout_bits eth_3635_cntrs_grp_data_layout;
8605 struct mlx5_ifc_eth_802_3_cntrs_grp_data_layout_bits eth_802_3_cntrs_grp_data_layout;
8606 struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits eth_extended_cntrs_grp_data_layout;
8607 struct mlx5_ifc_eth_per_prio_grp_data_layout_bits eth_per_prio_grp_data_layout;
8608 struct mlx5_ifc_eth_per_traffic_grp_data_layout_bits eth_per_traffic_grp_data_layout;
8609 struct mlx5_ifc_lane_2_module_mapping_bits lane_2_module_mapping;
8610 struct mlx5_ifc_pamp_reg_bits pamp_reg;
8611 struct mlx5_ifc_paos_reg_bits paos_reg;
8612 struct mlx5_ifc_pcap_reg_bits pcap_reg;
8613 struct mlx5_ifc_peir_reg_bits peir_reg;
8614 struct mlx5_ifc_pelc_reg_bits pelc_reg;
8615 struct mlx5_ifc_pfcc_reg_bits pfcc_reg;
Meny Yossefi1c64bf62016-02-18 18:15:00 +02008616 struct mlx5_ifc_ib_port_cntrs_grp_data_layout_bits ib_port_cntrs_grp_data_layout;
Saeed Mahameede2816822015-05-28 22:28:40 +03008617 struct mlx5_ifc_phys_layer_cntrs_bits phys_layer_cntrs;
8618 struct mlx5_ifc_pifr_reg_bits pifr_reg;
8619 struct mlx5_ifc_pipg_reg_bits pipg_reg;
8620 struct mlx5_ifc_plbf_reg_bits plbf_reg;
8621 struct mlx5_ifc_plib_reg_bits plib_reg;
8622 struct mlx5_ifc_plpc_reg_bits plpc_reg;
8623 struct mlx5_ifc_pmaos_reg_bits pmaos_reg;
8624 struct mlx5_ifc_pmlp_reg_bits pmlp_reg;
8625 struct mlx5_ifc_pmlpn_reg_bits pmlpn_reg;
8626 struct mlx5_ifc_pmpc_reg_bits pmpc_reg;
8627 struct mlx5_ifc_pmpe_reg_bits pmpe_reg;
8628 struct mlx5_ifc_pmpr_reg_bits pmpr_reg;
8629 struct mlx5_ifc_pmtu_reg_bits pmtu_reg;
8630 struct mlx5_ifc_ppad_reg_bits ppad_reg;
8631 struct mlx5_ifc_ppcnt_reg_bits ppcnt_reg;
Gal Pressman8ed1a632016-11-17 13:46:01 +02008632 struct mlx5_ifc_mpcnt_reg_bits mpcnt_reg;
Saeed Mahameede2816822015-05-28 22:28:40 +03008633 struct mlx5_ifc_pplm_reg_bits pplm_reg;
8634 struct mlx5_ifc_pplr_reg_bits pplr_reg;
8635 struct mlx5_ifc_ppsc_reg_bits ppsc_reg;
8636 struct mlx5_ifc_pqdr_reg_bits pqdr_reg;
8637 struct mlx5_ifc_pspa_reg_bits pspa_reg;
8638 struct mlx5_ifc_ptas_reg_bits ptas_reg;
8639 struct mlx5_ifc_ptys_reg_bits ptys_reg;
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03008640 struct mlx5_ifc_mlcr_reg_bits mlcr_reg;
Saeed Mahameede2816822015-05-28 22:28:40 +03008641 struct mlx5_ifc_pude_reg_bits pude_reg;
8642 struct mlx5_ifc_pvlc_reg_bits pvlc_reg;
8643 struct mlx5_ifc_slrg_reg_bits slrg_reg;
8644 struct mlx5_ifc_sltp_reg_bits sltp_reg;
Eugenia Emantayevf9a1ef72016-10-10 16:05:53 +03008645 struct mlx5_ifc_mtpps_reg_bits mtpps_reg;
8646 struct mlx5_ifc_mtppse_reg_bits mtppse_reg;
Ilan Tayaria9956d32017-04-18 13:10:41 +03008647 struct mlx5_ifc_fpga_access_reg_bits fpga_access_reg;
Ilan Tayarie29341f2017-03-13 20:05:45 +02008648 struct mlx5_ifc_fpga_ctrl_bits fpga_ctrl_bits;
8649 struct mlx5_ifc_fpga_cap_bits fpga_cap_bits;
Or Gerlitz47176282017-04-18 13:35:39 +03008650 struct mlx5_ifc_mcqi_reg_bits mcqi_reg;
8651 struct mlx5_ifc_mcc_reg_bits mcc_reg;
8652 struct mlx5_ifc_mcda_reg_bits mcda_reg;
Matan Barakb4ff3a32016-02-09 14:57:42 +02008653 u8 reserved_at_0[0x60e0];
Saeed Mahameede2816822015-05-28 22:28:40 +03008654};
8655
8656union mlx5_ifc_debug_enhancements_document_bits {
8657 struct mlx5_ifc_health_buffer_bits health_buffer;
Matan Barakb4ff3a32016-02-09 14:57:42 +02008658 u8 reserved_at_0[0x200];
Saeed Mahameede2816822015-05-28 22:28:40 +03008659};
8660
8661union mlx5_ifc_uplink_pci_interface_document_bits {
8662 struct mlx5_ifc_initial_seg_bits initial_seg;
Matan Barakb4ff3a32016-02-09 14:57:42 +02008663 u8 reserved_at_0[0x20060];
Eli Cohenb7755162014-10-02 12:19:44 +03008664};
8665
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02008666struct mlx5_ifc_set_flow_table_root_out_bits {
8667 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008668 u8 reserved_at_8[0x18];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02008669
8670 u8 syndrome[0x20];
8671
Matan Barakb4ff3a32016-02-09 14:57:42 +02008672 u8 reserved_at_40[0x40];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02008673};
8674
8675struct mlx5_ifc_set_flow_table_root_in_bits {
8676 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008677 u8 reserved_at_10[0x10];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02008678
Matan Barakb4ff3a32016-02-09 14:57:42 +02008679 u8 reserved_at_20[0x10];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02008680 u8 op_mod[0x10];
8681
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03008682 u8 other_vport[0x1];
8683 u8 reserved_at_41[0xf];
8684 u8 vport_number[0x10];
8685
8686 u8 reserved_at_60[0x20];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02008687
8688 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008689 u8 reserved_at_88[0x18];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02008690
Matan Barakb4ff3a32016-02-09 14:57:42 +02008691 u8 reserved_at_a0[0x8];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02008692 u8 table_id[0x18];
8693
Erez Shitrit500a3d02017-04-13 06:36:51 +03008694 u8 reserved_at_c0[0x8];
8695 u8 underlay_qpn[0x18];
8696 u8 reserved_at_e0[0x120];
Maor Gottlieb2cc43b42016-01-11 10:25:59 +02008697};
8698
Maor Gottlieb34a40e62016-01-11 10:26:00 +02008699enum {
Aviv Heller84df61e2016-05-10 13:47:50 +03008700 MLX5_MODIFY_FLOW_TABLE_MISS_TABLE_ID = (1UL << 0),
8701 MLX5_MODIFY_FLOW_TABLE_LAG_NEXT_TABLE_ID = (1UL << 15),
Maor Gottlieb34a40e62016-01-11 10:26:00 +02008702};
8703
8704struct mlx5_ifc_modify_flow_table_out_bits {
8705 u8 status[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008706 u8 reserved_at_8[0x18];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02008707
8708 u8 syndrome[0x20];
8709
Matan Barakb4ff3a32016-02-09 14:57:42 +02008710 u8 reserved_at_40[0x40];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02008711};
8712
8713struct mlx5_ifc_modify_flow_table_in_bits {
8714 u8 opcode[0x10];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008715 u8 reserved_at_10[0x10];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02008716
Matan Barakb4ff3a32016-02-09 14:57:42 +02008717 u8 reserved_at_20[0x10];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02008718 u8 op_mod[0x10];
8719
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03008720 u8 other_vport[0x1];
8721 u8 reserved_at_41[0xf];
8722 u8 vport_number[0x10];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02008723
Matan Barakb4ff3a32016-02-09 14:57:42 +02008724 u8 reserved_at_60[0x10];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02008725 u8 modify_field_select[0x10];
8726
8727 u8 table_type[0x8];
Matan Barakb4ff3a32016-02-09 14:57:42 +02008728 u8 reserved_at_88[0x18];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02008729
Matan Barakb4ff3a32016-02-09 14:57:42 +02008730 u8 reserved_at_a0[0x8];
Maor Gottlieb34a40e62016-01-11 10:26:00 +02008731 u8 table_id[0x18];
8732
Maor Gottlieb0c90e9c2017-03-12 11:35:23 +02008733 struct mlx5_ifc_flow_table_context_bits flow_table_context;
Maor Gottlieb34a40e62016-01-11 10:26:00 +02008734};
8735
Saeed Mahameed4f3961e2016-02-22 18:17:25 +02008736struct mlx5_ifc_ets_tcn_config_reg_bits {
8737 u8 g[0x1];
8738 u8 b[0x1];
8739 u8 r[0x1];
8740 u8 reserved_at_3[0x9];
8741 u8 group[0x4];
8742 u8 reserved_at_10[0x9];
8743 u8 bw_allocation[0x7];
8744
8745 u8 reserved_at_20[0xc];
8746 u8 max_bw_units[0x4];
8747 u8 reserved_at_30[0x8];
8748 u8 max_bw_value[0x8];
8749};
8750
8751struct mlx5_ifc_ets_global_config_reg_bits {
8752 u8 reserved_at_0[0x2];
8753 u8 r[0x1];
8754 u8 reserved_at_3[0x1d];
8755
8756 u8 reserved_at_20[0xc];
8757 u8 max_bw_units[0x4];
8758 u8 reserved_at_30[0x8];
8759 u8 max_bw_value[0x8];
8760};
8761
8762struct mlx5_ifc_qetc_reg_bits {
8763 u8 reserved_at_0[0x8];
8764 u8 port_number[0x8];
8765 u8 reserved_at_10[0x30];
8766
8767 struct mlx5_ifc_ets_tcn_config_reg_bits tc_configuration[0x8];
8768 struct mlx5_ifc_ets_global_config_reg_bits global_configuration;
8769};
8770
Huy Nguyen415a64a2017-07-18 16:08:46 -05008771struct mlx5_ifc_qpdpm_dscp_reg_bits {
8772 u8 e[0x1];
8773 u8 reserved_at_01[0x0b];
8774 u8 prio[0x04];
8775};
8776
8777struct mlx5_ifc_qpdpm_reg_bits {
8778 u8 reserved_at_0[0x8];
8779 u8 local_port[0x8];
8780 u8 reserved_at_10[0x10];
8781 struct mlx5_ifc_qpdpm_dscp_reg_bits dscp[64];
8782};
8783
8784struct mlx5_ifc_qpts_reg_bits {
8785 u8 reserved_at_0[0x8];
8786 u8 local_port[0x8];
8787 u8 reserved_at_10[0x2d];
8788 u8 trust_state[0x3];
8789};
8790
Saeed Mahameed4f3961e2016-02-22 18:17:25 +02008791struct mlx5_ifc_qtct_reg_bits {
8792 u8 reserved_at_0[0x8];
8793 u8 port_number[0x8];
8794 u8 reserved_at_10[0xd];
8795 u8 prio[0x3];
8796
8797 u8 reserved_at_20[0x1d];
8798 u8 tclass[0x3];
8799};
8800
Saeed Mahameed7d5e1422016-04-11 23:10:22 +03008801struct mlx5_ifc_mcia_reg_bits {
8802 u8 l[0x1];
8803 u8 reserved_at_1[0x7];
8804 u8 module[0x8];
8805 u8 reserved_at_10[0x8];
8806 u8 status[0x8];
8807
8808 u8 i2c_device_address[0x8];
8809 u8 page_number[0x8];
8810 u8 device_address[0x10];
8811
8812 u8 reserved_at_40[0x10];
8813 u8 size[0x10];
8814
8815 u8 reserved_at_60[0x20];
8816
8817 u8 dword_0[0x20];
8818 u8 dword_1[0x20];
8819 u8 dword_2[0x20];
8820 u8 dword_3[0x20];
8821 u8 dword_4[0x20];
8822 u8 dword_5[0x20];
8823 u8 dword_6[0x20];
8824 u8 dword_7[0x20];
8825 u8 dword_8[0x20];
8826 u8 dword_9[0x20];
8827 u8 dword_10[0x20];
8828 u8 dword_11[0x20];
8829};
8830
Saeed Mahameed74862162016-06-09 15:11:34 +03008831struct mlx5_ifc_dcbx_param_bits {
8832 u8 dcbx_cee_cap[0x1];
8833 u8 dcbx_ieee_cap[0x1];
8834 u8 dcbx_standby_cap[0x1];
8835 u8 reserved_at_0[0x5];
8836 u8 port_number[0x8];
8837 u8 reserved_at_10[0xa];
8838 u8 max_application_table_size[6];
8839 u8 reserved_at_20[0x15];
8840 u8 version_oper[0x3];
8841 u8 reserved_at_38[5];
8842 u8 version_admin[0x3];
8843 u8 willing_admin[0x1];
8844 u8 reserved_at_41[0x3];
8845 u8 pfc_cap_oper[0x4];
8846 u8 reserved_at_48[0x4];
8847 u8 pfc_cap_admin[0x4];
8848 u8 reserved_at_50[0x4];
8849 u8 num_of_tc_oper[0x4];
8850 u8 reserved_at_58[0x4];
8851 u8 num_of_tc_admin[0x4];
8852 u8 remote_willing[0x1];
8853 u8 reserved_at_61[3];
8854 u8 remote_pfc_cap[4];
8855 u8 reserved_at_68[0x14];
8856 u8 remote_num_of_tc[0x4];
8857 u8 reserved_at_80[0x18];
8858 u8 error[0x8];
8859 u8 reserved_at_a0[0x160];
8860};
Aviv Heller84df61e2016-05-10 13:47:50 +03008861
8862struct mlx5_ifc_lagc_bits {
8863 u8 reserved_at_0[0x1d];
8864 u8 lag_state[0x3];
8865
8866 u8 reserved_at_20[0x14];
8867 u8 tx_remap_affinity_2[0x4];
8868 u8 reserved_at_38[0x4];
8869 u8 tx_remap_affinity_1[0x4];
8870};
8871
8872struct mlx5_ifc_create_lag_out_bits {
8873 u8 status[0x8];
8874 u8 reserved_at_8[0x18];
8875
8876 u8 syndrome[0x20];
8877
8878 u8 reserved_at_40[0x40];
8879};
8880
8881struct mlx5_ifc_create_lag_in_bits {
8882 u8 opcode[0x10];
8883 u8 reserved_at_10[0x10];
8884
8885 u8 reserved_at_20[0x10];
8886 u8 op_mod[0x10];
8887
8888 struct mlx5_ifc_lagc_bits ctx;
8889};
8890
8891struct mlx5_ifc_modify_lag_out_bits {
8892 u8 status[0x8];
8893 u8 reserved_at_8[0x18];
8894
8895 u8 syndrome[0x20];
8896
8897 u8 reserved_at_40[0x40];
8898};
8899
8900struct mlx5_ifc_modify_lag_in_bits {
8901 u8 opcode[0x10];
8902 u8 reserved_at_10[0x10];
8903
8904 u8 reserved_at_20[0x10];
8905 u8 op_mod[0x10];
8906
8907 u8 reserved_at_40[0x20];
8908 u8 field_select[0x20];
8909
8910 struct mlx5_ifc_lagc_bits ctx;
8911};
8912
8913struct mlx5_ifc_query_lag_out_bits {
8914 u8 status[0x8];
8915 u8 reserved_at_8[0x18];
8916
8917 u8 syndrome[0x20];
8918
8919 u8 reserved_at_40[0x40];
8920
8921 struct mlx5_ifc_lagc_bits ctx;
8922};
8923
8924struct mlx5_ifc_query_lag_in_bits {
8925 u8 opcode[0x10];
8926 u8 reserved_at_10[0x10];
8927
8928 u8 reserved_at_20[0x10];
8929 u8 op_mod[0x10];
8930
8931 u8 reserved_at_40[0x40];
8932};
8933
8934struct mlx5_ifc_destroy_lag_out_bits {
8935 u8 status[0x8];
8936 u8 reserved_at_8[0x18];
8937
8938 u8 syndrome[0x20];
8939
8940 u8 reserved_at_40[0x40];
8941};
8942
8943struct mlx5_ifc_destroy_lag_in_bits {
8944 u8 opcode[0x10];
8945 u8 reserved_at_10[0x10];
8946
8947 u8 reserved_at_20[0x10];
8948 u8 op_mod[0x10];
8949
8950 u8 reserved_at_40[0x40];
8951};
8952
8953struct mlx5_ifc_create_vport_lag_out_bits {
8954 u8 status[0x8];
8955 u8 reserved_at_8[0x18];
8956
8957 u8 syndrome[0x20];
8958
8959 u8 reserved_at_40[0x40];
8960};
8961
8962struct mlx5_ifc_create_vport_lag_in_bits {
8963 u8 opcode[0x10];
8964 u8 reserved_at_10[0x10];
8965
8966 u8 reserved_at_20[0x10];
8967 u8 op_mod[0x10];
8968
8969 u8 reserved_at_40[0x40];
8970};
8971
8972struct mlx5_ifc_destroy_vport_lag_out_bits {
8973 u8 status[0x8];
8974 u8 reserved_at_8[0x18];
8975
8976 u8 syndrome[0x20];
8977
8978 u8 reserved_at_40[0x40];
8979};
8980
8981struct mlx5_ifc_destroy_vport_lag_in_bits {
8982 u8 opcode[0x10];
8983 u8 reserved_at_10[0x10];
8984
8985 u8 reserved_at_20[0x10];
8986 u8 op_mod[0x10];
8987
8988 u8 reserved_at_40[0x40];
8989};
8990
Ariel Levkovich24da0012018-04-05 18:53:27 +03008991struct mlx5_ifc_alloc_memic_in_bits {
8992 u8 opcode[0x10];
8993 u8 reserved_at_10[0x10];
8994
8995 u8 reserved_at_20[0x10];
8996 u8 op_mod[0x10];
8997
8998 u8 reserved_at_30[0x20];
8999
9000 u8 reserved_at_40[0x18];
9001 u8 log_memic_addr_alignment[0x8];
9002
9003 u8 range_start_addr[0x40];
9004
9005 u8 range_size[0x20];
9006
9007 u8 memic_size[0x20];
9008};
9009
9010struct mlx5_ifc_alloc_memic_out_bits {
9011 u8 status[0x8];
9012 u8 reserved_at_8[0x18];
9013
9014 u8 syndrome[0x20];
9015
9016 u8 memic_start_addr[0x40];
9017};
9018
9019struct mlx5_ifc_dealloc_memic_in_bits {
9020 u8 opcode[0x10];
9021 u8 reserved_at_10[0x10];
9022
9023 u8 reserved_at_20[0x10];
9024 u8 op_mod[0x10];
9025
9026 u8 reserved_at_40[0x40];
9027
9028 u8 memic_start_addr[0x40];
9029
9030 u8 memic_size[0x20];
9031
9032 u8 reserved_at_e0[0x20];
9033};
9034
9035struct mlx5_ifc_dealloc_memic_out_bits {
9036 u8 status[0x8];
9037 u8 reserved_at_8[0x18];
9038
9039 u8 syndrome[0x20];
9040
9041 u8 reserved_at_40[0x40];
9042};
9043
Eli Cohend29b7962014-10-02 12:19:43 +03009044#endif /* MLX5_IFC_H */