diff options
Diffstat (limited to 'drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h')
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h | 200 |
1 files changed, 198 insertions, 2 deletions
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h b/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h index 2f27cf6d6c65..ab47c4679640 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.10 | 9 | * mpi2_cnfg.h Version: 02.00.11 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
@@ -95,6 +95,11 @@ | |||
95 | * Added MPI2_SAS_DEVICE0_ASTATUS_DEVICE_BLOCKED define. | 95 | * Added MPI2_SAS_DEVICE0_ASTATUS_DEVICE_BLOCKED define. |
96 | * Added PortGroups, DmaGroup, and ControlGroup fields to | 96 | * Added PortGroups, DmaGroup, and ControlGroup fields to |
97 | * SAS Device Page 0. | 97 | * SAS Device Page 0. |
98 | * 05-06-09 02.00.11 Added structures and defines for IO Unit Page 5 and IO | ||
99 | * Unit Page 6. | ||
100 | * Added expander reduced functionality data to SAS | ||
101 | * Expander Page 0. | ||
102 | * Added SAS PHY Page 2 and SAS PHY Page 3. | ||
98 | * -------------------------------------------------------------------------- | 103 | * -------------------------------------------------------------------------- |
99 | */ | 104 | */ |
100 | 105 | ||
@@ -723,6 +728,65 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_3 | |||
723 | #define MPI2_IOUNITPAGE3_GPIO_SETTING_ON (0x0001) | 728 | #define MPI2_IOUNITPAGE3_GPIO_SETTING_ON (0x0001) |
724 | 729 | ||
725 | 730 | ||
731 | /* IO Unit Page 5 */ | ||
732 | |||
733 | /* | ||
734 | * Upper layer code (drivers, utilities, etc.) should leave this define set to | ||
735 | * one and check Header.PageLength or NumDmaEngines at runtime. | ||
736 | */ | ||
737 | #ifndef MPI2_IOUNITPAGE5_DMAENGINE_ENTRIES | ||
738 | #define MPI2_IOUNITPAGE5_DMAENGINE_ENTRIES (1) | ||
739 | #endif | ||
740 | |||
741 | typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_5 { | ||
742 | MPI2_CONFIG_PAGE_HEADER Header; /* 0x00 */ | ||
743 | U64 RaidAcceleratorBufferBaseAddress; /* 0x04 */ | ||
744 | U64 RaidAcceleratorBufferSize; /* 0x0C */ | ||
745 | U64 RaidAcceleratorControlBaseAddress; /* 0x14 */ | ||
746 | U8 RAControlSize; /* 0x1C */ | ||
747 | U8 NumDmaEngines; /* 0x1D */ | ||
748 | U8 RAMinControlSize; /* 0x1E */ | ||
749 | U8 RAMaxControlSize; /* 0x1F */ | ||
750 | U32 Reserved1; /* 0x20 */ | ||
751 | U32 Reserved2; /* 0x24 */ | ||
752 | U32 Reserved3; /* 0x28 */ | ||
753 | U32 DmaEngineCapabilities | ||
754 | [MPI2_IOUNITPAGE5_DMAENGINE_ENTRIES]; /* 0x2C */ | ||
755 | } MPI2_CONFIG_PAGE_IO_UNIT_5, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_IO_UNIT_5, | ||
756 | Mpi2IOUnitPage5_t, MPI2_POINTER pMpi2IOUnitPage5_t; | ||
757 | |||
758 | #define MPI2_IOUNITPAGE5_PAGEVERSION (0x00) | ||
759 | |||
760 | /* defines for IO Unit Page 5 DmaEngineCapabilities field */ | ||
761 | #define MPI2_IOUNITPAGE5_DMA_CAP_MASK_MAX_REQUESTS (0xFF00) | ||
762 | #define MPI2_IOUNITPAGE5_DMA_CAP_SHIFT_MAX_REQUESTS (16) | ||
763 | |||
764 | #define MPI2_IOUNITPAGE5_DMA_CAP_EEDP (0x0008) | ||
765 | #define MPI2_IOUNITPAGE5_DMA_CAP_PARITY_GENERATION (0x0004) | ||
766 | #define MPI2_IOUNITPAGE5_DMA_CAP_HASHING (0x0002) | ||
767 | #define MPI2_IOUNITPAGE5_DMA_CAP_ENCRYPTION (0x0001) | ||
768 | |||
769 | |||
770 | /* IO Unit Page 6 */ | ||
771 | |||
772 | typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_6 { | ||
773 | MPI2_CONFIG_PAGE_HEADER Header; /* 0x00 */ | ||
774 | U16 Flags; /* 0x04 */ | ||
775 | U8 RAHostControlSize; /* 0x06 */ | ||
776 | U8 Reserved0; /* 0x07 */ | ||
777 | U64 RaidAcceleratorHostControlBaseAddress; /* 0x08 */ | ||
778 | U32 Reserved1; /* 0x10 */ | ||
779 | U32 Reserved2; /* 0x14 */ | ||
780 | U32 Reserved3; /* 0x18 */ | ||
781 | } MPI2_CONFIG_PAGE_IO_UNIT_6, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_IO_UNIT_6, | ||
782 | Mpi2IOUnitPage6_t, MPI2_POINTER pMpi2IOUnitPage6_t; | ||
783 | |||
784 | #define MPI2_IOUNITPAGE6_PAGEVERSION (0x00) | ||
785 | |||
786 | /* defines for IO Unit Page 6 Flags field */ | ||
787 | #define MPI2_IOUNITPAGE6_FLAGS_ENABLE_RAID_ACCELERATOR (0x0001) | ||
788 | |||
789 | |||
726 | /**************************************************************************** | 790 | /**************************************************************************** |
727 | * IOC Config Pages | 791 | * IOC Config Pages |
728 | ****************************************************************************/ | 792 | ****************************************************************************/ |
@@ -1709,10 +1773,14 @@ typedef struct _MPI2_CONFIG_PAGE_EXPANDER_0 | |||
1709 | U64 ActiveZoneManagerSASAddress;/* 0x2C */ | 1773 | U64 ActiveZoneManagerSASAddress;/* 0x2C */ |
1710 | U16 ZoneLockInactivityLimit; /* 0x34 */ | 1774 | U16 ZoneLockInactivityLimit; /* 0x34 */ |
1711 | U16 Reserved1; /* 0x36 */ | 1775 | U16 Reserved1; /* 0x36 */ |
1776 | U8 TimeToReducedFunc; /* 0x38 */ | ||
1777 | U8 InitialTimeToReducedFunc; /* 0x39 */ | ||
1778 | U8 MaxReducedFuncTime; /* 0x3A */ | ||
1779 | U8 Reserved2; /* 0x3B */ | ||
1712 | } MPI2_CONFIG_PAGE_EXPANDER_0, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_EXPANDER_0, | 1780 | } MPI2_CONFIG_PAGE_EXPANDER_0, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_EXPANDER_0, |
1713 | Mpi2ExpanderPage0_t, MPI2_POINTER pMpi2ExpanderPage0_t; | 1781 | Mpi2ExpanderPage0_t, MPI2_POINTER pMpi2ExpanderPage0_t; |
1714 | 1782 | ||
1715 | #define MPI2_SASEXPANDER0_PAGEVERSION (0x05) | 1783 | #define MPI2_SASEXPANDER0_PAGEVERSION (0x06) |
1716 | 1784 | ||
1717 | /* values for SAS Expander Page 0 DiscoveryStatus field */ | 1785 | /* values for SAS Expander Page 0 DiscoveryStatus field */ |
1718 | #define MPI2_SAS_EXPANDER0_DS_MAX_ENCLOSURES_EXCEED (0x80000000) | 1786 | #define MPI2_SAS_EXPANDER0_DS_MAX_ENCLOSURES_EXCEED (0x80000000) |
@@ -1737,6 +1805,7 @@ typedef struct _MPI2_CONFIG_PAGE_EXPANDER_0 | |||
1737 | #define MPI2_SAS_EXPANDER0_DS_LOOP_DETECTED (0x00000001) | 1805 | #define MPI2_SAS_EXPANDER0_DS_LOOP_DETECTED (0x00000001) |
1738 | 1806 | ||
1739 | /* values for SAS Expander Page 0 Flags field */ | 1807 | /* values for SAS Expander Page 0 Flags field */ |
1808 | #define MPI2_SAS_EXPANDER0_FLAGS_REDUCED_FUNCTIONALITY (0x2000) | ||
1740 | #define MPI2_SAS_EXPANDER0_FLAGS_ZONE_LOCKED (0x1000) | 1809 | #define MPI2_SAS_EXPANDER0_FLAGS_ZONE_LOCKED (0x1000) |
1741 | #define MPI2_SAS_EXPANDER0_FLAGS_SUPPORTED_PHYSICAL_PRES (0x0800) | 1810 | #define MPI2_SAS_EXPANDER0_FLAGS_SUPPORTED_PHYSICAL_PRES (0x0800) |
1742 | #define MPI2_SAS_EXPANDER0_FLAGS_ASSERTED_PHYSICAL_PRES (0x0400) | 1811 | #define MPI2_SAS_EXPANDER0_FLAGS_ASSERTED_PHYSICAL_PRES (0x0400) |
@@ -1944,6 +2013,133 @@ typedef struct _MPI2_CONFIG_PAGE_SAS_PHY_1 | |||
1944 | #define MPI2_SASPHY1_PAGEVERSION (0x01) | 2013 | #define MPI2_SASPHY1_PAGEVERSION (0x01) |
1945 | 2014 | ||
1946 | 2015 | ||
2016 | /* SAS PHY Page 2 */ | ||
2017 | |||
2018 | typedef struct _MPI2_SASPHY2_PHY_EVENT { | ||
2019 | U8 PhyEventCode; /* 0x00 */ | ||
2020 | U8 Reserved1; /* 0x01 */ | ||
2021 | U16 Reserved2; /* 0x02 */ | ||
2022 | U32 PhyEventInfo; /* 0x04 */ | ||
2023 | } MPI2_SASPHY2_PHY_EVENT, MPI2_POINTER PTR_MPI2_SASPHY2_PHY_EVENT, | ||
2024 | Mpi2SasPhy2PhyEvent_t, MPI2_POINTER pMpi2SasPhy2PhyEvent_t; | ||
2025 | |||
2026 | /* use MPI2_SASPHY3_EVENT_CODE_ for the PhyEventCode field */ | ||
2027 | |||
2028 | |||
2029 | /* | ||
2030 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | ||
2031 | * one and check Header.ExtPageLength or NumPhyEvents at runtime. | ||
2032 | */ | ||
2033 | #ifndef MPI2_SASPHY2_PHY_EVENT_MAX | ||
2034 | #define MPI2_SASPHY2_PHY_EVENT_MAX (1) | ||
2035 | #endif | ||
2036 | |||
2037 | typedef struct _MPI2_CONFIG_PAGE_SAS_PHY_2 { | ||
2038 | MPI2_CONFIG_EXTENDED_PAGE_HEADER Header; /* 0x00 */ | ||
2039 | U32 Reserved1; /* 0x08 */ | ||
2040 | U8 NumPhyEvents; /* 0x0C */ | ||
2041 | U8 Reserved2; /* 0x0D */ | ||
2042 | U16 Reserved3; /* 0x0E */ | ||
2043 | MPI2_SASPHY2_PHY_EVENT PhyEvent[MPI2_SASPHY2_PHY_EVENT_MAX]; | ||
2044 | /* 0x10 */ | ||
2045 | } MPI2_CONFIG_PAGE_SAS_PHY_2, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SAS_PHY_2, | ||
2046 | Mpi2SasPhyPage2_t, MPI2_POINTER pMpi2SasPhyPage2_t; | ||
2047 | |||
2048 | #define MPI2_SASPHY2_PAGEVERSION (0x00) | ||
2049 | |||
2050 | |||
2051 | /* SAS PHY Page 3 */ | ||
2052 | |||
2053 | typedef struct _MPI2_SASPHY3_PHY_EVENT_CONFIG { | ||
2054 | U8 PhyEventCode; /* 0x00 */ | ||
2055 | U8 Reserved1; /* 0x01 */ | ||
2056 | U16 Reserved2; /* 0x02 */ | ||
2057 | U8 CounterType; /* 0x04 */ | ||
2058 | U8 ThresholdWindow; /* 0x05 */ | ||
2059 | U8 TimeUnits; /* 0x06 */ | ||
2060 | U8 Reserved3; /* 0x07 */ | ||
2061 | U32 EventThreshold; /* 0x08 */ | ||
2062 | U16 ThresholdFlags; /* 0x0C */ | ||
2063 | U16 Reserved4; /* 0x0E */ | ||
2064 | } MPI2_SASPHY3_PHY_EVENT_CONFIG, MPI2_POINTER PTR_MPI2_SASPHY3_PHY_EVENT_CONFIG, | ||
2065 | Mpi2SasPhy3PhyEventConfig_t, MPI2_POINTER pMpi2SasPhy3PhyEventConfig_t; | ||
2066 | |||
2067 | /* values for PhyEventCode field */ | ||
2068 | #define MPI2_SASPHY3_EVENT_CODE_NO_EVENT (0x00) | ||
2069 | #define MPI2_SASPHY3_EVENT_CODE_INVALID_DWORD (0x01) | ||
2070 | #define MPI2_SASPHY3_EVENT_CODE_RUNNING_DISPARITY_ERROR (0x02) | ||
2071 | #define MPI2_SASPHY3_EVENT_CODE_LOSS_DWORD_SYNC (0x03) | ||
2072 | #define MPI2_SASPHY3_EVENT_CODE_PHY_RESET_PROBLEM (0x04) | ||
2073 | #define MPI2_SASPHY3_EVENT_CODE_ELASTICITY_BUF_OVERFLOW (0x05) | ||
2074 | #define MPI2_SASPHY3_EVENT_CODE_RX_ERROR (0x06) | ||
2075 | #define MPI2_SASPHY3_EVENT_CODE_RX_ADDR_FRAME_ERROR (0x20) | ||
2076 | #define MPI2_SASPHY3_EVENT_CODE_TX_AC_OPEN_REJECT (0x21) | ||
2077 | #define MPI2_SASPHY3_EVENT_CODE_RX_AC_OPEN_REJECT (0x22) | ||
2078 | #define MPI2_SASPHY3_EVENT_CODE_TX_RC_OPEN_REJECT (0x23) | ||
2079 | #define MPI2_SASPHY3_EVENT_CODE_RX_RC_OPEN_REJECT (0x24) | ||
2080 | #define MPI2_SASPHY3_EVENT_CODE_RX_AIP_PARTIAL_WAITING_ON (0x25) | ||
2081 | #define MPI2_SASPHY3_EVENT_CODE_RX_AIP_CONNECT_WAITING_ON (0x26) | ||
2082 | #define MPI2_SASPHY3_EVENT_CODE_TX_BREAK (0x27) | ||
2083 | #define MPI2_SASPHY3_EVENT_CODE_RX_BREAK (0x28) | ||
2084 | #define MPI2_SASPHY3_EVENT_CODE_BREAK_TIMEOUT (0x29) | ||
2085 | #define MPI2_SASPHY3_EVENT_CODE_CONNECTION (0x2A) | ||
2086 | #define MPI2_SASPHY3_EVENT_CODE_PEAKTX_PATHWAY_BLOCKED (0x2B) | ||
2087 | #define MPI2_SASPHY3_EVENT_CODE_PEAKTX_ARB_WAIT_TIME (0x2C) | ||
2088 | #define MPI2_SASPHY3_EVENT_CODE_PEAK_ARB_WAIT_TIME (0x2D) | ||
2089 | #define MPI2_SASPHY3_EVENT_CODE_PEAK_CONNECT_TIME (0x2E) | ||
2090 | #define MPI2_SASPHY3_EVENT_CODE_TX_SSP_FRAMES (0x40) | ||
2091 | #define MPI2_SASPHY3_EVENT_CODE_RX_SSP_FRAMES (0x41) | ||
2092 | #define MPI2_SASPHY3_EVENT_CODE_TX_SSP_ERROR_FRAMES (0x42) | ||
2093 | #define MPI2_SASPHY3_EVENT_CODE_RX_SSP_ERROR_FRAMES (0x43) | ||
2094 | #define MPI2_SASPHY3_EVENT_CODE_TX_CREDIT_BLOCKED (0x44) | ||
2095 | #define MPI2_SASPHY3_EVENT_CODE_RX_CREDIT_BLOCKED (0x45) | ||
2096 | #define MPI2_SASPHY3_EVENT_CODE_TX_SATA_FRAMES (0x50) | ||
2097 | #define MPI2_SASPHY3_EVENT_CODE_RX_SATA_FRAMES (0x51) | ||
2098 | #define MPI2_SASPHY3_EVENT_CODE_SATA_OVERFLOW (0x52) | ||
2099 | #define MPI2_SASPHY3_EVENT_CODE_TX_SMP_FRAMES (0x60) | ||
2100 | #define MPI2_SASPHY3_EVENT_CODE_RX_SMP_FRAMES (0x61) | ||
2101 | #define MPI2_SASPHY3_EVENT_CODE_RX_SMP_ERROR_FRAMES (0x63) | ||
2102 | #define MPI2_SASPHY3_EVENT_CODE_HOTPLUG_TIMEOUT (0xD0) | ||
2103 | #define MPI2_SASPHY3_EVENT_CODE_MISALIGNED_MUX_PRIMITIVE (0xD1) | ||
2104 | #define MPI2_SASPHY3_EVENT_CODE_RX_AIP (0xD2) | ||
2105 | |||
2106 | /* values for the CounterType field */ | ||
2107 | #define MPI2_SASPHY3_COUNTER_TYPE_WRAPPING (0x00) | ||
2108 | #define MPI2_SASPHY3_COUNTER_TYPE_SATURATING (0x01) | ||
2109 | #define MPI2_SASPHY3_COUNTER_TYPE_PEAK_VALUE (0x02) | ||
2110 | |||
2111 | /* values for the TimeUnits field */ | ||
2112 | #define MPI2_SASPHY3_TIME_UNITS_10_MICROSECONDS (0x00) | ||
2113 | #define MPI2_SASPHY3_TIME_UNITS_100_MICROSECONDS (0x01) | ||
2114 | #define MPI2_SASPHY3_TIME_UNITS_1_MILLISECOND (0x02) | ||
2115 | #define MPI2_SASPHY3_TIME_UNITS_10_MILLISECONDS (0x03) | ||
2116 | |||
2117 | /* values for the ThresholdFlags field */ | ||
2118 | #define MPI2_SASPHY3_TFLAGS_PHY_RESET (0x0002) | ||
2119 | #define MPI2_SASPHY3_TFLAGS_EVENT_NOTIFY (0x0001) | ||
2120 | |||
2121 | /* | ||
2122 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | ||
2123 | * one and check Header.ExtPageLength or NumPhyEvents at runtime. | ||
2124 | */ | ||
2125 | #ifndef MPI2_SASPHY3_PHY_EVENT_MAX | ||
2126 | #define MPI2_SASPHY3_PHY_EVENT_MAX (1) | ||
2127 | #endif | ||
2128 | |||
2129 | typedef struct _MPI2_CONFIG_PAGE_SAS_PHY_3 { | ||
2130 | MPI2_CONFIG_EXTENDED_PAGE_HEADER Header; /* 0x00 */ | ||
2131 | U32 Reserved1; /* 0x08 */ | ||
2132 | U8 NumPhyEvents; /* 0x0C */ | ||
2133 | U8 Reserved2; /* 0x0D */ | ||
2134 | U16 Reserved3; /* 0x0E */ | ||
2135 | MPI2_SASPHY3_PHY_EVENT_CONFIG PhyEventConfig | ||
2136 | [MPI2_SASPHY3_PHY_EVENT_MAX]; /* 0x10 */ | ||
2137 | } MPI2_CONFIG_PAGE_SAS_PHY_3, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SAS_PHY_3, | ||
2138 | Mpi2SasPhyPage3_t, MPI2_POINTER pMpi2SasPhyPage3_t; | ||
2139 | |||
2140 | #define MPI2_SASPHY3_PAGEVERSION (0x00) | ||
2141 | |||
2142 | |||
1947 | /**************************************************************************** | 2143 | /**************************************************************************** |
1948 | * SAS Port Config Pages | 2144 | * SAS Port Config Pages |
1949 | ****************************************************************************/ | 2145 | ****************************************************************************/ |