I’m trying to get UART2 and UART4 working via the PRUs. I thought I would start with the PRU-Codebook UART debugging examples and slowly work that way. I can follows the instruction, configure the pins via “config-pin” and run the examples just find, but if I try to configure the pins via the device tree files in uEnv.txt I cannot get UART to work and I’m not sure why.
Here is the beagle-verison output:
eeprom:[A335BNLT000C2327BBBG0023]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Bullseye IoT Image 2023-09-02]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot SPL 2022.04-ge0d31da5 (Aug 04 2023 - 18:48:26 +0000)]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot SPL 2022.04-ge0d31da5 (Aug 04 2023 - 18:48:26 +0000)]:[location: dd MBR]
UBOOT: Booted Device-Tree:[am335x-boneblack-uboot-univ.dts]
UBOOT: Loaded Overlay:[BB-ADC-00A0.kernel]
UBOOT: Loaded Overlay:[BB-BONE-eMMC1-01-00A0.kernel]
UBOOT: Loaded Overlay:[BB-HDMI-TDA998x-00A0.kernel]
UBOOT: Loaded Overlay:[BB-UART1-00A0]
UBOOT: Loaded Overlay:[BB-UART2-00A0]
UBOOT: Loaded Overlay:[BB-UART4-00A0]
kernel:[5.10.168-ti-r71]
nodejs:[v12.22.12]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[uboot_overlay_addr0=/lib/firmware/BB-UART2-00A0.dtbo]
uboot_overlay_options:[uboot_overlay_addr1=/lib/firmware/BB-UART4-00A0.dtbo]
uboot_overlay_options:[uboot_overlay_addr2=/lib/firmware/BB-UART1-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.14.20210821.0-0~bullseye+20210821]
pkg:[bb-customizations]:[1.20230720.1-0~bullseye+20230720]
pkg:[bb-usb-gadgets]:[1.20230414.0-0~bullseye+20230414]
pkg:[bb-wl18xx-firmware]:[1.20230414.0-0~bullseye+20230414]
pkg:[kmod]:[28-1]
WARNING:pkg:[librobotcontrol]:[NOT_INSTALLED]
pkg:[firmware-ti-connectivity]:[20210315-3]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal input render bluetooth netdev i2c gpio admin tisdk weston-launch cloud9ide]
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
[ 8.412861] remoteproc remoteproc0: wkup_m3 is available
[ 35.868032] remoteproc remoteproc0: powering up wkup_m3
[ 35.868070] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[ 35.868367] remoteproc remoteproc0: remote processor wkup_m3 is now up
[ 49.258249] remoteproc remoteproc1: 4a334000.pru is available
[ 49.298629] remoteproc remoteproc2: 4a338000.pru is available
[ 100.667045] remoteproc remoteproc1: powering up 4a334000.pru
[ 100.683800] remoteproc remoteproc1: Booting fw image am335x-pru0-fw, size 33864
[ 100.683886] remoteproc remoteproc1: remote processor 4a334000.pru is now up
[ 223.704432] remoteproc remoteproc2: powering up 4a338000.pru
[ 223.718894] remoteproc remoteproc2: Booting fw image am335x-pru1-fw, size 22088
[ 223.718979] remoteproc remoteproc2: remote processor 4a338000.pru is now up
[ 504.540862] remoteproc remoteproc2: stopped remote processor 4a338000.pru
[ 509.592482] remoteproc remoteproc1: stopped remote processor 4a334000.pru
[ 512.049230] remoteproc remoteproc1: powering up 4a334000.pru
[ 512.049627] remoteproc remoteproc1: Booting fw image am335x-pru0-fw, size 33864
[ 512.049703] remoteproc remoteproc1: remote processor 4a334000.pru is now up
dmesg | grep pru
[ 49.258249] remoteproc remoteproc1: 4a334000.pru is available
[ 49.298629] remoteproc remoteproc2: 4a338000.pru is available
[ 100.667045] remoteproc remoteproc1: powering up 4a334000.pru
[ 100.683800] remoteproc remoteproc1: Booting fw image am335x-pru0-fw, size 33864
[ 100.683886] remoteproc remoteproc1: remote processor 4a334000.pru is now up
[ 223.704432] remoteproc remoteproc2: powering up 4a338000.pru
[ 223.718894] remoteproc remoteproc2: Booting fw image am335x-pru1-fw, size 22088
[ 223.718979] remoteproc remoteproc2: remote processor 4a338000.pru is now up
[ 504.540862] remoteproc remoteproc2: stopped remote processor 4a338000.pru
[ 509.592482] remoteproc remoteproc1: stopped remote processor 4a334000.pru
[ 512.049230] remoteproc remoteproc1: powering up 4a334000.pru
[ 512.049627] remoteproc remoteproc1: Booting fw image am335x-pru0-fw, size 33864
[ 512.049703] remoteproc remoteproc1: remote processor 4a334000.pru is now up
dmesg | grep pinctrl-single
[ 7.970868] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
[ 7.972238] gpio-of-helper ocp:cape-universal: Failed to get gpio property of 'P8_03'
[ 7.972265] gpio-of-helper ocp:cape-universal: Failed to create gpio entry
[ 8.617063] gpio-of-helper ocp:cape-universal: Allocated GPIO id=0 name='P8_03'
[ 8.617264] gpio-of-helper ocp:cape-universal: Allocated GPIO id=1 name='P8_04'
[ 8.617446] gpio-of-helper ocp:cape-universal: Allocated GPIO id=2 name='P8_05'
[ 8.617625] gpio-of-helper ocp:cape-universal: Allocated GPIO id=3 name='P8_06'
[ 8.618067] gpio-of-helper ocp:cape-universal: Allocated GPIO id=4 name='P8_07'
[ 8.618296] gpio-of-helper ocp:cape-universal: Allocated GPIO id=5 name='P8_08'
[ 8.618586] gpio-of-helper ocp:cape-universal: Allocated GPIO id=6 name='P8_09'
[ 8.618777] gpio-of-helper ocp:cape-universal: Allocated GPIO id=7 name='P8_10'
[ 8.618955] gpio-of-helper ocp:cape-universal: Allocated GPIO id=8 name='P8_11'
[ 8.619116] gpio-of-helper ocp:cape-universal: Allocated GPIO id=9 name='P8_12'
[ 8.619379] gpio-of-helper ocp:cape-universal: Allocated GPIO id=10 name='P8_13'
[ 8.619555] gpio-of-helper ocp:cape-universal: Allocated GPIO id=11 name='P8_14'
[ 8.619720] gpio-of-helper ocp:cape-universal: Allocated GPIO id=12 name='P8_15'
[ 8.619893] gpio-of-helper ocp:cape-universal: Allocated GPIO id=13 name='P8_16'
[ 8.620081] gpio-of-helper ocp:cape-universal: Allocated GPIO id=14 name='P8_17'
[ 8.620255] gpio-of-helper ocp:cape-universal: Allocated GPIO id=15 name='P8_18'
[ 8.620421] gpio-of-helper ocp:cape-universal: Allocated GPIO id=16 name='P8_19'
[ 8.620581] gpio-of-helper ocp:cape-universal: Allocated GPIO id=17 name='P8_20'
[ 8.620756] gpio-of-helper ocp:cape-universal: Allocated GPIO id=18 name='P8_21'
[ 8.620912] gpio-of-helper ocp:cape-universal: Allocated GPIO id=19 name='P8_22'
[ 8.621082] gpio-of-helper ocp:cape-universal: Allocated GPIO id=20 name='P8_23'
[ 8.621278] gpio-of-helper ocp:cape-universal: Allocated GPIO id=21 name='P8_24'
[ 8.621471] gpio-of-helper ocp:cape-universal: Allocated GPIO id=22 name='P8_25'
[ 8.621661] gpio-of-helper ocp:cape-universal: Allocated GPIO id=23 name='P8_26'
[ 8.621819] gpio-of-helper ocp:cape-universal: Allocated GPIO id=24 name='P8_27'
[ 8.621998] gpio-of-helper ocp:cape-universal: Allocated GPIO id=25 name='P8_28'
[ 8.622166] gpio-of-helper ocp:cape-universal: Allocated GPIO id=26 name='P8_29'
[ 8.622326] gpio-of-helper ocp:cape-universal: Allocated GPIO id=27 name='P8_30'
[ 8.622593] gpio-of-helper ocp:cape-universal: Allocated GPIO id=28 name='P8_31'
[ 8.622771] gpio-of-helper ocp:cape-universal: Allocated GPIO id=29 name='P8_32'
[ 8.622939] gpio-of-helper ocp:cape-universal: Allocated GPIO id=30 name='P8_33'
[ 8.623114] gpio-of-helper ocp:cape-universal: Allocated GPIO id=31 name='P8_34'
[ 8.623288] gpio-of-helper ocp:cape-universal: Allocated GPIO id=32 name='P8_35'
[ 8.623461] gpio-of-helper ocp:cape-universal: Allocated GPIO id=33 name='P8_36'
[ 8.623632] gpio-of-helper ocp:cape-universal: Allocated GPIO id=34 name='P8_37'
[ 8.623800] gpio-of-helper ocp:cape-universal: Allocated GPIO id=35 name='P8_38'
[ 8.623973] gpio-of-helper ocp:cape-universal: Allocated GPIO id=36 name='P8_39'
[ 8.624138] gpio-of-helper ocp:cape-universal: Allocated GPIO id=37 name='P8_40'
[ 8.624314] gpio-of-helper ocp:cape-universal: Allocated GPIO id=38 name='P8_41'
[ 8.624482] gpio-of-helper ocp:cape-universal: Allocated GPIO id=39 name='P8_42'
[ 8.624643] gpio-of-helper ocp:cape-universal: Allocated GPIO id=40 name='P8_43'
[ 8.624821] gpio-of-helper ocp:cape-universal: Allocated GPIO id=41 name='P8_44'
[ 8.624978] gpio-of-helper ocp:cape-universal: Allocated GPIO id=42 name='P8_45'
[ 8.625150] gpio-of-helper ocp:cape-universal: Allocated GPIO id=43 name='P8_46'
[ 8.625326] gpio-of-helper ocp:cape-universal: Allocated GPIO id=44 name='P9_11'
[ 8.625495] gpio-of-helper ocp:cape-universal: Allocated GPIO id=45 name='P9_12'
[ 8.625691] gpio-of-helper ocp:cape-universal: Allocated GPIO id=46 name='P9_13'
[ 8.625850] gpio-of-helper ocp:cape-universal: Allocated GPIO id=47 name='P9_14'
[ 8.626024] gpio-of-helper ocp:cape-universal: Allocated GPIO id=48 name='P9_15'
[ 8.626191] gpio-of-helper ocp:cape-universal: Allocated GPIO id=49 name='P9_16'
[ 8.626351] gpio-of-helper ocp:cape-universal: Allocated GPIO id=50 name='P9_17'
[ 8.626626] gpio-of-helper ocp:cape-universal: Allocated GPIO id=51 name='P9_18'
[ 8.626832] gpio-of-helper ocp:cape-universal: Allocated GPIO id=52 name='P9_19'
[ 8.627007] gpio-of-helper ocp:cape-universal: Allocated GPIO id=53 name='P9_20'
[ 8.627183] gpio-of-helper ocp:cape-universal: Allocated GPIO id=54 name='P9_21'
[ 8.627343] gpio-of-helper ocp:cape-universal: Allocated GPIO id=55 name='P9_22'
[ 8.627523] gpio-of-helper ocp:cape-universal: Allocated GPIO id=56 name='P9_23'
[ 8.627705] gpio-of-helper ocp:cape-universal: Allocated GPIO id=57 name='P9_24'
[ 8.628164] gpio-of-helper ocp:cape-universal: Allocated GPIO id=58 name='P9_25'
[ 8.628366] gpio-of-helper ocp:cape-universal: Allocated GPIO id=59 name='P9_26'
[ 8.628538] gpio-of-helper ocp:cape-universal: Allocated GPIO id=60 name='P9_27'
[ 8.628710] gpio-of-helper ocp:cape-universal: Allocated GPIO id=61 name='P9_28'
[ 8.628890] gpio-of-helper ocp:cape-universal: Allocated GPIO id=62 name='P9_29'
[ 8.629050] gpio-of-helper ocp:cape-universal: Allocated GPIO id=63 name='P9_30'
[ 8.629226] gpio-of-helper ocp:cape-universal: Allocated GPIO id=64 name='P9_31'
[ 8.629387] gpio-of-helper ocp:cape-universal: Allocated GPIO id=65 name='P9_41'
[ 8.629563] gpio-of-helper ocp:cape-universal: Allocated GPIO id=66 name='P9_91'
[ 8.629739] gpio-of-helper ocp:cape-universal: Allocated GPIO id=67 name='P9_42'
[ 8.629901] gpio-of-helper ocp:cape-universal: Allocated GPIO id=68 name='P9_92'
[ 8.629912] gpio-of-helper ocp:cape-universal: ready
dmesg | grep wlcore
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
END
and here is my uEnv.txt file:
#Docs: http://elinux.org/Beagleboard:U-boot_partitioning_layout_2.0
uname_r=5.10.168-ti-r71
#uuid=
#dtb=
###U-Boot Overlays###
###Documentation: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays
###Master Enable
enable_uboot_overlays=1
###
###Overide capes with eeprom
uboot_overlay_addr0=/lib/firmware/BB-UART2-00A0.dtbo
uboot_overlay_addr1=/lib/firmware/BB-UART4-00A0.dtbo
uboot_overlay_addr2=/lib/firmware/BB-UART1-00A0.dtbo
#uboot_overlay_addr3=<file3>.dtbo
###
###Additional custom capes
#uboot_overlay_addr4=<file4>.dtbo
#uboot_overlay_addr5=<file5>.dtbo
#uboot_overlay_addr6=<file6>.dtbo
#uboot_overlay_addr7=<file7>.dtbo
###
###Custom Cape
#dtb_overlay=<file8>.dtbo
###
###Disable auto loading of virtual capes (emmc/video/wireless/adc)
#disable_uboot_overlay_emmc=1
#disable_uboot_overlay_video=1
#disable_uboot_overlay_audio=1
#disable_uboot_overlay_wireless=1
#disable_uboot_overlay_adc=1
###
###Cape Universal Enable
enable_uboot_cape_universal=1
###
###Debug: disable uboot autoload of Cape
#disable_uboot_overlay_addr0=1
#disable_uboot_overlay_addr1=1
#disable_uboot_overlay_addr2=1
#disable_uboot_overlay_addr3=1
###
###U-Boot fdt tweaks... (60000 = 384KB)
#uboot_fdt_buffer=0x60000
###U-Boot Overlays###
console=ttyS0,115200n8
cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet
#In the event of edid real failures, uncomment this next line:
#cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet video=HDMI-A-1:1024x768@60e
#Use an overlayfs on top of a read-only root filesystem:
#cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet overlayroot=tmpfs
##enable Generic eMMC Flasher:
#cmdline=init=/usr/sbin/init-beagle-flasher
Any help is greatly appreciated.