Ubuntu 20.04 on BBBlue - PRU / UART not loaded issue

I have some progress running Ubuntu 20.04 (with Kernel 4.19) on Beagle Blue.

(Ubuntu 20.04 is needed to install ROS Noetic binaries)

I still cannot load PRU and UART drivers. Any help will be appreciated:

ubuntu@beagle-blue:~$ rc_test_drivers

Kernel: 4.19.94-ti-rt-r73
rcn-ee.net Ubuntu 20.04.4 Console Image 2022-05-22
Debian: bullseye/sid

PASSED: gpio 0
PASSED: gpio 1
PASSED: gpio 2
PASSED: gpio 3
PASSED: pwm0
PASSED: pwm1
PASSED: pwm2
PASSED: eqep0
PASSED: eqep1
PASSED: eqep2
ERROR:  pru-rproc driver not loaded
ERROR:  uart1 driver not loaded
ERROR:  uart2 driver not loaded
ERROR:  uart4 driver not loaded
ERROR:  uart5 driver not loaded
PASSED: i2c1
PASSED: i2c2
PASSED: spi
PASSED: LED
PASSED: ADC iio

Currently running on a:
MODEL_BB_BLUE
Robot Control library Version:
1.0.5

/boot/uEnv.txt

uname_r=4.19.94-ti-rt-r73
enable_uboot_overlays=1
dtb_overlay=/lib/firmware/BB-I2C1-00A0.dtbo
dtb_overlay=/lib/firmware/BB-UART4-00A0.dtbo
dtb_overlay=/lib/firmware/BB-ADC-00A0.dtbo

#uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-19-TI-00A0.dtbo
#uboot_overlay_pru=/lib/firmware/BB-BONE-PRU-01-00A0.dtbo
uboot_overlay_pru=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo

enable_uboot_cape_universal=1

console=ttyS0,115200n8
cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet

version.sh output:

ubuntu@beagle-blue:~$ sudo /opt/scripts/tools/version.sh 
[sudo] password for ubuntu: 
git:/opt/scripts/:[674bb55e34e94e3837f4f55790c7d1a52c9e149f]
eeprom:[A335BNLTBLA21722EL002105]
model:[TI_AM335x_BeagleBone_Blue]
dogtag:[rcn-ee.net Ubuntu 20.04.4 Console Image 2022-05-22]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot SPL 2022.04-gd0771d53 (Jul 21 2022 - 02:13:23 +0000)]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot SPL 2022.04-gd0771d53 (Jul 21 2022 - 02:13:23 +0000)]:[location: dd MBR]
UBOOT: Booted Device-Tree:[am335x-boneblue.dts]
UBOOT: Loaded Overlay:[AM335X-PRU-UIO-00A0]
UBOOT: Loaded Overlay:[BB-ADC-00A0.bb.org-overlays]
UBOOT: Loaded Overlay:[BB-ADC-00A0.kernel]
kernel:[4.19.94-ti-rt-r73]
device-tree-override:[dtb=am335x-boneblue.dtb]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo]
uboot_overlay_options:[enable_uboot_cape_universal=1]
uboot_overlay_options:[dtb_overlay=/lib/firmware/BB-I2C1-00A0.dtbo]
uboot_overlay_options:[dtb_overlay=/lib/firmware/BB-UART4-00A0.dtbo]
uboot_overlay_options:[dtb_overlay=/lib/firmware/BB-ADC-00A0.dtbo]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade <pkg>]
pkg:[bb-cape-overlays]:[4.14.20210821.0-0~focal+20210821]
WARNING:pkg:[bb-customizations]:[NOT_INSTALLED]
pkg:[bb-usb-gadgets]:[1.20220816.0-0~focal+20220816]
pkg:[bb-wl18xx-firmware]:[1.20211222.2-0~focal+20211222]
pkg:[kmod]:[27-1ubuntu2]
WARNING:pkg:[librobotcontrol]:[NOT_INSTALLED]
groups:[ubuntu : ubuntu adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal input bluetooth netdev i2c admin tisdk weston-launch cloud9ide gpio]
cmdline:[console=ttyS0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet]
dmesg | grep remote
[   47.894674] remoteproc remoteproc0: wkup_m3 is available
[   47.912630] remoteproc remoteproc0: powering up wkup_m3
[   47.912654] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[   47.912951] remoteproc remoteproc0: remote processor wkup_m3 is now up
dmesg | grep pru
dmesg | grep pinctrl-single
[    1.091090] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
END

rc_test_encoders:

ubuntu@beagle-blue:~$ sudo rc_test_encoders
ERROR in rc_pru_stop opening remoteproc driver: No such file or directory
PRU probably not enabled in device tree
ERROR in rc_encoder_pru_init, failed to start PRU0
ERROR: failed to run rc_encoder_pru_init
ERROR: failed to run rc_encoder_init

Sorry wrong version of PRU, you need to use AM335X-PRU-RPROC-4-19-TI-00A0.dtbo with rc_test_drivers

Regards,

1 Like

@RobertCNelson - it’s getting better (PRU seems to be recognized), but it still not working:

ubuntu@beagle-blue:~$ sudo /opt/scripts/tools/version.sh
git:/opt/scripts/:[674bb55e34e94e3837f4f55790c7d1a52c9e149f]
eeprom:[A335BNLTBLA21722EL002105]
model:[TI_AM335x_BeagleBone_Blue]
dogtag:[rcn-ee.net Ubuntu 20.04.4 Console Image 2022-05-22]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot SPL 2022.04-gd0771d53 (Jul 21 2022 - 02:13:23 +0000)]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot SPL 2022.04-gd0771d53 (Jul 21 2022 - 02:13:23 +0000)]:[location: dd MBR]
UBOOT: Booted Device-Tree:[am335x-boneblue.dts]
UBOOT: Loaded Overlay:[AM335X-PRU-RPROC-4-19-TI-00A0]
UBOOT: Loaded Overlay:[BB-ADC-00A0.bb.org-overlays]
UBOOT: Loaded Overlay:[BB-ADC-00A0.kernel]
kernel:[4.19.94-ti-rt-r73]
device-tree-override:[dtb=am335x-boneblue.dtb]
/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:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-19-TI-00A0.dtbo]
uboot_overlay_options:[enable_uboot_cape_universal=1]
uboot_overlay_options:[dtb_overlay=/lib/firmware/BB-I2C1-00A0.dtbo]
uboot_overlay_options:[dtb_overlay=/lib/firmware/BB-UART4-00A0.dtbo]
uboot_overlay_options:[dtb_overlay=/lib/firmware/BB-ADC-00A0.dtbo]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade <pkg>]
pkg:[bb-cape-overlays]:[4.14.20210821.0-0~focal+20210821]
WARNING:pkg:[bb-customizations]:[NOT_INSTALLED]
pkg:[bb-usb-gadgets]:[1.20220816.0-0~focal+20220816]
pkg:[bb-wl18xx-firmware]:[1.20211222.2-0~focal+20211222]
pkg:[kmod]:[27-1ubuntu2]
WARNING:pkg:[librobotcontrol]:[NOT_INSTALLED]
groups:[ubuntu : ubuntu adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal input bluetooth netdev i2c admin tisdk weston-launch cloud9ide gpio]
cmdline:[console=ttyS0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet]
dmesg | grep remote
[   11.150818] remoteproc remoteproc0: 4a334000.pru is available
[   11.166829] remoteproc remoteproc1: 4a338000.pru is available
[   50.096675] remoteproc remoteproc2: wkup_m3 is available
[   50.116542] remoteproc remoteproc2: powering up wkup_m3
[   50.116564] remoteproc remoteproc2: Booting fw image am335x-pm-firmware.elf, size 217148
[   50.116862] remoteproc remoteproc2: remote processor wkup_m3 is now up
dmesg | grep pru
[   11.150818] remoteproc remoteproc0: 4a334000.pru is available
[   11.151022] pru-rproc 4a334000.pru: PRU rproc node pru@4a334000 probed successfully
[   11.166829] remoteproc remoteproc1: 4a338000.pru is available
[   11.167077] pru-rproc 4a338000.pru: PRU rproc node pru@4a338000 probed successfully
dmesg | grep pinctrl-single
[    1.089242] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
END

rc_test_drivers:

ubuntu@beagle-blue:~$ sudo rc_test_drivers

Kernel: 4.19.94-ti-rt-r73
rcn-ee.net Ubuntu 20.04.4 Console Image 2022-05-22
Debian: bullseye/sid

PASSED: gpio 0
PASSED: gpio 1
PASSED: gpio 2
PASSED: gpio 3
PASSED: pwm0
PASSED: pwm1
PASSED: pwm2
PASSED: eqep0
PASSED: eqep1
PASSED: eqep2
ERROR:  pru-rproc driver not loaded
ERROR:  uart1 driver not loaded
ERROR:  uart2 driver not loaded
ERROR:  uart4 driver not loaded
ERROR:  uart5 driver not loaded
PASSED: i2c1
PASSED: i2c2
PASSED: spi
PASSED: LED
PASSED: ADC iio

Currently running on a:
MODEL_BB_BLUE
Robot Control library Version:
1.0.5

Answering part of my own question:
To enable pru-rproc driver, I needed to install: sudo apt install bb-customizations

UART drivers are still not working