pru_rproc on latest Stretch IoT image

I broke my installation (screwed up node.js and bonescript versions, stuff went bad) so re-flashed my test hardware with the latest Stretch IoT image… I’m now figuring out how U-Boot overlays work, which seem pretty straightforward, just a few changes in uEnv.txt…

How the heck do I get pru_rproc to work again? I’m guessing I need to blacklist uio_pruss modules before I’ll start to see the results of a modprobe pru_rproc in a dmesg output?

During bootup I don’t see much in the way of output from the pru_rproc subsystem in dmesg, the only stuff there is related to what I assume is a power management peripheral:

[ 2.519084] remoteproc0: powering up wkup_m3
[ 2.519481] remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[ 2.521735] remoteproc0: remote processor wkup_m3 is now up
[ 2.521759] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
[ 2.521955] PM: bootloader does not support rtc-only!

I have copied my binary over and symlinked it against /lib/firmware/am335x-pru1-fw as before.

I broke my installation (screwed up node.js and bonescript versions, stuff
went bad) so re-flashed my test hardware with the latest Stretch IoT
image... I'm now figuring out how U-Boot overlays work, which seem pretty
straightforward, just a few changes in uEnv.txt...

How the heck do I get pru_rproc to work again? I'm guessing I need to
blacklist uio_pruss modules before I'll start to see the results of a
modprobe pru_rproc in a dmesg output?

During bootup I don't see much in the way of output from the pru_rproc
subsystem in dmesg, the only stuff there is related to what I assume is a
power management peripheral:

[ 2.519084] remoteproc0: powering up wkup_m3
[ 2.519481] remoteproc0: Booting fw image am335x-pm-firmware.elf, size
217148
[ 2.521735] remoteproc0: remote processor wkup_m3 is now up
[ 2.521759] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version =
0x192
[ 2.521955] PM: bootloader does not support rtc-only!

That's ^ the pm firmware, not for the pru...

I have copied my binary over and symlinked it against
/lib/firmware/am335x-pru1-fw as before.

Please run:

sudo /opt/scripts/tools/version.sh

and we will debug what's up with pru_rproc.

Regards,

debian@beaglebone:~$ sudo /opt/scripts/tools/version.sh
git:/opt/scripts/:[d36fe9a7be9ebfc872b10a470e904ab4c61c4516]
eeprom:[A335BNLT00C03816BBBK190D]
dogtag:[BeagleBoard.org Debian Image 2017-10-10]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2017.09-00002-g0f3f1c7907]
kernel:[4.4.91-ti-r133]
nodejs:[v6.11.4]
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[disable_uboot_overlay_emmc=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-9-TI-00A0.dtbo]
uboot_overlay_options:[enable_uboot_cape_universal=1]
pkg:[bb-cape-overlays]:[4.4.20171009.0-0rcnee1~stretch+20171009]
pkg:[bb-wl18xx-firmware]:[1.20170829-0rcnee1~stretch+20170829]
pkg:[firmware-ti-connectivity]:[20170823-1rcnee0~stretch+20170830]

I edited this line:

uboot_overlay_options:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-9-TI-00A0.dtbo]

To point at the .dtbo that matched my kernel revision - it didn’t make any difference.

debian@beaglebone:~$ sudo /opt/scripts/tools/version.sh

kernel:[4.4.91-ti-r133]

uboot_overlay_options:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-9-TI-00A0.dtbo]

I edited this line:

uboot_overlay_options:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-9-TI-00A0.dtbo]

To point at the .dtbo that matched my kernel revision - it didn't make any
difference.

Actually your running v4.4.x based kernel, use the

uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-4-TI-00A0.dtbo

option..

TI rewrote the pru_rproc again in v4.9.x so the device tree node is
incompatible.

Regards,

Gotcha - here is the output after correcting /boot/uEnv.txt:

debian@beaglebone:~$ sudo /opt/scripts/tools/version.sh
[sudo] password for debian:
git:/opt/scripts/:[d36fe9a7be9ebfc872b10a470e904ab4c61c4516]
eeprom:[A335BNLT00C03816BBBK190D]
dogtag:[BeagleBoard.org Debian Image 2017-10-10]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2017.09-00002-g0f3f1c7907]
kernel:[4.4.91-ti-r133]
nodejs:[v6.11.4]
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[disable_uboot_overlay_emmc=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-4-TI-00A0.dtbo]
uboot_overlay_options:[enable_uboot_cape_universal=1]
pkg:[bb-cape-overlays]:[4.4.20171009.0-0rcnee1~stretch+20171009]
pkg:[bb-wl18xx-firmware]:[1.20170829-0rcnee1~stretch+20170829]
pkg:[firmware-ti-connectivity]:[20170823-1rcnee0~stretch+20170830]

Gotcha - here is the output after correcting /boot/uEnv.txt:

debian@beaglebone:~$ sudo /opt/scripts/tools/version.sh
[sudo] password for debian:
git:/opt/scripts/:[d36fe9a7be9ebfc872b10a470e904ab4c61c4516]
eeprom:[A335BNLT00C03816BBBK190D]
dogtag:[BeagleBoard.org Debian Image 2017-10-10]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot
2017.09-00002-g0f3f1c7907]
kernel:[4.4.91-ti-r133]
nodejs:[v6.11.4]
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[disable_uboot_overlay_emmc=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-4-TI-00A0.dtbo]
uboot_overlay_options:[enable_uboot_cape_universal=1]
pkg:[bb-cape-overlays]:[4.4.20171009.0-0rcnee1~stretch+20171009]
pkg:[bb-wl18xx-firmware]:[1.20170829-0rcnee1~stretch+20170829]

Okay perfect!

Next for the pru firmware, the symlink might not work, but you'll need to run:

sudo /opt/scripts/tools/developers/update_initrd.sh

the initrd hook:

/usr/share/initramfs-tools/hooks/ti_pru_firmware

will copy the /lib/firmware/am335x-pru0-fw to the initrd so that the
pru will loaded early on bootup..

Regards,

Robert, thanks for the input so far. I had just come across this post

https://groups.google.com/forum/#!category-topic/beagleboard/boot/lS8QlNV8JCc

And tried the steps you outlined in there but with no joy. I’ve tried running the script

sudo /opt/scripts/tools/developers/update_initrd.sh

but again, not luck. I’m not actually getting any reference to pru_rproc at all from within the dmesg log, apart from in relation to the PM peripheral (whatever that is) - very odd.

I’m going to try again today with the 8.7 image from March '17

Robert, thanks for the input so far. I had just come across this post

https://groups.google.com/forum/#!category-topic/beagleboard/boot/lS8QlNV8JCc

And tried the steps you outlined in there but with no joy. I’ve tried running the script

sudo /opt/scripts/tools/developers/update_initrd.sh

but again, not luck. I’m not actually getting any reference to pru_rproc at all from within the dmesg log, apart from in relation to the PM peripheral (whatever that is) - very odd.

I’m going to try again today with the 8.7 image from March '17

An update - a clean install of 8.7 with the stock uEnv.txt results in the usual pru-rproc stuff in dmesg. Edit the file to enable u-boot overlays and the pru-rproc subsystem doesn’t load at boot time.

Robert, any idea why pru_ecap has gone from the config-pin options for P9_42?