1 /* Broadcom NetXtreme-C/E network driver.
3 * Copyright (c) 2014-2016 Broadcom Corporation
4 * Copyright (c) 2016 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.
14 /* HSI and HWRM Specification 1.6.0 */
15 #define HWRM_VERSION_MAJOR 1
16 #define HWRM_VERSION_MINOR 6
17 #define HWRM_VERSION_UPDATE 0
19 #define HWRM_VERSION_STR "1.6.0"
21 * Following is the signature for HWRM message field that indicates not
22 * applicable (All F's). Need to cast it the size of the field if needed.
24 #define HWRM_NA_SIGNATURE ((__le32)(-1))
25 #define HWRM_MAX_REQ_LEN (128) /* hwrm_func_buf_rgtr */
26 #define HWRM_MAX_RESP_LEN (176) /* hwrm_func_qstats */
27 #define HW_HASH_INDEX_SIZE 0x80 /* 7 bit indirection table index. */
28 #define HW_HASH_KEY_SIZE 40
29 #define HWRM_RESP_VALID_KEY 1 /* valid key for HWRM response */
31 /* Statistics Ejection Buffer Completion Record (16 bytes) */
34 #define EJECT_CMPL_TYPE_MASK 0x3fUL
35 #define EJECT_CMPL_TYPE_SFT 0
36 #define EJECT_CMPL_TYPE_STAT_EJECT 0x1aUL
40 #define EJECT_CMPL_V 0x1UL
44 /* HWRM Completion Record (16 bytes) */
47 #define CMPL_TYPE_MASK 0x3fUL
48 #define CMPL_TYPE_SFT 0
49 #define CMPL_TYPE_HWRM_DONE 0x20UL
57 /* HWRM Forwarded Request (16 bytes) */
58 struct hwrm_fwd_req_cmpl {
60 #define FWD_REQ_CMPL_TYPE_MASK 0x3fUL
61 #define FWD_REQ_CMPL_TYPE_SFT 0
62 #define FWD_REQ_CMPL_TYPE_HWRM_FWD_REQ 0x22UL
63 #define FWD_REQ_CMPL_REQ_LEN_MASK 0xffc0UL
64 #define FWD_REQ_CMPL_REQ_LEN_SFT 6
67 __le32 req_buf_addr_v[2];
68 #define FWD_REQ_CMPL_V 0x1UL
69 #define FWD_REQ_CMPL_REQ_BUF_ADDR_MASK 0xfffffffeUL
70 #define FWD_REQ_CMPL_REQ_BUF_ADDR_SFT 1
73 /* HWRM Forwarded Response (16 bytes) */
74 struct hwrm_fwd_resp_cmpl {
76 #define FWD_RESP_CMPL_TYPE_MASK 0x3fUL
77 #define FWD_RESP_CMPL_TYPE_SFT 0
78 #define FWD_RESP_CMPL_TYPE_HWRM_FWD_RESP 0x24UL
82 __le32 resp_buf_addr_v[2];
83 #define FWD_RESP_CMPL_V 0x1UL
84 #define FWD_RESP_CMPL_RESP_BUF_ADDR_MASK 0xfffffffeUL
85 #define FWD_RESP_CMPL_RESP_BUF_ADDR_SFT 1
88 /* HWRM Asynchronous Event Completion Record (16 bytes) */
89 struct hwrm_async_event_cmpl {
91 #define ASYNC_EVENT_CMPL_TYPE_MASK 0x3fUL
92 #define ASYNC_EVENT_CMPL_TYPE_SFT 0
93 #define ASYNC_EVENT_CMPL_TYPE_HWRM_ASYNC_EVENT 0x2eUL
95 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_STATUS_CHANGE 0x0UL
96 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_MTU_CHANGE 0x1UL
97 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CHANGE 0x2UL
98 #define ASYNC_EVENT_CMPL_EVENT_ID_DCB_CONFIG_CHANGE 0x3UL
99 #define ASYNC_EVENT_CMPL_EVENT_ID_PORT_CONN_NOT_ALLOWED 0x4UL
100 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_NOT_ALLOWED 0x5UL
101 #define ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_CHANGE 0x6UL
102 #define ASYNC_EVENT_CMPL_EVENT_ID_PORT_PHY_CFG_CHANGE 0x7UL
103 #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_UNLOAD 0x10UL
104 #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_DRVR_LOAD 0x11UL
105 #define ASYNC_EVENT_CMPL_EVENT_ID_FUNC_FLR_PROC_CMPLT 0x12UL
106 #define ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_UNLOAD 0x20UL
107 #define ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_LOAD 0x21UL
108 #define ASYNC_EVENT_CMPL_EVENT_ID_VF_FLR 0x30UL
109 #define ASYNC_EVENT_CMPL_EVENT_ID_VF_MAC_ADDR_CHANGE 0x31UL
110 #define ASYNC_EVENT_CMPL_EVENT_ID_PF_VF_COMM_STATUS_CHANGE 0x32UL
111 #define ASYNC_EVENT_CMPL_EVENT_ID_VF_CFG_CHANGE 0x33UL
112 #define ASYNC_EVENT_CMPL_EVENT_ID_HWRM_ERROR 0xffUL
115 #define ASYNC_EVENT_CMPL_V 0x1UL
116 #define ASYNC_EVENT_CMPL_OPAQUE_MASK 0xfeUL
117 #define ASYNC_EVENT_CMPL_OPAQUE_SFT 1
123 /* HWRM Asynchronous Event Completion Record for link status change (16 bytes) */
124 struct hwrm_async_event_cmpl_link_status_change {
126 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_MASK 0x3fUL
127 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_SFT 0
128 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL
130 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_ID_LINK_STATUS_CHANGE 0x0UL
133 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_V 0x1UL
134 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_OPAQUE_MASK 0xfeUL
135 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_OPAQUE_SFT 1
139 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE 0x1UL
140 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_DOWN (0x0UL << 0)
141 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_UP (0x1UL << 0)
142 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_LAST ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_LINK_CHANGE_UP
143 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_MASK 0xeUL
144 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_SFT 1
145 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_ID_MASK 0xffff0UL
146 #define ASYNC_EVENT_CMPL_LINK_STATUS_CHANGE_EVENT_DATA1_PORT_ID_SFT 4
149 /* HWRM Asynchronous Event Completion Record for link MTU change (16 bytes) */
150 struct hwrm_async_event_cmpl_link_mtu_change {
152 #define ASYNC_EVENT_CMPL_LINK_MTU_CHANGE_TYPE_MASK 0x3fUL
153 #define ASYNC_EVENT_CMPL_LINK_MTU_CHANGE_TYPE_SFT 0
154 #define ASYNC_EVENT_CMPL_LINK_MTU_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL
156 #define ASYNC_EVENT_CMPL_LINK_MTU_CHANGE_EVENT_ID_LINK_MTU_CHANGE 0x1UL
159 #define ASYNC_EVENT_CMPL_LINK_MTU_CHANGE_V 0x1UL
160 #define ASYNC_EVENT_CMPL_LINK_MTU_CHANGE_OPAQUE_MASK 0xfeUL
161 #define ASYNC_EVENT_CMPL_LINK_MTU_CHANGE_OPAQUE_SFT 1
165 #define ASYNC_EVENT_CMPL_LINK_MTU_CHANGE_EVENT_DATA1_NEW_MTU_MASK 0xffffUL
166 #define ASYNC_EVENT_CMPL_LINK_MTU_CHANGE_EVENT_DATA1_NEW_MTU_SFT 0
169 /* HWRM Asynchronous Event Completion Record for link speed change (16 bytes) */
170 struct hwrm_async_event_cmpl_link_speed_change {
172 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_TYPE_MASK 0x3fUL
173 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_TYPE_SFT 0
174 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL
176 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_ID_LINK_SPEED_CHANGE 0x2UL
179 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_V 0x1UL
180 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_OPAQUE_MASK 0xfeUL
181 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_OPAQUE_SFT 1
185 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_FORCE 0x1UL
186 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_NEW_LINK_SPEED_100MBPS_MASK 0xfffeUL
187 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_NEW_LINK_SPEED_100MBPS_SFT 1
188 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_NEW_LINK_SPEED_100MBPS_100MB (0x1UL << 1)
189 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_NEW_LINK_SPEED_100MBPS_1GB (0xaUL << 1)
190 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_NEW_LINK_SPEED_100MBPS_2GB (0x14UL << 1)
191 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_NEW_LINK_SPEED_100MBPS_2_5GB (0x19UL << 1)
192 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_NEW_LINK_SPEED_100MBPS_10GB (0x64UL << 1)
193 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_NEW_LINK_SPEED_100MBPS_20GB (0xc8UL << 1)
194 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_NEW_LINK_SPEED_100MBPS_25GB (0xfaUL << 1)
195 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_NEW_LINK_SPEED_100MBPS_40GB (0x190UL << 1)
196 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_NEW_LINK_SPEED_100MBPS_50GB (0x1f4UL << 1)
197 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_NEW_LINK_SPEED_100MBPS_100GB (0x3e8UL << 1)
198 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_NEW_LINK_SPEED_100MBPS_LAST ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_NEW_LINK_SPEED_100MBPS_100GB
199 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_PORT_ID_MASK 0xffff0000UL
200 #define ASYNC_EVENT_CMPL_LINK_SPEED_CHANGE_EVENT_DATA1_PORT_ID_SFT 16
203 /* HWRM Asynchronous Event Completion Record for DCB Config change (16 bytes) */
204 struct hwrm_async_event_cmpl_dcb_config_change {
206 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_TYPE_MASK 0x3fUL
207 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_TYPE_SFT 0
208 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL
210 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_ID_DCB_CONFIG_CHANGE 0x3UL
212 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA2_ETS 0x1UL
213 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA2_PFC 0x2UL
214 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA2_APP 0x4UL
216 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_V 0x1UL
217 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_OPAQUE_MASK 0xfeUL
218 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_OPAQUE_SFT 1
222 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA1_PORT_ID_MASK 0xffffUL
223 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA1_PORT_ID_SFT 0
224 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA1_RECOMMEND_ROCE_PRIORITY_MASK 0xff0000UL
225 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA1_RECOMMEND_ROCE_PRIORITY_SFT 16
226 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA1_RECOMMEND_ROCE_PRIORITY_NONE (0xffUL << 16)
227 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA1_RECOMMEND_ROCE_PRIORITY_LAST ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA1_RECOMMEND_ROCE_PRIORITY_NONE
228 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA1_RECOMMEND_L2_PRIORITY_MASK 0xff000000UL
229 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA1_RECOMMEND_L2_PRIORITY_SFT 24
230 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA1_RECOMMEND_L2_PRIORITY_NONE (0xffUL << 24)
231 #define ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA1_RECOMMEND_L2_PRIORITY_LAST ASYNC_EVENT_CMPL_DCB_CONFIG_CHANGE_EVENT_DATA1_RECOMMEND_L2_PRIORITY_NONE
234 /* HWRM Asynchronous Event Completion Record for port connection not allowed (16 bytes) */
235 struct hwrm_async_event_cmpl_port_conn_not_allowed {
237 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_MASK 0x3fUL
238 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_SFT 0
239 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_TYPE_HWRM_ASYNC_EVENT 0x2eUL
241 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_ID_PORT_CONN_NOT_ALLOWED 0x4UL
244 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_V 0x1UL
245 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_OPAQUE_MASK 0xfeUL
246 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_OPAQUE_SFT 1
250 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_PORT_ID_MASK 0xffffUL
251 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_PORT_ID_SFT 0
252 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_MASK 0xff0000UL
253 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_SFT 16
254 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_NONE (0x0UL << 16)
255 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_DISABLETX (0x1UL << 16)
256 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_WARNINGMSG (0x2UL << 16)
257 #define ASYNC_EVENT_CMPL_PORT_CONN_NOT_ALLOWED_EVENT_DATA1_ENFORCEMENT_POLICY_PWRDOWN (0x3UL << 16)
258 #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
261 /* HWRM Asynchronous Event Completion Record for link speed config not allowed (16 bytes) */
262 struct hwrm_async_event_cmpl_link_speed_cfg_not_allowed {
264 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_NOT_ALLOWED_TYPE_MASK 0x3fUL
265 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_NOT_ALLOWED_TYPE_SFT 0
266 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_NOT_ALLOWED_TYPE_HWRM_ASYNC_EVENT 0x2eUL
268 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_NOT_ALLOWED_EVENT_ID_LINK_SPEED_CFG_NOT_ALLOWED 0x5UL
271 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_NOT_ALLOWED_V 0x1UL
272 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_NOT_ALLOWED_OPAQUE_MASK 0xfeUL
273 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_NOT_ALLOWED_OPAQUE_SFT 1
277 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_NOT_ALLOWED_EVENT_DATA1_PORT_ID_MASK 0xffffUL
278 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_NOT_ALLOWED_EVENT_DATA1_PORT_ID_SFT 0
281 /* HWRM Asynchronous Event Completion Record for link speed configuration change (16 bytes) */
282 struct hwrm_async_event_cmpl_link_speed_cfg_change {
284 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_MASK 0x3fUL
285 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_SFT 0
286 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL
288 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_ID_LINK_SPEED_CFG_CHANGE 0x6UL
291 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_V 0x1UL
292 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_OPAQUE_MASK 0xfeUL
293 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_OPAQUE_SFT 1
297 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_PORT_ID_MASK 0xffffUL
298 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_PORT_ID_SFT 0
299 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_SUPPORTED_LINK_SPEEDS_CHANGE 0x10000UL
300 #define ASYNC_EVENT_CMPL_LINK_SPEED_CFG_CHANGE_EVENT_DATA1_ILLEGAL_LINK_SPEED_CFG 0x20000UL
303 /* HWRM Asynchronous Event Completion Record for Function Driver Unload (16 bytes) */
304 struct hwrm_async_event_cmpl_func_drvr_unload {
306 #define ASYNC_EVENT_CMPL_FUNC_DRVR_UNLOAD_TYPE_MASK 0x3fUL
307 #define ASYNC_EVENT_CMPL_FUNC_DRVR_UNLOAD_TYPE_SFT 0
308 #define ASYNC_EVENT_CMPL_FUNC_DRVR_UNLOAD_TYPE_HWRM_ASYNC_EVENT 0x2eUL
310 #define ASYNC_EVENT_CMPL_FUNC_DRVR_UNLOAD_EVENT_ID_FUNC_DRVR_UNLOAD 0x10UL
313 #define ASYNC_EVENT_CMPL_FUNC_DRVR_UNLOAD_V 0x1UL
314 #define ASYNC_EVENT_CMPL_FUNC_DRVR_UNLOAD_OPAQUE_MASK 0xfeUL
315 #define ASYNC_EVENT_CMPL_FUNC_DRVR_UNLOAD_OPAQUE_SFT 1
319 #define ASYNC_EVENT_CMPL_FUNC_DRVR_UNLOAD_EVENT_DATA1_FUNC_ID_MASK 0xffffUL
320 #define ASYNC_EVENT_CMPL_FUNC_DRVR_UNLOAD_EVENT_DATA1_FUNC_ID_SFT 0
323 /* HWRM Asynchronous Event Completion Record for Function Driver load (16 bytes) */
324 struct hwrm_async_event_cmpl_func_drvr_load {
326 #define ASYNC_EVENT_CMPL_FUNC_DRVR_LOAD_TYPE_MASK 0x3fUL
327 #define ASYNC_EVENT_CMPL_FUNC_DRVR_LOAD_TYPE_SFT 0
328 #define ASYNC_EVENT_CMPL_FUNC_DRVR_LOAD_TYPE_HWRM_ASYNC_EVENT 0x2eUL
330 #define ASYNC_EVENT_CMPL_FUNC_DRVR_LOAD_EVENT_ID_FUNC_DRVR_LOAD 0x11UL
333 #define ASYNC_EVENT_CMPL_FUNC_DRVR_LOAD_V 0x1UL
334 #define ASYNC_EVENT_CMPL_FUNC_DRVR_LOAD_OPAQUE_MASK 0xfeUL
335 #define ASYNC_EVENT_CMPL_FUNC_DRVR_LOAD_OPAQUE_SFT 1
339 #define ASYNC_EVENT_CMPL_FUNC_DRVR_LOAD_EVENT_DATA1_FUNC_ID_MASK 0xffffUL
340 #define ASYNC_EVENT_CMPL_FUNC_DRVR_LOAD_EVENT_DATA1_FUNC_ID_SFT 0
343 /* HWRM Asynchronous Event Completion Record to indicate completion of FLR related processing (16 bytes) */
344 struct hwrm_async_event_cmpl_func_flr_proc_cmplt {
346 #define ASYNC_EVENT_CMPL_FUNC_FLR_PROC_CMPLT_TYPE_MASK 0x3fUL
347 #define ASYNC_EVENT_CMPL_FUNC_FLR_PROC_CMPLT_TYPE_SFT 0
348 #define ASYNC_EVENT_CMPL_FUNC_FLR_PROC_CMPLT_TYPE_HWRM_ASYNC_EVENT 0x2eUL
350 #define ASYNC_EVENT_CMPL_FUNC_FLR_PROC_CMPLT_EVENT_ID_FUNC_FLR_PROC_CMPLT 0x12UL
353 #define ASYNC_EVENT_CMPL_FUNC_FLR_PROC_CMPLT_V 0x1UL
354 #define ASYNC_EVENT_CMPL_FUNC_FLR_PROC_CMPLT_OPAQUE_MASK 0xfeUL
355 #define ASYNC_EVENT_CMPL_FUNC_FLR_PROC_CMPLT_OPAQUE_SFT 1
359 #define ASYNC_EVENT_CMPL_FUNC_FLR_PROC_CMPLT_EVENT_DATA1_FUNC_ID_MASK 0xffffUL
360 #define ASYNC_EVENT_CMPL_FUNC_FLR_PROC_CMPLT_EVENT_DATA1_FUNC_ID_SFT 0
363 /* HWRM Asynchronous Event Completion Record for PF Driver Unload (16 bytes) */
364 struct hwrm_async_event_cmpl_pf_drvr_unload {
366 #define ASYNC_EVENT_CMPL_PF_DRVR_UNLOAD_TYPE_MASK 0x3fUL
367 #define ASYNC_EVENT_CMPL_PF_DRVR_UNLOAD_TYPE_SFT 0
368 #define ASYNC_EVENT_CMPL_PF_DRVR_UNLOAD_TYPE_HWRM_ASYNC_EVENT 0x2eUL
370 #define ASYNC_EVENT_CMPL_PF_DRVR_UNLOAD_EVENT_ID_PF_DRVR_UNLOAD 0x20UL
373 #define ASYNC_EVENT_CMPL_PF_DRVR_UNLOAD_V 0x1UL
374 #define ASYNC_EVENT_CMPL_PF_DRVR_UNLOAD_OPAQUE_MASK 0xfeUL
375 #define ASYNC_EVENT_CMPL_PF_DRVR_UNLOAD_OPAQUE_SFT 1
379 #define ASYNC_EVENT_CMPL_PF_DRVR_UNLOAD_EVENT_DATA1_FUNC_ID_MASK 0xffffUL
380 #define ASYNC_EVENT_CMPL_PF_DRVR_UNLOAD_EVENT_DATA1_FUNC_ID_SFT 0
381 #define ASYNC_EVENT_CMPL_PF_DRVR_UNLOAD_EVENT_DATA1_PORT_MASK 0x70000UL
382 #define ASYNC_EVENT_CMPL_PF_DRVR_UNLOAD_EVENT_DATA1_PORT_SFT 16
385 /* HWRM Asynchronous Event Completion Record for PF Driver load (16 bytes) */
386 struct hwrm_async_event_cmpl_pf_drvr_load {
388 #define ASYNC_EVENT_CMPL_PF_DRVR_LOAD_TYPE_MASK 0x3fUL
389 #define ASYNC_EVENT_CMPL_PF_DRVR_LOAD_TYPE_SFT 0
390 #define ASYNC_EVENT_CMPL_PF_DRVR_LOAD_TYPE_HWRM_ASYNC_EVENT 0x2eUL
392 #define ASYNC_EVENT_CMPL_PF_DRVR_LOAD_EVENT_ID_PF_DRVR_LOAD 0x21UL
395 #define ASYNC_EVENT_CMPL_PF_DRVR_LOAD_V 0x1UL
396 #define ASYNC_EVENT_CMPL_PF_DRVR_LOAD_OPAQUE_MASK 0xfeUL
397 #define ASYNC_EVENT_CMPL_PF_DRVR_LOAD_OPAQUE_SFT 1
401 #define ASYNC_EVENT_CMPL_PF_DRVR_LOAD_EVENT_DATA1_FUNC_ID_MASK 0xffffUL
402 #define ASYNC_EVENT_CMPL_PF_DRVR_LOAD_EVENT_DATA1_FUNC_ID_SFT 0
403 #define ASYNC_EVENT_CMPL_PF_DRVR_LOAD_EVENT_DATA1_PORT_MASK 0x70000UL
404 #define ASYNC_EVENT_CMPL_PF_DRVR_LOAD_EVENT_DATA1_PORT_SFT 16
407 /* HWRM Asynchronous Event Completion Record for VF FLR (16 bytes) */
408 struct hwrm_async_event_cmpl_vf_flr {
410 #define ASYNC_EVENT_CMPL_VF_FLR_TYPE_MASK 0x3fUL
411 #define ASYNC_EVENT_CMPL_VF_FLR_TYPE_SFT 0
412 #define ASYNC_EVENT_CMPL_VF_FLR_TYPE_HWRM_ASYNC_EVENT 0x2eUL
414 #define ASYNC_EVENT_CMPL_VF_FLR_EVENT_ID_VF_FLR 0x30UL
417 #define ASYNC_EVENT_CMPL_VF_FLR_V 0x1UL
418 #define ASYNC_EVENT_CMPL_VF_FLR_OPAQUE_MASK 0xfeUL
419 #define ASYNC_EVENT_CMPL_VF_FLR_OPAQUE_SFT 1
423 #define ASYNC_EVENT_CMPL_VF_FLR_EVENT_DATA1_VF_ID_MASK 0xffffUL
424 #define ASYNC_EVENT_CMPL_VF_FLR_EVENT_DATA1_VF_ID_SFT 0
427 /* HWRM Asynchronous Event Completion Record for VF MAC Addr change (16 bytes) */
428 struct hwrm_async_event_cmpl_vf_mac_addr_change {
430 #define ASYNC_EVENT_CMPL_VF_MAC_ADDR_CHANGE_TYPE_MASK 0x3fUL
431 #define ASYNC_EVENT_CMPL_VF_MAC_ADDR_CHANGE_TYPE_SFT 0
432 #define ASYNC_EVENT_CMPL_VF_MAC_ADDR_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL
434 #define ASYNC_EVENT_CMPL_VF_MAC_ADDR_CHANGE_EVENT_ID_VF_MAC_ADDR_CHANGE 0x31UL
437 #define ASYNC_EVENT_CMPL_VF_MAC_ADDR_CHANGE_V 0x1UL
438 #define ASYNC_EVENT_CMPL_VF_MAC_ADDR_CHANGE_OPAQUE_MASK 0xfeUL
439 #define ASYNC_EVENT_CMPL_VF_MAC_ADDR_CHANGE_OPAQUE_SFT 1
443 #define ASYNC_EVENT_CMPL_VF_MAC_ADDR_CHANGE_EVENT_DATA1_VF_ID_MASK 0xffffUL
444 #define ASYNC_EVENT_CMPL_VF_MAC_ADDR_CHANGE_EVENT_DATA1_VF_ID_SFT 0
447 /* HWRM Asynchronous Event Completion Record for PF-VF communication status change (16 bytes) */
448 struct hwrm_async_event_cmpl_pf_vf_comm_status_change {
450 #define ASYNC_EVENT_CMPL_PF_VF_COMM_STATUS_CHANGE_TYPE_MASK 0x3fUL
451 #define ASYNC_EVENT_CMPL_PF_VF_COMM_STATUS_CHANGE_TYPE_SFT 0
452 #define ASYNC_EVENT_CMPL_PF_VF_COMM_STATUS_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL
454 #define ASYNC_EVENT_CMPL_PF_VF_COMM_STATUS_CHANGE_EVENT_ID_PF_VF_COMM_STATUS_CHANGE 0x32UL
457 #define ASYNC_EVENT_CMPL_PF_VF_COMM_STATUS_CHANGE_V 0x1UL
458 #define ASYNC_EVENT_CMPL_PF_VF_COMM_STATUS_CHANGE_OPAQUE_MASK 0xfeUL
459 #define ASYNC_EVENT_CMPL_PF_VF_COMM_STATUS_CHANGE_OPAQUE_SFT 1
463 #define ASYNC_EVENT_CMPL_PF_VF_COMM_STATUS_CHANGE_EVENT_DATA1_COMM_ESTABLISHED 0x1UL
466 /* HWRM Asynchronous Event Completion Record for VF configuration change (16 bytes) */
467 struct hwrm_async_event_cmpl_vf_cfg_change {
469 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_MASK 0x3fUL
470 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_SFT 0
471 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_TYPE_HWRM_ASYNC_EVENT 0x2eUL
473 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_ID_VF_CFG_CHANGE 0x33UL
476 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_V 0x1UL
477 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_OPAQUE_MASK 0xfeUL
478 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_OPAQUE_SFT 1
482 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_MTU_CHANGE 0x1UL
483 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_MRU_CHANGE 0x2UL
484 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_DFLT_MAC_ADDR_CHANGE 0x4UL
485 #define ASYNC_EVENT_CMPL_VF_CFG_CHANGE_EVENT_DATA1_DFLT_VLAN_CHANGE 0x8UL
488 /* HWRM Asynchronous Event Completion Record for HWRM Error (16 bytes) */
489 struct hwrm_async_event_cmpl_hwrm_error {
491 #define ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_MASK 0x3fUL
492 #define ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_SFT 0
493 #define ASYNC_EVENT_CMPL_HWRM_ERROR_TYPE_HWRM_ASYNC_EVENT 0x2eUL
495 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_ID_HWRM_ERROR 0xffUL
497 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_MASK 0xffUL
498 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_SFT 0
499 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_WARNING 0x0UL
500 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_NONFATAL 0x1UL
501 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_FATAL 0x2UL
502 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_LAST ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA2_SEVERITY_FATAL
504 #define ASYNC_EVENT_CMPL_HWRM_ERROR_V 0x1UL
505 #define ASYNC_EVENT_CMPL_HWRM_ERROR_OPAQUE_MASK 0xfeUL
506 #define ASYNC_EVENT_CMPL_HWRM_ERROR_OPAQUE_SFT 1
510 #define ASYNC_EVENT_CMPL_HWRM_ERROR_EVENT_DATA1_TIMESTAMP 0x1UL
514 /* Input (24 bytes) */
515 struct hwrm_ver_get_input {
527 /* Output (128 bytes) */
528 struct hwrm_ver_get_output {
550 #define VER_GET_RESP_DEV_CAPS_CFG_SECURE_FW_UPD_SUPPORTED 0x1UL
551 #define VER_GET_RESP_DEV_CAPS_CFG_FW_DCBX_AGENT_SUPPORTED 0x2UL
556 char hwrm_fw_name[16];
557 char mgmt_fw_name[16];
558 char netctrl_fw_name[16];
560 char roce_fw_name[16];
565 u8 chip_platform_type;
566 #define VER_GET_RESP_CHIP_PLATFORM_TYPE_ASIC 0x0UL
567 #define VER_GET_RESP_CHIP_PLATFORM_TYPE_FPGA 0x1UL
568 #define VER_GET_RESP_CHIP_PLATFORM_TYPE_PALLADIUM 0x2UL
569 __le16 max_req_win_len;
571 __le16 def_req_timeout;
578 /* hwrm_func_reset */
579 /* Input (24 bytes) */
580 struct hwrm_func_reset_input {
587 #define FUNC_RESET_REQ_ENABLES_VF_ID_VALID 0x1UL
590 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETALL 0x0UL
591 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETME 0x1UL
592 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETCHILDREN 0x2UL
593 #define FUNC_RESET_REQ_FUNC_RESET_LEVEL_RESETVF 0x3UL
597 /* Output (16 bytes) */
598 struct hwrm_func_reset_output {
610 /* hwrm_func_getfid */
611 /* Input (24 bytes) */
612 struct hwrm_func_getfid_input {
619 #define FUNC_GETFID_REQ_ENABLES_PCI_ID 0x1UL
624 /* Output (16 bytes) */
625 struct hwrm_func_getfid_output {
639 /* hwrm_func_vf_alloc */
640 /* Input (24 bytes) */
641 struct hwrm_func_vf_alloc_input {
648 #define FUNC_VF_ALLOC_REQ_ENABLES_FIRST_VF_ID 0x1UL
653 /* Output (16 bytes) */
654 struct hwrm_func_vf_alloc_output {
668 /* hwrm_func_vf_free */
669 /* Input (24 bytes) */
670 struct hwrm_func_vf_free_input {
677 #define FUNC_VF_FREE_REQ_ENABLES_FIRST_VF_ID 0x1UL
682 /* Output (16 bytes) */
683 struct hwrm_func_vf_free_output {
695 /* hwrm_func_vf_cfg */
696 /* Input (32 bytes) */
697 struct hwrm_func_vf_cfg_input {
704 #define FUNC_VF_CFG_REQ_ENABLES_MTU 0x1UL
705 #define FUNC_VF_CFG_REQ_ENABLES_GUEST_VLAN 0x2UL
706 #define FUNC_VF_CFG_REQ_ENABLES_ASYNC_EVENT_CR 0x4UL
707 #define FUNC_VF_CFG_REQ_ENABLES_DFLT_MAC_ADDR 0x8UL
710 __le16 async_event_cr;
714 /* Output (16 bytes) */
715 struct hwrm_func_vf_cfg_output {
727 /* hwrm_func_qcaps */
728 /* Input (24 bytes) */
729 struct hwrm_func_qcaps_input {
739 /* Output (80 bytes) */
740 struct hwrm_func_qcaps_output {
748 #define FUNC_QCAPS_RESP_FLAGS_PUSH_MODE_SUPPORTED 0x1UL
749 #define FUNC_QCAPS_RESP_FLAGS_GLOBAL_MSIX_AUTOMASKING 0x2UL
750 #define FUNC_QCAPS_RESP_FLAGS_PTP_SUPPORTED 0x4UL
751 #define FUNC_QCAPS_RESP_FLAGS_ROCE_V1_SUPPORTED 0x8UL
752 #define FUNC_QCAPS_RESP_FLAGS_ROCE_V2_SUPPORTED 0x10UL
753 #define FUNC_QCAPS_RESP_FLAGS_WOL_MAGICPKT_SUPPORTED 0x20UL
754 #define FUNC_QCAPS_RESP_FLAGS_WOL_BMP_SUPPORTED 0x40UL
755 #define FUNC_QCAPS_RESP_FLAGS_TX_RING_RL_SUPPORTED 0x80UL
756 #define FUNC_QCAPS_RESP_FLAGS_TX_BW_CFG_SUPPORTED 0x100UL
757 #define FUNC_QCAPS_RESP_FLAGS_VF_TX_RING_RL_SUPPORTED 0x200UL
758 #define FUNC_QCAPS_RESP_FLAGS_VF_BW_CFG_SUPPORTED 0x400UL
759 #define FUNC_QCAPS_RESP_FLAGS_STD_TX_RING_MODE_SUPPORTED 0x800UL
761 __le16 max_rsscos_ctx;
762 __le16 max_cmpl_rings;
770 __le32 max_encap_records;
771 __le32 max_decap_records;
772 __le32 max_tx_em_flows;
773 __le32 max_tx_wm_flows;
774 __le32 max_rx_em_flows;
775 __le32 max_rx_wm_flows;
776 __le32 max_mcast_filters;
778 __le32 max_hw_ring_grps;
779 __le16 max_sp_tx_rings;
785 /* Input (24 bytes) */
786 struct hwrm_func_qcfg_input {
796 /* Output (72 bytes) */
797 struct hwrm_func_qcfg_output {
806 #define FUNC_QCFG_RESP_FLAGS_OOB_WOL_MAGICPKT_ENABLED 0x1UL
807 #define FUNC_QCFG_RESP_FLAGS_OOB_WOL_BMP_ENABLED 0x2UL
808 #define FUNC_QCFG_RESP_FLAGS_FW_DCBX_AGENT_ENABLED 0x4UL
809 #define FUNC_QCFG_RESP_FLAGS_STD_TX_RING_MODE_ENABLED 0x8UL
812 __le16 alloc_rsscos_ctx;
813 __le16 alloc_cmpl_rings;
814 __le16 alloc_tx_rings;
815 __le16 alloc_rx_rings;
821 u8 port_partition_type;
822 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_SPF 0x0UL
823 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_MPFS 0x1UL
824 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_0 0x2UL
825 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR1_5 0x3UL
826 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_NPAR2_0 0x4UL
827 #define FUNC_QCFG_RESP_PORT_PARTITION_TYPE_UNKNOWN 0xffUL
833 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_MASK 0xfffffffUL
834 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_SFT 0
835 #define FUNC_QCFG_RESP_MIN_BW_RSVD 0x10000000UL
836 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
837 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_SFT 29
838 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
839 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
840 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
841 #define FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_LAST FUNC_QCFG_RESP_MIN_BW_BW_VALUE_UNIT_INVALID
843 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_MASK 0xfffffffUL
844 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_SFT 0
845 #define FUNC_QCFG_RESP_MAX_BW_RSVD 0x10000000UL
846 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
847 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_SFT 29
848 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
849 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
850 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
851 #define FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_LAST FUNC_QCFG_RESP_MAX_BW_BW_VALUE_UNIT_INVALID
853 #define FUNC_QCFG_RESP_EVB_MODE_NO_EVB 0x0UL
854 #define FUNC_QCFG_RESP_EVB_MODE_VEB 0x1UL
855 #define FUNC_QCFG_RESP_EVB_MODE_VEPA 0x2UL
858 __le32 alloc_mcast_filters;
859 __le32 alloc_hw_ring_grps;
860 __le16 alloc_sp_tx_rings;
866 /* Input (88 bytes) */
867 struct hwrm_func_cfg_input {
877 #define FUNC_CFG_REQ_FLAGS_PROM_MODE 0x1UL
878 #define FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK 0x2UL
879 #define FUNC_CFG_REQ_FLAGS_SRC_IP_ADDR_CHECK 0x4UL
880 #define FUNC_CFG_REQ_FLAGS_VLAN_PRI_MATCH 0x8UL
881 #define FUNC_CFG_REQ_FLAGS_DFLT_PRI_NOMATCH 0x10UL
882 #define FUNC_CFG_REQ_FLAGS_DISABLE_PAUSE 0x20UL
883 #define FUNC_CFG_REQ_FLAGS_DISABLE_STP 0x40UL
884 #define FUNC_CFG_REQ_FLAGS_DISABLE_LLDP 0x80UL
885 #define FUNC_CFG_REQ_FLAGS_DISABLE_PTPV2 0x100UL
886 #define FUNC_CFG_REQ_FLAGS_STD_TX_RING_MODE 0x200UL
888 #define FUNC_CFG_REQ_ENABLES_MTU 0x1UL
889 #define FUNC_CFG_REQ_ENABLES_MRU 0x2UL
890 #define FUNC_CFG_REQ_ENABLES_NUM_RSSCOS_CTXS 0x4UL
891 #define FUNC_CFG_REQ_ENABLES_NUM_CMPL_RINGS 0x8UL
892 #define FUNC_CFG_REQ_ENABLES_NUM_TX_RINGS 0x10UL
893 #define FUNC_CFG_REQ_ENABLES_NUM_RX_RINGS 0x20UL
894 #define FUNC_CFG_REQ_ENABLES_NUM_L2_CTXS 0x40UL
895 #define FUNC_CFG_REQ_ENABLES_NUM_VNICS 0x80UL
896 #define FUNC_CFG_REQ_ENABLES_NUM_STAT_CTXS 0x100UL
897 #define FUNC_CFG_REQ_ENABLES_DFLT_MAC_ADDR 0x200UL
898 #define FUNC_CFG_REQ_ENABLES_DFLT_VLAN 0x400UL
899 #define FUNC_CFG_REQ_ENABLES_DFLT_IP_ADDR 0x800UL
900 #define FUNC_CFG_REQ_ENABLES_MIN_BW 0x1000UL
901 #define FUNC_CFG_REQ_ENABLES_MAX_BW 0x2000UL
902 #define FUNC_CFG_REQ_ENABLES_ASYNC_EVENT_CR 0x4000UL
903 #define FUNC_CFG_REQ_ENABLES_VLAN_ANTISPOOF_MODE 0x8000UL
904 #define FUNC_CFG_REQ_ENABLES_ALLOWED_VLAN_PRIS 0x10000UL
905 #define FUNC_CFG_REQ_ENABLES_EVB_MODE 0x20000UL
906 #define FUNC_CFG_REQ_ENABLES_NUM_MCAST_FILTERS 0x40000UL
907 #define FUNC_CFG_REQ_ENABLES_NUM_HW_RING_GRPS 0x80000UL
910 __le16 num_rsscos_ctxs;
911 __le16 num_cmpl_rings;
916 __le16 num_stat_ctxs;
917 __le16 num_hw_ring_grps;
920 __be32 dflt_ip_addr[4];
922 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_MASK 0xfffffffUL
923 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_SFT 0
924 #define FUNC_CFG_REQ_MIN_BW_RSVD 0x10000000UL
925 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
926 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_SFT 29
927 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
928 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
929 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
930 #define FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_LAST FUNC_CFG_REQ_MIN_BW_BW_VALUE_UNIT_INVALID
932 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_MASK 0xfffffffUL
933 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_SFT 0
934 #define FUNC_CFG_REQ_MAX_BW_RSVD 0x10000000UL
935 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
936 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_SFT 29
937 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
938 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
939 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
940 #define FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_LAST FUNC_CFG_REQ_MAX_BW_BW_VALUE_UNIT_INVALID
941 __le16 async_event_cr;
942 u8 vlan_antispoof_mode;
943 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_NOCHECK 0x0UL
944 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_VALIDATE_VLAN 0x1UL
945 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_IF_VLANDNE 0x2UL
946 #define FUNC_CFG_REQ_VLAN_ANTISPOOF_MODE_INSERT_OR_OVERRIDE_VLAN 0x3UL
947 u8 allowed_vlan_pris;
949 #define FUNC_CFG_REQ_EVB_MODE_NO_EVB 0x0UL
950 #define FUNC_CFG_REQ_EVB_MODE_VEB 0x1UL
951 #define FUNC_CFG_REQ_EVB_MODE_VEPA 0x2UL
953 __le16 num_mcast_filters;
956 /* Output (16 bytes) */
957 struct hwrm_func_cfg_output {
969 /* hwrm_func_qstats */
970 /* Input (24 bytes) */
971 struct hwrm_func_qstats_input {
981 /* Output (176 bytes) */
982 struct hwrm_func_qstats_output {
987 __le64 tx_ucast_pkts;
988 __le64 tx_mcast_pkts;
989 __le64 tx_bcast_pkts;
992 __le64 tx_ucast_bytes;
993 __le64 tx_mcast_bytes;
994 __le64 tx_bcast_bytes;
995 __le64 rx_ucast_pkts;
996 __le64 rx_mcast_pkts;
997 __le64 rx_bcast_pkts;
1000 __le64 rx_ucast_bytes;
1001 __le64 rx_mcast_bytes;
1002 __le64 rx_bcast_bytes;
1004 __le64 rx_agg_bytes;
1005 __le64 rx_agg_events;
1006 __le64 rx_agg_aborts;
1014 /* hwrm_func_clr_stats */
1015 /* Input (24 bytes) */
1016 struct hwrm_func_clr_stats_input {
1026 /* Output (16 bytes) */
1027 struct hwrm_func_clr_stats_output {
1039 /* hwrm_func_vf_resc_free */
1040 /* Input (24 bytes) */
1041 struct hwrm_func_vf_resc_free_input {
1051 /* Output (16 bytes) */
1052 struct hwrm_func_vf_resc_free_output {
1064 /* hwrm_func_vf_vnic_ids_query */
1065 /* Input (32 bytes) */
1066 struct hwrm_func_vf_vnic_ids_query_input {
1075 __le32 max_vnic_id_cnt;
1076 __le64 vnic_id_tbl_addr;
1079 /* Output (16 bytes) */
1080 struct hwrm_func_vf_vnic_ids_query_output {
1092 /* hwrm_func_drv_rgtr */
1093 /* Input (80 bytes) */
1094 struct hwrm_func_drv_rgtr_input {
1101 #define FUNC_DRV_RGTR_REQ_FLAGS_FWD_ALL_MODE 0x1UL
1102 #define FUNC_DRV_RGTR_REQ_FLAGS_FWD_NONE_MODE 0x2UL
1104 #define FUNC_DRV_RGTR_REQ_ENABLES_OS_TYPE 0x1UL
1105 #define FUNC_DRV_RGTR_REQ_ENABLES_VER 0x2UL
1106 #define FUNC_DRV_RGTR_REQ_ENABLES_TIMESTAMP 0x4UL
1107 #define FUNC_DRV_RGTR_REQ_ENABLES_VF_REQ_FWD 0x8UL
1108 #define FUNC_DRV_RGTR_REQ_ENABLES_ASYNC_EVENT_FWD 0x10UL
1110 #define FUNC_DRV_RGTR_REQ_OS_TYPE_UNKNOWN 0x0UL
1111 #define FUNC_DRV_RGTR_REQ_OS_TYPE_OTHER 0x1UL
1112 #define FUNC_DRV_RGTR_REQ_OS_TYPE_MSDOS 0xeUL
1113 #define FUNC_DRV_RGTR_REQ_OS_TYPE_WINDOWS 0x12UL
1114 #define FUNC_DRV_RGTR_REQ_OS_TYPE_SOLARIS 0x1dUL
1115 #define FUNC_DRV_RGTR_REQ_OS_TYPE_LINUX 0x24UL
1116 #define FUNC_DRV_RGTR_REQ_OS_TYPE_FREEBSD 0x2aUL
1117 #define FUNC_DRV_RGTR_REQ_OS_TYPE_ESXI 0x68UL
1118 #define FUNC_DRV_RGTR_REQ_OS_TYPE_WIN864 0x73UL
1119 #define FUNC_DRV_RGTR_REQ_OS_TYPE_WIN2012R2 0x74UL
1120 #define FUNC_DRV_RGTR_REQ_OS_TYPE_UEFI 0x8000UL
1128 __le32 vf_req_fwd[8];
1129 __le32 async_event_fwd[8];
1132 /* Output (16 bytes) */
1133 struct hwrm_func_drv_rgtr_output {
1145 /* hwrm_func_drv_unrgtr */
1146 /* Input (24 bytes) */
1147 struct hwrm_func_drv_unrgtr_input {
1154 #define FUNC_DRV_UNRGTR_REQ_FLAGS_PREPARE_FOR_SHUTDOWN 0x1UL
1158 /* Output (16 bytes) */
1159 struct hwrm_func_drv_unrgtr_output {
1171 /* hwrm_func_buf_rgtr */
1172 /* Input (128 bytes) */
1173 struct hwrm_func_buf_rgtr_input {
1180 #define FUNC_BUF_RGTR_REQ_ENABLES_VF_ID 0x1UL
1181 #define FUNC_BUF_RGTR_REQ_ENABLES_ERR_BUF_ADDR 0x2UL
1183 __le16 req_buf_num_pages;
1184 __le16 req_buf_page_size;
1185 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_16B 0x4UL
1186 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_4K 0xcUL
1187 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_8K 0xdUL
1188 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_64K 0x10UL
1189 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_2M 0x15UL
1190 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_4M 0x16UL
1191 #define FUNC_BUF_RGTR_REQ_REQ_BUF_PAGE_SIZE_1G 0x1eUL
1193 __le16 resp_buf_len;
1196 __le64 req_buf_page_addr0;
1197 __le64 req_buf_page_addr1;
1198 __le64 req_buf_page_addr2;
1199 __le64 req_buf_page_addr3;
1200 __le64 req_buf_page_addr4;
1201 __le64 req_buf_page_addr5;
1202 __le64 req_buf_page_addr6;
1203 __le64 req_buf_page_addr7;
1204 __le64 req_buf_page_addr8;
1205 __le64 req_buf_page_addr9;
1206 __le64 error_buf_addr;
1207 __le64 resp_buf_addr;
1210 /* Output (16 bytes) */
1211 struct hwrm_func_buf_rgtr_output {
1223 /* hwrm_func_drv_qver */
1224 /* Input (24 bytes) */
1225 struct hwrm_func_drv_qver_input {
1236 /* Output (16 bytes) */
1237 struct hwrm_func_drv_qver_output {
1243 #define FUNC_DRV_QVER_RESP_OS_TYPE_UNKNOWN 0x0UL
1244 #define FUNC_DRV_QVER_RESP_OS_TYPE_OTHER 0x1UL
1245 #define FUNC_DRV_QVER_RESP_OS_TYPE_MSDOS 0xeUL
1246 #define FUNC_DRV_QVER_RESP_OS_TYPE_WINDOWS 0x12UL
1247 #define FUNC_DRV_QVER_RESP_OS_TYPE_SOLARIS 0x1dUL
1248 #define FUNC_DRV_QVER_RESP_OS_TYPE_LINUX 0x24UL
1249 #define FUNC_DRV_QVER_RESP_OS_TYPE_FREEBSD 0x2aUL
1250 #define FUNC_DRV_QVER_RESP_OS_TYPE_ESXI 0x68UL
1251 #define FUNC_DRV_QVER_RESP_OS_TYPE_WIN864 0x73UL
1252 #define FUNC_DRV_QVER_RESP_OS_TYPE_WIN2012R2 0x74UL
1253 #define FUNC_DRV_QVER_RESP_OS_TYPE_UEFI 0x8000UL
1262 /* hwrm_port_phy_cfg */
1263 /* Input (56 bytes) */
1264 struct hwrm_port_phy_cfg_input {
1271 #define PORT_PHY_CFG_REQ_FLAGS_RESET_PHY 0x1UL
1272 #define PORT_PHY_CFG_REQ_FLAGS_DEPRECATED 0x2UL
1273 #define PORT_PHY_CFG_REQ_FLAGS_FORCE 0x4UL
1274 #define PORT_PHY_CFG_REQ_FLAGS_RESTART_AUTONEG 0x8UL
1275 #define PORT_PHY_CFG_REQ_FLAGS_EEE_ENABLE 0x10UL
1276 #define PORT_PHY_CFG_REQ_FLAGS_EEE_DISABLE 0x20UL
1277 #define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_ENABLE 0x40UL
1278 #define PORT_PHY_CFG_REQ_FLAGS_EEE_TX_LPI_DISABLE 0x80UL
1279 #define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_ENABLE 0x100UL
1280 #define PORT_PHY_CFG_REQ_FLAGS_FEC_AUTONEG_DISABLE 0x200UL
1281 #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_ENABLE 0x400UL
1282 #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE74_DISABLE 0x800UL
1283 #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_ENABLE 0x1000UL
1284 #define PORT_PHY_CFG_REQ_FLAGS_FEC_CLAUSE91_DISABLE 0x2000UL
1285 #define PORT_PHY_CFG_REQ_FLAGS_FORCE_LINK_DWN 0x4000UL
1287 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_MODE 0x1UL
1288 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_DUPLEX 0x2UL
1289 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_PAUSE 0x4UL
1290 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEED 0x8UL
1291 #define PORT_PHY_CFG_REQ_ENABLES_AUTO_LINK_SPEED_MASK 0x10UL
1292 #define PORT_PHY_CFG_REQ_ENABLES_WIRESPEED 0x20UL
1293 #define PORT_PHY_CFG_REQ_ENABLES_LPBK 0x40UL
1294 #define PORT_PHY_CFG_REQ_ENABLES_PREEMPHASIS 0x80UL
1295 #define PORT_PHY_CFG_REQ_ENABLES_FORCE_PAUSE 0x100UL
1296 #define PORT_PHY_CFG_REQ_ENABLES_EEE_LINK_SPEED_MASK 0x200UL
1297 #define PORT_PHY_CFG_REQ_ENABLES_TX_LPI_TIMER 0x400UL
1299 __le16 force_link_speed;
1300 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_100MB 0x1UL
1301 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_1GB 0xaUL
1302 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_2GB 0x14UL
1303 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_2_5GB 0x19UL
1304 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10GB 0x64UL
1305 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_20GB 0xc8UL
1306 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_25GB 0xfaUL
1307 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_40GB 0x190UL
1308 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_50GB 0x1f4UL
1309 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_100GB 0x3e8UL
1310 #define PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10MB 0xffffUL
1312 #define PORT_PHY_CFG_REQ_AUTO_MODE_NONE 0x0UL
1313 #define PORT_PHY_CFG_REQ_AUTO_MODE_ALL_SPEEDS 0x1UL
1314 #define PORT_PHY_CFG_REQ_AUTO_MODE_ONE_SPEED 0x2UL
1315 #define PORT_PHY_CFG_REQ_AUTO_MODE_ONE_OR_BELOW 0x3UL
1316 #define PORT_PHY_CFG_REQ_AUTO_MODE_SPEED_MASK 0x4UL
1318 #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_HALF 0x0UL
1319 #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_FULL 0x1UL
1320 #define PORT_PHY_CFG_REQ_AUTO_DUPLEX_BOTH 0x2UL
1322 #define PORT_PHY_CFG_REQ_AUTO_PAUSE_TX 0x1UL
1323 #define PORT_PHY_CFG_REQ_AUTO_PAUSE_RX 0x2UL
1324 #define PORT_PHY_CFG_REQ_AUTO_PAUSE_AUTONEG_PAUSE 0x4UL
1326 __le16 auto_link_speed;
1327 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_100MB 0x1UL
1328 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_1GB 0xaUL
1329 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_2GB 0x14UL
1330 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_2_5GB 0x19UL
1331 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10GB 0x64UL
1332 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_20GB 0xc8UL
1333 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_25GB 0xfaUL
1334 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_40GB 0x190UL
1335 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_50GB 0x1f4UL
1336 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_100GB 0x3e8UL
1337 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_10MB 0xffffUL
1338 __le16 auto_link_speed_mask;
1339 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100MBHD 0x1UL
1340 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100MB 0x2UL
1341 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_1GBHD 0x4UL
1342 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_1GB 0x8UL
1343 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_2GB 0x10UL
1344 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_2_5GB 0x20UL
1345 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10GB 0x40UL
1346 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_20GB 0x80UL
1347 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_25GB 0x100UL
1348 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_40GB 0x200UL
1349 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_50GB 0x400UL
1350 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_100GB 0x800UL
1351 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10MBHD 0x1000UL
1352 #define PORT_PHY_CFG_REQ_AUTO_LINK_SPEED_MASK_10MB 0x2000UL
1354 #define PORT_PHY_CFG_REQ_WIRESPEED_OFF 0x0UL
1355 #define PORT_PHY_CFG_REQ_WIRESPEED_ON 0x1UL
1357 #define PORT_PHY_CFG_REQ_LPBK_NONE 0x0UL
1358 #define PORT_PHY_CFG_REQ_LPBK_LOCAL 0x1UL
1359 #define PORT_PHY_CFG_REQ_LPBK_REMOTE 0x2UL
1361 #define PORT_PHY_CFG_REQ_FORCE_PAUSE_TX 0x1UL
1362 #define PORT_PHY_CFG_REQ_FORCE_PAUSE_RX 0x2UL
1365 __le16 eee_link_speed_mask;
1366 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD1 0x1UL
1367 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_100MB 0x2UL
1368 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD2 0x4UL
1369 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_1GB 0x8UL
1370 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD3 0x10UL
1371 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_RSVD4 0x20UL
1372 #define PORT_PHY_CFG_REQ_EEE_LINK_SPEED_MASK_10GB 0x40UL
1375 __le32 tx_lpi_timer;
1377 #define PORT_PHY_CFG_REQ_TX_LPI_TIMER_MASK 0xffffffUL
1378 #define PORT_PHY_CFG_REQ_TX_LPI_TIMER_SFT 0
1381 /* Output (16 bytes) */
1382 struct hwrm_port_phy_cfg_output {
1394 /* hwrm_port_phy_qcfg */
1395 /* Input (24 bytes) */
1396 struct hwrm_port_phy_qcfg_input {
1406 /* Output (96 bytes) */
1407 struct hwrm_port_phy_qcfg_output {
1413 #define PORT_PHY_QCFG_RESP_LINK_NO_LINK 0x0UL
1414 #define PORT_PHY_QCFG_RESP_LINK_SIGNAL 0x1UL
1415 #define PORT_PHY_QCFG_RESP_LINK_LINK 0x2UL
1418 #define PORT_PHY_QCFG_RESP_LINK_SPEED_100MB 0x1UL
1419 #define PORT_PHY_QCFG_RESP_LINK_SPEED_1GB 0xaUL
1420 #define PORT_PHY_QCFG_RESP_LINK_SPEED_2GB 0x14UL
1421 #define PORT_PHY_QCFG_RESP_LINK_SPEED_2_5GB 0x19UL
1422 #define PORT_PHY_QCFG_RESP_LINK_SPEED_10GB 0x64UL
1423 #define PORT_PHY_QCFG_RESP_LINK_SPEED_20GB 0xc8UL
1424 #define PORT_PHY_QCFG_RESP_LINK_SPEED_25GB 0xfaUL
1425 #define PORT_PHY_QCFG_RESP_LINK_SPEED_40GB 0x190UL
1426 #define PORT_PHY_QCFG_RESP_LINK_SPEED_50GB 0x1f4UL
1427 #define PORT_PHY_QCFG_RESP_LINK_SPEED_100GB 0x3e8UL
1428 #define PORT_PHY_QCFG_RESP_LINK_SPEED_10MB 0xffffUL
1430 #define PORT_PHY_QCFG_RESP_DUPLEX_HALF 0x0UL
1431 #define PORT_PHY_QCFG_RESP_DUPLEX_FULL 0x1UL
1433 #define PORT_PHY_QCFG_RESP_PAUSE_TX 0x1UL
1434 #define PORT_PHY_QCFG_RESP_PAUSE_RX 0x2UL
1435 __le16 support_speeds;
1436 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100MBHD 0x1UL
1437 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100MB 0x2UL
1438 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_1GBHD 0x4UL
1439 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_1GB 0x8UL
1440 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_2GB 0x10UL
1441 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_2_5GB 0x20UL
1442 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10GB 0x40UL
1443 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_20GB 0x80UL
1444 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_25GB 0x100UL
1445 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_40GB 0x200UL
1446 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_50GB 0x400UL
1447 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_100GB 0x800UL
1448 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10MBHD 0x1000UL
1449 #define PORT_PHY_QCFG_RESP_SUPPORT_SPEEDS_10MB 0x2000UL
1450 __le16 force_link_speed;
1451 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_100MB 0x1UL
1452 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_1GB 0xaUL
1453 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_2GB 0x14UL
1454 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_2_5GB 0x19UL
1455 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10GB 0x64UL
1456 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_20GB 0xc8UL
1457 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_25GB 0xfaUL
1458 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_40GB 0x190UL
1459 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_50GB 0x1f4UL
1460 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_100GB 0x3e8UL
1461 #define PORT_PHY_QCFG_RESP_FORCE_LINK_SPEED_10MB 0xffffUL
1463 #define PORT_PHY_QCFG_RESP_AUTO_MODE_NONE 0x0UL
1464 #define PORT_PHY_QCFG_RESP_AUTO_MODE_ALL_SPEEDS 0x1UL
1465 #define PORT_PHY_QCFG_RESP_AUTO_MODE_ONE_SPEED 0x2UL
1466 #define PORT_PHY_QCFG_RESP_AUTO_MODE_ONE_OR_BELOW 0x3UL
1467 #define PORT_PHY_QCFG_RESP_AUTO_MODE_SPEED_MASK 0x4UL
1469 #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_TX 0x1UL
1470 #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_RX 0x2UL
1471 #define PORT_PHY_QCFG_RESP_AUTO_PAUSE_AUTONEG_PAUSE 0x4UL
1472 __le16 auto_link_speed;
1473 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_100MB 0x1UL
1474 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_1GB 0xaUL
1475 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_2GB 0x14UL
1476 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_2_5GB 0x19UL
1477 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10GB 0x64UL
1478 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_20GB 0xc8UL
1479 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_25GB 0xfaUL
1480 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_40GB 0x190UL
1481 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_50GB 0x1f4UL
1482 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_100GB 0x3e8UL
1483 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_10MB 0xffffUL
1484 __le16 auto_link_speed_mask;
1485 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100MBHD 0x1UL
1486 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100MB 0x2UL
1487 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_1GBHD 0x4UL
1488 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_1GB 0x8UL
1489 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_2GB 0x10UL
1490 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_2_5GB 0x20UL
1491 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10GB 0x40UL
1492 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_20GB 0x80UL
1493 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_25GB 0x100UL
1494 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_40GB 0x200UL
1495 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_50GB 0x400UL
1496 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_100GB 0x800UL
1497 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10MBHD 0x1000UL
1498 #define PORT_PHY_QCFG_RESP_AUTO_LINK_SPEED_MASK_10MB 0x2000UL
1500 #define PORT_PHY_QCFG_RESP_WIRESPEED_OFF 0x0UL
1501 #define PORT_PHY_QCFG_RESP_WIRESPEED_ON 0x1UL
1503 #define PORT_PHY_QCFG_RESP_LPBK_NONE 0x0UL
1504 #define PORT_PHY_QCFG_RESP_LPBK_LOCAL 0x1UL
1505 #define PORT_PHY_QCFG_RESP_LPBK_REMOTE 0x2UL
1507 #define PORT_PHY_QCFG_RESP_FORCE_PAUSE_TX 0x1UL
1508 #define PORT_PHY_QCFG_RESP_FORCE_PAUSE_RX 0x2UL
1510 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NONE 0x0UL
1511 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_DISABLETX 0x1UL
1512 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_WARNINGMSG 0x2UL
1513 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_PWRDOWN 0x3UL
1514 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTINSERTED 0x4UL
1515 #define PORT_PHY_QCFG_RESP_MODULE_STATUS_NOTAPPLICABLE 0xffUL
1521 #define PORT_PHY_QCFG_RESP_PHY_TYPE_UNKNOWN 0x0UL
1522 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASECR 0x1UL
1523 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR4 0x2UL
1524 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASELR 0x3UL
1525 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASESR 0x4UL
1526 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR2 0x5UL
1527 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKX 0x6UL
1528 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASEKR 0x7UL
1529 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASET 0x8UL
1530 #define PORT_PHY_QCFG_RESP_PHY_TYPE_BASETE 0x9UL
1531 #define PORT_PHY_QCFG_RESP_PHY_TYPE_SGMIIEXTPHY 0xaUL
1533 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_UNKNOWN 0x0UL
1534 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_TP 0x1UL
1535 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_DAC 0x2UL
1536 #define PORT_PHY_QCFG_RESP_MEDIA_TYPE_FIBRE 0x3UL
1538 #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_INTERNAL 0x1UL
1539 #define PORT_PHY_QCFG_RESP_XCVR_PKG_TYPE_XCVR_EXTERNAL 0x2UL
1540 u8 eee_config_phy_addr;
1541 #define PORT_PHY_QCFG_RESP_PHY_ADDR_MASK 0x1fUL
1542 #define PORT_PHY_QCFG_RESP_PHY_ADDR_SFT 0
1543 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_ENABLED 0x20UL
1544 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_ACTIVE 0x40UL
1545 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_EEE_TX_LPI 0x80UL
1546 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_MASK 0xe0UL
1547 #define PORT_PHY_QCFG_RESP_EEE_CONFIG_SFT 5
1549 #define PORT_PHY_QCFG_RESP_PARALLEL_DETECT 0x1UL
1550 #define PORT_PHY_QCFG_RESP_RESERVED_MASK 0xfeUL
1551 #define PORT_PHY_QCFG_RESP_RESERVED_SFT 1
1552 __le16 link_partner_adv_speeds;
1553 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100MBHD 0x1UL
1554 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100MB 0x2UL
1555 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_1GBHD 0x4UL
1556 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_1GB 0x8UL
1557 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_2GB 0x10UL
1558 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_2_5GB 0x20UL
1559 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10GB 0x40UL
1560 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_20GB 0x80UL
1561 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_25GB 0x100UL
1562 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_40GB 0x200UL
1563 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_50GB 0x400UL
1564 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_100GB 0x800UL
1565 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10MBHD 0x1000UL
1566 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_SPEEDS_10MB 0x2000UL
1567 u8 link_partner_adv_auto_mode;
1568 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_NONE 0x0UL
1569 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ALL_SPEEDS 0x1UL
1570 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ONE_SPEED 0x2UL
1571 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_ONE_OR_BELOW 0x3UL
1572 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_AUTO_MODE_SPEED_MASK 0x4UL
1573 u8 link_partner_adv_pause;
1574 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_PAUSE_TX 0x1UL
1575 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_PAUSE_RX 0x2UL
1576 __le16 adv_eee_link_speed_mask;
1577 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD1 0x1UL
1578 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_100MB 0x2UL
1579 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD2 0x4UL
1580 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_1GB 0x8UL
1581 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD3 0x10UL
1582 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_RSVD4 0x20UL
1583 #define PORT_PHY_QCFG_RESP_ADV_EEE_LINK_SPEED_MASK_10GB 0x40UL
1584 __le16 link_partner_adv_eee_link_speed_mask;
1585 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD1 0x1UL
1586 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_100MB 0x2UL
1587 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD2 0x4UL
1588 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_1GB 0x8UL
1589 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD3 0x10UL
1590 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_RSVD4 0x20UL
1591 #define PORT_PHY_QCFG_RESP_LINK_PARTNER_ADV_EEE_LINK_SPEED_MASK_10GB 0x40UL
1592 __le32 xcvr_identifier_type_tx_lpi_timer;
1593 #define PORT_PHY_QCFG_RESP_TX_LPI_TIMER_MASK 0xffffffUL
1594 #define PORT_PHY_QCFG_RESP_TX_LPI_TIMER_SFT 0
1595 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_MASK 0xff000000UL
1596 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFT 24
1597 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_UNKNOWN (0x0UL << 24)
1598 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_SFP (0x3UL << 24)
1599 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP (0xcUL << 24)
1600 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFPPLUS (0xdUL << 24)
1601 #define PORT_PHY_QCFG_RESP_XCVR_IDENTIFIER_TYPE_QSFP28 (0x11UL << 24)
1603 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_NONE_SUPPORTED 0x1UL
1604 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_SUPPORTED 0x2UL
1605 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_AUTONEG_ENABLED 0x4UL
1606 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_SUPPORTED 0x8UL
1607 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE74_ENABLED 0x10UL
1608 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_SUPPORTED 0x20UL
1609 #define PORT_PHY_QCFG_RESP_FEC_CFG_FEC_CLAUSE91_ENABLED 0x40UL
1612 char phy_vendor_name[16];
1613 char phy_vendor_partnumber[16];
1621 /* hwrm_port_mac_cfg */
1622 /* Input (40 bytes) */
1623 struct hwrm_port_mac_cfg_input {
1630 #define PORT_MAC_CFG_REQ_FLAGS_MATCH_LINK 0x1UL
1631 #define PORT_MAC_CFG_REQ_FLAGS_VLAN_PRI2COS_ENABLE 0x2UL
1632 #define PORT_MAC_CFG_REQ_FLAGS_TUNNEL_PRI2COS_ENABLE 0x4UL
1633 #define PORT_MAC_CFG_REQ_FLAGS_IP_DSCP2COS_ENABLE 0x8UL
1634 #define PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_ENABLE 0x10UL
1635 #define PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_DISABLE 0x20UL
1636 #define PORT_MAC_CFG_REQ_FLAGS_PTP_TX_TS_CAPTURE_ENABLE 0x40UL
1637 #define PORT_MAC_CFG_REQ_FLAGS_PTP_TX_TS_CAPTURE_DISABLE 0x80UL
1638 #define PORT_MAC_CFG_REQ_FLAGS_OOB_WOL_ENABLE 0x100UL
1639 #define PORT_MAC_CFG_REQ_FLAGS_OOB_WOL_DISABLE 0x200UL
1640 #define PORT_MAC_CFG_REQ_FLAGS_VLAN_PRI2COS_DISABLE 0x400UL
1641 #define PORT_MAC_CFG_REQ_FLAGS_TUNNEL_PRI2COS_DISABLE 0x800UL
1642 #define PORT_MAC_CFG_REQ_FLAGS_IP_DSCP2COS_DISABLE 0x1000UL
1644 #define PORT_MAC_CFG_REQ_ENABLES_IPG 0x1UL
1645 #define PORT_MAC_CFG_REQ_ENABLES_LPBK 0x2UL
1646 #define PORT_MAC_CFG_REQ_ENABLES_VLAN_PRI2COS_MAP_PRI 0x4UL
1647 #define PORT_MAC_CFG_REQ_ENABLES_RESERVED1 0x8UL
1648 #define PORT_MAC_CFG_REQ_ENABLES_TUNNEL_PRI2COS_MAP_PRI 0x10UL
1649 #define PORT_MAC_CFG_REQ_ENABLES_DSCP2COS_MAP_PRI 0x20UL
1650 #define PORT_MAC_CFG_REQ_ENABLES_RX_TS_CAPTURE_PTP_MSG_TYPE 0x40UL
1651 #define PORT_MAC_CFG_REQ_ENABLES_TX_TS_CAPTURE_PTP_MSG_TYPE 0x80UL
1652 #define PORT_MAC_CFG_REQ_ENABLES_COS_FIELD_CFG 0x100UL
1656 #define PORT_MAC_CFG_REQ_LPBK_NONE 0x0UL
1657 #define PORT_MAC_CFG_REQ_LPBK_LOCAL 0x1UL
1658 #define PORT_MAC_CFG_REQ_LPBK_REMOTE 0x2UL
1659 u8 vlan_pri2cos_map_pri;
1661 u8 tunnel_pri2cos_map_pri;
1662 u8 dscp2pri_map_pri;
1663 __le16 rx_ts_capture_ptp_msg_type;
1664 __le16 tx_ts_capture_ptp_msg_type;
1666 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_RSVD1 0x1UL
1667 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_MASK 0x6UL
1668 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_SFT 1
1669 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_INNERMOST (0x0UL << 1)
1670 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_OUTER (0x1UL << 1)
1671 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_OUTERMOST (0x2UL << 1)
1672 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_UNSPECIFIED (0x3UL << 1)
1673 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_LAST PORT_MAC_CFG_REQ_COS_FIELD_CFG_VLAN_PRI_SEL_UNSPECIFIED
1674 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_MASK 0x18UL
1675 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_SFT 3
1676 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_INNERMOST (0x0UL << 3)
1677 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_OUTER (0x1UL << 3)
1678 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_OUTERMOST (0x2UL << 3)
1679 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_T_VLAN_PRI_SEL_UNSPECIFIED (0x3UL << 3)
1680 #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
1681 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_DEFAULT_COS_MASK 0xe0UL
1682 #define PORT_MAC_CFG_REQ_COS_FIELD_CFG_DEFAULT_COS_SFT 5
1686 /* Output (16 bytes) */
1687 struct hwrm_port_mac_cfg_output {
1696 #define PORT_MAC_CFG_RESP_LPBK_NONE 0x0UL
1697 #define PORT_MAC_CFG_RESP_LPBK_LOCAL 0x1UL
1698 #define PORT_MAC_CFG_RESP_LPBK_REMOTE 0x2UL
1703 /* hwrm_port_qstats */
1704 /* Input (40 bytes) */
1705 struct hwrm_port_qstats_input {
1716 __le64 tx_stat_host_addr;
1717 __le64 rx_stat_host_addr;
1720 /* Output (16 bytes) */
1721 struct hwrm_port_qstats_output {
1726 __le16 tx_stat_size;
1727 __le16 rx_stat_size;
1734 /* hwrm_port_lpbk_qstats */
1735 /* Input (16 bytes) */
1736 struct hwrm_port_lpbk_qstats_input {
1744 /* Output (96 bytes) */
1745 struct hwrm_port_lpbk_qstats_output {
1750 __le64 lpbk_ucast_frames;
1751 __le64 lpbk_mcast_frames;
1752 __le64 lpbk_bcast_frames;
1753 __le64 lpbk_ucast_bytes;
1754 __le64 lpbk_mcast_bytes;
1755 __le64 lpbk_bcast_bytes;
1756 __le64 tx_stat_discard;
1757 __le64 tx_stat_error;
1758 __le64 rx_stat_discard;
1759 __le64 rx_stat_error;
1767 /* hwrm_port_clr_stats */
1768 /* Input (24 bytes) */
1769 struct hwrm_port_clr_stats_input {
1779 /* Output (16 bytes) */
1780 struct hwrm_port_clr_stats_output {
1792 /* hwrm_port_lpbk_clr_stats */
1793 /* Input (16 bytes) */
1794 struct hwrm_port_lpbk_clr_stats_input {
1802 /* Output (16 bytes) */
1803 struct hwrm_port_lpbk_clr_stats_output {
1815 /* hwrm_port_phy_qcaps */
1816 /* Input (24 bytes) */
1817 struct hwrm_port_phy_qcaps_input {
1827 /* Output (24 bytes) */
1828 struct hwrm_port_phy_qcaps_output {
1834 #define PORT_PHY_QCAPS_RESP_EEE_SUPPORTED 0x1UL
1835 #define PORT_PHY_QCAPS_RESP_RSVD1_MASK 0xfeUL
1836 #define PORT_PHY_QCAPS_RESP_RSVD1_SFT 1
1838 __le16 supported_speeds_force_mode;
1839 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100MBHD 0x1UL
1840 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100MB 0x2UL
1841 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_1GBHD 0x4UL
1842 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_1GB 0x8UL
1843 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_2GB 0x10UL
1844 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_2_5GB 0x20UL
1845 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10GB 0x40UL
1846 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_20GB 0x80UL
1847 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_25GB 0x100UL
1848 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_40GB 0x200UL
1849 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_50GB 0x400UL
1850 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_100GB 0x800UL
1851 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10MBHD 0x1000UL
1852 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_FORCE_MODE_10MB 0x2000UL
1853 __le16 supported_speeds_auto_mode;
1854 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100MBHD 0x1UL
1855 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100MB 0x2UL
1856 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_1GBHD 0x4UL
1857 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_1GB 0x8UL
1858 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_2GB 0x10UL
1859 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_2_5GB 0x20UL
1860 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10GB 0x40UL
1861 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_20GB 0x80UL
1862 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_25GB 0x100UL
1863 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_40GB 0x200UL
1864 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_50GB 0x400UL
1865 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_100GB 0x800UL
1866 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10MBHD 0x1000UL
1867 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_AUTO_MODE_10MB 0x2000UL
1868 __le16 supported_speeds_eee_mode;
1869 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD1 0x1UL
1870 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_100MB 0x2UL
1871 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD2 0x4UL
1872 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_1GB 0x8UL
1873 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD3 0x10UL
1874 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_RSVD4 0x20UL
1875 #define PORT_PHY_QCAPS_RESP_SUPPORTED_SPEEDS_EEE_MODE_10GB 0x40UL
1876 __le32 tx_lpi_timer_low;
1877 #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_LOW_MASK 0xffffffUL
1878 #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_LOW_SFT 0
1879 #define PORT_PHY_QCAPS_RESP_RSVD2_MASK 0xff000000UL
1880 #define PORT_PHY_QCAPS_RESP_RSVD2_SFT 24
1881 __le32 valid_tx_lpi_timer_high;
1882 #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_MASK 0xffffffUL
1883 #define PORT_PHY_QCAPS_RESP_TX_LPI_TIMER_HIGH_SFT 0
1884 #define PORT_PHY_QCAPS_RESP_VALID_MASK 0xff000000UL
1885 #define PORT_PHY_QCAPS_RESP_VALID_SFT 24
1888 /* hwrm_port_phy_i2c_read */
1889 /* Input (40 bytes) */
1890 struct hwrm_port_phy_i2c_read_input {
1898 #define PORT_PHY_I2C_READ_REQ_ENABLES_PAGE_OFFSET 0x1UL
1908 /* Output (80 bytes) */
1909 struct hwrm_port_phy_i2c_read_output {
1922 /* hwrm_queue_qportcfg */
1923 /* Input (24 bytes) */
1924 struct hwrm_queue_qportcfg_input {
1931 #define QUEUE_QPORTCFG_REQ_FLAGS_PATH 0x1UL
1932 #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_TX 0x0UL
1933 #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_RX 0x1UL
1934 #define QUEUE_QPORTCFG_REQ_FLAGS_PATH_LAST QUEUE_QPORTCFG_REQ_FLAGS_PATH_RX
1939 /* Output (32 bytes) */
1940 struct hwrm_queue_qportcfg_output {
1945 u8 max_configurable_queues;
1946 u8 max_configurable_lossless_queues;
1947 u8 queue_cfg_allowed;
1949 #define QUEUE_QPORTCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG 0x1UL
1950 u8 queue_pfcenable_cfg_allowed;
1951 u8 queue_pri2cos_cfg_allowed;
1952 u8 queue_cos2bw_cfg_allowed;
1954 u8 queue_id0_service_profile;
1955 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY 0x0UL
1956 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS 0x1UL
1957 #define QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_UNKNOWN 0xffUL
1959 u8 queue_id1_service_profile;
1960 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSY 0x0UL
1961 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_LOSSLESS 0x1UL
1962 #define QUEUE_QPORTCFG_RESP_QUEUE_ID1_SERVICE_PROFILE_UNKNOWN 0xffUL
1964 u8 queue_id2_service_profile;
1965 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSY 0x0UL
1966 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_LOSSLESS 0x1UL
1967 #define QUEUE_QPORTCFG_RESP_QUEUE_ID2_SERVICE_PROFILE_UNKNOWN 0xffUL
1969 u8 queue_id3_service_profile;
1970 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSY 0x0UL
1971 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_LOSSLESS 0x1UL
1972 #define QUEUE_QPORTCFG_RESP_QUEUE_ID3_SERVICE_PROFILE_UNKNOWN 0xffUL
1974 u8 queue_id4_service_profile;
1975 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSY 0x0UL
1976 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_LOSSLESS 0x1UL
1977 #define QUEUE_QPORTCFG_RESP_QUEUE_ID4_SERVICE_PROFILE_UNKNOWN 0xffUL
1979 u8 queue_id5_service_profile;
1980 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSY 0x0UL
1981 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_LOSSLESS 0x1UL
1982 #define QUEUE_QPORTCFG_RESP_QUEUE_ID5_SERVICE_PROFILE_UNKNOWN 0xffUL
1984 u8 queue_id6_service_profile;
1985 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSY 0x0UL
1986 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_LOSSLESS 0x1UL
1987 #define QUEUE_QPORTCFG_RESP_QUEUE_ID6_SERVICE_PROFILE_UNKNOWN 0xffUL
1989 u8 queue_id7_service_profile;
1990 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSY 0x0UL
1991 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_LOSSLESS 0x1UL
1992 #define QUEUE_QPORTCFG_RESP_QUEUE_ID7_SERVICE_PROFILE_UNKNOWN 0xffUL
1996 /* hwrm_queue_cfg */
1997 /* Input (40 bytes) */
1998 struct hwrm_queue_cfg_input {
2005 #define QUEUE_CFG_REQ_FLAGS_PATH_MASK 0x3UL
2006 #define QUEUE_CFG_REQ_FLAGS_PATH_SFT 0
2007 #define QUEUE_CFG_REQ_FLAGS_PATH_TX 0x0UL
2008 #define QUEUE_CFG_REQ_FLAGS_PATH_RX 0x1UL
2009 #define QUEUE_CFG_REQ_FLAGS_PATH_BIDIR 0x2UL
2010 #define QUEUE_CFG_REQ_FLAGS_PATH_LAST QUEUE_CFG_REQ_FLAGS_PATH_BIDIR
2012 #define QUEUE_CFG_REQ_ENABLES_DFLT_LEN 0x1UL
2013 #define QUEUE_CFG_REQ_ENABLES_SERVICE_PROFILE 0x2UL
2017 #define QUEUE_CFG_REQ_SERVICE_PROFILE_LOSSY 0x0UL
2018 #define QUEUE_CFG_REQ_SERVICE_PROFILE_LOSSLESS 0x1UL
2019 #define QUEUE_CFG_REQ_SERVICE_PROFILE_UNKNOWN 0xffUL
2023 /* Output (16 bytes) */
2024 struct hwrm_queue_cfg_output {
2036 /* hwrm_queue_pfcenable_qcfg */
2037 /* Input (24 bytes) */
2038 struct hwrm_queue_pfcenable_qcfg_input {
2048 /* Output (16 bytes) */
2049 struct hwrm_queue_pfcenable_qcfg_output {
2055 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI0_PFC_ENABLED 0x1UL
2056 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI1_PFC_ENABLED 0x2UL
2057 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI2_PFC_ENABLED 0x4UL
2058 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI3_PFC_ENABLED 0x8UL
2059 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI4_PFC_ENABLED 0x10UL
2060 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI5_PFC_ENABLED 0x20UL
2061 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI6_PFC_ENABLED 0x40UL
2062 #define QUEUE_PFCENABLE_QCFG_RESP_FLAGS_PRI7_PFC_ENABLED 0x80UL
2069 /* hwrm_queue_pfcenable_cfg */
2070 /* Input (24 bytes) */
2071 struct hwrm_queue_pfcenable_cfg_input {
2078 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI0_PFC_ENABLED 0x1UL
2079 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI1_PFC_ENABLED 0x2UL
2080 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI2_PFC_ENABLED 0x4UL
2081 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI3_PFC_ENABLED 0x8UL
2082 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI4_PFC_ENABLED 0x10UL
2083 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI5_PFC_ENABLED 0x20UL
2084 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI6_PFC_ENABLED 0x40UL
2085 #define QUEUE_PFCENABLE_CFG_REQ_FLAGS_PRI7_PFC_ENABLED 0x80UL
2090 /* Output (16 bytes) */
2091 struct hwrm_queue_pfcenable_cfg_output {
2103 /* hwrm_queue_pri2cos_qcfg */
2104 /* Input (24 bytes) */
2105 struct hwrm_queue_pri2cos_qcfg_input {
2112 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH 0x1UL
2113 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_TX (0x0UL << 0)
2114 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_RX (0x1UL << 0)
2115 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_LAST QUEUE_PRI2COS_QCFG_REQ_FLAGS_PATH_RX
2116 #define QUEUE_PRI2COS_QCFG_REQ_FLAGS_IVLAN 0x2UL
2121 /* Output (24 bytes) */
2122 struct hwrm_queue_pri2cos_qcfg_output {
2127 u8 pri0_cos_queue_id;
2128 u8 pri1_cos_queue_id;
2129 u8 pri2_cos_queue_id;
2130 u8 pri3_cos_queue_id;
2131 u8 pri4_cos_queue_id;
2132 u8 pri5_cos_queue_id;
2133 u8 pri6_cos_queue_id;
2134 u8 pri7_cos_queue_id;
2136 #define QUEUE_PRI2COS_QCFG_RESP_QUEUE_CFG_INFO_ASYM_CFG 0x1UL
2145 /* hwrm_queue_pri2cos_cfg */
2146 /* Input (40 bytes) */
2147 struct hwrm_queue_pri2cos_cfg_input {
2154 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_MASK 0x3UL
2155 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_SFT 0
2156 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_TX (0x0UL << 0)
2157 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_RX (0x1UL << 0)
2158 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_BIDIR (0x2UL << 0)
2159 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_LAST QUEUE_PRI2COS_CFG_REQ_FLAGS_PATH_BIDIR
2160 #define QUEUE_PRI2COS_CFG_REQ_FLAGS_IVLAN 0x4UL
2162 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI0_COS_QUEUE_ID 0x1UL
2163 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI1_COS_QUEUE_ID 0x2UL
2164 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI2_COS_QUEUE_ID 0x4UL
2165 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI3_COS_QUEUE_ID 0x8UL
2166 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI4_COS_QUEUE_ID 0x10UL
2167 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI5_COS_QUEUE_ID 0x20UL
2168 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI6_COS_QUEUE_ID 0x40UL
2169 #define QUEUE_PRI2COS_CFG_REQ_ENABLES_PRI7_COS_QUEUE_ID 0x80UL
2171 u8 pri0_cos_queue_id;
2172 u8 pri1_cos_queue_id;
2173 u8 pri2_cos_queue_id;
2174 u8 pri3_cos_queue_id;
2175 u8 pri4_cos_queue_id;
2176 u8 pri5_cos_queue_id;
2177 u8 pri6_cos_queue_id;
2178 u8 pri7_cos_queue_id;
2182 /* Output (16 bytes) */
2183 struct hwrm_queue_pri2cos_cfg_output {
2195 /* hwrm_queue_cos2bw_qcfg */
2196 /* Input (24 bytes) */
2197 struct hwrm_queue_cos2bw_qcfg_input {
2207 /* Output (112 bytes) */
2208 struct hwrm_queue_cos2bw_qcfg_output {
2216 __le32 queue_id0_min_bw;
2217 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_MASK 0xfffffffUL
2218 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_SFT 0
2219 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_RSVD 0x10000000UL
2220 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2221 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_SFT 29
2222 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2223 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2224 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2225 #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
2226 __le32 queue_id0_max_bw;
2227 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_MASK 0xfffffffUL
2228 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_SFT 0
2229 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_RSVD 0x10000000UL
2230 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2231 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_SFT 29
2232 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2233 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2234 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2235 #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
2236 u8 queue_id0_tsa_assign;
2237 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_SP 0x0UL
2238 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_ETS 0x1UL
2239 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2240 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_RESERVED_LAST 0xffUL
2241 u8 queue_id0_pri_lvl;
2242 u8 queue_id0_bw_weight;
2244 __le32 queue_id1_min_bw;
2245 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_MASK 0xfffffffUL
2246 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_SFT 0
2247 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_RSVD 0x10000000UL
2248 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2249 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_SFT 29
2250 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2251 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2252 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2253 #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
2254 __le32 queue_id1_max_bw;
2255 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_MASK 0xfffffffUL
2256 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_SFT 0
2257 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_RSVD 0x10000000UL
2258 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2259 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_SFT 29
2260 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2261 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2262 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2263 #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
2264 u8 queue_id1_tsa_assign;
2265 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_SP 0x0UL
2266 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_ETS 0x1UL
2267 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2268 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID1_TSA_ASSIGN_RESERVED_LAST 0xffUL
2269 u8 queue_id1_pri_lvl;
2270 u8 queue_id1_bw_weight;
2272 __le32 queue_id2_min_bw;
2273 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_MASK 0xfffffffUL
2274 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_SFT 0
2275 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_RSVD 0x10000000UL
2276 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2277 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_SFT 29
2278 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2279 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2280 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2281 #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
2282 __le32 queue_id2_max_bw;
2283 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_MASK 0xfffffffUL
2284 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_SFT 0
2285 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_RSVD 0x10000000UL
2286 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2287 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_SFT 29
2288 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2289 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2290 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2291 #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
2292 u8 queue_id2_tsa_assign;
2293 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_SP 0x0UL
2294 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_ETS 0x1UL
2295 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2296 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID2_TSA_ASSIGN_RESERVED_LAST 0xffUL
2297 u8 queue_id2_pri_lvl;
2298 u8 queue_id2_bw_weight;
2300 __le32 queue_id3_min_bw;
2301 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_MASK 0xfffffffUL
2302 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_SFT 0
2303 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_RSVD 0x10000000UL
2304 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2305 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_SFT 29
2306 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2307 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2308 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2309 #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
2310 __le32 queue_id3_max_bw;
2311 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_MASK 0xfffffffUL
2312 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_SFT 0
2313 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_RSVD 0x10000000UL
2314 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2315 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_SFT 29
2316 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2317 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2318 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2319 #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
2320 u8 queue_id3_tsa_assign;
2321 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_SP 0x0UL
2322 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_ETS 0x1UL
2323 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2324 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID3_TSA_ASSIGN_RESERVED_LAST 0xffUL
2325 u8 queue_id3_pri_lvl;
2326 u8 queue_id3_bw_weight;
2328 __le32 queue_id4_min_bw;
2329 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_MASK 0xfffffffUL
2330 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_SFT 0
2331 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_RSVD 0x10000000UL
2332 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2333 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_SFT 29
2334 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2335 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2336 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2337 #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
2338 __le32 queue_id4_max_bw;
2339 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_MASK 0xfffffffUL
2340 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_SFT 0
2341 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_RSVD 0x10000000UL
2342 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2343 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_SFT 29
2344 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2345 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2346 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2347 #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
2348 u8 queue_id4_tsa_assign;
2349 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_SP 0x0UL
2350 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_ETS 0x1UL
2351 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2352 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID4_TSA_ASSIGN_RESERVED_LAST 0xffUL
2353 u8 queue_id4_pri_lvl;
2354 u8 queue_id4_bw_weight;
2356 __le32 queue_id5_min_bw;
2357 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_MASK 0xfffffffUL
2358 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_SFT 0
2359 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_RSVD 0x10000000UL
2360 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2361 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_SFT 29
2362 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2363 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2364 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2365 #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
2366 __le32 queue_id5_max_bw;
2367 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_MASK 0xfffffffUL
2368 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_SFT 0
2369 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_RSVD 0x10000000UL
2370 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2371 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_SFT 29
2372 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2373 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2374 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2375 #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
2376 u8 queue_id5_tsa_assign;
2377 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_SP 0x0UL
2378 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_ETS 0x1UL
2379 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2380 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID5_TSA_ASSIGN_RESERVED_LAST 0xffUL
2381 u8 queue_id5_pri_lvl;
2382 u8 queue_id5_bw_weight;
2384 __le32 queue_id6_min_bw;
2385 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_MASK 0xfffffffUL
2386 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_SFT 0
2387 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_RSVD 0x10000000UL
2388 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2389 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_SFT 29
2390 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2391 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2392 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2393 #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
2394 __le32 queue_id6_max_bw;
2395 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_MASK 0xfffffffUL
2396 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_SFT 0
2397 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_RSVD 0x10000000UL
2398 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2399 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_SFT 29
2400 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2401 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2402 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2403 #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
2404 u8 queue_id6_tsa_assign;
2405 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_SP 0x0UL
2406 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_ETS 0x1UL
2407 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2408 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID6_TSA_ASSIGN_RESERVED_LAST 0xffUL
2409 u8 queue_id6_pri_lvl;
2410 u8 queue_id6_bw_weight;
2412 __le32 queue_id7_min_bw;
2413 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_MASK 0xfffffffUL
2414 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_SFT 0
2415 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_RSVD 0x10000000UL
2416 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2417 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_SFT 29
2418 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2419 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2420 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2421 #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
2422 __le32 queue_id7_max_bw;
2423 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_MASK 0xfffffffUL
2424 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_SFT 0
2425 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_RSVD 0x10000000UL
2426 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2427 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_SFT 29
2428 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2429 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2430 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2431 #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
2432 u8 queue_id7_tsa_assign;
2433 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_SP 0x0UL
2434 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_ETS 0x1UL
2435 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2436 #define QUEUE_COS2BW_QCFG_RESP_QUEUE_ID7_TSA_ASSIGN_RESERVED_LAST 0xffUL
2437 u8 queue_id7_pri_lvl;
2438 u8 queue_id7_bw_weight;
2446 /* hwrm_queue_cos2bw_cfg */
2447 /* Input (128 bytes) */
2448 struct hwrm_queue_cos2bw_cfg_input {
2456 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID0_VALID 0x1UL
2457 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID1_VALID 0x2UL
2458 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID2_VALID 0x4UL
2459 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID3_VALID 0x8UL
2460 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID4_VALID 0x10UL
2461 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID5_VALID 0x20UL
2462 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID6_VALID 0x40UL
2463 #define QUEUE_COS2BW_CFG_REQ_ENABLES_COS_QUEUE_ID7_VALID 0x80UL
2467 __le32 queue_id0_min_bw;
2468 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_MASK 0xfffffffUL
2469 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_SFT 0
2470 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_RSVD 0x10000000UL
2471 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2472 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_SFT 29
2473 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2474 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2475 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2476 #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
2477 __le32 queue_id0_max_bw;
2478 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_MASK 0xfffffffUL
2479 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_SFT 0
2480 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_RSVD 0x10000000UL
2481 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2482 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_SFT 29
2483 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2484 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2485 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2486 #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
2487 u8 queue_id0_tsa_assign;
2488 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_SP 0x0UL
2489 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_ETS 0x1UL
2490 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2491 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID0_TSA_ASSIGN_RESERVED_LAST 0xffUL
2492 u8 queue_id0_pri_lvl;
2493 u8 queue_id0_bw_weight;
2495 __le32 queue_id1_min_bw;
2496 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_MASK 0xfffffffUL
2497 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_SFT 0
2498 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_RSVD 0x10000000UL
2499 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2500 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_SFT 29
2501 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2502 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2503 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2504 #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
2505 __le32 queue_id1_max_bw;
2506 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_MASK 0xfffffffUL
2507 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_SFT 0
2508 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_RSVD 0x10000000UL
2509 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2510 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_SFT 29
2511 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2512 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2513 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2514 #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
2515 u8 queue_id1_tsa_assign;
2516 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_SP 0x0UL
2517 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_ETS 0x1UL
2518 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2519 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID1_TSA_ASSIGN_RESERVED_LAST 0xffUL
2520 u8 queue_id1_pri_lvl;
2521 u8 queue_id1_bw_weight;
2523 __le32 queue_id2_min_bw;
2524 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_MASK 0xfffffffUL
2525 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_SFT 0
2526 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_RSVD 0x10000000UL
2527 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2528 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_SFT 29
2529 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2530 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2531 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2532 #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
2533 __le32 queue_id2_max_bw;
2534 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_MASK 0xfffffffUL
2535 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_SFT 0
2536 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_RSVD 0x10000000UL
2537 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2538 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_SFT 29
2539 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2540 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2541 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2542 #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
2543 u8 queue_id2_tsa_assign;
2544 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_SP 0x0UL
2545 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_ETS 0x1UL
2546 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2547 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID2_TSA_ASSIGN_RESERVED_LAST 0xffUL
2548 u8 queue_id2_pri_lvl;
2549 u8 queue_id2_bw_weight;
2551 __le32 queue_id3_min_bw;
2552 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_MASK 0xfffffffUL
2553 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_SFT 0
2554 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_RSVD 0x10000000UL
2555 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2556 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_SFT 29
2557 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2558 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2559 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2560 #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
2561 __le32 queue_id3_max_bw;
2562 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_MASK 0xfffffffUL
2563 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_SFT 0
2564 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_RSVD 0x10000000UL
2565 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2566 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_SFT 29
2567 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2568 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2569 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2570 #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
2571 u8 queue_id3_tsa_assign;
2572 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_SP 0x0UL
2573 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_ETS 0x1UL
2574 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2575 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID3_TSA_ASSIGN_RESERVED_LAST 0xffUL
2576 u8 queue_id3_pri_lvl;
2577 u8 queue_id3_bw_weight;
2579 __le32 queue_id4_min_bw;
2580 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_MASK 0xfffffffUL
2581 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_SFT 0
2582 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_RSVD 0x10000000UL
2583 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2584 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_SFT 29
2585 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2586 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2587 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2588 #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
2589 __le32 queue_id4_max_bw;
2590 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_MASK 0xfffffffUL
2591 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_SFT 0
2592 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_RSVD 0x10000000UL
2593 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2594 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_SFT 29
2595 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2596 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2597 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2598 #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
2599 u8 queue_id4_tsa_assign;
2600 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_SP 0x0UL
2601 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_ETS 0x1UL
2602 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2603 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID4_TSA_ASSIGN_RESERVED_LAST 0xffUL
2604 u8 queue_id4_pri_lvl;
2605 u8 queue_id4_bw_weight;
2607 __le32 queue_id5_min_bw;
2608 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_MASK 0xfffffffUL
2609 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_SFT 0
2610 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_RSVD 0x10000000UL
2611 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2612 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_SFT 29
2613 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2614 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2615 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2616 #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
2617 __le32 queue_id5_max_bw;
2618 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_MASK 0xfffffffUL
2619 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_SFT 0
2620 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_RSVD 0x10000000UL
2621 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2622 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_SFT 29
2623 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2624 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2625 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2626 #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
2627 u8 queue_id5_tsa_assign;
2628 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_SP 0x0UL
2629 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_ETS 0x1UL
2630 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2631 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID5_TSA_ASSIGN_RESERVED_LAST 0xffUL
2632 u8 queue_id5_pri_lvl;
2633 u8 queue_id5_bw_weight;
2635 __le32 queue_id6_min_bw;
2636 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_MASK 0xfffffffUL
2637 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_SFT 0
2638 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_RSVD 0x10000000UL
2639 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2640 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_SFT 29
2641 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2642 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2643 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2644 #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
2645 __le32 queue_id6_max_bw;
2646 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_MASK 0xfffffffUL
2647 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_SFT 0
2648 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_RSVD 0x10000000UL
2649 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2650 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_SFT 29
2651 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2652 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2653 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2654 #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
2655 u8 queue_id6_tsa_assign;
2656 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_SP 0x0UL
2657 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_ETS 0x1UL
2658 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2659 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID6_TSA_ASSIGN_RESERVED_LAST 0xffUL
2660 u8 queue_id6_pri_lvl;
2661 u8 queue_id6_bw_weight;
2663 __le32 queue_id7_min_bw;
2664 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_MASK 0xfffffffUL
2665 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_SFT 0
2666 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_RSVD 0x10000000UL
2667 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2668 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_SFT 29
2669 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2670 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2671 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MIN_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2672 #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
2673 __le32 queue_id7_max_bw;
2674 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_MASK 0xfffffffUL
2675 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_SFT 0
2676 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_RSVD 0x10000000UL
2677 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
2678 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_SFT 29
2679 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
2680 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
2681 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
2682 #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
2683 u8 queue_id7_tsa_assign;
2684 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_SP 0x0UL
2685 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_ETS 0x1UL
2686 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_RESERVED_FIRST 0x2UL
2687 #define QUEUE_COS2BW_CFG_REQ_QUEUE_ID7_TSA_ASSIGN_RESERVED_LAST 0xffUL
2688 u8 queue_id7_pri_lvl;
2689 u8 queue_id7_bw_weight;
2693 /* Output (16 bytes) */
2694 struct hwrm_queue_cos2bw_cfg_output {
2706 /* hwrm_vnic_alloc */
2707 /* Input (24 bytes) */
2708 struct hwrm_vnic_alloc_input {
2715 #define VNIC_ALLOC_REQ_FLAGS_DEFAULT 0x1UL
2719 /* Output (16 bytes) */
2720 struct hwrm_vnic_alloc_output {
2732 /* hwrm_vnic_free */
2733 /* Input (24 bytes) */
2734 struct hwrm_vnic_free_input {
2744 /* Output (16 bytes) */
2745 struct hwrm_vnic_free_output {
2758 /* Input (40 bytes) */
2759 struct hwrm_vnic_cfg_input {
2766 #define VNIC_CFG_REQ_FLAGS_DEFAULT 0x1UL
2767 #define VNIC_CFG_REQ_FLAGS_VLAN_STRIP_MODE 0x2UL
2768 #define VNIC_CFG_REQ_FLAGS_BD_STALL_MODE 0x4UL
2769 #define VNIC_CFG_REQ_FLAGS_ROCE_DUAL_VNIC_MODE 0x8UL
2770 #define VNIC_CFG_REQ_FLAGS_ROCE_ONLY_VNIC_MODE 0x10UL
2771 #define VNIC_CFG_REQ_FLAGS_RSS_DFLT_CR_MODE 0x20UL
2773 #define VNIC_CFG_REQ_ENABLES_DFLT_RING_GRP 0x1UL
2774 #define VNIC_CFG_REQ_ENABLES_RSS_RULE 0x2UL
2775 #define VNIC_CFG_REQ_ENABLES_COS_RULE 0x4UL
2776 #define VNIC_CFG_REQ_ENABLES_LB_RULE 0x8UL
2777 #define VNIC_CFG_REQ_ENABLES_MRU 0x10UL
2779 __le16 dflt_ring_grp;
2787 /* Output (16 bytes) */
2788 struct hwrm_vnic_cfg_output {
2800 /* hwrm_vnic_tpa_cfg */
2801 /* Input (40 bytes) */
2802 struct hwrm_vnic_tpa_cfg_input {
2809 #define VNIC_TPA_CFG_REQ_FLAGS_TPA 0x1UL
2810 #define VNIC_TPA_CFG_REQ_FLAGS_ENCAP_TPA 0x2UL
2811 #define VNIC_TPA_CFG_REQ_FLAGS_RSC_WND_UPDATE 0x4UL
2812 #define VNIC_TPA_CFG_REQ_FLAGS_GRO 0x8UL
2813 #define VNIC_TPA_CFG_REQ_FLAGS_AGG_WITH_ECN 0x10UL
2814 #define VNIC_TPA_CFG_REQ_FLAGS_AGG_WITH_SAME_GRE_SEQ 0x20UL
2815 #define VNIC_TPA_CFG_REQ_FLAGS_GRO_IPID_CHECK 0x40UL
2816 #define VNIC_TPA_CFG_REQ_FLAGS_GRO_TTL_CHECK 0x80UL
2818 #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGG_SEGS 0x1UL
2819 #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGGS 0x2UL
2820 #define VNIC_TPA_CFG_REQ_ENABLES_MAX_AGG_TIMER 0x4UL
2821 #define VNIC_TPA_CFG_REQ_ENABLES_MIN_AGG_LEN 0x8UL
2823 __le16 max_agg_segs;
2824 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_1 0x0UL
2825 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_2 0x1UL
2826 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_4 0x2UL
2827 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_8 0x3UL
2828 #define VNIC_TPA_CFG_REQ_MAX_AGG_SEGS_MAX 0x1fUL
2830 #define VNIC_TPA_CFG_REQ_MAX_AGGS_1 0x0UL
2831 #define VNIC_TPA_CFG_REQ_MAX_AGGS_2 0x1UL
2832 #define VNIC_TPA_CFG_REQ_MAX_AGGS_4 0x2UL
2833 #define VNIC_TPA_CFG_REQ_MAX_AGGS_8 0x3UL
2834 #define VNIC_TPA_CFG_REQ_MAX_AGGS_16 0x4UL
2835 #define VNIC_TPA_CFG_REQ_MAX_AGGS_MAX 0x7UL
2838 __le32 max_agg_timer;
2842 /* Output (16 bytes) */
2843 struct hwrm_vnic_tpa_cfg_output {
2855 /* hwrm_vnic_rss_cfg */
2856 /* Input (48 bytes) */
2857 struct hwrm_vnic_rss_cfg_input {
2864 #define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV4 0x1UL
2865 #define VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV4 0x2UL
2866 #define VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV4 0x4UL
2867 #define VNIC_RSS_CFG_REQ_HASH_TYPE_IPV6 0x8UL
2868 #define VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV6 0x10UL
2869 #define VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV6 0x20UL
2871 __le64 ring_grp_tbl_addr;
2872 __le64 hash_key_tbl_addr;
2877 /* Output (16 bytes) */
2878 struct hwrm_vnic_rss_cfg_output {
2890 /* hwrm_vnic_plcmodes_cfg */
2891 /* Input (40 bytes) */
2892 struct hwrm_vnic_plcmodes_cfg_input {
2899 #define VNIC_PLCMODES_CFG_REQ_FLAGS_REGULAR_PLACEMENT 0x1UL
2900 #define VNIC_PLCMODES_CFG_REQ_FLAGS_JUMBO_PLACEMENT 0x2UL
2901 #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV4 0x4UL
2902 #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV6 0x8UL
2903 #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_FCOE 0x10UL
2904 #define VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_ROCE 0x20UL
2906 #define VNIC_PLCMODES_CFG_REQ_ENABLES_JUMBO_THRESH_VALID 0x1UL
2907 #define VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_OFFSET_VALID 0x2UL
2908 #define VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_THRESHOLD_VALID 0x4UL
2910 __le16 jumbo_thresh;
2912 __le16 hds_threshold;
2916 /* Output (16 bytes) */
2917 struct hwrm_vnic_plcmodes_cfg_output {
2929 /* hwrm_vnic_rss_cos_lb_ctx_alloc */
2930 /* Input (16 bytes) */
2931 struct hwrm_vnic_rss_cos_lb_ctx_alloc_input {
2939 /* Output (16 bytes) */
2940 struct hwrm_vnic_rss_cos_lb_ctx_alloc_output {
2945 __le16 rss_cos_lb_ctx_id;
2954 /* hwrm_vnic_rss_cos_lb_ctx_free */
2955 /* Input (24 bytes) */
2956 struct hwrm_vnic_rss_cos_lb_ctx_free_input {
2962 __le16 rss_cos_lb_ctx_id;
2966 /* Output (16 bytes) */
2967 struct hwrm_vnic_rss_cos_lb_ctx_free_output {
2979 /* hwrm_ring_alloc */
2980 /* Input (80 bytes) */
2981 struct hwrm_ring_alloc_input {
2988 #define RING_ALLOC_REQ_ENABLES_RESERVED1 0x1UL
2989 #define RING_ALLOC_REQ_ENABLES_RING_ARB_CFG 0x2UL
2990 #define RING_ALLOC_REQ_ENABLES_RESERVED3 0x4UL
2991 #define RING_ALLOC_REQ_ENABLES_STAT_CTX_ID_VALID 0x8UL
2992 #define RING_ALLOC_REQ_ENABLES_RESERVED4 0x10UL
2993 #define RING_ALLOC_REQ_ENABLES_MAX_BW_VALID 0x20UL
2995 #define RING_ALLOC_REQ_RING_TYPE_CMPL 0x0UL
2996 #define RING_ALLOC_REQ_RING_TYPE_TX 0x1UL
2997 #define RING_ALLOC_REQ_RING_TYPE_RX 0x2UL
3000 __le64 page_tbl_addr;
3008 __le16 cmpl_ring_id;
3013 __le16 ring_arb_cfg;
3014 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_MASK 0xfUL
3015 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_SFT 0
3016 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_SP (0x1UL << 0)
3017 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_WFQ (0x2UL << 0)
3018 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_LAST RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_WFQ
3019 #define RING_ALLOC_REQ_RING_ARB_CFG_RSVD_MASK 0xf0UL
3020 #define RING_ALLOC_REQ_RING_ARB_CFG_RSVD_SFT 4
3021 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_PARAM_MASK 0xff00UL
3022 #define RING_ALLOC_REQ_RING_ARB_CFG_ARB_POLICY_PARAM_SFT 8
3029 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_MASK 0xfffffffUL
3030 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_SFT 0
3031 #define RING_ALLOC_REQ_MAX_BW_RSVD 0x10000000UL
3032 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_MASK 0xe0000000UL
3033 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_SFT 29
3034 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_MBPS (0x0UL << 29)
3035 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29)
3036 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_INVALID (0x7UL << 29)
3037 #define RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_LAST RING_ALLOC_REQ_MAX_BW_BW_VALUE_UNIT_INVALID
3039 #define RING_ALLOC_REQ_INT_MODE_LEGACY 0x0UL
3040 #define RING_ALLOC_REQ_INT_MODE_RSVD 0x1UL
3041 #define RING_ALLOC_REQ_INT_MODE_MSIX 0x2UL
3042 #define RING_ALLOC_REQ_INT_MODE_POLL 0x3UL
3046 /* Output (16 bytes) */
3047 struct hwrm_ring_alloc_output {
3053 __le16 logical_ring_id;
3060 /* hwrm_ring_free */
3061 /* Input (24 bytes) */
3062 struct hwrm_ring_free_input {
3069 #define RING_FREE_REQ_RING_TYPE_CMPL 0x0UL
3070 #define RING_FREE_REQ_RING_TYPE_TX 0x1UL
3071 #define RING_FREE_REQ_RING_TYPE_RX 0x2UL
3077 /* Output (16 bytes) */
3078 struct hwrm_ring_free_output {
3090 /* hwrm_ring_cmpl_ring_qaggint_params */
3091 /* Input (24 bytes) */
3092 struct hwrm_ring_cmpl_ring_qaggint_params_input {
3102 /* Output (32 bytes) */
3103 struct hwrm_ring_cmpl_ring_qaggint_params_output {
3109 #define RING_CMPL_RING_QAGGINT_PARAMS_RESP_FLAGS_TIMER_RESET 0x1UL
3110 #define RING_CMPL_RING_QAGGINT_PARAMS_RESP_FLAGS_RING_IDLE 0x2UL
3111 __le16 num_cmpl_dma_aggr;
3112 __le16 num_cmpl_dma_aggr_during_int;
3113 __le16 cmpl_aggr_dma_tmr;
3114 __le16 cmpl_aggr_dma_tmr_during_int;
3115 __le16 int_lat_tmr_min;
3116 __le16 int_lat_tmr_max;
3117 __le16 num_cmpl_aggr_int;
3125 /* hwrm_ring_cmpl_ring_cfg_aggint_params */
3126 /* Input (40 bytes) */
3127 struct hwrm_ring_cmpl_ring_cfg_aggint_params_input {
3135 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_TIMER_RESET 0x1UL
3136 #define RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_RING_IDLE 0x2UL
3137 __le16 num_cmpl_dma_aggr;
3138 __le16 num_cmpl_dma_aggr_during_int;
3139 __le16 cmpl_aggr_dma_tmr;
3140 __le16 cmpl_aggr_dma_tmr_during_int;
3141 __le16 int_lat_tmr_min;
3142 __le16 int_lat_tmr_max;
3143 __le16 num_cmpl_aggr_int;
3147 /* Output (16 bytes) */
3148 struct hwrm_ring_cmpl_ring_cfg_aggint_params_output {
3160 /* hwrm_ring_reset */
3161 /* Input (24 bytes) */
3162 struct hwrm_ring_reset_input {
3169 #define RING_RESET_REQ_RING_TYPE_CMPL 0x0UL
3170 #define RING_RESET_REQ_RING_TYPE_TX 0x1UL
3171 #define RING_RESET_REQ_RING_TYPE_RX 0x2UL
3177 /* Output (16 bytes) */
3178 struct hwrm_ring_reset_output {
3190 /* hwrm_ring_grp_alloc */
3191 /* Input (24 bytes) */
3192 struct hwrm_ring_grp_alloc_input {
3204 /* Output (16 bytes) */
3205 struct hwrm_ring_grp_alloc_output {
3210 __le32 ring_group_id;
3217 /* hwrm_ring_grp_free */
3218 /* Input (24 bytes) */
3219 struct hwrm_ring_grp_free_input {
3225 __le32 ring_group_id;
3229 /* Output (16 bytes) */
3230 struct hwrm_ring_grp_free_output {
3242 /* hwrm_cfa_l2_filter_alloc */
3243 /* Input (96 bytes) */
3244 struct hwrm_cfa_l2_filter_alloc_input {
3251 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH 0x1UL
3252 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_TX (0x0UL << 0)
3253 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_RX (0x1UL << 0)
3254 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_LAST CFA_L2_FILTER_ALLOC_REQ_FLAGS_PATH_RX
3255 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_LOOPBACK 0x2UL
3256 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_DROP 0x4UL
3257 #define CFA_L2_FILTER_ALLOC_REQ_FLAGS_OUTERMOST 0x8UL
3259 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_ADDR 0x1UL
3260 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_ADDR_MASK 0x2UL
3261 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_OVLAN 0x4UL
3262 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_OVLAN_MASK 0x8UL
3263 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN 0x10UL
3264 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN_MASK 0x20UL
3265 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_ADDR 0x40UL
3266 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_ADDR_MASK 0x80UL
3267 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_OVLAN 0x100UL
3268 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_OVLAN_MASK 0x200UL
3269 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_IVLAN 0x400UL
3270 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_T_L2_IVLAN_MASK 0x800UL
3271 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_SRC_TYPE 0x1000UL
3272 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_SRC_ID 0x2000UL
3273 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x4000UL
3274 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_DST_ID 0x8000UL
3275 #define CFA_L2_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x10000UL
3281 __le16 l2_ovlan_mask;
3283 __le16 l2_ivlan_mask;
3289 u8 t_l2_addr_mask[6];
3291 __le16 t_l2_ovlan_mask;
3293 __le16 t_l2_ivlan_mask;
3295 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_NPORT 0x0UL
3296 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_PF 0x1UL
3297 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_VF 0x2UL
3298 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_VNIC 0x3UL
3299 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_KONG 0x4UL
3300 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_APE 0x5UL
3301 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_BONO 0x6UL
3302 #define CFA_L2_FILTER_ALLOC_REQ_SRC_TYPE_TANG 0x7UL
3306 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL
3307 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL
3308 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL
3309 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL
3310 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL
3311 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL
3312 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL
3313 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL
3314 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL
3315 #define CFA_L2_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL
3318 __le16 mirror_vnic_id;
3320 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_NO_PREFER 0x0UL
3321 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_ABOVE_FILTER 0x1UL
3322 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_BELOW_FILTER 0x2UL
3323 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MAX 0x3UL
3324 #define CFA_L2_FILTER_ALLOC_REQ_PRI_HINT_MIN 0x4UL
3327 __le64 l2_filter_id_hint;
3330 /* Output (24 bytes) */
3331 struct hwrm_cfa_l2_filter_alloc_output {
3336 __le64 l2_filter_id;
3344 /* hwrm_cfa_l2_filter_free */
3345 /* Input (24 bytes) */
3346 struct hwrm_cfa_l2_filter_free_input {
3352 __le64 l2_filter_id;
3355 /* Output (16 bytes) */
3356 struct hwrm_cfa_l2_filter_free_output {
3368 /* hwrm_cfa_l2_filter_cfg */
3369 /* Input (40 bytes) */
3370 struct hwrm_cfa_l2_filter_cfg_input {
3377 #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH 0x1UL
3378 #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_TX (0x0UL << 0)
3379 #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_RX (0x1UL << 0)
3380 #define CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_LAST CFA_L2_FILTER_CFG_REQ_FLAGS_PATH_RX
3381 #define CFA_L2_FILTER_CFG_REQ_FLAGS_DROP 0x2UL
3383 #define CFA_L2_FILTER_CFG_REQ_ENABLES_DST_ID 0x1UL
3384 #define CFA_L2_FILTER_CFG_REQ_ENABLES_NEW_MIRROR_VNIC_ID 0x2UL
3385 __le64 l2_filter_id;
3387 __le32 new_mirror_vnic_id;
3390 /* Output (16 bytes) */
3391 struct hwrm_cfa_l2_filter_cfg_output {
3403 /* hwrm_cfa_l2_set_rx_mask */
3404 /* Input (56 bytes) */
3405 struct hwrm_cfa_l2_set_rx_mask_input {
3413 #define CFA_L2_SET_RX_MASK_REQ_MASK_RESERVED 0x1UL
3414 #define CFA_L2_SET_RX_MASK_REQ_MASK_MCAST 0x2UL
3415 #define CFA_L2_SET_RX_MASK_REQ_MASK_ALL_MCAST 0x4UL
3416 #define CFA_L2_SET_RX_MASK_REQ_MASK_BCAST 0x8UL
3417 #define CFA_L2_SET_RX_MASK_REQ_MASK_PROMISCUOUS 0x10UL
3418 #define CFA_L2_SET_RX_MASK_REQ_MASK_OUTERMOST 0x20UL
3419 #define CFA_L2_SET_RX_MASK_REQ_MASK_VLANONLY 0x40UL
3420 #define CFA_L2_SET_RX_MASK_REQ_MASK_VLAN_NONVLAN 0x80UL
3421 #define CFA_L2_SET_RX_MASK_REQ_MASK_ANYVLAN_NONVLAN 0x100UL
3423 __le32 num_mc_entries;
3425 __le64 vlan_tag_tbl_addr;
3426 __le32 num_vlan_tags;
3430 /* Output (16 bytes) */
3431 struct hwrm_cfa_l2_set_rx_mask_output {
3443 /* hwrm_cfa_tunnel_filter_alloc */
3444 /* Input (88 bytes) */
3445 struct hwrm_cfa_tunnel_filter_alloc_input {
3452 #define CFA_TUNNEL_FILTER_ALLOC_REQ_FLAGS_LOOPBACK 0x1UL
3454 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_FILTER_ID 0x1UL
3455 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_ADDR 0x2UL
3456 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L2_IVLAN 0x4UL
3457 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L3_ADDR 0x8UL
3458 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_L3_ADDR_TYPE 0x10UL
3459 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_T_L3_ADDR_TYPE 0x20UL
3460 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_T_L3_ADDR 0x40UL
3461 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x80UL
3462 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_VNI 0x100UL
3463 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_DST_VNIC_ID 0x200UL
3464 #define CFA_TUNNEL_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x400UL
3465 __le64 l2_filter_id;
3469 __le32 t_l3_addr[4];
3473 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL
3474 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL
3475 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL
3476 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL
3477 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL
3478 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL
3479 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL
3480 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL
3481 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL
3482 #define CFA_TUNNEL_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL
3486 __le32 mirror_vnic_id;
3489 /* Output (24 bytes) */
3490 struct hwrm_cfa_tunnel_filter_alloc_output {
3495 __le64 tunnel_filter_id;
3503 /* hwrm_cfa_tunnel_filter_free */
3504 /* Input (24 bytes) */
3505 struct hwrm_cfa_tunnel_filter_free_input {
3511 __le64 tunnel_filter_id;
3514 /* Output (16 bytes) */
3515 struct hwrm_cfa_tunnel_filter_free_output {
3527 /* hwrm_cfa_encap_record_alloc */
3528 /* Input (32 bytes) */
3529 struct hwrm_cfa_encap_record_alloc_input {
3536 #define CFA_ENCAP_RECORD_ALLOC_REQ_FLAGS_LOOPBACK 0x1UL
3538 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VXLAN 0x1UL
3539 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_NVGRE 0x2UL
3540 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_L2GRE 0x3UL
3541 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPIP 0x4UL
3542 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_GENEVE 0x5UL
3543 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_MPLS 0x6UL
3544 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_VLAN 0x7UL
3545 #define CFA_ENCAP_RECORD_ALLOC_REQ_ENCAP_TYPE_IPGRE 0x8UL
3548 __le32 encap_data[16];
3551 /* Output (16 bytes) */
3552 struct hwrm_cfa_encap_record_alloc_output {
3557 __le32 encap_record_id;
3564 /* hwrm_cfa_encap_record_free */
3565 /* Input (24 bytes) */
3566 struct hwrm_cfa_encap_record_free_input {
3572 __le32 encap_record_id;
3576 /* Output (16 bytes) */
3577 struct hwrm_cfa_encap_record_free_output {
3589 /* hwrm_cfa_ntuple_filter_alloc */
3590 /* Input (128 bytes) */
3591 struct hwrm_cfa_ntuple_filter_alloc_input {
3598 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_LOOPBACK 0x1UL
3599 #define CFA_NTUPLE_FILTER_ALLOC_REQ_FLAGS_DROP 0x2UL
3601 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_L2_FILTER_ID 0x1UL
3602 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_ETHERTYPE 0x2UL
3603 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_TUNNEL_TYPE 0x4UL
3604 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_MACADDR 0x8UL
3605 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_IPADDR_TYPE 0x10UL
3606 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR 0x20UL
3607 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_IPADDR_MASK 0x40UL
3608 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR 0x80UL
3609 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_IPADDR_MASK 0x100UL
3610 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_IP_PROTOCOL 0x200UL
3611 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_PORT 0x400UL
3612 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_SRC_PORT_MASK 0x800UL
3613 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_PORT 0x1000UL
3614 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_PORT_MASK 0x2000UL
3615 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_PRI_HINT 0x4000UL
3616 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_NTUPLE_FILTER_ID 0x8000UL
3617 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_ID 0x10000UL
3618 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_MIRROR_VNIC_ID 0x20000UL
3619 #define CFA_NTUPLE_FILTER_ALLOC_REQ_ENABLES_DST_MACADDR 0x40000UL
3620 __le64 l2_filter_id;
3624 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_UNKNOWN 0x0UL
3625 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV4 0x4UL
3626 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_ADDR_TYPE_IPV6 0x6UL
3628 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UNKNOWN 0x0UL
3629 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_UDP 0x6UL
3630 #define CFA_NTUPLE_FILTER_ALLOC_REQ_IP_PROTOCOL_TCP 0x11UL
3632 __le16 mirror_vnic_id;
3634 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_NONTUNNEL 0x0UL
3635 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL
3636 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_NVGRE 0x2UL
3637 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_L2GRE 0x3UL
3638 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPIP 0x4UL
3639 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL
3640 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_MPLS 0x6UL
3641 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_STT 0x7UL
3642 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_IPGRE 0x8UL
3643 #define CFA_NTUPLE_FILTER_ALLOC_REQ_TUNNEL_TYPE_ANYTUNNEL 0xffUL
3645 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_NO_PREFER 0x0UL
3646 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_ABOVE 0x1UL
3647 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_BELOW 0x2UL
3648 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_HIGHEST 0x3UL
3649 #define CFA_NTUPLE_FILTER_ALLOC_REQ_PRI_HINT_LOWEST 0x4UL
3650 __be32 src_ipaddr[4];
3651 __be32 src_ipaddr_mask[4];
3652 __be32 dst_ipaddr[4];
3653 __be32 dst_ipaddr_mask[4];
3655 __be16 src_port_mask;
3657 __be16 dst_port_mask;
3658 __le64 ntuple_filter_id_hint;
3661 /* Output (24 bytes) */
3662 struct hwrm_cfa_ntuple_filter_alloc_output {
3667 __le64 ntuple_filter_id;
3675 /* hwrm_cfa_ntuple_filter_free */
3676 /* Input (24 bytes) */
3677 struct hwrm_cfa_ntuple_filter_free_input {
3683 __le64 ntuple_filter_id;
3686 /* Output (16 bytes) */
3687 struct hwrm_cfa_ntuple_filter_free_output {
3699 /* hwrm_cfa_ntuple_filter_cfg */
3700 /* Input (40 bytes) */
3701 struct hwrm_cfa_ntuple_filter_cfg_input {
3708 #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_DST_ID 0x1UL
3709 #define CFA_NTUPLE_FILTER_CFG_REQ_ENABLES_NEW_MIRROR_VNIC_ID 0x2UL
3711 __le64 ntuple_filter_id;
3713 __le32 new_mirror_vnic_id;
3716 /* Output (16 bytes) */
3717 struct hwrm_cfa_ntuple_filter_cfg_output {
3729 /* hwrm_tunnel_dst_port_query */
3730 /* Input (24 bytes) */
3731 struct hwrm_tunnel_dst_port_query_input {
3738 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_VXLAN 0x1UL
3739 #define TUNNEL_DST_PORT_QUERY_REQ_TUNNEL_TYPE_GENEVE 0x5UL
3743 /* Output (16 bytes) */
3744 struct hwrm_tunnel_dst_port_query_output {
3749 __le16 tunnel_dst_port_id;
3750 __be16 tunnel_dst_port_val;
3757 /* hwrm_tunnel_dst_port_alloc */
3758 /* Input (24 bytes) */
3759 struct hwrm_tunnel_dst_port_alloc_input {
3766 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_VXLAN 0x1UL
3767 #define TUNNEL_DST_PORT_ALLOC_REQ_TUNNEL_TYPE_GENEVE 0x5UL
3769 __be16 tunnel_dst_port_val;
3773 /* Output (16 bytes) */
3774 struct hwrm_tunnel_dst_port_alloc_output {
3779 __le16 tunnel_dst_port_id;
3788 /* hwrm_tunnel_dst_port_free */
3789 /* Input (24 bytes) */
3790 struct hwrm_tunnel_dst_port_free_input {
3797 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_VXLAN 0x1UL
3798 #define TUNNEL_DST_PORT_FREE_REQ_TUNNEL_TYPE_GENEVE 0x5UL
3800 __le16 tunnel_dst_port_id;
3804 /* Output (16 bytes) */
3805 struct hwrm_tunnel_dst_port_free_output {
3817 /* hwrm_stat_ctx_alloc */
3818 /* Input (32 bytes) */
3819 struct hwrm_stat_ctx_alloc_input {
3825 __le64 stats_dma_addr;
3826 __le32 update_period_ms;
3828 #define STAT_CTX_ALLOC_REQ_STAT_CTX_FLAGS_ROCE 0x1UL
3832 /* Output (16 bytes) */
3833 struct hwrm_stat_ctx_alloc_output {
3845 /* hwrm_stat_ctx_free */
3846 /* Input (24 bytes) */
3847 struct hwrm_stat_ctx_free_input {
3857 /* Output (16 bytes) */
3858 struct hwrm_stat_ctx_free_output {
3870 /* hwrm_stat_ctx_query */
3871 /* Input (24 bytes) */
3872 struct hwrm_stat_ctx_query_input {
3882 /* Output (176 bytes) */
3883 struct hwrm_stat_ctx_query_output {
3888 __le64 tx_ucast_pkts;
3889 __le64 tx_mcast_pkts;
3890 __le64 tx_bcast_pkts;
3892 __le64 tx_drop_pkts;
3893 __le64 tx_ucast_bytes;
3894 __le64 tx_mcast_bytes;
3895 __le64 tx_bcast_bytes;
3896 __le64 rx_ucast_pkts;
3897 __le64 rx_mcast_pkts;
3898 __le64 rx_bcast_pkts;
3900 __le64 rx_drop_pkts;
3901 __le64 rx_ucast_bytes;
3902 __le64 rx_mcast_bytes;
3903 __le64 rx_bcast_bytes;
3905 __le64 rx_agg_bytes;
3906 __le64 rx_agg_events;
3907 __le64 rx_agg_aborts;
3915 /* hwrm_stat_ctx_clr_stats */
3916 /* Input (24 bytes) */
3917 struct hwrm_stat_ctx_clr_stats_input {
3927 /* Output (16 bytes) */
3928 struct hwrm_stat_ctx_clr_stats_output {
3941 /* Input (24 bytes) */
3942 struct hwrm_fw_reset_input {
3948 u8 embedded_proc_type;
3949 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_BOOT 0x0UL
3950 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_MGMT 0x1UL
3951 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_NETCTRL 0x2UL
3952 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_ROCE 0x3UL
3953 #define FW_RESET_REQ_EMBEDDED_PROC_TYPE_RSVD 0x4UL
3955 #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTNONE 0x0UL
3956 #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTASAP 0x1UL
3957 #define FW_RESET_REQ_SELFRST_STATUS_SELFRSTPCIERST 0x2UL
3961 /* Output (16 bytes) */
3962 struct hwrm_fw_reset_output {
3968 #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTNONE 0x0UL
3969 #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTASAP 0x1UL
3970 #define FW_RESET_RESP_SELFRST_STATUS_SELFRSTPCIERST 0x2UL
3979 /* hwrm_fw_qstatus */
3980 /* Input (24 bytes) */
3981 struct hwrm_fw_qstatus_input {
3987 u8 embedded_proc_type;
3988 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_BOOT 0x0UL
3989 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_MGMT 0x1UL
3990 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_NETCTRL 0x2UL
3991 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_ROCE 0x3UL
3992 #define FW_QSTATUS_REQ_EMBEDDED_PROC_TYPE_RSVD 0x4UL
3996 /* Output (16 bytes) */
3997 struct hwrm_fw_qstatus_output {
4003 #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTNONE 0x0UL
4004 #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTASAP 0x1UL
4005 #define FW_QSTATUS_RESP_SELFRST_STATUS_SELFRSTPCIERST 0x2UL
4014 /* hwrm_fw_set_time */
4015 /* Input (32 bytes) */
4016 struct hwrm_fw_set_time_input {
4023 #define FW_SET_TIME_REQ_YEAR_UNKNOWN 0x0UL
4032 #define FW_SET_TIME_REQ_ZONE_UTC 0x0UL
4033 #define FW_SET_TIME_REQ_ZONE_UNKNOWN 0xffffUL
4037 /* Output (16 bytes) */
4038 struct hwrm_fw_set_time_output {
4050 /* hwrm_fw_set_structured_data */
4051 /* Input (32 bytes) */
4052 struct hwrm_fw_set_structured_data_input {
4058 __le64 src_data_addr;
4066 /* Output (16 bytes) */
4067 struct hwrm_fw_set_structured_data_output {
4079 /* hwrm_fw_get_structured_data */
4080 /* Input (40 bytes) */
4081 struct hwrm_fw_get_structured_data_input {
4087 __le64 dest_data_addr;
4089 __le16 structure_id;
4091 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_ALL 0xffffUL
4092 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_ADMIN 0x100UL
4093 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_PEER 0x101UL
4094 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NEAR_BRIDGE_OPERATIONAL 0x102UL
4095 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_ADMIN 0x200UL
4096 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_PEER 0x201UL
4097 #define FW_GET_STRUCTURED_DATA_REQ_SUBTYPE_NON_TPMR_OPERATIONAL 0x202UL
4104 /* Output (16 bytes) */
4105 struct hwrm_fw_get_structured_data_output {
4119 /* hwrm_exec_fwd_resp */
4120 /* Input (128 bytes) */
4121 struct hwrm_exec_fwd_resp_input {
4127 __le32 encap_request[26];
4128 __le16 encap_resp_target_id;
4132 /* Output (16 bytes) */
4133 struct hwrm_exec_fwd_resp_output {
4145 /* hwrm_reject_fwd_resp */
4146 /* Input (128 bytes) */
4147 struct hwrm_reject_fwd_resp_input {
4153 __le32 encap_request[26];
4154 __le16 encap_resp_target_id;
4158 /* Output (16 bytes) */
4159 struct hwrm_reject_fwd_resp_output {
4172 /* Input (40 bytes) */
4173 struct hwrm_fwd_resp_input {
4179 __le16 encap_resp_target_id;
4180 __le16 encap_resp_cmpl_ring;
4181 __le16 encap_resp_len;
4184 __le64 encap_resp_addr;
4185 __le32 encap_resp[24];
4188 /* Output (16 bytes) */
4189 struct hwrm_fwd_resp_output {
4201 /* hwrm_fwd_async_event_cmpl */
4202 /* Input (32 bytes) */
4203 struct hwrm_fwd_async_event_cmpl_input {
4209 __le16 encap_async_event_target_id;
4214 __le32 encap_async_event_cmpl[4];
4217 /* Output (16 bytes) */
4218 struct hwrm_fwd_async_event_cmpl_output {
4230 /* hwrm_temp_monitor_query */
4231 /* Input (16 bytes) */
4232 struct hwrm_temp_monitor_query_input {
4240 /* Output (16 bytes) */
4241 struct hwrm_temp_monitor_query_output {
4256 /* Input (40 bytes) */
4257 struct hwrm_nvm_read_input {
4263 __le64 host_dest_addr;
4272 /* Output (16 bytes) */
4273 struct hwrm_nvm_read_output {
4285 /* hwrm_nvm_raw_dump */
4286 /* Input (32 bytes) */
4287 struct hwrm_nvm_raw_dump_input {
4293 __le64 host_dest_addr;
4298 /* Output (16 bytes) */
4299 struct hwrm_nvm_raw_dump_output {
4311 /* hwrm_nvm_get_dir_entries */
4312 /* Input (24 bytes) */
4313 struct hwrm_nvm_get_dir_entries_input {
4319 __le64 host_dest_addr;
4322 /* Output (16 bytes) */
4323 struct hwrm_nvm_get_dir_entries_output {
4335 /* hwrm_nvm_get_dir_info */
4336 /* Input (16 bytes) */
4337 struct hwrm_nvm_get_dir_info_input {
4345 /* Output (24 bytes) */
4346 struct hwrm_nvm_get_dir_info_output {
4352 __le32 entry_length;
4360 /* hwrm_nvm_write */
4361 /* Input (48 bytes) */
4362 struct hwrm_nvm_write_input {
4368 __le64 host_src_addr;
4373 __le32 dir_data_length;
4376 #define NVM_WRITE_REQ_FLAGS_KEEP_ORIG_ACTIVE_IMG 0x1UL
4377 __le32 dir_item_length;
4381 /* Output (16 bytes) */
4382 struct hwrm_nvm_write_output {
4387 __le32 dir_item_length;
4393 /* hwrm_nvm_modify */
4394 /* Input (40 bytes) */
4395 struct hwrm_nvm_modify_input {
4401 __le64 host_src_addr;
4410 /* Output (16 bytes) */
4411 struct hwrm_nvm_modify_output {
4423 /* hwrm_nvm_find_dir_entry */
4424 /* Input (32 bytes) */
4425 struct hwrm_nvm_find_dir_entry_input {
4432 #define NVM_FIND_DIR_ENTRY_REQ_ENABLES_DIR_IDX_VALID 0x1UL
4438 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_MASK 0x3UL
4439 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_SFT 0
4440 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_EQ 0x0UL
4441 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GE 0x1UL
4442 #define NVM_FIND_DIR_ENTRY_REQ_OPT_ORDINAL_GT 0x2UL
4446 /* Output (32 bytes) */
4447 struct hwrm_nvm_find_dir_entry_output {
4452 __le32 dir_item_length;
4453 __le32 dir_data_length;
4464 /* hwrm_nvm_erase_dir_entry */
4465 /* Input (24 bytes) */
4466 struct hwrm_nvm_erase_dir_entry_input {
4476 /* Output (16 bytes) */
4477 struct hwrm_nvm_erase_dir_entry_output {
4489 /* hwrm_nvm_get_dev_info */
4490 /* Input (16 bytes) */
4491 struct hwrm_nvm_get_dev_info_input {
4499 /* Output (32 bytes) */
4500 struct hwrm_nvm_get_dev_info_output {
4505 __le16 manufacturer_id;
4509 __le32 reserved_size;
4510 __le32 available_size;
4517 /* hwrm_nvm_mod_dir_entry */
4518 /* Input (32 bytes) */
4519 struct hwrm_nvm_mod_dir_entry_input {
4526 #define NVM_MOD_DIR_ENTRY_REQ_ENABLES_CHECKSUM 0x1UL
4534 /* Output (16 bytes) */
4535 struct hwrm_nvm_mod_dir_entry_output {
4547 /* hwrm_nvm_verify_update */
4548 /* Input (24 bytes) */
4549 struct hwrm_nvm_verify_update_input {
4561 /* Output (16 bytes) */
4562 struct hwrm_nvm_verify_update_output {
4574 /* hwrm_nvm_install_update */
4575 /* Input (24 bytes) */
4576 struct hwrm_nvm_install_update_input {
4582 __le32 install_type;
4583 #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_NORMAL 0x0UL
4584 #define NVM_INSTALL_UPDATE_REQ_INSTALL_TYPE_ALL 0xffffffffUL
4588 /* Output (24 bytes) */
4589 struct hwrm_nvm_install_update_output {
4594 __le64 installed_items;
4596 #define NVM_INSTALL_UPDATE_RESP_RESULT_SUCCESS 0x0UL
4598 #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_NONE 0x0UL
4599 #define NVM_INSTALL_UPDATE_RESP_PROBLEM_ITEM_PACKAGE 0xffUL
4601 #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_NONE 0x0UL
4602 #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_PCI 0x1UL
4603 #define NVM_INSTALL_UPDATE_RESP_RESET_REQUIRED_POWER 0x2UL
4611 /* Hardware Resource Manager Specification */
4612 /* Input (16 bytes) */
4621 /* Output (8 bytes) */
4629 /* Command numbering (8 bytes) */
4632 #define HWRM_VER_GET (0x0UL)
4633 #define HWRM_FUNC_BUF_UNRGTR (0xeUL)
4634 #define HWRM_FUNC_VF_CFG (0xfUL)
4635 #define RESERVED1 (0x10UL)
4636 #define HWRM_FUNC_RESET (0x11UL)
4637 #define HWRM_FUNC_GETFID (0x12UL)
4638 #define HWRM_FUNC_VF_ALLOC (0x13UL)
4639 #define HWRM_FUNC_VF_FREE (0x14UL)
4640 #define HWRM_FUNC_QCAPS (0x15UL)
4641 #define HWRM_FUNC_QCFG (0x16UL)
4642 #define HWRM_FUNC_CFG (0x17UL)
4643 #define HWRM_FUNC_QSTATS (0x18UL)
4644 #define HWRM_FUNC_CLR_STATS (0x19UL)
4645 #define HWRM_FUNC_DRV_UNRGTR (0x1aUL)
4646 #define HWRM_FUNC_VF_RESC_FREE (0x1bUL)
4647 #define HWRM_FUNC_VF_VNIC_IDS_QUERY (0x1cUL)
4648 #define HWRM_FUNC_DRV_RGTR (0x1dUL)
4649 #define HWRM_FUNC_DRV_QVER (0x1eUL)
4650 #define HWRM_FUNC_BUF_RGTR (0x1fUL)
4651 #define HWRM_PORT_PHY_CFG (0x20UL)
4652 #define HWRM_PORT_MAC_CFG (0x21UL)
4653 #define HWRM_PORT_TS_QUERY (0x22UL)
4654 #define HWRM_PORT_QSTATS (0x23UL)
4655 #define HWRM_PORT_LPBK_QSTATS (0x24UL)
4656 #define HWRM_PORT_CLR_STATS (0x25UL)
4657 #define HWRM_PORT_LPBK_CLR_STATS (0x26UL)
4658 #define HWRM_PORT_PHY_QCFG (0x27UL)
4659 #define HWRM_PORT_MAC_QCFG (0x28UL)
4660 #define RESERVED7 (0x29UL)
4661 #define HWRM_PORT_PHY_QCAPS (0x2aUL)
4662 #define HWRM_PORT_PHY_I2C_WRITE (0x2bUL)
4663 #define HWRM_PORT_PHY_I2C_READ (0x2cUL)
4664 #define HWRM_PORT_LED_CFG (0x2dUL)
4665 #define HWRM_PORT_LED_QCFG (0x2eUL)
4666 #define HWRM_PORT_LED_QCAPS (0x2fUL)
4667 #define HWRM_QUEUE_QPORTCFG (0x30UL)
4668 #define HWRM_QUEUE_QCFG (0x31UL)
4669 #define HWRM_QUEUE_CFG (0x32UL)
4670 #define RESERVED2 (0x33UL)
4671 #define RESERVED3 (0x34UL)
4672 #define HWRM_QUEUE_PFCENABLE_QCFG (0x35UL)
4673 #define HWRM_QUEUE_PFCENABLE_CFG (0x36UL)
4674 #define HWRM_QUEUE_PRI2COS_QCFG (0x37UL)
4675 #define HWRM_QUEUE_PRI2COS_CFG (0x38UL)
4676 #define HWRM_QUEUE_COS2BW_QCFG (0x39UL)
4677 #define HWRM_QUEUE_COS2BW_CFG (0x3aUL)
4678 #define HWRM_VNIC_ALLOC (0x40UL)
4679 #define HWRM_VNIC_FREE (0x41UL)
4680 #define HWRM_VNIC_CFG (0x42UL)
4681 #define HWRM_VNIC_QCFG (0x43UL)
4682 #define HWRM_VNIC_TPA_CFG (0x44UL)
4683 #define HWRM_VNIC_TPA_QCFG (0x45UL)
4684 #define HWRM_VNIC_RSS_CFG (0x46UL)
4685 #define HWRM_VNIC_RSS_QCFG (0x47UL)
4686 #define HWRM_VNIC_PLCMODES_CFG (0x48UL)
4687 #define HWRM_VNIC_PLCMODES_QCFG (0x49UL)
4688 #define HWRM_VNIC_QCAPS (0x4aUL)
4689 #define HWRM_RING_ALLOC (0x50UL)
4690 #define HWRM_RING_FREE (0x51UL)
4691 #define HWRM_RING_CMPL_RING_QAGGINT_PARAMS (0x52UL)
4692 #define HWRM_RING_CMPL_RING_CFG_AGGINT_PARAMS (0x53UL)
4693 #define HWRM_RING_RESET (0x5eUL)
4694 #define HWRM_RING_GRP_ALLOC (0x60UL)
4695 #define HWRM_RING_GRP_FREE (0x61UL)
4696 #define RESERVED5 (0x64UL)
4697 #define RESERVED6 (0x65UL)
4698 #define HWRM_VNIC_RSS_COS_LB_CTX_ALLOC (0x70UL)
4699 #define HWRM_VNIC_RSS_COS_LB_CTX_FREE (0x71UL)
4700 #define HWRM_CFA_L2_FILTER_ALLOC (0x90UL)
4701 #define HWRM_CFA_L2_FILTER_FREE (0x91UL)
4702 #define HWRM_CFA_L2_FILTER_CFG (0x92UL)
4703 #define HWRM_CFA_L2_SET_RX_MASK (0x93UL)
4704 #define RESERVED4 (0x94UL)
4705 #define HWRM_CFA_TUNNEL_FILTER_ALLOC (0x95UL)
4706 #define HWRM_CFA_TUNNEL_FILTER_FREE (0x96UL)
4707 #define HWRM_CFA_ENCAP_RECORD_ALLOC (0x97UL)
4708 #define HWRM_CFA_ENCAP_RECORD_FREE (0x98UL)
4709 #define HWRM_CFA_NTUPLE_FILTER_ALLOC (0x99UL)
4710 #define HWRM_CFA_NTUPLE_FILTER_FREE (0x9aUL)
4711 #define HWRM_CFA_NTUPLE_FILTER_CFG (0x9bUL)
4712 #define HWRM_CFA_EM_FLOW_ALLOC (0x9cUL)
4713 #define HWRM_CFA_EM_FLOW_FREE (0x9dUL)
4714 #define HWRM_CFA_EM_FLOW_CFG (0x9eUL)
4715 #define HWRM_TUNNEL_DST_PORT_QUERY (0xa0UL)
4716 #define HWRM_TUNNEL_DST_PORT_ALLOC (0xa1UL)
4717 #define HWRM_TUNNEL_DST_PORT_FREE (0xa2UL)
4718 #define HWRM_STAT_CTX_ALLOC (0xb0UL)
4719 #define HWRM_STAT_CTX_FREE (0xb1UL)
4720 #define HWRM_STAT_CTX_QUERY (0xb2UL)
4721 #define HWRM_STAT_CTX_CLR_STATS (0xb3UL)
4722 #define HWRM_FW_RESET (0xc0UL)
4723 #define HWRM_FW_QSTATUS (0xc1UL)
4724 #define HWRM_FW_SET_TIME (0xc8UL)
4725 #define HWRM_FW_GET_TIME (0xc9UL)
4726 #define HWRM_FW_SET_STRUCTURED_DATA (0xcaUL)
4727 #define HWRM_FW_GET_STRUCTURED_DATA (0xcbUL)
4728 #define HWRM_FW_IPC_MAILBOX (0xccUL)
4729 #define HWRM_EXEC_FWD_RESP (0xd0UL)
4730 #define HWRM_REJECT_FWD_RESP (0xd1UL)
4731 #define HWRM_FWD_RESP (0xd2UL)
4732 #define HWRM_FWD_ASYNC_EVENT_CMPL (0xd3UL)
4733 #define HWRM_TEMP_MONITOR_QUERY (0xe0UL)
4734 #define HWRM_WOL_FILTER_ALLOC (0xf0UL)
4735 #define HWRM_WOL_FILTER_FREE (0xf1UL)
4736 #define HWRM_WOL_FILTER_QCFG (0xf2UL)
4737 #define HWRM_WOL_REASON_QCFG (0xf3UL)
4738 #define HWRM_DBG_READ_DIRECT (0xff10UL)
4739 #define HWRM_DBG_READ_INDIRECT (0xff11UL)
4740 #define HWRM_DBG_WRITE_DIRECT (0xff12UL)
4741 #define HWRM_DBG_WRITE_INDIRECT (0xff13UL)
4742 #define HWRM_DBG_DUMP (0xff14UL)
4743 #define HWRM_NVM_GET_VARIABLE (0xfff1UL)
4744 #define HWRM_NVM_SET_VARIABLE (0xfff2UL)
4745 #define HWRM_NVM_INSTALL_UPDATE (0xfff3UL)
4746 #define HWRM_NVM_MODIFY (0xfff4UL)
4747 #define HWRM_NVM_VERIFY_UPDATE (0xfff5UL)
4748 #define HWRM_NVM_GET_DEV_INFO (0xfff6UL)
4749 #define HWRM_NVM_ERASE_DIR_ENTRY (0xfff7UL)
4750 #define HWRM_NVM_MOD_DIR_ENTRY (0xfff8UL)
4751 #define HWRM_NVM_FIND_DIR_ENTRY (0xfff9UL)
4752 #define HWRM_NVM_GET_DIR_ENTRIES (0xfffaUL)
4753 #define HWRM_NVM_GET_DIR_INFO (0xfffbUL)
4754 #define HWRM_NVM_RAW_DUMP (0xfffcUL)
4755 #define HWRM_NVM_READ (0xfffdUL)
4756 #define HWRM_NVM_WRITE (0xfffeUL)
4757 #define HWRM_NVM_RAW_WRITE_BLK (0xffffUL)
4761 /* Return Codes (8 bytes) */
4764 #define HWRM_ERR_CODE_SUCCESS (0x0UL)
4765 #define HWRM_ERR_CODE_FAIL (0x1UL)
4766 #define HWRM_ERR_CODE_INVALID_PARAMS (0x2UL)
4767 #define HWRM_ERR_CODE_RESOURCE_ACCESS_DENIED (0x3UL)
4768 #define HWRM_ERR_CODE_RESOURCE_ALLOC_ERROR (0x4UL)
4769 #define HWRM_ERR_CODE_INVALID_FLAGS (0x5UL)
4770 #define HWRM_ERR_CODE_INVALID_ENABLES (0x6UL)
4771 #define HWRM_ERR_CODE_HWRM_ERROR (0xfUL)
4772 #define HWRM_ERR_CODE_UNKNOWN_ERR (0xfffeUL)
4773 #define HWRM_ERR_CODE_CMD_NOT_SUPPORTED (0xffffUL)
4777 /* Output (16 bytes) */
4778 struct hwrm_err_output {
4789 /* Port Tx Statistics Formats (408 bytes) */
4790 struct tx_port_stats {
4791 __le64 tx_64b_frames;
4792 __le64 tx_65b_127b_frames;
4793 __le64 tx_128b_255b_frames;
4794 __le64 tx_256b_511b_frames;
4795 __le64 tx_512b_1023b_frames;
4796 __le64 tx_1024b_1518_frames;
4797 __le64 tx_good_vlan_frames;
4798 __le64 tx_1519b_2047_frames;
4799 __le64 tx_2048b_4095b_frames;
4800 __le64 tx_4096b_9216b_frames;
4801 __le64 tx_9217b_16383b_frames;
4802 __le64 tx_good_frames;
4803 __le64 tx_total_frames;
4804 __le64 tx_ucast_frames;
4805 __le64 tx_mcast_frames;
4806 __le64 tx_bcast_frames;
4807 __le64 tx_pause_frames;
4808 __le64 tx_pfc_frames;
4809 __le64 tx_jabber_frames;
4810 __le64 tx_fcs_err_frames;
4811 __le64 tx_control_frames;
4812 __le64 tx_oversz_frames;
4813 __le64 tx_single_dfrl_frames;
4814 __le64 tx_multi_dfrl_frames;
4815 __le64 tx_single_coll_frames;
4816 __le64 tx_multi_coll_frames;
4817 __le64 tx_late_coll_frames;
4818 __le64 tx_excessive_coll_frames;
4819 __le64 tx_frag_frames;
4821 __le64 tx_tagged_frames;
4822 __le64 tx_dbl_tagged_frames;
4823 __le64 tx_runt_frames;
4824 __le64 tx_fifo_underruns;
4825 __le64 tx_pfc_ena_frames_pri0;
4826 __le64 tx_pfc_ena_frames_pri1;
4827 __le64 tx_pfc_ena_frames_pri2;
4828 __le64 tx_pfc_ena_frames_pri3;
4829 __le64 tx_pfc_ena_frames_pri4;
4830 __le64 tx_pfc_ena_frames_pri5;
4831 __le64 tx_pfc_ena_frames_pri6;
4832 __le64 tx_pfc_ena_frames_pri7;
4833 __le64 tx_eee_lpi_events;
4834 __le64 tx_eee_lpi_duration;
4835 __le64 tx_llfc_logical_msgs;
4836 __le64 tx_hcfc_msgs;
4837 __le64 tx_total_collisions;
4839 __le64 tx_xthol_frames;
4840 __le64 tx_stat_discard;
4841 __le64 tx_stat_error;
4844 /* Port Rx Statistics Formats (528 bytes) */
4845 struct rx_port_stats {
4846 __le64 rx_64b_frames;
4847 __le64 rx_65b_127b_frames;
4848 __le64 rx_128b_255b_frames;
4849 __le64 rx_256b_511b_frames;
4850 __le64 rx_512b_1023b_frames;
4851 __le64 rx_1024b_1518_frames;
4852 __le64 rx_good_vlan_frames;
4853 __le64 rx_1519b_2047b_frames;
4854 __le64 rx_2048b_4095b_frames;
4855 __le64 rx_4096b_9216b_frames;
4856 __le64 rx_9217b_16383b_frames;
4857 __le64 rx_total_frames;
4858 __le64 rx_ucast_frames;
4859 __le64 rx_mcast_frames;
4860 __le64 rx_bcast_frames;
4861 __le64 rx_fcs_err_frames;
4862 __le64 rx_ctrl_frames;
4863 __le64 rx_pause_frames;
4864 __le64 rx_pfc_frames;
4865 __le64 rx_unsupported_opcode_frames;
4866 __le64 rx_unsupported_da_pausepfc_frames;
4867 __le64 rx_wrong_sa_frames;
4868 __le64 rx_align_err_frames;
4869 __le64 rx_oor_len_frames;
4870 __le64 rx_code_err_frames;
4871 __le64 rx_false_carrier_frames;
4872 __le64 rx_ovrsz_frames;
4873 __le64 rx_jbr_frames;
4874 __le64 rx_mtu_err_frames;
4875 __le64 rx_match_crc_frames;
4876 __le64 rx_promiscuous_frames;
4877 __le64 rx_tagged_frames;
4878 __le64 rx_double_tagged_frames;
4879 __le64 rx_trunc_frames;
4880 __le64 rx_good_frames;
4881 __le64 rx_pfc_xon2xoff_frames_pri0;
4882 __le64 rx_pfc_xon2xoff_frames_pri1;
4883 __le64 rx_pfc_xon2xoff_frames_pri2;
4884 __le64 rx_pfc_xon2xoff_frames_pri3;
4885 __le64 rx_pfc_xon2xoff_frames_pri4;
4886 __le64 rx_pfc_xon2xoff_frames_pri5;
4887 __le64 rx_pfc_xon2xoff_frames_pri6;
4888 __le64 rx_pfc_xon2xoff_frames_pri7;
4889 __le64 rx_pfc_ena_frames_pri0;
4890 __le64 rx_pfc_ena_frames_pri1;
4891 __le64 rx_pfc_ena_frames_pri2;
4892 __le64 rx_pfc_ena_frames_pri3;
4893 __le64 rx_pfc_ena_frames_pri4;
4894 __le64 rx_pfc_ena_frames_pri5;
4895 __le64 rx_pfc_ena_frames_pri6;
4896 __le64 rx_pfc_ena_frames_pri7;
4897 __le64 rx_sch_crc_err_frames;
4898 __le64 rx_undrsz_frames;
4899 __le64 rx_frag_frames;
4900 __le64 rx_eee_lpi_events;
4901 __le64 rx_eee_lpi_duration;
4902 __le64 rx_llfc_physical_msgs;
4903 __le64 rx_llfc_logical_msgs;
4904 __le64 rx_llfc_msgs_with_crc_err;
4905 __le64 rx_hcfc_msgs;
4906 __le64 rx_hcfc_msgs_with_crc_err;
4908 __le64 rx_runt_bytes;
4909 __le64 rx_runt_frames;
4910 __le64 rx_stat_discard;
4914 /* Periodic Statistics Context DMA to host (160 bytes) */
4915 struct ctx_hw_stats {
4916 __le64 rx_ucast_pkts;
4917 __le64 rx_mcast_pkts;
4918 __le64 rx_bcast_pkts;
4919 __le64 rx_discard_pkts;
4920 __le64 rx_drop_pkts;
4921 __le64 rx_ucast_bytes;
4922 __le64 rx_mcast_bytes;
4923 __le64 rx_bcast_bytes;
4924 __le64 tx_ucast_pkts;
4925 __le64 tx_mcast_pkts;
4926 __le64 tx_bcast_pkts;
4927 __le64 tx_discard_pkts;
4928 __le64 tx_drop_pkts;
4929 __le64 tx_ucast_bytes;
4930 __le64 tx_mcast_bytes;
4931 __le64 tx_bcast_bytes;
4938 /* Structure data header (16 bytes) */
4939 struct hwrm_struct_hdr {
4941 #define STRUCT_HDR_STRUCT_ID_LLDP_CFG 0x41bUL
4942 #define STRUCT_HDR_STRUCT_ID_DCBX_ETS_CFG 0x41dUL
4943 #define STRUCT_HDR_STRUCT_ID_DCBX_PFC_CFG 0x41fUL
4944 #define STRUCT_HDR_STRUCT_ID_DCBX_APP_CFG 0x421UL
4945 #define STRUCT_HDR_STRUCT_ID_DCBX_STATE_CFG 0x422UL
4946 #define STRUCT_HDR_STRUCT_ID_LLDP_GENERIC_CFG 0x424UL
4947 #define STRUCT_HDR_STRUCT_ID_LLDP_DEVICE_CFG 0x426UL
4953 #define STRUCT_HDR_NEXT_OFFSET_LAST 0x0UL
4957 /* DCBX Application configuration structure (8 bytes) */
4958 struct hwrm_struct_data_dcbx_app_cfg {
4960 u8 protocol_selector;
4961 #define STRUCT_DATA_DCBX_APP_CFG_PROTOCOL_SELECTOR_ETHER_TYPE 0x1UL
4962 #define STRUCT_DATA_DCBX_APP_CFG_PROTOCOL_SELECTOR_TCP_PORT 0x2UL
4963 #define STRUCT_DATA_DCBX_APP_CFG_PROTOCOL_SELECTOR_UDP_PORT 0x3UL
4964 #define STRUCT_DATA_DCBX_APP_CFG_PROTOCOL_SELECTOR_TCP_UDP_PORT 0x4UL