Issues with HDMI and UART1 when using U-Boot overlays on BeagleBone Black Industrial

I was happy a little bit to soon.

Everything looked ok on a BBB rev C but when I tested the SD card on a BBB rev D the HDMI didn’t work. I thought support for HDMI on rev D was implemented in the latest 5.10.168-ti-r83 but this is maybe not the case?

With a newer kernel the HDMI is working fine but it would be good if I can run an older kernel to support legacy software using “config-pin”.

Here is what I see on rev C:

eeprom:[A335BNLTEIA02429SBI03501]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Trixie Base Image 2026-01-22]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot SPL 2022.04-g5509547b (Jan 21 2026 - 01:26:01 +0000)]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot SPL 2022.04-g5509547b (Jan 22 2026 - 19:56:08 +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-TDA998x-00A0.kernel]
kernel:[5.10.168-ti-r83]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
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~trixie+20250808]
pkg:[bb-usb-gadgets]:[1.20250523.1-0~trixie+20250527]
pkg:[bb-wl18xx-firmware]:[1.20230703.0-0~trixie+20240703]
pkg:[kmod]:[34.2-2bbbio1~trixie+20250522]
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/mmcblk0p3 ro rootfstype=ext4 rootwait fsck.repair=yes earlycon coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100]
dmesg | grep remote
[    6.343325] remoteproc remoteproc0: wkup_m3 is available
[   20.503098] systemd[1]: Reached target remote-fs.target - Remote File Systems.
[   52.223406] remoteproc remoteproc0: powering up wkup_m3
[   52.239913] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[   52.286994] remoteproc remoteproc0: remote processor wkup_m3 is now up
dmesg | grep pru
dmesg | grep pinctrl-single
[    5.701580] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
dmesg | grep wlcore
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 04f3:249f Elan Microelectronics Corp. Touchscreen

And here is what I see on rev D (apart from the eeprom the difference is that HDMI is not enabled):

eeprom:[A335BNLTEID02525SBI17390]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Trixie Base Image 2026-01-22]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot SPL 2022.04-g5509547b (Jan 21 2026 - 01:26:01 +0000)]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot SPL 2022.04-g5509547b (Jan 22 2026 - 19:56:08 +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]
kernel:[5.10.168-ti-r83]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
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~trixie+20250808]
pkg:[bb-usb-gadgets]:[1.20250523.1-0~trixie+20250527]
pkg:[bb-wl18xx-firmware]:[1.20230703.0-0~trixie+20240703]
pkg:[kmod]:[34.2-2bbbio1~trixie+20250522]
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/mmcblk0p3 ro rootfstype=ext4 rootwait fsck.repair=yes earlycon coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100]
dmesg | grep remote
[    6.145112] remoteproc remoteproc0: wkup_m3 is available
[   19.143112] systemd[1]: Reached target remote-fs.target - Remote File Systems.
[   49.666861] remoteproc remoteproc0: powering up wkup_m3
[   49.682768] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[   49.719014] remoteproc remoteproc0: remote processor wkup_m3 is now up
dmesg | grep pru
dmesg | grep pinctrl-single
[    5.509824] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
dmesg | grep wlcore
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

I’ve only got Rev D’s ite66122 to work on as far back as v5.15.x.. For really anything before that (even v5.14.x) you are basically coping the whole DRM/etc layer and more from v5.15.x… in which case your just running v5.15.x

If your end product really needs v5.10.x-ti I see 93 left of the Rev C from GHI… once these are gone.. all “new” Rev C’s are gone forever.. https://www.digikey.com/en/products/detail/ghi-electronics-llc/BBB01-SC-505/6210999

Regards,

Thanks again for you incredible fast response! :slight_smile:

Then I know what to do, i.e. create my own device tree overlays and change the legacy software.
This means a little more work than anticipated but once it’s done the advantage is that I can use newer kernels.

As long as you didn’t need the pru (uio), 6.18 is looking pretty good, if you need uio, 6.6 is the great jump. For pru remoteproc, that takes a newer ti remoteproc library

Otherwise the biggest hurdle is custom overlays, let us know if you have any issues, with those, will show updates here.