Using Bestcomm API (DMA) on MPC5200b with Linux?

Dave Best arieswar24b at
Thu Dec 4 21:01:31 EST 2008

I tried to use GenBD.
I looked at "mpc52xx_ac97.c" which seems to be a sound driver which apparently uses the GenBD tasks, if only the tx ones and the buffers.

As i connected my FPGA/FiFo to the LocalPlus i called bcom_gen_bd_rx_init with LP as initiator and the LP FiFo address. I called  bcom_prepare_next_buffer and then bcom_submit_next_buffer and enabled my task.
In advance i prepared the LP registers to my intended transfers and to use CS1. But the task doesn't seem to call any chip select to fill its buffers. 

Frankly, i'm really at a loss on how to proceed.


--- Matt Sealey <matt at> schrieb am Fr, 24.10.2008:

> Von: Matt Sealey <matt at>
> Betreff: Re: Using Bestcomm API (DMA) on MPC5200b with Linux?
> An: linuxppc-embedded at
> CC: arieswar24b at
> Datum: Freitag, 24. Oktober 2008, 0:28
> 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