William, 

Have you seen this.... when I enable the PRU with a device tree overlay, I 
get this if I type *top*:  (something to do with the interrupts taking up 
tons of CPU)



  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
  678 root      20   0   72872  21368   6372 S 11.2  4.2   0:03.56 node
  687 root      20   0   11324   2252   1552 R  6.2  0.4   0:00.43 
systemd-udevd
  691 root      20   0   11324   1644    948 R  6.2  0.3   0:00.42 
systemd-udevd
  692 root      20   0   11324   1644    948 R  6.2  0.3   0:00.41 
systemd-udevd
  685 root      20   0   11324   2312   1612 R  5.9  0.5   0:00.43 
systemd-udevd
  686 root      20   0   11324   2252   1552 R  5.9  0.4   0:00.43 
systemd-udevd
  689 root      20   0   11324   2188   1488 R  5.9  0.4   0:00.43 
systemd-udevd
  690 root      20   0   11324   2188   1488 R  5.9  0.4   0:00.42 
systemd-udevd
  693 root      20   0   11324   1644    948 R  5.9  0.3   0:00.41 
systemd-udevd
  680 root      20   0    8076   3524   3040 S  3.6  0.7   0:00.23 laserlux
    3 root      20   0       0      0      0 R  2.6  0.0   0:00.37 
ksoftirqd/0
  103 root      20   0       0      0      0 S  0.3  0.0   0:00.04 
usb-storage
  696 root      20   0    2980   1644   1288 R  0.3  0.3   0:00.06 top
    1 root      20   0   21836   3204   2120 S  0.0  0.6   0:06.05 systemd
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd
    4 root      20   0       0      0      0 S  0.0  0.0   0:00.02 
kworker/0:0
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 
kworker/0:0H
    6 root      20   0       0      0      0 S  0.0  0.0   0:00.33 
kworker/u2:0
    7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 
watchdog/0
    8 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 khelper
    9 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs
   10 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns
   11 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kswork
   12 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 perf
   13 root      20   0       0      0      0 S  0.0  0.0   0:00.04 
kworker/0:1
   14 root      20   0       0      0      0 S  0.0  0.0   0:00.00 
khungtaskd
   15 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback
   16 root      25   5       0      0      0 S  0.0  0.0   0:00.00 ksmd
   17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 crypto
   18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 
kintegrityd
   19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
   20 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kblockd


Then after a couple minutes, those processes disappear and this appears in 
/var/log/syslog

Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [679] 
/devices/platform/ocp/4a300000.pruss/uio/uio0 timeout; kill it
Nov 24 13:15:15 beaglebone rsyslogd-2007: action 'action 17' suspended, 
next retry is Tue Nov 24 13:15:45 2015 [try http://www.rsyslog.com/e/2007 ]
Nov 24 13:15:15 beaglebone systemd-udevd[172]: seq 2030 
'/devices/platform/ocp/4a300000.pruss/uio/uio0' killed
Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [680] 
/devices/platform/ocp/4a300000.pruss/uio/uio1 timeout; kill it
Nov 24 13:15:15 beaglebone systemd-udevd[172]: seq 2036 
'/devices/platform/ocp/4a300000.pruss/uio/uio1' killed
Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [681] 
/devices/platform/ocp/4a300000.pruss/uio/uio2 timeout; kill it
Nov 24 13:15:15 beaglebone systemd-udevd[172]: seq 2037 
'/devices/platform/ocp/4a300000.pruss/uio/uio2' killed
Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [683] 
/devices/platform/ocp/4a300000.pruss/uio/uio3 timeout; kill it
Nov 24 13:15:15 beaglebone systemd-udevd[172]: seq 2038 
'/devices/platform/ocp/4a300000.pruss/uio/uio3' killed
Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [684] 
/devices/platform/ocp/4a300000.pruss/uio/uio4 timeout; kill it
Nov 24 13:15:15 beaglebone systemd-udevd[172]: seq 2039 
'/devices/platform/ocp/4a300000.pruss/uio/uio4' killed
Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [685] 
/devices/platform/ocp/4a300000.pruss/uio/uio5 timeout; kill it
Nov 24 13:15:15 beaglebone systemd-udevd[172]: seq 2040 
'/devices/platform/ocp/4a300000.pruss/uio/uio5' killed
Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [686] 
/devices/platform/ocp/4a300000.pruss/uio/uio6 timeout; kill it
Nov 24 13:15:15 beaglebone systemd-udevd[172]: seq 2041 
'/devices/platform/ocp/4a300000.pruss/uio/uio6' killed
Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [687] 
/devices/platform/ocp/4a300000.pruss/uio/uio7 timeout; kill it
Nov 24 13:15:15 beaglebone systemd-udevd[172]: seq 2042 
'/devices/platform/ocp/4a300000.pruss/uio/uio7' killed
Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [681] terminated by 
signal 9 (Killed)
Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [683] terminated by 
signal 9 (Killed)
Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [679] terminated by 
signal 9 (Killed)
Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [680] terminated by 
signal 9 (Killed)
Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [684] terminated by 
signal 9 (Killed)
Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [685] terminated by 
signal 9 (Killed)
Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [686] terminated by 
signal 9 (Killed)
Nov 24 13:15:15 beaglebone systemd-udevd[172]: worker [687] terminated by 
signal 9 (Killed)
Nov 24 13:16:10 beaglebone systemd-timesyncd[209]: 
interval/delta/delay/jitter/drift 256s/-0.005s/0.075s/0.261s/-34ppm
Nov 24 13:16:10 beaglebone rsyslogd-2007: action 'action 17' suspended, 
next retry is Tue Nov 24 13:16:40 2015 [try http://www.rsyslog.com/e/2007 ]
Nov 24 13:16:56 beaglebone rsyslogd-2007: action 'action 17' suspended, 
next retry is Tue Nov 24 13:17:26 2015 [try http://www.rsyslog.com/e/2007 ]
Nov 24 13:17:01 beaglebone CRON[1650]: (root) CMD (   cd / && run-parts 
--report /etc/cron.hourly)


What's odd is my program continues to operate normally, and is using both 
PRU0 and PRU1 interrupts..

Erik





On Monday, November 23, 2015 at 12:03:04 PM UTC-8, William Hermans wrote:
>
> Micka,
>
> TI 4.x kernels will not work with "traditional" PRU stuff. TI kernels have 
> remoteproc enabled. . . which takes over the PRU in a different way.
>
> On Mon, Nov 23, 2015 at 9:41 AM, Micka <[email protected] <javascript:>> 
> wrote:
>
>> Hi, did you managed to make this kernel working with the PRU ? Because I 
>> got that :
>>
>>
>> https://www.mail-archive.com/[email protected]/msg32826.html
>>
>>
>> Micka,
>>
>> Le lun. 23 nov. 2015 17:38, Erik Stauber <[email protected] 
>> <javascript:>> a écrit :
>>
>>> William,
>>>
>>> I installed the 4.1.13-bone-rt-r16 kernel, and the /dev/uioX entires 
>>> showed up.  I guess I'll try using this one.  Thanks for the help!
>>>
>>> Erik
>>>
>>>
>>> On Saturday, November 21, 2015 at 9:44:14 PM UTC-8, William Hermans 
>>> wrote:
>>>
>>>> By the way, I had to make my own device tree overlay for the PRU. It's 
>>>> pretty simple. . . .
>>>>
>>>> /dts-v1/;
>>>> /plugin/;
>>>>
>>>> / {
>>>>     compatible = "ti,beaglebone", "ti,beaglebone-black";
>>>>
>>>>     /* identification */
>>>>     part-number = "pru_enable";
>>>>     version = "00A0";
>>>>
>>>>      fragment@0 {
>>>>              target = <&pruss>;
>>>>            __overlay__ {
>>>>                       status = "okay";
>>>>
>>>>                    };
>>>>         };
>>>>
>>>> };
>>>>
>>>> $ dtc -O dtb -o pru_enable-00A0.dtbo -b 0 -@ pru_enable-00A0.dts
>>>> $ sudo cp pru_enable-00A0.dtbo /lib/firmware/
>>>> $ sudo sh -c "echo 'pru_enable' > 
>>>> /sys/devices/platform/bone_capemgr/slots"
>>>> $ dmesg | grep pru_enable
>>>> [  886.921624] bone_capemgr bone_capemgr: part_number 'pru_enable', 
>>>> version 'N/A'
>>>> [  886.941686] bone_capemgr bone_capemgr: slot #6: 'Override Board 
>>>> Name,00A0,Override Manuf,pru_enable'
>>>> [  886.981959] bone_capemgr bone_capemgr: slot #6: dtbo 
>>>> 'pru_enable-00A0.dtbo' loaded; overlay id #0
>>>>
>>>> On Sat, Nov 21, 2015 at 10:36 PM, William Hermans <[email protected]> 
>>>> wrote:
>>>>
>>> bone-rt has real time enhancements. I do not know all the differences, 
>>>>> but the kernel latency seems to be reduced.
>>>>>
>>>>> Anyway, you do not see what ?
>>>>>
>>>>
>>>>> On Sat, Nov 21, 2015 at 7:08 PM, Erik Stauber <[email protected]> 
>>>>> wrote:
>>>>>
>>>>>> hmmm, i don't see that on 4.1.13-bone16.   Maybe I need to use 
>>>>>> 4.1.13-bone-rt-r16?  What is the difference between the bone and bone-rt?
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Friday, November 20, 2015 at 2:26:38 PM UTC-8, William Hermans 
>>>>>> wrote:
>>>>>>
>>>>>>> The kernel I'm using by the way . . .
>>>>>>>
>>>>>>> $ uname -a
>>>>>>> Linux beaglebone 4.1.9-bone-rt-r16 #1 Thu Oct 1 06:19:41 UTC 2015 
>>>>>>> armv7l GNU/Linux
>>>>>>>
>>>>>>> $ ls /dev/ |grep uio
>>>>>>> uio
>>>>>>> uio0
>>>>>>> uio1
>>>>>>> uio2
>>>>>>> uio3
>>>>>>> uio4
>>>>>>> uio5
>>>>>>> uio6
>>>>>>> uio7
>>>>>>>
>>>>>>> $ ./lsuio
>>>>>>> uio7: name=pruss_evt7, version=1.0, events=0
>>>>>>>         map[0]: addr=0x4A300000, size=524288
>>>>>>>         map[1]: addr=0x9E880000, size=262144
>>>>>>> uio6: name=pruss_evt6, version=1.0, events=0
>>>>>>>         map[0]: addr=0x4A300000, size=524288
>>>>>>>         map[1]: addr=0x9E880000, size=262144
>>>>>>> uio5: name=pruss_evt5, version=1.0, events=0
>>>>>>>         map[0]: addr=0x4A300000, size=524288
>>>>>>>         map[1]: addr=0x9E880000, size=262144
>>>>>>> uio4: name=pruss_evt4, version=1.0, events=0
>>>>>>>         map[0]: addr=0x4A300000, size=524288
>>>>>>>         map[1]: addr=0x9E880000, size=262144
>>>>>>> uio3: name=pruss_evt3, version=1.0, events=0
>>>>>>>         map[0]: addr=0x4A300000, size=524288
>>>>>>>         map[1]: addr=0x9E880000, size=262144
>>>>>>> uio2: name=pruss_evt2, version=1.0, events=0
>>>>>>>         map[0]: addr=0x4A300000, size=524288
>>>>>>>         map[1]: addr=0x9E880000, size=262144
>>>>>>> uio1: name=pruss_evt1, version=1.0, events=0
>>>>>>>         map[0]: addr=0x4A300000, size=524288
>>>>>>>         map[1]: addr=0x9E880000, size=262144
>>>>>>> uio0: name=pruss_evt0, version=1.0, events=0
>>>>>>>         map[0]: addr=0x4A300000, size=524288
>>>>>>>         map[1]: addr=0x9E880000, size=262144
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Nov 20, 2015 at 2:59 PM, William Hermans <[email protected]> 
>>>>>>> wrote:
>>>>>>>
>>>>>>>> The TI kernels have remoteproc enabled in the kernel, which will 
>>>>>>>> interfere with uio_pruss. You need to switch to a *bone* kernel.
>>>>>>>>
>>>>>>>> On Fri, Nov 20, 2015 at 9:59 AM, Erik Stauber <[email protected]> 
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> I'm trying to migrate to 4.1 from 3.8, and it seems as if the PRU 
>>>>>>>>> is up and running on the latest 4.1 kernel.  However, a difference is 
>>>>>>>>> the 
>>>>>>>>> I'm not getting the 8 uioX (x=0-8) entries in the /dev directory, and 
>>>>>>>>> therefore the prussdrv library errors out when it can't find those 
>>>>>>>>> files.
>>>>>>>>>
>>>>>>>>> The prussdrv is looking for this:
>>>>>>>>> sprintf(name, "/dev/uio%d", host_interrupt);
>>>>>>>>>
>>>>>>>>> The dmesg output on 4.1.13-ti-r33 reports that it is skipping intr 
>>>>>>>>> mapping...
>>>>>>>>>
>>>>>>>>> *[   20.830764] pru-rproc 4a334000.pru0: version 0 
>>>>>>>>> event_chnl_map_size 1 event_chnl_map 0000039c*
>>>>>>>>> *[   20.830799] pru-rproc 4a334000.pru0: sysevt-to-ch[60] -> 0*
>>>>>>>>> *[   20.830812] pru-rproc 4a334000.pru0: chnl-to-host[0] -> 0*
>>>>>>>>> *[   20.830823] pru-rproc 4a334000.pru0: skip intr mapping for 
>>>>>>>>> chnl 1*
>>>>>>>>> *[   20.830833] pru-rproc 4a334000.pru0: skip intr mapping for 
>>>>>>>>> chnl 2*
>>>>>>>>> *[   20.830844] pru-rproc 4a334000.pru0: skip intr mapping for 
>>>>>>>>> chnl 3*
>>>>>>>>> *[   20.830854] pru-rproc 4a334000.pru0: skip intr mapping for 
>>>>>>>>> chnl 4*
>>>>>>>>> *[   20.830864] pru-rproc 4a334000.pru0: skip intr mapping for 
>>>>>>>>> chnl 5*
>>>>>>>>> *[   20.830875] pru-rproc 4a334000.pru0: skip intr mapping for 
>>>>>>>>> chnl 6*
>>>>>>>>> *[   20.830885] pru-rproc 4a334000.pru0: skip intr mapping for 
>>>>>>>>> chnl 7*
>>>>>>>>> *[   20.830896] pru-rproc 4a334000.pru0: skip intr mapping for 
>>>>>>>>> chnl 8*
>>>>>>>>> *[   20.830906] pru-rproc 4a334000.pru0: skip intr mapping for 
>>>>>>>>> chnl 9*
>>>>>>>>>
>>>>>>>>> Does anyone know how to not skip that?  Or a way for me to map 
>>>>>>>>> them manually?
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Erik
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> -- 
>>>>>>>>> For more options, visit http://beagleboard.org/discuss
>>>>>>>>> --- 
>>>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>>>> Groups "BeagleBoard" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>>>> send an email to [email protected].
>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> -- 
>>>>>> For more options, visit http://beagleboard.org/discuss
>>>>>> --- 
>>>>>> You received this message because you are subscribed to the Google 
>>>>>> Groups "BeagleBoard" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>> send an email to [email protected].
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>> -- 
>>> For more options, visit http://beagleboard.org/discuss
>>> --- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "BeagleBoard" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected] <javascript:>.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> -- 
>> For more options, visit http://beagleboard.org/discuss
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "BeagleBoard" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to