Commit b5836927 authored by Andrew Vasquez's avatar Andrew Vasquez Committed by James Bottomley

[SCSI] qla2xxx: Query additional RISC registers during ISP25XX firmware dump.

Signed-off-by: default avatarAndrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent c3b058af
...@@ -1072,6 +1072,7 @@ qla25xx_fw_dump(scsi_qla_host_t *ha, int hardware_locked) ...@@ -1072,6 +1072,7 @@ qla25xx_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
} }
fw = &ha->fw_dump->isp.isp25; fw = &ha->fw_dump->isp.isp25;
qla2xxx_prep_dump(ha, ha->fw_dump); qla2xxx_prep_dump(ha, ha->fw_dump);
ha->fw_dump->version = __constant_htonl(2);
fw->host_status = htonl(RD_REG_DWORD(&reg->host_status)); 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) ...@@ -1080,6 +1081,23 @@ qla25xx_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
if (rval != QLA_SUCCESS) if (rval != QLA_SUCCESS)
goto qla25xx_fw_dump_failed_0; 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. */ /* Host interface registers. */
dmp_reg = &reg->flash_addr; dmp_reg = &reg->flash_addr;
for (cnt = 0; cnt < sizeof(fw->host_reg) / 4; cnt++) for (cnt = 0; cnt < sizeof(fw->host_reg) / 4; cnt++)
......
...@@ -215,6 +215,8 @@ struct qla24xx_fw_dump { ...@@ -215,6 +215,8 @@ struct qla24xx_fw_dump {
struct qla25xx_fw_dump { struct qla25xx_fw_dump {
uint32_t host_status; uint32_t host_status;
uint32_t host_risc_reg[32];
uint32_t pcie_regs[4];
uint32_t host_reg[32]; uint32_t host_reg[32];
uint32_t shadow_reg[11]; uint32_t shadow_reg[11];
uint32_t risc_io_reg; uint32_t risc_io_reg;
......
...@@ -942,7 +942,7 @@ struct device_reg_24xx { ...@@ -942,7 +942,7 @@ struct device_reg_24xx {
uint16_t mailbox31; uint16_t mailbox31;
uint32_t iobase_window; uint32_t iobase_window;
uint32_t unused_4; /* Gap. */ uint32_t iobase_c4;
uint32_t iobase_c8; uint32_t iobase_c8;
uint32_t unused_4_1[6]; /* Gap. */ uint32_t unused_4_1[6]; /* Gap. */
uint32_t iobase_q; uint32_t iobase_q;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment