SCSI Model Flash Drive --- SCS-xxxxBA Series --- Command Specification 2002-04-10 1/9
SCSI Commands 1. CDB Command from the initiator to the drives in this series is performed by a CDB (Command Descriptor Block). CDBs are classified into sizes: 6, 10, and 12-byte length. Their basic formats will be shown below. 0 Operation Code 1 LUN 2 4 5 Reserved Flag(0) Link(0) 6-byte CDB 0 Operation Code 1 LUN Reserved 2 4 5 6 7 8 9 Reserved Flag(0) Link(0) 10-byte CDB 0 Operation Code 1 LUN Reserved 2 4 5 6 7 8 9 10 11 Reserved Flag(0) Link(0) 12-byte CDB 2002-04-10 2/9
Reserved, Link, Flag, RelAdr, and LUN used in common by each CDB will be described below. (1) Reserved This field must be set to 0. The CHECK CONDITION status is returned otherwise. (2) Link Since the drive in this series does not support Link, this field must be set to 0. The CHECK CONDITION status is returned otherwise. () Flag Since the drive in this series does not support Flag, this field must be set to 0. The CHECK CONDITION status is returned otherwise. (4) RelAdr Since the drive in this series does not support RelAdr, this field must be set to 0. (5) LUN (Logical Unit Number) The drive in this series always sets this field to 0. If a value other than 0 is set, the drive accepts the INQUIRY(12h) and REQUEST SENSE(0h) commands, and for other commands, it returns the CHECK CONDITION status. When receiving a command with an Identify message from the initiator, the drive in this series reefers to LUN in the Identify message and ignores the LUN in the CDB. 2. Supported commands The drive in this series supports the commands listed below. Code 00h 01h 0h 04h 07h 08h 0Ah 0Bh 12h 15h 16h 17h 1Ah 1Bh 1Ch 1Dh 25h 28h 2Ah 2Bh 2Eh 2Fh 7h 55h 5Ah E0h E1h E8h EAh Command TEST UNIT READY REZERO UNIT REQUEST SENSE FORMAT UNIT REASSIGN BLOCKS READ(6) WRITE(6) SEEK(6) INQUIRY MODE SELECT RESERVE UNIT RELEASE UNIT MODE SENSE START/STOP UNIT RECEIVE DIAGNOSTIC RESULT SEND DIAGNOSTIC READ CAPACITY READ(10) WRITE(10) SEEK(10) WRITE AND VERIFY(10) VERIFY(10) READ DEFECT DATA MODE SELECT(10) MODE SENSE(10) READ DELAY CHECK WRITE DELAY CHECK DUAL EDGE READ DUAL EDGE WRITE 2002-04-10 /9
. Unit attention condition Immediately after the power of the drive in this series is turned on or immediately after a reset according to the SCSI RESET and BUS DEVICE RESET messages, 06-29-00 (POWER ON, RESET, OR BUS DEVICE RESET OCCURRED) is retained as error information at each initiator until the retention is cancelled by a command from the initiator. Response to commands in UNIT ATTENTION CONDITION and cancellation of the retention status are performed according to the following conditions. (1) The INQUIRY (12h) command is executed normally. The retention of UNIT ATTENTION CONDITION is not cancelled. (2) The REQUEST SENSE (0h) command is executed normally. As sense data transferred to the initiator, sense data that has generated UNIT ATTENTION CONDITION is returned. The retention of UNIT ATTENTION CONDITION is cancelled. () Commands other than those described above return the CHECK CONDITION status and cancel the retention of UNIT ATTENTION CONDITION. At this time, since UNIT ATTENTION=06h is written in a sense key in the sense data, the initiator can determine the cause of generation of UNIT ATTENTION CONDITION from the sense data by issuing the REQUEST SENSE command. 4. Sense data The drive in this series generates sense data in the following cases. (1) When the CHECK CONDITION status is returned during execution of the SCSI command. (2) When UNIT ATTENTION CONDITION is generated. Generated sense data is retained for the initiator that has issued the SCSI command. The retention of the sense data is cancelled in the following cases. (1) The retention of the sense data is cancelled when the initiator issues a new SCSI command. If the new command is the REQUEST SENSE (0h), the sense data being retained is transferred. (2) A command from an initiator other than the one for which the sense data is retained is accepted normally. () If RESET CONDITION occurs on a SCSI bus, or if an arbitrary initiator issues the Bus Device Reset message, UNIT ATTENTION CONDITION is generated, the sense data that has generated UNIT ATTENTION CONDITION is retained, and the previously retained sense data is lost. 2002-04-10 4/9
SCSI Messages The drive in this series supports the following messages. Code 00h 01h 02h 04h 05h 06h 07h 08h 0Ch 80-FFh Message Name COMMAND COMPLETE EXTEND MESSAGE SAVE DATA POINTER DISCONNECT INITIATOR DETECT ERROR ABORT MESSAGE REJECT NO OPERAION BUS DEVICE RESET IDENTIFY MESSAGE The drive in this series supports the following extend messages. Code Length Extend Message Name 01h 5 SYNCHRONUS TRANSFER MESSAGE 0h 4 WIDE TRANSFER REQUEST DEh 5 DUAL EDGE SUM CHECK The format of WIDE TRANSFER REQUEST will be shown below. 0 1 2 MSG 01 02 0 m If m = DEh, Dual Edge is designated, and No Operation (08h) is returned to the initiator to report that it is ready for Dual Edge transfer. Before Dual Edge transfer, it is also necessary to use Synchronous Transfer Message to set the synchronous transfer rate to 20 MB/s. If m is a value other than DEh, Message Reject is returned. The format of DUAL EDGE SUM CHECK will be shown below. 0 1 2 4 MSG 01 0 DE SUMH SUML After completion of the DUAL EDGE transfer status phase, the message above is transferred. After that, the Command Complete message is transferred. SCSI Status The data format of SCSI Status will be shown below. 0 0 0 Status Code 0 The drive in this series supports the following SCSI Status. 00h 02h 08h 18h Status GOOD CHECK CONDITION BUSY RESERVATION CONFLICT 2002-04-10 5/9
SCSI Command Descriptions 1. TEST UNIT READY [00h] The TEST UNIT READY command checks if a drive linked to the drive in this series is in the Ready state or not. 0 Operation Code(00h) 1 LUN(0) Reserved(0) 2 Reserved(0) Reserved(0) 4 Reserved(0) 5 Reserved(0) Flag(0) Link(0) Error codes for TEST UNIT READY will be listed below. 2. REZERO UNIT [01] The REZERO UNIT command calibrates a head. 0 Operation Code(01h) 1 LUN(0) Reserved(0) 2 Reserved(0) Reserved(0) 4 Reserved(0) 5 Reserved(0) Flag(0) Link(0) Error codes for REZERO UNIT will be listed below. 0 06 00 NO REFERENCE POSITION FOUND 2002-04-10 6/9
. REQUEST SENSE [0] The REQUEST SENSE command transfers sense information (error information) retained in the drive in this series to an initiator. 0 Operation Code(0h) 1 LUN(0) Reserved(0) 2 Reserved(0) Reserved(0) 4 Allocation Length 5 Reserved(0) Flag(0) Link(0) Allocation Length designates the number of data bytes to be transferred to an initiator. After this command is issued, sense information that has been retained by the drive in this series is cleared. Sense information in the following format is transferred to an initiator. 0 Valid(0) Error Code(70h) 1 Reserved(0) 2 Reserved(0) Sense Key 6 Information(0) 7 Additional Sense Length(0Ah) 8 11 Command Specific Information(0) 12 Additional Sense Code(ASC) 1 Additional Sense Code Qualifier(ASQ) 14 Reserved(0) 15 17 Sense Key Specific Sense key indicates brief error information. Additional Sense Code (ASC)/Additional Sense Code Qualifier (ASQ) indicate detailed error information. 2002-04-10 7/9
The following list shows errors reported in the drive in this series. 00 00 00 NO SENSE INFORMATION 02 04 00 NOT READY, CAUSE NOT REPORTABLE 02 04 01 LOGICAL UNIT IN PROCESS OF BECOMING READY 0 06 00 NO REFERENCE POSITION FOUND 0 0C 02 WRITE ERROR AUTO REALLOCATION FAILURE 0 11 00 UNRECOVERED READ ERROR 04 02 00 NO SEEK COMPLETE 04 2 00 NO DEFECT SPARE LOCATION AVAILABLE 04 40 NN DIAGNOSTIC FAILURE ON COMPONENT NN 04 47 00 PARITY ERROR 04 48 00 INITIATOR DETECTED ERROR 05 21 00 INVLID LBA ADDRESS 05 25 00 LOGICAL UNIT NOT SUPPORT 05 26 00 INVALID FIELD IN PARAMETER LIST 05 D 00 INVALID IDENTIFY FIELD 06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCURRED If sense code 02-04-04 (LOGICAL UNIT NOT READY, FORMAT IN PROGRESS) is reported, information indicating the progress of the formatting is set for Sense Key Specific. 15 SKSV Reserved(0) 16 17 Progress Indication This information makes sense only if SKSV = 1. Progress Indication indicates the completion rate of formatting with a denominator of 6556. 2002-04-10 8/9
4. FORMAT UNIT [04] The FORMAT UNIT command performs ERASE processing on a drive linked to the drive in this series. 0 Operation Code(04h) 1 LUN(0) FmtData CmpList(0) Defect List Format(0) 2 Reserved(0) Interleave 4 5 Reserved(0) Flag(0) Link(0) If the FmtData bit is 1, FORMAT UNIT Parameter list from an initiator must be transferred. The Interleave field is ignored. The data format of FORMAT UNIT Parameter list will be shown below. 0 Reserved(0) 1 0 0 0 0 0 0 Immed 0 2 Defect List Length(0) Only the Immed bit is supported. All other fields must be 0. If the Immed bit is 1, this command reports the status without waiting for the completion of formatting. During execution of formatting, this command responds to all commands except for the INQUIRY and REQUEST SENSE commands with CHECK CONDITION and retains 02-04-04 (LOGICAL UNIT NOT READY, FORMAT IN PROGRESS) as error information. If the Immed bit is 0, this command reports the status after completion of formatting. Error codes for FORMAT UNIT will be listed below. 0 0C 02 WRITE ERROR AUTO REALLOCATION FAILED 05 26 00 INVALID FIELD IN PARAMETER LIST 2002-04-10 9/9
5. REASSIGN BLOCKS [07] The REASSIGN BLOCKS command performs replacement processing on logical blocks in a drive. 0 Operation Code(07h) 1 LUN(0) Reserved(0) 2 Reserved(0) Reserved(0) 4 Reserved(0) 5 Reserved(0) Flag(0) Link(0) Since the drive in this series has no replacing function for arbitrary blocks (uses automatic replacement of a drive linked to the drive in this series), this command always retains 04-2-00 (NO DEFECT SPARE LOCATION AVAILABLE) as error information, and reports the CHECK CONDITION status. Error codes for REASSIGN BLOCKS will be listed below. 04 2 00 NO DEFECT SPARE LOCATION AVAILABLE 6. READ (6) [08] The READ(6) command transfers a designated number of blocks of data from a designated logical block address to an initiator. 0 Operation Code(08h) 1 LUN(0) 2 Logical Block Address 4 Transfer Length 5 Reserved(0) Flag(0) Link(0) Logical Block Address designates a logical block address at which transfer begins. Transfer Length designates the number of blocks to be transferred. If 0 is designated for Transfer Length, 256 blocks are transferred. Error codes for READ(6) will be listed below. 0 11 00 UNRECOVERED READ ERROR 2002-04-10 10/9
7. WRITE(6) [0A] The WRITE (6) command transfers a designated number of blocks of data from an initiator to a designated logical block address. 0 Operation Code(0Ah) 1 LUN(0) 2 Logical Block Address 4 Transfer Length 5 Reserved(0) Flag(0) Link(0) Logical Block Address designates a logical block address at which transfer begins. Transfer Length designates the number of blocks to be transferred. If 0 is designated for Transfer Length, 256 blocks are transferred. Error codes for WRITE(6) will be listed below. 0 0C 02 WRITE ERROR AUTO REALLOCATION FAILED 04 47 00 PARITY ERROR 8. SEEK(6) [0B] The SEEK (6) command shifts a head to a designated logical block address. 0 Operation Code(0Bh) 1 LUN(0) 2 Logical Block Address 4 Reserved(0) 5 Reserved(0) Flag(0) Link(0) Logical Block Address designates a logical block address to which a head is shifted. Error codes for SEEK(6) will be listed below. 0 02 00 NO SEEK COMPLETE 2002-04-10 11/9
9. INQUIRY [12] The INQUIRY command transfers information about a device to an initiator. 0 Operation Code(12h) 1 LUN Reserved(0) 2 Reserved(0) Reserved(0) 4 Allocation Length 5 Reserved(0) Flag(0) Link(0) Allocation Length designates the number of data bytes to be transferred to an initiator. Executing this command does not clear error information 06-29-00 (POWER ON, RESET, OR BUS DEVICE RESET OCCURRED). The format of INQUIRY DATA to be transferred to an initiator will be shown below. 0 Qualifier(0) Peripheral Device Type(0) 1 RMB(0) Device Type Modifier(0) 2 ISO Version(0) ECMA Version(0) ANSI Version(2) Reserved(0) Response Data Format(2) 4 Additional Length() 5 Reserved(0) 6 Reserved(0) 7 REL_A(0) WB_2(0) WB_16(0) Sync(1) Link(0) TTD(0) CmdQu(0) SftRe(0) 8 15 16 1 2 5 6 95 96 22 Vendor Information HAGIWARA Product Identifier SCS-xxxxB Firmware Revision Level nnnn Reserved(0) Vendor Specific If a value other than 0 is designated in the LUN field, as an exception, Qualifier=, Peripheral Device Type = 1Fh is set. 2002-04-10 12/9
10. MODE SELECT (6) [15] The MODE SELECT(6) command sets various operations of a device. 0 Operation Code(15h) 1 LUN(0) PF Reserved(0) SP 2 Reserved(0) Reserved(0) 4 Parameter List Length 5 Reserved(0) Flag(0) Link(0) The PF bit and SP bit are ignored. Parameter List Length designates the number of bytes of MODE Parameter List to be transferred from an initiator. The format of MODE Parameter List is shown below. 0 4 11 12 n Mode Parameter Header Block Descriptor Page Descriptor(s) Mode Parameter List consists of 4 bytes of Mode Page Header, 8 bytes of Block Descriptor (if necessary), and variable number of bytes of Page Descriptor. The data format of Mode Parameter Header will be shown below. 0 Mode Data Length 1 Medium Type(0) 2 Reserved(0) Block Descriptor Length(0 or 8) Only Block Descriptor Length in MODE Parameter Header is examined. If Block Descriptor Length is 0, it is assumed that Block Descriptor is not present. If Block Descriptor Length is 8, it is assumed that Block Descriptor is present subsequent to MODE Parameter Header. Otherwise, this command retains 05-26-00 (INVALID FIELD IN PARAMETER LIST) as error information and reports the CHECK CONDITION status. 2002-04-10 1/9
The data format of Block Descriptor will be shown below. 0 Density Code(0) 1 2 Number of Blocks 4 Reserved(0) 5 6 Block Length in s(512) 7 The Number of Blocks field and Density Code are ignored. Block Length in s must always be 512. Otherwise, this command retains 05-26-00(INVALID FIELD IN PARAMETER LIST) as error information, and reports the CHECK CONDITION status. 0 0 0 Page Code 1 Page Length 2 n Mode Parameter See 1. MODE SENSE (6) [1A] for more detail information about Page Descriptor. Error codes for MODE SELECT (6) will be listed below. 05 26 00 INVALID FIELD IN PARAMETER LIST 2002-04-10 14/9
11. RESERVE UNIT [16] The RESERVE UNIT command reserves the drive for a specific initiator. 0 Operation Code(16h) 1 LUN(0) SPT Third Party ID 0 2 Reserved(0) Reserved(0) 4 Reserved(0) 5 Reserved(0) Flag(0) Link(0) If the SPT bit is 1, Third Party ID is used as the number of an initiator to be reserved. If the SPT bit is 0, the drive is reserved for an initiator that has issued the command. Reservation by this command is retained until any of the following conditions occurs. (1) The reservation has been updated by the RESERVE UNIT command from a reserved initiator. (2) The reservation has been cancelled by the RELEASE command from a reserved initiator. () The BUS DEVICE RESET message has been issued from any initiator. (4) A hardware reset has occurred. When the drive in this series are reserved by an initiator, if an unreserved initiator issues a command other than the REQUEST SENSE, INQUIRY, and RELEASE commands, this command returns the RESERVATION CONFLICT status to reject the execution of the issued command. Error codes for RESERVE UNIT will be listed below. 2002-04-10 15/9
12. RELASE UNIT [17h] The RELEASE UNIT command releases a reservation status that has been set by the RESERVE UNIT command. 0 Operation Code(17h) 1 LUN(0) SPT Third Party ID 0 2 Reserved(0) Reserved(0) 4 Reserved(0) 5 Reserved(0) Flag(0) Link(0) If the SPT bit is 1, Third Party ID is used as the number of an initiator the reservation of which is released. If the SPT bit is 0, the reservation of an initiator that has issued the RESERVE UNIT command. When the drive in this series is not in the reserved state, even if the RELEASE command is issued, it is not considered to be error. Error codes for RELEASE UNIT will be listed below. 2002-04-10 16/9
1. MODE SENSE (6) [1A] The MODE SENSE (6) command transfers mode parameters to an initiator. 0 Operation Code(1Ah) 1 LUN(0) 0 DBD Reserved(0) 2 PC Page Code Reserved(0) 4 Allocation Length 5 Reserved(0) Flag(0) Link(0) Allocation Length designates the number of bytes of mode data to be transferred to an initiator. If DBD (Disable Block Descriptor) is 1, Block Descriptor is not transferred. PC (Page Control) designates the type of Page Descriptor to be transferred. 7 6 Parameter Type 0 0 Current Value 0 1 Changeable Value 1 0 Default Value 1 1 Save Value Page Code supports the following pages. Page Code 01h 0h 04h 08h Fh Description Read/Write Recovery Page Format Device Page Rigid Disk Geometry Page Caching Page All Page If Page Code Fh is designated, all Page Descriptors are transferred to an initiator. 0 4 11 12 N Mode Parameter Header Block Descriptor Page Descriptor(s) Mode Parameter List consists of 4 bytes of Mode Page Header, 8 bytes of Block Descriptor (if DBD = 0), and a variable number of bytes of Page Descriptor. 2002-04-10 17/9
The data format of Mode Parameter Header will be shown below. 0 Mode Data Length 1 Medium Type(0) 2 WP(0) Reserved(0) Block Descriptor Length(0 or 8) MODE Parameter Length indicates the number of bytes of subsequent mode data. WP and Medium Type are always set to 0. If Block Descriptor Length is 0, Block Descriptor is not present. A value of 8 of Block Descriptor Length indicates that Block descriptor is present subsequent to MODE Parameter Header. The data format of Block Descriptor will be shown below. 0 Density Code(0) 1 2 Number of Blocks 4 Reserved(0) 5 6 7 Block Length in s(512) The Number of Blocks field indicates the total number of blocks of the drive. Block Length in s indicates the number of bytes per block, and is always set to 512. 0 PS 0 Page Code 1 Page Length 2 N Mode Parameter The value of 1 of PS indicates that the page can be saved. Page Length indicates the number of bytes of subsequent Page Descriptor. The detailed description of each Page Descriptor will be shown below. 2002-04-10 18/9
Read-Write Error Recovery Page 0 PS(0) 0 Page Code(01h) 1 Page Length(0Ah) 2 AWRE(1) ARRE(0) TB(0) RC(0) EER(0) PER(0) DTE(0) DCR(0) Read Retry Count(01h) 4 Correction Span(0) 5 Head Offset Count(0) 6 Data Strobe Offset Count(0) 7 Reserved(0) 8 Write Retry Count(01h) 9 Reserved(0) 10 11 Recovery Time Limit(0ffffh) 2002-04-10 19/9
Format Device Page 0 PS(0) 0 Page Code(0h) 1 Page Length(16h) 2 4 5 6 7 8 9 10 11 12 1 14 15 16 17 18 19 Tracks per Zone(0) Alternate Sectors per Zone(0) Alternate Tracks per Zone(0) Alternate Tracks per Disk(0) Sectors per Track Data s per Physical Sector(200h) Interleave(1) Track Skew Factor(1) Cylinder Skew Factor(1) 20 SSEC(1) HSEC(0) RMB(0) SURF(0) Reserved(0) 21 Reserved(0) 22 Reserved(0) 2 Reserved(0) Sectors per Track indicates the number of sectors per track of a drive linked to the drive in this series. Data s per Physical Sector indicates the number of bytes per block, and is always set to 512. 2002-04-10 20/9
Rigid Disk Geometry Page 0 PS 0 Page Code(05h) 1 Page Length(16h) 2 Number of cylinders 4 5 Number of heads 6 7 Starting cylinder-write precompensation(0) 8 9 10 Starting cylinder-reduced write current(0) 11 12 1 Drive step rate(0) 14 15 Landing zone cylinder(0) 16 17 Reserved(0) RPL 18 Rotation Offset(0) 19 Reserved(0) 20 21 Medium rotation rate(5400) 22 Reserved(0) 2 Reserved(0) Number of cylinders indicates the total number of cylinders of a drive linked to the drive in this series. Number of heads indicates the number of heads of a drive linked to the drive in this series. 2002-04-10 21/9
Caching Page 0 PS 0 Page Code(08h) 1 Page Length(0Ah) 2 Reserved(0) WCE(0) MF(0) RCD(0) Read Retention Priority(0) Write Retention Priority(0) 4 5 Disable Pre-fetch Transfer Length(0) 6 7 Minimum Pre-fetch(0) 8 9 Maximum Pre-fetch(0) 10 11 Maximum Pre-fetch Ceiling(0) Error codes for MODE SENSE (6) will be listed below. 2002-04-10 22/9
14. START/STOP UNIT [1B] The START/STOP UNIT command starts and stops the rotation of a spindle motor of a drive. 0 Operation Code(1Bh) 1 LUN(0) Reserved(0) Immed 2 Reserved(0) Reserved(0) 4 Reserved(0) LoEj(0) Start 5 Reserved(0) Flag(0) Link(0) If the Immed bit is 0, this command waits for the completion of the processing, and then reports the status. If the Immed bit is 1, this command reports the status without waiting for the completion of the processing. If the Start bit is 0, this command stops the rotation of the spindle motor of a drive linked to the drive in this series. If the Start bit is 1, this command starts the rotation of the spindle motor of a drive linked to the drive in this series. Error codes for START/STOP UNIT will be listed below. 02 04 00 NOT READY, CAUSE NOT REPORTABLE 2002-04-10 2/9
15. RECEIVE DIAGNOSTIC RESULT [1C] The RECEIVE DIAGNOSTIC RESULT command transfers a diagnostic result retained in the drive by the execution of the SEND DIAGNOSTIC command to an initiator. 0 Operation Code(1Ch) 1 LUN(0) Reserved(0) 2 Reserved(0) 4 Parameter List Length 5 Reserved(0) Flag(0) Link(0) This command is implemented for compatibility. Since a diagnostic result retained by the SEND DIAGNOSTIC command is not present, no data transfer occurs. Error codes for RECEIVE DIAGNOSTIC RESULT will be listed below. 16. END DIAGNOSTIC [1D] The SEND DIAGNOSTIC command performs self diagnostics for a drive. 0 Operation Code(1Dh) 1 LUN(0) PF 0 SlfTst(1) DevOfl UntOfl 2 Reserved(0) Parameter List Length 4 5 Reserved(0) Flag(0) Link(0) Only SlfTst=1 is supported. PF, DevOfl, UntOfl, and Parameter List Length are ignored. Error codes for SEND DIAGNOSTIC will be listed below. SenseKe y ASC ASQ Description 04 40 NN DIAGNOSTIC FAILURE ON COMPONENT NN 2002-04-10 24/9
17. READ CAPACITY [25] The READ CAPACITY command transfers information about the capacity of a drive to an initiator. 0 Operation Code(25h) 1 LUN(0) Reserved(0) 2 Reserved(0) Reserved(0) 4 Reserved(0) 5 Reserved(0) 6 Reserved(0) 7 Reserved(0) 8 Reserved(0) 9 Reserved(0) Flag(0) Link(0) This command transfers data in the following format to an initiator. 0 1 2 4 5 6 7 Last Logical Block Address Block Length in s(512) Last Logical Block Address indicates the last accessible logical block address of a drive linked to the drive in this series. Block Length in s indicates the number of bytes per block, and is always set to 512. Error codes for READ CAPACITY will be listed below. 2002-04-10 25/9
18. READ(10) [28] The READ (10) command transfers a designated number of blocks of data from a designated logical block address to an initiator. 0 Operation Code(28h) 1 LUN(0) Reserved(0) 2 4 Logical Block Address 5 6 Reserved(0) 7 Transfer Length 8 9 Reserved(0) Flag(0) Link(0) Logical Block Address designates the first logical block address to be transferred. Transfer Length designates the number of blocks to be transferred. A value 0 of Transfer Length causes no data transfer. Error codes for READ (10) will be listed below. 0 11 00 UNRECOVERED READ ERROR 05 21 00 LOGICAL BLOCK ADDRESS OUT OF RANGE 2002-04-10 26/9
19. WRITE(10) [2A] The WRITE (10) command transfers a designated number of blocks of data from an initiator to a designated logical block address. 0 Operation Code(2Ah) 1 LUN(0) Reserved(0) 2 4 Logical Block Address 5 6 Reserved(0) 7 Transfer Length 8 9 Reserved(0) Flag(0) Link(0) Logical Block Address designates a logical block address at which transfer begins. Transfer Length designates the number of blocks to be transferred. The value 0 of Transfer Length causes no data transfer. Error codes for WRITE(10) will be listed below. 0 0C 02 WRITE ERROR AUTO REALLOCATION FAILED 04 47 00 PARITY ERROR 05 21 00 LOGICAL BLOCK ADDRESS OUT OF RANGE 2002-04-10 27/9
20. SEEK(10) [2B] The SEEK (10) command shifts a head to a designated logical block address. 0 Operation Code(2Bh) 1 LUN(0) Reserved(0) 2 4 Logical Block Address 5 6 Reserved(0) 7 Reserved(0) 8 Reserved(0) 9 Reserved(0) Flag(0) Link(0) Logical Block Address designates a logical block address to which a head is shifted. Error codes for SEEK (10) will be listed below. 04 02 00 NO SEEK COMPLETE 05 21 00 LOGICAL BLOCK ADDRESS OUT OF RANGE 2002-04-10 28/9
21. WRITE AND VERIFY(10) [2E] The WRITE AND VERIFY (10) command transfers a designated number of blocks of data from an initiator to a designated logical block address, then verifies that data can be read successfully. 0 Operation Code(2Eh) 1 LUN(0) Reserved(0) Chk(0) 0 2 4 Logical Block Address 5 6 Reserved(0) 7 Transfer Length 8 9 Reserved(0) Flag(0) Link(0) Logical Block Address designates a logical block address at which transfer starts. Transfer Length designates the number of blocks to be transferred. The value 0 of Transfer Length causes no data transfer and verification. Error codes for WRITE AND VERIFY (10) will be listed below. 0 0C 02 WRITE ERROR AUTO REALLOCATION FAILED 05 21 00 LOGICAL BLOCK ADDRESS OUT OF RANGE 2002-04-10 29/9
22. VERIFY(10) [2F] The VERIFY (10) command verifies if a number of referenced blocks of data can be read successfully at a designated logical block address. 0 Operation Code(2Fh) 1 LUN(0) Reserved(0) Chk(0) 0 2 4 Logical Block Address 5 6 Reserved(0) 7 Verification Length 8 9 Reserved(0) Flag(0) Link(0) Logical Block Address designates a logical block address at which transfer begins. Verification Length designates the number of blocks to be referenced. The value of 0 of Verification Length causes no verification. The Chk bit is not supported, so must always be set to 0. Error codes for VERIFY (10) will be listed below. 0 11 00 UNRECOVERED READ ERROR 05 21 00 LOGICAL BLOCK ADDRESS OUT OF RANGE 2002-04-10 0/9
2. READ DEFECT DATA [7] The READ DEFECT DATA command transfers alternate information of a drive to an initiator. 0 Operation Code(7h) 1 LUN(0) Reserved(0) 2 Reserved(0) Plist Glist Defect List Format Reserved(0) 4 Reserved(0) 5 Reserved(0) 6 Reserved(0) 7 Allocation Length 8 9 Reserved(0) Flag(0) Link(0) Allocation Length designates the number of bytes of alternate information transferred to an initiator. The format of data transferred to an initiator will be shown below. 0 Reserved(0) 1 Reserved(0) Plist Glst Defect List Format 2 Defect List Length(0) Since a drive cannot obtain alternate information, data in the format above (indicating that there is no alternate information) is always transferred. Plist, Glist, and Defect List Format of CDB are not examined, and only the value is copied onto the field with a name identical to Defect list above. Error codes for READ DEFECT DATA will be listed below. 2002-04-10 1/9
24. MODE SELECT (10) [55] The MODE SELECT (10) command sets the various operations of a device. 0 Operation Code(55h) 1 LUN(0) PF Reserved(0) SP 2 Reserved(0) Reserved(0) 4 Reserved(0) 5 Reserved(0) 6 Reserved(0) 7 Parameter List Length 8 9 Reserved(0) Flag(0) Link(0) The PF bit and SP bit are ignored. Parameter List Length designates the number of bytes of MODE Parameter List transferred from an initiator. The format of MODE Parameter List will be shown below. 0 7 8 15 16 N Mode Parameter Header Block Descriptor Page Descriptor(s) Mode Parameter List consists of 8 bytes of Mode Page Header, 8 bytes of Block Descriptor (if necessary), and a variable number of bytes of Page Descriptors. The data format of Mode Parameter Header will be shown below. 0 1 Mode Data Length 2 Medium Type(0) Reserved(0) 4 Reserved(0) 5 Reserved(0) 6 7 Block Descriptor Length(0 or 8) In MODE Parameter Header, only Block Descriptor Length is examined. The value of 0 of Block Descriptor Length indicates that Block Descriptor is not present. The value of 8 indicates that Block Descriptor is present subsequent to MODE Parameter Header. Otherwise, this command retains 05-26-00(INVALID FIELD IN PARAMETER LIST) as error information, and reports the CHECK CONDITION status. 2002-04-10 2/9
The data format of Block Descriptor will be shown below. 0 Density Code(0) 1 2 Number of Blocks 4 Reserved(0) 5 6 Block Length in s(512) 7 The number of Blocks field and Density Code are ignored. Block Length in s must always be 512. Otherwise, this command retains 05-26-00 (INVALID FIELD IN PARAMETER LIST) as error information, and reports the CHECK CONDITION status. 0 0 0 Page Code 1 Page Length 2 n Mode Parameter See 1. MODE SENSE (6) [1A] for more detail information about Page Descriptor. Error codes for MODE SELECT (10) will be listed below. 05 26 00 INVALID FIELD IN PARAMETER LIST 2002-04-10 /9
25. MODE SENSE(10) [5A] The MODE SENSE (10) command transfers mode parameters to an initiator. 0 Operation Code(5Ah) 1 LUN(0) 0 DBD Reserved(0) 2 PC Page Code Reserved(0) 4 Reserved(0) 5 Reserved(0) 6 Reserved(0) 7 Allocation Length 8 9 Reserved(0) Flag(0) Link(0) Allocation Length designates the number of bytes of mode data to be transferred to an initiator. If DBD (Disable Block Descriptor) is 1, Block Descriptor is not transferred. PC (Page Control) designates a type of Page Descriptor to be transferred. 7 6 Parameter Type 0 0 Current Value 0 1 Changeable Value 1 0 Default Value 1 1 Save Value Page Code supports pages listed below. Page Code 01h 0h 04h 08h Fh Description Read/Write Recovery Page Format Device Page Rigid Disk Geometry Page Caching Page All Page If Page Code Fh is designated, all Page Descriptors are transferred to an initiator. 0 7 8 15 16 n Mode Parameter Header Block Descriptor Page Descriptor(s) Mode Parameter List consists of 4 bytes of Mode Page Header, 8 bytes of Block Descriptor (if DBD = 0), and a variable number of bytes of Page Descriptor. 2002-04-10 4/9
The data format of Mode Parameter Header will be shown below. 0 1 Mode Parameter Length 2 Medium Type(0) WP(0) Reserved(0) 4 Reserved(0) 5 Reserved(0) 6 7 Block Descriptor Length(0 or 8) MODE Parameter Length indicates the number of bytes of subsequent mode data. WP and Medium Type are always set to 0. The value of 0 of Block Descriptor Length indicates that Block Descriptor is not present. The value of 8 of Block Descriptor Length indicates that Block Descriptor is present subsequent to MODE Parameter Header. The data format of Block Descriptor will be shown below. 0 Density Code(0) 1 2 Number of Blocks 4 Reserved(0) 5 6 Block Length in s(512) 7 The Number of Blocks field indicates the total number of blocks of a drive. Block Length in s indicates the number of bytes per block, and is always set to 512. See 1 MODE SENSE (6) [1A] for more detail information about Page Descriptor. Error codes for MODE SENSE (10) will be listed below. 2002-04-10 5/9
26. READ DELAY CHECK[E0] READ DELAY CHECK is a read-data check command for DUAL EDGE transfer. 0 Operation Code(E0h) 1 LUN(0) Reserved(0) 2 Reserved(0) Initial Data Pattern 4 Pattern Control 5 Reserved(0) 6 Reserved(0) 7 Reserved(0) 8 Allocation Length(80h) 9 Reserved(0) Flag(0) Link(0) This command performs Dual Edge read transfer in a data pattern designated by Initial Data Pattern and Pattern Control. The number of transfers is always set to 128 bytes. After data transfer, this command further transfers sum check words in the MSG IN phase. Initial Data Pattern designates the first bytes in the data in phase. Pattern Control defines data subsequent to Initial Data Pattern. It designates data patterns in bits. Pattern Control SAME DECINV INCINV INVFF INV00 INV DEC INC INC DEC If 1 is set, incremented data transfer is performed. With the Initial Data Pattern value 00, transfer is performed in the order of 00 01 02 If 1 is set, decremented data transfer is performed. With the Initial Data Pattern value 00, data transfer is performed in the order of 00 FF FE INV If 1 is set, inverted data transfer is performed. With the Initial Data Pattern value 00, data transfer is performed in the order of 00 FF 00 FF INV00 (INV WORD Boundary with 00) If 1 is set, inverted data transfer is performed on every other byte. With the Initial Data Pattern value 55, data transfer is performed in the order of 55 00 AA 00 55 INVFF (INV WORD Boundary with FF) If 1 is set, inverted data transfer is performed on every other byte. With the Initial Data Pattern value 55, data transfer is performed in the order of 55 FF AA FF 55 INCINV (INC WORD Boundary with INV) If 1 is set, incremented data transfer is performed on every other byte. Inverted previous data is inserted between the incremented data. With the Initial Data Pattern value 00, data transfer is performed in the order of 00 FF 01 FE 02 DECINV (DEC WORD Boundary with INV) If 1 is set, decremented data transfer is performed every other byte. Inverted previous data is inserted between the decremented data. With the Initial Data Pattern value 00, data transfer is performed in the order of 00 FF FF 00 FE 01 FD SAME If 1 is set, a single pattern data transfer is performed. With the Initial Data Pattern value AA, data transfer is performed in the order of AA AA AA 2002-04-10 6/9
Error codes for READ DELAY CHECK will be listed below. 27. WRITE DELAY CHECK [E1] WRITE DELAY CHECK is a write data check command for DUAL EDGE transfer. 0 Operation Code(E1h) 1 LUN(0) Reserved(0) 2 Reserved(0) Initial Data Pattern 4 Pattern Control 5 Reserved(0) 6 Reserved(0) 7 Reserved(0) 8 Allocation Length(80h) 9 Reserved(0) Flag(0) Link(0) This command performs Dual Edge write transfer in a data pattern designated by Initial Data Pattern and Pattern Control. The number of transfers is always set to 128 bytes. After data transfer, this command further transfers sum check words in the MSG IN phase. On reception of an incorrect data pattern, this command reports the CHECK CONDITION status. On occurrence of a parity error during transfer, this command retains 04-47-00(PARITY ERROR) as error information, and reports the CHECK CONDITION status. Initial Data Pattern designates the first byte in the DATA IN phase. Pattern Control defines data subsequent to Initial Data Pattern. It designates a data pattern in bits. See 26. READ DELAY CHECK[E0] for more detail information about Pattern Control. Error codes for WRITE DELAY CHECK will be listed below. 04 47 00 PARITY ERROR 2002-04-10 7/9
28. DUAL EDGE READ [E8] The DUAL EDGE READ command transfers a designated number of blocks of data from a designated logical block address in DUAL EDGE to an initiator. 0 Operation Code(E8h) 1 LUN(0) Reserved(0) 2 4 Logical Block Address 5 6 Reserved(0) 7 Transfer Length 8 9 Reserved(0) Flag(0) Link(0) Logical Block Address designates a logical block address at which transfer begins. Transfer Length designates the number of blocks to be transferred. The Transfer Length value of 0 causes no data transfer. Error codes for DUAL EDGE READ will be listed below. 0 11 00 UNRECOVERED READ ERROR 05 21 00 LOGICAL BLOCK ADDRESS OUT OF RANGE 2002-04-10 8/9
29. DUAL EDGE WRITE [EA] The DUAL EDGE WRITE command transfers a designated number of blocks of data from an initiator to a designated logical block address in DUAL EDGE. 0 Operation Code(EAh) 1 LUN(0) Reserved(0) 2 4 Logical Block Address 5 6 Reserved(0) 7 Transfer Length 8 9 Reserved(0) Flag(0) Link(0) Logical Block Address designates a logical block address at which transfer begins. Transfer Length designates the number of blocks to be transferred. The Transfer Length value of 0 causes no data transfer. Error codes for DUAL EDGE WRITE will be listed below. 0 0C 02 WRITE ERROR AUTO REALLOCATION FAILED 04 47 00 PARITY ERROR 05 21 00 LOGICAL BLOCK ADDRESS OUT OF RANGE 2002-04-10 9/9