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.
