1 /* QLogic qed NIC Driver
2 * Copyright (c) 2015-2017 QLogic Corporation
4 * This software is available to you under a choice of one of two
5 * licenses. You may choose to be licensed under the terms of the GNU
6 * General Public License (GPL) Version 2, available from the file
7 * COPYING in the main directory of this source tree, or the
8 * OpenIB.org BSD license below:
10 * Redistribution and use in source and binary forms, with or
11 * without modification, are permitted provided that the following
14 * - Redistributions of source code must retain the above
15 * copyright notice, this list of conditions and the following
18 * - Redistributions in binary form must reproduce the above
19 * copyright notice, this list of conditions and the following
20 * disclaimer in the documentation and /or other materials
21 * provided with the distribution.
23 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
27 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
28 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
29 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
36 #include <linux/types.h>
38 #include <linux/bitops.h>
39 #include <linux/delay.h>
40 #include <linux/kernel.h>
41 #include <linux/list.h>
42 #include <linux/slab.h>
43 #include <linux/qed/common_hsi.h>
44 #include <linux/qed/storage_common.h>
45 #include <linux/qed/tcp_common.h>
46 #include <linux/qed/fcoe_common.h>
47 #include <linux/qed/eth_common.h>
48 #include <linux/qed/iscsi_common.h>
49 #include <linux/qed/iwarp_common.h>
50 #include <linux/qed/rdma_common.h>
51 #include <linux/qed/roce_common.h>
52 #include <linux/qed/qed_fcoe_if.h>
57 /* Opcodes for the event ring */
58 enum common_event_opcode {
59 COMMON_EVENT_PF_START,
61 COMMON_EVENT_VF_START,
63 COMMON_EVENT_VF_PF_CHANNEL,
65 COMMON_EVENT_PF_UPDATE,
66 COMMON_EVENT_MALICIOUS_VF,
67 COMMON_EVENT_RL_UPDATE,
69 MAX_COMMON_EVENT_OPCODE
72 /* Common Ramrod Command IDs */
73 enum common_ramrod_cmd_id {
75 COMMON_RAMROD_PF_START,
76 COMMON_RAMROD_PF_STOP,
77 COMMON_RAMROD_VF_START,
78 COMMON_RAMROD_VF_STOP,
79 COMMON_RAMROD_PF_UPDATE,
80 COMMON_RAMROD_RL_UPDATE,
82 MAX_COMMON_RAMROD_CMD_ID
85 /* How ll2 should deal with packet upon errors */
86 enum core_error_handle {
93 /* Opcodes for the event ring */
94 enum core_event_opcode {
95 CORE_EVENT_TX_QUEUE_START,
96 CORE_EVENT_TX_QUEUE_STOP,
97 CORE_EVENT_RX_QUEUE_START,
98 CORE_EVENT_RX_QUEUE_STOP,
99 CORE_EVENT_RX_QUEUE_FLUSH,
100 CORE_EVENT_TX_QUEUE_UPDATE,
101 CORE_EVENT_QUEUE_STATS_QUERY,
102 MAX_CORE_EVENT_OPCODE
105 /* The L4 pseudo checksum mode for Core */
106 enum core_l4_pseudo_checksum_mode {
107 CORE_L4_PSEUDO_CSUM_CORRECT_LENGTH,
108 CORE_L4_PSEUDO_CSUM_ZERO_LENGTH,
109 MAX_CORE_L4_PSEUDO_CHECKSUM_MODE
112 /* Light-L2 RX Producers in Tstorm RAM */
113 struct core_ll2_port_stats {
114 struct regpair gsi_invalid_hdr;
115 struct regpair gsi_invalid_pkt_length;
116 struct regpair gsi_unsupported_pkt_typ;
117 struct regpair gsi_crcchksm_error;
120 /* LL2 TX Per Queue Stats */
121 struct core_ll2_pstorm_per_queue_stat {
122 struct regpair sent_ucast_bytes;
123 struct regpair sent_mcast_bytes;
124 struct regpair sent_bcast_bytes;
125 struct regpair sent_ucast_pkts;
126 struct regpair sent_mcast_pkts;
127 struct regpair sent_bcast_pkts;
128 struct regpair error_drop_pkts;
131 /* Light-L2 RX Producers in Tstorm RAM */
132 struct core_ll2_rx_prod {
137 struct core_ll2_tstorm_per_queue_stat {
138 struct regpair packet_too_big_discard;
139 struct regpair no_buff_discard;
142 struct core_ll2_ustorm_per_queue_stat {
143 struct regpair rcv_ucast_bytes;
144 struct regpair rcv_mcast_bytes;
145 struct regpair rcv_bcast_bytes;
146 struct regpair rcv_ucast_pkts;
147 struct regpair rcv_mcast_pkts;
148 struct regpair rcv_bcast_pkts;
151 /* Structure for doorbell data, in PWM mode, for RX producers update. */
152 struct core_pwm_prod_update_data {
153 __le16 icid; /* internal CID */
156 #define CORE_PWM_PROD_UPDATE_DATA_AGG_CMD_MASK 0x3
157 #define CORE_PWM_PROD_UPDATE_DATA_AGG_CMD_SHIFT 0
158 #define CORE_PWM_PROD_UPDATE_DATA_RESERVED1_MASK 0x3F /* Set 0 */
159 #define CORE_PWM_PROD_UPDATE_DATA_RESERVED1_SHIFT 2
160 struct core_ll2_rx_prod prod; /* Producers */
163 /* Core Ramrod Command IDs (light L2) */
164 enum core_ramrod_cmd_id {
166 CORE_RAMROD_RX_QUEUE_START,
167 CORE_RAMROD_TX_QUEUE_START,
168 CORE_RAMROD_RX_QUEUE_STOP,
169 CORE_RAMROD_TX_QUEUE_STOP,
170 CORE_RAMROD_RX_QUEUE_FLUSH,
171 CORE_RAMROD_TX_QUEUE_UPDATE,
172 CORE_RAMROD_QUEUE_STATS_QUERY,
173 MAX_CORE_RAMROD_CMD_ID
176 /* Core RX CQE Type for Light L2 */
177 enum core_roce_flavor_type {
180 MAX_CORE_ROCE_FLAVOR_TYPE
183 /* Specifies how ll2 should deal with packets errors: packet_too_big and
186 struct core_rx_action_on_error {
188 #define CORE_RX_ACTION_ON_ERROR_PACKET_TOO_BIG_MASK 0x3
189 #define CORE_RX_ACTION_ON_ERROR_PACKET_TOO_BIG_SHIFT 0
190 #define CORE_RX_ACTION_ON_ERROR_NO_BUFF_MASK 0x3
191 #define CORE_RX_ACTION_ON_ERROR_NO_BUFF_SHIFT 2
192 #define CORE_RX_ACTION_ON_ERROR_RESERVED_MASK 0xF
193 #define CORE_RX_ACTION_ON_ERROR_RESERVED_SHIFT 4
196 /* Core RX BD for Light L2 */
202 /* Core RX CM offload BD for Light L2 */
203 struct core_rx_bd_with_buff_len {
209 /* Core RX CM offload BD for Light L2 */
210 union core_rx_bd_union {
211 struct core_rx_bd rx_bd;
212 struct core_rx_bd_with_buff_len rx_bd_with_len;
215 /* Opaque Data for Light L2 RX CQE */
216 struct core_rx_cqe_opaque_data {
220 /* Core RX CQE Type for Light L2 */
221 enum core_rx_cqe_type {
222 CORE_RX_CQE_ILLEGAL_TYPE,
223 CORE_RX_CQE_TYPE_REGULAR,
224 CORE_RX_CQE_TYPE_GSI_OFFLOAD,
225 CORE_RX_CQE_TYPE_SLOW_PATH,
229 /* Core RX CQE for Light L2 */
230 struct core_rx_fast_path_cqe {
233 struct parsing_and_err_flags parse_flags;
234 __le16 packet_length;
236 struct core_rx_cqe_opaque_data opaque_data;
237 struct parsing_err_flags err_flags;
242 /* Core Rx CM offload CQE */
243 struct core_rx_gsi_offload_cqe {
245 u8 data_length_error;
246 struct parsing_and_err_flags parse_flags;
249 __le32 src_mac_addrhi;
250 __le16 src_mac_addrlo;
253 struct core_rx_cqe_opaque_data opaque_data;
257 /* Core RX CQE for Light L2 */
258 struct core_rx_slow_path_cqe {
262 struct core_rx_cqe_opaque_data opaque_data;
266 /* Core RX CM offload BD for Light L2 */
267 union core_rx_cqe_union {
268 struct core_rx_fast_path_cqe rx_cqe_fp;
269 struct core_rx_gsi_offload_cqe rx_cqe_gsi;
270 struct core_rx_slow_path_cqe rx_cqe_sp;
273 /* Ramrod data for rx queue start ramrod */
274 struct core_rx_start_ramrod_data {
275 struct regpair bd_base;
276 struct regpair cqe_pbl_addr;
281 u8 complete_event_flg;
283 __le16 num_of_pbl_pages;
284 u8 inner_vlan_stripping_en;
285 u8 report_outer_vlan;
288 u8 mf_si_bcast_accept_all;
289 u8 mf_si_mcast_accept_all;
290 struct core_rx_action_on_error action_on_error;
295 u8 wipe_inner_vlan_pri_en;
299 /* Ramrod data for rx queue stop ramrod */
300 struct core_rx_stop_ramrod_data {
302 u8 complete_event_flg;
308 /* Flags for Core TX BD */
309 struct core_tx_bd_data {
311 #define CORE_TX_BD_DATA_FORCE_VLAN_MODE_MASK 0x1
312 #define CORE_TX_BD_DATA_FORCE_VLAN_MODE_SHIFT 0
313 #define CORE_TX_BD_DATA_VLAN_INSERTION_MASK 0x1
314 #define CORE_TX_BD_DATA_VLAN_INSERTION_SHIFT 1
315 #define CORE_TX_BD_DATA_START_BD_MASK 0x1
316 #define CORE_TX_BD_DATA_START_BD_SHIFT 2
317 #define CORE_TX_BD_DATA_IP_CSUM_MASK 0x1
318 #define CORE_TX_BD_DATA_IP_CSUM_SHIFT 3
319 #define CORE_TX_BD_DATA_L4_CSUM_MASK 0x1
320 #define CORE_TX_BD_DATA_L4_CSUM_SHIFT 4
321 #define CORE_TX_BD_DATA_IPV6_EXT_MASK 0x1
322 #define CORE_TX_BD_DATA_IPV6_EXT_SHIFT 5
323 #define CORE_TX_BD_DATA_L4_PROTOCOL_MASK 0x1
324 #define CORE_TX_BD_DATA_L4_PROTOCOL_SHIFT 6
325 #define CORE_TX_BD_DATA_L4_PSEUDO_CSUM_MODE_MASK 0x1
326 #define CORE_TX_BD_DATA_L4_PSEUDO_CSUM_MODE_SHIFT 7
327 #define CORE_TX_BD_DATA_NBDS_MASK 0xF
328 #define CORE_TX_BD_DATA_NBDS_SHIFT 8
329 #define CORE_TX_BD_DATA_ROCE_FLAV_MASK 0x1
330 #define CORE_TX_BD_DATA_ROCE_FLAV_SHIFT 12
331 #define CORE_TX_BD_DATA_IP_LEN_MASK 0x1
332 #define CORE_TX_BD_DATA_IP_LEN_SHIFT 13
333 #define CORE_TX_BD_DATA_DISABLE_STAG_INSERTION_MASK 0x1
334 #define CORE_TX_BD_DATA_DISABLE_STAG_INSERTION_SHIFT 14
335 #define CORE_TX_BD_DATA_RESERVED0_MASK 0x1
336 #define CORE_TX_BD_DATA_RESERVED0_SHIFT 15
339 /* Core TX BD for Light L2 */
343 __le16 nw_vlan_or_lb_echo;
344 struct core_tx_bd_data bd_data;
346 #define CORE_TX_BD_L4_HDR_OFFSET_W_MASK 0x3FFF
347 #define CORE_TX_BD_L4_HDR_OFFSET_W_SHIFT 0
348 #define CORE_TX_BD_TX_DST_MASK 0x3
349 #define CORE_TX_BD_TX_DST_SHIFT 14
352 /* Light L2 TX Destination */
356 CORE_TX_DEST_RESERVED,
361 /* Ramrod data for tx queue start ramrod */
362 struct core_tx_start_ramrod_data {
363 struct regpair pbl_base_addr;
376 u8 enforce_security_flag;
380 /* Ramrod data for tx queue stop ramrod */
381 struct core_tx_stop_ramrod_data {
385 /* Ramrod data for tx queue update ramrod */
386 struct core_tx_update_ramrod_data {
387 u8 update_qm_pq_id_flg;
393 /* Enum flag for what type of dcb data to update */
394 enum dcb_dscp_update_mode {
395 DONT_UPDATE_DCB_DSCP,
399 MAX_DCB_DSCP_UPDATE_MODE
402 /* The core storm context for the Ystorm */
403 struct ystorm_core_conn_st_ctx {
407 /* The core storm context for the Pstorm */
408 struct pstorm_core_conn_st_ctx {
412 /* Core Slowpath Connection storm context of Xstorm */
413 struct xstorm_core_conn_st_ctx {
416 struct regpair consolid_base_addr;
418 __le16 consolid_cons;
419 __le32 reserved0[55];
422 struct e4_xstorm_core_conn_ag_ctx {
426 #define E4_XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
427 #define E4_XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
428 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED1_MASK 0x1
429 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED1_SHIFT 1
430 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED2_MASK 0x1
431 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED2_SHIFT 2
432 #define E4_XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
433 #define E4_XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
434 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED3_MASK 0x1
435 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED3_SHIFT 4
436 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED4_MASK 0x1
437 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED4_SHIFT 5
438 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED5_MASK 0x1
439 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED5_SHIFT 6
440 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED6_MASK 0x1
441 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED6_SHIFT 7
443 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED7_MASK 0x1
444 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED7_SHIFT 0
445 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED8_MASK 0x1
446 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED8_SHIFT 1
447 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED9_MASK 0x1
448 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED9_SHIFT 2
449 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT11_MASK 0x1
450 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT11_SHIFT 3
451 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT12_MASK 0x1
452 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT12_SHIFT 4
453 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT13_MASK 0x1
454 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT13_SHIFT 5
455 #define E4_XSTORM_CORE_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1
456 #define E4_XSTORM_CORE_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6
457 #define E4_XSTORM_CORE_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1
458 #define E4_XSTORM_CORE_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7
460 #define E4_XSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
461 #define E4_XSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 0
462 #define E4_XSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
463 #define E4_XSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 2
464 #define E4_XSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
465 #define E4_XSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 4
466 #define E4_XSTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3
467 #define E4_XSTORM_CORE_CONN_AG_CTX_CF3_SHIFT 6
469 #define E4_XSTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3
470 #define E4_XSTORM_CORE_CONN_AG_CTX_CF4_SHIFT 0
471 #define E4_XSTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3
472 #define E4_XSTORM_CORE_CONN_AG_CTX_CF5_SHIFT 2
473 #define E4_XSTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3
474 #define E4_XSTORM_CORE_CONN_AG_CTX_CF6_SHIFT 4
475 #define E4_XSTORM_CORE_CONN_AG_CTX_CF7_MASK 0x3
476 #define E4_XSTORM_CORE_CONN_AG_CTX_CF7_SHIFT 6
478 #define E4_XSTORM_CORE_CONN_AG_CTX_CF8_MASK 0x3
479 #define E4_XSTORM_CORE_CONN_AG_CTX_CF8_SHIFT 0
480 #define E4_XSTORM_CORE_CONN_AG_CTX_CF9_MASK 0x3
481 #define E4_XSTORM_CORE_CONN_AG_CTX_CF9_SHIFT 2
482 #define E4_XSTORM_CORE_CONN_AG_CTX_CF10_MASK 0x3
483 #define E4_XSTORM_CORE_CONN_AG_CTX_CF10_SHIFT 4
484 #define E4_XSTORM_CORE_CONN_AG_CTX_CF11_MASK 0x3
485 #define E4_XSTORM_CORE_CONN_AG_CTX_CF11_SHIFT 6
487 #define E4_XSTORM_CORE_CONN_AG_CTX_CF12_MASK 0x3
488 #define E4_XSTORM_CORE_CONN_AG_CTX_CF12_SHIFT 0
489 #define E4_XSTORM_CORE_CONN_AG_CTX_CF13_MASK 0x3
490 #define E4_XSTORM_CORE_CONN_AG_CTX_CF13_SHIFT 2
491 #define E4_XSTORM_CORE_CONN_AG_CTX_CF14_MASK 0x3
492 #define E4_XSTORM_CORE_CONN_AG_CTX_CF14_SHIFT 4
493 #define E4_XSTORM_CORE_CONN_AG_CTX_CF15_MASK 0x3
494 #define E4_XSTORM_CORE_CONN_AG_CTX_CF15_SHIFT 6
496 #define E4_XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_MASK 0x3
497 #define E4_XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_SHIFT 0
498 #define E4_XSTORM_CORE_CONN_AG_CTX_CF17_MASK 0x3
499 #define E4_XSTORM_CORE_CONN_AG_CTX_CF17_SHIFT 2
500 #define E4_XSTORM_CORE_CONN_AG_CTX_DQ_CF_MASK 0x3
501 #define E4_XSTORM_CORE_CONN_AG_CTX_DQ_CF_SHIFT 4
502 #define E4_XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_MASK 0x3
503 #define E4_XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_SHIFT 6
505 #define E4_XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_MASK 0x3
506 #define E4_XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
507 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED10_MASK 0x3
508 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED10_SHIFT 2
509 #define E4_XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_MASK 0x3
510 #define E4_XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_SHIFT 4
511 #define E4_XSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
512 #define E4_XSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 6
513 #define E4_XSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
514 #define E4_XSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 7
516 #define E4_XSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
517 #define E4_XSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 0
518 #define E4_XSTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1
519 #define E4_XSTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 1
520 #define E4_XSTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1
521 #define E4_XSTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 2
522 #define E4_XSTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1
523 #define E4_XSTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 3
524 #define E4_XSTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1
525 #define E4_XSTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 4
526 #define E4_XSTORM_CORE_CONN_AG_CTX_CF7EN_MASK 0x1
527 #define E4_XSTORM_CORE_CONN_AG_CTX_CF7EN_SHIFT 5
528 #define E4_XSTORM_CORE_CONN_AG_CTX_CF8EN_MASK 0x1
529 #define E4_XSTORM_CORE_CONN_AG_CTX_CF8EN_SHIFT 6
530 #define E4_XSTORM_CORE_CONN_AG_CTX_CF9EN_MASK 0x1
531 #define E4_XSTORM_CORE_CONN_AG_CTX_CF9EN_SHIFT 7
533 #define E4_XSTORM_CORE_CONN_AG_CTX_CF10EN_MASK 0x1
534 #define E4_XSTORM_CORE_CONN_AG_CTX_CF10EN_SHIFT 0
535 #define E4_XSTORM_CORE_CONN_AG_CTX_CF11EN_MASK 0x1
536 #define E4_XSTORM_CORE_CONN_AG_CTX_CF11EN_SHIFT 1
537 #define E4_XSTORM_CORE_CONN_AG_CTX_CF12EN_MASK 0x1
538 #define E4_XSTORM_CORE_CONN_AG_CTX_CF12EN_SHIFT 2
539 #define E4_XSTORM_CORE_CONN_AG_CTX_CF13EN_MASK 0x1
540 #define E4_XSTORM_CORE_CONN_AG_CTX_CF13EN_SHIFT 3
541 #define E4_XSTORM_CORE_CONN_AG_CTX_CF14EN_MASK 0x1
542 #define E4_XSTORM_CORE_CONN_AG_CTX_CF14EN_SHIFT 4
543 #define E4_XSTORM_CORE_CONN_AG_CTX_CF15EN_MASK 0x1
544 #define E4_XSTORM_CORE_CONN_AG_CTX_CF15EN_SHIFT 5
545 #define E4_XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_EN_MASK 0x1
546 #define E4_XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_EN_SHIFT 6
547 #define E4_XSTORM_CORE_CONN_AG_CTX_CF17EN_MASK 0x1
548 #define E4_XSTORM_CORE_CONN_AG_CTX_CF17EN_SHIFT 7
550 #define E4_XSTORM_CORE_CONN_AG_CTX_DQ_CF_EN_MASK 0x1
551 #define E4_XSTORM_CORE_CONN_AG_CTX_DQ_CF_EN_SHIFT 0
552 #define E4_XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1
553 #define E4_XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1
554 #define E4_XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1
555 #define E4_XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2
556 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED11_MASK 0x1
557 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED11_SHIFT 3
558 #define E4_XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
559 #define E4_XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
560 #define E4_XSTORM_CORE_CONN_AG_CTX_CF23EN_MASK 0x1
561 #define E4_XSTORM_CORE_CONN_AG_CTX_CF23EN_SHIFT 5
562 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED12_MASK 0x1
563 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED12_SHIFT 6
564 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED13_MASK 0x1
565 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED13_SHIFT 7
567 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED14_MASK 0x1
568 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED14_SHIFT 0
569 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED15_MASK 0x1
570 #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED15_SHIFT 1
571 #define E4_XSTORM_CORE_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1
572 #define E4_XSTORM_CORE_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2
573 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1
574 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 3
575 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1
576 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 4
577 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1
578 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 5
579 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
580 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
581 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE9EN_MASK 0x1
582 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE9EN_SHIFT 7
584 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE10EN_MASK 0x1
585 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE10EN_SHIFT 0
586 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE11EN_MASK 0x1
587 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE11EN_SHIFT 1
588 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
589 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
590 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
591 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
592 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE14EN_MASK 0x1
593 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE14EN_SHIFT 4
594 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE15EN_MASK 0x1
595 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE15EN_SHIFT 5
596 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE16EN_MASK 0x1
597 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE16EN_SHIFT 6
598 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE17EN_MASK 0x1
599 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE17EN_SHIFT 7
601 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE18EN_MASK 0x1
602 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE18EN_SHIFT 0
603 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE19EN_MASK 0x1
604 #define E4_XSTORM_CORE_CONN_AG_CTX_RULE19EN_SHIFT 1
605 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
606 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
607 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
608 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
609 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
610 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
611 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
612 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
613 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
614 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
615 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
616 #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
618 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT16_MASK 0x1
619 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT16_SHIFT 0
620 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT17_MASK 0x1
621 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT17_SHIFT 1
622 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT18_MASK 0x1
623 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT18_SHIFT 2
624 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT19_MASK 0x1
625 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT19_SHIFT 3
626 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT20_MASK 0x1
627 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT20_SHIFT 4
628 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT21_MASK 0x1
629 #define E4_XSTORM_CORE_CONN_AG_CTX_BIT21_SHIFT 5
630 #define E4_XSTORM_CORE_CONN_AG_CTX_CF23_MASK 0x3
631 #define E4_XSTORM_CORE_CONN_AG_CTX_CF23_SHIFT 6
634 __le16 consolid_prod;
637 __le16 tx_bd_or_spq_prod;
638 __le16 updated_qm_pq_id;
685 struct e4_tstorm_core_conn_ag_ctx {
689 #define E4_TSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1
690 #define E4_TSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0
691 #define E4_TSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1
692 #define E4_TSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1
693 #define E4_TSTORM_CORE_CONN_AG_CTX_BIT2_MASK 0x1
694 #define E4_TSTORM_CORE_CONN_AG_CTX_BIT2_SHIFT 2
695 #define E4_TSTORM_CORE_CONN_AG_CTX_BIT3_MASK 0x1
696 #define E4_TSTORM_CORE_CONN_AG_CTX_BIT3_SHIFT 3
697 #define E4_TSTORM_CORE_CONN_AG_CTX_BIT4_MASK 0x1
698 #define E4_TSTORM_CORE_CONN_AG_CTX_BIT4_SHIFT 4
699 #define E4_TSTORM_CORE_CONN_AG_CTX_BIT5_MASK 0x1
700 #define E4_TSTORM_CORE_CONN_AG_CTX_BIT5_SHIFT 5
701 #define E4_TSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
702 #define E4_TSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 6
704 #define E4_TSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
705 #define E4_TSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 0
706 #define E4_TSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
707 #define E4_TSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 2
708 #define E4_TSTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3
709 #define E4_TSTORM_CORE_CONN_AG_CTX_CF3_SHIFT 4
710 #define E4_TSTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3
711 #define E4_TSTORM_CORE_CONN_AG_CTX_CF4_SHIFT 6
713 #define E4_TSTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3
714 #define E4_TSTORM_CORE_CONN_AG_CTX_CF5_SHIFT 0
715 #define E4_TSTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3
716 #define E4_TSTORM_CORE_CONN_AG_CTX_CF6_SHIFT 2
717 #define E4_TSTORM_CORE_CONN_AG_CTX_CF7_MASK 0x3
718 #define E4_TSTORM_CORE_CONN_AG_CTX_CF7_SHIFT 4
719 #define E4_TSTORM_CORE_CONN_AG_CTX_CF8_MASK 0x3
720 #define E4_TSTORM_CORE_CONN_AG_CTX_CF8_SHIFT 6
722 #define E4_TSTORM_CORE_CONN_AG_CTX_CF9_MASK 0x3
723 #define E4_TSTORM_CORE_CONN_AG_CTX_CF9_SHIFT 0
724 #define E4_TSTORM_CORE_CONN_AG_CTX_CF10_MASK 0x3
725 #define E4_TSTORM_CORE_CONN_AG_CTX_CF10_SHIFT 2
726 #define E4_TSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
727 #define E4_TSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 4
728 #define E4_TSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
729 #define E4_TSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 5
730 #define E4_TSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
731 #define E4_TSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 6
732 #define E4_TSTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1
733 #define E4_TSTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 7
735 #define E4_TSTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1
736 #define E4_TSTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 0
737 #define E4_TSTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1
738 #define E4_TSTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 1
739 #define E4_TSTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1
740 #define E4_TSTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 2
741 #define E4_TSTORM_CORE_CONN_AG_CTX_CF7EN_MASK 0x1
742 #define E4_TSTORM_CORE_CONN_AG_CTX_CF7EN_SHIFT 3
743 #define E4_TSTORM_CORE_CONN_AG_CTX_CF8EN_MASK 0x1
744 #define E4_TSTORM_CORE_CONN_AG_CTX_CF8EN_SHIFT 4
745 #define E4_TSTORM_CORE_CONN_AG_CTX_CF9EN_MASK 0x1
746 #define E4_TSTORM_CORE_CONN_AG_CTX_CF9EN_SHIFT 5
747 #define E4_TSTORM_CORE_CONN_AG_CTX_CF10EN_MASK 0x1
748 #define E4_TSTORM_CORE_CONN_AG_CTX_CF10EN_SHIFT 6
749 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1
750 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 7
752 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1
753 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 0
754 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1
755 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 1
756 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1
757 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 2
758 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1
759 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 3
760 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1
761 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 4
762 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1
763 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 5
764 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1
765 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 6
766 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE8EN_MASK 0x1
767 #define E4_TSTORM_CORE_CONN_AG_CTX_RULE8EN_SHIFT 7
789 struct e4_ustorm_core_conn_ag_ctx {
793 #define E4_USTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1
794 #define E4_USTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0
795 #define E4_USTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1
796 #define E4_USTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1
797 #define E4_USTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
798 #define E4_USTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2
799 #define E4_USTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
800 #define E4_USTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4
801 #define E4_USTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
802 #define E4_USTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6
804 #define E4_USTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3
805 #define E4_USTORM_CORE_CONN_AG_CTX_CF3_SHIFT 0
806 #define E4_USTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3
807 #define E4_USTORM_CORE_CONN_AG_CTX_CF4_SHIFT 2
808 #define E4_USTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3
809 #define E4_USTORM_CORE_CONN_AG_CTX_CF5_SHIFT 4
810 #define E4_USTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3
811 #define E4_USTORM_CORE_CONN_AG_CTX_CF6_SHIFT 6
813 #define E4_USTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
814 #define E4_USTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0
815 #define E4_USTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
816 #define E4_USTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1
817 #define E4_USTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
818 #define E4_USTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2
819 #define E4_USTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1
820 #define E4_USTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 3
821 #define E4_USTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1
822 #define E4_USTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 4
823 #define E4_USTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1
824 #define E4_USTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 5
825 #define E4_USTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1
826 #define E4_USTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 6
827 #define E4_USTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1
828 #define E4_USTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 7
830 #define E4_USTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1
831 #define E4_USTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 0
832 #define E4_USTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1
833 #define E4_USTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 1
834 #define E4_USTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1
835 #define E4_USTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 2
836 #define E4_USTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1
837 #define E4_USTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 3
838 #define E4_USTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1
839 #define E4_USTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 4
840 #define E4_USTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1
841 #define E4_USTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 5
842 #define E4_USTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1
843 #define E4_USTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 6
844 #define E4_USTORM_CORE_CONN_AG_CTX_RULE8EN_MASK 0x1
845 #define E4_USTORM_CORE_CONN_AG_CTX_RULE8EN_SHIFT 7
858 /* The core storm context for the Mstorm */
859 struct mstorm_core_conn_st_ctx {
863 /* The core storm context for the Ustorm */
864 struct ustorm_core_conn_st_ctx {
868 /* The core storm context for the Tstorm */
869 struct tstorm_core_conn_st_ctx {
873 /* core connection context */
874 struct e4_core_conn_context {
875 struct ystorm_core_conn_st_ctx ystorm_st_context;
876 struct regpair ystorm_st_padding[2];
877 struct pstorm_core_conn_st_ctx pstorm_st_context;
878 struct regpair pstorm_st_padding[2];
879 struct xstorm_core_conn_st_ctx xstorm_st_context;
880 struct e4_xstorm_core_conn_ag_ctx xstorm_ag_context;
881 struct e4_tstorm_core_conn_ag_ctx tstorm_ag_context;
882 struct e4_ustorm_core_conn_ag_ctx ustorm_ag_context;
883 struct mstorm_core_conn_st_ctx mstorm_st_context;
884 struct ustorm_core_conn_st_ctx ustorm_st_context;
885 struct regpair ustorm_st_padding[2];
886 struct tstorm_core_conn_st_ctx tstorm_st_context;
887 struct regpair tstorm_st_padding[2];
890 struct eth_mstorm_per_pf_stat {
891 struct regpair gre_discard_pkts;
892 struct regpair vxlan_discard_pkts;
893 struct regpair geneve_discard_pkts;
894 struct regpair lb_discard_pkts;
897 struct eth_mstorm_per_queue_stat {
898 struct regpair ttl0_discard;
899 struct regpair packet_too_big_discard;
900 struct regpair no_buff_discard;
901 struct regpair not_active_discard;
902 struct regpair tpa_coalesced_pkts;
903 struct regpair tpa_coalesced_events;
904 struct regpair tpa_aborts_num;
905 struct regpair tpa_coalesced_bytes;
908 /* Ethernet TX Per PF */
909 struct eth_pstorm_per_pf_stat {
910 struct regpair sent_lb_ucast_bytes;
911 struct regpair sent_lb_mcast_bytes;
912 struct regpair sent_lb_bcast_bytes;
913 struct regpair sent_lb_ucast_pkts;
914 struct regpair sent_lb_mcast_pkts;
915 struct regpair sent_lb_bcast_pkts;
916 struct regpair sent_gre_bytes;
917 struct regpair sent_vxlan_bytes;
918 struct regpair sent_geneve_bytes;
919 struct regpair sent_mpls_bytes;
920 struct regpair sent_gre_mpls_bytes;
921 struct regpair sent_udp_mpls_bytes;
922 struct regpair sent_gre_pkts;
923 struct regpair sent_vxlan_pkts;
924 struct regpair sent_geneve_pkts;
925 struct regpair sent_mpls_pkts;
926 struct regpair sent_gre_mpls_pkts;
927 struct regpair sent_udp_mpls_pkts;
928 struct regpair gre_drop_pkts;
929 struct regpair vxlan_drop_pkts;
930 struct regpair geneve_drop_pkts;
931 struct regpair mpls_drop_pkts;
932 struct regpair gre_mpls_drop_pkts;
933 struct regpair udp_mpls_drop_pkts;
936 /* Ethernet TX Per Queue Stats */
937 struct eth_pstorm_per_queue_stat {
938 struct regpair sent_ucast_bytes;
939 struct regpair sent_mcast_bytes;
940 struct regpair sent_bcast_bytes;
941 struct regpair sent_ucast_pkts;
942 struct regpair sent_mcast_pkts;
943 struct regpair sent_bcast_pkts;
944 struct regpair error_drop_pkts;
947 /* ETH Rx producers data */
948 struct eth_rx_rate_limit {
956 /* Update RSS indirection table entry command */
957 struct eth_tstorm_rss_update_data {
962 __le16 ind_table_value;
966 struct eth_ustorm_per_pf_stat {
967 struct regpair rcv_lb_ucast_bytes;
968 struct regpair rcv_lb_mcast_bytes;
969 struct regpair rcv_lb_bcast_bytes;
970 struct regpair rcv_lb_ucast_pkts;
971 struct regpair rcv_lb_mcast_pkts;
972 struct regpair rcv_lb_bcast_pkts;
973 struct regpair rcv_gre_bytes;
974 struct regpair rcv_vxlan_bytes;
975 struct regpair rcv_geneve_bytes;
976 struct regpair rcv_gre_pkts;
977 struct regpair rcv_vxlan_pkts;
978 struct regpair rcv_geneve_pkts;
981 struct eth_ustorm_per_queue_stat {
982 struct regpair rcv_ucast_bytes;
983 struct regpair rcv_mcast_bytes;
984 struct regpair rcv_bcast_bytes;
985 struct regpair rcv_ucast_pkts;
986 struct regpair rcv_mcast_pkts;
987 struct regpair rcv_bcast_pkts;
990 /* Event Ring VF-PF Channel data */
991 struct vf_pf_channel_eqe_data {
992 struct regpair msg_addr;
995 /* Event Ring malicious VF data */
996 struct malicious_vf_eqe_data {
1002 /* Event Ring initial cleanup data */
1003 struct initial_cleanup_eqe_data {
1008 /* Event Data Union */
1009 union event_ring_data {
1011 struct vf_pf_channel_eqe_data vf_pf_channel;
1012 struct iscsi_eqe_data iscsi_info;
1013 struct iscsi_connect_done_results iscsi_conn_done_info;
1014 union rdma_eqe_data rdma_data;
1015 struct malicious_vf_eqe_data malicious_vf;
1016 struct initial_cleanup_eqe_data vf_init_cleanup;
1019 /* Event Ring Entry */
1020 struct event_ring_entry {
1028 #define EVENT_RING_ENTRY_ASYNC_MASK 0x1
1029 #define EVENT_RING_ENTRY_ASYNC_SHIFT 0
1030 #define EVENT_RING_ENTRY_RESERVED1_MASK 0x7F
1031 #define EVENT_RING_ENTRY_RESERVED1_SHIFT 1
1032 union event_ring_data data;
1035 /* Event Ring Next Page Address */
1036 struct event_ring_next_addr {
1037 struct regpair addr;
1041 /* Event Ring Element */
1042 union event_ring_element {
1043 struct event_ring_entry entry;
1044 struct event_ring_next_addr next_addr;
1048 enum fw_flow_ctrl_mode {
1051 MAX_FW_FLOW_CTRL_MODE
1054 /* GFT profile type */
1055 enum gft_profile_type {
1056 GFT_PROFILE_TYPE_4_TUPLE,
1057 GFT_PROFILE_TYPE_L4_DST_PORT,
1058 GFT_PROFILE_TYPE_IP_DST_ADDR,
1059 GFT_PROFILE_TYPE_IP_SRC_ADDR,
1060 GFT_PROFILE_TYPE_TUNNEL_TYPE,
1061 MAX_GFT_PROFILE_TYPE
1064 /* Major and Minor hsi Versions */
1065 struct hsi_fp_ver_struct {
1066 u8 minor_ver_arr[2];
1067 u8 major_ver_arr[2];
1070 enum iwarp_ll2_tx_queues {
1071 IWARP_LL2_IN_ORDER_TX_QUEUE = 1,
1072 IWARP_LL2_ALIGNED_TX_QUEUE,
1073 IWARP_LL2_ALIGNED_RIGHT_TRIMMED_TX_QUEUE,
1075 MAX_IWARP_LL2_TX_QUEUES
1078 /* Malicious VF error ID */
1079 enum malicious_vf_error_id {
1080 MALICIOUS_VF_NO_ERROR,
1081 VF_PF_CHANNEL_NOT_READY,
1082 VF_ZONE_MSG_NOT_VALID,
1083 VF_ZONE_FUNC_NOT_ENABLED,
1084 ETH_PACKET_TOO_SMALL,
1085 ETH_ILLEGAL_VLAN_MODE,
1087 ETH_ILLEGAL_INBAND_TAGS,
1088 ETH_VLAN_INSERT_AND_INBAND_VLAN,
1090 ETH_FIRST_BD_WO_SOP,
1091 ETH_INSUFFICIENT_BDS,
1092 ETH_ILLEGAL_LSO_HDR_NBDS,
1093 ETH_ILLEGAL_LSO_MSS,
1095 ETH_ILLEGAL_LSO_HDR_LEN,
1096 ETH_INSUFFICIENT_PAYLOAD,
1097 ETH_EDPM_OUT_OF_SYNC,
1098 ETH_TUNN_IPV6_EXT_NBD_ERR,
1099 ETH_CONTROL_PACKET_VIOLATION,
1100 ETH_ANTI_SPOOFING_ERR,
1101 ETH_PACKET_SIZE_TOO_LARGE,
1102 CORE_ILLEGAL_VLAN_MODE,
1104 CORE_FIRST_BD_WO_SOP,
1105 CORE_INSUFFICIENT_BDS,
1106 CORE_PACKET_TOO_SMALL,
1107 CORE_ILLEGAL_INBAND_TAGS,
1108 CORE_VLAN_INSERT_AND_INBAND_VLAN,
1110 CORE_CONTROL_PACKET_VIOLATION,
1111 CORE_ANTI_SPOOFING_ERR,
1112 CORE_PACKET_SIZE_TOO_LARGE,
1113 CORE_ILLEGAL_BD_FLAGS,
1114 CORE_GSI_PACKET_VIOLATION,
1115 MAX_MALICIOUS_VF_ERROR_ID,
1118 /* Mstorm non-triggering VF zone */
1119 struct mstorm_non_trigger_vf_zone {
1120 struct eth_mstorm_per_queue_stat eth_queue_stat;
1121 struct eth_rx_prod_data eth_rx_queue_producers[ETH_MAX_NUM_RX_QUEUES_PER_VF_QUAD];
1124 /* Mstorm VF zone */
1125 struct mstorm_vf_zone {
1126 struct mstorm_non_trigger_vf_zone non_trigger;
1129 /* vlan header including TPID and TCI fields */
1130 struct vlan_header {
1135 /* outer tag configurations */
1136 struct outer_tag_config_struct {
1137 u8 enable_stag_pri_change;
1140 struct vlan_header outer_tag;
1141 u8 inner_to_outer_pri_map[8];
1144 /* personality per PF */
1145 enum personality_type {
1146 BAD_PERSONALITY_TYP,
1149 PERSONALITY_RDMA_AND_ETH,
1153 PERSONALITY_RESERVED,
1154 MAX_PERSONALITY_TYPE
1157 /* tunnel configuration */
1158 struct pf_start_tunnel_config {
1159 u8 set_vxlan_udp_port_flg;
1160 u8 set_geneve_udp_port_flg;
1161 u8 set_no_inner_l2_vxlan_udp_port_flg;
1162 u8 tunnel_clss_vxlan;
1163 u8 tunnel_clss_l2geneve;
1164 u8 tunnel_clss_ipgeneve;
1165 u8 tunnel_clss_l2gre;
1166 u8 tunnel_clss_ipgre;
1167 __le16 vxlan_udp_port;
1168 __le16 geneve_udp_port;
1169 __le16 no_inner_l2_vxlan_udp_port;
1173 /* Ramrod data for PF start ramrod */
1174 struct pf_start_ramrod_data {
1175 struct regpair event_ring_pbl_addr;
1176 struct regpair consolid_q_pbl_addr;
1177 struct pf_start_tunnel_config tunnel_config;
1178 __le16 event_ring_sb_id;
1181 u8 event_ring_num_pages;
1182 u8 event_ring_sb_index;
1184 u8 warning_as_error;
1185 u8 dont_log_ramrods;
1187 __le16 log_type_mask;
1190 u8 allow_npar_tx_switching;
1192 struct hsi_fp_ver_struct hsi_fp_ver;
1193 struct outer_tag_config_struct outer_tag_config;
1196 /* Data for port update ramrod */
1197 struct protocol_dcb_data {
1199 u8 dscp_enable_flag;
1203 u8 dcb_dont_add_vlan0;
1206 /* Update tunnel configuration */
1207 struct pf_update_tunnel_config {
1208 u8 update_rx_pf_clss;
1209 u8 update_rx_def_ucast_clss;
1210 u8 update_rx_def_non_ucast_clss;
1211 u8 set_vxlan_udp_port_flg;
1212 u8 set_geneve_udp_port_flg;
1213 u8 set_no_inner_l2_vxlan_udp_port_flg;
1214 u8 tunnel_clss_vxlan;
1215 u8 tunnel_clss_l2geneve;
1216 u8 tunnel_clss_ipgeneve;
1217 u8 tunnel_clss_l2gre;
1218 u8 tunnel_clss_ipgre;
1220 __le16 vxlan_udp_port;
1221 __le16 geneve_udp_port;
1222 __le16 no_inner_l2_vxlan_udp_port;
1223 __le16 reserved1[3];
1226 /* Data for port update ramrod */
1227 struct pf_update_ramrod_data {
1228 u8 update_eth_dcb_data_mode;
1229 u8 update_fcoe_dcb_data_mode;
1230 u8 update_iscsi_dcb_data_mode;
1231 u8 update_roce_dcb_data_mode;
1232 u8 update_rroce_dcb_data_mode;
1233 u8 update_iwarp_dcb_data_mode;
1234 u8 update_mf_vlan_flag;
1235 u8 update_enable_stag_pri_change;
1236 struct protocol_dcb_data eth_dcb_data;
1237 struct protocol_dcb_data fcoe_dcb_data;
1238 struct protocol_dcb_data iscsi_dcb_data;
1239 struct protocol_dcb_data roce_dcb_data;
1240 struct protocol_dcb_data rroce_dcb_data;
1241 struct protocol_dcb_data iwarp_dcb_data;
1243 u8 enable_stag_pri_change;
1245 struct pf_update_tunnel_config tunnel_config;
1258 /* use to index in hsi_fp_[major|minor]_ver_arr per protocol */
1259 enum protocol_version_array_key {
1262 MAX_PROTOCOL_VERSION_ARRAY_KEY
1266 struct rdma_sent_stats {
1267 struct regpair sent_bytes;
1268 struct regpair sent_pkts;
1271 /* Pstorm non-triggering VF zone */
1272 struct pstorm_non_trigger_vf_zone {
1273 struct eth_pstorm_per_queue_stat eth_queue_stat;
1274 struct rdma_sent_stats rdma_stats;
1277 /* Pstorm VF zone */
1278 struct pstorm_vf_zone {
1279 struct pstorm_non_trigger_vf_zone non_trigger;
1280 struct regpair reserved[7];
1283 /* Ramrod Header of SPQE */
1284 struct ramrod_header {
1292 struct rdma_rcv_stats {
1293 struct regpair rcv_bytes;
1294 struct regpair rcv_pkts;
1297 /* Data for update QCN/DCQCN RL ramrod */
1298 struct rl_update_ramrod_data {
1299 u8 qcn_update_param_flg;
1300 u8 dcqcn_update_param_flg;
1307 u8 dcqcn_reset_alpha_on_idle;
1309 u8 rl_timer_stage_th;
1317 __le32 dcqcn_timeuot_us;
1318 __le32 qcn_timeuot_us;
1322 /* Slowpath Element (SPQE) */
1323 struct slow_path_element {
1324 struct ramrod_header hdr;
1325 struct regpair data_ptr;
1328 /* Tstorm non-triggering VF zone */
1329 struct tstorm_non_trigger_vf_zone {
1330 struct rdma_rcv_stats rdma_stats;
1333 struct tstorm_per_port_stat {
1334 struct regpair trunc_error_discard;
1335 struct regpair mac_error_discard;
1336 struct regpair mftag_filter_discard;
1337 struct regpair eth_mac_filter_discard;
1338 struct regpair ll2_mac_filter_discard;
1339 struct regpair ll2_conn_disabled_discard;
1340 struct regpair iscsi_irregular_pkt;
1341 struct regpair fcoe_irregular_pkt;
1342 struct regpair roce_irregular_pkt;
1343 struct regpair iwarp_irregular_pkt;
1344 struct regpair eth_irregular_pkt;
1345 struct regpair toe_irregular_pkt;
1346 struct regpair preroce_irregular_pkt;
1347 struct regpair eth_gre_tunn_filter_discard;
1348 struct regpair eth_vxlan_tunn_filter_discard;
1349 struct regpair eth_geneve_tunn_filter_discard;
1350 struct regpair eth_gft_drop_pkt;
1353 /* Tstorm VF zone */
1354 struct tstorm_vf_zone {
1355 struct tstorm_non_trigger_vf_zone non_trigger;
1358 /* Tunnel classification scheme */
1360 TUNNEL_CLSS_MAC_VLAN = 0,
1361 TUNNEL_CLSS_MAC_VNI,
1362 TUNNEL_CLSS_INNER_MAC_VLAN,
1363 TUNNEL_CLSS_INNER_MAC_VNI,
1364 TUNNEL_CLSS_MAC_VLAN_DUAL_STAGE,
1368 /* Ustorm non-triggering VF zone */
1369 struct ustorm_non_trigger_vf_zone {
1370 struct eth_ustorm_per_queue_stat eth_queue_stat;
1371 struct regpair vf_pf_msg_addr;
1374 /* Ustorm triggering VF zone */
1375 struct ustorm_trigger_vf_zone {
1380 /* Ustorm VF zone */
1381 struct ustorm_vf_zone {
1382 struct ustorm_non_trigger_vf_zone non_trigger;
1383 struct ustorm_trigger_vf_zone trigger;
1386 /* VF-PF channel data */
1387 struct vf_pf_channel_data {
1394 /* Ramrod data for VF start ramrod */
1395 struct vf_start_ramrod_data {
1401 struct hsi_fp_ver_struct hsi_fp_ver;
1405 /* Ramrod data for VF start ramrod */
1406 struct vf_stop_ramrod_data {
1413 /* VF zone size mode */
1414 enum vf_zone_size_mode {
1415 VF_ZONE_SIZE_MODE_DEFAULT,
1416 VF_ZONE_SIZE_MODE_DOUBLE,
1417 VF_ZONE_SIZE_MODE_QUAD,
1418 MAX_VF_ZONE_SIZE_MODE
1421 /* Xstorm non-triggering VF zone */
1422 struct xstorm_non_trigger_vf_zone {
1423 struct regpair non_edpm_ack_pkts;
1426 /* Tstorm VF zone */
1427 struct xstorm_vf_zone {
1428 struct xstorm_non_trigger_vf_zone non_trigger;
1431 /* Attentions status block */
1432 struct atten_status_block {
1443 #define DMAE_CMD_SRC_MASK 0x1
1444 #define DMAE_CMD_SRC_SHIFT 0
1445 #define DMAE_CMD_DST_MASK 0x3
1446 #define DMAE_CMD_DST_SHIFT 1
1447 #define DMAE_CMD_C_DST_MASK 0x1
1448 #define DMAE_CMD_C_DST_SHIFT 3
1449 #define DMAE_CMD_CRC_RESET_MASK 0x1
1450 #define DMAE_CMD_CRC_RESET_SHIFT 4
1451 #define DMAE_CMD_SRC_ADDR_RESET_MASK 0x1
1452 #define DMAE_CMD_SRC_ADDR_RESET_SHIFT 5
1453 #define DMAE_CMD_DST_ADDR_RESET_MASK 0x1
1454 #define DMAE_CMD_DST_ADDR_RESET_SHIFT 6
1455 #define DMAE_CMD_COMP_FUNC_MASK 0x1
1456 #define DMAE_CMD_COMP_FUNC_SHIFT 7
1457 #define DMAE_CMD_COMP_WORD_EN_MASK 0x1
1458 #define DMAE_CMD_COMP_WORD_EN_SHIFT 8
1459 #define DMAE_CMD_COMP_CRC_EN_MASK 0x1
1460 #define DMAE_CMD_COMP_CRC_EN_SHIFT 9
1461 #define DMAE_CMD_COMP_CRC_OFFSET_MASK 0x7
1462 #define DMAE_CMD_COMP_CRC_OFFSET_SHIFT 10
1463 #define DMAE_CMD_RESERVED1_MASK 0x1
1464 #define DMAE_CMD_RESERVED1_SHIFT 13
1465 #define DMAE_CMD_ENDIANITY_MODE_MASK 0x3
1466 #define DMAE_CMD_ENDIANITY_MODE_SHIFT 14
1467 #define DMAE_CMD_ERR_HANDLING_MASK 0x3
1468 #define DMAE_CMD_ERR_HANDLING_SHIFT 16
1469 #define DMAE_CMD_PORT_ID_MASK 0x3
1470 #define DMAE_CMD_PORT_ID_SHIFT 18
1471 #define DMAE_CMD_SRC_PF_ID_MASK 0xF
1472 #define DMAE_CMD_SRC_PF_ID_SHIFT 20
1473 #define DMAE_CMD_DST_PF_ID_MASK 0xF
1474 #define DMAE_CMD_DST_PF_ID_SHIFT 24
1475 #define DMAE_CMD_SRC_VF_ID_VALID_MASK 0x1
1476 #define DMAE_CMD_SRC_VF_ID_VALID_SHIFT 28
1477 #define DMAE_CMD_DST_VF_ID_VALID_MASK 0x1
1478 #define DMAE_CMD_DST_VF_ID_VALID_SHIFT 29
1479 #define DMAE_CMD_RESERVED2_MASK 0x3
1480 #define DMAE_CMD_RESERVED2_SHIFT 30
1487 #define DMAE_CMD_SRC_VF_ID_MASK 0xFF
1488 #define DMAE_CMD_SRC_VF_ID_SHIFT 0
1489 #define DMAE_CMD_DST_VF_ID_MASK 0xFF
1490 #define DMAE_CMD_DST_VF_ID_SHIFT 8
1491 __le32 comp_addr_lo;
1492 __le32 comp_addr_hi;
1499 __le16 error_bit_reserved;
1500 #define DMAE_CMD_ERROR_BIT_MASK 0x1
1501 #define DMAE_CMD_ERROR_BIT_SHIFT 0
1502 #define DMAE_CMD_RESERVED_MASK 0x7FFF
1503 #define DMAE_CMD_RESERVED_SHIFT 1
1508 enum dmae_cmd_comp_crc_en_enum {
1509 dmae_cmd_comp_crc_disabled,
1510 dmae_cmd_comp_crc_enabled,
1511 MAX_DMAE_CMD_COMP_CRC_EN_ENUM
1514 enum dmae_cmd_comp_func_enum {
1515 dmae_cmd_comp_func_to_src,
1516 dmae_cmd_comp_func_to_dst,
1517 MAX_DMAE_CMD_COMP_FUNC_ENUM
1520 enum dmae_cmd_comp_word_en_enum {
1521 dmae_cmd_comp_word_disabled,
1522 dmae_cmd_comp_word_enabled,
1523 MAX_DMAE_CMD_COMP_WORD_EN_ENUM
1526 enum dmae_cmd_c_dst_enum {
1527 dmae_cmd_c_dst_pcie,
1529 MAX_DMAE_CMD_C_DST_ENUM
1532 enum dmae_cmd_dst_enum {
1533 dmae_cmd_dst_none_0,
1536 dmae_cmd_dst_none_3,
1537 MAX_DMAE_CMD_DST_ENUM
1540 enum dmae_cmd_error_handling_enum {
1541 dmae_cmd_error_handling_send_regular_comp,
1542 dmae_cmd_error_handling_send_comp_with_err,
1543 dmae_cmd_error_handling_dont_send_comp,
1544 MAX_DMAE_CMD_ERROR_HANDLING_ENUM
1547 enum dmae_cmd_src_enum {
1550 MAX_DMAE_CMD_SRC_ENUM
1553 struct e4_mstorm_core_conn_ag_ctx {
1557 #define E4_MSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1
1558 #define E4_MSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0
1559 #define E4_MSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1
1560 #define E4_MSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1
1561 #define E4_MSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
1562 #define E4_MSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2
1563 #define E4_MSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
1564 #define E4_MSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4
1565 #define E4_MSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
1566 #define E4_MSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6
1568 #define E4_MSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
1569 #define E4_MSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0
1570 #define E4_MSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
1571 #define E4_MSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1
1572 #define E4_MSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
1573 #define E4_MSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2
1574 #define E4_MSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1
1575 #define E4_MSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 3
1576 #define E4_MSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1
1577 #define E4_MSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 4
1578 #define E4_MSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1
1579 #define E4_MSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 5
1580 #define E4_MSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1
1581 #define E4_MSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 6
1582 #define E4_MSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1
1583 #define E4_MSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 7
1590 struct e4_ystorm_core_conn_ag_ctx {
1594 #define E4_YSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1
1595 #define E4_YSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0
1596 #define E4_YSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1
1597 #define E4_YSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1
1598 #define E4_YSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
1599 #define E4_YSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2
1600 #define E4_YSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
1601 #define E4_YSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4
1602 #define E4_YSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
1603 #define E4_YSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6
1605 #define E4_YSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
1606 #define E4_YSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0
1607 #define E4_YSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
1608 #define E4_YSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1
1609 #define E4_YSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
1610 #define E4_YSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2
1611 #define E4_YSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1
1612 #define E4_YSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 3
1613 #define E4_YSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1
1614 #define E4_YSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 4
1615 #define E4_YSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1
1616 #define E4_YSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 5
1617 #define E4_YSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1
1618 #define E4_YSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 6
1619 #define E4_YSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1
1620 #define E4_YSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 7
1634 /* DMAE parameters */
1635 struct qed_dmae_params {
1637 /* If QED_DMAE_PARAMS_RW_REPL_SRC flag is set and the
1638 * source is a block of length DMAE_MAX_RW_SIZE and the
1639 * destination is larger, the source block will be duplicated as
1640 * many times as required to fill the destination block. This is
1641 * used mostly to write a zeroed buffer to destination address
1644 #define QED_DMAE_PARAMS_RW_REPL_SRC_MASK 0x1
1645 #define QED_DMAE_PARAMS_RW_REPL_SRC_SHIFT 0
1646 #define QED_DMAE_PARAMS_SRC_VF_VALID_MASK 0x1
1647 #define QED_DMAE_PARAMS_SRC_VF_VALID_SHIFT 1
1648 #define QED_DMAE_PARAMS_DST_VF_VALID_MASK 0x1
1649 #define QED_DMAE_PARAMS_DST_VF_VALID_SHIFT 2
1650 #define QED_DMAE_PARAMS_COMPLETION_DST_MASK 0x1
1651 #define QED_DMAE_PARAMS_COMPLETION_DST_SHIFT 3
1652 #define QED_DMAE_PARAMS_PORT_VALID_MASK 0x1
1653 #define QED_DMAE_PARAMS_PORT_VALID_SHIFT 4
1654 #define QED_DMAE_PARAMS_SRC_PF_VALID_MASK 0x1
1655 #define QED_DMAE_PARAMS_SRC_PF_VALID_SHIFT 5
1656 #define QED_DMAE_PARAMS_DST_PF_VALID_MASK 0x1
1657 #define QED_DMAE_PARAMS_DST_PF_VALID_SHIFT 6
1658 #define QED_DMAE_PARAMS_RESERVED_MASK 0x1FFFFFF
1659 #define QED_DMAE_PARAMS_RESERVED_SHIFT 7
1669 /* IGU cleanup command */
1670 struct igu_cleanup {
1671 __le32 sb_id_and_flags;
1672 #define IGU_CLEANUP_RESERVED0_MASK 0x7FFFFFF
1673 #define IGU_CLEANUP_RESERVED0_SHIFT 0
1674 #define IGU_CLEANUP_CLEANUP_SET_MASK 0x1
1675 #define IGU_CLEANUP_CLEANUP_SET_SHIFT 27
1676 #define IGU_CLEANUP_CLEANUP_TYPE_MASK 0x7
1677 #define IGU_CLEANUP_CLEANUP_TYPE_SHIFT 28
1678 #define IGU_CLEANUP_COMMAND_TYPE_MASK 0x1
1679 #define IGU_CLEANUP_COMMAND_TYPE_SHIFT 31
1683 /* IGU firmware driver command */
1685 struct igu_prod_cons_update prod_cons_update;
1686 struct igu_cleanup cleanup;
1689 /* IGU firmware driver command */
1690 struct igu_command_reg_ctrl {
1692 __le16 igu_command_reg_ctrl_fields;
1693 #define IGU_COMMAND_REG_CTRL_PXP_BAR_ADDR_MASK 0xFFF
1694 #define IGU_COMMAND_REG_CTRL_PXP_BAR_ADDR_SHIFT 0
1695 #define IGU_COMMAND_REG_CTRL_RESERVED_MASK 0x7
1696 #define IGU_COMMAND_REG_CTRL_RESERVED_SHIFT 12
1697 #define IGU_COMMAND_REG_CTRL_COMMAND_TYPE_MASK 0x1
1698 #define IGU_COMMAND_REG_CTRL_COMMAND_TYPE_SHIFT 15
1701 /* IGU mapping line structure */
1702 struct igu_mapping_line {
1703 __le32 igu_mapping_line_fields;
1704 #define IGU_MAPPING_LINE_VALID_MASK 0x1
1705 #define IGU_MAPPING_LINE_VALID_SHIFT 0
1706 #define IGU_MAPPING_LINE_VECTOR_NUMBER_MASK 0xFF
1707 #define IGU_MAPPING_LINE_VECTOR_NUMBER_SHIFT 1
1708 #define IGU_MAPPING_LINE_FUNCTION_NUMBER_MASK 0xFF
1709 #define IGU_MAPPING_LINE_FUNCTION_NUMBER_SHIFT 9
1710 #define IGU_MAPPING_LINE_PF_VALID_MASK 0x1
1711 #define IGU_MAPPING_LINE_PF_VALID_SHIFT 17
1712 #define IGU_MAPPING_LINE_IPS_GROUP_MASK 0x3F
1713 #define IGU_MAPPING_LINE_IPS_GROUP_SHIFT 18
1714 #define IGU_MAPPING_LINE_RESERVED_MASK 0xFF
1715 #define IGU_MAPPING_LINE_RESERVED_SHIFT 24
1718 /* IGU MSIX line structure */
1719 struct igu_msix_vector {
1720 struct regpair address;
1722 __le32 msix_vector_fields;
1723 #define IGU_MSIX_VECTOR_MASK_BIT_MASK 0x1
1724 #define IGU_MSIX_VECTOR_MASK_BIT_SHIFT 0
1725 #define IGU_MSIX_VECTOR_RESERVED0_MASK 0x7FFF
1726 #define IGU_MSIX_VECTOR_RESERVED0_SHIFT 1
1727 #define IGU_MSIX_VECTOR_STEERING_TAG_MASK 0xFF
1728 #define IGU_MSIX_VECTOR_STEERING_TAG_SHIFT 16
1729 #define IGU_MSIX_VECTOR_RESERVED1_MASK 0xFF
1730 #define IGU_MSIX_VECTOR_RESERVED1_SHIFT 24
1732 /* per encapsulation type enabling flags */
1733 struct prs_reg_encapsulation_type_en {
1735 #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GRE_ENABLE_MASK 0x1
1736 #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GRE_ENABLE_SHIFT 0
1737 #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GRE_ENABLE_MASK 0x1
1738 #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GRE_ENABLE_SHIFT 1
1739 #define PRS_REG_ENCAPSULATION_TYPE_EN_VXLAN_ENABLE_MASK 0x1
1740 #define PRS_REG_ENCAPSULATION_TYPE_EN_VXLAN_ENABLE_SHIFT 2
1741 #define PRS_REG_ENCAPSULATION_TYPE_EN_T_TAG_ENABLE_MASK 0x1
1742 #define PRS_REG_ENCAPSULATION_TYPE_EN_T_TAG_ENABLE_SHIFT 3
1743 #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GENEVE_ENABLE_MASK 0x1
1744 #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GENEVE_ENABLE_SHIFT 4
1745 #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GENEVE_ENABLE_MASK 0x1
1746 #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GENEVE_ENABLE_SHIFT 5
1747 #define PRS_REG_ENCAPSULATION_TYPE_EN_RESERVED_MASK 0x3
1748 #define PRS_REG_ENCAPSULATION_TYPE_EN_RESERVED_SHIFT 6
1751 enum pxp_tph_st_hint {
1753 TPH_ST_HINT_REQUESTER,
1755 TPH_ST_HINT_TARGET_PRIO,
1759 /* QM hardware structure of enable bypass credit mask */
1760 struct qm_rf_bypass_mask {
1762 #define QM_RF_BYPASS_MASK_LINEVOQ_MASK 0x1
1763 #define QM_RF_BYPASS_MASK_LINEVOQ_SHIFT 0
1764 #define QM_RF_BYPASS_MASK_RESERVED0_MASK 0x1
1765 #define QM_RF_BYPASS_MASK_RESERVED0_SHIFT 1
1766 #define QM_RF_BYPASS_MASK_PFWFQ_MASK 0x1
1767 #define QM_RF_BYPASS_MASK_PFWFQ_SHIFT 2
1768 #define QM_RF_BYPASS_MASK_VPWFQ_MASK 0x1
1769 #define QM_RF_BYPASS_MASK_VPWFQ_SHIFT 3
1770 #define QM_RF_BYPASS_MASK_PFRL_MASK 0x1
1771 #define QM_RF_BYPASS_MASK_PFRL_SHIFT 4
1772 #define QM_RF_BYPASS_MASK_VPQCNRL_MASK 0x1
1773 #define QM_RF_BYPASS_MASK_VPQCNRL_SHIFT 5
1774 #define QM_RF_BYPASS_MASK_FWPAUSE_MASK 0x1
1775 #define QM_RF_BYPASS_MASK_FWPAUSE_SHIFT 6
1776 #define QM_RF_BYPASS_MASK_RESERVED1_MASK 0x1
1777 #define QM_RF_BYPASS_MASK_RESERVED1_SHIFT 7
1780 /* QM hardware structure of opportunistic credit mask */
1781 struct qm_rf_opportunistic_mask {
1783 #define QM_RF_OPPORTUNISTIC_MASK_LINEVOQ_MASK 0x1
1784 #define QM_RF_OPPORTUNISTIC_MASK_LINEVOQ_SHIFT 0
1785 #define QM_RF_OPPORTUNISTIC_MASK_BYTEVOQ_MASK 0x1
1786 #define QM_RF_OPPORTUNISTIC_MASK_BYTEVOQ_SHIFT 1
1787 #define QM_RF_OPPORTUNISTIC_MASK_PFWFQ_MASK 0x1
1788 #define QM_RF_OPPORTUNISTIC_MASK_PFWFQ_SHIFT 2
1789 #define QM_RF_OPPORTUNISTIC_MASK_VPWFQ_MASK 0x1
1790 #define QM_RF_OPPORTUNISTIC_MASK_VPWFQ_SHIFT 3
1791 #define QM_RF_OPPORTUNISTIC_MASK_PFRL_MASK 0x1
1792 #define QM_RF_OPPORTUNISTIC_MASK_PFRL_SHIFT 4
1793 #define QM_RF_OPPORTUNISTIC_MASK_VPQCNRL_MASK 0x1
1794 #define QM_RF_OPPORTUNISTIC_MASK_VPQCNRL_SHIFT 5
1795 #define QM_RF_OPPORTUNISTIC_MASK_FWPAUSE_MASK 0x1
1796 #define QM_RF_OPPORTUNISTIC_MASK_FWPAUSE_SHIFT 6
1797 #define QM_RF_OPPORTUNISTIC_MASK_RESERVED0_MASK 0x1
1798 #define QM_RF_OPPORTUNISTIC_MASK_RESERVED0_SHIFT 7
1799 #define QM_RF_OPPORTUNISTIC_MASK_QUEUEEMPTY_MASK 0x1
1800 #define QM_RF_OPPORTUNISTIC_MASK_QUEUEEMPTY_SHIFT 8
1801 #define QM_RF_OPPORTUNISTIC_MASK_RESERVED1_MASK 0x7F
1802 #define QM_RF_OPPORTUNISTIC_MASK_RESERVED1_SHIFT 9
1805 /* QM hardware structure of QM map memory */
1806 struct qm_rf_pq_map_e4 {
1808 #define QM_RF_PQ_MAP_E4_PQ_VALID_MASK 0x1
1809 #define QM_RF_PQ_MAP_E4_PQ_VALID_SHIFT 0
1810 #define QM_RF_PQ_MAP_E4_RL_ID_MASK 0xFF
1811 #define QM_RF_PQ_MAP_E4_RL_ID_SHIFT 1
1812 #define QM_RF_PQ_MAP_E4_VP_PQ_ID_MASK 0x1FF
1813 #define QM_RF_PQ_MAP_E4_VP_PQ_ID_SHIFT 9
1814 #define QM_RF_PQ_MAP_E4_VOQ_MASK 0x1F
1815 #define QM_RF_PQ_MAP_E4_VOQ_SHIFT 18
1816 #define QM_RF_PQ_MAP_E4_WRR_WEIGHT_GROUP_MASK 0x3
1817 #define QM_RF_PQ_MAP_E4_WRR_WEIGHT_GROUP_SHIFT 23
1818 #define QM_RF_PQ_MAP_E4_RL_VALID_MASK 0x1
1819 #define QM_RF_PQ_MAP_E4_RL_VALID_SHIFT 25
1820 #define QM_RF_PQ_MAP_E4_RESERVED_MASK 0x3F
1821 #define QM_RF_PQ_MAP_E4_RESERVED_SHIFT 26
1824 /* Completion params for aggregated interrupt completion */
1825 struct sdm_agg_int_comp_params {
1827 #define SDM_AGG_INT_COMP_PARAMS_AGG_INT_INDEX_MASK 0x3F
1828 #define SDM_AGG_INT_COMP_PARAMS_AGG_INT_INDEX_SHIFT 0
1829 #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_ENABLE_MASK 0x1
1830 #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_ENABLE_SHIFT 6
1831 #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_BIT_MASK 0x1FF
1832 #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_BIT_SHIFT 7
1835 /* SDM operation gen command (generate aggregative interrupt) */
1838 #define SDM_OP_GEN_COMP_PARAM_MASK 0xFFFF
1839 #define SDM_OP_GEN_COMP_PARAM_SHIFT 0
1840 #define SDM_OP_GEN_COMP_TYPE_MASK 0xF
1841 #define SDM_OP_GEN_COMP_TYPE_SHIFT 16
1842 #define SDM_OP_GEN_RESERVED_MASK 0xFFF
1843 #define SDM_OP_GEN_RESERVED_SHIFT 20
1846 /* Physical memory descriptor */
1847 struct phys_mem_desc {
1848 dma_addr_t phys_addr;
1850 u32 size; /* In bytes */
1853 /* Virtual memory descriptor */
1854 struct virt_mem_desc {
1856 u32 size; /* In bytes */
1859 /****************************************/
1860 /* Debug Tools HSI constants and macros */
1861 /****************************************/
1951 BLOCK_NIG_LB_FC_PLLH,
1952 BLOCK_NIG_TX_FC_PLLH,
1954 BLOCK_NIG_RX_FC_PLLH,
1959 /* binary debug buffer types */
1960 enum bin_dbg_buffer_type {
1961 BIN_BUF_DBG_MODE_TREE,
1962 BIN_BUF_DBG_DUMP_REG,
1963 BIN_BUF_DBG_DUMP_MEM,
1964 BIN_BUF_DBG_IDLE_CHK_REGS,
1965 BIN_BUF_DBG_IDLE_CHK_IMMS,
1966 BIN_BUF_DBG_IDLE_CHK_RULES,
1967 BIN_BUF_DBG_IDLE_CHK_PARSING_DATA,
1968 BIN_BUF_DBG_ATTN_BLOCKS,
1969 BIN_BUF_DBG_ATTN_REGS,
1970 BIN_BUF_DBG_ATTN_INDEXES,
1971 BIN_BUF_DBG_ATTN_NAME_OFFSETS,
1973 BIN_BUF_DBG_BLOCKS_CHIP_DATA,
1974 BIN_BUF_DBG_BUS_LINES,
1975 BIN_BUF_DBG_BLOCKS_USER_DATA,
1976 BIN_BUF_DBG_BLOCKS_CHIP_USER_DATA,
1977 BIN_BUF_DBG_BUS_LINE_NAME_OFFSETS,
1978 BIN_BUF_DBG_RESET_REGS,
1979 BIN_BUF_DBG_PARSING_STRINGS,
1980 MAX_BIN_DBG_BUFFER_TYPE
1984 /* Attention bit mapping */
1985 struct dbg_attn_bit_mapping {
1987 #define DBG_ATTN_BIT_MAPPING_VAL_MASK 0x7FFF
1988 #define DBG_ATTN_BIT_MAPPING_VAL_SHIFT 0
1989 #define DBG_ATTN_BIT_MAPPING_IS_UNUSED_BIT_CNT_MASK 0x1
1990 #define DBG_ATTN_BIT_MAPPING_IS_UNUSED_BIT_CNT_SHIFT 15
1993 /* Attention block per-type data */
1994 struct dbg_attn_block_type_data {
2003 /* Block attentions */
2004 struct dbg_attn_block {
2005 struct dbg_attn_block_type_data per_type_data[2];
2008 /* Attention register result */
2009 struct dbg_attn_reg_result {
2011 #define DBG_ATTN_REG_RESULT_STS_ADDRESS_MASK 0xFFFFFF
2012 #define DBG_ATTN_REG_RESULT_STS_ADDRESS_SHIFT 0
2013 #define DBG_ATTN_REG_RESULT_NUM_REG_ATTN_MASK 0xFF
2014 #define DBG_ATTN_REG_RESULT_NUM_REG_ATTN_SHIFT 24
2015 u16 block_attn_offset;
2021 /* Attention block result */
2022 struct dbg_attn_block_result {
2025 #define DBG_ATTN_BLOCK_RESULT_ATTN_TYPE_MASK 0x3
2026 #define DBG_ATTN_BLOCK_RESULT_ATTN_TYPE_SHIFT 0
2027 #define DBG_ATTN_BLOCK_RESULT_NUM_REGS_MASK 0x3F
2028 #define DBG_ATTN_BLOCK_RESULT_NUM_REGS_SHIFT 2
2030 struct dbg_attn_reg_result reg_results[15];
2034 struct dbg_mode_hdr {
2036 #define DBG_MODE_HDR_EVAL_MODE_MASK 0x1
2037 #define DBG_MODE_HDR_EVAL_MODE_SHIFT 0
2038 #define DBG_MODE_HDR_MODES_BUF_OFFSET_MASK 0x7FFF
2039 #define DBG_MODE_HDR_MODES_BUF_OFFSET_SHIFT 1
2042 /* Attention register */
2043 struct dbg_attn_reg {
2044 struct dbg_mode_hdr mode;
2045 u16 block_attn_offset;
2047 #define DBG_ATTN_REG_STS_ADDRESS_MASK 0xFFFFFF
2048 #define DBG_ATTN_REG_STS_ADDRESS_SHIFT 0
2049 #define DBG_ATTN_REG_NUM_REG_ATTN_MASK 0xFF
2050 #define DBG_ATTN_REG_NUM_REG_ATTN_SHIFT 24
2051 u32 sts_clr_address;
2055 /* Attention types */
2056 enum dbg_attn_type {
2057 ATTN_TYPE_INTERRUPT,
2062 /* Block debug data */
2065 u8 associated_storm_letter;
2068 /* Chip-specific block debug data */
2069 struct dbg_block_chip {
2071 #define DBG_BLOCK_CHIP_IS_REMOVED_MASK 0x1
2072 #define DBG_BLOCK_CHIP_IS_REMOVED_SHIFT 0
2073 #define DBG_BLOCK_CHIP_HAS_RESET_REG_MASK 0x1
2074 #define DBG_BLOCK_CHIP_HAS_RESET_REG_SHIFT 1
2075 #define DBG_BLOCK_CHIP_UNRESET_BEFORE_DUMP_MASK 0x1
2076 #define DBG_BLOCK_CHIP_UNRESET_BEFORE_DUMP_SHIFT 2
2077 #define DBG_BLOCK_CHIP_HAS_DBG_BUS_MASK 0x1
2078 #define DBG_BLOCK_CHIP_HAS_DBG_BUS_SHIFT 3
2079 #define DBG_BLOCK_CHIP_HAS_LATENCY_EVENTS_MASK 0x1
2080 #define DBG_BLOCK_CHIP_HAS_LATENCY_EVENTS_SHIFT 4
2081 #define DBG_BLOCK_CHIP_RESERVED0_MASK 0x7
2082 #define DBG_BLOCK_CHIP_RESERVED0_SHIFT 5
2085 u8 reset_reg_bit_offset;
2086 struct dbg_mode_hdr dbg_bus_mode;
2089 u8 num_of_dbg_bus_lines;
2090 u16 dbg_bus_lines_offset;
2091 u32 dbg_select_reg_addr;
2092 u32 dbg_dword_enable_reg_addr;
2093 u32 dbg_shift_reg_addr;
2094 u32 dbg_force_valid_reg_addr;
2095 u32 dbg_force_frame_reg_addr;
2098 /* Chip-specific block user debug data */
2099 struct dbg_block_chip_user {
2100 u8 num_of_dbg_bus_lines;
2101 u8 has_latency_events;
2105 /* Block user debug data */
2106 struct dbg_block_user {
2110 /* Block Debug line data */
2111 struct dbg_bus_line {
2113 #define DBG_BUS_LINE_NUM_OF_GROUPS_MASK 0xF
2114 #define DBG_BUS_LINE_NUM_OF_GROUPS_SHIFT 0
2115 #define DBG_BUS_LINE_IS_256B_MASK 0x1
2116 #define DBG_BUS_LINE_IS_256B_SHIFT 4
2117 #define DBG_BUS_LINE_RESERVED_MASK 0x7
2118 #define DBG_BUS_LINE_RESERVED_SHIFT 5
2122 /* Condition header for registers dump */
2123 struct dbg_dump_cond_hdr {
2124 struct dbg_mode_hdr mode; /* Mode header */
2125 u8 block_id; /* block ID */
2126 u8 data_size; /* size in dwords of the data following this header */
2129 /* Memory data for registers dump */
2130 struct dbg_dump_mem {
2132 #define DBG_DUMP_MEM_ADDRESS_MASK 0xFFFFFF
2133 #define DBG_DUMP_MEM_ADDRESS_SHIFT 0
2134 #define DBG_DUMP_MEM_MEM_GROUP_ID_MASK 0xFF
2135 #define DBG_DUMP_MEM_MEM_GROUP_ID_SHIFT 24
2137 #define DBG_DUMP_MEM_LENGTH_MASK 0xFFFFFF
2138 #define DBG_DUMP_MEM_LENGTH_SHIFT 0
2139 #define DBG_DUMP_MEM_WIDE_BUS_MASK 0x1
2140 #define DBG_DUMP_MEM_WIDE_BUS_SHIFT 24
2141 #define DBG_DUMP_MEM_RESERVED_MASK 0x7F
2142 #define DBG_DUMP_MEM_RESERVED_SHIFT 25
2145 /* Register data for registers dump */
2146 struct dbg_dump_reg {
2148 #define DBG_DUMP_REG_ADDRESS_MASK 0x7FFFFF
2149 #define DBG_DUMP_REG_ADDRESS_SHIFT 0
2150 #define DBG_DUMP_REG_WIDE_BUS_MASK 0x1
2151 #define DBG_DUMP_REG_WIDE_BUS_SHIFT 23
2152 #define DBG_DUMP_REG_LENGTH_MASK 0xFF
2153 #define DBG_DUMP_REG_LENGTH_SHIFT 24
2156 /* Split header for registers dump */
2157 struct dbg_dump_split_hdr {
2159 #define DBG_DUMP_SPLIT_HDR_DATA_SIZE_MASK 0xFFFFFF
2160 #define DBG_DUMP_SPLIT_HDR_DATA_SIZE_SHIFT 0
2161 #define DBG_DUMP_SPLIT_HDR_SPLIT_TYPE_ID_MASK 0xFF
2162 #define DBG_DUMP_SPLIT_HDR_SPLIT_TYPE_ID_SHIFT 24
2165 /* Condition header for idle check */
2166 struct dbg_idle_chk_cond_hdr {
2167 struct dbg_mode_hdr mode; /* Mode header */
2168 u16 data_size; /* size in dwords of the data following this header */
2171 /* Idle Check condition register */
2172 struct dbg_idle_chk_cond_reg {
2174 #define DBG_IDLE_CHK_COND_REG_ADDRESS_MASK 0x7FFFFF
2175 #define DBG_IDLE_CHK_COND_REG_ADDRESS_SHIFT 0
2176 #define DBG_IDLE_CHK_COND_REG_WIDE_BUS_MASK 0x1
2177 #define DBG_IDLE_CHK_COND_REG_WIDE_BUS_SHIFT 23
2178 #define DBG_IDLE_CHK_COND_REG_BLOCK_ID_MASK 0xFF
2179 #define DBG_IDLE_CHK_COND_REG_BLOCK_ID_SHIFT 24
2185 /* Idle Check info register */
2186 struct dbg_idle_chk_info_reg {
2188 #define DBG_IDLE_CHK_INFO_REG_ADDRESS_MASK 0x7FFFFF
2189 #define DBG_IDLE_CHK_INFO_REG_ADDRESS_SHIFT 0
2190 #define DBG_IDLE_CHK_INFO_REG_WIDE_BUS_MASK 0x1
2191 #define DBG_IDLE_CHK_INFO_REG_WIDE_BUS_SHIFT 23
2192 #define DBG_IDLE_CHK_INFO_REG_BLOCK_ID_MASK 0xFF
2193 #define DBG_IDLE_CHK_INFO_REG_BLOCK_ID_SHIFT 24
2194 u16 size; /* register size in dwords */
2195 struct dbg_mode_hdr mode; /* Mode header */
2198 /* Idle Check register */
2199 union dbg_idle_chk_reg {
2200 struct dbg_idle_chk_cond_reg cond_reg; /* condition register */
2201 struct dbg_idle_chk_info_reg info_reg; /* info register */
2204 /* Idle Check result header */
2205 struct dbg_idle_chk_result_hdr {
2206 u16 rule_id; /* Failing rule index */
2207 u16 mem_entry_id; /* Failing memory entry index */
2208 u8 num_dumped_cond_regs; /* number of dumped condition registers */
2209 u8 num_dumped_info_regs; /* number of dumped condition registers */
2210 u8 severity; /* from dbg_idle_chk_severity_types enum */
2214 /* Idle Check result register header */
2215 struct dbg_idle_chk_result_reg_hdr {
2217 #define DBG_IDLE_CHK_RESULT_REG_HDR_IS_MEM_MASK 0x1
2218 #define DBG_IDLE_CHK_RESULT_REG_HDR_IS_MEM_SHIFT 0
2219 #define DBG_IDLE_CHK_RESULT_REG_HDR_REG_ID_MASK 0x7F
2220 #define DBG_IDLE_CHK_RESULT_REG_HDR_REG_ID_SHIFT 1
2221 u8 start_entry; /* index of the first checked entry */
2222 u16 size; /* register size in dwords */
2225 /* Idle Check rule */
2226 struct dbg_idle_chk_rule {
2227 u16 rule_id; /* Idle Check rule ID */
2228 u8 severity; /* value from dbg_idle_chk_severity_types enum */
2229 u8 cond_id; /* Condition ID */
2230 u8 num_cond_regs; /* number of condition registers */
2231 u8 num_info_regs; /* number of info registers */
2232 u8 num_imms; /* number of immediates in the condition */
2234 u16 reg_offset; /* offset of this rules registers in the idle check
2235 * register array (in dbg_idle_chk_reg units).
2237 u16 imm_offset; /* offset of this rules immediate values in the
2238 * immediate values array (in dwords).
2242 /* Idle Check rule parsing data */
2243 struct dbg_idle_chk_rule_parsing_data {
2245 #define DBG_IDLE_CHK_RULE_PARSING_DATA_HAS_FW_MSG_MASK 0x1
2246 #define DBG_IDLE_CHK_RULE_PARSING_DATA_HAS_FW_MSG_SHIFT 0
2247 #define DBG_IDLE_CHK_RULE_PARSING_DATA_STR_OFFSET_MASK 0x7FFFFFFF
2248 #define DBG_IDLE_CHK_RULE_PARSING_DATA_STR_OFFSET_SHIFT 1
2251 /* Idle check severity types */
2252 enum dbg_idle_chk_severity_types {
2253 /* idle check failure should cause an error */
2254 IDLE_CHK_SEVERITY_ERROR,
2255 /* idle check failure should cause an error only if theres no traffic */
2256 IDLE_CHK_SEVERITY_ERROR_NO_TRAFFIC,
2257 /* idle check failure should cause a warning */
2258 IDLE_CHK_SEVERITY_WARNING,
2259 MAX_DBG_IDLE_CHK_SEVERITY_TYPES
2262 /* Reset register */
2263 struct dbg_reset_reg {
2265 #define DBG_RESET_REG_ADDR_MASK 0xFFFFFF
2266 #define DBG_RESET_REG_ADDR_SHIFT 0
2267 #define DBG_RESET_REG_IS_REMOVED_MASK 0x1
2268 #define DBG_RESET_REG_IS_REMOVED_SHIFT 24
2269 #define DBG_RESET_REG_RESERVED_MASK 0x7F
2270 #define DBG_RESET_REG_RESERVED_SHIFT 25
2273 /* Debug Bus block data */
2274 struct dbg_bus_block_data {
2277 u8 force_valid_mask;
2278 u8 force_frame_mask;
2283 #define DBG_BUS_BLOCK_DATA_IS_256B_LINE_MASK 0x1
2284 #define DBG_BUS_BLOCK_DATA_IS_256B_LINE_SHIFT 0
2285 #define DBG_BUS_BLOCK_DATA_RESERVED_MASK 0x7F
2286 #define DBG_BUS_BLOCK_DATA_RESERVED_SHIFT 1
2289 enum dbg_bus_clients {
2290 DBG_BUS_CLIENT_RBCN,
2291 DBG_BUS_CLIENT_RBCP,
2292 DBG_BUS_CLIENT_RBCR,
2293 DBG_BUS_CLIENT_RBCT,
2294 DBG_BUS_CLIENT_RBCU,
2295 DBG_BUS_CLIENT_RBCF,
2296 DBG_BUS_CLIENT_RBCX,
2297 DBG_BUS_CLIENT_RBCS,
2298 DBG_BUS_CLIENT_RBCH,
2299 DBG_BUS_CLIENT_RBCZ,
2300 DBG_BUS_CLIENT_OTHER_ENGINE,
2301 DBG_BUS_CLIENT_TIMESTAMP,
2303 DBG_BUS_CLIENT_RBCY,
2304 DBG_BUS_CLIENT_RBCQ,
2305 DBG_BUS_CLIENT_RBCM,
2306 DBG_BUS_CLIENT_RBCB,
2307 DBG_BUS_CLIENT_RBCW,
2308 DBG_BUS_CLIENT_RBCV,
2312 /* Debug Bus constraint operation types */
2313 enum dbg_bus_constraint_ops {
2314 DBG_BUS_CONSTRAINT_OP_EQ,
2315 DBG_BUS_CONSTRAINT_OP_NE,
2316 DBG_BUS_CONSTRAINT_OP_LT,
2317 DBG_BUS_CONSTRAINT_OP_LTC,
2318 DBG_BUS_CONSTRAINT_OP_LE,
2319 DBG_BUS_CONSTRAINT_OP_LEC,
2320 DBG_BUS_CONSTRAINT_OP_GT,
2321 DBG_BUS_CONSTRAINT_OP_GTC,
2322 DBG_BUS_CONSTRAINT_OP_GE,
2323 DBG_BUS_CONSTRAINT_OP_GEC,
2324 MAX_DBG_BUS_CONSTRAINT_OPS
2327 /* Debug Bus trigger state data */
2328 struct dbg_bus_trigger_state_data {
2330 u8 constraint_dword_mask;
2335 /* Debug Bus memory address */
2336 struct dbg_bus_mem_addr {
2341 /* Debug Bus PCI buffer data */
2342 struct dbg_bus_pci_buf_data {
2343 struct dbg_bus_mem_addr phys_addr; /* PCI buffer physical address */
2344 struct dbg_bus_mem_addr virt_addr; /* PCI buffer virtual address */
2345 u32 size; /* PCI buffer size in bytes */
2348 /* Debug Bus Storm EID range filter params */
2349 struct dbg_bus_storm_eid_range_params {
2350 u8 min; /* Minimal event ID to filter on */
2351 u8 max; /* Maximal event ID to filter on */
2354 /* Debug Bus Storm EID mask filter params */
2355 struct dbg_bus_storm_eid_mask_params {
2356 u8 val; /* Event ID value */
2357 u8 mask; /* Event ID mask. 1s in the mask = dont care bits. */
2360 /* Debug Bus Storm EID filter params */
2361 union dbg_bus_storm_eid_params {
2362 struct dbg_bus_storm_eid_range_params range;
2363 struct dbg_bus_storm_eid_mask_params mask;
2366 /* Debug Bus Storm data */
2367 struct dbg_bus_storm_data {
2372 u8 eid_range_not_mask;
2374 union dbg_bus_storm_eid_params eid_filter_params;
2378 /* Debug Bus data */
2379 struct dbg_bus_data {
2383 u8 num_enabled_blocks;
2384 u8 num_enabled_storms;
2388 u8 timestamp_input_en;
2391 u8 filter_pre_trigger;
2392 u8 filter_post_trigger;
2394 u8 filter_constraint_dword_mask;
2395 u8 next_trigger_state;
2396 u8 next_constraint_id;
2397 struct dbg_bus_trigger_state_data trigger_states[3];
2399 u8 rcv_from_other_engine;
2400 u8 blocks_dword_mask;
2401 u8 blocks_dword_overlap;
2403 struct dbg_bus_pci_buf_data pci_buf;
2404 struct dbg_bus_block_data blocks[132];
2405 struct dbg_bus_storm_data storms[6];
2408 /* Debug bus states */
2409 enum dbg_bus_states {
2411 DBG_BUS_STATE_READY,
2412 DBG_BUS_STATE_RECORDING,
2413 DBG_BUS_STATE_STOPPED,
2417 /* Debug Bus Storm modes */
2418 enum dbg_bus_storm_modes {
2419 DBG_BUS_STORM_MODE_PRINTF,
2420 DBG_BUS_STORM_MODE_PRAM_ADDR,
2421 DBG_BUS_STORM_MODE_DRA_RW,
2422 DBG_BUS_STORM_MODE_DRA_W,
2423 DBG_BUS_STORM_MODE_LD_ST_ADDR,
2424 DBG_BUS_STORM_MODE_DRA_FSM,
2425 DBG_BUS_STORM_MODE_FAST_DBGMUX,
2426 DBG_BUS_STORM_MODE_RH,
2427 DBG_BUS_STORM_MODE_RH_WITH_STORE,
2428 DBG_BUS_STORM_MODE_FOC,
2429 DBG_BUS_STORM_MODE_EXT_STORE,
2430 MAX_DBG_BUS_STORM_MODES
2433 /* Debug bus target IDs */
2434 enum dbg_bus_targets {
2435 DBG_BUS_TARGET_ID_INT_BUF,
2436 DBG_BUS_TARGET_ID_NIG,
2437 DBG_BUS_TARGET_ID_PCI,
2442 struct dbg_grc_data {
2443 u8 params_initialized;
2449 /* Debug GRC params */
2450 enum dbg_grc_params {
2451 DBG_GRC_PARAM_DUMP_TSTORM,
2452 DBG_GRC_PARAM_DUMP_MSTORM,
2453 DBG_GRC_PARAM_DUMP_USTORM,
2454 DBG_GRC_PARAM_DUMP_XSTORM,
2455 DBG_GRC_PARAM_DUMP_YSTORM,
2456 DBG_GRC_PARAM_DUMP_PSTORM,
2457 DBG_GRC_PARAM_DUMP_REGS,
2458 DBG_GRC_PARAM_DUMP_RAM,
2459 DBG_GRC_PARAM_DUMP_PBUF,
2460 DBG_GRC_PARAM_DUMP_IOR,
2461 DBG_GRC_PARAM_DUMP_VFC,
2462 DBG_GRC_PARAM_DUMP_CM_CTX,
2463 DBG_GRC_PARAM_DUMP_PXP,
2464 DBG_GRC_PARAM_DUMP_RSS,
2465 DBG_GRC_PARAM_DUMP_CAU,
2466 DBG_GRC_PARAM_DUMP_QM,
2467 DBG_GRC_PARAM_DUMP_MCP,
2468 DBG_GRC_PARAM_DUMP_DORQ,
2469 DBG_GRC_PARAM_DUMP_CFC,
2470 DBG_GRC_PARAM_DUMP_IGU,
2471 DBG_GRC_PARAM_DUMP_BRB,
2472 DBG_GRC_PARAM_DUMP_BTB,
2473 DBG_GRC_PARAM_DUMP_BMB,
2474 DBG_GRC_PARAM_RESERVD1,
2475 DBG_GRC_PARAM_DUMP_MULD,
2476 DBG_GRC_PARAM_DUMP_PRS,
2477 DBG_GRC_PARAM_DUMP_DMAE,
2478 DBG_GRC_PARAM_DUMP_TM,
2479 DBG_GRC_PARAM_DUMP_SDM,
2480 DBG_GRC_PARAM_DUMP_DIF,
2481 DBG_GRC_PARAM_DUMP_STATIC,
2482 DBG_GRC_PARAM_UNSTALL,
2483 DBG_GRC_PARAM_RESERVED2,
2484 DBG_GRC_PARAM_MCP_TRACE_META_SIZE,
2485 DBG_GRC_PARAM_EXCLUDE_ALL,
2486 DBG_GRC_PARAM_CRASH,
2487 DBG_GRC_PARAM_PARITY_SAFE,
2488 DBG_GRC_PARAM_DUMP_CM,
2489 DBG_GRC_PARAM_DUMP_PHY,
2490 DBG_GRC_PARAM_NO_MCP,
2491 DBG_GRC_PARAM_NO_FW_VER,
2492 DBG_GRC_PARAM_RESERVED3,
2493 DBG_GRC_PARAM_DUMP_MCP_HW_DUMP,
2494 DBG_GRC_PARAM_DUMP_ILT_CDUC,
2495 DBG_GRC_PARAM_DUMP_ILT_CDUT,
2496 DBG_GRC_PARAM_DUMP_CAU_EXT,
2500 /* Debug status codes */
2503 DBG_STATUS_APP_VERSION_NOT_SET,
2504 DBG_STATUS_UNSUPPORTED_APP_VERSION,
2505 DBG_STATUS_DBG_BLOCK_NOT_RESET,
2506 DBG_STATUS_INVALID_ARGS,
2507 DBG_STATUS_OUTPUT_ALREADY_SET,
2508 DBG_STATUS_INVALID_PCI_BUF_SIZE,
2509 DBG_STATUS_PCI_BUF_ALLOC_FAILED,
2510 DBG_STATUS_PCI_BUF_NOT_ALLOCATED,
2511 DBG_STATUS_INVALID_FILTER_TRIGGER_DWORDS,
2512 DBG_STATUS_NO_MATCHING_FRAMING_MODE,
2513 DBG_STATUS_VFC_READ_ERROR,
2514 DBG_STATUS_STORM_ALREADY_ENABLED,
2515 DBG_STATUS_STORM_NOT_ENABLED,
2516 DBG_STATUS_BLOCK_ALREADY_ENABLED,
2517 DBG_STATUS_BLOCK_NOT_ENABLED,
2518 DBG_STATUS_NO_INPUT_ENABLED,
2519 DBG_STATUS_NO_FILTER_TRIGGER_256B,
2520 DBG_STATUS_FILTER_ALREADY_ENABLED,
2521 DBG_STATUS_TRIGGER_ALREADY_ENABLED,
2522 DBG_STATUS_TRIGGER_NOT_ENABLED,
2523 DBG_STATUS_CANT_ADD_CONSTRAINT,
2524 DBG_STATUS_TOO_MANY_TRIGGER_STATES,
2525 DBG_STATUS_TOO_MANY_CONSTRAINTS,
2526 DBG_STATUS_RECORDING_NOT_STARTED,
2527 DBG_STATUS_DATA_DIDNT_TRIGGER,
2528 DBG_STATUS_NO_DATA_RECORDED,
2529 DBG_STATUS_DUMP_BUF_TOO_SMALL,
2530 DBG_STATUS_DUMP_NOT_CHUNK_ALIGNED,
2531 DBG_STATUS_UNKNOWN_CHIP,
2532 DBG_STATUS_VIRT_MEM_ALLOC_FAILED,
2533 DBG_STATUS_BLOCK_IN_RESET,
2534 DBG_STATUS_INVALID_TRACE_SIGNATURE,
2535 DBG_STATUS_INVALID_NVRAM_BUNDLE,
2536 DBG_STATUS_NVRAM_GET_IMAGE_FAILED,
2537 DBG_STATUS_NON_ALIGNED_NVRAM_IMAGE,
2538 DBG_STATUS_NVRAM_READ_FAILED,
2539 DBG_STATUS_IDLE_CHK_PARSE_FAILED,
2540 DBG_STATUS_MCP_TRACE_BAD_DATA,
2541 DBG_STATUS_MCP_TRACE_NO_META,
2542 DBG_STATUS_MCP_COULD_NOT_HALT,
2543 DBG_STATUS_MCP_COULD_NOT_RESUME,
2544 DBG_STATUS_RESERVED0,
2545 DBG_STATUS_SEMI_FIFO_NOT_EMPTY,
2546 DBG_STATUS_IGU_FIFO_BAD_DATA,
2547 DBG_STATUS_MCP_COULD_NOT_MASK_PRTY,
2548 DBG_STATUS_FW_ASSERTS_PARSE_FAILED,
2549 DBG_STATUS_REG_FIFO_BAD_DATA,
2550 DBG_STATUS_PROTECTION_OVERRIDE_BAD_DATA,
2551 DBG_STATUS_DBG_ARRAY_NOT_SET,
2552 DBG_STATUS_RESERVED1,
2553 DBG_STATUS_NON_MATCHING_LINES,
2554 DBG_STATUS_INSUFFICIENT_HW_IDS,
2555 DBG_STATUS_DBG_BUS_IN_USE,
2556 DBG_STATUS_INVALID_STORM_DBG_MODE,
2557 DBG_STATUS_OTHER_ENGINE_BB_ONLY,
2558 DBG_STATUS_FILTER_SINGLE_HW_ID,
2559 DBG_STATUS_TRIGGER_SINGLE_HW_ID,
2560 DBG_STATUS_MISSING_TRIGGER_STATE_STORM,
2564 /* Debug Storms IDs */
2575 /* Idle Check data */
2576 struct idle_chk_data {
2583 struct pretend_params {
2589 /* Debug Tools data (per HW function)
2591 struct dbg_tools_data {
2592 struct dbg_grc_data grc;
2593 struct dbg_bus_data bus;
2594 struct idle_chk_data idle_chk;
2596 u8 block_in_reset[132];
2600 u8 num_pfs_per_port;
2605 struct pretend_params pretend;
2622 /********************************/
2623 /* HSI Init Functions constants */
2624 /********************************/
2626 /* Number of VLAN priorities */
2627 #define NUM_OF_VLAN_PRIORITIES 8
2629 /* BRB RAM init requirements */
2630 struct init_brb_ram_req {
2631 u32 guranteed_per_tc;
2632 u32 headroom_per_tc;
2634 u32 max_ports_per_engine;
2635 u8 num_active_tcs[MAX_NUM_PORTS];
2638 /* ETS per-TC init requirements */
2639 struct init_ets_tc_req {
2645 /* ETS init requirements */
2646 struct init_ets_req {
2648 struct init_ets_tc_req tc_req[NUM_OF_TCS];
2651 /* NIG LB RL init requirements */
2652 struct init_nig_lb_rl_req {
2656 u16 tc_rate[NUM_OF_PHYS_TCS];
2659 /* NIG TC mapping for each priority */
2660 struct init_nig_pri_tc_map_entry {
2665 /* NIG priority to TC map init requirements */
2666 struct init_nig_pri_tc_map_req {
2667 struct init_nig_pri_tc_map_entry pri[NUM_OF_VLAN_PRIORITIES];
2670 /* QM per global RL init parameters */
2671 struct init_qm_global_rl_params {
2675 /* QM per-port init parameters */
2676 struct init_qm_port_params {
2677 u16 active_phys_tcs;
2678 u16 num_pbf_cmd_lines;
2684 /* QM per-PQ init parameters */
2685 struct init_qm_pq_params {
2695 /* QM per-vport init parameters */
2696 struct init_qm_vport_params {
2698 u16 first_tx_pq_id[NUM_OF_TCS];
2701 /**************************************/
2702 /* Init Tool HSI constants and macros */
2703 /**************************************/
2705 /* Width of GRC address in bits (addresses are specified in dwords) */
2706 #define GRC_ADDR_BITS 23
2707 #define MAX_GRC_ADDR (BIT(GRC_ADDR_BITS) - 1)
2709 /* indicates an init that should be applied to any phase ID */
2710 #define ANY_PHASE_ID 0xffff
2712 /* Max size in dwords of a zipped array */
2713 #define MAX_ZIPPED_SIZE 8192
2720 struct fw_asserts_ram_section {
2721 __le16 section_ram_line_offset;
2722 __le16 section_ram_line_size;
2723 u8 list_dword_offset;
2724 u8 list_element_dword_size;
2725 u8 list_num_elements;
2726 u8 list_next_index_dword_offset;
2736 struct fw_ver_info {
2740 struct fw_ver_num num;
2746 struct fw_ver_info ver;
2747 struct fw_asserts_ram_section fw_asserts_section;
2750 struct fw_info_location {
2767 MODE_PORTS_PER_ENG_1,
2768 MODE_PORTS_PER_ENG_2,
2769 MODE_PORTS_PER_ENG_4,
2785 enum init_split_types {
2791 MAX_INIT_SPLIT_TYPES
2794 /* Binary buffer header */
2795 struct bin_buffer_hdr {
2800 /* Binary init buffer types */
2801 enum bin_init_buffer_type {
2802 BIN_BUF_INIT_FW_VER_INFO,
2805 BIN_BUF_INIT_MODE_TREE,
2807 BIN_BUF_INIT_OVERLAYS,
2808 MAX_BIN_INIT_BUFFER_TYPE
2811 /* FW overlay buffer header */
2812 struct fw_overlay_buf_hdr {
2814 #define FW_OVERLAY_BUF_HDR_STORM_ID_MASK 0xFF
2815 #define FW_OVERLAY_BUF_HDR_STORM_ID_SHIFT 0
2816 #define FW_OVERLAY_BUF_HDR_BUF_SIZE_MASK 0xFFFFFF
2817 #define FW_OVERLAY_BUF_HDR_BUF_SIZE_SHIFT 8
2820 /* init array header: raw */
2821 struct init_array_raw_hdr {
2823 #define INIT_ARRAY_RAW_HDR_TYPE_MASK 0xF
2824 #define INIT_ARRAY_RAW_HDR_TYPE_SHIFT 0
2825 #define INIT_ARRAY_RAW_HDR_PARAMS_MASK 0xFFFFFFF
2826 #define INIT_ARRAY_RAW_HDR_PARAMS_SHIFT 4
2829 /* init array header: standard */
2830 struct init_array_standard_hdr {
2832 #define INIT_ARRAY_STANDARD_HDR_TYPE_MASK 0xF
2833 #define INIT_ARRAY_STANDARD_HDR_TYPE_SHIFT 0
2834 #define INIT_ARRAY_STANDARD_HDR_SIZE_MASK 0xFFFFFFF
2835 #define INIT_ARRAY_STANDARD_HDR_SIZE_SHIFT 4
2838 /* init array header: zipped */
2839 struct init_array_zipped_hdr {
2841 #define INIT_ARRAY_ZIPPED_HDR_TYPE_MASK 0xF
2842 #define INIT_ARRAY_ZIPPED_HDR_TYPE_SHIFT 0
2843 #define INIT_ARRAY_ZIPPED_HDR_ZIPPED_SIZE_MASK 0xFFFFFFF
2844 #define INIT_ARRAY_ZIPPED_HDR_ZIPPED_SIZE_SHIFT 4
2847 /* init array header: pattern */
2848 struct init_array_pattern_hdr {
2850 #define INIT_ARRAY_PATTERN_HDR_TYPE_MASK 0xF
2851 #define INIT_ARRAY_PATTERN_HDR_TYPE_SHIFT 0
2852 #define INIT_ARRAY_PATTERN_HDR_PATTERN_SIZE_MASK 0xF
2853 #define INIT_ARRAY_PATTERN_HDR_PATTERN_SIZE_SHIFT 4
2854 #define INIT_ARRAY_PATTERN_HDR_REPETITIONS_MASK 0xFFFFFF
2855 #define INIT_ARRAY_PATTERN_HDR_REPETITIONS_SHIFT 8
2858 /* init array header union */
2859 union init_array_hdr {
2860 struct init_array_raw_hdr raw;
2861 struct init_array_standard_hdr standard;
2862 struct init_array_zipped_hdr zipped;
2863 struct init_array_pattern_hdr pattern;
2866 /* init array types */
2867 enum init_array_types {
2871 MAX_INIT_ARRAY_TYPES
2874 /* init operation: callback */
2875 struct init_callback_op {
2877 #define INIT_CALLBACK_OP_OP_MASK 0xF
2878 #define INIT_CALLBACK_OP_OP_SHIFT 0
2879 #define INIT_CALLBACK_OP_RESERVED_MASK 0xFFFFFFF
2880 #define INIT_CALLBACK_OP_RESERVED_SHIFT 4
2885 /* init operation: delay */
2886 struct init_delay_op {
2888 #define INIT_DELAY_OP_OP_MASK 0xF
2889 #define INIT_DELAY_OP_OP_SHIFT 0
2890 #define INIT_DELAY_OP_RESERVED_MASK 0xFFFFFFF
2891 #define INIT_DELAY_OP_RESERVED_SHIFT 4
2895 /* init operation: if_mode */
2896 struct init_if_mode_op {
2898 #define INIT_IF_MODE_OP_OP_MASK 0xF
2899 #define INIT_IF_MODE_OP_OP_SHIFT 0
2900 #define INIT_IF_MODE_OP_RESERVED1_MASK 0xFFF
2901 #define INIT_IF_MODE_OP_RESERVED1_SHIFT 4
2902 #define INIT_IF_MODE_OP_CMD_OFFSET_MASK 0xFFFF
2903 #define INIT_IF_MODE_OP_CMD_OFFSET_SHIFT 16
2905 u16 modes_buf_offset;
2908 /* init operation: if_phase */
2909 struct init_if_phase_op {
2911 #define INIT_IF_PHASE_OP_OP_MASK 0xF
2912 #define INIT_IF_PHASE_OP_OP_SHIFT 0
2913 #define INIT_IF_PHASE_OP_RESERVED1_MASK 0xFFF
2914 #define INIT_IF_PHASE_OP_RESERVED1_SHIFT 4
2915 #define INIT_IF_PHASE_OP_CMD_OFFSET_MASK 0xFFFF
2916 #define INIT_IF_PHASE_OP_CMD_OFFSET_SHIFT 16
2918 #define INIT_IF_PHASE_OP_PHASE_MASK 0xFF
2919 #define INIT_IF_PHASE_OP_PHASE_SHIFT 0
2920 #define INIT_IF_PHASE_OP_RESERVED2_MASK 0xFF
2921 #define INIT_IF_PHASE_OP_RESERVED2_SHIFT 8
2922 #define INIT_IF_PHASE_OP_PHASE_ID_MASK 0xFFFF
2923 #define INIT_IF_PHASE_OP_PHASE_ID_SHIFT 16
2926 /* init mode operators */
2927 enum init_mode_ops {
2934 /* init operation: raw */
2935 struct init_raw_op {
2937 #define INIT_RAW_OP_OP_MASK 0xF
2938 #define INIT_RAW_OP_OP_SHIFT 0
2939 #define INIT_RAW_OP_PARAM1_MASK 0xFFFFFFF
2940 #define INIT_RAW_OP_PARAM1_SHIFT 4
2944 /* init array params */
2945 struct init_op_array_params {
2950 /* Write init operation arguments */
2951 union init_write_args {
2955 struct init_op_array_params runtime;
2958 /* init operation: write */
2959 struct init_write_op {
2961 #define INIT_WRITE_OP_OP_MASK 0xF
2962 #define INIT_WRITE_OP_OP_SHIFT 0
2963 #define INIT_WRITE_OP_SOURCE_MASK 0x7
2964 #define INIT_WRITE_OP_SOURCE_SHIFT 4
2965 #define INIT_WRITE_OP_RESERVED_MASK 0x1
2966 #define INIT_WRITE_OP_RESERVED_SHIFT 7
2967 #define INIT_WRITE_OP_WIDE_BUS_MASK 0x1
2968 #define INIT_WRITE_OP_WIDE_BUS_SHIFT 8
2969 #define INIT_WRITE_OP_ADDRESS_MASK 0x7FFFFF
2970 #define INIT_WRITE_OP_ADDRESS_SHIFT 9
2971 union init_write_args args;
2974 /* init operation: read */
2975 struct init_read_op {
2977 #define INIT_READ_OP_OP_MASK 0xF
2978 #define INIT_READ_OP_OP_SHIFT 0
2979 #define INIT_READ_OP_POLL_TYPE_MASK 0xF
2980 #define INIT_READ_OP_POLL_TYPE_SHIFT 4
2981 #define INIT_READ_OP_RESERVED_MASK 0x1
2982 #define INIT_READ_OP_RESERVED_SHIFT 8
2983 #define INIT_READ_OP_ADDRESS_MASK 0x7FFFFF
2984 #define INIT_READ_OP_ADDRESS_SHIFT 9
2988 /* Init operations union */
2990 struct init_raw_op raw;
2991 struct init_write_op write;
2992 struct init_read_op read;
2993 struct init_if_mode_op if_mode;
2994 struct init_if_phase_op if_phase;
2995 struct init_callback_op callback;
2996 struct init_delay_op delay;
2999 /* Init command operation types */
3000 enum init_op_types {
3010 /* init polling types */
3011 enum init_poll_types {
3019 /* init source types */
3020 enum init_source_types {
3025 MAX_INIT_SOURCE_TYPES
3028 /* Internal RAM Offsets macro data */
3037 /***************************** Public Functions *******************************/
3040 * @brief qed_dbg_set_bin_ptr - Sets a pointer to the binary data with debug
3043 * @param p_hwfn - HW device data
3044 * @param bin_ptr - a pointer to the binary data with debug arrays.
3046 enum dbg_status qed_dbg_set_bin_ptr(struct qed_hwfn *p_hwfn,
3047 const u8 * const bin_ptr);
3050 * @brief qed_read_regs - Reads registers into a buffer (using GRC).
3052 * @param p_hwfn - HW device data
3053 * @param p_ptt - Ptt window used for writing the registers.
3054 * @param buf - Destination buffer.
3055 * @param addr - Source GRC address in dwords.
3056 * @param len - Number of registers to read.
3058 void qed_read_regs(struct qed_hwfn *p_hwfn,
3059 struct qed_ptt *p_ptt, u32 *buf, u32 addr, u32 len);
3062 * @brief qed_read_fw_info - Reads FW info from the chip.
3064 * The FW info contains FW-related information, such as the FW version,
3065 * FW image (main/L2B/kuku), FW timestamp, etc.
3066 * The FW info is read from the internal RAM of the first Storm that is not in
3069 * @param p_hwfn - HW device data
3070 * @param p_ptt - Ptt window used for writing the registers.
3071 * @param fw_info - Out: a pointer to write the FW info into.
3073 * @return true if the FW info was read successfully from one of the Storms,
3074 * or false if all Storms are in reset.
3076 bool qed_read_fw_info(struct qed_hwfn *p_hwfn,
3077 struct qed_ptt *p_ptt, struct fw_info *fw_info);
3079 * @brief qed_dbg_grc_config - Sets the value of a GRC parameter.
3081 * @param p_hwfn - HW device data
3082 * @param grc_param - GRC parameter
3083 * @param val - Value to set.
3085 * @return error if one of the following holds:
3086 * - the version wasn't set
3087 * - grc_param is invalid
3088 * - val is outside the allowed boundaries
3090 enum dbg_status qed_dbg_grc_config(struct qed_hwfn *p_hwfn,
3091 enum dbg_grc_params grc_param, u32 val);
3094 * @brief qed_dbg_grc_set_params_default - Reverts all GRC parameters to their
3097 * @param p_hwfn - HW device data
3099 void qed_dbg_grc_set_params_default(struct qed_hwfn *p_hwfn);
3101 * @brief qed_dbg_grc_get_dump_buf_size - Returns the required buffer size for
3104 * @param p_hwfn - HW device data
3105 * @param p_ptt - Ptt window used for writing the registers.
3106 * @param buf_size - OUT: required buffer size (in dwords) for the GRC Dump
3109 * @return error if one of the following holds:
3110 * - the version wasn't set
3111 * Otherwise, returns ok.
3113 enum dbg_status qed_dbg_grc_get_dump_buf_size(struct qed_hwfn *p_hwfn,
3114 struct qed_ptt *p_ptt,
3118 * @brief qed_dbg_grc_dump - Dumps GRC data into the specified buffer.
3120 * @param p_hwfn - HW device data
3121 * @param p_ptt - Ptt window used for writing the registers.
3122 * @param dump_buf - Pointer to write the collected GRC data into.
3123 * @param buf_size_in_dwords - Size of the specified buffer in dwords.
3124 * @param num_dumped_dwords - OUT: number of dumped dwords.
3126 * @return error if one of the following holds:
3127 * - the version wasn't set
3128 * - the specified dump buffer is too small
3129 * Otherwise, returns ok.
3131 enum dbg_status qed_dbg_grc_dump(struct qed_hwfn *p_hwfn,
3132 struct qed_ptt *p_ptt,
3134 u32 buf_size_in_dwords,
3135 u32 *num_dumped_dwords);
3138 * @brief qed_dbg_idle_chk_get_dump_buf_size - Returns the required buffer size
3139 * for idle check results.
3141 * @param p_hwfn - HW device data
3142 * @param p_ptt - Ptt window used for writing the registers.
3143 * @param buf_size - OUT: required buffer size (in dwords) for the idle check
3146 * @return error if one of the following holds:
3147 * - the version wasn't set
3148 * Otherwise, returns ok.
3150 enum dbg_status qed_dbg_idle_chk_get_dump_buf_size(struct qed_hwfn *p_hwfn,
3151 struct qed_ptt *p_ptt,
3155 * @brief qed_dbg_idle_chk_dump - Performs idle check and writes the results
3156 * into the specified buffer.
3158 * @param p_hwfn - HW device data
3159 * @param p_ptt - Ptt window used for writing the registers.
3160 * @param dump_buf - Pointer to write the idle check data into.
3161 * @param buf_size_in_dwords - Size of the specified buffer in dwords.
3162 * @param num_dumped_dwords - OUT: number of dumped dwords.
3164 * @return error if one of the following holds:
3165 * - the version wasn't set
3166 * - the specified buffer is too small
3167 * Otherwise, returns ok.
3169 enum dbg_status qed_dbg_idle_chk_dump(struct qed_hwfn *p_hwfn,
3170 struct qed_ptt *p_ptt,
3172 u32 buf_size_in_dwords,
3173 u32 *num_dumped_dwords);
3176 * @brief qed_dbg_mcp_trace_get_dump_buf_size - Returns the required buffer size
3177 * for mcp trace results.
3179 * @param p_hwfn - HW device data
3180 * @param p_ptt - Ptt window used for writing the registers.
3181 * @param buf_size - OUT: required buffer size (in dwords) for mcp trace data.
3183 * @return error if one of the following holds:
3184 * - the version wasn't set
3185 * - the trace data in MCP scratchpad contain an invalid signature
3186 * - the bundle ID in NVRAM is invalid
3187 * - the trace meta data cannot be found (in NVRAM or image file)
3188 * Otherwise, returns ok.
3190 enum dbg_status qed_dbg_mcp_trace_get_dump_buf_size(struct qed_hwfn *p_hwfn,
3191 struct qed_ptt *p_ptt,
3195 * @brief qed_dbg_mcp_trace_dump - Performs mcp trace and writes the results
3196 * into the specified buffer.
3198 * @param p_hwfn - HW device data
3199 * @param p_ptt - Ptt window used for writing the registers.
3200 * @param dump_buf - Pointer to write the mcp trace data into.
3201 * @param buf_size_in_dwords - Size of the specified buffer in dwords.
3202 * @param num_dumped_dwords - OUT: number of dumped dwords.
3204 * @return error if one of the following holds:
3205 * - the version wasn't set
3206 * - the specified buffer is too small
3207 * - the trace data in MCP scratchpad contain an invalid signature
3208 * - the bundle ID in NVRAM is invalid
3209 * - the trace meta data cannot be found (in NVRAM or image file)
3210 * - the trace meta data cannot be read (from NVRAM or image file)
3211 * Otherwise, returns ok.
3213 enum dbg_status qed_dbg_mcp_trace_dump(struct qed_hwfn *p_hwfn,
3214 struct qed_ptt *p_ptt,
3216 u32 buf_size_in_dwords,
3217 u32 *num_dumped_dwords);
3220 * @brief qed_dbg_reg_fifo_get_dump_buf_size - Returns the required buffer size
3221 * for grc trace fifo results.
3223 * @param p_hwfn - HW device data
3224 * @param p_ptt - Ptt window used for writing the registers.
3225 * @param buf_size - OUT: required buffer size (in dwords) for reg fifo data.
3227 * @return error if one of the following holds:
3228 * - the version wasn't set
3229 * Otherwise, returns ok.
3231 enum dbg_status qed_dbg_reg_fifo_get_dump_buf_size(struct qed_hwfn *p_hwfn,
3232 struct qed_ptt *p_ptt,
3236 * @brief qed_dbg_reg_fifo_dump - Reads the reg fifo and writes the results into
3237 * the specified buffer.
3239 * @param p_hwfn - HW device data
3240 * @param p_ptt - Ptt window used for writing the registers.
3241 * @param dump_buf - Pointer to write the reg fifo data into.
3242 * @param buf_size_in_dwords - Size of the specified buffer in dwords.
3243 * @param num_dumped_dwords - OUT: number of dumped dwords.
3245 * @return error if one of the following holds:
3246 * - the version wasn't set
3247 * - the specified buffer is too small
3248 * - DMAE transaction failed
3249 * Otherwise, returns ok.
3251 enum dbg_status qed_dbg_reg_fifo_dump(struct qed_hwfn *p_hwfn,
3252 struct qed_ptt *p_ptt,
3254 u32 buf_size_in_dwords,
3255 u32 *num_dumped_dwords);
3258 * @brief qed_dbg_igu_fifo_get_dump_buf_size - Returns the required buffer size
3259 * for the IGU fifo results.
3261 * @param p_hwfn - HW device data
3262 * @param p_ptt - Ptt window used for writing the registers.
3263 * @param buf_size - OUT: required buffer size (in dwords) for the IGU fifo
3266 * @return error if one of the following holds:
3267 * - the version wasn't set
3268 * Otherwise, returns ok.
3270 enum dbg_status qed_dbg_igu_fifo_get_dump_buf_size(struct qed_hwfn *p_hwfn,
3271 struct qed_ptt *p_ptt,
3275 * @brief qed_dbg_igu_fifo_dump - Reads the IGU fifo and writes the results into
3276 * the specified buffer.
3278 * @param p_hwfn - HW device data
3279 * @param p_ptt - Ptt window used for writing the registers.
3280 * @param dump_buf - Pointer to write the IGU fifo data into.
3281 * @param buf_size_in_dwords - Size of the specified buffer in dwords.
3282 * @param num_dumped_dwords - OUT: number of dumped dwords.
3284 * @return error if one of the following holds:
3285 * - the version wasn't set
3286 * - the specified buffer is too small
3287 * - DMAE transaction failed
3288 * Otherwise, returns ok.
3290 enum dbg_status qed_dbg_igu_fifo_dump(struct qed_hwfn *p_hwfn,
3291 struct qed_ptt *p_ptt,
3293 u32 buf_size_in_dwords,
3294 u32 *num_dumped_dwords);
3297 * @brief qed_dbg_protection_override_get_dump_buf_size - Returns the required
3298 * buffer size for protection override window results.
3300 * @param p_hwfn - HW device data
3301 * @param p_ptt - Ptt window used for writing the registers.
3302 * @param buf_size - OUT: required buffer size (in dwords) for protection
3305 * @return error if one of the following holds:
3306 * - the version wasn't set
3307 * Otherwise, returns ok.
3310 qed_dbg_protection_override_get_dump_buf_size(struct qed_hwfn *p_hwfn,
3311 struct qed_ptt *p_ptt,
3314 * @brief qed_dbg_protection_override_dump - Reads protection override window
3315 * entries and writes the results into the specified buffer.
3317 * @param p_hwfn - HW device data
3318 * @param p_ptt - Ptt window used for writing the registers.
3319 * @param dump_buf - Pointer to write the protection override data into.
3320 * @param buf_size_in_dwords - Size of the specified buffer in dwords.
3321 * @param num_dumped_dwords - OUT: number of dumped dwords.
3323 * @return error if one of the following holds:
3324 * - the version wasn't set
3325 * - the specified buffer is too small
3326 * - DMAE transaction failed
3327 * Otherwise, returns ok.
3329 enum dbg_status qed_dbg_protection_override_dump(struct qed_hwfn *p_hwfn,
3330 struct qed_ptt *p_ptt,
3332 u32 buf_size_in_dwords,
3333 u32 *num_dumped_dwords);
3335 * @brief qed_dbg_fw_asserts_get_dump_buf_size - Returns the required buffer
3336 * size for FW Asserts results.
3338 * @param p_hwfn - HW device data
3339 * @param p_ptt - Ptt window used for writing the registers.
3340 * @param buf_size - OUT: required buffer size (in dwords) for FW Asserts data.
3342 * @return error if one of the following holds:
3343 * - the version wasn't set
3344 * Otherwise, returns ok.
3346 enum dbg_status qed_dbg_fw_asserts_get_dump_buf_size(struct qed_hwfn *p_hwfn,
3347 struct qed_ptt *p_ptt,
3350 * @brief qed_dbg_fw_asserts_dump - Reads the FW Asserts and writes the results
3351 * into the specified buffer.
3353 * @param p_hwfn - HW device data
3354 * @param p_ptt - Ptt window used for writing the registers.
3355 * @param dump_buf - Pointer to write the FW Asserts data into.
3356 * @param buf_size_in_dwords - Size of the specified buffer in dwords.
3357 * @param num_dumped_dwords - OUT: number of dumped dwords.
3359 * @return error if one of the following holds:
3360 * - the version wasn't set
3361 * - the specified buffer is too small
3362 * Otherwise, returns ok.
3364 enum dbg_status qed_dbg_fw_asserts_dump(struct qed_hwfn *p_hwfn,
3365 struct qed_ptt *p_ptt,
3367 u32 buf_size_in_dwords,
3368 u32 *num_dumped_dwords);
3371 * @brief qed_dbg_read_attn - Reads the attention registers of the specified
3372 * block and type, and writes the results into the specified buffer.
3374 * @param p_hwfn - HW device data
3375 * @param p_ptt - Ptt window used for writing the registers.
3376 * @param block - Block ID.
3377 * @param attn_type - Attention type.
3378 * @param clear_status - Indicates if the attention status should be cleared.
3379 * @param results - OUT: Pointer to write the read results into
3381 * @return error if one of the following holds:
3382 * - the version wasn't set
3383 * Otherwise, returns ok.
3385 enum dbg_status qed_dbg_read_attn(struct qed_hwfn *p_hwfn,
3386 struct qed_ptt *p_ptt,
3387 enum block_id block,
3388 enum dbg_attn_type attn_type,
3390 struct dbg_attn_block_result *results);
3393 * @brief qed_dbg_print_attn - Prints attention registers values in the
3394 * specified results struct.
3397 * @param results - Pointer to the attention read results
3399 * @return error if one of the following holds:
3400 * - the version wasn't set
3401 * Otherwise, returns ok.
3403 enum dbg_status qed_dbg_print_attn(struct qed_hwfn *p_hwfn,
3404 struct dbg_attn_block_result *results);
3406 /******************************* Data Types **********************************/
3408 struct mcp_trace_format {
3410 #define MCP_TRACE_FORMAT_MODULE_MASK 0x0000ffff
3411 #define MCP_TRACE_FORMAT_MODULE_OFFSET 0
3412 #define MCP_TRACE_FORMAT_LEVEL_MASK 0x00030000
3413 #define MCP_TRACE_FORMAT_LEVEL_OFFSET 16
3414 #define MCP_TRACE_FORMAT_P1_SIZE_MASK 0x000c0000
3415 #define MCP_TRACE_FORMAT_P1_SIZE_OFFSET 18
3416 #define MCP_TRACE_FORMAT_P2_SIZE_MASK 0x00300000
3417 #define MCP_TRACE_FORMAT_P2_SIZE_OFFSET 20
3418 #define MCP_TRACE_FORMAT_P3_SIZE_MASK 0x00c00000
3419 #define MCP_TRACE_FORMAT_P3_SIZE_OFFSET 22
3420 #define MCP_TRACE_FORMAT_LEN_MASK 0xff000000
3421 #define MCP_TRACE_FORMAT_LEN_OFFSET 24
3426 /* MCP Trace Meta data structure */
3427 struct mcp_trace_meta {
3431 struct mcp_trace_format *formats;
3435 /* Debug Tools user data */
3436 struct dbg_tools_user_data {
3437 struct mcp_trace_meta mcp_trace_meta;
3438 const u32 *mcp_trace_user_meta_buf;
3441 /******************************** Constants **********************************/
3443 #define MAX_NAME_LEN 16
3445 /***************************** Public Functions *******************************/
3448 * @brief qed_dbg_user_set_bin_ptr - Sets a pointer to the binary data with
3451 * @param p_hwfn - HW device data
3452 * @param bin_ptr - a pointer to the binary data with debug arrays.
3454 enum dbg_status qed_dbg_user_set_bin_ptr(struct qed_hwfn *p_hwfn,
3455 const u8 * const bin_ptr);
3458 * @brief qed_dbg_alloc_user_data - Allocates user debug data.
3460 * @param p_hwfn - HW device data
3461 * @param user_data_ptr - OUT: a pointer to the allocated memory.
3463 enum dbg_status qed_dbg_alloc_user_data(struct qed_hwfn *p_hwfn,
3464 void **user_data_ptr);
3467 * @brief qed_dbg_get_status_str - Returns a string for the specified status.
3469 * @param status - a debug status code.
3471 * @return a string for the specified status
3473 const char *qed_dbg_get_status_str(enum dbg_status status);
3476 * @brief qed_get_idle_chk_results_buf_size - Returns the required buffer size
3477 * for idle check results (in bytes).
3479 * @param p_hwfn - HW device data
3480 * @param dump_buf - idle check dump buffer.
3481 * @param num_dumped_dwords - number of dwords that were dumped.
3482 * @param results_buf_size - OUT: required buffer size (in bytes) for the parsed
3485 * @return error if the parsing fails, ok otherwise.
3487 enum dbg_status qed_get_idle_chk_results_buf_size(struct qed_hwfn *p_hwfn,
3489 u32 num_dumped_dwords,
3490 u32 *results_buf_size);
3492 * @brief qed_print_idle_chk_results - Prints idle check results
3494 * @param p_hwfn - HW device data
3495 * @param dump_buf - idle check dump buffer.
3496 * @param num_dumped_dwords - number of dwords that were dumped.
3497 * @param results_buf - buffer for printing the idle check results.
3498 * @param num_errors - OUT: number of errors found in idle check.
3499 * @param num_warnings - OUT: number of warnings found in idle check.
3501 * @return error if the parsing fails, ok otherwise.
3503 enum dbg_status qed_print_idle_chk_results(struct qed_hwfn *p_hwfn,
3505 u32 num_dumped_dwords,
3511 * @brief qed_dbg_mcp_trace_set_meta_data - Sets the MCP Trace meta data.
3513 * Needed in case the MCP Trace dump doesn't contain the meta data (e.g. due to
3516 * @param data - pointer to MCP Trace meta data
3517 * @param size - size of MCP Trace meta data in dwords
3519 void qed_dbg_mcp_trace_set_meta_data(struct qed_hwfn *p_hwfn,
3520 const u32 *meta_buf);
3523 * @brief qed_get_mcp_trace_results_buf_size - Returns the required buffer size
3524 * for MCP Trace results (in bytes).
3526 * @param p_hwfn - HW device data
3527 * @param dump_buf - MCP Trace dump buffer.
3528 * @param num_dumped_dwords - number of dwords that were dumped.
3529 * @param results_buf_size - OUT: required buffer size (in bytes) for the parsed
3532 * @return error if the parsing fails, ok otherwise.
3534 enum dbg_status qed_get_mcp_trace_results_buf_size(struct qed_hwfn *p_hwfn,
3536 u32 num_dumped_dwords,
3537 u32 *results_buf_size);
3540 * @brief qed_print_mcp_trace_results - Prints MCP Trace results
3542 * @param p_hwfn - HW device data
3543 * @param dump_buf - mcp trace dump buffer, starting from the header.
3544 * @param num_dumped_dwords - number of dwords that were dumped.
3545 * @param results_buf - buffer for printing the mcp trace results.
3547 * @return error if the parsing fails, ok otherwise.
3549 enum dbg_status qed_print_mcp_trace_results(struct qed_hwfn *p_hwfn,
3551 u32 num_dumped_dwords,
3555 * @brief qed_print_mcp_trace_results_cont - Prints MCP Trace results, and
3556 * keeps the MCP trace meta data allocated, to support continuous MCP Trace
3557 * parsing. After the continuous parsing ends, mcp_trace_free_meta_data should
3558 * be called to free the meta data.
3560 * @param p_hwfn - HW device data
3561 * @param dump_buf - mcp trace dump buffer, starting from the header.
3562 * @param results_buf - buffer for printing the mcp trace results.
3564 * @return error if the parsing fails, ok otherwise.
3566 enum dbg_status qed_print_mcp_trace_results_cont(struct qed_hwfn *p_hwfn,
3571 * @brief print_mcp_trace_line - Prints MCP Trace results for a single line
3573 * @param p_hwfn - HW device data
3574 * @param dump_buf - mcp trace dump buffer, starting from the header.
3575 * @param num_dumped_bytes - number of bytes that were dumped.
3576 * @param results_buf - buffer for printing the mcp trace results.
3578 * @return error if the parsing fails, ok otherwise.
3580 enum dbg_status qed_print_mcp_trace_line(struct qed_hwfn *p_hwfn,
3582 u32 num_dumped_bytes,
3586 * @brief mcp_trace_free_meta_data - Frees the MCP Trace meta data.
3587 * Should be called after continuous MCP Trace parsing.
3589 * @param p_hwfn - HW device data
3591 void qed_mcp_trace_free_meta_data(struct qed_hwfn *p_hwfn);
3594 * @brief qed_get_reg_fifo_results_buf_size - Returns the required buffer size
3595 * for reg_fifo results (in bytes).
3597 * @param p_hwfn - HW device data
3598 * @param dump_buf - reg fifo dump buffer.
3599 * @param num_dumped_dwords - number of dwords that were dumped.
3600 * @param results_buf_size - OUT: required buffer size (in bytes) for the parsed
3603 * @return error if the parsing fails, ok otherwise.
3605 enum dbg_status qed_get_reg_fifo_results_buf_size(struct qed_hwfn *p_hwfn,
3607 u32 num_dumped_dwords,
3608 u32 *results_buf_size);
3611 * @brief qed_print_reg_fifo_results - Prints reg fifo results
3613 * @param p_hwfn - HW device data
3614 * @param dump_buf - reg fifo dump buffer, starting from the header.
3615 * @param num_dumped_dwords - number of dwords that were dumped.
3616 * @param results_buf - buffer for printing the reg fifo results.
3618 * @return error if the parsing fails, ok otherwise.
3620 enum dbg_status qed_print_reg_fifo_results(struct qed_hwfn *p_hwfn,
3622 u32 num_dumped_dwords,
3626 * @brief qed_get_igu_fifo_results_buf_size - Returns the required buffer size
3627 * for igu_fifo results (in bytes).
3629 * @param p_hwfn - HW device data
3630 * @param dump_buf - IGU fifo dump buffer.
3631 * @param num_dumped_dwords - number of dwords that were dumped.
3632 * @param results_buf_size - OUT: required buffer size (in bytes) for the parsed
3635 * @return error if the parsing fails, ok otherwise.
3637 enum dbg_status qed_get_igu_fifo_results_buf_size(struct qed_hwfn *p_hwfn,
3639 u32 num_dumped_dwords,
3640 u32 *results_buf_size);
3643 * @brief qed_print_igu_fifo_results - Prints IGU fifo results
3645 * @param p_hwfn - HW device data
3646 * @param dump_buf - IGU fifo dump buffer, starting from the header.
3647 * @param num_dumped_dwords - number of dwords that were dumped.
3648 * @param results_buf - buffer for printing the IGU fifo results.
3650 * @return error if the parsing fails, ok otherwise.
3652 enum dbg_status qed_print_igu_fifo_results(struct qed_hwfn *p_hwfn,
3654 u32 num_dumped_dwords,
3658 * @brief qed_get_protection_override_results_buf_size - Returns the required
3659 * buffer size for protection override results (in bytes).
3661 * @param p_hwfn - HW device data
3662 * @param dump_buf - protection override dump buffer.
3663 * @param num_dumped_dwords - number of dwords that were dumped.
3664 * @param results_buf_size - OUT: required buffer size (in bytes) for the parsed
3667 * @return error if the parsing fails, ok otherwise.
3670 qed_get_protection_override_results_buf_size(struct qed_hwfn *p_hwfn,
3672 u32 num_dumped_dwords,
3673 u32 *results_buf_size);
3676 * @brief qed_print_protection_override_results - Prints protection override
3679 * @param p_hwfn - HW device data
3680 * @param dump_buf - protection override dump buffer, starting from the header.
3681 * @param num_dumped_dwords - number of dwords that were dumped.
3682 * @param results_buf - buffer for printing the reg fifo results.
3684 * @return error if the parsing fails, ok otherwise.
3686 enum dbg_status qed_print_protection_override_results(struct qed_hwfn *p_hwfn,
3688 u32 num_dumped_dwords,
3692 * @brief qed_get_fw_asserts_results_buf_size - Returns the required buffer size
3693 * for FW Asserts results (in bytes).
3695 * @param p_hwfn - HW device data
3696 * @param dump_buf - FW Asserts dump buffer.
3697 * @param num_dumped_dwords - number of dwords that were dumped.
3698 * @param results_buf_size - OUT: required buffer size (in bytes) for the parsed
3701 * @return error if the parsing fails, ok otherwise.
3703 enum dbg_status qed_get_fw_asserts_results_buf_size(struct qed_hwfn *p_hwfn,
3705 u32 num_dumped_dwords,
3706 u32 *results_buf_size);
3709 * @brief qed_print_fw_asserts_results - Prints FW Asserts results
3711 * @param p_hwfn - HW device data
3712 * @param dump_buf - FW Asserts dump buffer, starting from the header.
3713 * @param num_dumped_dwords - number of dwords that were dumped.
3714 * @param results_buf - buffer for printing the FW Asserts results.
3716 * @return error if the parsing fails, ok otherwise.
3718 enum dbg_status qed_print_fw_asserts_results(struct qed_hwfn *p_hwfn,
3720 u32 num_dumped_dwords,
3724 * @brief qed_dbg_parse_attn - Parses and prints attention registers values in
3725 * the specified results struct.
3727 * @param p_hwfn - HW device data
3728 * @param results - Pointer to the attention read results
3730 * @return error if one of the following holds:
3731 * - the version wasn't set
3732 * Otherwise, returns ok.
3734 enum dbg_status qed_dbg_parse_attn(struct qed_hwfn *p_hwfn,
3735 struct dbg_attn_block_result *results);
3738 #define GTT_BAR0_MAP_REG_IGU_CMD 0x00f000UL
3741 #define GTT_BAR0_MAP_REG_TSDM_RAM 0x010000UL
3744 #define GTT_BAR0_MAP_REG_MSDM_RAM 0x011000UL
3747 #define GTT_BAR0_MAP_REG_MSDM_RAM_1024 0x012000UL
3750 #define GTT_BAR0_MAP_REG_MSDM_RAM_2048 0x013000UL
3753 #define GTT_BAR0_MAP_REG_USDM_RAM 0x014000UL
3756 #define GTT_BAR0_MAP_REG_USDM_RAM_1024 0x015000UL
3759 #define GTT_BAR0_MAP_REG_USDM_RAM_2048 0x016000UL
3762 #define GTT_BAR0_MAP_REG_XSDM_RAM 0x017000UL
3765 #define GTT_BAR0_MAP_REG_XSDM_RAM_1024 0x018000UL
3768 #define GTT_BAR0_MAP_REG_YSDM_RAM 0x019000UL
3771 #define GTT_BAR0_MAP_REG_PSDM_RAM 0x01a000UL
3774 * @brief qed_qm_pf_mem_size - prepare QM ILT sizes
3776 * Returns the required host memory size in 4KB units.
3777 * Must be called before all QM init HSI functions.
3779 * @param num_pf_cids - number of connections used by this PF
3780 * @param num_vf_cids - number of connections used by VFs of this PF
3781 * @param num_tids - number of tasks used by this PF
3782 * @param num_pf_pqs - number of PQs used by this PF
3783 * @param num_vf_pqs - number of PQs used by VFs of this PF
3785 * @return The required host memory size in 4KB units.
3787 u32 qed_qm_pf_mem_size(u32 num_pf_cids,
3789 u32 num_tids, u16 num_pf_pqs, u16 num_vf_pqs);
3791 struct qed_qm_common_rt_init_params {
3792 u8 max_ports_per_engine;
3793 u8 max_phys_tcs_per_port;
3798 struct init_qm_port_params *port_params;
3801 int qed_qm_common_rt_init(struct qed_hwfn *p_hwfn,
3802 struct qed_qm_common_rt_init_params *p_params);
3804 struct qed_qm_pf_rt_init_params {
3807 u8 max_phys_tcs_per_port;
3819 struct init_qm_pq_params *pq_params;
3820 struct init_qm_vport_params *vport_params;
3823 int qed_qm_pf_rt_init(struct qed_hwfn *p_hwfn,
3824 struct qed_ptt *p_ptt,
3825 struct qed_qm_pf_rt_init_params *p_params);
3828 * @brief qed_init_pf_wfq - Initializes the WFQ weight of the specified PF
3831 * @param p_ptt - ptt window used for writing the registers
3832 * @param pf_id - PF ID
3833 * @param pf_wfq - WFQ weight. Must be non-zero.
3835 * @return 0 on success, -1 on error.
3837 int qed_init_pf_wfq(struct qed_hwfn *p_hwfn,
3838 struct qed_ptt *p_ptt, u8 pf_id, u16 pf_wfq);
3841 * @brief qed_init_pf_rl - Initializes the rate limit of the specified PF
3844 * @param p_ptt - ptt window used for writing the registers
3845 * @param pf_id - PF ID
3846 * @param pf_rl - rate limit in Mb/sec units
3848 * @return 0 on success, -1 on error.
3850 int qed_init_pf_rl(struct qed_hwfn *p_hwfn,
3851 struct qed_ptt *p_ptt, u8 pf_id, u32 pf_rl);
3854 * @brief qed_init_vport_wfq Initializes the WFQ weight of the specified VPORT
3857 * @param p_ptt - ptt window used for writing the registers
3858 * @param first_tx_pq_id- An array containing the first Tx PQ ID associated
3859 * with the VPORT for each TC. This array is filled by
3861 * @param vport_wfq - WFQ weight. Must be non-zero.
3863 * @return 0 on success, -1 on error.
3865 int qed_init_vport_wfq(struct qed_hwfn *p_hwfn,
3866 struct qed_ptt *p_ptt,
3867 u16 first_tx_pq_id[NUM_OF_TCS], u16 wfq);
3870 * @brief qed_init_global_rl - Initializes the rate limit of the specified
3874 * @param p_ptt - ptt window used for writing the registers
3875 * @param rl_id - RL ID
3876 * @param rate_limit - rate limit in Mb/sec units
3878 * @return 0 on success, -1 on error.
3880 int qed_init_global_rl(struct qed_hwfn *p_hwfn,
3881 struct qed_ptt *p_ptt,
3882 u16 rl_id, u32 rate_limit);
3885 * @brief qed_send_qm_stop_cmd Sends a stop command to the QM
3889 * @param is_release_cmd - true for release, false for stop.
3890 * @param is_tx_pq - true for Tx PQs, false for Other PQs.
3891 * @param start_pq - first PQ ID to stop
3892 * @param num_pqs - Number of PQs to stop, starting from start_pq.
3894 * @return bool, true if successful, false if timeout occurred while waiting for
3897 bool qed_send_qm_stop_cmd(struct qed_hwfn *p_hwfn,
3898 struct qed_ptt *p_ptt,
3899 bool is_release_cmd,
3900 bool is_tx_pq, u16 start_pq, u16 num_pqs);
3903 * @brief qed_set_vxlan_dest_port - initializes vxlan tunnel destination udp port
3906 * @param p_ptt - ptt window used for writing the registers.
3907 * @param dest_port - vxlan destination udp port.
3909 void qed_set_vxlan_dest_port(struct qed_hwfn *p_hwfn,
3910 struct qed_ptt *p_ptt, u16 dest_port);
3913 * @brief qed_set_vxlan_enable - enable or disable VXLAN tunnel in HW
3916 * @param p_ptt - ptt window used for writing the registers.
3917 * @param vxlan_enable - vxlan enable flag.
3919 void qed_set_vxlan_enable(struct qed_hwfn *p_hwfn,
3920 struct qed_ptt *p_ptt, bool vxlan_enable);
3923 * @brief qed_set_gre_enable - enable or disable GRE tunnel in HW
3926 * @param p_ptt - ptt window used for writing the registers.
3927 * @param eth_gre_enable - eth GRE enable enable flag.
3928 * @param ip_gre_enable - IP GRE enable enable flag.
3930 void qed_set_gre_enable(struct qed_hwfn *p_hwfn,
3931 struct qed_ptt *p_ptt,
3932 bool eth_gre_enable, bool ip_gre_enable);
3935 * @brief qed_set_geneve_dest_port - initializes geneve tunnel destination udp port
3938 * @param p_ptt - ptt window used for writing the registers.
3939 * @param dest_port - geneve destination udp port.
3941 void qed_set_geneve_dest_port(struct qed_hwfn *p_hwfn,
3942 struct qed_ptt *p_ptt, u16 dest_port);
3945 * @brief qed_set_gre_enable - enable or disable GRE tunnel in HW
3947 * @param p_ptt - ptt window used for writing the registers.
3948 * @param eth_geneve_enable - eth GENEVE enable enable flag.
3949 * @param ip_geneve_enable - IP GENEVE enable enable flag.
3951 void qed_set_geneve_enable(struct qed_hwfn *p_hwfn,
3952 struct qed_ptt *p_ptt,
3953 bool eth_geneve_enable, bool ip_geneve_enable);
3955 void qed_set_vxlan_no_l2_enable(struct qed_hwfn *p_hwfn,
3956 struct qed_ptt *p_ptt, bool enable);
3959 * @brief qed_gft_disable - Disable GFT
3962 * @param p_ptt - ptt window used for writing the registers.
3963 * @param pf_id - pf on which to disable GFT.
3965 void qed_gft_disable(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt, u16 pf_id);
3968 * @brief qed_gft_config - Enable and configure HW for GFT
3970 * @param p_hwfn - HW device data
3971 * @param p_ptt - ptt window used for writing the registers.
3972 * @param pf_id - pf on which to enable GFT.
3973 * @param tcp - set profile tcp packets.
3974 * @param udp - set profile udp packet.
3975 * @param ipv4 - set profile ipv4 packet.
3976 * @param ipv6 - set profile ipv6 packet.
3977 * @param profile_type - define packet same fields. Use enum gft_profile_type.
3979 void qed_gft_config(struct qed_hwfn *p_hwfn,
3980 struct qed_ptt *p_ptt,
3984 bool ipv4, bool ipv6, enum gft_profile_type profile_type);
3987 * @brief qed_enable_context_validation - Enable and configure context
3991 * @param p_ptt - ptt window used for writing the registers.
3993 void qed_enable_context_validation(struct qed_hwfn *p_hwfn,
3994 struct qed_ptt *p_ptt);
3997 * @brief qed_calc_session_ctx_validation - Calcualte validation byte for
4000 * @param p_ctx_mem - pointer to context memory.
4001 * @param ctx_size - context size.
4002 * @param ctx_type - context type.
4003 * @param cid - context cid.
4005 void qed_calc_session_ctx_validation(void *p_ctx_mem,
4006 u16 ctx_size, u8 ctx_type, u32 cid);
4009 * @brief qed_calc_task_ctx_validation - Calcualte validation byte for task
4012 * @param p_ctx_mem - pointer to context memory.
4013 * @param ctx_size - context size.
4014 * @param ctx_type - context type.
4015 * @param tid - context tid.
4017 void qed_calc_task_ctx_validation(void *p_ctx_mem,
4018 u16 ctx_size, u8 ctx_type, u32 tid);
4021 * @brief qed_memset_session_ctx - Memset session context to 0 while
4022 * preserving validation bytes.
4025 * @param p_ctx_mem - pointer to context memory.
4026 * @param ctx_size - size to initialzie.
4027 * @param ctx_type - context type.
4029 void qed_memset_session_ctx(void *p_ctx_mem, u32 ctx_size, u8 ctx_type);
4032 * @brief qed_memset_task_ctx - Memset task context to 0 while preserving
4035 * @param p_ctx_mem - pointer to context memory.
4036 * @param ctx_size - size to initialzie.
4037 * @param ctx_type - context type.
4039 void qed_memset_task_ctx(void *p_ctx_mem, u32 ctx_size, u8 ctx_type);
4041 #define NUM_STORMS 6
4044 * @brief qed_set_rdma_error_level - Sets the RDMA assert level.
4045 * If the severity of the error will be
4046 * above the level, the FW will assert.
4047 * @param p_hwfn - HW device data
4048 * @param p_ptt - ptt window used for writing the registers
4049 * @param assert_level - An array of assert levels for each storm.
4052 void qed_set_rdma_error_level(struct qed_hwfn *p_hwfn,
4053 struct qed_ptt *p_ptt,
4054 u8 assert_level[NUM_STORMS]);
4056 * @brief qed_fw_overlay_mem_alloc - Allocates and fills the FW overlay memory.
4058 * @param p_hwfn - HW device data
4059 * @param fw_overlay_in_buf - the input FW overlay buffer.
4060 * @param buf_size - the size of the input FW overlay buffer in bytes.
4061 * must be aligned to dwords.
4062 * @param fw_overlay_out_mem - OUT: a pointer to the allocated overlays memory.
4064 * @return a pointer to the allocated overlays memory,
4065 * or NULL in case of failures.
4067 struct phys_mem_desc *
4068 qed_fw_overlay_mem_alloc(struct qed_hwfn *p_hwfn,
4069 const u32 * const fw_overlay_in_buf,
4070 u32 buf_size_in_bytes);
4073 * @brief qed_fw_overlay_init_ram - Initializes the FW overlay RAM.
4075 * @param p_hwfn - HW device data.
4076 * @param p_ptt - ptt window used for writing the registers.
4077 * @param fw_overlay_mem - the allocated FW overlay memory.
4079 void qed_fw_overlay_init_ram(struct qed_hwfn *p_hwfn,
4080 struct qed_ptt *p_ptt,
4081 struct phys_mem_desc *fw_overlay_mem);
4084 * @brief qed_fw_overlay_mem_free - Frees the FW overlay memory.
4086 * @param p_hwfn - HW device data.
4087 * @param fw_overlay_mem - the allocated FW overlay memory to free.
4089 void qed_fw_overlay_mem_free(struct qed_hwfn *p_hwfn,
4090 struct phys_mem_desc *fw_overlay_mem);
4092 /* Ystorm flow control mode. Use enum fw_flow_ctrl_mode */
4093 #define YSTORM_FLOW_CONTROL_MODE_OFFSET (IRO[0].base)
4094 #define YSTORM_FLOW_CONTROL_MODE_SIZE (IRO[0].size)
4096 /* Tstorm port statistics */
4097 #define TSTORM_PORT_STAT_OFFSET(port_id) \
4098 (IRO[1].base + ((port_id) * IRO[1].m1))
4099 #define TSTORM_PORT_STAT_SIZE (IRO[1].size)
4101 /* Tstorm ll2 port statistics */
4102 #define TSTORM_LL2_PORT_STAT_OFFSET(port_id) \
4103 (IRO[2].base + ((port_id) * IRO[2].m1))
4104 #define TSTORM_LL2_PORT_STAT_SIZE (IRO[2].size)
4106 /* Ustorm VF-PF Channel ready flag */
4107 #define USTORM_VF_PF_CHANNEL_READY_OFFSET(vf_id) \
4108 (IRO[3].base + ((vf_id) * IRO[3].m1))
4109 #define USTORM_VF_PF_CHANNEL_READY_SIZE (IRO[3].size)
4111 /* Ustorm Final flr cleanup ack */
4112 #define USTORM_FLR_FINAL_ACK_OFFSET(pf_id) \
4113 (IRO[4].base + ((pf_id) * IRO[4].m1))
4114 #define USTORM_FLR_FINAL_ACK_SIZE (IRO[4].size)
4116 /* Ustorm Event ring consumer */
4117 #define USTORM_EQE_CONS_OFFSET(pf_id) \
4118 (IRO[5].base + ((pf_id) * IRO[5].m1))
4119 #define USTORM_EQE_CONS_SIZE (IRO[5].size)
4121 /* Ustorm eth queue zone */
4122 #define USTORM_ETH_QUEUE_ZONE_OFFSET(queue_zone_id) \
4123 (IRO[6].base + ((queue_zone_id) * IRO[6].m1))
4124 #define USTORM_ETH_QUEUE_ZONE_SIZE (IRO[6].size)
4126 /* Ustorm Common Queue ring consumer */
4127 #define USTORM_COMMON_QUEUE_CONS_OFFSET(queue_zone_id) \
4128 (IRO[7].base + ((queue_zone_id) * IRO[7].m1))
4129 #define USTORM_COMMON_QUEUE_CONS_SIZE (IRO[7].size)
4131 /* Xstorm common PQ info */
4132 #define XSTORM_PQ_INFO_OFFSET(pq_id) \
4133 (IRO[8].base + ((pq_id) * IRO[8].m1))
4134 #define XSTORM_PQ_INFO_SIZE (IRO[8].size)
4136 /* Xstorm Integration Test Data */
4137 #define XSTORM_INTEG_TEST_DATA_OFFSET (IRO[9].base)
4138 #define XSTORM_INTEG_TEST_DATA_SIZE (IRO[9].size)
4140 /* Ystorm Integration Test Data */
4141 #define YSTORM_INTEG_TEST_DATA_OFFSET (IRO[10].base)
4142 #define YSTORM_INTEG_TEST_DATA_SIZE (IRO[10].size)
4144 /* Pstorm Integration Test Data */
4145 #define PSTORM_INTEG_TEST_DATA_OFFSET (IRO[11].base)
4146 #define PSTORM_INTEG_TEST_DATA_SIZE (IRO[11].size)
4148 /* Tstorm Integration Test Data */
4149 #define TSTORM_INTEG_TEST_DATA_OFFSET (IRO[12].base)
4150 #define TSTORM_INTEG_TEST_DATA_SIZE (IRO[12].size)
4152 /* Mstorm Integration Test Data */
4153 #define MSTORM_INTEG_TEST_DATA_OFFSET (IRO[13].base)
4154 #define MSTORM_INTEG_TEST_DATA_SIZE (IRO[13].size)
4156 /* Ustorm Integration Test Data */
4157 #define USTORM_INTEG_TEST_DATA_OFFSET (IRO[14].base)
4158 #define USTORM_INTEG_TEST_DATA_SIZE (IRO[14].size)
4160 /* Xstorm overlay buffer host address */
4161 #define XSTORM_OVERLAY_BUF_ADDR_OFFSET (IRO[15].base)
4162 #define XSTORM_OVERLAY_BUF_ADDR_SIZE (IRO[15].size)
4164 /* Ystorm overlay buffer host address */
4165 #define YSTORM_OVERLAY_BUF_ADDR_OFFSET (IRO[16].base)
4166 #define YSTORM_OVERLAY_BUF_ADDR_SIZE (IRO[16].size)
4168 /* Pstorm overlay buffer host address */
4169 #define PSTORM_OVERLAY_BUF_ADDR_OFFSET (IRO[17].base)
4170 #define PSTORM_OVERLAY_BUF_ADDR_SIZE (IRO[17].size)
4172 /* Tstorm overlay buffer host address */
4173 #define TSTORM_OVERLAY_BUF_ADDR_OFFSET (IRO[18].base)
4174 #define TSTORM_OVERLAY_BUF_ADDR_SIZE (IRO[18].size)
4176 /* Mstorm overlay buffer host address */
4177 #define MSTORM_OVERLAY_BUF_ADDR_OFFSET (IRO[19].base)
4178 #define MSTORM_OVERLAY_BUF_ADDR_SIZE (IRO[19].size)
4180 /* Ustorm overlay buffer host address */
4181 #define USTORM_OVERLAY_BUF_ADDR_OFFSET (IRO[20].base)
4182 #define USTORM_OVERLAY_BUF_ADDR_SIZE (IRO[20].size)
4184 /* Tstorm producers */
4185 #define TSTORM_LL2_RX_PRODS_OFFSET(core_rx_queue_id) \
4186 (IRO[21].base + ((core_rx_queue_id) * IRO[21].m1))
4187 #define TSTORM_LL2_RX_PRODS_SIZE (IRO[21].size)
4189 /* Tstorm LightL2 queue statistics */
4190 #define CORE_LL2_TSTORM_PER_QUEUE_STAT_OFFSET(core_rx_queue_id) \
4191 (IRO[22].base + ((core_rx_queue_id) * IRO[22].m1))
4192 #define CORE_LL2_TSTORM_PER_QUEUE_STAT_SIZE (IRO[22].size)
4194 /* Ustorm LiteL2 queue statistics */
4195 #define CORE_LL2_USTORM_PER_QUEUE_STAT_OFFSET(core_rx_queue_id) \
4196 (IRO[23].base + ((core_rx_queue_id) * IRO[23].m1))
4197 #define CORE_LL2_USTORM_PER_QUEUE_STAT_SIZE (IRO[23].size)
4199 /* Pstorm LiteL2 queue statistics */
4200 #define CORE_LL2_PSTORM_PER_QUEUE_STAT_OFFSET(core_tx_stats_id) \
4201 (IRO[24].base + ((core_tx_stats_id) * IRO[24].m1))
4202 #define CORE_LL2_PSTORM_PER_QUEUE_STAT_SIZE (IRO[24].size)
4204 /* Mstorm queue statistics */
4205 #define MSTORM_QUEUE_STAT_OFFSET(stat_counter_id) \
4206 (IRO[25].base + ((stat_counter_id) * IRO[25].m1))
4207 #define MSTORM_QUEUE_STAT_SIZE (IRO[25].size)
4209 /* TPA agregation timeout in us resolution (on ASIC) */
4210 #define MSTORM_TPA_TIMEOUT_US_OFFSET (IRO[26].base)
4211 #define MSTORM_TPA_TIMEOUT_US_SIZE (IRO[26].size)
4213 /* Mstorm ETH VF queues producers offset in RAM. Used in default VF zone size
4216 #define MSTORM_ETH_VF_PRODS_OFFSET(vf_id, vf_queue_id) \
4217 (IRO[27].base + ((vf_id) * IRO[27].m1) + ((vf_queue_id) * IRO[27].m2))
4218 #define MSTORM_ETH_VF_PRODS_SIZE (IRO[27].size)
4220 /* Mstorm ETH PF queues producers */
4221 #define MSTORM_ETH_PF_PRODS_OFFSET(queue_id) \
4222 (IRO[28].base + ((queue_id) * IRO[28].m1))
4223 #define MSTORM_ETH_PF_PRODS_SIZE (IRO[28].size)
4225 /* Mstorm pf statistics */
4226 #define MSTORM_ETH_PF_STAT_OFFSET(pf_id) \
4227 (IRO[29].base + ((pf_id) * IRO[29].m1))
4228 #define MSTORM_ETH_PF_STAT_SIZE (IRO[29].size)
4230 /* Ustorm queue statistics */
4231 #define USTORM_QUEUE_STAT_OFFSET(stat_counter_id) \
4232 (IRO[30].base + ((stat_counter_id) * IRO[30].m1))
4233 #define USTORM_QUEUE_STAT_SIZE (IRO[30].size)
4235 /* Ustorm pf statistics */
4236 #define USTORM_ETH_PF_STAT_OFFSET(pf_id) \
4237 (IRO[31].base + ((pf_id) * IRO[31].m1))
4238 #define USTORM_ETH_PF_STAT_SIZE (IRO[31].size)
4240 /* Pstorm queue statistics */
4241 #define PSTORM_QUEUE_STAT_OFFSET(stat_counter_id) \
4242 (IRO[32].base + ((stat_counter_id) * IRO[32].m1))
4243 #define PSTORM_QUEUE_STAT_SIZE (IRO[32].size)
4245 /* Pstorm pf statistics */
4246 #define PSTORM_ETH_PF_STAT_OFFSET(pf_id) \
4247 (IRO[33].base + ((pf_id) * IRO[33].m1))
4248 #define PSTORM_ETH_PF_STAT_SIZE (IRO[33].size)
4250 /* Control frame's EthType configuration for TX control frame security */
4251 #define PSTORM_CTL_FRAME_ETHTYPE_OFFSET(eth_type_id) \
4252 (IRO[34].base + ((eth_type_id) * IRO[34].m1))
4253 #define PSTORM_CTL_FRAME_ETHTYPE_SIZE (IRO[34].size)
4255 /* Tstorm last parser message */
4256 #define TSTORM_ETH_PRS_INPUT_OFFSET (IRO[35].base)
4257 #define TSTORM_ETH_PRS_INPUT_SIZE (IRO[35].size)
4259 /* Tstorm Eth limit Rx rate */
4260 #define ETH_RX_RATE_LIMIT_OFFSET(pf_id) \
4261 (IRO[36].base + ((pf_id) * IRO[36].m1))
4262 #define ETH_RX_RATE_LIMIT_SIZE (IRO[36].size)
4264 /* RSS indirection table entry update command per PF offset in TSTORM PF BAR0.
4265 * Use eth_tstorm_rss_update_data for update
4267 #define TSTORM_ETH_RSS_UPDATE_OFFSET(pf_id) \
4268 (IRO[37].base + ((pf_id) * IRO[37].m1))
4269 #define TSTORM_ETH_RSS_UPDATE_SIZE (IRO[37].size)
4271 /* Xstorm queue zone */
4272 #define XSTORM_ETH_QUEUE_ZONE_OFFSET(queue_id) \
4273 (IRO[38].base + ((queue_id) * IRO[38].m1))
4274 #define XSTORM_ETH_QUEUE_ZONE_SIZE (IRO[38].size)
4276 /* Ystorm cqe producer */
4277 #define YSTORM_TOE_CQ_PROD_OFFSET(rss_id) \
4278 (IRO[39].base + ((rss_id) * IRO[39].m1))
4279 #define YSTORM_TOE_CQ_PROD_SIZE (IRO[39].size)
4281 /* Ustorm cqe producer */
4282 #define USTORM_TOE_CQ_PROD_OFFSET(rss_id) \
4283 (IRO[40].base + ((rss_id) * IRO[40].m1))
4284 #define USTORM_TOE_CQ_PROD_SIZE (IRO[40].size)
4286 /* Ustorm grq producer */
4287 #define USTORM_TOE_GRQ_PROD_OFFSET(pf_id) \
4288 (IRO[41].base + ((pf_id) * IRO[41].m1))
4289 #define USTORM_TOE_GRQ_PROD_SIZE (IRO[41].size)
4291 /* Tstorm cmdq-cons of given command queue-id */
4292 #define TSTORM_SCSI_CMDQ_CONS_OFFSET(cmdq_queue_id) \
4293 (IRO[42].base + ((cmdq_queue_id) * IRO[42].m1))
4294 #define TSTORM_SCSI_CMDQ_CONS_SIZE (IRO[42].size)
4296 /* Tstorm (reflects M-Storm) bdq-external-producer of given function ID,
4299 #define TSTORM_SCSI_BDQ_EXT_PROD_OFFSET(storage_func_id, bdq_id) \
4300 (IRO[43].base + ((storage_func_id) * IRO[43].m1) + \
4301 ((bdq_id) * IRO[43].m2))
4302 #define TSTORM_SCSI_BDQ_EXT_PROD_SIZE (IRO[43].size)
4304 /* Mstorm bdq-external-producer of given BDQ resource ID, BDqueue-id */
4305 #define MSTORM_SCSI_BDQ_EXT_PROD_OFFSET(storage_func_id, bdq_id) \
4306 (IRO[44].base + ((storage_func_id) * IRO[44].m1) + \
4307 ((bdq_id) * IRO[44].m2))
4308 #define MSTORM_SCSI_BDQ_EXT_PROD_SIZE (IRO[44].size)
4310 /* Tstorm iSCSI RX stats */
4311 #define TSTORM_ISCSI_RX_STATS_OFFSET(storage_func_id) \
4312 (IRO[45].base + ((storage_func_id) * IRO[45].m1))
4313 #define TSTORM_ISCSI_RX_STATS_SIZE (IRO[45].size)
4315 /* Mstorm iSCSI RX stats */
4316 #define MSTORM_ISCSI_RX_STATS_OFFSET(storage_func_id) \
4317 (IRO[46].base + ((storage_func_id) * IRO[46].m1))
4318 #define MSTORM_ISCSI_RX_STATS_SIZE (IRO[46].size)
4320 /* Ustorm iSCSI RX stats */
4321 #define USTORM_ISCSI_RX_STATS_OFFSET(storage_func_id) \
4322 (IRO[47].base + ((storage_func_id) * IRO[47].m1))
4323 #define USTORM_ISCSI_RX_STATS_SIZE (IRO[47].size)
4325 /* Xstorm iSCSI TX stats */
4326 #define XSTORM_ISCSI_TX_STATS_OFFSET(storage_func_id) \
4327 (IRO[48].base + ((storage_func_id) * IRO[48].m1))
4328 #define XSTORM_ISCSI_TX_STATS_SIZE (IRO[48].size)
4330 /* Ystorm iSCSI TX stats */
4331 #define YSTORM_ISCSI_TX_STATS_OFFSET(storage_func_id) \
4332 (IRO[49].base + ((storage_func_id) * IRO[49].m1))
4333 #define YSTORM_ISCSI_TX_STATS_SIZE (IRO[49].size)
4335 /* Pstorm iSCSI TX stats */
4336 #define PSTORM_ISCSI_TX_STATS_OFFSET(storage_func_id) \
4337 (IRO[50].base + ((storage_func_id) * IRO[50].m1))
4338 #define PSTORM_ISCSI_TX_STATS_SIZE (IRO[50].size)
4340 /* Tstorm FCoE RX stats */
4341 #define TSTORM_FCOE_RX_STATS_OFFSET(pf_id) \
4342 (IRO[51].base + ((pf_id) * IRO[51].m1))
4343 #define TSTORM_FCOE_RX_STATS_SIZE (IRO[51].size)
4345 /* Pstorm FCoE TX stats */
4346 #define PSTORM_FCOE_TX_STATS_OFFSET(pf_id) \
4347 (IRO[52].base + ((pf_id) * IRO[52].m1))
4348 #define PSTORM_FCOE_TX_STATS_SIZE (IRO[52].size)
4350 /* Pstorm RDMA queue statistics */
4351 #define PSTORM_RDMA_QUEUE_STAT_OFFSET(rdma_stat_counter_id) \
4352 (IRO[53].base + ((rdma_stat_counter_id) * IRO[53].m1))
4353 #define PSTORM_RDMA_QUEUE_STAT_SIZE (IRO[53].size)
4355 /* Tstorm RDMA queue statistics */
4356 #define TSTORM_RDMA_QUEUE_STAT_OFFSET(rdma_stat_counter_id) \
4357 (IRO[54].base + ((rdma_stat_counter_id) * IRO[54].m1))
4358 #define TSTORM_RDMA_QUEUE_STAT_SIZE (IRO[54].size)
4360 /* Xstorm error level for assert */
4361 #define XSTORM_RDMA_ASSERT_LEVEL_OFFSET(pf_id) \
4362 (IRO[55].base + ((pf_id) * IRO[55].m1))
4363 #define XSTORM_RDMA_ASSERT_LEVEL_SIZE (IRO[55].size)
4365 /* Ystorm error level for assert */
4366 #define YSTORM_RDMA_ASSERT_LEVEL_OFFSET(pf_id) \
4367 (IRO[56].base + ((pf_id) * IRO[56].m1))
4368 #define YSTORM_RDMA_ASSERT_LEVEL_SIZE (IRO[56].size)
4370 /* Pstorm error level for assert */
4371 #define PSTORM_RDMA_ASSERT_LEVEL_OFFSET(pf_id) \
4372 (IRO[57].base + ((pf_id) * IRO[57].m1))
4373 #define PSTORM_RDMA_ASSERT_LEVEL_SIZE (IRO[57].size)
4375 /* Tstorm error level for assert */
4376 #define TSTORM_RDMA_ASSERT_LEVEL_OFFSET(pf_id) \
4377 (IRO[58].base + ((pf_id) * IRO[58].m1))
4378 #define TSTORM_RDMA_ASSERT_LEVEL_SIZE (IRO[58].size)
4380 /* Mstorm error level for assert */
4381 #define MSTORM_RDMA_ASSERT_LEVEL_OFFSET(pf_id) \
4382 (IRO[59].base + ((pf_id) * IRO[59].m1))
4383 #define MSTORM_RDMA_ASSERT_LEVEL_SIZE (IRO[59].size)
4385 /* Ustorm error level for assert */
4386 #define USTORM_RDMA_ASSERT_LEVEL_OFFSET(pf_id) \
4387 (IRO[60].base + ((pf_id) * IRO[60].m1))
4388 #define USTORM_RDMA_ASSERT_LEVEL_SIZE (IRO[60].size)
4390 /* Xstorm iWARP rxmit stats */
4391 #define XSTORM_IWARP_RXMIT_STATS_OFFSET(pf_id) \
4392 (IRO[61].base + ((pf_id) * IRO[61].m1))
4393 #define XSTORM_IWARP_RXMIT_STATS_SIZE (IRO[61].size)
4395 /* Tstorm RoCE Event Statistics */
4396 #define TSTORM_ROCE_EVENTS_STAT_OFFSET(roce_pf_id) \
4397 (IRO[62].base + ((roce_pf_id) * IRO[62].m1))
4398 #define TSTORM_ROCE_EVENTS_STAT_SIZE (IRO[62].size)
4400 /* DCQCN Received Statistics */
4401 #define YSTORM_ROCE_DCQCN_RECEIVED_STATS_OFFSET(roce_pf_id)\
4402 (IRO[63].base + ((roce_pf_id) * IRO[63].m1))
4403 #define YSTORM_ROCE_DCQCN_RECEIVED_STATS_SIZE (IRO[63].size)
4405 /* RoCE Error Statistics */
4406 #define YSTORM_ROCE_ERROR_STATS_OFFSET(roce_pf_id) \
4407 (IRO[64].base + ((roce_pf_id) * IRO[64].m1))
4408 #define YSTORM_ROCE_ERROR_STATS_SIZE (IRO[64].size)
4410 /* DCQCN Sent Statistics */
4411 #define PSTORM_ROCE_DCQCN_SENT_STATS_OFFSET(roce_pf_id) \
4412 (IRO[65].base + ((roce_pf_id) * IRO[65].m1))
4413 #define PSTORM_ROCE_DCQCN_SENT_STATS_SIZE (IRO[65].size)
4415 /* RoCE CQEs Statistics */
4416 #define USTORM_ROCE_CQE_STATS_OFFSET(roce_pf_id) \
4417 (IRO[66].base + ((roce_pf_id) * IRO[66].m1))
4418 #define USTORM_ROCE_CQE_STATS_SIZE (IRO[66].size)
4421 static const u32 iro_arr[] = {
4422 0x00000000, 0x00000000, 0x00080000,
4423 0x00003288, 0x00000088, 0x00880000,
4424 0x000058e8, 0x00000020, 0x00200000,
4425 0x00000b00, 0x00000008, 0x00040000,
4426 0x00000a80, 0x00000008, 0x00040000,
4427 0x00000000, 0x00000008, 0x00020000,
4428 0x00000080, 0x00000008, 0x00040000,
4429 0x00000084, 0x00000008, 0x00020000,
4430 0x00005718, 0x00000004, 0x00040000,
4431 0x00004dd0, 0x00000000, 0x00780000,
4432 0x00003e40, 0x00000000, 0x00780000,
4433 0x00004480, 0x00000000, 0x00780000,
4434 0x00003210, 0x00000000, 0x00780000,
4435 0x00003b50, 0x00000000, 0x00780000,
4436 0x00007f58, 0x00000000, 0x00780000,
4437 0x00005f58, 0x00000000, 0x00080000,
4438 0x00007100, 0x00000000, 0x00080000,
4439 0x0000aea0, 0x00000000, 0x00080000,
4440 0x00004398, 0x00000000, 0x00080000,
4441 0x0000a5a0, 0x00000000, 0x00080000,
4442 0x0000bde8, 0x00000000, 0x00080000,
4443 0x00000020, 0x00000004, 0x00040000,
4444 0x000056c8, 0x00000010, 0x00100000,
4445 0x0000c210, 0x00000030, 0x00300000,
4446 0x0000b088, 0x00000038, 0x00380000,
4447 0x00003d20, 0x00000080, 0x00400000,
4448 0x0000bf60, 0x00000000, 0x00040000,
4449 0x00004560, 0x00040080, 0x00040000,
4450 0x000001f8, 0x00000004, 0x00040000,
4451 0x00003d60, 0x00000080, 0x00200000,
4452 0x00008960, 0x00000040, 0x00300000,
4453 0x0000e840, 0x00000060, 0x00600000,
4454 0x00004618, 0x00000080, 0x00380000,
4455 0x00010738, 0x000000c0, 0x00c00000,
4456 0x000001f8, 0x00000002, 0x00020000,
4457 0x0000a2a0, 0x00000000, 0x01080000,
4458 0x0000a3a8, 0x00000008, 0x00080000,
4459 0x000001c0, 0x00000008, 0x00080000,
4460 0x000001f8, 0x00000008, 0x00080000,
4461 0x00000ac0, 0x00000008, 0x00080000,
4462 0x00002578, 0x00000008, 0x00080000,
4463 0x000024f8, 0x00000008, 0x00080000,
4464 0x00000280, 0x00000008, 0x00080000,
4465 0x00000680, 0x00080018, 0x00080000,
4466 0x00000b78, 0x00080018, 0x00020000,
4467 0x0000c640, 0x00000050, 0x003c0000,
4468 0x00012038, 0x00000018, 0x00100000,
4469 0x00011b00, 0x00000040, 0x00180000,
4470 0x000095d0, 0x00000050, 0x00200000,
4471 0x00008b10, 0x00000040, 0x00280000,
4472 0x00011640, 0x00000018, 0x00100000,
4473 0x0000c828, 0x00000048, 0x00380000,
4474 0x00011710, 0x00000020, 0x00200000,
4475 0x00004650, 0x00000080, 0x00100000,
4476 0x00003618, 0x00000010, 0x00100000,
4477 0x0000a968, 0x00000008, 0x00010000,
4478 0x000097a0, 0x00000008, 0x00010000,
4479 0x00011990, 0x00000008, 0x00010000,
4480 0x0000f018, 0x00000008, 0x00010000,
4481 0x00012628, 0x00000008, 0x00010000,
4482 0x00011da8, 0x00000008, 0x00010000,
4483 0x0000aa78, 0x00000030, 0x00100000,
4484 0x0000d768, 0x00000028, 0x00280000,
4485 0x00009a58, 0x00000018, 0x00180000,
4486 0x00009bd8, 0x00000008, 0x00080000,
4487 0x00013a18, 0x00000008, 0x00080000,
4488 0x000126e8, 0x00000018, 0x00180000,
4489 0x0000e608, 0x00500288, 0x00100000,
4490 0x00012970, 0x00000138, 0x00280000,
4493 /* Runtime array offsets */
4494 #define DORQ_REG_PF_MAX_ICID_0_RT_OFFSET 0
4495 #define DORQ_REG_PF_MAX_ICID_1_RT_OFFSET 1
4496 #define DORQ_REG_PF_MAX_ICID_2_RT_OFFSET 2
4497 #define DORQ_REG_PF_MAX_ICID_3_RT_OFFSET 3
4498 #define DORQ_REG_PF_MAX_ICID_4_RT_OFFSET 4
4499 #define DORQ_REG_PF_MAX_ICID_5_RT_OFFSET 5
4500 #define DORQ_REG_PF_MAX_ICID_6_RT_OFFSET 6
4501 #define DORQ_REG_PF_MAX_ICID_7_RT_OFFSET 7
4502 #define DORQ_REG_VF_MAX_ICID_0_RT_OFFSET 8
4503 #define DORQ_REG_VF_MAX_ICID_1_RT_OFFSET 9
4504 #define DORQ_REG_VF_MAX_ICID_2_RT_OFFSET 10
4505 #define DORQ_REG_VF_MAX_ICID_3_RT_OFFSET 11
4506 #define DORQ_REG_VF_MAX_ICID_4_RT_OFFSET 12
4507 #define DORQ_REG_VF_MAX_ICID_5_RT_OFFSET 13
4508 #define DORQ_REG_VF_MAX_ICID_6_RT_OFFSET 14
4509 #define DORQ_REG_VF_MAX_ICID_7_RT_OFFSET 15
4510 #define DORQ_REG_VF_ICID_BIT_SHIFT_NORM_RT_OFFSET 16
4511 #define DORQ_REG_PF_WAKE_ALL_RT_OFFSET 17
4512 #define DORQ_REG_TAG1_ETHERTYPE_RT_OFFSET 18
4513 #define IGU_REG_PF_CONFIGURATION_RT_OFFSET 19
4514 #define IGU_REG_VF_CONFIGURATION_RT_OFFSET 20
4515 #define IGU_REG_ATTN_MSG_ADDR_L_RT_OFFSET 21
4516 #define IGU_REG_ATTN_MSG_ADDR_H_RT_OFFSET 22
4517 #define IGU_REG_LEADING_EDGE_LATCH_RT_OFFSET 23
4518 #define IGU_REG_TRAILING_EDGE_LATCH_RT_OFFSET 24
4519 #define CAU_REG_CQE_AGG_UNIT_SIZE_RT_OFFSET 25
4520 #define CAU_REG_SB_VAR_MEMORY_RT_OFFSET 26
4521 #define CAU_REG_SB_VAR_MEMORY_RT_SIZE 736
4522 #define CAU_REG_SB_ADDR_MEMORY_RT_OFFSET 762
4523 #define CAU_REG_SB_ADDR_MEMORY_RT_SIZE 736
4524 #define CAU_REG_PI_MEMORY_RT_OFFSET 1498
4525 #define CAU_REG_PI_MEMORY_RT_SIZE 4416
4526 #define PRS_REG_SEARCH_RESP_INITIATOR_TYPE_RT_OFFSET 5914
4527 #define PRS_REG_TASK_ID_MAX_INITIATOR_PF_RT_OFFSET 5915
4528 #define PRS_REG_TASK_ID_MAX_INITIATOR_VF_RT_OFFSET 5916
4529 #define PRS_REG_TASK_ID_MAX_TARGET_PF_RT_OFFSET 5917
4530 #define PRS_REG_TASK_ID_MAX_TARGET_VF_RT_OFFSET 5918
4531 #define PRS_REG_SEARCH_TCP_RT_OFFSET 5919
4532 #define PRS_REG_SEARCH_FCOE_RT_OFFSET 5920
4533 #define PRS_REG_SEARCH_ROCE_RT_OFFSET 5921
4534 #define PRS_REG_ROCE_DEST_QP_MAX_VF_RT_OFFSET 5922
4535 #define PRS_REG_ROCE_DEST_QP_MAX_PF_RT_OFFSET 5923
4536 #define PRS_REG_SEARCH_OPENFLOW_RT_OFFSET 5924
4537 #define PRS_REG_SEARCH_NON_IP_AS_OPENFLOW_RT_OFFSET 5925
4538 #define PRS_REG_OPENFLOW_SUPPORT_ONLY_KNOWN_OVER_IP_RT_OFFSET 5926
4539 #define PRS_REG_OPENFLOW_SEARCH_KEY_MASK_RT_OFFSET 5927
4540 #define PRS_REG_TAG_ETHERTYPE_0_RT_OFFSET 5928
4541 #define PRS_REG_LIGHT_L2_ETHERTYPE_EN_RT_OFFSET 5929
4542 #define SRC_REG_FIRSTFREE_RT_OFFSET 5930
4543 #define SRC_REG_FIRSTFREE_RT_SIZE 2
4544 #define SRC_REG_LASTFREE_RT_OFFSET 5932
4545 #define SRC_REG_LASTFREE_RT_SIZE 2
4546 #define SRC_REG_COUNTFREE_RT_OFFSET 5934
4547 #define SRC_REG_NUMBER_HASH_BITS_RT_OFFSET 5935
4548 #define PSWRQ2_REG_CDUT_P_SIZE_RT_OFFSET 5936
4549 #define PSWRQ2_REG_CDUC_P_SIZE_RT_OFFSET 5937
4550 #define PSWRQ2_REG_TM_P_SIZE_RT_OFFSET 5938
4551 #define PSWRQ2_REG_QM_P_SIZE_RT_OFFSET 5939
4552 #define PSWRQ2_REG_SRC_P_SIZE_RT_OFFSET 5940
4553 #define PSWRQ2_REG_TSDM_P_SIZE_RT_OFFSET 5941
4554 #define PSWRQ2_REG_TM_FIRST_ILT_RT_OFFSET 5942
4555 #define PSWRQ2_REG_TM_LAST_ILT_RT_OFFSET 5943
4556 #define PSWRQ2_REG_QM_FIRST_ILT_RT_OFFSET 5944
4557 #define PSWRQ2_REG_QM_LAST_ILT_RT_OFFSET 5945
4558 #define PSWRQ2_REG_SRC_FIRST_ILT_RT_OFFSET 5946
4559 #define PSWRQ2_REG_SRC_LAST_ILT_RT_OFFSET 5947
4560 #define PSWRQ2_REG_CDUC_FIRST_ILT_RT_OFFSET 5948
4561 #define PSWRQ2_REG_CDUC_LAST_ILT_RT_OFFSET 5949
4562 #define PSWRQ2_REG_CDUT_FIRST_ILT_RT_OFFSET 5950
4563 #define PSWRQ2_REG_CDUT_LAST_ILT_RT_OFFSET 5951
4564 #define PSWRQ2_REG_TSDM_FIRST_ILT_RT_OFFSET 5952
4565 #define PSWRQ2_REG_TSDM_LAST_ILT_RT_OFFSET 5953
4566 #define PSWRQ2_REG_TM_NUMBER_OF_PF_BLOCKS_RT_OFFSET 5954
4567 #define PSWRQ2_REG_CDUT_NUMBER_OF_PF_BLOCKS_RT_OFFSET 5955
4568 #define PSWRQ2_REG_CDUC_NUMBER_OF_PF_BLOCKS_RT_OFFSET 5956
4569 #define PSWRQ2_REG_TM_VF_BLOCKS_RT_OFFSET 5957
4570 #define PSWRQ2_REG_CDUT_VF_BLOCKS_RT_OFFSET 5958
4571 #define PSWRQ2_REG_CDUC_VF_BLOCKS_RT_OFFSET 5959
4572 #define PSWRQ2_REG_TM_BLOCKS_FACTOR_RT_OFFSET 5960
4573 #define PSWRQ2_REG_CDUT_BLOCKS_FACTOR_RT_OFFSET 5961
4574 #define PSWRQ2_REG_CDUC_BLOCKS_FACTOR_RT_OFFSET 5962
4575 #define PSWRQ2_REG_VF_BASE_RT_OFFSET 5963
4576 #define PSWRQ2_REG_VF_LAST_ILT_RT_OFFSET 5964
4577 #define PSWRQ2_REG_DRAM_ALIGN_WR_RT_OFFSET 5965
4578 #define PSWRQ2_REG_DRAM_ALIGN_RD_RT_OFFSET 5966
4579 #define PSWRQ2_REG_ILT_MEMORY_RT_OFFSET 5967
4580 #define PSWRQ2_REG_ILT_MEMORY_RT_SIZE 22000
4581 #define PGLUE_REG_B_VF_BASE_RT_OFFSET 27967
4582 #define PGLUE_REG_B_MSDM_OFFSET_MASK_B_RT_OFFSET 27968
4583 #define PGLUE_REG_B_MSDM_VF_SHIFT_B_RT_OFFSET 27969
4584 #define PGLUE_REG_B_CACHE_LINE_SIZE_RT_OFFSET 27970
4585 #define PGLUE_REG_B_PF_BAR0_SIZE_RT_OFFSET 27971
4586 #define PGLUE_REG_B_PF_BAR1_SIZE_RT_OFFSET 27972
4587 #define PGLUE_REG_B_VF_BAR1_SIZE_RT_OFFSET 27973
4588 #define TM_REG_VF_ENABLE_CONN_RT_OFFSET 27974
4589 #define TM_REG_PF_ENABLE_CONN_RT_OFFSET 27975
4590 #define TM_REG_PF_ENABLE_TASK_RT_OFFSET 27976
4591 #define TM_REG_GROUP_SIZE_RESOLUTION_CONN_RT_OFFSET 27977
4592 #define TM_REG_GROUP_SIZE_RESOLUTION_TASK_RT_OFFSET 27978
4593 #define TM_REG_CONFIG_CONN_MEM_RT_OFFSET 27979
4594 #define TM_REG_CONFIG_CONN_MEM_RT_SIZE 416
4595 #define TM_REG_CONFIG_TASK_MEM_RT_OFFSET 28395
4596 #define TM_REG_CONFIG_TASK_MEM_RT_SIZE 512
4597 #define QM_REG_MAXPQSIZE_0_RT_OFFSET 28907
4598 #define QM_REG_MAXPQSIZE_1_RT_OFFSET 28908
4599 #define QM_REG_MAXPQSIZE_2_RT_OFFSET 28909
4600 #define QM_REG_MAXPQSIZETXSEL_0_RT_OFFSET 28910
4601 #define QM_REG_MAXPQSIZETXSEL_1_RT_OFFSET 28911
4602 #define QM_REG_MAXPQSIZETXSEL_2_RT_OFFSET 28912
4603 #define QM_REG_MAXPQSIZETXSEL_3_RT_OFFSET 28913
4604 #define QM_REG_MAXPQSIZETXSEL_4_RT_OFFSET 28914
4605 #define QM_REG_MAXPQSIZETXSEL_5_RT_OFFSET 28915
4606 #define QM_REG_MAXPQSIZETXSEL_6_RT_OFFSET 28916
4607 #define QM_REG_MAXPQSIZETXSEL_7_RT_OFFSET 28917
4608 #define QM_REG_MAXPQSIZETXSEL_8_RT_OFFSET 28918
4609 #define QM_REG_MAXPQSIZETXSEL_9_RT_OFFSET 28919
4610 #define QM_REG_MAXPQSIZETXSEL_10_RT_OFFSET 28920
4611 #define QM_REG_MAXPQSIZETXSEL_11_RT_OFFSET 28921
4612 #define QM_REG_MAXPQSIZETXSEL_12_RT_OFFSET 28922
4613 #define QM_REG_MAXPQSIZETXSEL_13_RT_OFFSET 28923
4614 #define QM_REG_MAXPQSIZETXSEL_14_RT_OFFSET 28924
4615 #define QM_REG_MAXPQSIZETXSEL_15_RT_OFFSET 28925
4616 #define QM_REG_MAXPQSIZETXSEL_16_RT_OFFSET 28926
4617 #define QM_REG_MAXPQSIZETXSEL_17_RT_OFFSET 28927
4618 #define QM_REG_MAXPQSIZETXSEL_18_RT_OFFSET 28928
4619 #define QM_REG_MAXPQSIZETXSEL_19_RT_OFFSET 28929
4620 #define QM_REG_MAXPQSIZETXSEL_20_RT_OFFSET 28930
4621 #define QM_REG_MAXPQSIZETXSEL_21_RT_OFFSET 28931
4622 #define QM_REG_MAXPQSIZETXSEL_22_RT_OFFSET 28932
4623 #define QM_REG_MAXPQSIZETXSEL_23_RT_OFFSET 28933
4624 #define QM_REG_MAXPQSIZETXSEL_24_RT_OFFSET 28934
4625 #define QM_REG_MAXPQSIZETXSEL_25_RT_OFFSET 28935
4626 #define QM_REG_MAXPQSIZETXSEL_26_RT_OFFSET 28936
4627 #define QM_REG_MAXPQSIZETXSEL_27_RT_OFFSET 28937
4628 #define QM_REG_MAXPQSIZETXSEL_28_RT_OFFSET 28938
4629 #define QM_REG_MAXPQSIZETXSEL_29_RT_OFFSET 28939
4630 #define QM_REG_MAXPQSIZETXSEL_30_RT_OFFSET 28940
4631 #define QM_REG_MAXPQSIZETXSEL_31_RT_OFFSET 28941
4632 #define QM_REG_MAXPQSIZETXSEL_32_RT_OFFSET 28942
4633 #define QM_REG_MAXPQSIZETXSEL_33_RT_OFFSET 28943
4634 #define QM_REG_MAXPQSIZETXSEL_34_RT_OFFSET 28944
4635 #define QM_REG_MAXPQSIZETXSEL_35_RT_OFFSET 28945
4636 #define QM_REG_MAXPQSIZETXSEL_36_RT_OFFSET 28946
4637 #define QM_REG_MAXPQSIZETXSEL_37_RT_OFFSET 28947
4638 #define QM_REG_MAXPQSIZETXSEL_38_RT_OFFSET 28948
4639 #define QM_REG_MAXPQSIZETXSEL_39_RT_OFFSET 28949
4640 #define QM_REG_MAXPQSIZETXSEL_40_RT_OFFSET 28950
4641 #define QM_REG_MAXPQSIZETXSEL_41_RT_OFFSET 28951
4642 #define QM_REG_MAXPQSIZETXSEL_42_RT_OFFSET 28952
4643 #define QM_REG_MAXPQSIZETXSEL_43_RT_OFFSET 28953
4644 #define QM_REG_MAXPQSIZETXSEL_44_RT_OFFSET 28954
4645 #define QM_REG_MAXPQSIZETXSEL_45_RT_OFFSET 28955
4646 #define QM_REG_MAXPQSIZETXSEL_46_RT_OFFSET 28956
4647 #define QM_REG_MAXPQSIZETXSEL_47_RT_OFFSET 28957
4648 #define QM_REG_MAXPQSIZETXSEL_48_RT_OFFSET 28958
4649 #define QM_REG_MAXPQSIZETXSEL_49_RT_OFFSET 28959
4650 #define QM_REG_MAXPQSIZETXSEL_50_RT_OFFSET 28960
4651 #define QM_REG_MAXPQSIZETXSEL_51_RT_OFFSET 28961
4652 #define QM_REG_MAXPQSIZETXSEL_52_RT_OFFSET 28962
4653 #define QM_REG_MAXPQSIZETXSEL_53_RT_OFFSET 28963
4654 #define QM_REG_MAXPQSIZETXSEL_54_RT_OFFSET 28964
4655 #define QM_REG_MAXPQSIZETXSEL_55_RT_OFFSET 28965
4656 #define QM_REG_MAXPQSIZETXSEL_56_RT_OFFSET 28966
4657 #define QM_REG_MAXPQSIZETXSEL_57_RT_OFFSET 28967
4658 #define QM_REG_MAXPQSIZETXSEL_58_RT_OFFSET 28968
4659 #define QM_REG_MAXPQSIZETXSEL_59_RT_OFFSET 28969
4660 #define QM_REG_MAXPQSIZETXSEL_60_RT_OFFSET 28970
4661 #define QM_REG_MAXPQSIZETXSEL_61_RT_OFFSET 28971
4662 #define QM_REG_MAXPQSIZETXSEL_62_RT_OFFSET 28972
4663 #define QM_REG_MAXPQSIZETXSEL_63_RT_OFFSET 28973
4664 #define QM_REG_BASEADDROTHERPQ_RT_OFFSET 28974
4665 #define QM_REG_BASEADDROTHERPQ_RT_SIZE 128
4666 #define QM_REG_PTRTBLOTHER_RT_OFFSET 29102
4667 #define QM_REG_PTRTBLOTHER_RT_SIZE 256
4668 #define QM_REG_VOQCRDLINE_RT_OFFSET 29358
4669 #define QM_REG_VOQCRDLINE_RT_SIZE 20
4670 #define QM_REG_VOQINITCRDLINE_RT_OFFSET 29378
4671 #define QM_REG_VOQINITCRDLINE_RT_SIZE 20
4672 #define QM_REG_AFULLQMBYPTHRPFWFQ_RT_OFFSET 29398
4673 #define QM_REG_AFULLQMBYPTHRVPWFQ_RT_OFFSET 29399
4674 #define QM_REG_AFULLQMBYPTHRPFRL_RT_OFFSET 29400
4675 #define QM_REG_AFULLQMBYPTHRGLBLRL_RT_OFFSET 29401
4676 #define QM_REG_AFULLOPRTNSTCCRDMASK_RT_OFFSET 29402
4677 #define QM_REG_WRROTHERPQGRP_0_RT_OFFSET 29403
4678 #define QM_REG_WRROTHERPQGRP_1_RT_OFFSET 29404
4679 #define QM_REG_WRROTHERPQGRP_2_RT_OFFSET 29405
4680 #define QM_REG_WRROTHERPQGRP_3_RT_OFFSET 29406
4681 #define QM_REG_WRROTHERPQGRP_4_RT_OFFSET 29407
4682 #define QM_REG_WRROTHERPQGRP_5_RT_OFFSET 29408
4683 #define QM_REG_WRROTHERPQGRP_6_RT_OFFSET 29409
4684 #define QM_REG_WRROTHERPQGRP_7_RT_OFFSET 29410
4685 #define QM_REG_WRROTHERPQGRP_8_RT_OFFSET 29411
4686 #define QM_REG_WRROTHERPQGRP_9_RT_OFFSET 29412
4687 #define QM_REG_WRROTHERPQGRP_10_RT_OFFSET 29413
4688 #define QM_REG_WRROTHERPQGRP_11_RT_OFFSET 29414
4689 #define QM_REG_WRROTHERPQGRP_12_RT_OFFSET 29415
4690 #define QM_REG_WRROTHERPQGRP_13_RT_OFFSET 29416
4691 #define QM_REG_WRROTHERPQGRP_14_RT_OFFSET 29417
4692 #define QM_REG_WRROTHERPQGRP_15_RT_OFFSET 29418
4693 #define QM_REG_WRROTHERGRPWEIGHT_0_RT_OFFSET 29419
4694 #define QM_REG_WRROTHERGRPWEIGHT_1_RT_OFFSET 29420
4695 #define QM_REG_WRROTHERGRPWEIGHT_2_RT_OFFSET 29421
4696 #define QM_REG_WRROTHERGRPWEIGHT_3_RT_OFFSET 29422
4697 #define QM_REG_WRRTXGRPWEIGHT_0_RT_OFFSET 29423
4698 #define QM_REG_WRRTXGRPWEIGHT_1_RT_OFFSET 29424
4699 #define QM_REG_PQTX2PF_0_RT_OFFSET 29425
4700 #define QM_REG_PQTX2PF_1_RT_OFFSET 29426
4701 #define QM_REG_PQTX2PF_2_RT_OFFSET 29427
4702 #define QM_REG_PQTX2PF_3_RT_OFFSET 29428
4703 #define QM_REG_PQTX2PF_4_RT_OFFSET 29429
4704 #define QM_REG_PQTX2PF_5_RT_OFFSET 29430
4705 #define QM_REG_PQTX2PF_6_RT_OFFSET 29431
4706 #define QM_REG_PQTX2PF_7_RT_OFFSET 29432
4707 #define QM_REG_PQTX2PF_8_RT_OFFSET 29433
4708 #define QM_REG_PQTX2PF_9_RT_OFFSET 29434
4709 #define QM_REG_PQTX2PF_10_RT_OFFSET 29435
4710 #define QM_REG_PQTX2PF_11_RT_OFFSET 29436
4711 #define QM_REG_PQTX2PF_12_RT_OFFSET 29437
4712 #define QM_REG_PQTX2PF_13_RT_OFFSET 29438
4713 #define QM_REG_PQTX2PF_14_RT_OFFSET 29439
4714 #define QM_REG_PQTX2PF_15_RT_OFFSET 29440
4715 #define QM_REG_PQTX2PF_16_RT_OFFSET 29441
4716 #define QM_REG_PQTX2PF_17_RT_OFFSET 29442
4717 #define QM_REG_PQTX2PF_18_RT_OFFSET 29443
4718 #define QM_REG_PQTX2PF_19_RT_OFFSET 29444
4719 #define QM_REG_PQTX2PF_20_RT_OFFSET 29445
4720 #define QM_REG_PQTX2PF_21_RT_OFFSET 29446
4721 #define QM_REG_PQTX2PF_22_RT_OFFSET 29447
4722 #define QM_REG_PQTX2PF_23_RT_OFFSET 29448
4723 #define QM_REG_PQTX2PF_24_RT_OFFSET 29449
4724 #define QM_REG_PQTX2PF_25_RT_OFFSET 29450
4725 #define QM_REG_PQTX2PF_26_RT_OFFSET 29451
4726 #define QM_REG_PQTX2PF_27_RT_OFFSET 29452
4727 #define QM_REG_PQTX2PF_28_RT_OFFSET 29453
4728 #define QM_REG_PQTX2PF_29_RT_OFFSET 29454
4729 #define QM_REG_PQTX2PF_30_RT_OFFSET 29455
4730 #define QM_REG_PQTX2PF_31_RT_OFFSET 29456
4731 #define QM_REG_PQTX2PF_32_RT_OFFSET 29457
4732 #define QM_REG_PQTX2PF_33_RT_OFFSET 29458
4733 #define QM_REG_PQTX2PF_34_RT_OFFSET 29459
4734 #define QM_REG_PQTX2PF_35_RT_OFFSET 29460
4735 #define QM_REG_PQTX2PF_36_RT_OFFSET 29461
4736 #define QM_REG_PQTX2PF_37_RT_OFFSET 29462
4737 #define QM_REG_PQTX2PF_38_RT_OFFSET 29463
4738 #define QM_REG_PQTX2PF_39_RT_OFFSET 29464
4739 #define QM_REG_PQTX2PF_40_RT_OFFSET 29465
4740 #define QM_REG_PQTX2PF_41_RT_OFFSET 29466
4741 #define QM_REG_PQTX2PF_42_RT_OFFSET 29467
4742 #define QM_REG_PQTX2PF_43_RT_OFFSET 29468
4743 #define QM_REG_PQTX2PF_44_RT_OFFSET 29469
4744 #define QM_REG_PQTX2PF_45_RT_OFFSET 29470
4745 #define QM_REG_PQTX2PF_46_RT_OFFSET 29471
4746 #define QM_REG_PQTX2PF_47_RT_OFFSET 29472
4747 #define QM_REG_PQTX2PF_48_RT_OFFSET 29473
4748 #define QM_REG_PQTX2PF_49_RT_OFFSET 29474
4749 #define QM_REG_PQTX2PF_50_RT_OFFSET 29475
4750 #define QM_REG_PQTX2PF_51_RT_OFFSET 29476
4751 #define QM_REG_PQTX2PF_52_RT_OFFSET 29477
4752 #define QM_REG_PQTX2PF_53_RT_OFFSET 29478
4753 #define QM_REG_PQTX2PF_54_RT_OFFSET 29479
4754 #define QM_REG_PQTX2PF_55_RT_OFFSET 29480
4755 #define QM_REG_PQTX2PF_56_RT_OFFSET 29481
4756 #define QM_REG_PQTX2PF_57_RT_OFFSET 29482
4757 #define QM_REG_PQTX2PF_58_RT_OFFSET 29483
4758 #define QM_REG_PQTX2PF_59_RT_OFFSET 29484
4759 #define QM_REG_PQTX2PF_60_RT_OFFSET 29485
4760 #define QM_REG_PQTX2PF_61_RT_OFFSET 29486
4761 #define QM_REG_PQTX2PF_62_RT_OFFSET 29487
4762 #define QM_REG_PQTX2PF_63_RT_OFFSET 29488
4763 #define QM_REG_PQOTHER2PF_0_RT_OFFSET 29489
4764 #define QM_REG_PQOTHER2PF_1_RT_OFFSET 29490
4765 #define QM_REG_PQOTHER2PF_2_RT_OFFSET 29491
4766 #define QM_REG_PQOTHER2PF_3_RT_OFFSET 29492
4767 #define QM_REG_PQOTHER2PF_4_RT_OFFSET 29493
4768 #define QM_REG_PQOTHER2PF_5_RT_OFFSET 29494
4769 #define QM_REG_PQOTHER2PF_6_RT_OFFSET 29495
4770 #define QM_REG_PQOTHER2PF_7_RT_OFFSET 29496
4771 #define QM_REG_PQOTHER2PF_8_RT_OFFSET 29497
4772 #define QM_REG_PQOTHER2PF_9_RT_OFFSET 29498
4773 #define QM_REG_PQOTHER2PF_10_RT_OFFSET 29499
4774 #define QM_REG_PQOTHER2PF_11_RT_OFFSET 29500
4775 #define QM_REG_PQOTHER2PF_12_RT_OFFSET 29501
4776 #define QM_REG_PQOTHER2PF_13_RT_OFFSET 29502
4777 #define QM_REG_PQOTHER2PF_14_RT_OFFSET 29503
4778 #define QM_REG_PQOTHER2PF_15_RT_OFFSET 29504
4779 #define QM_REG_RLGLBLPERIOD_0_RT_OFFSET 29505
4780 #define QM_REG_RLGLBLPERIOD_1_RT_OFFSET 29506
4781 #define QM_REG_RLGLBLPERIODTIMER_0_RT_OFFSET 29507
4782 #define QM_REG_RLGLBLPERIODTIMER_1_RT_OFFSET 29508
4783 #define QM_REG_RLGLBLPERIODSEL_0_RT_OFFSET 29509
4784 #define QM_REG_RLGLBLPERIODSEL_1_RT_OFFSET 29510
4785 #define QM_REG_RLGLBLPERIODSEL_2_RT_OFFSET 29511
4786 #define QM_REG_RLGLBLPERIODSEL_3_RT_OFFSET 29512
4787 #define QM_REG_RLGLBLPERIODSEL_4_RT_OFFSET 29513
4788 #define QM_REG_RLGLBLPERIODSEL_5_RT_OFFSET 29514
4789 #define QM_REG_RLGLBLPERIODSEL_6_RT_OFFSET 29515
4790 #define QM_REG_RLGLBLPERIODSEL_7_RT_OFFSET 29516
4791 #define QM_REG_RLGLBLINCVAL_RT_OFFSET 29517
4792 #define QM_REG_RLGLBLINCVAL_RT_SIZE 256
4793 #define QM_REG_RLGLBLUPPERBOUND_RT_OFFSET 29773
4794 #define QM_REG_RLGLBLUPPERBOUND_RT_SIZE 256
4795 #define QM_REG_RLGLBLCRD_RT_OFFSET 30029
4796 #define QM_REG_RLGLBLCRD_RT_SIZE 256
4797 #define QM_REG_RLGLBLENABLE_RT_OFFSET 30285
4798 #define QM_REG_RLPFPERIOD_RT_OFFSET 30286
4799 #define QM_REG_RLPFPERIODTIMER_RT_OFFSET 30287
4800 #define QM_REG_RLPFINCVAL_RT_OFFSET 30288
4801 #define QM_REG_RLPFINCVAL_RT_SIZE 16
4802 #define QM_REG_RLPFUPPERBOUND_RT_OFFSET 30304
4803 #define QM_REG_RLPFUPPERBOUND_RT_SIZE 16
4804 #define QM_REG_RLPFCRD_RT_OFFSET 30320
4805 #define QM_REG_RLPFCRD_RT_SIZE 16
4806 #define QM_REG_RLPFENABLE_RT_OFFSET 30336
4807 #define QM_REG_RLPFVOQENABLE_RT_OFFSET 30337
4808 #define QM_REG_WFQPFWEIGHT_RT_OFFSET 30338
4809 #define QM_REG_WFQPFWEIGHT_RT_SIZE 16
4810 #define QM_REG_WFQPFUPPERBOUND_RT_OFFSET 30354
4811 #define QM_REG_WFQPFUPPERBOUND_RT_SIZE 16
4812 #define QM_REG_WFQPFCRD_RT_OFFSET 30370
4813 #define QM_REG_WFQPFCRD_RT_SIZE 160
4814 #define QM_REG_WFQPFENABLE_RT_OFFSET 30530
4815 #define QM_REG_WFQVPENABLE_RT_OFFSET 30531
4816 #define QM_REG_BASEADDRTXPQ_RT_OFFSET 30532
4817 #define QM_REG_BASEADDRTXPQ_RT_SIZE 512
4818 #define QM_REG_TXPQMAP_RT_OFFSET 31044
4819 #define QM_REG_TXPQMAP_RT_SIZE 512
4820 #define QM_REG_WFQVPWEIGHT_RT_OFFSET 31556
4821 #define QM_REG_WFQVPWEIGHT_RT_SIZE 512
4822 #define QM_REG_WFQVPCRD_RT_OFFSET 32068
4823 #define QM_REG_WFQVPCRD_RT_SIZE 512
4824 #define QM_REG_WFQVPMAP_RT_OFFSET 32580
4825 #define QM_REG_WFQVPMAP_RT_SIZE 512
4826 #define QM_REG_PTRTBLTX_RT_OFFSET 33092
4827 #define QM_REG_PTRTBLTX_RT_SIZE 1024
4828 #define QM_REG_WFQPFCRD_MSB_RT_OFFSET 34116
4829 #define QM_REG_WFQPFCRD_MSB_RT_SIZE 160
4830 #define NIG_REG_TAG_ETHERTYPE_0_RT_OFFSET 34276
4831 #define NIG_REG_BRB_GATE_DNTFWD_PORT_RT_OFFSET 34277
4832 #define NIG_REG_OUTER_TAG_VALUE_LIST0_RT_OFFSET 34278
4833 #define NIG_REG_OUTER_TAG_VALUE_LIST1_RT_OFFSET 34279
4834 #define NIG_REG_OUTER_TAG_VALUE_LIST2_RT_OFFSET 34280
4835 #define NIG_REG_OUTER_TAG_VALUE_LIST3_RT_OFFSET 34281
4836 #define NIG_REG_LLH_FUNC_TAGMAC_CLS_TYPE_RT_OFFSET 34282
4837 #define NIG_REG_LLH_FUNC_TAG_EN_RT_OFFSET 34283
4838 #define NIG_REG_LLH_FUNC_TAG_EN_RT_SIZE 4
4839 #define NIG_REG_LLH_FUNC_TAG_VALUE_RT_OFFSET 34287
4840 #define NIG_REG_LLH_FUNC_TAG_VALUE_RT_SIZE 4
4841 #define NIG_REG_LLH_FUNC_FILTER_VALUE_RT_OFFSET 34291
4842 #define NIG_REG_LLH_FUNC_FILTER_VALUE_RT_SIZE 32
4843 #define NIG_REG_LLH_FUNC_FILTER_EN_RT_OFFSET 34323
4844 #define NIG_REG_LLH_FUNC_FILTER_EN_RT_SIZE 16
4845 #define NIG_REG_LLH_FUNC_FILTER_MODE_RT_OFFSET 34339
4846 #define NIG_REG_LLH_FUNC_FILTER_MODE_RT_SIZE 16
4847 #define NIG_REG_LLH_FUNC_FILTER_PROTOCOL_TYPE_RT_OFFSET 34355
4848 #define NIG_REG_LLH_FUNC_FILTER_PROTOCOL_TYPE_RT_SIZE 16
4849 #define NIG_REG_LLH_FUNC_FILTER_HDR_SEL_RT_OFFSET 34371
4850 #define NIG_REG_LLH_FUNC_FILTER_HDR_SEL_RT_SIZE 16
4851 #define NIG_REG_TX_EDPM_CTRL_RT_OFFSET 34387
4852 #define NIG_REG_PPF_TO_ENGINE_SEL_RT_OFFSET 34388
4853 #define NIG_REG_PPF_TO_ENGINE_SEL_RT_SIZE 8
4854 #define CDU_REG_CID_ADDR_PARAMS_RT_OFFSET 34396
4855 #define CDU_REG_SEGMENT0_PARAMS_RT_OFFSET 34397
4856 #define CDU_REG_SEGMENT1_PARAMS_RT_OFFSET 34398
4857 #define CDU_REG_PF_SEG0_TYPE_OFFSET_RT_OFFSET 34399
4858 #define CDU_REG_PF_SEG1_TYPE_OFFSET_RT_OFFSET 34400
4859 #define CDU_REG_PF_SEG2_TYPE_OFFSET_RT_OFFSET 34401
4860 #define CDU_REG_PF_SEG3_TYPE_OFFSET_RT_OFFSET 34402
4861 #define CDU_REG_PF_FL_SEG0_TYPE_OFFSET_RT_OFFSET 34403
4862 #define CDU_REG_PF_FL_SEG1_TYPE_OFFSET_RT_OFFSET 34404
4863 #define CDU_REG_PF_FL_SEG2_TYPE_OFFSET_RT_OFFSET 34405
4864 #define CDU_REG_PF_FL_SEG3_TYPE_OFFSET_RT_OFFSET 34406
4865 #define CDU_REG_VF_SEG_TYPE_OFFSET_RT_OFFSET 34407
4866 #define CDU_REG_VF_FL_SEG_TYPE_OFFSET_RT_OFFSET 34408
4867 #define PBF_REG_TAG_ETHERTYPE_0_RT_OFFSET 34409
4868 #define PBF_REG_BTB_SHARED_AREA_SIZE_RT_OFFSET 34410
4869 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ0_RT_OFFSET 34411
4870 #define PBF_REG_BTB_GUARANTEED_VOQ0_RT_OFFSET 34412
4871 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ0_RT_OFFSET 34413
4872 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ1_RT_OFFSET 34414
4873 #define PBF_REG_BTB_GUARANTEED_VOQ1_RT_OFFSET 34415
4874 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ1_RT_OFFSET 34416
4875 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ2_RT_OFFSET 34417
4876 #define PBF_REG_BTB_GUARANTEED_VOQ2_RT_OFFSET 34418
4877 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ2_RT_OFFSET 34419
4878 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ3_RT_OFFSET 34420
4879 #define PBF_REG_BTB_GUARANTEED_VOQ3_RT_OFFSET 34421
4880 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ3_RT_OFFSET 34422
4881 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ4_RT_OFFSET 34423
4882 #define PBF_REG_BTB_GUARANTEED_VOQ4_RT_OFFSET 34424
4883 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ4_RT_OFFSET 34425
4884 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ5_RT_OFFSET 34426
4885 #define PBF_REG_BTB_GUARANTEED_VOQ5_RT_OFFSET 34427
4886 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ5_RT_OFFSET 34428
4887 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ6_RT_OFFSET 34429
4888 #define PBF_REG_BTB_GUARANTEED_VOQ6_RT_OFFSET 34430
4889 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ6_RT_OFFSET 34431
4890 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ7_RT_OFFSET 34432
4891 #define PBF_REG_BTB_GUARANTEED_VOQ7_RT_OFFSET 34433
4892 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ7_RT_OFFSET 34434
4893 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ8_RT_OFFSET 34435
4894 #define PBF_REG_BTB_GUARANTEED_VOQ8_RT_OFFSET 34436
4895 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ8_RT_OFFSET 34437
4896 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ9_RT_OFFSET 34438
4897 #define PBF_REG_BTB_GUARANTEED_VOQ9_RT_OFFSET 34439
4898 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ9_RT_OFFSET 34440
4899 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ10_RT_OFFSET 34441
4900 #define PBF_REG_BTB_GUARANTEED_VOQ10_RT_OFFSET 34442
4901 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ10_RT_OFFSET 34443
4902 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ11_RT_OFFSET 34444
4903 #define PBF_REG_BTB_GUARANTEED_VOQ11_RT_OFFSET 34445
4904 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ11_RT_OFFSET 34446
4905 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ12_RT_OFFSET 34447
4906 #define PBF_REG_BTB_GUARANTEED_VOQ12_RT_OFFSET 34448
4907 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ12_RT_OFFSET 34449
4908 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ13_RT_OFFSET 34450
4909 #define PBF_REG_BTB_GUARANTEED_VOQ13_RT_OFFSET 34451
4910 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ13_RT_OFFSET 34452
4911 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ14_RT_OFFSET 34453
4912 #define PBF_REG_BTB_GUARANTEED_VOQ14_RT_OFFSET 34454
4913 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ14_RT_OFFSET 34455
4914 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ15_RT_OFFSET 34456
4915 #define PBF_REG_BTB_GUARANTEED_VOQ15_RT_OFFSET 34457
4916 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ15_RT_OFFSET 34458
4917 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ16_RT_OFFSET 34459
4918 #define PBF_REG_BTB_GUARANTEED_VOQ16_RT_OFFSET 34460
4919 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ16_RT_OFFSET 34461
4920 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ17_RT_OFFSET 34462
4921 #define PBF_REG_BTB_GUARANTEED_VOQ17_RT_OFFSET 34463
4922 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ17_RT_OFFSET 34464
4923 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ18_RT_OFFSET 34465
4924 #define PBF_REG_BTB_GUARANTEED_VOQ18_RT_OFFSET 34466
4925 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ18_RT_OFFSET 34467
4926 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ19_RT_OFFSET 34468
4927 #define PBF_REG_BTB_GUARANTEED_VOQ19_RT_OFFSET 34469
4928 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ19_RT_OFFSET 34470
4929 #define XCM_REG_CON_PHY_Q3_RT_OFFSET 34471
4931 #define RUNTIME_ARRAY_SIZE 34472
4933 /* Init Callbacks */
4934 #define DMAE_READY_CB 0
4936 /* The eth storm context for the Tstorm */
4937 struct tstorm_eth_conn_st_ctx {
4941 /* The eth storm context for the Pstorm */
4942 struct pstorm_eth_conn_st_ctx {
4946 /* The eth storm context for the Xstorm */
4947 struct xstorm_eth_conn_st_ctx {
4948 __le32 reserved[60];
4951 struct e4_xstorm_eth_conn_ag_ctx {
4955 #define E4_XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
4956 #define E4_XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
4957 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED1_MASK 0x1
4958 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED1_SHIFT 1
4959 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED2_MASK 0x1
4960 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED2_SHIFT 2
4961 #define E4_XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
4962 #define E4_XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
4963 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED3_MASK 0x1
4964 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED3_SHIFT 4
4965 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED4_MASK 0x1
4966 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED4_SHIFT 5
4967 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED5_MASK 0x1
4968 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED5_SHIFT 6
4969 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED6_MASK 0x1
4970 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED6_SHIFT 7
4972 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED7_MASK 0x1
4973 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED7_SHIFT 0
4974 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED8_MASK 0x1
4975 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED8_SHIFT 1
4976 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED9_MASK 0x1
4977 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED9_SHIFT 2
4978 #define E4_XSTORM_ETH_CONN_AG_CTX_BIT11_MASK 0x1
4979 #define E4_XSTORM_ETH_CONN_AG_CTX_BIT11_SHIFT 3
4980 #define E4_XSTORM_ETH_CONN_AG_CTX_E5_RESERVED2_MASK 0x1
4981 #define E4_XSTORM_ETH_CONN_AG_CTX_E5_RESERVED2_SHIFT 4
4982 #define E4_XSTORM_ETH_CONN_AG_CTX_E5_RESERVED3_MASK 0x1
4983 #define E4_XSTORM_ETH_CONN_AG_CTX_E5_RESERVED3_SHIFT 5
4984 #define E4_XSTORM_ETH_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1
4985 #define E4_XSTORM_ETH_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6
4986 #define E4_XSTORM_ETH_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1
4987 #define E4_XSTORM_ETH_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7
4989 #define E4_XSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3
4990 #define E4_XSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 0
4991 #define E4_XSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3
4992 #define E4_XSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 2
4993 #define E4_XSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3
4994 #define E4_XSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 4
4995 #define E4_XSTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3
4996 #define E4_XSTORM_ETH_CONN_AG_CTX_CF3_SHIFT 6
4998 #define E4_XSTORM_ETH_CONN_AG_CTX_CF4_MASK 0x3
4999 #define E4_XSTORM_ETH_CONN_AG_CTX_CF4_SHIFT 0
5000 #define E4_XSTORM_ETH_CONN_AG_CTX_CF5_MASK 0x3
5001 #define E4_XSTORM_ETH_CONN_AG_CTX_CF5_SHIFT 2
5002 #define E4_XSTORM_ETH_CONN_AG_CTX_CF6_MASK 0x3
5003 #define E4_XSTORM_ETH_CONN_AG_CTX_CF6_SHIFT 4
5004 #define E4_XSTORM_ETH_CONN_AG_CTX_CF7_MASK 0x3
5005 #define E4_XSTORM_ETH_CONN_AG_CTX_CF7_SHIFT 6
5007 #define E4_XSTORM_ETH_CONN_AG_CTX_CF8_MASK 0x3
5008 #define E4_XSTORM_ETH_CONN_AG_CTX_CF8_SHIFT 0
5009 #define E4_XSTORM_ETH_CONN_AG_CTX_CF9_MASK 0x3
5010 #define E4_XSTORM_ETH_CONN_AG_CTX_CF9_SHIFT 2
5011 #define E4_XSTORM_ETH_CONN_AG_CTX_CF10_MASK 0x3
5012 #define E4_XSTORM_ETH_CONN_AG_CTX_CF10_SHIFT 4
5013 #define E4_XSTORM_ETH_CONN_AG_CTX_CF11_MASK 0x3
5014 #define E4_XSTORM_ETH_CONN_AG_CTX_CF11_SHIFT 6
5016 #define E4_XSTORM_ETH_CONN_AG_CTX_CF12_MASK 0x3
5017 #define E4_XSTORM_ETH_CONN_AG_CTX_CF12_SHIFT 0
5018 #define E4_XSTORM_ETH_CONN_AG_CTX_CF13_MASK 0x3
5019 #define E4_XSTORM_ETH_CONN_AG_CTX_CF13_SHIFT 2
5020 #define E4_XSTORM_ETH_CONN_AG_CTX_CF14_MASK 0x3
5021 #define E4_XSTORM_ETH_CONN_AG_CTX_CF14_SHIFT 4
5022 #define E4_XSTORM_ETH_CONN_AG_CTX_CF15_MASK 0x3
5023 #define E4_XSTORM_ETH_CONN_AG_CTX_CF15_SHIFT 6
5025 #define E4_XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_MASK 0x3
5026 #define E4_XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_SHIFT 0
5027 #define E4_XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_MASK 0x3
5028 #define E4_XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_SHIFT 2
5029 #define E4_XSTORM_ETH_CONN_AG_CTX_DQ_CF_MASK 0x3
5030 #define E4_XSTORM_ETH_CONN_AG_CTX_DQ_CF_SHIFT 4
5031 #define E4_XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_MASK 0x3
5032 #define E4_XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_SHIFT 6
5034 #define E4_XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_MASK 0x3
5035 #define E4_XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
5036 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED10_MASK 0x3
5037 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED10_SHIFT 2
5038 #define E4_XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_MASK 0x3
5039 #define E4_XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_SHIFT 4
5040 #define E4_XSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1
5041 #define E4_XSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 6
5042 #define E4_XSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1
5043 #define E4_XSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 7
5045 #define E4_XSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1
5046 #define E4_XSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 0
5047 #define E4_XSTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1
5048 #define E4_XSTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 1
5049 #define E4_XSTORM_ETH_CONN_AG_CTX_CF4EN_MASK 0x1
5050 #define E4_XSTORM_ETH_CONN_AG_CTX_CF4EN_SHIFT 2
5051 #define E4_XSTORM_ETH_CONN_AG_CTX_CF5EN_MASK 0x1
5052 #define E4_XSTORM_ETH_CONN_AG_CTX_CF5EN_SHIFT 3
5053 #define E4_XSTORM_ETH_CONN_AG_CTX_CF6EN_MASK 0x1
5054 #define E4_XSTORM_ETH_CONN_AG_CTX_CF6EN_SHIFT 4
5055 #define E4_XSTORM_ETH_CONN_AG_CTX_CF7EN_MASK 0x1
5056 #define E4_XSTORM_ETH_CONN_AG_CTX_CF7EN_SHIFT 5
5057 #define E4_XSTORM_ETH_CONN_AG_CTX_CF8EN_MASK 0x1
5058 #define E4_XSTORM_ETH_CONN_AG_CTX_CF8EN_SHIFT 6
5059 #define E4_XSTORM_ETH_CONN_AG_CTX_CF9EN_MASK 0x1
5060 #define E4_XSTORM_ETH_CONN_AG_CTX_CF9EN_SHIFT 7
5062 #define E4_XSTORM_ETH_CONN_AG_CTX_CF10EN_MASK 0x1
5063 #define E4_XSTORM_ETH_CONN_AG_CTX_CF10EN_SHIFT 0
5064 #define E4_XSTORM_ETH_CONN_AG_CTX_CF11EN_MASK 0x1
5065 #define E4_XSTORM_ETH_CONN_AG_CTX_CF11EN_SHIFT 1
5066 #define E4_XSTORM_ETH_CONN_AG_CTX_CF12EN_MASK 0x1
5067 #define E4_XSTORM_ETH_CONN_AG_CTX_CF12EN_SHIFT 2
5068 #define E4_XSTORM_ETH_CONN_AG_CTX_CF13EN_MASK 0x1
5069 #define E4_XSTORM_ETH_CONN_AG_CTX_CF13EN_SHIFT 3
5070 #define E4_XSTORM_ETH_CONN_AG_CTX_CF14EN_MASK 0x1
5071 #define E4_XSTORM_ETH_CONN_AG_CTX_CF14EN_SHIFT 4
5072 #define E4_XSTORM_ETH_CONN_AG_CTX_CF15EN_MASK 0x1
5073 #define E4_XSTORM_ETH_CONN_AG_CTX_CF15EN_SHIFT 5
5074 #define E4_XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_MASK 0x1
5075 #define E4_XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_SHIFT 6
5076 #define E4_XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_EN_MASK 0x1
5077 #define E4_XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_EN_SHIFT 7
5079 #define E4_XSTORM_ETH_CONN_AG_CTX_DQ_CF_EN_MASK 0x1
5080 #define E4_XSTORM_ETH_CONN_AG_CTX_DQ_CF_EN_SHIFT 0
5081 #define E4_XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1
5082 #define E4_XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1
5083 #define E4_XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1
5084 #define E4_XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2
5085 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED11_MASK 0x1
5086 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED11_SHIFT 3
5087 #define E4_XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
5088 #define E4_XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
5089 #define E4_XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_MASK 0x1
5090 #define E4_XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_SHIFT 5
5091 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED12_MASK 0x1
5092 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED12_SHIFT 6
5093 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED13_MASK 0x1
5094 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED13_SHIFT 7
5096 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED14_MASK 0x1
5097 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED14_SHIFT 0
5098 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED15_MASK 0x1
5099 #define E4_XSTORM_ETH_CONN_AG_CTX_RESERVED15_SHIFT 1
5100 #define E4_XSTORM_ETH_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1
5101 #define E4_XSTORM_ETH_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2
5102 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1
5103 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 3
5104 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE6EN_MASK 0x1
5105 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE6EN_SHIFT 4
5106 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1
5107 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 5
5108 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
5109 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
5110 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE9EN_MASK 0x1
5111 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE9EN_SHIFT 7
5113 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE10EN_MASK 0x1
5114 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE10EN_SHIFT 0
5115 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE11EN_MASK 0x1
5116 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE11EN_SHIFT 1
5117 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
5118 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
5119 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
5120 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
5121 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE14EN_MASK 0x1
5122 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE14EN_SHIFT 4
5123 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE15EN_MASK 0x1
5124 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE15EN_SHIFT 5
5125 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE16EN_MASK 0x1
5126 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE16EN_SHIFT 6
5127 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE17EN_MASK 0x1
5128 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE17EN_SHIFT 7
5130 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE18EN_MASK 0x1
5131 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE18EN_SHIFT 0
5132 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE19EN_MASK 0x1
5133 #define E4_XSTORM_ETH_CONN_AG_CTX_RULE19EN_SHIFT 1
5134 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
5135 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
5136 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
5137 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
5138 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
5139 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
5140 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
5141 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
5142 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
5143 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
5144 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
5145 #define E4_XSTORM_ETH_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
5147 #define E4_XSTORM_ETH_CONN_AG_CTX_EDPM_USE_EXT_HDR_MASK 0x1
5148 #define E4_XSTORM_ETH_CONN_AG_CTX_EDPM_USE_EXT_HDR_SHIFT 0
5149 #define E4_XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_MASK 0x1
5150 #define E4_XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_SHIFT 1
5151 #define E4_XSTORM_ETH_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_MASK 0x1
5152 #define E4_XSTORM_ETH_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_SHIFT 2
5153 #define E4_XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_MASK 0x1
5154 #define E4_XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_SHIFT 3
5155 #define E4_XSTORM_ETH_CONN_AG_CTX_L2_EDPM_ENABLE_MASK 0x1
5156 #define E4_XSTORM_ETH_CONN_AG_CTX_L2_EDPM_ENABLE_SHIFT 4
5157 #define E4_XSTORM_ETH_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1
5158 #define E4_XSTORM_ETH_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5
5159 #define E4_XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_MASK 0x3
5160 #define E4_XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_SHIFT 6
5163 __le16 e5_reserved1;
5164 __le16 edpm_num_bds;
5167 __le16 updated_qm_pq_id;
5214 /* The eth storm context for the Ystorm */
5215 struct ystorm_eth_conn_st_ctx {
5219 struct e4_ystorm_eth_conn_ag_ctx {
5223 #define E4_YSTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1
5224 #define E4_YSTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0
5225 #define E4_YSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1
5226 #define E4_YSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
5227 #define E4_YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_MASK 0x3
5228 #define E4_YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_SHIFT 2
5229 #define E4_YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_MASK 0x3
5230 #define E4_YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_SHIFT 4
5231 #define E4_YSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3
5232 #define E4_YSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6
5234 #define E4_YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_MASK 0x1
5235 #define E4_YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_SHIFT 0
5236 #define E4_YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_EN_MASK 0x1
5237 #define E4_YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_EN_SHIFT 1
5238 #define E4_YSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1
5239 #define E4_YSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2
5240 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1
5241 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 3
5242 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1
5243 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 4
5244 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1
5245 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 5
5246 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1
5247 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 6
5248 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1
5249 #define E4_YSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 7
5250 u8 tx_q0_int_coallecing_timeset;
5253 __le32 terminate_spqe;
5255 __le16 tx_bd_cons_upd;
5263 struct e4_tstorm_eth_conn_ag_ctx {
5267 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1
5268 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0
5269 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1
5270 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
5271 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT2_MASK 0x1
5272 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT2_SHIFT 2
5273 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT3_MASK 0x1
5274 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT3_SHIFT 3
5275 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT4_MASK 0x1
5276 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT4_SHIFT 4
5277 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT5_MASK 0x1
5278 #define E4_TSTORM_ETH_CONN_AG_CTX_BIT5_SHIFT 5
5279 #define E4_TSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3
5280 #define E4_TSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 6
5282 #define E4_TSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3
5283 #define E4_TSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 0
5284 #define E4_TSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3
5285 #define E4_TSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 2
5286 #define E4_TSTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3
5287 #define E4_TSTORM_ETH_CONN_AG_CTX_CF3_SHIFT 4
5288 #define E4_TSTORM_ETH_CONN_AG_CTX_CF4_MASK 0x3
5289 #define E4_TSTORM_ETH_CONN_AG_CTX_CF4_SHIFT 6
5291 #define E4_TSTORM_ETH_CONN_AG_CTX_CF5_MASK 0x3
5292 #define E4_TSTORM_ETH_CONN_AG_CTX_CF5_SHIFT 0
5293 #define E4_TSTORM_ETH_CONN_AG_CTX_CF6_MASK 0x3
5294 #define E4_TSTORM_ETH_CONN_AG_CTX_CF6_SHIFT 2
5295 #define E4_TSTORM_ETH_CONN_AG_CTX_CF7_MASK 0x3
5296 #define E4_TSTORM_ETH_CONN_AG_CTX_CF7_SHIFT 4
5297 #define E4_TSTORM_ETH_CONN_AG_CTX_CF8_MASK 0x3
5298 #define E4_TSTORM_ETH_CONN_AG_CTX_CF8_SHIFT 6
5300 #define E4_TSTORM_ETH_CONN_AG_CTX_CF9_MASK 0x3
5301 #define E4_TSTORM_ETH_CONN_AG_CTX_CF9_SHIFT 0
5302 #define E4_TSTORM_ETH_CONN_AG_CTX_CF10_MASK 0x3
5303 #define E4_TSTORM_ETH_CONN_AG_CTX_CF10_SHIFT 2
5304 #define E4_TSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1
5305 #define E4_TSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 4
5306 #define E4_TSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1
5307 #define E4_TSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 5
5308 #define E4_TSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1
5309 #define E4_TSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 6
5310 #define E4_TSTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1
5311 #define E4_TSTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 7
5313 #define E4_TSTORM_ETH_CONN_AG_CTX_CF4EN_MASK 0x1
5314 #define E4_TSTORM_ETH_CONN_AG_CTX_CF4EN_SHIFT 0
5315 #define E4_TSTORM_ETH_CONN_AG_CTX_CF5EN_MASK 0x1
5316 #define E4_TSTORM_ETH_CONN_AG_CTX_CF5EN_SHIFT 1
5317 #define E4_TSTORM_ETH_CONN_AG_CTX_CF6EN_MASK 0x1
5318 #define E4_TSTORM_ETH_CONN_AG_CTX_CF6EN_SHIFT 2
5319 #define E4_TSTORM_ETH_CONN_AG_CTX_CF7EN_MASK 0x1
5320 #define E4_TSTORM_ETH_CONN_AG_CTX_CF7EN_SHIFT 3
5321 #define E4_TSTORM_ETH_CONN_AG_CTX_CF8EN_MASK 0x1
5322 #define E4_TSTORM_ETH_CONN_AG_CTX_CF8EN_SHIFT 4
5323 #define E4_TSTORM_ETH_CONN_AG_CTX_CF9EN_MASK 0x1
5324 #define E4_TSTORM_ETH_CONN_AG_CTX_CF9EN_SHIFT 5
5325 #define E4_TSTORM_ETH_CONN_AG_CTX_CF10EN_MASK 0x1
5326 #define E4_TSTORM_ETH_CONN_AG_CTX_CF10EN_SHIFT 6
5327 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1
5328 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 7
5330 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1
5331 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 0
5332 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1
5333 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 1
5334 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1
5335 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 2
5336 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1
5337 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 3
5338 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1
5339 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 4
5340 #define E4_TSTORM_ETH_CONN_AG_CTX_RX_BD_EN_MASK 0x1
5341 #define E4_TSTORM_ETH_CONN_AG_CTX_RX_BD_EN_SHIFT 5
5342 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1
5343 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 6
5344 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE8EN_MASK 0x1
5345 #define E4_TSTORM_ETH_CONN_AG_CTX_RULE8EN_SHIFT 7
5367 struct e4_ustorm_eth_conn_ag_ctx {
5371 #define E4_USTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1
5372 #define E4_USTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0
5373 #define E4_USTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1
5374 #define E4_USTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
5375 #define E4_USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_MASK 0x3
5376 #define E4_USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_SHIFT 2
5377 #define E4_USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_MASK 0x3
5378 #define E4_USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_SHIFT 4
5379 #define E4_USTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3
5380 #define E4_USTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6
5382 #define E4_USTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3
5383 #define E4_USTORM_ETH_CONN_AG_CTX_CF3_SHIFT 0
5384 #define E4_USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_MASK 0x3
5385 #define E4_USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_SHIFT 2
5386 #define E4_USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_MASK 0x3
5387 #define E4_USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_SHIFT 4
5388 #define E4_USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_MASK 0x3
5389 #define E4_USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_SHIFT 6
5391 #define E4_USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_EN_MASK 0x1
5392 #define E4_USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_EN_SHIFT 0
5393 #define E4_USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_EN_MASK 0x1
5394 #define E4_USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_EN_SHIFT 1
5395 #define E4_USTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1
5396 #define E4_USTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2
5397 #define E4_USTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1
5398 #define E4_USTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 3
5399 #define E4_USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_EN_MASK 0x1
5400 #define E4_USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_EN_SHIFT 4
5401 #define E4_USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_EN_MASK 0x1
5402 #define E4_USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_EN_SHIFT 5
5403 #define E4_USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_MASK 0x1
5404 #define E4_USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_SHIFT 6
5405 #define E4_USTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1
5406 #define E4_USTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 7
5408 #define E4_USTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1
5409 #define E4_USTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 0
5410 #define E4_USTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1
5411 #define E4_USTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 1
5412 #define E4_USTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1
5413 #define E4_USTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 2
5414 #define E4_USTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1
5415 #define E4_USTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 3
5416 #define E4_USTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1
5417 #define E4_USTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 4
5418 #define E4_USTORM_ETH_CONN_AG_CTX_RULE6EN_MASK 0x1
5419 #define E4_USTORM_ETH_CONN_AG_CTX_RULE6EN_SHIFT 5
5420 #define E4_USTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1
5421 #define E4_USTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 6
5422 #define E4_USTORM_ETH_CONN_AG_CTX_RULE8EN_MASK 0x1
5423 #define E4_USTORM_ETH_CONN_AG_CTX_RULE8EN_SHIFT 7
5431 __le32 tx_int_coallecing_timeset;
5432 __le16 tx_drv_bd_cons;
5433 __le16 rx_drv_cqe_cons;
5436 /* The eth storm context for the Ustorm */
5437 struct ustorm_eth_conn_st_ctx {
5438 __le32 reserved[40];
5441 /* The eth storm context for the Mstorm */
5442 struct mstorm_eth_conn_st_ctx {
5446 /* eth connection context */
5447 struct e4_eth_conn_context {
5448 struct tstorm_eth_conn_st_ctx tstorm_st_context;
5449 struct regpair tstorm_st_padding[2];
5450 struct pstorm_eth_conn_st_ctx pstorm_st_context;
5451 struct xstorm_eth_conn_st_ctx xstorm_st_context;
5452 struct e4_xstorm_eth_conn_ag_ctx xstorm_ag_context;
5453 struct e4_tstorm_eth_conn_ag_ctx tstorm_ag_context;
5454 struct ystorm_eth_conn_st_ctx ystorm_st_context;
5455 struct e4_ystorm_eth_conn_ag_ctx ystorm_ag_context;
5456 struct e4_ustorm_eth_conn_ag_ctx ustorm_ag_context;
5457 struct ustorm_eth_conn_st_ctx ustorm_st_context;
5458 struct mstorm_eth_conn_st_ctx mstorm_st_context;
5461 /* Ethernet filter types: mac/vlan/pair */
5462 enum eth_error_code {
5464 ETH_FILTERS_MAC_ADD_FAIL_FULL,
5465 ETH_FILTERS_MAC_ADD_FAIL_FULL_MTT2,
5466 ETH_FILTERS_MAC_ADD_FAIL_DUP_MTT2,
5467 ETH_FILTERS_MAC_ADD_FAIL_DUP_STT2,
5468 ETH_FILTERS_MAC_DEL_FAIL_NOF,
5469 ETH_FILTERS_MAC_DEL_FAIL_NOF_MTT2,
5470 ETH_FILTERS_MAC_DEL_FAIL_NOF_STT2,
5471 ETH_FILTERS_MAC_ADD_FAIL_ZERO_MAC,
5472 ETH_FILTERS_VLAN_ADD_FAIL_FULL,
5473 ETH_FILTERS_VLAN_ADD_FAIL_DUP,
5474 ETH_FILTERS_VLAN_DEL_FAIL_NOF,
5475 ETH_FILTERS_VLAN_DEL_FAIL_NOF_TT1,
5476 ETH_FILTERS_PAIR_ADD_FAIL_DUP,
5477 ETH_FILTERS_PAIR_ADD_FAIL_FULL,
5478 ETH_FILTERS_PAIR_ADD_FAIL_FULL_MAC,
5479 ETH_FILTERS_PAIR_DEL_FAIL_NOF,
5480 ETH_FILTERS_PAIR_DEL_FAIL_NOF_TT1,
5481 ETH_FILTERS_PAIR_ADD_FAIL_ZERO_MAC,
5482 ETH_FILTERS_VNI_ADD_FAIL_FULL,
5483 ETH_FILTERS_VNI_ADD_FAIL_DUP,
5484 ETH_FILTERS_GFT_UPDATE_FAIL,
5485 ETH_RX_QUEUE_FAIL_LOAD_VF_DATA,
5486 ETH_FILTERS_GFS_ADD_FILTER_FAIL_MAX_HOPS,
5487 ETH_FILTERS_GFS_ADD_FILTER_FAIL_NO_FREE_ENRTY,
5488 ETH_FILTERS_GFS_ADD_FILTER_FAIL_ALREADY_EXISTS,
5489 ETH_FILTERS_GFS_ADD_FILTER_FAIL_PCI_ERROR,
5490 ETH_FILTERS_GFS_ADD_FINLER_FAIL_MAGIC_NUM_ERROR,
5491 ETH_FILTERS_GFS_DEL_FILTER_FAIL_MAX_HOPS,
5492 ETH_FILTERS_GFS_DEL_FILTER_FAIL_NO_MATCH_ENRTY,
5493 ETH_FILTERS_GFS_DEL_FILTER_FAIL_PCI_ERROR,
5494 ETH_FILTERS_GFS_DEL_FILTER_FAIL_MAGIC_NUM_ERROR,
5498 /* Opcodes for the event ring */
5499 enum eth_event_opcode {
5501 ETH_EVENT_VPORT_START,
5502 ETH_EVENT_VPORT_UPDATE,
5503 ETH_EVENT_VPORT_STOP,
5504 ETH_EVENT_TX_QUEUE_START,
5505 ETH_EVENT_TX_QUEUE_STOP,
5506 ETH_EVENT_RX_QUEUE_START,
5507 ETH_EVENT_RX_QUEUE_UPDATE,
5508 ETH_EVENT_RX_QUEUE_STOP,
5509 ETH_EVENT_FILTERS_UPDATE,
5510 ETH_EVENT_RX_ADD_OPENFLOW_FILTER,
5511 ETH_EVENT_RX_DELETE_OPENFLOW_FILTER,
5512 ETH_EVENT_RX_CREATE_OPENFLOW_ACTION,
5513 ETH_EVENT_RX_ADD_UDP_FILTER,
5514 ETH_EVENT_RX_DELETE_UDP_FILTER,
5515 ETH_EVENT_RX_CREATE_GFT_ACTION,
5516 ETH_EVENT_RX_GFT_UPDATE_FILTER,
5517 ETH_EVENT_TX_QUEUE_UPDATE,
5518 ETH_EVENT_RGFS_ADD_FILTER,
5519 ETH_EVENT_RGFS_DEL_FILTER,
5520 ETH_EVENT_TGFS_ADD_FILTER,
5521 ETH_EVENT_TGFS_DEL_FILTER,
5522 ETH_EVENT_GFS_COUNTERS_REPORT_REQUEST,
5523 MAX_ETH_EVENT_OPCODE
5526 /* Classify rule types in E2/E3 */
5527 enum eth_filter_action {
5528 ETH_FILTER_ACTION_UNUSED,
5529 ETH_FILTER_ACTION_REMOVE,
5530 ETH_FILTER_ACTION_ADD,
5531 ETH_FILTER_ACTION_REMOVE_ALL,
5532 MAX_ETH_FILTER_ACTION
5535 /* Command for adding/removing a classification rule $$KEEP_ENDIANNESS$$ */
5536 struct eth_filter_cmd {
5548 /* $$KEEP_ENDIANNESS$$ */
5549 struct eth_filter_cmd_header {
5557 /* Ethernet filter types: mac/vlan/pair */
5558 enum eth_filter_type {
5559 ETH_FILTER_TYPE_UNUSED,
5560 ETH_FILTER_TYPE_MAC,
5561 ETH_FILTER_TYPE_VLAN,
5562 ETH_FILTER_TYPE_PAIR,
5563 ETH_FILTER_TYPE_INNER_MAC,
5564 ETH_FILTER_TYPE_INNER_VLAN,
5565 ETH_FILTER_TYPE_INNER_PAIR,
5566 ETH_FILTER_TYPE_INNER_MAC_VNI_PAIR,
5567 ETH_FILTER_TYPE_MAC_VNI_PAIR,
5568 ETH_FILTER_TYPE_VNI,
5572 /* inner to inner vlan priority translation configurations */
5573 struct eth_in_to_in_pri_map_cfg {
5574 u8 inner_vlan_pri_remap_en;
5576 u8 non_rdma_in_to_in_pri_map[8];
5577 u8 rdma_in_to_in_pri_map[8];
5580 /* Eth IPv4 Fragment Type */
5581 enum eth_ipv4_frag_type {
5583 ETH_IPV4_FIRST_FRAG,
5584 ETH_IPV4_NON_FIRST_FRAG,
5585 MAX_ETH_IPV4_FRAG_TYPE
5588 /* eth IPv4 Fragment Type */
5595 /* Ethernet Ramrod Command IDs */
5596 enum eth_ramrod_cmd_id {
5598 ETH_RAMROD_VPORT_START,
5599 ETH_RAMROD_VPORT_UPDATE,
5600 ETH_RAMROD_VPORT_STOP,
5601 ETH_RAMROD_RX_QUEUE_START,
5602 ETH_RAMROD_RX_QUEUE_STOP,
5603 ETH_RAMROD_TX_QUEUE_START,
5604 ETH_RAMROD_TX_QUEUE_STOP,
5605 ETH_RAMROD_FILTERS_UPDATE,
5606 ETH_RAMROD_RX_QUEUE_UPDATE,
5607 ETH_RAMROD_RX_CREATE_OPENFLOW_ACTION,
5608 ETH_RAMROD_RX_ADD_OPENFLOW_FILTER,
5609 ETH_RAMROD_RX_DELETE_OPENFLOW_FILTER,
5610 ETH_RAMROD_RX_ADD_UDP_FILTER,
5611 ETH_RAMROD_RX_DELETE_UDP_FILTER,
5612 ETH_RAMROD_RX_CREATE_GFT_ACTION,
5613 ETH_RAMROD_GFT_UPDATE_FILTER,
5614 ETH_RAMROD_TX_QUEUE_UPDATE,
5615 ETH_RAMROD_RGFS_FILTER_ADD,
5616 ETH_RAMROD_RGFS_FILTER_DEL,
5617 ETH_RAMROD_TGFS_FILTER_ADD,
5618 ETH_RAMROD_TGFS_FILTER_DEL,
5619 ETH_RAMROD_GFS_COUNTERS_REPORT_REQUEST,
5620 MAX_ETH_RAMROD_CMD_ID
5623 /* Return code from eth sp ramrods */
5624 struct eth_return_code {
5626 #define ETH_RETURN_CODE_ERR_CODE_MASK 0x3F
5627 #define ETH_RETURN_CODE_ERR_CODE_SHIFT 0
5628 #define ETH_RETURN_CODE_RESERVED_MASK 0x1
5629 #define ETH_RETURN_CODE_RESERVED_SHIFT 6
5630 #define ETH_RETURN_CODE_RX_TX_MASK 0x1
5631 #define ETH_RETURN_CODE_RX_TX_SHIFT 7
5634 /* tx destination enum */
5635 enum eth_tx_dst_mode_config_enum {
5636 ETH_TX_DST_MODE_CONFIG_DISABLE,
5637 ETH_TX_DST_MODE_CONFIG_FORWARD_DATA_IN_BD,
5638 ETH_TX_DST_MODE_CONFIG_FORWARD_DATA_IN_VPORT,
5639 MAX_ETH_TX_DST_MODE_CONFIG_ENUM
5642 /* What to do in case an error occurs */
5645 ETH_TX_ERR_ASSERT_MALICIOUS,
5649 /* Array of the different error type behaviors */
5650 struct eth_tx_err_vals {
5652 #define ETH_TX_ERR_VALS_ILLEGAL_VLAN_MODE_MASK 0x1
5653 #define ETH_TX_ERR_VALS_ILLEGAL_VLAN_MODE_SHIFT 0
5654 #define ETH_TX_ERR_VALS_PACKET_TOO_SMALL_MASK 0x1
5655 #define ETH_TX_ERR_VALS_PACKET_TOO_SMALL_SHIFT 1
5656 #define ETH_TX_ERR_VALS_ANTI_SPOOFING_ERR_MASK 0x1
5657 #define ETH_TX_ERR_VALS_ANTI_SPOOFING_ERR_SHIFT 2
5658 #define ETH_TX_ERR_VALS_ILLEGAL_INBAND_TAGS_MASK 0x1
5659 #define ETH_TX_ERR_VALS_ILLEGAL_INBAND_TAGS_SHIFT 3
5660 #define ETH_TX_ERR_VALS_VLAN_INSERTION_W_INBAND_TAG_MASK 0x1
5661 #define ETH_TX_ERR_VALS_VLAN_INSERTION_W_INBAND_TAG_SHIFT 4
5662 #define ETH_TX_ERR_VALS_MTU_VIOLATION_MASK 0x1
5663 #define ETH_TX_ERR_VALS_MTU_VIOLATION_SHIFT 5
5664 #define ETH_TX_ERR_VALS_ILLEGAL_CONTROL_FRAME_MASK 0x1
5665 #define ETH_TX_ERR_VALS_ILLEGAL_CONTROL_FRAME_SHIFT 6
5666 #define ETH_TX_ERR_VALS_ILLEGAL_BD_FLAGS_MASK 0x1
5667 #define ETH_TX_ERR_VALS_ILLEGAL_BD_FLAGS_SHIFT 7
5668 #define ETH_TX_ERR_VALS_RESERVED_MASK 0xFF
5669 #define ETH_TX_ERR_VALS_RESERVED_SHIFT 8
5672 /* vport rss configuration data */
5673 struct eth_vport_rss_config {
5674 __le16 capabilities;
5675 #define ETH_VPORT_RSS_CONFIG_IPV4_CAPABILITY_MASK 0x1
5676 #define ETH_VPORT_RSS_CONFIG_IPV4_CAPABILITY_SHIFT 0
5677 #define ETH_VPORT_RSS_CONFIG_IPV6_CAPABILITY_MASK 0x1
5678 #define ETH_VPORT_RSS_CONFIG_IPV6_CAPABILITY_SHIFT 1
5679 #define ETH_VPORT_RSS_CONFIG_IPV4_TCP_CAPABILITY_MASK 0x1
5680 #define ETH_VPORT_RSS_CONFIG_IPV4_TCP_CAPABILITY_SHIFT 2
5681 #define ETH_VPORT_RSS_CONFIG_IPV6_TCP_CAPABILITY_MASK 0x1
5682 #define ETH_VPORT_RSS_CONFIG_IPV6_TCP_CAPABILITY_SHIFT 3
5683 #define ETH_VPORT_RSS_CONFIG_IPV4_UDP_CAPABILITY_MASK 0x1
5684 #define ETH_VPORT_RSS_CONFIG_IPV4_UDP_CAPABILITY_SHIFT 4
5685 #define ETH_VPORT_RSS_CONFIG_IPV6_UDP_CAPABILITY_MASK 0x1
5686 #define ETH_VPORT_RSS_CONFIG_IPV6_UDP_CAPABILITY_SHIFT 5
5687 #define ETH_VPORT_RSS_CONFIG_EN_5_TUPLE_CAPABILITY_MASK 0x1
5688 #define ETH_VPORT_RSS_CONFIG_EN_5_TUPLE_CAPABILITY_SHIFT 6
5689 #define ETH_VPORT_RSS_CONFIG_RESERVED0_MASK 0x1FF
5690 #define ETH_VPORT_RSS_CONFIG_RESERVED0_SHIFT 7
5694 u8 update_rss_ind_table;
5695 u8 update_rss_capabilities;
5697 __le32 reserved2[2];
5698 __le16 indirection_table[ETH_RSS_IND_TABLE_ENTRIES_NUM];
5699 __le32 rss_key[ETH_RSS_KEY_SIZE_REGS];
5700 __le32 reserved3[2];
5703 /* eth vport RSS mode */
5704 enum eth_vport_rss_mode {
5705 ETH_VPORT_RSS_MODE_DISABLED,
5706 ETH_VPORT_RSS_MODE_REGULAR,
5707 MAX_ETH_VPORT_RSS_MODE
5710 /* Command for setting classification flags for a vport $$KEEP_ENDIANNESS$$ */
5711 struct eth_vport_rx_mode {
5713 #define ETH_VPORT_RX_MODE_UCAST_DROP_ALL_MASK 0x1
5714 #define ETH_VPORT_RX_MODE_UCAST_DROP_ALL_SHIFT 0
5715 #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_ALL_MASK 0x1
5716 #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_ALL_SHIFT 1
5717 #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_UNMATCHED_MASK 0x1
5718 #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_UNMATCHED_SHIFT 2
5719 #define ETH_VPORT_RX_MODE_MCAST_DROP_ALL_MASK 0x1
5720 #define ETH_VPORT_RX_MODE_MCAST_DROP_ALL_SHIFT 3
5721 #define ETH_VPORT_RX_MODE_MCAST_ACCEPT_ALL_MASK 0x1
5722 #define ETH_VPORT_RX_MODE_MCAST_ACCEPT_ALL_SHIFT 4
5723 #define ETH_VPORT_RX_MODE_BCAST_ACCEPT_ALL_MASK 0x1
5724 #define ETH_VPORT_RX_MODE_BCAST_ACCEPT_ALL_SHIFT 5
5725 #define ETH_VPORT_RX_MODE_ACCEPT_ANY_VNI_MASK 0x1
5726 #define ETH_VPORT_RX_MODE_ACCEPT_ANY_VNI_SHIFT 6
5727 #define ETH_VPORT_RX_MODE_RESERVED1_MASK 0x1FF
5728 #define ETH_VPORT_RX_MODE_RESERVED1_SHIFT 7
5731 /* Command for setting tpa parameters */
5732 struct eth_vport_tpa_param {
5735 u8 tpa_ipv4_tunn_en_flg;
5736 u8 tpa_ipv6_tunn_en_flg;
5737 u8 tpa_pkt_split_flg;
5738 u8 tpa_hdr_data_split_flg;
5739 u8 tpa_gro_consistent_flg;
5741 u8 tpa_max_aggs_num;
5743 __le16 tpa_max_size;
5744 __le16 tpa_min_size_to_start;
5746 __le16 tpa_min_size_to_cont;
5751 /* Command for setting classification flags for a vport $$KEEP_ENDIANNESS$$ */
5752 struct eth_vport_tx_mode {
5754 #define ETH_VPORT_TX_MODE_UCAST_DROP_ALL_MASK 0x1
5755 #define ETH_VPORT_TX_MODE_UCAST_DROP_ALL_SHIFT 0
5756 #define ETH_VPORT_TX_MODE_UCAST_ACCEPT_ALL_MASK 0x1
5757 #define ETH_VPORT_TX_MODE_UCAST_ACCEPT_ALL_SHIFT 1
5758 #define ETH_VPORT_TX_MODE_MCAST_DROP_ALL_MASK 0x1
5759 #define ETH_VPORT_TX_MODE_MCAST_DROP_ALL_SHIFT 2
5760 #define ETH_VPORT_TX_MODE_MCAST_ACCEPT_ALL_MASK 0x1
5761 #define ETH_VPORT_TX_MODE_MCAST_ACCEPT_ALL_SHIFT 3
5762 #define ETH_VPORT_TX_MODE_BCAST_ACCEPT_ALL_MASK 0x1
5763 #define ETH_VPORT_TX_MODE_BCAST_ACCEPT_ALL_SHIFT 4
5764 #define ETH_VPORT_TX_MODE_RESERVED1_MASK 0x7FF
5765 #define ETH_VPORT_TX_MODE_RESERVED1_SHIFT 5
5768 /* GFT filter update action type */
5769 enum gft_filter_update_action {
5772 MAX_GFT_FILTER_UPDATE_ACTION
5775 /* Ramrod data for rx add openflow filter */
5776 struct rx_add_openflow_filter_data {
5792 u8 tenant_id_exists;
5793 __le32 ipv4_dst_addr;
5794 __le32 ipv4_src_addr;
5799 /* Ramrod data for rx create gft action */
5800 struct rx_create_gft_action_data {
5805 /* Ramrod data for rx create openflow action */
5806 struct rx_create_openflow_action_data {
5811 /* Ramrod data for rx queue start ramrod */
5812 struct rx_queue_start_ramrod_data {
5814 __le16 num_of_pbl_pages;
5815 __le16 bd_max_bytes;
5819 u8 default_rss_queue_flg;
5820 u8 complete_cqe_flg;
5821 u8 complete_event_flg;
5822 u8 stats_counter_id;
5824 u8 pxp_tph_valid_bd;
5825 u8 pxp_tph_valid_pkt;
5828 __le16 pxp_st_index;
5834 u8 vf_rx_prod_index;
5835 u8 vf_rx_prod_use_zone_a;
5838 struct regpair cqe_pbl_addr;
5839 struct regpair bd_base;
5840 struct regpair reserved2;
5843 /* Ramrod data for rx queue stop ramrod */
5844 struct rx_queue_stop_ramrod_data {
5846 u8 complete_cqe_flg;
5847 u8 complete_event_flg;
5852 /* Ramrod data for rx queue update ramrod */
5853 struct rx_queue_update_ramrod_data {
5855 u8 complete_cqe_flg;
5856 u8 complete_event_flg;
5858 u8 set_default_rss_queue;
5865 struct regpair reserved6;
5868 /* Ramrod data for rx Add UDP Filter */
5869 struct rx_udp_filter_data {
5873 u8 tenant_id_exists;
5875 __le32 ip_dst_addr[4];
5876 __le32 ip_src_addr[4];
5877 __le16 udp_dst_port;
5878 __le16 udp_src_port;
5882 /* Add or delete GFT filter - filter is packet header of type of packet wished
5883 * to pass certain FW flow.
5885 struct rx_update_gft_filter_data {
5886 struct regpair pkt_hdr_addr;
5887 __le16 pkt_hdr_length;
5892 u8 action_icid_valid;
5897 u8 inner_vlan_removal_en;
5900 /* Ramrod data for tx queue start ramrod */
5901 struct tx_queue_start_ramrod_data {
5906 u8 stats_counter_id;
5909 #define TX_QUEUE_START_RAMROD_DATA_DISABLE_OPPORTUNISTIC_MASK 0x1
5910 #define TX_QUEUE_START_RAMROD_DATA_DISABLE_OPPORTUNISTIC_SHIFT 0
5911 #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_PKT_DUP_MASK 0x1
5912 #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_PKT_DUP_SHIFT 1
5913 #define TX_QUEUE_START_RAMROD_DATA_PMD_MODE_MASK 0x1
5914 #define TX_QUEUE_START_RAMROD_DATA_PMD_MODE_SHIFT 2
5915 #define TX_QUEUE_START_RAMROD_DATA_NOTIFY_EN_MASK 0x1
5916 #define TX_QUEUE_START_RAMROD_DATA_NOTIFY_EN_SHIFT 3
5917 #define TX_QUEUE_START_RAMROD_DATA_PIN_CONTEXT_MASK 0x1
5918 #define TX_QUEUE_START_RAMROD_DATA_PIN_CONTEXT_SHIFT 4
5919 #define TX_QUEUE_START_RAMROD_DATA_RESERVED1_MASK 0x7
5920 #define TX_QUEUE_START_RAMROD_DATA_RESERVED1_SHIFT 5
5922 u8 pxp_tph_valid_bd;
5923 u8 pxp_tph_valid_pkt;
5924 __le16 pxp_st_index;
5925 __le16 comp_agg_size;
5926 __le16 queue_zone_id;
5930 __le16 same_as_last_id;
5932 struct regpair pbl_base_addr;
5933 struct regpair bd_cons_address;
5936 /* Ramrod data for tx queue stop ramrod */
5937 struct tx_queue_stop_ramrod_data {
5941 /* Ramrod data for tx queue update ramrod */
5942 struct tx_queue_update_ramrod_data {
5943 __le16 update_qm_pq_id_flg;
5946 struct regpair reserved1[5];
5949 /* Inner to Inner VLAN priority map update mode */
5950 enum update_in_to_in_pri_map_mode_enum {
5951 ETH_IN_TO_IN_PRI_MAP_UPDATE_DISABLED,
5952 ETH_IN_TO_IN_PRI_MAP_UPDATE_NON_RDMA_TBL,
5953 ETH_IN_TO_IN_PRI_MAP_UPDATE_RDMA_TBL,
5954 MAX_UPDATE_IN_TO_IN_PRI_MAP_MODE_ENUM
5957 /* Ramrod data for vport update ramrod */
5958 struct vport_filter_update_ramrod_data {
5959 struct eth_filter_cmd_header filter_cmd_hdr;
5960 struct eth_filter_cmd filter_cmds[ETH_FILTER_RULES_COUNT];
5963 /* Ramrod data for vport start ramrod */
5964 struct vport_start_ramrod_data {
5969 u8 inner_vlan_removal_en;
5970 struct eth_vport_rx_mode rx_mode;
5971 struct eth_vport_tx_mode tx_mode;
5972 struct eth_vport_tpa_param tpa_param;
5973 __le16 default_vlan;
5975 u8 anti_spoofing_en;
5978 u8 silent_vlan_removal_en;
5980 struct eth_tx_err_vals tx_err_behav;
5981 u8 zero_placement_offset;
5982 u8 ctl_frame_mac_check_en;
5983 u8 ctl_frame_ethtype_check_en;
5986 u8 tx_dst_port_mode_config;
5988 u8 tx_dst_port_mode;
5989 u8 dst_vport_id_valid;
5990 u8 wipe_inner_vlan_pri_en;
5992 struct eth_in_to_in_pri_map_cfg in_to_in_vlan_pri_map_cfg;
5995 /* Ramrod data for vport stop ramrod */
5996 struct vport_stop_ramrod_data {
6001 /* Ramrod data for vport update ramrod */
6002 struct vport_update_ramrod_data_cmn {
6004 u8 update_rx_active_flg;
6006 u8 update_tx_active_flg;
6008 u8 update_rx_mode_flg;
6009 u8 update_tx_mode_flg;
6010 u8 update_approx_mcast_flg;
6013 u8 update_inner_vlan_removal_en_flg;
6015 u8 inner_vlan_removal_en;
6016 u8 update_tpa_param_flg;
6017 u8 update_tpa_en_flg;
6018 u8 update_tx_switching_en_flg;
6021 u8 update_anti_spoofing_en_flg;
6023 u8 anti_spoofing_en;
6024 u8 update_handle_ptp_pkts;
6027 u8 update_default_vlan_en_flg;
6031 u8 update_default_vlan_flg;
6033 __le16 default_vlan;
6034 u8 update_accept_any_vlan_flg;
6037 u8 silent_vlan_removal_en;
6041 u8 update_ctl_frame_checks_en_flg;
6042 u8 ctl_frame_mac_check_en;
6043 u8 ctl_frame_ethtype_check_en;
6044 u8 update_in_to_in_pri_map_mode;
6045 u8 in_to_in_pri_map[8];
6049 struct vport_update_ramrod_mcast {
6050 __le32 bins[ETH_MULTICAST_MAC_BINS_IN_REGS];
6053 /* Ramrod data for vport update ramrod */
6054 struct vport_update_ramrod_data {
6055 struct vport_update_ramrod_data_cmn common;
6057 struct eth_vport_rx_mode rx_mode;
6058 struct eth_vport_tx_mode tx_mode;
6060 struct eth_vport_tpa_param tpa_param;
6061 struct vport_update_ramrod_mcast approx_mcast;
6062 struct eth_vport_rss_config rss_config;
6065 struct e4_xstorm_eth_conn_ag_ctx_dq_ext_ldpart {
6069 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EXIST_IN_QM0_MASK 0x1
6070 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EXIST_IN_QM0_SHIFT 0
6071 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED1_MASK 0x1
6072 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED1_SHIFT 1
6073 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED2_MASK 0x1
6074 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED2_SHIFT 2
6075 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EXIST_IN_QM3_MASK 0x1
6076 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EXIST_IN_QM3_SHIFT 3
6077 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED3_MASK 0x1
6078 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED3_SHIFT 4
6079 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED4_MASK 0x1
6080 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED4_SHIFT 5
6081 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED5_MASK 0x1
6082 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED5_SHIFT 6
6083 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED6_MASK 0x1
6084 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED6_SHIFT 7
6086 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED7_MASK 0x1
6087 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED7_SHIFT 0
6088 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED8_MASK 0x1
6089 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED8_SHIFT 1
6090 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED9_MASK 0x1
6091 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED9_SHIFT 2
6092 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_BIT11_MASK 0x1
6093 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_BIT11_SHIFT 3
6094 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_E5_RESERVED2_MASK 0x1
6095 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_E5_RESERVED2_SHIFT 4
6096 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_E5_RESERVED3_MASK 0x1
6097 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_E5_RESERVED3_SHIFT 5
6098 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TX_RULE_ACTIVE_MASK 0x1
6099 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TX_RULE_ACTIVE_SHIFT 6
6100 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_ACTIVE_MASK 0x1
6101 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_ACTIVE_SHIFT 7
6103 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF0_MASK 0x3
6104 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF0_SHIFT 0
6105 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF1_MASK 0x3
6106 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF1_SHIFT 2
6107 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF2_MASK 0x3
6108 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF2_SHIFT 4
6109 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF3_MASK 0x3
6110 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF3_SHIFT 6
6112 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF4_MASK 0x3
6113 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF4_SHIFT 0
6114 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF5_MASK 0x3
6115 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF5_SHIFT 2
6116 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF6_MASK 0x3
6117 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF6_SHIFT 4
6118 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF7_MASK 0x3
6119 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF7_SHIFT 6
6121 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF8_MASK 0x3
6122 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF8_SHIFT 0
6123 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF9_MASK 0x3
6124 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF9_SHIFT 2
6125 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF10_MASK 0x3
6126 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF10_SHIFT 4
6127 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF11_MASK 0x3
6128 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF11_SHIFT 6
6130 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF12_MASK 0x3
6131 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF12_SHIFT 0
6132 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF13_MASK 0x3
6133 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF13_SHIFT 2
6134 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF14_MASK 0x3
6135 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF14_SHIFT 4
6136 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF15_MASK 0x3
6137 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF15_SHIFT 6
6139 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_GO_TO_BD_CONS_CF_MASK 0x3
6140 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_GO_TO_BD_CONS_CF_SHIFT 0
6141 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_MULTI_UNICAST_CF_MASK 0x3
6142 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_MULTI_UNICAST_CF_SHIFT 2
6143 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_MASK 0x3
6144 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_SHIFT 4
6145 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TERMINATE_CF_MASK 0x3
6146 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TERMINATE_CF_SHIFT 6
6148 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_FLUSH_Q0_MASK 0x3
6149 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_FLUSH_Q0_SHIFT 0
6150 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED10_MASK 0x3
6151 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED10_SHIFT 2
6152 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_SLOW_PATH_MASK 0x3
6153 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_SLOW_PATH_SHIFT 4
6154 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF0EN_MASK 0x1
6155 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF0EN_SHIFT 6
6156 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF1EN_MASK 0x1
6157 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF1EN_SHIFT 7
6159 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF2EN_MASK 0x1
6160 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF2EN_SHIFT 0
6161 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF3EN_MASK 0x1
6162 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF3EN_SHIFT 1
6163 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF4EN_MASK 0x1
6164 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF4EN_SHIFT 2
6165 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF5EN_MASK 0x1
6166 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF5EN_SHIFT 3
6167 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF6EN_MASK 0x1
6168 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF6EN_SHIFT 4
6169 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF7EN_MASK 0x1
6170 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF7EN_SHIFT 5
6171 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF8EN_MASK 0x1
6172 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF8EN_SHIFT 6
6173 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF9EN_MASK 0x1
6174 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF9EN_SHIFT 7
6176 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF10EN_MASK 0x1
6177 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF10EN_SHIFT 0
6178 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF11EN_MASK 0x1
6179 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF11EN_SHIFT 1
6180 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF12EN_MASK 0x1
6181 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF12EN_SHIFT 2
6182 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF13EN_MASK 0x1
6183 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF13EN_SHIFT 3
6184 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF14EN_MASK 0x1
6185 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF14EN_SHIFT 4
6186 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF15EN_MASK 0x1
6187 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF15EN_SHIFT 5
6188 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_GO_TO_BD_CONS_CF_EN_MASK 0x1
6189 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_GO_TO_BD_CONS_CF_EN_SHIFT 6
6190 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_MULTI_UNICAST_CF_EN_MASK 0x1
6191 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_MULTI_UNICAST_CF_EN_SHIFT 7
6193 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_EN_MASK 0x1
6194 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_EN_SHIFT 0
6195 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TERMINATE_CF_EN_MASK 0x1
6196 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TERMINATE_CF_EN_SHIFT 1
6197 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_FLUSH_Q0_EN_MASK 0x1
6198 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_FLUSH_Q0_EN_SHIFT 2
6199 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED11_MASK 0x1
6200 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED11_SHIFT 3
6201 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_SLOW_PATH_EN_MASK 0x1
6202 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_SLOW_PATH_EN_SHIFT 4
6203 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TPH_ENABLE_EN_RESERVED_MASK 0x1
6204 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TPH_ENABLE_EN_RESERVED_SHIFT 5
6205 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED12_MASK 0x1
6206 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED12_SHIFT 6
6207 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED13_MASK 0x1
6208 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED13_SHIFT 7
6210 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED14_MASK 0x1
6211 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED14_SHIFT 0
6212 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED15_MASK 0x1
6213 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED15_SHIFT 1
6214 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TX_DEC_RULE_EN_MASK 0x1
6215 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TX_DEC_RULE_EN_SHIFT 2
6216 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE5EN_MASK 0x1
6217 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE5EN_SHIFT 3
6218 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE6EN_MASK 0x1
6219 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE6EN_SHIFT 4
6220 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE7EN_MASK 0x1
6221 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE7EN_SHIFT 5
6222 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED1_MASK 0x1
6223 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED1_SHIFT 6
6224 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE9EN_MASK 0x1
6225 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE9EN_SHIFT 7
6227 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE10EN_MASK 0x1
6228 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE10EN_SHIFT 0
6229 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE11EN_MASK 0x1
6230 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE11EN_SHIFT 1
6231 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED2_MASK 0x1
6232 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED2_SHIFT 2
6233 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED3_MASK 0x1
6234 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED3_SHIFT 3
6235 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE14EN_MASK 0x1
6236 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE14EN_SHIFT 4
6237 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE15EN_MASK 0x1
6238 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE15EN_SHIFT 5
6239 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE16EN_MASK 0x1
6240 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE16EN_SHIFT 6
6241 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE17EN_MASK 0x1
6242 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE17EN_SHIFT 7
6244 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE18EN_MASK 0x1
6245 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE18EN_SHIFT 0
6246 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE19EN_MASK 0x1
6247 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE19EN_SHIFT 1
6248 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED4_MASK 0x1
6249 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED4_SHIFT 2
6250 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED5_MASK 0x1
6251 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED5_SHIFT 3
6252 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED6_MASK 0x1
6253 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED6_SHIFT 4
6254 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED7_MASK 0x1
6255 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED7_SHIFT 5
6256 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED8_MASK 0x1
6257 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED8_SHIFT 6
6258 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED9_MASK 0x1
6259 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED9_SHIFT 7
6261 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_USE_EXT_HDR_MASK 0x1
6262 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_USE_EXT_HDR_SHIFT 0
6263 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_SEND_RAW_L3L4_MASK 0x1
6264 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_SEND_RAW_L3L4_SHIFT 1
6265 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_INBAND_PROP_HDR_MASK 0x1
6266 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_INBAND_PROP_HDR_SHIFT 2
6267 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_SEND_EXT_TUNNEL_MASK 0x1
6268 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_SEND_EXT_TUNNEL_SHIFT 3
6269 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_L2_EDPM_ENABLE_MASK 0x1
6270 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_L2_EDPM_ENABLE_SHIFT 4
6271 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_ROCE_EDPM_ENABLE_MASK 0x1
6272 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_ROCE_EDPM_ENABLE_SHIFT 5
6273 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TPH_ENABLE_MASK 0x3
6274 #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TPH_ENABLE_SHIFT 6
6277 __le16 e5_reserved1;
6278 __le16 edpm_num_bds;
6281 __le16 updated_qm_pq_id;
6294 struct e4_mstorm_eth_conn_ag_ctx {
6298 #define E4_MSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
6299 #define E4_MSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
6300 #define E4_MSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1
6301 #define E4_MSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
6302 #define E4_MSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3
6303 #define E4_MSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 2
6304 #define E4_MSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3
6305 #define E4_MSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 4
6306 #define E4_MSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3
6307 #define E4_MSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6
6309 #define E4_MSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1
6310 #define E4_MSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 0
6311 #define E4_MSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1
6312 #define E4_MSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 1
6313 #define E4_MSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1
6314 #define E4_MSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2
6315 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1
6316 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 3
6317 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1
6318 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 4
6319 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1
6320 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 5
6321 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1
6322 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 6
6323 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1
6324 #define E4_MSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 7
6331 struct e4_xstorm_eth_hw_conn_ag_ctx {
6335 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
6336 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
6337 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED1_MASK 0x1
6338 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED1_SHIFT 1
6339 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED2_MASK 0x1
6340 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED2_SHIFT 2
6341 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
6342 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
6343 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED3_MASK 0x1
6344 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED3_SHIFT 4
6345 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED4_MASK 0x1
6346 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED4_SHIFT 5
6347 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED5_MASK 0x1
6348 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED5_SHIFT 6
6349 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED6_MASK 0x1
6350 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED6_SHIFT 7
6352 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED7_MASK 0x1
6353 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED7_SHIFT 0
6354 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED8_MASK 0x1
6355 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED8_SHIFT 1
6356 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED9_MASK 0x1
6357 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED9_SHIFT 2
6358 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_BIT11_MASK 0x1
6359 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_BIT11_SHIFT 3
6360 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_E5_RESERVED2_MASK 0x1
6361 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_E5_RESERVED2_SHIFT 4
6362 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_E5_RESERVED3_MASK 0x1
6363 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_E5_RESERVED3_SHIFT 5
6364 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1
6365 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6
6366 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1
6367 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7
6369 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF0_MASK 0x3
6370 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF0_SHIFT 0
6371 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF1_MASK 0x3
6372 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF1_SHIFT 2
6373 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF2_MASK 0x3
6374 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF2_SHIFT 4
6375 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF3_MASK 0x3
6376 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF3_SHIFT 6
6378 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF4_MASK 0x3
6379 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF4_SHIFT 0
6380 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF5_MASK 0x3
6381 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF5_SHIFT 2
6382 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF6_MASK 0x3
6383 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF6_SHIFT 4
6384 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF7_MASK 0x3
6385 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF7_SHIFT 6
6387 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF8_MASK 0x3
6388 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF8_SHIFT 0
6389 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF9_MASK 0x3
6390 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF9_SHIFT 2
6391 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF10_MASK 0x3
6392 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF10_SHIFT 4
6393 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF11_MASK 0x3
6394 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF11_SHIFT 6
6396 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF12_MASK 0x3
6397 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF12_SHIFT 0
6398 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF13_MASK 0x3
6399 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF13_SHIFT 2
6400 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF14_MASK 0x3
6401 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF14_SHIFT 4
6402 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF15_MASK 0x3
6403 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF15_SHIFT 6
6405 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_GO_TO_BD_CONS_CF_MASK 0x3
6406 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_GO_TO_BD_CONS_CF_SHIFT 0
6407 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_MULTI_UNICAST_CF_MASK 0x3
6408 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_MULTI_UNICAST_CF_SHIFT 2
6409 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_MASK 0x3
6410 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_SHIFT 4
6411 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TERMINATE_CF_MASK 0x3
6412 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TERMINATE_CF_SHIFT 6
6414 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_FLUSH_Q0_MASK 0x3
6415 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
6416 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED10_MASK 0x3
6417 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED10_SHIFT 2
6418 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_SLOW_PATH_MASK 0x3
6419 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_SLOW_PATH_SHIFT 4
6420 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF0EN_MASK 0x1
6421 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF0EN_SHIFT 6
6422 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF1EN_MASK 0x1
6423 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF1EN_SHIFT 7
6425 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF2EN_MASK 0x1
6426 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF2EN_SHIFT 0
6427 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF3EN_MASK 0x1
6428 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF3EN_SHIFT 1
6429 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF4EN_MASK 0x1
6430 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF4EN_SHIFT 2
6431 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF5EN_MASK 0x1
6432 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF5EN_SHIFT 3
6433 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF6EN_MASK 0x1
6434 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF6EN_SHIFT 4
6435 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF7EN_MASK 0x1
6436 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF7EN_SHIFT 5
6437 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF8EN_MASK 0x1
6438 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF8EN_SHIFT 6
6439 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF9EN_MASK 0x1
6440 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF9EN_SHIFT 7
6442 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF10EN_MASK 0x1
6443 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF10EN_SHIFT 0
6444 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF11EN_MASK 0x1
6445 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF11EN_SHIFT 1
6446 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF12EN_MASK 0x1
6447 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF12EN_SHIFT 2
6448 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF13EN_MASK 0x1
6449 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF13EN_SHIFT 3
6450 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF14EN_MASK 0x1
6451 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF14EN_SHIFT 4
6452 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF15EN_MASK 0x1
6453 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_CF15EN_SHIFT 5
6454 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_MASK 0x1
6455 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_SHIFT 6
6456 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_MULTI_UNICAST_CF_EN_MASK 0x1
6457 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_MULTI_UNICAST_CF_EN_SHIFT 7
6459 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_EN_MASK 0x1
6460 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_EN_SHIFT 0
6461 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1
6462 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1
6463 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1
6464 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2
6465 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED11_MASK 0x1
6466 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED11_SHIFT 3
6467 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
6468 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
6469 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_MASK 0x1
6470 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_SHIFT 5
6471 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED12_MASK 0x1
6472 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED12_SHIFT 6
6473 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED13_MASK 0x1
6474 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED13_SHIFT 7
6476 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED14_MASK 0x1
6477 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED14_SHIFT 0
6478 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED15_MASK 0x1
6479 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RESERVED15_SHIFT 1
6480 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1
6481 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2
6482 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE5EN_MASK 0x1
6483 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE5EN_SHIFT 3
6484 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE6EN_MASK 0x1
6485 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE6EN_SHIFT 4
6486 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE7EN_MASK 0x1
6487 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE7EN_SHIFT 5
6488 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
6489 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
6490 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE9EN_MASK 0x1
6491 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE9EN_SHIFT 7
6493 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE10EN_MASK 0x1
6494 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE10EN_SHIFT 0
6495 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE11EN_MASK 0x1
6496 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE11EN_SHIFT 1
6497 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
6498 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
6499 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
6500 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
6501 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE14EN_MASK 0x1
6502 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE14EN_SHIFT 4
6503 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE15EN_MASK 0x1
6504 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE15EN_SHIFT 5
6505 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE16EN_MASK 0x1
6506 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE16EN_SHIFT 6
6507 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE17EN_MASK 0x1
6508 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE17EN_SHIFT 7
6510 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE18EN_MASK 0x1
6511 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE18EN_SHIFT 0
6512 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE19EN_MASK 0x1
6513 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_RULE19EN_SHIFT 1
6514 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
6515 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
6516 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
6517 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
6518 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
6519 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
6520 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
6521 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
6522 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
6523 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
6524 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
6525 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
6527 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_USE_EXT_HDR_MASK 0x1
6528 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_USE_EXT_HDR_SHIFT 0
6529 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_MASK 0x1
6530 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_SHIFT 1
6531 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_MASK 0x1
6532 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_SHIFT 2
6533 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_MASK 0x1
6534 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_SHIFT 3
6535 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_L2_EDPM_ENABLE_MASK 0x1
6536 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_L2_EDPM_ENABLE_SHIFT 4
6537 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1
6538 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5
6539 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TPH_ENABLE_MASK 0x3
6540 #define E4_XSTORM_ETH_HW_CONN_AG_CTX_TPH_ENABLE_SHIFT 6
6543 __le16 e5_reserved1;
6544 __le16 edpm_num_bds;
6547 __le16 updated_qm_pq_id;
6551 /* GFT CAM line struct with fields breakout */
6552 struct gft_cam_line_mapped {
6554 #define GFT_CAM_LINE_MAPPED_VALID_MASK 0x1
6555 #define GFT_CAM_LINE_MAPPED_VALID_SHIFT 0
6556 #define GFT_CAM_LINE_MAPPED_IP_VERSION_MASK 0x1
6557 #define GFT_CAM_LINE_MAPPED_IP_VERSION_SHIFT 1
6558 #define GFT_CAM_LINE_MAPPED_TUNNEL_IP_VERSION_MASK 0x1
6559 #define GFT_CAM_LINE_MAPPED_TUNNEL_IP_VERSION_SHIFT 2
6560 #define GFT_CAM_LINE_MAPPED_UPPER_PROTOCOL_TYPE_MASK 0xF
6561 #define GFT_CAM_LINE_MAPPED_UPPER_PROTOCOL_TYPE_SHIFT 3
6562 #define GFT_CAM_LINE_MAPPED_TUNNEL_TYPE_MASK 0xF
6563 #define GFT_CAM_LINE_MAPPED_TUNNEL_TYPE_SHIFT 7
6564 #define GFT_CAM_LINE_MAPPED_PF_ID_MASK 0xF
6565 #define GFT_CAM_LINE_MAPPED_PF_ID_SHIFT 11
6566 #define GFT_CAM_LINE_MAPPED_IP_VERSION_MASK_MASK 0x1
6567 #define GFT_CAM_LINE_MAPPED_IP_VERSION_MASK_SHIFT 15
6568 #define GFT_CAM_LINE_MAPPED_TUNNEL_IP_VERSION_MASK_MASK 0x1
6569 #define GFT_CAM_LINE_MAPPED_TUNNEL_IP_VERSION_MASK_SHIFT 16
6570 #define GFT_CAM_LINE_MAPPED_UPPER_PROTOCOL_TYPE_MASK_MASK 0xF
6571 #define GFT_CAM_LINE_MAPPED_UPPER_PROTOCOL_TYPE_MASK_SHIFT 17
6572 #define GFT_CAM_LINE_MAPPED_TUNNEL_TYPE_MASK_MASK 0xF
6573 #define GFT_CAM_LINE_MAPPED_TUNNEL_TYPE_MASK_SHIFT 21
6574 #define GFT_CAM_LINE_MAPPED_PF_ID_MASK_MASK 0xF
6575 #define GFT_CAM_LINE_MAPPED_PF_ID_MASK_SHIFT 25
6576 #define GFT_CAM_LINE_MAPPED_RESERVED1_MASK 0x7
6577 #define GFT_CAM_LINE_MAPPED_RESERVED1_SHIFT 29
6581 /* Used in gft_profile_key: Indication for ip version */
6582 enum gft_profile_ip_version {
6583 GFT_PROFILE_IPV4 = 0,
6584 GFT_PROFILE_IPV6 = 1,
6585 MAX_GFT_PROFILE_IP_VERSION
6588 /* Profile key stucr fot GFT logic in Prs */
6589 struct gft_profile_key {
6591 #define GFT_PROFILE_KEY_IP_VERSION_MASK 0x1
6592 #define GFT_PROFILE_KEY_IP_VERSION_SHIFT 0
6593 #define GFT_PROFILE_KEY_TUNNEL_IP_VERSION_MASK 0x1
6594 #define GFT_PROFILE_KEY_TUNNEL_IP_VERSION_SHIFT 1
6595 #define GFT_PROFILE_KEY_UPPER_PROTOCOL_TYPE_MASK 0xF
6596 #define GFT_PROFILE_KEY_UPPER_PROTOCOL_TYPE_SHIFT 2
6597 #define GFT_PROFILE_KEY_TUNNEL_TYPE_MASK 0xF
6598 #define GFT_PROFILE_KEY_TUNNEL_TYPE_SHIFT 6
6599 #define GFT_PROFILE_KEY_PF_ID_MASK 0xF
6600 #define GFT_PROFILE_KEY_PF_ID_SHIFT 10
6601 #define GFT_PROFILE_KEY_RESERVED0_MASK 0x3
6602 #define GFT_PROFILE_KEY_RESERVED0_SHIFT 14
6605 /* Used in gft_profile_key: Indication for tunnel type */
6606 enum gft_profile_tunnel_type {
6607 GFT_PROFILE_NO_TUNNEL = 0,
6608 GFT_PROFILE_VXLAN_TUNNEL = 1,
6609 GFT_PROFILE_GRE_MAC_OR_NVGRE_TUNNEL = 2,
6610 GFT_PROFILE_GRE_IP_TUNNEL = 3,
6611 GFT_PROFILE_GENEVE_MAC_TUNNEL = 4,
6612 GFT_PROFILE_GENEVE_IP_TUNNEL = 5,
6613 MAX_GFT_PROFILE_TUNNEL_TYPE
6616 /* Used in gft_profile_key: Indication for protocol type */
6617 enum gft_profile_upper_protocol_type {
6618 GFT_PROFILE_ROCE_PROTOCOL = 0,
6619 GFT_PROFILE_RROCE_PROTOCOL = 1,
6620 GFT_PROFILE_FCOE_PROTOCOL = 2,
6621 GFT_PROFILE_ICMP_PROTOCOL = 3,
6622 GFT_PROFILE_ARP_PROTOCOL = 4,
6623 GFT_PROFILE_USER_TCP_SRC_PORT_1_INNER = 5,
6624 GFT_PROFILE_USER_TCP_DST_PORT_1_INNER = 6,
6625 GFT_PROFILE_TCP_PROTOCOL = 7,
6626 GFT_PROFILE_USER_UDP_DST_PORT_1_INNER = 8,
6627 GFT_PROFILE_USER_UDP_DST_PORT_2_OUTER = 9,
6628 GFT_PROFILE_UDP_PROTOCOL = 10,
6629 GFT_PROFILE_USER_IP_1_INNER = 11,
6630 GFT_PROFILE_USER_IP_2_OUTER = 12,
6631 GFT_PROFILE_USER_ETH_1_INNER = 13,
6632 GFT_PROFILE_USER_ETH_2_OUTER = 14,
6633 GFT_PROFILE_RAW = 15,
6634 MAX_GFT_PROFILE_UPPER_PROTOCOL_TYPE
6637 /* GFT RAM line struct */
6638 struct gft_ram_line {
6640 #define GFT_RAM_LINE_VLAN_SELECT_MASK 0x3
6641 #define GFT_RAM_LINE_VLAN_SELECT_SHIFT 0
6642 #define GFT_RAM_LINE_TUNNEL_ENTROPHY_MASK 0x1
6643 #define GFT_RAM_LINE_TUNNEL_ENTROPHY_SHIFT 2
6644 #define GFT_RAM_LINE_TUNNEL_TTL_EQUAL_ONE_MASK 0x1
6645 #define GFT_RAM_LINE_TUNNEL_TTL_EQUAL_ONE_SHIFT 3
6646 #define GFT_RAM_LINE_TUNNEL_TTL_MASK 0x1
6647 #define GFT_RAM_LINE_TUNNEL_TTL_SHIFT 4
6648 #define GFT_RAM_LINE_TUNNEL_ETHERTYPE_MASK 0x1
6649 #define GFT_RAM_LINE_TUNNEL_ETHERTYPE_SHIFT 5
6650 #define GFT_RAM_LINE_TUNNEL_DST_PORT_MASK 0x1
6651 #define GFT_RAM_LINE_TUNNEL_DST_PORT_SHIFT 6
6652 #define GFT_RAM_LINE_TUNNEL_SRC_PORT_MASK 0x1
6653 #define GFT_RAM_LINE_TUNNEL_SRC_PORT_SHIFT 7
6654 #define GFT_RAM_LINE_TUNNEL_DSCP_MASK 0x1
6655 #define GFT_RAM_LINE_TUNNEL_DSCP_SHIFT 8
6656 #define GFT_RAM_LINE_TUNNEL_OVER_IP_PROTOCOL_MASK 0x1
6657 #define GFT_RAM_LINE_TUNNEL_OVER_IP_PROTOCOL_SHIFT 9
6658 #define GFT_RAM_LINE_TUNNEL_DST_IP_MASK 0x1
6659 #define GFT_RAM_LINE_TUNNEL_DST_IP_SHIFT 10
6660 #define GFT_RAM_LINE_TUNNEL_SRC_IP_MASK 0x1
6661 #define GFT_RAM_LINE_TUNNEL_SRC_IP_SHIFT 11
6662 #define GFT_RAM_LINE_TUNNEL_PRIORITY_MASK 0x1
6663 #define GFT_RAM_LINE_TUNNEL_PRIORITY_SHIFT 12
6664 #define GFT_RAM_LINE_TUNNEL_PROVIDER_VLAN_MASK 0x1
6665 #define GFT_RAM_LINE_TUNNEL_PROVIDER_VLAN_SHIFT 13
6666 #define GFT_RAM_LINE_TUNNEL_VLAN_MASK 0x1
6667 #define GFT_RAM_LINE_TUNNEL_VLAN_SHIFT 14
6668 #define GFT_RAM_LINE_TUNNEL_DST_MAC_MASK 0x1
6669 #define GFT_RAM_LINE_TUNNEL_DST_MAC_SHIFT 15
6670 #define GFT_RAM_LINE_TUNNEL_SRC_MAC_MASK 0x1
6671 #define GFT_RAM_LINE_TUNNEL_SRC_MAC_SHIFT 16
6672 #define GFT_RAM_LINE_TTL_EQUAL_ONE_MASK 0x1
6673 #define GFT_RAM_LINE_TTL_EQUAL_ONE_SHIFT 17
6674 #define GFT_RAM_LINE_TTL_MASK 0x1
6675 #define GFT_RAM_LINE_TTL_SHIFT 18
6676 #define GFT_RAM_LINE_ETHERTYPE_MASK 0x1
6677 #define GFT_RAM_LINE_ETHERTYPE_SHIFT 19
6678 #define GFT_RAM_LINE_RESERVED0_MASK 0x1
6679 #define GFT_RAM_LINE_RESERVED0_SHIFT 20
6680 #define GFT_RAM_LINE_TCP_FLAG_FIN_MASK 0x1
6681 #define GFT_RAM_LINE_TCP_FLAG_FIN_SHIFT 21
6682 #define GFT_RAM_LINE_TCP_FLAG_SYN_MASK 0x1
6683 #define GFT_RAM_LINE_TCP_FLAG_SYN_SHIFT 22
6684 #define GFT_RAM_LINE_TCP_FLAG_RST_MASK 0x1
6685 #define GFT_RAM_LINE_TCP_FLAG_RST_SHIFT 23
6686 #define GFT_RAM_LINE_TCP_FLAG_PSH_MASK 0x1
6687 #define GFT_RAM_LINE_TCP_FLAG_PSH_SHIFT 24
6688 #define GFT_RAM_LINE_TCP_FLAG_ACK_MASK 0x1
6689 #define GFT_RAM_LINE_TCP_FLAG_ACK_SHIFT 25
6690 #define GFT_RAM_LINE_TCP_FLAG_URG_MASK 0x1
6691 #define GFT_RAM_LINE_TCP_FLAG_URG_SHIFT 26
6692 #define GFT_RAM_LINE_TCP_FLAG_ECE_MASK 0x1
6693 #define GFT_RAM_LINE_TCP_FLAG_ECE_SHIFT 27
6694 #define GFT_RAM_LINE_TCP_FLAG_CWR_MASK 0x1
6695 #define GFT_RAM_LINE_TCP_FLAG_CWR_SHIFT 28
6696 #define GFT_RAM_LINE_TCP_FLAG_NS_MASK 0x1
6697 #define GFT_RAM_LINE_TCP_FLAG_NS_SHIFT 29
6698 #define GFT_RAM_LINE_DST_PORT_MASK 0x1
6699 #define GFT_RAM_LINE_DST_PORT_SHIFT 30
6700 #define GFT_RAM_LINE_SRC_PORT_MASK 0x1
6701 #define GFT_RAM_LINE_SRC_PORT_SHIFT 31
6703 #define GFT_RAM_LINE_DSCP_MASK 0x1
6704 #define GFT_RAM_LINE_DSCP_SHIFT 0
6705 #define GFT_RAM_LINE_OVER_IP_PROTOCOL_MASK 0x1
6706 #define GFT_RAM_LINE_OVER_IP_PROTOCOL_SHIFT 1
6707 #define GFT_RAM_LINE_DST_IP_MASK 0x1
6708 #define GFT_RAM_LINE_DST_IP_SHIFT 2
6709 #define GFT_RAM_LINE_SRC_IP_MASK 0x1
6710 #define GFT_RAM_LINE_SRC_IP_SHIFT 3
6711 #define GFT_RAM_LINE_PRIORITY_MASK 0x1
6712 #define GFT_RAM_LINE_PRIORITY_SHIFT 4
6713 #define GFT_RAM_LINE_PROVIDER_VLAN_MASK 0x1
6714 #define GFT_RAM_LINE_PROVIDER_VLAN_SHIFT 5
6715 #define GFT_RAM_LINE_VLAN_MASK 0x1
6716 #define GFT_RAM_LINE_VLAN_SHIFT 6
6717 #define GFT_RAM_LINE_DST_MAC_MASK 0x1
6718 #define GFT_RAM_LINE_DST_MAC_SHIFT 7
6719 #define GFT_RAM_LINE_SRC_MAC_MASK 0x1
6720 #define GFT_RAM_LINE_SRC_MAC_SHIFT 8
6721 #define GFT_RAM_LINE_TENANT_ID_MASK 0x1
6722 #define GFT_RAM_LINE_TENANT_ID_SHIFT 9
6723 #define GFT_RAM_LINE_RESERVED1_MASK 0x3FFFFF
6724 #define GFT_RAM_LINE_RESERVED1_SHIFT 10
6727 /* Used in the first 2 bits for gft_ram_line: Indication for vlan mask */
6728 enum gft_vlan_select {
6729 INNER_PROVIDER_VLAN = 0,
6731 OUTER_PROVIDER_VLAN = 2,
6736 /* The rdma task context of Mstorm */
6737 struct ystorm_rdma_task_st_ctx {
6738 struct regpair temp[4];
6741 struct e4_ystorm_rdma_task_ag_ctx {
6744 __le16 msem_ctx_upd_seq;
6746 #define E4_YSTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_MASK 0xF
6747 #define E4_YSTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_SHIFT 0
6748 #define E4_YSTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_MASK 0x1
6749 #define E4_YSTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_SHIFT 4
6750 #define E4_YSTORM_RDMA_TASK_AG_CTX_BIT1_MASK 0x1
6751 #define E4_YSTORM_RDMA_TASK_AG_CTX_BIT1_SHIFT 5
6752 #define E4_YSTORM_RDMA_TASK_AG_CTX_VALID_MASK 0x1
6753 #define E4_YSTORM_RDMA_TASK_AG_CTX_VALID_SHIFT 6
6754 #define E4_YSTORM_RDMA_TASK_AG_CTX_DIF_FIRST_IO_MASK 0x1
6755 #define E4_YSTORM_RDMA_TASK_AG_CTX_DIF_FIRST_IO_SHIFT 7
6757 #define E4_YSTORM_RDMA_TASK_AG_CTX_CF0_MASK 0x3
6758 #define E4_YSTORM_RDMA_TASK_AG_CTX_CF0_SHIFT 0
6759 #define E4_YSTORM_RDMA_TASK_AG_CTX_CF1_MASK 0x3
6760 #define E4_YSTORM_RDMA_TASK_AG_CTX_CF1_SHIFT 2
6761 #define E4_YSTORM_RDMA_TASK_AG_CTX_CF2SPECIAL_MASK 0x3
6762 #define E4_YSTORM_RDMA_TASK_AG_CTX_CF2SPECIAL_SHIFT 4
6763 #define E4_YSTORM_RDMA_TASK_AG_CTX_CF0EN_MASK 0x1
6764 #define E4_YSTORM_RDMA_TASK_AG_CTX_CF0EN_SHIFT 6
6765 #define E4_YSTORM_RDMA_TASK_AG_CTX_CF1EN_MASK 0x1
6766 #define E4_YSTORM_RDMA_TASK_AG_CTX_CF1EN_SHIFT 7
6768 #define E4_YSTORM_RDMA_TASK_AG_CTX_BIT4_MASK 0x1
6769 #define E4_YSTORM_RDMA_TASK_AG_CTX_BIT4_SHIFT 0
6770 #define E4_YSTORM_RDMA_TASK_AG_CTX_RULE0EN_MASK 0x1
6771 #define E4_YSTORM_RDMA_TASK_AG_CTX_RULE0EN_SHIFT 1
6772 #define E4_YSTORM_RDMA_TASK_AG_CTX_RULE1EN_MASK 0x1
6773 #define E4_YSTORM_RDMA_TASK_AG_CTX_RULE1EN_SHIFT 2
6774 #define E4_YSTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1
6775 #define E4_YSTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 3
6776 #define E4_YSTORM_RDMA_TASK_AG_CTX_RULE3EN_MASK 0x1
6777 #define E4_YSTORM_RDMA_TASK_AG_CTX_RULE3EN_SHIFT 4
6778 #define E4_YSTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1
6779 #define E4_YSTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 5
6780 #define E4_YSTORM_RDMA_TASK_AG_CTX_RULE5EN_MASK 0x1
6781 #define E4_YSTORM_RDMA_TASK_AG_CTX_RULE5EN_SHIFT 6
6782 #define E4_YSTORM_RDMA_TASK_AG_CTX_RULE6EN_MASK 0x1
6783 #define E4_YSTORM_RDMA_TASK_AG_CTX_RULE6EN_SHIFT 7
6785 __le32 mw_cnt_or_qp_id;
6789 __le16 tx_ref_count;
6790 __le16 last_used_ltid;
6791 __le16 parent_mr_lo;
6792 __le16 parent_mr_hi;
6797 struct e4_mstorm_rdma_task_ag_ctx {
6802 #define E4_MSTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_MASK 0xF
6803 #define E4_MSTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_SHIFT 0
6804 #define E4_MSTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_MASK 0x1
6805 #define E4_MSTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_SHIFT 4
6806 #define E4_MSTORM_RDMA_TASK_AG_CTX_BIT1_MASK 0x1
6807 #define E4_MSTORM_RDMA_TASK_AG_CTX_BIT1_SHIFT 5
6808 #define E4_MSTORM_RDMA_TASK_AG_CTX_BIT2_MASK 0x1
6809 #define E4_MSTORM_RDMA_TASK_AG_CTX_BIT2_SHIFT 6
6810 #define E4_MSTORM_RDMA_TASK_AG_CTX_DIF_FIRST_IO_MASK 0x1
6811 #define E4_MSTORM_RDMA_TASK_AG_CTX_DIF_FIRST_IO_SHIFT 7
6813 #define E4_MSTORM_RDMA_TASK_AG_CTX_CF0_MASK 0x3
6814 #define E4_MSTORM_RDMA_TASK_AG_CTX_CF0_SHIFT 0
6815 #define E4_MSTORM_RDMA_TASK_AG_CTX_CF1_MASK 0x3
6816 #define E4_MSTORM_RDMA_TASK_AG_CTX_CF1_SHIFT 2
6817 #define E4_MSTORM_RDMA_TASK_AG_CTX_CF2_MASK 0x3
6818 #define E4_MSTORM_RDMA_TASK_AG_CTX_CF2_SHIFT 4
6819 #define E4_MSTORM_RDMA_TASK_AG_CTX_CF0EN_MASK 0x1
6820 #define E4_MSTORM_RDMA_TASK_AG_CTX_CF0EN_SHIFT 6
6821 #define E4_MSTORM_RDMA_TASK_AG_CTX_CF1EN_MASK 0x1
6822 #define E4_MSTORM_RDMA_TASK_AG_CTX_CF1EN_SHIFT 7
6824 #define E4_MSTORM_RDMA_TASK_AG_CTX_CF2EN_MASK 0x1
6825 #define E4_MSTORM_RDMA_TASK_AG_CTX_CF2EN_SHIFT 0
6826 #define E4_MSTORM_RDMA_TASK_AG_CTX_RULE0EN_MASK 0x1
6827 #define E4_MSTORM_RDMA_TASK_AG_CTX_RULE0EN_SHIFT 1
6828 #define E4_MSTORM_RDMA_TASK_AG_CTX_RULE1EN_MASK 0x1
6829 #define E4_MSTORM_RDMA_TASK_AG_CTX_RULE1EN_SHIFT 2
6830 #define E4_MSTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1
6831 #define E4_MSTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 3
6832 #define E4_MSTORM_RDMA_TASK_AG_CTX_RULE3EN_MASK 0x1
6833 #define E4_MSTORM_RDMA_TASK_AG_CTX_RULE3EN_SHIFT 4
6834 #define E4_MSTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1
6835 #define E4_MSTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 5
6836 #define E4_MSTORM_RDMA_TASK_AG_CTX_RULE5EN_MASK 0x1
6837 #define E4_MSTORM_RDMA_TASK_AG_CTX_RULE5EN_SHIFT 6
6838 #define E4_MSTORM_RDMA_TASK_AG_CTX_RULE6EN_MASK 0x1
6839 #define E4_MSTORM_RDMA_TASK_AG_CTX_RULE6EN_SHIFT 7
6841 __le32 mw_cnt_or_qp_id;
6845 __le16 tx_ref_count;
6846 __le16 last_used_ltid;
6847 __le16 parent_mr_lo;
6848 __le16 parent_mr_hi;
6853 /* The roce task context of Mstorm */
6854 struct mstorm_rdma_task_st_ctx {
6855 struct regpair temp[4];
6858 /* The roce task context of Ustorm */
6859 struct ustorm_rdma_task_st_ctx {
6860 struct regpair temp[6];
6863 struct e4_ustorm_rdma_task_ag_ctx {
6868 #define E4_USTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_MASK 0xF
6869 #define E4_USTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_SHIFT 0
6870 #define E4_USTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_MASK 0x1
6871 #define E4_USTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_SHIFT 4
6872 #define E4_USTORM_RDMA_TASK_AG_CTX_BIT1_MASK 0x1
6873 #define E4_USTORM_RDMA_TASK_AG_CTX_BIT1_SHIFT 5
6874 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_MASK 0x3
6875 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_SHIFT 6
6877 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_RESULT_TOGGLE_BIT_MASK 0x3
6878 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_RESULT_TOGGLE_BIT_SHIFT 0
6879 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_TX_IO_FLG_MASK 0x3
6880 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_TX_IO_FLG_SHIFT 2
6881 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_BLOCK_SIZE_MASK 0x3
6882 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_BLOCK_SIZE_SHIFT 4
6883 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_CF_MASK 0x3
6884 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_CF_SHIFT 6
6886 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_EN_MASK 0x1
6887 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_EN_SHIFT 0
6888 #define E4_USTORM_RDMA_TASK_AG_CTX_RESERVED2_MASK 0x1
6889 #define E4_USTORM_RDMA_TASK_AG_CTX_RESERVED2_SHIFT 1
6890 #define E4_USTORM_RDMA_TASK_AG_CTX_RESERVED3_MASK 0x1
6891 #define E4_USTORM_RDMA_TASK_AG_CTX_RESERVED3_SHIFT 2
6892 #define E4_USTORM_RDMA_TASK_AG_CTX_RESERVED4_MASK 0x1
6893 #define E4_USTORM_RDMA_TASK_AG_CTX_RESERVED4_SHIFT 3
6894 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_CF_EN_MASK 0x1
6895 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_CF_EN_SHIFT 4
6896 #define E4_USTORM_RDMA_TASK_AG_CTX_RULE0EN_MASK 0x1
6897 #define E4_USTORM_RDMA_TASK_AG_CTX_RULE0EN_SHIFT 5
6898 #define E4_USTORM_RDMA_TASK_AG_CTX_RULE1EN_MASK 0x1
6899 #define E4_USTORM_RDMA_TASK_AG_CTX_RULE1EN_SHIFT 6
6900 #define E4_USTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1
6901 #define E4_USTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 7
6903 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_RXMIT_PROD_CONS_EN_MASK 0x1
6904 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_RXMIT_PROD_CONS_EN_SHIFT 0
6905 #define E4_USTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1
6906 #define E4_USTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 1
6907 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_PROD_CONS_EN_MASK 0x1
6908 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_PROD_CONS_EN_SHIFT 2
6909 #define E4_USTORM_RDMA_TASK_AG_CTX_RULE6EN_MASK 0x1
6910 #define E4_USTORM_RDMA_TASK_AG_CTX_RULE6EN_SHIFT 3
6911 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_TYPE_MASK 0xF
6912 #define E4_USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_TYPE_SHIFT 4
6913 __le32 dif_err_intervals;
6914 __le32 dif_error_1st_interval;
6915 __le32 dif_rxmit_cons;
6916 __le32 dif_rxmit_prod;
6921 __le16 dif_write_cons;
6922 __le16 dif_write_prod;
6924 __le32 dif_error_buffer_address_lo;
6925 __le32 dif_error_buffer_address_hi;
6928 /* RDMA task context */
6929 struct e4_rdma_task_context {
6930 struct ystorm_rdma_task_st_ctx ystorm_st_context;
6931 struct e4_ystorm_rdma_task_ag_ctx ystorm_ag_context;
6932 struct tdif_task_context tdif_context;
6933 struct e4_mstorm_rdma_task_ag_ctx mstorm_ag_context;
6934 struct mstorm_rdma_task_st_ctx mstorm_st_context;
6935 struct rdif_task_context rdif_context;
6936 struct ustorm_rdma_task_st_ctx ustorm_st_context;
6937 struct regpair ustorm_st_padding[2];
6938 struct e4_ustorm_rdma_task_ag_ctx ustorm_ag_context;
6941 /* rdma function init ramrod data */
6942 struct rdma_close_func_ramrod_data {
6943 u8 cnq_start_offset;
6950 /* rdma function init CNQ parameters */
6951 struct rdma_cnq_params {
6956 struct regpair pbl_base_addr;
6957 __le16 queue_zone_num;
6961 /* rdma create cq ramrod data */
6962 struct rdma_create_cq_ramrod_data {
6963 struct regpair cq_handle;
6964 struct regpair pbl_addr;
6966 __le16 pbl_num_pages;
6968 u8 is_two_level_pbl;
6970 u8 pbl_log_page_size;
6975 #define RDMA_CREATE_CQ_RAMROD_DATA_VF_ID_VALID_MASK 0x1
6976 #define RDMA_CREATE_CQ_RAMROD_DATA_VF_ID_VALID_SHIFT 0
6977 #define RDMA_CREATE_CQ_RAMROD_DATA_RESERVED1_MASK 0x7F
6978 #define RDMA_CREATE_CQ_RAMROD_DATA_RESERVED1_SHIFT 1
6981 /* rdma deregister tid ramrod data */
6982 struct rdma_deregister_tid_ramrod_data {
6987 /* rdma destroy cq output params */
6988 struct rdma_destroy_cq_output_params {
6994 /* rdma destroy cq ramrod data */
6995 struct rdma_destroy_cq_ramrod_data {
6996 struct regpair output_params_addr;
6999 /* RDMA slow path EQ cmd IDs */
7000 enum rdma_event_opcode {
7002 RDMA_EVENT_FUNC_INIT,
7003 RDMA_EVENT_FUNC_CLOSE,
7004 RDMA_EVENT_REGISTER_MR,
7005 RDMA_EVENT_DEREGISTER_MR,
7006 RDMA_EVENT_CREATE_CQ,
7007 RDMA_EVENT_RESIZE_CQ,
7008 RDMA_EVENT_DESTROY_CQ,
7009 RDMA_EVENT_CREATE_SRQ,
7010 RDMA_EVENT_MODIFY_SRQ,
7011 RDMA_EVENT_DESTROY_SRQ,
7012 MAX_RDMA_EVENT_OPCODE
7015 /* RDMA FW return code for slow path ramrods */
7016 enum rdma_fw_return_code {
7018 RDMA_RETURN_REGISTER_MR_BAD_STATE_ERR,
7019 RDMA_RETURN_DEREGISTER_MR_BAD_STATE_ERR,
7020 RDMA_RETURN_RESIZE_CQ_ERR,
7021 RDMA_RETURN_NIG_DRAIN_REQ,
7022 RDMA_RETURN_GENERAL_ERR,
7023 MAX_RDMA_FW_RETURN_CODE
7026 /* rdma function init header */
7027 struct rdma_init_func_hdr {
7028 u8 cnq_start_offset;
7033 u8 relaxed_ordering;
7034 __le16 first_reg_srq_id;
7035 __le32 reg_srq_base_addr;
7042 /* rdma function init ramrod data */
7043 struct rdma_init_func_ramrod_data {
7044 struct rdma_init_func_hdr params_header;
7045 struct rdma_cnq_params cnq_params[NUM_OF_GLOBAL_QUEUES];
7048 /* RDMA ramrod command IDs */
7049 enum rdma_ramrod_cmd_id {
7051 RDMA_RAMROD_FUNC_INIT,
7052 RDMA_RAMROD_FUNC_CLOSE,
7053 RDMA_RAMROD_REGISTER_MR,
7054 RDMA_RAMROD_DEREGISTER_MR,
7055 RDMA_RAMROD_CREATE_CQ,
7056 RDMA_RAMROD_RESIZE_CQ,
7057 RDMA_RAMROD_DESTROY_CQ,
7058 RDMA_RAMROD_CREATE_SRQ,
7059 RDMA_RAMROD_MODIFY_SRQ,
7060 RDMA_RAMROD_DESTROY_SRQ,
7061 MAX_RDMA_RAMROD_CMD_ID
7064 /* rdma register tid ramrod data */
7065 struct rdma_register_tid_ramrod_data {
7067 #define RDMA_REGISTER_TID_RAMROD_DATA_PAGE_SIZE_LOG_MASK 0x1F
7068 #define RDMA_REGISTER_TID_RAMROD_DATA_PAGE_SIZE_LOG_SHIFT 0
7069 #define RDMA_REGISTER_TID_RAMROD_DATA_TWO_LEVEL_PBL_MASK 0x1
7070 #define RDMA_REGISTER_TID_RAMROD_DATA_TWO_LEVEL_PBL_SHIFT 5
7071 #define RDMA_REGISTER_TID_RAMROD_DATA_ZERO_BASED_MASK 0x1
7072 #define RDMA_REGISTER_TID_RAMROD_DATA_ZERO_BASED_SHIFT 6
7073 #define RDMA_REGISTER_TID_RAMROD_DATA_PHY_MR_MASK 0x1
7074 #define RDMA_REGISTER_TID_RAMROD_DATA_PHY_MR_SHIFT 7
7075 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_READ_MASK 0x1
7076 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_READ_SHIFT 8
7077 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_WRITE_MASK 0x1
7078 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_WRITE_SHIFT 9
7079 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_ATOMIC_MASK 0x1
7080 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_ATOMIC_SHIFT 10
7081 #define RDMA_REGISTER_TID_RAMROD_DATA_LOCAL_WRITE_MASK 0x1
7082 #define RDMA_REGISTER_TID_RAMROD_DATA_LOCAL_WRITE_SHIFT 11
7083 #define RDMA_REGISTER_TID_RAMROD_DATA_LOCAL_READ_MASK 0x1
7084 #define RDMA_REGISTER_TID_RAMROD_DATA_LOCAL_READ_SHIFT 12
7085 #define RDMA_REGISTER_TID_RAMROD_DATA_ENABLE_MW_BIND_MASK 0x1
7086 #define RDMA_REGISTER_TID_RAMROD_DATA_ENABLE_MW_BIND_SHIFT 13
7087 #define RDMA_REGISTER_TID_RAMROD_DATA_RESERVED_MASK 0x3
7088 #define RDMA_REGISTER_TID_RAMROD_DATA_RESERVED_SHIFT 14
7090 #define RDMA_REGISTER_TID_RAMROD_DATA_PBL_PAGE_SIZE_LOG_MASK 0x1F
7091 #define RDMA_REGISTER_TID_RAMROD_DATA_PBL_PAGE_SIZE_LOG_SHIFT 0
7092 #define RDMA_REGISTER_TID_RAMROD_DATA_TID_TYPE_MASK 0x7
7093 #define RDMA_REGISTER_TID_RAMROD_DATA_TID_TYPE_SHIFT 5
7095 #define RDMA_REGISTER_TID_RAMROD_DATA_DMA_MR_MASK 0x1
7096 #define RDMA_REGISTER_TID_RAMROD_DATA_DMA_MR_SHIFT 0
7097 #define RDMA_REGISTER_TID_RAMROD_DATA_DIF_ON_HOST_FLG_MASK 0x1
7098 #define RDMA_REGISTER_TID_RAMROD_DATA_DIF_ON_HOST_FLG_SHIFT 1
7099 #define RDMA_REGISTER_TID_RAMROD_DATA_RESERVED1_MASK 0x3F
7100 #define RDMA_REGISTER_TID_RAMROD_DATA_RESERVED1_SHIFT 2
7111 struct regpair pbl_base;
7112 struct regpair dif_error_addr;
7113 __le32 reserved4[4];
7116 /* rdma resize cq output params */
7117 struct rdma_resize_cq_output_params {
7122 /* rdma resize cq ramrod data */
7123 struct rdma_resize_cq_ramrod_data {
7125 #define RDMA_RESIZE_CQ_RAMROD_DATA_TOGGLE_BIT_MASK 0x1
7126 #define RDMA_RESIZE_CQ_RAMROD_DATA_TOGGLE_BIT_SHIFT 0
7127 #define RDMA_RESIZE_CQ_RAMROD_DATA_IS_TWO_LEVEL_PBL_MASK 0x1
7128 #define RDMA_RESIZE_CQ_RAMROD_DATA_IS_TWO_LEVEL_PBL_SHIFT 1
7129 #define RDMA_RESIZE_CQ_RAMROD_DATA_VF_ID_VALID_MASK 0x1
7130 #define RDMA_RESIZE_CQ_RAMROD_DATA_VF_ID_VALID_SHIFT 2
7131 #define RDMA_RESIZE_CQ_RAMROD_DATA_RESERVED_MASK 0x1F
7132 #define RDMA_RESIZE_CQ_RAMROD_DATA_RESERVED_SHIFT 3
7133 u8 pbl_log_page_size;
7134 __le16 pbl_num_pages;
7136 struct regpair pbl_addr;
7137 struct regpair output_params_addr;
7142 /* The rdma SRQ context */
7143 struct rdma_srq_context {
7144 struct regpair temp[8];
7147 /* rdma create qp requester ramrod data */
7148 struct rdma_srq_create_ramrod_data {
7150 #define RDMA_SRQ_CREATE_RAMROD_DATA_XRC_FLAG_MASK 0x1
7151 #define RDMA_SRQ_CREATE_RAMROD_DATA_XRC_FLAG_SHIFT 0
7152 #define RDMA_SRQ_CREATE_RAMROD_DATA_RESERVED_KEY_EN_MASK 0x1
7153 #define RDMA_SRQ_CREATE_RAMROD_DATA_RESERVED_KEY_EN_SHIFT 1
7154 #define RDMA_SRQ_CREATE_RAMROD_DATA_RESERVED1_MASK 0x3F
7155 #define RDMA_SRQ_CREATE_RAMROD_DATA_RESERVED1_SHIFT 2
7158 __le32 xrc_srq_cq_cid;
7159 struct regpair pbl_base_addr;
7160 __le16 pages_in_srq_pbl;
7162 struct rdma_srq_id srq_id;
7166 struct regpair producers_addr;
7169 /* rdma create qp requester ramrod data */
7170 struct rdma_srq_destroy_ramrod_data {
7171 struct rdma_srq_id srq_id;
7175 /* rdma create qp requester ramrod data */
7176 struct rdma_srq_modify_ramrod_data {
7177 struct rdma_srq_id srq_id;
7181 /* RDMA Tid type enumeration (for register_tid ramrod) */
7182 enum rdma_tid_type {
7183 RDMA_TID_REGISTERED_MR,
7189 /* The rdma XRC SRQ context */
7190 struct rdma_xrc_srq_context {
7191 struct regpair temp[9];
7194 struct e4_tstorm_rdma_task_ag_ctx {
7199 #define E4_TSTORM_RDMA_TASK_AG_CTX_NIBBLE0_MASK 0xF
7200 #define E4_TSTORM_RDMA_TASK_AG_CTX_NIBBLE0_SHIFT 0
7201 #define E4_TSTORM_RDMA_TASK_AG_CTX_BIT0_MASK 0x1
7202 #define E4_TSTORM_RDMA_TASK_AG_CTX_BIT0_SHIFT 4
7203 #define E4_TSTORM_RDMA_TASK_AG_CTX_BIT1_MASK 0x1
7204 #define E4_TSTORM_RDMA_TASK_AG_CTX_BIT1_SHIFT 5
7205 #define E4_TSTORM_RDMA_TASK_AG_CTX_BIT2_MASK 0x1
7206 #define E4_TSTORM_RDMA_TASK_AG_CTX_BIT2_SHIFT 6
7207 #define E4_TSTORM_RDMA_TASK_AG_CTX_BIT3_MASK 0x1
7208 #define E4_TSTORM_RDMA_TASK_AG_CTX_BIT3_SHIFT 7
7210 #define E4_TSTORM_RDMA_TASK_AG_CTX_BIT4_MASK 0x1
7211 #define E4_TSTORM_RDMA_TASK_AG_CTX_BIT4_SHIFT 0
7212 #define E4_TSTORM_RDMA_TASK_AG_CTX_BIT5_MASK 0x1
7213 #define E4_TSTORM_RDMA_TASK_AG_CTX_BIT5_SHIFT 1
7214 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF0_MASK 0x3
7215 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF0_SHIFT 2
7216 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF1_MASK 0x3
7217 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF1_SHIFT 4
7218 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF2_MASK 0x3
7219 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF2_SHIFT 6
7221 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF3_MASK 0x3
7222 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF3_SHIFT 0
7223 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF4_MASK 0x3
7224 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF4_SHIFT 2
7225 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF5_MASK 0x3
7226 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF5_SHIFT 4
7227 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF6_MASK 0x3
7228 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF6_SHIFT 6
7230 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF7_MASK 0x3
7231 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF7_SHIFT 0
7232 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF0EN_MASK 0x1
7233 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF0EN_SHIFT 2
7234 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF1EN_MASK 0x1
7235 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF1EN_SHIFT 3
7236 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF2EN_MASK 0x1
7237 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF2EN_SHIFT 4
7238 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF3EN_MASK 0x1
7239 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF3EN_SHIFT 5
7240 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF4EN_MASK 0x1
7241 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF4EN_SHIFT 6
7242 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF5EN_MASK 0x1
7243 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF5EN_SHIFT 7
7245 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF6EN_MASK 0x1
7246 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF6EN_SHIFT 0
7247 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF7EN_MASK 0x1
7248 #define E4_TSTORM_RDMA_TASK_AG_CTX_CF7EN_SHIFT 1
7249 #define E4_TSTORM_RDMA_TASK_AG_CTX_RULE0EN_MASK 0x1
7250 #define E4_TSTORM_RDMA_TASK_AG_CTX_RULE0EN_SHIFT 2
7251 #define E4_TSTORM_RDMA_TASK_AG_CTX_RULE1EN_MASK 0x1
7252 #define E4_TSTORM_RDMA_TASK_AG_CTX_RULE1EN_SHIFT 3
7253 #define E4_TSTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1
7254 #define E4_TSTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 4
7255 #define E4_TSTORM_RDMA_TASK_AG_CTX_RULE3EN_MASK 0x1
7256 #define E4_TSTORM_RDMA_TASK_AG_CTX_RULE3EN_SHIFT 5
7257 #define E4_TSTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1
7258 #define E4_TSTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 6
7259 #define E4_TSTORM_RDMA_TASK_AG_CTX_RULE5EN_MASK 0x1
7260 #define E4_TSTORM_RDMA_TASK_AG_CTX_RULE5EN_SHIFT 7
7273 struct e4_ustorm_rdma_conn_ag_ctx {
7277 #define E4_USTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
7278 #define E4_USTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
7279 #define E4_USTORM_RDMA_CONN_AG_CTX_DIF_ERROR_REPORTED_MASK 0x1
7280 #define E4_USTORM_RDMA_CONN_AG_CTX_DIF_ERROR_REPORTED_SHIFT 1
7281 #define E4_USTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
7282 #define E4_USTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 2
7283 #define E4_USTORM_RDMA_CONN_AG_CTX_CF1_MASK 0x3
7284 #define E4_USTORM_RDMA_CONN_AG_CTX_CF1_SHIFT 4
7285 #define E4_USTORM_RDMA_CONN_AG_CTX_CF2_MASK 0x3
7286 #define E4_USTORM_RDMA_CONN_AG_CTX_CF2_SHIFT 6
7288 #define E4_USTORM_RDMA_CONN_AG_CTX_CF3_MASK 0x3
7289 #define E4_USTORM_RDMA_CONN_AG_CTX_CF3_SHIFT 0
7290 #define E4_USTORM_RDMA_CONN_AG_CTX_CQ_ARM_SE_CF_MASK 0x3
7291 #define E4_USTORM_RDMA_CONN_AG_CTX_CQ_ARM_SE_CF_SHIFT 2
7292 #define E4_USTORM_RDMA_CONN_AG_CTX_CQ_ARM_CF_MASK 0x3
7293 #define E4_USTORM_RDMA_CONN_AG_CTX_CQ_ARM_CF_SHIFT 4
7294 #define E4_USTORM_RDMA_CONN_AG_CTX_CF6_MASK 0x3
7295 #define E4_USTORM_RDMA_CONN_AG_CTX_CF6_SHIFT 6
7297 #define E4_USTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
7298 #define E4_USTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 0
7299 #define E4_USTORM_RDMA_CONN_AG_CTX_CF1EN_MASK 0x1
7300 #define E4_USTORM_RDMA_CONN_AG_CTX_CF1EN_SHIFT 1
7301 #define E4_USTORM_RDMA_CONN_AG_CTX_CF2EN_MASK 0x1
7302 #define E4_USTORM_RDMA_CONN_AG_CTX_CF2EN_SHIFT 2
7303 #define E4_USTORM_RDMA_CONN_AG_CTX_CF3EN_MASK 0x1
7304 #define E4_USTORM_RDMA_CONN_AG_CTX_CF3EN_SHIFT 3
7305 #define E4_USTORM_RDMA_CONN_AG_CTX_CQ_ARM_SE_CF_EN_MASK 0x1
7306 #define E4_USTORM_RDMA_CONN_AG_CTX_CQ_ARM_SE_CF_EN_SHIFT 4
7307 #define E4_USTORM_RDMA_CONN_AG_CTX_CQ_ARM_CF_EN_MASK 0x1
7308 #define E4_USTORM_RDMA_CONN_AG_CTX_CQ_ARM_CF_EN_SHIFT 5
7309 #define E4_USTORM_RDMA_CONN_AG_CTX_CF6EN_MASK 0x1
7310 #define E4_USTORM_RDMA_CONN_AG_CTX_CF6EN_SHIFT 6
7311 #define E4_USTORM_RDMA_CONN_AG_CTX_CQ_SE_EN_MASK 0x1
7312 #define E4_USTORM_RDMA_CONN_AG_CTX_CQ_SE_EN_SHIFT 7
7314 #define E4_USTORM_RDMA_CONN_AG_CTX_CQ_EN_MASK 0x1
7315 #define E4_USTORM_RDMA_CONN_AG_CTX_CQ_EN_SHIFT 0
7316 #define E4_USTORM_RDMA_CONN_AG_CTX_RULE2EN_MASK 0x1
7317 #define E4_USTORM_RDMA_CONN_AG_CTX_RULE2EN_SHIFT 1
7318 #define E4_USTORM_RDMA_CONN_AG_CTX_RULE3EN_MASK 0x1
7319 #define E4_USTORM_RDMA_CONN_AG_CTX_RULE3EN_SHIFT 2
7320 #define E4_USTORM_RDMA_CONN_AG_CTX_RULE4EN_MASK 0x1
7321 #define E4_USTORM_RDMA_CONN_AG_CTX_RULE4EN_SHIFT 3
7322 #define E4_USTORM_RDMA_CONN_AG_CTX_RULE5EN_MASK 0x1
7323 #define E4_USTORM_RDMA_CONN_AG_CTX_RULE5EN_SHIFT 4
7324 #define E4_USTORM_RDMA_CONN_AG_CTX_RULE6EN_MASK 0x1
7325 #define E4_USTORM_RDMA_CONN_AG_CTX_RULE6EN_SHIFT 5
7326 #define E4_USTORM_RDMA_CONN_AG_CTX_RULE7EN_MASK 0x1
7327 #define E4_USTORM_RDMA_CONN_AG_CTX_RULE7EN_SHIFT 6
7328 #define E4_USTORM_RDMA_CONN_AG_CTX_RULE8EN_MASK 0x1
7329 #define E4_USTORM_RDMA_CONN_AG_CTX_RULE8EN_SHIFT 7
7342 struct e4_xstorm_roce_conn_ag_ctx {
7346 #define E4_XSTORM_ROCE_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
7347 #define E4_XSTORM_ROCE_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
7348 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT1_MASK 0x1
7349 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT1_SHIFT 1
7350 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT2_MASK 0x1
7351 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT2_SHIFT 2
7352 #define E4_XSTORM_ROCE_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
7353 #define E4_XSTORM_ROCE_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
7354 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT4_MASK 0x1
7355 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT4_SHIFT 4
7356 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT5_MASK 0x1
7357 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT5_SHIFT 5
7358 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT6_MASK 0x1
7359 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT6_SHIFT 6
7360 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT7_MASK 0x1
7361 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT7_SHIFT 7
7363 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT8_MASK 0x1
7364 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT8_SHIFT 0
7365 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT9_MASK 0x1
7366 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT9_SHIFT 1
7367 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT10_MASK 0x1
7368 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT10_SHIFT 2
7369 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT11_MASK 0x1
7370 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT11_SHIFT 3
7371 #define E4_XSTORM_ROCE_CONN_AG_CTX_MSDM_FLUSH_MASK 0x1
7372 #define E4_XSTORM_ROCE_CONN_AG_CTX_MSDM_FLUSH_SHIFT 4
7373 #define E4_XSTORM_ROCE_CONN_AG_CTX_MSEM_FLUSH_MASK 0x1
7374 #define E4_XSTORM_ROCE_CONN_AG_CTX_MSEM_FLUSH_SHIFT 5
7375 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT14_MASK 0x1
7376 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT14_SHIFT 6
7377 #define E4_XSTORM_ROCE_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x1
7378 #define E4_XSTORM_ROCE_CONN_AG_CTX_YSTORM_FLUSH_SHIFT 7
7380 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF0_MASK 0x3
7381 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF0_SHIFT 0
7382 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF1_MASK 0x3
7383 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF1_SHIFT 2
7384 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF2_MASK 0x3
7385 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF2_SHIFT 4
7386 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF3_MASK 0x3
7387 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF3_SHIFT 6
7389 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF4_MASK 0x3
7390 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF4_SHIFT 0
7391 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF5_MASK 0x3
7392 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF5_SHIFT 2
7393 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF6_MASK 0x3
7394 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF6_SHIFT 4
7395 #define E4_XSTORM_ROCE_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
7396 #define E4_XSTORM_ROCE_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
7398 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF8_MASK 0x3
7399 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF8_SHIFT 0
7400 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF9_MASK 0x3
7401 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF9_SHIFT 2
7402 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF10_MASK 0x3
7403 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF10_SHIFT 4
7404 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF11_MASK 0x3
7405 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF11_SHIFT 6
7407 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF12_MASK 0x3
7408 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF12_SHIFT 0
7409 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF13_MASK 0x3
7410 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF13_SHIFT 2
7411 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF14_MASK 0x3
7412 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF14_SHIFT 4
7413 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF15_MASK 0x3
7414 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF15_SHIFT 6
7416 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF16_MASK 0x3
7417 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF16_SHIFT 0
7418 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF17_MASK 0x3
7419 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF17_SHIFT 2
7420 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF18_MASK 0x3
7421 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF18_SHIFT 4
7422 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF19_MASK 0x3
7423 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF19_SHIFT 6
7425 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF20_MASK 0x3
7426 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF20_SHIFT 0
7427 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF21_MASK 0x3
7428 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF21_SHIFT 2
7429 #define E4_XSTORM_ROCE_CONN_AG_CTX_SLOW_PATH_MASK 0x3
7430 #define E4_XSTORM_ROCE_CONN_AG_CTX_SLOW_PATH_SHIFT 4
7431 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF0EN_MASK 0x1
7432 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF0EN_SHIFT 6
7433 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF1EN_MASK 0x1
7434 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF1EN_SHIFT 7
7436 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF2EN_MASK 0x1
7437 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF2EN_SHIFT 0
7438 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF3EN_MASK 0x1
7439 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF3EN_SHIFT 1
7440 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF4EN_MASK 0x1
7441 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF4EN_SHIFT 2
7442 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF5EN_MASK 0x1
7443 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF5EN_SHIFT 3
7444 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF6EN_MASK 0x1
7445 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF6EN_SHIFT 4
7446 #define E4_XSTORM_ROCE_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
7447 #define E4_XSTORM_ROCE_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 5
7448 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF8EN_MASK 0x1
7449 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF8EN_SHIFT 6
7450 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF9EN_MASK 0x1
7451 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF9EN_SHIFT 7
7453 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF10EN_MASK 0x1
7454 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF10EN_SHIFT 0
7455 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF11EN_MASK 0x1
7456 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF11EN_SHIFT 1
7457 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF12EN_MASK 0x1
7458 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF12EN_SHIFT 2
7459 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF13EN_MASK 0x1
7460 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF13EN_SHIFT 3
7461 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF14EN_MASK 0x1
7462 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF14EN_SHIFT 4
7463 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF15EN_MASK 0x1
7464 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF15EN_SHIFT 5
7465 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF16EN_MASK 0x1
7466 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF16EN_SHIFT 6
7467 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF17EN_MASK 0x1
7468 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF17EN_SHIFT 7
7470 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF18EN_MASK 0x1
7471 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF18EN_SHIFT 0
7472 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF19EN_MASK 0x1
7473 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF19EN_SHIFT 1
7474 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF20EN_MASK 0x1
7475 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF20EN_SHIFT 2
7476 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF21EN_MASK 0x1
7477 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF21EN_SHIFT 3
7478 #define E4_XSTORM_ROCE_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
7479 #define E4_XSTORM_ROCE_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
7480 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF23EN_MASK 0x1
7481 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF23EN_SHIFT 5
7482 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE0EN_MASK 0x1
7483 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE0EN_SHIFT 6
7484 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE1EN_MASK 0x1
7485 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE1EN_SHIFT 7
7487 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE2EN_MASK 0x1
7488 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE2EN_SHIFT 0
7489 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE3EN_MASK 0x1
7490 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE3EN_SHIFT 1
7491 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE4EN_MASK 0x1
7492 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE4EN_SHIFT 2
7493 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE5EN_MASK 0x1
7494 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE5EN_SHIFT 3
7495 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE6EN_MASK 0x1
7496 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE6EN_SHIFT 4
7497 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE7EN_MASK 0x1
7498 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE7EN_SHIFT 5
7499 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
7500 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
7501 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE9EN_MASK 0x1
7502 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE9EN_SHIFT 7
7504 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE10EN_MASK 0x1
7505 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE10EN_SHIFT 0
7506 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE11EN_MASK 0x1
7507 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE11EN_SHIFT 1
7508 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
7509 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
7510 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
7511 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
7512 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE14EN_MASK 0x1
7513 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE14EN_SHIFT 4
7514 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE15EN_MASK 0x1
7515 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE15EN_SHIFT 5
7516 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE16EN_MASK 0x1
7517 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE16EN_SHIFT 6
7518 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE17EN_MASK 0x1
7519 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE17EN_SHIFT 7
7521 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE18EN_MASK 0x1
7522 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE18EN_SHIFT 0
7523 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE19EN_MASK 0x1
7524 #define E4_XSTORM_ROCE_CONN_AG_CTX_RULE19EN_SHIFT 1
7525 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
7526 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
7527 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
7528 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
7529 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
7530 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
7531 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
7532 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
7533 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
7534 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
7535 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
7536 #define E4_XSTORM_ROCE_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
7538 #define E4_XSTORM_ROCE_CONN_AG_CTX_MIGRATION_MASK 0x1
7539 #define E4_XSTORM_ROCE_CONN_AG_CTX_MIGRATION_SHIFT 0
7540 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT17_MASK 0x1
7541 #define E4_XSTORM_ROCE_CONN_AG_CTX_BIT17_SHIFT 1
7542 #define E4_XSTORM_ROCE_CONN_AG_CTX_DPM_PORT_NUM_MASK 0x3
7543 #define E4_XSTORM_ROCE_CONN_AG_CTX_DPM_PORT_NUM_SHIFT 2
7544 #define E4_XSTORM_ROCE_CONN_AG_CTX_RESERVED_MASK 0x1
7545 #define E4_XSTORM_ROCE_CONN_AG_CTX_RESERVED_SHIFT 4
7546 #define E4_XSTORM_ROCE_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1
7547 #define E4_XSTORM_ROCE_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5
7548 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF23_MASK 0x3
7549 #define E4_XSTORM_ROCE_CONN_AG_CTX_CF23_SHIFT 6
7571 struct e4_tstorm_roce_conn_ag_ctx {
7575 #define E4_TSTORM_ROCE_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
7576 #define E4_TSTORM_ROCE_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
7577 #define E4_TSTORM_ROCE_CONN_AG_CTX_BIT1_MASK 0x1
7578 #define E4_TSTORM_ROCE_CONN_AG_CTX_BIT1_SHIFT 1
7579 #define E4_TSTORM_ROCE_CONN_AG_CTX_BIT2_MASK 0x1
7580 #define E4_TSTORM_ROCE_CONN_AG_CTX_BIT2_SHIFT 2
7581 #define E4_TSTORM_ROCE_CONN_AG_CTX_BIT3_MASK 0x1
7582 #define E4_TSTORM_ROCE_CONN_AG_CTX_BIT3_SHIFT 3
7583 #define E4_TSTORM_ROCE_CONN_AG_CTX_BIT4_MASK 0x1
7584 #define E4_TSTORM_ROCE_CONN_AG_CTX_BIT4_SHIFT 4
7585 #define E4_TSTORM_ROCE_CONN_AG_CTX_BIT5_MASK 0x1
7586 #define E4_TSTORM_ROCE_CONN_AG_CTX_BIT5_SHIFT 5
7587 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF0_MASK 0x3
7588 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF0_SHIFT 6
7590 #define E4_TSTORM_ROCE_CONN_AG_CTX_MSTORM_FLUSH_CF_MASK 0x3
7591 #define E4_TSTORM_ROCE_CONN_AG_CTX_MSTORM_FLUSH_CF_SHIFT 0
7592 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF2_MASK 0x3
7593 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF2_SHIFT 2
7594 #define E4_TSTORM_ROCE_CONN_AG_CTX_TIMER_STOP_ALL_CF_MASK 0x3
7595 #define E4_TSTORM_ROCE_CONN_AG_CTX_TIMER_STOP_ALL_CF_SHIFT 4
7596 #define E4_TSTORM_ROCE_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
7597 #define E4_TSTORM_ROCE_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
7599 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF5_MASK 0x3
7600 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF5_SHIFT 0
7601 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF6_MASK 0x3
7602 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF6_SHIFT 2
7603 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF7_MASK 0x3
7604 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF7_SHIFT 4
7605 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF8_MASK 0x3
7606 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF8_SHIFT 6
7608 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF9_MASK 0x3
7609 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF9_SHIFT 0
7610 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF10_MASK 0x3
7611 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF10_SHIFT 2
7612 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF0EN_MASK 0x1
7613 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF0EN_SHIFT 4
7614 #define E4_TSTORM_ROCE_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_MASK 0x1
7615 #define E4_TSTORM_ROCE_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_SHIFT 5
7616 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF2EN_MASK 0x1
7617 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF2EN_SHIFT 6
7618 #define E4_TSTORM_ROCE_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_MASK 0x1
7619 #define E4_TSTORM_ROCE_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_SHIFT 7
7621 #define E4_TSTORM_ROCE_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
7622 #define E4_TSTORM_ROCE_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 0
7623 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF5EN_MASK 0x1
7624 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF5EN_SHIFT 1
7625 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF6EN_MASK 0x1
7626 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF6EN_SHIFT 2
7627 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF7EN_MASK 0x1
7628 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF7EN_SHIFT 3
7629 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF8EN_MASK 0x1
7630 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF8EN_SHIFT 4
7631 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF9EN_MASK 0x1
7632 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF9EN_SHIFT 5
7633 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF10EN_MASK 0x1
7634 #define E4_TSTORM_ROCE_CONN_AG_CTX_CF10EN_SHIFT 6
7635 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE0EN_MASK 0x1
7636 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE0EN_SHIFT 7
7638 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE1EN_MASK 0x1
7639 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE1EN_SHIFT 0
7640 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE2EN_MASK 0x1
7641 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE2EN_SHIFT 1
7642 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE3EN_MASK 0x1
7643 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE3EN_SHIFT 2
7644 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE4EN_MASK 0x1
7645 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE4EN_SHIFT 3
7646 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE5EN_MASK 0x1
7647 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE5EN_SHIFT 4
7648 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE6EN_MASK 0x1
7649 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE6EN_SHIFT 5
7650 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE7EN_MASK 0x1
7651 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE7EN_SHIFT 6
7652 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE8EN_MASK 0x1
7653 #define E4_TSTORM_ROCE_CONN_AG_CTX_RULE8EN_SHIFT 7
7675 /* The roce storm context of Ystorm */
7676 struct ystorm_roce_conn_st_ctx {
7677 struct regpair temp[2];
7680 /* The roce storm context of Mstorm */
7681 struct pstorm_roce_conn_st_ctx {
7682 struct regpair temp[16];
7685 /* The roce storm context of Xstorm */
7686 struct xstorm_roce_conn_st_ctx {
7687 struct regpair temp[24];
7690 /* The roce storm context of Tstorm */
7691 struct tstorm_roce_conn_st_ctx {
7692 struct regpair temp[30];
7695 /* The roce storm context of Mstorm */
7696 struct mstorm_roce_conn_st_ctx {
7697 struct regpair temp[6];
7700 /* The roce storm context of Ustorm */
7701 struct ustorm_roce_conn_st_ctx {
7702 struct regpair temp[14];
7705 /* roce connection context */
7706 struct e4_roce_conn_context {
7707 struct ystorm_roce_conn_st_ctx ystorm_st_context;
7708 struct regpair ystorm_st_padding[2];
7709 struct pstorm_roce_conn_st_ctx pstorm_st_context;
7710 struct xstorm_roce_conn_st_ctx xstorm_st_context;
7711 struct e4_xstorm_roce_conn_ag_ctx xstorm_ag_context;
7712 struct e4_tstorm_roce_conn_ag_ctx tstorm_ag_context;
7713 struct timers_context timer_context;
7714 struct e4_ustorm_rdma_conn_ag_ctx ustorm_ag_context;
7715 struct tstorm_roce_conn_st_ctx tstorm_st_context;
7716 struct regpair tstorm_st_padding[2];
7717 struct mstorm_roce_conn_st_ctx mstorm_st_context;
7718 struct regpair mstorm_st_padding[2];
7719 struct ustorm_roce_conn_st_ctx ustorm_st_context;
7720 struct regpair ustorm_st_padding[2];
7723 /* roce cqes statistics */
7724 struct roce_cqe_stats {
7725 __le32 req_cqe_error;
7726 __le32 req_remote_access_errors;
7727 __le32 req_remote_invalid_request;
7728 __le32 resp_cqe_error;
7729 __le32 resp_local_length_error;
7733 /* roce create qp requester ramrod data */
7734 struct roce_create_qp_req_ramrod_data {
7736 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_ROCE_FLAVOR_MASK 0x3
7737 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_ROCE_FLAVOR_SHIFT 0
7738 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_FMR_AND_RESERVED_EN_MASK 0x1
7739 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_FMR_AND_RESERVED_EN_SHIFT 2
7740 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_SIGNALED_COMP_MASK 0x1
7741 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_SIGNALED_COMP_SHIFT 3
7742 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_PRI_MASK 0x7
7743 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_PRI_SHIFT 4
7744 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_XRC_FLAG_MASK 0x1
7745 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_XRC_FLAG_SHIFT 7
7746 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_MASK 0xF
7747 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_SHIFT 8
7748 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_MASK 0xF
7749 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_SHIFT 12
7757 __le32 ack_timeout_val;
7761 __le16 sq_num_pages;
7762 __le16 low_latency_phy_queue;
7763 struct regpair sq_pbl_addr;
7764 struct regpair orq_pbl_addr;
7765 __le16 local_mac_addr[3];
7766 __le16 remote_mac_addr[3];
7768 __le16 udp_src_port;
7772 struct regpair qp_handle_for_cqe;
7773 struct regpair qp_handle_for_async;
7774 u8 stats_counter_id;
7778 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_EDPM_MODE_MASK 0x1
7779 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_EDPM_MODE_SHIFT 0
7780 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_VF_ID_VALID_MASK 0x1
7781 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_VF_ID_VALID_SHIFT 1
7782 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_RESERVED_MASK 0x3F
7783 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_RESERVED_SHIFT 2
7786 __le16 regular_latency_phy_queue;
7790 /* roce create qp responder ramrod data */
7791 struct roce_create_qp_resp_ramrod_data {
7793 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_ROCE_FLAVOR_MASK 0x3
7794 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_ROCE_FLAVOR_SHIFT 0
7795 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RDMA_RD_EN_MASK 0x1
7796 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RDMA_RD_EN_SHIFT 2
7797 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RDMA_WR_EN_MASK 0x1
7798 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RDMA_WR_EN_SHIFT 3
7799 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_ATOMIC_EN_MASK 0x1
7800 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_ATOMIC_EN_SHIFT 4
7801 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_SRQ_FLG_MASK 0x1
7802 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_SRQ_FLG_SHIFT 5
7803 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_E2E_FLOW_CONTROL_EN_MASK 0x1
7804 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_E2E_FLOW_CONTROL_EN_SHIFT 6
7805 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RESERVED_KEY_EN_MASK 0x1
7806 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RESERVED_KEY_EN_SHIFT 7
7807 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_PRI_MASK 0x7
7808 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_PRI_SHIFT 8
7809 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_MASK 0x1F
7810 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_SHIFT 11
7811 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_XRC_FLAG_MASK 0x1
7812 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_XRC_FLAG_SHIFT 16
7813 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_VF_ID_VALID_MASK 0x1
7814 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_VF_ID_VALID_SHIFT 17
7815 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RESERVED_MASK 0x3FFF
7816 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RESERVED_SHIFT 18
7825 u8 stats_counter_id;
7830 __le16 rq_num_pages;
7831 struct rdma_srq_id srq_id;
7832 struct regpair rq_pbl_addr;
7833 struct regpair irq_pbl_addr;
7834 __le16 local_mac_addr[3];
7835 __le16 remote_mac_addr[3];
7837 __le16 udp_src_port;
7840 struct regpair qp_handle_for_cqe;
7841 struct regpair qp_handle_for_async;
7842 __le16 low_latency_phy_queue;
7846 __le16 regular_latency_phy_queue;
7853 /* roce DCQCN received statistics */
7854 struct roce_dcqcn_received_stats {
7855 struct regpair ecn_pkt_rcv;
7856 struct regpair cnp_pkt_rcv;
7859 /* roce DCQCN sent statistics */
7860 struct roce_dcqcn_sent_stats {
7861 struct regpair cnp_pkt_sent;
7864 /* RoCE destroy qp requester output params */
7865 struct roce_destroy_qp_req_output_params {
7870 /* RoCE destroy qp requester ramrod data */
7871 struct roce_destroy_qp_req_ramrod_data {
7872 struct regpair output_params_addr;
7875 /* RoCE destroy qp responder output params */
7876 struct roce_destroy_qp_resp_output_params {
7881 /* RoCE destroy qp responder ramrod data */
7882 struct roce_destroy_qp_resp_ramrod_data {
7883 struct regpair output_params_addr;
7888 /* roce error statistics */
7889 struct roce_error_stats {
7890 __le32 resp_remote_access_errors;
7894 /* roce special events statistics */
7895 struct roce_events_stats {
7896 __le32 silent_drops;
7897 __le32 rnr_naks_sent;
7898 __le32 retransmit_count;
7899 __le32 icrc_error_count;
7900 __le32 implied_nak_seq_err;
7901 __le32 duplicate_request;
7902 __le32 local_ack_timeout_err;
7903 __le32 out_of_sequence;
7904 __le32 packet_seq_err;
7905 __le32 rnr_nak_retry_err;
7908 /* roce slow path EQ cmd IDs */
7909 enum roce_event_opcode {
7910 ROCE_EVENT_CREATE_QP = 11,
7911 ROCE_EVENT_MODIFY_QP,
7912 ROCE_EVENT_QUERY_QP,
7913 ROCE_EVENT_DESTROY_QP,
7914 ROCE_EVENT_CREATE_UD_QP,
7915 ROCE_EVENT_DESTROY_UD_QP,
7916 ROCE_EVENT_FUNC_UPDATE,
7917 MAX_ROCE_EVENT_OPCODE
7920 /* roce func init ramrod data */
7921 struct roce_init_func_params {
7923 u8 cnp_vlan_priority;
7926 #define ROCE_INIT_FUNC_PARAMS_DCQCN_NP_EN_MASK 0x1
7927 #define ROCE_INIT_FUNC_PARAMS_DCQCN_NP_EN_SHIFT 0
7928 #define ROCE_INIT_FUNC_PARAMS_DCQCN_RP_EN_MASK 0x1
7929 #define ROCE_INIT_FUNC_PARAMS_DCQCN_RP_EN_SHIFT 1
7930 #define ROCE_INIT_FUNC_PARAMS_RESERVED0_MASK 0x3F
7931 #define ROCE_INIT_FUNC_PARAMS_RESERVED0_SHIFT 2
7932 __le32 cnp_send_timeout;
7938 /* roce func init ramrod data */
7939 struct roce_init_func_ramrod_data {
7940 struct rdma_init_func_ramrod_data rdma;
7941 struct roce_init_func_params roce;
7944 /* roce modify qp requester ramrod data */
7945 struct roce_modify_qp_req_ramrod_data {
7947 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MOVE_TO_ERR_FLG_MASK 0x1
7948 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MOVE_TO_ERR_FLG_SHIFT 0
7949 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MOVE_TO_SQD_FLG_MASK 0x1
7950 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MOVE_TO_SQD_FLG_SHIFT 1
7951 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_EN_SQD_ASYNC_NOTIFY_MASK 0x1
7952 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_EN_SQD_ASYNC_NOTIFY_SHIFT 2
7953 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_P_KEY_FLG_MASK 0x1
7954 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_P_KEY_FLG_SHIFT 3
7955 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ADDRESS_VECTOR_FLG_MASK 0x1
7956 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ADDRESS_VECTOR_FLG_SHIFT 4
7957 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MAX_ORD_FLG_MASK 0x1
7958 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MAX_ORD_FLG_SHIFT 5
7959 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_FLG_MASK 0x1
7960 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_FLG_SHIFT 6
7961 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_FLG_MASK 0x1
7962 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_FLG_SHIFT 7
7963 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ACK_TIMEOUT_FLG_MASK 0x1
7964 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ACK_TIMEOUT_FLG_SHIFT 8
7965 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_FLG_MASK 0x1
7966 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_FLG_SHIFT 9
7967 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_MASK 0x7
7968 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_SHIFT 10
7969 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PHYSICAL_QUEUE_FLG_MASK 0x1
7970 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PHYSICAL_QUEUE_FLG_SHIFT 13
7971 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RESERVED1_MASK 0x3
7972 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RESERVED1_SHIFT 14
7974 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_MASK 0xF
7975 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_SHIFT 0
7976 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_MASK 0xF
7977 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_SHIFT 4
7983 __le32 ack_timeout_val;
7986 __le32 reserved3[2];
7987 __le16 low_latency_phy_queue;
7988 __le16 regular_latency_phy_queue;
7993 /* roce modify qp responder ramrod data */
7994 struct roce_modify_qp_resp_ramrod_data {
7996 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MOVE_TO_ERR_FLG_MASK 0x1
7997 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MOVE_TO_ERR_FLG_SHIFT 0
7998 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_RD_EN_MASK 0x1
7999 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_RD_EN_SHIFT 1
8000 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_WR_EN_MASK 0x1
8001 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_WR_EN_SHIFT 2
8002 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_ATOMIC_EN_MASK 0x1
8003 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_ATOMIC_EN_SHIFT 3
8004 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_P_KEY_FLG_MASK 0x1
8005 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_P_KEY_FLG_SHIFT 4
8006 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_ADDRESS_VECTOR_FLG_MASK 0x1
8007 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_ADDRESS_VECTOR_FLG_SHIFT 5
8008 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MAX_IRD_FLG_MASK 0x1
8009 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MAX_IRD_FLG_SHIFT 6
8010 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PRI_FLG_MASK 0x1
8011 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PRI_FLG_SHIFT 7
8012 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_FLG_MASK 0x1
8013 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_FLG_SHIFT 8
8014 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_OPS_EN_FLG_MASK 0x1
8015 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_OPS_EN_FLG_SHIFT 9
8016 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PHYSICAL_QUEUE_FLG_MASK 0x1
8017 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PHYSICAL_QUEUE_FLG_SHIFT 10
8018 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RESERVED1_MASK 0x1F
8019 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RESERVED1_SHIFT 11
8021 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PRI_MASK 0x7
8022 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PRI_SHIFT 0
8023 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_MASK 0x1F
8024 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_SHIFT 3
8031 __le16 low_latency_phy_queue;
8032 __le16 regular_latency_phy_queue;
8038 /* RoCE query qp requester output params */
8039 struct roce_query_qp_req_output_params {
8042 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_ERR_FLG_MASK 0x1
8043 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_ERR_FLG_SHIFT 0
8044 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_SQ_DRAINING_FLG_MASK 0x1
8045 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_SQ_DRAINING_FLG_SHIFT 1
8046 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_RESERVED0_MASK 0x3FFFFFFF
8047 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_RESERVED0_SHIFT 2
8050 /* RoCE query qp requester ramrod data */
8051 struct roce_query_qp_req_ramrod_data {
8052 struct regpair output_params_addr;
8055 /* RoCE query qp responder output params */
8056 struct roce_query_qp_resp_output_params {
8059 #define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_ERROR_FLG_MASK 0x1
8060 #define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_ERROR_FLG_SHIFT 0
8061 #define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_RESERVED0_MASK 0x7FFFFFFF
8062 #define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_RESERVED0_SHIFT 1
8065 /* RoCE query qp responder ramrod data */
8066 struct roce_query_qp_resp_ramrod_data {
8067 struct regpair output_params_addr;
8070 /* ROCE ramrod command IDs */
8071 enum roce_ramrod_cmd_id {
8072 ROCE_RAMROD_CREATE_QP = 11,
8073 ROCE_RAMROD_MODIFY_QP,
8074 ROCE_RAMROD_QUERY_QP,
8075 ROCE_RAMROD_DESTROY_QP,
8076 ROCE_RAMROD_CREATE_UD_QP,
8077 ROCE_RAMROD_DESTROY_UD_QP,
8078 ROCE_RAMROD_FUNC_UPDATE,
8079 MAX_ROCE_RAMROD_CMD_ID
8082 /* RoCE func init ramrod data */
8083 struct roce_update_func_params {
8084 u8 cnp_vlan_priority;
8087 #define ROCE_UPDATE_FUNC_PARAMS_DCQCN_NP_EN_MASK 0x1
8088 #define ROCE_UPDATE_FUNC_PARAMS_DCQCN_NP_EN_SHIFT 0
8089 #define ROCE_UPDATE_FUNC_PARAMS_DCQCN_RP_EN_MASK 0x1
8090 #define ROCE_UPDATE_FUNC_PARAMS_DCQCN_RP_EN_SHIFT 1
8091 #define ROCE_UPDATE_FUNC_PARAMS_RESERVED0_MASK 0x3FFF
8092 #define ROCE_UPDATE_FUNC_PARAMS_RESERVED0_SHIFT 2
8093 __le32 cnp_send_timeout;
8096 struct e4_xstorm_roce_conn_ag_ctx_dq_ext_ld_part {
8100 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_EXIST_IN_QM0_MASK 0x1
8101 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_EXIST_IN_QM0_SHIFT 0
8102 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT1_MASK 0x1
8103 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT1_SHIFT 1
8104 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT2_MASK 0x1
8105 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT2_SHIFT 2
8106 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_EXIST_IN_QM3_MASK 0x1
8107 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_EXIST_IN_QM3_SHIFT 3
8108 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT4_MASK 0x1
8109 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT4_SHIFT 4
8110 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT5_MASK 0x1
8111 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT5_SHIFT 5
8112 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT6_MASK 0x1
8113 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT6_SHIFT 6
8114 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT7_MASK 0x1
8115 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT7_SHIFT 7
8117 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT8_MASK 0x1
8118 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT8_SHIFT 0
8119 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT9_MASK 0x1
8120 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT9_SHIFT 1
8121 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT10_MASK 0x1
8122 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT10_SHIFT 2
8123 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT11_MASK 0x1
8124 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT11_SHIFT 3
8125 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_MSDM_FLUSH_MASK 0x1
8126 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_MSDM_FLUSH_SHIFT 4
8127 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_MSEM_FLUSH_MASK 0x1
8128 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_MSEM_FLUSH_SHIFT 5
8129 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT14_MASK 0x1
8130 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT14_SHIFT 6
8131 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_YSTORM_FLUSH_MASK 0x1
8132 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_YSTORM_FLUSH_SHIFT 7
8134 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF0_MASK 0x3
8135 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF0_SHIFT 0
8136 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF1_MASK 0x3
8137 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF1_SHIFT 2
8138 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF2_MASK 0x3
8139 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF2_SHIFT 4
8140 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF3_MASK 0x3
8141 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF3_SHIFT 6
8143 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF4_MASK 0x3
8144 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF4_SHIFT 0
8145 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF5_MASK 0x3
8146 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF5_SHIFT 2
8147 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF6_MASK 0x3
8148 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF6_SHIFT 4
8149 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_FLUSH_Q0_CF_MASK 0x3
8150 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_FLUSH_Q0_CF_SHIFT 6
8152 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF8_MASK 0x3
8153 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF8_SHIFT 0
8154 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF9_MASK 0x3
8155 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF9_SHIFT 2
8156 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF10_MASK 0x3
8157 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF10_SHIFT 4
8158 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF11_MASK 0x3
8159 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF11_SHIFT 6
8161 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF12_MASK 0x3
8162 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF12_SHIFT 0
8163 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF13_MASK 0x3
8164 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF13_SHIFT 2
8165 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF14_MASK 0x3
8166 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF14_SHIFT 4
8167 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF15_MASK 0x3
8168 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF15_SHIFT 6
8170 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF16_MASK 0x3
8171 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF16_SHIFT 0
8172 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF17_MASK 0x3
8173 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF17_SHIFT 2
8174 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF18_MASK 0x3
8175 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF18_SHIFT 4
8176 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF19_MASK 0x3
8177 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF19_SHIFT 6
8179 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF20_MASK 0x3
8180 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF20_SHIFT 0
8181 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF21_MASK 0x3
8182 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF21_SHIFT 2
8183 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_SLOW_PATH_MASK 0x3
8184 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_SLOW_PATH_SHIFT 4
8185 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF0EN_MASK 0x1
8186 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF0EN_SHIFT 6
8187 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF1EN_MASK 0x1
8188 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF1EN_SHIFT 7
8190 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF2EN_MASK 0x1
8191 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF2EN_SHIFT 0
8192 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF3EN_MASK 0x1
8193 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF3EN_SHIFT 1
8194 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF4EN_MASK 0x1
8195 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF4EN_SHIFT 2
8196 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF5EN_MASK 0x1
8197 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF5EN_SHIFT 3
8198 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF6EN_MASK 0x1
8199 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF6EN_SHIFT 4
8200 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_FLUSH_Q0_CF_EN_MASK 0x1
8201 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_FLUSH_Q0_CF_EN_SHIFT 5
8202 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF8EN_MASK 0x1
8203 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF8EN_SHIFT 6
8204 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF9EN_MASK 0x1
8205 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF9EN_SHIFT 7
8207 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF10EN_MASK 0x1
8208 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF10EN_SHIFT 0
8209 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF11EN_MASK 0x1
8210 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF11EN_SHIFT 1
8211 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF12EN_MASK 0x1
8212 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF12EN_SHIFT 2
8213 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF13EN_MASK 0x1
8214 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF13EN_SHIFT 3
8215 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF14EN_MASK 0x1
8216 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF14EN_SHIFT 4
8217 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF15EN_MASK 0x1
8218 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF15EN_SHIFT 5
8219 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF16EN_MASK 0x1
8220 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF16EN_SHIFT 6
8221 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF17EN_MASK 0x1
8222 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF17EN_SHIFT 7
8224 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF18EN_MASK 0x1
8225 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF18EN_SHIFT 0
8226 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF19EN_MASK 0x1
8227 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF19EN_SHIFT 1
8228 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF20EN_MASK 0x1
8229 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF20EN_SHIFT 2
8230 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF21EN_MASK 0x1
8231 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF21EN_SHIFT 3
8232 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_SLOW_PATH_EN_MASK 0x1
8233 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_SLOW_PATH_EN_SHIFT 4
8234 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF23EN_MASK 0x1
8235 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF23EN_SHIFT 5
8236 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE0EN_MASK 0x1
8237 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE0EN_SHIFT 6
8238 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE1EN_MASK 0x1
8239 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE1EN_SHIFT 7
8241 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE2EN_MASK 0x1
8242 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE2EN_SHIFT 0
8243 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE3EN_MASK 0x1
8244 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE3EN_SHIFT 1
8245 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE4EN_MASK 0x1
8246 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE4EN_SHIFT 2
8247 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE5EN_MASK 0x1
8248 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE5EN_SHIFT 3
8249 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE6EN_MASK 0x1
8250 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE6EN_SHIFT 4
8251 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE7EN_MASK 0x1
8252 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE7EN_SHIFT 5
8253 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED1_MASK 0x1
8254 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED1_SHIFT 6
8255 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE9EN_MASK 0x1
8256 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE9EN_SHIFT 7
8258 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE10EN_MASK 0x1
8259 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE10EN_SHIFT 0
8260 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE11EN_MASK 0x1
8261 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE11EN_SHIFT 1
8262 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED2_MASK 0x1
8263 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED2_SHIFT 2
8264 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED3_MASK 0x1
8265 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED3_SHIFT 3
8266 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE14EN_MASK 0x1
8267 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE14EN_SHIFT 4
8268 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE15EN_MASK 0x1
8269 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE15EN_SHIFT 5
8270 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE16EN_MASK 0x1
8271 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE16EN_SHIFT 6
8272 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE17EN_MASK 0x1
8273 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE17EN_SHIFT 7
8275 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE18EN_MASK 0x1
8276 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE18EN_SHIFT 0
8277 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE19EN_MASK 0x1
8278 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RULE19EN_SHIFT 1
8279 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED4_MASK 0x1
8280 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED4_SHIFT 2
8281 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED5_MASK 0x1
8282 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED5_SHIFT 3
8283 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED6_MASK 0x1
8284 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED6_SHIFT 4
8285 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED7_MASK 0x1
8286 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED7_SHIFT 5
8287 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED8_MASK 0x1
8288 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED8_SHIFT 6
8289 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED9_MASK 0x1
8290 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED9_SHIFT 7
8292 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_MIGRATION_MASK 0x1
8293 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_MIGRATION_SHIFT 0
8294 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT17_MASK 0x1
8295 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT17_SHIFT 1
8296 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_DPM_PORT_NUM_MASK 0x3
8297 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_DPM_PORT_NUM_SHIFT 2
8298 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RESERVED_MASK 0x1
8299 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_RESERVED_SHIFT 4
8300 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_ROCE_EDPM_ENABLE_MASK 0x1
8301 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_ROCE_EDPM_ENABLE_SHIFT 5
8302 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF23_MASK 0x3
8303 #define E4XSTORMROCECONNAGCTXDQEXTLDPART_CF23_SHIFT 6
8323 struct e4_mstorm_roce_conn_ag_ctx {
8327 #define E4_MSTORM_ROCE_CONN_AG_CTX_BIT0_MASK 0x1
8328 #define E4_MSTORM_ROCE_CONN_AG_CTX_BIT0_SHIFT 0
8329 #define E4_MSTORM_ROCE_CONN_AG_CTX_BIT1_MASK 0x1
8330 #define E4_MSTORM_ROCE_CONN_AG_CTX_BIT1_SHIFT 1
8331 #define E4_MSTORM_ROCE_CONN_AG_CTX_CF0_MASK 0x3
8332 #define E4_MSTORM_ROCE_CONN_AG_CTX_CF0_SHIFT 2
8333 #define E4_MSTORM_ROCE_CONN_AG_CTX_CF1_MASK 0x3
8334 #define E4_MSTORM_ROCE_CONN_AG_CTX_CF1_SHIFT 4
8335 #define E4_MSTORM_ROCE_CONN_AG_CTX_CF2_MASK 0x3
8336 #define E4_MSTORM_ROCE_CONN_AG_CTX_CF2_SHIFT 6
8338 #define E4_MSTORM_ROCE_CONN_AG_CTX_CF0EN_MASK 0x1
8339 #define E4_MSTORM_ROCE_CONN_AG_CTX_CF0EN_SHIFT 0
8340 #define E4_MSTORM_ROCE_CONN_AG_CTX_CF1EN_MASK 0x1
8341 #define E4_MSTORM_ROCE_CONN_AG_CTX_CF1EN_SHIFT 1
8342 #define E4_MSTORM_ROCE_CONN_AG_CTX_CF2EN_MASK 0x1
8343 #define E4_MSTORM_ROCE_CONN_AG_CTX_CF2EN_SHIFT 2
8344 #define E4_MSTORM_ROCE_CONN_AG_CTX_RULE0EN_MASK 0x1
8345 #define E4_MSTORM_ROCE_CONN_AG_CTX_RULE0EN_SHIFT 3
8346 #define E4_MSTORM_ROCE_CONN_AG_CTX_RULE1EN_MASK 0x1
8347 #define E4_MSTORM_ROCE_CONN_AG_CTX_RULE1EN_SHIFT 4
8348 #define E4_MSTORM_ROCE_CONN_AG_CTX_RULE2EN_MASK 0x1
8349 #define E4_MSTORM_ROCE_CONN_AG_CTX_RULE2EN_SHIFT 5
8350 #define E4_MSTORM_ROCE_CONN_AG_CTX_RULE3EN_MASK 0x1
8351 #define E4_MSTORM_ROCE_CONN_AG_CTX_RULE3EN_SHIFT 6
8352 #define E4_MSTORM_ROCE_CONN_AG_CTX_RULE4EN_MASK 0x1
8353 #define E4_MSTORM_ROCE_CONN_AG_CTX_RULE4EN_SHIFT 7
8360 struct e4_mstorm_roce_req_conn_ag_ctx {
8364 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_BIT0_MASK 0x1
8365 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_BIT0_SHIFT 0
8366 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_BIT1_MASK 0x1
8367 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_BIT1_SHIFT 1
8368 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_CF0_MASK 0x3
8369 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_CF0_SHIFT 2
8370 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3
8371 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 4
8372 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_CF2_MASK 0x3
8373 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_CF2_SHIFT 6
8375 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_MASK 0x1
8376 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_SHIFT 0
8377 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1
8378 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 1
8379 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_MASK 0x1
8380 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_SHIFT 2
8381 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1
8382 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 3
8383 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1
8384 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 4
8385 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1
8386 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 5
8387 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1
8388 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 6
8389 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1
8390 #define E4_MSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 7
8397 struct e4_mstorm_roce_resp_conn_ag_ctx {
8401 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_BIT0_MASK 0x1
8402 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_BIT0_SHIFT 0
8403 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_MASK 0x1
8404 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_SHIFT 1
8405 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3
8406 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 2
8407 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_CF1_MASK 0x3
8408 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_CF1_SHIFT 4
8409 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_CF2_MASK 0x3
8410 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_CF2_SHIFT 6
8412 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1
8413 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 0
8414 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_MASK 0x1
8415 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_SHIFT 1
8416 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_MASK 0x1
8417 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_SHIFT 2
8418 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1
8419 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 3
8420 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1
8421 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 4
8422 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1
8423 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 5
8424 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1
8425 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 6
8426 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1
8427 #define E4_MSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 7
8434 struct e4_tstorm_roce_req_conn_ag_ctx {
8438 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
8439 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
8440 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_OCCURRED_MASK 0x1
8441 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_OCCURRED_SHIFT 1
8442 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_TX_CQE_ERROR_OCCURRED_MASK 0x1
8443 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_TX_CQE_ERROR_OCCURRED_SHIFT 2
8444 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_BIT3_MASK 0x1
8445 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_BIT3_SHIFT 3
8446 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_MASK 0x1
8447 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_SHIFT 4
8448 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_CACHED_ORQ_MASK 0x1
8449 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_CACHED_ORQ_SHIFT 5
8450 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_CF_MASK 0x3
8451 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_CF_SHIFT 6
8453 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_CF_MASK 0x3
8454 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_CF_SHIFT 0
8455 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_SQ_CF_MASK 0x3
8456 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_SQ_CF_SHIFT 2
8457 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_STOP_ALL_CF_MASK 0x3
8458 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_STOP_ALL_CF_SHIFT 4
8459 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
8460 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
8462 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_FORCE_COMP_CF_MASK 0x3
8463 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_FORCE_COMP_CF_SHIFT 0
8464 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_SET_TIMER_CF_MASK 0x3
8465 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_SET_TIMER_CF_SHIFT 2
8466 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_TX_ASYNC_ERROR_CF_MASK 0x3
8467 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_TX_ASYNC_ERROR_CF_SHIFT 4
8468 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RXMIT_DONE_CF_MASK 0x3
8469 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RXMIT_DONE_CF_SHIFT 6
8471 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_SCAN_COMPLETED_CF_MASK 0x3
8472 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_SCAN_COMPLETED_CF_SHIFT 0
8473 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_SQ_DRAIN_COMPLETED_CF_MASK 0x3
8474 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_SQ_DRAIN_COMPLETED_CF_SHIFT 2
8475 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_CF_EN_MASK 0x1
8476 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_CF_EN_SHIFT 4
8477 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_MASK 0x1
8478 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_SHIFT 5
8479 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_SQ_CF_EN_MASK 0x1
8480 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_SQ_CF_EN_SHIFT 6
8481 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_MASK 0x1
8482 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_SHIFT 7
8484 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
8485 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 0
8486 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_FORCE_COMP_CF_EN_MASK 0x1
8487 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_FORCE_COMP_CF_EN_SHIFT 1
8488 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_SET_TIMER_CF_EN_MASK 0x1
8489 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_SET_TIMER_CF_EN_SHIFT 2
8490 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_TX_ASYNC_ERROR_CF_EN_MASK 0x1
8491 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_TX_ASYNC_ERROR_CF_EN_SHIFT 3
8492 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RXMIT_DONE_CF_EN_MASK 0x1
8493 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RXMIT_DONE_CF_EN_SHIFT 4
8494 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_SCAN_COMPLETED_CF_EN_MASK 0x1
8495 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_SCAN_COMPLETED_CF_EN_SHIFT 5
8496 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_SQ_DRAIN_COMPLETED_CF_EN_MASK 0x1
8497 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_SQ_DRAIN_COMPLETED_CF_EN_SHIFT 6
8498 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1
8499 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 7
8501 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1
8502 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 0
8503 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_DIF_CNT_EN_MASK 0x1
8504 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_DIF_CNT_EN_SHIFT 1
8505 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1
8506 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 2
8507 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1
8508 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 3
8509 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_MASK 0x1
8510 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_SHIFT 4
8511 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_SND_SQ_CONS_EN_MASK 0x1
8512 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_SND_SQ_CONS_EN_SHIFT 5
8513 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_MASK 0x1
8514 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_SHIFT 6
8515 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_MASK 0x1
8516 #define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_SHIFT 7
8517 __le32 dif_rxmit_cnt;
8522 __le32 dif_acked_cnt;
8526 u8 tx_cqe_error_type;
8528 __le16 snd_sq_cons_th;
8533 __le16 force_comp_cons;
8534 __le32 dif_rxmit_acked_cnt;
8538 struct e4_tstorm_roce_resp_conn_ag_ctx {
8542 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
8543 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
8544 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_NOTIFY_REQUESTER_MASK 0x1
8545 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_NOTIFY_REQUESTER_SHIFT 1
8546 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_BIT2_MASK 0x1
8547 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_BIT2_SHIFT 2
8548 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_BIT3_MASK 0x1
8549 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_BIT3_SHIFT 3
8550 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_MASK 0x1
8551 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_SHIFT 4
8552 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_BIT5_MASK 0x1
8553 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_BIT5_SHIFT 5
8554 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3
8555 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 6
8557 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_CF_MASK 0x3
8558 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_CF_SHIFT 0
8559 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_TX_ERROR_CF_MASK 0x3
8560 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_TX_ERROR_CF_SHIFT 2
8561 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF3_MASK 0x3
8562 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF3_SHIFT 4
8563 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
8564 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
8566 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_MASK 0x3
8567 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_SHIFT 0
8568 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF6_MASK 0x3
8569 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF6_SHIFT 2
8570 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF7_MASK 0x3
8571 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF7_SHIFT 4
8572 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF8_MASK 0x3
8573 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF8_SHIFT 6
8575 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF9_MASK 0x3
8576 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF9_SHIFT 0
8577 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF10_MASK 0x3
8578 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF10_SHIFT 2
8579 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1
8580 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 4
8581 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_MASK 0x1
8582 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_SHIFT 5
8583 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_TX_ERROR_CF_EN_MASK 0x1
8584 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_TX_ERROR_CF_EN_SHIFT 6
8585 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_MASK 0x1
8586 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_SHIFT 7
8588 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
8589 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 0
8590 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_EN_MASK 0x1
8591 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_EN_SHIFT 1
8592 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF6EN_MASK 0x1
8593 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF6EN_SHIFT 2
8594 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF7EN_MASK 0x1
8595 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF7EN_SHIFT 3
8596 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF8EN_MASK 0x1
8597 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF8EN_SHIFT 4
8598 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF9EN_MASK 0x1
8599 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF9EN_SHIFT 5
8600 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF10EN_MASK 0x1
8601 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_CF10EN_SHIFT 6
8602 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1
8603 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 7
8605 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1
8606 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 0
8607 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1
8608 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 1
8609 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1
8610 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 2
8611 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1
8612 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 3
8613 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_MASK 0x1
8614 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_SHIFT 4
8615 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RQ_RULE_EN_MASK 0x1
8616 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RQ_RULE_EN_SHIFT 5
8617 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_MASK 0x1
8618 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_SHIFT 6
8619 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RULE8EN_MASK 0x1
8620 #define E4_TSTORM_ROCE_RESP_CONN_AG_CTX_RULE8EN_SHIFT 7
8621 __le32 psn_and_rxmit_id_echo;
8630 u8 tx_async_error_type;
8642 struct e4_ustorm_roce_req_conn_ag_ctx {
8646 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_BIT0_MASK 0x1
8647 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_BIT0_SHIFT 0
8648 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_BIT1_MASK 0x1
8649 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_BIT1_SHIFT 1
8650 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF0_MASK 0x3
8651 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF0_SHIFT 2
8652 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3
8653 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 4
8654 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF2_MASK 0x3
8655 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF2_SHIFT 6
8657 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF3_MASK 0x3
8658 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF3_SHIFT 0
8659 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF4_MASK 0x3
8660 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF4_SHIFT 2
8661 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF5_MASK 0x3
8662 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF5_SHIFT 4
8663 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF6_MASK 0x3
8664 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF6_SHIFT 6
8666 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_MASK 0x1
8667 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_SHIFT 0
8668 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1
8669 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 1
8670 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_MASK 0x1
8671 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_SHIFT 2
8672 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF3EN_MASK 0x1
8673 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF3EN_SHIFT 3
8674 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF4EN_MASK 0x1
8675 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF4EN_SHIFT 4
8676 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF5EN_MASK 0x1
8677 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF5EN_SHIFT 5
8678 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF6EN_MASK 0x1
8679 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_CF6EN_SHIFT 6
8680 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1
8681 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 7
8683 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1
8684 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 0
8685 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1
8686 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 1
8687 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1
8688 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 2
8689 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1
8690 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 3
8691 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_MASK 0x1
8692 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_SHIFT 4
8693 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE6EN_MASK 0x1
8694 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE6EN_SHIFT 5
8695 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_MASK 0x1
8696 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_SHIFT 6
8697 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_MASK 0x1
8698 #define E4_USTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_SHIFT 7
8711 struct e4_ustorm_roce_resp_conn_ag_ctx {
8715 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_BIT0_MASK 0x1
8716 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_BIT0_SHIFT 0
8717 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_BIT1_MASK 0x1
8718 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_BIT1_SHIFT 1
8719 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3
8720 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 2
8721 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF1_MASK 0x3
8722 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF1_SHIFT 4
8723 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF2_MASK 0x3
8724 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF2_SHIFT 6
8726 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF3_MASK 0x3
8727 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF3_SHIFT 0
8728 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF4_MASK 0x3
8729 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF4_SHIFT 2
8730 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF5_MASK 0x3
8731 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF5_SHIFT 4
8732 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF6_MASK 0x3
8733 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF6_SHIFT 6
8735 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1
8736 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 0
8737 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_MASK 0x1
8738 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_SHIFT 1
8739 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_MASK 0x1
8740 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_SHIFT 2
8741 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_MASK 0x1
8742 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_SHIFT 3
8743 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF4EN_MASK 0x1
8744 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF4EN_SHIFT 4
8745 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF5EN_MASK 0x1
8746 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF5EN_SHIFT 5
8747 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF6EN_MASK 0x1
8748 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_CF6EN_SHIFT 6
8749 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1
8750 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 7
8752 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1
8753 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 0
8754 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1
8755 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 1
8756 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1
8757 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 2
8758 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1
8759 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 3
8760 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_MASK 0x1
8761 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_SHIFT 4
8762 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE6EN_MASK 0x1
8763 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE6EN_SHIFT 5
8764 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_MASK 0x1
8765 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_SHIFT 6
8766 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE8EN_MASK 0x1
8767 #define E4_USTORM_ROCE_RESP_CONN_AG_CTX_RULE8EN_SHIFT 7
8780 struct e4_xstorm_roce_req_conn_ag_ctx {
8784 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
8785 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
8786 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED1_MASK 0x1
8787 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED1_SHIFT 1
8788 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED2_MASK 0x1
8789 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED2_SHIFT 2
8790 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
8791 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
8792 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED3_MASK 0x1
8793 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED3_SHIFT 4
8794 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED4_MASK 0x1
8795 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED4_SHIFT 5
8796 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED5_MASK 0x1
8797 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED5_SHIFT 6
8798 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED6_MASK 0x1
8799 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED6_SHIFT 7
8801 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED7_MASK 0x1
8802 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED7_SHIFT 0
8803 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED8_MASK 0x1
8804 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED8_SHIFT 1
8805 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_BIT10_MASK 0x1
8806 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_BIT10_SHIFT 2
8807 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_BIT11_MASK 0x1
8808 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_BIT11_SHIFT 3
8809 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_MSDM_FLUSH_MASK 0x1
8810 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_MSDM_FLUSH_SHIFT 4
8811 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_MSEM_FLUSH_MASK 0x1
8812 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_MSEM_FLUSH_SHIFT 5
8813 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_STATE_MASK 0x1
8814 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_STATE_SHIFT 6
8815 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x1
8816 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_YSTORM_FLUSH_SHIFT 7
8818 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF0_MASK 0x3
8819 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF0_SHIFT 0
8820 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3
8821 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 2
8822 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF2_MASK 0x3
8823 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF2_SHIFT 4
8824 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF3_MASK 0x3
8825 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF3_SHIFT 6
8827 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_FLUSH_CF_MASK 0x3
8828 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_FLUSH_CF_SHIFT 0
8829 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_CF_MASK 0x3
8830 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_CF_SHIFT 2
8831 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SND_RXMIT_CF_MASK 0x3
8832 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SND_RXMIT_CF_SHIFT 4
8833 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
8834 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
8836 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_DIF_ERROR_CF_MASK 0x3
8837 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_DIF_ERROR_CF_SHIFT 0
8838 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SCAN_SQ_FOR_COMP_CF_MASK 0x3
8839 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SCAN_SQ_FOR_COMP_CF_SHIFT 2
8840 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF10_MASK 0x3
8841 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF10_SHIFT 4
8842 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF11_MASK 0x3
8843 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF11_SHIFT 6
8845 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF12_MASK 0x3
8846 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF12_SHIFT 0
8847 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF13_MASK 0x3
8848 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF13_SHIFT 2
8849 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_FMR_ENDED_CF_MASK 0x3
8850 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_FMR_ENDED_CF_SHIFT 4
8851 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF15_MASK 0x3
8852 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF15_SHIFT 6
8854 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF16_MASK 0x3
8855 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF16_SHIFT 0
8856 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF17_MASK 0x3
8857 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF17_SHIFT 2
8858 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF18_MASK 0x3
8859 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF18_SHIFT 4
8860 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF19_MASK 0x3
8861 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF19_SHIFT 6
8863 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF20_MASK 0x3
8864 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF20_SHIFT 0
8865 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF21_MASK 0x3
8866 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF21_SHIFT 2
8867 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SLOW_PATH_MASK 0x3
8868 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SLOW_PATH_SHIFT 4
8869 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_MASK 0x1
8870 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_SHIFT 6
8871 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1
8872 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 7
8874 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_MASK 0x1
8875 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_SHIFT 0
8876 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF3EN_MASK 0x1
8877 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF3EN_SHIFT 1
8878 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_FLUSH_CF_EN_MASK 0x1
8879 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_FLUSH_CF_EN_SHIFT 2
8880 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_CF_EN_MASK 0x1
8881 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_CF_EN_SHIFT 3
8882 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SND_RXMIT_CF_EN_MASK 0x1
8883 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SND_RXMIT_CF_EN_SHIFT 4
8884 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
8885 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 5
8886 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_DIF_ERROR_CF_EN_MASK 0x1
8887 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_DIF_ERROR_CF_EN_SHIFT 6
8888 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SCAN_SQ_FOR_COMP_CF_EN_MASK 0x1
8889 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SCAN_SQ_FOR_COMP_CF_EN_SHIFT 7
8891 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF10EN_MASK 0x1
8892 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF10EN_SHIFT 0
8893 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF11EN_MASK 0x1
8894 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF11EN_SHIFT 1
8895 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF12EN_MASK 0x1
8896 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF12EN_SHIFT 2
8897 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF13EN_MASK 0x1
8898 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF13EN_SHIFT 3
8899 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_FME_ENDED_CF_EN_MASK 0x1
8900 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_FME_ENDED_CF_EN_SHIFT 4
8901 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF15EN_MASK 0x1
8902 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF15EN_SHIFT 5
8903 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF16EN_MASK 0x1
8904 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF16EN_SHIFT 6
8905 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF17EN_MASK 0x1
8906 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF17EN_SHIFT 7
8908 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF18EN_MASK 0x1
8909 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF18EN_SHIFT 0
8910 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF19EN_MASK 0x1
8911 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF19EN_SHIFT 1
8912 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF20EN_MASK 0x1
8913 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF20EN_SHIFT 2
8914 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF21EN_MASK 0x1
8915 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF21EN_SHIFT 3
8916 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
8917 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
8918 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF23EN_MASK 0x1
8919 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF23EN_SHIFT 5
8920 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1
8921 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 6
8922 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1
8923 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 7
8925 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1
8926 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 0
8927 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1
8928 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 1
8929 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1
8930 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 2
8931 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_MASK 0x1
8932 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_SHIFT 3
8933 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE6EN_MASK 0x1
8934 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE6EN_SHIFT 4
8935 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_E2E_CREDIT_RULE_EN_MASK 0x1
8936 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_E2E_CREDIT_RULE_EN_SHIFT 5
8937 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
8938 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
8939 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE9EN_MASK 0x1
8940 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE9EN_SHIFT 7
8942 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_PROD_EN_MASK 0x1
8943 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_PROD_EN_SHIFT 0
8944 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE11EN_MASK 0x1
8945 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE11EN_SHIFT 1
8946 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
8947 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
8948 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
8949 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
8950 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_INV_FENCE_RULE_EN_MASK 0x1
8951 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_INV_FENCE_RULE_EN_SHIFT 4
8952 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE15EN_MASK 0x1
8953 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE15EN_SHIFT 5
8954 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_ORQ_FENCE_RULE_EN_MASK 0x1
8955 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_ORQ_FENCE_RULE_EN_SHIFT 6
8956 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_MAX_ORD_RULE_EN_MASK 0x1
8957 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_MAX_ORD_RULE_EN_SHIFT 7
8959 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE18EN_MASK 0x1
8960 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE18EN_SHIFT 0
8961 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE19EN_MASK 0x1
8962 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RULE19EN_SHIFT 1
8963 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
8964 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
8965 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
8966 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
8967 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
8968 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
8969 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
8970 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
8971 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
8972 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
8973 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
8974 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
8976 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_MIGRATION_FLAG_MASK 0x1
8977 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_MIGRATION_FLAG_SHIFT 0
8978 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_BIT17_MASK 0x1
8979 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_BIT17_SHIFT 1
8980 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_DPM_PORT_NUM_MASK 0x3
8981 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_DPM_PORT_NUM_SHIFT 2
8982 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED_MASK 0x1
8983 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED_SHIFT 4
8984 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1
8985 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5
8986 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF23_MASK 0x3
8987 #define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_CF23_SHIFT 6
8994 __le16 dif_error_first_sq_cons;
8996 u8 dif_error_sge_index;
9004 __le32 dif_error_offset;
9009 struct e4_xstorm_roce_resp_conn_ag_ctx {
9013 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
9014 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
9015 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED1_MASK 0x1
9016 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED1_SHIFT 1
9017 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED2_MASK 0x1
9018 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED2_SHIFT 2
9019 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
9020 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
9021 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED3_MASK 0x1
9022 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED3_SHIFT 4
9023 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED4_MASK 0x1
9024 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED4_SHIFT 5
9025 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED5_MASK 0x1
9026 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED5_SHIFT 6
9027 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED6_MASK 0x1
9028 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED6_SHIFT 7
9030 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED7_MASK 0x1
9031 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED7_SHIFT 0
9032 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED8_MASK 0x1
9033 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED8_SHIFT 1
9034 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT10_MASK 0x1
9035 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT10_SHIFT 2
9036 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT11_MASK 0x1
9037 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT11_SHIFT 3
9038 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_MSDM_FLUSH_MASK 0x1
9039 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_MSDM_FLUSH_SHIFT 4
9040 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_MSEM_FLUSH_MASK 0x1
9041 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_MSEM_FLUSH_SHIFT 5
9042 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_ERROR_STATE_MASK 0x1
9043 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_ERROR_STATE_SHIFT 6
9044 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x1
9045 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_YSTORM_FLUSH_SHIFT 7
9047 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3
9048 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 0
9049 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF1_MASK 0x3
9050 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF1_SHIFT 2
9051 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF2_MASK 0x3
9052 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF2_SHIFT 4
9053 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF3_MASK 0x3
9054 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF3_SHIFT 6
9056 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RXMIT_CF_MASK 0x3
9057 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RXMIT_CF_SHIFT 0
9058 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_MASK 0x3
9059 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_SHIFT 2
9060 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_FORCE_ACK_CF_MASK 0x3
9061 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_FORCE_ACK_CF_SHIFT 4
9062 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
9063 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
9065 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF8_MASK 0x3
9066 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF8_SHIFT 0
9067 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF9_MASK 0x3
9068 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF9_SHIFT 2
9069 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF10_MASK 0x3
9070 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF10_SHIFT 4
9071 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF11_MASK 0x3
9072 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF11_SHIFT 6
9074 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF12_MASK 0x3
9075 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF12_SHIFT 0
9076 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF13_MASK 0x3
9077 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF13_SHIFT 2
9078 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF14_MASK 0x3
9079 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF14_SHIFT 4
9080 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF15_MASK 0x3
9081 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF15_SHIFT 6
9083 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF16_MASK 0x3
9084 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF16_SHIFT 0
9085 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF17_MASK 0x3
9086 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF17_SHIFT 2
9087 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF18_MASK 0x3
9088 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF18_SHIFT 4
9089 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF19_MASK 0x3
9090 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF19_SHIFT 6
9092 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF20_MASK 0x3
9093 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF20_SHIFT 0
9094 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF21_MASK 0x3
9095 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF21_SHIFT 2
9096 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_SLOW_PATH_MASK 0x3
9097 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_SLOW_PATH_SHIFT 4
9098 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1
9099 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 6
9100 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_MASK 0x1
9101 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_SHIFT 7
9103 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_MASK 0x1
9104 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_SHIFT 0
9105 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_MASK 0x1
9106 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_SHIFT 1
9107 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RXMIT_CF_EN_MASK 0x1
9108 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RXMIT_CF_EN_SHIFT 2
9109 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_EN_MASK 0x1
9110 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_EN_SHIFT 3
9111 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_FORCE_ACK_CF_EN_MASK 0x1
9112 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_FORCE_ACK_CF_EN_SHIFT 4
9113 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
9114 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 5
9115 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF8EN_MASK 0x1
9116 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF8EN_SHIFT 6
9117 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF9EN_MASK 0x1
9118 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF9EN_SHIFT 7
9120 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF10EN_MASK 0x1
9121 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF10EN_SHIFT 0
9122 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF11EN_MASK 0x1
9123 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF11EN_SHIFT 1
9124 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF12EN_MASK 0x1
9125 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF12EN_SHIFT 2
9126 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF13EN_MASK 0x1
9127 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF13EN_SHIFT 3
9128 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF14EN_MASK 0x1
9129 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF14EN_SHIFT 4
9130 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF15EN_MASK 0x1
9131 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF15EN_SHIFT 5
9132 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF16EN_MASK 0x1
9133 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF16EN_SHIFT 6
9134 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF17EN_MASK 0x1
9135 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF17EN_SHIFT 7
9137 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF18EN_MASK 0x1
9138 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF18EN_SHIFT 0
9139 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF19EN_MASK 0x1
9140 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF19EN_SHIFT 1
9141 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF20EN_MASK 0x1
9142 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF20EN_SHIFT 2
9143 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF21EN_MASK 0x1
9144 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF21EN_SHIFT 3
9145 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
9146 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
9147 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF23EN_MASK 0x1
9148 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF23EN_SHIFT 5
9149 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1
9150 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 6
9151 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1
9152 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 7
9154 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1
9155 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 0
9156 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1
9157 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 1
9158 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1
9159 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 2
9160 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_MASK 0x1
9161 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_SHIFT 3
9162 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE6EN_MASK 0x1
9163 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE6EN_SHIFT 4
9164 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_MASK 0x1
9165 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_SHIFT 5
9166 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
9167 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
9168 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE9EN_MASK 0x1
9169 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE9EN_SHIFT 7
9171 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_IRQ_PROD_RULE_EN_MASK 0x1
9172 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_IRQ_PROD_RULE_EN_SHIFT 0
9173 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE11EN_MASK 0x1
9174 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE11EN_SHIFT 1
9175 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
9176 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
9177 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
9178 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
9179 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE14EN_MASK 0x1
9180 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE14EN_SHIFT 4
9181 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE15EN_MASK 0x1
9182 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE15EN_SHIFT 5
9183 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE16EN_MASK 0x1
9184 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE16EN_SHIFT 6
9185 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE17EN_MASK 0x1
9186 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE17EN_SHIFT 7
9188 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE18EN_MASK 0x1
9189 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE18EN_SHIFT 0
9190 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE19EN_MASK 0x1
9191 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_RULE19EN_SHIFT 1
9192 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
9193 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
9194 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
9195 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
9196 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
9197 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
9198 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
9199 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
9200 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
9201 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
9202 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
9203 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
9205 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT16_MASK 0x1
9206 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT16_SHIFT 0
9207 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT17_MASK 0x1
9208 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT17_SHIFT 1
9209 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT18_MASK 0x1
9210 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT18_SHIFT 2
9211 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT19_MASK 0x1
9212 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT19_SHIFT 3
9213 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT20_MASK 0x1
9214 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT20_SHIFT 4
9215 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT21_MASK 0x1
9216 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT21_SHIFT 5
9217 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF23_MASK 0x3
9218 #define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_CF23_SHIFT 6
9221 __le16 irq_prod_shadow;
9225 __le16 e5_reserved1;
9231 __le32 rxmit_psn_and_id;
9232 __le32 rxmit_bytes_length;
9237 __le32 msn_and_syndrome;
9240 struct e4_ystorm_roce_conn_ag_ctx {
9244 #define E4_YSTORM_ROCE_CONN_AG_CTX_BIT0_MASK 0x1
9245 #define E4_YSTORM_ROCE_CONN_AG_CTX_BIT0_SHIFT 0
9246 #define E4_YSTORM_ROCE_CONN_AG_CTX_BIT1_MASK 0x1
9247 #define E4_YSTORM_ROCE_CONN_AG_CTX_BIT1_SHIFT 1
9248 #define E4_YSTORM_ROCE_CONN_AG_CTX_CF0_MASK 0x3
9249 #define E4_YSTORM_ROCE_CONN_AG_CTX_CF0_SHIFT 2
9250 #define E4_YSTORM_ROCE_CONN_AG_CTX_CF1_MASK 0x3
9251 #define E4_YSTORM_ROCE_CONN_AG_CTX_CF1_SHIFT 4
9252 #define E4_YSTORM_ROCE_CONN_AG_CTX_CF2_MASK 0x3
9253 #define E4_YSTORM_ROCE_CONN_AG_CTX_CF2_SHIFT 6
9255 #define E4_YSTORM_ROCE_CONN_AG_CTX_CF0EN_MASK 0x1
9256 #define E4_YSTORM_ROCE_CONN_AG_CTX_CF0EN_SHIFT 0
9257 #define E4_YSTORM_ROCE_CONN_AG_CTX_CF1EN_MASK 0x1
9258 #define E4_YSTORM_ROCE_CONN_AG_CTX_CF1EN_SHIFT 1
9259 #define E4_YSTORM_ROCE_CONN_AG_CTX_CF2EN_MASK 0x1
9260 #define E4_YSTORM_ROCE_CONN_AG_CTX_CF2EN_SHIFT 2
9261 #define E4_YSTORM_ROCE_CONN_AG_CTX_RULE0EN_MASK 0x1
9262 #define E4_YSTORM_ROCE_CONN_AG_CTX_RULE0EN_SHIFT 3
9263 #define E4_YSTORM_ROCE_CONN_AG_CTX_RULE1EN_MASK 0x1
9264 #define E4_YSTORM_ROCE_CONN_AG_CTX_RULE1EN_SHIFT 4
9265 #define E4_YSTORM_ROCE_CONN_AG_CTX_RULE2EN_MASK 0x1
9266 #define E4_YSTORM_ROCE_CONN_AG_CTX_RULE2EN_SHIFT 5
9267 #define E4_YSTORM_ROCE_CONN_AG_CTX_RULE3EN_MASK 0x1
9268 #define E4_YSTORM_ROCE_CONN_AG_CTX_RULE3EN_SHIFT 6
9269 #define E4_YSTORM_ROCE_CONN_AG_CTX_RULE4EN_MASK 0x1
9270 #define E4_YSTORM_ROCE_CONN_AG_CTX_RULE4EN_SHIFT 7
9284 struct e4_ystorm_roce_req_conn_ag_ctx {
9288 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_BIT0_MASK 0x1
9289 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_BIT0_SHIFT 0
9290 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_BIT1_MASK 0x1
9291 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_BIT1_SHIFT 1
9292 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_CF0_MASK 0x3
9293 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_CF0_SHIFT 2
9294 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3
9295 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 4
9296 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_CF2_MASK 0x3
9297 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_CF2_SHIFT 6
9299 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_MASK 0x1
9300 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_SHIFT 0
9301 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1
9302 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 1
9303 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_MASK 0x1
9304 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_SHIFT 2
9305 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1
9306 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 3
9307 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1
9308 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 4
9309 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1
9310 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 5
9311 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1
9312 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 6
9313 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1
9314 #define E4_YSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 7
9328 struct e4_ystorm_roce_resp_conn_ag_ctx {
9332 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_BIT0_MASK 0x1
9333 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_BIT0_SHIFT 0
9334 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_MASK 0x1
9335 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_SHIFT 1
9336 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3
9337 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 2
9338 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_CF1_MASK 0x3
9339 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_CF1_SHIFT 4
9340 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_CF2_MASK 0x3
9341 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_CF2_SHIFT 6
9343 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1
9344 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 0
9345 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_MASK 0x1
9346 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_SHIFT 1
9347 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_MASK 0x1
9348 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_SHIFT 2
9349 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1
9350 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 3
9351 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1
9352 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 4
9353 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1
9354 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 5
9355 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1
9356 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 6
9357 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1
9358 #define E4_YSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 7
9372 /* Roce doorbell data */
9380 /* The iwarp storm context of Ystorm */
9381 struct ystorm_iwarp_conn_st_ctx {
9385 /* The iwarp storm context of Pstorm */
9386 struct pstorm_iwarp_conn_st_ctx {
9387 __le32 reserved[36];
9390 /* The iwarp storm context of Xstorm */
9391 struct xstorm_iwarp_conn_st_ctx {
9392 __le32 reserved[48];
9395 struct e4_xstorm_iwarp_conn_ag_ctx {
9399 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
9400 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
9401 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM1_MASK 0x1
9402 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM1_SHIFT 1
9403 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM2_MASK 0x1
9404 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM2_SHIFT 2
9405 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
9406 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
9407 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT4_MASK 0x1
9408 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT4_SHIFT 4
9409 #define E4_XSTORM_IWARP_CONN_AG_CTX_RESERVED2_MASK 0x1
9410 #define E4_XSTORM_IWARP_CONN_AG_CTX_RESERVED2_SHIFT 5
9411 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT6_MASK 0x1
9412 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT6_SHIFT 6
9413 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT7_MASK 0x1
9414 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT7_SHIFT 7
9416 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT8_MASK 0x1
9417 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT8_SHIFT 0
9418 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT9_MASK 0x1
9419 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT9_SHIFT 1
9420 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT10_MASK 0x1
9421 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT10_SHIFT 2
9422 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT11_MASK 0x1
9423 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT11_SHIFT 3
9424 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT12_MASK 0x1
9425 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT12_SHIFT 4
9426 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT13_MASK 0x1
9427 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT13_SHIFT 5
9428 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT14_MASK 0x1
9429 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT14_SHIFT 6
9430 #define E4_XSTORM_IWARP_CONN_AG_CTX_YSTORM_FLUSH_OR_REWIND_SND_MAX_MASK 0x1
9431 #define E4_XSTORM_IWARP_CONN_AG_CTX_YSTORM_FLUSH_OR_REWIND_SND_MAX_SHIFT 7
9433 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF0_MASK 0x3
9434 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF0_SHIFT 0
9435 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF1_MASK 0x3
9436 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF1_SHIFT 2
9437 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF2_MASK 0x3
9438 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF2_SHIFT 4
9439 #define E4_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_MASK 0x3
9440 #define E4_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT 6
9442 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF4_MASK 0x3
9443 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF4_SHIFT 0
9444 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF5_MASK 0x3
9445 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF5_SHIFT 2
9446 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF6_MASK 0x3
9447 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF6_SHIFT 4
9448 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF7_MASK 0x3
9449 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF7_SHIFT 6
9451 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF8_MASK 0x3
9452 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF8_SHIFT 0
9453 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF9_MASK 0x3
9454 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF9_SHIFT 2
9455 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF10_MASK 0x3
9456 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF10_SHIFT 4
9457 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF11_MASK 0x3
9458 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF11_SHIFT 6
9460 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF12_MASK 0x3
9461 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF12_SHIFT 0
9462 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF13_MASK 0x3
9463 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF13_SHIFT 2
9464 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_MASK 0x3
9465 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_SHIFT 4
9466 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF15_MASK 0x3
9467 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF15_SHIFT 6
9469 #define E4_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_MASK 0x3
9470 #define E4_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_SHIFT 0
9471 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF17_MASK 0x3
9472 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF17_SHIFT 2
9473 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF18_MASK 0x3
9474 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF18_SHIFT 4
9475 #define E4_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_MASK 0x3
9476 #define E4_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_SHIFT 6
9478 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_MASK 0x3
9479 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
9480 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_MASK 0x3
9481 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_SHIFT 2
9482 #define E4_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_MASK 0x3
9483 #define E4_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_SHIFT 4
9484 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF0EN_MASK 0x1
9485 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT 6
9486 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF1EN_MASK 0x1
9487 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT 7
9489 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF2EN_MASK 0x1
9490 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT 0
9491 #define E4_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK 0x1
9492 #define E4_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT 1
9493 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF4EN_MASK 0x1
9494 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF4EN_SHIFT 2
9495 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF5EN_MASK 0x1
9496 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF5EN_SHIFT 3
9497 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF6EN_MASK 0x1
9498 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF6EN_SHIFT 4
9499 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF7EN_MASK 0x1
9500 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF7EN_SHIFT 5
9501 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF8EN_MASK 0x1
9502 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF8EN_SHIFT 6
9503 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF9EN_MASK 0x1
9504 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF9EN_SHIFT 7
9506 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF10EN_MASK 0x1
9507 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF10EN_SHIFT 0
9508 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF11EN_MASK 0x1
9509 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF11EN_SHIFT 1
9510 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF12EN_MASK 0x1
9511 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF12EN_SHIFT 2
9512 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF13EN_MASK 0x1
9513 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF13EN_SHIFT 3
9514 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_EN_MASK 0x1
9515 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_EN_SHIFT 4
9516 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF15EN_MASK 0x1
9517 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF15EN_SHIFT 5
9518 #define E4_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_EN_MASK 0x1
9519 #define E4_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_EN_SHIFT 6
9520 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF17EN_MASK 0x1
9521 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF17EN_SHIFT 7
9523 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF18EN_MASK 0x1
9524 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF18EN_SHIFT 0
9525 #define E4_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_EN_MASK 0x1
9526 #define E4_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_EN_SHIFT 1
9527 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1
9528 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2
9529 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_EN_MASK 0x1
9530 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_EN_SHIFT 3
9531 #define E4_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
9532 #define E4_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
9533 #define E4_XSTORM_IWARP_CONN_AG_CTX_SEND_TERMINATE_CF_EN_MASK 0x1
9534 #define E4_XSTORM_IWARP_CONN_AG_CTX_SEND_TERMINATE_CF_EN_SHIFT 5
9535 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK 0x1
9536 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT 6
9537 #define E4_XSTORM_IWARP_CONN_AG_CTX_MORE_TO_SEND_RULE_EN_MASK 0x1
9538 #define E4_XSTORM_IWARP_CONN_AG_CTX_MORE_TO_SEND_RULE_EN_SHIFT 7
9540 #define E4_XSTORM_IWARP_CONN_AG_CTX_TX_BLOCKED_EN_MASK 0x1
9541 #define E4_XSTORM_IWARP_CONN_AG_CTX_TX_BLOCKED_EN_SHIFT 0
9542 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK 0x1
9543 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT 1
9544 #define E4_XSTORM_IWARP_CONN_AG_CTX_RESERVED3_MASK 0x1
9545 #define E4_XSTORM_IWARP_CONN_AG_CTX_RESERVED3_SHIFT 2
9546 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE5EN_MASK 0x1
9547 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE5EN_SHIFT 3
9548 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE6EN_MASK 0x1
9549 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE6EN_SHIFT 4
9550 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE7EN_MASK 0x1
9551 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE7EN_SHIFT 5
9552 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
9553 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
9554 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE9EN_MASK 0x1
9555 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE9EN_SHIFT 7
9557 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_NOT_EMPTY_RULE_EN_MASK 0x1
9558 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_NOT_EMPTY_RULE_EN_SHIFT 0
9559 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE11EN_MASK 0x1
9560 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE11EN_SHIFT 1
9561 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
9562 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
9563 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
9564 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
9565 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FENCE_RULE_EN_MASK 0x1
9566 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FENCE_RULE_EN_SHIFT 4
9567 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE15EN_MASK 0x1
9568 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE15EN_SHIFT 5
9569 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE16EN_MASK 0x1
9570 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE16EN_SHIFT 6
9571 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE17EN_MASK 0x1
9572 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE17EN_SHIFT 7
9574 #define E4_XSTORM_IWARP_CONN_AG_CTX_IRQ_NOT_EMPTY_RULE_EN_MASK 0x1
9575 #define E4_XSTORM_IWARP_CONN_AG_CTX_IRQ_NOT_EMPTY_RULE_EN_SHIFT 0
9576 #define E4_XSTORM_IWARP_CONN_AG_CTX_HQ_NOT_FULL_RULE_EN_MASK 0x1
9577 #define E4_XSTORM_IWARP_CONN_AG_CTX_HQ_NOT_FULL_RULE_EN_SHIFT 1
9578 #define E4_XSTORM_IWARP_CONN_AG_CTX_ORQ_RD_FENCE_RULE_EN_MASK 0x1
9579 #define E4_XSTORM_IWARP_CONN_AG_CTX_ORQ_RD_FENCE_RULE_EN_SHIFT 2
9580 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE21EN_MASK 0x1
9581 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE21EN_SHIFT 3
9582 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
9583 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
9584 #define E4_XSTORM_IWARP_CONN_AG_CTX_ORQ_NOT_FULL_RULE_EN_MASK 0x1
9585 #define E4_XSTORM_IWARP_CONN_AG_CTX_ORQ_NOT_FULL_RULE_EN_SHIFT 5
9586 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
9587 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
9588 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
9589 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
9591 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT16_MASK 0x1
9592 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT16_SHIFT 0
9593 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT17_MASK 0x1
9594 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT17_SHIFT 1
9595 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT18_MASK 0x1
9596 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT18_SHIFT 2
9597 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED1_MASK 0x1
9598 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED1_SHIFT 3
9599 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED2_MASK 0x1
9600 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED2_SHIFT 4
9601 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED3_MASK 0x1
9602 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED3_SHIFT 5
9603 #define E4_XSTORM_IWARP_CONN_AG_CTX_SEND_TERMINATE_CF_MASK 0x3
9604 #define E4_XSTORM_IWARP_CONN_AG_CTX_SEND_TERMINATE_CF_SHIFT 6
9608 __le16 sq_comp_cons;
9620 __le32 more_to_send_seq;
9622 __le32 rewinded_snd_max_or_term_opcode;
9624 __le16 irq_prod_via_msdm;
9626 __le16 hq_cons_th_or_mpa_data;
9632 u8 wqe_data_pad_bytes;
9635 u8 irq_prod_via_msem;
9637 u8 max_pkt_pdu_size_lo;
9638 u8 max_pkt_pdu_size_hi;
9641 __le16 e5_reserved4;
9644 __le32 shared_queue_page_addr_lo;
9645 __le32 shared_queue_page_addr_hi;
9652 struct e4_tstorm_iwarp_conn_ag_ctx {
9656 #define E4_TSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
9657 #define E4_TSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
9658 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT1_MASK 0x1
9659 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT 1
9660 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT2_MASK 0x1
9661 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT2_SHIFT 2
9662 #define E4_TSTORM_IWARP_CONN_AG_CTX_MSTORM_FLUSH_OR_TERMINATE_SENT_MASK 0x1
9663 #define E4_TSTORM_IWARP_CONN_AG_CTX_MSTORM_FLUSH_OR_TERMINATE_SENT_SHIFT 3
9664 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT4_MASK 0x1
9665 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT4_SHIFT 4
9666 #define E4_TSTORM_IWARP_CONN_AG_CTX_CACHED_ORQ_MASK 0x1
9667 #define E4_TSTORM_IWARP_CONN_AG_CTX_CACHED_ORQ_SHIFT 5
9668 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF0_MASK 0x3
9669 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF0_SHIFT 6
9671 #define E4_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_MASK 0x3
9672 #define E4_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_SHIFT 0
9673 #define E4_TSTORM_IWARP_CONN_AG_CTX_MPA_TIMEOUT_CF_MASK 0x3
9674 #define E4_TSTORM_IWARP_CONN_AG_CTX_MPA_TIMEOUT_CF_SHIFT 2
9675 #define E4_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_MASK 0x3
9676 #define E4_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT 4
9677 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF4_MASK 0x3
9678 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF4_SHIFT 6
9680 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF5_MASK 0x3
9681 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF5_SHIFT 0
9682 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF6_MASK 0x3
9683 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF6_SHIFT 2
9684 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF7_MASK 0x3
9685 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF7_SHIFT 4
9686 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF8_MASK 0x3
9687 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF8_SHIFT 6
9689 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_AND_TCP_HANDSHAKE_COMPLETE_MASK 0x3
9690 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_AND_TCP_HANDSHAKE_COMPLETE_SHIFT 0
9691 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_MASK 0x3
9692 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_SHIFT 2
9693 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF0EN_MASK 0x1
9694 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT 4
9695 #define E4_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_EN_MASK 0x1
9696 #define E4_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_EN_SHIFT 5
9697 #define E4_TSTORM_IWARP_CONN_AG_CTX_MPA_TIMEOUT_CF_EN_MASK 0x1
9698 #define E4_TSTORM_IWARP_CONN_AG_CTX_MPA_TIMEOUT_CF_EN_SHIFT 6
9699 #define E4_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK 0x1
9700 #define E4_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT 7
9702 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF4EN_MASK 0x1
9703 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF4EN_SHIFT 0
9704 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF5EN_MASK 0x1
9705 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF5EN_SHIFT 1
9706 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF6EN_MASK 0x1
9707 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF6EN_SHIFT 2
9708 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF7EN_MASK 0x1
9709 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF7EN_SHIFT 3
9710 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF8EN_MASK 0x1
9711 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF8EN_SHIFT 4
9712 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_AND_TCP_HANDSHAKE_COMPL_EN_MASK 0x1
9713 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_AND_TCP_HANDSHAKE_COMPL_EN_SHIFT 5
9714 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_EN_MASK 0x1
9715 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_EN_SHIFT 6
9716 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK 0x1
9717 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT 7
9719 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE1EN_MASK 0x1
9720 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE1EN_SHIFT 0
9721 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK 0x1
9722 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT 1
9723 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK 0x1
9724 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT 2
9725 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK 0x1
9726 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT 3
9727 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE5EN_MASK 0x1
9728 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE5EN_SHIFT 4
9729 #define E4_TSTORM_IWARP_CONN_AG_CTX_SND_SQ_CONS_RULE_MASK 0x1
9730 #define E4_TSTORM_IWARP_CONN_AG_CTX_SND_SQ_CONS_RULE_SHIFT 5
9731 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE7EN_MASK 0x1
9732 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE7EN_SHIFT 6
9733 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE8EN_MASK 0x1
9734 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE8EN_SHIFT 7
9737 __le32 unaligned_nxt_seq;
9746 __le16 sq_tx_cons_th;
9753 __le32 last_hq_sequence;
9756 /* The iwarp storm context of Tstorm */
9757 struct tstorm_iwarp_conn_st_ctx {
9758 __le32 reserved[60];
9761 /* The iwarp storm context of Mstorm */
9762 struct mstorm_iwarp_conn_st_ctx {
9763 __le32 reserved[32];
9766 /* The iwarp storm context of Ustorm */
9767 struct ustorm_iwarp_conn_st_ctx {
9768 struct regpair reserved[14];
9771 /* iwarp connection context */
9772 struct e4_iwarp_conn_context {
9773 struct ystorm_iwarp_conn_st_ctx ystorm_st_context;
9774 struct regpair ystorm_st_padding[2];
9775 struct pstorm_iwarp_conn_st_ctx pstorm_st_context;
9776 struct regpair pstorm_st_padding[2];
9777 struct xstorm_iwarp_conn_st_ctx xstorm_st_context;
9778 struct e4_xstorm_iwarp_conn_ag_ctx xstorm_ag_context;
9779 struct e4_tstorm_iwarp_conn_ag_ctx tstorm_ag_context;
9780 struct timers_context timer_context;
9781 struct e4_ustorm_rdma_conn_ag_ctx ustorm_ag_context;
9782 struct tstorm_iwarp_conn_st_ctx tstorm_st_context;
9783 struct regpair tstorm_st_padding[2];
9784 struct mstorm_iwarp_conn_st_ctx mstorm_st_context;
9785 struct ustorm_iwarp_conn_st_ctx ustorm_st_context;
9786 struct regpair ustorm_st_padding[2];
9789 /* iWARP create QP params passed by driver to FW in CreateQP Request Ramrod */
9790 struct iwarp_create_qp_ramrod_data {
9792 #define IWARP_CREATE_QP_RAMROD_DATA_FMR_AND_RESERVED_EN_MASK 0x1
9793 #define IWARP_CREATE_QP_RAMROD_DATA_FMR_AND_RESERVED_EN_SHIFT 0
9794 #define IWARP_CREATE_QP_RAMROD_DATA_SIGNALED_COMP_MASK 0x1
9795 #define IWARP_CREATE_QP_RAMROD_DATA_SIGNALED_COMP_SHIFT 1
9796 #define IWARP_CREATE_QP_RAMROD_DATA_RDMA_RD_EN_MASK 0x1
9797 #define IWARP_CREATE_QP_RAMROD_DATA_RDMA_RD_EN_SHIFT 2
9798 #define IWARP_CREATE_QP_RAMROD_DATA_RDMA_WR_EN_MASK 0x1
9799 #define IWARP_CREATE_QP_RAMROD_DATA_RDMA_WR_EN_SHIFT 3
9800 #define IWARP_CREATE_QP_RAMROD_DATA_ATOMIC_EN_MASK 0x1
9801 #define IWARP_CREATE_QP_RAMROD_DATA_ATOMIC_EN_SHIFT 4
9802 #define IWARP_CREATE_QP_RAMROD_DATA_SRQ_FLG_MASK 0x1
9803 #define IWARP_CREATE_QP_RAMROD_DATA_SRQ_FLG_SHIFT 5
9804 #define IWARP_CREATE_QP_RAMROD_DATA_LOW_LATENCY_QUEUE_EN_MASK 0x1
9805 #define IWARP_CREATE_QP_RAMROD_DATA_LOW_LATENCY_QUEUE_EN_SHIFT 6
9806 #define IWARP_CREATE_QP_RAMROD_DATA_RESERVED0_MASK 0x1
9807 #define IWARP_CREATE_QP_RAMROD_DATA_RESERVED0_SHIFT 7
9810 __le16 sq_num_pages;
9811 __le16 rq_num_pages;
9812 __le32 reserved3[2];
9813 struct regpair qp_handle_for_cqe;
9814 struct rdma_srq_id srq_id;
9815 __le32 cq_cid_for_sq;
9816 __le32 cq_cid_for_rq;
9823 /* iWARP completion queue types */
9824 enum iwarp_eqe_async_opcode {
9825 IWARP_EVENT_TYPE_ASYNC_CONNECT_COMPLETE,
9826 IWARP_EVENT_TYPE_ASYNC_ENHANCED_MPA_REPLY_ARRIVED,
9827 IWARP_EVENT_TYPE_ASYNC_MPA_HANDSHAKE_COMPLETE,
9828 IWARP_EVENT_TYPE_ASYNC_CID_CLEANED,
9829 IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED,
9830 IWARP_EVENT_TYPE_ASYNC_QP_IN_ERROR_STATE,
9831 IWARP_EVENT_TYPE_ASYNC_CQ_OVERFLOW,
9832 IWARP_EVENT_TYPE_ASYNC_SRQ_EMPTY,
9833 IWARP_EVENT_TYPE_ASYNC_SRQ_LIMIT,
9834 MAX_IWARP_EQE_ASYNC_OPCODE
9837 struct iwarp_eqe_data_mpa_async_completion {
9838 __le16 ulp_data_len;
9843 struct iwarp_eqe_data_tcp_async_completion {
9844 __le16 ulp_data_len;
9845 u8 mpa_handshake_mode;
9849 /* iWARP completion queue types */
9850 enum iwarp_eqe_sync_opcode {
9851 IWARP_EVENT_TYPE_TCP_OFFLOAD =
9853 IWARP_EVENT_TYPE_MPA_OFFLOAD,
9854 IWARP_EVENT_TYPE_MPA_OFFLOAD_SEND_RTR,
9855 IWARP_EVENT_TYPE_CREATE_QP,
9856 IWARP_EVENT_TYPE_QUERY_QP,
9857 IWARP_EVENT_TYPE_MODIFY_QP,
9858 IWARP_EVENT_TYPE_DESTROY_QP,
9859 IWARP_EVENT_TYPE_ABORT_TCP_OFFLOAD,
9860 MAX_IWARP_EQE_SYNC_OPCODE
9863 /* iWARP EQE completion status */
9864 enum iwarp_fw_return_code {
9865 IWARP_CONN_ERROR_TCP_CONNECT_INVALID_PACKET = 6,
9866 IWARP_CONN_ERROR_TCP_CONNECTION_RST,
9867 IWARP_CONN_ERROR_TCP_CONNECT_TIMEOUT,
9868 IWARP_CONN_ERROR_MPA_ERROR_REJECT,
9869 IWARP_CONN_ERROR_MPA_NOT_SUPPORTED_VER,
9870 IWARP_CONN_ERROR_MPA_RST,
9871 IWARP_CONN_ERROR_MPA_FIN,
9872 IWARP_CONN_ERROR_MPA_RTR_MISMATCH,
9873 IWARP_CONN_ERROR_MPA_INSUF_IRD,
9874 IWARP_CONN_ERROR_MPA_INVALID_PACKET,
9875 IWARP_CONN_ERROR_MPA_LOCAL_ERROR,
9876 IWARP_CONN_ERROR_MPA_TIMEOUT,
9877 IWARP_CONN_ERROR_MPA_TERMINATE,
9878 IWARP_QP_IN_ERROR_GOOD_CLOSE,
9879 IWARP_QP_IN_ERROR_BAD_CLOSE,
9880 IWARP_EXCEPTION_DETECTED_LLP_CLOSED,
9881 IWARP_EXCEPTION_DETECTED_LLP_RESET,
9882 IWARP_EXCEPTION_DETECTED_IRQ_FULL,
9883 IWARP_EXCEPTION_DETECTED_RQ_EMPTY,
9884 IWARP_EXCEPTION_DETECTED_SRQ_EMPTY,
9885 IWARP_EXCEPTION_DETECTED_SRQ_LIMIT,
9886 IWARP_EXCEPTION_DETECTED_LLP_TIMEOUT,
9887 IWARP_EXCEPTION_DETECTED_REMOTE_PROTECTION_ERROR,
9888 IWARP_EXCEPTION_DETECTED_CQ_OVERFLOW,
9889 IWARP_EXCEPTION_DETECTED_LOCAL_CATASTROPHIC,
9890 IWARP_EXCEPTION_DETECTED_LOCAL_ACCESS_ERROR,
9891 IWARP_EXCEPTION_DETECTED_REMOTE_OPERATION_ERROR,
9892 IWARP_EXCEPTION_DETECTED_TERMINATE_RECEIVED,
9893 MAX_IWARP_FW_RETURN_CODE
9896 /* unaligned opaque data received from LL2 */
9897 struct iwarp_init_func_params {
9902 /* iwarp func init ramrod data */
9903 struct iwarp_init_func_ramrod_data {
9904 struct rdma_init_func_ramrod_data rdma;
9905 struct tcp_init_params tcp;
9906 struct iwarp_init_func_params iwarp;
9909 /* iWARP QP - possible states to transition to */
9910 enum iwarp_modify_qp_new_state_type {
9911 IWARP_MODIFY_QP_STATE_CLOSING = 1,
9912 IWARP_MODIFY_QP_STATE_ERROR = 2,
9913 MAX_IWARP_MODIFY_QP_NEW_STATE_TYPE
9916 /* iwarp modify qp responder ramrod data */
9917 struct iwarp_modify_qp_ramrod_data {
9918 __le16 transition_to_state;
9920 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_RD_EN_MASK 0x1
9921 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_RD_EN_SHIFT 0
9922 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_WR_EN_MASK 0x1
9923 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_WR_EN_SHIFT 1
9924 #define IWARP_MODIFY_QP_RAMROD_DATA_ATOMIC_EN_MASK 0x1
9925 #define IWARP_MODIFY_QP_RAMROD_DATA_ATOMIC_EN_SHIFT 2
9926 #define IWARP_MODIFY_QP_RAMROD_DATA_STATE_TRANS_EN_MASK 0x1
9927 #define IWARP_MODIFY_QP_RAMROD_DATA_STATE_TRANS_EN_SHIFT 3
9928 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_OPS_EN_FLG_MASK 0x1
9929 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_OPS_EN_FLG_SHIFT 4
9930 #define IWARP_MODIFY_QP_RAMROD_DATA_PHYSICAL_QUEUE_FLG_MASK 0x1
9931 #define IWARP_MODIFY_QP_RAMROD_DATA_PHYSICAL_QUEUE_FLG_SHIFT 5
9932 #define IWARP_MODIFY_QP_RAMROD_DATA_RESERVED_MASK 0x3FF
9933 #define IWARP_MODIFY_QP_RAMROD_DATA_RESERVED_SHIFT 6
9936 __le32 reserved1[10];
9939 /* MPA params for Enhanced mode */
9940 struct mpa_rq_params {
9945 /* MPA host Address-Len for private data */
9946 struct mpa_ulp_buffer {
9947 struct regpair addr;
9952 /* iWARP MPA offload params common to Basic and Enhanced modes */
9953 struct mpa_outgoing_params {
9957 struct mpa_rq_params out_rq;
9958 struct mpa_ulp_buffer outgoing_ulp_buffer;
9961 /* iWARP MPA offload params passed by driver to FW in MPA Offload Request
9964 struct iwarp_mpa_offload_ramrod_data {
9965 struct mpa_outgoing_params common;
9968 u8 tcp_connect_side;
9970 #define IWARP_MPA_OFFLOAD_RAMROD_DATA_RTR_SUPPORTED_MASK 0x7
9971 #define IWARP_MPA_OFFLOAD_RAMROD_DATA_RTR_SUPPORTED_SHIFT 0
9972 #define IWARP_MPA_OFFLOAD_RAMROD_DATA_RESERVED1_MASK 0x1F
9973 #define IWARP_MPA_OFFLOAD_RAMROD_DATA_RESERVED1_SHIFT 3
9975 struct mpa_ulp_buffer incoming_ulp_buffer;
9976 struct regpair async_eqe_output_buf;
9977 struct regpair handle_for_async;
9978 struct regpair shared_queue_addr;
9980 u8 stats_counter_id;
9984 /* iWARP TCP connection offload params passed by driver to FW */
9985 struct iwarp_offload_params {
9986 struct mpa_ulp_buffer incoming_ulp_buffer;
9987 struct regpair async_eqe_output_buf;
9988 struct regpair handle_for_async;
9991 u8 stats_counter_id;
9996 /* iWARP query QP output params */
9997 struct iwarp_query_qp_output_params {
9999 #define IWARP_QUERY_QP_OUTPUT_PARAMS_ERROR_FLG_MASK 0x1
10000 #define IWARP_QUERY_QP_OUTPUT_PARAMS_ERROR_FLG_SHIFT 0
10001 #define IWARP_QUERY_QP_OUTPUT_PARAMS_RESERVED0_MASK 0x7FFFFFFF
10002 #define IWARP_QUERY_QP_OUTPUT_PARAMS_RESERVED0_SHIFT 1
10006 /* iWARP query QP ramrod data */
10007 struct iwarp_query_qp_ramrod_data {
10008 struct regpair output_params_addr;
10011 /* iWARP Ramrod Command IDs */
10012 enum iwarp_ramrod_cmd_id {
10013 IWARP_RAMROD_CMD_ID_TCP_OFFLOAD = 11,
10014 IWARP_RAMROD_CMD_ID_MPA_OFFLOAD,
10015 IWARP_RAMROD_CMD_ID_MPA_OFFLOAD_SEND_RTR,
10016 IWARP_RAMROD_CMD_ID_CREATE_QP,
10017 IWARP_RAMROD_CMD_ID_QUERY_QP,
10018 IWARP_RAMROD_CMD_ID_MODIFY_QP,
10019 IWARP_RAMROD_CMD_ID_DESTROY_QP,
10020 IWARP_RAMROD_CMD_ID_ABORT_TCP_OFFLOAD,
10021 MAX_IWARP_RAMROD_CMD_ID
10024 /* Per PF iWARP retransmit path statistics */
10025 struct iwarp_rxmit_stats_drv {
10026 struct regpair tx_go_to_slow_start_event_cnt;
10027 struct regpair tx_fast_retransmit_event_cnt;
10030 /* iWARP and TCP connection offload params passed by driver to FW in iWARP
10033 struct iwarp_tcp_offload_ramrod_data {
10034 struct tcp_offload_params_opt2 tcp;
10035 struct iwarp_offload_params iwarp;
10038 /* iWARP MPA negotiation types */
10039 enum mpa_negotiation_mode {
10040 MPA_NEGOTIATION_TYPE_BASIC = 1,
10041 MPA_NEGOTIATION_TYPE_ENHANCED = 2,
10042 MAX_MPA_NEGOTIATION_MODE
10045 /* iWARP MPA Enhanced mode RTR types */
10046 enum mpa_rtr_type {
10047 MPA_RTR_TYPE_NONE = 0,
10048 MPA_RTR_TYPE_ZERO_SEND = 1,
10049 MPA_RTR_TYPE_ZERO_WRITE = 2,
10050 MPA_RTR_TYPE_ZERO_SEND_AND_WRITE = 3,
10051 MPA_RTR_TYPE_ZERO_READ = 4,
10052 MPA_RTR_TYPE_ZERO_SEND_AND_READ = 5,
10053 MPA_RTR_TYPE_ZERO_WRITE_AND_READ = 6,
10054 MPA_RTR_TYPE_ZERO_SEND_AND_WRITE_AND_READ = 7,
10058 /* unaligned opaque data received from LL2 */
10059 struct unaligned_opaque_data {
10060 __le16 first_mpa_offset;
10061 u8 tcp_payload_offset;
10063 #define UNALIGNED_OPAQUE_DATA_PKT_REACHED_WIN_RIGHT_EDGE_MASK 0x1
10064 #define UNALIGNED_OPAQUE_DATA_PKT_REACHED_WIN_RIGHT_EDGE_SHIFT 0
10065 #define UNALIGNED_OPAQUE_DATA_CONNECTION_CLOSED_MASK 0x1
10066 #define UNALIGNED_OPAQUE_DATA_CONNECTION_CLOSED_SHIFT 1
10067 #define UNALIGNED_OPAQUE_DATA_RESERVED_MASK 0x3F
10068 #define UNALIGNED_OPAQUE_DATA_RESERVED_SHIFT 2
10072 struct e4_mstorm_iwarp_conn_ag_ctx {
10076 #define E4_MSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
10077 #define E4_MSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
10078 #define E4_MSTORM_IWARP_CONN_AG_CTX_BIT1_MASK 0x1
10079 #define E4_MSTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT 1
10080 #define E4_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_MASK 0x3
10081 #define E4_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_SHIFT 2
10082 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF1_MASK 0x3
10083 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF1_SHIFT 4
10084 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF2_MASK 0x3
10085 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF2_SHIFT 6
10087 #define E4_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_EN_MASK 0x1
10088 #define E4_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_EN_SHIFT 0
10089 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF1EN_MASK 0x1
10090 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT 1
10091 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF2EN_MASK 0x1
10092 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT 2
10093 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK 0x1
10094 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT 3
10095 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE1EN_MASK 0x1
10096 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE1EN_SHIFT 4
10097 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK 0x1
10098 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT 5
10099 #define E4_MSTORM_IWARP_CONN_AG_CTX_RCQ_CONS_EN_MASK 0x1
10100 #define E4_MSTORM_IWARP_CONN_AG_CTX_RCQ_CONS_EN_SHIFT 6
10101 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK 0x1
10102 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT 7
10104 __le16 rcq_cons_th;
10109 struct e4_ustorm_iwarp_conn_ag_ctx {
10113 #define E4_USTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
10114 #define E4_USTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
10115 #define E4_USTORM_IWARP_CONN_AG_CTX_BIT1_MASK 0x1
10116 #define E4_USTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT 1
10117 #define E4_USTORM_IWARP_CONN_AG_CTX_CF0_MASK 0x3
10118 #define E4_USTORM_IWARP_CONN_AG_CTX_CF0_SHIFT 2
10119 #define E4_USTORM_IWARP_CONN_AG_CTX_CF1_MASK 0x3
10120 #define E4_USTORM_IWARP_CONN_AG_CTX_CF1_SHIFT 4
10121 #define E4_USTORM_IWARP_CONN_AG_CTX_CF2_MASK 0x3
10122 #define E4_USTORM_IWARP_CONN_AG_CTX_CF2_SHIFT 6
10124 #define E4_USTORM_IWARP_CONN_AG_CTX_CF3_MASK 0x3
10125 #define E4_USTORM_IWARP_CONN_AG_CTX_CF3_SHIFT 0
10126 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_MASK 0x3
10127 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_SHIFT 2
10128 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_MASK 0x3
10129 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_SHIFT 4
10130 #define E4_USTORM_IWARP_CONN_AG_CTX_CF6_MASK 0x3
10131 #define E4_USTORM_IWARP_CONN_AG_CTX_CF6_SHIFT 6
10133 #define E4_USTORM_IWARP_CONN_AG_CTX_CF0EN_MASK 0x1
10134 #define E4_USTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT 0
10135 #define E4_USTORM_IWARP_CONN_AG_CTX_CF1EN_MASK 0x1
10136 #define E4_USTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT 1
10137 #define E4_USTORM_IWARP_CONN_AG_CTX_CF2EN_MASK 0x1
10138 #define E4_USTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT 2
10139 #define E4_USTORM_IWARP_CONN_AG_CTX_CF3EN_MASK 0x1
10140 #define E4_USTORM_IWARP_CONN_AG_CTX_CF3EN_SHIFT 3
10141 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_EN_MASK 0x1
10142 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_EN_SHIFT 4
10143 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_EN_MASK 0x1
10144 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_EN_SHIFT 5
10145 #define E4_USTORM_IWARP_CONN_AG_CTX_CF6EN_MASK 0x1
10146 #define E4_USTORM_IWARP_CONN_AG_CTX_CF6EN_SHIFT 6
10147 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_SE_EN_MASK 0x1
10148 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_SE_EN_SHIFT 7
10150 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_EN_MASK 0x1
10151 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_EN_SHIFT 0
10152 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK 0x1
10153 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT 1
10154 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK 0x1
10155 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT 2
10156 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK 0x1
10157 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT 3
10158 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE5EN_MASK 0x1
10159 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE5EN_SHIFT 4
10160 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE6EN_MASK 0x1
10161 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE6EN_SHIFT 5
10162 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE7EN_MASK 0x1
10163 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE7EN_SHIFT 6
10164 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE8EN_MASK 0x1
10165 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE8EN_SHIFT 7
10178 struct e4_ystorm_iwarp_conn_ag_ctx {
10182 #define E4_YSTORM_IWARP_CONN_AG_CTX_BIT0_MASK 0x1
10183 #define E4_YSTORM_IWARP_CONN_AG_CTX_BIT0_SHIFT 0
10184 #define E4_YSTORM_IWARP_CONN_AG_CTX_BIT1_MASK 0x1
10185 #define E4_YSTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT 1
10186 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF0_MASK 0x3
10187 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF0_SHIFT 2
10188 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF1_MASK 0x3
10189 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF1_SHIFT 4
10190 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF2_MASK 0x3
10191 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF2_SHIFT 6
10193 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF0EN_MASK 0x1
10194 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT 0
10195 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF1EN_MASK 0x1
10196 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT 1
10197 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF2EN_MASK 0x1
10198 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT 2
10199 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK 0x1
10200 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT 3
10201 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE1EN_MASK 0x1
10202 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE1EN_SHIFT 4
10203 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK 0x1
10204 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT 5
10205 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK 0x1
10206 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT 6
10207 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK 0x1
10208 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT 7
10222 /* The fcoe storm context of Ystorm */
10223 struct ystorm_fcoe_conn_st_ctx {
10228 __le16 stat_ram_addr;
10230 __le16 max_fc_payload_len;
10231 __le16 tx_max_fc_pay_len;
10235 struct regpair reserved;
10236 __le16 min_frame_size;
10237 u8 protection_info_flags;
10238 #define YSTORM_FCOE_CONN_ST_CTX_SUPPORT_PROTECTION_MASK 0x1
10239 #define YSTORM_FCOE_CONN_ST_CTX_SUPPORT_PROTECTION_SHIFT 0
10240 #define YSTORM_FCOE_CONN_ST_CTX_VALID_MASK 0x1
10241 #define YSTORM_FCOE_CONN_ST_CTX_VALID_SHIFT 1
10242 #define YSTORM_FCOE_CONN_ST_CTX_RESERVED1_MASK 0x3F
10243 #define YSTORM_FCOE_CONN_ST_CTX_RESERVED1_SHIFT 2
10244 u8 dst_protection_per_mss;
10245 u8 src_protection_per_mss;
10246 u8 ptu_log_page_size;
10248 #define YSTORM_FCOE_CONN_ST_CTX_INNER_VLAN_FLAG_MASK 0x1
10249 #define YSTORM_FCOE_CONN_ST_CTX_INNER_VLAN_FLAG_SHIFT 0
10250 #define YSTORM_FCOE_CONN_ST_CTX_OUTER_VLAN_FLAG_MASK 0x1
10251 #define YSTORM_FCOE_CONN_ST_CTX_OUTER_VLAN_FLAG_SHIFT 1
10252 #define YSTORM_FCOE_CONN_ST_CTX_RSRV_MASK 0x3F
10253 #define YSTORM_FCOE_CONN_ST_CTX_RSRV_SHIFT 2
10257 /* FCoE 16-bits vlan structure */
10258 struct fcoe_vlan_fields {
10260 #define FCOE_VLAN_FIELDS_VID_MASK 0xFFF
10261 #define FCOE_VLAN_FIELDS_VID_SHIFT 0
10262 #define FCOE_VLAN_FIELDS_CLI_MASK 0x1
10263 #define FCOE_VLAN_FIELDS_CLI_SHIFT 12
10264 #define FCOE_VLAN_FIELDS_PRI_MASK 0x7
10265 #define FCOE_VLAN_FIELDS_PRI_SHIFT 13
10268 /* FCoE 16-bits vlan union */
10269 union fcoe_vlan_field_union {
10270 struct fcoe_vlan_fields fields;
10274 /* FCoE 16-bits vlan, vif union */
10275 union fcoe_vlan_vif_field_union {
10276 union fcoe_vlan_field_union vlan;
10280 /* Ethernet context section */
10281 struct pstorm_fcoe_eth_context_section {
10294 union fcoe_vlan_vif_field_union vif_outer_vlan;
10295 __le16 vif_outer_eth_type;
10296 union fcoe_vlan_vif_field_union inner_vlan;
10297 __le16 inner_eth_type;
10300 /* The fcoe storm context of Pstorm */
10301 struct pstorm_fcoe_conn_st_ctx {
10306 __le16 stat_ram_addr;
10308 struct regpair abts_cleanup_addr;
10309 struct pstorm_fcoe_eth_context_section eth;
10314 #define PSTORM_FCOE_CONN_ST_CTX_VNTAG_VLAN_MASK 0x1
10315 #define PSTORM_FCOE_CONN_ST_CTX_VNTAG_VLAN_SHIFT 0
10316 #define PSTORM_FCOE_CONN_ST_CTX_SUPPORT_REC_RR_TOV_MASK 0x1
10317 #define PSTORM_FCOE_CONN_ST_CTX_SUPPORT_REC_RR_TOV_SHIFT 1
10318 #define PSTORM_FCOE_CONN_ST_CTX_INNER_VLAN_FLAG_MASK 0x1
10319 #define PSTORM_FCOE_CONN_ST_CTX_INNER_VLAN_FLAG_SHIFT 2
10320 #define PSTORM_FCOE_CONN_ST_CTX_OUTER_VLAN_FLAG_MASK 0x1
10321 #define PSTORM_FCOE_CONN_ST_CTX_OUTER_VLAN_FLAG_SHIFT 3
10322 #define PSTORM_FCOE_CONN_ST_CTX_SINGLE_VLAN_FLAG_MASK 0x1
10323 #define PSTORM_FCOE_CONN_ST_CTX_SINGLE_VLAN_FLAG_SHIFT 4
10324 #define PSTORM_FCOE_CONN_ST_CTX_RESERVED_MASK 0x7
10325 #define PSTORM_FCOE_CONN_ST_CTX_RESERVED_SHIFT 5
10330 __le16 rec_rr_tov_val;
10331 u8 q_relative_offset;
10335 /* The fcoe storm context of Xstorm */
10336 struct xstorm_fcoe_conn_st_ctx {
10340 u8 cached_wqes_avail;
10341 __le16 stat_ram_addr;
10343 #define XSTORM_FCOE_CONN_ST_CTX_SQ_DEFERRED_MASK 0x1
10344 #define XSTORM_FCOE_CONN_ST_CTX_SQ_DEFERRED_SHIFT 0
10345 #define XSTORM_FCOE_CONN_ST_CTX_INNER_VLAN_FLAG_MASK 0x1
10346 #define XSTORM_FCOE_CONN_ST_CTX_INNER_VLAN_FLAG_SHIFT 1
10347 #define XSTORM_FCOE_CONN_ST_CTX_INNER_VLAN_FLAG_ORIG_MASK 0x1
10348 #define XSTORM_FCOE_CONN_ST_CTX_INNER_VLAN_FLAG_ORIG_SHIFT 2
10349 #define XSTORM_FCOE_CONN_ST_CTX_LAST_QUEUE_HANDLED_MASK 0x3
10350 #define XSTORM_FCOE_CONN_ST_CTX_LAST_QUEUE_HANDLED_SHIFT 3
10351 #define XSTORM_FCOE_CONN_ST_CTX_RSRV_MASK 0x7
10352 #define XSTORM_FCOE_CONN_ST_CTX_RSRV_SHIFT 5
10353 u8 cached_wqes_offset;
10358 __le16 num_pages_in_pbl;
10360 struct regpair sq_pbl_addr;
10361 struct regpair sq_curr_page_addr;
10362 struct regpair sq_next_page_addr;
10363 struct regpair xferq_pbl_addr;
10364 struct regpair xferq_curr_page_addr;
10365 struct regpair xferq_next_page_addr;
10366 struct regpair respq_pbl_addr;
10367 struct regpair respq_curr_page_addr;
10368 struct regpair respq_next_page_addr;
10370 __le16 tx_max_fc_pay_len;
10371 __le16 max_fc_payload_len;
10372 __le16 min_frame_size;
10373 __le16 sq_pbl_next_index;
10374 __le16 respq_pbl_next_index;
10375 u8 fcp_cmd_byte_credit;
10376 u8 fcp_rsp_byte_credit;
10377 __le16 protection_info;
10378 #define XSTORM_FCOE_CONN_ST_CTX_PROTECTION_PERF_MASK 0x1
10379 #define XSTORM_FCOE_CONN_ST_CTX_PROTECTION_PERF_SHIFT 0
10380 #define XSTORM_FCOE_CONN_ST_CTX_SUPPORT_PROTECTION_MASK 0x1
10381 #define XSTORM_FCOE_CONN_ST_CTX_SUPPORT_PROTECTION_SHIFT 1
10382 #define XSTORM_FCOE_CONN_ST_CTX_VALID_MASK 0x1
10383 #define XSTORM_FCOE_CONN_ST_CTX_VALID_SHIFT 2
10384 #define XSTORM_FCOE_CONN_ST_CTX_FRAME_PROT_ALIGNED_MASK 0x1
10385 #define XSTORM_FCOE_CONN_ST_CTX_FRAME_PROT_ALIGNED_SHIFT 3
10386 #define XSTORM_FCOE_CONN_ST_CTX_RESERVED3_MASK 0xF
10387 #define XSTORM_FCOE_CONN_ST_CTX_RESERVED3_SHIFT 4
10388 #define XSTORM_FCOE_CONN_ST_CTX_DST_PROTECTION_PER_MSS_MASK 0xFF
10389 #define XSTORM_FCOE_CONN_ST_CTX_DST_PROTECTION_PER_MSS_SHIFT 8
10390 __le16 xferq_pbl_next_index;
10393 u8 fcp_xfer_byte_credit;
10395 struct fcoe_wqe cached_wqes[16];
10398 struct e4_xstorm_fcoe_conn_ag_ctx {
10402 #define E4_XSTORM_FCOE_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
10403 #define E4_XSTORM_FCOE_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
10404 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED1_MASK 0x1
10405 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED1_SHIFT 1
10406 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED2_MASK 0x1
10407 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED2_SHIFT 2
10408 #define E4_XSTORM_FCOE_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
10409 #define E4_XSTORM_FCOE_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
10410 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED3_MASK 0x1
10411 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED3_SHIFT 4
10412 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED4_MASK 0x1
10413 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED4_SHIFT 5
10414 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED5_MASK 0x1
10415 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED5_SHIFT 6
10416 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED6_MASK 0x1
10417 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED6_SHIFT 7
10419 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED7_MASK 0x1
10420 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED7_SHIFT 0
10421 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED8_MASK 0x1
10422 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED8_SHIFT 1
10423 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED9_MASK 0x1
10424 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED9_SHIFT 2
10425 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT11_MASK 0x1
10426 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT11_SHIFT 3
10427 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT12_MASK 0x1
10428 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT12_SHIFT 4
10429 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT13_MASK 0x1
10430 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT13_SHIFT 5
10431 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT14_MASK 0x1
10432 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT14_SHIFT 6
10433 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT15_MASK 0x1
10434 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT15_SHIFT 7
10436 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF0_MASK 0x3
10437 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF0_SHIFT 0
10438 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF1_MASK 0x3
10439 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF1_SHIFT 2
10440 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF2_MASK 0x3
10441 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF2_SHIFT 4
10442 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF3_MASK 0x3
10443 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF3_SHIFT 6
10445 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF4_MASK 0x3
10446 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF4_SHIFT 0
10447 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF5_MASK 0x3
10448 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF5_SHIFT 2
10449 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF6_MASK 0x3
10450 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF6_SHIFT 4
10451 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF7_MASK 0x3
10452 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF7_SHIFT 6
10454 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF8_MASK 0x3
10455 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF8_SHIFT 0
10456 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF9_MASK 0x3
10457 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF9_SHIFT 2
10458 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF10_MASK 0x3
10459 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF10_SHIFT 4
10460 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF11_MASK 0x3
10461 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF11_SHIFT 6
10463 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF12_MASK 0x3
10464 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF12_SHIFT 0
10465 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF13_MASK 0x3
10466 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF13_SHIFT 2
10467 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF14_MASK 0x3
10468 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF14_SHIFT 4
10469 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF15_MASK 0x3
10470 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF15_SHIFT 6
10472 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF16_MASK 0x3
10473 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF16_SHIFT 0
10474 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF17_MASK 0x3
10475 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF17_SHIFT 2
10476 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF18_MASK 0x3
10477 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF18_SHIFT 4
10478 #define E4_XSTORM_FCOE_CONN_AG_CTX_DQ_CF_MASK 0x3
10479 #define E4_XSTORM_FCOE_CONN_AG_CTX_DQ_CF_SHIFT 6
10481 #define E4_XSTORM_FCOE_CONN_AG_CTX_FLUSH_Q0_MASK 0x3
10482 #define E4_XSTORM_FCOE_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
10483 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED10_MASK 0x3
10484 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED10_SHIFT 2
10485 #define E4_XSTORM_FCOE_CONN_AG_CTX_SLOW_PATH_MASK 0x3
10486 #define E4_XSTORM_FCOE_CONN_AG_CTX_SLOW_PATH_SHIFT 4
10487 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF0EN_MASK 0x1
10488 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF0EN_SHIFT 6
10489 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF1EN_MASK 0x1
10490 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF1EN_SHIFT 7
10492 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF2EN_MASK 0x1
10493 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF2EN_SHIFT 0
10494 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF3EN_MASK 0x1
10495 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF3EN_SHIFT 1
10496 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF4EN_MASK 0x1
10497 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF4EN_SHIFT 2
10498 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF5EN_MASK 0x1
10499 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF5EN_SHIFT 3
10500 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF6EN_MASK 0x1
10501 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF6EN_SHIFT 4
10502 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF7EN_MASK 0x1
10503 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF7EN_SHIFT 5
10504 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF8EN_MASK 0x1
10505 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF8EN_SHIFT 6
10506 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF9EN_MASK 0x1
10507 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF9EN_SHIFT 7
10509 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF10EN_MASK 0x1
10510 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF10EN_SHIFT 0
10511 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF11EN_MASK 0x1
10512 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF11EN_SHIFT 1
10513 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF12EN_MASK 0x1
10514 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF12EN_SHIFT 2
10515 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF13EN_MASK 0x1
10516 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF13EN_SHIFT 3
10517 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF14EN_MASK 0x1
10518 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF14EN_SHIFT 4
10519 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF15EN_MASK 0x1
10520 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF15EN_SHIFT 5
10521 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF16EN_MASK 0x1
10522 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF16EN_SHIFT 6
10523 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF17EN_MASK 0x1
10524 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF17EN_SHIFT 7
10526 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF18EN_MASK 0x1
10527 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF18EN_SHIFT 0
10528 #define E4_XSTORM_FCOE_CONN_AG_CTX_DQ_CF_EN_MASK 0x1
10529 #define E4_XSTORM_FCOE_CONN_AG_CTX_DQ_CF_EN_SHIFT 1
10530 #define E4_XSTORM_FCOE_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1
10531 #define E4_XSTORM_FCOE_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2
10532 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED11_MASK 0x1
10533 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED11_SHIFT 3
10534 #define E4_XSTORM_FCOE_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
10535 #define E4_XSTORM_FCOE_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
10536 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF23EN_MASK 0x1
10537 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF23EN_SHIFT 5
10538 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED12_MASK 0x1
10539 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED12_SHIFT 6
10540 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED13_MASK 0x1
10541 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED13_SHIFT 7
10543 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED14_MASK 0x1
10544 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED14_SHIFT 0
10545 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED15_MASK 0x1
10546 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED15_SHIFT 1
10547 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED16_MASK 0x1
10548 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESERVED16_SHIFT 2
10549 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE5EN_MASK 0x1
10550 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE5EN_SHIFT 3
10551 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE6EN_MASK 0x1
10552 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE6EN_SHIFT 4
10553 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE7EN_MASK 0x1
10554 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE7EN_SHIFT 5
10555 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
10556 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
10557 #define E4_XSTORM_FCOE_CONN_AG_CTX_XFERQ_DECISION_EN_MASK 0x1
10558 #define E4_XSTORM_FCOE_CONN_AG_CTX_XFERQ_DECISION_EN_SHIFT 7
10560 #define E4_XSTORM_FCOE_CONN_AG_CTX_SQ_DECISION_EN_MASK 0x1
10561 #define E4_XSTORM_FCOE_CONN_AG_CTX_SQ_DECISION_EN_SHIFT 0
10562 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE11EN_MASK 0x1
10563 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE11EN_SHIFT 1
10564 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
10565 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
10566 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
10567 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
10568 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE14EN_MASK 0x1
10569 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE14EN_SHIFT 4
10570 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE15EN_MASK 0x1
10571 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE15EN_SHIFT 5
10572 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE16EN_MASK 0x1
10573 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE16EN_SHIFT 6
10574 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE17EN_MASK 0x1
10575 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE17EN_SHIFT 7
10577 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESPQ_DECISION_EN_MASK 0x1
10578 #define E4_XSTORM_FCOE_CONN_AG_CTX_RESPQ_DECISION_EN_SHIFT 0
10579 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE19EN_MASK 0x1
10580 #define E4_XSTORM_FCOE_CONN_AG_CTX_RULE19EN_SHIFT 1
10581 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
10582 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
10583 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
10584 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
10585 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
10586 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
10587 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
10588 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
10589 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
10590 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
10591 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
10592 #define E4_XSTORM_FCOE_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
10594 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT16_MASK 0x1
10595 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT16_SHIFT 0
10596 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT17_MASK 0x1
10597 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT17_SHIFT 1
10598 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT18_MASK 0x1
10599 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT18_SHIFT 2
10600 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT19_MASK 0x1
10601 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT19_SHIFT 3
10602 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT20_MASK 0x1
10603 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT20_SHIFT 4
10604 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT21_MASK 0x1
10605 #define E4_XSTORM_FCOE_CONN_AG_CTX_BIT21_SHIFT 5
10606 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF23_MASK 0x3
10607 #define E4_XSTORM_FCOE_CONN_AG_CTX_CF23_SHIFT 6
10609 __le16 physical_q0;
10635 /* The fcoe storm context of Ustorm */
10636 struct ustorm_fcoe_conn_st_ctx {
10637 struct regpair respq_pbl_addr;
10638 __le16 num_pages_in_pbl;
10639 u8 ptu_log_page_size;
10645 struct e4_tstorm_fcoe_conn_ag_ctx {
10649 #define E4_TSTORM_FCOE_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
10650 #define E4_TSTORM_FCOE_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
10651 #define E4_TSTORM_FCOE_CONN_AG_CTX_BIT1_MASK 0x1
10652 #define E4_TSTORM_FCOE_CONN_AG_CTX_BIT1_SHIFT 1
10653 #define E4_TSTORM_FCOE_CONN_AG_CTX_BIT2_MASK 0x1
10654 #define E4_TSTORM_FCOE_CONN_AG_CTX_BIT2_SHIFT 2
10655 #define E4_TSTORM_FCOE_CONN_AG_CTX_BIT3_MASK 0x1
10656 #define E4_TSTORM_FCOE_CONN_AG_CTX_BIT3_SHIFT 3
10657 #define E4_TSTORM_FCOE_CONN_AG_CTX_BIT4_MASK 0x1
10658 #define E4_TSTORM_FCOE_CONN_AG_CTX_BIT4_SHIFT 4
10659 #define E4_TSTORM_FCOE_CONN_AG_CTX_BIT5_MASK 0x1
10660 #define E4_TSTORM_FCOE_CONN_AG_CTX_BIT5_SHIFT 5
10661 #define E4_TSTORM_FCOE_CONN_AG_CTX_DUMMY_TIMER_CF_MASK 0x3
10662 #define E4_TSTORM_FCOE_CONN_AG_CTX_DUMMY_TIMER_CF_SHIFT 6
10664 #define E4_TSTORM_FCOE_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
10665 #define E4_TSTORM_FCOE_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 0
10666 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF2_MASK 0x3
10667 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF2_SHIFT 2
10668 #define E4_TSTORM_FCOE_CONN_AG_CTX_TIMER_STOP_ALL_CF_MASK 0x3
10669 #define E4_TSTORM_FCOE_CONN_AG_CTX_TIMER_STOP_ALL_CF_SHIFT 4
10670 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF4_MASK 0x3
10671 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF4_SHIFT 6
10673 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF5_MASK 0x3
10674 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF5_SHIFT 0
10675 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF6_MASK 0x3
10676 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF6_SHIFT 2
10677 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF7_MASK 0x3
10678 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF7_SHIFT 4
10679 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF8_MASK 0x3
10680 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF8_SHIFT 6
10682 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF9_MASK 0x3
10683 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF9_SHIFT 0
10684 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF10_MASK 0x3
10685 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF10_SHIFT 2
10686 #define E4_TSTORM_FCOE_CONN_AG_CTX_DUMMY_TIMER_CF_EN_MASK 0x1
10687 #define E4_TSTORM_FCOE_CONN_AG_CTX_DUMMY_TIMER_CF_EN_SHIFT 4
10688 #define E4_TSTORM_FCOE_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
10689 #define E4_TSTORM_FCOE_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 5
10690 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF2EN_MASK 0x1
10691 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF2EN_SHIFT 6
10692 #define E4_TSTORM_FCOE_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_MASK 0x1
10693 #define E4_TSTORM_FCOE_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_SHIFT 7
10695 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF4EN_MASK 0x1
10696 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF4EN_SHIFT 0
10697 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF5EN_MASK 0x1
10698 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF5EN_SHIFT 1
10699 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF6EN_MASK 0x1
10700 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF6EN_SHIFT 2
10701 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF7EN_MASK 0x1
10702 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF7EN_SHIFT 3
10703 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF8EN_MASK 0x1
10704 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF8EN_SHIFT 4
10705 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF9EN_MASK 0x1
10706 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF9EN_SHIFT 5
10707 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF10EN_MASK 0x1
10708 #define E4_TSTORM_FCOE_CONN_AG_CTX_CF10EN_SHIFT 6
10709 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE0EN_MASK 0x1
10710 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE0EN_SHIFT 7
10712 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE1EN_MASK 0x1
10713 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE1EN_SHIFT 0
10714 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE2EN_MASK 0x1
10715 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE2EN_SHIFT 1
10716 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE3EN_MASK 0x1
10717 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE3EN_SHIFT 2
10718 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE4EN_MASK 0x1
10719 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE4EN_SHIFT 3
10720 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE5EN_MASK 0x1
10721 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE5EN_SHIFT 4
10722 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE6EN_MASK 0x1
10723 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE6EN_SHIFT 5
10724 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE7EN_MASK 0x1
10725 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE7EN_SHIFT 6
10726 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE8EN_MASK 0x1
10727 #define E4_TSTORM_FCOE_CONN_AG_CTX_RULE8EN_SHIFT 7
10732 struct e4_ustorm_fcoe_conn_ag_ctx {
10736 #define E4_USTORM_FCOE_CONN_AG_CTX_BIT0_MASK 0x1
10737 #define E4_USTORM_FCOE_CONN_AG_CTX_BIT0_SHIFT 0
10738 #define E4_USTORM_FCOE_CONN_AG_CTX_BIT1_MASK 0x1
10739 #define E4_USTORM_FCOE_CONN_AG_CTX_BIT1_SHIFT 1
10740 #define E4_USTORM_FCOE_CONN_AG_CTX_CF0_MASK 0x3
10741 #define E4_USTORM_FCOE_CONN_AG_CTX_CF0_SHIFT 2
10742 #define E4_USTORM_FCOE_CONN_AG_CTX_CF1_MASK 0x3
10743 #define E4_USTORM_FCOE_CONN_AG_CTX_CF1_SHIFT 4
10744 #define E4_USTORM_FCOE_CONN_AG_CTX_CF2_MASK 0x3
10745 #define E4_USTORM_FCOE_CONN_AG_CTX_CF2_SHIFT 6
10747 #define E4_USTORM_FCOE_CONN_AG_CTX_CF3_MASK 0x3
10748 #define E4_USTORM_FCOE_CONN_AG_CTX_CF3_SHIFT 0
10749 #define E4_USTORM_FCOE_CONN_AG_CTX_CF4_MASK 0x3
10750 #define E4_USTORM_FCOE_CONN_AG_CTX_CF4_SHIFT 2
10751 #define E4_USTORM_FCOE_CONN_AG_CTX_CF5_MASK 0x3
10752 #define E4_USTORM_FCOE_CONN_AG_CTX_CF5_SHIFT 4
10753 #define E4_USTORM_FCOE_CONN_AG_CTX_CF6_MASK 0x3
10754 #define E4_USTORM_FCOE_CONN_AG_CTX_CF6_SHIFT 6
10756 #define E4_USTORM_FCOE_CONN_AG_CTX_CF0EN_MASK 0x1
10757 #define E4_USTORM_FCOE_CONN_AG_CTX_CF0EN_SHIFT 0
10758 #define E4_USTORM_FCOE_CONN_AG_CTX_CF1EN_MASK 0x1
10759 #define E4_USTORM_FCOE_CONN_AG_CTX_CF1EN_SHIFT 1
10760 #define E4_USTORM_FCOE_CONN_AG_CTX_CF2EN_MASK 0x1
10761 #define E4_USTORM_FCOE_CONN_AG_CTX_CF2EN_SHIFT 2
10762 #define E4_USTORM_FCOE_CONN_AG_CTX_CF3EN_MASK 0x1
10763 #define E4_USTORM_FCOE_CONN_AG_CTX_CF3EN_SHIFT 3
10764 #define E4_USTORM_FCOE_CONN_AG_CTX_CF4EN_MASK 0x1
10765 #define E4_USTORM_FCOE_CONN_AG_CTX_CF4EN_SHIFT 4
10766 #define E4_USTORM_FCOE_CONN_AG_CTX_CF5EN_MASK 0x1
10767 #define E4_USTORM_FCOE_CONN_AG_CTX_CF5EN_SHIFT 5
10768 #define E4_USTORM_FCOE_CONN_AG_CTX_CF6EN_MASK 0x1
10769 #define E4_USTORM_FCOE_CONN_AG_CTX_CF6EN_SHIFT 6
10770 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE0EN_MASK 0x1
10771 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE0EN_SHIFT 7
10773 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE1EN_MASK 0x1
10774 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE1EN_SHIFT 0
10775 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE2EN_MASK 0x1
10776 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE2EN_SHIFT 1
10777 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE3EN_MASK 0x1
10778 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE3EN_SHIFT 2
10779 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE4EN_MASK 0x1
10780 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE4EN_SHIFT 3
10781 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE5EN_MASK 0x1
10782 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE5EN_SHIFT 4
10783 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE6EN_MASK 0x1
10784 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE6EN_SHIFT 5
10785 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE7EN_MASK 0x1
10786 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE7EN_SHIFT 6
10787 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE8EN_MASK 0x1
10788 #define E4_USTORM_FCOE_CONN_AG_CTX_RULE8EN_SHIFT 7
10801 /* The fcoe storm context of Tstorm */
10802 struct tstorm_fcoe_conn_st_ctx {
10803 __le16 stat_ram_addr;
10804 __le16 rx_max_fc_payload_len;
10805 __le16 e_d_tov_val;
10807 #define TSTORM_FCOE_CONN_ST_CTX_INC_SEQ_CNT_MASK 0x1
10808 #define TSTORM_FCOE_CONN_ST_CTX_INC_SEQ_CNT_SHIFT 0
10809 #define TSTORM_FCOE_CONN_ST_CTX_SUPPORT_CONF_MASK 0x1
10810 #define TSTORM_FCOE_CONN_ST_CTX_SUPPORT_CONF_SHIFT 1
10811 #define TSTORM_FCOE_CONN_ST_CTX_DEF_Q_IDX_MASK 0x3F
10812 #define TSTORM_FCOE_CONN_ST_CTX_DEF_Q_IDX_SHIFT 2
10813 u8 timers_cleanup_invocation_cnt;
10814 __le32 reserved1[2];
10815 __le32 dst_mac_address_bytes_0_to_3;
10816 __le16 dst_mac_address_bytes_4_to_5;
10817 __le16 ramrod_echo;
10819 #define TSTORM_FCOE_CONN_ST_CTX_MODE_MASK 0x3
10820 #define TSTORM_FCOE_CONN_ST_CTX_MODE_SHIFT 0
10821 #define TSTORM_FCOE_CONN_ST_CTX_RESERVED_MASK 0x3F
10822 #define TSTORM_FCOE_CONN_ST_CTX_RESERVED_SHIFT 2
10823 u8 cq_relative_offset;
10824 u8 cmdq_relative_offset;
10825 u8 bdq_resource_id;
10829 struct e4_mstorm_fcoe_conn_ag_ctx {
10833 #define E4_MSTORM_FCOE_CONN_AG_CTX_BIT0_MASK 0x1
10834 #define E4_MSTORM_FCOE_CONN_AG_CTX_BIT0_SHIFT 0
10835 #define E4_MSTORM_FCOE_CONN_AG_CTX_BIT1_MASK 0x1
10836 #define E4_MSTORM_FCOE_CONN_AG_CTX_BIT1_SHIFT 1
10837 #define E4_MSTORM_FCOE_CONN_AG_CTX_CF0_MASK 0x3
10838 #define E4_MSTORM_FCOE_CONN_AG_CTX_CF0_SHIFT 2
10839 #define E4_MSTORM_FCOE_CONN_AG_CTX_CF1_MASK 0x3
10840 #define E4_MSTORM_FCOE_CONN_AG_CTX_CF1_SHIFT 4
10841 #define E4_MSTORM_FCOE_CONN_AG_CTX_CF2_MASK 0x3
10842 #define E4_MSTORM_FCOE_CONN_AG_CTX_CF2_SHIFT 6
10844 #define E4_MSTORM_FCOE_CONN_AG_CTX_CF0EN_MASK 0x1
10845 #define E4_MSTORM_FCOE_CONN_AG_CTX_CF0EN_SHIFT 0
10846 #define E4_MSTORM_FCOE_CONN_AG_CTX_CF1EN_MASK 0x1
10847 #define E4_MSTORM_FCOE_CONN_AG_CTX_CF1EN_SHIFT 1
10848 #define E4_MSTORM_FCOE_CONN_AG_CTX_CF2EN_MASK 0x1
10849 #define E4_MSTORM_FCOE_CONN_AG_CTX_CF2EN_SHIFT 2
10850 #define E4_MSTORM_FCOE_CONN_AG_CTX_RULE0EN_MASK 0x1
10851 #define E4_MSTORM_FCOE_CONN_AG_CTX_RULE0EN_SHIFT 3
10852 #define E4_MSTORM_FCOE_CONN_AG_CTX_RULE1EN_MASK 0x1
10853 #define E4_MSTORM_FCOE_CONN_AG_CTX_RULE1EN_SHIFT 4
10854 #define E4_MSTORM_FCOE_CONN_AG_CTX_RULE2EN_MASK 0x1
10855 #define E4_MSTORM_FCOE_CONN_AG_CTX_RULE2EN_SHIFT 5
10856 #define E4_MSTORM_FCOE_CONN_AG_CTX_RULE3EN_MASK 0x1
10857 #define E4_MSTORM_FCOE_CONN_AG_CTX_RULE3EN_SHIFT 6
10858 #define E4_MSTORM_FCOE_CONN_AG_CTX_RULE4EN_MASK 0x1
10859 #define E4_MSTORM_FCOE_CONN_AG_CTX_RULE4EN_SHIFT 7
10866 /* Fast path part of the fcoe storm context of Mstorm */
10867 struct fcoe_mstorm_fcoe_conn_st_ctx_fp {
10871 u8 protection_info;
10872 #define FCOE_MSTORM_FCOE_CONN_ST_CTX_FP_SUPPORT_PROTECTION_MASK 0x1
10873 #define FCOE_MSTORM_FCOE_CONN_ST_CTX_FP_SUPPORT_PROTECTION_SHIFT 0
10874 #define FCOE_MSTORM_FCOE_CONN_ST_CTX_FP_VALID_MASK 0x1
10875 #define FCOE_MSTORM_FCOE_CONN_ST_CTX_FP_VALID_SHIFT 1
10876 #define FCOE_MSTORM_FCOE_CONN_ST_CTX_FP_RESERVED0_MASK 0x3F
10877 #define FCOE_MSTORM_FCOE_CONN_ST_CTX_FP_RESERVED0_SHIFT 2
10878 u8 q_relative_offset;
10882 /* Non fast path part of the fcoe storm context of Mstorm */
10883 struct fcoe_mstorm_fcoe_conn_st_ctx_non_fp {
10885 __le16 stat_ram_addr;
10886 __le16 num_pages_in_pbl;
10887 u8 ptu_log_page_size;
10889 __le16 unsolicited_cq_count;
10891 u8 bdq_resource_id;
10893 struct regpair xferq_pbl_addr;
10894 struct regpair reserved1;
10895 struct regpair reserved2[3];
10898 /* The fcoe storm context of Mstorm */
10899 struct mstorm_fcoe_conn_st_ctx {
10900 struct fcoe_mstorm_fcoe_conn_st_ctx_fp fp;
10901 struct fcoe_mstorm_fcoe_conn_st_ctx_non_fp non_fp;
10904 /* fcoe connection context */
10905 struct e4_fcoe_conn_context {
10906 struct ystorm_fcoe_conn_st_ctx ystorm_st_context;
10907 struct pstorm_fcoe_conn_st_ctx pstorm_st_context;
10908 struct regpair pstorm_st_padding[2];
10909 struct xstorm_fcoe_conn_st_ctx xstorm_st_context;
10910 struct e4_xstorm_fcoe_conn_ag_ctx xstorm_ag_context;
10911 struct regpair xstorm_ag_padding[6];
10912 struct ustorm_fcoe_conn_st_ctx ustorm_st_context;
10913 struct regpair ustorm_st_padding[2];
10914 struct e4_tstorm_fcoe_conn_ag_ctx tstorm_ag_context;
10915 struct regpair tstorm_ag_padding[2];
10916 struct timers_context timer_context;
10917 struct e4_ustorm_fcoe_conn_ag_ctx ustorm_ag_context;
10918 struct tstorm_fcoe_conn_st_ctx tstorm_st_context;
10919 struct e4_mstorm_fcoe_conn_ag_ctx mstorm_ag_context;
10920 struct mstorm_fcoe_conn_st_ctx mstorm_st_context;
10923 /* FCoE connection offload params passed by driver to FW in FCoE offload
10926 struct fcoe_conn_offload_ramrod_params {
10927 struct fcoe_conn_offload_ramrod_data offload_ramrod_data;
10930 /* FCoE connection terminate params passed by driver to FW in FCoE terminate
10933 struct fcoe_conn_terminate_ramrod_params {
10934 struct fcoe_conn_terminate_ramrod_data terminate_ramrod_data;
10937 /* FCoE event type */
10938 enum fcoe_event_type {
10939 FCOE_EVENT_INIT_FUNC,
10940 FCOE_EVENT_DESTROY_FUNC,
10941 FCOE_EVENT_STAT_FUNC,
10942 FCOE_EVENT_OFFLOAD_CONN,
10943 FCOE_EVENT_TERMINATE_CONN,
10945 MAX_FCOE_EVENT_TYPE
10948 /* FCoE init params passed by driver to FW in FCoE init ramrod */
10949 struct fcoe_init_ramrod_params {
10950 struct fcoe_init_func_ramrod_data init_ramrod_data;
10953 /* FCoE ramrod Command IDs */
10954 enum fcoe_ramrod_cmd_id {
10955 FCOE_RAMROD_CMD_ID_INIT_FUNC,
10956 FCOE_RAMROD_CMD_ID_DESTROY_FUNC,
10957 FCOE_RAMROD_CMD_ID_STAT_FUNC,
10958 FCOE_RAMROD_CMD_ID_OFFLOAD_CONN,
10959 FCOE_RAMROD_CMD_ID_TERMINATE_CONN,
10960 MAX_FCOE_RAMROD_CMD_ID
10963 /* FCoE statistics params buffer passed by driver to FW in FCoE statistics
10966 struct fcoe_stat_ramrod_params {
10967 struct fcoe_stat_ramrod_data stat_ramrod_data;
10970 struct e4_ystorm_fcoe_conn_ag_ctx {
10974 #define E4_YSTORM_FCOE_CONN_AG_CTX_BIT0_MASK 0x1
10975 #define E4_YSTORM_FCOE_CONN_AG_CTX_BIT0_SHIFT 0
10976 #define E4_YSTORM_FCOE_CONN_AG_CTX_BIT1_MASK 0x1
10977 #define E4_YSTORM_FCOE_CONN_AG_CTX_BIT1_SHIFT 1
10978 #define E4_YSTORM_FCOE_CONN_AG_CTX_CF0_MASK 0x3
10979 #define E4_YSTORM_FCOE_CONN_AG_CTX_CF0_SHIFT 2
10980 #define E4_YSTORM_FCOE_CONN_AG_CTX_CF1_MASK 0x3
10981 #define E4_YSTORM_FCOE_CONN_AG_CTX_CF1_SHIFT 4
10982 #define E4_YSTORM_FCOE_CONN_AG_CTX_CF2_MASK 0x3
10983 #define E4_YSTORM_FCOE_CONN_AG_CTX_CF2_SHIFT 6
10985 #define E4_YSTORM_FCOE_CONN_AG_CTX_CF0EN_MASK 0x1
10986 #define E4_YSTORM_FCOE_CONN_AG_CTX_CF0EN_SHIFT 0
10987 #define E4_YSTORM_FCOE_CONN_AG_CTX_CF1EN_MASK 0x1
10988 #define E4_YSTORM_FCOE_CONN_AG_CTX_CF1EN_SHIFT 1
10989 #define E4_YSTORM_FCOE_CONN_AG_CTX_CF2EN_MASK 0x1
10990 #define E4_YSTORM_FCOE_CONN_AG_CTX_CF2EN_SHIFT 2
10991 #define E4_YSTORM_FCOE_CONN_AG_CTX_RULE0EN_MASK 0x1
10992 #define E4_YSTORM_FCOE_CONN_AG_CTX_RULE0EN_SHIFT 3
10993 #define E4_YSTORM_FCOE_CONN_AG_CTX_RULE1EN_MASK 0x1
10994 #define E4_YSTORM_FCOE_CONN_AG_CTX_RULE1EN_SHIFT 4
10995 #define E4_YSTORM_FCOE_CONN_AG_CTX_RULE2EN_MASK 0x1
10996 #define E4_YSTORM_FCOE_CONN_AG_CTX_RULE2EN_SHIFT 5
10997 #define E4_YSTORM_FCOE_CONN_AG_CTX_RULE3EN_MASK 0x1
10998 #define E4_YSTORM_FCOE_CONN_AG_CTX_RULE3EN_SHIFT 6
10999 #define E4_YSTORM_FCOE_CONN_AG_CTX_RULE4EN_MASK 0x1
11000 #define E4_YSTORM_FCOE_CONN_AG_CTX_RULE4EN_SHIFT 7
11014 /* The iscsi storm connection context of Ystorm */
11015 struct ystorm_iscsi_conn_st_ctx {
11016 __le32 reserved[8];
11019 /* Combined iSCSI and TCP storm connection of Pstorm */
11020 struct pstorm_iscsi_tcp_conn_st_ctx {
11025 /* The combined tcp and iscsi storm context of Xstorm */
11026 struct xstorm_iscsi_tcp_conn_st_ctx {
11027 __le32 reserved_tcp[4];
11028 __le32 reserved_iscsi[44];
11031 struct e4_xstorm_iscsi_conn_ag_ctx {
11035 #define E4_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
11036 #define E4_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
11037 #define E4_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM1_MASK 0x1
11038 #define E4_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM1_SHIFT 1
11039 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RESERVED1_MASK 0x1
11040 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RESERVED1_SHIFT 2
11041 #define E4_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
11042 #define E4_XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
11043 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT4_MASK 0x1
11044 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT4_SHIFT 4
11045 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RESERVED2_MASK 0x1
11046 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RESERVED2_SHIFT 5
11047 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT6_MASK 0x1
11048 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT6_SHIFT 6
11049 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT7_MASK 0x1
11050 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT7_SHIFT 7
11052 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT8_MASK 0x1
11053 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT8_SHIFT 0
11054 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT9_MASK 0x1
11055 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT9_SHIFT 1
11056 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT10_MASK 0x1
11057 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT10_SHIFT 2
11058 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT11_MASK 0x1
11059 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT11_SHIFT 3
11060 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT12_MASK 0x1
11061 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT12_SHIFT 4
11062 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT13_MASK 0x1
11063 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT13_SHIFT 5
11064 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT14_MASK 0x1
11065 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT14_SHIFT 6
11066 #define E4_XSTORM_ISCSI_CONN_AG_CTX_TX_TRUNCATE_MASK 0x1
11067 #define E4_XSTORM_ISCSI_CONN_AG_CTX_TX_TRUNCATE_SHIFT 7
11069 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3
11070 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 0
11071 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3
11072 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 2
11073 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3
11074 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 4
11075 #define E4_XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_MASK 0x3
11076 #define E4_XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT 6
11078 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF4_MASK 0x3
11079 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT 0
11080 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF5_MASK 0x3
11081 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT 2
11082 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF6_MASK 0x3
11083 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT 4
11084 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF7_MASK 0x3
11085 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF7_SHIFT 6
11087 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF8_MASK 0x3
11088 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF8_SHIFT 0
11089 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF9_MASK 0x3
11090 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF9_SHIFT 2
11091 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF10_MASK 0x3
11092 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF10_SHIFT 4
11093 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF11_MASK 0x3
11094 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF11_SHIFT 6
11096 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF12_MASK 0x3
11097 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF12_SHIFT 0
11098 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF13_MASK 0x3
11099 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF13_SHIFT 2
11100 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF14_MASK 0x3
11101 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF14_SHIFT 4
11102 #define E4_XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_MASK 0x3
11103 #define E4_XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_SHIFT 6
11105 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF16_MASK 0x3
11106 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF16_SHIFT 0
11107 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF17_MASK 0x3
11108 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF17_SHIFT 2
11109 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF18_MASK 0x3
11110 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF18_SHIFT 4
11111 #define E4_XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_MASK 0x3
11112 #define E4_XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_SHIFT 6
11114 #define E4_XSTORM_ISCSI_CONN_AG_CTX_MST_XCM_Q0_FLUSH_CF_MASK 0x3
11115 #define E4_XSTORM_ISCSI_CONN_AG_CTX_MST_XCM_Q0_FLUSH_CF_SHIFT 0
11116 #define E4_XSTORM_ISCSI_CONN_AG_CTX_UST_XCM_Q1_FLUSH_CF_MASK 0x3
11117 #define E4_XSTORM_ISCSI_CONN_AG_CTX_UST_XCM_Q1_FLUSH_CF_SHIFT 2
11118 #define E4_XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_MASK 0x3
11119 #define E4_XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_SHIFT 4
11120 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1
11121 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 6
11122 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1
11123 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 7
11125 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1
11126 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 0
11127 #define E4_XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK 0x1
11128 #define E4_XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT 1
11129 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK 0x1
11130 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT 2
11131 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK 0x1
11132 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT 3
11133 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK 0x1
11134 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT 4
11135 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF7EN_MASK 0x1
11136 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF7EN_SHIFT 5
11137 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF8EN_MASK 0x1
11138 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF8EN_SHIFT 6
11139 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF9EN_MASK 0x1
11140 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF9EN_SHIFT 7
11142 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF10EN_MASK 0x1
11143 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF10EN_SHIFT 0
11144 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF11EN_MASK 0x1
11145 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF11EN_SHIFT 1
11146 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF12EN_MASK 0x1
11147 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF12EN_SHIFT 2
11148 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF13EN_MASK 0x1
11149 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF13EN_SHIFT 3
11150 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF14EN_MASK 0x1
11151 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF14EN_SHIFT 4
11152 #define E4_XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_EN_MASK 0x1
11153 #define E4_XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_EN_SHIFT 5
11154 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF16EN_MASK 0x1
11155 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF16EN_SHIFT 6
11156 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF17EN_MASK 0x1
11157 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF17EN_SHIFT 7
11159 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF18EN_MASK 0x1
11160 #define E4_XSTORM_ISCSI_CONN_AG_CTX_CF18EN_SHIFT 0
11161 #define E4_XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_EN_MASK 0x1
11162 #define E4_XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_EN_SHIFT 1
11163 #define E4_XSTORM_ISCSI_CONN_AG_CTX_MST_XCM_Q0_FLUSH_CF_EN_MASK 0x1
11164 #define E4_XSTORM_ISCSI_CONN_AG_CTX_MST_XCM_Q0_FLUSH_CF_EN_SHIFT 2
11165 #define E4_XSTORM_ISCSI_CONN_AG_CTX_UST_XCM_Q1_FLUSH_CF_EN_MASK 0x1
11166 #define E4_XSTORM_ISCSI_CONN_AG_CTX_UST_XCM_Q1_FLUSH_CF_EN_SHIFT 3
11167 #define E4_XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
11168 #define E4_XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
11169 #define E4_XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_EN_MASK 0x1
11170 #define E4_XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_EN_SHIFT 5
11171 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1
11172 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 6
11173 #define E4_XSTORM_ISCSI_CONN_AG_CTX_MORE_TO_SEND_DEC_RULE_EN_MASK 0x1
11174 #define E4_XSTORM_ISCSI_CONN_AG_CTX_MORE_TO_SEND_DEC_RULE_EN_SHIFT 7
11176 #define E4_XSTORM_ISCSI_CONN_AG_CTX_TX_BLOCKED_EN_MASK 0x1
11177 #define E4_XSTORM_ISCSI_CONN_AG_CTX_TX_BLOCKED_EN_SHIFT 0
11178 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1
11179 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 1
11180 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RESERVED3_MASK 0x1
11181 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RESERVED3_SHIFT 2
11182 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK 0x1
11183 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT 3
11184 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK 0x1
11185 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT 4
11186 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK 0x1
11187 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT 5
11188 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
11189 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
11190 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE9EN_MASK 0x1
11191 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE9EN_SHIFT 7
11193 #define E4_XSTORM_ISCSI_CONN_AG_CTX_SQ_DEC_RULE_EN_MASK 0x1
11194 #define E4_XSTORM_ISCSI_CONN_AG_CTX_SQ_DEC_RULE_EN_SHIFT 0
11195 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE11EN_MASK 0x1
11196 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE11EN_SHIFT 1
11197 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
11198 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
11199 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
11200 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
11201 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE14EN_MASK 0x1
11202 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE14EN_SHIFT 4
11203 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE15EN_MASK 0x1
11204 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE15EN_SHIFT 5
11205 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE16EN_MASK 0x1
11206 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE16EN_SHIFT 6
11207 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE17EN_MASK 0x1
11208 #define E4_XSTORM_ISCSI_CONN_AG_CTX_RULE17EN_SHIFT 7
11210 #define E4_XSTORM_ISCSI_CONN_AG_CTX_R2TQ_DEC_RULE_EN_MASK 0x1
11211 #define E4_XSTORM_ISCSI_CONN_AG_CTX_R2TQ_DEC_RULE_EN_SHIFT 0
11212 #define E4_XSTORM_ISCSI_CONN_AG_CTX_HQ_DEC_RULE_EN_MASK 0x1
11213 #define E4_XSTORM_ISCSI_CONN_AG_CTX_HQ_DEC_RULE_EN_SHIFT 1
11214 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
11215 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
11216 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
11217 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
11218 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
11219 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
11220 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
11221 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
11222 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
11223 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
11224 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
11225 #define E4_XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
11227 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT16_MASK 0x1
11228 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT16_SHIFT 0
11229 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT17_MASK 0x1
11230 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT17_SHIFT 1
11231 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT18_MASK 0x1
11232 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT18_SHIFT 2
11233 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT19_MASK 0x1
11234 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT19_SHIFT 3
11235 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT20_MASK 0x1
11236 #define E4_XSTORM_ISCSI_CONN_AG_CTX_BIT20_SHIFT 4
11237 #define E4_XSTORM_ISCSI_CONN_AG_CTX_DUMMY_READ_DONE_MASK 0x1
11238 #define E4_XSTORM_ISCSI_CONN_AG_CTX_DUMMY_READ_DONE_SHIFT 5
11239 #define E4_XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_MASK 0x3
11240 #define E4_XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_SHIFT 6
11242 __le16 physical_q0;
11243 __le16 physical_q1;
11244 __le16 dummy_dorq_var;
11248 __le16 slow_io_total_data_tx_update;
11256 __le32 more_to_send_seq;
11259 __le32 hq_scan_next_relevant_ack;
11265 __le32 bytes_to_next_pdu;
11280 __le32 exp_stat_sn;
11281 __le32 ongoing_fast_rxmit_seq;
11288 struct e4_tstorm_iscsi_conn_ag_ctx {
11292 #define E4_TSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
11293 #define E4_TSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
11294 #define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK 0x1
11295 #define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT 1
11296 #define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT2_MASK 0x1
11297 #define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT2_SHIFT 2
11298 #define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT3_MASK 0x1
11299 #define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT3_SHIFT 3
11300 #define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT4_MASK 0x1
11301 #define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT4_SHIFT 4
11302 #define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT5_MASK 0x1
11303 #define E4_TSTORM_ISCSI_CONN_AG_CTX_BIT5_SHIFT 5
11304 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3
11305 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 6
11307 #define E4_TSTORM_ISCSI_CONN_AG_CTX_P2T_FLUSH_CF_MASK 0x3
11308 #define E4_TSTORM_ISCSI_CONN_AG_CTX_P2T_FLUSH_CF_SHIFT 0
11309 #define E4_TSTORM_ISCSI_CONN_AG_CTX_M2T_FLUSH_CF_MASK 0x3
11310 #define E4_TSTORM_ISCSI_CONN_AG_CTX_M2T_FLUSH_CF_SHIFT 2
11311 #define E4_TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_MASK 0x3
11312 #define E4_TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT 4
11313 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF4_MASK 0x3
11314 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT 6
11316 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF5_MASK 0x3
11317 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT 0
11318 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF6_MASK 0x3
11319 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT 2
11320 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF7_MASK 0x3
11321 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF7_SHIFT 4
11322 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF8_MASK 0x3
11323 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF8_SHIFT 6
11325 #define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_MASK 0x3
11326 #define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
11327 #define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_OOO_ISLES_CF_MASK 0x3
11328 #define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_OOO_ISLES_CF_SHIFT 2
11329 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1
11330 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 4
11331 #define E4_TSTORM_ISCSI_CONN_AG_CTX_P2T_FLUSH_CF_EN_MASK 0x1
11332 #define E4_TSTORM_ISCSI_CONN_AG_CTX_P2T_FLUSH_CF_EN_SHIFT 5
11333 #define E4_TSTORM_ISCSI_CONN_AG_CTX_M2T_FLUSH_CF_EN_MASK 0x1
11334 #define E4_TSTORM_ISCSI_CONN_AG_CTX_M2T_FLUSH_CF_EN_SHIFT 6
11335 #define E4_TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK 0x1
11336 #define E4_TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT 7
11338 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK 0x1
11339 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT 0
11340 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK 0x1
11341 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT 1
11342 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK 0x1
11343 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT 2
11344 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF7EN_MASK 0x1
11345 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF7EN_SHIFT 3
11346 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF8EN_MASK 0x1
11347 #define E4_TSTORM_ISCSI_CONN_AG_CTX_CF8EN_SHIFT 4
11348 #define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1
11349 #define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 5
11350 #define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_OOO_ISLES_CF_EN_MASK 0x1
11351 #define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_OOO_ISLES_CF_EN_SHIFT 6
11352 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1
11353 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 7
11355 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK 0x1
11356 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 0
11357 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1
11358 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 1
11359 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1
11360 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 2
11361 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK 0x1
11362 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 3
11363 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK 0x1
11364 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT 4
11365 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK 0x1
11366 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT 5
11367 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK 0x1
11368 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT 6
11369 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE8EN_MASK 0x1
11370 #define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE8EN_SHIFT 7
11373 __le32 rx_tcp_checksum_err_cnt;
11380 u8 cid_offload_cnt;
11385 struct e4_ustorm_iscsi_conn_ag_ctx {
11389 #define E4_USTORM_ISCSI_CONN_AG_CTX_BIT0_MASK 0x1
11390 #define E4_USTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT 0
11391 #define E4_USTORM_ISCSI_CONN_AG_CTX_BIT1_MASK 0x1
11392 #define E4_USTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT 1
11393 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3
11394 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 2
11395 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3
11396 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 4
11397 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3
11398 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 6
11400 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF3_MASK 0x3
11401 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF3_SHIFT 0
11402 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF4_MASK 0x3
11403 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT 2
11404 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF5_MASK 0x3
11405 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT 4
11406 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF6_MASK 0x3
11407 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT 6
11409 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1
11410 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 0
11411 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1
11412 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 1
11413 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1
11414 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 2
11415 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF3EN_MASK 0x1
11416 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF3EN_SHIFT 3
11417 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK 0x1
11418 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT 4
11419 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK 0x1
11420 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT 5
11421 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK 0x1
11422 #define E4_USTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT 6
11423 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1
11424 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 7
11426 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK 0x1
11427 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 0
11428 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1
11429 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 1
11430 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1
11431 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 2
11432 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK 0x1
11433 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 3
11434 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK 0x1
11435 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT 4
11436 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK 0x1
11437 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT 5
11438 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK 0x1
11439 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT 6
11440 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE8EN_MASK 0x1
11441 #define E4_USTORM_ISCSI_CONN_AG_CTX_RULE8EN_SHIFT 7
11454 /* The iscsi storm connection context of Tstorm */
11455 struct tstorm_iscsi_conn_st_ctx {
11456 __le32 reserved[44];
11459 struct e4_mstorm_iscsi_conn_ag_ctx {
11463 #define E4_MSTORM_ISCSI_CONN_AG_CTX_BIT0_MASK 0x1
11464 #define E4_MSTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT 0
11465 #define E4_MSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK 0x1
11466 #define E4_MSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT 1
11467 #define E4_MSTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3
11468 #define E4_MSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 2
11469 #define E4_MSTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3
11470 #define E4_MSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 4
11471 #define E4_MSTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3
11472 #define E4_MSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 6
11474 #define E4_MSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1
11475 #define E4_MSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 0
11476 #define E4_MSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1
11477 #define E4_MSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 1
11478 #define E4_MSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1
11479 #define E4_MSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 2
11480 #define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1
11481 #define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 3
11482 #define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK 0x1
11483 #define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 4
11484 #define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1
11485 #define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 5
11486 #define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1
11487 #define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 6
11488 #define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK 0x1
11489 #define E4_MSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 7
11496 /* Combined iSCSI and TCP storm connection of Mstorm */
11497 struct mstorm_iscsi_tcp_conn_st_ctx {
11498 __le32 reserved_tcp[20];
11499 __le32 reserved_iscsi[12];
11502 /* The iscsi storm context of Ustorm */
11503 struct ustorm_iscsi_conn_st_ctx {
11504 __le32 reserved[52];
11507 /* iscsi connection context */
11508 struct e4_iscsi_conn_context {
11509 struct ystorm_iscsi_conn_st_ctx ystorm_st_context;
11510 struct pstorm_iscsi_tcp_conn_st_ctx pstorm_st_context;
11511 struct regpair pstorm_st_padding[2];
11512 struct pb_context xpb2_context;
11513 struct xstorm_iscsi_tcp_conn_st_ctx xstorm_st_context;
11514 struct regpair xstorm_st_padding[2];
11515 struct e4_xstorm_iscsi_conn_ag_ctx xstorm_ag_context;
11516 struct e4_tstorm_iscsi_conn_ag_ctx tstorm_ag_context;
11517 struct regpair tstorm_ag_padding[2];
11518 struct timers_context timer_context;
11519 struct e4_ustorm_iscsi_conn_ag_ctx ustorm_ag_context;
11520 struct pb_context upb_context;
11521 struct tstorm_iscsi_conn_st_ctx tstorm_st_context;
11522 struct regpair tstorm_st_padding[2];
11523 struct e4_mstorm_iscsi_conn_ag_ctx mstorm_ag_context;
11524 struct mstorm_iscsi_tcp_conn_st_ctx mstorm_st_context;
11525 struct ustorm_iscsi_conn_st_ctx ustorm_st_context;
11528 /* iSCSI init params passed by driver to FW in iSCSI init ramrod */
11529 struct iscsi_init_ramrod_params {
11530 struct iscsi_spe_func_init iscsi_init_spe;
11531 struct tcp_init_params tcp_init;
11534 struct e4_ystorm_iscsi_conn_ag_ctx {
11538 #define E4_YSTORM_ISCSI_CONN_AG_CTX_BIT0_MASK 0x1
11539 #define E4_YSTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT 0
11540 #define E4_YSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK 0x1
11541 #define E4_YSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT 1
11542 #define E4_YSTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3
11543 #define E4_YSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 2
11544 #define E4_YSTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3
11545 #define E4_YSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 4
11546 #define E4_YSTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3
11547 #define E4_YSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 6
11549 #define E4_YSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1
11550 #define E4_YSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 0
11551 #define E4_YSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1
11552 #define E4_YSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 1
11553 #define E4_YSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1
11554 #define E4_YSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 2
11555 #define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1
11556 #define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 3
11557 #define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK 0x1
11558 #define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 4
11559 #define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1
11560 #define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 5
11561 #define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1
11562 #define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 6
11563 #define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK 0x1
11564 #define E4_YSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 7
11578 #define MFW_TRACE_SIGNATURE 0x25071946
11580 /* The trace in the buffer */
11581 #define MFW_TRACE_EVENTID_MASK 0x00ffff
11582 #define MFW_TRACE_PRM_SIZE_MASK 0x0f0000
11583 #define MFW_TRACE_PRM_SIZE_OFFSET 16
11584 #define MFW_TRACE_ENTRY_SIZE 3
11587 u32 signature; /* Help to identify that the trace is valid */
11588 u32 size; /* the size of the trace buffer in bytes */
11589 u32 curr_level; /* 2 - all will be written to the buffer
11590 * 1 - debug trace will not be written
11591 * 0 - just errors will be written to the buffer
11593 u32 modules_mask[2]; /* a bit per module, 1 means write it, 0 means
11597 /* Warning: the following pointers are assumed to be 32bits as they are
11598 * used only in the MFW.
11600 u32 trace_prod; /* The next trace will be written to this offset */
11601 u32 trace_oldest; /* The oldest valid trace starts at this offset
11602 * (usually very close after the current producer).
11606 #define VF_MAX_STATIC 192
11608 #define MCP_GLOB_PATH_MAX 2
11609 #define MCP_PORT_MAX 2
11610 #define MCP_GLOB_PORT_MAX 4
11611 #define MCP_GLOB_FUNC_MAX 16
11613 typedef u32 offsize_t; /* In DWORDS !!! */
11614 /* Offset from the beginning of the MCP scratchpad */
11615 #define OFFSIZE_OFFSET_SHIFT 0
11616 #define OFFSIZE_OFFSET_MASK 0x0000ffff
11617 /* Size of specific element (not the whole array if any) */
11618 #define OFFSIZE_SIZE_SHIFT 16
11619 #define OFFSIZE_SIZE_MASK 0xffff0000
11621 #define SECTION_OFFSET(_offsize) ((((_offsize & \
11622 OFFSIZE_OFFSET_MASK) >> \
11623 OFFSIZE_OFFSET_SHIFT) << 2))
11625 #define QED_SECTION_SIZE(_offsize) (((_offsize & \
11626 OFFSIZE_SIZE_MASK) >> \
11627 OFFSIZE_SIZE_SHIFT) << 2)
11629 #define SECTION_ADDR(_offsize, idx) (MCP_REG_SCRATCH + \
11630 SECTION_OFFSET(_offsize) + \
11631 (QED_SECTION_SIZE(_offsize) * idx))
11633 #define SECTION_OFFSIZE_ADDR(_pub_base, _section) \
11634 (_pub_base + offsetof(struct mcp_public_data, sections[_section]))
11636 /* PHY configuration */
11637 struct eth_phy_cfg {
11639 #define ETH_SPEED_AUTONEG 0
11640 #define ETH_SPEED_SMARTLINQ 0x8
11643 #define ETH_PAUSE_NONE 0x0
11644 #define ETH_PAUSE_AUTONEG 0x1
11645 #define ETH_PAUSE_RX 0x2
11646 #define ETH_PAUSE_TX 0x4
11650 #define ETH_LOOPBACK_NONE (0)
11651 #define ETH_LOOPBACK_INT_PHY (1)
11652 #define ETH_LOOPBACK_EXT_PHY (2)
11653 #define ETH_LOOPBACK_EXT (3)
11654 #define ETH_LOOPBACK_MAC (4)
11657 #define EEE_CFG_EEE_ENABLED BIT(0)
11658 #define EEE_CFG_TX_LPI BIT(1)
11659 #define EEE_CFG_ADV_SPEED_1G BIT(2)
11660 #define EEE_CFG_ADV_SPEED_10G BIT(3)
11661 #define EEE_TX_TIMER_USEC_MASK (0xfffffff0)
11662 #define EEE_TX_TIMER_USEC_OFFSET 4
11663 #define EEE_TX_TIMER_USEC_BALANCED_TIME (0xa00)
11664 #define EEE_TX_TIMER_USEC_AGGRESSIVE_TIME (0x100)
11665 #define EEE_TX_TIMER_USEC_LATENCY_TIME (0x6000)
11667 u32 feature_config_flags;
11668 #define ETH_EEE_MODE_ADV_LPI (1 << 0)
11671 struct port_mf_cfg {
11673 #define PORT_MF_CFG_OV_TAG_MASK 0x0000ffff
11674 #define PORT_MF_CFG_OV_TAG_SHIFT 0
11675 #define PORT_MF_CFG_OV_TAG_DEFAULT PORT_MF_CFG_OV_TAG_MASK
11764 u64 brb_truncate[8];
11765 u64 brb_discard[8];
11768 struct port_stats {
11769 struct brb_stats brb;
11770 struct eth_stats eth;
11773 struct couple_mode_teaming {
11774 u8 port_cmt[MCP_GLOB_PORT_MAX];
11775 #define PORT_CMT_IN_TEAM (1 << 0)
11777 #define PORT_CMT_PORT_ROLE (1 << 1)
11778 #define PORT_CMT_PORT_INACTIVE (0 << 1)
11779 #define PORT_CMT_PORT_ACTIVE (1 << 1)
11781 #define PORT_CMT_TEAM_MASK (1 << 2)
11782 #define PORT_CMT_TEAM0 (0 << 2)
11783 #define PORT_CMT_TEAM1 (1 << 2)
11786 #define LLDP_CHASSIS_ID_STAT_LEN 4
11787 #define LLDP_PORT_ID_STAT_LEN 4
11788 #define DCBX_MAX_APP_PROTOCOL 32
11789 #define MAX_SYSTEM_LLDP_TLV_DATA 32
11792 LLDP_NEAREST_BRIDGE = 0,
11793 LLDP_NEAREST_NON_TPMR_BRIDGE,
11794 LLDP_NEAREST_CUSTOMER_BRIDGE,
11795 LLDP_MAX_LLDP_AGENTS
11798 struct lldp_config_params_s {
11800 #define LLDP_CONFIG_TX_INTERVAL_MASK 0x000000ff
11801 #define LLDP_CONFIG_TX_INTERVAL_SHIFT 0
11802 #define LLDP_CONFIG_HOLD_MASK 0x00000f00
11803 #define LLDP_CONFIG_HOLD_SHIFT 8
11804 #define LLDP_CONFIG_MAX_CREDIT_MASK 0x0000f000
11805 #define LLDP_CONFIG_MAX_CREDIT_SHIFT 12
11806 #define LLDP_CONFIG_ENABLE_RX_MASK 0x40000000
11807 #define LLDP_CONFIG_ENABLE_RX_SHIFT 30
11808 #define LLDP_CONFIG_ENABLE_TX_MASK 0x80000000
11809 #define LLDP_CONFIG_ENABLE_TX_SHIFT 31
11810 u32 local_chassis_id[LLDP_CHASSIS_ID_STAT_LEN];
11811 u32 local_port_id[LLDP_PORT_ID_STAT_LEN];
11814 struct lldp_status_params_s {
11815 u32 prefix_seq_num;
11817 u32 peer_chassis_id[LLDP_CHASSIS_ID_STAT_LEN];
11818 u32 peer_port_id[LLDP_PORT_ID_STAT_LEN];
11819 u32 suffix_seq_num;
11822 struct dcbx_ets_feature {
11824 #define DCBX_ETS_ENABLED_MASK 0x00000001
11825 #define DCBX_ETS_ENABLED_SHIFT 0
11826 #define DCBX_ETS_WILLING_MASK 0x00000002
11827 #define DCBX_ETS_WILLING_SHIFT 1
11828 #define DCBX_ETS_ERROR_MASK 0x00000004
11829 #define DCBX_ETS_ERROR_SHIFT 2
11830 #define DCBX_ETS_CBS_MASK 0x00000008
11831 #define DCBX_ETS_CBS_SHIFT 3
11832 #define DCBX_ETS_MAX_TCS_MASK 0x000000f0
11833 #define DCBX_ETS_MAX_TCS_SHIFT 4
11834 #define DCBX_OOO_TC_MASK 0x00000f00
11835 #define DCBX_OOO_TC_SHIFT 8
11837 #define DCBX_TCP_OOO_TC (4)
11839 #define NIG_ETS_ISCSI_OOO_CLIENT_OFFSET (DCBX_TCP_OOO_TC + 1)
11840 #define DCBX_CEE_STRICT_PRIORITY 0xf
11843 #define DCBX_ETS_TSA_STRICT 0
11844 #define DCBX_ETS_TSA_CBS 1
11845 #define DCBX_ETS_TSA_ETS 2
11848 #define DCBX_TCP_OOO_TC (4)
11849 #define DCBX_TCP_OOO_K2_4PORT_TC (3)
11851 struct dcbx_app_priority_entry {
11853 #define DCBX_APP_PRI_MAP_MASK 0x000000ff
11854 #define DCBX_APP_PRI_MAP_SHIFT 0
11855 #define DCBX_APP_PRI_0 0x01
11856 #define DCBX_APP_PRI_1 0x02
11857 #define DCBX_APP_PRI_2 0x04
11858 #define DCBX_APP_PRI_3 0x08
11859 #define DCBX_APP_PRI_4 0x10
11860 #define DCBX_APP_PRI_5 0x20
11861 #define DCBX_APP_PRI_6 0x40
11862 #define DCBX_APP_PRI_7 0x80
11863 #define DCBX_APP_SF_MASK 0x00000300
11864 #define DCBX_APP_SF_SHIFT 8
11865 #define DCBX_APP_SF_ETHTYPE 0
11866 #define DCBX_APP_SF_PORT 1
11867 #define DCBX_APP_SF_IEEE_MASK 0x0000f000
11868 #define DCBX_APP_SF_IEEE_SHIFT 12
11869 #define DCBX_APP_SF_IEEE_RESERVED 0
11870 #define DCBX_APP_SF_IEEE_ETHTYPE 1
11871 #define DCBX_APP_SF_IEEE_TCP_PORT 2
11872 #define DCBX_APP_SF_IEEE_UDP_PORT 3
11873 #define DCBX_APP_SF_IEEE_TCP_UDP_PORT 4
11875 #define DCBX_APP_PROTOCOL_ID_MASK 0xffff0000
11876 #define DCBX_APP_PROTOCOL_ID_SHIFT 16
11879 struct dcbx_app_priority_feature {
11881 #define DCBX_APP_ENABLED_MASK 0x00000001
11882 #define DCBX_APP_ENABLED_SHIFT 0
11883 #define DCBX_APP_WILLING_MASK 0x00000002
11884 #define DCBX_APP_WILLING_SHIFT 1
11885 #define DCBX_APP_ERROR_MASK 0x00000004
11886 #define DCBX_APP_ERROR_SHIFT 2
11887 #define DCBX_APP_MAX_TCS_MASK 0x0000f000
11888 #define DCBX_APP_MAX_TCS_SHIFT 12
11889 #define DCBX_APP_NUM_ENTRIES_MASK 0x00ff0000
11890 #define DCBX_APP_NUM_ENTRIES_SHIFT 16
11891 struct dcbx_app_priority_entry app_pri_tbl[DCBX_MAX_APP_PROTOCOL];
11894 struct dcbx_features {
11895 struct dcbx_ets_feature ets;
11897 #define DCBX_PFC_PRI_EN_BITMAP_MASK 0x000000ff
11898 #define DCBX_PFC_PRI_EN_BITMAP_SHIFT 0
11899 #define DCBX_PFC_PRI_EN_BITMAP_PRI_0 0x01
11900 #define DCBX_PFC_PRI_EN_BITMAP_PRI_1 0x02
11901 #define DCBX_PFC_PRI_EN_BITMAP_PRI_2 0x04
11902 #define DCBX_PFC_PRI_EN_BITMAP_PRI_3 0x08
11903 #define DCBX_PFC_PRI_EN_BITMAP_PRI_4 0x10
11904 #define DCBX_PFC_PRI_EN_BITMAP_PRI_5 0x20
11905 #define DCBX_PFC_PRI_EN_BITMAP_PRI_6 0x40
11906 #define DCBX_PFC_PRI_EN_BITMAP_PRI_7 0x80
11908 #define DCBX_PFC_FLAGS_MASK 0x0000ff00
11909 #define DCBX_PFC_FLAGS_SHIFT 8
11910 #define DCBX_PFC_CAPS_MASK 0x00000f00
11911 #define DCBX_PFC_CAPS_SHIFT 8
11912 #define DCBX_PFC_MBC_MASK 0x00004000
11913 #define DCBX_PFC_MBC_SHIFT 14
11914 #define DCBX_PFC_WILLING_MASK 0x00008000
11915 #define DCBX_PFC_WILLING_SHIFT 15
11916 #define DCBX_PFC_ENABLED_MASK 0x00010000
11917 #define DCBX_PFC_ENABLED_SHIFT 16
11918 #define DCBX_PFC_ERROR_MASK 0x00020000
11919 #define DCBX_PFC_ERROR_SHIFT 17
11921 struct dcbx_app_priority_feature app;
11924 struct dcbx_local_params {
11926 #define DCBX_CONFIG_VERSION_MASK 0x00000007
11927 #define DCBX_CONFIG_VERSION_SHIFT 0
11928 #define DCBX_CONFIG_VERSION_DISABLED 0
11929 #define DCBX_CONFIG_VERSION_IEEE 1
11930 #define DCBX_CONFIG_VERSION_CEE 2
11931 #define DCBX_CONFIG_VERSION_STATIC 4
11934 struct dcbx_features features;
11938 u32 prefix_seq_num;
11940 struct dcbx_features features;
11941 u32 suffix_seq_num;
11944 struct lldp_system_tlvs_buffer_s {
11947 u32 data[MAX_SYSTEM_LLDP_TLV_DATA];
11950 struct dcb_dscp_map {
11952 #define DCB_DSCP_ENABLE_MASK 0x1
11953 #define DCB_DSCP_ENABLE_SHIFT 0
11954 #define DCB_DSCP_ENABLE 1
11955 u32 dscp_pri_map[8];
11958 struct public_global {
11965 u32 debug_mb_offset;
11966 u32 phymod_dbg_mb_offset;
11967 struct couple_mode_teaming cmt;
11968 s32 internal_temperature;
11970 u32 running_bundle_id;
11971 s32 external_temperature;
11984 struct public_path {
11985 struct fw_flr_mb flr_mb;
11986 u32 mcp_vf_disabled[VF_MAX_STATIC / 32];
11989 #define PROCESS_KILL_COUNTER_MASK 0x0000ffff
11990 #define PROCESS_KILL_COUNTER_SHIFT 0
11991 #define PROCESS_KILL_GLOB_AEU_BIT_MASK 0xffff0000
11992 #define PROCESS_KILL_GLOB_AEU_BIT_SHIFT 16
11993 #define GLOBAL_AEU_BIT(aeu_reg_id, aeu_bit) (aeu_reg_id * 32 + aeu_bit)
11996 struct public_port {
12000 #define LINK_STATUS_LINK_UP 0x00000001
12001 #define LINK_STATUS_SPEED_AND_DUPLEX_MASK 0x0000001e
12002 #define LINK_STATUS_SPEED_AND_DUPLEX_1000THD (1 << 1)
12003 #define LINK_STATUS_SPEED_AND_DUPLEX_1000TFD (2 << 1)
12004 #define LINK_STATUS_SPEED_AND_DUPLEX_10G (3 << 1)
12005 #define LINK_STATUS_SPEED_AND_DUPLEX_20G (4 << 1)
12006 #define LINK_STATUS_SPEED_AND_DUPLEX_40G (5 << 1)
12007 #define LINK_STATUS_SPEED_AND_DUPLEX_50G (6 << 1)
12008 #define LINK_STATUS_SPEED_AND_DUPLEX_100G (7 << 1)
12009 #define LINK_STATUS_SPEED_AND_DUPLEX_25G (8 << 1)
12011 #define LINK_STATUS_AUTO_NEGOTIATE_ENABLED 0x00000020
12013 #define LINK_STATUS_AUTO_NEGOTIATE_COMPLETE 0x00000040
12014 #define LINK_STATUS_PARALLEL_DETECTION_USED 0x00000080
12016 #define LINK_STATUS_PFC_ENABLED 0x00000100
12017 #define LINK_STATUS_LINK_PARTNER_1000TFD_CAPABLE 0x00000200
12018 #define LINK_STATUS_LINK_PARTNER_1000THD_CAPABLE 0x00000400
12019 #define LINK_STATUS_LINK_PARTNER_10G_CAPABLE 0x00000800
12020 #define LINK_STATUS_LINK_PARTNER_20G_CAPABLE 0x00001000
12021 #define LINK_STATUS_LINK_PARTNER_40G_CAPABLE 0x00002000
12022 #define LINK_STATUS_LINK_PARTNER_50G_CAPABLE 0x00004000
12023 #define LINK_STATUS_LINK_PARTNER_100G_CAPABLE 0x00008000
12024 #define LINK_STATUS_LINK_PARTNER_25G_CAPABLE 0x00010000
12026 #define LINK_STATUS_LINK_PARTNER_FLOW_CONTROL_MASK 0x000C0000
12027 #define LINK_STATUS_LINK_PARTNER_NOT_PAUSE_CAPABLE (0 << 18)
12028 #define LINK_STATUS_LINK_PARTNER_SYMMETRIC_PAUSE (1 << 18)
12029 #define LINK_STATUS_LINK_PARTNER_ASYMMETRIC_PAUSE (2 << 18)
12030 #define LINK_STATUS_LINK_PARTNER_BOTH_PAUSE (3 << 18)
12032 #define LINK_STATUS_SFP_TX_FAULT 0x00100000
12033 #define LINK_STATUS_TX_FLOW_CONTROL_ENABLED 0x00200000
12034 #define LINK_STATUS_RX_FLOW_CONTROL_ENABLED 0x00400000
12035 #define LINK_STATUS_RX_SIGNAL_PRESENT 0x00800000
12036 #define LINK_STATUS_MAC_LOCAL_FAULT 0x01000000
12037 #define LINK_STATUS_MAC_REMOTE_FAULT 0x02000000
12038 #define LINK_STATUS_UNSUPPORTED_SPD_REQ 0x04000000
12041 u32 ext_phy_fw_version;
12042 u32 drv_phy_cfg_addr;
12046 u32 stat_nig_timer;
12048 struct port_mf_cfg port_mf_config;
12049 struct port_stats stats;
12052 #define MEDIA_UNSPECIFIED 0x0
12053 #define MEDIA_SFPP_10G_FIBER 0x1
12054 #define MEDIA_XFP_FIBER 0x2
12055 #define MEDIA_DA_TWINAX 0x3
12056 #define MEDIA_BASE_T 0x4
12057 #define MEDIA_SFP_1G_FIBER 0x5
12058 #define MEDIA_MODULE_FIBER 0x6
12059 #define MEDIA_KR 0xf0
12060 #define MEDIA_NOT_PRESENT 0xff
12063 u32 link_change_count;
12065 struct lldp_config_params_s lldp_config_params[LLDP_MAX_LLDP_AGENTS];
12066 struct lldp_status_params_s lldp_status_params[LLDP_MAX_LLDP_AGENTS];
12067 struct lldp_system_tlvs_buffer_s system_lldp_tlvs_buf;
12069 /* DCBX related MIB */
12070 struct dcbx_local_params local_admin_dcbx_mib;
12071 struct dcbx_mib remote_dcbx_mib;
12072 struct dcbx_mib operational_dcbx_mib;
12075 u32 transceiver_data;
12076 #define ETH_TRANSCEIVER_STATE_MASK 0x000000FF
12077 #define ETH_TRANSCEIVER_STATE_SHIFT 0x00000000
12078 #define ETH_TRANSCEIVER_STATE_OFFSET 0x00000000
12079 #define ETH_TRANSCEIVER_STATE_UNPLUGGED 0x00000000
12080 #define ETH_TRANSCEIVER_STATE_PRESENT 0x00000001
12081 #define ETH_TRANSCEIVER_STATE_VALID 0x00000003
12082 #define ETH_TRANSCEIVER_STATE_UPDATING 0x00000008
12083 #define ETH_TRANSCEIVER_TYPE_MASK 0x0000FF00
12084 #define ETH_TRANSCEIVER_TYPE_OFFSET 0x8
12085 #define ETH_TRANSCEIVER_TYPE_NONE 0x00
12086 #define ETH_TRANSCEIVER_TYPE_UNKNOWN 0xFF
12087 #define ETH_TRANSCEIVER_TYPE_1G_PCC 0x01
12088 #define ETH_TRANSCEIVER_TYPE_1G_ACC 0x02
12089 #define ETH_TRANSCEIVER_TYPE_1G_LX 0x03
12090 #define ETH_TRANSCEIVER_TYPE_1G_SX 0x04
12091 #define ETH_TRANSCEIVER_TYPE_10G_SR 0x05
12092 #define ETH_TRANSCEIVER_TYPE_10G_LR 0x06
12093 #define ETH_TRANSCEIVER_TYPE_10G_LRM 0x07
12094 #define ETH_TRANSCEIVER_TYPE_10G_ER 0x08
12095 #define ETH_TRANSCEIVER_TYPE_10G_PCC 0x09
12096 #define ETH_TRANSCEIVER_TYPE_10G_ACC 0x0a
12097 #define ETH_TRANSCEIVER_TYPE_XLPPI 0x0b
12098 #define ETH_TRANSCEIVER_TYPE_40G_LR4 0x0c
12099 #define ETH_TRANSCEIVER_TYPE_40G_SR4 0x0d
12100 #define ETH_TRANSCEIVER_TYPE_40G_CR4 0x0e
12101 #define ETH_TRANSCEIVER_TYPE_100G_AOC 0x0f
12102 #define ETH_TRANSCEIVER_TYPE_100G_SR4 0x10
12103 #define ETH_TRANSCEIVER_TYPE_100G_LR4 0x11
12104 #define ETH_TRANSCEIVER_TYPE_100G_ER4 0x12
12105 #define ETH_TRANSCEIVER_TYPE_100G_ACC 0x13
12106 #define ETH_TRANSCEIVER_TYPE_100G_CR4 0x14
12107 #define ETH_TRANSCEIVER_TYPE_4x10G_SR 0x15
12108 #define ETH_TRANSCEIVER_TYPE_25G_CA_N 0x16
12109 #define ETH_TRANSCEIVER_TYPE_25G_ACC_S 0x17
12110 #define ETH_TRANSCEIVER_TYPE_25G_CA_S 0x18
12111 #define ETH_TRANSCEIVER_TYPE_25G_ACC_M 0x19
12112 #define ETH_TRANSCEIVER_TYPE_25G_CA_L 0x1a
12113 #define ETH_TRANSCEIVER_TYPE_25G_ACC_L 0x1b
12114 #define ETH_TRANSCEIVER_TYPE_25G_SR 0x1c
12115 #define ETH_TRANSCEIVER_TYPE_25G_LR 0x1d
12116 #define ETH_TRANSCEIVER_TYPE_25G_AOC 0x1e
12117 #define ETH_TRANSCEIVER_TYPE_4x10G 0x1f
12118 #define ETH_TRANSCEIVER_TYPE_4x25G_CR 0x20
12119 #define ETH_TRANSCEIVER_TYPE_1000BASET 0x21
12120 #define ETH_TRANSCEIVER_TYPE_10G_BASET 0x22
12121 #define ETH_TRANSCEIVER_TYPE_MULTI_RATE_10G_40G_SR 0x30
12122 #define ETH_TRANSCEIVER_TYPE_MULTI_RATE_10G_40G_CR 0x31
12123 #define ETH_TRANSCEIVER_TYPE_MULTI_RATE_10G_40G_LR 0x32
12124 #define ETH_TRANSCEIVER_TYPE_MULTI_RATE_40G_100G_SR 0x33
12125 #define ETH_TRANSCEIVER_TYPE_MULTI_RATE_40G_100G_CR 0x34
12126 #define ETH_TRANSCEIVER_TYPE_MULTI_RATE_40G_100G_LR 0x35
12127 #define ETH_TRANSCEIVER_TYPE_MULTI_RATE_40G_100G_AOC 0x36
12130 u32 wol_pkt_details;
12131 struct dcb_dscp_map dcb_dscp_map;
12134 #define EEE_ACTIVE_BIT BIT(0)
12135 #define EEE_LD_ADV_STATUS_MASK 0x000000f0
12136 #define EEE_LD_ADV_STATUS_OFFSET 4
12137 #define EEE_1G_ADV BIT(1)
12138 #define EEE_10G_ADV BIT(2)
12139 #define EEE_LP_ADV_STATUS_MASK 0x00000f00
12140 #define EEE_LP_ADV_STATUS_OFFSET 8
12141 #define EEE_SUPPORTED_SPEED_MASK 0x0000f000
12142 #define EEE_SUPPORTED_SPEED_OFFSET 12
12143 #define EEE_1G_SUPPORTED BIT(1)
12144 #define EEE_10G_SUPPORTED BIT(2)
12147 #define EEE_REMOTE_TW_TX_MASK 0x0000ffff
12148 #define EEE_REMOTE_TW_TX_OFFSET 0
12149 #define EEE_REMOTE_TW_RX_MASK 0xffff0000
12150 #define EEE_REMOTE_TW_RX_OFFSET 16
12154 #define OEM_CFG_CHANNEL_TYPE_MASK 0x00000003
12155 #define OEM_CFG_CHANNEL_TYPE_OFFSET 0
12156 #define OEM_CFG_CHANNEL_TYPE_VLAN_PARTITION 0x1
12157 #define OEM_CFG_CHANNEL_TYPE_STAGGED 0x2
12158 #define OEM_CFG_SCHED_TYPE_MASK 0x0000000C
12159 #define OEM_CFG_SCHED_TYPE_OFFSET 2
12160 #define OEM_CFG_SCHED_TYPE_ETS 0x1
12161 #define OEM_CFG_SCHED_TYPE_VNIC_BW 0x2
12164 struct public_func {
12172 #define FUNC_MF_CFG_FUNC_HIDE 0x00000001
12173 #define FUNC_MF_CFG_PAUSE_ON_HOST_RING 0x00000002
12174 #define FUNC_MF_CFG_PAUSE_ON_HOST_RING_SHIFT 0x00000001
12176 #define FUNC_MF_CFG_PROTOCOL_MASK 0x000000f0
12177 #define FUNC_MF_CFG_PROTOCOL_SHIFT 4
12178 #define FUNC_MF_CFG_PROTOCOL_ETHERNET 0x00000000
12179 #define FUNC_MF_CFG_PROTOCOL_ISCSI 0x00000010
12180 #define FUNC_MF_CFG_PROTOCOL_FCOE 0x00000020
12181 #define FUNC_MF_CFG_PROTOCOL_ROCE 0x00000030
12182 #define FUNC_MF_CFG_PROTOCOL_MAX 0x00000030
12184 #define FUNC_MF_CFG_MIN_BW_MASK 0x0000ff00
12185 #define FUNC_MF_CFG_MIN_BW_SHIFT 8
12186 #define FUNC_MF_CFG_MIN_BW_DEFAULT 0x00000000
12187 #define FUNC_MF_CFG_MAX_BW_MASK 0x00ff0000
12188 #define FUNC_MF_CFG_MAX_BW_SHIFT 16
12189 #define FUNC_MF_CFG_MAX_BW_DEFAULT 0x00640000
12192 #define FUNC_STATUS_VIRTUAL_LINK_UP 0x00000001
12195 #define FUNC_MF_CFG_UPPERMAC_MASK 0x0000ffff
12196 #define FUNC_MF_CFG_UPPERMAC_SHIFT 0
12197 #define FUNC_MF_CFG_UPPERMAC_DEFAULT FUNC_MF_CFG_UPPERMAC_MASK
12199 #define FUNC_MF_CFG_LOWERMAC_DEFAULT 0xffffffff
12201 u32 fcoe_wwn_port_name_upper;
12202 u32 fcoe_wwn_port_name_lower;
12204 u32 fcoe_wwn_node_name_upper;
12205 u32 fcoe_wwn_node_name_lower;
12208 #define FUNC_MF_CFG_OV_STAG_MASK 0x0000ffff
12209 #define FUNC_MF_CFG_OV_STAG_SHIFT 0
12210 #define FUNC_MF_CFG_OV_STAG_DEFAULT FUNC_MF_CFG_OV_STAG_MASK
12216 u32 driver_last_activity_ts;
12218 u32 drv_ack_vf_disabled[VF_MAX_STATIC / 32];
12221 #define DRV_ID_PDA_COMP_VER_MASK 0x0000ffff
12222 #define DRV_ID_PDA_COMP_VER_SHIFT 0
12224 #define LOAD_REQ_HSI_VERSION 2
12225 #define DRV_ID_MCP_HSI_VER_MASK 0x00ff0000
12226 #define DRV_ID_MCP_HSI_VER_SHIFT 16
12227 #define DRV_ID_MCP_HSI_VER_CURRENT (LOAD_REQ_HSI_VERSION << \
12228 DRV_ID_MCP_HSI_VER_SHIFT)
12230 #define DRV_ID_DRV_TYPE_MASK 0x7f000000
12231 #define DRV_ID_DRV_TYPE_SHIFT 24
12232 #define DRV_ID_DRV_TYPE_UNKNOWN (0 << DRV_ID_DRV_TYPE_SHIFT)
12233 #define DRV_ID_DRV_TYPE_LINUX (1 << DRV_ID_DRV_TYPE_SHIFT)
12235 #define DRV_ID_DRV_INIT_HW_MASK 0x80000000
12236 #define DRV_ID_DRV_INIT_HW_SHIFT 31
12237 #define DRV_ID_DRV_INIT_HW_FLAG (1 << DRV_ID_DRV_INIT_HW_SHIFT)
12240 #define OEM_CFG_FUNC_TC_MASK 0x0000000F
12241 #define OEM_CFG_FUNC_TC_OFFSET 0
12242 #define OEM_CFG_FUNC_TC_0 0x0
12243 #define OEM_CFG_FUNC_TC_1 0x1
12244 #define OEM_CFG_FUNC_TC_2 0x2
12245 #define OEM_CFG_FUNC_TC_3 0x3
12246 #define OEM_CFG_FUNC_TC_4 0x4
12247 #define OEM_CFG_FUNC_TC_5 0x5
12248 #define OEM_CFG_FUNC_TC_6 0x6
12249 #define OEM_CFG_FUNC_TC_7 0x7
12251 #define OEM_CFG_FUNC_HOST_PRI_CTRL_MASK 0x00000030
12252 #define OEM_CFG_FUNC_HOST_PRI_CTRL_OFFSET 4
12253 #define OEM_CFG_FUNC_HOST_PRI_CTRL_VNIC 0x1
12254 #define OEM_CFG_FUNC_HOST_PRI_CTRL_OS 0x2
12267 struct mcp_file_att {
12268 u32 nvm_start_addr;
12272 struct bist_nvm_image_att {
12275 u32 nvm_start_addr;
12279 #define MCP_DRV_VER_STR_SIZE 16
12280 #define MCP_DRV_VER_STR_SIZE_DWORD (MCP_DRV_VER_STR_SIZE / sizeof(u32))
12281 #define MCP_DRV_NVM_BUF_LEN 32
12282 struct drv_version_stc {
12284 u8 name[MCP_DRV_VER_STR_SIZE - 4];
12287 struct lan_stats_stc {
12294 struct fcoe_stats_stc {
12301 struct ocbb_data_stc {
12302 u32 ocbb_host_addr;
12303 u32 ocsd_host_addr;
12304 u32 ocsd_req_update_interval;
12307 #define MAX_NUM_OF_SENSORS 7
12308 struct temperature_status_stc {
12309 u32 num_of_sensors;
12310 u32 sensor[MAX_NUM_OF_SENSORS];
12313 /* crash dump configuration header */
12314 struct mdump_config_stc {
12322 enum resource_id_enum {
12323 RESOURCE_NUM_SB_E = 0,
12324 RESOURCE_NUM_L2_QUEUE_E = 1,
12325 RESOURCE_NUM_VPORT_E = 2,
12326 RESOURCE_NUM_VMQ_E = 3,
12327 RESOURCE_FACTOR_NUM_RSS_PF_E = 4,
12328 RESOURCE_FACTOR_RSS_PER_VF_E = 5,
12329 RESOURCE_NUM_RL_E = 6,
12330 RESOURCE_NUM_PQ_E = 7,
12331 RESOURCE_NUM_VF_E = 8,
12332 RESOURCE_VFC_FILTER_E = 9,
12333 RESOURCE_ILT_E = 10,
12334 RESOURCE_CQS_E = 11,
12335 RESOURCE_GFT_PROFILES_E = 12,
12336 RESOURCE_NUM_TC_E = 13,
12337 RESOURCE_NUM_RSS_ENGINES_E = 14,
12338 RESOURCE_LL2_QUEUE_E = 15,
12339 RESOURCE_RDMA_STATS_QUEUE_E = 16,
12340 RESOURCE_BDQ_E = 17,
12341 RESOURCE_QCN_E = 18,
12342 RESOURCE_LLH_FILTER_E = 19,
12343 RESOURCE_VF_MAC_ADDR = 20,
12344 RESOURCE_LL2_CQS_E = 21,
12345 RESOURCE_VF_CNQS = 22,
12347 RESOURCE_NUM_INVALID = 0xFFFFFFFF
12350 /* Resource ID is to be filled by the driver in the MB request
12351 * Size, offset & flags to be filled by the MFW in the MB response
12353 struct resource_info {
12354 enum resource_id_enum res_id;
12355 u32 size; /* number of allocated resources */
12356 u32 offset; /* Offset of the 1st resource */
12360 #define RESOURCE_ELEMENT_STRICT (1 << 0)
12363 #define DRV_ROLE_NONE 0
12364 #define DRV_ROLE_PREBOOT 1
12365 #define DRV_ROLE_OS 2
12366 #define DRV_ROLE_KDUMP 3
12368 struct load_req_stc {
12373 #define LOAD_REQ_ROLE_MASK 0x000000FF
12374 #define LOAD_REQ_ROLE_SHIFT 0
12375 #define LOAD_REQ_LOCK_TO_MASK 0x0000FF00
12376 #define LOAD_REQ_LOCK_TO_SHIFT 8
12377 #define LOAD_REQ_LOCK_TO_DEFAULT 0
12378 #define LOAD_REQ_LOCK_TO_NONE 255
12379 #define LOAD_REQ_FORCE_MASK 0x000F0000
12380 #define LOAD_REQ_FORCE_SHIFT 16
12381 #define LOAD_REQ_FORCE_NONE 0
12382 #define LOAD_REQ_FORCE_PF 1
12383 #define LOAD_REQ_FORCE_ALL 2
12384 #define LOAD_REQ_FLAGS0_MASK 0x00F00000
12385 #define LOAD_REQ_FLAGS0_SHIFT 20
12386 #define LOAD_REQ_FLAGS0_AVOID_RESET (0x1 << 0)
12389 struct load_rsp_stc {
12394 #define LOAD_RSP_ROLE_MASK 0x000000FF
12395 #define LOAD_RSP_ROLE_SHIFT 0
12396 #define LOAD_RSP_HSI_MASK 0x0000FF00
12397 #define LOAD_RSP_HSI_SHIFT 8
12398 #define LOAD_RSP_FLAGS0_MASK 0x000F0000
12399 #define LOAD_RSP_FLAGS0_SHIFT 16
12400 #define LOAD_RSP_FLAGS0_DRV_EXISTS (0x1 << 0)
12403 union drv_union_data {
12404 u32 ver_str[MCP_DRV_VER_STR_SIZE_DWORD];
12405 struct mcp_mac wol_mac;
12407 struct eth_phy_cfg drv_phy_cfg;
12409 struct mcp_val64 val64;
12411 u8 raw_data[MCP_DRV_NVM_BUF_LEN];
12413 struct mcp_file_att file_att;
12415 u32 ack_vf_disabled[VF_MAX_STATIC / 32];
12417 struct drv_version_stc drv_version;
12419 struct lan_stats_stc lan_stats;
12420 struct fcoe_stats_stc fcoe_stats;
12421 struct ocbb_data_stc ocbb_info;
12422 struct temperature_status_stc temp_info;
12423 struct resource_info resource;
12424 struct bist_nvm_image_att nvm_image_att;
12425 struct mdump_config_stc mdump_config;
12428 struct public_drv_mb {
12430 #define DRV_MSG_CODE_MASK 0xffff0000
12431 #define DRV_MSG_CODE_LOAD_REQ 0x10000000
12432 #define DRV_MSG_CODE_LOAD_DONE 0x11000000
12433 #define DRV_MSG_CODE_INIT_HW 0x12000000
12434 #define DRV_MSG_CODE_CANCEL_LOAD_REQ 0x13000000
12435 #define DRV_MSG_CODE_UNLOAD_REQ 0x20000000
12436 #define DRV_MSG_CODE_UNLOAD_DONE 0x21000000
12437 #define DRV_MSG_CODE_INIT_PHY 0x22000000
12438 #define DRV_MSG_CODE_LINK_RESET 0x23000000
12439 #define DRV_MSG_CODE_SET_DCBX 0x25000000
12440 #define DRV_MSG_CODE_OV_UPDATE_CURR_CFG 0x26000000
12441 #define DRV_MSG_CODE_OV_UPDATE_BUS_NUM 0x27000000
12442 #define DRV_MSG_CODE_OV_UPDATE_BOOT_PROGRESS 0x28000000
12443 #define DRV_MSG_CODE_OV_UPDATE_STORM_FW_VER 0x29000000
12444 #define DRV_MSG_CODE_OV_UPDATE_DRIVER_STATE 0x31000000
12445 #define DRV_MSG_CODE_BW_UPDATE_ACK 0x32000000
12446 #define DRV_MSG_CODE_OV_UPDATE_MTU 0x33000000
12447 #define DRV_MSG_GET_RESOURCE_ALLOC_MSG 0x34000000
12448 #define DRV_MSG_SET_RESOURCE_VALUE_MSG 0x35000000
12449 #define DRV_MSG_CODE_OV_UPDATE_WOL 0x38000000
12450 #define DRV_MSG_CODE_OV_UPDATE_ESWITCH_MODE 0x39000000
12451 #define DRV_MSG_CODE_GET_OEM_UPDATES 0x41000000
12453 #define DRV_MSG_CODE_BW_UPDATE_ACK 0x32000000
12454 #define DRV_MSG_CODE_NIG_DRAIN 0x30000000
12455 #define DRV_MSG_CODE_S_TAG_UPDATE_ACK 0x3b000000
12456 #define DRV_MSG_CODE_GET_NVM_CFG_OPTION 0x003e0000
12457 #define DRV_MSG_CODE_SET_NVM_CFG_OPTION 0x003f0000
12458 #define DRV_MSG_CODE_INITIATE_PF_FLR 0x02010000
12459 #define DRV_MSG_CODE_VF_DISABLED_DONE 0xc0000000
12460 #define DRV_MSG_CODE_CFG_VF_MSIX 0xc0010000
12461 #define DRV_MSG_CODE_CFG_PF_VFS_MSIX 0xc0020000
12462 #define DRV_MSG_CODE_NVM_PUT_FILE_BEGIN 0x00010000
12463 #define DRV_MSG_CODE_NVM_PUT_FILE_DATA 0x00020000
12464 #define DRV_MSG_CODE_NVM_GET_FILE_ATT 0x00030000
12465 #define DRV_MSG_CODE_NVM_READ_NVRAM 0x00050000
12466 #define DRV_MSG_CODE_NVM_WRITE_NVRAM 0x00060000
12467 #define DRV_MSG_CODE_MCP_RESET 0x00090000
12468 #define DRV_MSG_CODE_SET_VERSION 0x000f0000
12469 #define DRV_MSG_CODE_MCP_HALT 0x00100000
12470 #define DRV_MSG_CODE_SET_VMAC 0x00110000
12471 #define DRV_MSG_CODE_GET_VMAC 0x00120000
12472 #define DRV_MSG_CODE_VMAC_TYPE_SHIFT 4
12473 #define DRV_MSG_CODE_VMAC_TYPE_MASK 0x30
12474 #define DRV_MSG_CODE_VMAC_TYPE_MAC 1
12475 #define DRV_MSG_CODE_VMAC_TYPE_WWNN 2
12476 #define DRV_MSG_CODE_VMAC_TYPE_WWPN 3
12478 #define DRV_MSG_CODE_GET_STATS 0x00130000
12479 #define DRV_MSG_CODE_STATS_TYPE_LAN 1
12480 #define DRV_MSG_CODE_STATS_TYPE_FCOE 2
12481 #define DRV_MSG_CODE_STATS_TYPE_ISCSI 3
12482 #define DRV_MSG_CODE_STATS_TYPE_RDMA 4
12484 #define DRV_MSG_CODE_TRANSCEIVER_READ 0x00160000
12486 #define DRV_MSG_CODE_MASK_PARITIES 0x001a0000
12488 #define DRV_MSG_CODE_BIST_TEST 0x001e0000
12489 #define DRV_MSG_CODE_SET_LED_MODE 0x00200000
12490 #define DRV_MSG_CODE_RESOURCE_CMD 0x00230000
12491 #define DRV_MSG_CODE_GET_TLV_DONE 0x002f0000
12492 #define DRV_MSG_CODE_GET_ENGINE_CONFIG 0x00370000
12493 #define DRV_MSG_CODE_GET_PPFID_BITMAP 0x43000000
12495 #define RESOURCE_CMD_REQ_RESC_MASK 0x0000001F
12496 #define RESOURCE_CMD_REQ_RESC_SHIFT 0
12497 #define RESOURCE_CMD_REQ_OPCODE_MASK 0x000000E0
12498 #define RESOURCE_CMD_REQ_OPCODE_SHIFT 5
12499 #define RESOURCE_OPCODE_REQ 1
12500 #define RESOURCE_OPCODE_REQ_WO_AGING 2
12501 #define RESOURCE_OPCODE_REQ_W_AGING 3
12502 #define RESOURCE_OPCODE_RELEASE 4
12503 #define RESOURCE_OPCODE_FORCE_RELEASE 5
12504 #define RESOURCE_CMD_REQ_AGE_MASK 0x0000FF00
12505 #define RESOURCE_CMD_REQ_AGE_SHIFT 8
12507 #define RESOURCE_CMD_RSP_OWNER_MASK 0x000000FF
12508 #define RESOURCE_CMD_RSP_OWNER_SHIFT 0
12509 #define RESOURCE_CMD_RSP_OPCODE_MASK 0x00000700
12510 #define RESOURCE_CMD_RSP_OPCODE_SHIFT 8
12511 #define RESOURCE_OPCODE_GNT 1
12512 #define RESOURCE_OPCODE_BUSY 2
12513 #define RESOURCE_OPCODE_RELEASED 3
12514 #define RESOURCE_OPCODE_RELEASED_PREVIOUS 4
12515 #define RESOURCE_OPCODE_WRONG_OWNER 5
12516 #define RESOURCE_OPCODE_UNKNOWN_CMD 255
12518 #define RESOURCE_DUMP 0
12520 #define DRV_MSG_CODE_GET_PF_RDMA_PROTOCOL 0x002b0000
12521 #define DRV_MSG_CODE_OS_WOL 0x002e0000
12523 #define DRV_MSG_CODE_FEATURE_SUPPORT 0x00300000
12524 #define DRV_MSG_CODE_GET_MFW_FEATURE_SUPPORT 0x00310000
12525 #define DRV_MSG_SEQ_NUMBER_MASK 0x0000ffff
12528 #define DRV_MB_PARAM_UNLOAD_WOL_UNKNOWN 0x00000000
12529 #define DRV_MB_PARAM_UNLOAD_WOL_MCP 0x00000001
12530 #define DRV_MB_PARAM_UNLOAD_WOL_DISABLED 0x00000002
12531 #define DRV_MB_PARAM_UNLOAD_WOL_ENABLED 0x00000003
12532 #define DRV_MB_PARAM_DCBX_NOTIFY_MASK 0x000000FF
12533 #define DRV_MB_PARAM_DCBX_NOTIFY_SHIFT 3
12535 #define DRV_MB_PARAM_NVM_PUT_FILE_BEGIN_MBI 0x3
12536 #define DRV_MB_PARAM_NVM_OFFSET_OFFSET 0
12537 #define DRV_MB_PARAM_NVM_OFFSET_MASK 0x00FFFFFF
12538 #define DRV_MB_PARAM_NVM_LEN_OFFSET 24
12539 #define DRV_MB_PARAM_NVM_LEN_MASK 0xFF000000
12541 #define DRV_MB_PARAM_CFG_VF_MSIX_VF_ID_SHIFT 0
12542 #define DRV_MB_PARAM_CFG_VF_MSIX_VF_ID_MASK 0x000000FF
12543 #define DRV_MB_PARAM_CFG_VF_MSIX_SB_NUM_SHIFT 8
12544 #define DRV_MB_PARAM_CFG_VF_MSIX_SB_NUM_MASK 0x0000FF00
12545 #define DRV_MB_PARAM_LLDP_SEND_MASK 0x00000001
12546 #define DRV_MB_PARAM_LLDP_SEND_SHIFT 0
12548 #define DRV_MB_PARAM_OV_CURR_CFG_SHIFT 0
12549 #define DRV_MB_PARAM_OV_CURR_CFG_MASK 0x0000000F
12550 #define DRV_MB_PARAM_OV_CURR_CFG_NONE 0
12551 #define DRV_MB_PARAM_OV_CURR_CFG_OS 1
12552 #define DRV_MB_PARAM_OV_CURR_CFG_VENDOR_SPEC 2
12553 #define DRV_MB_PARAM_OV_CURR_CFG_OTHER 3
12555 #define DRV_MB_PARAM_OV_STORM_FW_VER_SHIFT 0
12556 #define DRV_MB_PARAM_OV_STORM_FW_VER_MASK 0xFFFFFFFF
12557 #define DRV_MB_PARAM_OV_STORM_FW_VER_MAJOR_MASK 0xFF000000
12558 #define DRV_MB_PARAM_OV_STORM_FW_VER_MINOR_MASK 0x00FF0000
12559 #define DRV_MB_PARAM_OV_STORM_FW_VER_BUILD_MASK 0x0000FF00
12560 #define DRV_MB_PARAM_OV_STORM_FW_VER_DROP_MASK 0x000000FF
12562 #define DRV_MSG_CODE_OV_UPDATE_DRIVER_STATE_SHIFT 0
12563 #define DRV_MSG_CODE_OV_UPDATE_DRIVER_STATE_MASK 0xF
12564 #define DRV_MSG_CODE_OV_UPDATE_DRIVER_STATE_UNKNOWN 0x1
12565 #define DRV_MSG_CODE_OV_UPDATE_DRIVER_STATE_NOT_LOADED 0x2
12566 #define DRV_MSG_CODE_OV_UPDATE_DRIVER_STATE_LOADING 0x3
12567 #define DRV_MSG_CODE_OV_UPDATE_DRIVER_STATE_DISABLED 0x4
12568 #define DRV_MSG_CODE_OV_UPDATE_DRIVER_STATE_ACTIVE 0x5
12570 #define DRV_MB_PARAM_OV_MTU_SIZE_SHIFT 0
12571 #define DRV_MB_PARAM_OV_MTU_SIZE_MASK 0xFFFFFFFF
12573 #define DRV_MB_PARAM_WOL_MASK (DRV_MB_PARAM_WOL_DEFAULT | \
12574 DRV_MB_PARAM_WOL_DISABLED | \
12575 DRV_MB_PARAM_WOL_ENABLED)
12576 #define DRV_MB_PARAM_WOL_DEFAULT DRV_MB_PARAM_UNLOAD_WOL_MCP
12577 #define DRV_MB_PARAM_WOL_DISABLED DRV_MB_PARAM_UNLOAD_WOL_DISABLED
12578 #define DRV_MB_PARAM_WOL_ENABLED DRV_MB_PARAM_UNLOAD_WOL_ENABLED
12580 #define DRV_MB_PARAM_ESWITCH_MODE_MASK (DRV_MB_PARAM_ESWITCH_MODE_NONE | \
12581 DRV_MB_PARAM_ESWITCH_MODE_VEB | \
12582 DRV_MB_PARAM_ESWITCH_MODE_VEPA)
12583 #define DRV_MB_PARAM_ESWITCH_MODE_NONE 0x0
12584 #define DRV_MB_PARAM_ESWITCH_MODE_VEB 0x1
12585 #define DRV_MB_PARAM_ESWITCH_MODE_VEPA 0x2
12587 #define DRV_MB_PARAM_DUMMY_OEM_UPDATES_MASK 0x1
12588 #define DRV_MB_PARAM_DUMMY_OEM_UPDATES_OFFSET 0
12590 #define DRV_MB_PARAM_SET_LED_MODE_OPER 0x0
12591 #define DRV_MB_PARAM_SET_LED_MODE_ON 0x1
12592 #define DRV_MB_PARAM_SET_LED_MODE_OFF 0x2
12594 #define DRV_MB_PARAM_TRANSCEIVER_PORT_OFFSET 0
12595 #define DRV_MB_PARAM_TRANSCEIVER_PORT_MASK 0x00000003
12596 #define DRV_MB_PARAM_TRANSCEIVER_SIZE_OFFSET 2
12597 #define DRV_MB_PARAM_TRANSCEIVER_SIZE_MASK 0x000000FC
12598 #define DRV_MB_PARAM_TRANSCEIVER_I2C_ADDRESS_OFFSET 8
12599 #define DRV_MB_PARAM_TRANSCEIVER_I2C_ADDRESS_MASK 0x0000FF00
12600 #define DRV_MB_PARAM_TRANSCEIVER_OFFSET_OFFSET 16
12601 #define DRV_MB_PARAM_TRANSCEIVER_OFFSET_MASK 0xFFFF0000
12603 /* Resource Allocation params - Driver version support */
12604 #define DRV_MB_PARAM_RESOURCE_ALLOC_VERSION_MAJOR_MASK 0xFFFF0000
12605 #define DRV_MB_PARAM_RESOURCE_ALLOC_VERSION_MAJOR_SHIFT 16
12606 #define DRV_MB_PARAM_RESOURCE_ALLOC_VERSION_MINOR_MASK 0x0000FFFF
12607 #define DRV_MB_PARAM_RESOURCE_ALLOC_VERSION_MINOR_SHIFT 0
12609 #define DRV_MB_PARAM_BIST_REGISTER_TEST 1
12610 #define DRV_MB_PARAM_BIST_CLOCK_TEST 2
12611 #define DRV_MB_PARAM_BIST_NVM_TEST_NUM_IMAGES 3
12612 #define DRV_MB_PARAM_BIST_NVM_TEST_IMAGE_BY_INDEX 4
12614 #define DRV_MB_PARAM_BIST_RC_UNKNOWN 0
12615 #define DRV_MB_PARAM_BIST_RC_PASSED 1
12616 #define DRV_MB_PARAM_BIST_RC_FAILED 2
12617 #define DRV_MB_PARAM_BIST_RC_INVALID_PARAMETER 3
12619 #define DRV_MB_PARAM_BIST_TEST_INDEX_SHIFT 0
12620 #define DRV_MB_PARAM_BIST_TEST_INDEX_MASK 0x000000FF
12621 #define DRV_MB_PARAM_BIST_TEST_IMAGE_INDEX_SHIFT 8
12622 #define DRV_MB_PARAM_BIST_TEST_IMAGE_INDEX_MASK 0x0000FF00
12624 #define DRV_MB_PARAM_FEATURE_SUPPORT_PORT_MASK 0x0000FFFF
12625 #define DRV_MB_PARAM_FEATURE_SUPPORT_PORT_OFFSET 0
12626 #define DRV_MB_PARAM_FEATURE_SUPPORT_PORT_EEE 0x00000002
12627 #define DRV_MB_PARAM_FEATURE_SUPPORT_FUNC_VLINK 0x00010000
12629 #define DRV_MB_PARAM_NVM_CFG_OPTION_ID_SHIFT 0
12630 #define DRV_MB_PARAM_NVM_CFG_OPTION_ID_MASK 0x0000FFFF
12631 #define DRV_MB_PARAM_NVM_CFG_OPTION_ALL_SHIFT 16
12632 #define DRV_MB_PARAM_NVM_CFG_OPTION_ALL_MASK 0x00010000
12633 #define DRV_MB_PARAM_NVM_CFG_OPTION_INIT_SHIFT 17
12634 #define DRV_MB_PARAM_NVM_CFG_OPTION_INIT_MASK 0x00020000
12635 #define DRV_MB_PARAM_NVM_CFG_OPTION_COMMIT_SHIFT 18
12636 #define DRV_MB_PARAM_NVM_CFG_OPTION_COMMIT_MASK 0x00040000
12637 #define DRV_MB_PARAM_NVM_CFG_OPTION_FREE_SHIFT 19
12638 #define DRV_MB_PARAM_NVM_CFG_OPTION_FREE_MASK 0x00080000
12639 #define DRV_MB_PARAM_NVM_CFG_OPTION_ENTITY_SEL_SHIFT 20
12640 #define DRV_MB_PARAM_NVM_CFG_OPTION_ENTITY_SEL_MASK 0x00100000
12641 #define DRV_MB_PARAM_NVM_CFG_OPTION_ENTITY_ID_SHIFT 24
12642 #define DRV_MB_PARAM_NVM_CFG_OPTION_ENTITY_ID_MASK 0x0f000000
12645 #define FW_MSG_CODE_MASK 0xffff0000
12646 #define FW_MSG_CODE_UNSUPPORTED 0x00000000
12647 #define FW_MSG_CODE_DRV_LOAD_ENGINE 0x10100000
12648 #define FW_MSG_CODE_DRV_LOAD_PORT 0x10110000
12649 #define FW_MSG_CODE_DRV_LOAD_FUNCTION 0x10120000
12650 #define FW_MSG_CODE_DRV_LOAD_REFUSED_PDA 0x10200000
12651 #define FW_MSG_CODE_DRV_LOAD_REFUSED_HSI_1 0x10210000
12652 #define FW_MSG_CODE_DRV_LOAD_REFUSED_DIAG 0x10220000
12653 #define FW_MSG_CODE_DRV_LOAD_REFUSED_HSI 0x10230000
12654 #define FW_MSG_CODE_DRV_LOAD_REFUSED_REQUIRES_FORCE 0x10300000
12655 #define FW_MSG_CODE_DRV_LOAD_REFUSED_REJECT 0x10310000
12656 #define FW_MSG_CODE_DRV_LOAD_DONE 0x11100000
12657 #define FW_MSG_CODE_DRV_UNLOAD_ENGINE 0x20110000
12658 #define FW_MSG_CODE_DRV_UNLOAD_PORT 0x20120000
12659 #define FW_MSG_CODE_DRV_UNLOAD_FUNCTION 0x20130000
12660 #define FW_MSG_CODE_DRV_UNLOAD_DONE 0x21100000
12661 #define FW_MSG_CODE_RESOURCE_ALLOC_OK 0x34000000
12662 #define FW_MSG_CODE_RESOURCE_ALLOC_UNKNOWN 0x35000000
12663 #define FW_MSG_CODE_RESOURCE_ALLOC_DEPRECATED 0x36000000
12664 #define FW_MSG_CODE_S_TAG_UPDATE_ACK_DONE 0x3b000000
12665 #define FW_MSG_CODE_DRV_CFG_VF_MSIX_DONE 0xb0010000
12667 #define FW_MSG_CODE_NVM_OK 0x00010000
12668 #define FW_MSG_CODE_NVM_PUT_FILE_FINISH_OK 0x00400000
12669 #define FW_MSG_CODE_PHY_OK 0x00110000
12670 #define FW_MSG_CODE_OK 0x00160000
12671 #define FW_MSG_CODE_ERROR 0x00170000
12672 #define FW_MSG_CODE_TRANSCEIVER_DIAG_OK 0x00160000
12673 #define FW_MSG_CODE_TRANSCEIVER_DIAG_ERROR 0x00170000
12674 #define FW_MSG_CODE_TRANSCEIVER_NOT_PRESENT 0x00020000
12676 #define FW_MSG_CODE_OS_WOL_SUPPORTED 0x00800000
12677 #define FW_MSG_CODE_OS_WOL_NOT_SUPPORTED 0x00810000
12678 #define FW_MSG_CODE_DRV_CFG_PF_VFS_MSIX_DONE 0x00870000
12679 #define FW_MSG_SEQ_NUMBER_MASK 0x0000ffff
12682 #define FW_MB_PARAM_RESOURCE_ALLOC_VERSION_MAJOR_MASK 0xFFFF0000
12683 #define FW_MB_PARAM_RESOURCE_ALLOC_VERSION_MAJOR_SHIFT 16
12684 #define FW_MB_PARAM_RESOURCE_ALLOC_VERSION_MINOR_MASK 0x0000FFFF
12685 #define FW_MB_PARAM_RESOURCE_ALLOC_VERSION_MINOR_SHIFT 0
12687 /* get pf rdma protocol command responce */
12688 #define FW_MB_PARAM_GET_PF_RDMA_NONE 0x0
12689 #define FW_MB_PARAM_GET_PF_RDMA_ROCE 0x1
12690 #define FW_MB_PARAM_GET_PF_RDMA_IWARP 0x2
12691 #define FW_MB_PARAM_GET_PF_RDMA_BOTH 0x3
12693 /* get MFW feature support response */
12694 #define FW_MB_PARAM_FEATURE_SUPPORT_SMARTLINQ 0x00000001
12695 #define FW_MB_PARAM_FEATURE_SUPPORT_EEE 0x00000002
12696 #define FW_MB_PARAM_FEATURE_SUPPORT_VLINK 0x00010000
12698 #define FW_MB_PARAM_LOAD_DONE_DID_EFUSE_ERROR (1 << 0)
12700 #define FW_MB_PARAM_ENG_CFG_FIR_AFFIN_VALID_MASK 0x00000001
12701 #define FW_MB_PARAM_ENG_CFG_FIR_AFFIN_VALID_SHIFT 0
12702 #define FW_MB_PARAM_ENG_CFG_FIR_AFFIN_VALUE_MASK 0x00000002
12703 #define FW_MB_PARAM_ENG_CFG_FIR_AFFIN_VALUE_SHIFT 1
12704 #define FW_MB_PARAM_ENG_CFG_L2_AFFIN_VALID_MASK 0x00000004
12705 #define FW_MB_PARAM_ENG_CFG_L2_AFFIN_VALID_SHIFT 2
12706 #define FW_MB_PARAM_ENG_CFG_L2_AFFIN_VALUE_MASK 0x00000008
12707 #define FW_MB_PARAM_ENG_CFG_L2_AFFIN_VALUE_SHIFT 3
12709 #define FW_MB_PARAM_PPFID_BITMAP_MASK 0xFF
12710 #define FW_MB_PARAM_PPFID_BITMAP_SHIFT 0
12713 #define DRV_PULSE_SEQ_MASK 0x00007fff
12714 #define DRV_PULSE_SYSTEM_TIME_MASK 0xffff0000
12715 #define DRV_PULSE_ALWAYS_ALIVE 0x00008000
12718 #define MCP_PULSE_SEQ_MASK 0x00007fff
12719 #define MCP_PULSE_ALWAYS_ALIVE 0x00008000
12720 #define MCP_EVENT_MASK 0xffff0000
12721 #define MCP_EVENT_OTHER_DRIVER_RESET_REQ 0x00010000
12723 union drv_union_data union_data;
12726 #define FW_MB_PARAM_NVM_PUT_FILE_REQ_OFFSET_MASK 0x00ffffff
12727 #define FW_MB_PARAM_NVM_PUT_FILE_REQ_OFFSET_SHIFT 0
12728 #define FW_MB_PARAM_NVM_PUT_FILE_REQ_SIZE_MASK 0xff000000
12729 #define FW_MB_PARAM_NVM_PUT_FILE_REQ_SIZE_SHIFT 24
12731 enum MFW_DRV_MSG_TYPE {
12732 MFW_DRV_MSG_LINK_CHANGE,
12733 MFW_DRV_MSG_FLR_FW_ACK_FAILED,
12734 MFW_DRV_MSG_VF_DISABLED,
12735 MFW_DRV_MSG_LLDP_DATA_UPDATED,
12736 MFW_DRV_MSG_DCBX_REMOTE_MIB_UPDATED,
12737 MFW_DRV_MSG_DCBX_OPERATIONAL_MIB_UPDATED,
12738 MFW_DRV_MSG_ERROR_RECOVERY,
12739 MFW_DRV_MSG_BW_UPDATE,
12740 MFW_DRV_MSG_S_TAG_UPDATE,
12741 MFW_DRV_MSG_GET_LAN_STATS,
12742 MFW_DRV_MSG_GET_FCOE_STATS,
12743 MFW_DRV_MSG_GET_ISCSI_STATS,
12744 MFW_DRV_MSG_GET_RDMA_STATS,
12745 MFW_DRV_MSG_BW_UPDATE10,
12746 MFW_DRV_MSG_TRANSCEIVER_STATE_CHANGE,
12747 MFW_DRV_MSG_BW_UPDATE11,
12748 MFW_DRV_MSG_RESERVED,
12749 MFW_DRV_MSG_GET_TLV_REQ,
12750 MFW_DRV_MSG_OEM_CFG_UPDATE,
12754 #define MFW_DRV_MSG_MAX_DWORDS(msgs) (((msgs - 1) >> 2) + 1)
12755 #define MFW_DRV_MSG_DWORD(msg_id) (msg_id >> 2)
12756 #define MFW_DRV_MSG_OFFSET(msg_id) ((msg_id & 0x3) << 3)
12757 #define MFW_DRV_MSG_MASK(msg_id) (0xff << MFW_DRV_MSG_OFFSET(msg_id))
12759 struct public_mfw_mb {
12761 u32 msg[MFW_DRV_MSG_MAX_DWORDS(MFW_DRV_MSG_MAX)];
12762 u32 ack[MFW_DRV_MSG_MAX_DWORDS(MFW_DRV_MSG_MAX)];
12765 enum public_sections {
12772 PUBLIC_MAX_SECTIONS
12775 struct mcp_public_data {
12777 u32 sections[PUBLIC_MAX_SECTIONS];
12778 struct public_drv_mb drv_mb[MCP_GLOB_FUNC_MAX];
12779 struct public_mfw_mb mfw_mb[MCP_GLOB_FUNC_MAX];
12780 struct public_global global;
12781 struct public_path path[MCP_GLOB_PATH_MAX];
12782 struct public_port port[MCP_GLOB_PORT_MAX];
12783 struct public_func func[MCP_GLOB_FUNC_MAX];
12786 #define MAX_I2C_TRANSACTION_SIZE 16
12788 /* OCBB definitions */
12790 /* Category 1: Device Properties */
12792 DRV_TLV_CLP_STR_CTD,
12793 /* Category 6: Device Configuration */
12800 /* Category 8: Port Configuration */
12801 DRV_TLV_NPIV_ENABLED,
12802 /* Category 10: Function Configuration */
12803 DRV_TLV_FEATURE_FLAGS,
12804 DRV_TLV_LOCAL_ADMIN_ADDR,
12805 DRV_TLV_ADDITIONAL_MAC_ADDR_1,
12806 DRV_TLV_ADDITIONAL_MAC_ADDR_2,
12807 DRV_TLV_LSO_MAX_OFFLOAD_SIZE,
12808 DRV_TLV_LSO_MIN_SEGMENT_COUNT,
12809 DRV_TLV_PROMISCUOUS_MODE,
12810 DRV_TLV_TX_DESCRIPTORS_QUEUE_SIZE,
12811 DRV_TLV_RX_DESCRIPTORS_QUEUE_SIZE,
12812 DRV_TLV_NUM_OF_NET_QUEUE_VMQ_CFG,
12813 DRV_TLV_FLEX_NIC_OUTER_VLAN_ID,
12814 DRV_TLV_OS_DRIVER_STATES,
12815 DRV_TLV_PXE_BOOT_PROGRESS,
12816 /* Category 12: FC/FCoE Configuration */
12817 DRV_TLV_NPIV_STATE,
12818 DRV_TLV_NUM_OF_NPIV_IDS,
12819 DRV_TLV_SWITCH_NAME,
12820 DRV_TLV_SWITCH_PORT_NUM,
12821 DRV_TLV_SWITCH_PORT_ID,
12822 DRV_TLV_VENDOR_NAME,
12823 DRV_TLV_SWITCH_MODEL,
12824 DRV_TLV_SWITCH_FW_VER,
12825 DRV_TLV_QOS_PRIORITY_PER_802_1P,
12826 DRV_TLV_PORT_ALIAS,
12827 DRV_TLV_PORT_STATE,
12828 DRV_TLV_FIP_TX_DESCRIPTORS_QUEUE_SIZE,
12829 DRV_TLV_FCOE_RX_DESCRIPTORS_QUEUE_SIZE,
12830 DRV_TLV_LINK_FAILURE_COUNT,
12831 DRV_TLV_FCOE_BOOT_PROGRESS,
12832 /* Category 13: iSCSI Configuration */
12833 DRV_TLV_TARGET_LLMNR_ENABLED,
12834 DRV_TLV_HEADER_DIGEST_FLAG_ENABLED,
12835 DRV_TLV_DATA_DIGEST_FLAG_ENABLED,
12836 DRV_TLV_AUTHENTICATION_METHOD,
12837 DRV_TLV_ISCSI_BOOT_TARGET_PORTAL,
12838 DRV_TLV_MAX_FRAME_SIZE,
12839 DRV_TLV_PDU_TX_DESCRIPTORS_QUEUE_SIZE,
12840 DRV_TLV_PDU_RX_DESCRIPTORS_QUEUE_SIZE,
12841 DRV_TLV_ISCSI_BOOT_PROGRESS,
12842 /* Category 20: Device Data */
12843 DRV_TLV_PCIE_BUS_RX_UTILIZATION,
12844 DRV_TLV_PCIE_BUS_TX_UTILIZATION,
12845 DRV_TLV_DEVICE_CPU_CORES_UTILIZATION,
12846 DRV_TLV_LAST_VALID_DCC_TLV_RECEIVED,
12847 DRV_TLV_NCSI_RX_BYTES_RECEIVED,
12848 DRV_TLV_NCSI_TX_BYTES_SENT,
12849 /* Category 22: Base Port Data */
12850 DRV_TLV_RX_DISCARDS,
12853 DRV_TLV_TX_DISCARDS,
12854 DRV_TLV_RX_FRAMES_RECEIVED,
12855 DRV_TLV_TX_FRAMES_SENT,
12856 /* Category 23: FC/FCoE Port Data */
12857 DRV_TLV_RX_BROADCAST_PACKETS,
12858 DRV_TLV_TX_BROADCAST_PACKETS,
12859 /* Category 28: Base Function Data */
12860 DRV_TLV_NUM_OFFLOADED_CONNECTIONS_TCP_IPV4,
12861 DRV_TLV_NUM_OFFLOADED_CONNECTIONS_TCP_IPV6,
12862 DRV_TLV_TX_DESCRIPTOR_QUEUE_AVG_DEPTH,
12863 DRV_TLV_RX_DESCRIPTORS_QUEUE_AVG_DEPTH,
12864 DRV_TLV_PF_RX_FRAMES_RECEIVED,
12865 DRV_TLV_RX_BYTES_RECEIVED,
12866 DRV_TLV_PF_TX_FRAMES_SENT,
12867 DRV_TLV_TX_BYTES_SENT,
12868 DRV_TLV_IOV_OFFLOAD,
12869 DRV_TLV_PCI_ERRORS_CAP_ID,
12870 DRV_TLV_UNCORRECTABLE_ERROR_STATUS,
12871 DRV_TLV_UNCORRECTABLE_ERROR_MASK,
12872 DRV_TLV_CORRECTABLE_ERROR_STATUS,
12873 DRV_TLV_CORRECTABLE_ERROR_MASK,
12874 DRV_TLV_PCI_ERRORS_AECC_REGISTER,
12875 DRV_TLV_TX_QUEUES_EMPTY,
12876 DRV_TLV_RX_QUEUES_EMPTY,
12877 DRV_TLV_TX_QUEUES_FULL,
12878 DRV_TLV_RX_QUEUES_FULL,
12879 /* Category 29: FC/FCoE Function Data */
12880 DRV_TLV_FCOE_TX_DESCRIPTOR_QUEUE_AVG_DEPTH,
12881 DRV_TLV_FCOE_RX_DESCRIPTORS_QUEUE_AVG_DEPTH,
12882 DRV_TLV_FCOE_RX_FRAMES_RECEIVED,
12883 DRV_TLV_FCOE_RX_BYTES_RECEIVED,
12884 DRV_TLV_FCOE_TX_FRAMES_SENT,
12885 DRV_TLV_FCOE_TX_BYTES_SENT,
12886 DRV_TLV_CRC_ERROR_COUNT,
12887 DRV_TLV_CRC_ERROR_1_RECEIVED_SOURCE_FC_ID,
12888 DRV_TLV_CRC_ERROR_1_TIMESTAMP,
12889 DRV_TLV_CRC_ERROR_2_RECEIVED_SOURCE_FC_ID,
12890 DRV_TLV_CRC_ERROR_2_TIMESTAMP,
12891 DRV_TLV_CRC_ERROR_3_RECEIVED_SOURCE_FC_ID,
12892 DRV_TLV_CRC_ERROR_3_TIMESTAMP,
12893 DRV_TLV_CRC_ERROR_4_RECEIVED_SOURCE_FC_ID,
12894 DRV_TLV_CRC_ERROR_4_TIMESTAMP,
12895 DRV_TLV_CRC_ERROR_5_RECEIVED_SOURCE_FC_ID,
12896 DRV_TLV_CRC_ERROR_5_TIMESTAMP,
12897 DRV_TLV_LOSS_OF_SYNC_ERROR_COUNT,
12898 DRV_TLV_LOSS_OF_SIGNAL_ERRORS,
12899 DRV_TLV_PRIMITIVE_SEQUENCE_PROTOCOL_ERROR_COUNT,
12900 DRV_TLV_DISPARITY_ERROR_COUNT,
12901 DRV_TLV_CODE_VIOLATION_ERROR_COUNT,
12902 DRV_TLV_LAST_FLOGI_ISSUED_COMMON_PARAMETERS_WORD_1,
12903 DRV_TLV_LAST_FLOGI_ISSUED_COMMON_PARAMETERS_WORD_2,
12904 DRV_TLV_LAST_FLOGI_ISSUED_COMMON_PARAMETERS_WORD_3,
12905 DRV_TLV_LAST_FLOGI_ISSUED_COMMON_PARAMETERS_WORD_4,
12906 DRV_TLV_LAST_FLOGI_TIMESTAMP,
12907 DRV_TLV_LAST_FLOGI_ACC_COMMON_PARAMETERS_WORD_1,
12908 DRV_TLV_LAST_FLOGI_ACC_COMMON_PARAMETERS_WORD_2,
12909 DRV_TLV_LAST_FLOGI_ACC_COMMON_PARAMETERS_WORD_3,
12910 DRV_TLV_LAST_FLOGI_ACC_COMMON_PARAMETERS_WORD_4,
12911 DRV_TLV_LAST_FLOGI_ACC_TIMESTAMP,
12912 DRV_TLV_LAST_FLOGI_RJT,
12913 DRV_TLV_LAST_FLOGI_RJT_TIMESTAMP,
12914 DRV_TLV_FDISCS_SENT_COUNT,
12915 DRV_TLV_FDISC_ACCS_RECEIVED,
12916 DRV_TLV_FDISC_RJTS_RECEIVED,
12917 DRV_TLV_PLOGI_SENT_COUNT,
12918 DRV_TLV_PLOGI_ACCS_RECEIVED,
12919 DRV_TLV_PLOGI_RJTS_RECEIVED,
12920 DRV_TLV_PLOGI_1_SENT_DESTINATION_FC_ID,
12921 DRV_TLV_PLOGI_1_TIMESTAMP,
12922 DRV_TLV_PLOGI_2_SENT_DESTINATION_FC_ID,
12923 DRV_TLV_PLOGI_2_TIMESTAMP,
12924 DRV_TLV_PLOGI_3_SENT_DESTINATION_FC_ID,
12925 DRV_TLV_PLOGI_3_TIMESTAMP,
12926 DRV_TLV_PLOGI_4_SENT_DESTINATION_FC_ID,
12927 DRV_TLV_PLOGI_4_TIMESTAMP,
12928 DRV_TLV_PLOGI_5_SENT_DESTINATION_FC_ID,
12929 DRV_TLV_PLOGI_5_TIMESTAMP,
12930 DRV_TLV_PLOGI_1_ACC_RECEIVED_SOURCE_FC_ID,
12931 DRV_TLV_PLOGI_1_ACC_TIMESTAMP,
12932 DRV_TLV_PLOGI_2_ACC_RECEIVED_SOURCE_FC_ID,
12933 DRV_TLV_PLOGI_2_ACC_TIMESTAMP,
12934 DRV_TLV_PLOGI_3_ACC_RECEIVED_SOURCE_FC_ID,
12935 DRV_TLV_PLOGI_3_ACC_TIMESTAMP,
12936 DRV_TLV_PLOGI_4_ACC_RECEIVED_SOURCE_FC_ID,
12937 DRV_TLV_PLOGI_4_ACC_TIMESTAMP,
12938 DRV_TLV_PLOGI_5_ACC_RECEIVED_SOURCE_FC_ID,
12939 DRV_TLV_PLOGI_5_ACC_TIMESTAMP,
12940 DRV_TLV_LOGOS_ISSUED,
12941 DRV_TLV_LOGO_ACCS_RECEIVED,
12942 DRV_TLV_LOGO_RJTS_RECEIVED,
12943 DRV_TLV_LOGO_1_RECEIVED_SOURCE_FC_ID,
12944 DRV_TLV_LOGO_1_TIMESTAMP,
12945 DRV_TLV_LOGO_2_RECEIVED_SOURCE_FC_ID,
12946 DRV_TLV_LOGO_2_TIMESTAMP,
12947 DRV_TLV_LOGO_3_RECEIVED_SOURCE_FC_ID,
12948 DRV_TLV_LOGO_3_TIMESTAMP,
12949 DRV_TLV_LOGO_4_RECEIVED_SOURCE_FC_ID,
12950 DRV_TLV_LOGO_4_TIMESTAMP,
12951 DRV_TLV_LOGO_5_RECEIVED_SOURCE_FC_ID,
12952 DRV_TLV_LOGO_5_TIMESTAMP,
12953 DRV_TLV_LOGOS_RECEIVED,
12954 DRV_TLV_ACCS_ISSUED,
12955 DRV_TLV_PRLIS_ISSUED,
12956 DRV_TLV_ACCS_RECEIVED,
12957 DRV_TLV_ABTS_SENT_COUNT,
12958 DRV_TLV_ABTS_ACCS_RECEIVED,
12959 DRV_TLV_ABTS_RJTS_RECEIVED,
12960 DRV_TLV_ABTS_1_SENT_DESTINATION_FC_ID,
12961 DRV_TLV_ABTS_1_TIMESTAMP,
12962 DRV_TLV_ABTS_2_SENT_DESTINATION_FC_ID,
12963 DRV_TLV_ABTS_2_TIMESTAMP,
12964 DRV_TLV_ABTS_3_SENT_DESTINATION_FC_ID,
12965 DRV_TLV_ABTS_3_TIMESTAMP,
12966 DRV_TLV_ABTS_4_SENT_DESTINATION_FC_ID,
12967 DRV_TLV_ABTS_4_TIMESTAMP,
12968 DRV_TLV_ABTS_5_SENT_DESTINATION_FC_ID,
12969 DRV_TLV_ABTS_5_TIMESTAMP,
12970 DRV_TLV_RSCNS_RECEIVED,
12971 DRV_TLV_LAST_RSCN_RECEIVED_N_PORT_1,
12972 DRV_TLV_LAST_RSCN_RECEIVED_N_PORT_2,
12973 DRV_TLV_LAST_RSCN_RECEIVED_N_PORT_3,
12974 DRV_TLV_LAST_RSCN_RECEIVED_N_PORT_4,
12975 DRV_TLV_LUN_RESETS_ISSUED,
12976 DRV_TLV_ABORT_TASK_SETS_ISSUED,
12977 DRV_TLV_TPRLOS_SENT,
12978 DRV_TLV_NOS_SENT_COUNT,
12979 DRV_TLV_NOS_RECEIVED_COUNT,
12983 DRV_TLV_LIP_SENT_COUNT,
12984 DRV_TLV_LIP_RECEIVED_COUNT,
12985 DRV_TLV_EOFA_COUNT,
12986 DRV_TLV_EOFNI_COUNT,
12987 DRV_TLV_SCSI_STATUS_CHECK_CONDITION_COUNT,
12988 DRV_TLV_SCSI_STATUS_CONDITION_MET_COUNT,
12989 DRV_TLV_SCSI_STATUS_BUSY_COUNT,
12990 DRV_TLV_SCSI_STATUS_INTERMEDIATE_COUNT,
12991 DRV_TLV_SCSI_STATUS_INTERMEDIATE_CONDITION_MET_COUNT,
12992 DRV_TLV_SCSI_STATUS_RESERVATION_CONFLICT_COUNT,
12993 DRV_TLV_SCSI_STATUS_TASK_SET_FULL_COUNT,
12994 DRV_TLV_SCSI_STATUS_ACA_ACTIVE_COUNT,
12995 DRV_TLV_SCSI_STATUS_TASK_ABORTED_COUNT,
12996 DRV_TLV_SCSI_CHECK_CONDITION_1_RECEIVED_SK_ASC_ASCQ,
12997 DRV_TLV_SCSI_CHECK_1_TIMESTAMP,
12998 DRV_TLV_SCSI_CHECK_CONDITION_2_RECEIVED_SK_ASC_ASCQ,
12999 DRV_TLV_SCSI_CHECK_2_TIMESTAMP,
13000 DRV_TLV_SCSI_CHECK_CONDITION_3_RECEIVED_SK_ASC_ASCQ,
13001 DRV_TLV_SCSI_CHECK_3_TIMESTAMP,
13002 DRV_TLV_SCSI_CHECK_CONDITION_4_RECEIVED_SK_ASC_ASCQ,
13003 DRV_TLV_SCSI_CHECK_4_TIMESTAMP,
13004 DRV_TLV_SCSI_CHECK_CONDITION_5_RECEIVED_SK_ASC_ASCQ,
13005 DRV_TLV_SCSI_CHECK_5_TIMESTAMP,
13006 /* Category 30: iSCSI Function Data */
13007 DRV_TLV_PDU_TX_DESCRIPTOR_QUEUE_AVG_DEPTH,
13008 DRV_TLV_PDU_RX_DESCRIPTORS_QUEUE_AVG_DEPTH,
13009 DRV_TLV_ISCSI_PDU_RX_FRAMES_RECEIVED,
13010 DRV_TLV_ISCSI_PDU_RX_BYTES_RECEIVED,
13011 DRV_TLV_ISCSI_PDU_TX_FRAMES_SENT,
13012 DRV_TLV_ISCSI_PDU_TX_BYTES_SENT
13015 struct nvm_cfg_mac_address {
13017 #define NVM_CFG_MAC_ADDRESS_HI_MASK 0x0000FFFF
13018 #define NVM_CFG_MAC_ADDRESS_HI_OFFSET 0
13022 struct nvm_cfg1_glob {
13024 #define NVM_CFG1_GLOB_MF_MODE_MASK 0x00000FF0
13025 #define NVM_CFG1_GLOB_MF_MODE_OFFSET 4
13026 #define NVM_CFG1_GLOB_MF_MODE_MF_ALLOWED 0x0
13027 #define NVM_CFG1_GLOB_MF_MODE_DEFAULT 0x1
13028 #define NVM_CFG1_GLOB_MF_MODE_SPIO4 0x2
13029 #define NVM_CFG1_GLOB_MF_MODE_NPAR1_0 0x3
13030 #define NVM_CFG1_GLOB_MF_MODE_NPAR1_5 0x4
13031 #define NVM_CFG1_GLOB_MF_MODE_NPAR2_0 0x5
13032 #define NVM_CFG1_GLOB_MF_MODE_BD 0x6
13033 #define NVM_CFG1_GLOB_MF_MODE_UFP 0x7
13034 u32 engineering_change[3];
13035 u32 manufacturing_id;
13036 u32 serial_number[4];
13040 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_MASK 0x000000FF
13041 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_OFFSET 0
13042 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_BB_2X40G 0x0
13043 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_2X50G 0x1
13044 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_BB_1X100G 0x2
13045 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_4X10G_F 0x3
13046 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_BB_4X10G_E 0x4
13047 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_BB_4X20G 0x5
13048 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_1X40G 0xB
13049 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_2X25G 0xC
13050 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_1X25G 0xD
13051 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_4X25G 0xE
13052 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_2X10G 0xF
13058 u32 mps10_preemphasis;
13059 u32 mps10_driver_current;
13060 u32 mps25_preemphasis;
13061 u32 mps25_driver_current;
13065 u32 mps10_txfir_main;
13066 u32 mps10_txfir_post;
13067 u32 mps25_txfir_main;
13068 u32 mps25_txfir_post;
13069 u32 manufacture_ver;
13070 u32 manufacture_time;
13071 u32 led_global_settings;
13074 #define NVM_CFG1_GLOB_MBI_VERSION_0_MASK 0x000000FF
13075 #define NVM_CFG1_GLOB_MBI_VERSION_0_OFFSET 0
13076 #define NVM_CFG1_GLOB_MBI_VERSION_1_MASK 0x0000FF00
13077 #define NVM_CFG1_GLOB_MBI_VERSION_1_OFFSET 8
13078 #define NVM_CFG1_GLOB_MBI_VERSION_2_MASK 0x00FF0000
13079 #define NVM_CFG1_GLOB_MBI_VERSION_2_OFFSET 16
13082 u32 device_capabilities;
13083 #define NVM_CFG1_GLOB_DEVICE_CAPABILITIES_ETHERNET 0x1
13084 #define NVM_CFG1_GLOB_DEVICE_CAPABILITIES_FCOE 0x2
13085 #define NVM_CFG1_GLOB_DEVICE_CAPABILITIES_ISCSI 0x4
13086 #define NVM_CFG1_GLOB_DEVICE_CAPABILITIES_ROCE 0x8
13087 u32 power_dissipated;
13088 u32 power_consumed;
13090 u32 multi_network_modes_capability;
13094 struct nvm_cfg1_path {
13098 struct nvm_cfg1_port {
13099 u32 reserved__m_relocated_to_option_123;
13100 u32 reserved__m_relocated_to_option_124;
13102 #define NVM_CFG1_PORT_DCBX_MODE_MASK 0x000F0000
13103 #define NVM_CFG1_PORT_DCBX_MODE_OFFSET 16
13104 #define NVM_CFG1_PORT_DCBX_MODE_DISABLED 0x0
13105 #define NVM_CFG1_PORT_DCBX_MODE_IEEE 0x1
13106 #define NVM_CFG1_PORT_DCBX_MODE_CEE 0x2
13107 #define NVM_CFG1_PORT_DCBX_MODE_DYNAMIC 0x3
13108 #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_MASK 0x00F00000
13109 #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_OFFSET 20
13110 #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_ETHERNET 0x1
13111 #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_FCOE 0x2
13112 #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_ISCSI 0x4
13115 u32 speed_cap_mask;
13116 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_MASK 0x0000FFFF
13117 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_OFFSET 0
13118 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_1G 0x1
13119 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_10G 0x2
13120 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_20G 0x4
13121 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_25G 0x8
13122 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_40G 0x10
13123 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_50G 0x20
13124 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_BB_100G 0x40
13126 #define NVM_CFG1_PORT_DRV_LINK_SPEED_MASK 0x0000000F
13127 #define NVM_CFG1_PORT_DRV_LINK_SPEED_OFFSET 0
13128 #define NVM_CFG1_PORT_DRV_LINK_SPEED_AUTONEG 0x0
13129 #define NVM_CFG1_PORT_DRV_LINK_SPEED_1G 0x1
13130 #define NVM_CFG1_PORT_DRV_LINK_SPEED_10G 0x2
13131 #define NVM_CFG1_PORT_DRV_LINK_SPEED_20G 0x3
13132 #define NVM_CFG1_PORT_DRV_LINK_SPEED_25G 0x4
13133 #define NVM_CFG1_PORT_DRV_LINK_SPEED_40G 0x5
13134 #define NVM_CFG1_PORT_DRV_LINK_SPEED_50G 0x6
13135 #define NVM_CFG1_PORT_DRV_LINK_SPEED_BB_100G 0x7
13136 #define NVM_CFG1_PORT_DRV_LINK_SPEED_SMARTLINQ 0x8
13137 #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_MASK 0x00000070
13138 #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_OFFSET 4
13139 #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_AUTONEG 0x1
13140 #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_RX 0x2
13141 #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_TX 0x4
13146 /* EEE power saving mode */
13147 #define NVM_CFG1_PORT_EEE_POWER_SAVING_MODE_MASK 0x00FF0000
13148 #define NVM_CFG1_PORT_EEE_POWER_SAVING_MODE_OFFSET 16
13149 #define NVM_CFG1_PORT_EEE_POWER_SAVING_MODE_DISABLED 0x0
13150 #define NVM_CFG1_PORT_EEE_POWER_SAVING_MODE_BALANCED 0x1
13151 #define NVM_CFG1_PORT_EEE_POWER_SAVING_MODE_AGGRESSIVE 0x2
13152 #define NVM_CFG1_PORT_EEE_POWER_SAVING_MODE_LOW_LATENCY 0x3
13157 struct nvm_cfg_mac_address lldp_mac_address;
13158 u32 led_port_settings;
13159 u32 transceiver_00;
13162 #define NVM_CFG1_PORT_PORT_TYPE_MASK 0x000000FF
13163 #define NVM_CFG1_PORT_PORT_TYPE_OFFSET 0
13164 #define NVM_CFG1_PORT_PORT_TYPE_UNDEFINED 0x0
13165 #define NVM_CFG1_PORT_PORT_TYPE_MODULE 0x1
13166 #define NVM_CFG1_PORT_PORT_TYPE_BACKPLANE 0x2
13167 #define NVM_CFG1_PORT_PORT_TYPE_EXT_PHY 0x3
13168 #define NVM_CFG1_PORT_PORT_TYPE_MODULE_SLAVE 0x4
13187 struct nvm_cfg1_func {
13188 struct nvm_cfg_mac_address mac_address;
13194 struct nvm_cfg_mac_address fcoe_node_wwn_mac_addr;
13195 struct nvm_cfg_mac_address fcoe_port_wwn_mac_addr;
13196 u32 preboot_generic_cfg;
13201 struct nvm_cfg1_glob glob;
13202 struct nvm_cfg1_path path[MCP_GLOB_PATH_MAX];
13203 struct nvm_cfg1_port port[MCP_GLOB_PORT_MAX];
13204 struct nvm_cfg1_func func[MCP_GLOB_FUNC_MAX];
13207 enum spad_sections {
13208 SPAD_SECTION_TRACE,
13209 SPAD_SECTION_NVM_CFG,
13210 SPAD_SECTION_PUBLIC,
13211 SPAD_SECTION_PRIVATE,
13215 #define MCP_TRACE_SIZE 2048 /* 2kb */
13217 /* This section is located at a fixed location in the beginning of the
13218 * scratchpad, to ensure that the MCP trace is not run over during MFW upgrade.
13219 * All the rest of data has a floating location which differs from version to
13220 * version, and is pointed by the mcp_meta_data below.
13221 * Moreover, the spad_layout section is part of the MFW firmware, and is loaded
13222 * with it from nvram in order to clear this portion.
13224 struct static_init {
13226 offsize_t sections[SPAD_SECTION_MAX];
13227 #define SECTION(_sec_) (*((offsize_t *)(STRUCT_OFFSET(sections[_sec_]))))
13229 struct mcp_trace trace;
13230 #define MCP_TRACE_P ((struct mcp_trace *)(STRUCT_OFFSET(trace)))
13231 u8 trace_buffer[MCP_TRACE_SIZE];
13232 #define MCP_TRACE_BUF ((u8 *)(STRUCT_OFFSET(trace_buffer)))
13233 /* running_mfw has the same definition as in nvm_map.h.
13234 * This bit indicate both the running dir, and the running bundle.
13235 * It is set once when the LIM is loaded.
13238 #define RUNNING_MFW (*((u32 *)(STRUCT_OFFSET(running_mfw))))
13240 #define MFW_BUILD_TIME (*((u32 *)(STRUCT_OFFSET(build_time))))
13242 #define RESET_TYPE (*((u32 *)(STRUCT_OFFSET(reset_type))))
13243 u32 mfw_secure_mode;
13244 #define MFW_SECURE_MODE (*((u32 *)(STRUCT_OFFSET(mfw_secure_mode))))
13245 u16 pme_status_pf_bitmap;
13246 #define PME_STATUS_PF_BITMAP (*((u16 *)(STRUCT_OFFSET(pme_status_pf_bitmap))))
13247 u16 pme_enable_pf_bitmap;
13248 #define PME_ENABLE_PF_BITMAP (*((u16 *)(STRUCT_OFFSET(pme_enable_pf_bitmap))))
13250 u32 mim_start_addr;
13251 u32 ah_pcie_link_params;
13252 #define AH_PCIE_LINK_PARAMS_LINK_SPEED_MASK (0x000000ff)
13253 #define AH_PCIE_LINK_PARAMS_LINK_SPEED_SHIFT (0)
13254 #define AH_PCIE_LINK_PARAMS_LINK_WIDTH_MASK (0x0000ff00)
13255 #define AH_PCIE_LINK_PARAMS_LINK_WIDTH_SHIFT (8)
13256 #define AH_PCIE_LINK_PARAMS_ASPM_MODE_MASK (0x00ff0000)
13257 #define AH_PCIE_LINK_PARAMS_ASPM_MODE_SHIFT (16)
13258 #define AH_PCIE_LINK_PARAMS_ASPM_CAP_MASK (0xff000000)
13259 #define AH_PCIE_LINK_PARAMS_ASPM_CAP_SHIFT (24)
13260 #define AH_PCIE_LINK_PARAMS (*((u32 *)(STRUCT_OFFSET(ah_pcie_link_params))))
13262 u32 rsrv_persist[5]; /* Persist reserved for MFW upgrades */
13265 #define NVM_MAGIC_VALUE 0x669955aa
13267 enum nvm_image_type {
13268 NVM_TYPE_TIM1 = 0x01,
13269 NVM_TYPE_TIM2 = 0x02,
13270 NVM_TYPE_MIM1 = 0x03,
13271 NVM_TYPE_MIM2 = 0x04,
13272 NVM_TYPE_MBA = 0x05,
13273 NVM_TYPE_MODULES_PN = 0x06,
13274 NVM_TYPE_VPD = 0x07,
13275 NVM_TYPE_MFW_TRACE1 = 0x08,
13276 NVM_TYPE_MFW_TRACE2 = 0x09,
13277 NVM_TYPE_NVM_CFG1 = 0x0a,
13278 NVM_TYPE_L2B = 0x0b,
13279 NVM_TYPE_DIR1 = 0x0c,
13280 NVM_TYPE_EAGLE_FW1 = 0x0d,
13281 NVM_TYPE_FALCON_FW1 = 0x0e,
13282 NVM_TYPE_PCIE_FW1 = 0x0f,
13283 NVM_TYPE_HW_SET = 0x10,
13284 NVM_TYPE_LIM = 0x11,
13285 NVM_TYPE_AVS_FW1 = 0x12,
13286 NVM_TYPE_DIR2 = 0x13,
13287 NVM_TYPE_CCM = 0x14,
13288 NVM_TYPE_EAGLE_FW2 = 0x15,
13289 NVM_TYPE_FALCON_FW2 = 0x16,
13290 NVM_TYPE_PCIE_FW2 = 0x17,
13291 NVM_TYPE_AVS_FW2 = 0x18,
13292 NVM_TYPE_INIT_HW = 0x19,
13293 NVM_TYPE_DEFAULT_CFG = 0x1a,
13294 NVM_TYPE_MDUMP = 0x1b,
13295 NVM_TYPE_META = 0x1c,
13296 NVM_TYPE_ISCSI_CFG = 0x1d,
13297 NVM_TYPE_FCOE_CFG = 0x1f,
13298 NVM_TYPE_ETH_PHY_FW1 = 0x20,
13299 NVM_TYPE_ETH_PHY_FW2 = 0x21,
13300 NVM_TYPE_BDN = 0x22,
13301 NVM_TYPE_8485X_PHY_FW = 0x23,
13302 NVM_TYPE_PUB_KEY = 0x24,
13303 NVM_TYPE_RECOVERY = 0x25,
13304 NVM_TYPE_PLDM = 0x26,
13305 NVM_TYPE_UPK1 = 0x27,
13306 NVM_TYPE_UPK2 = 0x28,
13307 NVM_TYPE_MASTER_KC = 0x29,
13308 NVM_TYPE_BACKUP_KC = 0x2a,
13309 NVM_TYPE_HW_DUMP = 0x2b,
13310 NVM_TYPE_HW_DUMP_OUT = 0x2c,
13311 NVM_TYPE_BIN_NVM_META = 0x30,
13312 NVM_TYPE_ROM_TEST = 0xf0,
13313 NVM_TYPE_88X33X0_PHY_FW = 0x31,
13314 NVM_TYPE_88X33X0_PHY_SLAVE_FW = 0x32,
13318 #define DIR_ID_1 (0)