aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_fw.h
diff options
context:
space:
mode:
authorAndrew Vasquez <andrew.vasquez@qlogic.com>2008-09-12 00:22:49 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-10-03 12:46:17 -0400
commitc00d8994d91e51aa6b891ad0e877f66cc1011de2 (patch)
tree5c200c361fffd2d8ac48572b22db0c9cd8b55451 /drivers/scsi/qla2xxx/qla_fw.h
parent4b89258c7320bab4155b692e76ae9ffdd85e79be (diff)
[SCSI] qla2xxx: Add Flash Layout Table support.
The Flash Layout Table (FLT) present on many recent HBAs encodes flash usage information, organizes data stored into separate regions and presents the information uniformly to the driver. Use this information rather than using specific hard-coded values based on ISP type. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_fw.h')
-rw-r--r--drivers/scsi/qla2xxx/qla_fw.h45
1 files changed, 40 insertions, 5 deletions
diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h
index cf194517400d..2ec986bf8344 100644
--- a/drivers/scsi/qla2xxx/qla_fw.h
+++ b/drivers/scsi/qla2xxx/qla_fw.h
@@ -789,12 +789,16 @@ struct device_reg_24xx {
789#define FA_RISC_CODE_ADDR 0x20000 789#define FA_RISC_CODE_ADDR 0x20000
790#define FA_RISC_CODE_SEGMENTS 2 790#define FA_RISC_CODE_SEGMENTS 2
791 791
792#define FA_FLASH_DESCR_ADDR_24 0x11000
793#define FA_FLASH_LAYOUT_ADDR_24 0x11400
794
792#define FA_FW_AREA_ADDR 0x40000 795#define FA_FW_AREA_ADDR 0x40000
793#define FA_VPD_NVRAM_ADDR 0x48000 796#define FA_VPD_NVRAM_ADDR 0x48000
794#define FA_FEATURE_ADDR 0x4C000 797#define FA_FEATURE_ADDR 0x4C000
795#define FA_FLASH_DESCR_ADDR 0x50000 798#define FA_FLASH_DESCR_ADDR 0x50000
799#define FA_FLASH_LAYOUT_ADDR 0x50400
796#define FA_HW_EVENT0_ADDR 0x54000 800#define FA_HW_EVENT0_ADDR 0x54000
797#define FA_HW_EVENT1_ADDR 0x54200 801#define FA_HW_EVENT1_ADDR 0x54400
798#define FA_HW_EVENT_SIZE 0x200 802#define FA_HW_EVENT_SIZE 0x200
799#define FA_HW_EVENT_ENTRY_SIZE 4 803#define FA_HW_EVENT_ENTRY_SIZE 4
800/* 804/*
@@ -806,10 +810,6 @@ struct device_reg_24xx {
806#define HW_EVENT_NVRAM_CHKSUM_ERR 0xF023 810#define HW_EVENT_NVRAM_CHKSUM_ERR 0xF023
807#define HW_EVENT_FLASH_FW_ERR 0xF024 811#define HW_EVENT_FLASH_FW_ERR 0xF024
808 812
809#define FA_BOOT_LOG_ADDR 0x58000
810#define FA_FW_DUMP0_ADDR 0x60000
811#define FA_FW_DUMP1_ADDR 0x70000
812
813 uint32_t flash_data; /* Flash/NVRAM BIOS data. */ 813 uint32_t flash_data; /* Flash/NVRAM BIOS data. */
814 814
815 uint32_t ctrl_status; /* Control/Status. */ 815 uint32_t ctrl_status; /* Control/Status. */
@@ -1203,6 +1203,41 @@ struct qla_fdt_layout {
1203 uint8_t unused2[65]; 1203 uint8_t unused2[65];
1204}; 1204};
1205 1205
1206/* Flash Layout Table ********************************************************/
1207
1208struct qla_flt_location {
1209 uint8_t sig[4];
1210 uint32_t start_lo;
1211 uint32_t start_hi;
1212 uint16_t unused;
1213 uint16_t checksum;
1214};
1215
1216struct qla_flt_header {
1217 uint16_t version;
1218 uint16_t length;
1219 uint16_t checksum;
1220 uint16_t unused;
1221};
1222
1223#define FLT_REG_FW 0x01
1224#define FLT_REG_BOOT_CODE 0x07
1225#define FLT_REG_VPD_0 0x14
1226#define FLT_REG_NVRAM_0 0x15
1227#define FLT_REG_VPD_1 0x16
1228#define FLT_REG_NVRAM_1 0x17
1229#define FLT_REG_FDT 0x1a
1230#define FLT_REG_FLT 0x1c
1231#define FLT_REG_HW_EVENT_0 0x1d
1232#define FLT_REG_HW_EVENT_1 0x1f
1233
1234struct qla_flt_region {
1235 uint32_t code;
1236 uint32_t size;
1237 uint32_t start;
1238 uint32_t end;
1239};
1240
1206/* 84XX Support **************************************************************/ 1241/* 84XX Support **************************************************************/
1207 1242
1208#define MBA_ISP84XX_ALERT 0x800f /* Alert Notification. */ 1243#define MBA_ISP84XX_ALERT 0x800f /* Alert Notification. */