This message is from the T13 list server.
> [EMAIL PROTECTED] > Monday - January 28, 2002 11:17 PM > U-DMA Quiz Time!!! Helpful concrete examples, thank you. > by the time the host stops > the host has sent 8 "extra bytes" > ... included in the CRC > of the last DMA burst > but are otherwise ignored by the device. This is the only issue I mean to be discussing. As yet, Atapi UDma includes no protocol for the device to disclose its opinion of how many bytes it should have quietly copied into the void, rather than to storage. I'm asking for the device to have the option to include this count in the status it reports (ERR = 0, C/D I/O = x03 StatusIn, residue = 4). This would bring into AtapiDma the byte counting precision beloved by some in AtapiPio. I think (hope?) we all agree that in the comparatively normal situation of a total byte count that is odd, the reported residual byte count may be nonzero. I'm asking that we permit the reported residual byte count to be as large as X * 2 + 1, where X is the receiver indeterminacy built into Atapi UDma, to cover the less normal situation of a host not agreeing to end the transfer as quickly the device arrogantly expected, from its often context-sensitive interpretation of the Cdb it received from the host without benefit of Crc. Pat LaVarre >>> [EMAIL PROTECTED] 01/28/02 23:17 PM >>> This message is from the T13 list server. A U-DMA quiz... === Question #1 The "write" command tells the device to transfer 510 (0x1fe) bytes. The host DMA engine is programmed to transfer 510 (0x1fe) bytes. Three DMA bursts are required and the U-DMA speed is such that when the receiver (device) says stop the sender (host) will send 4 bytes before stopping. 1st DMA burst: The host has sent 200 bytes when the device says stop. The host sends 4 ore bytes before stopping. 2nd DMA burst: The host has sent 200 bytes when the device says stop. The host sends 4 more bytes before stopping. 3rd DMA burst: The host sends the last 102 bytes. The host and device stop at the "same time". Question: Are there any "extra bytes"? Answer below. === Question #2 The "write" command tells the device to transfer 510 (0x1fe) bytes. The host DMA engine is programmed to transfer 1024 (0x400) bytes (this is a broken host!). Three DMA bursts are required and the U-DMA speed is such that the that when the receiver (device) says stop the sender (host) will send 4 bytes before stopping. 1st DMA burst: The host has sent 200 bytes when the device says stop. The host sends 4 more bytes before stopping. 2nd DMA burst: The host has sent 200 bytes when the device says stop. The host sends 4 more bytes before stopping. 3rd DMA burst: The host has sent 106 bytes when the device says stop. The host sends 4 more bytes before stopping. Question: Are there any "extra bytes"? Answer below. Answers below... Scroll down... === Answers Question #1: No, there are no "extra bytes". The command said to transfer 510 bytes. The host DMA engine transferred 510 bytes. The device received 510 bytes. Question #2: Yes, there are "extra bytes" transferred because the host is broken. The host DMA engine thinks it needs to send 1024 bytes but the command and the device only want 510 bytes. As soon as the device has received those 510 bytes is tells the host to stop but by the time the host stops the host has sent 8 "extra bytes". These 8 "extra bytes" in the last DMA burst are included in the CRC of the last DMA burst but are otherwise ignored by the device. (Wasn't that fun?) *** Hale Landis *** www.ata-atapi.com *** Subscribe/Unsubscribe instructions can be found at www.t13.org. Subscribe/Unsubscribe instructions can be found at www.t13.org.
