SAS Error Codes (S11079) Systems Sys tems Engineering Note Version 6.0 April 2009
Revision History Version and Date
Description of Changes
Versi Version on 6.0 6.0 and and April April 2009 2009
Update Updated d Tabl Table e 1, Tabl Table e 2, and and Tabl Table e 3 with with releva relevant nt fault fault code codess to refl reflect ect the the lates latestt versio version n of the the firmwa firmware re..
Vers Versio ion n 5.0 5.0 and and Febr Februa uary ry 200 2008 8
Upda Update ted d Tab Table le 1 on page page 8. 8.
Version 4.0 and September 2007
Updated Table 1, Table 2, Table 3, and Table 4 with relevant fault codes and IOCLogInfo Codes to reflect the latest version of the firmware.
Versi Version on 3.0 and March March 2007 2007
Added Added entr entries ies to Table able 4 to reflect reflect the latest latest versio version n of of the the firm firmwar ware. e.
Versi Version on 2.0 2.0 and Dece Decembe mberr 2006 2006
Update Updated d SAS Spec Spec refe referen rences ces in in Sectio Sections ns 3 and 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. Added and modified a number of entries in Table 2. Table 2 and Table 3 to reflect the latest version of the fi rmware.
Vers ersion ion 1.0 1.0 and and Au August gust 2005 005
Init Initia iall rel rele ease ase.
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 arising out 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 from LSI 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.
Co r p o r at e Head q u ar t er s Milpitas, CA 800-372-2447
Document Number: DB05-000143-04 Copyright © 2009 LSI Corporation All Rights Reserved
Em ai l
[email protected]
Web s i t e www.lsi.com
SAS Error Codes System Engineering Note
Document Overview
Systems Syst ems Engineering Note SAS Error Codes This document document provides information on the the SAS error codes. codes. 1.0 Document Overview
2.0 References
This SEN provides the following following information relating to SAS error codes:
SAS Protocol Error Error Handling on page page 1
SATA-to-SCSI SAT A-to-SCSI Error Translation Translation on page 7
SAS Firmware Fault Fault Codes on page 7
MPI Reply Message Codes Codes for SAS on page 23
This following lists the documentation documentation relating to SAS error codes:
Serial Attached SCSI Specification 1.1 Revision 10 (September (September 21, 2005) 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 Attachment with Packet Packet Interface-7 Volume 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 defines the SAS Protocol Error Handling of LSI SAS controllers. It specifically addresses initiator mode SSP errors. It does not specifically address SATA, SATA, STP, 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 part of the Fusion-MPT device driver architecture. The role 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. IOP. A key part par t 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
LSI Corporation Confidential | April 2009
Page 1
SAS Protocol Error Handling
SAS Error Codes System Engineering Note
Fusion-MPT architecture is a SCSI Command Set based architecture i n 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. 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 Arbitratio n Wait Timer Maxed
(See SAS Spec 7.12.3.) Fail the I/O back to the host with MPI_IOCSTA 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 Frame- The firmware firmware sends a Task Abort to the target to abort the I/O. 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; t herefore, 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 Frame- The current firmware firmware sends a Task Task Abort to the target to abort the I/O, as specified in SAS 1.0. Future versions of the firmware are expected to suppor t 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; cor rect; 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 Handling
3.4
Break Timeout
This condition occurs when the controller controller sent a BREAK, but no BREAK was received 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 Close-Timeout occurs occurs during a CLOSE cycle. The 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 controller’s controller’s PHY behavior exactly follows the Dword Sync Sync State Machine defined in the SAS Spec, section s ection 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 S pec 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 t he 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 Data- The controller never DMAs DMAs more data into host 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 ext ra data. Fail I/O to the host with MPI_IOCSTATUS_SCSI_DA MPI_IOCSTATUS_SCSI_DATTA_OVERRUN. TX Data- The Data- The controller never sends 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 expec ting 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 i t 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 Note
3.11 Disparity Errors
The controller’s controller’s PHY behavior exactly follows the Dword Sync Sync State Machine defined in the SAS Spec, section s ection 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 (ACK Timeout)
The SSP state machine (see SAS Spec 7.16.8) timed out out waiting for an ACK or 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. FAILURE. A hard reset condition shall not affect any other SCSI initiator ports in the SCSI initiator device; however, however, the logical unit reset condition established in a SCSI t arget 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 frame information structure (FIS) type received received in the header is not valid. valid. SAS Spec 9.2.5.2 says, “ The frame shall be discarded for wrong frame types.”
3.17 Invalid Hashed SAS Destination 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 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 Initiator Connection Tag Tag
(See SAS Spec 7.2.5.11.) The controller returns Open Reject (Protocol Not Supported).
3.20 Invalid Link Rate Rate
(See SAS Spec 7.2.5.11.) The controller returns Open Reject (Rate Not Supported).
3.21 Invalid Protoco Protocoll
(See SAS Spec 7.2.5.11.) The controller returns Open Reject (Protocol Not Supported).
3.22 Invalid Queue Queue Tag 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 SMP_PHY_CONTROl_PHY_OPERATION_HARD_RESET if the device is attached to an expander.
Page 4
LSI Corporation Confidential | April 2009
SAS Error Codes System Engineering Note
SAS Protocol Error Handling
3.23 Invalid SAS Destination Destination Address 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 Address in Open
If the controller receives an Open wi th 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 NAK’d 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 Returned
The firmware replies replies with an error response to the host driver driver with the SCSI Status, Sense or Response Data.
3.27 OOB Sequence/Link 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 Command- The firmware sends a Task Task Abort to the target to abort 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 Data- The current firmware sends sends a Task Task Abort to the target to abort the I/O, 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 i s reset before the CRC/EOF, the controller does not receive a complete frame. The controller discards the frame.
3.28 Open Reject (Bad Destination) Destination) Received
(See SAS Spec 7.2.5.11.) Command- Fail I/O to host with MPI_IOCSTA MPI_IOCSTATUS_SCSI_DEVICE_NOT_THERE. Tx Data- Since the command has already been sent to t he 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) Destination) Received
(See SAS Spec 7.2.5.11.) Retry connection attempt.
3.30 Open Reject (Pathway (Pathway Blocked) Received
(See SAS Spec 7.2.5.11.) Retry connection attempt.
LSI Corporation Confidential | April 2009
Page 5
SAS Protocol Error Handling
3.31 Open Reject (Protocol (Protocol Not Not Supported) Received
SAS Error Codes System Engineering Note
(See SAS Spec 7.2.5.11.) Command- Fail I/O to host with MPI_IOCSTA MPI_IOCSTATUS_SCSI_DEVICE_NOT_THERE. Tx Data- Since the command has already been sent to t he 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 (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 Received
(See SAS Spec 7.2.5.11.) Retry the connection attempt.
3.34 Open Reject (STP Resources Busy) Busy) Received
(See SAS Spec 7.2.5.11.) Retry the connection attempt.
3.35 Open Reject (Wrong Destination) Destination) Received
(See SAS Spec 7.2.5.11.) Command- Fail I/O to host with MPI_IOCSTA MPI_IOCSTATUS_SCSI_DEVICE_NOT_THERE. Tx Data- Since the command has already been sent to t he 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) received—for 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 fir mware 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 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 Data- The I/O is failed to host with MPI_IOCSTAT MPI_IOCSTATUS_SCSI_DA US_SCSI_DATTA_UNDERRUN, since less data was transferred than expected. Xfer Rdy Specifies Too Much Data- The Data- The controller never sends sends more bytes than are are specified in the scatter/gather list. The I/O will have transferred exactly the number of bytes requested, so it will complete successfully.
Page 6
LSI Corporation Confidential | April 2009
SAS Error Codes System Engineering Note
SATA-to-SCSI Error Translation
3.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 Frame Received
SAS Spec 9.2.5.2 says to discard the frame and abort the I/O, so the controller sends a Task Task Abort for that I/O.
3.47 Zero Length 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 Task Abort for that I/O.
4.0 SATA-to-SC SATA-to-SCSI SI Error Translation
5.0 SAS Firmware Fault Codes
For information about SATA-to-SCSI SATA-to-SCSI error translation, refer to SCSI/ATA Translation (SAT) Revision 8 (January 17, 2006).
This section has information about about firmware fault codes codes that may be generated by by the 1064/1068 firmware. The fault code may be determined either via the System Doorbell register or via the Heart beat 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 code from the System System Doorbell register or from the flash sequence on the Hear tbeat LED.
5.1.1 Doorbell
The process of obtaining the fault fault code from the System 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
The firmware also outputs outputs the fault code on the Heartbeat LED. LED. To To determine the fault code value, you first need to look for the flash sequence that indicates the start star t of the value. The synchronization sequence is:
Heartbeat LED
LSI Corporation Confidential | April 2009
10 rapid flashes (1/10 second each) 2 seconds off
Page 7
SAS Firmware Fault Codes
SAS Error Codes System Engineering Note
Following this sequence, the length of the nex t 17 flashes indicates each bit of the fault code. A long flash (1 second) = 1 and a short flash 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: thi s: L SSSL SSLS SSLL SLSS The above sequence sequence indicates a fault code code of 0x00011234 (15 leading 0 bits added). 5.2
The following shows the format format of the fault code: code:
Fault Code Interpretation
31
16 15 Reserved
0
Ch
Fault Value
Ch
16 The channel where the fault fault was detected.
Fault Value
[15:0] A value indicating the fault that the firmware has detected (see Ta (see Table ble 1). 1).
5.3
The following table lists and describes the current current fault values.
Fault Values and Descriptions
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_PARIT Y
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 to place internal fr frame on re 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/ I/O Ch Chain of offset fifield co contained no 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 Codes
Table 1: Fault Values Values and Descriptions Descripti ons (Continued) (Continued) Value
Fault
Builds
Description
0x0605
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.
0x07 0x0701 01
IFA IFAULT_ ULT_IO IOP_ P_FL FLAS ASH_ H_CO CONF NFIG IGP PAGE_ AGE_BU BUIL ILD_ D_PE PERS RSIS ISTS TSTO TORA RAGE GE_R _REV EVAL AL_F _FAI AILL
All All
Erro Errorr buil buildi ding ng pers persis iste tent nt conf config ig page pagess on FLASH.
0x07 0x0702 02
IFA IFAULT_ ULT_IO IOP_ P_FL FLAS ASH_ H_C CONFI ONFIGP GPAG AGE_ E_BU BUIL ILD_ D_MI MIGR GRA ATION TION_V _VAL ALID IDA ATE_F TE_FAI AILL
All All
Migr Migrat atio ion n of per persi sist sten entt conf config ig pag pages es fai faile led d.
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 to fifind a NV NVDATA el element in in th the persistent pages.
0x0708
IFAUL IFAULT_IOP_FLASH T_IOP_FLASH_LOGAD _LOGADD_PERSISTST D_PERSISTSTORAGE_MIGRA ORAGE_MIGRATION_VA TION_VALIDA LIDATE TE _FAIL
All
Migration of of pe persiste stent co config pa pages fa failed.
0x0709
IFAUL IFAULT_IOP_FLASH T_IOP_FLASH_LOGH _LOGHDR_PERSISTST DR_PERSISTSTORAGE_MIGRA ORAGE_MIGRATION_V TION_VALIDA ALIDATE TE _FAIL
All
Migration of of pe persistent co config pa pages fa 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 us u sed.
0x0A01
IFAULT_IOP_NO_IOP_RESOURCE_FRAMES_MFG_5
None
Not used.
0x0A02
IFAULT_IOP_NO_IOP_RESOURCE_FRAMES_DOORBELL
All
Doorbell Ha Handshake wa was un unable to to al allocate an 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 [5:0] = Index
0x0C00
IFAULT_IOP_INVALID_FRAME_SIZE
Debug
MPI Message exceeded Frame Size.
LSI Corporation Confidential | April 2009
Page 9
SAS Firmware Fault Codes
SAS Error Codes System Engineering Note
Table 1: Fault Values Values and Descriptions Descripti ons (Continued) (Continued) Value
Fault
Builds
Description
0x0D00
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 indicates that the attached NVDATA does not match that which the F/W expects.
0x1302
IFAULT_IOP_NVDATA_MISMATCH_CURRENT_PAGES
All
When bu building Cu Current Co Config Pa Pages, th the F/ F/W detected that the attached NVDATA is missing a Config Page(s). This indicates 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 in NV NVDATA he header si 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 SCSIIOComplete function.
0x1602
IFAULT_IOP_MID_OUT_OF_RANGE_SCSIIO_COMP_ERR
All
An invalid Message Index was de detected in SCSIIOCompleteError 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 Bu Buffer In Initialization Fa 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.
0x1804
IFAULT_IOP_SELFTEST_FAILED_TIMER
All
Timer Failure.
0x1805
IFAULT_IOP_SELFTEST_FAILED_SYSIF
All
System Interface Queue Initialization Failure.
Page 10
LSI Corporation Confidential | April 2009
SAS Error Codes System Engineering Note
SAS Firmware Fault Codes
Table 1: Fault Values Values and Descriptions Descripti ons (Continued) (Continued) Value
Fault
0x1806
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 so source of of th the SC SCSI I/ I/O me 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
0x1D00
IFAULT_IOP_UNHANDLED_EVENT
All
Coding Error – Event sent with no corresponding 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. 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
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. [7:6] = Subsystem [5:0] = Index
LSI Corporation Confidential | April 2009
Builds
—
—
Description
Quad Interrupt with no Quad Interrupt pending.
Not used.
Page 11
SAS Firmware Fault Codes
SAS Error Codes System Engineering Note
Table 1: Fault Values Values and Descriptions Descripti ons (Continued) (Continued) Value
Fault
Builds
Description
0x2800
IFAULT_EXCEPTION_UNDEFINED_INST
None
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 Er Error In Interrupt oc 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 Er 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
0x4D00
IFAULT_PL_ATAPI_UNEXPECTED_FIS
All
Received SATA FIS for ATAPI device that was not expected.
0x4E01
IFAULT_PL_NO_IOP_RESOURCE_FRAMES_EVENT
All
No internal frames available to send MPI Event.
Page 12
—
Undefined Instruction Processor Exception. —
Not used.
LSI Corporation Confidential | April 2009
SAS Error Codes System Engineering Note
SAS Firmware Fault Codes
Table 1: Fault Values Values and Descriptions Descripti ons (Continued) (Continued) Value
Fault
Builds
Description
0x4E02
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 in internal frames av available to se 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 Li Link Re Reset Se 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 th that can be granted spinup per quad.
0x50 0x50F4 F4
IFA IFAULT_ ULT_PL PL_L _LIN INK_ K_RE RESE SET_ T_TTOTALDR ALDRIV IVES ES_M _MAX AXP PHYS_ HYS_SP SPIN INUP UP_M _MIS ISM MATCH
All All
Exce Exceed eded ed the the max maxim imum um numb number er of driv drives es tha thatt 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_PARIT Y
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.
0x5700
IFAULT_PL_PASS_THRU_SEND_REENTRY
All
An overlapping PASS Through request was attempted.
LSI Corporation Confidential | April 2009
Page 13
SAS Firmware Fault Codes
SAS Error Codes System Engineering Note
Table 1: Fault Values Values and Descriptions Descripti ons (Continued) (Continued) Value
Fault
Builds
Description
0x6000
IFAULT_PL_TASK_MGMT_HW_CLEANUP_FAILURE
All
Unable to clean up hardware or firmware correctly. 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 Ma Management de detected a corruption of of the TM Abort List.
0x6004
IFAULT_PL_TASK_MGMT_IO_COUNT_CORRUPTION
All
Task Management detected corruption of a device’s 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. 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 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 Ma Management de detected an an in invalid hardware Device Index during TX Frame Cleanup.
0x6013
IFAULT_PL_INVALID_DEVHANDLE_TXFM_CLEANUP
All
Invalid device handle detected when doing Transmission Transmission Frame Manager Manager cleanup.
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.
Page 14
LSI Corporation Confidential | April 2009
SAS Error Codes System Engineering Note
SAS Firmware Fault Codes
Table 1: Fault Values Values and Descriptions Descripti ons (Continued) (Continued) Value
Fault
Builds
Description
0x60 0x6016 16
IFA IFAULT_ ULT_PL PL_T _TAS ASK_ K_MG MGMT MT_C _CRI RIT_ T_FR FR_1 _1_N _NO OT_FR T_FREE EED D
None None
Not Not used 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 M ismatch 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 device’s device’s 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 us u sed.
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_C TX_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.
LSI Corporation Confidential | April 2009
Page 15
SAS Firmware Fault Codes
SAS Error Codes System Engineering Note
Table 1: Fault Values Values and Descriptions Descripti ons (Continued) (Continued) Value
Fault
0x640E
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. 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. Manager.
0x6803
IFAULT_PL_INIT_Q_NOT_DISBLD_TM_ABT_TX_FM_2
All
Initiator Queue not disabled when cleaning up Transmission Frame Manager. 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.
0x700a
IFAULT_PL_HOST_BUF_DMA_UNEXPECTED_MID
All
Invalid MID detected when attempting host bus DMA.
Page 16
Builds
Description
LSI Corporation Confidential | April 2009
SAS Error Codes System Engineering Note
SAS Firmware Fault Codes
Table 1: Fault Values Values and Descriptions Descripti ons (Continued) (Continued) Value
Fault
Builds
Description
0x700b
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 Entr y” 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.
0x7709
IFAULT_PL_RXBUFFER_INVALID_PROTOCOL
RxBuffer Debug
Invalid protocol detected.
LSI Corporation Confidential | April 2009
Page 17
SAS Firmware Fault Codes
SAS Error Codes System Engineering Note
Table 1: Fault Values Values and Descriptions Descripti ons (Continued) (Continued) Value
Fault
0x770A
IFAULT_PL_RXBUFFER_TIMER_EXPIRED
All
Timeout occurred before nonauto firmware initialization could start.
0x770B
IFAULT_PL_RXBUFFER_INVALID_FRAME_T YPE
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_RESET TING
All
Timeout occurred before clearing th 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
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 Tracker data 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 us 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 us 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.
0x7B 0x7B05 05
IFA IFAULT_ ULT_P PERTUR RTURBE BED_ D_C CREDI REDIT_ T_TE TEST ST__RXBB RXBBC CRED REDIT_ IT_4_O 4_OTHER THER__PHY PHY
Debug bug
Credi edit mis mism matc atch on on the the Phys whi which ch were no 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.
0x8002
IFAULT_IR_PURE_VIRTUAL
IR
An attempt to reference an object that has no associated memory.
Page 18
Builds
Description
Not used.
LSI Corporation Confidential | April 2009
SAS Error Codes System Engineering Note
SAS Firmware Fault Codes
Table 1: Fault Values Values and Descriptions Descripti ons (Continued) (Continued) Value
Fault
Builds
Description
0x8003
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++ operator.
LSI Corporation Confidential | April 2009
Page 19
SAS Firmware Fault Codes
SAS Error Codes System Engineering Note
Table 1: Fault Values Values and Descriptions Descripti ons (Continued) (Continued) Value
Fault
Builds
Description
0x801E
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. 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. configuration.
0x8038
IFAULT_IR_8038
None
Not used.
0x8039
IFAULT_IR_UNKNOWN_RPDP1
IR
Failed to get RPD1 that should exist.
0x803A
IFAULT_IR_803A
None
Not used.
Page 20
LSI Corporation Confidential | April 2009
SAS Error Codes System Engineering Note
SAS Firmware Fault Codes
Table 1: Fault Values Values and Descriptions Descripti ons (Continued) (Continued) Value
Fault
Builds
Description
0x803B
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 vir tual 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 to wr write me metadata wi without he 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 doesn’t 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 wasn’t 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
Couldn’t 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.
0x8056
IFAULT_IR_VD_NOT_FOUND
IR
Could not find Virtual Disk referenced in Config Page.
LSI Corporation Confidential | April 2009
Page 21
SAS Firmware Fault Codes
SAS Error Codes System Engineering Note
Table 1: Fault Values Values and Descriptions Descripti ons (Continued) (Continued) Value
Fault
Builds
Description
0x8057
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.
0xC009
IFAULT_TARG_NON_AUTO_CMPLT_ERR_SYS_MID
Target
Non auto completion MID error detected.
Page 22
LSI Corporation Confidential | April 2009
SAS Error Codes System Engineering Note
MPI Reply Message Codes for SAS
Table 1: Fault Values Values and Descriptions Descripti ons (Continued) (Continued) Value
Fault
Builds
Description
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 not get get Mes Message Fr Frame in in CmdBuffPostErrReply CmdBuffPostErrReply function.
0xC00E
IFAULT_TARG_UNPOSTED_INFO_MISMATCH
Target
Mismatch detected in Command Buffer ’s 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-AutoDmaCompletio Non-AutoDmaCompletion n function.
0xCAFE
IFAULT_IOP_HOST_INTENTIONAL_FAULT_SPECIAL_VALUE
All
Allow th the ho host to to in intentionally fa fault th the IO IOP by 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.
6.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 following subfields:
LSI Corporation Confidential | April 2009
[31: [31:28 28]]
MPI_ MPI_IO IOCL CLOG OGIN INFO FO_T _TYP YPE_ E_SA SASS (3) (3)
[27: [27:24 24]]
IOC_ IOC_LLOGIN OGINFO FO_O _ORI RIGI GINA NATO TOR: R: 0 = IOP IOP,, 1 = PL, PL, 2 = IR
[23:16]
LOGINFO_CODE
[15:0]
LOGINFO_CODE Specific
Page 23
MPI Reply Message Codes for SAS
SAS Error Codes System Engineering Note
The following table lists IOCLogInfo IOCLogInfo codes for IOC_LOGINFO_ORIGINA IOC_LOGINFO_ORIGINATOR TOR = 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 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.
0x00 0x0003 0306 0600 00
IOP_ IOP_LLOGIN OGINFO FO_ _CODE_C E_CONFIG NFIG__INV INVALID ALID__PAGE_ GE_PERSIS RSISTT
Persis rsiste ten nt page age not not found ound..
0x00 0x0003 0307 0700 00
IOP_ IOP_LLOGIN GINFO_C O_CODE_C E_CONFI ONFIG_ G_IN INV VALID_P ID_PA AGE_D E_DEFA EFAULT ULT
Default ault page page not not found. nd.
0x00 0x0003 03E0 E000 00
IOP_ IOP_LLOGIN OGINFO FO_C _COD ODE_ E_FW FWUP UPLLOAD_ OAD_NO NO_F _FLA LASH SH_A _AV VAILA AILABL BLEE
Tried ried to uplo upload ad from from flas flash, h, but but ther there e is none none..
0x00 0x0003 03E0 E001 01
IOP_ IOP_LLOGIN OGINFO FO_C _COD ODE_ E_FW FWUP UPLLOAD_ OAD_UN UNKN KNOW OWN_ N_IM IMAG AGE_ E_TY TYPE PE
Imag Image eType ype fiel field d cont conten ents ts wer were e inva invali lid d.
0x00 0x0003 03E0 E002 02
IOP_ IOP_LLOGIN OGINFO FO_C _COD ODE_ E_FW FWUP UPLLOAD_ OAD_WR WRON ONG_ G_IM IMA AGE_S GE_SIZ IZEE
Imag ImageS eSiz ize e fiel field d in TCSGE CSGE was was bad/ bad/of offs fset et in MfgP MfgPg g 4 was was wrong.
0x0003E003 0x0003E003
IOP_LO IOP_LOGINFO GINFO_CO _CODE_F DE_FWUPL WUPLOAD OAD_ENTI _ENTIRE_F RE_FLASH LASH_UPL _UPLOAD_ OAD_FFAILED AILED Error Error occurre occurred d while while attemptin attempting g to upload upload the the entire entire flash. flash.
0x00 0x0003 03E0 E004 04
IOP_ IOP_LLOGIN OGINFO FO_C _COD ODE_ E_FW FWUP UPLLOAD_ OAD_RE REGI GION ON_U _UPL PLOA OAD_ D_FFAILE AILED D
Erro Errorr occ occur urre red d whi while le atte attemp mpti ting ng to to upl uploa oad d sin singl gle e fla flash sh region.
0x0003E005
IOP_LOGINFO_CODE_FWUPLOAD_DMA_FAILURE
Problem occurred while DMAing FW to host memor yy..
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 Task Management Management can also be generated internally by the firmware.
0x00 0x0006 0600 0001 01
IOP_ IOP_LLOGIN OGINFO FO_C _COD ODE_ E_EN ENCL CL_M _MGM GMT_ T_RE READ AD_A _ACT CTIO ION_ N_ER ERRO ROR R
Read Read acti action on not not supp suppor orte ted d for for SEP SEP mess messag age. e.
0x00 0x0006 0600 0002 02
IOP_ IOP_LLOGIN OGINFO FO_C _COD ODE_ E_EN ENCL CL_M _MGM GMT_ T_IN INV VALID ALID_B _BUS US_I _ID_ D_ER ERRO ROR R
Inva Invali lid d Bus Bus ID in SEP SEP mes messa sage ge..
0x00 0x0007 0700 0001 01
IOP_ IOP_LLOGIN GINFO_C O_CODE_ ODE_TTARGET RGET__ASSI ASSIST ST__TERM TERMIN INA ATED TED
Targe argett Ass ssiist is term termin inat ated ed,, e.g., .g., due to bus bus reset set occu ccurrin rring g just as this command came came in.
0x00 0x0007 0700 0002 02
IOP_ IOP_LLOGIN OGINFO FO_C _COD ODE_ E_TTARGE ARGET_ T_ST STA ATUS_ TUS_SE SEND ND_T _TER ERMI MINA NATE TED D
Targe argett Sta Statu tuss Sen Send d is term termin inat ated ed,, e.g e.g.,., due due to bus bus res reset et occurring just as this command came in.
0x00 0x0007 0700 0003 03
IOP_ IOP_LLOGIN GINFO_C O_CODE_ ODE_TTARGET RGET_M _MOD ODEE_ABO _ABORT RT_A _ALLL_IO L_IO
Targe argett Mod Mode Abor Abortt for all all I/O I/Os due due to Task ask Man Manage agement command from host.
0x00 0x0007 0700 0004 04
IOP_ IOP_LLOGIN GINFO_C O_CODE_ ODE_TTARGET RGET_M _MOD ODEE_ABO _ABORT RT_E _EX XACT_ CT_IO
Targe argett Mod Mode Ab Abort ort fo for spe specific ific I/Os I/Os due due to Task ask Management command from host.
0x00 0x0007 0700 0005 05
IOP_ IOP_LLOGIN OGINFO FO_C _COD ODE_ E_TTARGE ARGET_ T_MO MODE DE_A _ABO BORT RT_E _EXA XACT_ CT_IO IO_R _REQ EQ
Targe argett Mode Mode Abort Abort for for Tar Targe gett Assis Assistt or Tar Targe gett Statu Statuss Send 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 SAS
The following table lists IOCLogInfo IOCLogInfo codes for IOC_LOGINFO_ORIGINA IOC_LOGINFO_ORIGINATOR TOR = 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 No destinati destination on timeout timeout • 0x02 – Pathway Pathway blocked blocked • 0x03 – Reserved Reserved Continue Continue 0 • 0x04 – Reserved Reserved Continue Continue 1 • 0x05 – Reserved Reserved Initiali Initialize ze 0 • 0x06 – Reserved Reserved Initiali Initialize ze 1 • 0x07 0x07 – Reser Reserved ved Stop Stop 0 • 0x08 0x08 – Reser Reserved ved Stop Stop 1 • 0x09 0x09 – Ret Retry ry • 0x0A 0x0A – Bre Break ak • 0x0B 0x0B – Unus Unused ed • 0x0C – Timeo Timeout ut expir expired ed • 0x0D 0x0D – Unu Unuse sed d • 0x0E – Device Device Table Table access access failed failed • 0x0F 0x0F – 0x10: 0x10: Unus Unused ed • 0x11 0x11 – Bad dest destina inatio tion n • 0x12 – Rate Rate not support supported ed • 0x13 – Proto Protocol col not not supported supported • 0x14 – Reserved Reserved Abandon Abandon 0 • 0x15 – Reserved Reserved Abandon Abandon 1 • 0x16 – Reserved Reserved Abandon Abandon 2 • 0x17 – Reserved Reserved Abandon Abandon 3 • 0x18 – STP Resource Resource busy • 0x19 – Wrong Wrong destinatio destination n • 0x1B – Pathway Pathway blocke blocked, d, retry retry timeout timeout • 0x1C – Arbitrat Arbitration ion Wait Wait Timer Timer maxed
0x00020000
PL_LOGINFO_CODE_INVALID_SGL
Not used.
0x00 0x0003 0300 0000 00 PL_LOGIN OGINFFO_C O_CODE_ ODE_W WRONG RONG__REL REL_OFF OFF_OR_ OR_FRA FRAME_L E_LENG ENGTH
Not Not used sed.
0x00040000
PL_LOGINFO_CODE_FRAME_XFER_ERROR
Error de detected du during fr frame tr transfer. Se See su subcode fo for mo more detail.
0x00050000
PL_LOGINFO_CODE_TX_FM_CONNECTED_LOW
Not used.
0x00 0x0006 0600 0000 00 PL_L PL_LOG OGIN INFO FO_C _COD ODE_ E_SA SATTA_NO A_NON_ N_NC NCQ_ Q_RW RW_E _ERR RR_B _BIT IT_S _SET ET
Err Error dete detect cted ed on SAT SATA non non-N -NCQ CQ driv drive e aut autom omat ated ed read read writes. Failing the command to host, do some hardware cleanup: issue target reset using internal task management. Note: Since 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. single-threaded.
0x00 0x0007 0700 0000 00 PL_LOGI OGINFO_ NFO_C CODE_ ODE_SSATA_RE A_REA AD_LOG_R OG_REC ECEI EIVE VE__DATA_ERR ERR
Not Not use used d.
LSI Corporation Confidential | April 2009
Page 25
MPI Reply Message Codes for SAS
SAS Error Codes System Engineering Note
Table 3: MPI IOCLogInfo Codes for PL Code Segment (Continued) Bits [23:0]
Message Code
Explanation
0x0008 0x0008000 0000 0
PL_L PL_LOGI OGINFO NFO_C _CODE ODE_S _SA ATA_NC A_NCQ_F Q_FAIL AIL_AL _ALL_ L_CMD CMDS_A S_AFTR FTR_E _ERR RR
An error error occur occurre red d on on a SAT SATA NCQ NCQ drive; drive; Finis Finishin hing g all all of of the 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_ EV_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 u se sed.
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 re reading th the Co Config Pa Page: it it is is no not in initialized.
0x000F0100
PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_PT
Invalid page type.
0x00 0x000F 0F02 0200 00
PL_L PL_LOG OGIN INFO FO_C _COD ODE_ E_C CONFI ONFIG_ G_IN INV VALID ALID_P _PA AGE_N GE_NUM UM_P _PHY HYSS
Inva Invali lid d numb number er of phys phys..
0x00 0x000F 0F03 0300 00 PL_LOGI OGINFO_ NFO_C CODE_ ODE_C CONF ONFIG_ IG_INV INVALID ALID__PAGE_ GE_NOT_ NOT_IM IMP P
Case ase not not hand handle led d.
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.
0x00 0x000F 0F07 0700 00
PL_L PL_LOG OGIN INFO FO_C _COD ODE_ E_C CONFI ONFIG_ G_IN INV VALID ALID_P _PA AGE_N GE_NO_ O_OW OWNE NER R
No owne ownerr found ound..
0x00100000
PL_LOGINFO_CODE_DSCVRY_SATA_INIT_TIMEOUT
Not us 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 Ab Aborted (h (host is issued ta task ma management) be before se sent to to target.
0x00140000
PL_LOGINFO_CODE_IO_EXECUTED
I/O Aborted (host issued task management) after sent to target.
0x00 0x0015 1500 0000 00 PL_L PL_LOG OGIN INFO FO_C _COD ODE_ E_PE PERS RS_R _RES ESV_ V_OU OUT_ T_NO NOT_ T_AF AFFI FIL_ L_OW OWNE NER R 0x00160000
PL_LOGINFO_CODE_OPEN_TXDMA_ABORT
Finis inishe hed d per persi sist sten entt res reserv erve e out out com comma mand nd,, but but ther there e is already an outstanding affiliation. —
0x00 0x0017 1700 0000 00 PL_L PL_LOG OGIN INFO FO_C _COD ODE_ E_IO IO_D _DEV EVIC ICE_ E_MI MISS SSIN ING_ G_DE DELA LAY_ Y_RE RETR TRY Y
Devi Device ce is mis missi sing ng and and dev devic ice e miss missin ing g dela delayy tim timer er opt optio ion n 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
I/O cancelled due to CRC error.
PL_LOGINFO_CODE_IO_CANCELLED_DUE_TO_R_ERR
0x00 0x0018 1810 1000 00 PL_LOGI OGINFO_ NFO_C CODE_ ODE_IIO_CA O_CANC NCEELLED_ ED_DUE_ UE_TO_CRC_ CRC_EERR
I/O canc cance elle lled due to CRC CRC erro rror.
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.
0x0000 0x0000010 0101 1
PL_L PL_LOGI OGINF NFO_S O_SUB_ UB_CO CODE_ DE_OP OPEN_ EN_FFAILURE AILURE_NO _NO_D _DEST EST_TI _TIME MEOUT OUT
Failed ailed to open open conn connect ectio ion n with with erro errorr Open Open Reject Reject (No Destination). Retried Retried for 50 milliseconds. milliseconds.
Page 26
LSI Corporation Confidential | April 2009
SAS Error Codes System Engineering Note
MPI Reply Message Codes for SAS
Table 3: MPI IOCLogInfo Codes for PL Code Segment (Continued) Bits [23:0] 0x0000 0x0000010 0102 2
Message Code PL_L PL_LOGI OGINFO NFO_SU _SUB_C B_CODE ODE_O _OPEN PEN_F _FAIL AILURE URE_SA _SATTA_NEG_ A_NEG_RA RATE_ TE_2HI 2HI
Explanation Failed ailed to open open connect connectio ion n due to negotia negotiated ted rate rate on link is higher than the SATA SATA device. Retried for 50 milliseconds. milliseconds.
0x00000103 0x00000103 PL_LOG PL_LOGINFO INFO_SUB_ _SUB_COD CODE_OP E_OPEN_F EN_FAIL AILURE_ URE_RA RATE_NO TE_NOT_SUP T_SUPPORTE PORTED D
Failed Failed to to open conne connection ction due due to rate rate not not supported. supported. Retried for for 50 milliseconds. milliseconds.
0x00 0x0000 0001 0104 04 PL_L PL_LOG OGIN INFO FO_S _SUB UB_C _COD ODE_ E_OP OPEN EN_F _FAI AILLURE_ URE_BR BREA EAK_ K_RE RECE CEIV IVED ED
Faile ailed d to open open conn connec ecti tion on due due to brea breakk recei receive ved. d. Retr Retrie ied d for for 50 millisec milliseconds onds..
0x00000114 0x00000114 PL_LOG PL_LOGINFO INFO_SUB_ _SUB_COD CODE_OP E_OPEN_F EN_FAIL AILURE_ URE_ZON ZONE_VIO E_VIOLA LATION TION
Failed Failed to open connection due to Zone violation, used in SAS2 firmware. Failed to open connection used in SAS1 firmware.
PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ABANDON0 0x00 0x0000 0001 0115 15 PL_L PL_LOG OGIN INFO FO_S _SUB UB_C _COD ODE_ E_OP OPEN EN_F _FAI AILLURE_ URE_AB ABAN ANDO DON1 N1
Faile ailed d to open open conn connec ecti tion on.. yet yet to assi assign gn a spec specif ific ic name name and and currently it is reserved.
0x00 0x0000 0001 0116 16 PL_L PL_LOG OGIN INFO FO_S _SUB UB_C _COD ODE_ E_OP OPEN EN_F _FAI AILLURE_ URE_AB ABAN ANDO DON2 N2
Faile ailed d to open open conn connec ecti tion on.. yet yet to assi assign gn a spec specif ific ic name name and and currently it is reserved.
0x00 0x0000 0001 0117 17 PL_L PL_LOG OGIN INFO FO_S _SUB UB_C _COD ODE_ E_OP OPEN EN_F _FAI AILLURE_ URE_AB ABAN ANDO DON3 N3
Faile ailed d to open open conn connec ecti tion on.. yet yet to assi assign gn a spec specif ific ic name name and and currently it is reserved.
0x00 0x0000 0001 011A 1A PL_L PL_LOG OGIN INFO FO_S _SUB UB_C _COD ODE_ E_OP OPEN EN_F _FAI AILLURE_ URE_OR ORR_ R_TI TIME MEOU OUTT
Faile ailed d to open open conn connec ecti tion on with with erro errorr. Open Reject Retry, and retry count exceeded. exceeded. Retried for 1.25 seconds. seconds.
0x0000 0x0000011 011B B PL_L PL_LOGI OGINFO NFO_SU _SUB_C B_CODE ODE_O _OPEN PEN_F _FAIL AILURE URE_P _PA ATHWA THWAY_BL Y_BLOCKED OCKED
Failed ailed to open open connect connection ion,, retry retry count count for for pathway pathway block blocked ed exceeded. exceeded. Retried for 50 milliseconds. milliseconds.
0x00 0x0000 0001 011C 1C PL_L PL_LOG OGIN INFO FO_S _SUB UB_C _COD ODE_ E_OP OPEN EN_F _FAI AILLURE_ URE_A AWT_M WT_MA AXED XED
Faile ailed d to open open con conne nect ctio ion, n, arb arbit itra rati tion on wai waitt tim timer ex exceed ceeded ed.. Retried for 50 milliseconds.
0x00000120
PL_LOGINFO_SUB_CODE_TARGET_BUS_RESET
Target mo mode ab aborting I/ I/O af after re receiving ha hard re reset. Th This ca 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 th the I/O due to bad DMA detected in receive operation (for example: Invalid SGL).
0x00000131
PL_LOGINFO_SUB_CODE_TRANSPORT_LAYER_1
Target mo mode ab aborts th the I/ I/O du due to to fr frame tr transfer er error or or wrong relative offset detected.
0x00000132
PL_LOGINFO_SUB_CODE_TRANSPORT_LAYER_2
Target mo mode aborts th the I/O du due to ba bad DM DMA de detected in in send operation (for example: Invalid SGL).
0x00000133
PL_LOGINFO_SUB_CODE_TRANSPORT_LAYER_3
Target mo mode ab aborts th the I/ I/O af after re receiving fr frame wi with wrong frame length, wrong relative offset, or zero write data length in XFER_RDY.
0x00000134
PL_LOGINFO_SUB_CODE_TRANSPORT_LAYER_4
Target mo mode de detected op open co connection an and re received BREAK. Aborting the I/O.
0x00000135
PL_LOGINFO_SUB_CODE_TRANSPORT_LAYER_5
Target mode aborte rted the I/O due to either of the following: • Received XFER_RDY XFER_RDY or response response frame before before the data transfer has completed. completed. • Retry count count has been been exceede exceeded. d.
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.
0x00000142
PL_LOGINFO_SUB_CODE_PORT_LAYER_2
Error de detected in in tr transfer re ready or or re response fr frame. Ab Aborting the I/O.
LSI Corporation Confidential | April 2009
Page 27
MPI Reply Message Codes for SAS
SAS Error Codes System Engineering Note
Table 3: MPI IOCLogInfo Codes for PL Code Segment (Continued) Bits [23:0]
Message Code
Explanation
0x00000143
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 0x00000300 PL_LOG PL_LOGINFO_ INFO_SUB_C SUB_CODE_ ODE_WRON WRONG_RE G_REL_OF L_OFF_OR F_OR_FRA _FRAME_L ME_LENGTH ENGTH
Firmwar Firmware e detecte detected d unexpect unexpected ed relat relative ive offset offset or wrong wrong frame length. Aborting the command.
0x00000400
Frame tr transfer er error oc occurred on on da data fr frame. Th This co condition occurs if: • Connected becomes inactive during during frame frame transmission. transmission. • NAK is received received for for a frame transmi transmission ssion.. • ACK is not received received before before Connected goes inactive. • XRDY received received to transmit DMA 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.
PL_LOGINFO_SUB_CODE_FRAME_XFER_ERROR
0x00 0x0000 0005 0500 00 PL_LOGI OGINFO_ NFO_SU SUB_ B_C CODE ODE_TX_ TX_FM_CONNE ONNECT CTEED_LOW
Firmwa rmware re tri tries to to se send que query task task to determ termin ine e ifif the the tar target get actually got the command frame. This may happen if an open connection from host does not receive ACK/NAK, 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.
0x00 0x0000 0006 0600 00 PL_L PL_LOG OGIN INFO FO_S _SUB UB_C _COD ODE_ E_SA SATTA_NO A_NON_ N_NC NCQ_ Q_RW RW_E _ERR RR_B _BIT IT_S _SET ET
Not Not used used..
0x00000700 0x00000700 PL_LOG PL_LOGINFO INFO_SUB_ _SUB_COD CODE_SA E_SATTA_READ_L A_READ_LOG_RE OG_RECEIVE CEIVE_DA _DATTA_ERR A_ERR
SAT SATA Read Log Ext command command failed. failed. Follow Following ing are the possible causes: • PIO Setup FIS received received with SATA SATA EndStatus EndStatus bit 0 is set (0x01). • Device to Host register register FIS Status field bits 5 and 0 are set (0x21). Target Target will be reset. reset.
0x0000 0x0000080 0800 0
PL_L PL_LOGI OGINF NFO_S O_SUB_ UB_CO CODE_ DE_SA SATTA_NC A_NCQ_F Q_FAIL AIL_AL _ALL_ L_CMD CMDS_A S_AFTR FTR_E _ERR RR
Not used. used.
0x0000 0x0000090 0900 0
PL_L PL_LOGI OGINF NFO_S O_SUB_ UB_CO CODE_ DE_SA SATTA_ERR A_ERR_IN _IN_RC _RCV_S V_SET_ ET_DEV DEV_BI _BIT_F T_FIS IS
SAT SATA Read Read Log Ext Ext comma command nd arriv arrived ed in an inv invali alid d frame frame type, not Device to Host Set Device Bits FIS. Target will be reset.
0x00 0x0000 000A 0A00 00 PL_LOGI OGINFO_ NFO_SU SUB_ B_C CODE_ ODE_RX RX__FM_INV INVALID LID_MESS MESSA AGE
XFER XFER__RDY RDY or or RE RESPON SPONSE SE receive ived and and the the Rx Rx Har Hardw dwar are e indicates the tag / MID is not valid. Target Target will be reset.
0x00 0x0000 000B 0B00 00 PL_L PL_LOG OGIN INFO FO_S _SUB UB_C _COD ODE_ E_RX RX_CT _CTX_ X_ME MESS SSAG AGE_ E_V VALID ALID_E _ERR RROR OR
DAT DATA fram frame e was was rece receiv ived ed wit with h inva invali lid d tag/ tag/MI MID D. The The SAS SAS Specification 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.
0x0000 0x00000B0 0B01 1 PL_L PL_LOGI OGINFO NFO_SU _SUB_C B_CODE ODE_RX _RX_CTX _CTX_ME _MESSA SSAGE_ GE_INV INVALI ALID_ D_ERR ERROR OR
I/O aborted aborted since since the valid valid frame frame is recei received ved and the corresponding TAG is not validated.
0x00 0x0000 000C 0C00 00 PL_L PL_LOG OGIN INFO FO_S _SUB UB_C _COD ODE_ E_RX RX_F _FM_ M_CU CURR RREN ENT_ T_FR FRAM AME_ E_ER ERRO ROR R
This This can can hap happe pen n if the the tar targe gett send sendss a Resp Respon onse se or or XFER XFER_R _RD DY frame too early, while the data transfer is still in progress. It can also happen in the ACK/NAK timeout case. Firmware Firmware will reset the device.
Page 28
LSI Corporation Confidential | April 2009
SAS Error Codes System Engineering Note
MPI Reply Message Codes for SAS
Table 3: MPI IOCLogInfo Codes for PL Code Segment (Continued) Bits [23:0]
Message Code
Explanation
0x00000D00 PL_LOGINFO_SUB_CODE_SATA_LINK_DOWN
Resetting target because SATA link went down.
0x00 0x0000 000E 0E00 00
SAT SATA Init Init abor aborte ted d outs outsta tand ndin ing g I/Os I/Os to the the devi device ce.. This This devi device ce may have changed or may have failed SATA Init previously. Device will be reset.
PL_L PL_LOG OGIN INFO FO_S _SUB UB_C _COD ODE_ E_DI DISC SCOV OVER ERY_ Y_SA SATTA_IN A_INIT IT_W _W_I _IOS OS
0x00 0x0000 000E 0E01 01 PL_L PL_LOG OGIN INFO FO_S _SUB UB_C _COD ODE_ E_DI DISC SCOV OVER ERY_ Y_RE REMO MOTE TE_S _SEP EP_R _RES ESET ET
Remo Remote te SEP SEP nee needs ds to be rese reset. t.
0x00000F00
Not used.
PL_LOGINFO_SUB_CODE_SECOND_OPEN
0x00 0x0000 0010 1000 00 PL_L PL_LOG OGIN INFO FO_S _SUB UB_C _COD ODE_ E_DS DSCV CVRY RY_S _SA ATA_IN A_INIT IT_T _TIM IMEO EOUT UT
Devi Device ce fai faile led d SAT SATA Init Init com comma mand nd.. Asid Aside e from from dev devic ice e fail failur ure, e, this can also be due to the link going down during SATA SATA Init. Internal Task Management will then reset the link and retry SATA SATA Init. I nit.
0x00002000
PL_LOGINFO_SUB_CODE_BREAK_ON_SATA_CONNECTI CTION
Not used sed.
0x00003000
PL_LOGINFO_SUB_CODE_BREAK_ON_STUCK_LINK
FW se sends an an in internal ta task management re reset to to th the lilink, if connection is already established when the link is stuck.
0x00 0x0000 0040 4000 00 PL_L PL_LOG OGIN INFO FO_S _SUB UB_C _COD ODE_ E_BR BREA EAK_ K_ON ON_S _STU TUCK CK_L _LIN INK_ K_AI AIP P 0x00005000
FW send sendss an inte intern rnal al task task mana manage geme ment nt rese resett to the the link link,, if connection has not been established.
PL_LOGINFO_SUB_CODE_BREAK_ON_INCOMPLETE_BREAK_RCVD
—
0x00 0x0000 0060 6000 00 PL_L PL_LOG OGIN INFO FO_S _SUB UB_C _COD ODE_ E_BR BREA EAK_ K_ON ON_S _STU TUCK CK_T _TX_ X_DM DMA A
I/O I/O abor aborte ted d sinc since e this this tran transp spor ortt has has been been stal stalle led d for 2.5 2.5 seconds.
0x00 0x0000 0070 7000 00 PL_LOGI OGINFO_ NFO_SU SUB_ B_C CODE ODE_INV INVALID_ ID_SAT SATA_T A_TAG_ER G_ERR ROR
An FIS FIS that that conta ontaiined ned a tag tag that that did not not co corre rrespon spond d to to one one of the device’s outstanding tags.
0x00 0x0020 2000 0000 00 PL_LOG _LOGIN INFO FO_C _CO ODE_E DE_ENC NCLL_MGM MGMT_SM T_SMP_ P_FFRAM RAME_F E_FAIL AILURE URE
Canno annott get get SMP fram rame.
0x00200010
PL_LOGINFO_CODE_ENCL_MGMT_SMP_READ_ERROR
Error occurred on SMP Read.
0x00200020
PL_LOGINFO_CODE_ENCL_MGMT_SMP_WRITE_ERROR
Erro rror oc occurred on on SM SMP Wr Write.
0x0020 0x0020004 0040 0
PL_L PL_LOGI OGINFO NFO_C _CODE ODE_E _ENCL NCL_MG _MGMT_ MT_NO NOT_S T_SUPP UPPORT ORTED ED_ON _ON_EN _ENCL CL
Enclos Enclosur ure e Managem Managemen entt service servicess not avail availabl able e for this this WWID.
0x00200050 0x00200050 PL_LOG PL_LOGINFO INFO_CO _CODE_E DE_ENCL_ NCL_MGM MGMT_AD T_ADDR_M DR_MODE_ ODE_NOT_ NOT_SUPP SUPPORTED ORTED Address Address Mode Mode not not supported supported.. 0x00200060
PL_LOGINFO_CODE_ENCL_MGMT_BAD_SLOT_NUM
Invalid sl slot nu number in in SE SEP Me Message.
0x00 0x0020 2000 0070 70 PL_L PL_LOG OGIN INFO FO_C _COD ODE_ E_EN ENCL CL_M _MGM GMT_ T_SG SGPI PIO_ O_NO NOT_ T_PR PRES ESEN ENTT
SGPI SGPIO O not not pres presen ent/ t/en enab able led d.
0x00 0x0020 2000 0080 80 PL_L PL_LOG OGIN INFO FO_C _COD ODE_ E_EN ENCL CL_M _MGM GMT_ T_GP GPIO IO_N _NOT OT_C _CON ONFI FIGU GURE RED D
GPIO GPIO not not conf config igur ured ed..
0x00 0x0020 2000 0090 90 PL_L PL_LOG OGIN INFO FO_C _COD ODE_ E_EN ENCL CL_M _MGM GMT_ T_GP GPIO IO_F _FRA RAME ME_E _ERR RROR OR
GPIO GPIO cann cannot ot allo alloca cate te a fram frame e.
0x002000A0 0x002000A0 PL_LOG PL_LOGINFO INFO_CO _CODE_E DE_ENCL_ NCL_MGM MGMT_GP T_GPIO_C IO_CONFIG ONFIG_P _PAGE_ AGE_ERROR ERROR
GPIO failed failed config config page request. request.
0x00 0x0020 2000 00B0 B0 PL_L PL_LOG OGIN INFO FO_C _COD ODE_ E_EN ENCL CL_M _MGM GMT_ T_SE SES_ S_FR FRAM AME_ E_AL ALLLOC_E OC_ERR RROR OR
Cann Cannot ot get get frame frame for for SES comma command nd..
0x002000C0 PL_LOGINFO_CODE_ENCL_MGMT_SES_IO_ERROR
I/O ex execution er error.
0x00 0x0020 2000 00D0 D0 PL_L PL_LOG OGIN INFO FO_C _COD ODE_ E_EN ENCL CL_M _MGM GMT_ T_SE SES_ S_RET RETRI RIES ES_E _EXH XHAU AUST STED ED
SEP SEP I/O I/O retr retrie iess exha exhaus uste ted. d.
0x0020 0x002000E 00E0 0
PL_L PL_LOGI OGINF NFO_C O_COD ODE_E E_ENCL NCL_M _MGMT GMT_SM _SMP_ P_FRA FRAME ME_AL _ALLO LOC_E C_ERRO RROR R
Cannot Cannot get frame frame for for SMP comma command nd..
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.
0x00 0x0020 2001 0102 02 PL_LOGI OGINFO_ NFO_D DA_SE A_SEP P_IST _ISTW WI_INTR INTR_I _IN_ N_ID IDLE LE_S _STTATE
ISTW STWI int interru rrupt rece eceived whi while in IDL IDLE sta state. te.
0x00 0x0020 2001 0103 03 PL_LOGI OGINFO_ NFO_D DA_SEP_ SEP_R RECE ECEIVE IVED_NACK NACK__FROM ROM_SLA SLAVE
SEP NAC NACK’d; it is busy busy..
0x00200104
PL_LOGINFO_DA_SEP_DID_NOT_RECEIVE_ACK
SEP did not receive. ACK (Last Rcvd Bit = 1).
0x00200105
PL_LOGINFO_DA_SEP_BAD_STATUS_HDR_CHKSUM
SEP stopped or sen sent bad chksum in Hdr.
LSI Corporation Confidential | April 2009
Page 29
MPI Reply Message Codes for SAS
SAS Error Codes System Engineering Note
Table 3: MPI IOCLogInfo Codes for PL Code Segment (Continued) Bits [23:0]
Message Code
Explanation
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 0x0020 0108
PL_LOGINFO_DA_SEP_UNSUPPORTED_SCS PL_LOGINFO_DA_SEP_UNS UPPORTED_SCSI_STA I_STATUS_1 TUS_1
SEP returned unknown SCSI status. status .
0x00 0x0020 2001 0109 09 PL_LOGI OGINFO_ NFO_D DA_SEP_ SEP_UN UNSU SUP PPORTE ORTED D_SCSI SCSI__STATUS_ TUS_2 2
SEP retu eturned rned unkn nknown SCSI SCSI stat status us..
0x00 0x0020 2001 0110 10 PL_L PL_LOG OGIN INFO FO_D _DA_ A_MU MUX_ X_DI DID_ D_NO NOT_ T_AC ACCE CEPT PT_P _POR ORT_ T_SE SETU TUP P
Mux Mux did didn' n'tt sen send d an an Ack Ack (Las (Lastt Rcv Rcvd d Bit Bit = 1) 1) sin since ce didn didn't 't accept port activated.
0x00200111
SEP did not send an Ack.
PL_LOGINFO_DA_SEP_DID_NOT_SEND_ACK
0x0020010A PL_LOGINFO_DA_SEP_CHKSUM_ERROR_AFTER_STOP
SEP re returned ba bad ch chksum af after ST STOP.
0x0020 0x0020010 010B B PL_L PL_LOGI OGINF NFO_D O_DA_ A_SEP SEP_C _CHKS HKSUM_ UM_ERR ERROR_ OR_AF AFTER TER_ST _STOP_ OP_GET GETDA DATTA
SEP retur returned ned bad chksu chksum m after after STOP while while getti getting ng data. data.
0x0020010C PL_LOGINFO_DA_SEP_UNSUPPORTED_COMMAND
SEP does not support CDB opcode f/w location 1.
0x00 0x0020 2001 010D 0D PL_LOGIN OGINFFO_D O_DA_SEP_ SEP_UN UNSU SUP PPORTE ORTED D_COMM OMMAND_ ND_2
SEP does not not sup support port CDB opco pcode f/w f/w loca locati tion on 2.
0x0020010E
PL_LOGINFO_DA_SEP_UNSUPPORTED_COMMAND_3
SEP do does no not su support CD CDB op opcode f/ f/w lo location 3. 3.
0x0020010F
PL_LOGINFO_DA_MUX_DID_NOT_SEND_ACK
Mux didn't send an Ack (Last Rcvd Bit = 1).
The following table lists IOCLogInfo IOCLogInfo codes for IOC_LOGINFO IOC_LOGINFO_ORIGINA _ORIGINATOR TOR = 2 (IR code segment). 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.
0x00 0x0001 0100 0005 05 IR_L R_LOGIN OGINFFO_VO O_VOLLUME UME_CREA CREATE TE__INV INVALID ALID__VOL VOLUME UME_TY _TYPE
Creat eation ion faile ailed d due to inva invallid volume lume typ type pass passed ed down.
0x00010006
IR_LOGINFO_VOLUME_MFG_PAGE4_ERROR
Creation failed due to error reading MFG Page 4.
0x00 0x0001 0100 0007 07
IR_L IR_LOG OGIN INFO FO_V _VOL OLUM UME_ E_IN INTE TERN RNAL AL_C _CON ONFI FIG_ G_ST STRU RUCTU CTURE RE_E _ERR RROR OR
Crea Creati tion on fail failed ed when when tryin trying g to crea create te inte intern rnal al structures.
0x00 0x0001 0100 0010 10 IR_L R_LOGINF GINFO_ O_VO VOLLUME UME_ACTIV CTIVA ATING TING_A _AN N_ACT _ACTIV IVE_ E_VO VOLLUME UME
Activ ctivat atio ion n fai faile led d du due to to try tryin ing g to to act actiivat vate an an al alread eady active volume.
0x00 0x0001 0100 0011 11 IR_L IR_LOG OGIN INFO FO_V _VOL OLUM UME_ E_AC ACTI TIV VATING TING_I _INV NVAL ALID ID_V _VOL OLUM UME_ E_TY TYPE PE
Activ ctivat atio ion n fail failed ed due due to to tryi trying ng to to acti active ve unsu unsupp ppor orte ted d volume type.
0x00 0x0001 0100 0012 12 IR_L IR_LOG OGIN INFO FO_V _VOL OLUM UME_ E_AC ACTI TIV VATING TING_T _TOO OO_M _MAN ANY_ Y_VO VOLLUMES UMES
Acti Activa vati tion on fail failed ed due due to tryi trying ng to acti active ve too too many many volumes.
0x00 0x0001 0100 0013 13 IR_L R_LOGINF GINFO_ O_VO VOLLUME_ UME_A ACTIV CTIVA ATIN TING_VO G_VOLLUME_ UME_ID ID__IN_ IN_USE USE
Acti ctivati vatio on fa faile iled due to Volum olume e ID in use alr already ady.
Page 30
LSI Corporation Confidential | April 2009
SAS Error Codes System Engineering Note
MPI Reply Message Codes for SAS
Table 4: MPI IOCLogInfo Codes for IR Code Segment (Continued) Bits [23:0]
Message Code
Explanation
0x00010014
IR_LOGINFO_VOLUME_ACTIVATE_VOLUME_FAILED
Activation failed call to activate Volume returned failure.
0x00 0x0001 0100 0015 15
IR_L IR_LOG OGIN INFO FO_V _VOL OLUM UME_ E_AC ACTI TIV VATING TING_I _IMP MPOR ORT_ T_VO VOLLUME_ UME_FFAILE AILED D
Acti Activa vati tion on fail failed ed tryin trying g to impo import rt the the volu volume me..
0x00 0x0001 0100 0016 16 IR_L IR_LOG OGIN INFO FO_V _VOL OLUM UME_ E_A ACTIV CTIVA ATING TING_T _TOO OO_M _MAN ANY_ Y_PH PHYS YS_D _DIS ISKS KS
Acti Activa vati tion on fail failed ed,, too too many many phys phys disk disks. s.
0x00010020
IR_LOGINFO_PHYSDISK_CREATE_TOO_MANY_DISKS
Phys Di Disk fa failed, to too ma many ph phys di disks.
0x00010021
IR_LOGINFO_PHYSDISK_CREATE_INVALID_LENGTH
Amount of information passed down for Create Phys Disk is too large.
0x00010022
IR_LOGINFO_PHYSDISK_CREATE_DMA_ERROR
Creation failed due to DMA error in trying to read from host.
0x00010023
IR_LOGINFO_PHYSDISK_CREATE_BUS_TID_INVALID
Creation fa failed due to invalid Bus Ta TargetID passed down.
0x00 0x0001 0100 0024 24 IR_L R_LOGIN OGINFFO_P O_PHYSDISK DISK_ _CREA CREATE TE__CONFI ONFIG_ G_P PAGE_E E_ERRO RROR
Creati ation faile ailed d due to erro rror in cre creatin ating g RAID RAID Phys Disk isk Config Page.
0x00010025
IR_LOGINFO_PHYSDISK_CREATE_DUAL_PORT_ RT_ERROR
Creation failed due to error in creating dual port. rt.
0x00010026
IR_LOGINFO_PHYSDISK_DUAL_PORT_FAILOVER
Both pa paths ar are un unavailable fo for th the Du Dual Pa Pathing device.
0x00010030
IR_LOGINFO_COMPAT_ERROR_RAID_DISABLED
Compatibility Error: IR Disabled.
0x00010031
IR_LOGINFO_COMPAT_ERROR_INQUIRY_FAILED
Compatibility Er Error: In Inquiry co command fa failed.
0x00010032
IR_LOGINFO_COMPAT_ERROR_NOT_DIRECT_ CT_ACCESS
Compatibility Error: Device not direct access device.
0x00010033
IR_LOGINFO_COMPAT_ERROR_REMOVABLE_FOUND
Compatibility Error: Removable device found.
0x00 0x0001 0100 0034 34 IR_L R_LOGINF GINFO_ O_C COMP OMPAT_ER T_ERRO ROR_ R_N NEED EED_SCS _SCSI_ I_2_ 2_OR OR__HIGHER GHER
Comp ompatib atibil iliity Error rror:: De Devic vice SC SCSI versio rsion n no not 2 or higher.
0x0001 0x0001003 0035 5
IR_LO IR_LOGIN GINFO_ FO_CO COMP MPA AT_E T_ERRO RROR_ R_SA SATTA_48BI A_48BIT_L T_LBA_ BA_NO NOT_S T_SUPP UPPORT ORTED ED
Compat Compatibi ibilit lityy Error: Error: SA SATA devic device, e, 48-b 48-bit it LBA LBA not not supported.
0x00 0x0001 0100 0036 36
IR_L IR_LOG OGIN INFO FO_C _COM OMP PAT_ER T_ERRO ROR_ R_DE DEVI VICE CE_N _NOT OT_5 _512 12_B _BYTE YTE_B _BLLOCK OCK
Comp Compat atib ibil ilit ityy Erro Error: r: Devi Device ce does does not not have have 512 512 byte byte block sizes.
0x00 0x0001 0100 0037 37
IR_L IR_LOG OGIN INFO FO_C _COM OMP PAT_ER T_ERRO ROR_ R_VO VOLLUME_ UME_TYP TYPE_ E_CH CHEC ECK_ K_FFAILE AILED D
Comp Compat atib ibil ilit ityy Erro Error: r: Volu Volume me Type ype chec checkk fail failed ed..
0x00 0x0001 0100 0038 38
IR_L IR_LOG OGIN INFO FO_C _COM OMP PAT_ER T_ERRO ROR_ R_UN UNSU SUPP PPOR ORTE TED_ D_VO VOLLUME_ UME_TY TYPE PE
Comp Compat atib ibil ilit ityy Erro Error: r: Volu Volume me Type Type is unsu unsupp pport orted ed by FW.
0x00010039
IR_LOGINFO_COMPAT_ERROR_DISK_TOO_SMALL
Compatibility Er Error: Di Disk dr drive to too sm small fo for us use in in volume.
0x00 0x0001 0100 003A 3A IR_L R_LOGINF GINFO_ O_C COMPA MPAT_E T_ERRO RROR_P R_PHYS_DISK DISK__NOT_ NOT_FFOUN OUND
Comp ompati atibil bility Err Error: Phys di disk for Cr Create ate Volum lume not not found.
0x0001003B
Compatibility Error: membershi ship count error, too many or too few disks for volume type.
IR_LOGINFO_COMPAT_ERROR_MEMBERSHIP_COUNT
0x0001003C IR_LOGINFO_COMPAT_ERROR_NON_64K_STRIPE_SIZE
Compatibility Er Error: Disk st stripe si sizes mu must be be 64 64-KB.
0x0001003D 0x0001003D IR_LOGINF IR_LOGINFO_C O_COMP OMPA AT_ER T_ERROR_I ROR_IME_V ME_VOL_N OL_NOT_ OT_CURR CURRENTL ENTLY_SUP Y_SUPPORT PORTED ED Compatibi Compatibility lity Error: IME size limited to < 2TB. 0x0001003E
IR_LOGINFO_COMPAT_ERROR_MEDIA_TYPE
The media type of the device is undefined.
0x00 0x0001 0100 0050 50 IR_L R_LOGIN OGINFFO_D O_DEV_ EV_FW_ FW_UPD UPDATE_ TE_ERR_ RR_DFU_ DFU_IN IN__PROG ROGRES RESS
Devic vice Firmw rmware are Upd Update ate: DFU can can only only be star starte ted d once.
0x00 0x0001 0100 0051 51
Devi Device ce Fir Firmw mwar are e Upda Update te:: Vol Volum ume e mus mustt be Optimal/Active/non-quiesced.
IR_L IR_LOG OGIN INFO FO_D _DEV EV_F _FW_ W_UP UPDA DATE TE_E _ERR RR_D _DEV EVIC ICE_ E_IN IN_I _INV NVAL ALID ID_S _STTATE
LSI Corporation Confidential | April 2009
Page 31
MPI Reply Message Codes for SAS
SAS Error Codes System Engineering Note
Table 4: MPI IOCLogInfo Codes for IR Code Segment (Continued) Bits [23:0]
Message Code
Explanation
0x00010052
IR_LOGINFO_DEV_F V_FW_UPDATE_ERR_INVALID_TIMEOUT
Device Fi Firmware Up Update: DF DFU Tim Timeout can cannot be zero.
0x00010053
IR_LOGINFO_DEV_FW_UPDATE_ERR_NO_TIMERS
Device Firmware Update: CREATE TIMER FAILED.
0x00 0x0001 0100 0054 54 IR_L R_LOGIN OGINFFO_D O_DEV_ EV_FW_ FW_UPD UPDATE_ TE_ERR_ RR_READI EADING NG__CFG_ FG_PAGE
Devi Device ce Firm irmware are Upda Update te:: Faile ailed d to read SAS_IO_UNIT_PG_1.
0x00010055 0x00010055
Device Device Firmwa Firmware re Update: Update: Invalid Invalid SAS_IO_U SAS_IO_UNIT_P NIT_PG_1 G_1 value(s).
IR_LOGINF IR_LOGINFO_DE O_DEV_FW V_FW_UPD _UPDA ATE_ERR_P TE_ERR_PORT_I ORT_IO_TIM O_TIMEOUT EOUTS_RE S_REQUIRE QUIRED D
0x00 0x0001 0100 0056 56 IR_L R_LOGINF GINFO_ O_D DEV_ EV_FW_UP W_UPD DATE_ TE_ERR_A RR_ALL LLOC OC_C _CFFG_P G_PAGE —
Devi Device ce Firm irmware ware Upda Update te:: Unab Unable le to allo alloca catte memo emory for page.
IOC_LOG IOC_LOGINFO_ INFO_PREF PREFIX_I IX_IOP OP ((MPI_IO ((MPI_IOCL CLOGINF OGINFO_TYP O_TYPE_SA E_SASS << MPI_IOCL MPI_IOCLOGINF OGINFO_TYP O_TYPE_SH E_SHIFT) IFT) | IOC_LOG IOC_LOGINFO_ INFO_ORIGI ORIGINA NATOR TOR_IOP _IOP)) IOC_LOGINFO_PREFIX_PL ((MPI_IOCLOGINFO_TYPE_SAS << MPI_IOCLOGINFO_TYPE_SHIFT) | IOC_LOGINFO_ORIGINATOR_PL) IOC_LOGINFO_PREFIX_IR ((MPI_IOCLOGINFO_TYPE_SAS << MPI_IOCLOGINFO_TYPE_SHIFT) | IOC_LOGINFO_ORIGINATOR_IR)
0x00040000
Page 32
MPI_IOCSTATUS_INTERNAL_ERROR
I/O aborted due to work around.
LSI Corporation Confidential | April 2009