|
@@ -518,24 +518,39 @@ struct cpl_get_tcb {
|
|
WR_HDR;
|
|
WR_HDR;
|
|
union opcode_tid ot;
|
|
union opcode_tid ot;
|
|
__be16 reply_ctrl;
|
|
__be16 reply_ctrl;
|
|
-#define QUEUENO(x) ((x) << 0)
|
|
|
|
-#define REPLY_CHAN(x) ((x) << 14)
|
|
|
|
-#define NO_REPLY(x) ((x) << 15)
|
|
|
|
__be16 cookie;
|
|
__be16 cookie;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/* cpl_get_tcb.reply_ctrl fields */
|
|
|
|
+#define QUEUENO_S 0
|
|
|
|
+#define QUEUENO_V(x) ((x) << QUEUENO_S)
|
|
|
|
+
|
|
|
|
+#define REPLY_CHAN_S 14
|
|
|
|
+#define REPLY_CHAN_V(x) ((x) << REPLY_CHAN_S)
|
|
|
|
+#define REPLY_CHAN_F REPLY_CHAN_V(1U)
|
|
|
|
+
|
|
|
|
+#define NO_REPLY_S 15
|
|
|
|
+#define NO_REPLY_V(x) ((x) << NO_REPLY_S)
|
|
|
|
+#define NO_REPLY_F NO_REPLY_V(1U)
|
|
|
|
+
|
|
struct cpl_set_tcb_field {
|
|
struct cpl_set_tcb_field {
|
|
WR_HDR;
|
|
WR_HDR;
|
|
union opcode_tid ot;
|
|
union opcode_tid ot;
|
|
__be16 reply_ctrl;
|
|
__be16 reply_ctrl;
|
|
__be16 word_cookie;
|
|
__be16 word_cookie;
|
|
-#define TCB_WORD(x) ((x) << 0)
|
|
|
|
-#define TCB_COOKIE(x) ((x) << 5)
|
|
|
|
-#define GET_TCB_COOKIE(x) (((x) >> 5) & 7)
|
|
|
|
__be64 mask;
|
|
__be64 mask;
|
|
__be64 val;
|
|
__be64 val;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/* cpl_set_tcb_field.word_cookie fields */
|
|
|
|
+#define TCB_WORD_S 0
|
|
|
|
+#define TCB_WORD(x) ((x) << TCB_WORD_S)
|
|
|
|
+
|
|
|
|
+#define TCB_COOKIE_S 5
|
|
|
|
+#define TCB_COOKIE_M 0x7
|
|
|
|
+#define TCB_COOKIE_V(x) ((x) << TCB_COOKIE_S)
|
|
|
|
+#define TCB_COOKIE_G(x) (((x) >> TCB_COOKIE_S) & TCB_COOKIE_M)
|
|
|
|
+
|
|
struct cpl_set_tcb_rpl {
|
|
struct cpl_set_tcb_rpl {
|
|
union opcode_tid ot;
|
|
union opcode_tid ot;
|
|
__be16 rsvd;
|
|
__be16 rsvd;
|
|
@@ -562,10 +577,14 @@ struct cpl_close_listsvr_req {
|
|
WR_HDR;
|
|
WR_HDR;
|
|
union opcode_tid ot;
|
|
union opcode_tid ot;
|
|
__be16 reply_ctrl;
|
|
__be16 reply_ctrl;
|
|
-#define LISTSVR_IPV6(x) ((x) << 14)
|
|
|
|
__be16 rsvd;
|
|
__be16 rsvd;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/* additional cpl_close_listsvr_req.reply_ctrl field */
|
|
|
|
+#define LISTSVR_IPV6_S 14
|
|
|
|
+#define LISTSVR_IPV6_V(x) ((x) << LISTSVR_IPV6_S)
|
|
|
|
+#define LISTSVR_IPV6_F LISTSVR_IPV6_V(1U)
|
|
|
|
+
|
|
struct cpl_close_listsvr_rpl {
|
|
struct cpl_close_listsvr_rpl {
|
|
union opcode_tid ot;
|
|
union opcode_tid ot;
|
|
u8 rsvd[3];
|
|
u8 rsvd[3];
|
|
@@ -661,6 +680,34 @@ struct cpl_tx_pkt_lso_core {
|
|
/* encapsulated CPL (TX_PKT, TX_PKT_XT or TX_DATA) follows here */
|
|
/* encapsulated CPL (TX_PKT, TX_PKT_XT or TX_DATA) follows here */
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/* cpl_tx_pkt_lso_core.lso_ctrl fields */
|
|
|
|
+#define LSO_TCPHDR_LEN_S 0
|
|
|
|
+#define LSO_TCPHDR_LEN_V(x) ((x) << LSO_TCPHDR_LEN_S)
|
|
|
|
+
|
|
|
|
+#define LSO_IPHDR_LEN_S 4
|
|
|
|
+#define LSO_IPHDR_LEN_V(x) ((x) << LSO_IPHDR_LEN_S)
|
|
|
|
+
|
|
|
|
+#define LSO_ETHHDR_LEN_S 16
|
|
|
|
+#define LSO_ETHHDR_LEN_V(x) ((x) << LSO_ETHHDR_LEN_S)
|
|
|
|
+
|
|
|
|
+#define LSO_IPV6_S 20
|
|
|
|
+#define LSO_IPV6_V(x) ((x) << LSO_IPV6_S)
|
|
|
|
+#define LSO_IPV6_F LSO_IPV6_V(1U)
|
|
|
|
+
|
|
|
|
+#define LSO_LAST_SLICE_S 22
|
|
|
|
+#define LSO_LAST_SLICE_V(x) ((x) << LSO_LAST_SLICE_S)
|
|
|
|
+#define LSO_LAST_SLICE_F LSO_LAST_SLICE_V(1U)
|
|
|
|
+
|
|
|
|
+#define LSO_FIRST_SLICE_S 23
|
|
|
|
+#define LSO_FIRST_SLICE_V(x) ((x) << LSO_FIRST_SLICE_S)
|
|
|
|
+#define LSO_FIRST_SLICE_F LSO_FIRST_SLICE_V(1U)
|
|
|
|
+
|
|
|
|
+#define LSO_OPCODE_S 24
|
|
|
|
+#define LSO_OPCODE_V(x) ((x) << LSO_OPCODE_S)
|
|
|
|
+
|
|
|
|
+#define LSO_T5_XFER_SIZE_S 0
|
|
|
|
+#define LSO_T5_XFER_SIZE_V(x) ((x) << LSO_T5_XFER_SIZE_S)
|
|
|
|
+
|
|
struct cpl_tx_pkt_lso {
|
|
struct cpl_tx_pkt_lso {
|
|
WR_HDR;
|
|
WR_HDR;
|
|
struct cpl_tx_pkt_lso_core c;
|
|
struct cpl_tx_pkt_lso_core c;
|
|
@@ -670,8 +717,6 @@ struct cpl_tx_pkt_lso {
|
|
struct cpl_iscsi_hdr {
|
|
struct cpl_iscsi_hdr {
|
|
union opcode_tid ot;
|
|
union opcode_tid ot;
|
|
__be16 pdu_len_ddp;
|
|
__be16 pdu_len_ddp;
|
|
-#define ISCSI_PDU_LEN(x) ((x) & 0x7FFF)
|
|
|
|
-#define ISCSI_DDP (1 << 15)
|
|
|
|
__be16 len;
|
|
__be16 len;
|
|
__be32 seq;
|
|
__be32 seq;
|
|
__be16 urg;
|
|
__be16 urg;
|
|
@@ -679,6 +724,16 @@ struct cpl_iscsi_hdr {
|
|
u8 status;
|
|
u8 status;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/* cpl_iscsi_hdr.pdu_len_ddp fields */
|
|
|
|
+#define ISCSI_PDU_LEN_S 0
|
|
|
|
+#define ISCSI_PDU_LEN_M 0x7FFF
|
|
|
|
+#define ISCSI_PDU_LEN_V(x) ((x) << ISCSI_PDU_LEN_S)
|
|
|
|
+#define ISCSI_PDU_LEN_G(x) (((x) >> ISCSI_PDU_LEN_S) & ISCSI_PDU_LEN_M)
|
|
|
|
+
|
|
|
|
+#define ISCSI_DDP_S 15
|
|
|
|
+#define ISCSI_DDP_V(x) ((x) << ISCSI_DDP_S)
|
|
|
|
+#define ISCSI_DDP_F ISCSI_DDP_V(1U)
|
|
|
|
+
|
|
struct cpl_rx_data {
|
|
struct cpl_rx_data {
|
|
union opcode_tid ot;
|
|
union opcode_tid ot;
|
|
__be16 rsvd;
|
|
__be16 rsvd;
|
|
@@ -735,49 +790,61 @@ struct cpl_rx_pkt {
|
|
__be16 vlan;
|
|
__be16 vlan;
|
|
__be16 len;
|
|
__be16 len;
|
|
__be32 l2info;
|
|
__be32 l2info;
|
|
-#define RXF_UDP (1 << 22)
|
|
|
|
-#define RXF_TCP (1 << 23)
|
|
|
|
-#define RXF_IP (1 << 24)
|
|
|
|
-#define RXF_IP6 (1 << 25)
|
|
|
|
__be16 hdr_len;
|
|
__be16 hdr_len;
|
|
__be16 err_vec;
|
|
__be16 err_vec;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+#define RXF_UDP_S 22
|
|
|
|
+#define RXF_UDP_V(x) ((x) << RXF_UDP_S)
|
|
|
|
+#define RXF_UDP_F RXF_UDP_V(1U)
|
|
|
|
+
|
|
|
|
+#define RXF_TCP_S 23
|
|
|
|
+#define RXF_TCP_V(x) ((x) << RXF_TCP_S)
|
|
|
|
+#define RXF_TCP_F RXF_TCP_V(1U)
|
|
|
|
+
|
|
|
|
+#define RXF_IP_S 24
|
|
|
|
+#define RXF_IP_V(x) ((x) << RXF_IP_S)
|
|
|
|
+#define RXF_IP_F RXF_IP_V(1U)
|
|
|
|
+
|
|
|
|
+#define RXF_IP6_S 25
|
|
|
|
+#define RXF_IP6_V(x) ((x) << RXF_IP6_S)
|
|
|
|
+#define RXF_IP6_F RXF_IP6_V(1U)
|
|
|
|
+
|
|
/* rx_pkt.l2info fields */
|
|
/* rx_pkt.l2info fields */
|
|
-#define S_RX_ETHHDR_LEN 0
|
|
|
|
-#define M_RX_ETHHDR_LEN 0x1F
|
|
|
|
-#define V_RX_ETHHDR_LEN(x) ((x) << S_RX_ETHHDR_LEN)
|
|
|
|
-#define G_RX_ETHHDR_LEN(x) (((x) >> S_RX_ETHHDR_LEN) & M_RX_ETHHDR_LEN)
|
|
|
|
-
|
|
|
|
-#define S_RX_T5_ETHHDR_LEN 0
|
|
|
|
-#define M_RX_T5_ETHHDR_LEN 0x3F
|
|
|
|
-#define V_RX_T5_ETHHDR_LEN(x) ((x) << S_RX_T5_ETHHDR_LEN)
|
|
|
|
-#define G_RX_T5_ETHHDR_LEN(x) (((x) >> S_RX_T5_ETHHDR_LEN) & M_RX_T5_ETHHDR_LEN)
|
|
|
|
-
|
|
|
|
-#define S_RX_MACIDX 8
|
|
|
|
-#define M_RX_MACIDX 0x1FF
|
|
|
|
-#define V_RX_MACIDX(x) ((x) << S_RX_MACIDX)
|
|
|
|
-#define G_RX_MACIDX(x) (((x) >> S_RX_MACIDX) & M_RX_MACIDX)
|
|
|
|
-
|
|
|
|
-#define S_RXF_SYN 21
|
|
|
|
-#define V_RXF_SYN(x) ((x) << S_RXF_SYN)
|
|
|
|
-#define F_RXF_SYN V_RXF_SYN(1U)
|
|
|
|
-
|
|
|
|
-#define S_RX_CHAN 28
|
|
|
|
-#define M_RX_CHAN 0xF
|
|
|
|
-#define V_RX_CHAN(x) ((x) << S_RX_CHAN)
|
|
|
|
-#define G_RX_CHAN(x) (((x) >> S_RX_CHAN) & M_RX_CHAN)
|
|
|
|
|
|
+#define RX_ETHHDR_LEN_S 0
|
|
|
|
+#define RX_ETHHDR_LEN_M 0x1F
|
|
|
|
+#define RX_ETHHDR_LEN_V(x) ((x) << RX_ETHHDR_LEN_S)
|
|
|
|
+#define RX_ETHHDR_LEN_G(x) (((x) >> RX_ETHHDR_LEN_S) & RX_ETHHDR_LEN_M)
|
|
|
|
+
|
|
|
|
+#define RX_T5_ETHHDR_LEN_S 0
|
|
|
|
+#define RX_T5_ETHHDR_LEN_M 0x3F
|
|
|
|
+#define RX_T5_ETHHDR_LEN_V(x) ((x) << RX_T5_ETHHDR_LEN_S)
|
|
|
|
+#define RX_T5_ETHHDR_LEN_G(x) (((x) >> RX_T5_ETHHDR_LEN_S) & RX_T5_ETHHDR_LEN_M)
|
|
|
|
+
|
|
|
|
+#define RX_MACIDX_S 8
|
|
|
|
+#define RX_MACIDX_M 0x1FF
|
|
|
|
+#define RX_MACIDX_V(x) ((x) << RX_MACIDX_S)
|
|
|
|
+#define RX_MACIDX_G(x) (((x) >> RX_MACIDX_S) & RX_MACIDX_M)
|
|
|
|
+
|
|
|
|
+#define RXF_SYN_S 21
|
|
|
|
+#define RXF_SYN_V(x) ((x) << RXF_SYN_S)
|
|
|
|
+#define RXF_SYN_F RXF_SYN_V(1U)
|
|
|
|
+
|
|
|
|
+#define RX_CHAN_S 28
|
|
|
|
+#define RX_CHAN_M 0xF
|
|
|
|
+#define RX_CHAN_V(x) ((x) << RX_CHAN_S)
|
|
|
|
+#define RX_CHAN_G(x) (((x) >> RX_CHAN_S) & RX_CHAN_M)
|
|
|
|
|
|
/* rx_pkt.hdr_len fields */
|
|
/* rx_pkt.hdr_len fields */
|
|
-#define S_RX_TCPHDR_LEN 0
|
|
|
|
-#define M_RX_TCPHDR_LEN 0x3F
|
|
|
|
-#define V_RX_TCPHDR_LEN(x) ((x) << S_RX_TCPHDR_LEN)
|
|
|
|
-#define G_RX_TCPHDR_LEN(x) (((x) >> S_RX_TCPHDR_LEN) & M_RX_TCPHDR_LEN)
|
|
|
|
|
|
+#define RX_TCPHDR_LEN_S 0
|
|
|
|
+#define RX_TCPHDR_LEN_M 0x3F
|
|
|
|
+#define RX_TCPHDR_LEN_V(x) ((x) << RX_TCPHDR_LEN_S)
|
|
|
|
+#define RX_TCPHDR_LEN_G(x) (((x) >> RX_TCPHDR_LEN_S) & RX_TCPHDR_LEN_M)
|
|
|
|
|
|
-#define S_RX_IPHDR_LEN 6
|
|
|
|
-#define M_RX_IPHDR_LEN 0x3FF
|
|
|
|
-#define V_RX_IPHDR_LEN(x) ((x) << S_RX_IPHDR_LEN)
|
|
|
|
-#define G_RX_IPHDR_LEN(x) (((x) >> S_RX_IPHDR_LEN) & M_RX_IPHDR_LEN)
|
|
|
|
|
|
+#define RX_IPHDR_LEN_S 6
|
|
|
|
+#define RX_IPHDR_LEN_M 0x3FF
|
|
|
|
+#define RX_IPHDR_LEN_V(x) ((x) << RX_IPHDR_LEN_S)
|
|
|
|
+#define RX_IPHDR_LEN_G(x) (((x) >> RX_IPHDR_LEN_S) & RX_IPHDR_LEN_M)
|
|
|
|
|
|
struct cpl_trace_pkt {
|
|
struct cpl_trace_pkt {
|
|
u8 opcode;
|
|
u8 opcode;
|
|
@@ -826,14 +893,22 @@ struct cpl_l2t_write_req {
|
|
WR_HDR;
|
|
WR_HDR;
|
|
union opcode_tid ot;
|
|
union opcode_tid ot;
|
|
__be16 params;
|
|
__be16 params;
|
|
-#define L2T_W_INFO(x) ((x) << 2)
|
|
|
|
-#define L2T_W_PORT(x) ((x) << 8)
|
|
|
|
-#define L2T_W_NOREPLY(x) ((x) << 15)
|
|
|
|
__be16 l2t_idx;
|
|
__be16 l2t_idx;
|
|
__be16 vlan;
|
|
__be16 vlan;
|
|
u8 dst_mac[6];
|
|
u8 dst_mac[6];
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/* cpl_l2t_write_req.params fields */
|
|
|
|
+#define L2T_W_INFO_S 2
|
|
|
|
+#define L2T_W_INFO_V(x) ((x) << L2T_W_INFO_S)
|
|
|
|
+
|
|
|
|
+#define L2T_W_PORT_S 8
|
|
|
|
+#define L2T_W_PORT_V(x) ((x) << L2T_W_PORT_S)
|
|
|
|
+
|
|
|
|
+#define L2T_W_NOREPLY_S 15
|
|
|
|
+#define L2T_W_NOREPLY_V(x) ((x) << L2T_W_NOREPLY_S)
|
|
|
|
+#define L2T_W_NOREPLY_F L2T_W_NOREPLY_V(1U)
|
|
|
|
+
|
|
struct cpl_l2t_write_rpl {
|
|
struct cpl_l2t_write_rpl {
|
|
union opcode_tid ot;
|
|
union opcode_tid ot;
|
|
u8 status;
|
|
u8 status;
|
|
@@ -848,11 +923,15 @@ struct cpl_rdma_terminate {
|
|
|
|
|
|
struct cpl_sge_egr_update {
|
|
struct cpl_sge_egr_update {
|
|
__be32 opcode_qid;
|
|
__be32 opcode_qid;
|
|
-#define EGR_QID(x) ((x) & 0x1FFFF)
|
|
|
|
__be16 cidx;
|
|
__be16 cidx;
|
|
__be16 pidx;
|
|
__be16 pidx;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/* cpl_sge_egr_update.ot fields */
|
|
|
|
+#define EGR_QID_S 0
|
|
|
|
+#define EGR_QID_M 0x1FFFF
|
|
|
|
+#define EGR_QID_G(x) (((x) >> EGR_QID_S) & EGR_QID_M)
|
|
|
|
+
|
|
/* cpl_fw*.type values */
|
|
/* cpl_fw*.type values */
|
|
enum {
|
|
enum {
|
|
FW_TYPE_CMD_RPL = 0,
|
|
FW_TYPE_CMD_RPL = 0,
|
|
@@ -945,22 +1024,30 @@ struct ulptx_sge_pair {
|
|
|
|
|
|
struct ulptx_sgl {
|
|
struct ulptx_sgl {
|
|
__be32 cmd_nsge;
|
|
__be32 cmd_nsge;
|
|
-#define ULPTX_NSGE(x) ((x) << 0)
|
|
|
|
-#define ULPTX_MORE (1U << 23)
|
|
|
|
__be32 len0;
|
|
__be32 len0;
|
|
__be64 addr0;
|
|
__be64 addr0;
|
|
struct ulptx_sge_pair sge[0];
|
|
struct ulptx_sge_pair sge[0];
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+#define ULPTX_NSGE_S 0
|
|
|
|
+#define ULPTX_NSGE_V(x) ((x) << ULPTX_NSGE_S)
|
|
|
|
+
|
|
|
|
+#define ULPTX_MORE_S 23
|
|
|
|
+#define ULPTX_MORE_V(x) ((x) << ULPTX_MORE_S)
|
|
|
|
+#define ULPTX_MORE_F ULPTX_MORE_V(1U)
|
|
|
|
+
|
|
struct ulp_mem_io {
|
|
struct ulp_mem_io {
|
|
WR_HDR;
|
|
WR_HDR;
|
|
__be32 cmd;
|
|
__be32 cmd;
|
|
__be32 len16; /* command length */
|
|
__be32 len16; /* command length */
|
|
__be32 dlen; /* data length in 32-byte units */
|
|
__be32 dlen; /* data length in 32-byte units */
|
|
__be32 lock_addr;
|
|
__be32 lock_addr;
|
|
-#define ULP_MEMIO_LOCK(x) ((x) << 31)
|
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+#define ULP_MEMIO_LOCK_S 31
|
|
|
|
+#define ULP_MEMIO_LOCK_V(x) ((x) << ULP_MEMIO_LOCK_S)
|
|
|
|
+#define ULP_MEMIO_LOCK_F ULP_MEMIO_LOCK_V(1U)
|
|
|
|
+
|
|
/* additional ulp_mem_io.cmd fields */
|
|
/* additional ulp_mem_io.cmd fields */
|
|
#define ULP_MEMIO_ORDER_S 23
|
|
#define ULP_MEMIO_ORDER_S 23
|
|
#define ULP_MEMIO_ORDER_V(x) ((x) << ULP_MEMIO_ORDER_S)
|
|
#define ULP_MEMIO_ORDER_V(x) ((x) << ULP_MEMIO_ORDER_S)
|
|
@@ -970,13 +1057,9 @@ struct ulp_mem_io {
|
|
#define T5_ULP_MEMIO_IMM_V(x) ((x) << T5_ULP_MEMIO_IMM_S)
|
|
#define T5_ULP_MEMIO_IMM_V(x) ((x) << T5_ULP_MEMIO_IMM_S)
|
|
#define T5_ULP_MEMIO_IMM_F T5_ULP_MEMIO_IMM_V(1U)
|
|
#define T5_ULP_MEMIO_IMM_F T5_ULP_MEMIO_IMM_V(1U)
|
|
|
|
|
|
-#define S_T5_ULP_MEMIO_IMM 23
|
|
|
|
-#define V_T5_ULP_MEMIO_IMM(x) ((x) << S_T5_ULP_MEMIO_IMM)
|
|
|
|
-#define F_T5_ULP_MEMIO_IMM V_T5_ULP_MEMIO_IMM(1U)
|
|
|
|
-
|
|
|
|
-#define S_T5_ULP_MEMIO_ORDER 22
|
|
|
|
-#define V_T5_ULP_MEMIO_ORDER(x) ((x) << S_T5_ULP_MEMIO_ORDER)
|
|
|
|
-#define F_T5_ULP_MEMIO_ORDER V_T5_ULP_MEMIO_ORDER(1U)
|
|
|
|
|
|
+#define T5_ULP_MEMIO_ORDER_S 22
|
|
|
|
+#define T5_ULP_MEMIO_ORDER_V(x) ((x) << T5_ULP_MEMIO_ORDER_S)
|
|
|
|
+#define T5_ULP_MEMIO_ORDER_F T5_ULP_MEMIO_ORDER_V(1U)
|
|
|
|
|
|
/* ulp_mem_io.lock_addr fields */
|
|
/* ulp_mem_io.lock_addr fields */
|
|
#define ULP_MEMIO_ADDR_S 0
|
|
#define ULP_MEMIO_ADDR_S 0
|