AM335X-PRU-RPROC-4-9-TI-00A0 cannot boot any firmware

676 views
Skip to first unread message

Filippo Guerzoni

unread,
May 20, 2018, 1:41:41 PM5/20/18
to BeagleBoard
Hi,
I'm running latest debian image 'Linux beaglebone 4.9.82-ti-r102 #1 SMP PREEMPT Thu Feb 22 01:16:12 UTC 2018 armv7l GNU/Linux' on a BBB rev A5C.
I modified /boot/uEnv.txt to include:
- uboot_overlay_addr4=/lib/firmware/BB-UART4-00A0.dtbo
- uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-9-TI-00A0.dtbo
UART4 is working fine.
I have big troubles running GPIO Toggle example on pru (tested on pru0).

First of all:
I compiled the example onboard and I managed to get the binary .out file.
kernel does not seem to boot the firmware that I copied in '/lib/firmware/am335x-pru0-fw'
Looking at dmesg I have:
[   28.341503] ti-pruss 4a300000.pruss: creating PRU cores and other child platform devices
[   28.468932] remoteproc remoteproc1: 4a334000.pru0 is available
[   28.469056] pru-rproc 4a334000.pru0: PRU rproc node /ocp/pruss_soc_bus@4a326000/pruss@4a300000/pru@4a334000 probed successfully
[   28.508772] remoteproc remoteproc2: 4a338000.pru1 is available
[   28.508896] pru-rproc 4a338000.pru1: PRU rproc node /ocp/pruss_soc_bus@4a326000/pruss@4a300000/pru@4a338000 probed successfully
and anything about 'Booting...'
Also I have:
lsmod | grep pru
    pruss_soc_bus           4788  0
    pru_rproc              14966  0
    pruss_intc              9092  1 pru_rproc
    pruss                  10889  1 pru_rproc

Second:
I tried to config pin P9.29 to prout according to 0x0F toggle on R30 and I get:
debian@beaglebone:~$ config-pin P9.29 pruout
P9_29 pinmux file not found!
sudo: no askpass program specified, try setting SUDO_ASKPASS
Cannot write pinmux file: /sys/devices/platform/ocp/ocp*P9_29_pinmux/state

Third:
The only effect of commenting out BB-UART4-00A0 is that most of the GPIO return to be exported as they were by default in vanilla installation.
pru firmware still does not get booted.

I'm stuck at this problem.
Please give me some advice.
Thanks in advance
Best regards
Filippo

Filippo Guerzoni

unread,
May 26, 2018, 2:16:35 AM5/26/18
to BeagleBoard
I still cannot make it run
My confinguration is:

debian@beaglebone:~$ sudo /opt/scripts/tools/version.sh
[sudo] password for debian:
    git:/opt/scripts/:[5935e83ecaedfd4fd88a4b870ffe5af33ded0617]
    eeprom:[A335BNLT0A5C3313BBBK2454]
    model:[TI_AM335x_BeagleBone_Black]
    dogtag:[BeagleBoard.org Debian Image 2018-03-05]
    bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2018.01-00002-ge9ff418fb8]:[location: dd MBR]
    bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2018.01-00002-ge9ff418fb8]:[location: dd MBR]
    kernel:[4.9.82-ti-r102]
    nodejs:[v6.13.0]
    uboot_overlay_options:[enable_uboot_overlays=1]
    uboot_overlay_options:[uboot_overlay_addr4=/lib/firmware/BB-UART4-00A0.dtbo]
    uboot_overlay_options:[uboot_overlay_addr5=/lib/firmware/BB-I2C1-00A0.dtbo]
    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.20180305.0-0rcnee0~stretch+20180305]
    pkg:[bb-wl18xx-firmware]:[1.20170829-0rcnee2~stretch+20180104]
    pkg:[firmware-ti-connectivity]:[20170823-1rcnee0~stretch+20170830]
    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.391496] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
    dmesg | grep gpio-of-helper
    [    1.392591] gpio-of-helper ocp:cape-universal: ready
    END


1) Tried to issue:
sudo update-initramfs -uk `uname -r`
as suggested in a previous post
No changes.

2) tried to uncomment
#disable_uboot_overlay_video=1
#disable_uboot_overlay_audio=1
that resulted in new error:
[   27.142188] ti-pruss 4a300000.pruss: creating PRU cores and other child platform devices
[   27.231329] PM: bootloader does not support rtc-only!
[   27.269060] remoteproc remoteproc1: 4a334000.pru0 is available
[   27.269188] pru-rproc 4a334000.pru0: PRU rproc node /ocp/pruss_soc_bus@4a326000/pruss@4a300000/pru@4a334000 probed successfully
[   27.308335] remoteproc remoteproc2: 4a338000.pru1 is available
[   27.308460] pru-rproc 4a338000.pru1: PRU rproc node /ocp/pruss_soc_bus@4a326000/pruss@4a300000/pru@4a338000 probed successfully

3) Tried to use:
uboot_overlay_pru=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo
that show a new conflict

What I'm missing?
BR

pierric...@gadz.org

unread,
May 26, 2018, 12:03:09 PM5/26/18
to BeagleBoard
Hi Filippo
How are you trying to toggles the PRUs? I do not have a BBB with me this weekend but I’ll have a look at it on Monday.

BTW, I have struggled with PRU too so I’ve wrote this memo: hhttps://github.com/PierrickRauby/PRU-RPMsg-Setup-BeagleBoneBlack , hope it can help you

Thanks
Pierrick

Robert Nelson

unread,
May 26, 2018, 1:32:12 PM5/26/18
to Beagle Board, filippo....@gmail.com
On Sat, May 26, 2018 at 1:16 AM, Filippo Guerzoni
<filippo....@gmail.com> wrote:
> I still cannot make it run
> My confinguration is:

> kernel:[4.9.82-ti-r102]

> 3) Tried to use:
> uboot_overlay_pru=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo
> that show a new conflict

This kernel is too old for that pru option:

cd /opt/scripts/tools/
git pull
sudo ./update_kernel.sh --ti-channel --lts-4_9
sudo reboot


> pkg:[bb-cape-overlays]:[4.4.20180305.0-0rcnee0~stretch+20180305]

This pkg also needs to be updated:

sudo apt update
sudo apt install --only-upgrade bb-cape-overlays
sudo reboot

Regards,

--
Robert Nelson
https://rcn-ee.com/

Filippo Guerzoni

unread,
May 26, 2018, 2:20:32 PM5/26/18
to BeagleBoard
Thank you Pierrick,
your valuable job did the trick.

What I missed was that PRUs need to be explicity started and stopped.
I assumed that they just should have been automatically started by kernel.

So:
sudo sh -c "echo 'start' > /sys/class/remoteproc/remoteproc1/state"
[   91.626880] remoteproc remoteproc1: powering up 4a334000.pru0
[   91.636173] remoteproc remoteproc1: Booting fw image am335x-pru0-fw, size 32772
[   91.636250] remoteproc remoteproc1: remote processor 4a334000.pru0 is now up

sudo sh -c "echo 'stop' > /sys/class/remoteproc/remoteproc1/state"
[  100.781202] ti-pruss 4a300000.pruss: unconfigured system_events = 0xffffffffffffffff host_intr = 0x00000001
[  100.781230] remoteproc remoteproc1: stopped remote processor 4a334000.pru0

This solve the question but I'm not able to confirm that pin toggle example is working because I still need to set pinmux.
I think also that your work about data acquisition will be very helpful to me because I have to solve similar problem.

Thank you again.
Filippo

Filippo Guerzoni

unread,
May 26, 2018, 2:34:24 PM5/26/18
to BeagleBoard
Thank you RoberCNelson,

I did both updates as suggested even if I think not to use UIO method that I tried as a workaround.
I greatly prefer RMPROC method for obvious reasons. And previous post put me on the right path to boot the PRUs firmware using RMPROC.


By the way,
now the kernel complains about:
[   27.116011] pvrsrvkm: loading out-of-tree module taints kernel.
[   27.667847] [drm] Initialized pvr 1.14.3699939 20110701 on minor 0

and I still have following errors when I enable I2C and UART overlays and uncomment the HDMI and AUDIO disable.
[   26.911821] PM: bootloader does not support rtc-only!
I2C and UART are working fine.

Here's my updated config:
[sudo] password for debian:
git:/opt/scripts/:[92d9c6bcdf437a3a1b3933e9a415496398d9b16c]

eeprom:[A335BNLT0A5C3313BBBK2454]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Image 2018-03-05]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2018.01-00002-ge9ff418fb8]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2018.01-00002-ge9ff418fb8]:[location: dd MBR]
kernel:[4.9.88-ti-r111]

nodejs:[v6.13.0]
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[uboot_overlay_addr4=/lib/firmware/BB-UART4-00A0.dtbo]
uboot_overlay_options:[uboot_overlay_addr5=/lib/firmware/BB-I2C1-00A0.dtbo]
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-9-TI-00A0.dtbo]
pkg:[bb-cape-overlays]:[4.4.20180424.0-0rcnee0~stretch+20180424]

pkg:[bb-wl18xx-firmware]:[1.20170829-0rcnee2~stretch+20180104]
pkg:[firmware-ti-connectivity]:[20170823-1rcnee0~stretch+20170830]
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.407398] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
dmesg | grep gpio-of-helper
[    1.408469] gpio-of-helper ocp:cape-universal: ready
END

Thanks and regards
Filippo

Robert Nelson

unread,
May 26, 2018, 5:15:23 PM5/26/18
to Beagle Board


On Sat, May 26, 2018, 1:34 PM Filippo Guerzoni <filippo....@gmail.com> wrote:
Thank you RoberCNelson,

I did both updates as suggested even if I think not to use UIO method that I tried as a workaround.
I greatly prefer RMPROC method for obvious reasons. And previous post put me on the right path to boot the PRUs firmware using RMPROC.


By the way,
now the kernel complains about:
[   27.116011] pvrsrvkm: loading out-of-tree module taints kernel.
[   27.667847] [drm] Initialized pvr 1.14.3699939 20110701 on minor 0

and I still have following errors when I enable I2C and UART overlays and uncomment the HDMI and AUDIO disable.
[   26.911821] PM: bootloader does not support rtc-only!
I2C and UART are working fine.

Both are safe to ignore.

Regards,

Filippo Guerzoni

unread,
May 26, 2018, 5:38:08 PM5/26/18
to BeagleBoard
That's fine.
Thank you
Message has been deleted

pierric...@gadz.org

unread,
May 30, 2018, 4:06:25 PM5/30/18
to BeagleBoard
I am glad it works, i finally did not used the PRU for the data acquisition I am using the Industrial IO driver :
Thanks
Pierrick
Reply all
Reply to author
Forward
0 new messages