GSoC Linux UIO driver for PRU

Nils Hölscher nilhoel1 at gmail.com
Sat Jul 13 07:16:40 UTC 2019


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)
2. Which driver would be a better starting point to bring pruss support to
RTEMS?

Best,
Nils Hölscher
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20190713/52e468f7/attachment.html>


More information about the devel mailing list