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. What is state of this patch ? > 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 > -- 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