![](/images/backgrounds/146247/146247-253160x1.png)
5.24READ LONG Command (3Eh)
The READ LONG command is used in conjunction with the WRITE LONG command to allow the initiator to issue raw reads and writes of physical data blocks, but address them as logical blocks with an assumed sector length of 512 bytes. These two commands are used to verify the correction capability of the drive’s ECC and to create a known kind and location to verify the drive’s recovery and bad sector handling policies. The data format and field descriptions are shown in Table
Table
Bit | 7 | 6 | 5 |
| 4 |
| 3 |
| 2 | 1 | 0 |
Byte |
|
|
| ||||||||
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
| |
0 |
|
|
|
| Operation | Code (3Eh) |
|
|
| ||
|
|
|
|
|
|
|
|
|
|
| |
1 |
|
|
| Reserved |
|
|
|
| Correct | RelAdr | |
|
|
|
|
|
|
|
|
| |||
2 - 5 |
|
|
|
| Logical Block Address |
|
|
| |||
|
|
|
|
|
|
|
|
|
| ||
6 |
|
|
|
|
| Reserved |
|
|
| ||
|
|
|
|
|
|
|
| ||||
7 - 8 |
|
|
| Byte Transfer Length (578) |
|
|
| ||||
|
|
|
|
|
|
|
|
|
| ||
9 |
|
|
|
|
| Control |
|
|
| ||
|
|
|
|
|
|
|
|
|
|
|
|
Table | ||
|
| |
Field | Description | |
|
| |
| When the value in this field is 1, the drive corrects the data by the ECC before transferring it to | |
Correct | the initiator. When the value is 0, the drive does not perform ECC correction on the data. | |
NOTE: This bit, not the DCR bit of the Read Recovery page, governs the effect of error correction | ||
| ||
| for the READ LONG command. | |
|
| |
RelAdr | Relative addressing is not supported by the drive. This value must be 0. | |
|
| |
Logical Block Ad- | Specifies the logical sector to read. | |
dress | ||
| ||
| Must be 578. This value reflects the number of bytes spanned by the ECC, including the ECC it- | |
Byte Transfer Length | self, rounded up to the next word (this is easiest understood in bits: 4096 data bits + 1 force error | |
bit + 15 Logical Block Address bits + 16 cross check bits + 2 pad bits + 480 ECC bits + 6 pad bits | ||
| that are not written to media but are only needed for transfer = 4496 bits or 578 bytes). Any other | |
| value in this field results in a CHECK CONDITION status and the appropriate sense data. |
Table
Table
Bit | 7 | 6 | 5 |
| 4 | 3 | 2 | 1 | 0 |
Byte |
| ||||||||
|
|
|
|
|
|
|
|
| |
0 - 511 |
|
|
|
| Data (512 | Bytes) |
|
|
|
|
|
|
|
|
| ||||
512 - 513 |
|
| Logical Block Address Bits + Force Error Bit |
|
| ||||
|
|
|
|
|
|
|
|
| |
514 - 515 |
|
|
|
| EDC (8 Bits) |
|
|
| |
|
|
|
|
|
|
|
| ||
516 - 577 |
|
|
| 60 ECC Bits + 8 Pad Bits |
|
|
| ||
|
|
|
|
|
|
|
|
|
|