diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2007-09-20 17:07:39 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.localdomain> | 2007-10-12 14:49:58 -0400 |
commit | b58369273956775c3e8b7bbbe152593d52762099 (patch) | |
tree | cf08d6dffb751adb75a10550d92da9ee0a3f4368 /drivers/scsi | |
parent | c3b058afaea11273835f59694f8645a89915be9c (diff) |
[SCSI] qla2xxx: Query additional RISC registers during ISP25XX firmware dump.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_dbg.c | 18 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_dbg.h | 2 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_fw.h | 2 |
3 files changed, 21 insertions, 1 deletions
diff --git a/drivers/scsi/qla2xxx/qla_dbg.c b/drivers/scsi/qla2xxx/qla_dbg.c index 2defe0c21df4..ca7f70d6d6c0 100644 --- a/drivers/scsi/qla2xxx/qla_dbg.c +++ b/drivers/scsi/qla2xxx/qla_dbg.c | |||
@@ -1072,6 +1072,7 @@ qla25xx_fw_dump(scsi_qla_host_t *ha, int hardware_locked) | |||
1072 | } | 1072 | } |
1073 | fw = &ha->fw_dump->isp.isp25; | 1073 | fw = &ha->fw_dump->isp.isp25; |
1074 | qla2xxx_prep_dump(ha, ha->fw_dump); | 1074 | qla2xxx_prep_dump(ha, ha->fw_dump); |
1075 | ha->fw_dump->version = __constant_htonl(2); | ||
1075 | 1076 | ||
1076 | fw->host_status = htonl(RD_REG_DWORD(®->host_status)); | 1077 | fw->host_status = htonl(RD_REG_DWORD(®->host_status)); |
1077 | 1078 | ||
@@ -1080,6 +1081,23 @@ qla25xx_fw_dump(scsi_qla_host_t *ha, int hardware_locked) | |||
1080 | if (rval != QLA_SUCCESS) | 1081 | if (rval != QLA_SUCCESS) |
1081 | goto qla25xx_fw_dump_failed_0; | 1082 | goto qla25xx_fw_dump_failed_0; |
1082 | 1083 | ||
1084 | /* Host/Risc registers. */ | ||
1085 | iter_reg = fw->host_risc_reg; | ||
1086 | iter_reg = qla24xx_read_window(reg, 0x7000, 16, iter_reg); | ||
1087 | qla24xx_read_window(reg, 0x7010, 16, iter_reg); | ||
1088 | |||
1089 | /* PCIe registers. */ | ||
1090 | WRT_REG_DWORD(®->iobase_addr, 0x7C00); | ||
1091 | RD_REG_DWORD(®->iobase_addr); | ||
1092 | WRT_REG_DWORD(®->iobase_window, 0x01); | ||
1093 | dmp_reg = ®->iobase_c4; | ||
1094 | fw->pcie_regs[0] = htonl(RD_REG_DWORD(dmp_reg++)); | ||
1095 | fw->pcie_regs[1] = htonl(RD_REG_DWORD(dmp_reg++)); | ||
1096 | fw->pcie_regs[2] = htonl(RD_REG_DWORD(dmp_reg)); | ||
1097 | fw->pcie_regs[3] = htonl(RD_REG_DWORD(®->iobase_window)); | ||
1098 | WRT_REG_DWORD(®->iobase_window, 0x00); | ||
1099 | RD_REG_DWORD(®->iobase_window); | ||
1100 | |||
1083 | /* Host interface registers. */ | 1101 | /* Host interface registers. */ |
1084 | dmp_reg = ®->flash_addr; | 1102 | dmp_reg = ®->flash_addr; |
1085 | for (cnt = 0; cnt < sizeof(fw->host_reg) / 4; cnt++) | 1103 | for (cnt = 0; cnt < sizeof(fw->host_reg) / 4; cnt++) |
diff --git a/drivers/scsi/qla2xxx/qla_dbg.h b/drivers/scsi/qla2xxx/qla_dbg.h index cca4b0d8253e..a50ecf0b7c84 100644 --- a/drivers/scsi/qla2xxx/qla_dbg.h +++ b/drivers/scsi/qla2xxx/qla_dbg.h | |||
@@ -215,6 +215,8 @@ struct qla24xx_fw_dump { | |||
215 | 215 | ||
216 | struct qla25xx_fw_dump { | 216 | struct qla25xx_fw_dump { |
217 | uint32_t host_status; | 217 | uint32_t host_status; |
218 | uint32_t host_risc_reg[32]; | ||
219 | uint32_t pcie_regs[4]; | ||
218 | uint32_t host_reg[32]; | 220 | uint32_t host_reg[32]; |
219 | uint32_t shadow_reg[11]; | 221 | uint32_t shadow_reg[11]; |
220 | uint32_t risc_io_reg; | 222 | uint32_t risc_io_reg; |
diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h index db63386f96b0..25364b1aaf12 100644 --- a/drivers/scsi/qla2xxx/qla_fw.h +++ b/drivers/scsi/qla2xxx/qla_fw.h | |||
@@ -942,7 +942,7 @@ struct device_reg_24xx { | |||
942 | uint16_t mailbox31; | 942 | uint16_t mailbox31; |
943 | 943 | ||
944 | uint32_t iobase_window; | 944 | uint32_t iobase_window; |
945 | uint32_t unused_4; /* Gap. */ | 945 | uint32_t iobase_c4; |
946 | uint32_t iobase_c8; | 946 | uint32_t iobase_c8; |
947 | uint32_t unused_4_1[6]; /* Gap. */ | 947 | uint32_t unused_4_1[6]; /* Gap. */ |
948 | uint32_t iobase_q; | 948 | uint32_t iobase_q; |