Subject: Re: Using Bestcomm API (DMA) on MPC5200b with Linux?

From: Matt Sealey <[email-masked]>
Date: Mon, 27 Oct 2008 11:18:20 -0500

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 <[email-masked]>
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 <[email-masked]> 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 <[email-masked]>
>> 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
>>> [email-masked]
>>> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>>
>> _______________________________________________
>> Linuxppc-embedded mailing list
>> [email-masked]
>> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>>
> 
> 
>