summaryrefslogtreecommitdiff
path: root/include/linux/qed/qed_nvmetcp_if.h
diff options
context:
space:
mode:
authorShai Malin <smalin@marvell.com>2021-06-02 20:16:53 +0300
committerDavid S. Miller <davem@davemloft.net>2021-06-03 14:04:17 -0700
commitab47bdfd2e2e9670172a737d12ebfc94bf9d299d (patch)
tree1c4cd624db5f84861049bbd186edb8e0fbc016a4 /include/linux/qed/qed_nvmetcp_if.h
parent203d136e8958a7c65834601f669bdd0fcaa6fcbd (diff)
qed: Add NVMeTCP Offload IO Level FW and HW HSI
This patch introduces the NVMeTCP Offload FW and HW HSI in order to initialize the IO level configuration into a per IO HW resource ("task") as part of the IO path flow. Acked-by: Igor Russkikh <irusskikh@marvell.com> Signed-off-by: Prabhakar Kushwaha <pkushwaha@marvell.com> Signed-off-by: Omkar Kulkarni <okulkarni@marvell.com> Signed-off-by: Shai Malin <smalin@marvell.com> Signed-off-by: Michal Kalderon <mkalderon@marvell.com> Signed-off-by: Ariel Elior <aelior@marvell.com> Reviewed-by: Hannes Reinecke <hare@suse.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/qed/qed_nvmetcp_if.h')
-rw-r--r--include/linux/qed/qed_nvmetcp_if.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/include/linux/qed/qed_nvmetcp_if.h b/include/linux/qed/qed_nvmetcp_if.h
index 5180edad24e5..606427ebb63c 100644
--- a/include/linux/qed/qed_nvmetcp_if.h
+++ b/include/linux/qed/qed_nvmetcp_if.h
@@ -5,6 +5,8 @@
#define _QED_NVMETCP_IF_H
#include <linux/types.h>
#include <linux/qed/qed_if.h>
+#include <linux/qed/storage_common.h>
+#include <linux/qed/nvmetcp_common.h>
#define QED_NVMETCP_MAX_IO_SIZE 0x800000
@@ -72,6 +74,35 @@ struct qed_nvmetcp_cb_ops {
struct qed_common_cb_ops common;
};
+struct nvmetcp_sge {
+ struct regpair sge_addr; /* SGE address */
+ __le32 sge_len; /* SGE length */
+ __le32 reserved;
+};
+
+/* IO path HSI function SGL params */
+struct storage_sgl_task_params {
+ struct nvmetcp_sge *sgl;
+ struct regpair sgl_phys_addr;
+ u32 total_buffer_size;
+ u16 num_sges;
+ bool small_mid_sge;
+};
+
+/* IO path HSI function FW task context params */
+struct nvmetcp_task_params {
+ void *context; /* Output parameter - set/filled by the HSI function */
+ struct nvmetcp_wqe *sqe;
+ u32 tx_io_size; /* in bytes (Without DIF, if exists) */
+ u32 rx_io_size; /* in bytes (Without DIF, if exists) */
+ u16 conn_icid;
+ u16 itid;
+ struct regpair opq; /* qedn_task_ctx address */
+ u16 host_cccid;
+ u8 cq_rss_number;
+ bool send_write_incapsule;
+};
+
/**
* struct qed_nvmetcp_ops - qed NVMeTCP operations.
* @common: common operations pointer