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 ***
