PRU remoteproc[12] not appearing under /sys/class/remoteproc/

I’ve just set up a new Debian 9.5 (kernel 14.4.71-ti-r80) image and made the following changes to /boot/uEnv.txt:

`
disable_uboot_overlay_video=1
uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo

`

I’ve also disabled loading of the uio modules. (/etc/modprobe.d/pruss-blacklist.conf)

`
blacklist uio
blacklist uio_pdrv_genirq

`

However, I don’t see any evidence that the rproc module has loaded the PRU:
"uio\|pru"

Specifically, there is no module for the PRU in /sys/class/remoteproc/. remoteproc0 appears, but this is for the M3 power management unit.

Am I doing anything wrong? or is there an additional step to allow use of the PRUs? What should I look at to debug this issue?

Looks like Google groups cut off the diagnostic information. Here’s my lack of evidence that rproc loaded the PRU:
debian@beaglebone:/var/lib/cloud9$ lsmod | grep "pru\|uio" pru_rproc 28672 0 pruss 16384 1 pru_rproc pruss_intc 16384 1 pru_rproc debian@beaglebone:/var/lib/cloud9$ dmesg | grep "pru\|uio" debian@beaglebone:/var/lib/cloud9$ ls /sys/class/remoteproc/ remoteproc0

Please run this command and share the output:

sudo /opt/scripts/tools/version.sh

Regards,

Hi Robert,

Here’s the output:

`
debian@beaglebone:/var/lib/cloud9$ sudo /opt/scripts/tools/version.sh
git:/opt/scripts/:[1aa73453b2c980b75e31e83dab7dd8b6696f10c7]
]eprom:[A335BNLTBBG036Q
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Image 2018-10-07]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2018.09-00002-g0b54a51eee]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2016.03-00001-gd12d09f]:[location: dd MBR]
kernel:[4.14.71-ti-r80]
nodejs:[v6.14.4]
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:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo]
uboot_overlay_options:[enable_uboot_cape_universal=1]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade ]
pkg:[bb-cape-overlays]:[4.4.20180928.0-0rcnee0~stretch+20180928]
pkg:[bb-wl18xx-firmware]:[1.20180517-0rcnee0~stretch+20180517]
pkg:[kmod]:[23-2rcnee1~stretch+20171005]
pkg:[librobotcontrol]:[1.0.3-git20181005.0-0rcnee0~stretch+20181005]
pkg:[firmware-ti-connectivity]:[20170823-1rcnee1~stretch+20180328]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal i2c bluetooth netdev cloud9ide gpio pwm eqep admin spi tisdk weston-launch xenomai]
cmdline:[console=ttyO0,115200n8 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet]
dmesg | grep pinctrl-single
[ 1.039228] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
dmesg | grep gpio-of-helper
[ 1.040791] gpio-of-helper ocp:cape-universal: ready
END

`

Thanks!

Hi Robert,

Here's the output:
debian@beaglebone:/var/lib/cloud9$ sudo /opt/scripts/tools/version.sh
git:/opt/scripts/:[1aa73453b2c980b75e31e83dab7dd8b6696f10c7]
]eprom:[A335BNLTBBG036Q

I'm a little worried about your eeprom value, it's a BeagleBone Black
board right???

model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Image 2018-10-07]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2018.09-00002-g0b54a51eee]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2016.03-00001-gd12d09f]:[location: dd MBR]

Your version of u-boot in the eMMC is too old, thus blocking u-boot
overlays from working..

Just run:

sudo dd if=/dev/zero of=/dev/mmcblk1 bs=1M count=10

and reboot.

Regards,

Zeroing out that part of the eMMC fixed the issue, thanks so much!

And yes, I am running a BeagleBone Black although it might be very old and has probabaly been used on different projects. It’s colored black and there’s only one sticker on the ethernet port and it says “5V Rev C”. Also, the board only has a beagleboard.org logo in the silkscreen where the beaglebone logo appears in newer models, and there is no logo above the USB port. Additionally, the memory is manufactured by Kingston.

For others reading this, here’s the new version.sh output. What’s strange is that it now reports being a BeagleBone Green despite definitely being colored black.

debian@beaglebone:/var/lib/cloud9$ sudo /opt/scripts/tools/version.sh git:/opt/scripts/:[1aa73453b2c980b75e31e83dab7dd8b6696f10c7] ]eprom:[A335BNLTBBG036Q model:[TI_AM335x_BeagleBone_Green] dogtag:[BeagleBoard.org Debian Image 2018-10-07] bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2018.09-00002-g0b54a51eee]:[location: dd MBR] kernel:[4.14.71-ti-r80] nodejs:[v6.14.4] 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:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo] uboot_overlay_options:[enable_uboot_cape_universal=1] pkg check: to individually upgrade run: [sudo apt install --only-upgrade <pkg>] pkg:[bb-cape-overlays]:[4.4.20180928.0-0rcnee0~stretch+20180928] pkg:[bb-wl18xx-firmware]:[1.20180517-0rcnee0~stretch+20180517] pkg:[kmod]:[23-2rcnee1~stretch+20171005] pkg:[librobotcontrol]:[1.0.3-git20181005.0-0rcnee0~stretch+20181005] pkg:[firmware-ti-connectivity]:[20170823-1rcnee1~stretch+20180328] groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal i2c bluetooth netdev cloud9ide gpio pwm eqep admin spi tisdk weston-launch xenomai] cmdline:[console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet] dmesg | grep pinctrl-single [ 1.103422] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568 dmesg | grep gpio-of-helper [ 1.115386] gpio-of-helper ocp:cape-universal: ready END

So what you have is a mis-programmed BeagleBone Black from GHI

To fix this, run these commands:

1st: update the files in this local repo:

debian@test-bbb-2:~$ cd /opt/scripts/
debian@test-bbb-2:/opt/scripts$ git pull

2nd, Take a wire and Connect TP4 (between Ethernet and Barrel Plug) to GND

3rd as "root" run this "one line" dd command (between #########).. (as
gmail/google and most email mailers will word wrap it in 2 or 3 lines,
but it's one line)

I’ve updated the eeprom, ensuring TP4 is grounded while the eeprom is flashed. Everything looks correct now. Thanks again!

`
debian@beaglebone:/var/lib/cloud9$ sudo /opt/scripts/tools/version.sh

git:/opt/scripts/:[9df8deb6b2ae7570c9102ab58f795d3bed592194]
eeprom:[A335BNLT000CyywwBBoxxxx]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Image 2018-10-07]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2018.09-00002-g0b54a51eee]:[location: dd MBR]
kernel:[4.14.71-ti-r80]
nodejs:[v6.14.4]
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:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo]
uboot_overlay_options:[enable_uboot_cape_universal=1]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade ]
pkg:[bb-cape-overlays]:[4.4.20180928.0-0rcnee0~stretch+20180928]
pkg:[bb-wl18xx-firmware]:[1.20180517-0rcnee0~stretch+20180517]
pkg:[kmod]:[23-2rcnee1~stretch+20171005]
pkg:[librobotcontrol]:[1.0.3-git20181005.0-0rcnee0~stretch+20181005]
pkg:[firmware-ti-connectivity]:[20170823-1rcnee1~stretch+20180328]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal i2c bluetooth netdev cloud9ide gpio pwm eqep admin spi tisdk weston-launch xenomai]
cmdline:[console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet]
dmesg | grep remote
[ 1.453518] remoteproc remoteproc0: wkup_m3 is available
[ 1.534952] remoteproc remoteproc0: powering up wkup_m3
[ 1.535074] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217168
[ 1.539499] remoteproc remoteproc0: remote processor wkup_m3 is now up
[ 97.943644] remoteproc remoteproc1: 4a334000.pru is available
[ 97.945495] remoteproc remoteproc2: 4a338000.pru is available
dmesg | grep pru
[ 97.922748] pruss 4a300000.pruss: creating PRU cores and other child platform devices
[ 97.943644] remoteproc remoteproc1: 4a334000.pru is available
[ 97.943770] pru-rproc 4a334000.pru: PRU rproc node /ocp/pruss_soc_bus@4a326004/pruss@0/pru@34000 probed successfully
[ 97.945495] remoteproc remoteproc2: 4a338000.pru is available
[ 97.945604] pru-rproc 4a338000.pru: PRU rproc node /ocp/pruss_soc_bus@4a326004/pruss@0/pru@38000 probed successfully
dmesg | grep pinctrl-single
[ 1.104119] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
dmesg | grep gpio-of-helper
[ 1.116293] gpio-of-helper ocp:cape-universal: ready
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
END
`

I have the exact same issue, except my output from version.sh indicates the board id eeprom is programmed correctly? Any other ideas Robert?.. I’m playing around with migrating our device from 8.7 with 4.4 kernel up to something more recent and am coming up against this PRU issue…

Same issue with brand new beaglebone black wireless – just flashed with latest version of stretch.

debian@beaglebone:~$ ls /sys/class/remoteproc/
remoteproc0