Thank you so much, RobertCNelson.
wget https://beagle-pkgs.gitlab.io/u-boot-am335x-beagle/get_n_install.sh ; \
chmod +x get_n_install.sh ; \
sudo ./get_n_install.sh
After running the above command and rebooting, I was able to switch to UART1 while keeping HDMI active. Everything worked perfectly. Thanks to you, Robert. I really appreciate it.
For reference, I’m sharing the results of beagle-version and the contents of uEnv.txt below. I hope this can be helpful for anyone who, like me, wants to use HDMI and UART communication at the same time but has run into issues.
sudo beagle-version
eeprom:[A335BNLTEID02525SBI13086]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Bookworm Base Image 2025-05-27]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot SPL 2022.04-g5509547b (Jan 21 2026 - 01:26:01 +0000)]:[location: dd MBR]
UBOOT: Booted Device-Tree:[am335x-boneblack-uboot.dts]
UBOOT: Loaded Overlay:[AM335X-PRU-UIO-00A0.kernel]
UBOOT: Loaded Overlay:[BB-ADC-00A0.kernel]
UBOOT: Loaded Overlay:[BB-BONE-eMMC1-01-00A0.kernel]
UBOOT: Loaded Overlay:[BB-HDMI-IT66122-00A0.kernel]
UBOOT: Loaded Overlay:[BB-UART1-00A0.kernel]
kernel:[6.12.64-bone43]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[uboot_overlay_addr4=BB-UART1-00A0.dtbo]
uboot_overlay_options:[uboot_overlay_pru=AM335X-PRU-UIO-00A0.dtbo]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade <pkg>]
pkg:[bb-customizations]:[1.20250808.0-0~bookworm+20250808]
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]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal input render netdev i2c bluetooth gpio admin tisdk weston-launch]
cmdline:[console=ttyS0,115200n8 root=/dev/mmcblk1p3 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet]
dmesg | grep remote
[ 13.433884] systemd[1]: Reached target remote-fs.target - Remote File Systems.
[ 31.779416] remoteproc remoteproc0: wkup_m3 is available
[ 39.436998] remoteproc remoteproc0: powering up wkup_m3
[ 39.478006] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[ 39.478287] remoteproc remoteproc0: remote processor wkup_m3 is now up
dmesg | grep pru
dmesg | grep pinctrl-single
[ 4.296201] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
dmesg | grep wlcore
lsusb
Bus 001 Device 002: ID 30de:6544 KIOXIA TransMemory
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
END
/boot/uEnv.txt
#Docs: http://elinux.org/Beagleboard:U-boot_partitioning_layout_2.0
uname_r=6.12.64-bone43
#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=/boot/dtbs/6.12.64-bone43/overlays/BB-HDMI-TDA998x-00A0.dtbo
#uboot_overlay_addr1=<file1>.dtbo
#uboot_overlay_addr2=<file2>.dtbo
#uboot_overlay_addr3=<file3>.dtbo
###
###Additional custom capes
uboot_overlay_addr4=BB-UART1-00A0.dtbo
#uboot_overlay_addr5=/boot/dtbs/6.12.64-bone43/overlays/BB-HDMI-IT66122-00A0.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
###
###PRUSS OPTIONS
###pru_rproc (4.14.x-ti kernel)
#uboot_overlay_pru=AM335X-PRU-RPROC-4-14-TI-00A0.dtbo
###pru_rproc (4.19.x-ti kernel)
#uboot_overlay_pru=AM335X-PRU-RPROC-4-19-TI-00A0.dtbo
###pru_uio (4.14.x-ti, 4.19.x-ti & mainline/bone kernel)
uboot_overlay_pru=AM335X-PRU-UIO-00A0.dtbo
###
###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
I’ve messed around with the contents of uEnv.txt a bit, so it’s a bit messy, but the conclusion is:
Uncomment and enable the following two lines:
enable_uboot_overlays=1
uboot_overlay_addr4=BB-UART1-00A0.dtbo
The BB-UART1-00A0.dtbo part is originally something like <file4>, so you need to replace it yourself.
This .dtbo file is located at:
/boot/dtbs/6.12.64-bone43/overlays/
The location may vary depending on the version.
In addition to this, if you include the information that Robert taught me this time, …
sudo apt update
sudo apt-get dist-upgrade
sudo /opt/u-boot/bb-u-boot-am335x-evm/install.sh
wget https://beagle-pkgs.gitlab.io/u-boot-am335x-beagle/get_n_install.sh
chmod +x get_n_install.sh
sudo ./get_n_install.sh
By applying the U-Boot build created by Robert using these commands, I was able to have HDMI and UART connections coexist.
I apologize if my explanation is not entirely accurate, as my understanding is still limited.
Thank you very much.