SCSI State Error Messages
State Message | Sense Key | Comments |
ST_RESET | 0x00 | SCSI chip reset by reset command or power-up. |
ST_SELECT | 0x11 | Selection of target complete (after C93SELATN). |
ST_SATOK | 0x16 | Select-And-Transfer completed successfully, that is, all phases have completed in a normal manner. |
ST_TR_DATAOUT | 0x18 | Transfer cmd done, target requesting data. |
ST_TR_DATAIN | 0x19 | Transfer cmd done, target sending data. |
ST_TR_STATIN | 0x1b | Target is sending status in. |
ST_TR_MSGIN | 0x1f | Transfer cmd done, target sending msg. |
ST_TRANPAUSE | 0x20 | Transfer cmd has paused with ACK. |
ST_SAVEDP | 0x21 | Save Data Pointers message during SAT normal state when device is disconnecting from the bus. |
ST_A_RESELECT | 0x27 | Reselected after disc (93A). |
ST_UNEXPDISC | 0x41 | An unexpected disconnect device disconnected without sending a disconnect message; sometimes happens when devices with removable media have had the media removed during a transfer. |
ST_PARITY | 0x43 | Cmd terminated due to parity error on the SCSI bus. |
ST_PARITY_ATN | 0x44 | Cmd terminated due to parity error (ATN is asserted so that host can send a message to device; the transfer is just aborted). |
ST_TIMEOUT | 0x42 | Time-out during Select or Reselect, that is, the device never responded to an attempt to select it; normally seen only during hardware inventory probing, but sometimes happens after a SCSI bus reset if device takes a long time to recover from the reset or is powered off. |
ST_INCORR_DATA | 0x47 | Incorrect message or status byte. |
ST_UNEX_RDATA | 0x48 | Unexpected receive data phase device tried to send more data than the SCSI chip is programmed to expect. This can be OK, as when a high-level request is made to transfer more data than the DMA hardware can map on a single request. In this case, simply reprogram the DMA hardware for the next chunk of data and restart the transfer (but don't send a new SCSI command to the device). When printed as part of an error message, it can sometimes be caused by a SCSI cabling problem, or (particularly with devscsi user drivers) by a mismatch in the byte count given to the driver and the byte count implied by the SCSI command sent to the device. |
ST_UNEX_SDATA | 0x49 | Unexpected send data phase (same as above, but device is asking for more data). |
ST_UNEX_CMDPH | 0x4a | Unexpected cmd phase |
ST_UNEX_SSTATUS | 0x4b | Unexpected send status phases occur at the end of SCSI command (that is, byte count remaining is 0); if they happen at other times, the chip interrupts. This can happen when you ask a device for more data than it can give you, and in this case, you just return a short I/O count to the caller. When printed as part of an error message, it usually implies a cabling or termination problem. |
ST_UNEX_RMESGOUT | 0x4e | Unexpected request message out phase usually indicates a SCSI cabling problem. |
ST_UNEX_SMESGIN | 0x4f | Unexpected send message in phase usually indicates a SCSI cabling problem; also happens when device sends a disconnect message in normal use when preparing to disconnect from the bus. |
ST_RESELECT | 0x80 | WD33C93 has been reselected. |
ST_93A_RESEL | 0x81 | Reselected while idle (93A). |
ST_DISCONNECT | 0x85 | Disconnect has occurred. |
ST_NEEDCMD | 0x8a | Target is ready for a cmd. |
ST_REQ_SMESGOUT | 0x8e | REQ signal for send message out. |
ST_REQ_SMESGIN | 0x8f | REQ signal for send message in above 3 usually seen only during sync negotiations. |
Phases During a Select-and-Transfer Command
Phase Message | Sense Key | Comments |
PH_NOSELECT | 0x00 | Selection not successful. |
PH_SELECT | 0x10 | Selection successful. |
PH_IDENTSEND | 0x20 | Identify message sent (during selection when sending initial command to a device). Phase 30 indicates none of the cmd bytes have yet been sent; every cmd byte sent increments that by one. |
PH_CDB_START | 0x30 | Start of CDB transfers. |
PH_CDB_6 | 0x36 | 6th cmd byte sent. |
PH_CDB_10 | 0x3a | 0xAth cmd byte sent. |
PH_CDB_12 | 0x3c | 0xCth cmd byte sent. |
PH_SAVEDP | 0x41 | Save data pointers. |
PH_DISCRECV | 0x42 | Disconnect message received. |
PH_DISCONNECT | 0x43 | Target disconnected. |
PH_RESELECT | 0x44 | Original target reselected. |
PH_IDENTRECV | 0x45 | Correct identify (right LUN) message received (during reselection). |
PH_DATA | 0x46 | Data transfer completed (expect status next). |
PH_STATUSRECV | 0x50 | Status byte received (expect cmd complete next). |
PH_COMPLETE | 0x60 | Command complete message received; SCSI command is finished, and SCSI bus is free. |