MPC8349E's DMA controller like ISA controller but with more feature?
Scott Wood
scottwood at freescale.com
Tue Apr 21 01:55:11 EST 2009
On Mon, Apr 20, 2009 at 07:38:13PM +0700, lhthanh wrote:
> <body bgcolor="#ffffff" text="#000000">
> <font size="+1">Hi EveryOne!<br>
> <br>
> This is first time I send a letter to everyone. If I make mistake,
> please free to correct me. :)<br>
Please post in plaintext, not HTML.
> MPC8349's DMA controller like ISA controller but with more features?
No. It is for software-directed memory-to-memory transfers (where
"memory" can be main-memory, or the buffer of a device that doesn't do
DMA itself).
There is no need for anything like ISA's DMA controller, as devices that
want to initiate DMA can master the bus themselves.
> So in DMA APIs such as dma_addr_t dma_map_single(struct device *dev,
> void *cpu_addr, size_t size, enum dma_data_direction direction)
> *dev will pointer to DMA controller or to peripheral device(FPGA,
> ISA device)?
It is whatever device is going to be doing the DMA.
> From dmatest.c , *dev seem to pointer to a channel of DMA
> controller.
That's because in that case, the DMA controller is the peripheral
device being used.
> I want to DMA from device to memory.
What kind of device?
> So how to I can get address of peripheral device ?
If you have to ask that, it probably means you don't have a specific
device buffer in mind that you want an external entity to stuff data into
(or suck data from), but rather are dealing with device-initiated DMA.
In that case, ignore the DMA controller.
-Scott
More information about the Linuxppc-dev
mailing list