Hello,

I’m seeing a strange problem with rpmsg on BBB after installing AM3358 
Debian 10.3 2020-04-06 4GB SD IoT.  

$ cat /proc/version
Linux version 4.19.94-ti-r42 (voodoo@x3-am57xx-beagle-x15-2gb) (gcc version 
8.3.0 (Debian 8.3.0-6)) #1buster SMP PREEMPT Tue Mar 31 19:38:29 UTC 2020

$ lsb_release -d
Description: Debian GNU/Linux 10 (buster)

Reproducible using this hello world rpmsg example: 
https://github.com/tickbw/Beaglebone-PRU-RPMsg-HelloWorld

After starting the PRUs:
sudo sh -c "echo start > /sys/class/remoteproc/remoteproc0/state"
sudo sh -c "echo start > /sys/class/remoteproc/remoteproc1/state"

Running the hello userspace app an arbitrary number of times is 
successful.  Everything seems fine.
$ ./hello 
Message received from PRU_0: hello world_0
Message received from PRU_1: hello world_1

15 seconds later, and repeating every 15 seconds thereafter, the kernel 
removes and adds the PRU (as remoteproc 3 and 4 this time). This repeats 
indefinitely.  Any further attempts to run hello results in a kernel oops.  
If the hello app is never run, this still happens.

[  360.884172] remoteproc remoteproc1: remote processor 4a338000.pru is now 
up

[  376.013704] pru-rproc 4a338000.pru: pru_rproc_remove: removing rproc 
4a338000.pru

[  376.030081] pru-rproc 4a334000.pru: pru_rproc_remove: removing rproc 
4a334000.pru

[  376.111078] remoteproc remoteproc3: 4a334000.pru is available

[  376.128645] pru-rproc 4a334000.pru: PRU rproc node pru@4a334000 probed 
successfully

[  376.146324] remoteproc remoteproc4: 4a338000.pru is available

[  376.165866] pru-rproc 4a338000.pru: PRU rproc node pru@4a338000 probed 
successfully

[  391.758087] pru-rproc 4a338000.pru: pru_rproc_remove: removing rproc 
4a338000.pru

[  391.772782] remoteproc remoteproc4: releasing 4a338000.pru

[  391.785913] pru-rproc 4a334000.pru: pru_rproc_remove: removing rproc 
4a334000.pru

[  391.807367] remoteproc remoteproc3: releasing 4a334000.pru

[  391.867104] remoteproc remoteproc3: 4a334000.pru is available

[  391.882393] pru-rproc 4a334000.pru: PRU rproc node pru@4a334000 probed 
successfully

[  391.903894] remoteproc remoteproc4: 4a338000.pru is available

[  391.919233] pru-rproc 4a338000.pru: PRU rproc node pru@4a338000 probed 
successfully

Maybe a red herring, but I understand 
virtio_rpmsg_bus:rpmsg_send_offchannel_raw() has a 15 second timeout if it 
cannot obtain a buffer.  This seems unlikely as the hello program runs 
fine, many times, until 15 seconds elapses.

If the PRU firmware never calls rpmsg_init() or other rpmsg functions, then 
it happily runs forever.

I never saw this problem on Debian 8.6 and kernel 4.4.36-ti-r72. Any ideas?

Output of /opt/scripts/tools.version.sh, lsmod, and full dmesg attached.

Brian

-- 
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/abc2b263-7e3f-44aa-bc79-249598afff91%40googlegroups.com.

Attachment: dmesg
Description: Binary data

Attachment: lsmod
Description: Binary data

git:/opt/scripts/:[b39ec679648a6be8f25f48bd1c9784c1fc5a0c46]
eeprom:[A335BNLT00C03917BBBK2102]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Buster IoT Image 2020-04-06]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2019.04-00002-g07d5700e21]:[location: dd MBR]
UBOOT: Booted Device-Tree:[am335x-boneblack-uboot.dts]
UBOOT: Loaded Overlay:[AM335X-PRU-RPROC-4-19-TI-00A0]
UBOOT: Loaded Overlay:[BB-BONE-eMMC1-01-00A0]
kernel:[4.19.94-ti-r42]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[disable_uboot_overlay_video=1]
uboot_overlay_options:[disable_uboot_overlay_audio=1]
uboot_overlay_options:[disable_uboot_overlay_wireless=1]
uboot_overlay_options:[disable_uboot_overlay_adc=1]
uboot_overlay_options:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-19-TI-00A0.dtbo]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade <pkg>]
pkg:[bb-cape-overlays]:[4.14.20200430.0-0~buster+20200430]
pkg:[bb-wl18xx-firmware]:[1.20200420.1-0~buster+20200424]
pkg:[kmod]:[26-1]
WARNING:pkg:[librobotcontrol]:[NOT_INSTALLED]
pkg:[firmware-ti-connectivity]:[20190717-2rcnee1~buster+20200305]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal bluetooth netdev i2c gpio pwm eqep remoteproc admin spi iio docker tisdk weston-launch xenomai cloud9ide]
cmdline:[console=ttyO0,115200n8 root=/dev/mmcblk1p1 ro rootfstype=ext4 rootwait]
dmesg | grep remote
[   27.011803] remoteproc remoteproc0: 4a334000.pru is available
[   27.263688] remoteproc remoteproc1: 4a338000.pru is available
[   29.746981] remoteproc remoteproc2: wkup_m3 is available
[   29.821887] remoteproc remoteproc2: powering up wkup_m3
[   29.840360] remoteproc remoteproc2: Booting fw image am335x-pm-firmware.elf, size 217168
[   29.870477] remoteproc remoteproc2: remote processor wkup_m3 is now up
[  360.412716] remoteproc remoteproc0: powering up 4a334000.pru
[  360.429148] remoteproc remoteproc0: Booting fw image am335x-pru0-fw, size 74544
[  360.467667] remoteproc remoteproc0: registered virtio0 (type 7)
[  360.480112] remoteproc remoteproc0: remote processor 4a334000.pru is now up
[  360.748696] remoteproc remoteproc1: powering up 4a338000.pru
[  360.767629] remoteproc remoteproc1: Booting fw image am335x-pru1-fw, size 74544
[  360.868298] remoteproc remoteproc1: registered virtio1 (type 7)
[  360.884172] remoteproc remoteproc1: remote processor 4a338000.pru is now up
[  376.111078] remoteproc remoteproc3: 4a334000.pru is available
[  376.146324] remoteproc remoteproc4: 4a338000.pru is available
[  391.772782] remoteproc remoteproc4: releasing 4a338000.pru
[  391.807367] remoteproc remoteproc3: releasing 4a334000.pru
[  391.867104] remoteproc remoteproc3: 4a334000.pru is available
[  391.903894] remoteproc remoteproc4: 4a338000.pru is available
[  407.522829] remoteproc remoteproc4: releasing 4a338000.pru
[  407.556821] remoteproc remoteproc3: releasing 4a334000.pru
[  407.621724] remoteproc remoteproc3: 4a334000.pru is available
[  407.661341] remoteproc remoteproc4: 4a338000.pru is available
[  423.437139] remoteproc remoteproc4: releasing 4a338000.pru
[  423.487267] remoteproc remoteproc3: releasing 4a334000.pru
[  423.583396] remoteproc remoteproc3: 4a334000.pru is available
[  423.638806] remoteproc remoteproc4: 4a338000.pru is available
dmesg | grep pru
[   27.011803] remoteproc remoteproc0: 4a334000.pru is available
[   27.130032] pru-rproc 4a334000.pru: PRU rproc node pru@4a334000 probed successfully
[   27.263688] remoteproc remoteproc1: 4a338000.pru is available
[   27.346682] pru-rproc 4a338000.pru: PRU rproc node pru@4a338000 probed successfully
[  360.412716] remoteproc remoteproc0: powering up 4a334000.pru
[  360.429148] remoteproc remoteproc0: Booting fw image am335x-pru0-fw, size 74544
[  360.437231] pruss 4a300000.pruss: configured system_events[63-0] = 00000000,00030000
[  360.450547] pruss 4a300000.pruss: configured intr_channels = 0x00000005 host_intr = 0x00000005
[  360.480112] remoteproc remoteproc0: remote processor 4a334000.pru is now up
[  360.532553] virtio_rpmsg_bus virtio0: creating channel rpmsg-pru addr 0x1e
[  360.543758] rpmsg_pru virtio0.rpmsg-pru.-1.30: new rpmsg_pru device: /dev/rpmsg_pru30
[  360.748696] remoteproc remoteproc1: powering up 4a338000.pru
[  360.767629] remoteproc remoteproc1: Booting fw image am335x-pru1-fw, size 74544
[  360.784669] pruss 4a300000.pruss: configured system_events[63-0] = 00000000,000c0000
[  360.804129] pruss 4a300000.pruss: configured intr_channels = 0x0000000a host_intr = 0x0000000a
[  360.829566] virtio_rpmsg_bus virtio1: creating channel rpmsg-pru addr 0x1f
[  360.840387] rpmsg_pru virtio1.rpmsg-pru.-1.31: new rpmsg_pru device: /dev/rpmsg_pru31
[  360.884172] remoteproc remoteproc1: remote processor 4a338000.pru is now up
[  376.013704] pru-rproc 4a338000.pru: pru_rproc_remove: removing rproc 4a338000.pru
[  376.030081] pru-rproc 4a334000.pru: pru_rproc_remove: removing rproc 4a334000.pru
[  376.111078] remoteproc remoteproc3: 4a334000.pru is available
[  376.128645] pru-rproc 4a334000.pru: PRU rproc node pru@4a334000 probed successfully
[  376.146324] remoteproc remoteproc4: 4a338000.pru is available
[  376.165866] pru-rproc 4a338000.pru: PRU rproc node pru@4a338000 probed successfully
[  391.758087] pru-rproc 4a338000.pru: pru_rproc_remove: removing rproc 4a338000.pru
[  391.772782] remoteproc remoteproc4: releasing 4a338000.pru
[  391.785913] pru-rproc 4a334000.pru: pru_rproc_remove: removing rproc 4a334000.pru
[  391.807367] remoteproc remoteproc3: releasing 4a334000.pru
[  391.867104] remoteproc remoteproc3: 4a334000.pru is available
[  391.882393] pru-rproc 4a334000.pru: PRU rproc node pru@4a334000 probed successfully
[  391.903894] remoteproc remoteproc4: 4a338000.pru is available
[  391.919233] pru-rproc 4a338000.pru: PRU rproc node pru@4a338000 probed successfully
[  407.507281] pru-rproc 4a338000.pru: pru_rproc_remove: removing rproc 4a338000.pru
[  407.522829] remoteproc remoteproc4: releasing 4a338000.pru
[  407.536023] pru-rproc 4a334000.pru: pru_rproc_remove: removing rproc 4a334000.pru
[  407.556821] remoteproc remoteproc3: releasing 4a334000.pru
[  407.621724] remoteproc remoteproc3: 4a334000.pru is available
[  407.636646] pru-rproc 4a334000.pru: PRU rproc node pru@4a334000 probed successfully
[  407.661341] remoteproc remoteproc4: 4a338000.pru is available
[  407.676667] pru-rproc 4a338000.pru: PRU rproc node pru@4a338000 probed successfully
[  423.411592] pru-rproc 4a338000.pru: pru_rproc_remove: removing rproc 4a338000.pru
[  423.437139] remoteproc remoteproc4: releasing 4a338000.pru
[  423.455813] pru-rproc 4a334000.pru: pru_rproc_remove: removing rproc 4a334000.pru
[  423.487267] remoteproc remoteproc3: releasing 4a334000.pru
[  423.583396] remoteproc remoteproc3: 4a334000.pru is available
[  423.606348] pru-rproc 4a334000.pru: PRU rproc node pru@4a334000 probed successfully
[  423.638806] remoteproc remoteproc4: 4a338000.pru is available
[  423.658131] pru-rproc 4a338000.pru: PRU rproc node pru@4a338000 probed successfully
dmesg | grep pinctrl-single
[    0.894952] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
[    0.896211] gpio-of-helper ocp:cape-universal: ready
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
END

Reply via email to