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

VIC firmware has updated definitions.
Modify structure and definitions to sync with the latest VIC firmware.

Reviewed-by: Sesidhar Baddela <[email protected]>
Reviewed-by: Arulprabhu Ponnusamy <[email protected]>
Signed-off-by: Karan Tilak Kumar <[email protected]>
---
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


2023-11-02 07:24:46

by Hannes Reinecke

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

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 <[email protected]>
> Reviewed-by: Arulprabhu Ponnusamy <[email protected]>
> Signed-off-by: Karan Tilak Kumar <[email protected]>
> ---
> 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 <[email protected]>

Cheers,

Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
[email protected] +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

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

On Thursday, November 2, 2023 12:24 AM, Hannes Reinecke <[email protected]> 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 <[email protected]>
>

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