linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Julian Calaby <julian.calaby@gmail.com>
To: linux-scsi@vger.kernel.org
Cc: Julian Calaby <julian.calaby@gmail.com>,
	qla2xxx-upstream@qlogic.com,
	"James E.J. Bottomley" <JBottomley@odin.com>,
	Linux Firmware Maintainers <linux-firmware@kernel.org>
Subject: [PATCH for-next] scsi: qla2xxx: Hide unavailable firmware
Date: Fri, 22 May 2015 10:00:31 +1000	[thread overview]
Message-ID: <1432252831-7551-1-git-send-email-julian.calaby@gmail.com> (raw)

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@qlogic.com>
Cc: James E.J. Bottomley <JBottomley@odin.com>
Cc: Linux Firmware Maintainers <linux-firmware@kernel.org>
Signed-off-by: Julian Calaby <julian.calaby@gmail.com>
---
 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


             reply	other threads:[~2015-05-22  0:09 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-22  0:00 Julian Calaby [this message]
2015-05-22  0:05 ` [PATCH for-next] scsi: qla2xxx: Hide unavailable firmware Julian Calaby
2015-10-07 15:13   ` Xose Vazquez Perez
2015-10-07 23:41     ` Julian Calaby
2015-10-08 15:46       ` Himanshu Madhani
2015-10-08 16:17         ` James Bottomley
2015-10-08 17:38           ` Himanshu Madhani
2015-10-08 23:10           ` Julian Calaby
2015-10-09  0:26             ` Giridhar Malavali
2015-10-09 14:45               ` Xose Vazquez Perez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1432252831-7551-1-git-send-email-julian.calaby@gmail.com \
    --to=julian.calaby@gmail.com \
    --cc=JBottomley@odin.com \
    --cc=linux-firmware@kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=qla2xxx-upstream@qlogic.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).