Re: API change for bus_dma
From: Terry Lambert (tlambert2_at_mindspring.com)
Date: 06/28/03
- Previous message: Oleg Sharoiko: "Re: dynamically linked root and nscd"
- In reply to: Andrew Gallatin: "Re: API change for bus_dma"
- Next in thread: Andrew Gallatin: "Re: API change for bus_dma"
- Reply: Andrew Gallatin: "Re: API change for bus_dma"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Date: Sat, 28 Jun 2003 00:44:21 -0700 To: Andrew Gallatin <gallatin@cs.duke.edu>
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.
I'm not surprised; in order to present a contiguous physical RAM
buffer to the device DMA engine, you have two choices:
1) Get lucky
2) Copy the data before triggering the DMA
The data copy is what kills you.
-- Terry
_______________________________________________
freebsd-arch@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-arch
To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"
- Previous message: Oleg Sharoiko: "Re: dynamically linked root and nscd"
- In reply to: Andrew Gallatin: "Re: API change for bus_dma"
- Next in thread: Andrew Gallatin: "Re: API change for bus_dma"
- Reply: Andrew Gallatin: "Re: API change for bus_dma"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]