RE: PCI64 Terminal (DMA) Block w/ Zero Length

"Ruth Sivilotti" <[email protected]> Mon, 24 Feb 2003 23:25:01 -0800
Newsgroups gmane.network.myrinet.general
Message-ID <000c01c2dc9f$05d98f10$640ea8c0@RUTHXP>
> wflawry wrote:
> 
> >
> > Looking at the PCI64 Programmer's Documentation, the DMA 
> > engine/controller does "nothing" for a non-terminal DMA block with 
> > zero length except the "DMA advances to the next block." Is this 
> > behavior well defined? Can one depend on the 
> > engine/controller setting the terminal bit on such a block 
> > before advancing? Or is the terminal bit always not set 
> > since there was no actual DMA for that block?
> 
> 
> Based on some LANai 7's and test code,  the terminal bit is 
> not set for 
> a zero-length dma, regardless of whether or not that 
> zero-length block 
> was the terminal block of a previous dma chain.  
> 
> Bill

One of GM developers offers this:

This is consistent with my understanding.  By "nothing" in the docs
really means "nothing".  The terminal bit is not set.  Zero length DMAs
do NOT perform like normal DMAs excepting only that no data is
transferred.

Yes, it's a pain: you do have to treat zero length DMAs specially.
-----

--Ruth