5.3 Host Commands
C141-E239 5-93
(19) WRITE MULTIPLE (X’C5’)
The WRITE MULTIPLE command performs the same tasks as the WRITE
SECTOR(S)
command except that this command sends the PIO Setup FIS before
sending data blocks of multiple sectors. The PIO Setup FIS is sent only before the
first data block is transferred, and it is not sent before any subsequent transfer of
sector blocks
.
The number of sectors per block is defined by a successful SET MULTIPLE
MODE command. The SET MULTIPLE MODE command should be executed
prior to the WRITE MULTIPLE command.
If the number of requested sectors is not divided evenly (having the same number
of sectors [block count]), as many full blocks as possible are transferred, then a
final partial block is transferred. The number of sectors in the partial block to be
transferred is n where n = remainder of (“number of sectors”/”block count”).
If the WRITE MULTIPLE command is issued before the SET MULTIPLE
MODE command is executed or when WRITE MULTIPLE command is disabled,
the device rejects the WRITE MULTIPLE command with an ABORTED
COMMAND error.
A disk write error that occurs during execution of the WRITE MULTIPLE
command will be reported after a disk write operation has been attempted for the
transferred blocks and partial block. The write operation stops at the sector where
the error occurred (even if the write operation has not reached the end of the
block). At this time, the number of remaining sectors (the error sector and
subsequent sectors) and either cylinder, head, and sector addresses of the error
sector (CHS mode) or the logical block address of the error sector (LBA mode)
are set in the Shadow Block Register.
• 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) The WRITE MULTIPLE command is disabled (ST = 51h, ER = 04h).
(6) A SATA communication error occurred (ST = 51h, ER = 14h).
(7) An error other than the above errors occurred (ST = 51h, ER = 04h).