[PATCH v2 01/13] scsi: fnic: Modify definitions to sync with VIC firmware

Karan Tilak Kumar posted 13 patches 2 years, 1 month ago
There is a newer version of this series
[PATCH v2 01/13] scsi: fnic: Modify definitions to sync with VIC firmware
Posted by Karan Tilak Kumar 2 years, 1 month ago
VIC firmware has updated definitions.
Modify structure and definitions to sync with the latest VIC firmware.

Reviewed-by: Sesidhar Baddela <sebaddel@cisco.com>
Reviewed-by: Arulprabhu Ponnusamy <arulponn@cisco.com>
Signed-off-by: Karan Tilak Kumar <kartilak@cisco.com>
---
 drivers/scsi/fnic/vnic_scsi.h | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/fnic/vnic_scsi.h b/drivers/scsi/fnic/vnic_scsi.h
index 4e12f7b32d9d..f715f7942bfe 100644
--- a/drivers/scsi/fnic/vnic_scsi.h
+++ b/drivers/scsi/fnic/vnic_scsi.h
@@ -26,7 +26,7 @@
 #define VNIC_FNIC_RATOV_MAX                 255000
 
 #define VNIC_FNIC_MAXDATAFIELDSIZE_MIN      256
-#define VNIC_FNIC_MAXDATAFIELDSIZE_MAX      2112
+#define VNIC_FNIC_MAXDATAFIELDSIZE_MAX      2048
 
 #define VNIC_FNIC_FLOGI_RETRIES_MIN         0
 #define VNIC_FNIC_FLOGI_RETRIES_MAX         0xffffffff
@@ -55,7 +55,7 @@
 #define VNIC_FNIC_PORT_DOWN_IO_RETRIES_MAX  255
 
 #define VNIC_FNIC_LUNS_PER_TARGET_MIN       1
-#define VNIC_FNIC_LUNS_PER_TARGET_MAX       1024
+#define VNIC_FNIC_LUNS_PER_TARGET_MAX       4096
 
 /* Device-specific region: scsi configuration */
 struct vnic_fc_config {
@@ -79,10 +79,19 @@ struct vnic_fc_config {
 	u16 ra_tov;
 	u16 intr_timer;
 	u8 intr_timer_type;
+	u8 intr_mode;
+	u8 lun_queue_depth;
+	u8 io_timeout_retry;
+	u16 wq_copy_count;
 };
 
 #define VFCF_FCP_SEQ_LVL_ERR	0x1	/* Enable FCP-2 Error Recovery */
 #define VFCF_PERBI		0x2	/* persistent binding info available */
 #define VFCF_FIP_CAPABLE	0x4	/* firmware can handle FIP */
 
+#define VFCF_FC_INITIATOR         0x20    /* FC Initiator Mode */
+#define VFCF_FC_TARGET            0x40    /* FC Target Mode */
+#define VFCF_FC_NVME_INITIATOR    0x80    /* FC-NVMe Initiator Mode */
+#define VFCF_FC_NVME_TARGET       0x100   /* FC-NVMe Target Mode */
+
 #endif /* _VNIC_SCSI_H_ */
-- 
2.31.1
Re: [PATCH v2 01/13] scsi: fnic: Modify definitions to sync with VIC firmware
Posted by Hannes Reinecke 2 years, 1 month ago
On 10/27/23 20:02, Karan Tilak Kumar wrote:
> VIC firmware has updated definitions.
> Modify structure and definitions to sync with the latest VIC firmware.
> 
> Reviewed-by: Sesidhar Baddela <sebaddel@cisco.com>
> Reviewed-by: Arulprabhu Ponnusamy <arulponn@cisco.com>
> Signed-off-by: Karan Tilak Kumar <kartilak@cisco.com>
> ---
>   drivers/scsi/fnic/vnic_scsi.h | 13 +++++++++++--
>   1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/scsi/fnic/vnic_scsi.h b/drivers/scsi/fnic/vnic_scsi.h
> index 4e12f7b32d9d..f715f7942bfe 100644
> --- a/drivers/scsi/fnic/vnic_scsi.h
> +++ b/drivers/scsi/fnic/vnic_scsi.h
> @@ -26,7 +26,7 @@
>   #define VNIC_FNIC_RATOV_MAX                 255000
>   
>   #define VNIC_FNIC_MAXDATAFIELDSIZE_MIN      256
> -#define VNIC_FNIC_MAXDATAFIELDSIZE_MAX      2112
> +#define VNIC_FNIC_MAXDATAFIELDSIZE_MAX      2048
>   
>   #define VNIC_FNIC_FLOGI_RETRIES_MIN         0
>   #define VNIC_FNIC_FLOGI_RETRIES_MAX         0xffffffff
> @@ -55,7 +55,7 @@
>   #define VNIC_FNIC_PORT_DOWN_IO_RETRIES_MAX  255
>   
>   #define VNIC_FNIC_LUNS_PER_TARGET_MIN       1
> -#define VNIC_FNIC_LUNS_PER_TARGET_MAX       1024
> +#define VNIC_FNIC_LUNS_PER_TARGET_MAX       4096
>   
>   /* Device-specific region: scsi configuration */
>   struct vnic_fc_config {
> @@ -79,10 +79,19 @@ struct vnic_fc_config {
>   	u16 ra_tov;
>   	u16 intr_timer;
>   	u8 intr_timer_type;
> +	u8 intr_mode;
> +	u8 lun_queue_depth;
> +	u8 io_timeout_retry;
> +	u16 wq_copy_count;
>   };
>   
>   #define VFCF_FCP_SEQ_LVL_ERR	0x1	/* Enable FCP-2 Error Recovery */
>   #define VFCF_PERBI		0x2	/* persistent binding info available */
>   #define VFCF_FIP_CAPABLE	0x4	/* firmware can handle FIP */
>   
> +#define VFCF_FC_INITIATOR         0x20    /* FC Initiator Mode */
> +#define VFCF_FC_TARGET            0x40    /* FC Target Mode */
> +#define VFCF_FC_NVME_INITIATOR    0x80    /* FC-NVMe Initiator Mode */
> +#define VFCF_FC_NVME_TARGET       0x100   /* FC-NVMe Target Mode */
> +
>   #endif /* _VNIC_SCSI_H_ */

I would have thought that you may want to check for the firmware version 
here; updating some limits with no check for the version will mean the 
driver might fail on older firmware, no?

But this is arguably not part of this patch, so:

Reviewed-by: Hannes Reinecke <hare@suse.de>

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Kernel Storage Architect
hare@suse.de                              +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman

RE: [PATCH v2 01/13] scsi: fnic: Modify definitions to sync with VIC firmware
Posted by Karan Tilak Kumar (kartilak) 2 years, 1 month ago
On Thursday, November 2, 2023 12:24 AM, Hannes Reinecke <hare@suse.de> wrote:
>
>I would have thought that you may want to check for the firmware version here; updating some limits with no check for the version will mean the driver might fail on older firmware, no?
>
>But this is arguably not part of this patch, so:
>
>Reviewed-by: Hannes Reinecke <hare@suse.de>
>

Thanks for your review and review comments, Hannes. 
Support for these limits has been in firmware for a long time. We are adding support in driver only now.

Regards,
Karan