• No results found

Command Specification

N/A
N/A
Protected

Academic year: 2021

Share "Command Specification"

Copied!
39
0
0

Loading.... (view fulltext now)

Full text

(1)

SCSI Model Flash Drive

--- SCS3-xxxxBA Series ---

Command Specification

(2)

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 3 sizes: 6, 10, and 12-byte length. Their basic formats will be shown below.

Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code

1 LUN

2 3 4

5 Reserved Flag(0) Link(0)

6-byte CDB Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code

1 LUN Reserved

2 3 4 5 6 7 8

9 Reserved Flag(0) Link(0)

10-byte CDB Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code

1 LUN Reserved

2 3 4 5 6 7 8 9 10

11 Reserved Flag(0) Link(0)

12-byte CDB

(3)

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.

(3) 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(03h) 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 Command

00h TEST UNIT READY

01h REZERO UNIT

03h REQUEST SENSE

04h FORMAT UNIT

07h REASSIGN BLOCKS

08h READ(6) 0Ah WRITE(6) 0Bh SEEK(6) 12h INQUIRY

15h MODE SELECT

16h RESERVE UNIT

17h RELEASE UNIT

1Ah MODE SENSE

1Bh START/STOP UNIT

1Ch RECEIVE DIAGNOSTIC RESULT

1Dh SEND DIAGNOSTIC

25h READ CAPACITY

28h READ(10) 2Ah WRITE(10) 2Bh SEEK(10)

2Eh WRITE AND VERIFY(10) 2Fh VERIFY(10)

37h READ DEFECT DATA

55h MODE SELECT(10)

5Ah MODE SENSE(10)

E0h READ DELAY CHECK E1h WRITE DELAY CHECK E8h DUAL EDGE READ EAh DUAL EDGE WRITE

(4)

3. 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 (03h) 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.

(3) 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 (03h), 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. (3) 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.

(5)

SCSI Messages

The drive in this series supports the following messages.

Code Message Name

00h COMMAND COMPLETE

01h EXTEND MESSAGE

02h SAVE DATA POINTER

04h DISCONNECT

05h INITIATOR DETECT ERROR

06h ABORT

07h MESSAGE REJECT

08h NO OPERAION

0Ch BUS DEVICE RESET

80-FFh IDENTIFY MESSAGE

The drive in this series supports the following extend messages. Code Length Extend Message Name

01h 5 SYNCHRONUS TRANSFER MESSAGE

03h 4 WIDE TRANSFER REQUEST

DEh 5 DUAL EDGE SUM CHECK

The format of WIDE TRANSFER REQUEST will be shown below.

Byte 0 1 2 3

MSG 01 02 03 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.

Byte 0 1 2 3 4

MSG 01 03 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 Byte

The data format of SCSI Status Byte will be shown below. Bit

Byte 7 6 5 4 3 2 1 0

0 0 0 Status Byte Code 0

The drive in this series supports the following SCSI Status.

Byte Status

00h GOOD

02h CHECK CONDITION

08h BUSY

18h RESERVATION CONFLICT

(6)

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. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(00h)

1 LUN(0) Reserved(0)

2 Reserved(0)

3 Reserved(0)

4 Reserved(0)

5 Reserved(0) Flag(0) Link(0)

Error codes for TEST UNIT READY will be listed below.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2. REZERO UNIT [01]

The REZERO UNIT command calibrates a head. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(01h)

1 LUN(0) Reserved(0)

2 Reserved(0)

3 Reserved(0)

4 Reserved(0)

5 Reserved(0) Flag(0) Link(0)

Error codes for REZERO UNIT will be listed below.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

03 06 00 NO REFERENCE POSITION FOUND

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(7)

3. REQUEST SENSE [03]

The REQUEST SENSE command transfers sense information (error information) retained in the drive in this series to an initiator.

Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(03h)

1 LUN(0) Reserved(0)

2 Reserved(0)

3 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.

Bit

Byte 7 6 5 4 3 2 1 0

0 Valid(0) Error Code(70h)

1 Reserved(0)

2 Reserved(0) Sense Key

3

6 Information(0)

7 Additional Sense Length(0Ah)

8

11 Command Specific Information(0)

12 Additional Sense Code(ASC)

13 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.

(8)

The following list shows errors reported in the drive in this series.

SenseKey ASC ASQ Description

00 00 00 NO SENSE INFORMATION

02 04 00 NOT READY, CAUSE NOT REPORTABLE

02 04 01 LOGICAL UNIT IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

03 06 00 NO REFERENCE POSITION FOUND

03 0C 02 WRITE ERROR – AUTO REALLOCATION FAILURE

03 11 00 UNRECOVERED READ ERROR

04 02 00 NO SEEK COMPLETE

04 32 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 20 00 INVALID COMMAND OPERATION CODE

05 21 00 INVLID LBA ADDRESS

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORT

05 26 00 INVALID FIELD IN PARAMETER LIST

05 3D 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.

Bit

Byte 7 6 5 4 3 2 1 0

15 SKSV Reserved(0)

16 17

(MSB)

Progress Indication

(LSB) This information makes sense only if SKSV = 1.

Progress Indication indicates the completion rate of formatting with a denominator of 65536.

(9)

4. FORMAT UNIT [04]

The FORMAT UNIT command performs ERASE processing on a drive linked to the drive in this series. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(04h)

1 LUN(0) FmtData CmpList(0) Defect List Format(0)

2 Reserved(0)

3 4

(MSB)

Interleave

(LSB)

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. Bit

Byte 7 6 5 4 3 2 1 0

0 Reserved(0)

1 0 0 0 0 0 0 Immed 0

2 3

(MSB)

Defect List Length(0)

(LSB) 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.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

03 0C 02 WRITE ERROR – AUTO REALLOCATION FAILED

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

05 26 00 INVALID FIELD IN PARAMETER LIST

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(10)

5. REASSIGN BLOCKS [07]

The REASSIGN BLOCKS command performs replacement processing on logical blocks in a drive. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(07h)

1 LUN(0) Reserved(0)

2 Reserved(0)

3 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-32-00 (NO DEFECT SPARE LOCATION AVAILABLE) as error information, and reports the CHECK CONDITION status.

Error codes for REASSIGN BLOCKS will be listed below.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

04 32 00 NO DEFECT SPARE LOCATION AVAILABLE

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

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.

Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(08h)

1 LUN(0) (MSB)

2 Logical Block Address

3 (LSB)

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.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

03 11 00 UNRECOVERED READ ERROR

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(11)

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.

Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(0Ah)

1 LUN(0) (MSB)

2 Logical Block Address

3 (LSB)

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.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

03 0C 02 WRITE ERROR – AUTO REALLOCATION FAILED

04 47 00 PARITY ERROR

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

8. SEEK(6) [0B]

The SEEK (6) command shifts a head to a designated logical block address. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(0Bh)

1 LUN(0) (MSB)

2 Logical Block Address

3 (LSB)

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.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

03 02 00 NO SEEK COMPLETE

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(12)

9. INQUIRY [12]

The INQUIRY command transfers information about a device to an initiator. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(12h)

1 LUN Reserved(0)

2 Reserved(0)

3 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. Bit

Byte 7 6 5 4 3 2 1 0

0 Qualifier(0) Peripheral Device Type(0)

1 RMB(0) Device Type Modifier(0)

2 ISO Version(0) ECMA Version(0) ANSI Version(2)

3 Reserved(0) Response Data Format(2)

4 Additional Length()

5 Reserved(0)

6 Reserved(0)

7 REL_A(0) WB_32(0) WB_16(0) Sync(1) Link(0) TTD(0) CmdQu(0) SftRe(0)

8 15

Vendor Information ‘HAGIWARA‘ 16

31

Product Identifier ‘SCS3-xxxxB’ 32

35

Firmware Revision Level ‘nnnn’

36

95 Reserved(0)

96

223 Vendor Specific

If a value other than ‘0’ is designated in the LUN field, as an exception, Qualifier=3, Peripheral Device Type = 1Fh is set.

(13)

10. MODE SELECT (6) [15]

The MODE SELECT(6) command sets various operations of a device. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(15h)

1 LUN(0) PF Reserved(0) SP

2 Reserved(0)

3 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.

Bit

Byte 7 6 5 4 3 2 1 0

0

3 Mode Parameter Header

4

11 Block Descriptor

12

n 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. Bit

Byte 7 6 5 4 3 2 1 0

0 Mode Data Length

1 Medium Type(0)

2 Reserved(0)

3 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.

(14)

The data format of Block Descriptor will be shown below. Bit

Byte 7 6 5 4 3 2 1 0

0 Density Code(0)

1 2 3

(MSB)

Number of Blocks

(LSB)

4 Reserved(0)

5 6 7

(MSB)

Block Length in Bytes(512)

(LSB) The Number of Blocks field and Density Code are ignored.

Block Length in Bytes 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.

Bit

Byte 7 6 5 4 3 2 1 0

0 0 0 Page Code

1 Page Length

2

n Mode Parameter

See 13. MODE SENSE (6) [1A] for more detail information about Page Descriptor. Error codes for MODE SELECT (6) will be listed below.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

05 26 00 INVALID FIELD IN PARAMETER LIST

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(15)

11. RESERVE UNIT [16]

The RESERVE UNIT command reserves the drive for a specific initiator. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(16h)

1 LUN(0) SPT Third Party ID 0

2 Reserved(0)

3 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. (3) 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.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

05 20 00 INVALID COMMAND OPERATION CODE

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(16)

12. RELASE UNIT [17h]

The RELEASE UNIT command releases a reservation status that has been set by the RESERVE UNIT command. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(17h)

1 LUN(0) SPT Third Party ID 0

2 Reserved(0)

3 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.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

05 20 00 INVALID COMMAND OPERATION CODE

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(17)

13. MODE SENSE (6) [1A]

The MODE SENSE (6) command transfers mode parameters to an initiator. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(1Ah)

1 LUN(0) 0 DBD Reserved(0)

2 PC Page Code

3 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. Bit 7 Bit 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 Description

01h Read/Write Recovery Page 03h Format Device Page 04h Rigid Disk Geometry Page

08h Caching Page

3Fh All Page

If Page Code 3Fh is designated, all Page Descriptors are transferred to an initiator. Bit

Byte 7 6 5 4 3 2 1 0

0

3 Mode Parameter Header

4

11 Block Descriptor

12

N 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.

(18)

The data format of Mode Parameter Header will be shown below. Bit

Byte 7 6 5 4 3 2 1 0

0 Mode Data Length

1 Medium Type(0)

2 WP(0) Reserved(0)

3 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. Bit

Byte 7 6 5 4 3 2 1 0

0 Density Code(0)

1 2 3

(MSB)

Number of Blocks

(LSB)

4 Reserved(0)

5 6 7

(MSB)

Block Length in Bytes(512)

(LSB) The Number of Blocks field indicates the total number of blocks of the drive.

Block Length in Bytes indicates the number of bytes per block, and is always set to 512. Bit

Byte 7 6 5 4 3 2 1 0

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.

(19)

Read-Write Error Recovery Page Bit

Byte 7 6 5 4 3 2 1 0

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)

3 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

(MSB)

Recovery Time Limit(0ffffh)

(LSB)

(20)

Format Device Page Bit

Byte 7 6 5 4 3 2 1 0

0 PS(0) 0 Page Code(03h)

1 Page Length(16h)

2 3

(MSB)

Tracks per Zone(0)

(LSB) 4

5

(MSB)

Alternate Sectors per Zone(0)

(LSB) 6

7

(MSB)

Alternate Tracks per Zone(0)

(LSB) 8

9

(MSB)

Alternate Tracks per Disk(0)

(LSB) 10

11

(MSB)

Sectors per Track

(LSB) 12

13

(MSB)

Data Bytes per Physical Sector(200h)

(LSB) 14 15 (MSB) Interleave(1) (LSB) 16 17 (MSB)

Track Skew Factor(1)

(LSB) 18

19

(MSB)

Cylinder Skew Factor(1)

(LSB)

20 SSEC(1) HSEC(0) RMB(0) SURF(0) Reserved(0)

21 Reserved(0)

22 Reserved(0)

23 Reserved(0)

Sectors per Track indicates the number of sectors per track of a drive linked to the drive in this series. Data Bytes per Physical Sector indicates the number of bytes per block, and is always set to 512.

(21)

Rigid Disk Geometry Page Bit

Byte 7 6 5 4 3 2 1 0

0 PS 0 Page Code(05h)

1 Page Length(16h)

2 (MSB)

3 Number of cylinders

4 (LSB)

5 Number of heads

6 (MSB)

7 Starting cylinder-write precompensation(0)

8 (LSB)

9 (MSB)

10 Starting cylinder-reduced write current(0)

11 (LSB)

12 13

(MSB)

Drive step rate(0)

(LSB) 14 (MSB)

15 Landing zone cylinder(0)

16 (LSB)

17 Reserved(0) RPL

18 Rotation Offset(0)

19 Reserved(0)

20

21 Medium rotation rate(5400)

22 Reserved(0)

23 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.

(22)

Caching Page Bit

Byte 7 6 5 4 3 2 1 0

0 PS 0 Page Code(08h)

1 Page Length(0Ah)

2 Reserved(0) WCE(0) MF(0) RCD(0)

3 Read Retention Priority(0) Write Retention Priority(0)

4 5

(MSB)

Disable Pre-fetch Transfer Length(0)

(LSB) 6

7

(MSB)

Minimum Pre-fetch(0)

(LSB) 8

9

(MSB)

Maximum Pre-fetch(0)

(LSB) 10

11

(MSB)

Maximum Pre-fetch Ceiling(0)

(LSB) Error codes for MODE SENSE (6) will be listed below.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(23)

14. START/STOP UNIT [1B]

The START/STOP UNIT command starts and stops the rotation of a spindle motor of a drive. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(1Bh)

1 LUN(0) Reserved(0) Immed

2 Reserved(0)

3 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.

SenseKey ASC ASQ Description

02 04 00 NOT READY, CAUSE NOT REPORTABLE

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(24)

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.

Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(1Ch)

1 LUN(0) Reserved(0)

2 Reserved(0)

3 4

(MSB)

Parameter List Length

(LSB)

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.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

16. END DIAGNOSTIC [1D]

The SEND DIAGNOSTIC command performs self diagnostics for a drive. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(1Dh)

1 LUN(0) PF 0 SlfTst(1) DevOfl UntOfl

2 Reserved(0)

3 4

(MSB)

Parameter List Length

(LSB)

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

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

04 40 NN DIAGNOSTIC FAILURE ON COMPONENT NN

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(25)

17. READ CAPACITY [25]

The READ CAPACITY command transfers information about the capacity of a drive to an initiator. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(25h)

1 LUN(0) Reserved(0)

2 Reserved(0)

3 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. Bit

Byte 7 6 5 4 3 2 1 0

0 1 2 3

(MSB)

Last Logical Block Address

(LSB) 4

5 6 7

(MSB)

Block Length in Bytes(512)

(LSB) Last Logical Block Address indicates the last accessible logical block address of a drive linked to the drive in this series. Block Length in Bytes indicates the number of bytes per block, and is always set to 512.

Error codes for READ CAPACITY will be listed below.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(26)

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.

Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(28h)

1 LUN(0) Reserved(0)

2 (MSB)

3

4 Logical Block Address

5 (LSB)

6 Reserved(0)

7 8

(MSB)

Transfer Length

(LSB)

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.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

03 11 00 UNRECOVERED READ ERROR

05 20 00 INVALID COMMAND OPERATION CODE

05 21 00 LOGICAL BLOCK ADDRESS OUT OF RANGE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(27)

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.

Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(2Ah)

1 LUN(0) Reserved(0)

2 (MSB)

3

4 Logical Block Address

5 (LSB)

6 Reserved(0)

7 8

(MSB)

Transfer Length

(LSB)

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.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

03 0C 02 WRITE ERROR – AUTO REALLOCATION FAILED

04 47 00 PARITY ERROR

05 20 00 INVALID COMMAND OPERATION CODE

05 21 00 LOGICAL BLOCK ADDRESS OUT OF RANGE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(28)

20. SEEK(10) [2B]

The SEEK (10) command shifts a head to a designated logical block address. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(2Bh)

1 LUN(0) Reserved(0)

2 (MSB)

3

4 Logical Block Address

5 (LSB)

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.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

04 02 00 NO SEEK COMPLETE

05 20 00 INVALID COMMAND OPERATION CODE

05 21 00 LOGICAL BLOCK ADDRESS OUT OF RANGE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(29)

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.

Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(2Eh)

1 LUN(0) Reserved(0) ByteChk(0) 0

2 (MSB)

3

4 Logical Block Address

5 (LSB)

6 Reserved(0)

7 8

(MSB)

Transfer Length

(LSB)

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.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

03 0C 02 WRITE ERROR – AUTO REALLOCATION FAILED

05 20 00 INVALID COMMAND OPERATION CODE

05 21 00 LOGICAL BLOCK ADDRESS OUT OF RANGE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(30)

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.

Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(2Fh)

1 LUN(0) Reserved(0) ByteChk(0) 0

2 (MSB)

3

4 Logical Block Address

5 (LSB)

6 Reserved(0)

7 8

(MSB)

Verification Length

(LSB)

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 Byte Chk bit is not supported, so must always be set to ‘0’. Error codes for VERIFY (10) will be listed below.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

03 11 00 UNRECOVERED READ ERROR

05 20 00 INVALID COMMAND OPERATION CODE

05 21 00 LOGICAL BLOCK ADDRESS OUT OF RANGE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(31)

23. READ DEFECT DATA [37]

The READ DEFECT DATA command transfers alternate information of a drive to an initiator. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(37h)

1 LUN(0) Reserved(0)

2 Reserved(0) Plist Glist Defect List Format

3 Reserved(0)

4 Reserved(0)

5 Reserved(0)

6 Reserved(0)

7 8

(MSB)

Allocation Length

(LSB)

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.

Bit

Byte 7 6 5 4 3 2 1 0

0 Reserved(0)

1 Reserved(0) Plist Glst Defect List Format

2 3

(MSB)

Defect List Length(0)

(LSB) 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.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(32)

24. MODE SELECT (10) [55]

The MODE SELECT (10) command sets the various operations of a device. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(55h)

1 LUN(0) PF Reserved(0) SP

2 Reserved(0)

3 Reserved(0)

4 Reserved(0)

5 Reserved(0)

6 Reserved(0)

7 8

(MSB)

Parameter List Length

(LSB)

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.

Bit

Byte 7 6 5 4 3 2 1 0

0

7 Mode Parameter Header

8

15 Block Descriptor

16

N 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. Bit

Byte 7 6 5 4 3 2 1 0

0 1

(MSB)

Mode Data Length

(LSB)

2 Medium Type(0)

3 Reserved(0)

4 Reserved(0)

5 Reserved(0)

6 7

(MSB)

Block Descriptor Length(0 or 8)

(LSB) 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.

(33)

The data format of Block Descriptor will be shown below. Bit

Byte 7 6 5 4 3 2 1 0

0 Density Code(0)

1 2 3

(MSB)

Number of Blocks

(LSB)

4 Reserved(0)

5 6 7

(MSB)

Block Length in Bytes(512)

(LSB) The number of Blocks field and Density Code are ignored.

Block Length in Bytes 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.

Bit

Byte 7 6 5 4 3 2 1 0

0 0 0 Page Code

1 Page Length

2

n Mode Parameter

See 13. MODE SENSE (6) [1A] for more detail information about Page Descriptor. Error codes for MODE SELECT (10) will be listed below.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

05 26 00 INVALID FIELD IN PARAMETER LIST

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(34)

25. MODE SENSE(10) [5A]

The MODE SENSE (10) command transfers mode parameters to an initiator. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(5Ah)

1 LUN(0) 0 DBD Reserved(0)

2 PC Page Code

3 Reserved(0)

4 Reserved(0)

5 Reserved(0)

6 Reserved(0)

7 8

(MSB)

Allocation Length

(LSB)

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. Bit 7 Bit 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 Description

01h Read/Write Recovery Page 03h Format Device Page 04h Rigid Disk Geometry Page

08h Caching Page

3Fh All Page

If Page Code 3Fh is designated, all Page Descriptors are transferred to an initiator. Bit

Byte 7 6 5 4 3 2 1 0

0

7 Mode Parameter Header

8

15 Block Descriptor

16

n 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.

(35)

The data format of Mode Parameter Header will be shown below. Bit

Byte 7 6 5 4 3 2 1 0

0 1

(MSB)

Mode Parameter Length

(LSB)

2 Medium Type(0)

3 WP(0) Reserved(0)

4 Reserved(0)

5 Reserved(0)

6 7

(MSB)

Block Descriptor Length(0 or 8)

(LSB) 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. Bit

Byte 7 6 5 4 3 2 1 0

0 Density Code(0)

1 2 3

(MSB)

Number of Blocks

(LSB)

4 Reserved(0)

5 6 7

(MSB)

Block Length in Bytes(512)

(LSB) The Number of Blocks field indicates the total number of blocks of a drive.

Block Length in Bytes indicates the number of bytes per block, and is always set to 512. See 13 MODE SENSE (6) [1A] for more detail information about Page Descriptor. Error codes for MODE SENSE (10) will be listed below.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(36)

26. READ DELAY CHECK[E0]

READ DELAY CHECK is a read-data check command for DUAL EDGE transfer. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(E0h)

1 LUN(0) Reserved(0)

2 Reserved(0)

3 Initial Data Pattern

4 Pattern Control Byte

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 Byte defines data subsequent to Initial Data Pattern. It designates data patterns in bits. Pattern Control Byte

7 6 5 4 3 2 1 0

Bit

SAME DECINV INCINV INVFF INV00 INV DEC INC

INC

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 → … DEC

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 → …

(37)

Error codes for READ DELAY CHECK will be listed below.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

27. WRITE DELAY CHECK [E1]

WRITE DELAY CHECK is a write data check command for DUAL EDGE transfer. Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(E1h)

1 LUN(0) Reserved(0)

2 Reserved(0)

3 Initial Data Pattern

4 Pattern Control Byte

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 Byte 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 Byte.

Error codes for WRITE DELAY CHECK will be listed below.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

04 47 00 PARITY ERROR

05 20 00 INVALID COMMAND OPERATION CODE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(38)

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.

Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(E8h)

1 LUN(0) Reserved(0)

2 (MSB)

3

4 Logical Block Address

5 (LSB)

6 Reserved(0)

7 8

(MSB)

Transfer Length

(LSB)

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.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

03 11 00 UNRECOVERED READ ERROR

05 20 00 INVALID COMMAND OPERATION CODE

05 21 00 LOGICAL BLOCK ADDRESS OUT OF RANGE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

(39)

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.

Bit

Byte 7 6 5 4 3 2 1 0

0 Operation Code(EAh)

1 LUN(0) Reserved(0)

2 (MSB)

3

4 Logical Block Address

5 (LSB)

6 Reserved(0)

7 8

(MSB)

Transfer Length

(LSB)

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.

SenseKey ASC ASQ Description

02 04 01 LOGICAL UNIT IS IN PROCESS OF BECOMING READY

02 04 04 LOGICAL UNIT NOT READY, FORMAT IN PROGRESS

03 0C 02 WRITE ERROR – AUTO REALLOCATION FAILED

04 47 00 PARITY ERROR

05 20 00 INVALID COMMAND OPERATION CODE

05 21 00 LOGICAL BLOCK ADDRESS OUT OF RANGE

05 24 00 INVALID FIELD IN CDB

05 25 00 LOGICAL UNIT NOT SUPPORTED

06 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

References

Related documents

information to reap an unfair benefit. Many of these donations were made at a time when it would have been illegal to make a sale of the same securities due to their access to this

DUAL COMMAND™ OFFERS SO MUCH MORE The 32x16 Dual Command™ transmission with powershuttle offers the same number of ratios as Split Command, but allows a high low push button

characteristics that inhibit and promote respectively the work practices that facilitate the employee knowledge sharing behaviour in construction.. Construction organisational

Entrenched mismanagement of fragile and finite soil resources within the agricultural sector has led to a dramatic reduction in soil organic carbon, with consequent

Thus, strategic management scholars do not have theories of why routines and capabilities impact firm performance that involve the micro-level, that is, at the level of

-First Cause of Action- (Breach of Duty of Obedience)," alleges that the City breached its fiduciary duty by transferring the Armory into private hands in violation of

- outpatient and inpatient care, house calls, dental treatment and emergency medical services.. The scope of medical services is determined by the diagnosis and treatment facilities

Commerce Commission “Further consultation paper on issues relating to determining a price for Chorus' UCLL and UBA services under the final pricing principle - supplementary paper”