5.3 Host Commands
(22) WRITE DMA (X’CA’ or X’CB’)
The WRITE DMA command writes data to 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 the 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.5.
When the command is completed, cylinder, head, and sector addresses (CHS mode) of the last sector to which data was written is stored in the Shadow Block Register.
If a disk write error is detected during execution of the WRITE DMA command and continued operation is not possible, command processing is terminated 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.
A host system can select the following transfer mode 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 write operations are allowed (after a transfer of dummy data, ST = 51h, ER = 10h).
(2)The range where write operations are allowed will be exceeded by an address during a write operation (after a transfer of dummy data, ST = 51h, ER = 10h).
(3)A write fault was detected when the write cache was disabled (ST = 71h, ER = 10h).
(4)While the write cache is enabled, if the status indicating a completed transfer (STS = 50h) is returned and a data write operation failed because a write fault was detected during the data write operation, Abort will be returned for all subsequent ATA commands (ST = 71h, ER = 04h). This state is cleared the next time that the device is turned on.
(5)A SATA communication error occurred (ST = 51h, ER = 14h).
(6)An error other than the above errors occurred (ST = 51h, ER = 04h).