diff options
Diffstat (limited to 'drivers/scsi/mpt2sas/mpi')
| -rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2.h | 11 | ||||
| -rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h | 153 | ||||
| -rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_ioc.h | 113 |
3 files changed, 256 insertions, 21 deletions
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2.h b/drivers/scsi/mpt2sas/mpi/mpi2.h index 3105d5e8d908..8dc1b32918dd 100644 --- a/drivers/scsi/mpt2sas/mpi/mpi2.h +++ b/drivers/scsi/mpt2sas/mpi/mpi2.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2000-2010 LSI Corporation. | 2 | * Copyright (c) 2000-2011 LSI Corporation. |
| 3 | * | 3 | * |
| 4 | * | 4 | * |
| 5 | * Name: mpi2.h | 5 | * Name: 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.18 | 11 | * mpi2.h Version: 02.00.20 |
| 12 | * | 12 | * |
| 13 | * Version History | 13 | * Version History |
| 14 | * --------------- | 14 | * --------------- |
| @@ -66,6 +66,9 @@ | |||
| 66 | * 08-11-10 02.00.17 Bumped MPI2_HEADER_VERSION_UNIT. | 66 | * 08-11-10 02.00.17 Bumped MPI2_HEADER_VERSION_UNIT. |
| 67 | * 11-10-10 02.00.18 Bumped MPI2_HEADER_VERSION_UNIT. | 67 | * 11-10-10 02.00.18 Bumped MPI2_HEADER_VERSION_UNIT. |
| 68 | * Added MPI2_IEEE_SGE_FLAGS_SYSTEMPLBCPI_ADDR define. | 68 | * Added MPI2_IEEE_SGE_FLAGS_SYSTEMPLBCPI_ADDR define. |
| 69 | * 02-23-11 02.00.19 Bumped MPI2_HEADER_VERSION_UNIT. | ||
| 70 | * Added MPI2_FUNCTION_SEND_HOST_MESSAGE. | ||
| 71 | * 03-09-11 02.00.20 Bumped MPI2_HEADER_VERSION_UNIT. | ||
| 69 | * -------------------------------------------------------------------------- | 72 | * -------------------------------------------------------------------------- |
| 70 | */ | 73 | */ |
| 71 | 74 | ||
| @@ -91,7 +94,7 @@ | |||
| 91 | #define MPI2_VERSION_02_00 (0x0200) | 94 | #define MPI2_VERSION_02_00 (0x0200) |
| 92 | 95 | ||
| 93 | /* versioning for this MPI header set */ | 96 | /* versioning for this MPI header set */ |
| 94 | #define MPI2_HEADER_VERSION_UNIT (0x12) | 97 | #define MPI2_HEADER_VERSION_UNIT (0x14) |
| 95 | #define MPI2_HEADER_VERSION_DEV (0x00) | 98 | #define MPI2_HEADER_VERSION_DEV (0x00) |
| 96 | #define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00) | 99 | #define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00) |
| 97 | #define MPI2_HEADER_VERSION_UNIT_SHIFT (8) | 100 | #define MPI2_HEADER_VERSION_UNIT_SHIFT (8) |
| @@ -515,6 +518,8 @@ typedef union _MPI2_REPLY_DESCRIPTORS_UNION | |||
| 515 | #define MPI2_FUNCTION_HOST_BASED_DISCOVERY_ACTION (0x2F) | 518 | #define MPI2_FUNCTION_HOST_BASED_DISCOVERY_ACTION (0x2F) |
| 516 | /* Power Management Control */ | 519 | /* Power Management Control */ |
| 517 | #define MPI2_FUNCTION_PWR_MGMT_CONTROL (0x30) | 520 | #define MPI2_FUNCTION_PWR_MGMT_CONTROL (0x30) |
| 521 | /* Send Host Message */ | ||
| 522 | #define MPI2_FUNCTION_SEND_HOST_MESSAGE (0x31) | ||
| 518 | /* beginning of product-specific range */ | 523 | /* beginning of product-specific range */ |
| 519 | #define MPI2_FUNCTION_MIN_PRODUCT_SPECIFIC (0xF0) | 524 | #define MPI2_FUNCTION_MIN_PRODUCT_SPECIFIC (0xF0) |
| 520 | /* end of product-specific range */ | 525 | /* end of product-specific range */ |
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) |
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h b/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h index 1f0c190d336e..93d9b6956d05 100644 --- a/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h +++ b/drivers/scsi/mpt2sas/mpi/mpi2_ioc.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_ioc.h | 5 | * Name: mpi2_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: October 11, 2006 | 7 | * Creation Date: October 11, 2006 |
| 8 | * | 8 | * |
| 9 | * mpi2_ioc.h Version: 02.00.16 | 9 | * mpi2_ioc.h Version: 02.00.17 |
| 10 | * | 10 | * |
| 11 | * Version History | 11 | * Version History |
| 12 | * --------------- | 12 | * --------------- |
| @@ -104,6 +104,12 @@ | |||
| 104 | * 05-12-10 02.00.15 Marked Task Set Full Event as obsolete. | 104 | * 05-12-10 02.00.15 Marked Task Set Full Event as obsolete. |
| 105 | * Added MPI2_EVENT_SAS_TOPO_LR_UNSUPPORTED_PHY define. | 105 | * Added MPI2_EVENT_SAS_TOPO_LR_UNSUPPORTED_PHY define. |
| 106 | * 11-10-10 02.00.16 Added MPI2_FW_DOWNLOAD_ITYPE_MIN_PRODUCT_SPECIFIC. | 106 | * 11-10-10 02.00.16 Added MPI2_FW_DOWNLOAD_ITYPE_MIN_PRODUCT_SPECIFIC. |
| 107 | * 02-23-11 02.00.17 Added SAS NOTIFY Primitive event, and added | ||
| 108 | * SASNotifyPrimitiveMasks field to | ||
| 109 | * MPI2_EVENT_NOTIFICATION_REQUEST. | ||
| 110 | * Added Temperature Threshold Event. | ||
| 111 | * Added Host Message Event. | ||
| 112 | * Added Send Host Message request and reply. | ||
| 107 | * -------------------------------------------------------------------------- | 113 | * -------------------------------------------------------------------------- |
| 108 | */ | 114 | */ |
| 109 | 115 | ||
| @@ -421,7 +427,7 @@ typedef struct _MPI2_EVENT_NOTIFICATION_REQUEST | |||
| 421 | U32 Reserved6; /* 0x10 */ | 427 | U32 Reserved6; /* 0x10 */ |
| 422 | U32 EventMasks[MPI2_EVENT_NOTIFY_EVENTMASK_WORDS];/* 0x14 */ | 428 | U32 EventMasks[MPI2_EVENT_NOTIFY_EVENTMASK_WORDS];/* 0x14 */ |
| 423 | U16 SASBroadcastPrimitiveMasks; /* 0x24 */ | 429 | U16 SASBroadcastPrimitiveMasks; /* 0x24 */ |
| 424 | U16 Reserved7; /* 0x26 */ | 430 | U16 SASNotifyPrimitiveMasks; /* 0x26 */ |
| 425 | U32 Reserved8; /* 0x28 */ | 431 | U32 Reserved8; /* 0x28 */ |
| 426 | } MPI2_EVENT_NOTIFICATION_REQUEST, | 432 | } MPI2_EVENT_NOTIFICATION_REQUEST, |
| 427 | MPI2_POINTER PTR_MPI2_EVENT_NOTIFICATION_REQUEST, | 433 | MPI2_POINTER PTR_MPI2_EVENT_NOTIFICATION_REQUEST, |
| @@ -476,6 +482,9 @@ typedef struct _MPI2_EVENT_NOTIFICATION_REPLY | |||
| 476 | #define MPI2_EVENT_GPIO_INTERRUPT (0x0023) | 482 | #define MPI2_EVENT_GPIO_INTERRUPT (0x0023) |
| 477 | #define MPI2_EVENT_HOST_BASED_DISCOVERY_PHY (0x0024) | 483 | #define MPI2_EVENT_HOST_BASED_DISCOVERY_PHY (0x0024) |
| 478 | #define MPI2_EVENT_SAS_QUIESCE (0x0025) | 484 | #define MPI2_EVENT_SAS_QUIESCE (0x0025) |
| 485 | #define MPI2_EVENT_SAS_NOTIFY_PRIMITIVE (0x0026) | ||
| 486 | #define MPI2_EVENT_TEMP_THRESHOLD (0x0027) | ||
| 487 | #define MPI2_EVENT_HOST_MESSAGE (0x0028) | ||
| 479 | 488 | ||
| 480 | 489 | ||
| 481 | /* Log Entry Added Event data */ | 490 | /* Log Entry Added Event data */ |
| @@ -507,6 +516,39 @@ typedef struct _MPI2_EVENT_DATA_GPIO_INTERRUPT { | |||
| 507 | MPI2_POINTER PTR_MPI2_EVENT_DATA_GPIO_INTERRUPT, | 516 | MPI2_POINTER PTR_MPI2_EVENT_DATA_GPIO_INTERRUPT, |
| 508 | Mpi2EventDataGpioInterrupt_t, MPI2_POINTER pMpi2EventDataGpioInterrupt_t; | 517 | Mpi2EventDataGpioInterrupt_t, MPI2_POINTER pMpi2EventDataGpioInterrupt_t; |
| 509 | 518 | ||
| 519 | /* Temperature Threshold Event data */ | ||
| 520 | |||
| 521 | typedef struct _MPI2_EVENT_DATA_TEMPERATURE { | ||
| 522 | U16 Status; /* 0x00 */ | ||
| 523 | U8 SensorNum; /* 0x02 */ | ||
| 524 | U8 Reserved1; /* 0x03 */ | ||
| 525 | U16 CurrentTemperature; /* 0x04 */ | ||
| 526 | U16 Reserved2; /* 0x06 */ | ||
| 527 | U32 Reserved3; /* 0x08 */ | ||
| 528 | U32 Reserved4; /* 0x0C */ | ||
| 529 | } MPI2_EVENT_DATA_TEMPERATURE, | ||
| 530 | MPI2_POINTER PTR_MPI2_EVENT_DATA_TEMPERATURE, | ||
| 531 | Mpi2EventDataTemperature_t, MPI2_POINTER pMpi2EventDataTemperature_t; | ||
| 532 | |||
| 533 | /* Temperature Threshold Event data Status bits */ | ||
| 534 | #define MPI2_EVENT_TEMPERATURE3_EXCEEDED (0x0008) | ||
| 535 | #define MPI2_EVENT_TEMPERATURE2_EXCEEDED (0x0004) | ||
| 536 | #define MPI2_EVENT_TEMPERATURE1_EXCEEDED (0x0002) | ||
| 537 | #define MPI2_EVENT_TEMPERATURE0_EXCEEDED (0x0001) | ||
| 538 | |||
| 539 | |||
| 540 | /* Host Message Event data */ | ||
| 541 | |||
| 542 | typedef struct _MPI2_EVENT_DATA_HOST_MESSAGE { | ||
| 543 | U8 SourceVF_ID; /* 0x00 */ | ||
| 544 | U8 Reserved1; /* 0x01 */ | ||
| 545 | U16 Reserved2; /* 0x02 */ | ||
| 546 | U32 Reserved3; /* 0x04 */ | ||
| 547 | U32 HostData[1]; /* 0x08 */ | ||
| 548 | } MPI2_EVENT_DATA_HOST_MESSAGE, MPI2_POINTER PTR_MPI2_EVENT_DATA_HOST_MESSAGE, | ||
| 549 | Mpi2EventDataHostMessage_t, MPI2_POINTER pMpi2EventDataHostMessage_t; | ||
| 550 | |||
| 551 | |||
| 510 | /* Hard Reset Received Event data */ | 552 | /* Hard Reset Received Event data */ |
| 511 | 553 | ||
| 512 | typedef struct _MPI2_EVENT_DATA_HARD_RESET_RECEIVED | 554 | typedef struct _MPI2_EVENT_DATA_HARD_RESET_RECEIVED |
| @@ -749,6 +791,24 @@ typedef struct _MPI2_EVENT_DATA_SAS_BROADCAST_PRIMITIVE | |||
| 749 | #define MPI2_EVENT_PRIMITIVE_CHANGE0_RESERVED (0x07) | 791 | #define MPI2_EVENT_PRIMITIVE_CHANGE0_RESERVED (0x07) |
| 750 | #define MPI2_EVENT_PRIMITIVE_CHANGE1_RESERVED (0x08) | 792 | #define MPI2_EVENT_PRIMITIVE_CHANGE1_RESERVED (0x08) |
| 751 | 793 | ||
| 794 | /* SAS Notify Primitive Event data */ | ||
| 795 | |||
| 796 | typedef struct _MPI2_EVENT_DATA_SAS_NOTIFY_PRIMITIVE { | ||
| 797 | U8 PhyNum; /* 0x00 */ | ||
| 798 | U8 Port; /* 0x01 */ | ||
| 799 | U8 Reserved1; /* 0x02 */ | ||
| 800 | U8 Primitive; /* 0x03 */ | ||
| 801 | } MPI2_EVENT_DATA_SAS_NOTIFY_PRIMITIVE, | ||
| 802 | MPI2_POINTER PTR_MPI2_EVENT_DATA_SAS_NOTIFY_PRIMITIVE, | ||
| 803 | Mpi2EventDataSasNotifyPrimitive_t, | ||
| 804 | MPI2_POINTER pMpi2EventDataSasNotifyPrimitive_t; | ||
| 805 | |||
| 806 | /* defines for the Primitive field */ | ||
| 807 | #define MPI2_EVENT_NOTIFY_ENABLE_SPINUP (0x01) | ||
| 808 | #define MPI2_EVENT_NOTIFY_POWER_LOSS_EXPECTED (0x02) | ||
| 809 | #define MPI2_EVENT_NOTIFY_RESERVED1 (0x03) | ||
| 810 | #define MPI2_EVENT_NOTIFY_RESERVED2 (0x04) | ||
| 811 | |||
| 752 | 812 | ||
| 753 | /* SAS Initiator Device Status Change Event data */ | 813 | /* SAS Initiator Device Status Change Event data */ |
| 754 | 814 | ||
| @@ -1001,6 +1061,53 @@ typedef struct _MPI2_EVENT_ACK_REPLY | |||
| 1001 | 1061 | ||
| 1002 | 1062 | ||
| 1003 | /**************************************************************************** | 1063 | /**************************************************************************** |
| 1064 | * SendHostMessage message | ||
| 1065 | ****************************************************************************/ | ||
| 1066 | |||
| 1067 | /* SendHostMessage Request message */ | ||
| 1068 | typedef struct _MPI2_SEND_HOST_MESSAGE_REQUEST { | ||
| 1069 | U16 HostDataLength; /* 0x00 */ | ||
| 1070 | U8 ChainOffset; /* 0x02 */ | ||
| 1071 | U8 Function; /* 0x03 */ | ||
| 1072 | U16 Reserved1; /* 0x04 */ | ||
| 1073 | U8 Reserved2; /* 0x06 */ | ||
| 1074 | U8 MsgFlags; /* 0x07 */ | ||
| 1075 | U8 VP_ID; /* 0x08 */ | ||
| 1076 | U8 VF_ID; /* 0x09 */ | ||
| 1077 | U16 Reserved3; /* 0x0A */ | ||
| 1078 | U8 Reserved4; /* 0x0C */ | ||
| 1079 | U8 DestVF_ID; /* 0x0D */ | ||
| 1080 | U16 Reserved5; /* 0x0E */ | ||
| 1081 | U32 Reserved6; /* 0x10 */ | ||
| 1082 | U32 Reserved7; /* 0x14 */ | ||
| 1083 | U32 Reserved8; /* 0x18 */ | ||
| 1084 | U32 Reserved9; /* 0x1C */ | ||
| 1085 | U32 Reserved10; /* 0x20 */ | ||
| 1086 | U32 HostData[1]; /* 0x24 */ | ||
| 1087 | } MPI2_SEND_HOST_MESSAGE_REQUEST, | ||
| 1088 | MPI2_POINTER PTR_MPI2_SEND_HOST_MESSAGE_REQUEST, | ||
| 1089 | Mpi2SendHostMessageRequest_t, MPI2_POINTER pMpi2SendHostMessageRequest_t; | ||
| 1090 | |||
| 1091 | |||
| 1092 | /* SendHostMessage Reply message */ | ||
| 1093 | typedef struct _MPI2_SEND_HOST_MESSAGE_REPLY { | ||
| 1094 | U16 HostDataLength; /* 0x00 */ | ||
| 1095 | U8 MsgLength; /* 0x02 */ | ||
| 1096 | U8 Function; /* 0x03 */ | ||
| 1097 | U16 Reserved1; /* 0x04 */ | ||
| 1098 | U8 Reserved2; /* 0x06 */ | ||
| 1099 | U8 MsgFlags; /* 0x07 */ | ||
| 1100 | U8 VP_ID; /* 0x08 */ | ||
| 1101 | U8 VF_ID; /* 0x09 */ | ||
| 1102 | U16 Reserved3; /* 0x0A */ | ||
| 1103 | U16 Reserved4; /* 0x0C */ | ||
| 1104 | U16 IOCStatus; /* 0x0E */ | ||
| 1105 | U32 IOCLogInfo; /* 0x10 */ | ||
| 1106 | } MPI2_SEND_HOST_MESSAGE_REPLY, MPI2_POINTER PTR_MPI2_SEND_HOST_MESSAGE_REPLY, | ||
| 1107 | Mpi2SendHostMessageReply_t, MPI2_POINTER pMpi2SendHostMessageReply_t; | ||
| 1108 | |||
| 1109 | |||
| 1110 | /**************************************************************************** | ||
| 1004 | * FWDownload message | 1111 | * FWDownload message |
| 1005 | ****************************************************************************/ | 1112 | ****************************************************************************/ |
| 1006 | 1113 | ||
