Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Jun 2003 10:03:46 -0400 (EDT)
From:      Andrew Gallatin <gallatin@cs.duke.edu>
To:        Terry Lambert <tlambert2@mindspring.com>
Cc:        freebsd-arch@freebsd.org
Subject:   Re: API change for bus_dma
Message-ID:  <16128.17218.973911.980939@grasshopper.cs.duke.edu>
In-Reply-To: <3EFD4755.49BAF150@mindspring.com>
References:  <3EF3C12F.9060303@btc.adaptec.com> <16124.39930.142492.356163@grasshopper.cs.duke.edu> <3EFC9F2D.6020908@btc.adaptec.com> <16124.43999.333761.397624@grasshopper.cs.duke.edu> <3EFCAC7A.6060305@btc.adaptec.com> <16124.45051.919899.414795@grasshopper.cs.duke.edu> <3EFD4755.49BAF150@mindspring.com>

next in thread | previous in thread | raw e-mail | index | archive | help

Terry Lambert writes:
 > Andrew Gallatin wrote:
 > > Most sparc's have 2 different sorts of DMA modes.  One is cache
 > > coherent (aka DDI_DMA_CONSISTENT) -- this is what we all know and love
 > > from PC, alphas, macs, etc.
 > 
 > "contiguous"
 > 
 > 
 > > The other mode (DDI_DMA_STREAMING) allows non cache coherent DMA.
 > > This requires you to call ddi_dma_sync() between your last touch of
 > > the data and you starting a DMA read from a device.  And vice-versa
 > > for a DMA write.
 > 
 > "scatter/gather"
 > 
 > > The reason people use DDI_DMA_STREAMING is because coherent DMA
 > > bandwith tends to be abysmal on most sparcs.
 > 


The idea is that I want to establish a mapping that can be used many
times without any driver or kernel attention.  I don't want to do
anything in terms of a system call, or interrupt, etc, to sync the
cache with the state of the DMA'ed page before a DMA read or after a DMA
write.

For example, scatter gather mapping on alphas (if FreeBSD supported it
for PCI devices) would be fine with me since its cache-coherent and
doesn't require any ddi_dma_sync() operations.


Drew




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?16128.17218.973911.980939>