Using Bestcomm API (DMA) on MPC5200b with Linux?

Matt Sealey matt at
Tue Oct 28 03:18:20 EST 2008

You know, Sylvain posted his patch the week after 2.6.23 was released
so I guess it's a big fat no.

However the original patchset or it (
should patch very easily.

The last thing you'd want is to code a driver using BestComm right now,
and then move to a new kernel later on in development and have to rewrite
it from scratch. The Freescale API really is dead as a dodo.

Matt Sealey <matt at>
Genesi, Manager, Developer Relations

Jon Smirl wrote:
> Was the new BestComm support in the kernel he is using?
> On Thu, Oct 23, 2008 at 6:28 PM, Matt Sealey <matt at> wrote:
>> You need to write a task that does the DMA operation you want; GenBD is
>> actually pretty generic and lets you just copy from one place to another.
>> The API is pretty simple; make sure genbd is compiled in, get the task
>> structure using bcom_gen_bd_[tr]x_init, and then.. uhh.. this is where I
>> always forget.
>> There is a way to submit a buffer descriptor and have the engine basically
>> perform that transfer. I think it's bcom_prepare_next_buffer and then
>> bcom_submit_next_buffer.
>> Actually I can't even FIND those functions in the Linux tree right now, but
>> they have to be in there because the FEC driver uses them..
>> --
>> Matt Sealey <matt at>
>> Genesi, Manager, Developer Relations
>> Dave Best wrote:
>>> I am trying to connect a FPGA/FIFO with my MPC5200b on a phytec PCM 030
>>> board  while running a Linux.
>>> The Linux Kernel source contains an implementation for the Bestcomm API in
>>> the form of a driver for ethernet (fec) and ATA.(situated in the
>>> arch-powerpc/sysdev/bestcomm path) I tried to make use of it but i've run
>>> into some problems.
>>> So i tried to include the API in a module to utilize its functionality but
>>> no luck till now.
>>> Freescale supports the Bestcomm DMA API not on an OS level. So the problem
>>> is adopting this API into a Linux environment, which distinguishes between
>>> kernel space and user space while writing to the appropriate registers.
>>> Further information is very hard to find for such a common task as
>>> starting a DMA transfer.
>>> Dave
>>>      _______________________________________________
>>> Linuxppc-embedded mailing list
>>> Linuxppc-embedded at
>> _______________________________________________
>> Linuxppc-embedded mailing list
>> Linuxppc-embedded at

More information about the Linuxppc-embedded mailing list