You are on page 1of 39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

SCSI Model Flash Drive


--- SCS3-xxxxBA Series ---

Command Specification

2002-04-10 1/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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
0
1
2
3
4
5

Flag(0)

Link(0)

Flag(0)

Link(0)

Flag(0)

Link(0)

Operation Code
LUN

Reserved
6-byte CDB
Bit

Byte
0
1
2
3
4
5
6

Operation Code
LUN

Reserved

7
8
9

Reserved
10-byte CDB
Bit

Byte
0
1
2
3
4
5
6
7
8

Operation Code
LUN

Reserved

9
10
11

Reserved
12-byte CDB

2002-04-10 2/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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
00h
01h
03h
04h
07h
08h
0Ah
0Bh
12h
15h
16h
17h
1Ah
1Bh
1Ch
1Dh
25h
28h
2Ah
2Bh
2Eh
2Fh
37h
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 3/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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

The INQUIRY (12h) command is executed normally. The retention of UNIT ATTENTION CONDITION is not
cancelled.
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.
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)
(2)

When the CHECK CONDITION status is returned during execution of the SCSI command.
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)
(2)
(3)

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.
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/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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
01h
03h
DEh

Length
5
4
5

Extend Message Name


SYNCHRONUS TRANSFER MESSAGE
WIDE TRANSFER REQUEST
DUAL EDGE SUM CHECK

The format of WIDE TRANSFER REQUEST will be shown below.


Byte
MSG

0
01

1
02

2
03

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

0
01

1
03

2
DE

3
SUMH

4
SUML

After completion of the DUAL EDGE transfer status phase, the message above is transferred.
Complete message is transferred.

After that, the Command

SCSI Status Byte


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

3
Status Byte Code

0
0

The drive in this series supports the following SCSI Status.


Byte
00h
02h
08h
18h

Status
GOOD
CHECK CONDITION
BUSY
RESERVATION CONFLICT

2002-04-10 5/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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
0
1
2
3
4
5

Flag(0)

Link(0)

Operation Code(00h)
LUN(0)

Reserved(0)
Reserved(0)
Reserved(0)
Reserved(0)
Reserved(0)

Error codes for TEST UNIT READY will be listed below.


SenseKey

02
02
05
05
05
06

ASC
04
04
20
24
25
29

ASQ
01
04
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2. REZERO UNIT [01]


The REZERO UNIT command calibrates a head.
Bit
Byte
0
1
2
3
4
5

Flag(0)

Link(0)

Operation Code(01h)
LUN(0)

Reserved(0)
Reserved(0)
Reserved(0)
Reserved(0)
Reserved(0)

Error codes for REZERO UNIT will be listed below.


SenseKey

02
02
03
05
05
05
06

ASC
04
04
06
20
24
25
29

ASQ
01
04
00
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
NO REFERENCE POSITION FOUND
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 6/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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
0
1
2
3
4
5

Flag(0)

Link(0)

Operation Code(03h)
LUN(0)

Reserved(0)
Reserved(0)
Reserved(0)
Allocation Length
Reserved(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
0
1
2
3
6
7
8
11
12
13
14
15
17

Valid(0)

Error Code(70h)
Reserved(0)
Reserved(0)

Sense Key
Information(0)
Additional Sense Length(0Ah)
Command Specific Information(0)

Additional Sense Code(ASC)


Additional Sense Code Qualifier(ASQ)
Reserved(0)
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/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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

00
02
02
02
03
03
03
04
04
04
04
04
05
05
05
05
05
05
06

ASC
00
04
04
04
06
0C
11
02
32
40
47
48
20
21
24
25
26
3D
29

ASQ
00
00
01
04
00
02
00
00
00
NN
00
00
00
00
00
00
00
00
00

Description
NO SENSE INFORMATION
NOT READY, CAUSE NOT REPORTABLE
LOGICAL UNIT IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
NO REFERENCE POSITION FOUND
WRITE ERROR AUTO REALLOCATION FAILURE
UNRECOVERED READ ERROR
NO SEEK COMPLETE
NO DEFECT SPARE LOCATION AVAILABLE
DIAGNOSTIC FAILURE ON COMPONENT NN
PARITY ERROR
INITIATOR DETECTED ERROR
INVALID COMMAND OPERATION CODE
INVLID LBA ADDRESS
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORT
INVALID FIELD IN PARAMETER LIST
INVALID IDENTIFY FIELD
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
15
16
17

7
SKSV
(MSB)

Reserved(0)
Progress Indication
(LSB)

This information makes sense only if SKSV = 1.


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

2002-04-10 8/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

4. FORMAT UNIT [04]


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

Operation Code(04h)

LUN(0)

FmtData

Defect List Format(0)

CmpList(0)

Reserved(0)
(MSB)

Interleave

4
5

Reserved(0)

Flag(0)

(LSB)
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
0
1
2

Immed

Reserved(0)
0
(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

02
02
03
05
05
05
05
06

ASC
04
04
0C
20
24
25
26
29

ASQ
01
04
02
00
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
WRITE ERROR AUTO REALLOCATION FAILED
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
INVALID FIELD IN PARAMETER LIST
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 9/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

5. REASSIGN BLOCKS [07]


The REASSIGN BLOCKS command performs replacement processing on logical blocks in a drive.
Bit
Byte
0
1
2
3
4
5

Flag(0)

Link(0)

Operation Code(07h)
LUN(0)

Reserved(0)
Reserved(0)
Reserved(0)
Reserved(0)
Reserved(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

02
02
04
05
05
05
06

ASC
04
04
32
20
24
25
29

ASQ
01
04
00
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
NO DEFECT SPARE LOCATION AVAILABLE
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
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
0
1
2
3
4
5

Operation Code(08h)
(MSB)
Logical Block Address

LUN(0)

(LSB)
Transfer Length
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

02
02
03
05
05
05
06

ASC
04
04
11
20
24
25
29

ASQ
01
04
00
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
UNRECOVERED READ ERROR
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 10/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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
0
1
2
3
4
5

Operation Code(0Ah)
(MSB)
Logical Block Address

LUN(0)

(LSB)
Transfer Length
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

02
02
03
04
05
05
05
06

ASC
04
04
0C
47
20
24
25
29

ASQ
01
04
02
00
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
WRITE ERROR AUTO REALLOCATION FAILED
PARITY ERROR
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
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
0
1
2
3
4
5

Operation Code(0Bh)
(MSB)
Logical Block Address

LUN(0)

(LSB)
Reserved(0)
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

02
02
03
05
05
05
06

ASC
04
04
02
20
24
25
29

ASQ
01
04
00
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
NO SEEK COMPLETE
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 11/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

9. INQUIRY [12]
The INQUIRY command transfers information about a device to an initiator.
Bit
Byte
0
1
2
3
4
5

Flag(0)

Link(0)

Operation Code(12h)
LUN

Reserved(0)
Reserved(0)
Reserved(0)
Allocation Length
Reserved(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
0
1
2
3
4
5
6
7
8
15
16
31
32
35
36
95
96
223

Qualifier(0)
RMB(0)
ISO Version(0)
Reserved(0)

REL_A(0)

WB_32(0)

Peripheral Device Type(0)


Device Type Modifier(0)
ECMA Version(0)
ANSI Version(2)
Response Data Format(2)
Additional Length()
Reserved(0)
Reserved(0)

WB_16(0)

Sync(1)

Link(0)

TTD(0)

CmdQu(0)

SftRe(0)

Vendor Information
HAGIWARA
Product Identifier
SCS3-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=3, Peripheral Device Type = 1Fh is set.

2002-04-10 12/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

10. MODE SELECT (6) [15]


The MODE SELECT(6) command sets various operations of a device.
Bit
Byte
0
1
2
3
4
5

6
LUN(0)

Operation Code(15h)
PF
Reserved(0)
Reserved(0)
Reserved(0)
Parameter List Length
Reserved(0)

0
SP

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
0
3
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.
Bit
Byte
0
1
2
3

Mode Data Length


Medium Type(0)
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 13/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

The data format of Block Descriptor will be shown below.


Bit
Byte

Density Code(0)
(MSB)

1
2

Number of Blocks

(LSB)

Reserved(0)
(MSB)

5
6

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
0

Page Code

Page Length

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

02
02
05
05
05
05
06

ASC
04
04
20
24
25
26
29

ASQ
01
04
00
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
INVALID FIELD IN PARAMETER LIST
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 14/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

11. RESERVE UNIT [16]


The RESERVE UNIT command reserves the drive for a specific initiator.
Bit
Byte
0
1
2
3
4
5

6
LUN(0)

Operation Code(16h)
SPT
Third Party ID
Reserved(0)
Reserved(0)
Reserved(0)
Reserved(0)
Flag(0)

0
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

02
02
05
05
06

ASC
04
04
20
25
29

ASQ
01
04
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
INVALID COMMAND OPERATION CODE
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 15/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

12. RELASE UNIT [17h]


The RELEASE UNIT command releases a reservation status that has been set by the RESERVE UNIT command.
Bit
Byte
0
1
2
3
4
5

6
LUN(0)

Operation Code(17h)
SPT
Third Party ID
Reserved(0)
Reserved(0)
Reserved(0)
Reserved(0)
Flag(0)

0
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

02
02
05
05
06

ASC
04
04
20
25
29

ASQ
01
04
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
INVALID COMMAND OPERATION CODE
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 16/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

13. MODE SENSE (6) [1A]


The MODE SENSE (6) command transfers mode parameters to an initiator.
Bit
Byte
0
1
2
3
4
5

6
LUN(0)
PC

Operation Code(1Ah)
0
DBD
Page Code
Reserved(0)
Allocation Length
Reserved(0)

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
0
0
1
1

Bit 6
0
1
0
1

Parameter Type
Current Value
Changeable Value
Default Value
Save Value

Page Code supports the following pages.


Page
Code
01h
03h
04h
08h
3Fh

Description
Read/Write Recovery Page
Format Device Page
Rigid Disk Geometry Page
Caching Page
All Page

If Page Code 3Fh is designated, all Page Descriptors are transferred to an initiator.
Bit
Byte
0
3
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/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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


Bit
Byte
0
1
2
3

Mode Data Length


Medium Type(0)
Reserved(0)
Block Descriptor Length(0 or 8)

WP(0)

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

Density Code(0)
(MSB)

1
2

Number of Blocks

(LSB)

Reserved(0)
(MSB)

5
6

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
0
1
2
N

PS

Page Code
Page Length
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/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

Read-Write Error Recovery Page


Bit
Byte
0

PS(0)

AWRE(1)

ARRE(0)

RC(0)

EER(0)

Read Retry Count(01h)

Correction Span(0)

Head Offset Count(0)

Data Strobe Offset Count(0)

Reserved(0)

Write Retry Count(01h)

9
11

DTE(0)

DCR(0)

Page Length(0Ah)
TB(0)

10

Page Code(01h)

1
2

PER(0)

Reserved(0)
(MSB)
Recovery Time Limit(0ffffh)
(LSB)

2002-04-10 19/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

Format Device Page


Bit
Byte
0

PS(0)

Tracks per Zone(0)


(LSB)
(MSB)
Alternate Sectors per Zone(0)
(LSB)
(MSB)
Alternate Tracks per Zone(0)

7
8

(LSB)
(MSB)
Alternate Tracks per Disk(0)

9
10

(LSB)
(MSB)
Sectors per Track

11
12

(LSB)
(MSB)
Data Bytes per Physical Sector(200h)

13
14

(LSB)
(MSB)
Interleave(1)

15
16

(LSB)
(MSB)
Track Skew Factor(1)

17
18

(LSB)
(MSB)
Cylinder Skew Factor(1)

19
20

Page Length(16h)

5
6

(MSB)

3
4

Page Code(03h)

1
2

(LSB)
SSEC(1)

HSEC(0)

RMB(0)

SURF(0)

21

Reserved(0)

22

Reserved(0)

23

Reserved(0)

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.

2002-04-10 20/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

Rigid Disk Geometry Page


Bit
Byte
0

PS

1
2

Page Code(05h)
Page Length(16h)

(MSB)

Number of cylinders

(LSB)

5
6

Number of heads
(MSB)

Starting cylinder-write precompensation(0)

8
9

(LSB)
(MSB)

10

Starting cylinder-reduced write current(0)

11
12

(LSB)
(MSB)
Drive step rate(0)

13
14
15

(LSB)
(MSB)
Landing zone cylinder(0)

16
17

(LSB)
Reserved(0)

18

Rotation Offset(0)

19

Reserved(0)

20
21

RPL

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.

2002-04-10 21/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

Caching Page
Bit
Byte
0

PS

Reserved(0)

WCE(0)

Read Retention Priority(0)

MF(0)

RCD(0)

Write Retention Priority(0)

Disable Pre-fetch Transfer Length(0)


(LSB)
(MSB)
Minimum Pre-fetch(0)

(LSB)
(MSB)
Maximum Pre-fetch(0)

9
10

(MSB)

Page Length(0Ah)

Page Code(08h)

(LSB)
(MSB)
Maximum Pre-fetch Ceiling(0)

11

(LSB)

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


SenseKey

02
02
05
05
05
06

ASC
04
04
20
24
25
29

ASQ
01
04
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 22/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

14. START/STOP UNIT [1B]


The START/STOP UNIT command starts and stops the rotation of a spindle motor of a drive.
Bit
Byte
0
1
2
3
4
5

6
LUN(0)

Operation Code(1Bh)
Reserved(0)
Reserved(0)
Reserved(0)
Reserved(0)
Reserved(0)

0
Immed

LoEj(0)
Flag(0)

Start
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

02
02
02
05
05
05
06

ASC
04
04
04
20
24
25
29

ASQ
00
01
04
00
00
00
00

Description
NOT READY, CAUSE NOT REPORTABLE
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 23/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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

Operation Code(1Ch)

LUN(0)

Reserved(0)

Reserved(0)
(MSB)

Parameter List Length

(LSB)

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

02
02
05
05
05
06

ASC
04
04
20
24
25
29

ASQ
01
04
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

16. END DIAGNOSTIC [1D]


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

SlfTst(1)

DevOfl

UntOfl

Flag(0)

(LSB)
Link(0)

Operation Code(1Dh)

LUN(0)

PF

2
3

Reserved(0)
(MSB)
Parameter List Length

4
5

Reserved(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
02
02
04
05
05
05
06

ASC

ASQ

04
04
40
20
24
25
29

01
04
NN
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
DIAGNOSTIC FAILURE ON COMPONENT NN
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 24/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

17. READ CAPACITY [25]


The READ CAPACITY command transfers information about the capacity of a drive to an initiator.
Bit
Byte
0
1
2
3
4
5
6
7
8
9

Operation Code(25h)
LUN(0)

Reserved(0)
Reserved(0)
Reserved(0)
Reserved(0)
Reserved(0)
Reserved(0)
Reserved(0)
Reserved(0)
Reserved(0)

Flag(0)

Link(0)

This command transfers data in the following format to an initiator.


Bit
Byte
0
1
2
3
4
5
6
7

(MSB)
Last Logical Block Address
(LSB)
(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

02
02
05
05
05
06

ASC
04
04
20
24
25
29

ASQ
01
04
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 25/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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
0

LUN(0)

Reserved(0)

(MSB)

Logical Block Address

4
5

(LSB)

6
7

Operation Code(28h)

1
2

Reserved(0)
(MSB)
Transfer Length

8
9

Reserved(0)

Flag(0)

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

02
02
03
05
05
05
05
06

ASC
04
04
11
20
21
24
25
29

ASQ
01
04
00
00
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
UNRECOVERED READ ERROR
INVALID COMMAND OPERATION CODE
LOGICAL BLOCK ADDRESS OUT OF RANGE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 26/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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
0

Operation Code(2Ah)

1
2

LUN(0)

Reserved(0)

(MSB)

Logical Block Address

4
5

(LSB)

6
7

Reserved(0)
(MSB)
Transfer Length

8
9

Reserved(0)

Flag(0)

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

02
02
03
04
05
05
05
05
06

ASC
04
04
0C
47
20
21
24
25
29

ASQ
01
04
02
00
00
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
WRITE ERROR AUTO REALLOCATION FAILED
PARITY ERROR
INVALID COMMAND OPERATION CODE
LOGICAL BLOCK ADDRESS OUT OF RANGE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 27/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

20. SEEK(10) [2B]


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

Operation Code(2Bh)

1
2

6
LUN(0)

Reserved(0)

(MSB)

Logical Block Address

4
5

(LSB)

Reserved(0)

Reserved(0)

Reserved(0)

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

02
02
04
05
05
05
05
06

ASC
04
04
02
20
21
24
25
29

ASQ
01
04
00
00
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
NO SEEK COMPLETE
INVALID COMMAND OPERATION CODE
LOGICAL BLOCK ADDRESS OUT OF RANGE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 28/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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
0

ByteChk(0)

Operation Code(2Eh)

1
2

6
LUN(0)

Reserved(0)

(MSB)

Logical Block Address

4
5

(LSB)

6
7

Reserved(0)
(MSB)
Transfer Length

8
9

Reserved(0)

Flag(0)

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

02
02
03
05
05
05
05
06

ASC
04
04
0C
20
21
24
25
29

ASQ
01
04
02
00
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
WRITE ERROR AUTO REALLOCATION FAILED
INVALID COMMAND OPERATION CODE
LOGICAL BLOCK ADDRESS OUT OF RANGE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 29/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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
0

ByteChk(0)

Operation Code(2Fh)

1
2

6
LUN(0)

Reserved(0)

(MSB)

Logical Block Address

4
5

(LSB)

6
7

Reserved(0)
(MSB)
Verification Length

8
9

Reserved(0)

Flag(0)

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

02
02
03
05
05
05
05
06

ASC
04
04
11
20
21
24
25
29

ASQ
01
04
00
00
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
UNRECOVERED READ ERROR
INVALID COMMAND OPERATION CODE
LOGICAL BLOCK ADDRESS OUT OF RANGE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 30/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

23. READ DEFECT DATA [37]


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

Operation Code(37h)

LUN(0)

Reserved(0)

Reserved(0)
Plist

Glist

Reserved(0)

Reserved(0)

Reserved(0)

Defect List Format

Reserved(0)
(MSB)

Allocation Length

8
9

Reserved(0)

Flag(0)

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

Reserved(0)

1
2

Reserved(0)

Plist

Glst

Defect List Format

(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

02
02
05
05
05
06

ASC
04
04
20
24
25
29

ASQ
01
04
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 31/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

24. MODE SELECT (10) [55]


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

Operation Code(55h)

LUN(0)

PF

Reserved(0)

Reserved(0)

Reserved(0)

Reserved(0)

Reserved(0)

SP

Reserved(0)
(MSB)

Parameter List Length

8
9

Reserved(0)

Flag(0)

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

Mode Data Length


(LSB)

Medium Type(0)

Reserved(0)

Reserved(0)

Reserved(0)

(MSB)

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

2002-04-10 32/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

The data format of Block Descriptor will be shown below.


Bit
Byte

Density Code(0)
(MSB)

1
2

Number of Blocks

(LSB)

Reserved(0)
(MSB)

5
6

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
0

Page Code

Page Length

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

02
02
05
05
05
05
06

ASC
04
04
20
24
25
26
29

ASQ
01
04
00
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
INVALID FIELD IN PARAMETER LIST
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 33/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

25. MODE SENSE(10) [5A]


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

Operation Code(5Ah)

LUN(0)

DBD

PC

Reserved(0)

Page Code

Reserved(0)

Reserved(0)

Reserved(0)

Reserved(0)
(MSB)

Allocation Length

8
9

Reserved(0)

Flag(0)

(LSB)
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
0
0
1
1

Bit 6
0
1
0
1

Parameter Type
Current Value
Changeable Value
Default Value
Save Value

Page Code supports pages listed below.


Page
Code
01h
03h
04h
08h
3Fh

Description
Read/Write Recovery Page
Format Device Page
Rigid Disk Geometry Page
Caching Page
All Page

If Page Code 3Fh is designated, all Page Descriptors are transferred to an initiator.
Bit
Byte
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 34/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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


Bit
Byte
0

(MSB)
Mode Parameter Length

(LSB)

Medium Type(0)

WP(0)

Reserved(0)

Reserved(0)

Reserved(0)
(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

0
1

Density Code(0)
(MSB)

Number of Blocks

(LSB)

4
5

Reserved(0)
(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

02
02
05
05
05
06

ASC
04
04
20
24
25
29

ASQ
01
04
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 35/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

26. READ DELAY CHECK[E0]


READ DELAY CHECK is a read-data check command for DUAL EDGE transfer.
Bit
Byte
0
1
2
3
4
5
6
7
8
9

Flag(0)

Link(0)

Operation Code(E0h)
LUN(0)

Reserved(0)
Reserved(0)
Initial Data Pattern
Pattern Control Byte
Reserved(0)
Reserved(0)
Reserved(0)
Allocation Length(80h)
Reserved(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.

Bit

Pattern Control Byte


7
6
SAME
DECINV

5
INCINV

4
INVFF

3
INV00

2
INV

1
DEC

0
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

2002-04-10 36/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

Error codes for READ DELAY CHECK will be listed below.


SenseKey

02
02
05
05
05
06

ASC
04
04
20
24
25
29

ASQ
01
04
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
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
0
1
2
3
4
5
6
7
8
9

Flag(0)

Link(0)

Operation Code(E1h)
LUN(0)

Reserved(0)
Reserved(0)
Initial Data Pattern
Pattern Control Byte
Reserved(0)
Reserved(0)
Reserved(0)
Allocation Length(80h)
Reserved(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

02
02
04
05
05
05
06

ASC
04
04
47
20
24
25
29

ASQ
01
04
00
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
PARITY ERROR
INVALID COMMAND OPERATION CODE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 37/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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
0

LUN(0)

Reserved(0)

(MSB)

Logical Block Address

4
5

(LSB)

6
7

Operation Code(E8h)

1
2

Reserved(0)
(MSB)
Transfer Length

8
9

Reserved(0)

Flag(0)

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

02
02
03
05
05
05
05
06

ASC
04
04
11
20
21
24
25
29

ASQ
01
04
00
00
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
UNRECOVERED READ ERROR
INVALID COMMAND OPERATION CODE
LOGICAL BLOCK ADDRESS OUT OF RANGE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 38/39

SCS3-xxxxBA

Command Specification

Series

Rev1.0

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
0

LUN(0)

Reserved(0)

(MSB)

Logical Block Address

4
5

(LSB)

6
7

Operation Code(EAh)

1
2

Reserved(0)
(MSB)
Transfer Length

8
9

Reserved(0)

Flag(0)

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

02
02
03
04
05
05
05
05
06

ASC
04
04
0C
47
20
21
24
25
29

ASQ
01
04
02
00
00
00
00
00
00

Description
LOGICAL UNIT IS IN PROCESS OF BECOMING READY
LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
WRITE ERROR AUTO REALLOCATION FAILED
PARITY ERROR
INVALID COMMAND OPERATION CODE
LOGICAL BLOCK ADDRESS OUT OF RANGE
INVALID FIELD IN CDB
LOGICAL UNIT NOT SUPPORTED
POWER ON, RESET, OR BUS DEVICE RESET OCCURRED

2002-04-10 39/39

You might also like