Re: [PATCH for-next] scsi: qla2xxx: Hide unavailable firmware

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Xose,

Adding you to CC.

On Fri, May 22, 2015 at 10:00 AM, Julian Calaby <julian.calaby@xxxxxxxxx> wrote:
> Some qla2xxx devices have firmware stored in flash on the device,
> however for debugging and triage purposes, Qlogic staff like to
> be able to load known-good versions of these firmwares through
> request_firmware().
>
> These firmware files were never distributed and are unlikely to ever
> be released publically, so to hide these missing firmware files from
> scripts which check such things, (e.g. Debian's initramfs-tools) put
> them behind a new EXPERT Kconfig option.
>
> Cc: <qla2xxx-upstream@xxxxxxxxxx>
> Cc: James E.J. Bottomley <JBottomley@xxxxxxxx>
> Cc: Linux Firmware Maintainers <linux-firmware@xxxxxxxxxx>
> Signed-off-by: Julian Calaby <julian.calaby@xxxxxxxxx>
> ---
>  drivers/scsi/qla2xxx/Kconfig  | 25 +++++++++++++++++++++++++
>  drivers/scsi/qla2xxx/qla_os.c | 40 +++++++++++++++++++++++++++-------------
>  2 files changed, 52 insertions(+), 13 deletions(-)
>
> This is against linux-next @next-20150520 and has been compile
> tested only.
>
> diff --git a/drivers/scsi/qla2xxx/Kconfig b/drivers/scsi/qla2xxx/Kconfig
> index 33f60c9..31e9db4 100644
> --- a/drivers/scsi/qla2xxx/Kconfig
> +++ b/drivers/scsi/qla2xxx/Kconfig
> @@ -31,6 +31,31 @@ config SCSI_QLA_FC
>
>         They are also included in the linux-firmware tree as well.
>
> +       This driver also supports some adapters with firmware stored
> +       onboard in flash.
> +
> +config SCSI_QLA_FC_TRIAGE
> +       bool "Firmware loading support for flash based adapters"
> +       depends on SCSI_QLA_FC
> +       depends on EXPERT
> +       default n
> +       ---help---
> +       Add firmware definitions for adapters with firmware stored
> +       onboard in flash.
> +
> +       This requires the following firmware files which are not
> +       distributed:
> +
> +       ISP               Firmware Filename
> +       ----------        -----------------
> +       81xx              ql8100_fw.bin
> +       82xx              ql8200_fw.bin
> +
> +       This option should only be enabled by Qlogic support staff
> +       as these firmware files are not available publically.
> +
> +       If unsure say N.
> +
>  config TCM_QLA2XXX
>         tristate "TCM_QLA2XXX fabric module for Qlogic 2xxx series target mode HBAs"
>         depends on SCSI_QLA_FC && TARGET_CORE
> diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
> index 7462dd7..da98d83 100644
> --- a/drivers/scsi/qla2xxx/qla_os.c
> +++ b/drivers/scsi/qla2xxx/qla_os.c
> @@ -5284,11 +5284,14 @@ qla2x00_timer(scsi_qla_host_t *vha)
>  #define FW_ISP2322     3
>  #define FW_ISP24XX     4
>  #define FW_ISP25XX     5
> -#define FW_ISP81XX     6
> -#define FW_ISP82XX     7
> -#define FW_ISP2031     8
> -#define FW_ISP8031     9
> -#define FW_ISP27XX     10
> +#define FW_ISP2031     6
> +#define FW_ISP8031     7
> +#define FW_ISP27XX     8
> +
> +#ifdef CONFIG_SCSI_QLA_FC_TRIAGE
> +#define FW_ISP81XX     9
> +#define FW_ISP82XX     10
> +#endif
>
>  #define FW_FILE_ISP21XX        "ql2100_fw.bin"
>  #define FW_FILE_ISP22XX        "ql2200_fw.bin"
> @@ -5296,12 +5299,14 @@ qla2x00_timer(scsi_qla_host_t *vha)
>  #define FW_FILE_ISP2322        "ql2322_fw.bin"
>  #define FW_FILE_ISP24XX        "ql2400_fw.bin"
>  #define FW_FILE_ISP25XX        "ql2500_fw.bin"
> -#define FW_FILE_ISP81XX        "ql8100_fw.bin"
> -#define FW_FILE_ISP82XX        "ql8200_fw.bin"
>  #define FW_FILE_ISP2031        "ql2600_fw.bin"
>  #define FW_FILE_ISP8031        "ql8300_fw.bin"
>  #define FW_FILE_ISP27XX        "ql2700_fw.bin"
>
> +#ifdef CONFIG_SCSI_QLA_FC_TRIAGE
> +#define FW_FILE_ISP81XX        "ql8100_fw.bin"
> +#define FW_FILE_ISP82XX        "ql8200_fw.bin"
> +#endif
>
>  static DEFINE_MUTEX(qla_fw_lock);
>
> @@ -5312,11 +5317,13 @@ static struct fw_blob qla_fw_blobs[FW_BLOBS] = {
>         { .name = FW_FILE_ISP2322, .segs = { 0x800, 0x1c000, 0x1e000, 0 }, },
>         { .name = FW_FILE_ISP24XX, },
>         { .name = FW_FILE_ISP25XX, },
> -       { .name = FW_FILE_ISP81XX, },
> -       { .name = FW_FILE_ISP82XX, },
>         { .name = FW_FILE_ISP2031, },
>         { .name = FW_FILE_ISP8031, },
>         { .name = FW_FILE_ISP27XX, },
> +#ifdef CONFIG_SCSI_QLA_FC_TRIAGE
> +       { .name = FW_FILE_ISP81XX, },
> +       { .name = FW_FILE_ISP82XX, },
> +#endif
>  };
>
>  struct fw_blob *
> @@ -5337,16 +5344,18 @@ qla2x00_request_firmware(scsi_qla_host_t *vha)
>                 blob = &qla_fw_blobs[FW_ISP24XX];
>         } else if (IS_QLA25XX(ha)) {
>                 blob = &qla_fw_blobs[FW_ISP25XX];
> -       } else if (IS_QLA81XX(ha)) {
> -               blob = &qla_fw_blobs[FW_ISP81XX];
> -       } else if (IS_QLA82XX(ha)) {
> -               blob = &qla_fw_blobs[FW_ISP82XX];
>         } else if (IS_QLA2031(ha)) {
>                 blob = &qla_fw_blobs[FW_ISP2031];
>         } else if (IS_QLA8031(ha)) {
>                 blob = &qla_fw_blobs[FW_ISP8031];
>         } else if (IS_QLA27XX(ha)) {
>                 blob = &qla_fw_blobs[FW_ISP27XX];
> +#ifdef CONFIG_SCSI_QLA_FC_TRIAGE
> +       } else if (IS_QLA81XX(ha)) {
> +               blob = &qla_fw_blobs[FW_ISP81XX];
> +       } else if (IS_QLA82XX(ha)) {
> +               blob = &qla_fw_blobs[FW_ISP82XX];
> +#endif
>         } else {
>                 return NULL;
>         }
> @@ -5837,3 +5846,8 @@ MODULE_FIRMWARE(FW_FILE_ISP25XX);
>  MODULE_FIRMWARE(FW_FILE_ISP2031);
>  MODULE_FIRMWARE(FW_FILE_ISP8031);
>  MODULE_FIRMWARE(FW_FILE_ISP27XX);
> +
> +#ifdef CONFIG_SCSI_QLA_FC_TRIAGE
> +MODULE_FIRMWARE(FW_FILE_ISP81XX);
> +MODULE_FIRMWARE(FW_FILE_ISP82XX);
> +#endif
> --
> 2.1.4
>



-- 
Julian Calaby

Email: julian.calaby@xxxxxxxxx
Profile: http://www.google.com/profiles/julian.calaby/
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux