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.

Reply via email to