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

John Williams jwilliams at itee.uq.edu.au
Thu Feb 14 19:02:08 EST 2008


Hi,

Greg Ungerer wrote:

> Allon Stern wrote:
> 
>> On Feb 4, 2008, at 7:36 PM, Greg Ungerer wrote:
>>
>>> The current ColdFire DMA support in Linux is limited and a little
>>> out of date though, so it alone is not a good guide :-)
>>
>>
>> Any comments on the limitations?
> 
> Its just hasn't been looked at much over the years.
> It can certainly be brought up to date with the current
> kernel DMA API. Not sure how good a state the current
> code is in.
> 
> 
>> I'm hoping to use DMA in a device driver I'm writing for a 5282-based 
>> system.
> 
> 
> Using won't be a problem. Juts may take a little coding
> effort to bring it up to current standards.

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.

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.

There are a few limitations that come its originals as an API for Intel 
DMA controllers (no striding or keyhole DMA support for example), but 
wouldn't be hard to extend.

Regards,

John


More information about the uClinux-dev mailing list