diff options
Diffstat (limited to 'drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h')
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h | 153 |
1 files changed, 138 insertions, 15 deletions
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h b/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h index 61475a6480e3..cfd95b4e3004 100644 --- a/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h +++ b/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h | |||
@@ -1,12 +1,12 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) 2000-2010 LSI Corporation. | 2 | * Copyright (c) 2000-2011 LSI Corporation. |
3 | * | 3 | * |
4 | * | 4 | * |
5 | * Name: mpi2_cnfg.h | 5 | * Name: mpi2_cnfg.h |
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.17 | 9 | * mpi2_cnfg.h Version: 02.00.19 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
@@ -134,6 +134,12 @@ | |||
134 | * to MPI2_CONFIG_PAGE_IO_UNIT_7. | 134 | * to MPI2_CONFIG_PAGE_IO_UNIT_7. |
135 | * Added MPI2_CONFIG_EXTPAGETYPE_EXT_MANUFACTURING define | 135 | * Added MPI2_CONFIG_EXTPAGETYPE_EXT_MANUFACTURING define |
136 | * and MPI2_CONFIG_PAGE_EXT_MAN_PS structure. | 136 | * and MPI2_CONFIG_PAGE_EXT_MAN_PS structure. |
137 | * 02-23-11 02.00.18 Added ProxyVF_ID field to MPI2_CONFIG_REQUEST. | ||
138 | * Added IO Unit Page 8, IO Unit Page 9, | ||
139 | * and IO Unit Page 10. | ||
140 | * Added SASNotifyPrimitiveMasks field to | ||
141 | * MPI2_CONFIG_PAGE_IOC_7. | ||
142 | * 03-09-11 02.00.19 Fixed IO Unit Page 10 (to match the spec). | ||
137 | * -------------------------------------------------------------------------- | 143 | * -------------------------------------------------------------------------- |
138 | */ | 144 | */ |
139 | 145 | ||
@@ -329,7 +335,9 @@ typedef struct _MPI2_CONFIG_REQUEST | |||
329 | U8 VP_ID; /* 0x08 */ | 335 | U8 VP_ID; /* 0x08 */ |
330 | U8 VF_ID; /* 0x09 */ | 336 | U8 VF_ID; /* 0x09 */ |
331 | U16 Reserved1; /* 0x0A */ | 337 | U16 Reserved1; /* 0x0A */ |
332 | U32 Reserved2; /* 0x0C */ | 338 | U8 Reserved2; /* 0x0C */ |
339 | U8 ProxyVF_ID; /* 0x0D */ | ||
340 | U16 Reserved4; /* 0x0E */ | ||
333 | U32 Reserved3; /* 0x10 */ | 341 | U32 Reserved3; /* 0x10 */ |
334 | MPI2_CONFIG_PAGE_HEADER Header; /* 0x14 */ | 342 | MPI2_CONFIG_PAGE_HEADER Header; /* 0x14 */ |
335 | U32 PageAddress; /* 0x18 */ | 343 | U32 PageAddress; /* 0x18 */ |
@@ -915,6 +923,120 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_7 { | |||
915 | #define MPI2_IOUNITPAGE7_BOARD_TEMP_FAHRENHEIT (0x01) | 923 | #define MPI2_IOUNITPAGE7_BOARD_TEMP_FAHRENHEIT (0x01) |
916 | #define MPI2_IOUNITPAGE7_BOARD_TEMP_CELSIUS (0x02) | 924 | #define MPI2_IOUNITPAGE7_BOARD_TEMP_CELSIUS (0x02) |
917 | 925 | ||
926 | /* IO Unit Page 8 */ | ||
927 | |||
928 | #define MPI2_IOUNIT8_NUM_THRESHOLDS (4) | ||
929 | |||
930 | typedef struct _MPI2_IOUNIT8_SENSOR { | ||
931 | U16 Flags; /* 0x00 */ | ||
932 | U16 Reserved1; /* 0x02 */ | ||
933 | U16 | ||
934 | Threshold[MPI2_IOUNIT8_NUM_THRESHOLDS]; /* 0x04 */ | ||
935 | U32 Reserved2; /* 0x0C */ | ||
936 | U32 Reserved3; /* 0x10 */ | ||
937 | U32 Reserved4; /* 0x14 */ | ||
938 | } MPI2_IOUNIT8_SENSOR, MPI2_POINTER PTR_MPI2_IOUNIT8_SENSOR, | ||
939 | Mpi2IOUnit8Sensor_t, MPI2_POINTER pMpi2IOUnit8Sensor_t; | ||
940 | |||
941 | /* defines for IO Unit Page 8 Sensor Flags field */ | ||
942 | #define MPI2_IOUNIT8_SENSOR_FLAGS_T3_ENABLE (0x0008) | ||
943 | #define MPI2_IOUNIT8_SENSOR_FLAGS_T2_ENABLE (0x0004) | ||
944 | #define MPI2_IOUNIT8_SENSOR_FLAGS_T1_ENABLE (0x0002) | ||
945 | #define MPI2_IOUNIT8_SENSOR_FLAGS_T0_ENABLE (0x0001) | ||
946 | |||
947 | /* | ||
948 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | ||
949 | * one and check the value returned for NumSensors at runtime. | ||
950 | */ | ||
951 | #ifndef MPI2_IOUNITPAGE8_SENSOR_ENTRIES | ||
952 | #define MPI2_IOUNITPAGE8_SENSOR_ENTRIES (1) | ||
953 | #endif | ||
954 | |||
955 | typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_8 { | ||
956 | MPI2_CONFIG_PAGE_HEADER Header; /* 0x00 */ | ||
957 | U32 Reserved1; /* 0x04 */ | ||
958 | U32 Reserved2; /* 0x08 */ | ||
959 | U8 NumSensors; /* 0x0C */ | ||
960 | U8 PollingInterval; /* 0x0D */ | ||
961 | U16 Reserved3; /* 0x0E */ | ||
962 | MPI2_IOUNIT8_SENSOR | ||
963 | Sensor[MPI2_IOUNITPAGE8_SENSOR_ENTRIES];/* 0x10 */ | ||
964 | } MPI2_CONFIG_PAGE_IO_UNIT_8, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_IO_UNIT_8, | ||
965 | Mpi2IOUnitPage8_t, MPI2_POINTER pMpi2IOUnitPage8_t; | ||
966 | |||
967 | #define MPI2_IOUNITPAGE8_PAGEVERSION (0x00) | ||
968 | |||
969 | |||
970 | /* IO Unit Page 9 */ | ||
971 | |||
972 | typedef struct _MPI2_IOUNIT9_SENSOR { | ||
973 | U16 CurrentTemperature; /* 0x00 */ | ||
974 | U16 Reserved1; /* 0x02 */ | ||
975 | U8 Flags; /* 0x04 */ | ||
976 | U8 Reserved2; /* 0x05 */ | ||
977 | U16 Reserved3; /* 0x06 */ | ||
978 | U32 Reserved4; /* 0x08 */ | ||
979 | U32 Reserved5; /* 0x0C */ | ||
980 | } MPI2_IOUNIT9_SENSOR, MPI2_POINTER PTR_MPI2_IOUNIT9_SENSOR, | ||
981 | Mpi2IOUnit9Sensor_t, MPI2_POINTER pMpi2IOUnit9Sensor_t; | ||
982 | |||
983 | /* defines for IO Unit Page 9 Sensor Flags field */ | ||
984 | #define MPI2_IOUNIT9_SENSOR_FLAGS_TEMP_VALID (0x01) | ||
985 | |||
986 | /* | ||
987 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | ||
988 | * one and check the value returned for NumSensors at runtime. | ||
989 | */ | ||
990 | #ifndef MPI2_IOUNITPAGE9_SENSOR_ENTRIES | ||
991 | #define MPI2_IOUNITPAGE9_SENSOR_ENTRIES (1) | ||
992 | #endif | ||
993 | |||
994 | typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_9 { | ||
995 | MPI2_CONFIG_PAGE_HEADER Header; /* 0x00 */ | ||
996 | U32 Reserved1; /* 0x04 */ | ||
997 | U32 Reserved2; /* 0x08 */ | ||
998 | U8 NumSensors; /* 0x0C */ | ||
999 | U8 Reserved4; /* 0x0D */ | ||
1000 | U16 Reserved3; /* 0x0E */ | ||
1001 | MPI2_IOUNIT9_SENSOR | ||
1002 | Sensor[MPI2_IOUNITPAGE9_SENSOR_ENTRIES];/* 0x10 */ | ||
1003 | } MPI2_CONFIG_PAGE_IO_UNIT_9, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_IO_UNIT_9, | ||
1004 | Mpi2IOUnitPage9_t, MPI2_POINTER pMpi2IOUnitPage9_t; | ||
1005 | |||
1006 | #define MPI2_IOUNITPAGE9_PAGEVERSION (0x00) | ||
1007 | |||
1008 | |||
1009 | /* IO Unit Page 10 */ | ||
1010 | |||
1011 | typedef struct _MPI2_IOUNIT10_FUNCTION { | ||
1012 | U8 CreditPercent; /* 0x00 */ | ||
1013 | U8 Reserved1; /* 0x01 */ | ||
1014 | U16 Reserved2; /* 0x02 */ | ||
1015 | } MPI2_IOUNIT10_FUNCTION, MPI2_POINTER PTR_MPI2_IOUNIT10_FUNCTION, | ||
1016 | Mpi2IOUnit10Function_t, MPI2_POINTER pMpi2IOUnit10Function_t; | ||
1017 | |||
1018 | /* | ||
1019 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | ||
1020 | * one and check the value returned for NumFunctions at runtime. | ||
1021 | */ | ||
1022 | #ifndef MPI2_IOUNITPAGE10_FUNCTION_ENTRIES | ||
1023 | #define MPI2_IOUNITPAGE10_FUNCTION_ENTRIES (1) | ||
1024 | #endif | ||
1025 | |||
1026 | typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_10 { | ||
1027 | MPI2_CONFIG_PAGE_HEADER Header; /* 0x00 */ | ||
1028 | U8 NumFunctions; /* 0x04 */ | ||
1029 | U8 Reserved1; /* 0x05 */ | ||
1030 | U16 Reserved2; /* 0x06 */ | ||
1031 | U32 Reserved3; /* 0x08 */ | ||
1032 | U32 Reserved4; /* 0x0C */ | ||
1033 | MPI2_IOUNIT10_FUNCTION | ||
1034 | Function[MPI2_IOUNITPAGE10_FUNCTION_ENTRIES];/* 0x10 */ | ||
1035 | } MPI2_CONFIG_PAGE_IO_UNIT_10, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_IO_UNIT_10, | ||
1036 | Mpi2IOUnitPage10_t, MPI2_POINTER pMpi2IOUnitPage10_t; | ||
1037 | |||
1038 | #define MPI2_IOUNITPAGE10_PAGEVERSION (0x01) | ||
1039 | |||
918 | 1040 | ||
919 | 1041 | ||
920 | /**************************************************************************** | 1042 | /**************************************************************************** |
@@ -1022,12 +1144,12 @@ typedef struct _MPI2_CONFIG_PAGE_IOC_7 | |||
1022 | U32 Reserved1; /* 0x04 */ | 1144 | U32 Reserved1; /* 0x04 */ |
1023 | U32 EventMasks[MPI2_IOCPAGE7_EVENTMASK_WORDS];/* 0x08 */ | 1145 | U32 EventMasks[MPI2_IOCPAGE7_EVENTMASK_WORDS];/* 0x08 */ |
1024 | U16 SASBroadcastPrimitiveMasks; /* 0x18 */ | 1146 | U16 SASBroadcastPrimitiveMasks; /* 0x18 */ |
1025 | U16 Reserved2; /* 0x1A */ | 1147 | U16 SASNotifyPrimitiveMasks; /* 0x1A */ |
1026 | U32 Reserved3; /* 0x1C */ | 1148 | U32 Reserved3; /* 0x1C */ |
1027 | } MPI2_CONFIG_PAGE_IOC_7, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_IOC_7, | 1149 | } MPI2_CONFIG_PAGE_IOC_7, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_IOC_7, |
1028 | Mpi2IOCPage7_t, MPI2_POINTER pMpi2IOCPage7_t; | 1150 | Mpi2IOCPage7_t, MPI2_POINTER pMpi2IOCPage7_t; |
1029 | 1151 | ||
1030 | #define MPI2_IOCPAGE7_PAGEVERSION (0x01) | 1152 | #define MPI2_IOCPAGE7_PAGEVERSION (0x02) |
1031 | 1153 | ||
1032 | 1154 | ||
1033 | /* IOC Page 8 */ | 1155 | /* IOC Page 8 */ |
@@ -2070,16 +2192,16 @@ typedef struct _MPI2_CONFIG_PAGE_SASIOUNIT_8 { | |||
2070 | #define MPI2_SASIOUNITPAGE8_PAGEVERSION (0x00) | 2192 | #define MPI2_SASIOUNITPAGE8_PAGEVERSION (0x00) |
2071 | 2193 | ||
2072 | /* defines for PowerManagementCapabilities field */ | 2194 | /* defines for PowerManagementCapabilities field */ |
2073 | #define MPI2_SASIOUNIT8_PM_HOST_PORT_WIDTH_MOD (0x000001000) | 2195 | #define MPI2_SASIOUNIT8_PM_HOST_PORT_WIDTH_MOD (0x00001000) |
2074 | #define MPI2_SASIOUNIT8_PM_HOST_SAS_SLUMBER_MODE (0x000000800) | 2196 | #define MPI2_SASIOUNIT8_PM_HOST_SAS_SLUMBER_MODE (0x00000800) |
2075 | #define MPI2_SASIOUNIT8_PM_HOST_SAS_PARTIAL_MODE (0x000000400) | 2197 | #define MPI2_SASIOUNIT8_PM_HOST_SAS_PARTIAL_MODE (0x00000400) |
2076 | #define MPI2_SASIOUNIT8_PM_HOST_SATA_SLUMBER_MODE (0x000000200) | 2198 | #define MPI2_SASIOUNIT8_PM_HOST_SATA_SLUMBER_MODE (0x00000200) |
2077 | #define MPI2_SASIOUNIT8_PM_HOST_SATA_PARTIAL_MODE (0x000000100) | 2199 | #define MPI2_SASIOUNIT8_PM_HOST_SATA_PARTIAL_MODE (0x00000100) |
2078 | #define MPI2_SASIOUNIT8_PM_IOUNIT_PORT_WIDTH_MOD (0x000000010) | 2200 | #define MPI2_SASIOUNIT8_PM_IOUNIT_PORT_WIDTH_MOD (0x00000010) |
2079 | #define MPI2_SASIOUNIT8_PM_IOUNIT_SAS_SLUMBER_MODE (0x000000008) | 2201 | #define MPI2_SASIOUNIT8_PM_IOUNIT_SAS_SLUMBER_MODE (0x00000008) |
2080 | #define MPI2_SASIOUNIT8_PM_IOUNIT_SAS_PARTIAL_MODE (0x000000004) | 2202 | #define MPI2_SASIOUNIT8_PM_IOUNIT_SAS_PARTIAL_MODE (0x00000004) |
2081 | #define MPI2_SASIOUNIT8_PM_IOUNIT_SATA_SLUMBER_MODE (0x000000002) | 2203 | #define MPI2_SASIOUNIT8_PM_IOUNIT_SATA_SLUMBER_MODE (0x00000002) |
2082 | #define MPI2_SASIOUNIT8_PM_IOUNIT_SATA_PARTIAL_MODE (0x000000001) | 2204 | #define MPI2_SASIOUNIT8_PM_IOUNIT_SATA_PARTIAL_MODE (0x00000001) |
2083 | 2205 | ||
2084 | 2206 | ||
2085 | 2207 | ||
@@ -2266,6 +2388,7 @@ typedef struct _MPI2_CONFIG_PAGE_SAS_DEV_0 | |||
2266 | /* see mpi2_sas.h for values for SAS Device Page 0 DeviceInfo values */ | 2388 | /* see mpi2_sas.h for values for SAS Device Page 0 DeviceInfo values */ |
2267 | 2389 | ||
2268 | /* values for SAS Device Page 0 Flags field */ | 2390 | /* values for SAS Device Page 0 Flags field */ |
2391 | #define MPI2_SAS_DEVICE0_FLAGS_UNAUTHORIZED_DEVICE (0x8000) | ||
2269 | #define MPI2_SAS_DEVICE0_FLAGS_SLUMBER_PM_CAPABLE (0x1000) | 2392 | #define MPI2_SAS_DEVICE0_FLAGS_SLUMBER_PM_CAPABLE (0x1000) |
2270 | #define MPI2_SAS_DEVICE0_FLAGS_PARTIAL_PM_CAPABLE (0x0800) | 2393 | #define MPI2_SAS_DEVICE0_FLAGS_PARTIAL_PM_CAPABLE (0x0800) |
2271 | #define MPI2_SAS_DEVICE0_FLAGS_SATA_ASYNCHRONOUS_NOTIFY (0x0400) | 2394 | #define MPI2_SAS_DEVICE0_FLAGS_SATA_ASYNCHRONOUS_NOTIFY (0x0400) |