summaryrefslogtreecommitdiff
path: root/sys/scsi
diff options
context:
space:
mode:
authorKenneth R Westerback <krw@cvs.openbsd.org>2011-03-02 04:38:02 +0000
committerKenneth R Westerback <krw@cvs.openbsd.org>2011-03-02 04:38:02 +0000
commitfc512c486d666608efa5bafc8f886d53205755b5 (patch)
tree95a4ce3f70d3cc509f46fdeabeec270b74bf1dab /sys/scsi
parent4da670585aefda6630c00a87fdae36461f5d037d (diff)
Sync ASC/ASCQ errors with www.t10.org/lists/asc-num.txt of 11/15/10.
Prompted by dlg@'s tape library trying to report a failure to thread a media (0x53, 0x04).
Diffstat (limited to 'sys/scsi')
-rw-r--r--sys/scsi/scsi_base.c118
1 files changed, 117 insertions, 1 deletions
diff --git a/sys/scsi/scsi_base.c b/sys/scsi/scsi_base.c
index 7fee8d1b5de..ecfb3c8f70a 100644
--- a/sys/scsi/scsi_base.c
+++ b/sys/scsi/scsi_base.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: scsi_base.c,v 1.197 2010/09/20 00:19:47 dlg Exp $ */
+/* $OpenBSD: scsi_base.c,v 1.198 2011/03/02 04:38:01 krw Exp $ */
/* $NetBSD: scsi_base.c,v 1.43 1997/04/02 02:29:36 mycroft Exp $ */
/*
@@ -1744,6 +1744,7 @@ static const struct {
u_int8_t asc, ascq;
char *description;
} adesc[] = {
+ /* www.t10.org/lists/asc-num.txt as of 11/15/10. */
{ 0x00, 0x00, "No Additional Sense Information" },
{ 0x00, 0x01, "Filemark Detected" },
{ 0x00, 0x02, "End-Of-Partition/Medium Detected" },
@@ -1781,8 +1782,18 @@ static const struct {
{ 0x04, 0x0A, "Logical Unit Not Accessible, Asymmetric Access State Transition" },
{ 0x04, 0x0B, "Logical Unit Not Accessible, Target Port In Standby State" },
{ 0x04, 0x0C, "Logical Unit Not Accessible, Target Port In Unavailable State" },
+ { 0x04, 0x0D, "Logical Unit Not Ready, Structure Check Required" },
{ 0x04, 0x10, "Logical Unit Not Ready, Auxiliary Memory Not Accessible" },
{ 0x04, 0x11, "Logical Unit Not Ready, Notify (Enable Spinup) Required" },
+ { 0x04, 0x12, "Logical Unit Not Ready, Offline" },
+ { 0x04, 0x13, "Logical Unit Not Ready, SA Creation In Progress" },
+ { 0x04, 0x14, "Logical Unit Not Ready, Space Allocation In Progress" },
+ { 0x04, 0x15, "Logical Unit Not Ready, Robotics Disabled" },
+ { 0x04, 0x16, "Logical Unit Not Ready, Configuration Required" },
+ { 0x04, 0x17, "Logical Unit Not Ready, Calibration Required" },
+ { 0x04, 0x18, "Logical Unit Not Ready, A Door Is Open" },
+ { 0x04, 0x19, "Logical Unit Not Ready, Operating In Sequential Mode" },
+ { 0x04, 0x1A, "Logical Unit Not Ready, Start Stop Unit Command In Progress" },
{ 0x05, 0x00, "Logical Unit Does Not Respond To Selection" },
{ 0x06, 0x00, "No Reference Position Found" },
{ 0x07, 0x00, "Multiple Peripheral Devices Selected" },
@@ -1800,6 +1811,12 @@ static const struct {
{ 0x0B, 0x00, "Warning" },
{ 0x0B, 0x01, "Warning - Specified Temperature Exceeded" },
{ 0x0B, 0x02, "Warning - Enclosure Degraded" },
+ { 0x0B, 0x03, "Warning - Background Self-Test Failed" },
+ { 0x0B, 0x04, "Warning - Background Pre-Scan Detected Medium Error" },
+ { 0x0B, 0x05, "Warning - Background Medium Scan Detected Medium Error" },
+ { 0x0B, 0x06, "Warning - Non-Volatile Cache Now Volatile" },
+ { 0x0B, 0x07, "Warning - Degraded Power To Non-Volatile Cache" },
+ { 0x0B, 0x08, "Warning - Power Loss Expected" },
{ 0x0C, 0x00, "Write Error" },
{ 0x0C, 0x01, "Write Error Recovered with Auto Reallocation" },
{ 0x0C, 0x02, "Write Error - Auto Reallocate Failed" },
@@ -1814,6 +1831,7 @@ static const struct {
{ 0x0C, 0x0B, "Auxiliary Memory Write Error" },
{ 0x0C, 0x0C, "Write Error - Unexpected Unsolicited Data" },
{ 0x0C, 0x0D, "Write Error - Not Enough Unsolicited Data" },
+ { 0x0C, 0x0F, "Defects In Error Window" },
{ 0x0D, 0x00, "Error Detected By Third Party Temporary Initiator" },
{ 0x0D, 0x01, "Third Party Device Failure" },
{ 0x0D, 0x02, "Copy Target Device Not Reachable" },
@@ -1824,6 +1842,11 @@ static const struct {
{ 0x0E, 0x01, "Information Unit Too Short" },
{ 0x0E, 0x02, "Information Unit Too Long" },
{ 0x10, 0x00, "ID CRC Or ECC Error" },
+ { 0x10, 0x01, "Logical Block Guard Check Failed" },
+ { 0x10, 0x02, "Logical Block Application Tag Check Failed" },
+ { 0x10, 0x03, "Logical Block Reference Tag Check Failed" },
+ { 0x10, 0x04, "Logical Block Protection Error On Recover Buffered Data" },
+ { 0x10, 0x05, "Logical Block Protection Method Error" },
{ 0x11, 0x00, "Unrecovered Read Error" },
{ 0x11, 0x01, "Read Retries Exhausted" },
{ 0x11, 0x02, "Error Too Long To Correct" },
@@ -1844,6 +1867,7 @@ static const struct {
{ 0x11, 0x11, "Read Error - Loss Of Streaming" },
{ 0x11, 0x12, "Auxiliary Memory Read Error" },
{ 0x11, 0x13, "Read Error - Failed Retransmission Request" },
+ { 0x11, 0x14, "Read Error - LBA Marked Bad By Application Client" },
{ 0x12, 0x00, "Address Mark Not Found for ID Field" },
{ 0x13, 0x00, "Address Mark Not Found for Data Field" },
{ 0x14, 0x00, "Recorded Entity Not Found" },
@@ -1891,6 +1915,7 @@ static const struct {
{ 0x1C, 0x01, "Primary Defect List Not Found" },
{ 0x1C, 0x02, "Grown Defect List Not Found" },
{ 0x1D, 0x00, "Miscompare During Verify Operation" },
+ { 0x1D, 0x01, "Miscompare Verify Of Unmapped Lba" },
{ 0x1E, 0x00, "Recovered ID with ECC" },
{ 0x1F, 0x00, "Partial Defect List Transfer" },
{ 0x20, 0x00, "Invalid Command Operation Code" },
@@ -1905,9 +1930,11 @@ static const struct {
{ 0x20, 0x09, "Access Denied - Invalid LU Identifier" },
{ 0x20, 0x0A, "Access Denied - Invalid Proxy Token" },
{ 0x20, 0x0B, "Access Denied - ACL LUN Conflict" },
+ { 0x20, 0x0C, "Illegal Command When Not In Append-Only Mode" },
{ 0x21, 0x00, "Logical Block Address Out of Range" },
{ 0x21, 0x01, "Invalid Element Address" },
{ 0x21, 0x02, "Invalid Address For Write" },
+ { 0x21, 0x03, "Invalid Write Crossing Layer Jump" },
{ 0x22, 0x00, "Illegal Function (Should 20 00, 24 00, or 26 00)" },
{ 0x24, 0x00, "Illegal Field in CDB" },
{ 0x24, 0x01, "CDB Decryption Error" },
@@ -1917,6 +1944,7 @@ static const struct {
{ 0x24, 0x05, "Security Working Key Frozen" },
{ 0x24, 0x06, "Nonce Not Unique" },
{ 0x24, 0x07, "Nonce Timestamp Out Of Range" },
+ { 0x24, 0x08, "Invalid XCDB" },
{ 0x25, 0x00, "Logical Unit Not Supported" },
{ 0x26, 0x00, "Invalid Field In Parameter List" },
{ 0x26, 0x01, "Parameter Not Supported" },
@@ -1933,6 +1961,10 @@ static const struct {
{ 0x26, 0x0C, "Invalid Operation For Copy Source Or Destination" },
{ 0x26, 0x0D, "Copy Segment Granularity Violation" },
{ 0x26, 0x0E, "Invalid Parameter While Port Is Enabled" },
+ { 0x26, 0x0F, "Invalid Data-Out Buffer Integrity Check Value" },
+ { 0x26, 0x10, "Data Decryption Key Fail Limit Reached" },
+ { 0x26, 0x11, "Incomplete Key-Associated Data Set" },
+ { 0x26, 0x12, "Vendor Specific Key Reference Not Found" },
{ 0x27, 0x00, "Write Protected" },
{ 0x27, 0x01, "Hardware Write Protected" },
{ 0x27, 0x02, "Logical Unit Software Write Protected" },
@@ -1940,8 +1972,11 @@ static const struct {
{ 0x27, 0x04, "Persistent Write Protect" },
{ 0x27, 0x05, "Permanent Write Protect" },
{ 0x27, 0x06, "Conditional Write Protect" },
+ { 0x27, 0x07, "Space Allocation Failed Write Protect" },
{ 0x28, 0x00, "Not Ready To Ready Transition (Medium May Have Changed)" },
{ 0x28, 0x01, "Import Or Export Element Accessed" },
+ { 0x28, 0x02, "Format-Layer May Have Changed" },
+ { 0x28, 0x03, "Import/Export Element Accessed, Medium Changed" },
{ 0x29, 0x00, "Power On, Reset, or Bus Device Reset Occurred" },
{ 0x29, 0x01, "Power On Occurred" },
{ 0x29, 0x02, "SCSI Bus Reset Occurred" },
@@ -1958,6 +1993,17 @@ static const struct {
{ 0x2A, 0x05, "Registrations Preempted" },
{ 0x2A, 0x06, "Asymmetric Access State Changed" },
{ 0x2A, 0x07, "Implicit Asymmetric Access State Transition Failed" },
+ { 0x2A, 0x08, "Priority Changed" },
+ { 0x2A, 0x09, "Capacity Data Has Changed" },
+ { 0x2A, 0x0A, "Error History I_T Nexus Cleared" },
+ { 0x2A, 0x0B, "Error History Snapshot Released" },
+ { 0x2A, 0x0C, "Error Recovery Attributes Have Changed" },
+ { 0x2A, 0x0D, "Data Encryption Capabilities Changed" },
+ { 0x2A, 0x10, "Timestamp Changed" },
+ { 0x2A, 0x11, "Data Encryption Parameters Changed By Another I_T Nexus" },
+ { 0x2A, 0x12, "Data Encryption Parameters Changed By Vendor Specific Event" },
+ { 0x2A, 0x13, "Data Encryption Key Instance Counter Has Changed" },
+ { 0x2A, 0x14, "SA Creation Capabilities Data Has Changed" },
{ 0x2B, 0x00, "Copy Cannot Execute Since Host Cannot Disconnect" },
{ 0x2C, 0x00, "Command Sequence Error" },
{ 0x2C, 0x01, "Too Many Windows Specified" },
@@ -1970,9 +2016,13 @@ static const struct {
{ 0x2C, 0x08, "Previous Task Set Full Status" },
{ 0x2C, 0x09, "Previous Reservation Conflict Status" },
{ 0x2C, 0x0A, "Partition Or Collection Contains User Objects" },
+ { 0x2C, 0x0B, "Not Reserved" },
+ { 0x2C, 0x0C, "ORWrite Generation Does Not Match" },
{ 0x2D, 0x00, "Overwrite Error On Update In Place" },
{ 0x2E, 0x00, "Insufficient Time For Operation" },
{ 0x2F, 0x00, "Commands Cleared By Another Initiator" },
+ { 0x2F, 0x01, "Commands Cleared By Power Loss Notification" },
+ { 0x2F, 0x02, "Commands Cleared By Device Server" },
{ 0x30, 0x00, "Incompatible Medium Installed" },
{ 0x30, 0x01, "Cannot Read Medium - Unknown Format" },
{ 0x30, 0x02, "Cannot Read Medium - Incompatible Format" },
@@ -1985,8 +2035,12 @@ static const struct {
{ 0x30, 0x09, "Current Session Not Fixated For Append" },
{ 0x30, 0x0A, "Cleaning Request Rejected" },
{ 0x30, 0x10, "Medium Not Formatted" },
+ { 0x30, 0x11, "Incompatible Volume Type" },
+ { 0x30, 0x12, "Incompatible Volume Qualifier" },
+ { 0x30, 0x13, "Cleaning Volume Expired" },
{ 0x31, 0x00, "Medium Format Corrupted" },
{ 0x31, 0x01, "Format Command Failed" },
+ { 0x31, 0x02, "Zoned Formatting Failed Due To Spare Linking" },
{ 0x32, 0x00, "No Defect Spare Location Available" },
{ 0x32, 0x01, "Defect List Update Failure" },
{ 0x33, 0x00, "Tape Length Error" },
@@ -2030,6 +2084,11 @@ static const struct {
{ 0x3B, 0x14, "Medium Magazine Locked" },
{ 0x3B, 0x15, "Medium Magazine Unlocked" },
{ 0x3B, 0x16, "Mechanical Positioning Or Changer Error" },
+ { 0x3B, 0x17, "Read Past End Of User Object" },
+ { 0x3B, 0x18, "Element Disabled" },
+ { 0x3B, 0x19, "Element Enabled" },
+ { 0x3B, 0x1A, "Data Transfer Device Removed" },
+ { 0x3B, 0x1B, "Data Transfer Device Inserted" },
{ 0x3D, 0x00, "Invalid Bits In IDENTIFY Message" },
{ 0x3E, 0x00, "Logical Unit Has Not Self-Configured Yet" },
{ 0x3E, 0x01, "Logical Unit Failure" },
@@ -2054,6 +2113,9 @@ static const struct {
{ 0x3F, 0x0F, "Echo Buffer Overwritten" },
{ 0x3F, 0x10, "Medium Loadable" },
{ 0x3F, 0x11, "Medium Auxiliary Memory Accessible" },
+ { 0x3F, 0x12, "iSCSI IP Address Added" },
+ { 0x3F, 0x13, "iSCSI IP Address Removed" },
+ { 0x3F, 0x14, "iSCSI IP Address Changed" },
{ 0x40, 0x00, "RAM FAILURE (Should Use 40 NN)" },
/*
* ASC 0x40 also has an ASCQ range from 0x80 to 0xFF.
@@ -2063,6 +2125,7 @@ static const struct {
{ 0x42, 0x00, "Power-On or Self-Test FAILURE (Should Use 40 NN)" },
{ 0x43, 0x00, "Message Error" },
{ 0x44, 0x00, "Internal Target Failure" },
+ { 0x44, 0x71, "ATA Device Failed Set Features" },
{ 0x45, 0x00, "Select Or Reselect Failure" },
{ 0x46, 0x00, "Unsuccessful Soft Reset" },
{ 0x47, 0x00, "SCSI Parity Error" },
@@ -2071,6 +2134,7 @@ static const struct {
{ 0x47, 0x03, "Information Unit iuCRC Error Detected" },
{ 0x47, 0x04, "Asynchronous Information Protection Error Detected" },
{ 0x47, 0x05, "Protocol Service CRC Error" },
+ { 0x47, 0x06, "PHY Test Function In Progress" },
{ 0x47, 0x7F, "Some Commands Cleared By iSCSI Protocol Event" },
{ 0x48, 0x00, "Initiator Detected Error Message Received" },
{ 0x49, 0x00, "Invalid Message Error" },
@@ -2082,6 +2146,7 @@ static const struct {
{ 0x4B, 0x04, "NAK Received" },
{ 0x4B, 0x05, "Data Offset Error" },
{ 0x4B, 0x06, "Initiator Response Timeout" },
+ { 0x4B, 0x07, "Connection Lost" },
{ 0x4C, 0x00, "Logical Unit Failed Self-Configuration" },
/*
* ASC 0x4D has an ASCQ range from 0x00 to 0xFF.
@@ -2097,6 +2162,12 @@ static const struct {
{ 0x53, 0x00, "Media Load or Eject Failed" },
{ 0x53, 0x01, "Unload Tape Failure" },
{ 0x53, 0x02, "Medium Removal Prevented" },
+ { 0x53, 0x03, "Medium Removal Prevented By Data Transfer Element" },
+ { 0x53, 0x04, "Medium Thread Or Unthread Failure" },
+ { 0x53, 0x05, "Volume Identifier Invalid" },
+ { 0x53, 0x06, "Volume Identifier Missing" },
+ { 0x53, 0x07, "Duplicate Volume Identifier" },
+ { 0x53, 0x08, "Element Status Unknown" },
{ 0x54, 0x00, "SCSI To Host System Interface Failure" },
{ 0x55, 0x00, "System Resource Failure" },
{ 0x55, 0x01, "System Buffer Full" },
@@ -2105,6 +2176,11 @@ static const struct {
{ 0x55, 0x04, "Insufficient Registration Resources" },
{ 0x55, 0x05, "Insufficient Access Control Resources" },
{ 0x55, 0x06, "Auxiliary Memory Out Of Space" },
+ { 0x55, 0x07, "Quota Error" },
+ { 0x55, 0x08, "Maximum Number Of Supplemental Decryption Keys Exceeded" },
+ { 0x55, 0x09, "Medium Auxiliary Memory Not Accessible" },
+ { 0x55, 0x0A, "Data Currently Unavailable" },
+ { 0x55, 0x0B, "Insufficient Power For Operation" },
{ 0x57, 0x00, "Unable To Recover Table-Of-Contents" },
{ 0x58, 0x00, "Generation Does Not Exist" },
{ 0x59, 0x00, "Updated Block Read" },
@@ -2207,6 +2283,12 @@ static const struct {
{ 0x5E, 0x02, "Standby Condition Activated By Timer" },
{ 0x5E, 0x03, "Idle Condition Activated By Command" },
{ 0x5E, 0x04, "Standby Condition Activated By Command" },
+ { 0x5E, 0x05, "IDLE_B Condition Activated By Timer" },
+ { 0x5E, 0x06, "IDLE_B Condition Activated By Command" },
+ { 0x5E, 0x07, "IDLE_C Condition Activated By Timer" },
+ { 0x5E, 0x08, "IDLE_C Condition Activated By Command" },
+ { 0x5E, 0x09, "STANDBY_Y Condition Activated By Timer" },
+ { 0x5E, 0x0A, "STANDBY_Y Condition Activated By Command" },
{ 0x5E, 0x41, "Power State Change To Active" },
{ 0x5E, 0x42, "Power State Change To Idle" },
{ 0x5E, 0x43, "Power State Change To Standby" },
@@ -2237,6 +2319,7 @@ static const struct {
{ 0x67, 0x08, "Assign Failure Occurred" },
{ 0x67, 0x09, "Multiply Assigned Logical Unit" },
{ 0x67, 0x0A, "Set Target Port Groups Command Failed" },
+ { 0x67, 0x0B, "ATA Device Feature Not Enabled" },
{ 0x68, 0x00, "Logical Unit Not Configured" },
{ 0x69, 0x00, "Data Loss On Logical Unit" },
{ 0x69, 0x01, "Multiple Logical Unit Failures" },
@@ -2265,6 +2348,8 @@ static const struct {
{ 0x72, 0x03, "Session Fixation Error - Incomplete Track In Session" },
{ 0x72, 0x04, "Empty Or Partially Written Reserved Track" },
{ 0x72, 0x05, "No More Track Reservations Allowed" },
+ { 0x72, 0x06, "RMZ Extension Is Not Allowed" },
+ { 0x72, 0x07, "No More Test Zone Extensions Are Allowed" },
{ 0x73, 0x00, "CD Control Error" },
{ 0x73, 0x01, "Power Calibration Area Almost Full" },
{ 0x73, 0x02, "Power Calibration Area Is Full" },
@@ -2272,6 +2357,37 @@ static const struct {
{ 0x73, 0x04, "Program Memory Area Update Failure" },
{ 0x73, 0x05, "Program Memory Area Is Full" },
{ 0x73, 0x06, "RMA/PMA Is Almost Full" },
+ { 0x73, 0x10, "Current Power Calibration Area Almost Full" },
+ { 0x73, 0x11, "Current Power Calibration Area Is Full" },
+ { 0x73, 0x17, "RDZ Is Full" },
+ { 0x74, 0x00, "Security Error" },
+ { 0x74, 0x01, "Unable To Decrypt Data" },
+ { 0x74, 0x02, "Unencrypted Data Encountered While Decrypting" },
+ { 0x74, 0x03, "Incorrect Data Encryption Key" },
+ { 0x74, 0x04, "Cryptographic Integrity Validation Failed" },
+ { 0x74, 0x05, "Error Decrypting Data" },
+ { 0x74, 0x06, "Unknown Signature Verification Key" },
+ { 0x74, 0x07, "Encryption Parameters Not Useable" },
+ { 0x74, 0x08, "Digital Signature Validation Failure" },
+ { 0x74, 0x09, "Encryption Mode Mismatch On Read" },
+ { 0x74, 0x0A, "Encrypted Block Not Raw Read Enabled" },
+ { 0x74, 0x0B, "Incorrect Encryption Parameters" },
+ { 0x74, 0x0C, "Unable To Decrypt Parameter List" },
+ { 0x74, 0x0D, "Encryption Algorithm Disabled" },
+ { 0x74, 0x10, "SA Creation Parameter Value Invalid" },
+ { 0x74, 0x11, "SA Creation Parameter Value Rejected" },
+ { 0x74, 0x12, "Invalid SA Usage" },
+ { 0x74, 0x21, "Data Encryption Configuration Prevented" },
+ { 0x74, 0x30, "SA Creation Parameter Not Supported" },
+ { 0x74, 0x40, "Authentication Failed" },
+ { 0x74, 0x61, "External Data Encryption Key Manager Access Error" },
+ { 0x74, 0x62, "External Data Encryption Key Manager Error" },
+ { 0x74, 0x63, "External Data Encryption Key Not Found" },
+ { 0x74, 0x64, "External Data Encryption Request Not Authorized" },
+ { 0x74, 0x6E, "External Data Encryption Control Timeout" },
+ { 0x74, 0x6F, "External Data Encryption Control Error" },
+ { 0x74, 0x71, "Logical Unit Access Not Authorized" },
+ { 0x74, 0x79, "Security Conflict In Translated Device" },
{ 0x00, 0x00, NULL }
};