Cannot enable BBB UART3 and 5, Debian 12.11, 5.10.168-ti-r82

Here is a BBB with UART2 and 4 enabled and working. UART3 and 5 were enabled in uEnv.txt and dts files were created (is V1 an outdated version?) and compiled without error and dtbo files moved ( to /boot/dtbs/5.10.168-ti-r82/overlays/. However from Beagle-Version they do not show to be enabled and show-pins has them nowhere assigned. In opt/source/overlay-utils there are dtsi files and I tried to make (according to readme) uart5.dtsi results in

root@BeagleBone:/opt/source/bbb-pin-utils# make uart5.dtsi
make: *** No rule to make target 'uart5.dtsi'.  Stop.
root@BeagleBone:~# beagle-version
eeprom:[A335BNLT00C02247SBB11114]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Bookworm Minimal Image 2023-10-07]
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.dts]
UBOOT: Loaded Overlay:[BB-BONE-eMMC1-01-00A0.kernel]
UBOOT: Loaded Overlay:[BB-UART2-00A0.kernel]
UBOOT: Loaded Overlay:[BB-UART4-00A0.kernel]
kernel:[5.10.168-ti-r82]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[uboot_overlay_addr4=BB-UART2-00A0.dtbo]
uboot_overlay_options:[uboot_overlay_addr5=BB-UART4-00A0.dtbo]
uboot_overlay_options:[uboot_overlay_addr6=BB-UART5-00A0.dtbo]
uboot_overlay_options:[uboot_overlay_addr7=BB-UART3-00A0.dtbo]
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]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade <pkg>]
WARNING:pkg:[bb-cape-overlays]:[NOT_INSTALLED]
pkg:[bb-customizations]:[1.20240119.0-0~bookworm+20240119]
pkg:[bb-usb-gadgets]:[1.20250523.1-0~bookworm+20250527]
pkg:[bb-wl18xx-firmware]:[1.20230703.0-0~bookworm+20240703]
pkg:[kmod]:[30+20221128-1]
WARNING:pkg:[librobotcontrol]:[NOT_INSTALLED]
pkg:[firmware-ti-connectivity]:[20230210-5]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev us                        ers systemd-journal input render netdev i2c bluetooth gpio admin tisdk weston-la                        unch cloud9ide]
cmdline:[console=ttyS0,115200n8 root=/dev/mmcblk1p1 ro rootfstype=ext4 rootwait                         coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet]
dmesg | grep remote
[    5.357143] remoteproc remoteproc0: wkup_m3 is available
[   15.252037] systemd[1]: Reached target remote-fs.target - Remote File Systems                        .
[   36.070181] remoteproc remoteproc0: powering up wkup_m3
[   36.070222] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf,                         size 217148
[   36.070520] remoteproc remoteproc0: remote processor wkup_m3 is now up
[   41.610122] remoteproc remoteproc1: 4a334000.pru is available
[   41.611248] remoteproc remoteproc2: 4a338000.pru is available
dmesg | grep pru
[   41.610122] remoteproc remoteproc1: 4a334000.pru is available
[   41.611248] remoteproc remoteproc2: 4a338000.pru is available
dmesg | grep pinctrl-single
[    5.002117] pinctrl-single 44e10800.pinmux: 142 pins, size 568
[    5.044609] pinctrl-single 44e10800.pinmux: pin PIN92 already requested by 44                        e09000.serial; cannot claim for 481a6000.serial
[    5.056080] pinctrl-single 44e10800.pinmux: pin-92 (481a6000.serial) status -                        22
[    5.063510] pinctrl-single 44e10800.pinmux: could not request pin 92 (PIN92)                         from group pinmux_bb_uart3_pins  on device pinctrl-single
dmesg | grep gpio-of-helper
dmesg | grep wlcore
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
END
root@BeagleBone:~# /opt/source/bbb-pin-utils/show-pins
P8.25 / eMMC d0                    0 fast rx  up  1 mmc 1 d0         mmc@481d800                        0 (pinmux_emmc_pins)
P8.24 / eMMC d1                    1 fast rx  up  1 mmc 1 d1         mmc@481d800                        0 (pinmux_emmc_pins)
P8.05 / eMMC d2                    2 fast rx  up  1 mmc 1 d2         mmc@481d800                        0 (pinmux_emmc_pins)
P8.06 / eMMC d3                    3 fast rx  up  1 mmc 1 d3         mmc@481d800                        0 (pinmux_emmc_pins)
P8.23 / eMMC d4                    4 fast rx  up  1 mmc 1 d4         mmc@481d800                        0 (pinmux_emmc_pins)
P8.22 / eMMC d5                    5 fast rx  up  1 mmc 1 d5         mmc@481d800                        0 (pinmux_emmc_pins)
P8.03 / eMMC d6                    6 fast rx  up  1 mmc 1 d6         mmc@481d800                        0 (pinmux_emmc_pins)
P8.04 / eMMC d7                    7 fast rx  up  1 mmc 1 d7         mmc@481d800                        0 (pinmux_emmc_pins)
P8.19                              8 fast rx down 7 gpio 0.22
P8.13                              9 fast rx down 7 gpio 0.23
P8.14                             10 fast rx down 7 gpio 0.26
P8.17                             11 fast rx down 7 gpio 0.27
P8.12                             12 fast rx down 7 gpio 1.12
P8.11                             13 fast rx down 7 gpio 1.13
P8.16                             14 fast rx down 7 gpio 1.14
P8.15                             15 fast rx down 7 gpio 1.15
P9.15                             16 fast rx down 7 gpio 1.16
P9.23                             17 fast rx down 7 gpio 1.17
P9.14                             18 fast rx down 7 gpio 1.18
P9.16                             19 fast rx down 7 gpio 1.19
P9.11                             28 fast rx      6 uart 4 rxd       serial@481a                        8000 (pinmux_bb_uart4_pins)
P9.13                             29 fast         6 uart 4 txd       serial@481a                        8000 (pinmux_bb_uart4_pins)
P9.12                             30 fast rx  up  7 gpio 1.28
P8.26                             31 fast rx  up  7 gpio 1.29
P8.21 / eMMC clk                  32 fast rx  up  2 mmc 1 clk        mmc@481d800                        0 (pinmux_emmc_pins)
P8.20 / eMMC cmd                  33 fast rx  up  2 mmc 1 cmd        mmc@481d800                        0 (pinmux_emmc_pins)
P9.15                             34 fast rx  up  7 gpio 2.00
P8.18                             35 fast rx down 7 gpio 2.01
P8.07                             36 fast rx  up  7 gpio 2.02
P8.08                             37 fast rx  up  7 gpio 2.03
P8.10                             38 fast rx  up  7 gpio 2.04
P8.09                             39 fast rx  up  7 gpio 2.05
P8.45 / hdmi / sysboot 0          40 fast rx      7 gpio 2.06
P8.46 / hdmi / sysboot 1          41 fast rx      7 gpio 2.07
P8.43 / hdmi / sysboot 2          42 fast rx      7 gpio 2.08
P8.44 / hdmi / sysboot 3          43 fast rx      7 gpio 2.09
P8.41 / hdmi / sysboot 4          44 fast rx      7 gpio 2.10
P8.42 / hdmi / sysboot 5          45 fast rx      7 gpio 2.11
P8.39 / hdmi / sysboot 6          46 fast rx      7 gpio 2.12
P8.40 / hdmi / sysboot 7          47 fast rx      7 gpio 2.13
P8.37 / hdmi / sysboot 8          48 fast rx      7 gpio 2.14
P8.38 / hdmi / sysboot 9          49 fast rx      7 gpio 2.15
P8.36 / hdmi / sysboot 10         50 fast rx      7 gpio 2.16
P8.34 / hdmi / sysboot 11         51 fast rx      7 gpio 2.17
P8.35 / hdmi / sysboot 12         52 fast rx      7 gpio 0.08
P8.33 / hdmi / sysboot 13         53 fast rx      7 gpio 0.09
P8.31 / hdmi / sysboot 14         54 fast rx      7 gpio 0.10
P8.32 / hdmi / sysboot 15         55 fast rx      7 gpio 0.11
P8.27 / hdmi                      56 fast rx down 7 gpio 2.22
P8.29 / hdmi                      57 fast rx down 7 gpio 2.23
P8.28 / hdmi                      58 fast rx down 7 gpio 2.24
P8.30 / hdmi                      59 fast rx down 7 gpio 2.25
P9.22 / spi boot clk              84 fast rx      1 uart 2 rxd       serial@4802                        4000 (pinmux_bb_uart2_pins)
P9.21 / spi boot in               85 fast         1 uart 2 txd       serial@4802                        4000 (pinmux_bb_uart2_pins)
P9.18 / spi boot out              86 fast rx  up  7 gpio 0.04
P9.17 / spi boot cs               87 fast rx  up  7 gpio 0.05
P9.42                             89 fast rx down 7 gpio 0.07
P9.20 / cape i²c sda              94 fast rx  up  3 i²c 2 sda        i2c@4819c00                        0 (pinmux_i2c2_pins)
P9.19 / cape i²c scl              95 fast rx  up  3 i²c 2 scl        i2c@4819c00                        0 (pinmux_i2c2_pins)
P9.26                             96 fast rx  up  7 gpio 0.14
P9.24                             97 fast rx  up  7 gpio 0.15
P9.31 / hdmi audio clk           100 fast    down 6 pru 0 in 0       serial@481a                        a000 (pinmux_bb_uart5_pins)
P9.29 / hdmi audio fs            101 fast    down 6 pru 0 in 1       serial@481a                        a000 (pinmux_bb_uart5_pins)
P9.30                            102 fast    down 6 pru 0 in 2       serial@481a                        a000 (pinmux_bb_uart5_pins)
P9.28 / hdmi audio data          103 fast    down 6 pru 0 in 3       serial@481a                        a000 (pinmux_bb_uart5_pins)
P9.42                            104 fast rx down 7 gpio 3.18
P9.27                            105 fast rx down 7 gpio 3.19
P9.41                            106 fast rx down 7 gpio 3.20
P9.25 / audio osc                107 fast rx down 7 gpio 3.21
P9.41 / jtag emu3                109 fast rx down 7 gpio 0.20
root@BeagleBone:~# ^C

where did ya get the dts from for UART3 and 5, they don’t seem to be with this image

./dtb-5.10-ti/src/arm/overlays/BB-UART1-00A0.dts
./dtb-5.10-ti/src/arm/overlays/BB-UART4-00A0.dts
./dtb-5.10-ti/src/arm/overlays/BB-UART2-00A0.dts

Created myself.

/dts-v1/;
/plugin/;

/ {
    compatible = "ti,beaglebone", "ti,beaglebone-black";

    fragment@0 {
        target = <&am33xx_pinmux>;
        __overlay__ {
            bb_uart5_pins: pinmux_bb_uart5_pins {
                pinctrl-single,pins = <
                    0x190 0x06  /* uart5_rxd  on P8_37 */
                    0x194 0x06  /* uart5_txd  on P8_38 */
                    0x198 0x06  /* uart5_rtsn on P8_32 */
                    0x19C 0x06  /* uart5_ctsn on P8_31 */
                >;
            };
        };
    };

    fragment@1 {
        target = <&uart5>;
        __overlay__ {
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&bb_uart5_pins>;
        };
    };
};

dtc -O dtb -o BB-UART5-00A0.dtbo -b 0 -@ BB-UART5.dts

Compiled without error

just looking at the original post
if you remove the UART5 dtb file from uEnv.txt, do you still get the following error?

not sure mode 6 is correct, per am3358.pdf, it should be mode 4 for rx and tx, mode 6 is for cts and rts
are you sure the offset are correct?

Thank you for helping!

The pinmux error is related to UART3. When I disable UART3 in uEnv.txt the error is gone, but UART5 still is not there. But the error shows that the dtbo files are tried to be loaded.

Per you advise I have disabled RTS/CTS pins and changed mode to 4, with no changes. I have then tried to compile /dtb-5.10-ti/src/arm/overlays/BB-UART5-00A0.dts, which ends in

Error: BB-UART5-00A0.dts:14.1-9 syntax error
FATAL ERROR: Unable to parse input tree

The error relates to #include <dt-bindings/board/am335x-bbw-bbb-base.h> which is present.

I suspect that some major changes with overlay technique have occurred in 5.10. which have not been followed up in docs. I don’t believe that using more UARTs than 2 and 4 is an uncommon concept, so there should be a viable solution somewhere.

Thanks.

Finally for the records. This is a working sample for UART5.
Conclusion: dts files in github /bb-overlays cannot be compiled by my

dtc -O dtb -o BB-UART5-00A0.dtbo -b 0 -@ BB-UART5-00A0.dts

without error (TIMESTAMP, include files). Without what is now fragment@0 “chosen” the overlay does not show in beagle-version. Ignore warning about “chosen”.

And: most samples found elsewhere have mode or pinmux hex code wrong, including AI. The definitive cross references are only: Making sure you're not a bot! and bb.org-overlays/include/dt-bindings/board/am335x-bbw-bbb-base.h at master · beagleboard/bb.org-overlays · GitHub

/dts-v1/;
/plugin/;

/ {
	fragment@0 {
		target-path="/";
		__overlay__ {

			chosen {
				overlays {
					BB-UART5-00A0 = "2025-08-03"; /* replaced __TIMESTAMP__*/
				};
			};
		};
	};

    fragment@1 {
        target = <&am33xx_pinmux>;
        __overlay__ {
            uart5_pins: pinmux_uart5_pins {
                pinctrl-single,pins = <
 ....
                >;
            };
        };
    };

    fragment@2 {
        target = <&uart5>;
        __overlay__ {
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&uart5_pins>;
        };
    };
};