Using Bestcomm API (DMA) on MPC5200b with Linux?

Matt Sealey matt at
Fri Oct 24 09:28:02 EST 2008

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

More information about the Linuxppc-embedded mailing list