diff options
Diffstat (limited to 'drivers/message/fusion')
| -rw-r--r-- | drivers/message/fusion/lsi/mpi.h | 7 | ||||
| -rw-r--r-- | drivers/message/fusion/lsi/mpi_cnfg.h | 47 | ||||
| -rw-r--r-- | drivers/message/fusion/lsi/mpi_fc.h | 2 | ||||
| -rw-r--r-- | drivers/message/fusion/lsi/mpi_history.txt | 86 | ||||
| -rw-r--r-- | drivers/message/fusion/lsi/mpi_init.h | 2 | ||||
| -rw-r--r-- | drivers/message/fusion/lsi/mpi_ioc.h | 22 | ||||
| -rw-r--r-- | drivers/message/fusion/lsi/mpi_lan.h | 2 | ||||
| -rw-r--r-- | drivers/message/fusion/lsi/mpi_log_fc.h | 2 | ||||
| -rw-r--r-- | drivers/message/fusion/lsi/mpi_log_sas.h | 37 | ||||
| -rw-r--r-- | drivers/message/fusion/lsi/mpi_raid.h | 11 | ||||
| -rw-r--r-- | drivers/message/fusion/lsi/mpi_sas.h | 18 | ||||
| -rw-r--r-- | drivers/message/fusion/lsi/mpi_targ.h | 2 | ||||
| -rw-r--r-- | drivers/message/fusion/lsi/mpi_tool.h | 2 | ||||
| -rw-r--r-- | drivers/message/fusion/lsi/mpi_type.h | 4 | ||||
| -rw-r--r-- | drivers/message/fusion/mptbase.c | 87 | ||||
| -rw-r--r-- | drivers/message/fusion/mptbase.h | 3 | ||||
| -rw-r--r-- | drivers/message/fusion/mptscsih.c | 3 |
17 files changed, 271 insertions, 66 deletions
diff --git a/drivers/message/fusion/lsi/mpi.h b/drivers/message/fusion/lsi/mpi.h index 10b6ef758725..11c0f461320e 100644 --- a/drivers/message/fusion/lsi/mpi.h +++ b/drivers/message/fusion/lsi/mpi.h | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | * Title: MPI Message independent structures and definitions | 6 | * Title: MPI Message independent structures and definitions |
| 7 | * Creation Date: July 27, 2000 | 7 | * Creation Date: July 27, 2000 |
| 8 | * | 8 | * |
| 9 | * mpi.h Version: 01.05.13 | 9 | * mpi.h Version: 01.05.16 |
| 10 | * | 10 | * |
| 11 | * Version History | 11 | * Version History |
| 12 | * --------------- | 12 | * --------------- |
| @@ -79,6 +79,9 @@ | |||
| 79 | * 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT. | 79 | * 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT. |
| 80 | * 10-11-06 01.05.12 Bumped MPI_HEADER_VERSION_UNIT. | 80 | * 10-11-06 01.05.12 Bumped MPI_HEADER_VERSION_UNIT. |
| 81 | * 05-24-07 01.05.13 Bumped MPI_HEADER_VERSION_UNIT. | 81 | * 05-24-07 01.05.13 Bumped MPI_HEADER_VERSION_UNIT. |
| 82 | * 08-07-07 01.05.14 Bumped MPI_HEADER_VERSION_UNIT. | ||
| 83 | * 01-15-08 01.05.15 Bumped MPI_HEADER_VERSION_UNIT. | ||
| 84 | * 03-28-08 01.05.16 Bumped MPI_HEADER_VERSION_UNIT. | ||
| 82 | * -------------------------------------------------------------------------- | 85 | * -------------------------------------------------------------------------- |
| 83 | */ | 86 | */ |
| 84 | 87 | ||
| @@ -109,7 +112,7 @@ | |||
| 109 | /* Note: The major versions of 0xe0 through 0xff are reserved */ | 112 | /* Note: The major versions of 0xe0 through 0xff are reserved */ |
| 110 | 113 | ||
| 111 | /* versioning for this MPI header set */ | 114 | /* versioning for this MPI header set */ |
| 112 | #define MPI_HEADER_VERSION_UNIT (0x10) | 115 | #define MPI_HEADER_VERSION_UNIT (0x13) |
| 113 | #define MPI_HEADER_VERSION_DEV (0x00) | 116 | #define MPI_HEADER_VERSION_DEV (0x00) |
| 114 | #define MPI_HEADER_VERSION_UNIT_MASK (0xFF00) | 117 | #define MPI_HEADER_VERSION_UNIT_MASK (0xFF00) |
| 115 | #define MPI_HEADER_VERSION_UNIT_SHIFT (8) | 118 | #define MPI_HEADER_VERSION_UNIT_SHIFT (8) |
diff --git a/drivers/message/fusion/lsi/mpi_cnfg.h b/drivers/message/fusion/lsi/mpi_cnfg.h index b2db3330c591..013c7d881948 100644 --- a/drivers/message/fusion/lsi/mpi_cnfg.h +++ b/drivers/message/fusion/lsi/mpi_cnfg.h | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | * Title: MPI Config message, structures, and Pages | 6 | * Title: MPI Config message, structures, and Pages |
| 7 | * Creation Date: July 27, 2000 | 7 | * Creation Date: July 27, 2000 |
| 8 | * | 8 | * |
| 9 | * mpi_cnfg.h Version: 01.05.15 | 9 | * mpi_cnfg.h Version: 01.05.18 |
| 10 | * | 10 | * |
| 11 | * Version History | 11 | * Version History |
| 12 | * --------------- | 12 | * --------------- |
| @@ -308,6 +308,20 @@ | |||
| 308 | * Expander Page 0 Flags field. | 308 | * Expander Page 0 Flags field. |
| 309 | * Fixed define for | 309 | * Fixed define for |
| 310 | * MPI_SAS_EXPANDER1_DISCINFO_BAD_PHY_DISABLED. | 310 | * MPI_SAS_EXPANDER1_DISCINFO_BAD_PHY_DISABLED. |
| 311 | * 08-07-07 01.05.16 Added MPI_IOCPAGE6_CAP_FLAGS_MULTIPORT_DRIVE_SUPPORT | ||
| 312 | * define. | ||
| 313 | * Added BIOS Page 4 structure. | ||
| 314 | * Added MPI_RAID_PHYS_DISK1_PATH_MAX define for RAID | ||
| 315 | * Physcial Disk Page 1. | ||
| 316 | * 01-15-07 01.05.17 Added additional bit defines for ExtFlags field of | ||
| 317 | * Manufacturing Page 4. | ||
| 318 | * Added Solid State Drives Supported bit to IOC Page 6 | ||
| 319 | * Capabilities Flags. | ||
| 320 | * Added new value for AccessStatus field of SAS Device | ||
| 321 | * Page 0 (_SATA_NEEDS_INITIALIZATION). | ||
| 322 | * 03-28-08 01.05.18 Defined new bits in Manufacturing Page 4 ExtFlags field | ||
| 323 | * to control coercion size and the mixing of SAS and SATA | ||
| 324 | * SSD drives. | ||
| 311 | * -------------------------------------------------------------------------- | 325 | * -------------------------------------------------------------------------- |
| 312 | */ | 326 | */ |
| 313 | 327 | ||
| @@ -686,6 +700,14 @@ typedef struct _CONFIG_PAGE_MANUFACTURING_4 | |||
| 686 | #define MPI_MANPAGE4_IR_NO_MIX_SAS_SATA (0x01) | 700 | #define MPI_MANPAGE4_IR_NO_MIX_SAS_SATA (0x01) |
| 687 | 701 | ||
| 688 | /* defines for the ExtFlags field */ | 702 | /* defines for the ExtFlags field */ |
| 703 | #define MPI_MANPAGE4_EXTFLAGS_MASK_COERCION_SIZE (0x0180) | ||
| 704 | #define MPI_MANPAGE4_EXTFLAGS_SHIFT_COERCION_SIZE (7) | ||
| 705 | #define MPI_MANPAGE4_EXTFLAGS_1GB_COERCION_SIZE (0) | ||
| 706 | #define MPI_MANPAGE4_EXTFLAGS_128MB_COERCION_SIZE (1) | ||
| 707 | |||
| 708 | #define MPI_MANPAGE4_EXTFLAGS_NO_MIX_SSD_SAS_SATA (0x0040) | ||
| 709 | #define MPI_MANPAGE4_EXTFLAGS_MIX_SSD_AND_NON_SSD (0x0020) | ||
| 710 | #define MPI_MANPAGE4_EXTFLAGS_DUAL_PORT_SUPPORT (0x0010) | ||
| 689 | #define MPI_MANPAGE4_EXTFLAGS_HIDE_NON_IR_METADATA (0x0008) | 711 | #define MPI_MANPAGE4_EXTFLAGS_HIDE_NON_IR_METADATA (0x0008) |
| 690 | #define MPI_MANPAGE4_EXTFLAGS_SAS_CACHE_DISABLE (0x0004) | 712 | #define MPI_MANPAGE4_EXTFLAGS_SAS_CACHE_DISABLE (0x0004) |
| 691 | #define MPI_MANPAGE4_EXTFLAGS_SATA_CACHE_DISABLE (0x0002) | 713 | #define MPI_MANPAGE4_EXTFLAGS_SATA_CACHE_DISABLE (0x0002) |
| @@ -1159,6 +1181,8 @@ typedef struct _CONFIG_PAGE_IOC_6 | |||
| 1159 | 1181 | ||
| 1160 | /* IOC Page 6 Capabilities Flags */ | 1182 | /* IOC Page 6 Capabilities Flags */ |
| 1161 | 1183 | ||
| 1184 | #define MPI_IOCPAGE6_CAP_FLAGS_SSD_SUPPORT (0x00000020) | ||
| 1185 | #define MPI_IOCPAGE6_CAP_FLAGS_MULTIPORT_DRIVE_SUPPORT (0x00000010) | ||
| 1162 | #define MPI_IOCPAGE6_CAP_FLAGS_DISABLE_SMART_POLLING (0x00000008) | 1186 | #define MPI_IOCPAGE6_CAP_FLAGS_DISABLE_SMART_POLLING (0x00000008) |
| 1163 | 1187 | ||
| 1164 | #define MPI_IOCPAGE6_CAP_FLAGS_MASK_METADATA_SIZE (0x00000006) | 1188 | #define MPI_IOCPAGE6_CAP_FLAGS_MASK_METADATA_SIZE (0x00000006) |
| @@ -1428,6 +1452,15 @@ typedef struct _CONFIG_PAGE_BIOS_2 | |||
| 1428 | #define MPI_BIOSPAGE2_FORM_SAS_WWN (0x05) | 1452 | #define MPI_BIOSPAGE2_FORM_SAS_WWN (0x05) |
| 1429 | #define MPI_BIOSPAGE2_FORM_ENCLOSURE_SLOT (0x06) | 1453 | #define MPI_BIOSPAGE2_FORM_ENCLOSURE_SLOT (0x06) |
| 1430 | 1454 | ||
| 1455 | typedef struct _CONFIG_PAGE_BIOS_4 | ||
| 1456 | { | ||
| 1457 | CONFIG_PAGE_HEADER Header; /* 00h */ | ||
| 1458 | U64 ReassignmentBaseWWID; /* 04h */ | ||
| 1459 | } CONFIG_PAGE_BIOS_4, MPI_POINTER PTR_CONFIG_PAGE_BIOS_4, | ||
| 1460 | BIOSPage4_t, MPI_POINTER pBIOSPage4_t; | ||
| 1461 | |||
| 1462 | #define MPI_BIOSPAGE4_PAGEVERSION (0x00) | ||
| 1463 | |||
| 1431 | 1464 | ||
| 1432 | /**************************************************************************** | 1465 | /**************************************************************************** |
| 1433 | * SCSI Port Config Pages | 1466 | * SCSI Port Config Pages |
| @@ -2419,6 +2452,15 @@ typedef struct _RAID_PHYS_DISK1_PATH | |||
| 2419 | #define MPI_RAID_PHYSDISK1_FLAG_BROKEN (0x0002) | 2452 | #define MPI_RAID_PHYSDISK1_FLAG_BROKEN (0x0002) |
| 2420 | #define MPI_RAID_PHYSDISK1_FLAG_INVALID (0x0001) | 2453 | #define MPI_RAID_PHYSDISK1_FLAG_INVALID (0x0001) |
| 2421 | 2454 | ||
| 2455 | |||
| 2456 | /* | ||
| 2457 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | ||
| 2458 | * one and check Header.PageLength or NumPhysDiskPaths at runtime. | ||
| 2459 | */ | ||
| 2460 | #ifndef MPI_RAID_PHYS_DISK1_PATH_MAX | ||
| 2461 | #define MPI_RAID_PHYS_DISK1_PATH_MAX (1) | ||
| 2462 | #endif | ||
| 2463 | |||
| 2422 | typedef struct _CONFIG_PAGE_RAID_PHYS_DISK_1 | 2464 | typedef struct _CONFIG_PAGE_RAID_PHYS_DISK_1 |
| 2423 | { | 2465 | { |
| 2424 | CONFIG_PAGE_HEADER Header; /* 00h */ | 2466 | CONFIG_PAGE_HEADER Header; /* 00h */ |
| @@ -2426,7 +2468,7 @@ typedef struct _CONFIG_PAGE_RAID_PHYS_DISK_1 | |||
| 2426 | U8 PhysDiskNum; /* 05h */ | 2468 | U8 PhysDiskNum; /* 05h */ |
| 2427 | U16 Reserved2; /* 06h */ | 2469 | U16 Reserved2; /* 06h */ |
| 2428 | U32 Reserved1; /* 08h */ | 2470 | U32 Reserved1; /* 08h */ |
| 2429 | RAID_PHYS_DISK1_PATH Path[1]; /* 0Ch */ | 2471 | RAID_PHYS_DISK1_PATH Path[MPI_RAID_PHYS_DISK1_PATH_MAX];/* 0Ch */ |
| 2430 | } CONFIG_PAGE_RAID_PHYS_DISK_1, MPI_POINTER PTR_CONFIG_PAGE_RAID_PHYS_DISK_1, | 2472 | } CONFIG_PAGE_RAID_PHYS_DISK_1, MPI_POINTER PTR_CONFIG_PAGE_RAID_PHYS_DISK_1, |
| 2431 | RaidPhysDiskPage1_t, MPI_POINTER pRaidPhysDiskPage1_t; | 2473 | RaidPhysDiskPage1_t, MPI_POINTER pRaidPhysDiskPage1_t; |
| 2432 | 2474 | ||
| @@ -2844,6 +2886,7 @@ typedef struct _CONFIG_PAGE_SAS_DEVICE_0 | |||
| 2844 | #define MPI_SAS_DEVICE0_ASTATUS_SATA_INIT_FAILED (0x01) | 2886 | #define MPI_SAS_DEVICE0_ASTATUS_SATA_INIT_FAILED (0x01) |
| 2845 | #define MPI_SAS_DEVICE0_ASTATUS_SATA_CAPABILITY_FAILED (0x02) | 2887 | #define MPI_SAS_DEVICE0_ASTATUS_SATA_CAPABILITY_FAILED (0x02) |
| 2846 | #define MPI_SAS_DEVICE0_ASTATUS_SATA_AFFILIATION_CONFLICT (0x03) | 2888 | #define MPI_SAS_DEVICE0_ASTATUS_SATA_AFFILIATION_CONFLICT (0x03) |
| 2889 | #define MPI_SAS_DEVICE0_ASTATUS_SATA_NEEDS_INITIALIZATION (0x04) | ||
| 2847 | /* specific values for SATA Init failures */ | 2890 | /* specific values for SATA Init failures */ |
| 2848 | #define MPI_SAS_DEVICE0_ASTATUS_SIF_UNKNOWN (0x10) | 2891 | #define MPI_SAS_DEVICE0_ASTATUS_SIF_UNKNOWN (0x10) |
| 2849 | #define MPI_SAS_DEVICE0_ASTATUS_SIF_AFFILIATION_CONFLICT (0x11) | 2892 | #define MPI_SAS_DEVICE0_ASTATUS_SIF_AFFILIATION_CONFLICT (0x11) |
diff --git a/drivers/message/fusion/lsi/mpi_fc.h b/drivers/message/fusion/lsi/mpi_fc.h index 627acfbb8623..7d663ce76f8c 100644 --- a/drivers/message/fusion/lsi/mpi_fc.h +++ b/drivers/message/fusion/lsi/mpi_fc.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2000-2004 LSI Corporation. | 2 | * Copyright (c) 2000-2008 LSI Corporation. |
| 3 | * | 3 | * |
| 4 | * | 4 | * |
| 5 | * Name: mpi_fc.h | 5 | * Name: mpi_fc.h |
diff --git a/drivers/message/fusion/lsi/mpi_history.txt b/drivers/message/fusion/lsi/mpi_history.txt index 3f15fcfe4a2e..693e4b511354 100644 --- a/drivers/message/fusion/lsi/mpi_history.txt +++ b/drivers/message/fusion/lsi/mpi_history.txt | |||
| @@ -3,28 +3,28 @@ | |||
| 3 | MPI Header File Change History | 3 | MPI Header File Change History |
| 4 | ============================== | 4 | ============================== |
| 5 | 5 | ||
| 6 | Copyright (c) 2000-2007 LSI Corporation. | 6 | Copyright (c) 2000-2008 LSI Corporation. |
| 7 | 7 | ||
| 8 | --------------------------------------- | 8 | --------------------------------------- |
| 9 | Header Set Release Version: 01.05.16 | 9 | Header Set Release Version: 01.05.19 |
| 10 | Header Set Release Date: 05-24-07 | 10 | Header Set Release Date: 03-28-08 |
| 11 | --------------------------------------- | 11 | --------------------------------------- |
| 12 | 12 | ||
| 13 | Filename Current version Prior version | 13 | Filename Current version Prior version |
| 14 | ---------- --------------- ------------- | 14 | ---------- --------------- ------------- |
| 15 | mpi.h 01.05.13 01.05.12 | 15 | mpi.h 01.05.16 01.05.15 |
| 16 | mpi_ioc.h 01.05.14 01.05.13 | 16 | mpi_ioc.h 01.05.16 01.05.15 |
| 17 | mpi_cnfg.h 01.05.15 01.05.14 | 17 | mpi_cnfg.h 01.05.18 01.05.17 |
| 18 | mpi_init.h 01.05.09 01.05.09 | 18 | mpi_init.h 01.05.09 01.05.09 |
| 19 | mpi_targ.h 01.05.06 01.05.06 | 19 | mpi_targ.h 01.05.06 01.05.06 |
| 20 | mpi_fc.h 01.05.01 01.05.01 | 20 | mpi_fc.h 01.05.01 01.05.01 |
| 21 | mpi_lan.h 01.05.01 01.05.01 | 21 | mpi_lan.h 01.05.01 01.05.01 |
| 22 | mpi_raid.h 01.05.03 01.05.03 | 22 | mpi_raid.h 01.05.05 01.05.05 |
| 23 | mpi_tool.h 01.05.03 01.05.03 | 23 | mpi_tool.h 01.05.03 01.05.03 |
| 24 | mpi_inb.h 01.05.01 01.05.01 | 24 | mpi_inb.h 01.05.01 01.05.01 |
| 25 | mpi_sas.h 01.05.04 01.05.04 | 25 | mpi_sas.h 01.05.05 01.05.05 |
| 26 | mpi_type.h 01.05.02 01.05.02 | 26 | mpi_type.h 01.05.02 01.05.02 |
| 27 | mpi_history.txt 01.05.14 01.05.14 | 27 | mpi_history.txt 01.05.19 01.05.18 |
| 28 | 28 | ||
| 29 | 29 | ||
| 30 | * Date Version Description | 30 | * Date Version Description |
| @@ -96,6 +96,9 @@ mpi.h | |||
| 96 | * 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT. | 96 | * 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT. |
| 97 | * 10-11-06 01.05.12 Bumped MPI_HEADER_VERSION_UNIT. | 97 | * 10-11-06 01.05.12 Bumped MPI_HEADER_VERSION_UNIT. |
| 98 | * 05-24-07 01.05.13 Bumped MPI_HEADER_VERSION_UNIT. | 98 | * 05-24-07 01.05.13 Bumped MPI_HEADER_VERSION_UNIT. |
| 99 | * 08-07-07 01.05.14 Bumped MPI_HEADER_VERSION_UNIT. | ||
| 100 | * 01-15-08 01.05.15 Bumped MPI_HEADER_VERSION_UNIT. | ||
| 101 | * 03-28-08 01.05.16 Bumped MPI_HEADER_VERSION_UNIT. | ||
| 99 | * -------------------------------------------------------------------------- | 102 | * -------------------------------------------------------------------------- |
| 100 | 103 | ||
| 101 | mpi_ioc.h | 104 | mpi_ioc.h |
| @@ -127,7 +130,7 @@ mpi_ioc.h | |||
| 127 | * 08-08-01 01.02.01 Original release for v1.2 work. | 130 | * 08-08-01 01.02.01 Original release for v1.2 work. |
| 128 | * New format for FWVersion and ProductId in | 131 | * New format for FWVersion and ProductId in |
| 129 | * MSG_IOC_FACTS_REPLY and MPI_FW_HEADER. | 132 | * MSG_IOC_FACTS_REPLY and MPI_FW_HEADER. |
| 130 | * 08-31-01 01.02.02 Added event MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE and | 133 | * 08-31-01 01.02.02 Addded event MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE and |
| 131 | * related structure and defines. | 134 | * related structure and defines. |
| 132 | * Added event MPI_EVENT_ON_BUS_TIMER_EXPIRED. | 135 | * Added event MPI_EVENT_ON_BUS_TIMER_EXPIRED. |
| 133 | * Added MPI_IOCINIT_FLAGS_DISCARD_FW_IMAGE. | 136 | * Added MPI_IOCINIT_FLAGS_DISCARD_FW_IMAGE. |
| @@ -187,7 +190,7 @@ mpi_ioc.h | |||
| 187 | * 10-11-06 01.05.12 Added MPI_IOCFACTS_EXCEPT_METADATA_UNSUPPORTED. | 190 | * 10-11-06 01.05.12 Added MPI_IOCFACTS_EXCEPT_METADATA_UNSUPPORTED. |
| 188 | * Added MaxInitiators field to PortFacts reply. | 191 | * Added MaxInitiators field to PortFacts reply. |
| 189 | * Added SAS Device Status Change ReasonCode for | 192 | * Added SAS Device Status Change ReasonCode for |
| 190 | * asynchronous notification. | 193 | * asynchronous notificaiton. |
| 191 | * Added MPI_EVENT_SAS_EXPANDER_STATUS_CHANGE and event | 194 | * Added MPI_EVENT_SAS_EXPANDER_STATUS_CHANGE and event |
| 192 | * data structure. | 195 | * data structure. |
| 193 | * Added new ImageType values for FWDownload and FWUpload | 196 | * Added new ImageType values for FWDownload and FWUpload |
| @@ -199,6 +202,16 @@ mpi_ioc.h | |||
| 199 | * added _MULTI_PORT_DOMAIN. | 202 | * added _MULTI_PORT_DOMAIN. |
| 200 | * 05-24-07 01.05.14 Added Common Boot Block type to FWDownload Request. | 203 | * 05-24-07 01.05.14 Added Common Boot Block type to FWDownload Request. |
| 201 | * Added Common Boot Block type to FWUpload Request. | 204 | * Added Common Boot Block type to FWUpload Request. |
| 205 | * 08-07-07 01.05.15 Added MPI_EVENT_SAS_INIT_RC_REMOVED define. | ||
| 206 | * Added MPI_EVENT_IR2_RC_DUAL_PORT_ADDED and | ||
| 207 | * MPI_EVENT_IR2_RC_DUAL_PORT_REMOVED for IR2 event data. | ||
| 208 | * Added SASAddress field to SAS Initiator Device Table | ||
| 209 | * Overflow event data structure. | ||
| 210 | * 03-28-08 01.05.16 Added two new ReasonCode values to SAS Device Status | ||
| 211 | * Change Event data to indicate completion of internally | ||
| 212 | * generated task management. | ||
| 213 | * Added MPI_EVENT_DSCVRY_ERR_DS_SATA_INIT_FAILURE define. | ||
| 214 | * Added MPI_EVENT_SAS_INIT_RC_INACCESSIBLE define. | ||
| 202 | * -------------------------------------------------------------------------- | 215 | * -------------------------------------------------------------------------- |
| 203 | 216 | ||
| 204 | mpi_cnfg.h | 217 | mpi_cnfg.h |
| @@ -213,7 +226,7 @@ mpi_cnfg.h | |||
| 213 | * Added _RESPONSE_ID_MASK definition to SCSI_PORT_1 | 226 | * Added _RESPONSE_ID_MASK definition to SCSI_PORT_1 |
| 214 | * page and updated the page version. | 227 | * page and updated the page version. |
| 215 | * Added Information field and _INFO_PARAMS_NEGOTIATED | 228 | * Added Information field and _INFO_PARAMS_NEGOTIATED |
| 216 | * definition to SCSI_DEVICE_0 page. | 229 | * definitionto SCSI_DEVICE_0 page. |
| 217 | * 06-22-00 01.00.03 Removed batch controls from LAN_0 page and updated the | 230 | * 06-22-00 01.00.03 Removed batch controls from LAN_0 page and updated the |
| 218 | * page version. | 231 | * page version. |
| 219 | * Added BucketsRemaining to LAN_1 page, redefined the | 232 | * Added BucketsRemaining to LAN_1 page, redefined the |
| @@ -496,6 +509,20 @@ mpi_cnfg.h | |||
| 496 | * Expander Page 0 Flags field. | 509 | * Expander Page 0 Flags field. |
| 497 | * Fixed define for | 510 | * Fixed define for |
| 498 | * MPI_SAS_EXPANDER1_DISCINFO_BAD_PHY_DISABLED. | 511 | * MPI_SAS_EXPANDER1_DISCINFO_BAD_PHY_DISABLED. |
| 512 | * 08-07-07 01.05.16 Added MPI_IOCPAGE6_CAP_FLAGS_MULTIPORT_DRIVE_SUPPORT | ||
| 513 | * define. | ||
| 514 | * Added BIOS Page 4 structure. | ||
| 515 | * Added MPI_RAID_PHYS_DISK1_PATH_MAX define for RAID | ||
| 516 | * Physcial Disk Page 1. | ||
| 517 | * 01-15-07 01.05.17 Added additional bit defines for ExtFlags field of | ||
| 518 | * Manufacturing Page 4. | ||
| 519 | * Added Solid State Drives Supported bit to IOC Page 6 | ||
| 520 | * Capabilities Flags. | ||
| 521 | * Added new value for AccessStatus field of SAS Device | ||
| 522 | * Page 0 (_SATA_NEEDS_INITIALIZATION). | ||
| 523 | * 03-28-08 01.05.18 Defined new bits in Manufacturing Page 4 ExtFlags field | ||
| 524 | * to control coercion size and the mixing of SAS and SATA | ||
| 525 | * SSD drives. | ||
| 499 | * -------------------------------------------------------------------------- | 526 | * -------------------------------------------------------------------------- |
| 500 | 527 | ||
| 501 | mpi_init.h | 528 | mpi_init.h |
| @@ -661,6 +688,9 @@ mpi_raid.h | |||
| 661 | * _SET_RESYNC_RATE and _SET_DATA_SCRUB_RATE. | 688 | * _SET_RESYNC_RATE and _SET_DATA_SCRUB_RATE. |
| 662 | * 02-28-07 01.05.03 Added new RAID Action, Device FW Update Mode, and | 689 | * 02-28-07 01.05.03 Added new RAID Action, Device FW Update Mode, and |
| 663 | * associated defines. | 690 | * associated defines. |
| 691 | * 08-07-07 01.05.04 Added Disable Full Rebuild bit to the ActionDataWord | ||
| 692 | * for the RAID Action MPI_RAID_ACTION_DISABLE_VOLUME. | ||
| 693 | * 01-15-08 01.05.05 Added define for MPI_RAID_ACTION_SET_VOLUME_NAME. | ||
| 664 | * -------------------------------------------------------------------------- | 694 | * -------------------------------------------------------------------------- |
| 665 | 695 | ||
| 666 | mpi_tool.h | 696 | mpi_tool.h |
| @@ -694,6 +724,10 @@ mpi_sas.h | |||
| 694 | * reply. | 724 | * reply. |
| 695 | * 10-11-06 01.05.04 Fixed the name of a define for Operation field of SAS IO | 725 | * 10-11-06 01.05.04 Fixed the name of a define for Operation field of SAS IO |
| 696 | * Unit Control request. | 726 | * Unit Control request. |
| 727 | * 01-15-08 01.05.05 Added support for MPI_SAS_OP_SET_IOC_PARAMETER, | ||
| 728 | * including adding IOCParameter and IOCParameter value | ||
| 729 | * fields to SAS IO Unit Control Request. | ||
| 730 | * Added MPI_SAS_DEVICE_INFO_PRODUCT_SPECIFIC define. | ||
| 697 | * -------------------------------------------------------------------------- | 731 | * -------------------------------------------------------------------------- |
| 698 | 732 | ||
| 699 | mpi_type.h | 733 | mpi_type.h |
| @@ -709,20 +743,20 @@ mpi_type.h | |||
| 709 | 743 | ||
| 710 | mpi_history.txt Parts list history | 744 | mpi_history.txt Parts list history |
| 711 | 745 | ||
| 712 | Filename 01.05.15 01.05.15 | 746 | Filename 01.05.19 01.05.18 01.05.17 01.05.16 01.05.15 |
| 713 | ---------- -------- -------- | 747 | ---------- -------- -------- -------- -------- -------- |
| 714 | mpi.h 01.05.12 01.05.13 | 748 | mpi.h 01.05.16 01.05.15 01.05.14 01.05.13 01.05.12 |
| 715 | mpi_ioc.h 01.05.13 01.05.14 | 749 | mpi_ioc.h 01.05.16 01.05.15 01.05.15 01.05.14 01.05.13 |
| 716 | mpi_cnfg.h 01.05.14 01.05.15 | 750 | mpi_cnfg.h 01.05.18 01.05.17 01.05.16 01.05.15 01.05.14 |
| 717 | mpi_init.h 01.05.09 01.05.09 | 751 | mpi_init.h 01.05.09 01.05.09 01.05.09 01.05.09 01.05.09 |
| 718 | mpi_targ.h 01.05.06 01.05.06 | 752 | mpi_targ.h 01.05.06 01.05.06 01.05.06 01.05.06 01.05.06 |
| 719 | mpi_fc.h 01.05.01 01.05.01 | 753 | mpi_fc.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 |
| 720 | mpi_lan.h 01.05.01 01.05.01 | 754 | mpi_lan.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 |
| 721 | mpi_raid.h 01.05.03 01.05.03 | 755 | mpi_raid.h 01.05.05 01.05.05 01.05.04 01.05.03 01.05.03 |
| 722 | mpi_tool.h 01.05.03 01.05.03 | 756 | mpi_tool.h 01.05.03 01.05.03 01.05.03 01.05.03 01.05.03 |
| 723 | mpi_inb.h 01.05.01 01.05.01 | 757 | mpi_inb.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 |
| 724 | mpi_sas.h 01.05.04 01.05.04 | 758 | mpi_sas.h 01.05.05 01.05.05 01.05.04 01.05.04 01.05.04 |
| 725 | mpi_type.h 01.05.02 01.05.02 | 759 | mpi_type.h 01.05.02 01.05.02 01.05.02 01.05.02 01.05.02 |
| 726 | 760 | ||
| 727 | Filename 01.05.14 01.05.13 01.05.12 01.05.11 01.05.10 01.05.09 | 761 | Filename 01.05.14 01.05.13 01.05.12 01.05.11 01.05.10 01.05.09 |
| 728 | ---------- -------- -------- -------- -------- -------- -------- | 762 | ---------- -------- -------- -------- -------- -------- -------- |
diff --git a/drivers/message/fusion/lsi/mpi_init.h b/drivers/message/fusion/lsi/mpi_init.h index a9e3693601a7..4295d062caa7 100644 --- a/drivers/message/fusion/lsi/mpi_init.h +++ b/drivers/message/fusion/lsi/mpi_init.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2000-2007 LSI Corporation. | 2 | * Copyright (c) 2000-2008 LSI Corporation. |
| 3 | * | 3 | * |
| 4 | * | 4 | * |
| 5 | * Name: mpi_init.h | 5 | * Name: mpi_init.h |
diff --git a/drivers/message/fusion/lsi/mpi_ioc.h b/drivers/message/fusion/lsi/mpi_ioc.h index 5cbb6bd048e1..8faa4fab7b89 100644 --- a/drivers/message/fusion/lsi/mpi_ioc.h +++ b/drivers/message/fusion/lsi/mpi_ioc.h | |||
| @@ -1,12 +1,12 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2000-2007 LSI Corporation. | 2 | * Copyright (c) 2000-2008 LSI Corporation. |
| 3 | * | 3 | * |
| 4 | * | 4 | * |
| 5 | * Name: mpi_ioc.h | 5 | * Name: mpi_ioc.h |
| 6 | * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages | 6 | * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages |
| 7 | * Creation Date: August 11, 2000 | 7 | * Creation Date: August 11, 2000 |
| 8 | * | 8 | * |
| 9 | * mpi_ioc.h Version: 01.05.14 | 9 | * mpi_ioc.h Version: 01.05.16 |
| 10 | * | 10 | * |
| 11 | * Version History | 11 | * Version History |
| 12 | * --------------- | 12 | * --------------- |
| @@ -113,6 +113,16 @@ | |||
| 113 | * added _MULTI_PORT_DOMAIN. | 113 | * added _MULTI_PORT_DOMAIN. |
| 114 | * 05-24-07 01.05.14 Added Common Boot Block type to FWDownload Request. | 114 | * 05-24-07 01.05.14 Added Common Boot Block type to FWDownload Request. |
| 115 | * Added Common Boot Block type to FWUpload Request. | 115 | * Added Common Boot Block type to FWUpload Request. |
| 116 | * 08-07-07 01.05.15 Added MPI_EVENT_SAS_INIT_RC_REMOVED define. | ||
| 117 | * Added MPI_EVENT_IR2_RC_DUAL_PORT_ADDED and | ||
| 118 | * MPI_EVENT_IR2_RC_DUAL_PORT_REMOVED for IR2 event data. | ||
| 119 | * Added SASAddress field to SAS Initiator Device Table | ||
| 120 | * Overflow event data structure. | ||
| 121 | * 03-28-08 01.05.16 Added two new ReasonCode values to SAS Device Status | ||
| 122 | * Change Event data to indicate completion of internally | ||
| 123 | * generated task management. | ||
| 124 | * Added MPI_EVENT_DSCVRY_ERR_DS_SATA_INIT_FAILURE define. | ||
| 125 | * Added MPI_EVENT_SAS_INIT_RC_INACCESSIBLE define. | ||
| 116 | * -------------------------------------------------------------------------- | 126 | * -------------------------------------------------------------------------- |
| 117 | */ | 127 | */ |
| 118 | 128 | ||
| @@ -612,6 +622,8 @@ typedef struct _EVENT_DATA_SAS_DEVICE_STATUS_CHANGE | |||
| 612 | #define MPI_EVENT_SAS_DEV_STAT_RC_CLEAR_TASK_SET_INTERNAL (0x0B) | 622 | #define MPI_EVENT_SAS_DEV_STAT_RC_CLEAR_TASK_SET_INTERNAL (0x0B) |
| 613 | #define MPI_EVENT_SAS_DEV_STAT_RC_QUERY_TASK_INTERNAL (0x0C) | 623 | #define MPI_EVENT_SAS_DEV_STAT_RC_QUERY_TASK_INTERNAL (0x0C) |
| 614 | #define MPI_EVENT_SAS_DEV_STAT_RC_ASYNC_NOTIFICATION (0x0D) | 624 | #define MPI_EVENT_SAS_DEV_STAT_RC_ASYNC_NOTIFICATION (0x0D) |
| 625 | #define MPI_EVENT_SAS_DEV_STAT_RC_CMPL_INTERNAL_DEV_RESET (0x0E) | ||
| 626 | #define MPI_EVENT_SAS_DEV_STAT_RC_CMPL_TASK_ABORT_INTERNAL (0x0F) | ||
| 615 | 627 | ||
| 616 | 628 | ||
| 617 | /* SCSI Event data for Queue Full event */ | 629 | /* SCSI Event data for Queue Full event */ |
| @@ -708,6 +720,8 @@ typedef struct _MPI_EVENT_DATA_IR2 | |||
| 708 | #define MPI_EVENT_IR2_RC_PD_REMOVED (0x05) | 720 | #define MPI_EVENT_IR2_RC_PD_REMOVED (0x05) |
| 709 | #define MPI_EVENT_IR2_RC_FOREIGN_CFG_DETECTED (0x06) | 721 | #define MPI_EVENT_IR2_RC_FOREIGN_CFG_DETECTED (0x06) |
| 710 | #define MPI_EVENT_IR2_RC_REBUILD_MEDIUM_ERROR (0x07) | 722 | #define MPI_EVENT_IR2_RC_REBUILD_MEDIUM_ERROR (0x07) |
| 723 | #define MPI_EVENT_IR2_RC_DUAL_PORT_ADDED (0x08) | ||
| 724 | #define MPI_EVENT_IR2_RC_DUAL_PORT_REMOVED (0x09) | ||
| 711 | 725 | ||
| 712 | /* defines for logical disk states */ | 726 | /* defines for logical disk states */ |
| 713 | #define MPI_LD_STATE_OPTIMAL (0x00) | 727 | #define MPI_LD_STATE_OPTIMAL (0x00) |
| @@ -867,6 +881,7 @@ typedef struct _EVENT_DATA_DISCOVERY_ERROR | |||
| 867 | #define MPI_EVENT_DSCVRY_ERR_DS_UNSUPPORTED_DEVICE (0x00000800) | 881 | #define MPI_EVENT_DSCVRY_ERR_DS_UNSUPPORTED_DEVICE (0x00000800) |
| 868 | #define MPI_EVENT_DSCVRY_ERR_DS_MAX_SATA_TARGETS (0x00001000) | 882 | #define MPI_EVENT_DSCVRY_ERR_DS_MAX_SATA_TARGETS (0x00001000) |
| 869 | #define MPI_EVENT_DSCVRY_ERR_DS_MULTI_PORT_DOMAIN (0x00002000) | 883 | #define MPI_EVENT_DSCVRY_ERR_DS_MULTI_PORT_DOMAIN (0x00002000) |
| 884 | #define MPI_EVENT_DSCVRY_ERR_DS_SATA_INIT_FAILURE (0x00004000) | ||
| 870 | 885 | ||
| 871 | /* SAS SMP Error Event data */ | 886 | /* SAS SMP Error Event data */ |
| 872 | 887 | ||
| @@ -902,6 +917,8 @@ typedef struct _EVENT_DATA_SAS_INIT_DEV_STATUS_CHANGE | |||
| 902 | 917 | ||
| 903 | /* defines for the ReasonCode field of the SAS Initiator Device Status Change event */ | 918 | /* defines for the ReasonCode field of the SAS Initiator Device Status Change event */ |
| 904 | #define MPI_EVENT_SAS_INIT_RC_ADDED (0x01) | 919 | #define MPI_EVENT_SAS_INIT_RC_ADDED (0x01) |
| 920 | #define MPI_EVENT_SAS_INIT_RC_REMOVED (0x02) | ||
| 921 | #define MPI_EVENT_SAS_INIT_RC_INACCESSIBLE (0x03) | ||
| 905 | 922 | ||
| 906 | /* SAS Initiator Device Table Overflow Event data */ | 923 | /* SAS Initiator Device Table Overflow Event data */ |
| 907 | 924 | ||
| @@ -910,6 +927,7 @@ typedef struct _EVENT_DATA_SAS_INIT_TABLE_OVERFLOW | |||
| 910 | U8 MaxInit; /* 00h */ | 927 | U8 MaxInit; /* 00h */ |
| 911 | U8 CurrentInit; /* 01h */ | 928 | U8 CurrentInit; /* 01h */ |
| 912 | U16 Reserved1; /* 02h */ | 929 | U16 Reserved1; /* 02h */ |
| 930 | U64 SASAddress; /* 04h */ | ||
| 913 | } EVENT_DATA_SAS_INIT_TABLE_OVERFLOW, | 931 | } EVENT_DATA_SAS_INIT_TABLE_OVERFLOW, |
| 914 | MPI_POINTER PTR_EVENT_DATA_SAS_INIT_TABLE_OVERFLOW, | 932 | MPI_POINTER PTR_EVENT_DATA_SAS_INIT_TABLE_OVERFLOW, |
| 915 | MpiEventDataSasInitTableOverflow_t, | 933 | MpiEventDataSasInitTableOverflow_t, |
diff --git a/drivers/message/fusion/lsi/mpi_lan.h b/drivers/message/fusion/lsi/mpi_lan.h index 03253b53b785..f41fcb69b359 100644 --- a/drivers/message/fusion/lsi/mpi_lan.h +++ b/drivers/message/fusion/lsi/mpi_lan.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2000-2004 LSI Corporation. | 2 | * Copyright (c) 2000-2008 LSI Corporation. |
| 3 | * | 3 | * |
| 4 | * | 4 | * |
| 5 | * Name: mpi_lan.h | 5 | * Name: mpi_lan.h |
diff --git a/drivers/message/fusion/lsi/mpi_log_fc.h b/drivers/message/fusion/lsi/mpi_log_fc.h index e4dafcefeecd..face6e7acc72 100644 --- a/drivers/message/fusion/lsi/mpi_log_fc.h +++ b/drivers/message/fusion/lsi/mpi_log_fc.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2000-2001 LSI Corporation. All rights reserved. | 2 | * Copyright (c) 2000-2008 LSI Corporation. All rights reserved. |
| 3 | * | 3 | * |
| 4 | * NAME: fc_log.h | 4 | * NAME: fc_log.h |
| 5 | * SUMMARY: MPI IocLogInfo definitions for the SYMFC9xx chips | 5 | * SUMMARY: MPI IocLogInfo definitions for the SYMFC9xx chips |
diff --git a/drivers/message/fusion/lsi/mpi_log_sas.h b/drivers/message/fusion/lsi/mpi_log_sas.h index af9da03e95e5..691620dbedd2 100644 --- a/drivers/message/fusion/lsi/mpi_log_sas.h +++ b/drivers/message/fusion/lsi/mpi_log_sas.h | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /*************************************************************************** | 1 | /*************************************************************************** |
| 2 | * * | 2 | * * |
| 3 | * Copyright 2003 LSI Corporation. All rights reserved. * | 3 | * Copyright (c) 2000-2008 LSI Corporation. All rights reserved. * |
| 4 | * * | 4 | * * |
| 5 | * Description * | 5 | * Description * |
| 6 | * ------------ * | 6 | * ------------ * |
| @@ -73,6 +73,8 @@ | |||
| 73 | #define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO (0x00070004) | 73 | #define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO (0x00070004) |
| 74 | #define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO_REQ (0x00070005) | 74 | #define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO_REQ (0x00070005) |
| 75 | 75 | ||
| 76 | #define IOP_LOGINFO_CODE_LOG_TIMESTAMP_EVENT (0x00080000) | ||
| 77 | |||
| 76 | /****************************************************************************/ | 78 | /****************************************************************************/ |
| 77 | /* PL LOGINFO_CODE defines, valid if IOC_LOGINFO_ORIGINATOR = PL */ | 79 | /* PL LOGINFO_CODE defines, valid if IOC_LOGINFO_ORIGINATOR = PL */ |
| 78 | /****************************************************************************/ | 80 | /****************************************************************************/ |
| @@ -92,7 +94,7 @@ | |||
| 92 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_OPEN_TIMEOUT_EXP (0x0000000C) | 94 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_OPEN_TIMEOUT_EXP (0x0000000C) |
| 93 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_UNUSED_0D (0x0000000D) | 95 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_UNUSED_0D (0x0000000D) |
| 94 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_DVTBLE_ACCSS_FAIL (0x0000000E) | 96 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_DVTBLE_ACCSS_FAIL (0x0000000E) |
| 95 | #define PL_LOGINFO_SUB CODE_OPEN_FAIL_BAD_DEST (0x00000011) | 97 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_BAD_DEST (0x00000011) |
| 96 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RATE_NOT_SUPP (0x00000012) | 98 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RATE_NOT_SUPP (0x00000012) |
| 97 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_PROT_NOT_SUPP (0x00000013) | 99 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_PROT_NOT_SUPP (0x00000013) |
| 98 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RESERVED_ABANDON0 (0x00000014) | 100 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RESERVED_ABANDON0 (0x00000014) |
| @@ -159,10 +161,11 @@ | |||
| 159 | 161 | ||
| 160 | #define PL_LOGINFO_SUB_CODE_INVALID_SGL (0x00000200) | 162 | #define PL_LOGINFO_SUB_CODE_INVALID_SGL (0x00000200) |
| 161 | #define PL_LOGINFO_SUB_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH (0x00000300) | 163 | #define PL_LOGINFO_SUB_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH (0x00000300) |
| 162 | #define PL_LOGINFO_SUB_CODE_FRAME_XFER_ERROR (0x00000400) /* Bits 0-3 encode Transport Status Register (offset 0x08) */ | 164 | #define PL_LOGINFO_SUB_CODE_FRAME_XFER_ERROR (0x00000400) |
| 163 | /* Bit 0 is Status Bit 0: FrameXferErr */ | 165 | /* Bits 0-3 encode Transport Status Register (offset 0x08) */ |
| 164 | /* Bit 1 & 2 are Status Bits 16 and 17: FrameXmitErrStatus */ | 166 | /* Bit 0 is Status Bit 0: FrameXferErr */ |
| 165 | /* Bit 3 is Status Bit 18 WriteDataLengthGTDataLengthErr */ | 167 | /* Bit 1 & 2 are Status Bits 16 and 17: FrameXmitErrStatus */ |
| 168 | /* Bit 3 is Status Bit 18 WriteDataLenghtGTDataLengthErr */ | ||
| 166 | 169 | ||
| 167 | #define PL_LOGINFO_SUB_CODE_TX_FM_CONNECTED_LOW (0x00000500) | 170 | #define PL_LOGINFO_SUB_CODE_TX_FM_CONNECTED_LOW (0x00000500) |
| 168 | #define PL_LOGINFO_SUB_CODE_SATA_NON_NCQ_RW_ERR_BIT_SET (0x00000600) | 171 | #define PL_LOGINFO_SUB_CODE_SATA_NON_NCQ_RW_ERR_BIT_SET (0x00000600) |
| @@ -177,6 +180,11 @@ | |||
| 177 | #define PL_LOGINFO_SUB_CODE_DISCOVERY_REMOTE_SEP_RESET (0x00000E01) | 180 | #define PL_LOGINFO_SUB_CODE_DISCOVERY_REMOTE_SEP_RESET (0x00000E01) |
| 178 | #define PL_LOGINFO_SUB_CODE_SECOND_OPEN (0x00000F00) | 181 | #define PL_LOGINFO_SUB_CODE_SECOND_OPEN (0x00000F00) |
| 179 | #define PL_LOGINFO_SUB_CODE_DSCVRY_SATA_INIT_TIMEOUT (0x00001000) | 182 | #define PL_LOGINFO_SUB_CODE_DSCVRY_SATA_INIT_TIMEOUT (0x00001000) |
| 183 | #define PL_LOGINFO_SUB_CODE_BREAK_ON_SATA_CONNECTION (0x00002000) | ||
| 184 | /* not currently used in mainline */ | ||
| 185 | #define PL_LOGINFO_SUB_CODE_BREAK_ON_STUCK_LINK (0x00003000) | ||
| 186 | #define PL_LOGINFO_SUB_CODE_BREAK_ON_STUCK_LINK_AIP (0x00004000) | ||
| 187 | #define PL_LOGINFO_SUB_CODE_BREAK_ON_INCOMPLETE_BREAK_RCVD (0x00005000) | ||
| 180 | 188 | ||
| 181 | #define PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_FAILURE (0x00200000) /* Can't get SMP Frame */ | 189 | #define PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_FAILURE (0x00200000) /* Can't get SMP Frame */ |
| 182 | #define PL_LOGINFO_CODE_ENCL_MGMT_SMP_READ_ERROR (0x00200010) /* Error occured on SMP Read */ | 190 | #define PL_LOGINFO_CODE_ENCL_MGMT_SMP_READ_ERROR (0x00200010) /* Error occured on SMP Read */ |
| @@ -243,6 +251,8 @@ | |||
| 243 | #define IR_LOGINFO_VOLUME_ACTIVATE_VOLUME_FAILED (0x00010014) | 251 | #define IR_LOGINFO_VOLUME_ACTIVATE_VOLUME_FAILED (0x00010014) |
| 244 | /* Activation failed trying to import the volume */ | 252 | /* Activation failed trying to import the volume */ |
| 245 | #define IR_LOGINFO_VOLUME_ACTIVATING_IMPORT_VOLUME_FAILED (0x00010015) | 253 | #define IR_LOGINFO_VOLUME_ACTIVATING_IMPORT_VOLUME_FAILED (0x00010015) |
| 254 | /* Activation failed trying to import the volume */ | ||
| 255 | #define IR_LOGINFO_VOLUME_ACTIVATING_TOO_MANY_PHYS_DISKS (0x00010016) | ||
| 246 | 256 | ||
| 247 | /* Phys Disk failed, too many phys disks */ | 257 | /* Phys Disk failed, too many phys disks */ |
| 248 | #define IR_LOGINFO_PHYSDISK_CREATE_TOO_MANY_DISKS (0x00010020) | 258 | #define IR_LOGINFO_PHYSDISK_CREATE_TOO_MANY_DISKS (0x00010020) |
| @@ -285,6 +295,21 @@ | |||
| 285 | /* Compatibility Error : IME size limited to < 2TB */ | 295 | /* Compatibility Error : IME size limited to < 2TB */ |
| 286 | #define IR_LOGINFO_COMPAT_ERROR_IME_VOL_NOT_CURRENTLY_SUPPORTED (0x0001003D) | 296 | #define IR_LOGINFO_COMPAT_ERROR_IME_VOL_NOT_CURRENTLY_SUPPORTED (0x0001003D) |
| 287 | 297 | ||
| 298 | /* Device Firmware Update: DFU can only be started once */ | ||
| 299 | #define IR_LOGINFO_DEV_FW_UPDATE_ERR_DFU_IN_PROGRESS (0x00010050) | ||
| 300 | /* Device Firmware Update: Volume must be Optimal/Active/non-Quiesced */ | ||
| 301 | #define IR_LOGINFO_DEV_FW_UPDATE_ERR_DEVICE_IN_INVALID_STATE (0x00010051) | ||
| 302 | /* Device Firmware Update: DFU Timeout cannot be zero */ | ||
| 303 | #define IR_LOGINFO_DEV_FW_UPDATE_ERR_INVALID_TIMEOUT (0x00010052) | ||
| 304 | /* Device Firmware Update: CREATE TIMER FAILED */ | ||
| 305 | #define IR_LOGINFO_DEV_FW_UPDATE_ERR_NO_TIMERS (0x00010053) | ||
| 306 | /* Device Firmware Update: Failed to read SAS_IO_UNIT_PG_1 */ | ||
| 307 | #define IR_LOGINFO_DEV_FW_UPDATE_ERR_READING_CFG_PAGE (0x00010054) | ||
| 308 | /* Device Firmware Update: Invalid SAS_IO_UNIT_PG_1 value(s) */ | ||
| 309 | #define IR_LOGINFO_DEV_FW_UPDATE_ERR_PORT_IO_TIMEOUTS_REQUIRED (0x00010055) | ||
| 310 | /* Device Firmware Update: Unable to allocate memory for page */ | ||
| 311 | #define IR_LOGINFO_DEV_FW_UPDATE_ERR_ALLOC_CFG_PAGE (0x00010056) | ||
| 312 | |||
| 288 | 313 | ||
| 289 | /****************************************************************************/ | 314 | /****************************************************************************/ |
| 290 | /* Defines for convenience */ | 315 | /* Defines for convenience */ |
diff --git a/drivers/message/fusion/lsi/mpi_raid.h b/drivers/message/fusion/lsi/mpi_raid.h index 2856108421d7..add60cc85be1 100644 --- a/drivers/message/fusion/lsi/mpi_raid.h +++ b/drivers/message/fusion/lsi/mpi_raid.h | |||
| @@ -1,12 +1,12 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2001-2007 LSI Corporation. | 2 | * Copyright (c) 2001-2008 LSI Corporation. |
| 3 | * | 3 | * |
| 4 | * | 4 | * |
| 5 | * Name: mpi_raid.h | 5 | * Name: mpi_raid.h |
| 6 | * Title: MPI RAID message and structures | 6 | * Title: MPI RAID message and structures |
| 7 | * Creation Date: February 27, 2001 | 7 | * Creation Date: February 27, 2001 |
| 8 | * | 8 | * |
| 9 | * mpi_raid.h Version: 01.05.03 | 9 | * mpi_raid.h Version: 01.05.05 |
| 10 | * | 10 | * |
| 11 | * Version History | 11 | * Version History |
| 12 | * --------------- | 12 | * --------------- |
| @@ -34,6 +34,9 @@ | |||
| 34 | * _SET_RESYNC_RATE and _SET_DATA_SCRUB_RATE. | 34 | * _SET_RESYNC_RATE and _SET_DATA_SCRUB_RATE. |
| 35 | * 02-28-07 01.05.03 Added new RAID Action, Device FW Update Mode, and | 35 | * 02-28-07 01.05.03 Added new RAID Action, Device FW Update Mode, and |
| 36 | * associated defines. | 36 | * associated defines. |
| 37 | * 08-07-07 01.05.04 Added Disable Full Rebuild bit to the ActionDataWord | ||
| 38 | * for the RAID Action MPI_RAID_ACTION_DISABLE_VOLUME. | ||
| 39 | * 01-15-08 01.05.05 Added define for MPI_RAID_ACTION_SET_VOLUME_NAME. | ||
| 37 | * -------------------------------------------------------------------------- | 40 | * -------------------------------------------------------------------------- |
| 38 | */ | 41 | */ |
| 39 | 42 | ||
| @@ -93,6 +96,7 @@ typedef struct _MSG_RAID_ACTION | |||
| 93 | #define MPI_RAID_ACTION_SET_RESYNC_RATE (0x13) | 96 | #define MPI_RAID_ACTION_SET_RESYNC_RATE (0x13) |
| 94 | #define MPI_RAID_ACTION_SET_DATA_SCRUB_RATE (0x14) | 97 | #define MPI_RAID_ACTION_SET_DATA_SCRUB_RATE (0x14) |
| 95 | #define MPI_RAID_ACTION_DEVICE_FW_UPDATE_MODE (0x15) | 98 | #define MPI_RAID_ACTION_DEVICE_FW_UPDATE_MODE (0x15) |
| 99 | #define MPI_RAID_ACTION_SET_VOLUME_NAME (0x16) | ||
| 96 | 100 | ||
| 97 | /* ActionDataWord defines for use with MPI_RAID_ACTION_CREATE_VOLUME action */ | 101 | /* ActionDataWord defines for use with MPI_RAID_ACTION_CREATE_VOLUME action */ |
| 98 | #define MPI_RAID_ACTION_ADATA_DO_NOT_SYNC (0x00000001) | 102 | #define MPI_RAID_ACTION_ADATA_DO_NOT_SYNC (0x00000001) |
| @@ -105,6 +109,9 @@ typedef struct _MSG_RAID_ACTION | |||
| 105 | #define MPI_RAID_ACTION_ADATA_KEEP_LBA0 (0x00000000) | 109 | #define MPI_RAID_ACTION_ADATA_KEEP_LBA0 (0x00000000) |
| 106 | #define MPI_RAID_ACTION_ADATA_ZERO_LBA0 (0x00000002) | 110 | #define MPI_RAID_ACTION_ADATA_ZERO_LBA0 (0x00000002) |
| 107 | 111 | ||
| 112 | /* ActionDataWord defines for use with MPI_RAID_ACTION_DISABLE_VOLUME action */ | ||
| 113 | #define MPI_RAID_ACTION_ADATA_DISABLE_FULL_REBUILD (0x00000001) | ||
| 114 | |||
| 108 | /* ActionDataWord defines for use with MPI_RAID_ACTION_ACTIVATE_VOLUME action */ | 115 | /* ActionDataWord defines for use with MPI_RAID_ACTION_ACTIVATE_VOLUME action */ |
| 109 | #define MPI_RAID_ACTION_ADATA_INACTIVATE_ALL (0x00000001) | 116 | #define MPI_RAID_ACTION_ADATA_INACTIVATE_ALL (0x00000001) |
| 110 | 117 | ||
diff --git a/drivers/message/fusion/lsi/mpi_sas.h b/drivers/message/fusion/lsi/mpi_sas.h index 33fca83cefc2..ab410036bbfc 100644 --- a/drivers/message/fusion/lsi/mpi_sas.h +++ b/drivers/message/fusion/lsi/mpi_sas.h | |||
| @@ -1,12 +1,12 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2004-2006 LSI Corporation. | 2 | * Copyright (c) 2004-2008 LSI Corporation. |
| 3 | * | 3 | * |
| 4 | * | 4 | * |
| 5 | * Name: mpi_sas.h | 5 | * Name: mpi_sas.h |
| 6 | * Title: MPI Serial Attached SCSI structures and definitions | 6 | * Title: MPI Serial Attached SCSI structures and definitions |
| 7 | * Creation Date: August 19, 2004 | 7 | * Creation Date: August 19, 2004 |
| 8 | * | 8 | * |
| 9 | * mpi_sas.h Version: 01.05.04 | 9 | * mpi_sas.h Version: 01.05.05 |
| 10 | * | 10 | * |
| 11 | * Version History | 11 | * Version History |
| 12 | * --------------- | 12 | * --------------- |
| @@ -23,6 +23,10 @@ | |||
| 23 | * reply. | 23 | * reply. |
| 24 | * 10-11-06 01.05.04 Fixed the name of a define for Operation field of SAS IO | 24 | * 10-11-06 01.05.04 Fixed the name of a define for Operation field of SAS IO |
| 25 | * Unit Control request. | 25 | * Unit Control request. |
| 26 | * 01-15-08 01.05.05 Added support for MPI_SAS_OP_SET_IOC_PARAMETER, | ||
| 27 | * including adding IOCParameter and IOCParameter value | ||
| 28 | * fields to SAS IO Unit Control Request. | ||
| 29 | * Added MPI_SAS_DEVICE_INFO_PRODUCT_SPECIFIC define. | ||
| 26 | * -------------------------------------------------------------------------- | 30 | * -------------------------------------------------------------------------- |
| 27 | */ | 31 | */ |
| 28 | 32 | ||
| @@ -60,6 +64,8 @@ | |||
| 60 | * Values for the SAS DeviceInfo field used in SAS Device Status Change Event | 64 | * Values for the SAS DeviceInfo field used in SAS Device Status Change Event |
| 61 | * data and SAS IO Unit Configuration pages. | 65 | * data and SAS IO Unit Configuration pages. |
| 62 | */ | 66 | */ |
| 67 | #define MPI_SAS_DEVICE_INFO_PRODUCT_SPECIFIC (0xF0000000) | ||
| 68 | |||
| 63 | #define MPI_SAS_DEVICE_INFO_SEP (0x00004000) | 69 | #define MPI_SAS_DEVICE_INFO_SEP (0x00004000) |
| 64 | #define MPI_SAS_DEVICE_INFO_ATAPI_DEVICE (0x00002000) | 70 | #define MPI_SAS_DEVICE_INFO_ATAPI_DEVICE (0x00002000) |
| 65 | #define MPI_SAS_DEVICE_INFO_LSI_DEVICE (0x00001000) | 71 | #define MPI_SAS_DEVICE_INFO_LSI_DEVICE (0x00001000) |
| @@ -216,7 +222,7 @@ typedef struct _MSG_SAS_IOUNIT_CONTROL_REQUEST | |||
| 216 | U8 ChainOffset; /* 02h */ | 222 | U8 ChainOffset; /* 02h */ |
| 217 | U8 Function; /* 03h */ | 223 | U8 Function; /* 03h */ |
| 218 | U16 DevHandle; /* 04h */ | 224 | U16 DevHandle; /* 04h */ |
| 219 | U8 Reserved3; /* 06h */ | 225 | U8 IOCParameter; /* 06h */ |
| 220 | U8 MsgFlags; /* 07h */ | 226 | U8 MsgFlags; /* 07h */ |
| 221 | U32 MsgContext; /* 08h */ | 227 | U32 MsgContext; /* 08h */ |
| 222 | U8 TargetID; /* 0Ch */ | 228 | U8 TargetID; /* 0Ch */ |
| @@ -225,7 +231,7 @@ typedef struct _MSG_SAS_IOUNIT_CONTROL_REQUEST | |||
| 225 | U8 PrimFlags; /* 0Fh */ | 231 | U8 PrimFlags; /* 0Fh */ |
| 226 | U32 Primitive; /* 10h */ | 232 | U32 Primitive; /* 10h */ |
| 227 | U64 SASAddress; /* 14h */ | 233 | U64 SASAddress; /* 14h */ |
| 228 | U32 Reserved4; /* 1Ch */ | 234 | U32 IOCParameterValue; /* 1Ch */ |
| 229 | } MSG_SAS_IOUNIT_CONTROL_REQUEST, MPI_POINTER PTR_MSG_SAS_IOUNIT_CONTROL_REQUEST, | 235 | } MSG_SAS_IOUNIT_CONTROL_REQUEST, MPI_POINTER PTR_MSG_SAS_IOUNIT_CONTROL_REQUEST, |
| 230 | SasIoUnitControlRequest_t, MPI_POINTER pSasIoUnitControlRequest_t; | 236 | SasIoUnitControlRequest_t, MPI_POINTER pSasIoUnitControlRequest_t; |
| 231 | 237 | ||
| @@ -241,6 +247,8 @@ typedef struct _MSG_SAS_IOUNIT_CONTROL_REQUEST | |||
| 241 | #define MPI_SAS_OP_TRANSMIT_PORT_SELECT_SIGNAL (0x0C) | 247 | #define MPI_SAS_OP_TRANSMIT_PORT_SELECT_SIGNAL (0x0C) |
| 242 | #define MPI_SAS_OP_TRANSMIT_REMOVE_DEVICE (0x0D) /* obsolete name */ | 248 | #define MPI_SAS_OP_TRANSMIT_REMOVE_DEVICE (0x0D) /* obsolete name */ |
| 243 | #define MPI_SAS_OP_REMOVE_DEVICE (0x0D) | 249 | #define MPI_SAS_OP_REMOVE_DEVICE (0x0D) |
| 250 | #define MPI_SAS_OP_SET_IOC_PARAMETER (0x0E) | ||
| 251 | #define MPI_SAS_OP_PRODUCT_SPECIFIC_MIN (0x80) | ||
| 244 | 252 | ||
| 245 | /* values for the PrimFlags field */ | 253 | /* values for the PrimFlags field */ |
| 246 | #define MPI_SAS_PRIMFLAGS_SINGLE (0x08) | 254 | #define MPI_SAS_PRIMFLAGS_SINGLE (0x08) |
| @@ -256,7 +264,7 @@ typedef struct _MSG_SAS_IOUNIT_CONTROL_REPLY | |||
| 256 | U8 MsgLength; /* 02h */ | 264 | U8 MsgLength; /* 02h */ |
| 257 | U8 Function; /* 03h */ | 265 | U8 Function; /* 03h */ |
| 258 | U16 DevHandle; /* 04h */ | 266 | U16 DevHandle; /* 04h */ |
| 259 | U8 Reserved3; /* 06h */ | 267 | U8 IOCParameter; /* 06h */ |
| 260 | U8 MsgFlags; /* 07h */ | 268 | U8 MsgFlags; /* 07h */ |
| 261 | U32 MsgContext; /* 08h */ | 269 | U32 MsgContext; /* 08h */ |
| 262 | U16 Reserved4; /* 0Ch */ | 270 | U16 Reserved4; /* 0Ch */ |
diff --git a/drivers/message/fusion/lsi/mpi_targ.h b/drivers/message/fusion/lsi/mpi_targ.h index ff8c37d3fdcb..c3dea7f6909d 100644 --- a/drivers/message/fusion/lsi/mpi_targ.h +++ b/drivers/message/fusion/lsi/mpi_targ.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2000-2004 LSI Corporation. | 2 | * Copyright (c) 2000-2008 LSI Corporation. |
| 3 | * | 3 | * |
| 4 | * | 4 | * |
| 5 | * Name: mpi_targ.h | 5 | * Name: mpi_targ.h |
diff --git a/drivers/message/fusion/lsi/mpi_tool.h b/drivers/message/fusion/lsi/mpi_tool.h index 8834ae6ce0f2..53cd715aa7e4 100644 --- a/drivers/message/fusion/lsi/mpi_tool.h +++ b/drivers/message/fusion/lsi/mpi_tool.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2001-2005 LSI Corporation. | 2 | * Copyright (c) 2001-2008 LSI Corporation. |
| 3 | * | 3 | * |
| 4 | * | 4 | * |
| 5 | * Name: mpi_tool.h | 5 | * Name: mpi_tool.h |
diff --git a/drivers/message/fusion/lsi/mpi_type.h b/drivers/message/fusion/lsi/mpi_type.h index 08dad9c1e446..888b26dbc413 100644 --- a/drivers/message/fusion/lsi/mpi_type.h +++ b/drivers/message/fusion/lsi/mpi_type.h | |||
| @@ -1,12 +1,12 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2000-2004 LSI Corporation. | 2 | * Copyright (c) 2000-2008 LSI Corporation. |
| 3 | * | 3 | * |
| 4 | * | 4 | * |
| 5 | * Name: mpi_type.h | 5 | * Name: mpi_type.h |
| 6 | * Title: MPI Basic type definitions | 6 | * Title: MPI Basic type definitions |
| 7 | * Creation Date: June 6, 2000 | 7 | * Creation Date: June 6, 2000 |
| 8 | * | 8 | * |
| 9 | * mpi_type.h Version: 01.05.01 | 9 | * mpi_type.h Version: 01.05.02 |
| 10 | * | 10 | * |
| 11 | * Version History | 11 | * Version History |
| 12 | * --------------- | 12 | * --------------- |
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c index c4e8b9aa3827..96ac88317b8e 100644 --- a/drivers/message/fusion/mptbase.c +++ b/drivers/message/fusion/mptbase.c | |||
| @@ -79,9 +79,22 @@ MODULE_VERSION(my_VERSION); | |||
| 79 | /* | 79 | /* |
| 80 | * cmd line parameters | 80 | * cmd line parameters |
| 81 | */ | 81 | */ |
| 82 | static int mpt_msi_enable = -1; | 82 | |
| 83 | module_param(mpt_msi_enable, int, 0); | 83 | static int mpt_msi_enable_spi; |
| 84 | MODULE_PARM_DESC(mpt_msi_enable, " MSI Support Enable (default=0)"); | 84 | module_param(mpt_msi_enable_spi, int, 0); |
| 85 | MODULE_PARM_DESC(mpt_msi_enable_spi, " Enable MSI Support for SPI \ | ||
| 86 | controllers (default=0)"); | ||
| 87 | |||
| 88 | static int mpt_msi_enable_fc; | ||
| 89 | module_param(mpt_msi_enable_fc, int, 0); | ||
| 90 | MODULE_PARM_DESC(mpt_msi_enable_fc, " Enable MSI Support for FC \ | ||
| 91 | controllers (default=0)"); | ||
| 92 | |||
| 93 | static int mpt_msi_enable_sas; | ||
| 94 | module_param(mpt_msi_enable_sas, int, 1); | ||
| 95 | MODULE_PARM_DESC(mpt_msi_enable_sas, " Enable MSI Support for SAS \ | ||
| 96 | controllers (default=1)"); | ||
| 97 | |||
| 85 | 98 | ||
| 86 | static int mpt_channel_mapping; | 99 | static int mpt_channel_mapping; |
| 87 | module_param(mpt_channel_mapping, int, 0); | 100 | module_param(mpt_channel_mapping, int, 0); |
| @@ -91,7 +104,17 @@ static int mpt_debug_level; | |||
| 91 | static int mpt_set_debug_level(const char *val, struct kernel_param *kp); | 104 | static int mpt_set_debug_level(const char *val, struct kernel_param *kp); |
| 92 | module_param_call(mpt_debug_level, mpt_set_debug_level, param_get_int, | 105 | module_param_call(mpt_debug_level, mpt_set_debug_level, param_get_int, |
| 93 | &mpt_debug_level, 0600); | 106 | &mpt_debug_level, 0600); |
| 94 | MODULE_PARM_DESC(mpt_debug_level, " debug level - refer to mptdebug.h - (default=0)"); | 107 | MODULE_PARM_DESC(mpt_debug_level, " debug level - refer to mptdebug.h \ |
| 108 | - (default=0)"); | ||
| 109 | |||
| 110 | int mpt_fwfault_debug; | ||
| 111 | EXPORT_SYMBOL(mpt_fwfault_debug); | ||
| 112 | module_param_call(mpt_fwfault_debug, param_set_int, param_get_int, | ||
| 113 | &mpt_fwfault_debug, 0600); | ||
| 114 | MODULE_PARM_DESC(mpt_fwfault_debug, "Enable detection of Firmware fault" | ||
| 115 | " and halt Firmware on fault - (default=0)"); | ||
| 116 | |||
| 117 | |||
| 95 | 118 | ||
| 96 | #ifdef MFCNT | 119 | #ifdef MFCNT |
| 97 | static int mfcounter = 0; | 120 | static int mfcounter = 0; |
| @@ -1751,16 +1774,25 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id) | |||
| 1751 | ioc->bus_type = SAS; | 1774 | ioc->bus_type = SAS; |
| 1752 | } | 1775 | } |
| 1753 | 1776 | ||
| 1754 | if (mpt_msi_enable == -1) { | ||
| 1755 | /* Enable on SAS, disable on FC and SPI */ | ||
| 1756 | if (ioc->bus_type == SAS) | ||
| 1757 | ioc->msi_enable = 1; | ||
| 1758 | else | ||
| 1759 | ioc->msi_enable = 0; | ||
| 1760 | } else | ||
| 1761 | /* follow flag: 0 - disable; 1 - enable */ | ||
| 1762 | ioc->msi_enable = mpt_msi_enable; | ||
| 1763 | 1777 | ||
| 1778 | switch (ioc->bus_type) { | ||
| 1779 | |||
| 1780 | case SAS: | ||
| 1781 | ioc->msi_enable = mpt_msi_enable_sas; | ||
| 1782 | break; | ||
| 1783 | |||
| 1784 | case SPI: | ||
| 1785 | ioc->msi_enable = mpt_msi_enable_spi; | ||
| 1786 | break; | ||
| 1787 | |||
| 1788 | case FC: | ||
| 1789 | ioc->msi_enable = mpt_msi_enable_fc; | ||
| 1790 | break; | ||
| 1791 | |||
| 1792 | default: | ||
| 1793 | ioc->msi_enable = 0; | ||
| 1794 | break; | ||
| 1795 | } | ||
| 1764 | if (ioc->errata_flag_1064) | 1796 | if (ioc->errata_flag_1064) |
| 1765 | pci_disable_io_access(pdev); | 1797 | pci_disable_io_access(pdev); |
| 1766 | 1798 | ||
| @@ -6313,6 +6345,33 @@ mpt_print_ioc_summary(MPT_ADAPTER *ioc, char *buffer, int *size, int len, int sh | |||
| 6313 | *size = y; | 6345 | *size = y; |
| 6314 | } | 6346 | } |
| 6315 | 6347 | ||
| 6348 | |||
| 6349 | /** | ||
| 6350 | * mpt_halt_firmware - Halts the firmware if it is operational and panic | ||
| 6351 | * the kernel | ||
| 6352 | * @ioc: Pointer to MPT_ADAPTER structure | ||
| 6353 | * | ||
| 6354 | **/ | ||
| 6355 | void | ||
| 6356 | mpt_halt_firmware(MPT_ADAPTER *ioc) | ||
| 6357 | { | ||
| 6358 | u32 ioc_raw_state; | ||
| 6359 | |||
| 6360 | ioc_raw_state = mpt_GetIocState(ioc, 0); | ||
| 6361 | |||
| 6362 | if ((ioc_raw_state & MPI_IOC_STATE_MASK) == MPI_IOC_STATE_FAULT) { | ||
| 6363 | printk(MYIOC_s_ERR_FMT "IOC is in FAULT state (%04xh)!!!\n", | ||
| 6364 | ioc->name, ioc_raw_state & MPI_DOORBELL_DATA_MASK); | ||
| 6365 | panic("%s: IOC Fault (%04xh)!!!\n", ioc->name, | ||
| 6366 | ioc_raw_state & MPI_DOORBELL_DATA_MASK); | ||
| 6367 | } else { | ||
| 6368 | CHIPREG_WRITE32(&ioc->chip->Doorbell, 0xC0FFEE00); | ||
| 6369 | panic("%s: Firmware is halted due to command timeout\n", | ||
| 6370 | ioc->name); | ||
| 6371 | } | ||
| 6372 | } | ||
| 6373 | EXPORT_SYMBOL(mpt_halt_firmware); | ||
| 6374 | |||
| 6316 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | 6375 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |
| 6317 | /* | 6376 | /* |
| 6318 | * Reset Handling | 6377 | * Reset Handling |
| @@ -6345,6 +6404,8 @@ mpt_HardResetHandler(MPT_ADAPTER *ioc, int sleepFlag) | |||
| 6345 | printk(MYIOC_s_INFO_FMT "HardResetHandler Entered!\n", ioc->name); | 6404 | printk(MYIOC_s_INFO_FMT "HardResetHandler Entered!\n", ioc->name); |
| 6346 | printk("MF count 0x%x !\n", ioc->mfcnt); | 6405 | printk("MF count 0x%x !\n", ioc->mfcnt); |
| 6347 | #endif | 6406 | #endif |
| 6407 | if (mpt_fwfault_debug) | ||
| 6408 | mpt_halt_firmware(ioc); | ||
| 6348 | 6409 | ||
| 6349 | /* Reset the adapter. Prevent more than 1 call to | 6410 | /* Reset the adapter. Prevent more than 1 call to |
| 6350 | * mpt_do_ioc_recovery at any instant in time. | 6411 | * mpt_do_ioc_recovery at any instant in time. |
diff --git a/drivers/message/fusion/mptbase.h b/drivers/message/fusion/mptbase.h index dff048cfa101..b3e981d2a506 100644 --- a/drivers/message/fusion/mptbase.h +++ b/drivers/message/fusion/mptbase.h | |||
| @@ -922,11 +922,14 @@ extern void mpt_free_fw_memory(MPT_ADAPTER *ioc); | |||
| 922 | extern int mpt_findImVolumes(MPT_ADAPTER *ioc); | 922 | extern int mpt_findImVolumes(MPT_ADAPTER *ioc); |
| 923 | extern int mptbase_sas_persist_operation(MPT_ADAPTER *ioc, u8 persist_opcode); | 923 | extern int mptbase_sas_persist_operation(MPT_ADAPTER *ioc, u8 persist_opcode); |
| 924 | extern int mpt_raid_phys_disk_pg0(MPT_ADAPTER *ioc, u8 phys_disk_num, pRaidPhysDiskPage0_t phys_disk); | 924 | extern int mpt_raid_phys_disk_pg0(MPT_ADAPTER *ioc, u8 phys_disk_num, pRaidPhysDiskPage0_t phys_disk); |
| 925 | extern void mpt_halt_firmware(MPT_ADAPTER *ioc); | ||
| 926 | |||
| 925 | 927 | ||
| 926 | /* | 928 | /* |
| 927 | * Public data decl's... | 929 | * Public data decl's... |
| 928 | */ | 930 | */ |
| 929 | extern struct list_head ioc_list; | 931 | extern struct list_head ioc_list; |
| 932 | extern int mpt_fwfault_debug; | ||
| 930 | 933 | ||
| 931 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | 934 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |
| 932 | #endif /* } __KERNEL__ */ | 935 | #endif /* } __KERNEL__ */ |
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c index ee090413e598..e62c6bc4ad33 100644 --- a/drivers/message/fusion/mptscsih.c +++ b/drivers/message/fusion/mptscsih.c | |||
| @@ -1846,6 +1846,9 @@ mptscsih_abort(struct scsi_cmnd * SCpnt) | |||
| 1846 | if (hd->timeouts < -1) | 1846 | if (hd->timeouts < -1) |
| 1847 | hd->timeouts++; | 1847 | hd->timeouts++; |
| 1848 | 1848 | ||
| 1849 | if (mpt_fwfault_debug) | ||
| 1850 | mpt_halt_firmware(ioc); | ||
| 1851 | |||
| 1849 | /* Most important! Set TaskMsgContext to SCpnt's MsgContext! | 1852 | /* Most important! Set TaskMsgContext to SCpnt's MsgContext! |
| 1850 | * (the IO to be ABORT'd) | 1853 | * (the IO to be ABORT'd) |
| 1851 | * | 1854 | * |
