I have PRU code working great on my BeagleBone Black industrial boards 
using the latest Debian 9.5 2018-10-07 4GB SD IoT flashed to eMMC, but even 
though the board boots up very quickly, I have to wait about *two minutes* 
after boot-up before the PRU cores can be used. Here's the last part of the 
dmesg output showing what I mean:

debian@beaglebone:~$ dmesg | tail -n 22
...
[   41.174241] Mass Storage Function, version: 2009/09/11
[   41.174265] LUN: removable file: (no medium)
[   41.986075] usb0: HOST MAC 44:ea:d8:aa:3e:b5
[   41.987686] usb0: MAC 44:ea:d8:aa:3e:b6
[   42.002600] usb1: HOST MAC 44:ea:d8:aa:3e:b8
[   42.006444] usb1: MAC 44:ea:d8:aa:3e:b9
[   42.254313] configfs-gadget gadget: high-speed config #1: c
[   43.850644] IPv6: ADDRCONF(NETDEV_UP): usb1: link is not ready
[  118.823084] pruss 4a300000.pruss: creating PRU cores and other child 
platform devices
[  118.859328] remoteproc remoteproc1: 4a334000.pru is available
[  118.859458] pru-rproc 4a334000.pru: PRU rproc node 
/ocp/pruss_soc_bus@4a326004/pruss@0/pru@34000 probed successfully
[  118.896237] remoteproc remoteproc2: 4a338000.pru is available
[  118.896367] pru-rproc 4a338000.pru: PRU rproc node 
/ocp/pruss_soc_bus@4a326004/pruss@0/pru@38000 probed successfully
[  119.798466] remoteproc remoteproc1: powering up 4a334000.pru
[  119.807907] remoteproc remoteproc1: Booting fw image am335x-pru0-fw, 
size 99712
[  119.808701] pruss 4a300000.pruss: configured system_events[63-0] = 
0x00000000.00030000
[  119.808715] pruss 4a300000.pruss: configured intr_channels = 0x00000005 
host_intr = 0x00000005
[  119.814687] remoteproc remoteproc1: registered virtio0 (type 7)
[  119.814707] remoteproc remoteproc1: remote processor 4a334000.pru is now 
up
[  124.697746] virtio_rpmsg_bus virtio0: creating channel rpmsg-pru addr 
0x1e
[  124.699741] virtio_rpmsg_bus virtio0: rpmsg host is online
[  124.774718] rpmsg_pru virtio0.rpmsg-pru.-1.30: new rpmsg_pru device: 
/dev/rpmsg_pru30


I didn't snip the output above; there is seriously nothing happening from 
44 seconds to 119 seconds!

I have a bash script to start my PRU program, which is executed by a 
systemd service, but I have to make the shell script wait in a while loop 
for a long time before it is able to echo 'start' to the appropriate link 
location, otherwise I get an error and my PRU program doesn't start up at 
all. This works, but having to wait a couple minutes is ridiculous:

#! /bin/sh
TIMEOUT=1
while [ ! -f /sys/class/remoteproc/remoteproc1/state ]; do
    sleep "$TIMEOUT"
done
echo 'start' > /sys/class/remoteproc/remoteproc1/state


Running modprobe -f pru_rproc before the two minutes have passed doesn't 
seem to help.

Has anybody else experienced this? Any idea why it takes so long? Or how I 
would go about debugging this incredibly long delay? Thanks!

-- Will Bain

-- 
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 beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/234059b6-2ad9-43d3-8ef4-0bde0142dd25%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to