This message is from the T13 list server.

On Wed, 20 Oct 2004 15:20:24 -0500, Andy Warner wrote:
>This message is from the T13 list server.
>I have tried to find explicit guidance in ATA/ATAPI-6 on
>the recommended way for a host to abort a PIO/DMA transaction.
>All I can find is the NOP command. Is this the preferred method ?
>If not, what is ?

ATA/ATAPI-6 assumes you are talking about parallel ATA (PATA)...

PIO...
For ATA devices it is illegal to write to the Command Block registers
when an ATA device has BSY=1 or BSY=0 DRQ=1. The only way to abort an
ATA PIO command is via Soft Reset (SRST). For ATAPI devices it is
legal to write the Command register with the value 08H (DEVICE RESET)
when an ATAPI device has BSY=1 or BSY=0 DRQ=1 (no other value is
legal) and of course Soft Reset (SRST) is legal.

DMA...
This can get really complex... Basically you must first shutdown the
host side DMA engine so that you know that DMACK- is no longer
asserted on the ATA interface. As long as DMACK- is asserted on the
ATA interface it is not possible to read or write any of the
ATA/ATAPI device registers (Command or Control Block). Once DMACK- is
not asserted then the the PIO rules above apply.

Hale


*** Hale Landis *** www.ata-atapi.com ***



Reply via email to