Key Code Qualifier is an error-code returned by a SCSI device.
When a SCSI target device returns a check condition in response to a command, the initiator usually then issues a 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 sense data which includes three fields giving increasing levels of detail about the error:
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.
Category | Key | ASC | ASCQ | Error Condition |
---|---|---|---|---|
No Sense | 0 | 00 | 00 | No error |
0 | 5D | 00 | No sense - PFA threshold reached | |
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 | |
Not Ready | 2 | 04 | 00 | Not Ready - Cause not reportable. |
2 | 04 | 01 | Not Ready - becoming ready | |
2 | 04 | 02 | Not Ready - need initialise command (start unit) | |
2 | 04 | 03 | Not Ready - manual intervention required | |
2 | 04 | 04 | Not Ready - format in progress | |
2 | 04 | 09 | Not Ready - self-test in progress | |
2 | 31 | 00 | Not Ready - medium format corrupted | |
2 | 31 | 01 | Not Ready - format command failed | |
2 | 35 | 02 | Not Ready - enclosure services unavailable | |
2 | 3A | 00 | Not Ready - medium not present | |
2 | 3A | 01 | Not Ready - medium not present - tray closed | |
2 | 3A | 02 | Not Ready - medium not present - tray open | |
2 | 3A | 03 | Not Ready - medium not present - loadable | |
2 | 3A | 04 | Not Ready - medium not present - medium auxiliary memory accessible | |
2 | 4C | 00 | Diagnostic Failure - config not loaded | |
Medium Error | 3 | 02 | 00 | Medium Error - No Seek Complete |
3 | 03 | 00 | Medium Error - write fault | |
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 | 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 | |
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 | |
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 | |
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 | |
Data Protect | 7 | 20 | 02 | Access Denied - No Access Rights |
7 | 27 | 00 | Write Protect - command not allowed | |
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 | |
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 | |
Parallel ATA (PATA), originally AT Attachment, also known as Integrated Drive Electronics (IDE), is a standard interface designed for IBM PC-compatible computers. It was first developed by Western Digital and Compaq in 1986 for compatible hard drives and CD or DVD drives. The connection is used for storage devices such as hard disk drives, floppy disk drives, optical disc drives, and tape drives in computers.
The Internet Control Message Protocol (ICMP) is a supporting protocol in the Internet protocol suite. It is used by network devices, including routers, to send error messages and operational information indicating success or failure when communicating with another IP address. For example, an error is indicated when a requested service is not available or that a host or router could not be reached. ICMP differs from transport protocols such as TCP and UDP in that it is not typically used to exchange data between systems, nor is it regularly employed by end-user network applications.
Peripheral Component Interconnect (PCI) is a local computer bus for attaching hardware devices in a computer and is part of the PCI Local Bus standard. The PCI bus supports the functions found on a processor bus but in a standardized format that is independent of any given processor's native bus. Devices connected to the PCI bus appear to a bus master to be connected directly to its own bus and are assigned addresses in the processor's address space. It is a parallel bus, synchronous to a single bus clock. Attached devices can take either the form of an integrated circuit fitted onto the motherboard or an expansion card that fits into a slot. The PCI Local Bus was first implemented in IBM PC compatibles, where it displaced the combination of several slow Industry Standard Architecture (ISA) slots and one fast VESA Local Bus (VLB) slot as the bus configuration. It has subsequently been adopted for other computer types. Typical PCI cards used in PCs include: network cards, sound cards, modems, extra ports such as Universal Serial Bus (USB) or serial, TV tuner cards and hard disk drive host adapters. PCI video cards replaced ISA and VLB cards until rising bandwidth needs outgrew the abilities of PCI. The preferred interface for video cards then became Accelerated Graphics Port (AGP), a superset of PCI, before giving way to PCI Express.
Small Computer System Interface is a set of standards for physically connecting and transferring data between computers and peripheral devices, best known for its use with storage devices such as hard disk drives. SCSI was introduced in the 1980s and has seen widespread use on servers and high-end workstations, with new SCSI standards being published as recently as SAS-4 in 2017.
High-Level Data Link Control (HDLC) is a communication protocol used for transmitting data between devices in telecommunication and networking. Developed by the International Organization for Standardization (ISO), it is defined in the standard ISO/IEC 13239:2002.
Internet Small Computer Systems Interface or iSCSI is an Internet Protocol-based storage networking standard for linking data storage facilities. iSCSI provides block-level access to storage devices by carrying SCSI commands over a TCP/IP network. iSCSI facilitates data transfers over intranets and to manage storage over long distances. It can be used to transmit data over local area networks (LANs), wide area networks (WANs), or the Internet and can enable location-independent data storage and retrieval.
Disk formatting is the process of preparing a data storage device such as a hard disk drive, solid-state drive, floppy disk, memory card or USB flash drive for initial use. In some cases, the formatting operation may also create one or more new file systems. The first part of the formatting process that performs basic medium preparation is often referred to as "low-level formatting". Partitioning is the common term for the second part of the process, dividing the device into several sub-devices and, in some cases, writing information to the device allowing an operating system to be booted from it. The third part of the process, usually termed "high-level formatting" most often refers to the process of generating a new file system. In some operating systems all or parts of these three processes can be combined or repeated at different levels and the term "format" is understood to mean an operation in which a new disk medium is fully prepared to store files. Some formatting utilities allow distinguishing between a quick format, which does not erase all existing data and a long option that does erase all existing data.
Modbus or MODBUS is a client/server data communications protocol in the application layer. It was originally designed for use with programmable logic controllers (PLCs), but has become a de facto standard communication protocol for communication between industrial electronic devices in a wide range of buses and networks.
In computing, Serial Attached SCSI (SAS) is a point-to-point serial protocol that moves data to and from computer-storage devices such as hard disk drives, solid-state drives and tape drives. SAS replaces the older Parallel SCSI bus technology that first appeared in the mid-1980s. SAS, like its predecessor, uses the standard SCSI command set. SAS offers optional compatibility with Serial ATA (SATA), versions 2 and later. This allows the connection of SATA drives to most SAS backplanes or controllers. The reverse, connecting SAS drives to SATA backplanes, is not possible.
In computing, a word is the natural unit of data used by a particular processor design. A word is a fixed-sized datum handled as a unit by the instruction set or the hardware of the processor. The number of bits or digits in a word is an important characteristic of any specific processor design or computer architecture.
In computer science, a record-oriented filesystem is a file system where data is stored as collections of records. This is in contrast to a byte-oriented filesystem, where the data is treated as an unformatted stream of bytes. There are several different possible record formats; the details vary depending on the particular system. In general the formats can be fixed-length or variable length, with different physical organizations or padding mechanisms; metadata may be associated with the file records to define the record length, or the data may be part of the record. Different access methods for records may be provided, for example records may be retrieved in sequential order, by key, or by record number.
In computing, channel I/O is a high-performance input/output (I/O) architecture that is implemented in various forms on a number of computer architectures, especially on mainframe computers. In the past, channels were generally implemented with custom devices, variously named channel, I/O processor, I/O controller, I/O synchronizer, or DMA controller.
CANopen is a communication protocol stack and device profile specification for embedded systems used in automation. In terms of the OSI model, CANopen implements the layers above and including the network layer. The CANopen standard consists of an addressing scheme, several small communication protocols and an application layer defined by a device profile. The communication protocols have support for network management, device monitoring and communication between nodes, including a simple transport layer for message segmentation/desegmentation. The lower level protocol implementing the data link and physical layers is usually Controller Area Network (CAN), although devices using some other means of communication can also implement the CANopen device profile.
Parallel SCSI is the earliest of the interface implementations in the SCSI family. SPI is a parallel bus; there is one set of electrical connections stretching from one end of the SCSI bus to the other. A SCSI device attaches to the bus but does not interrupt it. Both ends of the bus must be terminated.
The Stream Control Transmission Protocol (SCTP) has a simpler basic packet structure than TCP. Each consists of two basic sections:
SCSI / ATA Translation (SAT) is a set of standards developed by the T10 subcommittee, defining how to communicate with ATA devices through a SCSI application layer. The standard attempts to be consistent with the SCSI architectural model, the SCSI Primary Commands, and the SCSI Block Commands standards.
The PDP-11 architecture is a 16-bit CISC instruction set architecture (ISA) developed by Digital Equipment Corporation (DEC). It is implemented by central processing units (CPUs) and microprocessors used in PDP-11 minicomputers. It was in wide use during the 1970s, but was eventually overshadowed by the more powerful VAX architecture in the 1980s.
The UNI/O bus is an asynchronous serial bus created by Microchip Technology for low speed communication in embedded systems. The bus uses a master/slave configuration, requiring one signal to pass data between devices. The first devices supporting the UNI/O bus were released in May 2008.
The IBM System/360 architecture is the model independent architecture for the entire S/360 line of mainframe computers, including but not limited to the instruction set architecture. The elements of the architecture are documented in the IBM System/360 Principles of Operation and the IBM System/360 I/O Interface Channel to Control Unit Original Equipment Manufacturers' Information manuals.
Constrained Application Protocol (CoAP) is a specialized UDP-based Internet application protocol for constrained devices, as defined in RFC 7252. It enables those constrained devices called "nodes" to communicate with the wider Internet using similar protocols. CoAP is designed for use between devices on the same constrained network, between devices and general nodes on the Internet, and between devices on different constrained networks both joined by an internet. CoAP is also being used via other mechanisms, such as SMS on mobile communication networks.