/drivers/net/ethernet/broadcom/cnic_defs.h
http://github.com/mirrors/linux · C Header · 5462 lines · 4643 code · 326 blank · 493 comment · 0 complexity · 9a57cf539585108f1b1ae737b568c5e1 MD5 · raw file
Large files are truncated click here to view the full file
- /* cnic.c: QLogic CNIC core network driver.
- *
- * Copyright (c) 2006-2014 Broadcom Corporation
- * Copyright (c) 2014 QLogic Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation.
- *
- */
- #ifndef CNIC_DEFS_H
- #define CNIC_DEFS_H
- /* KWQ (kernel work queue) request op codes */
- #define L2_KWQE_OPCODE_VALUE_FLUSH (4)
- #define L2_KWQE_OPCODE_VALUE_VM_FREE_RX_QUEUE (8)
- #define L4_KWQE_OPCODE_VALUE_CONNECT1 (50)
- #define L4_KWQE_OPCODE_VALUE_CONNECT2 (51)
- #define L4_KWQE_OPCODE_VALUE_CONNECT3 (52)
- #define L4_KWQE_OPCODE_VALUE_RESET (53)
- #define L4_KWQE_OPCODE_VALUE_CLOSE (54)
- #define L4_KWQE_OPCODE_VALUE_UPDATE_SECRET (60)
- #define L4_KWQE_OPCODE_VALUE_INIT_ULP (61)
- #define L4_KWQE_OPCODE_VALUE_OFFLOAD_PG (1)
- #define L4_KWQE_OPCODE_VALUE_UPDATE_PG (9)
- #define L4_KWQE_OPCODE_VALUE_UPLOAD_PG (14)
- #define L5CM_RAMROD_CMD_ID_BASE (0x80)
- #define L5CM_RAMROD_CMD_ID_TCP_CONNECT (L5CM_RAMROD_CMD_ID_BASE + 3)
- #define L5CM_RAMROD_CMD_ID_CLOSE (L5CM_RAMROD_CMD_ID_BASE + 12)
- #define L5CM_RAMROD_CMD_ID_ABORT (L5CM_RAMROD_CMD_ID_BASE + 13)
- #define L5CM_RAMROD_CMD_ID_SEARCHER_DELETE (L5CM_RAMROD_CMD_ID_BASE + 14)
- #define L5CM_RAMROD_CMD_ID_TERMINATE_OFFLOAD (L5CM_RAMROD_CMD_ID_BASE + 15)
- #define FCOE_RAMROD_CMD_ID_INIT_FUNC (FCOE_KCQE_OPCODE_INIT_FUNC)
- #define FCOE_RAMROD_CMD_ID_DESTROY_FUNC (FCOE_KCQE_OPCODE_DESTROY_FUNC)
- #define FCOE_RAMROD_CMD_ID_STAT_FUNC (FCOE_KCQE_OPCODE_STAT_FUNC)
- #define FCOE_RAMROD_CMD_ID_OFFLOAD_CONN (FCOE_KCQE_OPCODE_OFFLOAD_CONN)
- #define FCOE_RAMROD_CMD_ID_ENABLE_CONN (FCOE_KCQE_OPCODE_ENABLE_CONN)
- #define FCOE_RAMROD_CMD_ID_DISABLE_CONN (FCOE_KCQE_OPCODE_DISABLE_CONN)
- #define FCOE_RAMROD_CMD_ID_DESTROY_CONN (FCOE_KCQE_OPCODE_DESTROY_CONN)
- #define FCOE_RAMROD_CMD_ID_TERMINATE_CONN (0x81)
- /* KCQ (kernel completion queue) response op codes */
- #define L4_KCQE_OPCODE_VALUE_CLOSE_COMP (53)
- #define L4_KCQE_OPCODE_VALUE_RESET_COMP (54)
- #define L4_KCQE_OPCODE_VALUE_FW_TCP_UPDATE (55)
- #define L4_KCQE_OPCODE_VALUE_CONNECT_COMPLETE (56)
- #define L4_KCQE_OPCODE_VALUE_RESET_RECEIVED (57)
- #define L4_KCQE_OPCODE_VALUE_CLOSE_RECEIVED (58)
- #define L4_KCQE_OPCODE_VALUE_INIT_ULP (61)
- #define L4_KCQE_OPCODE_VALUE_OFFLOAD_PG (1)
- #define L4_KCQE_OPCODE_VALUE_UPDATE_PG (9)
- #define L4_KCQE_OPCODE_VALUE_UPLOAD_PG (14)
- /* KCQ (kernel completion queue) completion status */
- #define L4_KCQE_COMPLETION_STATUS_SUCCESS (0)
- #define L4_KCQE_COMPLETION_STATUS_NIC_ERROR (4)
- #define L4_KCQE_COMPLETION_STATUS_PARITY_ERROR (0x81)
- #define L4_KCQE_COMPLETION_STATUS_TIMEOUT (0x93)
- #define L4_KCQE_COMPLETION_STATUS_CTX_ALLOC_FAIL (0x83)
- #define L4_KCQE_COMPLETION_STATUS_OFFLOADED_PG (0x89)
- #define L4_KCQE_OPCODE_VALUE_OOO_EVENT_NOTIFICATION (0xa0)
- #define L4_KCQE_OPCODE_VALUE_OOO_FLUSH (0xa1)
- #define L4_LAYER_CODE (4)
- #define L2_LAYER_CODE (2)
- /*
- * L4 KCQ CQE
- */
- struct l4_kcq {
- u32 cid;
- u32 pg_cid;
- u32 conn_id;
- u32 pg_host_opaque;
- #if defined(__BIG_ENDIAN)
- u16 status;
- u16 reserved1;
- #elif defined(__LITTLE_ENDIAN)
- u16 reserved1;
- u16 status;
- #endif
- u32 reserved2[2];
- #if defined(__BIG_ENDIAN)
- u8 flags;
- #define L4_KCQ_RESERVED3 (0x7<<0)
- #define L4_KCQ_RESERVED3_SHIFT 0
- #define L4_KCQ_RAMROD_COMPLETION (0x1<<3) /* Everest only */
- #define L4_KCQ_RAMROD_COMPLETION_SHIFT 3
- #define L4_KCQ_LAYER_CODE (0x7<<4)
- #define L4_KCQ_LAYER_CODE_SHIFT 4
- #define L4_KCQ_RESERVED4 (0x1<<7)
- #define L4_KCQ_RESERVED4_SHIFT 7
- u8 op_code;
- u16 qe_self_seq;
- #elif defined(__LITTLE_ENDIAN)
- u16 qe_self_seq;
- u8 op_code;
- u8 flags;
- #define L4_KCQ_RESERVED3 (0xF<<0)
- #define L4_KCQ_RESERVED3_SHIFT 0
- #define L4_KCQ_RAMROD_COMPLETION (0x1<<3) /* Everest only */
- #define L4_KCQ_RAMROD_COMPLETION_SHIFT 3
- #define L4_KCQ_LAYER_CODE (0x7<<4)
- #define L4_KCQ_LAYER_CODE_SHIFT 4
- #define L4_KCQ_RESERVED4 (0x1<<7)
- #define L4_KCQ_RESERVED4_SHIFT 7
- #endif
- };
- /*
- * L4 KCQ CQE PG upload
- */
- struct l4_kcq_upload_pg {
- u32 pg_cid;
- #if defined(__BIG_ENDIAN)
- u16 pg_status;
- u16 pg_ipid_count;
- #elif defined(__LITTLE_ENDIAN)
- u16 pg_ipid_count;
- u16 pg_status;
- #endif
- u32 reserved1[5];
- #if defined(__BIG_ENDIAN)
- u8 flags;
- #define L4_KCQ_UPLOAD_PG_RESERVED3 (0xF<<0)
- #define L4_KCQ_UPLOAD_PG_RESERVED3_SHIFT 0
- #define L4_KCQ_UPLOAD_PG_LAYER_CODE (0x7<<4)
- #define L4_KCQ_UPLOAD_PG_LAYER_CODE_SHIFT 4
- #define L4_KCQ_UPLOAD_PG_RESERVED4 (0x1<<7)
- #define L4_KCQ_UPLOAD_PG_RESERVED4_SHIFT 7
- u8 op_code;
- u16 qe_self_seq;
- #elif defined(__LITTLE_ENDIAN)
- u16 qe_self_seq;
- u8 op_code;
- u8 flags;
- #define L4_KCQ_UPLOAD_PG_RESERVED3 (0xF<<0)
- #define L4_KCQ_UPLOAD_PG_RESERVED3_SHIFT 0
- #define L4_KCQ_UPLOAD_PG_LAYER_CODE (0x7<<4)
- #define L4_KCQ_UPLOAD_PG_LAYER_CODE_SHIFT 4
- #define L4_KCQ_UPLOAD_PG_RESERVED4 (0x1<<7)
- #define L4_KCQ_UPLOAD_PG_RESERVED4_SHIFT 7
- #endif
- };
- /*
- * Gracefully close the connection request
- */
- struct l4_kwq_close_req {
- #if defined(__BIG_ENDIAN)
- u8 flags;
- #define L4_KWQ_CLOSE_REQ_RESERVED1 (0xF<<0)
- #define L4_KWQ_CLOSE_REQ_RESERVED1_SHIFT 0
- #define L4_KWQ_CLOSE_REQ_LAYER_CODE (0x7<<4)
- #define L4_KWQ_CLOSE_REQ_LAYER_CODE_SHIFT 4
- #define L4_KWQ_CLOSE_REQ_LINKED_WITH_NEXT (0x1<<7)
- #define L4_KWQ_CLOSE_REQ_LINKED_WITH_NEXT_SHIFT 7
- u8 op_code;
- u16 reserved0;
- #elif defined(__LITTLE_ENDIAN)
- u16 reserved0;
- u8 op_code;
- u8 flags;
- #define L4_KWQ_CLOSE_REQ_RESERVED1 (0xF<<0)
- #define L4_KWQ_CLOSE_REQ_RESERVED1_SHIFT 0
- #define L4_KWQ_CLOSE_REQ_LAYER_CODE (0x7<<4)
- #define L4_KWQ_CLOSE_REQ_LAYER_CODE_SHIFT 4
- #define L4_KWQ_CLOSE_REQ_LINKED_WITH_NEXT (0x1<<7)
- #define L4_KWQ_CLOSE_REQ_LINKED_WITH_NEXT_SHIFT 7
- #endif
- u32 cid;
- u32 reserved2[6];
- };
- /*
- * The first request to be passed in order to establish connection in option2
- */
- struct l4_kwq_connect_req1 {
- #if defined(__BIG_ENDIAN)
- u8 flags;
- #define L4_KWQ_CONNECT_REQ1_RESERVED1 (0xF<<0)
- #define L4_KWQ_CONNECT_REQ1_RESERVED1_SHIFT 0
- #define L4_KWQ_CONNECT_REQ1_LAYER_CODE (0x7<<4)
- #define L4_KWQ_CONNECT_REQ1_LAYER_CODE_SHIFT 4
- #define L4_KWQ_CONNECT_REQ1_LINKED_WITH_NEXT (0x1<<7)
- #define L4_KWQ_CONNECT_REQ1_LINKED_WITH_NEXT_SHIFT 7
- u8 op_code;
- u8 reserved0;
- u8 conn_flags;
- #define L4_KWQ_CONNECT_REQ1_IS_PG_HOST_OPAQUE (0x1<<0)
- #define L4_KWQ_CONNECT_REQ1_IS_PG_HOST_OPAQUE_SHIFT 0
- #define L4_KWQ_CONNECT_REQ1_IP_V6 (0x1<<1)
- #define L4_KWQ_CONNECT_REQ1_IP_V6_SHIFT 1
- #define L4_KWQ_CONNECT_REQ1_PASSIVE_FLAG (0x1<<2)
- #define L4_KWQ_CONNECT_REQ1_PASSIVE_FLAG_SHIFT 2
- #define L4_KWQ_CONNECT_REQ1_RSRV (0x1F<<3)
- #define L4_KWQ_CONNECT_REQ1_RSRV_SHIFT 3
- #elif defined(__LITTLE_ENDIAN)
- u8 conn_flags;
- #define L4_KWQ_CONNECT_REQ1_IS_PG_HOST_OPAQUE (0x1<<0)
- #define L4_KWQ_CONNECT_REQ1_IS_PG_HOST_OPAQUE_SHIFT 0
- #define L4_KWQ_CONNECT_REQ1_IP_V6 (0x1<<1)
- #define L4_KWQ_CONNECT_REQ1_IP_V6_SHIFT 1
- #define L4_KWQ_CONNECT_REQ1_PASSIVE_FLAG (0x1<<2)
- #define L4_KWQ_CONNECT_REQ1_PASSIVE_FLAG_SHIFT 2
- #define L4_KWQ_CONNECT_REQ1_RSRV (0x1F<<3)
- #define L4_KWQ_CONNECT_REQ1_RSRV_SHIFT 3
- u8 reserved0;
- u8 op_code;
- u8 flags;
- #define L4_KWQ_CONNECT_REQ1_RESERVED1 (0xF<<0)
- #define L4_KWQ_CONNECT_REQ1_RESERVED1_SHIFT 0
- #define L4_KWQ_CONNECT_REQ1_LAYER_CODE (0x7<<4)
- #define L4_KWQ_CONNECT_REQ1_LAYER_CODE_SHIFT 4
- #define L4_KWQ_CONNECT_REQ1_LINKED_WITH_NEXT (0x1<<7)
- #define L4_KWQ_CONNECT_REQ1_LINKED_WITH_NEXT_SHIFT 7
- #endif
- u32 cid;
- u32 pg_cid;
- u32 src_ip;
- u32 dst_ip;
- #if defined(__BIG_ENDIAN)
- u16 dst_port;
- u16 src_port;
- #elif defined(__LITTLE_ENDIAN)
- u16 src_port;
- u16 dst_port;
- #endif
- #if defined(__BIG_ENDIAN)
- u8 rsrv1[3];
- u8 tcp_flags;
- #define L4_KWQ_CONNECT_REQ1_NO_DELAY_ACK (0x1<<0)
- #define L4_KWQ_CONNECT_REQ1_NO_DELAY_ACK_SHIFT 0
- #define L4_KWQ_CONNECT_REQ1_KEEP_ALIVE (0x1<<1)
- #define L4_KWQ_CONNECT_REQ1_KEEP_ALIVE_SHIFT 1
- #define L4_KWQ_CONNECT_REQ1_NAGLE_ENABLE (0x1<<2)
- #define L4_KWQ_CONNECT_REQ1_NAGLE_ENABLE_SHIFT 2
- #define L4_KWQ_CONNECT_REQ1_TIME_STAMP (0x1<<3)
- #define L4_KWQ_CONNECT_REQ1_TIME_STAMP_SHIFT 3
- #define L4_KWQ_CONNECT_REQ1_SACK (0x1<<4)
- #define L4_KWQ_CONNECT_REQ1_SACK_SHIFT 4
- #define L4_KWQ_CONNECT_REQ1_SEG_SCALING (0x1<<5)
- #define L4_KWQ_CONNECT_REQ1_SEG_SCALING_SHIFT 5
- #define L4_KWQ_CONNECT_REQ1_RESERVED2 (0x3<<6)
- #define L4_KWQ_CONNECT_REQ1_RESERVED2_SHIFT 6
- #elif defined(__LITTLE_ENDIAN)
- u8 tcp_flags;
- #define L4_KWQ_CONNECT_REQ1_NO_DELAY_ACK (0x1<<0)
- #define L4_KWQ_CONNECT_REQ1_NO_DELAY_ACK_SHIFT 0
- #define L4_KWQ_CONNECT_REQ1_KEEP_ALIVE (0x1<<1)
- #define L4_KWQ_CONNECT_REQ1_KEEP_ALIVE_SHIFT 1
- #define L4_KWQ_CONNECT_REQ1_NAGLE_ENABLE (0x1<<2)
- #define L4_KWQ_CONNECT_REQ1_NAGLE_ENABLE_SHIFT 2
- #define L4_KWQ_CONNECT_REQ1_TIME_STAMP (0x1<<3)
- #define L4_KWQ_CONNECT_REQ1_TIME_STAMP_SHIFT 3
- #define L4_KWQ_CONNECT_REQ1_SACK (0x1<<4)
- #define L4_KWQ_CONNECT_REQ1_SACK_SHIFT 4
- #define L4_KWQ_CONNECT_REQ1_SEG_SCALING (0x1<<5)
- #define L4_KWQ_CONNECT_REQ1_SEG_SCALING_SHIFT 5
- #define L4_KWQ_CONNECT_REQ1_RESERVED2 (0x3<<6)
- #define L4_KWQ_CONNECT_REQ1_RESERVED2_SHIFT 6
- u8 rsrv1[3];
- #endif
- u32 rsrv2;
- };
- /*
- * The second ( optional )request to be passed in order to establish
- * connection in option2 - for IPv6 only
- */
- struct l4_kwq_connect_req2 {
- #if defined(__BIG_ENDIAN)
- u8 flags;
- #define L4_KWQ_CONNECT_REQ2_RESERVED1 (0xF<<0)
- #define L4_KWQ_CONNECT_REQ2_RESERVED1_SHIFT 0
- #define L4_KWQ_CONNECT_REQ2_LAYER_CODE (0x7<<4)
- #define L4_KWQ_CONNECT_REQ2_LAYER_CODE_SHIFT 4
- #define L4_KWQ_CONNECT_REQ2_LINKED_WITH_NEXT (0x1<<7)
- #define L4_KWQ_CONNECT_REQ2_LINKED_WITH_NEXT_SHIFT 7
- u8 op_code;
- u8 reserved0;
- u8 rsrv;
- #elif defined(__LITTLE_ENDIAN)
- u8 rsrv;
- u8 reserved0;
- u8 op_code;
- u8 flags;
- #define L4_KWQ_CONNECT_REQ2_RESERVED1 (0xF<<0)
- #define L4_KWQ_CONNECT_REQ2_RESERVED1_SHIFT 0
- #define L4_KWQ_CONNECT_REQ2_LAYER_CODE (0x7<<4)
- #define L4_KWQ_CONNECT_REQ2_LAYER_CODE_SHIFT 4
- #define L4_KWQ_CONNECT_REQ2_LINKED_WITH_NEXT (0x1<<7)
- #define L4_KWQ_CONNECT_REQ2_LINKED_WITH_NEXT_SHIFT 7
- #endif
- u32 reserved2;
- u32 src_ip_v6_2;
- u32 src_ip_v6_3;
- u32 src_ip_v6_4;
- u32 dst_ip_v6_2;
- u32 dst_ip_v6_3;
- u32 dst_ip_v6_4;
- };
- /*
- * The third ( and last )request to be passed in order to establish
- * connection in option2
- */
- struct l4_kwq_connect_req3 {
- #if defined(__BIG_ENDIAN)
- u8 flags;
- #define L4_KWQ_CONNECT_REQ3_RESERVED1 (0xF<<0)
- #define L4_KWQ_CONNECT_REQ3_RESERVED1_SHIFT 0
- #define L4_KWQ_CONNECT_REQ3_LAYER_CODE (0x7<<4)
- #define L4_KWQ_CONNECT_REQ3_LAYER_CODE_SHIFT 4
- #define L4_KWQ_CONNECT_REQ3_LINKED_WITH_NEXT (0x1<<7)
- #define L4_KWQ_CONNECT_REQ3_LINKED_WITH_NEXT_SHIFT 7
- u8 op_code;
- u16 reserved0;
- #elif defined(__LITTLE_ENDIAN)
- u16 reserved0;
- u8 op_code;
- u8 flags;
- #define L4_KWQ_CONNECT_REQ3_RESERVED1 (0xF<<0)
- #define L4_KWQ_CONNECT_REQ3_RESERVED1_SHIFT 0
- #define L4_KWQ_CONNECT_REQ3_LAYER_CODE (0x7<<4)
- #define L4_KWQ_CONNECT_REQ3_LAYER_CODE_SHIFT 4
- #define L4_KWQ_CONNECT_REQ3_LINKED_WITH_NEXT (0x1<<7)
- #define L4_KWQ_CONNECT_REQ3_LINKED_WITH_NEXT_SHIFT 7
- #endif
- u32 ka_timeout;
- u32 ka_interval ;
- #if defined(__BIG_ENDIAN)
- u8 snd_seq_scale;
- u8 ttl;
- u8 tos;
- u8 ka_max_probe_count;
- #elif defined(__LITTLE_ENDIAN)
- u8 ka_max_probe_count;
- u8 tos;
- u8 ttl;
- u8 snd_seq_scale;
- #endif
- #if defined(__BIG_ENDIAN)
- u16 pmtu;
- u16 mss;
- #elif defined(__LITTLE_ENDIAN)
- u16 mss;
- u16 pmtu;
- #endif
- u32 rcv_buf;
- u32 snd_buf;
- u32 seed;
- };
- /*
- * a KWQE request to offload a PG connection
- */
- struct l4_kwq_offload_pg {
- #if defined(__BIG_ENDIAN)
- u8 flags;
- #define L4_KWQ_OFFLOAD_PG_RESERVED1 (0xF<<0)
- #define L4_KWQ_OFFLOAD_PG_RESERVED1_SHIFT 0
- #define L4_KWQ_OFFLOAD_PG_LAYER_CODE (0x7<<4)
- #define L4_KWQ_OFFLOAD_PG_LAYER_CODE_SHIFT 4
- #define L4_KWQ_OFFLOAD_PG_LINKED_WITH_NEXT (0x1<<7)
- #define L4_KWQ_OFFLOAD_PG_LINKED_WITH_NEXT_SHIFT 7
- u8 op_code;
- u16 reserved0;
- #elif defined(__LITTLE_ENDIAN)
- u16 reserved0;
- u8 op_code;
- u8 flags;
- #define L4_KWQ_OFFLOAD_PG_RESERVED1 (0xF<<0)
- #define L4_KWQ_OFFLOAD_PG_RESERVED1_SHIFT 0
- #define L4_KWQ_OFFLOAD_PG_LAYER_CODE (0x7<<4)
- #define L4_KWQ_OFFLOAD_PG_LAYER_CODE_SHIFT 4
- #define L4_KWQ_OFFLOAD_PG_LINKED_WITH_NEXT (0x1<<7)
- #define L4_KWQ_OFFLOAD_PG_LINKED_WITH_NEXT_SHIFT 7
- #endif
- #if defined(__BIG_ENDIAN)
- u8 l2hdr_nbytes;
- u8 pg_flags;
- #define L4_KWQ_OFFLOAD_PG_SNAP_ENCAP (0x1<<0)
- #define L4_KWQ_OFFLOAD_PG_SNAP_ENCAP_SHIFT 0
- #define L4_KWQ_OFFLOAD_PG_VLAN_TAGGING (0x1<<1)
- #define L4_KWQ_OFFLOAD_PG_VLAN_TAGGING_SHIFT 1
- #define L4_KWQ_OFFLOAD_PG_RESERVED2 (0x3F<<2)
- #define L4_KWQ_OFFLOAD_PG_RESERVED2_SHIFT 2
- u8 da0;
- u8 da1;
- #elif defined(__LITTLE_ENDIAN)
- u8 da1;
- u8 da0;
- u8 pg_flags;
- #define L4_KWQ_OFFLOAD_PG_SNAP_ENCAP (0x1<<0)
- #define L4_KWQ_OFFLOAD_PG_SNAP_ENCAP_SHIFT 0
- #define L4_KWQ_OFFLOAD_PG_VLAN_TAGGING (0x1<<1)
- #define L4_KWQ_OFFLOAD_PG_VLAN_TAGGING_SHIFT 1
- #define L4_KWQ_OFFLOAD_PG_RESERVED2 (0x3F<<2)
- #define L4_KWQ_OFFLOAD_PG_RESERVED2_SHIFT 2
- u8 l2hdr_nbytes;
- #endif
- #if defined(__BIG_ENDIAN)
- u8 da2;
- u8 da3;
- u8 da4;
- u8 da5;
- #elif defined(__LITTLE_ENDIAN)
- u8 da5;
- u8 da4;
- u8 da3;
- u8 da2;
- #endif
- #if defined(__BIG_ENDIAN)
- u8 sa0;
- u8 sa1;
- u8 sa2;
- u8 sa3;
- #elif defined(__LITTLE_ENDIAN)
- u8 sa3;
- u8 sa2;
- u8 sa1;
- u8 sa0;
- #endif
- #if defined(__BIG_ENDIAN)
- u8 sa4;
- u8 sa5;
- u16 etype;
- #elif defined(__LITTLE_ENDIAN)
- u16 etype;
- u8 sa5;
- u8 sa4;
- #endif
- #if defined(__BIG_ENDIAN)
- u16 vlan_tag;
- u16 ipid_start;
- #elif defined(__LITTLE_ENDIAN)
- u16 ipid_start;
- u16 vlan_tag;
- #endif
- #if defined(__BIG_ENDIAN)
- u16 ipid_count;
- u16 reserved3;
- #elif defined(__LITTLE_ENDIAN)
- u16 reserved3;
- u16 ipid_count;
- #endif
- u32 host_opaque;
- };
- /*
- * Abortively close the connection request
- */
- struct l4_kwq_reset_req {
- #if defined(__BIG_ENDIAN)
- u8 flags;
- #define L4_KWQ_RESET_REQ_RESERVED1 (0xF<<0)
- #define L4_KWQ_RESET_REQ_RESERVED1_SHIFT 0
- #define L4_KWQ_RESET_REQ_LAYER_CODE (0x7<<4)
- #define L4_KWQ_RESET_REQ_LAYER_CODE_SHIFT 4
- #define L4_KWQ_RESET_REQ_LINKED_WITH_NEXT (0x1<<7)
- #define L4_KWQ_RESET_REQ_LINKED_WITH_NEXT_SHIFT 7
- u8 op_code;
- u16 reserved0;
- #elif defined(__LITTLE_ENDIAN)
- u16 reserved0;
- u8 op_code;
- u8 flags;
- #define L4_KWQ_RESET_REQ_RESERVED1 (0xF<<0)
- #define L4_KWQ_RESET_REQ_RESERVED1_SHIFT 0
- #define L4_KWQ_RESET_REQ_LAYER_CODE (0x7<<4)
- #define L4_KWQ_RESET_REQ_LAYER_CODE_SHIFT 4
- #define L4_KWQ_RESET_REQ_LINKED_WITH_NEXT (0x1<<7)
- #define L4_KWQ_RESET_REQ_LINKED_WITH_NEXT_SHIFT 7
- #endif
- u32 cid;
- u32 reserved2[6];
- };
- /*
- * a KWQE request to update a PG connection
- */
- struct l4_kwq_update_pg {
- #if defined(__BIG_ENDIAN)
- u8 flags;
- #define L4_KWQ_UPDATE_PG_RESERVED1 (0xF<<0)
- #define L4_KWQ_UPDATE_PG_RESERVED1_SHIFT 0
- #define L4_KWQ_UPDATE_PG_LAYER_CODE (0x7<<4)
- #define L4_KWQ_UPDATE_PG_LAYER_CODE_SHIFT 4
- #define L4_KWQ_UPDATE_PG_LINKED_WITH_NEXT (0x1<<7)
- #define L4_KWQ_UPDATE_PG_LINKED_WITH_NEXT_SHIFT 7
- u8 opcode;
- u16 oper16;
- #elif defined(__LITTLE_ENDIAN)
- u16 oper16;
- u8 opcode;
- u8 flags;
- #define L4_KWQ_UPDATE_PG_RESERVED1 (0xF<<0)
- #define L4_KWQ_UPDATE_PG_RESERVED1_SHIFT 0
- #define L4_KWQ_UPDATE_PG_LAYER_CODE (0x7<<4)
- #define L4_KWQ_UPDATE_PG_LAYER_CODE_SHIFT 4
- #define L4_KWQ_UPDATE_PG_LINKED_WITH_NEXT (0x1<<7)
- #define L4_KWQ_UPDATE_PG_LINKED_WITH_NEXT_SHIFT 7
- #endif
- u32 pg_cid;
- u32 pg_host_opaque;
- #if defined(__BIG_ENDIAN)
- u8 pg_valids;
- #define L4_KWQ_UPDATE_PG_VALIDS_IPID_COUNT (0x1<<0)
- #define L4_KWQ_UPDATE_PG_VALIDS_IPID_COUNT_SHIFT 0
- #define L4_KWQ_UPDATE_PG_VALIDS_DA (0x1<<1)
- #define L4_KWQ_UPDATE_PG_VALIDS_DA_SHIFT 1
- #define L4_KWQ_UPDATE_PG_RESERVERD2 (0x3F<<2)
- #define L4_KWQ_UPDATE_PG_RESERVERD2_SHIFT 2
- u8 pg_unused_a;
- u16 pg_ipid_count;
- #elif defined(__LITTLE_ENDIAN)
- u16 pg_ipid_count;
- u8 pg_unused_a;
- u8 pg_valids;
- #define L4_KWQ_UPDATE_PG_VALIDS_IPID_COUNT (0x1<<0)
- #define L4_KWQ_UPDATE_PG_VALIDS_IPID_COUNT_SHIFT 0
- #define L4_KWQ_UPDATE_PG_VALIDS_DA (0x1<<1)
- #define L4_KWQ_UPDATE_PG_VALIDS_DA_SHIFT 1
- #define L4_KWQ_UPDATE_PG_RESERVERD2 (0x3F<<2)
- #define L4_KWQ_UPDATE_PG_RESERVERD2_SHIFT 2
- #endif
- #if defined(__BIG_ENDIAN)
- u16 reserved3;
- u8 da0;
- u8 da1;
- #elif defined(__LITTLE_ENDIAN)
- u8 da1;
- u8 da0;
- u16 reserved3;
- #endif
- #if defined(__BIG_ENDIAN)
- u8 da2;
- u8 da3;
- u8 da4;
- u8 da5;
- #elif defined(__LITTLE_ENDIAN)
- u8 da5;
- u8 da4;
- u8 da3;
- u8 da2;
- #endif
- u32 reserved4;
- u32 reserved5;
- };
- /*
- * a KWQE request to upload a PG or L4 context
- */
- struct l4_kwq_upload {
- #if defined(__BIG_ENDIAN)
- u8 flags;
- #define L4_KWQ_UPLOAD_RESERVED1 (0xF<<0)
- #define L4_KWQ_UPLOAD_RESERVED1_SHIFT 0
- #define L4_KWQ_UPLOAD_LAYER_CODE (0x7<<4)
- #define L4_KWQ_UPLOAD_LAYER_CODE_SHIFT 4
- #define L4_KWQ_UPLOAD_LINKED_WITH_NEXT (0x1<<7)
- #define L4_KWQ_UPLOAD_LINKED_WITH_NEXT_SHIFT 7
- u8 opcode;
- u16 oper16;
- #elif defined(__LITTLE_ENDIAN)
- u16 oper16;
- u8 opcode;
- u8 flags;
- #define L4_KWQ_UPLOAD_RESERVED1 (0xF<<0)
- #define L4_KWQ_UPLOAD_RESERVED1_SHIFT 0
- #define L4_KWQ_UPLOAD_LAYER_CODE (0x7<<4)
- #define L4_KWQ_UPLOAD_LAYER_CODE_SHIFT 4
- #define L4_KWQ_UPLOAD_LINKED_WITH_NEXT (0x1<<7)
- #define L4_KWQ_UPLOAD_LINKED_WITH_NEXT_SHIFT 7
- #endif
- u32 cid;
- u32 reserved2[6];
- };
- /*
- * bnx2x structures
- */
- /*
- * The iscsi aggregative context of Cstorm
- */
- struct cstorm_iscsi_ag_context {
- u32 agg_vars1;
- #define CSTORM_ISCSI_AG_CONTEXT_STATE (0xFF<<0)
- #define CSTORM_ISCSI_AG_CONTEXT_STATE_SHIFT 0
- #define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<8)
- #define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 8
- #define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<9)
- #define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 9
- #define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<10)
- #define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 10
- #define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<11)
- #define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 11
- #define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_SE_CF_EN (0x1<<12)
- #define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_SE_CF_EN_SHIFT 12
- #define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_INV_CF_EN (0x1<<13)
- #define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_INV_CF_EN_SHIFT 13
- #define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF (0x3<<14)
- #define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF_SHIFT 14
- #define __CSTORM_ISCSI_AG_CONTEXT_RESERVED66 (0x3<<16)
- #define __CSTORM_ISCSI_AG_CONTEXT_RESERVED66_SHIFT 16
- #define __CSTORM_ISCSI_AG_CONTEXT_FIN_RECEIVED_CF_EN (0x1<<18)
- #define __CSTORM_ISCSI_AG_CONTEXT_FIN_RECEIVED_CF_EN_SHIFT 18
- #define __CSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN (0x1<<19)
- #define __CSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN_SHIFT 19
- #define __CSTORM_ISCSI_AG_CONTEXT_AUX2_CF_EN (0x1<<20)
- #define __CSTORM_ISCSI_AG_CONTEXT_AUX2_CF_EN_SHIFT 20
- #define __CSTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN (0x1<<21)
- #define __CSTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN_SHIFT 21
- #define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF_EN (0x1<<22)
- #define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF_EN_SHIFT 22
- #define __CSTORM_ISCSI_AG_CONTEXT_REL_SEQ_RULE (0x7<<23)
- #define __CSTORM_ISCSI_AG_CONTEXT_REL_SEQ_RULE_SHIFT 23
- #define CSTORM_ISCSI_AG_CONTEXT_HQ_PROD_RULE (0x3<<26)
- #define CSTORM_ISCSI_AG_CONTEXT_HQ_PROD_RULE_SHIFT 26
- #define __CSTORM_ISCSI_AG_CONTEXT_RESERVED52 (0x3<<28)
- #define __CSTORM_ISCSI_AG_CONTEXT_RESERVED52_SHIFT 28
- #define __CSTORM_ISCSI_AG_CONTEXT_RESERVED53 (0x3<<30)
- #define __CSTORM_ISCSI_AG_CONTEXT_RESERVED53_SHIFT 30
- #if defined(__BIG_ENDIAN)
- u8 __aux1_th;
- u8 __aux1_val;
- u16 __agg_vars2;
- #elif defined(__LITTLE_ENDIAN)
- u16 __agg_vars2;
- u8 __aux1_val;
- u8 __aux1_th;
- #endif
- u32 rel_seq;
- u32 rel_seq_th;
- #if defined(__BIG_ENDIAN)
- u16 hq_cons;
- u16 hq_prod;
- #elif defined(__LITTLE_ENDIAN)
- u16 hq_prod;
- u16 hq_cons;
- #endif
- #if defined(__BIG_ENDIAN)
- u8 __reserved62;
- u8 __reserved61;
- u8 __reserved60;
- u8 __reserved59;
- #elif defined(__LITTLE_ENDIAN)
- u8 __reserved59;
- u8 __reserved60;
- u8 __reserved61;
- u8 __reserved62;
- #endif
- #if defined(__BIG_ENDIAN)
- u16 __reserved64;
- u16 cq_u_prod;
- #elif defined(__LITTLE_ENDIAN)
- u16 cq_u_prod;
- u16 __reserved64;
- #endif
- u32 __cq_u_prod1;
- #if defined(__BIG_ENDIAN)
- u16 __agg_vars3;
- u16 cq_u_pend;
- #elif defined(__LITTLE_ENDIAN)
- u16 cq_u_pend;
- u16 __agg_vars3;
- #endif
- #if defined(__BIG_ENDIAN)
- u16 __aux2_th;
- u16 aux2_val;
- #elif defined(__LITTLE_ENDIAN)
- u16 aux2_val;
- u16 __aux2_th;
- #endif
- };
- /*
- * The fcoe extra aggregative context section of Tstorm
- */
- struct tstorm_fcoe_extra_ag_context_section {
- u32 __agg_val1;
- #if defined(__BIG_ENDIAN)
- u8 __tcp_agg_vars2;
- u8 __agg_val3;
- u16 __agg_val2;
- #elif defined(__LITTLE_ENDIAN)
- u16 __agg_val2;
- u8 __agg_val3;
- u8 __tcp_agg_vars2;
- #endif
- #if defined(__BIG_ENDIAN)
- u16 __agg_val5;
- u8 __agg_val6;
- u8 __tcp_agg_vars3;
- #elif defined(__LITTLE_ENDIAN)
- u8 __tcp_agg_vars3;
- u8 __agg_val6;
- u16 __agg_val5;
- #endif
- u32 __lcq_prod;
- u32 rtt_seq;
- u32 rtt_time;
- u32 __reserved66;
- u32 wnd_right_edge;
- u32 tcp_agg_vars1;
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_FIN_SENT_FLAG (0x1<<0)
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT 0
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG (0x1<<1)
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG_SHIFT 1
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF (0x3<<2)
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF_SHIFT 2
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF (0x3<<4)
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF_SHIFT 4
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF_EN (0x1<<6)
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF_EN_SHIFT 6
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF_EN (0x1<<7)
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF_EN_SHIFT 7
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN (0x1<<8)
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN_SHIFT 8
- #define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LCQ_SND_EN (0x1<<9)
- #define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LCQ_SND_EN_SHIFT 9
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<10)
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 10
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_FLAG (0x1<<11)
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_FLAG_SHIFT 11
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF_EN (0x1<<12)
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF_EN_SHIFT 12
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF_EN (0x1<<13)
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF_EN_SHIFT 13
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF (0x3<<14)
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF_SHIFT 14
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF (0x3<<16)
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF_SHIFT 16
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_BLOCKED (0x1<<18)
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_BLOCKED_SHIFT 18
- #define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX10_CF_EN (0x1<<19)
- #define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT 19
- #define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX11_CF_EN (0x1<<20)
- #define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX11_CF_EN_SHIFT 20
- #define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX12_CF_EN (0x1<<21)
- #define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX12_CF_EN_SHIFT 21
- #define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED1 (0x3<<22)
- #define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED1_SHIFT 22
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ (0xF<<24)
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ_SHIFT 24
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ (0xF<<28)
- #define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ_SHIFT 28
- u32 snd_max;
- u32 __lcq_cons;
- u32 __reserved2;
- };
- /*
- * The fcoe aggregative context of Tstorm
- */
- struct tstorm_fcoe_ag_context {
- #if defined(__BIG_ENDIAN)
- u16 ulp_credit;
- u8 agg_vars1;
- #define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
- #define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
- #define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
- #define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
- #define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
- #define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
- #define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
- #define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
- #define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF (0x3<<4)
- #define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_SHIFT 4
- #define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG (0x1<<6)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG_SHIFT 6
- #define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG (0x1<<7)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG_SHIFT 7
- u8 state;
- #elif defined(__LITTLE_ENDIAN)
- u8 state;
- u8 agg_vars1;
- #define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
- #define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
- #define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
- #define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
- #define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
- #define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
- #define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
- #define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
- #define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF (0x3<<4)
- #define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_SHIFT 4
- #define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG (0x1<<6)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG_SHIFT 6
- #define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG (0x1<<7)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG_SHIFT 7
- u16 ulp_credit;
- #endif
- #if defined(__BIG_ENDIAN)
- u16 __agg_val4;
- u16 agg_vars2;
- #define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG (0x1<<0)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG_SHIFT 0
- #define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG (0x1<<1)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG_SHIFT 1
- #define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF (0x3<<2)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF_SHIFT 2
- #define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF (0x3<<4)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF_SHIFT 4
- #define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF (0x3<<6)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF_SHIFT 6
- #define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF (0x3<<8)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF_SHIFT 8
- #define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG (0x1<<10)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG_SHIFT 10
- #define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN (0x1<<11)
- #define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN_SHIFT 11
- #define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN (0x1<<12)
- #define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN_SHIFT 12
- #define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN (0x1<<13)
- #define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN_SHIFT 13
- #define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN (0x1<<14)
- #define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN_SHIFT 14
- #define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN (0x1<<15)
- #define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN_SHIFT 15
- #elif defined(__LITTLE_ENDIAN)
- u16 agg_vars2;
- #define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG (0x1<<0)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG_SHIFT 0
- #define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG (0x1<<1)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG_SHIFT 1
- #define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF (0x3<<2)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF_SHIFT 2
- #define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF (0x3<<4)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF_SHIFT 4
- #define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF (0x3<<6)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF_SHIFT 6
- #define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF (0x3<<8)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF_SHIFT 8
- #define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG (0x1<<10)
- #define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG_SHIFT 10
- #define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN (0x1<<11)
- #define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN_SHIFT 11
- #define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN (0x1<<12)
- #define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN_SHIFT 12
- #define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN (0x1<<13)
- #define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN_SHIFT 13
- #define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN (0x1<<14)
- #define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN_SHIFT 14
- #define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN (0x1<<15)
- #define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN_SHIFT 15
- u16 __agg_val4;
- #endif
- struct tstorm_fcoe_extra_ag_context_section __extra_section;
- };
- /*
- * The tcp aggregative context section of Tstorm
- */
- struct tstorm_tcp_tcp_ag_context_section {
- u32 __agg_val1;
- #if defined(__BIG_ENDIAN)
- u8 __tcp_agg_vars2;
- u8 __agg_val3;
- u16 __agg_val2;
- #elif defined(__LITTLE_ENDIAN)
- u16 __agg_val2;
- u8 __agg_val3;
- u8 __tcp_agg_vars2;
- #endif
- #if defined(__BIG_ENDIAN)
- u16 __agg_val5;
- u8 __agg_val6;
- u8 __tcp_agg_vars3;
- #elif defined(__LITTLE_ENDIAN)
- u8 __tcp_agg_vars3;
- u8 __agg_val6;
- u16 __agg_val5;
- #endif
- u32 snd_nxt;
- u32 rtt_seq;
- u32 rtt_time;
- u32 wnd_right_edge_local;
- u32 wnd_right_edge;
- u32 tcp_agg_vars1;
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG (0x1<<0)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT 0
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG (0x1<<1)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG_SHIFT 1
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF (0x3<<2)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_SHIFT 2
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF (0x3<<4)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_SHIFT 4
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_EN (0x1<<6)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_EN_SHIFT 6
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN (0x1<<7)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN_SHIFT 7
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN (0x1<<8)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN_SHIFT 8
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_SND_NXT_EN (0x1<<9)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_SND_NXT_EN_SHIFT 9
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<10)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 10
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_FLAG (0x1<<11)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_FLAG_SHIFT 11
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF_EN (0x1<<12)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF_EN_SHIFT 12
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF_EN (0x1<<13)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF_EN_SHIFT 13
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF (0x3<<14)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF_SHIFT 14
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF (0x3<<16)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF_SHIFT 16
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_BLOCKED (0x1<<18)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_BLOCKED_SHIFT 18
- #define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN (0x1<<19)
- #define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT 19
- #define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN (0x1<<20)
- #define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN_SHIFT 20
- #define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN (0x1<<21)
- #define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN_SHIFT 21
- #define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED1 (0x3<<22)
- #define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED1_SHIFT 22
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ (0xF<<24)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ_SHIFT 24
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ (0xF<<28)
- #define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ_SHIFT 28
- u32 snd_max;
- u32 snd_una;
- u32 __reserved2;
- };
- /*
- * The iscsi aggregative context of Tstorm
- */
- struct tstorm_iscsi_ag_context {
- #if defined(__BIG_ENDIAN)
- u16 ulp_credit;
- u8 agg_vars1;
- #define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
- #define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
- #define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
- #define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
- #define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
- #define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
- #define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
- #define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
- #define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF (0x3<<4)
- #define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_SHIFT 4
- #define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG (0x1<<6)
- #define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG_SHIFT 6
- #define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG (0x1<<7)
- #define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG_SHIFT 7
- u8 state;
- #elif defined(__LITTLE_ENDIAN)
- u8 state;
- u8 agg_vars1;
- #define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
- #define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
- #define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
- #define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
- #define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
- #define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
- #define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
- #define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
- #define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF (0x3<<4)
- #define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_SHIFT 4
- #define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG (0x1<<6)
- #define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG_SHIFT 6
- #define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG (0x1<<7)
- #define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG_SHIFT 7
- u16 ulp_credit;
- #endif
- #if defined(__BIG_ENDIAN)
- u16 __agg_val4;
- u16 agg_vars2;
- #define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG (0x1<<0)
- #define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG_SHIFT 0
- #define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG (0x1<<1)
- #define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG_SHIFT 1
- #define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF (0x3<<2)
- #define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_SHIFT 2
- #define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF (0x3<<4)
- #define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_SHIFT 4
- #define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF (0x3<<6)
- #define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_SHIFT 6
- #define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF (0x3<<8)
- #define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_SHIFT 8
- #define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG (0x1<<10)
- #define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG_SHIFT 10
- #define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<11)
- #define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 11
- #define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN (0x1<<12)
- #define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN_SHIFT 12
- #define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN (0x1<<13)
- #define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN_SHIFT 13
- #define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN (0x1<<14)
- #define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN_SHIFT 14
- #define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN (0x1<<15)
- #define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN_SHIFT 15
- #elif defined(__LITTLE_ENDIAN)
- u16 agg_vars2;
- #define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG (0x1<<0)
- #define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG_SHIFT 0
- #define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG (0x1<<1)
- #define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG_SHIFT 1
- #define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF (0x3<<2)
- #define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_SHIFT 2
- #define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF (0x3<<4)
- #define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_SHIFT 4
- #define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF (0x3<<6)
- #define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_SHIFT 6
- #define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF (0x3<<8)
- #define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_SHIFT 8
- #define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG (0x1<<10)
- #define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG_SHIFT 10
- #define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<11)
- #define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 11
- #define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN (0x1<<12)
- #define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN_SHIFT 12
- #define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN (0x1<<13)
- #define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN_SHIFT 13
- #define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN (0x1<<14)
- #define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN_SHIFT 14
- #define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN (0x1<<15)
- #define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN_SHIFT 15
- u16 __agg_val4;
- #endif
- struct tstorm_tcp_tcp_ag_context_section tcp;
- };
- /*
- * The fcoe aggregative context of Ustorm
- */
- struct ustorm_fcoe_ag_context {
- #if defined(__BIG_ENDIAN)
- u8 __aux_counter_flags;
- u8 agg_vars2;
- #define USTORM_FCOE_AG_CONTEXT_TX_CF (0x3<<0)
- #define USTORM_FCOE_AG_CONTEXT_TX_CF_SHIFT 0
- #define __USTORM_FCOE_AG_CONTEXT_TIMER_CF (0x3<<2)
- #define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_SHIFT 2
- #define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE (0x7<<4)
- #define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE_SHIFT 4
- #define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK (0x1<<7)
- #define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK_SHIFT 7
- u8 agg_vars1;
- #define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
- #define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
- #define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
- #define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
- #define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
- #define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
- #define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
- #define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
- #define USTORM_FCOE_AG_CONTEXT_INV_CF (0x3<<4)
- #define USTORM_FCOE_AG_CONTEXT_INV_CF_SHIFT 4
- #define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF (0x3<<6)
- #define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_SHIFT 6
- u8 state;
- #elif defined(__LITTLE_ENDIAN)
- u8 state;
- u8 agg_vars1;
- #define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
- #define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
- #define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
- #define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
- #define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
- #define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
- #define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
- #define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
- #define USTORM_FCOE_AG_CONTEXT_INV_CF (0x3<<4)
- #define USTORM_FCOE_AG_CONTEXT_INV_CF_SHIFT 4
- #define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF (0x3<<6)
- #define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_SHIFT 6
- u8 agg_vars2;
- #define USTORM_FCOE_AG_CONTEXT_TX_CF (0x3<<0)
- #define USTORM_FCOE_AG_CONTEXT_TX_CF_SHIFT 0
- #define __USTORM_FCOE_AG_CONTEXT_TIMER_CF (0x3<<2)
- #define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_SHIFT 2
- #define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE (0x7<<4)
- #define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE_SHIFT 4
- #define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK (0x1<<7)
- #define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK_SHIFT 7
- u8 __aux_counter_flags;
- #endif
- #if defined(__BIG_ENDIAN)
- u8 cdu_usage;
- u8 agg_misc2;
- u16 pbf_tx_seq_ack;
- #elif defined(__LITTLE_ENDIAN)
- u16 pbf_tx_seq_ack;
- u8 agg_misc2;
- u8 cdu_usage;
- #endif
- u32 agg_misc4;
- #if defined(__BIG_ENDIAN)
- u8 agg_val3_th;
- u8 agg_val3;
- u16 agg_misc3;
- #elif defined(__LITTLE_ENDIAN)
- u16 agg_misc3;
- u8 agg_val3;
- u8 agg_val3_th;
- #endif
- u32 expired_task_id;
- u32 agg_misc4_th;
- #if defined(__BIG_ENDIAN)
- u16 cq_prod;
- u16 cq_cons;
- #elif defined(__LITTLE_ENDIAN)
- u16 cq_cons;
- u16 cq_prod;
- #endif
- #if defined(__BIG_ENDIAN)
- u16 __reserved2;
- u8 decision_rules;
- #define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE (0x7<<0)
- #define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE_SHIFT 0
- #define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
- #define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
- #define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG (0x1<<6)
- #define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG_SHIFT 6
- #define __USTORM_FCOE_AG_CONTEXT_RESERVED1 (0x1<<7)
- #define __USTORM_FCOE_AG_CONTEXT_RESERVED1_SHIFT 7
- u8 decision_rule_enable_bits;
- #define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN (0x1<<0)
- #define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN_SHIFT 0
- #define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN (0x1<<1)
- #define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN_SHIFT 1
- #define USTORM_FCOE_AG_CONTEXT_TX_CF_EN (0x1<<2)
- #define USTORM_FCOE_AG_CONTEXT_TX_CF_EN_SHIFT 2
- #define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN (0x1<<3)
- #define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN_SHIFT 3
- #define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN (0x1<<4)
- #define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT 4
- #define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN (0x1<<5)
- #define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN_SHIFT 5
- #define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN (0x1<<6)
- #define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN_SHIFT 6
- #define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN (0x1<<7)
- #define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT 7
- #elif defined(__LITTLE_ENDIAN)
- u8 decision_rule_enable_bits;
- #define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN (0x1<<0)
- #define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN_SHIFT 0
- #define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN (0x1<<1)
- #define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN_SHIFT 1
- #define USTORM_FCOE_AG_CONTEXT_TX_CF_EN (0x1<<2)
- #define USTORM_FCOE_AG_CONTEXT_TX_CF_EN_SHIFT 2
- #define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN (0x1<<3)
- #define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN_SHIFT 3
- #define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN (0x1<<4)
- #define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT 4
- #define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN (0x1<<5)
- #define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN_SHIFT 5
- #define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN (0x1<<6)
- #define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN_SHIFT 6
- #define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN (0x1<<7)
- #define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT 7
- u8 decision_rules;
- #define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE (0x7<<0)
- #define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE_SHIFT 0
- #define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
- #define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
- #define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG (0x1<<6)
- #define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG_SHIFT 6
- #define __USTORM_FCOE_AG_CONTEXT_RESERVED1 (0x1<<7)
- #define __USTORM_FCOE_AG_CONTEXT_RESERVED1_SHIFT 7
- u16 __reserved2;
- #endif
- };
- /*
- * The iscsi aggregative context of Ustorm
- */
- struct ustorm_iscsi_ag_context {
- #if defined(__BIG_ENDIAN)
- u8 __aux_counter_flags;
- u8 agg_vars2;
- #define USTORM_ISCSI_AG_CONTEXT_TX_CF (0x3<<0)
- #define USTORM_ISCSI_AG_CONTEXT_TX_CF_SHIFT 0
- #define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF (0x3<<2)
- #define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_SHIFT 2
- #define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE (0x7<<4)
- #define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE_SHIFT 4
- #define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK (0x1<<7)
- #define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK_SHIFT 7
- u8 agg_vars1;
- #define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
- #define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
- #define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
- #define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
- #define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
- #define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
- #define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
- #define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
- #define USTORM_ISCSI_AG_CONTEXT_INV_CF (0x3<<4)
- #define USTORM_ISCSI_AG_CONTEXT_INV_CF_SHIFT 4
- #define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF (0x3<<6)
- #define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_SHIFT 6
- u8 state;
- #elif defined(__LITTLE_ENDIAN)
- u8 state;
- u8 agg_vars1;
- #define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
- #define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
- #define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
- #define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
- #define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
- #define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
- #define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
- #define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
- #define USTORM_ISCSI_AG_CONTEXT_INV_CF (0x3<<4)
- #define USTORM_ISCSI_AG_CONTEXT_INV_CF_SHIFT 4
- #define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF (0x3<<6)
- #define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_SHIFT 6
- u8 agg_vars2;
- #define USTORM_ISCSI_AG_CONTEXT_TX_CF (0x3<<0)
- #define USTORM_ISCSI_AG_CONTEXT_TX_CF_SHIFT 0
- #define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF (0x3<<2)
- #define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_SHIFT 2
- #define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE (0x7<<4)
- #define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE_SHIFT 4
- #define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK (0x1<<7)
- #define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK_SHIFT 7
- u8 __aux_counter_flags;
- #endif
- #if defined(__BIG_ENDIAN)
- u8 cdu_usage;
- u8 agg_misc2;
- u16 __cq_local_comp_itt_val;
- #elif defined(__LITTLE_ENDIAN)
- u16 __cq_local_comp_itt_val;
- u8 agg_misc2;
- u8 cdu_usage;
- #endif
- u32 agg_misc4;
- #if defined(__BIG_ENDIAN)
- u8 agg_val3_th;
- u8 agg_val3;
- u16 agg_misc3;
- #elif defined(__LITTLE_ENDIAN)
- u16 agg_misc3;
- u8 agg_val3;
- u8 agg_val3_th;
- #endif
- u32 agg_val1;
- u32 agg_misc4_th;
- #if defined(__BIG_ENDIAN)
- u16 agg_val2_th;
- u16 agg_val2;
- #elif defined(__LITTLE_ENDIAN)
- u16 agg_val2;
- u16 agg_val2_th;
- #endif
- #if defined(__BIG_ENDIAN)
- u16 __reserved2;
- u8 decision_rules;
- #define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE (0x7<<0)
- #define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE_SHIFT 0
- #define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
- #define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
- #define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG (0x1<<6)
- #define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG_SHIFT 6
- #define __USTORM_ISCSI_AG_CONTEXT_RESERVED1 (0x1<<7)
- #define __USTORM_ISCSI_AG_CONTEXT_RESERVED1_SHIFT 7
- u8 decision_rule_enable_bits;
- #define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN (0x1<<0)
- #define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN_SHIFT 0
- #define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN (0x1<<1)
- #define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN_SHIFT 1
- #define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN (0x1<<2)
- #define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN_SHIFT 2
- #define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN (0x1<<3)
- #define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN_SHIFT 3
- #define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN (0x1<<4)
- #define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN_SHIFT 4
- #define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<5)
- #define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 5
- #define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN (0x1<<6)
- #define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN_SHIFT 6
- #define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN (0x1<<7)
- #define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT 7
- #elif defined(__LITTLE_ENDIAN)
- u8 decision_rule_enable_bits;
- #define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN (0x1<<0)
- #define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN_SHIFT 0
- #define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN (0x1<<1)
- #define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN_SHIFT 1
- #define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN (0x1<<2)
- #define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN_SHIFT 2
- #define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN (0x1<<3)
- #define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN_SHIFT 3
- #define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN (0x1<<4)
- #define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN_SHIFT 4
- #define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<5)
- #define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 5
- #define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN (0x1<<6)
- #define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN_SHIFT 6
- #define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN (0x1<<7)
- #define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT 7
- u8 decision_rules;
- #define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE (0x7<<0)
- #define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE_SHIFT 0
- #define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
- #define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
- #define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG (0x1<<6)
- #define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG_SHIFT 6
- #define __USTORM_ISCSI_AG_CONTEXT_RESERVED1 (0x1<<7)
- #define __USTORM_ISCSI_AG_CONTEXT_RESERVED1_SHIFT 7
- u16 __reserved2;
- #endif
- };
- /*
- * The fcoe aggregative context section of Xstorm
- */
- struct xstorm_fcoe_extra_ag_context_section {
- #if defined(__BIG_ENDIAN)
- u8 tcp_agg_vars1;
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51 (0x3<<0)
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51_SHIFT 0
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED (0x3<<2)
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT 2
- #define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF (0x3<<4)
- #define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT 4
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN (0x1<<6)
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN_SHIFT 6
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG (0x1<<7)
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG_SHIFT 7
- u8 __reserved_da_cnt;
- u16 __mtu;
- #elif defined(__LITTLE_ENDIAN)
- u16 __mtu;
- u8 __reserved_da_cnt;
- u8 tcp_agg_vars1;
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51 (0x3<<0)
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51_SHIFT 0
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED (0x3<<2)
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT 2
- #define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF (0x3<<4)
- #define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT 4
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN (0x1<<6)
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN_SHIFT 6
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG (0x1<<7)
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG_SHIFT 7
- #endif
- u32 snd_nxt;
- u32 __xfrqe_bd_addr_lo;
- u32 __xfrqe_bd_addr_hi;
- u32 __xfrqe_data1;
- #if defined(__BIG_ENDIAN)
- u8 __agg_val8_th;
- u8 __tx_dest;
- u16 tcp_agg_vars2;
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57 (0x1<<0)
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57_SHIFT 0
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58 (0x1<<1)
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58_SHIFT 1
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59 (0x1<<2)
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59_SHIFT 2
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG (0x1<<3)
- #define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT 3
- #de…