]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
qla2xxx: Add ram area DDR for fwdump template entry T262.
authorJoe Carnuccio <joe.carnuccio@qlogic.com>
Mon, 1 Feb 2016 18:42:04 +0000 (10:42 -0800)
committerChuck Anderson <chuck.anderson@oracle.com>
Wed, 13 Jul 2016 07:41:30 +0000 (00:41 -0700)
Orabug: 23755773

Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com>
Signed-off-by: Ethan Zhao <ethan.zhao@oracle.com>
drivers/scsi/qla2xxx/qla_def.h
drivers/scsi/qla2xxx/qla_mbx.c
drivers/scsi/qla2xxx/qla_tmpl.c

index 2aa189e76cb5e7e99b352a8e6dcc4336db2ebcde..9b513cc0e3cdf9abdcc1b9ed3fab63c21d896c51 100644 (file)
@@ -3317,6 +3317,8 @@ struct qla_hw_data {
 
        uint32_t        fw_shared_ram_start;
        uint32_t        fw_shared_ram_end;
+       uint32_t        fw_ddr_ram_start;
+       uint32_t        fw_ddr_ram_end;
 
        uint16_t        fw_options[16];         /* slots: 1,2,3,10,11 */
        uint8_t         fw_seriallink_options[4];
index 0f02aa53692f794d2a10fcc398610e6d821a2bf5..9c543f2c94669f6445dbe2d5450f044aa0c38e09 100644 (file)
@@ -555,8 +555,9 @@ qla2x00_get_fw_version(scsi_qla_host_t *vha)
        if (IS_FWI2_CAPABLE(ha))
                mcp->in_mb |= MBX_17|MBX_16|MBX_15;
        if (IS_QLA27XX(ha))
-               mcp->in_mb |= MBX_23 | MBX_22 | MBX_21 | MBX_20 | MBX_19 |
-                   MBX_18 | MBX_14 | MBX_13 | MBX_11 | MBX_10 | MBX_9 | MBX_8;
+               mcp->in_mb |=
+                   MBX_25|MBX_24|MBX_23|MBX_22|MBX_21|MBX_20|MBX_19|MBX_18|
+                   MBX_14|MBX_13|MBX_11|MBX_10|MBX_9|MBX_8;
 
        mcp->flags = 0;
        mcp->tov = MBX_TOV_SECONDS;
@@ -605,6 +606,8 @@ qla2x00_get_fw_version(scsi_qla_host_t *vha)
                ha->pep_version[2] = mcp->mb[14] & 0xff;
                ha->fw_shared_ram_start = (mcp->mb[19] << 16) | mcp->mb[18];
                ha->fw_shared_ram_end = (mcp->mb[21] << 16) | mcp->mb[20];
+               ha->fw_ddr_ram_start = (mcp->mb[23] << 16) | mcp->mb[22];
+               ha->fw_ddr_ram_end = (mcp->mb[25] << 16) | mcp->mb[24];
        }
 
 failed:
index 962cb89fe0ae9abe38562766f3b03de7766d506a..8c51ca42a0dd5561e164700822d2a42c53abceba 100644 (file)
@@ -357,6 +357,13 @@ qla27xx_fwdt_entry_t262(struct scsi_qla_host *vha,
                        ent->t262.start_addr = start;
                        ent->t262.end_addr = end;
                }
+       } else if (ent->t262.ram_area == T262_RAM_AREA_DDR_RAM) {
+               start = vha->hw->fw_ddr_ram_start;
+               end = vha->hw->fw_ddr_ram_end;
+               if (buf) {
+                       ent->t262.start_addr = start;
+                       ent->t262.end_addr = end;
+               }
        } else {
                ql_dbg(ql_dbg_misc, vha, 0xd022,
                    "%s: unknown area %x\n", __func__, ent->t262.ram_area);
@@ -364,7 +371,7 @@ qla27xx_fwdt_entry_t262(struct scsi_qla_host *vha,
                goto done;
        }
 
-       if (end < start || end == 0) {
+       if (end <= start || start == 0 || end == 0) {
                ql_dbg(ql_dbg_misc, vha, 0xd023,
                    "%s: unusable range (start=%x end=%x)\n", __func__,
                    ent->t262.end_addr, ent->t262.start_addr);