[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