Deleted Added
full compact
mpi_ioc.h (147883) mpi_ioc.h (154603)
1/* $FreeBSD: head/sys/dev/mpt/mpilib/mpi_ioc.h 147883 2005-07-10 15:05:39Z scottl $ */
1/* $FreeBSD: head/sys/dev/mpt/mpilib/mpi_ioc.h 154603 2006-01-21 00:29:52Z mjacob $ */
2/*-
3 * Copyright (c) 2000-2005, LSI Logic Corporation and its contributors.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met:
9 * 1. Redistributions of source code must retain the above copyright

--- 13 unchanged lines hidden (view full) ---

23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF THE COPYRIGHT
30 * OWNER OR CONTRIBUTOR IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2/*-
3 * Copyright (c) 2000-2005, LSI Logic Corporation and its contributors.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met:
9 * 1. Redistributions of source code must retain the above copyright

--- 13 unchanged lines hidden (view full) ---

23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF THE COPYRIGHT
30 * OWNER OR CONTRIBUTOR IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 *
32 *
33 * Name: MPI_IOC.H
31 *
32 *
33 * Name: mpi_ioc.h
34 * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages
35 * Creation Date: August 11, 2000
36 *
34 * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages
35 * Creation Date: August 11, 2000
36 *
37 * MPI_IOC.H Version: 01.02.08
37 * mpi_ioc.h Version: 01.05.09
38 *
39 * Version History
40 * ---------------
41 *
42 * Date Version Description
43 * -------- -------- ------------------------------------------------------
44 * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000.
45 * 05-24-00 00.10.02 Added _MSG_IOC_INIT_REPLY structure.

--- 34 unchanged lines hidden (view full) ---

80 * 09-28-01 01.02.03 Modified Event Data for Integrated RAID.
81 * 11-01-01 01.02.04 Added defines for MPI_EXT_IMAGE_HEADER ImageType field.
82 * 03-14-02 01.02.05 Added HeaderVersion field to MSG_IOC_FACTS_REPLY.
83 * 05-31-02 01.02.06 Added define for
84 * MPI_IOCFACTS_EXCEPT_RAID_CONFIG_INVALID.
85 * Added AliasIndex to EVENT_DATA_LOGOUT structure.
86 * 04-01-03 01.02.07 Added defines for MPI_FW_HEADER_SIGNATURE_.
87 * 06-26-03 01.02.08 Added new values to the product family defines.
38 *
39 * Version History
40 * ---------------
41 *
42 * Date Version Description
43 * -------- -------- ------------------------------------------------------
44 * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000.
45 * 05-24-00 00.10.02 Added _MSG_IOC_INIT_REPLY structure.

--- 34 unchanged lines hidden (view full) ---

80 * 09-28-01 01.02.03 Modified Event Data for Integrated RAID.
81 * 11-01-01 01.02.04 Added defines for MPI_EXT_IMAGE_HEADER ImageType field.
82 * 03-14-02 01.02.05 Added HeaderVersion field to MSG_IOC_FACTS_REPLY.
83 * 05-31-02 01.02.06 Added define for
84 * MPI_IOCFACTS_EXCEPT_RAID_CONFIG_INVALID.
85 * Added AliasIndex to EVENT_DATA_LOGOUT structure.
86 * 04-01-03 01.02.07 Added defines for MPI_FW_HEADER_SIGNATURE_.
87 * 06-26-03 01.02.08 Added new values to the product family defines.
88 * 04-29-04 01.02.09 Added IOCCapabilities field to MSG_IOC_FACTS_REPLY and
89 * added related defines.
90 * 05-11-04 01.03.01 Original release for MPI v1.3.
91 * 08-19-04 01.05.01 Added four new fields to MSG_IOC_INIT.
92 * Added three new fields to MSG_IOC_FACTS_REPLY.
93 * Defined four new bits for the IOCCapabilities field of
94 * the IOCFacts reply.
95 * Added two new PortTypes for the PortFacts reply.
96 * Added six new events along with their EventData
97 * structures.
98 * Added a new MsgFlag to the FwDownload request to
99 * indicate last segment.
100 * Defined a new image type of boot loader.
101 * Added FW family codes for SAS product families.
102 * 10-05-04 01.05.02 Added ReplyFifoHostSignalingAddr field to
103 * MSG_IOC_FACTS_REPLY.
104 * 12-07-04 01.05.03 Added more defines for SAS Discovery Error event.
105 * 12-09-04 01.05.04 Added Unsupported device to SAS Device event.
106 * 01-15-05 01.05.05 Added event data for SAS SES Event.
107 * 02-09-05 01.05.06 Added MPI_FW_UPLOAD_ITYPE_FW_BACKUP define.
108 * 02-22-05 01.05.07 Added Host Page Buffer Persistent flag to IOC Facts
109 * Reply and IOC Init Request.
110 * 03-11-05 01.05.08 Added family code for 1068E family.
111 * Removed IOCFacts Reply EEDP Capability bit.
112 * 06-24-05 01.05.09 Added 5 new IOCFacts Reply IOCCapabilities bits.
113 * Added Max SATA Targets to SAS Discovery Error event.
88 * --------------------------------------------------------------------------
89 */
90
91#ifndef MPI_IOC_H
92#define MPI_IOC_H
93
94
95/*****************************************************************************

--- 16 unchanged lines hidden (view full) ---

112 U8 MaxDevices; /* 05h */
113 U8 MaxBuses; /* 06h */
114 U8 MsgFlags; /* 07h */
115 U32 MsgContext; /* 08h */
116 U16 ReplyFrameSize; /* 0Ch */
117 U8 Reserved1[2]; /* 0Eh */
118 U32 HostMfaHighAddr; /* 10h */
119 U32 SenseBufferHighAddr; /* 14h */
114 * --------------------------------------------------------------------------
115 */
116
117#ifndef MPI_IOC_H
118#define MPI_IOC_H
119
120
121/*****************************************************************************

--- 16 unchanged lines hidden (view full) ---

138 U8 MaxDevices; /* 05h */
139 U8 MaxBuses; /* 06h */
140 U8 MsgFlags; /* 07h */
141 U32 MsgContext; /* 08h */
142 U16 ReplyFrameSize; /* 0Ch */
143 U8 Reserved1[2]; /* 0Eh */
144 U32 HostMfaHighAddr; /* 10h */
145 U32 SenseBufferHighAddr; /* 14h */
146 U32 ReplyFifoHostSignalingAddr; /* 18h */
147 SGE_SIMPLE_UNION HostPageBufferSGE; /* 1Ch */
148 U16 MsgVersion; /* 28h */
149 U16 HeaderVersion; /* 2Ah */
120} MSG_IOC_INIT, MPI_POINTER PTR_MSG_IOC_INIT,
121 IOCInit_t, MPI_POINTER pIOCInit_t;
122
123/* WhoInit values */
124#define MPI_WHOINIT_NO_ONE (0x00)
125#define MPI_WHOINIT_SYSTEM_BIOS (0x01)
126#define MPI_WHOINIT_ROM_BIOS (0x02)
127#define MPI_WHOINIT_PCI_PEER (0x03)
128#define MPI_WHOINIT_HOST_DRIVER (0x04)
129#define MPI_WHOINIT_MANUFACTURER (0x05)
130
131/* Flags values */
150} MSG_IOC_INIT, MPI_POINTER PTR_MSG_IOC_INIT,
151 IOCInit_t, MPI_POINTER pIOCInit_t;
152
153/* WhoInit values */
154#define MPI_WHOINIT_NO_ONE (0x00)
155#define MPI_WHOINIT_SYSTEM_BIOS (0x01)
156#define MPI_WHOINIT_ROM_BIOS (0x02)
157#define MPI_WHOINIT_PCI_PEER (0x03)
158#define MPI_WHOINIT_HOST_DRIVER (0x04)
159#define MPI_WHOINIT_MANUFACTURER (0x05)
160
161/* Flags values */
162#define MPI_IOCINIT_FLAGS_HOST_PAGE_BUFFER_PERSISTENT (0x04)
163#define MPI_IOCINIT_FLAGS_REPLY_FIFO_HOST_SIGNAL (0x02)
132#define MPI_IOCINIT_FLAGS_DISCARD_FW_IMAGE (0x01)
133
164#define MPI_IOCINIT_FLAGS_DISCARD_FW_IMAGE (0x01)
165
166/* MsgVersion */
167#define MPI_IOCINIT_MSGVERSION_MAJOR_MASK (0xFF00)
168#define MPI_IOCINIT_MSGVERSION_MAJOR_SHIFT (8)
169#define MPI_IOCINIT_MSGVERSION_MINOR_MASK (0x00FF)
170#define MPI_IOCINIT_MSGVERSION_MINOR_SHIFT (0)
171
172/* HeaderVersion */
173#define MPI_IOCINIT_HEADERVERSION_UNIT_MASK (0xFF00)
174#define MPI_IOCINIT_HEADERVERSION_UNIT_SHIFT (8)
175#define MPI_IOCINIT_HEADERVERSION_DEV_MASK (0x00FF)
176#define MPI_IOCINIT_HEADERVERSION_DEV_SHIFT (0)
177
178
134typedef struct _MSG_IOC_INIT_REPLY
135{
136 U8 WhoInit; /* 00h */
137 U8 Reserved; /* 01h */
138 U8 MsgLength; /* 02h */
139 U8 Function; /* 03h */
140 U8 Flags; /* 04h */
141 U8 MaxDevices; /* 05h */

--- 62 unchanged lines hidden (view full) ---

204 U16 GlobalCredits; /* 24h */
205 U8 NumberOfPorts; /* 26h */
206 U8 EventState; /* 27h */
207 U32 CurrentSenseBufferHighAddr; /* 28h */
208 U16 CurReplyFrameSize; /* 2Ch */
209 U8 MaxDevices; /* 2Eh */
210 U8 MaxBuses; /* 2Fh */
211 U32 FWImageSize; /* 30h */
179typedef struct _MSG_IOC_INIT_REPLY
180{
181 U8 WhoInit; /* 00h */
182 U8 Reserved; /* 01h */
183 U8 MsgLength; /* 02h */
184 U8 Function; /* 03h */
185 U8 Flags; /* 04h */
186 U8 MaxDevices; /* 05h */

--- 62 unchanged lines hidden (view full) ---

249 U16 GlobalCredits; /* 24h */
250 U8 NumberOfPorts; /* 26h */
251 U8 EventState; /* 27h */
252 U32 CurrentSenseBufferHighAddr; /* 28h */
253 U16 CurReplyFrameSize; /* 2Ch */
254 U8 MaxDevices; /* 2Eh */
255 U8 MaxBuses; /* 2Fh */
256 U32 FWImageSize; /* 30h */
212 U32 Reserved4; /* 34h */
257 U32 IOCCapabilities; /* 34h */
213 MPI_FW_VERSION FWVersion; /* 38h */
258 MPI_FW_VERSION FWVersion; /* 38h */
259 U16 HighPriorityQueueDepth; /* 3Ch */
260 U16 Reserved2; /* 3Eh */
261 SGE_SIMPLE_UNION HostPageBufferSGE; /* 40h */
262 U32 ReplyFifoHostSignalingAddr; /* 4Ch */
214} MSG_IOC_FACTS_REPLY, MPI_POINTER PTR_MSG_IOC_FACTS_REPLY,
215 IOCFactsReply_t, MPI_POINTER pIOCFactsReply_t;
216
217#define MPI_IOCFACTS_MSGVERSION_MAJOR_MASK (0xFF00)
263} MSG_IOC_FACTS_REPLY, MPI_POINTER PTR_MSG_IOC_FACTS_REPLY,
264 IOCFactsReply_t, MPI_POINTER pIOCFactsReply_t;
265
266#define MPI_IOCFACTS_MSGVERSION_MAJOR_MASK (0xFF00)
267#define MPI_IOCFACTS_MSGVERSION_MAJOR_SHIFT (8)
218#define MPI_IOCFACTS_MSGVERSION_MINOR_MASK (0x00FF)
268#define MPI_IOCFACTS_MSGVERSION_MINOR_MASK (0x00FF)
269#define MPI_IOCFACTS_MSGVERSION_MINOR_SHIFT (0)
219
270
220#define MPI_IOCFACTS_HEADERVERSION_UNIT_MASK (0xFF00)
221#define MPI_IOCFACTS_HEADERVERSION_DEV_MASK (0x00FF)
271#define MPI_IOCFACTS_HDRVERSION_UNIT_MASK (0xFF00)
272#define MPI_IOCFACTS_HDRVERSION_UNIT_SHIFT (8)
273#define MPI_IOCFACTS_HDRVERSION_DEV_MASK (0x00FF)
274#define MPI_IOCFACTS_HDRVERSION_DEV_SHIFT (0)
222
223#define MPI_IOCFACTS_EXCEPT_CONFIG_CHECKSUM_FAIL (0x0001)
224#define MPI_IOCFACTS_EXCEPT_RAID_CONFIG_INVALID (0x0002)
275
276#define MPI_IOCFACTS_EXCEPT_CONFIG_CHECKSUM_FAIL (0x0001)
277#define MPI_IOCFACTS_EXCEPT_RAID_CONFIG_INVALID (0x0002)
278#define MPI_IOCFACTS_EXCEPT_FW_CHECKSUM_FAIL (0x0004)
279#define MPI_IOCFACTS_EXCEPT_PERSISTENT_TABLE_FULL (0x0008)
225
226#define MPI_IOCFACTS_FLAGS_FW_DOWNLOAD_BOOT (0x01)
280
281#define MPI_IOCFACTS_FLAGS_FW_DOWNLOAD_BOOT (0x01)
282#define MPI_IOCFACTS_FLAGS_REPLY_FIFO_HOST_SIGNAL (0x02)
283#define MPI_IOCFACTS_FLAGS_HOST_PAGE_BUFFER_PERSISTENT (0x04)
227
228#define MPI_IOCFACTS_EVENTSTATE_DISABLED (0x00)
229#define MPI_IOCFACTS_EVENTSTATE_ENABLED (0x01)
230
284
285#define MPI_IOCFACTS_EVENTSTATE_DISABLED (0x00)
286#define MPI_IOCFACTS_EVENTSTATE_ENABLED (0x01)
287
288#define MPI_IOCFACTS_CAPABILITY_HIGH_PRI_Q (0x00000001)
289#define MPI_IOCFACTS_CAPABILITY_REPLY_HOST_SIGNAL (0x00000002)
290#define MPI_IOCFACTS_CAPABILITY_QUEUE_FULL_HANDLING (0x00000004)
291#define MPI_IOCFACTS_CAPABILITY_DIAG_TRACE_BUFFER (0x00000008)
292#define MPI_IOCFACTS_CAPABILITY_SNAPSHOT_BUFFER (0x00000010)
293#define MPI_IOCFACTS_CAPABILITY_EXTENDED_BUFFER (0x00000020)
294#define MPI_IOCFACTS_CAPABILITY_EEDP (0x00000040)
295#define MPI_IOCFACTS_CAPABILITY_BIDIRECTIONAL (0x00000080)
296#define MPI_IOCFACTS_CAPABILITY_MULTICAST (0x00000100)
297#define MPI_IOCFACTS_CAPABILITY_SCSIIO32 (0x00000200)
298#define MPI_IOCFACTS_CAPABILITY_NO_SCSIIO16 (0x00000400)
231
232
233/*****************************************************************************
234*
235* P o r t M e s s a g e s
236*
237*****************************************************************************/
238

--- 39 unchanged lines hidden (view full) ---

278 PortFactsReply_t, MPI_POINTER pPortFactsReply_t;
279
280
281/* PortTypes values */
282
283#define MPI_PORTFACTS_PORTTYPE_INACTIVE (0x00)
284#define MPI_PORTFACTS_PORTTYPE_SCSI (0x01)
285#define MPI_PORTFACTS_PORTTYPE_FC (0x10)
299
300
301/*****************************************************************************
302*
303* P o r t M e s s a g e s
304*
305*****************************************************************************/
306

--- 39 unchanged lines hidden (view full) ---

346 PortFactsReply_t, MPI_POINTER pPortFactsReply_t;
347
348
349/* PortTypes values */
350
351#define MPI_PORTFACTS_PORTTYPE_INACTIVE (0x00)
352#define MPI_PORTFACTS_PORTTYPE_SCSI (0x01)
353#define MPI_PORTFACTS_PORTTYPE_FC (0x10)
354#define MPI_PORTFACTS_PORTTYPE_ISCSI (0x20)
355#define MPI_PORTFACTS_PORTTYPE_SAS (0x30)
286
287/* ProtocolFlags values */
288
289#define MPI_PORTFACTS_PROTOCOL_LOGBUSADDR (0x01)
290#define MPI_PORTFACTS_PROTOCOL_LAN (0x02)
291#define MPI_PORTFACTS_PROTOCOL_TARGET (0x04)
292#define MPI_PORTFACTS_PROTOCOL_INITIATOR (0x08)
293

--- 117 unchanged lines hidden (view full) ---

411#define MPI_EVENT_RESCAN (0x00000006)
412#define MPI_EVENT_LINK_STATUS_CHANGE (0x00000007)
413#define MPI_EVENT_LOOP_STATE_CHANGE (0x00000008)
414#define MPI_EVENT_LOGOUT (0x00000009)
415#define MPI_EVENT_EVENT_CHANGE (0x0000000A)
416#define MPI_EVENT_INTEGRATED_RAID (0x0000000B)
417#define MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE (0x0000000C)
418#define MPI_EVENT_ON_BUS_TIMER_EXPIRED (0x0000000D)
356
357/* ProtocolFlags values */
358
359#define MPI_PORTFACTS_PROTOCOL_LOGBUSADDR (0x01)
360#define MPI_PORTFACTS_PROTOCOL_LAN (0x02)
361#define MPI_PORTFACTS_PROTOCOL_TARGET (0x04)
362#define MPI_PORTFACTS_PROTOCOL_INITIATOR (0x08)
363

--- 117 unchanged lines hidden (view full) ---

481#define MPI_EVENT_RESCAN (0x00000006)
482#define MPI_EVENT_LINK_STATUS_CHANGE (0x00000007)
483#define MPI_EVENT_LOOP_STATE_CHANGE (0x00000008)
484#define MPI_EVENT_LOGOUT (0x00000009)
485#define MPI_EVENT_EVENT_CHANGE (0x0000000A)
486#define MPI_EVENT_INTEGRATED_RAID (0x0000000B)
487#define MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE (0x0000000C)
488#define MPI_EVENT_ON_BUS_TIMER_EXPIRED (0x0000000D)
489#define MPI_EVENT_QUEUE_FULL (0x0000000E)
490#define MPI_EVENT_SAS_DEVICE_STATUS_CHANGE (0x0000000F)
491#define MPI_EVENT_SAS_SES (0x00000010)
492#define MPI_EVENT_PERSISTENT_TABLE_FULL (0x00000011)
493#define MPI_EVENT_SAS_PHY_LINK_STATUS (0x00000012)
494#define MPI_EVENT_SAS_DISCOVERY_ERROR (0x00000013)
419
420/* AckRequired field values */
421
422#define MPI_EVENT_NOTIFICATION_ACK_NOT_REQUIRED (0x00)
423#define MPI_EVENT_NOTIFICATION_ACK_REQUIRED (0x01)
424
425/* EventChange Event data */
426

--- 31 unchanged lines hidden (view full) ---

458 MpiEventDataScsiDeviceStatusChange_t,
459 MPI_POINTER pMpiEventDataScsiDeviceStatusChange_t;
460
461/* MPI SCSI Device Status Change Event data ReasonCode values */
462#define MPI_EVENT_SCSI_DEV_STAT_RC_ADDED (0x03)
463#define MPI_EVENT_SCSI_DEV_STAT_RC_NOT_RESPONDING (0x04)
464#define MPI_EVENT_SCSI_DEV_STAT_RC_SMART_DATA (0x05)
465
495
496/* AckRequired field values */
497
498#define MPI_EVENT_NOTIFICATION_ACK_NOT_REQUIRED (0x00)
499#define MPI_EVENT_NOTIFICATION_ACK_REQUIRED (0x01)
500
501/* EventChange Event data */
502

--- 31 unchanged lines hidden (view full) ---

534 MpiEventDataScsiDeviceStatusChange_t,
535 MPI_POINTER pMpiEventDataScsiDeviceStatusChange_t;
536
537/* MPI SCSI Device Status Change Event data ReasonCode values */
538#define MPI_EVENT_SCSI_DEV_STAT_RC_ADDED (0x03)
539#define MPI_EVENT_SCSI_DEV_STAT_RC_NOT_RESPONDING (0x04)
540#define MPI_EVENT_SCSI_DEV_STAT_RC_SMART_DATA (0x05)
541
542/* SAS Device Status Change Event data */
543
544typedef struct _EVENT_DATA_SAS_DEVICE_STATUS_CHANGE
545{
546 U8 TargetID; /* 00h */
547 U8 Bus; /* 01h */
548 U8 ReasonCode; /* 02h */
549 U8 Reserved; /* 03h */
550 U8 ASC; /* 04h */
551 U8 ASCQ; /* 05h */
552 U16 DevHandle; /* 06h */
553 U32 DeviceInfo; /* 08h */
554 U16 ParentDevHandle; /* 0Ch */
555 U8 PhyNum; /* 0Eh */
556 U8 Reserved1; /* 0Fh */
557 U64 SASAddress; /* 10h */
558} EVENT_DATA_SAS_DEVICE_STATUS_CHANGE,
559 MPI_POINTER PTR_EVENT_DATA_SAS_DEVICE_STATUS_CHANGE,
560 MpiEventDataSasDeviceStatusChange_t,
561 MPI_POINTER pMpiEventDataSasDeviceStatusChange_t;
562
563/* MPI SAS Device Status Change Event data ReasonCode values */
564#define MPI_EVENT_SAS_DEV_STAT_RC_ADDED (0x03)
565#define MPI_EVENT_SAS_DEV_STAT_RC_NOT_RESPONDING (0x04)
566#define MPI_EVENT_SAS_DEV_STAT_RC_SMART_DATA (0x05)
567#define MPI_EVENT_SAS_DEV_STAT_RC_NO_PERSIST_ADDED (0x06)
568#define MPI_EVENT_SAS_DEV_STAT_RC_UNSUPPORTED (0x07)
569
570
571/* SCSI Event data for Queue Full event */
572
573typedef struct _EVENT_DATA_QUEUE_FULL
574{
575 U8 TargetID; /* 00h */
576 U8 Bus; /* 01h */
577 U16 CurrentDepth; /* 02h */
578} EVENT_DATA_QUEUE_FULL, MPI_POINTER PTR_EVENT_DATA_QUEUE_FULL,
579 EventDataQueueFull_t, MPI_POINTER pEventDataQueueFull_t;
580
581/* MPI Integrated RAID Event data */
582
583typedef struct _EVENT_DATA_RAID
584{
585 U8 VolumeID; /* 00h */
586 U8 VolumeBus; /* 01h */
587 U8 ReasonCode; /* 02h */
588 U8 PhysDiskNum; /* 03h */
589 U8 ASC; /* 04h */
590 U8 ASCQ; /* 05h */
591 U16 Reserved; /* 06h */
592 U32 SettingsStatus; /* 08h */
593} EVENT_DATA_RAID, MPI_POINTER PTR_EVENT_DATA_RAID,
594 MpiEventDataRaid_t, MPI_POINTER pMpiEventDataRaid_t;
595
596/* MPI Integrated RAID Event data ReasonCode values */
597#define MPI_EVENT_RAID_RC_VOLUME_CREATED (0x00)
598#define MPI_EVENT_RAID_RC_VOLUME_DELETED (0x01)
599#define MPI_EVENT_RAID_RC_VOLUME_SETTINGS_CHANGED (0x02)
600#define MPI_EVENT_RAID_RC_VOLUME_STATUS_CHANGED (0x03)
601#define MPI_EVENT_RAID_RC_VOLUME_PHYSDISK_CHANGED (0x04)
602#define MPI_EVENT_RAID_RC_PHYSDISK_CREATED (0x05)
603#define MPI_EVENT_RAID_RC_PHYSDISK_DELETED (0x06)
604#define MPI_EVENT_RAID_RC_PHYSDISK_SETTINGS_CHANGED (0x07)
605#define MPI_EVENT_RAID_RC_PHYSDISK_STATUS_CHANGED (0x08)
606#define MPI_EVENT_RAID_RC_DOMAIN_VAL_NEEDED (0x09)
607#define MPI_EVENT_RAID_RC_SMART_DATA (0x0A)
608#define MPI_EVENT_RAID_RC_REPLACE_ACTION_STARTED (0x0B)
609
466/* MPI Link Status Change Event data */
467
468typedef struct _EVENT_DATA_LINK_STATUS
469{
470 U8 State; /* 00h */
471 U8 Reserved; /* 01h */
472 U16 Reserved1; /* 02h */
473 U8 Reserved2; /* 04h */

--- 31 unchanged lines hidden (view full) ---

505 U8 AliasIndex; /* 04h */
506 U8 Port; /* 05h */
507 U16 Reserved1; /* 06h */
508} EVENT_DATA_LOGOUT, MPI_POINTER PTR_EVENT_DATA_LOGOUT,
509 EventDataLogout_t, MPI_POINTER pEventDataLogout_t;
510
511#define MPI_EVENT_LOGOUT_ALL_ALIASES (0xFF)
512
610/* MPI Link Status Change Event data */
611
612typedef struct _EVENT_DATA_LINK_STATUS
613{
614 U8 State; /* 00h */
615 U8 Reserved; /* 01h */
616 U16 Reserved1; /* 02h */
617 U8 Reserved2; /* 04h */

--- 31 unchanged lines hidden (view full) ---

649 U8 AliasIndex; /* 04h */
650 U8 Port; /* 05h */
651 U16 Reserved1; /* 06h */
652} EVENT_DATA_LOGOUT, MPI_POINTER PTR_EVENT_DATA_LOGOUT,
653 EventDataLogout_t, MPI_POINTER pEventDataLogout_t;
654
655#define MPI_EVENT_LOGOUT_ALL_ALIASES (0xFF)
656
657/* SAS SES Event data */
513
658
514/* MPI Integrated RAID Event data */
659typedef struct _EVENT_DATA_SAS_SES
660{
661 U8 PhyNum; /* 00h */
662 U8 Port; /* 01h */
663 U8 PortWidth; /* 02h */
664 U8 Reserved1; /* 04h */
665} EVENT_DATA_SAS_SES, MPI_POINTER PTR_EVENT_DATA_SAS_SES,
666 MpiEventDataSasSes_t, MPI_POINTER pMpiEventDataSasSes_t;
515
667
516typedef struct _EVENT_DATA_RAID
668/* SAS Phy Link Status Event data */
669
670typedef struct _EVENT_DATA_SAS_PHY_LINK_STATUS
517{
671{
518 U8 VolumeID; /* 00h */
519 U8 VolumeBus; /* 01h */
520 U8 ReasonCode; /* 02h */
521 U8 PhysDiskNum; /* 03h */
522 U8 ASC; /* 04h */
523 U8 ASCQ; /* 05h */
524 U16 Reserved; /* 06h */
525 U32 SettingsStatus; /* 08h */
526} EVENT_DATA_RAID, MPI_POINTER PTR_EVENT_DATA_RAID,
527 MpiEventDataRaid_t, MPI_POINTER pMpiEventDataRaid_t;
672 U8 PhyNum; /* 00h */
673 U8 LinkRates; /* 01h */
674 U16 DevHandle; /* 02h */
675 U64 SASAddress; /* 04h */
676} EVENT_DATA_SAS_PHY_LINK_STATUS, MPI_POINTER PTR_EVENT_DATA_SAS_PHY_LINK_STATUS,
677 MpiEventDataSasPhyLinkStatus_t, MPI_POINTER pMpiEventDataSasPhyLinkStatus_t;
528
678
529/* MPI Integrated RAID Event data ReasonCode values */
530#define MPI_EVENT_RAID_RC_VOLUME_CREATED (0x00)
531#define MPI_EVENT_RAID_RC_VOLUME_DELETED (0x01)
532#define MPI_EVENT_RAID_RC_VOLUME_SETTINGS_CHANGED (0x02)
533#define MPI_EVENT_RAID_RC_VOLUME_STATUS_CHANGED (0x03)
534#define MPI_EVENT_RAID_RC_VOLUME_PHYSDISK_CHANGED (0x04)
535#define MPI_EVENT_RAID_RC_PHYSDISK_CREATED (0x05)
536#define MPI_EVENT_RAID_RC_PHYSDISK_DELETED (0x06)
537#define MPI_EVENT_RAID_RC_PHYSDISK_SETTINGS_CHANGED (0x07)
538#define MPI_EVENT_RAID_RC_PHYSDISK_STATUS_CHANGED (0x08)
539#define MPI_EVENT_RAID_RC_DOMAIN_VAL_NEEDED (0x09)
540#define MPI_EVENT_RAID_RC_SMART_DATA (0x0A)
541#define MPI_EVENT_RAID_RC_REPLACE_ACTION_STARTED (0x0B)
679/* defines for the LinkRates field of the SAS PHY Link Status event */
680#define MPI_EVENT_SAS_PLS_LR_CURRENT_MASK (0xF0)
681#define MPI_EVENT_SAS_PLS_LR_CURRENT_SHIFT (4)
682#define MPI_EVENT_SAS_PLS_LR_PREVIOUS_MASK (0x0F)
683#define MPI_EVENT_SAS_PLS_LR_PREVIOUS_SHIFT (0)
684#define MPI_EVENT_SAS_PLS_LR_RATE_UNKNOWN (0x00)
685#define MPI_EVENT_SAS_PLS_LR_RATE_PHY_DISABLED (0x01)
686#define MPI_EVENT_SAS_PLS_LR_RATE_FAILED_SPEED_NEGOTIATION (0x02)
687#define MPI_EVENT_SAS_PLS_LR_RATE_SATA_OOB_COMPLETE (0x03)
688#define MPI_EVENT_SAS_PLS_LR_RATE_1_5 (0x08)
689#define MPI_EVENT_SAS_PLS_LR_RATE_3_0 (0x09)
542
690
691/* SAS Discovery Errror Event data */
543
692
693typedef struct _EVENT_DATA_DISCOVERY_ERROR
694{
695 U32 DiscoveryStatus; /* 00h */
696 U8 Port; /* 04h */
697 U8 Reserved1; /* 05h */
698 U16 Reserved2; /* 06h */
699} EVENT_DATA_DISCOVERY_ERROR, MPI_POINTER PTR_EVENT_DATA_DISCOVERY_ERROR,
700 EventDataDiscoveryError_t, MPI_POINTER pEventDataDiscoveryError_t;
701
702#define MPI_EVENT_DSCVRY_ERR_DS_LOOP_DETECTED (0x00000001)
703#define MPI_EVENT_DSCVRY_ERR_DS_UNADDRESSABLE_DEVICE (0x00000002)
704#define MPI_EVENT_DSCVRY_ERR_DS_MULTIPLE_PORTS (0x00000004)
705#define MPI_EVENT_DSCVRY_ERR_DS_EXPANDER_ERR (0x00000008)
706#define MPI_EVENT_DSCVRY_ERR_DS_SMP_TIMEOUT (0x00000010)
707#define MPI_EVENT_DSCVRY_ERR_DS_OUT_ROUTE_ENTRIES (0x00000020)
708#define MPI_EVENT_DSCVRY_ERR_DS_INDEX_NOT_EXIST (0x00000040)
709#define MPI_EVENT_DSCVRY_ERR_DS_SMP_FUNCTION_FAILED (0x00000080)
710#define MPI_EVENT_DSCVRY_ERR_DS_SMP_CRC_ERROR (0x00000100)
711#define MPI_EVENT_DSCVRY_ERR_DS_MULTPL_SUBTRACTIVE (0x00000200)
712#define MPI_EVENT_DSCVRY_ERR_DS_TABLE_TO_TABLE (0x00000400)
713#define MPI_EVENT_DSCVRY_ERR_DS_MULTPL_PATHS (0x00000800)
714#define MPI_EVENT_DSCVRY_ERR_DS_MAX_SATA_TARGETS (0x00001000)
715
716
544/*****************************************************************************
545*
546* F i r m w a r e L o a d M e s s a g e s
547*
548*****************************************************************************/
549
550/****************************************************************************/
551/* Firmware Download message and associated structures */

--- 7 unchanged lines hidden (view full) ---

559 U8 Function; /* 03h */
560 U8 Reserved1[3]; /* 04h */
561 U8 MsgFlags; /* 07h */
562 U32 MsgContext; /* 08h */
563 SGE_MPI_UNION SGL; /* 0Ch */
564} MSG_FW_DOWNLOAD, MPI_POINTER PTR_MSG_FW_DOWNLOAD,
565 FWDownload_t, MPI_POINTER pFWDownload_t;
566
717/*****************************************************************************
718*
719* F i r m w a r e L o a d M e s s a g e s
720*
721*****************************************************************************/
722
723/****************************************************************************/
724/* Firmware Download message and associated structures */

--- 7 unchanged lines hidden (view full) ---

732 U8 Function; /* 03h */
733 U8 Reserved1[3]; /* 04h */
734 U8 MsgFlags; /* 07h */
735 U32 MsgContext; /* 08h */
736 SGE_MPI_UNION SGL; /* 0Ch */
737} MSG_FW_DOWNLOAD, MPI_POINTER PTR_MSG_FW_DOWNLOAD,
738 FWDownload_t, MPI_POINTER pFWDownload_t;
739
740#define MPI_FW_DOWNLOAD_MSGFLGS_LAST_SEGMENT (0x01)
741
567#define MPI_FW_DOWNLOAD_ITYPE_RESERVED (0x00)
568#define MPI_FW_DOWNLOAD_ITYPE_FW (0x01)
569#define MPI_FW_DOWNLOAD_ITYPE_BIOS (0x02)
570#define MPI_FW_DOWNLOAD_ITYPE_NVDATA (0x03)
742#define MPI_FW_DOWNLOAD_ITYPE_RESERVED (0x00)
743#define MPI_FW_DOWNLOAD_ITYPE_FW (0x01)
744#define MPI_FW_DOWNLOAD_ITYPE_BIOS (0x02)
745#define MPI_FW_DOWNLOAD_ITYPE_NVDATA (0x03)
746#define MPI_FW_DOWNLOAD_ITYPE_BOOTLOADER (0x04)
571
572
573typedef struct _FWDownloadTCSGE
574{
575 U8 Reserved; /* 00h */
576 U8 ContextSize; /* 01h */
577 U8 DetailsLength; /* 02h */
578 U8 Flags; /* 03h */

--- 36 unchanged lines hidden (view full) ---

615 SGE_MPI_UNION SGL; /* 0Ch */
616} MSG_FW_UPLOAD, MPI_POINTER PTR_MSG_FW_UPLOAD,
617 FWUpload_t, MPI_POINTER pFWUpload_t;
618
619#define MPI_FW_UPLOAD_ITYPE_FW_IOC_MEM (0x00)
620#define MPI_FW_UPLOAD_ITYPE_FW_FLASH (0x01)
621#define MPI_FW_UPLOAD_ITYPE_BIOS_FLASH (0x02)
622#define MPI_FW_UPLOAD_ITYPE_NVDATA (0x03)
747
748
749typedef struct _FWDownloadTCSGE
750{
751 U8 Reserved; /* 00h */
752 U8 ContextSize; /* 01h */
753 U8 DetailsLength; /* 02h */
754 U8 Flags; /* 03h */

--- 36 unchanged lines hidden (view full) ---

791 SGE_MPI_UNION SGL; /* 0Ch */
792} MSG_FW_UPLOAD, MPI_POINTER PTR_MSG_FW_UPLOAD,
793 FWUpload_t, MPI_POINTER pFWUpload_t;
794
795#define MPI_FW_UPLOAD_ITYPE_FW_IOC_MEM (0x00)
796#define MPI_FW_UPLOAD_ITYPE_FW_FLASH (0x01)
797#define MPI_FW_UPLOAD_ITYPE_BIOS_FLASH (0x02)
798#define MPI_FW_UPLOAD_ITYPE_NVDATA (0x03)
799#define MPI_FW_UPLOAD_ITYPE_BOOTLOADER (0x04)
800#define MPI_FW_UPLOAD_ITYPE_FW_BACKUP (0x05)
623
624typedef struct _FWUploadTCSGE
625{
626 U8 Reserved; /* 00h */
627 U8 ContextSize; /* 01h */
628 U8 DetailsLength; /* 02h */
629 U8 Flags; /* 03h */
630 U32 Reserved1; /* 04h */

--- 47 unchanged lines hidden (view full) ---

678 MpiFwHeader_t, MPI_POINTER pMpiFwHeader_t;
679
680#define MPI_FW_HEADER_WHAT_SIGNATURE (0x29232840)
681
682/* defines for using the ProductId field */
683#define MPI_FW_HEADER_PID_TYPE_MASK (0xF000)
684#define MPI_FW_HEADER_PID_TYPE_SCSI (0x0000)
685#define MPI_FW_HEADER_PID_TYPE_FC (0x1000)
801
802typedef struct _FWUploadTCSGE
803{
804 U8 Reserved; /* 00h */
805 U8 ContextSize; /* 01h */
806 U8 DetailsLength; /* 02h */
807 U8 Flags; /* 03h */
808 U32 Reserved1; /* 04h */

--- 47 unchanged lines hidden (view full) ---

856 MpiFwHeader_t, MPI_POINTER pMpiFwHeader_t;
857
858#define MPI_FW_HEADER_WHAT_SIGNATURE (0x29232840)
859
860/* defines for using the ProductId field */
861#define MPI_FW_HEADER_PID_TYPE_MASK (0xF000)
862#define MPI_FW_HEADER_PID_TYPE_SCSI (0x0000)
863#define MPI_FW_HEADER_PID_TYPE_FC (0x1000)
864#define MPI_FW_HEADER_PID_TYPE_SAS (0x2000)
686
687#define MPI_FW_HEADER_SIGNATURE_0 (0x5AEAA55A)
688#define MPI_FW_HEADER_SIGNATURE_1 (0xA55AEAA5)
689#define MPI_FW_HEADER_SIGNATURE_2 (0x5AA55AEA)
690
691#define MPI_FW_HEADER_PID_PROD_MASK (0x0F00)
692#define MPI_FW_HEADER_PID_PROD_INITIATOR_SCSI (0x0100)
693#define MPI_FW_HEADER_PID_PROD_TARGET_INITIATOR_SCSI (0x0200)
694#define MPI_FW_HEADER_PID_PROD_TARGET_SCSI (0x0300)
695#define MPI_FW_HEADER_PID_PROD_IM_SCSI (0x0400)
696#define MPI_FW_HEADER_PID_PROD_IS_SCSI (0x0500)
697#define MPI_FW_HEADER_PID_PROD_CTX_SCSI (0x0600)
865
866#define MPI_FW_HEADER_SIGNATURE_0 (0x5AEAA55A)
867#define MPI_FW_HEADER_SIGNATURE_1 (0xA55AEAA5)
868#define MPI_FW_HEADER_SIGNATURE_2 (0x5AA55AEA)
869
870#define MPI_FW_HEADER_PID_PROD_MASK (0x0F00)
871#define MPI_FW_HEADER_PID_PROD_INITIATOR_SCSI (0x0100)
872#define MPI_FW_HEADER_PID_PROD_TARGET_INITIATOR_SCSI (0x0200)
873#define MPI_FW_HEADER_PID_PROD_TARGET_SCSI (0x0300)
874#define MPI_FW_HEADER_PID_PROD_IM_SCSI (0x0400)
875#define MPI_FW_HEADER_PID_PROD_IS_SCSI (0x0500)
876#define MPI_FW_HEADER_PID_PROD_CTX_SCSI (0x0600)
877#define MPI_FW_HEADER_PID_PROD_IR_SCSI (0x0700)
698
699#define MPI_FW_HEADER_PID_FAMILY_MASK (0x00FF)
878
879#define MPI_FW_HEADER_PID_FAMILY_MASK (0x00FF)
880/* SCSI */
700#define MPI_FW_HEADER_PID_FAMILY_1030A0_SCSI (0x0001)
701#define MPI_FW_HEADER_PID_FAMILY_1030B0_SCSI (0x0002)
702#define MPI_FW_HEADER_PID_FAMILY_1030B1_SCSI (0x0003)
703#define MPI_FW_HEADER_PID_FAMILY_1030C0_SCSI (0x0004)
704#define MPI_FW_HEADER_PID_FAMILY_1020A0_SCSI (0x0005)
705#define MPI_FW_HEADER_PID_FAMILY_1020B0_SCSI (0x0006)
706#define MPI_FW_HEADER_PID_FAMILY_1020B1_SCSI (0x0007)
707#define MPI_FW_HEADER_PID_FAMILY_1020C0_SCSI (0x0008)
708#define MPI_FW_HEADER_PID_FAMILY_1035A0_SCSI (0x0009)
709#define MPI_FW_HEADER_PID_FAMILY_1035B0_SCSI (0x000A)
710#define MPI_FW_HEADER_PID_FAMILY_1030TA0_SCSI (0x000B)
711#define MPI_FW_HEADER_PID_FAMILY_1020TA0_SCSI (0x000C)
881#define MPI_FW_HEADER_PID_FAMILY_1030A0_SCSI (0x0001)
882#define MPI_FW_HEADER_PID_FAMILY_1030B0_SCSI (0x0002)
883#define MPI_FW_HEADER_PID_FAMILY_1030B1_SCSI (0x0003)
884#define MPI_FW_HEADER_PID_FAMILY_1030C0_SCSI (0x0004)
885#define MPI_FW_HEADER_PID_FAMILY_1020A0_SCSI (0x0005)
886#define MPI_FW_HEADER_PID_FAMILY_1020B0_SCSI (0x0006)
887#define MPI_FW_HEADER_PID_FAMILY_1020B1_SCSI (0x0007)
888#define MPI_FW_HEADER_PID_FAMILY_1020C0_SCSI (0x0008)
889#define MPI_FW_HEADER_PID_FAMILY_1035A0_SCSI (0x0009)
890#define MPI_FW_HEADER_PID_FAMILY_1035B0_SCSI (0x000A)
891#define MPI_FW_HEADER_PID_FAMILY_1030TA0_SCSI (0x000B)
892#define MPI_FW_HEADER_PID_FAMILY_1020TA0_SCSI (0x000C)
893/* Fibre Channel */
712#define MPI_FW_HEADER_PID_FAMILY_909_FC (0x0000)
894#define MPI_FW_HEADER_PID_FAMILY_909_FC (0x0000)
713#define MPI_FW_HEADER_PID_FAMILY_919_FC (0x0001)
714#define MPI_FW_HEADER_PID_FAMILY_919X_FC (0x0002)
895#define MPI_FW_HEADER_PID_FAMILY_919_FC (0x0001) /* 919 and 929 */
896#define MPI_FW_HEADER_PID_FAMILY_919X_FC (0x0002) /* 919X and 929X */
897#define MPI_FW_HEADER_PID_FAMILY_919XL_FC (0x0003) /* 919XL and 929XL */
898#define MPI_FW_HEADER_PID_FAMILY_939X_FC (0x0004) /* 939X and 949X */
899#define MPI_FW_HEADER_PID_FAMILY_959_FC (0x0005)
900/* SAS */
901#define MPI_FW_HEADER_PID_FAMILY_1064_SAS (0x0001)
902#define MPI_FW_HEADER_PID_FAMILY_1068_SAS (0x0002)
903#define MPI_FW_HEADER_PID_FAMILY_1078_SAS (0x0003)
904#define MPI_FW_HEADER_PID_FAMILY_106xE_SAS (0x0004) /* 1068E, 1066E, and 1064E */
715
716typedef struct _MPI_EXT_IMAGE_HEADER
717{
718 U8 ImageType; /* 00h */
719 U8 Reserved; /* 01h */
720 U16 Reserved1; /* 02h */
721 U32 Checksum; /* 04h */
722 U32 ImageSize; /* 08h */
723 U32 NextImageHeaderOffset; /* 0Ch */
724 U32 LoadStartAddress; /* 10h */
725 U32 Reserved2; /* 14h */
726} MPI_EXT_IMAGE_HEADER, MPI_POINTER PTR_MPI_EXT_IMAGE_HEADER,
727 MpiExtImageHeader_t, MPI_POINTER pMpiExtImageHeader_t;
728
729/* defines for the ImageType field */
730#define MPI_EXT_IMAGE_TYPE_UNSPECIFIED (0x00)
731#define MPI_EXT_IMAGE_TYPE_FW (0x01)
732#define MPI_EXT_IMAGE_TYPE_NVDATA (0x03)
905
906typedef struct _MPI_EXT_IMAGE_HEADER
907{
908 U8 ImageType; /* 00h */
909 U8 Reserved; /* 01h */
910 U16 Reserved1; /* 02h */
911 U32 Checksum; /* 04h */
912 U32 ImageSize; /* 08h */
913 U32 NextImageHeaderOffset; /* 0Ch */
914 U32 LoadStartAddress; /* 10h */
915 U32 Reserved2; /* 14h */
916} MPI_EXT_IMAGE_HEADER, MPI_POINTER PTR_MPI_EXT_IMAGE_HEADER,
917 MpiExtImageHeader_t, MPI_POINTER pMpiExtImageHeader_t;
918
919/* defines for the ImageType field */
920#define MPI_EXT_IMAGE_TYPE_UNSPECIFIED (0x00)
921#define MPI_EXT_IMAGE_TYPE_FW (0x01)
922#define MPI_EXT_IMAGE_TYPE_NVDATA (0x03)
923#define MPI_EXT_IMAGE_TYPE_BOOTLOADER (0x04)
733
734#endif
924
925#endif