This message is from the T13 list server.

On Thu, 13 Dec 2001 19:05:38 -0800, Mcgrath, Jim wrote:
>Since the packet command using UDMA does not have this capability (one of
>Pat's original questions), one way you can look at this is to assume that
>the device knows it is a 16 bit wide data bus ATAPI device, and so if it has
>an ALLOCATION LENGTH for return data it should only return 4 bytes (2
>words).

No, SFF-8020 and ATA/ATAPI-x say the device returns 5 bytes plus a
pad byte.

>You can always return fewer bytes than the ALLOCATION LENGTH, and
>this would be both legal for the device and safe (i.e. no possibility of 6
>bytes getting to the host overflowing the ALLOCATION LENGTH size buffer).

True, but the host, being a properly implemented host, knows that
there will be a pad byte at the end of any odd length data transfer.
The host must deal with this by having enough buffer space to hold
the pad byte or by discarding the pad byte before it corrupts data
following the buffer in memory.

>To return 6 bytes (three words) is to assume that the last byte falls away
>at some point - perhaps not an unreasonable practical assumption, but
>clearly violating the standard.

Sorry, it isn't a violation of SFF-8020 or ATA/ATAPI-x.

>For example, if this was a wide (16 bit)
>SCSI device I could not get away with 3 words transferred unless I followed
>up with an IGNORE WIDE RESIDUE message (which does not exist for ATA/ATAPI).

No need. This case has been described in the ATAPI specifications and
standards since day one.


***  Hale Landis  *** [EMAIL PROTECTED] ***
*** Niwot, CO USA ***   www.ata-atapi.com   ***


Subscribe/Unsubscribe instructions can be found at www.t13.org.

Reply via email to