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 |