1 /* Broadcom NetXtreme-C/E network driver.
3 * Copyright (c) 2014-2016 Broadcom Corporation
4 * Copyright (c) 2016-2019 Broadcom Limited
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation.
10 * DO NOT MODIFY!!! This file is automatically generated.
16 /* hwrm_cmd_hdr (size:128b/16B) */
25 /* hwrm_resp_hdr (size:64b/8B) */
26 struct hwrm_resp_hdr {
33 #define CMD_DISCR_TLV_ENCAP 0x8000UL
34 #define CMD_DISCR_LAST CMD_DISCR_TLV_ENCAP
37 #define TLV_TYPE_HWRM_REQUEST 0x1UL
38 #define TLV_TYPE_HWRM_RESPONSE 0x2UL
39 #define TLV_TYPE_ROCE_SP_COMMAND 0x3UL
40 #define TLV_TYPE_QUERY_ROCE_CC_GEN1 0x4UL
41 #define TLV_TYPE_MODIFY_ROCE_CC_GEN1 0x5UL
42 #define TLV_TYPE_ENGINE_CKV_DEVICE_SERIAL_NUMBER 0x8001UL
43 #define TLV_TYPE_ENGINE_CKV_NONCE 0x8002UL
44 #define TLV_TYPE_ENGINE_CKV_IV 0x8003UL
45 #define TLV_TYPE_ENGINE_CKV_AUTH_TAG 0x8004UL
46 #define TLV_TYPE_ENGINE_CKV_CIPHERTEXT 0x8005UL
47 #define TLV_TYPE_ENGINE_CKV_ALGORITHMS 0x8006UL
48 #define TLV_TYPE_ENGINE_CKV_ECC_PUBLIC_KEY 0x8007UL
49 #define TLV_TYPE_ENGINE_CKV_ECDSA_SIGNATURE 0x8008UL
50 #define TLV_TYPE_LAST TLV_TYPE_ENGINE_CKV_ECDSA_SIGNATURE
53 /* tlv (size:64b/8B) */
58 #define TLV_FLAGS_MORE 0x1UL
59 #define TLV_FLAGS_MORE_LAST 0x0UL
60 #define TLV_FLAGS_MORE_NOT_LAST 0x1UL
61 #define TLV_FLAGS_REQUIRED 0x2UL
62 #define TLV_FLAGS_REQUIRED_NO (0x0UL << 1)
63 #define TLV_FLAGS_REQUIRED_YES (0x1UL << 1)
64 #define TLV_FLAGS_REQUIRED_LAST TLV_FLAGS_REQUIRED_YES
69 /* input (size:128b/16B) */
78 /* output (size:64b/8B) */
86 /* hwrm_short_input (size:128b/16B) */
87 struct hwrm_short_input {
90 #define SHORT_REQ_SIGNATURE_SHORT_CMD 0x4321UL
91 #define SHORT_REQ_SIGNATURE_LAST SHORT_REQ_SIGNATURE_SHORT_CMD
93 #define SHORT_REQ_TARGET_ID_DEFAULT 0x0UL
94 #define SHORT_REQ_TARGET_ID_TOOLS 0xfffdUL
95 #define SHORT_REQ_TARGET_ID_LAST SHORT_REQ_TARGET_ID_TOOLS
100 /* cmd_nums (size:64b/8B) */
103 #define HWRM_VER_GET 0x0UL
104 #define HWRM_ERROR_RECOVERY_QCFG 0xcUL
105 #define HWRM_FUNC_DRV_IF_CHANGE 0xdUL
106 #define HWRM_FUNC_BUF_UNRGTR 0xeUL
107 #define HWRM_FUNC_VF_CFG 0xfUL
108 #define HWRM_RESERVED1 0x10UL
109 #define HWRM_FUNC_RESET 0x11UL
110 #define HWRM_FUNC_GETFID 0x12UL
111 #define HWRM_FUNC_VF_ALLOC 0x13UL
112 #define HWRM_FUNC_VF_FREE 0x14UL
113 #define HWRM_FUNC_QCAPS 0x15UL
114 #define HWRM_FUNC_QCFG 0x16UL
115 #define HWRM_FUNC_CFG 0x17UL
116 #define HWRM_FUNC_QSTATS 0x18UL
117 #define HWRM_FUNC_CLR_STATS 0x19UL
118 #define HWRM_FUNC_DRV_UNRGTR 0x1aUL
119 #define HWRM_FUNC_VF_RESC_FREE 0x1bUL
120 #define HWRM_FUNC_VF_VNIC_IDS_QUERY 0x1cUL
121 #define HWRM_FUNC_DRV_RGTR 0x1dUL
122 #define HWRM_FUNC_DRV_QVER 0x1eUL
123 #define HWRM_FUNC_BUF_RGTR 0x1fUL
124 #define HWRM_PORT_PHY_CFG 0x20UL
125 #define HWRM_PORT_MAC_CFG 0x21UL
126 #define HWRM_PORT_TS_QUERY 0x22UL
127 #define HWRM_PORT_QSTATS 0x23UL
128 #define HWRM_PORT_LPBK_QSTATS 0x24UL
129 #define HWRM_PORT_CLR_STATS 0x25UL
130 #define HWRM_PORT_LPBK_CLR_STATS 0x26UL
131 #define HWRM_PORT_PHY_QCFG 0x27UL
132 #define HWRM_PORT_MAC_QCFG 0x28UL
133 #define HWRM_PORT_MAC_PTP_QCFG 0x29UL
134 #define HWRM_PORT_PHY_QCAPS 0x2aUL
135 #define HWRM_PORT_PHY_I2C_WRITE 0x2bUL
136 #define HWRM_PORT_PHY_I2C_READ 0x2cUL
137 #define HWRM_PORT_LED_CFG 0x2dUL
138 #define HWRM_PORT_LED_QCFG 0x2eUL
139 #define HWRM_PORT_LED_QCAPS 0x2fUL
140 #define HWRM_QUEUE_QPORTCFG 0x30UL
141 #define HWRM_QUEUE_QCFG 0x31UL
142 #define HWRM_QUEUE_CFG 0x32UL
143 #define HWRM_FUNC_VLAN_CFG 0x33UL
144 #define HWRM_FUNC_VLAN_QCFG 0x34UL
145 #define HWRM_QUEUE_PFCENABLE_QCFG 0x35UL
146 #define HWRM_QUEUE_PFCENABLE_CFG 0x36UL
147 #define HWRM_QUEUE_PRI2COS_QCFG 0x37UL
148 #define HWRM_QUEUE_PRI2COS_CFG 0x38UL
149 #define HWRM_QUEUE_COS2BW_QCFG 0x39UL
150 #define HWRM_QUEUE_COS2BW_CFG 0x3aUL
151 #define HWRM_QUEUE_DSCP_QCAPS 0x3bUL
152 #define HWRM_QUEUE_DSCP2PRI_QCFG 0x3cUL
153 #define HWRM_QUEUE_DSCP2PRI_CFG 0x3dUL
154 #define HWRM_VNIC_ALLOC 0x40UL
155 #define HWRM_VNIC_FREE 0x41UL
156 #define HWRM_VNIC_CFG 0x42UL
157 #define HWRM_VNIC_QCFG 0x43UL
158 #define HWRM_VNIC_TPA_CFG 0x44UL
159 #define HWRM_VNIC_TPA_QCFG 0x45UL
160 #define HWRM_VNIC_RSS_CFG 0x46UL
161 #define HWRM_VNIC_RSS_QCFG 0x47UL
162 #define HWRM_VNIC_PLCMODES_CFG 0x48UL
163 #define HWRM_VNIC_PLCMODES_QCFG 0x49UL
164 #define HWRM_VNIC_QCAPS 0x4aUL
165 #define HWRM_RING_ALLOC 0x50UL
166 #define HWRM_RING_FREE 0x51UL
167 #define HWRM_RING_CMPL_RING_QAGGINT_PARAMS 0x52UL
168 #define HWRM_RING_CMPL_RING_CFG_AGGINT_PARAMS 0x53UL
169 #define HWRM_RING_AGGINT_QCAPS 0x54UL
170 #define HWRM_RING_RESET 0x5eUL
171 #define HWRM_RING_GRP_ALLOC 0x60UL
172 #define HWRM_RING_GRP_FREE 0x61UL
173 #define HWRM_RESERVED5 0x64UL
174 #define HWRM_RESERVED6 0x65UL
175 #define HWRM_VNIC_RSS_COS_LB_CTX_ALLOC 0x70UL
176 #define HWRM_VNIC_RSS_COS_LB_CTX_FREE 0x71UL
177 #define HWRM_CFA_L2_FILTER_ALLOC 0x90UL
178 #define HWRM_CFA_L2_FILTER_FREE 0x91UL
179 #define HWRM_CFA_L2_FILTER_CFG 0x92UL
180 #define HWRM_CFA_L2_SET_RX_MASK 0x93UL
181 #define HWRM_CFA_VLAN_ANTISPOOF_CFG 0x94UL
182 #define HWRM_CFA_TUNNEL_FILTER_ALLOC 0x95UL
183 #define HWRM_CFA_TUNNEL_FILTER_FREE 0x96UL
184 #define HWRM_CFA_ENCAP_RECORD_ALLOC 0x97UL
185 #define HWRM_CFA_ENCAP_RECORD_FREE 0x98UL
186 #define HWRM_CFA_NTUPLE_FILTER_ALLOC 0x99UL
187 #define HWRM_CFA_NTUPLE_FILTER_FREE 0x9aUL
188 #define HWRM_CFA_NTUPLE_FILTER_CFG 0x9bUL
189 #define HWRM_CFA_EM_FLOW_ALLOC 0x9cUL
190 #define HWRM_CFA_EM_FLOW_FREE 0x9dUL
191 #define HWRM_CFA_EM_FLOW_CFG 0x9eUL
192 #define HWRM_TUNNEL_DST_PORT_QUERY 0xa0UL
193 #define HWRM_TUNNEL_DST_PORT_ALLOC 0xa1UL
194 #define HWRM_TUNNEL_DST_PORT_FREE 0xa2UL
195 #define HWRM_STAT_CTX_ENG_QUERY 0xafUL
196 #define HWRM_STAT_CTX_ALLOC 0xb0UL
197 #define HWRM_STAT_CTX_FREE 0xb1UL
198 #define HWRM_STAT_CTX_QUERY 0xb2UL
199 #define HWRM_STAT_CTX_CLR_STATS 0xb3UL
200 #define HWRM_PORT_QSTATS_EXT 0xb4UL
201 #define HWRM_PORT_PHY_MDIO_WRITE 0xb5UL
202 #define HWRM_PORT_PHY_MDIO_READ 0xb6UL
203 #define HWRM_FW_RESET 0xc0UL
204 #define HWRM_FW_QSTATUS 0xc1UL
205 #define HWRM_FW_HEALTH_CHECK 0xc2UL
206 #define HWRM_FW_SYNC 0xc3UL
207 #define HWRM_FW_SET_TIME 0xc8UL
208 #define HWRM_FW_GET_TIME 0xc9UL
209 #define HWRM_FW_SET_STRUCTURED_DATA 0xcaUL
210 #define HWRM_FW_GET_STRUCTURED_DATA 0xcbUL
211 #define HWRM_FW_IPC_MAILBOX 0xccUL
212 #define HWRM_EXEC_FWD_RESP 0xd0UL
213 #define HWRM_REJECT_FWD_RESP 0xd1UL
214 #define HWRM_FWD_RESP 0xd2UL
215 #define HWRM_FWD_ASYNC_EVENT_CMPL 0xd3UL
216 #define HWRM_OEM_CMD 0xd4UL
217 #define HWRM_PORT_PRBS_TEST 0xd5UL
218 #define HWRM_TEMP_MONITOR_QUERY 0xe0UL
219 #define HWRM_WOL_FILTER_ALLOC 0xf0UL
220 #define HWRM_WOL_FILTER_FREE 0xf1UL
221 #define HWRM_WOL_FILTER_QCFG 0xf2UL
222 #define HWRM_WOL_REASON_QCFG 0xf3UL
223 #define HWRM_CFA_METER_QCAPS 0xf4UL
224 #define HWRM_CFA_METER_PROFILE_ALLOC 0xf5UL
225 #define HWRM_CFA_METER_PROFILE_FREE 0xf6UL
226 #define HWRM_CFA_METER_PROFILE_CFG 0xf7UL
227 #define HWRM_CFA_METER_INSTANCE_ALLOC 0xf8UL
228 #define HWRM_CFA_METER_INSTANCE_FREE 0xf9UL
229 #define HWRM_CFA_METER_INSTANCE_CFG 0xfaUL
230 #define HWRM_CFA_VFR_ALLOC 0xfdUL
231 #define HWRM_CFA_VFR_FREE 0xfeUL
232 #define HWRM_CFA_VF_PAIR_ALLOC 0x100UL
233 #define HWRM_CFA_VF_PAIR_FREE 0x101UL
234 #define HWRM_CFA_VF_PAIR_INFO 0x102UL
235 #define HWRM_CFA_FLOW_ALLOC 0x103UL
236 #define HWRM_CFA_FLOW_FREE 0x104UL
237 #define HWRM_CFA_FLOW_FLUSH 0x105UL
238 #define HWRM_CFA_FLOW_STATS 0x106UL
239 #define HWRM_CFA_FLOW_INFO 0x107UL
240 #define HWRM_CFA_DECAP_FILTER_ALLOC 0x108UL
241 #define HWRM_CFA_DECAP_FILTER_FREE 0x109UL
242 #define HWRM_CFA_VLAN_ANTISPOOF_QCFG 0x10aUL
243 #define HWRM_CFA_REDIRECT_TUNNEL_TYPE_ALLOC 0x10bUL
244 #define HWRM_CFA_REDIRECT_TUNNEL_TYPE_FREE 0x10cUL
245 #define HWRM_CFA_PAIR_ALLOC 0x10dUL
246 #define HWRM_CFA_PAIR_FREE 0x10eUL
247 #define HWRM_CFA_PAIR_INFO 0x10fUL
248 #define HWRM_FW_IPC_MSG 0x110UL
249 #define HWRM_CFA_REDIRECT_TUNNEL_TYPE_INFO 0x111UL
250 #define HWRM_CFA_REDIRECT_QUERY_TUNNEL_TYPE 0x112UL
251 #define HWRM_CFA_FLOW_AGING_TIMER_RESET 0x113UL
252 #define HWRM_CFA_FLOW_AGING_CFG 0x114UL
253 #define HWRM_CFA_FLOW_AGING_QCFG 0x115UL
254 #define HWRM_CFA_FLOW_AGING_QCAPS 0x116UL
255 #define HWRM_CFA_CTX_MEM_RGTR 0x117UL
256 #define HWRM_CFA_CTX_MEM_UNRGTR 0x118UL
257 #define HWRM_CFA_CTX_MEM_QCTX 0x119UL
258 #define HWRM_CFA_CTX_MEM_QCAPS 0x11aUL
259 #define HWRM_CFA_COUNTER_QCAPS 0x11bUL
260 #define HWRM_CFA_COUNTER_CFG 0x11cUL
261 #define HWRM_CFA_COUNTER_QCFG 0x11dUL
262 #define HWRM_CFA_COUNTER_QSTATS 0x11eUL
263 #define HWRM_CFA_TCP_FLAG_PROCESS_QCFG 0x11fUL
264 #define HWRM_CFA_EEM_QCAPS 0x120UL
265 #define HWRM_CFA_EEM_CFG 0x121UL
266 #define HWRM_CFA_EEM_QCFG 0x122UL
267 #define HWRM_CFA_EEM_OP 0x123UL
268 #define HWRM_CFA_ADV_FLOW_MGNT_QCAPS 0x124UL
269 #define HWRM_CFA_TFLIB 0x125UL
270 #define HWRM_ENGINE_CKV_HELLO 0x12dUL
271 #define HWRM_ENGINE_CKV_STATUS 0x12eUL
272 #define HWRM_ENGINE_CKV_CKEK_ADD 0x12fUL
273 #define HWRM_ENGINE_CKV_CKEK_DELETE 0x130UL
274 #define HWRM_ENGINE_CKV_KEY_ADD 0x131UL
275 #define HWRM_ENGINE_CKV_KEY_DELETE 0x132UL
276 #define HWRM_ENGINE_CKV_FLUSH 0x133UL
277 #define HWRM_ENGINE_CKV_RNG_GET 0x134UL
278 #define HWRM_ENGINE_CKV_KEY_GEN 0x135UL
279 #define HWRM_ENGINE_CKV_KEY_LABEL_CFG 0x136UL
280 #define HWRM_ENGINE_CKV_KEY_LABEL_QCFG 0x137UL
281 #define HWRM_ENGINE_QG_CONFIG_QUERY 0x13cUL
282 #define HWRM_ENGINE_QG_QUERY 0x13dUL
283 #define HWRM_ENGINE_QG_METER_PROFILE_CONFIG_QUERY 0x13eUL
284 #define HWRM_ENGINE_QG_METER_PROFILE_QUERY 0x13fUL
285 #define HWRM_ENGINE_QG_METER_PROFILE_ALLOC 0x140UL
286 #define HWRM_ENGINE_QG_METER_PROFILE_FREE 0x141UL
287 #define HWRM_ENGINE_QG_METER_QUERY 0x142UL
288 #define HWRM_ENGINE_QG_METER_BIND 0x143UL
289 #define HWRM_ENGINE_QG_METER_UNBIND 0x144UL
290 #define HWRM_ENGINE_QG_FUNC_BIND 0x145UL
291 #define HWRM_ENGINE_SG_CONFIG_QUERY 0x146UL
292 #define HWRM_ENGINE_SG_QUERY 0x147UL
293 #define HWRM_ENGINE_SG_METER_QUERY 0x148UL
294 #define HWRM_ENGINE_SG_METER_CONFIG 0x149UL
295 #define HWRM_ENGINE_SG_QG_BIND 0x14aUL
296 #define HWRM_ENGINE_QG_SG_UNBIND 0x14bUL
297 #define HWRM_ENGINE_CONFIG_QUERY 0x154UL
298 #define HWRM_ENGINE_STATS_CONFIG 0x155UL
299 #define HWRM_ENGINE_STATS_CLEAR 0x156UL
300 #define HWRM_ENGINE_STATS_QUERY 0x157UL
301 #define HWRM_ENGINE_RQ_ALLOC 0x15eUL
302 #define HWRM_ENGINE_RQ_FREE 0x15fUL
303 #define HWRM_ENGINE_CQ_ALLOC 0x160UL
304 #define HWRM_ENGINE_CQ_FREE 0x161UL
305 #define HWRM_ENGINE_NQ_ALLOC 0x162UL
306 #define HWRM_ENGINE_NQ_FREE 0x163UL
307 #define HWRM_ENGINE_ON_DIE_RQE_CREDITS 0x164UL
308 #define HWRM_ENGINE_FUNC_QCFG 0x165UL
309 #define HWRM_FUNC_RESOURCE_QCAPS 0x190UL
310 #define HWRM_FUNC_VF_RESOURCE_CFG 0x191UL
311 #define HWRM_FUNC_BACKING_STORE_QCAPS 0x192UL
312 #define HWRM_FUNC_BACKING_STORE_CFG 0x193UL
313 #define HWRM_FUNC_BACKING_STORE_QCFG 0x194UL
314 #define HWRM_FUNC_VF_BW_CFG 0x195UL
315 #define HWRM_FUNC_VF_BW_QCFG 0x196UL
316 #define HWRM_SELFTEST_QLIST 0x200UL
317 #define HWRM_SELFTEST_EXEC 0x201UL
318 #define HWRM_SELFTEST_IRQ 0x202UL
319 #define HWRM_SELFTEST_RETRIEVE_SERDES_DATA 0x203UL
320 #define HWRM_PCIE_QSTATS 0x204UL
321 #define HWRM_MFG_FRU_WRITE_CONTROL 0x205UL
322 #define HWRM_MFG_TIMERS_QUERY 0x206UL
323 #define HWRM_MFG_OTP_CFG 0x207UL
324 #define HWRM_MFG_OTP_QCFG 0x208UL
325 #define HWRM_MFG_HDMA_TEST 0x209UL
326 #define HWRM_DBG_READ_DIRECT 0xff10UL
327 #define HWRM_DBG_READ_INDIRECT 0xff11UL
328 #define HWRM_DBG_WRITE_DIRECT 0xff12UL
329 #define HWRM_DBG_WRITE_INDIRECT 0xff13UL
330 #define HWRM_DBG_DUMP 0xff14UL
331 #define HWRM_DBG_ERASE_NVM 0xff15UL
332 #define HWRM_DBG_CFG 0xff16UL
333 #define HWRM_DBG_COREDUMP_LIST 0xff17UL
334 #define HWRM_DBG_COREDUMP_INITIATE 0xff18UL
335 #define HWRM_DBG_COREDUMP_RETRIEVE 0xff19UL
336 #define HWRM_DBG_FW_CLI 0xff1aUL
337 #define HWRM_DBG_I2C_CMD 0xff1bUL
338 #define HWRM_DBG_RING_INFO_GET 0xff1cUL
339 #define HWRM_DBG_CRASHDUMP_HEADER 0xff1dUL
340 #define HWRM_DBG_CRASHDUMP_ERASE 0xff1eUL
341 #define HWRM_NVM_FACTORY_DEFAULTS 0xffeeUL
342 #define HWRM_NVM_VALIDATE_OPTION 0xffefUL
343 #define HWRM_NVM_FLUSH 0xfff0UL
344 #define HWRM_NVM_GET_VARIABLE 0xfff1UL
345 #define HWRM_NVM_SET_VARIABLE 0xfff2UL
346 #define HWRM_NVM_INSTALL_UPDATE 0xfff3UL
347 #define HWRM_NVM_MODIFY 0xfff4UL
348 #define HWRM_NVM_VERIFY_UPDATE 0xfff5UL
349 #define HWRM_NVM_GET_DEV_INFO 0xfff6UL
350 #define HWRM_NVM_ERASE_DIR_ENTRY 0xfff7UL
351 #define HWRM_NVM_MOD_DIR_ENTRY 0xfff8UL
352 #define HWRM_NVM_FIND_DIR_ENTRY 0xfff9UL
353 #define HWRM_NVM_GET_DIR_ENTRIES 0xfffaUL
354 #define HWRM_NVM_GET_DIR_INFO 0xfffbUL
355 #define HWRM_NVM_RAW_DUMP 0xfffcUL
356 #define HWRM_NVM_READ 0xfffdUL
357 #define HWRM_NVM_WRITE 0xfffeUL
358 #define HWRM_NVM_RAW_WRITE_BLK 0xffffUL
359 #define HWRM_LAST HWRM_NVM_RAW_WRITE_BLK
363 /* ret_codes (size:64b/8B) */
366 #define HWRM_ERR_CODE_SUCCESS 0x0UL
367 #define HWRM_ERR_CODE_FAIL 0x1UL
368 #define HWRM_ERR_CODE_INVALID_PARAMS 0x2UL
369 #define HWRM_ERR_CODE_RESOURCE_ACCESS_DENIED 0x3UL
370 #define HWRM_ERR_CODE_RESOURCE_ALLOC_ERROR 0x4UL
371 #define HWRM_ERR_CODE_INVALID_FLAGS 0x5UL
372 #define HWRM_ERR_CODE_INVALID_ENABLES 0x6UL
373 #define HWRM_ERR_CODE_UNSUPPORTED_TLV 0x7UL
374 #define HWRM_ERR_CODE_NO_BUFFER 0x8UL
375 #define HWRM_ERR_CODE_UNSUPPORTED_OPTION_ERR 0x9UL
376 #define HWRM_ERR_CODE_HOT_RESET_PROGRESS 0xaUL
377 #define HWRM_ERR_CODE_HOT_RESET_FAIL 0xbUL
378 #define HWRM_ERR_CODE_NO_FLOW_COUNTER_DURING_ALLOC 0xcUL
379 #define HWRM_ERR_CODE_KEY_HASH_COLLISION 0xdUL
380 #define HWRM_ERR_CODE_KEY_ALREADY_EXISTS 0xeUL
381 #define HWRM_ERR_CODE_HWRM_ERROR 0xfUL
382 #define HWRM_ERR_CODE_TLV_ENCAPSULATED_RESPONSE 0x8000UL
383 #define HWRM_ERR_CODE_UNKNOWN_ERR 0xfffeUL
384 #define HWRM_ERR_CODE_CMD_NOT_SUPPORTED 0xffffUL
385 #define HWRM_ERR_CODE_LAST HWRM_ERR_CODE_CMD_NOT_SUPPORTED
389 /* hwrm_err_output (size:128b/16B) */
390 struct hwrm_err_output {
400 #define HWRM_NA_SIGNATURE ((__le32)(-1))
401 #define HWRM_MAX_REQ_LEN 128
402 #define HWRM_MAX_RESP_LEN 704
403 #define HW_HASH_INDEX_SIZE 0x80
404 #define HW_HASH_KEY_SIZE 40
405 #define HWRM_RESP_VALID_KEY 1
406 #define HWRM_TARGET_ID_BONO 0xFFF8
407 #define HWRM_TARGET_ID_KONG 0xFFF9
408 #define HWRM_TARGET_ID_APE 0xFFFA
409 #define HWRM_TARGET_ID_TOOLS 0xFFFD
410 #define HWRM_VERSION_MAJOR 1
411 #define HWRM_VERSION_MINOR 10
412 #define HWRM_VERSION_UPDATE 0
413 #define HWRM_VERSION_RSVD 69
414 #define HWRM_VERSION_STR "1.10.0.69"
416 /* hwrm_ver_get_input (size:192b/24B) */
417 struct hwrm_ver_get_input {
429 /* hwrm_ver_get_output (size:1408b/176B) */
430 struct hwrm_ver_get_output {
438 u8 hwrm_intf_rsvd_8b;
447 u8 netctrl_fw_maj_8b;
448 u8 netctrl_fw_min_8b;
449 u8 netctrl_fw_bld_8b;
450 u8 netctrl_fw_rsvd_8b;
452 #define VER_GET_RESP_DEV_CAPS_CFG_SECURE_FW_UPD_SUPPORTED 0x1UL
453 #define VER_GET_RESP_DEV_CAPS_CFG_FW_DCBX_AGENT_SUPPORTED 0x2UL
454 #define VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_SUPPORTED 0x4UL
455 #define VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_REQUIRED 0x8UL
456 #define VER_GET_RESP_DEV_CAPS_CFG_KONG_MB_CHNL_SUPPORTED 0x10UL
457 #define VER_GET_RESP_DEV_CAPS_CFG_FLOW_HANDLE_64BIT_SUPPORTED 0x20UL
458 #define VER_GET_RESP_DEV_CAPS_CFG_L2_FILTER_TYPES_ROCE_OR_L2_SUPPORTED 0x40UL
459 #define VER_GET_RESP_DEV_CAPS_CFG_VIRTIO_VSWITCH_OFFLOAD_SUPPORTED 0x80UL
460 #define VER_GET_RESP_DEV_CAPS_CFG_TRUSTED_VF_SUPPORTED 0x100UL
461 #define VER_GET_RESP_DEV_CAPS_CFG_FLOW_AGING_SUPPORTED 0x200UL
462 #define VER_GET_RESP_DEV_CAPS_CFG_ADV_FLOW_COUNTERS_SUPPORTED 0x400UL
463 #define VER_GET_RESP_DEV_CAPS_CFG_CFA_EEM_SUPPORTED 0x800UL
464 #define VER_GET_RESP_DEV_CAPS_CFG_CFA_ADV_FLOW_MGNT_SUPPORTED 0x1000UL
465 #define VER_GET_RESP_DEV_CAPS_CFG_CFA_TFLIB_SUPPORTED 0x2000UL
470 char hwrm_fw_name[16];
471 char mgmt_fw_name[16];
472 char netctrl_fw_name[16];
473 char active_pkg_name[16];
474 char roce_fw_name[16];
479 u8 chip_platform_type;
480 #define VER_GET_RESP_CHIP_PLATFORM_TYPE_ASIC 0x0UL
481 #define VER_GET_RESP_CHIP_PLATFORM_TYPE_FPGA 0x1UL
482 #define VER_GET_RESP_CHIP_PLATFORM_TYPE_PALLADIUM 0x2UL
483 #define VER_GET_RESP_CHIP_PLATFORM_TYPE_LAST VER_GET_RESP_CHIP_PLATFORM_TYPE_PALLADIUM
484 __le16 max_req_win_len;
486 __le16 def_req_timeout;
488 #define VER_GET_RESP_FLAGS_DEV_NOT_RDY 0x1UL
489 #define VER_GET_RESP_FLAGS_EXT_VER_AVAIL 0x2UL
492 __le16 hwrm_intf_major;
493 __le16 hwrm_intf_minor;
494 __le16 hwrm_intf_build;
495 __le16 hwrm_intf_patch;
496 __le16 hwrm_fw_major;
497 __le16 hwrm_fw_minor;
498 __le16 hwrm_fw_build;
499 __le16 hwrm_fw_patch;
500 __le16 mgmt_fw_major;
501 __le16 mgmt_fw_minor;
502 __le16 mgmt_fw_build;
503 __le16 mgmt_fw_patch;
504 __le16 netctrl_fw_major;
505 __le16 netctrl_fw_minor;
506 __le16 netctrl_fw_build;
507 __le16 netctrl_fw_patch;
508 __le16 roce_fw_major;
509 __le16 roce_fw_minor;
510 __le16 roce_fw_build;
511 __le16 roce_fw_patch;
512 __le16 max_ext_req_len;
517 /* eject_cmpl (size:128b/16B) */
520 #define EJECT_CMPL_TYPE_MASK 0x3fUL
521 #define EJECT_CMPL_TYPE_SFT 0
522 #define EJECT_CMPL_TYPE_STAT_EJECT 0x1aUL
523 #define EJECT_CMPL_TYPE_LAST EJECT_CMPL_TYPE_STAT_EJECT
524 #define EJECT_CMPL_FLAGS_MASK 0xffc0UL
525 #define EJECT_CMPL_FLAGS_SFT 6
526 #define EJECT_CMPL_FLAGS_ERROR 0x40UL
530 #define EJECT_CMPL_V 0x1UL
531 #define EJECT_CMPL_ERRORS_MASK 0xfffeUL
532 #define EJECT_CMPL_ERRORS_SFT 1
533 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_MASK 0xeUL
534 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_SFT 1
535 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_NO_BUFFER (0x0UL << 1)
536 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_DID_NOT_FIT (0x1UL << 1)
537 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_BAD_FORMAT (0x3UL << 1)
538 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_FLUSH (0x5UL << 1)
539 #define EJECT_CMPL_ERRORS_BUFFER_ERROR_LAST EJECT_CMPL_ERRORS_BUFFER_ERROR_FLUSH
544 /* hwrm_cmpl (size:128b/16B) */
547 #define CMPL_TYPE_MASK 0x3fUL
548 #define CMPL_TYPE_SFT 0
549 #define CMPL_TYPE_HWRM_DONE 0x20UL
550 #define CMPL_TYPE_LAST CMPL_TYPE_HWRM_DONE
558 /* hwrm_fwd_req_cmpl (size:128b/16B) */
559 struct hwrm_fwd_req_cmpl {
561 #define FWD_REQ_CMPL_TYPE_MASK 0x3fUL
562 #define FWD_REQ_CMPL_TYPE_SFT 0
563 #define FWD_REQ_CMPL_TYPE_HWRM_FWD_REQ 0x22UL
564 #define FWD_REQ_CMPL_TYPE_LAST FWD_REQ_CMPL_TYPE_HWRM_FWD_REQ
565 #define FWD_REQ_CMPL_REQ_LEN_MASK 0xffc0UL
566 #define FWD_REQ_CMPL_REQ_LEN_SFT 6
569 __le32 req_buf_addr_v[2];
570 #define FWD_REQ_CMPL_V 0x1UL
571 #define FWD_REQ_CMPL_REQ_BUF_ADDR_MASK 0xfffffffeUL
572 #define FWD_REQ_CMPL_REQ_BUF_ADDR_SFT 1
575 /* hwrm_fwd_resp_cmpl (size:128b/16B) */
576 struct hwrm_fwd_resp_cmpl {
578 #define FWD_RESP_CMPL_TYPE_MASK 0x3fUL
579 #define FWD_RESP_CMPL_TYPE_SFT 0
580 #define FWD_RESP_CMPL_TYPE_HWRM_FWD_RESP 0x24UL
581 #define FWD_RESP_CMPL_TYPE_LAST FWD_RESP_CMPL_TYPE_HWRM_FWD_RESP
585 __le32 resp_buf_addr_v[2];
586 #define FWD_RESP_CMPL_V 0x1UL
587 #define FWD_RESP_CMPL_RESP_BUF_ADDR_MASK 0xfffffffeUL
588 #define FWD_RESP_CMPL_RESP_BUF_ADDR_SFT 1
591 /* hwrm_async_event_cmpl (size:128b/16B) */
592 struct hwrm_async_event_cmpl {
594 #define ASYNC_EVENT_CMPL_TYPE_MASK 0x3fUL
595 #define ASYNC_EVENT_CMPL_TYPE_SFT 0
596 #define ASYNC_EVENT_CMPL_TYPE_HWRM_ASYNC_EVENT 0x2eUL
597 #define ASYNC_EVENT_CMPL_TYPE_LAST ASYNC_EVENT_CMPL_TYPE_HWRM_ASYNC_EVENT
599 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_STATUS_CHANGE 0x0UL
600 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_MTU_CHANGE 0x1UL
601 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CHANGE 0x2UL
602 #define ASYNC_EVENT_CMPL_EVENT_ID_DCB_CONFIG_CHANGE 0x3UL
603 #define ASYNC_EVENT_CMPL_EVENT_ID_PORT_CONN_NOT_ALLOWED 0x4UL
604 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_NOT_ALLOWED 0x5UL
605 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_CHANGE 0x6UL
606 #define ASYNC_EVENT_CMPL_EVENT_ID_PORT_PHY_CFG_CHANGE 0x7UL
607 #define ASYNC_EVENT_CMPL_EVENT_ID_RESET_NOTIFY 0x8UL
608 #define ASYNC_EVENT_CMPL_EVENT_ID_ERROR_RECOVERY 0x9UL
609 #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_UNLOAD 0x10UL
610 #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_LOAD 0x11UL
611 #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_FLR_PROC_CMPLT 0x12UL
612 #define ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_UNLOAD 0x20UL
613 #define ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_LOAD 0x21UL
614 #define ASYNC_EVENT_CMPL_EVENT_ID_VF_FLR 0x30UL
615 #define ASYNC_EVENT_CMPL_EVENT_ID_VF_MAC_ADDR_CHANGE 0x31UL
616 #define ASYNC_EVENT_CMPL_EVENT_ID_PF_VF_COMM_STATUS_CHANGE 0x32UL
617 #define ASYNC_EVENT_CMPL_EVENT_ID_VF_CFG_CHANGE 0x33UL
618 #define ASYNC_EVENT_CMPL_EVENT_ID_LLFC_PFC_CHANGE 0x34UL
619 #define ASYNC_EVENT_CMPL_EVENT_ID_DEFAULT_VNIC_CHANGE 0x35UL
620 #define ASYNC_EVENT_CMPL_EVENT_ID_HW_FLOW_AGED 0x36UL
621 #define ASYNC_EVENT_CMPL_EVENT_ID_DEBUG_NOTIFICATION 0x37UL
622 #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CACHE_FLUSH_REQ 0x38UL
623 #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CACHE_FLUSH_DONE 0x39UL
624 #define ASYNC_EVENT_CMPL_EVENT_ID_TCP_FLAG_ACTION_CHANGE 0x3aUL
625 #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_FLOW_ACTIVE 0x3bUL
626 #define ASYNC_EVENT_CMPL_EVENT_ID_EEM_CFG_CHANGE 0x3cUL
627 #define ASYNC_EVENT_CMPL_EVENT_ID_FW_TRACE_MSG 0xfeUL
628 #define ASYNC_EVENT_CMPL_EVENT_ID_HWRM_ERROR 0xffUL
629 #define ASYNC_EVENT_CMPL_EVENT_ID_LAST ASYNC_EVENT_CMPL_EVENT_ID_HWRM_ERROR
632 #define ASYNC_EVENT_CMPL_V 0x1UL
633 #define ASYNC_EVENT_CMPL_OPAQUE_MASK 0xfeUL
634 #define ASYNC_EVENT_CMPL_OPAQUE_SFT 1
640 /* hwrm_async_event_cmpl_link_status_change (size:128b/16B) */
641 struct hwrm_async_event_cmpl_link_status_change {
643 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_MASK 0x3fUL
644 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_SFT 0
645 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL
646 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_LAST ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_HWRM_ASYNC_EVENT
648 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LINK_STATUS_CHANGE 0x0UL
649 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LAST ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LINK_STATUS_CHANGE
652 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_V 0x1UL
653 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_OPAQUE_MASK 0xfeUL
654 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_OPAQUE_SFT 1
658 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE 0x1UL
659 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_DOWN 0x0UL
660 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_UP 0x1UL
661 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_LAST ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_UP
662 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_MASK 0xeUL
663 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_SFT 1
664 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_ID_MASK 0xffff0UL
665 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_ID_SFT 4
666 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PF_ID_MASK 0xff00000UL
667 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PF_ID_SFT 20
670 /* hwrm_async_event_cmpl_port_conn_not_allowed (size:128b/16B) */
671 struct hwrm_async_event_cmpl_port_conn_not_allowed {
673 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_MASK 0x3fUL
674 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_SFT 0
675 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_HWRM_ASYNC_EVENT 0x2eUL
676 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_LAST ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_HWRM_ASYNC_EVENT
678 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_PORT_CONN_NOT_ALLOWED 0x4UL
679 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_LAST ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_PORT_CONN_NOT_ALLOWED
682 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_V 0x1UL
683 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_OPAQUE_MASK 0xfeUL
684 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_OPAQUE_SFT 1
688 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_PORT_ID_MASK 0xffffUL
689 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_PORT_ID_SFT 0
690 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_MASK 0xff0000UL
691 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_SFT 16
692 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_NONE (0x0UL << 16)
693 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_DISABLETX (0x1UL << 16)
694 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_WARNINGMSG (0x2UL << 16)
695 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_PWRDOWN (0x3UL << 16)
696 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_LAST ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_PWRDOWN
699 /* hwrm_async_event_cmpl_link_speed_cfg_change (size:128b/16B) */
700 struct hwrm_async_event_cmpl_link_speed_cfg_change {
702 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_MASK 0x3fUL
703 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_SFT 0
704 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL
705 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_LAST ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT
707 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LINK_SPEED_CFG_CHANGE 0x6UL
708 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LAST ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LINK_SPEED_CFG_CHANGE
711 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_V 0x1UL
712 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_OPAQUE_MASK 0xfeUL
713 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_OPAQUE_SFT 1
717 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_PORT_ID_MASK 0xffffUL
718 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_PORT_ID_SFT 0
719 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_SUPPORTED_LINK_SPEEDS_CHANGE 0x10000UL
720 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_ILLEGAL_LINK_SPEED_CFG 0x20000UL
723 /* hwrm_async_event_cmpl_reset_notify (size:128b/16B) */
724 struct hwrm_async_event_cmpl_reset_notify {
726 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_MASK 0x3fUL
727 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_SFT 0
728 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_HWRM_ASYNC_EVENT 0x2eUL
729 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_LAST ASYNC_EVENT_CMPL_RESET_NOTIFY_TYPE_HWRM_ASYNC_EVENT
731 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_RESET_NOTIFY 0x8UL
732 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_LAST ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_ID_RESET_NOTIFY
735 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_V 0x1UL
736 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_OPAQUE_MASK 0xfeUL
737 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_OPAQUE_SFT 1
741 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_MASK 0xffUL
742 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_SFT 0
743 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_STOP_TX_QUEUE 0x1UL
744 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_IFDOWN 0x2UL
745 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_LAST ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DRIVER_ACTION_DRIVER_IFDOWN
746 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_MASK 0xff00UL
747 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_SFT 8
748 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_MANAGEMENT_RESET_REQUEST (0x1UL << 8)
749 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_EXCEPTION_FATAL (0x2UL << 8)
750 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_EXCEPTION_NON_FATAL (0x3UL << 8)
751 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_LAST ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_REASON_CODE_FW_EXCEPTION_NON_FATAL
752 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DELAY_IN_100MS_TICKS_MASK 0xffff0000UL
753 #define ASYNC_EVENT_CMPL_RESET_NOTIFY_EVENT_DATA1_DELAY_IN_100MS_TICKS_SFT 16
756 /* hwrm_async_event_cmpl_error_recovery (size:128b/16B) */
757 struct hwrm_async_event_cmpl_error_recovery {
759 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_MASK 0x3fUL
760 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_SFT 0
761 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_HWRM_ASYNC_EVENT 0x2eUL
762 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_LAST ASYNC_EVENT_CMPL_ERROR_RECOVERY_TYPE_HWRM_ASYNC_EVENT
764 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_ERROR_RECOVERY 0x9UL
765 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_LAST ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_ID_ERROR_RECOVERY
768 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_V 0x1UL
769 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_OPAQUE_MASK 0xfeUL
770 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_OPAQUE_SFT 1
774 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_MASK 0xffUL
775 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_SFT 0
776 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_MASTER_FUNC 0x1UL
777 #define ASYNC_EVENT_CMPL_ERROR_RECOVERY_EVENT_DATA1_FLAGS_RECOVERY_ENABLED 0x2UL
780 /* hwrm_async_event_cmpl_vf_cfg_change (size:128b/16B) */
781 struct hwrm_async_event_cmpl_vf_cfg_change {
783 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_MASK 0x3fUL
784 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_SFT 0
785 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL
786 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_LAST ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT
788 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_VF_CFG_CHANGE 0x33UL
789 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_LAST ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_VF_CFG_CHANGE
792 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_V 0x1UL
793 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_OPAQUE_MASK 0xfeUL
794 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_OPAQUE_SFT 1
798 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_MTU_CHANGE 0x1UL
799 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_MRU_CHANGE 0x2UL
800 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_DFLT_MAC_ADDR_CHANGE 0x4UL
801 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_DFLT_VLAN_CHANGE 0x8UL
802 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_TRUSTED_VF_CFG_CHANGE 0x10UL
805 /* hwrm_async_event_cmpl_hw_flow_aged (size:128b/16B) */
806 struct hwrm_async_event_cmpl_hw_flow_aged {
808 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_MASK 0x3fUL
809 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_SFT 0
810 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_HWRM_ASYNC_EVENT 0x2eUL
811 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_LAST ASYNC_EVENT_CMPL_HW_FLOW_AGED_TYPE_HWRM_ASYNC_EVENT
813 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_HW_FLOW_AGED 0x36UL
814 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_LAST ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_ID_HW_FLOW_AGED
817 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_V 0x1UL
818 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_OPAQUE_MASK 0xfeUL
819 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_OPAQUE_SFT 1
823 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_ID_MASK 0x7fffffffUL
824 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_ID_SFT 0
825 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION 0x80000000UL
826 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_RX (0x0UL << 31)
827 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_TX (0x1UL << 31)
828 #define ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_LAST ASYNC_EVENT_CMPL_HW_FLOW_AGED_EVENT_DATA1_FLOW_DIRECTION_TX
831 /* hwrm_async_event_cmpl_eem_cache_flush_req (size:128b/16B) */
832 struct hwrm_async_event_cmpl_eem_cache_flush_req {
834 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_MASK 0x3fUL
835 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_SFT 0
836 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_HWRM_ASYNC_EVENT 0x2eUL
837 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_LAST ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_TYPE_HWRM_ASYNC_EVENT
839 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_EEM_CACHE_FLUSH_REQ 0x38UL
840 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_LAST ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_EVENT_ID_EEM_CACHE_FLUSH_REQ
843 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_V 0x1UL
844 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_OPAQUE_MASK 0xfeUL
845 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_REQ_OPAQUE_SFT 1
851 /* hwrm_async_event_cmpl_eem_cache_flush_done (size:128b/16B) */
852 struct hwrm_async_event_cmpl_eem_cache_flush_done {
854 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_MASK 0x3fUL
855 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_SFT 0
856 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_HWRM_ASYNC_EVENT 0x2eUL
857 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_LAST ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_TYPE_HWRM_ASYNC_EVENT
859 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_EEM_CACHE_FLUSH_DONE 0x39UL
860 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_LAST ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_ID_EEM_CACHE_FLUSH_DONE
863 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_V 0x1UL
864 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_OPAQUE_MASK 0xfeUL
865 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_OPAQUE_SFT 1
869 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_DATA1_FID_MASK 0xffffUL
870 #define ASYNC_EVENT_CMPL_EEM_CACHE_FLUSH_DONE_EVENT_DATA1_FID_SFT 0
873 /* hwrm_func_reset_input (size:192b/24B) */
874 struct hwrm_func_reset_input {
881 #define FUNC_RESET_REQ_ENABLES_VF_ID_VALID 0x1UL
884 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETALL 0x0UL
885 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETME 0x1UL
886 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETCHILDREN 0x2UL
887 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETVF 0x3UL
888 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_LAST FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETVF
892 /* hwrm_func_reset_output (size:128b/16B) */
893 struct hwrm_func_reset_output {
902 /* hwrm_func_getfid_input (size:192b/24B) */
903 struct hwrm_func_getfid_input {
910 #define FUNC_GETFID_REQ_ENABLES_PCI_ID 0x1UL
915 /* hwrm_func_getfid_output (size:128b/16B) */
916 struct hwrm_func_getfid_output {
926 /* hwrm_func_vf_alloc_input (size:192b/24B) */
927 struct hwrm_func_vf_alloc_input {
934 #define FUNC_VF_ALLOC_REQ_ENABLES_FIRST_VF_ID 0x1UL
939 /* hwrm_func_vf_alloc_output (size:128b/16B) */
940 struct hwrm_func_vf_alloc_output {
950 /* hwrm_func_vf_free_input (size:192b/24B) */
951 struct hwrm_func_vf_free_input {
958 #define FUNC_VF_FREE_REQ_ENABLES_FIRST_VF_ID 0x1UL
963 /* hwrm_func_vf_free_output (size:128b/16B) */
964 struct hwrm_func_vf_free_output {
973 /* hwrm_func_vf_cfg_input (size:448b/56B) */
974 struct hwrm_func_vf_cfg_input {
981 #define FUNC_VF_CFG_REQ_ENABLES_MTU 0x1UL
982 #define FUNC_VF_CFG_REQ_ENABLES_GUEST_VLAN 0x2UL
983 #define FUNC_VF_CFG_REQ_ENABLES_ASYNC_EVENT_CR 0x4UL
984 #define FUNC_VF_CFG_REQ_ENABLES_DFLT_MAC_ADDR 0x8UL
985 #define FUNC_VF_CFG_REQ_ENABLES_NUM_RSSCOS_CTXS 0x10UL
986 #define FUNC_VF_CFG_REQ_ENABLES_NUM_CMPL_RINGS 0x20UL
987 #define FUNC_VF_CFG_REQ_ENABLES_NUM_TX_RINGS 0x40UL
988 #define FUNC_VF_CFG_REQ_ENABLES_NUM_RX_RINGS 0x80UL
989 #define FUNC_VF_CFG_REQ_ENABLES_NUM_L2_CTXS 0x100UL
990 #define FUNC_VF_CFG_REQ_ENABLES_NUM_VNICS 0x200UL
991 #define FUNC_VF_CFG_REQ_ENABLES_NUM_STAT_CTXS 0x400UL
992 #define FUNC_VF_CFG_REQ_ENABLES_NUM_HW_RING_GRPS 0x800UL
995 __le16 async_event_cr;
998 #define FUNC_VF_CFG_REQ_FLAGS_TX_ASSETS_TEST 0x1UL
999 #define FUNC_VF_CFG_REQ_FLAGS_RX_ASSETS_TEST 0x2UL
1000 #define FUNC_VF_CFG_REQ_FLAGS_CMPL_ASSETS_TEST 0x4UL
1001 #define FUNC_VF_CFG_REQ_FLAGS_RSSCOS_CTX_ASSETS_TEST 0x8UL
1002 #define FUNC_VF_CFG_REQ_FLAGS_RING_GRP_ASSETS_TEST 0x10UL
1003 #define FUNC_VF_CFG_REQ_FLAGS_STAT_CTX_ASSETS_TEST 0x20UL
1004 #define FUNC_VF_CFG_REQ_FLAGS_VNIC_ASSETS_TEST 0x40UL
1005 #define FUNC_VF_CFG_REQ_FLAGS_L2_CTX_ASSETS_TEST 0x80UL
1006 __le16 num_rsscos_ctxs;
1007 __le16 num_cmpl_rings;
1008 __le16 num_tx_rings;
1009 __le16 num_rx_rings;
1012 __le16 num_stat_ctxs;
1013 __le16 num_hw_ring_grps;
1017 /* hwrm_func_vf_cfg_output (size:128b/16B) */
1018 struct hwrm_func_vf_cfg_output {
1027 /* hwrm_func_qcaps_input (size:192b/24B) */
1028 struct hwrm_func_qcaps_input {
1038 /* hwrm_func_qcaps_output (size:640b/80B) */
1039 struct hwrm_func_qcaps_output {
1047 #define FUNC_QCAPS_RESP_FLAGS_PUSH_MODE_SUPPORTED 0x1UL
1048 #define FUNC_QCAPS_RESP_FLAGS_GLOBAL_MSIX_AUTOMASKING 0x2UL
1049 #define FUNC_QCAPS_RESP_FLAGS_PTP_SUPPORTED 0x4UL
1050 #define FUNC_QCAPS_RESP_FLAGS_ROCE_V1_SUPPORTED 0x8UL
1051 #define FUNC_QCAPS_RESP_FLAGS_ROCE_V2_SUPPORTED 0x10UL
1052 #define FUNC_QCAPS_RESP_FLAGS_WOL_MAGICPKT_SUPPORTED 0x20UL
1053 #define FUNC_QCAPS_RESP_FLAGS_WOL_BMP_SUPPORTED 0x40UL
1054 #define FUNC_QCAPS_RESP_FLAGS_TX_RING_RL_SUPPORTED 0x80UL
1055 #define FUNC_QCAPS_RESP_FLAGS_TX_BW_CFG_SUPPORTED 0x100UL
1056 #define FUNC_QCAPS_RESP_FLAGS_VF_TX_RING_RL_SUPPORTED 0x200UL
1057 #define FUNC_QCAPS_RESP_FLAGS_VF_BW_CFG_SUPPORTED 0x400UL
1058 #define FUNC_QCAPS_RESP_FLAGS_STD_TX_RING_MODE_SUPPORTED 0x800UL
1059 #define FUNC_QCAPS_RESP_FLAGS_GENEVE_TUN_FLAGS_SUPPORTED 0x1000UL
1060 #define FUNC_QCAPS_RESP_FLAGS_NVGRE_TUN_FLAGS_SUPPORTED 0x2000UL
1061 #define FUNC_QCAPS_RESP_FLAGS_GRE_TUN_FLAGS_SUPPORTED 0x4000UL
1062 #define FUNC_QCAPS_RESP_FLAGS_MPLS_TUN_FLAGS_SUPPORTED 0x8000UL
1063 #define FUNC_QCAPS_RESP_FLAGS_PCIE_STATS_SUPPORTED 0x10000UL
1064 #define FUNC_QCAPS_RESP_FLAGS_ADOPTED_PF_SUPPORTED 0x20000UL
1065 #define FUNC_QCAPS_RESP_FLAGS_ADMIN_PF_SUPPORTED 0x40000UL
1066 #define FUNC_QCAPS_RESP_FLAGS_LINK_ADMIN_STATUS_SUPPORTED 0x80000UL
1067 #define FUNC_QCAPS_RESP_FLAGS_WCB_PUSH_MODE 0x100000UL
1068 #define FUNC_QCAPS_RESP_FLAGS_DYNAMIC_TX_RING_ALLOC 0x200000UL
1069 #define FUNC_QCAPS_RESP_FLAGS_HOT_RESET_CAPABLE 0x400000UL
1070 #define FUNC_QCAPS_RESP_FLAGS_ERROR_RECOVERY_CAPABLE 0x800000UL
1071 #define FUNC_QCAPS_RESP_FLAGS_EXT_STATS_SUPPORTED 0x1000000UL
1073 __le16 max_rsscos_ctx;
1074 __le16 max_cmpl_rings;
1075 __le16 max_tx_rings;
1076 __le16 max_rx_rings;
1081 __le16 max_stat_ctx;
1082 __le32 max_encap_records;
1083 __le32 max_decap_records;
1084 __le32 max_tx_em_flows;
1085 __le32 max_tx_wm_flows;
1086 __le32 max_rx_em_flows;
1087 __le32 max_rx_wm_flows;
1088 __le32 max_mcast_filters;
1090 __le32 max_hw_ring_grps;
1091 __le16 max_sp_tx_rings;
1096 /* hwrm_func_qcfg_input (size:192b/24B) */
1097 struct hwrm_func_qcfg_input {
1107 /* hwrm_func_qcfg_output (size:704b/88B) */
1108 struct hwrm_func_qcfg_output {
1117 #define FUNC_QCFG_RESP_FLAGS_OOB_WOL_MAGICPKT_ENABLED 0x1UL
1118 #define FUNC_QCFG_RESP_FLAGS_OOB_WOL_BMP_ENABLED 0x2UL
1119 #define FUNC_QCFG_RESP_FLAGS_FW_DCBX_AGENT_ENABLED 0x4UL
1120 #define FUNC_QCFG_RESP_FLAGS_STD_TX_RING_MODE_ENABLED 0x8UL
1121 #define FUNC_QCFG_RESP_FLAGS_FW_LLDP_AGENT_ENABLED 0x10UL
1122 #define FUNC_QCFG_RESP_FLAGS_MULTI_HOST 0x20UL
1123 #define FUNC_QCFG_RESP_FLAGS_TRUSTED_VF 0x40UL
1124 #define FUNC_QCFG_RESP_FLAGS_SECURE_MODE_ENABLED 0x80UL
1127 __le16 alloc_rsscos_ctx;
1128 __le16 alloc_cmpl_rings;
1129 __le16 alloc_tx_rings;
1130 __le16 alloc_rx_rings;
1131 __le16 alloc_l2_ctx;
1136 u8 port_partition_type;
1137 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_SPF 0x0UL
1138 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_MPFS 0x1UL
1139 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_0 0x2UL
1140 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_5 0x3UL
1141 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR2_0 0x4UL
1142 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_UNKNOWN 0xffUL
1143 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_LAST FUNC_QCFG_RESP_PORT_PARTITION_TYPE_UNKNOWN
1145 #define FUNC_QCFG_RESP_PORT_PF_CNT_UNAVAIL 0x0UL
1146 #define FUNC_QCFG_RESP_PORT_PF_CNT_LAST FUNC_QCFG_RESP_PORT_PF_CNT_UNAVAIL
1147 __le16 dflt_vnic_id;
1148 __le16 max_mtu_configured;
1150 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_MASK 0xfffffffUL
1151 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_SFT 0
1152 #define FUNC_QCFG_RESP_MIN_BW_SCALE 0x10000000UL
1153 #define FUNC_QCFG_RESP_MIN_BW_SCALE_BITS (0x0UL << 28)
1154 #define FUNC_QCFG_RESP_MIN_BW_SCALE_BYTES (0x1UL << 28)
1155 #define FUNC_QCFG_RESP_MIN_BW_SCALE_LAST FUNC_QCFG_RESP_MIN_BW_SCALE_BYTES
1156 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
1157 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_SFT 29
1158 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
1159 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
1160 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
1161 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
1162 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
1163 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
1164 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_LAST FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_INVALID
1166 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_MASK 0xfffffffUL
1167 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_SFT 0
1168 #define FUNC_QCFG_RESP_MAX_BW_SCALE 0x10000000UL
1169 #define FUNC_QCFG_RESP_MAX_BW_SCALE_BITS (0x0UL << 28)
1170 #define FUNC_QCFG_RESP_MAX_BW_SCALE_BYTES (0x1UL << 28)
1171 #define FUNC_QCFG_RESP_MAX_BW_SCALE_LAST FUNC_QCFG_RESP_MAX_BW_SCALE_BYTES
1172 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
1173 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_SFT 29
1174 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
1175 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
1176 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
1177 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
1178 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
1179 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
1180 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_LAST FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_INVALID
1182 #define FUNC_QCFG_RESP_EVB_MODE_NO_EVB 0x0UL
1183 #define FUNC_QCFG_RESP_EVB_MODE_VEB 0x1UL
1184 #define FUNC_QCFG_RESP_EVB_MODE_VEPA 0x2UL
1185 #define FUNC_QCFG_RESP_EVB_MODE_LAST FUNC_QCFG_RESP_EVB_MODE_VEPA
1187 #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_MASK 0x3UL
1188 #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SFT 0
1189 #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_64 0x0UL
1190 #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_128 0x1UL
1191 #define FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_LAST FUNC_QCFG_RESP_OPTIONS_CACHE_LINESIZE_SIZE_128
1192 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_MASK 0xcUL
1193 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_SFT 2
1194 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_FORCED_DOWN (0x0UL << 2)
1195 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_FORCED_UP (0x1UL << 2)
1196 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_AUTO (0x2UL << 2)
1197 #define FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_LAST FUNC_QCFG_RESP_OPTIONS_LINK_ADMIN_STATE_AUTO
1198 #define FUNC_QCFG_RESP_OPTIONS_RSVD_MASK 0xf0UL
1199 #define FUNC_QCFG_RESP_OPTIONS_RSVD_SFT 4
1201 __le32 alloc_mcast_filters;
1202 __le32 alloc_hw_ring_grps;
1203 __le16 alloc_sp_tx_rings;
1204 __le16 alloc_stat_ctx;
1206 __le16 registered_vfs;
1209 __le32 reset_addr_poll;
1214 /* hwrm_func_cfg_input (size:704b/88B) */
1215 struct hwrm_func_cfg_input {
1224 #define FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_DISABLE 0x1UL
1225 #define FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_ENABLE 0x2UL
1226 #define FUNC_CFG_REQ_FLAGS_RSVD_MASK 0x1fcUL
1227 #define FUNC_CFG_REQ_FLAGS_RSVD_SFT 2
1228 #define FUNC_CFG_REQ_FLAGS_STD_TX_RING_MODE_ENABLE 0x200UL
1229 #define FUNC_CFG_REQ_FLAGS_STD_TX_RING_MODE_DISABLE 0x400UL
1230 #define FUNC_CFG_REQ_FLAGS_VIRT_MAC_PERSIST 0x800UL
1231 #define FUNC_CFG_REQ_FLAGS_NO_AUTOCLEAR_STATISTIC 0x1000UL
1232 #define FUNC_CFG_REQ_FLAGS_TX_ASSETS_TEST 0x2000UL
1233 #define FUNC_CFG_REQ_FLAGS_RX_ASSETS_TEST 0x4000UL
1234 #define FUNC_CFG_REQ_FLAGS_CMPL_ASSETS_TEST 0x8000UL
1235 #define FUNC_CFG_REQ_FLAGS_RSSCOS_CTX_ASSETS_TEST 0x10000UL
1236 #define FUNC_CFG_REQ_FLAGS_RING_GRP_ASSETS_TEST 0x20000UL
1237 #define FUNC_CFG_REQ_FLAGS_STAT_CTX_ASSETS_TEST 0x40000UL
1238 #define FUNC_CFG_REQ_FLAGS_VNIC_ASSETS_TEST 0x80000UL
1239 #define FUNC_CFG_REQ_FLAGS_L2_CTX_ASSETS_TEST 0x100000UL
1240 #define FUNC_CFG_REQ_FLAGS_TRUSTED_VF_ENABLE 0x200000UL
1241 #define FUNC_CFG_REQ_FLAGS_DYNAMIC_TX_RING_ALLOC 0x400000UL
1242 #define FUNC_CFG_REQ_FLAGS_NQ_ASSETS_TEST 0x800000UL
1243 #define FUNC_CFG_REQ_FLAGS_TRUSTED_VF_DISABLE 0x1000000UL
1245 #define FUNC_CFG_REQ_ENABLES_MTU 0x1UL
1246 #define FUNC_CFG_REQ_ENABLES_MRU 0x2UL
1247 #define FUNC_CFG_REQ_ENABLES_NUM_RSSCOS_CTXS 0x4UL
1248 #define FUNC_CFG_REQ_ENABLES_NUM_CMPL_RINGS 0x8UL
1249 #define FUNC_CFG_REQ_ENABLES_NUM_TX_RINGS 0x10UL
1250 #define FUNC_CFG_REQ_ENABLES_NUM_RX_RINGS 0x20UL
1251 #define FUNC_CFG_REQ_ENABLES_NUM_L2_CTXS 0x40UL
1252 #define FUNC_CFG_REQ_ENABLES_NUM_VNICS 0x80UL
1253 #define FUNC_CFG_REQ_ENABLES_NUM_STAT_CTXS 0x100UL
1254 #define FUNC_CFG_REQ_ENABLES_DFLT_MAC_ADDR 0x200UL
1255 #define FUNC_CFG_REQ_ENABLES_DFLT_VLAN 0x400UL
1256 #define FUNC_CFG_REQ_ENABLES_DFLT_IP_ADDR 0x800UL
1257 #define FUNC_CFG_REQ_ENABLES_MIN_BW 0x1000UL
1258 #define FUNC_CFG_REQ_ENABLES_MAX_BW 0x2000UL
1259 #define FUNC_CFG_REQ_ENABLES_ASYNC_EVENT_CR 0x4000UL
1260 #define FUNC_CFG_REQ_ENABLES_VLAN_ANTISPOOF_MODE 0x8000UL
1261 #define FUNC_CFG_REQ_ENABLES_ALLOWED_VLAN_PRIS 0x10000UL
1262 #define FUNC_CFG_REQ_ENABLES_EVB_MODE 0x20000UL
1263 #define FUNC_CFG_REQ_ENABLES_NUM_MCAST_FILTERS 0x40000UL
1264 #define FUNC_CFG_REQ_ENABLES_NUM_HW_RING_GRPS 0x80000UL
1265 #define FUNC_CFG_REQ_ENABLES_CACHE_LINESIZE 0x100000UL
1266 #define FUNC_CFG_REQ_ENABLES_NUM_MSIX 0x200000UL
1267 #define FUNC_CFG_REQ_ENABLES_ADMIN_LINK_STATE 0x400000UL
1270 __le16 num_rsscos_ctxs;
1271 __le16 num_cmpl_rings;
1272 __le16 num_tx_rings;
1273 __le16 num_rx_rings;
1276 __le16 num_stat_ctxs;
1277 __le16 num_hw_ring_grps;
1278 u8 dflt_mac_addr[6];
1280 __be32 dflt_ip_addr[4];
1282 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_MASK 0xfffffffUL
1283 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_SFT 0
1284 #define FUNC_CFG_REQ_MIN_BW_SCALE 0x10000000UL
1285 #define FUNC_CFG_REQ_MIN_BW_SCALE_BITS (0x0UL << 28)
1286 #define FUNC_CFG_REQ_MIN_BW_SCALE_BYTES (0x1UL << 28)
1287 #define FUNC_CFG_REQ_MIN_BW_SCALE_LAST FUNC_CFG_REQ_MIN_BW_SCALE_BYTES
1288 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
1289 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_SFT 29
1290 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
1291 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
1292 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
1293 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
1294 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
1295 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
1296 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_LAST FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_INVALID
1298 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_MASK 0xfffffffUL
1299 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_SFT 0
1300 #define FUNC_CFG_REQ_MAX_BW_SCALE 0x10000000UL
1301 #define FUNC_CFG_REQ_MAX_BW_SCALE_BITS (0x0UL << 28)
1302 #define FUNC_CFG_REQ_MAX_BW_SCALE_BYTES (0x1UL << 28)
1303 #define FUNC_CFG_REQ_MAX_BW_SCALE_LAST FUNC_CFG_REQ_MAX_BW_SCALE_BYTES
1304 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
1305 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_SFT 29
1306 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
1307 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
1308 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
1309 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
1310 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
1311 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
1312 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_LAST FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_INVALID
1313 __le16 async_event_cr;
1314 u8 vlan_antispoof_mode;
1315 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_NOCHECK 0x0UL
1316 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_VALIDATE_VLAN 0x1UL
1317 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_IF_VLANDNE 0x2UL
1318 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_OR_OVERRIDE_VLAN 0x3UL
1319 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_LAST FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_OR_OVERRIDE_VLAN
1320 u8 allowed_vlan_pris;
1322 #define FUNC_CFG_REQ_EVB_MODE_NO_EVB 0x0UL
1323 #define FUNC_CFG_REQ_EVB_MODE_VEB 0x1UL
1324 #define FUNC_CFG_REQ_EVB_MODE_VEPA 0x2UL
1325 #define FUNC_CFG_REQ_EVB_MODE_LAST FUNC_CFG_REQ_EVB_MODE_VEPA
1327 #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_MASK 0x3UL
1328 #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SFT 0
1329 #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_64 0x0UL
1330 #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_128 0x1UL
1331 #define FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_LAST FUNC_CFG_REQ_OPTIONS_CACHE_LINESIZE_SIZE_128
1332 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_MASK 0xcUL
1333 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_SFT 2
1334 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_FORCED_DOWN (0x0UL << 2)
1335 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_FORCED_UP (0x1UL << 2)
1336 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_AUTO (0x2UL << 2)
1337 #define FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_LAST FUNC_CFG_REQ_OPTIONS_LINK_ADMIN_STATE_AUTO
1338 #define FUNC_CFG_REQ_OPTIONS_RSVD_MASK 0xf0UL
1339 #define FUNC_CFG_REQ_OPTIONS_RSVD_SFT 4
1340 __le16 num_mcast_filters;
1343 /* hwrm_func_cfg_output (size:128b/16B) */
1344 struct hwrm_func_cfg_output {
1353 /* hwrm_func_qstats_input (size:192b/24B) */
1354 struct hwrm_func_qstats_input {
1364 /* hwrm_func_qstats_output (size:1408b/176B) */
1365 struct hwrm_func_qstats_output {
1370 __le64 tx_ucast_pkts;
1371 __le64 tx_mcast_pkts;
1372 __le64 tx_bcast_pkts;
1373 __le64 tx_discard_pkts;
1374 __le64 tx_drop_pkts;
1375 __le64 tx_ucast_bytes;
1376 __le64 tx_mcast_bytes;
1377 __le64 tx_bcast_bytes;
1378 __le64 rx_ucast_pkts;
1379 __le64 rx_mcast_pkts;
1380 __le64 rx_bcast_pkts;
1381 __le64 rx_discard_pkts;
1382 __le64 rx_drop_pkts;
1383 __le64 rx_ucast_bytes;
1384 __le64 rx_mcast_bytes;
1385 __le64 rx_bcast_bytes;
1387 __le64 rx_agg_bytes;
1388 __le64 rx_agg_events;
1389 __le64 rx_agg_aborts;
1394 /* hwrm_func_clr_stats_input (size:192b/24B) */
1395 struct hwrm_func_clr_stats_input {
1405 /* hwrm_func_clr_stats_output (size:128b/16B) */
1406 struct hwrm_func_clr_stats_output {
1415 /* hwrm_func_vf_resc_free_input (size:192b/24B) */
1416 struct hwrm_func_vf_resc_free_input {
1426 /* hwrm_func_vf_resc_free_output (size:128b/16B) */
1427 struct hwrm_func_vf_resc_free_output {
1436 /* hwrm_func_drv_rgtr_input (size:896b/112B) */
1437 struct hwrm_func_drv_rgtr_input {
1444 #define FUNC_DRV_RGTR_REQ_FLAGS_FWD_ALL_MODE 0x1UL
1445 #define FUNC_DRV_RGTR_REQ_FLAGS_FWD_NONE_MODE 0x2UL
1446 #define FUNC_DRV_RGTR_REQ_FLAGS_16BIT_VER_MODE 0x4UL
1447 #define FUNC_DRV_RGTR_REQ_FLAGS_FLOW_HANDLE_64BIT_MODE 0x8UL
1448 #define FUNC_DRV_RGTR_REQ_FLAGS_HOT_RESET_SUPPORT 0x10UL
1449 #define FUNC_DRV_RGTR_REQ_FLAGS_ERROR_RECOVERY_SUPPORT 0x20UL
1451 #define FUNC_DRV_RGTR_REQ_ENABLES_OS_TYPE 0x1UL
1452 #define FUNC_DRV_RGTR_REQ_ENABLES_VER 0x2UL
1453 #define FUNC_DRV_RGTR_REQ_ENABLES_TIMESTAMP 0x4UL
1454 #define FUNC_DRV_RGTR_REQ_ENABLES_VF_REQ_FWD 0x8UL
1455 #define FUNC_DRV_RGTR_REQ_ENABLES_ASYNC_EVENT_FWD 0x10UL
1457 #define FUNC_DRV_RGTR_REQ_OS_TYPE_UNKNOWN 0x0UL
1458 #define FUNC_DRV_RGTR_REQ_OS_TYPE_OTHER 0x1UL
1459 #define FUNC_DRV_RGTR_REQ_OS_TYPE_MSDOS 0xeUL
1460 #define FUNC_DRV_RGTR_REQ_OS_TYPE_WINDOWS 0x12UL
1461 #define FUNC_DRV_RGTR_REQ_OS_TYPE_SOLARIS 0x1dUL
1462 #define FUNC_DRV_RGTR_REQ_OS_TYPE_LINUX 0x24UL
1463 #define FUNC_DRV_RGTR_REQ_OS_TYPE_FREEBSD 0x2aUL
1464 #define FUNC_DRV_RGTR_REQ_OS_TYPE_ESXI 0x68UL
1465 #define FUNC_DRV_RGTR_REQ_OS_TYPE_WIN864 0x73UL
1466 #define FUNC_DRV_RGTR_REQ_OS_TYPE_WIN2012R2 0x74UL
1467 #define FUNC_DRV_RGTR_REQ_OS_TYPE_UEFI 0x8000UL
1468 #define FUNC_DRV_RGTR_REQ_OS_TYPE_LAST FUNC_DRV_RGTR_REQ_OS_TYPE_UEFI
1475 __le32 vf_req_fwd[8];
1476 __le32 async_event_fwd[8];
1483 /* hwrm_func_drv_rgtr_output (size:128b/16B) */
1484 struct hwrm_func_drv_rgtr_output {
1490 #define FUNC_DRV_RGTR_RESP_FLAGS_IF_CHANGE_SUPPORTED 0x1UL
1495 /* hwrm_func_drv_unrgtr_input (size:192b/24B) */
1496 struct hwrm_func_drv_unrgtr_input {
1503 #define FUNC_DRV_UNRGTR_REQ_FLAGS_PREPARE_FOR_SHUTDOWN 0x1UL
1507 /* hwrm_func_drv_unrgtr_output (size:128b/16B) */
1508 struct hwrm_func_drv_unrgtr_output {
1517 /* hwrm_func_buf_rgtr_input (size:1024b/128B) */
1518 struct hwrm_func_buf_rgtr_input {
1525 #define FUNC_BUF_RGTR_REQ_ENABLES_VF_ID 0x1UL
1526 #define FUNC_BUF_RGTR_REQ_ENABLES_ERR_BUF_ADDR 0x2UL
1528 __le16 req_buf_num_pages;
1529 __le16 req_buf_page_size;
1530 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_16B 0x4UL
1531 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_4K 0xcUL
1532 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_8K 0xdUL
1533 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_64K 0x10UL
1534 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_2M 0x15UL
1535 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_4M 0x16UL
1536 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_1G 0x1eUL
1537 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_LAST FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_1G
1539 __le16 resp_buf_len;
1541 __le64 req_buf_page_addr0;
1542 __le64 req_buf_page_addr1;
1543 __le64 req_buf_page_addr2;
1544 __le64 req_buf_page_addr3;
1545 __le64 req_buf_page_addr4;
1546 __le64 req_buf_page_addr5;
1547 __le64 req_buf_page_addr6;
1548 __le64 req_buf_page_addr7;
1549 __le64 req_buf_page_addr8;
1550 __le64 req_buf_page_addr9;
1551 __le64 error_buf_addr;
1552 __le64 resp_buf_addr;
1555 /* hwrm_func_buf_rgtr_output (size:128b/16B) */
1556 struct hwrm_func_buf_rgtr_output {
1565 /* hwrm_func_drv_qver_input (size:192b/24B) */
1566 struct hwrm_func_drv_qver_input {
1577 /* hwrm_func_drv_qver_output (size:256b/32B) */
1578 struct hwrm_func_drv_qver_output {
1584 #define FUNC_DRV_QVER_RESP_OS_TYPE_UNKNOWN 0x0UL
1585 #define FUNC_DRV_QVER_RESP_OS_TYPE_OTHER 0x1UL
1586 #define FUNC_DRV_QVER_RESP_OS_TYPE_MSDOS 0xeUL
1587 #define FUNC_DRV_QVER_RESP_OS_TYPE_WINDOWS 0x12UL
1588 #define FUNC_DRV_QVER_RESP_OS_TYPE_SOLARIS 0x1dUL
1589 #define FUNC_DRV_QVER_RESP_OS_TYPE_LINUX 0x24UL
1590 #define FUNC_DRV_QVER_RESP_OS_TYPE_FREEBSD 0x2aUL
1591 #define FUNC_DRV_QVER_RESP_OS_TYPE_ESXI 0x68UL
1592 #define FUNC_DRV_QVER_RESP_OS_TYPE_WIN864 0x73UL
1593 #define FUNC_DRV_QVER_RESP_OS_TYPE_WIN2012R2 0x74UL
1594 #define FUNC_DRV_QVER_RESP_OS_TYPE_UEFI 0x8000UL
1595 #define FUNC_DRV_QVER_RESP_OS_TYPE_LAST FUNC_DRV_QVER_RESP_OS_TYPE_UEFI
1608 /* hwrm_func_resource_qcaps_input (size:192b/24B) */
1609 struct hwrm_func_resource_qcaps_input {
1619 /* hwrm_func_resource_qcaps_output (size:448b/56B) */
1620 struct hwrm_func_resource_qcaps_output {
1627 __le16 vf_reservation_strategy;
1628 #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MAXIMAL 0x0UL
1629 #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL 0x1UL
1630 #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL_STATIC 0x2UL
1631 #define FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_LAST FUNC_RESOURCE_QCAPS_RESP_VF_RESERVATION_STRATEGY_MINIMAL_STATIC
1632 __le16 min_rsscos_ctx;
1633 __le16 max_rsscos_ctx;
1634 __le16 min_cmpl_rings;
1635 __le16 max_cmpl_rings;
1636 __le16 min_tx_rings;
1637 __le16 max_tx_rings;
1638 __le16 min_rx_rings;
1639 __le16 max_rx_rings;
1644 __le16 min_stat_ctx;
1645 __le16 max_stat_ctx;
1646 __le16 min_hw_ring_grps;
1647 __le16 max_hw_ring_grps;
1648 __le16 max_tx_scheduler_inputs;
1650 #define FUNC_RESOURCE_QCAPS_RESP_FLAGS_MIN_GUARANTEED 0x1UL
1655 /* hwrm_func_vf_resource_cfg_input (size:448b/56B) */
1656 struct hwrm_func_vf_resource_cfg_input {
1664 __le16 min_rsscos_ctx;
1665 __le16 max_rsscos_ctx;
1666 __le16 min_cmpl_rings;
1667 __le16 max_cmpl_rings;
1668 __le16 min_tx_rings;
1669 __le16 max_tx_rings;
1670 __le16 min_rx_rings;
1671 __le16 max_rx_rings;
1676 __le16 min_stat_ctx;
1677 __le16 max_stat_ctx;
1678 __le16 min_hw_ring_grps;
1679 __le16 max_hw_ring_grps;
1681 #define FUNC_VF_RESOURCE_CFG_REQ_FLAGS_MIN_GUARANTEED 0x1UL
1685 /* hwrm_func_vf_resource_cfg_output (size:256b/32B) */
1686 struct hwrm_func_vf_resource_cfg_output {
1691 __le16 reserved_rsscos_ctx;
1692 __le16 reserved_cmpl_rings;
1693 __le16 reserved_tx_rings;
1694 __le16 reserved_rx_rings;
1695 __le16 reserved_l2_ctxs;
1696 __le16 reserved_vnics;
1697 __le16 reserved_stat_ctx;
1698 __le16 reserved_hw_ring_grps;
1703 /* hwrm_func_backing_store_qcaps_input (size:128b/16B) */
1704 struct hwrm_func_backing_store_qcaps_input {
1712 /* hwrm_func_backing_store_qcaps_output (size:576b/72B) */
1713 struct hwrm_func_backing_store_qcaps_output {
1718 __le32 qp_max_entries;
1719 __le16 qp_min_qp1_entries;
1720 __le16 qp_max_l2_entries;
1721 __le16 qp_entry_size;
1722 __le16 srq_max_l2_entries;
1723 __le32 srq_max_entries;
1724 __le16 srq_entry_size;
1725 __le16 cq_max_l2_entries;
1726 __le32 cq_max_entries;
1727 __le16 cq_entry_size;
1728 __le16 vnic_max_vnic_entries;
1729 __le16 vnic_max_ring_table_entries;
1730 __le16 vnic_entry_size;
1731 __le32 stat_max_entries;
1732 __le16 stat_entry_size;
1733 __le16 tqm_entry_size;
1734 __le32 tqm_min_entries_per_ring;
1735 __le32 tqm_max_entries_per_ring;
1736 __le32 mrav_max_entries;
1737 __le16 mrav_entry_size;
1738 __le16 tim_entry_size;
1739 __le32 tim_max_entries;
1740 __le16 mrav_num_entries_units;
1741 u8 tqm_entries_multiple;
1745 /* hwrm_func_backing_store_cfg_input (size:2048b/256B) */
1746 struct hwrm_func_backing_store_cfg_input {
1753 #define FUNC_BACKING_STORE_CFG_REQ_FLAGS_PREBOOT_MODE 0x1UL
1754 #define FUNC_BACKING_STORE_CFG_REQ_FLAGS_MRAV_RESERVATION_SPLIT 0x2UL
1756 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_QP 0x1UL
1757 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_SRQ 0x2UL
1758 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_CQ 0x4UL
1759 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_VNIC 0x8UL
1760 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_STAT 0x10UL
1761 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_SP 0x20UL
1762 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING0 0x40UL
1763 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING1 0x80UL
1764 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING2 0x100UL
1765 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING3 0x200UL
1766 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING4 0x400UL
1767 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING5 0x800UL
1768 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING6 0x1000UL
1769 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TQM_RING7 0x2000UL
1770 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_MRAV 0x4000UL
1771 #define FUNC_BACKING_STORE_CFG_REQ_ENABLES_TIM 0x8000UL
1772 u8 qpc_pg_size_qpc_lvl;
1773 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_MASK 0xfUL
1774 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_SFT 0
1775 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_0 0x0UL
1776 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_1 0x1UL
1777 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_2 0x2UL
1778 #define FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_QPC_LVL_LVL_2
1779 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_MASK 0xf0UL
1780 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_SFT 4
1781 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_4K (0x0UL << 4)
1782 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_8K (0x1UL << 4)
1783 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_64K (0x2UL << 4)
1784 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_2M (0x3UL << 4)
1785 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_8M (0x4UL << 4)
1786 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_1G (0x5UL << 4)
1787 #define FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_1G
1788 u8 srq_pg_size_srq_lvl;
1789 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_MASK 0xfUL
1790 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_SFT 0
1791 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_0 0x0UL
1792 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_1 0x1UL
1793 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_2 0x2UL
1794 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_SRQ_LVL_LVL_2
1795 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_MASK 0xf0UL
1796 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_SFT 4
1797 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_4K (0x0UL << 4)
1798 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_8K (0x1UL << 4)
1799 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_64K (0x2UL << 4)
1800 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_2M (0x3UL << 4)
1801 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_8M (0x4UL << 4)
1802 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_1G (0x5UL << 4)
1803 #define FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_1G
1804 u8 cq_pg_size_cq_lvl;
1805 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_MASK 0xfUL
1806 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_SFT 0
1807 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_0 0x0UL
1808 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_1 0x1UL
1809 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_2 0x2UL
1810 #define FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_CQ_LVL_LVL_2
1811 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_MASK 0xf0UL
1812 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_SFT 4
1813 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_4K (0x0UL << 4)
1814 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_8K (0x1UL << 4)
1815 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_64K (0x2UL << 4)
1816 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_2M (0x3UL << 4)
1817 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_8M (0x4UL << 4)
1818 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_1G (0x5UL << 4)
1819 #define FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_CQ_PG_SIZE_PG_1G
1820 u8 vnic_pg_size_vnic_lvl;
1821 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_MASK 0xfUL
1822 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_SFT 0
1823 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_0 0x0UL
1824 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_1 0x1UL
1825 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_2 0x2UL
1826 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_VNIC_LVL_LVL_2
1827 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_MASK 0xf0UL
1828 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_SFT 4
1829 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_4K (0x0UL << 4)
1830 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_8K (0x1UL << 4)
1831 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_64K (0x2UL << 4)
1832 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_2M (0x3UL << 4)
1833 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_8M (0x4UL << 4)
1834 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_1G (0x5UL << 4)
1835 #define FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_VNIC_PG_SIZE_PG_1G
1836 u8 stat_pg_size_stat_lvl;
1837 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_MASK 0xfUL
1838 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_SFT 0
1839 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_0 0x0UL
1840 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_1 0x1UL
1841 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_2 0x2UL
1842 #define FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_STAT_LVL_LVL_2
1843 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_MASK 0xf0UL
1844 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_SFT 4
1845 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_4K (0x0UL << 4)
1846 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_8K (0x1UL << 4)
1847 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_64K (0x2UL << 4)
1848 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_2M (0x3UL << 4)
1849 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_8M (0x4UL << 4)
1850 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_1G (0x5UL << 4)
1851 #define FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_STAT_PG_SIZE_PG_1G
1852 u8 tqm_sp_pg_size_tqm_sp_lvl;
1853 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_MASK 0xfUL
1854 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_SFT 0
1855 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_0 0x0UL
1856 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_1 0x1UL
1857 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_2 0x2UL
1858 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_SP_LVL_LVL_2
1859 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_MASK 0xf0UL
1860 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_SFT 4
1861 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_4K (0x0UL << 4)
1862 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_8K (0x1UL << 4)
1863 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_64K (0x2UL << 4)
1864 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_2M (0x3UL << 4)
1865 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_8M (0x4UL << 4)
1866 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_1G (0x5UL << 4)
1867 #define FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_SP_PG_SIZE_PG_1G
1868 u8 tqm_ring0_pg_size_tqm_ring0_lvl;
1869 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_MASK 0xfUL
1870 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_SFT 0
1871 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_0 0x0UL
1872 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_1 0x1UL
1873 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_2 0x2UL
1874 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_LVL_LVL_2
1875 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_MASK 0xf0UL
1876 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_SFT 4
1877 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_4K (0x0UL << 4)
1878 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_8K (0x1UL << 4)
1879 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_64K (0x2UL << 4)
1880 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_2M (0x3UL << 4)
1881 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_8M (0x4UL << 4)
1882 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_1G (0x5UL << 4)
1883 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING0_PG_SIZE_PG_1G
1884 u8 tqm_ring1_pg_size_tqm_ring1_lvl;
1885 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_MASK 0xfUL
1886 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_SFT 0
1887 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_0 0x0UL
1888 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_1 0x1UL
1889 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_2 0x2UL
1890 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_LVL_LVL_2
1891 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_MASK 0xf0UL
1892 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_SFT 4
1893 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_4K (0x0UL << 4)
1894 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_8K (0x1UL << 4)
1895 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_64K (0x2UL << 4)
1896 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_2M (0x3UL << 4)
1897 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_8M (0x4UL << 4)
1898 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_1G (0x5UL << 4)
1899 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING1_PG_SIZE_PG_1G
1900 u8 tqm_ring2_pg_size_tqm_ring2_lvl;
1901 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_MASK 0xfUL
1902 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_SFT 0
1903 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_0 0x0UL
1904 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_1 0x1UL
1905 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_2 0x2UL
1906 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_LVL_LVL_2
1907 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_MASK 0xf0UL
1908 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_SFT 4
1909 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_4K (0x0UL << 4)
1910 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_8K (0x1UL << 4)
1911 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_64K (0x2UL << 4)
1912 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_2M (0x3UL << 4)
1913 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_8M (0x4UL << 4)
1914 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_1G (0x5UL << 4)
1915 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING2_PG_SIZE_PG_1G
1916 u8 tqm_ring3_pg_size_tqm_ring3_lvl;
1917 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_MASK 0xfUL
1918 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_SFT 0
1919 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_0 0x0UL
1920 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_1 0x1UL
1921 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_2 0x2UL
1922 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_LVL_LVL_2
1923 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_MASK 0xf0UL
1924 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_SFT 4
1925 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_4K (0x0UL << 4)
1926 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_8K (0x1UL << 4)
1927 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_64K (0x2UL << 4)
1928 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_2M (0x3UL << 4)
1929 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_8M (0x4UL << 4)
1930 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_1G (0x5UL << 4)
1931 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING3_PG_SIZE_PG_1G
1932 u8 tqm_ring4_pg_size_tqm_ring4_lvl;
1933 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_MASK 0xfUL
1934 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_SFT 0
1935 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_0 0x0UL
1936 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_1 0x1UL
1937 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_2 0x2UL
1938 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_LVL_LVL_2
1939 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_MASK 0xf0UL
1940 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_SFT 4
1941 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_4K (0x0UL << 4)
1942 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_8K (0x1UL << 4)
1943 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_64K (0x2UL << 4)
1944 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_2M (0x3UL << 4)
1945 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_8M (0x4UL << 4)
1946 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_1G (0x5UL << 4)
1947 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING4_PG_SIZE_PG_1G
1948 u8 tqm_ring5_pg_size_tqm_ring5_lvl;
1949 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_MASK 0xfUL
1950 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_SFT 0
1951 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_0 0x0UL
1952 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_1 0x1UL
1953 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_2 0x2UL
1954 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_LVL_LVL_2
1955 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_MASK 0xf0UL
1956 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_SFT 4
1957 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_4K (0x0UL << 4)
1958 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_8K (0x1UL << 4)
1959 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_64K (0x2UL << 4)
1960 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_2M (0x3UL << 4)
1961 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_8M (0x4UL << 4)
1962 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_1G (0x5UL << 4)
1963 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING5_PG_SIZE_PG_1G
1964 u8 tqm_ring6_pg_size_tqm_ring6_lvl;
1965 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_MASK 0xfUL
1966 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_SFT 0
1967 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_0 0x0UL
1968 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_1 0x1UL
1969 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_2 0x2UL
1970 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_LVL_LVL_2
1971 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_MASK 0xf0UL
1972 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_SFT 4
1973 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_4K (0x0UL << 4)
1974 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_8K (0x1UL << 4)
1975 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_64K (0x2UL << 4)
1976 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_2M (0x3UL << 4)
1977 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_8M (0x4UL << 4)
1978 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_1G (0x5UL << 4)
1979 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING6_PG_SIZE_PG_1G
1980 u8 tqm_ring7_pg_size_tqm_ring7_lvl;
1981 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_MASK 0xfUL
1982 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_SFT 0
1983 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_0 0x0UL
1984 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_1 0x1UL
1985 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_2 0x2UL
1986 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_LVL_LVL_2
1987 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_MASK 0xf0UL
1988 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_SFT 4
1989 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_4K (0x0UL << 4)
1990 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_8K (0x1UL << 4)
1991 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_64K (0x2UL << 4)
1992 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_2M (0x3UL << 4)
1993 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_8M (0x4UL << 4)
1994 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_1G (0x5UL << 4)
1995 #define FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TQM_RING7_PG_SIZE_PG_1G
1996 u8 mrav_pg_size_mrav_lvl;
1997 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_MASK 0xfUL
1998 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_SFT 0
1999 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_0 0x0UL
2000 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_1 0x1UL
2001 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_2 0x2UL
2002 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_MRAV_LVL_LVL_2
2003 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_MASK 0xf0UL
2004 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_SFT 4
2005 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_4K (0x0UL << 4)
2006 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_8K (0x1UL << 4)
2007 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_64K (0x2UL << 4)
2008 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_2M (0x3UL << 4)
2009 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_8M (0x4UL << 4)
2010 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_1G (0x5UL << 4)
2011 #define FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_MRAV_PG_SIZE_PG_1G
2012 u8 tim_pg_size_tim_lvl;
2013 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_MASK 0xfUL
2014 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_SFT 0
2015 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_0 0x0UL
2016 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_1 0x1UL
2017 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_2 0x2UL
2018 #define FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LAST FUNC_BACKING_STORE_CFG_REQ_TIM_LVL_LVL_2
2019 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_MASK 0xf0UL
2020 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_SFT 4
2021 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_4K (0x0UL << 4)
2022 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_8K (0x1UL << 4)
2023 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_64K (0x2UL << 4)
2024 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_2M (0x3UL << 4)
2025 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_8M (0x4UL << 4)
2026 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_1G (0x5UL << 4)
2027 #define FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_LAST FUNC_BACKING_STORE_CFG_REQ_TIM_PG_SIZE_PG_1G
2028 __le64 qpc_page_dir;
2029 __le64 srq_page_dir;
2031 __le64 vnic_page_dir;
2032 __le64 stat_page_dir;
2033 __le64 tqm_sp_page_dir;
2034 __le64 tqm_ring0_page_dir;
2035 __le64 tqm_ring1_page_dir;
2036 __le64 tqm_ring2_page_dir;
2037 __le64 tqm_ring3_page_dir;
2038 __le64 tqm_ring4_page_dir;
2039 __le64 tqm_ring5_page_dir;
2040 __le64 tqm_ring6_page_dir;
2041 __le64 tqm_ring7_page_dir;
2042 __le64 mrav_page_dir;
2043 __le64 tim_page_dir;
2044 __le32 qp_num_entries;
2045 __le32 srq_num_entries;
2046 __le32 cq_num_entries;
2047 __le32 stat_num_entries;
2048 __le32 tqm_sp_num_entries;
2049 __le32 tqm_ring0_num_entries;
2050 __le32 tqm_ring1_num_entries;
2051 __le32 tqm_ring2_num_entries;
2052 __le32 tqm_ring3_num_entries;
2053 __le32 tqm_ring4_num_entries;
2054 __le32 tqm_ring5_num_entries;
2055 __le32 tqm_ring6_num_entries;
2056 __le32 tqm_ring7_num_entries;
2057 __le32 mrav_num_entries;
2058 __le32 tim_num_entries;
2059 __le16 qp_num_qp1_entries;
2060 __le16 qp_num_l2_entries;
2061 __le16 qp_entry_size;
2062 __le16 srq_num_l2_entries;
2063 __le16 srq_entry_size;
2064 __le16 cq_num_l2_entries;
2065 __le16 cq_entry_size;
2066 __le16 vnic_num_vnic_entries;
2067 __le16 vnic_num_ring_table_entries;
2068 __le16 vnic_entry_size;
2069 __le16 stat_entry_size;
2070 __le16 tqm_entry_size;
2071 __le16 mrav_entry_size;
2072 __le16 tim_entry_size;
2075 /* hwrm_func_backing_store_cfg_output (size:128b/16B) */
2076 struct hwrm_func_backing_store_cfg_output {
2085 /* hwrm_error_recovery_qcfg_input (size:192b/24B) */
2086 struct hwrm_error_recovery_qcfg_input {
2095 /* hwrm_error_recovery_qcfg_output (size:1664b/208B) */
2096 struct hwrm_error_recovery_qcfg_output {
2102 #define ERROR_RECOVERY_QCFG_RESP_FLAGS_HOST 0x1UL
2103 #define ERROR_RECOVERY_QCFG_RESP_FLAGS_CO_CPU 0x2UL
2104 __le32 driver_polling_freq;
2105 __le32 master_func_wait_period;
2106 __le32 normal_func_wait_period;
2107 __le32 master_func_wait_period_after_reset;
2108 __le32 max_bailout_time_after_reset;
2109 __le32 fw_health_status_reg;
2110 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_MASK 0x3UL
2111 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_SFT 0
2112 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_PCIE_CFG 0x0UL
2113 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_GRC 0x1UL
2114 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR0 0x2UL
2115 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR1 0x3UL
2116 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SPACE_BAR1
2117 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_MASK 0xfffffffcUL
2118 #define ERROR_RECOVERY_QCFG_RESP_FW_HEALTH_STATUS_REG_ADDR_SFT 2
2119 __le32 fw_heartbeat_reg;
2120 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_MASK 0x3UL
2121 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_SFT 0
2122 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_PCIE_CFG 0x0UL
2123 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_GRC 0x1UL
2124 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR0 0x2UL
2125 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR1 0x3UL
2126 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SPACE_BAR1
2127 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_MASK 0xfffffffcUL
2128 #define ERROR_RECOVERY_QCFG_RESP_FW_HEARTBEAT_REG_ADDR_SFT 2
2129 __le32 fw_reset_cnt_reg;
2130 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_MASK 0x3UL
2131 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_SFT 0
2132 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_PCIE_CFG 0x0UL
2133 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_GRC 0x1UL
2134 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR0 0x2UL
2135 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR1 0x3UL
2136 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SPACE_BAR1
2137 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_MASK 0xfffffffcUL
2138 #define ERROR_RECOVERY_QCFG_RESP_FW_RESET_CNT_REG_ADDR_SFT 2
2139 __le32 reset_inprogress_reg;
2140 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_MASK 0x3UL
2141 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_SFT 0
2142 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_PCIE_CFG 0x0UL
2143 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_GRC 0x1UL
2144 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR0 0x2UL
2145 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR1 0x3UL
2146 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SPACE_BAR1
2147 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_MASK 0xfffffffcUL
2148 #define ERROR_RECOVERY_QCFG_RESP_RESET_INPROGRESS_REG_ADDR_SFT 2
2149 __le32 reset_inprogress_reg_mask;
2152 __le32 reset_reg[16];
2153 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_MASK 0x3UL
2154 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_SFT 0
2155 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_PCIE_CFG 0x0UL
2156 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_GRC 0x1UL
2157 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR0 0x2UL
2158 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR1 0x3UL
2159 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_LAST ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SPACE_BAR1
2160 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_MASK 0xfffffffcUL
2161 #define ERROR_RECOVERY_QCFG_RESP_RESET_REG_ADDR_SFT 2
2162 __le32 reset_reg_val[16];
2163 u8 delay_after_reset[16];
2168 /* hwrm_func_drv_if_change_input (size:192b/24B) */
2169 struct hwrm_func_drv_if_change_input {
2176 #define FUNC_DRV_IF_CHANGE_REQ_FLAGS_UP 0x1UL
2180 /* hwrm_func_drv_if_change_output (size:128b/16B) */
2181 struct hwrm_func_drv_if_change_output {
2187 #define FUNC_DRV_IF_CHANGE_RESP_FLAGS_RESC_CHANGE 0x1UL
2188 #define FUNC_DRV_IF_CHANGE_RESP_FLAGS_HOT_FW_RESET_DONE 0x2UL
2193 /* hwrm_port_phy_cfg_input (size:448b/56B) */
2194 struct hwrm_port_phy_cfg_input {
2201 #define PORT_PHY_CFG_REQ_FLAGS_RESET_PHY 0x1UL
2202 #define PORT_PHY_CFG_REQ_FLAGS_DEPRECATED 0x2UL
2203 #define PORT_PHY_CFG_REQ_FLAGS_FORCE 0x4UL
2204 #define PORT_PHY_CFG_REQ_FLAGS_RESTART_AUTONEG 0x8UL
2205 #define PORT_PHY_CFG_REQ_FLAGS_EEE_ENABLE 0x10UL
2206 #define PORT_PHY_CFG_REQ_FLAGS_EEE_DISABLE 0x20UL
2207 #define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_ENABLE 0x40UL
2208 #define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_DISABLE 0x80UL
2209 #define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_ENABLE 0x100UL
2210 #define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_DISABLE 0x200UL
2211 #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_ENABLE 0x400UL
2212 #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_DISABLE 0x800UL
2213 #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_ENABLE 0x1000UL
2214 #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_DISABLE 0x2000UL
2215 #define PORT_PHY_CFG_REQ_FLAGS_FORCE_LINK_DWN 0x4000UL
2217 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_MODE 0x1UL
2218 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_DUPLEX 0x2UL
2219 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_PAUSE 0x4UL
2220 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEED 0x8UL
2221 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEED_MASK 0x10UL
2222 #define PORT_PHY_CFG_REQ_ENABLES_WIRESPEED 0x20UL
2223 #define PORT_PHY_CFG_REQ_ENABLES_LPBK 0x40UL
2224 #define PORT_PHY_CFG_REQ_ENABLES_PREEMPHASIS 0x80UL
2225 #define PORT_PHY_CFG_REQ_ENABLES_FORCE_PAUSE 0x100UL
2226 #define PORT_PHY_CFG_REQ_ENABLES_EEE_LINK_SPEED_MASK 0x200UL
2227 #define PORT_PHY_CFG_REQ_ENABLES_TX_LPI_TIMER 0x400UL
2229 __le16 force_link_speed;
2230 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_100MB 0x1UL
2231 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_1GB 0xaUL
2232 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_2GB 0x14UL
2233 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_2_5GB 0x19UL
2234 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10GB 0x64UL
2235 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_20GB 0xc8UL
2236 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_25GB 0xfaUL
2237 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_40GB 0x190UL
2238 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_50GB 0x1f4UL
2239 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_100GB 0x3e8UL
2240 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_200GB 0x7d0UL
2241 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10MB 0xffffUL
2242 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_LAST PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10MB
2244 #define PORT_PHY_CFG_REQ_AUTO_MODE_NONE 0x0UL
2245 #define PORT_PHY_CFG_REQ_AUTO_MODE_ALL_SPEEDS 0x1UL
2246 #define PORT_PHY_CFG_REQ_AUTO_MODE_ONE_SPEED 0x2UL
2247 #define PORT_PHY_CFG_REQ_AUTO_MODE_ONE_OR_BELOW 0x3UL
2248 #define PORT_PHY_CFG_REQ_AUTO_MODE_SPEED_MASK 0x4UL
2249 #define PORT_PHY_CFG_REQ_AUTO_MODE_LAST PORT_PHY_CFG_REQ_AUTO_MODE_SPEED_MASK
2251 #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_HALF 0x0UL
2252 #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_FULL 0x1UL
2253 #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_BOTH 0x2UL
2254 #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_LAST PORT_PHY_CFG_REQ_AUTO_DUPLEX_BOTH
2256 #define PORT_PHY_CFG_REQ_AUTO_PAUSE_TX 0x1UL
2257 #define PORT_PHY_CFG_REQ_AUTO_PAUSE_RX 0x2UL
2258 #define PORT_PHY_CFG_REQ_AUTO_PAUSE_AUTONEG_PAUSE 0x4UL
2260 __le16 auto_link_speed;
2261 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_100MB 0x1UL
2262 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_1GB 0xaUL
2263 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_2GB 0x14UL
2264 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_2_5GB 0x19UL
2265 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10GB 0x64UL
2266 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_20GB 0xc8UL
2267 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_25GB 0xfaUL
2268 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_40GB 0x190UL
2269 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_50GB 0x1f4UL
2270 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_100GB 0x3e8UL
2271 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_200GB 0x7d0UL
2272 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10MB 0xffffUL
2273 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_LAST PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10MB
2274 __le16 auto_link_speed_mask;
2275 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100MBHD 0x1UL
2276 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100MB 0x2UL
2277 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_1GBHD 0x4UL
2278 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_1GB 0x8UL
2279 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_2GB 0x10UL
2280 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_2_5GB 0x20UL
2281 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10GB 0x40UL
2282 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_20GB 0x80UL
2283 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_25GB 0x100UL
2284 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_40GB 0x200UL
2285 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_50GB 0x400UL
2286 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100GB 0x800UL
2287 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10MBHD 0x1000UL
2288 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10MB 0x2000UL
2289 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_200GB 0x4000UL
2291 #define PORT_PHY_CFG_REQ_WIRESPEED_OFF 0x0UL
2292 #define PORT_PHY_CFG_REQ_WIRESPEED_ON 0x1UL
2293 #define PORT_PHY_CFG_REQ_WIRESPEED_LAST PORT_PHY_CFG_REQ_WIRESPEED_ON
2295 #define PORT_PHY_CFG_REQ_LPBK_NONE 0x0UL
2296 #define PORT_PHY_CFG_REQ_LPBK_LOCAL 0x1UL
2297 #define PORT_PHY_CFG_REQ_LPBK_REMOTE 0x2UL
2298 #define PORT_PHY_CFG_REQ_LPBK_EXTERNAL 0x3UL
2299 #define PORT_PHY_CFG_REQ_LPBK_LAST PORT_PHY_CFG_REQ_LPBK_EXTERNAL
2301 #define PORT_PHY_CFG_REQ_FORCE_PAUSE_TX 0x1UL
2302 #define PORT_PHY_CFG_REQ_FORCE_PAUSE_RX 0x2UL
2305 __le16 eee_link_speed_mask;
2306 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD1 0x1UL
2307 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_100MB 0x2UL
2308 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD2 0x4UL
2309 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_1GB 0x8UL
2310 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD3 0x10UL
2311 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD4 0x20UL
2312 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_10GB 0x40UL
2314 __le32 tx_lpi_timer;
2315 #define PORT_PHY_CFG_REQ_TX_LPI_TIMER_MASK 0xffffffUL
2316 #define PORT_PHY_CFG_REQ_TX_LPI_TIMER_SFT 0
2320 /* hwrm_port_phy_cfg_output (size:128b/16B) */
2321 struct hwrm_port_phy_cfg_output {
2330 /* hwrm_port_phy_cfg_cmd_err (size:64b/8B) */
2331 struct hwrm_port_phy_cfg_cmd_err {
2333 #define PORT_PHY_CFG_CMD_ERR_CODE_UNKNOWN 0x0UL
2334 #define PORT_PHY_CFG_CMD_ERR_CODE_ILLEGAL_SPEED 0x1UL
2335 #define PORT_PHY_CFG_CMD_ERR_CODE_RETRY 0x2UL
2336 #define PORT_PHY_CFG_CMD_ERR_CODE_LAST PORT_PHY_CFG_CMD_ERR_CODE_RETRY
2340 /* hwrm_port_phy_qcfg_input (size:192b/24B) */
2341 struct hwrm_port_phy_qcfg_input {
2351 /* hwrm_port_phy_qcfg_output (size:768b/96B) */
2352 struct hwrm_port_phy_qcfg_output {
2358 #define PORT_PHY_QCFG_RESP_LINK_NO_LINK 0x0UL
2359 #define PORT_PHY_QCFG_RESP_LINK_SIGNAL 0x1UL
2360 #define PORT_PHY_QCFG_RESP_LINK_LINK 0x2UL
2361 #define PORT_PHY_QCFG_RESP_LINK_LAST PORT_PHY_QCFG_RESP_LINK_LINK
2364 #define PORT_PHY_QCFG_RESP_LINK_SPEED_100MB 0x1UL
2365 #define PORT_PHY_QCFG_RESP_LINK_SPEED_1GB 0xaUL
2366 #define PORT_PHY_QCFG_RESP_LINK_SPEED_2GB 0x14UL
2367 #define PORT_PHY_QCFG_RESP_LINK_SPEED_2_5GB 0x19UL
2368 #define PORT_PHY_QCFG_RESP_LINK_SPEED_10GB 0x64UL
2369 #define PORT_PHY_QCFG_RESP_LINK_SPEED_20GB 0xc8UL
2370 #define PORT_PHY_QCFG_RESP_LINK_SPEED_25GB 0xfaUL
2371 #define PORT_PHY_QCFG_RESP_LINK_SPEED_40GB 0x190UL
2372 #define PORT_PHY_QCFG_RESP_LINK_SPEED_50GB 0x1f4UL
2373 #define PORT_PHY_QCFG_RESP_LINK_SPEED_100GB 0x3e8UL
2374 #define PORT_PHY_QCFG_RESP_LINK_SPEED_200GB 0x7d0UL
2375 #define PORT_PHY_QCFG_RESP_LINK_SPEED_10MB 0xffffUL
2376 #define PORT_PHY_QCFG_RESP_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_LINK_SPEED_10MB
2378 #define PORT_PHY_QCFG_RESP_DUPLEX_CFG_HALF 0x0UL
2379 #define PORT_PHY_QCFG_RESP_DUPLEX_CFG_FULL 0x1UL
2380 #define PORT_PHY_QCFG_RESP_DUPLEX_CFG_LAST PORT_PHY_QCFG_RESP_DUPLEX_CFG_FULL
2382 #define PORT_PHY_QCFG_RESP_PAUSE_TX 0x1UL
2383 #define PORT_PHY_QCFG_RESP_PAUSE_RX 0x2UL
2384 __le16 support_speeds;
2385 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100MBHD 0x1UL
2386 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100MB 0x2UL
2387 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_1GBHD 0x4UL
2388 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_1GB 0x8UL
2389 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_2GB 0x10UL
2390 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_2_5GB 0x20UL
2391 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10GB 0x40UL
2392 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_20GB 0x80UL
2393 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_25GB 0x100UL
2394 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_40GB 0x200UL
2395 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_50GB 0x400UL
2396 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100GB 0x800UL
2397 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10MBHD 0x1000UL
2398 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10MB 0x2000UL
2399 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_200GB 0x4000UL
2400 __le16 force_link_speed;
2401 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_100MB 0x1UL
2402 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_1GB 0xaUL
2403 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_2GB 0x14UL
2404 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_2_5GB 0x19UL
2405 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10GB 0x64UL
2406 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_20GB 0xc8UL
2407 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_25GB 0xfaUL
2408 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_40GB 0x190UL
2409 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_50GB 0x1f4UL
2410 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_100GB 0x3e8UL
2411 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_200GB 0x7d0UL
2412 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10MB 0xffffUL
2413 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10MB
2415 #define PORT_PHY_QCFG_RESP_AUTO_MODE_NONE 0x0UL
2416 #define PORT_PHY_QCFG_RESP_AUTO_MODE_ALL_SPEEDS 0x1UL
2417 #define PORT_PHY_QCFG_RESP_AUTO_MODE_ONE_SPEED 0x2UL
2418 #define PORT_PHY_QCFG_RESP_AUTO_MODE_ONE_OR_BELOW 0x3UL
2419 #define PORT_PHY_QCFG_RESP_AUTO_MODE_SPEED_MASK 0x4UL
2420 #define PORT_PHY_QCFG_RESP_AUTO_MODE_LAST PORT_PHY_QCFG_RESP_AUTO_MODE_SPEED_MASK
2422 #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_TX 0x1UL
2423 #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_RX 0x2UL
2424 #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_AUTONEG_PAUSE 0x4UL
2425 __le16 auto_link_speed;
2426 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_100MB 0x1UL
2427 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_1GB 0xaUL
2428 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_2GB 0x14UL
2429 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_2_5GB 0x19UL
2430 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10GB 0x64UL
2431 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_20GB 0xc8UL
2432 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_25GB 0xfaUL
2433 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_40GB 0x190UL
2434 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_50GB 0x1f4UL
2435 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_100GB 0x3e8UL
2436 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_200GB 0x7d0UL
2437 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10MB 0xffffUL
2438 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_LAST PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10MB
2439 __le16 auto_link_speed_mask;
2440 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100MBHD 0x1UL
2441 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100MB 0x2UL
2442 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_1GBHD 0x4UL
2443 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_1GB 0x8UL
2444 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_2GB 0x10UL
2445 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_2_5GB 0x20UL
2446 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10GB 0x40UL
2447 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_20GB 0x80UL
2448 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_25GB 0x100UL
2449 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_40GB 0x200UL
2450 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_50GB 0x400UL
2451 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100GB 0x800UL
2452 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10MBHD 0x1000UL
2453 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10MB 0x2000UL
2454 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_200GB 0x4000UL
2456 #define PORT_PHY_QCFG_RESP_WIRESPEED_OFF 0x0UL
2457 #define PORT_PHY_QCFG_RESP_WIRESPEED_ON 0x1UL
2458 #define PORT_PHY_QCFG_RESP_WIRESPEED_LAST PORT_PHY_QCFG_RESP_WIRESPEED_ON
2460 #define PORT_PHY_QCFG_RESP_LPBK_NONE 0x0UL
2461 #define PORT_PHY_QCFG_RESP_LPBK_LOCAL 0x1UL
2462 #define PORT_PHY_QCFG_RESP_LPBK_REMOTE 0x2UL
2463 #define PORT_PHY_QCFG_RESP_LPBK_EXTERNAL 0x3UL
2464 #define PORT_PHY_QCFG_RESP_LPBK_LAST PORT_PHY_QCFG_RESP_LPBK_EXTERNAL
2466 #define PORT_PHY_QCFG_RESP_FORCE_PAUSE_TX 0x1UL
2467 #define PORT_PHY_QCFG_RESP_FORCE_PAUSE_RX 0x2UL
2469 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NONE 0x0UL
2470 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_DISABLETX 0x1UL
2471 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_WARNINGMSG 0x2UL
2472 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_PWRDOWN 0x3UL
2473 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTINSERTED 0x4UL
2474 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTAPPLICABLE 0xffUL
2475 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_LAST PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTAPPLICABLE
2481 #define PORT_PHY_QCFG_RESP_PHY_TYPE_UNKNOWN 0x0UL
2482 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASECR 0x1UL
2483 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR4 0x2UL
2484 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASELR 0x3UL
2485 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASESR 0x4UL
2486 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR2 0x5UL
2487 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKX 0x6UL
2488 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR 0x7UL
2489 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASET 0x8UL
2490 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASETE 0x9UL
2491 #define PORT_PHY_QCFG_RESP_PHY_TYPE_SGMIIEXTPHY 0xaUL
2492 #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_L 0xbUL
2493 #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_S 0xcUL
2494 #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASECR_CA_N 0xdUL
2495 #define PORT_PHY_QCFG_RESP_PHY_TYPE_25G_BASESR 0xeUL
2496 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASECR4 0xfUL
2497 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR4 0x10UL
2498 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASELR4 0x11UL
2499 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASEER4 0x12UL
2500 #define PORT_PHY_QCFG_RESP_PHY_TYPE_100G_BASESR10 0x13UL
2501 #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASECR4 0x14UL
2502 #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASESR4 0x15UL
2503 #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASELR4 0x16UL
2504 #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_BASEER4 0x17UL
2505 #define PORT_PHY_QCFG_RESP_PHY_TYPE_40G_ACTIVE_CABLE 0x18UL
2506 #define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASET 0x19UL
2507 #define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASESX 0x1aUL
2508 #define PORT_PHY_QCFG_RESP_PHY_TYPE_1G_BASECX 0x1bUL
2509 #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASECR4 0x1cUL
2510 #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASESR4 0x1dUL
2511 #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASELR4 0x1eUL
2512 #define PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASEER4 0x1fUL
2513 #define PORT_PHY_QCFG_RESP_PHY_TYPE_LAST PORT_PHY_QCFG_RESP_PHY_TYPE_200G_BASEER4
2515 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_UNKNOWN 0x0UL
2516 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_TP 0x1UL
2517 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_DAC 0x2UL
2518 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_FIBRE 0x3UL
2519 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_LAST PORT_PHY_QCFG_RESP_MEDIA_TYPE_FIBRE
2521 #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_INTERNAL 0x1UL
2522 #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_EXTERNAL 0x2UL
2523 #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_LAST PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_EXTERNAL
2524 u8 eee_config_phy_addr;
2525 #define PORT_PHY_QCFG_RESP_PHY_ADDR_MASK 0x1fUL
2526 #define PORT_PHY_QCFG_RESP_PHY_ADDR_SFT 0
2527 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_MASK 0xe0UL
2528 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_SFT 5
2529 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_ENABLED 0x20UL
2530 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_ACTIVE 0x40UL
2531 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_TX_LPI 0x80UL
2533 #define PORT_PHY_QCFG_RESP_PARALLEL_DETECT 0x1UL
2534 __le16 link_partner_adv_speeds;
2535 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100MBHD 0x1UL
2536 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100MB 0x2UL
2537 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_1GBHD 0x4UL
2538 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_1GB 0x8UL
2539 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_2GB 0x10UL
2540 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_2_5GB 0x20UL
2541 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10GB 0x40UL
2542 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_20GB 0x80UL
2543 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_25GB 0x100UL
2544 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_40GB 0x200UL
2545 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_50GB 0x400UL
2546 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100GB 0x800UL
2547 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10MBHD 0x1000UL
2548 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10MB 0x2000UL
2549 u8 link_partner_adv_auto_mode;
2550 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_NONE 0x0UL
2551 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ALL_SPEEDS 0x1UL
2552 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ONE_SPEED 0x2UL
2553 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ONE_OR_BELOW 0x3UL
2554 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_SPEED_MASK 0x4UL
2555 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_LAST PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_SPEED_MASK
2556 u8 link_partner_adv_pause;
2557 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_PAUSE_TX 0x1UL
2558 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_PAUSE_RX 0x2UL
2559 __le16 adv_eee_link_speed_mask;
2560 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD1 0x1UL
2561 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_100MB 0x2UL
2562 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD2 0x4UL
2563 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_1GB 0x8UL
2564 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD3 0x10UL
2565 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD4 0x20UL
2566 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_10GB 0x40UL
2567 __le16 link_partner_adv_eee_link_speed_mask;
2568 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD1 0x1UL
2569 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_100MB 0x2UL
2570 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD2 0x4UL
2571 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_1GB 0x8UL
2572 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD3 0x10UL
2573 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD4 0x20UL
2574 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_10GB 0x40UL
2575 __le32 xcvr_identifier_type_tx_lpi_timer;
2576 #define PORT_PHY_QCFG_RESP_TX_LPI_TIMER_MASK 0xffffffUL
2577 #define PORT_PHY_QCFG_RESP_TX_LPI_TIMER_SFT 0
2578 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_MASK 0xff000000UL
2579 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFT 24
2580 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_UNKNOWN (0x0UL << 24)
2581 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFP (0x3UL << 24)
2582 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP (0xcUL << 24)
2583 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFPPLUS (0xdUL << 24)
2584 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP28 (0x11UL << 24)
2585 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_LAST PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP28
2587 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_NONE_SUPPORTED 0x1UL
2588 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_SUPPORTED 0x2UL
2589 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_ENABLED 0x4UL
2590 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_SUPPORTED 0x8UL
2591 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_ENABLED 0x10UL
2592 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_SUPPORTED 0x20UL
2593 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_ENABLED 0x40UL
2595 #define PORT_PHY_QCFG_RESP_DUPLEX_STATE_HALF 0x0UL
2596 #define PORT_PHY_QCFG_RESP_DUPLEX_STATE_FULL 0x1UL
2597 #define PORT_PHY_QCFG_RESP_DUPLEX_STATE_LAST PORT_PHY_QCFG_RESP_DUPLEX_STATE_FULL
2599 #define PORT_PHY_QCFG_RESP_OPTION_FLAGS_MEDIA_AUTO_DETECT 0x1UL
2600 char phy_vendor_name[16];
2601 char phy_vendor_partnumber[16];
2606 /* hwrm_port_mac_cfg_input (size:384b/48B) */
2607 struct hwrm_port_mac_cfg_input {
2614 #define PORT_MAC_CFG_REQ_FLAGS_MATCH_LINK 0x1UL
2615 #define PORT_MAC_CFG_REQ_FLAGS_VLAN_PRI2COS_ENABLE 0x2UL
2616 #define PORT_MAC_CFG_REQ_FLAGS_TUNNEL_PRI2COS_ENABLE 0x4UL
2617 #define PORT_MAC_CFG_REQ_FLAGS_IP_DSCP2COS_ENABLE 0x8UL
2618 #define PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_ENABLE 0x10UL
2619 #define PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_DISABLE 0x20UL
2620 #define PORT_MAC_CFG_REQ_FLAGS_PTP_TX_TS_CAPTURE_ENABLE 0x40UL
2621 #define PORT_MAC_CFG_REQ_FLAGS_PTP_TX_TS_CAPTURE_DISABLE 0x80UL
2622 #define PORT_MAC_CFG_REQ_FLAGS_OOB_WOL_ENABLE 0x100UL
2623 #define PORT_MAC_CFG_REQ_FLAGS_OOB_WOL_DISABLE 0x200UL
2624 #define PORT_MAC_CFG_REQ_FLAGS_VLAN_PRI2COS_DISABLE 0x400UL
2625 #define PORT_MAC_CFG_REQ_FLAGS_TUNNEL_PRI2COS_DISABLE 0x800UL
2626 #define PORT_MAC_CFG_REQ_FLAGS_IP_DSCP2COS_DISABLE 0x1000UL
2627 #define PORT_MAC_CFG_REQ_FLAGS_PTP_ONE_STEP_TX_TS 0x2000UL
2629 #define PORT_MAC_CFG_REQ_ENABLES_IPG 0x1UL
2630 #define PORT_MAC_CFG_REQ_ENABLES_LPBK 0x2UL
2631 #define PORT_MAC_CFG_REQ_ENABLES_VLAN_PRI2COS_MAP_PRI 0x4UL
2632 #define PORT_MAC_CFG_REQ_ENABLES_TUNNEL_PRI2COS_MAP_PRI 0x10UL
2633 #define PORT_MAC_CFG_REQ_ENABLES_DSCP2COS_MAP_PRI 0x20UL
2634 #define PORT_MAC_CFG_REQ_ENABLES_RX_TS_CAPTURE_PTP_MSG_TYPE 0x40UL
2635 #define PORT_MAC_CFG_REQ_ENABLES_TX_TS_CAPTURE_PTP_MSG_TYPE 0x80UL
2636 #define PORT_MAC_CFG_REQ_ENABLES_COS_FIELD_CFG 0x100UL
2637 #define PORT_MAC_CFG_REQ_ENABLES_PTP_FREQ_ADJ_PPB 0x200UL
2641 #define PORT_MAC_CFG_REQ_LPBK_NONE 0x0UL
2642 #define PORT_MAC_CFG_REQ_LPBK_LOCAL 0x1UL
2643 #define PORT_MAC_CFG_REQ_LPBK_REMOTE 0x2UL
2644 #define PORT_MAC_CFG_REQ_LPBK_LAST PORT_MAC_CFG_REQ_LPBK_REMOTE
2645 u8 vlan_pri2cos_map_pri;
2647 u8 tunnel_pri2cos_map_pri;
2648 u8 dscp2pri_map_pri;
2649 __le16 rx_ts_capture_ptp_msg_type;
2650 __le16 tx_ts_capture_ptp_msg_type;
2652 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_RSVD1 0x1UL
2653 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_MASK 0x6UL
2654 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_SFT 1
2655 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_INNERMOST (0x0UL << 1)
2656 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_OUTER (0x1UL << 1)
2657 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_OUTERMOST (0x2UL << 1)
2658 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_UNSPECIFIED (0x3UL << 1)
2659 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_LAST PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_UNSPECIFIED
2660 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_MASK 0x18UL
2661 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_SFT 3
2662 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_INNERMOST (0x0UL << 3)
2663 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_OUTER (0x1UL << 3)
2664 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_OUTERMOST (0x2UL << 3)
2665 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_UNSPECIFIED (0x3UL << 3)
2666 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_LAST PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_UNSPECIFIED
2667 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_DEFAULT_COS_MASK 0xe0UL
2668 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_DEFAULT_COS_SFT 5
2670 __s32 ptp_freq_adj_ppb;
2674 /* hwrm_port_mac_cfg_output (size:128b/16B) */
2675 struct hwrm_port_mac_cfg_output {
2684 #define PORT_MAC_CFG_RESP_LPBK_NONE 0x0UL
2685 #define PORT_MAC_CFG_RESP_LPBK_LOCAL 0x1UL
2686 #define PORT_MAC_CFG_RESP_LPBK_REMOTE 0x2UL
2687 #define PORT_MAC_CFG_RESP_LPBK_LAST PORT_MAC_CFG_RESP_LPBK_REMOTE
2692 /* hwrm_port_mac_ptp_qcfg_input (size:192b/24B) */
2693 struct hwrm_port_mac_ptp_qcfg_input {
2703 /* hwrm_port_mac_ptp_qcfg_output (size:640b/80B) */
2704 struct hwrm_port_mac_ptp_qcfg_output {
2710 #define PORT_MAC_PTP_QCFG_RESP_FLAGS_DIRECT_ACCESS 0x1UL
2711 #define PORT_MAC_PTP_QCFG_RESP_FLAGS_HWRM_ACCESS 0x2UL
2712 #define PORT_MAC_PTP_QCFG_RESP_FLAGS_ONE_STEP_TX_TS 0x4UL
2714 __le32 rx_ts_reg_off_lower;
2715 __le32 rx_ts_reg_off_upper;
2716 __le32 rx_ts_reg_off_seq_id;
2717 __le32 rx_ts_reg_off_src_id_0;
2718 __le32 rx_ts_reg_off_src_id_1;
2719 __le32 rx_ts_reg_off_src_id_2;
2720 __le32 rx_ts_reg_off_domain_id;
2721 __le32 rx_ts_reg_off_fifo;
2722 __le32 rx_ts_reg_off_fifo_adv;
2723 __le32 rx_ts_reg_off_granularity;
2724 __le32 tx_ts_reg_off_lower;
2725 __le32 tx_ts_reg_off_upper;
2726 __le32 tx_ts_reg_off_seq_id;
2727 __le32 tx_ts_reg_off_fifo;
2728 __le32 tx_ts_reg_off_granularity;
2733 /* tx_port_stats (size:3264b/408B) */
2734 struct tx_port_stats {
2735 __le64 tx_64b_frames;
2736 __le64 tx_65b_127b_frames;
2737 __le64 tx_128b_255b_frames;
2738 __le64 tx_256b_511b_frames;
2739 __le64 tx_512b_1023b_frames;
2740 __le64 tx_1024b_1518b_frames;
2741 __le64 tx_good_vlan_frames;
2742 __le64 tx_1519b_2047b_frames;
2743 __le64 tx_2048b_4095b_frames;
2744 __le64 tx_4096b_9216b_frames;
2745 __le64 tx_9217b_16383b_frames;
2746 __le64 tx_good_frames;
2747 __le64 tx_total_frames;
2748 __le64 tx_ucast_frames;
2749 __le64 tx_mcast_frames;
2750 __le64 tx_bcast_frames;
2751 __le64 tx_pause_frames;
2752 __le64 tx_pfc_frames;
2753 __le64 tx_jabber_frames;
2754 __le64 tx_fcs_err_frames;
2755 __le64 tx_control_frames;
2756 __le64 tx_oversz_frames;
2757 __le64 tx_single_dfrl_frames;
2758 __le64 tx_multi_dfrl_frames;
2759 __le64 tx_single_coll_frames;
2760 __le64 tx_multi_coll_frames;
2761 __le64 tx_late_coll_frames;
2762 __le64 tx_excessive_coll_frames;
2763 __le64 tx_frag_frames;
2765 __le64 tx_tagged_frames;
2766 __le64 tx_dbl_tagged_frames;
2767 __le64 tx_runt_frames;
2768 __le64 tx_fifo_underruns;
2769 __le64 tx_pfc_ena_frames_pri0;
2770 __le64 tx_pfc_ena_frames_pri1;
2771 __le64 tx_pfc_ena_frames_pri2;
2772 __le64 tx_pfc_ena_frames_pri3;
2773 __le64 tx_pfc_ena_frames_pri4;
2774 __le64 tx_pfc_ena_frames_pri5;
2775 __le64 tx_pfc_ena_frames_pri6;
2776 __le64 tx_pfc_ena_frames_pri7;
2777 __le64 tx_eee_lpi_events;
2778 __le64 tx_eee_lpi_duration;
2779 __le64 tx_llfc_logical_msgs;
2780 __le64 tx_hcfc_msgs;
2781 __le64 tx_total_collisions;
2783 __le64 tx_xthol_frames;
2784 __le64 tx_stat_discard;
2785 __le64 tx_stat_error;
2788 /* rx_port_stats (size:4224b/528B) */
2789 struct rx_port_stats {
2790 __le64 rx_64b_frames;
2791 __le64 rx_65b_127b_frames;
2792 __le64 rx_128b_255b_frames;
2793 __le64 rx_256b_511b_frames;
2794 __le64 rx_512b_1023b_frames;
2795 __le64 rx_1024b_1518b_frames;
2796 __le64 rx_good_vlan_frames;
2797 __le64 rx_1519b_2047b_frames;
2798 __le64 rx_2048b_4095b_frames;
2799 __le64 rx_4096b_9216b_frames;
2800 __le64 rx_9217b_16383b_frames;
2801 __le64 rx_total_frames;
2802 __le64 rx_ucast_frames;
2803 __le64 rx_mcast_frames;
2804 __le64 rx_bcast_frames;
2805 __le64 rx_fcs_err_frames;
2806 __le64 rx_ctrl_frames;
2807 __le64 rx_pause_frames;
2808 __le64 rx_pfc_frames;
2809 __le64 rx_unsupported_opcode_frames;
2810 __le64 rx_unsupported_da_pausepfc_frames;
2811 __le64 rx_wrong_sa_frames;
2812 __le64 rx_align_err_frames;
2813 __le64 rx_oor_len_frames;
2814 __le64 rx_code_err_frames;
2815 __le64 rx_false_carrier_frames;
2816 __le64 rx_ovrsz_frames;
2817 __le64 rx_jbr_frames;
2818 __le64 rx_mtu_err_frames;
2819 __le64 rx_match_crc_frames;
2820 __le64 rx_promiscuous_frames;
2821 __le64 rx_tagged_frames;
2822 __le64 rx_double_tagged_frames;
2823 __le64 rx_trunc_frames;
2824 __le64 rx_good_frames;
2825 __le64 rx_pfc_xon2xoff_frames_pri0;
2826 __le64 rx_pfc_xon2xoff_frames_pri1;
2827 __le64 rx_pfc_xon2xoff_frames_pri2;
2828 __le64 rx_pfc_xon2xoff_frames_pri3;
2829 __le64 rx_pfc_xon2xoff_frames_pri4;
2830 __le64 rx_pfc_xon2xoff_frames_pri5;
2831 __le64 rx_pfc_xon2xoff_frames_pri6;
2832 __le64 rx_pfc_xon2xoff_frames_pri7;
2833 __le64 rx_pfc_ena_frames_pri0;
2834 __le64 rx_pfc_ena_frames_pri1;
2835 __le64 rx_pfc_ena_frames_pri2;
2836 __le64 rx_pfc_ena_frames_pri3;
2837 __le64 rx_pfc_ena_frames_pri4;
2838 __le64 rx_pfc_ena_frames_pri5;
2839 __le64 rx_pfc_ena_frames_pri6;
2840 __le64 rx_pfc_ena_frames_pri7;
2841 __le64 rx_sch_crc_err_frames;
2842 __le64 rx_undrsz_frames;
2843 __le64 rx_frag_frames;
2844 __le64 rx_eee_lpi_events;
2845 __le64 rx_eee_lpi_duration;
2846 __le64 rx_llfc_physical_msgs;
2847 __le64 rx_llfc_logical_msgs;
2848 __le64 rx_llfc_msgs_with_crc_err;
2849 __le64 rx_hcfc_msgs;
2850 __le64 rx_hcfc_msgs_with_crc_err;
2852 __le64 rx_runt_bytes;
2853 __le64 rx_runt_frames;
2854 __le64 rx_stat_discard;
2858 /* hwrm_port_qstats_input (size:320b/40B) */
2859 struct hwrm_port_qstats_input {
2867 __le64 tx_stat_host_addr;
2868 __le64 rx_stat_host_addr;
2871 /* hwrm_port_qstats_output (size:128b/16B) */
2872 struct hwrm_port_qstats_output {
2877 __le16 tx_stat_size;
2878 __le16 rx_stat_size;
2883 /* tx_port_stats_ext (size:2048b/256B) */
2884 struct tx_port_stats_ext {
2885 __le64 tx_bytes_cos0;
2886 __le64 tx_bytes_cos1;
2887 __le64 tx_bytes_cos2;
2888 __le64 tx_bytes_cos3;
2889 __le64 tx_bytes_cos4;
2890 __le64 tx_bytes_cos5;
2891 __le64 tx_bytes_cos6;
2892 __le64 tx_bytes_cos7;
2893 __le64 tx_packets_cos0;
2894 __le64 tx_packets_cos1;
2895 __le64 tx_packets_cos2;
2896 __le64 tx_packets_cos3;
2897 __le64 tx_packets_cos4;
2898 __le64 tx_packets_cos5;
2899 __le64 tx_packets_cos6;
2900 __le64 tx_packets_cos7;
2901 __le64 pfc_pri0_tx_duration_us;
2902 __le64 pfc_pri0_tx_transitions;
2903 __le64 pfc_pri1_tx_duration_us;
2904 __le64 pfc_pri1_tx_transitions;
2905 __le64 pfc_pri2_tx_duration_us;
2906 __le64 pfc_pri2_tx_transitions;
2907 __le64 pfc_pri3_tx_duration_us;
2908 __le64 pfc_pri3_tx_transitions;
2909 __le64 pfc_pri4_tx_duration_us;
2910 __le64 pfc_pri4_tx_transitions;
2911 __le64 pfc_pri5_tx_duration_us;
2912 __le64 pfc_pri5_tx_transitions;
2913 __le64 pfc_pri6_tx_duration_us;
2914 __le64 pfc_pri6_tx_transitions;
2915 __le64 pfc_pri7_tx_duration_us;
2916 __le64 pfc_pri7_tx_transitions;
2919 /* rx_port_stats_ext (size:2624b/328B) */
2920 struct rx_port_stats_ext {
2921 __le64 link_down_events;
2922 __le64 continuous_pause_events;
2923 __le64 resume_pause_events;
2924 __le64 continuous_roce_pause_events;
2925 __le64 resume_roce_pause_events;
2926 __le64 rx_bytes_cos0;
2927 __le64 rx_bytes_cos1;
2928 __le64 rx_bytes_cos2;
2929 __le64 rx_bytes_cos3;
2930 __le64 rx_bytes_cos4;
2931 __le64 rx_bytes_cos5;
2932 __le64 rx_bytes_cos6;
2933 __le64 rx_bytes_cos7;
2934 __le64 rx_packets_cos0;
2935 __le64 rx_packets_cos1;
2936 __le64 rx_packets_cos2;
2937 __le64 rx_packets_cos3;
2938 __le64 rx_packets_cos4;
2939 __le64 rx_packets_cos5;
2940 __le64 rx_packets_cos6;
2941 __le64 rx_packets_cos7;
2942 __le64 pfc_pri0_rx_duration_us;
2943 __le64 pfc_pri0_rx_transitions;
2944 __le64 pfc_pri1_rx_duration_us;
2945 __le64 pfc_pri1_rx_transitions;
2946 __le64 pfc_pri2_rx_duration_us;
2947 __le64 pfc_pri2_rx_transitions;
2948 __le64 pfc_pri3_rx_duration_us;
2949 __le64 pfc_pri3_rx_transitions;
2950 __le64 pfc_pri4_rx_duration_us;
2951 __le64 pfc_pri4_rx_transitions;
2952 __le64 pfc_pri5_rx_duration_us;
2953 __le64 pfc_pri5_rx_transitions;
2954 __le64 pfc_pri6_rx_duration_us;
2955 __le64 pfc_pri6_rx_transitions;
2956 __le64 pfc_pri7_rx_duration_us;
2957 __le64 pfc_pri7_rx_transitions;
2959 __le64 rx_buffer_passed_threshold;
2960 __le64 rx_pcs_symbol_err;
2961 __le64 rx_corrected_bits;
2964 /* hwrm_port_qstats_ext_input (size:320b/40B) */
2965 struct hwrm_port_qstats_ext_input {
2972 __le16 tx_stat_size;
2973 __le16 rx_stat_size;
2975 __le64 tx_stat_host_addr;
2976 __le64 rx_stat_host_addr;
2979 /* hwrm_port_qstats_ext_output (size:128b/16B) */
2980 struct hwrm_port_qstats_ext_output {
2985 __le16 tx_stat_size;
2986 __le16 rx_stat_size;
2987 __le16 total_active_cos_queues;
2989 #define PORT_QSTATS_EXT_RESP_FLAGS_CLEAR_ROCE_COUNTERS_SUPPORTED 0x1UL
2993 /* hwrm_port_lpbk_qstats_input (size:128b/16B) */
2994 struct hwrm_port_lpbk_qstats_input {
3002 /* hwrm_port_lpbk_qstats_output (size:768b/96B) */
3003 struct hwrm_port_lpbk_qstats_output {
3008 __le64 lpbk_ucast_frames;
3009 __le64 lpbk_mcast_frames;
3010 __le64 lpbk_bcast_frames;
3011 __le64 lpbk_ucast_bytes;
3012 __le64 lpbk_mcast_bytes;
3013 __le64 lpbk_bcast_bytes;
3014 __le64 tx_stat_discard;
3015 __le64 tx_stat_error;
3016 __le64 rx_stat_discard;
3017 __le64 rx_stat_error;
3022 /* hwrm_port_clr_stats_input (size:192b/24B) */
3023 struct hwrm_port_clr_stats_input {
3031 #define PORT_CLR_STATS_REQ_FLAGS_ROCE_COUNTERS 0x1UL
3035 /* hwrm_port_clr_stats_output (size:128b/16B) */
3036 struct hwrm_port_clr_stats_output {
3045 /* hwrm_port_lpbk_clr_stats_input (size:128b/16B) */
3046 struct hwrm_port_lpbk_clr_stats_input {
3054 /* hwrm_port_lpbk_clr_stats_output (size:128b/16B) */
3055 struct hwrm_port_lpbk_clr_stats_output {
3064 /* hwrm_port_ts_query_input (size:192b/24B) */
3065 struct hwrm_port_ts_query_input {
3072 #define PORT_TS_QUERY_REQ_FLAGS_PATH 0x1UL
3073 #define PORT_TS_QUERY_REQ_FLAGS_PATH_TX 0x0UL
3074 #define PORT_TS_QUERY_REQ_FLAGS_PATH_RX 0x1UL
3075 #define PORT_TS_QUERY_REQ_FLAGS_PATH_LAST PORT_TS_QUERY_REQ_FLAGS_PATH_RX
3076 #define PORT_TS_QUERY_REQ_FLAGS_CURRENT_TIME 0x2UL
3081 /* hwrm_port_ts_query_output (size:192b/24B) */
3082 struct hwrm_port_ts_query_output {
3088 __le16 ptp_msg_seqid;
3093 /* hwrm_port_phy_qcaps_input (size:192b/24B) */
3094 struct hwrm_port_phy_qcaps_input {
3104 /* hwrm_port_phy_qcaps_output (size:192b/24B) */
3105 struct hwrm_port_phy_qcaps_output {
3111 #define PORT_PHY_QCAPS_RESP_FLAGS_EEE_SUPPORTED 0x1UL
3112 #define PORT_PHY_QCAPS_RESP_FLAGS_EXTERNAL_LPBK_SUPPORTED 0x2UL
3113 #define PORT_PHY_QCAPS_RESP_FLAGS_RSVD1_MASK 0xfcUL
3114 #define PORT_PHY_QCAPS_RESP_FLAGS_RSVD1_SFT 2
3116 #define PORT_PHY_QCAPS_RESP_PORT_CNT_UNKNOWN 0x0UL
3117 #define PORT_PHY_QCAPS_RESP_PORT_CNT_1 0x1UL
3118 #define PORT_PHY_QCAPS_RESP_PORT_CNT_2 0x2UL
3119 #define PORT_PHY_QCAPS_RESP_PORT_CNT_3 0x3UL
3120 #define PORT_PHY_QCAPS_RESP_PORT_CNT_4 0x4UL
3121 #define PORT_PHY_QCAPS_RESP_PORT_CNT_LAST PORT_PHY_QCAPS_RESP_PORT_CNT_4
3122 __le16 supported_speeds_force_mode;
3123 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100MBHD 0x1UL
3124 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100MB 0x2UL
3125 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_1GBHD 0x4UL
3126 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_1GB 0x8UL
3127 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_2GB 0x10UL
3128 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_2_5GB 0x20UL
3129 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10GB 0x40UL
3130 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_20GB 0x80UL
3131 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_25GB 0x100UL
3132 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_40GB 0x200UL
3133 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_50GB 0x400UL
3134 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100GB 0x800UL
3135 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10MBHD 0x1000UL
3136 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10MB 0x2000UL
3137 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_200GB 0x4000UL
3138 __le16 supported_speeds_auto_mode;
3139 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100MBHD 0x1UL
3140 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100MB 0x2UL
3141 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_1GBHD 0x4UL
3142 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_1GB 0x8UL
3143 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_2GB 0x10UL
3144 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_2_5GB 0x20UL
3145 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10GB 0x40UL
3146 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_20GB 0x80UL
3147 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_25GB 0x100UL
3148 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_40GB 0x200UL
3149 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_50GB 0x400UL
3150 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100GB 0x800UL
3151 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10MBHD 0x1000UL
3152 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10MB 0x2000UL
3153 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_200GB 0x4000UL
3154 __le16 supported_speeds_eee_mode;
3155 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD1 0x1UL
3156 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_100MB 0x2UL
3157 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD2 0x4UL
3158 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_1GB 0x8UL
3159 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD3 0x10UL
3160 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD4 0x20UL
3161 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_10GB 0x40UL
3162 __le32 tx_lpi_timer_low;
3163 #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_LOW_MASK 0xffffffUL
3164 #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_LOW_SFT 0
3165 #define PORT_PHY_QCAPS_RESP_RSVD2_MASK 0xff000000UL
3166 #define PORT_PHY_QCAPS_RESP_RSVD2_SFT 24
3167 __le32 valid_tx_lpi_timer_high;
3168 #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_MASK 0xffffffUL
3169 #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_SFT 0
3170 #define PORT_PHY_QCAPS_RESP_VALID_MASK 0xff000000UL
3171 #define PORT_PHY_QCAPS_RESP_VALID_SFT 24
3174 /* hwrm_port_phy_i2c_read_input (size:320b/40B) */
3175 struct hwrm_port_phy_i2c_read_input {
3183 #define PORT_PHY_I2C_READ_REQ_ENABLES_PAGE_OFFSET 0x1UL
3193 /* hwrm_port_phy_i2c_read_output (size:640b/80B) */
3194 struct hwrm_port_phy_i2c_read_output {
3204 /* hwrm_port_phy_mdio_write_input (size:320b/40B) */
3205 struct hwrm_port_phy_mdio_write_input {
3221 /* hwrm_port_phy_mdio_write_output (size:128b/16B) */
3222 struct hwrm_port_phy_mdio_write_output {
3231 /* hwrm_port_phy_mdio_read_input (size:256b/32B) */
3232 struct hwrm_port_phy_mdio_read_input {
3247 /* hwrm_port_phy_mdio_read_output (size:128b/16B) */
3248 struct hwrm_port_phy_mdio_read_output {
3258 /* hwrm_port_led_cfg_input (size:512b/64B) */
3259 struct hwrm_port_led_cfg_input {
3266 #define PORT_LED_CFG_REQ_ENABLES_LED0_ID 0x1UL
3267 #define PORT_LED_CFG_REQ_ENABLES_LED0_STATE 0x2UL
3268 #define PORT_LED_CFG_REQ_ENABLES_LED0_COLOR 0x4UL
3269 #define PORT_LED_CFG_REQ_ENABLES_LED0_BLINK_ON 0x8UL
3270 #define PORT_LED_CFG_REQ_ENABLES_LED0_BLINK_OFF 0x10UL
3271 #define PORT_LED_CFG_REQ_ENABLES_LED0_GROUP_ID 0x20UL
3272 #define PORT_LED_CFG_REQ_ENABLES_LED1_ID 0x40UL
3273 #define PORT_LED_CFG_REQ_ENABLES_LED1_STATE 0x80UL
3274 #define PORT_LED_CFG_REQ_ENABLES_LED1_COLOR 0x100UL
3275 #define PORT_LED_CFG_REQ_ENABLES_LED1_BLINK_ON 0x200UL
3276 #define PORT_LED_CFG_REQ_ENABLES_LED1_BLINK_OFF 0x400UL
3277 #define PORT_LED_CFG_REQ_ENABLES_LED1_GROUP_ID 0x800UL
3278 #define PORT_LED_CFG_REQ_ENABLES_LED2_ID 0x1000UL
3279 #define PORT_LED_CFG_REQ_ENABLES_LED2_STATE 0x2000UL
3280 #define PORT_LED_CFG_REQ_ENABLES_LED2_COLOR 0x4000UL
3281 #define PORT_LED_CFG_REQ_ENABLES_LED2_BLINK_ON 0x8000UL
3282 #define PORT_LED_CFG_REQ_ENABLES_LED2_BLINK_OFF 0x10000UL
3283 #define PORT_LED_CFG_REQ_ENABLES_LED2_GROUP_ID 0x20000UL
3284 #define PORT_LED_CFG_REQ_ENABLES_LED3_ID 0x40000UL
3285 #define PORT_LED_CFG_REQ_ENABLES_LED3_STATE 0x80000UL
3286 #define PORT_LED_CFG_REQ_ENABLES_LED3_COLOR 0x100000UL
3287 #define PORT_LED_CFG_REQ_ENABLES_LED3_BLINK_ON 0x200000UL
3288 #define PORT_LED_CFG_REQ_ENABLES_LED3_BLINK_OFF 0x400000UL
3289 #define PORT_LED_CFG_REQ_ENABLES_LED3_GROUP_ID 0x800000UL
3295 #define PORT_LED_CFG_REQ_LED0_STATE_DEFAULT 0x0UL
3296 #define PORT_LED_CFG_REQ_LED0_STATE_OFF 0x1UL
3297 #define PORT_LED_CFG_REQ_LED0_STATE_ON 0x2UL
3298 #define PORT_LED_CFG_REQ_LED0_STATE_BLINK 0x3UL
3299 #define PORT_LED_CFG_REQ_LED0_STATE_BLINKALT 0x4UL
3300 #define PORT_LED_CFG_REQ_LED0_STATE_LAST PORT_LED_CFG_REQ_LED0_STATE_BLINKALT
3302 #define PORT_LED_CFG_REQ_LED0_COLOR_DEFAULT 0x0UL
3303 #define PORT_LED_CFG_REQ_LED0_COLOR_AMBER 0x1UL
3304 #define PORT_LED_CFG_REQ_LED0_COLOR_GREEN 0x2UL
3305 #define PORT_LED_CFG_REQ_LED0_COLOR_GREENAMBER 0x3UL
3306 #define PORT_LED_CFG_REQ_LED0_COLOR_LAST PORT_LED_CFG_REQ_LED0_COLOR_GREENAMBER
3308 __le16 led0_blink_on;
3309 __le16 led0_blink_off;
3314 #define PORT_LED_CFG_REQ_LED1_STATE_DEFAULT 0x0UL
3315 #define PORT_LED_CFG_REQ_LED1_STATE_OFF 0x1UL
3316 #define PORT_LED_CFG_REQ_LED1_STATE_ON 0x2UL
3317 #define PORT_LED_CFG_REQ_LED1_STATE_BLINK 0x3UL
3318 #define PORT_LED_CFG_REQ_LED1_STATE_BLINKALT 0x4UL
3319 #define PORT_LED_CFG_REQ_LED1_STATE_LAST PORT_LED_CFG_REQ_LED1_STATE_BLINKALT
3321 #define PORT_LED_CFG_REQ_LED1_COLOR_DEFAULT 0x0UL
3322 #define PORT_LED_CFG_REQ_LED1_COLOR_AMBER 0x1UL
3323 #define PORT_LED_CFG_REQ_LED1_COLOR_GREEN 0x2UL
3324 #define PORT_LED_CFG_REQ_LED1_COLOR_GREENAMBER 0x3UL
3325 #define PORT_LED_CFG_REQ_LED1_COLOR_LAST PORT_LED_CFG_REQ_LED1_COLOR_GREENAMBER
3327 __le16 led1_blink_on;
3328 __le16 led1_blink_off;
3333 #define PORT_LED_CFG_REQ_LED2_STATE_DEFAULT 0x0UL
3334 #define PORT_LED_CFG_REQ_LED2_STATE_OFF 0x1UL
3335 #define PORT_LED_CFG_REQ_LED2_STATE_ON 0x2UL
3336 #define PORT_LED_CFG_REQ_LED2_STATE_BLINK 0x3UL
3337 #define PORT_LED_CFG_REQ_LED2_STATE_BLINKALT 0x4UL
3338 #define PORT_LED_CFG_REQ_LED2_STATE_LAST PORT_LED_CFG_REQ_LED2_STATE_BLINKALT
3340 #define PORT_LED_CFG_REQ_LED2_COLOR_DEFAULT 0x0UL
3341 #define PORT_LED_CFG_REQ_LED2_COLOR_AMBER 0x1UL
3342 #define PORT_LED_CFG_REQ_LED2_COLOR_GREEN 0x2UL
3343 #define PORT_LED_CFG_REQ_LED2_COLOR_GREENAMBER 0x3UL
3344 #define PORT_LED_CFG_REQ_LED2_COLOR_LAST PORT_LED_CFG_REQ_LED2_COLOR_GREENAMBER
3346 __le16 led2_blink_on;
3347 __le16 led2_blink_off;
3352 #define PORT_LED_CFG_REQ_LED3_STATE_DEFAULT 0x0UL
3353 #define PORT_LED_CFG_REQ_LED3_STATE_OFF 0x1UL
3354 #define PORT_LED_CFG_REQ_LED3_STATE_ON 0x2UL
3355 #define PORT_LED_CFG_REQ_LED3_STATE_BLINK 0x3UL
3356 #define PORT_LED_CFG_REQ_LED3_STATE_BLINKALT 0x4UL
3357 #define PORT_LED_CFG_REQ_LED3_STATE_LAST PORT_LED_CFG_REQ_LED3_STATE_BLINKALT
3359 #define PORT_LED_CFG_REQ_LED3_COLOR_DEFAULT 0x0UL
3360 #define PORT_LED_CFG_REQ_LED3_COLOR_AMBER 0x1UL
3361 #define PORT_LED_CFG_REQ_LED3_COLOR_GREEN 0x2UL
3362 #define PORT_LED_CFG_REQ_LED3_COLOR_GREENAMBER 0x3UL
3363 #define PORT_LED_CFG_REQ_LED3_COLOR_LAST PORT_LED_CFG_REQ_LED3_COLOR_GREENAMBER
3365 __le16 led3_blink_on;
3366 __le16 led3_blink_off;
3371 /* hwrm_port_led_cfg_output (size:128b/16B) */
3372 struct hwrm_port_led_cfg_output {
3381 /* hwrm_port_led_qcfg_input (size:192b/24B) */
3382 struct hwrm_port_led_qcfg_input {
3392 /* hwrm_port_led_qcfg_output (size:448b/56B) */
3393 struct hwrm_port_led_qcfg_output {
3401 #define PORT_LED_QCFG_RESP_LED0_TYPE_SPEED 0x0UL
3402 #define PORT_LED_QCFG_RESP_LED0_TYPE_ACTIVITY 0x1UL
3403 #define PORT_LED_QCFG_RESP_LED0_TYPE_INVALID 0xffUL
3404 #define PORT_LED_QCFG_RESP_LED0_TYPE_LAST PORT_LED_QCFG_RESP_LED0_TYPE_INVALID
3406 #define PORT_LED_QCFG_RESP_LED0_STATE_DEFAULT 0x0UL
3407 #define PORT_LED_QCFG_RESP_LED0_STATE_OFF 0x1UL
3408 #define PORT_LED_QCFG_RESP_LED0_STATE_ON 0x2UL
3409 #define PORT_LED_QCFG_RESP_LED0_STATE_BLINK 0x3UL
3410 #define PORT_LED_QCFG_RESP_LED0_STATE_BLINKALT 0x4UL
3411 #define PORT_LED_QCFG_RESP_LED0_STATE_LAST PORT_LED_QCFG_RESP_LED0_STATE_BLINKALT
3413 #define PORT_LED_QCFG_RESP_LED0_COLOR_DEFAULT 0x0UL
3414 #define PORT_LED_QCFG_RESP_LED0_COLOR_AMBER 0x1UL
3415 #define PORT_LED_QCFG_RESP_LED0_COLOR_GREEN 0x2UL
3416 #define PORT_LED_QCFG_RESP_LED0_COLOR_GREENAMBER 0x3UL
3417 #define PORT_LED_QCFG_RESP_LED0_COLOR_LAST PORT_LED_QCFG_RESP_LED0_COLOR_GREENAMBER
3419 __le16 led0_blink_on;
3420 __le16 led0_blink_off;
3424 #define PORT_LED_QCFG_RESP_LED1_TYPE_SPEED 0x0UL
3425 #define PORT_LED_QCFG_RESP_LED1_TYPE_ACTIVITY 0x1UL
3426 #define PORT_LED_QCFG_RESP_LED1_TYPE_INVALID 0xffUL
3427 #define PORT_LED_QCFG_RESP_LED1_TYPE_LAST PORT_LED_QCFG_RESP_LED1_TYPE_INVALID
3429 #define PORT_LED_QCFG_RESP_LED1_STATE_DEFAULT 0x0UL
3430 #define PORT_LED_QCFG_RESP_LED1_STATE_OFF 0x1UL
3431 #define PORT_LED_QCFG_RESP_LED1_STATE_ON 0x2UL
3432 #define PORT_LED_QCFG_RESP_LED1_STATE_BLINK 0x3UL
3433 #define PORT_LED_QCFG_RESP_LED1_STATE_BLINKALT 0x4UL
3434 #define PORT_LED_QCFG_RESP_LED1_STATE_LAST PORT_LED_QCFG_RESP_LED1_STATE_BLINKALT
3436 #define PORT_LED_QCFG_RESP_LED1_COLOR_DEFAULT 0x0UL
3437 #define PORT_LED_QCFG_RESP_LED1_COLOR_AMBER 0x1UL
3438 #define PORT_LED_QCFG_RESP_LED1_COLOR_GREEN 0x2UL
3439 #define PORT_LED_QCFG_RESP_LED1_COLOR_GREENAMBER 0x3UL
3440 #define PORT_LED_QCFG_RESP_LED1_COLOR_LAST PORT_LED_QCFG_RESP_LED1_COLOR_GREENAMBER
3442 __le16 led1_blink_on;
3443 __le16 led1_blink_off;
3447 #define PORT_LED_QCFG_RESP_LED2_TYPE_SPEED 0x0UL
3448 #define PORT_LED_QCFG_RESP_LED2_TYPE_ACTIVITY 0x1UL
3449 #define PORT_LED_QCFG_RESP_LED2_TYPE_INVALID 0xffUL
3450 #define PORT_LED_QCFG_RESP_LED2_TYPE_LAST PORT_LED_QCFG_RESP_LED2_TYPE_INVALID
3452 #define PORT_LED_QCFG_RESP_LED2_STATE_DEFAULT 0x0UL
3453 #define PORT_LED_QCFG_RESP_LED2_STATE_OFF 0x1UL
3454 #define PORT_LED_QCFG_RESP_LED2_STATE_ON 0x2UL
3455 #define PORT_LED_QCFG_RESP_LED2_STATE_BLINK 0x3UL
3456 #define PORT_LED_QCFG_RESP_LED2_STATE_BLINKALT 0x4UL
3457 #define PORT_LED_QCFG_RESP_LED2_STATE_LAST PORT_LED_QCFG_RESP_LED2_STATE_BLINKALT
3459 #define PORT_LED_QCFG_RESP_LED2_COLOR_DEFAULT 0x0UL
3460 #define PORT_LED_QCFG_RESP_LED2_COLOR_AMBER 0x1UL
3461 #define PORT_LED_QCFG_RESP_LED2_COLOR_GREEN 0x2UL
3462 #define PORT_LED_QCFG_RESP_LED2_COLOR_GREENAMBER 0x3UL
3463 #define PORT_LED_QCFG_RESP_LED2_COLOR_LAST PORT_LED_QCFG_RESP_LED2_COLOR_GREENAMBER
3465 __le16 led2_blink_on;
3466 __le16 led2_blink_off;
3470 #define PORT_LED_QCFG_RESP_LED3_TYPE_SPEED 0x0UL
3471 #define PORT_LED_QCFG_RESP_LED3_TYPE_ACTIVITY 0x1UL
3472 #define PORT_LED_QCFG_RESP_LED3_TYPE_INVALID 0xffUL
3473 #define PORT_LED_QCFG_RESP_LED3_TYPE_LAST PORT_LED_QCFG_RESP_LED3_TYPE_INVALID
3475 #define PORT_LED_QCFG_RESP_LED3_STATE_DEFAULT 0x0UL
3476 #define PORT_LED_QCFG_RESP_LED3_STATE_OFF 0x1UL
3477 #define PORT_LED_QCFG_RESP_LED3_STATE_ON 0x2UL
3478 #define PORT_LED_QCFG_RESP_LED3_STATE_BLINK 0x3UL
3479 #define PORT_LED_QCFG_RESP_LED3_STATE_BLINKALT 0x4UL
3480 #define PORT_LED_QCFG_RESP_LED3_STATE_LAST PORT_LED_QCFG_RESP_LED3_STATE_BLINKALT
3482 #define PORT_LED_QCFG_RESP_LED3_COLOR_DEFAULT 0x0UL
3483 #define PORT_LED_QCFG_RESP_LED3_COLOR_AMBER 0x1UL
3484 #define PORT_LED_QCFG_RESP_LED3_COLOR_GREEN 0x2UL
3485 #define PORT_LED_QCFG_RESP_LED3_COLOR_GREENAMBER 0x3UL
3486 #define PORT_LED_QCFG_RESP_LED3_COLOR_LAST PORT_LED_QCFG_RESP_LED3_COLOR_GREENAMBER
3488 __le16 led3_blink_on;
3489 __le16 led3_blink_off;
3495 /* hwrm_port_led_qcaps_input (size:192b/24B) */
3496 struct hwrm_port_led_qcaps_input {
3506 /* hwrm_port_led_qcaps_output (size:384b/48B) */
3507 struct hwrm_port_led_qcaps_output {
3516 #define PORT_LED_QCAPS_RESP_LED0_TYPE_SPEED 0x0UL
3517 #define PORT_LED_QCAPS_RESP_LED0_TYPE_ACTIVITY 0x1UL
3518 #define PORT_LED_QCAPS_RESP_LED0_TYPE_INVALID 0xffUL
3519 #define PORT_LED_QCAPS_RESP_LED0_TYPE_LAST PORT_LED_QCAPS_RESP_LED0_TYPE_INVALID
3522 __le16 led0_state_caps;
3523 #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_ENABLED 0x1UL
3524 #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_OFF_SUPPORTED 0x2UL
3525 #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_ON_SUPPORTED 0x4UL
3526 #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_BLINK_SUPPORTED 0x8UL
3527 #define PORT_LED_QCAPS_RESP_LED0_STATE_CAPS_BLINK_ALT_SUPPORTED 0x10UL
3528 __le16 led0_color_caps;
3529 #define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_RSVD 0x1UL
3530 #define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_AMBER_SUPPORTED 0x2UL
3531 #define PORT_LED_QCAPS_RESP_LED0_COLOR_CAPS_GREEN_SUPPORTED 0x4UL
3534 #define PORT_LED_QCAPS_RESP_LED1_TYPE_SPEED 0x0UL
3535 #define PORT_LED_QCAPS_RESP_LED1_TYPE_ACTIVITY 0x1UL
3536 #define PORT_LED_QCAPS_RESP_LED1_TYPE_INVALID 0xffUL
3537 #define PORT_LED_QCAPS_RESP_LED1_TYPE_LAST PORT_LED_QCAPS_RESP_LED1_TYPE_INVALID
3540 __le16 led1_state_caps;
3541 #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_ENABLED 0x1UL
3542 #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_OFF_SUPPORTED 0x2UL
3543 #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_ON_SUPPORTED 0x4UL
3544 #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_BLINK_SUPPORTED 0x8UL
3545 #define PORT_LED_QCAPS_RESP_LED1_STATE_CAPS_BLINK_ALT_SUPPORTED 0x10UL
3546 __le16 led1_color_caps;
3547 #define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_RSVD 0x1UL
3548 #define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_AMBER_SUPPORTED 0x2UL
3549 #define PORT_LED_QCAPS_RESP_LED1_COLOR_CAPS_GREEN_SUPPORTED 0x4UL
3552 #define PORT_LED_QCAPS_RESP_LED2_TYPE_SPEED 0x0UL
3553 #define PORT_LED_QCAPS_RESP_LED2_TYPE_ACTIVITY 0x1UL
3554 #define PORT_LED_QCAPS_RESP_LED2_TYPE_INVALID 0xffUL
3555 #define PORT_LED_QCAPS_RESP_LED2_TYPE_LAST PORT_LED_QCAPS_RESP_LED2_TYPE_INVALID
3558 __le16 led2_state_caps;
3559 #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_ENABLED 0x1UL
3560 #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_OFF_SUPPORTED 0x2UL
3561 #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_ON_SUPPORTED 0x4UL
3562 #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_BLINK_SUPPORTED 0x8UL
3563 #define PORT_LED_QCAPS_RESP_LED2_STATE_CAPS_BLINK_ALT_SUPPORTED 0x10UL
3564 __le16 led2_color_caps;
3565 #define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_RSVD 0x1UL
3566 #define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_AMBER_SUPPORTED 0x2UL
3567 #define PORT_LED_QCAPS_RESP_LED2_COLOR_CAPS_GREEN_SUPPORTED 0x4UL
3570 #define PORT_LED_QCAPS_RESP_LED3_TYPE_SPEED 0x0UL
3571 #define PORT_LED_QCAPS_RESP_LED3_TYPE_ACTIVITY 0x1UL
3572 #define PORT_LED_QCAPS_RESP_LED3_TYPE_INVALID 0xffUL
3573 #define PORT_LED_QCAPS_RESP_LED3_TYPE_LAST PORT_LED_QCAPS_RESP_LED3_TYPE_INVALID
3576 __le16 led3_state_caps;
3577 #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_ENABLED 0x1UL
3578 #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_OFF_SUPPORTED 0x2UL
3579 #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_ON_SUPPORTED 0x4UL
3580 #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_BLINK_SUPPORTED 0x8UL
3581 #define PORT_LED_QCAPS_RESP_LED3_STATE_CAPS_BLINK_ALT_SUPPORTED 0x10UL
3582 __le16 led3_color_caps;
3583 #define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_RSVD 0x1UL
3584 #define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_AMBER_SUPPORTED 0x2UL
3585 #define PORT_LED_QCAPS_RESP_LED3_COLOR_CAPS_GREEN_SUPPORTED 0x4UL
3590 /* hwrm_queue_qportcfg_input (size:192b/24B) */
3591 struct hwrm_queue_qportcfg_input {
3598 #define QUEUE_QPORTCFG_REQ_FLAGS_PATH 0x1UL
3599 #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_TX 0x0UL
3600 #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_RX 0x1UL
3601 #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_LAST QUEUE_QPORTCFG_REQ_FLAGS_PATH_RX
3604 #define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_DISABLED 0x0UL
3605 #define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_ENABLED 0x1UL
3606 #define QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_LAST QUEUE_QPORTCFG_REQ_DRV_QMAP_CAP_ENABLED
3610 /* hwrm_queue_qportcfg_output (size:256b/32B) */
3611 struct hwrm_queue_qportcfg_output {
3616 u8 max_configurable_queues;
3617 u8 max_configurable_lossless_queues;
3618 u8 queue_cfg_allowed;
3620 #define QUEUE_QPORTCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG 0x1UL
3621 u8 queue_pfcenable_cfg_allowed;
3622 u8 queue_pri2cos_cfg_allowed;
3623 u8 queue_cos2bw_cfg_allowed;
3625 u8 queue_id0_service_profile;
3626 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY 0x0UL
3627 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS 0x1UL
3628 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL
3629 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
3630 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL
3631 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_UNKNOWN 0xffUL
3632 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_UNKNOWN
3634 u8 queue_id1_service_profile;
3635 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSY 0x0UL
3636 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS 0x1UL
3637 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL
3638 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
3639 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL
3640 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_UNKNOWN 0xffUL
3641 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_UNKNOWN
3643 u8 queue_id2_service_profile;
3644 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSY 0x0UL
3645 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS 0x1UL
3646 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL
3647 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
3648 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL
3649 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_UNKNOWN 0xffUL
3650 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_UNKNOWN
3652 u8 queue_id3_service_profile;
3653 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSY 0x0UL
3654 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS 0x1UL
3655 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL
3656 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
3657 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL
3658 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_UNKNOWN 0xffUL
3659 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_UNKNOWN
3661 u8 queue_id4_service_profile;
3662 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSY 0x0UL
3663 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS 0x1UL
3664 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL
3665 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
3666 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL
3667 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_UNKNOWN 0xffUL
3668 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_UNKNOWN
3670 u8 queue_id5_service_profile;
3671 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSY 0x0UL
3672 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS 0x1UL
3673 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL
3674 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
3675 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL
3676 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_UNKNOWN 0xffUL
3677 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_UNKNOWN
3679 u8 queue_id6_service_profile;
3680 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSY 0x0UL
3681 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS 0x1UL
3682 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL
3683 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
3684 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL
3685 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_UNKNOWN 0xffUL
3686 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_UNKNOWN
3688 u8 queue_id7_service_profile;
3689 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSY 0x0UL
3690 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS 0x1UL
3691 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS_ROCE 0x1UL
3692 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSY_ROCE_CNP 0x2UL
3693 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS_NIC 0x3UL
3694 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_UNKNOWN 0xffUL
3695 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LAST QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_UNKNOWN
3699 /* hwrm_queue_cfg_input (size:320b/40B) */
3700 struct hwrm_queue_cfg_input {
3707 #define QUEUE_CFG_REQ_FLAGS_PATH_MASK 0x3UL
3708 #define QUEUE_CFG_REQ_FLAGS_PATH_SFT 0
3709 #define QUEUE_CFG_REQ_FLAGS_PATH_TX 0x0UL
3710 #define QUEUE_CFG_REQ_FLAGS_PATH_RX 0x1UL
3711 #define QUEUE_CFG_REQ_FLAGS_PATH_BIDIR 0x2UL
3712 #define QUEUE_CFG_REQ_FLAGS_PATH_LAST QUEUE_CFG_REQ_FLAGS_PATH_BIDIR
3714 #define QUEUE_CFG_REQ_ENABLES_DFLT_LEN 0x1UL
3715 #define QUEUE_CFG_REQ_ENABLES_SERVICE_PROFILE 0x2UL
3719 #define QUEUE_CFG_REQ_SERVICE_PROFILE_LOSSY 0x0UL
3720 #define QUEUE_CFG_REQ_SERVICE_PROFILE_LOSSLESS 0x1UL
3721 #define QUEUE_CFG_REQ_SERVICE_PROFILE_UNKNOWN 0xffUL
3722 #define QUEUE_CFG_REQ_SERVICE_PROFILE_LAST QUEUE_CFG_REQ_SERVICE_PROFILE_UNKNOWN
3726 /* hwrm_queue_cfg_output (size:128b/16B) */
3727 struct hwrm_queue_cfg_output {
3736 /* hwrm_queue_pfcenable_qcfg_input (size:192b/24B) */
3737 struct hwrm_queue_pfcenable_qcfg_input {
3747 /* hwrm_queue_pfcenable_qcfg_output (size:128b/16B) */
3748 struct hwrm_queue_pfcenable_qcfg_output {
3754 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI0_PFC_ENABLED 0x1UL
3755 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI1_PFC_ENABLED 0x2UL
3756 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI2_PFC_ENABLED 0x4UL
3757 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI3_PFC_ENABLED 0x8UL
3758 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI4_PFC_ENABLED 0x10UL
3759 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI5_PFC_ENABLED 0x20UL
3760 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI6_PFC_ENABLED 0x40UL
3761 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI7_PFC_ENABLED 0x80UL
3766 /* hwrm_queue_pfcenable_cfg_input (size:192b/24B) */
3767 struct hwrm_queue_pfcenable_cfg_input {
3774 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI0_PFC_ENABLED 0x1UL
3775 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI1_PFC_ENABLED 0x2UL
3776 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI2_PFC_ENABLED 0x4UL
3777 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI3_PFC_ENABLED 0x8UL
3778 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI4_PFC_ENABLED 0x10UL
3779 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI5_PFC_ENABLED 0x20UL
3780 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI6_PFC_ENABLED 0x40UL
3781 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI7_PFC_ENABLED 0x80UL
3786 /* hwrm_queue_pfcenable_cfg_output (size:128b/16B) */
3787 struct hwrm_queue_pfcenable_cfg_output {
3796 /* hwrm_queue_pri2cos_qcfg_input (size:192b/24B) */
3797 struct hwrm_queue_pri2cos_qcfg_input {
3804 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH 0x1UL
3805 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_TX 0x0UL
3806 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_RX 0x1UL
3807 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_LAST QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_RX
3808 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_IVLAN 0x2UL
3813 /* hwrm_queue_pri2cos_qcfg_output (size:192b/24B) */
3814 struct hwrm_queue_pri2cos_qcfg_output {
3819 u8 pri0_cos_queue_id;
3820 u8 pri1_cos_queue_id;
3821 u8 pri2_cos_queue_id;
3822 u8 pri3_cos_queue_id;
3823 u8 pri4_cos_queue_id;
3824 u8 pri5_cos_queue_id;
3825 u8 pri6_cos_queue_id;
3826 u8 pri7_cos_queue_id;
3828 #define QUEUE_PRI2COS_QCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG 0x1UL
3833 /* hwrm_queue_pri2cos_cfg_input (size:320b/40B) */
3834 struct hwrm_queue_pri2cos_cfg_input {
3841 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_MASK 0x3UL
3842 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_SFT 0
3843 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_TX 0x0UL
3844 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_RX 0x1UL
3845 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_BIDIR 0x2UL
3846 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_LAST QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_BIDIR
3847 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_IVLAN 0x4UL
3849 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI0_COS_QUEUE_ID 0x1UL
3850 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI1_COS_QUEUE_ID 0x2UL
3851 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI2_COS_QUEUE_ID 0x4UL
3852 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI3_COS_QUEUE_ID 0x8UL
3853 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI4_COS_QUEUE_ID 0x10UL
3854 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI5_COS_QUEUE_ID 0x20UL
3855 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI6_COS_QUEUE_ID 0x40UL
3856 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI7_COS_QUEUE_ID 0x80UL
3858 u8 pri0_cos_queue_id;
3859 u8 pri1_cos_queue_id;
3860 u8 pri2_cos_queue_id;
3861 u8 pri3_cos_queue_id;
3862 u8 pri4_cos_queue_id;
3863 u8 pri5_cos_queue_id;
3864 u8 pri6_cos_queue_id;
3865 u8 pri7_cos_queue_id;
3869 /* hwrm_queue_pri2cos_cfg_output (size:128b/16B) */
3870 struct hwrm_queue_pri2cos_cfg_output {
3879 /* hwrm_queue_cos2bw_qcfg_input (size:192b/24B) */
3880 struct hwrm_queue_cos2bw_qcfg_input {
3890 /* hwrm_queue_cos2bw_qcfg_output (size:896b/112B) */
3891 struct hwrm_queue_cos2bw_qcfg_output {
3899 __le32 queue_id0_min_bw;
3900 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_MASK 0xfffffffUL
3901 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_SFT 0
3902 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE 0x10000000UL
3903 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BITS (0x0UL << 28)
3904 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BYTES (0x1UL << 28)
3905 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_SCALE_BYTES
3906 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
3907 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_SFT 29
3908 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
3909 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
3910 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
3911 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
3912 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
3913 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
3914 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID
3915 __le32 queue_id0_max_bw;
3916 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_MASK 0xfffffffUL
3917 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_SFT 0
3918 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE 0x10000000UL
3919 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BITS (0x0UL << 28)
3920 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BYTES (0x1UL << 28)
3921 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_SCALE_BYTES
3922 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
3923 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_SFT 29
3924 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
3925 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
3926 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
3927 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
3928 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
3929 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
3930 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID
3931 u8 queue_id0_tsa_assign;
3932 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_SP 0x0UL
3933 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_ETS 0x1UL
3934 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3935 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_RESERVED_LAST 0xffUL
3936 u8 queue_id0_pri_lvl;
3937 u8 queue_id0_bw_weight;
3939 __le32 queue_id1_min_bw;
3940 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_MASK 0xfffffffUL
3941 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_SFT 0
3942 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE 0x10000000UL
3943 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE_BITS (0x0UL << 28)
3944 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE_BYTES (0x1UL << 28)
3945 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_SCALE_BYTES
3946 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
3947 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_SFT 29
3948 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
3949 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
3950 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
3951 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
3952 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
3953 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
3954 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_INVALID
3955 __le32 queue_id1_max_bw;
3956 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_MASK 0xfffffffUL
3957 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_SFT 0
3958 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE 0x10000000UL
3959 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE_BITS (0x0UL << 28)
3960 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE_BYTES (0x1UL << 28)
3961 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_SCALE_BYTES
3962 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
3963 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_SFT 29
3964 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
3965 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
3966 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
3967 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
3968 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
3969 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
3970 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_INVALID
3971 u8 queue_id1_tsa_assign;
3972 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_SP 0x0UL
3973 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_ETS 0x1UL
3974 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_RESERVED_FIRST 0x2UL
3975 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_RESERVED_LAST 0xffUL
3976 u8 queue_id1_pri_lvl;
3977 u8 queue_id1_bw_weight;
3979 __le32 queue_id2_min_bw;
3980 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_MASK 0xfffffffUL
3981 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_SFT 0
3982 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE 0x10000000UL
3983 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE_BITS (0x0UL << 28)
3984 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE_BYTES (0x1UL << 28)
3985 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_SCALE_BYTES
3986 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
3987 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_SFT 29
3988 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
3989 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
3990 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
3991 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
3992 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
3993 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
3994 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_INVALID
3995 __le32 queue_id2_max_bw;
3996 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_MASK 0xfffffffUL
3997 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_SFT 0
3998 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE 0x10000000UL
3999 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE_BITS (0x0UL << 28)
4000 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE_BYTES (0x1UL << 28)
4001 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_SCALE_BYTES
4002 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4003 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_SFT 29
4004 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4005 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4006 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4007 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4008 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4009 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4010 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_INVALID
4011 u8 queue_id2_tsa_assign;
4012 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_SP 0x0UL
4013 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_ETS 0x1UL
4014 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4015 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_RESERVED_LAST 0xffUL
4016 u8 queue_id2_pri_lvl;
4017 u8 queue_id2_bw_weight;
4019 __le32 queue_id3_min_bw;
4020 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_MASK 0xfffffffUL
4021 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_SFT 0
4022 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE 0x10000000UL
4023 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE_BITS (0x0UL << 28)
4024 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE_BYTES (0x1UL << 28)
4025 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_SCALE_BYTES
4026 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4027 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_SFT 29
4028 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4029 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4030 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4031 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4032 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4033 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4034 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_INVALID
4035 __le32 queue_id3_max_bw;
4036 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_MASK 0xfffffffUL
4037 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_SFT 0
4038 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE 0x10000000UL
4039 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE_BITS (0x0UL << 28)
4040 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE_BYTES (0x1UL << 28)
4041 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_SCALE_BYTES
4042 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4043 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_SFT 29
4044 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4045 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4046 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4047 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4048 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4049 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4050 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_INVALID
4051 u8 queue_id3_tsa_assign;
4052 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_SP 0x0UL
4053 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_ETS 0x1UL
4054 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4055 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_RESERVED_LAST 0xffUL
4056 u8 queue_id3_pri_lvl;
4057 u8 queue_id3_bw_weight;
4059 __le32 queue_id4_min_bw;
4060 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_MASK 0xfffffffUL
4061 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_SFT 0
4062 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE 0x10000000UL
4063 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE_BITS (0x0UL << 28)
4064 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE_BYTES (0x1UL << 28)
4065 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_SCALE_BYTES
4066 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4067 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_SFT 29
4068 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4069 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4070 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4071 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4072 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4073 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4074 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_INVALID
4075 __le32 queue_id4_max_bw;
4076 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_MASK 0xfffffffUL
4077 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_SFT 0
4078 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE 0x10000000UL
4079 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE_BITS (0x0UL << 28)
4080 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE_BYTES (0x1UL << 28)
4081 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_SCALE_BYTES
4082 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4083 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_SFT 29
4084 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4085 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4086 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4087 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4088 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4089 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4090 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_INVALID
4091 u8 queue_id4_tsa_assign;
4092 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_SP 0x0UL
4093 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_ETS 0x1UL
4094 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4095 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_RESERVED_LAST 0xffUL
4096 u8 queue_id4_pri_lvl;
4097 u8 queue_id4_bw_weight;
4099 __le32 queue_id5_min_bw;
4100 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_MASK 0xfffffffUL
4101 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_SFT 0
4102 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE 0x10000000UL
4103 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE_BITS (0x0UL << 28)
4104 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE_BYTES (0x1UL << 28)
4105 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_SCALE_BYTES
4106 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4107 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_SFT 29
4108 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4109 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4110 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4111 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4112 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4113 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4114 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_INVALID
4115 __le32 queue_id5_max_bw;
4116 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_MASK 0xfffffffUL
4117 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_SFT 0
4118 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE 0x10000000UL
4119 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE_BITS (0x0UL << 28)
4120 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE_BYTES (0x1UL << 28)
4121 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_SCALE_BYTES
4122 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4123 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_SFT 29
4124 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4125 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4126 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4127 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4128 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4129 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4130 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_INVALID
4131 u8 queue_id5_tsa_assign;
4132 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_SP 0x0UL
4133 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_ETS 0x1UL
4134 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4135 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_RESERVED_LAST 0xffUL
4136 u8 queue_id5_pri_lvl;
4137 u8 queue_id5_bw_weight;
4139 __le32 queue_id6_min_bw;
4140 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_MASK 0xfffffffUL
4141 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_SFT 0
4142 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE 0x10000000UL
4143 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE_BITS (0x0UL << 28)
4144 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE_BYTES (0x1UL << 28)
4145 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_SCALE_BYTES
4146 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4147 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_SFT 29
4148 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4149 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4150 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4151 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4152 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4153 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4154 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_INVALID
4155 __le32 queue_id6_max_bw;
4156 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_MASK 0xfffffffUL
4157 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_SFT 0
4158 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE 0x10000000UL
4159 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE_BITS (0x0UL << 28)
4160 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE_BYTES (0x1UL << 28)
4161 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_SCALE_BYTES
4162 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4163 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_SFT 29
4164 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4165 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4166 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4167 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4168 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4169 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4170 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_INVALID
4171 u8 queue_id6_tsa_assign;
4172 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_SP 0x0UL
4173 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_ETS 0x1UL
4174 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4175 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_RESERVED_LAST 0xffUL
4176 u8 queue_id6_pri_lvl;
4177 u8 queue_id6_bw_weight;
4179 __le32 queue_id7_min_bw;
4180 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_MASK 0xfffffffUL
4181 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_SFT 0
4182 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE 0x10000000UL
4183 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE_BITS (0x0UL << 28)
4184 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE_BYTES (0x1UL << 28)
4185 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_SCALE_BYTES
4186 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4187 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_SFT 29
4188 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4189 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4190 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4191 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4192 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4193 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4194 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_INVALID
4195 __le32 queue_id7_max_bw;
4196 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_MASK 0xfffffffUL
4197 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_SFT 0
4198 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE 0x10000000UL
4199 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE_BITS (0x0UL << 28)
4200 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE_BYTES (0x1UL << 28)
4201 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_SCALE_BYTES
4202 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4203 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_SFT 29
4204 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4205 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4206 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4207 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4208 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4209 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4210 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_INVALID
4211 u8 queue_id7_tsa_assign;
4212 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_SP 0x0UL
4213 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_ETS 0x1UL
4214 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4215 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_RESERVED_LAST 0xffUL
4216 u8 queue_id7_pri_lvl;
4217 u8 queue_id7_bw_weight;
4222 /* hwrm_queue_cos2bw_cfg_input (size:1024b/128B) */
4223 struct hwrm_queue_cos2bw_cfg_input {
4231 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID0_VALID 0x1UL
4232 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID1_VALID 0x2UL
4233 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID2_VALID 0x4UL
4234 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID3_VALID 0x8UL
4235 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID4_VALID 0x10UL
4236 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID5_VALID 0x20UL
4237 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID6_VALID 0x40UL
4238 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID7_VALID 0x80UL
4242 __le32 queue_id0_min_bw;
4243 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_MASK 0xfffffffUL
4244 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_SFT 0
4245 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE 0x10000000UL
4246 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BITS (0x0UL << 28)
4247 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BYTES (0x1UL << 28)
4248 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_SCALE_BYTES
4249 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4250 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_SFT 29
4251 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4252 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4253 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4254 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4255 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4256 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4257 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID
4258 __le32 queue_id0_max_bw;
4259 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_MASK 0xfffffffUL
4260 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_SFT 0
4261 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE 0x10000000UL
4262 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BITS (0x0UL << 28)
4263 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BYTES (0x1UL << 28)
4264 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_SCALE_BYTES
4265 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4266 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_SFT 29
4267 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4268 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4269 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4270 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4271 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4272 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4273 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID
4274 u8 queue_id0_tsa_assign;
4275 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_SP 0x0UL
4276 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_ETS 0x1UL
4277 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4278 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_RESERVED_LAST 0xffUL
4279 u8 queue_id0_pri_lvl;
4280 u8 queue_id0_bw_weight;
4282 __le32 queue_id1_min_bw;
4283 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_MASK 0xfffffffUL
4284 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_SFT 0
4285 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE 0x10000000UL
4286 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE_BITS (0x0UL << 28)
4287 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE_BYTES (0x1UL << 28)
4288 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_SCALE_BYTES
4289 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4290 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_SFT 29
4291 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4292 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4293 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4294 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4295 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4296 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4297 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_INVALID
4298 __le32 queue_id1_max_bw;
4299 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_MASK 0xfffffffUL
4300 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_SFT 0
4301 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE 0x10000000UL
4302 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE_BITS (0x0UL << 28)
4303 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE_BYTES (0x1UL << 28)
4304 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_SCALE_BYTES
4305 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4306 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_SFT 29
4307 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4308 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4309 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4310 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4311 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4312 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4313 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_INVALID
4314 u8 queue_id1_tsa_assign;
4315 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_SP 0x0UL
4316 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_ETS 0x1UL
4317 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4318 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_RESERVED_LAST 0xffUL
4319 u8 queue_id1_pri_lvl;
4320 u8 queue_id1_bw_weight;
4322 __le32 queue_id2_min_bw;
4323 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_MASK 0xfffffffUL
4324 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_SFT 0
4325 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE 0x10000000UL
4326 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE_BITS (0x0UL << 28)
4327 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE_BYTES (0x1UL << 28)
4328 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_SCALE_BYTES
4329 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4330 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_SFT 29
4331 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4332 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4333 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4334 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4335 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4336 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4337 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_INVALID
4338 __le32 queue_id2_max_bw;
4339 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_MASK 0xfffffffUL
4340 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_SFT 0
4341 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE 0x10000000UL
4342 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE_BITS (0x0UL << 28)
4343 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE_BYTES (0x1UL << 28)
4344 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_SCALE_BYTES
4345 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4346 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_SFT 29
4347 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4348 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4349 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4350 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4351 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4352 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4353 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_INVALID
4354 u8 queue_id2_tsa_assign;
4355 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_SP 0x0UL
4356 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_ETS 0x1UL
4357 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4358 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_RESERVED_LAST 0xffUL
4359 u8 queue_id2_pri_lvl;
4360 u8 queue_id2_bw_weight;
4362 __le32 queue_id3_min_bw;
4363 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_MASK 0xfffffffUL
4364 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_SFT 0
4365 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE 0x10000000UL
4366 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE_BITS (0x0UL << 28)
4367 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE_BYTES (0x1UL << 28)
4368 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_SCALE_BYTES
4369 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4370 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_SFT 29
4371 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4372 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4373 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4374 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4375 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4376 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4377 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_INVALID
4378 __le32 queue_id3_max_bw;
4379 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_MASK 0xfffffffUL
4380 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_SFT 0
4381 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE 0x10000000UL
4382 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE_BITS (0x0UL << 28)
4383 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE_BYTES (0x1UL << 28)
4384 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_SCALE_BYTES
4385 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4386 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_SFT 29
4387 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4388 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4389 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4390 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4391 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4392 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4393 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_INVALID
4394 u8 queue_id3_tsa_assign;
4395 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_SP 0x0UL
4396 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_ETS 0x1UL
4397 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4398 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_RESERVED_LAST 0xffUL
4399 u8 queue_id3_pri_lvl;
4400 u8 queue_id3_bw_weight;
4402 __le32 queue_id4_min_bw;
4403 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_MASK 0xfffffffUL
4404 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_SFT 0
4405 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE 0x10000000UL
4406 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE_BITS (0x0UL << 28)
4407 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE_BYTES (0x1UL << 28)
4408 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_SCALE_BYTES
4409 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4410 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_SFT 29
4411 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4412 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4413 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4414 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4415 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4416 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4417 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_INVALID
4418 __le32 queue_id4_max_bw;
4419 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_MASK 0xfffffffUL
4420 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_SFT 0
4421 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE 0x10000000UL
4422 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE_BITS (0x0UL << 28)
4423 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE_BYTES (0x1UL << 28)
4424 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_SCALE_BYTES
4425 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4426 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_SFT 29
4427 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4428 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4429 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4430 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4431 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4432 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4433 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_INVALID
4434 u8 queue_id4_tsa_assign;
4435 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_SP 0x0UL
4436 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_ETS 0x1UL
4437 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4438 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_RESERVED_LAST 0xffUL
4439 u8 queue_id4_pri_lvl;
4440 u8 queue_id4_bw_weight;
4442 __le32 queue_id5_min_bw;
4443 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_MASK 0xfffffffUL
4444 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_SFT 0
4445 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE 0x10000000UL
4446 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE_BITS (0x0UL << 28)
4447 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE_BYTES (0x1UL << 28)
4448 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_SCALE_BYTES
4449 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4450 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_SFT 29
4451 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4452 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4453 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4454 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4455 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4456 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4457 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_INVALID
4458 __le32 queue_id5_max_bw;
4459 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_MASK 0xfffffffUL
4460 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_SFT 0
4461 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE 0x10000000UL
4462 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE_BITS (0x0UL << 28)
4463 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE_BYTES (0x1UL << 28)
4464 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_SCALE_BYTES
4465 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4466 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_SFT 29
4467 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4468 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4469 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4470 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4471 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4472 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4473 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_INVALID
4474 u8 queue_id5_tsa_assign;
4475 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_SP 0x0UL
4476 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_ETS 0x1UL
4477 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4478 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_RESERVED_LAST 0xffUL
4479 u8 queue_id5_pri_lvl;
4480 u8 queue_id5_bw_weight;
4482 __le32 queue_id6_min_bw;
4483 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_MASK 0xfffffffUL
4484 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_SFT 0
4485 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE 0x10000000UL
4486 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE_BITS (0x0UL << 28)
4487 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE_BYTES (0x1UL << 28)
4488 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_SCALE_BYTES
4489 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4490 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_SFT 29
4491 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4492 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4493 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4494 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4495 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4496 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4497 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_INVALID
4498 __le32 queue_id6_max_bw;
4499 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_MASK 0xfffffffUL
4500 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_SFT 0
4501 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE 0x10000000UL
4502 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE_BITS (0x0UL << 28)
4503 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE_BYTES (0x1UL << 28)
4504 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_SCALE_BYTES
4505 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4506 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_SFT 29
4507 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4508 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4509 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4510 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4511 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4512 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4513 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_INVALID
4514 u8 queue_id6_tsa_assign;
4515 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_SP 0x0UL
4516 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_ETS 0x1UL
4517 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4518 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_RESERVED_LAST 0xffUL
4519 u8 queue_id6_pri_lvl;
4520 u8 queue_id6_bw_weight;
4522 __le32 queue_id7_min_bw;
4523 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_MASK 0xfffffffUL
4524 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_SFT 0
4525 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE 0x10000000UL
4526 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE_BITS (0x0UL << 28)
4527 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE_BYTES (0x1UL << 28)
4528 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_SCALE_BYTES
4529 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4530 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_SFT 29
4531 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4532 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4533 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4534 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4535 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4536 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4537 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_INVALID
4538 __le32 queue_id7_max_bw;
4539 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_MASK 0xfffffffUL
4540 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_SFT 0
4541 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE 0x10000000UL
4542 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE_BITS (0x0UL << 28)
4543 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE_BYTES (0x1UL << 28)
4544 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_SCALE_BYTES
4545 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
4546 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_SFT 29
4547 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
4548 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
4549 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
4550 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
4551 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
4552 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
4553 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_LAST QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_INVALID
4554 u8 queue_id7_tsa_assign;
4555 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_SP 0x0UL
4556 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_ETS 0x1UL
4557 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_RESERVED_FIRST 0x2UL
4558 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_RESERVED_LAST 0xffUL
4559 u8 queue_id7_pri_lvl;
4560 u8 queue_id7_bw_weight;
4564 /* hwrm_queue_cos2bw_cfg_output (size:128b/16B) */
4565 struct hwrm_queue_cos2bw_cfg_output {
4574 /* hwrm_queue_dscp_qcaps_input (size:192b/24B) */
4575 struct hwrm_queue_dscp_qcaps_input {
4585 /* hwrm_queue_dscp_qcaps_output (size:128b/16B) */
4586 struct hwrm_queue_dscp_qcaps_output {
4598 /* hwrm_queue_dscp2pri_qcfg_input (size:256b/32B) */
4599 struct hwrm_queue_dscp2pri_qcfg_input {
4605 __le64 dest_data_addr;
4608 __le16 dest_data_buffer_size;
4612 /* hwrm_queue_dscp2pri_qcfg_output (size:128b/16B) */
4613 struct hwrm_queue_dscp2pri_qcfg_output {
4624 /* hwrm_queue_dscp2pri_cfg_input (size:320b/40B) */
4625 struct hwrm_queue_dscp2pri_cfg_input {
4631 __le64 src_data_addr;
4633 #define QUEUE_DSCP2PRI_CFG_REQ_FLAGS_USE_HW_DEFAULT_PRI 0x1UL
4635 #define QUEUE_DSCP2PRI_CFG_REQ_ENABLES_DEFAULT_PRI 0x1UL
4642 /* hwrm_queue_dscp2pri_cfg_output (size:128b/16B) */
4643 struct hwrm_queue_dscp2pri_cfg_output {
4652 /* hwrm_vnic_alloc_input (size:192b/24B) */
4653 struct hwrm_vnic_alloc_input {
4660 #define VNIC_ALLOC_REQ_FLAGS_DEFAULT 0x1UL
4664 /* hwrm_vnic_alloc_output (size:128b/16B) */
4665 struct hwrm_vnic_alloc_output {
4675 /* hwrm_vnic_free_input (size:192b/24B) */
4676 struct hwrm_vnic_free_input {
4686 /* hwrm_vnic_free_output (size:128b/16B) */
4687 struct hwrm_vnic_free_output {
4696 /* hwrm_vnic_cfg_input (size:320b/40B) */
4697 struct hwrm_vnic_cfg_input {
4704 #define VNIC_CFG_REQ_FLAGS_DEFAULT 0x1UL
4705 #define VNIC_CFG_REQ_FLAGS_VLAN_STRIP_MODE 0x2UL
4706 #define VNIC_CFG_REQ_FLAGS_BD_STALL_MODE 0x4UL
4707 #define VNIC_CFG_REQ_FLAGS_ROCE_DUAL_VNIC_MODE 0x8UL
4708 #define VNIC_CFG_REQ_FLAGS_ROCE_ONLY_VNIC_MODE 0x10UL
4709 #define VNIC_CFG_REQ_FLAGS_RSS_DFLT_CR_MODE 0x20UL
4710 #define VNIC_CFG_REQ_FLAGS_ROCE_MIRRORING_CAPABLE_VNIC_MODE 0x40UL
4712 #define VNIC_CFG_REQ_ENABLES_DFLT_RING_GRP 0x1UL
4713 #define VNIC_CFG_REQ_ENABLES_RSS_RULE 0x2UL
4714 #define VNIC_CFG_REQ_ENABLES_COS_RULE 0x4UL
4715 #define VNIC_CFG_REQ_ENABLES_LB_RULE 0x8UL
4716 #define VNIC_CFG_REQ_ENABLES_MRU 0x10UL
4717 #define VNIC_CFG_REQ_ENABLES_DEFAULT_RX_RING_ID 0x20UL
4718 #define VNIC_CFG_REQ_ENABLES_DEFAULT_CMPL_RING_ID 0x40UL
4720 __le16 dflt_ring_grp;
4725 __le16 default_rx_ring_id;
4726 __le16 default_cmpl_ring_id;
4729 /* hwrm_vnic_cfg_output (size:128b/16B) */
4730 struct hwrm_vnic_cfg_output {
4739 /* hwrm_vnic_qcaps_input (size:192b/24B) */
4740 struct hwrm_vnic_qcaps_input {
4750 /* hwrm_vnic_qcaps_output (size:192b/24B) */
4751 struct hwrm_vnic_qcaps_output {
4759 #define VNIC_QCAPS_RESP_FLAGS_UNUSED 0x1UL
4760 #define VNIC_QCAPS_RESP_FLAGS_VLAN_STRIP_CAP 0x2UL
4761 #define VNIC_QCAPS_RESP_FLAGS_BD_STALL_CAP 0x4UL
4762 #define VNIC_QCAPS_RESP_FLAGS_ROCE_DUAL_VNIC_CAP 0x8UL
4763 #define VNIC_QCAPS_RESP_FLAGS_ROCE_ONLY_VNIC_CAP 0x10UL
4764 #define VNIC_QCAPS_RESP_FLAGS_RSS_DFLT_CR_CAP 0x20UL
4765 #define VNIC_QCAPS_RESP_FLAGS_ROCE_MIRRORING_CAPABLE_VNIC_CAP 0x40UL
4766 #define VNIC_QCAPS_RESP_FLAGS_OUTERMOST_RSS_CAP 0x80UL
4767 __le16 max_aggs_supported;
4772 /* hwrm_vnic_tpa_cfg_input (size:320b/40B) */
4773 struct hwrm_vnic_tpa_cfg_input {
4780 #define VNIC_TPA_CFG_REQ_FLAGS_TPA 0x1UL
4781 #define VNIC_TPA_CFG_REQ_FLAGS_ENCAP_TPA 0x2UL
4782 #define VNIC_TPA_CFG_REQ_FLAGS_RSC_WND_UPDATE 0x4UL
4783 #define VNIC_TPA_CFG_REQ_FLAGS_GRO 0x8UL
4784 #define VNIC_TPA_CFG_REQ_FLAGS_AGG_WITH_ECN 0x10UL
4785 #define VNIC_TPA_CFG_REQ_FLAGS_AGG_WITH_SAME_GRE_SEQ 0x20UL
4786 #define VNIC_TPA_CFG_REQ_FLAGS_GRO_IPID_CHECK 0x40UL
4787 #define VNIC_TPA_CFG_REQ_FLAGS_GRO_TTL_CHECK 0x80UL
4788 #define VNIC_TPA_CFG_REQ_FLAGS_AGG_PACK_AS_GRO 0x100UL
4790 #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGG_SEGS 0x1UL
4791 #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGGS 0x2UL
4792 #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGG_TIMER 0x4UL
4793 #define VNIC_TPA_CFG_REQ_ENABLES_MIN_AGG_LEN 0x8UL
4795 __le16 max_agg_segs;
4796 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_1 0x0UL
4797 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_2 0x1UL
4798 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_4 0x2UL
4799 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_8 0x3UL
4800 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_MAX 0x1fUL
4801 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_LAST VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_MAX
4803 #define VNIC_TPA_CFG_REQ_MAX_AGGS_1 0x0UL
4804 #define VNIC_TPA_CFG_REQ_MAX_AGGS_2 0x1UL
4805 #define VNIC_TPA_CFG_REQ_MAX_AGGS_4 0x2UL
4806 #define VNIC_TPA_CFG_REQ_MAX_AGGS_8 0x3UL
4807 #define VNIC_TPA_CFG_REQ_MAX_AGGS_16 0x4UL
4808 #define VNIC_TPA_CFG_REQ_MAX_AGGS_MAX 0x7UL
4809 #define VNIC_TPA_CFG_REQ_MAX_AGGS_LAST VNIC_TPA_CFG_REQ_MAX_AGGS_MAX
4811 __le32 max_agg_timer;
4815 /* hwrm_vnic_tpa_cfg_output (size:128b/16B) */
4816 struct hwrm_vnic_tpa_cfg_output {
4825 /* hwrm_vnic_tpa_qcfg_input (size:192b/24B) */
4826 struct hwrm_vnic_tpa_qcfg_input {
4836 /* hwrm_vnic_tpa_qcfg_output (size:256b/32B) */
4837 struct hwrm_vnic_tpa_qcfg_output {
4843 #define VNIC_TPA_QCFG_RESP_FLAGS_TPA 0x1UL
4844 #define VNIC_TPA_QCFG_RESP_FLAGS_ENCAP_TPA 0x2UL
4845 #define VNIC_TPA_QCFG_RESP_FLAGS_RSC_WND_UPDATE 0x4UL
4846 #define VNIC_TPA_QCFG_RESP_FLAGS_GRO 0x8UL
4847 #define VNIC_TPA_QCFG_RESP_FLAGS_AGG_WITH_ECN 0x10UL
4848 #define VNIC_TPA_QCFG_RESP_FLAGS_AGG_WITH_SAME_GRE_SEQ 0x20UL
4849 #define VNIC_TPA_QCFG_RESP_FLAGS_GRO_IPID_CHECK 0x40UL
4850 #define VNIC_TPA_QCFG_RESP_FLAGS_GRO_TTL_CHECK 0x80UL
4851 __le16 max_agg_segs;
4852 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_1 0x0UL
4853 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_2 0x1UL
4854 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_4 0x2UL
4855 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_8 0x3UL
4856 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_MAX 0x1fUL
4857 #define VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_LAST VNIC_TPA_QCFG_RESP_MAX_AGG_SEGS_MAX
4859 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_1 0x0UL
4860 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_2 0x1UL
4861 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_4 0x2UL
4862 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_8 0x3UL
4863 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_16 0x4UL
4864 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_MAX 0x7UL
4865 #define VNIC_TPA_QCFG_RESP_MAX_AGGS_LAST VNIC_TPA_QCFG_RESP_MAX_AGGS_MAX
4866 __le32 max_agg_timer;
4872 /* hwrm_vnic_rss_cfg_input (size:384b/48B) */
4873 struct hwrm_vnic_rss_cfg_input {
4880 #define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV4 0x1UL
4881 #define VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV4 0x2UL
4882 #define VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV4 0x4UL
4883 #define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV6 0x8UL
4884 #define VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV6 0x10UL
4885 #define VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV6 0x20UL
4887 u8 ring_table_pair_index;
4889 #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_DEFAULT 0x1UL
4890 #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_INNERMOST_4 0x2UL
4891 #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_INNERMOST_2 0x4UL
4892 #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_OUTERMOST_4 0x8UL
4893 #define VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_OUTERMOST_2 0x10UL
4894 __le64 ring_grp_tbl_addr;
4895 __le64 hash_key_tbl_addr;
4900 /* hwrm_vnic_rss_cfg_output (size:128b/16B) */
4901 struct hwrm_vnic_rss_cfg_output {
4910 /* hwrm_vnic_plcmodes_cfg_input (size:320b/40B) */
4911 struct hwrm_vnic_plcmodes_cfg_input {
4918 #define VNIC_PLCMODES_CFG_REQ_FLAGS_REGULAR_PLACEMENT 0x1UL
4919 #define VNIC_PLCMODES_CFG_REQ_FLAGS_JUMBO_PLACEMENT 0x2UL
4920 #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV4 0x4UL
4921 #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV6 0x8UL
4922 #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_FCOE 0x10UL
4923 #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_ROCE 0x20UL
4925 #define VNIC_PLCMODES_CFG_REQ_ENABLES_JUMBO_THRESH_VALID 0x1UL
4926 #define VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_OFFSET_VALID 0x2UL
4927 #define VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_THRESHOLD_VALID 0x4UL
4929 __le16 jumbo_thresh;
4931 __le16 hds_threshold;
4935 /* hwrm_vnic_plcmodes_cfg_output (size:128b/16B) */
4936 struct hwrm_vnic_plcmodes_cfg_output {
4945 /* hwrm_vnic_rss_cos_lb_ctx_alloc_input (size:128b/16B) */
4946 struct hwrm_vnic_rss_cos_lb_ctx_alloc_input {
4954 /* hwrm_vnic_rss_cos_lb_ctx_alloc_output (size:128b/16B) */
4955 struct hwrm_vnic_rss_cos_lb_ctx_alloc_output {
4960 __le16 rss_cos_lb_ctx_id;
4965 /* hwrm_vnic_rss_cos_lb_ctx_free_input (size:192b/24B) */
4966 struct hwrm_vnic_rss_cos_lb_ctx_free_input {
4972 __le16 rss_cos_lb_ctx_id;
4976 /* hwrm_vnic_rss_cos_lb_ctx_free_output (size:128b/16B) */
4977 struct hwrm_vnic_rss_cos_lb_ctx_free_output {
4986 /* hwrm_ring_alloc_input (size:704b/88B) */
4987 struct hwrm_ring_alloc_input {
4994 #define RING_ALLOC_REQ_ENABLES_RING_ARB_CFG 0x2UL
4995 #define RING_ALLOC_REQ_ENABLES_STAT_CTX_ID_VALID 0x8UL
4996 #define RING_ALLOC_REQ_ENABLES_MAX_BW_VALID 0x20UL
4997 #define RING_ALLOC_REQ_ENABLES_RX_RING_ID_VALID 0x40UL
4998 #define RING_ALLOC_REQ_ENABLES_NQ_RING_ID_VALID 0x80UL
4999 #define RING_ALLOC_REQ_ENABLES_RX_BUF_SIZE_VALID 0x100UL
5001 #define RING_ALLOC_REQ_RING_TYPE_L2_CMPL 0x0UL
5002 #define RING_ALLOC_REQ_RING_TYPE_TX 0x1UL
5003 #define RING_ALLOC_REQ_RING_TYPE_RX 0x2UL
5004 #define RING_ALLOC_REQ_RING_TYPE_ROCE_CMPL 0x3UL
5005 #define RING_ALLOC_REQ_RING_TYPE_RX_AGG 0x4UL
5006 #define RING_ALLOC_REQ_RING_TYPE_NQ 0x5UL
5007 #define RING_ALLOC_REQ_RING_TYPE_LAST RING_ALLOC_REQ_RING_TYPE_NQ
5010 #define RING_ALLOC_REQ_FLAGS_RX_SOP_PAD 0x1UL
5011 __le64 page_tbl_addr;
5018 __le16 cmpl_ring_id;
5023 __le16 ring_arb_cfg;
5024 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_MASK 0xfUL
5025 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_SFT 0
5026 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_SP 0x1UL
5027 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_WFQ 0x2UL
5028 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_LAST RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_WFQ
5029 #define RING_ALLOC_REQ_RING_ARB_CFG_RSVD_MASK 0xf0UL
5030 #define RING_ALLOC_REQ_RING_ARB_CFG_RSVD_SFT 4
5031 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_PARAM_MASK 0xff00UL
5032 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_PARAM_SFT 8
5038 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_MASK 0xfffffffUL
5039 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_SFT 0
5040 #define RING_ALLOC_REQ_MAX_BW_SCALE 0x10000000UL
5041 #define RING_ALLOC_REQ_MAX_BW_SCALE_BITS (0x0UL << 28)
5042 #define RING_ALLOC_REQ_MAX_BW_SCALE_BYTES (0x1UL << 28)
5043 #define RING_ALLOC_REQ_MAX_BW_SCALE_LAST RING_ALLOC_REQ_MAX_BW_SCALE_BYTES
5044 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
5045 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_SFT 29
5046 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_MEGA (0x0UL << 29)
5047 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_KILO (0x2UL << 29)
5048 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_BASE (0x4UL << 29)
5049 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_GIGA (0x6UL << 29)
5050 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
5051 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
5052 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_LAST RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_INVALID
5054 #define RING_ALLOC_REQ_INT_MODE_LEGACY 0x0UL
5055 #define RING_ALLOC_REQ_INT_MODE_RSVD 0x1UL
5056 #define RING_ALLOC_REQ_INT_MODE_MSIX 0x2UL
5057 #define RING_ALLOC_REQ_INT_MODE_POLL 0x3UL
5058 #define RING_ALLOC_REQ_INT_MODE_LAST RING_ALLOC_REQ_INT_MODE_POLL
5063 /* hwrm_ring_alloc_output (size:128b/16B) */
5064 struct hwrm_ring_alloc_output {
5070 __le16 logical_ring_id;
5075 /* hwrm_ring_free_input (size:192b/24B) */
5076 struct hwrm_ring_free_input {
5083 #define RING_FREE_REQ_RING_TYPE_L2_CMPL 0x0UL
5084 #define RING_FREE_REQ_RING_TYPE_TX 0x1UL
5085 #define RING_FREE_REQ_RING_TYPE_RX 0x2UL
5086 #define RING_FREE_REQ_RING_TYPE_ROCE_CMPL 0x3UL
5087 #define RING_FREE_REQ_RING_TYPE_RX_AGG 0x4UL
5088 #define RING_FREE_REQ_RING_TYPE_NQ 0x5UL
5089 #define RING_FREE_REQ_RING_TYPE_LAST RING_FREE_REQ_RING_TYPE_NQ
5095 /* hwrm_ring_free_output (size:128b/16B) */
5096 struct hwrm_ring_free_output {
5105 /* hwrm_ring_reset_input (size:192b/24B) */
5106 struct hwrm_ring_reset_input {
5113 #define RING_RESET_REQ_RING_TYPE_L2_CMPL 0x0UL
5114 #define RING_RESET_REQ_RING_TYPE_TX 0x1UL
5115 #define RING_RESET_REQ_RING_TYPE_RX 0x2UL
5116 #define RING_RESET_REQ_RING_TYPE_ROCE_CMPL 0x3UL
5117 #define RING_RESET_REQ_RING_TYPE_LAST RING_RESET_REQ_RING_TYPE_ROCE_CMPL
5123 /* hwrm_ring_reset_output (size:128b/16B) */
5124 struct hwrm_ring_reset_output {
5134 /* hwrm_ring_aggint_qcaps_input (size:128b/16B) */
5135 struct hwrm_ring_aggint_qcaps_input {
5143 /* hwrm_ring_aggint_qcaps_output (size:384b/48B) */
5144 struct hwrm_ring_aggint_qcaps_output {
5150 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_INT_LAT_TMR_MIN 0x1UL
5151 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_INT_LAT_TMR_MAX 0x2UL
5152 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_TIMER_RESET 0x4UL
5153 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_RING_IDLE 0x8UL
5154 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_DMA_AGGR 0x10UL
5155 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_DMA_AGGR_DURING_INT 0x20UL
5156 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_CMPL_AGGR_DMA_TMR 0x40UL
5157 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_CMPL_AGGR_DMA_TMR_DURING_INT 0x80UL
5158 #define RING_AGGINT_QCAPS_RESP_CMPL_PARAMS_NUM_CMPL_AGGR_INT 0x100UL
5160 #define RING_AGGINT_QCAPS_RESP_NQ_PARAMS_INT_LAT_TMR_MIN 0x1UL
5161 __le16 num_cmpl_dma_aggr_min;
5162 __le16 num_cmpl_dma_aggr_max;
5163 __le16 num_cmpl_dma_aggr_during_int_min;
5164 __le16 num_cmpl_dma_aggr_during_int_max;
5165 __le16 cmpl_aggr_dma_tmr_min;
5166 __le16 cmpl_aggr_dma_tmr_max;
5167 __le16 cmpl_aggr_dma_tmr_during_int_min;
5168 __le16 cmpl_aggr_dma_tmr_during_int_max;
5169 __le16 int_lat_tmr_min_min;
5170 __le16 int_lat_tmr_min_max;
5171 __le16 int_lat_tmr_max_min;
5172 __le16 int_lat_tmr_max_max;
5173 __le16 num_cmpl_aggr_int_min;
5174 __le16 num_cmpl_aggr_int_max;
5180 /* hwrm_ring_cmpl_ring_qaggint_params_input (size:192b/24B) */
5181 struct hwrm_ring_cmpl_ring_qaggint_params_input {
5191 /* hwrm_ring_cmpl_ring_qaggint_params_output (size:256b/32B) */
5192 struct hwrm_ring_cmpl_ring_qaggint_params_output {
5198 #define RING_CMPL_RING_QAGGINT_PARAMS_RESP_FLAGS_TIMER_RESET 0x1UL
5199 #define RING_CMPL_RING_QAGGINT_PARAMS_RESP_FLAGS_RING_IDLE 0x2UL
5200 __le16 num_cmpl_dma_aggr;
5201 __le16 num_cmpl_dma_aggr_during_int;
5202 __le16 cmpl_aggr_dma_tmr;
5203 __le16 cmpl_aggr_dma_tmr_during_int;
5204 __le16 int_lat_tmr_min;
5205 __le16 int_lat_tmr_max;
5206 __le16 num_cmpl_aggr_int;
5211 /* hwrm_ring_cmpl_ring_cfg_aggint_params_input (size:320b/40B) */
5212 struct hwrm_ring_cmpl_ring_cfg_aggint_params_input {
5220 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_TIMER_RESET 0x1UL
5221 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_RING_IDLE 0x2UL
5222 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_IS_NQ 0x4UL
5223 __le16 num_cmpl_dma_aggr;
5224 __le16 num_cmpl_dma_aggr_during_int;
5225 __le16 cmpl_aggr_dma_tmr;
5226 __le16 cmpl_aggr_dma_tmr_during_int;
5227 __le16 int_lat_tmr_min;
5228 __le16 int_lat_tmr_max;
5229 __le16 num_cmpl_aggr_int;
5231 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_DMA_AGGR 0x1UL
5232 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_DMA_AGGR_DURING_INT 0x2UL
5233 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_CMPL_AGGR_DMA_TMR 0x4UL
5234 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_INT_LAT_TMR_MIN 0x8UL
5235 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_INT_LAT_TMR_MAX 0x10UL
5236 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_ENABLES_NUM_CMPL_AGGR_INT 0x20UL
5240 /* hwrm_ring_cmpl_ring_cfg_aggint_params_output (size:128b/16B) */
5241 struct hwrm_ring_cmpl_ring_cfg_aggint_params_output {
5250 /* hwrm_ring_grp_alloc_input (size:192b/24B) */
5251 struct hwrm_ring_grp_alloc_input {
5263 /* hwrm_ring_grp_alloc_output (size:128b/16B) */
5264 struct hwrm_ring_grp_alloc_output {
5269 __le32 ring_group_id;
5274 /* hwrm_ring_grp_free_input (size:192b/24B) */
5275 struct hwrm_ring_grp_free_input {
5281 __le32 ring_group_id;
5285 /* hwrm_ring_grp_free_output (size:128b/16B) */
5286 struct hwrm_ring_grp_free_output {
5294 #define DEFAULT_FLOW_ID 0xFFFFFFFFUL
5295 #define ROCEV1_FLOW_ID 0xFFFFFFFEUL
5296 #define ROCEV2_FLOW_ID 0xFFFFFFFDUL
5297 #define ROCEV2_CNP_FLOW_ID 0xFFFFFFFCUL
5299 /* hwrm_cfa_l2_filter_alloc_input (size:768b/96B) */
5300 struct hwrm_cfa_l2_filter_alloc_input {
5307 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH 0x1UL
5308 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_TX 0x0UL
5309 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_RX 0x1UL
5310 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_LAST CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_RX
5311 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_LOOPBACK 0x2UL
5312 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_DROP 0x4UL
5313 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_OUTERMOST 0x8UL
5314 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_MASK 0x30UL
5315 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_SFT 4
5316 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_NO_ROCE_L2 (0x0UL << 4)
5317 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_L2 (0x1UL << 4)
5318 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_ROCE (0x2UL << 4)
5319 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_LAST CFA_L2_FILTER_ALLOC_REQ_FLAGS_TRAFFIC_ROCE
5320 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_XDP_DISABLE 0x40UL
5321 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_SOURCE_VALID 0x80UL
5323 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_ADDR 0x1UL
5324 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_ADDR_MASK 0x2UL
5325 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_OVLAN 0x4UL
5326 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_OVLAN_MASK 0x8UL
5327 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN 0x10UL
5328 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN_MASK 0x20UL
5329 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_ADDR 0x40UL
5330 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_ADDR_MASK 0x80UL
5331 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_OVLAN 0x100UL
5332 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_OVLAN_MASK 0x200UL
5333 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_IVLAN 0x400UL
5334 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_IVLAN_MASK 0x800UL
5335 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_SRC_TYPE 0x1000UL
5336 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_SRC_ID 0x2000UL
5337 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x4000UL
5338 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_DST_ID 0x8000UL
5339 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x10000UL
5340 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_NUM_VLANS 0x20000UL
5341 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_NUM_VLANS 0x40000UL
5347 __le16 l2_ovlan_mask;
5349 __le16 l2_ivlan_mask;
5353 u8 t_l2_addr_mask[6];
5355 __le16 t_l2_ovlan_mask;
5357 __le16 t_l2_ivlan_mask;
5359 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_NPORT 0x0UL
5360 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_PF 0x1UL
5361 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_VF 0x2UL
5362 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_VNIC 0x3UL
5363 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_KONG 0x4UL
5364 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_APE 0x5UL
5365 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_BONO 0x6UL
5366 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_TANG 0x7UL
5367 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_LAST CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_TANG
5371 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL
5372 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL
5373 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL
5374 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL
5375 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL
5376 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL
5377 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL
5378 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL
5379 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL
5380 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL
5381 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL
5382 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL
5383 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
5384 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL
5385 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
5388 __le16 mirror_vnic_id;
5390 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_NO_PREFER 0x0UL
5391 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_ABOVE_FILTER 0x1UL
5392 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_BELOW_FILTER 0x2UL
5393 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MAX 0x3UL
5394 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MIN 0x4UL
5395 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_LAST CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MIN
5398 __le64 l2_filter_id_hint;
5401 /* hwrm_cfa_l2_filter_alloc_output (size:192b/24B) */
5402 struct hwrm_cfa_l2_filter_alloc_output {
5407 __le64 l2_filter_id;
5409 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL
5410 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0
5411 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE 0x40000000UL
5412 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT (0x0UL << 30)
5413 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT (0x1UL << 30)
5414 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT
5415 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR 0x80000000UL
5416 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX (0x0UL << 31)
5417 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX (0x1UL << 31)
5418 #define CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST CFA_L2_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX
5423 /* hwrm_cfa_l2_filter_free_input (size:192b/24B) */
5424 struct hwrm_cfa_l2_filter_free_input {
5430 __le64 l2_filter_id;
5433 /* hwrm_cfa_l2_filter_free_output (size:128b/16B) */
5434 struct hwrm_cfa_l2_filter_free_output {
5443 /* hwrm_cfa_l2_filter_cfg_input (size:320b/40B) */
5444 struct hwrm_cfa_l2_filter_cfg_input {
5451 #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH 0x1UL
5452 #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_TX 0x0UL
5453 #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_RX 0x1UL
5454 #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_LAST CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_RX
5455 #define CFA_L2_FILTER_CFG_REQ_FLAGS_DROP 0x2UL
5456 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_MASK 0xcUL
5457 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_SFT 2
5458 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_NO_ROCE_L2 (0x0UL << 2)
5459 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_L2 (0x1UL << 2)
5460 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_ROCE (0x2UL << 2)
5461 #define CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_LAST CFA_L2_FILTER_CFG_REQ_FLAGS_TRAFFIC_ROCE
5463 #define CFA_L2_FILTER_CFG_REQ_ENABLES_DST_ID 0x1UL
5464 #define CFA_L2_FILTER_CFG_REQ_ENABLES_NEW_MIRROR_VNIC_ID 0x2UL
5465 __le64 l2_filter_id;
5467 __le32 new_mirror_vnic_id;
5470 /* hwrm_cfa_l2_filter_cfg_output (size:128b/16B) */
5471 struct hwrm_cfa_l2_filter_cfg_output {
5480 /* hwrm_cfa_l2_set_rx_mask_input (size:448b/56B) */
5481 struct hwrm_cfa_l2_set_rx_mask_input {
5489 #define CFA_L2_SET_RX_MASK_REQ_MASK_MCAST 0x2UL
5490 #define CFA_L2_SET_RX_MASK_REQ_MASK_ALL_MCAST 0x4UL
5491 #define CFA_L2_SET_RX_MASK_REQ_MASK_BCAST 0x8UL
5492 #define CFA_L2_SET_RX_MASK_REQ_MASK_PROMISCUOUS 0x10UL
5493 #define CFA_L2_SET_RX_MASK_REQ_MASK_OUTERMOST 0x20UL
5494 #define CFA_L2_SET_RX_MASK_REQ_MASK_VLANONLY 0x40UL
5495 #define CFA_L2_SET_RX_MASK_REQ_MASK_VLAN_NONVLAN 0x80UL
5496 #define CFA_L2_SET_RX_MASK_REQ_MASK_ANYVLAN_NONVLAN 0x100UL
5498 __le32 num_mc_entries;
5500 __le64 vlan_tag_tbl_addr;
5501 __le32 num_vlan_tags;
5505 /* hwrm_cfa_l2_set_rx_mask_output (size:128b/16B) */
5506 struct hwrm_cfa_l2_set_rx_mask_output {
5515 /* hwrm_cfa_l2_set_rx_mask_cmd_err (size:64b/8B) */
5516 struct hwrm_cfa_l2_set_rx_mask_cmd_err {
5518 #define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_UNKNOWN 0x0UL
5519 #define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_NTUPLE_FILTER_CONFLICT_ERR 0x1UL
5520 #define CFA_L2_SET_RX_MASK_CMD_ERR_CODE_LAST CFA_L2_SET_RX_MASK_CMD_ERR_CODE_NTUPLE_FILTER_CONFLICT_ERR
5524 /* hwrm_cfa_tunnel_filter_alloc_input (size:704b/88B) */
5525 struct hwrm_cfa_tunnel_filter_alloc_input {
5532 #define CFA_TUNNEL_FILTER_ALLOC_REQ_FLAGS_LOOPBACK 0x1UL
5534 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_FILTER_ID 0x1UL
5535 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_ADDR 0x2UL
5536 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN 0x4UL
5537 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L3_ADDR 0x8UL
5538 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L3_ADDR_TYPE 0x10UL
5539 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_T_L3_ADDR_TYPE 0x20UL
5540 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_T_L3_ADDR 0x40UL
5541 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x80UL
5542 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_VNI 0x100UL
5543 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_DST_VNIC_ID 0x200UL
5544 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x400UL
5545 __le64 l2_filter_id;
5549 __le32 t_l3_addr[4];
5553 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL
5554 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL
5555 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL
5556 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL
5557 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL
5558 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL
5559 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL
5560 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL
5561 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL
5562 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL
5563 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL
5564 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL
5565 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
5566 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL
5567 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
5569 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_OAM_CHECKSUM_EXPLHDR 0x1UL
5570 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_CRITICAL_OPT_S1 0x2UL
5571 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_FLAGS_TUN_FLAGS_EXTHDR_SEQNUM_S0 0x4UL
5574 __le32 mirror_vnic_id;
5577 /* hwrm_cfa_tunnel_filter_alloc_output (size:192b/24B) */
5578 struct hwrm_cfa_tunnel_filter_alloc_output {
5583 __le64 tunnel_filter_id;
5585 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL
5586 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0
5587 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE 0x40000000UL
5588 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT (0x0UL << 30)
5589 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT (0x1UL << 30)
5590 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT
5591 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR 0x80000000UL
5592 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX (0x0UL << 31)
5593 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX (0x1UL << 31)
5594 #define CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST CFA_TUNNEL_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX
5599 /* hwrm_cfa_tunnel_filter_free_input (size:192b/24B) */
5600 struct hwrm_cfa_tunnel_filter_free_input {
5606 __le64 tunnel_filter_id;
5609 /* hwrm_cfa_tunnel_filter_free_output (size:128b/16B) */
5610 struct hwrm_cfa_tunnel_filter_free_output {
5619 /* hwrm_vxlan_ipv4_hdr (size:128b/16B) */
5620 struct hwrm_vxlan_ipv4_hdr {
5622 #define VXLAN_IPV4_HDR_VER_HLEN_HEADER_LENGTH_MASK 0xfUL
5623 #define VXLAN_IPV4_HDR_VER_HLEN_HEADER_LENGTH_SFT 0
5624 #define VXLAN_IPV4_HDR_VER_HLEN_VERSION_MASK 0xf0UL
5625 #define VXLAN_IPV4_HDR_VER_HLEN_VERSION_SFT 4
5628 __be16 flags_frag_offset;
5632 __be32 dest_ip_addr;
5635 /* hwrm_vxlan_ipv6_hdr (size:320b/40B) */
5636 struct hwrm_vxlan_ipv6_hdr {
5637 __be32 ver_tc_flow_label;
5638 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_VER_SFT 0x1cUL
5639 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_VER_MASK 0xf0000000UL
5640 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_TC_SFT 0x14UL
5641 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_TC_MASK 0xff00000UL
5642 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_SFT 0x0UL
5643 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_MASK 0xfffffUL
5644 #define VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_LAST VXLAN_IPV6_HDR_VER_TC_FLOW_LABEL_FLOW_LABEL_MASK
5648 __be32 src_ip_addr[4];
5649 __be32 dest_ip_addr[4];
5652 /* hwrm_cfa_encap_data_vxlan (size:640b/80B) */
5653 struct hwrm_cfa_encap_data_vxlan {
5664 #define CFA_ENCAP_DATA_VXLAN_L3_VER_MASK 0xfUL
5665 #define CFA_ENCAP_DATA_VXLAN_L3_VER_IPV4 0x4UL
5666 #define CFA_ENCAP_DATA_VXLAN_L3_VER_IPV6 0x6UL
5667 #define CFA_ENCAP_DATA_VXLAN_L3_LAST CFA_ENCAP_DATA_VXLAN_L3_VER_IPV6
5677 /* hwrm_cfa_encap_record_alloc_input (size:832b/104B) */
5678 struct hwrm_cfa_encap_record_alloc_input {
5685 #define CFA_ENCAP_RECORD_ALLOC_REQ_FLAGS_LOOPBACK 0x1UL
5686 #define CFA_ENCAP_RECORD_ALLOC_REQ_FLAGS_EXTERNAL 0x2UL
5688 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN 0x1UL
5689 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_NVGRE 0x2UL
5690 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_L2GRE 0x3UL
5691 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPIP 0x4UL
5692 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_GENEVE 0x5UL
5693 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_MPLS 0x6UL
5694 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VLAN 0x7UL
5695 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPGRE 0x8UL
5696 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_V4 0x9UL
5697 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPGRE_V1 0xaUL
5698 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_L2_ETYPE 0xbUL
5699 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_GPE_V6 0xcUL
5700 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_LAST CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN_GPE_V6
5702 __le32 encap_data[20];
5705 /* hwrm_cfa_encap_record_alloc_output (size:128b/16B) */
5706 struct hwrm_cfa_encap_record_alloc_output {
5711 __le32 encap_record_id;
5716 /* hwrm_cfa_encap_record_free_input (size:192b/24B) */
5717 struct hwrm_cfa_encap_record_free_input {
5723 __le32 encap_record_id;
5727 /* hwrm_cfa_encap_record_free_output (size:128b/16B) */
5728 struct hwrm_cfa_encap_record_free_output {
5737 /* hwrm_cfa_ntuple_filter_alloc_input (size:1088b/136B) */
5738 struct hwrm_cfa_ntuple_filter_alloc_input {
5745 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_LOOPBACK 0x1UL
5746 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DROP 0x2UL
5747 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_METER 0x4UL
5748 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DEST_FID 0x8UL
5750 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_L2_FILTER_ID 0x1UL
5751 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_ETHERTYPE 0x2UL
5752 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x4UL
5753 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_MACADDR 0x8UL
5754 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_IPADDR_TYPE 0x10UL
5755 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR 0x20UL
5756 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR_MASK 0x40UL
5757 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR 0x80UL
5758 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR_MASK 0x100UL
5759 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_IP_PROTOCOL 0x200UL
5760 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_PORT 0x400UL
5761 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_PORT_MASK 0x800UL
5762 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_PORT 0x1000UL
5763 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_PORT_MASK 0x2000UL
5764 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_PRI_HINT 0x4000UL
5765 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_NTUPLE_FILTER_ID 0x8000UL
5766 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_ID 0x10000UL
5767 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x20000UL
5768 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_MACADDR 0x40000UL
5769 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_RFS_RING_TBL_IDX 0x80000UL
5770 __le64 l2_filter_id;
5774 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_UNKNOWN 0x0UL
5775 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV4 0x4UL
5776 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6 0x6UL
5777 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_LAST CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6
5779 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UNKNOWN 0x0UL
5780 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_TCP 0x6UL
5781 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP 0x11UL
5782 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_LAST CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP
5784 __le16 mirror_vnic_id;
5786 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL
5787 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL
5788 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL
5789 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL
5790 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL
5791 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL
5792 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL
5793 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL
5794 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL
5795 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL
5796 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL
5797 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL
5798 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
5799 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL
5800 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
5802 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_NO_PREFER 0x0UL
5803 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_ABOVE 0x1UL
5804 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_BELOW 0x2UL
5805 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_HIGHEST 0x3UL
5806 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LOWEST 0x4UL
5807 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LAST CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LOWEST
5808 __be32 src_ipaddr[4];
5809 __be32 src_ipaddr_mask[4];
5810 __be32 dst_ipaddr[4];
5811 __be32 dst_ipaddr_mask[4];
5813 __be16 src_port_mask;
5815 __be16 dst_port_mask;
5816 __le64 ntuple_filter_id_hint;
5817 __le16 rfs_ring_tbl_idx;
5821 /* hwrm_cfa_ntuple_filter_alloc_output (size:192b/24B) */
5822 struct hwrm_cfa_ntuple_filter_alloc_output {
5827 __le64 ntuple_filter_id;
5829 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL
5830 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_VALUE_SFT 0
5831 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE 0x40000000UL
5832 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_INT (0x0UL << 30)
5833 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT (0x1UL << 30)
5834 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_LAST CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_TYPE_EXT
5835 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR 0x80000000UL
5836 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_RX (0x0UL << 31)
5837 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX (0x1UL << 31)
5838 #define CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_LAST CFA_NTUPLE_FILTER_ALLOC_RESP_FLOW_ID_DIR_TX
5843 /* hwrm_cfa_ntuple_filter_alloc_cmd_err (size:64b/8B) */
5844 struct hwrm_cfa_ntuple_filter_alloc_cmd_err {
5846 #define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_UNKNOWN 0x0UL
5847 #define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_RX_MASK_VLAN_CONFLICT_ERR 0x1UL
5848 #define CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_LAST CFA_NTUPLE_FILTER_ALLOC_CMD_ERR_CODE_RX_MASK_VLAN_CONFLICT_ERR
5852 /* hwrm_cfa_ntuple_filter_free_input (size:192b/24B) */
5853 struct hwrm_cfa_ntuple_filter_free_input {
5859 __le64 ntuple_filter_id;
5862 /* hwrm_cfa_ntuple_filter_free_output (size:128b/16B) */
5863 struct hwrm_cfa_ntuple_filter_free_output {
5872 /* hwrm_cfa_ntuple_filter_cfg_input (size:384b/48B) */
5873 struct hwrm_cfa_ntuple_filter_cfg_input {
5880 #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_DST_ID 0x1UL
5881 #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_MIRROR_VNIC_ID 0x2UL
5882 #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_METER_INSTANCE_ID 0x4UL
5884 #define CFA_NTUPLE_FILTER_CFG_REQ_FLAGS_DEST_FID 0x1UL
5885 __le64 ntuple_filter_id;
5887 __le32 new_mirror_vnic_id;
5888 __le16 new_meter_instance_id;
5889 #define CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_INVALID 0xffffUL
5890 #define CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_LAST CFA_NTUPLE_FILTER_CFG_REQ_NEW_METER_INSTANCE_ID_INVALID
5894 /* hwrm_cfa_ntuple_filter_cfg_output (size:128b/16B) */
5895 struct hwrm_cfa_ntuple_filter_cfg_output {
5904 /* hwrm_cfa_decap_filter_alloc_input (size:832b/104B) */
5905 struct hwrm_cfa_decap_filter_alloc_input {
5912 #define CFA_DECAP_FILTER_ALLOC_REQ_FLAGS_OVS_TUNNEL 0x1UL
5914 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x1UL
5915 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_TUNNEL_ID 0x2UL
5916 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_MACADDR 0x4UL
5917 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_MACADDR 0x8UL
5918 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_OVLAN_VID 0x10UL
5919 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IVLAN_VID 0x20UL
5920 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_T_OVLAN_VID 0x40UL
5921 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_T_IVLAN_VID 0x80UL
5922 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_ETHERTYPE 0x100UL
5923 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR 0x200UL
5924 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR 0x400UL
5925 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IPADDR_TYPE 0x800UL
5926 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_IP_PROTOCOL 0x1000UL
5927 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_SRC_PORT 0x2000UL
5928 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_PORT 0x4000UL
5929 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_DST_ID 0x8000UL
5930 #define CFA_DECAP_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x10000UL
5933 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL
5934 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL
5935 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL
5936 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL
5937 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL
5938 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL
5939 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL
5940 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL
5941 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL
5942 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL
5943 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL
5944 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL
5945 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
5946 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL
5947 #define CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_DECAP_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
5959 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_UNKNOWN 0x0UL
5960 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV4 0x4UL
5961 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6 0x6UL
5962 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_LAST CFA_DECAP_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6
5964 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UNKNOWN 0x0UL
5965 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_TCP 0x6UL
5966 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP 0x11UL
5967 #define CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_LAST CFA_DECAP_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP
5970 __be32 src_ipaddr[4];
5971 __be32 dst_ipaddr[4];
5975 __le16 l2_ctxt_ref_id;
5978 /* hwrm_cfa_decap_filter_alloc_output (size:128b/16B) */
5979 struct hwrm_cfa_decap_filter_alloc_output {
5984 __le32 decap_filter_id;
5989 /* hwrm_cfa_decap_filter_free_input (size:192b/24B) */
5990 struct hwrm_cfa_decap_filter_free_input {
5996 __le32 decap_filter_id;
6000 /* hwrm_cfa_decap_filter_free_output (size:128b/16B) */
6001 struct hwrm_cfa_decap_filter_free_output {
6010 /* hwrm_cfa_flow_alloc_input (size:1024b/128B) */
6011 struct hwrm_cfa_flow_alloc_input {
6018 #define CFA_FLOW_ALLOC_REQ_FLAGS_TUNNEL 0x1UL
6019 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_MASK 0x6UL
6020 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_SFT 1
6021 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_NONE (0x0UL << 1)
6022 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_ONE (0x1UL << 1)
6023 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_TWO (0x2UL << 1)
6024 #define CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_LAST CFA_FLOW_ALLOC_REQ_FLAGS_NUM_VLAN_TWO
6025 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_MASK 0x38UL
6026 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_SFT 3
6027 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_L2 (0x0UL << 3)
6028 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV4 (0x1UL << 3)
6029 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV6 (0x2UL << 3)
6030 #define CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_LAST CFA_FLOW_ALLOC_REQ_FLAGS_FLOWTYPE_IPV6
6031 #define CFA_FLOW_ALLOC_REQ_FLAGS_PATH_TX 0x40UL
6032 #define CFA_FLOW_ALLOC_REQ_FLAGS_PATH_RX 0x80UL
6033 #define CFA_FLOW_ALLOC_REQ_FLAGS_MATCH_VXLAN_IP_VNI 0x100UL
6034 #define CFA_FLOW_ALLOC_REQ_FLAGS_VHOST_ID_USE_VLAN 0x200UL
6036 __le32 tunnel_handle;
6037 __le16 action_flags;
6038 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_FWD 0x1UL
6039 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_RECYCLE 0x2UL
6040 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_DROP 0x4UL
6041 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_METER 0x8UL
6042 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TUNNEL 0x10UL
6043 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_SRC 0x20UL
6044 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_DEST 0x40UL
6045 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NAT_IPV4_ADDRESS 0x80UL
6046 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_L2_HEADER_REWRITE 0x100UL
6047 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TTL_DECREMENT 0x200UL
6048 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_TUNNEL_IP 0x400UL
6049 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_FLOW_AGING_ENABLED 0x800UL
6050 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_PRI_HINT 0x1000UL
6051 #define CFA_FLOW_ALLOC_REQ_ACTION_FLAGS_NO_FLOW_COUNTER_ALLOC 0x2000UL
6053 __be16 l2_rewrite_vlan_tpid;
6054 __be16 l2_rewrite_vlan_tci;
6055 __le16 act_meter_id;
6056 __le16 ref_flow_handle;
6058 __be16 outer_vlan_tci;
6060 __be16 inner_vlan_tci;
6067 __be16 l4_src_port_mask;
6069 __be16 l4_dst_port_mask;
6070 __be32 nat_ip_address[4];
6071 __be16 l2_rewrite_dmac[3];
6073 __be16 l2_rewrite_smac[3];
6076 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL
6077 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL
6078 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL
6079 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL
6080 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL
6081 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL
6082 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL
6083 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL
6084 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL
6085 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL
6086 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL
6087 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL
6088 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
6089 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL
6090 #define CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_LAST CFA_FLOW_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL
6093 /* hwrm_cfa_flow_alloc_output (size:256b/32B) */
6094 struct hwrm_cfa_flow_alloc_output {
6102 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_VALUE_MASK 0x3fffffffUL
6103 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_VALUE_SFT 0
6104 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE 0x40000000UL
6105 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_INT (0x0UL << 30)
6106 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_EXT (0x1UL << 30)
6107 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_LAST CFA_FLOW_ALLOC_RESP_FLOW_ID_TYPE_EXT
6108 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR 0x80000000UL
6109 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_RX (0x0UL << 31)
6110 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_TX (0x1UL << 31)
6111 #define CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_LAST CFA_FLOW_ALLOC_RESP_FLOW_ID_DIR_TX
6112 __le64 ext_flow_handle;
6113 __le32 flow_counter_id;
6118 /* hwrm_cfa_flow_free_input (size:256b/32B) */
6119 struct hwrm_cfa_flow_free_input {
6127 __le32 flow_counter_id;
6128 __le64 ext_flow_handle;
6131 /* hwrm_cfa_flow_free_output (size:256b/32B) */
6132 struct hwrm_cfa_flow_free_output {
6143 /* hwrm_cfa_flow_info_input (size:256b/32B) */
6144 struct hwrm_cfa_flow_info_input {
6151 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_MAX_MASK 0xfffUL
6152 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_MAX_SFT 0
6153 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_CNP_CNT 0x1000UL
6154 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV1_CNT 0x2000UL
6155 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_ROCEV2_CNT 0x4000UL
6156 #define CFA_FLOW_INFO_REQ_FLOW_HANDLE_DIR_RX 0x8000UL
6158 __le64 ext_flow_handle;
6161 /* hwrm_cfa_flow_info_output (size:5632b/704B) */
6162 struct hwrm_cfa_flow_info_output {
6168 #define CFA_FLOW_INFO_RESP_FLAGS_PATH_TX 0x1UL
6169 #define CFA_FLOW_INFO_RESP_FLAGS_PATH_RX 0x2UL
6176 __le64 vfp_tcam_info;
6179 __le32 tunnel_handle;
6182 __le32 flow_key_data[130];
6183 __le32 flow_action_info[30];
6188 /* hwrm_cfa_flow_stats_input (size:640b/80B) */
6189 struct hwrm_cfa_flow_stats_input {
6196 __le16 flow_handle_0;
6197 __le16 flow_handle_1;
6198 __le16 flow_handle_2;
6199 __le16 flow_handle_3;
6200 __le16 flow_handle_4;
6201 __le16 flow_handle_5;
6202 __le16 flow_handle_6;
6203 __le16 flow_handle_7;
6204 __le16 flow_handle_8;
6205 __le16 flow_handle_9;
6219 /* hwrm_cfa_flow_stats_output (size:1408b/176B) */
6220 struct hwrm_cfa_flow_stats_output {
6249 /* hwrm_cfa_vfr_alloc_input (size:448b/56B) */
6250 struct hwrm_cfa_vfr_alloc_input {
6262 /* hwrm_cfa_vfr_alloc_output (size:128b/16B) */
6263 struct hwrm_cfa_vfr_alloc_output {
6269 __le16 tx_cfa_action;
6274 /* hwrm_cfa_vfr_free_input (size:384b/48B) */
6275 struct hwrm_cfa_vfr_free_input {
6284 /* hwrm_cfa_vfr_free_output (size:128b/16B) */
6285 struct hwrm_cfa_vfr_free_output {
6294 /* hwrm_cfa_eem_qcaps_input (size:192b/24B) */
6295 struct hwrm_cfa_eem_qcaps_input {
6302 #define CFA_EEM_QCAPS_REQ_FLAGS_PATH_TX 0x1UL
6303 #define CFA_EEM_QCAPS_REQ_FLAGS_PATH_RX 0x2UL
6304 #define CFA_EEM_QCAPS_REQ_FLAGS_PREFERRED_OFFLOAD 0x4UL
6308 /* hwrm_cfa_eem_qcaps_output (size:256b/32B) */
6309 struct hwrm_cfa_eem_qcaps_output {
6315 #define CFA_EEM_QCAPS_RESP_FLAGS_PATH_TX 0x1UL
6316 #define CFA_EEM_QCAPS_RESP_FLAGS_PATH_RX 0x2UL
6317 #define CFA_EEM_QCAPS_RESP_FLAGS_CENTRALIZED_MEMORY_MODEL_SUPPORTED 0x4UL
6318 #define CFA_EEM_QCAPS_RESP_FLAGS_DETACHED_CENTRALIZED_MEMORY_MODEL_SUPPORTED 0x8UL
6321 #define CFA_EEM_QCAPS_RESP_SUPPORTED_KEY0_TABLE 0x1UL
6322 #define CFA_EEM_QCAPS_RESP_SUPPORTED_KEY1_TABLE 0x2UL
6323 #define CFA_EEM_QCAPS_RESP_SUPPORTED_EXTERNAL_RECORD_TABLE 0x4UL
6324 #define CFA_EEM_QCAPS_RESP_SUPPORTED_EXTERNAL_FLOW_COUNTERS_TABLE 0x8UL
6325 __le32 max_entries_supported;
6326 __le16 key_entry_size;
6327 __le16 record_entry_size;
6328 __le16 efc_entry_size;
6333 /* hwrm_cfa_eem_cfg_input (size:320b/40B) */
6334 struct hwrm_cfa_eem_cfg_input {
6341 #define CFA_EEM_CFG_REQ_FLAGS_PATH_TX 0x1UL
6342 #define CFA_EEM_CFG_REQ_FLAGS_PATH_RX 0x2UL
6343 #define CFA_EEM_CFG_REQ_FLAGS_PREFERRED_OFFLOAD 0x4UL
6344 #define CFA_EEM_CFG_REQ_FLAGS_SECONDARY_PF 0x8UL
6351 __le16 record_ctx_id;
6355 /* hwrm_cfa_eem_cfg_output (size:128b/16B) */
6356 struct hwrm_cfa_eem_cfg_output {
6365 /* hwrm_cfa_eem_qcfg_input (size:192b/24B) */
6366 struct hwrm_cfa_eem_qcfg_input {
6373 #define CFA_EEM_QCFG_REQ_FLAGS_PATH_TX 0x1UL
6374 #define CFA_EEM_QCFG_REQ_FLAGS_PATH_RX 0x2UL
6378 /* hwrm_cfa_eem_qcfg_output (size:192b/24B) */
6379 struct hwrm_cfa_eem_qcfg_output {
6385 #define CFA_EEM_QCFG_RESP_FLAGS_PATH_TX 0x1UL
6386 #define CFA_EEM_QCFG_RESP_FLAGS_PATH_RX 0x2UL
6387 #define CFA_EEM_QCFG_RESP_FLAGS_PREFERRED_OFFLOAD 0x4UL
6393 /* hwrm_cfa_eem_op_input (size:192b/24B) */
6394 struct hwrm_cfa_eem_op_input {
6401 #define CFA_EEM_OP_REQ_FLAGS_PATH_TX 0x1UL
6402 #define CFA_EEM_OP_REQ_FLAGS_PATH_RX 0x2UL
6405 #define CFA_EEM_OP_REQ_OP_RESERVED 0x0UL
6406 #define CFA_EEM_OP_REQ_OP_EEM_DISABLE 0x1UL
6407 #define CFA_EEM_OP_REQ_OP_EEM_ENABLE 0x2UL
6408 #define CFA_EEM_OP_REQ_OP_EEM_CLEANUP 0x3UL
6409 #define CFA_EEM_OP_REQ_OP_LAST CFA_EEM_OP_REQ_OP_EEM_CLEANUP
6412 /* hwrm_cfa_eem_op_output (size:128b/16B) */
6413 struct hwrm_cfa_eem_op_output {
6422 /* hwrm_cfa_adv_flow_mgnt_qcaps_input (size:256b/32B) */
6423 struct hwrm_cfa_adv_flow_mgnt_qcaps_input {
6432 /* hwrm_cfa_adv_flow_mgnt_qcaps_output (size:128b/16B) */
6433 struct hwrm_cfa_adv_flow_mgnt_qcaps_output {
6439 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_HND_16BIT_SUPPORTED 0x1UL
6440 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_HND_64BIT_SUPPORTED 0x2UL
6441 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_BATCH_DELETE_SUPPORTED 0x4UL
6442 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_RESET_ALL_SUPPORTED 0x8UL
6443 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_NTUPLE_FLOW_DEST_FUNC_SUPPORTED 0x10UL
6444 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_TX_EEM_FLOW_SUPPORTED 0x20UL
6445 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RX_EEM_FLOW_SUPPORTED 0x40UL
6446 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_FLOW_COUNTER_ALLOC_SUPPORTED 0x80UL
6447 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_RFS_RING_TBL_IDX_SUPPORTED 0x100UL
6448 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_UNTAGGED_VLAN_SUPPORTED 0x200UL
6449 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_XDP_SUPPORTED 0x400UL
6450 #define CFA_ADV_FLOW_MGNT_QCAPS_RESP_FLAGS_L2_HEADER_SOURCE_FIELDS_SUPPORTED 0x800UL
6455 /* hwrm_tunnel_dst_port_query_input (size:192b/24B) */
6456 struct hwrm_tunnel_dst_port_query_input {
6463 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN 0x1UL
6464 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_GENEVE 0x5UL
6465 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL
6466 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL
6467 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL
6468 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
6469 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_LAST TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN_GPE_V6
6473 /* hwrm_tunnel_dst_port_query_output (size:128b/16B) */
6474 struct hwrm_tunnel_dst_port_query_output {
6479 __le16 tunnel_dst_port_id;
6480 __be16 tunnel_dst_port_val;
6485 /* hwrm_tunnel_dst_port_alloc_input (size:192b/24B) */
6486 struct hwrm_tunnel_dst_port_alloc_input {
6493 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL
6494 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL
6495 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL
6496 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL
6497 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL
6498 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
6499 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_LAST TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN_GPE_V6
6501 __be16 tunnel_dst_port_val;
6505 /* hwrm_tunnel_dst_port_alloc_output (size:128b/16B) */
6506 struct hwrm_tunnel_dst_port_alloc_output {
6511 __le16 tunnel_dst_port_id;
6516 /* hwrm_tunnel_dst_port_free_input (size:192b/24B) */
6517 struct hwrm_tunnel_dst_port_free_input {
6524 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN 0x1UL
6525 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_GENEVE 0x5UL
6526 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_V4 0x9UL
6527 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_IPGRE_V1 0xaUL
6528 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_L2_ETYPE 0xbUL
6529 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_GPE_V6 0xcUL
6530 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_LAST TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN_GPE_V6
6532 __le16 tunnel_dst_port_id;
6536 /* hwrm_tunnel_dst_port_free_output (size:128b/16B) */
6537 struct hwrm_tunnel_dst_port_free_output {
6546 /* ctx_hw_stats (size:1280b/160B) */
6547 struct ctx_hw_stats {
6548 __le64 rx_ucast_pkts;
6549 __le64 rx_mcast_pkts;
6550 __le64 rx_bcast_pkts;
6551 __le64 rx_discard_pkts;
6552 __le64 rx_drop_pkts;
6553 __le64 rx_ucast_bytes;
6554 __le64 rx_mcast_bytes;
6555 __le64 rx_bcast_bytes;
6556 __le64 tx_ucast_pkts;
6557 __le64 tx_mcast_pkts;
6558 __le64 tx_bcast_pkts;
6559 __le64 tx_discard_pkts;
6560 __le64 tx_drop_pkts;
6561 __le64 tx_ucast_bytes;
6562 __le64 tx_mcast_bytes;
6563 __le64 tx_bcast_bytes;
6570 /* hwrm_stat_ctx_alloc_input (size:256b/32B) */
6571 struct hwrm_stat_ctx_alloc_input {
6577 __le64 stats_dma_addr;
6578 __le32 update_period_ms;
6580 #define STAT_CTX_ALLOC_REQ_STAT_CTX_FLAGS_ROCE 0x1UL
6584 /* hwrm_stat_ctx_alloc_output (size:128b/16B) */
6585 struct hwrm_stat_ctx_alloc_output {
6595 /* hwrm_stat_ctx_free_input (size:192b/24B) */
6596 struct hwrm_stat_ctx_free_input {
6606 /* hwrm_stat_ctx_free_output (size:128b/16B) */
6607 struct hwrm_stat_ctx_free_output {
6617 /* hwrm_stat_ctx_query_input (size:192b/24B) */
6618 struct hwrm_stat_ctx_query_input {
6628 /* hwrm_stat_ctx_query_output (size:1408b/176B) */
6629 struct hwrm_stat_ctx_query_output {
6634 __le64 tx_ucast_pkts;
6635 __le64 tx_mcast_pkts;
6636 __le64 tx_bcast_pkts;
6638 __le64 tx_drop_pkts;
6639 __le64 tx_ucast_bytes;
6640 __le64 tx_mcast_bytes;
6641 __le64 tx_bcast_bytes;
6642 __le64 rx_ucast_pkts;
6643 __le64 rx_mcast_pkts;
6644 __le64 rx_bcast_pkts;
6646 __le64 rx_drop_pkts;
6647 __le64 rx_ucast_bytes;
6648 __le64 rx_mcast_bytes;
6649 __le64 rx_bcast_bytes;
6651 __le64 rx_agg_bytes;
6652 __le64 rx_agg_events;
6653 __le64 rx_agg_aborts;
6658 /* hwrm_stat_ctx_clr_stats_input (size:192b/24B) */
6659 struct hwrm_stat_ctx_clr_stats_input {
6669 /* hwrm_stat_ctx_clr_stats_output (size:128b/16B) */
6670 struct hwrm_stat_ctx_clr_stats_output {
6679 /* hwrm_pcie_qstats_input (size:256b/32B) */
6680 struct hwrm_pcie_qstats_input {
6686 __le16 pcie_stat_size;
6688 __le64 pcie_stat_host_addr;
6691 /* hwrm_pcie_qstats_output (size:128b/16B) */
6692 struct hwrm_pcie_qstats_output {
6697 __le16 pcie_stat_size;
6702 /* pcie_ctx_hw_stats (size:768b/96B) */
6703 struct pcie_ctx_hw_stats {
6704 __le64 pcie_pl_signal_integrity;
6705 __le64 pcie_dl_signal_integrity;
6706 __le64 pcie_tl_signal_integrity;
6707 __le64 pcie_link_integrity;
6708 __le64 pcie_tx_traffic_rate;
6709 __le64 pcie_rx_traffic_rate;
6710 __le64 pcie_tx_dllp_statistics;
6711 __le64 pcie_rx_dllp_statistics;
6712 __le64 pcie_equalization_time;
6713 __le32 pcie_ltssm_histogram[4];
6714 __le64 pcie_recovery_histogram;
6717 /* hwrm_fw_reset_input (size:192b/24B) */
6718 struct hwrm_fw_reset_input {
6724 u8 embedded_proc_type;
6725 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_BOOT 0x0UL
6726 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_MGMT 0x1UL
6727 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_NETCTRL 0x2UL
6728 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_ROCE 0x3UL
6729 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST 0x4UL
6730 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_AP 0x5UL
6731 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_CHIP 0x6UL
6732 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST_RESOURCE_REINIT 0x7UL
6733 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_LAST FW_RESET_REQ_EMBEDDED_PROC_TYPE_HOST_RESOURCE_REINIT
6735 #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTNONE 0x0UL
6736 #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTASAP 0x1UL
6737 #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTPCIERST 0x2UL
6738 #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTIMMEDIATE 0x3UL
6739 #define FW_RESET_REQ_SELFRST_STATUS_LAST FW_RESET_REQ_SELFRST_STATUS_SELFRSTIMMEDIATE
6742 #define FW_RESET_REQ_FLAGS_RESET_GRACEFUL 0x1UL
6746 /* hwrm_fw_reset_output (size:128b/16B) */
6747 struct hwrm_fw_reset_output {
6753 #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTNONE 0x0UL
6754 #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTASAP 0x1UL
6755 #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTPCIERST 0x2UL
6756 #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTIMMEDIATE 0x3UL
6757 #define FW_RESET_RESP_SELFRST_STATUS_LAST FW_RESET_RESP_SELFRST_STATUS_SELFRSTIMMEDIATE
6762 /* hwrm_fw_qstatus_input (size:192b/24B) */
6763 struct hwrm_fw_qstatus_input {
6769 u8 embedded_proc_type;
6770 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_BOOT 0x0UL
6771 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_MGMT 0x1UL
6772 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_NETCTRL 0x2UL
6773 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_ROCE 0x3UL
6774 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_HOST 0x4UL
6775 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_AP 0x5UL
6776 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_CHIP 0x6UL
6777 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_LAST FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_CHIP
6781 /* hwrm_fw_qstatus_output (size:128b/16B) */
6782 struct hwrm_fw_qstatus_output {
6788 #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTNONE 0x0UL
6789 #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTASAP 0x1UL
6790 #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPCIERST 0x2UL
6791 #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPOWER 0x3UL
6792 #define FW_QSTATUS_RESP_SELFRST_STATUS_LAST FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPOWER
6797 /* hwrm_fw_set_time_input (size:256b/32B) */
6798 struct hwrm_fw_set_time_input {
6805 #define FW_SET_TIME_REQ_YEAR_UNKNOWN 0x0UL
6806 #define FW_SET_TIME_REQ_YEAR_LAST FW_SET_TIME_REQ_YEAR_UNKNOWN
6815 #define FW_SET_TIME_REQ_ZONE_UTC 0
6816 #define FW_SET_TIME_REQ_ZONE_UNKNOWN 65535
6817 #define FW_SET_TIME_REQ_ZONE_LAST FW_SET_TIME_REQ_ZONE_UNKNOWN
6821 /* hwrm_fw_set_time_output (size:128b/16B) */
6822 struct hwrm_fw_set_time_output {
6831 /* hwrm_struct_hdr (size:128b/16B) */
6832 struct hwrm_struct_hdr {
6834 #define STRUCT_HDR_STRUCT_ID_LLDP_CFG 0x41bUL
6835 #define STRUCT_HDR_STRUCT_ID_DCBX_ETS 0x41dUL
6836 #define STRUCT_HDR_STRUCT_ID_DCBX_PFC 0x41fUL
6837 #define STRUCT_HDR_STRUCT_ID_DCBX_APP 0x421UL
6838 #define STRUCT_HDR_STRUCT_ID_DCBX_FEATURE_STATE 0x422UL
6839 #define STRUCT_HDR_STRUCT_ID_LLDP_GENERIC 0x424UL
6840 #define STRUCT_HDR_STRUCT_ID_LLDP_DEVICE 0x426UL
6841 #define STRUCT_HDR_STRUCT_ID_POWER_BKUP 0x427UL
6842 #define STRUCT_HDR_STRUCT_ID_AFM_OPAQUE 0x1UL
6843 #define STRUCT_HDR_STRUCT_ID_PORT_DESCRIPTION 0xaUL
6844 #define STRUCT_HDR_STRUCT_ID_RSS_V2 0x64UL
6845 #define STRUCT_HDR_STRUCT_ID_LAST STRUCT_HDR_STRUCT_ID_RSS_V2
6851 #define STRUCT_HDR_NEXT_OFFSET_LAST 0x0UL
6855 /* hwrm_struct_data_dcbx_app (size:64b/8B) */
6856 struct hwrm_struct_data_dcbx_app {
6858 u8 protocol_selector;
6859 #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_ETHER_TYPE 0x1UL
6860 #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_PORT 0x2UL
6861 #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_UDP_PORT 0x3UL
6862 #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_UDP_PORT 0x4UL
6863 #define STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_LAST STRUCT_DATA_DCBX_APP_PROTOCOL_SELECTOR_TCP_UDP_PORT
6869 /* hwrm_fw_set_structured_data_input (size:256b/32B) */
6870 struct hwrm_fw_set_structured_data_input {
6876 __le64 src_data_addr;
6882 /* hwrm_fw_set_structured_data_output (size:128b/16B) */
6883 struct hwrm_fw_set_structured_data_output {
6892 /* hwrm_fw_set_structured_data_cmd_err (size:64b/8B) */
6893 struct hwrm_fw_set_structured_data_cmd_err {
6895 #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_UNKNOWN 0x0UL
6896 #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_HDR_CNT 0x1UL
6897 #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_FMT 0x2UL
6898 #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID 0x3UL
6899 #define FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_LAST FW_SET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID
6903 /* hwrm_fw_get_structured_data_input (size:256b/32B) */
6904 struct hwrm_fw_get_structured_data_input {
6910 __le64 dest_data_addr;
6912 __le16 structure_id;
6914 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_UNUSED 0x0UL
6915 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_ALL 0xffffUL
6916 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_ADMIN 0x100UL
6917 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_PEER 0x101UL
6918 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_OPERATIONAL 0x102UL
6919 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_ADMIN 0x200UL
6920 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_PEER 0x201UL
6921 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_OPERATIONAL 0x202UL
6922 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_HOST_OPERATIONAL 0x300UL
6923 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_LAST FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_HOST_OPERATIONAL
6928 /* hwrm_fw_get_structured_data_output (size:128b/16B) */
6929 struct hwrm_fw_get_structured_data_output {
6939 /* hwrm_fw_get_structured_data_cmd_err (size:64b/8B) */
6940 struct hwrm_fw_get_structured_data_cmd_err {
6942 #define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_UNKNOWN 0x0UL
6943 #define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID 0x3UL
6944 #define FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_LAST FW_GET_STRUCTURED_DATA_CMD_ERR_CODE_BAD_ID
6948 /* hwrm_exec_fwd_resp_input (size:1024b/128B) */
6949 struct hwrm_exec_fwd_resp_input {
6955 __le32 encap_request[26];
6956 __le16 encap_resp_target_id;
6960 /* hwrm_exec_fwd_resp_output (size:128b/16B) */
6961 struct hwrm_exec_fwd_resp_output {
6970 /* hwrm_reject_fwd_resp_input (size:1024b/128B) */
6971 struct hwrm_reject_fwd_resp_input {
6977 __le32 encap_request[26];
6978 __le16 encap_resp_target_id;
6982 /* hwrm_reject_fwd_resp_output (size:128b/16B) */
6983 struct hwrm_reject_fwd_resp_output {
6992 /* hwrm_fwd_resp_input (size:1024b/128B) */
6993 struct hwrm_fwd_resp_input {
6999 __le16 encap_resp_target_id;
7000 __le16 encap_resp_cmpl_ring;
7001 __le16 encap_resp_len;
7004 __le64 encap_resp_addr;
7005 __le32 encap_resp[24];
7008 /* hwrm_fwd_resp_output (size:128b/16B) */
7009 struct hwrm_fwd_resp_output {
7018 /* hwrm_fwd_async_event_cmpl_input (size:320b/40B) */
7019 struct hwrm_fwd_async_event_cmpl_input {
7025 __le16 encap_async_event_target_id;
7027 __le32 encap_async_event_cmpl[4];
7030 /* hwrm_fwd_async_event_cmpl_output (size:128b/16B) */
7031 struct hwrm_fwd_async_event_cmpl_output {
7040 /* hwrm_temp_monitor_query_input (size:128b/16B) */
7041 struct hwrm_temp_monitor_query_input {
7049 /* hwrm_temp_monitor_query_output (size:128b/16B) */
7050 struct hwrm_temp_monitor_query_output {
7060 /* hwrm_wol_filter_alloc_input (size:512b/64B) */
7061 struct hwrm_wol_filter_alloc_input {
7069 #define WOL_FILTER_ALLOC_REQ_ENABLES_MAC_ADDRESS 0x1UL
7070 #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_OFFSET 0x2UL
7071 #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_BUF_SIZE 0x4UL
7072 #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_BUF_ADDR 0x8UL
7073 #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_MASK_ADDR 0x10UL
7074 #define WOL_FILTER_ALLOC_REQ_ENABLES_PATTERN_MASK_SIZE 0x20UL
7077 #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_MAGICPKT 0x0UL
7078 #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_BMP 0x1UL
7079 #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_INVALID 0xffUL
7080 #define WOL_FILTER_ALLOC_REQ_WOL_TYPE_LAST WOL_FILTER_ALLOC_REQ_WOL_TYPE_INVALID
7083 __le16 pattern_offset;
7084 __le16 pattern_buf_size;
7085 __le16 pattern_mask_size;
7087 __le64 pattern_buf_addr;
7088 __le64 pattern_mask_addr;
7091 /* hwrm_wol_filter_alloc_output (size:128b/16B) */
7092 struct hwrm_wol_filter_alloc_output {
7102 /* hwrm_wol_filter_free_input (size:256b/32B) */
7103 struct hwrm_wol_filter_free_input {
7110 #define WOL_FILTER_FREE_REQ_FLAGS_FREE_ALL_WOL_FILTERS 0x1UL
7112 #define WOL_FILTER_FREE_REQ_ENABLES_WOL_FILTER_ID 0x1UL
7118 /* hwrm_wol_filter_free_output (size:128b/16B) */
7119 struct hwrm_wol_filter_free_output {
7128 /* hwrm_wol_filter_qcfg_input (size:448b/56B) */
7129 struct hwrm_wol_filter_qcfg_input {
7138 __le64 pattern_buf_addr;
7139 __le16 pattern_buf_size;
7141 __le64 pattern_mask_addr;
7142 __le16 pattern_mask_size;
7146 /* hwrm_wol_filter_qcfg_output (size:256b/32B) */
7147 struct hwrm_wol_filter_qcfg_output {
7155 #define WOL_FILTER_QCFG_RESP_WOL_TYPE_MAGICPKT 0x0UL
7156 #define WOL_FILTER_QCFG_RESP_WOL_TYPE_BMP 0x1UL
7157 #define WOL_FILTER_QCFG_RESP_WOL_TYPE_INVALID 0xffUL
7158 #define WOL_FILTER_QCFG_RESP_WOL_TYPE_LAST WOL_FILTER_QCFG_RESP_WOL_TYPE_INVALID
7161 __le16 pattern_offset;
7162 __le16 pattern_size;
7163 __le16 pattern_mask_size;
7168 /* hwrm_wol_reason_qcfg_input (size:320b/40B) */
7169 struct hwrm_wol_reason_qcfg_input {
7177 __le64 wol_pkt_buf_addr;
7178 __le16 wol_pkt_buf_size;
7182 /* hwrm_wol_reason_qcfg_output (size:128b/16B) */
7183 struct hwrm_wol_reason_qcfg_output {
7190 #define WOL_REASON_QCFG_RESP_WOL_REASON_MAGICPKT 0x0UL
7191 #define WOL_REASON_QCFG_RESP_WOL_REASON_BMP 0x1UL
7192 #define WOL_REASON_QCFG_RESP_WOL_REASON_INVALID 0xffUL
7193 #define WOL_REASON_QCFG_RESP_WOL_REASON_LAST WOL_REASON_QCFG_RESP_WOL_REASON_INVALID
7199 /* coredump_segment_record (size:128b/16B) */
7200 struct coredump_segment_record {
7201 __le16 component_id;
7203 __le16 max_instances;
7210 /* hwrm_dbg_coredump_list_input (size:256b/32B) */
7211 struct hwrm_dbg_coredump_list_input {
7217 __le64 host_dest_addr;
7218 __le32 host_buf_len;
7221 #define DBG_COREDUMP_LIST_REQ_FLAGS_CRASHDUMP 0x1UL
7225 /* hwrm_dbg_coredump_list_output (size:128b/16B) */
7226 struct hwrm_dbg_coredump_list_output {
7232 #define DBG_COREDUMP_LIST_RESP_FLAGS_MORE 0x1UL
7234 __le16 total_segments;
7240 /* hwrm_dbg_coredump_initiate_input (size:256b/32B) */
7241 struct hwrm_dbg_coredump_initiate_input {
7247 __le16 component_id;
7255 /* hwrm_dbg_coredump_initiate_output (size:128b/16B) */
7256 struct hwrm_dbg_coredump_initiate_output {
7265 /* coredump_data_hdr (size:128b/16B) */
7266 struct coredump_data_hdr {
7268 __le32 flags_length;
7273 /* hwrm_dbg_coredump_retrieve_input (size:448b/56B) */
7274 struct hwrm_dbg_coredump_retrieve_input {
7280 __le64 host_dest_addr;
7281 __le32 host_buf_len;
7283 __le16 component_id;
7295 /* hwrm_dbg_coredump_retrieve_output (size:128b/16B) */
7296 struct hwrm_dbg_coredump_retrieve_output {
7302 #define DBG_COREDUMP_RETRIEVE_RESP_FLAGS_MORE 0x1UL
7309 /* hwrm_dbg_ring_info_get_input (size:192b/24B) */
7310 struct hwrm_dbg_ring_info_get_input {
7317 #define DBG_RING_INFO_GET_REQ_RING_TYPE_L2_CMPL 0x0UL
7318 #define DBG_RING_INFO_GET_REQ_RING_TYPE_TX 0x1UL
7319 #define DBG_RING_INFO_GET_REQ_RING_TYPE_RX 0x2UL
7320 #define DBG_RING_INFO_GET_REQ_RING_TYPE_LAST DBG_RING_INFO_GET_REQ_RING_TYPE_RX
7325 /* hwrm_dbg_ring_info_get_output (size:192b/24B) */
7326 struct hwrm_dbg_ring_info_get_output {
7331 __le32 producer_index;
7332 __le32 consumer_index;
7337 /* hwrm_nvm_read_input (size:320b/40B) */
7338 struct hwrm_nvm_read_input {
7344 __le64 host_dest_addr;
7352 /* hwrm_nvm_read_output (size:128b/16B) */
7353 struct hwrm_nvm_read_output {
7362 /* hwrm_nvm_get_dir_entries_input (size:192b/24B) */
7363 struct hwrm_nvm_get_dir_entries_input {
7369 __le64 host_dest_addr;
7372 /* hwrm_nvm_get_dir_entries_output (size:128b/16B) */
7373 struct hwrm_nvm_get_dir_entries_output {
7382 /* hwrm_nvm_get_dir_info_input (size:128b/16B) */
7383 struct hwrm_nvm_get_dir_info_input {
7391 /* hwrm_nvm_get_dir_info_output (size:192b/24B) */
7392 struct hwrm_nvm_get_dir_info_output {
7398 __le32 entry_length;
7403 /* hwrm_nvm_write_input (size:384b/48B) */
7404 struct hwrm_nvm_write_input {
7410 __le64 host_src_addr;
7415 __le32 dir_data_length;
7418 #define NVM_WRITE_REQ_FLAGS_KEEP_ORIG_ACTIVE_IMG 0x1UL
7419 __le32 dir_item_length;
7423 /* hwrm_nvm_write_output (size:128b/16B) */
7424 struct hwrm_nvm_write_output {
7429 __le32 dir_item_length;
7435 /* hwrm_nvm_write_cmd_err (size:64b/8B) */
7436 struct hwrm_nvm_write_cmd_err {
7438 #define NVM_WRITE_CMD_ERR_CODE_UNKNOWN 0x0UL
7439 #define NVM_WRITE_CMD_ERR_CODE_FRAG_ERR 0x1UL
7440 #define NVM_WRITE_CMD_ERR_CODE_NO_SPACE 0x2UL
7441 #define NVM_WRITE_CMD_ERR_CODE_LAST NVM_WRITE_CMD_ERR_CODE_NO_SPACE
7445 /* hwrm_nvm_modify_input (size:320b/40B) */
7446 struct hwrm_nvm_modify_input {
7452 __le64 host_src_addr;
7460 /* hwrm_nvm_modify_output (size:128b/16B) */
7461 struct hwrm_nvm_modify_output {
7470 /* hwrm_nvm_find_dir_entry_input (size:256b/32B) */
7471 struct hwrm_nvm_find_dir_entry_input {
7478 #define NVM_FIND_DIR_ENTRY_REQ_ENABLES_DIR_IDX_VALID 0x1UL
7484 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_MASK 0x3UL
7485 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_SFT 0
7486 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_EQ 0x0UL
7487 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GE 0x1UL
7488 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GT 0x2UL
7489 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_LAST NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GT
7493 /* hwrm_nvm_find_dir_entry_output (size:256b/32B) */
7494 struct hwrm_nvm_find_dir_entry_output {
7499 __le32 dir_item_length;
7500 __le32 dir_data_length;
7508 /* hwrm_nvm_erase_dir_entry_input (size:192b/24B) */
7509 struct hwrm_nvm_erase_dir_entry_input {
7519 /* hwrm_nvm_erase_dir_entry_output (size:128b/16B) */
7520 struct hwrm_nvm_erase_dir_entry_output {
7529 /* hwrm_nvm_get_dev_info_input (size:128b/16B) */
7530 struct hwrm_nvm_get_dev_info_input {
7538 /* hwrm_nvm_get_dev_info_output (size:256b/32B) */
7539 struct hwrm_nvm_get_dev_info_output {
7544 __le16 manufacturer_id;
7548 __le32 reserved_size;
7549 __le32 available_size;
7556 /* hwrm_nvm_mod_dir_entry_input (size:256b/32B) */
7557 struct hwrm_nvm_mod_dir_entry_input {
7564 #define NVM_MOD_DIR_ENTRY_REQ_ENABLES_CHECKSUM 0x1UL
7572 /* hwrm_nvm_mod_dir_entry_output (size:128b/16B) */
7573 struct hwrm_nvm_mod_dir_entry_output {
7582 /* hwrm_nvm_verify_update_input (size:192b/24B) */
7583 struct hwrm_nvm_verify_update_input {
7595 /* hwrm_nvm_verify_update_output (size:128b/16B) */
7596 struct hwrm_nvm_verify_update_output {
7605 /* hwrm_nvm_install_update_input (size:192b/24B) */
7606 struct hwrm_nvm_install_update_input {
7612 __le32 install_type;
7613 #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_NORMAL 0x0UL
7614 #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_ALL 0xffffffffUL
7615 #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_LAST NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_ALL
7617 #define NVM_INSTALL_UPDATE_REQ_FLAGS_ERASE_UNUSED_SPACE 0x1UL
7618 #define NVM_INSTALL_UPDATE_REQ_FLAGS_REMOVE_UNUSED_PKG 0x2UL
7619 #define NVM_INSTALL_UPDATE_REQ_FLAGS_ALLOWED_TO_DEFRAG 0x4UL
7623 /* hwrm_nvm_install_update_output (size:192b/24B) */
7624 struct hwrm_nvm_install_update_output {
7629 __le64 installed_items;
7631 #define NVM_INSTALL_UPDATE_RESP_RESULT_SUCCESS 0x0UL
7632 #define NVM_INSTALL_UPDATE_RESP_RESULT_LAST NVM_INSTALL_UPDATE_RESP_RESULT_SUCCESS
7634 #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_NONE 0x0UL
7635 #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_PACKAGE 0xffUL
7636 #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_LAST NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_PACKAGE
7638 #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_NONE 0x0UL
7639 #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_PCI 0x1UL
7640 #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_POWER 0x2UL
7641 #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_LAST NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_POWER
7646 /* hwrm_nvm_install_update_cmd_err (size:64b/8B) */
7647 struct hwrm_nvm_install_update_cmd_err {
7649 #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_UNKNOWN 0x0UL
7650 #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_FRAG_ERR 0x1UL
7651 #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_SPACE 0x2UL
7652 #define NVM_INSTALL_UPDATE_CMD_ERR_CODE_LAST NVM_INSTALL_UPDATE_CMD_ERR_CODE_NO_SPACE
7656 /* hwrm_nvm_get_variable_input (size:320b/40B) */
7657 struct hwrm_nvm_get_variable_input {
7663 __le64 dest_data_addr;
7666 #define NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_0 0x0UL
7667 #define NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 0xffffUL
7668 #define NVM_GET_VARIABLE_REQ_OPTION_NUM_LAST NVM_GET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF
7675 #define NVM_GET_VARIABLE_REQ_FLAGS_FACTORY_DFLT 0x1UL
7679 /* hwrm_nvm_get_variable_output (size:128b/16B) */
7680 struct hwrm_nvm_get_variable_output {
7687 #define NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_0 0x0UL
7688 #define NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_FFFF 0xffffUL
7689 #define NVM_GET_VARIABLE_RESP_OPTION_NUM_LAST NVM_GET_VARIABLE_RESP_OPTION_NUM_RSVD_FFFF
7694 /* hwrm_nvm_get_variable_cmd_err (size:64b/8B) */
7695 struct hwrm_nvm_get_variable_cmd_err {
7697 #define NVM_GET_VARIABLE_CMD_ERR_CODE_UNKNOWN 0x0UL
7698 #define NVM_GET_VARIABLE_CMD_ERR_CODE_VAR_NOT_EXIST 0x1UL
7699 #define NVM_GET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR 0x2UL
7700 #define NVM_GET_VARIABLE_CMD_ERR_CODE_LEN_TOO_SHORT 0x3UL
7701 #define NVM_GET_VARIABLE_CMD_ERR_CODE_LAST NVM_GET_VARIABLE_CMD_ERR_CODE_LEN_TOO_SHORT
7705 /* hwrm_nvm_set_variable_input (size:320b/40B) */
7706 struct hwrm_nvm_set_variable_input {
7712 __le64 src_data_addr;
7715 #define NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_0 0x0UL
7716 #define NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF 0xffffUL
7717 #define NVM_SET_VARIABLE_REQ_OPTION_NUM_LAST NVM_SET_VARIABLE_REQ_OPTION_NUM_RSVD_FFFF
7724 #define NVM_SET_VARIABLE_REQ_FLAGS_FORCE_FLUSH 0x1UL
7725 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_MASK 0xeUL
7726 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_SFT 1
7727 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_NONE (0x0UL << 1)
7728 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1 (0x1UL << 1)
7729 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_AES256 (0x2UL << 1)
7730 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1_AUTH (0x3UL << 1)
7731 #define NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_LAST NVM_SET_VARIABLE_REQ_FLAGS_ENCRYPT_MODE_HMAC_SHA1_AUTH
7735 /* hwrm_nvm_set_variable_output (size:128b/16B) */
7736 struct hwrm_nvm_set_variable_output {
7745 /* hwrm_nvm_set_variable_cmd_err (size:64b/8B) */
7746 struct hwrm_nvm_set_variable_cmd_err {
7748 #define NVM_SET_VARIABLE_CMD_ERR_CODE_UNKNOWN 0x0UL
7749 #define NVM_SET_VARIABLE_CMD_ERR_CODE_VAR_NOT_EXIST 0x1UL
7750 #define NVM_SET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR 0x2UL
7751 #define NVM_SET_VARIABLE_CMD_ERR_CODE_LAST NVM_SET_VARIABLE_CMD_ERR_CODE_CORRUPT_VAR
7755 /* hwrm_selftest_qlist_input (size:128b/16B) */
7756 struct hwrm_selftest_qlist_input {
7764 /* hwrm_selftest_qlist_output (size:2240b/280B) */
7765 struct hwrm_selftest_qlist_output {
7772 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_NVM_TEST 0x1UL
7773 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_LINK_TEST 0x2UL
7774 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_REGISTER_TEST 0x4UL
7775 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_MEMORY_TEST 0x8UL
7776 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_PCIE_SERDES_TEST 0x10UL
7777 #define SELFTEST_QLIST_RESP_AVAILABLE_TESTS_ETHERNET_SERDES_TEST 0x20UL
7779 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_NVM_TEST 0x1UL
7780 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_LINK_TEST 0x2UL
7781 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_REGISTER_TEST 0x4UL
7782 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_MEMORY_TEST 0x8UL
7783 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_PCIE_SERDES_TEST 0x10UL
7784 #define SELFTEST_QLIST_RESP_OFFLINE_TESTS_ETHERNET_SERDES_TEST 0x20UL
7786 __le16 test_timeout;
7788 char test0_name[32];
7789 char test1_name[32];
7790 char test2_name[32];
7791 char test3_name[32];
7792 char test4_name[32];
7793 char test5_name[32];
7794 char test6_name[32];
7795 char test7_name[32];
7800 /* hwrm_selftest_exec_input (size:192b/24B) */
7801 struct hwrm_selftest_exec_input {
7808 #define SELFTEST_EXEC_REQ_FLAGS_NVM_TEST 0x1UL
7809 #define SELFTEST_EXEC_REQ_FLAGS_LINK_TEST 0x2UL
7810 #define SELFTEST_EXEC_REQ_FLAGS_REGISTER_TEST 0x4UL
7811 #define SELFTEST_EXEC_REQ_FLAGS_MEMORY_TEST 0x8UL
7812 #define SELFTEST_EXEC_REQ_FLAGS_PCIE_SERDES_TEST 0x10UL
7813 #define SELFTEST_EXEC_REQ_FLAGS_ETHERNET_SERDES_TEST 0x20UL
7817 /* hwrm_selftest_exec_output (size:128b/16B) */
7818 struct hwrm_selftest_exec_output {
7824 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_NVM_TEST 0x1UL
7825 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_LINK_TEST 0x2UL
7826 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_REGISTER_TEST 0x4UL
7827 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_MEMORY_TEST 0x8UL
7828 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_PCIE_SERDES_TEST 0x10UL
7829 #define SELFTEST_EXEC_RESP_REQUESTED_TESTS_ETHERNET_SERDES_TEST 0x20UL
7831 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_NVM_TEST 0x1UL
7832 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_LINK_TEST 0x2UL
7833 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_REGISTER_TEST 0x4UL
7834 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_MEMORY_TEST 0x8UL
7835 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_PCIE_SERDES_TEST 0x10UL
7836 #define SELFTEST_EXEC_RESP_TEST_SUCCESS_ETHERNET_SERDES_TEST 0x20UL
7841 /* hwrm_selftest_irq_input (size:128b/16B) */
7842 struct hwrm_selftest_irq_input {
7850 /* hwrm_selftest_irq_output (size:128b/16B) */
7851 struct hwrm_selftest_irq_output {
7860 #endif /* _BNXT_HSI_H_ */