Using Bestcomm API (DMA) on MPC5200b with Linux?

Matt Sealey matt at genesi-usa.com
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 (http://ozlabs.org/pipermail/linuxppc-dev/2007-October/044301.html)
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-usa.com>
Genesi, Manager, Developer Relations

Jon Smirl wrote:
> Was the new BestComm support in the 2.6.23.1 kernel he is using?
> 
> On Thu, Oct 23, 2008 at 6:28 PM, Matt Sealey <matt at genesi-usa.com> 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-usa.com>
>> 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 2.6.23.1 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 ozlabs.org
>>> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>>
>> _______________________________________________
>> Linuxppc-embedded mailing list
>> Linuxppc-embedded at ozlabs.org
>> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>>
> 
> 
> 



More information about the Linuxppc-embedded mailing list