K6602705
Rev.3
08.20.01
- 55 -
6.3.2.7 DMA Data In/Out Commands
The Read DMA and Write DMA commands execute data transfer using the slave-DMA channel.
The host is required to enable the slave-DMA feature, if using these commands.
1) The host initializes the slave-DMA feature, if using these commands.
2) The host write any required parameters to the Features, Sector Count, Sector Number, Cylinder low,
Cylinder High, and Device/Head registers.
3) The host writes the command code to the Command Register.
4) The device sets the DMARQ when it gets ready to transfer.
5) The slave-DMARQ channel qualifies data transfers to and from the device with DMARQ. The register
contents are not valid during a DMA Data Phase.
6) The device generates the interrupt to the host, when the data transfer has completed.
7) The host resets the slave-DMA channel.
8) The host reads the Status Register. In response to the Status Register being read, the device
negates INTRQ.
6.3.2.7.1 Read DMA [C8h, C9h]
This command executes in a similar manner to the Read Sectors command except for
the following.
-
The host initializes a slave-DMA channel prior to issuing the command.
-
Data transfers are qualified by DMARQ and are performed by the slave-DMA channel.
-
The device issues only one interrupt per command indicating that data transfer has terminated and
status is valid.
If an error occurs, the read terminates at the sector where the error occurred. The command Block Registers
contain the cylinder, head, and sector numbers where the error occurred.
6.3.2.7.2 Write DMA [CAh, CBh]
This command executes in a similar manner to the Write Sectors command except for the followings.
-
The host initializes a slave-DMA channel prior to issuing the command.
-
Data transfers are qualified by DMARQ and are performed by the slave-DMA channel.
-
The device issues only one interrupt per command to indicate that data transfer has terminated and
status is valid.
If an error occurs, the write terminates at the sector where the error occurred. The command Block
Registers contain the cylinder, head, and sector numbers where the error occurred.