]> err.no Git - linux-2.6/commitdiff
[SCSI] qla2xxx: Query additional RISC registers during ISP25XX firmware dump.
authorAndrew Vasquez <andrew.vasquez@qlogic.com>
Thu, 20 Sep 2007 21:07:39 +0000 (14:07 -0700)
committerJames Bottomley <jejb@mulgrave.localdomain>
Fri, 12 Oct 2007 18:49:58 +0000 (14:49 -0400)
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/qla2xxx/qla_dbg.c
drivers/scsi/qla2xxx/qla_dbg.h
drivers/scsi/qla2xxx/qla_fw.h

index 2defe0c21df4992ccd865518bb606210489bd8c9..ca7f70d6d6c0aaa99af628f88c5e9069d19f27a0 100644 (file)
@@ -1072,6 +1072,7 @@ qla25xx_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
        }
        fw = &ha->fw_dump->isp.isp25;
        qla2xxx_prep_dump(ha, ha->fw_dump);
+       ha->fw_dump->version = __constant_htonl(2);
 
        fw->host_status = htonl(RD_REG_DWORD(&reg->host_status));
 
@@ -1080,6 +1081,23 @@ qla25xx_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
        if (rval != QLA_SUCCESS)
                goto qla25xx_fw_dump_failed_0;
 
+       /* Host/Risc registers. */
+       iter_reg = fw->host_risc_reg;
+       iter_reg = qla24xx_read_window(reg, 0x7000, 16, iter_reg);
+       qla24xx_read_window(reg, 0x7010, 16, iter_reg);
+
+       /* PCIe registers. */
+       WRT_REG_DWORD(&reg->iobase_addr, 0x7C00);
+       RD_REG_DWORD(&reg->iobase_addr);
+       WRT_REG_DWORD(&reg->iobase_window, 0x01);
+       dmp_reg = &reg->iobase_c4;
+       fw->pcie_regs[0] = htonl(RD_REG_DWORD(dmp_reg++));
+       fw->pcie_regs[1] = htonl(RD_REG_DWORD(dmp_reg++));
+       fw->pcie_regs[2] = htonl(RD_REG_DWORD(dmp_reg));
+       fw->pcie_regs[3] = htonl(RD_REG_DWORD(&reg->iobase_window));
+       WRT_REG_DWORD(&reg->iobase_window, 0x00);
+       RD_REG_DWORD(&reg->iobase_window);
+
        /* Host interface registers. */
        dmp_reg = &reg->flash_addr;
        for (cnt = 0; cnt < sizeof(fw->host_reg) / 4; cnt++)
index cca4b0d8253eae3c164f73adb57dc8ec68ce20bb..a50ecf0b7c8452b144b1459d247897a9bfef6b4f 100644 (file)
@@ -215,6 +215,8 @@ struct qla24xx_fw_dump {
 
 struct qla25xx_fw_dump {
        uint32_t host_status;
+       uint32_t host_risc_reg[32];
+       uint32_t pcie_regs[4];
        uint32_t host_reg[32];
        uint32_t shadow_reg[11];
        uint32_t risc_io_reg;
index db63386f96b0c03c7a5ec8cc2a35b78d89d83499..25364b1aaf12327daf2dac3e1ea34ce8286f147d 100644 (file)
@@ -942,7 +942,7 @@ struct device_reg_24xx {
        uint16_t mailbox31;
 
        uint32_t iobase_window;
-       uint32_t unused_4;              /* Gap. */
+       uint32_t iobase_c4;
        uint32_t iobase_c8;
        uint32_t unused_4_1[6];         /* Gap. */
        uint32_t iobase_q;