diff options
Diffstat (limited to 'drivers/scsi/mpt2sas/mpi')
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2.h | 17 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h | 297 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_history.txt | 93 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_init.h | 24 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_ioc.h | 91 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_raid.h | 14 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_sas.h | 6 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_tool.h | 16 |
8 files changed, 509 insertions, 49 deletions
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2.h b/drivers/scsi/mpt2sas/mpi/mpi2.h index f9f6c0839276..9958d847a88d 100644 --- a/drivers/scsi/mpt2sas/mpi/mpi2.h +++ b/drivers/scsi/mpt2sas/mpi/mpi2.h | |||
@@ -8,7 +8,7 @@ | |||
8 | * scatter/gather formats. | 8 | * scatter/gather formats. |
9 | * Creation Date: June 21, 2006 | 9 | * Creation Date: June 21, 2006 |
10 | * | 10 | * |
11 | * mpi2.h Version: 02.00.12 | 11 | * mpi2.h Version: 02.00.14 |
12 | * | 12 | * |
13 | * Version History | 13 | * Version History |
14 | * --------------- | 14 | * --------------- |
@@ -52,6 +52,11 @@ | |||
52 | * MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR and made those | 52 | * MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR and made those |
53 | * bytes reserved. | 53 | * bytes reserved. |
54 | * Added RAID Accelerator functionality. | 54 | * Added RAID Accelerator functionality. |
55 | * 07-30-09 02.00.13 Bumped MPI2_HEADER_VERSION_UNIT. | ||
56 | * 10-28-09 02.00.14 Bumped MPI2_HEADER_VERSION_UNIT. | ||
57 | * Added MSI-x index mask and shift for Reply Post Host | ||
58 | * Index register. | ||
59 | * Added function code for Host Based Discovery Action. | ||
55 | * -------------------------------------------------------------------------- | 60 | * -------------------------------------------------------------------------- |
56 | */ | 61 | */ |
57 | 62 | ||
@@ -77,7 +82,7 @@ | |||
77 | #define MPI2_VERSION_02_00 (0x0200) | 82 | #define MPI2_VERSION_02_00 (0x0200) |
78 | 83 | ||
79 | /* versioning for this MPI header set */ | 84 | /* versioning for this MPI header set */ |
80 | #define MPI2_HEADER_VERSION_UNIT (0x0C) | 85 | #define MPI2_HEADER_VERSION_UNIT (0x0E) |
81 | #define MPI2_HEADER_VERSION_DEV (0x00) | 86 | #define MPI2_HEADER_VERSION_DEV (0x00) |
82 | #define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00) | 87 | #define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00) |
83 | #define MPI2_HEADER_VERSION_UNIT_SHIFT (8) | 88 | #define MPI2_HEADER_VERSION_UNIT_SHIFT (8) |
@@ -231,9 +236,12 @@ typedef volatile struct _MPI2_SYSTEM_INTERFACE_REGS | |||
231 | #define MPI2_REPLY_FREE_HOST_INDEX_OFFSET (0x00000048) | 236 | #define MPI2_REPLY_FREE_HOST_INDEX_OFFSET (0x00000048) |
232 | 237 | ||
233 | /* | 238 | /* |
234 | * Offset for the Reply Descriptor Post Queue | 239 | * Defines for the Reply Descriptor Post Queue |
235 | */ | 240 | */ |
236 | #define MPI2_REPLY_POST_HOST_INDEX_OFFSET (0x0000006C) | 241 | #define MPI2_REPLY_POST_HOST_INDEX_OFFSET (0x0000006C) |
242 | #define MPI2_REPLY_POST_HOST_INDEX_MASK (0x00FFFFFF) | ||
243 | #define MPI2_RPHI_MSIX_INDEX_MASK (0xFF000000) | ||
244 | #define MPI2_RPHI_MSIX_INDEX_SHIFT (24) | ||
237 | 245 | ||
238 | /* | 246 | /* |
239 | * Defines for the HCBSize and address | 247 | * Defines for the HCBSize and address |
@@ -496,12 +504,13 @@ typedef union _MPI2_REPLY_DESCRIPTORS_UNION | |||
496 | #define MPI2_FUNCTION_TARGET_CMD_BUF_BASE_POST (0x24) /* Target Command Buffer Post Base */ | 504 | #define MPI2_FUNCTION_TARGET_CMD_BUF_BASE_POST (0x24) /* Target Command Buffer Post Base */ |
497 | #define MPI2_FUNCTION_TARGET_CMD_BUF_LIST_POST (0x25) /* Target Command Buffer Post List */ | 505 | #define MPI2_FUNCTION_TARGET_CMD_BUF_LIST_POST (0x25) /* Target Command Buffer Post List */ |
498 | #define MPI2_FUNCTION_RAID_ACCELERATOR (0x2C) /* RAID Accelerator*/ | 506 | #define MPI2_FUNCTION_RAID_ACCELERATOR (0x2C) /* RAID Accelerator*/ |
507 | /* Host Based Discovery Action */ | ||
508 | #define MPI2_FUNCTION_HOST_BASED_DISCOVERY_ACTION (0x2F) | ||
499 | 509 | ||
500 | 510 | ||
501 | 511 | ||
502 | /* Doorbell functions */ | 512 | /* Doorbell functions */ |
503 | #define MPI2_FUNCTION_IOC_MESSAGE_UNIT_RESET (0x40) | 513 | #define MPI2_FUNCTION_IOC_MESSAGE_UNIT_RESET (0x40) |
504 | /* #define MPI2_FUNCTION_IO_UNIT_RESET (0x41) */ | ||
505 | #define MPI2_FUNCTION_HANDSHAKE (0x42) | 514 | #define MPI2_FUNCTION_HANDSHAKE (0x42) |
506 | 515 | ||
507 | 516 | ||
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h b/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h index ab47c4679640..cf0ac9f40c97 100644 --- a/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h +++ b/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h | |||
@@ -6,7 +6,7 @@ | |||
6 | * Title: MPI Configuration messages and pages | 6 | * Title: MPI Configuration messages and pages |
7 | * Creation Date: November 10, 2006 | 7 | * Creation Date: November 10, 2006 |
8 | * | 8 | * |
9 | * mpi2_cnfg.h Version: 02.00.11 | 9 | * mpi2_cnfg.h Version: 02.00.13 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
@@ -100,6 +100,15 @@ | |||
100 | * Added expander reduced functionality data to SAS | 100 | * Added expander reduced functionality data to SAS |
101 | * Expander Page 0. | 101 | * Expander Page 0. |
102 | * Added SAS PHY Page 2 and SAS PHY Page 3. | 102 | * Added SAS PHY Page 2 and SAS PHY Page 3. |
103 | * 07-30-09 02.00.12 Added IO Unit Page 7. | ||
104 | * Added new device ids. | ||
105 | * Added SAS IO Unit Page 5. | ||
106 | * Added partial and slumber power management capable flags | ||
107 | * to SAS Device Page 0 Flags field. | ||
108 | * Added PhyInfo defines for power condition. | ||
109 | * Added Ethernet configuration pages. | ||
110 | * 10-28-09 02.00.13 Added MPI2_IOUNITPAGE1_ENABLE_HOST_BASED_DISCOVERY. | ||
111 | * Added SAS PHY Page 4 structure and defines. | ||
103 | * -------------------------------------------------------------------------- | 112 | * -------------------------------------------------------------------------- |
104 | */ | 113 | */ |
105 | 114 | ||
@@ -182,6 +191,7 @@ typedef union _MPI2_CONFIG_EXT_PAGE_HEADER_UNION | |||
182 | #define MPI2_CONFIG_EXTPAGETYPE_RAID_CONFIG (0x16) | 191 | #define MPI2_CONFIG_EXTPAGETYPE_RAID_CONFIG (0x16) |
183 | #define MPI2_CONFIG_EXTPAGETYPE_DRIVER_MAPPING (0x17) | 192 | #define MPI2_CONFIG_EXTPAGETYPE_DRIVER_MAPPING (0x17) |
184 | #define MPI2_CONFIG_EXTPAGETYPE_SAS_PORT (0x18) | 193 | #define MPI2_CONFIG_EXTPAGETYPE_SAS_PORT (0x18) |
194 | #define MPI2_CONFIG_EXTPAGETYPE_ETHERNET (0x19) | ||
185 | 195 | ||
186 | 196 | ||
187 | /***************************************************************************** | 197 | /***************************************************************************** |
@@ -268,6 +278,14 @@ typedef union _MPI2_CONFIG_EXT_PAGE_HEADER_UNION | |||
268 | #define MPI2_DPM_PGAD_START_ENTRY_MASK (0x0000FFFF) | 278 | #define MPI2_DPM_PGAD_START_ENTRY_MASK (0x0000FFFF) |
269 | 279 | ||
270 | 280 | ||
281 | /* Ethernet PageAddress format */ | ||
282 | #define MPI2_ETHERNET_PGAD_FORM_MASK (0xF0000000) | ||
283 | #define MPI2_ETHERNET_PGAD_FORM_IF_NUM (0x00000000) | ||
284 | |||
285 | #define MPI2_ETHERNET_PGAD_IF_NUMBER_MASK (0x000000FF) | ||
286 | |||
287 | |||
288 | |||
271 | /**************************************************************************** | 289 | /**************************************************************************** |
272 | * Configuration messages | 290 | * Configuration messages |
273 | ****************************************************************************/ | 291 | ****************************************************************************/ |
@@ -349,6 +367,15 @@ typedef struct _MPI2_CONFIG_REPLY | |||
349 | #define MPI2_MFGPAGE_DEVID_SAS2116_1 (0x0064) | 367 | #define MPI2_MFGPAGE_DEVID_SAS2116_1 (0x0064) |
350 | #define MPI2_MFGPAGE_DEVID_SAS2116_2 (0x0065) | 368 | #define MPI2_MFGPAGE_DEVID_SAS2116_2 (0x0065) |
351 | 369 | ||
370 | #define MPI2_MFGPAGE_DEVID_SAS2208_1 (0x0080) | ||
371 | #define MPI2_MFGPAGE_DEVID_SAS2208_2 (0x0081) | ||
372 | #define MPI2_MFGPAGE_DEVID_SAS2208_3 (0x0082) | ||
373 | #define MPI2_MFGPAGE_DEVID_SAS2208_4 (0x0083) | ||
374 | #define MPI2_MFGPAGE_DEVID_SAS2208_5 (0x0084) | ||
375 | #define MPI2_MFGPAGE_DEVID_SAS2208_6 (0x0085) | ||
376 | #define MPI2_MFGPAGE_DEVID_SAS2208_7 (0x0086) | ||
377 | #define MPI2_MFGPAGE_DEVID_SAS2208_8 (0x0087) | ||
378 | |||
352 | 379 | ||
353 | /* Manufacturing Page 0 */ | 380 | /* Manufacturing Page 0 */ |
354 | 381 | ||
@@ -687,6 +714,7 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_1 | |||
687 | #define MPI2_IOUNITPAGE1_PAGEVERSION (0x04) | 714 | #define MPI2_IOUNITPAGE1_PAGEVERSION (0x04) |
688 | 715 | ||
689 | /* IO Unit Page 1 Flags defines */ | 716 | /* IO Unit Page 1 Flags defines */ |
717 | #define MPI2_IOUNITPAGE1_ENABLE_HOST_BASED_DISCOVERY (0x00000800) | ||
690 | #define MPI2_IOUNITPAGE1_MASK_SATA_WRITE_CACHE (0x00000600) | 718 | #define MPI2_IOUNITPAGE1_MASK_SATA_WRITE_CACHE (0x00000600) |
691 | #define MPI2_IOUNITPAGE1_ENABLE_SATA_WRITE_CACHE (0x00000000) | 719 | #define MPI2_IOUNITPAGE1_ENABLE_SATA_WRITE_CACHE (0x00000000) |
692 | #define MPI2_IOUNITPAGE1_DISABLE_SATA_WRITE_CACHE (0x00000200) | 720 | #define MPI2_IOUNITPAGE1_DISABLE_SATA_WRITE_CACHE (0x00000200) |
@@ -787,6 +815,56 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_6 { | |||
787 | #define MPI2_IOUNITPAGE6_FLAGS_ENABLE_RAID_ACCELERATOR (0x0001) | 815 | #define MPI2_IOUNITPAGE6_FLAGS_ENABLE_RAID_ACCELERATOR (0x0001) |
788 | 816 | ||
789 | 817 | ||
818 | /* IO Unit Page 7 */ | ||
819 | |||
820 | typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_7 { | ||
821 | MPI2_CONFIG_PAGE_HEADER Header; /* 0x00 */ | ||
822 | U16 Reserved1; /* 0x04 */ | ||
823 | U8 PCIeWidth; /* 0x06 */ | ||
824 | U8 PCIeSpeed; /* 0x07 */ | ||
825 | U32 ProcessorState; /* 0x08 */ | ||
826 | U32 Reserved2; /* 0x0C */ | ||
827 | U16 IOCTemperature; /* 0x10 */ | ||
828 | U8 IOCTemperatureUnits; /* 0x12 */ | ||
829 | U8 IOCSpeed; /* 0x13 */ | ||
830 | U32 Reserved3; /* 0x14 */ | ||
831 | } MPI2_CONFIG_PAGE_IO_UNIT_7, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_IO_UNIT_7, | ||
832 | Mpi2IOUnitPage7_t, MPI2_POINTER pMpi2IOUnitPage7_t; | ||
833 | |||
834 | #define MPI2_IOUNITPAGE7_PAGEVERSION (0x00) | ||
835 | |||
836 | /* defines for IO Unit Page 7 PCIeWidth field */ | ||
837 | #define MPI2_IOUNITPAGE7_PCIE_WIDTH_X1 (0x01) | ||
838 | #define MPI2_IOUNITPAGE7_PCIE_WIDTH_X2 (0x02) | ||
839 | #define MPI2_IOUNITPAGE7_PCIE_WIDTH_X4 (0x04) | ||
840 | #define MPI2_IOUNITPAGE7_PCIE_WIDTH_X8 (0x08) | ||
841 | |||
842 | /* defines for IO Unit Page 7 PCIeSpeed field */ | ||
843 | #define MPI2_IOUNITPAGE7_PCIE_SPEED_2_5_GBPS (0x00) | ||
844 | #define MPI2_IOUNITPAGE7_PCIE_SPEED_5_0_GBPS (0x01) | ||
845 | #define MPI2_IOUNITPAGE7_PCIE_SPEED_8_0_GBPS (0x02) | ||
846 | |||
847 | /* defines for IO Unit Page 7 ProcessorState field */ | ||
848 | #define MPI2_IOUNITPAGE7_PSTATE_MASK_SECOND (0x0000000F) | ||
849 | #define MPI2_IOUNITPAGE7_PSTATE_SHIFT_SECOND (0) | ||
850 | |||
851 | #define MPI2_IOUNITPAGE7_PSTATE_NOT_PRESENT (0x00) | ||
852 | #define MPI2_IOUNITPAGE7_PSTATE_DISABLED (0x01) | ||
853 | #define MPI2_IOUNITPAGE7_PSTATE_ENABLED (0x02) | ||
854 | |||
855 | /* defines for IO Unit Page 7 IOCTemperatureUnits field */ | ||
856 | #define MPI2_IOUNITPAGE7_IOC_TEMP_NOT_PRESENT (0x00) | ||
857 | #define MPI2_IOUNITPAGE7_IOC_TEMP_FAHRENHEIT (0x01) | ||
858 | #define MPI2_IOUNITPAGE7_IOC_TEMP_CELSIUS (0x02) | ||
859 | |||
860 | /* defines for IO Unit Page 7 IOCSpeed field */ | ||
861 | #define MPI2_IOUNITPAGE7_IOC_SPEED_FULL (0x01) | ||
862 | #define MPI2_IOUNITPAGE7_IOC_SPEED_HALF (0x02) | ||
863 | #define MPI2_IOUNITPAGE7_IOC_SPEED_QUARTER (0x04) | ||
864 | #define MPI2_IOUNITPAGE7_IOC_SPEED_EIGHTH (0x08) | ||
865 | |||
866 | |||
867 | |||
790 | /**************************************************************************** | 868 | /**************************************************************************** |
791 | * IOC Config Pages | 869 | * IOC Config Pages |
792 | ****************************************************************************/ | 870 | ****************************************************************************/ |
@@ -1470,6 +1548,12 @@ typedef struct _MPI2_CONFIG_PAGE_RD_PDISK_1 | |||
1470 | 1548 | ||
1471 | /* values for PhyInfo fields */ | 1549 | /* values for PhyInfo fields */ |
1472 | #define MPI2_SAS_PHYINFO_PHY_VACANT (0x80000000) | 1550 | #define MPI2_SAS_PHYINFO_PHY_VACANT (0x80000000) |
1551 | |||
1552 | #define MPI2_SAS_PHYINFO_PHY_POWER_CONDITION_MASK (0x18000000) | ||
1553 | #define MPI2_SAS_PHYINFO_PHY_POWER_ACTIVE (0x00000000) | ||
1554 | #define MPI2_SAS_PHYINFO_PHY_POWER_PARTIAL (0x08000000) | ||
1555 | #define MPI2_SAS_PHYINFO_PHY_POWER_SLUMBER (0x10000000) | ||
1556 | |||
1473 | #define MPI2_SAS_PHYINFO_CHANGED_REQ_INSIDE_ZPSDS (0x04000000) | 1557 | #define MPI2_SAS_PHYINFO_CHANGED_REQ_INSIDE_ZPSDS (0x04000000) |
1474 | #define MPI2_SAS_PHYINFO_INSIDE_ZPSDS_PERSISTENT (0x02000000) | 1558 | #define MPI2_SAS_PHYINFO_INSIDE_ZPSDS_PERSISTENT (0x02000000) |
1475 | #define MPI2_SAS_PHYINFO_REQ_INSIDE_ZPSDS (0x01000000) | 1559 | #define MPI2_SAS_PHYINFO_REQ_INSIDE_ZPSDS (0x01000000) |
@@ -1682,11 +1766,11 @@ typedef struct _MPI2_CONFIG_PAGE_SASIOUNIT_1 | |||
1682 | /* values for SAS IO Unit Page 1 PortFlags */ | 1766 | /* values for SAS IO Unit Page 1 PortFlags */ |
1683 | #define MPI2_SASIOUNIT1_PORT_FLAGS_AUTO_PORT_CONFIG (0x01) | 1767 | #define MPI2_SASIOUNIT1_PORT_FLAGS_AUTO_PORT_CONFIG (0x01) |
1684 | 1768 | ||
1685 | /* values for SAS IO Unit Page 2 PhyFlags */ | 1769 | /* values for SAS IO Unit Page 1 PhyFlags */ |
1686 | #define MPI2_SASIOUNIT1_PHYFLAGS_ZONING_ENABLE (0x10) | 1770 | #define MPI2_SASIOUNIT1_PHYFLAGS_ZONING_ENABLE (0x10) |
1687 | #define MPI2_SASIOUNIT1_PHYFLAGS_PHY_DISABLE (0x08) | 1771 | #define MPI2_SASIOUNIT1_PHYFLAGS_PHY_DISABLE (0x08) |
1688 | 1772 | ||
1689 | /* values for SAS IO Unit Page 0 MaxMinLinkRate */ | 1773 | /* values for SAS IO Unit Page 1 MaxMinLinkRate */ |
1690 | #define MPI2_SASIOUNIT1_MAX_RATE_MASK (0xF0) | 1774 | #define MPI2_SASIOUNIT1_MAX_RATE_MASK (0xF0) |
1691 | #define MPI2_SASIOUNIT1_MAX_RATE_1_5 (0x80) | 1775 | #define MPI2_SASIOUNIT1_MAX_RATE_1_5 (0x80) |
1692 | #define MPI2_SASIOUNIT1_MAX_RATE_3_0 (0x90) | 1776 | #define MPI2_SASIOUNIT1_MAX_RATE_3_0 (0x90) |
@@ -1745,6 +1829,74 @@ typedef struct _MPI2_CONFIG_PAGE_SASIOUNIT_4 | |||
1745 | #define MPI2_SASIOUNIT4_PHY_SPINUP_GROUP_MASK (0x03) | 1829 | #define MPI2_SASIOUNIT4_PHY_SPINUP_GROUP_MASK (0x03) |
1746 | 1830 | ||
1747 | 1831 | ||
1832 | /* SAS IO Unit Page 5 */ | ||
1833 | |||
1834 | typedef struct _MPI2_SAS_IO_UNIT5_PHY_PM_SETTINGS { | ||
1835 | U8 ControlFlags; /* 0x00 */ | ||
1836 | U8 Reserved1; /* 0x01 */ | ||
1837 | U16 InactivityTimerExponent; /* 0x02 */ | ||
1838 | U8 SATAPartialTimeout; /* 0x04 */ | ||
1839 | U8 Reserved2; /* 0x05 */ | ||
1840 | U8 SATASlumberTimeout; /* 0x06 */ | ||
1841 | U8 Reserved3; /* 0x07 */ | ||
1842 | U8 SASPartialTimeout; /* 0x08 */ | ||
1843 | U8 Reserved4; /* 0x09 */ | ||
1844 | U8 SASSlumberTimeout; /* 0x0A */ | ||
1845 | U8 Reserved5; /* 0x0B */ | ||
1846 | } MPI2_SAS_IO_UNIT5_PHY_PM_SETTINGS, | ||
1847 | MPI2_POINTER PTR_MPI2_SAS_IO_UNIT5_PHY_PM_SETTINGS, | ||
1848 | Mpi2SasIOUnit5PhyPmSettings_t, MPI2_POINTER pMpi2SasIOUnit5PhyPmSettings_t; | ||
1849 | |||
1850 | /* defines for ControlFlags field */ | ||
1851 | #define MPI2_SASIOUNIT5_CONTROL_SAS_SLUMBER_ENABLE (0x08) | ||
1852 | #define MPI2_SASIOUNIT5_CONTROL_SAS_PARTIAL_ENABLE (0x04) | ||
1853 | #define MPI2_SASIOUNIT5_CONTROL_SATA_SLUMBER_ENABLE (0x02) | ||
1854 | #define MPI2_SASIOUNIT5_CONTROL_SATA_PARTIAL_ENABLE (0x01) | ||
1855 | |||
1856 | /* defines for InactivityTimerExponent field */ | ||
1857 | #define MPI2_SASIOUNIT5_ITE_MASK_SAS_SLUMBER (0x7000) | ||
1858 | #define MPI2_SASIOUNIT5_ITE_SHIFT_SAS_SLUMBER (12) | ||
1859 | #define MPI2_SASIOUNIT5_ITE_MASK_SAS_PARTIAL (0x0700) | ||
1860 | #define MPI2_SASIOUNIT5_ITE_SHIFT_SAS_PARTIAL (8) | ||
1861 | #define MPI2_SASIOUNIT5_ITE_MASK_SATA_SLUMBER (0x0070) | ||
1862 | #define MPI2_SASIOUNIT5_ITE_SHIFT_SATA_SLUMBER (4) | ||
1863 | #define MPI2_SASIOUNIT5_ITE_MASK_SATA_PARTIAL (0x0007) | ||
1864 | #define MPI2_SASIOUNIT5_ITE_SHIFT_SATA_PARTIAL (0) | ||
1865 | |||
1866 | #define MPI2_SASIOUNIT5_ITE_TEN_SECONDS (7) | ||
1867 | #define MPI2_SASIOUNIT5_ITE_ONE_SECOND (6) | ||
1868 | #define MPI2_SASIOUNIT5_ITE_HUNDRED_MILLISECONDS (5) | ||
1869 | #define MPI2_SASIOUNIT5_ITE_TEN_MILLISECONDS (4) | ||
1870 | #define MPI2_SASIOUNIT5_ITE_ONE_MILLISECOND (3) | ||
1871 | #define MPI2_SASIOUNIT5_ITE_HUNDRED_MICROSECONDS (2) | ||
1872 | #define MPI2_SASIOUNIT5_ITE_TEN_MICROSECONDS (1) | ||
1873 | #define MPI2_SASIOUNIT5_ITE_ONE_MICROSECOND (0) | ||
1874 | |||
1875 | /* | ||
1876 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | ||
1877 | * one and check Header.ExtPageLength or NumPhys at runtime. | ||
1878 | */ | ||
1879 | #ifndef MPI2_SAS_IOUNIT5_PHY_MAX | ||
1880 | #define MPI2_SAS_IOUNIT5_PHY_MAX (1) | ||
1881 | #endif | ||
1882 | |||
1883 | typedef struct _MPI2_CONFIG_PAGE_SASIOUNIT_5 { | ||
1884 | MPI2_CONFIG_EXTENDED_PAGE_HEADER Header; /* 0x00 */ | ||
1885 | U8 NumPhys; /* 0x08 */ | ||
1886 | U8 Reserved1; /* 0x09 */ | ||
1887 | U16 Reserved2; /* 0x0A */ | ||
1888 | U32 Reserved3; /* 0x0C */ | ||
1889 | MPI2_SAS_IO_UNIT5_PHY_PM_SETTINGS SASPhyPowerManagementSettings | ||
1890 | [MPI2_SAS_IOUNIT5_PHY_MAX]; /* 0x10 */ | ||
1891 | } MPI2_CONFIG_PAGE_SASIOUNIT_5, | ||
1892 | MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SASIOUNIT_5, | ||
1893 | Mpi2SasIOUnitPage5_t, MPI2_POINTER pMpi2SasIOUnitPage5_t; | ||
1894 | |||
1895 | #define MPI2_SASIOUNITPAGE5_PAGEVERSION (0x00) | ||
1896 | |||
1897 | |||
1898 | |||
1899 | |||
1748 | /**************************************************************************** | 1900 | /**************************************************************************** |
1749 | * SAS Expander Config Pages | 1901 | * SAS Expander Config Pages |
1750 | ****************************************************************************/ | 1902 | ****************************************************************************/ |
@@ -1927,6 +2079,8 @@ typedef struct _MPI2_CONFIG_PAGE_SAS_DEV_0 | |||
1927 | /* see mpi2_sas.h for values for SAS Device Page 0 DeviceInfo values */ | 2079 | /* see mpi2_sas.h for values for SAS Device Page 0 DeviceInfo values */ |
1928 | 2080 | ||
1929 | /* values for SAS Device Page 0 Flags field */ | 2081 | /* values for SAS Device Page 0 Flags field */ |
2082 | #define MPI2_SAS_DEVICE0_FLAGS_SLUMBER_PM_CAPABLE (0x1000) | ||
2083 | #define MPI2_SAS_DEVICE0_FLAGS_PARTIAL_PM_CAPABLE (0x0800) | ||
1930 | #define MPI2_SAS_DEVICE0_FLAGS_SATA_ASYNCHRONOUS_NOTIFY (0x0400) | 2084 | #define MPI2_SAS_DEVICE0_FLAGS_SATA_ASYNCHRONOUS_NOTIFY (0x0400) |
1931 | #define MPI2_SAS_DEVICE0_FLAGS_SATA_SW_PRESERVE (0x0200) | 2085 | #define MPI2_SAS_DEVICE0_FLAGS_SATA_SW_PRESERVE (0x0200) |
1932 | #define MPI2_SAS_DEVICE0_FLAGS_UNSUPPORTED_DEVICE (0x0100) | 2086 | #define MPI2_SAS_DEVICE0_FLAGS_UNSUPPORTED_DEVICE (0x0100) |
@@ -2140,6 +2294,26 @@ typedef struct _MPI2_CONFIG_PAGE_SAS_PHY_3 { | |||
2140 | #define MPI2_SASPHY3_PAGEVERSION (0x00) | 2294 | #define MPI2_SASPHY3_PAGEVERSION (0x00) |
2141 | 2295 | ||
2142 | 2296 | ||
2297 | /* SAS PHY Page 4 */ | ||
2298 | |||
2299 | typedef struct _MPI2_CONFIG_PAGE_SAS_PHY_4 { | ||
2300 | MPI2_CONFIG_EXTENDED_PAGE_HEADER Header; /* 0x00 */ | ||
2301 | U16 Reserved1; /* 0x08 */ | ||
2302 | U8 Reserved2; /* 0x0A */ | ||
2303 | U8 Flags; /* 0x0B */ | ||
2304 | U8 InitialFrame[28]; /* 0x0C */ | ||
2305 | } MPI2_CONFIG_PAGE_SAS_PHY_4, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SAS_PHY_4, | ||
2306 | Mpi2SasPhyPage4_t, MPI2_POINTER pMpi2SasPhyPage4_t; | ||
2307 | |||
2308 | #define MPI2_SASPHY4_PAGEVERSION (0x00) | ||
2309 | |||
2310 | /* values for the Flags field */ | ||
2311 | #define MPI2_SASPHY4_FLAGS_FRAME_VALID (0x02) | ||
2312 | #define MPI2_SASPHY4_FLAGS_SATA_FRAME (0x01) | ||
2313 | |||
2314 | |||
2315 | |||
2316 | |||
2143 | /**************************************************************************** | 2317 | /**************************************************************************** |
2144 | * SAS Port Config Pages | 2318 | * SAS Port Config Pages |
2145 | ****************************************************************************/ | 2319 | ****************************************************************************/ |
@@ -2343,5 +2517,122 @@ typedef struct _MPI2_CONFIG_PAGE_DRIVER_MAPPING_0 | |||
2343 | #define MPI2_DRVMAP0_MAPINFO_MISSING_MASK (0x000F) | 2517 | #define MPI2_DRVMAP0_MAPINFO_MISSING_MASK (0x000F) |
2344 | 2518 | ||
2345 | 2519 | ||
2520 | /**************************************************************************** | ||
2521 | * Ethernet Config Pages | ||
2522 | ****************************************************************************/ | ||
2523 | |||
2524 | /* Ethernet Page 0 */ | ||
2525 | |||
2526 | /* IP address (union of IPv4 and IPv6) */ | ||
2527 | typedef union _MPI2_ETHERNET_IP_ADDR { | ||
2528 | U32 IPv4Addr; | ||
2529 | U32 IPv6Addr[4]; | ||
2530 | } MPI2_ETHERNET_IP_ADDR, MPI2_POINTER PTR_MPI2_ETHERNET_IP_ADDR, | ||
2531 | Mpi2EthernetIpAddr_t, MPI2_POINTER pMpi2EthernetIpAddr_t; | ||
2532 | |||
2533 | #define MPI2_ETHERNET_HOST_NAME_LENGTH (32) | ||
2534 | |||
2535 | typedef struct _MPI2_CONFIG_PAGE_ETHERNET_0 { | ||
2536 | MPI2_CONFIG_EXTENDED_PAGE_HEADER Header; /* 0x00 */ | ||
2537 | U8 NumInterfaces; /* 0x08 */ | ||
2538 | U8 Reserved0; /* 0x09 */ | ||
2539 | U16 Reserved1; /* 0x0A */ | ||
2540 | U32 Status; /* 0x0C */ | ||
2541 | U8 MediaState; /* 0x10 */ | ||
2542 | U8 Reserved2; /* 0x11 */ | ||
2543 | U16 Reserved3; /* 0x12 */ | ||
2544 | U8 MacAddress[6]; /* 0x14 */ | ||
2545 | U8 Reserved4; /* 0x1A */ | ||
2546 | U8 Reserved5; /* 0x1B */ | ||
2547 | MPI2_ETHERNET_IP_ADDR IpAddress; /* 0x1C */ | ||
2548 | MPI2_ETHERNET_IP_ADDR SubnetMask; /* 0x2C */ | ||
2549 | MPI2_ETHERNET_IP_ADDR GatewayIpAddress; /* 0x3C */ | ||
2550 | MPI2_ETHERNET_IP_ADDR DNS1IpAddress; /* 0x4C */ | ||
2551 | MPI2_ETHERNET_IP_ADDR DNS2IpAddress; /* 0x5C */ | ||
2552 | MPI2_ETHERNET_IP_ADDR DhcpIpAddress; /* 0x6C */ | ||
2553 | U8 HostName | ||
2554 | [MPI2_ETHERNET_HOST_NAME_LENGTH];/* 0x7C */ | ||
2555 | } MPI2_CONFIG_PAGE_ETHERNET_0, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_ETHERNET_0, | ||
2556 | Mpi2EthernetPage0_t, MPI2_POINTER pMpi2EthernetPage0_t; | ||
2557 | |||
2558 | #define MPI2_ETHERNETPAGE0_PAGEVERSION (0x00) | ||
2559 | |||
2560 | /* values for Ethernet Page 0 Status field */ | ||
2561 | #define MPI2_ETHPG0_STATUS_IPV6_CAPABLE (0x80000000) | ||
2562 | #define MPI2_ETHPG0_STATUS_IPV4_CAPABLE (0x40000000) | ||
2563 | #define MPI2_ETHPG0_STATUS_CONSOLE_CONNECTED (0x20000000) | ||
2564 | #define MPI2_ETHPG0_STATUS_DEFAULT_IF (0x00000100) | ||
2565 | #define MPI2_ETHPG0_STATUS_FW_DWNLD_ENABLED (0x00000080) | ||
2566 | #define MPI2_ETHPG0_STATUS_TELNET_ENABLED (0x00000040) | ||
2567 | #define MPI2_ETHPG0_STATUS_SSH2_ENABLED (0x00000020) | ||
2568 | #define MPI2_ETHPG0_STATUS_DHCP_CLIENT_ENABLED (0x00000010) | ||
2569 | #define MPI2_ETHPG0_STATUS_IPV6_ENABLED (0x00000008) | ||
2570 | #define MPI2_ETHPG0_STATUS_IPV4_ENABLED (0x00000004) | ||
2571 | #define MPI2_ETHPG0_STATUS_IPV6_ADDRESSES (0x00000002) | ||
2572 | #define MPI2_ETHPG0_STATUS_ETH_IF_ENABLED (0x00000001) | ||
2573 | |||
2574 | /* values for Ethernet Page 0 MediaState field */ | ||
2575 | #define MPI2_ETHPG0_MS_DUPLEX_MASK (0x80) | ||
2576 | #define MPI2_ETHPG0_MS_HALF_DUPLEX (0x00) | ||
2577 | #define MPI2_ETHPG0_MS_FULL_DUPLEX (0x80) | ||
2578 | |||
2579 | #define MPI2_ETHPG0_MS_CONNECT_SPEED_MASK (0x07) | ||
2580 | #define MPI2_ETHPG0_MS_NOT_CONNECTED (0x00) | ||
2581 | #define MPI2_ETHPG0_MS_10MBIT (0x01) | ||
2582 | #define MPI2_ETHPG0_MS_100MBIT (0x02) | ||
2583 | #define MPI2_ETHPG0_MS_1GBIT (0x03) | ||
2584 | |||
2585 | |||
2586 | /* Ethernet Page 1 */ | ||
2587 | |||
2588 | typedef struct _MPI2_CONFIG_PAGE_ETHERNET_1 { | ||
2589 | MPI2_CONFIG_EXTENDED_PAGE_HEADER Header; /* 0x00 */ | ||
2590 | U32 Reserved0; /* 0x08 */ | ||
2591 | U32 Flags; /* 0x0C */ | ||
2592 | U8 MediaState; /* 0x10 */ | ||
2593 | U8 Reserved1; /* 0x11 */ | ||
2594 | U16 Reserved2; /* 0x12 */ | ||
2595 | U8 MacAddress[6]; /* 0x14 */ | ||
2596 | U8 Reserved3; /* 0x1A */ | ||
2597 | U8 Reserved4; /* 0x1B */ | ||
2598 | MPI2_ETHERNET_IP_ADDR StaticIpAddress; /* 0x1C */ | ||
2599 | MPI2_ETHERNET_IP_ADDR StaticSubnetMask; /* 0x2C */ | ||
2600 | MPI2_ETHERNET_IP_ADDR StaticGatewayIpAddress; /* 0x3C */ | ||
2601 | MPI2_ETHERNET_IP_ADDR StaticDNS1IpAddress; /* 0x4C */ | ||
2602 | MPI2_ETHERNET_IP_ADDR StaticDNS2IpAddress; /* 0x5C */ | ||
2603 | U32 Reserved5; /* 0x6C */ | ||
2604 | U32 Reserved6; /* 0x70 */ | ||
2605 | U32 Reserved7; /* 0x74 */ | ||
2606 | U32 Reserved8; /* 0x78 */ | ||
2607 | U8 HostName | ||
2608 | [MPI2_ETHERNET_HOST_NAME_LENGTH];/* 0x7C */ | ||
2609 | } MPI2_CONFIG_PAGE_ETHERNET_1, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_ETHERNET_1, | ||
2610 | Mpi2EthernetPage1_t, MPI2_POINTER pMpi2EthernetPage1_t; | ||
2611 | |||
2612 | #define MPI2_ETHERNETPAGE1_PAGEVERSION (0x00) | ||
2613 | |||
2614 | /* values for Ethernet Page 1 Flags field */ | ||
2615 | #define MPI2_ETHPG1_FLAG_SET_DEFAULT_IF (0x00000100) | ||
2616 | #define MPI2_ETHPG1_FLAG_ENABLE_FW_DOWNLOAD (0x00000080) | ||
2617 | #define MPI2_ETHPG1_FLAG_ENABLE_TELNET (0x00000040) | ||
2618 | #define MPI2_ETHPG1_FLAG_ENABLE_SSH2 (0x00000020) | ||
2619 | #define MPI2_ETHPG1_FLAG_ENABLE_DHCP_CLIENT (0x00000010) | ||
2620 | #define MPI2_ETHPG1_FLAG_ENABLE_IPV6 (0x00000008) | ||
2621 | #define MPI2_ETHPG1_FLAG_ENABLE_IPV4 (0x00000004) | ||
2622 | #define MPI2_ETHPG1_FLAG_USE_IPV6_ADDRESSES (0x00000002) | ||
2623 | #define MPI2_ETHPG1_FLAG_ENABLE_ETH_IF (0x00000001) | ||
2624 | |||
2625 | /* values for Ethernet Page 1 MediaState field */ | ||
2626 | #define MPI2_ETHPG1_MS_DUPLEX_MASK (0x80) | ||
2627 | #define MPI2_ETHPG1_MS_HALF_DUPLEX (0x00) | ||
2628 | #define MPI2_ETHPG1_MS_FULL_DUPLEX (0x80) | ||
2629 | |||
2630 | #define MPI2_ETHPG1_MS_DATA_RATE_MASK (0x07) | ||
2631 | #define MPI2_ETHPG1_MS_DATA_RATE_AUTO (0x00) | ||
2632 | #define MPI2_ETHPG1_MS_DATA_RATE_10MBIT (0x01) | ||
2633 | #define MPI2_ETHPG1_MS_DATA_RATE_100MBIT (0x02) | ||
2634 | #define MPI2_ETHPG1_MS_DATA_RATE_1GBIT (0x03) | ||
2635 | |||
2636 | |||
2346 | #endif | 2637 | #endif |
2347 | 2638 | ||
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_history.txt b/drivers/scsi/mpt2sas/mpi/mpi2_history.txt index 65fcaa31cb30..c4adf76b49d9 100644 --- a/drivers/scsi/mpt2sas/mpi/mpi2_history.txt +++ b/drivers/scsi/mpt2sas/mpi/mpi2_history.txt | |||
@@ -5,23 +5,24 @@ | |||
5 | Copyright (c) 2000-2009 LSI Corporation. | 5 | Copyright (c) 2000-2009 LSI Corporation. |
6 | 6 | ||
7 | --------------------------------------- | 7 | --------------------------------------- |
8 | Header Set Release Version: 02.00.12 | 8 | Header Set Release Version: 02.00.14 |
9 | Header Set Release Date: 05-06-09 | 9 | Header Set Release Date: 10-28-09 |
10 | --------------------------------------- | 10 | --------------------------------------- |
11 | 11 | ||
12 | Filename Current version Prior version | 12 | Filename Current version Prior version |
13 | ---------- --------------- ------------- | 13 | ---------- --------------- ------------- |
14 | mpi2.h 02.00.12 02.00.11 | 14 | mpi2.h 02.00.14 02.00.13 |
15 | mpi2_cnfg.h 02.00.11 02.00.10 | 15 | mpi2_cnfg.h 02.00.13 02.00.12 |
16 | mpi2_init.h 02.00.07 02.00.06 | 16 | mpi2_init.h 02.00.08 02.00.07 |
17 | mpi2_ioc.h 02.00.11 02.00.10 | 17 | mpi2_ioc.h 02.00.13 02.00.12 |
18 | mpi2_raid.h 02.00.03 02.00.03 | 18 | mpi2_raid.h 02.00.04 02.00.04 |
19 | mpi2_sas.h 02.00.02 02.00.02 | 19 | mpi2_sas.h 02.00.03 02.00.02 |
20 | mpi2_targ.h 02.00.03 02.00.03 | 20 | mpi2_targ.h 02.00.03 02.00.03 |
21 | mpi2_tool.h 02.00.03 02.00.02 | 21 | mpi2_tool.h 02.00.04 02.00.04 |
22 | mpi2_type.h 02.00.00 02.00.00 | 22 | mpi2_type.h 02.00.00 02.00.00 |
23 | mpi2_ra.h 02.00.00 | 23 | mpi2_ra.h 02.00.00 02.00.00 |
24 | mpi2_history.txt 02.00.11 02.00.12 | 24 | mpi2_hbd.h 02.00.00 |
25 | mpi2_history.txt 02.00.14 02.00.13 | ||
25 | 26 | ||
26 | 27 | ||
27 | * Date Version Description | 28 | * Date Version Description |
@@ -65,6 +66,11 @@ mpi2.h | |||
65 | * MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR and made those | 66 | * MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR and made those |
66 | * bytes reserved. | 67 | * bytes reserved. |
67 | * Added RAID Accelerator functionality. | 68 | * Added RAID Accelerator functionality. |
69 | * 07-30-09 02.00.13 Bumped MPI2_HEADER_VERSION_UNIT. | ||
70 | * 10-28-09 02.00.14 Bumped MPI2_HEADER_VERSION_UNIT. | ||
71 | * Added MSI-x index mask and shift for Reply Post Host | ||
72 | * Index register. | ||
73 | * Added function code for Host Based Discovery Action. | ||
68 | * -------------------------------------------------------------------------- | 74 | * -------------------------------------------------------------------------- |
69 | 75 | ||
70 | mpi2_cnfg.h | 76 | mpi2_cnfg.h |
@@ -155,6 +161,15 @@ mpi2_cnfg.h | |||
155 | * Added expander reduced functionality data to SAS | 161 | * Added expander reduced functionality data to SAS |
156 | * Expander Page 0. | 162 | * Expander Page 0. |
157 | * Added SAS PHY Page 2 and SAS PHY Page 3. | 163 | * Added SAS PHY Page 2 and SAS PHY Page 3. |
164 | * 07-30-09 02.00.12 Added IO Unit Page 7. | ||
165 | * Added new device ids. | ||
166 | * Added SAS IO Unit Page 5. | ||
167 | * Added partial and slumber power management capable flags | ||
168 | * to SAS Device Page 0 Flags field. | ||
169 | * Added PhyInfo defines for power condition. | ||
170 | * Added Ethernet configuration pages. | ||
171 | * 10-28-09 02.00.13 Added MPI2_IOUNITPAGE1_ENABLE_HOST_BASED_DISCOVERY. | ||
172 | * Added SAS PHY Page 4 structure and defines. | ||
158 | * -------------------------------------------------------------------------- | 173 | * -------------------------------------------------------------------------- |
159 | 174 | ||
160 | mpi2_init.h | 175 | mpi2_init.h |
@@ -172,6 +187,10 @@ mpi2_init.h | |||
172 | * Query Asynchronous Event. | 187 | * Query Asynchronous Event. |
173 | * Defined two new bits in the SlotStatus field of the SCSI | 188 | * Defined two new bits in the SlotStatus field of the SCSI |
174 | * Enclosure Processor Request and Reply. | 189 | * Enclosure Processor Request and Reply. |
190 | * 10-28-09 02.00.08 Added defines for decoding the ResponseInfo bytes for | ||
191 | * both SCSI IO Error Reply and SCSI Task Management Reply. | ||
192 | * Added ResponseInfo field to MPI2_SCSI_TASK_MANAGE_REPLY. | ||
193 | * Added MPI2_SCSITASKMGMT_RSP_TM_OVERLAPPED_TAG define. | ||
175 | * -------------------------------------------------------------------------- | 194 | * -------------------------------------------------------------------------- |
176 | 195 | ||
177 | mpi2_ioc.h | 196 | mpi2_ioc.h |
@@ -246,6 +265,20 @@ mpi2_ioc.h | |||
246 | * Added two new reason codes for SAS Device Status Change | 265 | * Added two new reason codes for SAS Device Status Change |
247 | * Event. | 266 | * Event. |
248 | * Added new event: SAS PHY Counter. | 267 | * Added new event: SAS PHY Counter. |
268 | * 07-30-09 02.00.12 Added GPIO Interrupt event define and structure. | ||
269 | * Added MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER define. | ||
270 | * Added new product id family for 2208. | ||
271 | * 10-28-09 02.00.13 Added HostMSIxVectors field to MPI2_IOC_INIT_REQUEST. | ||
272 | * Added MaxMSIxVectors field to MPI2_IOC_FACTS_REPLY. | ||
273 | * Added MinDevHandle field to MPI2_IOC_FACTS_REPLY. | ||
274 | * Added MPI2_IOCFACTS_CAPABILITY_HOST_BASED_DISCOVERY. | ||
275 | * Added MPI2_EVENT_HOST_BASED_DISCOVERY_PHY define. | ||
276 | * Added MPI2_EVENT_SAS_TOPO_ES_NO_EXPANDER define. | ||
277 | * Added Host Based Discovery Phy Event data. | ||
278 | * Added defines for ProductID Product field | ||
279 | * (MPI2_FW_HEADER_PID_). | ||
280 | * Modified values for SAS ProductID Family | ||
281 | * (MPI2_FW_HEADER_PID_FAMILY_). | ||
249 | * -------------------------------------------------------------------------- | 282 | * -------------------------------------------------------------------------- |
250 | 283 | ||
251 | mpi2_raid.h | 284 | mpi2_raid.h |
@@ -256,6 +289,8 @@ mpi2_raid.h | |||
256 | * 05-21-08 02.00.03 Added MPI2_RAID_VOL_CREATION_NUM_PHYSDISKS so that | 289 | * 05-21-08 02.00.03 Added MPI2_RAID_VOL_CREATION_NUM_PHYSDISKS so that |
257 | * the PhysDisk array in MPI2_RAID_VOLUME_CREATION_STRUCT | 290 | * the PhysDisk array in MPI2_RAID_VOLUME_CREATION_STRUCT |
258 | * can be sized by the build environment. | 291 | * can be sized by the build environment. |
292 | * 07-30-09 02.00.04 Added proper define for the Use Default Settings bit of | ||
293 | * VolumeCreationFlags and marked the old one as obsolete. | ||
259 | * -------------------------------------------------------------------------- | 294 | * -------------------------------------------------------------------------- |
260 | 295 | ||
261 | mpi2_sas.h | 296 | mpi2_sas.h |
@@ -264,6 +299,8 @@ mpi2_sas.h | |||
264 | * Control Request. | 299 | * Control Request. |
265 | * 10-02-08 02.00.02 Added Set IOC Parameter Operation to SAS IO Unit Control | 300 | * 10-02-08 02.00.02 Added Set IOC Parameter Operation to SAS IO Unit Control |
266 | * Request. | 301 | * Request. |
302 | * 10-28-09 02.00.03 Changed the type of SGL in MPI2_SATA_PASSTHROUGH_REQUEST | ||
303 | * to MPI2_SGE_IO_UNION since it supports chained SGLs. | ||
267 | * -------------------------------------------------------------------------- | 304 | * -------------------------------------------------------------------------- |
268 | 305 | ||
269 | mpi2_targ.h | 306 | mpi2_targ.h |
@@ -283,6 +320,10 @@ mpi2_tool.h | |||
283 | * structures and defines. | 320 | * structures and defines. |
284 | * 02-29-08 02.00.02 Modified various names to make them 32-character unique. | 321 | * 02-29-08 02.00.02 Modified various names to make them 32-character unique. |
285 | * 05-06-09 02.00.03 Added ISTWI Read Write Tool and Diagnostic CLI Tool. | 322 | * 05-06-09 02.00.03 Added ISTWI Read Write Tool and Diagnostic CLI Tool. |
323 | * 07-30-09 02.00.04 Added ExtendedType field to DiagnosticBufferPost request | ||
324 | * and reply messages. | ||
325 | * Added MPI2_DIAG_BUF_TYPE_EXTENDED. | ||
326 | * Incremented MPI2_DIAG_BUF_TYPE_COUNT. | ||
286 | * -------------------------------------------------------------------------- | 327 | * -------------------------------------------------------------------------- |
287 | 328 | ||
288 | mpi2_type.h | 329 | mpi2_type.h |
@@ -293,20 +334,26 @@ mpi2_ra.h | |||
293 | * 05-06-09 02.00.00 Initial version. | 334 | * 05-06-09 02.00.00 Initial version. |
294 | * -------------------------------------------------------------------------- | 335 | * -------------------------------------------------------------------------- |
295 | 336 | ||
337 | mpi2_hbd.h | ||
338 | * 10-28-09 02.00.00 Initial version. | ||
339 | * -------------------------------------------------------------------------- | ||
340 | |||
341 | |||
296 | mpi2_history.txt Parts list history | 342 | mpi2_history.txt Parts list history |
297 | 343 | ||
298 | Filename 02.00.12 | 344 | Filename 02.00.14 02.00.13 02.00.12 |
299 | ---------- -------- | 345 | ---------- -------- -------- -------- |
300 | mpi2.h 02.00.12 | 346 | mpi2.h 02.00.14 02.00.13 02.00.12 |
301 | mpi2_cnfg.h 02.00.11 | 347 | mpi2_cnfg.h 02.00.13 02.00.12 02.00.11 |
302 | mpi2_init.h 02.00.07 | 348 | mpi2_init.h 02.00.08 02.00.07 02.00.07 |
303 | mpi2_ioc.h 02.00.11 | 349 | mpi2_ioc.h 02.00.13 02.00.12 02.00.11 |
304 | mpi2_raid.h 02.00.03 | 350 | mpi2_raid.h 02.00.04 02.00.04 02.00.03 |
305 | mpi2_sas.h 02.00.02 | 351 | mpi2_sas.h 02.00.03 02.00.02 02.00.02 |
306 | mpi2_targ.h 02.00.03 | 352 | mpi2_targ.h 02.00.03 02.00.03 02.00.03 |
307 | mpi2_tool.h 02.00.03 | 353 | mpi2_tool.h 02.00.04 02.00.04 02.00.03 |
308 | mpi2_type.h 02.00.00 | 354 | mpi2_type.h 02.00.00 02.00.00 02.00.00 |
309 | mpi2_ra.h 02.00.00 | 355 | mpi2_ra.h 02.00.00 02.00.00 02.00.00 |
356 | mpi2_hbd.h 02.00.00 | ||
310 | 357 | ||
311 | Filename 02.00.11 02.00.10 02.00.09 02.00.08 02.00.07 02.00.06 | 358 | Filename 02.00.11 02.00.10 02.00.09 02.00.08 02.00.07 02.00.06 |
312 | ---------- -------- -------- -------- -------- -------- -------- | 359 | ---------- -------- -------- -------- -------- -------- -------- |
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_init.h b/drivers/scsi/mpt2sas/mpi/mpi2_init.h index 563e56d2e945..6541945e97c3 100644 --- a/drivers/scsi/mpt2sas/mpi/mpi2_init.h +++ b/drivers/scsi/mpt2sas/mpi/mpi2_init.h | |||
@@ -6,7 +6,7 @@ | |||
6 | * Title: MPI SCSI initiator mode messages and structures | 6 | * Title: MPI SCSI initiator mode messages and structures |
7 | * Creation Date: June 23, 2006 | 7 | * Creation Date: June 23, 2006 |
8 | * | 8 | * |
9 | * mpi2_init.h Version: 02.00.07 | 9 | * mpi2_init.h Version: 02.00.08 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
@@ -27,6 +27,10 @@ | |||
27 | * Query Asynchronous Event. | 27 | * Query Asynchronous Event. |
28 | * Defined two new bits in the SlotStatus field of the SCSI | 28 | * Defined two new bits in the SlotStatus field of the SCSI |
29 | * Enclosure Processor Request and Reply. | 29 | * Enclosure Processor Request and Reply. |
30 | * 10-28-09 02.00.08 Added defines for decoding the ResponseInfo bytes for | ||
31 | * both SCSI IO Error Reply and SCSI Task Management Reply. | ||
32 | * Added ResponseInfo field to MPI2_SCSI_TASK_MANAGE_REPLY. | ||
33 | * Added MPI2_SCSITASKMGMT_RSP_TM_OVERLAPPED_TAG define. | ||
30 | * -------------------------------------------------------------------------- | 34 | * -------------------------------------------------------------------------- |
31 | */ | 35 | */ |
32 | 36 | ||
@@ -254,6 +258,11 @@ typedef struct _MPI2_SCSI_IO_REPLY | |||
254 | #define MPI2_SCSI_STATE_AUTOSENSE_FAILED (0x02) | 258 | #define MPI2_SCSI_STATE_AUTOSENSE_FAILED (0x02) |
255 | #define MPI2_SCSI_STATE_AUTOSENSE_VALID (0x01) | 259 | #define MPI2_SCSI_STATE_AUTOSENSE_VALID (0x01) |
256 | 260 | ||
261 | /* masks and shifts for the ResponseInfo field */ | ||
262 | |||
263 | #define MPI2_SCSI_RI_MASK_REASONCODE (0x000000FF) | ||
264 | #define MPI2_SCSI_RI_SHIFT_REASONCODE (0) | ||
265 | |||
257 | #define MPI2_SCSI_TASKTAG_UNKNOWN (0xFFFF) | 266 | #define MPI2_SCSI_TASKTAG_UNKNOWN (0xFFFF) |
258 | 267 | ||
259 | 268 | ||
@@ -327,6 +336,7 @@ typedef struct _MPI2_SCSI_TASK_MANAGE_REPLY | |||
327 | U16 IOCStatus; /* 0x0E */ | 336 | U16 IOCStatus; /* 0x0E */ |
328 | U32 IOCLogInfo; /* 0x10 */ | 337 | U32 IOCLogInfo; /* 0x10 */ |
329 | U32 TerminationCount; /* 0x14 */ | 338 | U32 TerminationCount; /* 0x14 */ |
339 | U32 ResponseInfo; /* 0x18 */ | ||
330 | } MPI2_SCSI_TASK_MANAGE_REPLY, | 340 | } MPI2_SCSI_TASK_MANAGE_REPLY, |
331 | MPI2_POINTER PTR_MPI2_SCSI_TASK_MANAGE_REPLY, | 341 | MPI2_POINTER PTR_MPI2_SCSI_TASK_MANAGE_REPLY, |
332 | Mpi2SCSITaskManagementReply_t, MPI2_POINTER pMpi2SCSIManagementReply_t; | 342 | Mpi2SCSITaskManagementReply_t, MPI2_POINTER pMpi2SCSIManagementReply_t; |
@@ -339,8 +349,20 @@ typedef struct _MPI2_SCSI_TASK_MANAGE_REPLY | |||
339 | #define MPI2_SCSITASKMGMT_RSP_TM_FAILED (0x05) | 349 | #define MPI2_SCSITASKMGMT_RSP_TM_FAILED (0x05) |
340 | #define MPI2_SCSITASKMGMT_RSP_TM_SUCCEEDED (0x08) | 350 | #define MPI2_SCSITASKMGMT_RSP_TM_SUCCEEDED (0x08) |
341 | #define MPI2_SCSITASKMGMT_RSP_TM_INVALID_LUN (0x09) | 351 | #define MPI2_SCSITASKMGMT_RSP_TM_INVALID_LUN (0x09) |
352 | #define MPI2_SCSITASKMGMT_RSP_TM_OVERLAPPED_TAG (0x0A) | ||
342 | #define MPI2_SCSITASKMGMT_RSP_IO_QUEUED_ON_IOC (0x80) | 353 | #define MPI2_SCSITASKMGMT_RSP_IO_QUEUED_ON_IOC (0x80) |
343 | 354 | ||
355 | /* masks and shifts for the ResponseInfo field */ | ||
356 | |||
357 | #define MPI2_SCSITASKMGMT_RI_MASK_REASONCODE (0x000000FF) | ||
358 | #define MPI2_SCSITASKMGMT_RI_SHIFT_REASONCODE (0) | ||
359 | #define MPI2_SCSITASKMGMT_RI_MASK_ARI2 (0x0000FF00) | ||
360 | #define MPI2_SCSITASKMGMT_RI_SHIFT_ARI2 (8) | ||
361 | #define MPI2_SCSITASKMGMT_RI_MASK_ARI1 (0x00FF0000) | ||
362 | #define MPI2_SCSITASKMGMT_RI_SHIFT_ARI1 (16) | ||
363 | #define MPI2_SCSITASKMGMT_RI_MASK_ARI0 (0xFF000000) | ||
364 | #define MPI2_SCSITASKMGMT_RI_SHIFT_ARI0 (24) | ||
365 | |||
344 | 366 | ||
345 | /**************************************************************************** | 367 | /**************************************************************************** |
346 | * SCSI Enclosure Processor messages | 368 | * SCSI Enclosure Processor messages |
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h b/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h index c294128bdeb4..754938422f6a 100644 --- a/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h +++ b/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h | |||
@@ -6,7 +6,7 @@ | |||
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: October 11, 2006 | 7 | * Creation Date: October 11, 2006 |
8 | * | 8 | * |
9 | * mpi2_ioc.h Version: 02.00.11 | 9 | * mpi2_ioc.h Version: 02.00.13 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
@@ -84,6 +84,20 @@ | |||
84 | * Added two new reason codes for SAS Device Status Change | 84 | * Added two new reason codes for SAS Device Status Change |
85 | * Event. | 85 | * Event. |
86 | * Added new event: SAS PHY Counter. | 86 | * Added new event: SAS PHY Counter. |
87 | * 07-30-09 02.00.12 Added GPIO Interrupt event define and structure. | ||
88 | * Added MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER define. | ||
89 | * Added new product id family for 2208. | ||
90 | * 10-28-09 02.00.13 Added HostMSIxVectors field to MPI2_IOC_INIT_REQUEST. | ||
91 | * Added MaxMSIxVectors field to MPI2_IOC_FACTS_REPLY. | ||
92 | * Added MinDevHandle field to MPI2_IOC_FACTS_REPLY. | ||
93 | * Added MPI2_IOCFACTS_CAPABILITY_HOST_BASED_DISCOVERY. | ||
94 | * Added MPI2_EVENT_HOST_BASED_DISCOVERY_PHY define. | ||
95 | * Added MPI2_EVENT_SAS_TOPO_ES_NO_EXPANDER define. | ||
96 | * Added Host Based Discovery Phy Event data. | ||
97 | * Added defines for ProductID Product field | ||
98 | * (MPI2_FW_HEADER_PID_). | ||
99 | * Modified values for SAS ProductID Family | ||
100 | * (MPI2_FW_HEADER_PID_FAMILY_). | ||
87 | * -------------------------------------------------------------------------- | 101 | * -------------------------------------------------------------------------- |
88 | */ | 102 | */ |
89 | 103 | ||
@@ -116,8 +130,10 @@ typedef struct _MPI2_IOC_INIT_REQUEST | |||
116 | U16 MsgVersion; /* 0x0C */ | 130 | U16 MsgVersion; /* 0x0C */ |
117 | U16 HeaderVersion; /* 0x0E */ | 131 | U16 HeaderVersion; /* 0x0E */ |
118 | U32 Reserved5; /* 0x10 */ | 132 | U32 Reserved5; /* 0x10 */ |
119 | U32 Reserved6; /* 0x14 */ | 133 | U16 Reserved6; /* 0x14 */ |
120 | U16 Reserved7; /* 0x18 */ | 134 | U8 Reserved7; /* 0x16 */ |
135 | U8 HostMSIxVectors; /* 0x17 */ | ||
136 | U16 Reserved8; /* 0x18 */ | ||
121 | U16 SystemRequestFrameSize; /* 0x1A */ | 137 | U16 SystemRequestFrameSize; /* 0x1A */ |
122 | U16 ReplyDescriptorPostQueueDepth; /* 0x1C */ | 138 | U16 ReplyDescriptorPostQueueDepth; /* 0x1C */ |
123 | U16 ReplyFreeQueueDepth; /* 0x1E */ | 139 | U16 ReplyFreeQueueDepth; /* 0x1E */ |
@@ -212,7 +228,7 @@ typedef struct _MPI2_IOC_FACTS_REPLY | |||
212 | U8 MaxChainDepth; /* 0x14 */ | 228 | U8 MaxChainDepth; /* 0x14 */ |
213 | U8 WhoInit; /* 0x15 */ | 229 | U8 WhoInit; /* 0x15 */ |
214 | U8 NumberOfPorts; /* 0x16 */ | 230 | U8 NumberOfPorts; /* 0x16 */ |
215 | U8 Reserved2; /* 0x17 */ | 231 | U8 MaxMSIxVectors; /* 0x17 */ |
216 | U16 RequestCredit; /* 0x18 */ | 232 | U16 RequestCredit; /* 0x18 */ |
217 | U16 ProductID; /* 0x1A */ | 233 | U16 ProductID; /* 0x1A */ |
218 | U32 IOCCapabilities; /* 0x1C */ | 234 | U32 IOCCapabilities; /* 0x1C */ |
@@ -230,7 +246,8 @@ typedef struct _MPI2_IOC_FACTS_REPLY | |||
230 | U8 MaxVolumes; /* 0x37 */ | 246 | U8 MaxVolumes; /* 0x37 */ |
231 | U16 MaxDevHandle; /* 0x38 */ | 247 | U16 MaxDevHandle; /* 0x38 */ |
232 | U16 MaxPersistentEntries; /* 0x3A */ | 248 | U16 MaxPersistentEntries; /* 0x3A */ |
233 | U32 Reserved4; /* 0x3C */ | 249 | U16 MinDevHandle; /* 0x3C */ |
250 | U16 Reserved4; /* 0x3E */ | ||
234 | } MPI2_IOC_FACTS_REPLY, MPI2_POINTER PTR_MPI2_IOC_FACTS_REPLY, | 251 | } MPI2_IOC_FACTS_REPLY, MPI2_POINTER PTR_MPI2_IOC_FACTS_REPLY, |
235 | Mpi2IOCFactsReply_t, MPI2_POINTER pMpi2IOCFactsReply_t; | 252 | Mpi2IOCFactsReply_t, MPI2_POINTER pMpi2IOCFactsReply_t; |
236 | 253 | ||
@@ -266,6 +283,7 @@ typedef struct _MPI2_IOC_FACTS_REPLY | |||
266 | /* ProductID field uses MPI2_FW_HEADER_PID_ */ | 283 | /* ProductID field uses MPI2_FW_HEADER_PID_ */ |
267 | 284 | ||
268 | /* IOCCapabilities */ | 285 | /* IOCCapabilities */ |
286 | #define MPI2_IOCFACTS_CAPABILITY_HOST_BASED_DISCOVERY (0x00010000) | ||
269 | #define MPI2_IOCFACTS_CAPABILITY_MSI_X_INDEX (0x00008000) | 287 | #define MPI2_IOCFACTS_CAPABILITY_MSI_X_INDEX (0x00008000) |
270 | #define MPI2_IOCFACTS_CAPABILITY_RAID_ACCELERATOR (0x00004000) | 288 | #define MPI2_IOCFACTS_CAPABILITY_RAID_ACCELERATOR (0x00004000) |
271 | #define MPI2_IOCFACTS_CAPABILITY_EVENT_REPLAY (0x00002000) | 289 | #define MPI2_IOCFACTS_CAPABILITY_EVENT_REPLAY (0x00002000) |
@@ -274,6 +292,7 @@ typedef struct _MPI2_IOC_FACTS_REPLY | |||
274 | #define MPI2_IOCFACTS_CAPABILITY_MULTICAST (0x00000100) | 292 | #define MPI2_IOCFACTS_CAPABILITY_MULTICAST (0x00000100) |
275 | #define MPI2_IOCFACTS_CAPABILITY_BIDIRECTIONAL_TARGET (0x00000080) | 293 | #define MPI2_IOCFACTS_CAPABILITY_BIDIRECTIONAL_TARGET (0x00000080) |
276 | #define MPI2_IOCFACTS_CAPABILITY_EEDP (0x00000040) | 294 | #define MPI2_IOCFACTS_CAPABILITY_EEDP (0x00000040) |
295 | #define MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER (0x00000020) | ||
277 | #define MPI2_IOCFACTS_CAPABILITY_SNAPSHOT_BUFFER (0x00000010) | 296 | #define MPI2_IOCFACTS_CAPABILITY_SNAPSHOT_BUFFER (0x00000010) |
278 | #define MPI2_IOCFACTS_CAPABILITY_DIAG_TRACE_BUFFER (0x00000008) | 297 | #define MPI2_IOCFACTS_CAPABILITY_DIAG_TRACE_BUFFER (0x00000008) |
279 | #define MPI2_IOCFACTS_CAPABILITY_TASK_SET_FULL_HANDLING (0x00000004) | 298 | #define MPI2_IOCFACTS_CAPABILITY_TASK_SET_FULL_HANDLING (0x00000004) |
@@ -448,6 +467,8 @@ typedef struct _MPI2_EVENT_NOTIFICATION_REPLY | |||
448 | #define MPI2_EVENT_IR_CONFIGURATION_CHANGE_LIST (0x0020) | 467 | #define MPI2_EVENT_IR_CONFIGURATION_CHANGE_LIST (0x0020) |
449 | #define MPI2_EVENT_LOG_ENTRY_ADDED (0x0021) | 468 | #define MPI2_EVENT_LOG_ENTRY_ADDED (0x0021) |
450 | #define MPI2_EVENT_SAS_PHY_COUNTER (0x0022) | 469 | #define MPI2_EVENT_SAS_PHY_COUNTER (0x0022) |
470 | #define MPI2_EVENT_GPIO_INTERRUPT (0x0023) | ||
471 | #define MPI2_EVENT_HOST_BASED_DISCOVERY_PHY (0x0024) | ||
451 | 472 | ||
452 | 473 | ||
453 | /* Log Entry Added Event data */ | 474 | /* Log Entry Added Event data */ |
@@ -469,6 +490,16 @@ typedef struct _MPI2_EVENT_DATA_LOG_ENTRY_ADDED | |||
469 | MPI2_POINTER PTR_MPI2_EVENT_DATA_LOG_ENTRY_ADDED, | 490 | MPI2_POINTER PTR_MPI2_EVENT_DATA_LOG_ENTRY_ADDED, |
470 | Mpi2EventDataLogEntryAdded_t, MPI2_POINTER pMpi2EventDataLogEntryAdded_t; | 491 | Mpi2EventDataLogEntryAdded_t, MPI2_POINTER pMpi2EventDataLogEntryAdded_t; |
471 | 492 | ||
493 | /* GPIO Interrupt Event data */ | ||
494 | |||
495 | typedef struct _MPI2_EVENT_DATA_GPIO_INTERRUPT { | ||
496 | U8 GPIONum; /* 0x00 */ | ||
497 | U8 Reserved1; /* 0x01 */ | ||
498 | U16 Reserved2; /* 0x02 */ | ||
499 | } MPI2_EVENT_DATA_GPIO_INTERRUPT, | ||
500 | MPI2_POINTER PTR_MPI2_EVENT_DATA_GPIO_INTERRUPT, | ||
501 | Mpi2EventDataGpioInterrupt_t, MPI2_POINTER pMpi2EventDataGpioInterrupt_t; | ||
502 | |||
472 | /* Hard Reset Received Event data */ | 503 | /* Hard Reset Received Event data */ |
473 | 504 | ||
474 | typedef struct _MPI2_EVENT_DATA_HARD_RESET_RECEIVED | 505 | typedef struct _MPI2_EVENT_DATA_HARD_RESET_RECEIVED |
@@ -778,6 +809,7 @@ typedef struct _MPI2_EVENT_DATA_SAS_TOPOLOGY_CHANGE_LIST | |||
778 | MPI2_POINTER pMpi2EventDataSasTopologyChangeList_t; | 809 | MPI2_POINTER pMpi2EventDataSasTopologyChangeList_t; |
779 | 810 | ||
780 | /* values for the ExpStatus field */ | 811 | /* values for the ExpStatus field */ |
812 | #define MPI2_EVENT_SAS_TOPO_ES_NO_EXPANDER (0x00) | ||
781 | #define MPI2_EVENT_SAS_TOPO_ES_ADDED (0x01) | 813 | #define MPI2_EVENT_SAS_TOPO_ES_ADDED (0x01) |
782 | #define MPI2_EVENT_SAS_TOPO_ES_NOT_RESPONDING (0x02) | 814 | #define MPI2_EVENT_SAS_TOPO_ES_NOT_RESPONDING (0x02) |
783 | #define MPI2_EVENT_SAS_TOPO_ES_RESPONDING (0x03) | 815 | #define MPI2_EVENT_SAS_TOPO_ES_RESPONDING (0x03) |
@@ -863,6 +895,44 @@ typedef struct _MPI2_EVENT_DATA_SAS_PHY_COUNTER { | |||
863 | * */ | 895 | * */ |
864 | 896 | ||
865 | 897 | ||
898 | /* Host Based Discovery Phy Event data */ | ||
899 | |||
900 | typedef struct _MPI2_EVENT_HBD_PHY_SAS { | ||
901 | U8 Flags; /* 0x00 */ | ||
902 | U8 NegotiatedLinkRate; /* 0x01 */ | ||
903 | U8 PhyNum; /* 0x02 */ | ||
904 | U8 PhysicalPort; /* 0x03 */ | ||
905 | U32 Reserved1; /* 0x04 */ | ||
906 | U8 InitialFrame[28]; /* 0x08 */ | ||
907 | } MPI2_EVENT_HBD_PHY_SAS, MPI2_POINTER PTR_MPI2_EVENT_HBD_PHY_SAS, | ||
908 | Mpi2EventHbdPhySas_t, MPI2_POINTER pMpi2EventHbdPhySas_t; | ||
909 | |||
910 | /* values for the Flags field */ | ||
911 | #define MPI2_EVENT_HBD_SAS_FLAGS_FRAME_VALID (0x02) | ||
912 | #define MPI2_EVENT_HBD_SAS_FLAGS_SATA_FRAME (0x01) | ||
913 | |||
914 | /* use MPI2_SAS_NEG_LINK_RATE_ defines from mpi2_cnfg.h for | ||
915 | * the NegotiatedLinkRate field */ | ||
916 | |||
917 | typedef union _MPI2_EVENT_HBD_DESCRIPTOR { | ||
918 | MPI2_EVENT_HBD_PHY_SAS Sas; | ||
919 | } MPI2_EVENT_HBD_DESCRIPTOR, MPI2_POINTER PTR_MPI2_EVENT_HBD_DESCRIPTOR, | ||
920 | Mpi2EventHbdDescriptor_t, MPI2_POINTER pMpi2EventHbdDescriptor_t; | ||
921 | |||
922 | typedef struct _MPI2_EVENT_DATA_HBD_PHY { | ||
923 | U8 DescriptorType; /* 0x00 */ | ||
924 | U8 Reserved1; /* 0x01 */ | ||
925 | U16 Reserved2; /* 0x02 */ | ||
926 | U32 Reserved3; /* 0x04 */ | ||
927 | MPI2_EVENT_HBD_DESCRIPTOR Descriptor; /* 0x08 */ | ||
928 | } MPI2_EVENT_DATA_HBD_PHY, MPI2_POINTER PTR_MPI2_EVENT_DATA_HBD_PHY, | ||
929 | Mpi2EventDataHbdPhy_t, MPI2_POINTER pMpi2EventDataMpi2EventDataHbdPhy_t; | ||
930 | |||
931 | /* values for the DescriptorType field */ | ||
932 | #define MPI2_EVENT_HBD_DT_SAS (0x01) | ||
933 | |||
934 | |||
935 | |||
866 | /**************************************************************************** | 936 | /**************************************************************************** |
867 | * EventAck message | 937 | * EventAck message |
868 | ****************************************************************************/ | 938 | ****************************************************************************/ |
@@ -1111,12 +1181,17 @@ typedef struct _MPI2_FW_IMAGE_HEADER | |||
1111 | #define MPI2_FW_HEADER_PID_TYPE_MASK (0xF000) | 1181 | #define MPI2_FW_HEADER_PID_TYPE_MASK (0xF000) |
1112 | #define MPI2_FW_HEADER_PID_TYPE_SAS (0x2000) | 1182 | #define MPI2_FW_HEADER_PID_TYPE_SAS (0x2000) |
1113 | 1183 | ||
1114 | #define MPI2_FW_HEADER_PID_PROD_MASK (0x0F00) | 1184 | #define MPI2_FW_HEADER_PID_PROD_MASK (0x0F00) |
1115 | #define MPI2_FW_HEADER_PID_PROD_A (0x0000) | 1185 | #define MPI2_FW_HEADER_PID_PROD_A (0x0000) |
1186 | #define MPI2_FW_HEADER_PID_PROD_MASK (0x0F00) | ||
1187 | #define MPI2_FW_HEADER_PID_PROD_TARGET_INITIATOR_SCSI (0x0200) | ||
1188 | #define MPI2_FW_HEADER_PID_PROD_IR_SCSI (0x0700) | ||
1189 | |||
1116 | 1190 | ||
1117 | #define MPI2_FW_HEADER_PID_FAMILY_MASK (0x00FF) | 1191 | #define MPI2_FW_HEADER_PID_FAMILY_MASK (0x00FF) |
1118 | /* SAS */ | 1192 | /* SAS */ |
1119 | #define MPI2_FW_HEADER_PID_FAMILY_2108_SAS (0x0010) | 1193 | #define MPI2_FW_HEADER_PID_FAMILY_2108_SAS (0x0013) |
1194 | #define MPI2_FW_HEADER_PID_FAMILY_2208_SAS (0x0014) | ||
1120 | 1195 | ||
1121 | /* use MPI2_IOCFACTS_PROTOCOL_ defines for ProtocolFlags field */ | 1196 | /* use MPI2_IOCFACTS_PROTOCOL_ defines for ProtocolFlags field */ |
1122 | 1197 | ||
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_raid.h b/drivers/scsi/mpt2sas/mpi/mpi2_raid.h index 7134816d9046..5160c33d2a00 100644 --- a/drivers/scsi/mpt2sas/mpi/mpi2_raid.h +++ b/drivers/scsi/mpt2sas/mpi/mpi2_raid.h | |||
@@ -6,7 +6,7 @@ | |||
6 | * Title: MPI Integrated RAID messages and structures | 6 | * Title: MPI Integrated RAID messages and structures |
7 | * Creation Date: April 26, 2007 | 7 | * Creation Date: April 26, 2007 |
8 | * | 8 | * |
9 | * mpi2_raid.h Version: 02.00.03 | 9 | * mpi2_raid.h Version: 02.00.04 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
@@ -20,6 +20,8 @@ | |||
20 | * 05-21-08 02.00.03 Added MPI2_RAID_VOL_CREATION_NUM_PHYSDISKS so that | 20 | * 05-21-08 02.00.03 Added MPI2_RAID_VOL_CREATION_NUM_PHYSDISKS so that |
21 | * the PhysDisk array in MPI2_RAID_VOLUME_CREATION_STRUCT | 21 | * the PhysDisk array in MPI2_RAID_VOLUME_CREATION_STRUCT |
22 | * can be sized by the build environment. | 22 | * can be sized by the build environment. |
23 | * 07-30-09 02.00.04 Added proper define for the Use Default Settings bit of | ||
24 | * VolumeCreationFlags and marked the old one as obsolete. | ||
23 | * -------------------------------------------------------------------------- | 25 | * -------------------------------------------------------------------------- |
24 | */ | 26 | */ |
25 | 27 | ||
@@ -217,10 +219,14 @@ typedef struct _MPI2_RAID_VOLUME_CREATION_STRUCT | |||
217 | /* use MPI2_RAID_VOL_TYPE_ defines from mpi2_cnfg.h for VolumeType */ | 219 | /* use MPI2_RAID_VOL_TYPE_ defines from mpi2_cnfg.h for VolumeType */ |
218 | 220 | ||
219 | /* defines for the VolumeCreationFlags field */ | 221 | /* defines for the VolumeCreationFlags field */ |
222 | #define MPI2_RAID_VOL_CREATION_DEFAULT_SETTINGS (0x80000000) | ||
223 | #define MPI2_RAID_VOL_CREATION_BACKGROUND_INIT (0x00000004) | ||
224 | #define MPI2_RAID_VOL_CREATION_LOW_LEVEL_INIT (0x00000002) | ||
225 | #define MPI2_RAID_VOL_CREATION_MIGRATE_DATA (0x00000001) | ||
226 | /* The following is an obsolete define. | ||
227 | * It must be shifted left 24 bits in order to set the proper bit. | ||
228 | */ | ||
220 | #define MPI2_RAID_VOL_CREATION_USE_DEFAULT_SETTINGS (0x80) | 229 | #define MPI2_RAID_VOL_CREATION_USE_DEFAULT_SETTINGS (0x80) |
221 | #define MPI2_RAID_VOL_CREATION_BACKGROUND_INIT (0x04) | ||
222 | #define MPI2_RAID_VOL_CREATION_LOW_LEVEL_INIT (0x02) | ||
223 | #define MPI2_RAID_VOL_CREATION_MIGRATE_DATA (0x01) | ||
224 | 230 | ||
225 | 231 | ||
226 | /* RAID Online Capacity Expansion Structure */ | 232 | /* RAID Online Capacity Expansion Structure */ |
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_sas.h b/drivers/scsi/mpt2sas/mpi/mpi2_sas.h index 8a42b136cf53..2d8aeed51392 100644 --- a/drivers/scsi/mpt2sas/mpi/mpi2_sas.h +++ b/drivers/scsi/mpt2sas/mpi/mpi2_sas.h | |||
@@ -6,7 +6,7 @@ | |||
6 | * Title: MPI Serial Attached SCSI structures and definitions | 6 | * Title: MPI Serial Attached SCSI structures and definitions |
7 | * Creation Date: February 9, 2007 | 7 | * Creation Date: February 9, 2007 |
8 | * | 8 | * |
9 | * mpi2.h Version: 02.00.02 | 9 | * mpi2.h Version: 02.00.03 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
@@ -18,6 +18,8 @@ | |||
18 | * Control Request. | 18 | * Control Request. |
19 | * 10-02-08 02.00.02 Added Set IOC Parameter Operation to SAS IO Unit Control | 19 | * 10-02-08 02.00.02 Added Set IOC Parameter Operation to SAS IO Unit Control |
20 | * Request. | 20 | * Request. |
21 | * 10-28-09 02.00.03 Changed the type of SGL in MPI2_SATA_PASSTHROUGH_REQUEST | ||
22 | * to MPI2_SGE_IO_UNION since it supports chained SGLs. | ||
21 | * -------------------------------------------------------------------------- | 23 | * -------------------------------------------------------------------------- |
22 | */ | 24 | */ |
23 | 25 | ||
@@ -160,7 +162,7 @@ typedef struct _MPI2_SATA_PASSTHROUGH_REQUEST | |||
160 | U32 Reserved4; /* 0x14 */ | 162 | U32 Reserved4; /* 0x14 */ |
161 | U32 DataLength; /* 0x18 */ | 163 | U32 DataLength; /* 0x18 */ |
162 | U8 CommandFIS[20]; /* 0x1C */ | 164 | U8 CommandFIS[20]; /* 0x1C */ |
163 | MPI2_SIMPLE_SGE_UNION SGL; /* 0x20 */ | 165 | MPI2_SGE_IO_UNION SGL; /* 0x20 */ |
164 | } MPI2_SATA_PASSTHROUGH_REQUEST, MPI2_POINTER PTR_MPI2_SATA_PASSTHROUGH_REQUEST, | 166 | } MPI2_SATA_PASSTHROUGH_REQUEST, MPI2_POINTER PTR_MPI2_SATA_PASSTHROUGH_REQUEST, |
165 | Mpi2SataPassthroughRequest_t, MPI2_POINTER pMpi2SataPassthroughRequest_t; | 167 | Mpi2SataPassthroughRequest_t, MPI2_POINTER pMpi2SataPassthroughRequest_t; |
166 | 168 | ||
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_tool.h b/drivers/scsi/mpt2sas/mpi/mpi2_tool.h index 007e950f7bfa..73fcdbf92632 100644 --- a/drivers/scsi/mpt2sas/mpi/mpi2_tool.h +++ b/drivers/scsi/mpt2sas/mpi/mpi2_tool.h | |||
@@ -6,7 +6,7 @@ | |||
6 | * Title: MPI diagnostic tool structures and definitions | 6 | * Title: MPI diagnostic tool structures and definitions |
7 | * Creation Date: March 26, 2007 | 7 | * Creation Date: March 26, 2007 |
8 | * | 8 | * |
9 | * mpi2_tool.h Version: 02.00.03 | 9 | * mpi2_tool.h Version: 02.00.04 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
@@ -18,6 +18,10 @@ | |||
18 | * structures and defines. | 18 | * structures and defines. |
19 | * 02-29-08 02.00.02 Modified various names to make them 32-character unique. | 19 | * 02-29-08 02.00.02 Modified various names to make them 32-character unique. |
20 | * 05-06-09 02.00.03 Added ISTWI Read Write Tool and Diagnostic CLI Tool. | 20 | * 05-06-09 02.00.03 Added ISTWI Read Write Tool and Diagnostic CLI Tool. |
21 | * 07-30-09 02.00.04 Added ExtendedType field to DiagnosticBufferPost request | ||
22 | * and reply messages. | ||
23 | * Added MPI2_DIAG_BUF_TYPE_EXTENDED. | ||
24 | * Incremented MPI2_DIAG_BUF_TYPE_COUNT. | ||
21 | * -------------------------------------------------------------------------- | 25 | * -------------------------------------------------------------------------- |
22 | */ | 26 | */ |
23 | 27 | ||
@@ -282,7 +286,7 @@ typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY { | |||
282 | 286 | ||
283 | typedef struct _MPI2_DIAG_BUFFER_POST_REQUEST | 287 | typedef struct _MPI2_DIAG_BUFFER_POST_REQUEST |
284 | { | 288 | { |
285 | U8 Reserved1; /* 0x00 */ | 289 | U8 ExtendedType; /* 0x00 */ |
286 | U8 BufferType; /* 0x01 */ | 290 | U8 BufferType; /* 0x01 */ |
287 | U8 ChainOffset; /* 0x02 */ | 291 | U8 ChainOffset; /* 0x02 */ |
288 | U8 Function; /* 0x03 */ | 292 | U8 Function; /* 0x03 */ |
@@ -301,11 +305,15 @@ typedef struct _MPI2_DIAG_BUFFER_POST_REQUEST | |||
301 | } MPI2_DIAG_BUFFER_POST_REQUEST, MPI2_POINTER PTR_MPI2_DIAG_BUFFER_POST_REQUEST, | 305 | } MPI2_DIAG_BUFFER_POST_REQUEST, MPI2_POINTER PTR_MPI2_DIAG_BUFFER_POST_REQUEST, |
302 | Mpi2DiagBufferPostRequest_t, MPI2_POINTER pMpi2DiagBufferPostRequest_t; | 306 | Mpi2DiagBufferPostRequest_t, MPI2_POINTER pMpi2DiagBufferPostRequest_t; |
303 | 307 | ||
308 | /* values for the ExtendedType field */ | ||
309 | #define MPI2_DIAG_EXTENDED_TYPE_UTILIZATION (0x02) | ||
310 | |||
304 | /* values for the BufferType field */ | 311 | /* values for the BufferType field */ |
305 | #define MPI2_DIAG_BUF_TYPE_TRACE (0x00) | 312 | #define MPI2_DIAG_BUF_TYPE_TRACE (0x00) |
306 | #define MPI2_DIAG_BUF_TYPE_SNAPSHOT (0x01) | 313 | #define MPI2_DIAG_BUF_TYPE_SNAPSHOT (0x01) |
314 | #define MPI2_DIAG_BUF_TYPE_EXTENDED (0x02) | ||
307 | /* count of the number of buffer types */ | 315 | /* count of the number of buffer types */ |
308 | #define MPI2_DIAG_BUF_TYPE_COUNT (0x02) | 316 | #define MPI2_DIAG_BUF_TYPE_COUNT (0x03) |
309 | 317 | ||
310 | 318 | ||
311 | /**************************************************************************** | 319 | /**************************************************************************** |
@@ -314,7 +322,7 @@ typedef struct _MPI2_DIAG_BUFFER_POST_REQUEST | |||
314 | 322 | ||
315 | typedef struct _MPI2_DIAG_BUFFER_POST_REPLY | 323 | typedef struct _MPI2_DIAG_BUFFER_POST_REPLY |
316 | { | 324 | { |
317 | U8 Reserved1; /* 0x00 */ | 325 | U8 ExtendedType; /* 0x00 */ |
318 | U8 BufferType; /* 0x01 */ | 326 | U8 BufferType; /* 0x01 */ |
319 | U8 MsgLength; /* 0x02 */ | 327 | U8 MsgLength; /* 0x02 */ |
320 | U8 Function; /* 0x03 */ | 328 | U8 Function; /* 0x03 */ |