Interface
(21) READ DMA (X 'C8' or X 'C9')
The READ DMA command reads data from sectors, starting from the sectors specified in the Device/Head, Cylinder High, Cylinder Low, and Sector Number fields and continuing for as many sectors as specified in the Sector Count field. A value ranging from 1 to 256 can be specified for the number of sectors. In order to specify 256, "00" must be set in the Sector Count field. For the protocol concerning data transfers, see Section 5.4.4.
When the command is completed, either cylinder, head, and sector addresses (CHS mode) or the logical block address (LBA mode) of the last sector is stored in the Shadow Block Register.
If an error such as an uncorrectable disk read error is detected during execution of the READ DMA command and continued operation not possible, the data transfer stops after all data, including the data of the sector where the error was detected, is transferred. The device notifies the host of the status by sending the RegDH FIS. At this time, the number of remaining sectors including the sector where the error was detected, and either cylinder, head, and sector addresses (CHS mode) or the logical block address (LBA mode) of the sector where the error was detected are stored in the Shadow Block Register.
The host system can select the DMA transfer mode by using the SET FEATURES command, however, the transfer speed does not change.
•Multiword DMA transfer mode 0 to 2
•Ultra DMA transfer mode 0 to 5
•Error reporting conditions
(1)A specified address exceeds the range where read operations are allowed (ST = 51h, ER = 10h).
(2)The range where read operations are allowed will be exceeded by an address during a read operation (ST = 51h, ER = 10h).
(3)An uncorrectable disk read error occurred (ST = 51h, ER = 40h).
(4)The sync byte indicating the beginning of a sector was not found (ST = 51h, ER = 01h).
(5)A SATA communication error occurred (ST = 51h, ER = 0Ch).
(6)A Host Buffer CRC error occurred (ST = 51h, ER = 84h).
(7)An error other than the above errors occurred (ST = 51h, ER = 04h).