svn commit: r199670 - head/sys/dev/bge

Joerg Sonnenberger joerg at britannica.bec.de
Mon Nov 23 21:00:46 UTC 2009


On Mon, Nov 23, 2009 at 12:53:24PM -0800, Pyun YongHyeon wrote:
> On Mon, Nov 23, 2009 at 02:05:11AM +0100, Joerg Sonnenberger wrote:
> > On Sun, Nov 22, 2009 at 08:50:27PM +0000, Pyun YongHyeon wrote:
> > > Log:
> > >   Fix two long standing bugs on bge(4). Most pre BCM5755 controllers
> > >   have a DMA bug when buffer address crosses a multiple of the 4GB
> > >   boundary(e.g. 4GB, 8GB, 12GB etc).
> > 
> > Does this only affect transfers that *cross* a 4GB boundary or does it
> > also affect transfers that *end* at a 4GB boundary? E.g. if the mbuf
> > cluster starts at 0xffffff00 with size 0x100 -- will the DMA engine
> > stall happen or not?
> > 
> 
> AFAIK publicly available datasheet explicitly mentions 4GB boundary
> limitation(page 153). For BCM5704 case, the datasheet also says
> buffer descriptors that ends exactly on any multiple of 4GB,
> BCM5704 will generate host address overflow error even though the
> buffer descriptor does not actually cross over the 4GB boundary
> (page 213).

I'm asking because the case of crossing the 4GB boundary could be
handled transparently via scatter/gather register. If the address
overflow happens for the boundary, a work-around in the bus-dma layer
would still be applied easy when scatter/gather is supported by the
device to bounce the last cache line or so.

Joerg


More information about the svn-src-all mailing list