<div dir="ltr"><span style="color:rgb(0,0,0)">Hi,</span><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">After I made sure that my fdt is correct I wondered why the pruss was still not accessible.</div><div style="color:rgb(0,0,0)">When I researched more about userspace drivers in Linux I found out, that I have overseen the pru UIO module in Linux.</div><div style="color:rgb(0,0,0)">This is the part that links the PRUs to the /dev/uio[0-7].</div><div style="color:rgb(0,0,0)">Which then would be used by the sources I currently use.</div><div style="color:rgb(0,0,0)">The UIO source is available here:</div><div style="color:rgb(0,0,0)"><a href="https://github.com/beagleboard/linux/blob/3.8/drivers/uio/uio_pruss.c" target="_blank">https://github.com/beagleboard/linux/blob/3.8/drivers/uio/uio_pruss.c</a></div><div style="color:rgb(0,0,0)">However this requires the linux UIO lib to load the modules and abstract the device into a file.</div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">While researching I also found that BSD has a PRU driver.</div><div style="color:rgb(0,0,0)">Also this driver is more feature rich as it support PRU debugging.</div><div style="color:rgb(0,0,0)">The sources can be found her:</div><div style="color:rgb(0,0,0)"><a href="https://bitbucket.org/rpaulo/libpru/src/default/" target="_blank">https://bitbucket.org/rpaulo/libpru/src/default/</a></div><div style="color:rgb(0,0,0)">Additionally I found these sources in the FreeBSD tree:</div><div style="color:rgb(0,0,0)"><a href="https://github.com/freebsd/freebsd/blob/250e158ddf52459661439141407bca505d199c19/sys/arm/ti/ti_pruss.c" target="_blank">https://github.com/freebsd/freebsd/blob/250e158ddf52459661439141407bca505d199c19/sys/arm/ti/ti_pruss.c</a><br></div><div style="color:rgb(0,0,0)">This code also registers the PRUs in /dev/.</div><div style="color:rgb(0,0,0)">On the other hand the BSD drivers have no documentation at all.</div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">These are the code lines that will fail without a file in /dev.</div><div style="color:rgb(0,0,0)">Linux: <a href="https://github.com/nilhoel1/rtems-pru/blob/master/ti/prussdrv.c#L265" target="_blank">https://github.com/nilhoel1/rtems-pru/blob/master/ti/prussdrv.c#L265</a></div><div style="color:rgb(0,0,0)">BSD: <a href="https://bitbucket.org/rpaulo/libpru/src/5cb7271533a96d177e73492f7cc40fa4b28396a5/ti-pru.c#lines-614" target="_blank">https://bitbucket.org/rpaulo/libpru/src/5cb7271533a96d177e73492f7cc40fa4b28396a5/ti-pru.c#lines-614</a></div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">So my questions are:</div><div style="color:rgb(0,0,0)">1. How are drivers registered to /dev in RTEMS? (examples)</div><div style="color:rgb(0,0,0)">2. Which driver would be a better starting point to bring pruss support to RTEMS?</div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">Best,</div><div style="color:rgb(0,0,0)">Nils Hölscher</div></div>