This message is from the T13 list server.

On Mon, 15 Apr 2002 14:16:00 -0600, Pat LaVarre wrote:
>This message is from the T13 list server.
>> Hale: Why do you need all 16-bits of the Byte Count registers to report a
>residue value that can only be 0 or 1?
>Pat: In UDma 2 this value is sometimes as high as 5.  I know at length here before
>I've failed to explain clearly why, but it's a fact.

That is because it isn't a fact. Here again we are back to what I can
only describe as a failure to understand how ATA/ATAPI data transfers
are performed and especially how UltraDMA transfers are performed. I
have posted several examples in an attempt to clear up this
misconception. Apparently you keep ignoring them because you think
they are not "real world" enough, yet they demostrate many of the
very basic issues that we keeping commenting on here without
resolution.

>In practice my fix for getting direction straight was (d) to write x1F3 with
>x80 In or x00 Out before o x1F7 xA0 Packet, to let the device see the
>direction the host wanted.

This has never been necessary to my knowledge in 10+ years of ATA or
8+ years of ATAPI. Why now? 

The direction of data movement and the amount of data moved by a
command is not open for negotiation. The command, be it an ATA hard
disk command or an ATAPI/SCSI CDB, absolutely and without question
determines the data direction and the amount of data. A host must
have every expection that the device will properly execute the
command or indicate error status. Why are we talking about this here?
This is one of the most basic concepts of computer I/O?



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



Reply via email to