Read Long
The READ LONG command requests the Target
to
transfer a specific block of
data
to
the
Initiator. The
data
transferred will include all header,
data,
and ECC (Error Correction
Code) bytes.
Read Long Command Descriptor Block
(COB)
Bit
Byte
7
J
6
J
5
I
4
I
3
I
2
I
1
I
0
00
Opcode=
3EH
01
Logical
Unit
Number
I
Reserved I
CORRCT
I RelAdr=O
02-05
(MSB=02)
Logical Block Address
(LSB=05)
06
Reserved
07-08
(MSB=07)
Byte
Transfer
Length
(LSB=08)
09
Control
Byte
CORRCT (Corrected). A CORRCT bit of one (1) instructs the Target to correct the
data
by ECC before transferring
it
to
the Initiator. A CORRCT bit of zero (0) causes the logical
block
to
be read and transferred without any error detection or correction.
Logical Block Address. This field specifies the starting address for the Read Long operation.
The operation will continue for the length specified by the Byte Transfer Length field.
Byte Transfer Length. This field should specify exactly
the
number of bytes available for
transfer.
If
a non-zero transfer length does not exactly match the available
data
length, the
target
will terminate
the
command with a Status of CHECK CONDITION, a Sense Key of
ILLEGAL
REQUEST, and an Additional Sense Code of INVALID FIELD
IN
CDB. The
Valid and ILl bits will be set
to
one (1), and the information field will
be
set
to
the
difference
(residue) of
the
requested lenght minus the requested length in bytes.
A byte transfer length of zero indicates
that
no bytes will be transferred and wil not
be
considered an error.
A~36
SCS!
Command DeScriptions
DRAFT
1/18/93 09:58