[uClinux-dev] Freescale's MCDMAAPI vs. Generic Linux DMA API on Coldfire MCF548x

Markus Franke markus.franke at informatik.tu-chemnitz.de
Fri Feb 15 03:09:49 EST 2008


Hi John,

thanks for the reply.

Zitat von John Williams <jwilliams at itee.uq.edu.au>:

> I've been looking at the 2.6 kernel's generic DMA layer recently.
> There are two aspects, the stuff described in DMA-IPA.txt is really
> more about how to allocate DMA-suitable memory regions for DMA, rather
> than the mechanics of DMA transactions themselves.

That's exactly what I was thinking.

> In the 2.6 kernel, drivers/dma/dmaengine.c implements a fairly generic
> DMA API for "standalone" DMA controllers, as opposed to DMA-capable
> peripherals (bus masters).  DMA controllers register themselves as
> devices, and clients register themselves as, well, clients.  THey then
> request a channel, and launch DMA transactiosn via the client API.

I am quite surprised to see this API. Thanks for the hint. Actually I  
was thinking about to provide functions like request_dma, free_dma,  
set_dma_count, set_dma_address, etc. in arch/m68knommu/dma.c for my  
MCF548x.

So what is the prefered way now or are both ways equal and it's just a  
matter of taste?

With best regards,
Markus Franke




More information about the uClinux-dev mailing list