Commit eae225eb5947825bc4e845c33ded9aedd74407cf
Committed by
James Bottomley
1 parent
86b9c4c16a
Exists in
master
and in
7 other branches
[SCSI] fusion: mpi header update - version 1.05.14
Here are the lastest mpi headers for mpt fusion driver, which defines the firmware to driver interface. Signed-off-by: Eric Moore <Eric.Moore@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Showing 7 changed files with 410 additions and 180 deletions Inline Diff
drivers/message/fusion/lsi/mpi.h
1 | /* | 1 | /* |
2 | * Copyright (c) 2000-2005 LSI Logic Corporation. | 2 | * Copyright (c) 2000-2006 LSI Logic Corporation. |
3 | * | 3 | * |
4 | * | 4 | * |
5 | * Name: mpi.h | 5 | * Name: mpi.h |
6 | * Title: MPI Message independent structures and definitions | 6 | * Title: MPI Message independent structures and definitions |
7 | * Creation Date: July 27, 2000 | 7 | * Creation Date: July 27, 2000 |
8 | * | 8 | * |
9 | * mpi.h Version: 01.05.11 | 9 | * mpi.h Version: 01.05.12 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
13 | * | 13 | * |
14 | * Date Version Description | 14 | * Date Version Description |
15 | * -------- -------- ------------------------------------------------------ | 15 | * -------- -------- ------------------------------------------------------ |
16 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. | 16 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. |
17 | * 05-24-00 00.10.02 Added MPI_IOCSTATUS_SCSI_RESIDUAL_MISMATCH definition. | 17 | * 05-24-00 00.10.02 Added MPI_IOCSTATUS_SCSI_RESIDUAL_MISMATCH definition. |
18 | * 06-06-00 01.00.01 Update MPI_VERSION_MAJOR and MPI_VERSION_MINOR. | 18 | * 06-06-00 01.00.01 Update MPI_VERSION_MAJOR and MPI_VERSION_MINOR. |
19 | * 06-22-00 01.00.02 Added MPI_IOCSTATUS_LAN_ definitions. | 19 | * 06-22-00 01.00.02 Added MPI_IOCSTATUS_LAN_ definitions. |
20 | * Removed LAN_SUSPEND function definition. | 20 | * Removed LAN_SUSPEND function definition. |
21 | * Added MPI_MSGFLAGS_CONTINUATION_REPLY definition. | 21 | * Added MPI_MSGFLAGS_CONTINUATION_REPLY definition. |
22 | * 06-30-00 01.00.03 Added MPI_CONTEXT_REPLY_TYPE_LAN definition. | 22 | * 06-30-00 01.00.03 Added MPI_CONTEXT_REPLY_TYPE_LAN definition. |
23 | * Added MPI_GET/SET_CONTEXT_REPLY_TYPE macros. | 23 | * Added MPI_GET/SET_CONTEXT_REPLY_TYPE macros. |
24 | * 07-27-00 01.00.04 Added MPI_FAULT_ definitions. | 24 | * 07-27-00 01.00.04 Added MPI_FAULT_ definitions. |
25 | * Removed MPI_IOCSTATUS_MSG/DATA_XFER_ERROR definitions. | 25 | * Removed MPI_IOCSTATUS_MSG/DATA_XFER_ERROR definitions. |
26 | * Added MPI_IOCSTATUS_INTERNAL_ERROR definition. | 26 | * Added MPI_IOCSTATUS_INTERNAL_ERROR definition. |
27 | * Added MPI_IOCSTATUS_TARGET_XFER_COUNT_MISMATCH. | 27 | * Added MPI_IOCSTATUS_TARGET_XFER_COUNT_MISMATCH. |
28 | * 11-02-00 01.01.01 Original release for post 1.0 work. | 28 | * 11-02-00 01.01.01 Original release for post 1.0 work. |
29 | * 12-04-00 01.01.02 Added new function codes. | 29 | * 12-04-00 01.01.02 Added new function codes. |
30 | * 01-09-01 01.01.03 Added more definitions to the system interface section | 30 | * 01-09-01 01.01.03 Added more definitions to the system interface section |
31 | * Added MPI_IOCSTATUS_TARGET_STS_DATA_NOT_SENT. | 31 | * Added MPI_IOCSTATUS_TARGET_STS_DATA_NOT_SENT. |
32 | * 01-25-01 01.01.04 Changed MPI_VERSION_MINOR from 0x00 to 0x01. | 32 | * 01-25-01 01.01.04 Changed MPI_VERSION_MINOR from 0x00 to 0x01. |
33 | * 02-20-01 01.01.05 Started using MPI_POINTER. | 33 | * 02-20-01 01.01.05 Started using MPI_POINTER. |
34 | * Fixed value for MPI_DIAG_RW_ENABLE. | 34 | * Fixed value for MPI_DIAG_RW_ENABLE. |
35 | * Added defines for MPI_DIAG_PREVENT_IOC_BOOT and | 35 | * Added defines for MPI_DIAG_PREVENT_IOC_BOOT and |
36 | * MPI_DIAG_CLEAR_FLASH_BAD_SIG. | 36 | * MPI_DIAG_CLEAR_FLASH_BAD_SIG. |
37 | * Obsoleted MPI_IOCSTATUS_TARGET_FC_ defines. | 37 | * Obsoleted MPI_IOCSTATUS_TARGET_FC_ defines. |
38 | * 02-27-01 01.01.06 Removed MPI_HOST_INDEX_REGISTER define. | 38 | * 02-27-01 01.01.06 Removed MPI_HOST_INDEX_REGISTER define. |
39 | * Added function codes for RAID. | 39 | * Added function codes for RAID. |
40 | * 04-09-01 01.01.07 Added alternate define for MPI_DOORBELL_ACTIVE, | 40 | * 04-09-01 01.01.07 Added alternate define for MPI_DOORBELL_ACTIVE, |
41 | * MPI_DOORBELL_USED, to better match the spec. | 41 | * MPI_DOORBELL_USED, to better match the spec. |
42 | * 08-08-01 01.02.01 Original release for v1.2 work. | 42 | * 08-08-01 01.02.01 Original release for v1.2 work. |
43 | * Changed MPI_VERSION_MINOR from 0x01 to 0x02. | 43 | * Changed MPI_VERSION_MINOR from 0x01 to 0x02. |
44 | * Added define MPI_FUNCTION_TOOLBOX. | 44 | * Added define MPI_FUNCTION_TOOLBOX. |
45 | * 09-28-01 01.02.02 New function code MPI_SCSI_ENCLOSURE_PROCESSOR. | 45 | * 09-28-01 01.02.02 New function code MPI_SCSI_ENCLOSURE_PROCESSOR. |
46 | * 11-01-01 01.02.03 Changed name to MPI_FUNCTION_SCSI_ENCLOSURE_PROCESSOR. | 46 | * 11-01-01 01.02.03 Changed name to MPI_FUNCTION_SCSI_ENCLOSURE_PROCESSOR. |
47 | * 03-14-02 01.02.04 Added MPI_HEADER_VERSION_ defines. | 47 | * 03-14-02 01.02.04 Added MPI_HEADER_VERSION_ defines. |
48 | * 05-31-02 01.02.05 Bumped MPI_HEADER_VERSION_UNIT. | 48 | * 05-31-02 01.02.05 Bumped MPI_HEADER_VERSION_UNIT. |
49 | * 07-12-02 01.02.06 Added define for MPI_FUNCTION_MAILBOX. | 49 | * 07-12-02 01.02.06 Added define for MPI_FUNCTION_MAILBOX. |
50 | * 09-16-02 01.02.07 Bumped value for MPI_HEADER_VERSION_UNIT. | 50 | * 09-16-02 01.02.07 Bumped value for MPI_HEADER_VERSION_UNIT. |
51 | * 11-15-02 01.02.08 Added define MPI_IOCSTATUS_TARGET_INVALID_IO_INDEX and | 51 | * 11-15-02 01.02.08 Added define MPI_IOCSTATUS_TARGET_INVALID_IO_INDEX and |
52 | * obsoleted define MPI_IOCSTATUS_TARGET_INVALID_IOCINDEX. | 52 | * obsoleted define MPI_IOCSTATUS_TARGET_INVALID_IOCINDEX. |
53 | * 04-01-03 01.02.09 New IOCStatus code: MPI_IOCSTATUS_FC_EXCHANGE_CANCELED | 53 | * 04-01-03 01.02.09 New IOCStatus code: MPI_IOCSTATUS_FC_EXCHANGE_CANCELED |
54 | * 06-26-03 01.02.10 Bumped MPI_HEADER_VERSION_UNIT value. | 54 | * 06-26-03 01.02.10 Bumped MPI_HEADER_VERSION_UNIT value. |
55 | * 01-16-04 01.02.11 Added define for MPI_IOCLOGINFO_TYPE_SHIFT. | 55 | * 01-16-04 01.02.11 Added define for MPI_IOCLOGINFO_TYPE_SHIFT. |
56 | * 04-29-04 01.02.12 Added function codes for MPI_FUNCTION_DIAG_BUFFER_POST | 56 | * 04-29-04 01.02.12 Added function codes for MPI_FUNCTION_DIAG_BUFFER_POST |
57 | * and MPI_FUNCTION_DIAG_RELEASE. | 57 | * and MPI_FUNCTION_DIAG_RELEASE. |
58 | * Added MPI_IOCSTATUS_DIAGNOSTIC_RELEASED define. | 58 | * Added MPI_IOCSTATUS_DIAGNOSTIC_RELEASED define. |
59 | * Bumped MPI_HEADER_VERSION_UNIT value. | 59 | * Bumped MPI_HEADER_VERSION_UNIT value. |
60 | * 05-11-04 01.03.01 Bumped MPI_VERSION_MINOR for MPI v1.3. | 60 | * 05-11-04 01.03.01 Bumped MPI_VERSION_MINOR for MPI v1.3. |
61 | * Added codes for Inband. | 61 | * Added codes for Inband. |
62 | * 08-19-04 01.05.01 Added defines for Host Buffer Access Control doorbell. | 62 | * 08-19-04 01.05.01 Added defines for Host Buffer Access Control doorbell. |
63 | * Added define for offset of High Priority Request Queue. | 63 | * Added define for offset of High Priority Request Queue. |
64 | * Added new function codes and new IOCStatus codes. | 64 | * Added new function codes and new IOCStatus codes. |
65 | * Added a IOCLogInfo type of SAS. | 65 | * Added a IOCLogInfo type of SAS. |
66 | * 12-07-04 01.05.02 Bumped MPI_HEADER_VERSION_UNIT. | 66 | * 12-07-04 01.05.02 Bumped MPI_HEADER_VERSION_UNIT. |
67 | * 12-09-04 01.05.03 Bumped MPI_HEADER_VERSION_UNIT. | 67 | * 12-09-04 01.05.03 Bumped MPI_HEADER_VERSION_UNIT. |
68 | * 01-15-05 01.05.04 Bumped MPI_HEADER_VERSION_UNIT. | 68 | * 01-15-05 01.05.04 Bumped MPI_HEADER_VERSION_UNIT. |
69 | * 02-09-05 01.05.05 Bumped MPI_HEADER_VERSION_UNIT. | 69 | * 02-09-05 01.05.05 Bumped MPI_HEADER_VERSION_UNIT. |
70 | * 02-22-05 01.05.06 Bumped MPI_HEADER_VERSION_UNIT. | 70 | * 02-22-05 01.05.06 Bumped MPI_HEADER_VERSION_UNIT. |
71 | * 03-11-05 01.05.07 Removed function codes for SCSI IO 32 and | 71 | * 03-11-05 01.05.07 Removed function codes for SCSI IO 32 and |
72 | * TargetAssistExtended requests. | 72 | * TargetAssistExtended requests. |
73 | * Removed EEDP IOCStatus codes. | 73 | * Removed EEDP IOCStatus codes. |
74 | * 06-24-05 01.05.08 Added function codes for SCSI IO 32 and | 74 | * 06-24-05 01.05.08 Added function codes for SCSI IO 32 and |
75 | * TargetAssistExtended requests. | 75 | * TargetAssistExtended requests. |
76 | * Added EEDP IOCStatus codes. | 76 | * Added EEDP IOCStatus codes. |
77 | * 08-03-05 01.05.09 Bumped MPI_HEADER_VERSION_UNIT. | 77 | * 08-03-05 01.05.09 Bumped MPI_HEADER_VERSION_UNIT. |
78 | * 08-30-05 01.05.10 Added 2 new IOCStatus codes for Target. | 78 | * 08-30-05 01.05.10 Added 2 new IOCStatus codes for Target. |
79 | * 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT. | 79 | * 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT. |
80 | * 10-11-06 01.05.12 Bumped MPI_HEADER_VERSION_UNIT. | ||
80 | * -------------------------------------------------------------------------- | 81 | * -------------------------------------------------------------------------- |
81 | */ | 82 | */ |
82 | 83 | ||
83 | #ifndef MPI_H | 84 | #ifndef MPI_H |
84 | #define MPI_H | 85 | #define MPI_H |
85 | 86 | ||
86 | 87 | ||
87 | /***************************************************************************** | 88 | /***************************************************************************** |
88 | * | 89 | * |
89 | * M P I V e r s i o n D e f i n i t i o n s | 90 | * M P I V e r s i o n D e f i n i t i o n s |
90 | * | 91 | * |
91 | *****************************************************************************/ | 92 | *****************************************************************************/ |
92 | 93 | ||
93 | #define MPI_VERSION_MAJOR (0x01) | 94 | #define MPI_VERSION_MAJOR (0x01) |
94 | #define MPI_VERSION_MINOR (0x05) | 95 | #define MPI_VERSION_MINOR (0x05) |
95 | #define MPI_VERSION_MAJOR_MASK (0xFF00) | 96 | #define MPI_VERSION_MAJOR_MASK (0xFF00) |
96 | #define MPI_VERSION_MAJOR_SHIFT (8) | 97 | #define MPI_VERSION_MAJOR_SHIFT (8) |
97 | #define MPI_VERSION_MINOR_MASK (0x00FF) | 98 | #define MPI_VERSION_MINOR_MASK (0x00FF) |
98 | #define MPI_VERSION_MINOR_SHIFT (0) | 99 | #define MPI_VERSION_MINOR_SHIFT (0) |
99 | #define MPI_VERSION ((MPI_VERSION_MAJOR << MPI_VERSION_MAJOR_SHIFT) | \ | 100 | #define MPI_VERSION ((MPI_VERSION_MAJOR << MPI_VERSION_MAJOR_SHIFT) | \ |
100 | MPI_VERSION_MINOR) | 101 | MPI_VERSION_MINOR) |
101 | 102 | ||
102 | #define MPI_VERSION_01_00 (0x0100) | 103 | #define MPI_VERSION_01_00 (0x0100) |
103 | #define MPI_VERSION_01_01 (0x0101) | 104 | #define MPI_VERSION_01_01 (0x0101) |
104 | #define MPI_VERSION_01_02 (0x0102) | 105 | #define MPI_VERSION_01_02 (0x0102) |
105 | #define MPI_VERSION_01_03 (0x0103) | 106 | #define MPI_VERSION_01_03 (0x0103) |
106 | #define MPI_VERSION_01_05 (0x0105) | 107 | #define MPI_VERSION_01_05 (0x0105) |
107 | /* Note: The major versions of 0xe0 through 0xff are reserved */ | 108 | /* Note: The major versions of 0xe0 through 0xff are reserved */ |
108 | 109 | ||
109 | /* versioning for this MPI header set */ | 110 | /* versioning for this MPI header set */ |
110 | #define MPI_HEADER_VERSION_UNIT (0x0D) | 111 | #define MPI_HEADER_VERSION_UNIT (0x0E) |
111 | #define MPI_HEADER_VERSION_DEV (0x00) | 112 | #define MPI_HEADER_VERSION_DEV (0x00) |
112 | #define MPI_HEADER_VERSION_UNIT_MASK (0xFF00) | 113 | #define MPI_HEADER_VERSION_UNIT_MASK (0xFF00) |
113 | #define MPI_HEADER_VERSION_UNIT_SHIFT (8) | 114 | #define MPI_HEADER_VERSION_UNIT_SHIFT (8) |
114 | #define MPI_HEADER_VERSION_DEV_MASK (0x00FF) | 115 | #define MPI_HEADER_VERSION_DEV_MASK (0x00FF) |
115 | #define MPI_HEADER_VERSION_DEV_SHIFT (0) | 116 | #define MPI_HEADER_VERSION_DEV_SHIFT (0) |
116 | #define MPI_HEADER_VERSION ((MPI_HEADER_VERSION_UNIT << 8) | MPI_HEADER_VERSION_DEV) | 117 | #define MPI_HEADER_VERSION ((MPI_HEADER_VERSION_UNIT << 8) | MPI_HEADER_VERSION_DEV) |
117 | 118 | ||
118 | /***************************************************************************** | 119 | /***************************************************************************** |
119 | * | 120 | * |
120 | * I O C S t a t e D e f i n i t i o n s | 121 | * I O C S t a t e D e f i n i t i o n s |
121 | * | 122 | * |
122 | *****************************************************************************/ | 123 | *****************************************************************************/ |
123 | 124 | ||
124 | #define MPI_IOC_STATE_RESET (0x00000000) | 125 | #define MPI_IOC_STATE_RESET (0x00000000) |
125 | #define MPI_IOC_STATE_READY (0x10000000) | 126 | #define MPI_IOC_STATE_READY (0x10000000) |
126 | #define MPI_IOC_STATE_OPERATIONAL (0x20000000) | 127 | #define MPI_IOC_STATE_OPERATIONAL (0x20000000) |
127 | #define MPI_IOC_STATE_FAULT (0x40000000) | 128 | #define MPI_IOC_STATE_FAULT (0x40000000) |
128 | 129 | ||
129 | #define MPI_IOC_STATE_MASK (0xF0000000) | 130 | #define MPI_IOC_STATE_MASK (0xF0000000) |
130 | #define MPI_IOC_STATE_SHIFT (28) | 131 | #define MPI_IOC_STATE_SHIFT (28) |
131 | 132 | ||
132 | /* Fault state codes (product independent range 0x8000-0xFFFF) */ | 133 | /* Fault state codes (product independent range 0x8000-0xFFFF) */ |
133 | 134 | ||
134 | #define MPI_FAULT_REQUEST_MESSAGE_PCI_PARITY_ERROR (0x8111) | 135 | #define MPI_FAULT_REQUEST_MESSAGE_PCI_PARITY_ERROR (0x8111) |
135 | #define MPI_FAULT_REQUEST_MESSAGE_PCI_BUS_FAULT (0x8112) | 136 | #define MPI_FAULT_REQUEST_MESSAGE_PCI_BUS_FAULT (0x8112) |
136 | #define MPI_FAULT_REPLY_MESSAGE_PCI_PARITY_ERROR (0x8113) | 137 | #define MPI_FAULT_REPLY_MESSAGE_PCI_PARITY_ERROR (0x8113) |
137 | #define MPI_FAULT_REPLY_MESSAGE_PCI_BUS_FAULT (0x8114) | 138 | #define MPI_FAULT_REPLY_MESSAGE_PCI_BUS_FAULT (0x8114) |
138 | #define MPI_FAULT_DATA_SEND_PCI_PARITY_ERROR (0x8115) | 139 | #define MPI_FAULT_DATA_SEND_PCI_PARITY_ERROR (0x8115) |
139 | #define MPI_FAULT_DATA_SEND_PCI_BUS_FAULT (0x8116) | 140 | #define MPI_FAULT_DATA_SEND_PCI_BUS_FAULT (0x8116) |
140 | #define MPI_FAULT_DATA_RECEIVE_PCI_PARITY_ERROR (0x8117) | 141 | #define MPI_FAULT_DATA_RECEIVE_PCI_PARITY_ERROR (0x8117) |
141 | #define MPI_FAULT_DATA_RECEIVE_PCI_BUS_FAULT (0x8118) | 142 | #define MPI_FAULT_DATA_RECEIVE_PCI_BUS_FAULT (0x8118) |
142 | 143 | ||
143 | 144 | ||
144 | /***************************************************************************** | 145 | /***************************************************************************** |
145 | * | 146 | * |
146 | * P C I S y s t e m I n t e r f a c e R e g i s t e r s | 147 | * P C I S y s t e m I n t e r f a c e R e g i s t e r s |
147 | * | 148 | * |
148 | *****************************************************************************/ | 149 | *****************************************************************************/ |
149 | 150 | ||
150 | /* | 151 | /* |
151 | * Defines for working with the System Doorbell register. | 152 | * Defines for working with the System Doorbell register. |
152 | * Values for doorbell function codes are included in the section that defines | 153 | * Values for doorbell function codes are included in the section that defines |
153 | * all the function codes (further on in this file). | 154 | * all the function codes (further on in this file). |
154 | */ | 155 | */ |
155 | #define MPI_DOORBELL_OFFSET (0x00000000) | 156 | #define MPI_DOORBELL_OFFSET (0x00000000) |
156 | #define MPI_DOORBELL_ACTIVE (0x08000000) /* DoorbellUsed */ | 157 | #define MPI_DOORBELL_ACTIVE (0x08000000) /* DoorbellUsed */ |
157 | #define MPI_DOORBELL_USED (MPI_DOORBELL_ACTIVE) | 158 | #define MPI_DOORBELL_USED (MPI_DOORBELL_ACTIVE) |
158 | #define MPI_DOORBELL_ACTIVE_SHIFT (27) | 159 | #define MPI_DOORBELL_ACTIVE_SHIFT (27) |
159 | #define MPI_DOORBELL_WHO_INIT_MASK (0x07000000) | 160 | #define MPI_DOORBELL_WHO_INIT_MASK (0x07000000) |
160 | #define MPI_DOORBELL_WHO_INIT_SHIFT (24) | 161 | #define MPI_DOORBELL_WHO_INIT_SHIFT (24) |
161 | #define MPI_DOORBELL_FUNCTION_MASK (0xFF000000) | 162 | #define MPI_DOORBELL_FUNCTION_MASK (0xFF000000) |
162 | #define MPI_DOORBELL_FUNCTION_SHIFT (24) | 163 | #define MPI_DOORBELL_FUNCTION_SHIFT (24) |
163 | #define MPI_DOORBELL_ADD_DWORDS_MASK (0x00FF0000) | 164 | #define MPI_DOORBELL_ADD_DWORDS_MASK (0x00FF0000) |
164 | #define MPI_DOORBELL_ADD_DWORDS_SHIFT (16) | 165 | #define MPI_DOORBELL_ADD_DWORDS_SHIFT (16) |
165 | #define MPI_DOORBELL_DATA_MASK (0x0000FFFF) | 166 | #define MPI_DOORBELL_DATA_MASK (0x0000FFFF) |
166 | #define MPI_DOORBELL_FUNCTION_SPECIFIC_MASK (0x0000FFFF) | 167 | #define MPI_DOORBELL_FUNCTION_SPECIFIC_MASK (0x0000FFFF) |
167 | 168 | ||
168 | /* values for Host Buffer Access Control doorbell function */ | 169 | /* values for Host Buffer Access Control doorbell function */ |
169 | #define MPI_DB_HPBAC_VALUE_MASK (0x0000F000) | 170 | #define MPI_DB_HPBAC_VALUE_MASK (0x0000F000) |
170 | #define MPI_DB_HPBAC_ENABLE_ACCESS (0x01) | 171 | #define MPI_DB_HPBAC_ENABLE_ACCESS (0x01) |
171 | #define MPI_DB_HPBAC_DISABLE_ACCESS (0x02) | 172 | #define MPI_DB_HPBAC_DISABLE_ACCESS (0x02) |
172 | #define MPI_DB_HPBAC_FREE_BUFFER (0x03) | 173 | #define MPI_DB_HPBAC_FREE_BUFFER (0x03) |
173 | 174 | ||
174 | 175 | ||
175 | #define MPI_WRITE_SEQUENCE_OFFSET (0x00000004) | 176 | #define MPI_WRITE_SEQUENCE_OFFSET (0x00000004) |
176 | #define MPI_WRSEQ_KEY_VALUE_MASK (0x0000000F) | 177 | #define MPI_WRSEQ_KEY_VALUE_MASK (0x0000000F) |
177 | #define MPI_WRSEQ_1ST_KEY_VALUE (0x04) | 178 | #define MPI_WRSEQ_1ST_KEY_VALUE (0x04) |
178 | #define MPI_WRSEQ_2ND_KEY_VALUE (0x0B) | 179 | #define MPI_WRSEQ_2ND_KEY_VALUE (0x0B) |
179 | #define MPI_WRSEQ_3RD_KEY_VALUE (0x02) | 180 | #define MPI_WRSEQ_3RD_KEY_VALUE (0x02) |
180 | #define MPI_WRSEQ_4TH_KEY_VALUE (0x07) | 181 | #define MPI_WRSEQ_4TH_KEY_VALUE (0x07) |
181 | #define MPI_WRSEQ_5TH_KEY_VALUE (0x0D) | 182 | #define MPI_WRSEQ_5TH_KEY_VALUE (0x0D) |
182 | 183 | ||
183 | #define MPI_DIAGNOSTIC_OFFSET (0x00000008) | 184 | #define MPI_DIAGNOSTIC_OFFSET (0x00000008) |
184 | #define MPI_DIAG_CLEAR_FLASH_BAD_SIG (0x00000400) | 185 | #define MPI_DIAG_CLEAR_FLASH_BAD_SIG (0x00000400) |
185 | #define MPI_DIAG_PREVENT_IOC_BOOT (0x00000200) | 186 | #define MPI_DIAG_PREVENT_IOC_BOOT (0x00000200) |
186 | #define MPI_DIAG_DRWE (0x00000080) | 187 | #define MPI_DIAG_DRWE (0x00000080) |
187 | #define MPI_DIAG_FLASH_BAD_SIG (0x00000040) | 188 | #define MPI_DIAG_FLASH_BAD_SIG (0x00000040) |
188 | #define MPI_DIAG_RESET_HISTORY (0x00000020) | 189 | #define MPI_DIAG_RESET_HISTORY (0x00000020) |
189 | #define MPI_DIAG_RW_ENABLE (0x00000010) | 190 | #define MPI_DIAG_RW_ENABLE (0x00000010) |
190 | #define MPI_DIAG_RESET_ADAPTER (0x00000004) | 191 | #define MPI_DIAG_RESET_ADAPTER (0x00000004) |
191 | #define MPI_DIAG_DISABLE_ARM (0x00000002) | 192 | #define MPI_DIAG_DISABLE_ARM (0x00000002) |
192 | #define MPI_DIAG_MEM_ENABLE (0x00000001) | 193 | #define MPI_DIAG_MEM_ENABLE (0x00000001) |
193 | 194 | ||
194 | #define MPI_TEST_BASE_ADDRESS_OFFSET (0x0000000C) | 195 | #define MPI_TEST_BASE_ADDRESS_OFFSET (0x0000000C) |
195 | 196 | ||
196 | #define MPI_DIAG_RW_DATA_OFFSET (0x00000010) | 197 | #define MPI_DIAG_RW_DATA_OFFSET (0x00000010) |
197 | 198 | ||
198 | #define MPI_DIAG_RW_ADDRESS_OFFSET (0x00000014) | 199 | #define MPI_DIAG_RW_ADDRESS_OFFSET (0x00000014) |
199 | 200 | ||
200 | #define MPI_HOST_INTERRUPT_STATUS_OFFSET (0x00000030) | 201 | #define MPI_HOST_INTERRUPT_STATUS_OFFSET (0x00000030) |
201 | #define MPI_HIS_IOP_DOORBELL_STATUS (0x80000000) | 202 | #define MPI_HIS_IOP_DOORBELL_STATUS (0x80000000) |
202 | #define MPI_HIS_REPLY_MESSAGE_INTERRUPT (0x00000008) | 203 | #define MPI_HIS_REPLY_MESSAGE_INTERRUPT (0x00000008) |
203 | #define MPI_HIS_DOORBELL_INTERRUPT (0x00000001) | 204 | #define MPI_HIS_DOORBELL_INTERRUPT (0x00000001) |
204 | 205 | ||
205 | #define MPI_HOST_INTERRUPT_MASK_OFFSET (0x00000034) | 206 | #define MPI_HOST_INTERRUPT_MASK_OFFSET (0x00000034) |
206 | #define MPI_HIM_RIM (0x00000008) | 207 | #define MPI_HIM_RIM (0x00000008) |
207 | #define MPI_HIM_DIM (0x00000001) | 208 | #define MPI_HIM_DIM (0x00000001) |
208 | 209 | ||
209 | #define MPI_REQUEST_QUEUE_OFFSET (0x00000040) | 210 | #define MPI_REQUEST_QUEUE_OFFSET (0x00000040) |
210 | #define MPI_REQUEST_POST_FIFO_OFFSET (0x00000040) | 211 | #define MPI_REQUEST_POST_FIFO_OFFSET (0x00000040) |
211 | 212 | ||
212 | #define MPI_REPLY_QUEUE_OFFSET (0x00000044) | 213 | #define MPI_REPLY_QUEUE_OFFSET (0x00000044) |
213 | #define MPI_REPLY_POST_FIFO_OFFSET (0x00000044) | 214 | #define MPI_REPLY_POST_FIFO_OFFSET (0x00000044) |
214 | #define MPI_REPLY_FREE_FIFO_OFFSET (0x00000044) | 215 | #define MPI_REPLY_FREE_FIFO_OFFSET (0x00000044) |
215 | 216 | ||
216 | #define MPI_HI_PRI_REQUEST_QUEUE_OFFSET (0x00000048) | 217 | #define MPI_HI_PRI_REQUEST_QUEUE_OFFSET (0x00000048) |
217 | 218 | ||
218 | 219 | ||
219 | 220 | ||
220 | /***************************************************************************** | 221 | /***************************************************************************** |
221 | * | 222 | * |
222 | * M e s s a g e F r a m e D e s c r i p t o r s | 223 | * M e s s a g e F r a m e D e s c r i p t o r s |
223 | * | 224 | * |
224 | *****************************************************************************/ | 225 | *****************************************************************************/ |
225 | 226 | ||
226 | #define MPI_REQ_MF_DESCRIPTOR_NB_MASK (0x00000003) | 227 | #define MPI_REQ_MF_DESCRIPTOR_NB_MASK (0x00000003) |
227 | #define MPI_REQ_MF_DESCRIPTOR_F_BIT (0x00000004) | 228 | #define MPI_REQ_MF_DESCRIPTOR_F_BIT (0x00000004) |
228 | #define MPI_REQ_MF_DESCRIPTOR_ADDRESS_MASK (0xFFFFFFF8) | 229 | #define MPI_REQ_MF_DESCRIPTOR_ADDRESS_MASK (0xFFFFFFF8) |
229 | 230 | ||
230 | #define MPI_ADDRESS_REPLY_A_BIT (0x80000000) | 231 | #define MPI_ADDRESS_REPLY_A_BIT (0x80000000) |
231 | #define MPI_ADDRESS_REPLY_ADDRESS_MASK (0x7FFFFFFF) | 232 | #define MPI_ADDRESS_REPLY_ADDRESS_MASK (0x7FFFFFFF) |
232 | 233 | ||
233 | #define MPI_CONTEXT_REPLY_A_BIT (0x80000000) | 234 | #define MPI_CONTEXT_REPLY_A_BIT (0x80000000) |
234 | #define MPI_CONTEXT_REPLY_TYPE_MASK (0x60000000) | 235 | #define MPI_CONTEXT_REPLY_TYPE_MASK (0x60000000) |
235 | #define MPI_CONTEXT_REPLY_TYPE_SCSI_INIT (0x00) | 236 | #define MPI_CONTEXT_REPLY_TYPE_SCSI_INIT (0x00) |
236 | #define MPI_CONTEXT_REPLY_TYPE_SCSI_TARGET (0x01) | 237 | #define MPI_CONTEXT_REPLY_TYPE_SCSI_TARGET (0x01) |
237 | #define MPI_CONTEXT_REPLY_TYPE_LAN (0x02) | 238 | #define MPI_CONTEXT_REPLY_TYPE_LAN (0x02) |
238 | #define MPI_CONTEXT_REPLY_TYPE_SHIFT (29) | 239 | #define MPI_CONTEXT_REPLY_TYPE_SHIFT (29) |
239 | #define MPI_CONTEXT_REPLY_CONTEXT_MASK (0x1FFFFFFF) | 240 | #define MPI_CONTEXT_REPLY_CONTEXT_MASK (0x1FFFFFFF) |
240 | 241 | ||
241 | 242 | ||
242 | /****************************************************************************/ | 243 | /****************************************************************************/ |
243 | /* Context Reply macros */ | 244 | /* Context Reply macros */ |
244 | /****************************************************************************/ | 245 | /****************************************************************************/ |
245 | 246 | ||
246 | #define MPI_GET_CONTEXT_REPLY_TYPE(x) (((x) & MPI_CONTEXT_REPLY_TYPE_MASK) \ | 247 | #define MPI_GET_CONTEXT_REPLY_TYPE(x) (((x) & MPI_CONTEXT_REPLY_TYPE_MASK) \ |
247 | >> MPI_CONTEXT_REPLY_TYPE_SHIFT) | 248 | >> MPI_CONTEXT_REPLY_TYPE_SHIFT) |
248 | 249 | ||
249 | #define MPI_SET_CONTEXT_REPLY_TYPE(x, typ) \ | 250 | #define MPI_SET_CONTEXT_REPLY_TYPE(x, typ) \ |
250 | ((x) = ((x) & ~MPI_CONTEXT_REPLY_TYPE_MASK) | \ | 251 | ((x) = ((x) & ~MPI_CONTEXT_REPLY_TYPE_MASK) | \ |
251 | (((typ) << MPI_CONTEXT_REPLY_TYPE_SHIFT) & \ | 252 | (((typ) << MPI_CONTEXT_REPLY_TYPE_SHIFT) & \ |
252 | MPI_CONTEXT_REPLY_TYPE_MASK)) | 253 | MPI_CONTEXT_REPLY_TYPE_MASK)) |
253 | 254 | ||
254 | 255 | ||
255 | /***************************************************************************** | 256 | /***************************************************************************** |
256 | * | 257 | * |
257 | * M e s s a g e F u n c t i o n s | 258 | * M e s s a g e F u n c t i o n s |
258 | * 0x80 -> 0x8F reserved for private message use per product | 259 | * 0x80 -> 0x8F reserved for private message use per product |
259 | * | 260 | * |
260 | * | 261 | * |
261 | *****************************************************************************/ | 262 | *****************************************************************************/ |
262 | 263 | ||
263 | #define MPI_FUNCTION_SCSI_IO_REQUEST (0x00) | 264 | #define MPI_FUNCTION_SCSI_IO_REQUEST (0x00) |
264 | #define MPI_FUNCTION_SCSI_TASK_MGMT (0x01) | 265 | #define MPI_FUNCTION_SCSI_TASK_MGMT (0x01) |
265 | #define MPI_FUNCTION_IOC_INIT (0x02) | 266 | #define MPI_FUNCTION_IOC_INIT (0x02) |
266 | #define MPI_FUNCTION_IOC_FACTS (0x03) | 267 | #define MPI_FUNCTION_IOC_FACTS (0x03) |
267 | #define MPI_FUNCTION_CONFIG (0x04) | 268 | #define MPI_FUNCTION_CONFIG (0x04) |
268 | #define MPI_FUNCTION_PORT_FACTS (0x05) | 269 | #define MPI_FUNCTION_PORT_FACTS (0x05) |
269 | #define MPI_FUNCTION_PORT_ENABLE (0x06) | 270 | #define MPI_FUNCTION_PORT_ENABLE (0x06) |
270 | #define MPI_FUNCTION_EVENT_NOTIFICATION (0x07) | 271 | #define MPI_FUNCTION_EVENT_NOTIFICATION (0x07) |
271 | #define MPI_FUNCTION_EVENT_ACK (0x08) | 272 | #define MPI_FUNCTION_EVENT_ACK (0x08) |
272 | #define MPI_FUNCTION_FW_DOWNLOAD (0x09) | 273 | #define MPI_FUNCTION_FW_DOWNLOAD (0x09) |
273 | #define MPI_FUNCTION_TARGET_CMD_BUFFER_POST (0x0A) | 274 | #define MPI_FUNCTION_TARGET_CMD_BUFFER_POST (0x0A) |
274 | #define MPI_FUNCTION_TARGET_ASSIST (0x0B) | 275 | #define MPI_FUNCTION_TARGET_ASSIST (0x0B) |
275 | #define MPI_FUNCTION_TARGET_STATUS_SEND (0x0C) | 276 | #define MPI_FUNCTION_TARGET_STATUS_SEND (0x0C) |
276 | #define MPI_FUNCTION_TARGET_MODE_ABORT (0x0D) | 277 | #define MPI_FUNCTION_TARGET_MODE_ABORT (0x0D) |
277 | #define MPI_FUNCTION_FC_LINK_SRVC_BUF_POST (0x0E) | 278 | #define MPI_FUNCTION_FC_LINK_SRVC_BUF_POST (0x0E) |
278 | #define MPI_FUNCTION_FC_LINK_SRVC_RSP (0x0F) | 279 | #define MPI_FUNCTION_FC_LINK_SRVC_RSP (0x0F) |
279 | #define MPI_FUNCTION_FC_EX_LINK_SRVC_SEND (0x10) | 280 | #define MPI_FUNCTION_FC_EX_LINK_SRVC_SEND (0x10) |
280 | #define MPI_FUNCTION_FC_ABORT (0x11) | 281 | #define MPI_FUNCTION_FC_ABORT (0x11) |
281 | #define MPI_FUNCTION_FW_UPLOAD (0x12) | 282 | #define MPI_FUNCTION_FW_UPLOAD (0x12) |
282 | #define MPI_FUNCTION_FC_COMMON_TRANSPORT_SEND (0x13) | 283 | #define MPI_FUNCTION_FC_COMMON_TRANSPORT_SEND (0x13) |
283 | #define MPI_FUNCTION_FC_PRIMITIVE_SEND (0x14) | 284 | #define MPI_FUNCTION_FC_PRIMITIVE_SEND (0x14) |
284 | 285 | ||
285 | #define MPI_FUNCTION_RAID_ACTION (0x15) | 286 | #define MPI_FUNCTION_RAID_ACTION (0x15) |
286 | #define MPI_FUNCTION_RAID_SCSI_IO_PASSTHROUGH (0x16) | 287 | #define MPI_FUNCTION_RAID_SCSI_IO_PASSTHROUGH (0x16) |
287 | 288 | ||
288 | #define MPI_FUNCTION_TOOLBOX (0x17) | 289 | #define MPI_FUNCTION_TOOLBOX (0x17) |
289 | 290 | ||
290 | #define MPI_FUNCTION_SCSI_ENCLOSURE_PROCESSOR (0x18) | 291 | #define MPI_FUNCTION_SCSI_ENCLOSURE_PROCESSOR (0x18) |
291 | 292 | ||
292 | #define MPI_FUNCTION_MAILBOX (0x19) | 293 | #define MPI_FUNCTION_MAILBOX (0x19) |
293 | 294 | ||
294 | #define MPI_FUNCTION_SMP_PASSTHROUGH (0x1A) | 295 | #define MPI_FUNCTION_SMP_PASSTHROUGH (0x1A) |
295 | #define MPI_FUNCTION_SAS_IO_UNIT_CONTROL (0x1B) | 296 | #define MPI_FUNCTION_SAS_IO_UNIT_CONTROL (0x1B) |
296 | #define MPI_FUNCTION_SATA_PASSTHROUGH (0x1C) | 297 | #define MPI_FUNCTION_SATA_PASSTHROUGH (0x1C) |
297 | 298 | ||
298 | #define MPI_FUNCTION_DIAG_BUFFER_POST (0x1D) | 299 | #define MPI_FUNCTION_DIAG_BUFFER_POST (0x1D) |
299 | #define MPI_FUNCTION_DIAG_RELEASE (0x1E) | 300 | #define MPI_FUNCTION_DIAG_RELEASE (0x1E) |
300 | 301 | ||
301 | #define MPI_FUNCTION_SCSI_IO_32 (0x1F) | 302 | #define MPI_FUNCTION_SCSI_IO_32 (0x1F) |
302 | 303 | ||
303 | #define MPI_FUNCTION_LAN_SEND (0x20) | 304 | #define MPI_FUNCTION_LAN_SEND (0x20) |
304 | #define MPI_FUNCTION_LAN_RECEIVE (0x21) | 305 | #define MPI_FUNCTION_LAN_RECEIVE (0x21) |
305 | #define MPI_FUNCTION_LAN_RESET (0x22) | 306 | #define MPI_FUNCTION_LAN_RESET (0x22) |
306 | 307 | ||
307 | #define MPI_FUNCTION_TARGET_ASSIST_EXTENDED (0x23) | 308 | #define MPI_FUNCTION_TARGET_ASSIST_EXTENDED (0x23) |
308 | #define MPI_FUNCTION_TARGET_CMD_BUF_BASE_POST (0x24) | 309 | #define MPI_FUNCTION_TARGET_CMD_BUF_BASE_POST (0x24) |
309 | #define MPI_FUNCTION_TARGET_CMD_BUF_LIST_POST (0x25) | 310 | #define MPI_FUNCTION_TARGET_CMD_BUF_LIST_POST (0x25) |
310 | 311 | ||
311 | #define MPI_FUNCTION_INBAND_BUFFER_POST (0x28) | 312 | #define MPI_FUNCTION_INBAND_BUFFER_POST (0x28) |
312 | #define MPI_FUNCTION_INBAND_SEND (0x29) | 313 | #define MPI_FUNCTION_INBAND_SEND (0x29) |
313 | #define MPI_FUNCTION_INBAND_RSP (0x2A) | 314 | #define MPI_FUNCTION_INBAND_RSP (0x2A) |
314 | #define MPI_FUNCTION_INBAND_ABORT (0x2B) | 315 | #define MPI_FUNCTION_INBAND_ABORT (0x2B) |
315 | 316 | ||
316 | #define MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET (0x40) | 317 | #define MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET (0x40) |
317 | #define MPI_FUNCTION_IO_UNIT_RESET (0x41) | 318 | #define MPI_FUNCTION_IO_UNIT_RESET (0x41) |
318 | #define MPI_FUNCTION_HANDSHAKE (0x42) | 319 | #define MPI_FUNCTION_HANDSHAKE (0x42) |
319 | #define MPI_FUNCTION_REPLY_FRAME_REMOVAL (0x43) | 320 | #define MPI_FUNCTION_REPLY_FRAME_REMOVAL (0x43) |
320 | #define MPI_FUNCTION_HOST_PAGEBUF_ACCESS_CONTROL (0x44) | 321 | #define MPI_FUNCTION_HOST_PAGEBUF_ACCESS_CONTROL (0x44) |
321 | 322 | ||
322 | 323 | ||
323 | /* standard version format */ | 324 | /* standard version format */ |
324 | typedef struct _MPI_VERSION_STRUCT | 325 | typedef struct _MPI_VERSION_STRUCT |
325 | { | 326 | { |
326 | U8 Dev; /* 00h */ | 327 | U8 Dev; /* 00h */ |
327 | U8 Unit; /* 01h */ | 328 | U8 Unit; /* 01h */ |
328 | U8 Minor; /* 02h */ | 329 | U8 Minor; /* 02h */ |
329 | U8 Major; /* 03h */ | 330 | U8 Major; /* 03h */ |
330 | } MPI_VERSION_STRUCT, MPI_POINTER PTR_MPI_VERSION_STRUCT, | 331 | } MPI_VERSION_STRUCT, MPI_POINTER PTR_MPI_VERSION_STRUCT, |
331 | MpiVersionStruct_t, MPI_POINTER pMpiVersionStruct; | 332 | MpiVersionStruct_t, MPI_POINTER pMpiVersionStruct; |
332 | 333 | ||
333 | typedef union _MPI_VERSION_FORMAT | 334 | typedef union _MPI_VERSION_FORMAT |
334 | { | 335 | { |
335 | MPI_VERSION_STRUCT Struct; | 336 | MPI_VERSION_STRUCT Struct; |
336 | U32 Word; | 337 | U32 Word; |
337 | } MPI_VERSION_FORMAT, MPI_POINTER PTR_MPI_VERSION_FORMAT, | 338 | } MPI_VERSION_FORMAT, MPI_POINTER PTR_MPI_VERSION_FORMAT, |
338 | MpiVersionFormat_t, MPI_POINTER pMpiVersionFormat_t; | 339 | MpiVersionFormat_t, MPI_POINTER pMpiVersionFormat_t; |
339 | 340 | ||
340 | 341 | ||
341 | /***************************************************************************** | 342 | /***************************************************************************** |
342 | * | 343 | * |
343 | * S c a t t e r G a t h e r E l e m e n t s | 344 | * S c a t t e r G a t h e r E l e m e n t s |
344 | * | 345 | * |
345 | *****************************************************************************/ | 346 | *****************************************************************************/ |
346 | 347 | ||
347 | /****************************************************************************/ | 348 | /****************************************************************************/ |
348 | /* Simple element structures */ | 349 | /* Simple element structures */ |
349 | /****************************************************************************/ | 350 | /****************************************************************************/ |
350 | 351 | ||
351 | typedef struct _SGE_SIMPLE32 | 352 | typedef struct _SGE_SIMPLE32 |
352 | { | 353 | { |
353 | U32 FlagsLength; | 354 | U32 FlagsLength; |
354 | U32 Address; | 355 | U32 Address; |
355 | } SGE_SIMPLE32, MPI_POINTER PTR_SGE_SIMPLE32, | 356 | } SGE_SIMPLE32, MPI_POINTER PTR_SGE_SIMPLE32, |
356 | SGESimple32_t, MPI_POINTER pSGESimple32_t; | 357 | SGESimple32_t, MPI_POINTER pSGESimple32_t; |
357 | 358 | ||
358 | typedef struct _SGE_SIMPLE64 | 359 | typedef struct _SGE_SIMPLE64 |
359 | { | 360 | { |
360 | U32 FlagsLength; | 361 | U32 FlagsLength; |
361 | U64 Address; | 362 | U64 Address; |
362 | } SGE_SIMPLE64, MPI_POINTER PTR_SGE_SIMPLE64, | 363 | } SGE_SIMPLE64, MPI_POINTER PTR_SGE_SIMPLE64, |
363 | SGESimple64_t, MPI_POINTER pSGESimple64_t; | 364 | SGESimple64_t, MPI_POINTER pSGESimple64_t; |
364 | 365 | ||
365 | typedef struct _SGE_SIMPLE_UNION | 366 | typedef struct _SGE_SIMPLE_UNION |
366 | { | 367 | { |
367 | U32 FlagsLength; | 368 | U32 FlagsLength; |
368 | union | 369 | union |
369 | { | 370 | { |
370 | U32 Address32; | 371 | U32 Address32; |
371 | U64 Address64; | 372 | U64 Address64; |
372 | }u; | 373 | }u; |
373 | } SGE_SIMPLE_UNION, MPI_POINTER PTR_SGE_SIMPLE_UNION, | 374 | } SGE_SIMPLE_UNION, MPI_POINTER PTR_SGE_SIMPLE_UNION, |
374 | SGESimpleUnion_t, MPI_POINTER pSGESimpleUnion_t; | 375 | SGESimpleUnion_t, MPI_POINTER pSGESimpleUnion_t; |
375 | 376 | ||
376 | /****************************************************************************/ | 377 | /****************************************************************************/ |
377 | /* Chain element structures */ | 378 | /* Chain element structures */ |
378 | /****************************************************************************/ | 379 | /****************************************************************************/ |
379 | 380 | ||
380 | typedef struct _SGE_CHAIN32 | 381 | typedef struct _SGE_CHAIN32 |
381 | { | 382 | { |
382 | U16 Length; | 383 | U16 Length; |
383 | U8 NextChainOffset; | 384 | U8 NextChainOffset; |
384 | U8 Flags; | 385 | U8 Flags; |
385 | U32 Address; | 386 | U32 Address; |
386 | } SGE_CHAIN32, MPI_POINTER PTR_SGE_CHAIN32, | 387 | } SGE_CHAIN32, MPI_POINTER PTR_SGE_CHAIN32, |
387 | SGEChain32_t, MPI_POINTER pSGEChain32_t; | 388 | SGEChain32_t, MPI_POINTER pSGEChain32_t; |
388 | 389 | ||
389 | typedef struct _SGE_CHAIN64 | 390 | typedef struct _SGE_CHAIN64 |
390 | { | 391 | { |
391 | U16 Length; | 392 | U16 Length; |
392 | U8 NextChainOffset; | 393 | U8 NextChainOffset; |
393 | U8 Flags; | 394 | U8 Flags; |
394 | U64 Address; | 395 | U64 Address; |
395 | } SGE_CHAIN64, MPI_POINTER PTR_SGE_CHAIN64, | 396 | } SGE_CHAIN64, MPI_POINTER PTR_SGE_CHAIN64, |
396 | SGEChain64_t, MPI_POINTER pSGEChain64_t; | 397 | SGEChain64_t, MPI_POINTER pSGEChain64_t; |
397 | 398 | ||
398 | typedef struct _SGE_CHAIN_UNION | 399 | typedef struct _SGE_CHAIN_UNION |
399 | { | 400 | { |
400 | U16 Length; | 401 | U16 Length; |
401 | U8 NextChainOffset; | 402 | U8 NextChainOffset; |
402 | U8 Flags; | 403 | U8 Flags; |
403 | union | 404 | union |
404 | { | 405 | { |
405 | U32 Address32; | 406 | U32 Address32; |
406 | U64 Address64; | 407 | U64 Address64; |
407 | }u; | 408 | }u; |
408 | } SGE_CHAIN_UNION, MPI_POINTER PTR_SGE_CHAIN_UNION, | 409 | } SGE_CHAIN_UNION, MPI_POINTER PTR_SGE_CHAIN_UNION, |
409 | SGEChainUnion_t, MPI_POINTER pSGEChainUnion_t; | 410 | SGEChainUnion_t, MPI_POINTER pSGEChainUnion_t; |
410 | 411 | ||
411 | /****************************************************************************/ | 412 | /****************************************************************************/ |
412 | /* Transaction Context element */ | 413 | /* Transaction Context element */ |
413 | /****************************************************************************/ | 414 | /****************************************************************************/ |
414 | 415 | ||
415 | typedef struct _SGE_TRANSACTION32 | 416 | typedef struct _SGE_TRANSACTION32 |
416 | { | 417 | { |
417 | U8 Reserved; | 418 | U8 Reserved; |
418 | U8 ContextSize; | 419 | U8 ContextSize; |
419 | U8 DetailsLength; | 420 | U8 DetailsLength; |
420 | U8 Flags; | 421 | U8 Flags; |
421 | U32 TransactionContext[1]; | 422 | U32 TransactionContext[1]; |
422 | U32 TransactionDetails[1]; | 423 | U32 TransactionDetails[1]; |
423 | } SGE_TRANSACTION32, MPI_POINTER PTR_SGE_TRANSACTION32, | 424 | } SGE_TRANSACTION32, MPI_POINTER PTR_SGE_TRANSACTION32, |
424 | SGETransaction32_t, MPI_POINTER pSGETransaction32_t; | 425 | SGETransaction32_t, MPI_POINTER pSGETransaction32_t; |
425 | 426 | ||
426 | typedef struct _SGE_TRANSACTION64 | 427 | typedef struct _SGE_TRANSACTION64 |
427 | { | 428 | { |
428 | U8 Reserved; | 429 | U8 Reserved; |
429 | U8 ContextSize; | 430 | U8 ContextSize; |
430 | U8 DetailsLength; | 431 | U8 DetailsLength; |
431 | U8 Flags; | 432 | U8 Flags; |
432 | U32 TransactionContext[2]; | 433 | U32 TransactionContext[2]; |
433 | U32 TransactionDetails[1]; | 434 | U32 TransactionDetails[1]; |
434 | } SGE_TRANSACTION64, MPI_POINTER PTR_SGE_TRANSACTION64, | 435 | } SGE_TRANSACTION64, MPI_POINTER PTR_SGE_TRANSACTION64, |
435 | SGETransaction64_t, MPI_POINTER pSGETransaction64_t; | 436 | SGETransaction64_t, MPI_POINTER pSGETransaction64_t; |
436 | 437 | ||
437 | typedef struct _SGE_TRANSACTION96 | 438 | typedef struct _SGE_TRANSACTION96 |
438 | { | 439 | { |
439 | U8 Reserved; | 440 | U8 Reserved; |
440 | U8 ContextSize; | 441 | U8 ContextSize; |
441 | U8 DetailsLength; | 442 | U8 DetailsLength; |
442 | U8 Flags; | 443 | U8 Flags; |
443 | U32 TransactionContext[3]; | 444 | U32 TransactionContext[3]; |
444 | U32 TransactionDetails[1]; | 445 | U32 TransactionDetails[1]; |
445 | } SGE_TRANSACTION96, MPI_POINTER PTR_SGE_TRANSACTION96, | 446 | } SGE_TRANSACTION96, MPI_POINTER PTR_SGE_TRANSACTION96, |
446 | SGETransaction96_t, MPI_POINTER pSGETransaction96_t; | 447 | SGETransaction96_t, MPI_POINTER pSGETransaction96_t; |
447 | 448 | ||
448 | typedef struct _SGE_TRANSACTION128 | 449 | typedef struct _SGE_TRANSACTION128 |
449 | { | 450 | { |
450 | U8 Reserved; | 451 | U8 Reserved; |
451 | U8 ContextSize; | 452 | U8 ContextSize; |
452 | U8 DetailsLength; | 453 | U8 DetailsLength; |
453 | U8 Flags; | 454 | U8 Flags; |
454 | U32 TransactionContext[4]; | 455 | U32 TransactionContext[4]; |
455 | U32 TransactionDetails[1]; | 456 | U32 TransactionDetails[1]; |
456 | } SGE_TRANSACTION128, MPI_POINTER PTR_SGE_TRANSACTION128, | 457 | } SGE_TRANSACTION128, MPI_POINTER PTR_SGE_TRANSACTION128, |
457 | SGETransaction_t128, MPI_POINTER pSGETransaction_t128; | 458 | SGETransaction_t128, MPI_POINTER pSGETransaction_t128; |
458 | 459 | ||
459 | typedef struct _SGE_TRANSACTION_UNION | 460 | typedef struct _SGE_TRANSACTION_UNION |
460 | { | 461 | { |
461 | U8 Reserved; | 462 | U8 Reserved; |
462 | U8 ContextSize; | 463 | U8 ContextSize; |
463 | U8 DetailsLength; | 464 | U8 DetailsLength; |
464 | U8 Flags; | 465 | U8 Flags; |
465 | union | 466 | union |
466 | { | 467 | { |
467 | U32 TransactionContext32[1]; | 468 | U32 TransactionContext32[1]; |
468 | U32 TransactionContext64[2]; | 469 | U32 TransactionContext64[2]; |
469 | U32 TransactionContext96[3]; | 470 | U32 TransactionContext96[3]; |
470 | U32 TransactionContext128[4]; | 471 | U32 TransactionContext128[4]; |
471 | }u; | 472 | }u; |
472 | U32 TransactionDetails[1]; | 473 | U32 TransactionDetails[1]; |
473 | } SGE_TRANSACTION_UNION, MPI_POINTER PTR_SGE_TRANSACTION_UNION, | 474 | } SGE_TRANSACTION_UNION, MPI_POINTER PTR_SGE_TRANSACTION_UNION, |
474 | SGETransactionUnion_t, MPI_POINTER pSGETransactionUnion_t; | 475 | SGETransactionUnion_t, MPI_POINTER pSGETransactionUnion_t; |
475 | 476 | ||
476 | 477 | ||
477 | /****************************************************************************/ | 478 | /****************************************************************************/ |
478 | /* SGE IO types union for IO SGL's */ | 479 | /* SGE IO types union for IO SGL's */ |
479 | /****************************************************************************/ | 480 | /****************************************************************************/ |
480 | 481 | ||
481 | typedef struct _SGE_IO_UNION | 482 | typedef struct _SGE_IO_UNION |
482 | { | 483 | { |
483 | union | 484 | union |
484 | { | 485 | { |
485 | SGE_SIMPLE_UNION Simple; | 486 | SGE_SIMPLE_UNION Simple; |
486 | SGE_CHAIN_UNION Chain; | 487 | SGE_CHAIN_UNION Chain; |
487 | } u; | 488 | } u; |
488 | } SGE_IO_UNION, MPI_POINTER PTR_SGE_IO_UNION, | 489 | } SGE_IO_UNION, MPI_POINTER PTR_SGE_IO_UNION, |
489 | SGEIOUnion_t, MPI_POINTER pSGEIOUnion_t; | 490 | SGEIOUnion_t, MPI_POINTER pSGEIOUnion_t; |
490 | 491 | ||
491 | /****************************************************************************/ | 492 | /****************************************************************************/ |
492 | /* SGE union for SGL's with Simple and Transaction elements */ | 493 | /* SGE union for SGL's with Simple and Transaction elements */ |
493 | /****************************************************************************/ | 494 | /****************************************************************************/ |
494 | 495 | ||
495 | typedef struct _SGE_TRANS_SIMPLE_UNION | 496 | typedef struct _SGE_TRANS_SIMPLE_UNION |
496 | { | 497 | { |
497 | union | 498 | union |
498 | { | 499 | { |
499 | SGE_SIMPLE_UNION Simple; | 500 | SGE_SIMPLE_UNION Simple; |
500 | SGE_TRANSACTION_UNION Transaction; | 501 | SGE_TRANSACTION_UNION Transaction; |
501 | } u; | 502 | } u; |
502 | } SGE_TRANS_SIMPLE_UNION, MPI_POINTER PTR_SGE_TRANS_SIMPLE_UNION, | 503 | } SGE_TRANS_SIMPLE_UNION, MPI_POINTER PTR_SGE_TRANS_SIMPLE_UNION, |
503 | SGETransSimpleUnion_t, MPI_POINTER pSGETransSimpleUnion_t; | 504 | SGETransSimpleUnion_t, MPI_POINTER pSGETransSimpleUnion_t; |
504 | 505 | ||
505 | /****************************************************************************/ | 506 | /****************************************************************************/ |
506 | /* All SGE types union */ | 507 | /* All SGE types union */ |
507 | /****************************************************************************/ | 508 | /****************************************************************************/ |
508 | 509 | ||
509 | typedef struct _SGE_MPI_UNION | 510 | typedef struct _SGE_MPI_UNION |
510 | { | 511 | { |
511 | union | 512 | union |
512 | { | 513 | { |
513 | SGE_SIMPLE_UNION Simple; | 514 | SGE_SIMPLE_UNION Simple; |
514 | SGE_CHAIN_UNION Chain; | 515 | SGE_CHAIN_UNION Chain; |
515 | SGE_TRANSACTION_UNION Transaction; | 516 | SGE_TRANSACTION_UNION Transaction; |
516 | } u; | 517 | } u; |
517 | } SGE_MPI_UNION, MPI_POINTER PTR_SGE_MPI_UNION, | 518 | } SGE_MPI_UNION, MPI_POINTER PTR_SGE_MPI_UNION, |
518 | MPI_SGE_UNION_t, MPI_POINTER pMPI_SGE_UNION_t, | 519 | MPI_SGE_UNION_t, MPI_POINTER pMPI_SGE_UNION_t, |
519 | SGEAllUnion_t, MPI_POINTER pSGEAllUnion_t; | 520 | SGEAllUnion_t, MPI_POINTER pSGEAllUnion_t; |
520 | 521 | ||
521 | 522 | ||
522 | /****************************************************************************/ | 523 | /****************************************************************************/ |
523 | /* SGE field definition and masks */ | 524 | /* SGE field definition and masks */ |
524 | /****************************************************************************/ | 525 | /****************************************************************************/ |
525 | 526 | ||
526 | /* Flags field bit definitions */ | 527 | /* Flags field bit definitions */ |
527 | 528 | ||
528 | #define MPI_SGE_FLAGS_LAST_ELEMENT (0x80) | 529 | #define MPI_SGE_FLAGS_LAST_ELEMENT (0x80) |
529 | #define MPI_SGE_FLAGS_END_OF_BUFFER (0x40) | 530 | #define MPI_SGE_FLAGS_END_OF_BUFFER (0x40) |
530 | #define MPI_SGE_FLAGS_ELEMENT_TYPE_MASK (0x30) | 531 | #define MPI_SGE_FLAGS_ELEMENT_TYPE_MASK (0x30) |
531 | #define MPI_SGE_FLAGS_LOCAL_ADDRESS (0x08) | 532 | #define MPI_SGE_FLAGS_LOCAL_ADDRESS (0x08) |
532 | #define MPI_SGE_FLAGS_DIRECTION (0x04) | 533 | #define MPI_SGE_FLAGS_DIRECTION (0x04) |
533 | #define MPI_SGE_FLAGS_ADDRESS_SIZE (0x02) | 534 | #define MPI_SGE_FLAGS_ADDRESS_SIZE (0x02) |
534 | #define MPI_SGE_FLAGS_END_OF_LIST (0x01) | 535 | #define MPI_SGE_FLAGS_END_OF_LIST (0x01) |
535 | 536 | ||
536 | #define MPI_SGE_FLAGS_SHIFT (24) | 537 | #define MPI_SGE_FLAGS_SHIFT (24) |
537 | 538 | ||
538 | #define MPI_SGE_LENGTH_MASK (0x00FFFFFF) | 539 | #define MPI_SGE_LENGTH_MASK (0x00FFFFFF) |
539 | #define MPI_SGE_CHAIN_LENGTH_MASK (0x0000FFFF) | 540 | #define MPI_SGE_CHAIN_LENGTH_MASK (0x0000FFFF) |
540 | 541 | ||
541 | /* Element Type */ | 542 | /* Element Type */ |
542 | 543 | ||
543 | #define MPI_SGE_FLAGS_TRANSACTION_ELEMENT (0x00) | 544 | #define MPI_SGE_FLAGS_TRANSACTION_ELEMENT (0x00) |
544 | #define MPI_SGE_FLAGS_SIMPLE_ELEMENT (0x10) | 545 | #define MPI_SGE_FLAGS_SIMPLE_ELEMENT (0x10) |
545 | #define MPI_SGE_FLAGS_CHAIN_ELEMENT (0x30) | 546 | #define MPI_SGE_FLAGS_CHAIN_ELEMENT (0x30) |
546 | #define MPI_SGE_FLAGS_ELEMENT_MASK (0x30) | 547 | #define MPI_SGE_FLAGS_ELEMENT_MASK (0x30) |
547 | 548 | ||
548 | /* Address location */ | 549 | /* Address location */ |
549 | 550 | ||
550 | #define MPI_SGE_FLAGS_SYSTEM_ADDRESS (0x00) | 551 | #define MPI_SGE_FLAGS_SYSTEM_ADDRESS (0x00) |
551 | 552 | ||
552 | /* Direction */ | 553 | /* Direction */ |
553 | 554 | ||
554 | #define MPI_SGE_FLAGS_IOC_TO_HOST (0x00) | 555 | #define MPI_SGE_FLAGS_IOC_TO_HOST (0x00) |
555 | #define MPI_SGE_FLAGS_HOST_TO_IOC (0x04) | 556 | #define MPI_SGE_FLAGS_HOST_TO_IOC (0x04) |
556 | 557 | ||
557 | /* Address Size */ | 558 | /* Address Size */ |
558 | 559 | ||
559 | #define MPI_SGE_FLAGS_32_BIT_ADDRESSING (0x00) | 560 | #define MPI_SGE_FLAGS_32_BIT_ADDRESSING (0x00) |
560 | #define MPI_SGE_FLAGS_64_BIT_ADDRESSING (0x02) | 561 | #define MPI_SGE_FLAGS_64_BIT_ADDRESSING (0x02) |
561 | 562 | ||
562 | /* Context Size */ | 563 | /* Context Size */ |
563 | 564 | ||
564 | #define MPI_SGE_FLAGS_32_BIT_CONTEXT (0x00) | 565 | #define MPI_SGE_FLAGS_32_BIT_CONTEXT (0x00) |
565 | #define MPI_SGE_FLAGS_64_BIT_CONTEXT (0x02) | 566 | #define MPI_SGE_FLAGS_64_BIT_CONTEXT (0x02) |
566 | #define MPI_SGE_FLAGS_96_BIT_CONTEXT (0x04) | 567 | #define MPI_SGE_FLAGS_96_BIT_CONTEXT (0x04) |
567 | #define MPI_SGE_FLAGS_128_BIT_CONTEXT (0x06) | 568 | #define MPI_SGE_FLAGS_128_BIT_CONTEXT (0x06) |
568 | 569 | ||
569 | #define MPI_SGE_CHAIN_OFFSET_MASK (0x00FF0000) | 570 | #define MPI_SGE_CHAIN_OFFSET_MASK (0x00FF0000) |
570 | #define MPI_SGE_CHAIN_OFFSET_SHIFT (16) | 571 | #define MPI_SGE_CHAIN_OFFSET_SHIFT (16) |
571 | 572 | ||
572 | 573 | ||
573 | /****************************************************************************/ | 574 | /****************************************************************************/ |
574 | /* SGE operation Macros */ | 575 | /* SGE operation Macros */ |
575 | /****************************************************************************/ | 576 | /****************************************************************************/ |
576 | 577 | ||
577 | /* SIMPLE FlagsLength manipulations... */ | 578 | /* SIMPLE FlagsLength manipulations... */ |
578 | #define MPI_SGE_SET_FLAGS(f) ((U32)(f) << MPI_SGE_FLAGS_SHIFT) | 579 | #define MPI_SGE_SET_FLAGS(f) ((U32)(f) << MPI_SGE_FLAGS_SHIFT) |
579 | #define MPI_SGE_GET_FLAGS(fl) (((fl) & ~MPI_SGE_LENGTH_MASK) >> MPI_SGE_FLAGS_SHIFT) | 580 | #define MPI_SGE_GET_FLAGS(fl) (((fl) & ~MPI_SGE_LENGTH_MASK) >> MPI_SGE_FLAGS_SHIFT) |
580 | #define MPI_SGE_LENGTH(fl) ((fl) & MPI_SGE_LENGTH_MASK) | 581 | #define MPI_SGE_LENGTH(fl) ((fl) & MPI_SGE_LENGTH_MASK) |
581 | #define MPI_SGE_CHAIN_LENGTH(fl) ((fl) & MPI_SGE_CHAIN_LENGTH_MASK) | 582 | #define MPI_SGE_CHAIN_LENGTH(fl) ((fl) & MPI_SGE_CHAIN_LENGTH_MASK) |
582 | 583 | ||
583 | #define MPI_SGE_SET_FLAGS_LENGTH(f,l) (MPI_SGE_SET_FLAGS(f) | MPI_SGE_LENGTH(l)) | 584 | #define MPI_SGE_SET_FLAGS_LENGTH(f,l) (MPI_SGE_SET_FLAGS(f) | MPI_SGE_LENGTH(l)) |
584 | 585 | ||
585 | #define MPI_pSGE_GET_FLAGS(psg) MPI_SGE_GET_FLAGS((psg)->FlagsLength) | 586 | #define MPI_pSGE_GET_FLAGS(psg) MPI_SGE_GET_FLAGS((psg)->FlagsLength) |
586 | #define MPI_pSGE_GET_LENGTH(psg) MPI_SGE_LENGTH((psg)->FlagsLength) | 587 | #define MPI_pSGE_GET_LENGTH(psg) MPI_SGE_LENGTH((psg)->FlagsLength) |
587 | #define MPI_pSGE_SET_FLAGS_LENGTH(psg,f,l) (psg)->FlagsLength = MPI_SGE_SET_FLAGS_LENGTH(f,l) | 588 | #define MPI_pSGE_SET_FLAGS_LENGTH(psg,f,l) (psg)->FlagsLength = MPI_SGE_SET_FLAGS_LENGTH(f,l) |
588 | /* CAUTION - The following are READ-MODIFY-WRITE! */ | 589 | /* CAUTION - The following are READ-MODIFY-WRITE! */ |
589 | #define MPI_pSGE_SET_FLAGS(psg,f) (psg)->FlagsLength |= MPI_SGE_SET_FLAGS(f) | 590 | #define MPI_pSGE_SET_FLAGS(psg,f) (psg)->FlagsLength |= MPI_SGE_SET_FLAGS(f) |
590 | #define MPI_pSGE_SET_LENGTH(psg,l) (psg)->FlagsLength |= MPI_SGE_LENGTH(l) | 591 | #define MPI_pSGE_SET_LENGTH(psg,l) (psg)->FlagsLength |= MPI_SGE_LENGTH(l) |
591 | 592 | ||
592 | #define MPI_GET_CHAIN_OFFSET(x) ((x&MPI_SGE_CHAIN_OFFSET_MASK)>>MPI_SGE_CHAIN_OFFSET_SHIFT) | 593 | #define MPI_GET_CHAIN_OFFSET(x) ((x&MPI_SGE_CHAIN_OFFSET_MASK)>>MPI_SGE_CHAIN_OFFSET_SHIFT) |
593 | 594 | ||
594 | 595 | ||
595 | 596 | ||
596 | /***************************************************************************** | 597 | /***************************************************************************** |
597 | * | 598 | * |
598 | * S t a n d a r d M e s s a g e S t r u c t u r e s | 599 | * S t a n d a r d M e s s a g e S t r u c t u r e s |
599 | * | 600 | * |
600 | *****************************************************************************/ | 601 | *****************************************************************************/ |
601 | 602 | ||
602 | /****************************************************************************/ | 603 | /****************************************************************************/ |
603 | /* Standard message request header for all request messages */ | 604 | /* Standard message request header for all request messages */ |
604 | /****************************************************************************/ | 605 | /****************************************************************************/ |
605 | 606 | ||
606 | typedef struct _MSG_REQUEST_HEADER | 607 | typedef struct _MSG_REQUEST_HEADER |
607 | { | 608 | { |
608 | U8 Reserved[2]; /* function specific */ | 609 | U8 Reserved[2]; /* function specific */ |
609 | U8 ChainOffset; | 610 | U8 ChainOffset; |
610 | U8 Function; | 611 | U8 Function; |
611 | U8 Reserved1[3]; /* function specific */ | 612 | U8 Reserved1[3]; /* function specific */ |
612 | U8 MsgFlags; | 613 | U8 MsgFlags; |
613 | U32 MsgContext; | 614 | U32 MsgContext; |
614 | } MSG_REQUEST_HEADER, MPI_POINTER PTR_MSG_REQUEST_HEADER, | 615 | } MSG_REQUEST_HEADER, MPI_POINTER PTR_MSG_REQUEST_HEADER, |
615 | MPIHeader_t, MPI_POINTER pMPIHeader_t; | 616 | MPIHeader_t, MPI_POINTER pMPIHeader_t; |
616 | 617 | ||
617 | 618 | ||
618 | /****************************************************************************/ | 619 | /****************************************************************************/ |
619 | /* Default Reply */ | 620 | /* Default Reply */ |
620 | /****************************************************************************/ | 621 | /****************************************************************************/ |
621 | 622 | ||
622 | typedef struct _MSG_DEFAULT_REPLY | 623 | typedef struct _MSG_DEFAULT_REPLY |
623 | { | 624 | { |
624 | U8 Reserved[2]; /* function specific */ | 625 | U8 Reserved[2]; /* function specific */ |
625 | U8 MsgLength; | 626 | U8 MsgLength; |
626 | U8 Function; | 627 | U8 Function; |
627 | U8 Reserved1[3]; /* function specific */ | 628 | U8 Reserved1[3]; /* function specific */ |
628 | U8 MsgFlags; | 629 | U8 MsgFlags; |
629 | U32 MsgContext; | 630 | U32 MsgContext; |
630 | U8 Reserved2[2]; /* function specific */ | 631 | U8 Reserved2[2]; /* function specific */ |
631 | U16 IOCStatus; | 632 | U16 IOCStatus; |
632 | U32 IOCLogInfo; | 633 | U32 IOCLogInfo; |
633 | } MSG_DEFAULT_REPLY, MPI_POINTER PTR_MSG_DEFAULT_REPLY, | 634 | } MSG_DEFAULT_REPLY, MPI_POINTER PTR_MSG_DEFAULT_REPLY, |
634 | MPIDefaultReply_t, MPI_POINTER pMPIDefaultReply_t; | 635 | MPIDefaultReply_t, MPI_POINTER pMPIDefaultReply_t; |
635 | 636 | ||
636 | 637 | ||
637 | /* MsgFlags definition for all replies */ | 638 | /* MsgFlags definition for all replies */ |
638 | 639 | ||
639 | #define MPI_MSGFLAGS_CONTINUATION_REPLY (0x80) | 640 | #define MPI_MSGFLAGS_CONTINUATION_REPLY (0x80) |
640 | 641 | ||
641 | 642 | ||
642 | /***************************************************************************** | 643 | /***************************************************************************** |
643 | * | 644 | * |
644 | * I O C S t a t u s V a l u e s | 645 | * I O C S t a t u s V a l u e s |
645 | * | 646 | * |
646 | *****************************************************************************/ | 647 | *****************************************************************************/ |
647 | 648 | ||
648 | /****************************************************************************/ | 649 | /****************************************************************************/ |
649 | /* Common IOCStatus values for all replies */ | 650 | /* Common IOCStatus values for all replies */ |
650 | /****************************************************************************/ | 651 | /****************************************************************************/ |
651 | 652 | ||
652 | #define MPI_IOCSTATUS_SUCCESS (0x0000) | 653 | #define MPI_IOCSTATUS_SUCCESS (0x0000) |
653 | #define MPI_IOCSTATUS_INVALID_FUNCTION (0x0001) | 654 | #define MPI_IOCSTATUS_INVALID_FUNCTION (0x0001) |
654 | #define MPI_IOCSTATUS_BUSY (0x0002) | 655 | #define MPI_IOCSTATUS_BUSY (0x0002) |
655 | #define MPI_IOCSTATUS_INVALID_SGL (0x0003) | 656 | #define MPI_IOCSTATUS_INVALID_SGL (0x0003) |
656 | #define MPI_IOCSTATUS_INTERNAL_ERROR (0x0004) | 657 | #define MPI_IOCSTATUS_INTERNAL_ERROR (0x0004) |
657 | #define MPI_IOCSTATUS_RESERVED (0x0005) | 658 | #define MPI_IOCSTATUS_RESERVED (0x0005) |
658 | #define MPI_IOCSTATUS_INSUFFICIENT_RESOURCES (0x0006) | 659 | #define MPI_IOCSTATUS_INSUFFICIENT_RESOURCES (0x0006) |
659 | #define MPI_IOCSTATUS_INVALID_FIELD (0x0007) | 660 | #define MPI_IOCSTATUS_INVALID_FIELD (0x0007) |
660 | #define MPI_IOCSTATUS_INVALID_STATE (0x0008) | 661 | #define MPI_IOCSTATUS_INVALID_STATE (0x0008) |
661 | #define MPI_IOCSTATUS_OP_STATE_NOT_SUPPORTED (0x0009) | 662 | #define MPI_IOCSTATUS_OP_STATE_NOT_SUPPORTED (0x0009) |
662 | 663 | ||
663 | /****************************************************************************/ | 664 | /****************************************************************************/ |
664 | /* Config IOCStatus values */ | 665 | /* Config IOCStatus values */ |
665 | /****************************************************************************/ | 666 | /****************************************************************************/ |
666 | 667 | ||
667 | #define MPI_IOCSTATUS_CONFIG_INVALID_ACTION (0x0020) | 668 | #define MPI_IOCSTATUS_CONFIG_INVALID_ACTION (0x0020) |
668 | #define MPI_IOCSTATUS_CONFIG_INVALID_TYPE (0x0021) | 669 | #define MPI_IOCSTATUS_CONFIG_INVALID_TYPE (0x0021) |
669 | #define MPI_IOCSTATUS_CONFIG_INVALID_PAGE (0x0022) | 670 | #define MPI_IOCSTATUS_CONFIG_INVALID_PAGE (0x0022) |
670 | #define MPI_IOCSTATUS_CONFIG_INVALID_DATA (0x0023) | 671 | #define MPI_IOCSTATUS_CONFIG_INVALID_DATA (0x0023) |
671 | #define MPI_IOCSTATUS_CONFIG_NO_DEFAULTS (0x0024) | 672 | #define MPI_IOCSTATUS_CONFIG_NO_DEFAULTS (0x0024) |
672 | #define MPI_IOCSTATUS_CONFIG_CANT_COMMIT (0x0025) | 673 | #define MPI_IOCSTATUS_CONFIG_CANT_COMMIT (0x0025) |
673 | 674 | ||
674 | /****************************************************************************/ | 675 | /****************************************************************************/ |
675 | /* SCSIIO Reply (SPI & FCP) initiator values */ | 676 | /* SCSIIO Reply (SPI & FCP) initiator values */ |
676 | /****************************************************************************/ | 677 | /****************************************************************************/ |
677 | 678 | ||
678 | #define MPI_IOCSTATUS_SCSI_RECOVERED_ERROR (0x0040) | 679 | #define MPI_IOCSTATUS_SCSI_RECOVERED_ERROR (0x0040) |
679 | #define MPI_IOCSTATUS_SCSI_INVALID_BUS (0x0041) | 680 | #define MPI_IOCSTATUS_SCSI_INVALID_BUS (0x0041) |
680 | #define MPI_IOCSTATUS_SCSI_INVALID_TARGETID (0x0042) | 681 | #define MPI_IOCSTATUS_SCSI_INVALID_TARGETID (0x0042) |
681 | #define MPI_IOCSTATUS_SCSI_DEVICE_NOT_THERE (0x0043) | 682 | #define MPI_IOCSTATUS_SCSI_DEVICE_NOT_THERE (0x0043) |
682 | #define MPI_IOCSTATUS_SCSI_DATA_OVERRUN (0x0044) | 683 | #define MPI_IOCSTATUS_SCSI_DATA_OVERRUN (0x0044) |
683 | #define MPI_IOCSTATUS_SCSI_DATA_UNDERRUN (0x0045) | 684 | #define MPI_IOCSTATUS_SCSI_DATA_UNDERRUN (0x0045) |
684 | #define MPI_IOCSTATUS_SCSI_IO_DATA_ERROR (0x0046) | 685 | #define MPI_IOCSTATUS_SCSI_IO_DATA_ERROR (0x0046) |
685 | #define MPI_IOCSTATUS_SCSI_PROTOCOL_ERROR (0x0047) | 686 | #define MPI_IOCSTATUS_SCSI_PROTOCOL_ERROR (0x0047) |
686 | #define MPI_IOCSTATUS_SCSI_TASK_TERMINATED (0x0048) | 687 | #define MPI_IOCSTATUS_SCSI_TASK_TERMINATED (0x0048) |
687 | #define MPI_IOCSTATUS_SCSI_RESIDUAL_MISMATCH (0x0049) | 688 | #define MPI_IOCSTATUS_SCSI_RESIDUAL_MISMATCH (0x0049) |
688 | #define MPI_IOCSTATUS_SCSI_TASK_MGMT_FAILED (0x004A) | 689 | #define MPI_IOCSTATUS_SCSI_TASK_MGMT_FAILED (0x004A) |
689 | #define MPI_IOCSTATUS_SCSI_IOC_TERMINATED (0x004B) | 690 | #define MPI_IOCSTATUS_SCSI_IOC_TERMINATED (0x004B) |
690 | #define MPI_IOCSTATUS_SCSI_EXT_TERMINATED (0x004C) | 691 | #define MPI_IOCSTATUS_SCSI_EXT_TERMINATED (0x004C) |
691 | 692 | ||
692 | /****************************************************************************/ | 693 | /****************************************************************************/ |
693 | /* For use by SCSI Initiator and SCSI Target end-to-end data protection */ | 694 | /* For use by SCSI Initiator and SCSI Target end-to-end data protection */ |
694 | /****************************************************************************/ | 695 | /****************************************************************************/ |
695 | 696 | ||
696 | #define MPI_IOCSTATUS_EEDP_GUARD_ERROR (0x004D) | 697 | #define MPI_IOCSTATUS_EEDP_GUARD_ERROR (0x004D) |
697 | #define MPI_IOCSTATUS_EEDP_REF_TAG_ERROR (0x004E) | 698 | #define MPI_IOCSTATUS_EEDP_REF_TAG_ERROR (0x004E) |
698 | #define MPI_IOCSTATUS_EEDP_APP_TAG_ERROR (0x004F) | 699 | #define MPI_IOCSTATUS_EEDP_APP_TAG_ERROR (0x004F) |
699 | 700 | ||
700 | 701 | ||
701 | /****************************************************************************/ | 702 | /****************************************************************************/ |
702 | /* SCSI Target values */ | 703 | /* SCSI Target values */ |
703 | /****************************************************************************/ | 704 | /****************************************************************************/ |
704 | 705 | ||
705 | #define MPI_IOCSTATUS_TARGET_PRIORITY_IO (0x0060) | 706 | #define MPI_IOCSTATUS_TARGET_PRIORITY_IO (0x0060) |
706 | #define MPI_IOCSTATUS_TARGET_INVALID_PORT (0x0061) | 707 | #define MPI_IOCSTATUS_TARGET_INVALID_PORT (0x0061) |
707 | #define MPI_IOCSTATUS_TARGET_INVALID_IOCINDEX (0x0062) /* obsolete name */ | 708 | #define MPI_IOCSTATUS_TARGET_INVALID_IOCINDEX (0x0062) /* obsolete name */ |
708 | #define MPI_IOCSTATUS_TARGET_INVALID_IO_INDEX (0x0062) | 709 | #define MPI_IOCSTATUS_TARGET_INVALID_IO_INDEX (0x0062) |
709 | #define MPI_IOCSTATUS_TARGET_ABORTED (0x0063) | 710 | #define MPI_IOCSTATUS_TARGET_ABORTED (0x0063) |
710 | #define MPI_IOCSTATUS_TARGET_NO_CONN_RETRYABLE (0x0064) | 711 | #define MPI_IOCSTATUS_TARGET_NO_CONN_RETRYABLE (0x0064) |
711 | #define MPI_IOCSTATUS_TARGET_NO_CONNECTION (0x0065) | 712 | #define MPI_IOCSTATUS_TARGET_NO_CONNECTION (0x0065) |
712 | #define MPI_IOCSTATUS_TARGET_XFER_COUNT_MISMATCH (0x006A) | 713 | #define MPI_IOCSTATUS_TARGET_XFER_COUNT_MISMATCH (0x006A) |
713 | #define MPI_IOCSTATUS_TARGET_STS_DATA_NOT_SENT (0x006B) | 714 | #define MPI_IOCSTATUS_TARGET_STS_DATA_NOT_SENT (0x006B) |
714 | #define MPI_IOCSTATUS_TARGET_DATA_OFFSET_ERROR (0x006D) | 715 | #define MPI_IOCSTATUS_TARGET_DATA_OFFSET_ERROR (0x006D) |
715 | #define MPI_IOCSTATUS_TARGET_TOO_MUCH_WRITE_DATA (0x006E) | 716 | #define MPI_IOCSTATUS_TARGET_TOO_MUCH_WRITE_DATA (0x006E) |
716 | #define MPI_IOCSTATUS_TARGET_IU_TOO_SHORT (0x006F) | 717 | #define MPI_IOCSTATUS_TARGET_IU_TOO_SHORT (0x006F) |
717 | #define MPI_IOCSTATUS_TARGET_ACK_NAK_TIMEOUT (0x0070) | 718 | #define MPI_IOCSTATUS_TARGET_ACK_NAK_TIMEOUT (0x0070) |
718 | #define MPI_IOCSTATUS_TARGET_NAK_RECEIVED (0x0071) | 719 | #define MPI_IOCSTATUS_TARGET_NAK_RECEIVED (0x0071) |
719 | 720 | ||
720 | /****************************************************************************/ | 721 | /****************************************************************************/ |
721 | /* Additional FCP target values (obsolete) */ | 722 | /* Additional FCP target values (obsolete) */ |
722 | /****************************************************************************/ | 723 | /****************************************************************************/ |
723 | 724 | ||
724 | #define MPI_IOCSTATUS_TARGET_FC_ABORTED (0x0066) /* obsolete */ | 725 | #define MPI_IOCSTATUS_TARGET_FC_ABORTED (0x0066) /* obsolete */ |
725 | #define MPI_IOCSTATUS_TARGET_FC_RX_ID_INVALID (0x0067) /* obsolete */ | 726 | #define MPI_IOCSTATUS_TARGET_FC_RX_ID_INVALID (0x0067) /* obsolete */ |
726 | #define MPI_IOCSTATUS_TARGET_FC_DID_INVALID (0x0068) /* obsolete */ | 727 | #define MPI_IOCSTATUS_TARGET_FC_DID_INVALID (0x0068) /* obsolete */ |
727 | #define MPI_IOCSTATUS_TARGET_FC_NODE_LOGGED_OUT (0x0069) /* obsolete */ | 728 | #define MPI_IOCSTATUS_TARGET_FC_NODE_LOGGED_OUT (0x0069) /* obsolete */ |
728 | 729 | ||
729 | /****************************************************************************/ | 730 | /****************************************************************************/ |
730 | /* Fibre Channel Direct Access values */ | 731 | /* Fibre Channel Direct Access values */ |
731 | /****************************************************************************/ | 732 | /****************************************************************************/ |
732 | 733 | ||
733 | #define MPI_IOCSTATUS_FC_ABORTED (0x0066) | 734 | #define MPI_IOCSTATUS_FC_ABORTED (0x0066) |
734 | #define MPI_IOCSTATUS_FC_RX_ID_INVALID (0x0067) | 735 | #define MPI_IOCSTATUS_FC_RX_ID_INVALID (0x0067) |
735 | #define MPI_IOCSTATUS_FC_DID_INVALID (0x0068) | 736 | #define MPI_IOCSTATUS_FC_DID_INVALID (0x0068) |
736 | #define MPI_IOCSTATUS_FC_NODE_LOGGED_OUT (0x0069) | 737 | #define MPI_IOCSTATUS_FC_NODE_LOGGED_OUT (0x0069) |
737 | #define MPI_IOCSTATUS_FC_EXCHANGE_CANCELED (0x006C) | 738 | #define MPI_IOCSTATUS_FC_EXCHANGE_CANCELED (0x006C) |
738 | 739 | ||
739 | /****************************************************************************/ | 740 | /****************************************************************************/ |
740 | /* LAN values */ | 741 | /* LAN values */ |
741 | /****************************************************************************/ | 742 | /****************************************************************************/ |
742 | 743 | ||
743 | #define MPI_IOCSTATUS_LAN_DEVICE_NOT_FOUND (0x0080) | 744 | #define MPI_IOCSTATUS_LAN_DEVICE_NOT_FOUND (0x0080) |
744 | #define MPI_IOCSTATUS_LAN_DEVICE_FAILURE (0x0081) | 745 | #define MPI_IOCSTATUS_LAN_DEVICE_FAILURE (0x0081) |
745 | #define MPI_IOCSTATUS_LAN_TRANSMIT_ERROR (0x0082) | 746 | #define MPI_IOCSTATUS_LAN_TRANSMIT_ERROR (0x0082) |
746 | #define MPI_IOCSTATUS_LAN_TRANSMIT_ABORTED (0x0083) | 747 | #define MPI_IOCSTATUS_LAN_TRANSMIT_ABORTED (0x0083) |
747 | #define MPI_IOCSTATUS_LAN_RECEIVE_ERROR (0x0084) | 748 | #define MPI_IOCSTATUS_LAN_RECEIVE_ERROR (0x0084) |
748 | #define MPI_IOCSTATUS_LAN_RECEIVE_ABORTED (0x0085) | 749 | #define MPI_IOCSTATUS_LAN_RECEIVE_ABORTED (0x0085) |
749 | #define MPI_IOCSTATUS_LAN_PARTIAL_PACKET (0x0086) | 750 | #define MPI_IOCSTATUS_LAN_PARTIAL_PACKET (0x0086) |
750 | #define MPI_IOCSTATUS_LAN_CANCELED (0x0087) | 751 | #define MPI_IOCSTATUS_LAN_CANCELED (0x0087) |
751 | 752 | ||
752 | /****************************************************************************/ | 753 | /****************************************************************************/ |
753 | /* Serial Attached SCSI values */ | 754 | /* Serial Attached SCSI values */ |
754 | /****************************************************************************/ | 755 | /****************************************************************************/ |
755 | 756 | ||
756 | #define MPI_IOCSTATUS_SAS_SMP_REQUEST_FAILED (0x0090) | 757 | #define MPI_IOCSTATUS_SAS_SMP_REQUEST_FAILED (0x0090) |
757 | #define MPI_IOCSTATUS_SAS_SMP_DATA_OVERRUN (0x0091) | 758 | #define MPI_IOCSTATUS_SAS_SMP_DATA_OVERRUN (0x0091) |
758 | 759 | ||
759 | /****************************************************************************/ | 760 | /****************************************************************************/ |
760 | /* Inband values */ | 761 | /* Inband values */ |
761 | /****************************************************************************/ | 762 | /****************************************************************************/ |
762 | 763 | ||
763 | #define MPI_IOCSTATUS_INBAND_ABORTED (0x0098) | 764 | #define MPI_IOCSTATUS_INBAND_ABORTED (0x0098) |
764 | #define MPI_IOCSTATUS_INBAND_NO_CONNECTION (0x0099) | 765 | #define MPI_IOCSTATUS_INBAND_NO_CONNECTION (0x0099) |
765 | 766 | ||
766 | /****************************************************************************/ | 767 | /****************************************************************************/ |
767 | /* Diagnostic Tools values */ | 768 | /* Diagnostic Tools values */ |
768 | /****************************************************************************/ | 769 | /****************************************************************************/ |
769 | 770 | ||
770 | #define MPI_IOCSTATUS_DIAGNOSTIC_RELEASED (0x00A0) | 771 | #define MPI_IOCSTATUS_DIAGNOSTIC_RELEASED (0x00A0) |
771 | 772 | ||
772 | 773 | ||
773 | /****************************************************************************/ | 774 | /****************************************************************************/ |
774 | /* IOCStatus flag to indicate that log info is available */ | 775 | /* IOCStatus flag to indicate that log info is available */ |
775 | /****************************************************************************/ | 776 | /****************************************************************************/ |
776 | 777 | ||
777 | #define MPI_IOCSTATUS_FLAG_LOG_INFO_AVAILABLE (0x8000) | 778 | #define MPI_IOCSTATUS_FLAG_LOG_INFO_AVAILABLE (0x8000) |
778 | #define MPI_IOCSTATUS_MASK (0x7FFF) | 779 | #define MPI_IOCSTATUS_MASK (0x7FFF) |
779 | 780 | ||
780 | /****************************************************************************/ | 781 | /****************************************************************************/ |
781 | /* LogInfo Types */ | 782 | /* LogInfo Types */ |
782 | /****************************************************************************/ | 783 | /****************************************************************************/ |
783 | 784 | ||
784 | #define MPI_IOCLOGINFO_TYPE_MASK (0xF0000000) | 785 | #define MPI_IOCLOGINFO_TYPE_MASK (0xF0000000) |
785 | #define MPI_IOCLOGINFO_TYPE_SHIFT (28) | 786 | #define MPI_IOCLOGINFO_TYPE_SHIFT (28) |
786 | #define MPI_IOCLOGINFO_TYPE_NONE (0x0) | 787 | #define MPI_IOCLOGINFO_TYPE_NONE (0x0) |
787 | #define MPI_IOCLOGINFO_TYPE_SCSI (0x1) | 788 | #define MPI_IOCLOGINFO_TYPE_SCSI (0x1) |
788 | #define MPI_IOCLOGINFO_TYPE_FC (0x2) | 789 | #define MPI_IOCLOGINFO_TYPE_FC (0x2) |
789 | #define MPI_IOCLOGINFO_TYPE_SAS (0x3) | 790 | #define MPI_IOCLOGINFO_TYPE_SAS (0x3) |
790 | #define MPI_IOCLOGINFO_TYPE_ISCSI (0x4) | 791 | #define MPI_IOCLOGINFO_TYPE_ISCSI (0x4) |
791 | #define MPI_IOCLOGINFO_LOG_DATA_MASK (0x0FFFFFFF) | 792 | #define MPI_IOCLOGINFO_LOG_DATA_MASK (0x0FFFFFFF) |
792 | 793 | ||
793 | 794 | ||
794 | #endif | 795 | #endif |
795 | 796 |
drivers/message/fusion/lsi/mpi_cnfg.h
1 | /* | 1 | /* |
2 | * Copyright (c) 2000-2005 LSI Logic Corporation. | 2 | * Copyright (c) 2000-2006 LSI Logic Corporation. |
3 | * | 3 | * |
4 | * | 4 | * |
5 | * Name: mpi_cnfg.h | 5 | * Name: mpi_cnfg.h |
6 | * Title: MPI Config message, structures, and Pages | 6 | * Title: MPI Config message, structures, and Pages |
7 | * Creation Date: July 27, 2000 | 7 | * Creation Date: July 27, 2000 |
8 | * | 8 | * |
9 | * mpi_cnfg.h Version: 01.05.12 | 9 | * mpi_cnfg.h Version: 01.05.13 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
13 | * | 13 | * |
14 | * Date Version Description | 14 | * Date Version Description |
15 | * -------- -------- ------------------------------------------------------ | 15 | * -------- -------- ------------------------------------------------------ |
16 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. | 16 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. |
17 | * 06-06-00 01.00.01 Update version number for 1.0 release. | 17 | * 06-06-00 01.00.01 Update version number for 1.0 release. |
18 | * 06-08-00 01.00.02 Added _PAGEVERSION definitions for all pages. | 18 | * 06-08-00 01.00.02 Added _PAGEVERSION definitions for all pages. |
19 | * Added FcPhLowestVersion, FcPhHighestVersion, Reserved2 | 19 | * Added FcPhLowestVersion, FcPhHighestVersion, Reserved2 |
20 | * fields to FC_DEVICE_0 page, updated the page version. | 20 | * fields to FC_DEVICE_0 page, updated the page version. |
21 | * Changed _FREE_RUNNING_CLOCK to _PACING_TRANSFERS in | 21 | * Changed _FREE_RUNNING_CLOCK to _PACING_TRANSFERS in |
22 | * SCSI_PORT_0, SCSI_DEVICE_0 and SCSI_DEVICE_1 pages | 22 | * SCSI_PORT_0, SCSI_DEVICE_0 and SCSI_DEVICE_1 pages |
23 | * and updated the page versions. | 23 | * and updated the page versions. |
24 | * Added _RESPONSE_ID_MASK definition to SCSI_PORT_1 | 24 | * Added _RESPONSE_ID_MASK definition to SCSI_PORT_1 |
25 | * page and updated the page version. | 25 | * page and updated the page version. |
26 | * Added Information field and _INFO_PARAMS_NEGOTIATED | 26 | * Added Information field and _INFO_PARAMS_NEGOTIATED |
27 | * definitionto SCSI_DEVICE_0 page. | 27 | * definitionto SCSI_DEVICE_0 page. |
28 | * 06-22-00 01.00.03 Removed batch controls from LAN_0 page and updated the | 28 | * 06-22-00 01.00.03 Removed batch controls from LAN_0 page and updated the |
29 | * page version. | 29 | * page version. |
30 | * Added BucketsRemaining to LAN_1 page, redefined the | 30 | * Added BucketsRemaining to LAN_1 page, redefined the |
31 | * state values, and updated the page version. | 31 | * state values, and updated the page version. |
32 | * Revised bus width definitions in SCSI_PORT_0, | 32 | * Revised bus width definitions in SCSI_PORT_0, |
33 | * SCSI_DEVICE_0 and SCSI_DEVICE_1 pages. | 33 | * SCSI_DEVICE_0 and SCSI_DEVICE_1 pages. |
34 | * 06-30-00 01.00.04 Added MaxReplySize to LAN_1 page and updated the page | 34 | * 06-30-00 01.00.04 Added MaxReplySize to LAN_1 page and updated the page |
35 | * version. | 35 | * version. |
36 | * Moved FC_DEVICE_0 PageAddress description to spec. | 36 | * Moved FC_DEVICE_0 PageAddress description to spec. |
37 | * 07-27-00 01.00.05 Corrected the SubsystemVendorID and SubsystemID field | 37 | * 07-27-00 01.00.05 Corrected the SubsystemVendorID and SubsystemID field |
38 | * widths in IOC_0 page and updated the page version. | 38 | * widths in IOC_0 page and updated the page version. |
39 | * 11-02-00 01.01.01 Original release for post 1.0 work | 39 | * 11-02-00 01.01.01 Original release for post 1.0 work |
40 | * Added Manufacturing pages, IO Unit Page 2, SCSI SPI | 40 | * Added Manufacturing pages, IO Unit Page 2, SCSI SPI |
41 | * Port Page 2, FC Port Page 4, FC Port Page 5 | 41 | * Port Page 2, FC Port Page 4, FC Port Page 5 |
42 | * 11-15-00 01.01.02 Interim changes to match proposals | 42 | * 11-15-00 01.01.02 Interim changes to match proposals |
43 | * 12-04-00 01.01.03 Config page changes to match MPI rev 1.00.01. | 43 | * 12-04-00 01.01.03 Config page changes to match MPI rev 1.00.01. |
44 | * 12-05-00 01.01.04 Modified config page actions. | 44 | * 12-05-00 01.01.04 Modified config page actions. |
45 | * 01-09-01 01.01.05 Added defines for page address formats. | 45 | * 01-09-01 01.01.05 Added defines for page address formats. |
46 | * Data size for Manufacturing pages 2 and 3 no longer | 46 | * Data size for Manufacturing pages 2 and 3 no longer |
47 | * defined here. | 47 | * defined here. |
48 | * Io Unit Page 2 size is fixed at 4 adapters and some | 48 | * Io Unit Page 2 size is fixed at 4 adapters and some |
49 | * flags were changed. | 49 | * flags were changed. |
50 | * SCSI Port Page 2 Device Settings modified. | 50 | * SCSI Port Page 2 Device Settings modified. |
51 | * New fields added to FC Port Page 0 and some flags | 51 | * New fields added to FC Port Page 0 and some flags |
52 | * cleaned up. | 52 | * cleaned up. |
53 | * Removed impedance flash from FC Port Page 1. | 53 | * Removed impedance flash from FC Port Page 1. |
54 | * Added FC Port pages 6 and 7. | 54 | * Added FC Port pages 6 and 7. |
55 | * 01-25-01 01.01.06 Added MaxInitiators field to FcPortPage0. | 55 | * 01-25-01 01.01.06 Added MaxInitiators field to FcPortPage0. |
56 | * 01-29-01 01.01.07 Changed some defines to make them 32 character unique. | 56 | * 01-29-01 01.01.07 Changed some defines to make them 32 character unique. |
57 | * Added some LinkType defines for FcPortPage0. | 57 | * Added some LinkType defines for FcPortPage0. |
58 | * 02-20-01 01.01.08 Started using MPI_POINTER. | 58 | * 02-20-01 01.01.08 Started using MPI_POINTER. |
59 | * 02-27-01 01.01.09 Replaced MPI_CONFIG_PAGETYPE_SCSI_LUN with | 59 | * 02-27-01 01.01.09 Replaced MPI_CONFIG_PAGETYPE_SCSI_LUN with |
60 | * MPI_CONFIG_PAGETYPE_RAID_VOLUME. | 60 | * MPI_CONFIG_PAGETYPE_RAID_VOLUME. |
61 | * Added definitions and structures for IOC Page 2 and | 61 | * Added definitions and structures for IOC Page 2 and |
62 | * RAID Volume Page 2. | 62 | * RAID Volume Page 2. |
63 | * 03-27-01 01.01.10 Added CONFIG_PAGE_FC_PORT_8 and CONFIG_PAGE_FC_PORT_9. | 63 | * 03-27-01 01.01.10 Added CONFIG_PAGE_FC_PORT_8 and CONFIG_PAGE_FC_PORT_9. |
64 | * CONFIG_PAGE_FC_PORT_3 now supports persistent by DID. | 64 | * CONFIG_PAGE_FC_PORT_3 now supports persistent by DID. |
65 | * Added VendorId and ProductRevLevel fields to | 65 | * Added VendorId and ProductRevLevel fields to |
66 | * RAIDVOL2_IM_PHYS_ID struct. | 66 | * RAIDVOL2_IM_PHYS_ID struct. |
67 | * Modified values for MPI_FCPORTPAGE0_FLAGS_ATTACH_ | 67 | * Modified values for MPI_FCPORTPAGE0_FLAGS_ATTACH_ |
68 | * defines to make them compatible to MPI version 1.0. | 68 | * defines to make them compatible to MPI version 1.0. |
69 | * Added structure offset comments. | 69 | * Added structure offset comments. |
70 | * 04-09-01 01.01.11 Added some new defines for the PageAddress field and | 70 | * 04-09-01 01.01.11 Added some new defines for the PageAddress field and |
71 | * removed some obsolete ones. | 71 | * removed some obsolete ones. |
72 | * Added IO Unit Page 3. | 72 | * Added IO Unit Page 3. |
73 | * Modified defines for Scsi Port Page 2. | 73 | * Modified defines for Scsi Port Page 2. |
74 | * Modified RAID Volume Pages. | 74 | * Modified RAID Volume Pages. |
75 | * 08-08-01 01.02.01 Original release for v1.2 work. | 75 | * 08-08-01 01.02.01 Original release for v1.2 work. |
76 | * Added SepID and SepBus to RVP2 IMPhysicalDisk struct. | 76 | * Added SepID and SepBus to RVP2 IMPhysicalDisk struct. |
77 | * Added defines for the SEP bits in RVP2 VolumeSettings. | 77 | * Added defines for the SEP bits in RVP2 VolumeSettings. |
78 | * Modified the DeviceSettings field in RVP2 to use the | 78 | * Modified the DeviceSettings field in RVP2 to use the |
79 | * proper structure. | 79 | * proper structure. |
80 | * Added defines for SES, SAF-TE, and cross channel for | 80 | * Added defines for SES, SAF-TE, and cross channel for |
81 | * IOCPage2 CapabilitiesFlags. | 81 | * IOCPage2 CapabilitiesFlags. |
82 | * Removed define for MPI_IOUNITPAGE2_FLAGS_RAID_DISABLE. | 82 | * Removed define for MPI_IOUNITPAGE2_FLAGS_RAID_DISABLE. |
83 | * Removed define for | 83 | * Removed define for |
84 | * MPI_SCSIPORTPAGE2_PORT_FLAGS_PARITY_ENABLE. | 84 | * MPI_SCSIPORTPAGE2_PORT_FLAGS_PARITY_ENABLE. |
85 | * Added define for MPI_CONFIG_PAGEATTR_RO_PERSISTENT. | 85 | * Added define for MPI_CONFIG_PAGEATTR_RO_PERSISTENT. |
86 | * 08-29-01 01.02.02 Fixed value for MPI_MANUFACTPAGE_DEVID_53C1035. | 86 | * 08-29-01 01.02.02 Fixed value for MPI_MANUFACTPAGE_DEVID_53C1035. |
87 | * Added defines for MPI_FCPORTPAGE1_FLAGS_HARD_ALPA_ONLY | 87 | * Added defines for MPI_FCPORTPAGE1_FLAGS_HARD_ALPA_ONLY |
88 | * and MPI_FCPORTPAGE1_FLAGS_IMMEDIATE_ERROR_REPLY. | 88 | * and MPI_FCPORTPAGE1_FLAGS_IMMEDIATE_ERROR_REPLY. |
89 | * Removed MPI_SCSIPORTPAGE0_CAP_PACING_TRANSFERS, | 89 | * Removed MPI_SCSIPORTPAGE0_CAP_PACING_TRANSFERS, |
90 | * MPI_SCSIDEVPAGE0_NP_PACING_TRANSFERS, and | 90 | * MPI_SCSIDEVPAGE0_NP_PACING_TRANSFERS, and |
91 | * MPI_SCSIDEVPAGE1_RP_PACING_TRANSFERS, and | 91 | * MPI_SCSIDEVPAGE1_RP_PACING_TRANSFERS, and |
92 | * MPI_SCSIDEVPAGE1_CONF_PPR_ALLOWED. | 92 | * MPI_SCSIDEVPAGE1_CONF_PPR_ALLOWED. |
93 | * Added defines for MPI_SCSIDEVPAGE1_CONF_WDTR_DISALLOWED | 93 | * Added defines for MPI_SCSIDEVPAGE1_CONF_WDTR_DISALLOWED |
94 | * and MPI_SCSIDEVPAGE1_CONF_SDTR_DISALLOWED. | 94 | * and MPI_SCSIDEVPAGE1_CONF_SDTR_DISALLOWED. |
95 | * Added OnBusTimerValue to CONFIG_PAGE_SCSI_PORT_1. | 95 | * Added OnBusTimerValue to CONFIG_PAGE_SCSI_PORT_1. |
96 | * Added rejected bits to SCSI Device Page 0 Information. | 96 | * Added rejected bits to SCSI Device Page 0 Information. |
97 | * Increased size of ALPA array in FC Port Page 2 by one | 97 | * Increased size of ALPA array in FC Port Page 2 by one |
98 | * and removed a one byte reserved field. | 98 | * and removed a one byte reserved field. |
99 | * 09-28-01 01.02.03 Swapped NegWireSpeedLow and NegWireSpeedLow in | 99 | * 09-28-01 01.02.03 Swapped NegWireSpeedLow and NegWireSpeedLow in |
100 | * CONFIG_PAGE_LAN_1 to match preferred 64-bit ordering. | 100 | * CONFIG_PAGE_LAN_1 to match preferred 64-bit ordering. |
101 | * Added structures for Manufacturing Page 4, IO Unit | 101 | * Added structures for Manufacturing Page 4, IO Unit |
102 | * Page 3, IOC Page 3, IOC Page 4, RAID Volume Page 0, and | 102 | * Page 3, IOC Page 3, IOC Page 4, RAID Volume Page 0, and |
103 | * RAID PhysDisk Page 0. | 103 | * RAID PhysDisk Page 0. |
104 | * 10-04-01 01.02.04 Added define for MPI_CONFIG_PAGETYPE_RAID_PHYSDISK. | 104 | * 10-04-01 01.02.04 Added define for MPI_CONFIG_PAGETYPE_RAID_PHYSDISK. |
105 | * Modified some of the new defines to make them 32 | 105 | * Modified some of the new defines to make them 32 |
106 | * character unique. | 106 | * character unique. |
107 | * Modified how variable length pages (arrays) are defined. | 107 | * Modified how variable length pages (arrays) are defined. |
108 | * Added generic defines for hot spare pools and RAID | 108 | * Added generic defines for hot spare pools and RAID |
109 | * volume types. | 109 | * volume types. |
110 | * 11-01-01 01.02.05 Added define for MPI_IOUNITPAGE1_DISABLE_IR. | 110 | * 11-01-01 01.02.05 Added define for MPI_IOUNITPAGE1_DISABLE_IR. |
111 | * 03-14-02 01.02.06 Added PCISlotNum field to CONFIG_PAGE_IOC_1 along with | 111 | * 03-14-02 01.02.06 Added PCISlotNum field to CONFIG_PAGE_IOC_1 along with |
112 | * related define, and bumped the page version define. | 112 | * related define, and bumped the page version define. |
113 | * 05-31-02 01.02.07 Added a Flags field to CONFIG_PAGE_IOC_2_RAID_VOL in a | 113 | * 05-31-02 01.02.07 Added a Flags field to CONFIG_PAGE_IOC_2_RAID_VOL in a |
114 | * reserved byte and added a define. | 114 | * reserved byte and added a define. |
115 | * Added define for | 115 | * Added define for |
116 | * MPI_RAIDVOL0_STATUS_FLAG_VOLUME_INACTIVE. | 116 | * MPI_RAIDVOL0_STATUS_FLAG_VOLUME_INACTIVE. |
117 | * Added new config page: CONFIG_PAGE_IOC_5. | 117 | * Added new config page: CONFIG_PAGE_IOC_5. |
118 | * Added MaxAliases, MaxHardAliases, and NumCurrentAliases | 118 | * Added MaxAliases, MaxHardAliases, and NumCurrentAliases |
119 | * fields to CONFIG_PAGE_FC_PORT_0. | 119 | * fields to CONFIG_PAGE_FC_PORT_0. |
120 | * Added AltConnector and NumRequestedAliases fields to | 120 | * Added AltConnector and NumRequestedAliases fields to |
121 | * CONFIG_PAGE_FC_PORT_1. | 121 | * CONFIG_PAGE_FC_PORT_1. |
122 | * Added new config page: CONFIG_PAGE_FC_PORT_10. | 122 | * Added new config page: CONFIG_PAGE_FC_PORT_10. |
123 | * 07-12-02 01.02.08 Added more MPI_MANUFACTPAGE_DEVID_ defines. | 123 | * 07-12-02 01.02.08 Added more MPI_MANUFACTPAGE_DEVID_ defines. |
124 | * Added additional MPI_SCSIDEVPAGE0_NP_ defines. | 124 | * Added additional MPI_SCSIDEVPAGE0_NP_ defines. |
125 | * Added more MPI_SCSIDEVPAGE1_RP_ defines. | 125 | * Added more MPI_SCSIDEVPAGE1_RP_ defines. |
126 | * Added define for | 126 | * Added define for |
127 | * MPI_SCSIDEVPAGE1_CONF_EXTENDED_PARAMS_ENABLE. | 127 | * MPI_SCSIDEVPAGE1_CONF_EXTENDED_PARAMS_ENABLE. |
128 | * Added new config page: CONFIG_PAGE_SCSI_DEVICE_3. | 128 | * Added new config page: CONFIG_PAGE_SCSI_DEVICE_3. |
129 | * Modified MPI_FCPORTPAGE5_FLAGS_ defines. | 129 | * Modified MPI_FCPORTPAGE5_FLAGS_ defines. |
130 | * 09-16-02 01.02.09 Added MPI_SCSIDEVPAGE1_CONF_FORCE_PPR_MSG define. | 130 | * 09-16-02 01.02.09 Added MPI_SCSIDEVPAGE1_CONF_FORCE_PPR_MSG define. |
131 | * 11-15-02 01.02.10 Added ConnectedID defines for CONFIG_PAGE_SCSI_PORT_0. | 131 | * 11-15-02 01.02.10 Added ConnectedID defines for CONFIG_PAGE_SCSI_PORT_0. |
132 | * Added more Flags defines for CONFIG_PAGE_FC_PORT_1. | 132 | * Added more Flags defines for CONFIG_PAGE_FC_PORT_1. |
133 | * Added more Flags defines for CONFIG_PAGE_FC_DEVICE_0. | 133 | * Added more Flags defines for CONFIG_PAGE_FC_DEVICE_0. |
134 | * 04-01-03 01.02.11 Added RR_TOV field and additional Flags defines for | 134 | * 04-01-03 01.02.11 Added RR_TOV field and additional Flags defines for |
135 | * CONFIG_PAGE_FC_PORT_1. | 135 | * CONFIG_PAGE_FC_PORT_1. |
136 | * Added define MPI_FCPORTPAGE5_FLAGS_DISABLE to disable | 136 | * Added define MPI_FCPORTPAGE5_FLAGS_DISABLE to disable |
137 | * an alias. | 137 | * an alias. |
138 | * Added more device id defines. | 138 | * Added more device id defines. |
139 | * 06-26-03 01.02.12 Added MPI_IOUNITPAGE1_IR_USE_STATIC_VOLUME_ID define. | 139 | * 06-26-03 01.02.12 Added MPI_IOUNITPAGE1_IR_USE_STATIC_VOLUME_ID define. |
140 | * Added TargetConfig and IDConfig fields to | 140 | * Added TargetConfig and IDConfig fields to |
141 | * CONFIG_PAGE_SCSI_PORT_1. | 141 | * CONFIG_PAGE_SCSI_PORT_1. |
142 | * Added more PortFlags defines for CONFIG_PAGE_SCSI_PORT_2 | 142 | * Added more PortFlags defines for CONFIG_PAGE_SCSI_PORT_2 |
143 | * to control DV. | 143 | * to control DV. |
144 | * Added more Flags defines for CONFIG_PAGE_FC_PORT_1. | 144 | * Added more Flags defines for CONFIG_PAGE_FC_PORT_1. |
145 | * In CONFIG_PAGE_FC_DEVICE_0, replaced Reserved1 field | 145 | * In CONFIG_PAGE_FC_DEVICE_0, replaced Reserved1 field |
146 | * with ADISCHardALPA. | 146 | * with ADISCHardALPA. |
147 | * Added MPI_FC_DEVICE_PAGE0_PROT_FCP_RETRY define. | 147 | * Added MPI_FC_DEVICE_PAGE0_PROT_FCP_RETRY define. |
148 | * 01-16-04 01.02.13 Added InitiatorDeviceTimeout and InitiatorIoPendTimeout | 148 | * 01-16-04 01.02.13 Added InitiatorDeviceTimeout and InitiatorIoPendTimeout |
149 | * fields and related defines to CONFIG_PAGE_FC_PORT_1. | 149 | * fields and related defines to CONFIG_PAGE_FC_PORT_1. |
150 | * Added define for | 150 | * Added define for |
151 | * MPI_FCPORTPAGE1_FLAGS_SOFT_ALPA_FALLBACK. | 151 | * MPI_FCPORTPAGE1_FLAGS_SOFT_ALPA_FALLBACK. |
152 | * Added new fields to the substructures of | 152 | * Added new fields to the substructures of |
153 | * CONFIG_PAGE_FC_PORT_10. | 153 | * CONFIG_PAGE_FC_PORT_10. |
154 | * 04-29-04 01.02.14 Added define for IDP bit for CONFIG_PAGE_SCSI_PORT_0, | 154 | * 04-29-04 01.02.14 Added define for IDP bit for CONFIG_PAGE_SCSI_PORT_0, |
155 | * CONFIG_PAGE_SCSI_DEVICE_0, and | 155 | * CONFIG_PAGE_SCSI_DEVICE_0, and |
156 | * CONFIG_PAGE_SCSI_DEVICE_1. Also bumped Page Version for | 156 | * CONFIG_PAGE_SCSI_DEVICE_1. Also bumped Page Version for |
157 | * these pages. | 157 | * these pages. |
158 | * 05-11-04 01.03.01 Added structure for CONFIG_PAGE_INBAND_0. | 158 | * 05-11-04 01.03.01 Added structure for CONFIG_PAGE_INBAND_0. |
159 | * 08-19-04 01.05.01 Modified MSG_CONFIG request to support extended config | 159 | * 08-19-04 01.05.01 Modified MSG_CONFIG request to support extended config |
160 | * pages. | 160 | * pages. |
161 | * Added a new structure for extended config page header. | 161 | * Added a new structure for extended config page header. |
162 | * Added new extended config pages types and structures for | 162 | * Added new extended config pages types and structures for |
163 | * SAS IO Unit, SAS Expander, SAS Device, and SAS PHY. | 163 | * SAS IO Unit, SAS Expander, SAS Device, and SAS PHY. |
164 | * Replaced a reserved byte in CONFIG_PAGE_MANUFACTURING_4 | 164 | * Replaced a reserved byte in CONFIG_PAGE_MANUFACTURING_4 |
165 | * to add a Flags field. | 165 | * to add a Flags field. |
166 | * Two new Manufacturing config pages (5 and 6). | 166 | * Two new Manufacturing config pages (5 and 6). |
167 | * Two new bits defined for IO Unit Page 1 Flags field. | 167 | * Two new bits defined for IO Unit Page 1 Flags field. |
168 | * Modified CONFIG_PAGE_IO_UNIT_2 to add three new fields | 168 | * Modified CONFIG_PAGE_IO_UNIT_2 to add three new fields |
169 | * to specify the BIOS boot device. | 169 | * to specify the BIOS boot device. |
170 | * Four new Flags bits defined for IO Unit Page 2. | 170 | * Four new Flags bits defined for IO Unit Page 2. |
171 | * Added IO Unit Page 4. | 171 | * Added IO Unit Page 4. |
172 | * Added EEDP Flags settings to IOC Page 1. | 172 | * Added EEDP Flags settings to IOC Page 1. |
173 | * Added new BIOS Page 1 config page. | 173 | * Added new BIOS Page 1 config page. |
174 | * 10-05-04 01.05.02 Added define for | 174 | * 10-05-04 01.05.02 Added define for |
175 | * MPI_IOCPAGE1_INITIATOR_CONTEXT_REPLY_DISABLE. | 175 | * MPI_IOCPAGE1_INITIATOR_CONTEXT_REPLY_DISABLE. |
176 | * Added new Flags field to CONFIG_PAGE_MANUFACTURING_5 and | 176 | * Added new Flags field to CONFIG_PAGE_MANUFACTURING_5 and |
177 | * associated defines. | 177 | * associated defines. |
178 | * Added more defines for SAS IO Unit Page 0 | 178 | * Added more defines for SAS IO Unit Page 0 |
179 | * DiscoveryStatus field. | 179 | * DiscoveryStatus field. |
180 | * Added define for MPI_SAS_IOUNIT0_DS_SUBTRACTIVE_LINK | 180 | * Added define for MPI_SAS_IOUNIT0_DS_SUBTRACTIVE_LINK |
181 | * and MPI_SAS_IOUNIT0_DS_TABLE_LINK. | 181 | * and MPI_SAS_IOUNIT0_DS_TABLE_LINK. |
182 | * Added defines for Physical Mapping Modes to SAS IO Unit | 182 | * Added defines for Physical Mapping Modes to SAS IO Unit |
183 | * Page 2. | 183 | * Page 2. |
184 | * Added define for | 184 | * Added define for |
185 | * MPI_SAS_DEVICE0_FLAGS_PORT_SELECTOR_ATTACH. | 185 | * MPI_SAS_DEVICE0_FLAGS_PORT_SELECTOR_ATTACH. |
186 | * 10-27-04 01.05.03 Added defines for new SAS PHY page addressing mode. | 186 | * 10-27-04 01.05.03 Added defines for new SAS PHY page addressing mode. |
187 | * Added defines for MaxTargetSpinUp to BIOS Page 1. | 187 | * Added defines for MaxTargetSpinUp to BIOS Page 1. |
188 | * Added 5 new ControlFlags defines for SAS IO Unit | 188 | * Added 5 new ControlFlags defines for SAS IO Unit |
189 | * Page 1. | 189 | * Page 1. |
190 | * Added MaxNumPhysicalMappedIDs field to SAS IO Unit | 190 | * Added MaxNumPhysicalMappedIDs field to SAS IO Unit |
191 | * Page 2. | 191 | * Page 2. |
192 | * Added AccessStatus field to SAS Device Page 0 and added | 192 | * Added AccessStatus field to SAS Device Page 0 and added |
193 | * new Flags bits for supported SATA features. | 193 | * new Flags bits for supported SATA features. |
194 | * 12-07-04 01.05.04 Added config page structures for BIOS Page 2, RAID | 194 | * 12-07-04 01.05.04 Added config page structures for BIOS Page 2, RAID |
195 | * Volume Page 1, and RAID Physical Disk Page 1. | 195 | * Volume Page 1, and RAID Physical Disk Page 1. |
196 | * Replaced IO Unit Page 1 BootTargetID,BootBus, and | 196 | * Replaced IO Unit Page 1 BootTargetID,BootBus, and |
197 | * BootAdapterNum with reserved field. | 197 | * BootAdapterNum with reserved field. |
198 | * Added DataScrubRate and ResyncRate to RAID Volume | 198 | * Added DataScrubRate and ResyncRate to RAID Volume |
199 | * Page 0. | 199 | * Page 0. |
200 | * Added MPI_SAS_IOUNIT2_FLAGS_RESERVE_ID_0_FOR_BOOT | 200 | * Added MPI_SAS_IOUNIT2_FLAGS_RESERVE_ID_0_FOR_BOOT |
201 | * define. | 201 | * define. |
202 | * 12-09-04 01.05.05 Added Target Mode Large CDB Enable to FC Port Page 1 | 202 | * 12-09-04 01.05.05 Added Target Mode Large CDB Enable to FC Port Page 1 |
203 | * Flags field. | 203 | * Flags field. |
204 | * Added Auto Port Config flag define for SAS IOUNIT | 204 | * Added Auto Port Config flag define for SAS IOUNIT |
205 | * Page 1 ControlFlags. | 205 | * Page 1 ControlFlags. |
206 | * Added Disabled bad Phy define to Expander Page 1 | 206 | * Added Disabled bad Phy define to Expander Page 1 |
207 | * Discovery Info field. | 207 | * Discovery Info field. |
208 | * Added SAS/SATA device support to SAS IOUnit Page 1 | 208 | * Added SAS/SATA device support to SAS IOUnit Page 1 |
209 | * ControlFlags. | 209 | * ControlFlags. |
210 | * Added Unsupported device to SAS Dev Page 0 Flags field | 210 | * Added Unsupported device to SAS Dev Page 0 Flags field |
211 | * Added disable use SATA Hash Address for SAS IOUNIT | 211 | * Added disable use SATA Hash Address for SAS IOUNIT |
212 | * page 1 in ControlFields. | 212 | * page 1 in ControlFields. |
213 | * 01-15-05 01.05.06 Added defaults for data scrub rate and resync rate to | 213 | * 01-15-05 01.05.06 Added defaults for data scrub rate and resync rate to |
214 | * Manufacturing Page 4. | 214 | * Manufacturing Page 4. |
215 | * Added new defines for BIOS Page 1 IOCSettings field. | 215 | * Added new defines for BIOS Page 1 IOCSettings field. |
216 | * Added ExtDiskIdentifier field to RAID Physical Disk | 216 | * Added ExtDiskIdentifier field to RAID Physical Disk |
217 | * Page 0. | 217 | * Page 0. |
218 | * Added new defines for SAS IO Unit Page 1 ControlFlags | 218 | * Added new defines for SAS IO Unit Page 1 ControlFlags |
219 | * and to SAS Device Page 0 Flags to control SATA devices. | 219 | * and to SAS Device Page 0 Flags to control SATA devices. |
220 | * Added defines and structures for the new Log Page 0, a | 220 | * Added defines and structures for the new Log Page 0, a |
221 | * new type of configuration page. | 221 | * new type of configuration page. |
222 | * 02-09-05 01.05.07 Added InactiveStatus field to RAID Volume Page 0. | 222 | * 02-09-05 01.05.07 Added InactiveStatus field to RAID Volume Page 0. |
223 | * Added WWID field to RAID Volume Page 1. | 223 | * Added WWID field to RAID Volume Page 1. |
224 | * Added PhysicalPort field to SAS Expander pages 0 and 1. | 224 | * Added PhysicalPort field to SAS Expander pages 0 and 1. |
225 | * 03-11-05 01.05.08 Removed the EEDP flags from IOC Page 1. | 225 | * 03-11-05 01.05.08 Removed the EEDP flags from IOC Page 1. |
226 | * Added Enclosure/Slot boot device format to BIOS Page 2. | 226 | * Added Enclosure/Slot boot device format to BIOS Page 2. |
227 | * New status value for RAID Volume Page 0 VolumeStatus | 227 | * New status value for RAID Volume Page 0 VolumeStatus |
228 | * (VolumeState subfield). | 228 | * (VolumeState subfield). |
229 | * New value for RAID Physical Page 0 InactiveStatus. | 229 | * New value for RAID Physical Page 0 InactiveStatus. |
230 | * Added Inactive Volume Member flag RAID Physical Disk | 230 | * Added Inactive Volume Member flag RAID Physical Disk |
231 | * Page 0 PhysDiskStatus field. | 231 | * Page 0 PhysDiskStatus field. |
232 | * New physical mapping mode in SAS IO Unit Page 2. | 232 | * New physical mapping mode in SAS IO Unit Page 2. |
233 | * Added CONFIG_PAGE_SAS_ENCLOSURE_0. | 233 | * Added CONFIG_PAGE_SAS_ENCLOSURE_0. |
234 | * Added Slot and Enclosure fields to SAS Device Page 0. | 234 | * Added Slot and Enclosure fields to SAS Device Page 0. |
235 | * 06-24-05 01.05.09 Added EEDP defines to IOC Page 1. | 235 | * 06-24-05 01.05.09 Added EEDP defines to IOC Page 1. |
236 | * Added more RAID type defines to IOC Page 2. | 236 | * Added more RAID type defines to IOC Page 2. |
237 | * Added Port Enable Delay settings to BIOS Page 1. | 237 | * Added Port Enable Delay settings to BIOS Page 1. |
238 | * Added Bad Block Table Full define to RAID Volume Page 0. | 238 | * Added Bad Block Table Full define to RAID Volume Page 0. |
239 | * Added Previous State defines to RAID Physical Disk | 239 | * Added Previous State defines to RAID Physical Disk |
240 | * Page 0. | 240 | * Page 0. |
241 | * Added Max Sata Targets define for DiscoveryStatus field | 241 | * Added Max Sata Targets define for DiscoveryStatus field |
242 | * of SAS IO Unit Page 0. | 242 | * of SAS IO Unit Page 0. |
243 | * Added Device Self Test to Control Flags of SAS IO Unit | 243 | * Added Device Self Test to Control Flags of SAS IO Unit |
244 | * Page 1. | 244 | * Page 1. |
245 | * Added Direct Attach Starting Slot Number define for SAS | 245 | * Added Direct Attach Starting Slot Number define for SAS |
246 | * IO Unit Page 2. | 246 | * IO Unit Page 2. |
247 | * Added new fields in SAS Device Page 2 for enclosure | 247 | * Added new fields in SAS Device Page 2 for enclosure |
248 | * mapping. | 248 | * mapping. |
249 | * Added OwnerDevHandle and Flags field to SAS PHY Page 0. | 249 | * Added OwnerDevHandle and Flags field to SAS PHY Page 0. |
250 | * Added IOC GPIO Flags define to SAS Enclosure Page 0. | 250 | * Added IOC GPIO Flags define to SAS Enclosure Page 0. |
251 | * Fixed the value for MPI_SAS_IOUNIT1_CONTROL_DEV_SATA_SUPPORT. | 251 | * Fixed the value for MPI_SAS_IOUNIT1_CONTROL_DEV_SATA_SUPPORT. |
252 | * 08-03-05 01.05.10 Removed ISDataScrubRate and ISResyncRate from | 252 | * 08-03-05 01.05.10 Removed ISDataScrubRate and ISResyncRate from |
253 | * Manufacturing Page 4. | 253 | * Manufacturing Page 4. |
254 | * Added MPI_IOUNITPAGE1_SATA_WRITE_CACHE_DISABLE bit. | 254 | * Added MPI_IOUNITPAGE1_SATA_WRITE_CACHE_DISABLE bit. |
255 | * Added NumDevsPerEnclosure field to SAS IO Unit page 2. | 255 | * Added NumDevsPerEnclosure field to SAS IO Unit page 2. |
256 | * Added MPI_SAS_IOUNIT2_FLAGS_HOST_ASSIGNED_PHYS_MAP | 256 | * Added MPI_SAS_IOUNIT2_FLAGS_HOST_ASSIGNED_PHYS_MAP |
257 | * define. | 257 | * define. |
258 | * Added EnclosureHandle field to SAS Expander page 0. | 258 | * Added EnclosureHandle field to SAS Expander page 0. |
259 | * Removed redundant NumTableEntriesProg field from SAS | 259 | * Removed redundant NumTableEntriesProg field from SAS |
260 | * Expander Page 1. | 260 | * Expander Page 1. |
261 | * 08-30-05 01.05.11 Added DeviceID for FC949E and changed the DeviceID for | 261 | * 08-30-05 01.05.11 Added DeviceID for FC949E and changed the DeviceID for |
262 | * SAS1078. | 262 | * SAS1078. |
263 | * Added more defines for Manufacturing Page 4 Flags field. | 263 | * Added more defines for Manufacturing Page 4 Flags field. |
264 | * Added more defines for IOCSettings and added | 264 | * Added more defines for IOCSettings and added |
265 | * ExpanderSpinup field to Bios Page 1. | 265 | * ExpanderSpinup field to Bios Page 1. |
266 | * Added postpone SATA Init bit to SAS IO Unit Page 1 | 266 | * Added postpone SATA Init bit to SAS IO Unit Page 1 |
267 | * ControlFlags. | 267 | * ControlFlags. |
268 | * Changed LogEntry format for Log Page 0. | 268 | * Changed LogEntry format for Log Page 0. |
269 | * 03-27-06 01.05.12 Added two new Flags defines for Manufacturing Page 4. | 269 | * 03-27-06 01.05.12 Added two new Flags defines for Manufacturing Page 4. |
270 | * Added Manufacturing Page 7. | 270 | * Added Manufacturing Page 7. |
271 | * Added MPI_IOCPAGE2_CAP_FLAGS_RAID_64_BIT_ADDRESSING. | 271 | * Added MPI_IOCPAGE2_CAP_FLAGS_RAID_64_BIT_ADDRESSING. |
272 | * Added IOC Page 6. | 272 | * Added IOC Page 6. |
273 | * Added PrevBootDeviceForm field to CONFIG_PAGE_BIOS_2. | 273 | * Added PrevBootDeviceForm field to CONFIG_PAGE_BIOS_2. |
274 | * Added MaxLBAHigh field to RAID Volume Page 0. | 274 | * Added MaxLBAHigh field to RAID Volume Page 0. |
275 | * Added Nvdata version fields to SAS IO Unit Page 0. | 275 | * Added Nvdata version fields to SAS IO Unit Page 0. |
276 | * Added AdditionalControlFlags, MaxTargetPortConnectTime, | 276 | * Added AdditionalControlFlags, MaxTargetPortConnectTime, |
277 | * ReportDeviceMissingDelay, and IODeviceMissingDelay | 277 | * ReportDeviceMissingDelay, and IODeviceMissingDelay |
278 | * fields to SAS IO Unit Page 1. | 278 | * fields to SAS IO Unit Page 1. |
279 | * 10-11-06 01.05.13 Added NumForceWWID field and ForceWWID array to | ||
280 | * Manufacturing Page 5. | ||
281 | * Added Manufacturing pages 8 through 10. | ||
282 | * Added defines for supported metadata size bits in | ||
283 | * CapabilitiesFlags field of IOC Page 6. | ||
284 | * Added defines for metadata size bits in VolumeSettings | ||
285 | * field of RAID Volume Page 0. | ||
286 | * Added SATA Link Reset settings, Enable SATA Asynchronous | ||
287 | * Notification bit, and HideNonZeroAttachedPhyIdentifiers | ||
288 | * bit to AdditionalControlFlags field of SAS IO Unit | ||
289 | * Page 1. | ||
290 | * Added defines for Enclosure Devices Unmapped and | ||
291 | * Device Limit Exceeded bits in Status field of SAS IO | ||
292 | * Unit Page 2. | ||
293 | * Added more AccessStatus values for SAS Device Page 0. | ||
294 | * Added bit for SATA Asynchronous Notification Support in | ||
295 | * Flags field of SAS Device Page 0. | ||
279 | * -------------------------------------------------------------------------- | 296 | * -------------------------------------------------------------------------- |
280 | */ | 297 | */ |
281 | 298 | ||
282 | #ifndef MPI_CNFG_H | 299 | #ifndef MPI_CNFG_H |
283 | #define MPI_CNFG_H | 300 | #define MPI_CNFG_H |
284 | 301 | ||
285 | 302 | ||
286 | /***************************************************************************** | 303 | /***************************************************************************** |
287 | * | 304 | * |
288 | * C o n f i g M e s s a g e a n d S t r u c t u r e s | 305 | * C o n f i g M e s s a g e a n d S t r u c t u r e s |
289 | * | 306 | * |
290 | *****************************************************************************/ | 307 | *****************************************************************************/ |
291 | 308 | ||
292 | typedef struct _CONFIG_PAGE_HEADER | 309 | typedef struct _CONFIG_PAGE_HEADER |
293 | { | 310 | { |
294 | U8 PageVersion; /* 00h */ | 311 | U8 PageVersion; /* 00h */ |
295 | U8 PageLength; /* 01h */ | 312 | U8 PageLength; /* 01h */ |
296 | U8 PageNumber; /* 02h */ | 313 | U8 PageNumber; /* 02h */ |
297 | U8 PageType; /* 03h */ | 314 | U8 PageType; /* 03h */ |
298 | } CONFIG_PAGE_HEADER, MPI_POINTER PTR_CONFIG_PAGE_HEADER, | 315 | } CONFIG_PAGE_HEADER, MPI_POINTER PTR_CONFIG_PAGE_HEADER, |
299 | ConfigPageHeader_t, MPI_POINTER pConfigPageHeader_t; | 316 | ConfigPageHeader_t, MPI_POINTER pConfigPageHeader_t; |
300 | 317 | ||
301 | typedef union _CONFIG_PAGE_HEADER_UNION | 318 | typedef union _CONFIG_PAGE_HEADER_UNION |
302 | { | 319 | { |
303 | ConfigPageHeader_t Struct; | 320 | ConfigPageHeader_t Struct; |
304 | U8 Bytes[4]; | 321 | U8 Bytes[4]; |
305 | U16 Word16[2]; | 322 | U16 Word16[2]; |
306 | U32 Word32; | 323 | U32 Word32; |
307 | } ConfigPageHeaderUnion, MPI_POINTER pConfigPageHeaderUnion, | 324 | } ConfigPageHeaderUnion, MPI_POINTER pConfigPageHeaderUnion, |
308 | CONFIG_PAGE_HEADER_UNION, MPI_POINTER PTR_CONFIG_PAGE_HEADER_UNION; | 325 | CONFIG_PAGE_HEADER_UNION, MPI_POINTER PTR_CONFIG_PAGE_HEADER_UNION; |
309 | 326 | ||
310 | typedef struct _CONFIG_EXTENDED_PAGE_HEADER | 327 | typedef struct _CONFIG_EXTENDED_PAGE_HEADER |
311 | { | 328 | { |
312 | U8 PageVersion; /* 00h */ | 329 | U8 PageVersion; /* 00h */ |
313 | U8 Reserved1; /* 01h */ | 330 | U8 Reserved1; /* 01h */ |
314 | U8 PageNumber; /* 02h */ | 331 | U8 PageNumber; /* 02h */ |
315 | U8 PageType; /* 03h */ | 332 | U8 PageType; /* 03h */ |
316 | U16 ExtPageLength; /* 04h */ | 333 | U16 ExtPageLength; /* 04h */ |
317 | U8 ExtPageType; /* 06h */ | 334 | U8 ExtPageType; /* 06h */ |
318 | U8 Reserved2; /* 07h */ | 335 | U8 Reserved2; /* 07h */ |
319 | } CONFIG_EXTENDED_PAGE_HEADER, MPI_POINTER PTR_CONFIG_EXTENDED_PAGE_HEADER, | 336 | } CONFIG_EXTENDED_PAGE_HEADER, MPI_POINTER PTR_CONFIG_EXTENDED_PAGE_HEADER, |
320 | ConfigExtendedPageHeader_t, MPI_POINTER pConfigExtendedPageHeader_t; | 337 | ConfigExtendedPageHeader_t, MPI_POINTER pConfigExtendedPageHeader_t; |
321 | 338 | ||
322 | 339 | ||
323 | 340 | ||
324 | /**************************************************************************** | 341 | /**************************************************************************** |
325 | * PageType field values | 342 | * PageType field values |
326 | ****************************************************************************/ | 343 | ****************************************************************************/ |
327 | #define MPI_CONFIG_PAGEATTR_READ_ONLY (0x00) | 344 | #define MPI_CONFIG_PAGEATTR_READ_ONLY (0x00) |
328 | #define MPI_CONFIG_PAGEATTR_CHANGEABLE (0x10) | 345 | #define MPI_CONFIG_PAGEATTR_CHANGEABLE (0x10) |
329 | #define MPI_CONFIG_PAGEATTR_PERSISTENT (0x20) | 346 | #define MPI_CONFIG_PAGEATTR_PERSISTENT (0x20) |
330 | #define MPI_CONFIG_PAGEATTR_RO_PERSISTENT (0x30) | 347 | #define MPI_CONFIG_PAGEATTR_RO_PERSISTENT (0x30) |
331 | #define MPI_CONFIG_PAGEATTR_MASK (0xF0) | 348 | #define MPI_CONFIG_PAGEATTR_MASK (0xF0) |
332 | 349 | ||
333 | #define MPI_CONFIG_PAGETYPE_IO_UNIT (0x00) | 350 | #define MPI_CONFIG_PAGETYPE_IO_UNIT (0x00) |
334 | #define MPI_CONFIG_PAGETYPE_IOC (0x01) | 351 | #define MPI_CONFIG_PAGETYPE_IOC (0x01) |
335 | #define MPI_CONFIG_PAGETYPE_BIOS (0x02) | 352 | #define MPI_CONFIG_PAGETYPE_BIOS (0x02) |
336 | #define MPI_CONFIG_PAGETYPE_SCSI_PORT (0x03) | 353 | #define MPI_CONFIG_PAGETYPE_SCSI_PORT (0x03) |
337 | #define MPI_CONFIG_PAGETYPE_SCSI_DEVICE (0x04) | 354 | #define MPI_CONFIG_PAGETYPE_SCSI_DEVICE (0x04) |
338 | #define MPI_CONFIG_PAGETYPE_FC_PORT (0x05) | 355 | #define MPI_CONFIG_PAGETYPE_FC_PORT (0x05) |
339 | #define MPI_CONFIG_PAGETYPE_FC_DEVICE (0x06) | 356 | #define MPI_CONFIG_PAGETYPE_FC_DEVICE (0x06) |
340 | #define MPI_CONFIG_PAGETYPE_LAN (0x07) | 357 | #define MPI_CONFIG_PAGETYPE_LAN (0x07) |
341 | #define MPI_CONFIG_PAGETYPE_RAID_VOLUME (0x08) | 358 | #define MPI_CONFIG_PAGETYPE_RAID_VOLUME (0x08) |
342 | #define MPI_CONFIG_PAGETYPE_MANUFACTURING (0x09) | 359 | #define MPI_CONFIG_PAGETYPE_MANUFACTURING (0x09) |
343 | #define MPI_CONFIG_PAGETYPE_RAID_PHYSDISK (0x0A) | 360 | #define MPI_CONFIG_PAGETYPE_RAID_PHYSDISK (0x0A) |
344 | #define MPI_CONFIG_PAGETYPE_INBAND (0x0B) | 361 | #define MPI_CONFIG_PAGETYPE_INBAND (0x0B) |
345 | #define MPI_CONFIG_PAGETYPE_EXTENDED (0x0F) | 362 | #define MPI_CONFIG_PAGETYPE_EXTENDED (0x0F) |
346 | #define MPI_CONFIG_PAGETYPE_MASK (0x0F) | 363 | #define MPI_CONFIG_PAGETYPE_MASK (0x0F) |
347 | 364 | ||
348 | #define MPI_CONFIG_TYPENUM_MASK (0x0FFF) | 365 | #define MPI_CONFIG_TYPENUM_MASK (0x0FFF) |
349 | 366 | ||
350 | 367 | ||
351 | /**************************************************************************** | 368 | /**************************************************************************** |
352 | * ExtPageType field values | 369 | * ExtPageType field values |
353 | ****************************************************************************/ | 370 | ****************************************************************************/ |
354 | #define MPI_CONFIG_EXTPAGETYPE_SAS_IO_UNIT (0x10) | 371 | #define MPI_CONFIG_EXTPAGETYPE_SAS_IO_UNIT (0x10) |
355 | #define MPI_CONFIG_EXTPAGETYPE_SAS_EXPANDER (0x11) | 372 | #define MPI_CONFIG_EXTPAGETYPE_SAS_EXPANDER (0x11) |
356 | #define MPI_CONFIG_EXTPAGETYPE_SAS_DEVICE (0x12) | 373 | #define MPI_CONFIG_EXTPAGETYPE_SAS_DEVICE (0x12) |
357 | #define MPI_CONFIG_EXTPAGETYPE_SAS_PHY (0x13) | 374 | #define MPI_CONFIG_EXTPAGETYPE_SAS_PHY (0x13) |
358 | #define MPI_CONFIG_EXTPAGETYPE_LOG (0x14) | 375 | #define MPI_CONFIG_EXTPAGETYPE_LOG (0x14) |
359 | #define MPI_CONFIG_EXTPAGETYPE_ENCLOSURE (0x15) | 376 | #define MPI_CONFIG_EXTPAGETYPE_ENCLOSURE (0x15) |
360 | 377 | ||
361 | 378 | ||
362 | /**************************************************************************** | 379 | /**************************************************************************** |
363 | * PageAddress field values | 380 | * PageAddress field values |
364 | ****************************************************************************/ | 381 | ****************************************************************************/ |
365 | #define MPI_SCSI_PORT_PGAD_PORT_MASK (0x000000FF) | 382 | #define MPI_SCSI_PORT_PGAD_PORT_MASK (0x000000FF) |
366 | 383 | ||
367 | #define MPI_SCSI_DEVICE_FORM_MASK (0xF0000000) | 384 | #define MPI_SCSI_DEVICE_FORM_MASK (0xF0000000) |
368 | #define MPI_SCSI_DEVICE_FORM_BUS_TID (0x00000000) | 385 | #define MPI_SCSI_DEVICE_FORM_BUS_TID (0x00000000) |
369 | #define MPI_SCSI_DEVICE_TARGET_ID_MASK (0x000000FF) | 386 | #define MPI_SCSI_DEVICE_TARGET_ID_MASK (0x000000FF) |
370 | #define MPI_SCSI_DEVICE_TARGET_ID_SHIFT (0) | 387 | #define MPI_SCSI_DEVICE_TARGET_ID_SHIFT (0) |
371 | #define MPI_SCSI_DEVICE_BUS_MASK (0x0000FF00) | 388 | #define MPI_SCSI_DEVICE_BUS_MASK (0x0000FF00) |
372 | #define MPI_SCSI_DEVICE_BUS_SHIFT (8) | 389 | #define MPI_SCSI_DEVICE_BUS_SHIFT (8) |
373 | #define MPI_SCSI_DEVICE_FORM_TARGET_MODE (0x10000000) | 390 | #define MPI_SCSI_DEVICE_FORM_TARGET_MODE (0x10000000) |
374 | #define MPI_SCSI_DEVICE_TM_RESPOND_ID_MASK (0x000000FF) | 391 | #define MPI_SCSI_DEVICE_TM_RESPOND_ID_MASK (0x000000FF) |
375 | #define MPI_SCSI_DEVICE_TM_RESPOND_ID_SHIFT (0) | 392 | #define MPI_SCSI_DEVICE_TM_RESPOND_ID_SHIFT (0) |
376 | #define MPI_SCSI_DEVICE_TM_BUS_MASK (0x0000FF00) | 393 | #define MPI_SCSI_DEVICE_TM_BUS_MASK (0x0000FF00) |
377 | #define MPI_SCSI_DEVICE_TM_BUS_SHIFT (8) | 394 | #define MPI_SCSI_DEVICE_TM_BUS_SHIFT (8) |
378 | #define MPI_SCSI_DEVICE_TM_INIT_ID_MASK (0x00FF0000) | 395 | #define MPI_SCSI_DEVICE_TM_INIT_ID_MASK (0x00FF0000) |
379 | #define MPI_SCSI_DEVICE_TM_INIT_ID_SHIFT (16) | 396 | #define MPI_SCSI_DEVICE_TM_INIT_ID_SHIFT (16) |
380 | 397 | ||
381 | #define MPI_FC_PORT_PGAD_PORT_MASK (0xF0000000) | 398 | #define MPI_FC_PORT_PGAD_PORT_MASK (0xF0000000) |
382 | #define MPI_FC_PORT_PGAD_PORT_SHIFT (28) | 399 | #define MPI_FC_PORT_PGAD_PORT_SHIFT (28) |
383 | #define MPI_FC_PORT_PGAD_FORM_MASK (0x0F000000) | 400 | #define MPI_FC_PORT_PGAD_FORM_MASK (0x0F000000) |
384 | #define MPI_FC_PORT_PGAD_FORM_INDEX (0x01000000) | 401 | #define MPI_FC_PORT_PGAD_FORM_INDEX (0x01000000) |
385 | #define MPI_FC_PORT_PGAD_INDEX_MASK (0x0000FFFF) | 402 | #define MPI_FC_PORT_PGAD_INDEX_MASK (0x0000FFFF) |
386 | #define MPI_FC_PORT_PGAD_INDEX_SHIFT (0) | 403 | #define MPI_FC_PORT_PGAD_INDEX_SHIFT (0) |
387 | 404 | ||
388 | #define MPI_FC_DEVICE_PGAD_PORT_MASK (0xF0000000) | 405 | #define MPI_FC_DEVICE_PGAD_PORT_MASK (0xF0000000) |
389 | #define MPI_FC_DEVICE_PGAD_PORT_SHIFT (28) | 406 | #define MPI_FC_DEVICE_PGAD_PORT_SHIFT (28) |
390 | #define MPI_FC_DEVICE_PGAD_FORM_MASK (0x0F000000) | 407 | #define MPI_FC_DEVICE_PGAD_FORM_MASK (0x0F000000) |
391 | #define MPI_FC_DEVICE_PGAD_FORM_NEXT_DID (0x00000000) | 408 | #define MPI_FC_DEVICE_PGAD_FORM_NEXT_DID (0x00000000) |
392 | #define MPI_FC_DEVICE_PGAD_ND_PORT_MASK (0xF0000000) | 409 | #define MPI_FC_DEVICE_PGAD_ND_PORT_MASK (0xF0000000) |
393 | #define MPI_FC_DEVICE_PGAD_ND_PORT_SHIFT (28) | 410 | #define MPI_FC_DEVICE_PGAD_ND_PORT_SHIFT (28) |
394 | #define MPI_FC_DEVICE_PGAD_ND_DID_MASK (0x00FFFFFF) | 411 | #define MPI_FC_DEVICE_PGAD_ND_DID_MASK (0x00FFFFFF) |
395 | #define MPI_FC_DEVICE_PGAD_ND_DID_SHIFT (0) | 412 | #define MPI_FC_DEVICE_PGAD_ND_DID_SHIFT (0) |
396 | #define MPI_FC_DEVICE_PGAD_FORM_BUS_TID (0x01000000) | 413 | #define MPI_FC_DEVICE_PGAD_FORM_BUS_TID (0x01000000) |
397 | #define MPI_FC_DEVICE_PGAD_BT_BUS_MASK (0x0000FF00) | 414 | #define MPI_FC_DEVICE_PGAD_BT_BUS_MASK (0x0000FF00) |
398 | #define MPI_FC_DEVICE_PGAD_BT_BUS_SHIFT (8) | 415 | #define MPI_FC_DEVICE_PGAD_BT_BUS_SHIFT (8) |
399 | #define MPI_FC_DEVICE_PGAD_BT_TID_MASK (0x000000FF) | 416 | #define MPI_FC_DEVICE_PGAD_BT_TID_MASK (0x000000FF) |
400 | #define MPI_FC_DEVICE_PGAD_BT_TID_SHIFT (0) | 417 | #define MPI_FC_DEVICE_PGAD_BT_TID_SHIFT (0) |
401 | 418 | ||
402 | #define MPI_PHYSDISK_PGAD_PHYSDISKNUM_MASK (0x000000FF) | 419 | #define MPI_PHYSDISK_PGAD_PHYSDISKNUM_MASK (0x000000FF) |
403 | #define MPI_PHYSDISK_PGAD_PHYSDISKNUM_SHIFT (0) | 420 | #define MPI_PHYSDISK_PGAD_PHYSDISKNUM_SHIFT (0) |
404 | 421 | ||
405 | #define MPI_SAS_EXPAND_PGAD_FORM_MASK (0xF0000000) | 422 | #define MPI_SAS_EXPAND_PGAD_FORM_MASK (0xF0000000) |
406 | #define MPI_SAS_EXPAND_PGAD_FORM_SHIFT (28) | 423 | #define MPI_SAS_EXPAND_PGAD_FORM_SHIFT (28) |
407 | #define MPI_SAS_EXPAND_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) | 424 | #define MPI_SAS_EXPAND_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) |
408 | #define MPI_SAS_EXPAND_PGAD_FORM_HANDLE_PHY_NUM (0x00000001) | 425 | #define MPI_SAS_EXPAND_PGAD_FORM_HANDLE_PHY_NUM (0x00000001) |
409 | #define MPI_SAS_EXPAND_PGAD_FORM_HANDLE (0x00000002) | 426 | #define MPI_SAS_EXPAND_PGAD_FORM_HANDLE (0x00000002) |
410 | #define MPI_SAS_EXPAND_PGAD_GNH_MASK_HANDLE (0x0000FFFF) | 427 | #define MPI_SAS_EXPAND_PGAD_GNH_MASK_HANDLE (0x0000FFFF) |
411 | #define MPI_SAS_EXPAND_PGAD_GNH_SHIFT_HANDLE (0) | 428 | #define MPI_SAS_EXPAND_PGAD_GNH_SHIFT_HANDLE (0) |
412 | #define MPI_SAS_EXPAND_PGAD_HPN_MASK_PHY (0x00FF0000) | 429 | #define MPI_SAS_EXPAND_PGAD_HPN_MASK_PHY (0x00FF0000) |
413 | #define MPI_SAS_EXPAND_PGAD_HPN_SHIFT_PHY (16) | 430 | #define MPI_SAS_EXPAND_PGAD_HPN_SHIFT_PHY (16) |
414 | #define MPI_SAS_EXPAND_PGAD_HPN_MASK_HANDLE (0x0000FFFF) | 431 | #define MPI_SAS_EXPAND_PGAD_HPN_MASK_HANDLE (0x0000FFFF) |
415 | #define MPI_SAS_EXPAND_PGAD_HPN_SHIFT_HANDLE (0) | 432 | #define MPI_SAS_EXPAND_PGAD_HPN_SHIFT_HANDLE (0) |
416 | #define MPI_SAS_EXPAND_PGAD_H_MASK_HANDLE (0x0000FFFF) | 433 | #define MPI_SAS_EXPAND_PGAD_H_MASK_HANDLE (0x0000FFFF) |
417 | #define MPI_SAS_EXPAND_PGAD_H_SHIFT_HANDLE (0) | 434 | #define MPI_SAS_EXPAND_PGAD_H_SHIFT_HANDLE (0) |
418 | 435 | ||
419 | #define MPI_SAS_DEVICE_PGAD_FORM_MASK (0xF0000000) | 436 | #define MPI_SAS_DEVICE_PGAD_FORM_MASK (0xF0000000) |
420 | #define MPI_SAS_DEVICE_PGAD_FORM_SHIFT (28) | 437 | #define MPI_SAS_DEVICE_PGAD_FORM_SHIFT (28) |
421 | #define MPI_SAS_DEVICE_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) | 438 | #define MPI_SAS_DEVICE_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) |
422 | #define MPI_SAS_DEVICE_PGAD_FORM_BUS_TARGET_ID (0x00000001) | 439 | #define MPI_SAS_DEVICE_PGAD_FORM_BUS_TARGET_ID (0x00000001) |
423 | #define MPI_SAS_DEVICE_PGAD_FORM_HANDLE (0x00000002) | 440 | #define MPI_SAS_DEVICE_PGAD_FORM_HANDLE (0x00000002) |
424 | #define MPI_SAS_DEVICE_PGAD_GNH_HANDLE_MASK (0x0000FFFF) | 441 | #define MPI_SAS_DEVICE_PGAD_GNH_HANDLE_MASK (0x0000FFFF) |
425 | #define MPI_SAS_DEVICE_PGAD_GNH_HANDLE_SHIFT (0) | 442 | #define MPI_SAS_DEVICE_PGAD_GNH_HANDLE_SHIFT (0) |
426 | #define MPI_SAS_DEVICE_PGAD_BT_BUS_MASK (0x0000FF00) | 443 | #define MPI_SAS_DEVICE_PGAD_BT_BUS_MASK (0x0000FF00) |
427 | #define MPI_SAS_DEVICE_PGAD_BT_BUS_SHIFT (8) | 444 | #define MPI_SAS_DEVICE_PGAD_BT_BUS_SHIFT (8) |
428 | #define MPI_SAS_DEVICE_PGAD_BT_TID_MASK (0x000000FF) | 445 | #define MPI_SAS_DEVICE_PGAD_BT_TID_MASK (0x000000FF) |
429 | #define MPI_SAS_DEVICE_PGAD_BT_TID_SHIFT (0) | 446 | #define MPI_SAS_DEVICE_PGAD_BT_TID_SHIFT (0) |
430 | #define MPI_SAS_DEVICE_PGAD_H_HANDLE_MASK (0x0000FFFF) | 447 | #define MPI_SAS_DEVICE_PGAD_H_HANDLE_MASK (0x0000FFFF) |
431 | #define MPI_SAS_DEVICE_PGAD_H_HANDLE_SHIFT (0) | 448 | #define MPI_SAS_DEVICE_PGAD_H_HANDLE_SHIFT (0) |
432 | 449 | ||
433 | #define MPI_SAS_PHY_PGAD_FORM_MASK (0xF0000000) | 450 | #define MPI_SAS_PHY_PGAD_FORM_MASK (0xF0000000) |
434 | #define MPI_SAS_PHY_PGAD_FORM_SHIFT (28) | 451 | #define MPI_SAS_PHY_PGAD_FORM_SHIFT (28) |
435 | #define MPI_SAS_PHY_PGAD_FORM_PHY_NUMBER (0x0) | 452 | #define MPI_SAS_PHY_PGAD_FORM_PHY_NUMBER (0x0) |
436 | #define MPI_SAS_PHY_PGAD_FORM_PHY_TBL_INDEX (0x1) | 453 | #define MPI_SAS_PHY_PGAD_FORM_PHY_TBL_INDEX (0x1) |
437 | #define MPI_SAS_PHY_PGAD_PHY_NUMBER_MASK (0x000000FF) | 454 | #define MPI_SAS_PHY_PGAD_PHY_NUMBER_MASK (0x000000FF) |
438 | #define MPI_SAS_PHY_PGAD_PHY_NUMBER_SHIFT (0) | 455 | #define MPI_SAS_PHY_PGAD_PHY_NUMBER_SHIFT (0) |
439 | #define MPI_SAS_PHY_PGAD_PHY_TBL_INDEX_MASK (0x0000FFFF) | 456 | #define MPI_SAS_PHY_PGAD_PHY_TBL_INDEX_MASK (0x0000FFFF) |
440 | #define MPI_SAS_PHY_PGAD_PHY_TBL_INDEX_SHIFT (0) | 457 | #define MPI_SAS_PHY_PGAD_PHY_TBL_INDEX_SHIFT (0) |
441 | 458 | ||
442 | #define MPI_SAS_ENCLOS_PGAD_FORM_MASK (0xF0000000) | 459 | #define MPI_SAS_ENCLOS_PGAD_FORM_MASK (0xF0000000) |
443 | #define MPI_SAS_ENCLOS_PGAD_FORM_SHIFT (28) | 460 | #define MPI_SAS_ENCLOS_PGAD_FORM_SHIFT (28) |
444 | #define MPI_SAS_ENCLOS_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) | 461 | #define MPI_SAS_ENCLOS_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) |
445 | #define MPI_SAS_ENCLOS_PGAD_FORM_HANDLE (0x00000001) | 462 | #define MPI_SAS_ENCLOS_PGAD_FORM_HANDLE (0x00000001) |
446 | #define MPI_SAS_ENCLOS_PGAD_GNH_HANDLE_MASK (0x0000FFFF) | 463 | #define MPI_SAS_ENCLOS_PGAD_GNH_HANDLE_MASK (0x0000FFFF) |
447 | #define MPI_SAS_ENCLOS_PGAD_GNH_HANDLE_SHIFT (0) | 464 | #define MPI_SAS_ENCLOS_PGAD_GNH_HANDLE_SHIFT (0) |
448 | #define MPI_SAS_ENCLOS_PGAD_H_HANDLE_MASK (0x0000FFFF) | 465 | #define MPI_SAS_ENCLOS_PGAD_H_HANDLE_MASK (0x0000FFFF) |
449 | #define MPI_SAS_ENCLOS_PGAD_H_HANDLE_SHIFT (0) | 466 | #define MPI_SAS_ENCLOS_PGAD_H_HANDLE_SHIFT (0) |
450 | 467 | ||
451 | 468 | ||
452 | 469 | ||
453 | /**************************************************************************** | 470 | /**************************************************************************** |
454 | * Config Request Message | 471 | * Config Request Message |
455 | ****************************************************************************/ | 472 | ****************************************************************************/ |
456 | typedef struct _MSG_CONFIG | 473 | typedef struct _MSG_CONFIG |
457 | { | 474 | { |
458 | U8 Action; /* 00h */ | 475 | U8 Action; /* 00h */ |
459 | U8 Reserved; /* 01h */ | 476 | U8 Reserved; /* 01h */ |
460 | U8 ChainOffset; /* 02h */ | 477 | U8 ChainOffset; /* 02h */ |
461 | U8 Function; /* 03h */ | 478 | U8 Function; /* 03h */ |
462 | U16 ExtPageLength; /* 04h */ | 479 | U16 ExtPageLength; /* 04h */ |
463 | U8 ExtPageType; /* 06h */ | 480 | U8 ExtPageType; /* 06h */ |
464 | U8 MsgFlags; /* 07h */ | 481 | U8 MsgFlags; /* 07h */ |
465 | U32 MsgContext; /* 08h */ | 482 | U32 MsgContext; /* 08h */ |
466 | U8 Reserved2[8]; /* 0Ch */ | 483 | U8 Reserved2[8]; /* 0Ch */ |
467 | CONFIG_PAGE_HEADER Header; /* 14h */ | 484 | CONFIG_PAGE_HEADER Header; /* 14h */ |
468 | U32 PageAddress; /* 18h */ | 485 | U32 PageAddress; /* 18h */ |
469 | SGE_IO_UNION PageBufferSGE; /* 1Ch */ | 486 | SGE_IO_UNION PageBufferSGE; /* 1Ch */ |
470 | } MSG_CONFIG, MPI_POINTER PTR_MSG_CONFIG, | 487 | } MSG_CONFIG, MPI_POINTER PTR_MSG_CONFIG, |
471 | Config_t, MPI_POINTER pConfig_t; | 488 | Config_t, MPI_POINTER pConfig_t; |
472 | 489 | ||
473 | 490 | ||
474 | /**************************************************************************** | 491 | /**************************************************************************** |
475 | * Action field values | 492 | * Action field values |
476 | ****************************************************************************/ | 493 | ****************************************************************************/ |
477 | #define MPI_CONFIG_ACTION_PAGE_HEADER (0x00) | 494 | #define MPI_CONFIG_ACTION_PAGE_HEADER (0x00) |
478 | #define MPI_CONFIG_ACTION_PAGE_READ_CURRENT (0x01) | 495 | #define MPI_CONFIG_ACTION_PAGE_READ_CURRENT (0x01) |
479 | #define MPI_CONFIG_ACTION_PAGE_WRITE_CURRENT (0x02) | 496 | #define MPI_CONFIG_ACTION_PAGE_WRITE_CURRENT (0x02) |
480 | #define MPI_CONFIG_ACTION_PAGE_DEFAULT (0x03) | 497 | #define MPI_CONFIG_ACTION_PAGE_DEFAULT (0x03) |
481 | #define MPI_CONFIG_ACTION_PAGE_WRITE_NVRAM (0x04) | 498 | #define MPI_CONFIG_ACTION_PAGE_WRITE_NVRAM (0x04) |
482 | #define MPI_CONFIG_ACTION_PAGE_READ_DEFAULT (0x05) | 499 | #define MPI_CONFIG_ACTION_PAGE_READ_DEFAULT (0x05) |
483 | #define MPI_CONFIG_ACTION_PAGE_READ_NVRAM (0x06) | 500 | #define MPI_CONFIG_ACTION_PAGE_READ_NVRAM (0x06) |
484 | 501 | ||
485 | 502 | ||
486 | /* Config Reply Message */ | 503 | /* Config Reply Message */ |
487 | typedef struct _MSG_CONFIG_REPLY | 504 | typedef struct _MSG_CONFIG_REPLY |
488 | { | 505 | { |
489 | U8 Action; /* 00h */ | 506 | U8 Action; /* 00h */ |
490 | U8 Reserved; /* 01h */ | 507 | U8 Reserved; /* 01h */ |
491 | U8 MsgLength; /* 02h */ | 508 | U8 MsgLength; /* 02h */ |
492 | U8 Function; /* 03h */ | 509 | U8 Function; /* 03h */ |
493 | U16 ExtPageLength; /* 04h */ | 510 | U16 ExtPageLength; /* 04h */ |
494 | U8 ExtPageType; /* 06h */ | 511 | U8 ExtPageType; /* 06h */ |
495 | U8 MsgFlags; /* 07h */ | 512 | U8 MsgFlags; /* 07h */ |
496 | U32 MsgContext; /* 08h */ | 513 | U32 MsgContext; /* 08h */ |
497 | U8 Reserved2[2]; /* 0Ch */ | 514 | U8 Reserved2[2]; /* 0Ch */ |
498 | U16 IOCStatus; /* 0Eh */ | 515 | U16 IOCStatus; /* 0Eh */ |
499 | U32 IOCLogInfo; /* 10h */ | 516 | U32 IOCLogInfo; /* 10h */ |
500 | CONFIG_PAGE_HEADER Header; /* 14h */ | 517 | CONFIG_PAGE_HEADER Header; /* 14h */ |
501 | } MSG_CONFIG_REPLY, MPI_POINTER PTR_MSG_CONFIG_REPLY, | 518 | } MSG_CONFIG_REPLY, MPI_POINTER PTR_MSG_CONFIG_REPLY, |
502 | ConfigReply_t, MPI_POINTER pConfigReply_t; | 519 | ConfigReply_t, MPI_POINTER pConfigReply_t; |
503 | 520 | ||
504 | 521 | ||
505 | 522 | ||
506 | /***************************************************************************** | 523 | /***************************************************************************** |
507 | * | 524 | * |
508 | * C o n f i g u r a t i o n P a g e s | 525 | * C o n f i g u r a t i o n P a g e s |
509 | * | 526 | * |
510 | *****************************************************************************/ | 527 | *****************************************************************************/ |
511 | 528 | ||
512 | /**************************************************************************** | 529 | /**************************************************************************** |
513 | * Manufacturing Config pages | 530 | * Manufacturing Config pages |
514 | ****************************************************************************/ | 531 | ****************************************************************************/ |
515 | #define MPI_MANUFACTPAGE_VENDORID_LSILOGIC (0x1000) | 532 | #define MPI_MANUFACTPAGE_VENDORID_LSILOGIC (0x1000) |
516 | /* Fibre Channel */ | 533 | /* Fibre Channel */ |
517 | #define MPI_MANUFACTPAGE_DEVICEID_FC909 (0x0621) | 534 | #define MPI_MANUFACTPAGE_DEVICEID_FC909 (0x0621) |
518 | #define MPI_MANUFACTPAGE_DEVICEID_FC919 (0x0624) | 535 | #define MPI_MANUFACTPAGE_DEVICEID_FC919 (0x0624) |
519 | #define MPI_MANUFACTPAGE_DEVICEID_FC929 (0x0622) | 536 | #define MPI_MANUFACTPAGE_DEVICEID_FC929 (0x0622) |
520 | #define MPI_MANUFACTPAGE_DEVICEID_FC919X (0x0628) | 537 | #define MPI_MANUFACTPAGE_DEVICEID_FC919X (0x0628) |
521 | #define MPI_MANUFACTPAGE_DEVICEID_FC929X (0x0626) | 538 | #define MPI_MANUFACTPAGE_DEVICEID_FC929X (0x0626) |
522 | #define MPI_MANUFACTPAGE_DEVICEID_FC939X (0x0642) | 539 | #define MPI_MANUFACTPAGE_DEVICEID_FC939X (0x0642) |
523 | #define MPI_MANUFACTPAGE_DEVICEID_FC949X (0x0640) | 540 | #define MPI_MANUFACTPAGE_DEVICEID_FC949X (0x0640) |
524 | #define MPI_MANUFACTPAGE_DEVICEID_FC949E (0x0646) | 541 | #define MPI_MANUFACTPAGE_DEVICEID_FC949E (0x0646) |
525 | /* SCSI */ | 542 | /* SCSI */ |
526 | #define MPI_MANUFACTPAGE_DEVID_53C1030 (0x0030) | 543 | #define MPI_MANUFACTPAGE_DEVID_53C1030 (0x0030) |
527 | #define MPI_MANUFACTPAGE_DEVID_53C1030ZC (0x0031) | 544 | #define MPI_MANUFACTPAGE_DEVID_53C1030ZC (0x0031) |
528 | #define MPI_MANUFACTPAGE_DEVID_1030_53C1035 (0x0032) | 545 | #define MPI_MANUFACTPAGE_DEVID_1030_53C1035 (0x0032) |
529 | #define MPI_MANUFACTPAGE_DEVID_1030ZC_53C1035 (0x0033) | 546 | #define MPI_MANUFACTPAGE_DEVID_1030ZC_53C1035 (0x0033) |
530 | #define MPI_MANUFACTPAGE_DEVID_53C1035 (0x0040) | 547 | #define MPI_MANUFACTPAGE_DEVID_53C1035 (0x0040) |
531 | #define MPI_MANUFACTPAGE_DEVID_53C1035ZC (0x0041) | 548 | #define MPI_MANUFACTPAGE_DEVID_53C1035ZC (0x0041) |
532 | /* SAS */ | 549 | /* SAS */ |
533 | #define MPI_MANUFACTPAGE_DEVID_SAS1064 (0x0050) | 550 | #define MPI_MANUFACTPAGE_DEVID_SAS1064 (0x0050) |
534 | #define MPI_MANUFACTPAGE_DEVID_SAS1064A (0x005C) | 551 | #define MPI_MANUFACTPAGE_DEVID_SAS1064A (0x005C) |
535 | #define MPI_MANUFACTPAGE_DEVID_SAS1064E (0x0056) | 552 | #define MPI_MANUFACTPAGE_DEVID_SAS1064E (0x0056) |
536 | #define MPI_MANUFACTPAGE_DEVID_SAS1066 (0x005E) | 553 | #define MPI_MANUFACTPAGE_DEVID_SAS1066 (0x005E) |
537 | #define MPI_MANUFACTPAGE_DEVID_SAS1066E (0x005A) | 554 | #define MPI_MANUFACTPAGE_DEVID_SAS1066E (0x005A) |
538 | #define MPI_MANUFACTPAGE_DEVID_SAS1068 (0x0054) | 555 | #define MPI_MANUFACTPAGE_DEVID_SAS1068 (0x0054) |
539 | #define MPI_MANUFACTPAGE_DEVID_SAS1068E (0x0058) | 556 | #define MPI_MANUFACTPAGE_DEVID_SAS1068E (0x0058) |
540 | #define MPI_MANUFACTPAGE_DEVID_SAS1078 (0x0062) | 557 | #define MPI_MANUFACTPAGE_DEVID_SAS1078 (0x0062) |
541 | 558 | ||
542 | 559 | ||
543 | typedef struct _CONFIG_PAGE_MANUFACTURING_0 | 560 | typedef struct _CONFIG_PAGE_MANUFACTURING_0 |
544 | { | 561 | { |
545 | CONFIG_PAGE_HEADER Header; /* 00h */ | 562 | CONFIG_PAGE_HEADER Header; /* 00h */ |
546 | U8 ChipName[16]; /* 04h */ | 563 | U8 ChipName[16]; /* 04h */ |
547 | U8 ChipRevision[8]; /* 14h */ | 564 | U8 ChipRevision[8]; /* 14h */ |
548 | U8 BoardName[16]; /* 1Ch */ | 565 | U8 BoardName[16]; /* 1Ch */ |
549 | U8 BoardAssembly[16]; /* 2Ch */ | 566 | U8 BoardAssembly[16]; /* 2Ch */ |
550 | U8 BoardTracerNumber[16]; /* 3Ch */ | 567 | U8 BoardTracerNumber[16]; /* 3Ch */ |
551 | 568 | ||
552 | } CONFIG_PAGE_MANUFACTURING_0, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_0, | 569 | } CONFIG_PAGE_MANUFACTURING_0, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_0, |
553 | ManufacturingPage0_t, MPI_POINTER pManufacturingPage0_t; | 570 | ManufacturingPage0_t, MPI_POINTER pManufacturingPage0_t; |
554 | 571 | ||
555 | #define MPI_MANUFACTURING0_PAGEVERSION (0x00) | 572 | #define MPI_MANUFACTURING0_PAGEVERSION (0x00) |
556 | 573 | ||
557 | 574 | ||
558 | typedef struct _CONFIG_PAGE_MANUFACTURING_1 | 575 | typedef struct _CONFIG_PAGE_MANUFACTURING_1 |
559 | { | 576 | { |
560 | CONFIG_PAGE_HEADER Header; /* 00h */ | 577 | CONFIG_PAGE_HEADER Header; /* 00h */ |
561 | U8 VPD[256]; /* 04h */ | 578 | U8 VPD[256]; /* 04h */ |
562 | } CONFIG_PAGE_MANUFACTURING_1, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_1, | 579 | } CONFIG_PAGE_MANUFACTURING_1, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_1, |
563 | ManufacturingPage1_t, MPI_POINTER pManufacturingPage1_t; | 580 | ManufacturingPage1_t, MPI_POINTER pManufacturingPage1_t; |
564 | 581 | ||
565 | #define MPI_MANUFACTURING1_PAGEVERSION (0x00) | 582 | #define MPI_MANUFACTURING1_PAGEVERSION (0x00) |
566 | 583 | ||
567 | 584 | ||
568 | typedef struct _MPI_CHIP_REVISION_ID | 585 | typedef struct _MPI_CHIP_REVISION_ID |
569 | { | 586 | { |
570 | U16 DeviceID; /* 00h */ | 587 | U16 DeviceID; /* 00h */ |
571 | U8 PCIRevisionID; /* 02h */ | 588 | U8 PCIRevisionID; /* 02h */ |
572 | U8 Reserved; /* 03h */ | 589 | U8 Reserved; /* 03h */ |
573 | } MPI_CHIP_REVISION_ID, MPI_POINTER PTR_MPI_CHIP_REVISION_ID, | 590 | } MPI_CHIP_REVISION_ID, MPI_POINTER PTR_MPI_CHIP_REVISION_ID, |
574 | MpiChipRevisionId_t, MPI_POINTER pMpiChipRevisionId_t; | 591 | MpiChipRevisionId_t, MPI_POINTER pMpiChipRevisionId_t; |
575 | 592 | ||
576 | 593 | ||
577 | /* | 594 | /* |
578 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | 595 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to |
579 | * one and check Header.PageLength at runtime. | 596 | * one and check Header.PageLength at runtime. |
580 | */ | 597 | */ |
581 | #ifndef MPI_MAN_PAGE_2_HW_SETTINGS_WORDS | 598 | #ifndef MPI_MAN_PAGE_2_HW_SETTINGS_WORDS |
582 | #define MPI_MAN_PAGE_2_HW_SETTINGS_WORDS (1) | 599 | #define MPI_MAN_PAGE_2_HW_SETTINGS_WORDS (1) |
583 | #endif | 600 | #endif |
584 | 601 | ||
585 | typedef struct _CONFIG_PAGE_MANUFACTURING_2 | 602 | typedef struct _CONFIG_PAGE_MANUFACTURING_2 |
586 | { | 603 | { |
587 | CONFIG_PAGE_HEADER Header; /* 00h */ | 604 | CONFIG_PAGE_HEADER Header; /* 00h */ |
588 | MPI_CHIP_REVISION_ID ChipId; /* 04h */ | 605 | MPI_CHIP_REVISION_ID ChipId; /* 04h */ |
589 | U32 HwSettings[MPI_MAN_PAGE_2_HW_SETTINGS_WORDS];/* 08h */ | 606 | U32 HwSettings[MPI_MAN_PAGE_2_HW_SETTINGS_WORDS];/* 08h */ |
590 | } CONFIG_PAGE_MANUFACTURING_2, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_2, | 607 | } CONFIG_PAGE_MANUFACTURING_2, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_2, |
591 | ManufacturingPage2_t, MPI_POINTER pManufacturingPage2_t; | 608 | ManufacturingPage2_t, MPI_POINTER pManufacturingPage2_t; |
592 | 609 | ||
593 | #define MPI_MANUFACTURING2_PAGEVERSION (0x00) | 610 | #define MPI_MANUFACTURING2_PAGEVERSION (0x00) |
594 | 611 | ||
595 | 612 | ||
596 | /* | 613 | /* |
597 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | 614 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to |
598 | * one and check Header.PageLength at runtime. | 615 | * one and check Header.PageLength at runtime. |
599 | */ | 616 | */ |
600 | #ifndef MPI_MAN_PAGE_3_INFO_WORDS | 617 | #ifndef MPI_MAN_PAGE_3_INFO_WORDS |
601 | #define MPI_MAN_PAGE_3_INFO_WORDS (1) | 618 | #define MPI_MAN_PAGE_3_INFO_WORDS (1) |
602 | #endif | 619 | #endif |
603 | 620 | ||
604 | typedef struct _CONFIG_PAGE_MANUFACTURING_3 | 621 | typedef struct _CONFIG_PAGE_MANUFACTURING_3 |
605 | { | 622 | { |
606 | CONFIG_PAGE_HEADER Header; /* 00h */ | 623 | CONFIG_PAGE_HEADER Header; /* 00h */ |
607 | MPI_CHIP_REVISION_ID ChipId; /* 04h */ | 624 | MPI_CHIP_REVISION_ID ChipId; /* 04h */ |
608 | U32 Info[MPI_MAN_PAGE_3_INFO_WORDS];/* 08h */ | 625 | U32 Info[MPI_MAN_PAGE_3_INFO_WORDS];/* 08h */ |
609 | } CONFIG_PAGE_MANUFACTURING_3, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_3, | 626 | } CONFIG_PAGE_MANUFACTURING_3, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_3, |
610 | ManufacturingPage3_t, MPI_POINTER pManufacturingPage3_t; | 627 | ManufacturingPage3_t, MPI_POINTER pManufacturingPage3_t; |
611 | 628 | ||
612 | #define MPI_MANUFACTURING3_PAGEVERSION (0x00) | 629 | #define MPI_MANUFACTURING3_PAGEVERSION (0x00) |
613 | 630 | ||
614 | 631 | ||
615 | typedef struct _CONFIG_PAGE_MANUFACTURING_4 | 632 | typedef struct _CONFIG_PAGE_MANUFACTURING_4 |
616 | { | 633 | { |
617 | CONFIG_PAGE_HEADER Header; /* 00h */ | 634 | CONFIG_PAGE_HEADER Header; /* 00h */ |
618 | U32 Reserved1; /* 04h */ | 635 | U32 Reserved1; /* 04h */ |
619 | U8 InfoOffset0; /* 08h */ | 636 | U8 InfoOffset0; /* 08h */ |
620 | U8 InfoSize0; /* 09h */ | 637 | U8 InfoSize0; /* 09h */ |
621 | U8 InfoOffset1; /* 0Ah */ | 638 | U8 InfoOffset1; /* 0Ah */ |
622 | U8 InfoSize1; /* 0Bh */ | 639 | U8 InfoSize1; /* 0Bh */ |
623 | U8 InquirySize; /* 0Ch */ | 640 | U8 InquirySize; /* 0Ch */ |
624 | U8 Flags; /* 0Dh */ | 641 | U8 Flags; /* 0Dh */ |
625 | U16 Reserved2; /* 0Eh */ | 642 | U16 Reserved2; /* 0Eh */ |
626 | U8 InquiryData[56]; /* 10h */ | 643 | U8 InquiryData[56]; /* 10h */ |
627 | U32 ISVolumeSettings; /* 48h */ | 644 | U32 ISVolumeSettings; /* 48h */ |
628 | U32 IMEVolumeSettings; /* 4Ch */ | 645 | U32 IMEVolumeSettings; /* 4Ch */ |
629 | U32 IMVolumeSettings; /* 50h */ | 646 | U32 IMVolumeSettings; /* 50h */ |
630 | U32 Reserved3; /* 54h */ | 647 | U32 Reserved3; /* 54h */ |
631 | U32 Reserved4; /* 58h */ | 648 | U32 Reserved4; /* 58h */ |
632 | U32 Reserved5; /* 5Ch */ | 649 | U32 Reserved5; /* 5Ch */ |
633 | U8 IMEDataScrubRate; /* 60h */ | 650 | U8 IMEDataScrubRate; /* 60h */ |
634 | U8 IMEResyncRate; /* 61h */ | 651 | U8 IMEResyncRate; /* 61h */ |
635 | U16 Reserved6; /* 62h */ | 652 | U16 Reserved6; /* 62h */ |
636 | U8 IMDataScrubRate; /* 64h */ | 653 | U8 IMDataScrubRate; /* 64h */ |
637 | U8 IMResyncRate; /* 65h */ | 654 | U8 IMResyncRate; /* 65h */ |
638 | U16 Reserved7; /* 66h */ | 655 | U16 Reserved7; /* 66h */ |
639 | U32 Reserved8; /* 68h */ | 656 | U32 Reserved8; /* 68h */ |
640 | U32 Reserved9; /* 6Ch */ | 657 | U32 Reserved9; /* 6Ch */ |
641 | } CONFIG_PAGE_MANUFACTURING_4, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_4, | 658 | } CONFIG_PAGE_MANUFACTURING_4, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_4, |
642 | ManufacturingPage4_t, MPI_POINTER pManufacturingPage4_t; | 659 | ManufacturingPage4_t, MPI_POINTER pManufacturingPage4_t; |
643 | 660 | ||
644 | #define MPI_MANUFACTURING4_PAGEVERSION (0x04) | 661 | #define MPI_MANUFACTURING4_PAGEVERSION (0x04) |
645 | 662 | ||
646 | /* defines for the Flags field */ | 663 | /* defines for the Flags field */ |
647 | #define MPI_MANPAGE4_FORCE_BAD_BLOCK_TABLE (0x80) | 664 | #define MPI_MANPAGE4_FORCE_BAD_BLOCK_TABLE (0x80) |
648 | #define MPI_MANPAGE4_FORCE_OFFLINE_FAILOVER (0x40) | 665 | #define MPI_MANPAGE4_FORCE_OFFLINE_FAILOVER (0x40) |
649 | #define MPI_MANPAGE4_IME_DISABLE (0x20) | 666 | #define MPI_MANPAGE4_IME_DISABLE (0x20) |
650 | #define MPI_MANPAGE4_IM_DISABLE (0x10) | 667 | #define MPI_MANPAGE4_IM_DISABLE (0x10) |
651 | #define MPI_MANPAGE4_IS_DISABLE (0x08) | 668 | #define MPI_MANPAGE4_IS_DISABLE (0x08) |
652 | #define MPI_MANPAGE4_IR_MODEPAGE8_DISABLE (0x04) | 669 | #define MPI_MANPAGE4_IR_MODEPAGE8_DISABLE (0x04) |
653 | #define MPI_MANPAGE4_IM_RESYNC_CACHE_ENABLE (0x02) | 670 | #define MPI_MANPAGE4_IM_RESYNC_CACHE_ENABLE (0x02) |
654 | #define MPI_MANPAGE4_IR_NO_MIX_SAS_SATA (0x01) | 671 | #define MPI_MANPAGE4_IR_NO_MIX_SAS_SATA (0x01) |
655 | 672 | ||
656 | 673 | ||
674 | #ifndef MPI_MANPAGE5_NUM_FORCEWWID | ||
675 | #define MPI_MANPAGE5_NUM_FORCEWWID (1) | ||
676 | #endif | ||
677 | |||
657 | typedef struct _CONFIG_PAGE_MANUFACTURING_5 | 678 | typedef struct _CONFIG_PAGE_MANUFACTURING_5 |
658 | { | 679 | { |
659 | CONFIG_PAGE_HEADER Header; /* 00h */ | 680 | CONFIG_PAGE_HEADER Header; /* 00h */ |
660 | U64 BaseWWID; /* 04h */ | 681 | U64 BaseWWID; /* 04h */ |
661 | U8 Flags; /* 0Ch */ | 682 | U8 Flags; /* 0Ch */ |
662 | U8 Reserved1; /* 0Dh */ | 683 | U8 NumForceWWID; /* 0Dh */ |
663 | U16 Reserved2; /* 0Eh */ | 684 | U16 Reserved2; /* 0Eh */ |
685 | U32 Reserved3; /* 10h */ | ||
686 | U32 Reserved4; /* 14h */ | ||
687 | U64 ForceWWID[MPI_MANPAGE5_NUM_FORCEWWID]; /* 18h */ | ||
664 | } CONFIG_PAGE_MANUFACTURING_5, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_5, | 688 | } CONFIG_PAGE_MANUFACTURING_5, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_5, |
665 | ManufacturingPage5_t, MPI_POINTER pManufacturingPage5_t; | 689 | ManufacturingPage5_t, MPI_POINTER pManufacturingPage5_t; |
666 | 690 | ||
667 | #define MPI_MANUFACTURING5_PAGEVERSION (0x01) | 691 | #define MPI_MANUFACTURING5_PAGEVERSION (0x02) |
668 | 692 | ||
669 | /* defines for the Flags field */ | 693 | /* defines for the Flags field */ |
670 | #define MPI_MANPAGE5_TWO_WWID_PER_PHY (0x01) | 694 | #define MPI_MANPAGE5_TWO_WWID_PER_PHY (0x01) |
671 | 695 | ||
672 | 696 | ||
673 | typedef struct _CONFIG_PAGE_MANUFACTURING_6 | 697 | typedef struct _CONFIG_PAGE_MANUFACTURING_6 |
674 | { | 698 | { |
675 | CONFIG_PAGE_HEADER Header; /* 00h */ | 699 | CONFIG_PAGE_HEADER Header; /* 00h */ |
676 | U32 ProductSpecificInfo;/* 04h */ | 700 | U32 ProductSpecificInfo;/* 04h */ |
677 | } CONFIG_PAGE_MANUFACTURING_6, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_6, | 701 | } CONFIG_PAGE_MANUFACTURING_6, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_6, |
678 | ManufacturingPage6_t, MPI_POINTER pManufacturingPage6_t; | 702 | ManufacturingPage6_t, MPI_POINTER pManufacturingPage6_t; |
679 | 703 | ||
680 | #define MPI_MANUFACTURING6_PAGEVERSION (0x00) | 704 | #define MPI_MANUFACTURING6_PAGEVERSION (0x00) |
681 | 705 | ||
682 | 706 | ||
683 | typedef struct _MPI_MANPAGE7_CONNECTOR_INFO | 707 | typedef struct _MPI_MANPAGE7_CONNECTOR_INFO |
684 | { | 708 | { |
685 | U32 Pinout; /* 00h */ | 709 | U32 Pinout; /* 00h */ |
686 | U8 Connector[16]; /* 04h */ | 710 | U8 Connector[16]; /* 04h */ |
687 | U8 Location; /* 14h */ | 711 | U8 Location; /* 14h */ |
688 | U8 Reserved1; /* 15h */ | 712 | U8 Reserved1; /* 15h */ |
689 | U16 Slot; /* 16h */ | 713 | U16 Slot; /* 16h */ |
690 | U32 Reserved2; /* 18h */ | 714 | U32 Reserved2; /* 18h */ |
691 | } MPI_MANPAGE7_CONNECTOR_INFO, MPI_POINTER PTR_MPI_MANPAGE7_CONNECTOR_INFO, | 715 | } MPI_MANPAGE7_CONNECTOR_INFO, MPI_POINTER PTR_MPI_MANPAGE7_CONNECTOR_INFO, |
692 | MpiManPage7ConnectorInfo_t, MPI_POINTER pMpiManPage7ConnectorInfo_t; | 716 | MpiManPage7ConnectorInfo_t, MPI_POINTER pMpiManPage7ConnectorInfo_t; |
693 | 717 | ||
694 | /* defines for the Pinout field */ | 718 | /* defines for the Pinout field */ |
695 | #define MPI_MANPAGE7_PINOUT_SFF_8484_L4 (0x00080000) | 719 | #define MPI_MANPAGE7_PINOUT_SFF_8484_L4 (0x00080000) |
696 | #define MPI_MANPAGE7_PINOUT_SFF_8484_L3 (0x00040000) | 720 | #define MPI_MANPAGE7_PINOUT_SFF_8484_L3 (0x00040000) |
697 | #define MPI_MANPAGE7_PINOUT_SFF_8484_L2 (0x00020000) | 721 | #define MPI_MANPAGE7_PINOUT_SFF_8484_L2 (0x00020000) |
698 | #define MPI_MANPAGE7_PINOUT_SFF_8484_L1 (0x00010000) | 722 | #define MPI_MANPAGE7_PINOUT_SFF_8484_L1 (0x00010000) |
699 | #define MPI_MANPAGE7_PINOUT_SFF_8470_L4 (0x00000800) | 723 | #define MPI_MANPAGE7_PINOUT_SFF_8470_L4 (0x00000800) |
700 | #define MPI_MANPAGE7_PINOUT_SFF_8470_L3 (0x00000400) | 724 | #define MPI_MANPAGE7_PINOUT_SFF_8470_L3 (0x00000400) |
701 | #define MPI_MANPAGE7_PINOUT_SFF_8470_L2 (0x00000200) | 725 | #define MPI_MANPAGE7_PINOUT_SFF_8470_L2 (0x00000200) |
702 | #define MPI_MANPAGE7_PINOUT_SFF_8470_L1 (0x00000100) | 726 | #define MPI_MANPAGE7_PINOUT_SFF_8470_L1 (0x00000100) |
703 | #define MPI_MANPAGE7_PINOUT_SFF_8482 (0x00000002) | 727 | #define MPI_MANPAGE7_PINOUT_SFF_8482 (0x00000002) |
704 | #define MPI_MANPAGE7_PINOUT_CONNECTION_UNKNOWN (0x00000001) | 728 | #define MPI_MANPAGE7_PINOUT_CONNECTION_UNKNOWN (0x00000001) |
705 | 729 | ||
706 | /* defines for the Location field */ | 730 | /* defines for the Location field */ |
707 | #define MPI_MANPAGE7_LOCATION_UNKNOWN (0x01) | 731 | #define MPI_MANPAGE7_LOCATION_UNKNOWN (0x01) |
708 | #define MPI_MANPAGE7_LOCATION_INTERNAL (0x02) | 732 | #define MPI_MANPAGE7_LOCATION_INTERNAL (0x02) |
709 | #define MPI_MANPAGE7_LOCATION_EXTERNAL (0x04) | 733 | #define MPI_MANPAGE7_LOCATION_EXTERNAL (0x04) |
710 | #define MPI_MANPAGE7_LOCATION_SWITCHABLE (0x08) | 734 | #define MPI_MANPAGE7_LOCATION_SWITCHABLE (0x08) |
711 | #define MPI_MANPAGE7_LOCATION_AUTO (0x10) | 735 | #define MPI_MANPAGE7_LOCATION_AUTO (0x10) |
712 | #define MPI_MANPAGE7_LOCATION_NOT_PRESENT (0x20) | 736 | #define MPI_MANPAGE7_LOCATION_NOT_PRESENT (0x20) |
713 | #define MPI_MANPAGE7_LOCATION_NOT_CONNECTED (0x80) | 737 | #define MPI_MANPAGE7_LOCATION_NOT_CONNECTED (0x80) |
714 | 738 | ||
715 | /* | 739 | /* |
716 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | 740 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to |
717 | * one and check NumPhys at runtime. | 741 | * one and check NumPhys at runtime. |
718 | */ | 742 | */ |
719 | #ifndef MPI_MANPAGE7_CONNECTOR_INFO_MAX | 743 | #ifndef MPI_MANPAGE7_CONNECTOR_INFO_MAX |
720 | #define MPI_MANPAGE7_CONNECTOR_INFO_MAX (1) | 744 | #define MPI_MANPAGE7_CONNECTOR_INFO_MAX (1) |
721 | #endif | 745 | #endif |
722 | 746 | ||
723 | typedef struct _CONFIG_PAGE_MANUFACTURING_7 | 747 | typedef struct _CONFIG_PAGE_MANUFACTURING_7 |
724 | { | 748 | { |
725 | CONFIG_PAGE_HEADER Header; /* 00h */ | 749 | CONFIG_PAGE_HEADER Header; /* 00h */ |
726 | U32 Reserved1; /* 04h */ | 750 | U32 Reserved1; /* 04h */ |
727 | U32 Reserved2; /* 08h */ | 751 | U32 Reserved2; /* 08h */ |
728 | U32 Flags; /* 0Ch */ | 752 | U32 Flags; /* 0Ch */ |
729 | U8 EnclosureName[16]; /* 10h */ | 753 | U8 EnclosureName[16]; /* 10h */ |
730 | U8 NumPhys; /* 20h */ | 754 | U8 NumPhys; /* 20h */ |
731 | U8 Reserved3; /* 21h */ | 755 | U8 Reserved3; /* 21h */ |
732 | U16 Reserved4; /* 22h */ | 756 | U16 Reserved4; /* 22h */ |
733 | MPI_MANPAGE7_CONNECTOR_INFO ConnectorInfo[MPI_MANPAGE7_CONNECTOR_INFO_MAX]; /* 24h */ | 757 | MPI_MANPAGE7_CONNECTOR_INFO ConnectorInfo[MPI_MANPAGE7_CONNECTOR_INFO_MAX]; /* 24h */ |
734 | } CONFIG_PAGE_MANUFACTURING_7, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_7, | 758 | } CONFIG_PAGE_MANUFACTURING_7, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_7, |
735 | ManufacturingPage7_t, MPI_POINTER pManufacturingPage7_t; | 759 | ManufacturingPage7_t, MPI_POINTER pManufacturingPage7_t; |
736 | 760 | ||
737 | #define MPI_MANUFACTURING7_PAGEVERSION (0x00) | 761 | #define MPI_MANUFACTURING7_PAGEVERSION (0x00) |
738 | 762 | ||
739 | /* defines for the Flags field */ | 763 | /* defines for the Flags field */ |
740 | #define MPI_MANPAGE7_FLAG_USE_SLOT_INFO (0x00000001) | 764 | #define MPI_MANPAGE7_FLAG_USE_SLOT_INFO (0x00000001) |
741 | 765 | ||
742 | 766 | ||
767 | typedef struct _CONFIG_PAGE_MANUFACTURING_8 | ||
768 | { | ||
769 | CONFIG_PAGE_HEADER Header; /* 00h */ | ||
770 | U32 ProductSpecificInfo;/* 04h */ | ||
771 | } CONFIG_PAGE_MANUFACTURING_8, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_8, | ||
772 | ManufacturingPage8_t, MPI_POINTER pManufacturingPage8_t; | ||
773 | |||
774 | #define MPI_MANUFACTURING8_PAGEVERSION (0x00) | ||
775 | |||
776 | |||
777 | typedef struct _CONFIG_PAGE_MANUFACTURING_9 | ||
778 | { | ||
779 | CONFIG_PAGE_HEADER Header; /* 00h */ | ||
780 | U32 ProductSpecificInfo;/* 04h */ | ||
781 | } CONFIG_PAGE_MANUFACTURING_9, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_9, | ||
782 | ManufacturingPage9_t, MPI_POINTER pManufacturingPage9_t; | ||
783 | |||
784 | #define MPI_MANUFACTURING6_PAGEVERSION (0x00) | ||
785 | |||
786 | |||
787 | typedef struct _CONFIG_PAGE_MANUFACTURING_10 | ||
788 | { | ||
789 | CONFIG_PAGE_HEADER Header; /* 00h */ | ||
790 | U32 ProductSpecificInfo;/* 04h */ | ||
791 | } CONFIG_PAGE_MANUFACTURING_10, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_10, | ||
792 | ManufacturingPage10_t, MPI_POINTER pManufacturingPage10_t; | ||
793 | |||
794 | #define MPI_MANUFACTURING10_PAGEVERSION (0x00) | ||
795 | |||
796 | |||
743 | /**************************************************************************** | 797 | /**************************************************************************** |
744 | * IO Unit Config Pages | 798 | * IO Unit Config Pages |
745 | ****************************************************************************/ | 799 | ****************************************************************************/ |
746 | 800 | ||
747 | typedef struct _CONFIG_PAGE_IO_UNIT_0 | 801 | typedef struct _CONFIG_PAGE_IO_UNIT_0 |
748 | { | 802 | { |
749 | CONFIG_PAGE_HEADER Header; /* 00h */ | 803 | CONFIG_PAGE_HEADER Header; /* 00h */ |
750 | U64 UniqueValue; /* 04h */ | 804 | U64 UniqueValue; /* 04h */ |
751 | } CONFIG_PAGE_IO_UNIT_0, MPI_POINTER PTR_CONFIG_PAGE_IO_UNIT_0, | 805 | } CONFIG_PAGE_IO_UNIT_0, MPI_POINTER PTR_CONFIG_PAGE_IO_UNIT_0, |
752 | IOUnitPage0_t, MPI_POINTER pIOUnitPage0_t; | 806 | IOUnitPage0_t, MPI_POINTER pIOUnitPage0_t; |
753 | 807 | ||
754 | #define MPI_IOUNITPAGE0_PAGEVERSION (0x00) | 808 | #define MPI_IOUNITPAGE0_PAGEVERSION (0x00) |
755 | 809 | ||
756 | 810 | ||
757 | typedef struct _CONFIG_PAGE_IO_UNIT_1 | 811 | typedef struct _CONFIG_PAGE_IO_UNIT_1 |
758 | { | 812 | { |
759 | CONFIG_PAGE_HEADER Header; /* 00h */ | 813 | CONFIG_PAGE_HEADER Header; /* 00h */ |
760 | U32 Flags; /* 04h */ | 814 | U32 Flags; /* 04h */ |
761 | } CONFIG_PAGE_IO_UNIT_1, MPI_POINTER PTR_CONFIG_PAGE_IO_UNIT_1, | 815 | } CONFIG_PAGE_IO_UNIT_1, MPI_POINTER PTR_CONFIG_PAGE_IO_UNIT_1, |
762 | IOUnitPage1_t, MPI_POINTER pIOUnitPage1_t; | 816 | IOUnitPage1_t, MPI_POINTER pIOUnitPage1_t; |
763 | 817 | ||
764 | #define MPI_IOUNITPAGE1_PAGEVERSION (0x02) | 818 | #define MPI_IOUNITPAGE1_PAGEVERSION (0x02) |
765 | 819 | ||
766 | /* IO Unit Page 1 Flags defines */ | 820 | /* IO Unit Page 1 Flags defines */ |
767 | #define MPI_IOUNITPAGE1_MULTI_FUNCTION (0x00000000) | 821 | #define MPI_IOUNITPAGE1_MULTI_FUNCTION (0x00000000) |
768 | #define MPI_IOUNITPAGE1_SINGLE_FUNCTION (0x00000001) | 822 | #define MPI_IOUNITPAGE1_SINGLE_FUNCTION (0x00000001) |
769 | #define MPI_IOUNITPAGE1_MULTI_PATHING (0x00000002) | 823 | #define MPI_IOUNITPAGE1_MULTI_PATHING (0x00000002) |
770 | #define MPI_IOUNITPAGE1_SINGLE_PATHING (0x00000000) | 824 | #define MPI_IOUNITPAGE1_SINGLE_PATHING (0x00000000) |
771 | #define MPI_IOUNITPAGE1_IR_USE_STATIC_VOLUME_ID (0x00000004) | 825 | #define MPI_IOUNITPAGE1_IR_USE_STATIC_VOLUME_ID (0x00000004) |
772 | #define MPI_IOUNITPAGE1_DISABLE_QUEUE_FULL_HANDLING (0x00000020) | 826 | #define MPI_IOUNITPAGE1_DISABLE_QUEUE_FULL_HANDLING (0x00000020) |
773 | #define MPI_IOUNITPAGE1_DISABLE_IR (0x00000040) | 827 | #define MPI_IOUNITPAGE1_DISABLE_IR (0x00000040) |
774 | #define MPI_IOUNITPAGE1_FORCE_32 (0x00000080) | 828 | #define MPI_IOUNITPAGE1_FORCE_32 (0x00000080) |
775 | #define MPI_IOUNITPAGE1_NATIVE_COMMAND_Q_DISABLE (0x00000100) | 829 | #define MPI_IOUNITPAGE1_NATIVE_COMMAND_Q_DISABLE (0x00000100) |
776 | #define MPI_IOUNITPAGE1_SATA_WRITE_CACHE_DISABLE (0x00000200) | 830 | #define MPI_IOUNITPAGE1_SATA_WRITE_CACHE_DISABLE (0x00000200) |
777 | 831 | ||
778 | typedef struct _MPI_ADAPTER_INFO | 832 | typedef struct _MPI_ADAPTER_INFO |
779 | { | 833 | { |
780 | U8 PciBusNumber; /* 00h */ | 834 | U8 PciBusNumber; /* 00h */ |
781 | U8 PciDeviceAndFunctionNumber; /* 01h */ | 835 | U8 PciDeviceAndFunctionNumber; /* 01h */ |
782 | U16 AdapterFlags; /* 02h */ | 836 | U16 AdapterFlags; /* 02h */ |
783 | } MPI_ADAPTER_INFO, MPI_POINTER PTR_MPI_ADAPTER_INFO, | 837 | } MPI_ADAPTER_INFO, MPI_POINTER PTR_MPI_ADAPTER_INFO, |
784 | MpiAdapterInfo_t, MPI_POINTER pMpiAdapterInfo_t; | 838 | MpiAdapterInfo_t, MPI_POINTER pMpiAdapterInfo_t; |
785 | 839 | ||
786 | #define MPI_ADAPTER_INFO_FLAGS_EMBEDDED (0x0001) | 840 | #define MPI_ADAPTER_INFO_FLAGS_EMBEDDED (0x0001) |
787 | #define MPI_ADAPTER_INFO_FLAGS_INIT_STATUS (0x0002) | 841 | #define MPI_ADAPTER_INFO_FLAGS_INIT_STATUS (0x0002) |
788 | 842 | ||
789 | typedef struct _CONFIG_PAGE_IO_UNIT_2 | 843 | typedef struct _CONFIG_PAGE_IO_UNIT_2 |
790 | { | 844 | { |
791 | CONFIG_PAGE_HEADER Header; /* 00h */ | 845 | CONFIG_PAGE_HEADER Header; /* 00h */ |
792 | U32 Flags; /* 04h */ | 846 | U32 Flags; /* 04h */ |
793 | U32 BiosVersion; /* 08h */ | 847 | U32 BiosVersion; /* 08h */ |
794 | MPI_ADAPTER_INFO AdapterOrder[4]; /* 0Ch */ | 848 | MPI_ADAPTER_INFO AdapterOrder[4]; /* 0Ch */ |
795 | U32 Reserved1; /* 1Ch */ | 849 | U32 Reserved1; /* 1Ch */ |
796 | } CONFIG_PAGE_IO_UNIT_2, MPI_POINTER PTR_CONFIG_PAGE_IO_UNIT_2, | 850 | } CONFIG_PAGE_IO_UNIT_2, MPI_POINTER PTR_CONFIG_PAGE_IO_UNIT_2, |
797 | IOUnitPage2_t, MPI_POINTER pIOUnitPage2_t; | 851 | IOUnitPage2_t, MPI_POINTER pIOUnitPage2_t; |
798 | 852 | ||
799 | #define MPI_IOUNITPAGE2_PAGEVERSION (0x02) | 853 | #define MPI_IOUNITPAGE2_PAGEVERSION (0x02) |
800 | 854 | ||
801 | #define MPI_IOUNITPAGE2_FLAGS_PAUSE_ON_ERROR (0x00000002) | 855 | #define MPI_IOUNITPAGE2_FLAGS_PAUSE_ON_ERROR (0x00000002) |
802 | #define MPI_IOUNITPAGE2_FLAGS_VERBOSE_ENABLE (0x00000004) | 856 | #define MPI_IOUNITPAGE2_FLAGS_VERBOSE_ENABLE (0x00000004) |
803 | #define MPI_IOUNITPAGE2_FLAGS_COLOR_VIDEO_DISABLE (0x00000008) | 857 | #define MPI_IOUNITPAGE2_FLAGS_COLOR_VIDEO_DISABLE (0x00000008) |
804 | #define MPI_IOUNITPAGE2_FLAGS_DONT_HOOK_INT_40 (0x00000010) | 858 | #define MPI_IOUNITPAGE2_FLAGS_DONT_HOOK_INT_40 (0x00000010) |
805 | 859 | ||
806 | #define MPI_IOUNITPAGE2_FLAGS_DEV_LIST_DISPLAY_MASK (0x000000E0) | 860 | #define MPI_IOUNITPAGE2_FLAGS_DEV_LIST_DISPLAY_MASK (0x000000E0) |
807 | #define MPI_IOUNITPAGE2_FLAGS_INSTALLED_DEV_DISPLAY (0x00000000) | 861 | #define MPI_IOUNITPAGE2_FLAGS_INSTALLED_DEV_DISPLAY (0x00000000) |
808 | #define MPI_IOUNITPAGE2_FLAGS_ADAPTER_DISPLAY (0x00000020) | 862 | #define MPI_IOUNITPAGE2_FLAGS_ADAPTER_DISPLAY (0x00000020) |
809 | #define MPI_IOUNITPAGE2_FLAGS_ADAPTER_DEV_DISPLAY (0x00000040) | 863 | #define MPI_IOUNITPAGE2_FLAGS_ADAPTER_DEV_DISPLAY (0x00000040) |
810 | 864 | ||
811 | 865 | ||
812 | /* | 866 | /* |
813 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | 867 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to |
814 | * one and check Header.PageLength at runtime. | 868 | * one and check Header.PageLength at runtime. |
815 | */ | 869 | */ |
816 | #ifndef MPI_IO_UNIT_PAGE_3_GPIO_VAL_MAX | 870 | #ifndef MPI_IO_UNIT_PAGE_3_GPIO_VAL_MAX |
817 | #define MPI_IO_UNIT_PAGE_3_GPIO_VAL_MAX (1) | 871 | #define MPI_IO_UNIT_PAGE_3_GPIO_VAL_MAX (1) |
818 | #endif | 872 | #endif |
819 | 873 | ||
820 | typedef struct _CONFIG_PAGE_IO_UNIT_3 | 874 | typedef struct _CONFIG_PAGE_IO_UNIT_3 |
821 | { | 875 | { |
822 | CONFIG_PAGE_HEADER Header; /* 00h */ | 876 | CONFIG_PAGE_HEADER Header; /* 00h */ |
823 | U8 GPIOCount; /* 04h */ | 877 | U8 GPIOCount; /* 04h */ |
824 | U8 Reserved1; /* 05h */ | 878 | U8 Reserved1; /* 05h */ |
825 | U16 Reserved2; /* 06h */ | 879 | U16 Reserved2; /* 06h */ |
826 | U16 GPIOVal[MPI_IO_UNIT_PAGE_3_GPIO_VAL_MAX]; /* 08h */ | 880 | U16 GPIOVal[MPI_IO_UNIT_PAGE_3_GPIO_VAL_MAX]; /* 08h */ |
827 | } CONFIG_PAGE_IO_UNIT_3, MPI_POINTER PTR_CONFIG_PAGE_IO_UNIT_3, | 881 | } CONFIG_PAGE_IO_UNIT_3, MPI_POINTER PTR_CONFIG_PAGE_IO_UNIT_3, |
828 | IOUnitPage3_t, MPI_POINTER pIOUnitPage3_t; | 882 | IOUnitPage3_t, MPI_POINTER pIOUnitPage3_t; |
829 | 883 | ||
830 | #define MPI_IOUNITPAGE3_PAGEVERSION (0x01) | 884 | #define MPI_IOUNITPAGE3_PAGEVERSION (0x01) |
831 | 885 | ||
832 | #define MPI_IOUNITPAGE3_GPIO_FUNCTION_MASK (0xFC) | 886 | #define MPI_IOUNITPAGE3_GPIO_FUNCTION_MASK (0xFC) |
833 | #define MPI_IOUNITPAGE3_GPIO_FUNCTION_SHIFT (2) | 887 | #define MPI_IOUNITPAGE3_GPIO_FUNCTION_SHIFT (2) |
834 | #define MPI_IOUNITPAGE3_GPIO_SETTING_OFF (0x00) | 888 | #define MPI_IOUNITPAGE3_GPIO_SETTING_OFF (0x00) |
835 | #define MPI_IOUNITPAGE3_GPIO_SETTING_ON (0x01) | 889 | #define MPI_IOUNITPAGE3_GPIO_SETTING_ON (0x01) |
836 | 890 | ||
837 | 891 | ||
838 | typedef struct _CONFIG_PAGE_IO_UNIT_4 | 892 | typedef struct _CONFIG_PAGE_IO_UNIT_4 |
839 | { | 893 | { |
840 | CONFIG_PAGE_HEADER Header; /* 00h */ | 894 | CONFIG_PAGE_HEADER Header; /* 00h */ |
841 | U32 Reserved1; /* 04h */ | 895 | U32 Reserved1; /* 04h */ |
842 | SGE_SIMPLE_UNION FWImageSGE; /* 08h */ | 896 | SGE_SIMPLE_UNION FWImageSGE; /* 08h */ |
843 | } CONFIG_PAGE_IO_UNIT_4, MPI_POINTER PTR_CONFIG_PAGE_IO_UNIT_4, | 897 | } CONFIG_PAGE_IO_UNIT_4, MPI_POINTER PTR_CONFIG_PAGE_IO_UNIT_4, |
844 | IOUnitPage4_t, MPI_POINTER pIOUnitPage4_t; | 898 | IOUnitPage4_t, MPI_POINTER pIOUnitPage4_t; |
845 | 899 | ||
846 | #define MPI_IOUNITPAGE4_PAGEVERSION (0x00) | 900 | #define MPI_IOUNITPAGE4_PAGEVERSION (0x00) |
847 | 901 | ||
848 | 902 | ||
849 | /**************************************************************************** | 903 | /**************************************************************************** |
850 | * IOC Config Pages | 904 | * IOC Config Pages |
851 | ****************************************************************************/ | 905 | ****************************************************************************/ |
852 | 906 | ||
853 | typedef struct _CONFIG_PAGE_IOC_0 | 907 | typedef struct _CONFIG_PAGE_IOC_0 |
854 | { | 908 | { |
855 | CONFIG_PAGE_HEADER Header; /* 00h */ | 909 | CONFIG_PAGE_HEADER Header; /* 00h */ |
856 | U32 TotalNVStore; /* 04h */ | 910 | U32 TotalNVStore; /* 04h */ |
857 | U32 FreeNVStore; /* 08h */ | 911 | U32 FreeNVStore; /* 08h */ |
858 | U16 VendorID; /* 0Ch */ | 912 | U16 VendorID; /* 0Ch */ |
859 | U16 DeviceID; /* 0Eh */ | 913 | U16 DeviceID; /* 0Eh */ |
860 | U8 RevisionID; /* 10h */ | 914 | U8 RevisionID; /* 10h */ |
861 | U8 Reserved[3]; /* 11h */ | 915 | U8 Reserved[3]; /* 11h */ |
862 | U32 ClassCode; /* 14h */ | 916 | U32 ClassCode; /* 14h */ |
863 | U16 SubsystemVendorID; /* 18h */ | 917 | U16 SubsystemVendorID; /* 18h */ |
864 | U16 SubsystemID; /* 1Ah */ | 918 | U16 SubsystemID; /* 1Ah */ |
865 | } CONFIG_PAGE_IOC_0, MPI_POINTER PTR_CONFIG_PAGE_IOC_0, | 919 | } CONFIG_PAGE_IOC_0, MPI_POINTER PTR_CONFIG_PAGE_IOC_0, |
866 | IOCPage0_t, MPI_POINTER pIOCPage0_t; | 920 | IOCPage0_t, MPI_POINTER pIOCPage0_t; |
867 | 921 | ||
868 | #define MPI_IOCPAGE0_PAGEVERSION (0x01) | 922 | #define MPI_IOCPAGE0_PAGEVERSION (0x01) |
869 | 923 | ||
870 | 924 | ||
871 | typedef struct _CONFIG_PAGE_IOC_1 | 925 | typedef struct _CONFIG_PAGE_IOC_1 |
872 | { | 926 | { |
873 | CONFIG_PAGE_HEADER Header; /* 00h */ | 927 | CONFIG_PAGE_HEADER Header; /* 00h */ |
874 | U32 Flags; /* 04h */ | 928 | U32 Flags; /* 04h */ |
875 | U32 CoalescingTimeout; /* 08h */ | 929 | U32 CoalescingTimeout; /* 08h */ |
876 | U8 CoalescingDepth; /* 0Ch */ | 930 | U8 CoalescingDepth; /* 0Ch */ |
877 | U8 PCISlotNum; /* 0Dh */ | 931 | U8 PCISlotNum; /* 0Dh */ |
878 | U8 Reserved[2]; /* 0Eh */ | 932 | U8 Reserved[2]; /* 0Eh */ |
879 | } CONFIG_PAGE_IOC_1, MPI_POINTER PTR_CONFIG_PAGE_IOC_1, | 933 | } CONFIG_PAGE_IOC_1, MPI_POINTER PTR_CONFIG_PAGE_IOC_1, |
880 | IOCPage1_t, MPI_POINTER pIOCPage1_t; | 934 | IOCPage1_t, MPI_POINTER pIOCPage1_t; |
881 | 935 | ||
882 | #define MPI_IOCPAGE1_PAGEVERSION (0x03) | 936 | #define MPI_IOCPAGE1_PAGEVERSION (0x03) |
883 | 937 | ||
884 | /* defines for the Flags field */ | 938 | /* defines for the Flags field */ |
885 | #define MPI_IOCPAGE1_EEDP_MODE_MASK (0x07000000) | 939 | #define MPI_IOCPAGE1_EEDP_MODE_MASK (0x07000000) |
886 | #define MPI_IOCPAGE1_EEDP_MODE_OFF (0x00000000) | 940 | #define MPI_IOCPAGE1_EEDP_MODE_OFF (0x00000000) |
887 | #define MPI_IOCPAGE1_EEDP_MODE_T10 (0x01000000) | 941 | #define MPI_IOCPAGE1_EEDP_MODE_T10 (0x01000000) |
888 | #define MPI_IOCPAGE1_EEDP_MODE_LSI_1 (0x02000000) | 942 | #define MPI_IOCPAGE1_EEDP_MODE_LSI_1 (0x02000000) |
889 | #define MPI_IOCPAGE1_INITIATOR_CONTEXT_REPLY_DISABLE (0x00000010) | 943 | #define MPI_IOCPAGE1_INITIATOR_CONTEXT_REPLY_DISABLE (0x00000010) |
890 | #define MPI_IOCPAGE1_REPLY_COALESCING (0x00000001) | 944 | #define MPI_IOCPAGE1_REPLY_COALESCING (0x00000001) |
891 | 945 | ||
892 | #define MPI_IOCPAGE1_PCISLOTNUM_UNKNOWN (0xFF) | 946 | #define MPI_IOCPAGE1_PCISLOTNUM_UNKNOWN (0xFF) |
893 | 947 | ||
894 | 948 | ||
895 | typedef struct _CONFIG_PAGE_IOC_2_RAID_VOL | 949 | typedef struct _CONFIG_PAGE_IOC_2_RAID_VOL |
896 | { | 950 | { |
897 | U8 VolumeID; /* 00h */ | 951 | U8 VolumeID; /* 00h */ |
898 | U8 VolumeBus; /* 01h */ | 952 | U8 VolumeBus; /* 01h */ |
899 | U8 VolumeIOC; /* 02h */ | 953 | U8 VolumeIOC; /* 02h */ |
900 | U8 VolumePageNumber; /* 03h */ | 954 | U8 VolumePageNumber; /* 03h */ |
901 | U8 VolumeType; /* 04h */ | 955 | U8 VolumeType; /* 04h */ |
902 | U8 Flags; /* 05h */ | 956 | U8 Flags; /* 05h */ |
903 | U16 Reserved3; /* 06h */ | 957 | U16 Reserved3; /* 06h */ |
904 | } CONFIG_PAGE_IOC_2_RAID_VOL, MPI_POINTER PTR_CONFIG_PAGE_IOC_2_RAID_VOL, | 958 | } CONFIG_PAGE_IOC_2_RAID_VOL, MPI_POINTER PTR_CONFIG_PAGE_IOC_2_RAID_VOL, |
905 | ConfigPageIoc2RaidVol_t, MPI_POINTER pConfigPageIoc2RaidVol_t; | 959 | ConfigPageIoc2RaidVol_t, MPI_POINTER pConfigPageIoc2RaidVol_t; |
906 | 960 | ||
907 | /* IOC Page 2 Volume RAID Type values, also used in RAID Volume pages */ | 961 | /* IOC Page 2 Volume RAID Type values, also used in RAID Volume pages */ |
908 | 962 | ||
909 | #define MPI_RAID_VOL_TYPE_IS (0x00) | 963 | #define MPI_RAID_VOL_TYPE_IS (0x00) |
910 | #define MPI_RAID_VOL_TYPE_IME (0x01) | 964 | #define MPI_RAID_VOL_TYPE_IME (0x01) |
911 | #define MPI_RAID_VOL_TYPE_IM (0x02) | 965 | #define MPI_RAID_VOL_TYPE_IM (0x02) |
912 | #define MPI_RAID_VOL_TYPE_RAID_5 (0x03) | 966 | #define MPI_RAID_VOL_TYPE_RAID_5 (0x03) |
913 | #define MPI_RAID_VOL_TYPE_RAID_6 (0x04) | 967 | #define MPI_RAID_VOL_TYPE_RAID_6 (0x04) |
914 | #define MPI_RAID_VOL_TYPE_RAID_10 (0x05) | 968 | #define MPI_RAID_VOL_TYPE_RAID_10 (0x05) |
915 | #define MPI_RAID_VOL_TYPE_RAID_50 (0x06) | 969 | #define MPI_RAID_VOL_TYPE_RAID_50 (0x06) |
916 | #define MPI_RAID_VOL_TYPE_UNKNOWN (0xFF) | 970 | #define MPI_RAID_VOL_TYPE_UNKNOWN (0xFF) |
917 | 971 | ||
918 | /* IOC Page 2 Volume Flags values */ | 972 | /* IOC Page 2 Volume Flags values */ |
919 | 973 | ||
920 | #define MPI_IOCPAGE2_FLAG_VOLUME_INACTIVE (0x08) | 974 | #define MPI_IOCPAGE2_FLAG_VOLUME_INACTIVE (0x08) |
921 | 975 | ||
922 | /* | 976 | /* |
923 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | 977 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to |
924 | * one and check Header.PageLength at runtime. | 978 | * one and check Header.PageLength at runtime. |
925 | */ | 979 | */ |
926 | #ifndef MPI_IOC_PAGE_2_RAID_VOLUME_MAX | 980 | #ifndef MPI_IOC_PAGE_2_RAID_VOLUME_MAX |
927 | #define MPI_IOC_PAGE_2_RAID_VOLUME_MAX (1) | 981 | #define MPI_IOC_PAGE_2_RAID_VOLUME_MAX (1) |
928 | #endif | 982 | #endif |
929 | 983 | ||
930 | typedef struct _CONFIG_PAGE_IOC_2 | 984 | typedef struct _CONFIG_PAGE_IOC_2 |
931 | { | 985 | { |
932 | CONFIG_PAGE_HEADER Header; /* 00h */ | 986 | CONFIG_PAGE_HEADER Header; /* 00h */ |
933 | U32 CapabilitiesFlags; /* 04h */ | 987 | U32 CapabilitiesFlags; /* 04h */ |
934 | U8 NumActiveVolumes; /* 08h */ | 988 | U8 NumActiveVolumes; /* 08h */ |
935 | U8 MaxVolumes; /* 09h */ | 989 | U8 MaxVolumes; /* 09h */ |
936 | U8 NumActivePhysDisks; /* 0Ah */ | 990 | U8 NumActivePhysDisks; /* 0Ah */ |
937 | U8 MaxPhysDisks; /* 0Bh */ | 991 | U8 MaxPhysDisks; /* 0Bh */ |
938 | CONFIG_PAGE_IOC_2_RAID_VOL RaidVolume[MPI_IOC_PAGE_2_RAID_VOLUME_MAX];/* 0Ch */ | 992 | CONFIG_PAGE_IOC_2_RAID_VOL RaidVolume[MPI_IOC_PAGE_2_RAID_VOLUME_MAX];/* 0Ch */ |
939 | } CONFIG_PAGE_IOC_2, MPI_POINTER PTR_CONFIG_PAGE_IOC_2, | 993 | } CONFIG_PAGE_IOC_2, MPI_POINTER PTR_CONFIG_PAGE_IOC_2, |
940 | IOCPage2_t, MPI_POINTER pIOCPage2_t; | 994 | IOCPage2_t, MPI_POINTER pIOCPage2_t; |
941 | 995 | ||
942 | #define MPI_IOCPAGE2_PAGEVERSION (0x04) | 996 | #define MPI_IOCPAGE2_PAGEVERSION (0x04) |
943 | 997 | ||
944 | /* IOC Page 2 Capabilities flags */ | 998 | /* IOC Page 2 Capabilities flags */ |
945 | 999 | ||
946 | #define MPI_IOCPAGE2_CAP_FLAGS_IS_SUPPORT (0x00000001) | 1000 | #define MPI_IOCPAGE2_CAP_FLAGS_IS_SUPPORT (0x00000001) |
947 | #define MPI_IOCPAGE2_CAP_FLAGS_IME_SUPPORT (0x00000002) | 1001 | #define MPI_IOCPAGE2_CAP_FLAGS_IME_SUPPORT (0x00000002) |
948 | #define MPI_IOCPAGE2_CAP_FLAGS_IM_SUPPORT (0x00000004) | 1002 | #define MPI_IOCPAGE2_CAP_FLAGS_IM_SUPPORT (0x00000004) |
949 | #define MPI_IOCPAGE2_CAP_FLAGS_RAID_5_SUPPORT (0x00000008) | 1003 | #define MPI_IOCPAGE2_CAP_FLAGS_RAID_5_SUPPORT (0x00000008) |
950 | #define MPI_IOCPAGE2_CAP_FLAGS_RAID_6_SUPPORT (0x00000010) | 1004 | #define MPI_IOCPAGE2_CAP_FLAGS_RAID_6_SUPPORT (0x00000010) |
951 | #define MPI_IOCPAGE2_CAP_FLAGS_RAID_10_SUPPORT (0x00000020) | 1005 | #define MPI_IOCPAGE2_CAP_FLAGS_RAID_10_SUPPORT (0x00000020) |
952 | #define MPI_IOCPAGE2_CAP_FLAGS_RAID_50_SUPPORT (0x00000040) | 1006 | #define MPI_IOCPAGE2_CAP_FLAGS_RAID_50_SUPPORT (0x00000040) |
953 | #define MPI_IOCPAGE2_CAP_FLAGS_RAID_64_BIT_ADDRESSING (0x10000000) | 1007 | #define MPI_IOCPAGE2_CAP_FLAGS_RAID_64_BIT_ADDRESSING (0x10000000) |
954 | #define MPI_IOCPAGE2_CAP_FLAGS_SES_SUPPORT (0x20000000) | 1008 | #define MPI_IOCPAGE2_CAP_FLAGS_SES_SUPPORT (0x20000000) |
955 | #define MPI_IOCPAGE2_CAP_FLAGS_SAFTE_SUPPORT (0x40000000) | 1009 | #define MPI_IOCPAGE2_CAP_FLAGS_SAFTE_SUPPORT (0x40000000) |
956 | #define MPI_IOCPAGE2_CAP_FLAGS_CROSS_CHANNEL_SUPPORT (0x80000000) | 1010 | #define MPI_IOCPAGE2_CAP_FLAGS_CROSS_CHANNEL_SUPPORT (0x80000000) |
957 | 1011 | ||
958 | 1012 | ||
959 | typedef struct _IOC_3_PHYS_DISK | 1013 | typedef struct _IOC_3_PHYS_DISK |
960 | { | 1014 | { |
961 | U8 PhysDiskID; /* 00h */ | 1015 | U8 PhysDiskID; /* 00h */ |
962 | U8 PhysDiskBus; /* 01h */ | 1016 | U8 PhysDiskBus; /* 01h */ |
963 | U8 PhysDiskIOC; /* 02h */ | 1017 | U8 PhysDiskIOC; /* 02h */ |
964 | U8 PhysDiskNum; /* 03h */ | 1018 | U8 PhysDiskNum; /* 03h */ |
965 | } IOC_3_PHYS_DISK, MPI_POINTER PTR_IOC_3_PHYS_DISK, | 1019 | } IOC_3_PHYS_DISK, MPI_POINTER PTR_IOC_3_PHYS_DISK, |
966 | Ioc3PhysDisk_t, MPI_POINTER pIoc3PhysDisk_t; | 1020 | Ioc3PhysDisk_t, MPI_POINTER pIoc3PhysDisk_t; |
967 | 1021 | ||
968 | /* | 1022 | /* |
969 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | 1023 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to |
970 | * one and check Header.PageLength at runtime. | 1024 | * one and check Header.PageLength at runtime. |
971 | */ | 1025 | */ |
972 | #ifndef MPI_IOC_PAGE_3_PHYSDISK_MAX | 1026 | #ifndef MPI_IOC_PAGE_3_PHYSDISK_MAX |
973 | #define MPI_IOC_PAGE_3_PHYSDISK_MAX (1) | 1027 | #define MPI_IOC_PAGE_3_PHYSDISK_MAX (1) |
974 | #endif | 1028 | #endif |
975 | 1029 | ||
976 | typedef struct _CONFIG_PAGE_IOC_3 | 1030 | typedef struct _CONFIG_PAGE_IOC_3 |
977 | { | 1031 | { |
978 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1032 | CONFIG_PAGE_HEADER Header; /* 00h */ |
979 | U8 NumPhysDisks; /* 04h */ | 1033 | U8 NumPhysDisks; /* 04h */ |
980 | U8 Reserved1; /* 05h */ | 1034 | U8 Reserved1; /* 05h */ |
981 | U16 Reserved2; /* 06h */ | 1035 | U16 Reserved2; /* 06h */ |
982 | IOC_3_PHYS_DISK PhysDisk[MPI_IOC_PAGE_3_PHYSDISK_MAX]; /* 08h */ | 1036 | IOC_3_PHYS_DISK PhysDisk[MPI_IOC_PAGE_3_PHYSDISK_MAX]; /* 08h */ |
983 | } CONFIG_PAGE_IOC_3, MPI_POINTER PTR_CONFIG_PAGE_IOC_3, | 1037 | } CONFIG_PAGE_IOC_3, MPI_POINTER PTR_CONFIG_PAGE_IOC_3, |
984 | IOCPage3_t, MPI_POINTER pIOCPage3_t; | 1038 | IOCPage3_t, MPI_POINTER pIOCPage3_t; |
985 | 1039 | ||
986 | #define MPI_IOCPAGE3_PAGEVERSION (0x00) | 1040 | #define MPI_IOCPAGE3_PAGEVERSION (0x00) |
987 | 1041 | ||
988 | 1042 | ||
989 | typedef struct _IOC_4_SEP | 1043 | typedef struct _IOC_4_SEP |
990 | { | 1044 | { |
991 | U8 SEPTargetID; /* 00h */ | 1045 | U8 SEPTargetID; /* 00h */ |
992 | U8 SEPBus; /* 01h */ | 1046 | U8 SEPBus; /* 01h */ |
993 | U16 Reserved; /* 02h */ | 1047 | U16 Reserved; /* 02h */ |
994 | } IOC_4_SEP, MPI_POINTER PTR_IOC_4_SEP, | 1048 | } IOC_4_SEP, MPI_POINTER PTR_IOC_4_SEP, |
995 | Ioc4Sep_t, MPI_POINTER pIoc4Sep_t; | 1049 | Ioc4Sep_t, MPI_POINTER pIoc4Sep_t; |
996 | 1050 | ||
997 | /* | 1051 | /* |
998 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | 1052 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to |
999 | * one and check Header.PageLength at runtime. | 1053 | * one and check Header.PageLength at runtime. |
1000 | */ | 1054 | */ |
1001 | #ifndef MPI_IOC_PAGE_4_SEP_MAX | 1055 | #ifndef MPI_IOC_PAGE_4_SEP_MAX |
1002 | #define MPI_IOC_PAGE_4_SEP_MAX (1) | 1056 | #define MPI_IOC_PAGE_4_SEP_MAX (1) |
1003 | #endif | 1057 | #endif |
1004 | 1058 | ||
1005 | typedef struct _CONFIG_PAGE_IOC_4 | 1059 | typedef struct _CONFIG_PAGE_IOC_4 |
1006 | { | 1060 | { |
1007 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1061 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1008 | U8 ActiveSEP; /* 04h */ | 1062 | U8 ActiveSEP; /* 04h */ |
1009 | U8 MaxSEP; /* 05h */ | 1063 | U8 MaxSEP; /* 05h */ |
1010 | U16 Reserved1; /* 06h */ | 1064 | U16 Reserved1; /* 06h */ |
1011 | IOC_4_SEP SEP[MPI_IOC_PAGE_4_SEP_MAX]; /* 08h */ | 1065 | IOC_4_SEP SEP[MPI_IOC_PAGE_4_SEP_MAX]; /* 08h */ |
1012 | } CONFIG_PAGE_IOC_4, MPI_POINTER PTR_CONFIG_PAGE_IOC_4, | 1066 | } CONFIG_PAGE_IOC_4, MPI_POINTER PTR_CONFIG_PAGE_IOC_4, |
1013 | IOCPage4_t, MPI_POINTER pIOCPage4_t; | 1067 | IOCPage4_t, MPI_POINTER pIOCPage4_t; |
1014 | 1068 | ||
1015 | #define MPI_IOCPAGE4_PAGEVERSION (0x00) | 1069 | #define MPI_IOCPAGE4_PAGEVERSION (0x00) |
1016 | 1070 | ||
1017 | 1071 | ||
1018 | typedef struct _IOC_5_HOT_SPARE | 1072 | typedef struct _IOC_5_HOT_SPARE |
1019 | { | 1073 | { |
1020 | U8 PhysDiskNum; /* 00h */ | 1074 | U8 PhysDiskNum; /* 00h */ |
1021 | U8 Reserved; /* 01h */ | 1075 | U8 Reserved; /* 01h */ |
1022 | U8 HotSparePool; /* 02h */ | 1076 | U8 HotSparePool; /* 02h */ |
1023 | U8 Flags; /* 03h */ | 1077 | U8 Flags; /* 03h */ |
1024 | } IOC_5_HOT_SPARE, MPI_POINTER PTR_IOC_5_HOT_SPARE, | 1078 | } IOC_5_HOT_SPARE, MPI_POINTER PTR_IOC_5_HOT_SPARE, |
1025 | Ioc5HotSpare_t, MPI_POINTER pIoc5HotSpare_t; | 1079 | Ioc5HotSpare_t, MPI_POINTER pIoc5HotSpare_t; |
1026 | 1080 | ||
1027 | /* IOC Page 5 HotSpare Flags */ | 1081 | /* IOC Page 5 HotSpare Flags */ |
1028 | #define MPI_IOC_PAGE_5_HOT_SPARE_ACTIVE (0x01) | 1082 | #define MPI_IOC_PAGE_5_HOT_SPARE_ACTIVE (0x01) |
1029 | 1083 | ||
1030 | /* | 1084 | /* |
1031 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | 1085 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to |
1032 | * one and check Header.PageLength at runtime. | 1086 | * one and check Header.PageLength at runtime. |
1033 | */ | 1087 | */ |
1034 | #ifndef MPI_IOC_PAGE_5_HOT_SPARE_MAX | 1088 | #ifndef MPI_IOC_PAGE_5_HOT_SPARE_MAX |
1035 | #define MPI_IOC_PAGE_5_HOT_SPARE_MAX (1) | 1089 | #define MPI_IOC_PAGE_5_HOT_SPARE_MAX (1) |
1036 | #endif | 1090 | #endif |
1037 | 1091 | ||
1038 | typedef struct _CONFIG_PAGE_IOC_5 | 1092 | typedef struct _CONFIG_PAGE_IOC_5 |
1039 | { | 1093 | { |
1040 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1094 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1041 | U32 Reserved1; /* 04h */ | 1095 | U32 Reserved1; /* 04h */ |
1042 | U8 NumHotSpares; /* 08h */ | 1096 | U8 NumHotSpares; /* 08h */ |
1043 | U8 Reserved2; /* 09h */ | 1097 | U8 Reserved2; /* 09h */ |
1044 | U16 Reserved3; /* 0Ah */ | 1098 | U16 Reserved3; /* 0Ah */ |
1045 | IOC_5_HOT_SPARE HotSpare[MPI_IOC_PAGE_5_HOT_SPARE_MAX]; /* 0Ch */ | 1099 | IOC_5_HOT_SPARE HotSpare[MPI_IOC_PAGE_5_HOT_SPARE_MAX]; /* 0Ch */ |
1046 | } CONFIG_PAGE_IOC_5, MPI_POINTER PTR_CONFIG_PAGE_IOC_5, | 1100 | } CONFIG_PAGE_IOC_5, MPI_POINTER PTR_CONFIG_PAGE_IOC_5, |
1047 | IOCPage5_t, MPI_POINTER pIOCPage5_t; | 1101 | IOCPage5_t, MPI_POINTER pIOCPage5_t; |
1048 | 1102 | ||
1049 | #define MPI_IOCPAGE5_PAGEVERSION (0x00) | 1103 | #define MPI_IOCPAGE5_PAGEVERSION (0x00) |
1050 | 1104 | ||
1051 | typedef struct _CONFIG_PAGE_IOC_6 | 1105 | typedef struct _CONFIG_PAGE_IOC_6 |
1052 | { | 1106 | { |
1053 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1107 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1054 | U32 CapabilitiesFlags; /* 04h */ | 1108 | U32 CapabilitiesFlags; /* 04h */ |
1055 | U8 MaxDrivesIS; /* 08h */ | 1109 | U8 MaxDrivesIS; /* 08h */ |
1056 | U8 MaxDrivesIM; /* 09h */ | 1110 | U8 MaxDrivesIM; /* 09h */ |
1057 | U8 MaxDrivesIME; /* 0Ah */ | 1111 | U8 MaxDrivesIME; /* 0Ah */ |
1058 | U8 Reserved1; /* 0Bh */ | 1112 | U8 Reserved1; /* 0Bh */ |
1059 | U8 MinDrivesIS; /* 0Ch */ | 1113 | U8 MinDrivesIS; /* 0Ch */ |
1060 | U8 MinDrivesIM; /* 0Dh */ | 1114 | U8 MinDrivesIM; /* 0Dh */ |
1061 | U8 MinDrivesIME; /* 0Eh */ | 1115 | U8 MinDrivesIME; /* 0Eh */ |
1062 | U8 Reserved2; /* 0Fh */ | 1116 | U8 Reserved2; /* 0Fh */ |
1063 | U8 MaxGlobalHotSpares; /* 10h */ | 1117 | U8 MaxGlobalHotSpares; /* 10h */ |
1064 | U8 Reserved3; /* 11h */ | 1118 | U8 Reserved3; /* 11h */ |
1065 | U16 Reserved4; /* 12h */ | 1119 | U16 Reserved4; /* 12h */ |
1066 | U32 Reserved5; /* 14h */ | 1120 | U32 Reserved5; /* 14h */ |
1067 | U32 SupportedStripeSizeMapIS; /* 18h */ | 1121 | U32 SupportedStripeSizeMapIS; /* 18h */ |
1068 | U32 SupportedStripeSizeMapIME; /* 1Ch */ | 1122 | U32 SupportedStripeSizeMapIME; /* 1Ch */ |
1069 | U32 Reserved6; /* 20h */ | 1123 | U32 Reserved6; /* 20h */ |
1070 | U8 MetadataSize; /* 24h */ | 1124 | U8 MetadataSize; /* 24h */ |
1071 | U8 Reserved7; /* 25h */ | 1125 | U8 Reserved7; /* 25h */ |
1072 | U16 Reserved8; /* 26h */ | 1126 | U16 Reserved8; /* 26h */ |
1073 | U16 MaxBadBlockTableEntries; /* 28h */ | 1127 | U16 MaxBadBlockTableEntries; /* 28h */ |
1074 | U16 Reserved9; /* 2Ah */ | 1128 | U16 Reserved9; /* 2Ah */ |
1075 | U16 IRNvsramUsage; /* 2Ch */ | 1129 | U16 IRNvsramUsage; /* 2Ch */ |
1076 | U16 Reserved10; /* 2Eh */ | 1130 | U16 Reserved10; /* 2Eh */ |
1077 | U32 IRNvsramVersion; /* 30h */ | 1131 | U32 IRNvsramVersion; /* 30h */ |
1078 | U32 Reserved11; /* 34h */ | 1132 | U32 Reserved11; /* 34h */ |
1079 | U32 Reserved12; /* 38h */ | 1133 | U32 Reserved12; /* 38h */ |
1080 | } CONFIG_PAGE_IOC_6, MPI_POINTER PTR_CONFIG_PAGE_IOC_6, | 1134 | } CONFIG_PAGE_IOC_6, MPI_POINTER PTR_CONFIG_PAGE_IOC_6, |
1081 | IOCPage6_t, MPI_POINTER pIOCPage6_t; | 1135 | IOCPage6_t, MPI_POINTER pIOCPage6_t; |
1082 | 1136 | ||
1083 | #define MPI_IOCPAGE6_PAGEVERSION (0x00) | 1137 | #define MPI_IOCPAGE6_PAGEVERSION (0x01) |
1084 | 1138 | ||
1085 | /* IOC Page 6 Capabilities Flags */ | 1139 | /* IOC Page 6 Capabilities Flags */ |
1086 | 1140 | ||
1141 | #define MPI_IOCPAGE6_CAP_FLAGS_MASK_METADATA_SIZE (0x00000006) | ||
1142 | #define MPI_IOCPAGE6_CAP_FLAGS_64MB_METADATA_SIZE (0x00000000) | ||
1143 | #define MPI_IOCPAGE6_CAP_FLAGS_512MB_METADATA_SIZE (0x00000002) | ||
1144 | |||
1087 | #define MPI_IOCPAGE6_CAP_FLAGS_GLOBAL_HOT_SPARE (0x00000001) | 1145 | #define MPI_IOCPAGE6_CAP_FLAGS_GLOBAL_HOT_SPARE (0x00000001) |
1088 | 1146 | ||
1089 | 1147 | ||
1090 | /**************************************************************************** | 1148 | /**************************************************************************** |
1091 | * BIOS Config Pages | 1149 | * BIOS Config Pages |
1092 | ****************************************************************************/ | 1150 | ****************************************************************************/ |
1093 | 1151 | ||
1094 | typedef struct _CONFIG_PAGE_BIOS_1 | 1152 | typedef struct _CONFIG_PAGE_BIOS_1 |
1095 | { | 1153 | { |
1096 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1154 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1097 | U32 BiosOptions; /* 04h */ | 1155 | U32 BiosOptions; /* 04h */ |
1098 | U32 IOCSettings; /* 08h */ | 1156 | U32 IOCSettings; /* 08h */ |
1099 | U32 Reserved1; /* 0Ch */ | 1157 | U32 Reserved1; /* 0Ch */ |
1100 | U32 DeviceSettings; /* 10h */ | 1158 | U32 DeviceSettings; /* 10h */ |
1101 | U16 NumberOfDevices; /* 14h */ | 1159 | U16 NumberOfDevices; /* 14h */ |
1102 | U8 ExpanderSpinup; /* 16h */ | 1160 | U8 ExpanderSpinup; /* 16h */ |
1103 | U8 Reserved2; /* 17h */ | 1161 | U8 Reserved2; /* 17h */ |
1104 | U16 IOTimeoutBlockDevicesNonRM; /* 18h */ | 1162 | U16 IOTimeoutBlockDevicesNonRM; /* 18h */ |
1105 | U16 IOTimeoutSequential; /* 1Ah */ | 1163 | U16 IOTimeoutSequential; /* 1Ah */ |
1106 | U16 IOTimeoutOther; /* 1Ch */ | 1164 | U16 IOTimeoutOther; /* 1Ch */ |
1107 | U16 IOTimeoutBlockDevicesRM; /* 1Eh */ | 1165 | U16 IOTimeoutBlockDevicesRM; /* 1Eh */ |
1108 | } CONFIG_PAGE_BIOS_1, MPI_POINTER PTR_CONFIG_PAGE_BIOS_1, | 1166 | } CONFIG_PAGE_BIOS_1, MPI_POINTER PTR_CONFIG_PAGE_BIOS_1, |
1109 | BIOSPage1_t, MPI_POINTER pBIOSPage1_t; | 1167 | BIOSPage1_t, MPI_POINTER pBIOSPage1_t; |
1110 | 1168 | ||
1111 | #define MPI_BIOSPAGE1_PAGEVERSION (0x03) | 1169 | #define MPI_BIOSPAGE1_PAGEVERSION (0x03) |
1112 | 1170 | ||
1113 | /* values for the BiosOptions field */ | 1171 | /* values for the BiosOptions field */ |
1114 | #define MPI_BIOSPAGE1_OPTIONS_SPI_ENABLE (0x00000400) | 1172 | #define MPI_BIOSPAGE1_OPTIONS_SPI_ENABLE (0x00000400) |
1115 | #define MPI_BIOSPAGE1_OPTIONS_FC_ENABLE (0x00000200) | 1173 | #define MPI_BIOSPAGE1_OPTIONS_FC_ENABLE (0x00000200) |
1116 | #define MPI_BIOSPAGE1_OPTIONS_SAS_ENABLE (0x00000100) | 1174 | #define MPI_BIOSPAGE1_OPTIONS_SAS_ENABLE (0x00000100) |
1117 | #define MPI_BIOSPAGE1_OPTIONS_DISABLE_BIOS (0x00000001) | 1175 | #define MPI_BIOSPAGE1_OPTIONS_DISABLE_BIOS (0x00000001) |
1118 | 1176 | ||
1119 | /* values for the IOCSettings field */ | 1177 | /* values for the IOCSettings field */ |
1120 | #define MPI_BIOSPAGE1_IOCSET_MASK_INITIAL_SPINUP_DELAY (0x0F000000) | 1178 | #define MPI_BIOSPAGE1_IOCSET_MASK_INITIAL_SPINUP_DELAY (0x0F000000) |
1121 | #define MPI_BIOSPAGE1_IOCSET_SHIFT_INITIAL_SPINUP_DELAY (24) | 1179 | #define MPI_BIOSPAGE1_IOCSET_SHIFT_INITIAL_SPINUP_DELAY (24) |
1122 | 1180 | ||
1123 | #define MPI_BIOSPAGE1_IOCSET_MASK_PORT_ENABLE_DELAY (0x00F00000) | 1181 | #define MPI_BIOSPAGE1_IOCSET_MASK_PORT_ENABLE_DELAY (0x00F00000) |
1124 | #define MPI_BIOSPAGE1_IOCSET_SHIFT_PORT_ENABLE_DELAY (20) | 1182 | #define MPI_BIOSPAGE1_IOCSET_SHIFT_PORT_ENABLE_DELAY (20) |
1125 | 1183 | ||
1126 | #define MPI_BIOSPAGE1_IOCSET_AUTO_PORT_ENABLE (0x00080000) | 1184 | #define MPI_BIOSPAGE1_IOCSET_AUTO_PORT_ENABLE (0x00080000) |
1127 | #define MPI_BIOSPAGE1_IOCSET_DIRECT_ATTACH_SPINUP_MODE (0x00040000) | 1185 | #define MPI_BIOSPAGE1_IOCSET_DIRECT_ATTACH_SPINUP_MODE (0x00040000) |
1128 | 1186 | ||
1129 | #define MPI_BIOSPAGE1_IOCSET_MASK_BOOT_PREFERENCE (0x00030000) | 1187 | #define MPI_BIOSPAGE1_IOCSET_MASK_BOOT_PREFERENCE (0x00030000) |
1130 | #define MPI_BIOSPAGE1_IOCSET_ENCLOSURE_SLOT_BOOT (0x00000000) | 1188 | #define MPI_BIOSPAGE1_IOCSET_ENCLOSURE_SLOT_BOOT (0x00000000) |
1131 | #define MPI_BIOSPAGE1_IOCSET_SAS_ADDRESS_BOOT (0x00010000) | 1189 | #define MPI_BIOSPAGE1_IOCSET_SAS_ADDRESS_BOOT (0x00010000) |
1132 | 1190 | ||
1133 | #define MPI_BIOSPAGE1_IOCSET_MASK_MAX_TARGET_SPIN_UP (0x0000F000) | 1191 | #define MPI_BIOSPAGE1_IOCSET_MASK_MAX_TARGET_SPIN_UP (0x0000F000) |
1134 | #define MPI_BIOSPAGE1_IOCSET_SHIFT_MAX_TARGET_SPIN_UP (12) | 1192 | #define MPI_BIOSPAGE1_IOCSET_SHIFT_MAX_TARGET_SPIN_UP (12) |
1135 | 1193 | ||
1136 | #define MPI_BIOSPAGE1_IOCSET_MASK_SPINUP_DELAY (0x00000F00) | 1194 | #define MPI_BIOSPAGE1_IOCSET_MASK_SPINUP_DELAY (0x00000F00) |
1137 | #define MPI_BIOSPAGE1_IOCSET_SHIFT_SPINUP_DELAY (8) | 1195 | #define MPI_BIOSPAGE1_IOCSET_SHIFT_SPINUP_DELAY (8) |
1138 | 1196 | ||
1139 | #define MPI_BIOSPAGE1_IOCSET_MASK_RM_SETTING (0x000000C0) | 1197 | #define MPI_BIOSPAGE1_IOCSET_MASK_RM_SETTING (0x000000C0) |
1140 | #define MPI_BIOSPAGE1_IOCSET_NONE_RM_SETTING (0x00000000) | 1198 | #define MPI_BIOSPAGE1_IOCSET_NONE_RM_SETTING (0x00000000) |
1141 | #define MPI_BIOSPAGE1_IOCSET_BOOT_RM_SETTING (0x00000040) | 1199 | #define MPI_BIOSPAGE1_IOCSET_BOOT_RM_SETTING (0x00000040) |
1142 | #define MPI_BIOSPAGE1_IOCSET_MEDIA_RM_SETTING (0x00000080) | 1200 | #define MPI_BIOSPAGE1_IOCSET_MEDIA_RM_SETTING (0x00000080) |
1143 | 1201 | ||
1144 | #define MPI_BIOSPAGE1_IOCSET_MASK_ADAPTER_SUPPORT (0x00000030) | 1202 | #define MPI_BIOSPAGE1_IOCSET_MASK_ADAPTER_SUPPORT (0x00000030) |
1145 | #define MPI_BIOSPAGE1_IOCSET_NO_SUPPORT (0x00000000) | 1203 | #define MPI_BIOSPAGE1_IOCSET_NO_SUPPORT (0x00000000) |
1146 | #define MPI_BIOSPAGE1_IOCSET_BIOS_SUPPORT (0x00000010) | 1204 | #define MPI_BIOSPAGE1_IOCSET_BIOS_SUPPORT (0x00000010) |
1147 | #define MPI_BIOSPAGE1_IOCSET_OS_SUPPORT (0x00000020) | 1205 | #define MPI_BIOSPAGE1_IOCSET_OS_SUPPORT (0x00000020) |
1148 | #define MPI_BIOSPAGE1_IOCSET_ALL_SUPPORT (0x00000030) | 1206 | #define MPI_BIOSPAGE1_IOCSET_ALL_SUPPORT (0x00000030) |
1149 | 1207 | ||
1150 | #define MPI_BIOSPAGE1_IOCSET_ALTERNATE_CHS (0x00000008) | 1208 | #define MPI_BIOSPAGE1_IOCSET_ALTERNATE_CHS (0x00000008) |
1151 | 1209 | ||
1152 | /* values for the DeviceSettings field */ | 1210 | /* values for the DeviceSettings field */ |
1153 | #define MPI_BIOSPAGE1_DEVSET_DISABLE_SEQ_LUN (0x00000008) | 1211 | #define MPI_BIOSPAGE1_DEVSET_DISABLE_SEQ_LUN (0x00000008) |
1154 | #define MPI_BIOSPAGE1_DEVSET_DISABLE_RM_LUN (0x00000004) | 1212 | #define MPI_BIOSPAGE1_DEVSET_DISABLE_RM_LUN (0x00000004) |
1155 | #define MPI_BIOSPAGE1_DEVSET_DISABLE_NON_RM_LUN (0x00000002) | 1213 | #define MPI_BIOSPAGE1_DEVSET_DISABLE_NON_RM_LUN (0x00000002) |
1156 | #define MPI_BIOSPAGE1_DEVSET_DISABLE_OTHER_LUN (0x00000001) | 1214 | #define MPI_BIOSPAGE1_DEVSET_DISABLE_OTHER_LUN (0x00000001) |
1157 | 1215 | ||
1158 | /* defines for the ExpanderSpinup field */ | 1216 | /* defines for the ExpanderSpinup field */ |
1159 | #define MPI_BIOSPAGE1_EXPSPINUP_MASK_MAX_TARGET (0xF0) | 1217 | #define MPI_BIOSPAGE1_EXPSPINUP_MASK_MAX_TARGET (0xF0) |
1160 | #define MPI_BIOSPAGE1_EXPSPINUP_SHIFT_MAX_TARGET (4) | 1218 | #define MPI_BIOSPAGE1_EXPSPINUP_SHIFT_MAX_TARGET (4) |
1161 | #define MPI_BIOSPAGE1_EXPSPINUP_MASK_DELAY (0x0F) | 1219 | #define MPI_BIOSPAGE1_EXPSPINUP_MASK_DELAY (0x0F) |
1162 | 1220 | ||
1163 | typedef struct _MPI_BOOT_DEVICE_ADAPTER_ORDER | 1221 | typedef struct _MPI_BOOT_DEVICE_ADAPTER_ORDER |
1164 | { | 1222 | { |
1165 | U32 Reserved1; /* 00h */ | 1223 | U32 Reserved1; /* 00h */ |
1166 | U32 Reserved2; /* 04h */ | 1224 | U32 Reserved2; /* 04h */ |
1167 | U32 Reserved3; /* 08h */ | 1225 | U32 Reserved3; /* 08h */ |
1168 | U32 Reserved4; /* 0Ch */ | 1226 | U32 Reserved4; /* 0Ch */ |
1169 | U32 Reserved5; /* 10h */ | 1227 | U32 Reserved5; /* 10h */ |
1170 | U32 Reserved6; /* 14h */ | 1228 | U32 Reserved6; /* 14h */ |
1171 | U32 Reserved7; /* 18h */ | 1229 | U32 Reserved7; /* 18h */ |
1172 | U32 Reserved8; /* 1Ch */ | 1230 | U32 Reserved8; /* 1Ch */ |
1173 | U32 Reserved9; /* 20h */ | 1231 | U32 Reserved9; /* 20h */ |
1174 | U32 Reserved10; /* 24h */ | 1232 | U32 Reserved10; /* 24h */ |
1175 | U32 Reserved11; /* 28h */ | 1233 | U32 Reserved11; /* 28h */ |
1176 | U32 Reserved12; /* 2Ch */ | 1234 | U32 Reserved12; /* 2Ch */ |
1177 | U32 Reserved13; /* 30h */ | 1235 | U32 Reserved13; /* 30h */ |
1178 | U32 Reserved14; /* 34h */ | 1236 | U32 Reserved14; /* 34h */ |
1179 | U32 Reserved15; /* 38h */ | 1237 | U32 Reserved15; /* 38h */ |
1180 | U32 Reserved16; /* 3Ch */ | 1238 | U32 Reserved16; /* 3Ch */ |
1181 | U32 Reserved17; /* 40h */ | 1239 | U32 Reserved17; /* 40h */ |
1182 | } MPI_BOOT_DEVICE_ADAPTER_ORDER, MPI_POINTER PTR_MPI_BOOT_DEVICE_ADAPTER_ORDER; | 1240 | } MPI_BOOT_DEVICE_ADAPTER_ORDER, MPI_POINTER PTR_MPI_BOOT_DEVICE_ADAPTER_ORDER; |
1183 | 1241 | ||
1184 | typedef struct _MPI_BOOT_DEVICE_ADAPTER_NUMBER | 1242 | typedef struct _MPI_BOOT_DEVICE_ADAPTER_NUMBER |
1185 | { | 1243 | { |
1186 | U8 TargetID; /* 00h */ | 1244 | U8 TargetID; /* 00h */ |
1187 | U8 Bus; /* 01h */ | 1245 | U8 Bus; /* 01h */ |
1188 | U8 AdapterNumber; /* 02h */ | 1246 | U8 AdapterNumber; /* 02h */ |
1189 | U8 Reserved1; /* 03h */ | 1247 | U8 Reserved1; /* 03h */ |
1190 | U32 Reserved2; /* 04h */ | 1248 | U32 Reserved2; /* 04h */ |
1191 | U32 Reserved3; /* 08h */ | 1249 | U32 Reserved3; /* 08h */ |
1192 | U32 Reserved4; /* 0Ch */ | 1250 | U32 Reserved4; /* 0Ch */ |
1193 | U8 LUN[8]; /* 10h */ | 1251 | U8 LUN[8]; /* 10h */ |
1194 | U32 Reserved5; /* 18h */ | 1252 | U32 Reserved5; /* 18h */ |
1195 | U32 Reserved6; /* 1Ch */ | 1253 | U32 Reserved6; /* 1Ch */ |
1196 | U32 Reserved7; /* 20h */ | 1254 | U32 Reserved7; /* 20h */ |
1197 | U32 Reserved8; /* 24h */ | 1255 | U32 Reserved8; /* 24h */ |
1198 | U32 Reserved9; /* 28h */ | 1256 | U32 Reserved9; /* 28h */ |
1199 | U32 Reserved10; /* 2Ch */ | 1257 | U32 Reserved10; /* 2Ch */ |
1200 | U32 Reserved11; /* 30h */ | 1258 | U32 Reserved11; /* 30h */ |
1201 | U32 Reserved12; /* 34h */ | 1259 | U32 Reserved12; /* 34h */ |
1202 | U32 Reserved13; /* 38h */ | 1260 | U32 Reserved13; /* 38h */ |
1203 | U32 Reserved14; /* 3Ch */ | 1261 | U32 Reserved14; /* 3Ch */ |
1204 | U32 Reserved15; /* 40h */ | 1262 | U32 Reserved15; /* 40h */ |
1205 | } MPI_BOOT_DEVICE_ADAPTER_NUMBER, MPI_POINTER PTR_MPI_BOOT_DEVICE_ADAPTER_NUMBER; | 1263 | } MPI_BOOT_DEVICE_ADAPTER_NUMBER, MPI_POINTER PTR_MPI_BOOT_DEVICE_ADAPTER_NUMBER; |
1206 | 1264 | ||
1207 | typedef struct _MPI_BOOT_DEVICE_PCI_ADDRESS | 1265 | typedef struct _MPI_BOOT_DEVICE_PCI_ADDRESS |
1208 | { | 1266 | { |
1209 | U8 TargetID; /* 00h */ | 1267 | U8 TargetID; /* 00h */ |
1210 | U8 Bus; /* 01h */ | 1268 | U8 Bus; /* 01h */ |
1211 | U16 PCIAddress; /* 02h */ | 1269 | U16 PCIAddress; /* 02h */ |
1212 | U32 Reserved1; /* 04h */ | 1270 | U32 Reserved1; /* 04h */ |
1213 | U32 Reserved2; /* 08h */ | 1271 | U32 Reserved2; /* 08h */ |
1214 | U32 Reserved3; /* 0Ch */ | 1272 | U32 Reserved3; /* 0Ch */ |
1215 | U8 LUN[8]; /* 10h */ | 1273 | U8 LUN[8]; /* 10h */ |
1216 | U32 Reserved4; /* 18h */ | 1274 | U32 Reserved4; /* 18h */ |
1217 | U32 Reserved5; /* 1Ch */ | 1275 | U32 Reserved5; /* 1Ch */ |
1218 | U32 Reserved6; /* 20h */ | 1276 | U32 Reserved6; /* 20h */ |
1219 | U32 Reserved7; /* 24h */ | 1277 | U32 Reserved7; /* 24h */ |
1220 | U32 Reserved8; /* 28h */ | 1278 | U32 Reserved8; /* 28h */ |
1221 | U32 Reserved9; /* 2Ch */ | 1279 | U32 Reserved9; /* 2Ch */ |
1222 | U32 Reserved10; /* 30h */ | 1280 | U32 Reserved10; /* 30h */ |
1223 | U32 Reserved11; /* 34h */ | 1281 | U32 Reserved11; /* 34h */ |
1224 | U32 Reserved12; /* 38h */ | 1282 | U32 Reserved12; /* 38h */ |
1225 | U32 Reserved13; /* 3Ch */ | 1283 | U32 Reserved13; /* 3Ch */ |
1226 | U32 Reserved14; /* 40h */ | 1284 | U32 Reserved14; /* 40h */ |
1227 | } MPI_BOOT_DEVICE_PCI_ADDRESS, MPI_POINTER PTR_MPI_BOOT_DEVICE_PCI_ADDRESS; | 1285 | } MPI_BOOT_DEVICE_PCI_ADDRESS, MPI_POINTER PTR_MPI_BOOT_DEVICE_PCI_ADDRESS; |
1228 | 1286 | ||
1229 | typedef struct _MPI_BOOT_DEVICE_SLOT_NUMBER | 1287 | typedef struct _MPI_BOOT_DEVICE_SLOT_NUMBER |
1230 | { | 1288 | { |
1231 | U8 TargetID; /* 00h */ | 1289 | U8 TargetID; /* 00h */ |
1232 | U8 Bus; /* 01h */ | 1290 | U8 Bus; /* 01h */ |
1233 | U8 PCISlotNumber; /* 02h */ | 1291 | U8 PCISlotNumber; /* 02h */ |
1234 | U8 Reserved1; /* 03h */ | 1292 | U8 Reserved1; /* 03h */ |
1235 | U32 Reserved2; /* 04h */ | 1293 | U32 Reserved2; /* 04h */ |
1236 | U32 Reserved3; /* 08h */ | 1294 | U32 Reserved3; /* 08h */ |
1237 | U32 Reserved4; /* 0Ch */ | 1295 | U32 Reserved4; /* 0Ch */ |
1238 | U8 LUN[8]; /* 10h */ | 1296 | U8 LUN[8]; /* 10h */ |
1239 | U32 Reserved5; /* 18h */ | 1297 | U32 Reserved5; /* 18h */ |
1240 | U32 Reserved6; /* 1Ch */ | 1298 | U32 Reserved6; /* 1Ch */ |
1241 | U32 Reserved7; /* 20h */ | 1299 | U32 Reserved7; /* 20h */ |
1242 | U32 Reserved8; /* 24h */ | 1300 | U32 Reserved8; /* 24h */ |
1243 | U32 Reserved9; /* 28h */ | 1301 | U32 Reserved9; /* 28h */ |
1244 | U32 Reserved10; /* 2Ch */ | 1302 | U32 Reserved10; /* 2Ch */ |
1245 | U32 Reserved11; /* 30h */ | 1303 | U32 Reserved11; /* 30h */ |
1246 | U32 Reserved12; /* 34h */ | 1304 | U32 Reserved12; /* 34h */ |
1247 | U32 Reserved13; /* 38h */ | 1305 | U32 Reserved13; /* 38h */ |
1248 | U32 Reserved14; /* 3Ch */ | 1306 | U32 Reserved14; /* 3Ch */ |
1249 | U32 Reserved15; /* 40h */ | 1307 | U32 Reserved15; /* 40h */ |
1250 | } MPI_BOOT_DEVICE_PCI_SLOT_NUMBER, MPI_POINTER PTR_MPI_BOOT_DEVICE_PCI_SLOT_NUMBER; | 1308 | } MPI_BOOT_DEVICE_PCI_SLOT_NUMBER, MPI_POINTER PTR_MPI_BOOT_DEVICE_PCI_SLOT_NUMBER; |
1251 | 1309 | ||
1252 | typedef struct _MPI_BOOT_DEVICE_FC_WWN | 1310 | typedef struct _MPI_BOOT_DEVICE_FC_WWN |
1253 | { | 1311 | { |
1254 | U64 WWPN; /* 00h */ | 1312 | U64 WWPN; /* 00h */ |
1255 | U32 Reserved1; /* 08h */ | 1313 | U32 Reserved1; /* 08h */ |
1256 | U32 Reserved2; /* 0Ch */ | 1314 | U32 Reserved2; /* 0Ch */ |
1257 | U8 LUN[8]; /* 10h */ | 1315 | U8 LUN[8]; /* 10h */ |
1258 | U32 Reserved3; /* 18h */ | 1316 | U32 Reserved3; /* 18h */ |
1259 | U32 Reserved4; /* 1Ch */ | 1317 | U32 Reserved4; /* 1Ch */ |
1260 | U32 Reserved5; /* 20h */ | 1318 | U32 Reserved5; /* 20h */ |
1261 | U32 Reserved6; /* 24h */ | 1319 | U32 Reserved6; /* 24h */ |
1262 | U32 Reserved7; /* 28h */ | 1320 | U32 Reserved7; /* 28h */ |
1263 | U32 Reserved8; /* 2Ch */ | 1321 | U32 Reserved8; /* 2Ch */ |
1264 | U32 Reserved9; /* 30h */ | 1322 | U32 Reserved9; /* 30h */ |
1265 | U32 Reserved10; /* 34h */ | 1323 | U32 Reserved10; /* 34h */ |
1266 | U32 Reserved11; /* 38h */ | 1324 | U32 Reserved11; /* 38h */ |
1267 | U32 Reserved12; /* 3Ch */ | 1325 | U32 Reserved12; /* 3Ch */ |
1268 | U32 Reserved13; /* 40h */ | 1326 | U32 Reserved13; /* 40h */ |
1269 | } MPI_BOOT_DEVICE_FC_WWN, MPI_POINTER PTR_MPI_BOOT_DEVICE_FC_WWN; | 1327 | } MPI_BOOT_DEVICE_FC_WWN, MPI_POINTER PTR_MPI_BOOT_DEVICE_FC_WWN; |
1270 | 1328 | ||
1271 | typedef struct _MPI_BOOT_DEVICE_SAS_WWN | 1329 | typedef struct _MPI_BOOT_DEVICE_SAS_WWN |
1272 | { | 1330 | { |
1273 | U64 SASAddress; /* 00h */ | 1331 | U64 SASAddress; /* 00h */ |
1274 | U32 Reserved1; /* 08h */ | 1332 | U32 Reserved1; /* 08h */ |
1275 | U32 Reserved2; /* 0Ch */ | 1333 | U32 Reserved2; /* 0Ch */ |
1276 | U8 LUN[8]; /* 10h */ | 1334 | U8 LUN[8]; /* 10h */ |
1277 | U32 Reserved3; /* 18h */ | 1335 | U32 Reserved3; /* 18h */ |
1278 | U32 Reserved4; /* 1Ch */ | 1336 | U32 Reserved4; /* 1Ch */ |
1279 | U32 Reserved5; /* 20h */ | 1337 | U32 Reserved5; /* 20h */ |
1280 | U32 Reserved6; /* 24h */ | 1338 | U32 Reserved6; /* 24h */ |
1281 | U32 Reserved7; /* 28h */ | 1339 | U32 Reserved7; /* 28h */ |
1282 | U32 Reserved8; /* 2Ch */ | 1340 | U32 Reserved8; /* 2Ch */ |
1283 | U32 Reserved9; /* 30h */ | 1341 | U32 Reserved9; /* 30h */ |
1284 | U32 Reserved10; /* 34h */ | 1342 | U32 Reserved10; /* 34h */ |
1285 | U32 Reserved11; /* 38h */ | 1343 | U32 Reserved11; /* 38h */ |
1286 | U32 Reserved12; /* 3Ch */ | 1344 | U32 Reserved12; /* 3Ch */ |
1287 | U32 Reserved13; /* 40h */ | 1345 | U32 Reserved13; /* 40h */ |
1288 | } MPI_BOOT_DEVICE_SAS_WWN, MPI_POINTER PTR_MPI_BOOT_DEVICE_SAS_WWN; | 1346 | } MPI_BOOT_DEVICE_SAS_WWN, MPI_POINTER PTR_MPI_BOOT_DEVICE_SAS_WWN; |
1289 | 1347 | ||
1290 | typedef struct _MPI_BOOT_DEVICE_ENCLOSURE_SLOT | 1348 | typedef struct _MPI_BOOT_DEVICE_ENCLOSURE_SLOT |
1291 | { | 1349 | { |
1292 | U64 EnclosureLogicalID; /* 00h */ | 1350 | U64 EnclosureLogicalID; /* 00h */ |
1293 | U32 Reserved1; /* 08h */ | 1351 | U32 Reserved1; /* 08h */ |
1294 | U32 Reserved2; /* 0Ch */ | 1352 | U32 Reserved2; /* 0Ch */ |
1295 | U8 LUN[8]; /* 10h */ | 1353 | U8 LUN[8]; /* 10h */ |
1296 | U16 SlotNumber; /* 18h */ | 1354 | U16 SlotNumber; /* 18h */ |
1297 | U16 Reserved3; /* 1Ah */ | 1355 | U16 Reserved3; /* 1Ah */ |
1298 | U32 Reserved4; /* 1Ch */ | 1356 | U32 Reserved4; /* 1Ch */ |
1299 | U32 Reserved5; /* 20h */ | 1357 | U32 Reserved5; /* 20h */ |
1300 | U32 Reserved6; /* 24h */ | 1358 | U32 Reserved6; /* 24h */ |
1301 | U32 Reserved7; /* 28h */ | 1359 | U32 Reserved7; /* 28h */ |
1302 | U32 Reserved8; /* 2Ch */ | 1360 | U32 Reserved8; /* 2Ch */ |
1303 | U32 Reserved9; /* 30h */ | 1361 | U32 Reserved9; /* 30h */ |
1304 | U32 Reserved10; /* 34h */ | 1362 | U32 Reserved10; /* 34h */ |
1305 | U32 Reserved11; /* 38h */ | 1363 | U32 Reserved11; /* 38h */ |
1306 | U32 Reserved12; /* 3Ch */ | 1364 | U32 Reserved12; /* 3Ch */ |
1307 | U32 Reserved13; /* 40h */ | 1365 | U32 Reserved13; /* 40h */ |
1308 | } MPI_BOOT_DEVICE_ENCLOSURE_SLOT, | 1366 | } MPI_BOOT_DEVICE_ENCLOSURE_SLOT, |
1309 | MPI_POINTER PTR_MPI_BOOT_DEVICE_ENCLOSURE_SLOT; | 1367 | MPI_POINTER PTR_MPI_BOOT_DEVICE_ENCLOSURE_SLOT; |
1310 | 1368 | ||
1311 | typedef union _MPI_BIOSPAGE2_BOOT_DEVICE | 1369 | typedef union _MPI_BIOSPAGE2_BOOT_DEVICE |
1312 | { | 1370 | { |
1313 | MPI_BOOT_DEVICE_ADAPTER_ORDER AdapterOrder; | 1371 | MPI_BOOT_DEVICE_ADAPTER_ORDER AdapterOrder; |
1314 | MPI_BOOT_DEVICE_ADAPTER_NUMBER AdapterNumber; | 1372 | MPI_BOOT_DEVICE_ADAPTER_NUMBER AdapterNumber; |
1315 | MPI_BOOT_DEVICE_PCI_ADDRESS PCIAddress; | 1373 | MPI_BOOT_DEVICE_PCI_ADDRESS PCIAddress; |
1316 | MPI_BOOT_DEVICE_PCI_SLOT_NUMBER PCISlotNumber; | 1374 | MPI_BOOT_DEVICE_PCI_SLOT_NUMBER PCISlotNumber; |
1317 | MPI_BOOT_DEVICE_FC_WWN FcWwn; | 1375 | MPI_BOOT_DEVICE_FC_WWN FcWwn; |
1318 | MPI_BOOT_DEVICE_SAS_WWN SasWwn; | 1376 | MPI_BOOT_DEVICE_SAS_WWN SasWwn; |
1319 | MPI_BOOT_DEVICE_ENCLOSURE_SLOT EnclosureSlot; | 1377 | MPI_BOOT_DEVICE_ENCLOSURE_SLOT EnclosureSlot; |
1320 | } MPI_BIOSPAGE2_BOOT_DEVICE, MPI_POINTER PTR_MPI_BIOSPAGE2_BOOT_DEVICE; | 1378 | } MPI_BIOSPAGE2_BOOT_DEVICE, MPI_POINTER PTR_MPI_BIOSPAGE2_BOOT_DEVICE; |
1321 | 1379 | ||
1322 | typedef struct _CONFIG_PAGE_BIOS_2 | 1380 | typedef struct _CONFIG_PAGE_BIOS_2 |
1323 | { | 1381 | { |
1324 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1382 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1325 | U32 Reserved1; /* 04h */ | 1383 | U32 Reserved1; /* 04h */ |
1326 | U32 Reserved2; /* 08h */ | 1384 | U32 Reserved2; /* 08h */ |
1327 | U32 Reserved3; /* 0Ch */ | 1385 | U32 Reserved3; /* 0Ch */ |
1328 | U32 Reserved4; /* 10h */ | 1386 | U32 Reserved4; /* 10h */ |
1329 | U32 Reserved5; /* 14h */ | 1387 | U32 Reserved5; /* 14h */ |
1330 | U32 Reserved6; /* 18h */ | 1388 | U32 Reserved6; /* 18h */ |
1331 | U8 BootDeviceForm; /* 1Ch */ | 1389 | U8 BootDeviceForm; /* 1Ch */ |
1332 | U8 PrevBootDeviceForm; /* 1Ch */ | 1390 | U8 PrevBootDeviceForm; /* 1Ch */ |
1333 | U16 Reserved8; /* 1Eh */ | 1391 | U16 Reserved8; /* 1Eh */ |
1334 | MPI_BIOSPAGE2_BOOT_DEVICE BootDevice; /* 20h */ | 1392 | MPI_BIOSPAGE2_BOOT_DEVICE BootDevice; /* 20h */ |
1335 | } CONFIG_PAGE_BIOS_2, MPI_POINTER PTR_CONFIG_PAGE_BIOS_2, | 1393 | } CONFIG_PAGE_BIOS_2, MPI_POINTER PTR_CONFIG_PAGE_BIOS_2, |
1336 | BIOSPage2_t, MPI_POINTER pBIOSPage2_t; | 1394 | BIOSPage2_t, MPI_POINTER pBIOSPage2_t; |
1337 | 1395 | ||
1338 | #define MPI_BIOSPAGE2_PAGEVERSION (0x02) | 1396 | #define MPI_BIOSPAGE2_PAGEVERSION (0x02) |
1339 | 1397 | ||
1340 | #define MPI_BIOSPAGE2_FORM_MASK (0x0F) | 1398 | #define MPI_BIOSPAGE2_FORM_MASK (0x0F) |
1341 | #define MPI_BIOSPAGE2_FORM_ADAPTER_ORDER (0x00) | 1399 | #define MPI_BIOSPAGE2_FORM_ADAPTER_ORDER (0x00) |
1342 | #define MPI_BIOSPAGE2_FORM_ADAPTER_NUMBER (0x01) | 1400 | #define MPI_BIOSPAGE2_FORM_ADAPTER_NUMBER (0x01) |
1343 | #define MPI_BIOSPAGE2_FORM_PCI_ADDRESS (0x02) | 1401 | #define MPI_BIOSPAGE2_FORM_PCI_ADDRESS (0x02) |
1344 | #define MPI_BIOSPAGE2_FORM_PCI_SLOT_NUMBER (0x03) | 1402 | #define MPI_BIOSPAGE2_FORM_PCI_SLOT_NUMBER (0x03) |
1345 | #define MPI_BIOSPAGE2_FORM_FC_WWN (0x04) | 1403 | #define MPI_BIOSPAGE2_FORM_FC_WWN (0x04) |
1346 | #define MPI_BIOSPAGE2_FORM_SAS_WWN (0x05) | 1404 | #define MPI_BIOSPAGE2_FORM_SAS_WWN (0x05) |
1347 | #define MPI_BIOSPAGE2_FORM_ENCLOSURE_SLOT (0x06) | 1405 | #define MPI_BIOSPAGE2_FORM_ENCLOSURE_SLOT (0x06) |
1348 | 1406 | ||
1349 | 1407 | ||
1350 | /**************************************************************************** | 1408 | /**************************************************************************** |
1351 | * SCSI Port Config Pages | 1409 | * SCSI Port Config Pages |
1352 | ****************************************************************************/ | 1410 | ****************************************************************************/ |
1353 | 1411 | ||
1354 | typedef struct _CONFIG_PAGE_SCSI_PORT_0 | 1412 | typedef struct _CONFIG_PAGE_SCSI_PORT_0 |
1355 | { | 1413 | { |
1356 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1414 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1357 | U32 Capabilities; /* 04h */ | 1415 | U32 Capabilities; /* 04h */ |
1358 | U32 PhysicalInterface; /* 08h */ | 1416 | U32 PhysicalInterface; /* 08h */ |
1359 | } CONFIG_PAGE_SCSI_PORT_0, MPI_POINTER PTR_CONFIG_PAGE_SCSI_PORT_0, | 1417 | } CONFIG_PAGE_SCSI_PORT_0, MPI_POINTER PTR_CONFIG_PAGE_SCSI_PORT_0, |
1360 | SCSIPortPage0_t, MPI_POINTER pSCSIPortPage0_t; | 1418 | SCSIPortPage0_t, MPI_POINTER pSCSIPortPage0_t; |
1361 | 1419 | ||
1362 | #define MPI_SCSIPORTPAGE0_PAGEVERSION (0x02) | 1420 | #define MPI_SCSIPORTPAGE0_PAGEVERSION (0x02) |
1363 | 1421 | ||
1364 | #define MPI_SCSIPORTPAGE0_CAP_IU (0x00000001) | 1422 | #define MPI_SCSIPORTPAGE0_CAP_IU (0x00000001) |
1365 | #define MPI_SCSIPORTPAGE0_CAP_DT (0x00000002) | 1423 | #define MPI_SCSIPORTPAGE0_CAP_DT (0x00000002) |
1366 | #define MPI_SCSIPORTPAGE0_CAP_QAS (0x00000004) | 1424 | #define MPI_SCSIPORTPAGE0_CAP_QAS (0x00000004) |
1367 | #define MPI_SCSIPORTPAGE0_CAP_MIN_SYNC_PERIOD_MASK (0x0000FF00) | 1425 | #define MPI_SCSIPORTPAGE0_CAP_MIN_SYNC_PERIOD_MASK (0x0000FF00) |
1368 | #define MPI_SCSIPORTPAGE0_SYNC_ASYNC (0x00) | 1426 | #define MPI_SCSIPORTPAGE0_SYNC_ASYNC (0x00) |
1369 | #define MPI_SCSIPORTPAGE0_SYNC_5 (0x32) | 1427 | #define MPI_SCSIPORTPAGE0_SYNC_5 (0x32) |
1370 | #define MPI_SCSIPORTPAGE0_SYNC_10 (0x19) | 1428 | #define MPI_SCSIPORTPAGE0_SYNC_10 (0x19) |
1371 | #define MPI_SCSIPORTPAGE0_SYNC_20 (0x0C) | 1429 | #define MPI_SCSIPORTPAGE0_SYNC_20 (0x0C) |
1372 | #define MPI_SCSIPORTPAGE0_SYNC_33_33 (0x0B) | 1430 | #define MPI_SCSIPORTPAGE0_SYNC_33_33 (0x0B) |
1373 | #define MPI_SCSIPORTPAGE0_SYNC_40 (0x0A) | 1431 | #define MPI_SCSIPORTPAGE0_SYNC_40 (0x0A) |
1374 | #define MPI_SCSIPORTPAGE0_SYNC_80 (0x09) | 1432 | #define MPI_SCSIPORTPAGE0_SYNC_80 (0x09) |
1375 | #define MPI_SCSIPORTPAGE0_SYNC_160 (0x08) | 1433 | #define MPI_SCSIPORTPAGE0_SYNC_160 (0x08) |
1376 | #define MPI_SCSIPORTPAGE0_SYNC_UNKNOWN (0xFF) | 1434 | #define MPI_SCSIPORTPAGE0_SYNC_UNKNOWN (0xFF) |
1377 | 1435 | ||
1378 | #define MPI_SCSIPORTPAGE0_CAP_SHIFT_MIN_SYNC_PERIOD (8) | 1436 | #define MPI_SCSIPORTPAGE0_CAP_SHIFT_MIN_SYNC_PERIOD (8) |
1379 | #define MPI_SCSIPORTPAGE0_CAP_GET_MIN_SYNC_PERIOD(Cap) \ | 1437 | #define MPI_SCSIPORTPAGE0_CAP_GET_MIN_SYNC_PERIOD(Cap) \ |
1380 | ( ((Cap) & MPI_SCSIPORTPAGE0_CAP_MIN_SYNC_PERIOD_MASK) \ | 1438 | ( ((Cap) & MPI_SCSIPORTPAGE0_CAP_MIN_SYNC_PERIOD_MASK) \ |
1381 | >> MPI_SCSIPORTPAGE0_CAP_SHIFT_MIN_SYNC_PERIOD \ | 1439 | >> MPI_SCSIPORTPAGE0_CAP_SHIFT_MIN_SYNC_PERIOD \ |
1382 | ) | 1440 | ) |
1383 | #define MPI_SCSIPORTPAGE0_CAP_MAX_SYNC_OFFSET_MASK (0x00FF0000) | 1441 | #define MPI_SCSIPORTPAGE0_CAP_MAX_SYNC_OFFSET_MASK (0x00FF0000) |
1384 | #define MPI_SCSIPORTPAGE0_CAP_SHIFT_MAX_SYNC_OFFSET (16) | 1442 | #define MPI_SCSIPORTPAGE0_CAP_SHIFT_MAX_SYNC_OFFSET (16) |
1385 | #define MPI_SCSIPORTPAGE0_CAP_GET_MAX_SYNC_OFFSET(Cap) \ | 1443 | #define MPI_SCSIPORTPAGE0_CAP_GET_MAX_SYNC_OFFSET(Cap) \ |
1386 | ( ((Cap) & MPI_SCSIPORTPAGE0_CAP_MAX_SYNC_OFFSET_MASK) \ | 1444 | ( ((Cap) & MPI_SCSIPORTPAGE0_CAP_MAX_SYNC_OFFSET_MASK) \ |
1387 | >> MPI_SCSIPORTPAGE0_CAP_SHIFT_MAX_SYNC_OFFSET \ | 1445 | >> MPI_SCSIPORTPAGE0_CAP_SHIFT_MAX_SYNC_OFFSET \ |
1388 | ) | 1446 | ) |
1389 | #define MPI_SCSIPORTPAGE0_CAP_IDP (0x08000000) | 1447 | #define MPI_SCSIPORTPAGE0_CAP_IDP (0x08000000) |
1390 | #define MPI_SCSIPORTPAGE0_CAP_WIDE (0x20000000) | 1448 | #define MPI_SCSIPORTPAGE0_CAP_WIDE (0x20000000) |
1391 | #define MPI_SCSIPORTPAGE0_CAP_AIP (0x80000000) | 1449 | #define MPI_SCSIPORTPAGE0_CAP_AIP (0x80000000) |
1392 | 1450 | ||
1393 | #define MPI_SCSIPORTPAGE0_PHY_SIGNAL_TYPE_MASK (0x00000003) | 1451 | #define MPI_SCSIPORTPAGE0_PHY_SIGNAL_TYPE_MASK (0x00000003) |
1394 | #define MPI_SCSIPORTPAGE0_PHY_SIGNAL_HVD (0x01) | 1452 | #define MPI_SCSIPORTPAGE0_PHY_SIGNAL_HVD (0x01) |
1395 | #define MPI_SCSIPORTPAGE0_PHY_SIGNAL_SE (0x02) | 1453 | #define MPI_SCSIPORTPAGE0_PHY_SIGNAL_SE (0x02) |
1396 | #define MPI_SCSIPORTPAGE0_PHY_SIGNAL_LVD (0x03) | 1454 | #define MPI_SCSIPORTPAGE0_PHY_SIGNAL_LVD (0x03) |
1397 | #define MPI_SCSIPORTPAGE0_PHY_MASK_CONNECTED_ID (0xFF000000) | 1455 | #define MPI_SCSIPORTPAGE0_PHY_MASK_CONNECTED_ID (0xFF000000) |
1398 | #define MPI_SCSIPORTPAGE0_PHY_SHIFT_CONNECTED_ID (24) | 1456 | #define MPI_SCSIPORTPAGE0_PHY_SHIFT_CONNECTED_ID (24) |
1399 | #define MPI_SCSIPORTPAGE0_PHY_BUS_FREE_CONNECTED_ID (0xFE) | 1457 | #define MPI_SCSIPORTPAGE0_PHY_BUS_FREE_CONNECTED_ID (0xFE) |
1400 | #define MPI_SCSIPORTPAGE0_PHY_UNKNOWN_CONNECTED_ID (0xFF) | 1458 | #define MPI_SCSIPORTPAGE0_PHY_UNKNOWN_CONNECTED_ID (0xFF) |
1401 | 1459 | ||
1402 | 1460 | ||
1403 | typedef struct _CONFIG_PAGE_SCSI_PORT_1 | 1461 | typedef struct _CONFIG_PAGE_SCSI_PORT_1 |
1404 | { | 1462 | { |
1405 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1463 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1406 | U32 Configuration; /* 04h */ | 1464 | U32 Configuration; /* 04h */ |
1407 | U32 OnBusTimerValue; /* 08h */ | 1465 | U32 OnBusTimerValue; /* 08h */ |
1408 | U8 TargetConfig; /* 0Ch */ | 1466 | U8 TargetConfig; /* 0Ch */ |
1409 | U8 Reserved1; /* 0Dh */ | 1467 | U8 Reserved1; /* 0Dh */ |
1410 | U16 IDConfig; /* 0Eh */ | 1468 | U16 IDConfig; /* 0Eh */ |
1411 | } CONFIG_PAGE_SCSI_PORT_1, MPI_POINTER PTR_CONFIG_PAGE_SCSI_PORT_1, | 1469 | } CONFIG_PAGE_SCSI_PORT_1, MPI_POINTER PTR_CONFIG_PAGE_SCSI_PORT_1, |
1412 | SCSIPortPage1_t, MPI_POINTER pSCSIPortPage1_t; | 1470 | SCSIPortPage1_t, MPI_POINTER pSCSIPortPage1_t; |
1413 | 1471 | ||
1414 | #define MPI_SCSIPORTPAGE1_PAGEVERSION (0x03) | 1472 | #define MPI_SCSIPORTPAGE1_PAGEVERSION (0x03) |
1415 | 1473 | ||
1416 | /* Configuration values */ | 1474 | /* Configuration values */ |
1417 | #define MPI_SCSIPORTPAGE1_CFG_PORT_SCSI_ID_MASK (0x000000FF) | 1475 | #define MPI_SCSIPORTPAGE1_CFG_PORT_SCSI_ID_MASK (0x000000FF) |
1418 | #define MPI_SCSIPORTPAGE1_CFG_PORT_RESPONSE_ID_MASK (0xFFFF0000) | 1476 | #define MPI_SCSIPORTPAGE1_CFG_PORT_RESPONSE_ID_MASK (0xFFFF0000) |
1419 | #define MPI_SCSIPORTPAGE1_CFG_SHIFT_PORT_RESPONSE_ID (16) | 1477 | #define MPI_SCSIPORTPAGE1_CFG_SHIFT_PORT_RESPONSE_ID (16) |
1420 | 1478 | ||
1421 | /* TargetConfig values */ | 1479 | /* TargetConfig values */ |
1422 | #define MPI_SCSIPORTPAGE1_TARGCONFIG_TARG_ONLY (0x01) | 1480 | #define MPI_SCSIPORTPAGE1_TARGCONFIG_TARG_ONLY (0x01) |
1423 | #define MPI_SCSIPORTPAGE1_TARGCONFIG_INIT_TARG (0x02) | 1481 | #define MPI_SCSIPORTPAGE1_TARGCONFIG_INIT_TARG (0x02) |
1424 | 1482 | ||
1425 | 1483 | ||
1426 | typedef struct _MPI_DEVICE_INFO | 1484 | typedef struct _MPI_DEVICE_INFO |
1427 | { | 1485 | { |
1428 | U8 Timeout; /* 00h */ | 1486 | U8 Timeout; /* 00h */ |
1429 | U8 SyncFactor; /* 01h */ | 1487 | U8 SyncFactor; /* 01h */ |
1430 | U16 DeviceFlags; /* 02h */ | 1488 | U16 DeviceFlags; /* 02h */ |
1431 | } MPI_DEVICE_INFO, MPI_POINTER PTR_MPI_DEVICE_INFO, | 1489 | } MPI_DEVICE_INFO, MPI_POINTER PTR_MPI_DEVICE_INFO, |
1432 | MpiDeviceInfo_t, MPI_POINTER pMpiDeviceInfo_t; | 1490 | MpiDeviceInfo_t, MPI_POINTER pMpiDeviceInfo_t; |
1433 | 1491 | ||
1434 | typedef struct _CONFIG_PAGE_SCSI_PORT_2 | 1492 | typedef struct _CONFIG_PAGE_SCSI_PORT_2 |
1435 | { | 1493 | { |
1436 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1494 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1437 | U32 PortFlags; /* 04h */ | 1495 | U32 PortFlags; /* 04h */ |
1438 | U32 PortSettings; /* 08h */ | 1496 | U32 PortSettings; /* 08h */ |
1439 | MPI_DEVICE_INFO DeviceSettings[16]; /* 0Ch */ | 1497 | MPI_DEVICE_INFO DeviceSettings[16]; /* 0Ch */ |
1440 | } CONFIG_PAGE_SCSI_PORT_2, MPI_POINTER PTR_CONFIG_PAGE_SCSI_PORT_2, | 1498 | } CONFIG_PAGE_SCSI_PORT_2, MPI_POINTER PTR_CONFIG_PAGE_SCSI_PORT_2, |
1441 | SCSIPortPage2_t, MPI_POINTER pSCSIPortPage2_t; | 1499 | SCSIPortPage2_t, MPI_POINTER pSCSIPortPage2_t; |
1442 | 1500 | ||
1443 | #define MPI_SCSIPORTPAGE2_PAGEVERSION (0x02) | 1501 | #define MPI_SCSIPORTPAGE2_PAGEVERSION (0x02) |
1444 | 1502 | ||
1445 | /* PortFlags values */ | 1503 | /* PortFlags values */ |
1446 | #define MPI_SCSIPORTPAGE2_PORT_FLAGS_SCAN_HIGH_TO_LOW (0x00000001) | 1504 | #define MPI_SCSIPORTPAGE2_PORT_FLAGS_SCAN_HIGH_TO_LOW (0x00000001) |
1447 | #define MPI_SCSIPORTPAGE2_PORT_FLAGS_AVOID_SCSI_RESET (0x00000004) | 1505 | #define MPI_SCSIPORTPAGE2_PORT_FLAGS_AVOID_SCSI_RESET (0x00000004) |
1448 | #define MPI_SCSIPORTPAGE2_PORT_FLAGS_ALTERNATE_CHS (0x00000008) | 1506 | #define MPI_SCSIPORTPAGE2_PORT_FLAGS_ALTERNATE_CHS (0x00000008) |
1449 | #define MPI_SCSIPORTPAGE2_PORT_FLAGS_TERMINATION_DISABLE (0x00000010) | 1507 | #define MPI_SCSIPORTPAGE2_PORT_FLAGS_TERMINATION_DISABLE (0x00000010) |
1450 | 1508 | ||
1451 | #define MPI_SCSIPORTPAGE2_PORT_FLAGS_DV_MASK (0x00000060) | 1509 | #define MPI_SCSIPORTPAGE2_PORT_FLAGS_DV_MASK (0x00000060) |
1452 | #define MPI_SCSIPORTPAGE2_PORT_FLAGS_FULL_DV (0x00000000) | 1510 | #define MPI_SCSIPORTPAGE2_PORT_FLAGS_FULL_DV (0x00000000) |
1453 | #define MPI_SCSIPORTPAGE2_PORT_FLAGS_BASIC_DV_ONLY (0x00000020) | 1511 | #define MPI_SCSIPORTPAGE2_PORT_FLAGS_BASIC_DV_ONLY (0x00000020) |
1454 | #define MPI_SCSIPORTPAGE2_PORT_FLAGS_OFF_DV (0x00000060) | 1512 | #define MPI_SCSIPORTPAGE2_PORT_FLAGS_OFF_DV (0x00000060) |
1455 | 1513 | ||
1456 | 1514 | ||
1457 | /* PortSettings values */ | 1515 | /* PortSettings values */ |
1458 | #define MPI_SCSIPORTPAGE2_PORT_HOST_ID_MASK (0x0000000F) | 1516 | #define MPI_SCSIPORTPAGE2_PORT_HOST_ID_MASK (0x0000000F) |
1459 | #define MPI_SCSIPORTPAGE2_PORT_MASK_INIT_HBA (0x00000030) | 1517 | #define MPI_SCSIPORTPAGE2_PORT_MASK_INIT_HBA (0x00000030) |
1460 | #define MPI_SCSIPORTPAGE2_PORT_DISABLE_INIT_HBA (0x00000000) | 1518 | #define MPI_SCSIPORTPAGE2_PORT_DISABLE_INIT_HBA (0x00000000) |
1461 | #define MPI_SCSIPORTPAGE2_PORT_BIOS_INIT_HBA (0x00000010) | 1519 | #define MPI_SCSIPORTPAGE2_PORT_BIOS_INIT_HBA (0x00000010) |
1462 | #define MPI_SCSIPORTPAGE2_PORT_OS_INIT_HBA (0x00000020) | 1520 | #define MPI_SCSIPORTPAGE2_PORT_OS_INIT_HBA (0x00000020) |
1463 | #define MPI_SCSIPORTPAGE2_PORT_BIOS_OS_INIT_HBA (0x00000030) | 1521 | #define MPI_SCSIPORTPAGE2_PORT_BIOS_OS_INIT_HBA (0x00000030) |
1464 | #define MPI_SCSIPORTPAGE2_PORT_REMOVABLE_MEDIA (0x000000C0) | 1522 | #define MPI_SCSIPORTPAGE2_PORT_REMOVABLE_MEDIA (0x000000C0) |
1465 | #define MPI_SCSIPORTPAGE2_PORT_RM_NONE (0x00000000) | 1523 | #define MPI_SCSIPORTPAGE2_PORT_RM_NONE (0x00000000) |
1466 | #define MPI_SCSIPORTPAGE2_PORT_RM_BOOT_ONLY (0x00000040) | 1524 | #define MPI_SCSIPORTPAGE2_PORT_RM_BOOT_ONLY (0x00000040) |
1467 | #define MPI_SCSIPORTPAGE2_PORT_RM_WITH_MEDIA (0x00000080) | 1525 | #define MPI_SCSIPORTPAGE2_PORT_RM_WITH_MEDIA (0x00000080) |
1468 | #define MPI_SCSIPORTPAGE2_PORT_SPINUP_DELAY_MASK (0x00000F00) | 1526 | #define MPI_SCSIPORTPAGE2_PORT_SPINUP_DELAY_MASK (0x00000F00) |
1469 | #define MPI_SCSIPORTPAGE2_PORT_SHIFT_SPINUP_DELAY (8) | 1527 | #define MPI_SCSIPORTPAGE2_PORT_SHIFT_SPINUP_DELAY (8) |
1470 | #define MPI_SCSIPORTPAGE2_PORT_MASK_NEGO_MASTER_SETTINGS (0x00003000) | 1528 | #define MPI_SCSIPORTPAGE2_PORT_MASK_NEGO_MASTER_SETTINGS (0x00003000) |
1471 | #define MPI_SCSIPORTPAGE2_PORT_NEGO_MASTER_SETTINGS (0x00000000) | 1529 | #define MPI_SCSIPORTPAGE2_PORT_NEGO_MASTER_SETTINGS (0x00000000) |
1472 | #define MPI_SCSIPORTPAGE2_PORT_NONE_MASTER_SETTINGS (0x00001000) | 1530 | #define MPI_SCSIPORTPAGE2_PORT_NONE_MASTER_SETTINGS (0x00001000) |
1473 | #define MPI_SCSIPORTPAGE2_PORT_ALL_MASTER_SETTINGS (0x00003000) | 1531 | #define MPI_SCSIPORTPAGE2_PORT_ALL_MASTER_SETTINGS (0x00003000) |
1474 | 1532 | ||
1475 | #define MPI_SCSIPORTPAGE2_DEVICE_DISCONNECT_ENABLE (0x0001) | 1533 | #define MPI_SCSIPORTPAGE2_DEVICE_DISCONNECT_ENABLE (0x0001) |
1476 | #define MPI_SCSIPORTPAGE2_DEVICE_ID_SCAN_ENABLE (0x0002) | 1534 | #define MPI_SCSIPORTPAGE2_DEVICE_ID_SCAN_ENABLE (0x0002) |
1477 | #define MPI_SCSIPORTPAGE2_DEVICE_LUN_SCAN_ENABLE (0x0004) | 1535 | #define MPI_SCSIPORTPAGE2_DEVICE_LUN_SCAN_ENABLE (0x0004) |
1478 | #define MPI_SCSIPORTPAGE2_DEVICE_TAG_QUEUE_ENABLE (0x0008) | 1536 | #define MPI_SCSIPORTPAGE2_DEVICE_TAG_QUEUE_ENABLE (0x0008) |
1479 | #define MPI_SCSIPORTPAGE2_DEVICE_WIDE_DISABLE (0x0010) | 1537 | #define MPI_SCSIPORTPAGE2_DEVICE_WIDE_DISABLE (0x0010) |
1480 | #define MPI_SCSIPORTPAGE2_DEVICE_BOOT_CHOICE (0x0020) | 1538 | #define MPI_SCSIPORTPAGE2_DEVICE_BOOT_CHOICE (0x0020) |
1481 | 1539 | ||
1482 | 1540 | ||
1483 | /**************************************************************************** | 1541 | /**************************************************************************** |
1484 | * SCSI Target Device Config Pages | 1542 | * SCSI Target Device Config Pages |
1485 | ****************************************************************************/ | 1543 | ****************************************************************************/ |
1486 | 1544 | ||
1487 | typedef struct _CONFIG_PAGE_SCSI_DEVICE_0 | 1545 | typedef struct _CONFIG_PAGE_SCSI_DEVICE_0 |
1488 | { | 1546 | { |
1489 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1547 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1490 | U32 NegotiatedParameters; /* 04h */ | 1548 | U32 NegotiatedParameters; /* 04h */ |
1491 | U32 Information; /* 08h */ | 1549 | U32 Information; /* 08h */ |
1492 | } CONFIG_PAGE_SCSI_DEVICE_0, MPI_POINTER PTR_CONFIG_PAGE_SCSI_DEVICE_0, | 1550 | } CONFIG_PAGE_SCSI_DEVICE_0, MPI_POINTER PTR_CONFIG_PAGE_SCSI_DEVICE_0, |
1493 | SCSIDevicePage0_t, MPI_POINTER pSCSIDevicePage0_t; | 1551 | SCSIDevicePage0_t, MPI_POINTER pSCSIDevicePage0_t; |
1494 | 1552 | ||
1495 | #define MPI_SCSIDEVPAGE0_PAGEVERSION (0x04) | 1553 | #define MPI_SCSIDEVPAGE0_PAGEVERSION (0x04) |
1496 | 1554 | ||
1497 | #define MPI_SCSIDEVPAGE0_NP_IU (0x00000001) | 1555 | #define MPI_SCSIDEVPAGE0_NP_IU (0x00000001) |
1498 | #define MPI_SCSIDEVPAGE0_NP_DT (0x00000002) | 1556 | #define MPI_SCSIDEVPAGE0_NP_DT (0x00000002) |
1499 | #define MPI_SCSIDEVPAGE0_NP_QAS (0x00000004) | 1557 | #define MPI_SCSIDEVPAGE0_NP_QAS (0x00000004) |
1500 | #define MPI_SCSIDEVPAGE0_NP_HOLD_MCS (0x00000008) | 1558 | #define MPI_SCSIDEVPAGE0_NP_HOLD_MCS (0x00000008) |
1501 | #define MPI_SCSIDEVPAGE0_NP_WR_FLOW (0x00000010) | 1559 | #define MPI_SCSIDEVPAGE0_NP_WR_FLOW (0x00000010) |
1502 | #define MPI_SCSIDEVPAGE0_NP_RD_STRM (0x00000020) | 1560 | #define MPI_SCSIDEVPAGE0_NP_RD_STRM (0x00000020) |
1503 | #define MPI_SCSIDEVPAGE0_NP_RTI (0x00000040) | 1561 | #define MPI_SCSIDEVPAGE0_NP_RTI (0x00000040) |
1504 | #define MPI_SCSIDEVPAGE0_NP_PCOMP_EN (0x00000080) | 1562 | #define MPI_SCSIDEVPAGE0_NP_PCOMP_EN (0x00000080) |
1505 | #define MPI_SCSIDEVPAGE0_NP_NEG_SYNC_PERIOD_MASK (0x0000FF00) | 1563 | #define MPI_SCSIDEVPAGE0_NP_NEG_SYNC_PERIOD_MASK (0x0000FF00) |
1506 | #define MPI_SCSIDEVPAGE0_NP_SHIFT_SYNC_PERIOD (8) | 1564 | #define MPI_SCSIDEVPAGE0_NP_SHIFT_SYNC_PERIOD (8) |
1507 | #define MPI_SCSIDEVPAGE0_NP_NEG_SYNC_OFFSET_MASK (0x00FF0000) | 1565 | #define MPI_SCSIDEVPAGE0_NP_NEG_SYNC_OFFSET_MASK (0x00FF0000) |
1508 | #define MPI_SCSIDEVPAGE0_NP_SHIFT_SYNC_OFFSET (16) | 1566 | #define MPI_SCSIDEVPAGE0_NP_SHIFT_SYNC_OFFSET (16) |
1509 | #define MPI_SCSIDEVPAGE0_NP_IDP (0x08000000) | 1567 | #define MPI_SCSIDEVPAGE0_NP_IDP (0x08000000) |
1510 | #define MPI_SCSIDEVPAGE0_NP_WIDE (0x20000000) | 1568 | #define MPI_SCSIDEVPAGE0_NP_WIDE (0x20000000) |
1511 | #define MPI_SCSIDEVPAGE0_NP_AIP (0x80000000) | 1569 | #define MPI_SCSIDEVPAGE0_NP_AIP (0x80000000) |
1512 | 1570 | ||
1513 | #define MPI_SCSIDEVPAGE0_INFO_PARAMS_NEGOTIATED (0x00000001) | 1571 | #define MPI_SCSIDEVPAGE0_INFO_PARAMS_NEGOTIATED (0x00000001) |
1514 | #define MPI_SCSIDEVPAGE0_INFO_SDTR_REJECTED (0x00000002) | 1572 | #define MPI_SCSIDEVPAGE0_INFO_SDTR_REJECTED (0x00000002) |
1515 | #define MPI_SCSIDEVPAGE0_INFO_WDTR_REJECTED (0x00000004) | 1573 | #define MPI_SCSIDEVPAGE0_INFO_WDTR_REJECTED (0x00000004) |
1516 | #define MPI_SCSIDEVPAGE0_INFO_PPR_REJECTED (0x00000008) | 1574 | #define MPI_SCSIDEVPAGE0_INFO_PPR_REJECTED (0x00000008) |
1517 | 1575 | ||
1518 | 1576 | ||
1519 | typedef struct _CONFIG_PAGE_SCSI_DEVICE_1 | 1577 | typedef struct _CONFIG_PAGE_SCSI_DEVICE_1 |
1520 | { | 1578 | { |
1521 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1579 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1522 | U32 RequestedParameters; /* 04h */ | 1580 | U32 RequestedParameters; /* 04h */ |
1523 | U32 Reserved; /* 08h */ | 1581 | U32 Reserved; /* 08h */ |
1524 | U32 Configuration; /* 0Ch */ | 1582 | U32 Configuration; /* 0Ch */ |
1525 | } CONFIG_PAGE_SCSI_DEVICE_1, MPI_POINTER PTR_CONFIG_PAGE_SCSI_DEVICE_1, | 1583 | } CONFIG_PAGE_SCSI_DEVICE_1, MPI_POINTER PTR_CONFIG_PAGE_SCSI_DEVICE_1, |
1526 | SCSIDevicePage1_t, MPI_POINTER pSCSIDevicePage1_t; | 1584 | SCSIDevicePage1_t, MPI_POINTER pSCSIDevicePage1_t; |
1527 | 1585 | ||
1528 | #define MPI_SCSIDEVPAGE1_PAGEVERSION (0x05) | 1586 | #define MPI_SCSIDEVPAGE1_PAGEVERSION (0x05) |
1529 | 1587 | ||
1530 | #define MPI_SCSIDEVPAGE1_RP_IU (0x00000001) | 1588 | #define MPI_SCSIDEVPAGE1_RP_IU (0x00000001) |
1531 | #define MPI_SCSIDEVPAGE1_RP_DT (0x00000002) | 1589 | #define MPI_SCSIDEVPAGE1_RP_DT (0x00000002) |
1532 | #define MPI_SCSIDEVPAGE1_RP_QAS (0x00000004) | 1590 | #define MPI_SCSIDEVPAGE1_RP_QAS (0x00000004) |
1533 | #define MPI_SCSIDEVPAGE1_RP_HOLD_MCS (0x00000008) | 1591 | #define MPI_SCSIDEVPAGE1_RP_HOLD_MCS (0x00000008) |
1534 | #define MPI_SCSIDEVPAGE1_RP_WR_FLOW (0x00000010) | 1592 | #define MPI_SCSIDEVPAGE1_RP_WR_FLOW (0x00000010) |
1535 | #define MPI_SCSIDEVPAGE1_RP_RD_STRM (0x00000020) | 1593 | #define MPI_SCSIDEVPAGE1_RP_RD_STRM (0x00000020) |
1536 | #define MPI_SCSIDEVPAGE1_RP_RTI (0x00000040) | 1594 | #define MPI_SCSIDEVPAGE1_RP_RTI (0x00000040) |
1537 | #define MPI_SCSIDEVPAGE1_RP_PCOMP_EN (0x00000080) | 1595 | #define MPI_SCSIDEVPAGE1_RP_PCOMP_EN (0x00000080) |
1538 | #define MPI_SCSIDEVPAGE1_RP_MIN_SYNC_PERIOD_MASK (0x0000FF00) | 1596 | #define MPI_SCSIDEVPAGE1_RP_MIN_SYNC_PERIOD_MASK (0x0000FF00) |
1539 | #define MPI_SCSIDEVPAGE1_RP_SHIFT_MIN_SYNC_PERIOD (8) | 1597 | #define MPI_SCSIDEVPAGE1_RP_SHIFT_MIN_SYNC_PERIOD (8) |
1540 | #define MPI_SCSIDEVPAGE1_RP_MAX_SYNC_OFFSET_MASK (0x00FF0000) | 1598 | #define MPI_SCSIDEVPAGE1_RP_MAX_SYNC_OFFSET_MASK (0x00FF0000) |
1541 | #define MPI_SCSIDEVPAGE1_RP_SHIFT_MAX_SYNC_OFFSET (16) | 1599 | #define MPI_SCSIDEVPAGE1_RP_SHIFT_MAX_SYNC_OFFSET (16) |
1542 | #define MPI_SCSIDEVPAGE1_RP_IDP (0x08000000) | 1600 | #define MPI_SCSIDEVPAGE1_RP_IDP (0x08000000) |
1543 | #define MPI_SCSIDEVPAGE1_RP_WIDE (0x20000000) | 1601 | #define MPI_SCSIDEVPAGE1_RP_WIDE (0x20000000) |
1544 | #define MPI_SCSIDEVPAGE1_RP_AIP (0x80000000) | 1602 | #define MPI_SCSIDEVPAGE1_RP_AIP (0x80000000) |
1545 | 1603 | ||
1546 | #define MPI_SCSIDEVPAGE1_CONF_WDTR_DISALLOWED (0x00000002) | 1604 | #define MPI_SCSIDEVPAGE1_CONF_WDTR_DISALLOWED (0x00000002) |
1547 | #define MPI_SCSIDEVPAGE1_CONF_SDTR_DISALLOWED (0x00000004) | 1605 | #define MPI_SCSIDEVPAGE1_CONF_SDTR_DISALLOWED (0x00000004) |
1548 | #define MPI_SCSIDEVPAGE1_CONF_EXTENDED_PARAMS_ENABLE (0x00000008) | 1606 | #define MPI_SCSIDEVPAGE1_CONF_EXTENDED_PARAMS_ENABLE (0x00000008) |
1549 | #define MPI_SCSIDEVPAGE1_CONF_FORCE_PPR_MSG (0x00000010) | 1607 | #define MPI_SCSIDEVPAGE1_CONF_FORCE_PPR_MSG (0x00000010) |
1550 | 1608 | ||
1551 | 1609 | ||
1552 | typedef struct _CONFIG_PAGE_SCSI_DEVICE_2 | 1610 | typedef struct _CONFIG_PAGE_SCSI_DEVICE_2 |
1553 | { | 1611 | { |
1554 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1612 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1555 | U32 DomainValidation; /* 04h */ | 1613 | U32 DomainValidation; /* 04h */ |
1556 | U32 ParityPipeSelect; /* 08h */ | 1614 | U32 ParityPipeSelect; /* 08h */ |
1557 | U32 DataPipeSelect; /* 0Ch */ | 1615 | U32 DataPipeSelect; /* 0Ch */ |
1558 | } CONFIG_PAGE_SCSI_DEVICE_2, MPI_POINTER PTR_CONFIG_PAGE_SCSI_DEVICE_2, | 1616 | } CONFIG_PAGE_SCSI_DEVICE_2, MPI_POINTER PTR_CONFIG_PAGE_SCSI_DEVICE_2, |
1559 | SCSIDevicePage2_t, MPI_POINTER pSCSIDevicePage2_t; | 1617 | SCSIDevicePage2_t, MPI_POINTER pSCSIDevicePage2_t; |
1560 | 1618 | ||
1561 | #define MPI_SCSIDEVPAGE2_PAGEVERSION (0x01) | 1619 | #define MPI_SCSIDEVPAGE2_PAGEVERSION (0x01) |
1562 | 1620 | ||
1563 | #define MPI_SCSIDEVPAGE2_DV_ISI_ENABLE (0x00000010) | 1621 | #define MPI_SCSIDEVPAGE2_DV_ISI_ENABLE (0x00000010) |
1564 | #define MPI_SCSIDEVPAGE2_DV_SECONDARY_DRIVER_ENABLE (0x00000020) | 1622 | #define MPI_SCSIDEVPAGE2_DV_SECONDARY_DRIVER_ENABLE (0x00000020) |
1565 | #define MPI_SCSIDEVPAGE2_DV_SLEW_RATE_CTRL (0x00000380) | 1623 | #define MPI_SCSIDEVPAGE2_DV_SLEW_RATE_CTRL (0x00000380) |
1566 | #define MPI_SCSIDEVPAGE2_DV_PRIM_DRIVE_STR_CTRL (0x00001C00) | 1624 | #define MPI_SCSIDEVPAGE2_DV_PRIM_DRIVE_STR_CTRL (0x00001C00) |
1567 | #define MPI_SCSIDEVPAGE2_DV_SECOND_DRIVE_STR_CTRL (0x0000E000) | 1625 | #define MPI_SCSIDEVPAGE2_DV_SECOND_DRIVE_STR_CTRL (0x0000E000) |
1568 | #define MPI_SCSIDEVPAGE2_DV_XCLKH_ST (0x10000000) | 1626 | #define MPI_SCSIDEVPAGE2_DV_XCLKH_ST (0x10000000) |
1569 | #define MPI_SCSIDEVPAGE2_DV_XCLKS_ST (0x20000000) | 1627 | #define MPI_SCSIDEVPAGE2_DV_XCLKS_ST (0x20000000) |
1570 | #define MPI_SCSIDEVPAGE2_DV_XCLKH_DT (0x40000000) | 1628 | #define MPI_SCSIDEVPAGE2_DV_XCLKH_DT (0x40000000) |
1571 | #define MPI_SCSIDEVPAGE2_DV_XCLKS_DT (0x80000000) | 1629 | #define MPI_SCSIDEVPAGE2_DV_XCLKS_DT (0x80000000) |
1572 | 1630 | ||
1573 | #define MPI_SCSIDEVPAGE2_PPS_PPS_MASK (0x00000003) | 1631 | #define MPI_SCSIDEVPAGE2_PPS_PPS_MASK (0x00000003) |
1574 | 1632 | ||
1575 | #define MPI_SCSIDEVPAGE2_DPS_BIT_0_PL_SELECT_MASK (0x00000003) | 1633 | #define MPI_SCSIDEVPAGE2_DPS_BIT_0_PL_SELECT_MASK (0x00000003) |
1576 | #define MPI_SCSIDEVPAGE2_DPS_BIT_1_PL_SELECT_MASK (0x0000000C) | 1634 | #define MPI_SCSIDEVPAGE2_DPS_BIT_1_PL_SELECT_MASK (0x0000000C) |
1577 | #define MPI_SCSIDEVPAGE2_DPS_BIT_2_PL_SELECT_MASK (0x00000030) | 1635 | #define MPI_SCSIDEVPAGE2_DPS_BIT_2_PL_SELECT_MASK (0x00000030) |
1578 | #define MPI_SCSIDEVPAGE2_DPS_BIT_3_PL_SELECT_MASK (0x000000C0) | 1636 | #define MPI_SCSIDEVPAGE2_DPS_BIT_3_PL_SELECT_MASK (0x000000C0) |
1579 | #define MPI_SCSIDEVPAGE2_DPS_BIT_4_PL_SELECT_MASK (0x00000300) | 1637 | #define MPI_SCSIDEVPAGE2_DPS_BIT_4_PL_SELECT_MASK (0x00000300) |
1580 | #define MPI_SCSIDEVPAGE2_DPS_BIT_5_PL_SELECT_MASK (0x00000C00) | 1638 | #define MPI_SCSIDEVPAGE2_DPS_BIT_5_PL_SELECT_MASK (0x00000C00) |
1581 | #define MPI_SCSIDEVPAGE2_DPS_BIT_6_PL_SELECT_MASK (0x00003000) | 1639 | #define MPI_SCSIDEVPAGE2_DPS_BIT_6_PL_SELECT_MASK (0x00003000) |
1582 | #define MPI_SCSIDEVPAGE2_DPS_BIT_7_PL_SELECT_MASK (0x0000C000) | 1640 | #define MPI_SCSIDEVPAGE2_DPS_BIT_7_PL_SELECT_MASK (0x0000C000) |
1583 | #define MPI_SCSIDEVPAGE2_DPS_BIT_8_PL_SELECT_MASK (0x00030000) | 1641 | #define MPI_SCSIDEVPAGE2_DPS_BIT_8_PL_SELECT_MASK (0x00030000) |
1584 | #define MPI_SCSIDEVPAGE2_DPS_BIT_9_PL_SELECT_MASK (0x000C0000) | 1642 | #define MPI_SCSIDEVPAGE2_DPS_BIT_9_PL_SELECT_MASK (0x000C0000) |
1585 | #define MPI_SCSIDEVPAGE2_DPS_BIT_10_PL_SELECT_MASK (0x00300000) | 1643 | #define MPI_SCSIDEVPAGE2_DPS_BIT_10_PL_SELECT_MASK (0x00300000) |
1586 | #define MPI_SCSIDEVPAGE2_DPS_BIT_11_PL_SELECT_MASK (0x00C00000) | 1644 | #define MPI_SCSIDEVPAGE2_DPS_BIT_11_PL_SELECT_MASK (0x00C00000) |
1587 | #define MPI_SCSIDEVPAGE2_DPS_BIT_12_PL_SELECT_MASK (0x03000000) | 1645 | #define MPI_SCSIDEVPAGE2_DPS_BIT_12_PL_SELECT_MASK (0x03000000) |
1588 | #define MPI_SCSIDEVPAGE2_DPS_BIT_13_PL_SELECT_MASK (0x0C000000) | 1646 | #define MPI_SCSIDEVPAGE2_DPS_BIT_13_PL_SELECT_MASK (0x0C000000) |
1589 | #define MPI_SCSIDEVPAGE2_DPS_BIT_14_PL_SELECT_MASK (0x30000000) | 1647 | #define MPI_SCSIDEVPAGE2_DPS_BIT_14_PL_SELECT_MASK (0x30000000) |
1590 | #define MPI_SCSIDEVPAGE2_DPS_BIT_15_PL_SELECT_MASK (0xC0000000) | 1648 | #define MPI_SCSIDEVPAGE2_DPS_BIT_15_PL_SELECT_MASK (0xC0000000) |
1591 | 1649 | ||
1592 | 1650 | ||
1593 | typedef struct _CONFIG_PAGE_SCSI_DEVICE_3 | 1651 | typedef struct _CONFIG_PAGE_SCSI_DEVICE_3 |
1594 | { | 1652 | { |
1595 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1653 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1596 | U16 MsgRejectCount; /* 04h */ | 1654 | U16 MsgRejectCount; /* 04h */ |
1597 | U16 PhaseErrorCount; /* 06h */ | 1655 | U16 PhaseErrorCount; /* 06h */ |
1598 | U16 ParityErrorCount; /* 08h */ | 1656 | U16 ParityErrorCount; /* 08h */ |
1599 | U16 Reserved; /* 0Ah */ | 1657 | U16 Reserved; /* 0Ah */ |
1600 | } CONFIG_PAGE_SCSI_DEVICE_3, MPI_POINTER PTR_CONFIG_PAGE_SCSI_DEVICE_3, | 1658 | } CONFIG_PAGE_SCSI_DEVICE_3, MPI_POINTER PTR_CONFIG_PAGE_SCSI_DEVICE_3, |
1601 | SCSIDevicePage3_t, MPI_POINTER pSCSIDevicePage3_t; | 1659 | SCSIDevicePage3_t, MPI_POINTER pSCSIDevicePage3_t; |
1602 | 1660 | ||
1603 | #define MPI_SCSIDEVPAGE3_PAGEVERSION (0x00) | 1661 | #define MPI_SCSIDEVPAGE3_PAGEVERSION (0x00) |
1604 | 1662 | ||
1605 | #define MPI_SCSIDEVPAGE3_MAX_COUNTER (0xFFFE) | 1663 | #define MPI_SCSIDEVPAGE3_MAX_COUNTER (0xFFFE) |
1606 | #define MPI_SCSIDEVPAGE3_UNSUPPORTED_COUNTER (0xFFFF) | 1664 | #define MPI_SCSIDEVPAGE3_UNSUPPORTED_COUNTER (0xFFFF) |
1607 | 1665 | ||
1608 | 1666 | ||
1609 | /**************************************************************************** | 1667 | /**************************************************************************** |
1610 | * FC Port Config Pages | 1668 | * FC Port Config Pages |
1611 | ****************************************************************************/ | 1669 | ****************************************************************************/ |
1612 | 1670 | ||
1613 | typedef struct _CONFIG_PAGE_FC_PORT_0 | 1671 | typedef struct _CONFIG_PAGE_FC_PORT_0 |
1614 | { | 1672 | { |
1615 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1673 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1616 | U32 Flags; /* 04h */ | 1674 | U32 Flags; /* 04h */ |
1617 | U8 MPIPortNumber; /* 08h */ | 1675 | U8 MPIPortNumber; /* 08h */ |
1618 | U8 LinkType; /* 09h */ | 1676 | U8 LinkType; /* 09h */ |
1619 | U8 PortState; /* 0Ah */ | 1677 | U8 PortState; /* 0Ah */ |
1620 | U8 Reserved; /* 0Bh */ | 1678 | U8 Reserved; /* 0Bh */ |
1621 | U32 PortIdentifier; /* 0Ch */ | 1679 | U32 PortIdentifier; /* 0Ch */ |
1622 | U64 WWNN; /* 10h */ | 1680 | U64 WWNN; /* 10h */ |
1623 | U64 WWPN; /* 18h */ | 1681 | U64 WWPN; /* 18h */ |
1624 | U32 SupportedServiceClass; /* 20h */ | 1682 | U32 SupportedServiceClass; /* 20h */ |
1625 | U32 SupportedSpeeds; /* 24h */ | 1683 | U32 SupportedSpeeds; /* 24h */ |
1626 | U32 CurrentSpeed; /* 28h */ | 1684 | U32 CurrentSpeed; /* 28h */ |
1627 | U32 MaxFrameSize; /* 2Ch */ | 1685 | U32 MaxFrameSize; /* 2Ch */ |
1628 | U64 FabricWWNN; /* 30h */ | 1686 | U64 FabricWWNN; /* 30h */ |
1629 | U64 FabricWWPN; /* 38h */ | 1687 | U64 FabricWWPN; /* 38h */ |
1630 | U32 DiscoveredPortsCount; /* 40h */ | 1688 | U32 DiscoveredPortsCount; /* 40h */ |
1631 | U32 MaxInitiators; /* 44h */ | 1689 | U32 MaxInitiators; /* 44h */ |
1632 | U8 MaxAliasesSupported; /* 48h */ | 1690 | U8 MaxAliasesSupported; /* 48h */ |
1633 | U8 MaxHardAliasesSupported; /* 49h */ | 1691 | U8 MaxHardAliasesSupported; /* 49h */ |
1634 | U8 NumCurrentAliases; /* 4Ah */ | 1692 | U8 NumCurrentAliases; /* 4Ah */ |
1635 | U8 Reserved1; /* 4Bh */ | 1693 | U8 Reserved1; /* 4Bh */ |
1636 | } CONFIG_PAGE_FC_PORT_0, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_0, | 1694 | } CONFIG_PAGE_FC_PORT_0, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_0, |
1637 | FCPortPage0_t, MPI_POINTER pFCPortPage0_t; | 1695 | FCPortPage0_t, MPI_POINTER pFCPortPage0_t; |
1638 | 1696 | ||
1639 | #define MPI_FCPORTPAGE0_PAGEVERSION (0x02) | 1697 | #define MPI_FCPORTPAGE0_PAGEVERSION (0x02) |
1640 | 1698 | ||
1641 | #define MPI_FCPORTPAGE0_FLAGS_PROT_MASK (0x0000000F) | 1699 | #define MPI_FCPORTPAGE0_FLAGS_PROT_MASK (0x0000000F) |
1642 | #define MPI_FCPORTPAGE0_FLAGS_PROT_FCP_INIT (MPI_PORTFACTS_PROTOCOL_INITIATOR) | 1700 | #define MPI_FCPORTPAGE0_FLAGS_PROT_FCP_INIT (MPI_PORTFACTS_PROTOCOL_INITIATOR) |
1643 | #define MPI_FCPORTPAGE0_FLAGS_PROT_FCP_TARG (MPI_PORTFACTS_PROTOCOL_TARGET) | 1701 | #define MPI_FCPORTPAGE0_FLAGS_PROT_FCP_TARG (MPI_PORTFACTS_PROTOCOL_TARGET) |
1644 | #define MPI_FCPORTPAGE0_FLAGS_PROT_LAN (MPI_PORTFACTS_PROTOCOL_LAN) | 1702 | #define MPI_FCPORTPAGE0_FLAGS_PROT_LAN (MPI_PORTFACTS_PROTOCOL_LAN) |
1645 | #define MPI_FCPORTPAGE0_FLAGS_PROT_LOGBUSADDR (MPI_PORTFACTS_PROTOCOL_LOGBUSADDR) | 1703 | #define MPI_FCPORTPAGE0_FLAGS_PROT_LOGBUSADDR (MPI_PORTFACTS_PROTOCOL_LOGBUSADDR) |
1646 | 1704 | ||
1647 | #define MPI_FCPORTPAGE0_FLAGS_ALIAS_ALPA_SUPPORTED (0x00000010) | 1705 | #define MPI_FCPORTPAGE0_FLAGS_ALIAS_ALPA_SUPPORTED (0x00000010) |
1648 | #define MPI_FCPORTPAGE0_FLAGS_ALIAS_WWN_SUPPORTED (0x00000020) | 1706 | #define MPI_FCPORTPAGE0_FLAGS_ALIAS_WWN_SUPPORTED (0x00000020) |
1649 | #define MPI_FCPORTPAGE0_FLAGS_FABRIC_WWN_VALID (0x00000040) | 1707 | #define MPI_FCPORTPAGE0_FLAGS_FABRIC_WWN_VALID (0x00000040) |
1650 | 1708 | ||
1651 | #define MPI_FCPORTPAGE0_FLAGS_ATTACH_TYPE_MASK (0x00000F00) | 1709 | #define MPI_FCPORTPAGE0_FLAGS_ATTACH_TYPE_MASK (0x00000F00) |
1652 | #define MPI_FCPORTPAGE0_FLAGS_ATTACH_NO_INIT (0x00000000) | 1710 | #define MPI_FCPORTPAGE0_FLAGS_ATTACH_NO_INIT (0x00000000) |
1653 | #define MPI_FCPORTPAGE0_FLAGS_ATTACH_POINT_TO_POINT (0x00000100) | 1711 | #define MPI_FCPORTPAGE0_FLAGS_ATTACH_POINT_TO_POINT (0x00000100) |
1654 | #define MPI_FCPORTPAGE0_FLAGS_ATTACH_PRIVATE_LOOP (0x00000200) | 1712 | #define MPI_FCPORTPAGE0_FLAGS_ATTACH_PRIVATE_LOOP (0x00000200) |
1655 | #define MPI_FCPORTPAGE0_FLAGS_ATTACH_FABRIC_DIRECT (0x00000400) | 1713 | #define MPI_FCPORTPAGE0_FLAGS_ATTACH_FABRIC_DIRECT (0x00000400) |
1656 | #define MPI_FCPORTPAGE0_FLAGS_ATTACH_PUBLIC_LOOP (0x00000800) | 1714 | #define MPI_FCPORTPAGE0_FLAGS_ATTACH_PUBLIC_LOOP (0x00000800) |
1657 | 1715 | ||
1658 | #define MPI_FCPORTPAGE0_LTYPE_RESERVED (0x00) | 1716 | #define MPI_FCPORTPAGE0_LTYPE_RESERVED (0x00) |
1659 | #define MPI_FCPORTPAGE0_LTYPE_OTHER (0x01) | 1717 | #define MPI_FCPORTPAGE0_LTYPE_OTHER (0x01) |
1660 | #define MPI_FCPORTPAGE0_LTYPE_UNKNOWN (0x02) | 1718 | #define MPI_FCPORTPAGE0_LTYPE_UNKNOWN (0x02) |
1661 | #define MPI_FCPORTPAGE0_LTYPE_COPPER (0x03) | 1719 | #define MPI_FCPORTPAGE0_LTYPE_COPPER (0x03) |
1662 | #define MPI_FCPORTPAGE0_LTYPE_SINGLE_1300 (0x04) | 1720 | #define MPI_FCPORTPAGE0_LTYPE_SINGLE_1300 (0x04) |
1663 | #define MPI_FCPORTPAGE0_LTYPE_SINGLE_1500 (0x05) | 1721 | #define MPI_FCPORTPAGE0_LTYPE_SINGLE_1500 (0x05) |
1664 | #define MPI_FCPORTPAGE0_LTYPE_50_LASER_MULTI (0x06) | 1722 | #define MPI_FCPORTPAGE0_LTYPE_50_LASER_MULTI (0x06) |
1665 | #define MPI_FCPORTPAGE0_LTYPE_50_LED_MULTI (0x07) | 1723 | #define MPI_FCPORTPAGE0_LTYPE_50_LED_MULTI (0x07) |
1666 | #define MPI_FCPORTPAGE0_LTYPE_62_LASER_MULTI (0x08) | 1724 | #define MPI_FCPORTPAGE0_LTYPE_62_LASER_MULTI (0x08) |
1667 | #define MPI_FCPORTPAGE0_LTYPE_62_LED_MULTI (0x09) | 1725 | #define MPI_FCPORTPAGE0_LTYPE_62_LED_MULTI (0x09) |
1668 | #define MPI_FCPORTPAGE0_LTYPE_MULTI_LONG_WAVE (0x0A) | 1726 | #define MPI_FCPORTPAGE0_LTYPE_MULTI_LONG_WAVE (0x0A) |
1669 | #define MPI_FCPORTPAGE0_LTYPE_MULTI_SHORT_WAVE (0x0B) | 1727 | #define MPI_FCPORTPAGE0_LTYPE_MULTI_SHORT_WAVE (0x0B) |
1670 | #define MPI_FCPORTPAGE0_LTYPE_LASER_SHORT_WAVE (0x0C) | 1728 | #define MPI_FCPORTPAGE0_LTYPE_LASER_SHORT_WAVE (0x0C) |
1671 | #define MPI_FCPORTPAGE0_LTYPE_LED_SHORT_WAVE (0x0D) | 1729 | #define MPI_FCPORTPAGE0_LTYPE_LED_SHORT_WAVE (0x0D) |
1672 | #define MPI_FCPORTPAGE0_LTYPE_1300_LONG_WAVE (0x0E) | 1730 | #define MPI_FCPORTPAGE0_LTYPE_1300_LONG_WAVE (0x0E) |
1673 | #define MPI_FCPORTPAGE0_LTYPE_1500_LONG_WAVE (0x0F) | 1731 | #define MPI_FCPORTPAGE0_LTYPE_1500_LONG_WAVE (0x0F) |
1674 | 1732 | ||
1675 | #define MPI_FCPORTPAGE0_PORTSTATE_UNKNOWN (0x01) /*(SNIA)HBA_PORTSTATE_UNKNOWN 1 Unknown */ | 1733 | #define MPI_FCPORTPAGE0_PORTSTATE_UNKNOWN (0x01) /*(SNIA)HBA_PORTSTATE_UNKNOWN 1 Unknown */ |
1676 | #define MPI_FCPORTPAGE0_PORTSTATE_ONLINE (0x02) /*(SNIA)HBA_PORTSTATE_ONLINE 2 Operational */ | 1734 | #define MPI_FCPORTPAGE0_PORTSTATE_ONLINE (0x02) /*(SNIA)HBA_PORTSTATE_ONLINE 2 Operational */ |
1677 | #define MPI_FCPORTPAGE0_PORTSTATE_OFFLINE (0x03) /*(SNIA)HBA_PORTSTATE_OFFLINE 3 User Offline */ | 1735 | #define MPI_FCPORTPAGE0_PORTSTATE_OFFLINE (0x03) /*(SNIA)HBA_PORTSTATE_OFFLINE 3 User Offline */ |
1678 | #define MPI_FCPORTPAGE0_PORTSTATE_BYPASSED (0x04) /*(SNIA)HBA_PORTSTATE_BYPASSED 4 Bypassed */ | 1736 | #define MPI_FCPORTPAGE0_PORTSTATE_BYPASSED (0x04) /*(SNIA)HBA_PORTSTATE_BYPASSED 4 Bypassed */ |
1679 | #define MPI_FCPORTPAGE0_PORTSTATE_DIAGNOST (0x05) /*(SNIA)HBA_PORTSTATE_DIAGNOSTICS 5 In diagnostics mode */ | 1737 | #define MPI_FCPORTPAGE0_PORTSTATE_DIAGNOST (0x05) /*(SNIA)HBA_PORTSTATE_DIAGNOSTICS 5 In diagnostics mode */ |
1680 | #define MPI_FCPORTPAGE0_PORTSTATE_LINKDOWN (0x06) /*(SNIA)HBA_PORTSTATE_LINKDOWN 6 Link Down */ | 1738 | #define MPI_FCPORTPAGE0_PORTSTATE_LINKDOWN (0x06) /*(SNIA)HBA_PORTSTATE_LINKDOWN 6 Link Down */ |
1681 | #define MPI_FCPORTPAGE0_PORTSTATE_ERROR (0x07) /*(SNIA)HBA_PORTSTATE_ERROR 7 Port Error */ | 1739 | #define MPI_FCPORTPAGE0_PORTSTATE_ERROR (0x07) /*(SNIA)HBA_PORTSTATE_ERROR 7 Port Error */ |
1682 | #define MPI_FCPORTPAGE0_PORTSTATE_LOOPBACK (0x08) /*(SNIA)HBA_PORTSTATE_LOOPBACK 8 Loopback */ | 1740 | #define MPI_FCPORTPAGE0_PORTSTATE_LOOPBACK (0x08) /*(SNIA)HBA_PORTSTATE_LOOPBACK 8 Loopback */ |
1683 | 1741 | ||
1684 | #define MPI_FCPORTPAGE0_SUPPORT_CLASS_1 (0x00000001) | 1742 | #define MPI_FCPORTPAGE0_SUPPORT_CLASS_1 (0x00000001) |
1685 | #define MPI_FCPORTPAGE0_SUPPORT_CLASS_2 (0x00000002) | 1743 | #define MPI_FCPORTPAGE0_SUPPORT_CLASS_2 (0x00000002) |
1686 | #define MPI_FCPORTPAGE0_SUPPORT_CLASS_3 (0x00000004) | 1744 | #define MPI_FCPORTPAGE0_SUPPORT_CLASS_3 (0x00000004) |
1687 | 1745 | ||
1688 | #define MPI_FCPORTPAGE0_SUPPORT_SPEED_UKNOWN (0x00000000) /* (SNIA)HBA_PORTSPEED_UNKNOWN 0 Unknown - transceiver incapable of reporting */ | 1746 | #define MPI_FCPORTPAGE0_SUPPORT_SPEED_UKNOWN (0x00000000) /* (SNIA)HBA_PORTSPEED_UNKNOWN 0 Unknown - transceiver incapable of reporting */ |
1689 | #define MPI_FCPORTPAGE0_SUPPORT_1GBIT_SPEED (0x00000001) /* (SNIA)HBA_PORTSPEED_1GBIT 1 1 GBit/sec */ | 1747 | #define MPI_FCPORTPAGE0_SUPPORT_1GBIT_SPEED (0x00000001) /* (SNIA)HBA_PORTSPEED_1GBIT 1 1 GBit/sec */ |
1690 | #define MPI_FCPORTPAGE0_SUPPORT_2GBIT_SPEED (0x00000002) /* (SNIA)HBA_PORTSPEED_2GBIT 2 2 GBit/sec */ | 1748 | #define MPI_FCPORTPAGE0_SUPPORT_2GBIT_SPEED (0x00000002) /* (SNIA)HBA_PORTSPEED_2GBIT 2 2 GBit/sec */ |
1691 | #define MPI_FCPORTPAGE0_SUPPORT_10GBIT_SPEED (0x00000004) /* (SNIA)HBA_PORTSPEED_10GBIT 4 10 GBit/sec */ | 1749 | #define MPI_FCPORTPAGE0_SUPPORT_10GBIT_SPEED (0x00000004) /* (SNIA)HBA_PORTSPEED_10GBIT 4 10 GBit/sec */ |
1692 | #define MPI_FCPORTPAGE0_SUPPORT_4GBIT_SPEED (0x00000008) /* (SNIA)HBA_PORTSPEED_4GBIT 8 4 GBit/sec */ | 1750 | #define MPI_FCPORTPAGE0_SUPPORT_4GBIT_SPEED (0x00000008) /* (SNIA)HBA_PORTSPEED_4GBIT 8 4 GBit/sec */ |
1693 | 1751 | ||
1694 | #define MPI_FCPORTPAGE0_CURRENT_SPEED_UKNOWN MPI_FCPORTPAGE0_SUPPORT_SPEED_UKNOWN | 1752 | #define MPI_FCPORTPAGE0_CURRENT_SPEED_UKNOWN MPI_FCPORTPAGE0_SUPPORT_SPEED_UKNOWN |
1695 | #define MPI_FCPORTPAGE0_CURRENT_SPEED_1GBIT MPI_FCPORTPAGE0_SUPPORT_1GBIT_SPEED | 1753 | #define MPI_FCPORTPAGE0_CURRENT_SPEED_1GBIT MPI_FCPORTPAGE0_SUPPORT_1GBIT_SPEED |
1696 | #define MPI_FCPORTPAGE0_CURRENT_SPEED_2GBIT MPI_FCPORTPAGE0_SUPPORT_2GBIT_SPEED | 1754 | #define MPI_FCPORTPAGE0_CURRENT_SPEED_2GBIT MPI_FCPORTPAGE0_SUPPORT_2GBIT_SPEED |
1697 | #define MPI_FCPORTPAGE0_CURRENT_SPEED_10GBIT MPI_FCPORTPAGE0_SUPPORT_10GBIT_SPEED | 1755 | #define MPI_FCPORTPAGE0_CURRENT_SPEED_10GBIT MPI_FCPORTPAGE0_SUPPORT_10GBIT_SPEED |
1698 | #define MPI_FCPORTPAGE0_CURRENT_SPEED_4GBIT MPI_FCPORTPAGE0_SUPPORT_4GBIT_SPEED | 1756 | #define MPI_FCPORTPAGE0_CURRENT_SPEED_4GBIT MPI_FCPORTPAGE0_SUPPORT_4GBIT_SPEED |
1699 | #define MPI_FCPORTPAGE0_CURRENT_SPEED_NOT_NEGOTIATED (0x00008000) /* (SNIA)HBA_PORTSPEED_NOT_NEGOTIATED (1<<15) Speed not established */ | 1757 | #define MPI_FCPORTPAGE0_CURRENT_SPEED_NOT_NEGOTIATED (0x00008000) /* (SNIA)HBA_PORTSPEED_NOT_NEGOTIATED (1<<15) Speed not established */ |
1700 | 1758 | ||
1701 | 1759 | ||
1702 | typedef struct _CONFIG_PAGE_FC_PORT_1 | 1760 | typedef struct _CONFIG_PAGE_FC_PORT_1 |
1703 | { | 1761 | { |
1704 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1762 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1705 | U32 Flags; /* 04h */ | 1763 | U32 Flags; /* 04h */ |
1706 | U64 NoSEEPROMWWNN; /* 08h */ | 1764 | U64 NoSEEPROMWWNN; /* 08h */ |
1707 | U64 NoSEEPROMWWPN; /* 10h */ | 1765 | U64 NoSEEPROMWWPN; /* 10h */ |
1708 | U8 HardALPA; /* 18h */ | 1766 | U8 HardALPA; /* 18h */ |
1709 | U8 LinkConfig; /* 19h */ | 1767 | U8 LinkConfig; /* 19h */ |
1710 | U8 TopologyConfig; /* 1Ah */ | 1768 | U8 TopologyConfig; /* 1Ah */ |
1711 | U8 AltConnector; /* 1Bh */ | 1769 | U8 AltConnector; /* 1Bh */ |
1712 | U8 NumRequestedAliases; /* 1Ch */ | 1770 | U8 NumRequestedAliases; /* 1Ch */ |
1713 | U8 RR_TOV; /* 1Dh */ | 1771 | U8 RR_TOV; /* 1Dh */ |
1714 | U8 InitiatorDeviceTimeout; /* 1Eh */ | 1772 | U8 InitiatorDeviceTimeout; /* 1Eh */ |
1715 | U8 InitiatorIoPendTimeout; /* 1Fh */ | 1773 | U8 InitiatorIoPendTimeout; /* 1Fh */ |
1716 | } CONFIG_PAGE_FC_PORT_1, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_1, | 1774 | } CONFIG_PAGE_FC_PORT_1, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_1, |
1717 | FCPortPage1_t, MPI_POINTER pFCPortPage1_t; | 1775 | FCPortPage1_t, MPI_POINTER pFCPortPage1_t; |
1718 | 1776 | ||
1719 | #define MPI_FCPORTPAGE1_PAGEVERSION (0x06) | 1777 | #define MPI_FCPORTPAGE1_PAGEVERSION (0x06) |
1720 | 1778 | ||
1721 | #define MPI_FCPORTPAGE1_FLAGS_EXT_FCP_STATUS_EN (0x08000000) | 1779 | #define MPI_FCPORTPAGE1_FLAGS_EXT_FCP_STATUS_EN (0x08000000) |
1722 | #define MPI_FCPORTPAGE1_FLAGS_IMMEDIATE_ERROR_REPLY (0x04000000) | 1780 | #define MPI_FCPORTPAGE1_FLAGS_IMMEDIATE_ERROR_REPLY (0x04000000) |
1723 | #define MPI_FCPORTPAGE1_FLAGS_FORCE_USE_NOSEEPROM_WWNS (0x02000000) | 1781 | #define MPI_FCPORTPAGE1_FLAGS_FORCE_USE_NOSEEPROM_WWNS (0x02000000) |
1724 | #define MPI_FCPORTPAGE1_FLAGS_VERBOSE_RESCAN_EVENTS (0x01000000) | 1782 | #define MPI_FCPORTPAGE1_FLAGS_VERBOSE_RESCAN_EVENTS (0x01000000) |
1725 | #define MPI_FCPORTPAGE1_FLAGS_TARGET_MODE_OXID (0x00800000) | 1783 | #define MPI_FCPORTPAGE1_FLAGS_TARGET_MODE_OXID (0x00800000) |
1726 | #define MPI_FCPORTPAGE1_FLAGS_PORT_OFFLINE (0x00400000) | 1784 | #define MPI_FCPORTPAGE1_FLAGS_PORT_OFFLINE (0x00400000) |
1727 | #define MPI_FCPORTPAGE1_FLAGS_SOFT_ALPA_FALLBACK (0x00200000) | 1785 | #define MPI_FCPORTPAGE1_FLAGS_SOFT_ALPA_FALLBACK (0x00200000) |
1728 | #define MPI_FCPORTPAGE1_FLAGS_TARGET_LARGE_CDB_ENABLE (0x00000080) | 1786 | #define MPI_FCPORTPAGE1_FLAGS_TARGET_LARGE_CDB_ENABLE (0x00000080) |
1729 | #define MPI_FCPORTPAGE1_FLAGS_MASK_RR_TOV_UNITS (0x00000070) | 1787 | #define MPI_FCPORTPAGE1_FLAGS_MASK_RR_TOV_UNITS (0x00000070) |
1730 | #define MPI_FCPORTPAGE1_FLAGS_SUPPRESS_PROT_REG (0x00000008) | 1788 | #define MPI_FCPORTPAGE1_FLAGS_SUPPRESS_PROT_REG (0x00000008) |
1731 | #define MPI_FCPORTPAGE1_FLAGS_PLOGI_ON_LOGO (0x00000004) | 1789 | #define MPI_FCPORTPAGE1_FLAGS_PLOGI_ON_LOGO (0x00000004) |
1732 | #define MPI_FCPORTPAGE1_FLAGS_MAINTAIN_LOGINS (0x00000002) | 1790 | #define MPI_FCPORTPAGE1_FLAGS_MAINTAIN_LOGINS (0x00000002) |
1733 | #define MPI_FCPORTPAGE1_FLAGS_SORT_BY_DID (0x00000001) | 1791 | #define MPI_FCPORTPAGE1_FLAGS_SORT_BY_DID (0x00000001) |
1734 | #define MPI_FCPORTPAGE1_FLAGS_SORT_BY_WWN (0x00000000) | 1792 | #define MPI_FCPORTPAGE1_FLAGS_SORT_BY_WWN (0x00000000) |
1735 | 1793 | ||
1736 | #define MPI_FCPORTPAGE1_FLAGS_PROT_MASK (0xF0000000) | 1794 | #define MPI_FCPORTPAGE1_FLAGS_PROT_MASK (0xF0000000) |
1737 | #define MPI_FCPORTPAGE1_FLAGS_PROT_SHIFT (28) | 1795 | #define MPI_FCPORTPAGE1_FLAGS_PROT_SHIFT (28) |
1738 | #define MPI_FCPORTPAGE1_FLAGS_PROT_FCP_INIT ((U32)MPI_PORTFACTS_PROTOCOL_INITIATOR << MPI_FCPORTPAGE1_FLAGS_PROT_SHIFT) | 1796 | #define MPI_FCPORTPAGE1_FLAGS_PROT_FCP_INIT ((U32)MPI_PORTFACTS_PROTOCOL_INITIATOR << MPI_FCPORTPAGE1_FLAGS_PROT_SHIFT) |
1739 | #define MPI_FCPORTPAGE1_FLAGS_PROT_FCP_TARG ((U32)MPI_PORTFACTS_PROTOCOL_TARGET << MPI_FCPORTPAGE1_FLAGS_PROT_SHIFT) | 1797 | #define MPI_FCPORTPAGE1_FLAGS_PROT_FCP_TARG ((U32)MPI_PORTFACTS_PROTOCOL_TARGET << MPI_FCPORTPAGE1_FLAGS_PROT_SHIFT) |
1740 | #define MPI_FCPORTPAGE1_FLAGS_PROT_LAN ((U32)MPI_PORTFACTS_PROTOCOL_LAN << MPI_FCPORTPAGE1_FLAGS_PROT_SHIFT) | 1798 | #define MPI_FCPORTPAGE1_FLAGS_PROT_LAN ((U32)MPI_PORTFACTS_PROTOCOL_LAN << MPI_FCPORTPAGE1_FLAGS_PROT_SHIFT) |
1741 | #define MPI_FCPORTPAGE1_FLAGS_PROT_LOGBUSADDR ((U32)MPI_PORTFACTS_PROTOCOL_LOGBUSADDR << MPI_FCPORTPAGE1_FLAGS_PROT_SHIFT) | 1799 | #define MPI_FCPORTPAGE1_FLAGS_PROT_LOGBUSADDR ((U32)MPI_PORTFACTS_PROTOCOL_LOGBUSADDR << MPI_FCPORTPAGE1_FLAGS_PROT_SHIFT) |
1742 | 1800 | ||
1743 | #define MPI_FCPORTPAGE1_FLAGS_NONE_RR_TOV_UNITS (0x00000000) | 1801 | #define MPI_FCPORTPAGE1_FLAGS_NONE_RR_TOV_UNITS (0x00000000) |
1744 | #define MPI_FCPORTPAGE1_FLAGS_THOUSANDTH_RR_TOV_UNITS (0x00000010) | 1802 | #define MPI_FCPORTPAGE1_FLAGS_THOUSANDTH_RR_TOV_UNITS (0x00000010) |
1745 | #define MPI_FCPORTPAGE1_FLAGS_TENTH_RR_TOV_UNITS (0x00000030) | 1803 | #define MPI_FCPORTPAGE1_FLAGS_TENTH_RR_TOV_UNITS (0x00000030) |
1746 | #define MPI_FCPORTPAGE1_FLAGS_TEN_RR_TOV_UNITS (0x00000050) | 1804 | #define MPI_FCPORTPAGE1_FLAGS_TEN_RR_TOV_UNITS (0x00000050) |
1747 | 1805 | ||
1748 | #define MPI_FCPORTPAGE1_HARD_ALPA_NOT_USED (0xFF) | 1806 | #define MPI_FCPORTPAGE1_HARD_ALPA_NOT_USED (0xFF) |
1749 | 1807 | ||
1750 | #define MPI_FCPORTPAGE1_LCONFIG_SPEED_MASK (0x0F) | 1808 | #define MPI_FCPORTPAGE1_LCONFIG_SPEED_MASK (0x0F) |
1751 | #define MPI_FCPORTPAGE1_LCONFIG_SPEED_1GIG (0x00) | 1809 | #define MPI_FCPORTPAGE1_LCONFIG_SPEED_1GIG (0x00) |
1752 | #define MPI_FCPORTPAGE1_LCONFIG_SPEED_2GIG (0x01) | 1810 | #define MPI_FCPORTPAGE1_LCONFIG_SPEED_2GIG (0x01) |
1753 | #define MPI_FCPORTPAGE1_LCONFIG_SPEED_4GIG (0x02) | 1811 | #define MPI_FCPORTPAGE1_LCONFIG_SPEED_4GIG (0x02) |
1754 | #define MPI_FCPORTPAGE1_LCONFIG_SPEED_10GIG (0x03) | 1812 | #define MPI_FCPORTPAGE1_LCONFIG_SPEED_10GIG (0x03) |
1755 | #define MPI_FCPORTPAGE1_LCONFIG_SPEED_AUTO (0x0F) | 1813 | #define MPI_FCPORTPAGE1_LCONFIG_SPEED_AUTO (0x0F) |
1756 | 1814 | ||
1757 | #define MPI_FCPORTPAGE1_TOPOLOGY_MASK (0x0F) | 1815 | #define MPI_FCPORTPAGE1_TOPOLOGY_MASK (0x0F) |
1758 | #define MPI_FCPORTPAGE1_TOPOLOGY_NLPORT (0x01) | 1816 | #define MPI_FCPORTPAGE1_TOPOLOGY_NLPORT (0x01) |
1759 | #define MPI_FCPORTPAGE1_TOPOLOGY_NPORT (0x02) | 1817 | #define MPI_FCPORTPAGE1_TOPOLOGY_NPORT (0x02) |
1760 | #define MPI_FCPORTPAGE1_TOPOLOGY_AUTO (0x0F) | 1818 | #define MPI_FCPORTPAGE1_TOPOLOGY_AUTO (0x0F) |
1761 | 1819 | ||
1762 | #define MPI_FCPORTPAGE1_ALT_CONN_UNKNOWN (0x00) | 1820 | #define MPI_FCPORTPAGE1_ALT_CONN_UNKNOWN (0x00) |
1763 | 1821 | ||
1764 | #define MPI_FCPORTPAGE1_INITIATOR_DEV_TIMEOUT_MASK (0x7F) | 1822 | #define MPI_FCPORTPAGE1_INITIATOR_DEV_TIMEOUT_MASK (0x7F) |
1765 | #define MPI_FCPORTPAGE1_INITIATOR_DEV_UNIT_16 (0x80) | 1823 | #define MPI_FCPORTPAGE1_INITIATOR_DEV_UNIT_16 (0x80) |
1766 | 1824 | ||
1767 | 1825 | ||
1768 | typedef struct _CONFIG_PAGE_FC_PORT_2 | 1826 | typedef struct _CONFIG_PAGE_FC_PORT_2 |
1769 | { | 1827 | { |
1770 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1828 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1771 | U8 NumberActive; /* 04h */ | 1829 | U8 NumberActive; /* 04h */ |
1772 | U8 ALPA[127]; /* 05h */ | 1830 | U8 ALPA[127]; /* 05h */ |
1773 | } CONFIG_PAGE_FC_PORT_2, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_2, | 1831 | } CONFIG_PAGE_FC_PORT_2, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_2, |
1774 | FCPortPage2_t, MPI_POINTER pFCPortPage2_t; | 1832 | FCPortPage2_t, MPI_POINTER pFCPortPage2_t; |
1775 | 1833 | ||
1776 | #define MPI_FCPORTPAGE2_PAGEVERSION (0x01) | 1834 | #define MPI_FCPORTPAGE2_PAGEVERSION (0x01) |
1777 | 1835 | ||
1778 | 1836 | ||
1779 | typedef struct _WWN_FORMAT | 1837 | typedef struct _WWN_FORMAT |
1780 | { | 1838 | { |
1781 | U64 WWNN; /* 00h */ | 1839 | U64 WWNN; /* 00h */ |
1782 | U64 WWPN; /* 08h */ | 1840 | U64 WWPN; /* 08h */ |
1783 | } WWN_FORMAT, MPI_POINTER PTR_WWN_FORMAT, | 1841 | } WWN_FORMAT, MPI_POINTER PTR_WWN_FORMAT, |
1784 | WWNFormat, MPI_POINTER pWWNFormat; | 1842 | WWNFormat, MPI_POINTER pWWNFormat; |
1785 | 1843 | ||
1786 | typedef union _FC_PORT_PERSISTENT_PHYSICAL_ID | 1844 | typedef union _FC_PORT_PERSISTENT_PHYSICAL_ID |
1787 | { | 1845 | { |
1788 | WWN_FORMAT WWN; | 1846 | WWN_FORMAT WWN; |
1789 | U32 Did; | 1847 | U32 Did; |
1790 | } FC_PORT_PERSISTENT_PHYSICAL_ID, MPI_POINTER PTR_FC_PORT_PERSISTENT_PHYSICAL_ID, | 1848 | } FC_PORT_PERSISTENT_PHYSICAL_ID, MPI_POINTER PTR_FC_PORT_PERSISTENT_PHYSICAL_ID, |
1791 | PersistentPhysicalId_t, MPI_POINTER pPersistentPhysicalId_t; | 1849 | PersistentPhysicalId_t, MPI_POINTER pPersistentPhysicalId_t; |
1792 | 1850 | ||
1793 | typedef struct _FC_PORT_PERSISTENT | 1851 | typedef struct _FC_PORT_PERSISTENT |
1794 | { | 1852 | { |
1795 | FC_PORT_PERSISTENT_PHYSICAL_ID PhysicalIdentifier; /* 00h */ | 1853 | FC_PORT_PERSISTENT_PHYSICAL_ID PhysicalIdentifier; /* 00h */ |
1796 | U8 TargetID; /* 10h */ | 1854 | U8 TargetID; /* 10h */ |
1797 | U8 Bus; /* 11h */ | 1855 | U8 Bus; /* 11h */ |
1798 | U16 Flags; /* 12h */ | 1856 | U16 Flags; /* 12h */ |
1799 | } FC_PORT_PERSISTENT, MPI_POINTER PTR_FC_PORT_PERSISTENT, | 1857 | } FC_PORT_PERSISTENT, MPI_POINTER PTR_FC_PORT_PERSISTENT, |
1800 | PersistentData_t, MPI_POINTER pPersistentData_t; | 1858 | PersistentData_t, MPI_POINTER pPersistentData_t; |
1801 | 1859 | ||
1802 | #define MPI_PERSISTENT_FLAGS_SHIFT (16) | 1860 | #define MPI_PERSISTENT_FLAGS_SHIFT (16) |
1803 | #define MPI_PERSISTENT_FLAGS_ENTRY_VALID (0x0001) | 1861 | #define MPI_PERSISTENT_FLAGS_ENTRY_VALID (0x0001) |
1804 | #define MPI_PERSISTENT_FLAGS_SCAN_ID (0x0002) | 1862 | #define MPI_PERSISTENT_FLAGS_SCAN_ID (0x0002) |
1805 | #define MPI_PERSISTENT_FLAGS_SCAN_LUNS (0x0004) | 1863 | #define MPI_PERSISTENT_FLAGS_SCAN_LUNS (0x0004) |
1806 | #define MPI_PERSISTENT_FLAGS_BOOT_DEVICE (0x0008) | 1864 | #define MPI_PERSISTENT_FLAGS_BOOT_DEVICE (0x0008) |
1807 | #define MPI_PERSISTENT_FLAGS_BY_DID (0x0080) | 1865 | #define MPI_PERSISTENT_FLAGS_BY_DID (0x0080) |
1808 | 1866 | ||
1809 | /* | 1867 | /* |
1810 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | 1868 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to |
1811 | * one and check Header.PageLength at runtime. | 1869 | * one and check Header.PageLength at runtime. |
1812 | */ | 1870 | */ |
1813 | #ifndef MPI_FC_PORT_PAGE_3_ENTRY_MAX | 1871 | #ifndef MPI_FC_PORT_PAGE_3_ENTRY_MAX |
1814 | #define MPI_FC_PORT_PAGE_3_ENTRY_MAX (1) | 1872 | #define MPI_FC_PORT_PAGE_3_ENTRY_MAX (1) |
1815 | #endif | 1873 | #endif |
1816 | 1874 | ||
1817 | typedef struct _CONFIG_PAGE_FC_PORT_3 | 1875 | typedef struct _CONFIG_PAGE_FC_PORT_3 |
1818 | { | 1876 | { |
1819 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1877 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1820 | FC_PORT_PERSISTENT Entry[MPI_FC_PORT_PAGE_3_ENTRY_MAX]; /* 04h */ | 1878 | FC_PORT_PERSISTENT Entry[MPI_FC_PORT_PAGE_3_ENTRY_MAX]; /* 04h */ |
1821 | } CONFIG_PAGE_FC_PORT_3, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_3, | 1879 | } CONFIG_PAGE_FC_PORT_3, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_3, |
1822 | FCPortPage3_t, MPI_POINTER pFCPortPage3_t; | 1880 | FCPortPage3_t, MPI_POINTER pFCPortPage3_t; |
1823 | 1881 | ||
1824 | #define MPI_FCPORTPAGE3_PAGEVERSION (0x01) | 1882 | #define MPI_FCPORTPAGE3_PAGEVERSION (0x01) |
1825 | 1883 | ||
1826 | 1884 | ||
1827 | typedef struct _CONFIG_PAGE_FC_PORT_4 | 1885 | typedef struct _CONFIG_PAGE_FC_PORT_4 |
1828 | { | 1886 | { |
1829 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1887 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1830 | U32 PortFlags; /* 04h */ | 1888 | U32 PortFlags; /* 04h */ |
1831 | U32 PortSettings; /* 08h */ | 1889 | U32 PortSettings; /* 08h */ |
1832 | } CONFIG_PAGE_FC_PORT_4, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_4, | 1890 | } CONFIG_PAGE_FC_PORT_4, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_4, |
1833 | FCPortPage4_t, MPI_POINTER pFCPortPage4_t; | 1891 | FCPortPage4_t, MPI_POINTER pFCPortPage4_t; |
1834 | 1892 | ||
1835 | #define MPI_FCPORTPAGE4_PAGEVERSION (0x00) | 1893 | #define MPI_FCPORTPAGE4_PAGEVERSION (0x00) |
1836 | 1894 | ||
1837 | #define MPI_FCPORTPAGE4_PORT_FLAGS_ALTERNATE_CHS (0x00000008) | 1895 | #define MPI_FCPORTPAGE4_PORT_FLAGS_ALTERNATE_CHS (0x00000008) |
1838 | 1896 | ||
1839 | #define MPI_FCPORTPAGE4_PORT_MASK_INIT_HBA (0x00000030) | 1897 | #define MPI_FCPORTPAGE4_PORT_MASK_INIT_HBA (0x00000030) |
1840 | #define MPI_FCPORTPAGE4_PORT_DISABLE_INIT_HBA (0x00000000) | 1898 | #define MPI_FCPORTPAGE4_PORT_DISABLE_INIT_HBA (0x00000000) |
1841 | #define MPI_FCPORTPAGE4_PORT_BIOS_INIT_HBA (0x00000010) | 1899 | #define MPI_FCPORTPAGE4_PORT_BIOS_INIT_HBA (0x00000010) |
1842 | #define MPI_FCPORTPAGE4_PORT_OS_INIT_HBA (0x00000020) | 1900 | #define MPI_FCPORTPAGE4_PORT_OS_INIT_HBA (0x00000020) |
1843 | #define MPI_FCPORTPAGE4_PORT_BIOS_OS_INIT_HBA (0x00000030) | 1901 | #define MPI_FCPORTPAGE4_PORT_BIOS_OS_INIT_HBA (0x00000030) |
1844 | #define MPI_FCPORTPAGE4_PORT_REMOVABLE_MEDIA (0x000000C0) | 1902 | #define MPI_FCPORTPAGE4_PORT_REMOVABLE_MEDIA (0x000000C0) |
1845 | #define MPI_FCPORTPAGE4_PORT_SPINUP_DELAY_MASK (0x00000F00) | 1903 | #define MPI_FCPORTPAGE4_PORT_SPINUP_DELAY_MASK (0x00000F00) |
1846 | 1904 | ||
1847 | 1905 | ||
1848 | typedef struct _CONFIG_PAGE_FC_PORT_5_ALIAS_INFO | 1906 | typedef struct _CONFIG_PAGE_FC_PORT_5_ALIAS_INFO |
1849 | { | 1907 | { |
1850 | U8 Flags; /* 00h */ | 1908 | U8 Flags; /* 00h */ |
1851 | U8 AliasAlpa; /* 01h */ | 1909 | U8 AliasAlpa; /* 01h */ |
1852 | U16 Reserved; /* 02h */ | 1910 | U16 Reserved; /* 02h */ |
1853 | U64 AliasWWNN; /* 04h */ | 1911 | U64 AliasWWNN; /* 04h */ |
1854 | U64 AliasWWPN; /* 0Ch */ | 1912 | U64 AliasWWPN; /* 0Ch */ |
1855 | } CONFIG_PAGE_FC_PORT_5_ALIAS_INFO, | 1913 | } CONFIG_PAGE_FC_PORT_5_ALIAS_INFO, |
1856 | MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_5_ALIAS_INFO, | 1914 | MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_5_ALIAS_INFO, |
1857 | FcPortPage5AliasInfo_t, MPI_POINTER pFcPortPage5AliasInfo_t; | 1915 | FcPortPage5AliasInfo_t, MPI_POINTER pFcPortPage5AliasInfo_t; |
1858 | 1916 | ||
1859 | typedef struct _CONFIG_PAGE_FC_PORT_5 | 1917 | typedef struct _CONFIG_PAGE_FC_PORT_5 |
1860 | { | 1918 | { |
1861 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1919 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1862 | CONFIG_PAGE_FC_PORT_5_ALIAS_INFO AliasInfo; /* 04h */ | 1920 | CONFIG_PAGE_FC_PORT_5_ALIAS_INFO AliasInfo; /* 04h */ |
1863 | } CONFIG_PAGE_FC_PORT_5, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_5, | 1921 | } CONFIG_PAGE_FC_PORT_5, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_5, |
1864 | FCPortPage5_t, MPI_POINTER pFCPortPage5_t; | 1922 | FCPortPage5_t, MPI_POINTER pFCPortPage5_t; |
1865 | 1923 | ||
1866 | #define MPI_FCPORTPAGE5_PAGEVERSION (0x02) | 1924 | #define MPI_FCPORTPAGE5_PAGEVERSION (0x02) |
1867 | 1925 | ||
1868 | #define MPI_FCPORTPAGE5_FLAGS_ALPA_ACQUIRED (0x01) | 1926 | #define MPI_FCPORTPAGE5_FLAGS_ALPA_ACQUIRED (0x01) |
1869 | #define MPI_FCPORTPAGE5_FLAGS_HARD_ALPA (0x02) | 1927 | #define MPI_FCPORTPAGE5_FLAGS_HARD_ALPA (0x02) |
1870 | #define MPI_FCPORTPAGE5_FLAGS_HARD_WWNN (0x04) | 1928 | #define MPI_FCPORTPAGE5_FLAGS_HARD_WWNN (0x04) |
1871 | #define MPI_FCPORTPAGE5_FLAGS_HARD_WWPN (0x08) | 1929 | #define MPI_FCPORTPAGE5_FLAGS_HARD_WWPN (0x08) |
1872 | #define MPI_FCPORTPAGE5_FLAGS_DISABLE (0x10) | 1930 | #define MPI_FCPORTPAGE5_FLAGS_DISABLE (0x10) |
1873 | 1931 | ||
1874 | typedef struct _CONFIG_PAGE_FC_PORT_6 | 1932 | typedef struct _CONFIG_PAGE_FC_PORT_6 |
1875 | { | 1933 | { |
1876 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1934 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1877 | U32 Reserved; /* 04h */ | 1935 | U32 Reserved; /* 04h */ |
1878 | U64 TimeSinceReset; /* 08h */ | 1936 | U64 TimeSinceReset; /* 08h */ |
1879 | U64 TxFrames; /* 10h */ | 1937 | U64 TxFrames; /* 10h */ |
1880 | U64 RxFrames; /* 18h */ | 1938 | U64 RxFrames; /* 18h */ |
1881 | U64 TxWords; /* 20h */ | 1939 | U64 TxWords; /* 20h */ |
1882 | U64 RxWords; /* 28h */ | 1940 | U64 RxWords; /* 28h */ |
1883 | U64 LipCount; /* 30h */ | 1941 | U64 LipCount; /* 30h */ |
1884 | U64 NosCount; /* 38h */ | 1942 | U64 NosCount; /* 38h */ |
1885 | U64 ErrorFrames; /* 40h */ | 1943 | U64 ErrorFrames; /* 40h */ |
1886 | U64 DumpedFrames; /* 48h */ | 1944 | U64 DumpedFrames; /* 48h */ |
1887 | U64 LinkFailureCount; /* 50h */ | 1945 | U64 LinkFailureCount; /* 50h */ |
1888 | U64 LossOfSyncCount; /* 58h */ | 1946 | U64 LossOfSyncCount; /* 58h */ |
1889 | U64 LossOfSignalCount; /* 60h */ | 1947 | U64 LossOfSignalCount; /* 60h */ |
1890 | U64 PrimativeSeqErrCount; /* 68h */ | 1948 | U64 PrimativeSeqErrCount; /* 68h */ |
1891 | U64 InvalidTxWordCount; /* 70h */ | 1949 | U64 InvalidTxWordCount; /* 70h */ |
1892 | U64 InvalidCrcCount; /* 78h */ | 1950 | U64 InvalidCrcCount; /* 78h */ |
1893 | U64 FcpInitiatorIoCount; /* 80h */ | 1951 | U64 FcpInitiatorIoCount; /* 80h */ |
1894 | } CONFIG_PAGE_FC_PORT_6, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_6, | 1952 | } CONFIG_PAGE_FC_PORT_6, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_6, |
1895 | FCPortPage6_t, MPI_POINTER pFCPortPage6_t; | 1953 | FCPortPage6_t, MPI_POINTER pFCPortPage6_t; |
1896 | 1954 | ||
1897 | #define MPI_FCPORTPAGE6_PAGEVERSION (0x00) | 1955 | #define MPI_FCPORTPAGE6_PAGEVERSION (0x00) |
1898 | 1956 | ||
1899 | 1957 | ||
1900 | typedef struct _CONFIG_PAGE_FC_PORT_7 | 1958 | typedef struct _CONFIG_PAGE_FC_PORT_7 |
1901 | { | 1959 | { |
1902 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1960 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1903 | U32 Reserved; /* 04h */ | 1961 | U32 Reserved; /* 04h */ |
1904 | U8 PortSymbolicName[256]; /* 08h */ | 1962 | U8 PortSymbolicName[256]; /* 08h */ |
1905 | } CONFIG_PAGE_FC_PORT_7, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_7, | 1963 | } CONFIG_PAGE_FC_PORT_7, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_7, |
1906 | FCPortPage7_t, MPI_POINTER pFCPortPage7_t; | 1964 | FCPortPage7_t, MPI_POINTER pFCPortPage7_t; |
1907 | 1965 | ||
1908 | #define MPI_FCPORTPAGE7_PAGEVERSION (0x00) | 1966 | #define MPI_FCPORTPAGE7_PAGEVERSION (0x00) |
1909 | 1967 | ||
1910 | 1968 | ||
1911 | typedef struct _CONFIG_PAGE_FC_PORT_8 | 1969 | typedef struct _CONFIG_PAGE_FC_PORT_8 |
1912 | { | 1970 | { |
1913 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1971 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1914 | U32 BitVector[8]; /* 04h */ | 1972 | U32 BitVector[8]; /* 04h */ |
1915 | } CONFIG_PAGE_FC_PORT_8, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_8, | 1973 | } CONFIG_PAGE_FC_PORT_8, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_8, |
1916 | FCPortPage8_t, MPI_POINTER pFCPortPage8_t; | 1974 | FCPortPage8_t, MPI_POINTER pFCPortPage8_t; |
1917 | 1975 | ||
1918 | #define MPI_FCPORTPAGE8_PAGEVERSION (0x00) | 1976 | #define MPI_FCPORTPAGE8_PAGEVERSION (0x00) |
1919 | 1977 | ||
1920 | 1978 | ||
1921 | typedef struct _CONFIG_PAGE_FC_PORT_9 | 1979 | typedef struct _CONFIG_PAGE_FC_PORT_9 |
1922 | { | 1980 | { |
1923 | CONFIG_PAGE_HEADER Header; /* 00h */ | 1981 | CONFIG_PAGE_HEADER Header; /* 00h */ |
1924 | U32 Reserved; /* 04h */ | 1982 | U32 Reserved; /* 04h */ |
1925 | U64 GlobalWWPN; /* 08h */ | 1983 | U64 GlobalWWPN; /* 08h */ |
1926 | U64 GlobalWWNN; /* 10h */ | 1984 | U64 GlobalWWNN; /* 10h */ |
1927 | U32 UnitType; /* 18h */ | 1985 | U32 UnitType; /* 18h */ |
1928 | U32 PhysicalPortNumber; /* 1Ch */ | 1986 | U32 PhysicalPortNumber; /* 1Ch */ |
1929 | U32 NumAttachedNodes; /* 20h */ | 1987 | U32 NumAttachedNodes; /* 20h */ |
1930 | U16 IPVersion; /* 24h */ | 1988 | U16 IPVersion; /* 24h */ |
1931 | U16 UDPPortNumber; /* 26h */ | 1989 | U16 UDPPortNumber; /* 26h */ |
1932 | U8 IPAddress[16]; /* 28h */ | 1990 | U8 IPAddress[16]; /* 28h */ |
1933 | U16 Reserved1; /* 38h */ | 1991 | U16 Reserved1; /* 38h */ |
1934 | U16 TopologyDiscoveryFlags; /* 3Ah */ | 1992 | U16 TopologyDiscoveryFlags; /* 3Ah */ |
1935 | } CONFIG_PAGE_FC_PORT_9, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_9, | 1993 | } CONFIG_PAGE_FC_PORT_9, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_9, |
1936 | FCPortPage9_t, MPI_POINTER pFCPortPage9_t; | 1994 | FCPortPage9_t, MPI_POINTER pFCPortPage9_t; |
1937 | 1995 | ||
1938 | #define MPI_FCPORTPAGE9_PAGEVERSION (0x00) | 1996 | #define MPI_FCPORTPAGE9_PAGEVERSION (0x00) |
1939 | 1997 | ||
1940 | 1998 | ||
1941 | typedef struct _CONFIG_PAGE_FC_PORT_10_BASE_SFP_DATA | 1999 | typedef struct _CONFIG_PAGE_FC_PORT_10_BASE_SFP_DATA |
1942 | { | 2000 | { |
1943 | U8 Id; /* 10h */ | 2001 | U8 Id; /* 10h */ |
1944 | U8 ExtId; /* 11h */ | 2002 | U8 ExtId; /* 11h */ |
1945 | U8 Connector; /* 12h */ | 2003 | U8 Connector; /* 12h */ |
1946 | U8 Transceiver[8]; /* 13h */ | 2004 | U8 Transceiver[8]; /* 13h */ |
1947 | U8 Encoding; /* 1Bh */ | 2005 | U8 Encoding; /* 1Bh */ |
1948 | U8 BitRate_100mbs; /* 1Ch */ | 2006 | U8 BitRate_100mbs; /* 1Ch */ |
1949 | U8 Reserved1; /* 1Dh */ | 2007 | U8 Reserved1; /* 1Dh */ |
1950 | U8 Length9u_km; /* 1Eh */ | 2008 | U8 Length9u_km; /* 1Eh */ |
1951 | U8 Length9u_100m; /* 1Fh */ | 2009 | U8 Length9u_100m; /* 1Fh */ |
1952 | U8 Length50u_10m; /* 20h */ | 2010 | U8 Length50u_10m; /* 20h */ |
1953 | U8 Length62p5u_10m; /* 21h */ | 2011 | U8 Length62p5u_10m; /* 21h */ |
1954 | U8 LengthCopper_m; /* 22h */ | 2012 | U8 LengthCopper_m; /* 22h */ |
1955 | U8 Reseverved2; /* 22h */ | 2013 | U8 Reseverved2; /* 22h */ |
1956 | U8 VendorName[16]; /* 24h */ | 2014 | U8 VendorName[16]; /* 24h */ |
1957 | U8 Reserved3; /* 34h */ | 2015 | U8 Reserved3; /* 34h */ |
1958 | U8 VendorOUI[3]; /* 35h */ | 2016 | U8 VendorOUI[3]; /* 35h */ |
1959 | U8 VendorPN[16]; /* 38h */ | 2017 | U8 VendorPN[16]; /* 38h */ |
1960 | U8 VendorRev[4]; /* 48h */ | 2018 | U8 VendorRev[4]; /* 48h */ |
1961 | U16 Wavelength; /* 4Ch */ | 2019 | U16 Wavelength; /* 4Ch */ |
1962 | U8 Reserved4; /* 4Eh */ | 2020 | U8 Reserved4; /* 4Eh */ |
1963 | U8 CC_BASE; /* 4Fh */ | 2021 | U8 CC_BASE; /* 4Fh */ |
1964 | } CONFIG_PAGE_FC_PORT_10_BASE_SFP_DATA, | 2022 | } CONFIG_PAGE_FC_PORT_10_BASE_SFP_DATA, |
1965 | MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_10_BASE_SFP_DATA, | 2023 | MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_10_BASE_SFP_DATA, |
1966 | FCPortPage10BaseSfpData_t, MPI_POINTER pFCPortPage10BaseSfpData_t; | 2024 | FCPortPage10BaseSfpData_t, MPI_POINTER pFCPortPage10BaseSfpData_t; |
1967 | 2025 | ||
1968 | #define MPI_FCPORT10_BASE_ID_UNKNOWN (0x00) | 2026 | #define MPI_FCPORT10_BASE_ID_UNKNOWN (0x00) |
1969 | #define MPI_FCPORT10_BASE_ID_GBIC (0x01) | 2027 | #define MPI_FCPORT10_BASE_ID_GBIC (0x01) |
1970 | #define MPI_FCPORT10_BASE_ID_FIXED (0x02) | 2028 | #define MPI_FCPORT10_BASE_ID_FIXED (0x02) |
1971 | #define MPI_FCPORT10_BASE_ID_SFP (0x03) | 2029 | #define MPI_FCPORT10_BASE_ID_SFP (0x03) |
1972 | #define MPI_FCPORT10_BASE_ID_SFP_MIN (0x04) | 2030 | #define MPI_FCPORT10_BASE_ID_SFP_MIN (0x04) |
1973 | #define MPI_FCPORT10_BASE_ID_SFP_MAX (0x7F) | 2031 | #define MPI_FCPORT10_BASE_ID_SFP_MAX (0x7F) |
1974 | #define MPI_FCPORT10_BASE_ID_VEND_SPEC_MASK (0x80) | 2032 | #define MPI_FCPORT10_BASE_ID_VEND_SPEC_MASK (0x80) |
1975 | 2033 | ||
1976 | #define MPI_FCPORT10_BASE_EXTID_UNKNOWN (0x00) | 2034 | #define MPI_FCPORT10_BASE_EXTID_UNKNOWN (0x00) |
1977 | #define MPI_FCPORT10_BASE_EXTID_MODDEF1 (0x01) | 2035 | #define MPI_FCPORT10_BASE_EXTID_MODDEF1 (0x01) |
1978 | #define MPI_FCPORT10_BASE_EXTID_MODDEF2 (0x02) | 2036 | #define MPI_FCPORT10_BASE_EXTID_MODDEF2 (0x02) |
1979 | #define MPI_FCPORT10_BASE_EXTID_MODDEF3 (0x03) | 2037 | #define MPI_FCPORT10_BASE_EXTID_MODDEF3 (0x03) |
1980 | #define MPI_FCPORT10_BASE_EXTID_SEEPROM (0x04) | 2038 | #define MPI_FCPORT10_BASE_EXTID_SEEPROM (0x04) |
1981 | #define MPI_FCPORT10_BASE_EXTID_MODDEF5 (0x05) | 2039 | #define MPI_FCPORT10_BASE_EXTID_MODDEF5 (0x05) |
1982 | #define MPI_FCPORT10_BASE_EXTID_MODDEF6 (0x06) | 2040 | #define MPI_FCPORT10_BASE_EXTID_MODDEF6 (0x06) |
1983 | #define MPI_FCPORT10_BASE_EXTID_MODDEF7 (0x07) | 2041 | #define MPI_FCPORT10_BASE_EXTID_MODDEF7 (0x07) |
1984 | #define MPI_FCPORT10_BASE_EXTID_VNDSPC_MASK (0x80) | 2042 | #define MPI_FCPORT10_BASE_EXTID_VNDSPC_MASK (0x80) |
1985 | 2043 | ||
1986 | #define MPI_FCPORT10_BASE_CONN_UNKNOWN (0x00) | 2044 | #define MPI_FCPORT10_BASE_CONN_UNKNOWN (0x00) |
1987 | #define MPI_FCPORT10_BASE_CONN_SC (0x01) | 2045 | #define MPI_FCPORT10_BASE_CONN_SC (0x01) |
1988 | #define MPI_FCPORT10_BASE_CONN_COPPER1 (0x02) | 2046 | #define MPI_FCPORT10_BASE_CONN_COPPER1 (0x02) |
1989 | #define MPI_FCPORT10_BASE_CONN_COPPER2 (0x03) | 2047 | #define MPI_FCPORT10_BASE_CONN_COPPER2 (0x03) |
1990 | #define MPI_FCPORT10_BASE_CONN_BNC_TNC (0x04) | 2048 | #define MPI_FCPORT10_BASE_CONN_BNC_TNC (0x04) |
1991 | #define MPI_FCPORT10_BASE_CONN_COAXIAL (0x05) | 2049 | #define MPI_FCPORT10_BASE_CONN_COAXIAL (0x05) |
1992 | #define MPI_FCPORT10_BASE_CONN_FIBERJACK (0x06) | 2050 | #define MPI_FCPORT10_BASE_CONN_FIBERJACK (0x06) |
1993 | #define MPI_FCPORT10_BASE_CONN_LC (0x07) | 2051 | #define MPI_FCPORT10_BASE_CONN_LC (0x07) |
1994 | #define MPI_FCPORT10_BASE_CONN_MT_RJ (0x08) | 2052 | #define MPI_FCPORT10_BASE_CONN_MT_RJ (0x08) |
1995 | #define MPI_FCPORT10_BASE_CONN_MU (0x09) | 2053 | #define MPI_FCPORT10_BASE_CONN_MU (0x09) |
1996 | #define MPI_FCPORT10_BASE_CONN_SG (0x0A) | 2054 | #define MPI_FCPORT10_BASE_CONN_SG (0x0A) |
1997 | #define MPI_FCPORT10_BASE_CONN_OPT_PIGT (0x0B) | 2055 | #define MPI_FCPORT10_BASE_CONN_OPT_PIGT (0x0B) |
1998 | #define MPI_FCPORT10_BASE_CONN_RSV1_MIN (0x0C) | 2056 | #define MPI_FCPORT10_BASE_CONN_RSV1_MIN (0x0C) |
1999 | #define MPI_FCPORT10_BASE_CONN_RSV1_MAX (0x1F) | 2057 | #define MPI_FCPORT10_BASE_CONN_RSV1_MAX (0x1F) |
2000 | #define MPI_FCPORT10_BASE_CONN_HSSDC_II (0x20) | 2058 | #define MPI_FCPORT10_BASE_CONN_HSSDC_II (0x20) |
2001 | #define MPI_FCPORT10_BASE_CONN_CPR_PIGT (0x21) | 2059 | #define MPI_FCPORT10_BASE_CONN_CPR_PIGT (0x21) |
2002 | #define MPI_FCPORT10_BASE_CONN_RSV2_MIN (0x22) | 2060 | #define MPI_FCPORT10_BASE_CONN_RSV2_MIN (0x22) |
2003 | #define MPI_FCPORT10_BASE_CONN_RSV2_MAX (0x7F) | 2061 | #define MPI_FCPORT10_BASE_CONN_RSV2_MAX (0x7F) |
2004 | #define MPI_FCPORT10_BASE_CONN_VNDSPC_MASK (0x80) | 2062 | #define MPI_FCPORT10_BASE_CONN_VNDSPC_MASK (0x80) |
2005 | 2063 | ||
2006 | #define MPI_FCPORT10_BASE_ENCODE_UNSPEC (0x00) | 2064 | #define MPI_FCPORT10_BASE_ENCODE_UNSPEC (0x00) |
2007 | #define MPI_FCPORT10_BASE_ENCODE_8B10B (0x01) | 2065 | #define MPI_FCPORT10_BASE_ENCODE_8B10B (0x01) |
2008 | #define MPI_FCPORT10_BASE_ENCODE_4B5B (0x02) | 2066 | #define MPI_FCPORT10_BASE_ENCODE_4B5B (0x02) |
2009 | #define MPI_FCPORT10_BASE_ENCODE_NRZ (0x03) | 2067 | #define MPI_FCPORT10_BASE_ENCODE_NRZ (0x03) |
2010 | #define MPI_FCPORT10_BASE_ENCODE_MANCHESTER (0x04) | 2068 | #define MPI_FCPORT10_BASE_ENCODE_MANCHESTER (0x04) |
2011 | 2069 | ||
2012 | 2070 | ||
2013 | typedef struct _CONFIG_PAGE_FC_PORT_10_EXTENDED_SFP_DATA | 2071 | typedef struct _CONFIG_PAGE_FC_PORT_10_EXTENDED_SFP_DATA |
2014 | { | 2072 | { |
2015 | U8 Options[2]; /* 50h */ | 2073 | U8 Options[2]; /* 50h */ |
2016 | U8 BitRateMax; /* 52h */ | 2074 | U8 BitRateMax; /* 52h */ |
2017 | U8 BitRateMin; /* 53h */ | 2075 | U8 BitRateMin; /* 53h */ |
2018 | U8 VendorSN[16]; /* 54h */ | 2076 | U8 VendorSN[16]; /* 54h */ |
2019 | U8 DateCode[8]; /* 64h */ | 2077 | U8 DateCode[8]; /* 64h */ |
2020 | U8 DiagMonitoringType; /* 6Ch */ | 2078 | U8 DiagMonitoringType; /* 6Ch */ |
2021 | U8 EnhancedOptions; /* 6Dh */ | 2079 | U8 EnhancedOptions; /* 6Dh */ |
2022 | U8 SFF8472Compliance; /* 6Eh */ | 2080 | U8 SFF8472Compliance; /* 6Eh */ |
2023 | U8 CC_EXT; /* 6Fh */ | 2081 | U8 CC_EXT; /* 6Fh */ |
2024 | } CONFIG_PAGE_FC_PORT_10_EXTENDED_SFP_DATA, | 2082 | } CONFIG_PAGE_FC_PORT_10_EXTENDED_SFP_DATA, |
2025 | MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_10_EXTENDED_SFP_DATA, | 2083 | MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_10_EXTENDED_SFP_DATA, |
2026 | FCPortPage10ExtendedSfpData_t, MPI_POINTER pFCPortPage10ExtendedSfpData_t; | 2084 | FCPortPage10ExtendedSfpData_t, MPI_POINTER pFCPortPage10ExtendedSfpData_t; |
2027 | 2085 | ||
2028 | #define MPI_FCPORT10_EXT_OPTION1_RATESEL (0x20) | 2086 | #define MPI_FCPORT10_EXT_OPTION1_RATESEL (0x20) |
2029 | #define MPI_FCPORT10_EXT_OPTION1_TX_DISABLE (0x10) | 2087 | #define MPI_FCPORT10_EXT_OPTION1_TX_DISABLE (0x10) |
2030 | #define MPI_FCPORT10_EXT_OPTION1_TX_FAULT (0x08) | 2088 | #define MPI_FCPORT10_EXT_OPTION1_TX_FAULT (0x08) |
2031 | #define MPI_FCPORT10_EXT_OPTION1_LOS_INVERT (0x04) | 2089 | #define MPI_FCPORT10_EXT_OPTION1_LOS_INVERT (0x04) |
2032 | #define MPI_FCPORT10_EXT_OPTION1_LOS (0x02) | 2090 | #define MPI_FCPORT10_EXT_OPTION1_LOS (0x02) |
2033 | 2091 | ||
2034 | 2092 | ||
2035 | typedef struct _CONFIG_PAGE_FC_PORT_10 | 2093 | typedef struct _CONFIG_PAGE_FC_PORT_10 |
2036 | { | 2094 | { |
2037 | CONFIG_PAGE_HEADER Header; /* 00h */ | 2095 | CONFIG_PAGE_HEADER Header; /* 00h */ |
2038 | U8 Flags; /* 04h */ | 2096 | U8 Flags; /* 04h */ |
2039 | U8 Reserved1; /* 05h */ | 2097 | U8 Reserved1; /* 05h */ |
2040 | U16 Reserved2; /* 06h */ | 2098 | U16 Reserved2; /* 06h */ |
2041 | U32 HwConfig1; /* 08h */ | 2099 | U32 HwConfig1; /* 08h */ |
2042 | U32 HwConfig2; /* 0Ch */ | 2100 | U32 HwConfig2; /* 0Ch */ |
2043 | CONFIG_PAGE_FC_PORT_10_BASE_SFP_DATA Base; /* 10h */ | 2101 | CONFIG_PAGE_FC_PORT_10_BASE_SFP_DATA Base; /* 10h */ |
2044 | CONFIG_PAGE_FC_PORT_10_EXTENDED_SFP_DATA Extended; /* 50h */ | 2102 | CONFIG_PAGE_FC_PORT_10_EXTENDED_SFP_DATA Extended; /* 50h */ |
2045 | U8 VendorSpecific[32]; /* 70h */ | 2103 | U8 VendorSpecific[32]; /* 70h */ |
2046 | } CONFIG_PAGE_FC_PORT_10, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_10, | 2104 | } CONFIG_PAGE_FC_PORT_10, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_10, |
2047 | FCPortPage10_t, MPI_POINTER pFCPortPage10_t; | 2105 | FCPortPage10_t, MPI_POINTER pFCPortPage10_t; |
2048 | 2106 | ||
2049 | #define MPI_FCPORTPAGE10_PAGEVERSION (0x01) | 2107 | #define MPI_FCPORTPAGE10_PAGEVERSION (0x01) |
2050 | 2108 | ||
2051 | /* standard MODDEF pin definitions (from GBIC spec.) */ | 2109 | /* standard MODDEF pin definitions (from GBIC spec.) */ |
2052 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_MASK (0x00000007) | 2110 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_MASK (0x00000007) |
2053 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF2 (0x00000001) | 2111 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF2 (0x00000001) |
2054 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF1 (0x00000002) | 2112 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF1 (0x00000002) |
2055 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF0 (0x00000004) | 2113 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF0 (0x00000004) |
2056 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_NOGBIC (0x00000007) | 2114 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_NOGBIC (0x00000007) |
2057 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_CPR_IEEE_CX (0x00000006) | 2115 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_CPR_IEEE_CX (0x00000006) |
2058 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_COPPER (0x00000005) | 2116 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_COPPER (0x00000005) |
2059 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_OPTICAL_LW (0x00000004) | 2117 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_OPTICAL_LW (0x00000004) |
2060 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_SEEPROM (0x00000003) | 2118 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_SEEPROM (0x00000003) |
2061 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_SW_OPTICAL (0x00000002) | 2119 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_SW_OPTICAL (0x00000002) |
2062 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_LX_IEEE_OPT_LW (0x00000001) | 2120 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_LX_IEEE_OPT_LW (0x00000001) |
2063 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_SX_IEEE_OPT_SW (0x00000000) | 2121 | #define MPI_FCPORTPAGE10_FLAGS_MODDEF_SX_IEEE_OPT_SW (0x00000000) |
2064 | 2122 | ||
2065 | #define MPI_FCPORTPAGE10_FLAGS_CC_BASE_OK (0x00000010) | 2123 | #define MPI_FCPORTPAGE10_FLAGS_CC_BASE_OK (0x00000010) |
2066 | #define MPI_FCPORTPAGE10_FLAGS_CC_EXT_OK (0x00000020) | 2124 | #define MPI_FCPORTPAGE10_FLAGS_CC_EXT_OK (0x00000020) |
2067 | 2125 | ||
2068 | 2126 | ||
2069 | /**************************************************************************** | 2127 | /**************************************************************************** |
2070 | * FC Device Config Pages | 2128 | * FC Device Config Pages |
2071 | ****************************************************************************/ | 2129 | ****************************************************************************/ |
2072 | 2130 | ||
2073 | typedef struct _CONFIG_PAGE_FC_DEVICE_0 | 2131 | typedef struct _CONFIG_PAGE_FC_DEVICE_0 |
2074 | { | 2132 | { |
2075 | CONFIG_PAGE_HEADER Header; /* 00h */ | 2133 | CONFIG_PAGE_HEADER Header; /* 00h */ |
2076 | U64 WWNN; /* 04h */ | 2134 | U64 WWNN; /* 04h */ |
2077 | U64 WWPN; /* 0Ch */ | 2135 | U64 WWPN; /* 0Ch */ |
2078 | U32 PortIdentifier; /* 14h */ | 2136 | U32 PortIdentifier; /* 14h */ |
2079 | U8 Protocol; /* 18h */ | 2137 | U8 Protocol; /* 18h */ |
2080 | U8 Flags; /* 19h */ | 2138 | U8 Flags; /* 19h */ |
2081 | U16 BBCredit; /* 1Ah */ | 2139 | U16 BBCredit; /* 1Ah */ |
2082 | U16 MaxRxFrameSize; /* 1Ch */ | 2140 | U16 MaxRxFrameSize; /* 1Ch */ |
2083 | U8 ADISCHardALPA; /* 1Eh */ | 2141 | U8 ADISCHardALPA; /* 1Eh */ |
2084 | U8 PortNumber; /* 1Fh */ | 2142 | U8 PortNumber; /* 1Fh */ |
2085 | U8 FcPhLowestVersion; /* 20h */ | 2143 | U8 FcPhLowestVersion; /* 20h */ |
2086 | U8 FcPhHighestVersion; /* 21h */ | 2144 | U8 FcPhHighestVersion; /* 21h */ |
2087 | U8 CurrentTargetID; /* 22h */ | 2145 | U8 CurrentTargetID; /* 22h */ |
2088 | U8 CurrentBus; /* 23h */ | 2146 | U8 CurrentBus; /* 23h */ |
2089 | } CONFIG_PAGE_FC_DEVICE_0, MPI_POINTER PTR_CONFIG_PAGE_FC_DEVICE_0, | 2147 | } CONFIG_PAGE_FC_DEVICE_0, MPI_POINTER PTR_CONFIG_PAGE_FC_DEVICE_0, |
2090 | FCDevicePage0_t, MPI_POINTER pFCDevicePage0_t; | 2148 | FCDevicePage0_t, MPI_POINTER pFCDevicePage0_t; |
2091 | 2149 | ||
2092 | #define MPI_FC_DEVICE_PAGE0_PAGEVERSION (0x03) | 2150 | #define MPI_FC_DEVICE_PAGE0_PAGEVERSION (0x03) |
2093 | 2151 | ||
2094 | #define MPI_FC_DEVICE_PAGE0_FLAGS_TARGETID_BUS_VALID (0x01) | 2152 | #define MPI_FC_DEVICE_PAGE0_FLAGS_TARGETID_BUS_VALID (0x01) |
2095 | #define MPI_FC_DEVICE_PAGE0_FLAGS_PLOGI_INVALID (0x02) | 2153 | #define MPI_FC_DEVICE_PAGE0_FLAGS_PLOGI_INVALID (0x02) |
2096 | #define MPI_FC_DEVICE_PAGE0_FLAGS_PRLI_INVALID (0x04) | 2154 | #define MPI_FC_DEVICE_PAGE0_FLAGS_PRLI_INVALID (0x04) |
2097 | 2155 | ||
2098 | #define MPI_FC_DEVICE_PAGE0_PROT_IP (0x01) | 2156 | #define MPI_FC_DEVICE_PAGE0_PROT_IP (0x01) |
2099 | #define MPI_FC_DEVICE_PAGE0_PROT_FCP_TARGET (0x02) | 2157 | #define MPI_FC_DEVICE_PAGE0_PROT_FCP_TARGET (0x02) |
2100 | #define MPI_FC_DEVICE_PAGE0_PROT_FCP_INITIATOR (0x04) | 2158 | #define MPI_FC_DEVICE_PAGE0_PROT_FCP_INITIATOR (0x04) |
2101 | #define MPI_FC_DEVICE_PAGE0_PROT_FCP_RETRY (0x08) | 2159 | #define MPI_FC_DEVICE_PAGE0_PROT_FCP_RETRY (0x08) |
2102 | 2160 | ||
2103 | #define MPI_FC_DEVICE_PAGE0_PGAD_PORT_MASK (MPI_FC_DEVICE_PGAD_PORT_MASK) | 2161 | #define MPI_FC_DEVICE_PAGE0_PGAD_PORT_MASK (MPI_FC_DEVICE_PGAD_PORT_MASK) |
2104 | #define MPI_FC_DEVICE_PAGE0_PGAD_FORM_MASK (MPI_FC_DEVICE_PGAD_FORM_MASK) | 2162 | #define MPI_FC_DEVICE_PAGE0_PGAD_FORM_MASK (MPI_FC_DEVICE_PGAD_FORM_MASK) |
2105 | #define MPI_FC_DEVICE_PAGE0_PGAD_FORM_NEXT_DID (MPI_FC_DEVICE_PGAD_FORM_NEXT_DID) | 2163 | #define MPI_FC_DEVICE_PAGE0_PGAD_FORM_NEXT_DID (MPI_FC_DEVICE_PGAD_FORM_NEXT_DID) |
2106 | #define MPI_FC_DEVICE_PAGE0_PGAD_FORM_BUS_TID (MPI_FC_DEVICE_PGAD_FORM_BUS_TID) | 2164 | #define MPI_FC_DEVICE_PAGE0_PGAD_FORM_BUS_TID (MPI_FC_DEVICE_PGAD_FORM_BUS_TID) |
2107 | #define MPI_FC_DEVICE_PAGE0_PGAD_DID_MASK (MPI_FC_DEVICE_PGAD_ND_DID_MASK) | 2165 | #define MPI_FC_DEVICE_PAGE0_PGAD_DID_MASK (MPI_FC_DEVICE_PGAD_ND_DID_MASK) |
2108 | #define MPI_FC_DEVICE_PAGE0_PGAD_BUS_MASK (MPI_FC_DEVICE_PGAD_BT_BUS_MASK) | 2166 | #define MPI_FC_DEVICE_PAGE0_PGAD_BUS_MASK (MPI_FC_DEVICE_PGAD_BT_BUS_MASK) |
2109 | #define MPI_FC_DEVICE_PAGE0_PGAD_BUS_SHIFT (MPI_FC_DEVICE_PGAD_BT_BUS_SHIFT) | 2167 | #define MPI_FC_DEVICE_PAGE0_PGAD_BUS_SHIFT (MPI_FC_DEVICE_PGAD_BT_BUS_SHIFT) |
2110 | #define MPI_FC_DEVICE_PAGE0_PGAD_TID_MASK (MPI_FC_DEVICE_PGAD_BT_TID_MASK) | 2168 | #define MPI_FC_DEVICE_PAGE0_PGAD_TID_MASK (MPI_FC_DEVICE_PGAD_BT_TID_MASK) |
2111 | 2169 | ||
2112 | #define MPI_FC_DEVICE_PAGE0_HARD_ALPA_UNKNOWN (0xFF) | 2170 | #define MPI_FC_DEVICE_PAGE0_HARD_ALPA_UNKNOWN (0xFF) |
2113 | 2171 | ||
2114 | /**************************************************************************** | 2172 | /**************************************************************************** |
2115 | * RAID Volume Config Pages | 2173 | * RAID Volume Config Pages |
2116 | ****************************************************************************/ | 2174 | ****************************************************************************/ |
2117 | 2175 | ||
2118 | typedef struct _RAID_VOL0_PHYS_DISK | 2176 | typedef struct _RAID_VOL0_PHYS_DISK |
2119 | { | 2177 | { |
2120 | U16 Reserved; /* 00h */ | 2178 | U16 Reserved; /* 00h */ |
2121 | U8 PhysDiskMap; /* 02h */ | 2179 | U8 PhysDiskMap; /* 02h */ |
2122 | U8 PhysDiskNum; /* 03h */ | 2180 | U8 PhysDiskNum; /* 03h */ |
2123 | } RAID_VOL0_PHYS_DISK, MPI_POINTER PTR_RAID_VOL0_PHYS_DISK, | 2181 | } RAID_VOL0_PHYS_DISK, MPI_POINTER PTR_RAID_VOL0_PHYS_DISK, |
2124 | RaidVol0PhysDisk_t, MPI_POINTER pRaidVol0PhysDisk_t; | 2182 | RaidVol0PhysDisk_t, MPI_POINTER pRaidVol0PhysDisk_t; |
2125 | 2183 | ||
2126 | #define MPI_RAIDVOL0_PHYSDISK_PRIMARY (0x01) | 2184 | #define MPI_RAIDVOL0_PHYSDISK_PRIMARY (0x01) |
2127 | #define MPI_RAIDVOL0_PHYSDISK_SECONDARY (0x02) | 2185 | #define MPI_RAIDVOL0_PHYSDISK_SECONDARY (0x02) |
2128 | 2186 | ||
2129 | typedef struct _RAID_VOL0_STATUS | 2187 | typedef struct _RAID_VOL0_STATUS |
2130 | { | 2188 | { |
2131 | U8 Flags; /* 00h */ | 2189 | U8 Flags; /* 00h */ |
2132 | U8 State; /* 01h */ | 2190 | U8 State; /* 01h */ |
2133 | U16 Reserved; /* 02h */ | 2191 | U16 Reserved; /* 02h */ |
2134 | } RAID_VOL0_STATUS, MPI_POINTER PTR_RAID_VOL0_STATUS, | 2192 | } RAID_VOL0_STATUS, MPI_POINTER PTR_RAID_VOL0_STATUS, |
2135 | RaidVol0Status_t, MPI_POINTER pRaidVol0Status_t; | 2193 | RaidVol0Status_t, MPI_POINTER pRaidVol0Status_t; |
2136 | 2194 | ||
2137 | /* RAID Volume Page 0 VolumeStatus defines */ | 2195 | /* RAID Volume Page 0 VolumeStatus defines */ |
2138 | #define MPI_RAIDVOL0_STATUS_FLAG_ENABLED (0x01) | 2196 | #define MPI_RAIDVOL0_STATUS_FLAG_ENABLED (0x01) |
2139 | #define MPI_RAIDVOL0_STATUS_FLAG_QUIESCED (0x02) | 2197 | #define MPI_RAIDVOL0_STATUS_FLAG_QUIESCED (0x02) |
2140 | #define MPI_RAIDVOL0_STATUS_FLAG_RESYNC_IN_PROGRESS (0x04) | 2198 | #define MPI_RAIDVOL0_STATUS_FLAG_RESYNC_IN_PROGRESS (0x04) |
2141 | #define MPI_RAIDVOL0_STATUS_FLAG_VOLUME_INACTIVE (0x08) | 2199 | #define MPI_RAIDVOL0_STATUS_FLAG_VOLUME_INACTIVE (0x08) |
2142 | #define MPI_RAIDVOL0_STATUS_FLAG_BAD_BLOCK_TABLE_FULL (0x10) | 2200 | #define MPI_RAIDVOL0_STATUS_FLAG_BAD_BLOCK_TABLE_FULL (0x10) |
2143 | 2201 | ||
2144 | #define MPI_RAIDVOL0_STATUS_STATE_OPTIMAL (0x00) | 2202 | #define MPI_RAIDVOL0_STATUS_STATE_OPTIMAL (0x00) |
2145 | #define MPI_RAIDVOL0_STATUS_STATE_DEGRADED (0x01) | 2203 | #define MPI_RAIDVOL0_STATUS_STATE_DEGRADED (0x01) |
2146 | #define MPI_RAIDVOL0_STATUS_STATE_FAILED (0x02) | 2204 | #define MPI_RAIDVOL0_STATUS_STATE_FAILED (0x02) |
2147 | #define MPI_RAIDVOL0_STATUS_STATE_MISSING (0x03) | 2205 | #define MPI_RAIDVOL0_STATUS_STATE_MISSING (0x03) |
2148 | 2206 | ||
2149 | typedef struct _RAID_VOL0_SETTINGS | 2207 | typedef struct _RAID_VOL0_SETTINGS |
2150 | { | 2208 | { |
2151 | U16 Settings; /* 00h */ | 2209 | U16 Settings; /* 00h */ |
2152 | U8 HotSparePool; /* 01h */ /* MPI_RAID_HOT_SPARE_POOL_ */ | 2210 | U8 HotSparePool; /* 01h */ /* MPI_RAID_HOT_SPARE_POOL_ */ |
2153 | U8 Reserved; /* 02h */ | 2211 | U8 Reserved; /* 02h */ |
2154 | } RAID_VOL0_SETTINGS, MPI_POINTER PTR_RAID_VOL0_SETTINGS, | 2212 | } RAID_VOL0_SETTINGS, MPI_POINTER PTR_RAID_VOL0_SETTINGS, |
2155 | RaidVol0Settings, MPI_POINTER pRaidVol0Settings; | 2213 | RaidVol0Settings, MPI_POINTER pRaidVol0Settings; |
2156 | 2214 | ||
2157 | /* RAID Volume Page 0 VolumeSettings defines */ | 2215 | /* RAID Volume Page 0 VolumeSettings defines */ |
2158 | #define MPI_RAIDVOL0_SETTING_WRITE_CACHING_ENABLE (0x0001) | 2216 | #define MPI_RAIDVOL0_SETTING_WRITE_CACHING_ENABLE (0x0001) |
2159 | #define MPI_RAIDVOL0_SETTING_OFFLINE_ON_SMART (0x0002) | 2217 | #define MPI_RAIDVOL0_SETTING_OFFLINE_ON_SMART (0x0002) |
2160 | #define MPI_RAIDVOL0_SETTING_AUTO_CONFIGURE (0x0004) | 2218 | #define MPI_RAIDVOL0_SETTING_AUTO_CONFIGURE (0x0004) |
2161 | #define MPI_RAIDVOL0_SETTING_PRIORITY_RESYNC (0x0008) | 2219 | #define MPI_RAIDVOL0_SETTING_PRIORITY_RESYNC (0x0008) |
2162 | #define MPI_RAIDVOL0_SETTING_FAST_DATA_SCRUBBING_0102 (0x0020) /* obsolete */ | 2220 | #define MPI_RAIDVOL0_SETTING_FAST_DATA_SCRUBBING_0102 (0x0020) /* obsolete */ |
2221 | |||
2222 | #define MPI_RAIDVOL0_SETTING_MASK_METADATA_SIZE (0x00C0) | ||
2223 | #define MPI_RAIDVOL0_SETTING_64MB_METADATA_SIZE (0x0000) | ||
2224 | #define MPI_RAIDVOL0_SETTING_512MB_METADATA_SIZE (0x0040) | ||
2225 | |||
2163 | #define MPI_RAIDVOL0_SETTING_USE_PRODUCT_ID_SUFFIX (0x0010) | 2226 | #define MPI_RAIDVOL0_SETTING_USE_PRODUCT_ID_SUFFIX (0x0010) |
2164 | #define MPI_RAIDVOL0_SETTING_USE_DEFAULTS (0x8000) | 2227 | #define MPI_RAIDVOL0_SETTING_USE_DEFAULTS (0x8000) |
2165 | 2228 | ||
2166 | /* RAID Volume Page 0 HotSparePool defines, also used in RAID Physical Disk */ | 2229 | /* RAID Volume Page 0 HotSparePool defines, also used in RAID Physical Disk */ |
2167 | #define MPI_RAID_HOT_SPARE_POOL_0 (0x01) | 2230 | #define MPI_RAID_HOT_SPARE_POOL_0 (0x01) |
2168 | #define MPI_RAID_HOT_SPARE_POOL_1 (0x02) | 2231 | #define MPI_RAID_HOT_SPARE_POOL_1 (0x02) |
2169 | #define MPI_RAID_HOT_SPARE_POOL_2 (0x04) | 2232 | #define MPI_RAID_HOT_SPARE_POOL_2 (0x04) |
2170 | #define MPI_RAID_HOT_SPARE_POOL_3 (0x08) | 2233 | #define MPI_RAID_HOT_SPARE_POOL_3 (0x08) |
2171 | #define MPI_RAID_HOT_SPARE_POOL_4 (0x10) | 2234 | #define MPI_RAID_HOT_SPARE_POOL_4 (0x10) |
2172 | #define MPI_RAID_HOT_SPARE_POOL_5 (0x20) | 2235 | #define MPI_RAID_HOT_SPARE_POOL_5 (0x20) |
2173 | #define MPI_RAID_HOT_SPARE_POOL_6 (0x40) | 2236 | #define MPI_RAID_HOT_SPARE_POOL_6 (0x40) |
2174 | #define MPI_RAID_HOT_SPARE_POOL_7 (0x80) | 2237 | #define MPI_RAID_HOT_SPARE_POOL_7 (0x80) |
2175 | 2238 | ||
2176 | /* | 2239 | /* |
2177 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | 2240 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to |
2178 | * one and check Header.PageLength at runtime. | 2241 | * one and check Header.PageLength at runtime. |
2179 | */ | 2242 | */ |
2180 | #ifndef MPI_RAID_VOL_PAGE_0_PHYSDISK_MAX | 2243 | #ifndef MPI_RAID_VOL_PAGE_0_PHYSDISK_MAX |
2181 | #define MPI_RAID_VOL_PAGE_0_PHYSDISK_MAX (1) | 2244 | #define MPI_RAID_VOL_PAGE_0_PHYSDISK_MAX (1) |
2182 | #endif | 2245 | #endif |
2183 | 2246 | ||
2184 | typedef struct _CONFIG_PAGE_RAID_VOL_0 | 2247 | typedef struct _CONFIG_PAGE_RAID_VOL_0 |
2185 | { | 2248 | { |
2186 | CONFIG_PAGE_HEADER Header; /* 00h */ | 2249 | CONFIG_PAGE_HEADER Header; /* 00h */ |
2187 | U8 VolumeID; /* 04h */ | 2250 | U8 VolumeID; /* 04h */ |
2188 | U8 VolumeBus; /* 05h */ | 2251 | U8 VolumeBus; /* 05h */ |
2189 | U8 VolumeIOC; /* 06h */ | 2252 | U8 VolumeIOC; /* 06h */ |
2190 | U8 VolumeType; /* 07h */ /* MPI_RAID_VOL_TYPE_ */ | 2253 | U8 VolumeType; /* 07h */ /* MPI_RAID_VOL_TYPE_ */ |
2191 | RAID_VOL0_STATUS VolumeStatus; /* 08h */ | 2254 | RAID_VOL0_STATUS VolumeStatus; /* 08h */ |
2192 | RAID_VOL0_SETTINGS VolumeSettings; /* 0Ch */ | 2255 | RAID_VOL0_SETTINGS VolumeSettings; /* 0Ch */ |
2193 | U32 MaxLBA; /* 10h */ | 2256 | U32 MaxLBA; /* 10h */ |
2194 | U32 MaxLBAHigh; /* 14h */ | 2257 | U32 MaxLBAHigh; /* 14h */ |
2195 | U32 StripeSize; /* 18h */ | 2258 | U32 StripeSize; /* 18h */ |
2196 | U32 Reserved2; /* 1Ch */ | 2259 | U32 Reserved2; /* 1Ch */ |
2197 | U32 Reserved3; /* 20h */ | 2260 | U32 Reserved3; /* 20h */ |
2198 | U8 NumPhysDisks; /* 24h */ | 2261 | U8 NumPhysDisks; /* 24h */ |
2199 | U8 DataScrubRate; /* 25h */ | 2262 | U8 DataScrubRate; /* 25h */ |
2200 | U8 ResyncRate; /* 26h */ | 2263 | U8 ResyncRate; /* 26h */ |
2201 | U8 InactiveStatus; /* 27h */ | 2264 | U8 InactiveStatus; /* 27h */ |
2202 | RAID_VOL0_PHYS_DISK PhysDisk[MPI_RAID_VOL_PAGE_0_PHYSDISK_MAX];/* 28h */ | 2265 | RAID_VOL0_PHYS_DISK PhysDisk[MPI_RAID_VOL_PAGE_0_PHYSDISK_MAX];/* 28h */ |
2203 | } CONFIG_PAGE_RAID_VOL_0, MPI_POINTER PTR_CONFIG_PAGE_RAID_VOL_0, | 2266 | } CONFIG_PAGE_RAID_VOL_0, MPI_POINTER PTR_CONFIG_PAGE_RAID_VOL_0, |
2204 | RaidVolumePage0_t, MPI_POINTER pRaidVolumePage0_t; | 2267 | RaidVolumePage0_t, MPI_POINTER pRaidVolumePage0_t; |
2205 | 2268 | ||
2206 | #define MPI_RAIDVOLPAGE0_PAGEVERSION (0x06) | 2269 | #define MPI_RAIDVOLPAGE0_PAGEVERSION (0x07) |
2207 | 2270 | ||
2208 | /* values for RAID Volume Page 0 InactiveStatus field */ | 2271 | /* values for RAID Volume Page 0 InactiveStatus field */ |
2209 | #define MPI_RAIDVOLPAGE0_UNKNOWN_INACTIVE (0x00) | 2272 | #define MPI_RAIDVOLPAGE0_UNKNOWN_INACTIVE (0x00) |
2210 | #define MPI_RAIDVOLPAGE0_STALE_METADATA_INACTIVE (0x01) | 2273 | #define MPI_RAIDVOLPAGE0_STALE_METADATA_INACTIVE (0x01) |
2211 | #define MPI_RAIDVOLPAGE0_FOREIGN_VOLUME_INACTIVE (0x02) | 2274 | #define MPI_RAIDVOLPAGE0_FOREIGN_VOLUME_INACTIVE (0x02) |
2212 | #define MPI_RAIDVOLPAGE0_INSUFFICIENT_RESOURCE_INACTIVE (0x03) | 2275 | #define MPI_RAIDVOLPAGE0_INSUFFICIENT_RESOURCE_INACTIVE (0x03) |
2213 | #define MPI_RAIDVOLPAGE0_CLONE_VOLUME_INACTIVE (0x04) | 2276 | #define MPI_RAIDVOLPAGE0_CLONE_VOLUME_INACTIVE (0x04) |
2214 | #define MPI_RAIDVOLPAGE0_INSUFFICIENT_METADATA_INACTIVE (0x05) | 2277 | #define MPI_RAIDVOLPAGE0_INSUFFICIENT_METADATA_INACTIVE (0x05) |
2215 | #define MPI_RAIDVOLPAGE0_PREVIOUSLY_DELETED (0x06) | 2278 | #define MPI_RAIDVOLPAGE0_PREVIOUSLY_DELETED (0x06) |
2216 | 2279 | ||
2217 | 2280 | ||
2218 | typedef struct _CONFIG_PAGE_RAID_VOL_1 | 2281 | typedef struct _CONFIG_PAGE_RAID_VOL_1 |
2219 | { | 2282 | { |
2220 | CONFIG_PAGE_HEADER Header; /* 00h */ | 2283 | CONFIG_PAGE_HEADER Header; /* 00h */ |
2221 | U8 VolumeID; /* 01h */ | 2284 | U8 VolumeID; /* 01h */ |
2222 | U8 VolumeBus; /* 02h */ | 2285 | U8 VolumeBus; /* 02h */ |
2223 | U8 VolumeIOC; /* 03h */ | 2286 | U8 VolumeIOC; /* 03h */ |
2224 | U8 Reserved0; /* 04h */ | 2287 | U8 Reserved0; /* 04h */ |
2225 | U8 GUID[24]; /* 05h */ | 2288 | U8 GUID[24]; /* 05h */ |
2226 | U8 Name[32]; /* 20h */ | 2289 | U8 Name[32]; /* 20h */ |
2227 | U64 WWID; /* 40h */ | 2290 | U64 WWID; /* 40h */ |
2228 | U32 Reserved1; /* 48h */ | 2291 | U32 Reserved1; /* 48h */ |
2229 | U32 Reserved2; /* 4Ch */ | 2292 | U32 Reserved2; /* 4Ch */ |
2230 | } CONFIG_PAGE_RAID_VOL_1, MPI_POINTER PTR_CONFIG_PAGE_RAID_VOL_1, | 2293 | } CONFIG_PAGE_RAID_VOL_1, MPI_POINTER PTR_CONFIG_PAGE_RAID_VOL_1, |
2231 | RaidVolumePage1_t, MPI_POINTER pRaidVolumePage1_t; | 2294 | RaidVolumePage1_t, MPI_POINTER pRaidVolumePage1_t; |
2232 | 2295 | ||
2233 | #define MPI_RAIDVOLPAGE1_PAGEVERSION (0x01) | 2296 | #define MPI_RAIDVOLPAGE1_PAGEVERSION (0x01) |
2234 | 2297 | ||
2235 | 2298 | ||
2236 | /**************************************************************************** | 2299 | /**************************************************************************** |
2237 | * RAID Physical Disk Config Pages | 2300 | * RAID Physical Disk Config Pages |
2238 | ****************************************************************************/ | 2301 | ****************************************************************************/ |
2239 | 2302 | ||
2240 | typedef struct _RAID_PHYS_DISK0_ERROR_DATA | 2303 | typedef struct _RAID_PHYS_DISK0_ERROR_DATA |
2241 | { | 2304 | { |
2242 | U8 ErrorCdbByte; /* 00h */ | 2305 | U8 ErrorCdbByte; /* 00h */ |
2243 | U8 ErrorSenseKey; /* 01h */ | 2306 | U8 ErrorSenseKey; /* 01h */ |
2244 | U16 Reserved; /* 02h */ | 2307 | U16 Reserved; /* 02h */ |
2245 | U16 ErrorCount; /* 04h */ | 2308 | U16 ErrorCount; /* 04h */ |
2246 | U8 ErrorASC; /* 06h */ | 2309 | U8 ErrorASC; /* 06h */ |
2247 | U8 ErrorASCQ; /* 07h */ | 2310 | U8 ErrorASCQ; /* 07h */ |
2248 | U16 SmartCount; /* 08h */ | 2311 | U16 SmartCount; /* 08h */ |
2249 | U8 SmartASC; /* 0Ah */ | 2312 | U8 SmartASC; /* 0Ah */ |
2250 | U8 SmartASCQ; /* 0Bh */ | 2313 | U8 SmartASCQ; /* 0Bh */ |
2251 | } RAID_PHYS_DISK0_ERROR_DATA, MPI_POINTER PTR_RAID_PHYS_DISK0_ERROR_DATA, | 2314 | } RAID_PHYS_DISK0_ERROR_DATA, MPI_POINTER PTR_RAID_PHYS_DISK0_ERROR_DATA, |
2252 | RaidPhysDisk0ErrorData_t, MPI_POINTER pRaidPhysDisk0ErrorData_t; | 2315 | RaidPhysDisk0ErrorData_t, MPI_POINTER pRaidPhysDisk0ErrorData_t; |
2253 | 2316 | ||
2254 | typedef struct _RAID_PHYS_DISK_INQUIRY_DATA | 2317 | typedef struct _RAID_PHYS_DISK_INQUIRY_DATA |
2255 | { | 2318 | { |
2256 | U8 VendorID[8]; /* 00h */ | 2319 | U8 VendorID[8]; /* 00h */ |
2257 | U8 ProductID[16]; /* 08h */ | 2320 | U8 ProductID[16]; /* 08h */ |
2258 | U8 ProductRevLevel[4]; /* 18h */ | 2321 | U8 ProductRevLevel[4]; /* 18h */ |
2259 | U8 Info[32]; /* 1Ch */ | 2322 | U8 Info[32]; /* 1Ch */ |
2260 | } RAID_PHYS_DISK0_INQUIRY_DATA, MPI_POINTER PTR_RAID_PHYS_DISK0_INQUIRY_DATA, | 2323 | } RAID_PHYS_DISK0_INQUIRY_DATA, MPI_POINTER PTR_RAID_PHYS_DISK0_INQUIRY_DATA, |
2261 | RaidPhysDisk0InquiryData, MPI_POINTER pRaidPhysDisk0InquiryData; | 2324 | RaidPhysDisk0InquiryData, MPI_POINTER pRaidPhysDisk0InquiryData; |
2262 | 2325 | ||
2263 | typedef struct _RAID_PHYS_DISK0_SETTINGS | 2326 | typedef struct _RAID_PHYS_DISK0_SETTINGS |
2264 | { | 2327 | { |
2265 | U8 SepID; /* 00h */ | 2328 | U8 SepID; /* 00h */ |
2266 | U8 SepBus; /* 01h */ | 2329 | U8 SepBus; /* 01h */ |
2267 | U8 HotSparePool; /* 02h */ /* MPI_RAID_HOT_SPARE_POOL_ */ | 2330 | U8 HotSparePool; /* 02h */ /* MPI_RAID_HOT_SPARE_POOL_ */ |
2268 | U8 PhysDiskSettings; /* 03h */ | 2331 | U8 PhysDiskSettings; /* 03h */ |
2269 | } RAID_PHYS_DISK0_SETTINGS, MPI_POINTER PTR_RAID_PHYS_DISK0_SETTINGS, | 2332 | } RAID_PHYS_DISK0_SETTINGS, MPI_POINTER PTR_RAID_PHYS_DISK0_SETTINGS, |
2270 | RaidPhysDiskSettings_t, MPI_POINTER pRaidPhysDiskSettings_t; | 2333 | RaidPhysDiskSettings_t, MPI_POINTER pRaidPhysDiskSettings_t; |
2271 | 2334 | ||
2272 | typedef struct _RAID_PHYS_DISK0_STATUS | 2335 | typedef struct _RAID_PHYS_DISK0_STATUS |
2273 | { | 2336 | { |
2274 | U8 Flags; /* 00h */ | 2337 | U8 Flags; /* 00h */ |
2275 | U8 State; /* 01h */ | 2338 | U8 State; /* 01h */ |
2276 | U16 Reserved; /* 02h */ | 2339 | U16 Reserved; /* 02h */ |
2277 | } RAID_PHYS_DISK0_STATUS, MPI_POINTER PTR_RAID_PHYS_DISK0_STATUS, | 2340 | } RAID_PHYS_DISK0_STATUS, MPI_POINTER PTR_RAID_PHYS_DISK0_STATUS, |
2278 | RaidPhysDiskStatus_t, MPI_POINTER pRaidPhysDiskStatus_t; | 2341 | RaidPhysDiskStatus_t, MPI_POINTER pRaidPhysDiskStatus_t; |
2279 | 2342 | ||
2280 | /* RAID Volume 2 IM Physical Disk DiskStatus flags */ | 2343 | /* RAID Volume 2 IM Physical Disk DiskStatus flags */ |
2281 | 2344 | ||
2282 | #define MPI_PHYSDISK0_STATUS_FLAG_OUT_OF_SYNC (0x01) | 2345 | #define MPI_PHYSDISK0_STATUS_FLAG_OUT_OF_SYNC (0x01) |
2283 | #define MPI_PHYSDISK0_STATUS_FLAG_QUIESCED (0x02) | 2346 | #define MPI_PHYSDISK0_STATUS_FLAG_QUIESCED (0x02) |
2284 | #define MPI_PHYSDISK0_STATUS_FLAG_INACTIVE_VOLUME (0x04) | 2347 | #define MPI_PHYSDISK0_STATUS_FLAG_INACTIVE_VOLUME (0x04) |
2285 | #define MPI_PHYSDISK0_STATUS_FLAG_OPTIMAL_PREVIOUS (0x00) | 2348 | #define MPI_PHYSDISK0_STATUS_FLAG_OPTIMAL_PREVIOUS (0x00) |
2286 | #define MPI_PHYSDISK0_STATUS_FLAG_NOT_OPTIMAL_PREVIOUS (0x08) | 2349 | #define MPI_PHYSDISK0_STATUS_FLAG_NOT_OPTIMAL_PREVIOUS (0x08) |
2287 | 2350 | ||
2288 | #define MPI_PHYSDISK0_STATUS_ONLINE (0x00) | 2351 | #define MPI_PHYSDISK0_STATUS_ONLINE (0x00) |
2289 | #define MPI_PHYSDISK0_STATUS_MISSING (0x01) | 2352 | #define MPI_PHYSDISK0_STATUS_MISSING (0x01) |
2290 | #define MPI_PHYSDISK0_STATUS_NOT_COMPATIBLE (0x02) | 2353 | #define MPI_PHYSDISK0_STATUS_NOT_COMPATIBLE (0x02) |
2291 | #define MPI_PHYSDISK0_STATUS_FAILED (0x03) | 2354 | #define MPI_PHYSDISK0_STATUS_FAILED (0x03) |
2292 | #define MPI_PHYSDISK0_STATUS_INITIALIZING (0x04) | 2355 | #define MPI_PHYSDISK0_STATUS_INITIALIZING (0x04) |
2293 | #define MPI_PHYSDISK0_STATUS_OFFLINE_REQUESTED (0x05) | 2356 | #define MPI_PHYSDISK0_STATUS_OFFLINE_REQUESTED (0x05) |
2294 | #define MPI_PHYSDISK0_STATUS_FAILED_REQUESTED (0x06) | 2357 | #define MPI_PHYSDISK0_STATUS_FAILED_REQUESTED (0x06) |
2295 | #define MPI_PHYSDISK0_STATUS_OTHER_OFFLINE (0xFF) | 2358 | #define MPI_PHYSDISK0_STATUS_OTHER_OFFLINE (0xFF) |
2296 | 2359 | ||
2297 | typedef struct _CONFIG_PAGE_RAID_PHYS_DISK_0 | 2360 | typedef struct _CONFIG_PAGE_RAID_PHYS_DISK_0 |
2298 | { | 2361 | { |
2299 | CONFIG_PAGE_HEADER Header; /* 00h */ | 2362 | CONFIG_PAGE_HEADER Header; /* 00h */ |
2300 | U8 PhysDiskID; /* 04h */ | 2363 | U8 PhysDiskID; /* 04h */ |
2301 | U8 PhysDiskBus; /* 05h */ | 2364 | U8 PhysDiskBus; /* 05h */ |
2302 | U8 PhysDiskIOC; /* 06h */ | 2365 | U8 PhysDiskIOC; /* 06h */ |
2303 | U8 PhysDiskNum; /* 07h */ | 2366 | U8 PhysDiskNum; /* 07h */ |
2304 | RAID_PHYS_DISK0_SETTINGS PhysDiskSettings; /* 08h */ | 2367 | RAID_PHYS_DISK0_SETTINGS PhysDiskSettings; /* 08h */ |
2305 | U32 Reserved1; /* 0Ch */ | 2368 | U32 Reserved1; /* 0Ch */ |
2306 | U8 ExtDiskIdentifier[8]; /* 10h */ | 2369 | U8 ExtDiskIdentifier[8]; /* 10h */ |
2307 | U8 DiskIdentifier[16]; /* 18h */ | 2370 | U8 DiskIdentifier[16]; /* 18h */ |
2308 | RAID_PHYS_DISK0_INQUIRY_DATA InquiryData; /* 28h */ | 2371 | RAID_PHYS_DISK0_INQUIRY_DATA InquiryData; /* 28h */ |
2309 | RAID_PHYS_DISK0_STATUS PhysDiskStatus; /* 64h */ | 2372 | RAID_PHYS_DISK0_STATUS PhysDiskStatus; /* 64h */ |
2310 | U32 MaxLBA; /* 68h */ | 2373 | U32 MaxLBA; /* 68h */ |
2311 | RAID_PHYS_DISK0_ERROR_DATA ErrorData; /* 6Ch */ | 2374 | RAID_PHYS_DISK0_ERROR_DATA ErrorData; /* 6Ch */ |
2312 | } CONFIG_PAGE_RAID_PHYS_DISK_0, MPI_POINTER PTR_CONFIG_PAGE_RAID_PHYS_DISK_0, | 2375 | } CONFIG_PAGE_RAID_PHYS_DISK_0, MPI_POINTER PTR_CONFIG_PAGE_RAID_PHYS_DISK_0, |
2313 | RaidPhysDiskPage0_t, MPI_POINTER pRaidPhysDiskPage0_t; | 2376 | RaidPhysDiskPage0_t, MPI_POINTER pRaidPhysDiskPage0_t; |
2314 | 2377 | ||
2315 | #define MPI_RAIDPHYSDISKPAGE0_PAGEVERSION (0x02) | 2378 | #define MPI_RAIDPHYSDISKPAGE0_PAGEVERSION (0x02) |
2316 | 2379 | ||
2317 | 2380 | ||
2318 | typedef struct _RAID_PHYS_DISK1_PATH | 2381 | typedef struct _RAID_PHYS_DISK1_PATH |
2319 | { | 2382 | { |
2320 | U8 PhysDiskID; /* 00h */ | 2383 | U8 PhysDiskID; /* 00h */ |
2321 | U8 PhysDiskBus; /* 01h */ | 2384 | U8 PhysDiskBus; /* 01h */ |
2322 | U16 Reserved1; /* 02h */ | 2385 | U16 Reserved1; /* 02h */ |
2323 | U64 WWID; /* 04h */ | 2386 | U64 WWID; /* 04h */ |
2324 | U64 OwnerWWID; /* 0Ch */ | 2387 | U64 OwnerWWID; /* 0Ch */ |
2325 | U8 OwnerIdentifier; /* 14h */ | 2388 | U8 OwnerIdentifier; /* 14h */ |
2326 | U8 Reserved2; /* 15h */ | 2389 | U8 Reserved2; /* 15h */ |
2327 | U16 Flags; /* 16h */ | 2390 | U16 Flags; /* 16h */ |
2328 | } RAID_PHYS_DISK1_PATH, MPI_POINTER PTR_RAID_PHYS_DISK1_PATH, | 2391 | } RAID_PHYS_DISK1_PATH, MPI_POINTER PTR_RAID_PHYS_DISK1_PATH, |
2329 | RaidPhysDisk1Path_t, MPI_POINTER pRaidPhysDisk1Path_t; | 2392 | RaidPhysDisk1Path_t, MPI_POINTER pRaidPhysDisk1Path_t; |
2330 | 2393 | ||
2331 | /* RAID Physical Disk Page 1 Flags field defines */ | 2394 | /* RAID Physical Disk Page 1 Flags field defines */ |
2332 | #define MPI_RAID_PHYSDISK1_FLAG_BROKEN (0x0002) | 2395 | #define MPI_RAID_PHYSDISK1_FLAG_BROKEN (0x0002) |
2333 | #define MPI_RAID_PHYSDISK1_FLAG_INVALID (0x0001) | 2396 | #define MPI_RAID_PHYSDISK1_FLAG_INVALID (0x0001) |
2334 | 2397 | ||
2335 | typedef struct _CONFIG_PAGE_RAID_PHYS_DISK_1 | 2398 | typedef struct _CONFIG_PAGE_RAID_PHYS_DISK_1 |
2336 | { | 2399 | { |
2337 | CONFIG_PAGE_HEADER Header; /* 00h */ | 2400 | CONFIG_PAGE_HEADER Header; /* 00h */ |
2338 | U8 NumPhysDiskPaths; /* 04h */ | 2401 | U8 NumPhysDiskPaths; /* 04h */ |
2339 | U8 PhysDiskNum; /* 05h */ | 2402 | U8 PhysDiskNum; /* 05h */ |
2340 | U16 Reserved2; /* 06h */ | 2403 | U16 Reserved2; /* 06h */ |
2341 | U32 Reserved1; /* 08h */ | 2404 | U32 Reserved1; /* 08h */ |
2342 | RAID_PHYS_DISK1_PATH Path[1]; /* 0Ch */ | 2405 | RAID_PHYS_DISK1_PATH Path[1]; /* 0Ch */ |
2343 | } CONFIG_PAGE_RAID_PHYS_DISK_1, MPI_POINTER PTR_CONFIG_PAGE_RAID_PHYS_DISK_1, | 2406 | } CONFIG_PAGE_RAID_PHYS_DISK_1, MPI_POINTER PTR_CONFIG_PAGE_RAID_PHYS_DISK_1, |
2344 | RaidPhysDiskPage1_t, MPI_POINTER pRaidPhysDiskPage1_t; | 2407 | RaidPhysDiskPage1_t, MPI_POINTER pRaidPhysDiskPage1_t; |
2345 | 2408 | ||
2346 | #define MPI_RAIDPHYSDISKPAGE1_PAGEVERSION (0x00) | 2409 | #define MPI_RAIDPHYSDISKPAGE1_PAGEVERSION (0x00) |
2347 | 2410 | ||
2348 | 2411 | ||
2349 | /**************************************************************************** | 2412 | /**************************************************************************** |
2350 | * LAN Config Pages | 2413 | * LAN Config Pages |
2351 | ****************************************************************************/ | 2414 | ****************************************************************************/ |
2352 | 2415 | ||
2353 | typedef struct _CONFIG_PAGE_LAN_0 | 2416 | typedef struct _CONFIG_PAGE_LAN_0 |
2354 | { | 2417 | { |
2355 | ConfigPageHeader_t Header; /* 00h */ | 2418 | ConfigPageHeader_t Header; /* 00h */ |
2356 | U16 TxRxModes; /* 04h */ | 2419 | U16 TxRxModes; /* 04h */ |
2357 | U16 Reserved; /* 06h */ | 2420 | U16 Reserved; /* 06h */ |
2358 | U32 PacketPrePad; /* 08h */ | 2421 | U32 PacketPrePad; /* 08h */ |
2359 | } CONFIG_PAGE_LAN_0, MPI_POINTER PTR_CONFIG_PAGE_LAN_0, | 2422 | } CONFIG_PAGE_LAN_0, MPI_POINTER PTR_CONFIG_PAGE_LAN_0, |
2360 | LANPage0_t, MPI_POINTER pLANPage0_t; | 2423 | LANPage0_t, MPI_POINTER pLANPage0_t; |
2361 | 2424 | ||
2362 | #define MPI_LAN_PAGE0_PAGEVERSION (0x01) | 2425 | #define MPI_LAN_PAGE0_PAGEVERSION (0x01) |
2363 | 2426 | ||
2364 | #define MPI_LAN_PAGE0_RETURN_LOOPBACK (0x0000) | 2427 | #define MPI_LAN_PAGE0_RETURN_LOOPBACK (0x0000) |
2365 | #define MPI_LAN_PAGE0_SUPPRESS_LOOPBACK (0x0001) | 2428 | #define MPI_LAN_PAGE0_SUPPRESS_LOOPBACK (0x0001) |
2366 | #define MPI_LAN_PAGE0_LOOPBACK_MASK (0x0001) | 2429 | #define MPI_LAN_PAGE0_LOOPBACK_MASK (0x0001) |
2367 | 2430 | ||
2368 | typedef struct _CONFIG_PAGE_LAN_1 | 2431 | typedef struct _CONFIG_PAGE_LAN_1 |
2369 | { | 2432 | { |
2370 | ConfigPageHeader_t Header; /* 00h */ | 2433 | ConfigPageHeader_t Header; /* 00h */ |
2371 | U16 Reserved; /* 04h */ | 2434 | U16 Reserved; /* 04h */ |
2372 | U8 CurrentDeviceState; /* 06h */ | 2435 | U8 CurrentDeviceState; /* 06h */ |
2373 | U8 Reserved1; /* 07h */ | 2436 | U8 Reserved1; /* 07h */ |
2374 | U32 MinPacketSize; /* 08h */ | 2437 | U32 MinPacketSize; /* 08h */ |
2375 | U32 MaxPacketSize; /* 0Ch */ | 2438 | U32 MaxPacketSize; /* 0Ch */ |
2376 | U32 HardwareAddressLow; /* 10h */ | 2439 | U32 HardwareAddressLow; /* 10h */ |
2377 | U32 HardwareAddressHigh; /* 14h */ | 2440 | U32 HardwareAddressHigh; /* 14h */ |
2378 | U32 MaxWireSpeedLow; /* 18h */ | 2441 | U32 MaxWireSpeedLow; /* 18h */ |
2379 | U32 MaxWireSpeedHigh; /* 1Ch */ | 2442 | U32 MaxWireSpeedHigh; /* 1Ch */ |
2380 | U32 BucketsRemaining; /* 20h */ | 2443 | U32 BucketsRemaining; /* 20h */ |
2381 | U32 MaxReplySize; /* 24h */ | 2444 | U32 MaxReplySize; /* 24h */ |
2382 | U32 NegWireSpeedLow; /* 28h */ | 2445 | U32 NegWireSpeedLow; /* 28h */ |
2383 | U32 NegWireSpeedHigh; /* 2Ch */ | 2446 | U32 NegWireSpeedHigh; /* 2Ch */ |
2384 | } CONFIG_PAGE_LAN_1, MPI_POINTER PTR_CONFIG_PAGE_LAN_1, | 2447 | } CONFIG_PAGE_LAN_1, MPI_POINTER PTR_CONFIG_PAGE_LAN_1, |
2385 | LANPage1_t, MPI_POINTER pLANPage1_t; | 2448 | LANPage1_t, MPI_POINTER pLANPage1_t; |
2386 | 2449 | ||
2387 | #define MPI_LAN_PAGE1_PAGEVERSION (0x03) | 2450 | #define MPI_LAN_PAGE1_PAGEVERSION (0x03) |
2388 | 2451 | ||
2389 | #define MPI_LAN_PAGE1_DEV_STATE_RESET (0x00) | 2452 | #define MPI_LAN_PAGE1_DEV_STATE_RESET (0x00) |
2390 | #define MPI_LAN_PAGE1_DEV_STATE_OPERATIONAL (0x01) | 2453 | #define MPI_LAN_PAGE1_DEV_STATE_OPERATIONAL (0x01) |
2391 | 2454 | ||
2392 | 2455 | ||
2393 | /**************************************************************************** | 2456 | /**************************************************************************** |
2394 | * Inband Config Pages | 2457 | * Inband Config Pages |
2395 | ****************************************************************************/ | 2458 | ****************************************************************************/ |
2396 | 2459 | ||
2397 | typedef struct _CONFIG_PAGE_INBAND_0 | 2460 | typedef struct _CONFIG_PAGE_INBAND_0 |
2398 | { | 2461 | { |
2399 | CONFIG_PAGE_HEADER Header; /* 00h */ | 2462 | CONFIG_PAGE_HEADER Header; /* 00h */ |
2400 | MPI_VERSION_FORMAT InbandVersion; /* 04h */ | 2463 | MPI_VERSION_FORMAT InbandVersion; /* 04h */ |
2401 | U16 MaximumBuffers; /* 08h */ | 2464 | U16 MaximumBuffers; /* 08h */ |
2402 | U16 Reserved1; /* 0Ah */ | 2465 | U16 Reserved1; /* 0Ah */ |
2403 | } CONFIG_PAGE_INBAND_0, MPI_POINTER PTR_CONFIG_PAGE_INBAND_0, | 2466 | } CONFIG_PAGE_INBAND_0, MPI_POINTER PTR_CONFIG_PAGE_INBAND_0, |
2404 | InbandPage0_t, MPI_POINTER pInbandPage0_t; | 2467 | InbandPage0_t, MPI_POINTER pInbandPage0_t; |
2405 | 2468 | ||
2406 | #define MPI_INBAND_PAGEVERSION (0x00) | 2469 | #define MPI_INBAND_PAGEVERSION (0x00) |
2407 | 2470 | ||
2408 | 2471 | ||
2409 | 2472 | ||
2410 | /**************************************************************************** | 2473 | /**************************************************************************** |
2411 | * SAS IO Unit Config Pages | 2474 | * SAS IO Unit Config Pages |
2412 | ****************************************************************************/ | 2475 | ****************************************************************************/ |
2413 | 2476 | ||
2414 | typedef struct _MPI_SAS_IO_UNIT0_PHY_DATA | 2477 | typedef struct _MPI_SAS_IO_UNIT0_PHY_DATA |
2415 | { | 2478 | { |
2416 | U8 Port; /* 00h */ | 2479 | U8 Port; /* 00h */ |
2417 | U8 PortFlags; /* 01h */ | 2480 | U8 PortFlags; /* 01h */ |
2418 | U8 PhyFlags; /* 02h */ | 2481 | U8 PhyFlags; /* 02h */ |
2419 | U8 NegotiatedLinkRate; /* 03h */ | 2482 | U8 NegotiatedLinkRate; /* 03h */ |
2420 | U32 ControllerPhyDeviceInfo;/* 04h */ | 2483 | U32 ControllerPhyDeviceInfo;/* 04h */ |
2421 | U16 AttachedDeviceHandle; /* 08h */ | 2484 | U16 AttachedDeviceHandle; /* 08h */ |
2422 | U16 ControllerDevHandle; /* 0Ah */ | 2485 | U16 ControllerDevHandle; /* 0Ah */ |
2423 | U32 DiscoveryStatus; /* 0Ch */ | 2486 | U32 DiscoveryStatus; /* 0Ch */ |
2424 | } MPI_SAS_IO_UNIT0_PHY_DATA, MPI_POINTER PTR_MPI_SAS_IO_UNIT0_PHY_DATA, | 2487 | } MPI_SAS_IO_UNIT0_PHY_DATA, MPI_POINTER PTR_MPI_SAS_IO_UNIT0_PHY_DATA, |
2425 | SasIOUnit0PhyData, MPI_POINTER pSasIOUnit0PhyData; | 2488 | SasIOUnit0PhyData, MPI_POINTER pSasIOUnit0PhyData; |
2426 | 2489 | ||
2427 | /* | 2490 | /* |
2428 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | 2491 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to |
2429 | * one and check Header.PageLength at runtime. | 2492 | * one and check Header.PageLength at runtime. |
2430 | */ | 2493 | */ |
2431 | #ifndef MPI_SAS_IOUNIT0_PHY_MAX | 2494 | #ifndef MPI_SAS_IOUNIT0_PHY_MAX |
2432 | #define MPI_SAS_IOUNIT0_PHY_MAX (1) | 2495 | #define MPI_SAS_IOUNIT0_PHY_MAX (1) |
2433 | #endif | 2496 | #endif |
2434 | 2497 | ||
2435 | typedef struct _CONFIG_PAGE_SAS_IO_UNIT_0 | 2498 | typedef struct _CONFIG_PAGE_SAS_IO_UNIT_0 |
2436 | { | 2499 | { |
2437 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ | 2500 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ |
2438 | U16 NvdataVersionDefault; /* 08h */ | 2501 | U16 NvdataVersionDefault; /* 08h */ |
2439 | U16 NvdataVersionPersistent; /* 0Ah */ | 2502 | U16 NvdataVersionPersistent; /* 0Ah */ |
2440 | U8 NumPhys; /* 0Ch */ | 2503 | U8 NumPhys; /* 0Ch */ |
2441 | U8 Reserved2; /* 0Dh */ | 2504 | U8 Reserved2; /* 0Dh */ |
2442 | U16 Reserved3; /* 0Eh */ | 2505 | U16 Reserved3; /* 0Eh */ |
2443 | MPI_SAS_IO_UNIT0_PHY_DATA PhyData[MPI_SAS_IOUNIT0_PHY_MAX]; /* 10h */ | 2506 | MPI_SAS_IO_UNIT0_PHY_DATA PhyData[MPI_SAS_IOUNIT0_PHY_MAX]; /* 10h */ |
2444 | } CONFIG_PAGE_SAS_IO_UNIT_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_0, | 2507 | } CONFIG_PAGE_SAS_IO_UNIT_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_0, |
2445 | SasIOUnitPage0_t, MPI_POINTER pSasIOUnitPage0_t; | 2508 | SasIOUnitPage0_t, MPI_POINTER pSasIOUnitPage0_t; |
2446 | 2509 | ||
2447 | #define MPI_SASIOUNITPAGE0_PAGEVERSION (0x04) | 2510 | #define MPI_SASIOUNITPAGE0_PAGEVERSION (0x04) |
2448 | 2511 | ||
2449 | /* values for SAS IO Unit Page 0 PortFlags */ | 2512 | /* values for SAS IO Unit Page 0 PortFlags */ |
2450 | #define MPI_SAS_IOUNIT0_PORT_FLAGS_DISCOVERY_IN_PROGRESS (0x08) | 2513 | #define MPI_SAS_IOUNIT0_PORT_FLAGS_DISCOVERY_IN_PROGRESS (0x08) |
2451 | #define MPI_SAS_IOUNIT0_PORT_FLAGS_0_TARGET_IOC_NUM (0x00) | 2514 | #define MPI_SAS_IOUNIT0_PORT_FLAGS_0_TARGET_IOC_NUM (0x00) |
2452 | #define MPI_SAS_IOUNIT0_PORT_FLAGS_1_TARGET_IOC_NUM (0x04) | 2515 | #define MPI_SAS_IOUNIT0_PORT_FLAGS_1_TARGET_IOC_NUM (0x04) |
2453 | #define MPI_SAS_IOUNIT0_PORT_FLAGS_AUTO_PORT_CONFIG (0x01) | 2516 | #define MPI_SAS_IOUNIT0_PORT_FLAGS_AUTO_PORT_CONFIG (0x01) |
2454 | 2517 | ||
2455 | /* values for SAS IO Unit Page 0 PhyFlags */ | 2518 | /* values for SAS IO Unit Page 0 PhyFlags */ |
2456 | #define MPI_SAS_IOUNIT0_PHY_FLAGS_PHY_DISABLED (0x04) | 2519 | #define MPI_SAS_IOUNIT0_PHY_FLAGS_PHY_DISABLED (0x04) |
2457 | #define MPI_SAS_IOUNIT0_PHY_FLAGS_TX_INVERT (0x02) | 2520 | #define MPI_SAS_IOUNIT0_PHY_FLAGS_TX_INVERT (0x02) |
2458 | #define MPI_SAS_IOUNIT0_PHY_FLAGS_RX_INVERT (0x01) | 2521 | #define MPI_SAS_IOUNIT0_PHY_FLAGS_RX_INVERT (0x01) |
2459 | 2522 | ||
2460 | /* values for SAS IO Unit Page 0 NegotiatedLinkRate */ | 2523 | /* values for SAS IO Unit Page 0 NegotiatedLinkRate */ |
2461 | #define MPI_SAS_IOUNIT0_RATE_UNKNOWN (0x00) | 2524 | #define MPI_SAS_IOUNIT0_RATE_UNKNOWN (0x00) |
2462 | #define MPI_SAS_IOUNIT0_RATE_PHY_DISABLED (0x01) | 2525 | #define MPI_SAS_IOUNIT0_RATE_PHY_DISABLED (0x01) |
2463 | #define MPI_SAS_IOUNIT0_RATE_FAILED_SPEED_NEGOTIATION (0x02) | 2526 | #define MPI_SAS_IOUNIT0_RATE_FAILED_SPEED_NEGOTIATION (0x02) |
2464 | #define MPI_SAS_IOUNIT0_RATE_SATA_OOB_COMPLETE (0x03) | 2527 | #define MPI_SAS_IOUNIT0_RATE_SATA_OOB_COMPLETE (0x03) |
2465 | #define MPI_SAS_IOUNIT0_RATE_1_5 (0x08) | 2528 | #define MPI_SAS_IOUNIT0_RATE_1_5 (0x08) |
2466 | #define MPI_SAS_IOUNIT0_RATE_3_0 (0x09) | 2529 | #define MPI_SAS_IOUNIT0_RATE_3_0 (0x09) |
2467 | 2530 | ||
2468 | /* see mpi_sas.h for values for SAS IO Unit Page 0 ControllerPhyDeviceInfo values */ | 2531 | /* see mpi_sas.h for values for SAS IO Unit Page 0 ControllerPhyDeviceInfo values */ |
2469 | 2532 | ||
2470 | /* values for SAS IO Unit Page 0 DiscoveryStatus */ | 2533 | /* values for SAS IO Unit Page 0 DiscoveryStatus */ |
2471 | #define MPI_SAS_IOUNIT0_DS_LOOP_DETECTED (0x00000001) | 2534 | #define MPI_SAS_IOUNIT0_DS_LOOP_DETECTED (0x00000001) |
2472 | #define MPI_SAS_IOUNIT0_DS_UNADDRESSABLE_DEVICE (0x00000002) | 2535 | #define MPI_SAS_IOUNIT0_DS_UNADDRESSABLE_DEVICE (0x00000002) |
2473 | #define MPI_SAS_IOUNIT0_DS_MULTIPLE_PORTS (0x00000004) | 2536 | #define MPI_SAS_IOUNIT0_DS_MULTIPLE_PORTS (0x00000004) |
2474 | #define MPI_SAS_IOUNIT0_DS_EXPANDER_ERR (0x00000008) | 2537 | #define MPI_SAS_IOUNIT0_DS_EXPANDER_ERR (0x00000008) |
2475 | #define MPI_SAS_IOUNIT0_DS_SMP_TIMEOUT (0x00000010) | 2538 | #define MPI_SAS_IOUNIT0_DS_SMP_TIMEOUT (0x00000010) |
2476 | #define MPI_SAS_IOUNIT0_DS_OUT_ROUTE_ENTRIES (0x00000020) | 2539 | #define MPI_SAS_IOUNIT0_DS_OUT_ROUTE_ENTRIES (0x00000020) |
2477 | #define MPI_SAS_IOUNIT0_DS_INDEX_NOT_EXIST (0x00000040) | 2540 | #define MPI_SAS_IOUNIT0_DS_INDEX_NOT_EXIST (0x00000040) |
2478 | #define MPI_SAS_IOUNIT0_DS_SMP_FUNCTION_FAILED (0x00000080) | 2541 | #define MPI_SAS_IOUNIT0_DS_SMP_FUNCTION_FAILED (0x00000080) |
2479 | #define MPI_SAS_IOUNIT0_DS_SMP_CRC_ERROR (0x00000100) | 2542 | #define MPI_SAS_IOUNIT0_DS_SMP_CRC_ERROR (0x00000100) |
2480 | #define MPI_SAS_IOUNIT0_DS_SUBTRACTIVE_LINK (0x00000200) | 2543 | #define MPI_SAS_IOUNIT0_DS_SUBTRACTIVE_LINK (0x00000200) |
2481 | #define MPI_SAS_IOUNIT0_DS_TABLE_LINK (0x00000400) | 2544 | #define MPI_SAS_IOUNIT0_DS_TABLE_LINK (0x00000400) |
2482 | #define MPI_SAS_IOUNIT0_DS_UNSUPPORTED_DEVICE (0x00000800) | 2545 | #define MPI_SAS_IOUNIT0_DS_UNSUPPORTED_DEVICE (0x00000800) |
2483 | #define MPI_SAS_IOUNIT0_DS_MAX_SATA_TARGETS (0x00001000) | 2546 | #define MPI_SAS_IOUNIT0_DS_MAX_SATA_TARGETS (0x00001000) |
2484 | 2547 | ||
2485 | 2548 | ||
2486 | typedef struct _MPI_SAS_IO_UNIT1_PHY_DATA | 2549 | typedef struct _MPI_SAS_IO_UNIT1_PHY_DATA |
2487 | { | 2550 | { |
2488 | U8 Port; /* 00h */ | 2551 | U8 Port; /* 00h */ |
2489 | U8 PortFlags; /* 01h */ | 2552 | U8 PortFlags; /* 01h */ |
2490 | U8 PhyFlags; /* 02h */ | 2553 | U8 PhyFlags; /* 02h */ |
2491 | U8 MaxMinLinkRate; /* 03h */ | 2554 | U8 MaxMinLinkRate; /* 03h */ |
2492 | U32 ControllerPhyDeviceInfo; /* 04h */ | 2555 | U32 ControllerPhyDeviceInfo; /* 04h */ |
2493 | U16 MaxTargetPortConnectTime; /* 08h */ | 2556 | U16 MaxTargetPortConnectTime; /* 08h */ |
2494 | U16 Reserved1; /* 0Ah */ | 2557 | U16 Reserved1; /* 0Ah */ |
2495 | } MPI_SAS_IO_UNIT1_PHY_DATA, MPI_POINTER PTR_MPI_SAS_IO_UNIT1_PHY_DATA, | 2558 | } MPI_SAS_IO_UNIT1_PHY_DATA, MPI_POINTER PTR_MPI_SAS_IO_UNIT1_PHY_DATA, |
2496 | SasIOUnit1PhyData, MPI_POINTER pSasIOUnit1PhyData; | 2559 | SasIOUnit1PhyData, MPI_POINTER pSasIOUnit1PhyData; |
2497 | 2560 | ||
2498 | /* | 2561 | /* |
2499 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | 2562 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to |
2500 | * one and check Header.PageLength at runtime. | 2563 | * one and check Header.PageLength at runtime. |
2501 | */ | 2564 | */ |
2502 | #ifndef MPI_SAS_IOUNIT1_PHY_MAX | 2565 | #ifndef MPI_SAS_IOUNIT1_PHY_MAX |
2503 | #define MPI_SAS_IOUNIT1_PHY_MAX (1) | 2566 | #define MPI_SAS_IOUNIT1_PHY_MAX (1) |
2504 | #endif | 2567 | #endif |
2505 | 2568 | ||
2506 | typedef struct _CONFIG_PAGE_SAS_IO_UNIT_1 | 2569 | typedef struct _CONFIG_PAGE_SAS_IO_UNIT_1 |
2507 | { | 2570 | { |
2508 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ | 2571 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ |
2509 | U16 ControlFlags; /* 08h */ | 2572 | U16 ControlFlags; /* 08h */ |
2510 | U16 MaxNumSATATargets; /* 0Ah */ | 2573 | U16 MaxNumSATATargets; /* 0Ah */ |
2511 | U16 AdditionalControlFlags; /* 0Ch */ | 2574 | U16 AdditionalControlFlags; /* 0Ch */ |
2512 | U16 Reserved1; /* 0Eh */ | 2575 | U16 Reserved1; /* 0Eh */ |
2513 | U8 NumPhys; /* 10h */ | 2576 | U8 NumPhys; /* 10h */ |
2514 | U8 SATAMaxQDepth; /* 11h */ | 2577 | U8 SATAMaxQDepth; /* 11h */ |
2515 | U8 ReportDeviceMissingDelay; /* 12h */ | 2578 | U8 ReportDeviceMissingDelay; /* 12h */ |
2516 | U8 IODeviceMissingDelay; /* 13h */ | 2579 | U8 IODeviceMissingDelay; /* 13h */ |
2517 | MPI_SAS_IO_UNIT1_PHY_DATA PhyData[MPI_SAS_IOUNIT1_PHY_MAX]; /* 14h */ | 2580 | MPI_SAS_IO_UNIT1_PHY_DATA PhyData[MPI_SAS_IOUNIT1_PHY_MAX]; /* 14h */ |
2518 | } CONFIG_PAGE_SAS_IO_UNIT_1, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_1, | 2581 | } CONFIG_PAGE_SAS_IO_UNIT_1, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_1, |
2519 | SasIOUnitPage1_t, MPI_POINTER pSasIOUnitPage1_t; | 2582 | SasIOUnitPage1_t, MPI_POINTER pSasIOUnitPage1_t; |
2520 | 2583 | ||
2521 | #define MPI_SASIOUNITPAGE1_PAGEVERSION (0x06) | 2584 | #define MPI_SASIOUNITPAGE1_PAGEVERSION (0x07) |
2522 | 2585 | ||
2523 | /* values for SAS IO Unit Page 1 ControlFlags */ | 2586 | /* values for SAS IO Unit Page 1 ControlFlags */ |
2524 | #define MPI_SAS_IOUNIT1_CONTROL_DEVICE_SELF_TEST (0x8000) | 2587 | #define MPI_SAS_IOUNIT1_CONTROL_DEVICE_SELF_TEST (0x8000) |
2525 | #define MPI_SAS_IOUNIT1_CONTROL_SATA_3_0_MAX (0x4000) | 2588 | #define MPI_SAS_IOUNIT1_CONTROL_SATA_3_0_MAX (0x4000) |
2526 | #define MPI_SAS_IOUNIT1_CONTROL_SATA_1_5_MAX (0x2000) | 2589 | #define MPI_SAS_IOUNIT1_CONTROL_SATA_1_5_MAX (0x2000) |
2527 | #define MPI_SAS_IOUNIT1_CONTROL_SATA_SW_PRESERVE (0x1000) | 2590 | #define MPI_SAS_IOUNIT1_CONTROL_SATA_SW_PRESERVE (0x1000) |
2528 | #define MPI_SAS_IOUNIT1_CONTROL_DISABLE_SAS_HASH (0x0800) | 2591 | #define MPI_SAS_IOUNIT1_CONTROL_DISABLE_SAS_HASH (0x0800) |
2529 | 2592 | ||
2530 | #define MPI_SAS_IOUNIT1_CONTROL_MASK_DEV_SUPPORT (0x0600) | 2593 | #define MPI_SAS_IOUNIT1_CONTROL_MASK_DEV_SUPPORT (0x0600) |
2531 | #define MPI_SAS_IOUNIT1_CONTROL_SHIFT_DEV_SUPPORT (9) | 2594 | #define MPI_SAS_IOUNIT1_CONTROL_SHIFT_DEV_SUPPORT (9) |
2532 | #define MPI_SAS_IOUNIT1_CONTROL_DEV_SUPPORT_BOTH (0x00) | 2595 | #define MPI_SAS_IOUNIT1_CONTROL_DEV_SUPPORT_BOTH (0x00) |
2533 | #define MPI_SAS_IOUNIT1_CONTROL_DEV_SAS_SUPPORT (0x01) | 2596 | #define MPI_SAS_IOUNIT1_CONTROL_DEV_SAS_SUPPORT (0x01) |
2534 | #define MPI_SAS_IOUNIT1_CONTROL_DEV_SATA_SUPPORT (0x02) | 2597 | #define MPI_SAS_IOUNIT1_CONTROL_DEV_SATA_SUPPORT (0x02) |
2535 | 2598 | ||
2536 | #define MPI_SAS_IOUNIT1_CONTROL_POSTPONE_SATA_INIT (0x0100) | 2599 | #define MPI_SAS_IOUNIT1_CONTROL_POSTPONE_SATA_INIT (0x0100) |
2537 | #define MPI_SAS_IOUNIT1_CONTROL_SATA_48BIT_LBA_REQUIRED (0x0080) | 2600 | #define MPI_SAS_IOUNIT1_CONTROL_SATA_48BIT_LBA_REQUIRED (0x0080) |
2538 | #define MPI_SAS_IOUNIT1_CONTROL_SATA_SMART_REQUIRED (0x0040) | 2601 | #define MPI_SAS_IOUNIT1_CONTROL_SATA_SMART_REQUIRED (0x0040) |
2539 | #define MPI_SAS_IOUNIT1_CONTROL_SATA_NCQ_REQUIRED (0x0020) | 2602 | #define MPI_SAS_IOUNIT1_CONTROL_SATA_NCQ_REQUIRED (0x0020) |
2540 | #define MPI_SAS_IOUNIT1_CONTROL_SATA_FUA_REQUIRED (0x0010) | 2603 | #define MPI_SAS_IOUNIT1_CONTROL_SATA_FUA_REQUIRED (0x0010) |
2541 | #define MPI_SAS_IOUNIT1_CONTROL_PHY_ENABLE_ORDER_HIGH (0x0008) | 2604 | #define MPI_SAS_IOUNIT1_CONTROL_PHY_ENABLE_ORDER_HIGH (0x0008) |
2542 | #define MPI_SAS_IOUNIT1_CONTROL_SUBTRACTIVE_ILLEGAL (0x0004) | 2605 | #define MPI_SAS_IOUNIT1_CONTROL_SUBTRACTIVE_ILLEGAL (0x0004) |
2543 | #define MPI_SAS_IOUNIT1_CONTROL_FIRST_LVL_DISC_ONLY (0x0002) | 2606 | #define MPI_SAS_IOUNIT1_CONTROL_FIRST_LVL_DISC_ONLY (0x0002) |
2544 | #define MPI_SAS_IOUNIT1_CONTROL_CLEAR_AFFILIATION (0x0001) | 2607 | #define MPI_SAS_IOUNIT1_CONTROL_CLEAR_AFFILIATION (0x0001) |
2545 | 2608 | ||
2546 | /* values for SAS IO Unit Page 1 AdditionalControlFlags */ | 2609 | /* values for SAS IO Unit Page 1 AdditionalControlFlags */ |
2547 | #define MPI_SAS_IOUNIT1_ACONTROL_ALLOW_TABLE_TO_TABLE (0x0001) | 2610 | #define MPI_SAS_IOUNIT1_ACONTROL_SATA_ASYNCHROUNOUS_NOTIFICATION (0x0040) |
2611 | #define MPI_SAS_IOUNIT1_ACONTROL_HIDE_NONZERO_ATTACHED_PHY_IDENT (0x0020) | ||
2612 | #define MPI_SAS_IOUNIT1_ACONTROL_PORT_ENABLE_ONLY_SATA_LINK_RESET (0x0010) | ||
2613 | #define MPI_SAS_IOUNIT1_ACONTROL_OTHER_AFFILIATION_SATA_LINK_RESET (0x0008) | ||
2614 | #define MPI_SAS_IOUNIT1_ACONTROL_SELF_AFFILIATION_SATA_LINK_RESET (0x0004) | ||
2615 | #define MPI_SAS_IOUNIT1_ACONTROL_NO_AFFILIATION_SATA_LINK_RESET (0x0002) | ||
2616 | #define MPI_SAS_IOUNIT1_ACONTROL_ALLOW_TABLE_TO_TABLE (0x0001) | ||
2548 | 2617 | ||
2549 | /* defines for SAS IO Unit Page 1 ReportDeviceMissingDelay */ | 2618 | /* defines for SAS IO Unit Page 1 ReportDeviceMissingDelay */ |
2550 | #define MPI_SAS_IOUNIT1_REPORT_MISSING_TIMEOUT_MASK (0x7F) | 2619 | #define MPI_SAS_IOUNIT1_REPORT_MISSING_TIMEOUT_MASK (0x7F) |
2551 | #define MPI_SAS_IOUNIT1_REPORT_MISSING_UNIT_16 (0x80) | 2620 | #define MPI_SAS_IOUNIT1_REPORT_MISSING_UNIT_16 (0x80) |
2552 | 2621 | ||
2553 | /* values for SAS IO Unit Page 1 PortFlags */ | 2622 | /* values for SAS IO Unit Page 1 PortFlags */ |
2554 | #define MPI_SAS_IOUNIT1_PORT_FLAGS_0_TARGET_IOC_NUM (0x00) | 2623 | #define MPI_SAS_IOUNIT1_PORT_FLAGS_0_TARGET_IOC_NUM (0x00) |
2555 | #define MPI_SAS_IOUNIT1_PORT_FLAGS_1_TARGET_IOC_NUM (0x04) | 2624 | #define MPI_SAS_IOUNIT1_PORT_FLAGS_1_TARGET_IOC_NUM (0x04) |
2556 | #define MPI_SAS_IOUNIT1_PORT_FLAGS_AUTO_PORT_CONFIG (0x01) | 2625 | #define MPI_SAS_IOUNIT1_PORT_FLAGS_AUTO_PORT_CONFIG (0x01) |
2557 | 2626 | ||
2558 | /* values for SAS IO Unit Page 0 PhyFlags */ | 2627 | /* values for SAS IO Unit Page 0 PhyFlags */ |
2559 | #define MPI_SAS_IOUNIT1_PHY_FLAGS_PHY_DISABLE (0x04) | 2628 | #define MPI_SAS_IOUNIT1_PHY_FLAGS_PHY_DISABLE (0x04) |
2560 | #define MPI_SAS_IOUNIT1_PHY_FLAGS_TX_INVERT (0x02) | 2629 | #define MPI_SAS_IOUNIT1_PHY_FLAGS_TX_INVERT (0x02) |
2561 | #define MPI_SAS_IOUNIT1_PHY_FLAGS_RX_INVERT (0x01) | 2630 | #define MPI_SAS_IOUNIT1_PHY_FLAGS_RX_INVERT (0x01) |
2562 | 2631 | ||
2563 | /* values for SAS IO Unit Page 0 MaxMinLinkRate */ | 2632 | /* values for SAS IO Unit Page 0 MaxMinLinkRate */ |
2564 | #define MPI_SAS_IOUNIT1_MAX_RATE_MASK (0xF0) | 2633 | #define MPI_SAS_IOUNIT1_MAX_RATE_MASK (0xF0) |
2565 | #define MPI_SAS_IOUNIT1_MAX_RATE_1_5 (0x80) | 2634 | #define MPI_SAS_IOUNIT1_MAX_RATE_1_5 (0x80) |
2566 | #define MPI_SAS_IOUNIT1_MAX_RATE_3_0 (0x90) | 2635 | #define MPI_SAS_IOUNIT1_MAX_RATE_3_0 (0x90) |
2567 | #define MPI_SAS_IOUNIT1_MIN_RATE_MASK (0x0F) | 2636 | #define MPI_SAS_IOUNIT1_MIN_RATE_MASK (0x0F) |
2568 | #define MPI_SAS_IOUNIT1_MIN_RATE_1_5 (0x08) | 2637 | #define MPI_SAS_IOUNIT1_MIN_RATE_1_5 (0x08) |
2569 | #define MPI_SAS_IOUNIT1_MIN_RATE_3_0 (0x09) | 2638 | #define MPI_SAS_IOUNIT1_MIN_RATE_3_0 (0x09) |
2570 | 2639 | ||
2571 | /* see mpi_sas.h for values for SAS IO Unit Page 1 ControllerPhyDeviceInfo values */ | 2640 | /* see mpi_sas.h for values for SAS IO Unit Page 1 ControllerPhyDeviceInfo values */ |
2572 | 2641 | ||
2573 | 2642 | ||
2574 | typedef struct _CONFIG_PAGE_SAS_IO_UNIT_2 | 2643 | typedef struct _CONFIG_PAGE_SAS_IO_UNIT_2 |
2575 | { | 2644 | { |
2576 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ | 2645 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ |
2577 | U8 NumDevsPerEnclosure; /* 08h */ | 2646 | U8 NumDevsPerEnclosure; /* 08h */ |
2578 | U8 Reserved1; /* 09h */ | 2647 | U8 Reserved1; /* 09h */ |
2579 | U16 Reserved2; /* 0Ah */ | 2648 | U16 Reserved2; /* 0Ah */ |
2580 | U16 MaxPersistentIDs; /* 0Ch */ | 2649 | U16 MaxPersistentIDs; /* 0Ch */ |
2581 | U16 NumPersistentIDsUsed; /* 0Eh */ | 2650 | U16 NumPersistentIDsUsed; /* 0Eh */ |
2582 | U8 Status; /* 10h */ | 2651 | U8 Status; /* 10h */ |
2583 | U8 Flags; /* 11h */ | 2652 | U8 Flags; /* 11h */ |
2584 | U16 MaxNumPhysicalMappedIDs;/* 12h */ | 2653 | U16 MaxNumPhysicalMappedIDs;/* 12h */ |
2585 | } CONFIG_PAGE_SAS_IO_UNIT_2, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_2, | 2654 | } CONFIG_PAGE_SAS_IO_UNIT_2, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_2, |
2586 | SasIOUnitPage2_t, MPI_POINTER pSasIOUnitPage2_t; | 2655 | SasIOUnitPage2_t, MPI_POINTER pSasIOUnitPage2_t; |
2587 | 2656 | ||
2588 | #define MPI_SASIOUNITPAGE2_PAGEVERSION (0x05) | 2657 | #define MPI_SASIOUNITPAGE2_PAGEVERSION (0x06) |
2589 | 2658 | ||
2590 | /* values for SAS IO Unit Page 2 Status field */ | 2659 | /* values for SAS IO Unit Page 2 Status field */ |
2660 | #define MPI_SAS_IOUNIT2_STATUS_DEVICE_LIMIT_EXCEEDED (0x08) | ||
2661 | #define MPI_SAS_IOUNIT2_STATUS_ENCLOSURE_DEVICES_UNMAPPED (0x04) | ||
2591 | #define MPI_SAS_IOUNIT2_STATUS_DISABLED_PERSISTENT_MAPPINGS (0x02) | 2662 | #define MPI_SAS_IOUNIT2_STATUS_DISABLED_PERSISTENT_MAPPINGS (0x02) |
2592 | #define MPI_SAS_IOUNIT2_STATUS_FULL_PERSISTENT_MAPPINGS (0x01) | 2663 | #define MPI_SAS_IOUNIT2_STATUS_FULL_PERSISTENT_MAPPINGS (0x01) |
2593 | 2664 | ||
2594 | /* values for SAS IO Unit Page 2 Flags field */ | 2665 | /* values for SAS IO Unit Page 2 Flags field */ |
2595 | #define MPI_SAS_IOUNIT2_FLAGS_DISABLE_PERSISTENT_MAPPINGS (0x01) | 2666 | #define MPI_SAS_IOUNIT2_FLAGS_DISABLE_PERSISTENT_MAPPINGS (0x01) |
2596 | /* Physical Mapping Modes */ | 2667 | /* Physical Mapping Modes */ |
2597 | #define MPI_SAS_IOUNIT2_FLAGS_MASK_PHYS_MAP_MODE (0x0E) | 2668 | #define MPI_SAS_IOUNIT2_FLAGS_MASK_PHYS_MAP_MODE (0x0E) |
2598 | #define MPI_SAS_IOUNIT2_FLAGS_SHIFT_PHYS_MAP_MODE (1) | 2669 | #define MPI_SAS_IOUNIT2_FLAGS_SHIFT_PHYS_MAP_MODE (1) |
2599 | #define MPI_SAS_IOUNIT2_FLAGS_NO_PHYS_MAP (0x00) | 2670 | #define MPI_SAS_IOUNIT2_FLAGS_NO_PHYS_MAP (0x00) |
2600 | #define MPI_SAS_IOUNIT2_FLAGS_DIRECT_ATTACH_PHYS_MAP (0x01) | 2671 | #define MPI_SAS_IOUNIT2_FLAGS_DIRECT_ATTACH_PHYS_MAP (0x01) |
2601 | #define MPI_SAS_IOUNIT2_FLAGS_ENCLOSURE_SLOT_PHYS_MAP (0x02) | 2672 | #define MPI_SAS_IOUNIT2_FLAGS_ENCLOSURE_SLOT_PHYS_MAP (0x02) |
2602 | #define MPI_SAS_IOUNIT2_FLAGS_HOST_ASSIGNED_PHYS_MAP (0x07) | 2673 | #define MPI_SAS_IOUNIT2_FLAGS_HOST_ASSIGNED_PHYS_MAP (0x07) |
2603 | 2674 | ||
2604 | #define MPI_SAS_IOUNIT2_FLAGS_RESERVE_ID_0_FOR_BOOT (0x10) | 2675 | #define MPI_SAS_IOUNIT2_FLAGS_RESERVE_ID_0_FOR_BOOT (0x10) |
2605 | #define MPI_SAS_IOUNIT2_FLAGS_DA_STARTING_SLOT (0x20) | 2676 | #define MPI_SAS_IOUNIT2_FLAGS_DA_STARTING_SLOT (0x20) |
2606 | 2677 | ||
2607 | 2678 | ||
2608 | typedef struct _CONFIG_PAGE_SAS_IO_UNIT_3 | 2679 | typedef struct _CONFIG_PAGE_SAS_IO_UNIT_3 |
2609 | { | 2680 | { |
2610 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ | 2681 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ |
2611 | U32 Reserved1; /* 08h */ | 2682 | U32 Reserved1; /* 08h */ |
2612 | U32 MaxInvalidDwordCount; /* 0Ch */ | 2683 | U32 MaxInvalidDwordCount; /* 0Ch */ |
2613 | U32 InvalidDwordCountTime; /* 10h */ | 2684 | U32 InvalidDwordCountTime; /* 10h */ |
2614 | U32 MaxRunningDisparityErrorCount; /* 14h */ | 2685 | U32 MaxRunningDisparityErrorCount; /* 14h */ |
2615 | U32 RunningDisparityErrorTime; /* 18h */ | 2686 | U32 RunningDisparityErrorTime; /* 18h */ |
2616 | U32 MaxLossDwordSynchCount; /* 1Ch */ | 2687 | U32 MaxLossDwordSynchCount; /* 1Ch */ |
2617 | U32 LossDwordSynchCountTime; /* 20h */ | 2688 | U32 LossDwordSynchCountTime; /* 20h */ |
2618 | U32 MaxPhyResetProblemCount; /* 24h */ | 2689 | U32 MaxPhyResetProblemCount; /* 24h */ |
2619 | U32 PhyResetProblemTime; /* 28h */ | 2690 | U32 PhyResetProblemTime; /* 28h */ |
2620 | } CONFIG_PAGE_SAS_IO_UNIT_3, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_3, | 2691 | } CONFIG_PAGE_SAS_IO_UNIT_3, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_3, |
2621 | SasIOUnitPage3_t, MPI_POINTER pSasIOUnitPage3_t; | 2692 | SasIOUnitPage3_t, MPI_POINTER pSasIOUnitPage3_t; |
2622 | 2693 | ||
2623 | #define MPI_SASIOUNITPAGE3_PAGEVERSION (0x00) | 2694 | #define MPI_SASIOUNITPAGE3_PAGEVERSION (0x00) |
2624 | 2695 | ||
2625 | 2696 | ||
2626 | /**************************************************************************** | 2697 | /**************************************************************************** |
2627 | * SAS Expander Config Pages | 2698 | * SAS Expander Config Pages |
2628 | ****************************************************************************/ | 2699 | ****************************************************************************/ |
2629 | 2700 | ||
2630 | typedef struct _CONFIG_PAGE_SAS_EXPANDER_0 | 2701 | typedef struct _CONFIG_PAGE_SAS_EXPANDER_0 |
2631 | { | 2702 | { |
2632 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ | 2703 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ |
2633 | U8 PhysicalPort; /* 08h */ | 2704 | U8 PhysicalPort; /* 08h */ |
2634 | U8 Reserved1; /* 09h */ | 2705 | U8 Reserved1; /* 09h */ |
2635 | U16 EnclosureHandle; /* 0Ah */ | 2706 | U16 EnclosureHandle; /* 0Ah */ |
2636 | U64 SASAddress; /* 0Ch */ | 2707 | U64 SASAddress; /* 0Ch */ |
2637 | U32 DiscoveryStatus; /* 14h */ | 2708 | U32 DiscoveryStatus; /* 14h */ |
2638 | U16 DevHandle; /* 18h */ | 2709 | U16 DevHandle; /* 18h */ |
2639 | U16 ParentDevHandle; /* 1Ah */ | 2710 | U16 ParentDevHandle; /* 1Ah */ |
2640 | U16 ExpanderChangeCount; /* 1Ch */ | 2711 | U16 ExpanderChangeCount; /* 1Ch */ |
2641 | U16 ExpanderRouteIndexes; /* 1Eh */ | 2712 | U16 ExpanderRouteIndexes; /* 1Eh */ |
2642 | U8 NumPhys; /* 20h */ | 2713 | U8 NumPhys; /* 20h */ |
2643 | U8 SASLevel; /* 21h */ | 2714 | U8 SASLevel; /* 21h */ |
2644 | U8 Flags; /* 22h */ | 2715 | U8 Flags; /* 22h */ |
2645 | U8 Reserved3; /* 23h */ | 2716 | U8 Reserved3; /* 23h */ |
2646 | } CONFIG_PAGE_SAS_EXPANDER_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_EXPANDER_0, | 2717 | } CONFIG_PAGE_SAS_EXPANDER_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_EXPANDER_0, |
2647 | SasExpanderPage0_t, MPI_POINTER pSasExpanderPage0_t; | 2718 | SasExpanderPage0_t, MPI_POINTER pSasExpanderPage0_t; |
2648 | 2719 | ||
2649 | #define MPI_SASEXPANDER0_PAGEVERSION (0x03) | 2720 | #define MPI_SASEXPANDER0_PAGEVERSION (0x03) |
2650 | 2721 | ||
2651 | /* values for SAS Expander Page 0 DiscoveryStatus field */ | 2722 | /* values for SAS Expander Page 0 DiscoveryStatus field */ |
2652 | #define MPI_SAS_EXPANDER0_DS_LOOP_DETECTED (0x00000001) | 2723 | #define MPI_SAS_EXPANDER0_DS_LOOP_DETECTED (0x00000001) |
2653 | #define MPI_SAS_EXPANDER0_DS_UNADDRESSABLE_DEVICE (0x00000002) | 2724 | #define MPI_SAS_EXPANDER0_DS_UNADDRESSABLE_DEVICE (0x00000002) |
2654 | #define MPI_SAS_EXPANDER0_DS_MULTIPLE_PORTS (0x00000004) | 2725 | #define MPI_SAS_EXPANDER0_DS_MULTIPLE_PORTS (0x00000004) |
2655 | #define MPI_SAS_EXPANDER0_DS_EXPANDER_ERR (0x00000008) | 2726 | #define MPI_SAS_EXPANDER0_DS_EXPANDER_ERR (0x00000008) |
2656 | #define MPI_SAS_EXPANDER0_DS_SMP_TIMEOUT (0x00000010) | 2727 | #define MPI_SAS_EXPANDER0_DS_SMP_TIMEOUT (0x00000010) |
2657 | #define MPI_SAS_EXPANDER0_DS_OUT_ROUTE_ENTRIES (0x00000020) | 2728 | #define MPI_SAS_EXPANDER0_DS_OUT_ROUTE_ENTRIES (0x00000020) |
2658 | #define MPI_SAS_EXPANDER0_DS_INDEX_NOT_EXIST (0x00000040) | 2729 | #define MPI_SAS_EXPANDER0_DS_INDEX_NOT_EXIST (0x00000040) |
2659 | #define MPI_SAS_EXPANDER0_DS_SMP_FUNCTION_FAILED (0x00000080) | 2730 | #define MPI_SAS_EXPANDER0_DS_SMP_FUNCTION_FAILED (0x00000080) |
2660 | #define MPI_SAS_EXPANDER0_DS_SMP_CRC_ERROR (0x00000100) | 2731 | #define MPI_SAS_EXPANDER0_DS_SMP_CRC_ERROR (0x00000100) |
2661 | #define MPI_SAS_EXPANDER0_DS_SUBTRACTIVE_LINK (0x00000200) | 2732 | #define MPI_SAS_EXPANDER0_DS_SUBTRACTIVE_LINK (0x00000200) |
2662 | #define MPI_SAS_EXPANDER0_DS_TABLE_LINK (0x00000400) | 2733 | #define MPI_SAS_EXPANDER0_DS_TABLE_LINK (0x00000400) |
2663 | #define MPI_SAS_EXPANDER0_DS_UNSUPPORTED_DEVICE (0x00000800) | 2734 | #define MPI_SAS_EXPANDER0_DS_UNSUPPORTED_DEVICE (0x00000800) |
2664 | 2735 | ||
2665 | /* values for SAS Expander Page 0 Flags field */ | 2736 | /* values for SAS Expander Page 0 Flags field */ |
2666 | #define MPI_SAS_EXPANDER0_FLAGS_ROUTE_TABLE_CONFIG (0x02) | 2737 | #define MPI_SAS_EXPANDER0_FLAGS_ROUTE_TABLE_CONFIG (0x02) |
2667 | #define MPI_SAS_EXPANDER0_FLAGS_CONFIG_IN_PROGRESS (0x01) | 2738 | #define MPI_SAS_EXPANDER0_FLAGS_CONFIG_IN_PROGRESS (0x01) |
2668 | 2739 | ||
2669 | 2740 | ||
2670 | typedef struct _CONFIG_PAGE_SAS_EXPANDER_1 | 2741 | typedef struct _CONFIG_PAGE_SAS_EXPANDER_1 |
2671 | { | 2742 | { |
2672 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ | 2743 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ |
2673 | U8 PhysicalPort; /* 08h */ | 2744 | U8 PhysicalPort; /* 08h */ |
2674 | U8 Reserved1; /* 09h */ | 2745 | U8 Reserved1; /* 09h */ |
2675 | U16 Reserved2; /* 0Ah */ | 2746 | U16 Reserved2; /* 0Ah */ |
2676 | U8 NumPhys; /* 0Ch */ | 2747 | U8 NumPhys; /* 0Ch */ |
2677 | U8 Phy; /* 0Dh */ | 2748 | U8 Phy; /* 0Dh */ |
2678 | U16 NumTableEntriesProgrammed; /* 0Eh */ | 2749 | U16 NumTableEntriesProgrammed; /* 0Eh */ |
2679 | U8 ProgrammedLinkRate; /* 10h */ | 2750 | U8 ProgrammedLinkRate; /* 10h */ |
2680 | U8 HwLinkRate; /* 11h */ | 2751 | U8 HwLinkRate; /* 11h */ |
2681 | U16 AttachedDevHandle; /* 12h */ | 2752 | U16 AttachedDevHandle; /* 12h */ |
2682 | U32 PhyInfo; /* 14h */ | 2753 | U32 PhyInfo; /* 14h */ |
2683 | U32 AttachedDeviceInfo; /* 18h */ | 2754 | U32 AttachedDeviceInfo; /* 18h */ |
2684 | U16 OwnerDevHandle; /* 1Ch */ | 2755 | U16 OwnerDevHandle; /* 1Ch */ |
2685 | U8 ChangeCount; /* 1Eh */ | 2756 | U8 ChangeCount; /* 1Eh */ |
2686 | U8 NegotiatedLinkRate; /* 1Fh */ | 2757 | U8 NegotiatedLinkRate; /* 1Fh */ |
2687 | U8 PhyIdentifier; /* 20h */ | 2758 | U8 PhyIdentifier; /* 20h */ |
2688 | U8 AttachedPhyIdentifier; /* 21h */ | 2759 | U8 AttachedPhyIdentifier; /* 21h */ |
2689 | U8 Reserved3; /* 22h */ | 2760 | U8 Reserved3; /* 22h */ |
2690 | U8 DiscoveryInfo; /* 23h */ | 2761 | U8 DiscoveryInfo; /* 23h */ |
2691 | U32 Reserved4; /* 24h */ | 2762 | U32 Reserved4; /* 24h */ |
2692 | } CONFIG_PAGE_SAS_EXPANDER_1, MPI_POINTER PTR_CONFIG_PAGE_SAS_EXPANDER_1, | 2763 | } CONFIG_PAGE_SAS_EXPANDER_1, MPI_POINTER PTR_CONFIG_PAGE_SAS_EXPANDER_1, |
2693 | SasExpanderPage1_t, MPI_POINTER pSasExpanderPage1_t; | 2764 | SasExpanderPage1_t, MPI_POINTER pSasExpanderPage1_t; |
2694 | 2765 | ||
2695 | #define MPI_SASEXPANDER1_PAGEVERSION (0x01) | 2766 | #define MPI_SASEXPANDER1_PAGEVERSION (0x01) |
2696 | 2767 | ||
2697 | /* use MPI_SAS_PHY0_PRATE_ defines for ProgrammedLinkRate */ | 2768 | /* use MPI_SAS_PHY0_PRATE_ defines for ProgrammedLinkRate */ |
2698 | 2769 | ||
2699 | /* use MPI_SAS_PHY0_HWRATE_ defines for HwLinkRate */ | 2770 | /* use MPI_SAS_PHY0_HWRATE_ defines for HwLinkRate */ |
2700 | 2771 | ||
2701 | /* use MPI_SAS_PHY0_PHYINFO_ defines for PhyInfo */ | 2772 | /* use MPI_SAS_PHY0_PHYINFO_ defines for PhyInfo */ |
2702 | 2773 | ||
2703 | /* see mpi_sas.h for values for SAS Expander Page 1 AttachedDeviceInfo values */ | 2774 | /* see mpi_sas.h for values for SAS Expander Page 1 AttachedDeviceInfo values */ |
2704 | 2775 | ||
2705 | /* values for SAS Expander Page 1 DiscoveryInfo field */ | 2776 | /* values for SAS Expander Page 1 DiscoveryInfo field */ |
2706 | #define MPI_SAS_EXPANDER1_DISCINFO_BAD_PHY DISABLED (0x04) | 2777 | #define MPI_SAS_EXPANDER1_DISCINFO_BAD_PHY DISABLED (0x04) |
2707 | #define MPI_SAS_EXPANDER1_DISCINFO_LINK_STATUS_CHANGE (0x02) | 2778 | #define MPI_SAS_EXPANDER1_DISCINFO_LINK_STATUS_CHANGE (0x02) |
2708 | #define MPI_SAS_EXPANDER1_DISCINFO_NO_ROUTING_ENTRIES (0x01) | 2779 | #define MPI_SAS_EXPANDER1_DISCINFO_NO_ROUTING_ENTRIES (0x01) |
2709 | 2780 | ||
2710 | /* values for SAS Expander Page 1 NegotiatedLinkRate field */ | 2781 | /* values for SAS Expander Page 1 NegotiatedLinkRate field */ |
2711 | #define MPI_SAS_EXPANDER1_NEG_RATE_UNKNOWN (0x00) | 2782 | #define MPI_SAS_EXPANDER1_NEG_RATE_UNKNOWN (0x00) |
2712 | #define MPI_SAS_EXPANDER1_NEG_RATE_PHY_DISABLED (0x01) | 2783 | #define MPI_SAS_EXPANDER1_NEG_RATE_PHY_DISABLED (0x01) |
2713 | #define MPI_SAS_EXPANDER1_NEG_RATE_FAILED_NEGOTIATION (0x02) | 2784 | #define MPI_SAS_EXPANDER1_NEG_RATE_FAILED_NEGOTIATION (0x02) |
2714 | #define MPI_SAS_EXPANDER1_NEG_RATE_SATA_OOB_COMPLETE (0x03) | 2785 | #define MPI_SAS_EXPANDER1_NEG_RATE_SATA_OOB_COMPLETE (0x03) |
2715 | #define MPI_SAS_EXPANDER1_NEG_RATE_1_5 (0x08) | 2786 | #define MPI_SAS_EXPANDER1_NEG_RATE_1_5 (0x08) |
2716 | #define MPI_SAS_EXPANDER1_NEG_RATE_3_0 (0x09) | 2787 | #define MPI_SAS_EXPANDER1_NEG_RATE_3_0 (0x09) |
2717 | 2788 | ||
2718 | 2789 | ||
2719 | /**************************************************************************** | 2790 | /**************************************************************************** |
2720 | * SAS Device Config Pages | 2791 | * SAS Device Config Pages |
2721 | ****************************************************************************/ | 2792 | ****************************************************************************/ |
2722 | 2793 | ||
2723 | typedef struct _CONFIG_PAGE_SAS_DEVICE_0 | 2794 | typedef struct _CONFIG_PAGE_SAS_DEVICE_0 |
2724 | { | 2795 | { |
2725 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ | 2796 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ |
2726 | U16 Slot; /* 08h */ | 2797 | U16 Slot; /* 08h */ |
2727 | U16 EnclosureHandle; /* 0Ah */ | 2798 | U16 EnclosureHandle; /* 0Ah */ |
2728 | U64 SASAddress; /* 0Ch */ | 2799 | U64 SASAddress; /* 0Ch */ |
2729 | U16 ParentDevHandle; /* 14h */ | 2800 | U16 ParentDevHandle; /* 14h */ |
2730 | U8 PhyNum; /* 16h */ | 2801 | U8 PhyNum; /* 16h */ |
2731 | U8 AccessStatus; /* 17h */ | 2802 | U8 AccessStatus; /* 17h */ |
2732 | U16 DevHandle; /* 18h */ | 2803 | U16 DevHandle; /* 18h */ |
2733 | U8 TargetID; /* 1Ah */ | 2804 | U8 TargetID; /* 1Ah */ |
2734 | U8 Bus; /* 1Bh */ | 2805 | U8 Bus; /* 1Bh */ |
2735 | U32 DeviceInfo; /* 1Ch */ | 2806 | U32 DeviceInfo; /* 1Ch */ |
2736 | U16 Flags; /* 20h */ | 2807 | U16 Flags; /* 20h */ |
2737 | U8 PhysicalPort; /* 22h */ | 2808 | U8 PhysicalPort; /* 22h */ |
2738 | U8 Reserved2; /* 23h */ | 2809 | U8 Reserved2; /* 23h */ |
2739 | } CONFIG_PAGE_SAS_DEVICE_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_DEVICE_0, | 2810 | } CONFIG_PAGE_SAS_DEVICE_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_DEVICE_0, |
2740 | SasDevicePage0_t, MPI_POINTER pSasDevicePage0_t; | 2811 | SasDevicePage0_t, MPI_POINTER pSasDevicePage0_t; |
2741 | 2812 | ||
2742 | #define MPI_SASDEVICE0_PAGEVERSION (0x04) | 2813 | #define MPI_SASDEVICE0_PAGEVERSION (0x05) |
2743 | 2814 | ||
2744 | /* values for SAS Device Page 0 AccessStatus field */ | 2815 | /* values for SAS Device Page 0 AccessStatus field */ |
2745 | #define MPI_SAS_DEVICE0_ASTATUS_NO_ERRORS (0x00) | 2816 | #define MPI_SAS_DEVICE0_ASTATUS_NO_ERRORS (0x00) |
2746 | #define MPI_SAS_DEVICE0_ASTATUS_SATA_INIT_FAILED (0x01) | 2817 | #define MPI_SAS_DEVICE0_ASTATUS_SATA_INIT_FAILED (0x01) |
2747 | #define MPI_SAS_DEVICE0_ASTATUS_SATA_CAPABILITY_FAILED (0x02) | 2818 | #define MPI_SAS_DEVICE0_ASTATUS_SATA_CAPABILITY_FAILED (0x02) |
2819 | #define MPI_SAS_DEVICE0_ASTATUS_SATA_AFFILIATION_CONFLICT (0x03) | ||
2820 | /* specific values for SATA Init failures */ | ||
2821 | #define MPI_SAS_DEVICE0_ASTATUS_SIF_UNKNOWN (0x10) | ||
2822 | #define MPI_SAS_DEVICE0_ASTATUS_SIF_AFFILIATION_CONFLICT (0x11) | ||
2823 | #define MPI_SAS_DEVICE0_ASTATUS_SIF_DIAG (0x12) | ||
2824 | #define MPI_SAS_DEVICE0_ASTATUS_SIF_IDENTIFICATION (0x13) | ||
2825 | #define MPI_SAS_DEVICE0_ASTATUS_SIF_CHECK_POWER (0x14) | ||
2826 | #define MPI_SAS_DEVICE0_ASTATUS_SIF_PIO_SN (0x15) | ||
2827 | #define MPI_SAS_DEVICE0_ASTATUS_SIF_MDMA_SN (0x16) | ||
2828 | #define MPI_SAS_DEVICE0_ASTATUS_SIF_UDMA_SN (0x17) | ||
2829 | #define MPI_SAS_DEVICE0_ASTATUS_SIF_ZONING_VIOLATION (0x18) | ||
2830 | #define MPI_SAS_DEVICE0_ASTATUS_SIF_NOT_ADDRESSABLE (0x19) | ||
2831 | #define MPI_SAS_DEVICE0_ASTATUS_SIF_MAX (0x1F) | ||
2748 | 2832 | ||
2749 | /* values for SAS Device Page 0 Flags field */ | 2833 | /* values for SAS Device Page 0 Flags field */ |
2750 | #define MPI_SAS_DEVICE0_FLAGS_SATA_SW_PRESERVE (0x0200) | 2834 | #define MPI_SAS_DEVICE0_FLAGS_SATA_ASYNCHRONOUS_NOTIFY (0x0400) |
2751 | #define MPI_SAS_DEVICE0_FLAGS_UNSUPPORTED_DEVICE (0x0100) | 2835 | #define MPI_SAS_DEVICE0_FLAGS_SATA_SW_PRESERVE (0x0200) |
2752 | #define MPI_SAS_DEVICE0_FLAGS_SATA_48BIT_LBA_SUPPORTED (0x0080) | 2836 | #define MPI_SAS_DEVICE0_FLAGS_UNSUPPORTED_DEVICE (0x0100) |
2753 | #define MPI_SAS_DEVICE0_FLAGS_SATA_SMART_SUPPORTED (0x0040) | 2837 | #define MPI_SAS_DEVICE0_FLAGS_SATA_48BIT_LBA_SUPPORTED (0x0080) |
2754 | #define MPI_SAS_DEVICE0_FLAGS_SATA_NCQ_SUPPORTED (0x0020) | 2838 | #define MPI_SAS_DEVICE0_FLAGS_SATA_SMART_SUPPORTED (0x0040) |
2755 | #define MPI_SAS_DEVICE0_FLAGS_SATA_FUA_SUPPORTED (0x0010) | 2839 | #define MPI_SAS_DEVICE0_FLAGS_SATA_NCQ_SUPPORTED (0x0020) |
2756 | #define MPI_SAS_DEVICE0_FLAGS_PORT_SELECTOR_ATTACH (0x0008) | 2840 | #define MPI_SAS_DEVICE0_FLAGS_SATA_FUA_SUPPORTED (0x0010) |
2757 | #define MPI_SAS_DEVICE0_FLAGS_MAPPING_PERSISTENT (0x0004) | 2841 | #define MPI_SAS_DEVICE0_FLAGS_PORT_SELECTOR_ATTACH (0x0008) |
2758 | #define MPI_SAS_DEVICE0_FLAGS_DEVICE_MAPPED (0x0002) | 2842 | #define MPI_SAS_DEVICE0_FLAGS_MAPPING_PERSISTENT (0x0004) |
2759 | #define MPI_SAS_DEVICE0_FLAGS_DEVICE_PRESENT (0x0001) | 2843 | #define MPI_SAS_DEVICE0_FLAGS_DEVICE_MAPPED (0x0002) |
2844 | #define MPI_SAS_DEVICE0_FLAGS_DEVICE_PRESENT (0x0001) | ||
2760 | 2845 | ||
2761 | /* see mpi_sas.h for values for SAS Device Page 0 DeviceInfo values */ | 2846 | /* see mpi_sas.h for values for SAS Device Page 0 DeviceInfo values */ |
2762 | 2847 | ||
2763 | 2848 | ||
2764 | typedef struct _CONFIG_PAGE_SAS_DEVICE_1 | 2849 | typedef struct _CONFIG_PAGE_SAS_DEVICE_1 |
2765 | { | 2850 | { |
2766 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ | 2851 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ |
2767 | U32 Reserved1; /* 08h */ | 2852 | U32 Reserved1; /* 08h */ |
2768 | U64 SASAddress; /* 0Ch */ | 2853 | U64 SASAddress; /* 0Ch */ |
2769 | U32 Reserved2; /* 14h */ | 2854 | U32 Reserved2; /* 14h */ |
2770 | U16 DevHandle; /* 18h */ | 2855 | U16 DevHandle; /* 18h */ |
2771 | U8 TargetID; /* 1Ah */ | 2856 | U8 TargetID; /* 1Ah */ |
2772 | U8 Bus; /* 1Bh */ | 2857 | U8 Bus; /* 1Bh */ |
2773 | U8 InitialRegDeviceFIS[20];/* 1Ch */ | 2858 | U8 InitialRegDeviceFIS[20];/* 1Ch */ |
2774 | } CONFIG_PAGE_SAS_DEVICE_1, MPI_POINTER PTR_CONFIG_PAGE_SAS_DEVICE_1, | 2859 | } CONFIG_PAGE_SAS_DEVICE_1, MPI_POINTER PTR_CONFIG_PAGE_SAS_DEVICE_1, |
2775 | SasDevicePage1_t, MPI_POINTER pSasDevicePage1_t; | 2860 | SasDevicePage1_t, MPI_POINTER pSasDevicePage1_t; |
2776 | 2861 | ||
2777 | #define MPI_SASDEVICE1_PAGEVERSION (0x00) | 2862 | #define MPI_SASDEVICE1_PAGEVERSION (0x00) |
2778 | 2863 | ||
2779 | 2864 | ||
2780 | typedef struct _CONFIG_PAGE_SAS_DEVICE_2 | 2865 | typedef struct _CONFIG_PAGE_SAS_DEVICE_2 |
2781 | { | 2866 | { |
2782 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ | 2867 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ |
2783 | U64 PhysicalIdentifier; /* 08h */ | 2868 | U64 PhysicalIdentifier; /* 08h */ |
2784 | U32 EnclosureMapping; /* 10h */ | 2869 | U32 EnclosureMapping; /* 10h */ |
2785 | } CONFIG_PAGE_SAS_DEVICE_2, MPI_POINTER PTR_CONFIG_PAGE_SAS_DEVICE_2, | 2870 | } CONFIG_PAGE_SAS_DEVICE_2, MPI_POINTER PTR_CONFIG_PAGE_SAS_DEVICE_2, |
2786 | SasDevicePage2_t, MPI_POINTER pSasDevicePage2_t; | 2871 | SasDevicePage2_t, MPI_POINTER pSasDevicePage2_t; |
2787 | 2872 | ||
2788 | #define MPI_SASDEVICE2_PAGEVERSION (0x01) | 2873 | #define MPI_SASDEVICE2_PAGEVERSION (0x01) |
2789 | 2874 | ||
2790 | /* defines for SAS Device Page 2 EnclosureMapping field */ | 2875 | /* defines for SAS Device Page 2 EnclosureMapping field */ |
2791 | #define MPI_SASDEVICE2_ENC_MAP_MASK_MISSING_COUNT (0x0000000F) | 2876 | #define MPI_SASDEVICE2_ENC_MAP_MASK_MISSING_COUNT (0x0000000F) |
2792 | #define MPI_SASDEVICE2_ENC_MAP_SHIFT_MISSING_COUNT (0) | 2877 | #define MPI_SASDEVICE2_ENC_MAP_SHIFT_MISSING_COUNT (0) |
2793 | #define MPI_SASDEVICE2_ENC_MAP_MASK_NUM_SLOTS (0x000007F0) | 2878 | #define MPI_SASDEVICE2_ENC_MAP_MASK_NUM_SLOTS (0x000007F0) |
2794 | #define MPI_SASDEVICE2_ENC_MAP_SHIFT_NUM_SLOTS (4) | 2879 | #define MPI_SASDEVICE2_ENC_MAP_SHIFT_NUM_SLOTS (4) |
2795 | #define MPI_SASDEVICE2_ENC_MAP_MASK_START_INDEX (0x001FF800) | 2880 | #define MPI_SASDEVICE2_ENC_MAP_MASK_START_INDEX (0x001FF800) |
2796 | #define MPI_SASDEVICE2_ENC_MAP_SHIFT_START_INDEX (11) | 2881 | #define MPI_SASDEVICE2_ENC_MAP_SHIFT_START_INDEX (11) |
2797 | 2882 | ||
2798 | 2883 | ||
2799 | /**************************************************************************** | 2884 | /**************************************************************************** |
2800 | * SAS PHY Config Pages | 2885 | * SAS PHY Config Pages |
2801 | ****************************************************************************/ | 2886 | ****************************************************************************/ |
2802 | 2887 | ||
2803 | typedef struct _CONFIG_PAGE_SAS_PHY_0 | 2888 | typedef struct _CONFIG_PAGE_SAS_PHY_0 |
2804 | { | 2889 | { |
2805 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ | 2890 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ |
2806 | U16 OwnerDevHandle; /* 08h */ | 2891 | U16 OwnerDevHandle; /* 08h */ |
2807 | U16 Reserved1; /* 0Ah */ | 2892 | U16 Reserved1; /* 0Ah */ |
2808 | U64 SASAddress; /* 0Ch */ | 2893 | U64 SASAddress; /* 0Ch */ |
2809 | U16 AttachedDevHandle; /* 14h */ | 2894 | U16 AttachedDevHandle; /* 14h */ |
2810 | U8 AttachedPhyIdentifier; /* 16h */ | 2895 | U8 AttachedPhyIdentifier; /* 16h */ |
2811 | U8 Reserved2; /* 17h */ | 2896 | U8 Reserved2; /* 17h */ |
2812 | U32 AttachedDeviceInfo; /* 18h */ | 2897 | U32 AttachedDeviceInfo; /* 18h */ |
2813 | U8 ProgrammedLinkRate; /* 20h */ | 2898 | U8 ProgrammedLinkRate; /* 20h */ |
2814 | U8 HwLinkRate; /* 21h */ | 2899 | U8 HwLinkRate; /* 21h */ |
2815 | U8 ChangeCount; /* 22h */ | 2900 | U8 ChangeCount; /* 22h */ |
2816 | U8 Flags; /* 23h */ | 2901 | U8 Flags; /* 23h */ |
2817 | U32 PhyInfo; /* 24h */ | 2902 | U32 PhyInfo; /* 24h */ |
2818 | } CONFIG_PAGE_SAS_PHY_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_PHY_0, | 2903 | } CONFIG_PAGE_SAS_PHY_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_PHY_0, |
2819 | SasPhyPage0_t, MPI_POINTER pSasPhyPage0_t; | 2904 | SasPhyPage0_t, MPI_POINTER pSasPhyPage0_t; |
2820 | 2905 | ||
2821 | #define MPI_SASPHY0_PAGEVERSION (0x01) | 2906 | #define MPI_SASPHY0_PAGEVERSION (0x01) |
2822 | 2907 | ||
2823 | /* values for SAS PHY Page 0 ProgrammedLinkRate field */ | 2908 | /* values for SAS PHY Page 0 ProgrammedLinkRate field */ |
2824 | #define MPI_SAS_PHY0_PRATE_MAX_RATE_MASK (0xF0) | 2909 | #define MPI_SAS_PHY0_PRATE_MAX_RATE_MASK (0xF0) |
2825 | #define MPI_SAS_PHY0_PRATE_MAX_RATE_NOT_PROGRAMMABLE (0x00) | 2910 | #define MPI_SAS_PHY0_PRATE_MAX_RATE_NOT_PROGRAMMABLE (0x00) |
2826 | #define MPI_SAS_PHY0_PRATE_MAX_RATE_1_5 (0x80) | 2911 | #define MPI_SAS_PHY0_PRATE_MAX_RATE_1_5 (0x80) |
2827 | #define MPI_SAS_PHY0_PRATE_MAX_RATE_3_0 (0x90) | 2912 | #define MPI_SAS_PHY0_PRATE_MAX_RATE_3_0 (0x90) |
2828 | #define MPI_SAS_PHY0_PRATE_MIN_RATE_MASK (0x0F) | 2913 | #define MPI_SAS_PHY0_PRATE_MIN_RATE_MASK (0x0F) |
2829 | #define MPI_SAS_PHY0_PRATE_MIN_RATE_NOT_PROGRAMMABLE (0x00) | 2914 | #define MPI_SAS_PHY0_PRATE_MIN_RATE_NOT_PROGRAMMABLE (0x00) |
2830 | #define MPI_SAS_PHY0_PRATE_MIN_RATE_1_5 (0x08) | 2915 | #define MPI_SAS_PHY0_PRATE_MIN_RATE_1_5 (0x08) |
2831 | #define MPI_SAS_PHY0_PRATE_MIN_RATE_3_0 (0x09) | 2916 | #define MPI_SAS_PHY0_PRATE_MIN_RATE_3_0 (0x09) |
2832 | 2917 | ||
2833 | /* values for SAS PHY Page 0 HwLinkRate field */ | 2918 | /* values for SAS PHY Page 0 HwLinkRate field */ |
2834 | #define MPI_SAS_PHY0_HWRATE_MAX_RATE_MASK (0xF0) | 2919 | #define MPI_SAS_PHY0_HWRATE_MAX_RATE_MASK (0xF0) |
2835 | #define MPI_SAS_PHY0_HWRATE_MAX_RATE_1_5 (0x80) | 2920 | #define MPI_SAS_PHY0_HWRATE_MAX_RATE_1_5 (0x80) |
2836 | #define MPI_SAS_PHY0_HWRATE_MAX_RATE_3_0 (0x90) | 2921 | #define MPI_SAS_PHY0_HWRATE_MAX_RATE_3_0 (0x90) |
2837 | #define MPI_SAS_PHY0_HWRATE_MIN_RATE_MASK (0x0F) | 2922 | #define MPI_SAS_PHY0_HWRATE_MIN_RATE_MASK (0x0F) |
2838 | #define MPI_SAS_PHY0_HWRATE_MIN_RATE_1_5 (0x08) | 2923 | #define MPI_SAS_PHY0_HWRATE_MIN_RATE_1_5 (0x08) |
2839 | #define MPI_SAS_PHY0_HWRATE_MIN_RATE_3_0 (0x09) | 2924 | #define MPI_SAS_PHY0_HWRATE_MIN_RATE_3_0 (0x09) |
2840 | 2925 | ||
2841 | /* values for SAS PHY Page 0 Flags field */ | 2926 | /* values for SAS PHY Page 0 Flags field */ |
2842 | #define MPI_SAS_PHY0_FLAGS_SGPIO_DIRECT_ATTACH_ENC (0x01) | 2927 | #define MPI_SAS_PHY0_FLAGS_SGPIO_DIRECT_ATTACH_ENC (0x01) |
2843 | 2928 | ||
2844 | /* values for SAS PHY Page 0 PhyInfo field */ | 2929 | /* values for SAS PHY Page 0 PhyInfo field */ |
2845 | #define MPI_SAS_PHY0_PHYINFO_SATA_PORT_ACTIVE (0x00004000) | 2930 | #define MPI_SAS_PHY0_PHYINFO_SATA_PORT_ACTIVE (0x00004000) |
2846 | #define MPI_SAS_PHY0_PHYINFO_SATA_PORT_SELECTOR (0x00002000) | 2931 | #define MPI_SAS_PHY0_PHYINFO_SATA_PORT_SELECTOR (0x00002000) |
2847 | #define MPI_SAS_PHY0_PHYINFO_VIRTUAL_PHY (0x00001000) | 2932 | #define MPI_SAS_PHY0_PHYINFO_VIRTUAL_PHY (0x00001000) |
2848 | 2933 | ||
2849 | #define MPI_SAS_PHY0_PHYINFO_MASK_PARTIAL_PATHWAY_TIME (0x00000F00) | 2934 | #define MPI_SAS_PHY0_PHYINFO_MASK_PARTIAL_PATHWAY_TIME (0x00000F00) |
2850 | #define MPI_SAS_PHY0_PHYINFO_SHIFT_PARTIAL_PATHWAY_TIME (8) | 2935 | #define MPI_SAS_PHY0_PHYINFO_SHIFT_PARTIAL_PATHWAY_TIME (8) |
2851 | 2936 | ||
2852 | #define MPI_SAS_PHY0_PHYINFO_MASK_ROUTING_ATTRIBUTE (0x000000F0) | 2937 | #define MPI_SAS_PHY0_PHYINFO_MASK_ROUTING_ATTRIBUTE (0x000000F0) |
2853 | #define MPI_SAS_PHY0_PHYINFO_DIRECT_ROUTING (0x00000000) | 2938 | #define MPI_SAS_PHY0_PHYINFO_DIRECT_ROUTING (0x00000000) |
2854 | #define MPI_SAS_PHY0_PHYINFO_SUBTRACTIVE_ROUTING (0x00000010) | 2939 | #define MPI_SAS_PHY0_PHYINFO_SUBTRACTIVE_ROUTING (0x00000010) |
2855 | #define MPI_SAS_PHY0_PHYINFO_TABLE_ROUTING (0x00000020) | 2940 | #define MPI_SAS_PHY0_PHYINFO_TABLE_ROUTING (0x00000020) |
2856 | 2941 | ||
2857 | #define MPI_SAS_PHY0_PHYINFO_MASK_LINK_RATE (0x0000000F) | 2942 | #define MPI_SAS_PHY0_PHYINFO_MASK_LINK_RATE (0x0000000F) |
2858 | #define MPI_SAS_PHY0_PHYINFO_UNKNOWN_LINK_RATE (0x00000000) | 2943 | #define MPI_SAS_PHY0_PHYINFO_UNKNOWN_LINK_RATE (0x00000000) |
2859 | #define MPI_SAS_PHY0_PHYINFO_PHY_DISABLED (0x00000001) | 2944 | #define MPI_SAS_PHY0_PHYINFO_PHY_DISABLED (0x00000001) |
2860 | #define MPI_SAS_PHY0_PHYINFO_NEGOTIATION_FAILED (0x00000002) | 2945 | #define MPI_SAS_PHY0_PHYINFO_NEGOTIATION_FAILED (0x00000002) |
2861 | #define MPI_SAS_PHY0_PHYINFO_SATA_OOB_COMPLETE (0x00000003) | 2946 | #define MPI_SAS_PHY0_PHYINFO_SATA_OOB_COMPLETE (0x00000003) |
2862 | #define MPI_SAS_PHY0_PHYINFO_RATE_1_5 (0x00000008) | 2947 | #define MPI_SAS_PHY0_PHYINFO_RATE_1_5 (0x00000008) |
2863 | #define MPI_SAS_PHY0_PHYINFO_RATE_3_0 (0x00000009) | 2948 | #define MPI_SAS_PHY0_PHYINFO_RATE_3_0 (0x00000009) |
2864 | 2949 | ||
2865 | 2950 | ||
2866 | typedef struct _CONFIG_PAGE_SAS_PHY_1 | 2951 | typedef struct _CONFIG_PAGE_SAS_PHY_1 |
2867 | { | 2952 | { |
2868 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ | 2953 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ |
2869 | U32 Reserved1; /* 08h */ | 2954 | U32 Reserved1; /* 08h */ |
2870 | U32 InvalidDwordCount; /* 0Ch */ | 2955 | U32 InvalidDwordCount; /* 0Ch */ |
2871 | U32 RunningDisparityErrorCount; /* 10h */ | 2956 | U32 RunningDisparityErrorCount; /* 10h */ |
2872 | U32 LossDwordSynchCount; /* 14h */ | 2957 | U32 LossDwordSynchCount; /* 14h */ |
2873 | U32 PhyResetProblemCount; /* 18h */ | 2958 | U32 PhyResetProblemCount; /* 18h */ |
2874 | } CONFIG_PAGE_SAS_PHY_1, MPI_POINTER PTR_CONFIG_PAGE_SAS_PHY_1, | 2959 | } CONFIG_PAGE_SAS_PHY_1, MPI_POINTER PTR_CONFIG_PAGE_SAS_PHY_1, |
2875 | SasPhyPage1_t, MPI_POINTER pSasPhyPage1_t; | 2960 | SasPhyPage1_t, MPI_POINTER pSasPhyPage1_t; |
2876 | 2961 | ||
2877 | #define MPI_SASPHY1_PAGEVERSION (0x00) | 2962 | #define MPI_SASPHY1_PAGEVERSION (0x00) |
2878 | 2963 | ||
2879 | 2964 | ||
2880 | /**************************************************************************** | 2965 | /**************************************************************************** |
2881 | * SAS Enclosure Config Pages | 2966 | * SAS Enclosure Config Pages |
2882 | ****************************************************************************/ | 2967 | ****************************************************************************/ |
2883 | 2968 | ||
2884 | typedef struct _CONFIG_PAGE_SAS_ENCLOSURE_0 | 2969 | typedef struct _CONFIG_PAGE_SAS_ENCLOSURE_0 |
2885 | { | 2970 | { |
2886 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ | 2971 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ |
2887 | U32 Reserved1; /* 08h */ | 2972 | U32 Reserved1; /* 08h */ |
2888 | U64 EnclosureLogicalID; /* 0Ch */ | 2973 | U64 EnclosureLogicalID; /* 0Ch */ |
2889 | U16 Flags; /* 14h */ | 2974 | U16 Flags; /* 14h */ |
2890 | U16 EnclosureHandle; /* 16h */ | 2975 | U16 EnclosureHandle; /* 16h */ |
2891 | U16 NumSlots; /* 18h */ | 2976 | U16 NumSlots; /* 18h */ |
2892 | U16 StartSlot; /* 1Ah */ | 2977 | U16 StartSlot; /* 1Ah */ |
2893 | U8 StartTargetID; /* 1Ch */ | 2978 | U8 StartTargetID; /* 1Ch */ |
2894 | U8 StartBus; /* 1Dh */ | 2979 | U8 StartBus; /* 1Dh */ |
2895 | U8 SEPTargetID; /* 1Eh */ | 2980 | U8 SEPTargetID; /* 1Eh */ |
2896 | U8 SEPBus; /* 1Fh */ | 2981 | U8 SEPBus; /* 1Fh */ |
2897 | U32 Reserved2; /* 20h */ | 2982 | U32 Reserved2; /* 20h */ |
2898 | U32 Reserved3; /* 24h */ | 2983 | U32 Reserved3; /* 24h */ |
2899 | } CONFIG_PAGE_SAS_ENCLOSURE_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_ENCLOSURE_0, | 2984 | } CONFIG_PAGE_SAS_ENCLOSURE_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_ENCLOSURE_0, |
2900 | SasEnclosurePage0_t, MPI_POINTER pSasEnclosurePage0_t; | 2985 | SasEnclosurePage0_t, MPI_POINTER pSasEnclosurePage0_t; |
2901 | 2986 | ||
2902 | #define MPI_SASENCLOSURE0_PAGEVERSION (0x01) | 2987 | #define MPI_SASENCLOSURE0_PAGEVERSION (0x01) |
2903 | 2988 | ||
2904 | /* values for SAS Enclosure Page 0 Flags field */ | 2989 | /* values for SAS Enclosure Page 0 Flags field */ |
2905 | #define MPI_SAS_ENCLS0_FLAGS_SEP_BUS_ID_VALID (0x0020) | 2990 | #define MPI_SAS_ENCLS0_FLAGS_SEP_BUS_ID_VALID (0x0020) |
2906 | #define MPI_SAS_ENCLS0_FLAGS_START_BUS_ID_VALID (0x0010) | 2991 | #define MPI_SAS_ENCLS0_FLAGS_START_BUS_ID_VALID (0x0010) |
2907 | 2992 | ||
2908 | #define MPI_SAS_ENCLS0_FLAGS_MNG_MASK (0x000F) | 2993 | #define MPI_SAS_ENCLS0_FLAGS_MNG_MASK (0x000F) |
2909 | #define MPI_SAS_ENCLS0_FLAGS_MNG_UNKNOWN (0x0000) | 2994 | #define MPI_SAS_ENCLS0_FLAGS_MNG_UNKNOWN (0x0000) |
2910 | #define MPI_SAS_ENCLS0_FLAGS_MNG_IOC_SES (0x0001) | 2995 | #define MPI_SAS_ENCLS0_FLAGS_MNG_IOC_SES (0x0001) |
2911 | #define MPI_SAS_ENCLS0_FLAGS_MNG_IOC_SGPIO (0x0002) | 2996 | #define MPI_SAS_ENCLS0_FLAGS_MNG_IOC_SGPIO (0x0002) |
2912 | #define MPI_SAS_ENCLS0_FLAGS_MNG_EXP_SGPIO (0x0003) | 2997 | #define MPI_SAS_ENCLS0_FLAGS_MNG_EXP_SGPIO (0x0003) |
2913 | #define MPI_SAS_ENCLS0_FLAGS_MNG_SES_ENCLOSURE (0x0004) | 2998 | #define MPI_SAS_ENCLS0_FLAGS_MNG_SES_ENCLOSURE (0x0004) |
2914 | #define MPI_SAS_ENCLS0_FLAGS_MNG_IOC_GPIO (0x0005) | 2999 | #define MPI_SAS_ENCLS0_FLAGS_MNG_IOC_GPIO (0x0005) |
2915 | 3000 | ||
2916 | 3001 | ||
2917 | /**************************************************************************** | 3002 | /**************************************************************************** |
2918 | * Log Config Pages | 3003 | * Log Config Pages |
2919 | ****************************************************************************/ | 3004 | ****************************************************************************/ |
2920 | /* | 3005 | /* |
2921 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to | 3006 | * Host code (drivers, BIOS, utilities, etc.) should leave this define set to |
2922 | * one and check NumLogEntries at runtime. | 3007 | * one and check NumLogEntries at runtime. |
2923 | */ | 3008 | */ |
2924 | #ifndef MPI_LOG_0_NUM_LOG_ENTRIES | 3009 | #ifndef MPI_LOG_0_NUM_LOG_ENTRIES |
2925 | #define MPI_LOG_0_NUM_LOG_ENTRIES (1) | 3010 | #define MPI_LOG_0_NUM_LOG_ENTRIES (1) |
2926 | #endif | 3011 | #endif |
2927 | 3012 | ||
2928 | #define MPI_LOG_0_LOG_DATA_LENGTH (0x1C) | 3013 | #define MPI_LOG_0_LOG_DATA_LENGTH (0x1C) |
2929 | 3014 | ||
2930 | typedef struct _MPI_LOG_0_ENTRY | 3015 | typedef struct _MPI_LOG_0_ENTRY |
2931 | { | 3016 | { |
2932 | U32 TimeStamp; /* 00h */ | 3017 | U32 TimeStamp; /* 00h */ |
2933 | U32 Reserved1; /* 04h */ | 3018 | U32 Reserved1; /* 04h */ |
2934 | U16 LogSequence; /* 08h */ | 3019 | U16 LogSequence; /* 08h */ |
2935 | U16 LogEntryQualifier; /* 0Ah */ | 3020 | U16 LogEntryQualifier; /* 0Ah */ |
2936 | U8 LogData[MPI_LOG_0_LOG_DATA_LENGTH]; /* 0Ch */ | 3021 | U8 LogData[MPI_LOG_0_LOG_DATA_LENGTH]; /* 0Ch */ |
2937 | } MPI_LOG_0_ENTRY, MPI_POINTER PTR_MPI_LOG_0_ENTRY, | 3022 | } MPI_LOG_0_ENTRY, MPI_POINTER PTR_MPI_LOG_0_ENTRY, |
2938 | MpiLog0Entry_t, MPI_POINTER pMpiLog0Entry_t; | 3023 | MpiLog0Entry_t, MPI_POINTER pMpiLog0Entry_t; |
2939 | 3024 | ||
2940 | /* values for Log Page 0 LogEntry LogEntryQualifier field */ | 3025 | /* values for Log Page 0 LogEntry LogEntryQualifier field */ |
2941 | #define MPI_LOG_0_ENTRY_QUAL_ENTRY_UNUSED (0x0000) | 3026 | #define MPI_LOG_0_ENTRY_QUAL_ENTRY_UNUSED (0x0000) |
2942 | #define MPI_LOG_0_ENTRY_QUAL_POWER_ON_RESET (0x0001) | 3027 | #define MPI_LOG_0_ENTRY_QUAL_POWER_ON_RESET (0x0001) |
2943 | 3028 | ||
2944 | typedef struct _CONFIG_PAGE_LOG_0 | 3029 | typedef struct _CONFIG_PAGE_LOG_0 |
2945 | { | 3030 | { |
2946 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ | 3031 | CONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ |
2947 | U32 Reserved1; /* 08h */ | 3032 | U32 Reserved1; /* 08h */ |
2948 | U32 Reserved2; /* 0Ch */ | 3033 | U32 Reserved2; /* 0Ch */ |
2949 | U16 NumLogEntries; /* 10h */ | 3034 | U16 NumLogEntries; /* 10h */ |
2950 | U16 Reserved3; /* 12h */ | 3035 | U16 Reserved3; /* 12h */ |
2951 | MPI_LOG_0_ENTRY LogEntry[MPI_LOG_0_NUM_LOG_ENTRIES]; /* 14h */ | 3036 | MPI_LOG_0_ENTRY LogEntry[MPI_LOG_0_NUM_LOG_ENTRIES]; /* 14h */ |
2952 | } CONFIG_PAGE_LOG_0, MPI_POINTER PTR_CONFIG_PAGE_LOG_0, | 3037 | } CONFIG_PAGE_LOG_0, MPI_POINTER PTR_CONFIG_PAGE_LOG_0, |
2953 | LogPage0_t, MPI_POINTER pLogPage0_t; | 3038 | LogPage0_t, MPI_POINTER pLogPage0_t; |
2954 | 3039 | ||
2955 | #define MPI_LOG_0_PAGEVERSION (0x01) | 3040 | #define MPI_LOG_0_PAGEVERSION (0x01) |
2956 | 3041 | ||
2957 | 3042 | ||
2958 | #endif | 3043 | #endif |
2959 | 3044 | ||
2960 | 3045 |
drivers/message/fusion/lsi/mpi_history.txt
1 | 1 | ||
2 | ============================== | 2 | ============================== |
3 | MPI Header File Change History | 3 | MPI Header File Change History |
4 | ============================== | 4 | ============================== |
5 | 5 | ||
6 | Copyright (c) 2000-2005 LSI Logic Corporation. | 6 | Copyright (c) 2000-2006 LSI Logic Corporation. |
7 | 7 | ||
8 | --------------------------------------- | 8 | --------------------------------------- |
9 | Header Set Release Version: 01.05.13 | 9 | Header Set Release Version: 01.05.14 |
10 | Header Set Release Date: 03-27-06 | 10 | Header Set Release Date: 10-11-06 |
11 | --------------------------------------- | 11 | --------------------------------------- |
12 | 12 | ||
13 | Filename Current version Prior version | 13 | Filename Current version Prior version |
14 | ---------- --------------- ------------- | 14 | ---------- --------------- ------------- |
15 | mpi.h 01.05.11 01.05.10 | 15 | mpi.h 01.05.12 01.05.11 |
16 | mpi_ioc.h 01.05.11 01.05.10 | 16 | mpi_ioc.h 01.05.12 01.05.11 |
17 | mpi_cnfg.h 01.05.12 01.05.11 | 17 | mpi_cnfg.h 01.05.13 01.05.12 |
18 | mpi_init.h 01.05.07 01.05.06 | 18 | mpi_init.h 01.05.08 01.05.07 |
19 | mpi_targ.h 01.05.06 01.05.05 | 19 | mpi_targ.h 01.05.06 01.05.06 |
20 | mpi_fc.h 01.05.01 01.05.01 | 20 | mpi_fc.h 01.05.01 01.05.01 |
21 | mpi_lan.h 01.05.01 01.05.01 | 21 | mpi_lan.h 01.05.01 01.05.01 |
22 | mpi_raid.h 01.05.02 01.05.02 | 22 | mpi_raid.h 01.05.02 01.05.02 |
23 | mpi_tool.h 01.05.03 01.05.03 | 23 | mpi_tool.h 01.05.03 01.05.03 |
24 | mpi_inb.h 01.05.01 01.05.01 | 24 | mpi_inb.h 01.05.01 01.05.01 |
25 | mpi_sas.h 01.05.03 01.05.02 | 25 | mpi_sas.h 01.05.04 01.05.03 |
26 | mpi_type.h 01.05.02 01.05.02 | 26 | mpi_type.h 01.05.02 01.05.02 |
27 | mpi_history.txt 01.05.13 01.05.12 | 27 | mpi_history.txt 01.05.14 01.05.13 |
28 | 28 | ||
29 | 29 | ||
30 | * Date Version Description | 30 | * Date Version Description |
31 | * -------- -------- ------------------------------------------------------ | 31 | * -------- -------- ------------------------------------------------------ |
32 | 32 | ||
33 | mpi.h | 33 | mpi.h |
34 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. | 34 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. |
35 | * 05-24-00 00.10.02 Added MPI_IOCSTATUS_SCSI_RESIDUAL_MISMATCH definition. | 35 | * 05-24-00 00.10.02 Added MPI_IOCSTATUS_SCSI_RESIDUAL_MISMATCH definition. |
36 | * 06-06-00 01.00.01 Update MPI_VERSION_MAJOR and MPI_VERSION_MINOR. | 36 | * 06-06-00 01.00.01 Update MPI_VERSION_MAJOR and MPI_VERSION_MINOR. |
37 | * 06-22-00 01.00.02 Added MPI_IOCSTATUS_LAN_ definitions. | 37 | * 06-22-00 01.00.02 Added MPI_IOCSTATUS_LAN_ definitions. |
38 | * Removed LAN_SUSPEND function definition. | 38 | * Removed LAN_SUSPEND function definition. |
39 | * Added MPI_MSGFLAGS_CONTINUATION_REPLY definition. | 39 | * Added MPI_MSGFLAGS_CONTINUATION_REPLY definition. |
40 | * 06-30-00 01.00.03 Added MPI_CONTEXT_REPLY_TYPE_LAN definition. | 40 | * 06-30-00 01.00.03 Added MPI_CONTEXT_REPLY_TYPE_LAN definition. |
41 | * Added MPI_GET/SET_CONTEXT_REPLY_TYPE macros. | 41 | * Added MPI_GET/SET_CONTEXT_REPLY_TYPE macros. |
42 | * 07-27-00 01.00.04 Added MPI_FAULT_ definitions. | 42 | * 07-27-00 01.00.04 Added MPI_FAULT_ definitions. |
43 | * Removed MPI_IOCSTATUS_MSG/DATA_XFER_ERROR definitions. | 43 | * Removed MPI_IOCSTATUS_MSG/DATA_XFER_ERROR definitions. |
44 | * Added MPI_IOCSTATUS_INTERNAL_ERROR definition. | 44 | * Added MPI_IOCSTATUS_INTERNAL_ERROR definition. |
45 | * Added MPI_IOCSTATUS_TARGET_XFER_COUNT_MISMATCH. | 45 | * Added MPI_IOCSTATUS_TARGET_XFER_COUNT_MISMATCH. |
46 | * 11-02-00 01.01.01 Original release for post 1.0 work | 46 | * 11-02-00 01.01.01 Original release for post 1.0 work |
47 | * 12-04-00 01.01.02 Added new function codes. | 47 | * 12-04-00 01.01.02 Added new function codes. |
48 | * 01-09-01 01.01.03 Added more definitions to the system interface section | 48 | * 01-09-01 01.01.03 Added more definitions to the system interface section |
49 | * Added MPI_IOCSTATUS_TARGET_STS_DATA_NOT_SENT. | 49 | * Added MPI_IOCSTATUS_TARGET_STS_DATA_NOT_SENT. |
50 | * 01-25-01 01.01.04 Changed MPI_VERSION_MINOR from 0x00 to 0x01. | 50 | * 01-25-01 01.01.04 Changed MPI_VERSION_MINOR from 0x00 to 0x01. |
51 | * 02-20-01 01.01.05 Started using MPI_POINTER. | 51 | * 02-20-01 01.01.05 Started using MPI_POINTER. |
52 | * Added defines for MPI_DIAG_PREVENT_IOC_BOOT and | 52 | * Added defines for MPI_DIAG_PREVENT_IOC_BOOT and |
53 | * MPI_DIAG_CLEAR_FLASH_BAD_SIG. | 53 | * MPI_DIAG_CLEAR_FLASH_BAD_SIG. |
54 | * Obsoleted MPI_IOCSTATUS_TARGET_FC_ defines. | 54 | * Obsoleted MPI_IOCSTATUS_TARGET_FC_ defines. |
55 | * 02-27-01 01.01.06 Removed MPI_HOST_INDEX_REGISTER define. | 55 | * 02-27-01 01.01.06 Removed MPI_HOST_INDEX_REGISTER define. |
56 | * Added function codes for RAID. | 56 | * Added function codes for RAID. |
57 | * 04-09-01 01.01.07 Added alternate define for MPI_DOORBELL_ACTIVE, | 57 | * 04-09-01 01.01.07 Added alternate define for MPI_DOORBELL_ACTIVE, |
58 | * MPI_DOORBELL_USED, to better match the spec. | 58 | * MPI_DOORBELL_USED, to better match the spec. |
59 | * 08-08-01 01.02.01 Original release for v1.2 work. | 59 | * 08-08-01 01.02.01 Original release for v1.2 work. |
60 | * Changed MPI_VERSION_MINOR from 0x01 to 0x02. | 60 | * Changed MPI_VERSION_MINOR from 0x01 to 0x02. |
61 | * Added define MPI_FUNCTION_TOOLBOX. | 61 | * Added define MPI_FUNCTION_TOOLBOX. |
62 | * 09-28-01 01.02.02 New function code MPI_SCSI_ENCLOSURE_PROCESSOR. | 62 | * 09-28-01 01.02.02 New function code MPI_SCSI_ENCLOSURE_PROCESSOR. |
63 | * 11-01-01 01.02.03 Changed name to MPI_FUNCTION_SCSI_ENCLOSURE_PROCESSOR. | 63 | * 11-01-01 01.02.03 Changed name to MPI_FUNCTION_SCSI_ENCLOSURE_PROCESSOR. |
64 | * 03-14-02 01.02.04 Added MPI_HEADER_VERSION_ defines. | 64 | * 03-14-02 01.02.04 Added MPI_HEADER_VERSION_ defines. |
65 | * 05-31-02 01.02.05 Bumped MPI_HEADER_VERSION_UNIT. | 65 | * 05-31-02 01.02.05 Bumped MPI_HEADER_VERSION_UNIT. |
66 | * 07-12-02 01.02.06 Added define for MPI_FUNCTION_MAILBOX. | 66 | * 07-12-02 01.02.06 Added define for MPI_FUNCTION_MAILBOX. |
67 | * 09-16-02 01.02.07 Bumped value for MPI_HEADER_VERSION_UNIT. | 67 | * 09-16-02 01.02.07 Bumped value for MPI_HEADER_VERSION_UNIT. |
68 | * 11-15-02 01.02.08 Added define MPI_IOCSTATUS_TARGET_INVALID_IO_INDEX and | 68 | * 11-15-02 01.02.08 Added define MPI_IOCSTATUS_TARGET_INVALID_IO_INDEX and |
69 | * obsoleted define MPI_IOCSTATUS_TARGET_INVALID_IOCINDEX. | 69 | * obsoleted define MPI_IOCSTATUS_TARGET_INVALID_IOCINDEX. |
70 | * 04-01-03 01.02.09 New IOCStatus code: MPI_IOCSTATUS_FC_EXCHANGE_CANCELED | 70 | * 04-01-03 01.02.09 New IOCStatus code: MPI_IOCSTATUS_FC_EXCHANGE_CANCELED |
71 | * 06-26-03 01.02.10 Bumped MPI_HEADER_VERSION_UNIT value. | 71 | * 06-26-03 01.02.10 Bumped MPI_HEADER_VERSION_UNIT value. |
72 | * 01-16-04 01.02.11 Added define for MPI_IOCLOGINFO_TYPE_SHIFT. | 72 | * 01-16-04 01.02.11 Added define for MPI_IOCLOGINFO_TYPE_SHIFT. |
73 | * 04-29-04 01.02.12 Added function codes for MPI_FUNCTION_DIAG_BUFFER_POST | 73 | * 04-29-04 01.02.12 Added function codes for MPI_FUNCTION_DIAG_BUFFER_POST |
74 | * and MPI_FUNCTION_DIAG_RELEASE. | 74 | * and MPI_FUNCTION_DIAG_RELEASE. |
75 | * Added MPI_IOCSTATUS_DIAGNOSTIC_RELEASED define. | 75 | * Added MPI_IOCSTATUS_DIAGNOSTIC_RELEASED define. |
76 | * Bumped MPI_HEADER_VERSION_UNIT value. | 76 | * Bumped MPI_HEADER_VERSION_UNIT value. |
77 | * 05-11-04 01.03.01 Bumped MPI_VERSION_MINOR for MPI v1.3. | 77 | * 05-11-04 01.03.01 Bumped MPI_VERSION_MINOR for MPI v1.3. |
78 | * Added codes for Inband. | 78 | * Added codes for Inband. |
79 | * 08-19-04 01.05.01 Added defines for Host Buffer Access Control doorbell. | 79 | * 08-19-04 01.05.01 Added defines for Host Buffer Access Control doorbell. |
80 | * Added define for offset of High Priority Request Queue. | 80 | * Added define for offset of High Priority Request Queue. |
81 | * Added new function codes and new IOCStatus codes. | 81 | * Added new function codes and new IOCStatus codes. |
82 | * Added a IOCLogInfo type of SAS. | 82 | * Added a IOCLogInfo type of SAS. |
83 | * 12-07-04 01.05.02 Bumped MPI_HEADER_VERSION_UNIT. | 83 | * 12-07-04 01.05.02 Bumped MPI_HEADER_VERSION_UNIT. |
84 | * 12-09-04 01.05.03 Bumped MPI_HEADER_VERSION_UNIT. | 84 | * 12-09-04 01.05.03 Bumped MPI_HEADER_VERSION_UNIT. |
85 | * 01-15-05 01.05.04 Bumped MPI_HEADER_VERSION_UNIT. | 85 | * 01-15-05 01.05.04 Bumped MPI_HEADER_VERSION_UNIT. |
86 | * 02-09-05 01.05.05 Bumped MPI_HEADER_VERSION_UNIT. | 86 | * 02-09-05 01.05.05 Bumped MPI_HEADER_VERSION_UNIT. |
87 | * 02-22-05 01.05.06 Bumped MPI_HEADER_VERSION_UNIT. | 87 | * 02-22-05 01.05.06 Bumped MPI_HEADER_VERSION_UNIT. |
88 | * 03-11-05 01.05.07 Removed function codes for SCSI IO 32 and | 88 | * 03-11-05 01.05.07 Removed function codes for SCSI IO 32 and |
89 | * TargetAssistExtended requests. | 89 | * TargetAssistExtended requests. |
90 | * Removed EEDP IOCStatus codes. | 90 | * Removed EEDP IOCStatus codes. |
91 | * 06-24-05 01.05.08 Added function codes for SCSI IO 32 and | 91 | * 06-24-05 01.05.08 Added function codes for SCSI IO 32 and |
92 | * TargetAssistExtended requests. | 92 | * TargetAssistExtended requests. |
93 | * Added EEDP IOCStatus codes. | 93 | * Added EEDP IOCStatus codes. |
94 | * 08-03-05 01.05.09 Bumped MPI_HEADER_VERSION_UNIT. | 94 | * 08-03-05 01.05.09 Bumped MPI_HEADER_VERSION_UNIT. |
95 | * 08-30-05 01.05.10 Added 2 new IOCStatus codes for Target. | 95 | * 08-30-05 01.05.10 Added 2 new IOCStatus codes for Target. |
96 | * 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT. | 96 | * 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT. |
97 | * 10-11-06 01.05.12 Bumped MPI_HEADER_VERSION_UNIT. | ||
97 | * -------------------------------------------------------------------------- | 98 | * -------------------------------------------------------------------------- |
98 | 99 | ||
99 | mpi_ioc.h | 100 | mpi_ioc.h |
100 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. | 101 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. |
101 | * 05-24-00 00.10.02 Added _MSG_IOC_INIT_REPLY structure. | 102 | * 05-24-00 00.10.02 Added _MSG_IOC_INIT_REPLY structure. |
102 | * 06-06-00 01.00.01 Added CurReplyFrameSize field to _MSG_IOC_FACTS_REPLY. | 103 | * 06-06-00 01.00.01 Added CurReplyFrameSize field to _MSG_IOC_FACTS_REPLY. |
103 | * 06-12-00 01.00.02 Added _MSG_PORT_ENABLE_REPLY structure. | 104 | * 06-12-00 01.00.02 Added _MSG_PORT_ENABLE_REPLY structure. |
104 | * Added _MSG_EVENT_ACK_REPLY structure. | 105 | * Added _MSG_EVENT_ACK_REPLY structure. |
105 | * Added _MSG_FW_DOWNLOAD_REPLY structure. | 106 | * Added _MSG_FW_DOWNLOAD_REPLY structure. |
106 | * Added _MSG_TOOLBOX_REPLY structure. | 107 | * Added _MSG_TOOLBOX_REPLY structure. |
107 | * 06-30-00 01.00.03 Added MaxLanBuckets to _PORT_FACT_REPLY structure. | 108 | * 06-30-00 01.00.03 Added MaxLanBuckets to _PORT_FACT_REPLY structure. |
108 | * 07-27-00 01.00.04 Added _EVENT_DATA structure definitions for _SCSI, | 109 | * 07-27-00 01.00.04 Added _EVENT_DATA structure definitions for _SCSI, |
109 | * _LINK_STATUS, _LOOP_STATE and _LOGOUT. | 110 | * _LINK_STATUS, _LOOP_STATE and _LOGOUT. |
110 | * 08-11-00 01.00.05 Switched positions of MsgLength and Function fields in | 111 | * 08-11-00 01.00.05 Switched positions of MsgLength and Function fields in |
111 | * _MSG_EVENT_ACK_REPLY structure to match specification. | 112 | * _MSG_EVENT_ACK_REPLY structure to match specification. |
112 | * 11-02-00 01.01.01 Original release for post 1.0 work | 113 | * 11-02-00 01.01.01 Original release for post 1.0 work |
113 | * Added a value for Manufacturer to WhoInit | 114 | * Added a value for Manufacturer to WhoInit |
114 | * 12-04-00 01.01.02 Modified IOCFacts reply, added FWUpload messages, and | 115 | * 12-04-00 01.01.02 Modified IOCFacts reply, added FWUpload messages, and |
115 | * removed toolbox message. | 116 | * removed toolbox message. |
116 | * 01-09-01 01.01.03 Added event enabled and disabled defines. | 117 | * 01-09-01 01.01.03 Added event enabled and disabled defines. |
117 | * Added structures for FwHeader and DataHeader. | 118 | * Added structures for FwHeader and DataHeader. |
118 | * Added ImageType to FwUpload reply. | 119 | * Added ImageType to FwUpload reply. |
119 | * 02-20-01 01.01.04 Started using MPI_POINTER. | 120 | * 02-20-01 01.01.04 Started using MPI_POINTER. |
120 | * 02-27-01 01.01.05 Added event for RAID status change and its event data. | 121 | * 02-27-01 01.01.05 Added event for RAID status change and its event data. |
121 | * Added IocNumber field to MSG_IOC_FACTS_REPLY. | 122 | * Added IocNumber field to MSG_IOC_FACTS_REPLY. |
122 | * 03-27-01 01.01.06 Added defines for ProductId field of MPI_FW_HEADER. | 123 | * 03-27-01 01.01.06 Added defines for ProductId field of MPI_FW_HEADER. |
123 | * Added structure offset comments. | 124 | * Added structure offset comments. |
124 | * 04-09-01 01.01.07 Added structure EVENT_DATA_EVENT_CHANGE. | 125 | * 04-09-01 01.01.07 Added structure EVENT_DATA_EVENT_CHANGE. |
125 | * 08-08-01 01.02.01 Original release for v1.2 work. | 126 | * 08-08-01 01.02.01 Original release for v1.2 work. |
126 | * New format for FWVersion and ProductId in | 127 | * New format for FWVersion and ProductId in |
127 | * MSG_IOC_FACTS_REPLY and MPI_FW_HEADER. | 128 | * MSG_IOC_FACTS_REPLY and MPI_FW_HEADER. |
128 | * 08-31-01 01.02.02 Addded event MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE and | 129 | * 08-31-01 01.02.02 Addded event MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE and |
129 | * related structure and defines. | 130 | * related structure and defines. |
130 | * Added event MPI_EVENT_ON_BUS_TIMER_EXPIRED. | 131 | * Added event MPI_EVENT_ON_BUS_TIMER_EXPIRED. |
131 | * Added MPI_IOCINIT_FLAGS_DISCARD_FW_IMAGE. | 132 | * Added MPI_IOCINIT_FLAGS_DISCARD_FW_IMAGE. |
132 | * Replaced a reserved field in MSG_IOC_FACTS_REPLY with | 133 | * Replaced a reserved field in MSG_IOC_FACTS_REPLY with |
133 | * IOCExceptions and changed DataImageSize to reserved. | 134 | * IOCExceptions and changed DataImageSize to reserved. |
134 | * Added MPI_FW_DOWNLOAD_ITYPE_NVSTORE_DATA and | 135 | * Added MPI_FW_DOWNLOAD_ITYPE_NVSTORE_DATA and |
135 | * MPI_FW_UPLOAD_ITYPE_NVDATA. | 136 | * MPI_FW_UPLOAD_ITYPE_NVDATA. |
136 | * 09-28-01 01.02.03 Modified Event Data for Integrated RAID. | 137 | * 09-28-01 01.02.03 Modified Event Data for Integrated RAID. |
137 | * 11-01-01 01.02.04 Added defines for MPI_EXT_IMAGE_HEADER ImageType field. | 138 | * 11-01-01 01.02.04 Added defines for MPI_EXT_IMAGE_HEADER ImageType field. |
138 | * 03-14-02 01.02.05 Added HeaderVersion field to MSG_IOC_FACTS_REPLY. | 139 | * 03-14-02 01.02.05 Added HeaderVersion field to MSG_IOC_FACTS_REPLY. |
139 | * 05-31-02 01.02.06 Added define for | 140 | * 05-31-02 01.02.06 Added define for |
140 | * MPI_IOCFACTS_EXCEPT_RAID_CONFIG_INVALID. | 141 | * MPI_IOCFACTS_EXCEPT_RAID_CONFIG_INVALID. |
141 | * Added AliasIndex to EVENT_DATA_LOGOUT structure. | 142 | * Added AliasIndex to EVENT_DATA_LOGOUT structure. |
142 | * 04-01-03 01.02.07 Added defines for MPI_FW_HEADER_SIGNATURE_. | 143 | * 04-01-03 01.02.07 Added defines for MPI_FW_HEADER_SIGNATURE_. |
143 | * 06-26-03 01.02.08 Added new values to the product family defines. | 144 | * 06-26-03 01.02.08 Added new values to the product family defines. |
144 | * 04-29-04 01.02.09 Added IOCCapabilities field to MSG_IOC_FACTS_REPLY and | 145 | * 04-29-04 01.02.09 Added IOCCapabilities field to MSG_IOC_FACTS_REPLY and |
145 | * added related defines. | 146 | * added related defines. |
146 | * 05-11-04 01.03.01 Original release for MPI v1.3. | 147 | * 05-11-04 01.03.01 Original release for MPI v1.3. |
147 | * 08-19-04 01.05.01 Added four new fields to MSG_IOC_INIT. | 148 | * 08-19-04 01.05.01 Added four new fields to MSG_IOC_INIT. |
148 | * Added three new fields to MSG_IOC_FACTS_REPLY. | 149 | * Added three new fields to MSG_IOC_FACTS_REPLY. |
149 | * Defined four new bits for the IOCCapabilities field of | 150 | * Defined four new bits for the IOCCapabilities field of |
150 | * the IOCFacts reply. | 151 | * the IOCFacts reply. |
151 | * Added two new PortTypes for the PortFacts reply. | 152 | * Added two new PortTypes for the PortFacts reply. |
152 | * Added six new events along with their EventData | 153 | * Added six new events along with their EventData |
153 | * structures. | 154 | * structures. |
154 | * Added a new MsgFlag to the FwDownload request to | 155 | * Added a new MsgFlag to the FwDownload request to |
155 | * indicate last segment. | 156 | * indicate last segment. |
156 | * Defined a new image type of boot loader. | 157 | * Defined a new image type of boot loader. |
157 | * Added FW family codes for SAS product families. | 158 | * Added FW family codes for SAS product families. |
158 | * 10-05-04 01.05.02 Added ReplyFifoHostSignalingAddr field to | 159 | * 10-05-04 01.05.02 Added ReplyFifoHostSignalingAddr field to |
159 | * MSG_IOC_FACTS_REPLY. | 160 | * MSG_IOC_FACTS_REPLY. |
160 | * 12-07-04 01.05.03 Added more defines for SAS Discovery Error event. | 161 | * 12-07-04 01.05.03 Added more defines for SAS Discovery Error event. |
161 | * 12-09-04 01.05.04 Added Unsupported device to SAS Device event. | 162 | * 12-09-04 01.05.04 Added Unsupported device to SAS Device event. |
162 | * 01-15-05 01.05.05 Added event data for SAS SES Event. | 163 | * 01-15-05 01.05.05 Added event data for SAS SES Event. |
163 | * 02-09-05 01.05.06 Added MPI_FW_UPLOAD_ITYPE_FW_BACKUP define. | 164 | * 02-09-05 01.05.06 Added MPI_FW_UPLOAD_ITYPE_FW_BACKUP define. |
164 | * 02-22-05 01.05.07 Added Host Page Buffer Persistent flag to IOC Facts | 165 | * 02-22-05 01.05.07 Added Host Page Buffer Persistent flag to IOC Facts |
165 | * Reply and IOC Init Request. | 166 | * Reply and IOC Init Request. |
166 | * 03-11-05 01.05.08 Added family code for 1068E family. | 167 | * 03-11-05 01.05.08 Added family code for 1068E family. |
167 | * Removed IOCFacts Reply EEDP Capability bit. | 168 | * Removed IOCFacts Reply EEDP Capability bit. |
168 | * 06-24-05 01.05.09 Added 5 new IOCFacts Reply IOCCapabilities bits. | 169 | * 06-24-05 01.05.09 Added 5 new IOCFacts Reply IOCCapabilities bits. |
169 | * Added Max SATA Targets to SAS Discovery Error event. | 170 | * Added Max SATA Targets to SAS Discovery Error event. |
170 | * 08-30-05 01.05.10 Added 4 new events and their event data structures. | 171 | * 08-30-05 01.05.10 Added 4 new events and their event data structures. |
171 | * Added new ReasonCode value for SAS Device Status Change | 172 | * Added new ReasonCode value for SAS Device Status Change |
172 | * event. | 173 | * event. |
173 | * Added new family code for FC949E. | 174 | * Added new family code for FC949E. |
174 | * 03-27-06 01.05.11 Added MPI_IOCFACTS_CAPABILITY_TLR. | 175 | * 03-27-06 01.05.11 Added MPI_IOCFACTS_CAPABILITY_TLR. |
175 | * Added additional Reason Codes and more event data fields | 176 | * Added additional Reason Codes and more event data fields |
176 | * to EVENT_DATA_SAS_DEVICE_STATUS_CHANGE. | 177 | * to EVENT_DATA_SAS_DEVICE_STATUS_CHANGE. |
177 | * Added EVENT_DATA_SAS_BROADCAST_PRIMITIVE structure and | 178 | * Added EVENT_DATA_SAS_BROADCAST_PRIMITIVE structure and |
178 | * new event. | 179 | * new event. |
179 | * Added MPI_EVENT_SAS_SMP_ERROR and event data structure. | 180 | * Added MPI_EVENT_SAS_SMP_ERROR and event data structure. |
180 | * Added MPI_EVENT_SAS_INIT_DEVICE_STATUS_CHANGE and event | 181 | * Added MPI_EVENT_SAS_INIT_DEVICE_STATUS_CHANGE and event |
181 | * data structure. | 182 | * data structure. |
182 | * Added MPI_EVENT_SAS_INIT_TABLE_OVERFLOW and event | 183 | * Added MPI_EVENT_SAS_INIT_TABLE_OVERFLOW and event |
183 | * data structure. | 184 | * data structure. |
184 | * Added MPI_EXT_IMAGE_TYPE_INITIALIZATION. | 185 | * Added MPI_EXT_IMAGE_TYPE_INITIALIZATION. |
186 | * 10-11-06 01.05.12 Added MPI_IOCFACTS_EXCEPT_METADATA_UNSUPPORTED. | ||
187 | * Added MaxInitiators field to PortFacts reply. | ||
188 | * Added SAS Device Status Change ReasonCode for | ||
189 | * asynchronous notificaiton. | ||
190 | * Added MPI_EVENT_SAS_EXPANDER_STATUS_CHANGE and event | ||
191 | * data structure. | ||
192 | * Added new ImageType values for FWDownload and FWUpload | ||
193 | * requests. | ||
185 | * -------------------------------------------------------------------------- | 194 | * -------------------------------------------------------------------------- |
186 | 195 | ||
187 | mpi_cnfg.h | 196 | mpi_cnfg.h |
188 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. | 197 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. |
189 | * 06-06-00 01.00.01 Update version number for 1.0 release. | 198 | * 06-06-00 01.00.01 Update version number for 1.0 release. |
190 | * 06-08-00 01.00.02 Added _PAGEVERSION definitions for all pages. | 199 | * 06-08-00 01.00.02 Added _PAGEVERSION definitions for all pages. |
191 | * Added FcPhLowestVersion, FcPhHighestVersion, Reserved2 | 200 | * Added FcPhLowestVersion, FcPhHighestVersion, Reserved2 |
192 | * fields to FC_DEVICE_0 page, updated the page version. | 201 | * fields to FC_DEVICE_0 page, updated the page version. |
193 | * Changed _FREE_RUNNING_CLOCK to _PACING_TRANSFERS in | 202 | * Changed _FREE_RUNNING_CLOCK to _PACING_TRANSFERS in |
194 | * SCSI_PORT_0, SCSI_DEVICE_0 and SCSI_DEVICE_1 pages | 203 | * SCSI_PORT_0, SCSI_DEVICE_0 and SCSI_DEVICE_1 pages |
195 | * and updated the page versions. | 204 | * and updated the page versions. |
196 | * Added _RESPONSE_ID_MASK definition to SCSI_PORT_1 | 205 | * Added _RESPONSE_ID_MASK definition to SCSI_PORT_1 |
197 | * page and updated the page version. | 206 | * page and updated the page version. |
198 | * Added Information field and _INFO_PARAMS_NEGOTIATED | 207 | * Added Information field and _INFO_PARAMS_NEGOTIATED |
199 | * definitionto SCSI_DEVICE_0 page. | 208 | * definitionto SCSI_DEVICE_0 page. |
200 | * 06-22-00 01.00.03 Removed batch controls from LAN_0 page and updated the | 209 | * 06-22-00 01.00.03 Removed batch controls from LAN_0 page and updated the |
201 | * page version. | 210 | * page version. |
202 | * Added BucketsRemaining to LAN_1 page, redefined the | 211 | * Added BucketsRemaining to LAN_1 page, redefined the |
203 | * state values, and updated the page version. | 212 | * state values, and updated the page version. |
204 | * Revised bus width definitions in SCSI_PORT_0, | 213 | * Revised bus width definitions in SCSI_PORT_0, |
205 | * SCSI_DEVICE_0 and SCSI_DEVICE_1 pages. | 214 | * SCSI_DEVICE_0 and SCSI_DEVICE_1 pages. |
206 | * 06-30-00 01.00.04 Added MaxReplySize to LAN_1 page and updated the page | 215 | * 06-30-00 01.00.04 Added MaxReplySize to LAN_1 page and updated the page |
207 | * version. | 216 | * version. |
208 | * Moved FC_DEVICE_0 PageAddress description to spec. | 217 | * Moved FC_DEVICE_0 PageAddress description to spec. |
209 | * 07-27-00 01.00.05 Corrected the SubsystemVendorID and SubsystemID field | 218 | * 07-27-00 01.00.05 Corrected the SubsystemVendorID and SubsystemID field |
210 | * widths in IOC_0 page and updated the page version. | 219 | * widths in IOC_0 page and updated the page version. |
211 | * 11-02-00 01.01.01 Original release for post 1.0 work | 220 | * 11-02-00 01.01.01 Original release for post 1.0 work |
212 | * Added Manufacturing pages, IO Unit Page 2, SCSI SPI | 221 | * Added Manufacturing pages, IO Unit Page 2, SCSI SPI |
213 | * Port Page 2, FC Port Page 4, FC Port Page 5 | 222 | * Port Page 2, FC Port Page 4, FC Port Page 5 |
214 | * 12-04-00 01.01.03 Config page changes to match MPI rev 1.00.01. | 223 | * 12-04-00 01.01.03 Config page changes to match MPI rev 1.00.01. |
215 | * 12-05-00 01.01.04 Modified config page actions. | 224 | * 12-05-00 01.01.04 Modified config page actions. |
216 | * 01-09-01 01.01.05 Added defines for page address formats. | 225 | * 01-09-01 01.01.05 Added defines for page address formats. |
217 | * Data size for Manufacturing pages 2 and 3 no longer | 226 | * Data size for Manufacturing pages 2 and 3 no longer |
218 | * defined here. | 227 | * defined here. |
219 | * Io Unit Page 2 size is fixed at 4 adapters and some | 228 | * Io Unit Page 2 size is fixed at 4 adapters and some |
220 | * flags were changed. | 229 | * flags were changed. |
221 | * SCSI Port Page 2 Device Settings modified. | 230 | * SCSI Port Page 2 Device Settings modified. |
222 | * New fields added to FC Port Page 0 and some flags | 231 | * New fields added to FC Port Page 0 and some flags |
223 | * cleaned up. | 232 | * cleaned up. |
224 | * Removed impedance flash from FC Port Page 1. | 233 | * Removed impedance flash from FC Port Page 1. |
225 | * Added FC Port pages 6 and 7. | 234 | * Added FC Port pages 6 and 7. |
226 | * 01-25-01 01.01.06 Added MaxInitiators field to FcPortPage0. | 235 | * 01-25-01 01.01.06 Added MaxInitiators field to FcPortPage0. |
227 | * 01-29-01 01.01.07 Changed some defines to make them 32 character unique. | 236 | * 01-29-01 01.01.07 Changed some defines to make them 32 character unique. |
228 | * Added some LinkType defines for FcPortPage0. | 237 | * Added some LinkType defines for FcPortPage0. |
229 | * 02-20-01 01.01.08 Started using MPI_POINTER. | 238 | * 02-20-01 01.01.08 Started using MPI_POINTER. |
230 | * 02-27-01 01.01.09 Replaced MPI_CONFIG_PAGETYPE_SCSI_LUN with | 239 | * 02-27-01 01.01.09 Replaced MPI_CONFIG_PAGETYPE_SCSI_LUN with |
231 | * MPI_CONFIG_PAGETYPE_RAID_VOLUME. | 240 | * MPI_CONFIG_PAGETYPE_RAID_VOLUME. |
232 | * Added definitions and structures for IOC Page 2 and | 241 | * Added definitions and structures for IOC Page 2 and |
233 | * RAID Volume Page 2. | 242 | * RAID Volume Page 2. |
234 | * 03-27-01 01.01.10 Added CONFIG_PAGE_FC_PORT_8 and CONFIG_PAGE_FC_PORT_9. | 243 | * 03-27-01 01.01.10 Added CONFIG_PAGE_FC_PORT_8 and CONFIG_PAGE_FC_PORT_9. |
235 | * CONFIG_PAGE_FC_PORT_3 now supports persistent by DID. | 244 | * CONFIG_PAGE_FC_PORT_3 now supports persistent by DID. |
236 | * Added VendorId and ProductRevLevel fields to | 245 | * Added VendorId and ProductRevLevel fields to |
237 | * RAIDVOL2_IM_PHYS_ID struct. | 246 | * RAIDVOL2_IM_PHYS_ID struct. |
238 | * Modified values for MPI_FCPORTPAGE0_FLAGS_ATTACH_ | 247 | * Modified values for MPI_FCPORTPAGE0_FLAGS_ATTACH_ |
239 | * defines to make them compatible to MPI version 1.0. | 248 | * defines to make them compatible to MPI version 1.0. |
240 | * Added structure offset comments. | 249 | * Added structure offset comments. |
241 | * 04-09-01 01.01.11 Added some new defines for the PageAddress field and | 250 | * 04-09-01 01.01.11 Added some new defines for the PageAddress field and |
242 | * removed some obsolete ones. | 251 | * removed some obsolete ones. |
243 | * Added IO Unit Page 3. | 252 | * Added IO Unit Page 3. |
244 | * Modified defines for Scsi Port Page 2. | 253 | * Modified defines for Scsi Port Page 2. |
245 | * Modified RAID Volume Pages. | 254 | * Modified RAID Volume Pages. |
246 | * 08-08-01 01.02.01 Original release for v1.2 work. | 255 | * 08-08-01 01.02.01 Original release for v1.2 work. |
247 | * Added SepID and SepBus to RVP2 IMPhysicalDisk struct. | 256 | * Added SepID and SepBus to RVP2 IMPhysicalDisk struct. |
248 | * Added defines for the SEP bits in RVP2 VolumeSettings. | 257 | * Added defines for the SEP bits in RVP2 VolumeSettings. |
249 | * Modified the DeviceSettings field in RVP2 to use the | 258 | * Modified the DeviceSettings field in RVP2 to use the |
250 | * proper structure. | 259 | * proper structure. |
251 | * Added defines for SES, SAF-TE, and cross channel for | 260 | * Added defines for SES, SAF-TE, and cross channel for |
252 | * IOCPage2 CapabilitiesFlags. | 261 | * IOCPage2 CapabilitiesFlags. |
253 | * Removed define for MPI_IOUNITPAGE2_FLAGS_RAID_DISABLE. | 262 | * Removed define for MPI_IOUNITPAGE2_FLAGS_RAID_DISABLE. |
254 | * Removed define for | 263 | * Removed define for |
255 | * MPI_SCSIPORTPAGE2_PORT_FLAGS_PARITY_ENABLE. | 264 | * MPI_SCSIPORTPAGE2_PORT_FLAGS_PARITY_ENABLE. |
256 | * Added define for MPI_CONFIG_PAGEATTR_RO_PERSISTENT. | 265 | * Added define for MPI_CONFIG_PAGEATTR_RO_PERSISTENT. |
257 | * 08-29-01 01.02.02 Fixed value for MPI_MANUFACTPAGE_DEVID_53C1035. | 266 | * 08-29-01 01.02.02 Fixed value for MPI_MANUFACTPAGE_DEVID_53C1035. |
258 | * Added defines for MPI_FCPORTPAGE1_FLAGS_HARD_ALPA_ONLY | 267 | * Added defines for MPI_FCPORTPAGE1_FLAGS_HARD_ALPA_ONLY |
259 | * and MPI_FCPORTPAGE1_FLAGS_IMMEDIATE_ERROR_REPLY. | 268 | * and MPI_FCPORTPAGE1_FLAGS_IMMEDIATE_ERROR_REPLY. |
260 | * Removed MPI_SCSIPORTPAGE0_CAP_PACING_TRANSFERS, | 269 | * Removed MPI_SCSIPORTPAGE0_CAP_PACING_TRANSFERS, |
261 | * MPI_SCSIDEVPAGE0_NP_PACING_TRANSFERS, and | 270 | * MPI_SCSIDEVPAGE0_NP_PACING_TRANSFERS, and |
262 | * MPI_SCSIDEVPAGE1_RP_PACING_TRANSFERS, and | 271 | * MPI_SCSIDEVPAGE1_RP_PACING_TRANSFERS, and |
263 | * MPI_SCSIDEVPAGE1_CONF_PPR_ALLOWED. | 272 | * MPI_SCSIDEVPAGE1_CONF_PPR_ALLOWED. |
264 | * Added defines for MPI_SCSIDEVPAGE1_CONF_WDTR_DISALLOWED | 273 | * Added defines for MPI_SCSIDEVPAGE1_CONF_WDTR_DISALLOWED |
265 | * and MPI_SCSIDEVPAGE1_CONF_SDTR_DISALLOWED. | 274 | * and MPI_SCSIDEVPAGE1_CONF_SDTR_DISALLOWED. |
266 | * Added OnBusTimerValue to CONFIG_PAGE_SCSI_PORT_1. | 275 | * Added OnBusTimerValue to CONFIG_PAGE_SCSI_PORT_1. |
267 | * Added rejected bits to SCSI Device Page 0 Information. | 276 | * Added rejected bits to SCSI Device Page 0 Information. |
268 | * Increased size of ALPA array in FC Port Page 2 by one | 277 | * Increased size of ALPA array in FC Port Page 2 by one |
269 | * and removed a one byte reserved field. | 278 | * and removed a one byte reserved field. |
270 | * 09-28-01 01.02.03 Swapped NegWireSpeedLow and NegWireSpeedLow in | 279 | * 09-28-01 01.02.03 Swapped NegWireSpeedLow and NegWireSpeedLow in |
271 | * CONFIG_PAGE_LAN_1 to match preferred 64-bit ordering. | 280 | * CONFIG_PAGE_LAN_1 to match preferred 64-bit ordering. |
272 | * Added structures for Manufacturing Page 4, IO Unit | 281 | * Added structures for Manufacturing Page 4, IO Unit |
273 | * Page 3, IOC Page 3, IOC Page 4, RAID Volume Page 0, and | 282 | * Page 3, IOC Page 3, IOC Page 4, RAID Volume Page 0, and |
274 | * RAID PhysDisk Page 0. | 283 | * RAID PhysDisk Page 0. |
275 | * 10-04-01 01.02.04 Added define for MPI_CONFIG_PAGETYPE_RAID_PHYSDISK. | 284 | * 10-04-01 01.02.04 Added define for MPI_CONFIG_PAGETYPE_RAID_PHYSDISK. |
276 | * Modified some of the new defines to make them 32 | 285 | * Modified some of the new defines to make them 32 |
277 | * character unique. | 286 | * character unique. |
278 | * Modified how variable length pages (arrays) are defined. | 287 | * Modified how variable length pages (arrays) are defined. |
279 | * Added generic defines for hot spare pools and RAID | 288 | * Added generic defines for hot spare pools and RAID |
280 | * volume types. | 289 | * volume types. |
281 | * 11-01-01 01.02.05 Added define for MPI_IOUNITPAGE1_DISABLE_IR. | 290 | * 11-01-01 01.02.05 Added define for MPI_IOUNITPAGE1_DISABLE_IR. |
282 | * 03-14-02 01.02.06 Added PCISlotNum field to CONFIG_PAGE_IOC_1 along with | 291 | * 03-14-02 01.02.06 Added PCISlotNum field to CONFIG_PAGE_IOC_1 along with |
283 | * related define, and bumped the page version define. | 292 | * related define, and bumped the page version define. |
284 | * 05-31-02 01.02.07 Added a Flags field to CONFIG_PAGE_IOC_2_RAID_VOL in a | 293 | * 05-31-02 01.02.07 Added a Flags field to CONFIG_PAGE_IOC_2_RAID_VOL in a |
285 | * reserved byte and added a define. | 294 | * reserved byte and added a define. |
286 | * Added define for | 295 | * Added define for |
287 | * MPI_RAIDVOL0_STATUS_FLAG_VOLUME_INACTIVE. | 296 | * MPI_RAIDVOL0_STATUS_FLAG_VOLUME_INACTIVE. |
288 | * Added new config page: CONFIG_PAGE_IOC_5. | 297 | * Added new config page: CONFIG_PAGE_IOC_5. |
289 | * Added MaxAliases, MaxHardAliases, and NumCurrentAliases | 298 | * Added MaxAliases, MaxHardAliases, and NumCurrentAliases |
290 | * fields to CONFIG_PAGE_FC_PORT_0. | 299 | * fields to CONFIG_PAGE_FC_PORT_0. |
291 | * Added AltConnector and NumRequestedAliases fields to | 300 | * Added AltConnector and NumRequestedAliases fields to |
292 | * CONFIG_PAGE_FC_PORT_1. | 301 | * CONFIG_PAGE_FC_PORT_1. |
293 | * Added new config page: CONFIG_PAGE_FC_PORT_10. | 302 | * Added new config page: CONFIG_PAGE_FC_PORT_10. |
294 | * 07-12-02 01.02.08 Added more MPI_MANUFACTPAGE_DEVID_ defines. | 303 | * 07-12-02 01.02.08 Added more MPI_MANUFACTPAGE_DEVID_ defines. |
295 | * Added additional MPI_SCSIDEVPAGE0_NP_ defines. | 304 | * Added additional MPI_SCSIDEVPAGE0_NP_ defines. |
296 | * Added more MPI_SCSIDEVPAGE1_RP_ defines. | 305 | * Added more MPI_SCSIDEVPAGE1_RP_ defines. |
297 | * Added define for | 306 | * Added define for |
298 | * MPI_SCSIDEVPAGE1_CONF_EXTENDED_PARAMS_ENABLE. | 307 | * MPI_SCSIDEVPAGE1_CONF_EXTENDED_PARAMS_ENABLE. |
299 | * Added new config page: CONFIG_PAGE_SCSI_DEVICE_3. | 308 | * Added new config page: CONFIG_PAGE_SCSI_DEVICE_3. |
300 | * Modified MPI_FCPORTPAGE5_FLAGS_ defines. | 309 | * Modified MPI_FCPORTPAGE5_FLAGS_ defines. |
301 | * 09-16-02 01.02.09 Added MPI_SCSIDEVPAGE1_CONF_FORCE_PPR_MSG define. | 310 | * 09-16-02 01.02.09 Added MPI_SCSIDEVPAGE1_CONF_FORCE_PPR_MSG define. |
302 | * 11-15-02 01.02.10 Added ConnectedID defines for CONFIG_PAGE_SCSI_PORT_0. | 311 | * 11-15-02 01.02.10 Added ConnectedID defines for CONFIG_PAGE_SCSI_PORT_0. |
303 | * Added more Flags defines for CONFIG_PAGE_FC_PORT_1. | 312 | * Added more Flags defines for CONFIG_PAGE_FC_PORT_1. |
304 | * Added more Flags defines for CONFIG_PAGE_FC_DEVICE_0. | 313 | * Added more Flags defines for CONFIG_PAGE_FC_DEVICE_0. |
305 | * 04-01-03 01.02.11 Added RR_TOV field and additional Flags defines for | 314 | * 04-01-03 01.02.11 Added RR_TOV field and additional Flags defines for |
306 | * CONFIG_PAGE_FC_PORT_1. | 315 | * CONFIG_PAGE_FC_PORT_1. |
307 | * Added define MPI_FCPORTPAGE5_FLAGS_DISABLE to disable | 316 | * Added define MPI_FCPORTPAGE5_FLAGS_DISABLE to disable |
308 | * an alias. | 317 | * an alias. |
309 | * Added more device id defines. | 318 | * Added more device id defines. |
310 | * 06-26-03 01.02.12 Added MPI_IOUNITPAGE1_IR_USE_STATIC_VOLUME_ID define. | 319 | * 06-26-03 01.02.12 Added MPI_IOUNITPAGE1_IR_USE_STATIC_VOLUME_ID define. |
311 | * Added TargetConfig and IDConfig fields to | 320 | * Added TargetConfig and IDConfig fields to |
312 | * CONFIG_PAGE_SCSI_PORT_1. | 321 | * CONFIG_PAGE_SCSI_PORT_1. |
313 | * Added more PortFlags defines for CONFIG_PAGE_SCSI_PORT_2 | 322 | * Added more PortFlags defines for CONFIG_PAGE_SCSI_PORT_2 |
314 | * to control DV. | 323 | * to control DV. |
315 | * Added more Flags defines for CONFIG_PAGE_FC_PORT_1. | 324 | * Added more Flags defines for CONFIG_PAGE_FC_PORT_1. |
316 | * In CONFIG_PAGE_FC_DEVICE_0, replaced Reserved1 field | 325 | * In CONFIG_PAGE_FC_DEVICE_0, replaced Reserved1 field |
317 | * with ADISCHardALPA. | 326 | * with ADISCHardALPA. |
318 | * Added MPI_FC_DEVICE_PAGE0_PROT_FCP_RETRY define. | 327 | * Added MPI_FC_DEVICE_PAGE0_PROT_FCP_RETRY define. |
319 | * 01-16-04 01.02.13 Added InitiatorDeviceTimeout and InitiatorIoPendTimeout | 328 | * 01-16-04 01.02.13 Added InitiatorDeviceTimeout and InitiatorIoPendTimeout |
320 | * fields and related defines to CONFIG_PAGE_FC_PORT_1. | 329 | * fields and related defines to CONFIG_PAGE_FC_PORT_1. |
321 | * Added define for | 330 | * Added define for |
322 | * MPI_FCPORTPAGE1_FLAGS_SOFT_ALPA_FALLBACK. | 331 | * MPI_FCPORTPAGE1_FLAGS_SOFT_ALPA_FALLBACK. |
323 | * Added new fields to the substructures of | 332 | * Added new fields to the substructures of |
324 | * CONFIG_PAGE_FC_PORT_10. | 333 | * CONFIG_PAGE_FC_PORT_10. |
325 | * 04-29-04 01.02.14 Added define for IDP bit for CONFIG_PAGE_SCSI_PORT_0, | 334 | * 04-29-04 01.02.14 Added define for IDP bit for CONFIG_PAGE_SCSI_PORT_0, |
326 | * CONFIG_PAGE_SCSI_DEVICE_0, and | 335 | * CONFIG_PAGE_SCSI_DEVICE_0, and |
327 | * CONFIG_PAGE_SCSI_DEVICE_1. Also bumped Page Version for | 336 | * CONFIG_PAGE_SCSI_DEVICE_1. Also bumped Page Version for |
328 | * these pages. | 337 | * these pages. |
329 | * 05-11-04 01.03.01 Added structure for CONFIG_PAGE_INBAND_0. | 338 | * 05-11-04 01.03.01 Added structure for CONFIG_PAGE_INBAND_0. |
330 | * 08-19-04 01.05.01 Modified MSG_CONFIG request to support extended config | 339 | * 08-19-04 01.05.01 Modified MSG_CONFIG request to support extended config |
331 | * pages. | 340 | * pages. |
332 | * Added a new structure for extended config page header. | 341 | * Added a new structure for extended config page header. |
333 | * Added new extended config pages types and structures for | 342 | * Added new extended config pages types and structures for |
334 | * SAS IO Unit, SAS Expander, SAS Device, and SAS PHY. | 343 | * SAS IO Unit, SAS Expander, SAS Device, and SAS PHY. |
335 | * Replaced a reserved byte in CONFIG_PAGE_MANUFACTURING_4 | 344 | * Replaced a reserved byte in CONFIG_PAGE_MANUFACTURING_4 |
336 | * to add a Flags field. | 345 | * to add a Flags field. |
337 | * Two new Manufacturing config pages (5 and 6). | 346 | * Two new Manufacturing config pages (5 and 6). |
338 | * Two new bits defined for IO Unit Page 1 Flags field. | 347 | * Two new bits defined for IO Unit Page 1 Flags field. |
339 | * Modified CONFIG_PAGE_IO_UNIT_2 to add three new fields | 348 | * Modified CONFIG_PAGE_IO_UNIT_2 to add three new fields |
340 | * to specify the BIOS boot device. | 349 | * to specify the BIOS boot device. |
341 | * Four new Flags bits defined for IO Unit Page 2. | 350 | * Four new Flags bits defined for IO Unit Page 2. |
342 | * Added IO Unit Page 4. | 351 | * Added IO Unit Page 4. |
343 | * Added EEDP Flags settings to IOC Page 1. | 352 | * Added EEDP Flags settings to IOC Page 1. |
344 | * Added new BIOS Page 1 config page. | 353 | * Added new BIOS Page 1 config page. |
345 | * 10-05-04 01.05.02 Added define for | 354 | * 10-05-04 01.05.02 Added define for |
346 | * MPI_IOCPAGE1_INITIATOR_CONTEXT_REPLY_DISABLE. | 355 | * MPI_IOCPAGE1_INITIATOR_CONTEXT_REPLY_DISABLE. |
347 | * Added new Flags field to CONFIG_PAGE_MANUFACTURING_5 and | 356 | * Added new Flags field to CONFIG_PAGE_MANUFACTURING_5 and |
348 | * associated defines. | 357 | * associated defines. |
349 | * Added more defines for SAS IO Unit Page 0 | 358 | * Added more defines for SAS IO Unit Page 0 |
350 | * DiscoveryStatus field. | 359 | * DiscoveryStatus field. |
351 | * Added define for MPI_SAS_IOUNIT0_DS_SUBTRACTIVE_LINK | 360 | * Added define for MPI_SAS_IOUNIT0_DS_SUBTRACTIVE_LINK |
352 | * and MPI_SAS_IOUNIT0_DS_TABLE_LINK. | 361 | * and MPI_SAS_IOUNIT0_DS_TABLE_LINK. |
353 | * Added defines for Physical Mapping Modes to SAS IO Unit | 362 | * Added defines for Physical Mapping Modes to SAS IO Unit |
354 | * Page 2. | 363 | * Page 2. |
355 | * Added define for | 364 | * Added define for |
356 | * MPI_SAS_DEVICE0_FLAGS_PORT_SELECTOR_ATTACH. | 365 | * MPI_SAS_DEVICE0_FLAGS_PORT_SELECTOR_ATTACH. |
357 | * 10-27-04 01.05.03 Added defines for new SAS PHY page addressing mode. | 366 | * 10-27-04 01.05.03 Added defines for new SAS PHY page addressing mode. |
358 | * Added defines for MaxTargetSpinUp to BIOS Page 1. | 367 | * Added defines for MaxTargetSpinUp to BIOS Page 1. |
359 | * Added 5 new ControlFlags defines for SAS IO Unit | 368 | * Added 5 new ControlFlags defines for SAS IO Unit |
360 | * Page 1. | 369 | * Page 1. |
361 | * Added MaxNumPhysicalMappedIDs field to SAS IO Unit | 370 | * Added MaxNumPhysicalMappedIDs field to SAS IO Unit |
362 | * Page 2. | 371 | * Page 2. |
363 | * Added AccessStatus field to SAS Device Page 0 and added | 372 | * Added AccessStatus field to SAS Device Page 0 and added |
364 | * new Flags bits for supported SATA features. | 373 | * new Flags bits for supported SATA features. |
365 | * 12-07-04 01.05.04 Added config page structures for BIOS Page 2, RAID | 374 | * 12-07-04 01.05.04 Added config page structures for BIOS Page 2, RAID |
366 | * Volume Page 1, and RAID Physical Disk Page 1. | 375 | * Volume Page 1, and RAID Physical Disk Page 1. |
367 | * Replaced IO Unit Page 1 BootTargetID,BootBus, and | 376 | * Replaced IO Unit Page 1 BootTargetID,BootBus, and |
368 | * BootAdapterNum with reserved field. | 377 | * BootAdapterNum with reserved field. |
369 | * Added DataScrubRate and ResyncRate to RAID Volume | 378 | * Added DataScrubRate and ResyncRate to RAID Volume |
370 | * Page 0. | 379 | * Page 0. |
371 | * Added MPI_SAS_IOUNIT2_FLAGS_RESERVE_ID_0_FOR_BOOT | 380 | * Added MPI_SAS_IOUNIT2_FLAGS_RESERVE_ID_0_FOR_BOOT |
372 | * define. | 381 | * define. |
373 | * 12-09-04 01.05.05 Added Target Mode Large CDB Enable to FC Port Page 1 | 382 | * 12-09-04 01.05.05 Added Target Mode Large CDB Enable to FC Port Page 1 |
374 | * Flags field. | 383 | * Flags field. |
375 | * Added Auto Port Config flag define for SAS IOUNIT | 384 | * Added Auto Port Config flag define for SAS IOUNIT |
376 | * Page 1 ControlFlags. | 385 | * Page 1 ControlFlags. |
377 | * Added Disabled bad Phy define to Expander Page 1 | 386 | * Added Disabled bad Phy define to Expander Page 1 |
378 | * Discovery Info field. | 387 | * Discovery Info field. |
379 | * Added SAS/SATA device support to SAS IOUnit Page 1 | 388 | * Added SAS/SATA device support to SAS IOUnit Page 1 |
380 | * ControlFlags. | 389 | * ControlFlags. |
381 | * Added Unsupported device to SAS Dev Page 0 Flags field | 390 | * Added Unsupported device to SAS Dev Page 0 Flags field |
382 | * Added disable use SATA Hash Address for SAS IOUNIT | 391 | * Added disable use SATA Hash Address for SAS IOUNIT |
383 | * page 1 in ControlFields. | 392 | * page 1 in ControlFields. |
384 | * 01-15-05 01.05.06 Added defaults for data scrub rate and resync rate to | 393 | * 01-15-05 01.05.06 Added defaults for data scrub rate and resync rate to |
385 | * Manufacturing Page 4. | 394 | * Manufacturing Page 4. |
386 | * Added new defines for BIOS Page 1 IOCSettings field. | 395 | * Added new defines for BIOS Page 1 IOCSettings field. |
387 | * Added ExtDiskIdentifier field to RAID Physical Disk | 396 | * Added ExtDiskIdentifier field to RAID Physical Disk |
388 | * Page 0. | 397 | * Page 0. |
389 | * Added new defines for SAS IO Unit Page 1 ControlFlags | 398 | * Added new defines for SAS IO Unit Page 1 ControlFlags |
390 | * and to SAS Device Page 0 Flags to control SATA devices. | 399 | * and to SAS Device Page 0 Flags to control SATA devices. |
391 | * Added defines and structures for the new Log Page 0, a | 400 | * Added defines and structures for the new Log Page 0, a |
392 | * new type of configuration page. | 401 | * new type of configuration page. |
393 | * 02-09-05 01.05.07 Added InactiveStatus field to RAID Volume Page 0. | 402 | * 02-09-05 01.05.07 Added InactiveStatus field to RAID Volume Page 0. |
394 | * Added WWID field to RAID Volume Page 1. | 403 | * Added WWID field to RAID Volume Page 1. |
395 | * Added PhysicalPort field to SAS Expander pages 0 and 1. | 404 | * Added PhysicalPort field to SAS Expander pages 0 and 1. |
396 | * 03-11-05 01.05.08 Removed the EEDP flags from IOC Page 1. | 405 | * 03-11-05 01.05.08 Removed the EEDP flags from IOC Page 1. |
397 | * Added Enclosure/Slot boot device format to BIOS Page 2. | 406 | * Added Enclosure/Slot boot device format to BIOS Page 2. |
398 | * New status value for RAID Volume Page 0 VolumeStatus | 407 | * New status value for RAID Volume Page 0 VolumeStatus |
399 | * (VolumeState subfield). | 408 | * (VolumeState subfield). |
400 | * New value for RAID Physical Page 0 InactiveStatus. | 409 | * New value for RAID Physical Page 0 InactiveStatus. |
401 | * Added Inactive Volume Member flag RAID Physical Disk | 410 | * Added Inactive Volume Member flag RAID Physical Disk |
402 | * Page 0 PhysDiskStatus field. | 411 | * Page 0 PhysDiskStatus field. |
403 | * New physical mapping mode in SAS IO Unit Page 2. | 412 | * New physical mapping mode in SAS IO Unit Page 2. |
404 | * Added CONFIG_PAGE_SAS_ENCLOSURE_0. | 413 | * Added CONFIG_PAGE_SAS_ENCLOSURE_0. |
405 | * Added Slot and Enclosure fields to SAS Device Page 0. | 414 | * Added Slot and Enclosure fields to SAS Device Page 0. |
406 | * 06-24-05 01.05.09 Added EEDP defines to IOC Page 1. | 415 | * 06-24-05 01.05.09 Added EEDP defines to IOC Page 1. |
407 | * Added more RAID type defines to IOC Page 2. | 416 | * Added more RAID type defines to IOC Page 2. |
408 | * Added Port Enable Delay settings to BIOS Page 1. | 417 | * Added Port Enable Delay settings to BIOS Page 1. |
409 | * Added Bad Block Table Full define to RAID Volume Page 0. | 418 | * Added Bad Block Table Full define to RAID Volume Page 0. |
410 | * Added Previous State defines to RAID Physical Disk | 419 | * Added Previous State defines to RAID Physical Disk |
411 | * Page 0. | 420 | * Page 0. |
412 | * Added Max Sata Targets define for DiscoveryStatus field | 421 | * Added Max Sata Targets define for DiscoveryStatus field |
413 | * of SAS IO Unit Page 0. | 422 | * of SAS IO Unit Page 0. |
414 | * Added Device Self Test to Control Flags of SAS IO Unit | 423 | * Added Device Self Test to Control Flags of SAS IO Unit |
415 | * Page 1. | 424 | * Page 1. |
416 | * Added Direct Attach Starting Slot Number define for SAS | 425 | * Added Direct Attach Starting Slot Number define for SAS |
417 | * IO Unit Page 2. | 426 | * IO Unit Page 2. |
418 | * Added new fields in SAS Device Page 2 for enclosure | 427 | * Added new fields in SAS Device Page 2 for enclosure |
419 | * mapping. | 428 | * mapping. |
420 | * Added OwnerDevHandle and Flags field to SAS PHY Page 0. | 429 | * Added OwnerDevHandle and Flags field to SAS PHY Page 0. |
421 | * Added IOC GPIO Flags define to SAS Enclosure Page 0. | 430 | * Added IOC GPIO Flags define to SAS Enclosure Page 0. |
422 | * Fixed the value for MPI_SAS_IOUNIT1_CONTROL_DEV_SATA_SUPPORT. | 431 | * Fixed the value for MPI_SAS_IOUNIT1_CONTROL_DEV_SATA_SUPPORT. |
423 | * 08-03-05 01.05.10 Removed ISDataScrubRate and ISResyncRate from | 432 | * 08-03-05 01.05.10 Removed ISDataScrubRate and ISResyncRate from |
424 | * Manufacturing Page 4. | 433 | * Manufacturing Page 4. |
425 | * Added MPI_IOUNITPAGE1_SATA_WRITE_CACHE_DISABLE bit. | 434 | * Added MPI_IOUNITPAGE1_SATA_WRITE_CACHE_DISABLE bit. |
426 | * Added NumDevsPerEnclosure field to SAS IO Unit page 2. | 435 | * Added NumDevsPerEnclosure field to SAS IO Unit page 2. |
427 | * Added MPI_SAS_IOUNIT2_FLAGS_HOST_ASSIGNED_PHYS_MAP | 436 | * Added MPI_SAS_IOUNIT2_FLAGS_HOST_ASSIGNED_PHYS_MAP |
428 | * define. | 437 | * define. |
429 | * Added EnclosureHandle field to SAS Expander page 0. | 438 | * Added EnclosureHandle field to SAS Expander page 0. |
430 | * Removed redundant NumTableEntriesProg field from SAS | 439 | * Removed redundant NumTableEntriesProg field from SAS |
431 | * Expander Page 1. | 440 | * Expander Page 1. |
432 | * 08-30-05 01.05.11 Added DeviceID for FC949E and changed the DeviceID for | 441 | * 08-30-05 01.05.11 Added DeviceID for FC949E and changed the DeviceID for |
433 | * SAS1078. | 442 | * SAS1078. |
434 | * Added more defines for Manufacturing Page 4 Flags field. | 443 | * Added more defines for Manufacturing Page 4 Flags field. |
435 | * Added more defines for IOCSettings and added | 444 | * Added more defines for IOCSettings and added |
436 | * ExpanderSpinup field to Bios Page 1. | 445 | * ExpanderSpinup field to Bios Page 1. |
437 | * Added postpone SATA Init bit to SAS IO Unit Page 1 | 446 | * Added postpone SATA Init bit to SAS IO Unit Page 1 |
438 | * ControlFlags. | 447 | * ControlFlags. |
439 | * Changed LogEntry format for Log Page 0. | 448 | * Changed LogEntry format for Log Page 0. |
440 | * 03-27-06 01.05.12 Added two new Flags defines for Manufacturing Page 4. | 449 | * 03-27-06 01.05.12 Added two new Flags defines for Manufacturing Page 4. |
441 | * Added Manufacturing Page 7. | 450 | * Added Manufacturing Page 7. |
442 | * Added MPI_IOCPAGE2_CAP_FLAGS_RAID_64_BIT_ADDRESSING. | 451 | * Added MPI_IOCPAGE2_CAP_FLAGS_RAID_64_BIT_ADDRESSING. |
443 | * Added IOC Page 6. | 452 | * Added IOC Page 6. |
444 | * Added PrevBootDeviceForm field to CONFIG_PAGE_BIOS_2. | 453 | * Added PrevBootDeviceForm field to CONFIG_PAGE_BIOS_2. |
445 | * Added MaxLBAHigh field to RAID Volume Page 0. | 454 | * Added MaxLBAHigh field to RAID Volume Page 0. |
446 | * Added Nvdata version fields to SAS IO Unit Page 0. | 455 | * Added Nvdata version fields to SAS IO Unit Page 0. |
447 | * Added AdditionalControlFlags, MaxTargetPortConnectTime, | 456 | * Added AdditionalControlFlags, MaxTargetPortConnectTime, |
448 | * ReportDeviceMissingDelay, and IODeviceMissingDelay | 457 | * ReportDeviceMissingDelay, and IODeviceMissingDelay |
449 | * fields to SAS IO Unit Page 1. | 458 | * fields to SAS IO Unit Page 1. |
459 | * 10-11-06 01.05.13 Added NumForceWWID field and ForceWWID array to | ||
460 | * Manufacturing Page 5. | ||
461 | * Added Manufacturing pages 8 through 10. | ||
462 | * Added defines for supported metadata size bits in | ||
463 | * CapabilitiesFlags field of IOC Page 6. | ||
464 | * Added defines for metadata size bits in VolumeSettings | ||
465 | * field of RAID Volume Page 0. | ||
466 | * Added SATA Link Reset settings, Enable SATA Asynchronous | ||
467 | * Notification bit, and HideNonZeroAttachedPhyIdentifiers | ||
468 | * bit to AdditionalControlFlags field of SAS IO Unit | ||
469 | * Page 1. | ||
470 | * Added defines for Enclosure Devices Unmapped and | ||
471 | * Device Limit Exceeded bits in Status field of SAS IO | ||
472 | * Unit Page 2. | ||
473 | * Added more AccessStatus values for SAS Device Page 0. | ||
474 | * Added bit for SATA Asynchronous Notification Support in | ||
475 | * Flags field of SAS Device Page 0. | ||
450 | * -------------------------------------------------------------------------- | 476 | * -------------------------------------------------------------------------- |
451 | 477 | ||
452 | mpi_init.h | 478 | mpi_init.h |
453 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. | 479 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. |
454 | * 05-24-00 00.10.02 Added SenseBufferLength to _MSG_SCSI_IO_REPLY. | 480 | * 05-24-00 00.10.02 Added SenseBufferLength to _MSG_SCSI_IO_REPLY. |
455 | * 06-06-00 01.00.01 Update version number for 1.0 release. | 481 | * 06-06-00 01.00.01 Update version number for 1.0 release. |
456 | * 06-08-00 01.00.02 Added MPI_SCSI_RSP_INFO_ definitions. | 482 | * 06-08-00 01.00.02 Added MPI_SCSI_RSP_INFO_ definitions. |
457 | * 11-02-00 01.01.01 Original release for post 1.0 work | 483 | * 11-02-00 01.01.01 Original release for post 1.0 work |
458 | * 12-04-00 01.01.02 Added MPI_SCSIIO_CONTROL_NO_DISCONNECT. | 484 | * 12-04-00 01.01.02 Added MPI_SCSIIO_CONTROL_NO_DISCONNECT. |
459 | * 02-20-01 01.01.03 Started using MPI_POINTER. | 485 | * 02-20-01 01.01.03 Started using MPI_POINTER. |
460 | * 03-27-01 01.01.04 Added structure offset comments. | 486 | * 03-27-01 01.01.04 Added structure offset comments. |
461 | * 04-10-01 01.01.05 Added new MsgFlag for MSG_SCSI_TASK_MGMT. | 487 | * 04-10-01 01.01.05 Added new MsgFlag for MSG_SCSI_TASK_MGMT. |
462 | * 08-08-01 01.02.01 Original release for v1.2 work. | 488 | * 08-08-01 01.02.01 Original release for v1.2 work. |
463 | * 08-29-01 01.02.02 Added MPI_SCSITASKMGMT_TASKTYPE_LOGICAL_UNIT_RESET. | 489 | * 08-29-01 01.02.02 Added MPI_SCSITASKMGMT_TASKTYPE_LOGICAL_UNIT_RESET. |
464 | * Added MPI_SCSI_STATE_QUEUE_TAG_REJECTED for | 490 | * Added MPI_SCSI_STATE_QUEUE_TAG_REJECTED for |
465 | * MSG_SCSI_IO_REPLY. | 491 | * MSG_SCSI_IO_REPLY. |
466 | * 09-28-01 01.02.03 Added structures and defines for SCSI Enclosure | 492 | * 09-28-01 01.02.03 Added structures and defines for SCSI Enclosure |
467 | * Processor messages. | 493 | * Processor messages. |
468 | * 10-04-01 01.02.04 Added defines for SEP request Action field. | 494 | * 10-04-01 01.02.04 Added defines for SEP request Action field. |
469 | * 05-31-02 01.02.05 Added MPI_SCSIIO_MSGFLGS_CMD_DETERMINES_DATA_DIR define | 495 | * 05-31-02 01.02.05 Added MPI_SCSIIO_MSGFLGS_CMD_DETERMINES_DATA_DIR define |
470 | * for SCSI IO requests. | 496 | * for SCSI IO requests. |
471 | * 11-15-02 01.02.06 Added special extended SCSI Status defines for FCP. | 497 | * 11-15-02 01.02.06 Added special extended SCSI Status defines for FCP. |
472 | * 06-26-03 01.02.07 Added MPI_SCSI_STATUS_FCPEXT_UNASSIGNED define. | 498 | * 06-26-03 01.02.07 Added MPI_SCSI_STATUS_FCPEXT_UNASSIGNED define. |
473 | * 05-11-04 01.03.01 Original release for MPI v1.3. | 499 | * 05-11-04 01.03.01 Original release for MPI v1.3. |
474 | * 08-19-04 01.05.01 Added MsgFlags defines for EEDP to SCSI IO request. | 500 | * 08-19-04 01.05.01 Added MsgFlags defines for EEDP to SCSI IO request. |
475 | * Added new word to MSG_SCSI_IO_REPLY to add TaskTag field | 501 | * Added new word to MSG_SCSI_IO_REPLY to add TaskTag field |
476 | * and a reserved U16. | 502 | * and a reserved U16. |
477 | * Added new MSG_SCSI_IO32_REQUEST structure. | 503 | * Added new MSG_SCSI_IO32_REQUEST structure. |
478 | * Added a TaskType of Clear Task Set to SCSI | 504 | * Added a TaskType of Clear Task Set to SCSI |
479 | * Task Management request. | 505 | * Task Management request. |
480 | * 12-07-04 01.05.02 Added support for Task Management Query Task. | 506 | * 12-07-04 01.05.02 Added support for Task Management Query Task. |
481 | * 01-15-05 01.05.03 Modified SCSI Enclosure Processor Request to support | 507 | * 01-15-05 01.05.03 Modified SCSI Enclosure Processor Request to support |
482 | * WWID addressing. | 508 | * WWID addressing. |
483 | * 03-11-05 01.05.04 Removed EEDP flags from SCSI IO Request. | 509 | * 03-11-05 01.05.04 Removed EEDP flags from SCSI IO Request. |
484 | * Removed SCSI IO 32 Request. | 510 | * Removed SCSI IO 32 Request. |
485 | * Modified SCSI Enclosure Processor Request and Reply to | 511 | * Modified SCSI Enclosure Processor Request and Reply to |
486 | * support Enclosure/Slot addressing rather than WWID | 512 | * support Enclosure/Slot addressing rather than WWID |
487 | * addressing. | 513 | * addressing. |
488 | * 06-24-05 01.05.05 Added SCSI IO 32 structures and defines. | 514 | * 06-24-05 01.05.05 Added SCSI IO 32 structures and defines. |
489 | * Added four new defines for SEP SlotStatus. | 515 | * Added four new defines for SEP SlotStatus. |
490 | * 08-03-05 01.05.06 Fixed some MPI_SCSIIO32_MSGFLGS_ defines to make them | 516 | * 08-03-05 01.05.06 Fixed some MPI_SCSIIO32_MSGFLGS_ defines to make them |
491 | * unique in the first 32 characters. | 517 | * unique in the first 32 characters. |
492 | * 03-27-06 01.05.07 Added Task Management type of Clear ACA. | 518 | * 03-27-06 01.05.07 Added Task Management type of Clear ACA. |
519 | * 10-11-06 01.05.08 Shortened define for Task Management type of Clear ACA. | ||
493 | * -------------------------------------------------------------------------- | 520 | * -------------------------------------------------------------------------- |
494 | 521 | ||
495 | mpi_targ.h | 522 | mpi_targ.h |
496 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. | 523 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. |
497 | * 06-06-00 01.00.01 Update version number for 1.0 release. | 524 | * 06-06-00 01.00.01 Update version number for 1.0 release. |
498 | * 06-22-00 01.00.02 Added _MSG_TARGET_CMD_BUFFER_POST_REPLY structure. | 525 | * 06-22-00 01.00.02 Added _MSG_TARGET_CMD_BUFFER_POST_REPLY structure. |
499 | * Corrected DECSRIPTOR typo to DESCRIPTOR. | 526 | * Corrected DECSRIPTOR typo to DESCRIPTOR. |
500 | * 11-02-00 01.01.01 Original release for post 1.0 work | 527 | * 11-02-00 01.01.01 Original release for post 1.0 work |
501 | * Modified target mode to use IoIndex instead of | 528 | * Modified target mode to use IoIndex instead of |
502 | * HostIndex and IocIndex. Added Alias. | 529 | * HostIndex and IocIndex. Added Alias. |
503 | * 01-09-01 01.01.02 Added defines for TARGET_ASSIST_FLAGS_REPOST_CMD_BUFFER | 530 | * 01-09-01 01.01.02 Added defines for TARGET_ASSIST_FLAGS_REPOST_CMD_BUFFER |
504 | * and TARGET_STATUS_SEND_FLAGS_REPOST_CMD_BUFFER. | 531 | * and TARGET_STATUS_SEND_FLAGS_REPOST_CMD_BUFFER. |
505 | * 02-20-01 01.01.03 Started using MPI_POINTER. | 532 | * 02-20-01 01.01.03 Started using MPI_POINTER. |
506 | * Added structures for MPI_TARGET_SCSI_SPI_CMD_BUFFER and | 533 | * Added structures for MPI_TARGET_SCSI_SPI_CMD_BUFFER and |
507 | * MPI_TARGET_FCP_CMD_BUFFER. | 534 | * MPI_TARGET_FCP_CMD_BUFFER. |
508 | * 03-27-01 01.01.04 Added structure offset comments. | 535 | * 03-27-01 01.01.04 Added structure offset comments. |
509 | * 08-08-01 01.02.01 Original release for v1.2 work. | 536 | * 08-08-01 01.02.01 Original release for v1.2 work. |
510 | * 09-28-01 01.02.02 Added structure for MPI_TARGET_SCSI_SPI_STATUS_IU. | 537 | * 09-28-01 01.02.02 Added structure for MPI_TARGET_SCSI_SPI_STATUS_IU. |
511 | * Added PriorityReason field to some replies and | 538 | * Added PriorityReason field to some replies and |
512 | * defined more PriorityReason codes. | 539 | * defined more PriorityReason codes. |
513 | * Added some defines for to support previous version | 540 | * Added some defines for to support previous version |
514 | * of MPI. | 541 | * of MPI. |
515 | * 10-04-01 01.02.03 Added PriorityReason to MSG_TARGET_ERROR_REPLY. | 542 | * 10-04-01 01.02.03 Added PriorityReason to MSG_TARGET_ERROR_REPLY. |
516 | * 11-01-01 01.02.04 Added define for TARGET_STATUS_SEND_FLAGS_HIGH_PRIORITY. | 543 | * 11-01-01 01.02.04 Added define for TARGET_STATUS_SEND_FLAGS_HIGH_PRIORITY. |
517 | * 03-14-02 01.02.05 Modified MPI_TARGET_FCP_RSP_BUFFER to get the proper | 544 | * 03-14-02 01.02.05 Modified MPI_TARGET_FCP_RSP_BUFFER to get the proper |
518 | * byte ordering. | 545 | * byte ordering. |
519 | * 05-31-02 01.02.06 Modified TARGET_MODE_REPLY_ALIAS_MASK to only include | 546 | * 05-31-02 01.02.06 Modified TARGET_MODE_REPLY_ALIAS_MASK to only include |
520 | * one bit. | 547 | * one bit. |
521 | * Added AliasIndex field to MPI_TARGET_FCP_CMD_BUFFER. | 548 | * Added AliasIndex field to MPI_TARGET_FCP_CMD_BUFFER. |
522 | * 09-16-02 01.02.07 Added flags for confirmed completion. | 549 | * 09-16-02 01.02.07 Added flags for confirmed completion. |
523 | * Added PRIORITY_REASON_TARGET_BUSY. | 550 | * Added PRIORITY_REASON_TARGET_BUSY. |
524 | * 11-15-02 01.02.08 Added AliasID field to MPI_TARGET_SCSI_SPI_CMD_BUFFER. | 551 | * 11-15-02 01.02.08 Added AliasID field to MPI_TARGET_SCSI_SPI_CMD_BUFFER. |
525 | * 04-01-03 01.02.09 Added OptionalOxid field to MPI_TARGET_FCP_CMD_BUFFER. | 552 | * 04-01-03 01.02.09 Added OptionalOxid field to MPI_TARGET_FCP_CMD_BUFFER. |
526 | * 05-11-04 01.03.01 Original release for MPI v1.3. | 553 | * 05-11-04 01.03.01 Original release for MPI v1.3. |
527 | * 08-19-04 01.05.01 Added new request message structures for | 554 | * 08-19-04 01.05.01 Added new request message structures for |
528 | * MSG_TARGET_CMD_BUF_POST_BASE_REQUEST, | 555 | * MSG_TARGET_CMD_BUF_POST_BASE_REQUEST, |
529 | * MSG_TARGET_CMD_BUF_POST_LIST_REQUEST, and | 556 | * MSG_TARGET_CMD_BUF_POST_LIST_REQUEST, and |
530 | * MSG_TARGET_ASSIST_EXT_REQUEST. | 557 | * MSG_TARGET_ASSIST_EXT_REQUEST. |
531 | * Added new structures for SAS SSP Command buffer, SSP | 558 | * Added new structures for SAS SSP Command buffer, SSP |
532 | * Task buffer, and SSP Status IU. | 559 | * Task buffer, and SSP Status IU. |
533 | * 10-05-04 01.05.02 MSG_TARGET_CMD_BUFFER_POST_BASE_LIST_REPLY added. | 560 | * 10-05-04 01.05.02 MSG_TARGET_CMD_BUFFER_POST_BASE_LIST_REPLY added. |
534 | * 02-22-05 01.05.03 Changed a comment. | 561 | * 02-22-05 01.05.03 Changed a comment. |
535 | * 03-11-05 01.05.04 Removed TargetAssistExtended Request. | 562 | * 03-11-05 01.05.04 Removed TargetAssistExtended Request. |
536 | * 06-24-05 01.05.05 Added TargetAssistExtended structures and defines. | 563 | * 06-24-05 01.05.05 Added TargetAssistExtended structures and defines. |
537 | * 03-27-06 01.05.06 Added a comment. | 564 | * 03-27-06 01.05.06 Added a comment. |
538 | * -------------------------------------------------------------------------- | 565 | * -------------------------------------------------------------------------- |
539 | 566 | ||
540 | mpi_fc.h | 567 | mpi_fc.h |
541 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. | 568 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. |
542 | * 06-06-00 01.00.01 Update version number for 1.0 release. | 569 | * 06-06-00 01.00.01 Update version number for 1.0 release. |
543 | * 06-12-00 01.00.02 Added _MSG_FC_ABORT_REPLY structure. | 570 | * 06-12-00 01.00.02 Added _MSG_FC_ABORT_REPLY structure. |
544 | * 11-02-00 01.01.01 Original release for post 1.0 work | 571 | * 11-02-00 01.01.01 Original release for post 1.0 work |
545 | * 12-04-00 01.01.02 Added messages for Common Transport Send and | 572 | * 12-04-00 01.01.02 Added messages for Common Transport Send and |
546 | * Primitive Send. | 573 | * Primitive Send. |
547 | * 01-09-01 01.01.03 Modifed some of the new flags to have an MPI prefix | 574 | * 01-09-01 01.01.03 Modifed some of the new flags to have an MPI prefix |
548 | * and modified the FcPrimitiveSend flags. | 575 | * and modified the FcPrimitiveSend flags. |
549 | * 01-25-01 01.01.04 Move InitiatorIndex in LinkServiceRsp reply to a larger | 576 | * 01-25-01 01.01.04 Move InitiatorIndex in LinkServiceRsp reply to a larger |
550 | * field. | 577 | * field. |
551 | * Added FC_ABORT_TYPE_CT_SEND_REQUEST and | 578 | * Added FC_ABORT_TYPE_CT_SEND_REQUEST and |
552 | * FC_ABORT_TYPE_EXLINKSEND_REQUEST for FcAbort request. | 579 | * FC_ABORT_TYPE_EXLINKSEND_REQUEST for FcAbort request. |
553 | * Added MPI_FC_PRIM_SEND_FLAGS_STOP_SEND. | 580 | * Added MPI_FC_PRIM_SEND_FLAGS_STOP_SEND. |
554 | * 02-20-01 01.01.05 Started using MPI_POINTER. | 581 | * 02-20-01 01.01.05 Started using MPI_POINTER. |
555 | * 03-27-01 01.01.06 Added Flags field to MSG_LINK_SERVICE_BUFFER_POST_REPLY | 582 | * 03-27-01 01.01.06 Added Flags field to MSG_LINK_SERVICE_BUFFER_POST_REPLY |
556 | * and defined MPI_LS_BUF_POST_REPLY_FLAG_NO_RSP_NEEDED. | 583 | * and defined MPI_LS_BUF_POST_REPLY_FLAG_NO_RSP_NEEDED. |
557 | * Added MPI_FC_PRIM_SEND_FLAGS_RESET_LINK define. | 584 | * Added MPI_FC_PRIM_SEND_FLAGS_RESET_LINK define. |
558 | * Added structure offset comments. | 585 | * Added structure offset comments. |
559 | * 04-09-01 01.01.07 Added RspLength field to MSG_LINK_SERVICE_RSP_REQUEST. | 586 | * 04-09-01 01.01.07 Added RspLength field to MSG_LINK_SERVICE_RSP_REQUEST. |
560 | * 08-08-01 01.02.01 Original release for v1.2 work. | 587 | * 08-08-01 01.02.01 Original release for v1.2 work. |
561 | * 09-28-01 01.02.02 Change name of reserved field in | 588 | * 09-28-01 01.02.02 Change name of reserved field in |
562 | * MSG_LINK_SERVICE_RSP_REPLY. | 589 | * MSG_LINK_SERVICE_RSP_REPLY. |
563 | * 05-31-02 01.02.03 Adding AliasIndex to FC Direct Access requests. | 590 | * 05-31-02 01.02.03 Adding AliasIndex to FC Direct Access requests. |
564 | * 01-16-04 01.02.04 Added define for MPI_FC_PRIM_SEND_FLAGS_ML_RESET_LINK. | 591 | * 01-16-04 01.02.04 Added define for MPI_FC_PRIM_SEND_FLAGS_ML_RESET_LINK. |
565 | * 05-11-04 01.03.01 Original release for MPI v1.3. | 592 | * 05-11-04 01.03.01 Original release for MPI v1.3. |
566 | * 08-19-04 01.05.01 Original release for MPI v1.5. | 593 | * 08-19-04 01.05.01 Original release for MPI v1.5. |
567 | * -------------------------------------------------------------------------- | 594 | * -------------------------------------------------------------------------- |
568 | 595 | ||
569 | mpi_lan.h | 596 | mpi_lan.h |
570 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. | 597 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. |
571 | * 05-24-00 00.10.02 Added LANStatus field to _MSG_LAN_SEND_REPLY. | 598 | * 05-24-00 00.10.02 Added LANStatus field to _MSG_LAN_SEND_REPLY. |
572 | * Added LANStatus field to _MSG_LAN_RECEIVE_POST_REPLY. | 599 | * Added LANStatus field to _MSG_LAN_RECEIVE_POST_REPLY. |
573 | * Moved ListCount field in _MSG_LAN_RECEIVE_POST_REPLY. | 600 | * Moved ListCount field in _MSG_LAN_RECEIVE_POST_REPLY. |
574 | * 06-06-00 01.00.01 Update version number for 1.0 release. | 601 | * 06-06-00 01.00.01 Update version number for 1.0 release. |
575 | * 06-12-00 01.00.02 Added MPI_ to BUCKETSTATUS_ definitions. | 602 | * 06-12-00 01.00.02 Added MPI_ to BUCKETSTATUS_ definitions. |
576 | * 06-22-00 01.00.03 Major changes to match new LAN definition in 1.0 spec. | 603 | * 06-22-00 01.00.03 Major changes to match new LAN definition in 1.0 spec. |
577 | * 06-30-00 01.00.04 Added Context Reply definitions per revised proposal. | 604 | * 06-30-00 01.00.04 Added Context Reply definitions per revised proposal. |
578 | * Changed transaction context usage to bucket/buffer. | 605 | * Changed transaction context usage to bucket/buffer. |
579 | * 07-05-00 01.00.05 Removed LAN_RECEIVE_POST_BUCKET_CONTEXT_MASK definition | 606 | * 07-05-00 01.00.05 Removed LAN_RECEIVE_POST_BUCKET_CONTEXT_MASK definition |
580 | * to lan private header file | 607 | * to lan private header file |
581 | * 11-02-00 01.01.01 Original release for post 1.0 work | 608 | * 11-02-00 01.01.01 Original release for post 1.0 work |
582 | * 02-20-01 01.01.02 Started using MPI_POINTER. | 609 | * 02-20-01 01.01.02 Started using MPI_POINTER. |
583 | * 03-27-01 01.01.03 Added structure offset comments. | 610 | * 03-27-01 01.01.03 Added structure offset comments. |
584 | * 08-08-01 01.02.01 Original release for v1.2 work. | 611 | * 08-08-01 01.02.01 Original release for v1.2 work. |
585 | * 05-11-04 01.03.01 Original release for MPI v1.3. | 612 | * 05-11-04 01.03.01 Original release for MPI v1.3. |
586 | * 08-19-04 01.05.01 Original release for MPI v1.5. | 613 | * 08-19-04 01.05.01 Original release for MPI v1.5. |
587 | * -------------------------------------------------------------------------- | 614 | * -------------------------------------------------------------------------- |
588 | 615 | ||
589 | mpi_raid.h | 616 | mpi_raid.h |
590 | * 02-27-01 01.01.01 Original release for this file. | 617 | * 02-27-01 01.01.01 Original release for this file. |
591 | * 03-27-01 01.01.02 Added structure offset comments. | 618 | * 03-27-01 01.01.02 Added structure offset comments. |
592 | * 08-08-01 01.02.01 Original release for v1.2 work. | 619 | * 08-08-01 01.02.01 Original release for v1.2 work. |
593 | * 08-29-01 01.02.02 Added DIAG_DATA_UPLOAD_HEADER and related defines. | 620 | * 08-29-01 01.02.02 Added DIAG_DATA_UPLOAD_HEADER and related defines. |
594 | * 09-28-01 01.02.02 Major rework for MPI v1.2 Integrated RAID changes. | 621 | * 09-28-01 01.02.02 Major rework for MPI v1.2 Integrated RAID changes. |
595 | * 10-04-01 01.02.03 Added ActionData defines for | 622 | * 10-04-01 01.02.03 Added ActionData defines for |
596 | * MPI_RAID_ACTION_DELETE_VOLUME action. | 623 | * MPI_RAID_ACTION_DELETE_VOLUME action. |
597 | * 11-01-01 01.02.04 Added define for MPI_RAID_ACTION_ADATA_DO_NOT_SYNC. | 624 | * 11-01-01 01.02.04 Added define for MPI_RAID_ACTION_ADATA_DO_NOT_SYNC. |
598 | * 03-14-02 01.02.05 Added define for MPI_RAID_ACTION_ADATA_LOW_LEVEL_INIT. | 625 | * 03-14-02 01.02.05 Added define for MPI_RAID_ACTION_ADATA_LOW_LEVEL_INIT. |
599 | * 05-07-02 01.02.06 Added define for MPI_RAID_ACTION_ACTIVATE_VOLUME, | 626 | * 05-07-02 01.02.06 Added define for MPI_RAID_ACTION_ACTIVATE_VOLUME, |
600 | * MPI_RAID_ACTION_INACTIVATE_VOLUME, and | 627 | * MPI_RAID_ACTION_INACTIVATE_VOLUME, and |
601 | * MPI_RAID_ACTION_ADATA_INACTIVATE_ALL. | 628 | * MPI_RAID_ACTION_ADATA_INACTIVATE_ALL. |
602 | * 07-12-02 01.02.07 Added structures for Mailbox request and reply. | 629 | * 07-12-02 01.02.07 Added structures for Mailbox request and reply. |
603 | * 11-15-02 01.02.08 Added missing MsgContext field to MSG_MAILBOX_REQUEST. | 630 | * 11-15-02 01.02.08 Added missing MsgContext field to MSG_MAILBOX_REQUEST. |
604 | * 04-01-03 01.02.09 New action data option flag for | 631 | * 04-01-03 01.02.09 New action data option flag for |
605 | * MPI_RAID_ACTION_DELETE_VOLUME. | 632 | * MPI_RAID_ACTION_DELETE_VOLUME. |
606 | * 05-11-04 01.03.01 Original release for MPI v1.3. | 633 | * 05-11-04 01.03.01 Original release for MPI v1.3. |
607 | * 08-19-04 01.05.01 Original release for MPI v1.5. | 634 | * 08-19-04 01.05.01 Original release for MPI v1.5. |
608 | * 01-15-05 01.05.02 Added defines for the two new RAID Actions for | 635 | * 01-15-05 01.05.02 Added defines for the two new RAID Actions for |
609 | * _SET_RESYNC_RATE and _SET_DATA_SCRUB_RATE. | 636 | * _SET_RESYNC_RATE and _SET_DATA_SCRUB_RATE. |
610 | * -------------------------------------------------------------------------- | 637 | * -------------------------------------------------------------------------- |
611 | 638 | ||
612 | mpi_tool.h | 639 | mpi_tool.h |
613 | * 08-08-01 01.02.01 Original release. | 640 | * 08-08-01 01.02.01 Original release. |
614 | * 08-29-01 01.02.02 Added DIAG_DATA_UPLOAD_HEADER and related defines. | 641 | * 08-29-01 01.02.02 Added DIAG_DATA_UPLOAD_HEADER and related defines. |
615 | * 01-16-04 01.02.03 Added defines and structures for new tools | 642 | * 01-16-04 01.02.03 Added defines and structures for new tools |
616 | *. MPI_TOOLBOX_ISTWI_READ_WRITE_TOOL and | 643 | *. MPI_TOOLBOX_ISTWI_READ_WRITE_TOOL and |
617 | * MPI_TOOLBOX_FC_MANAGEMENT_TOOL. | 644 | * MPI_TOOLBOX_FC_MANAGEMENT_TOOL. |
618 | * 04-29-04 01.02.04 Added message structures for Diagnostic Buffer Post and | 645 | * 04-29-04 01.02.04 Added message structures for Diagnostic Buffer Post and |
619 | * Diagnostic Release requests and replies. | 646 | * Diagnostic Release requests and replies. |
620 | * 05-11-04 01.03.01 Original release for MPI v1.3. | 647 | * 05-11-04 01.03.01 Original release for MPI v1.3. |
621 | * 08-19-04 01.05.01 Original release for MPI v1.5. | 648 | * 08-19-04 01.05.01 Original release for MPI v1.5. |
622 | * 10-06-04 01.05.02 Added define for MPI_DIAG_BUF_TYPE_COUNT. | 649 | * 10-06-04 01.05.02 Added define for MPI_DIAG_BUF_TYPE_COUNT. |
623 | * 02-09-05 01.05.03 Added frame size option to FC management tool. | 650 | * 02-09-05 01.05.03 Added frame size option to FC management tool. |
624 | * Added Beacon tool to the Toolbox. | 651 | * Added Beacon tool to the Toolbox. |
625 | * -------------------------------------------------------------------------- | 652 | * -------------------------------------------------------------------------- |
626 | 653 | ||
627 | mpi_inb.h | 654 | mpi_inb.h |
628 | * 05-11-04 01.03.01 Original release. | 655 | * 05-11-04 01.03.01 Original release. |
629 | * 08-19-04 01.05.01 Original release for MPI v1.5. | 656 | * 08-19-04 01.05.01 Original release for MPI v1.5. |
630 | * -------------------------------------------------------------------------- | 657 | * -------------------------------------------------------------------------- |
631 | 658 | ||
632 | mpi_sas.h | 659 | mpi_sas.h |
633 | * 08-19-04 01.05.01 Original release. | 660 | * 08-19-04 01.05.01 Original release. |
634 | * 08-30-05 01.05.02 Added DeviceInfo bit for SEP. | 661 | * 08-30-05 01.05.02 Added DeviceInfo bit for SEP. |
635 | * Added PrimFlags and Primitive field to SAS IO Unit | 662 | * Added PrimFlags and Primitive field to SAS IO Unit |
636 | * Control request, and added a new operation code. | 663 | * Control request, and added a new operation code. |
637 | * 03-27-06 01.05.03 Added Force Full Discovery, Transmit Port Select Signal, | 664 | * 03-27-06 01.05.03 Added Force Full Discovery, Transmit Port Select Signal, |
638 | * and Remove Device operations to SAS IO Unit Control. | 665 | * and Remove Device operations to SAS IO Unit Control. |
639 | * Added DevHandle field to SAS IO Unit Control request and | 666 | * Added DevHandle field to SAS IO Unit Control request and |
640 | * reply. | 667 | * reply. |
668 | * 10-11-06 01.05.04 Fixed the name of a define for Operation field of SAS IO | ||
669 | * Unit Control request. | ||
641 | * -------------------------------------------------------------------------- | 670 | * -------------------------------------------------------------------------- |
642 | 671 | ||
643 | mpi_type.h | 672 | mpi_type.h |
644 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. | 673 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. |
645 | * 06-06-00 01.00.01 Update version number for 1.0 release. | 674 | * 06-06-00 01.00.01 Update version number for 1.0 release. |
646 | * 11-02-00 01.01.01 Original release for post 1.0 work | 675 | * 11-02-00 01.01.01 Original release for post 1.0 work |
647 | * 02-20-01 01.01.02 Added define and ifdef for MPI_POINTER. | 676 | * 02-20-01 01.01.02 Added define and ifdef for MPI_POINTER. |
648 | * 08-08-01 01.02.01 Original release for v1.2 work. | 677 | * 08-08-01 01.02.01 Original release for v1.2 work. |
649 | * 05-11-04 01.03.01 Original release for MPI v1.3. | 678 | * 05-11-04 01.03.01 Original release for MPI v1.3. |
650 | * 08-19-04 01.05.01 Original release for MPI v1.5. | 679 | * 08-19-04 01.05.01 Original release for MPI v1.5. |
651 | * 08-30-05 01.05.02 Added PowerPC option to #ifdef's. | 680 | * 08-30-05 01.05.02 Added PowerPC option to #ifdef's. |
652 | * -------------------------------------------------------------------------- | 681 | * -------------------------------------------------------------------------- |
653 | 682 | ||
654 | mpi_history.txt Parts list history | 683 | mpi_history.txt Parts list history |
655 | 684 | ||
656 | Filename 01.05.13 01.05.12 01.05.11 01.05.10 01.05.09 | 685 | Filename 01.05.13 01.05.13 01.05.12 01.05.11 01.05.10 01.05.09 |
657 | ---------- -------- -------- -------- -------- -------- | 686 | ---------- -------- -------- -------- -------- -------- -------- |
658 | mpi.h 01.05.11 01.05.10 01.05.09 01.05.08 01.05.07 | 687 | mpi.h 01.05.12 01.05.11 01.05.10 01.05.09 01.05.08 01.05.07 |
659 | mpi_ioc.h 01.05.11 01.05.10 01.05.09 01.05.09 01.05.08 | 688 | mpi_ioc.h 01.05.12 01.05.11 01.05.10 01.05.09 01.05.09 01.05.08 |
660 | mpi_cnfg.h 01.05.12 01.05.11 01.05.10 01.05.09 01.05.08 | 689 | mpi_cnfg.h 01.05.13 01.05.12 01.05.11 01.05.10 01.05.09 01.05.08 |
661 | mpi_init.h 01.05.07 01.05.06 01.05.06 01.05.05 01.05.04 | 690 | mpi_init.h 01.05.08 01.05.07 01.05.06 01.05.06 01.05.05 01.05.04 |
662 | mpi_targ.h 01.05.06 01.05.05 01.05.05 01.05.05 01.05.04 | 691 | mpi_targ.h 01.05.06 01.05.06 01.05.05 01.05.05 01.05.05 01.05.04 |
663 | mpi_fc.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 | 692 | mpi_fc.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 |
664 | mpi_lan.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 | 693 | mpi_lan.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 |
665 | mpi_raid.h 01.05.02 01.05.02 01.05.02 01.05.02 01.05.02 | 694 | mpi_raid.h 01.05.02 01.05.02 01.05.02 01.05.02 01.05.02 01.05.02 |
666 | mpi_tool.h 01.05.03 01.05.03 01.05.03 01.05.03 01.05.03 | 695 | mpi_tool.h 01.05.03 01.05.03 01.05.03 01.05.03 01.05.03 01.05.03 |
667 | mpi_inb.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 | 696 | mpi_inb.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 |
668 | mpi_sas.h 01.05.03 01.05.02 01.05.01 01.05.01 01.05.01 | 697 | mpi_sas.h 01.05.04 01.05.03 01.05.02 01.05.01 01.05.01 01.05.01 |
669 | mpi_type.h 01.05.02 01.05.02 01.05.01 01.05.01 01.05.01 | 698 | mpi_type.h 01.05.02 01.05.02 01.05.02 01.05.01 01.05.01 01.05.01 |
670 | 699 | ||
671 | Filename 01.05.08 01.05.07 01.05.06 01.05.05 01.05.04 01.05.03 | 700 | Filename 01.05.08 01.05.07 01.05.06 01.05.05 01.05.04 01.05.03 |
672 | ---------- -------- -------- -------- -------- -------- -------- | 701 | ---------- -------- -------- -------- -------- -------- -------- |
673 | mpi.h 01.05.06 01.05.05 01.05.04 01.05.03 01.05.02 01.05.01 | 702 | mpi.h 01.05.06 01.05.05 01.05.04 01.05.03 01.05.02 01.05.01 |
674 | mpi_ioc.h 01.05.07 01.05.06 01.05.05 01.05.04 01.05.03 01.05.02 | 703 | mpi_ioc.h 01.05.07 01.05.06 01.05.05 01.05.04 01.05.03 01.05.02 |
675 | mpi_cnfg.h 01.05.07 01.05.07 01.05.06 01.05.05 01.05.04 01.05.03 | 704 | mpi_cnfg.h 01.05.07 01.05.07 01.05.06 01.05.05 01.05.04 01.05.03 |
676 | mpi_init.h 01.05.03 01.05.03 01.05.03 01.05.02 01.05.02 01.05.01 | 705 | mpi_init.h 01.05.03 01.05.03 01.05.03 01.05.02 01.05.02 01.05.01 |
677 | mpi_targ.h 01.05.03 01.05.02 01.05.02 01.05.02 01.05.02 01.05.02 | 706 | mpi_targ.h 01.05.03 01.05.02 01.05.02 01.05.02 01.05.02 01.05.02 |
678 | mpi_fc.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 | 707 | mpi_fc.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 |
679 | mpi_lan.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 | 708 | mpi_lan.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 |
680 | mpi_raid.h 01.05.02 01.05.02 01.05.02 01.05.01 01.05.01 01.05.01 | 709 | mpi_raid.h 01.05.02 01.05.02 01.05.02 01.05.01 01.05.01 01.05.01 |
681 | mpi_tool.h 01.05.03 01.05.03 01.05.02 01.05.02 01.05.02 01.05.02 | 710 | mpi_tool.h 01.05.03 01.05.03 01.05.02 01.05.02 01.05.02 01.05.02 |
682 | mpi_inb.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 | 711 | mpi_inb.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 |
683 | mpi_sas.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 | 712 | mpi_sas.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 |
684 | mpi_type.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 | 713 | mpi_type.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 |
685 | 714 | ||
686 | Filename 01.05.02 01.05.01 01.03.01 01.02.14 01.02.13 01.02.12 | 715 | Filename 01.05.02 01.05.01 01.03.01 01.02.14 01.02.13 01.02.12 |
687 | ---------- -------- -------- -------- -------- -------- -------- | 716 | ---------- -------- -------- -------- -------- -------- -------- |
688 | mpi.h 01.05.01 01.05.01 01.03.01 01.02.12 01.02.11 01.02.10 | 717 | mpi.h 01.05.01 01.05.01 01.03.01 01.02.12 01.02.11 01.02.10 |
689 | mpi_ioc.h 01.05.02 01.05.01 01.03.01 01.02.09 01.02.08 01.02.08 | 718 | mpi_ioc.h 01.05.02 01.05.01 01.03.01 01.02.09 01.02.08 01.02.08 |
690 | mpi_cnfg.h 01.05.02 01.05.01 01.03.01 01.02.14 01.02.13 01.02.12 | 719 | mpi_cnfg.h 01.05.02 01.05.01 01.03.01 01.02.14 01.02.13 01.02.12 |
691 | mpi_init.h 01.05.01 01.05.01 01.03.01 01.02.07 01.02.07 01.02.07 | 720 | mpi_init.h 01.05.01 01.05.01 01.03.01 01.02.07 01.02.07 01.02.07 |
692 | mpi_targ.h 01.05.02 01.05.01 01.03.01 01.02.09 01.02.09 01.02.09 | 721 | mpi_targ.h 01.05.02 01.05.01 01.03.01 01.02.09 01.02.09 01.02.09 |
693 | mpi_fc.h 01.05.01 01.05.01 01.03.01 01.02.04 01.02.04 01.02.03 | 722 | mpi_fc.h 01.05.01 01.05.01 01.03.01 01.02.04 01.02.04 01.02.03 |
694 | mpi_lan.h 01.05.01 01.05.01 01.03.01 01.02.01 01.02.01 01.02.01 | 723 | mpi_lan.h 01.05.01 01.05.01 01.03.01 01.02.01 01.02.01 01.02.01 |
695 | mpi_raid.h 01.05.01 01.05.01 01.03.01 01.02.09 01.02.09 01.02.09 | 724 | mpi_raid.h 01.05.01 01.05.01 01.03.01 01.02.09 01.02.09 01.02.09 |
696 | mpi_tool.h 01.05.02 01.05.01 01.03.01 01.02.01 01.02.01 01.02.01 | 725 | mpi_tool.h 01.05.02 01.05.01 01.03.01 01.02.01 01.02.01 01.02.01 |
697 | mpi_inb.h 01.05.01 01.05.01 01.03.01 | 726 | mpi_inb.h 01.05.01 01.05.01 01.03.01 |
698 | mpi_sas.h 01.05.01 01.05.01 | 727 | mpi_sas.h 01.05.01 01.05.01 |
699 | mpi_type.h 01.05.01 01.05.01 01.03.01 01.02.04 01.02.03 01.02.02 | 728 | mpi_type.h 01.05.01 01.05.01 01.03.01 01.02.04 01.02.03 01.02.02 |
700 | 729 | ||
701 | Filename 01.02.11 01.02.10 01.02.09 01.02.08 01.02.07 01.02.06 | 730 | Filename 01.02.11 01.02.10 01.02.09 01.02.08 01.02.07 01.02.06 |
702 | ---------- -------- -------- -------- -------- -------- -------- | 731 | ---------- -------- -------- -------- -------- -------- -------- |
703 | mpi.h 01.02.09 01.02.08 01.02.07 01.02.06 01.02.05 01.02.04 | 732 | mpi.h 01.02.09 01.02.08 01.02.07 01.02.06 01.02.05 01.02.04 |
704 | mpi_ioc.h 01.02.07 01.02.06 01.02.06 01.02.06 01.02.06 01.02.05 | 733 | mpi_ioc.h 01.02.07 01.02.06 01.02.06 01.02.06 01.02.06 01.02.05 |
705 | mpi_cnfg.h 01.02.11 01.02.10 01.02.09 01.02.08 01.02.07 01.02.06 | 734 | mpi_cnfg.h 01.02.11 01.02.10 01.02.09 01.02.08 01.02.07 01.02.06 |
706 | mpi_init.h 01.02.06 01.02.06 01.02.05 01.02.05 01.02.05 01.02.04 | 735 | mpi_init.h 01.02.06 01.02.06 01.02.05 01.02.05 01.02.05 01.02.04 |
707 | mpi_targ.h 01.02.09 01.02.08 01.02.07 01.02.06 01.02.06 01.02.05 | 736 | mpi_targ.h 01.02.09 01.02.08 01.02.07 01.02.06 01.02.06 01.02.05 |
708 | mpi_fc.h 01.02.03 01.02.03 01.02.03 01.02.03 01.02.03 01.02.02 | 737 | mpi_fc.h 01.02.03 01.02.03 01.02.03 01.02.03 01.02.03 01.02.02 |
709 | mpi_lan.h 01.02.01 01.02.01 01.02.01 01.02.01 01.02.01 01.02.01 | 738 | mpi_lan.h 01.02.01 01.02.01 01.02.01 01.02.01 01.02.01 01.02.01 |
710 | mpi_raid.h 01.02.09 01.02.08 01.02.07 01.02.07 01.02.06 01.02.05 | 739 | mpi_raid.h 01.02.09 01.02.08 01.02.07 01.02.07 01.02.06 01.02.05 |
711 | mpi_tool.h 01.02.01 01.02.01 01.02.01 01.02.01 01.02.01 01.02.01 | 740 | mpi_tool.h 01.02.01 01.02.01 01.02.01 01.02.01 01.02.01 01.02.01 |
712 | mpi_type.h 01.02.02 01.02.02 01.02.02 01.02.02 01.02.02 01.02.02 | 741 | mpi_type.h 01.02.02 01.02.02 01.02.02 01.02.02 01.02.02 01.02.02 |
713 | 742 | ||
714 | Filename 01.02.05 01.02.04 01.02.03 01.02.02 01.02.01 01.01.10 | 743 | Filename 01.02.05 01.02.04 01.02.03 01.02.02 01.02.01 01.01.10 |
715 | ---------- -------- -------- -------- -------- -------- -------- | 744 | ---------- -------- -------- -------- -------- -------- -------- |
716 | mpi.h 01.02.03 01.02.02 01.02.02 01.02.01 01.02.01 01.01.07 | 745 | mpi.h 01.02.03 01.02.02 01.02.02 01.02.01 01.02.01 01.01.07 |
717 | mpi_ioc.h 01.02.04 01.02.03 01.02.03 01.02.02 01.02.01 01.01.07 | 746 | mpi_ioc.h 01.02.04 01.02.03 01.02.03 01.02.02 01.02.01 01.01.07 |
718 | mpi_cnfg.h 01.02.05 01.02.04 01.02.03 01.02.02 01.02.01 01.01.11 | 747 | mpi_cnfg.h 01.02.05 01.02.04 01.02.03 01.02.02 01.02.01 01.01.11 |
719 | mpi_init.h 01.02.04 01.02.04 01.02.03 01.02.02 01.02.01 01.01.05 | 748 | mpi_init.h 01.02.04 01.02.04 01.02.03 01.02.02 01.02.01 01.01.05 |
720 | mpi_targ.h 01.02.04 01.02.03 01.02.02 01.02.01 01.02.01 01.01.04 | 749 | mpi_targ.h 01.02.04 01.02.03 01.02.02 01.02.01 01.02.01 01.01.04 |
721 | mpi_fc.h 01.02.02 01.02.02 01.02.02 01.02.01 01.02.01 01.01.07 | 750 | mpi_fc.h 01.02.02 01.02.02 01.02.02 01.02.01 01.02.01 01.01.07 |
722 | mpi_lan.h 01.02.01 01.02.01 01.02.01 01.02.01 01.02.01 01.01.03 | 751 | mpi_lan.h 01.02.01 01.02.01 01.02.01 01.02.01 01.02.01 01.01.03 |
723 | mpi_raid.h 01.02.04 01.02.03 01.02.02 01.02.01 01.02.01 01.01.02 | 752 | mpi_raid.h 01.02.04 01.02.03 01.02.02 01.02.01 01.02.01 01.01.02 |
724 | mpi_tool.h 01.02.02 01.02.02 01.02.02 01.02.02 01.02.01 | 753 | mpi_tool.h 01.02.02 01.02.02 01.02.02 01.02.02 01.02.01 |
725 | mpi_type.h 01.02.02 01.02.02 01.02.02 01.02.02 01.02.01 01.01.02 | 754 | mpi_type.h 01.02.02 01.02.02 01.02.02 01.02.02 01.02.01 01.01.02 |
726 | 755 | ||
727 | Filename 01.01.09 01.01.08 01.01.07 01.01.06 01.01.05 01.01.04 | 756 | Filename 01.01.09 01.01.08 01.01.07 01.01.06 01.01.05 01.01.04 |
728 | ---------- -------- -------- -------- -------- -------- -------- | 757 | ---------- -------- -------- -------- -------- -------- -------- |
729 | mpi.h 01.01.06 01.01.06 01.01.05 01.01.04 01.01.04 01.01.03 | 758 | mpi.h 01.01.06 01.01.06 01.01.05 01.01.04 01.01.04 01.01.03 |
730 | mpi_ioc.h 01.01.06 01.01.05 01.01.04 01.01.03 01.01.03 01.01.03 | 759 | mpi_ioc.h 01.01.06 01.01.05 01.01.04 01.01.03 01.01.03 01.01.03 |
731 | mpi_cnfg.h 01.01.10 01.01.09 01.01.08 01.01.07 01.01.06 01.01.05 | 760 | mpi_cnfg.h 01.01.10 01.01.09 01.01.08 01.01.07 01.01.06 01.01.05 |
732 | mpi_init.h 01.01.04 01.01.03 01.01.03 01.01.02 01.01.02 01.01.02 | 761 | mpi_init.h 01.01.04 01.01.03 01.01.03 01.01.02 01.01.02 01.01.02 |
733 | mpi_targ.h 01.01.04 01.01.03 01.01.03 01.01.02 01.01.02 01.01.02 | 762 | mpi_targ.h 01.01.04 01.01.03 01.01.03 01.01.02 01.01.02 01.01.02 |
734 | mpi_fc.h 01.01.06 01.01.05 01.01.05 01.01.04 01.01.04 01.01.03 | 763 | mpi_fc.h 01.01.06 01.01.05 01.01.05 01.01.04 01.01.04 01.01.03 |
735 | mpi_lan.h 01.01.03 01.01.02 01.01.02 01.01.01 01.01.01 01.01.01 | 764 | mpi_lan.h 01.01.03 01.01.02 01.01.02 01.01.01 01.01.01 01.01.01 |
736 | mpi_raid.h 01.01.02 01.01.01 | 765 | mpi_raid.h 01.01.02 01.01.01 |
737 | mpi_type.h 01.01.02 01.01.02 01.01.02 01.01.01 01.01.01 01.01.01 | 766 | mpi_type.h 01.01.02 01.01.02 01.01.02 01.01.01 01.01.01 01.01.01 |
738 | 767 | ||
739 | Filename 01.01.03 01.01.02 01.01.01 01.00.07 01.00.06 01.00.05 | 768 | Filename 01.01.03 01.01.02 01.01.01 01.00.07 01.00.06 01.00.05 |
740 | ---------- -------- -------- -------- -------- -------- -------- | 769 | ---------- -------- -------- -------- -------- -------- -------- |
741 | mpi.h 01.01.02 01.01.02 01.01.01 01.00.04 01.00.04 01.00.03 | 770 | mpi.h 01.01.02 01.01.02 01.01.01 01.00.04 01.00.04 01.00.03 |
742 | mpi_ioc.h 01.01.02 01.01.02 01.01.01 01.00.05 01.00.04 01.00.03 | 771 | mpi_ioc.h 01.01.02 01.01.02 01.01.01 01.00.05 01.00.04 01.00.03 |
743 | mpi_cnfg.h 01.01.04 01.01.03 01.01.01 01.00.05 01.00.05 01.00.04 | 772 | mpi_cnfg.h 01.01.04 01.01.03 01.01.01 01.00.05 01.00.05 01.00.04 |
744 | mpi_init.h 01.01.02 01.01.02 01.01.01 01.00.02 01.00.02 01.00.02 | 773 | mpi_init.h 01.01.02 01.01.02 01.01.01 01.00.02 01.00.02 01.00.02 |
745 | mpi_targ.h 01.01.01 01.01.01 01.01.01 01.00.02 01.00.02 01.00.02 | 774 | mpi_targ.h 01.01.01 01.01.01 01.01.01 01.00.02 01.00.02 01.00.02 |
746 | mpi_fc.h 01.01.02 01.01.02 01.01.01 01.00.02 01.00.02 01.00.02 | 775 | mpi_fc.h 01.01.02 01.01.02 01.01.01 01.00.02 01.00.02 01.00.02 |
747 | mpi_lan.h 01.01.01 01.01.01 01.01.01 01.00.05 01.00.05 01.00.05 | 776 | mpi_lan.h 01.01.01 01.01.01 01.01.01 01.00.05 01.00.05 01.00.05 |
748 | mpi_type.h 01.01.01 01.01.01 01.01.01 01.00.01 01.00.01 01.00.01 | 777 | mpi_type.h 01.01.01 01.01.01 01.01.01 01.00.01 01.00.01 01.00.01 |
749 | 778 | ||
750 | Filename 01.00.04 01.00.03 01.00.02 01.00.01 00.10.02 00.10.01 | 779 | Filename 01.00.04 01.00.03 01.00.02 01.00.01 00.10.02 00.10.01 |
751 | ---------- -------- -------- -------- -------- -------- -------- | 780 | ---------- -------- -------- -------- -------- -------- -------- |
752 | mpi.h 01.00.02 01.00.01 01.00.01 01.00.01 00.10.02 00.10.01 | 781 | mpi.h 01.00.02 01.00.01 01.00.01 01.00.01 00.10.02 00.10.01 |
753 | mpi_ioc.h 01.00.02 01.00.02 01.00.01 01.00.01 00.10.02 00.10.01 | 782 | mpi_ioc.h 01.00.02 01.00.02 01.00.01 01.00.01 00.10.02 00.10.01 |
754 | mpi_cnfg.h 01.00.03 01.00.02 01.00.02 01.00.01 00.10.01 00.10.01 | 783 | mpi_cnfg.h 01.00.03 01.00.02 01.00.02 01.00.01 00.10.01 00.10.01 |
755 | mpi_init.h 01.00.02 01.00.02 01.00.02 01.00.01 00.10.02 00.10.01 | 784 | mpi_init.h 01.00.02 01.00.02 01.00.02 01.00.01 00.10.02 00.10.01 |
756 | mpi_targ.h 01.00.02 01.00.01 01.00.01 01.00.01 00.10.01 00.10.01 | 785 | mpi_targ.h 01.00.02 01.00.01 01.00.01 01.00.01 00.10.01 00.10.01 |
757 | mpi_fc.h 01.00.02 01.00.02 01.00.01 01.00.01 00.10.01 00.10.01 | 786 | mpi_fc.h 01.00.02 01.00.02 01.00.01 01.00.01 00.10.01 00.10.01 |
758 | mpi_lan.h 01.00.03 01.00.02 01.00.01 01.00.01 00.10.02 00.10.01 | 787 | mpi_lan.h 01.00.03 01.00.02 01.00.01 01.00.01 00.10.02 00.10.01 |
759 | mpi_type.h 01.00.01 01.00.01 01.00.01 01.00.01 00.10.01 00.10.01 | 788 | mpi_type.h 01.00.01 01.00.01 01.00.01 01.00.01 00.10.01 00.10.01 |
760 | 789 | ||
761 | 790 | ||
762 | * -------------------------------------------------------------------------- | 791 | * -------------------------------------------------------------------------- |
763 | 792 | ||
764 | 793 |
drivers/message/fusion/lsi/mpi_init.h
1 | /* | 1 | /* |
2 | * Copyright (c) 2000-2005 LSI Logic Corporation. | 2 | * Copyright (c) 2000-2006 LSI Logic Corporation. |
3 | * | 3 | * |
4 | * | 4 | * |
5 | * Name: mpi_init.h | 5 | * Name: mpi_init.h |
6 | * Title: MPI initiator mode messages and structures | 6 | * Title: MPI initiator mode messages and structures |
7 | * Creation Date: June 8, 2000 | 7 | * Creation Date: June 8, 2000 |
8 | * | 8 | * |
9 | * mpi_init.h Version: 01.05.07 | 9 | * mpi_init.h Version: 01.05.08 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
13 | * | 13 | * |
14 | * Date Version Description | 14 | * Date Version Description |
15 | * -------- -------- ------------------------------------------------------ | 15 | * -------- -------- ------------------------------------------------------ |
16 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. | 16 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. |
17 | * 05-24-00 00.10.02 Added SenseBufferLength to _MSG_SCSI_IO_REPLY. | 17 | * 05-24-00 00.10.02 Added SenseBufferLength to _MSG_SCSI_IO_REPLY. |
18 | * 06-06-00 01.00.01 Update version number for 1.0 release. | 18 | * 06-06-00 01.00.01 Update version number for 1.0 release. |
19 | * 06-08-00 01.00.02 Added MPI_SCSI_RSP_INFO_ definitions. | 19 | * 06-08-00 01.00.02 Added MPI_SCSI_RSP_INFO_ definitions. |
20 | * 11-02-00 01.01.01 Original release for post 1.0 work. | 20 | * 11-02-00 01.01.01 Original release for post 1.0 work. |
21 | * 12-04-00 01.01.02 Added MPI_SCSIIO_CONTROL_NO_DISCONNECT. | 21 | * 12-04-00 01.01.02 Added MPI_SCSIIO_CONTROL_NO_DISCONNECT. |
22 | * 02-20-01 01.01.03 Started using MPI_POINTER. | 22 | * 02-20-01 01.01.03 Started using MPI_POINTER. |
23 | * 03-27-01 01.01.04 Added structure offset comments. | 23 | * 03-27-01 01.01.04 Added structure offset comments. |
24 | * 04-10-01 01.01.05 Added new MsgFlag for MSG_SCSI_TASK_MGMT. | 24 | * 04-10-01 01.01.05 Added new MsgFlag for MSG_SCSI_TASK_MGMT. |
25 | * 08-08-01 01.02.01 Original release for v1.2 work. | 25 | * 08-08-01 01.02.01 Original release for v1.2 work. |
26 | * 08-29-01 01.02.02 Added MPI_SCSITASKMGMT_TASKTYPE_LOGICAL_UNIT_RESET. | 26 | * 08-29-01 01.02.02 Added MPI_SCSITASKMGMT_TASKTYPE_LOGICAL_UNIT_RESET. |
27 | * Added MPI_SCSI_STATE_QUEUE_TAG_REJECTED for | 27 | * Added MPI_SCSI_STATE_QUEUE_TAG_REJECTED for |
28 | * MSG_SCSI_IO_REPLY. | 28 | * MSG_SCSI_IO_REPLY. |
29 | * 09-28-01 01.02.03 Added structures and defines for SCSI Enclosure | 29 | * 09-28-01 01.02.03 Added structures and defines for SCSI Enclosure |
30 | * Processor messages. | 30 | * Processor messages. |
31 | * 10-04-01 01.02.04 Added defines for SEP request Action field. | 31 | * 10-04-01 01.02.04 Added defines for SEP request Action field. |
32 | * 05-31-02 01.02.05 Added MPI_SCSIIO_MSGFLGS_CMD_DETERMINES_DATA_DIR define | 32 | * 05-31-02 01.02.05 Added MPI_SCSIIO_MSGFLGS_CMD_DETERMINES_DATA_DIR define |
33 | * for SCSI IO requests. | 33 | * for SCSI IO requests. |
34 | * 11-15-02 01.02.06 Added special extended SCSI Status defines for FCP. | 34 | * 11-15-02 01.02.06 Added special extended SCSI Status defines for FCP. |
35 | * 06-26-03 01.02.07 Added MPI_SCSI_STATUS_FCPEXT_UNASSIGNED define. | 35 | * 06-26-03 01.02.07 Added MPI_SCSI_STATUS_FCPEXT_UNASSIGNED define. |
36 | * 05-11-04 01.03.01 Original release for MPI v1.3. | 36 | * 05-11-04 01.03.01 Original release for MPI v1.3. |
37 | * 08-19-04 01.05.01 Added MsgFlags defines for EEDP to SCSI IO request. | 37 | * 08-19-04 01.05.01 Added MsgFlags defines for EEDP to SCSI IO request. |
38 | * Added new word to MSG_SCSI_IO_REPLY to add TaskTag field | 38 | * Added new word to MSG_SCSI_IO_REPLY to add TaskTag field |
39 | * and a reserved U16. | 39 | * and a reserved U16. |
40 | * Added new MSG_SCSI_IO32_REQUEST structure. | 40 | * Added new MSG_SCSI_IO32_REQUEST structure. |
41 | * Added a TaskType of Clear Task Set to SCSI | 41 | * Added a TaskType of Clear Task Set to SCSI |
42 | * Task Management request. | 42 | * Task Management request. |
43 | * 12-07-04 01.05.02 Added support for Task Management Query Task. | 43 | * 12-07-04 01.05.02 Added support for Task Management Query Task. |
44 | * 01-15-05 01.05.03 Modified SCSI Enclosure Processor Request to support | 44 | * 01-15-05 01.05.03 Modified SCSI Enclosure Processor Request to support |
45 | * WWID addressing. | 45 | * WWID addressing. |
46 | * 03-11-05 01.05.04 Removed EEDP flags from SCSI IO Request. | 46 | * 03-11-05 01.05.04 Removed EEDP flags from SCSI IO Request. |
47 | * Removed SCSI IO 32 Request. | 47 | * Removed SCSI IO 32 Request. |
48 | * Modified SCSI Enclosure Processor Request and Reply to | 48 | * Modified SCSI Enclosure Processor Request and Reply to |
49 | * support Enclosure/Slot addressing rather than WWID | 49 | * support Enclosure/Slot addressing rather than WWID |
50 | * addressing. | 50 | * addressing. |
51 | * 06-24-05 01.05.05 Added SCSI IO 32 structures and defines. | 51 | * 06-24-05 01.05.05 Added SCSI IO 32 structures and defines. |
52 | * Added four new defines for SEP SlotStatus. | 52 | * Added four new defines for SEP SlotStatus. |
53 | * 08-03-05 01.05.06 Fixed some MPI_SCSIIO32_MSGFLGS_ defines to make them | 53 | * 08-03-05 01.05.06 Fixed some MPI_SCSIIO32_MSGFLGS_ defines to make them |
54 | * unique in the first 32 characters. | 54 | * unique in the first 32 characters. |
55 | * 03-27-06 01.05.07 Added Task Management type of Clear ACA. | 55 | * 03-27-06 01.05.07 Added Task Management type of Clear ACA. |
56 | * 10-11-06 01.05.08 Shortened define for Task Management type of Clear ACA. | ||
56 | * -------------------------------------------------------------------------- | 57 | * -------------------------------------------------------------------------- |
57 | */ | 58 | */ |
58 | 59 | ||
59 | #ifndef MPI_INIT_H | 60 | #ifndef MPI_INIT_H |
60 | #define MPI_INIT_H | 61 | #define MPI_INIT_H |
61 | 62 | ||
62 | 63 | ||
63 | /***************************************************************************** | 64 | /***************************************************************************** |
64 | * | 65 | * |
65 | * S C S I I n i t i a t o r M e s s a g e s | 66 | * S C S I I n i t i a t o r M e s s a g e s |
66 | * | 67 | * |
67 | *****************************************************************************/ | 68 | *****************************************************************************/ |
68 | 69 | ||
69 | /****************************************************************************/ | 70 | /****************************************************************************/ |
70 | /* SCSI IO messages and associated structures */ | 71 | /* SCSI IO messages and associated structures */ |
71 | /****************************************************************************/ | 72 | /****************************************************************************/ |
72 | 73 | ||
73 | typedef struct _MSG_SCSI_IO_REQUEST | 74 | typedef struct _MSG_SCSI_IO_REQUEST |
74 | { | 75 | { |
75 | U8 TargetID; /* 00h */ | 76 | U8 TargetID; /* 00h */ |
76 | U8 Bus; /* 01h */ | 77 | U8 Bus; /* 01h */ |
77 | U8 ChainOffset; /* 02h */ | 78 | U8 ChainOffset; /* 02h */ |
78 | U8 Function; /* 03h */ | 79 | U8 Function; /* 03h */ |
79 | U8 CDBLength; /* 04h */ | 80 | U8 CDBLength; /* 04h */ |
80 | U8 SenseBufferLength; /* 05h */ | 81 | U8 SenseBufferLength; /* 05h */ |
81 | U8 Reserved; /* 06h */ | 82 | U8 Reserved; /* 06h */ |
82 | U8 MsgFlags; /* 07h */ | 83 | U8 MsgFlags; /* 07h */ |
83 | U32 MsgContext; /* 08h */ | 84 | U32 MsgContext; /* 08h */ |
84 | U8 LUN[8]; /* 0Ch */ | 85 | U8 LUN[8]; /* 0Ch */ |
85 | U32 Control; /* 14h */ | 86 | U32 Control; /* 14h */ |
86 | U8 CDB[16]; /* 18h */ | 87 | U8 CDB[16]; /* 18h */ |
87 | U32 DataLength; /* 28h */ | 88 | U32 DataLength; /* 28h */ |
88 | U32 SenseBufferLowAddr; /* 2Ch */ | 89 | U32 SenseBufferLowAddr; /* 2Ch */ |
89 | SGE_IO_UNION SGL; /* 30h */ | 90 | SGE_IO_UNION SGL; /* 30h */ |
90 | } MSG_SCSI_IO_REQUEST, MPI_POINTER PTR_MSG_SCSI_IO_REQUEST, | 91 | } MSG_SCSI_IO_REQUEST, MPI_POINTER PTR_MSG_SCSI_IO_REQUEST, |
91 | SCSIIORequest_t, MPI_POINTER pSCSIIORequest_t; | 92 | SCSIIORequest_t, MPI_POINTER pSCSIIORequest_t; |
92 | 93 | ||
93 | 94 | ||
94 | /* SCSI IO MsgFlags bits */ | 95 | /* SCSI IO MsgFlags bits */ |
95 | 96 | ||
96 | #define MPI_SCSIIO_MSGFLGS_SENSE_WIDTH (0x01) | 97 | #define MPI_SCSIIO_MSGFLGS_SENSE_WIDTH (0x01) |
97 | #define MPI_SCSIIO_MSGFLGS_SENSE_WIDTH_32 (0x00) | 98 | #define MPI_SCSIIO_MSGFLGS_SENSE_WIDTH_32 (0x00) |
98 | #define MPI_SCSIIO_MSGFLGS_SENSE_WIDTH_64 (0x01) | 99 | #define MPI_SCSIIO_MSGFLGS_SENSE_WIDTH_64 (0x01) |
99 | 100 | ||
100 | #define MPI_SCSIIO_MSGFLGS_SENSE_LOCATION (0x02) | 101 | #define MPI_SCSIIO_MSGFLGS_SENSE_LOCATION (0x02) |
101 | #define MPI_SCSIIO_MSGFLGS_SENSE_LOC_HOST (0x00) | 102 | #define MPI_SCSIIO_MSGFLGS_SENSE_LOC_HOST (0x00) |
102 | #define MPI_SCSIIO_MSGFLGS_SENSE_LOC_IOC (0x02) | 103 | #define MPI_SCSIIO_MSGFLGS_SENSE_LOC_IOC (0x02) |
103 | 104 | ||
104 | #define MPI_SCSIIO_MSGFLGS_CMD_DETERMINES_DATA_DIR (0x04) | 105 | #define MPI_SCSIIO_MSGFLGS_CMD_DETERMINES_DATA_DIR (0x04) |
105 | 106 | ||
106 | /* SCSI IO LUN fields */ | 107 | /* SCSI IO LUN fields */ |
107 | 108 | ||
108 | #define MPI_SCSIIO_LUN_FIRST_LEVEL_ADDRESSING (0x0000FFFF) | 109 | #define MPI_SCSIIO_LUN_FIRST_LEVEL_ADDRESSING (0x0000FFFF) |
109 | #define MPI_SCSIIO_LUN_SECOND_LEVEL_ADDRESSING (0xFFFF0000) | 110 | #define MPI_SCSIIO_LUN_SECOND_LEVEL_ADDRESSING (0xFFFF0000) |
110 | #define MPI_SCSIIO_LUN_THIRD_LEVEL_ADDRESSING (0x0000FFFF) | 111 | #define MPI_SCSIIO_LUN_THIRD_LEVEL_ADDRESSING (0x0000FFFF) |
111 | #define MPI_SCSIIO_LUN_FOURTH_LEVEL_ADDRESSING (0xFFFF0000) | 112 | #define MPI_SCSIIO_LUN_FOURTH_LEVEL_ADDRESSING (0xFFFF0000) |
112 | #define MPI_SCSIIO_LUN_LEVEL_1_WORD (0xFF00) | 113 | #define MPI_SCSIIO_LUN_LEVEL_1_WORD (0xFF00) |
113 | #define MPI_SCSIIO_LUN_LEVEL_1_DWORD (0x0000FF00) | 114 | #define MPI_SCSIIO_LUN_LEVEL_1_DWORD (0x0000FF00) |
114 | 115 | ||
115 | /* SCSI IO Control bits */ | 116 | /* SCSI IO Control bits */ |
116 | 117 | ||
117 | #define MPI_SCSIIO_CONTROL_DATADIRECTION_MASK (0x03000000) | 118 | #define MPI_SCSIIO_CONTROL_DATADIRECTION_MASK (0x03000000) |
118 | #define MPI_SCSIIO_CONTROL_NODATATRANSFER (0x00000000) | 119 | #define MPI_SCSIIO_CONTROL_NODATATRANSFER (0x00000000) |
119 | #define MPI_SCSIIO_CONTROL_WRITE (0x01000000) | 120 | #define MPI_SCSIIO_CONTROL_WRITE (0x01000000) |
120 | #define MPI_SCSIIO_CONTROL_READ (0x02000000) | 121 | #define MPI_SCSIIO_CONTROL_READ (0x02000000) |
121 | 122 | ||
122 | #define MPI_SCSIIO_CONTROL_ADDCDBLEN_MASK (0x3C000000) | 123 | #define MPI_SCSIIO_CONTROL_ADDCDBLEN_MASK (0x3C000000) |
123 | #define MPI_SCSIIO_CONTROL_ADDCDBLEN_SHIFT (26) | 124 | #define MPI_SCSIIO_CONTROL_ADDCDBLEN_SHIFT (26) |
124 | 125 | ||
125 | #define MPI_SCSIIO_CONTROL_TASKATTRIBUTE_MASK (0x00000700) | 126 | #define MPI_SCSIIO_CONTROL_TASKATTRIBUTE_MASK (0x00000700) |
126 | #define MPI_SCSIIO_CONTROL_SIMPLEQ (0x00000000) | 127 | #define MPI_SCSIIO_CONTROL_SIMPLEQ (0x00000000) |
127 | #define MPI_SCSIIO_CONTROL_HEADOFQ (0x00000100) | 128 | #define MPI_SCSIIO_CONTROL_HEADOFQ (0x00000100) |
128 | #define MPI_SCSIIO_CONTROL_ORDEREDQ (0x00000200) | 129 | #define MPI_SCSIIO_CONTROL_ORDEREDQ (0x00000200) |
129 | #define MPI_SCSIIO_CONTROL_ACAQ (0x00000400) | 130 | #define MPI_SCSIIO_CONTROL_ACAQ (0x00000400) |
130 | #define MPI_SCSIIO_CONTROL_UNTAGGED (0x00000500) | 131 | #define MPI_SCSIIO_CONTROL_UNTAGGED (0x00000500) |
131 | #define MPI_SCSIIO_CONTROL_NO_DISCONNECT (0x00000700) | 132 | #define MPI_SCSIIO_CONTROL_NO_DISCONNECT (0x00000700) |
132 | 133 | ||
133 | #define MPI_SCSIIO_CONTROL_TASKMANAGE_MASK (0x00FF0000) | 134 | #define MPI_SCSIIO_CONTROL_TASKMANAGE_MASK (0x00FF0000) |
134 | #define MPI_SCSIIO_CONTROL_OBSOLETE (0x00800000) | 135 | #define MPI_SCSIIO_CONTROL_OBSOLETE (0x00800000) |
135 | #define MPI_SCSIIO_CONTROL_CLEAR_ACA_RSV (0x00400000) | 136 | #define MPI_SCSIIO_CONTROL_CLEAR_ACA_RSV (0x00400000) |
136 | #define MPI_SCSIIO_CONTROL_TARGET_RESET (0x00200000) | 137 | #define MPI_SCSIIO_CONTROL_TARGET_RESET (0x00200000) |
137 | #define MPI_SCSIIO_CONTROL_LUN_RESET_RSV (0x00100000) | 138 | #define MPI_SCSIIO_CONTROL_LUN_RESET_RSV (0x00100000) |
138 | #define MPI_SCSIIO_CONTROL_RESERVED (0x00080000) | 139 | #define MPI_SCSIIO_CONTROL_RESERVED (0x00080000) |
139 | #define MPI_SCSIIO_CONTROL_CLR_TASK_SET_RSV (0x00040000) | 140 | #define MPI_SCSIIO_CONTROL_CLR_TASK_SET_RSV (0x00040000) |
140 | #define MPI_SCSIIO_CONTROL_ABORT_TASK_SET (0x00020000) | 141 | #define MPI_SCSIIO_CONTROL_ABORT_TASK_SET (0x00020000) |
141 | #define MPI_SCSIIO_CONTROL_RESERVED2 (0x00010000) | 142 | #define MPI_SCSIIO_CONTROL_RESERVED2 (0x00010000) |
142 | 143 | ||
143 | 144 | ||
144 | /* SCSI IO reply structure */ | 145 | /* SCSI IO reply structure */ |
145 | typedef struct _MSG_SCSI_IO_REPLY | 146 | typedef struct _MSG_SCSI_IO_REPLY |
146 | { | 147 | { |
147 | U8 TargetID; /* 00h */ | 148 | U8 TargetID; /* 00h */ |
148 | U8 Bus; /* 01h */ | 149 | U8 Bus; /* 01h */ |
149 | U8 MsgLength; /* 02h */ | 150 | U8 MsgLength; /* 02h */ |
150 | U8 Function; /* 03h */ | 151 | U8 Function; /* 03h */ |
151 | U8 CDBLength; /* 04h */ | 152 | U8 CDBLength; /* 04h */ |
152 | U8 SenseBufferLength; /* 05h */ | 153 | U8 SenseBufferLength; /* 05h */ |
153 | U8 Reserved; /* 06h */ | 154 | U8 Reserved; /* 06h */ |
154 | U8 MsgFlags; /* 07h */ | 155 | U8 MsgFlags; /* 07h */ |
155 | U32 MsgContext; /* 08h */ | 156 | U32 MsgContext; /* 08h */ |
156 | U8 SCSIStatus; /* 0Ch */ | 157 | U8 SCSIStatus; /* 0Ch */ |
157 | U8 SCSIState; /* 0Dh */ | 158 | U8 SCSIState; /* 0Dh */ |
158 | U16 IOCStatus; /* 0Eh */ | 159 | U16 IOCStatus; /* 0Eh */ |
159 | U32 IOCLogInfo; /* 10h */ | 160 | U32 IOCLogInfo; /* 10h */ |
160 | U32 TransferCount; /* 14h */ | 161 | U32 TransferCount; /* 14h */ |
161 | U32 SenseCount; /* 18h */ | 162 | U32 SenseCount; /* 18h */ |
162 | U32 ResponseInfo; /* 1Ch */ | 163 | U32 ResponseInfo; /* 1Ch */ |
163 | U16 TaskTag; /* 20h */ | 164 | U16 TaskTag; /* 20h */ |
164 | U16 Reserved1; /* 22h */ | 165 | U16 Reserved1; /* 22h */ |
165 | } MSG_SCSI_IO_REPLY, MPI_POINTER PTR_MSG_SCSI_IO_REPLY, | 166 | } MSG_SCSI_IO_REPLY, MPI_POINTER PTR_MSG_SCSI_IO_REPLY, |
166 | SCSIIOReply_t, MPI_POINTER pSCSIIOReply_t; | 167 | SCSIIOReply_t, MPI_POINTER pSCSIIOReply_t; |
167 | 168 | ||
168 | 169 | ||
169 | /* SCSI IO Reply SCSIStatus values (SAM-2 status codes) */ | 170 | /* SCSI IO Reply SCSIStatus values (SAM-2 status codes) */ |
170 | 171 | ||
171 | #define MPI_SCSI_STATUS_SUCCESS (0x00) | 172 | #define MPI_SCSI_STATUS_SUCCESS (0x00) |
172 | #define MPI_SCSI_STATUS_CHECK_CONDITION (0x02) | 173 | #define MPI_SCSI_STATUS_CHECK_CONDITION (0x02) |
173 | #define MPI_SCSI_STATUS_CONDITION_MET (0x04) | 174 | #define MPI_SCSI_STATUS_CONDITION_MET (0x04) |
174 | #define MPI_SCSI_STATUS_BUSY (0x08) | 175 | #define MPI_SCSI_STATUS_BUSY (0x08) |
175 | #define MPI_SCSI_STATUS_INTERMEDIATE (0x10) | 176 | #define MPI_SCSI_STATUS_INTERMEDIATE (0x10) |
176 | #define MPI_SCSI_STATUS_INTERMEDIATE_CONDMET (0x14) | 177 | #define MPI_SCSI_STATUS_INTERMEDIATE_CONDMET (0x14) |
177 | #define MPI_SCSI_STATUS_RESERVATION_CONFLICT (0x18) | 178 | #define MPI_SCSI_STATUS_RESERVATION_CONFLICT (0x18) |
178 | #define MPI_SCSI_STATUS_COMMAND_TERMINATED (0x22) | 179 | #define MPI_SCSI_STATUS_COMMAND_TERMINATED (0x22) |
179 | #define MPI_SCSI_STATUS_TASK_SET_FULL (0x28) | 180 | #define MPI_SCSI_STATUS_TASK_SET_FULL (0x28) |
180 | #define MPI_SCSI_STATUS_ACA_ACTIVE (0x30) | 181 | #define MPI_SCSI_STATUS_ACA_ACTIVE (0x30) |
181 | 182 | ||
182 | #define MPI_SCSI_STATUS_FCPEXT_DEVICE_LOGGED_OUT (0x80) | 183 | #define MPI_SCSI_STATUS_FCPEXT_DEVICE_LOGGED_OUT (0x80) |
183 | #define MPI_SCSI_STATUS_FCPEXT_NO_LINK (0x81) | 184 | #define MPI_SCSI_STATUS_FCPEXT_NO_LINK (0x81) |
184 | #define MPI_SCSI_STATUS_FCPEXT_UNASSIGNED (0x82) | 185 | #define MPI_SCSI_STATUS_FCPEXT_UNASSIGNED (0x82) |
185 | 186 | ||
186 | 187 | ||
187 | /* SCSI IO Reply SCSIState values */ | 188 | /* SCSI IO Reply SCSIState values */ |
188 | 189 | ||
189 | #define MPI_SCSI_STATE_AUTOSENSE_VALID (0x01) | 190 | #define MPI_SCSI_STATE_AUTOSENSE_VALID (0x01) |
190 | #define MPI_SCSI_STATE_AUTOSENSE_FAILED (0x02) | 191 | #define MPI_SCSI_STATE_AUTOSENSE_FAILED (0x02) |
191 | #define MPI_SCSI_STATE_NO_SCSI_STATUS (0x04) | 192 | #define MPI_SCSI_STATE_NO_SCSI_STATUS (0x04) |
192 | #define MPI_SCSI_STATE_TERMINATED (0x08) | 193 | #define MPI_SCSI_STATE_TERMINATED (0x08) |
193 | #define MPI_SCSI_STATE_RESPONSE_INFO_VALID (0x10) | 194 | #define MPI_SCSI_STATE_RESPONSE_INFO_VALID (0x10) |
194 | #define MPI_SCSI_STATE_QUEUE_TAG_REJECTED (0x20) | 195 | #define MPI_SCSI_STATE_QUEUE_TAG_REJECTED (0x20) |
195 | 196 | ||
196 | /* SCSI IO Reply ResponseInfo values */ | 197 | /* SCSI IO Reply ResponseInfo values */ |
197 | /* (FCP-1 RSP_CODE values and SPI-3 Packetized Failure codes) */ | 198 | /* (FCP-1 RSP_CODE values and SPI-3 Packetized Failure codes) */ |
198 | 199 | ||
199 | #define MPI_SCSI_RSP_INFO_FUNCTION_COMPLETE (0x00000000) | 200 | #define MPI_SCSI_RSP_INFO_FUNCTION_COMPLETE (0x00000000) |
200 | #define MPI_SCSI_RSP_INFO_FCP_BURST_LEN_ERROR (0x01000000) | 201 | #define MPI_SCSI_RSP_INFO_FCP_BURST_LEN_ERROR (0x01000000) |
201 | #define MPI_SCSI_RSP_INFO_CMND_FIELDS_INVALID (0x02000000) | 202 | #define MPI_SCSI_RSP_INFO_CMND_FIELDS_INVALID (0x02000000) |
202 | #define MPI_SCSI_RSP_INFO_FCP_DATA_RO_ERROR (0x03000000) | 203 | #define MPI_SCSI_RSP_INFO_FCP_DATA_RO_ERROR (0x03000000) |
203 | #define MPI_SCSI_RSP_INFO_TASK_MGMT_UNSUPPORTED (0x04000000) | 204 | #define MPI_SCSI_RSP_INFO_TASK_MGMT_UNSUPPORTED (0x04000000) |
204 | #define MPI_SCSI_RSP_INFO_TASK_MGMT_FAILED (0x05000000) | 205 | #define MPI_SCSI_RSP_INFO_TASK_MGMT_FAILED (0x05000000) |
205 | #define MPI_SCSI_RSP_INFO_SPI_LQ_INVALID_TYPE (0x06000000) | 206 | #define MPI_SCSI_RSP_INFO_SPI_LQ_INVALID_TYPE (0x06000000) |
206 | 207 | ||
207 | #define MPI_SCSI_TASKTAG_UNKNOWN (0xFFFF) | 208 | #define MPI_SCSI_TASKTAG_UNKNOWN (0xFFFF) |
208 | 209 | ||
209 | 210 | ||
210 | /****************************************************************************/ | 211 | /****************************************************************************/ |
211 | /* SCSI IO 32 messages and associated structures */ | 212 | /* SCSI IO 32 messages and associated structures */ |
212 | /****************************************************************************/ | 213 | /****************************************************************************/ |
213 | 214 | ||
214 | typedef struct | 215 | typedef struct |
215 | { | 216 | { |
216 | U8 CDB[20]; /* 00h */ | 217 | U8 CDB[20]; /* 00h */ |
217 | U32 PrimaryReferenceTag; /* 14h */ | 218 | U32 PrimaryReferenceTag; /* 14h */ |
218 | U16 PrimaryApplicationTag; /* 18h */ | 219 | U16 PrimaryApplicationTag; /* 18h */ |
219 | U16 PrimaryApplicationTagMask; /* 1Ah */ | 220 | U16 PrimaryApplicationTagMask; /* 1Ah */ |
220 | U32 TransferLength; /* 1Ch */ | 221 | U32 TransferLength; /* 1Ch */ |
221 | } MPI_SCSI_IO32_CDB_EEDP32, MPI_POINTER PTR_MPI_SCSI_IO32_CDB_EEDP32, | 222 | } MPI_SCSI_IO32_CDB_EEDP32, MPI_POINTER PTR_MPI_SCSI_IO32_CDB_EEDP32, |
222 | MpiScsiIo32CdbEedp32_t, MPI_POINTER pMpiScsiIo32CdbEedp32_t; | 223 | MpiScsiIo32CdbEedp32_t, MPI_POINTER pMpiScsiIo32CdbEedp32_t; |
223 | 224 | ||
224 | typedef struct | 225 | typedef struct |
225 | { | 226 | { |
226 | U8 CDB[16]; /* 00h */ | 227 | U8 CDB[16]; /* 00h */ |
227 | U32 DataLength; /* 10h */ | 228 | U32 DataLength; /* 10h */ |
228 | U32 PrimaryReferenceTag; /* 14h */ | 229 | U32 PrimaryReferenceTag; /* 14h */ |
229 | U16 PrimaryApplicationTag; /* 18h */ | 230 | U16 PrimaryApplicationTag; /* 18h */ |
230 | U16 PrimaryApplicationTagMask; /* 1Ah */ | 231 | U16 PrimaryApplicationTagMask; /* 1Ah */ |
231 | U32 TransferLength; /* 1Ch */ | 232 | U32 TransferLength; /* 1Ch */ |
232 | } MPI_SCSI_IO32_CDB_EEDP16, MPI_POINTER PTR_MPI_SCSI_IO32_CDB_EEDP16, | 233 | } MPI_SCSI_IO32_CDB_EEDP16, MPI_POINTER PTR_MPI_SCSI_IO32_CDB_EEDP16, |
233 | MpiScsiIo32CdbEedp16_t, MPI_POINTER pMpiScsiIo32CdbEedp16_t; | 234 | MpiScsiIo32CdbEedp16_t, MPI_POINTER pMpiScsiIo32CdbEedp16_t; |
234 | 235 | ||
235 | typedef union | 236 | typedef union |
236 | { | 237 | { |
237 | U8 CDB32[32]; | 238 | U8 CDB32[32]; |
238 | MPI_SCSI_IO32_CDB_EEDP32 EEDP32; | 239 | MPI_SCSI_IO32_CDB_EEDP32 EEDP32; |
239 | MPI_SCSI_IO32_CDB_EEDP16 EEDP16; | 240 | MPI_SCSI_IO32_CDB_EEDP16 EEDP16; |
240 | SGE_SIMPLE_UNION SGE; | 241 | SGE_SIMPLE_UNION SGE; |
241 | } MPI_SCSI_IO32_CDB_UNION, MPI_POINTER PTR_MPI_SCSI_IO32_CDB_UNION, | 242 | } MPI_SCSI_IO32_CDB_UNION, MPI_POINTER PTR_MPI_SCSI_IO32_CDB_UNION, |
242 | MpiScsiIo32Cdb_t, MPI_POINTER pMpiScsiIo32Cdb_t; | 243 | MpiScsiIo32Cdb_t, MPI_POINTER pMpiScsiIo32Cdb_t; |
243 | 244 | ||
244 | typedef struct | 245 | typedef struct |
245 | { | 246 | { |
246 | U8 TargetID; /* 00h */ | 247 | U8 TargetID; /* 00h */ |
247 | U8 Bus; /* 01h */ | 248 | U8 Bus; /* 01h */ |
248 | U16 Reserved1; /* 02h */ | 249 | U16 Reserved1; /* 02h */ |
249 | U32 Reserved2; /* 04h */ | 250 | U32 Reserved2; /* 04h */ |
250 | } MPI_SCSI_IO32_BUS_TARGET_ID_FORM, MPI_POINTER PTR_MPI_SCSI_IO32_BUS_TARGET_ID_FORM, | 251 | } MPI_SCSI_IO32_BUS_TARGET_ID_FORM, MPI_POINTER PTR_MPI_SCSI_IO32_BUS_TARGET_ID_FORM, |
251 | MpiScsiIo32BusTargetIdForm_t, MPI_POINTER pMpiScsiIo32BusTargetIdForm_t; | 252 | MpiScsiIo32BusTargetIdForm_t, MPI_POINTER pMpiScsiIo32BusTargetIdForm_t; |
252 | 253 | ||
253 | typedef union | 254 | typedef union |
254 | { | 255 | { |
255 | MPI_SCSI_IO32_BUS_TARGET_ID_FORM SCSIID; | 256 | MPI_SCSI_IO32_BUS_TARGET_ID_FORM SCSIID; |
256 | U64 WWID; | 257 | U64 WWID; |
257 | } MPI_SCSI_IO32_ADDRESS, MPI_POINTER PTR_MPI_SCSI_IO32_ADDRESS, | 258 | } MPI_SCSI_IO32_ADDRESS, MPI_POINTER PTR_MPI_SCSI_IO32_ADDRESS, |
258 | MpiScsiIo32Address_t, MPI_POINTER pMpiScsiIo32Address_t; | 259 | MpiScsiIo32Address_t, MPI_POINTER pMpiScsiIo32Address_t; |
259 | 260 | ||
260 | typedef struct _MSG_SCSI_IO32_REQUEST | 261 | typedef struct _MSG_SCSI_IO32_REQUEST |
261 | { | 262 | { |
262 | U8 Port; /* 00h */ | 263 | U8 Port; /* 00h */ |
263 | U8 Reserved1; /* 01h */ | 264 | U8 Reserved1; /* 01h */ |
264 | U8 ChainOffset; /* 02h */ | 265 | U8 ChainOffset; /* 02h */ |
265 | U8 Function; /* 03h */ | 266 | U8 Function; /* 03h */ |
266 | U8 CDBLength; /* 04h */ | 267 | U8 CDBLength; /* 04h */ |
267 | U8 SenseBufferLength; /* 05h */ | 268 | U8 SenseBufferLength; /* 05h */ |
268 | U8 Flags; /* 06h */ | 269 | U8 Flags; /* 06h */ |
269 | U8 MsgFlags; /* 07h */ | 270 | U8 MsgFlags; /* 07h */ |
270 | U32 MsgContext; /* 08h */ | 271 | U32 MsgContext; /* 08h */ |
271 | U8 LUN[8]; /* 0Ch */ | 272 | U8 LUN[8]; /* 0Ch */ |
272 | U32 Control; /* 14h */ | 273 | U32 Control; /* 14h */ |
273 | MPI_SCSI_IO32_CDB_UNION CDB; /* 18h */ | 274 | MPI_SCSI_IO32_CDB_UNION CDB; /* 18h */ |
274 | U32 DataLength; /* 38h */ | 275 | U32 DataLength; /* 38h */ |
275 | U32 BidirectionalDataLength; /* 3Ch */ | 276 | U32 BidirectionalDataLength; /* 3Ch */ |
276 | U32 SecondaryReferenceTag; /* 40h */ | 277 | U32 SecondaryReferenceTag; /* 40h */ |
277 | U16 SecondaryApplicationTag; /* 44h */ | 278 | U16 SecondaryApplicationTag; /* 44h */ |
278 | U16 Reserved2; /* 46h */ | 279 | U16 Reserved2; /* 46h */ |
279 | U16 EEDPFlags; /* 48h */ | 280 | U16 EEDPFlags; /* 48h */ |
280 | U16 ApplicationTagTranslationMask; /* 4Ah */ | 281 | U16 ApplicationTagTranslationMask; /* 4Ah */ |
281 | U32 EEDPBlockSize; /* 4Ch */ | 282 | U32 EEDPBlockSize; /* 4Ch */ |
282 | MPI_SCSI_IO32_ADDRESS DeviceAddress; /* 50h */ | 283 | MPI_SCSI_IO32_ADDRESS DeviceAddress; /* 50h */ |
283 | U8 SGLOffset0; /* 58h */ | 284 | U8 SGLOffset0; /* 58h */ |
284 | U8 SGLOffset1; /* 59h */ | 285 | U8 SGLOffset1; /* 59h */ |
285 | U8 SGLOffset2; /* 5Ah */ | 286 | U8 SGLOffset2; /* 5Ah */ |
286 | U8 SGLOffset3; /* 5Bh */ | 287 | U8 SGLOffset3; /* 5Bh */ |
287 | U32 Reserved3; /* 5Ch */ | 288 | U32 Reserved3; /* 5Ch */ |
288 | U32 Reserved4; /* 60h */ | 289 | U32 Reserved4; /* 60h */ |
289 | U32 SenseBufferLowAddr; /* 64h */ | 290 | U32 SenseBufferLowAddr; /* 64h */ |
290 | SGE_IO_UNION SGL; /* 68h */ | 291 | SGE_IO_UNION SGL; /* 68h */ |
291 | } MSG_SCSI_IO32_REQUEST, MPI_POINTER PTR_MSG_SCSI_IO32_REQUEST, | 292 | } MSG_SCSI_IO32_REQUEST, MPI_POINTER PTR_MSG_SCSI_IO32_REQUEST, |
292 | SCSIIO32Request_t, MPI_POINTER pSCSIIO32Request_t; | 293 | SCSIIO32Request_t, MPI_POINTER pSCSIIO32Request_t; |
293 | 294 | ||
294 | /* SCSI IO 32 MsgFlags bits */ | 295 | /* SCSI IO 32 MsgFlags bits */ |
295 | #define MPI_SCSIIO32_MSGFLGS_SENSE_WIDTH (0x01) | 296 | #define MPI_SCSIIO32_MSGFLGS_SENSE_WIDTH (0x01) |
296 | #define MPI_SCSIIO32_MSGFLGS_32_SENSE_WIDTH (0x00) | 297 | #define MPI_SCSIIO32_MSGFLGS_32_SENSE_WIDTH (0x00) |
297 | #define MPI_SCSIIO32_MSGFLGS_64_SENSE_WIDTH (0x01) | 298 | #define MPI_SCSIIO32_MSGFLGS_64_SENSE_WIDTH (0x01) |
298 | 299 | ||
299 | #define MPI_SCSIIO32_MSGFLGS_SENSE_LOCATION (0x02) | 300 | #define MPI_SCSIIO32_MSGFLGS_SENSE_LOCATION (0x02) |
300 | #define MPI_SCSIIO32_MSGFLGS_SENSE_LOC_HOST (0x00) | 301 | #define MPI_SCSIIO32_MSGFLGS_SENSE_LOC_HOST (0x00) |
301 | #define MPI_SCSIIO32_MSGFLGS_SENSE_LOC_IOC (0x02) | 302 | #define MPI_SCSIIO32_MSGFLGS_SENSE_LOC_IOC (0x02) |
302 | 303 | ||
303 | #define MPI_SCSIIO32_MSGFLGS_CMD_DETERMINES_DATA_DIR (0x04) | 304 | #define MPI_SCSIIO32_MSGFLGS_CMD_DETERMINES_DATA_DIR (0x04) |
304 | #define MPI_SCSIIO32_MSGFLGS_SGL_OFFSETS_CHAINS (0x08) | 305 | #define MPI_SCSIIO32_MSGFLGS_SGL_OFFSETS_CHAINS (0x08) |
305 | #define MPI_SCSIIO32_MSGFLGS_MULTICAST (0x10) | 306 | #define MPI_SCSIIO32_MSGFLGS_MULTICAST (0x10) |
306 | #define MPI_SCSIIO32_MSGFLGS_BIDIRECTIONAL (0x20) | 307 | #define MPI_SCSIIO32_MSGFLGS_BIDIRECTIONAL (0x20) |
307 | #define MPI_SCSIIO32_MSGFLGS_LARGE_CDB (0x40) | 308 | #define MPI_SCSIIO32_MSGFLGS_LARGE_CDB (0x40) |
308 | 309 | ||
309 | /* SCSI IO 32 Flags bits */ | 310 | /* SCSI IO 32 Flags bits */ |
310 | #define MPI_SCSIIO32_FLAGS_FORM_MASK (0x03) | 311 | #define MPI_SCSIIO32_FLAGS_FORM_MASK (0x03) |
311 | #define MPI_SCSIIO32_FLAGS_FORM_SCSIID (0x00) | 312 | #define MPI_SCSIIO32_FLAGS_FORM_SCSIID (0x00) |
312 | #define MPI_SCSIIO32_FLAGS_FORM_WWID (0x01) | 313 | #define MPI_SCSIIO32_FLAGS_FORM_WWID (0x01) |
313 | 314 | ||
314 | /* SCSI IO 32 LUN fields */ | 315 | /* SCSI IO 32 LUN fields */ |
315 | #define MPI_SCSIIO32_LUN_FIRST_LEVEL_ADDRESSING (0x0000FFFF) | 316 | #define MPI_SCSIIO32_LUN_FIRST_LEVEL_ADDRESSING (0x0000FFFF) |
316 | #define MPI_SCSIIO32_LUN_SECOND_LEVEL_ADDRESSING (0xFFFF0000) | 317 | #define MPI_SCSIIO32_LUN_SECOND_LEVEL_ADDRESSING (0xFFFF0000) |
317 | #define MPI_SCSIIO32_LUN_THIRD_LEVEL_ADDRESSING (0x0000FFFF) | 318 | #define MPI_SCSIIO32_LUN_THIRD_LEVEL_ADDRESSING (0x0000FFFF) |
318 | #define MPI_SCSIIO32_LUN_FOURTH_LEVEL_ADDRESSING (0xFFFF0000) | 319 | #define MPI_SCSIIO32_LUN_FOURTH_LEVEL_ADDRESSING (0xFFFF0000) |
319 | #define MPI_SCSIIO32_LUN_LEVEL_1_WORD (0xFF00) | 320 | #define MPI_SCSIIO32_LUN_LEVEL_1_WORD (0xFF00) |
320 | #define MPI_SCSIIO32_LUN_LEVEL_1_DWORD (0x0000FF00) | 321 | #define MPI_SCSIIO32_LUN_LEVEL_1_DWORD (0x0000FF00) |
321 | 322 | ||
322 | /* SCSI IO 32 Control bits */ | 323 | /* SCSI IO 32 Control bits */ |
323 | #define MPI_SCSIIO32_CONTROL_DATADIRECTION_MASK (0x03000000) | 324 | #define MPI_SCSIIO32_CONTROL_DATADIRECTION_MASK (0x03000000) |
324 | #define MPI_SCSIIO32_CONTROL_NODATATRANSFER (0x00000000) | 325 | #define MPI_SCSIIO32_CONTROL_NODATATRANSFER (0x00000000) |
325 | #define MPI_SCSIIO32_CONTROL_WRITE (0x01000000) | 326 | #define MPI_SCSIIO32_CONTROL_WRITE (0x01000000) |
326 | #define MPI_SCSIIO32_CONTROL_READ (0x02000000) | 327 | #define MPI_SCSIIO32_CONTROL_READ (0x02000000) |
327 | #define MPI_SCSIIO32_CONTROL_BIDIRECTIONAL (0x03000000) | 328 | #define MPI_SCSIIO32_CONTROL_BIDIRECTIONAL (0x03000000) |
328 | 329 | ||
329 | #define MPI_SCSIIO32_CONTROL_ADDCDBLEN_MASK (0xFC000000) | 330 | #define MPI_SCSIIO32_CONTROL_ADDCDBLEN_MASK (0xFC000000) |
330 | #define MPI_SCSIIO32_CONTROL_ADDCDBLEN_SHIFT (26) | 331 | #define MPI_SCSIIO32_CONTROL_ADDCDBLEN_SHIFT (26) |
331 | 332 | ||
332 | #define MPI_SCSIIO32_CONTROL_TASKATTRIBUTE_MASK (0x00000700) | 333 | #define MPI_SCSIIO32_CONTROL_TASKATTRIBUTE_MASK (0x00000700) |
333 | #define MPI_SCSIIO32_CONTROL_SIMPLEQ (0x00000000) | 334 | #define MPI_SCSIIO32_CONTROL_SIMPLEQ (0x00000000) |
334 | #define MPI_SCSIIO32_CONTROL_HEADOFQ (0x00000100) | 335 | #define MPI_SCSIIO32_CONTROL_HEADOFQ (0x00000100) |
335 | #define MPI_SCSIIO32_CONTROL_ORDEREDQ (0x00000200) | 336 | #define MPI_SCSIIO32_CONTROL_ORDEREDQ (0x00000200) |
336 | #define MPI_SCSIIO32_CONTROL_ACAQ (0x00000400) | 337 | #define MPI_SCSIIO32_CONTROL_ACAQ (0x00000400) |
337 | #define MPI_SCSIIO32_CONTROL_UNTAGGED (0x00000500) | 338 | #define MPI_SCSIIO32_CONTROL_UNTAGGED (0x00000500) |
338 | #define MPI_SCSIIO32_CONTROL_NO_DISCONNECT (0x00000700) | 339 | #define MPI_SCSIIO32_CONTROL_NO_DISCONNECT (0x00000700) |
339 | 340 | ||
340 | #define MPI_SCSIIO32_CONTROL_TASKMANAGE_MASK (0x00FF0000) | 341 | #define MPI_SCSIIO32_CONTROL_TASKMANAGE_MASK (0x00FF0000) |
341 | #define MPI_SCSIIO32_CONTROL_OBSOLETE (0x00800000) | 342 | #define MPI_SCSIIO32_CONTROL_OBSOLETE (0x00800000) |
342 | #define MPI_SCSIIO32_CONTROL_CLEAR_ACA_RSV (0x00400000) | 343 | #define MPI_SCSIIO32_CONTROL_CLEAR_ACA_RSV (0x00400000) |
343 | #define MPI_SCSIIO32_CONTROL_TARGET_RESET (0x00200000) | 344 | #define MPI_SCSIIO32_CONTROL_TARGET_RESET (0x00200000) |
344 | #define MPI_SCSIIO32_CONTROL_LUN_RESET_RSV (0x00100000) | 345 | #define MPI_SCSIIO32_CONTROL_LUN_RESET_RSV (0x00100000) |
345 | #define MPI_SCSIIO32_CONTROL_RESERVED (0x00080000) | 346 | #define MPI_SCSIIO32_CONTROL_RESERVED (0x00080000) |
346 | #define MPI_SCSIIO32_CONTROL_CLR_TASK_SET_RSV (0x00040000) | 347 | #define MPI_SCSIIO32_CONTROL_CLR_TASK_SET_RSV (0x00040000) |
347 | #define MPI_SCSIIO32_CONTROL_ABORT_TASK_SET (0x00020000) | 348 | #define MPI_SCSIIO32_CONTROL_ABORT_TASK_SET (0x00020000) |
348 | #define MPI_SCSIIO32_CONTROL_RESERVED2 (0x00010000) | 349 | #define MPI_SCSIIO32_CONTROL_RESERVED2 (0x00010000) |
349 | 350 | ||
350 | /* SCSI IO 32 EEDPFlags */ | 351 | /* SCSI IO 32 EEDPFlags */ |
351 | #define MPI_SCSIIO32_EEDPFLAGS_MASK_OP (0x0007) | 352 | #define MPI_SCSIIO32_EEDPFLAGS_MASK_OP (0x0007) |
352 | #define MPI_SCSIIO32_EEDPFLAGS_NOOP_OP (0x0000) | 353 | #define MPI_SCSIIO32_EEDPFLAGS_NOOP_OP (0x0000) |
353 | #define MPI_SCSIIO32_EEDPFLAGS_CHK_OP (0x0001) | 354 | #define MPI_SCSIIO32_EEDPFLAGS_CHK_OP (0x0001) |
354 | #define MPI_SCSIIO32_EEDPFLAGS_STRIP_OP (0x0002) | 355 | #define MPI_SCSIIO32_EEDPFLAGS_STRIP_OP (0x0002) |
355 | #define MPI_SCSIIO32_EEDPFLAGS_CHKRM_OP (0x0003) | 356 | #define MPI_SCSIIO32_EEDPFLAGS_CHKRM_OP (0x0003) |
356 | #define MPI_SCSIIO32_EEDPFLAGS_INSERT_OP (0x0004) | 357 | #define MPI_SCSIIO32_EEDPFLAGS_INSERT_OP (0x0004) |
357 | #define MPI_SCSIIO32_EEDPFLAGS_REPLACE_OP (0x0006) | 358 | #define MPI_SCSIIO32_EEDPFLAGS_REPLACE_OP (0x0006) |
358 | #define MPI_SCSIIO32_EEDPFLAGS_CHKREGEN_OP (0x0007) | 359 | #define MPI_SCSIIO32_EEDPFLAGS_CHKREGEN_OP (0x0007) |
359 | 360 | ||
360 | #define MPI_SCSIIO32_EEDPFLAGS_PASS_REF_TAG (0x0008) | 361 | #define MPI_SCSIIO32_EEDPFLAGS_PASS_REF_TAG (0x0008) |
361 | #define MPI_SCSIIO32_EEDPFLAGS_8_9THS_MODE (0x0010) | 362 | #define MPI_SCSIIO32_EEDPFLAGS_8_9THS_MODE (0x0010) |
362 | 363 | ||
363 | #define MPI_SCSIIO32_EEDPFLAGS_T10_CHK_MASK (0x0700) | 364 | #define MPI_SCSIIO32_EEDPFLAGS_T10_CHK_MASK (0x0700) |
364 | #define MPI_SCSIIO32_EEDPFLAGS_T10_CHK_GUARD (0x0100) | 365 | #define MPI_SCSIIO32_EEDPFLAGS_T10_CHK_GUARD (0x0100) |
365 | #define MPI_SCSIIO32_EEDPFLAGS_T10_CHK_REFTAG (0x0200) | 366 | #define MPI_SCSIIO32_EEDPFLAGS_T10_CHK_REFTAG (0x0200) |
366 | #define MPI_SCSIIO32_EEDPFLAGS_T10_CHK_LBATAG (0x0400) | 367 | #define MPI_SCSIIO32_EEDPFLAGS_T10_CHK_LBATAG (0x0400) |
367 | #define MPI_SCSIIO32_EEDPFLAGS_T10_CHK_SHIFT (8) | 368 | #define MPI_SCSIIO32_EEDPFLAGS_T10_CHK_SHIFT (8) |
368 | 369 | ||
369 | #define MPI_SCSIIO32_EEDPFLAGS_INC_SEC_APPTAG (0x1000) | 370 | #define MPI_SCSIIO32_EEDPFLAGS_INC_SEC_APPTAG (0x1000) |
370 | #define MPI_SCSIIO32_EEDPFLAGS_INC_PRI_APPTAG (0x2000) | 371 | #define MPI_SCSIIO32_EEDPFLAGS_INC_PRI_APPTAG (0x2000) |
371 | #define MPI_SCSIIO32_EEDPFLAGS_INC_SEC_REFTAG (0x4000) | 372 | #define MPI_SCSIIO32_EEDPFLAGS_INC_SEC_REFTAG (0x4000) |
372 | #define MPI_SCSIIO32_EEDPFLAGS_INC_PRI_REFTAG (0x8000) | 373 | #define MPI_SCSIIO32_EEDPFLAGS_INC_PRI_REFTAG (0x8000) |
373 | 374 | ||
374 | 375 | ||
375 | /* SCSIIO32 IO reply structure */ | 376 | /* SCSIIO32 IO reply structure */ |
376 | typedef struct _MSG_SCSIIO32_IO_REPLY | 377 | typedef struct _MSG_SCSIIO32_IO_REPLY |
377 | { | 378 | { |
378 | U8 Port; /* 00h */ | 379 | U8 Port; /* 00h */ |
379 | U8 Reserved1; /* 01h */ | 380 | U8 Reserved1; /* 01h */ |
380 | U8 MsgLength; /* 02h */ | 381 | U8 MsgLength; /* 02h */ |
381 | U8 Function; /* 03h */ | 382 | U8 Function; /* 03h */ |
382 | U8 CDBLength; /* 04h */ | 383 | U8 CDBLength; /* 04h */ |
383 | U8 SenseBufferLength; /* 05h */ | 384 | U8 SenseBufferLength; /* 05h */ |
384 | U8 Flags; /* 06h */ | 385 | U8 Flags; /* 06h */ |
385 | U8 MsgFlags; /* 07h */ | 386 | U8 MsgFlags; /* 07h */ |
386 | U32 MsgContext; /* 08h */ | 387 | U32 MsgContext; /* 08h */ |
387 | U8 SCSIStatus; /* 0Ch */ | 388 | U8 SCSIStatus; /* 0Ch */ |
388 | U8 SCSIState; /* 0Dh */ | 389 | U8 SCSIState; /* 0Dh */ |
389 | U16 IOCStatus; /* 0Eh */ | 390 | U16 IOCStatus; /* 0Eh */ |
390 | U32 IOCLogInfo; /* 10h */ | 391 | U32 IOCLogInfo; /* 10h */ |
391 | U32 TransferCount; /* 14h */ | 392 | U32 TransferCount; /* 14h */ |
392 | U32 SenseCount; /* 18h */ | 393 | U32 SenseCount; /* 18h */ |
393 | U32 ResponseInfo; /* 1Ch */ | 394 | U32 ResponseInfo; /* 1Ch */ |
394 | U16 TaskTag; /* 20h */ | 395 | U16 TaskTag; /* 20h */ |
395 | U16 Reserved2; /* 22h */ | 396 | U16 Reserved2; /* 22h */ |
396 | U32 BidirectionalTransferCount; /* 24h */ | 397 | U32 BidirectionalTransferCount; /* 24h */ |
397 | } MSG_SCSIIO32_IO_REPLY, MPI_POINTER PTR_MSG_SCSIIO32_IO_REPLY, | 398 | } MSG_SCSIIO32_IO_REPLY, MPI_POINTER PTR_MSG_SCSIIO32_IO_REPLY, |
398 | SCSIIO32Reply_t, MPI_POINTER pSCSIIO32Reply_t; | 399 | SCSIIO32Reply_t, MPI_POINTER pSCSIIO32Reply_t; |
399 | 400 | ||
400 | 401 | ||
401 | /****************************************************************************/ | 402 | /****************************************************************************/ |
402 | /* SCSI Task Management messages */ | 403 | /* SCSI Task Management messages */ |
403 | /****************************************************************************/ | 404 | /****************************************************************************/ |
404 | 405 | ||
405 | typedef struct _MSG_SCSI_TASK_MGMT | 406 | typedef struct _MSG_SCSI_TASK_MGMT |
406 | { | 407 | { |
407 | U8 TargetID; /* 00h */ | 408 | U8 TargetID; /* 00h */ |
408 | U8 Bus; /* 01h */ | 409 | U8 Bus; /* 01h */ |
409 | U8 ChainOffset; /* 02h */ | 410 | U8 ChainOffset; /* 02h */ |
410 | U8 Function; /* 03h */ | 411 | U8 Function; /* 03h */ |
411 | U8 Reserved; /* 04h */ | 412 | U8 Reserved; /* 04h */ |
412 | U8 TaskType; /* 05h */ | 413 | U8 TaskType; /* 05h */ |
413 | U8 Reserved1; /* 06h */ | 414 | U8 Reserved1; /* 06h */ |
414 | U8 MsgFlags; /* 07h */ | 415 | U8 MsgFlags; /* 07h */ |
415 | U32 MsgContext; /* 08h */ | 416 | U32 MsgContext; /* 08h */ |
416 | U8 LUN[8]; /* 0Ch */ | 417 | U8 LUN[8]; /* 0Ch */ |
417 | U32 Reserved2[7]; /* 14h */ | 418 | U32 Reserved2[7]; /* 14h */ |
418 | U32 TaskMsgContext; /* 30h */ | 419 | U32 TaskMsgContext; /* 30h */ |
419 | } MSG_SCSI_TASK_MGMT, MPI_POINTER PTR_SCSI_TASK_MGMT, | 420 | } MSG_SCSI_TASK_MGMT, MPI_POINTER PTR_SCSI_TASK_MGMT, |
420 | SCSITaskMgmt_t, MPI_POINTER pSCSITaskMgmt_t; | 421 | SCSITaskMgmt_t, MPI_POINTER pSCSITaskMgmt_t; |
421 | 422 | ||
422 | /* TaskType values */ | 423 | /* TaskType values */ |
423 | 424 | ||
424 | #define MPI_SCSITASKMGMT_TASKTYPE_ABORT_TASK (0x01) | 425 | #define MPI_SCSITASKMGMT_TASKTYPE_ABORT_TASK (0x01) |
425 | #define MPI_SCSITASKMGMT_TASKTYPE_ABRT_TASK_SET (0x02) | 426 | #define MPI_SCSITASKMGMT_TASKTYPE_ABRT_TASK_SET (0x02) |
426 | #define MPI_SCSITASKMGMT_TASKTYPE_TARGET_RESET (0x03) | 427 | #define MPI_SCSITASKMGMT_TASKTYPE_TARGET_RESET (0x03) |
427 | #define MPI_SCSITASKMGMT_TASKTYPE_RESET_BUS (0x04) | 428 | #define MPI_SCSITASKMGMT_TASKTYPE_RESET_BUS (0x04) |
428 | #define MPI_SCSITASKMGMT_TASKTYPE_LOGICAL_UNIT_RESET (0x05) | 429 | #define MPI_SCSITASKMGMT_TASKTYPE_LOGICAL_UNIT_RESET (0x05) |
429 | #define MPI_SCSITASKMGMT_TASKTYPE_CLEAR_TASK_SET (0x06) | 430 | #define MPI_SCSITASKMGMT_TASKTYPE_CLEAR_TASK_SET (0x06) |
430 | #define MPI_SCSITASKMGMT_TASKTYPE_QUERY_TASK (0x07) | 431 | #define MPI_SCSITASKMGMT_TASKTYPE_QUERY_TASK (0x07) |
431 | #define MPI_SCSITASKMGMT_TASKTYPE_CLEAR_ACA (0x08) | 432 | #define MPI_SCSITASKMGMT_TASKTYPE_CLR_ACA (0x08) |
432 | 433 | ||
433 | /* MsgFlags bits */ | 434 | /* MsgFlags bits */ |
434 | #define MPI_SCSITASKMGMT_MSGFLAGS_TARGET_RESET_OPTION (0x00) | 435 | #define MPI_SCSITASKMGMT_MSGFLAGS_TARGET_RESET_OPTION (0x00) |
435 | #define MPI_SCSITASKMGMT_MSGFLAGS_LIP_RESET_OPTION (0x02) | 436 | #define MPI_SCSITASKMGMT_MSGFLAGS_LIP_RESET_OPTION (0x02) |
436 | #define MPI_SCSITASKMGMT_MSGFLAGS_LIPRESET_RESET_OPTION (0x04) | 437 | #define MPI_SCSITASKMGMT_MSGFLAGS_LIPRESET_RESET_OPTION (0x04) |
437 | 438 | ||
438 | /* SCSI Task Management Reply */ | 439 | /* SCSI Task Management Reply */ |
439 | typedef struct _MSG_SCSI_TASK_MGMT_REPLY | 440 | typedef struct _MSG_SCSI_TASK_MGMT_REPLY |
440 | { | 441 | { |
441 | U8 TargetID; /* 00h */ | 442 | U8 TargetID; /* 00h */ |
442 | U8 Bus; /* 01h */ | 443 | U8 Bus; /* 01h */ |
443 | U8 MsgLength; /* 02h */ | 444 | U8 MsgLength; /* 02h */ |
444 | U8 Function; /* 03h */ | 445 | U8 Function; /* 03h */ |
445 | U8 ResponseCode; /* 04h */ | 446 | U8 ResponseCode; /* 04h */ |
446 | U8 TaskType; /* 05h */ | 447 | U8 TaskType; /* 05h */ |
447 | U8 Reserved1; /* 06h */ | 448 | U8 Reserved1; /* 06h */ |
448 | U8 MsgFlags; /* 07h */ | 449 | U8 MsgFlags; /* 07h */ |
449 | U32 MsgContext; /* 08h */ | 450 | U32 MsgContext; /* 08h */ |
450 | U8 Reserved2[2]; /* 0Ch */ | 451 | U8 Reserved2[2]; /* 0Ch */ |
451 | U16 IOCStatus; /* 0Eh */ | 452 | U16 IOCStatus; /* 0Eh */ |
452 | U32 IOCLogInfo; /* 10h */ | 453 | U32 IOCLogInfo; /* 10h */ |
453 | U32 TerminationCount; /* 14h */ | 454 | U32 TerminationCount; /* 14h */ |
454 | } MSG_SCSI_TASK_MGMT_REPLY, MPI_POINTER PTR_MSG_SCSI_TASK_MGMT_REPLY, | 455 | } MSG_SCSI_TASK_MGMT_REPLY, MPI_POINTER PTR_MSG_SCSI_TASK_MGMT_REPLY, |
455 | SCSITaskMgmtReply_t, MPI_POINTER pSCSITaskMgmtReply_t; | 456 | SCSITaskMgmtReply_t, MPI_POINTER pSCSITaskMgmtReply_t; |
456 | 457 | ||
457 | /* ResponseCode values */ | 458 | /* ResponseCode values */ |
458 | #define MPI_SCSITASKMGMT_RSP_TM_COMPLETE (0x00) | 459 | #define MPI_SCSITASKMGMT_RSP_TM_COMPLETE (0x00) |
459 | #define MPI_SCSITASKMGMT_RSP_INVALID_FRAME (0x02) | 460 | #define MPI_SCSITASKMGMT_RSP_INVALID_FRAME (0x02) |
460 | #define MPI_SCSITASKMGMT_RSP_TM_NOT_SUPPORTED (0x04) | 461 | #define MPI_SCSITASKMGMT_RSP_TM_NOT_SUPPORTED (0x04) |
461 | #define MPI_SCSITASKMGMT_RSP_TM_FAILED (0x05) | 462 | #define MPI_SCSITASKMGMT_RSP_TM_FAILED (0x05) |
462 | #define MPI_SCSITASKMGMT_RSP_TM_SUCCEEDED (0x08) | 463 | #define MPI_SCSITASKMGMT_RSP_TM_SUCCEEDED (0x08) |
463 | #define MPI_SCSITASKMGMT_RSP_TM_INVALID_LUN (0x09) | 464 | #define MPI_SCSITASKMGMT_RSP_TM_INVALID_LUN (0x09) |
464 | #define MPI_SCSITASKMGMT_RSP_IO_QUEUED_ON_IOC (0x80) | 465 | #define MPI_SCSITASKMGMT_RSP_IO_QUEUED_ON_IOC (0x80) |
465 | 466 | ||
466 | 467 | ||
467 | /****************************************************************************/ | 468 | /****************************************************************************/ |
468 | /* SCSI Enclosure Processor messages */ | 469 | /* SCSI Enclosure Processor messages */ |
469 | /****************************************************************************/ | 470 | /****************************************************************************/ |
470 | 471 | ||
471 | typedef struct _MSG_SEP_REQUEST | 472 | typedef struct _MSG_SEP_REQUEST |
472 | { | 473 | { |
473 | U8 TargetID; /* 00h */ | 474 | U8 TargetID; /* 00h */ |
474 | U8 Bus; /* 01h */ | 475 | U8 Bus; /* 01h */ |
475 | U8 ChainOffset; /* 02h */ | 476 | U8 ChainOffset; /* 02h */ |
476 | U8 Function; /* 03h */ | 477 | U8 Function; /* 03h */ |
477 | U8 Action; /* 04h */ | 478 | U8 Action; /* 04h */ |
478 | U8 Flags; /* 05h */ | 479 | U8 Flags; /* 05h */ |
479 | U8 Reserved1; /* 06h */ | 480 | U8 Reserved1; /* 06h */ |
480 | U8 MsgFlags; /* 07h */ | 481 | U8 MsgFlags; /* 07h */ |
481 | U32 MsgContext; /* 08h */ | 482 | U32 MsgContext; /* 08h */ |
482 | U32 SlotStatus; /* 0Ch */ | 483 | U32 SlotStatus; /* 0Ch */ |
483 | U32 Reserved2; /* 10h */ | 484 | U32 Reserved2; /* 10h */ |
484 | U32 Reserved3; /* 14h */ | 485 | U32 Reserved3; /* 14h */ |
485 | U32 Reserved4; /* 18h */ | 486 | U32 Reserved4; /* 18h */ |
486 | U16 Slot; /* 1Ch */ | 487 | U16 Slot; /* 1Ch */ |
487 | U16 EnclosureHandle; /* 1Eh */ | 488 | U16 EnclosureHandle; /* 1Eh */ |
488 | } MSG_SEP_REQUEST, MPI_POINTER PTR_MSG_SEP_REQUEST, | 489 | } MSG_SEP_REQUEST, MPI_POINTER PTR_MSG_SEP_REQUEST, |
489 | SEPRequest_t, MPI_POINTER pSEPRequest_t; | 490 | SEPRequest_t, MPI_POINTER pSEPRequest_t; |
490 | 491 | ||
491 | /* Action defines */ | 492 | /* Action defines */ |
492 | #define MPI_SEP_REQ_ACTION_WRITE_STATUS (0x00) | 493 | #define MPI_SEP_REQ_ACTION_WRITE_STATUS (0x00) |
493 | #define MPI_SEP_REQ_ACTION_READ_STATUS (0x01) | 494 | #define MPI_SEP_REQ_ACTION_READ_STATUS (0x01) |
494 | 495 | ||
495 | /* Flags defines */ | 496 | /* Flags defines */ |
496 | #define MPI_SEP_REQ_FLAGS_ENCLOSURE_SLOT_ADDRESS (0x01) | 497 | #define MPI_SEP_REQ_FLAGS_ENCLOSURE_SLOT_ADDRESS (0x01) |
497 | #define MPI_SEP_REQ_FLAGS_BUS_TARGETID_ADDRESS (0x00) | 498 | #define MPI_SEP_REQ_FLAGS_BUS_TARGETID_ADDRESS (0x00) |
498 | 499 | ||
499 | /* SlotStatus bits for MSG_SEP_REQUEST */ | 500 | /* SlotStatus bits for MSG_SEP_REQUEST */ |
500 | #define MPI_SEP_REQ_SLOTSTATUS_NO_ERROR (0x00000001) | 501 | #define MPI_SEP_REQ_SLOTSTATUS_NO_ERROR (0x00000001) |
501 | #define MPI_SEP_REQ_SLOTSTATUS_DEV_FAULTY (0x00000002) | 502 | #define MPI_SEP_REQ_SLOTSTATUS_DEV_FAULTY (0x00000002) |
502 | #define MPI_SEP_REQ_SLOTSTATUS_DEV_REBUILDING (0x00000004) | 503 | #define MPI_SEP_REQ_SLOTSTATUS_DEV_REBUILDING (0x00000004) |
503 | #define MPI_SEP_REQ_SLOTSTATUS_IN_FAILED_ARRAY (0x00000008) | 504 | #define MPI_SEP_REQ_SLOTSTATUS_IN_FAILED_ARRAY (0x00000008) |
504 | #define MPI_SEP_REQ_SLOTSTATUS_IN_CRITICAL_ARRAY (0x00000010) | 505 | #define MPI_SEP_REQ_SLOTSTATUS_IN_CRITICAL_ARRAY (0x00000010) |
505 | #define MPI_SEP_REQ_SLOTSTATUS_PARITY_CHECK (0x00000020) | 506 | #define MPI_SEP_REQ_SLOTSTATUS_PARITY_CHECK (0x00000020) |
506 | #define MPI_SEP_REQ_SLOTSTATUS_PREDICTED_FAULT (0x00000040) | 507 | #define MPI_SEP_REQ_SLOTSTATUS_PREDICTED_FAULT (0x00000040) |
507 | #define MPI_SEP_REQ_SLOTSTATUS_UNCONFIGURED (0x00000080) | 508 | #define MPI_SEP_REQ_SLOTSTATUS_UNCONFIGURED (0x00000080) |
508 | #define MPI_SEP_REQ_SLOTSTATUS_HOT_SPARE (0x00000100) | 509 | #define MPI_SEP_REQ_SLOTSTATUS_HOT_SPARE (0x00000100) |
509 | #define MPI_SEP_REQ_SLOTSTATUS_REBUILD_STOPPED (0x00000200) | 510 | #define MPI_SEP_REQ_SLOTSTATUS_REBUILD_STOPPED (0x00000200) |
510 | #define MPI_SEP_REQ_SLOTSTATUS_REQ_CONSISTENCY_CHECK (0x00001000) | 511 | #define MPI_SEP_REQ_SLOTSTATUS_REQ_CONSISTENCY_CHECK (0x00001000) |
511 | #define MPI_SEP_REQ_SLOTSTATUS_DISABLE (0x00002000) | 512 | #define MPI_SEP_REQ_SLOTSTATUS_DISABLE (0x00002000) |
512 | #define MPI_SEP_REQ_SLOTSTATUS_REQ_RESERVED_DEVICE (0x00004000) | 513 | #define MPI_SEP_REQ_SLOTSTATUS_REQ_RESERVED_DEVICE (0x00004000) |
513 | #define MPI_SEP_REQ_SLOTSTATUS_IDENTIFY_REQUEST (0x00020000) | 514 | #define MPI_SEP_REQ_SLOTSTATUS_IDENTIFY_REQUEST (0x00020000) |
514 | #define MPI_SEP_REQ_SLOTSTATUS_REQUEST_REMOVE (0x00040000) | 515 | #define MPI_SEP_REQ_SLOTSTATUS_REQUEST_REMOVE (0x00040000) |
515 | #define MPI_SEP_REQ_SLOTSTATUS_REQUEST_INSERT (0x00080000) | 516 | #define MPI_SEP_REQ_SLOTSTATUS_REQUEST_INSERT (0x00080000) |
516 | #define MPI_SEP_REQ_SLOTSTATUS_DO_NOT_MOVE (0x00400000) | 517 | #define MPI_SEP_REQ_SLOTSTATUS_DO_NOT_MOVE (0x00400000) |
517 | #define MPI_SEP_REQ_SLOTSTATUS_ACTIVE (0x00800000) | 518 | #define MPI_SEP_REQ_SLOTSTATUS_ACTIVE (0x00800000) |
518 | #define MPI_SEP_REQ_SLOTSTATUS_B_ENABLE_BYPASS (0x04000000) | 519 | #define MPI_SEP_REQ_SLOTSTATUS_B_ENABLE_BYPASS (0x04000000) |
519 | #define MPI_SEP_REQ_SLOTSTATUS_A_ENABLE_BYPASS (0x08000000) | 520 | #define MPI_SEP_REQ_SLOTSTATUS_A_ENABLE_BYPASS (0x08000000) |
520 | #define MPI_SEP_REQ_SLOTSTATUS_DEV_OFF (0x10000000) | 521 | #define MPI_SEP_REQ_SLOTSTATUS_DEV_OFF (0x10000000) |
521 | #define MPI_SEP_REQ_SLOTSTATUS_SWAP_RESET (0x80000000) | 522 | #define MPI_SEP_REQ_SLOTSTATUS_SWAP_RESET (0x80000000) |
522 | 523 | ||
523 | 524 | ||
524 | typedef struct _MSG_SEP_REPLY | 525 | typedef struct _MSG_SEP_REPLY |
525 | { | 526 | { |
526 | U8 TargetID; /* 00h */ | 527 | U8 TargetID; /* 00h */ |
527 | U8 Bus; /* 01h */ | 528 | U8 Bus; /* 01h */ |
528 | U8 MsgLength; /* 02h */ | 529 | U8 MsgLength; /* 02h */ |
529 | U8 Function; /* 03h */ | 530 | U8 Function; /* 03h */ |
530 | U8 Action; /* 04h */ | 531 | U8 Action; /* 04h */ |
531 | U8 Reserved1; /* 05h */ | 532 | U8 Reserved1; /* 05h */ |
532 | U8 Reserved2; /* 06h */ | 533 | U8 Reserved2; /* 06h */ |
533 | U8 MsgFlags; /* 07h */ | 534 | U8 MsgFlags; /* 07h */ |
534 | U32 MsgContext; /* 08h */ | 535 | U32 MsgContext; /* 08h */ |
535 | U16 Reserved3; /* 0Ch */ | 536 | U16 Reserved3; /* 0Ch */ |
536 | U16 IOCStatus; /* 0Eh */ | 537 | U16 IOCStatus; /* 0Eh */ |
537 | U32 IOCLogInfo; /* 10h */ | 538 | U32 IOCLogInfo; /* 10h */ |
538 | U32 SlotStatus; /* 14h */ | 539 | U32 SlotStatus; /* 14h */ |
539 | U32 Reserved4; /* 18h */ | 540 | U32 Reserved4; /* 18h */ |
540 | U16 Slot; /* 1Ch */ | 541 | U16 Slot; /* 1Ch */ |
541 | U16 EnclosureHandle; /* 1Eh */ | 542 | U16 EnclosureHandle; /* 1Eh */ |
542 | } MSG_SEP_REPLY, MPI_POINTER PTR_MSG_SEP_REPLY, | 543 | } MSG_SEP_REPLY, MPI_POINTER PTR_MSG_SEP_REPLY, |
543 | SEPReply_t, MPI_POINTER pSEPReply_t; | 544 | SEPReply_t, MPI_POINTER pSEPReply_t; |
544 | 545 | ||
545 | /* SlotStatus bits for MSG_SEP_REPLY */ | 546 | /* SlotStatus bits for MSG_SEP_REPLY */ |
546 | #define MPI_SEP_REPLY_SLOTSTATUS_NO_ERROR (0x00000001) | 547 | #define MPI_SEP_REPLY_SLOTSTATUS_NO_ERROR (0x00000001) |
547 | #define MPI_SEP_REPLY_SLOTSTATUS_DEV_FAULTY (0x00000002) | 548 | #define MPI_SEP_REPLY_SLOTSTATUS_DEV_FAULTY (0x00000002) |
548 | #define MPI_SEP_REPLY_SLOTSTATUS_DEV_REBUILDING (0x00000004) | 549 | #define MPI_SEP_REPLY_SLOTSTATUS_DEV_REBUILDING (0x00000004) |
549 | #define MPI_SEP_REPLY_SLOTSTATUS_IN_FAILED_ARRAY (0x00000008) | 550 | #define MPI_SEP_REPLY_SLOTSTATUS_IN_FAILED_ARRAY (0x00000008) |
550 | #define MPI_SEP_REPLY_SLOTSTATUS_IN_CRITICAL_ARRAY (0x00000010) | 551 | #define MPI_SEP_REPLY_SLOTSTATUS_IN_CRITICAL_ARRAY (0x00000010) |
551 | #define MPI_SEP_REPLY_SLOTSTATUS_PARITY_CHECK (0x00000020) | 552 | #define MPI_SEP_REPLY_SLOTSTATUS_PARITY_CHECK (0x00000020) |
552 | #define MPI_SEP_REPLY_SLOTSTATUS_PREDICTED_FAULT (0x00000040) | 553 | #define MPI_SEP_REPLY_SLOTSTATUS_PREDICTED_FAULT (0x00000040) |
553 | #define MPI_SEP_REPLY_SLOTSTATUS_UNCONFIGURED (0x00000080) | 554 | #define MPI_SEP_REPLY_SLOTSTATUS_UNCONFIGURED (0x00000080) |
554 | #define MPI_SEP_REPLY_SLOTSTATUS_HOT_SPARE (0x00000100) | 555 | #define MPI_SEP_REPLY_SLOTSTATUS_HOT_SPARE (0x00000100) |
555 | #define MPI_SEP_REPLY_SLOTSTATUS_REBUILD_STOPPED (0x00000200) | 556 | #define MPI_SEP_REPLY_SLOTSTATUS_REBUILD_STOPPED (0x00000200) |
556 | #define MPI_SEP_REPLY_SLOTSTATUS_CONSISTENCY_CHECK (0x00001000) | 557 | #define MPI_SEP_REPLY_SLOTSTATUS_CONSISTENCY_CHECK (0x00001000) |
557 | #define MPI_SEP_REPLY_SLOTSTATUS_DISABLE (0x00002000) | 558 | #define MPI_SEP_REPLY_SLOTSTATUS_DISABLE (0x00002000) |
558 | #define MPI_SEP_REPLY_SLOTSTATUS_RESERVED_DEVICE (0x00004000) | 559 | #define MPI_SEP_REPLY_SLOTSTATUS_RESERVED_DEVICE (0x00004000) |
559 | #define MPI_SEP_REPLY_SLOTSTATUS_REPORT (0x00010000) | 560 | #define MPI_SEP_REPLY_SLOTSTATUS_REPORT (0x00010000) |
560 | #define MPI_SEP_REPLY_SLOTSTATUS_IDENTIFY_REQUEST (0x00020000) | 561 | #define MPI_SEP_REPLY_SLOTSTATUS_IDENTIFY_REQUEST (0x00020000) |
561 | #define MPI_SEP_REPLY_SLOTSTATUS_REMOVE_READY (0x00040000) | 562 | #define MPI_SEP_REPLY_SLOTSTATUS_REMOVE_READY (0x00040000) |
562 | #define MPI_SEP_REPLY_SLOTSTATUS_INSERT_READY (0x00080000) | 563 | #define MPI_SEP_REPLY_SLOTSTATUS_INSERT_READY (0x00080000) |
563 | #define MPI_SEP_REPLY_SLOTSTATUS_DO_NOT_REMOVE (0x00400000) | 564 | #define MPI_SEP_REPLY_SLOTSTATUS_DO_NOT_REMOVE (0x00400000) |
564 | #define MPI_SEP_REPLY_SLOTSTATUS_ACTIVE (0x00800000) | 565 | #define MPI_SEP_REPLY_SLOTSTATUS_ACTIVE (0x00800000) |
565 | #define MPI_SEP_REPLY_SLOTSTATUS_B_BYPASS_ENABLED (0x01000000) | 566 | #define MPI_SEP_REPLY_SLOTSTATUS_B_BYPASS_ENABLED (0x01000000) |
566 | #define MPI_SEP_REPLY_SLOTSTATUS_A_BYPASS_ENABLED (0x02000000) | 567 | #define MPI_SEP_REPLY_SLOTSTATUS_A_BYPASS_ENABLED (0x02000000) |
567 | #define MPI_SEP_REPLY_SLOTSTATUS_B_ENABLE_BYPASS (0x04000000) | 568 | #define MPI_SEP_REPLY_SLOTSTATUS_B_ENABLE_BYPASS (0x04000000) |
568 | #define MPI_SEP_REPLY_SLOTSTATUS_A_ENABLE_BYPASS (0x08000000) | 569 | #define MPI_SEP_REPLY_SLOTSTATUS_A_ENABLE_BYPASS (0x08000000) |
569 | #define MPI_SEP_REPLY_SLOTSTATUS_DEV_OFF (0x10000000) | 570 | #define MPI_SEP_REPLY_SLOTSTATUS_DEV_OFF (0x10000000) |
570 | #define MPI_SEP_REPLY_SLOTSTATUS_FAULT_SENSED (0x40000000) | 571 | #define MPI_SEP_REPLY_SLOTSTATUS_FAULT_SENSED (0x40000000) |
571 | #define MPI_SEP_REPLY_SLOTSTATUS_SWAPPED (0x80000000) | 572 | #define MPI_SEP_REPLY_SLOTSTATUS_SWAPPED (0x80000000) |
572 | 573 | ||
573 | #endif | 574 | #endif |
574 | 575 |
drivers/message/fusion/lsi/mpi_ioc.h
1 | /* | 1 | /* |
2 | * Copyright (c) 2000-2005 LSI Logic Corporation. | 2 | * Copyright (c) 2000-2006 LSI Logic Corporation. |
3 | * | 3 | * |
4 | * | 4 | * |
5 | * Name: mpi_ioc.h | 5 | * Name: mpi_ioc.h |
6 | * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages | 6 | * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages |
7 | * Creation Date: August 11, 2000 | 7 | * Creation Date: August 11, 2000 |
8 | * | 8 | * |
9 | * mpi_ioc.h Version: 01.05.11 | 9 | * mpi_ioc.h Version: 01.05.12 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
13 | * | 13 | * |
14 | * Date Version Description | 14 | * Date Version Description |
15 | * -------- -------- ------------------------------------------------------ | 15 | * -------- -------- ------------------------------------------------------ |
16 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. | 16 | * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. |
17 | * 05-24-00 00.10.02 Added _MSG_IOC_INIT_REPLY structure. | 17 | * 05-24-00 00.10.02 Added _MSG_IOC_INIT_REPLY structure. |
18 | * 06-06-00 01.00.01 Added CurReplyFrameSize field to _MSG_IOC_FACTS_REPLY. | 18 | * 06-06-00 01.00.01 Added CurReplyFrameSize field to _MSG_IOC_FACTS_REPLY. |
19 | * 06-12-00 01.00.02 Added _MSG_PORT_ENABLE_REPLY structure. | 19 | * 06-12-00 01.00.02 Added _MSG_PORT_ENABLE_REPLY structure. |
20 | * Added _MSG_EVENT_ACK_REPLY structure. | 20 | * Added _MSG_EVENT_ACK_REPLY structure. |
21 | * Added _MSG_FW_DOWNLOAD_REPLY structure. | 21 | * Added _MSG_FW_DOWNLOAD_REPLY structure. |
22 | * Added _MSG_TOOLBOX_REPLY structure. | 22 | * Added _MSG_TOOLBOX_REPLY structure. |
23 | * 06-30-00 01.00.03 Added MaxLanBuckets to _PORT_FACT_REPLY structure. | 23 | * 06-30-00 01.00.03 Added MaxLanBuckets to _PORT_FACT_REPLY structure. |
24 | * 07-27-00 01.00.04 Added _EVENT_DATA structure definitions for _SCSI, | 24 | * 07-27-00 01.00.04 Added _EVENT_DATA structure definitions for _SCSI, |
25 | * _LINK_STATUS, _LOOP_STATE and _LOGOUT. | 25 | * _LINK_STATUS, _LOOP_STATE and _LOGOUT. |
26 | * 08-11-00 01.00.05 Switched positions of MsgLength and Function fields in | 26 | * 08-11-00 01.00.05 Switched positions of MsgLength and Function fields in |
27 | * _MSG_EVENT_ACK_REPLY structure to match specification. | 27 | * _MSG_EVENT_ACK_REPLY structure to match specification. |
28 | * 11-02-00 01.01.01 Original release for post 1.0 work. | 28 | * 11-02-00 01.01.01 Original release for post 1.0 work. |
29 | * Added a value for Manufacturer to WhoInit. | 29 | * Added a value for Manufacturer to WhoInit. |
30 | * 12-04-00 01.01.02 Modified IOCFacts reply, added FWUpload messages, and | 30 | * 12-04-00 01.01.02 Modified IOCFacts reply, added FWUpload messages, and |
31 | * removed toolbox message. | 31 | * removed toolbox message. |
32 | * 01-09-01 01.01.03 Added event enabled and disabled defines. | 32 | * 01-09-01 01.01.03 Added event enabled and disabled defines. |
33 | * Added structures for FwHeader and DataHeader. | 33 | * Added structures for FwHeader and DataHeader. |
34 | * Added ImageType to FwUpload reply. | 34 | * Added ImageType to FwUpload reply. |
35 | * 02-20-01 01.01.04 Started using MPI_POINTER. | 35 | * 02-20-01 01.01.04 Started using MPI_POINTER. |
36 | * 02-27-01 01.01.05 Added event for RAID status change and its event data. | 36 | * 02-27-01 01.01.05 Added event for RAID status change and its event data. |
37 | * Added IocNumber field to MSG_IOC_FACTS_REPLY. | 37 | * Added IocNumber field to MSG_IOC_FACTS_REPLY. |
38 | * 03-27-01 01.01.06 Added defines for ProductId field of MPI_FW_HEADER. | 38 | * 03-27-01 01.01.06 Added defines for ProductId field of MPI_FW_HEADER. |
39 | * Added structure offset comments. | 39 | * Added structure offset comments. |
40 | * 04-09-01 01.01.07 Added structure EVENT_DATA_EVENT_CHANGE. | 40 | * 04-09-01 01.01.07 Added structure EVENT_DATA_EVENT_CHANGE. |
41 | * 08-08-01 01.02.01 Original release for v1.2 work. | 41 | * 08-08-01 01.02.01 Original release for v1.2 work. |
42 | * New format for FWVersion and ProductId in | 42 | * New format for FWVersion and ProductId in |
43 | * MSG_IOC_FACTS_REPLY and MPI_FW_HEADER. | 43 | * MSG_IOC_FACTS_REPLY and MPI_FW_HEADER. |
44 | * 08-31-01 01.02.02 Addded event MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE and | 44 | * 08-31-01 01.02.02 Addded event MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE and |
45 | * related structure and defines. | 45 | * related structure and defines. |
46 | * Added event MPI_EVENT_ON_BUS_TIMER_EXPIRED. | 46 | * Added event MPI_EVENT_ON_BUS_TIMER_EXPIRED. |
47 | * Added MPI_IOCINIT_FLAGS_DISCARD_FW_IMAGE. | 47 | * Added MPI_IOCINIT_FLAGS_DISCARD_FW_IMAGE. |
48 | * Replaced a reserved field in MSG_IOC_FACTS_REPLY with | 48 | * Replaced a reserved field in MSG_IOC_FACTS_REPLY with |
49 | * IOCExceptions and changed DataImageSize to reserved. | 49 | * IOCExceptions and changed DataImageSize to reserved. |
50 | * Added MPI_FW_DOWNLOAD_ITYPE_NVSTORE_DATA and | 50 | * Added MPI_FW_DOWNLOAD_ITYPE_NVSTORE_DATA and |
51 | * MPI_FW_UPLOAD_ITYPE_NVDATA. | 51 | * MPI_FW_UPLOAD_ITYPE_NVDATA. |
52 | * 09-28-01 01.02.03 Modified Event Data for Integrated RAID. | 52 | * 09-28-01 01.02.03 Modified Event Data for Integrated RAID. |
53 | * 11-01-01 01.02.04 Added defines for MPI_EXT_IMAGE_HEADER ImageType field. | 53 | * 11-01-01 01.02.04 Added defines for MPI_EXT_IMAGE_HEADER ImageType field. |
54 | * 03-14-02 01.02.05 Added HeaderVersion field to MSG_IOC_FACTS_REPLY. | 54 | * 03-14-02 01.02.05 Added HeaderVersion field to MSG_IOC_FACTS_REPLY. |
55 | * 05-31-02 01.02.06 Added define for | 55 | * 05-31-02 01.02.06 Added define for |
56 | * MPI_IOCFACTS_EXCEPT_RAID_CONFIG_INVALID. | 56 | * MPI_IOCFACTS_EXCEPT_RAID_CONFIG_INVALID. |
57 | * Added AliasIndex to EVENT_DATA_LOGOUT structure. | 57 | * Added AliasIndex to EVENT_DATA_LOGOUT structure. |
58 | * 04-01-03 01.02.07 Added defines for MPI_FW_HEADER_SIGNATURE_. | 58 | * 04-01-03 01.02.07 Added defines for MPI_FW_HEADER_SIGNATURE_. |
59 | * 06-26-03 01.02.08 Added new values to the product family defines. | 59 | * 06-26-03 01.02.08 Added new values to the product family defines. |
60 | * 04-29-04 01.02.09 Added IOCCapabilities field to MSG_IOC_FACTS_REPLY and | 60 | * 04-29-04 01.02.09 Added IOCCapabilities field to MSG_IOC_FACTS_REPLY and |
61 | * added related defines. | 61 | * added related defines. |
62 | * 05-11-04 01.03.01 Original release for MPI v1.3. | 62 | * 05-11-04 01.03.01 Original release for MPI v1.3. |
63 | * 08-19-04 01.05.01 Added four new fields to MSG_IOC_INIT. | 63 | * 08-19-04 01.05.01 Added four new fields to MSG_IOC_INIT. |
64 | * Added three new fields to MSG_IOC_FACTS_REPLY. | 64 | * Added three new fields to MSG_IOC_FACTS_REPLY. |
65 | * Defined four new bits for the IOCCapabilities field of | 65 | * Defined four new bits for the IOCCapabilities field of |
66 | * the IOCFacts reply. | 66 | * the IOCFacts reply. |
67 | * Added two new PortTypes for the PortFacts reply. | 67 | * Added two new PortTypes for the PortFacts reply. |
68 | * Added six new events along with their EventData | 68 | * Added six new events along with their EventData |
69 | * structures. | 69 | * structures. |
70 | * Added a new MsgFlag to the FwDownload request to | 70 | * Added a new MsgFlag to the FwDownload request to |
71 | * indicate last segment. | 71 | * indicate last segment. |
72 | * Defined a new image type of boot loader. | 72 | * Defined a new image type of boot loader. |
73 | * Added FW family codes for SAS product families. | 73 | * Added FW family codes for SAS product families. |
74 | * 10-05-04 01.05.02 Added ReplyFifoHostSignalingAddr field to | 74 | * 10-05-04 01.05.02 Added ReplyFifoHostSignalingAddr field to |
75 | * MSG_IOC_FACTS_REPLY. | 75 | * MSG_IOC_FACTS_REPLY. |
76 | * 12-07-04 01.05.03 Added more defines for SAS Discovery Error event. | 76 | * 12-07-04 01.05.03 Added more defines for SAS Discovery Error event. |
77 | * 12-09-04 01.05.04 Added Unsupported device to SAS Device event. | 77 | * 12-09-04 01.05.04 Added Unsupported device to SAS Device event. |
78 | * 01-15-05 01.05.05 Added event data for SAS SES Event. | 78 | * 01-15-05 01.05.05 Added event data for SAS SES Event. |
79 | * 02-09-05 01.05.06 Added MPI_FW_UPLOAD_ITYPE_FW_BACKUP define. | 79 | * 02-09-05 01.05.06 Added MPI_FW_UPLOAD_ITYPE_FW_BACKUP define. |
80 | * 02-22-05 01.05.07 Added Host Page Buffer Persistent flag to IOC Facts | 80 | * 02-22-05 01.05.07 Added Host Page Buffer Persistent flag to IOC Facts |
81 | * Reply and IOC Init Request. | 81 | * Reply and IOC Init Request. |
82 | * 03-11-05 01.05.08 Added family code for 1068E family. | 82 | * 03-11-05 01.05.08 Added family code for 1068E family. |
83 | * Removed IOCFacts Reply EEDP Capability bit. | 83 | * Removed IOCFacts Reply EEDP Capability bit. |
84 | * 06-24-05 01.05.09 Added 5 new IOCFacts Reply IOCCapabilities bits. | 84 | * 06-24-05 01.05.09 Added 5 new IOCFacts Reply IOCCapabilities bits. |
85 | * Added Max SATA Targets to SAS Discovery Error event. | 85 | * Added Max SATA Targets to SAS Discovery Error event. |
86 | * 08-30-05 01.05.10 Added 4 new events and their event data structures. | 86 | * 08-30-05 01.05.10 Added 4 new events and their event data structures. |
87 | * Added new ReasonCode value for SAS Device Status Change | 87 | * Added new ReasonCode value for SAS Device Status Change |
88 | * event. | 88 | * event. |
89 | * Added new family code for FC949E. | 89 | * Added new family code for FC949E. |
90 | * 03-27-06 01.05.11 Added MPI_IOCFACTS_CAPABILITY_TLR. | 90 | * 03-27-06 01.05.11 Added MPI_IOCFACTS_CAPABILITY_TLR. |
91 | * Added additional Reason Codes and more event data fields | 91 | * Added additional Reason Codes and more event data fields |
92 | * to EVENT_DATA_SAS_DEVICE_STATUS_CHANGE. | 92 | * to EVENT_DATA_SAS_DEVICE_STATUS_CHANGE. |
93 | * Added EVENT_DATA_SAS_BROADCAST_PRIMITIVE structure and | 93 | * Added EVENT_DATA_SAS_BROADCAST_PRIMITIVE structure and |
94 | * new event. | 94 | * new event. |
95 | * Added MPI_EVENT_SAS_SMP_ERROR and event data structure. | 95 | * Added MPI_EVENT_SAS_SMP_ERROR and event data structure. |
96 | * Added MPI_EVENT_SAS_INIT_DEVICE_STATUS_CHANGE and event | 96 | * Added MPI_EVENT_SAS_INIT_DEVICE_STATUS_CHANGE and event |
97 | * data structure. | 97 | * data structure. |
98 | * Added MPI_EVENT_SAS_INIT_TABLE_OVERFLOW and event | 98 | * Added MPI_EVENT_SAS_INIT_TABLE_OVERFLOW and event |
99 | * data structure. | 99 | * data structure. |
100 | * Added MPI_EXT_IMAGE_TYPE_INITIALIZATION. | 100 | * Added MPI_EXT_IMAGE_TYPE_INITIALIZATION. |
101 | * 10-11-06 01.05.12 Added MPI_IOCFACTS_EXCEPT_METADATA_UNSUPPORTED. | ||
102 | * Added MaxInitiators field to PortFacts reply. | ||
103 | * Added SAS Device Status Change ReasonCode for | ||
104 | * asynchronous notificaiton. | ||
105 | * Added MPI_EVENT_SAS_EXPANDER_STATUS_CHANGE and event | ||
106 | * data structure. | ||
107 | * Added new ImageType values for FWDownload and FWUpload | ||
108 | * requests. | ||
101 | * -------------------------------------------------------------------------- | 109 | * -------------------------------------------------------------------------- |
102 | */ | 110 | */ |
103 | 111 | ||
104 | #ifndef MPI_IOC_H | 112 | #ifndef MPI_IOC_H |
105 | #define MPI_IOC_H | 113 | #define MPI_IOC_H |
106 | 114 | ||
107 | 115 | ||
108 | /***************************************************************************** | 116 | /***************************************************************************** |
109 | * | 117 | * |
110 | * I O C M e s s a g e s | 118 | * I O C M e s s a g e s |
111 | * | 119 | * |
112 | *****************************************************************************/ | 120 | *****************************************************************************/ |
113 | 121 | ||
114 | /****************************************************************************/ | 122 | /****************************************************************************/ |
115 | /* IOCInit message */ | 123 | /* IOCInit message */ |
116 | /****************************************************************************/ | 124 | /****************************************************************************/ |
117 | 125 | ||
118 | typedef struct _MSG_IOC_INIT | 126 | typedef struct _MSG_IOC_INIT |
119 | { | 127 | { |
120 | U8 WhoInit; /* 00h */ | 128 | U8 WhoInit; /* 00h */ |
121 | U8 Reserved; /* 01h */ | 129 | U8 Reserved; /* 01h */ |
122 | U8 ChainOffset; /* 02h */ | 130 | U8 ChainOffset; /* 02h */ |
123 | U8 Function; /* 03h */ | 131 | U8 Function; /* 03h */ |
124 | U8 Flags; /* 04h */ | 132 | U8 Flags; /* 04h */ |
125 | U8 MaxDevices; /* 05h */ | 133 | U8 MaxDevices; /* 05h */ |
126 | U8 MaxBuses; /* 06h */ | 134 | U8 MaxBuses; /* 06h */ |
127 | U8 MsgFlags; /* 07h */ | 135 | U8 MsgFlags; /* 07h */ |
128 | U32 MsgContext; /* 08h */ | 136 | U32 MsgContext; /* 08h */ |
129 | U16 ReplyFrameSize; /* 0Ch */ | 137 | U16 ReplyFrameSize; /* 0Ch */ |
130 | U8 Reserved1[2]; /* 0Eh */ | 138 | U8 Reserved1[2]; /* 0Eh */ |
131 | U32 HostMfaHighAddr; /* 10h */ | 139 | U32 HostMfaHighAddr; /* 10h */ |
132 | U32 SenseBufferHighAddr; /* 14h */ | 140 | U32 SenseBufferHighAddr; /* 14h */ |
133 | U32 ReplyFifoHostSignalingAddr; /* 18h */ | 141 | U32 ReplyFifoHostSignalingAddr; /* 18h */ |
134 | SGE_SIMPLE_UNION HostPageBufferSGE; /* 1Ch */ | 142 | SGE_SIMPLE_UNION HostPageBufferSGE; /* 1Ch */ |
135 | U16 MsgVersion; /* 28h */ | 143 | U16 MsgVersion; /* 28h */ |
136 | U16 HeaderVersion; /* 2Ah */ | 144 | U16 HeaderVersion; /* 2Ah */ |
137 | } MSG_IOC_INIT, MPI_POINTER PTR_MSG_IOC_INIT, | 145 | } MSG_IOC_INIT, MPI_POINTER PTR_MSG_IOC_INIT, |
138 | IOCInit_t, MPI_POINTER pIOCInit_t; | 146 | IOCInit_t, MPI_POINTER pIOCInit_t; |
139 | 147 | ||
140 | /* WhoInit values */ | 148 | /* WhoInit values */ |
141 | #define MPI_WHOINIT_NO_ONE (0x00) | 149 | #define MPI_WHOINIT_NO_ONE (0x00) |
142 | #define MPI_WHOINIT_SYSTEM_BIOS (0x01) | 150 | #define MPI_WHOINIT_SYSTEM_BIOS (0x01) |
143 | #define MPI_WHOINIT_ROM_BIOS (0x02) | 151 | #define MPI_WHOINIT_ROM_BIOS (0x02) |
144 | #define MPI_WHOINIT_PCI_PEER (0x03) | 152 | #define MPI_WHOINIT_PCI_PEER (0x03) |
145 | #define MPI_WHOINIT_HOST_DRIVER (0x04) | 153 | #define MPI_WHOINIT_HOST_DRIVER (0x04) |
146 | #define MPI_WHOINIT_MANUFACTURER (0x05) | 154 | #define MPI_WHOINIT_MANUFACTURER (0x05) |
147 | 155 | ||
148 | /* Flags values */ | 156 | /* Flags values */ |
149 | #define MPI_IOCINIT_FLAGS_HOST_PAGE_BUFFER_PERSISTENT (0x04) | 157 | #define MPI_IOCINIT_FLAGS_HOST_PAGE_BUFFER_PERSISTENT (0x04) |
150 | #define MPI_IOCINIT_FLAGS_REPLY_FIFO_HOST_SIGNAL (0x02) | 158 | #define MPI_IOCINIT_FLAGS_REPLY_FIFO_HOST_SIGNAL (0x02) |
151 | #define MPI_IOCINIT_FLAGS_DISCARD_FW_IMAGE (0x01) | 159 | #define MPI_IOCINIT_FLAGS_DISCARD_FW_IMAGE (0x01) |
152 | 160 | ||
153 | /* MsgVersion */ | 161 | /* MsgVersion */ |
154 | #define MPI_IOCINIT_MSGVERSION_MAJOR_MASK (0xFF00) | 162 | #define MPI_IOCINIT_MSGVERSION_MAJOR_MASK (0xFF00) |
155 | #define MPI_IOCINIT_MSGVERSION_MAJOR_SHIFT (8) | 163 | #define MPI_IOCINIT_MSGVERSION_MAJOR_SHIFT (8) |
156 | #define MPI_IOCINIT_MSGVERSION_MINOR_MASK (0x00FF) | 164 | #define MPI_IOCINIT_MSGVERSION_MINOR_MASK (0x00FF) |
157 | #define MPI_IOCINIT_MSGVERSION_MINOR_SHIFT (0) | 165 | #define MPI_IOCINIT_MSGVERSION_MINOR_SHIFT (0) |
158 | 166 | ||
159 | /* HeaderVersion */ | 167 | /* HeaderVersion */ |
160 | #define MPI_IOCINIT_HEADERVERSION_UNIT_MASK (0xFF00) | 168 | #define MPI_IOCINIT_HEADERVERSION_UNIT_MASK (0xFF00) |
161 | #define MPI_IOCINIT_HEADERVERSION_UNIT_SHIFT (8) | 169 | #define MPI_IOCINIT_HEADERVERSION_UNIT_SHIFT (8) |
162 | #define MPI_IOCINIT_HEADERVERSION_DEV_MASK (0x00FF) | 170 | #define MPI_IOCINIT_HEADERVERSION_DEV_MASK (0x00FF) |
163 | #define MPI_IOCINIT_HEADERVERSION_DEV_SHIFT (0) | 171 | #define MPI_IOCINIT_HEADERVERSION_DEV_SHIFT (0) |
164 | 172 | ||
165 | 173 | ||
166 | typedef struct _MSG_IOC_INIT_REPLY | 174 | typedef struct _MSG_IOC_INIT_REPLY |
167 | { | 175 | { |
168 | U8 WhoInit; /* 00h */ | 176 | U8 WhoInit; /* 00h */ |
169 | U8 Reserved; /* 01h */ | 177 | U8 Reserved; /* 01h */ |
170 | U8 MsgLength; /* 02h */ | 178 | U8 MsgLength; /* 02h */ |
171 | U8 Function; /* 03h */ | 179 | U8 Function; /* 03h */ |
172 | U8 Flags; /* 04h */ | 180 | U8 Flags; /* 04h */ |
173 | U8 MaxDevices; /* 05h */ | 181 | U8 MaxDevices; /* 05h */ |
174 | U8 MaxBuses; /* 06h */ | 182 | U8 MaxBuses; /* 06h */ |
175 | U8 MsgFlags; /* 07h */ | 183 | U8 MsgFlags; /* 07h */ |
176 | U32 MsgContext; /* 08h */ | 184 | U32 MsgContext; /* 08h */ |
177 | U16 Reserved2; /* 0Ch */ | 185 | U16 Reserved2; /* 0Ch */ |
178 | U16 IOCStatus; /* 0Eh */ | 186 | U16 IOCStatus; /* 0Eh */ |
179 | U32 IOCLogInfo; /* 10h */ | 187 | U32 IOCLogInfo; /* 10h */ |
180 | } MSG_IOC_INIT_REPLY, MPI_POINTER PTR_MSG_IOC_INIT_REPLY, | 188 | } MSG_IOC_INIT_REPLY, MPI_POINTER PTR_MSG_IOC_INIT_REPLY, |
181 | IOCInitReply_t, MPI_POINTER pIOCInitReply_t; | 189 | IOCInitReply_t, MPI_POINTER pIOCInitReply_t; |
182 | 190 | ||
183 | 191 | ||
184 | 192 | ||
185 | /****************************************************************************/ | 193 | /****************************************************************************/ |
186 | /* IOC Facts message */ | 194 | /* IOC Facts message */ |
187 | /****************************************************************************/ | 195 | /****************************************************************************/ |
188 | 196 | ||
189 | typedef struct _MSG_IOC_FACTS | 197 | typedef struct _MSG_IOC_FACTS |
190 | { | 198 | { |
191 | U8 Reserved[2]; /* 00h */ | 199 | U8 Reserved[2]; /* 00h */ |
192 | U8 ChainOffset; /* 01h */ | 200 | U8 ChainOffset; /* 01h */ |
193 | U8 Function; /* 02h */ | 201 | U8 Function; /* 02h */ |
194 | U8 Reserved1[3]; /* 03h */ | 202 | U8 Reserved1[3]; /* 03h */ |
195 | U8 MsgFlags; /* 04h */ | 203 | U8 MsgFlags; /* 04h */ |
196 | U32 MsgContext; /* 08h */ | 204 | U32 MsgContext; /* 08h */ |
197 | } MSG_IOC_FACTS, MPI_POINTER PTR_IOC_FACTS, | 205 | } MSG_IOC_FACTS, MPI_POINTER PTR_IOC_FACTS, |
198 | IOCFacts_t, MPI_POINTER pIOCFacts_t; | 206 | IOCFacts_t, MPI_POINTER pIOCFacts_t; |
199 | 207 | ||
200 | typedef struct _MPI_FW_VERSION_STRUCT | 208 | typedef struct _MPI_FW_VERSION_STRUCT |
201 | { | 209 | { |
202 | U8 Dev; /* 00h */ | 210 | U8 Dev; /* 00h */ |
203 | U8 Unit; /* 01h */ | 211 | U8 Unit; /* 01h */ |
204 | U8 Minor; /* 02h */ | 212 | U8 Minor; /* 02h */ |
205 | U8 Major; /* 03h */ | 213 | U8 Major; /* 03h */ |
206 | } MPI_FW_VERSION_STRUCT; | 214 | } MPI_FW_VERSION_STRUCT; |
207 | 215 | ||
208 | typedef union _MPI_FW_VERSION | 216 | typedef union _MPI_FW_VERSION |
209 | { | 217 | { |
210 | MPI_FW_VERSION_STRUCT Struct; | 218 | MPI_FW_VERSION_STRUCT Struct; |
211 | U32 Word; | 219 | U32 Word; |
212 | } MPI_FW_VERSION; | 220 | } MPI_FW_VERSION; |
213 | 221 | ||
214 | /* IOC Facts Reply */ | 222 | /* IOC Facts Reply */ |
215 | typedef struct _MSG_IOC_FACTS_REPLY | 223 | typedef struct _MSG_IOC_FACTS_REPLY |
216 | { | 224 | { |
217 | U16 MsgVersion; /* 00h */ | 225 | U16 MsgVersion; /* 00h */ |
218 | U8 MsgLength; /* 02h */ | 226 | U8 MsgLength; /* 02h */ |
219 | U8 Function; /* 03h */ | 227 | U8 Function; /* 03h */ |
220 | U16 HeaderVersion; /* 04h */ | 228 | U16 HeaderVersion; /* 04h */ |
221 | U8 IOCNumber; /* 06h */ | 229 | U8 IOCNumber; /* 06h */ |
222 | U8 MsgFlags; /* 07h */ | 230 | U8 MsgFlags; /* 07h */ |
223 | U32 MsgContext; /* 08h */ | 231 | U32 MsgContext; /* 08h */ |
224 | U16 IOCExceptions; /* 0Ch */ | 232 | U16 IOCExceptions; /* 0Ch */ |
225 | U16 IOCStatus; /* 0Eh */ | 233 | U16 IOCStatus; /* 0Eh */ |
226 | U32 IOCLogInfo; /* 10h */ | 234 | U32 IOCLogInfo; /* 10h */ |
227 | U8 MaxChainDepth; /* 14h */ | 235 | U8 MaxChainDepth; /* 14h */ |
228 | U8 WhoInit; /* 15h */ | 236 | U8 WhoInit; /* 15h */ |
229 | U8 BlockSize; /* 16h */ | 237 | U8 BlockSize; /* 16h */ |
230 | U8 Flags; /* 17h */ | 238 | U8 Flags; /* 17h */ |
231 | U16 ReplyQueueDepth; /* 18h */ | 239 | U16 ReplyQueueDepth; /* 18h */ |
232 | U16 RequestFrameSize; /* 1Ah */ | 240 | U16 RequestFrameSize; /* 1Ah */ |
233 | U16 Reserved_0101_FWVersion; /* 1Ch */ /* obsolete 16-bit FWVersion */ | 241 | U16 Reserved_0101_FWVersion; /* 1Ch */ /* obsolete 16-bit FWVersion */ |
234 | U16 ProductID; /* 1Eh */ | 242 | U16 ProductID; /* 1Eh */ |
235 | U32 CurrentHostMfaHighAddr; /* 20h */ | 243 | U32 CurrentHostMfaHighAddr; /* 20h */ |
236 | U16 GlobalCredits; /* 24h */ | 244 | U16 GlobalCredits; /* 24h */ |
237 | U8 NumberOfPorts; /* 26h */ | 245 | U8 NumberOfPorts; /* 26h */ |
238 | U8 EventState; /* 27h */ | 246 | U8 EventState; /* 27h */ |
239 | U32 CurrentSenseBufferHighAddr; /* 28h */ | 247 | U32 CurrentSenseBufferHighAddr; /* 28h */ |
240 | U16 CurReplyFrameSize; /* 2Ch */ | 248 | U16 CurReplyFrameSize; /* 2Ch */ |
241 | U8 MaxDevices; /* 2Eh */ | 249 | U8 MaxDevices; /* 2Eh */ |
242 | U8 MaxBuses; /* 2Fh */ | 250 | U8 MaxBuses; /* 2Fh */ |
243 | U32 FWImageSize; /* 30h */ | 251 | U32 FWImageSize; /* 30h */ |
244 | U32 IOCCapabilities; /* 34h */ | 252 | U32 IOCCapabilities; /* 34h */ |
245 | MPI_FW_VERSION FWVersion; /* 38h */ | 253 | MPI_FW_VERSION FWVersion; /* 38h */ |
246 | U16 HighPriorityQueueDepth; /* 3Ch */ | 254 | U16 HighPriorityQueueDepth; /* 3Ch */ |
247 | U16 Reserved2; /* 3Eh */ | 255 | U16 Reserved2; /* 3Eh */ |
248 | SGE_SIMPLE_UNION HostPageBufferSGE; /* 40h */ | 256 | SGE_SIMPLE_UNION HostPageBufferSGE; /* 40h */ |
249 | U32 ReplyFifoHostSignalingAddr; /* 4Ch */ | 257 | U32 ReplyFifoHostSignalingAddr; /* 4Ch */ |
250 | } MSG_IOC_FACTS_REPLY, MPI_POINTER PTR_MSG_IOC_FACTS_REPLY, | 258 | } MSG_IOC_FACTS_REPLY, MPI_POINTER PTR_MSG_IOC_FACTS_REPLY, |
251 | IOCFactsReply_t, MPI_POINTER pIOCFactsReply_t; | 259 | IOCFactsReply_t, MPI_POINTER pIOCFactsReply_t; |
252 | 260 | ||
253 | #define MPI_IOCFACTS_MSGVERSION_MAJOR_MASK (0xFF00) | 261 | #define MPI_IOCFACTS_MSGVERSION_MAJOR_MASK (0xFF00) |
254 | #define MPI_IOCFACTS_MSGVERSION_MAJOR_SHIFT (8) | 262 | #define MPI_IOCFACTS_MSGVERSION_MAJOR_SHIFT (8) |
255 | #define MPI_IOCFACTS_MSGVERSION_MINOR_MASK (0x00FF) | 263 | #define MPI_IOCFACTS_MSGVERSION_MINOR_MASK (0x00FF) |
256 | #define MPI_IOCFACTS_MSGVERSION_MINOR_SHIFT (0) | 264 | #define MPI_IOCFACTS_MSGVERSION_MINOR_SHIFT (0) |
257 | 265 | ||
258 | #define MPI_IOCFACTS_HDRVERSION_UNIT_MASK (0xFF00) | 266 | #define MPI_IOCFACTS_HDRVERSION_UNIT_MASK (0xFF00) |
259 | #define MPI_IOCFACTS_HDRVERSION_UNIT_SHIFT (8) | 267 | #define MPI_IOCFACTS_HDRVERSION_UNIT_SHIFT (8) |
260 | #define MPI_IOCFACTS_HDRVERSION_DEV_MASK (0x00FF) | 268 | #define MPI_IOCFACTS_HDRVERSION_DEV_MASK (0x00FF) |
261 | #define MPI_IOCFACTS_HDRVERSION_DEV_SHIFT (0) | 269 | #define MPI_IOCFACTS_HDRVERSION_DEV_SHIFT (0) |
262 | 270 | ||
263 | #define MPI_IOCFACTS_EXCEPT_CONFIG_CHECKSUM_FAIL (0x0001) | 271 | #define MPI_IOCFACTS_EXCEPT_CONFIG_CHECKSUM_FAIL (0x0001) |
264 | #define MPI_IOCFACTS_EXCEPT_RAID_CONFIG_INVALID (0x0002) | 272 | #define MPI_IOCFACTS_EXCEPT_RAID_CONFIG_INVALID (0x0002) |
265 | #define MPI_IOCFACTS_EXCEPT_FW_CHECKSUM_FAIL (0x0004) | 273 | #define MPI_IOCFACTS_EXCEPT_FW_CHECKSUM_FAIL (0x0004) |
266 | #define MPI_IOCFACTS_EXCEPT_PERSISTENT_TABLE_FULL (0x0008) | 274 | #define MPI_IOCFACTS_EXCEPT_PERSISTENT_TABLE_FULL (0x0008) |
275 | #define MPI_IOCFACTS_EXCEPT_METADATA_UNSUPPORTED (0x0010) | ||
267 | 276 | ||
268 | #define MPI_IOCFACTS_FLAGS_FW_DOWNLOAD_BOOT (0x01) | 277 | #define MPI_IOCFACTS_FLAGS_FW_DOWNLOAD_BOOT (0x01) |
269 | #define MPI_IOCFACTS_FLAGS_REPLY_FIFO_HOST_SIGNAL (0x02) | 278 | #define MPI_IOCFACTS_FLAGS_REPLY_FIFO_HOST_SIGNAL (0x02) |
270 | #define MPI_IOCFACTS_FLAGS_HOST_PAGE_BUFFER_PERSISTENT (0x04) | 279 | #define MPI_IOCFACTS_FLAGS_HOST_PAGE_BUFFER_PERSISTENT (0x04) |
271 | 280 | ||
272 | #define MPI_IOCFACTS_EVENTSTATE_DISABLED (0x00) | 281 | #define MPI_IOCFACTS_EVENTSTATE_DISABLED (0x00) |
273 | #define MPI_IOCFACTS_EVENTSTATE_ENABLED (0x01) | 282 | #define MPI_IOCFACTS_EVENTSTATE_ENABLED (0x01) |
274 | 283 | ||
275 | #define MPI_IOCFACTS_CAPABILITY_HIGH_PRI_Q (0x00000001) | 284 | #define MPI_IOCFACTS_CAPABILITY_HIGH_PRI_Q (0x00000001) |
276 | #define MPI_IOCFACTS_CAPABILITY_REPLY_HOST_SIGNAL (0x00000002) | 285 | #define MPI_IOCFACTS_CAPABILITY_REPLY_HOST_SIGNAL (0x00000002) |
277 | #define MPI_IOCFACTS_CAPABILITY_QUEUE_FULL_HANDLING (0x00000004) | 286 | #define MPI_IOCFACTS_CAPABILITY_QUEUE_FULL_HANDLING (0x00000004) |
278 | #define MPI_IOCFACTS_CAPABILITY_DIAG_TRACE_BUFFER (0x00000008) | 287 | #define MPI_IOCFACTS_CAPABILITY_DIAG_TRACE_BUFFER (0x00000008) |
279 | #define MPI_IOCFACTS_CAPABILITY_SNAPSHOT_BUFFER (0x00000010) | 288 | #define MPI_IOCFACTS_CAPABILITY_SNAPSHOT_BUFFER (0x00000010) |
280 | #define MPI_IOCFACTS_CAPABILITY_EXTENDED_BUFFER (0x00000020) | 289 | #define MPI_IOCFACTS_CAPABILITY_EXTENDED_BUFFER (0x00000020) |
281 | #define MPI_IOCFACTS_CAPABILITY_EEDP (0x00000040) | 290 | #define MPI_IOCFACTS_CAPABILITY_EEDP (0x00000040) |
282 | #define MPI_IOCFACTS_CAPABILITY_BIDIRECTIONAL (0x00000080) | 291 | #define MPI_IOCFACTS_CAPABILITY_BIDIRECTIONAL (0x00000080) |
283 | #define MPI_IOCFACTS_CAPABILITY_MULTICAST (0x00000100) | 292 | #define MPI_IOCFACTS_CAPABILITY_MULTICAST (0x00000100) |
284 | #define MPI_IOCFACTS_CAPABILITY_SCSIIO32 (0x00000200) | 293 | #define MPI_IOCFACTS_CAPABILITY_SCSIIO32 (0x00000200) |
285 | #define MPI_IOCFACTS_CAPABILITY_NO_SCSIIO16 (0x00000400) | 294 | #define MPI_IOCFACTS_CAPABILITY_NO_SCSIIO16 (0x00000400) |
286 | #define MPI_IOCFACTS_CAPABILITY_TLR (0x00000800) | 295 | #define MPI_IOCFACTS_CAPABILITY_TLR (0x00000800) |
287 | 296 | ||
288 | 297 | ||
289 | /***************************************************************************** | 298 | /***************************************************************************** |
290 | * | 299 | * |
291 | * P o r t M e s s a g e s | 300 | * P o r t M e s s a g e s |
292 | * | 301 | * |
293 | *****************************************************************************/ | 302 | *****************************************************************************/ |
294 | 303 | ||
295 | /****************************************************************************/ | 304 | /****************************************************************************/ |
296 | /* Port Facts message and Reply */ | 305 | /* Port Facts message and Reply */ |
297 | /****************************************************************************/ | 306 | /****************************************************************************/ |
298 | 307 | ||
299 | typedef struct _MSG_PORT_FACTS | 308 | typedef struct _MSG_PORT_FACTS |
300 | { | 309 | { |
301 | U8 Reserved[2]; /* 00h */ | 310 | U8 Reserved[2]; /* 00h */ |
302 | U8 ChainOffset; /* 02h */ | 311 | U8 ChainOffset; /* 02h */ |
303 | U8 Function; /* 03h */ | 312 | U8 Function; /* 03h */ |
304 | U8 Reserved1[2]; /* 04h */ | 313 | U8 Reserved1[2]; /* 04h */ |
305 | U8 PortNumber; /* 06h */ | 314 | U8 PortNumber; /* 06h */ |
306 | U8 MsgFlags; /* 07h */ | 315 | U8 MsgFlags; /* 07h */ |
307 | U32 MsgContext; /* 08h */ | 316 | U32 MsgContext; /* 08h */ |
308 | } MSG_PORT_FACTS, MPI_POINTER PTR_MSG_PORT_FACTS, | 317 | } MSG_PORT_FACTS, MPI_POINTER PTR_MSG_PORT_FACTS, |
309 | PortFacts_t, MPI_POINTER pPortFacts_t; | 318 | PortFacts_t, MPI_POINTER pPortFacts_t; |
310 | 319 | ||
311 | typedef struct _MSG_PORT_FACTS_REPLY | 320 | typedef struct _MSG_PORT_FACTS_REPLY |
312 | { | 321 | { |
313 | U16 Reserved; /* 00h */ | 322 | U16 Reserved; /* 00h */ |
314 | U8 MsgLength; /* 02h */ | 323 | U8 MsgLength; /* 02h */ |
315 | U8 Function; /* 03h */ | 324 | U8 Function; /* 03h */ |
316 | U16 Reserved1; /* 04h */ | 325 | U16 Reserved1; /* 04h */ |
317 | U8 PortNumber; /* 06h */ | 326 | U8 PortNumber; /* 06h */ |
318 | U8 MsgFlags; /* 07h */ | 327 | U8 MsgFlags; /* 07h */ |
319 | U32 MsgContext; /* 08h */ | 328 | U32 MsgContext; /* 08h */ |
320 | U16 Reserved2; /* 0Ch */ | 329 | U16 Reserved2; /* 0Ch */ |
321 | U16 IOCStatus; /* 0Eh */ | 330 | U16 IOCStatus; /* 0Eh */ |
322 | U32 IOCLogInfo; /* 10h */ | 331 | U32 IOCLogInfo; /* 10h */ |
323 | U8 Reserved3; /* 14h */ | 332 | U8 Reserved3; /* 14h */ |
324 | U8 PortType; /* 15h */ | 333 | U8 PortType; /* 15h */ |
325 | U16 MaxDevices; /* 16h */ | 334 | U16 MaxDevices; /* 16h */ |
326 | U16 PortSCSIID; /* 18h */ | 335 | U16 PortSCSIID; /* 18h */ |
327 | U16 ProtocolFlags; /* 1Ah */ | 336 | U16 ProtocolFlags; /* 1Ah */ |
328 | U16 MaxPostedCmdBuffers; /* 1Ch */ | 337 | U16 MaxPostedCmdBuffers; /* 1Ch */ |
329 | U16 MaxPersistentIDs; /* 1Eh */ | 338 | U16 MaxPersistentIDs; /* 1Eh */ |
330 | U16 MaxLanBuckets; /* 20h */ | 339 | U16 MaxLanBuckets; /* 20h */ |
331 | U16 Reserved4; /* 22h */ | 340 | U8 MaxInitiators; /* 22h */ |
341 | U8 Reserved4; /* 23h */ | ||
332 | U32 Reserved5; /* 24h */ | 342 | U32 Reserved5; /* 24h */ |
333 | } MSG_PORT_FACTS_REPLY, MPI_POINTER PTR_MSG_PORT_FACTS_REPLY, | 343 | } MSG_PORT_FACTS_REPLY, MPI_POINTER PTR_MSG_PORT_FACTS_REPLY, |
334 | PortFactsReply_t, MPI_POINTER pPortFactsReply_t; | 344 | PortFactsReply_t, MPI_POINTER pPortFactsReply_t; |
335 | 345 | ||
336 | 346 | ||
337 | /* PortTypes values */ | 347 | /* PortTypes values */ |
338 | 348 | ||
339 | #define MPI_PORTFACTS_PORTTYPE_INACTIVE (0x00) | 349 | #define MPI_PORTFACTS_PORTTYPE_INACTIVE (0x00) |
340 | #define MPI_PORTFACTS_PORTTYPE_SCSI (0x01) | 350 | #define MPI_PORTFACTS_PORTTYPE_SCSI (0x01) |
341 | #define MPI_PORTFACTS_PORTTYPE_FC (0x10) | 351 | #define MPI_PORTFACTS_PORTTYPE_FC (0x10) |
342 | #define MPI_PORTFACTS_PORTTYPE_ISCSI (0x20) | 352 | #define MPI_PORTFACTS_PORTTYPE_ISCSI (0x20) |
343 | #define MPI_PORTFACTS_PORTTYPE_SAS (0x30) | 353 | #define MPI_PORTFACTS_PORTTYPE_SAS (0x30) |
344 | 354 | ||
345 | /* ProtocolFlags values */ | 355 | /* ProtocolFlags values */ |
346 | 356 | ||
347 | #define MPI_PORTFACTS_PROTOCOL_LOGBUSADDR (0x01) | 357 | #define MPI_PORTFACTS_PROTOCOL_LOGBUSADDR (0x01) |
348 | #define MPI_PORTFACTS_PROTOCOL_LAN (0x02) | 358 | #define MPI_PORTFACTS_PROTOCOL_LAN (0x02) |
349 | #define MPI_PORTFACTS_PROTOCOL_TARGET (0x04) | 359 | #define MPI_PORTFACTS_PROTOCOL_TARGET (0x04) |
350 | #define MPI_PORTFACTS_PROTOCOL_INITIATOR (0x08) | 360 | #define MPI_PORTFACTS_PROTOCOL_INITIATOR (0x08) |
351 | 361 | ||
352 | 362 | ||
353 | /****************************************************************************/ | 363 | /****************************************************************************/ |
354 | /* Port Enable Message */ | 364 | /* Port Enable Message */ |
355 | /****************************************************************************/ | 365 | /****************************************************************************/ |
356 | 366 | ||
357 | typedef struct _MSG_PORT_ENABLE | 367 | typedef struct _MSG_PORT_ENABLE |
358 | { | 368 | { |
359 | U8 Reserved[2]; /* 00h */ | 369 | U8 Reserved[2]; /* 00h */ |
360 | U8 ChainOffset; /* 02h */ | 370 | U8 ChainOffset; /* 02h */ |
361 | U8 Function; /* 03h */ | 371 | U8 Function; /* 03h */ |
362 | U8 Reserved1[2]; /* 04h */ | 372 | U8 Reserved1[2]; /* 04h */ |
363 | U8 PortNumber; /* 06h */ | 373 | U8 PortNumber; /* 06h */ |
364 | U8 MsgFlags; /* 07h */ | 374 | U8 MsgFlags; /* 07h */ |
365 | U32 MsgContext; /* 08h */ | 375 | U32 MsgContext; /* 08h */ |
366 | } MSG_PORT_ENABLE, MPI_POINTER PTR_MSG_PORT_ENABLE, | 376 | } MSG_PORT_ENABLE, MPI_POINTER PTR_MSG_PORT_ENABLE, |
367 | PortEnable_t, MPI_POINTER pPortEnable_t; | 377 | PortEnable_t, MPI_POINTER pPortEnable_t; |
368 | 378 | ||
369 | typedef struct _MSG_PORT_ENABLE_REPLY | 379 | typedef struct _MSG_PORT_ENABLE_REPLY |
370 | { | 380 | { |
371 | U8 Reserved[2]; /* 00h */ | 381 | U8 Reserved[2]; /* 00h */ |
372 | U8 MsgLength; /* 02h */ | 382 | U8 MsgLength; /* 02h */ |
373 | U8 Function; /* 03h */ | 383 | U8 Function; /* 03h */ |
374 | U8 Reserved1[2]; /* 04h */ | 384 | U8 Reserved1[2]; /* 04h */ |
375 | U8 PortNumber; /* 05h */ | 385 | U8 PortNumber; /* 05h */ |
376 | U8 MsgFlags; /* 07h */ | 386 | U8 MsgFlags; /* 07h */ |
377 | U32 MsgContext; /* 08h */ | 387 | U32 MsgContext; /* 08h */ |
378 | U16 Reserved2; /* 0Ch */ | 388 | U16 Reserved2; /* 0Ch */ |
379 | U16 IOCStatus; /* 0Eh */ | 389 | U16 IOCStatus; /* 0Eh */ |
380 | U32 IOCLogInfo; /* 10h */ | 390 | U32 IOCLogInfo; /* 10h */ |
381 | } MSG_PORT_ENABLE_REPLY, MPI_POINTER PTR_MSG_PORT_ENABLE_REPLY, | 391 | } MSG_PORT_ENABLE_REPLY, MPI_POINTER PTR_MSG_PORT_ENABLE_REPLY, |
382 | PortEnableReply_t, MPI_POINTER pPortEnableReply_t; | 392 | PortEnableReply_t, MPI_POINTER pPortEnableReply_t; |
383 | 393 | ||
384 | 394 | ||
385 | /***************************************************************************** | 395 | /***************************************************************************** |
386 | * | 396 | * |
387 | * E v e n t M e s s a g e s | 397 | * E v e n t M e s s a g e s |
388 | * | 398 | * |
389 | *****************************************************************************/ | 399 | *****************************************************************************/ |
390 | 400 | ||
391 | /****************************************************************************/ | 401 | /****************************************************************************/ |
392 | /* Event Notification messages */ | 402 | /* Event Notification messages */ |
393 | /****************************************************************************/ | 403 | /****************************************************************************/ |
394 | 404 | ||
395 | typedef struct _MSG_EVENT_NOTIFY | 405 | typedef struct _MSG_EVENT_NOTIFY |
396 | { | 406 | { |
397 | U8 Switch; /* 00h */ | 407 | U8 Switch; /* 00h */ |
398 | U8 Reserved; /* 01h */ | 408 | U8 Reserved; /* 01h */ |
399 | U8 ChainOffset; /* 02h */ | 409 | U8 ChainOffset; /* 02h */ |
400 | U8 Function; /* 03h */ | 410 | U8 Function; /* 03h */ |
401 | U8 Reserved1[3]; /* 04h */ | 411 | U8 Reserved1[3]; /* 04h */ |
402 | U8 MsgFlags; /* 07h */ | 412 | U8 MsgFlags; /* 07h */ |
403 | U32 MsgContext; /* 08h */ | 413 | U32 MsgContext; /* 08h */ |
404 | } MSG_EVENT_NOTIFY, MPI_POINTER PTR_MSG_EVENT_NOTIFY, | 414 | } MSG_EVENT_NOTIFY, MPI_POINTER PTR_MSG_EVENT_NOTIFY, |
405 | EventNotification_t, MPI_POINTER pEventNotification_t; | 415 | EventNotification_t, MPI_POINTER pEventNotification_t; |
406 | 416 | ||
407 | /* Event Notification Reply */ | 417 | /* Event Notification Reply */ |
408 | 418 | ||
409 | typedef struct _MSG_EVENT_NOTIFY_REPLY | 419 | typedef struct _MSG_EVENT_NOTIFY_REPLY |
410 | { | 420 | { |
411 | U16 EventDataLength; /* 00h */ | 421 | U16 EventDataLength; /* 00h */ |
412 | U8 MsgLength; /* 02h */ | 422 | U8 MsgLength; /* 02h */ |
413 | U8 Function; /* 03h */ | 423 | U8 Function; /* 03h */ |
414 | U8 Reserved1[2]; /* 04h */ | 424 | U8 Reserved1[2]; /* 04h */ |
415 | U8 AckRequired; /* 06h */ | 425 | U8 AckRequired; /* 06h */ |
416 | U8 MsgFlags; /* 07h */ | 426 | U8 MsgFlags; /* 07h */ |
417 | U32 MsgContext; /* 08h */ | 427 | U32 MsgContext; /* 08h */ |
418 | U8 Reserved2[2]; /* 0Ch */ | 428 | U8 Reserved2[2]; /* 0Ch */ |
419 | U16 IOCStatus; /* 0Eh */ | 429 | U16 IOCStatus; /* 0Eh */ |
420 | U32 IOCLogInfo; /* 10h */ | 430 | U32 IOCLogInfo; /* 10h */ |
421 | U32 Event; /* 14h */ | 431 | U32 Event; /* 14h */ |
422 | U32 EventContext; /* 18h */ | 432 | U32 EventContext; /* 18h */ |
423 | U32 Data[1]; /* 1Ch */ | 433 | U32 Data[1]; /* 1Ch */ |
424 | } MSG_EVENT_NOTIFY_REPLY, MPI_POINTER PTR_MSG_EVENT_NOTIFY_REPLY, | 434 | } MSG_EVENT_NOTIFY_REPLY, MPI_POINTER PTR_MSG_EVENT_NOTIFY_REPLY, |
425 | EventNotificationReply_t, MPI_POINTER pEventNotificationReply_t; | 435 | EventNotificationReply_t, MPI_POINTER pEventNotificationReply_t; |
426 | 436 | ||
427 | /* Event Acknowledge */ | 437 | /* Event Acknowledge */ |
428 | 438 | ||
429 | typedef struct _MSG_EVENT_ACK | 439 | typedef struct _MSG_EVENT_ACK |
430 | { | 440 | { |
431 | U8 Reserved[2]; /* 00h */ | 441 | U8 Reserved[2]; /* 00h */ |
432 | U8 ChainOffset; /* 02h */ | 442 | U8 ChainOffset; /* 02h */ |
433 | U8 Function; /* 03h */ | 443 | U8 Function; /* 03h */ |
434 | U8 Reserved1[3]; /* 04h */ | 444 | U8 Reserved1[3]; /* 04h */ |
435 | U8 MsgFlags; /* 07h */ | 445 | U8 MsgFlags; /* 07h */ |
436 | U32 MsgContext; /* 08h */ | 446 | U32 MsgContext; /* 08h */ |
437 | U32 Event; /* 0Ch */ | 447 | U32 Event; /* 0Ch */ |
438 | U32 EventContext; /* 10h */ | 448 | U32 EventContext; /* 10h */ |
439 | } MSG_EVENT_ACK, MPI_POINTER PTR_MSG_EVENT_ACK, | 449 | } MSG_EVENT_ACK, MPI_POINTER PTR_MSG_EVENT_ACK, |
440 | EventAck_t, MPI_POINTER pEventAck_t; | 450 | EventAck_t, MPI_POINTER pEventAck_t; |
441 | 451 | ||
442 | typedef struct _MSG_EVENT_ACK_REPLY | 452 | typedef struct _MSG_EVENT_ACK_REPLY |
443 | { | 453 | { |
444 | U8 Reserved[2]; /* 00h */ | 454 | U8 Reserved[2]; /* 00h */ |
445 | U8 MsgLength; /* 02h */ | 455 | U8 MsgLength; /* 02h */ |
446 | U8 Function; /* 03h */ | 456 | U8 Function; /* 03h */ |
447 | U8 Reserved1[3]; /* 04h */ | 457 | U8 Reserved1[3]; /* 04h */ |
448 | U8 MsgFlags; /* 07h */ | 458 | U8 MsgFlags; /* 07h */ |
449 | U32 MsgContext; /* 08h */ | 459 | U32 MsgContext; /* 08h */ |
450 | U16 Reserved2; /* 0Ch */ | 460 | U16 Reserved2; /* 0Ch */ |
451 | U16 IOCStatus; /* 0Eh */ | 461 | U16 IOCStatus; /* 0Eh */ |
452 | U32 IOCLogInfo; /* 10h */ | 462 | U32 IOCLogInfo; /* 10h */ |
453 | } MSG_EVENT_ACK_REPLY, MPI_POINTER PTR_MSG_EVENT_ACK_REPLY, | 463 | } MSG_EVENT_ACK_REPLY, MPI_POINTER PTR_MSG_EVENT_ACK_REPLY, |
454 | EventAckReply_t, MPI_POINTER pEventAckReply_t; | 464 | EventAckReply_t, MPI_POINTER pEventAckReply_t; |
455 | 465 | ||
456 | /* Switch */ | 466 | /* Switch */ |
457 | 467 | ||
458 | #define MPI_EVENT_NOTIFICATION_SWITCH_OFF (0x00) | 468 | #define MPI_EVENT_NOTIFICATION_SWITCH_OFF (0x00) |
459 | #define MPI_EVENT_NOTIFICATION_SWITCH_ON (0x01) | 469 | #define MPI_EVENT_NOTIFICATION_SWITCH_ON (0x01) |
460 | 470 | ||
461 | /* Event */ | 471 | /* Event */ |
462 | 472 | ||
463 | #define MPI_EVENT_NONE (0x00000000) | 473 | #define MPI_EVENT_NONE (0x00000000) |
464 | #define MPI_EVENT_LOG_DATA (0x00000001) | 474 | #define MPI_EVENT_LOG_DATA (0x00000001) |
465 | #define MPI_EVENT_STATE_CHANGE (0x00000002) | 475 | #define MPI_EVENT_STATE_CHANGE (0x00000002) |
466 | #define MPI_EVENT_UNIT_ATTENTION (0x00000003) | 476 | #define MPI_EVENT_UNIT_ATTENTION (0x00000003) |
467 | #define MPI_EVENT_IOC_BUS_RESET (0x00000004) | 477 | #define MPI_EVENT_IOC_BUS_RESET (0x00000004) |
468 | #define MPI_EVENT_EXT_BUS_RESET (0x00000005) | 478 | #define MPI_EVENT_EXT_BUS_RESET (0x00000005) |
469 | #define MPI_EVENT_RESCAN (0x00000006) | 479 | #define MPI_EVENT_RESCAN (0x00000006) |
470 | #define MPI_EVENT_LINK_STATUS_CHANGE (0x00000007) | 480 | #define MPI_EVENT_LINK_STATUS_CHANGE (0x00000007) |
471 | #define MPI_EVENT_LOOP_STATE_CHANGE (0x00000008) | 481 | #define MPI_EVENT_LOOP_STATE_CHANGE (0x00000008) |
472 | #define MPI_EVENT_LOGOUT (0x00000009) | 482 | #define MPI_EVENT_LOGOUT (0x00000009) |
473 | #define MPI_EVENT_EVENT_CHANGE (0x0000000A) | 483 | #define MPI_EVENT_EVENT_CHANGE (0x0000000A) |
474 | #define MPI_EVENT_INTEGRATED_RAID (0x0000000B) | 484 | #define MPI_EVENT_INTEGRATED_RAID (0x0000000B) |
475 | #define MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE (0x0000000C) | 485 | #define MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE (0x0000000C) |
476 | #define MPI_EVENT_ON_BUS_TIMER_EXPIRED (0x0000000D) | 486 | #define MPI_EVENT_ON_BUS_TIMER_EXPIRED (0x0000000D) |
477 | #define MPI_EVENT_QUEUE_FULL (0x0000000E) | 487 | #define MPI_EVENT_QUEUE_FULL (0x0000000E) |
478 | #define MPI_EVENT_SAS_DEVICE_STATUS_CHANGE (0x0000000F) | 488 | #define MPI_EVENT_SAS_DEVICE_STATUS_CHANGE (0x0000000F) |
479 | #define MPI_EVENT_SAS_SES (0x00000010) | 489 | #define MPI_EVENT_SAS_SES (0x00000010) |
480 | #define MPI_EVENT_PERSISTENT_TABLE_FULL (0x00000011) | 490 | #define MPI_EVENT_PERSISTENT_TABLE_FULL (0x00000011) |
481 | #define MPI_EVENT_SAS_PHY_LINK_STATUS (0x00000012) | 491 | #define MPI_EVENT_SAS_PHY_LINK_STATUS (0x00000012) |
482 | #define MPI_EVENT_SAS_DISCOVERY_ERROR (0x00000013) | 492 | #define MPI_EVENT_SAS_DISCOVERY_ERROR (0x00000013) |
483 | #define MPI_EVENT_IR_RESYNC_UPDATE (0x00000014) | 493 | #define MPI_EVENT_IR_RESYNC_UPDATE (0x00000014) |
484 | #define MPI_EVENT_IR2 (0x00000015) | 494 | #define MPI_EVENT_IR2 (0x00000015) |
485 | #define MPI_EVENT_SAS_DISCOVERY (0x00000016) | 495 | #define MPI_EVENT_SAS_DISCOVERY (0x00000016) |
486 | #define MPI_EVENT_SAS_BROADCAST_PRIMITIVE (0x00000017) | 496 | #define MPI_EVENT_SAS_BROADCAST_PRIMITIVE (0x00000017) |
487 | #define MPI_EVENT_SAS_INIT_DEVICE_STATUS_CHANGE (0x00000018) | 497 | #define MPI_EVENT_SAS_INIT_DEVICE_STATUS_CHANGE (0x00000018) |
488 | #define MPI_EVENT_SAS_INIT_TABLE_OVERFLOW (0x00000019) | 498 | #define MPI_EVENT_SAS_INIT_TABLE_OVERFLOW (0x00000019) |
489 | #define MPI_EVENT_SAS_SMP_ERROR (0x0000001A) | 499 | #define MPI_EVENT_SAS_SMP_ERROR (0x0000001A) |
500 | #define MPI_EVENT_SAS_EXPANDER_STATUS_CHANGE (0x0000001B) | ||
490 | #define MPI_EVENT_LOG_ENTRY_ADDED (0x00000021) | 501 | #define MPI_EVENT_LOG_ENTRY_ADDED (0x00000021) |
491 | 502 | ||
492 | /* AckRequired field values */ | 503 | /* AckRequired field values */ |
493 | 504 | ||
494 | #define MPI_EVENT_NOTIFICATION_ACK_NOT_REQUIRED (0x00) | 505 | #define MPI_EVENT_NOTIFICATION_ACK_NOT_REQUIRED (0x00) |
495 | #define MPI_EVENT_NOTIFICATION_ACK_REQUIRED (0x01) | 506 | #define MPI_EVENT_NOTIFICATION_ACK_REQUIRED (0x01) |
496 | 507 | ||
497 | /* EventChange Event data */ | 508 | /* EventChange Event data */ |
498 | 509 | ||
499 | typedef struct _EVENT_DATA_EVENT_CHANGE | 510 | typedef struct _EVENT_DATA_EVENT_CHANGE |
500 | { | 511 | { |
501 | U8 EventState; /* 00h */ | 512 | U8 EventState; /* 00h */ |
502 | U8 Reserved; /* 01h */ | 513 | U8 Reserved; /* 01h */ |
503 | U16 Reserved1; /* 02h */ | 514 | U16 Reserved1; /* 02h */ |
504 | } EVENT_DATA_EVENT_CHANGE, MPI_POINTER PTR_EVENT_DATA_EVENT_CHANGE, | 515 | } EVENT_DATA_EVENT_CHANGE, MPI_POINTER PTR_EVENT_DATA_EVENT_CHANGE, |
505 | EventDataEventChange_t, MPI_POINTER pEventDataEventChange_t; | 516 | EventDataEventChange_t, MPI_POINTER pEventDataEventChange_t; |
506 | 517 | ||
507 | /* LogEntryAdded Event data */ | 518 | /* LogEntryAdded Event data */ |
508 | 519 | ||
509 | /* this structure matches MPI_LOG_0_ENTRY in mpi_cnfg.h */ | 520 | /* this structure matches MPI_LOG_0_ENTRY in mpi_cnfg.h */ |
510 | #define MPI_EVENT_DATA_LOG_ENTRY_DATA_LENGTH (0x1C) | 521 | #define MPI_EVENT_DATA_LOG_ENTRY_DATA_LENGTH (0x1C) |
511 | typedef struct _EVENT_DATA_LOG_ENTRY | 522 | typedef struct _EVENT_DATA_LOG_ENTRY |
512 | { | 523 | { |
513 | U32 TimeStamp; /* 00h */ | 524 | U32 TimeStamp; /* 00h */ |
514 | U32 Reserved1; /* 04h */ | 525 | U32 Reserved1; /* 04h */ |
515 | U16 LogSequence; /* 08h */ | 526 | U16 LogSequence; /* 08h */ |
516 | U16 LogEntryQualifier; /* 0Ah */ | 527 | U16 LogEntryQualifier; /* 0Ah */ |
517 | U8 LogData[MPI_EVENT_DATA_LOG_ENTRY_DATA_LENGTH]; /* 0Ch */ | 528 | U8 LogData[MPI_EVENT_DATA_LOG_ENTRY_DATA_LENGTH]; /* 0Ch */ |
518 | } EVENT_DATA_LOG_ENTRY, MPI_POINTER PTR_EVENT_DATA_LOG_ENTRY, | 529 | } EVENT_DATA_LOG_ENTRY, MPI_POINTER PTR_EVENT_DATA_LOG_ENTRY, |
519 | MpiEventDataLogEntry_t, MPI_POINTER pMpiEventDataLogEntry_t; | 530 | MpiEventDataLogEntry_t, MPI_POINTER pMpiEventDataLogEntry_t; |
520 | 531 | ||
521 | typedef struct _EVENT_DATA_LOG_ENTRY_ADDED | 532 | typedef struct _EVENT_DATA_LOG_ENTRY_ADDED |
522 | { | 533 | { |
523 | U16 LogSequence; /* 00h */ | 534 | U16 LogSequence; /* 00h */ |
524 | U16 Reserved1; /* 02h */ | 535 | U16 Reserved1; /* 02h */ |
525 | U32 Reserved2; /* 04h */ | 536 | U32 Reserved2; /* 04h */ |
526 | EVENT_DATA_LOG_ENTRY LogEntry; /* 08h */ | 537 | EVENT_DATA_LOG_ENTRY LogEntry; /* 08h */ |
527 | } EVENT_DATA_LOG_ENTRY_ADDED, MPI_POINTER PTR_EVENT_DATA_LOG_ENTRY_ADDED, | 538 | } EVENT_DATA_LOG_ENTRY_ADDED, MPI_POINTER PTR_EVENT_DATA_LOG_ENTRY_ADDED, |
528 | MpiEventDataLogEntryAdded_t, MPI_POINTER pMpiEventDataLogEntryAdded_t; | 539 | MpiEventDataLogEntryAdded_t, MPI_POINTER pMpiEventDataLogEntryAdded_t; |
529 | 540 | ||
530 | /* SCSI Event data for Port, Bus and Device forms */ | 541 | /* SCSI Event data for Port, Bus and Device forms */ |
531 | 542 | ||
532 | typedef struct _EVENT_DATA_SCSI | 543 | typedef struct _EVENT_DATA_SCSI |
533 | { | 544 | { |
534 | U8 TargetID; /* 00h */ | 545 | U8 TargetID; /* 00h */ |
535 | U8 BusPort; /* 01h */ | 546 | U8 BusPort; /* 01h */ |
536 | U16 Reserved; /* 02h */ | 547 | U16 Reserved; /* 02h */ |
537 | } EVENT_DATA_SCSI, MPI_POINTER PTR_EVENT_DATA_SCSI, | 548 | } EVENT_DATA_SCSI, MPI_POINTER PTR_EVENT_DATA_SCSI, |
538 | EventDataScsi_t, MPI_POINTER pEventDataScsi_t; | 549 | EventDataScsi_t, MPI_POINTER pEventDataScsi_t; |
539 | 550 | ||
540 | /* SCSI Device Status Change Event data */ | 551 | /* SCSI Device Status Change Event data */ |
541 | 552 | ||
542 | typedef struct _EVENT_DATA_SCSI_DEVICE_STATUS_CHANGE | 553 | typedef struct _EVENT_DATA_SCSI_DEVICE_STATUS_CHANGE |
543 | { | 554 | { |
544 | U8 TargetID; /* 00h */ | 555 | U8 TargetID; /* 00h */ |
545 | U8 Bus; /* 01h */ | 556 | U8 Bus; /* 01h */ |
546 | U8 ReasonCode; /* 02h */ | 557 | U8 ReasonCode; /* 02h */ |
547 | U8 LUN; /* 03h */ | 558 | U8 LUN; /* 03h */ |
548 | U8 ASC; /* 04h */ | 559 | U8 ASC; /* 04h */ |
549 | U8 ASCQ; /* 05h */ | 560 | U8 ASCQ; /* 05h */ |
550 | U16 Reserved; /* 06h */ | 561 | U16 Reserved; /* 06h */ |
551 | } EVENT_DATA_SCSI_DEVICE_STATUS_CHANGE, | 562 | } EVENT_DATA_SCSI_DEVICE_STATUS_CHANGE, |
552 | MPI_POINTER PTR_EVENT_DATA_SCSI_DEVICE_STATUS_CHANGE, | 563 | MPI_POINTER PTR_EVENT_DATA_SCSI_DEVICE_STATUS_CHANGE, |
553 | MpiEventDataScsiDeviceStatusChange_t, | 564 | MpiEventDataScsiDeviceStatusChange_t, |
554 | MPI_POINTER pMpiEventDataScsiDeviceStatusChange_t; | 565 | MPI_POINTER pMpiEventDataScsiDeviceStatusChange_t; |
555 | 566 | ||
556 | /* MPI SCSI Device Status Change Event data ReasonCode values */ | 567 | /* MPI SCSI Device Status Change Event data ReasonCode values */ |
557 | #define MPI_EVENT_SCSI_DEV_STAT_RC_ADDED (0x03) | 568 | #define MPI_EVENT_SCSI_DEV_STAT_RC_ADDED (0x03) |
558 | #define MPI_EVENT_SCSI_DEV_STAT_RC_NOT_RESPONDING (0x04) | 569 | #define MPI_EVENT_SCSI_DEV_STAT_RC_NOT_RESPONDING (0x04) |
559 | #define MPI_EVENT_SCSI_DEV_STAT_RC_SMART_DATA (0x05) | 570 | #define MPI_EVENT_SCSI_DEV_STAT_RC_SMART_DATA (0x05) |
560 | 571 | ||
561 | /* SAS Device Status Change Event data */ | 572 | /* SAS Device Status Change Event data */ |
562 | 573 | ||
563 | typedef struct _EVENT_DATA_SAS_DEVICE_STATUS_CHANGE | 574 | typedef struct _EVENT_DATA_SAS_DEVICE_STATUS_CHANGE |
564 | { | 575 | { |
565 | U8 TargetID; /* 00h */ | 576 | U8 TargetID; /* 00h */ |
566 | U8 Bus; /* 01h */ | 577 | U8 Bus; /* 01h */ |
567 | U8 ReasonCode; /* 02h */ | 578 | U8 ReasonCode; /* 02h */ |
568 | U8 Reserved; /* 03h */ | 579 | U8 Reserved; /* 03h */ |
569 | U8 ASC; /* 04h */ | 580 | U8 ASC; /* 04h */ |
570 | U8 ASCQ; /* 05h */ | 581 | U8 ASCQ; /* 05h */ |
571 | U16 DevHandle; /* 06h */ | 582 | U16 DevHandle; /* 06h */ |
572 | U32 DeviceInfo; /* 08h */ | 583 | U32 DeviceInfo; /* 08h */ |
573 | U16 ParentDevHandle; /* 0Ch */ | 584 | U16 ParentDevHandle; /* 0Ch */ |
574 | U8 PhyNum; /* 0Eh */ | 585 | U8 PhyNum; /* 0Eh */ |
575 | U8 Reserved1; /* 0Fh */ | 586 | U8 Reserved1; /* 0Fh */ |
576 | U64 SASAddress; /* 10h */ | 587 | U64 SASAddress; /* 10h */ |
577 | U8 LUN[8]; /* 18h */ | 588 | U8 LUN[8]; /* 18h */ |
578 | U16 TaskTag; /* 20h */ | 589 | U16 TaskTag; /* 20h */ |
579 | U16 Reserved2; /* 22h */ | 590 | U16 Reserved2; /* 22h */ |
580 | } EVENT_DATA_SAS_DEVICE_STATUS_CHANGE, | 591 | } EVENT_DATA_SAS_DEVICE_STATUS_CHANGE, |
581 | MPI_POINTER PTR_EVENT_DATA_SAS_DEVICE_STATUS_CHANGE, | 592 | MPI_POINTER PTR_EVENT_DATA_SAS_DEVICE_STATUS_CHANGE, |
582 | MpiEventDataSasDeviceStatusChange_t, | 593 | MpiEventDataSasDeviceStatusChange_t, |
583 | MPI_POINTER pMpiEventDataSasDeviceStatusChange_t; | 594 | MPI_POINTER pMpiEventDataSasDeviceStatusChange_t; |
584 | 595 | ||
585 | /* MPI SAS Device Status Change Event data ReasonCode values */ | 596 | /* MPI SAS Device Status Change Event data ReasonCode values */ |
586 | #define MPI_EVENT_SAS_DEV_STAT_RC_ADDED (0x03) | 597 | #define MPI_EVENT_SAS_DEV_STAT_RC_ADDED (0x03) |
587 | #define MPI_EVENT_SAS_DEV_STAT_RC_NOT_RESPONDING (0x04) | 598 | #define MPI_EVENT_SAS_DEV_STAT_RC_NOT_RESPONDING (0x04) |
588 | #define MPI_EVENT_SAS_DEV_STAT_RC_SMART_DATA (0x05) | 599 | #define MPI_EVENT_SAS_DEV_STAT_RC_SMART_DATA (0x05) |
589 | #define MPI_EVENT_SAS_DEV_STAT_RC_NO_PERSIST_ADDED (0x06) | 600 | #define MPI_EVENT_SAS_DEV_STAT_RC_NO_PERSIST_ADDED (0x06) |
590 | #define MPI_EVENT_SAS_DEV_STAT_RC_UNSUPPORTED (0x07) | 601 | #define MPI_EVENT_SAS_DEV_STAT_RC_UNSUPPORTED (0x07) |
591 | #define MPI_EVENT_SAS_DEV_STAT_RC_INTERNAL_DEVICE_RESET (0x08) | 602 | #define MPI_EVENT_SAS_DEV_STAT_RC_INTERNAL_DEVICE_RESET (0x08) |
592 | #define MPI_EVENT_SAS_DEV_STAT_RC_TASK_ABORT_INTERNAL (0x09) | 603 | #define MPI_EVENT_SAS_DEV_STAT_RC_TASK_ABORT_INTERNAL (0x09) |
593 | #define MPI_EVENT_SAS_DEV_STAT_RC_ABORT_TASK_SET_INTERNAL (0x0A) | 604 | #define MPI_EVENT_SAS_DEV_STAT_RC_ABORT_TASK_SET_INTERNAL (0x0A) |
594 | #define MPI_EVENT_SAS_DEV_STAT_RC_CLEAR_TASK_SET_INTERNAL (0x0B) | 605 | #define MPI_EVENT_SAS_DEV_STAT_RC_CLEAR_TASK_SET_INTERNAL (0x0B) |
595 | #define MPI_EVENT_SAS_DEV_STAT_RC_QUERY_TASK_INTERNAL (0x0C) | 606 | #define MPI_EVENT_SAS_DEV_STAT_RC_QUERY_TASK_INTERNAL (0x0C) |
607 | #define MPI_EVENT_SAS_DEV_STAT_RC_ASYNC_NOTIFICATION (0x0D) | ||
596 | 608 | ||
597 | 609 | ||
598 | /* SCSI Event data for Queue Full event */ | 610 | /* SCSI Event data for Queue Full event */ |
599 | 611 | ||
600 | typedef struct _EVENT_DATA_QUEUE_FULL | 612 | typedef struct _EVENT_DATA_QUEUE_FULL |
601 | { | 613 | { |
602 | U8 TargetID; /* 00h */ | 614 | U8 TargetID; /* 00h */ |
603 | U8 Bus; /* 01h */ | 615 | U8 Bus; /* 01h */ |
604 | U16 CurrentDepth; /* 02h */ | 616 | U16 CurrentDepth; /* 02h */ |
605 | } EVENT_DATA_QUEUE_FULL, MPI_POINTER PTR_EVENT_DATA_QUEUE_FULL, | 617 | } EVENT_DATA_QUEUE_FULL, MPI_POINTER PTR_EVENT_DATA_QUEUE_FULL, |
606 | EventDataQueueFull_t, MPI_POINTER pEventDataQueueFull_t; | 618 | EventDataQueueFull_t, MPI_POINTER pEventDataQueueFull_t; |
607 | 619 | ||
608 | /* MPI Integrated RAID Event data */ | 620 | /* MPI Integrated RAID Event data */ |
609 | 621 | ||
610 | typedef struct _EVENT_DATA_RAID | 622 | typedef struct _EVENT_DATA_RAID |
611 | { | 623 | { |
612 | U8 VolumeID; /* 00h */ | 624 | U8 VolumeID; /* 00h */ |
613 | U8 VolumeBus; /* 01h */ | 625 | U8 VolumeBus; /* 01h */ |
614 | U8 ReasonCode; /* 02h */ | 626 | U8 ReasonCode; /* 02h */ |
615 | U8 PhysDiskNum; /* 03h */ | 627 | U8 PhysDiskNum; /* 03h */ |
616 | U8 ASC; /* 04h */ | 628 | U8 ASC; /* 04h */ |
617 | U8 ASCQ; /* 05h */ | 629 | U8 ASCQ; /* 05h */ |
618 | U16 Reserved; /* 06h */ | 630 | U16 Reserved; /* 06h */ |
619 | U32 SettingsStatus; /* 08h */ | 631 | U32 SettingsStatus; /* 08h */ |
620 | } EVENT_DATA_RAID, MPI_POINTER PTR_EVENT_DATA_RAID, | 632 | } EVENT_DATA_RAID, MPI_POINTER PTR_EVENT_DATA_RAID, |
621 | MpiEventDataRaid_t, MPI_POINTER pMpiEventDataRaid_t; | 633 | MpiEventDataRaid_t, MPI_POINTER pMpiEventDataRaid_t; |
622 | 634 | ||
623 | /* MPI Integrated RAID Event data ReasonCode values */ | 635 | /* MPI Integrated RAID Event data ReasonCode values */ |
624 | #define MPI_EVENT_RAID_RC_VOLUME_CREATED (0x00) | 636 | #define MPI_EVENT_RAID_RC_VOLUME_CREATED (0x00) |
625 | #define MPI_EVENT_RAID_RC_VOLUME_DELETED (0x01) | 637 | #define MPI_EVENT_RAID_RC_VOLUME_DELETED (0x01) |
626 | #define MPI_EVENT_RAID_RC_VOLUME_SETTINGS_CHANGED (0x02) | 638 | #define MPI_EVENT_RAID_RC_VOLUME_SETTINGS_CHANGED (0x02) |
627 | #define MPI_EVENT_RAID_RC_VOLUME_STATUS_CHANGED (0x03) | 639 | #define MPI_EVENT_RAID_RC_VOLUME_STATUS_CHANGED (0x03) |
628 | #define MPI_EVENT_RAID_RC_VOLUME_PHYSDISK_CHANGED (0x04) | 640 | #define MPI_EVENT_RAID_RC_VOLUME_PHYSDISK_CHANGED (0x04) |
629 | #define MPI_EVENT_RAID_RC_PHYSDISK_CREATED (0x05) | 641 | #define MPI_EVENT_RAID_RC_PHYSDISK_CREATED (0x05) |
630 | #define MPI_EVENT_RAID_RC_PHYSDISK_DELETED (0x06) | 642 | #define MPI_EVENT_RAID_RC_PHYSDISK_DELETED (0x06) |
631 | #define MPI_EVENT_RAID_RC_PHYSDISK_SETTINGS_CHANGED (0x07) | 643 | #define MPI_EVENT_RAID_RC_PHYSDISK_SETTINGS_CHANGED (0x07) |
632 | #define MPI_EVENT_RAID_RC_PHYSDISK_STATUS_CHANGED (0x08) | 644 | #define MPI_EVENT_RAID_RC_PHYSDISK_STATUS_CHANGED (0x08) |
633 | #define MPI_EVENT_RAID_RC_DOMAIN_VAL_NEEDED (0x09) | 645 | #define MPI_EVENT_RAID_RC_DOMAIN_VAL_NEEDED (0x09) |
634 | #define MPI_EVENT_RAID_RC_SMART_DATA (0x0A) | 646 | #define MPI_EVENT_RAID_RC_SMART_DATA (0x0A) |
635 | #define MPI_EVENT_RAID_RC_REPLACE_ACTION_STARTED (0x0B) | 647 | #define MPI_EVENT_RAID_RC_REPLACE_ACTION_STARTED (0x0B) |
636 | 648 | ||
637 | 649 | ||
638 | /* MPI Integrated RAID Resync Update Event data */ | 650 | /* MPI Integrated RAID Resync Update Event data */ |
639 | 651 | ||
640 | typedef struct _MPI_EVENT_DATA_IR_RESYNC_UPDATE | 652 | typedef struct _MPI_EVENT_DATA_IR_RESYNC_UPDATE |
641 | { | 653 | { |
642 | U8 VolumeID; /* 00h */ | 654 | U8 VolumeID; /* 00h */ |
643 | U8 VolumeBus; /* 01h */ | 655 | U8 VolumeBus; /* 01h */ |
644 | U8 ResyncComplete; /* 02h */ | 656 | U8 ResyncComplete; /* 02h */ |
645 | U8 Reserved1; /* 03h */ | 657 | U8 Reserved1; /* 03h */ |
646 | U32 Reserved2; /* 04h */ | 658 | U32 Reserved2; /* 04h */ |
647 | } MPI_EVENT_DATA_IR_RESYNC_UPDATE, | 659 | } MPI_EVENT_DATA_IR_RESYNC_UPDATE, |
648 | MPI_POINTER PTR_MPI_EVENT_DATA_IR_RESYNC_UPDATE, | 660 | MPI_POINTER PTR_MPI_EVENT_DATA_IR_RESYNC_UPDATE, |
649 | MpiEventDataIrResyncUpdate_t, MPI_POINTER pMpiEventDataIrResyncUpdate_t; | 661 | MpiEventDataIrResyncUpdate_t, MPI_POINTER pMpiEventDataIrResyncUpdate_t; |
650 | 662 | ||
651 | /* MPI IR2 Event data */ | 663 | /* MPI IR2 Event data */ |
652 | 664 | ||
653 | /* MPI_LD_STATE or MPI_PD_STATE */ | 665 | /* MPI_LD_STATE or MPI_PD_STATE */ |
654 | typedef struct _IR2_STATE_CHANGED | 666 | typedef struct _IR2_STATE_CHANGED |
655 | { | 667 | { |
656 | U16 PreviousState; /* 00h */ | 668 | U16 PreviousState; /* 00h */ |
657 | U16 NewState; /* 02h */ | 669 | U16 NewState; /* 02h */ |
658 | } IR2_STATE_CHANGED, MPI_POINTER PTR_IR2_STATE_CHANGED; | 670 | } IR2_STATE_CHANGED, MPI_POINTER PTR_IR2_STATE_CHANGED; |
659 | 671 | ||
660 | typedef struct _IR2_PD_INFO | 672 | typedef struct _IR2_PD_INFO |
661 | { | 673 | { |
662 | U16 DeviceHandle; /* 00h */ | 674 | U16 DeviceHandle; /* 00h */ |
663 | U8 TruncEnclosureHandle; /* 02h */ | 675 | U8 TruncEnclosureHandle; /* 02h */ |
664 | U8 TruncatedSlot; /* 03h */ | 676 | U8 TruncatedSlot; /* 03h */ |
665 | } IR2_PD_INFO, MPI_POINTER PTR_IR2_PD_INFO; | 677 | } IR2_PD_INFO, MPI_POINTER PTR_IR2_PD_INFO; |
666 | 678 | ||
667 | typedef union _MPI_IR2_RC_EVENT_DATA | 679 | typedef union _MPI_IR2_RC_EVENT_DATA |
668 | { | 680 | { |
669 | IR2_STATE_CHANGED StateChanged; | 681 | IR2_STATE_CHANGED StateChanged; |
670 | U32 Lba; | 682 | U32 Lba; |
671 | IR2_PD_INFO PdInfo; | 683 | IR2_PD_INFO PdInfo; |
672 | } MPI_IR2_RC_EVENT_DATA, MPI_POINTER PTR_MPI_IR2_RC_EVENT_DATA; | 684 | } MPI_IR2_RC_EVENT_DATA, MPI_POINTER PTR_MPI_IR2_RC_EVENT_DATA; |
673 | 685 | ||
674 | typedef struct _MPI_EVENT_DATA_IR2 | 686 | typedef struct _MPI_EVENT_DATA_IR2 |
675 | { | 687 | { |
676 | U8 TargetID; /* 00h */ | 688 | U8 TargetID; /* 00h */ |
677 | U8 Bus; /* 01h */ | 689 | U8 Bus; /* 01h */ |
678 | U8 ReasonCode; /* 02h */ | 690 | U8 ReasonCode; /* 02h */ |
679 | U8 PhysDiskNum; /* 03h */ | 691 | U8 PhysDiskNum; /* 03h */ |
680 | MPI_IR2_RC_EVENT_DATA IR2EventData; /* 04h */ | 692 | MPI_IR2_RC_EVENT_DATA IR2EventData; /* 04h */ |
681 | } MPI_EVENT_DATA_IR2, MPI_POINTER PTR_MPI_EVENT_DATA_IR2, | 693 | } MPI_EVENT_DATA_IR2, MPI_POINTER PTR_MPI_EVENT_DATA_IR2, |
682 | MpiEventDataIR2_t, MPI_POINTER pMpiEventDataIR2_t; | 694 | MpiEventDataIR2_t, MPI_POINTER pMpiEventDataIR2_t; |
683 | 695 | ||
684 | /* MPI IR2 Event data ReasonCode values */ | 696 | /* MPI IR2 Event data ReasonCode values */ |
685 | #define MPI_EVENT_IR2_RC_LD_STATE_CHANGED (0x01) | 697 | #define MPI_EVENT_IR2_RC_LD_STATE_CHANGED (0x01) |
686 | #define MPI_EVENT_IR2_RC_PD_STATE_CHANGED (0x02) | 698 | #define MPI_EVENT_IR2_RC_PD_STATE_CHANGED (0x02) |
687 | #define MPI_EVENT_IR2_RC_BAD_BLOCK_TABLE_FULL (0x03) | 699 | #define MPI_EVENT_IR2_RC_BAD_BLOCK_TABLE_FULL (0x03) |
688 | #define MPI_EVENT_IR2_RC_PD_INSERTED (0x04) | 700 | #define MPI_EVENT_IR2_RC_PD_INSERTED (0x04) |
689 | #define MPI_EVENT_IR2_RC_PD_REMOVED (0x05) | 701 | #define MPI_EVENT_IR2_RC_PD_REMOVED (0x05) |
690 | #define MPI_EVENT_IR2_RC_FOREIGN_CFG_DETECTED (0x06) | 702 | #define MPI_EVENT_IR2_RC_FOREIGN_CFG_DETECTED (0x06) |
691 | #define MPI_EVENT_IR2_RC_REBUILD_MEDIUM_ERROR (0x07) | 703 | #define MPI_EVENT_IR2_RC_REBUILD_MEDIUM_ERROR (0x07) |
692 | 704 | ||
693 | /* defines for logical disk states */ | 705 | /* defines for logical disk states */ |
694 | #define MPI_LD_STATE_OPTIMAL (0x00) | 706 | #define MPI_LD_STATE_OPTIMAL (0x00) |
695 | #define MPI_LD_STATE_DEGRADED (0x01) | 707 | #define MPI_LD_STATE_DEGRADED (0x01) |
696 | #define MPI_LD_STATE_FAILED (0x02) | 708 | #define MPI_LD_STATE_FAILED (0x02) |
697 | #define MPI_LD_STATE_MISSING (0x03) | 709 | #define MPI_LD_STATE_MISSING (0x03) |
698 | #define MPI_LD_STATE_OFFLINE (0x04) | 710 | #define MPI_LD_STATE_OFFLINE (0x04) |
699 | 711 | ||
700 | /* defines for physical disk states */ | 712 | /* defines for physical disk states */ |
701 | #define MPI_PD_STATE_ONLINE (0x00) | 713 | #define MPI_PD_STATE_ONLINE (0x00) |
702 | #define MPI_PD_STATE_MISSING (0x01) | 714 | #define MPI_PD_STATE_MISSING (0x01) |
703 | #define MPI_PD_STATE_NOT_COMPATIBLE (0x02) | 715 | #define MPI_PD_STATE_NOT_COMPATIBLE (0x02) |
704 | #define MPI_PD_STATE_FAILED (0x03) | 716 | #define MPI_PD_STATE_FAILED (0x03) |
705 | #define MPI_PD_STATE_INITIALIZING (0x04) | 717 | #define MPI_PD_STATE_INITIALIZING (0x04) |
706 | #define MPI_PD_STATE_OFFLINE_AT_HOST_REQUEST (0x05) | 718 | #define MPI_PD_STATE_OFFLINE_AT_HOST_REQUEST (0x05) |
707 | #define MPI_PD_STATE_FAILED_AT_HOST_REQUEST (0x06) | 719 | #define MPI_PD_STATE_FAILED_AT_HOST_REQUEST (0x06) |
708 | #define MPI_PD_STATE_OFFLINE_FOR_ANOTHER_REASON (0xFF) | 720 | #define MPI_PD_STATE_OFFLINE_FOR_ANOTHER_REASON (0xFF) |
709 | 721 | ||
710 | /* MPI Link Status Change Event data */ | 722 | /* MPI Link Status Change Event data */ |
711 | 723 | ||
712 | typedef struct _EVENT_DATA_LINK_STATUS | 724 | typedef struct _EVENT_DATA_LINK_STATUS |
713 | { | 725 | { |
714 | U8 State; /* 00h */ | 726 | U8 State; /* 00h */ |
715 | U8 Reserved; /* 01h */ | 727 | U8 Reserved; /* 01h */ |
716 | U16 Reserved1; /* 02h */ | 728 | U16 Reserved1; /* 02h */ |
717 | U8 Reserved2; /* 04h */ | 729 | U8 Reserved2; /* 04h */ |
718 | U8 Port; /* 05h */ | 730 | U8 Port; /* 05h */ |
719 | U16 Reserved3; /* 06h */ | 731 | U16 Reserved3; /* 06h */ |
720 | } EVENT_DATA_LINK_STATUS, MPI_POINTER PTR_EVENT_DATA_LINK_STATUS, | 732 | } EVENT_DATA_LINK_STATUS, MPI_POINTER PTR_EVENT_DATA_LINK_STATUS, |
721 | EventDataLinkStatus_t, MPI_POINTER pEventDataLinkStatus_t; | 733 | EventDataLinkStatus_t, MPI_POINTER pEventDataLinkStatus_t; |
722 | 734 | ||
723 | #define MPI_EVENT_LINK_STATUS_FAILURE (0x00000000) | 735 | #define MPI_EVENT_LINK_STATUS_FAILURE (0x00000000) |
724 | #define MPI_EVENT_LINK_STATUS_ACTIVE (0x00000001) | 736 | #define MPI_EVENT_LINK_STATUS_ACTIVE (0x00000001) |
725 | 737 | ||
726 | /* MPI Loop State Change Event data */ | 738 | /* MPI Loop State Change Event data */ |
727 | 739 | ||
728 | typedef struct _EVENT_DATA_LOOP_STATE | 740 | typedef struct _EVENT_DATA_LOOP_STATE |
729 | { | 741 | { |
730 | U8 Character4; /* 00h */ | 742 | U8 Character4; /* 00h */ |
731 | U8 Character3; /* 01h */ | 743 | U8 Character3; /* 01h */ |
732 | U8 Type; /* 02h */ | 744 | U8 Type; /* 02h */ |
733 | U8 Reserved; /* 03h */ | 745 | U8 Reserved; /* 03h */ |
734 | U8 Reserved1; /* 04h */ | 746 | U8 Reserved1; /* 04h */ |
735 | U8 Port; /* 05h */ | 747 | U8 Port; /* 05h */ |
736 | U16 Reserved2; /* 06h */ | 748 | U16 Reserved2; /* 06h */ |
737 | } EVENT_DATA_LOOP_STATE, MPI_POINTER PTR_EVENT_DATA_LOOP_STATE, | 749 | } EVENT_DATA_LOOP_STATE, MPI_POINTER PTR_EVENT_DATA_LOOP_STATE, |
738 | EventDataLoopState_t, MPI_POINTER pEventDataLoopState_t; | 750 | EventDataLoopState_t, MPI_POINTER pEventDataLoopState_t; |
739 | 751 | ||
740 | #define MPI_EVENT_LOOP_STATE_CHANGE_LIP (0x0001) | 752 | #define MPI_EVENT_LOOP_STATE_CHANGE_LIP (0x0001) |
741 | #define MPI_EVENT_LOOP_STATE_CHANGE_LPE (0x0002) | 753 | #define MPI_EVENT_LOOP_STATE_CHANGE_LPE (0x0002) |
742 | #define MPI_EVENT_LOOP_STATE_CHANGE_LPB (0x0003) | 754 | #define MPI_EVENT_LOOP_STATE_CHANGE_LPB (0x0003) |
743 | 755 | ||
744 | /* MPI LOGOUT Event data */ | 756 | /* MPI LOGOUT Event data */ |
745 | 757 | ||
746 | typedef struct _EVENT_DATA_LOGOUT | 758 | typedef struct _EVENT_DATA_LOGOUT |
747 | { | 759 | { |
748 | U32 NPortID; /* 00h */ | 760 | U32 NPortID; /* 00h */ |
749 | U8 AliasIndex; /* 04h */ | 761 | U8 AliasIndex; /* 04h */ |
750 | U8 Port; /* 05h */ | 762 | U8 Port; /* 05h */ |
751 | U16 Reserved1; /* 06h */ | 763 | U16 Reserved1; /* 06h */ |
752 | } EVENT_DATA_LOGOUT, MPI_POINTER PTR_EVENT_DATA_LOGOUT, | 764 | } EVENT_DATA_LOGOUT, MPI_POINTER PTR_EVENT_DATA_LOGOUT, |
753 | EventDataLogout_t, MPI_POINTER pEventDataLogout_t; | 765 | EventDataLogout_t, MPI_POINTER pEventDataLogout_t; |
754 | 766 | ||
755 | #define MPI_EVENT_LOGOUT_ALL_ALIASES (0xFF) | 767 | #define MPI_EVENT_LOGOUT_ALL_ALIASES (0xFF) |
756 | 768 | ||
757 | /* SAS SES Event data */ | 769 | /* SAS SES Event data */ |
758 | 770 | ||
759 | typedef struct _EVENT_DATA_SAS_SES | 771 | typedef struct _EVENT_DATA_SAS_SES |
760 | { | 772 | { |
761 | U8 PhyNum; /* 00h */ | 773 | U8 PhyNum; /* 00h */ |
762 | U8 Port; /* 01h */ | 774 | U8 Port; /* 01h */ |
763 | U8 PortWidth; /* 02h */ | 775 | U8 PortWidth; /* 02h */ |
764 | U8 Reserved1; /* 04h */ | 776 | U8 Reserved1; /* 04h */ |
765 | } EVENT_DATA_SAS_SES, MPI_POINTER PTR_EVENT_DATA_SAS_SES, | 777 | } EVENT_DATA_SAS_SES, MPI_POINTER PTR_EVENT_DATA_SAS_SES, |
766 | MpiEventDataSasSes_t, MPI_POINTER pMpiEventDataSasSes_t; | 778 | MpiEventDataSasSes_t, MPI_POINTER pMpiEventDataSasSes_t; |
767 | 779 | ||
768 | /* SAS Broadcast Primitive Event data */ | 780 | /* SAS Broadcast Primitive Event data */ |
769 | 781 | ||
770 | typedef struct _EVENT_DATA_SAS_BROADCAST_PRIMITIVE | 782 | typedef struct _EVENT_DATA_SAS_BROADCAST_PRIMITIVE |
771 | { | 783 | { |
772 | U8 PhyNum; /* 00h */ | 784 | U8 PhyNum; /* 00h */ |
773 | U8 Port; /* 01h */ | 785 | U8 Port; /* 01h */ |
774 | U8 PortWidth; /* 02h */ | 786 | U8 PortWidth; /* 02h */ |
775 | U8 Primitive; /* 04h */ | 787 | U8 Primitive; /* 04h */ |
776 | } EVENT_DATA_SAS_BROADCAST_PRIMITIVE, | 788 | } EVENT_DATA_SAS_BROADCAST_PRIMITIVE, |
777 | MPI_POINTER PTR_EVENT_DATA_SAS_BROADCAST_PRIMITIVE, | 789 | MPI_POINTER PTR_EVENT_DATA_SAS_BROADCAST_PRIMITIVE, |
778 | MpiEventDataSasBroadcastPrimitive_t, | 790 | MpiEventDataSasBroadcastPrimitive_t, |
779 | MPI_POINTER pMpiEventDataSasBroadcastPrimitive_t; | 791 | MPI_POINTER pMpiEventDataSasBroadcastPrimitive_t; |
780 | 792 | ||
781 | #define MPI_EVENT_PRIMITIVE_CHANGE (0x01) | 793 | #define MPI_EVENT_PRIMITIVE_CHANGE (0x01) |
782 | #define MPI_EVENT_PRIMITIVE_EXPANDER (0x03) | 794 | #define MPI_EVENT_PRIMITIVE_EXPANDER (0x03) |
783 | #define MPI_EVENT_PRIMITIVE_RESERVED2 (0x04) | 795 | #define MPI_EVENT_PRIMITIVE_RESERVED2 (0x04) |
784 | #define MPI_EVENT_PRIMITIVE_RESERVED3 (0x05) | 796 | #define MPI_EVENT_PRIMITIVE_RESERVED3 (0x05) |
785 | #define MPI_EVENT_PRIMITIVE_RESERVED4 (0x06) | 797 | #define MPI_EVENT_PRIMITIVE_RESERVED4 (0x06) |
786 | #define MPI_EVENT_PRIMITIVE_CHANGE0_RESERVED (0x07) | 798 | #define MPI_EVENT_PRIMITIVE_CHANGE0_RESERVED (0x07) |
787 | #define MPI_EVENT_PRIMITIVE_CHANGE1_RESERVED (0x08) | 799 | #define MPI_EVENT_PRIMITIVE_CHANGE1_RESERVED (0x08) |
788 | 800 | ||
789 | /* SAS Phy Link Status Event data */ | 801 | /* SAS Phy Link Status Event data */ |
790 | 802 | ||
791 | typedef struct _EVENT_DATA_SAS_PHY_LINK_STATUS | 803 | typedef struct _EVENT_DATA_SAS_PHY_LINK_STATUS |
792 | { | 804 | { |
793 | U8 PhyNum; /* 00h */ | 805 | U8 PhyNum; /* 00h */ |
794 | U8 LinkRates; /* 01h */ | 806 | U8 LinkRates; /* 01h */ |
795 | U16 DevHandle; /* 02h */ | 807 | U16 DevHandle; /* 02h */ |
796 | U64 SASAddress; /* 04h */ | 808 | U64 SASAddress; /* 04h */ |
797 | } EVENT_DATA_SAS_PHY_LINK_STATUS, MPI_POINTER PTR_EVENT_DATA_SAS_PHY_LINK_STATUS, | 809 | } EVENT_DATA_SAS_PHY_LINK_STATUS, MPI_POINTER PTR_EVENT_DATA_SAS_PHY_LINK_STATUS, |
798 | MpiEventDataSasPhyLinkStatus_t, MPI_POINTER pMpiEventDataSasPhyLinkStatus_t; | 810 | MpiEventDataSasPhyLinkStatus_t, MPI_POINTER pMpiEventDataSasPhyLinkStatus_t; |
799 | 811 | ||
800 | /* defines for the LinkRates field of the SAS PHY Link Status event */ | 812 | /* defines for the LinkRates field of the SAS PHY Link Status event */ |
801 | #define MPI_EVENT_SAS_PLS_LR_CURRENT_MASK (0xF0) | 813 | #define MPI_EVENT_SAS_PLS_LR_CURRENT_MASK (0xF0) |
802 | #define MPI_EVENT_SAS_PLS_LR_CURRENT_SHIFT (4) | 814 | #define MPI_EVENT_SAS_PLS_LR_CURRENT_SHIFT (4) |
803 | #define MPI_EVENT_SAS_PLS_LR_PREVIOUS_MASK (0x0F) | 815 | #define MPI_EVENT_SAS_PLS_LR_PREVIOUS_MASK (0x0F) |
804 | #define MPI_EVENT_SAS_PLS_LR_PREVIOUS_SHIFT (0) | 816 | #define MPI_EVENT_SAS_PLS_LR_PREVIOUS_SHIFT (0) |
805 | #define MPI_EVENT_SAS_PLS_LR_RATE_UNKNOWN (0x00) | 817 | #define MPI_EVENT_SAS_PLS_LR_RATE_UNKNOWN (0x00) |
806 | #define MPI_EVENT_SAS_PLS_LR_RATE_PHY_DISABLED (0x01) | 818 | #define MPI_EVENT_SAS_PLS_LR_RATE_PHY_DISABLED (0x01) |
807 | #define MPI_EVENT_SAS_PLS_LR_RATE_FAILED_SPEED_NEGOTIATION (0x02) | 819 | #define MPI_EVENT_SAS_PLS_LR_RATE_FAILED_SPEED_NEGOTIATION (0x02) |
808 | #define MPI_EVENT_SAS_PLS_LR_RATE_SATA_OOB_COMPLETE (0x03) | 820 | #define MPI_EVENT_SAS_PLS_LR_RATE_SATA_OOB_COMPLETE (0x03) |
809 | #define MPI_EVENT_SAS_PLS_LR_RATE_1_5 (0x08) | 821 | #define MPI_EVENT_SAS_PLS_LR_RATE_1_5 (0x08) |
810 | #define MPI_EVENT_SAS_PLS_LR_RATE_3_0 (0x09) | 822 | #define MPI_EVENT_SAS_PLS_LR_RATE_3_0 (0x09) |
811 | 823 | ||
812 | /* SAS Discovery Event data */ | 824 | /* SAS Discovery Event data */ |
813 | 825 | ||
814 | typedef struct _EVENT_DATA_SAS_DISCOVERY | 826 | typedef struct _EVENT_DATA_SAS_DISCOVERY |
815 | { | 827 | { |
816 | U32 DiscoveryStatus; /* 00h */ | 828 | U32 DiscoveryStatus; /* 00h */ |
817 | U32 Reserved1; /* 04h */ | 829 | U32 Reserved1; /* 04h */ |
818 | } EVENT_DATA_SAS_DISCOVERY, MPI_POINTER PTR_EVENT_DATA_SAS_DISCOVERY, | 830 | } EVENT_DATA_SAS_DISCOVERY, MPI_POINTER PTR_EVENT_DATA_SAS_DISCOVERY, |
819 | EventDataSasDiscovery_t, MPI_POINTER pEventDataSasDiscovery_t; | 831 | EventDataSasDiscovery_t, MPI_POINTER pEventDataSasDiscovery_t; |
820 | 832 | ||
821 | #define MPI_EVENT_SAS_DSCVRY_COMPLETE (0x00000000) | 833 | #define MPI_EVENT_SAS_DSCVRY_COMPLETE (0x00000000) |
822 | #define MPI_EVENT_SAS_DSCVRY_IN_PROGRESS (0x00000001) | 834 | #define MPI_EVENT_SAS_DSCVRY_IN_PROGRESS (0x00000001) |
823 | #define MPI_EVENT_SAS_DSCVRY_PHY_BITS_MASK (0xFFFF0000) | 835 | #define MPI_EVENT_SAS_DSCVRY_PHY_BITS_MASK (0xFFFF0000) |
824 | #define MPI_EVENT_SAS_DSCVRY_PHY_BITS_SHIFT (16) | 836 | #define MPI_EVENT_SAS_DSCVRY_PHY_BITS_SHIFT (16) |
825 | 837 | ||
826 | /* SAS Discovery Errror Event data */ | 838 | /* SAS Discovery Errror Event data */ |
827 | 839 | ||
828 | typedef struct _EVENT_DATA_DISCOVERY_ERROR | 840 | typedef struct _EVENT_DATA_DISCOVERY_ERROR |
829 | { | 841 | { |
830 | U32 DiscoveryStatus; /* 00h */ | 842 | U32 DiscoveryStatus; /* 00h */ |
831 | U8 Port; /* 04h */ | 843 | U8 Port; /* 04h */ |
832 | U8 Reserved1; /* 05h */ | 844 | U8 Reserved1; /* 05h */ |
833 | U16 Reserved2; /* 06h */ | 845 | U16 Reserved2; /* 06h */ |
834 | } EVENT_DATA_DISCOVERY_ERROR, MPI_POINTER PTR_EVENT_DATA_DISCOVERY_ERROR, | 846 | } EVENT_DATA_DISCOVERY_ERROR, MPI_POINTER PTR_EVENT_DATA_DISCOVERY_ERROR, |
835 | EventDataDiscoveryError_t, MPI_POINTER pEventDataDiscoveryError_t; | 847 | EventDataDiscoveryError_t, MPI_POINTER pEventDataDiscoveryError_t; |
836 | 848 | ||
837 | #define MPI_EVENT_DSCVRY_ERR_DS_LOOP_DETECTED (0x00000001) | 849 | #define MPI_EVENT_DSCVRY_ERR_DS_LOOP_DETECTED (0x00000001) |
838 | #define MPI_EVENT_DSCVRY_ERR_DS_UNADDRESSABLE_DEVICE (0x00000002) | 850 | #define MPI_EVENT_DSCVRY_ERR_DS_UNADDRESSABLE_DEVICE (0x00000002) |
839 | #define MPI_EVENT_DSCVRY_ERR_DS_MULTIPLE_PORTS (0x00000004) | 851 | #define MPI_EVENT_DSCVRY_ERR_DS_MULTIPLE_PORTS (0x00000004) |
840 | #define MPI_EVENT_DSCVRY_ERR_DS_EXPANDER_ERR (0x00000008) | 852 | #define MPI_EVENT_DSCVRY_ERR_DS_EXPANDER_ERR (0x00000008) |
841 | #define MPI_EVENT_DSCVRY_ERR_DS_SMP_TIMEOUT (0x00000010) | 853 | #define MPI_EVENT_DSCVRY_ERR_DS_SMP_TIMEOUT (0x00000010) |
842 | #define MPI_EVENT_DSCVRY_ERR_DS_OUT_ROUTE_ENTRIES (0x00000020) | 854 | #define MPI_EVENT_DSCVRY_ERR_DS_OUT_ROUTE_ENTRIES (0x00000020) |
843 | #define MPI_EVENT_DSCVRY_ERR_DS_INDEX_NOT_EXIST (0x00000040) | 855 | #define MPI_EVENT_DSCVRY_ERR_DS_INDEX_NOT_EXIST (0x00000040) |
844 | #define MPI_EVENT_DSCVRY_ERR_DS_SMP_FUNCTION_FAILED (0x00000080) | 856 | #define MPI_EVENT_DSCVRY_ERR_DS_SMP_FUNCTION_FAILED (0x00000080) |
845 | #define MPI_EVENT_DSCVRY_ERR_DS_SMP_CRC_ERROR (0x00000100) | 857 | #define MPI_EVENT_DSCVRY_ERR_DS_SMP_CRC_ERROR (0x00000100) |
846 | #define MPI_EVENT_DSCVRY_ERR_DS_MULTPL_SUBTRACTIVE (0x00000200) | 858 | #define MPI_EVENT_DSCVRY_ERR_DS_MULTPL_SUBTRACTIVE (0x00000200) |
847 | #define MPI_EVENT_DSCVRY_ERR_DS_TABLE_TO_TABLE (0x00000400) | 859 | #define MPI_EVENT_DSCVRY_ERR_DS_TABLE_TO_TABLE (0x00000400) |
848 | #define MPI_EVENT_DSCVRY_ERR_DS_MULTPL_PATHS (0x00000800) | 860 | #define MPI_EVENT_DSCVRY_ERR_DS_MULTPL_PATHS (0x00000800) |
849 | #define MPI_EVENT_DSCVRY_ERR_DS_MAX_SATA_TARGETS (0x00001000) | 861 | #define MPI_EVENT_DSCVRY_ERR_DS_MAX_SATA_TARGETS (0x00001000) |
850 | 862 | ||
851 | /* SAS SMP Error Event data */ | 863 | /* SAS SMP Error Event data */ |
852 | 864 | ||
853 | typedef struct _EVENT_DATA_SAS_SMP_ERROR | 865 | typedef struct _EVENT_DATA_SAS_SMP_ERROR |
854 | { | 866 | { |
855 | U8 Status; /* 00h */ | 867 | U8 Status; /* 00h */ |
856 | U8 Port; /* 01h */ | 868 | U8 Port; /* 01h */ |
857 | U8 SMPFunctionResult; /* 02h */ | 869 | U8 SMPFunctionResult; /* 02h */ |
858 | U8 Reserved1; /* 03h */ | 870 | U8 Reserved1; /* 03h */ |
859 | U64 SASAddress; /* 04h */ | 871 | U64 SASAddress; /* 04h */ |
860 | } EVENT_DATA_SAS_SMP_ERROR, MPI_POINTER PTR_EVENT_DATA_SAS_SMP_ERROR, | 872 | } EVENT_DATA_SAS_SMP_ERROR, MPI_POINTER PTR_EVENT_DATA_SAS_SMP_ERROR, |
861 | MpiEventDataSasSmpError_t, MPI_POINTER pMpiEventDataSasSmpError_t; | 873 | MpiEventDataSasSmpError_t, MPI_POINTER pMpiEventDataSasSmpError_t; |
862 | 874 | ||
863 | /* defines for the Status field of the SAS SMP Error event */ | 875 | /* defines for the Status field of the SAS SMP Error event */ |
864 | #define MPI_EVENT_SAS_SMP_FUNCTION_RESULT_VALID (0x00) | 876 | #define MPI_EVENT_SAS_SMP_FUNCTION_RESULT_VALID (0x00) |
865 | #define MPI_EVENT_SAS_SMP_CRC_ERROR (0x01) | 877 | #define MPI_EVENT_SAS_SMP_CRC_ERROR (0x01) |
866 | #define MPI_EVENT_SAS_SMP_TIMEOUT (0x02) | 878 | #define MPI_EVENT_SAS_SMP_TIMEOUT (0x02) |
867 | #define MPI_EVENT_SAS_SMP_NO_DESTINATION (0x03) | 879 | #define MPI_EVENT_SAS_SMP_NO_DESTINATION (0x03) |
868 | #define MPI_EVENT_SAS_SMP_BAD_DESTINATION (0x04) | 880 | #define MPI_EVENT_SAS_SMP_BAD_DESTINATION (0x04) |
869 | 881 | ||
870 | /* SAS Initiator Device Status Change Event data */ | 882 | /* SAS Initiator Device Status Change Event data */ |
871 | 883 | ||
872 | typedef struct _EVENT_DATA_SAS_INIT_DEV_STATUS_CHANGE | 884 | typedef struct _EVENT_DATA_SAS_INIT_DEV_STATUS_CHANGE |
873 | { | 885 | { |
874 | U8 ReasonCode; /* 00h */ | 886 | U8 ReasonCode; /* 00h */ |
875 | U8 Port; /* 01h */ | 887 | U8 Port; /* 01h */ |
876 | U16 DevHandle; /* 02h */ | 888 | U16 DevHandle; /* 02h */ |
877 | U64 SASAddress; /* 04h */ | 889 | U64 SASAddress; /* 04h */ |
878 | } EVENT_DATA_SAS_INIT_DEV_STATUS_CHANGE, | 890 | } EVENT_DATA_SAS_INIT_DEV_STATUS_CHANGE, |
879 | MPI_POINTER PTR_EVENT_DATA_SAS_INIT_DEV_STATUS_CHANGE, | 891 | MPI_POINTER PTR_EVENT_DATA_SAS_INIT_DEV_STATUS_CHANGE, |
880 | MpiEventDataSasInitDevStatusChange_t, | 892 | MpiEventDataSasInitDevStatusChange_t, |
881 | MPI_POINTER pMpiEventDataSasInitDevStatusChange_t; | 893 | MPI_POINTER pMpiEventDataSasInitDevStatusChange_t; |
882 | 894 | ||
883 | /* defines for the ReasonCode field of the SAS Initiator Device Status Change event */ | 895 | /* defines for the ReasonCode field of the SAS Initiator Device Status Change event */ |
884 | #define MPI_EVENT_SAS_INIT_RC_ADDED (0x01) | 896 | #define MPI_EVENT_SAS_INIT_RC_ADDED (0x01) |
885 | 897 | ||
886 | /* SAS Initiator Device Table Overflow Event data */ | 898 | /* SAS Initiator Device Table Overflow Event data */ |
887 | 899 | ||
888 | typedef struct _EVENT_DATA_SAS_INIT_TABLE_OVERFLOW | 900 | typedef struct _EVENT_DATA_SAS_INIT_TABLE_OVERFLOW |
889 | { | 901 | { |
890 | U8 MaxInit; /* 00h */ | 902 | U8 MaxInit; /* 00h */ |
891 | U8 CurrentInit; /* 01h */ | 903 | U8 CurrentInit; /* 01h */ |
892 | U16 Reserved1; /* 02h */ | 904 | U16 Reserved1; /* 02h */ |
893 | } EVENT_DATA_SAS_INIT_TABLE_OVERFLOW, | 905 | } EVENT_DATA_SAS_INIT_TABLE_OVERFLOW, |
894 | MPI_POINTER PTR_EVENT_DATA_SAS_INIT_TABLE_OVERFLOW, | 906 | MPI_POINTER PTR_EVENT_DATA_SAS_INIT_TABLE_OVERFLOW, |
895 | MpiEventDataSasInitTableOverflow_t, | 907 | MpiEventDataSasInitTableOverflow_t, |
896 | MPI_POINTER pMpiEventDataSasInitTableOverflow_t; | 908 | MPI_POINTER pMpiEventDataSasInitTableOverflow_t; |
897 | 909 | ||
910 | /* SAS Expander Status Change Event data */ | ||
898 | 911 | ||
912 | typedef struct _EVENT_DATA_SAS_EXPANDER_STATUS_CHANGE | ||
913 | { | ||
914 | U8 ReasonCode; /* 00h */ | ||
915 | U8 Reserved1; /* 01h */ | ||
916 | U16 Reserved2; /* 02h */ | ||
917 | U8 PhysicalPort; /* 04h */ | ||
918 | U8 Reserved3; /* 05h */ | ||
919 | U16 EnclosureHandle; /* 06h */ | ||
920 | U64 SASAddress; /* 08h */ | ||
921 | U32 DiscoveryStatus; /* 10h */ | ||
922 | U16 DevHandle; /* 14h */ | ||
923 | U16 ParentDevHandle; /* 16h */ | ||
924 | U16 ExpanderChangeCount; /* 18h */ | ||
925 | U16 ExpanderRouteIndexes; /* 1Ah */ | ||
926 | U8 NumPhys; /* 1Ch */ | ||
927 | U8 SASLevel; /* 1Dh */ | ||
928 | U8 Flags; /* 1Eh */ | ||
929 | U8 Reserved4; /* 1Fh */ | ||
930 | } EVENT_DATA_SAS_EXPANDER_STATUS_CHANGE, | ||
931 | MPI_POINTER PTR_EVENT_DATA_SAS_EXPANDER_STATUS_CHANGE, | ||
932 | MpiEventDataSasExpanderStatusChange_t, | ||
933 | MPI_POINTER pMpiEventDataSasExpanderStatusChange_t; | ||
934 | |||
935 | /* values for ReasonCode field of SAS Expander Status Change Event data */ | ||
936 | #define MPI_EVENT_SAS_EXP_RC_ADDED (0x00) | ||
937 | #define MPI_EVENT_SAS_EXP_RC_NOT_RESPONDING (0x01) | ||
938 | |||
939 | /* values for DiscoveryStatus field of SAS Expander Status Change Event data */ | ||
940 | #define MPI_EVENT_SAS_EXP_DS_LOOP_DETECTED (0x00000001) | ||
941 | #define MPI_EVENT_SAS_EXP_DS_UNADDRESSABLE_DEVICE (0x00000002) | ||
942 | #define MPI_EVENT_SAS_EXP_DS_MULTIPLE_PORTS (0x00000004) | ||
943 | #define MPI_EVENT_SAS_EXP_DS_EXPANDER_ERR (0x00000008) | ||
944 | #define MPI_EVENT_SAS_EXP_DS_SMP_TIMEOUT (0x00000010) | ||
945 | #define MPI_EVENT_SAS_EXP_DS_OUT_ROUTE_ENTRIES (0x00000020) | ||
946 | #define MPI_EVENT_SAS_EXP_DS_INDEX_NOT_EXIST (0x00000040) | ||
947 | #define MPI_EVENT_SAS_EXP_DS_SMP_FUNCTION_FAILED (0x00000080) | ||
948 | #define MPI_EVENT_SAS_EXP_DS_SMP_CRC_ERROR (0x00000100) | ||
949 | #define MPI_EVENT_SAS_EXP_DS_SUBTRACTIVE_LINK (0x00000200) | ||
950 | #define MPI_EVENT_SAS_EXP_DS_TABLE_LINK (0x00000400) | ||
951 | #define MPI_EVENT_SAS_EXP_DS_UNSUPPORTED_DEVICE (0x00000800) | ||
952 | |||
953 | /* values for Flags field of SAS Expander Status Change Event data */ | ||
954 | #define MPI_EVENT_SAS_EXP_FLAGS_ROUTE_TABLE_CONFIG (0x02) | ||
955 | #define MPI_EVENT_SAS_EXP_FLAGS_CONFIG_IN_PROGRESS (0x01) | ||
956 | |||
957 | |||
958 | |||
899 | /***************************************************************************** | 959 | /***************************************************************************** |
900 | * | 960 | * |
901 | * F i r m w a r e L o a d M e s s a g e s | 961 | * F i r m w a r e L o a d M e s s a g e s |
902 | * | 962 | * |
903 | *****************************************************************************/ | 963 | *****************************************************************************/ |
904 | 964 | ||
905 | /****************************************************************************/ | 965 | /****************************************************************************/ |
906 | /* Firmware Download message and associated structures */ | 966 | /* Firmware Download message and associated structures */ |
907 | /****************************************************************************/ | 967 | /****************************************************************************/ |
908 | 968 | ||
909 | typedef struct _MSG_FW_DOWNLOAD | 969 | typedef struct _MSG_FW_DOWNLOAD |
910 | { | 970 | { |
911 | U8 ImageType; /* 00h */ | 971 | U8 ImageType; /* 00h */ |
912 | U8 Reserved; /* 01h */ | 972 | U8 Reserved; /* 01h */ |
913 | U8 ChainOffset; /* 02h */ | 973 | U8 ChainOffset; /* 02h */ |
914 | U8 Function; /* 03h */ | 974 | U8 Function; /* 03h */ |
915 | U8 Reserved1[3]; /* 04h */ | 975 | U8 Reserved1[3]; /* 04h */ |
916 | U8 MsgFlags; /* 07h */ | 976 | U8 MsgFlags; /* 07h */ |
917 | U32 MsgContext; /* 08h */ | 977 | U32 MsgContext; /* 08h */ |
918 | SGE_MPI_UNION SGL; /* 0Ch */ | 978 | SGE_MPI_UNION SGL; /* 0Ch */ |
919 | } MSG_FW_DOWNLOAD, MPI_POINTER PTR_MSG_FW_DOWNLOAD, | 979 | } MSG_FW_DOWNLOAD, MPI_POINTER PTR_MSG_FW_DOWNLOAD, |
920 | FWDownload_t, MPI_POINTER pFWDownload_t; | 980 | FWDownload_t, MPI_POINTER pFWDownload_t; |
921 | 981 | ||
922 | #define MPI_FW_DOWNLOAD_MSGFLGS_LAST_SEGMENT (0x01) | 982 | #define MPI_FW_DOWNLOAD_MSGFLGS_LAST_SEGMENT (0x01) |
923 | 983 | ||
924 | #define MPI_FW_DOWNLOAD_ITYPE_RESERVED (0x00) | 984 | #define MPI_FW_DOWNLOAD_ITYPE_RESERVED (0x00) |
925 | #define MPI_FW_DOWNLOAD_ITYPE_FW (0x01) | 985 | #define MPI_FW_DOWNLOAD_ITYPE_FW (0x01) |
926 | #define MPI_FW_DOWNLOAD_ITYPE_BIOS (0x02) | 986 | #define MPI_FW_DOWNLOAD_ITYPE_BIOS (0x02) |
927 | #define MPI_FW_DOWNLOAD_ITYPE_NVDATA (0x03) | 987 | #define MPI_FW_DOWNLOAD_ITYPE_NVDATA (0x03) |
928 | #define MPI_FW_DOWNLOAD_ITYPE_BOOTLOADER (0x04) | 988 | #define MPI_FW_DOWNLOAD_ITYPE_BOOTLOADER (0x04) |
989 | #define MPI_FW_DOWNLOAD_ITYPE_MANUFACTURING (0x06) | ||
990 | #define MPI_FW_DOWNLOAD_ITYPE_CONFIG_1 (0x07) | ||
991 | #define MPI_FW_DOWNLOAD_ITYPE_CONFIG_2 (0x08) | ||
992 | #define MPI_FW_DOWNLOAD_ITYPE_MEGARAID (0x09) | ||
929 | 993 | ||
930 | 994 | ||
931 | typedef struct _FWDownloadTCSGE | 995 | typedef struct _FWDownloadTCSGE |
932 | { | 996 | { |
933 | U8 Reserved; /* 00h */ | 997 | U8 Reserved; /* 00h */ |
934 | U8 ContextSize; /* 01h */ | 998 | U8 ContextSize; /* 01h */ |
935 | U8 DetailsLength; /* 02h */ | 999 | U8 DetailsLength; /* 02h */ |
936 | U8 Flags; /* 03h */ | 1000 | U8 Flags; /* 03h */ |
937 | U32 Reserved_0100_Checksum; /* 04h */ /* obsolete Checksum */ | 1001 | U32 Reserved_0100_Checksum; /* 04h */ /* obsolete Checksum */ |
938 | U32 ImageOffset; /* 08h */ | 1002 | U32 ImageOffset; /* 08h */ |
939 | U32 ImageSize; /* 0Ch */ | 1003 | U32 ImageSize; /* 0Ch */ |
940 | } FW_DOWNLOAD_TCSGE, MPI_POINTER PTR_FW_DOWNLOAD_TCSGE, | 1004 | } FW_DOWNLOAD_TCSGE, MPI_POINTER PTR_FW_DOWNLOAD_TCSGE, |
941 | FWDownloadTCSGE_t, MPI_POINTER pFWDownloadTCSGE_t; | 1005 | FWDownloadTCSGE_t, MPI_POINTER pFWDownloadTCSGE_t; |
942 | 1006 | ||
943 | /* Firmware Download reply */ | 1007 | /* Firmware Download reply */ |
944 | typedef struct _MSG_FW_DOWNLOAD_REPLY | 1008 | typedef struct _MSG_FW_DOWNLOAD_REPLY |
945 | { | 1009 | { |
946 | U8 ImageType; /* 00h */ | 1010 | U8 ImageType; /* 00h */ |
947 | U8 Reserved; /* 01h */ | 1011 | U8 Reserved; /* 01h */ |
948 | U8 MsgLength; /* 02h */ | 1012 | U8 MsgLength; /* 02h */ |
949 | U8 Function; /* 03h */ | 1013 | U8 Function; /* 03h */ |
950 | U8 Reserved1[3]; /* 04h */ | 1014 | U8 Reserved1[3]; /* 04h */ |
951 | U8 MsgFlags; /* 07h */ | 1015 | U8 MsgFlags; /* 07h */ |
952 | U32 MsgContext; /* 08h */ | 1016 | U32 MsgContext; /* 08h */ |
953 | U16 Reserved2; /* 0Ch */ | 1017 | U16 Reserved2; /* 0Ch */ |
954 | U16 IOCStatus; /* 0Eh */ | 1018 | U16 IOCStatus; /* 0Eh */ |
955 | U32 IOCLogInfo; /* 10h */ | 1019 | U32 IOCLogInfo; /* 10h */ |
956 | } MSG_FW_DOWNLOAD_REPLY, MPI_POINTER PTR_MSG_FW_DOWNLOAD_REPLY, | 1020 | } MSG_FW_DOWNLOAD_REPLY, MPI_POINTER PTR_MSG_FW_DOWNLOAD_REPLY, |
957 | FWDownloadReply_t, MPI_POINTER pFWDownloadReply_t; | 1021 | FWDownloadReply_t, MPI_POINTER pFWDownloadReply_t; |
958 | 1022 | ||
959 | 1023 | ||
960 | /****************************************************************************/ | 1024 | /****************************************************************************/ |
961 | /* Firmware Upload message and associated structures */ | 1025 | /* Firmware Upload message and associated structures */ |
962 | /****************************************************************************/ | 1026 | /****************************************************************************/ |
963 | 1027 | ||
964 | typedef struct _MSG_FW_UPLOAD | 1028 | typedef struct _MSG_FW_UPLOAD |
965 | { | 1029 | { |
966 | U8 ImageType; /* 00h */ | 1030 | U8 ImageType; /* 00h */ |
967 | U8 Reserved; /* 01h */ | 1031 | U8 Reserved; /* 01h */ |
968 | U8 ChainOffset; /* 02h */ | 1032 | U8 ChainOffset; /* 02h */ |
969 | U8 Function; /* 03h */ | 1033 | U8 Function; /* 03h */ |
970 | U8 Reserved1[3]; /* 04h */ | 1034 | U8 Reserved1[3]; /* 04h */ |
971 | U8 MsgFlags; /* 07h */ | 1035 | U8 MsgFlags; /* 07h */ |
972 | U32 MsgContext; /* 08h */ | 1036 | U32 MsgContext; /* 08h */ |
973 | SGE_MPI_UNION SGL; /* 0Ch */ | 1037 | SGE_MPI_UNION SGL; /* 0Ch */ |
974 | } MSG_FW_UPLOAD, MPI_POINTER PTR_MSG_FW_UPLOAD, | 1038 | } MSG_FW_UPLOAD, MPI_POINTER PTR_MSG_FW_UPLOAD, |
975 | FWUpload_t, MPI_POINTER pFWUpload_t; | 1039 | FWUpload_t, MPI_POINTER pFWUpload_t; |
976 | 1040 | ||
977 | #define MPI_FW_UPLOAD_ITYPE_FW_IOC_MEM (0x00) | 1041 | #define MPI_FW_UPLOAD_ITYPE_FW_IOC_MEM (0x00) |
978 | #define MPI_FW_UPLOAD_ITYPE_FW_FLASH (0x01) | 1042 | #define MPI_FW_UPLOAD_ITYPE_FW_FLASH (0x01) |
979 | #define MPI_FW_UPLOAD_ITYPE_BIOS_FLASH (0x02) | 1043 | #define MPI_FW_UPLOAD_ITYPE_BIOS_FLASH (0x02) |
980 | #define MPI_FW_UPLOAD_ITYPE_NVDATA (0x03) | 1044 | #define MPI_FW_UPLOAD_ITYPE_NVDATA (0x03) |
981 | #define MPI_FW_UPLOAD_ITYPE_BOOTLOADER (0x04) | 1045 | #define MPI_FW_UPLOAD_ITYPE_BOOTLOADER (0x04) |
982 | #define MPI_FW_UPLOAD_ITYPE_FW_BACKUP (0x05) | 1046 | #define MPI_FW_UPLOAD_ITYPE_FW_BACKUP (0x05) |
1047 | #define MPI_FW_UPLOAD_ITYPE_MANUFACTURING (0x06) | ||
1048 | #define MPI_FW_UPLOAD_ITYPE_CONFIG_1 (0x07) | ||
1049 | #define MPI_FW_UPLOAD_ITYPE_CONFIG_2 (0x08) | ||
1050 | #define MPI_FW_UPLOAD_ITYPE_MEGARAID (0x09) | ||
1051 | #define MPI_FW_UPLOAD_ITYPE_COMPLETE (0x0A) | ||
983 | 1052 | ||
984 | typedef struct _FWUploadTCSGE | 1053 | typedef struct _FWUploadTCSGE |
985 | { | 1054 | { |
986 | U8 Reserved; /* 00h */ | 1055 | U8 Reserved; /* 00h */ |
987 | U8 ContextSize; /* 01h */ | 1056 | U8 ContextSize; /* 01h */ |
988 | U8 DetailsLength; /* 02h */ | 1057 | U8 DetailsLength; /* 02h */ |
989 | U8 Flags; /* 03h */ | 1058 | U8 Flags; /* 03h */ |
990 | U32 Reserved1; /* 04h */ | 1059 | U32 Reserved1; /* 04h */ |
991 | U32 ImageOffset; /* 08h */ | 1060 | U32 ImageOffset; /* 08h */ |
992 | U32 ImageSize; /* 0Ch */ | 1061 | U32 ImageSize; /* 0Ch */ |
993 | } FW_UPLOAD_TCSGE, MPI_POINTER PTR_FW_UPLOAD_TCSGE, | 1062 | } FW_UPLOAD_TCSGE, MPI_POINTER PTR_FW_UPLOAD_TCSGE, |
994 | FWUploadTCSGE_t, MPI_POINTER pFWUploadTCSGE_t; | 1063 | FWUploadTCSGE_t, MPI_POINTER pFWUploadTCSGE_t; |
995 | 1064 | ||
996 | /* Firmware Upload reply */ | 1065 | /* Firmware Upload reply */ |
997 | typedef struct _MSG_FW_UPLOAD_REPLY | 1066 | typedef struct _MSG_FW_UPLOAD_REPLY |
998 | { | 1067 | { |
999 | U8 ImageType; /* 00h */ | 1068 | U8 ImageType; /* 00h */ |
1000 | U8 Reserved; /* 01h */ | 1069 | U8 Reserved; /* 01h */ |
1001 | U8 MsgLength; /* 02h */ | 1070 | U8 MsgLength; /* 02h */ |
1002 | U8 Function; /* 03h */ | 1071 | U8 Function; /* 03h */ |
1003 | U8 Reserved1[3]; /* 04h */ | 1072 | U8 Reserved1[3]; /* 04h */ |
1004 | U8 MsgFlags; /* 07h */ | 1073 | U8 MsgFlags; /* 07h */ |
1005 | U32 MsgContext; /* 08h */ | 1074 | U32 MsgContext; /* 08h */ |
1006 | U16 Reserved2; /* 0Ch */ | 1075 | U16 Reserved2; /* 0Ch */ |
1007 | U16 IOCStatus; /* 0Eh */ | 1076 | U16 IOCStatus; /* 0Eh */ |
1008 | U32 IOCLogInfo; /* 10h */ | 1077 | U32 IOCLogInfo; /* 10h */ |
1009 | U32 ActualImageSize; /* 14h */ | 1078 | U32 ActualImageSize; /* 14h */ |
1010 | } MSG_FW_UPLOAD_REPLY, MPI_POINTER PTR_MSG_FW_UPLOAD_REPLY, | 1079 | } MSG_FW_UPLOAD_REPLY, MPI_POINTER PTR_MSG_FW_UPLOAD_REPLY, |
1011 | FWUploadReply_t, MPI_POINTER pFWUploadReply_t; | 1080 | FWUploadReply_t, MPI_POINTER pFWUploadReply_t; |
1012 | 1081 | ||
1013 | 1082 | ||
1014 | typedef struct _MPI_FW_HEADER | 1083 | typedef struct _MPI_FW_HEADER |
1015 | { | 1084 | { |
1016 | U32 ArmBranchInstruction0; /* 00h */ | 1085 | U32 ArmBranchInstruction0; /* 00h */ |
1017 | U32 Signature0; /* 04h */ | 1086 | U32 Signature0; /* 04h */ |
1018 | U32 Signature1; /* 08h */ | 1087 | U32 Signature1; /* 08h */ |
1019 | U32 Signature2; /* 0Ch */ | 1088 | U32 Signature2; /* 0Ch */ |
1020 | U32 ArmBranchInstruction1; /* 10h */ | 1089 | U32 ArmBranchInstruction1; /* 10h */ |
1021 | U32 ArmBranchInstruction2; /* 14h */ | 1090 | U32 ArmBranchInstruction2; /* 14h */ |
1022 | U32 Reserved; /* 18h */ | 1091 | U32 Reserved; /* 18h */ |
1023 | U32 Checksum; /* 1Ch */ | 1092 | U32 Checksum; /* 1Ch */ |
1024 | U16 VendorId; /* 20h */ | 1093 | U16 VendorId; /* 20h */ |
1025 | U16 ProductId; /* 22h */ | 1094 | U16 ProductId; /* 22h */ |
1026 | MPI_FW_VERSION FWVersion; /* 24h */ | 1095 | MPI_FW_VERSION FWVersion; /* 24h */ |
1027 | U32 SeqCodeVersion; /* 28h */ | 1096 | U32 SeqCodeVersion; /* 28h */ |
1028 | U32 ImageSize; /* 2Ch */ | 1097 | U32 ImageSize; /* 2Ch */ |
1029 | U32 NextImageHeaderOffset; /* 30h */ | 1098 | U32 NextImageHeaderOffset; /* 30h */ |
1030 | U32 LoadStartAddress; /* 34h */ | 1099 | U32 LoadStartAddress; /* 34h */ |
1031 | U32 IopResetVectorValue; /* 38h */ | 1100 | U32 IopResetVectorValue; /* 38h */ |
1032 | U32 IopResetRegAddr; /* 3Ch */ | 1101 | U32 IopResetRegAddr; /* 3Ch */ |
1033 | U32 VersionNameWhat; /* 40h */ | 1102 | U32 VersionNameWhat; /* 40h */ |
1034 | U8 VersionName[32]; /* 44h */ | 1103 | U8 VersionName[32]; /* 44h */ |
1035 | U32 VendorNameWhat; /* 64h */ | 1104 | U32 VendorNameWhat; /* 64h */ |
1036 | U8 VendorName[32]; /* 68h */ | 1105 | U8 VendorName[32]; /* 68h */ |
1037 | } MPI_FW_HEADER, MPI_POINTER PTR_MPI_FW_HEADER, | 1106 | } MPI_FW_HEADER, MPI_POINTER PTR_MPI_FW_HEADER, |
1038 | MpiFwHeader_t, MPI_POINTER pMpiFwHeader_t; | 1107 | MpiFwHeader_t, MPI_POINTER pMpiFwHeader_t; |
1039 | 1108 | ||
1040 | #define MPI_FW_HEADER_WHAT_SIGNATURE (0x29232840) | 1109 | #define MPI_FW_HEADER_WHAT_SIGNATURE (0x29232840) |
1041 | 1110 | ||
1042 | /* defines for using the ProductId field */ | 1111 | /* defines for using the ProductId field */ |
1043 | #define MPI_FW_HEADER_PID_TYPE_MASK (0xF000) | 1112 | #define MPI_FW_HEADER_PID_TYPE_MASK (0xF000) |
1044 | #define MPI_FW_HEADER_PID_TYPE_SCSI (0x0000) | 1113 | #define MPI_FW_HEADER_PID_TYPE_SCSI (0x0000) |
1045 | #define MPI_FW_HEADER_PID_TYPE_FC (0x1000) | 1114 | #define MPI_FW_HEADER_PID_TYPE_FC (0x1000) |
1046 | #define MPI_FW_HEADER_PID_TYPE_SAS (0x2000) | 1115 | #define MPI_FW_HEADER_PID_TYPE_SAS (0x2000) |
1047 | 1116 | ||
1048 | #define MPI_FW_HEADER_SIGNATURE_0 (0x5AEAA55A) | 1117 | #define MPI_FW_HEADER_SIGNATURE_0 (0x5AEAA55A) |
1049 | #define MPI_FW_HEADER_SIGNATURE_1 (0xA55AEAA5) | 1118 | #define MPI_FW_HEADER_SIGNATURE_1 (0xA55AEAA5) |
1050 | #define MPI_FW_HEADER_SIGNATURE_2 (0x5AA55AEA) | 1119 | #define MPI_FW_HEADER_SIGNATURE_2 (0x5AA55AEA) |
1051 | 1120 | ||
1052 | #define MPI_FW_HEADER_PID_PROD_MASK (0x0F00) | 1121 | #define MPI_FW_HEADER_PID_PROD_MASK (0x0F00) |
1053 | #define MPI_FW_HEADER_PID_PROD_INITIATOR_SCSI (0x0100) | 1122 | #define MPI_FW_HEADER_PID_PROD_INITIATOR_SCSI (0x0100) |
1054 | #define MPI_FW_HEADER_PID_PROD_TARGET_INITIATOR_SCSI (0x0200) | 1123 | #define MPI_FW_HEADER_PID_PROD_TARGET_INITIATOR_SCSI (0x0200) |
1055 | #define MPI_FW_HEADER_PID_PROD_TARGET_SCSI (0x0300) | 1124 | #define MPI_FW_HEADER_PID_PROD_TARGET_SCSI (0x0300) |
1056 | #define MPI_FW_HEADER_PID_PROD_IM_SCSI (0x0400) | 1125 | #define MPI_FW_HEADER_PID_PROD_IM_SCSI (0x0400) |
1057 | #define MPI_FW_HEADER_PID_PROD_IS_SCSI (0x0500) | 1126 | #define MPI_FW_HEADER_PID_PROD_IS_SCSI (0x0500) |
1058 | #define MPI_FW_HEADER_PID_PROD_CTX_SCSI (0x0600) | 1127 | #define MPI_FW_HEADER_PID_PROD_CTX_SCSI (0x0600) |
1059 | #define MPI_FW_HEADER_PID_PROD_IR_SCSI (0x0700) | 1128 | #define MPI_FW_HEADER_PID_PROD_IR_SCSI (0x0700) |
1060 | 1129 | ||
1061 | #define MPI_FW_HEADER_PID_FAMILY_MASK (0x00FF) | 1130 | #define MPI_FW_HEADER_PID_FAMILY_MASK (0x00FF) |
1062 | /* SCSI */ | 1131 | /* SCSI */ |
1063 | #define MPI_FW_HEADER_PID_FAMILY_1030A0_SCSI (0x0001) | 1132 | #define MPI_FW_HEADER_PID_FAMILY_1030A0_SCSI (0x0001) |
1064 | #define MPI_FW_HEADER_PID_FAMILY_1030B0_SCSI (0x0002) | 1133 | #define MPI_FW_HEADER_PID_FAMILY_1030B0_SCSI (0x0002) |
1065 | #define MPI_FW_HEADER_PID_FAMILY_1030B1_SCSI (0x0003) | 1134 | #define MPI_FW_HEADER_PID_FAMILY_1030B1_SCSI (0x0003) |
1066 | #define MPI_FW_HEADER_PID_FAMILY_1030C0_SCSI (0x0004) | 1135 | #define MPI_FW_HEADER_PID_FAMILY_1030C0_SCSI (0x0004) |
1067 | #define MPI_FW_HEADER_PID_FAMILY_1020A0_SCSI (0x0005) | 1136 | #define MPI_FW_HEADER_PID_FAMILY_1020A0_SCSI (0x0005) |
1068 | #define MPI_FW_HEADER_PID_FAMILY_1020B0_SCSI (0x0006) | 1137 | #define MPI_FW_HEADER_PID_FAMILY_1020B0_SCSI (0x0006) |
1069 | #define MPI_FW_HEADER_PID_FAMILY_1020B1_SCSI (0x0007) | 1138 | #define MPI_FW_HEADER_PID_FAMILY_1020B1_SCSI (0x0007) |
1070 | #define MPI_FW_HEADER_PID_FAMILY_1020C0_SCSI (0x0008) | 1139 | #define MPI_FW_HEADER_PID_FAMILY_1020C0_SCSI (0x0008) |
1071 | #define MPI_FW_HEADER_PID_FAMILY_1035A0_SCSI (0x0009) | 1140 | #define MPI_FW_HEADER_PID_FAMILY_1035A0_SCSI (0x0009) |
1072 | #define MPI_FW_HEADER_PID_FAMILY_1035B0_SCSI (0x000A) | 1141 | #define MPI_FW_HEADER_PID_FAMILY_1035B0_SCSI (0x000A) |
1073 | #define MPI_FW_HEADER_PID_FAMILY_1030TA0_SCSI (0x000B) | 1142 | #define MPI_FW_HEADER_PID_FAMILY_1030TA0_SCSI (0x000B) |
1074 | #define MPI_FW_HEADER_PID_FAMILY_1020TA0_SCSI (0x000C) | 1143 | #define MPI_FW_HEADER_PID_FAMILY_1020TA0_SCSI (0x000C) |
1075 | /* Fibre Channel */ | 1144 | /* Fibre Channel */ |
1076 | #define MPI_FW_HEADER_PID_FAMILY_909_FC (0x0000) | 1145 | #define MPI_FW_HEADER_PID_FAMILY_909_FC (0x0000) |
1077 | #define MPI_FW_HEADER_PID_FAMILY_919_FC (0x0001) /* 919 and 929 */ | 1146 | #define MPI_FW_HEADER_PID_FAMILY_919_FC (0x0001) /* 919 and 929 */ |
1078 | #define MPI_FW_HEADER_PID_FAMILY_919X_FC (0x0002) /* 919X and 929X */ | 1147 | #define MPI_FW_HEADER_PID_FAMILY_919X_FC (0x0002) /* 919X and 929X */ |
1079 | #define MPI_FW_HEADER_PID_FAMILY_919XL_FC (0x0003) /* 919XL and 929XL */ | 1148 | #define MPI_FW_HEADER_PID_FAMILY_919XL_FC (0x0003) /* 919XL and 929XL */ |
1080 | #define MPI_FW_HEADER_PID_FAMILY_939X_FC (0x0004) /* 939X and 949X */ | 1149 | #define MPI_FW_HEADER_PID_FAMILY_939X_FC (0x0004) /* 939X and 949X */ |
1081 | #define MPI_FW_HEADER_PID_FAMILY_959_FC (0x0005) | 1150 | #define MPI_FW_HEADER_PID_FAMILY_959_FC (0x0005) |
1082 | #define MPI_FW_HEADER_PID_FAMILY_949E_FC (0x0006) | 1151 | #define MPI_FW_HEADER_PID_FAMILY_949E_FC (0x0006) |
1083 | /* SAS */ | 1152 | /* SAS */ |
1084 | #define MPI_FW_HEADER_PID_FAMILY_1064_SAS (0x0001) | 1153 | #define MPI_FW_HEADER_PID_FAMILY_1064_SAS (0x0001) |
1085 | #define MPI_FW_HEADER_PID_FAMILY_1068_SAS (0x0002) | 1154 | #define MPI_FW_HEADER_PID_FAMILY_1068_SAS (0x0002) |
1086 | #define MPI_FW_HEADER_PID_FAMILY_1078_SAS (0x0003) | 1155 | #define MPI_FW_HEADER_PID_FAMILY_1078_SAS (0x0003) |
1087 | #define MPI_FW_HEADER_PID_FAMILY_106xE_SAS (0x0004) /* 1068E, 1066E, and 1064E */ | 1156 | #define MPI_FW_HEADER_PID_FAMILY_106xE_SAS (0x0004) /* 1068E, 1066E, and 1064E */ |
1088 | 1157 | ||
1089 | typedef struct _MPI_EXT_IMAGE_HEADER | 1158 | typedef struct _MPI_EXT_IMAGE_HEADER |
1090 | { | 1159 | { |
1091 | U8 ImageType; /* 00h */ | 1160 | U8 ImageType; /* 00h */ |
1092 | U8 Reserved; /* 01h */ | 1161 | U8 Reserved; /* 01h */ |
1093 | U16 Reserved1; /* 02h */ | 1162 | U16 Reserved1; /* 02h */ |
1094 | U32 Checksum; /* 04h */ | 1163 | U32 Checksum; /* 04h */ |
1095 | U32 ImageSize; /* 08h */ | 1164 | U32 ImageSize; /* 08h */ |
1096 | U32 NextImageHeaderOffset; /* 0Ch */ | 1165 | U32 NextImageHeaderOffset; /* 0Ch */ |
1097 | U32 LoadStartAddress; /* 10h */ | 1166 | U32 LoadStartAddress; /* 10h */ |
1098 | U32 Reserved2; /* 14h */ | 1167 | U32 Reserved2; /* 14h */ |
1099 | } MPI_EXT_IMAGE_HEADER, MPI_POINTER PTR_MPI_EXT_IMAGE_HEADER, | 1168 | } MPI_EXT_IMAGE_HEADER, MPI_POINTER PTR_MPI_EXT_IMAGE_HEADER, |
1100 | MpiExtImageHeader_t, MPI_POINTER pMpiExtImageHeader_t; | 1169 | MpiExtImageHeader_t, MPI_POINTER pMpiExtImageHeader_t; |
1101 | 1170 | ||
1102 | /* defines for the ImageType field */ | 1171 | /* defines for the ImageType field */ |
1103 | #define MPI_EXT_IMAGE_TYPE_UNSPECIFIED (0x00) | 1172 | #define MPI_EXT_IMAGE_TYPE_UNSPECIFIED (0x00) |
1104 | #define MPI_EXT_IMAGE_TYPE_FW (0x01) | 1173 | #define MPI_EXT_IMAGE_TYPE_FW (0x01) |
1105 | #define MPI_EXT_IMAGE_TYPE_NVDATA (0x03) | 1174 | #define MPI_EXT_IMAGE_TYPE_NVDATA (0x03) |
1106 | #define MPI_EXT_IMAGE_TYPE_BOOTLOADER (0x04) | 1175 | #define MPI_EXT_IMAGE_TYPE_BOOTLOADER (0x04) |
1107 | #define MPI_EXT_IMAGE_TYPE_INITIALIZATION (0x05) | 1176 | #define MPI_EXT_IMAGE_TYPE_INITIALIZATION (0x05) |
1108 | 1177 | ||
1109 | #endif | 1178 | #endif |
1110 | 1179 |
drivers/message/fusion/lsi/mpi_log_sas.h
1 | |||
2 | /*************************************************************************** | 1 | /*************************************************************************** |
3 | * * | 2 | * * |
4 | * Copyright 2003 LSI Logic Corporation. All rights reserved. * | 3 | * Copyright 2003 LSI Logic Corporation. All rights reserved. * |
5 | * * | 4 | * * |
6 | * Description * | 5 | * Description * |
7 | * ------------ * | 6 | * ------------ * |
8 | * This include file contains SAS firmware interface IOC Log Info codes * | 7 | * This include file contains SAS firmware interface IOC Log Info codes * |
9 | * * | 8 | * * |
10 | *-------------------------------------------------------------------------* | 9 | *-------------------------------------------------------------------------* |
11 | */ | 10 | */ |
12 | 11 | ||
13 | #ifndef IOPI_IOCLOGINFO_H_INCLUDED | 12 | #ifndef IOPI_IOCLOGINFO_H_INCLUDED |
14 | #define IOPI_IOCLOGINFO_H_INCLUDED | 13 | #define IOPI_IOCLOGINFO_H_INCLUDED |
15 | 14 | ||
16 | #define SAS_LOGINFO_NEXUS_LOSS 0x31170000 | 15 | #define SAS_LOGINFO_NEXUS_LOSS 0x31170000 |
17 | #define SAS_LOGINFO_MASK 0xFFFF0000 | 16 | #define SAS_LOGINFO_MASK 0xFFFF0000 |
18 | 17 | ||
19 | /****************************************************************************/ | 18 | /****************************************************************************/ |
20 | /* IOC LOGINFO defines, 0x00000000 - 0x0FFFFFFF */ | 19 | /* IOC LOGINFO defines, 0x00000000 - 0x0FFFFFFF */ |
21 | /* Format: */ | 20 | /* Format: */ |
22 | /* Bits 31-28: MPI_IOCLOGINFO_TYPE_SAS (3) */ | 21 | /* Bits 31-28: MPI_IOCLOGINFO_TYPE_SAS (3) */ |
23 | /* Bits 27-24: IOC_LOGINFO_ORIGINATOR: 0=IOP, 1=PL, 2=IR */ | 22 | /* Bits 27-24: IOC_LOGINFO_ORIGINATOR: 0=IOP, 1=PL, 2=IR */ |
24 | /* Bits 23-16: LOGINFO_CODE */ | 23 | /* Bits 23-16: LOGINFO_CODE */ |
25 | /* Bits 15-0: LOGINFO_CODE Specific */ | 24 | /* Bits 15-0: LOGINFO_CODE Specific */ |
26 | /****************************************************************************/ | 25 | /****************************************************************************/ |
27 | 26 | ||
28 | /****************************************************************************/ | 27 | /****************************************************************************/ |
29 | /* IOC_LOGINFO_ORIGINATOR defines */ | 28 | /* IOC_LOGINFO_ORIGINATOR defines */ |
30 | /****************************************************************************/ | 29 | /****************************************************************************/ |
31 | #define IOC_LOGINFO_ORIGINATOR_IOP (0x00000000) | 30 | #define IOC_LOGINFO_ORIGINATOR_IOP (0x00000000) |
32 | #define IOC_LOGINFO_ORIGINATOR_PL (0x01000000) | 31 | #define IOC_LOGINFO_ORIGINATOR_PL (0x01000000) |
33 | #define IOC_LOGINFO_ORIGINATOR_IR (0x02000000) | 32 | #define IOC_LOGINFO_ORIGINATOR_IR (0x02000000) |
34 | 33 | ||
35 | #define IOC_LOGINFO_ORIGINATOR_MASK (0x0F000000) | 34 | #define IOC_LOGINFO_ORIGINATOR_MASK (0x0F000000) |
36 | 35 | ||
37 | /****************************************************************************/ | 36 | /****************************************************************************/ |
38 | /* LOGINFO_CODE defines */ | 37 | /* LOGINFO_CODE defines */ |
39 | /****************************************************************************/ | 38 | /****************************************************************************/ |
40 | #define IOC_LOGINFO_CODE_MASK (0x00FF0000) | 39 | #define IOC_LOGINFO_CODE_MASK (0x00FF0000) |
41 | #define IOC_LOGINFO_CODE_SHIFT (16) | 40 | #define IOC_LOGINFO_CODE_SHIFT (16) |
42 | 41 | ||
43 | /****************************************************************************/ | 42 | /****************************************************************************/ |
44 | /* IOP LOGINFO_CODE defines, valid if IOC_LOGINFO_ORIGINATOR = IOP */ | 43 | /* IOP LOGINFO_CODE defines, valid if IOC_LOGINFO_ORIGINATOR = IOP */ |
45 | /****************************************************************************/ | 44 | /****************************************************************************/ |
46 | #define IOP_LOGINFO_CODE_INVALID_SAS_ADDRESS (0x00010000) | 45 | #define IOP_LOGINFO_CODE_INVALID_SAS_ADDRESS (0x00010000) |
47 | #define IOP_LOGINFO_CODE_UNUSED2 (0x00020000) | 46 | #define IOP_LOGINFO_CODE_UNUSED2 (0x00020000) |
48 | #define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE (0x00030000) | 47 | #define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE (0x00030000) |
49 | #define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_RT (0x00030100) /* Route Table Entry not found */ | 48 | #define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_RT (0x00030100) /* Route Table Entry not found */ |
50 | #define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_PN (0x00030200) /* Invalid Page Number */ | 49 | #define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_PN (0x00030200) /* Invalid Page Number */ |
51 | #define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_FORM (0x00030300) /* Invalid FORM */ | 50 | #define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_FORM (0x00030300) /* Invalid FORM */ |
52 | #define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_PT (0x00030400) /* Invalid Page Type */ | 51 | #define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_PT (0x00030400) /* Invalid Page Type */ |
53 | #define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_DNM (0x00030500) /* Device Not Mapped */ | 52 | #define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_DNM (0x00030500) /* Device Not Mapped */ |
54 | #define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_PERSIST (0x00030600) /* Persistent Page not found */ | 53 | #define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_PERSIST (0x00030600) /* Persistent Page not found */ |
55 | #define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_DEFAULT (0x00030700) /* Default Page not found */ | 54 | #define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_DEFAULT (0x00030700) /* Default Page not found */ |
56 | 55 | ||
57 | #define IOP_LOGINFO_CODE_DIAG_MSG_ERROR (0x00040000) /* Error handling diag msg - or'd with diag status */ | 56 | #define IOP_LOGINFO_CODE_FWUPLOAD_NO_FLASH_AVAILABLE (0x0003E000) /* Tried to upload from flash, but there is none */ |
57 | #define IOP_LOGINFO_CODE_FWUPLOAD_UNKNOWN_IMAGE_TYPE (0x0003E001) /* ImageType field contents were invalid */ | ||
58 | #define IOP_LOGINFO_CODE_FWUPLOAD_WRONG_IMAGE_SIZE (0x0003E002) /* ImageSize field in TCSGE was bad/offset in MfgPg 4 was wrong */ | ||
59 | #define IOP_LOGINFO_CODE_FWUPLOAD_ENTIRE_FLASH_UPLOAD_FAILED (0x0003E003) /* Error occured while attempting to upload the entire flash */ | ||
60 | #define IOP_LOGINFO_CODE_FWUPLOAD_REGION_UPLOAD_FAILED (0x0003E004) /* Error occured while attempting to upload single flash region */ | ||
61 | #define IOP_LOGINFO_CODE_FWUPLOAD_DMA_FAILURE (0x0003E005) /* Problem occured while DMAing FW to host memory */ | ||
58 | 62 | ||
59 | #define IOP_LOGINFO_CODE_TASK_TERMINATED (0x00050000) | 63 | #define IOP_LOGINFO_CODE_DIAG_MSG_ERROR (0x00040000) /* Error handling diag msg - or'd with diag status */ |
60 | 64 | ||
61 | #define IOP_LOGINFO_CODE_ENCL_MGMT_READ_ACTION_ERR0R (0x00060001) /* Read Action not supported for SEP msg */ | 65 | #define IOP_LOGINFO_CODE_TASK_TERMINATED (0x00050000) |
62 | #define IOP_LOGINFO_CODE_ENCL_MGMT_INVALID_BUS_ID_ERR0R (0x00060002) /* Invalid Bus/ID in SEP msg */ | ||
63 | 66 | ||
64 | #define IOP_LOGINFO_CODE_TARGET_ASSIST_TERMINATED (0x00070001) | 67 | #define IOP_LOGINFO_CODE_ENCL_MGMT_READ_ACTION_ERR0R (0x00060001) /* Read Action not supported for SEP msg */ |
65 | #define IOP_LOGINFO_CODE_TARGET_STATUS_SEND_TERMINATED (0x00070002) | 68 | #define IOP_LOGINFO_CODE_ENCL_MGMT_INVALID_BUS_ID_ERR0R (0x00060002) /* Invalid Bus/ID in SEP msg */ |
66 | #define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_ALL_IO (0x00070003) | ||
67 | #define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO (0x00070004) | ||
68 | #define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO_REQ (0x00070005) | ||
69 | 69 | ||
70 | #define IOP_LOGINFO_CODE_TARGET_ASSIST_TERMINATED (0x00070001) | ||
71 | #define IOP_LOGINFO_CODE_TARGET_STATUS_SEND_TERMINATED (0x00070002) | ||
72 | #define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_ALL_IO (0x00070003) | ||
73 | #define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO (0x00070004) | ||
74 | #define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO_REQ (0x00070005) | ||
75 | |||
70 | /****************************************************************************/ | 76 | /****************************************************************************/ |
71 | /* PL LOGINFO_CODE defines, valid if IOC_LOGINFO_ORIGINATOR = PL */ | 77 | /* PL LOGINFO_CODE defines, valid if IOC_LOGINFO_ORIGINATOR = PL */ |
72 | /****************************************************************************/ | 78 | /****************************************************************************/ |
73 | #define PL_LOGINFO_CODE_OPEN_FAILURE (0x00010000) | 79 | #define PL_LOGINFO_CODE_OPEN_FAILURE (0x00010000) /* see SUB_CODE_OPEN_FAIL_ below */ |
74 | #define PL_LOG_INFO_CODE_OPEN_FAILURE_NO_DEST_TIME_OUT (0x00010001) | ||
75 | #define PL_LOGINFO_CODE_OPEN_FAILURE_BAD_DESTINATION (0x00010011) | ||
76 | #define PL_LOGINFO_CODE_OPEN_FAILURE_PROTOCOL_NOT_SUPPORTED (0x00010013) | ||
77 | #define PL_LOGINFO_CODE_OPEN_FAILURE_STP_RESOURCES_BSY (0x00010018) | ||
78 | #define PL_LOGINFO_CODE_OPEN_FAILURE_WRONG_DESTINATION (0x00010019) | ||
79 | #define PL_LOGINFO_CODE_OPEN_FAILURE_ORR_TIMEOUT (0X0001001A) | ||
80 | #define PL_LOGINFO_CODE_OPEN_FAILURE_PATHWAY_BLOCKED (0x0001001B) | ||
81 | #define PL_LOGINFO_CODE_OPEN_FAILURE_AWT_MAXED (0x0001001C) | ||
82 | #define PL_LOGINFO_CODE_INVALID_SGL (0x00020000) | ||
83 | #define PL_LOGINFO_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH (0x00030000) | ||
84 | #define PL_LOGINFO_CODE_FRAME_XFER_ERROR (0x00040000) | ||
85 | #define PL_LOGINFO_CODE_TX_FM_CONNECTED_LOW (0x00050000) | ||
86 | #define PL_LOGINFO_CODE_SATA_NON_NCQ_RW_ERR_BIT_SET (0x00060000) | ||
87 | #define PL_LOGINFO_CODE_SATA_READ_LOG_RECEIVE_DATA_ERR (0x00070000) | ||
88 | #define PL_LOGINFO_CODE_SATA_NCQ_FAIL_ALL_CMDS_AFTR_ERR (0x00080000) | ||
89 | #define PL_LOGINFO_CODE_SATA_ERR_IN_RCV_SET_DEV_BIT_FIS (0x00090000) | ||
90 | #define PL_LOGINFO_CODE_RX_FM_INVALID_MESSAGE (0x000A0000) | ||
91 | #define PL_LOGINFO_CODE_RX_CTX_MESSAGE_VALID_ERROR (0x000B0000) | ||
92 | #define PL_LOGINFO_CODE_RX_FM_CURRENT_FRAME_ERROR (0x000C0000) | ||
93 | #define PL_LOGINFO_CODE_SATA_LINK_DOWN (0x000D0000) | ||
94 | #define PL_LOGINFO_CODE_DISCOVERY_SATA_INIT_W_IOS (0x000E0000) | ||
95 | #define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE (0x000F0000) | ||
96 | #define PL_LOGINFO_CODE_CONFIG_PL_NOT_INITIALIZED (0x000F0001) /* PL not yet initialized, can't do config page req. */ | ||
97 | #define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_PT (0x000F0100) /* Invalid Page Type */ | ||
98 | #define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NUM_PHYS (0x000F0200) /* Invalid Number of Phys */ | ||
99 | #define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NOT_IMP (0x000F0300) /* Case Not Handled */ | ||
100 | #define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NO_DEV (0x000F0400) /* No Device Found */ | ||
101 | #define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_FORM (0x000F0500) /* Invalid FORM */ | ||
102 | #define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_PHY (0x000F0600) /* Invalid Phy */ | ||
103 | #define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NO_OWNER (0x000F0700) /* No Owner Found */ | ||
104 | #define PL_LOGINFO_CODE_DSCVRY_SATA_INIT_TIMEOUT (0x00100000) | ||
105 | #define PL_LOGINFO_CODE_RESET (0x00110000) /* See Sub-Codes below */ | ||
106 | #define PL_LOGINFO_CODE_ABORT (0x00120000) /* See Sub-Codes below */ | ||
107 | #define PL_LOGINFO_CODE_IO_NOT_YET_EXECUTED (0x00130000) | ||
108 | #define PL_LOGINFO_CODE_IO_EXECUTED (0x00140000) | ||
109 | #define PL_LOGINFO_CODE_PERS_RESV_OUT_NOT_AFFIL_OWNER (0x00150000) | ||
110 | #define PL_LOGINFO_CODE_OPEN_TXDMA_ABORT (0x00160000) | ||
111 | #define PL_LOGINFO_CODE_IO_DEVICE_MISSING_DELAY_RETRY (0x00170000) | ||
112 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE (0x00000100) | ||
113 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_NO_DEST_TIMEOUT (0x00000101) | ||
114 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ORR_TIMEOUT (0x0000011A) /* Open Reject (Retry) Timeout */ | ||
115 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_PATHWAY_BLOCKED (0x0000011B) | ||
116 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_AWT_MAXED (0x0000011C) /* Arbitration Wait Timer Maxed */ | ||
117 | 80 | ||
118 | #define PL_LOGINFO_SUB_CODE_TARGET_BUS_RESET (0x00000120) | 81 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_NO_DEST_TIME_OUT (0x00000001) |
119 | #define PL_LOGINFO_SUB_CODE_TRANSPORT_LAYER (0x00000130) /* Leave lower nibble (1-f) reserved. */ | 82 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_PATHWAY_BLOCKED (0x00000002) |
120 | #define PL_LOGINFO_SUB_CODE_PORT_LAYER (0x00000140) /* Leave lower nibble (1-f) reserved. */ | 83 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RES_CONTINUE0 (0x00000003) |
84 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RES_CONTINUE1 (0x00000004) | ||
85 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RES_INITIALIZE0 (0x00000005) | ||
86 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RES_INITIALIZE1 (0x00000006) | ||
87 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RES_STOP0 (0x00000007) | ||
88 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RES_STOP1 (0x00000008) | ||
89 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RETRY (0x00000009) | ||
90 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_BREAK (0x0000000A) | ||
91 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_UNUSED_0B (0x0000000B) | ||
92 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_OPEN_TIMEOUT_EXP (0x0000000C) | ||
93 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_UNUSED_0D (0x0000000D) | ||
94 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_DVTBLE_ACCSS_FAIL (0x0000000E) | ||
95 | #define PL_LOGINFO_SUB CODE_OPEN_FAIL_BAD_DEST (0x00000011) | ||
96 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RATE_NOT_SUPP (0x00000012) | ||
97 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_PROT_NOT_SUPP (0x00000013) | ||
98 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RESERVED_ABANDON0 (0x00000014) | ||
99 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RESERVED_ABANDON1 (0x00000015) | ||
100 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RESERVED_ABANDON2 (0x00000016) | ||
101 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RESERVED_ABANDON3 (0x00000017) | ||
102 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_STP_RESOURCES_BSY (0x00000018) | ||
103 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_WRONG_DESTINATION (0x00000019) | ||
121 | 104 | ||
105 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_PATH_BLOCKED (0x0000001B) /* Retry Timeout */ | ||
106 | #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_AWT_MAXED (0x0000001C) /* Retry Timeout */ | ||
122 | 107 | ||
123 | #define PL_LOGINFO_SUB_CODE_INVALID_SGL (0x00000200) | ||
124 | #define PL_LOGINFO_SUB_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH (0x00000300) | ||
125 | #define PL_LOGINFO_SUB_CODE_FRAME_XFER_ERROR (0x00000400) | ||
126 | #define PL_LOGINFO_SUB_CODE_TX_FM_CONNECTED_LOW (0x00000500) | ||
127 | #define PL_LOGINFO_SUB_CODE_SATA_NON_NCQ_RW_ERR_BIT_SET (0x00000600) | ||
128 | #define PL_LOGINFO_SUB_CODE_SATA_READ_LOG_RECEIVE_DATA_ERR (0x00000700) | ||
129 | #define PL_LOGINFO_SUB_CODE_SATA_NCQ_FAIL_ALL_CMDS_AFTR_ERR (0x00000800) | ||
130 | #define PL_LOGINFO_SUB_CODE_SATA_ERR_IN_RCV_SET_DEV_BIT_FIS (0x00000900) | ||
131 | #define PL_LOGINFO_SUB_CODE_RX_FM_INVALID_MESSAGE (0x00000A00) | ||
132 | #define PL_LOGINFO_SUB_CODE_RX_CTX_MESSAGE_VALID_ERROR (0x00000B00) | ||
133 | #define PL_LOGINFO_SUB_CODE_RX_FM_CURRENT_FRAME_ERROR (0x00000C00) | ||
134 | #define PL_LOGINFO_SUB_CODE_SATA_LINK_DOWN (0x00000D00) | ||
135 | #define PL_LOGINFO_SUB_CODE_DISCOVERY_SATA_INIT_W_IOS (0x00000E00) | ||
136 | #define PL_LOGINFO_SUB_CODE_DISCOVERY_REMOTE_SEP_RESET (0x00000E01) | ||
137 | #define PL_LOGINFO_SUB_CODE_SECOND_OPEN (0x00000F00) | ||
138 | #define PL_LOGINFO_SUB_CODE_DSCVRY_SATA_INIT_TIMEOUT (0x00001000) | ||
139 | 108 | ||
140 | 109 | ||
141 | #define PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_FAILURE (0x00200000) /* Can't get SMP Frame */ | 110 | #define PL_LOGINFO_CODE_INVALID_SGL (0x00020000) |
142 | #define PL_LOGINFO_CODE_ENCL_MGMT_SMP_READ_ERROR (0x00200010) /* Error occured on SMP Read */ | 111 | #define PL_LOGINFO_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH (0x00030000) |
143 | #define PL_LOGINFO_CODE_ENCL_MGMT_SMP_WRITE_ERROR (0x00200020) /* Error occured on SMP Write */ | 112 | #define PL_LOGINFO_CODE_FRAME_XFER_ERROR (0x00040000) |
144 | #define PL_LOGINFO_CODE_ENCL_MGMT_NOT_SUPPORTED_ON_ENCL (0x00200040) /* Encl Mgmt services not available for this WWID */ | 113 | #define PL_LOGINFO_CODE_TX_FM_CONNECTED_LOW (0x00050000) |
145 | #define PL_LOGINFO_CODE_ENCL_MGMT_ADDR_MODE_NOT_SUPPORTED (0x00200050) /* Address Mode not suppored */ | 114 | #define PL_LOGINFO_CODE_SATA_NON_NCQ_RW_ERR_BIT_SET (0x00060000) |
146 | #define PL_LOGINFO_CODE_ENCL_MGMT_BAD_SLOT_NUM (0x00200060) /* Invalid Slot Number in SEP Msg */ | 115 | #define PL_LOGINFO_CODE_SATA_READ_LOG_RECEIVE_DATA_ERR (0x00070000) |
147 | #define PL_LOGINFO_CODE_ENCL_MGMT_SGPIO_NOT_PRESENT (0x00200070) /* SGPIO not present/enabled */ | 116 | #define PL_LOGINFO_CODE_SATA_NCQ_FAIL_ALL_CMDS_AFTR_ERR (0x00080000) |
148 | #define PL_LOGINFO_CODE_ENCL_MGMT_GPIO_NOT_CONFIGURED (0x00200080) /* GPIO not configured */ | 117 | #define PL_LOGINFO_CODE_SATA_ERR_IN_RCV_SET_DEV_BIT_FIS (0x00090000) |
149 | #define PL_LOGINFO_CODE_ENCL_MGMT_GPIO_FRAME_ERROR (0x00200090) /* GPIO can't allocate a frame */ | 118 | #define PL_LOGINFO_CODE_RX_FM_INVALID_MESSAGE (0x000A0000) |
150 | #define PL_LOGINFO_CODE_ENCL_MGMT_GPIO_CONFIG_PAGE_ERROR (0x002000A0) /* GPIO failed config page request */ | 119 | #define PL_LOGINFO_CODE_RX_CTX_MESSAGE_VALID_ERROR (0x000B0000) |
151 | #define PL_LOGINFO_CODE_ENCL_MGMT_SES_FRAME_ALLOC_ERROR (0x002000B0) /* Can't get frame for SES command */ | 120 | #define PL_LOGINFO_CODE_RX_FM_CURRENT_FRAME_ERROR (0x000C0000) |
152 | #define PL_LOGINFO_CODE_ENCL_MGMT_SES_IO_ERROR (0x002000C0) /* I/O execution error */ | 121 | #define PL_LOGINFO_CODE_SATA_LINK_DOWN (0x000D0000) |
153 | #define PL_LOGINFO_CODE_ENCL_MGMT_SES_RETRIES_EXHAUSTED (0x002000D0) /* SEP I/O retries exhausted */ | 122 | #define PL_LOGINFO_CODE_DISCOVERY_SATA_INIT_W_IOS (0x000E0000) |
154 | #define PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_ALLOC_ERROR (0x002000E0) /* Can't get frame for SMP command */ | 123 | #define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE (0x000F0000) |
124 | #define PL_LOGINFO_CODE_CONFIG_PL_NOT_INITIALIZED (0x000F0001) /* PL not yet initialized, can't do config page req. */ | ||
125 | #define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_PT (0x000F0100) /* Invalid Page Type */ | ||
126 | #define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NUM_PHYS (0x000F0200) /* Invalid Number of Phys */ | ||
127 | #define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NOT_IMP (0x000F0300) /* Case Not Handled */ | ||
128 | #define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NO_DEV (0x000F0400) /* No Device Found */ | ||
129 | #define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_FORM (0x000F0500) /* Invalid FORM */ | ||
130 | #define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_PHY (0x000F0600) /* Invalid Phy */ | ||
131 | #define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NO_OWNER (0x000F0700) /* No Owner Found */ | ||
132 | #define PL_LOGINFO_CODE_DSCVRY_SATA_INIT_TIMEOUT (0x00100000) | ||
133 | #define PL_LOGINFO_CODE_RESET (0x00110000) /* See Sub-Codes below (PL_LOGINFO_SUB_CODE) */ | ||
134 | #define PL_LOGINFO_CODE_ABORT (0x00120000) /* See Sub-Codes below (PL_LOGINFO_SUB_CODE)*/ | ||
135 | #define PL_LOGINFO_CODE_IO_NOT_YET_EXECUTED (0x00130000) | ||
136 | #define PL_LOGINFO_CODE_IO_EXECUTED (0x00140000) | ||
137 | #define PL_LOGINFO_CODE_PERS_RESV_OUT_NOT_AFFIL_OWNER (0x00150000) | ||
138 | #define PL_LOGINFO_CODE_OPEN_TXDMA_ABORT (0x00160000) | ||
139 | #define PL_LOGINFO_CODE_IO_DEVICE_MISSING_DELAY_RETRY (0x00170000) | ||
140 | #define PL_LOGINFO_CODE_IO_CANCELLED_DUE_TO_R_ERR (0x00180000) | ||
141 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE (0x00000100) | ||
142 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_NO_DEST_TIMEOUT (0x00000101) | ||
143 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_SATA_NEG_RATE_2HI (0x00000102) | ||
144 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_RATE_NOT_SUPPORTED (0x00000103) | ||
145 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_BREAK (0x00000104) | ||
146 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ZONE_VIOLATION (0x00000114) | ||
147 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ABANDON0 (0x00000114) /* Open Reject (Zone Violation) - available on SAS-2 devices */ | ||
148 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ABANDON1 (0x00000115) | ||
149 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ABANDON2 (0x00000116) | ||
150 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ABANDON3 (0x00000117) | ||
151 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ORR_TIMEOUT (0x0000011A) /* Open Reject (Retry) Timeout */ | ||
152 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_PATH_BLOCKED (0x0000011B) | ||
153 | #define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_AWT_MAXED (0x0000011C) /* Arbitration Wait Timer Maxed */ | ||
155 | 154 | ||
156 | #define PL_LOGINFO_DA_SEP_NOT_PRESENT (0x00200100) /* SEP not present when msg received */ | 155 | #define PL_LOGINFO_SUB_CODE_TARGET_BUS_RESET (0x00000120) |
157 | #define PL_LOGINFO_DA_SEP_SINGLE_THREAD_ERROR (0x00200101) /* Can only accept 1 msg at a time */ | 156 | #define PL_LOGINFO_SUB_CODE_TRANSPORT_LAYER (0x00000130) /* Leave lower nibble (1-f) reserved. */ |
158 | #define PL_LOGINFO_DA_SEP_ISTWI_INTR_IN_IDLE_STATE (0x00200102) /* ISTWI interrupt recvd. while IDLE */ | 157 | #define PL_LOGINFO_SUB_CODE_PORT_LAYER (0x00000140) /* Leave lower nibble (1-f) reserved. */ |
159 | #define PL_LOGINFO_DA_SEP_RECEIVED_NACK_FROM_SLAVE (0x00200103) /* SEP NACK'd, it is busy */ | 158 | |
160 | #define PL_LOGINFO_DA_SEP_DID_NOT_RECEIVE_ACK (0x00200104) /* SEP didn't rcv. ACK (Last Rcvd Bit = 1) */ | 159 | |
161 | #define PL_LOGINFO_DA_SEP_BAD_STATUS_HDR_CHKSUM (0x00200105) /* SEP stopped or sent bad chksum in Hdr */ | 160 | #define PL_LOGINFO_SUB_CODE_INVALID_SGL (0x00000200) |
162 | #define PL_LOGINFO_DA_SEP_STOP_ON_DATA (0x00200106) /* SEP stopped while transfering data */ | 161 | #define PL_LOGINFO_SUB_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH (0x00000300) |
163 | #define PL_LOGINFO_DA_SEP_STOP_ON_SENSE_DATA (0x00200107) /* SEP stopped while transfering sense data */ | 162 | #define PL_LOGINFO_SUB_CODE_FRAME_XFER_ERROR (0x00000400) /* Bits 0-3 encode Transport Status Register (offset 0x08) */ |
164 | #define PL_LOGINFO_DA_SEP_UNSUPPORTED_SCSI_STATUS_1 (0x00200108) /* SEP returned unknown scsi status */ | 163 | /* Bit 0 is Status Bit 0: FrameXferErr */ |
165 | #define PL_LOGINFO_DA_SEP_UNSUPPORTED_SCSI_STATUS_2 (0x00200109) /* SEP returned unknown scsi status */ | 164 | /* Bit 1 & 2 are Status Bits 16 and 17: FrameXmitErrStatus */ |
166 | #define PL_LOGINFO_DA_SEP_CHKSUM_ERROR_AFTER_STOP (0x0020010A) /* SEP returned bad chksum after STOP */ | 165 | /* Bit 3 is Status Bit 18 WriteDataLenghtGTDataLengthErr */ |
167 | #define PL_LOGINFO_DA_SEP_CHKSUM_ERROR_AFTER_STOP_GETDATA (0x0020010B) /* SEP returned bad chksum after STOP while gettin data*/ | 166 | |
168 | #define PL_LOGINFO_DA_SEP_UNSUPPORTED_COMMAND (0x0020010C) /* SEP doesn't support CDB opcode */ | 167 | #define PL_LOGINFO_SUB_CODE_TX_FM_CONNECTED_LOW (0x00000500) |
168 | #define PL_LOGINFO_SUB_CODE_SATA_NON_NCQ_RW_ERR_BIT_SET (0x00000600) | ||
169 | #define PL_LOGINFO_SUB_CODE_SATA_READ_LOG_RECEIVE_DATA_ERR (0x00000700) | ||
170 | #define PL_LOGINFO_SUB_CODE_SATA_NCQ_FAIL_ALL_CMDS_AFTR_ERR (0x00000800) | ||
171 | #define PL_LOGINFO_SUB_CODE_SATA_ERR_IN_RCV_SET_DEV_BIT_FIS (0x00000900) | ||
172 | #define PL_LOGINFO_SUB_CODE_RX_FM_INVALID_MESSAGE (0x00000A00) | ||
173 | #define PL_LOGINFO_SUB_CODE_RX_CTX_MESSAGE_VALID_ERROR (0x00000B00) | ||
174 | #define PL_LOGINFO_SUB_CODE_RX_FM_CURRENT_FRAME_ERROR (0x00000C00) | ||
175 | #define PL_LOGINFO_SUB_CODE_SATA_LINK_DOWN (0x00000D00) | ||
176 | #define PL_LOGINFO_SUB_CODE_DISCOVERY_SATA_INIT_W_IOS (0x00000E00) | ||
177 | #define PL_LOGINFO_SUB_CODE_DISCOVERY_REMOTE_SEP_RESET (0x00000E01) | ||
178 | #define PL_LOGINFO_SUB_CODE_SECOND_OPEN (0x00000F00) | ||
179 | #define PL_LOGINFO_SUB_CODE_DSCVRY_SATA_INIT_TIMEOUT (0x00001000) | ||
180 | |||
181 | #define PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_FAILURE (0x00200000) /* Can't get SMP Frame */ | ||
182 | #define PL_LOGINFO_CODE_ENCL_MGMT_SMP_READ_ERROR (0x00200010) /* Error occured on SMP Read */ | ||
183 | #define PL_LOGINFO_CODE_ENCL_MGMT_SMP_WRITE_ERROR (0x00200020) /* Error occured on SMP Write */ | ||
184 | #define PL_LOGINFO_CODE_ENCL_MGMT_NOT_SUPPORTED_ON_ENCL (0x00200040) /* Encl Mgmt services not available for this WWID */ | ||
185 | #define PL_LOGINFO_CODE_ENCL_MGMT_ADDR_MODE_NOT_SUPPORTED (0x00200050) /* Address Mode not suppored */ | ||
186 | #define PL_LOGINFO_CODE_ENCL_MGMT_BAD_SLOT_NUM (0x00200060) /* Invalid Slot Number in SEP Msg */ | ||
187 | #define PL_LOGINFO_CODE_ENCL_MGMT_SGPIO_NOT_PRESENT (0x00200070) /* SGPIO not present/enabled */ | ||
188 | #define PL_LOGINFO_CODE_ENCL_MGMT_GPIO_NOT_CONFIGURED (0x00200080) /* GPIO not configured */ | ||
189 | #define PL_LOGINFO_CODE_ENCL_MGMT_GPIO_FRAME_ERROR (0x00200090) /* GPIO can't allocate a frame */ | ||
190 | #define PL_LOGINFO_CODE_ENCL_MGMT_GPIO_CONFIG_PAGE_ERROR (0x002000A0) /* GPIO failed config page request */ | ||
191 | #define PL_LOGINFO_CODE_ENCL_MGMT_SES_FRAME_ALLOC_ERROR (0x002000B0) /* Can't get frame for SES command */ | ||
192 | #define PL_LOGINFO_CODE_ENCL_MGMT_SES_IO_ERROR (0x002000C0) /* I/O execution error */ | ||
193 | #define PL_LOGINFO_CODE_ENCL_MGMT_SES_RETRIES_EXHAUSTED (0x002000D0) /* SEP I/O retries exhausted */ | ||
194 | #define PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_ALLOC_ERROR (0x002000E0) /* Can't get frame for SMP command */ | ||
195 | |||
196 | #define PL_LOGINFO_DA_SEP_NOT_PRESENT (0x00200100) /* SEP not present when msg received */ | ||
197 | #define PL_LOGINFO_DA_SEP_SINGLE_THREAD_ERROR (0x00200101) /* Can only accept 1 msg at a time */ | ||
198 | #define PL_LOGINFO_DA_SEP_ISTWI_INTR_IN_IDLE_STATE (0x00200102) /* ISTWI interrupt recvd. while IDLE */ | ||
199 | #define PL_LOGINFO_DA_SEP_RECEIVED_NACK_FROM_SLAVE (0x00200103) /* SEP NACK'd, it is busy */ | ||
200 | #define PL_LOGINFO_DA_SEP_DID_NOT_RECEIVE_ACK (0x00200104) /* SEP didn't rcv. ACK (Last Rcvd Bit = 1) */ | ||
201 | #define PL_LOGINFO_DA_SEP_BAD_STATUS_HDR_CHKSUM (0x00200105) /* SEP stopped or sent bad chksum in Hdr */ | ||
202 | #define PL_LOGINFO_DA_SEP_STOP_ON_DATA (0x00200106) /* SEP stopped while transfering data */ | ||
203 | #define PL_LOGINFO_DA_SEP_STOP_ON_SENSE_DATA (0x00200107) /* SEP stopped while transfering sense data */ | ||
204 | #define PL_LOGINFO_DA_SEP_UNSUPPORTED_SCSI_STATUS_1 (0x00200108) /* SEP returned unknown scsi status */ | ||
205 | #define PL_LOGINFO_DA_SEP_UNSUPPORTED_SCSI_STATUS_2 (0x00200109) /* SEP returned unknown scsi status */ | ||
206 | #define PL_LOGINFO_DA_SEP_CHKSUM_ERROR_AFTER_STOP (0x0020010A) /* SEP returned bad chksum after STOP */ | ||
207 | #define PL_LOGINFO_DA_SEP_CHKSUM_ERROR_AFTER_STOP_GETDATA (0x0020010B) /* SEP returned bad chksum after STOP while gettin data*/ | ||
208 | #define PL_LOGINFO_DA_SEP_UNSUPPORTED_COMMAND (0x0020010C) /* SEP doesn't support CDB opcode f/w location 1 */ | ||
209 | #define PL_LOGINFO_DA_SEP_UNSUPPORTED_COMMAND_2 (0x0020010D) /* SEP doesn't support CDB opcode f/w location 2 */ | ||
210 | #define PL_LOGINFO_DA_SEP_UNSUPPORTED_COMMAND_3 (0x0020010E) /* SEP doesn't support CDB opcode f/w location 3 */ | ||
169 | 211 | ||
170 | 212 | ||
171 | /****************************************************************************/ | 213 | /****************************************************************************/ |
172 | /* IR LOGINFO_CODE defines, valid if IOC_LOGINFO_ORIGINATOR = IR */ | 214 | /* IR LOGINFO_CODE defines, valid if IOC_LOGINFO_ORIGINATOR = IR */ |
173 | /****************************************************************************/ | 215 | /****************************************************************************/ |
174 | #define IR_LOGINFO_RAID_ACTION_ERROR (0x00010000) | 216 | #define IR_LOGINFO_RAID_ACTION_ERROR (0x00010000) |
175 | #define IR_LOGINFO_CODE_UNUSED2 (0x00020000) | 217 | #define IR_LOGINFO_CODE_UNUSED2 (0x00020000) |
176 | 218 | ||
177 | /* Amount of information passed down for Create Volume is too large */ | 219 | /* Amount of information passed down for Create Volume is too large */ |
178 | #define IR_LOGINFO_VOLUME_CREATE_INVALID_LENGTH (0x00010001) | 220 | #define IR_LOGINFO_VOLUME_CREATE_INVALID_LENGTH (0x00010001) |
179 | /* Creation of duplicate volume attempted (Bus/Target ID checked) */ | 221 | /* Creation of duplicate volume attempted (Bus/Target ID checked) */ |
180 | #define IR_LOGINFO_VOLUME_CREATE_DUPLICATE (0x00010002) | 222 | #define IR_LOGINFO_VOLUME_CREATE_DUPLICATE (0x00010002) |
181 | /* Creation failed due to maximum number of supported volumes exceeded */ | 223 | /* Creation failed due to maximum number of supported volumes exceeded */ |
182 | #define IR_LOGINFO_VOLUME_CREATE_NO_SLOTS (0x00010003) | 224 | #define IR_LOGINFO_VOLUME_CREATE_NO_SLOTS (0x00010003) |
183 | /* Creation failed due to DMA error in trying to read from host */ | 225 | /* Creation failed due to DMA error in trying to read from host */ |
184 | #define IR_LOGINFO_VOLUME_CREATE_DMA_ERROR (0x00010004) | 226 | #define IR_LOGINFO_VOLUME_CREATE_DMA_ERROR (0x00010004) |
185 | /* Creation failed due to invalid volume type passed down */ | 227 | /* Creation failed due to invalid volume type passed down */ |
186 | #define IR_LOGINFO_VOLUME_CREATE_INVALID_VOLUME_TYPE (0x00010005) | 228 | #define IR_LOGINFO_VOLUME_CREATE_INVALID_VOLUME_TYPE (0x00010005) |
187 | /* Creation failed due to error reading MFG Page 4 */ | 229 | /* Creation failed due to error reading MFG Page 4 */ |
188 | #define IR_LOGINFO_VOLUME_MFG_PAGE4_ERROR (0x00010006) | 230 | #define IR_LOGINFO_VOLUME_MFG_PAGE4_ERROR (0x00010006) |
189 | /* Creation failed when trying to create internal structures */ | 231 | /* Creation failed when trying to create internal structures */ |
190 | #define IR_LOGINFO_VOLUME_INTERNAL_CONFIG_STRUCTURE_ERROR (0x00010007) | 232 | #define IR_LOGINFO_VOLUME_INTERNAL_CONFIG_STRUCTURE_ERROR (0x00010007) |
191 | 233 | ||
192 | /* Activation failed due to trying to activate an already active volume */ | 234 | /* Activation failed due to trying to activate an already active volume */ |
drivers/message/fusion/lsi/mpi_sas.h
1 | /* | 1 | /* |
2 | * Copyright (c) 2004 LSI Logic Corporation. | 2 | * Copyright (c) 2004-2006 LSI Logic Corporation. |
3 | * | 3 | * |
4 | * | 4 | * |
5 | * Name: mpi_sas.h | 5 | * Name: mpi_sas.h |
6 | * Title: MPI Serial Attached SCSI structures and definitions | 6 | * Title: MPI Serial Attached SCSI structures and definitions |
7 | * Creation Date: August 19, 2004 | 7 | * Creation Date: August 19, 2004 |
8 | * | 8 | * |
9 | * mpi_sas.h Version: 01.05.03 | 9 | * mpi_sas.h Version: 01.05.04 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
13 | * | 13 | * |
14 | * Date Version Description | 14 | * Date Version Description |
15 | * -------- -------- ------------------------------------------------------ | 15 | * -------- -------- ------------------------------------------------------ |
16 | * 08-19-04 01.05.01 Original release. | 16 | * 08-19-04 01.05.01 Original release. |
17 | * 08-30-05 01.05.02 Added DeviceInfo bit for SEP. | 17 | * 08-30-05 01.05.02 Added DeviceInfo bit for SEP. |
18 | * Added PrimFlags and Primitive field to SAS IO Unit | 18 | * Added PrimFlags and Primitive field to SAS IO Unit |
19 | * Control request, and added a new operation code. | 19 | * Control request, and added a new operation code. |
20 | * 03-27-06 01.05.03 Added Force Full Discovery, Transmit Port Select Signal, | 20 | * 03-27-06 01.05.03 Added Force Full Discovery, Transmit Port Select Signal, |
21 | * and Remove Device operations to SAS IO Unit Control. | 21 | * and Remove Device operations to SAS IO Unit Control. |
22 | * Added DevHandle field to SAS IO Unit Control request and | 22 | * Added DevHandle field to SAS IO Unit Control request and |
23 | * reply. | 23 | * reply. |
24 | * 10-11-06 01.05.04 Fixed the name of a define for Operation field of SAS IO | ||
25 | * Unit Control request. | ||
24 | * -------------------------------------------------------------------------- | 26 | * -------------------------------------------------------------------------- |
25 | */ | 27 | */ |
26 | 28 | ||
27 | #ifndef MPI_SAS_H | 29 | #ifndef MPI_SAS_H |
28 | #define MPI_SAS_H | 30 | #define MPI_SAS_H |
29 | 31 | ||
30 | 32 | ||
31 | /* | 33 | /* |
32 | * Values for SASStatus. | 34 | * Values for SASStatus. |
33 | */ | 35 | */ |
34 | #define MPI_SASSTATUS_SUCCESS (0x00) | 36 | #define MPI_SASSTATUS_SUCCESS (0x00) |
35 | #define MPI_SASSTATUS_UNKNOWN_ERROR (0x01) | 37 | #define MPI_SASSTATUS_UNKNOWN_ERROR (0x01) |
36 | #define MPI_SASSTATUS_INVALID_FRAME (0x02) | 38 | #define MPI_SASSTATUS_INVALID_FRAME (0x02) |
37 | #define MPI_SASSTATUS_UTC_BAD_DEST (0x03) | 39 | #define MPI_SASSTATUS_UTC_BAD_DEST (0x03) |
38 | #define MPI_SASSTATUS_UTC_BREAK_RECEIVED (0x04) | 40 | #define MPI_SASSTATUS_UTC_BREAK_RECEIVED (0x04) |
39 | #define MPI_SASSTATUS_UTC_CONNECT_RATE_NOT_SUPPORTED (0x05) | 41 | #define MPI_SASSTATUS_UTC_CONNECT_RATE_NOT_SUPPORTED (0x05) |
40 | #define MPI_SASSTATUS_UTC_PORT_LAYER_REQUEST (0x06) | 42 | #define MPI_SASSTATUS_UTC_PORT_LAYER_REQUEST (0x06) |
41 | #define MPI_SASSTATUS_UTC_PROTOCOL_NOT_SUPPORTED (0x07) | 43 | #define MPI_SASSTATUS_UTC_PROTOCOL_NOT_SUPPORTED (0x07) |
42 | #define MPI_SASSTATUS_UTC_STP_RESOURCES_BUSY (0x08) | 44 | #define MPI_SASSTATUS_UTC_STP_RESOURCES_BUSY (0x08) |
43 | #define MPI_SASSTATUS_UTC_WRONG_DESTINATION (0x09) | 45 | #define MPI_SASSTATUS_UTC_WRONG_DESTINATION (0x09) |
44 | #define MPI_SASSTATUS_SHORT_INFORMATION_UNIT (0x0A) | 46 | #define MPI_SASSTATUS_SHORT_INFORMATION_UNIT (0x0A) |
45 | #define MPI_SASSTATUS_LONG_INFORMATION_UNIT (0x0B) | 47 | #define MPI_SASSTATUS_LONG_INFORMATION_UNIT (0x0B) |
46 | #define MPI_SASSTATUS_XFER_RDY_INCORRECT_WRITE_DATA (0x0C) | 48 | #define MPI_SASSTATUS_XFER_RDY_INCORRECT_WRITE_DATA (0x0C) |
47 | #define MPI_SASSTATUS_XFER_RDY_REQUEST_OFFSET_ERROR (0x0D) | 49 | #define MPI_SASSTATUS_XFER_RDY_REQUEST_OFFSET_ERROR (0x0D) |
48 | #define MPI_SASSTATUS_XFER_RDY_NOT_EXPECTED (0x0E) | 50 | #define MPI_SASSTATUS_XFER_RDY_NOT_EXPECTED (0x0E) |
49 | #define MPI_SASSTATUS_DATA_INCORRECT_DATA_LENGTH (0x0F) | 51 | #define MPI_SASSTATUS_DATA_INCORRECT_DATA_LENGTH (0x0F) |
50 | #define MPI_SASSTATUS_DATA_TOO_MUCH_READ_DATA (0x10) | 52 | #define MPI_SASSTATUS_DATA_TOO_MUCH_READ_DATA (0x10) |
51 | #define MPI_SASSTATUS_DATA_OFFSET_ERROR (0x11) | 53 | #define MPI_SASSTATUS_DATA_OFFSET_ERROR (0x11) |
52 | #define MPI_SASSTATUS_SDSF_NAK_RECEIVED (0x12) | 54 | #define MPI_SASSTATUS_SDSF_NAK_RECEIVED (0x12) |
53 | #define MPI_SASSTATUS_SDSF_CONNECTION_FAILED (0x13) | 55 | #define MPI_SASSTATUS_SDSF_CONNECTION_FAILED (0x13) |
54 | #define MPI_SASSTATUS_INITIATOR_RESPONSE_TIMEOUT (0x14) | 56 | #define MPI_SASSTATUS_INITIATOR_RESPONSE_TIMEOUT (0x14) |
55 | 57 | ||
56 | 58 | ||
57 | /* | 59 | /* |
58 | * Values for the SAS DeviceInfo field used in SAS Device Status Change Event | 60 | * Values for the SAS DeviceInfo field used in SAS Device Status Change Event |
59 | * data and SAS IO Unit Configuration pages. | 61 | * data and SAS IO Unit Configuration pages. |
60 | */ | 62 | */ |
61 | #define MPI_SAS_DEVICE_INFO_SEP (0x00004000) | 63 | #define MPI_SAS_DEVICE_INFO_SEP (0x00004000) |
62 | #define MPI_SAS_DEVICE_INFO_ATAPI_DEVICE (0x00002000) | 64 | #define MPI_SAS_DEVICE_INFO_ATAPI_DEVICE (0x00002000) |
63 | #define MPI_SAS_DEVICE_INFO_LSI_DEVICE (0x00001000) | 65 | #define MPI_SAS_DEVICE_INFO_LSI_DEVICE (0x00001000) |
64 | #define MPI_SAS_DEVICE_INFO_DIRECT_ATTACH (0x00000800) | 66 | #define MPI_SAS_DEVICE_INFO_DIRECT_ATTACH (0x00000800) |
65 | #define MPI_SAS_DEVICE_INFO_SSP_TARGET (0x00000400) | 67 | #define MPI_SAS_DEVICE_INFO_SSP_TARGET (0x00000400) |
66 | #define MPI_SAS_DEVICE_INFO_STP_TARGET (0x00000200) | 68 | #define MPI_SAS_DEVICE_INFO_STP_TARGET (0x00000200) |
67 | #define MPI_SAS_DEVICE_INFO_SMP_TARGET (0x00000100) | 69 | #define MPI_SAS_DEVICE_INFO_SMP_TARGET (0x00000100) |
68 | #define MPI_SAS_DEVICE_INFO_SATA_DEVICE (0x00000080) | 70 | #define MPI_SAS_DEVICE_INFO_SATA_DEVICE (0x00000080) |
69 | #define MPI_SAS_DEVICE_INFO_SSP_INITIATOR (0x00000040) | 71 | #define MPI_SAS_DEVICE_INFO_SSP_INITIATOR (0x00000040) |
70 | #define MPI_SAS_DEVICE_INFO_STP_INITIATOR (0x00000020) | 72 | #define MPI_SAS_DEVICE_INFO_STP_INITIATOR (0x00000020) |
71 | #define MPI_SAS_DEVICE_INFO_SMP_INITIATOR (0x00000010) | 73 | #define MPI_SAS_DEVICE_INFO_SMP_INITIATOR (0x00000010) |
72 | #define MPI_SAS_DEVICE_INFO_SATA_HOST (0x00000008) | 74 | #define MPI_SAS_DEVICE_INFO_SATA_HOST (0x00000008) |
73 | 75 | ||
74 | #define MPI_SAS_DEVICE_INFO_MASK_DEVICE_TYPE (0x00000007) | 76 | #define MPI_SAS_DEVICE_INFO_MASK_DEVICE_TYPE (0x00000007) |
75 | #define MPI_SAS_DEVICE_INFO_NO_DEVICE (0x00000000) | 77 | #define MPI_SAS_DEVICE_INFO_NO_DEVICE (0x00000000) |
76 | #define MPI_SAS_DEVICE_INFO_END_DEVICE (0x00000001) | 78 | #define MPI_SAS_DEVICE_INFO_END_DEVICE (0x00000001) |
77 | #define MPI_SAS_DEVICE_INFO_EDGE_EXPANDER (0x00000002) | 79 | #define MPI_SAS_DEVICE_INFO_EDGE_EXPANDER (0x00000002) |
78 | #define MPI_SAS_DEVICE_INFO_FANOUT_EXPANDER (0x00000003) | 80 | #define MPI_SAS_DEVICE_INFO_FANOUT_EXPANDER (0x00000003) |
79 | 81 | ||
80 | 82 | ||
81 | 83 | ||
82 | /***************************************************************************** | 84 | /***************************************************************************** |
83 | * | 85 | * |
84 | * S e r i a l A t t a c h e d S C S I M e s s a g e s | 86 | * S e r i a l A t t a c h e d S C S I M e s s a g e s |
85 | * | 87 | * |
86 | *****************************************************************************/ | 88 | *****************************************************************************/ |
87 | 89 | ||
88 | /****************************************************************************/ | 90 | /****************************************************************************/ |
89 | /* Serial Management Protocol Passthrough Request */ | 91 | /* Serial Management Protocol Passthrough Request */ |
90 | /****************************************************************************/ | 92 | /****************************************************************************/ |
91 | 93 | ||
92 | typedef struct _MSG_SMP_PASSTHROUGH_REQUEST | 94 | typedef struct _MSG_SMP_PASSTHROUGH_REQUEST |
93 | { | 95 | { |
94 | U8 PassthroughFlags; /* 00h */ | 96 | U8 PassthroughFlags; /* 00h */ |
95 | U8 PhysicalPort; /* 01h */ | 97 | U8 PhysicalPort; /* 01h */ |
96 | U8 ChainOffset; /* 02h */ | 98 | U8 ChainOffset; /* 02h */ |
97 | U8 Function; /* 03h */ | 99 | U8 Function; /* 03h */ |
98 | U16 RequestDataLength; /* 04h */ | 100 | U16 RequestDataLength; /* 04h */ |
99 | U8 ConnectionRate; /* 06h */ | 101 | U8 ConnectionRate; /* 06h */ |
100 | U8 MsgFlags; /* 07h */ | 102 | U8 MsgFlags; /* 07h */ |
101 | U32 MsgContext; /* 08h */ | 103 | U32 MsgContext; /* 08h */ |
102 | U32 Reserved1; /* 0Ch */ | 104 | U32 Reserved1; /* 0Ch */ |
103 | U64 SASAddress; /* 10h */ | 105 | U64 SASAddress; /* 10h */ |
104 | U32 Reserved2; /* 18h */ | 106 | U32 Reserved2; /* 18h */ |
105 | U32 Reserved3; /* 1Ch */ | 107 | U32 Reserved3; /* 1Ch */ |
106 | SGE_SIMPLE_UNION SGL; /* 20h */ | 108 | SGE_SIMPLE_UNION SGL; /* 20h */ |
107 | } MSG_SMP_PASSTHROUGH_REQUEST, MPI_POINTER PTR_MSG_SMP_PASSTHROUGH_REQUEST, | 109 | } MSG_SMP_PASSTHROUGH_REQUEST, MPI_POINTER PTR_MSG_SMP_PASSTHROUGH_REQUEST, |
108 | SmpPassthroughRequest_t, MPI_POINTER pSmpPassthroughRequest_t; | 110 | SmpPassthroughRequest_t, MPI_POINTER pSmpPassthroughRequest_t; |
109 | 111 | ||
110 | /* values for PassthroughFlags field */ | 112 | /* values for PassthroughFlags field */ |
111 | #define MPI_SMP_PT_REQ_PT_FLAGS_IMMEDIATE (0x80) | 113 | #define MPI_SMP_PT_REQ_PT_FLAGS_IMMEDIATE (0x80) |
112 | 114 | ||
113 | /* values for ConnectionRate field */ | 115 | /* values for ConnectionRate field */ |
114 | #define MPI_SMP_PT_REQ_CONNECT_RATE_NEGOTIATED (0x00) | 116 | #define MPI_SMP_PT_REQ_CONNECT_RATE_NEGOTIATED (0x00) |
115 | #define MPI_SMP_PT_REQ_CONNECT_RATE_1_5 (0x08) | 117 | #define MPI_SMP_PT_REQ_CONNECT_RATE_1_5 (0x08) |
116 | #define MPI_SMP_PT_REQ_CONNECT_RATE_3_0 (0x09) | 118 | #define MPI_SMP_PT_REQ_CONNECT_RATE_3_0 (0x09) |
117 | 119 | ||
118 | 120 | ||
119 | /* Serial Management Protocol Passthrough Reply */ | 121 | /* Serial Management Protocol Passthrough Reply */ |
120 | typedef struct _MSG_SMP_PASSTHROUGH_REPLY | 122 | typedef struct _MSG_SMP_PASSTHROUGH_REPLY |
121 | { | 123 | { |
122 | U8 PassthroughFlags; /* 00h */ | 124 | U8 PassthroughFlags; /* 00h */ |
123 | U8 PhysicalPort; /* 01h */ | 125 | U8 PhysicalPort; /* 01h */ |
124 | U8 MsgLength; /* 02h */ | 126 | U8 MsgLength; /* 02h */ |
125 | U8 Function; /* 03h */ | 127 | U8 Function; /* 03h */ |
126 | U16 ResponseDataLength; /* 04h */ | 128 | U16 ResponseDataLength; /* 04h */ |
127 | U8 Reserved1; /* 06h */ | 129 | U8 Reserved1; /* 06h */ |
128 | U8 MsgFlags; /* 07h */ | 130 | U8 MsgFlags; /* 07h */ |
129 | U32 MsgContext; /* 08h */ | 131 | U32 MsgContext; /* 08h */ |
130 | U8 Reserved2; /* 0Ch */ | 132 | U8 Reserved2; /* 0Ch */ |
131 | U8 SASStatus; /* 0Dh */ | 133 | U8 SASStatus; /* 0Dh */ |
132 | U16 IOCStatus; /* 0Eh */ | 134 | U16 IOCStatus; /* 0Eh */ |
133 | U32 IOCLogInfo; /* 10h */ | 135 | U32 IOCLogInfo; /* 10h */ |
134 | U32 Reserved3; /* 14h */ | 136 | U32 Reserved3; /* 14h */ |
135 | U8 ResponseData[4]; /* 18h */ | 137 | U8 ResponseData[4]; /* 18h */ |
136 | } MSG_SMP_PASSTHROUGH_REPLY, MPI_POINTER PTR_MSG_SMP_PASSTHROUGH_REPLY, | 138 | } MSG_SMP_PASSTHROUGH_REPLY, MPI_POINTER PTR_MSG_SMP_PASSTHROUGH_REPLY, |
137 | SmpPassthroughReply_t, MPI_POINTER pSmpPassthroughReply_t; | 139 | SmpPassthroughReply_t, MPI_POINTER pSmpPassthroughReply_t; |
138 | 140 | ||
139 | #define MPI_SMP_PT_REPLY_PT_FLAGS_IMMEDIATE (0x80) | 141 | #define MPI_SMP_PT_REPLY_PT_FLAGS_IMMEDIATE (0x80) |
140 | 142 | ||
141 | 143 | ||
142 | /****************************************************************************/ | 144 | /****************************************************************************/ |
143 | /* SATA Passthrough Request */ | 145 | /* SATA Passthrough Request */ |
144 | /****************************************************************************/ | 146 | /****************************************************************************/ |
145 | 147 | ||
146 | typedef struct _MSG_SATA_PASSTHROUGH_REQUEST | 148 | typedef struct _MSG_SATA_PASSTHROUGH_REQUEST |
147 | { | 149 | { |
148 | U8 TargetID; /* 00h */ | 150 | U8 TargetID; /* 00h */ |
149 | U8 Bus; /* 01h */ | 151 | U8 Bus; /* 01h */ |
150 | U8 ChainOffset; /* 02h */ | 152 | U8 ChainOffset; /* 02h */ |
151 | U8 Function; /* 03h */ | 153 | U8 Function; /* 03h */ |
152 | U16 PassthroughFlags; /* 04h */ | 154 | U16 PassthroughFlags; /* 04h */ |
153 | U8 ConnectionRate; /* 06h */ | 155 | U8 ConnectionRate; /* 06h */ |
154 | U8 MsgFlags; /* 07h */ | 156 | U8 MsgFlags; /* 07h */ |
155 | U32 MsgContext; /* 08h */ | 157 | U32 MsgContext; /* 08h */ |
156 | U32 Reserved1; /* 0Ch */ | 158 | U32 Reserved1; /* 0Ch */ |
157 | U32 Reserved2; /* 10h */ | 159 | U32 Reserved2; /* 10h */ |
158 | U32 Reserved3; /* 14h */ | 160 | U32 Reserved3; /* 14h */ |
159 | U32 DataLength; /* 18h */ | 161 | U32 DataLength; /* 18h */ |
160 | U8 CommandFIS[20]; /* 1Ch */ | 162 | U8 CommandFIS[20]; /* 1Ch */ |
161 | SGE_SIMPLE_UNION SGL; /* 30h */ | 163 | SGE_SIMPLE_UNION SGL; /* 30h */ |
162 | } MSG_SATA_PASSTHROUGH_REQUEST, MPI_POINTER PTR_MSG_SATA_PASSTHROUGH_REQUEST, | 164 | } MSG_SATA_PASSTHROUGH_REQUEST, MPI_POINTER PTR_MSG_SATA_PASSTHROUGH_REQUEST, |
163 | SataPassthroughRequest_t, MPI_POINTER pSataPassthroughRequest_t; | 165 | SataPassthroughRequest_t, MPI_POINTER pSataPassthroughRequest_t; |
164 | 166 | ||
165 | /* values for PassthroughFlags field */ | 167 | /* values for PassthroughFlags field */ |
166 | #define MPI_SATA_PT_REQ_PT_FLAGS_RESET_DEVICE (0x0200) | 168 | #define MPI_SATA_PT_REQ_PT_FLAGS_RESET_DEVICE (0x0200) |
167 | #define MPI_SATA_PT_REQ_PT_FLAGS_EXECUTE_DIAG (0x0100) | 169 | #define MPI_SATA_PT_REQ_PT_FLAGS_EXECUTE_DIAG (0x0100) |
168 | #define MPI_SATA_PT_REQ_PT_FLAGS_DMA_QUEUED (0x0080) | 170 | #define MPI_SATA_PT_REQ_PT_FLAGS_DMA_QUEUED (0x0080) |
169 | #define MPI_SATA_PT_REQ_PT_FLAGS_PACKET_COMMAND (0x0040) | 171 | #define MPI_SATA_PT_REQ_PT_FLAGS_PACKET_COMMAND (0x0040) |
170 | #define MPI_SATA_PT_REQ_PT_FLAGS_DMA (0x0020) | 172 | #define MPI_SATA_PT_REQ_PT_FLAGS_DMA (0x0020) |
171 | #define MPI_SATA_PT_REQ_PT_FLAGS_PIO (0x0010) | 173 | #define MPI_SATA_PT_REQ_PT_FLAGS_PIO (0x0010) |
172 | #define MPI_SATA_PT_REQ_PT_FLAGS_UNSPECIFIED_VU (0x0004) | 174 | #define MPI_SATA_PT_REQ_PT_FLAGS_UNSPECIFIED_VU (0x0004) |
173 | #define MPI_SATA_PT_REQ_PT_FLAGS_WRITE (0x0002) | 175 | #define MPI_SATA_PT_REQ_PT_FLAGS_WRITE (0x0002) |
174 | #define MPI_SATA_PT_REQ_PT_FLAGS_READ (0x0001) | 176 | #define MPI_SATA_PT_REQ_PT_FLAGS_READ (0x0001) |
175 | 177 | ||
176 | /* values for ConnectionRate field */ | 178 | /* values for ConnectionRate field */ |
177 | #define MPI_SATA_PT_REQ_CONNECT_RATE_NEGOTIATED (0x00) | 179 | #define MPI_SATA_PT_REQ_CONNECT_RATE_NEGOTIATED (0x00) |
178 | #define MPI_SATA_PT_REQ_CONNECT_RATE_1_5 (0x08) | 180 | #define MPI_SATA_PT_REQ_CONNECT_RATE_1_5 (0x08) |
179 | #define MPI_SATA_PT_REQ_CONNECT_RATE_3_0 (0x09) | 181 | #define MPI_SATA_PT_REQ_CONNECT_RATE_3_0 (0x09) |
180 | 182 | ||
181 | 183 | ||
182 | /* SATA Passthrough Reply */ | 184 | /* SATA Passthrough Reply */ |
183 | typedef struct _MSG_SATA_PASSTHROUGH_REPLY | 185 | typedef struct _MSG_SATA_PASSTHROUGH_REPLY |
184 | { | 186 | { |
185 | U8 TargetID; /* 00h */ | 187 | U8 TargetID; /* 00h */ |
186 | U8 Bus; /* 01h */ | 188 | U8 Bus; /* 01h */ |
187 | U8 MsgLength; /* 02h */ | 189 | U8 MsgLength; /* 02h */ |
188 | U8 Function; /* 03h */ | 190 | U8 Function; /* 03h */ |
189 | U16 PassthroughFlags; /* 04h */ | 191 | U16 PassthroughFlags; /* 04h */ |
190 | U8 Reserved1; /* 06h */ | 192 | U8 Reserved1; /* 06h */ |
191 | U8 MsgFlags; /* 07h */ | 193 | U8 MsgFlags; /* 07h */ |
192 | U32 MsgContext; /* 08h */ | 194 | U32 MsgContext; /* 08h */ |
193 | U8 Reserved2; /* 0Ch */ | 195 | U8 Reserved2; /* 0Ch */ |
194 | U8 SASStatus; /* 0Dh */ | 196 | U8 SASStatus; /* 0Dh */ |
195 | U16 IOCStatus; /* 0Eh */ | 197 | U16 IOCStatus; /* 0Eh */ |
196 | U32 IOCLogInfo; /* 10h */ | 198 | U32 IOCLogInfo; /* 10h */ |
197 | U8 StatusFIS[20]; /* 14h */ | 199 | U8 StatusFIS[20]; /* 14h */ |
198 | U32 StatusControlRegisters; /* 28h */ | 200 | U32 StatusControlRegisters; /* 28h */ |
199 | U32 TransferCount; /* 2Ch */ | 201 | U32 TransferCount; /* 2Ch */ |
200 | } MSG_SATA_PASSTHROUGH_REPLY, MPI_POINTER PTR_MSG_SATA_PASSTHROUGH_REPLY, | 202 | } MSG_SATA_PASSTHROUGH_REPLY, MPI_POINTER PTR_MSG_SATA_PASSTHROUGH_REPLY, |
201 | SataPassthroughReply_t, MPI_POINTER pSataPassthroughReply_t; | 203 | SataPassthroughReply_t, MPI_POINTER pSataPassthroughReply_t; |
202 | 204 | ||
203 | 205 | ||
204 | 206 | ||
205 | 207 | ||
206 | /****************************************************************************/ | 208 | /****************************************************************************/ |
207 | /* SAS IO Unit Control Request */ | 209 | /* SAS IO Unit Control Request */ |
208 | /****************************************************************************/ | 210 | /****************************************************************************/ |
209 | 211 | ||
210 | typedef struct _MSG_SAS_IOUNIT_CONTROL_REQUEST | 212 | typedef struct _MSG_SAS_IOUNIT_CONTROL_REQUEST |
211 | { | 213 | { |
212 | U8 Operation; /* 00h */ | 214 | U8 Operation; /* 00h */ |
213 | U8 Reserved1; /* 01h */ | 215 | U8 Reserved1; /* 01h */ |
214 | U8 ChainOffset; /* 02h */ | 216 | U8 ChainOffset; /* 02h */ |
215 | U8 Function; /* 03h */ | 217 | U8 Function; /* 03h */ |
216 | U16 DevHandle; /* 04h */ | 218 | U16 DevHandle; /* 04h */ |
217 | U8 Reserved3; /* 06h */ | 219 | U8 Reserved3; /* 06h */ |
218 | U8 MsgFlags; /* 07h */ | 220 | U8 MsgFlags; /* 07h */ |
219 | U32 MsgContext; /* 08h */ | 221 | U32 MsgContext; /* 08h */ |
220 | U8 TargetID; /* 0Ch */ | 222 | U8 TargetID; /* 0Ch */ |
221 | U8 Bus; /* 0Dh */ | 223 | U8 Bus; /* 0Dh */ |
222 | U8 PhyNum; /* 0Eh */ | 224 | U8 PhyNum; /* 0Eh */ |
223 | U8 PrimFlags; /* 0Fh */ | 225 | U8 PrimFlags; /* 0Fh */ |
224 | U32 Primitive; /* 10h */ | 226 | U32 Primitive; /* 10h */ |
225 | U64 SASAddress; /* 14h */ | 227 | U64 SASAddress; /* 14h */ |
226 | U32 Reserved4; /* 1Ch */ | 228 | U32 Reserved4; /* 1Ch */ |
227 | } MSG_SAS_IOUNIT_CONTROL_REQUEST, MPI_POINTER PTR_MSG_SAS_IOUNIT_CONTROL_REQUEST, | 229 | } MSG_SAS_IOUNIT_CONTROL_REQUEST, MPI_POINTER PTR_MSG_SAS_IOUNIT_CONTROL_REQUEST, |
228 | SasIoUnitControlRequest_t, MPI_POINTER pSasIoUnitControlRequest_t; | 230 | SasIoUnitControlRequest_t, MPI_POINTER pSasIoUnitControlRequest_t; |
229 | 231 | ||
230 | /* values for the Operation field */ | 232 | /* values for the Operation field */ |
231 | #define MPI_SAS_OP_CLEAR_NOT_PRESENT (0x01) | 233 | #define MPI_SAS_OP_CLEAR_NOT_PRESENT (0x01) |
232 | #define MPI_SAS_OP_CLEAR_ALL_PERSISTENT (0x02) | 234 | #define MPI_SAS_OP_CLEAR_ALL_PERSISTENT (0x02) |
233 | #define MPI_SAS_OP_PHY_LINK_RESET (0x06) | 235 | #define MPI_SAS_OP_PHY_LINK_RESET (0x06) |
234 | #define MPI_SAS_OP_PHY_HARD_RESET (0x07) | 236 | #define MPI_SAS_OP_PHY_HARD_RESET (0x07) |
235 | #define MPI_SAS_OP_PHY_CLEAR_ERROR_LOG (0x08) | 237 | #define MPI_SAS_OP_PHY_CLEAR_ERROR_LOG (0x08) |
236 | #define MPI_SAS_OP_MAP_CURRENT (0x09) | 238 | #define MPI_SAS_OP_MAP_CURRENT (0x09) |
237 | #define MPI_SAS_OP_SEND_PRIMITIVE (0x0A) | 239 | #define MPI_SAS_OP_SEND_PRIMITIVE (0x0A) |
238 | #define MPI_SAS_OP_FORCE_FULL_DISCOVERY (0x0B) | 240 | #define MPI_SAS_OP_FORCE_FULL_DISCOVERY (0x0B) |
239 | #define MPI_SAS_OP_TRANSMIT_PORT_SELECT_SIGNAL (0x0C) | 241 | #define MPI_SAS_OP_TRANSMIT_PORT_SELECT_SIGNAL (0x0C) |
240 | #define MPI_SAS_OP_TRANSMIT_REMOVE_DEVICE (0x0D) | 242 | #define MPI_SAS_OP_TRANSMIT_REMOVE_DEVICE (0x0D) /* obsolete name */ |
243 | #define MPI_SAS_OP_REMOVE_DEVICE (0x0D) | ||
241 | 244 | ||
242 | /* values for the PrimFlags field */ | 245 | /* values for the PrimFlags field */ |
243 | #define MPI_SAS_PRIMFLAGS_SINGLE (0x08) | 246 | #define MPI_SAS_PRIMFLAGS_SINGLE (0x08) |
244 | #define MPI_SAS_PRIMFLAGS_TRIPLE (0x02) | 247 | #define MPI_SAS_PRIMFLAGS_TRIPLE (0x02) |
245 | #define MPI_SAS_PRIMFLAGS_REDUNDANT (0x01) | 248 | #define MPI_SAS_PRIMFLAGS_REDUNDANT (0x01) |
246 | 249 | ||
247 | 250 | ||
248 | /* SAS IO Unit Control Reply */ | 251 | /* SAS IO Unit Control Reply */ |
249 | typedef struct _MSG_SAS_IOUNIT_CONTROL_REPLY | 252 | typedef struct _MSG_SAS_IOUNIT_CONTROL_REPLY |
250 | { | 253 | { |
251 | U8 Operation; /* 00h */ | 254 | U8 Operation; /* 00h */ |
252 | U8 Reserved1; /* 01h */ | 255 | U8 Reserved1; /* 01h */ |
253 | U8 MsgLength; /* 02h */ | 256 | U8 MsgLength; /* 02h */ |
254 | U8 Function; /* 03h */ | 257 | U8 Function; /* 03h */ |
255 | U16 DevHandle; /* 04h */ | 258 | U16 DevHandle; /* 04h */ |
256 | U8 Reserved3; /* 06h */ | 259 | U8 Reserved3; /* 06h */ |
257 | U8 MsgFlags; /* 07h */ | 260 | U8 MsgFlags; /* 07h */ |
258 | U32 MsgContext; /* 08h */ | 261 | U32 MsgContext; /* 08h */ |
259 | U16 Reserved4; /* 0Ch */ | 262 | U16 Reserved4; /* 0Ch */ |
260 | U16 IOCStatus; /* 0Eh */ | 263 | U16 IOCStatus; /* 0Eh */ |
261 | U32 IOCLogInfo; /* 10h */ | 264 | U32 IOCLogInfo; /* 10h */ |
262 | } MSG_SAS_IOUNIT_CONTROL_REPLY, MPI_POINTER PTR_MSG_SAS_IOUNIT_CONTROL_REPLY, | 265 | } MSG_SAS_IOUNIT_CONTROL_REPLY, MPI_POINTER PTR_MSG_SAS_IOUNIT_CONTROL_REPLY, |
263 | SasIoUnitControlReply_t, MPI_POINTER pSasIoUnitControlReply_t; | 266 | SasIoUnitControlReply_t, MPI_POINTER pSasIoUnitControlReply_t; |
264 | 267 | ||
265 | #endif | 268 | #endif |
266 | 269 | ||
267 | 270 | ||
268 | 271 |