This message is from the T13 list server.
Jim M: > might make sense to discuss this offline Offline's good for me. I or my voice mail is at Usa 801 332 4402, and I'd be honoured to find you helping me not only by mail but also by voice. > how you can feel happy about PIO > but have problems with DMA Eh? Hmmmm. > UDMA was designed > to be a drop in replacement for PIO, Oooooh. To my eye, that claim is just silly - which suggests maybe now I do know what the missing piece of info is that keeps us talking past each other here. One feature AtapiPio offers that AtaPio does not is that AtapiPio requires the device to tell the host precisely how many bytes it tried to move which way. The count of bytes the device tried to move is the sum of x1F5:1F4 Byte Count (aka Cylinder) samples taken with each DRQ INTRQ. d1410r3.pdf "Figure 31 - Host PACKET non-data and PIO data command state diagram" does NOT show this detail. This detail appears in the text discussion of the HP4: Transfer_Data State. We may have to reach back to "8.23 PACKET" "8.23.5.2 Data transmission" to appreciate that an odd byte count appearing anywhere but last is not standard. Did you know all that already? > ... there are NEVER garbage bytes Oooooh again. To my eye, this looks silly too. If I haven't quoted this too far out of context, maybe saying precisely why will help. The limitations of SwDma/MwDma haven't mattered to me, because those modes don't fundamentally burst faster than Pio. But maybe we'll connect more easily if we talk about them for a moment anyhow. Can we agree now that AtapiPio lets the device tell the host if it meant to move an odd number of bytes ... ... but that ALL standard forms of AtapiDma require that the device express its request for data as a multiple of bus ords? That is, the device has to round up its request to the nearest multiple of two bytes. That is, we cannot avoid passing one byte of "garbage" across the bus when byte transfer lengths are odd. An example would be the cb x 12 0 0 0 05 0 i.e. an Inquiry for 5 bytes i.e. an Inquiry for just enough bytes to retrieve the additional length byte that tells us how many more bytes, if any, follow. To move 5 bytes, we always arrange for 6 bytes - three pairs of bytes - to cross the bus? Pat LaVarre Subscribe/Unsubscribe instructions can be found at www.t13.org.
