GSoC Linux UIO driver for PRU

Nils Hölscher nilhoel1 at gmail.com
Sun Jul 14 09:13:42 UTC 2019


Thanks for your help.
I will go with the bitbucket libraries and will start to rewrite the bsd
<https://github.com/freebsd/freebsd/blob/250e158ddf52459661439141407bca505d199c19/sys/arm/ti/ti_pruss.c>
driver
for rtems.

Have you also seen the pructrl bitbucket repo?
https://bitbucket.org/rpaulo/pructl/src/default/
It is an interface for the drivers and I think this can be easily rewritten
into some rtems shell commands.

Nils

On Sun, 14 Jul 2019 at 01:35, Joel Sherrill <joel at rtems.org> wrote:

>
>
> On Sat, Jul 13, 2019 at 1:42 PM Chris Johns <chrisj at rtems.org> wrote:
>
>>
>>
>> On 13/7/19 5:16 pm, Nils Hölscher wrote:
>> > Hi,
>> >
>> > After I made sure that my fdt is correct I wondered why the pruss was
>> still not
>> > accessible.
>> > When I researched more about userspace drivers in Linux I found out,
>> that I have
>> > overseen the pru UIO module in Linux.
>> > This is the part that links the PRUs to the /dev/uio[0-7].
>> > Which then would be used by the sources I currently use.
>> > The UIO source is available here:
>> > https://github.com/beagleboard/linux/blob/3.8/drivers/uio/uio_pruss.c
>> > However this requires the linux UIO lib to load the modules and
>> abstract the
>> > device into a file.
>> >
>> > While researching I also found that BSD has a PRU driver.
>> > Also this driver is more feature rich as it support PRU debugging.
>> > The sources can be found her:
>> > https://bitbucket.org/rpaulo/libpru/src/default/
>> > Additionally I found these sources in the FreeBSD tree:
>> >
>> https://github.com/freebsd/freebsd/blob/250e158ddf52459661439141407bca505d199c19/sys/arm/ti/ti_pruss.c
>> > This code also registers the PRUs in /dev/.
>> > On the other hand the BSD drivers have no documentation at all.
>> >
>> > These are the code lines that will fail without a file in /dev.
>> > Linux:
>> https://github.com/nilhoel1/rtems-pru/blob/master/ti/prussdrv.c#L265
>> > BSD:
>> https://bitbucket.org/rpaulo/libpru/src/5cb7271533a96d177e73492f7cc40fa4b28396a5/ti-pru.c#lines-614
>> >
>> > So my questions are:
>> > 1. How are drivers registered to /dev in RTEMS? (examples)
>>
>> I suggest you look at cpukit/include/rtems/io.h and then for examples of
>> this
>> interface being used in the bsp directory.
>>
>
> There is a helper in the IO Manager which is implemented as a call to
> mknod()
> which is a standard call.
>
>>
>> > 2. Which driver would be a better starting point to bring pruss support
>> to RTEMS?
>>
>
>
>
>
>>
>> The bitbucket set of drivers look pretty good so I think just use them
>> and add
>> to the beagle bsp.
>>
>
> +1 If needed,
>
>>
>> Chris
>> _______________________________________________
>> devel mailing list
>> devel at rtems.org
>> http://lists.rtems.org/mailman/listinfo/devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20190714/2dc79212/attachment-0002.html>


More information about the devel mailing list