Intel® RAID Controllers: SAS Software Stack: Decoding Unexpected Alert Codes
Intel® RAID Controllers: SAS Software Stack: Decoding Unexpected Alert Codes
Stack
Revision 1.0
May 2008
Revision History
Date Revision Modifications
Number
May, 2008 1.0 Initial release
Disclaimers
Information in this document is provided in connection with Intel® products. No license, express or implied, by
estoppel or otherwise, to any intellectual property rights is granted by this document. Except as provided in Intel's
Terms and Conditions of Sale for such products, Intel assumes no liability whatsoever, and Intel disclaims any
express or implied warranty, relating to sale and/or use of Intel products including liability or warranties relating to
fitness for a particular purpose, merchantability, or infringement of any patent, copyright or other intellectual property
right. Intel products are not intended for use in medical, life saving, or life sustaining applications. Intel may make
changes to specifications and product descriptions at any time, without notice.
Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or
"undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or
incompatibilities arising from future changes to them.
The Intel® RAID Controllers: SAS Software Stack may contain design defects or errors known as errata which may
cause the product to deviate from published specifications. Current characterized errata are available on request.
Intel, Pentium, Celeron, and Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in
the United States and other countries.
ii Revision 1.0
Intel® RAID Controllers: SAS Software Stack Appendix A
Table of Contents
1.9 The Sense Key, Additional Sense Code, and Additional Sense Code Qualifier............ 13
List of Tables
Table 1: CDB Content................................................................................................................... 8
Table 2: CDB SCSI Commands.................................................................................................... 8
Table 3: CDB Extended Commands Usage Matrix – Read (EXTENDED): (28H) ...................... 10
Table 4: CDB Commands Usage Matrix – Write (EXTENDED): (2AH) ...................................... 11
Table 5: CDB Commands Usage Matrix - Write and Verify (EXTENDED): (2EH)...................... 11
Table 6: CDB Commands Usage Matrix - Verify (EXTENDED): (2FH) ...................................... 12
Table 7: Sense Code Content..................................................................................................... 12
Table 8: Sense Code Decode Matrix .......................................................................................... 14
iv Revision 1.0
Intel® RAID Controllers: SAS Software Stack Appendix A
Revision 1.0 v
Decoding Intel® RAID Sense Code Messages Intel® RAID Controllers: SAS Software Stack
Intel® SAS/SATA Hardware based RAID Controllers (solutions utilizing an I/O processor)
persistently log error events in an NVRAM log. Events are logged from the point of
power on, including out-of-band events (events that occur when the operating system is
not yet loaded or is not operational). Text for these logged errors can be viewed in RAID
BIOS Console or RAID Web Console2; or the text can be extracted using the command
line utility.
Intel® SAS/SATA Software based RAID Controllers (solutions that do not utilize an I/O
processor) log error events only in the RAID Web Console2 log, and do not have
NVRAM available to persistently save error messages. Events are only logged when the
RAID Web Console2 application is running within the operating system. These error
events can be viewed only in RAID Web Console2.
The sequence of events that can lead to an unexpected sense code error message is listed
below.
6 Revision 1.0
Intel® RAID Controllers: SAS Software Stack Appendix A
Sense Code Qualifier. These bytes can be decoded into an error message for more
information.
5. The logged entry also includes the following:
- Date and time of the event
- Channel and target
- SAS/SATA CDB
- Returned Sense Code
6. Returned Sense Data includes:
- Sense Key = byte 2
- Additional Sense code = byte 12
- Additional Sense Code Qualifier = byte 13
Date – Controller ID - Error type - Device Number - CDB in Hex - Sense in Hex.
Below is an example of a sense code based error message from an Intel® SAS RAID controller.
CDB and Sense Code data is in hex. Each byte is represented by data in a “0x00” format,
separated by a space and numbered on the left starting at 0. The CDB bytes above would be
numbered as follows.
Byte Byte Byte Byte Byte Byte Byte Byte Byte Byte
0 1 2 3 4 5 6 7 8 9
0x2a 0x00 0x00 0x02 0xf2 0x00 0x00 0x00 0x80 0x00
Tables in this document will not include the 0x portion of the byte.
The table below describes the general content of the 6-byte CDB. The current SAS
implementation of the CDB can be of variable length with some reserved portions indicating a
target block on the target device. The table below is limited to 6 bytes and is used to highlight
the Operational Code byte.
Revision 1.0 7
Decoding Intel® RAID Sense Code Messages Intel® RAID Controllers: SAS Software Stack
bit→
↓byte 7 6 5 4 3 2 1 0
0 Operation code
1 LUN Reserved
2 Reserved
3 Reserved
4 Allocation length
5 Control
Byte 0 (green in the table above) is the operation code (command). SCSI Operation codes are
listed in the table below: For example, the 2a operational code indicates that a WRITE
command was issued.
8 Revision 1.0
Intel® RAID Controllers: SAS Software Stack Appendix A
Revision 1.0 9
Decoding Intel® RAID Sense Code Messages Intel® RAID Controllers: SAS Software Stack
bit→
↓byte 7 6 5 4 3 2 1 0
0 28
1 LUN Reserved
2 Logical Block Address (Most Significant Bit -MSB)
3 Logical Block Address
4 Logical Block Address
5 Logical Block Address (Least Significant Bit - LSB)
6 Reserved
7 Transfer Length (MSB)
8 Transfer Length (LSB)
9 Control
The READ command sends a request to the target device to transfer the number of blocks in
the Transfer Length field to the RAID controller starting with the address in the Logical Block
Address field. This command causes the target device to transfer the latest data written on the
specified blocks.
10 Revision 1.0
Intel® RAID Controllers: SAS Software Stack Appendix A
bit→
↓byte 7 6 5 4 3 2 1 0
0 2A
1 LUN Reserved
2 Logical Block Address (MSB)
3 Logical Block Address
4 Logical Block Address
5 Logical Block Address (LSB)
6 Reserved
7 Transfer Length (MSB)
8 Transfer Length (LSB)
9 Control
The WRITE command writes the consecutive data blocks transferred from the RAID controller,
as specified in the Transfer Length field, to the medium starting with the block address in the
Logical Block Address field.
Table 5: CDB Commands Usage Matrix - Write and Verify (EXTENDED): (2EH)
bit→
↓byte 7 6 5 4 3 2 1 0
0 2E
1 LUN Reserved BytChk 0
2 Logical Block Address (MSB)
3 Logical Block Address
4 Logical Block Address
5 Logical Block Address (LSB)
6 Reserved
7 Transfer Length (MSB)
8 Transfer Length (LSB)
9 Control
The WRITE AND VERIFY command writes the number of consecutive data blocks from the
RAID Controller specified in the Transfer Length field to the medium, starting with the block
address in the Logical Block Address field and verifies that the data is written correctly.
When the Byte Check (BytChk) bit is set to 0, the target device verifies the written data in the
medium using ECC. When the BytChk bit is set to 1, the target device performs a byte-by-byte
Revision 1.0 11
Decoding Intel® RAID Sense Code Messages Intel® RAID Controllers: SAS Software Stack
compare check between the data in the medium and the data transferred from the RAID
Controller.
bit→
↓byte 7 6 5 4 3 2 1 0
0 2F
1 LUN Reserved BytChk 0
2 Logical Block Address (MSB)
3 Logical Block Address
4 Logical Block Address
5 Logical Block Address (LSB)
6 Reserved
7 Transfer Length (MSB)
8 Transfer Length (LSB)
9 Control
The VERIFY command verifies the data in the consecutive data blocks specified in the Transfer
Length field, starting at the block address in the Logical Block Address field.
When the Byte Check (BytChk) bit is set to 0, the target device does not request the verification
data but verifies the written data in the medium using ECC. When the BytChk bit is set to 1 the
target device performs a byte-by-byte compare check between the written data in the medium
and the data transferred from the RAID controller.
7 6 5 4 3 2 1 0
bit→
↓byte
0 Valid Error Code
1 Segment Number
2 Filemark EOM ILI Reserved Sense Key
3
(MSB)
Through
Information (LSB)
6
7 Additional Sense Length (n-7)
8
(MSB)
Through
Information (LSB)
11
12 Revision 1.0
Intel® RAID Controllers: SAS Software Stack Appendix A
7 6 5 4 3 2 1 0
bit→
↓byte
12 Additional Sense Code
13 Additional Sense Code Qualifier
14 Field Replaceable Unit Code
15
Through SKSV Sense Key Specific
17
18
Through Additional Sense Bytes
254
The bytes required to decode an error message are Error Code, Sense Key, Additional Sense
Code, and Additional Sense Code Qualifier.
1.9 The Sense Key, Additional Sense Code, and Additional Sense Code
Qualifier
The Sense Key (SK) (byte 2) is a basic error code and provides error category information. It is
necessary to check the Additional Sense Code (ASC) (byte 12) and the Additional Sense Code
Qualifier (ASCQ) (Byte 13) for additional information.
The information contained in the CDB, the SK, the ASC and the ASCQ provides information
about the error and failure mode.
In the earlier error message example the CDB (CDB = 0x2a 0x00 0x00 0x02 0xf2
0x00 0x00 0x00 0x80 0x00) was decoded as a WRITE command. The sense code
portion of this error message is shown below.
Byte Byte Byte Byte Byte Byte Byte Byte Byte Byte Byte Byte Byte Byte Byte Byte Byte Byte
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Sense= 0xf0 0x00 0x0b 0x00 0x02 0xf2 0x2d 0x0a 0x00 0x00 0x00 0x00 0x4b 0x05 0x00 0x00 0x00 0x00
Note the color code for Error Code, Sense Key , Additional Sense Code, and Additional Sense
Code Qualifier bytes.
The Error Code at Byte0 indicates that an error occurred and the sense message contains
usable information.
Sense Key at Byte2 is 0B and indicates that a command was aborted by the device.
ASC at Byte 12 is 4B and the ASCQ at Byte 13 is 05, which indicates that there was a Data
Phase Error - DATA OFFSET ERROR.
Revision 1.0 13
Decoding Intel® RAID Sense Code Messages Intel® RAID Controllers: SAS Software Stack
The table below provides an easy reference for these codes. For more detail on the SCSI
ASC/ASCQ Assignments refer to http://www.t10.org/lists/asc-num.txt.
Additional
Sense Additional Sense Code
Category Key Sense Code Qualifier Error Condition
Byte 2 Byte 12 Byte 13
No Sense 0 0 0 No error
0 5D 0 No sense - PFA threshold reached
Soft Error 1 1 0 Recovered Write error - no index
1 2 0 Recovered no seek completion
1 3 0 Recovered Write error - write fault
1 9 0 Track following error
1 0B 1 Temperature warning
1 0C 1 Recovered Write error with auto-realloc – reallocated
1 0C 3 Recovered Write error - recommend reassign
1 12 1 Recovered data without ECC using prev logical block ID
1 12 2 Recovered data with ECC using prev logical block ID
1 14 1 Recovered Record Not Found
1 16 0 Recovered Write error - Data Sync Mark Error
1 16 1 Recovered Write error - Data Sync Error - data rewritten
1 16 2 Recovered Write error - Data Sync Error - recommend rewrite
1 16 3 Recovered Write error - Data Sync Error - data auto-reallocated
1 16 4 Recovered Write error - Data Sync Error - recommend reassignment
1 17 0 Recovered data with no error correction applied
1 17 1 Recovered Read error - with retries
1 17 2 Recovered data using positive offset
1 17 3 Recovered data using negative offset
1 17 5 Recovered data using previous logical block ID
1 17 6 Recovered Read error - without ECC, auto reallocated
1 17 7 Recovered Read error - without ECC, recommend reassign
1 17 8 Recovered Read error - without ECC, recommend rewrite
1 17 9 Recovered Read error - without ECC, data rewritten
1 18 0 Recovered Read error - with ECC
1 18 1 Recovered data - with ECC and retries
1 18 2 Recovered Read error - with ECC, auto reallocated
1 18 5 Recovered Read error - with ECC, recommend reassign
1 18 6 Recovered data using ECC and offsets
14 Revision 1.0
Intel® RAID Controllers: SAS Software Stack Appendix A
Additional
Sense Additional Sense Code
Category Key Sense Code Qualifier Error Condition
Byte 2 Byte 12 Byte 13
1 18 7 Recovered Read error - with ECC, data rewritten
1 1C 0 Defect list not found
1 1C 1 Primary defect list not found
1 1C 2 Grown defect list not found
1 1F 0 Partial defect list transferred
1 44 0 Internal target failure
1 5D 0 PFA threshold reached
1 5D FF PFA test warning
1 81 0 Internal logic failure
Not Ready 2 4 0 Not Ready - start motor failed
2 4 1 Not Ready - becoming ready
2 4 2 Not Ready - need initialize command (start unit)
2 4 3 Not Ready - manual intervention required
2 4 4 Not Ready - format in progress
2 4 9 Not Ready - self-test in progress
2 31 0 Not Ready - medium format corrupted
2 31 1 Not Ready - format command failed
2 35 2 Not Ready - enclosure services unavailable
2 40 80 Diagnostic Failure - bring-up fail or degraded mode
2 40 81 Diagnostic Failure - Hard Disk Controller
2 40 85 Diagnostic Failure - RAM microcode not loaded
2 40 90 Diagnostic Failure - RRO Calibration
2 40 91 Diagnostic Failure - Channel Calibration
2 40 92 Diagnostic Failure - Head Load
2 40 93 Diagnostic Failure - Write AE
2 40 94 Diagnostic Failure - 12V over current
2 40 95 Diagnostic Failure - Other spindle failure
2 40 B0 Diagnostic Failure - self-reset
2 4C 0 Diagnostic Failure - config not loaded
Medium Error 3 3 0 Medium Error - write fault
3 0C FF Medium Error - write recovery time limit exceeded
3 10 0 Medium Error - ID CRC error
3 11 0 Medium Error - unrecovered read error
3 11 1 Medium Error - read retries exhausted
3 11 2 Medium Error - error too long to correct
Revision 1.0 15
Decoding Intel® RAID Sense Code Messages Intel® RAID Controllers: SAS Software Stack
Additional
Sense Additional Sense Code
Category Key Sense Code Qualifier Error Condition
Byte 2 Byte 12 Byte 13
3 11 4 Medium Error - unrecovered read error - auto re-alloc failed
3 11 0B Medium Error - unrecovered read error - recommend reassign
3 11 FF Medium Error - read recovery time limit exceeded
3 14 1 Medium Error - record not found
3 16 0 Medium Error - Data Sync Mark error
3 16 4 Medium Error - Data Sync Error - recommend reassign
3 19 0 Medium Error - defect list error
3 19 1 Medium Error - defect list not available
3 19 2 Medium Error - defect list error in primary list
3 19 3 Medium Error - defect list error in grown list
3 19 0E Medium Error - fewer than 50% defect list copies
3 31 0 Medium Error – medium format corrupted
3 31 1 Medium Error - format command failed
3 80 0 Medium Error - data auto-reallocated
Hardware 4 1 0 Hardware Error - no index or sector
Error
4 2 0 Hardware Error - no seek complete
4 3 0 Hardware Error - write fault
4 9 0 Hardware Error - track following error
4 11 0 Hardware Error - unrecovered read error in reserved area
4 16 0 Hardware Error - Data Sync Mark error in reserved area
4 19 0 Hardware Error – defect list error
4 19 2 Hardware Error – defect list error in Primary List
4 19 3 Hardware Error – defect list error in Grown List
4 31 0 Hardware Error - reassign failed
4 32 0 Hardware Error - no defect spare available
4 35 1 Hardware Error - unsupported enclosure function
4 35 2 Hardware Error - enclosure services unavailable
4 35 3 Hardware Error - enclosure services transfer failure
4 35 4 Hardware Error - enclosure services refused
4 3E 3 Hardware Error - self-test failed
4 3E 4 Hardware Error – unable to update self-test
4 40 80 Hardware Error - Degrade Mode (Diagnostic Fail)
4 40 81 Hardware Error - Degrade Mode. H/W Error
4 40 85 Hardware Error - Degrade Mode. RAM microcode not loaded
4 40 90 Hardware Error - seek test failure
16 Revision 1.0
Intel® RAID Controllers: SAS Software Stack Appendix A
Additional
Sense Additional Sense Code
Category Key Sense Code Qualifier Error Condition
Byte 2 Byte 12 Byte 13
4 40 A0 Hardware Error - read/write test failure
4 40 B0 Hardware Error – device self-reset
4 40 D0 Hardware Error - component mismatch
4 44 0 Hardware Error - internal target failure
4 81 0 Hardware Error - internal logic error
4 82 0 Hardware Error - command timeout
Illegal Request 5 1A 0 Illegal Request - parameter list length error
5 20 0 Illegal Request - invalid/unsupported command code
5 21 0 Illegal Request - LBA out of range
5 24 0 Illegal Request - invalid field in CDB (Command Descriptor Block)
5 25 0 Illegal Request - invalid LUN
5 26 0 Illegal Request - invalid fields in parameter list
5 26 1 Illegal Request - parameter not supported
5 26 2 Illegal Request - invalid parameter value
5 26 3 Illegal Request - invalid field parameter - threshold parameter
5 26 4 Illegal Request - invalid release of persistent reservation
5 26 97 Illegal Request - invalid field parameter - TMS firmware tag
5 26 98 Illegal Request - invalid field parameter - check sum
5 26 99 Illegal Request - invalid field parameter - firmware tag
5 2C 0 Illegal Request - command sequence error
5 35 1 Illegal Request - unsupported enclosure function
5 49 0 Illegal Request - invalid message
5 53 0 Illegal Request - media load or eject failed
5 53 1 Illegal Request - unload tape failure
5 53 2 Illegal Request - medium removal prevented
5 55 0 Illegal Request - system resource failure
5 55 1 Illegal Request - system buffer full
5 55 4 Illegal Request - Insufficient Registration Resources
Unit Attention 6 28 0 Unit Attention - not-ready to ready transition (format complete)
6 29 0 Unit Attention - POR or device reset occurred
6 29 1 Unit Attention - POR occurred
6 29 2 Unit Attention - SCSI bus reset occurred
6 29 3 Unit Attention - TARGET RESET occurred
6 29 4 Unit Attention - self-initiated-reset occurred
6 29 5 Unit Attention - transceiver mode change to SE
Revision 1.0 17
Decoding Intel® RAID Sense Code Messages Intel® RAID Controllers: SAS Software Stack
Additional
Sense Additional Sense Code
Category Key Sense Code Qualifier Error Condition
Byte 2 Byte 12 Byte 13
6 29 6 Unit Attention - transceiver mode change to LVD
6 2A 0 Unit Attention - parameters changed
6 2A 1 Unit Attention - mode parameters changed
6 2A 2 Unit Attention - log select parameters changed
6 2A 3 Unit Attention - Reservations pre-empted
6 2A 4 Unit Attention - Reservations released
6 2A 5 Unit Attention - Registrations pre-empted
6 2F 0 Unit Attention - commands cleared by another initiator
6 3F 0 Unit Attention - target operating conditions have changed
6 3F 1 Unit Attention - microcode changed
6 3F 2 Unit Attention - changed operating definition
6 3F 3 Unit Attention - inquiry parameters changed
6 3F 5 Unit Attention - device identifier changed
6 3F 90 Unit Attention - invalid APM parameters
6 3F 91 Unit Attention - world-wide name mismatch
6 5D 0 Unit Attention - PFA threshold reached
6 5D FF Unit Attention - PFA threshold exceeded
Write Protect 7 27 0 Write Protect - command not allowed
Aborted B 0 0 Aborted Command - no additional sense code
Command
B 1B 0 Aborted Command - sync data transfer error (extra ACK)
B 25 0 Aborted Command - unsupported LUN
B 3F 0F Aborted Command - echo buffer overwritten
B 43 0 Aborted Command - message reject error
B 44 0 Aborted Command - internal target failure
B 45 0 Aborted Command - Selection/Reselection failure
B 47 0 Aborted Command - SCSI parity error
B 48 0 Aborted Command - initiator-detected error message received
B 49 0 Aborted Command - inappropriate/illegal message
B 4B 0 Aborted Command - data phase error
B 4E 0 Aborted Command - overlapped commands attempted
B 4F 0 Aborted Command - due to loop initialization
Other E 1D 0 Miscompare - during verify byte check operation
x 3 86 Write Fault Data Corruption
x 5 0 Illegal request
x 6 0 Unit attention
18 Revision 1.0
Intel® RAID Controllers: SAS Software Stack Appendix A
Additional
Sense Additional Sense Code
Category Key Sense Code Qualifier Error Condition
Byte 2 Byte 12 Byte 13
x 7 0 Data protect
x 8 0 LUN communication failure
x 8 1 LUN communication timeout
x 8 2 LUN communication parity error
x 9 0 Vendor specific sense key
x 9 1 Servo fault
x 9 4 Head select fault
x 0A 0 Error log overflow
x 0B 0 Aborted command
x 0C 0 Write error
x 0C 2 Write error - auto-reallocation failed
x 0E 0 Data miscompare
x 12 0 Address mark not found for ID field
x 14 0 Logical block not found
x 15 0 Random positioning error
x 15 1 Mechanical positioning error
x 15 2 Positioning error detected by read of medium
x 27 0 Write protected
x 29 0 POR or bus reset occurred
x 31 1 Format failed
x 31 91 Format corrupted
x 32 1 Defect list update error
x 32 2 No spares available
x 35 1 Unspecified enclosure services failure
x 37 0 Parameter rounded
x 3D 0 Invalid bits in identify message
x 3E 0 LUN not self-configured yet
x 40 1 DRAM parity error
x 40 2 DRAM parity error
x 42 0 Power-on or self-test failure
x 4C 0 LUN failed self-configuration
x 5C 0 RPL status change
x 5C 1 Spindles synchronized
x 5C 2 Spindles not synchronized
Revision 1.0 19
Decoding Intel® RAID Sense Code Messages Intel® RAID Controllers: SAS Software Stack
Additional
Sense Additional Sense Code
Category Key Sense Code Qualifier Error Condition
Byte 2 Byte 12 Byte 13
x 65 0 Voltage fault
x 80 0 General firmware error
CDB: 2f 00 13 8e 93 05 00 80 00 00
The CDB indicates that the drive will verify the 0x8000 block written data on the medium using
ECC starting from LBA 0x138E9305.
It is followed by the sense data, which indicates that the drive returned an unrecoverable read
error on the LBA 0x138EF588.
Sense Code: f0 00 03 13 8e f5 88 0a 00 00 00 00 11 00 00 00 00 0
Next the Controller tries to fix the error using the WRITE and VERIFY command, which
indicates that the drive will write 0x01 block data and then verify the written data in the medium
using ECC starting from LAB 0x138EF588.
CDB: 2e 00 13 8e f5 88 00 00 01 00
It is followed by the sense data, which indicates that the drive failed the read command again.
Sense Code: f0 00 03 13 8e f5 88 0a 00 00 00 00 11 00 00 00 00 0
20 Revision 1.0
Intel® RAID Controllers: SAS Software Stack Appendix A
Revision 1.0 21
Decoding Intel® RAID Sense Code Messages Intel® RAID Controllers: SAS Software Stack
22 Revision 1.0
Intel® RAID Controllers: SAS Software Stack Appendix A
Revision 1.0 23
Decoding Intel® RAID Sense Code Messages Intel® RAID Controllers: SAS Software Stack
24 Revision 1.0
Intel® RAID Controllers: SAS Software Stack Appendix A
Revision 1.0 25
Decoding Intel® RAID Sense Code Messages Intel® RAID Controllers: SAS Software Stack
26 Revision 1.0
Intel® RAID Controllers: SAS Software Stack Appendix A
Revision 1.0 27
Decoding Intel® RAID Sense Code Messages Intel® RAID Controllers: SAS Software Stack
28 Revision 1.0
Intel® RAID Controllers: SAS Software Stack Appendix A
Revision 1.0 29
Decoding Intel® RAID Sense Code Messages Intel® RAID Controllers: SAS Software Stack
30 Revision 1.0
Intel® RAID Controllers: SAS Software Stack Appendix A
Revision 1.0 31