Commit 6459d936 authored by Michal Kalderon's avatar Michal Kalderon Committed by David S. Miller
Browse files

qed: FW 8.42.2.0 iscsi/fcoe changes



- Remove struct iscsi_slow_path_hdr and field fw_cid from several structs
- Remove struct iscsi_spe_func_dstry
- Remove fields pbe_page_size_log and pbl_page_size_log from struct
  iscsi_conn_offload_param

Signed-off-by: default avatarManish Rangankar <manish.rangankar@marvell.com>
Signed-off-by: default avatarSaurav Kashyap <saurav.kashyap@marvell.com>
Signed-off-by: default avatarAriel Elior <ariel.elior@marvell.com>
Signed-off-by: default avatarMichal Kalderon <michal.kalderon@marvell.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1392d19f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -167,6 +167,8 @@ qed_sp_fcoe_func_start(struct qed_hwfn *p_hwfn,
		goto err;
	}
	p_cxt = cxt_info.p_cxt;
	memset(p_cxt, 0, sizeof(*p_cxt));

	SET_FIELD(p_cxt->tstorm_ag_context.flags3,
		  E4_TSTORM_FCOE_CONN_AG_CTX_DUMMY_TIMER_CF_EN, 1);

+4 −4
Original line number Diff line number Diff line
@@ -11496,8 +11496,8 @@ struct e4_tstorm_iscsi_conn_ag_ctx {
	u8 flags3;
#define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_MASK		0x3
#define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_SHIFT		0
#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF10_MASK			0x3
#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF10_SHIFT			2
#define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_OOO_ISLES_CF_MASK	0x3
#define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_OOO_ISLES_CF_SHIFT	2
#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK			0x1
#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT			4
#define E4_TSTORM_ISCSI_CONN_AG_CTX_P2T_FLUSH_CF_EN_MASK	0x1
@@ -11519,8 +11519,8 @@ struct e4_tstorm_iscsi_conn_ag_ctx {
#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF8EN_SHIFT		4
#define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_MASK	0x1
#define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT	5
#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF10EN_MASK		0x1
#define E4_TSTORM_ISCSI_CONN_AG_CTX_CF10EN_SHIFT	6
#define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_OOO_ISLES_CF_EN_MASK	0x1
#define E4_TSTORM_ISCSI_CONN_AG_CTX_FLUSH_OOO_ISLES_CF_EN_SHIFT	6
#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK	0x1
#define E4_TSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT	7
	u8 flags5;
+0 −31
Original line number Diff line number Diff line
@@ -204,10 +204,6 @@ qed_sp_iscsi_func_start(struct qed_hwfn *p_hwfn,
		return -EINVAL;
	}

	SET_FIELD(p_init->hdr.flags,
		  ISCSI_SLOW_PATH_HDR_LAYER_CODE, ISCSI_SLOW_PATH_LAYER_CODE);
	p_init->hdr.op_code = ISCSI_RAMROD_CMD_ID_INIT_FUNC;

	val = p_params->half_way_close_timeout;
	p_init->half_way_close_timeout = cpu_to_le16(val);
	p_init->num_sq_pages_in_ring = p_params->num_sq_pages_in_ring;
@@ -332,12 +328,7 @@ static int qed_sp_iscsi_conn_offload(struct qed_hwfn *p_hwfn,
	p_conn->physical_q1 = cpu_to_le16(physical_q);
	p_ramrod->iscsi.physical_q1 = cpu_to_le16(physical_q);

	p_ramrod->hdr.op_code = ISCSI_RAMROD_CMD_ID_OFFLOAD_CONN;
	SET_FIELD(p_ramrod->hdr.flags, ISCSI_SLOW_PATH_HDR_LAYER_CODE,
		  p_conn->layer_code);

	p_ramrod->conn_id = cpu_to_le16(p_conn->conn_id);
	p_ramrod->fw_cid = cpu_to_le32(p_conn->icid);

	DMA_REGPAIR_LE(p_ramrod->iscsi.sq_pbl_addr, p_conn->sq_pbl_addr);

@@ -493,12 +484,8 @@ static int qed_sp_iscsi_conn_update(struct qed_hwfn *p_hwfn,
		return rc;

	p_ramrod = &p_ent->ramrod.iscsi_conn_update;
	p_ramrod->hdr.op_code = ISCSI_RAMROD_CMD_ID_UPDATE_CONN;
	SET_FIELD(p_ramrod->hdr.flags,
		  ISCSI_SLOW_PATH_HDR_LAYER_CODE, p_conn->layer_code);

	p_ramrod->conn_id = cpu_to_le16(p_conn->conn_id);
	p_ramrod->fw_cid = cpu_to_le32(p_conn->icid);
	p_ramrod->flags = p_conn->update_flag;
	p_ramrod->max_seq_size = cpu_to_le32(p_conn->max_seq_size);
	dval = p_conn->max_recv_pdu_length;
@@ -538,12 +525,8 @@ qed_sp_iscsi_mac_update(struct qed_hwfn *p_hwfn,
		return rc;

	p_ramrod = &p_ent->ramrod.iscsi_conn_mac_update;
	p_ramrod->hdr.op_code = ISCSI_RAMROD_CMD_ID_MAC_UPDATE;
	SET_FIELD(p_ramrod->hdr.flags,
		  ISCSI_SLOW_PATH_HDR_LAYER_CODE, p_conn->layer_code);

	p_ramrod->conn_id = cpu_to_le16(p_conn->conn_id);
	p_ramrod->fw_cid = cpu_to_le32(p_conn->icid);
	ucval = p_conn->remote_mac[1];
	((u8 *)(&p_ramrod->remote_mac_addr_hi))[0] = ucval;
	ucval = p_conn->remote_mac[0];
@@ -584,12 +567,8 @@ static int qed_sp_iscsi_conn_terminate(struct qed_hwfn *p_hwfn,
		return rc;

	p_ramrod = &p_ent->ramrod.iscsi_conn_terminate;
	p_ramrod->hdr.op_code = ISCSI_RAMROD_CMD_ID_TERMINATION_CONN;
	SET_FIELD(p_ramrod->hdr.flags,
		  ISCSI_SLOW_PATH_HDR_LAYER_CODE, p_conn->layer_code);

	p_ramrod->conn_id = cpu_to_le16(p_conn->conn_id);
	p_ramrod->fw_cid = cpu_to_le32(p_conn->icid);
	p_ramrod->abortive = p_conn->abortive_dsconnect;

	DMA_REGPAIR_LE(p_ramrod->query_params_addr,
@@ -604,7 +583,6 @@ static int qed_sp_iscsi_conn_clear_sq(struct qed_hwfn *p_hwfn,
				      enum spq_mode comp_mode,
				      struct qed_spq_comp_cb *p_comp_addr)
{
	struct iscsi_slow_path_hdr *p_ramrod = NULL;
	struct qed_spq_entry *p_ent = NULL;
	struct qed_sp_init_data init_data;
	int rc = -EINVAL;
@@ -622,11 +600,6 @@ static int qed_sp_iscsi_conn_clear_sq(struct qed_hwfn *p_hwfn,
	if (rc)
		return rc;

	p_ramrod = &p_ent->ramrod.iscsi_empty;
	p_ramrod->op_code = ISCSI_RAMROD_CMD_ID_CLEAR_SQ;
	SET_FIELD(p_ramrod->flags,
		  ISCSI_SLOW_PATH_HDR_LAYER_CODE, p_conn->layer_code);

	return qed_spq_post(p_hwfn, p_ent, NULL);
}

@@ -634,7 +607,6 @@ static int qed_sp_iscsi_func_stop(struct qed_hwfn *p_hwfn,
				  enum spq_mode comp_mode,
				  struct qed_spq_comp_cb *p_comp_addr)
{
	struct iscsi_spe_func_dstry *p_ramrod = NULL;
	struct qed_spq_entry *p_ent = NULL;
	struct qed_sp_init_data init_data;
	int rc = 0;
@@ -652,9 +624,6 @@ static int qed_sp_iscsi_func_stop(struct qed_hwfn *p_hwfn,
	if (rc)
		return rc;

	p_ramrod = &p_ent->ramrod.iscsi_destroy;
	p_ramrod->hdr.op_code = ISCSI_RAMROD_CMD_ID_DESTROY_FUNC;

	rc = qed_spq_post(p_hwfn, p_ent, NULL);

	qed_spq_unregister_async_cb(p_hwfn, PROTOCOLID_ISCSI);
+0 −2
Original line number Diff line number Diff line
@@ -120,9 +120,7 @@ union ramrod_data {
	struct fcoe_conn_terminate_ramrod_params fcoe_conn_terminate;
	struct fcoe_stat_ramrod_params fcoe_stat;

	struct iscsi_slow_path_hdr iscsi_empty;
	struct iscsi_init_ramrod_params iscsi_init;
	struct iscsi_spe_func_dstry iscsi_destroy;
	struct iscsi_spe_conn_offload iscsi_conn_offload;
	struct iscsi_conn_update_ramrod_params iscsi_conn_update;
	struct iscsi_spe_conn_mac_update iscsi_conn_mac_update;
+24 −40
Original line number Diff line number Diff line
@@ -999,7 +999,6 @@ struct iscsi_conn_offload_params {
	struct regpair r2tq_pbl_addr;
	struct regpair xhq_pbl_addr;
	struct regpair uhq_pbl_addr;
	__le32 initial_ack;
	__le16 physical_q0;
	__le16 physical_q1;
	u8 flags;
@@ -1011,10 +1010,10 @@ struct iscsi_conn_offload_params {
#define ISCSI_CONN_OFFLOAD_PARAMS_RESTRICTED_MODE_SHIFT	2
#define ISCSI_CONN_OFFLOAD_PARAMS_RESERVED1_MASK	0x1F
#define ISCSI_CONN_OFFLOAD_PARAMS_RESERVED1_SHIFT	3
	u8 pbl_page_size_log;
	u8 pbe_page_size_log;
	u8 default_cq;
	__le16 reserved0;
	__le32 stat_sn;
	__le32 initial_ack;
};

/* iSCSI connection statistics */
@@ -1029,25 +1028,14 @@ struct iscsi_conn_stats_params {
	__le32 reserved;
};

/* spe message header */
struct iscsi_slow_path_hdr {
	u8 op_code;
	u8 flags;
#define ISCSI_SLOW_PATH_HDR_RESERVED0_MASK	0xF
#define ISCSI_SLOW_PATH_HDR_RESERVED0_SHIFT	0
#define ISCSI_SLOW_PATH_HDR_LAYER_CODE_MASK	0x7
#define ISCSI_SLOW_PATH_HDR_LAYER_CODE_SHIFT	4
#define ISCSI_SLOW_PATH_HDR_RESERVED1_MASK	0x1
#define ISCSI_SLOW_PATH_HDR_RESERVED1_SHIFT	7
};

/* iSCSI connection update params passed by driver to FW in ISCSI update
 *ramrod.
 */
struct iscsi_conn_update_ramrod_params {
	struct iscsi_slow_path_hdr hdr;
	__le16 reserved0;
	__le16 conn_id;
	__le32 fw_cid;
	__le32 reserved1;
	u8 flags;
#define ISCSI_CONN_UPDATE_RAMROD_PARAMS_HD_EN_MASK		0x1
#define ISCSI_CONN_UPDATE_RAMROD_PARAMS_HD_EN_SHIFT		0
@@ -1065,7 +1053,7 @@ struct iscsi_conn_update_ramrod_params {
#define ISCSI_CONN_UPDATE_RAMROD_PARAMS_DIF_ON_IMM_EN_SHIFT	6
#define ISCSI_CONN_UPDATE_RAMROD_PARAMS_LUN_MAPPER_EN_MASK	0x1
#define ISCSI_CONN_UPDATE_RAMROD_PARAMS_LUN_MAPPER_EN_SHIFT	7
	u8 reserved0[3];
	u8 reserved3[3];
	__le32 max_seq_size;
	__le32 max_send_pdu_length;
	__le32 max_recv_pdu_length;
@@ -1251,22 +1239,22 @@ enum iscsi_ramrod_cmd_id {

/* iSCSI connection termination request */
struct iscsi_spe_conn_mac_update {
	struct iscsi_slow_path_hdr hdr;
	__le16 reserved0;
	__le16 conn_id;
	__le32 fw_cid;
	__le32 reserved1;
	__le16 remote_mac_addr_lo;
	__le16 remote_mac_addr_mid;
	__le16 remote_mac_addr_hi;
	u8 reserved0[2];
	u8 reserved2[2];
};

/* iSCSI and TCP connection (Option 1) offload params passed by driver to FW in
 * iSCSI offload ramrod.
 */
struct iscsi_spe_conn_offload {
	struct iscsi_slow_path_hdr hdr;
	__le16 reserved0;
	__le16 conn_id;
	__le32 fw_cid;
	__le32 reserved1;
	struct iscsi_conn_offload_params iscsi;
	struct tcp_offload_params tcp;
};
@@ -1275,44 +1263,36 @@ struct iscsi_spe_conn_offload {
 * iSCSI offload ramrod.
 */
struct iscsi_spe_conn_offload_option2 {
	struct iscsi_slow_path_hdr hdr;
	__le16 reserved0;
	__le16 conn_id;
	__le32 fw_cid;
	__le32 reserved1;
	struct iscsi_conn_offload_params iscsi;
	struct tcp_offload_params_opt2 tcp;
};

/* iSCSI collect connection statistics request */
struct iscsi_spe_conn_statistics {
	struct iscsi_slow_path_hdr hdr;
	__le16 reserved0;
	__le16 conn_id;
	__le32 fw_cid;
	__le32 reserved1;
	u8 reset_stats;
	u8 reserved0[7];
	u8 reserved2[7];
	struct regpair stats_cnts_addr;
};

/* iSCSI connection termination request */
struct iscsi_spe_conn_termination {
	struct iscsi_slow_path_hdr hdr;
	__le16 reserved0;
	__le16 conn_id;
	__le32 fw_cid;
	__le32 reserved1;
	u8 abortive;
	u8 reserved0[7];
	u8 reserved2[7];
	struct regpair queue_cnts_addr;
	struct regpair query_params_addr;
};

/* iSCSI firmware function destroy parameters */
struct iscsi_spe_func_dstry {
	struct iscsi_slow_path_hdr hdr;
	__le16 reserved0;
	__le32 reserved1;
};

/* iSCSI firmware function init parameters */
struct iscsi_spe_func_init {
	struct iscsi_slow_path_hdr hdr;
	__le16 half_way_close_timeout;
	u8 num_sq_pages_in_ring;
	u8 num_r2tq_pages_in_ring;
@@ -1324,8 +1304,12 @@ struct iscsi_spe_func_init {
#define ISCSI_SPE_FUNC_INIT_RESERVED0_MASK	0x7F
#define ISCSI_SPE_FUNC_INIT_RESERVED0_SHIFT	1
	struct iscsi_debug_modes debug_mode;
	__le16 reserved1;
	__le32 reserved2;
	u8 params;
#define ISCSI_SPE_FUNC_INIT_MAX_SYN_RT_MASK	0xF
#define ISCSI_SPE_FUNC_INIT_MAX_SYN_RT_SHIFT	0
#define ISCSI_SPE_FUNC_INIT_RESERVED1_MASK	0xF
#define ISCSI_SPE_FUNC_INIT_RESERVED1_SHIFT	4
	u8 reserved2[7];
	struct scsi_init_func_params func_params;
	struct scsi_init_func_queues q_params;
};
Loading