linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] qla2xxx: Fixes for ISP28xx
@ 2019-12-03 22:36 Himanshu Madhani
  2019-12-03 22:36 ` [PATCH 1/3] qla2xxx: Correctly retrieve and interprete active flash region Himanshu Madhani
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Himanshu Madhani @ 2019-12-03 22:36 UTC (permalink / raw)
  To: James.Bottomley, martin.petersen; +Cc: hmadhani, linux-scsi

Hi Martin, 

This series contains fixes for Secure Flash update for ISP28xx adapters.

Thanks,
Himanshu

Himanshu Madhani (1):
  qla2xxx: Correctly retrieve and interprete active flash region

Michael Hernandez (2):
  qla2xxx: Added support for MPI and PEP regions for ISP28XX
  qla2xxx: Fix incorrect SFUB length used for Secure Flash Update MB Cmd

 drivers/scsi/qla2xxx/qla_attr.c |  1 +
 drivers/scsi/qla2xxx/qla_bsg.c  |  2 +-
 drivers/scsi/qla2xxx/qla_fw.h   |  4 ++++
 drivers/scsi/qla2xxx/qla_sup.c  | 35 ++++++++++++++++++++++++++---------
 4 files changed, 32 insertions(+), 10 deletions(-)

-- 
2.12.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/3] qla2xxx: Correctly retrieve and interprete active flash region
  2019-12-03 22:36 [PATCH 0/3] qla2xxx: Fixes for ISP28xx Himanshu Madhani
@ 2019-12-03 22:36 ` Himanshu Madhani
  2019-12-03 22:36 ` [PATCH 2/3] qla2xxx: Added support for MPI and PEP regions for ISP28XX Himanshu Madhani
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Himanshu Madhani @ 2019-12-03 22:36 UTC (permalink / raw)
  To: James.Bottomley, martin.petersen; +Cc: hmadhani, linux-scsi

ISP27XX/28XX supports multiple flash regions. This patch fixes
issue where active flash region was not interpreted correctly
during secure flash update process.

Fixes: 5fa8774c7f38c ("scsi: qla2xxx: Add 28xx flash primary/secondary status/image mechanism")
Cc: stable@vger.kernel.org
Signed-off-by: Michael Hernandez <mhernandez@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
---
 drivers/scsi/qla2xxx/qla_attr.c | 1 +
 drivers/scsi/qla2xxx/qla_bsg.c  | 2 +-
 drivers/scsi/qla2xxx/qla_sup.c  | 6 +++---
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
index ae97e2f310a3..d7e7043f9eab 100644
--- a/drivers/scsi/qla2xxx/qla_attr.c
+++ b/drivers/scsi/qla2xxx/qla_attr.c
@@ -178,6 +178,7 @@ qla2x00_sysfs_read_nvram(struct file *filp, struct kobject *kobj,
 
 	faddr = ha->flt_region_nvram;
 	if (IS_QLA28XX(ha)) {
+		qla28xx_get_aux_images(vha, &active_regions);
 		if (active_regions.aux.vpd_nvram == QLA27XX_SECONDARY_IMAGE)
 			faddr = ha->flt_region_nvram_sec;
 	}
diff --git a/drivers/scsi/qla2xxx/qla_bsg.c b/drivers/scsi/qla2xxx/qla_bsg.c
index 99f0a1a08143..cbaf178fc979 100644
--- a/drivers/scsi/qla2xxx/qla_bsg.c
+++ b/drivers/scsi/qla2xxx/qla_bsg.c
@@ -2399,7 +2399,7 @@ qla2x00_get_flash_image_status(struct bsg_job *bsg_job)
 	struct qla_active_regions regions = { };
 	struct active_regions active_regions = { };
 
-	qla28xx_get_aux_images(vha, &active_regions);
+	qla27xx_get_active_image(vha, &active_regions);
 	regions.global_image = active_regions.global;
 
 	if (IS_QLA28XX(ha)) {
diff --git a/drivers/scsi/qla2xxx/qla_sup.c b/drivers/scsi/qla2xxx/qla_sup.c
index f2d5115b2d8d..b93a0d99e573 100644
--- a/drivers/scsi/qla2xxx/qla_sup.c
+++ b/drivers/scsi/qla2xxx/qla_sup.c
@@ -847,15 +847,15 @@ qla2xxx_get_flt_info(scsi_qla_host_t *vha, uint32_t flt_addr)
 				ha->flt_region_img_status_pri = start;
 			break;
 		case FLT_REG_IMG_SEC_27XX:
-			if (IS_QLA27XX(ha) && !IS_QLA28XX(ha))
+			if (IS_QLA27XX(ha) || IS_QLA28XX(ha))
 				ha->flt_region_img_status_sec = start;
 			break;
 		case FLT_REG_FW_SEC_27XX:
-			if (IS_QLA27XX(ha) && !IS_QLA28XX(ha))
+			if (IS_QLA27XX(ha) || IS_QLA28XX(ha))
 				ha->flt_region_fw_sec = start;
 			break;
 		case FLT_REG_BOOTLOAD_SEC_27XX:
-			if (IS_QLA27XX(ha) && !IS_QLA28XX(ha))
+			if (IS_QLA27XX(ha) || IS_QLA28XX(ha))
 				ha->flt_region_boot_sec = start;
 			break;
 		case FLT_REG_AUX_IMG_PRI_28XX:
-- 
2.12.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/3] qla2xxx: Added support for MPI and PEP regions for ISP28XX
  2019-12-03 22:36 [PATCH 0/3] qla2xxx: Fixes for ISP28xx Himanshu Madhani
  2019-12-03 22:36 ` [PATCH 1/3] qla2xxx: Correctly retrieve and interprete active flash region Himanshu Madhani
@ 2019-12-03 22:36 ` Himanshu Madhani
  2019-12-03 22:36 ` [PATCH 3/3] qla2xxx: Fix incorrect SFUB length used for Secure Flash Update MB Cmd Himanshu Madhani
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Himanshu Madhani @ 2019-12-03 22:36 UTC (permalink / raw)
  To: James.Bottomley, martin.petersen; +Cc: hmadhani, linux-scsi

From: Michael Hernandez <mhernandez@marvell.com>

This patch adds support for MPI/PEP region updates which is required
with secure flash updates for ISP28XX.

Fixes: 3f006ac342c0 ("scsi: qla2xxx: Secure flash update support for ISP28XX")
Cc: stable@vger.kernel.org
Signed-off-by: Michael Hernandez <mhernandez@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
---
 drivers/scsi/qla2xxx/qla_fw.h  |  4 ++++
 drivers/scsi/qla2xxx/qla_sup.c | 27 ++++++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h
index 59f6903e5abe..9dc09c117416 100644
--- a/drivers/scsi/qla2xxx/qla_fw.h
+++ b/drivers/scsi/qla2xxx/qla_fw.h
@@ -1523,6 +1523,10 @@ struct qla_flt_header {
 #define FLT_REG_NVRAM_SEC_28XX_1	0x10F
 #define FLT_REG_NVRAM_SEC_28XX_2	0x111
 #define FLT_REG_NVRAM_SEC_28XX_3	0x113
+#define FLT_REG_MPI_PRI_28XX		0xD3
+#define FLT_REG_MPI_SEC_28XX		0xF0
+#define FLT_REG_PEP_PRI_28XX		0xD1
+#define FLT_REG_PEP_SEC_28XX		0xF1
 
 struct qla_flt_region {
 	uint16_t code;
diff --git a/drivers/scsi/qla2xxx/qla_sup.c b/drivers/scsi/qla2xxx/qla_sup.c
index b93a0d99e573..ae9d7422e78b 100644
--- a/drivers/scsi/qla2xxx/qla_sup.c
+++ b/drivers/scsi/qla2xxx/qla_sup.c
@@ -2725,8 +2725,11 @@ qla28xx_write_flash_data(scsi_qla_host_t *vha, uint32_t *dwptr, uint32_t faddr,
 		ql_log(ql_log_warn + ql_dbg_verbose, vha, 0xffff,
 		    "Region %x is secure\n", region.code);
 
-		if (region.code == FLT_REG_FW ||
-		    region.code == FLT_REG_FW_SEC_27XX) {
+		switch (region.code) {
+		case FLT_REG_FW:
+		case FLT_REG_FW_SEC_27XX:
+		case FLT_REG_MPI_PRI_28XX:
+		case FLT_REG_MPI_SEC_28XX:
 			fw_array = dwptr;
 
 			/* 1st fw array */
@@ -2757,9 +2760,23 @@ qla28xx_write_flash_data(scsi_qla_host_t *vha, uint32_t *dwptr, uint32_t faddr,
 				buf_size_without_sfub += risc_size;
 				fw_array += risc_size;
 			}
-		} else {
-			ql_log(ql_log_warn + ql_dbg_verbose, vha, 0xffff,
-			    "Secure region %x not supported\n",
+			break;
+
+		case FLT_REG_PEP_PRI_28XX:
+		case FLT_REG_PEP_SEC_28XX:
+			fw_array = dwptr;
+
+			/* 1st fw array */
+			risc_size = be32_to_cpu(fw_array[3]);
+			risc_attr = be32_to_cpu(fw_array[9]);
+
+			buf_size_without_sfub = risc_size;
+			fw_array += risc_size;
+			break;
+
+		default:
+			ql_log(ql_log_warn + ql_dbg_verbose, vha,
+			    0xffff, "Secure region %x not supported\n",
 			    region.code);
 			rval = QLA_COMMAND_ERROR;
 			goto done;
-- 
2.12.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/3] qla2xxx: Fix incorrect SFUB length used for Secure Flash Update MB Cmd
  2019-12-03 22:36 [PATCH 0/3] qla2xxx: Fixes for ISP28xx Himanshu Madhani
  2019-12-03 22:36 ` [PATCH 1/3] qla2xxx: Correctly retrieve and interprete active flash region Himanshu Madhani
  2019-12-03 22:36 ` [PATCH 2/3] qla2xxx: Added support for MPI and PEP regions for ISP28XX Himanshu Madhani
@ 2019-12-03 22:36 ` Himanshu Madhani
  2019-12-03 22:38 ` [PATCH 0/3] qla2xxx: Fixes for ISP28xx Himanshu Madhani
  2019-12-09 23:04 ` Martin K. Petersen
  4 siblings, 0 replies; 6+ messages in thread
From: Himanshu Madhani @ 2019-12-03 22:36 UTC (permalink / raw)
  To: James.Bottomley, martin.petersen; +Cc: hmadhani, linux-scsi

From: Michael Hernandez <mhernandez@marvell.com>

SFUB length should be in DWORDs when passed to FW.

Fixes: 3f006ac342c03 ("scsi: qla2xxx: Secure flash update support for ISP28XX")
Cc: stable@vger.kernel.org
Signed-off-by: Michael Hernandez <mhernandez@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
---
 drivers/scsi/qla2xxx/qla_sup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/qla2xxx/qla_sup.c b/drivers/scsi/qla2xxx/qla_sup.c
index ae9d7422e78b..bbe90354f49b 100644
--- a/drivers/scsi/qla2xxx/qla_sup.c
+++ b/drivers/scsi/qla2xxx/qla_sup.c
@@ -2897,7 +2897,7 @@ qla28xx_write_flash_data(scsi_qla_host_t *vha, uint32_t *dwptr, uint32_t faddr,
 			    "Sending Secure Flash MB Cmd\n");
 			rval = qla28xx_secure_flash_update(vha, 0, region.code,
 				buf_size_without_sfub, sfub_dma,
-				sizeof(struct secure_flash_update_block));
+				sizeof(struct secure_flash_update_block) >> 2);
 			if (rval != QLA_SUCCESS) {
 				ql_log(ql_log_warn, vha, 0xffff,
 				    "Secure Flash MB Cmd failed %x.", rval);
-- 
2.12.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/3] qla2xxx: Fixes for ISP28xx
  2019-12-03 22:36 [PATCH 0/3] qla2xxx: Fixes for ISP28xx Himanshu Madhani
                   ` (2 preceding siblings ...)
  2019-12-03 22:36 ` [PATCH 3/3] qla2xxx: Fix incorrect SFUB length used for Secure Flash Update MB Cmd Himanshu Madhani
@ 2019-12-03 22:38 ` Himanshu Madhani
  2019-12-09 23:04 ` Martin K. Petersen
  4 siblings, 0 replies; 6+ messages in thread
From: Himanshu Madhani @ 2019-12-03 22:38 UTC (permalink / raw)
  To: James.Bottomley, martin.petersen; +Cc: linux-scsi



On 12/3/19, 4:37 PM, "Himanshu Madhani" <hmadhani@marvell.com> wrote:

    Hi Martin, 
    
    This series contains fixes for Secure Flash update for ISP28xx adapters.
 
Please apply to 5.5/scsi-queue.
   
    Thanks,
    Himanshu
    
    Himanshu Madhani (1):
      qla2xxx: Correctly retrieve and interprete active flash region
    
    Michael Hernandez (2):
      qla2xxx: Added support for MPI and PEP regions for ISP28XX
      qla2xxx: Fix incorrect SFUB length used for Secure Flash Update MB Cmd
    
     drivers/scsi/qla2xxx/qla_attr.c |  1 +
     drivers/scsi/qla2xxx/qla_bsg.c  |  2 +-
     drivers/scsi/qla2xxx/qla_fw.h   |  4 ++++
     drivers/scsi/qla2xxx/qla_sup.c  | 35 ++++++++++++++++++++++++++---------
     4 files changed, 32 insertions(+), 10 deletions(-)
    
    -- 
    2.12.0
    
    


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/3] qla2xxx: Fixes for ISP28xx
  2019-12-03 22:36 [PATCH 0/3] qla2xxx: Fixes for ISP28xx Himanshu Madhani
                   ` (3 preceding siblings ...)
  2019-12-03 22:38 ` [PATCH 0/3] qla2xxx: Fixes for ISP28xx Himanshu Madhani
@ 2019-12-09 23:04 ` Martin K. Petersen
  4 siblings, 0 replies; 6+ messages in thread
From: Martin K. Petersen @ 2019-12-09 23:04 UTC (permalink / raw)
  To: Himanshu Madhani; +Cc: James.Bottomley, martin.petersen, linux-scsi


Himanshu,

> This series contains fixes for Secure Flash update for ISP28xx
> adapters.

Applied to 5.5/scsi-fixes, thanks!

-- 
Martin K. Petersen	Oracle Linux Engineering

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-12-09 23:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-03 22:36 [PATCH 0/3] qla2xxx: Fixes for ISP28xx Himanshu Madhani
2019-12-03 22:36 ` [PATCH 1/3] qla2xxx: Correctly retrieve and interprete active flash region Himanshu Madhani
2019-12-03 22:36 ` [PATCH 2/3] qla2xxx: Added support for MPI and PEP regions for ISP28XX Himanshu Madhani
2019-12-03 22:36 ` [PATCH 3/3] qla2xxx: Fix incorrect SFUB length used for Secure Flash Update MB Cmd Himanshu Madhani
2019-12-03 22:38 ` [PATCH 0/3] qla2xxx: Fixes for ISP28xx Himanshu Madhani
2019-12-09 23:04 ` Martin K. Petersen

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).