+ All Categories
Home > Documents > LSI SAS Error Codes

LSI SAS Error Codes

Date post: 07-Mar-2016
Category:
Upload: thumbmcgee
View: 1,054 times
Download: 94 times
Share this document with a friend
Description:
log_info and fault codes decoding information

of 36

Transcript
  • SAS Error Codes (S11079)Systems Engineering Note

    Version 6.0April 2009

  • Revision History

    Version and Date Description of Changes

    Version 6.0 and April 2009 Updated Table 1, Table 2, and Table 3 with relevant fault codes to reflect the latest version of the firmware.

    Version 5.0 and February 2008 Updated Table 1 on page 8.

    Version 4.0 and September 2007 Updated Table1, Table2, Table3, and Table4 with relevant fault codes and IOCLogInfo Codes to reflect the latest version of the firmware.Version 3.0 and March 2007 Added entries to Table4 to reflect the latest version of the firmware.

    Version 2.0 and December 2006 Updated SAS Spec references in Sections 3 and 4.Deleted the text of Section 5, SAS-to-SCSI Error Translation, and replaced it with a reference to the SCSI/ATA Translation (SAT) Revision 8.LSI, the LSI logo, and Fusion-MPT are trademarks or registered trademarks of LSI Corporation or its subsidiaries. All other brand and product names may be trademarks of their respective companies.

    LSI Corporation reserves the right to make changes to the product(s) or information contained herein at any time without notice. LSI Corporation does not assume any responsibility or liability arisingout of the application or use of any product or service described herein, except as expressly agreed to in writing by LSI Corporation; nor does the purchase, lease, or use of a product or service fromLSI Corporation convey a license under any patent rights, copyrights, trademark rights, or any other of the intellectual property rights of LSI Corporation or of third parties.

    Corporate Headquarters Email WebsiteMilpitas, CA [email protected] www.lsi.com800-372-2447

    Document Number: DB05-000143-04Copyright 2009 LSI CorporationAll Rights Reserved

    Added and modified a number of entries in Table2. Table2 and Table3 to reflect the latest version of the firmware.

    Version 1.0 and August 2005 Initial release.

  • SAS Error Codes System Engineering Note Document OverviewSystems Engineering Note

    1.0 Document Overview This SEN provides the following information relating to SAS error codes:

    SAS Protocol Error Handling on page 1 SATA-to-SCSI Error Translation on page 7 SAS Firmware Fault Codes on page 7 MPI Reply Message Codes for SAS on page 23

    2.0 References This following lists the documentation relating to SAS error codes:

    Serial Attached SCSI Specification 1.1 Revision 10 (September 21, 2005) SCSI Primary Commands 3 (SPC-3) Revision 22a SCSI Block Commands 2 (SBC-2) Revision 16 SCSI Architecture Model 3 (SAM-3) Revision 14 SCSI/ATA Translation (SAT) Revision 8 (January 17, 2006) AT Attachment with Packet Interface-7 Volume 1, Revision 4b Fusion-MPT Message Passing Interface Specification, v1.5.6 (September 2007, LSI

    Document Number: DB14-000174-09)

    3.0 SAS Protocol Error Handling This section defines the SAS Protocol Error Handling of LSI SAS controllers. It specifically addresses initiator mode SSP errors. It does not specifically address SATA, STP, or SSP target mode error handling; however, in some cases the error handling for those protocols is the same as SSP.

    The LSI SAS firmware is part of the Fusion-MPT device driver architecture. The role of the SAS firmware is to do an I/O request that is issued from a host driver, and to reply with a success or failure status. Note that the host driver could be a driver stack in an operating system (such as the Windows SCSI Port and Miniport drivers), or it could be RAID firmware running on an LSI controller or on an external IOP. A key part of the architecture is that the host driver is in control, and the firmware just does what the driver tells it to do. In this architecture, the host driver stack is responsible for most retry logic and timeouts for commands it sends. In most cases when an error is detected, the firmware replies with an error status to the host and allows the host driver stack to determine if it wants to fail the I/O to the OS, or retry it, or do something else. The

    SAS Error CodesThis document provides information on the SAS error codes.LSI Corporation Confidential | April 2009 Page 1

  • SAS Protocol Error Handling SAS Error Codes System Engineering NoteFusion-MPT architecture is a SCSI Command Set based architecture in which the host driver passes a message to the firmware that includes a SCSI command, and the firmware attempts to send the command to a target. Then the firmware replies to the host driver with a status of success or failure. Failure responses include SCSI Status and Sense Data from the target, if present.

    The entries in this section are listed in alphabetical order.

    3.1 ACK/NAK Timeout Command Frame- (See SAS Spec 9.2.4.2.) The firmware sends a Task Abort to the target to abort the I/O. Then the I/O is failed to the host and the host can retry it if it desires. The SAS spec suggests sending a Query Task to determine if the target really received a command. The controller does not do this because of the additional complexity required. Instead of sending a Query Task to see if the I/O was received, and then perhaps resending it, the controller sends a Task Abort. Then if the target did receive the command, the target aborts the I/O; if the target did not receive the command, the controller knows for sure that the I/O is cleaned out. After the controller aborts the command, the controller fails the I/O to the host and expects the host to retry the I/O. At some point this implementation may be changed so the host uses Query Task as the spec suggests.

    Data Frame- (See SAS Spec 9.2.4.5.) The current firmware sends a Task Abort to the target to abort the I/O, as specified in SAS 1.0. Future versions of the firmware are expected to support transport layer retries, as defined in SAS 1.1, in which case the frame transmission will be retried.

    Task Frame- (See SAS Spec 9.2.4.3.) Retry sending the task frame with the Retransmit bit set.

    3.2 Arbitration Wait Timer Maxed (See SAS Spec 7.12.3.) Fail the I/O back to the host with MPI_IOCSTATUS_SCSI_DEVICE_NOT_THERE.

    3.3 Break Received (See SAS Spec 7.12.5.) When a BREAK is received, the controller responds by sending a BREAK.

    Command Frame- The firmware sends a Task Abort to the target to abort the I/O. Then the I/O is failed to the host, and the host can retry it if it desires.

    Rx Data Frame- If a full frame is not received, the CRC is not correct; therefore, the controller treats this as if the frame was never received. If the full frame is received, the frame is processed as normal.

    Tx Data Frame- The current firmware sends a Task Abort to the target to abort the I/O, as specified in SAS 1.0. Future versions of the firmware are expected to support transport layer retries as defined in SAS 1.1, in which case the frame transmission will be retried.

    Response Frame- If a full frame is not received, the CRC is not correct; therefore, the controller treats this as if the frame was never received. If the full frame is received, the frame is processed as normal.Page 2 LSI Corporation Confidential | April 2009

  • SAS Error Codes System Engineering Note SAS Protocol Error Handling3.4 Break Timeout This condition occurs when the controller sent a BREAK, but no BREAK was received back (which would confirm the BREAK cycle) within 1-ms. SAS 7.12.7 states that the originating PHY shall assume that the connection request has been aborted if it receives a BREAK timeout. The originating PHY may perform a link reset, so the firmware will issue a link reset.

    3.5 Close Timeout This condition occurs when a Close-Timeout occurs during a CLOSE cycle. The controller sent a CLOSE, but no CLOSE was received back (which would confirm the CLOSE cycle) within 1-ms. SAS 7.12.6 states that the originating PHY shall attempt to break the connection if it receives a CLOSE timeout. The hardware automatically sends a BREAK primitive, and the firmware then lets the upper layer blocks deal with any errors that may be detected there.

    3.6 Coding Errors The controllers PHY behavior exactly follows the Dword Sync State Machine defined in the SAS Spec, section 6.9. Basically, SAS is tolerant of a few dword errors. If four dwords contain errors, the link has lost dword synchronization and it will go down. Then the controller initiates a link reset sequence to try to bring the link back up.

    3.7 CRC Errors (See SAS Spec 7.2.6.5.) If a frame is received with a CRC error, none of the contents of the frame can be relied upon, so the hardware sends a NAK (CRC Error) and the frame is ignored.

    3.8 Credit Timeout Condition (See SAS Spec 7.2.6.3.) DONE (CREDIT_TIMEOUT) is sent when credit is not granted within 1-ms.

    3.9 Data Overrun Rx Data- The controller never DMAs more data into host memory than what is specified in the scatter/gather list in the request from the host. The controller DMAs all the data to the host until it reaches the end of the scatter/gather list, and then it bit buckets any extra data. Fail I/O to the host with MPI_IOCSTATUS_SCSI_DATA_OVERRUN.

    TX Data- The controller never sends more bytes than what is specified in the scatter/gather list. The controller sends exactly the number of bytes in the scatter/gather list and then waits for the target to complete the I/O by sending a response frame. If the target is expecting more data, it does not send a response frame and the host times out the I/O and goes into error recovery, which most likely involves sending down a task management request to abort the I/O or reset the drive.

    3.10 Data Underrun Rx Data- When the controller receives a response frame indicating the target has completed the I/O, it compares the number of bytes it expected with the number of bytes it actually received. If it received fewer bytes than expected, it fails the I/O to the host with MPI_IOCSTATUS_SCSI_DATA_UNDERRUN. The host may choose to not consider this an error if it was on certain commands that specify a maximum buffer size and the target is allowed to only transfer what it wants, such as Inquiry or Mode Sense.

    TX Data- When the controller receives a response frame indicating the target has completed the I/O, it compares the number of bytes it expected to send with the number of bytes it actually was able to send. If it sent fewer bytes that expected, it fails the I/O to the host with MPI_IOCSTATUS_SCSI_DATA_UNDERRUN. LSI Corporation Confidential | April 2009 Page 3

  • SAS Protocol Error Handling SAS Error Codes System Engineering Note3.11 Disparity Errors The controllers PHY behavior exactly follows the Dword Sync State Machine defined in the SAS Spec, section 6.9. Basically, SAS is tolerant of a few dword errors. If four dwords contain errors, the link has lost dword synchronization and the link will go down. Then the controller initiates a link reset sequence to try to bring the link back up.

    3.12 Done (ACK Timeout) The SSP state machine (see SAS Spec 7.16.8) timed out waiting for an ACK or NAK, and the transmitter is going to transmit BREAK in 1-ms unless DONE is received within 1-ms of transmitting the DONE (ACK/NAK TIMEOUT).

    3.13 Done Timeout (See SAS Spec 7.16.8.5.) This condition occurs when a Done-Timeout occurs during an SSP connection. The DONE primitive indicates that the transmitter is done sending frames, in preparation for closing the connection. The hardware automatically sends a BREAK primitive, and then it lets the upper layer blocks deal with it if any errors are generated there.

    3.14 Hard Reset (See SAS Spec 4.4.2.) If a HARD_RESET primitive is received, the controller should stop sending DWORDS on all PHYs within that port. The controller does this by doing a link reset on all PHYs in the port, including the one on which the HARD_RESET was received. According to SAM-3, section 6.3.2, if this port is in target mode, a logical unit reset occurs.

    For initiator mode, SAM-3 says: When a SCSI initiator port detects a hard reset condition, it should terminate all its outstanding Execute Command procedure calls with a service response of SERVICE DELIVERY OR TARGET FAILURE. A hard reset condition shall not affect any other SCSI initiator ports in the SCSI initiator device; however, the logical unit reset condition established in a SCSI target device by a hard reset may affect tasks that are communicating via other SCSI initiator ports.

    3.15 Identify Timeout The firmware initiates a new link reset sequence.

    3.16 Invalid Frame Type The frame or frame information structure (FIS) type received in the header is not valid. SAS Spec 9.2.5.2 says, The frame shall be discarded for wrong frame types.

    3.17 Invalid Hashed SAS Destination Address

    SAS Spec 9.2.6.2.2.3 says, The frame shall be discarded for wrong hashed destination or source address.

    3.18 Invalid Hashed SAS Source Address SAS Spec 9.2.6.2.2.3 says, The frame shall be discarded for wrong hashed destination or source address.

    3.19 Invalid Initiator Connection Tag (See SAS Spec 7.2.5.11.) The controller returns Open Reject (Protocol Not Supported).

    3.20 Invalid Link Rate (See SAS Spec 7.2.5.11.) The controller returns Open Reject (Rate Not Supported).

    3.21 Invalid Protocol (See SAS Spec 7.2.5.11.) The controller returns Open Reject (Protocol Not Supported).

    3.22 Invalid Queue Tag (See SAS Spec 9.2.5.2.) The controller discards a frame received with an invalid queue tag. It then sends a HARD_RESET to a direct attach device, or does an Smp Phy Control with SMP_PHY_CONTROl_PHY_OPERATION_HARD_RESET if the device is attached to Page 4 LSI Corporation Confidential | April 2009

    an expander.

  • SAS Error Codes System Engineering Note SAS Protocol Error Handling3.23 Invalid SAS Destination Address in Open

    (See SAS Spec 7.2.5.11.) If the controller receives an Open with an invalid destination SAS address, it returns Open Reject (Wrong Destination).

    3.24 Invalid SAS Source Address in Open

    If the controller receives an Open with an invalid source SAS address, it returns Open Reject (Protocol Not Supported).

    3.25 NAK Received Command Frame- (See SAS Spec 9.2.4.2.) The hardware retries a NAKd command frame a programmable number of times. The number is specified in an MPI config page. After the retry threshold is reached, the I/O is failed to the host with MPI_IOCSTATUS_SCSI_PROTOCOL_ERROR.

    Data Frame- (See SAS Spec 9.2.4.5.) The current firmware sends a Task Abort to the target to abort the I/O, as specified in SAS 1.0. Future versions of the firmware are expected to support transport layer retries as defined in SAS 1.1, in which case the frame transmission will be retried.

    Task Frame- (See SAS Spec 9.2.4.3.) Retry sending the task frame with the Retransmit bit set.

    3.26 Non-Good Response Returned The firmware replies with an error response to the host driver with the SCSI Status, Sense or Response Data.

    3.27 OOB Sequence/Link Reset During Transfer

    Whenever the link goes down for any reason, including OOB or loss of dword sync, the controller initiates a new link reset sequence to attempt to bring the link up. The hardware keeps trying OOB until it is able to bring the link back up.

    Outside of a Frame- Nothing in addition to the link reset mentioned above occurs if a frame is not interrupted when the link goes down.

    Command- The firmware sends a Task Abort to the target to abort the I/O. Then the I/O is failed to the host and the host can retry it if it chooses.

    Tx Data- The current firmware sends a Task Abort to the target to abort the I/O, as specified in SAS 1.0. Future versions of the firmware are expected to support transport layer retries as defined in SAS 1.1, in which case the frame transmission will be retried.

    Rx Data- If the link is reset before the CRC/EOF, the controller does not receive a complete frame. The controller discards the frame.

    Response- If the link is reset before the CRC/EOF, the controller does not receive a complete frame. The controller discards the frame.

    3.28 Open Reject (Bad Destination) Received

    (See SAS Spec 7.2.5.11.)

    Command- Fail I/O to host with MPI_IOCSTATUS_SCSI_DEVICE_NOT_THERE.

    Tx Data- Since the command has already been sent to the target, the controller does a task management abort to abort the I/O at the target, and then fails the I/O to the host.

    3.29 Open Reject (No Destination) Received

    (See SAS Spec 7.2.5.11.) Retry connection attempt.

    3.30 Open Reject (Pathway Blocked) (See SAS Spec 7.2.5.11.) Retry connection attempt.LSI Corporation Confidential | April 2009 Page 5

    Received

  • SAS Protocol Error Handling SAS Error Codes System Engineering Note3.31 Open Reject (Protocol Not Supported) Received

    (See SAS Spec 7.2.5.11.)

    Command- Fail I/O to host with MPI_IOCSTATUS_SCSI_DEVICE_NOT_THERE.

    Tx Data- Since the command has already been sent to the target, the controller does a task management abort to abort the I/O at the target, and then fails the I/O to the host.

    3.32 Open Reject (Rate Not Supported) Received

    (See SAS Spec 7.2.5.11). If the connection rate is not 1.5-Gb, lower the rate. Then retry the connection attempt.

    3.33 Open Reject (Retry) Received (See SAS Spec 7.2.5.11.) Retry the connection attempt.

    3.34 Open Reject (STP Resources Busy) Received

    (See SAS Spec 7.2.5.11.) Retry the connection attempt.

    3.35 Open Reject (Wrong Destination) Received

    (See SAS Spec 7.2.5.11.)

    Command- Fail I/O to host with MPI_IOCSTATUS_SCSI_DEVICE_NOT_THERE.

    Tx Data- Since the command has already been sent to the target, the controller does a task management abort to abort the I/O at the target, and then fails the I/O to the host.

    3.36 Open Timeout (See SAS Spec 7.12.2.1.) Send out a BREAK, and then retry the open request in a new connection.

    3.37 Protocol Mismatch (See SAS Spec 9.2.5.2.) There is a protocol mismatch for the frame or Frame Information Structure (FIS) receivedfor example, if a FIS with Xfer_Rdy frame type is received for a STP connection. Discard the frame.

    3.38 Queue Full If Queue Full handling is enabled via an MPI config page, the firmware handles Queue Full. In that case the firmware pends I/Os until more I/Os complete, and then it resumes sending them. When Queue Full handling is enabled, the firmware does not return I/Os that get Queue Full status to the host, but instead retries them. If Queue Full handling is disabled, the firmware fails the I/O back to the host with a SCSI Status of Queue Full.

    3.39 Reserved Bits Set Currently the controller does not check to see if any reserved bits are set.

    3.40 Retransmit Bit Set in Data/XFER_RDY Frames

    SAS 1.1 transport layer retries will be addressed in a future version of this document.

    3.41 Retransmit Field Set in Response Frame

    (See SAS Spec 9.2.4.6.) The target sets this bit if it has previously sent a response frame but did not receive an ACK or NAK. If this bit is set and the controller has already received a response frame for that I_T_L_Q nexus, the controller discards the extra response frame. Otherwise, the controller treats this as a valid response.

    3.42 Wrong Data Amount in XFER_RDY Xfer Rdy Specifies Too Little Data- The I/O is failed to host with MPI_IOCSTATUS_SCSI_DATA_UNDERRUN, since less data was transferred than expected.

    Xfer Rdy Specifies Too Much Data- The controller never sends more bytes than are Page 6 LSI Corporation Confidential | April 2009

    specified in the scatter/gather list. The I/O will have transferred exactly the number of bytes requested, so it will complete successfully.

  • SAS Error Codes System Engineering Note SATA-to-SCSI Error Translation3.43 Wrong Data Offset SAS Spec 9.2.5.2 states that the controller shall abort the command if it receives an XFER_RDY with a requested offset that is not expected. If the controller receives a data frame with a data offset that was not expected, it discards the frame and any other data frame for that command, and then it aborts the command. SAS Spec 10.2.2 gives detailed information on the error response.

    3.44 Wrong Frame Length SAS Spec 9.2.6.2.2.3 and 10.2.2 gives detailed information on the error response. Discard the frame and abort the I/O by sending a Task Abort.

    3.45 XFER_RDY Sent For Non-Write Command

    SAS Spec 9.2.5.2 says to discard the frame and abort the I/O. The controller sends a target reset.

    3.46 Zero Length Data Frame Received SAS Spec 9.2.5.2 says to discard the frame and abort the I/O, so the controller sends a Task Abort for that I/O.

    3.47 Zero Length Xfer Rdy SAS Spec 9.2.5.2 says to discard the frame and abort the I/O, so the controller sends a Task Abort for that I/O.

    4.0 SATA-to-SCSI Error Translation

    For information about SATA-to-SCSI error translation, refer to SCSI/ATA Translation (SAT) Revision 8 (January 17, 2006).

    5.0 SAS Firmware Fault Codes This section has information about firmware fault codes that may be generated by the 1064/1068 firmware. The fault code may be determined either via the System Doorbell register or via the Heartbeat LED. The fault codes and their interpretations are also given.

    When the firmware detects an unrecoverable error, it writes the fault code to the System Doorbell register on the I/O Unit. It also outputs the fault code to the Heartbeat LED via a coded series of flashes, as explained in Heartbeat LED on page 7.

    When the firmware has entered fault state, the host driver must use a Hard Reset to attempt to recover.

    5.1 Obtaining the Fault Code This section explains how to obtain the fault code from the System Doorbell register or from the flash sequence on the Heartbeat LED.

    5.1.1 Doorbell The process of obtaining the fault code from the System Doorbell register is explained in Section 1.3.3 (IOC States) of the Fusion-MPT Message Passing Interface Specification, v1.5.3. When the firmware detects a fault, each System Doorbell register is written with the fault code. The presence of a fault code may be determined if the State Nibble (upper 4-bits) of the System Doorbell register = 0b0100. The rest of the System Doorbell register indicates the fault code.

    5.1.2 Heartbeat LED The firmware also outputs the fault code on the Heartbeat LED. To determine the fault code value, you first need to look for the flash sequence that indicates the start of the value. The synchronization sequence is:

    10 rapid flashes (1/10 second each)LSI Corporation Confidential | April 2009 Page 7

    2 seconds off

  • SAS Firmware Fault Codes SAS Error Codes System Engineering NoteFollowing this sequence, the length of the next 17 flashes indicates each bit of the fault code. A long flash (1 second) = 1 and a short flash (1/4 second) = 0. There is a 2.5-second delay between each flash.

    When you write down a sequence, you will come up with something like this:

    L SSSL SSLS SSLL SLSS

    The above sequence indicates a fault code of 0x00011234 (15 leading 0 bits added).

    5.2 Fault Code Interpretation The following shows the format of the fault code:

    Ch 16

    The channel where the fault was detected.

    Fault Value [15:0]

    A value indicating the fault that the firmware has detected (see Table1).

    5.3 Fault Values and Descriptions The following table lists and describes the current fault values.

    31 16 15 0

    Reserved Ch Fault Value

    Table 1: Fault Values and Descriptions

    Value Fault Builds Description

    0x0100 IFAULT_IOP_FREE_INVALID_FRAME Debug only

    Attempt to free internal frame that is out-of-range.

    0x0200 IFAULT_IOP_SHARED_MEM_PARITY All Internal memory parity error detected.

    0x0300 IFAULT_IOP_EXT_MEM_PARITY All External memory parity error detected.

    0x0301 IFAULT_IOP_EXT_MEM_INSUFFICIENT IR PSBRAM

    Either NVRAM or PSBRAM memory region is too large to fit.

    0x0400 IFAULT_IOP_SYS_DOORBELL_FAIL All Firmware attempted to write doorbell to host, but host has not yet read the previous doorbell.

    0x0500 IFAULT_IOP_INVALID_FRAME_STATE_FREE Debug Attempt to free internal frame that was already free.

    0x0501 IFAULT_IOP_INVALID_FRAME_STATE_REQ_FREE Debug Attempt to place internal frame on request free queue, but it was already there.

    0x0600 IFAULT_IOP_SCSIO_MSG_INVALID_CHAIN Debug Obsolete.

    0x0601 IFAULT_IOP_SCSIO_MSG_INVALID_CHAIN_OFF Debug SCSI I/O Chain offset field contained non-zero value, but the DataLength field was zero.

    0x0602 IFAULT_IOP_SCSIO_MSG_INVALID_SGE_RESERVED Debug SCSI I/O SGE present for non-zero DataLength.

    0x0603 IFAULT_IOP_SCSIO_MSG_INVALID_CHAIN2 Debug SCSI I/O SG List contained chain pointer to non-chain element.

    0x0604 IFAULT_IOP_SCSIO_MSG_INVALID_CHAIN3 Debug SCSI I/O SG List contained non-local chain pointer.Page 8 LSI Corporation Confidential | April 2009

  • SAS Error Codes System Engineering Note SAS Firmware Fault Codes0x0605 IFAULT_IOP_SCSIO_MSG_INVALID_LE Debug SCSI I/O SG List must contain exactly 1 Simple element with Last Element Flag in the Message Frame or Chain Segment.

    0x0606 IFAULT_IOP_SCSIO_MSG_INVALID_ELEM_TYPE Debug SCSI I/O SG List Invalid Element Type found.

    0x0607 IFAULT_IOP_SCSIO_MSG_INVALID_LOCAL_ADDR Debug SCSI I/O SG List Host SGL cannot contain Local Element Flag in SGL.

    0x0608 IFAULT_IOP_SCSIO_MSG_INVALID_NUM_CHAINS Debug SCSI I/O SG List Number of chains found in SGL does not match number found when traversing chains.

    0x0609 IFAULT_IOP_SCSIO_MSG_INVALID_CDB_LEN Debug SCSI I/O CDB Length field was zero.

    0x060A IFAULT_IOP_SCSIO_MSG_INVALID_RSVD Debug SCSI I/O Reserved Field non-zero.

    0x060B IFAULT_IOP_SCSIO_MSG_INVALID_MSGFLAGS Debug SCSI I/O MsgFlag field had undefined bits set.

    0x060C IFAULT_IOP_SCSIO_MSG_INVALID_PTRMSG Debug Invalid SCSI IO Message.

    0x0700 IFAULT_IOP_FLASH_VALIDATION_FAILED All Unrecoverable Flash Persistent Configuration failure.

    0x0701 IFAULT_IOP_FLASH_CONFIGPAGE_BUILD_PERSISTSTORAGE_REVAL_FAIL All Error building persistent config pages on FLASH.

    0x0702 IFAULT_IOP_FLASH_CONFIGPAGE_BUILD_MIGRATION_VALIDATE_FAIL All Migration of persistent config pages failed.

    0x0703 IFAULT_IOP_FLASH_DETECT_VALIDATE_FAIL All Flash support is enabled, but Flash was not detected.

    0x0704 IFAULT_IOP_FLASH_PERSISTSTORAGE_REVAL_FAIL All Error building persistent config pages on SEEPROM.

    0x0705 IFAULT_IOP_FLASH_SEEPROM_MIGRATION_VALIDATE_FAIL All Migration of persistent config pages failed.

    0x0706 IFAULT_IOP_FLASH_PERSIST_TO_CURPAGE_UPDATE_FAIL All Failure to copy the data from the Persistent Page to the Current Page.

    0x0707 IFAULT_IOP_FLASH_ALLOCUNITS_SIZE_CHANGE_VALIDATE_FAIL All Unable to find a NVDATA element in the persistent pages.

    0x0708 IFAULT_IOP_FLASH_LOGADD_PERSISTSTORAGE_MIGRATION_VALIDATE_FAIL

    All Migration of persistent config pages failed.

    0x0709 IFAULT_IOP_FLASH_LOGHDR_PERSISTSTORAGE_MIGRATION_VALIDATE_FAIL

    All Migration of persistent config pages failed.

    0x070A IFAULT_IOP_FLASH_PERSIST_READ_VALIDATE_FAIL All Failed reading the persistent storage.

    0x0800 IFAULT_IOP_AHB_BUS_FAULT All Internal AHB Bus Fault detected.

    0x0900 IFAULT_IOP_STACK_OVERFLOW All Processor Stack overflow detected.

    0x0901 IFAULT_IOP_FIQ_STACK_OVERFLOW All Processor FIQ stack overflow detected.

    0x0A00 IFAULT_IOP_NO_IOP_RESOURCE_FRAMES None Not used.

    0x0A01 IFAULT_IOP_NO_IOP_RESOURCE_FRAMES_MFG_5 None Not used.

    0x0A02 IFAULT_IOP_NO_IOP_RESOURCE_FRAMES_DOORBELL All Doorbell Handshake was unable to allocate an internal message frame.

    0x0B00 IFAULT_IOP_NO_IOP_CRITICAL_FRAMES_AVAIL All IOP Critical Frame is not available at that particular index.[7:6] = Subsystem

    Table 1: Fault Values and Descriptions (Continued)

    Value Fault Builds DescriptionLSI Corporation Confidential | April 2009 Page 9

    [5:0] = Index

    0x0C00 IFAULT_IOP_INVALID_FRAME_SIZE Debug MPI Message exceeded Frame Size.

  • SAS Firmware Fault Codes SAS Error Codes System Engineering Note0x0D00 IFAULT_IOP_UNKNOWN_FIQ All A Fatal Interrupt occurred for an unknown reason.

    0x0E00 IFAULT_IOP_RING_BUFFER_ERROR None Unused.

    0x0F00 IFAULT_IOP_INVALID_MAX_DEVICES All IocInit MaxDevices must be power-of-2 if MaxBusses is not 1.

    0x1000 IFAULT_IOP_INVALID_SAS_ADDRESS All SAS Address not specified.

    0x1100 IFAULT_IOP_INVALID_FLASH_IMAGE None Not used.

    0x1200 IFAULT_IOP_TASK_MGMT All Task Management Coding Error.

    0x1201 IFAULT_IOP_TASK_MGMT_UNKNOWN_SOURCE All Task Management source unknown.

    0x1202 IFAULT_IOP_TASK_MGMT_NOT_FOUND_ON_QUEUE All Task Management Request not found in the queue.

    0x1300 IFAULT_IOP_NO_NVDATA All NVDATA image not found.

    0x1301 IFAULT_IOP_NVDATA_MISMATCH_PERSISTENT_PAGES All When building Persistent Config Pages, the F/W detected that the attached NVDATA is missing a Config Page(s). This indicates that the attached NVDATA does not match that which the F/W expects.

    0x1302 IFAULT_IOP_NVDATA_MISMATCH_CURRENT_PAGES All When building Current Config Pages, the F/W detected that the attached NVDATA is missing a Config Page(s). This indicates that the attached NVDATA does not match that which the F/W expects.

    0x1303 IFAULT_IOP_NVDATA_MISMATCH_CONFIG_ROUTE_TABLE All Mismatch between the Config Routing Table and the NVDATA.

    0x130A IFAULT_IOP_NVDATA_HEADER_SIGNATURE_MISMATCH All Mismatch in NVDATA header signature

    0x1400 IFAULT_IOP_REV_ID_MISMATCH All Firmware does not support this hardware revision.

    0x1500 IFAULT_IOP_SCHEDULER_ERROR None Not used.

    0x1600 IFAULT_IOP_MID_OUT_OF_RANGE_FREE_FRAME All An invalid Message Index was detected.

    0x1601 IFAULT_IOP_MID_OUT_OF_RANGE_SCSIIO_COMP All An invalid Message Index was detected in SCSIIOComplete function.

    0x1602 IFAULT_IOP_MID_OUT_OF_RANGE_SCSIIO_COMP_ERR All An invalid Message Index was detected in SCSIIOCompleteError function.

    0x1603 IFAULT_IOP_MID_OUT_OF_RANGE_SCSIIO_START All An invalid Message Index was detected in StartScsiIo function.

    0x1604 IFAULT_IOP_MID_OUT_OF_RANGE_MSG_COMP All An invalid Message Index was detected in MsgComplete function.

    0x1702 IFAULT_IOP_PCI_PARITY_ERROR All PCI Parity Error detected.

    0x1800 IFAULT_IOP_SELFTEST_FAILED_RSRC_BUF IR Resource Buffer Initialization Failure.

    0x1801 IFAULT_IOP_SELFTEST_FAILED_IOPFLAGS All IOPFlag Selftest Failure.

    0x1802 IFAULT_IOP_SELFTEST_FAILED_CACHE_INIT All Cache Initialization Failure.

    0x1803 IFAULT_IOP_SELFTEST_FAILED_TRANS_TABLE All Memory Translation Table Failure.

    Table 1: Fault Values and Descriptions (Continued)

    Value Fault Builds DescriptionPage 10 LSI Corporation Confidential | April 2009

    0x1804 IFAULT_IOP_SELFTEST_FAILED_TIMER All Timer Failure.

    0x1805 IFAULT_IOP_SELFTEST_FAILED_SYSIF All System Interface Queue Initialization Failure.

  • SAS Error Codes System Engineering Note SAS Firmware Fault Codes0x1806 IFAULT_IOP_SELFTEST_FAILED_DIVIDER All Processor Divide Routine Failure.

    0x1900 IFAULT_IOP_INVALID_REPLY Debug The A bit was set in the MessageContext Field when the I/O was received.

    0x1901 IFAULT_IOP_INVALID_REPLY_MSG_LOOPBACK All Invalid reply message in loopback.

    0x1902 IFAULT_IOP_INVALID_REPLY_MSG_NON_SCSIIO All Invalid SCSI I/O reply message.

    0x1903 IFAULT_IOP_INVALID_REPLY_MSG_SUCCESSFUL_HOSTIO All Invalid source of the SCSI I/O message.

    0x1904 IFAULT_IOP_INVALID_REPLY_MSG_UNSUCCESSFUL_HOSTIO All Invalid source of the SCSI I/O message.

    0x1A00 IFAULT_IOP_UNHANDLED_HI_PRI_DB_INTERRUPT All HiPriDoorbell interrupt set with no Doorbell or HighPri Interrupt pending.

    0x1B00 IFAULT_IOP_UNHANDLED_QUAD_CPLT_INTERRUPT All Quad Completion interrupt with no Quad complete pending.

    0x1C00 IFAULT_IOP_UNHANDLED_QUAD_INT_INTERRUPT Quad Interrupt with no Quad Interrupt pending.

    0x1D00 IFAULT_IOP_UNHANDLED_EVENT All Coding Error Event sent with no corresponding handler present.

    0x1E00 IFAULT_SRW_BUS_FAULT_ERROR All PCI Bus Fault detected during PCI transfer.

    0x1F00 IFAULT_SRW_PARITY_ERROR All PCI Error detected during PCI transfer.

    0x2000 IFAULT_IOP_PCI_BUS_FAULT_ERROR All PCI Bus Fault detected during PCI transfer.

    0x2100 IFAULT_IOP_MESSAGING_QUEUE_OVERFLOW All One of the messaging queues detected overflow conditions.

    0x2200 IFAULT_INVALID_RUNTIME_CONFIGURATION All Persistent config pages are specifying an invalid Runtime Configuration.

    0x2300 IFAULT_IOP_NO_THREAD_TIMER IR No Timer available for Integrated RAID usage.

    0x2400 IFAULT_INSUFFICIENT_HOST_BUFFER 1064 A2 IOCInit message did not supply sufficient HostPageBuffer for operation.

    0x2500 IFAULT_IOP_RETARGET All A C library function __rt_raise was called. This function may be called, for example, by the division library being requested to divide by zero.

    0x2600 IFAULT_IOP_SDRAM_UNCORRECTABLE_ECC_ERROR 1078 ECC error detected on external memory.

    0x2610 IFAULT_IOP_PLB2AHB_ERROR 1078 The PLB memory bus to AHB memory bus bridge detected a failure.

    0x2620 IFAULT_IOP_PCI_EXPRESS_ERROR 1078 PCI Express bus error detected.

    0x2630 IFAULT_IOP_MIRQ_ERROR 1078 MIRQ error detected.

    0x2640 IFAULT_IOP_I2O_DMA_ERROR 1078 I20 DMA error detected.

    0x2650 IFAULT_DMA_ERROR_PORT1 1078 Port 1 DMA error detected.

    0x2660 IFAULT_FATAL_INT Not used.

    0x2670 IFAULT_POWER_LOSS_EXPECTED 1078 Power loss was expected and then fault the controller and let the host device drivers restart the controller and the failed I/Os.

    0x2700 IFAULT_IOP_INVALID_CRIT_FRAME_REQUEST All Index for IOP Critical Frame is outside of valid range.

    Table 1: Fault Values and Descriptions (Continued)

    Value Fault Builds DescriptionLSI Corporation Confidential | April 2009 Page 11

    [7:6] = Subsystem[5:0] = Index

  • SAS Firmware Fault Codes SAS Error Codes System Engineering Note0x2800 IFAULT_EXCEPTION_UNDEFINED_INST None Undefined Instruction Processor Exception.

    0x2801 IFAULT_EXCEPTION_SWI None

    0x2802 IFAULT_EXCEPTION_PREFETCH_ABORT None Prefetch Abort Processor Exception.

    0x2803 IFAULT_EXCEPTION_DATA_ABORT None Data Abort Processor Exception.

    0x2810 IFAULT_EXCEPTION_IRQ_UNKNOWN None Unknown IRQ Interrupt.

    0x3333 IFAULT_IOP_UNKNOWN All Fatal condition occurred for an unknown reason.

    0x4000 IFAULT_PL_INVALID_DEVICE_TYPE None Unused.

    0x4100 IFAULT_PL_UNHANDLED_INTERRUPT None Unused.

    0x4101 IFAULT_PL_UNHANDLED_INTERRUPT_LINK All Unhandled Link Interrupt occurred.

    0x4102 IFAULT_PL_UNHANDLED_INTERRUPT_PORT All Unhandled Port Interrupt occurred.

    0x4103 IFAULT_PL_UNHANDLED_INTERRUPT_QUAD_ERROR All Unhandled Quad Error Interrupt occurred.

    0x4104 IFAULT_PL_UNHANDLED_INTERRUPT_QUAD_INT All Unhandled Quad Interrupt occurred.

    0x4105 IFAULT_PL_UNHANDLED_INTERRUPT_INT_TRANS All Unhandled Transport Interrupt occurred.

    0x4106 IFAULT_PL_UNHANDLED_INTERRUPT_ERR_TRANS All Unhandled Transport Error Interrupt occurred.

    0x4200 IFAULT_PL_INVALID_CALLBACK_STATE All An unknown callback state was encountered.

    0x4201 IFAULT_PL_INVALID_CALLBACK All A callback was called, but was not expecting to be called.

    0x4202 IFAULT_PL_CALLBACK_STACK_OVERFLOW All Attempt was made to push more callbacks on an already full stack.

    0x4203 IFAULT_PL_CALLBACK_STACK_UNDERFLOW All Attempt was made to pop off a callback that does not exist.

    0x4204 IFAULT_PL_CALLBACK_STACK_INVALID_DEVH All Attempted to invoke callback on an invalid device handle.

    0x4300 IFAULT_PL_INVALID_PHY_NUM All Port Layer Error with no corresponding Phy Error.

    0x4400 IFAULT_PL_PHY_TABLE_FULL All Too many phys detected.

    0x4500 IFAULT_PL_DEVICE_TABLE_FULL All Too many devices detected.

    0x4600 IFAULT_PL_NO_START_SMP_FLAG_SET Debug Invalid SMP Flag during HW cleanup.

    0x4800 IFAULT_PL_FREED_UNUSED_HWDEVINDEX All Attempt to free already free HW device index.

    0x4900 IFAULT_PL_INVALID_MID All Tag received in a response frame for an I/O that was not outstanding.

    0x4A00 IFAULT_PL_INITIATOR_TABLE_FULL All Attempting to add an initiator device and no slots available.

    0x4B00 IFAULT_PL_UNUSED None Unused.

    0x4C00 IFAULT_PL_SATA_ENGINE_RAM_PARITY_ERROR All Parity Error detected by SATA Engine. (Include 0x4C00 through 0x4C07).

    0x4C1F IFAULT_PL_SATA_PR_OUT_INVALID_PHYTABLE Not used.

    0x4D00 IFAULT_PL_ATAPI_UNEXPECTED_FIS All Received SATA FIS for ATAPI device that was not expected.

    Table 1: Fault Values and Descriptions (Continued)

    Value Fault Builds DescriptionPage 12 LSI Corporation Confidential | April 2009

    0x4E01 IFAULT_PL_NO_IOP_RESOURCE_FRAMES_EVENT All No internal frames available to send MPI Event.

  • SAS Error Codes System Engineering Note SAS Firmware Fault Codes0x4E02 IFAULT_PL_NO_IOP_RESOURCE_FRAMES_CONFIG All No internal frames available to send internal Config request.

    0x4E03 IFAULT_PL_NO_IOP_RESOURCE_FRAMES_SENSE All No internal frames available to send SCSI Sense Data.

    0x4E04 IFAULT_PL_NO_IOP_RESOURCE_FRAMES_TASK_MGMT All No internal frames available to send Task Management Request.

    0x4E05 IFAULT_PL_NO_IOP_RESOURCE_FRAMES_SATA_INIT All No internal frames available to send SATA Initialization commands.

    0x4F00 IFAULT_PL_LINK_TIMER_FAILED All Unable to create internal timer for Link Reset Sequence.

    0x5000 IFAULT_PL_LINK_RESET_SEQUENCE_FAILURE All Unhandled Link Reset Sequence.

    0x50F0 IFAULT_PL_LINK_RESET_STOP_FAILURE None

    0x50F1 IFAULT_PL_LINK_RESET_SPINUP_STOP_NOPHYS None

    0x50F2 IFAULT_PL_LINK_RESET_TOTAL_DRIVES_PHYS_SPINUP_NOTSAME None

    0x50F3 IFAULT_PL_LINK_RESET_QUADSPINUP_MAXPHYS_MISMATCH All Exceeded the maximum number of phys that can be granted spinup per quad.

    0x50F4 IFAULT_PL_LINK_RESET_TOTALDRIVES_MAXPHYS_SPINUP_MISMATCH All Exceeded the maximum number of drives that can be granted spinup.

    0x5100 IFAULT_PL_QUEUE_MGR_FATAL_ERROR All Unhandled Queue Manager Error.

    0x5101 IFAULT_PL_COMPQ_PARITY All Queue Manager detected a Completion Queue parity error.

    0x5102 IFAULT_PL_QUEUE_DMAQ_PARITY All Queue Manager detected a DMA Transmission Queue parity error.

    0x5103 IFAULT_PL_QUEUE_DMAQ_OVERFLOWIOP All Queue Manager detected a DMA Transmission Queue Overflow when IOP attempted to add an entry.

    0x5104 IFAULT_PL_QUEUE_DMAQ_OVERFLOWRXFM All Queue Manager detected a DMA Transmission Queue Overflow when RX Frame Manager attempted to add an entry.

    0x5105 IFAULT_PL_QUEUE_IQRAM_PARITY All Queue Manager detected an Initiator Queue RAM parity error when IOP attempted to read IQ memory.

    0x5106 IFAULT_PL_QUEUE_MGR_IQRAM_PARITY All Queue Manager detected an Initiator Queue RAM parity error when Queue Manager attempted to read IQ memory.

    0x5107 IFAULT_PL_QUEUE_RXFMSCHED_PARITY All RX Frame Manager detected a parity error.

    0x5200 IFAULT_PL_DMA_ENGINE_RAM_PARITY_ERROR All DMA Engine Parity Error Detected.

    0x5300 IFAULT_PL_TX_FM_ERROR All Unhandled TX Frame Manager Error.

    0x5400 IFAULT_PL_PHYLINK_TABLE_PARITY_ERROR All Phylink Parity Error Detected.

    0x5500 IFAULT_PL_HW_CLEANUP_SE_TASK_FILE_BITS All Unexpected Task File Error during SATA Engine Cleanup.

    0x5600 IFAULT_PL_ENTRY_NOT_FOUND_GENERIC All SMP Phy Control was attempted to be sent to an unknown expander.

    Table 1: Fault Values and Descriptions (Continued)

    Value Fault Builds DescriptionLSI Corporation Confidential | April 2009 Page 13

    0x5700 IFAULT_PL_PASS_THRU_SEND_REENTRY All An overlapping PASS Through request was attempted.

  • SAS Firmware Fault Codes SAS Error Codes System Engineering Note0x6000 IFAULT_PL_TASK_MGMT_HW_CLEANUP_FAILURE All Unable to clean up hardware or firmware correctly. (0x6000 ~ 0x61ff are TM specific fault codes).

    0x6001 IFAULT_PL_TASK_MGMT_OUTSTD_IOS_ON_DEV_RST All Task Management detected that upon completion of a Target Reset, firmware still had a record of I/Os still outstanding.

    0x6002 IFAULT_PL_TASK_MGMT_TX_FRAME_NOT_CLEAN All Task Management detected that TX Frame manager was not completely cleaned up.

    0x6003 IFAULT_PL_TASK_MGMT_ABORT_LIST_CORRUPTION All Task Management detected a corruption of the TM Abort List.

    0x6004 IFAULT_PL_TASK_MGMT_IO_COUNT_CORRUPTION All Task Management detected corruption of a devices outstanding I/O count.

    0x6005 IFAULT_PL_TASK_MGMT_INVALID_MID_TM_START All Task Management detected a request to start a TM on an invalid MID.

    0x6006 IFAULT_PL_TASK_MGMT_INVALID_MID_ABT_MATCH All Task Management detected an invalid MID in the AbortMatch function.

    0x6007 IFAULT_PL_TASK_MGMT_INVALID_MID_ABT_TRANSQ All Task Management detected an invalid MID when cleaning up the DMA Transmission Queue.

    0x6008 IFAULT_PL_TASK_MGMT_INVALID_MID_ABT_MID All Task Management detected an invalid MID being added to the Abort List.

    0x6009 IFAULT_PL_TASK_MGMT_INVALID_MID_ABT_TXTRANS All Task Management detected an invalid MID in the TX Transport.

    0x600A IFAULT_PL_TASK_MGMT_INVALID_MID_CLEANUP All Task Management detected an invalid MID in the TM Cleanup state.

    0x600B IFAULT_PL_TASK_MGMT_INVALID_MID_TM_TRAP All Task Management detected an invalid MID during trapping of new I/O starts.

    0x600C IFAULT_PL_TASK_MGMT_INVALID_MID_CMP_ABT_IO All Task Management detected an invalid MID when attempting to complete aborted I/Os.

    0x600D IFAULT_PL_TASK_MGMT_INVALID_MID_ABT_TM All Task Management detected an invalid MID when attempting to abort other Task Management requests.

    0x600E IFAULT_PL_TASK_MGMT_INVALID_DEVH_TM_START All Task Management detected an invalid DevHandle when starting a Task Management.

    0x600F IFAULT_PL_TASK_MGMT_INVALID_HWDI All Task Management detected an invalid hardware Device Index when cleaning up TX Frame Manager.

    0x6010 IFAULT_PL_TASK_MGMT_INVALID_DEVH All Task Management detected an invalid DevHandle when reading the DevHandle from the TM Message.

    0x6011 IFAULT_PL_TASK_MGMT_INVALID_HWDI_TXFM_CLNUP All Task Management detected an invalid hardware Device Index during TX Frame Cleanup.

    0x6013 IFAULT_PL_INVALID_DEVHANDLE_TXFM_CLEANUP All Invalid device handle detected when doing Transmission Frame Manager cleanup.

    Table 1: Fault Values and Descriptions (Continued)

    Value Fault Builds DescriptionPage 14 LSI Corporation Confidential | April 2009

    0x6014 IFAULT_PL_TASK_MGMT_CRIT_FR_2_NOT_FREED Debug TM critical frame not freed.

    0x6015 IFAULT_PL_TASK_MGMT_CORRUPTED_SMP_REQUEST_LIST All Corrupted SMP request list during TM.

  • SAS Error Codes System Engineering Note SAS Firmware Fault Codes0x6016 IFAULT_PL_TASK_MGMT_CRIT_FR_1_NOT_FREED None Not used.

    0x6100 IFAULT_PL_TASK_MGMT_UNEXPECTED_ABORT All Task Management attempt to cleanup I/Os encountered unexpected MPI Function. (0x6100 - 0x61ff, 0x61xx where xx is the function number).

    0x620A IFAULT_PL_SCSI_IO_INVALID_MID All Invalid MID detected when starting SCSI I/O.

    0x620B IFAULT_PL_RESTART_SCSI_IO_INVALID_MID None Not used.

    0x620C IFAULT_PL_TX_FM_CLEANUP_INVALID_MID All Invalid MID detected when cleaning up the Match or Mismatch Frame Manager.

    0x620D IFAULT_PL_RESTART_SCSI_IO_BAD_IOCOUNT_DEC None Not used.

    0x620E IFAULT_PL_PEND_SCSI_IO_BAD_IOCOUNT_DEC Debug only

    Bad I/O count detected when adding a ScsiIO on to the devices start pending list.

    0x620F IFAULT_PL_SCSI_IO_CMPLT_BAD_IOCOUNT_DEC Debug only

    Bad I/O count detected when completing a ScsiIO.

    0x6210 IFAULT_PL_PUSH_INVALID_MID All Invalid MID detected when pushing the I/O to the list.

    0x6211 IFAULT_PL_QUEUE_INVALID_MID All Invalid MID detected when adding a SCSI I/O to the tail of a queue.

    0x6212 IFAULT_PL_TX_FM_CLEANUP_INVALID_STP_MID All Mismatch in the MID and QTAG lookup MID.

    0x6301 IFAULT_PL_SCSI_IO_INVALID_DEVHANDLE All An invalid DevHandle usage was attempted.

    0x6303 IFAULT_PL_PORT_ERR_INVALID_DEVHANDLE None Not used.

    0x6400 IFAULT_PL_INVALID_HWDI_LINK_LAYER All An invalid Hardware Device Index usage was attempted.

    0x6402 IFAULT_PL_INVALID_HWDI_SATA_ENG_ABRT_TAG All An invalid Hardware Device Index usage was attempted.

    0x6403 IFAULT_PL_INVALID_HWDI_NON_AUTO_DMA_COMP All An invalid Hardware Device Index usage was attempted.

    0x6404 IFAULT_PL_INVALID_HWDI_NON_AUTO_FRAME Debug only

    An invalid Hardware Device Index usage was attempted.

    0x6405 IFAULT_PL_INVALID_HWDI_ADD_TO_DMA_TRANS_Q All An invalid Hardware Device Index usage was attempted.

    0x6406 IFAULT_PL_INVALID_HWDI_FIS_W_ERR_BIT All An invalid Hardware Device Index usage was attempted.

    0x6407 IFAULT_PL_INVALID_HWDI_SATA_TAG_INVALID All An invalid Hardware Device Index usage was attempted.

    0x6409 IFAULT_PL_INVALID_HWDI_RX_DMA_ERR All An invalid Hardware Device Index usage was attempted.

    0x640A IFAULT_PL_INVALID_HWDI_RX_FM_ERR None Not used.

    0x640B IFAULT_PL_INVALID_HWDI_TX_CTX_ERR All An invalid Hardware Device Index usage was attempted.

    0x640C IFAULT_PL_INVALID_HWDI_TX_DMA_ERR All An invalid Hardware Device Index usage was attempted.

    0x640D IFAULT_PL_INVALID_HWDI_RX_CTX_ERR None Not used.

    Table 1: Fault Values and Descriptions (Continued)

    Value Fault Builds DescriptionLSI Corporation Confidential | April 2009 Page 15

  • SAS Firmware Fault Codes SAS Error Codes System Engineering Note0x640E IFAULT_PL_INVALID_HWDI_TX_FM_ERR All An invalid Hardware Device Index usage was attempted.

    0x640F IFAULT_PL_INVALID_HWDI_ABORT_TX_TRANS All An invalid Hardware Device Index usage was attempted.

    0x6410 IFAULT_PL_INVALID_HWDI_NON_PT_WKWD_START All An invalid Hardware Device Index usage was attempted.

    0x6411 IFAULT_PL_INVALID_HWDI_PORT_ERR All An invalid Hardware Device Index usage was attempted.

    0x6412 IFAULT_PL_INVALID_HWDI_TX_FM_CLEANUP_HW All An invalid Hardware Device Index usage was attempted.

    0x6413 IFAULT_PL_INVALID_HWDI_PORT_TXDMA_ERR All An invalid Hardware Device Index usage was attempted.

    0x6414 IFAULT_PL_INVALID_HWDI_PORT_ERR_2 All An invalid Hardware Device Index usage was attempted.

    0x6500 IFAULT_PL_PORT_ERR_INVALID_TXIDENTIFIER All An invalid TX Identifier was received from the Port Layer.

    0x6501 IFAULT_PL_PORT_ERR_INVALID_TXIDEN_AND_ERR All Invalid port layer error.

    0x6600 IFAULT_PL_INVALID_HWDI_TX_CTX_CLEANUP All An invalid Hardware Device Index usage was attempted.

    0x6700 IFAULT_PL_CLEARED_RX_CTX_W_O_INTERRUPT Debug RX Context cleared without interrupt.

    0x6701 IFAULT_PL_CLEAR_RX_CTX_INVALID_TRANS_NUM Debug Attempted to clear RX Context on invalid TransNum detected.

    0x6801 IFAULT_PL_INIT_Q_NOT_DISBLD_QUAD_ERR_PL_2 All Initiator Queue not disabled when quad error occurs in port layer.

    0x6802 IFAULT_PL_INIT_Q_NOT_DISBLD_TM_ABT_TX_FM_1 All Initiator Queue not disabled when cleaning up Transmission Frame Manager.

    0x6803 IFAULT_PL_INIT_Q_NOT_DISBLD_TM_ABT_TX_FM_2 All Initiator Queue not disabled when cleaning up Transmission Frame Manager.

    0x7000 IFAULT_PL_UNEXPECTED_SMP_ABORT_BUG All Attempt to abort SMP command failed.

    0x7001 IFAULT_PL_UNEXPECTED_INIT_FRAME_BUG All An unhandled Initiator-mode Frame corruption was detected.

    0x7002 IFAULT_PL_UNEXPECTED_TARG_FRAME_BUG All An unhandled Target-mode Frame corruption was detected.

    0x7003 IFAULT_PL_PORT_SATA_HOT_PLUG_BUG All An unhandled SATA Hot Plug error was detected.

    0x7004 IFAULT_PL_RX_CTX_WORKAROUND_BUG All An unhandled RX Context Workaround error was detected.

    0x7005 IFAULT_PL_NON_DWORD_ALIGNED_QUAD_MEMCPY All A non-aligned memcpy was attempted.

    0x7006 IFAULT_PL_INVALID_HWDI_TXFM_CLEANUP All An invalid Hardware Device Index was detected during TxFrame cleanup.

    0x7008 IFAULT_PL_STARTING_IO_WHEN_IQ_DISABLED All Attempt to add entry to Device Start Queue when it was disabled.

    0x7009 IFAULT_PL_HOST_BUF_DMA_UNEXPECTED_LOCAL None Not used.

    Table 1: Fault Values and Descriptions (Continued)

    Value Fault Builds DescriptionPage 16 LSI Corporation Confidential | April 2009

    0x700a IFAULT_PL_HOST_BUF_DMA_UNEXPECTED_MID All Invalid MID detected when attempting host bus DMA.

  • SAS Error Codes System Engineering Note SAS Firmware Fault Codes0x700b IFAULT_PL_HOST_BUF_DMA_UNEXPECTED_FLAGS All Invalid flags on SGE detected when attempting host bus DMA.

    0x700c IFAULT_PL_HOST_BUF_DMA_UNEXPECTED_ORDER None Not used.

    0x7100 IFAULT_PL_DEVICE_SIZE_ERR 1078 Debug

    Incorrect structure size detected.

    0x7101 IFAULT_PL_TARGET_CONTEXT_INFO_SIZE_ERR 1078 Debug

    Incorrect structure size detected.

    0x7102 IFAULT_PL_DEVICE_DETAILS_SIZE_ERR None Not used.

    0x7200 IFAULT_PL_SEP_BUFFER_SIZE_ERR All Error detected in Enclosure Management.

    0x7201 IFAULT_PL_SEP_CMD_QUEUE_ERR All Enclosure management message not found in the enclosure management queue.

    0x7202 IFAULT_PL_SEP_CONTROL_BITS_ERROR All SCSI message does not have the control bit set.

    0x7203 IFAULT_PL_SEP_INVALID_STATE_IN_SEP_DETECTION All Invalid state in SEP detection.

    0x720A IFAULT_PL_ENCL_MGMT_SLOT_NUM_ERROR All Invalid slot number received during enclosure management with starting slot mode enabled.

    0x720B IFAULT_PL_ENCL_MGMT_BUS_ID_CONVERT_ERROR All SEP message not converted to EnclHandle/Slot form.

    0x7300 IFAULT_PL_PORT_LAYER_ERR None Not used.

    0x7400 IFAULT_PL_START_SMP_INVALID_DEVHANDLE Debug Invalid device handle detected when sending SMP.

    0x7501 IFAULT_PL_SLD_OUT_OF_RESOURCES All SLD Error detected.

    0x7502 IFAULT_PL_SLD_INVALID_DEV_HANDLE All Invalid device handle detected.

    0x7503 IFAULT_PL_SLD_INVALID_ENTRY None Not used.

    0x7504 IFAULT_PL_SLD_CLEAR_AFFILIATION_ERROR All Unable to find the device we sent the SMP to.

    0x7505 IFAULT_PL_SLD_INVALID_DEVH All Invalid device handle detected.

    0x7506 IFAULT_PL_SLD_SWAP_ACROSS_QUADS All Device swap detected across Quads.

    0x7600 IFAULT_PL_INVALID_PHY_TO_PORTNUM All Unable to find corresponding port number for the phy number.

    0x7700 IFAULT_PL_RXBUFFER_FAILEDMIDS_NOT_IN_SYNC Debug Failed MID detected that had to be completed before with error reply.

    0x7701 IFAULT_PL_RXBUFFER_DEVLOOKUP_FAILED_1 Debug Unable to find the device in the PHY table.

    0x7702 IFAULT_PL_RXBUFFER_NO_FAILEDIOSMISMATCH RxBuffer Debug

    Mismatch in the number of failed I/Os.

    0x7703 IFAULT_PL_RXBUFFER_RXFRAMESCHED_NOT_IN_SYNC RxBuffer Debug

    Failed MID marked as valid in Rx Frame Scheduler Message Valid MID Entry register.

    0x7704 IFAULT_PL_RXBUFFER_INVALID_HWDI All Invalid Hardware Device Index detected.

    0x7705 IFAULT_PL_RXBUFFER_INVALID_DEVHANDLE All Invalid device handle detected.

    0x7706 IFAULT_PL_RXBUFFER_DEVLOOKUP_FAILED_2 Debug Unable to find the device in the PHY table.

    0x7707 IFAULT_PL_RXBUFFER_INVALID_QUAD_1 Debug Invalid Quad number detected.

    0x7708 IFAULT_PL_RXBUFFER_INVALID_QUAD_2 Debug Invalid Quad number detected.

    Table 1: Fault Values and Descriptions (Continued)

    Value Fault Builds DescriptionLSI Corporation Confidential | April 2009 Page 17

    0x7709 IFAULT_PL_RXBUFFER_INVALID_PROTOCOL RxBuffer Debug

    Invalid protocol detected.

  • SAS Firmware Fault Codes SAS Error Codes System Engineering Note0x770A IFAULT_PL_RXBUFFER_TIMER_EXPIRED All Timeout occurred before nonauto firmware initialization could start.

    0x770B IFAULT_PL_RXBUFFER_INVALID_FRAME_TYPE All Invalid frame type detected.

    0x770C IFAULT_PL_RXBUFFER_IO_LIST_CORRUPTION Debug Pending I/O list corrupted for the device.

    0x770D IFAULT_PL_RXBUFFER_ABORT_LIST_CORRUPTION Debug Abort I/O list corrupted for the device.

    0x770E IFAULT_PL_RXBUFFER_DMA_OVERFLOW_TIMEOUT All Timeout occurred before checking rxdma overrun error.

    0x770F IFAULT_PL_RXBUFFER_TIMER_EXPIRED_RESETTING All Timeout occurred before clearing the valid context in the current transport of the HW.

    0x7710 IFAULT_PL_RXBUFFER_INVALID_TARGET_FRAME All Invalid frame received in target mode.

    0x7711 IFAULT_PL_RXBUFFER_TIME_EXP_RX_FLUSHING All Timeout occurred before clearing the valid context in the current transport of the HW.

    0x7800 IFAULT_PL_RX_DMA_ENGINE_ERROR Not used.

    0x7900 IFAULT_PL_TX_DMA_IDLE_TIMEOUT All The Transmission DMA Engine did not return to the IDLE state in the timeout interval.

    0x7901 IFAULT_PL_2ND_OPEN_DATA_STRUCT_CORRUPT All Corrupt Second Open Device Tracker data structure.

    0x7902 IFAULT_PL_TXDMA_STALL_WRKARND_INVALID_HWDI All Invalid hardware device index detected.

    0x7903 IFAULT_PL_TXDMA_STALL_WRKARND_INVALID_DEVH All Invalid device handle detected.

    0x7A00 IFAULT_PL_TXFM_DMA_IDLE_TIMEOUT None Not used.

    0x7A01 IFAULT_PL_LINK_CONN_DMA_IDLE_TIMEOUT None Not used.

    0x7A02 IFAULT_PL_RXFM_DMA_IDLE_TIMEOUT None Not used.

    0x7A03 IFAULT_PL_INVALID_HWDI_DMA_TQ_DISABLE_ENABLE All Invalid HWDI usage detected during HW cleanup.

    0x7A04 IFAULT_PL_DA_SEP_INT_RESET_INVALID_TIMERS All Invalid number of SEP devices.

    0x7A05 IFAULT_PL_TXDMA_WA_BAD_HWDI_OR_DEVH None Not used.

    0x7B00 IFAULT_PERTURBED_CREDIT_BREAK_TIMEOUT All Perturbed HW credit when issuing BREAK.

    0x7B01 IFAULT_PERTURBED_CREDIT_CREDIT_FIX_TIMEOUT All Waiting for RxDMA to settle failed.

    0x7B02 IFAULT_PERTURBED_CREDIT_SATA_IDLE_DONE_TO None Not used.

    0x7B03 IFAULT_PERTURBED_CREDIT_INVALID_DEVH All Invalid device handle usage detected.

    0x7B04 IFAULT_PERTURBED_CREDIT_TEST_RXBBCREDIT_4 Debug Credit mismatch on the Phy which got disconnected.

    0x7B05 IFAULT_PERTURBED_CREDIT_TEST_RXBBCREDIT_4_OTHER_PHY Debug Credit mismatch on the Phys which were not connected.

    0x7C00 IFAULT_BAD_CRC_IN_RX_BUFFERS_INV_DEVH All Invalid device handle usage detected.

    0x7F00 IFAULT_PL_NO_SAS_PLL_LOCK 1078 No SAS PLL Lock detected.

    0x7F01 IFAULT_PL_PARAMS_NOT_SET 1078 The PL Parameter Structure is not populated correctly.

    0x8000 IFAULT_IR_SHARED_CONFIG_PAGE IR Debug Config Page is shared in recursive manner.

    0x8001 IFAULT_IR_NO_FREE_PAGE_BUFFER IR Debug Could not allocate free page buffer.

    Table 1: Fault Values and Descriptions (Continued)

    Value Fault Builds DescriptionPage 18 LSI Corporation Confidential | April 2009

    0x8002 IFAULT_IR_PURE_VIRTUAL IR An attempt to reference an object that has no associated memory.

  • SAS Error Codes System Engineering Note SAS Firmware Fault Codes0x8003 IFAULT_IR_INVALID_INT_IO None Not used.

    0x8004 IFAULT_IR_RETARGET IR A call was made to a library routine that should not be used.

    0x8005 IFAULT_IR_INVALID_IO_STATE IR An internal I/O caused an unknown state to be processed.

    0x8006 IFAULT_IR_START_SCSI_IO None Not used.

    0x8007 IFAULT_IR_NOT_BOUND IR A physical I/O component of a virtual I/O was completed without a valid parent virtual I/O.

    0x8008 IFAULT_IR_NO_IO_BUFFER IR Occurs when the internal I/O buffer has not been released (typically caused by memory leak).

    0x8009 IFAULT_IR_RESYNC_TASK_NO_TIMER IR Unable to allocate a timer for resync.

    0x800A IFAULT_IR_RESYNC_INVALID_ENTRY IR The probable reason is that all the entries are full.

    0x800B IFAULT_IR_NO_CRIT_FRAMES_AVAILABLE IR IR could not allocate IOP Critical Frame.

    0x800C IFAULT_IR_INVALID_MEMORY_MOVE IR Data transfer to/from on-chip memory failed.

    0x800D IFAULT_IR_CONST_VIOLATION IR An attempt was made to write a non-writable config page.

    0x800E IFAULT_IR_NO_NVSRAM IR IR could not detect NVSRAM.

    0x800F IFAULT_IR_CRIT_NEW IR A guaranteed allocation failed.

    0x8010 IFAULT_IR_64BIT_MATH_SUBTRACT_ERROR IR Debug 64 bit math subtraction error encountered.

    0x8011 IFAULT_IR_BAD_NVSRAM IR NVSRAM is not functioning in the expected manner.

    0x8012 IFAULT_IR_IO_EXCEEDED_VOL_SIZE IR Debug Attempted to perform I/O on an LBA greater than Virtual Disk size.

    0x8013 IFAULT_IR_DEFERRED_ENGINE_NULL IR Debug Pointer to deferred I/O engine is NULL.

    0x8014 IFAULT_IR_NON_ZERO_IO_COUNT IR A task management completed with I/Os still being reported as outstanding.

    0x8015 IFAULT_IR_INVALID_DEVICE_HANDLE IR An attempt was made to use an invalid device handle.

    0x8016 IFAULT_IR_RELOCATE_FAILURE IR Unable to move a physical device to another location.

    0x8017 IFAULT_IR_BAD_RAID_MAP IR A RAID 1 volume was asked to segment an I/O.

    0x8018 IFAULT_IR_INVALID_PTR_PHYS_DISK None Not used.

    0x8019 IFAULT_IR_MAX_VOLUMES IR Too many active volumes detected.

    0x801A IFAULT_IR_INVALID_VOLUME IR A volume was detected in a slot that should not have a volume.

    0x801B IFAULT_IR_DEVICE_INVALID IR Volume was assigned a bad device handle/number.

    0x801C IFAULT_IR_REMOVE_CONFIG_PAGE_ERROR IR An attempt was made to remove a page that did not exist.

    0x801D IFAULT_IR_DIVIDE_BY_ZERO_ERROR IR Debug Divide by zero error in the overloaded C++

    Table 1: Fault Values and Descriptions (Continued)

    Value Fault Builds DescriptionLSI Corporation Confidential | April 2009 Page 19

    operator.

  • SAS Firmware Fault Codes SAS Error Codes System Engineering Note0x801E IFAULT_IR_801E None Not used.

    0x801F IFAULT_IR_ERROR_RETRIEVE_EVENT_DATA IR A required call to get a config page unexpectedly failed.

    0x8020 IFAULT_IR_DEVICE_CONSTRUCT_FAILURE IR C_IR_Device was constructed with a bad SCSI address.

    0x8021 IFAULT_IR_DEVICE_PROTOCOL_INVALID IR Unable to determine the protocol of a physical device.

    0x8022 IFAULT_IR_DEVICE_COMPATIBLE_ERROR IR Unexpectedly not able to determine if a device was compatible.

    0x8023 IFAULT_IR_8023 None Not used.

    0x8024 IFAULT_IR_QUEUE_IO_COUNT_ERROR IR An attempt was made to dequeue an I/O that does not exist.

    0x8025 IFAULT_IR_ABORT_VIRT_IO_ERROR IR Attempt to abort a non-existent virtual I/O.

    0x8026 IFAULT_IR_LDF_DELETE_PHYS_DISK_ERROR None Not used.

    0x8027 IFAULT_IR_LDF_DELETE_VIRT_DISK_ERROR None Not used.

    0x8028 IFAULT_IR_DISK_SET_MEMBER_OF_VOLUME_ERROR IR Attempted to associate a physical disk to multiple volumes.

    0x8029 IFAULT_IR_DISK_LOAD_BALANCE_ERROR IR Load balancing unable to find a valid column.

    0x802A IFAULT_IR_INVALID_RAID_VOLUME_TYPE IR Unhandled attempt to create an undefined MPI volume type.

    0x802B IFAULT_IR_SEND_EVENT_ERROR IR Could not determine what event was supposed to be sent to host.

    0x802C IFAULT_IR_INIT_SENSE_BUFFER_ERROR None Not used.

    0x802D IFAULT_IR_ADD_RESYNCH_ENTRY_ERROR IR Unable to add a re-sync entry.

    0x802E IFAULT_IR_RESYNC_MAP_IO_ERROR IR Invalid volume pointer was used when attempting to map a re-sync I/O.

    0x802F IFAULT_IR_NEXT_RESYNC_ENTRY_ERROR IR Re-sync entry LBA is not within a legal range.

    0x8030 IFAULT_IR_RESYNC_IO_ENGINE_ERROR IR Re-sync was attempted with host I/Os in-progress.

    0x8031 IFAULT_IR_TIMER_HANDLER_ERROR IR Attempt to schedule a non-existent task.

    0x8032 IFAULT_IR_GET_LBA_ERROR IR Attempt made to extract an LBA from an unsupported CDB.

    0x8033 IFAULT_IR_START_IO_ERROR None Not used.

    0x8034 IFAULT_IR_NEW_WJ_ENTRY_ERROR IR Free write-journal entry had non-zero length implying an entry was not processed.

    0x8035 IFAULT_IR_NEW_DELETE_ERROR None Not used.

    0x8036 IFAULT_IR_DEVICE_EVENT_DISCOVERY_ERROR None Not used.

    0x8037 IFAULT_IR_MAX_INTERNAL_DEVICES_ERROR IR Unable to find an unused phys disk slot in the active configuration.

    0x8038 IFAULT_IR_8038 None Not used.

    0x8039 IFAULT_IR_UNKNOWN_RPDP1 IR Failed to get RPD1 that should exist.

    Table 1: Fault Values and Descriptions (Continued)

    Value Fault Builds DescriptionPage 20 LSI Corporation Confidential | April 2009

    0x803A IFAULT_IR_803A None Not used.

  • SAS Error Codes System Engineering Note SAS Firmware Fault Codes0x803B IFAULT_IR_803B None Not used.

    0x803C IFAULT_IR_LDF_SECTION_READ_WO_HEADER_OPEN IR Attempt to read metadata without an open header.

    0x803D IFAULT_IR_HEAP_CORRUPTION_SIZE_0 IR Heap entry of size zero (not legal, indicates heap corruption).

    0x803E IFAULT_IR_LDF_VD_DEV_NUM_INVALID None Not used.

    0x803F IFAULT_IR_LDF_PD_REF_PDE_SEARCH IR Unable to find PD reference in metadata structure that should exist.

    0x8040 IFAULT_IR_LDF_GUID_VDE_SEARCH IR Unable to find a VD GUID in the virtual disk records.

    0x8041 IFAULT_IR_IO_BUFFER_USAGE_ERROR IR I/O buffer was reduced while heap allocations exist.

    0x8042 IFAULT_IR_LDF_SECTION_WRITE_WO_HEADER_OPEN IR Attempt to write metadata without header open.

    0x8043 IFAULT_IR_CONFIG_PAGE_ERROR None Not used.

    0x8044 IFAULT_IR_LDF_NO_FREE_VD_ELEMENT None Not used.

    0x8045 IFAULT_IR_LDF_VD_ELEMENT_BAD_VD_NUM IR SCSI address invalid and a VD number could not be generated.

    0x8046 IFAULT_IR_LDF_UPDATE_BUFFER_TOO_SMALL IR Could not allocate enough memory to write metadata to disk.

    0x8047 IFAULT_IR_LDF_ILLEGAL_CONFIG_ASSIGMENT IR Attempted to copy a configuration with pending updates.

    0x8048 IFAULT_IR_LDF_CONFIGURATION_NOT_FOUND IR Attempt to lookup a configuration that doesnt exist.

    0x8049 IFAULT_IR_IO_BUFFER_NEW_FAILURE IR I/O buffer was constructed and could not allocate enough memory.

    0x804A IFAULT_IR_LDF_SECTION_CLOSE_WO_HEADER_OPEN IR Attempt to close a header that wasnt open.

    0x804B IFAULT_IR_LDF_SEQUENCE_ROLLOVER IR Metadata sequence number changed from 0xfffffff to 0.

    0x804C IFAULT_IR_LDF_PD_REFRESH None Not used.

    0x804D IFAULT_IR_LDF_INVALID_CONFIG_NUMBER IR Couldnt find an unused configuration number to assign to the metadata config.

    0x804E IFAULT_IR_LDF_PDREF_TO_PDN_CONVERSION IR Conversion from PD ref to PDN was not found.

    0x804F IFAULT_IR_LDF_PDN_TO_PDREF_CONVERSION IR Unable to convert from a PDN to a PD ref.

    0x8050 IFAULT_IR_LDF_NO_SECTION_BUFFER None Not used.

    0x8051 IFAULT_IR_LDF_PDE_LOOKUP None Not used.

    0x8052 IFAULT_IR_LDF_VDE_LOOKUP None Not used.

    0x8053 IFAULT_IR_LDF_INCORECT_STRUCTURE_SIZE IR A metadata structure was defined such that its size is not consistent with the expected size.

    0x8054 IFAULT_IR_SATA_NO_48BIT_LBA_SUPPORT None Not used.

    0x8055 IFAULT_IR_DUPLICATE_PD_REFERENCE_FOUND IR Found duplicate Physical Disk reference.

    Table 1: Fault Values and Descriptions (Continued)

    Value Fault Builds DescriptionLSI Corporation Confidential | April 2009 Page 21

    0x8056 IFAULT_IR_VD_NOT_FOUND IR Could not find Virtual Disk referenced in Config Page.

  • SAS Firmware Fault Codes SAS Error Codes System Engineering Note0x8057 IFAULT_IR_VD_ELM_NOT_FOUND IR Could not find element in Virtual Disk.

    0x8058 IFAULT_IR_VD_ELM_NOT_FOUND_CONST IR Could not find element in Virtual Disk.

    0x8059 IFAULT_IR_PD_ELM_NOT_FOUND IR Could not find element in Physical Disk.

    0x805A IFAULT_IR_PD_ELM_NOT_FOUND_CONST IR Could not find element in Physical Disk.

    0x805B IFAULT_IR_VD_ELM_LOCALITY_EMPTY IR Could not compute location of RAID Physical Disk from Config Page.

    0x805C IFAULT_IR_SET_INVALID_DEVICE_HANDLE IR Could not get valid Device Handle.

    0x805D IFAULT_IR_INVALID_SCSI_MAP IR Debug IR Device for which SCSI Map is to be obtained not valid.

    0x805E IFAULT_IR_LDF_HEADER_OPEN_READ_ONLY IR LDF Header flag is marked open read write.

    0x805F IFAULT_IR_INVALID_CDB_LENGTH IR Invalid CDB length in SCSI I/O Request.

    0x8060 IFAULT_IR_FAILED_TO_MODIFY_DEV_MISSING_TO None Not used.

    0x8061 IFAULT_IR_TASK_STACK_OVERFLOW IR Stack overflow detected in IR Task Scheduler.

    0x8062 IFAULT_IR_LDF_NO_UPDATES_COMPLETED IR No update was completed on any disk.

    0x8063 IFAULT_IR_INVALID_METADATA_SIZE IR Invalid metadata size detected.

    0x8064 IFAULT_IR_NON_IR_DISK_AT_VOL_ID IR Non IR device is overlapping a Virtual Volume ID.

    0x8065 IFAULT_IR_NO_VALID_PATHS_IN_PD_LDF None Not used.

    0x8066 IFAULT_IR_ACTIVE_PATH_NOT_IN_RPD0 IR Debug The failing path is not pointed by RaidPhysDisk0.

    0x8067 IFAULT_IR_SEND_EVENT_ERROR_1 IR Debug Invalid Reason Code in the Event Reply to the host.

    0x8068 IFAULT_IR_SEND_EVENT_ERROR_2 IR Debug Invalid Reason Code in the Event Reply to the host.

    0x8069 IFAULT_IR_SEND_EVENT_ERROR_3 IR Debug Invalid Reason Code in the Event Reply to the host.

    0x806A IFAULT_IR_ACTIVE_PATH_INDEX_INVALID IR Debug Invalid active path index.

    0x806B IFAULT_IR_INACTIVE_PATH_INDEX_INVALID None Not used.

    0x806C IFAULT_IR_FAIL_MANPG4_WRITE IR Debug Failed to update MFG Page3.

    0xC000 IFAULT_TARG_UNDEFINED_FAULT Target Fault in Target Mode.

    0xC001 IFAULT_TARG_NO_MSG_FRAMES_ERR_RSP Target Could not allocate message frame.

    0xC002 IFAULT_TARG_UNUSED None Not used.

    0xC003 IFAULT_TARG_TQ_PENDING_NOT_VALID Target Target Queue pending not valid.

    0xC004 IFAULT_TARG_NON_AUTO_CMPLT_ERR_LCL_MID Target Local MID mismatch with Target Port Transfer Tag.

    0xC005 IFAULT_TARG_MISMATCH_MID_IOINDEX_ERROR Target Mismatch detected between MID and I/O Index.

    0xC006 IFAULT_TARG_BAD_MID_ON_COMPLETION_ERROR None Not used.

    0xC007 IFAULT_TARG_UNUSED1 None Not used.

    0xC008 IFAULT_TARG_NO_MSG_FRAMES_STATUS_SEND None Not used.

    Table 1: Fault Values and Descriptions (Continued)

    Value Fault Builds DescriptionPage 22 LSI Corporation Confidential | April 2009

    0xC009 IFAULT_TARG_NON_AUTO_CMPLT_ERR_SYS_MID Target Non auto completion MID error detected.

  • SAS Error Codes System Engineering Note MPI Reply Message Codes for SAS6.0 MPI Reply Message Codes for SAS

    Every MPI message has a Request Message and a Reply Message, which are documented in the Fusion-MPT Message Passing Interface Specification, v1.5.3. The 32-bit IOCLogInfo field in the Reply message is used to relay information back to the host. The information can be error codes when an error occurs, or just information about the message.

    The IOCLogInfo field of the Reply Message has the following subfields:

    0xC00A IFAULT_TARG_NON_AUTO_CMPLT_ERROR Target Local MID mismatch with Target Port Transfer Tag.

    0xC00B IFAULT_TARG_MISSING_CMD_BUFFS Target No Command Buffer received.

    0xC00C IFAULT_TARG_COMPLETE_UNKNOWN_STATUS Target Unknown status for Status Send AutoStatus.

    0xC00D IFAULT_TARG_NO_MSG_FRAMES_CMD_BUFF_POST_ERR_RPLY Target Could not get Message Frame in CmdBuffPostErrReply function.

    0xC00E IFAULT_TARG_UNPOSTED_INFO_MISMATCH Target Mismatch detected in Command Buffers unposted info.

    0xC00F IFAULT_TARG_NO_FRAMES_FOR_RESET_EVENT Target Could not send Reset Event.

    0xC100 IFAULT_TARG_INVALID_DEV_HANDLE None Not used.

    0xC101 IFAULT_TARG_INVALID_DEV_HANDLE_TARGET_ASSIST None Not used.

    0xC102 IFAULT_TARG_INVALID_DEV_HANDLE_TARGET_STATUS_SEND None Not used.

    0xC103 IFAULT_TARG_UNEXPECTED_STATUS_SEND Target Attempting to send status even when it was already done.

    0xC200 IFAULT_TARG_MUL_INIT_INVALID_ADD_INITIATOR Target Attempting to add initiator in multiinitiator setup.

    0xC201 IFAULT_TARG_MUL_INIT_INVALID_NON_AUTO_HANDLE Target Could not find device handle in Non-AutoDmaCompletion function.

    0xCAFE IFAULT_IOP_HOST_INTENTIONAL_FAULT_SPECIAL_VALUE All Allow the host to intentionally fault the IOP by writing a special value to the doorbell register.

    0xFFFF IFAULT_PL_ADD_TO_DMA_TXR_QUEUE_FAIL All Unable to add an entry to the DMA transmission queue.

    Table 1: Fault Values and Descriptions (Continued)

    Value Fault Builds Description

    [31:28] MPI_IOCLOGINFO_TYPE_SAS (3)

    [27:24] IOC_LOGINFO_ORIGINATOR: 0 = IOP, 1 = PL, 2 = IR

    [23:16] LOGINFO_CODE

    [15:0] LOGINFO_CODE SpecificLSI Corporation Confidential | April 2009 Page 23

  • MPI Reply Message Codes for SAS SAS Error Codes System Engineering NoteThe following table lists IOCLogInfo codes for IOC_LOGINFO_ORIGINATOR = 0 (IOP code segment). The message code names are generally self-explanatory. Additional explanation is provided for some of the codes.

    Table 2: MPI IOCLogInfo Codes for IOP Code Segment

    Bits [23:0] Message Code Explanation

    0x00010000 IOP_LOGINFO_CODE_INVALID_SAS_ADDRESS Invalid SAS Address detected in Manufacturing Page 5.

    0x00020000 IOP_LOGINFO_CODE_NOT_USED2 Not used.

    0x00030000 IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE Not used.

    0x00030100 IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_RT Route table entry not found.

    0x00030200 IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_PN Invalid page number.

    0x00030300 IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_FORM Invalid FORM.

    0x00030400 IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_PT Invalid page type.

    0x00030500 IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_DNM Device not mapped.

    0x00030600 IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_PERSIST Persistent page not found.

    0x00030700 IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_DEFAULT Default page not found.

    0x0003E000 IOP_LOGINFO_CODE_FWUPLOAD_NO_FLASH_AVAILABLE Tried to upload from flash, but there is none.

    0x0003E001 IOP_LOGINFO_CODE_FWUPLOAD_UNKNOWN_IMAGE_TYPE ImageType field contents were invalid.

    0x0003E002 IOP_LOGINFO_CODE_FWUPLOAD_WRONG_IMAGE_SIZE ImageSize field in TCSGE was bad/offset in MfgPg 4 was wrong.

    0x0003E003 IOP_LOGINFO_CODE_FWUPLOAD_ENTIRE_FLASH_UPLOAD_FAILED Error occurred while attempting to upload the entire flash.

    0x0003E004 IOP_LOGINFO_CODE_FWUPLOAD_REGION_UPLOAD_FAILED Error occurred while attempting to upload single flash region.

    0x0003E005 IOP_LOGINFO_CODE_FWUPLOAD_DMA_FAILURE Problem occurred while DMAing FW to host memory.

    0x00040000 IOP_LOGINFO_CODE_DIAG_MSG_ERROR Diagnostic Buffer error detected.

    0x00050000 IOP_LOGINFO_CODE_TASK_TERMINATED I/O has been terminated as a result of Task Management. This Task Management can also be generated internally by the firmware.

    0x00060001 IOP_LOGINFO_CODE_ENCL_MGMT_READ_ACTION_ERROR Read action not supported for SEP message.

    0x00060002 IOP_LOGINFO_CODE_ENCL_MGMT_INVALID_BUS_ID_ERROR Invalid Bus ID in SEP message.

    0x00070001 IOP_LOGINFO_CODE_TARGET_ASSIST_TERMINATED Target Assist is terminated, e.g., due to bus reset occurring just as this command came in.

    0x00070002 IOP_LOGINFO_CODE_TARGET_STATUS_SEND_TERMINATED Target Status Send is terminated, e.g., due to bus reset occurring just as this command came in.

    0x00070003 IOP_LOGINFO_CODE_TARGET_MODE_ABORT_ALL_IO Target Mode Abort for all I/Os due to Task Management command from host.

    0x00070004 IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO Target Mode Abort for specific I/Os due to Task Management command from host.

    0x00070005 IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO_REQ Target Mode Abort for Target Assist or Target Status Send due to Task Management command from host.

    0x00080000 IOP_LOGINFO_CODE_LOG_TIMESTAMP_EVENT Page 24 LSI Corporation Confidential | April 2009

  • SAS Error Codes System Engineering Note MPI Reply Message Codes for SASThe following table lists IOCLogInfo codes for IOC_LOGINFO_ORIGINATOR = 1 (PL code segment). The message code names are generally self-explanatory. Additional explanation is provided for most of the codes.

    Table 3: MPI IOCLogInfo Codes for PL Code Segment

    Bits [23:0] Message Code Explanation

    0x00010000 PL_LOGINFO_CODE_OPEN_FAILURE Failed to open connection to device. Low order byte contains the reason code and could be one of the following: 0x01 No destination timeout 0x02 Pathway blocked 0x03 Reserved Continue 0 0x04 Reserved Continue 1 0x05 Reserved Initialize 0 0x06 Reserved Initialize 1 0x07 Reserved Stop 0 0x08 Reserved Stop 1 0x09 Retry 0x0A Break 0x0B Unused 0x0C Timeout expired 0x0D Unused 0x0E Device Table access failed 0x0F 0x10: Unused 0x11 Bad destination 0x12 Rate not supported 0x13 Protocol not supported 0x14 Reserved Abandon 0 0x15 Reserved Abandon 1 0x16 Reserved Abandon 2 0x17 Reserved Abandon 3 0x18 STP Resource busy 0x19 Wrong destination 0x1B Pathway blocked, retry timeout 0x1C Arbitration Wait Timer maxed

    0x00020000 PL_LOGINFO_CODE_INVALID_SGL Not used.

    0x00030000 PL_LOGINFO_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH Not used.

    0x00040000 PL_LOGINFO_CODE_FRAME_XFER_ERROR Error detected during frame transfer. See subcode for more detail.

    0x00050000 PL_LOGINFO_CODE_TX_FM_CONNECTED_LOW Not used.

    0x00060000 PL_LOGINFO_CODE_SATA_NON_NCQ_RW_ERR_BIT_SET Error detected on SATA non-NCQ drive automated read writes. Failing the command to host, do some hardware cleanup: issue target reset using internal task management. Note: Since this is a non-NCQ drive, hardware should only be using tag 0 for the device, and I/O to the device should be single-threaded.LSI Corporation Confidential | April 2009 Page 25

    0x00070000 PL_LOGINFO_CODE_SATA_READ_LOG_RECEIVE_DATA_ERR Not used.

  • MPI Reply Message Codes for SAS SAS Error Codes System Engineering Note0x00080000 PL_LOGINFO_CODE_SATA_NCQ_FAIL_ALL_CMDS_AFTR_ERR An error occurred on a SATA NCQ drive; Finishing all of the outstanding I/Os to the device, the drive will abort the outstanding I/Os.

    0x00090000 PL_LOGINFO_CODE_SATA_ERR_IN_RCV_SET_DEV_BIT_FIS Not used.

    0x000A0000 PL_LOGINFO_CODE_RX_FM_INVALID_MESSAGE Not used.

    0x000B0000 PL_LOGINFO_CODE_RX_CTX_MESSAGE_VALID_ERROR Not used.

    0x000C0000 PL_LOGINFO_CODE_RX_FM_CURRENT_FRAME_ERROR Not used.

    0x000D0000 PL_LOGINFO_CODE_SATA_LINK_DOWN Not used.

    0x000E0000 PL_LOGINFO_CODE_DISCOVERY_SATA_INIT_W_IOS Not used.

    0x000F0000 PL_LOGINFO_CODE_CONFIG_INVALID_PAGE Not used.

    0x000F0001 PL_LOGINFO_CODE_CONFIG_PL_NOT_INITIALIZED Error reading the Config Page: it is not initialized.

    0x000F0100 PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_PT Invalid page type.

    0x000F0200 PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NUM_PHYS Invalid number of phys.

    0x000F0300 PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NOT_IMP Case not handled.

    0x000F0400 PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NO_DEV No device found.

    0x000F0500 PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_FORM Invalid FORM.

    0x000F0600 PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_PHY Invalid Phy.

    0x000F0700 PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NO_OWNER No owner found.

    0x00100000 PL_LOGINFO_CODE_DSCVRY_SATA_INIT_TIMEOUT Not used.

    0x00110000 PL_LOGINFO_CODE_RESET Internal Task Management issued to reset the device. See subcode for more detail.

    0x00120000 PL_LOGINFO_CODE_ABORT Abort the command. See subcode for more detail.

    0x00130000 PL_LOGINFO_CODE_IO_NOT_YET_EXECUTED I/O Aborted (host issued task management) before sent to target.

    0x00140000 PL_LOGINFO_CODE_IO_EXECUTED I/O Aborted (host issued task management) after sent to target.

    0x00150000 PL_LOGINFO_CODE_PERS_RESV_OUT_NOT_AFFIL_OWNER Finished persistent reserve out command, but there is already an outstanding affiliation.

    0x00160000 PL_LOGINFO_CODE_OPEN_TXDMA_ABORT

    0x00170000 PL_LOGINFO_CODE_IO_DEVICE_MISSING_DELAY_RETRY Device is missing and device missing delay timer option is enabled. When the timer starts, an internal task management is sent to clean up the pending I/Os, the I/Os are returned with this log info, and the host should retry these I/Os. This log info is also sent when the I/O reply timer expires.

    0x00180000 PL_LOGINFO_CODE_IO_CANCELLED_DUE_TO_R_ERR I/O cancelled due to CRC error.

    0x00181000 PL_LOGINFO_CODE_IO_CANCELLED_DUE_TO_CRC_ERR I/O cancelled due to CRC error.

    0x00190000 PL_LOGINFO_CODE_IO_CANCELLED_DUE_TO_BREAK I/O cancelled due to link broken.

    0x00000100 PL_LOGINFO_SUB_CODE_OPEN_FAILURE Failed to open connection for reasons other than the ones mentioned by the subcodes below.

    0x00000101 PL_LOGINFO_SUB_CODE_OPEN_FAILURE_NO_DEST_TIMEOUT Failed to open connection with error Open Reject (No

    Table 3: MPI IOCLogInfo Codes for PL Code Segment (Continued)

    Bits [23:0] Message Code ExplanationPage 26 LSI Corporation Confidential | April 2009

    Destination). Retried for 50 milliseconds.

  • SAS Error Codes System Engineering Note MPI Reply Message Codes for SAS0x00000102 PL_LOGINFO_SUB_CODE_OPEN_FAILURE_SATA_NEG_RATE_2HI Failed to open connection due to negotiated rate on link is higher than the SATA device. Retried for 50 milliseconds.

    0x00000103 PL_LOGINFO_SUB_CODE_OPEN_FAILURE_RATE_NOT_SUPPORTED Failed to open connection due to rate not supported. Retried for 50 milliseconds.

    0x00000104 PL_LOGINFO_SUB_CODE_OPEN_FAILURE_BREAK_RECEIVED Failed to open connection due to break received. Retried for 50 milliseconds.

    0x00000114 PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ZONE_VIOLATION

    PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ABANDON0

    Failed to open connection due to Zone violation, used in SAS2 firmware.Failed to open connection used in SAS1 firmware.

    0x00000115 PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ABANDON1 Failed to open connection. yet to assign a specific name and currently it is reserved.

    0x00000116 PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ABANDON2 Failed to open connection. yet to assign a specific name and currently it is reserved.

    0x00000117 PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ABANDON3 Failed to open connection. yet to assign a specific name and currently it is reserved.

    0x0000011A PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ORR_TIMEOUT Failed to open connection with error.Open Reject Retry, and retry count exceeded. Retried for 1.25 seconds.

    0x0000011B PL_LOGINFO_SUB_CODE_OPEN_FAILURE_PATHWAY_BLOCKED Failed to open connection, retry count for pathway blocked exceeded. Retried for 50 milliseconds.

    0x0000011C PL_LOGINFO_SUB_CODE_OPEN_FAILURE_AWT_MAXED Failed to open connection, arbitration wait timer exceeded. Retried for 50 milliseconds.

    0x00000120 PL_LOGINFO_SUB_CODE_TARGET_BUS_RESET Target mode aborting I/O after receiving hard reset. This can also be due to open fail no destination or open reject retry and retry count has been exceeded (1.25 seconds).

    0x00000130 PL_LOGINFO_SUB_CODE_TRANSPORT_LAYER Target mode aborts the I/O due to bad DMA detected in receive operation (for example: Invalid SGL).

    0x00000131 PL_LOGINFO_SUB_CODE_TRANSPORT_LAYER_1 Target mode aborts the I/O due to frame transfer error or wrong relative offset detected.

    0x00000132 PL_LOGINFO_SUB_CODE_TRANSPORT_LAYER_2 Target mode aborts the I/O due to bad DMA detected in send operation (for example: Invalid SGL).

    0x00000133 PL_LOGINFO_SUB_CODE_TRANSPORT_LAYER_3 Target mode aborts the I/O after receiving frame with wrong frame length, wrong relative offset, or zero write data length in XFER_RDY.

    0x00000134 PL_LOGINFO_SUB_CODE_TRANSPORT_LAYER_4 Target mode detected open connection and received BREAK. Aborting the I/O.

    0x00000135 PL_LOGINFO_SUB_CODE_TRANSPORT_LAYER_5 Target mode aborted the I/O due to either of the following: Received XFER_RDY or response frame before the data

    transfer has completed. Retry count has been exceeded.

    0x00000140 PL_LOGINFO_SUB_CODE_PORT_LAYER Error detected in target mode I/O (non-data transfer). Aborting the I/O.

    0x00000141 PL_LOGINFO_SUB_CODE_PORT_LAYER_1 Error detected in target mode data transfer I/O. Aborting the I/O.

    Table 3: MPI IOCLogInfo Codes for PL Code Segment (Continued)

    Bits [23:0] Message Code ExplanationLSI Corporation Confidential | April 2009 Page 27

    0x00000142 PL_LOGINFO_SUB_CODE_PORT_LAYER_2 Error detected in transfer ready or response frame. Aborting the I/O.

  • MPI Reply Message Codes for SAS SAS Error Codes System Engineering Note0x00000143 PL_LOGINFO_SUB_CODE_PORT_LAYER_3 Target mode open failure due to no destination, rate not supported, or break received. Aborting the I/O.

    0x00000200 PL_LOGINFO_SUB_CODE_INVALID_SGL Aborting the command due to invalid SGL detected. This may be caused by mismatch between amount of data moved and length requested.

    0x00000300 PL_LOGINFO_SUB_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH Firmware detected unexpected relative offset or wrong frame length. Aborting the command.

    0x00000400 PL_LOGINFO_SUB_CODE_FRAME_XFER_ERROR Frame transfer error occurred on data frame. This condition occurs if: Connected becomes inactive during frame transmission. NAK is received for a frame transmission. ACK is not received before Connected goes inactive. XRDY received to transmit DMA and the command is

    queued.The I/O is then aborted if it is not already in the abort list with an internal task management. This log info is then sent to the host.

    0x00000500 PL_LOGINFO_SUB_CODE_TX_FM_CONNECTED_LOW Firmware tries to send query task to determine if the target actually got the command frame. This may happen if an open connection from host does not receive ACK/NAK, possibly due to BREAK received. Upon completion of the task, the I/O will be aborted if it was not found or will be permitted to continue if it was found on the target.

    0x00000600 PL_LOGINFO_SUB_CODE_SATA_NON_NCQ_RW_ERR_BIT_SET Not used.

    0x00000700 PL_LOGINFO_SUB_CODE_SATA_READ_LOG_RECEIVE_DATA_ERR SATA Read Log Ext command failed. Following are the possible causes: PIO Setup FIS received with SATA EndStatus bit 0 is set

    (0x01). Device to Host register FIS Status field bits 5 and 0 are set

    (0x21).Target will be reset.

    0x00000800 PL_LOGINFO_SUB_CODE_SATA_NCQ_FAIL_ALL_CMDS_AFTR_ERR Not used.

    0x00000900 PL_LOGINFO_SUB_CODE_SATA_ERR_IN_RCV_SET_DEV_BIT_FIS SATA Read Log Ext command arrived in an invalid frame type, not Device to Host Set Device Bits FIS. Target will be reset.

    0x00000A00 PL_LOGINFO_SUB_CODE_RX_FM_INVALID_MESSAGE XFER_RDY or RESPONSE received and the Rx Hardware indicates the tag / MID is not valid. Target will be reset.

    0x00000B00 PL_LOGINFO_SUB_CODE_RX_CTX_MESSAGE_VALID_ERROR DATA frame was received with invalid tag/MID. The SAS Specification says that the frame shall be discarded, and firmware aborts the command with that tag. Since firmware does not recognize the tag and which LUN it is for, the target will be reset.

    0x00000B01 PL_LOGINFO_SUB_CODE_RX_CTX_MESSAGE_INVALID_ERROR I/O aborted since the valid frame is received and the corresponding TAG is not validated.

    0x00000C00 PL_LOGINFO_SUB_CODE_RX_FM_CURRENT_FRAME_ERROR This can happen if the target sends a Response or XFER_RDY frame too early, while the data transfer is still in progress. It

    Table 3: MPI IOCLogInfo Codes for PL Code Segment (Continued)

    Bits [23:0] Message Code ExplanationPage 28 LSI Corporation Confidential | April 2009

    can also happen in the ACK/NAK timeout case. Firmware will reset the device.

  • SAS Error Codes System Engineering Note MPI Reply Message Codes for SAS0x00000D00 PL_LOGINFO_SUB_CODE_SATA_LINK_DOWN Resetting target because SATA link went down.

    0x00000E00 PL_LOGINFO_SUB_CODE_DISCOVERY_SATA_INIT_W_IOS SATA Init aborted outstanding I/Os to the device. This device may have changed or may have failed SATA Init previously. Device will be reset.

    0x00000E01 PL_LOGINFO_SUB_CODE_DISCOVERY_REMOTE_SEP_RESET Remote SEP needs to be reset.

    0x00000F00 PL_LOGINFO_SUB_CODE_SECOND_OPEN Not used.

    0x00001000 PL_LOGINFO_SUB_CODE_DSCVRY_SATA_INIT_TIMEOUT Device failed SATA Init command. Aside from device failure, this can also be due to the link going down during SATA Init. Internal Task Management will then reset the link and retry SATA Init.

    0x00002000 PL_LOGINFO_SUB_CODE_BREAK_ON_SATA_CONNECTION Not used.

    0x00003000 PL_LOGINFO_SUB_CODE_BREAK_ON_STUCK_LINK FW sends an internal task management reset to the link, if connection is already established when the link is stuck.

    0x00004000 PL_LOGINFO_SUB_CODE_BREAK_ON_STUCK_LINK_AIP FW sends an internal task management reset to the link, if connection has not been established.

    0x00005000 PL_LOGINFO_SUB_CODE_BREAK_ON_INCOMPLETE_BREAK_RCVD

    0x00006000 PL_LOGINFO_SUB_CODE_BREAK_ON_STUCK_TX_DMA I/O aborted since this transport has been stalled for 2.5 seconds.

    0x00007000 PL_LOGINFO_SUB_CODE_INVALID_SATA_TAG_ERROR An FIS that contained a tag that did not correspond to one of the devices outstanding tags.

    0x00200000 PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_FAILURE Cannot get SMP frame.

    0x00200010 PL_LOGINFO_CODE_ENCL_MGMT_SMP_READ_ERROR Error occurred on SMP Read.

    0x00200020 PL_LOGINFO_CODE_ENCL_MGMT_SMP_WRITE_ERROR Error occurred on SMP Write.

    0x00200040 PL_LOGINFO_CODE_ENCL_MGMT_NOT_SUPPORTED_ON_ENCL Enclosure Management services not available for this WWID.

    0x00200050 PL_LOGINFO_CODE_ENCL_MGMT_ADDR_MODE_NOT_SUPPORTED Address Mode not supported.

    0x00200060 PL_LOGINFO_CODE_ENCL_MGMT_BAD_SLOT_NUM Invalid slot number in SEP Message.

    0x00200070 PL_LOGINFO_CODE_ENCL_MGMT_SGPIO_NOT_PRESENT SGPIO not present/enabled.

    0x00200080 PL_LOGINFO_CODE_ENCL_MGMT_GPIO_NOT_CONFIGURED GPIO not configured.

    0x00200090 PL_LOGINFO_CODE_ENCL_MGMT_GPIO_FRAME_ERROR GPIO cannot allocate a frame.

    0x002000A0 PL_LOGINFO_CODE_ENCL_MGMT_GPIO_CONFIG_PAGE_ERROR GPIO failed config page request.

    0x002000B0 PL_LOGINFO_CODE_ENCL_MGMT_SES_FRAME_ALLOC_ERROR Cannot get frame for SES command.

    0x002000C0 PL_LOGINFO_CODE_ENCL_MGMT_SES_IO_ERROR I/O execution error.

    0x002000D0 PL_LOGINFO_CODE_ENCL_MGMT_SES_RETRIES_EXHAUSTED SEP I/O retries exhausted.

    0x002000E0 PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_ALLOC_ERROR Cannot get frame for SMP command.

    0x00200100 PL_LOGINFO_DA_SEP_NOT_PRESENT SEP not present when message was received.

    0x00200101 PL_LOGINFO_DA_SEP_SINGLE_THREAD_ERROR Can only accept one message at a time.

    0x00200102 PL_LOGINFO_DA_SEP_ISTWI_INTR_IN_IDLE_STATE ISTWI interrupt received while in IDLE state.

    0x00200103 PL_LOGINFO_DA_SEP_RECEIVED_NACK_FROM_SLAVE SEP NACKd; it is busy.

    0x00200104 PL_LOGINFO_DA_SEP_DID_NOT_RECEIVE_ACK SEP did not receive. ACK (Last Rcvd Bit = 1).

    Table 3: MPI IOCLogInfo Codes for PL Code Segment (Continued)

    Bits [23:0] Message Code ExplanationLSI Corporation Confidential | April 2009 Page 29

    0x00200105 PL_LOGINFO_DA_SEP_BAD_STATUS_HDR_CHKSUM SEP stopped or sent bad chksum in Hdr.

  • MPI Reply Message Codes for SAS SAS Error Codes System Engineering NoteThe following table lists IOCLogInfo codes for IOC_LOGINFO_ORIGINATOR = 2 (IR code segment).

    0x00200106 PL_LOGINFO_DA_SEP_STOP_ON_DATA SEP stopped while transferring data.

    0x00200107 PL_LOGINFO_DA_SEP_STOP_ON_SENSE_DATA SEP stopped while transferring sense data.

    0x00200108 PL_LOGINFO_DA_SEP_UNSUPPORTED_SCSI_STATUS_1 SEP returned unknown SCSI status.

    0x00200109 PL_LOGINFO_DA_SEP_UNSUPPORTED_SCSI_STATUS_2 SEP returned unknown SCSI status.

    0x00200110 PL_LOGINFO_DA_MUX_DID_NOT_ACCEPT_PORT_SETUP Mux didn't send an Ack (Last Rcvd Bit = 1) since didn't accept port activated.

    0x00200111 PL_LOGINFO_DA_SEP_DID_NOT_SEND_ACK SEP did not send an Ack.

    0x0020010A PL_LOGINFO_DA_SEP_CHKSUM_ERROR_AFTER_STOP SEP returned bad chksum after STOP.

    0x0020010B PL_LOGINFO_DA_SEP_CHKSUM_ERROR_AFTER_STOP_GETDATA SEP returned bad chksum after STOP while getting data.

    0x0020010C PL_LOGINFO_DA_SEP_UNSUPPORTED_COMMAND SEP does not support CDB opcode f/w location 1.

    0x0020010D PL_LOGINFO_DA_SEP_UNSUPPORTED_COMMAND_2 SEP does not support CDB opcode f/w location 2.

    0x0020010E PL_LOGINFO_DA_SEP_UNSUPPORTED_COMMAND_3 SEP does not support CDB opcode f/w location 3.

    0x0020010F PL_LOGINFO_DA_MUX_DID_NOT_SEND_ACK Mux didn't send an Ack (Last Rcvd Bit = 1).

    Table 3: MPI IOCLogInfo Codes for PL Code Segment (Continued)

    Bits [23:0] Message Code Explanation

    Table 4: MPI IOCLogInfo Codes for IR Code Segment

    Bits [23:0] Message Code Explanation

    0x00010000 IR_LOGINFO_RAID_ACTION_ERROR

    0x00020000 IR_LOGINFO_CODE_UNUSED2

    0x00010001 IR_LOGINFO_VOLUME_CREATE_INVALID_LENGTH Amount of information passed down for Create Volume is too large.

    0x00010002 IR_LOGINFO_VOLUME_CREATE_DUPLICATE Creation of duplicate volume attempted (Bus/Target ID checked).

    0x00010003 IR_LOGINFO_VOLUME_CREATE_NO_SLOTS Creation failed due to maximum number of supported volumes exceeded.

    0x00010004 IR_LOGINFO_VOLUME_CREATE_DMA_ERROR Creation failed due to DMA error in trying to read from host.

    0x00010005 IR_LOGINFO_VOLUME_CREATE_INVALID_VOLUME_TYPE Creation failed due to invalid volume type passed down.

    0x00010006 IR_LOGINFO_VOLUME_MFG_PAGE4_ERROR Creation failed due to error reading MFG Page 4.

    0x00010007 IR_LOGINFO_VOLUME_INTERNAL_CONFIG_STRUCTURE_ERROR Creation failed when trying to create internal structures.

    0x00010010 IR_LOGINFO_VOLUME_ACTIVATING_AN_ACTIVE_VOLUME Activation failed due to trying to activa


Recommended