This message is from the T13 list server.

On Tue, 26 Feb 2002 11:12:05 -0600, Wolford, Jeff wrote:
>Are there any ATAPI Data commands (PLEASE note DATA (Read 10 etc)), 
>where the data length is not the same as the requested length ?

I'm not sure I understand the question. What is the requested length?


I would define the requested length as what the host that build the
SCSI CDB thinks the command should transfer. For many commands,
especially block read/write commands on devices that have fix size
data blocks, the requested length the host expects will probably
match the actual length. But there are commands that allow a device
to transfer less data (example, less data than the Request Sense CDB
allows in the Allocation Length value) and there are devices that
have truely variable sized data blocks (the host may not know how big
the next data block will be other than it will not be larger than
some maximum block size).

I hope we are not trying to find how that there are so few of these
commands or devices that we can ignore them and ignore the data
integrity problem we have. 

Another way to look at this problem is this: The host side DMA engine
is a state machine that follows a simple program (the PRD list). In
today's DMA engine we have little or no way to determine how much of
the program was executed by DMA engine or if the program was adequate
for the data transfer the device needed. I have asked for years (at
least 5 years) for a byte/word count in the DMA engine status. Seeing
that I would never get that I then asked for two state driven status
bits that would mostly solve the problem. 

The single biggest problem is if the data transfer command ends
before the DMA engine reaches the end of the PRD list. In this case
how much data was transferred?



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



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

Reply via email to