Key Code Qualifier: Difference between revisions

Content deleted Content added
Ste.Ri (talk | contribs)
m ext link: SPC-4
Removing link(s) to "SCSI CDB": Deleted PROD.
 
(48 intermediate revisions by 36 users not shown)
Line 1:
{{Short description|Type of SCSI error code}}
'''Key Code Qualifier''' is a computer term used to describe an error-code returned by a [[SCSI]] device.
{{redirect|KCQ|the radio station in Saginaw, Michigan|WKCQ}}
 
'''Key Code Qualifier''' is an error-code returned by a [[SCSI]] device.
When a SCSI [[SCSI target|target]] device returns a [[SCSI check condition|check condition]] in response to a [[SCSI command|command]], the [[SCSI initiator|initiator]] usually then issues a [[SCSI Request Sense Command|SCSI Request Sense command]]. This process is part of a SCSI protocol called [[SCSI contingent allegiance condition|Contingent Allegiance Condition]]. The target will respond to the Request Sense command with a set of SCSI sense data which includes three fields giving increasing levels of detail about the error:
 
*K - sense key - 4 bits
When a SCSI [[SCSI target|target]] device returns a check condition in response to a [[SCSI command|command]], the [[SCSI initiator|initiator]] usually then issues a [[SCSI Request Sense Command|SCSI Request Sense command]]. This process is part of a SCSI protocol called Contingent Allegiance Condition. The target will respond to the Request Sense command with a set of [[SCSI Request Sense Command|SCSI sense data]] which includes three fields giving increasing levels of detail about the error:
*C - additional sense code (ASC) - 8 bits
*QK - additional sense codekey qualifier- 4 bits, (ASCQ)byte -2 8of bitsFixed sense data format)
*C - additional sense code (ASC) - 8 bits, (byte 12 of Fixed sense data format)
The initiator can take action based on just the K field which indicates if the error is minor or major. However all three fields are usually logically combined into a 20 bit field called Key Code Qualifier or KCQ. The specification for the target device will define the list of possible KCQ values. In practice there are many KCQ values which are common between different SCSI device types and different SCSI device vendors.
*Q - additional sense code qualifier (ASCQ) - 8 bits, (byte 13 of Fixed sense data format)
The initiator can take action based on just the K field which indicates if the error is minor or major. However all three fields are usually logically combined into a 20 bit field called Key Code Qualifier or KCQ. The specification for the target device will define the list of possible KCQ values. In practice there are many KCQ values which are common between different SCSI device types and different SCSI device vendors. Common values are listed below, you should consult your hardware specific documentation as well.
 
==List of common SCSI KCQs==
 
{|class="wikitable"
!Category !! Key !! ASC !! ASCQ !! Error Condition
|-
|rowspan="2" vertical-alignvalign="top"|No Sense || 0 || 00 || 00 || No error
|-
|0 || 5D|| 00|| No sense - PFA threshold reached
|-
|rowspan="3836" vertical-alignvalign="top"|Soft Error||1||01||00||Recovered Write error - no index
|-
|1||02||00||Recovered no seek completion
|-
|1||03||00||Recovered Write error - write fault
|-
|1||09||00||Track following error
|-
|1||0B||01||Temperature warning
|-
|1||0C||01||Recovered Write error with auto-realloc - reallocated
|-
|1||0C||03||Recovered Write error - recommend reassign
|-
|1||12||01||Recovered data without ECC using prev logical block ID
|-
|1||12||02||Recovered data with ECC using prev logical block ID
|-
|1||14||01||Recovered Record Not Found
|-
|1||16||00||Recovered Write error - Data Sync Mark Error
|-
|1||16||01||Recovered Write error - Data Sync Error - data rewritten
|-
|1||16||02||Recovered Write error - Data Sync Error - recommend rewrite
|-
|1||16||03||Recovered Write error - Data Sync Error - data auto-reallocated
|-
|1||16||04||Recovered Write error - Data Sync Error - recommend reassignment
|-
|1||17||00||Recovered data with no error correction applied
|-
|1||17||01||Recovered Read error - with retries
|-
|1||17||02||Recovered data using positive offset
|-
|1||17||03||Recovered data using negative offset
|-
|1||17||05||Recovered data using previous logical block ID
|-
|1||17||06||Recovered Read error - without ECC, auto reallocated
|-
|1||17||07||Recovered Read error - without ECC, recommend reassign
|-
|1||17||08||Recovered Read error - without ECC, recommend rewrite
|-
|1||17||09||Recovered Read error - without ECC, data rewritten
|-
|1||18||00||Recovered Read error - with ECC
|-
|1||18||01||Recovered data with ECC and retries
|-
|1||18||02||Recovered Read error - with ECC, auto reallocated
|-
|1||18||05||Recovered Read error - with ECC, recommend reassign
|-
|1||18||06||Recovered data using ECC and offsets
|-
|1||18||07||Recovered Read error - with ECC, data rewritten
|-
|1||1C||00||Defect List not found
|-
|1||1C||01||Primary defect list not found
|-
|1||1C||02||Grown defect list not found
|-
|1||1F||00||Partial defect list transferred
|-
|1||44||00||Internal target failure
|-
|1||5D||00||PFA threshold reached
|-
|1||5D||FF||PFA test warning
|-
|1||81||00||Internal logic failure
|-
|rowspan="2015" vertical-alignvalign="top"|Not Ready||2||04||00||Not Ready - startCause motornot failedreportable.
|-
|2||04||01||Not Ready - becoming ready
|-
|2||04||02||Not Ready - need initialise command (start unit)
|-
Line 110 ⟶ 109:
|2||35||02||Not Ready - enclosure services unavailable
|-
|2||403A||8000||DiagnosticNot FailureReady - bring-up fail ormedium degradednot modepresent
|-
|2||403A||8101||DiagnosticNot FailureReady - Hardmedium Disknot Controllerpresent - tray closed
|-
|2||403A||8502||DiagnosticNot FailureReady - RAM microcodemedium not loadedpresent - tray open
|-
|2||403A||9003||DiagnosticNot FailureReady - RROmedium Calibrationnot present - loadable
|-
|2||3A||04||Not Ready - medium not present - medium auxiliary memory accessible
|2||40||91||Diagnostic Failure - Channel Calibration
|-
|2||404C||9200||Diagnostic Failure - Headconfig Loadnot loaded
|-
|rowspan="18" valign="top"|Medium Error||3||02||00||Medium Error - No Seek Complete
|2||40||93||Diagnostic Failure - Write AE
|-
|23||4003||9400||DiagnosticMedium FailureError - 12Vwrite over currentfault
|-
|23||4010||9500||DiagnosticMedium FailureError - OtherID spindleCRC failureerror
|-
|3||11||00||Medium Error - unrecovered read error
|2||40||B0||Diagnostic Failure - self-reset
|-
|3||11||01||Medium Error - read retries exhausted
|-
|3||11||02||Medium Error - error too long to correct
|-
|3||11||04||Medium Error - unrecovered read error - auto re-alloc failed
|-
|3||11||0B||Medium Error - unrecovered read error - recommend reassign
|-
|3||14||01||Medium Error - record not found
|-
|3||16||00||Medium Error - Data Sync Mark error
|-
|3||16||04||Medium Error - Data Sync Error - recommend reassign
|-
|3||19||00||Medium Error - defect list error
|-
|3||19||01||Medium Error - defect list not available
|-
|3||19||02||Medium Error - defect list error in primary list
|-
|3||19||03||Medium Error - defect list error in grown list
|-
|3||19||0E||Medium Error - fewer than 50% defect list copies
|-
|3||31||00||Medium Error - medium format corrupted
|-
|3||31||01||Medium Error - format command failed
|-
|rowspan="23" valign="top"|Hardware Error||4||01||00||Hardware Error - no index or sector
|-
|4||02||00||Hardware Error - no seek complete
|-
|4||03||00||Hardware Error - write fault
|-
|4||09||00||Hardware Error - track following error
|-
|4||11||00||Hardware Error - unrecovered read error in reserved area
|-
|4||15||01||Hardware Error - Mechanical positioning error
|-
|4||16||00||Hardware Error - Data Sync Mark error in reserved area
|-
|4||19||00||Hardware Error - defect list error
|-
|4||19||02||Hardware Error - defect list error in Primary List
|-
|4||19||03||Hardware Error - defect list error in Grown List
|-
|4||32||00||Hardware Error - no defect spare available
|-
|4||35||00||Hardware Error - enclosure services failure
|-
|4||35||01||Hardware Error - unsupported enclosure function
|-
|4||35||02||Hardware Error - enclosure services unavailable
|-
|4||35||03||Hardware Error - enclosure services transfer failure
|-
|4||35||04||Hardware Error - enclosure services refused
|-
|4||35||05||Hardware Error - enclosure services checksum error
|-
|4||3E||00||Hardware Error - logical unit has not self configured yet
|-
|4||3E||01||Hardware Error - logical unit failed
|-
|4||3E||02||Hardware Error - timeout on logical unit
|-
|4||3E||03||Hardware Error - self-test failed
|-
|4||3E||04||Hardware Error - unable to update self-test log
|-
|4||44||00||Hardware Error - internal target failure
|-
|rowspan="19" valign="top"|Illegal Request||5||1A||00||Illegal Request - parm list length error
|-
|5||20||00||Illegal Request - invalid/unsupported command code
|-
|5||21||00||Illegal Request - LBA out of range
|-
|5||24||00||Illegal Request - invalid field in CDB (Command Descriptor Block)
|-
|5||25||00||Illegal Request - invalid LUN
|-
|5||26||00||Illegal Request - invalid fields in parm list
|-
|5||26||01||Illegal Request - parameter not supported
|-
|5||26||02||Illegal Request - invalid parm value
|-
|5||26||03||Illegal Request - invalid field parameter - threshold parameter
|-
|5||26||04||Illegal Request - invalid release of persistent reservation
|-
|5||2C||00||Illegal Request - command sequence error
|-
|5||35||01||Illegal Request - unsupported enclosure function
|-
|5||49||00||Illegal Request - invalid message
|-
|5||53||00||Illegal Request - media load or eject failed
|-
|5||53||01||Illegal Request - unload tape failure
|-
|5||53||02||Illegal Request - medium removal prevented
|-
|5||55||00||Illegal Request - system resource failure
|-
|5||55||01||Illegal Request - system buffer full
|-
|5||55||04||Illegal Request - Insufficient Registration Resources
|-
|rowspan="43" valign="top"|Unit Attention||6||28||00||Unit Attention - not-ready to ready transition (format complete)
|-
|6||29||00||Unit Attention - POR or device reset occurred
|-
|6||29||01||Unit Attention - POR occurred
|-
|6||29||02||Unit Attention - SCSI bus reset occurred
|-
|6||29||03||Unit Attention - TARGET RESET occurred
|-
|6||29||04||Unit Attention - self-initiated-reset occurred
|-
|6||29||05||Unit Attention - transceiver mode change to SE
|-
|6||29||06||Unit Attention - transceiver mode change to LVD
|-
|6||2A||00||Unit Attention - parameters changed
|-
|6||2A||01||Unit Attention - mode parameters changed
|-
|6||2A||02||Unit Attention - log select parms changed
|-
|6||2A||03||Unit Attention - Reservations pre-empted
|-
|6||2A||04||Unit Attention - Reservations released
|-
|6||2A||05||Unit Attention - Registrations pre-empted
|-
|6||2F||00||Unit Attention - commands cleared by another initiator
|-
|6||3F||00||Unit Attention - target operating conditions have changed
|-
|6||3F||01||Unit Attention - microcode changed
|-
|6||3F||02||Unit Attention - changed operating definition
|-
|6||3F||03||Unit Attention - inquiry parameters changed
|-
|6||3F||04||Unit Attention - component device attached
|-
|6||3F||05||Unit Attention - device identifier changed
|-
|6||3F||06||Unit Attention - redundancy group created or modified
|-
|6||3F||07||Unit Attention - redundancy group deleted
|-
|6||3F||08||Unit Attention - spare created or modified
|-
|6||3F||09||Unit Attention - spare deleted
|-
|6||3F||0A||Unit Attention - volume set created or modified
|-
|6||3F||0B||Unit Attention - volume set deleted
|-
|6||3F||0C||Unit Attention - volume set deassigned
|-
|6||3F||0D||Unit Attention - volume set reassigned
|-
|6||3F||0E||Unit Attention - reported LUNs data has changed
|-
|6||3F||0F||Unit Attention - echo buffer overwritten
|-
|6||3F||10||Unit Attention - medium loadable
|-
|6||3F||11||Unit Attention - medium auxiliary memory accessible
|-
|6||3F||12||Unit Attention - iSCSI IP address added
|-
|6||3F||13||Unit Attention - iSCSI IP address removed
|-
|6||3F||14||Unit Attention - iSCSI IP address changed
|-
|6||3F||15||Unit Attention - inspect referrals sense descriptors
|-
|6||3F||16||Unit Attention - microcode has been changed without reset
|-
|6||3F||17||Unit Attention - zone transition to full
|-
|6||3F||18||Unit Attention - bind completed
|-
|6||3F||19||Unit Attention - bind redirected
|-
|6||3F||1A||Unit Attention - subsidiary binding changed
|-
|6||5D||00||Unit Attention - PFA threshold reached
|-
| rowspan="2" |Data Protect
|7
|20
|02
|Access Denied - No Access Rights
|-
|7||27||00||Write Protect - command not allowed
|-
|rowspan="14" valign="top"|Aborted Command||B||00||00||Aborted Command - no additional sense code
|-
|B||1B||00||Aborted Command - sync data transfer error (extra ACK)
|-
|B||25||00||Aborted Command - unsupported LUN
|-
|B||3F||0F||Aborted Command - echo buffer overwritten
|-
|B||43||00||Aborted Command - message reject error
|-
|B||44||00||Aborted Command - internal target failure
|-
|B||45||00||Aborted Command - Selection/Reselection failure
|-
|B||47||00||Aborted Command - SCSI parity error
|-
|B||48||00||Aborted Command - initiator-detected error message received
|-
|B||49||00||Aborted Command - inappropriate/illegal message
|-
|B||55||03||Aborted Command - insufficient resources
|-
|B||4B||00||Aborted Command - data phase error
|-
|B||4E||00||Aborted Command - overlapped commands attempted
|-
|B||4F||00||Aborted Command - due to loop initialisation
|-
|rowspan="40" valign="top"|Other||E||1D||00||Miscompare - during verify byte check operation
|-
|x||05||00||Illegal request
|-
|x||06||00||Unit attention
|-
|x||07||00||Data protect
|-
|x||08||00||LUN communication failure
|-
|x||08||01||LUN communication timeout
|-
|x||08||02||LUN communication parity error
|-
|x||08||03||LUN communication CRC error
|-
|x||09||00||vendor specific sense key
|-
|x||09||01||servo fault
|-
|x||09||04||head select fault
|-
|x||0A||00||error log overflow
|-
|x||0B||00||aborted command
|-
|x||0C||00||write error
|-
|x||0C||02||write error - auto-realloc failed
|-
|x||0E||00||data miscompare
|-
|x||12||00||address mark not found for ID field
|-
|x||14||00||logical block not found
|-
|x||15||00||random positioning error
|-
|x||15||01||mechanical positioning error
|-
|x||15||02||positioning error detected by read of medium
|-
|x||27||00||write protected
|-
|x||29||00||POR or bus reset occurred
|-
|x||31||01||format failed
|-
|x||32||01||defect list update error
|-
|x||32||02||no spares available
|-
|x||35||01||unspecified enclosure services failure
|-
|x||37||00||parameter rounded
|-
|x||3D||00||invalid bits in identify message
|-
|x||3E||00||LUN not self-configured yet
|-
|x||40||01||DRAM parity error
|-
|x||40||02||DRAM parity error
|-
|x||42||00||power-on or self-test failure
|-
|x||4C||00||LUN failed self-configuration
|-
|x||5C||00||RPL status change
|-
|x||5C||01||spindles synchronised
|-
|x||5C||02||spindles not synchronised
|-
|x||65||00||voltage fault
|-
|x||≥80||x||Vendor specific
|-
|x||x||≥80||Vendor specific
|-
|2||4C||00||Diagnostic Failure - config not loaded
|}
 
==References==
<pre>
* [http://www.t10.org/lists/asc-num.htm T10: SCSI ASC/ASCQ Assignments]
Medium 3 03 00 Medium Error - write fault
Error 3 0C FF Medium Error - write recovery time limit exceeded
3 10 00 Medium Error - ID CRC error
3 11 00 Medium Error - unrecovered read error
3 11 01 Medium Error - read retries exhausted
3 11 02 Medium Error - error too long to correct
3 11 04 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 01 Medium Error - record not found
3 16 00 Medium Error - Data Sync Mark error
3 16 04 Medium Error - Data Sync Error - recommend reassign
3 19 00 Medium Error - defect list error
3 19 01 Medium Error - defect list not available
3 19 02 Medium Error - defect list error in primary list
3 19 03 Medium Error - defect list error in grown list
3 19 0E Medium Error - fewer than 50% defect list copies
3 31 00 Medium Error - medium format corrupted
3 31 01 Medium Error - format command failed
3 80 00 Medium Error - data auto-reallocated
Hardware 4 01 00 Hardware Error - no index or sector
Error 4 02 00 Hardware Error - no seek complete
4 03 00 Hardware Error - write fault
4 09 00 Hardware Error - track following error
4 11 00 Hardware Error - unrecovered read error in reserved area
4 16 00 Hardware Error - Data Sync Mark error in reserved area
4 19 00 Hardware Error - defect list error
4 19 02 Hardware Error - defect list error in Primary List
4 19 03 Hardware Error - defect list error in Grown List
4 31 00 Hardware Error - reassign failed
4 32 00 Hardware Error - no defect spare available
4 35 01 Hardware Error - unsupported enclosure function
4 35 02 Hardware Error - enclosure services unavailable
4 35 03 Hardware Error - enclosure services transfer failure
4 35 04 Hardware Error - enclosure services refused
4 3E 03 Hardware Error - self-test failed
4 3E 04 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
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 00 Hardware Error - internal target failure
4 81 00 Hardware Error - internal logic error
4 82 00 Hardware Error - command timeout
Illegal 5 1A 00 Illegal Request - parm list length error
Request 5 20 00 Illegal Request - invalid/unsupported command code
5 21 00 Illegal Request - LBA out of range
5 24 00 Illegal Request - invalid field in CDB
5 25 00 Illegal Request - invalid LUN
5 26 00 Illegal Request - invalid fields in parm list
5 26 01 Illegal Request - parameter not supported
5 26 02 Illegal Request - invalid parm value
5 26 03 Illegal Request - invalid field parameter - threshold parameter
5 26 04 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 00 Illegal Request - command sequence error
5 35 01 Illegal Request - unsupported enclosure function
5 49 00 Illegal Request - invalid message
5 55 00 Illegal Request - system resource failure
5 55 01 Illegal Request - system buffer full
5 55 04 Illegal Request - Insufficient Registration Resources
Unit 6 28 00 Unit Attention - not-ready to ready transition (format complete)
Attention 6 29 00 Unit Attention - POR or device reset occurred
6 29 01 Unit Attention - POR occurred
6 29 02 Unit Attention - SCSI bus reset occurred
6 29 03 Unit Attention - TARGET RESET occurred
6 29 04 Unit Attention - self-initiated-reset occurred
6 29 05 Unit Attention - transceiver mode change to SE
6 29 06 Unit Attention - transceiver mode change to LVD
6 2A 00 Unit Attention - parameters changed
6 2A 01 Unit Attention - mode parameters changed
6 2A 02 Unit Attention - log select parms changed
6 2A 03 Unit Attention - Reservations pre-empted
6 2A 04 Unit Attention - Reservations released
6 2A 05 Unit Attention - Registrations pre-empted
6 2F 00 Unit Attention - commands cleared by another initiator
6 3F 00 Unit Attention - target operating conditions have changed
6 3F 01 Unit Attention - microcode changed
6 3F 02 Unit Attention - changed operating definition
6 3F 03 Unit Attention - inquiry parameters changed
6 3F 05 Unit Attention - device identifier changed
6 3F 90 Unit Attention - invalid APM parameters
6 3F 91 Unit Attention - world-wide name mismatch
6 5D 00 Unit Attention - PFA threshold reached
6 5D FF Unit Attention - PFA threshold exceeded
Write 7 27 00 Write Protect - command not allowed
Protect
Aborted B 00 00 Aborted Command - no additional sense code
Command B 1B 00 Aborted Command - sync data transfer error (extra ACK)
B 25 00 Aborted Command - unsupported LUN
B 3F 0F Aborted Command - echo buffer overwritten
B 43 00 Aborted Command - message reject error
B 44 00 Aborted Command - internal target failure
B 45 00 Aborted Command - Selection/Reselection failure
B 47 00 Aborted Command - SCSI parity error
B 48 00 Aborted Command - initiator-detected error message received
B 49 00 Aborted Command - inappropriate/illegal message
B 4B 00 Aborted Command - data phase error
B 4E 00 Aborted Command - overlapped commands attempted
B 4F 00 Aborted Command - due to loop initialisation
Other E 1D 00 Miscompare - during verify byte check operation
x 03 86 Write Fault Data Corruption
x 05 00 Illegal request
x 06 00 Unit attention
x 07 00 Data protect
x 08 00 LUN communication failure
x 08 01 LUN communication timeout
x 08 02 LUN communication parity error
x 09 00 vendor specific sense key
x 09 01 servo fault
x 09 04 head select fault
x 0A 00 error log overflow
x 0B 00 aborted command
x 0C 00 write error
x 0C 02 write error - auto-realloc failed
x 0E 00 data miscompare
x 12 00 address mark not founf for ID field
x 14 00 logical block not found
x 15 00 random positioning error
x 15 01 mechanical positioning error
x 15 02 positioning error detected by read of medium
x 27 00 write protected
x 29 00 POR or bus reset occurred
x 31 01 format failed
x 31 91 format corrupted
x 32 01 defect list update error
x 32 02 no spares available
x 35 01 unspecified enclosure services failure
x 37 00 parameter rounded
x 3D 00 invalid bits in identify message
x 3E 00 LUN not self-configured yet
x 40 01 DRAM parity error
x 40 02 DRAM parity error
x 42 00 power-on or self-test failure
x 4C 00 LUN failed self-configuration
x 5C 00 RPL status change
x 5C 01 spindles synchronised
x 5C 02 spindles not synchronised
x 65 00 voltage fault
x 80 00 general firmware error
</pre>
 
==Reference==
[ftp://ftp.t10.org/t10/drafts/spc4/ SPC-4] clause 4.5.6 and annex D.2
 
[[Category:SCSI]]